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

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 (401) hide show
  1. package/.eslintrc.json +260 -262
  2. package/dist/ej2-richtexteditor.umd.min.js +1 -1
  3. package/dist/ej2-richtexteditor.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-richtexteditor.es2015.js +22 -2
  5. package/dist/es6/ej2-richtexteditor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-richtexteditor.es5.js +23 -2
  7. package/dist/es6/ej2-richtexteditor.es5.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/common/util.js +21 -1
  10. package/src/editor-manager/plugin/inserthtml.js +2 -1
  11. package/styles/bds-lite.css +278 -29
  12. package/styles/bds.css +289 -30
  13. package/styles/bootstrap-dark-lite.css +276 -27
  14. package/styles/bootstrap-dark.css +288 -29
  15. package/styles/bootstrap-lite.css +278 -29
  16. package/styles/bootstrap.css +290 -31
  17. package/styles/bootstrap4-lite.css +276 -27
  18. package/styles/bootstrap4.css +287 -28
  19. package/styles/bootstrap5-dark-lite.css +278 -29
  20. package/styles/bootstrap5-dark.css +289 -30
  21. package/styles/bootstrap5-lite.css +278 -29
  22. package/styles/bootstrap5.3-lite.css +276 -27
  23. package/styles/bootstrap5.3.css +288 -29
  24. package/styles/bootstrap5.css +289 -30
  25. package/styles/fabric-dark-lite.css +276 -27
  26. package/styles/fabric-dark.css +287 -28
  27. package/styles/fabric-lite.css +276 -27
  28. package/styles/fabric.css +287 -28
  29. package/styles/fluent-dark-lite.css +278 -29
  30. package/styles/fluent-dark.css +289 -31
  31. package/styles/fluent-lite.css +278 -29
  32. package/styles/fluent.css +289 -31
  33. package/styles/fluent2-lite.css +280 -31
  34. package/styles/fluent2.css +292 -33
  35. package/styles/highcontrast-light-lite.css +276 -27
  36. package/styles/highcontrast-light.css +287 -28
  37. package/styles/highcontrast-lite.css +276 -27
  38. package/styles/highcontrast.css +287 -28
  39. package/styles/material-dark-lite.css +276 -27
  40. package/styles/material-dark.css +287 -28
  41. package/styles/material-lite.css +276 -27
  42. package/styles/material.css +287 -28
  43. package/styles/material3-dark-lite.css +278 -27
  44. package/styles/material3-dark.css +289 -28
  45. package/styles/material3-lite.css +278 -27
  46. package/styles/material3.css +289 -28
  47. package/styles/rich-text-editor/_bds-definition.scss +9 -1
  48. package/styles/rich-text-editor/_bigger.scss +16 -3
  49. package/styles/rich-text-editor/_bootstrap-dark-definition.scss +9 -1
  50. package/styles/rich-text-editor/_bootstrap-definition.scss +10 -2
  51. package/styles/rich-text-editor/_bootstrap4-definition.scss +9 -1
  52. package/styles/rich-text-editor/_bootstrap5-definition.scss +10 -2
  53. package/styles/rich-text-editor/_bootstrap5.3-definition.scss +9 -1
  54. package/styles/rich-text-editor/_fabric-dark-definition.scss +9 -1
  55. package/styles/rich-text-editor/_fabric-definition.scss +9 -1
  56. package/styles/rich-text-editor/_fluent-definition.scss +9 -2
  57. package/styles/rich-text-editor/_fluent2-definition.scss +10 -2
  58. package/styles/rich-text-editor/_fusionnew-definition.scss +8 -1
  59. package/styles/rich-text-editor/_highcontrast-definition.scss +9 -1
  60. package/styles/rich-text-editor/_highcontrast-light-definition.scss +9 -1
  61. package/styles/rich-text-editor/_layout.scss +208 -25
  62. package/styles/rich-text-editor/_material-dark-definition.scss +9 -1
  63. package/styles/rich-text-editor/_material-definition.scss +9 -1
  64. package/styles/rich-text-editor/_material3-definition.scss +9 -1
  65. package/styles/rich-text-editor/_tailwind-definition.scss +9 -1
  66. package/styles/rich-text-editor/_tailwind3-definition.scss +11 -3
  67. package/styles/rich-text-editor/_theme.scss +3 -0
  68. package/styles/rich-text-editor/bds.css +289 -30
  69. package/styles/rich-text-editor/bootstrap-dark.css +288 -29
  70. package/styles/rich-text-editor/bootstrap.css +290 -31
  71. package/styles/rich-text-editor/bootstrap4.css +287 -28
  72. package/styles/rich-text-editor/bootstrap5-dark.css +289 -30
  73. package/styles/rich-text-editor/bootstrap5.3.css +288 -29
  74. package/styles/rich-text-editor/bootstrap5.css +289 -30
  75. package/styles/rich-text-editor/fabric-dark.css +287 -28
  76. package/styles/rich-text-editor/fabric.css +287 -28
  77. package/styles/rich-text-editor/fluent-dark.css +289 -31
  78. package/styles/rich-text-editor/fluent.css +289 -31
  79. package/styles/rich-text-editor/fluent2.css +292 -33
  80. package/styles/rich-text-editor/highcontrast-light.css +287 -28
  81. package/styles/rich-text-editor/highcontrast.css +287 -28
  82. package/styles/rich-text-editor/icons/_bds.scss +4 -1
  83. package/styles/rich-text-editor/icons/_bootstrap-dark.scss +4 -1
  84. package/styles/rich-text-editor/icons/_bootstrap.scss +4 -2
  85. package/styles/rich-text-editor/icons/_bootstrap4.scss +4 -2
  86. package/styles/rich-text-editor/icons/_bootstrap5.3.scss +4 -2
  87. package/styles/rich-text-editor/icons/_bootstrap5.scss +4 -2
  88. package/styles/rich-text-editor/icons/_fabric-dark.scss +4 -2
  89. package/styles/rich-text-editor/icons/_fabric.scss +4 -2
  90. package/styles/rich-text-editor/icons/_fluent.scss +5 -1
  91. package/styles/rich-text-editor/icons/_fluent2.scss +4 -2
  92. package/styles/rich-text-editor/icons/_fusionnew.scss +4 -2
  93. package/styles/rich-text-editor/icons/_highcontrast-light.scss +5 -1
  94. package/styles/rich-text-editor/icons/_highcontrast.scss +5 -1
  95. package/styles/rich-text-editor/icons/_material-dark.scss +5 -1
  96. package/styles/rich-text-editor/icons/_material.scss +5 -1
  97. package/styles/rich-text-editor/icons/_material3.scss +5 -1
  98. package/styles/rich-text-editor/icons/_tailwind.scss +5 -1
  99. package/styles/rich-text-editor/icons/_tailwind3.scss +5 -1
  100. package/styles/rich-text-editor/material-dark.css +287 -28
  101. package/styles/rich-text-editor/material.css +287 -28
  102. package/styles/rich-text-editor/material3-dark.css +289 -28
  103. package/styles/rich-text-editor/material3.css +289 -28
  104. package/styles/rich-text-editor/tailwind-dark.css +289 -30
  105. package/styles/rich-text-editor/tailwind.css +289 -30
  106. package/styles/rich-text-editor/tailwind3.css +291 -32
  107. package/styles/tailwind-dark-lite.css +278 -29
  108. package/styles/tailwind-dark.css +289 -30
  109. package/styles/tailwind-lite.css +278 -29
  110. package/styles/tailwind.css +289 -30
  111. package/styles/tailwind3-lite.css +280 -31
  112. package/styles/tailwind3.css +291 -32
  113. package/aceconfig.js +0 -17
  114. package/blazorGlobalSrc/common/config.d.ts +0 -63
  115. package/blazorGlobalSrc/common/config.js +0 -123
  116. package/blazorGlobalSrc/common/constant.d.ts +0 -117
  117. package/blazorGlobalSrc/common/constant.js +0 -23
  118. package/blazorGlobalSrc/common/editor-styles.d.ts +0 -1
  119. package/blazorGlobalSrc/common/editor-styles.js +0 -5
  120. package/blazorGlobalSrc/common/index.d.ts +0 -7
  121. package/blazorGlobalSrc/common/index.js +0 -9
  122. package/blazorGlobalSrc/common/interface.d.ts +0 -119
  123. package/blazorGlobalSrc/common/interface.js +0 -4
  124. package/blazorGlobalSrc/common/types.d.ts +0 -25
  125. package/blazorGlobalSrc/common/types.js +0 -4
  126. package/blazorGlobalSrc/common/user-agent.d.ts +0 -41
  127. package/blazorGlobalSrc/common/user-agent.js +0 -71
  128. package/blazorGlobalSrc/common/util.d.ts +0 -70
  129. package/blazorGlobalSrc/common/util.js +0 -222
  130. package/blazorGlobalSrc/components.d.ts +0 -8
  131. package/blazorGlobalSrc/components.js +0 -12
  132. package/blazorGlobalSrc/editor-manager/base/classes.d.ts +0 -31
  133. package/blazorGlobalSrc/editor-manager/base/classes.js +0 -28
  134. package/blazorGlobalSrc/editor-manager/base/constant.d.ts +0 -97
  135. package/blazorGlobalSrc/editor-manager/base/constant.js +0 -41
  136. package/blazorGlobalSrc/editor-manager/base/editor-manager.d.ts +0 -95
  137. package/blazorGlobalSrc/editor-manager/base/editor-manager.js +0 -339
  138. package/blazorGlobalSrc/editor-manager/base/enum.d.ts +0 -17
  139. package/blazorGlobalSrc/editor-manager/base/enum.js +0 -4
  140. package/blazorGlobalSrc/editor-manager/base/interface.d.ts +0 -263
  141. package/blazorGlobalSrc/editor-manager/base/interface.js +0 -4
  142. package/blazorGlobalSrc/editor-manager/base/types.d.ts +0 -7
  143. package/blazorGlobalSrc/editor-manager/base/types.js +0 -4
  144. package/blazorGlobalSrc/editor-manager/base.d.ts +0 -8
  145. package/blazorGlobalSrc/editor-manager/base.js +0 -10
  146. package/blazorGlobalSrc/editor-manager/index.d.ts +0 -5
  147. package/blazorGlobalSrc/editor-manager/index.js +0 -9
  148. package/blazorGlobalSrc/editor-manager/plugin/alignments.d.ts +0 -26
  149. package/blazorGlobalSrc/editor-manager/plugin/alignments.js +0 -105
  150. package/blazorGlobalSrc/editor-manager/plugin/audio.d.ts +0 -34
  151. package/blazorGlobalSrc/editor-manager/plugin/audio.js +0 -145
  152. package/blazorGlobalSrc/editor-manager/plugin/clearformat-exec.d.ts +0 -24
  153. package/blazorGlobalSrc/editor-manager/plugin/clearformat-exec.js +0 -47
  154. package/blazorGlobalSrc/editor-manager/plugin/clearformat.d.ts +0 -29
  155. package/blazorGlobalSrc/editor-manager/plugin/clearformat.js +0 -249
  156. package/blazorGlobalSrc/editor-manager/plugin/dom-node.d.ts +0 -351
  157. package/blazorGlobalSrc/editor-manager/plugin/dom-node.js +0 -737
  158. package/blazorGlobalSrc/editor-manager/plugin/dom-tree.d.ts +0 -84
  159. package/blazorGlobalSrc/editor-manager/plugin/dom-tree.js +0 -164
  160. package/blazorGlobalSrc/editor-manager/plugin/emoji-picker-action.d.ts +0 -10
  161. package/blazorGlobalSrc/editor-manager/plugin/emoji-picker-action.js +0 -86
  162. package/blazorGlobalSrc/editor-manager/plugin/format-painter-actions.d.ts +0 -47
  163. package/blazorGlobalSrc/editor-manager/plugin/format-painter-actions.js +0 -622
  164. package/blazorGlobalSrc/editor-manager/plugin/formats.d.ts +0 -43
  165. package/blazorGlobalSrc/editor-manager/plugin/formats.js +0 -597
  166. package/blazorGlobalSrc/editor-manager/plugin/image.d.ts +0 -48
  167. package/blazorGlobalSrc/editor-manager/plugin/image.js +0 -399
  168. package/blazorGlobalSrc/editor-manager/plugin/indents.d.ts +0 -24
  169. package/blazorGlobalSrc/editor-manager/plugin/indents.js +0 -106
  170. package/blazorGlobalSrc/editor-manager/plugin/insert-methods.d.ts +0 -48
  171. package/blazorGlobalSrc/editor-manager/plugin/insert-methods.js +0 -37
  172. package/blazorGlobalSrc/editor-manager/plugin/insert-text.d.ts +0 -22
  173. package/blazorGlobalSrc/editor-manager/plugin/insert-text.js +0 -36
  174. package/blazorGlobalSrc/editor-manager/plugin/inserthtml-exec.d.ts +0 -22
  175. package/blazorGlobalSrc/editor-manager/plugin/inserthtml-exec.js +0 -49
  176. package/blazorGlobalSrc/editor-manager/plugin/inserthtml.d.ts +0 -51
  177. package/blazorGlobalSrc/editor-manager/plugin/inserthtml.js +0 -985
  178. package/blazorGlobalSrc/editor-manager/plugin/isformatted.d.ts +0 -89
  179. package/blazorGlobalSrc/editor-manager/plugin/isformatted.js +0 -199
  180. package/blazorGlobalSrc/editor-manager/plugin/link.d.ts +0 -41
  181. package/blazorGlobalSrc/editor-manager/plugin/link.js +0 -550
  182. package/blazorGlobalSrc/editor-manager/plugin/lists.d.ts +0 -74
  183. package/blazorGlobalSrc/editor-manager/plugin/lists.js +0 -1503
  184. package/blazorGlobalSrc/editor-manager/plugin/ms-word-clean-up.d.ts +0 -61
  185. package/blazorGlobalSrc/editor-manager/plugin/ms-word-clean-up.js +0 -1136
  186. package/blazorGlobalSrc/editor-manager/plugin/nodecutter.d.ts +0 -64
  187. package/blazorGlobalSrc/editor-manager/plugin/nodecutter.js +0 -167
  188. package/blazorGlobalSrc/editor-manager/plugin/selection-commands.d.ts +0 -41
  189. package/blazorGlobalSrc/editor-manager/plugin/selection-commands.js +0 -1069
  190. package/blazorGlobalSrc/editor-manager/plugin/selection-exec.d.ts +0 -24
  191. package/blazorGlobalSrc/editor-manager/plugin/selection-exec.js +0 -49
  192. package/blazorGlobalSrc/editor-manager/plugin/table-selection.d.ts +0 -26
  193. package/blazorGlobalSrc/editor-manager/plugin/table-selection.js +0 -210
  194. package/blazorGlobalSrc/editor-manager/plugin/table.d.ts +0 -56
  195. package/blazorGlobalSrc/editor-manager/plugin/table.js +0 -1100
  196. package/blazorGlobalSrc/editor-manager/plugin/toolbar-status.d.ts +0 -39
  197. package/blazorGlobalSrc/editor-manager/plugin/toolbar-status.js +0 -384
  198. package/blazorGlobalSrc/editor-manager/plugin/undo.d.ts +0 -85
  199. package/blazorGlobalSrc/editor-manager/plugin/undo.js +0 -216
  200. package/blazorGlobalSrc/editor-manager/plugin/video.d.ts +0 -38
  201. package/blazorGlobalSrc/editor-manager/plugin/video.js +0 -311
  202. package/blazorGlobalSrc/editor-manager/plugin.d.ts +0 -27
  203. package/blazorGlobalSrc/editor-manager/plugin.js +0 -31
  204. package/blazorGlobalSrc/global.d.ts +0 -1
  205. package/blazorGlobalSrc/global.js +0 -3
  206. package/blazorGlobalSrc/index.d.ts +0 -8
  207. package/blazorGlobalSrc/index.js +0 -12
  208. package/blazorGlobalSrc/markdown-parser/base/constant.d.ts +0 -39
  209. package/blazorGlobalSrc/markdown-parser/base/constant.js +0 -10
  210. package/blazorGlobalSrc/markdown-parser/base/interface.d.ts +0 -169
  211. package/blazorGlobalSrc/markdown-parser/base/interface.js +0 -4
  212. package/blazorGlobalSrc/markdown-parser/base/markdown-parser.d.ts +0 -69
  213. package/blazorGlobalSrc/markdown-parser/base/markdown-parser.js +0 -87
  214. package/blazorGlobalSrc/markdown-parser/base/types.d.ts +0 -7
  215. package/blazorGlobalSrc/markdown-parser/base/types.js +0 -4
  216. package/blazorGlobalSrc/markdown-parser/base.d.ts +0 -7
  217. package/blazorGlobalSrc/markdown-parser/base.js +0 -9
  218. package/blazorGlobalSrc/markdown-parser/index.d.ts +0 -5
  219. package/blazorGlobalSrc/markdown-parser/index.js +0 -9
  220. package/blazorGlobalSrc/markdown-parser/plugin/clearformat.d.ts +0 -28
  221. package/blazorGlobalSrc/markdown-parser/plugin/clearformat.js +0 -110
  222. package/blazorGlobalSrc/markdown-parser/plugin/formats.d.ts +0 -32
  223. package/blazorGlobalSrc/markdown-parser/plugin/formats.js +0 -225
  224. package/blazorGlobalSrc/markdown-parser/plugin/insert-text.d.ts +0 -24
  225. package/blazorGlobalSrc/markdown-parser/plugin/insert-text.js +0 -49
  226. package/blazorGlobalSrc/markdown-parser/plugin/link.d.ts +0 -24
  227. package/blazorGlobalSrc/markdown-parser/plugin/link.js +0 -50
  228. package/blazorGlobalSrc/markdown-parser/plugin/lists.d.ts +0 -39
  229. package/blazorGlobalSrc/markdown-parser/plugin/lists.js +0 -462
  230. package/blazorGlobalSrc/markdown-parser/plugin/markdown-selection.d.ts +0 -140
  231. package/blazorGlobalSrc/markdown-parser/plugin/markdown-selection.js +0 -104
  232. package/blazorGlobalSrc/markdown-parser/plugin/md-selection-formats.d.ts +0 -31
  233. package/blazorGlobalSrc/markdown-parser/plugin/md-selection-formats.js +0 -335
  234. package/blazorGlobalSrc/markdown-parser/plugin/table.d.ts +0 -52
  235. package/blazorGlobalSrc/markdown-parser/plugin/table.js +0 -216
  236. package/blazorGlobalSrc/markdown-parser/plugin/undo.d.ts +0 -83
  237. package/blazorGlobalSrc/markdown-parser/plugin/undo.js +0 -147
  238. package/blazorGlobalSrc/markdown-parser/plugin.d.ts +0 -11
  239. package/blazorGlobalSrc/markdown-parser/plugin.js +0 -15
  240. package/blazorGlobalSrc/rich-text-editor/actions/base-quick-toolbar.d.ts +0 -114
  241. package/blazorGlobalSrc/rich-text-editor/actions/base-quick-toolbar.js +0 -465
  242. package/blazorGlobalSrc/rich-text-editor/actions/base-toolbar.d.ts +0 -58
  243. package/blazorGlobalSrc/rich-text-editor/actions/base-toolbar.js +0 -216
  244. package/blazorGlobalSrc/rich-text-editor/actions/color-picker.d.ts +0 -52
  245. package/blazorGlobalSrc/rich-text-editor/actions/color-picker.js +0 -241
  246. package/blazorGlobalSrc/rich-text-editor/actions/count.d.ts +0 -55
  247. package/blazorGlobalSrc/rich-text-editor/actions/count.js +0 -117
  248. package/blazorGlobalSrc/rich-text-editor/actions/dropdown-buttons.d.ts +0 -72
  249. package/blazorGlobalSrc/rich-text-editor/actions/dropdown-buttons.js +0 -552
  250. package/blazorGlobalSrc/rich-text-editor/actions/emoji-picker.d.ts +0 -51
  251. package/blazorGlobalSrc/rich-text-editor/actions/emoji-picker.js +0 -853
  252. package/blazorGlobalSrc/rich-text-editor/actions/enter-key.d.ts +0 -28
  253. package/blazorGlobalSrc/rich-text-editor/actions/enter-key.js +0 -821
  254. package/blazorGlobalSrc/rich-text-editor/actions/execute-command-callback.d.ts +0 -11
  255. package/blazorGlobalSrc/rich-text-editor/actions/execute-command-callback.js +0 -28
  256. package/blazorGlobalSrc/rich-text-editor/actions/file-manager.d.ts +0 -45
  257. package/blazorGlobalSrc/rich-text-editor/actions/file-manager.js +0 -249
  258. package/blazorGlobalSrc/rich-text-editor/actions/format-painter.d.ts +0 -25
  259. package/blazorGlobalSrc/rich-text-editor/actions/format-painter.js +0 -156
  260. package/blazorGlobalSrc/rich-text-editor/actions/full-screen.d.ts +0 -40
  261. package/blazorGlobalSrc/rich-text-editor/actions/full-screen.js +0 -148
  262. package/blazorGlobalSrc/rich-text-editor/actions/html-attributes.d.ts +0 -15
  263. package/blazorGlobalSrc/rich-text-editor/actions/html-attributes.js +0 -50
  264. package/blazorGlobalSrc/rich-text-editor/actions/html-editor.d.ts +0 -120
  265. package/blazorGlobalSrc/rich-text-editor/actions/html-editor.js +0 -1244
  266. package/blazorGlobalSrc/rich-text-editor/actions/html-toolbar-status.d.ts +0 -14
  267. package/blazorGlobalSrc/rich-text-editor/actions/html-toolbar-status.js +0 -47
  268. package/blazorGlobalSrc/rich-text-editor/actions/import-export.d.ts +0 -21
  269. package/blazorGlobalSrc/rich-text-editor/actions/import-export.js +0 -117
  270. package/blazorGlobalSrc/rich-text-editor/actions/keyboard-model.d.ts +0 -30
  271. package/blazorGlobalSrc/rich-text-editor/actions/keyboard.d.ts +0 -110
  272. package/blazorGlobalSrc/rich-text-editor/actions/keyboard.js +0 -163
  273. package/blazorGlobalSrc/rich-text-editor/actions/markdown-editor.d.ts +0 -66
  274. package/blazorGlobalSrc/rich-text-editor/actions/markdown-editor.js +0 -142
  275. package/blazorGlobalSrc/rich-text-editor/actions/markdown-toolbar-status.d.ts +0 -23
  276. package/blazorGlobalSrc/rich-text-editor/actions/markdown-toolbar-status.js +0 -124
  277. package/blazorGlobalSrc/rich-text-editor/actions/paste-clean-up.d.ts +0 -86
  278. package/blazorGlobalSrc/rich-text-editor/actions/paste-clean-up.js +0 -1071
  279. package/blazorGlobalSrc/rich-text-editor/actions/quick-toolbar.d.ts +0 -151
  280. package/blazorGlobalSrc/rich-text-editor/actions/quick-toolbar.js +0 -548
  281. package/blazorGlobalSrc/rich-text-editor/actions/resize.d.ts +0 -37
  282. package/blazorGlobalSrc/rich-text-editor/actions/resize.js +0 -188
  283. package/blazorGlobalSrc/rich-text-editor/actions/sanitize-helper.d.ts +0 -11
  284. package/blazorGlobalSrc/rich-text-editor/actions/sanitize-helper.js +0 -168
  285. package/blazorGlobalSrc/rich-text-editor/actions/toolbar-action.d.ts +0 -18
  286. package/blazorGlobalSrc/rich-text-editor/actions/toolbar-action.js +0 -76
  287. package/blazorGlobalSrc/rich-text-editor/actions/toolbar.d.ts +0 -185
  288. package/blazorGlobalSrc/rich-text-editor/actions/toolbar.js +0 -512
  289. package/blazorGlobalSrc/rich-text-editor/actions/xhtml-validation.d.ts +0 -25
  290. package/blazorGlobalSrc/rich-text-editor/actions/xhtml-validation.js +0 -166
  291. package/blazorGlobalSrc/rich-text-editor/actions.d.ts +0 -26
  292. package/blazorGlobalSrc/rich-text-editor/actions.js +0 -30
  293. package/blazorGlobalSrc/rich-text-editor/audio.d.ts +0 -4
  294. package/blazorGlobalSrc/rich-text-editor/audio.js +0 -8
  295. package/blazorGlobalSrc/rich-text-editor/base/classes.d.ts +0 -628
  296. package/blazorGlobalSrc/rich-text-editor/base/classes.js +0 -129
  297. package/blazorGlobalSrc/rich-text-editor/base/constant.d.ts +0 -808
  298. package/blazorGlobalSrc/rich-text-editor/base/constant.js +0 -334
  299. package/blazorGlobalSrc/rich-text-editor/base/enum.d.ts +0 -81
  300. package/blazorGlobalSrc/rich-text-editor/base/enum.js +0 -37
  301. package/blazorGlobalSrc/rich-text-editor/base/interface.d.ts +0 -1577
  302. package/blazorGlobalSrc/rich-text-editor/base/interface.js +0 -194
  303. package/blazorGlobalSrc/rich-text-editor/base/rich-text-editor-model.d.ts +0 -1032
  304. package/blazorGlobalSrc/rich-text-editor/base/rich-text-editor.d.ts +0 -1699
  305. package/blazorGlobalSrc/rich-text-editor/base/rich-text-editor.js +0 -2645
  306. package/blazorGlobalSrc/rich-text-editor/base/util.d.ts +0 -212
  307. package/blazorGlobalSrc/rich-text-editor/base/util.js +0 -610
  308. package/blazorGlobalSrc/rich-text-editor/base.d.ts +0 -10
  309. package/blazorGlobalSrc/rich-text-editor/base.js +0 -13
  310. package/blazorGlobalSrc/rich-text-editor/formatter/formatter.d.ts +0 -87
  311. package/blazorGlobalSrc/rich-text-editor/formatter/formatter.js +0 -223
  312. package/blazorGlobalSrc/rich-text-editor/formatter/html-formatter.d.ts +0 -34
  313. package/blazorGlobalSrc/rich-text-editor/formatter/html-formatter.js +0 -44
  314. package/blazorGlobalSrc/rich-text-editor/formatter/markdown-formatter.d.ts +0 -39
  315. package/blazorGlobalSrc/rich-text-editor/formatter/markdown-formatter.js +0 -48
  316. package/blazorGlobalSrc/rich-text-editor/formatter.d.ts +0 -6
  317. package/blazorGlobalSrc/rich-text-editor/formatter.js +0 -10
  318. package/blazorGlobalSrc/rich-text-editor/html-editor.d.ts +0 -4
  319. package/blazorGlobalSrc/rich-text-editor/html-editor.js +0 -8
  320. package/blazorGlobalSrc/rich-text-editor/image.d.ts +0 -4
  321. package/blazorGlobalSrc/rich-text-editor/image.js +0 -8
  322. package/blazorGlobalSrc/rich-text-editor/index.d.ts +0 -9
  323. package/blazorGlobalSrc/rich-text-editor/index.js +0 -12
  324. package/blazorGlobalSrc/rich-text-editor/link.d.ts +0 -4
  325. package/blazorGlobalSrc/rich-text-editor/link.js +0 -8
  326. package/blazorGlobalSrc/rich-text-editor/markdown-editor.d.ts +0 -4
  327. package/blazorGlobalSrc/rich-text-editor/markdown-editor.js +0 -8
  328. package/blazorGlobalSrc/rich-text-editor/models/default-locale.d.ts +0 -25
  329. package/blazorGlobalSrc/rich-text-editor/models/default-locale.js +0 -391
  330. package/blazorGlobalSrc/rich-text-editor/models/iframe-settings-model.d.ts +0 -68
  331. package/blazorGlobalSrc/rich-text-editor/models/iframe-settings.d.ts +0 -61
  332. package/blazorGlobalSrc/rich-text-editor/models/iframe-settings.js +0 -60
  333. package/blazorGlobalSrc/rich-text-editor/models/inline-mode-model.d.ts +0 -24
  334. package/blazorGlobalSrc/rich-text-editor/models/inline-mode.d.ts +0 -20
  335. package/blazorGlobalSrc/rich-text-editor/models/inline-mode.js +0 -37
  336. package/blazorGlobalSrc/rich-text-editor/models/items.d.ts +0 -36
  337. package/blazorGlobalSrc/rich-text-editor/models/items.js +0 -1011
  338. package/blazorGlobalSrc/rich-text-editor/models/models.d.ts +0 -7
  339. package/blazorGlobalSrc/rich-text-editor/models/models.js +0 -4
  340. package/blazorGlobalSrc/rich-text-editor/models/slash-menu-settings-model.d.ts +0 -40
  341. package/blazorGlobalSrc/rich-text-editor/models/slash-menu-settings.d.ts +0 -50
  342. package/blazorGlobalSrc/rich-text-editor/models/slash-menu-settings.js +0 -143
  343. package/blazorGlobalSrc/rich-text-editor/models/toolbar-settings-model.d.ts +0 -1130
  344. package/blazorGlobalSrc/rich-text-editor/models/toolbar-settings.d.ts +0 -992
  345. package/blazorGlobalSrc/rich-text-editor/models/toolbar-settings.js +0 -510
  346. package/blazorGlobalSrc/rich-text-editor/models.d.ts +0 -4
  347. package/blazorGlobalSrc/rich-text-editor/models.js +0 -4
  348. package/blazorGlobalSrc/rich-text-editor/quick-toolbar.d.ts +0 -4
  349. package/blazorGlobalSrc/rich-text-editor/quick-toolbar.js +0 -8
  350. package/blazorGlobalSrc/rich-text-editor/renderer/audio-module.d.ts +0 -82
  351. package/blazorGlobalSrc/rich-text-editor/renderer/audio-module.js +0 -886
  352. package/blazorGlobalSrc/rich-text-editor/renderer/content-renderer.d.ts +0 -65
  353. package/blazorGlobalSrc/rich-text-editor/renderer/content-renderer.js +0 -49
  354. package/blazorGlobalSrc/rich-text-editor/renderer/dialog-renderer.d.ts +0 -39
  355. package/blazorGlobalSrc/rich-text-editor/renderer/dialog-renderer.js +0 -111
  356. package/blazorGlobalSrc/rich-text-editor/renderer/iframe-content-renderer.d.ts +0 -33
  357. package/blazorGlobalSrc/rich-text-editor/renderer/iframe-content-renderer.js +0 -101
  358. package/blazorGlobalSrc/rich-text-editor/renderer/image-module.d.ts +0 -199
  359. package/blazorGlobalSrc/rich-text-editor/renderer/image-module.js +0 -2494
  360. package/blazorGlobalSrc/rich-text-editor/renderer/link-module.d.ts +0 -63
  361. package/blazorGlobalSrc/rich-text-editor/renderer/link-module.js +0 -596
  362. package/blazorGlobalSrc/rich-text-editor/renderer/markdown-renderer.d.ts +0 -65
  363. package/blazorGlobalSrc/rich-text-editor/renderer/markdown-renderer.js +0 -38
  364. package/blazorGlobalSrc/rich-text-editor/renderer/popup-renderer.d.ts +0 -54
  365. package/blazorGlobalSrc/rich-text-editor/renderer/popup-renderer.js +0 -35
  366. package/blazorGlobalSrc/rich-text-editor/renderer/render.d.ts +0 -46
  367. package/blazorGlobalSrc/rich-text-editor/renderer/render.js +0 -70
  368. package/blazorGlobalSrc/rich-text-editor/renderer/slash-menu.d.ts +0 -20
  369. package/blazorGlobalSrc/rich-text-editor/renderer/slash-menu.js +0 -224
  370. package/blazorGlobalSrc/rich-text-editor/renderer/table-module.d.ts +0 -155
  371. package/blazorGlobalSrc/rich-text-editor/renderer/table-module.js +0 -2206
  372. package/blazorGlobalSrc/rich-text-editor/renderer/toolbar-renderer.d.ts +0 -131
  373. package/blazorGlobalSrc/rich-text-editor/renderer/toolbar-renderer.js +0 -747
  374. package/blazorGlobalSrc/rich-text-editor/renderer/video-module.d.ts +0 -120
  375. package/blazorGlobalSrc/rich-text-editor/renderer/video-module.js +0 -1507
  376. package/blazorGlobalSrc/rich-text-editor/renderer/view-source.d.ts +0 -74
  377. package/blazorGlobalSrc/rich-text-editor/renderer/view-source.js +0 -225
  378. package/blazorGlobalSrc/rich-text-editor/renderer.d.ts +0 -17
  379. package/blazorGlobalSrc/rich-text-editor/renderer.js +0 -21
  380. package/blazorGlobalSrc/rich-text-editor/services/renderer-factory.d.ts +0 -33
  381. package/blazorGlobalSrc/rich-text-editor/services/renderer-factory.js +0 -29
  382. package/blazorGlobalSrc/rich-text-editor/services/service-locator.d.ts +0 -29
  383. package/blazorGlobalSrc/rich-text-editor/services/service-locator.js +0 -25
  384. package/blazorGlobalSrc/rich-text-editor/services.d.ts +0 -5
  385. package/blazorGlobalSrc/rich-text-editor/services.js +0 -9
  386. package/blazorGlobalSrc/rich-text-editor/toolbar.d.ts +0 -4
  387. package/blazorGlobalSrc/rich-text-editor/toolbar.js +0 -8
  388. package/blazorGlobalSrc/rich-text-editor/video.d.ts +0 -4
  389. package/blazorGlobalSrc/rich-text-editor/video.js +0 -8
  390. package/blazorGlobalSrc/rich-text-editor.d.ts +0 -4
  391. package/blazorGlobalSrc/rich-text-editor.js +0 -8
  392. package/blazorGlobalSrc/selection/index.d.ts +0 -4
  393. package/blazorGlobalSrc/selection/index.js +0 -8
  394. package/blazorGlobalSrc/selection/selection.d.ts +0 -244
  395. package/blazorGlobalSrc/selection/selection.js +0 -309
  396. package/helpers/e2e/index.d.ts +0 -1
  397. package/helpers/e2e/index.js +0 -8
  398. package/helpers/e2e/rte-helper.d.ts +0 -79
  399. package/helpers/e2e/rte-helper.js +0 -81
  400. package/src/global.d.ts +0 -1
  401. package/tslint.json +0 -111
@@ -1,1244 +0,0 @@
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
- });