@syncfusion/ej2-richtexteditor 29.2.4-738301 → 29.2.4-760237

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 (365) hide show
  1. package/.eslintrc.json +262 -260
  2. package/aceconfig.js +17 -0
  3. package/blazorGlobalSrc/common/config.d.ts +63 -0
  4. package/blazorGlobalSrc/common/config.js +123 -0
  5. package/blazorGlobalSrc/common/constant.d.ts +117 -0
  6. package/blazorGlobalSrc/common/constant.js +23 -0
  7. package/blazorGlobalSrc/common/editor-styles.d.ts +1 -0
  8. package/blazorGlobalSrc/common/editor-styles.js +5 -0
  9. package/blazorGlobalSrc/common/index.d.ts +7 -0
  10. package/blazorGlobalSrc/common/index.js +9 -0
  11. package/blazorGlobalSrc/common/interface.d.ts +119 -0
  12. package/blazorGlobalSrc/common/interface.js +4 -0
  13. package/blazorGlobalSrc/common/types.d.ts +25 -0
  14. package/blazorGlobalSrc/common/types.js +4 -0
  15. package/blazorGlobalSrc/common/user-agent.d.ts +41 -0
  16. package/blazorGlobalSrc/common/user-agent.js +71 -0
  17. package/blazorGlobalSrc/common/util.d.ts +70 -0
  18. package/blazorGlobalSrc/common/util.js +222 -0
  19. package/blazorGlobalSrc/components.d.ts +8 -0
  20. package/blazorGlobalSrc/components.js +12 -0
  21. package/blazorGlobalSrc/editor-manager/base/classes.d.ts +31 -0
  22. package/blazorGlobalSrc/editor-manager/base/classes.js +28 -0
  23. package/blazorGlobalSrc/editor-manager/base/constant.d.ts +97 -0
  24. package/blazorGlobalSrc/editor-manager/base/constant.js +41 -0
  25. package/blazorGlobalSrc/editor-manager/base/editor-manager.d.ts +95 -0
  26. package/blazorGlobalSrc/editor-manager/base/editor-manager.js +339 -0
  27. package/blazorGlobalSrc/editor-manager/base/enum.d.ts +17 -0
  28. package/blazorGlobalSrc/editor-manager/base/enum.js +4 -0
  29. package/blazorGlobalSrc/editor-manager/base/interface.d.ts +263 -0
  30. package/blazorGlobalSrc/editor-manager/base/interface.js +4 -0
  31. package/blazorGlobalSrc/editor-manager/base/types.d.ts +7 -0
  32. package/blazorGlobalSrc/editor-manager/base/types.js +4 -0
  33. package/blazorGlobalSrc/editor-manager/base.d.ts +8 -0
  34. package/blazorGlobalSrc/editor-manager/base.js +10 -0
  35. package/blazorGlobalSrc/editor-manager/index.d.ts +5 -0
  36. package/blazorGlobalSrc/editor-manager/index.js +9 -0
  37. package/blazorGlobalSrc/editor-manager/plugin/alignments.d.ts +26 -0
  38. package/blazorGlobalSrc/editor-manager/plugin/alignments.js +105 -0
  39. package/blazorGlobalSrc/editor-manager/plugin/audio.d.ts +34 -0
  40. package/blazorGlobalSrc/editor-manager/plugin/audio.js +145 -0
  41. package/blazorGlobalSrc/editor-manager/plugin/clearformat-exec.d.ts +24 -0
  42. package/blazorGlobalSrc/editor-manager/plugin/clearformat-exec.js +47 -0
  43. package/blazorGlobalSrc/editor-manager/plugin/clearformat.d.ts +29 -0
  44. package/blazorGlobalSrc/editor-manager/plugin/clearformat.js +249 -0
  45. package/blazorGlobalSrc/editor-manager/plugin/dom-node.d.ts +351 -0
  46. package/blazorGlobalSrc/editor-manager/plugin/dom-node.js +737 -0
  47. package/blazorGlobalSrc/editor-manager/plugin/dom-tree.d.ts +84 -0
  48. package/blazorGlobalSrc/editor-manager/plugin/dom-tree.js +164 -0
  49. package/blazorGlobalSrc/editor-manager/plugin/emoji-picker-action.d.ts +10 -0
  50. package/blazorGlobalSrc/editor-manager/plugin/emoji-picker-action.js +86 -0
  51. package/blazorGlobalSrc/editor-manager/plugin/format-painter-actions.d.ts +47 -0
  52. package/blazorGlobalSrc/editor-manager/plugin/format-painter-actions.js +622 -0
  53. package/blazorGlobalSrc/editor-manager/plugin/formats.d.ts +43 -0
  54. package/blazorGlobalSrc/editor-manager/plugin/formats.js +597 -0
  55. package/blazorGlobalSrc/editor-manager/plugin/image.d.ts +48 -0
  56. package/blazorGlobalSrc/editor-manager/plugin/image.js +399 -0
  57. package/blazorGlobalSrc/editor-manager/plugin/indents.d.ts +24 -0
  58. package/blazorGlobalSrc/editor-manager/plugin/indents.js +106 -0
  59. package/blazorGlobalSrc/editor-manager/plugin/insert-methods.d.ts +48 -0
  60. package/blazorGlobalSrc/editor-manager/plugin/insert-methods.js +37 -0
  61. package/blazorGlobalSrc/editor-manager/plugin/insert-text.d.ts +22 -0
  62. package/blazorGlobalSrc/editor-manager/plugin/insert-text.js +36 -0
  63. package/blazorGlobalSrc/editor-manager/plugin/inserthtml-exec.d.ts +22 -0
  64. package/blazorGlobalSrc/editor-manager/plugin/inserthtml-exec.js +49 -0
  65. package/blazorGlobalSrc/editor-manager/plugin/inserthtml.d.ts +51 -0
  66. package/blazorGlobalSrc/editor-manager/plugin/inserthtml.js +985 -0
  67. package/blazorGlobalSrc/editor-manager/plugin/isformatted.d.ts +89 -0
  68. package/blazorGlobalSrc/editor-manager/plugin/isformatted.js +199 -0
  69. package/blazorGlobalSrc/editor-manager/plugin/link.d.ts +41 -0
  70. package/blazorGlobalSrc/editor-manager/plugin/link.js +550 -0
  71. package/blazorGlobalSrc/editor-manager/plugin/lists.d.ts +74 -0
  72. package/blazorGlobalSrc/editor-manager/plugin/lists.js +1503 -0
  73. package/blazorGlobalSrc/editor-manager/plugin/ms-word-clean-up.d.ts +61 -0
  74. package/blazorGlobalSrc/editor-manager/plugin/ms-word-clean-up.js +1136 -0
  75. package/blazorGlobalSrc/editor-manager/plugin/nodecutter.d.ts +64 -0
  76. package/blazorGlobalSrc/editor-manager/plugin/nodecutter.js +167 -0
  77. package/blazorGlobalSrc/editor-manager/plugin/selection-commands.d.ts +41 -0
  78. package/blazorGlobalSrc/editor-manager/plugin/selection-commands.js +1069 -0
  79. package/blazorGlobalSrc/editor-manager/plugin/selection-exec.d.ts +24 -0
  80. package/blazorGlobalSrc/editor-manager/plugin/selection-exec.js +49 -0
  81. package/blazorGlobalSrc/editor-manager/plugin/table-selection.d.ts +26 -0
  82. package/blazorGlobalSrc/editor-manager/plugin/table-selection.js +210 -0
  83. package/blazorGlobalSrc/editor-manager/plugin/table.d.ts +56 -0
  84. package/blazorGlobalSrc/editor-manager/plugin/table.js +1100 -0
  85. package/blazorGlobalSrc/editor-manager/plugin/toolbar-status.d.ts +39 -0
  86. package/blazorGlobalSrc/editor-manager/plugin/toolbar-status.js +384 -0
  87. package/blazorGlobalSrc/editor-manager/plugin/undo.d.ts +85 -0
  88. package/blazorGlobalSrc/editor-manager/plugin/undo.js +216 -0
  89. package/blazorGlobalSrc/editor-manager/plugin/video.d.ts +38 -0
  90. package/blazorGlobalSrc/editor-manager/plugin/video.js +311 -0
  91. package/blazorGlobalSrc/editor-manager/plugin.d.ts +27 -0
  92. package/blazorGlobalSrc/editor-manager/plugin.js +31 -0
  93. package/blazorGlobalSrc/global.d.ts +1 -0
  94. package/blazorGlobalSrc/global.js +3 -0
  95. package/blazorGlobalSrc/index.d.ts +8 -0
  96. package/blazorGlobalSrc/index.js +12 -0
  97. package/blazorGlobalSrc/markdown-parser/base/constant.d.ts +39 -0
  98. package/blazorGlobalSrc/markdown-parser/base/constant.js +10 -0
  99. package/blazorGlobalSrc/markdown-parser/base/interface.d.ts +169 -0
  100. package/blazorGlobalSrc/markdown-parser/base/interface.js +4 -0
  101. package/blazorGlobalSrc/markdown-parser/base/markdown-parser.d.ts +69 -0
  102. package/blazorGlobalSrc/markdown-parser/base/markdown-parser.js +87 -0
  103. package/blazorGlobalSrc/markdown-parser/base/types.d.ts +7 -0
  104. package/blazorGlobalSrc/markdown-parser/base/types.js +4 -0
  105. package/blazorGlobalSrc/markdown-parser/base.d.ts +7 -0
  106. package/blazorGlobalSrc/markdown-parser/base.js +9 -0
  107. package/blazorGlobalSrc/markdown-parser/index.d.ts +5 -0
  108. package/blazorGlobalSrc/markdown-parser/index.js +9 -0
  109. package/blazorGlobalSrc/markdown-parser/plugin/clearformat.d.ts +28 -0
  110. package/blazorGlobalSrc/markdown-parser/plugin/clearformat.js +110 -0
  111. package/blazorGlobalSrc/markdown-parser/plugin/formats.d.ts +32 -0
  112. package/blazorGlobalSrc/markdown-parser/plugin/formats.js +225 -0
  113. package/blazorGlobalSrc/markdown-parser/plugin/insert-text.d.ts +24 -0
  114. package/blazorGlobalSrc/markdown-parser/plugin/insert-text.js +49 -0
  115. package/blazorGlobalSrc/markdown-parser/plugin/link.d.ts +24 -0
  116. package/blazorGlobalSrc/markdown-parser/plugin/link.js +50 -0
  117. package/blazorGlobalSrc/markdown-parser/plugin/lists.d.ts +39 -0
  118. package/blazorGlobalSrc/markdown-parser/plugin/lists.js +462 -0
  119. package/blazorGlobalSrc/markdown-parser/plugin/markdown-selection.d.ts +140 -0
  120. package/blazorGlobalSrc/markdown-parser/plugin/markdown-selection.js +104 -0
  121. package/blazorGlobalSrc/markdown-parser/plugin/md-selection-formats.d.ts +31 -0
  122. package/blazorGlobalSrc/markdown-parser/plugin/md-selection-formats.js +335 -0
  123. package/blazorGlobalSrc/markdown-parser/plugin/table.d.ts +52 -0
  124. package/blazorGlobalSrc/markdown-parser/plugin/table.js +216 -0
  125. package/blazorGlobalSrc/markdown-parser/plugin/undo.d.ts +83 -0
  126. package/blazorGlobalSrc/markdown-parser/plugin/undo.js +147 -0
  127. package/blazorGlobalSrc/markdown-parser/plugin.d.ts +11 -0
  128. package/blazorGlobalSrc/markdown-parser/plugin.js +15 -0
  129. package/blazorGlobalSrc/rich-text-editor/actions/base-quick-toolbar.d.ts +114 -0
  130. package/blazorGlobalSrc/rich-text-editor/actions/base-quick-toolbar.js +465 -0
  131. package/blazorGlobalSrc/rich-text-editor/actions/base-toolbar.d.ts +58 -0
  132. package/blazorGlobalSrc/rich-text-editor/actions/base-toolbar.js +216 -0
  133. package/blazorGlobalSrc/rich-text-editor/actions/color-picker.d.ts +52 -0
  134. package/blazorGlobalSrc/rich-text-editor/actions/color-picker.js +241 -0
  135. package/blazorGlobalSrc/rich-text-editor/actions/count.d.ts +55 -0
  136. package/blazorGlobalSrc/rich-text-editor/actions/count.js +117 -0
  137. package/blazorGlobalSrc/rich-text-editor/actions/dropdown-buttons.d.ts +72 -0
  138. package/blazorGlobalSrc/rich-text-editor/actions/dropdown-buttons.js +552 -0
  139. package/blazorGlobalSrc/rich-text-editor/actions/emoji-picker.d.ts +51 -0
  140. package/blazorGlobalSrc/rich-text-editor/actions/emoji-picker.js +853 -0
  141. package/blazorGlobalSrc/rich-text-editor/actions/enter-key.d.ts +28 -0
  142. package/blazorGlobalSrc/rich-text-editor/actions/enter-key.js +821 -0
  143. package/blazorGlobalSrc/rich-text-editor/actions/execute-command-callback.d.ts +11 -0
  144. package/blazorGlobalSrc/rich-text-editor/actions/execute-command-callback.js +28 -0
  145. package/blazorGlobalSrc/rich-text-editor/actions/file-manager.d.ts +45 -0
  146. package/blazorGlobalSrc/rich-text-editor/actions/file-manager.js +249 -0
  147. package/blazorGlobalSrc/rich-text-editor/actions/format-painter.d.ts +25 -0
  148. package/blazorGlobalSrc/rich-text-editor/actions/format-painter.js +156 -0
  149. package/blazorGlobalSrc/rich-text-editor/actions/full-screen.d.ts +40 -0
  150. package/blazorGlobalSrc/rich-text-editor/actions/full-screen.js +148 -0
  151. package/blazorGlobalSrc/rich-text-editor/actions/html-attributes.d.ts +15 -0
  152. package/blazorGlobalSrc/rich-text-editor/actions/html-attributes.js +50 -0
  153. package/blazorGlobalSrc/rich-text-editor/actions/html-editor.d.ts +120 -0
  154. package/blazorGlobalSrc/rich-text-editor/actions/html-editor.js +1244 -0
  155. package/blazorGlobalSrc/rich-text-editor/actions/html-toolbar-status.d.ts +14 -0
  156. package/blazorGlobalSrc/rich-text-editor/actions/html-toolbar-status.js +47 -0
  157. package/blazorGlobalSrc/rich-text-editor/actions/import-export.d.ts +21 -0
  158. package/blazorGlobalSrc/rich-text-editor/actions/import-export.js +117 -0
  159. package/blazorGlobalSrc/rich-text-editor/actions/keyboard-model.d.ts +30 -0
  160. package/blazorGlobalSrc/rich-text-editor/actions/keyboard.d.ts +110 -0
  161. package/blazorGlobalSrc/rich-text-editor/actions/keyboard.js +163 -0
  162. package/blazorGlobalSrc/rich-text-editor/actions/markdown-editor.d.ts +66 -0
  163. package/blazorGlobalSrc/rich-text-editor/actions/markdown-editor.js +142 -0
  164. package/blazorGlobalSrc/rich-text-editor/actions/markdown-toolbar-status.d.ts +23 -0
  165. package/blazorGlobalSrc/rich-text-editor/actions/markdown-toolbar-status.js +124 -0
  166. package/blazorGlobalSrc/rich-text-editor/actions/paste-clean-up.d.ts +86 -0
  167. package/blazorGlobalSrc/rich-text-editor/actions/paste-clean-up.js +1071 -0
  168. package/blazorGlobalSrc/rich-text-editor/actions/quick-toolbar.d.ts +151 -0
  169. package/blazorGlobalSrc/rich-text-editor/actions/quick-toolbar.js +548 -0
  170. package/blazorGlobalSrc/rich-text-editor/actions/resize.d.ts +37 -0
  171. package/blazorGlobalSrc/rich-text-editor/actions/resize.js +188 -0
  172. package/blazorGlobalSrc/rich-text-editor/actions/sanitize-helper.d.ts +11 -0
  173. package/blazorGlobalSrc/rich-text-editor/actions/sanitize-helper.js +168 -0
  174. package/blazorGlobalSrc/rich-text-editor/actions/toolbar-action.d.ts +18 -0
  175. package/blazorGlobalSrc/rich-text-editor/actions/toolbar-action.js +76 -0
  176. package/blazorGlobalSrc/rich-text-editor/actions/toolbar.d.ts +185 -0
  177. package/blazorGlobalSrc/rich-text-editor/actions/toolbar.js +512 -0
  178. package/blazorGlobalSrc/rich-text-editor/actions/xhtml-validation.d.ts +25 -0
  179. package/blazorGlobalSrc/rich-text-editor/actions/xhtml-validation.js +166 -0
  180. package/blazorGlobalSrc/rich-text-editor/actions.d.ts +26 -0
  181. package/blazorGlobalSrc/rich-text-editor/actions.js +30 -0
  182. package/blazorGlobalSrc/rich-text-editor/audio.d.ts +4 -0
  183. package/blazorGlobalSrc/rich-text-editor/audio.js +8 -0
  184. package/blazorGlobalSrc/rich-text-editor/base/classes.d.ts +628 -0
  185. package/blazorGlobalSrc/rich-text-editor/base/classes.js +129 -0
  186. package/blazorGlobalSrc/rich-text-editor/base/constant.d.ts +808 -0
  187. package/blazorGlobalSrc/rich-text-editor/base/constant.js +334 -0
  188. package/blazorGlobalSrc/rich-text-editor/base/enum.d.ts +81 -0
  189. package/blazorGlobalSrc/rich-text-editor/base/enum.js +37 -0
  190. package/blazorGlobalSrc/rich-text-editor/base/interface.d.ts +1577 -0
  191. package/blazorGlobalSrc/rich-text-editor/base/interface.js +194 -0
  192. package/blazorGlobalSrc/rich-text-editor/base/rich-text-editor-model.d.ts +1032 -0
  193. package/blazorGlobalSrc/rich-text-editor/base/rich-text-editor.d.ts +1699 -0
  194. package/blazorGlobalSrc/rich-text-editor/base/rich-text-editor.js +2645 -0
  195. package/blazorGlobalSrc/rich-text-editor/base/util.d.ts +212 -0
  196. package/blazorGlobalSrc/rich-text-editor/base/util.js +610 -0
  197. package/blazorGlobalSrc/rich-text-editor/base.d.ts +10 -0
  198. package/blazorGlobalSrc/rich-text-editor/base.js +13 -0
  199. package/blazorGlobalSrc/rich-text-editor/formatter/formatter.d.ts +87 -0
  200. package/blazorGlobalSrc/rich-text-editor/formatter/formatter.js +223 -0
  201. package/blazorGlobalSrc/rich-text-editor/formatter/html-formatter.d.ts +34 -0
  202. package/blazorGlobalSrc/rich-text-editor/formatter/html-formatter.js +44 -0
  203. package/blazorGlobalSrc/rich-text-editor/formatter/markdown-formatter.d.ts +39 -0
  204. package/blazorGlobalSrc/rich-text-editor/formatter/markdown-formatter.js +48 -0
  205. package/blazorGlobalSrc/rich-text-editor/formatter.d.ts +6 -0
  206. package/blazorGlobalSrc/rich-text-editor/formatter.js +10 -0
  207. package/blazorGlobalSrc/rich-text-editor/html-editor.d.ts +4 -0
  208. package/blazorGlobalSrc/rich-text-editor/html-editor.js +8 -0
  209. package/blazorGlobalSrc/rich-text-editor/image.d.ts +4 -0
  210. package/blazorGlobalSrc/rich-text-editor/image.js +8 -0
  211. package/blazorGlobalSrc/rich-text-editor/index.d.ts +9 -0
  212. package/blazorGlobalSrc/rich-text-editor/index.js +12 -0
  213. package/blazorGlobalSrc/rich-text-editor/link.d.ts +4 -0
  214. package/blazorGlobalSrc/rich-text-editor/link.js +8 -0
  215. package/blazorGlobalSrc/rich-text-editor/markdown-editor.d.ts +4 -0
  216. package/blazorGlobalSrc/rich-text-editor/markdown-editor.js +8 -0
  217. package/blazorGlobalSrc/rich-text-editor/models/default-locale.d.ts +25 -0
  218. package/blazorGlobalSrc/rich-text-editor/models/default-locale.js +391 -0
  219. package/blazorGlobalSrc/rich-text-editor/models/iframe-settings-model.d.ts +68 -0
  220. package/blazorGlobalSrc/rich-text-editor/models/iframe-settings.d.ts +61 -0
  221. package/blazorGlobalSrc/rich-text-editor/models/iframe-settings.js +60 -0
  222. package/blazorGlobalSrc/rich-text-editor/models/inline-mode-model.d.ts +24 -0
  223. package/blazorGlobalSrc/rich-text-editor/models/inline-mode.d.ts +20 -0
  224. package/blazorGlobalSrc/rich-text-editor/models/inline-mode.js +37 -0
  225. package/blazorGlobalSrc/rich-text-editor/models/items.d.ts +36 -0
  226. package/blazorGlobalSrc/rich-text-editor/models/items.js +1011 -0
  227. package/blazorGlobalSrc/rich-text-editor/models/models.d.ts +7 -0
  228. package/blazorGlobalSrc/rich-text-editor/models/models.js +4 -0
  229. package/blazorGlobalSrc/rich-text-editor/models/slash-menu-settings-model.d.ts +40 -0
  230. package/blazorGlobalSrc/rich-text-editor/models/slash-menu-settings.d.ts +50 -0
  231. package/blazorGlobalSrc/rich-text-editor/models/slash-menu-settings.js +143 -0
  232. package/blazorGlobalSrc/rich-text-editor/models/toolbar-settings-model.d.ts +1130 -0
  233. package/blazorGlobalSrc/rich-text-editor/models/toolbar-settings.d.ts +992 -0
  234. package/blazorGlobalSrc/rich-text-editor/models/toolbar-settings.js +510 -0
  235. package/blazorGlobalSrc/rich-text-editor/models.d.ts +4 -0
  236. package/blazorGlobalSrc/rich-text-editor/models.js +4 -0
  237. package/blazorGlobalSrc/rich-text-editor/quick-toolbar.d.ts +4 -0
  238. package/blazorGlobalSrc/rich-text-editor/quick-toolbar.js +8 -0
  239. package/blazorGlobalSrc/rich-text-editor/renderer/audio-module.d.ts +82 -0
  240. package/blazorGlobalSrc/rich-text-editor/renderer/audio-module.js +886 -0
  241. package/blazorGlobalSrc/rich-text-editor/renderer/content-renderer.d.ts +65 -0
  242. package/blazorGlobalSrc/rich-text-editor/renderer/content-renderer.js +49 -0
  243. package/blazorGlobalSrc/rich-text-editor/renderer/dialog-renderer.d.ts +39 -0
  244. package/blazorGlobalSrc/rich-text-editor/renderer/dialog-renderer.js +111 -0
  245. package/blazorGlobalSrc/rich-text-editor/renderer/iframe-content-renderer.d.ts +33 -0
  246. package/blazorGlobalSrc/rich-text-editor/renderer/iframe-content-renderer.js +101 -0
  247. package/blazorGlobalSrc/rich-text-editor/renderer/image-module.d.ts +199 -0
  248. package/blazorGlobalSrc/rich-text-editor/renderer/image-module.js +2494 -0
  249. package/blazorGlobalSrc/rich-text-editor/renderer/link-module.d.ts +63 -0
  250. package/blazorGlobalSrc/rich-text-editor/renderer/link-module.js +596 -0
  251. package/blazorGlobalSrc/rich-text-editor/renderer/markdown-renderer.d.ts +65 -0
  252. package/blazorGlobalSrc/rich-text-editor/renderer/markdown-renderer.js +38 -0
  253. package/blazorGlobalSrc/rich-text-editor/renderer/popup-renderer.d.ts +54 -0
  254. package/blazorGlobalSrc/rich-text-editor/renderer/popup-renderer.js +35 -0
  255. package/blazorGlobalSrc/rich-text-editor/renderer/render.d.ts +46 -0
  256. package/blazorGlobalSrc/rich-text-editor/renderer/render.js +70 -0
  257. package/blazorGlobalSrc/rich-text-editor/renderer/slash-menu.d.ts +20 -0
  258. package/blazorGlobalSrc/rich-text-editor/renderer/slash-menu.js +224 -0
  259. package/blazorGlobalSrc/rich-text-editor/renderer/table-module.d.ts +155 -0
  260. package/blazorGlobalSrc/rich-text-editor/renderer/table-module.js +2206 -0
  261. package/blazorGlobalSrc/rich-text-editor/renderer/toolbar-renderer.d.ts +131 -0
  262. package/blazorGlobalSrc/rich-text-editor/renderer/toolbar-renderer.js +747 -0
  263. package/blazorGlobalSrc/rich-text-editor/renderer/video-module.d.ts +120 -0
  264. package/blazorGlobalSrc/rich-text-editor/renderer/video-module.js +1507 -0
  265. package/blazorGlobalSrc/rich-text-editor/renderer/view-source.d.ts +74 -0
  266. package/blazorGlobalSrc/rich-text-editor/renderer/view-source.js +225 -0
  267. package/blazorGlobalSrc/rich-text-editor/renderer.d.ts +17 -0
  268. package/blazorGlobalSrc/rich-text-editor/renderer.js +21 -0
  269. package/blazorGlobalSrc/rich-text-editor/services/renderer-factory.d.ts +33 -0
  270. package/blazorGlobalSrc/rich-text-editor/services/renderer-factory.js +29 -0
  271. package/blazorGlobalSrc/rich-text-editor/services/service-locator.d.ts +29 -0
  272. package/blazorGlobalSrc/rich-text-editor/services/service-locator.js +25 -0
  273. package/blazorGlobalSrc/rich-text-editor/services.d.ts +5 -0
  274. package/blazorGlobalSrc/rich-text-editor/services.js +9 -0
  275. package/blazorGlobalSrc/rich-text-editor/toolbar.d.ts +4 -0
  276. package/blazorGlobalSrc/rich-text-editor/toolbar.js +8 -0
  277. package/blazorGlobalSrc/rich-text-editor/video.d.ts +4 -0
  278. package/blazorGlobalSrc/rich-text-editor/video.js +8 -0
  279. package/blazorGlobalSrc/rich-text-editor.d.ts +4 -0
  280. package/blazorGlobalSrc/rich-text-editor.js +8 -0
  281. package/blazorGlobalSrc/selection/index.d.ts +4 -0
  282. package/blazorGlobalSrc/selection/index.js +8 -0
  283. package/blazorGlobalSrc/selection/selection.d.ts +244 -0
  284. package/blazorGlobalSrc/selection/selection.js +309 -0
  285. package/dist/ej2-richtexteditor.umd.min.js +1 -1
  286. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  287. package/dist/es6/ej2-richtexteditor.es2015.js +6 -4
  288. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  289. package/dist/es6/ej2-richtexteditor.es5.js +6 -4
  290. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  291. package/helpers/e2e/index.d.ts +1 -0
  292. package/helpers/e2e/index.js +8 -0
  293. package/helpers/e2e/rte-helper.d.ts +79 -0
  294. package/helpers/e2e/rte-helper.js +81 -0
  295. package/package.json +1 -1
  296. package/src/editor-manager/plugin/dom-tree.js +6 -4
  297. package/src/global.d.ts +1 -0
  298. package/styles/bds-lite.css +7 -17
  299. package/styles/bds.css +11 -22
  300. package/styles/bootstrap-dark-lite.css +3 -13
  301. package/styles/bootstrap-dark.css +3 -14
  302. package/styles/bootstrap-lite.css +3 -13
  303. package/styles/bootstrap.css +3 -14
  304. package/styles/bootstrap4-lite.css +3 -13
  305. package/styles/bootstrap4.css +3 -14
  306. package/styles/bootstrap5-dark-lite.css +3 -13
  307. package/styles/bootstrap5-dark.css +3 -14
  308. package/styles/bootstrap5-lite.css +3 -13
  309. package/styles/bootstrap5.3-lite.css +3 -13
  310. package/styles/bootstrap5.3.css +3 -14
  311. package/styles/bootstrap5.css +3 -14
  312. package/styles/fabric-dark-lite.css +3 -13
  313. package/styles/fabric-dark.css +3 -14
  314. package/styles/fabric-lite.css +3 -13
  315. package/styles/fabric.css +3 -14
  316. package/styles/fluent-dark-lite.css +3 -13
  317. package/styles/fluent-dark.css +3 -14
  318. package/styles/fluent-lite.css +3 -13
  319. package/styles/fluent.css +3 -14
  320. package/styles/fluent2-lite.css +3 -13
  321. package/styles/fluent2.css +3 -14
  322. package/styles/highcontrast-light-lite.css +3 -13
  323. package/styles/highcontrast-light.css +3 -14
  324. package/styles/highcontrast-lite.css +3 -13
  325. package/styles/highcontrast.css +3 -14
  326. package/styles/material-dark-lite.css +3 -13
  327. package/styles/material-dark.css +3 -14
  328. package/styles/material-lite.css +3 -13
  329. package/styles/material.css +3 -14
  330. package/styles/material3-dark-lite.css +3 -13
  331. package/styles/material3-dark.css +3 -14
  332. package/styles/material3-lite.css +3 -13
  333. package/styles/material3.css +3 -14
  334. package/styles/rich-text-editor/_bds-definition.scss +2 -2
  335. package/styles/rich-text-editor/_bigger.scss +0 -1
  336. package/styles/rich-text-editor/_layout.scss +0 -9
  337. package/styles/rich-text-editor/_theme.scss +3 -0
  338. package/styles/rich-text-editor/bds.css +11 -22
  339. package/styles/rich-text-editor/bootstrap-dark.css +3 -14
  340. package/styles/rich-text-editor/bootstrap.css +3 -14
  341. package/styles/rich-text-editor/bootstrap4.css +3 -14
  342. package/styles/rich-text-editor/bootstrap5-dark.css +3 -14
  343. package/styles/rich-text-editor/bootstrap5.3.css +3 -14
  344. package/styles/rich-text-editor/bootstrap5.css +3 -14
  345. package/styles/rich-text-editor/fabric-dark.css +3 -14
  346. package/styles/rich-text-editor/fabric.css +3 -14
  347. package/styles/rich-text-editor/fluent-dark.css +3 -14
  348. package/styles/rich-text-editor/fluent.css +3 -14
  349. package/styles/rich-text-editor/fluent2.css +3 -14
  350. package/styles/rich-text-editor/highcontrast-light.css +3 -14
  351. package/styles/rich-text-editor/highcontrast.css +3 -14
  352. package/styles/rich-text-editor/material-dark.css +3 -14
  353. package/styles/rich-text-editor/material.css +3 -14
  354. package/styles/rich-text-editor/material3-dark.css +3 -14
  355. package/styles/rich-text-editor/material3.css +3 -14
  356. package/styles/rich-text-editor/tailwind-dark.css +3 -14
  357. package/styles/rich-text-editor/tailwind.css +3 -14
  358. package/styles/rich-text-editor/tailwind3.css +3 -14
  359. package/styles/tailwind-dark-lite.css +3 -13
  360. package/styles/tailwind-dark.css +3 -14
  361. package/styles/tailwind-lite.css +3 -13
  362. package/styles/tailwind.css +3 -14
  363. package/styles/tailwind3-lite.css +3 -13
  364. package/styles/tailwind3.css +3 -14
  365. package/tslint.json +111 -0
