suneditor 3.0.0-alpha.2 → 3.0.0-alpha.20

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 (306) hide show
  1. package/.eslintrc.json +4 -3
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +19 -11
  4. package/README_V3_TEMP.md +705 -0
  5. package/dist/suneditor.min.css +1 -0
  6. package/dist/suneditor.min.js +1 -0
  7. package/example.md +587 -0
  8. package/package.json +15 -9
  9. package/src/assets/icons/_default.js +166 -131
  10. package/src/assets/{suneditor-content.css → suneditor-contents.css} +182 -45
  11. package/src/assets/suneditor.css +1195 -556
  12. package/src/assets/variables.css +138 -0
  13. package/src/core/base/eventHandlers/handler_toolbar.js +35 -14
  14. package/src/core/base/eventHandlers/handler_ww_clipboard.js +29 -4
  15. package/src/core/base/eventHandlers/handler_ww_dragDrop.js +59 -15
  16. package/src/core/base/eventHandlers/handler_ww_key_input.js +426 -212
  17. package/src/core/base/eventHandlers/handler_ww_mouse.js +108 -32
  18. package/src/core/base/eventManager.js +540 -209
  19. package/src/core/base/events.js +616 -320
  20. package/src/core/base/history.js +93 -39
  21. package/src/core/class/char.js +29 -13
  22. package/src/core/class/component.js +332 -145
  23. package/src/core/class/format.js +671 -509
  24. package/src/core/class/html.js +504 -290
  25. package/src/core/class/menu.js +114 -47
  26. package/src/core/class/nodeTransform.js +111 -66
  27. package/src/core/class/offset.js +409 -105
  28. package/src/core/class/selection.js +220 -108
  29. package/src/core/class/shortcuts.js +68 -8
  30. package/src/core/class/toolbar.js +106 -116
  31. package/src/core/class/ui.js +330 -0
  32. package/src/core/class/viewer.js +178 -74
  33. package/src/core/editor.js +489 -384
  34. package/src/core/section/actives.js +118 -22
  35. package/src/core/section/constructor.js +504 -170
  36. package/src/core/section/context.js +28 -23
  37. package/src/core/section/documentType.js +561 -0
  38. package/src/editorInjector/_classes.js +19 -5
  39. package/src/editorInjector/_core.js +71 -7
  40. package/src/editorInjector/index.js +63 -1
  41. package/src/helper/converter.js +137 -19
  42. package/src/helper/dom/domCheck.js +294 -0
  43. package/src/helper/dom/domQuery.js +609 -0
  44. package/src/helper/dom/domUtils.js +533 -0
  45. package/src/helper/dom/index.js +12 -0
  46. package/src/helper/env.js +42 -19
  47. package/src/helper/index.js +7 -4
  48. package/src/helper/keyCodeMap.js +183 -0
  49. package/src/helper/numbers.js +8 -8
  50. package/src/helper/unicode.js +5 -5
  51. package/src/langs/ckb.js +69 -3
  52. package/src/langs/cs.js +67 -1
  53. package/src/langs/da.js +68 -2
  54. package/src/langs/de.js +68 -3
  55. package/src/langs/en.js +29 -1
  56. package/src/langs/es.js +68 -3
  57. package/src/langs/fa.js +70 -2
  58. package/src/langs/fr.js +68 -2
  59. package/src/langs/he.js +68 -3
  60. package/src/langs/hu.js +226 -0
  61. package/src/langs/index.js +3 -2
  62. package/src/langs/it.js +65 -0
  63. package/src/langs/ja.js +68 -3
  64. package/src/langs/ko.js +66 -1
  65. package/src/langs/lv.js +68 -3
  66. package/src/langs/nl.js +68 -3
  67. package/src/langs/pl.js +68 -3
  68. package/src/langs/pt_br.js +65 -0
  69. package/src/langs/ro.js +69 -4
  70. package/src/langs/ru.js +68 -3
  71. package/src/langs/se.js +68 -3
  72. package/src/langs/tr.js +68 -0
  73. package/src/langs/ua.js +68 -3
  74. package/src/langs/ur.js +71 -6
  75. package/src/langs/zh_cn.js +69 -4
  76. package/src/modules/ApiManager.js +77 -54
  77. package/src/modules/Browser.js +667 -0
  78. package/src/modules/ColorPicker.js +162 -102
  79. package/src/modules/Controller.js +233 -136
  80. package/src/modules/Figure.js +913 -489
  81. package/src/modules/FileManager.js +141 -72
  82. package/src/modules/HueSlider.js +113 -61
  83. package/src/modules/Modal.js +292 -113
  84. package/src/modules/ModalAnchorEditor.js +380 -230
  85. package/src/modules/SelectMenu.js +270 -168
  86. package/src/modules/_DragHandle.js +2 -1
  87. package/src/modules/index.js +3 -3
  88. package/src/plugins/browser/audioGallery.js +83 -0
  89. package/src/plugins/browser/fileBrowser.js +103 -0
  90. package/src/plugins/browser/fileGallery.js +83 -0
  91. package/src/plugins/browser/imageGallery.js +81 -0
  92. package/src/plugins/browser/videoGallery.js +103 -0
  93. package/src/plugins/command/blockquote.js +40 -27
  94. package/src/plugins/command/exportPDF.js +134 -0
  95. package/src/plugins/command/fileUpload.js +226 -158
  96. package/src/plugins/command/list_bulleted.js +93 -47
  97. package/src/plugins/command/list_numbered.js +93 -47
  98. package/src/plugins/dropdown/align.js +66 -54
  99. package/src/plugins/dropdown/backgroundColor.js +76 -45
  100. package/src/plugins/dropdown/font.js +71 -47
  101. package/src/plugins/dropdown/fontColor.js +78 -46
  102. package/src/plugins/dropdown/formatBlock.js +74 -33
  103. package/src/plugins/dropdown/hr.js +102 -51
  104. package/src/plugins/dropdown/layout.js +37 -26
  105. package/src/plugins/dropdown/lineHeight.js +54 -38
  106. package/src/plugins/dropdown/list.js +60 -45
  107. package/src/plugins/dropdown/paragraphStyle.js +51 -30
  108. package/src/plugins/dropdown/table.js +1269 -777
  109. package/src/plugins/dropdown/template.js +38 -26
  110. package/src/plugins/dropdown/textStyle.js +43 -31
  111. package/src/plugins/field/mention.js +144 -82
  112. package/src/plugins/index.js +32 -6
  113. package/src/plugins/input/fontSize.js +161 -108
  114. package/src/plugins/input/pageNavigator.js +70 -0
  115. package/src/plugins/modal/audio.js +341 -169
  116. package/src/plugins/modal/drawing.js +530 -0
  117. package/src/plugins/modal/embed.js +886 -0
  118. package/src/plugins/modal/image.js +673 -358
  119. package/src/plugins/modal/link.js +100 -71
  120. package/src/plugins/modal/math.js +384 -168
  121. package/src/plugins/modal/video.js +693 -336
  122. package/src/plugins/popup/anchor.js +222 -0
  123. package/src/suneditor.js +54 -12
  124. package/src/themes/dark.css +85 -0
  125. package/src/typedef.js +86 -0
  126. package/types/assets/icons/_default.d.ts +152 -0
  127. package/types/core/base/eventHandlers/handler_toolbar.d.ts +41 -0
  128. package/types/core/base/eventHandlers/handler_ww_clipboard.d.ts +40 -0
  129. package/types/core/base/eventHandlers/handler_ww_dragDrop.d.ts +35 -0
  130. package/types/core/base/eventHandlers/handler_ww_key_input.d.ts +45 -0
  131. package/types/core/base/eventHandlers/handler_ww_mouse.d.ts +39 -0
  132. package/types/core/base/eventManager.d.ts +377 -0
  133. package/types/core/base/events.d.ts +297 -0
  134. package/types/core/base/history.d.ts +81 -0
  135. package/types/core/class/char.d.ts +60 -0
  136. package/types/core/class/component.d.ts +259 -0
  137. package/types/core/class/format.d.ts +615 -0
  138. package/types/core/class/html.d.ts +377 -0
  139. package/types/core/class/menu.d.ts +118 -0
  140. package/types/core/class/nodeTransform.d.ts +93 -0
  141. package/types/core/class/offset.d.ts +512 -0
  142. package/types/core/class/selection.d.ts +188 -0
  143. package/types/core/class/shortcuts.d.ts +142 -0
  144. package/types/core/class/toolbar.d.ts +189 -0
  145. package/types/core/class/ui.d.ts +144 -0
  146. package/types/core/class/viewer.d.ts +140 -0
  147. package/types/core/editor.d.ts +606 -0
  148. package/types/core/section/actives.d.ts +46 -0
  149. package/types/core/section/constructor.d.ts +748 -0
  150. package/types/core/section/context.d.ts +45 -0
  151. package/types/core/section/documentType.d.ts +178 -0
  152. package/types/editorInjector/_classes.d.ts +41 -0
  153. package/types/editorInjector/_core.d.ts +92 -0
  154. package/types/editorInjector/index.d.ts +71 -0
  155. package/types/helper/converter.d.ts +150 -0
  156. package/types/helper/dom/domCheck.d.ts +182 -0
  157. package/types/helper/dom/domQuery.d.ts +214 -0
  158. package/types/helper/dom/domUtils.d.ts +211 -0
  159. package/types/helper/dom/index.d.ts +9 -0
  160. package/types/helper/env.d.ts +149 -0
  161. package/types/helper/index.d.ts +163 -0
  162. package/types/helper/keyCodeMap.d.ts +110 -0
  163. package/types/helper/numbers.d.ts +43 -0
  164. package/types/helper/unicode.d.ts +28 -0
  165. package/types/index.d.ts +0 -0
  166. package/{typings/Lang.d.ts → types/langs/_Lang.d.ts} +170 -103
  167. package/types/langs/ckb.d.ts +384 -0
  168. package/types/langs/cs.d.ts +384 -0
  169. package/types/langs/da.d.ts +384 -0
  170. package/types/langs/de.d.ts +384 -0
  171. package/types/langs/en.d.ts +384 -0
  172. package/types/langs/es.d.ts +384 -0
  173. package/types/langs/fa.d.ts +384 -0
  174. package/types/langs/fr.d.ts +384 -0
  175. package/types/langs/he.d.ts +384 -0
  176. package/types/langs/hu.d.ts +384 -0
  177. package/types/langs/index.d.ts +48 -0
  178. package/types/langs/it.d.ts +384 -0
  179. package/types/langs/ja.d.ts +384 -0
  180. package/types/langs/ko.d.ts +384 -0
  181. package/types/langs/lv.d.ts +384 -0
  182. package/types/langs/nl.d.ts +384 -0
  183. package/types/langs/pl.d.ts +384 -0
  184. package/types/langs/pt_br.d.ts +384 -0
  185. package/types/langs/ro.d.ts +384 -0
  186. package/types/langs/ru.d.ts +384 -0
  187. package/types/langs/se.d.ts +384 -0
  188. package/types/langs/tr.d.ts +384 -0
  189. package/types/langs/ua.d.ts +384 -0
  190. package/types/langs/ur.d.ts +384 -0
  191. package/types/langs/zh_cn.d.ts +384 -0
  192. package/types/modules/ApiManager.d.ts +125 -0
  193. package/types/modules/Browser.d.ts +326 -0
  194. package/types/modules/ColorPicker.d.ts +131 -0
  195. package/types/modules/Controller.d.ts +231 -0
  196. package/types/modules/Figure.d.ts +504 -0
  197. package/types/modules/FileManager.d.ts +202 -0
  198. package/types/modules/HueSlider.d.ts +136 -0
  199. package/types/modules/Modal.d.ts +117 -0
  200. package/types/modules/ModalAnchorEditor.d.ts +236 -0
  201. package/types/modules/SelectMenu.d.ts +194 -0
  202. package/types/modules/_DragHandle.d.ts +7 -0
  203. package/types/modules/index.d.ts +26 -0
  204. package/types/plugins/browser/audioGallery.d.ts +55 -0
  205. package/types/plugins/browser/fileBrowser.d.ts +64 -0
  206. package/types/plugins/browser/fileGallery.d.ts +55 -0
  207. package/types/plugins/browser/imageGallery.d.ts +51 -0
  208. package/types/plugins/browser/videoGallery.d.ts +57 -0
  209. package/types/plugins/command/blockquote.d.ts +28 -0
  210. package/types/plugins/command/exportPDF.d.ts +46 -0
  211. package/types/plugins/command/fileUpload.d.ts +156 -0
  212. package/types/plugins/command/list_bulleted.d.ts +56 -0
  213. package/types/plugins/command/list_numbered.d.ts +56 -0
  214. package/types/plugins/dropdown/align.d.ts +60 -0
  215. package/types/plugins/dropdown/backgroundColor.d.ts +63 -0
  216. package/types/plugins/dropdown/font.d.ts +54 -0
  217. package/types/plugins/dropdown/fontColor.d.ts +63 -0
  218. package/types/plugins/dropdown/formatBlock.d.ts +58 -0
  219. package/types/plugins/dropdown/hr.d.ts +81 -0
  220. package/types/plugins/dropdown/layout.d.ts +40 -0
  221. package/types/plugins/dropdown/lineHeight.d.ts +50 -0
  222. package/types/plugins/dropdown/list.d.ts +39 -0
  223. package/types/plugins/dropdown/paragraphStyle.d.ts +54 -0
  224. package/types/plugins/dropdown/table.d.ts +579 -0
  225. package/types/plugins/dropdown/template.d.ts +40 -0
  226. package/types/plugins/dropdown/textStyle.d.ts +41 -0
  227. package/types/plugins/field/mention.d.ts +102 -0
  228. package/types/plugins/index.d.ts +107 -0
  229. package/types/plugins/input/fontSize.d.ts +170 -0
  230. package/types/plugins/input/pageNavigator.d.ts +28 -0
  231. package/types/plugins/modal/audio.d.ts +269 -0
  232. package/types/plugins/modal/drawing.d.ts +246 -0
  233. package/types/plugins/modal/embed.d.ts +387 -0
  234. package/types/plugins/modal/image.d.ts +451 -0
  235. package/types/plugins/modal/link.d.ts +128 -0
  236. package/types/plugins/modal/math.d.ts +193 -0
  237. package/types/plugins/modal/video.d.ts +485 -0
  238. package/types/plugins/popup/anchor.d.ts +56 -0
  239. package/types/suneditor.d.ts +51 -0
  240. package/types/typedef-global.d.ts +144 -0
  241. package/src/core/class/notice.js +0 -42
  242. package/src/helper/domUtils.js +0 -1177
  243. package/src/modules/FileBrowser.js +0 -271
  244. package/src/plugins/command/exportPdf.js +0 -168
  245. package/src/plugins/fileBrowser/imageGallery.js +0 -81
  246. package/src/themes/test.css +0 -61
  247. package/typings/CommandPlugin.d.ts +0 -8
  248. package/typings/DialogPlugin.d.ts +0 -20
  249. package/typings/FileBrowserPlugin.d.ts +0 -30
  250. package/typings/Module.d.ts +0 -15
  251. package/typings/Plugin.d.ts +0 -42
  252. package/typings/SubmenuPlugin.d.ts +0 -8
  253. package/typings/_classes.d.ts +0 -17
  254. package/typings/_colorPicker.d.ts +0 -60
  255. package/typings/_core.d.ts +0 -55
  256. package/typings/align.d.ts +0 -5
  257. package/typings/audio.d.ts +0 -5
  258. package/typings/backgroundColor.d.ts +0 -5
  259. package/typings/blockquote.d.ts +0 -5
  260. package/typings/char.d.ts +0 -39
  261. package/typings/component.d.ts +0 -38
  262. package/typings/context.d.ts +0 -39
  263. package/typings/converter.d.ts +0 -33
  264. package/typings/dialog.d.ts +0 -28
  265. package/typings/domUtils.d.ts +0 -361
  266. package/typings/editor.d.ts +0 -7
  267. package/typings/editor.ts +0 -542
  268. package/typings/env.d.ts +0 -70
  269. package/typings/eventManager.d.ts +0 -37
  270. package/typings/events.d.ts +0 -262
  271. package/typings/fileBrowser.d.ts +0 -42
  272. package/typings/fileManager.d.ts +0 -67
  273. package/typings/font.d.ts +0 -5
  274. package/typings/fontColor.d.ts +0 -5
  275. package/typings/fontSize.d.ts +0 -5
  276. package/typings/format.d.ts +0 -191
  277. package/typings/formatBlock.d.ts +0 -5
  278. package/typings/history.d.ts +0 -48
  279. package/typings/horizontalRule.d.ts +0 -5
  280. package/typings/image.d.ts +0 -5
  281. package/typings/imageGallery.d.ts +0 -5
  282. package/typings/index.d.ts +0 -21
  283. package/typings/index.modules.d.ts +0 -11
  284. package/typings/index.plugins.d.ts +0 -58
  285. package/typings/lineHeight.d.ts +0 -5
  286. package/typings/link.d.ts +0 -5
  287. package/typings/list.d.ts +0 -5
  288. package/typings/math.d.ts +0 -5
  289. package/typings/mediaContainer.d.ts +0 -25
  290. package/typings/mention.d.ts +0 -5
  291. package/typings/node.d.ts +0 -57
  292. package/typings/notice.d.ts +0 -16
  293. package/typings/numbers.d.ts +0 -29
  294. package/typings/offset.d.ts +0 -24
  295. package/typings/options.d.ts +0 -589
  296. package/typings/paragraphStyle.d.ts +0 -5
  297. package/typings/resizing.d.ts +0 -141
  298. package/typings/selection.d.ts +0 -94
  299. package/typings/shortcuts.d.ts +0 -13
  300. package/typings/suneditor.d.ts +0 -9
  301. package/typings/table.d.ts +0 -5
  302. package/typings/template.d.ts +0 -5
  303. package/typings/textStyle.d.ts +0 -5
  304. package/typings/toolbar.d.ts +0 -32
  305. package/typings/unicode.d.ts +0 -25
  306. package/typings/video.d.ts +0 -5
