@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 +0,0 @@
1
- {"version":3,"file":"Mention.cjs.js","sources":["../../../../src/modules/mention/Mention.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { isNullOrUndefined } from '../../config/editor.utils'\r\nimport { DEFAULT_MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'\r\nimport MentionLink from './MentionLink'\r\n\r\nconst Delta = Quill.import('delta')\r\nconst Parchment = Quill.import('parchment')\r\nconst { Scope } = Parchment\r\n\r\ninterface MentionOption {\r\n containerClass?: string\r\n // dataAttributes?: string[]\r\n defaultLink?: string\r\n itemActiveClass?: string\r\n itemKey: string\r\n itemClass?: string\r\n listClass?: string\r\n listHideClass?: string\r\n maxHeight?: number\r\n mentionChar?: string\r\n remove?: (data: any) => void\r\n renderMentionItem?: (data: any) => string | HTMLElement\r\n renderMentionText?: (data: any) => string | HTMLElement\r\n search?: (term: string) => Promise<any[]>\r\n searchKey: string\r\n select?: (data: any) => void\r\n target?: string\r\n}\r\n\r\n// @dynamic\r\nclass Mention {\r\n private readonly options: MentionOption\r\n private readonly mentionListEL: HTMLUListElement\r\n private activeMentionIndex = 0\r\n private latestMentionList: any[]\r\n private latestMentionCharPos: number\r\n private latestCaretPos: number\r\n private searchTerm = ''\r\n private needInsertBr = true\r\n private readonly defaultOptions: MentionOption = {\r\n defaultLink: '#',\r\n target: '_blank',\r\n mentionChar: DEFAULT_MENTION_CHAR,\r\n maxHeight: 200,\r\n renderMentionItem(data: any) {\r\n let mentionItem = data.name || data.id\r\n if (this.itemKey) {\r\n mentionItem = data[this.itemKey]\r\n }\r\n const dom = document.createElement('SPAN')\r\n dom.textContent = mentionItem\r\n return dom\r\n },\r\n renderMentionText(data: any) {\r\n let mentionText = data.name || data.id\r\n if (this.itemKey) {\r\n mentionText = data[this.itemKey]\r\n }\r\n return `${mentionText}`\r\n },\r\n containerClass: 'ql-mention-list-container',\r\n listClass: 'ql-mention-list',\r\n listHideClass: 'ql-mention-list--hide',\r\n itemClass: 'ql-mention-item',\r\n itemActiveClass: 'ql-mention-item--active',\r\n itemKey: 'name',\r\n searchKey: 'name',\r\n // dataAttributes: ['id'],\r\n select(_data: any) {},\r\n remove(_data: any) {},\r\n }\r\n\r\n static register() {\r\n Quill.register(MentionLink)\r\n }\r\n\r\n // @ts-ignore\r\n constructor(private quill: Quill, options: MentionOption) {\r\n if (!options.search) {\r\n console.warn('please provide a search function!')\r\n return\r\n }\r\n\r\n this.options = Object.assign(this.defaultOptions, options)\r\n const container = document.createElement('div')\r\n container.classList.add('ql-mention-list-container')\r\n if (this.options.containerClass !== 'ql-mention-list-container') {\r\n container.classList.add(this.options.containerClass)\r\n }\r\n this.mentionListEL = document.createElement('ul')\r\n this.mentionListEL.classList.add(this.options.listClass, this.options.listHideClass)\r\n this.mentionListEL.style.cssText += `\r\n max-height: ${this.options.maxHeight}px;\r\n `\r\n\r\n quill.on(Quill.events.TEXT_CHANGE, this.handleTextChange)\r\n quill.keyboard.addBinding({ key: 'ArrowUp' }, this.handleArrowUpKey)\r\n quill.keyboard.addBinding({ key: 'ArrowDown' }, this.handleArrowDownKey)\r\n quill.keyboard.addBinding({ key: 'Enter' }, this.handleEnterKey)\r\n quill.keyboard.addBinding({ key: 'Tab' }, this.handleEnterKey)\r\n quill.keyboard.addBinding({ key: 'Escape' }, this.handleEscapeKey)\r\n quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop())\r\n quill.keyboard.bindings.Tab.unshift(quill.keyboard.bindings.Tab.pop())\r\n quill.keyboard.bindings.Escape.unshift(quill.keyboard.bindings.Escape.pop())\r\n\r\n const customKeyboardEnter = {\r\n key: 'Enter',\r\n shiftKey: null,\r\n handler: (range, context) => {\r\n const lineFormats = Object.keys(context.format).reduce(\r\n (formats, format) => {\r\n if (\r\n this.quill.scroll.query(format, Scope.BLOCK)\r\n && !Array.isArray(context.format[format])\r\n ) {\r\n formats[format] = context.format[format]\r\n }\r\n return formats\r\n },\r\n {},\r\n )\r\n\r\n // fix: 解决@提醒之后插入多余空行和光标位置不对的问题\r\n let selectionIndex = range.index - this.searchTerm.length\r\n let delta = new Delta()\r\n .retain(range.index)\r\n .delete(range.length)\r\n if (this.needInsertBr) {\r\n delta = delta.insert('\\n', lineFormats)\r\n selectionIndex = range.index + 1\r\n }\r\n\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(selectionIndex, Quill.sources.SILENT)\r\n this.quill.focus()\r\n\r\n Object.keys(context.format).forEach((name) => {\r\n if (!isNullOrUndefined(lineFormats[name])) return\r\n if (Array.isArray(context.format[name])) return\r\n if (name === 'code' || name === 'link') return\r\n this.quill.format(name, context.format[name], Quill.sources.USER)\r\n })\r\n\r\n this.needInsertBr = true // 标记是否是输入@提醒的Enter\r\n },\r\n }\r\n\r\n // 用自定义的Enter替换内置的Enter\r\n quill.keyboard.bindings.Enter = quill.keyboard.bindings.Enter.map((item) => {\r\n const buildinKeyboardEnter = item.format === undefined && item.shiftKey === null\r\n if (buildinKeyboardEnter) {\r\n return customKeyboardEnter\r\n }\r\n else {\r\n return item\r\n }\r\n })\r\n\r\n this.on('click', this.handleMouseClick)\r\n this.on('mouseover', this.handleMouseEnter)\r\n quill.emitter.on(ON_MENTION_LINK_REMOVE, async ({ mention, name }) => {\r\n const [result] = (mention && [mention]) || (await this.options.search(name))\r\n this.options.remove(result)\r\n })\r\n container.appendChild(this.mentionListEL)\r\n quill.container.parentElement.insertBefore(container, quill.container)\r\n }\r\n\r\n on(eventName, callback) {\r\n this.mentionListEL.addEventListener(eventName, (evt) => {\r\n let\r\n target = evt.target\r\n let targetItemEL\r\n\r\n while (this.mentionListEL.contains(target) && target !== this.mentionListEL) {\r\n if (target.classList.contains(this.options.itemClass)) {\r\n targetItemEL = target\r\n }\r\n target = target.parentElement\r\n }\r\n\r\n if (targetItemEL) {\r\n callback.call(this, targetItemEL, this.getMentionItemIndex(targetItemEL))\r\n }\r\n })\r\n }\r\n\r\n getMentionItemIndex(itemEl: Element) {\r\n return [].reduce.call(this.mentionListEL.children, (index, item, idx) => item === itemEl ? idx : index, -1)\r\n }\r\n\r\n handleTextChange = (_delta, _oldDelta, source) => {\r\n // defer handler to make sure that we can get correct quill selection range.\r\n setTimeout(() => {\r\n if (Quill.sources.USER === source) {\r\n const range = this.quill.getSelection()\r\n if (!range) {\r\n return\r\n }\r\n\r\n const caretPos = this.latestCaretPos = range.index\r\n // beforeCaretText的计算有问题,没有把图片内容和@提醒内容的非字符内容算进去\r\n const content = this.quill.getContents()\r\n const beforeCaretText = content.reduce((newText, op) => {\r\n if (typeof op.insert === 'string') {\r\n return (newText += op.insert)\r\n }\r\n else {\r\n return (newText += ' ') // 将图片内容和@提醒内容的非字符内容置为' ',算一个位置\r\n }\r\n }, '')\r\n const mentionCharPos = beforeCaretText.lastIndexOf(this.options.mentionChar)\r\n\r\n if (mentionCharPos > -1) {\r\n const searchTerm = beforeCaretText.substring(mentionCharPos + this.options.mentionChar.length, caretPos)\r\n this.searchTerm = searchTerm\r\n if (!''.startsWith.call(searchTerm, ' ')) {\r\n this.latestMentionCharPos = mentionCharPos\r\n this.searchMentionListByTerm(searchTerm)\r\n }\r\n else {\r\n this.hideMentionList()\r\n }\r\n }\r\n else {\r\n this.hideMentionList()\r\n }\r\n }\r\n })\r\n }\r\n\r\n handleMouseClick(_itemEl: HTMLLIElement, index: number) {\r\n this.selectMentionItem(index, true)\r\n this.quill.focus()\r\n }\r\n\r\n handleMouseEnter(_itemEl: HTMLLIElement, index: number) {\r\n this.activeMentionIndex = index\r\n this.highlightMentionItem(index)\r\n }\r\n\r\n handleArrowUpKey = () => {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex\r\n = (this.activeMentionIndex + this.latestMentionList.length - 1) % this.latestMentionList.length\r\n this.highlightMentionItem(this.activeMentionIndex)\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleArrowDownKey = () => {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex = (this.activeMentionIndex + 1) % this.latestMentionList.length\r\n this.highlightMentionItem(this.activeMentionIndex)\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleEnterKey = () => {\r\n if (this.isOpen()) {\r\n this.selectMentionItem()\r\n this.needInsertBr = false\r\n }\r\n return true\r\n }\r\n\r\n handleEscapeKey = () => {\r\n if (this.isOpen()) {\r\n this.hideMentionList()\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n getActiveMentionItem() {\r\n return this.mentionListEL.querySelector(`.${this.options.itemActiveClass}`)\r\n }\r\n\r\n isOpen() {\r\n return !this.mentionListEL.classList.contains(this.options.listHideClass)\r\n }\r\n\r\n async searchMentionListByTerm(term: string) {\r\n const mentionList = await this.options.search(term)\r\n this.latestMentionList = mentionList\r\n if (!mentionList || mentionList.length === 0) {\r\n return this.hideMentionList()\r\n }\r\n\r\n this.showMentionList(mentionList)\r\n }\r\n\r\n showMentionList(mentionList: any[]) {\r\n if (!this.isOpen()) {\r\n this.mentionListEL.classList.remove(this.options.listHideClass)\r\n }\r\n this.activeMentionIndex = 0\r\n this.setMentionListPos()\r\n this.render(mentionList)\r\n }\r\n\r\n hideMentionList() {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex = 0\r\n this.mentionListEL.classList.add(this.options.listHideClass)\r\n }\r\n }\r\n\r\n setMentionListPos() {\r\n const cursorIndex = this.quill.selection.savedRange.index\r\n const cursorBounds = this.quill.getBounds(cursorIndex)\r\n const { left, top } = cursorBounds\r\n const container = this.quill.container\r\n const hostElement = container.parentNode as HTMLDivElement\r\n const { left: editorLeft, top: editorTop } = container.getBoundingClientRect()\r\n const { left: hostElementLeft, top: hostElementTop } = hostElement.getBoundingClientRect()\r\n const relativeLeft = editorLeft - hostElementLeft\r\n const relativeTop = editorTop - hostElementTop\r\n const menuLeft = left + relativeLeft - 5\r\n const menuTop = top + relativeTop + 20\r\n this.mentionListEL.style.cssText += `\r\n left: ${menuLeft}px;\r\n top: ${menuTop}px;\r\n `\r\n }\r\n\r\n render(mentionList: any[]) {\r\n const wrapEl = document.createElement('div');\r\n\r\n [].forEach.call(mentionList, (mentionItem, index) => {\r\n const mentionItemEl = document.createElement('li')\r\n mentionItemEl.classList.add(this.options.itemClass)\r\n if (index === this.activeMentionIndex) {\r\n mentionItemEl.classList.add(this.options.itemActiveClass)\r\n }\r\n const renderResult = this.options.renderMentionItem(mentionItem)\r\n if (typeof renderResult === 'string') {\r\n mentionItemEl.insertAdjacentHTML('afterbegin', renderResult)\r\n }\r\n else {\r\n mentionItemEl.insertAdjacentElement('afterbegin', renderResult)\r\n }\r\n wrapEl.appendChild(mentionItemEl)\r\n })\r\n\r\n this.mentionListEL.innerHTML = wrapEl.innerHTML\r\n }\r\n\r\n highlightMentionItem(index: number) {\r\n const oldActiveItem = this.getActiveMentionItem()\r\n if (oldActiveItem) {\r\n oldActiveItem.classList.remove(this.options.itemActiveClass)\r\n }\r\n\r\n const newActiveItem = this.mentionListEL.querySelector(`.${this.options.itemClass}:nth-of-type(${index + 1})`)\r\n if (newActiveItem) {\r\n newActiveItem.classList.add(this.options.itemActiveClass)\r\n this.scrollIntoView(newActiveItem)\r\n }\r\n }\r\n\r\n scrollIntoView(node: Element): void {\r\n const nodeAsAny: any = node\r\n if (nodeAsAny.scrollIntoViewIfNeeded) {\r\n nodeAsAny.scrollIntoViewIfNeeded(false)\r\n return\r\n }\r\n if (node.scrollIntoView) {\r\n node.scrollIntoView(false)\r\n }\r\n }\r\n\r\n selectMentionItem(index = this.activeMentionIndex, isClick?: boolean) {\r\n const activeMentionItem = this.latestMentionList[index]\r\n this.insertMentionBlot(activeMentionItem, isClick)\r\n this.options.select(activeMentionItem)\r\n this.hideMentionList()\r\n }\r\n\r\n insertMentionBlot(activeMentionItem: any, isClick?: boolean) {\r\n const mention = this.options.renderMentionText(activeMentionItem)\r\n const delta = new Delta()\r\n .retain(this.latestMentionCharPos)\r\n .delete(this.latestCaretPos - this.latestMentionCharPos)\r\n .insert({\r\n [MentionLink.blotName]: {\r\n char: this.options.mentionChar,\r\n text: mention,\r\n mention: activeMentionItem,\r\n link: activeMentionItem.link || this.options.defaultLink,\r\n target: activeMentionItem.target || this.options.target,\r\n searchKey: this.options.searchKey,\r\n },\r\n })\r\n if (isClick) {\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n }\r\n else {\r\n this.quill.updateContents(delta, Quill.sources.API)\r\n }\r\n this.quill.setSelection(this.latestMentionCharPos + 1, Quill.sources.API)\r\n }\r\n}\r\n\r\nexport { Mention as default }\r\n"],"names":["DEFAULT_MENTION_CHAR","isNullOrUndefined","ON_MENTION_LINK_REMOVE","MentionLink"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MentionLink.cjs.js","sources":["../../../../src/modules/mention/MentionLink.ts"],"sourcesContent":["import type TypeEmbed from 'quill/blots/embed'\r\nimport Quill from 'quill'\r\nimport { DEFAULT_MENTION_CHAR, MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'\r\n\r\nconst Embed = Quill.import('blots/embed') as typeof TypeEmbed\r\n\r\n// @dynamic\r\nclass MentionLink extends Embed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n scroll: any\r\n mentionData: any\r\n\r\n static create(data) {\r\n let node: HTMLElement\r\n if (data.link) {\r\n node = document.createElement('a')\r\n node.setAttribute('href', data.link)\r\n node.setAttribute('target', data.target)\r\n }\r\n else {\r\n node = document.createElement(this.tagName)\r\n }\r\n node.classList.add(this.className)\r\n node.dataset.mentionId = data.name || (data.mention && data.mention[data.searchKey || 'name']) || ''\r\n node.setAttribute('title', data.text)\r\n node.setAttribute(MENTION_CHAR, data.char)\r\n node.textContent = data.char + data.text\r\n return node\r\n }\r\n\r\n static value(domNode: HTMLElement) {\r\n const value: Record<string, any> = {\r\n char: domNode.getAttribute(MENTION_CHAR) || DEFAULT_MENTION_CHAR,\r\n text: domNode.getAttribute('title'),\r\n name: domNode.dataset.mentionId,\r\n }\r\n if (domNode.tagName.toLowerCase() === 'a' && domNode.hasAttribute('href')) {\r\n value.link = domNode.getAttribute('href')\r\n value.target = domNode.getAttribute('target')\r\n }\r\n return value\r\n }\r\n\r\n constructor(scroll, domNode, data) {\r\n super(scroll, domNode)\r\n this.mentionData = data\r\n }\r\n\r\n value() {\r\n // fix: 将@提醒内容加入到 Delta 里,以解决输入空格,@提醒内容被删除的问题\r\n // return ' ';\r\n return super.value()\r\n }\r\n\r\n remove() {\r\n this.scroll.emitter.emit(ON_MENTION_LINK_REMOVE, this.mentionData)\r\n return super.remove()\r\n }\r\n}\r\n\r\nMentionLink.blotName = 'mention'\r\nMentionLink.tagName = 'span'\r\nMentionLink.className = 'ql-mention-link'\r\nexport { MentionLink as default }\r\n"],"names":["MENTION_CHAR","DEFAULT_MENTION_CHAR","ON_MENTION_LINK_REMOVE"],"mappings":";;;;AAIA,MAAM,QAAQ,MAAM,OAAO,aAAa;AAGxC,MAAM,oBAAoB,MAAM;AAAA,EAO9B,OAAO,OAAO,MAAM;AACd,QAAA;AACJ,QAAI,KAAK,MAAM;AACN,aAAA,SAAS,cAAc,GAAG;AAC5B,WAAA,aAAa,QAAQ,KAAK,IAAI;AAC9B,WAAA,aAAa,UAAU,KAAK,MAAM;AAAA,IAAA,OAEpC;AACI,aAAA,SAAS,cAAc,KAAK,OAAO;AAAA,IAAA;AAEvC,SAAA,UAAU,IAAI,KAAK,SAAS;AAC5B,SAAA,QAAQ,YAAY,KAAK,QAAS,KAAK,WAAW,KAAK,QAAQ,KAAK,aAAa,MAAM,KAAM;AAC7F,SAAA,aAAa,SAAS,KAAK,IAAI;AAC/B,SAAA,aAAaA,wBAAc,KAAK,IAAI;AACpC,SAAA,cAAc,KAAK,OAAO,KAAK;AAC7B,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAsB;AACjC,UAAM,QAA6B;AAAA,MACjC,MAAM,QAAQ,aAAaA,UAAAA,YAAY,KAAKC,UAAA;AAAA,MAC5C,MAAM,QAAQ,aAAa,OAAO;AAAA,MAClC,MAAM,QAAQ,QAAQ;AAAA,IACxB;AACI,QAAA,QAAQ,QAAQ,YAAY,MAAM,OAAO,QAAQ,aAAa,MAAM,GAAG;AACnE,YAAA,OAAO,QAAQ,aAAa,MAAM;AAClC,YAAA,SAAS,QAAQ,aAAa,QAAQ;AAAA,IAAA;AAEvC,WAAA;AAAA,EAAA;AAAA,EAGT,YAAY,QAAQ,SAAS,MAAM;AACjC,UAAM,QAAQ,OAAO;AACrB,SAAK,cAAc;AAAA,EAAA;AAAA,EAGrB,QAAQ;AAGN,WAAO,MAAM,MAAM;AAAA,EAAA;AAAA,EAGrB,SAAS;AACP,SAAK,OAAO,QAAQ,KAAKC,UAAA,wBAAwB,KAAK,WAAW;AACjE,WAAO,MAAM,OAAO;AAAA,EAAA;AAExB;AAEA,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,YAAY;;"}
@@ -1,8 +0,0 @@
1
- import { AnyFunction } from './type';
2
-
3
- export interface IAdditionalToolItemData {
4
- name: string;
5
- content: string;
6
- icon: string;
7
- handler: AnyFunction;
8
- }
@@ -1,13 +0,0 @@
1
- export interface IContentChange {
2
- content: any;
3
- delta: any;
4
- editor: any;
5
- html: string | null;
6
- oldDelta: any;
7
- source: string;
8
- text: string;
9
- textCount: number;
10
- wordCount: number;
11
- htmlCount: number;
12
- isChanged?: boolean;
13
- }
@@ -1,6 +0,0 @@
1
- export interface IContentSave {
2
- editor: any;
3
- content: any;
4
- html: string | null;
5
- text: string;
6
- }
@@ -1,9 +0,0 @@
1
- import { AnyFunction } from './type';
2
-
3
- export interface ICounterOption {
4
- format?: 'text' | 'html';
5
- unit?: 'word' | 'char';
6
- count?: number;
7
- template?: string | AnyFunction;
8
- errorTemplate?: string | AnyFunction;
9
- }
@@ -1,6 +0,0 @@
1
- import { default as Toolbar } from 'quill/modules/toolbar';
2
- import { default as FluentEditor } from '../../fluent-editor';
3
-
4
- export interface FluentEditorToolbar extends Toolbar {
5
- quill: FluentEditor;
6
- }
@@ -1,12 +0,0 @@
1
- import { AnyFunction } from './type';
2
-
3
- export interface FileOperation {
4
- operation: string;
5
- hasRejectedFile?: boolean;
6
- data: {
7
- fileId?: string;
8
- file?: File;
9
- files?: Array<File>;
10
- };
11
- callback?: AnyFunction;
12
- }
@@ -1,4 +0,0 @@
1
- export interface IFocusChange {
2
- editor: any;
3
- source: string;
4
- }
@@ -1,4 +0,0 @@
1
- export interface IFullscreenModule {
2
- mode?: 'normal' | 'immersive';
3
- zIndex: number;
4
- }
@@ -1,5 +0,0 @@
1
- export interface IHelpPanelItem {
2
- icon: string;
3
- text: string;
4
- hotkey: string[];
5
- }
@@ -1,7 +0,0 @@
1
- import { IHelpPanelItem } from './help-panel-item.interface';
2
-
3
- export interface IHelpPanelOption {
4
- id: string;
5
- title: string;
6
- content: IHelpPanelItem[];
7
- }
@@ -1,3 +0,0 @@
1
- export interface ImageModule {
2
- zIndex: number;
3
- }
@@ -1,7 +0,0 @@
1
- import { AnyFunction } from './type';
2
-
3
- export interface ImageUpload {
4
- file: File;
5
- hasRejectedImage?: boolean;
6
- callback: AnyFunction;
7
- }
@@ -1,5 +0,0 @@
1
- export interface ILoadOnDemandModule {
2
- mode?: 'line' | 'text';
3
- limit?: number;
4
- lazy?: boolean;
5
- }
@@ -1,8 +0,0 @@
1
- export interface IMentionModule {
2
- data: object[];
3
- itemKey: string;
4
- searchKey: string;
5
- mentionSearchFn?: (term: string) => Promise<any[]>;
6
- mentionSelect?: any;
7
- mentionRemove?: any;
8
- }
@@ -1,6 +0,0 @@
1
- import { AnyFunction } from './type';
2
-
3
- export interface IPasteChange {
4
- files: File[];
5
- callback: AnyFunction;
6
- }
@@ -1,3 +0,0 @@
1
- export interface IQuickMenuModule {
2
- zIndex: number;
3
- }
@@ -1,4 +0,0 @@
1
- export interface IRange {
2
- index: number;
3
- length: number;
4
- }
@@ -1,5 +0,0 @@
1
- export interface IRegistryOption {
2
- importUrl?: string;
3
- params?: any;
4
- register?: any;
5
- }
@@ -1,8 +0,0 @@
1
- import { IRange } from './range.interface';
2
-
3
- export interface ISelectionChange {
4
- editor: any;
5
- oldRange: IRange | null;
6
- range: IRange | null;
7
- source: string;
8
- }
@@ -1,13 +0,0 @@
1
- export interface IToolbarItem {
2
- 'indent'?: string;
3
- 'list'?: string;
4
- 'direction'?: string;
5
- 'header'?: number | (boolean | number)[];
6
- 'color'?: string[];
7
- 'background'?: string[];
8
- 'align'?: string[];
9
- 'script'?: string;
10
- 'font'?: string[];
11
- 'size'?: boolean[] | string[];
12
- 'line-height'?: number[];
13
- }
@@ -1,13 +0,0 @@
1
- export interface IValidateError {
2
- minLengthError?: {
3
- given: number;
4
- minLength: number;
5
- };
6
- maxLengthError?: {
7
- given: number;
8
- maxLength: number;
9
- };
10
- requiredError?: {
11
- empty: boolean;
12
- };
13
- }
@@ -1,29 +0,0 @@
1
- import { default as Action } from './actions/Action';
2
- import { Options } from './Options';
3
- import { default as BlotSpec } from './specs/BlotSpec';
4
- import { default as ImageBar } from './image-bar';
5
-
6
- export default class BlotFormatter {
7
- quill: any;
8
- options: Options;
9
- currentSpec: BlotSpec;
10
- specs: BlotSpec[];
11
- overlay: HTMLElement;
12
- actions: Action[];
13
- observer: any;
14
- imageBar: ImageBar;
15
- private debounceTimer;
16
- static register(): void;
17
- constructor(quill: any, options?: any);
18
- show(spec: BlotSpec): void;
19
- hide(): void;
20
- update(): void;
21
- createActions(spec: BlotSpec): void;
22
- destroyActions(): void;
23
- repositionOverlay(): void;
24
- setUserSelect(value: string): void;
25
- onClick: () => void;
26
- onMouseOver: (event: any) => void;
27
- hideImageBar: () => void;
28
- hideImageOverlay: (event: any) => void;
29
- }
@@ -1,36 +0,0 @@
1
- export interface OverlayOptions {
2
- className: string;
3
- style: Record<string, string>;
4
- }
5
- export interface ResizeOptions {
6
- handleClassName: string;
7
- handleStyle: Record<string, string>;
8
- }
9
- export interface AlignOptions {
10
- attribute: string;
11
- aligner: {
12
- applyStyle: boolean;
13
- };
14
- icons: {
15
- left: string;
16
- center: string;
17
- right: string;
18
- };
19
- toolbar: {
20
- allowDeselect: boolean;
21
- mainClassName: string;
22
- mainStyle: any;
23
- buttonClassName: string;
24
- addButtonSelectStyle: boolean;
25
- buttonStyle: any;
26
- svgStyle: any;
27
- };
28
- }
29
- export interface Options {
30
- specs: any;
31
- overlay: OverlayOptions;
32
- align: AlignOptions;
33
- resize: ResizeOptions;
34
- }
35
- declare const DefaultOptions: Options;
36
- export default DefaultOptions;
@@ -1,7 +0,0 @@
1
- export default class Action {
2
- formatter: any;
3
- constructor(formatter: any);
4
- onCreate(): void;
5
- onDestroy(): void;
6
- onUpdate(): void;
7
- }
@@ -1,7 +0,0 @@
1
- import { default as Action } from './Action';
2
-
3
- export default class DeleteAction extends Action {
4
- onCreate(): void;
5
- onDestroy(): void;
6
- onKeyUp: (event: any) => void;
7
- }
@@ -1,15 +0,0 @@
1
- import { default as Quill } from 'quill';
2
-
3
- export default class ImageBar {
4
- quill: Quill;
5
- image: HTMLImageElement;
6
- domNode: HTMLElement;
7
- imageRange: any;
8
- template: string;
9
- constructor(quill: any, target: any);
10
- createImageBar(): void;
11
- destroy(): void;
12
- operateImage(event: any, operate: any): Promise<void>;
13
- setPosition(): void;
14
- css(domNode: any, rules: any): void;
15
- }
@@ -1,13 +0,0 @@
1
- import { default as ResizeAction } from '../actions/CustomResizeAction';
2
- import { default as DeleteAction } from '../actions/DeleteAction';
3
-
4
- export default class BlotSpec {
5
- formatter: any;
6
- constructor(formatter: any);
7
- init(): void;
8
- getActions(): (typeof ResizeAction | typeof DeleteAction)[];
9
- getTargetElement(): any;
10
- getOverlayElement(): any;
11
- setSelection(): void;
12
- onHide(): void;
13
- }
@@ -1,10 +0,0 @@
1
- import { default as BlotSpec } from './BlotSpec';
2
-
3
- export default class ImageSpec extends BlotSpec {
4
- img: any;
5
- constructor(formatter: any);
6
- init(): void;
7
- getTargetElement(): any;
8
- onHide(): void;
9
- onClick: (event: MouseEvent) => void;
10
- }
@@ -1 +0,0 @@
1
- export { peopleEmoji } from './people';
@@ -1 +0,0 @@
1
- export declare const peopleEmoji: any[];
@@ -1,2 +0,0 @@
1
- declare const emojiList: any[];
2
- export default emojiList;
@@ -1,2 +0,0 @@
1
- declare const emojiMap: {};
2
- export default emojiMap;
@@ -1 +0,0 @@
1
- export declare const EMOJI_SPRITE = "data:image/png;base64,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";
@@ -1,13 +0,0 @@
1
- declare const Embed: unknown;
2
- declare class EmojiBlot extends Embed {
3
- static emojiClass: string;
4
- static emojiPrefix: any;
5
- static tagName: string;
6
- static blotName: string;
7
- static className: string;
8
- static create(value: any): any;
9
- static value(node: any): any;
10
- static buildSpan(value: any, node: any): void;
11
- static parseUnicode(string: any): any;
12
- }
13
- export default EmojiBlot;
@@ -1,10 +0,0 @@
1
- import { default as EmojiBlot } from './formats/emoji-blot';
2
- import { default as ShortNameEmoji } from './modules/emoji';
3
- import { default as ToolbarEmoji } from './modules/toolbar-emoji';
4
-
5
- declare const _default: {
6
- EmojiBlot: typeof EmojiBlot;
7
- ShortNameEmoji: typeof ShortNameEmoji;
8
- ToolbarEmoji: typeof ToolbarEmoji;
9
- };
10
- export default _default;
@@ -1,38 +0,0 @@
1
- declare const Module: unknown;
2
- declare class ShortNameEmoji extends Module {
3
- static DEFAULTS: {
4
- emojiList: any[];
5
- fuse: {
6
- shouldSort: boolean;
7
- threshold: number;
8
- location: number;
9
- distance: number;
10
- maxPatternLength: number;
11
- minMatchCharLength: number;
12
- keys: string[];
13
- };
14
- };
15
- emojiList: any;
16
- quill: any;
17
- fuse: any;
18
- onOpen: any;
19
- onClose: any;
20
- container: HTMLUListElement;
21
- onSelectionChange: any;
22
- onTextChange: any;
23
- open: boolean;
24
- atIndex: any;
25
- focusedButton: any;
26
- isWhiteSpace: (ch: any) => boolean;
27
- query: any;
28
- buttons: any;
29
- options: any;
30
- constructor(quill: any, options: any);
31
- triggerPicker(range: any, _context: any): boolean;
32
- handleArrow(): boolean;
33
- update(event: any): void;
34
- maybeUnfocus(): void;
35
- renderCompletions(emojis: any, evt: any): void;
36
- close(value: any, trailingDelete?: number): void;
37
- }
38
- export default ShortNameEmoji;
@@ -1,8 +0,0 @@
1
- declare const Module: unknown;
2
- declare class ToolbarEmoji extends Module {
3
- quill: any;
4
- toolbar: any;
5
- constructor(quill: any, options: any);
6
- checkPalatteExist(): void;
7
- }
8
- export default ToolbarEmoji;
@@ -1 +0,0 @@
1
- export declare function createEmoji(emojiArr: any): any[];