@opentiny/fluent-editor 4.0.0-alpha.1 → 4.0.0-alpha.10

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 (588) hide show
  1. package/README.md +88 -105
  2. package/es/attributors/line-height.es.js.map +1 -1
  3. package/es/config/base64-image.es.js.map +1 -1
  4. package/es/config/editor.config.es.js.map +1 -1
  5. package/es/config/editor.utils.es.js +0 -2
  6. package/es/config/editor.utils.es.js.map +1 -1
  7. package/es/config/i18n/en-us.es.js.map +1 -1
  8. package/es/config/i18n/zh-cn.es.js.map +1 -1
  9. package/es/config/index.es.js +2 -2
  10. package/es/config/index.es.js.map +1 -1
  11. package/es/config/types/index.es.js +0 -20
  12. package/es/config/types/index.es.js.map +1 -1
  13. package/es/core/fluent-editor.es.js +4 -1
  14. package/es/core/fluent-editor.es.js.map +1 -1
  15. package/es/fluent-editor.es.js +26 -19
  16. package/es/fluent-editor.es.js.map +1 -1
  17. package/es/formats/emoji.es.js +14 -0
  18. package/es/formats/emoji.es.js.map +1 -0
  19. package/es/formats/index.es.js +11 -0
  20. package/es/formats/index.es.js.map +1 -0
  21. package/es/formats/soft-break.es.js +12 -5
  22. package/es/formats/soft-break.es.js.map +1 -1
  23. package/es/formats/strike.es.js +8 -5
  24. package/es/formats/strike.es.js.map +1 -1
  25. package/es/formats/video.es.js +14 -10
  26. package/es/formats/video.es.js.map +1 -1
  27. package/es/index.es.js +92 -31
  28. package/es/index.es.js.map +1 -1
  29. package/es/modules/ai/constants.es.js +50 -0
  30. package/es/modules/ai/constants.es.js.map +1 -0
  31. package/es/modules/ai/icons.es.js +319 -0
  32. package/es/modules/ai/icons.es.js.map +1 -0
  33. package/es/modules/ai/index.es.js +670 -0
  34. package/es/modules/ai/index.es.js.map +1 -0
  35. package/es/modules/collaborative-editing/awareness/awareness.es.js +93 -0
  36. package/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -0
  37. package/es/modules/collaborative-editing/awareness/index.es.js +8 -0
  38. package/es/modules/{emoji/emoji-list → collaborative-editing/awareness}/index.es.js.map +1 -1
  39. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +12 -0
  40. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -0
  41. package/es/modules/collaborative-editing/collaborative-editing.es.js +105 -0
  42. package/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -0
  43. package/es/modules/collaborative-editing/index.es.js +6 -0
  44. package/es/modules/collaborative-editing/index.es.js.map +1 -0
  45. package/es/modules/collaborative-editing/module.es.js +35 -0
  46. package/es/modules/collaborative-editing/module.es.js.map +1 -0
  47. package/es/modules/collaborative-editing/provider/providerRegistry.es.js +28 -0
  48. package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -0
  49. package/es/modules/collaborative-editing/provider/webrtc.es.js +99 -0
  50. package/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -0
  51. package/es/modules/collaborative-editing/provider/websocket.es.js +111 -0
  52. package/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -0
  53. package/es/modules/collaborative-editing/types.es.js +2 -0
  54. package/es/modules/collaborative-editing/types.es.js.map +1 -0
  55. package/es/modules/counter.es.js +8 -3
  56. package/es/modules/counter.es.js.map +1 -1
  57. package/es/modules/custom-clipboard.es.js +20 -22
  58. package/es/modules/custom-clipboard.es.js.map +1 -1
  59. package/es/modules/custom-image/actions/action.es.js +19 -0
  60. package/es/modules/custom-image/actions/action.es.js.map +1 -0
  61. package/es/modules/custom-image/actions/{CustomResizeAction.es.js → custom-resize-action.es.js} +24 -11
  62. package/es/modules/custom-image/actions/custom-resize-action.es.js.map +1 -0
  63. package/es/modules/custom-image/actions/{DeleteAction.es.js → delete-action.es.js} +8 -5
  64. package/es/modules/custom-image/actions/delete-action.es.js.map +1 -0
  65. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js +137 -0
  66. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +1 -0
  67. package/es/modules/custom-image/actions/index.es.js +18 -0
  68. package/es/modules/custom-image/actions/index.es.js.map +1 -0
  69. package/es/modules/custom-image/actions/toolbar-action.es.js +33 -0
  70. package/es/modules/custom-image/actions/toolbar-action.es.js.map +1 -0
  71. package/es/modules/custom-image/actions/toolbar.es.js +110 -0
  72. package/es/modules/custom-image/actions/toolbar.es.js.map +1 -0
  73. package/es/modules/custom-image/{BlotFormatter.es.js → blot-formatter.es.js} +27 -49
  74. package/es/modules/custom-image/blot-formatter.es.js.map +1 -0
  75. package/es/modules/custom-image/image.es.js +39 -7
  76. package/es/modules/custom-image/image.es.js.map +1 -1
  77. package/es/modules/custom-image/index.es.js +9 -0
  78. package/es/modules/custom-image/index.es.js.map +1 -0
  79. package/es/modules/custom-image/options.es.js +88 -0
  80. package/es/modules/custom-image/options.es.js.map +1 -0
  81. package/es/modules/custom-image/specs/blot-spec.es.js +33 -0
  82. package/es/modules/custom-image/specs/blot-spec.es.js.map +1 -0
  83. package/es/modules/custom-image/specs/{CustomImageSpec.es.js → custom-image-spec.es.js} +13 -14
  84. package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -0
  85. package/es/modules/custom-image/specs/image-spec.es.js +32 -0
  86. package/es/modules/custom-image/specs/image-spec.es.js.map +1 -0
  87. package/es/modules/custom-image/specs/index.es.js +9 -0
  88. package/es/modules/custom-image/specs/index.es.js.map +1 -0
  89. package/es/modules/custom-uploader.es.js +7 -5
  90. package/es/modules/custom-uploader.es.js.map +1 -1
  91. package/es/modules/divider.es.js +8 -7
  92. package/es/modules/divider.es.js.map +1 -1
  93. package/es/modules/emoji.es.js +167 -0
  94. package/es/modules/emoji.es.js.map +1 -0
  95. package/es/modules/file/formats/file.es.js +10 -8
  96. package/es/modules/file/formats/file.es.js.map +1 -1
  97. package/es/modules/file/index.es.js +6 -28
  98. package/es/modules/file/index.es.js.map +1 -1
  99. package/es/modules/file/modules/file-bar.es.js +11 -3
  100. package/es/modules/file/modules/file-bar.es.js.map +1 -1
  101. package/es/modules/file/modules/file-module.es.js +35 -0
  102. package/es/modules/file/modules/file-module.es.js.map +1 -0
  103. package/es/modules/i18n.es.js +6 -3
  104. package/es/modules/i18n.es.js.map +1 -1
  105. package/es/modules/index.es.js +27 -0
  106. package/es/modules/index.es.js.map +1 -0
  107. package/es/modules/link/formats/link.es.js +14 -10
  108. package/es/modules/link/formats/link.es.js.map +1 -1
  109. package/es/modules/link/index.es.js +4 -12
  110. package/es/modules/link/index.es.js.map +1 -1
  111. package/es/modules/link/modules/tooltip.es.js +28 -19
  112. package/es/modules/link/modules/tooltip.es.js.map +1 -1
  113. package/es/modules/mathlive/formats.es.js +10 -7
  114. package/es/modules/mathlive/formats.es.js.map +1 -1
  115. package/es/modules/mathlive/index.es.js +6 -30
  116. package/es/modules/mathlive/index.es.js.map +1 -1
  117. package/es/modules/mathlive/module.es.js +40 -0
  118. package/es/modules/mathlive/module.es.js.map +1 -0
  119. package/es/modules/mathlive/tooltip.es.js +9 -5
  120. package/es/modules/mathlive/tooltip.es.js.map +1 -1
  121. package/es/modules/mention/constants.es.js.map +1 -1
  122. package/es/modules/mention/index.es.js +7 -0
  123. package/es/modules/mention/index.es.js.map +1 -0
  124. package/es/modules/mention/{MentionLink.es.js → mention-link.es.js} +14 -6
  125. package/es/modules/mention/mention-link.es.js.map +1 -0
  126. package/es/modules/mention/{Mention.es.js → mention.es.js} +28 -20
  127. package/es/modules/mention/mention.es.js.map +1 -0
  128. package/es/modules/shortcut-key/index.es.js.map +1 -1
  129. package/es/modules/syntax.es.js +4 -0
  130. package/es/modules/syntax.es.js.map +1 -1
  131. package/es/modules/table-up/index.es.js +16 -6
  132. package/es/modules/table-up/index.es.js.map +1 -1
  133. package/es/modules/toolbar/better-picker.es.js +5 -0
  134. package/es/modules/toolbar/better-picker.es.js.map +1 -1
  135. package/es/modules/toolbar/better-toolbar.es.js +138 -0
  136. package/es/modules/toolbar/better-toolbar.es.js.map +1 -0
  137. package/es/modules/toolbar/index.es.js +5 -135
  138. package/es/modules/toolbar/index.es.js.map +1 -1
  139. package/es/themes/snow.es.js +18 -10
  140. package/es/themes/snow.es.js.map +1 -1
  141. package/es/tools/format-painter.es.js +8 -2
  142. package/es/tools/format-painter.es.js.map +1 -1
  143. package/es/tools/fullscreen.es.js.map +1 -1
  144. package/es/tools/screenshot.es.js.map +1 -1
  145. package/es/ui/icons.config.es.js +53 -0
  146. package/es/ui/icons.config.es.js.map +1 -1
  147. package/es/ui/icons.es.js +2 -1
  148. package/es/ui/icons.es.js.map +1 -1
  149. package/es/utils/debounce.es.js.map +1 -1
  150. package/es/utils/is.es.js.map +1 -1
  151. package/es/utils/method.es.js.map +1 -1
  152. package/lib/attributors/line-height.cjs.js.map +1 -1
  153. package/lib/config/base64-image.cjs.js.map +1 -1
  154. package/lib/config/editor.config.cjs.js.map +1 -1
  155. package/lib/config/editor.utils.cjs.js +0 -2
  156. package/lib/config/editor.utils.cjs.js.map +1 -1
  157. package/lib/config/i18n/en-us.cjs.js.map +1 -1
  158. package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
  159. package/lib/config/index.cjs.js +1 -1
  160. package/lib/config/index.cjs.js.map +1 -1
  161. package/lib/config/types/index.cjs.js +0 -20
  162. package/lib/config/types/index.cjs.js.map +1 -1
  163. package/lib/core/fluent-editor.cjs.js +4 -1
  164. package/lib/core/fluent-editor.cjs.js.map +1 -1
  165. package/lib/fluent-editor.cjs.js +35 -28
  166. package/lib/fluent-editor.cjs.js.map +1 -1
  167. package/lib/formats/emoji.cjs.js +14 -0
  168. package/lib/formats/emoji.cjs.js.map +1 -0
  169. package/lib/formats/index.cjs.js +11 -0
  170. package/lib/formats/index.cjs.js.map +1 -0
  171. package/lib/formats/soft-break.cjs.js +13 -6
  172. package/lib/formats/soft-break.cjs.js.map +1 -1
  173. package/lib/formats/strike.cjs.js +9 -6
  174. package/lib/formats/strike.cjs.js.map +1 -1
  175. package/lib/formats/video.cjs.js +15 -11
  176. package/lib/formats/video.cjs.js.map +1 -1
  177. package/lib/index.cjs.js +113 -34
  178. package/lib/index.cjs.js.map +1 -1
  179. package/lib/modules/ai/constants.cjs.js +50 -0
  180. package/lib/modules/ai/constants.cjs.js.map +1 -0
  181. package/lib/modules/ai/icons.cjs.js +319 -0
  182. package/lib/modules/ai/icons.cjs.js.map +1 -0
  183. package/lib/modules/ai/index.cjs.js +670 -0
  184. package/lib/modules/ai/index.cjs.js.map +1 -0
  185. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +110 -0
  186. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -0
  187. package/lib/modules/collaborative-editing/awareness/index.cjs.js +8 -0
  188. package/lib/modules/collaborative-editing/awareness/index.cjs.js.map +1 -0
  189. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +12 -0
  190. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -0
  191. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +122 -0
  192. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -0
  193. package/lib/modules/collaborative-editing/index.cjs.js +6 -0
  194. package/lib/modules/{emoji/emoji-list → collaborative-editing}/index.cjs.js.map +1 -1
  195. package/lib/modules/collaborative-editing/module.cjs.js +35 -0
  196. package/lib/modules/collaborative-editing/module.cjs.js.map +1 -0
  197. package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js +28 -0
  198. package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -0
  199. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +116 -0
  200. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -0
  201. package/lib/modules/collaborative-editing/provider/websocket.cjs.js +128 -0
  202. package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -0
  203. package/lib/modules/collaborative-editing/types.cjs.js +2 -0
  204. package/lib/modules/collaborative-editing/types.cjs.js.map +1 -0
  205. package/lib/modules/counter.cjs.js +8 -3
  206. package/lib/modules/counter.cjs.js.map +1 -1
  207. package/lib/modules/custom-clipboard.cjs.js +21 -23
  208. package/lib/modules/custom-clipboard.cjs.js.map +1 -1
  209. package/lib/modules/custom-image/actions/action.cjs.js +19 -0
  210. package/lib/modules/custom-image/actions/action.cjs.js.map +1 -0
  211. package/lib/modules/custom-image/actions/{CustomResizeAction.cjs.js → custom-resize-action.cjs.js} +26 -13
  212. package/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +1 -0
  213. package/lib/modules/custom-image/actions/{DeleteAction.cjs.js → delete-action.cjs.js} +10 -7
  214. package/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -0
  215. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js +137 -0
  216. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +1 -0
  217. package/lib/modules/custom-image/actions/index.cjs.js +18 -0
  218. package/lib/modules/custom-image/actions/index.cjs.js.map +1 -0
  219. package/lib/modules/custom-image/actions/toolbar-action.cjs.js +33 -0
  220. package/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +1 -0
  221. package/lib/modules/custom-image/actions/toolbar.cjs.js +110 -0
  222. package/lib/modules/custom-image/actions/toolbar.cjs.js.map +1 -0
  223. package/lib/modules/custom-image/{BlotFormatter.cjs.js → blot-formatter.cjs.js} +28 -50
  224. package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -0
  225. package/lib/modules/custom-image/image.cjs.js +40 -8
  226. package/lib/modules/custom-image/image.cjs.js.map +1 -1
  227. package/lib/modules/custom-image/index.cjs.js +9 -0
  228. package/lib/modules/custom-image/index.cjs.js.map +1 -0
  229. package/lib/modules/custom-image/options.cjs.js +88 -0
  230. package/lib/modules/custom-image/options.cjs.js.map +1 -0
  231. package/lib/modules/custom-image/specs/blot-spec.cjs.js +33 -0
  232. package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -0
  233. package/lib/modules/custom-image/specs/{CustomImageSpec.cjs.js → custom-image-spec.cjs.js} +14 -15
  234. package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -0
  235. package/lib/modules/custom-image/specs/image-spec.cjs.js +32 -0
  236. package/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -0
  237. package/lib/modules/custom-image/specs/index.cjs.js +9 -0
  238. package/lib/modules/custom-image/specs/index.cjs.js.map +1 -0
  239. package/lib/modules/custom-uploader.cjs.js +7 -5
  240. package/lib/modules/custom-uploader.cjs.js.map +1 -1
  241. package/lib/modules/divider.cjs.js +9 -8
  242. package/lib/modules/divider.cjs.js.map +1 -1
  243. package/lib/modules/emoji.cjs.js +167 -0
  244. package/lib/modules/emoji.cjs.js.map +1 -0
  245. package/lib/modules/file/formats/file.cjs.js +11 -9
  246. package/lib/modules/file/formats/file.cjs.js.map +1 -1
  247. package/lib/modules/file/index.cjs.js +5 -27
  248. package/lib/modules/file/index.cjs.js.map +1 -1
  249. package/lib/modules/file/modules/file-bar.cjs.js +12 -4
  250. package/lib/modules/file/modules/file-bar.cjs.js.map +1 -1
  251. package/lib/modules/file/modules/file-module.cjs.js +35 -0
  252. package/lib/modules/file/modules/file-module.cjs.js.map +1 -0
  253. package/lib/modules/i18n.cjs.js +6 -3
  254. package/lib/modules/i18n.cjs.js.map +1 -1
  255. package/lib/modules/index.cjs.js +27 -0
  256. package/lib/modules/index.cjs.js.map +1 -0
  257. package/lib/modules/link/formats/link.cjs.js +15 -11
  258. package/lib/modules/link/formats/link.cjs.js.map +1 -1
  259. package/lib/modules/link/index.cjs.js +4 -12
  260. package/lib/modules/link/index.cjs.js.map +1 -1
  261. package/lib/modules/link/modules/tooltip.cjs.js +28 -19
  262. package/lib/modules/link/modules/tooltip.cjs.js.map +1 -1
  263. package/lib/modules/mathlive/formats.cjs.js +11 -8
  264. package/lib/modules/mathlive/formats.cjs.js.map +1 -1
  265. package/lib/modules/mathlive/index.cjs.js +5 -29
  266. package/lib/modules/mathlive/index.cjs.js.map +1 -1
  267. package/lib/modules/mathlive/module.cjs.js +40 -0
  268. package/lib/modules/mathlive/module.cjs.js.map +1 -0
  269. package/lib/modules/mathlive/tooltip.cjs.js +10 -6
  270. package/lib/modules/mathlive/tooltip.cjs.js.map +1 -1
  271. package/lib/modules/mention/constants.cjs.js.map +1 -1
  272. package/lib/modules/mention/index.cjs.js +7 -0
  273. package/lib/modules/mention/index.cjs.js.map +1 -0
  274. package/lib/modules/mention/{MentionLink.cjs.js → mention-link.cjs.js} +15 -7
  275. package/lib/modules/mention/mention-link.cjs.js.map +1 -0
  276. package/lib/modules/mention/{Mention.cjs.js → mention.cjs.js} +30 -22
  277. package/lib/modules/mention/mention.cjs.js.map +1 -0
  278. package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
  279. package/lib/modules/syntax.cjs.js +4 -0
  280. package/lib/modules/syntax.cjs.js.map +1 -1
  281. package/lib/modules/table-up/index.cjs.js +16 -6
  282. package/lib/modules/table-up/index.cjs.js.map +1 -1
  283. package/lib/modules/toolbar/better-picker.cjs.js +5 -0
  284. package/lib/modules/toolbar/better-picker.cjs.js.map +1 -1
  285. package/lib/modules/toolbar/better-toolbar.cjs.js +138 -0
  286. package/lib/modules/toolbar/better-toolbar.cjs.js.map +1 -0
  287. package/lib/modules/toolbar/index.cjs.js +6 -136
  288. package/lib/modules/toolbar/index.cjs.js.map +1 -1
  289. package/lib/themes/snow.cjs.js +19 -11
  290. package/lib/themes/snow.cjs.js.map +1 -1
  291. package/lib/tools/format-painter.cjs.js +8 -2
  292. package/lib/tools/format-painter.cjs.js.map +1 -1
  293. package/lib/tools/fullscreen.cjs.js.map +1 -1
  294. package/lib/tools/screenshot.cjs.js.map +1 -1
  295. package/lib/ui/icons.cjs.js +1 -0
  296. package/lib/ui/icons.cjs.js.map +1 -1
  297. package/lib/ui/icons.config.cjs.js +53 -0
  298. package/lib/ui/icons.config.cjs.js.map +1 -1
  299. package/lib/utils/debounce.cjs.js.map +1 -1
  300. package/lib/utils/is.cjs.js.map +1 -1
  301. package/lib/utils/method.cjs.js.map +1 -1
  302. package/package.json +68 -59
  303. package/style.css +2354 -2233
  304. package/types/attributors/font-size.d.ts +1 -1
  305. package/types/attributors/font-style.d.ts +1 -1
  306. package/types/attributors/index.d.ts +4 -4
  307. package/types/attributors/line-height.d.ts +1 -1
  308. package/types/attributors/text-indent.d.ts +1 -1
  309. package/types/config/base64-image.d.ts +2 -2
  310. package/types/config/editor.config.d.ts +11 -11
  311. package/types/config/editor.utils.d.ts +40 -41
  312. package/types/config/i18n/en-us.d.ts +123 -123
  313. package/types/config/i18n/zh-cn.d.ts +123 -123
  314. package/types/config/index.d.ts +7 -6
  315. package/types/config/types/editor-config.interface.d.ts +11 -16
  316. package/types/config/types/editor-modules.interface.d.ts +40 -32
  317. package/types/config/types/index.d.ts +3 -23
  318. package/types/config/types/type.d.ts +2 -6
  319. package/types/core/fluent-editor.d.ts +10 -12
  320. package/types/fluent-editor.d.ts +1 -2
  321. package/types/formats/emoji.d.ts +8 -0
  322. package/types/formats/index.d.ts +4 -0
  323. package/types/formats/soft-break.d.ts +12 -14
  324. package/types/formats/strike.d.ts +8 -7
  325. package/types/formats/video.d.ts +13 -16
  326. package/types/index.d.ts +7 -7
  327. package/types/modules/ai/constants.d.ts +30 -0
  328. package/types/modules/ai/icons.d.ts +21 -0
  329. package/types/modules/ai/index.d.ts +96 -0
  330. package/types/modules/ai/types.d.ts +16 -0
  331. package/types/modules/collaborative-editing/awareness/awareness.d.ts +28 -0
  332. package/types/modules/collaborative-editing/awareness/index.d.ts +2 -0
  333. package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +2 -0
  334. package/types/modules/collaborative-editing/collaborative-editing.d.ts +24 -0
  335. package/types/modules/collaborative-editing/index.d.ts +2 -0
  336. package/types/modules/collaborative-editing/module.d.ts +11 -0
  337. package/types/modules/collaborative-editing/provider/index.d.ts +3 -0
  338. package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +25 -0
  339. package/types/modules/collaborative-editing/provider/webrtc.d.ts +36 -0
  340. package/types/modules/collaborative-editing/provider/websocket.d.ts +40 -0
  341. package/types/modules/collaborative-editing/types.d.ts +37 -0
  342. package/types/modules/counter.d.ts +22 -16
  343. package/types/modules/custom-clipboard.d.ts +23 -27
  344. package/types/modules/custom-image/actions/action.d.ts +8 -0
  345. package/types/modules/custom-image/actions/{CustomResizeAction.d.ts → custom-resize-action.d.ts} +23 -24
  346. package/types/modules/custom-image/actions/delete-action.d.ts +6 -0
  347. package/types/modules/custom-image/actions/image-toolbar-buttons.d.ts +16 -0
  348. package/types/modules/custom-image/actions/index.d.ts +6 -0
  349. package/types/modules/custom-image/actions/toolbar-action.d.ts +11 -0
  350. package/types/modules/custom-image/actions/toolbar.d.ts +19 -0
  351. package/types/modules/custom-image/blot-formatter.d.ts +23 -0
  352. package/types/modules/custom-image/image.d.ts +27 -24
  353. package/types/modules/custom-image/index.d.ts +4 -0
  354. package/types/modules/custom-image/options.d.ts +47 -0
  355. package/types/modules/custom-image/specs/blot-spec.d.ts +12 -0
  356. package/types/modules/custom-image/specs/{CustomImageSpec.d.ts → custom-image-spec.d.ts} +17 -21
  357. package/types/modules/custom-image/specs/image-spec.d.ts +8 -0
  358. package/types/modules/custom-image/specs/index.d.ts +3 -0
  359. package/types/modules/custom-uploader.d.ts +40 -0
  360. package/types/modules/divider.d.ts +8 -7
  361. package/types/modules/emoji.d.ts +39 -0
  362. package/types/modules/file/formats/file.d.ts +17 -18
  363. package/types/modules/file/index.d.ts +3 -11
  364. package/types/modules/file/modules/file-bar.d.ts +14 -14
  365. package/types/modules/file/modules/file-module.d.ts +9 -0
  366. package/types/modules/i18n.d.ts +13 -15
  367. package/types/modules/index.d.ts +16 -0
  368. package/types/modules/link/formats/link.d.ts +14 -15
  369. package/types/modules/link/index.d.ts +2 -6
  370. package/types/modules/link/modules/tooltip.d.ts +26 -32
  371. package/types/modules/mathlive/formats.d.ts +20 -21
  372. package/types/modules/mathlive/index.d.ts +3 -9
  373. package/types/modules/mathlive/module.d.ts +9 -0
  374. package/types/modules/mathlive/tooltip.d.ts +14 -15
  375. package/types/modules/mention/constants.d.ts +3 -3
  376. package/types/modules/mention/index.d.ts +2 -0
  377. package/types/modules/mention/{MentionLink.d.ts → mention-link.d.ts} +15 -15
  378. package/types/modules/mention/{Mention.d.ts → mention.d.ts} +52 -54
  379. package/types/modules/shortcut-key/index.d.ts +67 -64
  380. package/types/modules/syntax.d.ts +12 -13
  381. package/types/modules/table-up/index.d.ts +32 -64
  382. package/types/modules/toolbar/better-picker.d.ts +13 -14
  383. package/types/modules/toolbar/better-toolbar.d.ts +7 -0
  384. package/types/modules/toolbar/index.d.ts +3 -9
  385. package/types/modules/toolbar/toolbar-tip.d.ts +7 -8
  386. package/types/themes/snow.d.ts +9 -10
  387. package/types/tools/format-painter.d.ts +12 -14
  388. package/types/tools/fullscreen.d.ts +6 -3
  389. package/types/tools/screenshot.d.ts +17 -18
  390. package/types/ui/icons.config.d.ts +38 -36
  391. package/types/ui/icons.d.ts +6 -6
  392. package/types/utils/debounce.d.ts +6 -6
  393. package/types/utils/image.d.ts +1 -1
  394. package/types/utils/is.d.ts +6 -6
  395. package/types/utils/method.d.ts +6 -6
  396. package/types/utils/scroll-lock.d.ts +6 -6
  397. package/es/config/types/additional-toolbar-item.interface.es.js +0 -2
  398. package/es/config/types/additional-toolbar-item.interface.es.js.map +0 -1
  399. package/es/config/types/content-change.interface.es.js +0 -2
  400. package/es/config/types/content-change.interface.es.js.map +0 -1
  401. package/es/config/types/content-save.interface.es.js +0 -2
  402. package/es/config/types/content-save.interface.es.js.map +0 -1
  403. package/es/config/types/counter-option.interface.es.js +0 -2
  404. package/es/config/types/counter-option.interface.es.js.map +0 -1
  405. package/es/config/types/editor-toolbar.interface.es.js +0 -2
  406. package/es/config/types/editor-toolbar.interface.es.js.map +0 -1
  407. package/es/config/types/file-operation.interface.es.js +0 -2
  408. package/es/config/types/file-operation.interface.es.js.map +0 -1
  409. package/es/config/types/focus-change.interface.es.js +0 -2
  410. package/es/config/types/focus-change.interface.es.js.map +0 -1
  411. package/es/config/types/fullscreen-module.interface.es.js +0 -2
  412. package/es/config/types/fullscreen-module.interface.es.js.map +0 -1
  413. package/es/config/types/help-panel-item.interface.es.js +0 -2
  414. package/es/config/types/help-panel-item.interface.es.js.map +0 -1
  415. package/es/config/types/help-panel-option.interface.es.js +0 -2
  416. package/es/config/types/help-panel-option.interface.es.js.map +0 -1
  417. package/es/config/types/image-module.interface.es.js +0 -2
  418. package/es/config/types/image-module.interface.es.js.map +0 -1
  419. package/es/config/types/image-upload.interface.es.js +0 -2
  420. package/es/config/types/image-upload.interface.es.js.map +0 -1
  421. package/es/config/types/load-on-demand-module.interface.es.js +0 -2
  422. package/es/config/types/load-on-demand-module.interface.es.js.map +0 -1
  423. package/es/config/types/mention-module.interface.es.js +0 -2
  424. package/es/config/types/mention-module.interface.es.js.map +0 -1
  425. package/es/config/types/paste-change.interface.es.js +0 -2
  426. package/es/config/types/paste-change.interface.es.js.map +0 -1
  427. package/es/config/types/quick-menu-module.interface.es.js +0 -2
  428. package/es/config/types/quick-menu-module.interface.es.js.map +0 -1
  429. package/es/config/types/range.interface.es.js +0 -2
  430. package/es/config/types/range.interface.es.js.map +0 -1
  431. package/es/config/types/registry-options.interface.es.js +0 -2
  432. package/es/config/types/registry-options.interface.es.js.map +0 -1
  433. package/es/config/types/selection-change.interface.es.js +0 -2
  434. package/es/config/types/selection-change.interface.es.js.map +0 -1
  435. package/es/config/types/toolbar-item.interface.es.js +0 -2
  436. package/es/config/types/toolbar-item.interface.es.js.map +0 -1
  437. package/es/config/types/validate-error.interface.es.js +0 -2
  438. package/es/config/types/validate-error.interface.es.js.map +0 -1
  439. package/es/modules/custom-image/BlotFormatter.es.js.map +0 -1
  440. package/es/modules/custom-image/Options.es.js +0 -95
  441. package/es/modules/custom-image/Options.es.js.map +0 -1
  442. package/es/modules/custom-image/actions/Action.es.js +0 -15
  443. package/es/modules/custom-image/actions/Action.es.js.map +0 -1
  444. package/es/modules/custom-image/actions/CustomResizeAction.es.js.map +0 -1
  445. package/es/modules/custom-image/actions/DeleteAction.es.js.map +0 -1
  446. package/es/modules/custom-image/image-bar.es.js +0 -127
  447. package/es/modules/custom-image/image-bar.es.js.map +0 -1
  448. package/es/modules/custom-image/specs/BlotSpec.es.js +0 -27
  449. package/es/modules/custom-image/specs/BlotSpec.es.js.map +0 -1
  450. package/es/modules/custom-image/specs/CustomImageSpec.es.js.map +0 -1
  451. package/es/modules/custom-image/specs/ImageSpec.es.js +0 -29
  452. package/es/modules/custom-image/specs/ImageSpec.es.js.map +0 -1
  453. package/es/modules/emoji/emoji-list/index.es.js +0 -5
  454. package/es/modules/emoji/emoji-list/people.es.js +0 -114
  455. package/es/modules/emoji/emoji-list/people.es.js.map +0 -1
  456. package/es/modules/emoji/emoji-list.es.js +0 -9
  457. package/es/modules/emoji/emoji-list.es.js.map +0 -1
  458. package/es/modules/emoji/emoji-map.es.js +0 -9
  459. package/es/modules/emoji/emoji-map.es.js.map +0 -1
  460. package/es/modules/emoji/emoji-sprite.es.js +0 -5
  461. package/es/modules/emoji/emoji-sprite.es.js.map +0 -1
  462. package/es/modules/emoji/formats/emoji-blot.es.js +0 -41
  463. package/es/modules/emoji/formats/emoji-blot.es.js.map +0 -1
  464. package/es/modules/emoji/index.es.js +0 -8
  465. package/es/modules/emoji/index.es.js.map +0 -1
  466. package/es/modules/emoji/modules/emoji.es.js +0 -248
  467. package/es/modules/emoji/modules/emoji.es.js.map +0 -1
  468. package/es/modules/emoji/modules/toolbar-emoji.es.js +0 -153
  469. package/es/modules/emoji/modules/toolbar-emoji.es.js.map +0 -1
  470. package/es/modules/emoji/utils.es.js +0 -19
  471. package/es/modules/emoji/utils.es.js.map +0 -1
  472. package/es/modules/mention/Mention.es.js.map +0 -1
  473. package/es/modules/mention/MentionLink.es.js.map +0 -1
  474. package/lib/config/types/additional-toolbar-item.interface.cjs.js +0 -2
  475. package/lib/config/types/additional-toolbar-item.interface.cjs.js.map +0 -1
  476. package/lib/config/types/content-change.interface.cjs.js +0 -2
  477. package/lib/config/types/content-change.interface.cjs.js.map +0 -1
  478. package/lib/config/types/content-save.interface.cjs.js +0 -2
  479. package/lib/config/types/content-save.interface.cjs.js.map +0 -1
  480. package/lib/config/types/counter-option.interface.cjs.js +0 -2
  481. package/lib/config/types/counter-option.interface.cjs.js.map +0 -1
  482. package/lib/config/types/editor-toolbar.interface.cjs.js +0 -2
  483. package/lib/config/types/editor-toolbar.interface.cjs.js.map +0 -1
  484. package/lib/config/types/file-operation.interface.cjs.js +0 -2
  485. package/lib/config/types/file-operation.interface.cjs.js.map +0 -1
  486. package/lib/config/types/focus-change.interface.cjs.js +0 -2
  487. package/lib/config/types/focus-change.interface.cjs.js.map +0 -1
  488. package/lib/config/types/fullscreen-module.interface.cjs.js +0 -2
  489. package/lib/config/types/fullscreen-module.interface.cjs.js.map +0 -1
  490. package/lib/config/types/help-panel-item.interface.cjs.js +0 -2
  491. package/lib/config/types/help-panel-item.interface.cjs.js.map +0 -1
  492. package/lib/config/types/help-panel-option.interface.cjs.js +0 -2
  493. package/lib/config/types/help-panel-option.interface.cjs.js.map +0 -1
  494. package/lib/config/types/image-module.interface.cjs.js +0 -2
  495. package/lib/config/types/image-module.interface.cjs.js.map +0 -1
  496. package/lib/config/types/image-upload.interface.cjs.js +0 -2
  497. package/lib/config/types/image-upload.interface.cjs.js.map +0 -1
  498. package/lib/config/types/load-on-demand-module.interface.cjs.js +0 -2
  499. package/lib/config/types/load-on-demand-module.interface.cjs.js.map +0 -1
  500. package/lib/config/types/mention-module.interface.cjs.js +0 -2
  501. package/lib/config/types/mention-module.interface.cjs.js.map +0 -1
  502. package/lib/config/types/paste-change.interface.cjs.js +0 -2
  503. package/lib/config/types/paste-change.interface.cjs.js.map +0 -1
  504. package/lib/config/types/quick-menu-module.interface.cjs.js +0 -2
  505. package/lib/config/types/quick-menu-module.interface.cjs.js.map +0 -1
  506. package/lib/config/types/range.interface.cjs.js +0 -2
  507. package/lib/config/types/range.interface.cjs.js.map +0 -1
  508. package/lib/config/types/registry-options.interface.cjs.js +0 -2
  509. package/lib/config/types/registry-options.interface.cjs.js.map +0 -1
  510. package/lib/config/types/selection-change.interface.cjs.js +0 -2
  511. package/lib/config/types/selection-change.interface.cjs.js.map +0 -1
  512. package/lib/config/types/toolbar-item.interface.cjs.js +0 -2
  513. package/lib/config/types/toolbar-item.interface.cjs.js.map +0 -1
  514. package/lib/config/types/validate-error.interface.cjs.js +0 -2
  515. package/lib/config/types/validate-error.interface.cjs.js.map +0 -1
  516. package/lib/modules/custom-image/BlotFormatter.cjs.js.map +0 -1
  517. package/lib/modules/custom-image/Options.cjs.js +0 -95
  518. package/lib/modules/custom-image/Options.cjs.js.map +0 -1
  519. package/lib/modules/custom-image/actions/Action.cjs.js +0 -15
  520. package/lib/modules/custom-image/actions/Action.cjs.js.map +0 -1
  521. package/lib/modules/custom-image/actions/CustomResizeAction.cjs.js.map +0 -1
  522. package/lib/modules/custom-image/actions/DeleteAction.cjs.js.map +0 -1
  523. package/lib/modules/custom-image/image-bar.cjs.js +0 -127
  524. package/lib/modules/custom-image/image-bar.cjs.js.map +0 -1
  525. package/lib/modules/custom-image/specs/BlotSpec.cjs.js +0 -27
  526. package/lib/modules/custom-image/specs/BlotSpec.cjs.js.map +0 -1
  527. package/lib/modules/custom-image/specs/CustomImageSpec.cjs.js.map +0 -1
  528. package/lib/modules/custom-image/specs/ImageSpec.cjs.js +0 -29
  529. package/lib/modules/custom-image/specs/ImageSpec.cjs.js.map +0 -1
  530. package/lib/modules/emoji/emoji-list/index.cjs.js +0 -5
  531. package/lib/modules/emoji/emoji-list/people.cjs.js +0 -114
  532. package/lib/modules/emoji/emoji-list/people.cjs.js.map +0 -1
  533. package/lib/modules/emoji/emoji-list.cjs.js +0 -9
  534. package/lib/modules/emoji/emoji-list.cjs.js.map +0 -1
  535. package/lib/modules/emoji/emoji-map.cjs.js +0 -9
  536. package/lib/modules/emoji/emoji-map.cjs.js.map +0 -1
  537. package/lib/modules/emoji/emoji-sprite.cjs.js +0 -5
  538. package/lib/modules/emoji/emoji-sprite.cjs.js.map +0 -1
  539. package/lib/modules/emoji/formats/emoji-blot.cjs.js +0 -41
  540. package/lib/modules/emoji/formats/emoji-blot.cjs.js.map +0 -1
  541. package/lib/modules/emoji/index.cjs.js +0 -8
  542. package/lib/modules/emoji/index.cjs.js.map +0 -1
  543. package/lib/modules/emoji/modules/emoji.cjs.js +0 -248
  544. package/lib/modules/emoji/modules/emoji.cjs.js.map +0 -1
  545. package/lib/modules/emoji/modules/toolbar-emoji.cjs.js +0 -153
  546. package/lib/modules/emoji/modules/toolbar-emoji.cjs.js.map +0 -1
  547. package/lib/modules/emoji/utils.cjs.js +0 -19
  548. package/lib/modules/emoji/utils.cjs.js.map +0 -1
  549. package/lib/modules/mention/Mention.cjs.js.map +0 -1
  550. package/lib/modules/mention/MentionLink.cjs.js.map +0 -1
  551. package/types/config/types/additional-toolbar-item.interface.d.ts +0 -8
  552. package/types/config/types/content-change.interface.d.ts +0 -13
  553. package/types/config/types/content-save.interface.d.ts +0 -6
  554. package/types/config/types/counter-option.interface.d.ts +0 -9
  555. package/types/config/types/editor-toolbar.interface.d.ts +0 -6
  556. package/types/config/types/file-operation.interface.d.ts +0 -12
  557. package/types/config/types/focus-change.interface.d.ts +0 -4
  558. package/types/config/types/fullscreen-module.interface.d.ts +0 -4
  559. package/types/config/types/help-panel-item.interface.d.ts +0 -5
  560. package/types/config/types/help-panel-option.interface.d.ts +0 -7
  561. package/types/config/types/image-module.interface.d.ts +0 -3
  562. package/types/config/types/image-upload.interface.d.ts +0 -7
  563. package/types/config/types/load-on-demand-module.interface.d.ts +0 -5
  564. package/types/config/types/mention-module.interface.d.ts +0 -8
  565. package/types/config/types/paste-change.interface.d.ts +0 -6
  566. package/types/config/types/quick-menu-module.interface.d.ts +0 -3
  567. package/types/config/types/range.interface.d.ts +0 -4
  568. package/types/config/types/registry-options.interface.d.ts +0 -5
  569. package/types/config/types/selection-change.interface.d.ts +0 -8
  570. package/types/config/types/toolbar-item.interface.d.ts +0 -13
  571. package/types/config/types/validate-error.interface.d.ts +0 -13
  572. package/types/modules/custom-image/BlotFormatter.d.ts +0 -29
  573. package/types/modules/custom-image/Options.d.ts +0 -36
  574. package/types/modules/custom-image/actions/Action.d.ts +0 -7
  575. package/types/modules/custom-image/actions/DeleteAction.d.ts +0 -7
  576. package/types/modules/custom-image/image-bar.d.ts +0 -15
  577. package/types/modules/custom-image/specs/BlotSpec.d.ts +0 -13
  578. package/types/modules/custom-image/specs/ImageSpec.d.ts +0 -10
  579. package/types/modules/emoji/emoji-list/index.d.ts +0 -1
  580. package/types/modules/emoji/emoji-list/people.d.ts +0 -1
  581. package/types/modules/emoji/emoji-list.d.ts +0 -2
  582. package/types/modules/emoji/emoji-map.d.ts +0 -2
  583. package/types/modules/emoji/emoji-sprite.d.ts +0 -1
  584. package/types/modules/emoji/formats/emoji-blot.d.ts +0 -13
  585. package/types/modules/emoji/index.d.ts +0 -10
  586. package/types/modules/emoji/modules/emoji.d.ts +0 -38
  587. package/types/modules/emoji/modules/toolbar-emoji.d.ts +0 -8
  588. package/types/modules/emoji/utils.d.ts +0 -1