@@ -1,19 +1,22 @@
1
1
  import Env from './env';
2
2
  import Unicode from './unicode';
3
3
  import Converter from './converter';
4
- import DomUtils from './domUtils';
4
+ import Dom from './dom';
5
5
  import Numbers from './numbers';
6
+ import KeyCodeMap from './keyCodeMap';
6
7
 
7
8
  export const env = Env;
8
9
  export const unicode = Unicode;
9
10
  export const converter = Converter;
10
- export const domUtils = DomUtils;
11
+ export const dom = Dom;
11
12
  export const numbers = Numbers;
13
+ export const keyCodeMap = KeyCodeMap;
12
14
 
13
15
  export default {
14
16
  env,
15
17
  unicode,
16
18
  converter,
17
- domUtils,
18
- numbers
19
+ dom,
20
+ numbers,
21
+ keyCodeMap
19
22
  };
@@ -0,0 +1,183 @@
1
+ /**
2
+ * @fileoverview keyCode helper
3
+ */
4
+
5
+ const _arrow = 'ArrowLeft|ArrowUp|ArrowRight|ArrowDown';
6
+ const _fN = 'F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12';
7
+ // const DIR_KEYCODE = /^(3[7-9]|40)$/;
8
+ const DIR_KEYCODE = _arrow.split('|');
9
+ // const DELETE_KEYCODE = /^(8|46)$/;
10
+ const DELETE_KEYCODE = 'Backspace|Delete'.split('|');
11
+ // const NON_TEXT_KEYCODE = /^(8|9|13|1[6-9]|20|27|3[3-9]|40|45|46|11[2-9]|12[0-3]|144|145|229)$/;
12
+ const NON_TEXT_KEYCODE = `Backspace|Tab|Enter|ShiftLeft|ShiftRight|ControlLeft|ControlRight|AltLeft|AltRight|Pause|CapsLock|Escape|PageUp|PageDown|End|Home|${_arrow}|Insert|Delete|${_fN}|NumLock|ScrollLock`.split('|');
13
+ // const HISTORY_IGNORE_KEYCODE = /^(1[6-9]|20|27|3[3-9]|40|45|11[2-9]|12[0-3]|144|145|229)$/;
14
+ const HISTORY_IGNORE_KEYCODE = `ShiftLeft|ShiftRight|ControlLeft|ControlRight|AltLeft|AltRight|Pause|CapsLock|Escape|PageUp|PageDown|End|Home|${_arrow}|Insert|${_fN}|NumLock|ScrollLock`.split('|');
15
+ // const DOCUMENT_TYPE_OBSERVER_KEYCODE = /^(8|13|46)$/;
16
+ const DOCUMENT_TYPE_OBSERVER_KEYCODE = 'Backspace|Enter|Delete'.split('|');
17
+ // const NON_RESPONSE_KEYCODE = /^(1[7-9]|20|27|45|11[2-9]|12[0-3]|144|145)$/;
18
+ const NON_RESPONSE_CODE = `ControlLeft|ControlRight|AltLeft|AltRight|Pause|CapsLock|Escape|Insert|${_fN}|NumLock|ScrollLock`.split('|');
19
+
20
+ /** ------------------------------------------------------- [meta] ------------------------------------------------------- */
21
+ /**
22
+ * @description Shift check
23
+ * @param {KeyboardEvent} e Event object
24
+ * @returns {boolean}
25
+ */
26
+ export function isShift(e) {
27
+ return e.shiftKey || e.keyCode === 16;
28
+ }
29
+
30
+ /**
31
+ * @description [Ctrl|Meta] check
32
+ * @param {KeyboardEvent} e Event object
33
+ * @returns {boolean}
34
+ */
35
+ export function isCtrl(e) {
36
+ const keyCode = e.code;
37
+ // return e.ctrlKey || e.metaKey || keyCode === 91 || keyCode === 92 || keyCode === 224;
38
+ return e.ctrlKey || e.metaKey || keyCode === 'MetaLeft' || keyCode === 'MetaRight';
39
+ }
40
+
41
+ /**
42
+ * @description Alt check
43
+ * @param {KeyboardEvent} e Event object
44
+ * @returns {boolean}
45
+ */
46
+ export function isAlt(e) {
47
+ return e.altKey;
48
+ }
49
+
50
+ /**
51
+ * @description event.isComposing check
52
+ * @param {KeyboardEvent} e Event object
53
+ * @returns {boolean}
54
+ */
55
+ export function isComposing(e) {
56
+ return e.isComposing || e.keyCode === 229;
57
+ }
58
+
59
+ /**
60
+ * @description Backspace key check
61
+ * @param {string} code Event.code
62
+ * @returns {boolean}
63
+ */
64
+ export function isBackspace(code) {
65
+ // return code === 8;
66
+ return code === 'Backspace';
67
+ }
68
+
69
+ /**
70
+ * @description Tab key check
71
+ * @param {string} code Event.code
72
+ * @returns {boolean}
73
+ */
74
+ export function isTab(code) {
75
+ // return code === 9;
76
+ return code === 'Tab';
77
+ }
78
+
79
+ /**
80
+ * @description Enter key check
81
+ * @param {string} code Event.code
82
+ * @returns {boolean}
83
+ */
84
+ export function isEnter(code) {
85
+ // return code === 13;
86
+ return code === 'Enter';
87
+ }
88
+
89
+ /**
90
+ * @description ESC key check
91
+ * @param {string} code Event.code
92
+ * @returns {boolean}
93
+ */
94
+ export function isEsc(code) {
95
+ // return code === 27;
96
+ return code === 'Escape';
97
+ }
98
+
99
+ /**
100
+ * @description Space key check
101
+ * @param {string} code Event.code
102
+ * @returns {boolean}
103
+ */
104
+ export function isSpace(code) {
105
+ // return code === 32;
106
+ return code === 'Space';
107
+ }
108
+
109
+ /** ------------------------------------------------------- [key] ------------------------------------------------------- */
110
+
111
+ /**
112
+ * @description Direction key check
113
+ * @param {string} code Event.code
114
+ * @returns {boolean}
115
+ */
116
+ export function isDirectionKey(code) {
117
+ return DIR_KEYCODE.includes(code);
118
+ }
119
+
120
+ /**
121
+ * @description [delete, backspace] key check
122
+ * @param {string} code Event.code
123
+ * @returns {boolean}
124
+ */
125
+ export function isRemoveKey(code) {
126
+ return DELETE_KEYCODE.includes(code);
127
+ }
128
+
129
+ /**
130
+ * @description Non-text key check
131
+ * @param {string} code Event.code
132
+ * @returns {boolean}
133
+ */
134
+ export function isNonTextKey(code) {
135
+ return NON_TEXT_KEYCODE.includes(code);
136
+ }
137
+
138
+ /**
139
+ * @description History ignore key check
140
+ * @param {string} code Event.code
141
+ * @returns {boolean}
142
+ */
143
+ export function isHistoryIgnoreKey(code) {
144
+ return HISTORY_IGNORE_KEYCODE.includes(code);
145
+ }
146
+
147
+ /**
148
+ * @description Document type observer key check
149
+ * @param {string} code Event.code
150
+ * @returns {boolean}
151
+ */
152
+ export function isDocumentTypeObserverKey(code) {
153
+ return DOCUMENT_TYPE_OBSERVER_KEYCODE.includes(code);
154
+ }
155
+
156
+ /**
157
+ * @description Non-response key check
158
+ * @param {string} code Event.code
159
+ * @returns {boolean}
160
+ */
161
+ export function isNonResponseKey(code) {
162
+ return NON_RESPONSE_CODE.includes(code);
163
+ }
164
+
165
+ const keyCodeMap = {
166
+ isShift,
167
+ isCtrl,
168
+ isAlt,
169
+ isComposing,
170
+ isBackspace,
171
+ isTab,
172
+ isEnter,
173
+ isEsc,
174
+ isSpace,
175
+ isDirectionKey,
176
+ isRemoveKey,
177
+ isNonTextKey,
178
+ isHistoryIgnoreKey,
179
+ isDocumentTypeObserverKey,
180
+ isNonResponseKey
181
+ };
182
+
183
+ export default keyCodeMap;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @description Checks for numeric (with decimal point).
3
- * @param {string|number} text Text string or number
3
+ * @param {*} text Text string or number
4
4
  * @returns {boolean}