@@ -0,0 +1,1244 @@
1
+ define(["require", "exports", "@syncfusion/ej2-base", "../../common/util", "../../editor-manager/plugin/inserthtml", "../../selection/selection", "../base/classes", "../base/constant", "../base/constant", "../base/enum", "../base/util", "../formatter/html-formatter", "../renderer/content-renderer", "../renderer/iframe-content-renderer", "./../../common/constant", "./html-toolbar-status", "./xhtml-validation"], function (require, exports, ej2_base_1, util_1, inserthtml_1, selection_1, classes, CONSTANT, events, enum_1, util_2, html_formatter_1, content_renderer_1, iframe_content_renderer_1, constant_1, html_toolbar_status_1, xhtml_validation_1) {
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ var HtmlEditor = (function () {
5
+ function HtmlEditor(parent, serviceLocator) {
6
+ this.rangeCollection = [];
7
+ this.isImageDelete = false;
8
+ this.isMention = false;
9
+ this.parent = parent;
10
+ this.locator = serviceLocator;
11
+ this.renderFactory = this.locator.getService('rendererFactory');
12
+ this.xhtmlValidation = new xhtml_validation_1.XhtmlValidation(parent);
13
+ this.addEventListener();
14
+ this.isDestroyed = false;
15
+ this.isCopyAll = false;
16
+ this.isSlashMenuOpen = false;
17
+ this.isPreviousNodeBrAfterBackSpace = false;
18
+ }
19
+ HtmlEditor.prototype.destroy = function () {
20
+ if (this.isDestroyed) {
21
+ return;
22
+ }
23
+ if (this.clickTimeout) {
24
+ clearTimeout(this.clickTimeout);
25
+ this.clickTimeout = null;
26
+ }
27
+ this.removeEventListener();
28
+ this.locator = null;
29
+ this.contentRenderer = null;
30
+ this.renderFactory = null;
31
+ this.toolbarUpdate = null;
32
+ this.nodeSelectionObj = null;
33
+ this.isCopyAll = null;
34
+ this.isSlashMenuOpen = null;
35
+ if (this.rangeCollection.length > 0) {
36
+ this.rangeCollection = [];
37
+ }
38
+ if (this.rangeElement) {
39
+ this.rangeElement = null;
40
+ }
41
+ if (this.oldRangeElement) {
42
+ this.oldRangeElement = null;
43
+ }
44
+ if (this.deleteRangeElement) {
45
+ this.deleteRangeElement = null;
46
+ }
47
+ if (this.deleteOldRangeElement) {
48
+ this.deleteOldRangeElement = null;
49
+ }
50
+ if (this.saveSelection) {
51
+ this.saveSelection = null;
52
+ }
53
+ if (this.xhtmlValidation) {
54
+ this.xhtmlValidation = null;
55
+ }
56
+ this.isDestroyed = true;
57
+ };
58
+ HtmlEditor.prototype.sanitizeHelper = function (value) {
59
+ value = util_2.sanitizeHelper(value, this.parent);
60
+ return value;
61
+ };
62
+ HtmlEditor.prototype.addEventListener = function () {
63
+ if (this.parent.isDestroyed) {
64
+ return;
65
+ }
66
+ this.nodeSelectionObj = new selection_1.NodeSelection(this.parent.inputElement);
67
+ this.parent.on(events.initialLoad, this.instantiateRenderer, this);
68
+ this.parent.on(events.htmlToolbarClick, this.onToolbarClick, this);
69
+ this.parent.on(events.slashMenuOpening, this.onSlashMenuOpen, this);
70
+ this.parent.on(events.keyDown, this.onKeyDown, this);
71
+ this.parent.on(events.keyUp, this.onKeyUp, this);
72
+ this.parent.on(events.initialEnd, this.render, this);
73
+ this.parent.on(events.modelChanged, this.onPropertyChanged, this);
74
+ this.parent.on(events.destroy, this.destroy, this);
75
+ this.parent.on(events.selectAll, this.selectAll, this);
76
+ this.parent.on(events.selectRange, this.selectRange, this);
77
+ this.parent.on(events.getSelectedHtml, this.getSelectedHtml, this);
78
+ this.parent.on(events.selectionSave, this.onSelectionSave, this);
79
+ this.parent.on(events.selectionRestore, this.onSelectionRestore, this);
80
+ this.parent.on(events.readOnlyMode, this.updateReadOnly, this);
81
+ this.parent.on(events.paste, this.onPaste, this);
82
+ this.parent.on(events.tableclass, this.isTableClassAdded, this);
83
+ this.parent.on(events.onHandleFontsizeChange, this.onHandleFontsizeChange, this);
84
+ };
85
+ HtmlEditor.prototype.onSlashMenuOpen = function () {
86
+ this.isSlashMenuOpen = true;
87
+ };
88
+ HtmlEditor.prototype.updateReadOnly = function () {
89
+ if (this.parent.readonly) {
90
+ ej2_base_1.attributes(this.parent.contentModule.getEditPanel(), { contenteditable: 'false' });
91
+ ej2_base_1.addClass([this.parent.element], classes.CLS_RTE_READONLY);
92
+ }
93
+ else {
94
+ ej2_base_1.attributes(this.parent.contentModule.getEditPanel(), { contenteditable: 'true' });
95
+ ej2_base_1.removeClass([this.parent.element], classes.CLS_RTE_READONLY);
96
+ }
97
+ };
98
+ HtmlEditor.prototype.onSelectionSave = function () {
99
+ var currentDocument = this.contentRenderer.getDocument();
100
+ var range = this.nodeSelectionObj.getRange(currentDocument);
101
+ this.saveSelection = this.nodeSelectionObj.save(range, currentDocument);
102
+ };
103
+ HtmlEditor.prototype.onSelectionRestore = function (e) {
104
+ this.parent.isBlur = false;
105
+ this.contentRenderer.getEditPanel().focus({ preventScroll: true });
106
+ if ((ej2_base_1.isNullOrUndefined(e.items) || e.items) && (!ej2_base_1.isNullOrUndefined(this.saveSelection))) {
107
+ this.saveSelection.restore();
108
+ }
109
+ };
110
+ HtmlEditor.prototype.isTableClassAdded = function () {
111
+ var tableElement = this.parent.inputElement.querySelectorAll('table');
112
+ for (var i = 0; i < tableElement.length; i++) {
113
+ if (!tableElement[i].classList.contains('e-rte-table') && !tableElement[i].classList.contains('e-rte-paste-table')
114
+ && !tableElement[i].classList.contains('e-rte-custom-table')) {
115
+ tableElement[i].classList.add('e-rte-table');
116
+ }
117
+ }
118
+ };
119
+ HtmlEditor.prototype.onHandleFontsizeChange = function (e) {
120
+ var keyboardArgs = e.args;
121
+ var args = { name: 'dropDownSelect' };
122
+ args.item = {
123
+ command: 'Font',
124
+ subCommand: 'FontSize'
125
+ };
126
+ var items = this.parent.fontSize.items;
127
+ var activeElem;
128
+ if (this.parent.toolbarModule && this.parent.toolbarModule.dropDownModule &&
129
+ this.parent.toolbarModule.dropDownModule.fontSizeDropDown && !ej2_base_1.isNullOrUndefined(this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent) && this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent !== '') {
130
+ activeElem = this.parent.toolbarModule.dropDownModule.fontSizeDropDown.activeElem[0].textContent;
131
+ }
132
+ else {
133
+ var fontSizeValue = void 0;
134
+ var selection = this.parent.contentModule.getDocument().getSelection();
135
+ if (selection && selection.focusNode && selection.focusNode.parentElement) {
136
+ fontSizeValue = document.defaultView.getComputedStyle(selection.focusNode.parentElement, null).getPropertyValue('font-size');
137
+ }
138
+ else {
139
+ fontSizeValue = this.parent.fontSize.width;
140
+ }
141
+ fontSizeValue = ej2_base_1.isNullOrUndefined(fontSizeValue) ? this.parent.fontSize.width : fontSizeValue;
142
+ var actualTxtFontValues = fontSizeValue.match(/^([\d.]+)(\D+)$/);
143
+ var size_1 = parseInt(actualTxtFontValues[1], 10);
144
+ var unit = actualTxtFontValues[2];
145
+ var defaultFontValues = items[1].value.match(/^([\d.]+)(\D+)$/);
146
+ if (defaultFontValues[2] === unit) {
147
+ var index = items.findIndex(function (_a) {
148
+ var value = _a.value;
149
+ return parseInt(value, 10) >= size_1;
150
+ });
151
+ activeElem = items[index].text;
152
+ }
153
+ else {
154
+ var convertedSize_1 = this.convertFontSize(size_1, unit, defaultFontValues[2]);
155
+ var index = items.findIndex(function (_a) {
156
+ var value = _a.value;
157
+ return parseInt(value, 10) >= convertedSize_1;
158
+ });
159
+ activeElem = items[index].text;
160
+ }
161
+ }
162
+ var fontIndex = items.findIndex(function (size) { return size.text === (activeElem === 'Font Size' ? 'Default' : activeElem); });
163
+ if (keyboardArgs.action === 'increase-fontsize' && fontIndex !== -1) {
164
+ if (fontIndex >= items.length - 1) {
165
+ var fontValues = items[fontIndex].value.match(/^([\d.]+)(\D+)$/);
166
+ if (fontValues) {
167
+ var size = parseInt(fontValues[1], 10);
168
+ var unit = fontValues[2];
169
+ var roundedSize = size % 10 === 0 ? Math.ceil((size + 1) / 10) * 10 : Math.ceil(size / 10) * 10;
170
+ args.item.value = roundedSize.toLocaleString() + unit;
171
+ args.item.text = roundedSize.toLocaleString() + ' ' + unit;
172
+ }
173
+ this.parent.fontSize.items.push(args.item);
174
+ }
175
+ else {
176
+ args.item.value = items[fontIndex + 1].value;
177
+ args.item.text = items[fontIndex + 1].text;
178
+ }
179
+ }
180
+ else if (keyboardArgs.action === 'decrease-fontsize' && fontIndex !== -1 && fontIndex > 0) {
181
+ args.item.value = items[fontIndex - 1].value;
182
+ args.item.text = items[fontIndex - 1].text;
183
+ }
184
+ else {
185
+ if (fontIndex >= 0 && fontIndex < items.length && items[fontIndex]) {
186
+ args.item.value = items[fontIndex].value;
187
+ args.item.text = items[fontIndex].text;
188
+ }
189
+ }
190
+ this.parent.formatter.process(this.parent, args, keyboardArgs);
191
+ };
192
+ HtmlEditor.prototype.convertFontSize = function (value, originalUnit, targetUnit) {
193
+ if (CONSTANT.supportedUnits.indexOf(originalUnit) !== -1 || CONSTANT.supportedUnits.indexOf(targetUnit) !== -1) {
194
+ originalUnit = 'px';
195
+ }
196
+ var convertedValue = value * CONSTANT.conversionFactors[originalUnit][targetUnit];
197
+ return convertedValue;
198
+ };
199
+ HtmlEditor.prototype.onKeyUp = function (e) {
200
+ var args = e.args;
201
+ var restrictKeys = [8, 9, 13, 17, 18, 20, 27, 37, 38, 39, 40, 44, 45, 46, 91,
202
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123];
203
+ var range = this.parent.getRange();
204
+ var regEx = new RegExp('\u200B', 'g');
205
+ var isEmptyNode = range.startContainer === range.endContainer && range.startOffset === range.endOffset &&
206
+ range.startOffset === 1 && range.startContainer.textContent.length === 1 &&
207
+ range.startContainer.textContent.charCodeAt(0) === 8203 &&
208
+ range.startContainer.textContent.replace(regEx, '').length === 0;
209
+ var isMention = false;
210
+ if (range.startContainer === range.endContainer &&
211
+ range.startOffset === range.endOffset && (range.startContainer !== this.parent.inputElement && range.startOffset !== 0)) {
212
+ var mentionStartNode = range.startContainer.nodeType === 3 ?
213
+ range.startContainer : range.startContainer.childNodes[range.startOffset - 1];
214
+ isMention = args.keyCode === 16 &&
215
+ mentionStartNode.textContent.charCodeAt(0) === 8203 &&
216
+ !ej2_base_1.isNullOrUndefined(mentionStartNode.previousSibling) && mentionStartNode.previousSibling.contentEditable === 'false';
217
+ }
218
+ if (this.isCopyAll) {
219
+ return;
220
+ }
221
+ var pointer;
222
+ var isRootParent = false;
223
+ if (!this.isSlashMenuOpen &&
224
+ restrictKeys.indexOf(args.keyCode) < 0 && !args.shiftKey && !args.ctrlKey && !args.altKey &&
225
+ !isEmptyNode && !isMention) {
226
+ pointer = range.startOffset;
227
+ range.startContainer.nodeName === '#text' ? range.startContainer.parentElement !== this.parent.inputElement ? range.startContainer.parentElement.classList.add('currentStartMark')
228
+ : isRootParent = true : range.startContainer.classList.add('currentStartMark');
229
+ if (range.startContainer.textContent.charCodeAt(0) === 8203) {
230
+ var previousLength_1 = range.startContainer.textContent.length;
231
+ var previousRange = range.startOffset;
232
+ this.removeZeroWidthSpaces(range.startContainer, regEx);
233
+ pointer = previousRange === 0 ? previousRange : previousRange - (previousLength_1 - range.startContainer.textContent.length);
234
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);
235
+ }
236
+ var previousLength = this.parent.inputElement.innerHTML.length;
237
+ var currentLength = this.parent.inputElement.innerHTML.replace(regEx, '').length;
238
+ var focusNode = range.startContainer;
239
+ if (previousLength > currentLength && !isRootParent) {
240
+ if (focusNode.textContent.trim().length !== 0 && focusNode.previousSibling) {
241
+ var tempSpan = document.createElement('span');
242
+ tempSpan.className = 'tempSpan';
243
+ range.insertNode(tempSpan);
244
+ }
245
+ var currentChild = this.parent.inputElement.firstChild;
246
+ while (!ej2_base_1.isNullOrUndefined(currentChild)) {
247
+ if (currentChild.nodeName === '#text') {
248
+ currentChild = currentChild.nextElementSibling;
249
+ continue;
250
+ }
251
+ if (currentChild.textContent.replace(regEx, '').trim().length > 0 && currentChild.textContent.includes('\u200B')) {
252
+ this.removeZeroWidthSpaces(currentChild, regEx);
253
+ }
254
+ currentChild = currentChild.nextElementSibling;
255
+ }
256
+ var tempSpanToRemove = this.parent.inputElement.querySelector('.tempSpan');
257
+ if (tempSpanToRemove && tempSpanToRemove.previousSibling && focusNode.textContent.trim().length !== 0) {
258
+ focusNode = tempSpanToRemove.previousSibling;
259
+ pointer = tempSpanToRemove.previousSibling.textContent.length;
260
+ var parentElement = tempSpanToRemove.parentNode;
261
+ parentElement.removeChild(tempSpanToRemove);
262
+ tempSpanToRemove = null;
263
+ }
264
+ var currentElement = this.parent.inputElement.querySelector('.currentStartMark');
265
+ var currentChildNode = currentElement ? currentElement.childNodes : [];
266
+ if (currentChildNode.length > 1) {
267
+ for (var i = 0; i < currentChildNode.length; i++) {
268
+ if (currentChildNode[i].nodeName === '#text' && currentChildNode[i].textContent.length === 0) {
269
+ ej2_base_1.detach(currentChildNode[i]);
270
+ i--;
271
+ }
272
+ if (!ej2_base_1.isNullOrUndefined(currentChildNode[i]) && focusNode.textContent.replace(regEx, '') === currentChildNode[i].textContent) {
273
+ var iscursorLeft = pointer <= focusNode.textContent.indexOf('\u200B');
274
+ pointer = focusNode.textContent.length > 1 ?
275
+ ((focusNode.textContent === currentChildNode[i].textContent || iscursorLeft) ? pointer :
276
+ pointer - (focusNode.textContent.length - focusNode.textContent.replace(regEx, '').length)) :
277
+ focusNode.textContent.length;
278
+ focusNode = currentChildNode[i];
279
+ }
280
+ }
281
+ }
282
+ else if (currentChildNode.length === 1) {
283
+ if (focusNode.textContent.replace(regEx, '') === currentChildNode[0].textContent) {
284
+ focusNode = currentChildNode[0];
285
+ }
286
+ }
287
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), focusNode, pointer);
288
+ }
289
+ var currentElem = this.parent.inputElement.querySelector('.currentStartMark');
290
+ if (!ej2_base_1.isNullOrUndefined(currentElem)) {
291
+ currentElem.classList.remove('currentStartMark');
292
+ if (currentElem.getAttribute('class').trim() === '') {
293
+ currentElem.removeAttribute('class');
294
+ }
295
+ }
296
+ if (!ej2_base_1.isNullOrUndefined(range.startContainer.previousSibling) && !ej2_base_1.isNullOrUndefined(range.startContainer.previousSibling.parentElement) &&
297
+ range.startContainer.parentElement === range.startContainer.previousSibling.parentElement &&
298
+ range.startContainer.previousSibling.textContent.charCodeAt(0) === 8203 &&
299
+ range.startContainer.previousSibling.textContent.length <= 1) {
300
+ range.startContainer.previousSibling.textContent = range.startContainer.previousSibling.textContent.replace(regEx, '');
301
+ }
302
+ if (range.endContainer.textContent.charCodeAt(range.endOffset) === 8203) {
303
+ pointer = range.startOffset;
304
+ range.endContainer.textContent = range.endContainer.textContent.replace(regEx, '');
305
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), range.startContainer, pointer);
306
+ }
307
+ }
308
+ this.isSlashMenuOpen = false;
309
+ };
310
+ HtmlEditor.prototype.removeZeroWidthSpaces = function (node, regex) {
311
+ var _this = this;
312
+ if (node.nodeType === Node.TEXT_NODE) {
313
+ if (node.textContent !== null) {
314
+ node.textContent = node.textContent.replace(regex, '');
315
+ }
316
+ return;
317
+ }
318
+ node.childNodes.forEach(function (child) {
319
+ _this.removeZeroWidthSpaces(child, regex);
320
+ });
321
+ };
322
+ HtmlEditor.prototype.onKeyDown = function (e) {
323
+ var _this = this;
324
+ if (e.args.ctrlKey && e.args.keyCode === 65) {
325
+ this.isCopyAll = true;
326
+ }
327
+ else {
328
+ this.isCopyAll = false;
329
+ }
330
+ var currentRange;
331
+ var args = e.args;
332
+ if (this.parent.inputElement.querySelectorAll('.e-cell-select:not(table)').length > 1 && (args.keyCode === 8 || args.keyCode === 32 || args.keyCode === 13)) {
333
+ this.tableSelectionKeyAction(e);
334
+ this.parent.autoResize();
335
+ return;
336
+ }
337
+ if (ej2_base_1.Browser.info.name === 'chrome') {
338
+ currentRange = this.parent.getRange();
339
+ this.backSpaceCleanup(e, currentRange);
340
+ this.deleteCleanup(e, currentRange);
341
+ }
342
+ if (args.keyCode === 9 && this.parent.enableTabKey) {
343
+ this.parent.formatter.saveData(e);
344
+ if (!ej2_base_1.isNullOrUndefined(args.target) && ej2_base_1.isNullOrUndefined(ej2_base_1.closest(args.target, '.e-rte-toolbar'))) {
345
+ var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());
346
+ var parentNode = this.nodeSelectionObj.getParentNodeCollection(range);
347
+ if (!((parentNode[0].nodeName === 'LI' || ej2_base_1.closest(parentNode[0], 'li') ||
348
+ ej2_base_1.closest(parentNode[0], 'table')))) {
349
+ args.preventDefault();
350
+ var selection = this.contentRenderer.getDocument().getSelection().getRangeAt(0);
351
+ var alignmentNodes = this.parent.formatter.editorManager.domNode.blockNodes();
352
+ if (this.parent.enterKey === 'BR') {
353
+ if (selection.startOffset !== selection.endOffset && selection.startOffset === 0) {
354
+ var save = this.nodeSelectionObj.save(range, this.contentRenderer.getDocument());
355
+ this.parent.formatter.editorManager.domNode.setMarker(save);
356
+ alignmentNodes = this.parent.formatter.editorManager.domNode.blockNodes();
357
+ this.parent.formatter.editorManager.domNode.convertToBlockNodes(alignmentNodes, false);
358
+ this.marginTabAdd(args.shiftKey, alignmentNodes);
359
+ save = this.parent.formatter.editorManager.domNode.saveMarker(save);
360
+ save.restore();
361
+ }
362
+ else {
363
+ inserthtml_1.InsertHtml.Insert(this.contentRenderer.getDocument(), '&nbsp;&nbsp;&nbsp;&nbsp;');
364
+ this.rangeCollection.push(this.nodeSelectionObj.getRange(this.contentRenderer.getDocument()));
365
+ }
366
+ }
367
+ else {
368
+ if (selection.startOffset !== selection.endOffset && selection.startOffset === 0) {
369
+ this.marginTabAdd(args.shiftKey, alignmentNodes);
370
+ }
371
+ else {
372
+ inserthtml_1.InsertHtml.Insert(this.contentRenderer.getDocument(), '&nbsp;&nbsp;&nbsp;&nbsp;');
373
+ this.rangeCollection.push(this.nodeSelectionObj.getRange(this.contentRenderer.getDocument()));
374
+ }
375
+ }
376
+ }
377
+ }
378
+ this.parent.formatter.saveData(e);
379
+ }
380
+ var regex = /[^\w\s\\/\\.\\:]/g;
381
+ if (e.args.action === 'space' || e.args.action === 'enter' || e.args.keyCode === 13 || regex.test(e.args.key)) {
382
+ this.spaceLink(e.args);
383
+ if (this.parent.editorMode === 'HTML' && !this.parent.readonly) {
384
+ var currentLength = this.parent.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length;
385
+ var selectionLength = this.parent.getSelection().length;
386
+ var totalLength = (currentLength - selectionLength) + 1;
387
+ if (!(this.parent.maxLength === -1 || totalLength <= this.parent.maxLength) &&
388
+ e.args.keyCode === 13) {
389
+ e.args.preventDefault();
390
+ return;
391
+ }
392
+ else {
393
+ this.parent.notify(events.enterHandler, { args: e.args });
394
+ util_1.scrollToCursor(this.parent.contentModule.getDocument(), this.parent.inputElement);
395
+ }
396
+ }
397
+ }
398
+ if (e.args.action === 'space') {
399
+ var currentRange_1 = this.parent.getRange();
400
+ var editorValue = currentRange_1.startContainer.textContent.slice(0, currentRange_1.startOffset);
401
+ var orderedList_1 = this.isOrderedList(editorValue);
402
+ var unOrderedList = this.isUnOrderedList(editorValue);
403
+ var hasSplitedText = false;
404
+ if (orderedList_1 || unOrderedList) {
405
+ hasSplitedText = this.hasMultipleTextNode(currentRange_1);
406
+ if (hasSplitedText && !this.isMention) {
407
+ var element = currentRange_1.startContainer;
408
+ element = this.parent.formatter.editorManager.domNode.getImmediateBlockNode(element);
409
+ if (element.childNodes.length > 0 && !element.innerHTML.includes('<br>')) {
410
+ hasSplitedText = false;
411
+ }
412
+ }
413
+ }
414
+ if (!hasSplitedText && (orderedList_1 && !unOrderedList || unOrderedList && !orderedList_1)) {
415
+ var eventArgs_1 = {
416
+ callBack: null,
417
+ event: e.args,
418
+ name: 'keydown-handler',
419
+ enterKey: this.parent.enterKey,
420
+ shiftEnterKey: this.parent.shiftEnterKey
421
+ };
422
+ var actionBeginArgs = {
423
+ cancel: false,
424
+ item: { command: 'Lists', subCommand: orderedList_1 ? 'OL' : 'UL' },
425
+ name: 'actionBegin',
426
+ originalEvent: e.args,
427
+ requestType: orderedList_1 ? 'OL' : 'UL'
428
+ };
429
+ this.parent.trigger(events.actionBegin, actionBeginArgs, function (actionBeginArgs) {
430
+ if (!actionBeginArgs.cancel) {
431
+ _this.parent.formatter.editorManager.observer.notify(constant_1.ON_BEGIN, eventArgs_1);
432
+ _this.parent.trigger(events.actionComplete, {
433
+ editorMode: _this.parent.editorMode,
434
+ elements: _this.parent.formatter.editorManager.domNode.blockNodes(),
435
+ event: e.args,
436
+ name: events.actionComplete,
437
+ range: _this.parent.getRange(),
438
+ requestType: orderedList_1 ? 'OL' : 'UL'
439
+ });
440
+ }
441
+ });
442
+ }
443
+ }
444
+ if (ej2_base_1.Browser.info.name === 'chrome' && (!ej2_base_1.isNullOrUndefined(this.rangeElement) && !ej2_base_1.isNullOrUndefined(this.oldRangeElement) ||
445
+ !ej2_base_1.isNullOrUndefined(this.deleteRangeElement) && !ej2_base_1.isNullOrUndefined(this.deleteOldRangeElement)) &&
446
+ currentRange.startContainer.parentElement.tagName !== 'TD' && currentRange.startContainer.parentElement.tagName !== 'TH') {
447
+ this.rangeElement = null;
448
+ this.oldRangeElement = null;
449
+ this.deleteRangeElement = null;
450
+ this.deleteOldRangeElement = null;
451
+ if (!this.isImageDelete) {
452
+ args.preventDefault();
453
+ }
454
+ args.preventDefault();
455
+ }
456
+ this.parent.autoResize();
457
+ };
458
+ HtmlEditor.prototype.isOrderedList = function (editorValue) {
459
+ editorValue = editorValue.replace(/\u200B/g, '');
460
+ var olListStartRegex = [/^[1]+[.]+$/, /^[i]+[.]+$/, /^[a]+[.]+$/];
461
+ if (!ej2_base_1.isNullOrUndefined(editorValue)) {
462
+ for (var i = 0; i < olListStartRegex.length; i++) {
463
+ if (olListStartRegex[i].test(editorValue)) {
464
+ return true;
465
+ }
466
+ }
467
+ }
468
+ return false;
469
+ };
470
+ HtmlEditor.prototype.isUnOrderedList = function (editorValue) {
471
+ editorValue = editorValue.replace(/\u200B/g, '');
472
+ var ulListStartRegex = [/^[*]$/, /^[-]$/];
473
+ if (!ej2_base_1.isNullOrUndefined(editorValue)) {
474
+ for (var i = 0; i < ulListStartRegex.length; i++) {
475
+ if (ulListStartRegex[i].test(editorValue)) {
476
+ return true;
477
+ }
478
+ }
479
+ }
480
+ return false;
481
+ };
482
+ HtmlEditor.prototype.hasMultipleTextNode = function (range) {
483
+ this.isMention = false;
484
+ if (range && range.startContainer && range.startContainer.parentNode) {
485
+ var parentNode = range.startContainer.parentNode;
486
+ if (range.startContainer.previousElementSibling &&
487
+ range.startContainer.previousElementSibling.classList.contains('e-mention-chip')
488
+ && !range.startContainer.previousElementSibling.isContentEditable) {
489
+ this.isMention = true;
490
+ return true;
491
+ }
492
+ if (this.parent.enterKey === 'BR' || ej2_base_1.closest(parentNode, 'table')) {
493
+ return false;
494
+ }
495
+ var childNodes = parentNode.childNodes;
496
+ var textNodes = [];
497
+ for (var i = 0; i < childNodes.length; i++) {
498
+ var node = childNodes[i];
499
+ if (node && node.nodeType === Node.TEXT_NODE) {
500
+ textNodes.push(node);
501
+ if (textNodes.length > 1) {
502
+ return true;
503
+ }
504
+ }
505
+ }
506
+ }
507
+ return false;
508
+ };
509
+ HtmlEditor.prototype.isCursorAtBlockStart = function (range) {
510
+ if (range.startOffset !== 0 || range.endOffset !== 0) {
511
+ return false;
512
+ }
513
+ var cursorNode = range.startContainer;
514
+ var elementAtCursor = cursorNode.nodeType === Node.TEXT_NODE ?
515
+ cursorNode.parentElement : cursorNode;
516
+ if (elementAtCursor.tagName === 'TD' || elementAtCursor.tagName === 'TH') {
517
+ return false;
518
+ }
519
+ var blockNode = this.parent.formatter.editorManager.domNode.getImmediateBlockNode(elementAtCursor);
520
+ if (cursorNode === blockNode && range.startOffset === 0) {
521
+ return true;
522
+ }
523
+ var currentNode = elementAtCursor;
524
+ var previousContentFound = false;
525
+ while (currentNode && currentNode !== blockNode) {
526
+ var sibling = currentNode.previousSibling;
527
+ while (sibling) {
528
+ if (sibling.nodeType === Node.TEXT_NODE && (!sibling.textContent || !sibling.textContent.trim())) {
529
+ sibling = sibling.previousSibling;
530
+ continue;
531
+ }
532
+ previousContentFound = true;
533
+ break;
534
+ }
535
+ if (previousContentFound) {
536
+ break;
537
+ }
538
+ currentNode = currentNode.parentNode;
539
+ }
540
+ return !previousContentFound;
541
+ };
542
+ HtmlEditor.prototype.backSpaceCleanup = function (e, currentRange) {
543
+ var isLiElement = false;
544
+ var isPreviousNotContentEditable = true;
545
+ if (!ej2_base_1.isNullOrUndefined(currentRange.startContainer.previousSibling) &&
546
+ currentRange.startContainer.previousSibling.nodeName === 'SPAN') {
547
+ isPreviousNotContentEditable = currentRange.startContainer.previousSibling.contentEditable === 'false' ? false : true;
548
+ }
549
+ var checkNode = currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer;
550
+ var isSelectedPositionNotStart = ej2_base_1.closest(currentRange.startContainer.nodeName === '#text' ? currentRange.startContainer.parentElement : currentRange.startContainer, 'li') ?
551
+ checkNode.nodeName !== 'li' && ej2_base_1.isNullOrUndefined(checkNode.previousSibling) : true;
552
+ var isCursorAtStart = this.isCursorAtBlockStart(currentRange);
553
+ if (e.args.code === 'Backspace' &&
554
+ e.args.keyCode === 8 &&
555
+ isCursorAtStart && currentRange.startContainer.textContent !== ' ' &&
556
+ this.parent.getSelection().length === 0 && currentRange.startContainer.textContent.length > 0 &&
557
+ isPreviousNotContentEditable && isSelectedPositionNotStart) {
558
+ if ((!this.parent.formatter.editorManager.domNode.isBlockNode(checkNode) &&
559
+ !ej2_base_1.isNullOrUndefined(checkNode.previousSibling) && checkNode.previousSibling.nodeName === 'BR') ||
560
+ (!ej2_base_1.isNullOrUndefined(currentRange.startContainer.previousSibling) && currentRange.startContainer.previousSibling.nodeName === 'BR')) {
561
+ return;
562
+ }
563
+ this.rangeElement = this.getRootBlockNode(currentRange.startContainer);
564
+ if (this.rangeElement.tagName === 'OL' || this.rangeElement.tagName === 'UL') {
565
+ var liElement = this.getRangeLiNode(currentRange.startContainer);
566
+ if (liElement.previousElementSibling && liElement.previousElementSibling.childElementCount > 0) {
567
+ this.oldRangeElement = liElement.previousElementSibling.lastElementChild.nodeName === 'BR' ?
568
+ liElement.previousElementSibling : liElement.previousElementSibling.lastChild;
569
+ if (!ej2_base_1.isNullOrUndefined(liElement.lastElementChild) && liElement.lastElementChild.nodeName !== 'BR' &&
570
+ ej2_base_1.isNullOrUndefined(liElement.lastElementChild.previousSibling) && liElement.lastChild.nodeName !== '#text') {
571
+ this.rangeElement = liElement.lastElementChild;
572
+ isLiElement = true;
573
+ }
574
+ else {
575
+ this.rangeElement = liElement;
576
+ }
577
+ }
578
+ }
579
+ else if (this.rangeElement === this.parent.inputElement || this.rangeElement.tagName === 'TABLE' ||
580
+ (!ej2_base_1.isNullOrUndefined(this.rangeElement.previousElementSibling) && this.rangeElement.previousElementSibling.tagName === 'TABLE')) {
581
+ return;
582
+ }
583
+ else {
584
+ this.oldRangeElement = this.rangeElement.previousElementSibling;
585
+ }
586
+ var findBlockElement = this.parent.formatter.editorManager.domNode.blockNodes();
587
+ if (!ej2_base_1.isNullOrUndefined(findBlockElement[0]) && currentRange.collapsed && currentRange.startOffset === 0 && currentRange.endOffset === 0 && findBlockElement[0].style.marginLeft !== '') {
588
+ findBlockElement[0].style.marginLeft = (parseInt(findBlockElement[0].style.marginLeft, 10) <= 20) ? '' : (parseInt(findBlockElement[0].style.marginLeft, 10) - 20 + 'px');
589
+ }
590
+ if (ej2_base_1.isNullOrUndefined(this.oldRangeElement) && ej2_base_1.isNullOrUndefined(findBlockElement[0].previousSibling)) {
591
+ return;
592
+ }
593
+ else if (findBlockElement[0].previousSibling) {
594
+ var prevSibling = findBlockElement[0].previousSibling;
595
+ var currentElement = findBlockElement[0];
596
+ if (prevSibling.textContent.trim()) {
597
+ this.removeLastBr(prevSibling);
598
+ var lastPosition = this.parent.formatter.editorManager.nodeSelection.findLastTextPosition(prevSibling);
599
+ var cursorpointer = lastPosition.offset;
600
+ var lastChild = lastPosition.node;
601
+ var childNodes = Array.from(currentElement.childNodes);
602
+ var save = this.nodeSelectionObj.save(currentRange, this.contentRenderer.getDocument());
603
+ if (this.isPreviousNodeBrAfterBackSpace) {
604
+ this.parent.formatter.editorManager.domNode.setMarker(save);
605
+ }
606
+ var previousBlockElements = this.parent.formatter.editorManager.domNode.getImmediateBlockNode(lastChild);
607
+ for (var i = 0; i < childNodes.length; i++) {
608
+ previousBlockElements.appendChild(childNodes[i].cloneNode(true));
609
+ }
610
+ if (this.isPreviousNodeBrAfterBackSpace) {
611
+ save = this.parent.formatter.editorManager.domNode.saveMarker(save);
612
+ save.restore();
613
+ }
614
+ else {
615
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), lastChild, cursorpointer);
616
+ }
617
+ currentElement.parentNode.removeChild(currentElement);
618
+ e.args.preventDefault();
619
+ }
620
+ else {
621
+ prevSibling.parentNode.removeChild(prevSibling);
622
+ }
623
+ }
624
+ else {
625
+ if (this.oldRangeElement.tagName === 'OL' || this.oldRangeElement.tagName === 'UL') {
626
+ this.oldRangeElement = this.oldRangeElement.lastElementChild.lastElementChild
627
+ ? this.oldRangeElement.lastElementChild.lastElementChild :
628
+ this.oldRangeElement.lastElementChild;
629
+ }
630
+ var lastNode = this.oldRangeElement.lastChild ? this.oldRangeElement.lastChild : this.oldRangeElement;
631
+ while (lastNode.nodeType !== 3 && lastNode.nodeName !== '#text' &&
632
+ lastNode.nodeName !== 'BR' && !ej2_base_1.isNullOrUndefined(lastNode.lastChild)) {
633
+ lastNode = lastNode.lastChild;
634
+ }
635
+ if (lastNode.nodeName === 'IMG') {
636
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), lastNode.parentElement, lastNode.parentElement.childNodes.length);
637
+ }
638
+ else {
639
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), lastNode, lastNode.textContent.length);
640
+ }
641
+ var checkParent = false;
642
+ if (this.oldRangeElement && this.oldRangeElement.nodeName !== '#text' && this.oldRangeElement.querySelectorAll('BR').length === 1) {
643
+ var brElement = this.oldRangeElement.querySelector('BR');
644
+ if (brElement && ej2_base_1.isNullOrUndefined(brElement.nextSibling)) {
645
+ var brParentElement = brElement.parentNode;
646
+ var currentState = this.oldRangeElement.innerHTML;
647
+ this.parent.formatter.saveData(currentState);
648
+ ej2_base_1.detach(brElement);
649
+ if (brParentElement && brParentElement.childNodes.length === 0) {
650
+ ej2_base_1.detach(brParentElement);
651
+ checkParent = true;
652
+ }
653
+ }
654
+ }
655
+ if (!ej2_base_1.isNullOrUndefined(this.rangeElement) && this.oldRangeElement !== this.rangeElement && !checkParent) {
656
+ while (this.rangeElement.firstChild) {
657
+ if (this.oldRangeElement.nodeName === '#text') {
658
+ this.oldRangeElement.parentElement.appendChild(this.rangeElement.childNodes[0]);
659
+ }
660
+ else {
661
+ this.oldRangeElement.appendChild(this.rangeElement.childNodes[0]);
662
+ }
663
+ }
664
+ !isLiElement ? ej2_base_1.detach(this.rangeElement) : ej2_base_1.detach(this.rangeElement.parentElement);
665
+ this.oldRangeElement.normalize();
666
+ }
667
+ }
668
+ }
669
+ if (e.args.code === 'Backspace' && e.args.keyCode === 8 &&
670
+ currentRange.startContainer.nodeType !== Node.TEXT_NODE) {
671
+ var ChildNode = !ej2_base_1.isNullOrUndefined(currentRange.startContainer.childNodes[currentRange.startOffset - 1]) &&
672
+ !ej2_base_1.isNullOrUndefined(currentRange.startContainer.childNodes[currentRange.startOffset - 1].isContentEditable) &&
673
+ !currentRange.startContainer.childNodes[currentRange.startOffset - 1].isContentEditable ?
674
+ currentRange.startContainer.childNodes[currentRange.startOffset - 1] : null;
675
+ if (ChildNode) {
676
+ ChildNode.remove();
677
+ e.args.preventDefault();
678
+ }
679
+ }
680
+ };
681
+ HtmlEditor.prototype.getLastNode = function (node) {
682
+ while (node && node.lastChild) {
683
+ node = node.lastChild;
684
+ }
685
+ while (node && node.nodeType === Node.TEXT_NODE && !node.nodeValue.trim()) {
686
+ node = node.previousSibling;
687
+ }
688
+ return node;
689
+ };
690
+ HtmlEditor.prototype.removeLastBr = function (element) {
691
+ var lastNode = this.getLastNode(element);
692
+ if (lastNode && lastNode.nodeName === 'BR' && lastNode.parentNode) {
693
+ this.isPreviousNodeBrAfterBackSpace = !ej2_base_1.isNullOrUndefined(lastNode.previousSibling) &&
694
+ lastNode.previousSibling.nodeName === 'BR' ? true : false;
695
+ lastNode.parentNode.removeChild(lastNode);
696
+ }
697
+ };
698
+ HtmlEditor.prototype.deleteCleanup = function (e, currentRange) {
699
+ var isLiElement = false;
700
+ var liElement;
701
+ var rootElement;
702
+ if (e.args.code === 'Delete' && e.args.keyCode === 46 &&
703
+ this.parent.contentModule.getText().trim().replace(/(\r\n|\n|\r|\t)/gm, '').replace(/\u200B/g, '').length !== 0 && this.parent.getSelection().length === 0 && currentRange.startContainer.parentElement.tagName !== 'TD' &&
704
+ currentRange.startContainer.parentElement.tagName !== 'TH') {
705
+ this.deleteRangeElement = rootElement = this.getRootBlockNode(currentRange.startContainer);
706
+ if (this.deleteRangeElement.tagName === 'OL' || this.deleteRangeElement.tagName === 'UL') {
707
+ liElement = this.getRangeLiNode(currentRange.startContainer);
708
+ if (liElement.nextElementSibling && liElement.nextElementSibling.childElementCount > 0
709
+ && !liElement.nextElementSibling.querySelector('BR')) {
710
+ if (!ej2_base_1.isNullOrUndefined(liElement.lastElementChild)) {
711
+ this.deleteRangeElement = liElement.lastElementChild;
712
+ isLiElement = true;
713
+ }
714
+ else {
715
+ this.deleteRangeElement = liElement;
716
+ }
717
+ }
718
+ else {
719
+ this.deleteRangeElement = this.getRangeElement(liElement);
720
+ }
721
+ }
722
+ else if (this.deleteRangeElement.nodeType === 3 || (this.deleteRangeElement.tagName === 'TABLE' ||
723
+ (!ej2_base_1.isNullOrUndefined(this.deleteRangeElement.nextElementSibling) && this.deleteRangeElement.nextElementSibling.tagName === 'TABLE'))) {
724
+ return;
725
+ }
726
+ var isImgWithEmptyBlockNode = false;
727
+ if (this.deleteRangeElement.querySelectorAll('img').length > 0 && this.deleteRangeElement.textContent.trim() === '') {
728
+ isImgWithEmptyBlockNode = true;
729
+ }
730
+ if (this.getCaretIndex(currentRange, this.deleteRangeElement) === this.deleteRangeElement.textContent.length &&
731
+ !isImgWithEmptyBlockNode) {
732
+ if (!ej2_base_1.isNullOrUndefined(liElement)) {
733
+ if (isLiElement || !ej2_base_1.isNullOrUndefined(liElement.nextElementSibling)) {
734
+ this.deleteOldRangeElement = this.getRangeElement(liElement.nextElementSibling);
735
+ }
736
+ else {
737
+ this.deleteOldRangeElement = rootElement.nextElementSibling;
738
+ }
739
+ }
740
+ else {
741
+ this.deleteOldRangeElement = this.deleteRangeElement.nextElementSibling;
742
+ }
743
+ if (ej2_base_1.isNullOrUndefined(this.deleteOldRangeElement)) {
744
+ return;
745
+ }
746
+ else {
747
+ if (currentRange.startOffset === 0 && currentRange.endOffset === 1 &&
748
+ this.deleteRangeElement.childNodes[0].nodeName === 'IMG') {
749
+ this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement, 0, 1);
750
+ this.isImageDelete = true;
751
+ }
752
+ else {
753
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), this.deleteRangeElement, this.deleteRangeElement.childNodes.length);
754
+ this.isImageDelete = false;
755
+ }
756
+ var brNode = this.deleteRangeElement.querySelector('BR');
757
+ var brLastChildNode = this.deleteRangeElement.lastChild;
758
+ var brParentNode = void 0;
759
+ if (brLastChildNode) {
760
+ brParentNode = brLastChildNode.parentNode;
761
+ }
762
+ if (brNode && brNode.classList.contains('e-rte-image-remove-focus')) {
763
+ ej2_base_1.removeClass([brNode], ['e-rte-image-focus']);
764
+ return;
765
+ }
766
+ else if (brNode && brLastChildNode && brLastChildNode.nodeName === 'BR') {
767
+ ej2_base_1.detach(brLastChildNode);
768
+ if (!ej2_base_1.isNullOrUndefined(brParentNode) && brParentNode.childNodes.length === 0) {
769
+ ej2_base_1.detach(brParentNode);
770
+ }
771
+ if (!ej2_base_1.isNullOrUndefined(this.deleteRangeElement) && this.deleteOldRangeElement.tagName &&
772
+ (this.deleteOldRangeElement.tagName === 'OL' || this.deleteOldRangeElement.tagName === 'UL')
773
+ && this.deleteOldRangeElement !== this.deleteRangeElement
774
+ && !this.parent.contentModule.getEditPanel().contains(this.deleteRangeElement)) {
775
+ var firstLi = this.deleteOldRangeElement.querySelector('li');
776
+ if (firstLi) {
777
+ var textNode = firstLi;
778
+ while (textNode && textNode.firstChild && textNode.firstChild.nodeType !== Node.TEXT_NODE) {
779
+ textNode = textNode.firstChild;
780
+ }
781
+ if (textNode && textNode.firstChild && textNode.firstChild.nodeType === Node.TEXT_NODE) {
782
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), textNode.firstChild, 0);
783
+ }
784
+ else {
785
+ this.parent.formatter.editorManager.nodeSelection.setCursorPoint(this.parent.contentModule.getDocument(), firstLi, 0);
786
+ }
787
+ }
788
+ else {
789
+ this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), this.deleteOldRangeElement, this.deleteOldRangeElement, 0, 0);
790
+ }
791
+ }
792
+ e.args.preventDefault();
793
+ }
794
+ if (!ej2_base_1.isNullOrUndefined(this.deleteRangeElement) && (this.deleteOldRangeElement.tagName !== 'OL' && this.deleteOldRangeElement.tagName !== 'UL')
795
+ && this.deleteOldRangeElement !== this.deleteRangeElement
796
+ && this.parent.contentModule.getEditPanel().contains(this.deleteRangeElement)) {
797
+ while (this.deleteOldRangeElement.firstChild) {
798
+ this.deleteRangeElement.appendChild(this.deleteOldRangeElement.childNodes[0]);
799
+ }
800
+ if (!isLiElement) {
801
+ ej2_base_1.detach(this.deleteOldRangeElement);
802
+ }
803
+ else {
804
+ ej2_base_1.detach(this.deleteOldRangeElement.parentElement);
805
+ }
806
+ this.deleteRangeElement.normalize();
807
+ }
808
+ else {
809
+ this.deleteRangeElement = null;
810
+ this.deleteOldRangeElement = null;
811
+ }
812
+ }
813
+ }
814
+ else {
815
+ this.deleteRangeElement = null;
816
+ }
817
+ }
818
+ };
819
+ HtmlEditor.prototype.getCaretIndex = function (currentRange, element) {
820
+ var position = 0;
821
+ if (this.parent.contentModule.getDocument().getSelection().rangeCount !== 0) {
822
+ var preCaretRange = currentRange.cloneRange();
823
+ preCaretRange.selectNodeContents(element);
824
+ preCaretRange.setEnd(currentRange.endContainer, currentRange.endOffset);
825
+ position = preCaretRange.toString().length;
826
+ }
827
+ return position;
828
+ };
829
+ HtmlEditor.prototype.getRangeElement = function (element) {
830
+ var rangeElement;
831
+ if (element.childNodes.length <= 1) {
832
+ rangeElement = element.lastElementChild ? element.lastElementChild.tagName === 'BR' ?
833
+ element.lastElementChild.previousElementSibling ? element.lastElementChild.previousElementSibling
834
+ : element : element.lastElementChild : element;
835
+ }
836
+ else {
837
+ rangeElement = element;
838
+ }
839
+ return rangeElement;
840
+ };
841
+ HtmlEditor.prototype.getRootBlockNode = function (rangeBlockNode) {
842
+ for (; rangeBlockNode && this.parent && this.parent.inputElement !== rangeBlockNode; rangeBlockNode = rangeBlockNode) {
843
+ if (rangeBlockNode.parentElement === this.parent.inputElement) {
844
+ break;
845
+ }
846
+ else {
847
+ rangeBlockNode = rangeBlockNode.parentElement;
848
+ }
849
+ }
850
+ return rangeBlockNode;
851
+ };
852
+ HtmlEditor.prototype.getRangeLiNode = function (rangeLiNode) {
853
+ var node = rangeLiNode.parentElement;
854
+ while (node !== this.parent.inputElement) {
855
+ if (node.nodeType === 1 && node.tagName === 'LI') {
856
+ break;
857
+ }
858
+ node = node.parentElement;
859
+ }
860
+ return node;
861
+ };
862
+ HtmlEditor.prototype.onPaste = function (e) {
863
+ var regex = new RegExp(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi);
864
+ if (e.text.match(regex)) {
865
+ if (e.isWordPaste) {
866
+ return;
867
+ }
868
+ e.args.preventDefault();
869
+ var range = this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument());
870
+ var saveSelection = this.parent.formatter.editorManager.nodeSelection.save(range, this.parent.contentModule.getDocument());
871
+ var httpRegex = new RegExp(/([^\S]|^)(((https?\:\/\/)))/gi);
872
+ var wwwRegex = new RegExp(/([^\S]|^)(((www\.))(\S+))/gi);
873
+ var enterSplitText = e.text.split('\n');
874
+ var contentInnerElem = '';
875
+ for (var i = 0; i < enterSplitText.length; i++) {
876
+ if (enterSplitText[i].trim() === '') {
877
+ contentInnerElem += util_2.getDefaultValue(this.parent);
878
+ }
879
+ else {
880
+ var contentWithSpace = '';
881
+ var spaceBetweenContent = true;
882
+ var spaceSplit = enterSplitText[i].split(' ');
883
+ for (var j = 0; j < spaceSplit.length; j++) {
884
+ if (spaceSplit[j].trim() === '') {
885
+ contentWithSpace += spaceBetweenContent ? '&nbsp;' : ' ';
886
+ }
887
+ else {
888
+ spaceBetweenContent = false;
889
+ contentWithSpace += spaceSplit[j] + ' ';
890
+ }
891
+ }
892
+ if (i === 0) {
893
+ contentInnerElem += '<span>' + contentWithSpace.trim() + '</span>';
894
+ }
895
+ else {
896
+ contentInnerElem += '<p>' + contentWithSpace.trim() + '</p>';
897
+ }
898
+ }
899
+ }
900
+ var divElement = this.parent.createElement('div');
901
+ divElement.setAttribute('class', 'pasteContent');
902
+ divElement.style.display = 'inline';
903
+ divElement.innerHTML = contentInnerElem.replace('&para', '&amp;para');
904
+ var paraElem = divElement.querySelectorAll('span, p');
905
+ for (var i = 0; i < paraElem.length; i++) {
906
+ var splitTextContent = paraElem[i].innerHTML.split(' ');
907
+ var resultSplitContent = '';
908
+ for (var j = 0; j < splitTextContent.length; j++) {
909
+ if (splitTextContent[j].match(httpRegex) || splitTextContent[j].match(wwwRegex)) {
910
+ resultSplitContent += '<a class="e-rte-anchor" href="' + splitTextContent[j] +
911
+ '" title="' + splitTextContent[j] + '" target="_blank"' + ' aria-label="' + this.parent.serviceLocator.getService('rteLocale').getConstant('linkAriaLabel') + '">' + splitTextContent[j] + ' </a>';
912
+ }
913
+ else {
914
+ resultSplitContent += splitTextContent[j] + ' ';
915
+ }
916
+ }
917
+ paraElem[i].innerHTML = resultSplitContent.trim();
918
+ }
919
+ var anchorElement = divElement.childNodes[0];
920
+ if (!ej2_base_1.isNullOrUndefined(anchorElement) && !ej2_base_1.isNullOrUndefined(anchorElement.childNodes[0]) && anchorElement.nodeName === 'SPAN' && anchorElement.childNodes[0].nodeName === 'A') {
921
+ divElement.innerHTML = divElement.innerHTML.replace('<span>', '').replace('</span>', '');
922
+ }
923
+ if (!ej2_base_1.isNullOrUndefined(this.parent.pasteCleanupModule)) {
924
+ e.callBack(divElement.innerHTML);
925
+ }
926
+ else {
927
+ this.parent.formatter.editorManager.execCommand('insertHTML', null, null, null, divElement);
928
+ }
929
+ }
930
+ };
931
+ HtmlEditor.prototype.spaceLink = function (e) {
932
+ var range = this.nodeSelectionObj.getRange(this.contentRenderer.getDocument());
933
+ if (range.startContainer.nodeType === Node.TEXT_NODE) {
934
+ var selectNodeEle = this.nodeSelectionObj.getParentNodeCollection(range);
935
+ var text = range.startContainer.textContent.substr(0, range.endOffset);
936
+ var splitText = text.split(' ');
937
+ var urlText = splitText[splitText.length - 1];
938
+ var urlTextRange = range.startOffset - (text.length - splitText[splitText.length - 1].length);
939
+ urlText = urlText.slice(0, urlTextRange);
940
+ var regex = new RegExp(/([^\S]|^)(((https?\:\/\/)|(www\.))(\S+))/gi);
941
+ if (selectNodeEle[0] && selectNodeEle[0].nodeName !== 'A' && urlText.match(regex)) {
942
+ var selection = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());
943
+ var url = urlText.indexOf('http') > -1 ? urlText : 'http://' + urlText;
944
+ var selectParent = this.parent.formatter.editorManager.nodeSelection.getParentNodeCollection(range);
945
+ var value = {
946
+ url: url,
947
+ selection: selection, selectParent: selectParent,
948
+ text: urlText,
949
+ title: '',
950
+ target: '_blank'
951
+ };
952
+ this.parent.formatter.process(this.parent, {
953
+ item: {
954
+ 'command': 'Links',
955
+ 'subCommand': 'CreateLink'
956
+ }
957
+ }, e, value);
958
+ }
959
+ }
960
+ };
961
+ HtmlEditor.prototype.onToolbarClick = function (args) {
962
+ var _this = this;
963
+ var save;
964
+ var selectNodeEle;
965
+ var selectParentEle;
966
+ var item = args.item;
967
+ var closestElement = ej2_base_1.closest(args.originalEvent.target, '.e-rte-quick-popup');
968
+ var target = args.originalEvent.target;
969
+ this.parent.notify(events.closeTooltip, { target: target });
970
+ if (item.command !== 'FormatPainter') {
971
+ if (closestElement && !closestElement.classList.contains('e-rte-inline-popup') && !closestElement.classList.contains('e-rte-text-popup')) {
972
+ if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
973
+ item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor')) {
974
+ if (util_1.isIDevice() && item.command === 'Images') {
975
+ this.nodeSelectionObj.restore();
976
+ }
977
+ var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());
978
+ save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());
979
+ selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);
980
+ selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);
981
+ }
982
+ if (item.command === 'Images') {
983
+ this.parent.notify(events.imageToolbarAction, {
984
+ member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
985
+ });
986
+ }
987
+ if (item.command === 'Audios') {
988
+ this.parent.notify(events.audioToolbarAction, {
989
+ member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
990
+ });
991
+ }
992
+ if (item.command === 'Videos') {
993
+ this.parent.notify(events.videoToolbarAction, {
994
+ member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
995
+ });
996
+ }
997
+ if (item.command === 'Links') {
998
+ this.parent.notify(events.linkToolbarAction, {
999
+ member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1000
+ });
1001
+ }
1002
+ if (item.command === 'Table') {
1003
+ this.parent.notify(events.tableToolbarAction, {
1004
+ member: 'table', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1005
+ });
1006
+ }
1007
+ }
1008
+ else {
1009
+ var linkDialog = document.getElementById(this.parent.getID() + '_rtelink');
1010
+ var imageDialog = document.getElementById(this.parent.getID() + '_image');
1011
+ if (!(item.subCommand === 'SourceCode' || item.subCommand === 'Preview' ||
1012
+ item.subCommand === 'FontColor' || item.subCommand === 'BackgroundColor' || item.subCommand === 'NumberFormatList' || item.subCommand === 'BulletFormatList')) {
1013
+ var range = this.nodeSelectionObj.getRange(this.parent.contentModule.getDocument());
1014
+ if (ej2_base_1.isNullOrUndefined(linkDialog) && ej2_base_1.isNullOrUndefined(imageDialog)) {
1015
+ save = this.nodeSelectionObj.save(range, this.parent.contentModule.getDocument());
1016
+ }
1017
+ selectNodeEle = this.nodeSelectionObj.getNodeCollection(range);
1018
+ selectParentEle = this.nodeSelectionObj.getParentNodeCollection(range);
1019
+ }
1020
+ switch (item.subCommand) {
1021
+ case 'Maximize':
1022
+ this.parent.notify(events.enableFullScreen, { args: args });
1023
+ break;
1024
+ case 'Minimize':
1025
+ this.parent.notify(events.disableFullScreen, { args: args });
1026
+ break;
1027
+ case 'CreateLink':
1028
+ this.parent.notify(events.insertLink, {
1029
+ member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1030
+ });
1031
+ break;
1032
+ case 'RemoveLink':
1033
+ this.parent.notify(events.unLink, {
1034
+ member: 'link', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1035
+ });
1036
+ break;
1037
+ case 'Print':
1038
+ this.parent.print();
1039
+ break;
1040
+ case 'Image':
1041
+ this.parent.notify(events.insertImage, {
1042
+ member: 'image', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1043
+ });
1044
+ break;
1045
+ case 'Audio':
1046
+ this.parent.notify(events.insertAudio, {
1047
+ member: 'audio', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1048
+ });
1049
+ break;
1050
+ case 'Video':
1051
+ this.parent.notify(events.insertVideo, {
1052
+ member: 'video', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1053
+ });
1054
+ break;
1055
+ case 'CreateTable':
1056
+ this.parent.notify(events.createTable, {
1057
+ member: 'table', args: args, selection: save
1058
+ });
1059
+ break;
1060
+ case 'SourceCode':
1061
+ this.parent.notify(events.sourceCode, { member: 'viewSource', args: args });
1062
+ break;
1063
+ case 'Preview':
1064
+ this.parent.notify(events.updateSource, { member: 'updateSource', args: args });
1065
+ break;
1066
+ case 'FontColor':
1067
+ case 'BackgroundColor':
1068
+ break;
1069
+ case 'File':
1070
+ this.parent.notify(events.renderFileManager, {
1071
+ member: 'fileManager', args: args, selectNode: selectNodeEle, selection: save, selectParent: selectParentEle
1072
+ });
1073
+ break;
1074
+ case 'EmojiPicker':
1075
+ this.parent.notify(events.emojiPicker, { member: 'emojiPicker', args: args });
1076
+ break;
1077
+ case 'ImportWord':
1078
+ this.parent.notify(events.onImport, {});
1079
+ break;
1080
+ case 'ExportWord':
1081
+ this.parent.notify(events.onExport, { member: 'ExportWord', args: args });
1082
+ break;
1083
+ case 'ExportPdf':
1084
+ this.parent.notify(events.onExport, { member: 'ExportPdf', args: args });
1085
+ break;
1086
+ default:
1087
+ this.parent.formatter.process(this.parent, args, args.originalEvent, null);
1088
+ break;
1089
+ }
1090
+ if (!ej2_base_1.isNullOrUndefined(this.parent.quickToolbarModule) && ((ej2_base_1.isNullOrUndefined(this.parent.quickToolbarModule.imageQTBar) && item.subCommand === 'Image') ||
1091
+ (ej2_base_1.isNullOrUndefined(this.parent.quickToolbarModule.audioQTBar) && item.subCommand === 'Audio') ||
1092
+ (ej2_base_1.isNullOrUndefined(this.parent.quickToolbarModule.videoQTBar) && item.subCommand === 'Video') ||
1093
+ (ej2_base_1.isNullOrUndefined(this.parent.quickToolbarModule.linkQTBar) && item.subCommand === 'CreateLink'))) {
1094
+ this.parent.notify(events.renderQuickToolbar, {});
1095
+ }
1096
+ }
1097
+ }
1098
+ else {
1099
+ if (args.originalEvent.detail === 1) {
1100
+ clearTimeout(this.clickTimeout);
1101
+ this.clickTimeout = setTimeout(function () {
1102
+ _this.parent.notify(events.formatPainterClick, {
1103
+ member: 'formatPainter', args: args
1104
+ });
1105
+ }, 200);
1106
+ }
1107
+ else {
1108
+ clearTimeout(this.clickTimeout);
1109
+ this.parent.notify(events.formatPainterDoubleClick, {
1110
+ member: 'formatPainter', args: args
1111
+ });
1112
+ }
1113
+ }
1114
+ };
1115
+ HtmlEditor.prototype.instantiateRenderer = function () {
1116
+ if (this.parent.iframeSettings.enable) {
1117
+ this.renderFactory.addRenderer(enum_1.RenderType.Content, new iframe_content_renderer_1.IframeContentRender(this.parent));
1118
+ }
1119
+ else {
1120
+ this.renderFactory.addRenderer(enum_1.RenderType.Content, new content_renderer_1.ContentRender(this.parent));
1121
+ }
1122
+ };
1123
+ HtmlEditor.prototype.removeEventListener = function () {
1124
+ this.parent.off(events.initialEnd, this.render);
1125
+ this.parent.off(events.modelChanged, this.onPropertyChanged);
1126
+ this.parent.off(events.htmlToolbarClick, this.onToolbarClick);
1127
+ this.parent.off(events.destroy, this.destroy);
1128
+ this.parent.off(events.keyDown, this.onKeyDown);
1129
+ this.parent.off(events.initialLoad, this.instantiateRenderer);
1130
+ this.parent.off(events.selectAll, this.selectAll);
1131
+ this.parent.off(events.selectRange, this.selectRange);
1132
+ this.parent.off(events.getSelectedHtml, this.getSelectedHtml);
1133
+ this.parent.off(events.selectionSave, this.onSelectionSave);
1134
+ this.parent.off(events.selectionRestore, this.onSelectionRestore);
1135
+ this.parent.off(events.readOnlyMode, this.updateReadOnly);
1136
+ this.parent.off(events.paste, this.onPaste);
1137
+ this.parent.off(events.tableclass, this.isTableClassAdded);
1138
+ };
1139
+ HtmlEditor.prototype.render = function () {
1140
+ this.contentRenderer = this.renderFactory.getRenderer(enum_1.RenderType.Content);
1141
+ var editElement = this.contentRenderer.getEditPanel();
1142
+ var option = { undoRedoSteps: this.parent.undoRedoSteps, undoRedoTimer: this.parent.undoRedoTimer };
1143
+ if (ej2_base_1.isNullOrUndefined(this.parent.formatter)) {
1144
+ var formatterClass = new html_formatter_1.HTMLFormatter({
1145
+ currentDocument: this.contentRenderer.getDocument(),
1146
+ element: editElement,
1147
+ options: option,
1148
+ formatPainterSettings: this.parent.formatPainterSettings
1149
+ });
1150
+ this.parent.setProperties({ formatter: formatterClass }, true);
1151
+ }
1152
+ else {
1153
+ this.parent.formatter.updateFormatter(editElement, this.contentRenderer.getDocument(), option, this.parent.formatPainterSettings);
1154
+ }
1155
+ if (this.parent.enableXhtml) {
1156
+ this.parent.notify(events.xhtmlValidation, {});
1157
+ }
1158
+ if (this.parent.toolbarSettings.enable) {
1159
+ this.toolbarUpdate = new html_toolbar_status_1.HtmlToolbarStatus(this.parent);
1160
+ }
1161
+ if (this.parent.inlineMode.enable) {
1162
+ if (!ej2_base_1.isNullOrUndefined(this.parent.fontFamily.default)) {
1163
+ editElement.style.fontFamily = this.parent.fontFamily.default;
1164
+ }
1165
+ if (!ej2_base_1.isNullOrUndefined(this.parent.fontSize.default)) {
1166
+ editElement.style.fontSize = this.parent.fontSize.default;
1167
+ }
1168
+ }
1169
+ this.parent.notify(events.bindOnEnd, {});
1170
+ };
1171
+ HtmlEditor.prototype.onPropertyChanged = function (e) {
1172
+ if (!ej2_base_1.isNullOrUndefined(e) && !ej2_base_1.isNullOrUndefined(e.newProp.toolbarSettings) && !ej2_base_1.isNullOrUndefined(e.newProp.toolbarSettings.enable)) {
1173
+ this.toolbarUpdate = new html_toolbar_status_1.HtmlToolbarStatus(this.parent);
1174
+ }
1175
+ if (!ej2_base_1.isNullOrUndefined(e.newProp.formatter)) {
1176
+ var editElement = this.contentRenderer.getEditPanel();
1177
+ var option = { undoRedoSteps: this.parent.undoRedoSteps,
1178
+ undoRedoTimer: this.parent.undoRedoTimer };
1179
+ this.parent.formatter.updateFormatter(editElement, this.contentRenderer.getDocument(), option);
1180
+ }
1181
+ };
1182
+ HtmlEditor.prototype.getModuleName = function () {
1183
+ return 'htmlEditor';
1184
+ };
1185
+ HtmlEditor.prototype.selectAll = function () {
1186
+ var nodes = util_2.getTextNodesUnder(this.parent.contentModule.getDocument(), this.parent.contentModule.getEditPanel());
1187
+ if (nodes.length > 0) {
1188
+ this.parent.formatter.editorManager.nodeSelection.setSelectionText(this.parent.contentModule.getDocument(), nodes[0], nodes[nodes.length - 1], 0, nodes[nodes.length - 1].textContent.length);
1189
+ }
1190
+ };
1191
+ HtmlEditor.prototype.selectRange = function (e) {
1192
+ this.parent.formatter.editorManager.nodeSelection.setRange(this.parent.contentModule.getDocument(), e.range);
1193
+ };
1194
+ HtmlEditor.prototype.getSelectedHtml = function (e) {
1195
+ e.callBack(this.parent.formatter.editorManager.nodeSelection.getRange(this.parent.contentModule.getDocument()).toString());
1196
+ };
1197
+ HtmlEditor.prototype.tableSelectionKeyAction = function (e) {
1198
+ var args = e.args;
1199
+ var tableCellSelectNodes = this.parent.inputElement.querySelectorAll('.e-cell-select');
1200
+ for (var i = 0; i < tableCellSelectNodes.length; i++) {
1201
+ var currentCell = tableCellSelectNodes[i];
1202
+ util_1.removeClassWithAttr([currentCell], [classes.CLS_TABLE_SEL, classes.CLS_TABLE_MULTI_CELL, classes.CLS_TABLE_SEL_END]);
1203
+ if (i === 0) {
1204
+ if (args.keyCode === 32) {
1205
+ currentCell.innerHTML = '&#8203;<br>';
1206
+ }
1207
+ else {
1208
+ currentCell.innerHTML = '<br>';
1209
+ }
1210
+ this.nodeSelectionObj.setCursorPoint(this.parent.contentModule.getDocument(), currentCell.firstChild, 0);
1211
+ }
1212
+ else {
1213
+ currentCell.innerHTML = '<br>';
1214
+ }
1215
+ }
1216
+ };
1217
+ HtmlEditor.prototype.marginTabAdd = function (val, alignmentNodes) {
1218
+ for (var index = 0; index < alignmentNodes.length; index++) {
1219
+ var element = alignmentNodes[index];
1220
+ if (element.closest('li')) {
1221
+ continue;
1222
+ }
1223
+ if (element.style.marginLeft) {
1224
+ var count = parseInt(element.style.marginLeft, 10);
1225
+ if (val) {
1226
+ count -= 20;
1227
+ }
1228
+ else {
1229
+ count += 20;
1230
+ }
1231
+ element.style.marginLeft = count.toString() + 'px';
1232
+ if (element.style.marginLeft === '0px') {
1233
+ element.removeAttribute('style');
1234
+ }
1235
+ }
1236
+ else if (!val) {
1237
+ element.style.marginLeft = '20px';
1238
+ }
1239
+ }
1240
+ };
1241
+ return HtmlEditor;
1242
+ }());
1243
+ exports.HtmlEditor = HtmlEditor;
1244
+ });