@@ -1,9 +0,0 @@
1
- import "./emoji-list/index.es.js";
2
- import { peopleEmoji } from "./emoji-list/people.es.js";
3
- const emojiList = [
4
- ...peopleEmoji
5
- ];
6
- export {
7
- emojiList as default
8
- };
9
- //# sourceMappingURL=emoji-list.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emoji-list.es.js","sources":["../../../../src/modules/emoji/emoji-list.ts"],"sourcesContent":["import {\r\n peopleEmoji,\r\n} from './emoji-list/index'\r\n\r\nconst emojiList = [\r\n ...peopleEmoji,\r\n]\r\n\r\nexport default emojiList\r\n"],"names":[],"mappings":";;AAIA,MAAM,YAAY;AAAA,EAChB,GAAG;AACL;"}
@@ -1,9 +0,0 @@
1
- import emojiList from "./emoji-list.es.js";
2
- const emojiMap = {};
3
- emojiList.forEach((emojiListObject) => {
4
- emojiMap[emojiListObject.name] = emojiListObject;
5
- });
6
- export {
7
- emojiMap as default
8
- };
9
- //# sourceMappingURL=emoji-map.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emoji-map.es.js","sources":["../../../../src/modules/emoji/emoji-map.ts"],"sourcesContent":["import emojiList from './emoji-list'\r\n\r\nconst emojiMap = {}\r\n\r\nemojiList.forEach((emojiListObject) => {\r\n emojiMap[emojiListObject.name] = emojiListObject\r\n})\r\n\r\nexport default emojiMap\r\n"],"names":[],"mappings":";AAEA,MAAM,WAAW,CAAA;AAEjB,UAAU,QAAQ,CAAC,oBAAoB;AAC5B,WAAA,gBAAgB,IAAI,IAAI;AACnC,CAAC;"}
@@ -1,5 +0,0 @@
1
- const EMOJI_SPRITE = "data:image/png;base64,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";
2
- export {
3
- EMOJI_SPRITE
4
- };
5
- //# sourceMappingURL=emoji-sprite.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emoji-sprite.es.js","sources":["../../../../src/modules/emoji/emoji-sprite.ts"],"sourcesContent":["export const EMOJI_SPRITE\r\n = 'data:image/png;base64,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'\r\n"],"names":[],"mappings":"AAAO,MAAM,eACT;"}
@@ -1,41 +0,0 @@
1
- import Quill from "quill";
2
- import emojiMap from "../emoji-map.es.js";
3
- const Embed = Quill.imports["blots/embed"];
4
- class EmojiBlot extends Embed {
5
- static create(value) {
6
- const node = super.create();
7
- if (typeof value === "object") {
8
- EmojiBlot.buildSpan(value, node);
9
- } else if (typeof value === "string") {
10
- const valueObj = emojiMap[value];
11
- if (valueObj) {
12
- EmojiBlot.buildSpan(valueObj, node);
13
- }
14
- }
15
- node.setAttribute("contenteditable", false);
16
- return node;
17
- }
18
- static value(node) {
19
- return node.dataset.name;
20
- }
21
- static buildSpan(value, node) {
22
- node.setAttribute("data-name", value.name);
23
- const emojiSpan = document.createElement("span");
24
- emojiSpan.classList.add(this.emojiClass);
25
- emojiSpan.classList.add(this.emojiPrefix + value.name);
26
- emojiSpan.textContent = String.fromCodePoint(...EmojiBlot.parseUnicode(value.unicode));
27
- node.appendChild(emojiSpan);
28
- }
29
- static parseUnicode(string) {
30
- return string.split("-").map((str) => Number.parseInt(str, 16));
31
- }
32
- }
33
- EmojiBlot.blotName = "emoji";
34
- EmojiBlot.className = "ql-emojiblot";
35
- EmojiBlot.tagName = "span";
36
- EmojiBlot.emojiClass = "ap";
37
- EmojiBlot.emojiPrefix = "ap-";
38
- export {
39
- EmojiBlot as default
40
- };
41
- //# sourceMappingURL=emoji-blot.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emoji-blot.es.js","sources":["../../../../../src/modules/emoji/formats/emoji-blot.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport emojiMap from '../emoji-map'\r\n\r\nconst Embed = Quill.imports['blots/embed']\r\n\r\n// @dynamic\r\nclass EmojiBlot extends Embed {\r\n static emojiClass: string\r\n static emojiPrefix: any\r\n static tagName: string\r\n static blotName: string\r\n static className: string\r\n static create(value) {\r\n const node = super.create()\r\n if (typeof value === 'object') {\r\n EmojiBlot.buildSpan(value, node)\r\n }\r\n else if (typeof value === 'string') {\r\n const valueObj = emojiMap[value]\r\n if (valueObj) {\r\n EmojiBlot.buildSpan(valueObj, node)\r\n }\r\n }\r\n // 修复在emoji后输入中文插入其中导致quill不能识别\r\n node.setAttribute('contenteditable', false)\r\n return node\r\n }\r\n\r\n static value(node) {\r\n return node.dataset.name\r\n }\r\n\r\n static buildSpan(value, node) {\r\n node.setAttribute('data-name', value.name)\r\n const emojiSpan = document.createElement('span')\r\n emojiSpan.classList.add(this.emojiClass)\r\n emojiSpan.classList.add(this.emojiPrefix + value.name)\r\n // unicode can be '1f1f5-1f1ea',see emoji-list.js.\r\n emojiSpan.textContent = String.fromCodePoint(...EmojiBlot.parseUnicode(value.unicode))\r\n node.appendChild(emojiSpan)\r\n }\r\n\r\n static parseUnicode(string) {\r\n return string.split('-').map(str => Number.parseInt(str, 16))\r\n }\r\n}\r\n\r\nEmojiBlot.blotName = 'emoji'\r\nEmojiBlot.className = 'ql-emojiblot'\r\nEmojiBlot.tagName = 'span'\r\nEmojiBlot.emojiClass = 'ap'\r\nEmojiBlot.emojiPrefix = 'ap-'\r\n\r\nexport default EmojiBlot\r\n"],"names":[],"mappings":";;AAGA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AAGzC,MAAM,kBAAkB,MAAM;AAAA,EAM5B,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM,OAAO;AACtB,QAAA,OAAO,UAAU,UAAU;AACnB,gBAAA,UAAU,OAAO,IAAI;AAAA,IAAA,WAExB,OAAO,UAAU,UAAU;AAC5B,YAAA,WAAW,SAAS,KAAK;AAC/B,UAAI,UAAU;AACF,kBAAA,UAAU,UAAU,IAAI;AAAA,MAAA;AAAA,IACpC;AAGG,SAAA,aAAa,mBAAmB,KAAK;AACnC,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,MAAM;AACjB,WAAO,KAAK,QAAQ;AAAA,EAAA;AAAA,EAGtB,OAAO,UAAU,OAAO,MAAM;AACvB,SAAA,aAAa,aAAa,MAAM,IAAI;AACnC,UAAA,YAAY,SAAS,cAAc,MAAM;AACrC,cAAA,UAAU,IAAI,KAAK,UAAU;AACvC,cAAU,UAAU,IAAI,KAAK,cAAc,MAAM,IAAI;AAE3C,cAAA,cAAc,OAAO,cAAc,GAAG,UAAU,aAAa,MAAM,OAAO,CAAC;AACrF,SAAK,YAAY,SAAS;AAAA,EAAA;AAAA,EAG5B,OAAO,aAAa,QAAQ;AACnB,WAAA,OAAO,MAAM,GAAG,EAAE,IAAI,SAAO,OAAO,SAAS,KAAK,EAAE,CAAC;AAAA,EAAA;AAEhE;AAEA,UAAU,WAAW;AACrB,UAAU,YAAY;AACtB,UAAU,UAAU;AACpB,UAAU,aAAa;AACvB,UAAU,cAAc;"}
@@ -1,8 +0,0 @@
1
- import EmojiBlot from "./formats/emoji-blot.es.js";
2
- import ShortNameEmoji from "./modules/emoji.es.js";
3
- import ToolbarEmoji from "./modules/toolbar-emoji.es.js";
4
- const Emoji = { EmojiBlot, ShortNameEmoji, ToolbarEmoji };
5
- export {
6
- Emoji as default
7
- };
8
- //# sourceMappingURL=index.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es.js","sources":["../../../../src/modules/emoji/index.ts"],"sourcesContent":["import EmojiBlot from './formats/emoji-blot'\r\nimport ShortNameEmoji from './modules/emoji'\r\nimport ToolbarEmoji from './modules/toolbar-emoji'\r\n\r\nexport default { EmojiBlot, ShortNameEmoji, ToolbarEmoji }\r\n"],"names":[],"mappings":";;;AAIA,MAAA,QAAe,EAAE,WAAW,gBAAgB,aAAa;"}
@@ -1,248 +0,0 @@
1
- import Quill from "quill";
2
- import emojiList from "../emoji-list.es.js";
3
- const Module = Quill.imports["core/module"];
4
- class ShortNameEmoji extends Module {
5
- constructor(quill, options) {
6
- super(quill, options);
7
- this.emojiList = options.emojiList;
8
- this.quill = quill;
9
- this.onClose = options.onClose;
10
- this.onOpen = options.onOpen;
11
- this.container = document.createElement("ul");
12
- this.container.classList.add("emoji_completions");
13
- this.quill.container.appendChild(this.container);
14
- this.container.style.position = "absolute";
15
- this.container.style.display = "none";
16
- this.onSelectionChange = this.maybeUnfocus.bind(this);
17
- this.onTextChange = this.update.bind(this);
18
- this.open = false;
19
- this.atIndex = null;
20
- this.focusedButton = null;
21
- this.isWhiteSpace = function(ch) {
22
- let whiteSpace = false;
23
- if (/\s/.test(ch)) {
24
- whiteSpace = true;
25
- }
26
- return whiteSpace;
27
- };
28
- quill.keyboard.addBinding({
29
- // TODO: Once Quill supports using event.key change this to ":"
30
- key: 186,
31
- // ":" instead of 190 in Safari. Since it's the same key it doesn't matter if we register both.
32
- shiftKey: true
33
- }, this.triggerPicker.bind(this));
34
- quill.keyboard.addBinding({
35
- // gecko based browsers (firefox) use 59 as the keycode for semicolon,
36
- // which makes a colon character when combined with shift
37
- key: 59,
38
- shiftKey: true
39
- }, this.triggerPicker.bind(this));
40
- quill.keyboard.addBinding({
41
- key: 39,
42
- // ArrowRight
43
- collapsed: true
44
- }, this.handleArrow.bind(this));
45
- quill.keyboard.addBinding({
46
- key: 40,
47
- // ArrowRight
48
- collapsed: true
49
- }, this.handleArrow.bind(this));
50
- }
51
- triggerPicker(range, _context) {
52
- if (this.open) return true;
53
- if (range.length > 0) {
54
- this.quill.deleteText(range.index, range.length, Quill.sources.USER);
55
- }
56
- this.quill.insertText(range.index, ":", "emoji-shortname", Quill.sources.USER);
57
- const atSignBounds = this.quill.getBounds(range.index);
58
- this.quill.setSelection(range.index + 1, Quill.sources.SILENT);
59
- this.atIndex = range.index;
60
- const paletteMaxPos = atSignBounds.left + 250;
61
- if (paletteMaxPos > this.quill.container.offsetWidth) {
62
- this.container.style.left = `${atSignBounds.left - 250}px`;
63
- } else {
64
- this.container.style.left = `${atSignBounds.left}px`;
65
- }
66
- this.container.style.top = `${atSignBounds.top + atSignBounds.height}px`;
67
- this.open = true;
68
- this.quill.on("text-change", this.onTextChange);
69
- this.quill.once("selection-change", this.onSelectionChange);
70
- if (this.onOpen) {
71
- this.onOpen();
72
- }
73
- }
74
- handleArrow() {
75
- if (!this.open) return true;
76
- this.buttons[0].classList.remove("emoji-active");
77
- this.buttons[0].focus();
78
- if (this.buttons.length > 1) {
79
- this.buttons[1].focus();
80
- }
81
- }
82
- update(event) {
83
- const sel = this.quill.getSelection().index;
84
- if (this.atIndex >= sel) {
85
- return this.close(null);
86
- }
87
- this.query = this.quill.getText(this.atIndex + 1, sel - this.atIndex - 1);
88
- try {
89
- if (this.isWhiteSpace(this.query)) {
90
- this.close(null);
91
- return;
92
- }
93
- } catch (_e) {
94
- throw new Error("Close failed");
95
- }
96
- this.query = this.query.trim();
97
- let emojis = this.emojiList;
98
- emojis.sort((a, b) => {
99
- return a.emoji_order - b.emoji_order;
100
- });
101
- if (this.query.length < this.options.fuse.minMatchCharLength || emojis.length === 0) {
102
- this.container.style.display = "none";
103
- return;
104
- }
105
- if (emojis.length > 15) {
106
- emojis = emojis.slice(0, 15);
107
- }
108
- this.renderCompletions(emojis, event);
109
- }
110
- maybeUnfocus() {
111
- if (this.container.querySelector("*:focus")) return;
112
- this.close(null);
113
- }
114
- renderCompletions(emojis, evt) {
115
- try {
116
- if (evt) {
117
- if (evt.key === "Enter" || evt.keyCode === 13) {
118
- this.close(emojis[0], 1);
119
- this.container.style.display = "none";
120
- return;
121
- } else if (evt.key === "Tab" || evt.keyCode === 9) {
122
- this.quill.disable();
123
- this.buttons[0].classList.remove("emoji-active");
124
- this.buttons[1].focus();
125
- return;
126
- }
127
- }
128
- if (evt) return;
129
- } catch (_e) {
130
- throw new Error("Render failed");
131
- }
132
- while (this.container.firstChild) {
133
- this.container.removeChild(this.container.firstChild);
134
- }
135
- const buttons = Array.from({ length: emojis.length });
136
- this.buttons = buttons;
137
- const handler = (i, emoji) => (event) => {
138
- const arrowLeftKey = event.key === "ArrowLeft" || event.keyCode === 37;
139
- const arrowUpKey = event.key === "ArrowUp" || event.keyCode === 38;
140
- const arrowRightKey = event.key === "ArrowRight" || event.keyCode === 39;
141
- const arrowDownKey = event.key === "ArrowDown" || event.keyCode === 40;
142
- if (arrowRightKey || arrowDownKey) {
143
- event.preventDefault();
144
- buttons[Math.min(buttons.length - 1, i + 1)].focus();
145
- } else if (event.key === "Tab" || event.keyCode === 9) {
146
- event.preventDefault();
147
- if (i + 1 === buttons.length) {
148
- buttons[0].focus();
149
- return;
150
- }
151
- buttons[Math.min(buttons.length - 1, i + 1)].focus();
152
- } else if (arrowLeftKey || arrowUpKey) {
153
- event.preventDefault();
154
- buttons[Math.max(0, i - 1)].focus();
155
- } else if (event.key === "Enter" || event.keyCode === 13 || event.key === " " || event.keyCode === 32 || event.key === "Tab" || event.keyCode === 9) {
156
- event.preventDefault();
157
- this.quill.enable();
158
- this.close(emoji);
159
- }
160
- };
161
- emojis.forEach((emoji, i) => {
162
- const li = makeElement(
163
- "li",
164
- {},
165
- makeElement(
166
- "button",
167
- { type: "button" },
168
- makeElement("span", { className: `button-emoji ap ap-${emoji.name}`, innerHTML: emoji.code_decimal }),
169
- makeElement("span", { className: "unmatched" }, emoji.shortname)
170
- )
171
- );
172
- this.container.appendChild(li);
173
- buttons[i] = li.firstChild;
174
- buttons[i].addEventListener("keydown", handler(i, emoji));
175
- buttons[i].addEventListener("mousedown", () => this.close(emoji));
176
- buttons[i].addEventListener("focus", () => {
177
- this.focusedButton = i;
178
- });
179
- buttons[i].addEventListener("unfocus", () => {
180
- this.focusedButton = null;
181
- });
182
- });
183
- this.container.style.display = "block";
184
- if (this.quill.container.classList.contains("top-emoji")) {
185
- const x = this.container.querySelectorAll("li");
186
- let i;
187
- for (i = 0; i < x.length; i++) {
188
- x[i].style.display = "block";
189
- }
190
- const windowHeight = window.innerHeight;
191
- const editorPos = this.quill.container.getBoundingClientRect().top;
192
- if (editorPos > windowHeight / 2 && this.container.offsetHeight > 0) {
193
- this.container.style.top = `-${this.container.offsetHeight}px`;
194
- }
195
- }
196
- buttons[0].classList.add("emoji-active");
197
- }
198
- close(value, trailingDelete = 0) {
199
- this.quill.enable();
200
- this.container.style.display = "none";
201
- while (this.container.firstChild) {
202
- this.container.removeChild(this.container.firstChild);
203
- }
204
- this.quill.off("selection-change", this.onSelectionChange);
205
- this.quill.off("text-change", this.onTextChange);
206
- if (value) {
207
- this.quill.deleteText(this.atIndex, this.query.length + 1 + trailingDelete, Quill.sources.USER);
208
- this.quill.insertEmbed(this.atIndex, "emoji", value, Quill.sources.USER);
209
- setTimeout(() => this.quill.setSelection(this.atIndex + 1), 0);
210
- }
211
- this.quill.focus();
212
- this.open = false;
213
- if (this.onClose) {
214
- this.onClose(value);
215
- }
216
- }
217
- }
218
- ShortNameEmoji.DEFAULTS = {
219
- emojiList,
220
- fuse: {
221
- shouldSort: true,
222
- threshold: 0.1,
223
- location: 0,
224
- distance: 100,
225
- maxPatternLength: 32,
226
- minMatchCharLength: 1,
227
- keys: [
228
- "shortname"
229
- ]
230
- }
231
- };
232
- function makeElement(tag, attrs, ...children) {
233
- const elem = document.createElement(tag);
234
- Object.keys(attrs).forEach((key) => {
235
- elem[key] = attrs[key];
236
- });
237
- children.forEach((child) => {
238
- if (typeof child === "string") {
239
- child = document.createTextNode(child);
240
- }
241
- elem.appendChild(child);
242
- });
243
- return elem;
244
- }
245
- export {
246
- ShortNameEmoji as default
247
- };
248
- //# sourceMappingURL=emoji.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"emoji.es.js","sources":["../../../../../src/modules/emoji/modules/emoji.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport emojiList from '../emoji-list'\r\n\r\nconst Module = Quill.imports['core/module']\r\n\r\n// @dynamic\r\nclass ShortNameEmoji extends Module {\r\n static DEFAULTS: {\r\n emojiList: any[]\r\n fuse: {\r\n shouldSort: boolean\r\n threshold: number\r\n location: number\r\n distance: number\r\n maxPatternLength: number\r\n minMatchCharLength: number\r\n keys: string[]\r\n }\r\n }\r\n\r\n emojiList: any\r\n quill: any\r\n fuse: any\r\n onOpen: any\r\n onClose: any\r\n container: HTMLUListElement\r\n onSelectionChange: any\r\n onTextChange: any\r\n open: boolean\r\n atIndex: any\r\n focusedButton: any\r\n isWhiteSpace: (ch: any) => boolean\r\n query: any\r\n buttons: any\r\n options: any\r\n constructor(quill, options) {\r\n super(quill, options)\r\n\r\n this.emojiList = options.emojiList\r\n\r\n this.quill = quill\r\n this.onClose = options.onClose\r\n this.onOpen = options.onOpen\r\n this.container = document.createElement('ul')\r\n this.container.classList.add('emoji_completions')\r\n this.quill.container.appendChild(this.container)\r\n this.container.style.position = 'absolute'\r\n this.container.style.display = 'none'\r\n\r\n this.onSelectionChange = this.maybeUnfocus.bind(this)\r\n this.onTextChange = this.update.bind(this)\r\n\r\n this.open = false\r\n this.atIndex = null\r\n this.focusedButton = null\r\n\r\n this.isWhiteSpace = function (ch) {\r\n let whiteSpace = false\r\n if (/\\s/.test(ch)) {\r\n whiteSpace = true\r\n }\r\n return whiteSpace\r\n }\r\n\r\n quill.keyboard.addBinding({\r\n // TODO: Once Quill supports using event.key change this to \":\"\r\n key: 186, // \":\" instead of 190 in Safari. Since it's the same key it doesn't matter if we register both.\r\n shiftKey: true,\r\n }, this.triggerPicker.bind(this))\r\n\r\n quill.keyboard.addBinding({\r\n // gecko based browsers (firefox) use 59 as the keycode for semicolon,\r\n // which makes a colon character when combined with shift\r\n key: 59,\r\n shiftKey: true,\r\n }, this.triggerPicker.bind(this))\r\n\r\n quill.keyboard.addBinding({\r\n key: 39, // ArrowRight\r\n collapsed: true,\r\n }, this.handleArrow.bind(this))\r\n\r\n quill.keyboard.addBinding({\r\n key: 40, // ArrowRight\r\n collapsed: true,\r\n }, this.handleArrow.bind(this))\r\n // TODO: Add keybindings for Enter (13) and Tab (9) directly on the quill editor\r\n }\r\n\r\n triggerPicker(range, _context) {\r\n if (this.open) return true\r\n if (range.length > 0) {\r\n this.quill.deleteText(range.index, range.length, Quill.sources.USER)\r\n }\r\n\r\n this.quill.insertText(range.index, ':', 'emoji-shortname', Quill.sources.USER)\r\n const atSignBounds = this.quill.getBounds(range.index)\r\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT)\r\n\r\n this.atIndex = range.index\r\n\r\n const paletteMaxPos = atSignBounds.left + 250\r\n if (paletteMaxPos > this.quill.container.offsetWidth) {\r\n this.container.style.left = `${atSignBounds.left - 250}px`\r\n }\r\n else {\r\n this.container.style.left = `${atSignBounds.left}px`\r\n }\r\n\r\n this.container.style.top = `${atSignBounds.top + atSignBounds.height}px`\r\n this.open = true\r\n\r\n this.quill.on('text-change', this.onTextChange)\r\n this.quill.once('selection-change', this.onSelectionChange)\r\n if (this.onOpen) {\r\n this.onOpen()\r\n }\r\n }\r\n\r\n handleArrow() {\r\n if (!this.open) return true\r\n this.buttons[0].classList.remove('emoji-active')\r\n this.buttons[0].focus()\r\n if (this.buttons.length > 1) {\r\n this.buttons[1].focus()\r\n }\r\n }\r\n\r\n update(event) {\r\n const sel = this.quill.getSelection().index\r\n if (this.atIndex >= sel) { // Deleted the at character\r\n return this.close(null)\r\n }\r\n this.query = this.quill.getText(this.atIndex + 1, sel - this.atIndex - 1)\r\n\r\n try {\r\n if (this.isWhiteSpace(this.query)) {\r\n this.close(null)\r\n return\r\n }\r\n }\r\n catch (_e) {\r\n throw new Error('Close failed')\r\n }\r\n\r\n this.query = this.query.trim()\r\n\r\n let emojis: any = this.emojiList\r\n emojis.sort((a: any, b: any) => {\r\n return a.emoji_order - b.emoji_order\r\n })\r\n\r\n if (this.query.length < this.options.fuse.minMatchCharLength || emojis.length === 0) {\r\n this.container.style.display = 'none'\r\n return\r\n }\r\n if (emojis.length > 15) { // return only 15\r\n emojis = emojis.slice(0, 15)\r\n }\r\n this.renderCompletions(emojis, event)\r\n }\r\n\r\n maybeUnfocus() {\r\n if (this.container.querySelector('*:focus')) return\r\n this.close(null)\r\n }\r\n\r\n renderCompletions(emojis, evt) {\r\n try {\r\n if (evt) {\r\n if (evt.key === 'Enter' || evt.keyCode === 13) {\r\n this.close(emojis[0], 1)\r\n this.container.style.display = 'none'\r\n return\r\n }\r\n else if (evt.key === 'Tab' || evt.keyCode === 9) {\r\n this.quill.disable()\r\n this.buttons[0].classList.remove('emoji-active')\r\n this.buttons[1].focus()\r\n return\r\n }\r\n }\r\n if (evt) return\r\n }\r\n catch (_e) {\r\n throw new Error('Render failed')\r\n }\r\n\r\n while (this.container.firstChild) {\r\n this.container.removeChild(this.container.firstChild)\r\n }\r\n const buttons = Array.from({ length: emojis.length })\r\n this.buttons = buttons\r\n\r\n const handler = (i, emoji) => (event) => {\r\n const arrowLeftKey = event.key === 'ArrowLeft' || event.keyCode === 37\r\n const arrowUpKey = event.key === 'ArrowUp' || event.keyCode === 38\r\n const arrowRightKey = event.key === 'ArrowRight' || event.keyCode === 39\r\n const arrowDownKey = event.key === 'ArrowDown' || event.keyCode === 40\r\n if (arrowRightKey || arrowDownKey) {\r\n event.preventDefault()\r\n buttons[Math.min(buttons.length - 1, i + 1)].focus()\r\n }\r\n else if (event.key === 'Tab' || event.keyCode === 9) {\r\n event.preventDefault()\r\n if ((i + 1) === buttons.length) {\r\n buttons[0].focus()\r\n return\r\n }\r\n buttons[Math.min(buttons.length - 1, i + 1)].focus()\r\n }\r\n else if (arrowLeftKey || arrowUpKey) {\r\n event.preventDefault()\r\n buttons[Math.max(0, i - 1)].focus()\r\n }\r\n else if (event.key === 'Enter' || event.keyCode === 13\r\n || event.key === ' ' || event.keyCode === 32\r\n || event.key === 'Tab' || event.keyCode === 9) {\r\n event.preventDefault()\r\n this.quill.enable()\r\n this.close(emoji)\r\n }\r\n }\r\n\r\n emojis.forEach((emoji, i) => {\r\n const li = makeElement(\r\n 'li',\r\n {},\r\n makeElement(\r\n 'button',\r\n { type: 'button' },\r\n makeElement('span', { className: `button-emoji ap ap-${emoji.name}`, innerHTML: emoji.code_decimal }),\r\n makeElement('span', { className: 'unmatched' }, emoji.shortname),\r\n ),\r\n )\r\n this.container.appendChild(li)\r\n buttons[i] = li.firstChild\r\n // Events will be GC-ed with button on each re-render:\r\n buttons[i].addEventListener('keydown', handler(i, emoji))\r\n buttons[i].addEventListener('mousedown', () => this.close(emoji))\r\n buttons[i].addEventListener('focus', () => {\r\n this.focusedButton = i\r\n })\r\n buttons[i].addEventListener('unfocus', () => {\r\n this.focusedButton = null\r\n })\r\n })\r\n\r\n this.container.style.display = 'block'\r\n // emoji palette on top\r\n if (this.quill.container.classList.contains('top-emoji')) {\r\n const x = this.container.querySelectorAll('li')\r\n let i\r\n for (i = 0; i < x.length; i++) {\r\n x[i].style.display = 'block'\r\n }\r\n\r\n const windowHeight = window.innerHeight\r\n const editorPos = this.quill.container.getBoundingClientRect().top\r\n if (editorPos > windowHeight / 2 && this.container.offsetHeight > 0) {\r\n this.container.style.top = `-${this.container.offsetHeight}px`\r\n }\r\n }\r\n\r\n buttons[0].classList.add('emoji-active')\r\n }\r\n\r\n close(value, trailingDelete = 0) {\r\n this.quill.enable()\r\n this.container.style.display = 'none'\r\n while (this.container.firstChild) {\r\n this.container.removeChild(this.container.firstChild)\r\n }\r\n this.quill.off('selection-change', this.onSelectionChange)\r\n this.quill.off('text-change', this.onTextChange)\r\n if (value) {\r\n this.quill.deleteText(this.atIndex, this.query.length + 1 + trailingDelete, Quill.sources.USER)\r\n this.quill.insertEmbed(this.atIndex, 'emoji', value, Quill.sources.USER)\r\n setTimeout(() => this.quill.setSelection(this.atIndex + 1), 0)\r\n }\r\n this.quill.focus()\r\n this.open = false\r\n if (this.onClose) {\r\n this.onClose(value)\r\n }\r\n }\r\n}\r\n\r\nShortNameEmoji.DEFAULTS = {\r\n emojiList,\r\n fuse: {\r\n shouldSort: true,\r\n threshold: 0.1,\r\n location: 0,\r\n distance: 100,\r\n maxPatternLength: 32,\r\n minMatchCharLength: 1,\r\n keys: [\r\n 'shortname',\r\n ],\r\n },\r\n}\r\n\r\nfunction makeElement(tag, attrs, ...children) {\r\n const elem = document.createElement(tag)\r\n Object.keys(attrs).forEach((key) => {\r\n elem[key] = attrs[key]\r\n })\r\n children.forEach((child) => {\r\n if (typeof child === 'string') {\r\n child = document.createTextNode(child)\r\n }\r\n elem.appendChild(child)\r\n })\r\n return elem\r\n}\r\n\r\nexport default ShortNameEmoji\r\n"],"names":[],"mappings":"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"}