5
5
  */
6
6
  export function is(text) {
@@ -10,22 +10,22 @@ export function is(text) {
10
10
  /**
11
11
  * @description Get a number.
12
12
  * @param {string|number} value Text string or number
13
- * @param {number} maxDec Maximum number of decimal places (-1 : Infinity)
13
+ * @param {number} [maxDec=0] Maximum number of decimal places (-1 : Infinity)
14
14
  * @returns {number}
15
15
  */
16
- export function get(value, maxDec) {
16
+ export function get(value, maxDec = 0) {
17
17
  if (!value) return 0;
18
18
 
19
- let number = (value + '').match(/-?\d+(\.\d+)?/);
20
- if (!number || !number[0]) return 0;
19
+ const matched = (value + '').match(/-?\d+(\.\d+)?/);
20
+ if (!matched || !matched[0]) return 0;
21
21
 
22
- number = number[0];
23
- return maxDec < 0 ? number * 1 : maxDec === 0 ? Math.round(number * 1) : (number * 1).toFixed(maxDec) * 1;
22
+ const number = Number(matched[0]);
23
+ return maxDec < 0 ? number : maxDec === 0 ? Math.round(number) : Number(number.toFixed(maxDec));
24
24
  }
25
25
 
26
26
  /**
27
27
  * @description It compares the start and end indexes of 'a' and 'b' and returns the number of overlapping indexes in the range.
28
- * ex) 1, 5, 4, 6 => '2' (4,5)
28
+ * - e.g.) 1, 5, 4, 6 => '2' (4,5)
29
29
  * @param {number} aStart Start index of 'a'
30
30
  * @param {number} aEnd End index of 'a'
31
31
  * @param {number} bStart Start index of 'b'
@@ -2,26 +2,26 @@ const zwsp = 8203;
2
2
 
3
3
  /**
4
4
  * @description Unicode Character 'ZERO WIDTH SPACE' (\u200B)
5
- * @type string
5
+ * @type {string}
6
6
  */
7
7
  export const zeroWidthSpace = String.fromCharCode(zwsp);
8
8
 
9
9
  /**
10
10
  * @description Regular expression to find 'zero width space' (/\u200B/g)
11
- * @type RegExp
11
+ * @type {RegExp}
12
12
  */
13
13
  export const zeroWidthRegExp = new RegExp(String.fromCharCode(zwsp), 'g');
14
14
 
15
15
  /**
16
16
  * @description Regular expression to find only 'zero width space' (/\u200B/g)
17
- * @type RegExp
17
+ * @type {RegExp}
18
18
  */
19
19
  export const onlyZeroWidthRegExp = new RegExp('^' + String.fromCharCode(zwsp) + '+$');
20
20
 
21
21
  /**
22
22
  * @description Escape a string for safe use in regular expressions.
23
- * @param {String} string String to escape
24
- * @returns {String}
23
+ * @param {string} string String to escape
24
+ * @returns {string}
25
25
  */
26
26
  export function escapeStringRegexp(string) {
27
27
  if (typeof string !== 'string') {
package/src/langs/ckb.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Central Kurdish (Sorani) (کوردیی ناوەندی)
1
2
  (function (global, factory) {
2
3
  if (typeof module === 'object' && typeof module.exports === 'object') {
3
4
  module.exports = global.document
@@ -15,34 +16,80 @@
15
16
  const lang = {
16
17
  code: 'ckb',
17
18
  align: 'ئاراسته‌',
19
+ alignBottom: 'خوارەوە ڕێکبخە',
18
20
  alignCenter: 'ناوه‌ند',
19
21
  alignJustify: 'به‌رێكی دابه‌ش بكه‌',
20
22
  alignLeft: 'لای چه‌پ',
23
+ alignMiddle: 'ناوەڕاست ڕێکبخە',
21
24
  alignRight: 'لای راست',
25
+ alignTop: 'سەرەوە ڕێکبخە',
26
+ anchor: 'لەنگەر',
27
+ asBlock: 'وەک بلۆکێک',
28
+ asInline: 'وەکو ئینلاینێک',
29
+ asLink: 'وەک بەستەرێک',
22
30
  audio: 'ده‌نگ',
31
+ audioGallery: 'گەلەری دەنگی',
23
32
  audio_modal_file: 'فایلێك هه‌ڵبژێره‌',
24
33
  audio_modal_title: 'ده‌نگێك دابنێ',
25
34
  audio_modal_url: 'به‌سته‌ری ده‌نگ',
26
35
  autoSize: 'قه‌باره‌ی خۆكارانه‌',
27
36
  backgroundColor: 'ره‌نگی دیاركراو',
28
37
  basic: 'سه‌ره‌تایی',
38
+ blockStyle: 'شێوازی بلۆک',
29
39
  bold: 'تۆخكردن',
40
+ border: 'سنوور',
41
+ border_all: 'سنووری هەموو',
42
+ border_inside: 'سنوور لە ناوەوە',
43
+ border_horizontal: 'سنوور ئاسۆیی',
44
+ border_vertical: 'سنووری ڕاست',
45
+ border_outside: 'سنوور لە دەرەوە',
46
+ border_left: 'سنوور چەپ',
47
+ border_top: 'سەرەوەی سنوور',
48
+ border_right: 'سنووری ڕاست',
49
+ border_bottom: 'بنی سنوور',
50
+ border_none: 'سنوور هیچ',
30
51
  bulletedList: 'لیستی ریزنه‌كراو',
52
+ cancel: 'ڕەتکردنەوە',
31
53
  caption: 'پێناسه‌یه‌ك دابنێ',
54
+ cellProperties: 'تایبەتمەندی خانەکان',
32
55
  center: 'ناوەڕاست',
33
56
  close: 'داخستن',
34
57
  codeView: 'بینینی كۆده‌كان',
58
+ color: 'ڕەنگ',
59
+ colorPicker: 'ڕەنگ هەڵگر',
60
+ column: 'ستوون',
61
+ comment: 'کۆمێنتەکان',
62
+ commentAdd: 'کۆمێنت زیاد بکە',
63
+ commentShow: 'کۆمێنتەکان پیشان بدە',
64
+ copy: 'کۆپی بکە',
65
+ copyFormat: 'فۆرماتکردنی بۆیاخ',
66
+ cut: 'بڕین',
35
67
  default: 'بنه‌ڕه‌ت',
36
68
  deleteColumn: 'ستونێك بسره‌وه‌',
37
69
  deleteRow: 'ریز بسره‌وه‌',
38
70
  dir_ltr: 'من اليسار إلى اليمين',
39
71
  dir_rtl: 'من اليمين الى اليسار',
72
+ download: 'دابەزاندن',
73
+ drag: 'ڕاکێشان',
74
+ drawing: 'وێنە کێشان',
75
+ drawing_modal_title: 'وێنە کێشان',
40
76
  edit: 'دەسکاریکردن',
77
+ embed: 'جێگیرکردن',
78
+ embed_modal_title: 'جێگیرکردن',
79
+ embed_modal_source: 'سەرچاوە / URL جێگیرکردن',
80
+ exportPDF: 'هەناردەکردن بۆ PDF',
81
+ exportWord: 'هەناردەکردن بۆ Word',
82
+ find: 'دۆزینەوە',
83
+ decrease: 'کەم کردنەوە',
84
+ increase: 'زیادکردن',
85
+ fileBrowser: 'وێبگەڕی فایلەکان',
86
+ fileGallery: 'گەلەری فایلەکان',
87
+ fileUpload: 'بارکردنی فایل',
41
88
  fixedColumnWidth: 'پانی ستون نه‌گۆربكه‌',
42
89
  font: 'فۆنت',
43
90
  fontColor: 'ره‌نگی فۆنت',
44
91
  fontSize: 'قه‌باره‌',
45
- formats: 'Formats',
92
+ formats: 'فۆرماتەکان',
46
93
  fullScreen: 'پڕ به‌ شاشه‌',
47
94
  height: 'به‌رزی',
48
95
  horizontalLine: 'هێڵی ئاسۆیی',
@@ -50,19 +97,23 @@
50
97
  hr_dashed: 'داش داش',
51
98
  hr_dotted: 'نوكته‌ نوكته‌',
52
99
  hr_solid: 'پته‌و',
100
+ id: 'ناسنامە',
53
101
  image: 'وێنه‌',
54
102
  imageGallery: 'گاله‌ری وێنه‌كان',
55
103
  image_modal_altText: 'نوسینی جێگره‌وه‌',
56
104
  image_modal_file: 'فایلێك هه‌ڵبژێره‌',
57
105
  image_modal_title: 'وێنه‌یه‌ك دابنێ',
58
106
  image_modal_url: 'به‌سته‌ری وێنه‌',
107
+ importWord: 'هاوردەکردن لە وۆردەوە',
59
108
  indent: 'بۆشایی بەجێهێشتن',
109
+ inlineStyle: 'شێوازی ناو هێڵ',
60
110
  insertColumnAfter: 'ستونێك له‌ دواوه‌ زیادبكه‌',
61
111
  insertColumnBefore: 'ستونێك له‌ پێشه‌وه‌ زیادبكه‌',
62
112
  insertRowAbove: 'ریزك له‌ سه‌ره‌وه‌ زیادبكه‌',
63
113
  insertRowBelow: 'ریزێك له‌ خواره‌وه‌ زیادبكه‌',
114
+ insertLine: 'هێڵ بخەرە ناوەوە',
64
115
  italic: 'لار',
65
- layout: 'Layout',
116
+ layout: 'ڕیزبەست',
66
117
  left: 'چه‌پ',
67
118
  lineHeight: 'بڵندی دێر',
68
119
  link: 'به‌سته‌ر',
@@ -72,6 +123,7 @@
72
123
  link_modal_text: 'تێكستی به‌سته‌ر',
73
124
  link_modal_title: 'به‌سته‌ر دابنێ',
74
125
  link_modal_url: 'به‌سته‌ر',
126
+ link_modal_relAttribute: 'سیفەتی Rel',
75
127
  list: 'لیست',
76
128
  math: 'بیركاری',
77
129
  math_modal_fontSizeLabel: 'قه‌باره‌ی فۆنت',
@@ -79,6 +131,7 @@
79
131
  math_modal_previewLabel: 'پێشبینین',
80
132
  math_modal_title: 'بیركاری',
81
133
  maxSize: 'گه‌وره‌ترین قه‌باره‌',
134
+ mediaGallery: 'گەلەری میدیا',
82
135
  mention: 'تنويه ب',
83
136
  menu_bordered: 'لێواری هه‌بێت',
84
137
  menu_code: 'كۆد',
@@ -90,8 +143,13 @@
90
143
  minSize: 'بچوكترین قه‌باره‌',
91
144
  mirrorHorizontal: 'هه‌ڵگه‌رێنه‌وه‌ به‌ده‌وری ته‌وه‌ره‌ی ئاسۆیی',
92
145
  mirrorVertical: 'هه‌ڵگه‌رێنه‌وه‌ به‌ده‌وری ته‌وه‌ره‌ی ستونی',
146
+ newDocument: 'بەڵگەنامەی نوێ',
93
147
  numberedList: 'لیستی ریزكراو',
94
148
  outdent: 'لابردنی بۆشایی',
149
+ pageBreak: 'پەیج شکاندن',
150
+ pageDown: 'لاپەڕە بۆ خوارەوە',
151
+ pageNumber: 'ژمارەی لاپەڕە',
152
+ pageUp: 'پەیج بەرەو سەرەوە',
95
153
  paragraphStyle: 'ستایلی په‌ره‌گراف',
96
154
  preview: 'پێشبینین',
97
155
  print: 'پرینت',
@@ -100,17 +158,22 @@
100
158
  redo: 'هەڵگەڕاندنەوە',
101
159
  remove: 'سڕینه‌وه‌',
102
160
  removeFormat: 'لابردنی فۆرمات',
161
+ replace: 'شوێن گرتنەوە',
162
+ replaceAll: 'هەمووی بگۆڕە',
103
163
  resize100: 'قه‌باره‌ بگۆره‌ بۆ ١٠٠%',
104
164
  resize25: 'قه‌باره‌ بگۆره‌ بۆ ٢٥%',
105
165
  resize50: 'قه‌باره‌ بگۆره‌ بۆ ٥٠%',
106
166
  resize75: 'قه‌باره‌ بگۆره‌ بۆ ٧٥%',
107
- resize: 'Resize',
167
+ resize: 'گۆڕینی قەبارە',
108
168
  revert: 'بیگەڕێنەوە سەر باری سەرەتایی',
169
+ revisionHistory: 'مێژووی پێداچوونەوە',
109
170
  right: 'راست',
110
171
  rotateLeft: 'بسوڕێنه‌ به‌لای چه‌پدا',
111
172
  rotateRight: 'بسورێنه‌ به‌لای راستدا',
173
+ row: 'ڕیز',
112
174
  save: 'پاشه‌كه‌وتكردن',
113
175
  search: 'گه‌ران',
176
+ selectAll: 'هەموو هەڵبژێرە',
114
177
  showBlocks: 'بڵۆك نیشانبده',
115
178
  size: 'قه‌باره‌',
116
179
  splitCells: 'خانه‌كان لێك جیابكه‌وه‌',
@@ -120,6 +183,7 @@
120
183
  superscript: 'سەرنووس',
121
184
  table: 'خشته‌',
122
185
  tableHeader: 'سه‌ردێری خشته‌ك',
186
+ tableProperties: 'تایبەتمەندیەکانی خشتەکان',
123
187
  tags: 'تاگه‌كان',
124
188
  tag_blockquote: 'ده‌ق',
125
189
  tag_div: 'ی ئاسایی (DIV)',
@@ -128,11 +192,13 @@
128
192
  tag_pre: 'كۆد',
129
193
  template: 'قاڵب',
130
194
  textStyle: 'ستایلی نوسین',
195
+ title: 'ناونیشان',
131
196
  underline: 'هێڵ به‌ژێردا بێنه‌',
132
197
  undo: 'وەک خۆی لێ بکەوە',
133
198
  unlink: 'سڕینەوەی بەستەر',
134
199
  verticalSplit: 'جیاكردنه‌وه‌ی ستونی',
135
200
  video: 'ڤیدیۆ',
201
+ videoGallery: 'گەلەری ڤیدیۆ',
136
202
  video_modal_file: 'فایلێك هه‌ڵبژێره‌',
137
203
  video_modal_title: 'ڤیدیۆیه‌ك دابنێ',
138
204
  video_modal_url: 'YouTube/Vimeo به‌سته‌ری له‌ناودانان وه‌ك ',
package/src/langs/cs.js CHANGED
@@ -1,3 +1,4 @@
1
+ // Czechoslovakia
1
2
  (function (global, factory) {
2
3
  if (typeof module === 'object' && typeof module.exports === 'object') {
3
4
  module.exports = global.document
@@ -15,29 +16,75 @@
15
16
  const lang = {
16
17
  code: 'cs',
17
18
  align: 'Zarovnat',
19
+ alignBottom: 'Zarovnejte spodní část',
18
20
  alignCenter: 'Zarovnat na střed',
19
21
  alignJustify: 'Zarovnat do bloku',
20
22
  alignLeft: 'Zarovnat vlevo',
23
+ alignMiddle: 'Zarovnejte střed',
21
24
  alignRight: 'Zarovnat vpravo',
25
+ alignTop: 'Zarovnejte horní část',
26
+ anchor: 'Kotva',
27
+ asBlock: 'Jako blok',
28
+ asInline: 'Jako inline',
29
+ asLink: 'Jako odkaz',
22
30
  audio: 'Zvuk',
31
+ audioGallery: 'Audiogalerie',
23
32
  audio_modal_file: 'Vybrat ze souborů',
24
33
  audio_modal_title: 'Vložit zvuk',
25
34
  audio_modal_url: 'Adresa URL zvuku',
26
35
  autoSize: 'Automatická velikost',
27
36
  backgroundColor: 'Barva zvýraznění',
28
37
  basic: 'Základní',
38
+ blockStyle: 'Blokový styl',
29
39
  bold: 'Tučné',
40
+ border: 'Pohraniční',
41
+ border_all: 'Ohraničit vše',
42
+ border_inside: 'Hranice uvnitř',
43
+ border_horizontal: 'Hranice horizontální',
44
+ border_vertical: 'Vertikální hranice',
45
+ border_outside: 'Hranice venku',
46
+ border_left: 'Hranice vlevo',
47
+ border_top: 'Horní okraj',
48
+ border_right: 'Ohraničení vpravo',
49
+ border_bottom: 'Hraniční dno',
50
+ border_none: 'Hranice žádná',
30
51
  bulletedList: 'Neřazený seznam',
52
+ cancel: 'Zrušit',
31
53
  caption: 'Vložit popis',
54
+ cellProperties: 'Vlastnosti buněk',
32
55
  center: 'Střed',
33
56
  close: 'Zavřít',
34
57
  codeView: 'Zobrazení kódu',
58
+ color: 'Barva',
59
+ colorPicker: 'Výběr barvy',
60
+ column: 'Sloupec',
61
+ comment: 'Komentáře',
62
+ commentAdd: 'Přidat komentář',
63
+ commentShow: 'Zobrazit komentáře',
64
+ copy: 'Kopie',
65
+ copyFormat: 'Formátování barvy',
66
+ cut: 'Střih',
35
67
  default: 'Výchozí',
36
68
  deleteColumn: 'Smazat sloupec',
37
69
  deleteRow: 'Smazat řádek',
38
70
  dir_ltr: 'Zleva doprava',
39
71
  dir_rtl: 'Zprava doleva',
72
+ download: 'Stáhnout',
73
+ drag: 'Táhnout',
74
+ drawing: 'Výkres',
75
+ drawing_modal_title: 'Výkres',
40
76
  edit: 'Upravit',
77
+ embed: 'Vložit',
78
+ embed_modal_title: 'Vložit',
79
+ embed_modal_source: 'Vložit zdroj / URL',
80
+ exportPDF: 'Export do PDF',
81
+ exportWord: 'Export do Word',
82
+ find: 'Nalézt',
83
+ decrease: 'Pokles',
84
+ increase: 'Zvýšení',
85
+ fileBrowser: 'Prohlížeč souborů',
86
+ fileGallery: 'Galerie souborů',
87
+ fileUpload: 'Nahrání souboru',
41
88
  fixedColumnWidth: 'Pevná šířka sloupce',
42
89
  font: 'Písmo',
43
90
  fontColor: 'Barva písma',
@@ -50,19 +97,23 @@
50
97
  hr_dashed: 'Čárkovaná',
51
98
  hr_dotted: 'Tečkovaná',
52
99
  hr_solid: 'Nepřerušovaná',
100
+ id: 'ID',
53
101
  image: 'Obrázek',
54
102
  imageGallery: 'Obrázková galerie',
55
103
  image_modal_altText: 'Alternativní text',
56
104
  image_modal_file: 'Vybrat ze souborů',
57
105
  image_modal_title: 'Vložit obrázek',
58
106
  image_modal_url: 'URL obrázku',
107
+ importWord: 'Import z Wordu',
59
108
  indent: 'Odsadit',
109
+ inlineStyle: 'Inline styl',
60
110
  insertColumnAfter: 'Vložit sloupec za',
61
111
  insertColumnBefore: 'Vložit sloupec před',
62
112
  insertRowAbove: 'Vložit řádek výše',
63
113
  insertRowBelow: 'Vložit řádek níže',
114
+ insertLine: 'Vložit řádek',
64
115
  italic: 'Kurzíva',
65
- layout: '',
116
+ layout: 'Rozložení',
66
117
  left: 'Vlevo',
67
118
  lineHeight: 'Výška řádku',
68
119
  link: 'Odkaz',
@@ -72,6 +123,7 @@
72
123
  link_modal_text: 'Text k zobrazení',
73
124
  link_modal_title: 'Vložit odkaz',
74
125
  link_modal_url: 'URL pro odkaz',
126
+ link_modal_relAttribute: 'Atribut Rel',
75
127
  list: 'Seznam',
76
128
  math: 'Matematika',
77
129
  math_modal_fontSizeLabel: 'Velikost písma',
@@ -79,6 +131,7 @@
79
131
  math_modal_previewLabel: 'Náhled',
80
132
  math_modal_title: 'Matematika',
81
133
  maxSize: 'Max. velikost',
134
+ mediaGallery: 'Galerie médií',
82
135
  mention: 'Zmínka',
83
136
  menu_bordered: 'Ohraničené',
84
137
  menu_code: 'Kód',
@@ -90,8 +143,13 @@
90
143
  minSize: 'Min. velikost',
91
144
  mirrorHorizontal: 'Zrcadlo, horizontální',
92
145
  mirrorVertical: 'Zrcadlo, vertikální',
146
+ newDocument: 'Nový dokument',
93
147
  numberedList: 'Seřazený seznam',
94
148
  outdent: 'Předsadit',
149
+ pageBreak: 'Konec stránky',
150
+ pageDown: 'O stránku dolů',
151
+ pageNumber: 'Číslo stránky',
152
+ pageUp: 'O stránku nahoru',
95
153
  paragraphStyle: 'Styl odstavce',
96
154
  preview: 'Náhled',
97
155
  print: 'tisk',
@@ -100,17 +158,22 @@
100
158
  redo: 'Opakovat',
101
159
  remove: 'Odebrat',
102
160
  removeFormat: 'Odebrat formát',
161
+ replace: 'Nahradit',
162
+ replaceAll: 'Vyměňte všechny',
103
163
  resize100: 'Změnit velikost 100%',
104
164
  resize25: 'Změnit velikost 25%',
105
165
  resize50: 'Změnit velikost 50%',
106
166
  resize75: 'Změnit velikost 75%',
107
167
  resize: 'Změnit velikost',
108
168
  revert: 'Vrátit zpět',
169
+ revisionHistory: 'Historie revizí',
109
170
  right: 'Vpravo',
110
171
  rotateLeft: 'Otočit doleva',
111
172
  rotateRight: 'Otočit doprava',
173
+ row: 'Řádek',
112
174
  save: 'Uložit',
113
175
  search: 'Hledat',
176
+ selectAll: 'Vyberte Vše',
114
177
  showBlocks: 'Zobrazit bloky',
115
178
  size: 'Velikost',
116
179
  splitCells: 'Rozdělit buňky',
@@ -120,6 +183,7 @@
120
183
  superscript: 'Horní index',
121
184
  table: 'Tabulka',
122
185
  tableHeader: 'Záhlaví tabulky',
186
+ tableProperties: 'Vlastnosti tabulky',
123
187
  tags: 'Štítky',
124
188
  tag_blockquote: 'Citovat',
125
189
  tag_div: 'Normální (DIV)',
@@ -128,11 +192,13 @@
128
192
  tag_pre: 'Kód',
129
193
  template: 'Šablona',
130
194
  textStyle: 'Styl textu',
195
+ title: 'Titul',
131
196
  underline: 'Podtržení',
132
197
  undo: 'Zpět',
133
198
  unlink: 'Odpojit',
134
199
  verticalSplit: 'Svislé rozdělení',
135
200
  video: 'Video',
201
+ videoGallery: 'Videogalerie',
136
202
  video_modal_file: 'Vybrat ze souborů',
137
203
  video_modal_title: 'Vložit video',
138
204
  video_modal_url: 'URL pro vložení médií, YouTube/Vimeo',