@opentiny/fluent-editor 3.20.2 → 3.20.3

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 (530) hide show
  1. package/package.json +3 -3
  2. package/dist/package.json +0 -52
  3. package/scripts/pre-release.js +0 -34
  4. package/src/assets/better-table.scss +0 -367
  5. package/src/assets/common.scss +0 -279
  6. package/src/assets/counter.scss +0 -19
  7. package/src/assets/custom-image.scss +0 -20
  8. package/src/assets/editor.scss +0 -365
  9. package/src/assets/emoji/emoji.scss +0 -461
  10. package/src/assets/emoji/style.scss +0 -252
  11. package/src/assets/fileBar.scss +0 -116
  12. package/src/assets/font.scss +0 -36
  13. package/src/assets/fullscreen.scss +0 -21
  14. package/src/assets/iconfont/iconfont.ttf +0 -0
  15. package/src/assets/iconfont/iconfont.woff +0 -0
  16. package/src/assets/iconfont/iconfont.woff2 +0 -0
  17. package/src/assets/image1.png +0 -0
  18. package/src/assets/lineHeight.scss +0 -16
  19. package/src/assets/link.scss +0 -130
  20. package/src/assets/mention.scss +0 -48
  21. package/src/assets/screenshot.scss +0 -78
  22. package/src/assets/size.scss +0 -13
  23. package/src/assets/style.scss +0 -39
  24. package/src/assets/tasklist.scss +0 -76
  25. package/src/assets/toolbar.scss +0 -416
  26. package/src/attributors/font-size.ts +0 -6
  27. package/src/attributors/font-style.ts +0 -6
  28. package/src/attributors/index.ts +0 -4
  29. package/src/attributors/line-height.ts +0 -6
  30. package/src/attributors/text-indent.ts +0 -6
  31. package/src/config/base64-image.ts +0 -8
  32. package/src/config/editor.config.ts +0 -88
  33. package/src/config/editor.utils.ts +0 -199
  34. package/src/config/i18n/en-us.ts +0 -106
  35. package/src/config/i18n/zh-cn.ts +0 -104
  36. package/src/config/icons.config.ts +0 -297
  37. package/src/config/index.ts +0 -171
  38. package/src/config/types/additional-toolbar-item.interface.ts +0 -8
  39. package/src/config/types/content-change.interface.ts +0 -13
  40. package/src/config/types/content-save.interface.ts +0 -6
  41. package/src/config/types/counter-option.interface.ts +0 -9
  42. package/src/config/types/editor-config.interface.ts +0 -22
  43. package/src/config/types/editor-modules.interface.ts +0 -41
  44. package/src/config/types/file-operation.interface.ts +0 -12
  45. package/src/config/types/focus-change.interface.ts +0 -4
  46. package/src/config/types/fullscreen-module.interface.ts +0 -4
  47. package/src/config/types/help-panel-item.interface.ts +0 -5
  48. package/src/config/types/help-panel-option.interface.ts +0 -7
  49. package/src/config/types/image-module.interface.ts +0 -3
  50. package/src/config/types/image-upload.interface.ts +0 -7
  51. package/src/config/types/index.ts +0 -22
  52. package/src/config/types/load-on-demand-module.interface.ts +0 -5
  53. package/src/config/types/mention-module.interface.ts +0 -8
  54. package/src/config/types/paste-change.interface.ts +0 -6
  55. package/src/config/types/quick-menu-module.interface.ts +0 -3
  56. package/src/config/types/range.interface.ts +0 -4
  57. package/src/config/types/registry-options.interface.ts +0 -5
  58. package/src/config/types/selection-change.interface.ts +0 -8
  59. package/src/config/types/toolbar-item.interface.ts +0 -13
  60. package/src/config/types/type.ts +0 -5
  61. package/src/config/types/validate-error.interface.ts +0 -11
  62. package/src/counter/index.ts +0 -69
  63. package/src/custom-clipboard.ts +0 -633
  64. package/src/custom-image/BlotFormatter.ts +0 -167
  65. package/src/custom-image/Options.ts +0 -150
  66. package/src/custom-image/actions/Action.ts +0 -13
  67. package/src/custom-image/actions/CustomResizeAction.ts +0 -207
  68. package/src/custom-image/actions/DeleteAction.ts +0 -29
  69. package/src/custom-image/image.ts +0 -118
  70. package/src/custom-image/specs/BlotSpec.ts +0 -30
  71. package/src/custom-image/specs/CustomImageSpec.ts +0 -139
  72. package/src/custom-image/specs/ImageSpec.ts +0 -33
  73. package/src/custom-uploader.ts +0 -199
  74. package/src/emoji/emoji-list/index.ts +0 -1
  75. package/src/emoji/emoji-list/people.ts +0 -111
  76. package/src/emoji/emoji-list.ts +0 -9
  77. package/src/emoji/emoji-map.ts +0 -9
  78. package/src/emoji/formats/emoji-blot.ts +0 -54
  79. package/src/emoji/index.ts +0 -5
  80. package/src/emoji/modules/emoji.ts +0 -318
  81. package/src/emoji/modules/toolbar-emoji.ts +0 -182
  82. package/src/emoji/utils.ts +0 -15
  83. package/src/file/formats/file.ts +0 -67
  84. package/src/file/index.ts +0 -38
  85. package/src/file/modules/file-bar.ts +0 -146
  86. package/src/fluent-editor.ts +0 -164
  87. package/src/format-painter/index.ts +0 -79
  88. package/src/global-link/constants.ts +0 -3
  89. package/src/global-link/formats/customer-widget-link.ts +0 -36
  90. package/src/global-link/formats/doc-link.ts +0 -55
  91. package/src/global-link/formats/wiki-link.ts +0 -45
  92. package/src/global-link/formats/work-item-link.ts +0 -47
  93. package/src/global-link/global-link-panel.ts +0 -20
  94. package/src/global-link/index.ts +0 -165
  95. package/src/global-link/utils/createTable.ts +0 -54
  96. package/src/index.ts +0 -5
  97. package/src/link/formats/link.ts +0 -44
  98. package/src/link/index.ts +0 -35
  99. package/src/link/modules/tooltip.ts +0 -318
  100. package/src/mention/Mention.ts +0 -406
  101. package/src/mention/MentionLink.ts +0 -51
  102. package/src/mention/constants.ts +0 -3
  103. package/src/quick-menu/index.ts +0 -100
  104. package/src/screenshot/index.ts +0 -231
  105. package/src/soft-break/index.ts +0 -34
  106. package/src/strike/index.ts +0 -16
  107. package/src/syntax/index.ts +0 -35
  108. package/src/table/better-table.ts +0 -553
  109. package/src/table/formats/header.ts +0 -129
  110. package/src/table/formats/list.ts +0 -229
  111. package/src/table/formats/table.ts +0 -1272
  112. package/src/table/modules/table-column-tool.ts +0 -492
  113. package/src/table/modules/table-operation-menu.ts +0 -584
  114. package/src/table/modules/table-scroll-bar.ts +0 -248
  115. package/src/table/modules/table-selection.ts +0 -387
  116. package/src/table/table-config.ts +0 -42
  117. package/src/table/utils/index.ts +0 -62
  118. package/src/table/utils/node-matchers.ts +0 -359
  119. package/src/toolbar/better-picker.ts +0 -370
  120. package/src/toolbar/index.ts +0 -180
  121. package/src/utils/debounce.ts +0 -149
  122. package/src/utils/image.ts +0 -22
  123. package/src/utils/method.ts +0 -82
  124. package/src/utils/scroll-lock.ts +0 -52
  125. package/src/video/index.ts +0 -62
  126. package/tsconfig.json +0 -26
  127. package/vite.config.theme.ts +0 -20
  128. package/vite.config.ts +0 -56
  129. /package/{dist/README.md → README.md} +0 -0
  130. /package/{dist/es → es}/attributors/font-size.es.js +0 -0
  131. /package/{dist/es → es}/attributors/font-size.es.js.map +0 -0
  132. /package/{dist/es → es}/attributors/font-style.es.js +0 -0
  133. /package/{dist/es → es}/attributors/font-style.es.js.map +0 -0
  134. /package/{dist/es → es}/attributors/index.es.js +0 -0
  135. /package/{dist/es → es}/attributors/index.es.js.map +0 -0
  136. /package/{dist/es → es}/attributors/line-height.es.js +0 -0
  137. /package/{dist/es → es}/attributors/line-height.es.js.map +0 -0
  138. /package/{dist/es → es}/attributors/text-indent.es.js +0 -0
  139. /package/{dist/es → es}/attributors/text-indent.es.js.map +0 -0
  140. /package/{dist/es → es}/config/base64-image.es.js +0 -0
  141. /package/{dist/es → es}/config/base64-image.es.js.map +0 -0
  142. /package/{dist/es → es}/config/editor.config.es.js +0 -0
  143. /package/{dist/es → es}/config/editor.config.es.js.map +0 -0
  144. /package/{dist/es → es}/config/editor.utils.es.js +0 -0
  145. /package/{dist/es → es}/config/editor.utils.es.js.map +0 -0
  146. /package/{dist/es → es}/config/i18n/en-us.es.js +0 -0
  147. /package/{dist/es → es}/config/i18n/en-us.es.js.map +0 -0
  148. /package/{dist/es → es}/config/i18n/zh-cn.es.js +0 -0
  149. /package/{dist/es → es}/config/i18n/zh-cn.es.js.map +0 -0
  150. /package/{dist/es → es}/config/icons.config.es.js +0 -0
  151. /package/{dist/es → es}/config/icons.config.es.js.map +0 -0
  152. /package/{dist/es → es}/config/index.es.js +0 -0
  153. /package/{dist/es → es}/config/index.es.js.map +0 -0
  154. /package/{dist/es → es}/config/types/additional-toolbar-item.interface.es.js +0 -0
  155. /package/{dist/es → es}/config/types/additional-toolbar-item.interface.es.js.map +0 -0
  156. /package/{dist/es → es}/config/types/content-change.interface.es.js +0 -0
  157. /package/{dist/es → es}/config/types/content-change.interface.es.js.map +0 -0
  158. /package/{dist/es → es}/config/types/content-save.interface.es.js +0 -0
  159. /package/{dist/es → es}/config/types/content-save.interface.es.js.map +0 -0
  160. /package/{dist/es → es}/config/types/counter-option.interface.es.js +0 -0
  161. /package/{dist/es → es}/config/types/counter-option.interface.es.js.map +0 -0
  162. /package/{dist/es → es}/config/types/editor-config.interface.es.js +0 -0
  163. /package/{dist/es → es}/config/types/editor-config.interface.es.js.map +0 -0
  164. /package/{dist/es → es}/config/types/editor-modules.interface.es.js +0 -0
  165. /package/{dist/es → es}/config/types/editor-modules.interface.es.js.map +0 -0
  166. /package/{dist/es → es}/config/types/file-operation.interface.es.js +0 -0
  167. /package/{dist/es → es}/config/types/file-operation.interface.es.js.map +0 -0
  168. /package/{dist/es → es}/config/types/focus-change.interface.es.js +0 -0
  169. /package/{dist/es → es}/config/types/focus-change.interface.es.js.map +0 -0
  170. /package/{dist/es → es}/config/types/fullscreen-module.interface.es.js +0 -0
  171. /package/{dist/es → es}/config/types/fullscreen-module.interface.es.js.map +0 -0
  172. /package/{dist/es → es}/config/types/help-panel-item.interface.es.js +0 -0
  173. /package/{dist/es → es}/config/types/help-panel-item.interface.es.js.map +0 -0
  174. /package/{dist/es → es}/config/types/help-panel-option.interface.es.js +0 -0
  175. /package/{dist/es → es}/config/types/help-panel-option.interface.es.js.map +0 -0
  176. /package/{dist/es → es}/config/types/image-module.interface.es.js +0 -0
  177. /package/{dist/es → es}/config/types/image-module.interface.es.js.map +0 -0
  178. /package/{dist/es → es}/config/types/image-upload.interface.es.js +0 -0
  179. /package/{dist/es → es}/config/types/image-upload.interface.es.js.map +0 -0
  180. /package/{dist/es → es}/config/types/index.es.js +0 -0
  181. /package/{dist/es → es}/config/types/index.es.js.map +0 -0
  182. /package/{dist/es → es}/config/types/load-on-demand-module.interface.es.js +0 -0
  183. /package/{dist/es → es}/config/types/load-on-demand-module.interface.es.js.map +0 -0
  184. /package/{dist/es → es}/config/types/mention-module.interface.es.js +0 -0
  185. /package/{dist/es → es}/config/types/mention-module.interface.es.js.map +0 -0
  186. /package/{dist/es → es}/config/types/paste-change.interface.es.js +0 -0
  187. /package/{dist/es → es}/config/types/paste-change.interface.es.js.map +0 -0
  188. /package/{dist/es → es}/config/types/quick-menu-module.interface.es.js +0 -0
  189. /package/{dist/es → es}/config/types/quick-menu-module.interface.es.js.map +0 -0
  190. /package/{dist/es → es}/config/types/range.interface.es.js +0 -0
  191. /package/{dist/es → es}/config/types/range.interface.es.js.map +0 -0
  192. /package/{dist/es → es}/config/types/registry-options.interface.es.js +0 -0
  193. /package/{dist/es → es}/config/types/registry-options.interface.es.js.map +0 -0
  194. /package/{dist/es → es}/config/types/selection-change.interface.es.js +0 -0
  195. /package/{dist/es → es}/config/types/selection-change.interface.es.js.map +0 -0
  196. /package/{dist/es → es}/config/types/toolbar-item.interface.es.js +0 -0
  197. /package/{dist/es → es}/config/types/toolbar-item.interface.es.js.map +0 -0
  198. /package/{dist/es → es}/config/types/type.es.js +0 -0
  199. /package/{dist/es → es}/config/types/type.es.js.map +0 -0
  200. /package/{dist/es → es}/config/types/validate-error.interface.es.js +0 -0
  201. /package/{dist/es → es}/config/types/validate-error.interface.es.js.map +0 -0
  202. /package/{dist/es → es}/counter/index.es.js +0 -0
  203. /package/{dist/es → es}/counter/index.es.js.map +0 -0
  204. /package/{dist/es → es}/custom-clipboard.es.js +0 -0
  205. /package/{dist/es → es}/custom-clipboard.es.js.map +0 -0
  206. /package/{dist/es → es}/custom-image/BlotFormatter.es.js +0 -0
  207. /package/{dist/es → es}/custom-image/BlotFormatter.es.js.map +0 -0
  208. /package/{dist/es → es}/custom-image/Options.es.js +0 -0
  209. /package/{dist/es → es}/custom-image/Options.es.js.map +0 -0
  210. /package/{dist/es → es}/custom-image/actions/Action.es.js +0 -0
  211. /package/{dist/es → es}/custom-image/actions/Action.es.js.map +0 -0
  212. /package/{dist/es → es}/custom-image/actions/CustomResizeAction.es.js +0 -0
  213. /package/{dist/es → es}/custom-image/actions/CustomResizeAction.es.js.map +0 -0
  214. /package/{dist/es → es}/custom-image/actions/DeleteAction.es.js +0 -0
  215. /package/{dist/es → es}/custom-image/actions/DeleteAction.es.js.map +0 -0
  216. /package/{dist/es → es}/custom-image/image.es.js +0 -0
  217. /package/{dist/es → es}/custom-image/image.es.js.map +0 -0
  218. /package/{dist/es → es}/custom-image/specs/BlotSpec.es.js +0 -0
  219. /package/{dist/es → es}/custom-image/specs/BlotSpec.es.js.map +0 -0
  220. /package/{dist/es → es}/custom-image/specs/CustomImageSpec.es.js +0 -0
  221. /package/{dist/es → es}/custom-image/specs/CustomImageSpec.es.js.map +0 -0
  222. /package/{dist/es → es}/custom-image/specs/ImageSpec.es.js +0 -0
  223. /package/{dist/es → es}/custom-image/specs/ImageSpec.es.js.map +0 -0
  224. /package/{dist/es → es}/custom-uploader.es.js +0 -0
  225. /package/{dist/es → es}/custom-uploader.es.js.map +0 -0
  226. /package/{dist/es → es}/emoji/emoji-list/index.es.js +0 -0
  227. /package/{dist/es → es}/emoji/emoji-list/index.es.js.map +0 -0
  228. /package/{dist/es → es}/emoji/emoji-list/people.es.js +0 -0
  229. /package/{dist/es → es}/emoji/emoji-list/people.es.js.map +0 -0
  230. /package/{dist/es → es}/emoji/emoji-list.es.js +0 -0
  231. /package/{dist/es → es}/emoji/emoji-list.es.js.map +0 -0
  232. /package/{dist/es → es}/emoji/emoji-map.es.js +0 -0
  233. /package/{dist/es → es}/emoji/emoji-map.es.js.map +0 -0
  234. /package/{dist/es → es}/emoji/formats/emoji-blot.es.js +0 -0
  235. /package/{dist/es → es}/emoji/formats/emoji-blot.es.js.map +0 -0
  236. /package/{dist/es → es}/emoji/index.es.js +0 -0
  237. /package/{dist/es → es}/emoji/index.es.js.map +0 -0
  238. /package/{dist/es → es}/emoji/modules/emoji.es.js +0 -0
  239. /package/{dist/es → es}/emoji/modules/emoji.es.js.map +0 -0
  240. /package/{dist/es → es}/emoji/modules/toolbar-emoji.es.js +0 -0
  241. /package/{dist/es → es}/emoji/modules/toolbar-emoji.es.js.map +0 -0
  242. /package/{dist/es → es}/emoji/utils.es.js +0 -0
  243. /package/{dist/es → es}/emoji/utils.es.js.map +0 -0
  244. /package/{dist/es → es}/file/formats/file.es.js +0 -0
  245. /package/{dist/es → es}/file/formats/file.es.js.map +0 -0
  246. /package/{dist/es → es}/file/index.es.js +0 -0
  247. /package/{dist/es → es}/file/index.es.js.map +0 -0
  248. /package/{dist/es → es}/file/modules/file-bar.es.js +0 -0
  249. /package/{dist/es → es}/file/modules/file-bar.es.js.map +0 -0
  250. /package/{dist/es → es}/fluent-editor.es.js +0 -0
  251. /package/{dist/es → es}/fluent-editor.es.js.map +0 -0
  252. /package/{dist/es → es}/format-painter/index.es.js +0 -0
  253. /package/{dist/es → es}/format-painter/index.es.js.map +0 -0
  254. /package/{dist/es → es}/global-link/constants.es.js +0 -0
  255. /package/{dist/es → es}/global-link/constants.es.js.map +0 -0
  256. /package/{dist/es → es}/global-link/formats/customer-widget-link.es.js +0 -0
  257. /package/{dist/es → es}/global-link/formats/customer-widget-link.es.js.map +0 -0
  258. /package/{dist/es → es}/global-link/formats/doc-link.es.js +0 -0
  259. /package/{dist/es → es}/global-link/formats/doc-link.es.js.map +0 -0
  260. /package/{dist/es → es}/global-link/formats/wiki-link.es.js +0 -0
  261. /package/{dist/es → es}/global-link/formats/wiki-link.es.js.map +0 -0
  262. /package/{dist/es → es}/global-link/formats/work-item-link.es.js +0 -0
  263. /package/{dist/es → es}/global-link/formats/work-item-link.es.js.map +0 -0
  264. /package/{dist/es → es}/global-link/global-link-panel.es.js +0 -0
  265. /package/{dist/es → es}/global-link/global-link-panel.es.js.map +0 -0
  266. /package/{dist/es → es}/global-link/index.es.js +0 -0
  267. /package/{dist/es → es}/global-link/index.es.js.map +0 -0
  268. /package/{dist/es → es}/global-link/utils/createTable.es.js +0 -0
  269. /package/{dist/es → es}/global-link/utils/createTable.es.js.map +0 -0
  270. /package/{dist/es → es}/index.es.js +0 -0
  271. /package/{dist/es → es}/index.es.js.map +0 -0
  272. /package/{dist/es → es}/link/formats/link.es.js +0 -0
  273. /package/{dist/es → es}/link/formats/link.es.js.map +0 -0
  274. /package/{dist/es → es}/link/index.es.js +0 -0
  275. /package/{dist/es → es}/link/index.es.js.map +0 -0
  276. /package/{dist/es → es}/link/modules/tooltip.es.js +0 -0
  277. /package/{dist/es → es}/link/modules/tooltip.es.js.map +0 -0
  278. /package/{dist/es → es}/mention/Mention.es.js +0 -0
  279. /package/{dist/es → es}/mention/Mention.es.js.map +0 -0
  280. /package/{dist/es → es}/mention/MentionLink.es.js +0 -0
  281. /package/{dist/es → es}/mention/MentionLink.es.js.map +0 -0
  282. /package/{dist/es → es}/mention/constants.es.js +0 -0
  283. /package/{dist/es → es}/mention/constants.es.js.map +0 -0
  284. /package/{dist/es → es}/quick-menu/index.es.js +0 -0
  285. /package/{dist/es → es}/quick-menu/index.es.js.map +0 -0
  286. /package/{dist/es → es}/screenshot/index.es.js +0 -0
  287. /package/{dist/es → es}/screenshot/index.es.js.map +0 -0
  288. /package/{dist/es → es}/soft-break/index.es.js +0 -0
  289. /package/{dist/es → es}/soft-break/index.es.js.map +0 -0
  290. /package/{dist/es → es}/strike/index.es.js +0 -0
  291. /package/{dist/es → es}/strike/index.es.js.map +0 -0
  292. /package/{dist/es → es}/syntax/index.es.js +0 -0
  293. /package/{dist/es → es}/syntax/index.es.js.map +0 -0
  294. /package/{dist/es → es}/table/better-table.es.js +0 -0
  295. /package/{dist/es → es}/table/better-table.es.js.map +0 -0
  296. /package/{dist/es → es}/table/formats/header.es.js +0 -0
  297. /package/{dist/es → es}/table/formats/header.es.js.map +0 -0
  298. /package/{dist/es → es}/table/formats/list.es.js +0 -0
  299. /package/{dist/es → es}/table/formats/list.es.js.map +0 -0
  300. /package/{dist/es → es}/table/formats/table.es.js +0 -0
  301. /package/{dist/es → es}/table/formats/table.es.js.map +0 -0
  302. /package/{dist/es → es}/table/modules/table-column-tool.es.js +0 -0
  303. /package/{dist/es → es}/table/modules/table-column-tool.es.js.map +0 -0
  304. /package/{dist/es → es}/table/modules/table-operation-menu.es.js +0 -0
  305. /package/{dist/es → es}/table/modules/table-operation-menu.es.js.map +0 -0
  306. /package/{dist/es → es}/table/modules/table-scroll-bar.es.js +0 -0
  307. /package/{dist/es → es}/table/modules/table-scroll-bar.es.js.map +0 -0
  308. /package/{dist/es → es}/table/modules/table-selection.es.js +0 -0
  309. /package/{dist/es → es}/table/modules/table-selection.es.js.map +0 -0
  310. /package/{dist/es → es}/table/table-config.es.js +0 -0
  311. /package/{dist/es → es}/table/table-config.es.js.map +0 -0
  312. /package/{dist/es → es}/table/utils/index.es.js +0 -0
  313. /package/{dist/es → es}/table/utils/index.es.js.map +0 -0
  314. /package/{dist/es → es}/table/utils/node-matchers.es.js +0 -0
  315. /package/{dist/es → es}/table/utils/node-matchers.es.js.map +0 -0
  316. /package/{dist/es → es}/toolbar/better-picker.es.js +0 -0
  317. /package/{dist/es → es}/toolbar/better-picker.es.js.map +0 -0
  318. /package/{dist/es → es}/toolbar/index.es.js +0 -0
  319. /package/{dist/es → es}/toolbar/index.es.js.map +0 -0
  320. /package/{dist/es → es}/utils/debounce.es.js +0 -0
  321. /package/{dist/es → es}/utils/debounce.es.js.map +0 -0
  322. /package/{dist/es → es}/utils/image.es.js +0 -0
  323. /package/{dist/es → es}/utils/image.es.js.map +0 -0
  324. /package/{dist/es → es}/utils/method.es.js +0 -0
  325. /package/{dist/es → es}/utils/method.es.js.map +0 -0
  326. /package/{dist/es → es}/utils/scroll-lock.es.js +0 -0
  327. /package/{dist/es → es}/utils/scroll-lock.es.js.map +0 -0
  328. /package/{dist/es → es}/video/index.es.js +0 -0
  329. /package/{dist/es → es}/video/index.es.js.map +0 -0
  330. /package/{dist/lib → lib}/attributors/font-size.cjs.js +0 -0
  331. /package/{dist/lib → lib}/attributors/font-size.cjs.js.map +0 -0
  332. /package/{dist/lib → lib}/attributors/font-style.cjs.js +0 -0
  333. /package/{dist/lib → lib}/attributors/font-style.cjs.js.map +0 -0
  334. /package/{dist/lib → lib}/attributors/index.cjs.js +0 -0
  335. /package/{dist/lib → lib}/attributors/index.cjs.js.map +0 -0
  336. /package/{dist/lib → lib}/attributors/line-height.cjs.js +0 -0
  337. /package/{dist/lib → lib}/attributors/line-height.cjs.js.map +0 -0
  338. /package/{dist/lib → lib}/attributors/text-indent.cjs.js +0 -0
  339. /package/{dist/lib → lib}/attributors/text-indent.cjs.js.map +0 -0
  340. /package/{dist/lib → lib}/config/base64-image.cjs.js +0 -0
  341. /package/{dist/lib → lib}/config/base64-image.cjs.js.map +0 -0
  342. /package/{dist/lib → lib}/config/editor.config.cjs.js +0 -0
  343. /package/{dist/lib → lib}/config/editor.config.cjs.js.map +0 -0
  344. /package/{dist/lib → lib}/config/editor.utils.cjs.js +0 -0
  345. /package/{dist/lib → lib}/config/editor.utils.cjs.js.map +0 -0
  346. /package/{dist/lib → lib}/config/i18n/en-us.cjs.js +0 -0
  347. /package/{dist/lib → lib}/config/i18n/en-us.cjs.js.map +0 -0
  348. /package/{dist/lib → lib}/config/i18n/zh-cn.cjs.js +0 -0
  349. /package/{dist/lib → lib}/config/i18n/zh-cn.cjs.js.map +0 -0
  350. /package/{dist/lib → lib}/config/icons.config.cjs.js +0 -0
  351. /package/{dist/lib → lib}/config/icons.config.cjs.js.map +0 -0
  352. /package/{dist/lib → lib}/config/index.cjs.js +0 -0
  353. /package/{dist/lib → lib}/config/index.cjs.js.map +0 -0
  354. /package/{dist/lib → lib}/config/types/additional-toolbar-item.interface.cjs.js +0 -0
  355. /package/{dist/lib → lib}/config/types/additional-toolbar-item.interface.cjs.js.map +0 -0
  356. /package/{dist/lib → lib}/config/types/content-change.interface.cjs.js +0 -0
  357. /package/{dist/lib → lib}/config/types/content-change.interface.cjs.js.map +0 -0
  358. /package/{dist/lib → lib}/config/types/content-save.interface.cjs.js +0 -0
  359. /package/{dist/lib → lib}/config/types/content-save.interface.cjs.js.map +0 -0
  360. /package/{dist/lib → lib}/config/types/counter-option.interface.cjs.js +0 -0
  361. /package/{dist/lib → lib}/config/types/counter-option.interface.cjs.js.map +0 -0
  362. /package/{dist/lib → lib}/config/types/editor-config.interface.cjs.js +0 -0
  363. /package/{dist/lib → lib}/config/types/editor-config.interface.cjs.js.map +0 -0
  364. /package/{dist/lib → lib}/config/types/editor-modules.interface.cjs.js +0 -0
  365. /package/{dist/lib → lib}/config/types/editor-modules.interface.cjs.js.map +0 -0
  366. /package/{dist/lib → lib}/config/types/file-operation.interface.cjs.js +0 -0
  367. /package/{dist/lib → lib}/config/types/file-operation.interface.cjs.js.map +0 -0
  368. /package/{dist/lib → lib}/config/types/focus-change.interface.cjs.js +0 -0
  369. /package/{dist/lib → lib}/config/types/focus-change.interface.cjs.js.map +0 -0
  370. /package/{dist/lib → lib}/config/types/fullscreen-module.interface.cjs.js +0 -0
  371. /package/{dist/lib → lib}/config/types/fullscreen-module.interface.cjs.js.map +0 -0
  372. /package/{dist/lib → lib}/config/types/help-panel-item.interface.cjs.js +0 -0
  373. /package/{dist/lib → lib}/config/types/help-panel-item.interface.cjs.js.map +0 -0
  374. /package/{dist/lib → lib}/config/types/help-panel-option.interface.cjs.js +0 -0
  375. /package/{dist/lib → lib}/config/types/help-panel-option.interface.cjs.js.map +0 -0
  376. /package/{dist/lib → lib}/config/types/image-module.interface.cjs.js +0 -0
  377. /package/{dist/lib → lib}/config/types/image-module.interface.cjs.js.map +0 -0
  378. /package/{dist/lib → lib}/config/types/image-upload.interface.cjs.js +0 -0
  379. /package/{dist/lib → lib}/config/types/image-upload.interface.cjs.js.map +0 -0
  380. /package/{dist/lib → lib}/config/types/index.cjs.js +0 -0
  381. /package/{dist/lib → lib}/config/types/index.cjs.js.map +0 -0
  382. /package/{dist/lib → lib}/config/types/load-on-demand-module.interface.cjs.js +0 -0
  383. /package/{dist/lib → lib}/config/types/load-on-demand-module.interface.cjs.js.map +0 -0
  384. /package/{dist/lib → lib}/config/types/mention-module.interface.cjs.js +0 -0
  385. /package/{dist/lib → lib}/config/types/mention-module.interface.cjs.js.map +0 -0
  386. /package/{dist/lib → lib}/config/types/paste-change.interface.cjs.js +0 -0
  387. /package/{dist/lib → lib}/config/types/paste-change.interface.cjs.js.map +0 -0
  388. /package/{dist/lib → lib}/config/types/quick-menu-module.interface.cjs.js +0 -0
  389. /package/{dist/lib → lib}/config/types/quick-menu-module.interface.cjs.js.map +0 -0
  390. /package/{dist/lib → lib}/config/types/range.interface.cjs.js +0 -0
  391. /package/{dist/lib → lib}/config/types/range.interface.cjs.js.map +0 -0
  392. /package/{dist/lib → lib}/config/types/registry-options.interface.cjs.js +0 -0
  393. /package/{dist/lib → lib}/config/types/registry-options.interface.cjs.js.map +0 -0
  394. /package/{dist/lib → lib}/config/types/selection-change.interface.cjs.js +0 -0
  395. /package/{dist/lib → lib}/config/types/selection-change.interface.cjs.js.map +0 -0
  396. /package/{dist/lib → lib}/config/types/toolbar-item.interface.cjs.js +0 -0
  397. /package/{dist/lib → lib}/config/types/toolbar-item.interface.cjs.js.map +0 -0
  398. /package/{dist/lib → lib}/config/types/type.cjs.js +0 -0
  399. /package/{dist/lib → lib}/config/types/type.cjs.js.map +0 -0
  400. /package/{dist/lib → lib}/config/types/validate-error.interface.cjs.js +0 -0
  401. /package/{dist/lib → lib}/config/types/validate-error.interface.cjs.js.map +0 -0
  402. /package/{dist/lib → lib}/counter/index.cjs.js +0 -0
  403. /package/{dist/lib → lib}/counter/index.cjs.js.map +0 -0
  404. /package/{dist/lib → lib}/custom-clipboard.cjs.js +0 -0
  405. /package/{dist/lib → lib}/custom-clipboard.cjs.js.map +0 -0
  406. /package/{dist/lib → lib}/custom-image/BlotFormatter.cjs.js +0 -0
  407. /package/{dist/lib → lib}/custom-image/BlotFormatter.cjs.js.map +0 -0
  408. /package/{dist/lib → lib}/custom-image/Options.cjs.js +0 -0
  409. /package/{dist/lib → lib}/custom-image/Options.cjs.js.map +0 -0
  410. /package/{dist/lib → lib}/custom-image/actions/Action.cjs.js +0 -0
  411. /package/{dist/lib → lib}/custom-image/actions/Action.cjs.js.map +0 -0
  412. /package/{dist/lib → lib}/custom-image/actions/CustomResizeAction.cjs.js +0 -0
  413. /package/{dist/lib → lib}/custom-image/actions/CustomResizeAction.cjs.js.map +0 -0
  414. /package/{dist/lib → lib}/custom-image/actions/DeleteAction.cjs.js +0 -0
  415. /package/{dist/lib → lib}/custom-image/actions/DeleteAction.cjs.js.map +0 -0
  416. /package/{dist/lib → lib}/custom-image/image.cjs.js +0 -0
  417. /package/{dist/lib → lib}/custom-image/image.cjs.js.map +0 -0
  418. /package/{dist/lib → lib}/custom-image/specs/BlotSpec.cjs.js +0 -0
  419. /package/{dist/lib → lib}/custom-image/specs/BlotSpec.cjs.js.map +0 -0
  420. /package/{dist/lib → lib}/custom-image/specs/CustomImageSpec.cjs.js +0 -0
  421. /package/{dist/lib → lib}/custom-image/specs/CustomImageSpec.cjs.js.map +0 -0
  422. /package/{dist/lib → lib}/custom-image/specs/ImageSpec.cjs.js +0 -0
  423. /package/{dist/lib → lib}/custom-image/specs/ImageSpec.cjs.js.map +0 -0
  424. /package/{dist/lib → lib}/custom-uploader.cjs.js +0 -0
  425. /package/{dist/lib → lib}/custom-uploader.cjs.js.map +0 -0
  426. /package/{dist/lib → lib}/emoji/emoji-list/index.cjs.js +0 -0
  427. /package/{dist/lib → lib}/emoji/emoji-list/index.cjs.js.map +0 -0
  428. /package/{dist/lib → lib}/emoji/emoji-list/people.cjs.js +0 -0
  429. /package/{dist/lib → lib}/emoji/emoji-list/people.cjs.js.map +0 -0
  430. /package/{dist/lib → lib}/emoji/emoji-list.cjs.js +0 -0
  431. /package/{dist/lib → lib}/emoji/emoji-list.cjs.js.map +0 -0
  432. /package/{dist/lib → lib}/emoji/emoji-map.cjs.js +0 -0
  433. /package/{dist/lib → lib}/emoji/emoji-map.cjs.js.map +0 -0
  434. /package/{dist/lib → lib}/emoji/formats/emoji-blot.cjs.js +0 -0
  435. /package/{dist/lib → lib}/emoji/formats/emoji-blot.cjs.js.map +0 -0
  436. /package/{dist/lib → lib}/emoji/index.cjs.js +0 -0
  437. /package/{dist/lib → lib}/emoji/index.cjs.js.map +0 -0
  438. /package/{dist/lib → lib}/emoji/modules/emoji.cjs.js +0 -0
  439. /package/{dist/lib → lib}/emoji/modules/emoji.cjs.js.map +0 -0
  440. /package/{dist/lib → lib}/emoji/modules/toolbar-emoji.cjs.js +0 -0
  441. /package/{dist/lib → lib}/emoji/modules/toolbar-emoji.cjs.js.map +0 -0
  442. /package/{dist/lib → lib}/emoji/utils.cjs.js +0 -0
  443. /package/{dist/lib → lib}/emoji/utils.cjs.js.map +0 -0
  444. /package/{dist/lib → lib}/file/formats/file.cjs.js +0 -0
  445. /package/{dist/lib → lib}/file/formats/file.cjs.js.map +0 -0
  446. /package/{dist/lib → lib}/file/index.cjs.js +0 -0
  447. /package/{dist/lib → lib}/file/index.cjs.js.map +0 -0
  448. /package/{dist/lib → lib}/file/modules/file-bar.cjs.js +0 -0
  449. /package/{dist/lib → lib}/file/modules/file-bar.cjs.js.map +0 -0
  450. /package/{dist/lib → lib}/fluent-editor.cjs.js +0 -0
  451. /package/{dist/lib → lib}/fluent-editor.cjs.js.map +0 -0
  452. /package/{dist/lib → lib}/format-painter/index.cjs.js +0 -0
  453. /package/{dist/lib → lib}/format-painter/index.cjs.js.map +0 -0
  454. /package/{dist/lib → lib}/global-link/constants.cjs.js +0 -0
  455. /package/{dist/lib → lib}/global-link/constants.cjs.js.map +0 -0
  456. /package/{dist/lib → lib}/global-link/formats/customer-widget-link.cjs.js +0 -0
  457. /package/{dist/lib → lib}/global-link/formats/customer-widget-link.cjs.js.map +0 -0
  458. /package/{dist/lib → lib}/global-link/formats/doc-link.cjs.js +0 -0
  459. /package/{dist/lib → lib}/global-link/formats/doc-link.cjs.js.map +0 -0
  460. /package/{dist/lib → lib}/global-link/formats/wiki-link.cjs.js +0 -0
  461. /package/{dist/lib → lib}/global-link/formats/wiki-link.cjs.js.map +0 -0
  462. /package/{dist/lib → lib}/global-link/formats/work-item-link.cjs.js +0 -0
  463. /package/{dist/lib → lib}/global-link/formats/work-item-link.cjs.js.map +0 -0
  464. /package/{dist/lib → lib}/global-link/global-link-panel.cjs.js +0 -0
  465. /package/{dist/lib → lib}/global-link/global-link-panel.cjs.js.map +0 -0
  466. /package/{dist/lib → lib}/global-link/index.cjs.js +0 -0
  467. /package/{dist/lib → lib}/global-link/index.cjs.js.map +0 -0
  468. /package/{dist/lib → lib}/global-link/utils/createTable.cjs.js +0 -0
  469. /package/{dist/lib → lib}/global-link/utils/createTable.cjs.js.map +0 -0
  470. /package/{dist/lib → lib}/index.cjs.js +0 -0
  471. /package/{dist/lib → lib}/index.cjs.js.map +0 -0
  472. /package/{dist/lib → lib}/link/formats/link.cjs.js +0 -0
  473. /package/{dist/lib → lib}/link/formats/link.cjs.js.map +0 -0
  474. /package/{dist/lib → lib}/link/index.cjs.js +0 -0
  475. /package/{dist/lib → lib}/link/index.cjs.js.map +0 -0
  476. /package/{dist/lib → lib}/link/modules/tooltip.cjs.js +0 -0
  477. /package/{dist/lib → lib}/link/modules/tooltip.cjs.js.map +0 -0
  478. /package/{dist/lib → lib}/mention/Mention.cjs.js +0 -0
  479. /package/{dist/lib → lib}/mention/Mention.cjs.js.map +0 -0
  480. /package/{dist/lib → lib}/mention/MentionLink.cjs.js +0 -0
  481. /package/{dist/lib → lib}/mention/MentionLink.cjs.js.map +0 -0
  482. /package/{dist/lib → lib}/mention/constants.cjs.js +0 -0
  483. /package/{dist/lib → lib}/mention/constants.cjs.js.map +0 -0
  484. /package/{dist/lib → lib}/quick-menu/index.cjs.js +0 -0
  485. /package/{dist/lib → lib}/quick-menu/index.cjs.js.map +0 -0
  486. /package/{dist/lib → lib}/screenshot/index.cjs.js +0 -0
  487. /package/{dist/lib → lib}/screenshot/index.cjs.js.map +0 -0
  488. /package/{dist/lib → lib}/soft-break/index.cjs.js +0 -0
  489. /package/{dist/lib → lib}/soft-break/index.cjs.js.map +0 -0
  490. /package/{dist/lib → lib}/strike/index.cjs.js +0 -0
  491. /package/{dist/lib → lib}/strike/index.cjs.js.map +0 -0
  492. /package/{dist/lib → lib}/syntax/index.cjs.js +0 -0
  493. /package/{dist/lib → lib}/syntax/index.cjs.js.map +0 -0
  494. /package/{dist/lib → lib}/table/better-table.cjs.js +0 -0
  495. /package/{dist/lib → lib}/table/better-table.cjs.js.map +0 -0
  496. /package/{dist/lib → lib}/table/formats/header.cjs.js +0 -0
  497. /package/{dist/lib → lib}/table/formats/header.cjs.js.map +0 -0
  498. /package/{dist/lib → lib}/table/formats/list.cjs.js +0 -0
  499. /package/{dist/lib → lib}/table/formats/list.cjs.js.map +0 -0
  500. /package/{dist/lib → lib}/table/formats/table.cjs.js +0 -0
  501. /package/{dist/lib → lib}/table/formats/table.cjs.js.map +0 -0
  502. /package/{dist/lib → lib}/table/modules/table-column-tool.cjs.js +0 -0
  503. /package/{dist/lib → lib}/table/modules/table-column-tool.cjs.js.map +0 -0
  504. /package/{dist/lib → lib}/table/modules/table-operation-menu.cjs.js +0 -0
  505. /package/{dist/lib → lib}/table/modules/table-operation-menu.cjs.js.map +0 -0
  506. /package/{dist/lib → lib}/table/modules/table-scroll-bar.cjs.js +0 -0
  507. /package/{dist/lib → lib}/table/modules/table-scroll-bar.cjs.js.map +0 -0
  508. /package/{dist/lib → lib}/table/modules/table-selection.cjs.js +0 -0
  509. /package/{dist/lib → lib}/table/modules/table-selection.cjs.js.map +0 -0
  510. /package/{dist/lib → lib}/table/table-config.cjs.js +0 -0
  511. /package/{dist/lib → lib}/table/table-config.cjs.js.map +0 -0
  512. /package/{dist/lib → lib}/table/utils/index.cjs.js +0 -0
  513. /package/{dist/lib → lib}/table/utils/index.cjs.js.map +0 -0
  514. /package/{dist/lib → lib}/table/utils/node-matchers.cjs.js +0 -0
  515. /package/{dist/lib → lib}/table/utils/node-matchers.cjs.js.map +0 -0
  516. /package/{dist/lib → lib}/toolbar/better-picker.cjs.js +0 -0
  517. /package/{dist/lib → lib}/toolbar/better-picker.cjs.js.map +0 -0
  518. /package/{dist/lib → lib}/toolbar/index.cjs.js +0 -0
  519. /package/{dist/lib → lib}/toolbar/index.cjs.js.map +0 -0
  520. /package/{dist/lib → lib}/utils/debounce.cjs.js +0 -0
  521. /package/{dist/lib → lib}/utils/debounce.cjs.js.map +0 -0
  522. /package/{dist/lib → lib}/utils/image.cjs.js +0 -0
  523. /package/{dist/lib → lib}/utils/image.cjs.js.map +0 -0
  524. /package/{dist/lib → lib}/utils/method.cjs.js +0 -0
  525. /package/{dist/lib → lib}/utils/method.cjs.js.map +0 -0
  526. /package/{dist/lib → lib}/utils/scroll-lock.cjs.js +0 -0
  527. /package/{dist/lib → lib}/utils/scroll-lock.cjs.js.map +0 -0
  528. /package/{dist/lib → lib}/video/index.cjs.js +0 -0
  529. /package/{dist/lib → lib}/video/index.cjs.js.map +0 -0
  530. /package/{dist/style.css → style.css} +0 -0
@@ -1,406 +0,0 @@
1
- import Quill from 'quill'
2
- import { isNullOrUndefined } from '../config/editor.utils'
3
- import { DEFAULT_MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'
4
- import MentionLink from './MentionLink'
5
-
6
- const { Scope } = Quill.imports.parchment
7
- const Delta = Quill.imports.delta
8
-
9
- interface MentionOption {
10
- containerClass?: string
11
- dataAttributes?: string[]
12
- defaultLink?: string
13
- itemActiveClass?: string
14
- itemKey: string
15
- itemClass?: string
16
- listClass?: string
17
- listHideClass?: string
18
- maxHeight?: number
19
- mentionChar?: string
20
- remove?: (data: any) => void
21
- renderMentionItem?: (data: any) => string | HTMLElement
22
- renderMentionText?: (data: any) => string | HTMLElement
23
- search?: (term: string) => Promise<any[]>
24
- searchKey: string
25
- select?: (data: any) => void
26
- target?: string
27
- }
28
-
29
- // @dynamic
30
- class Mention {
31
- private readonly options: MentionOption
32
- private readonly mentionListEL: HTMLUListElement
33
- private activeMentionIndex = 0
34
- private latestMentionList: any[]
35
- private latestMentionCharPos: number
36
- private latestCaretPos: number
37
- private searchTerm = ''
38
- private needInsertBr = true
39
- private readonly defaultOptions: MentionOption = {
40
- defaultLink: '#',
41
- target: '_blank',
42
- mentionChar: DEFAULT_MENTION_CHAR,
43
- maxHeight: 200,
44
- renderMentionItem(data: any) {
45
- let mentionItem = data.name || data.id
46
- if (this.itemKey) {
47
- mentionItem = data[this.itemKey]
48
- }
49
- const dom = document.createElement('SPAN')
50
- dom.textContent = mentionItem
51
- return dom
52
- },
53
- renderMentionText(data: any) {
54
- let mentionText = data.name || data.id
55
- if (this.itemKey) {
56
- mentionText = data[this.itemKey]
57
- }
58
- return `${mentionText}`
59
- },
60
- containerClass: 'ql-mention-list-container',
61
- listClass: 'ql-mention-list',
62
- listHideClass: 'ql-mention-list--hide',
63
- itemClass: 'ql-mention-item',
64
- itemActiveClass: 'ql-mention-item--active',
65
- itemKey: 'name',
66
- searchKey: 'name',
67
- dataAttributes: ['id'],
68
- select(_data: any) {},
69
- remove(_data: any) {},
70
- }
71
-
72
- static register() {
73
- Quill.register(MentionLink)
74
- }
75
-
76
- // @ts-ignore
77
- constructor(private quill: Quill, options: MentionOption) {
78
- if (!options.search) {
79
- console.warn('please provide a search function!')
80
- return
81
- }
82
-
83
- this.options = Object.assign(this.defaultOptions, options)
84
- const container = document.createElement('div')
85
- container.classList.add('ql-mention-list-container')
86
- if (this.options.containerClass !== 'ql-mention-list-container') {
87
- container.classList.add(this.options.containerClass)
88
- }
89
- this.mentionListEL = document.createElement('ul')
90
- this.mentionListEL.classList.add(this.options.listClass, this.options.listHideClass)
91
- this.mentionListEL.style.cssText += `
92
- max-height: ${this.options.maxHeight}px;
93
- `
94
-
95
- quill.on(Quill.events.TEXT_CHANGE, this.handleTextChange)
96
- quill.keyboard.addBinding({ key: 'ArrowUp' }, this.handleArrowUpKey)
97
- quill.keyboard.addBinding({ key: 'ArrowDown' }, this.handleArrowDownKey)
98
- quill.keyboard.addBinding({ key: 'Enter' }, this.handleEnterKey)
99
- quill.keyboard.addBinding({ key: 'Tab' }, this.handleEnterKey)
100
- quill.keyboard.addBinding({ key: 'Escape' }, this.handleEscapeKey)
101
- quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop())
102
- quill.keyboard.bindings.Tab.unshift(quill.keyboard.bindings.Tab.pop())
103
- quill.keyboard.bindings.Escape.unshift(quill.keyboard.bindings.Escape.pop())
104
-
105
- const customKeyboardEnter = {
106
- key: 'Enter',
107
- shiftKey: null,
108
- handler: (range, context) => {
109
- const lineFormats = Object.keys(context.format).reduce(
110
- (formats, format) => {
111
- if (
112
- this.quill.scroll.query(format, Scope.BLOCK)
113
- && !Array.isArray(context.format[format])
114
- ) {
115
- formats[format] = context.format[format]
116
- }
117
- return formats
118
- },
119
- {},
120
- )
121
-
122
- // fix: 解决@提醒之后插入多余空行和光标位置不对的问题
123
- let selectionIndex = range.index - this.searchTerm.length
124
- let delta = new Delta()
125
- .retain(range.index)
126
- .delete(range.length)
127
- if (this.needInsertBr) {
128
- delta = delta.insert('\n', lineFormats)
129
- selectionIndex = range.index + 1
130
- }
131
-
132
- this.quill.updateContents(delta, Quill.sources.USER)
133
- this.quill.setSelection(selectionIndex, Quill.sources.SILENT)
134
- this.quill.focus()
135
-
136
- Object.keys(context.format).forEach((name) => {
137
- if (!isNullOrUndefined(lineFormats[name])) return
138
- if (Array.isArray(context.format[name])) return
139
- if (name === 'code' || name === 'link') return
140
- this.quill.format(name, context.format[name], Quill.sources.USER)
141
- })
142
-
143
- this.needInsertBr = true // 标记是否是输入@提醒的Enter
144
- },
145
- }
146
-
147
- // 用自定义的Enter替换内置的Enter
148
- quill.keyboard.bindings.Enter = quill.keyboard.bindings.Enter.map((item) => {
149
- const buildinKeyboardEnter = item.format === undefined && item.shiftKey === null
150
- if (buildinKeyboardEnter) {
151
- return customKeyboardEnter
152
- }
153
- else {
154
- return item
155
- }
156
- })
157
-
158
- this.on('click', this.handleMouseClick)
159
- this.on('mouseover', this.handleMouseEnter)
160
- quill.emitter.on(ON_MENTION_LINK_REMOVE, async ({ mention, name }) => {
161
- const [result] = (mention && [mention]) || (await this.options.search(name))
162
- this.options.remove(result)
163
- })
164
- container.appendChild(this.mentionListEL)
165
- quill.container.parentElement.insertBefore(container, quill.container)
166
- }
167
-
168
- on(eventName, callback) {
169
- this.mentionListEL.addEventListener(eventName, (evt) => {
170
- let
171
- target = evt.target
172
- let targetItemEL
173
-
174
- while (this.mentionListEL.contains(target) && target !== this.mentionListEL) {
175
- if (target.classList.contains(this.options.itemClass)) {
176
- targetItemEL = target
177
- }
178
- target = target.parentElement
179
- }
180
-
181
- if (targetItemEL) {
182
- callback.call(this, targetItemEL, this.getMentionItemIndex(targetItemEL))
183
- }
184
- })
185
- }
186
-
187
- getMentionItemIndex(itemEl: Element) {
188
- return [].reduce.call(this.mentionListEL.children, (index, item, idx) => item === itemEl ? idx : index, -1)
189
- }
190
-
191
- handleTextChange = (_delta, _oldDelta, source) => {
192
- // defer handler to make sure that we can get correct quill selection range.
193
- setTimeout(() => {
194
- if (Quill.sources.USER === source) {
195
- const range = this.quill.getSelection()
196
- if (!range) {
197
- return
198
- }
199
-
200
- const caretPos = this.latestCaretPos = range.index
201
- // beforeCaretText的计算有问题,没有把图片内容和@提醒内容的非字符内容算进去
202
- const content = this.quill.getContents()
203
- const beforeCaretText = content.reduce((newText, op) => {
204
- if (typeof op.insert === 'string') {
205
- return (newText += op.insert)
206
- }
207
- else {
208
- return (newText += ' ') // 将图片内容和@提醒内容的非字符内容置为' ',算一个位置
209
- }
210
- }, '')
211
- const mentionCharPos = beforeCaretText.lastIndexOf(this.options.mentionChar)
212
-
213
- if (mentionCharPos > -1) {
214
- const searchTerm = beforeCaretText.substring(mentionCharPos + this.options.mentionChar.length, caretPos)
215
- this.searchTerm = searchTerm
216
- if (!''.startsWith.call(searchTerm, ' ')) {
217
- this.latestMentionCharPos = mentionCharPos
218
- this.searchMentionListByTerm(searchTerm)
219
- }
220
- else {
221
- this.hideMentionList()
222
- }
223
- }
224
- else {
225
- this.hideMentionList()
226
- }
227
- }
228
- })
229
- }
230
-
231
- handleMouseClick(_itemEl: HTMLLIElement, index: number) {
232
- this.selectMentionItem(index, true)
233
- this.quill.focus()
234
- }
235
-
236
- handleMouseEnter(_itemEl: HTMLLIElement, index: number) {
237
- this.activeMentionIndex = index
238
- this.highlightMentionItem(index)
239
- }
240
-
241
- handleArrowUpKey = () => {
242
- if (this.isOpen()) {
243
- this.activeMentionIndex
244
- = (this.activeMentionIndex + this.latestMentionList.length - 1) % this.latestMentionList.length
245
- this.highlightMentionItem(this.activeMentionIndex)
246
- return false
247
- }
248
- return true
249
- }
250
-
251
- handleArrowDownKey = () => {
252
- if (this.isOpen()) {
253
- this.activeMentionIndex = (this.activeMentionIndex + 1) % this.latestMentionList.length
254
- this.highlightMentionItem(this.activeMentionIndex)
255
- return false
256
- }
257
- return true
258
- }
259
-
260
- handleEnterKey = () => {
261
- if (this.isOpen()) {
262
- this.selectMentionItem()
263
- this.needInsertBr = false
264
- }
265
- return true
266
- }
267
-
268
- handleEscapeKey = () => {
269
- if (this.isOpen()) {
270
- this.hideMentionList()
271
- return false
272
- }
273
- return true
274
- }
275
-
276
- getActiveMentionItem() {
277
- return this.mentionListEL.querySelector(`.${this.options.itemActiveClass}`)
278
- }
279
-
280
- isOpen() {
281
- return !this.mentionListEL.classList.contains(this.options.listHideClass)
282
- }
283
-
284
- async searchMentionListByTerm(term: string) {
285
- const mentionList = await this.options.search(term)
286
- this.latestMentionList = mentionList
287
- if (!mentionList || mentionList.length === 0) {
288
- return this.hideMentionList()
289
- }
290
-
291
- this.showMentionList(mentionList)
292
- }
293
-
294
- showMentionList(mentionList: any[]) {
295
- if (!this.isOpen()) {
296
- this.mentionListEL.classList.remove(this.options.listHideClass)
297
- }
298
- this.activeMentionIndex = 0
299
- this.setMentionListPos()
300
- this.render(mentionList)
301
- }
302
-
303
- hideMentionList() {
304
- if (this.isOpen()) {
305
- this.activeMentionIndex = 0
306
- this.mentionListEL.classList.add(this.options.listHideClass)
307
- }
308
- }
309
-
310
- setMentionListPos() {
311
- const cursorIndex = this.quill.selection.savedRange.index
312
- const cursorBounds = this.quill.getBounds(cursorIndex)
313
- const { left, top } = cursorBounds
314
- const container = this.quill.container
315
- const hostElement = container.parentNode as HTMLDivElement
316
- const { left: editorLeft, top: editorTop } = container.getBoundingClientRect()
317
- const { left: hostElementLeft, top: hostElementTop } = hostElement.getBoundingClientRect()
318
- const relativeLeft = editorLeft - hostElementLeft
319
- const relativeTop = editorTop - hostElementTop
320
- const menuLeft = left + relativeLeft - 5
321
- const menuTop = top + relativeTop + 20
322
- this.mentionListEL.style.cssText += `
323
- left: ${menuLeft}px;
324
- top: ${menuTop}px;
325
- `
326
- }
327
-
328
- render(mentionList: any[]) {
329
- const wrapEl = document.createElement('div');
330
-
331
- [].forEach.call(mentionList, (mentionItem, index) => {
332
- const mentionItemEl = document.createElement('li')
333
- mentionItemEl.classList.add(this.options.itemClass)
334
- if (index === this.activeMentionIndex) {
335
- mentionItemEl.classList.add(this.options.itemActiveClass)
336
- }
337
- const renderResult = this.options.renderMentionItem(mentionItem)
338
- if (typeof renderResult === 'string') {
339
- mentionItemEl.insertAdjacentHTML('afterbegin', renderResult)
340
- }
341
- else {
342
- mentionItemEl.insertAdjacentElement('afterbegin', renderResult)
343
- }
344
- wrapEl.appendChild(mentionItemEl)
345
- })
346
-
347
- this.mentionListEL.innerHTML = wrapEl.innerHTML
348
- }
349
-
350
- highlightMentionItem(index: number) {
351
- const oldActiveItem = this.getActiveMentionItem()
352
- if (oldActiveItem) {
353
- oldActiveItem.classList.remove(this.options.itemActiveClass)
354
- }
355
-
356
- const newActiveItem = this.mentionListEL.querySelector(`.${this.options.itemClass}:nth-of-type(${index + 1})`)
357
- if (newActiveItem) {
358
- newActiveItem.classList.add(this.options.itemActiveClass)
359
- this.scrollIntoView(newActiveItem)
360
- }
361
- }
362
-
363
- scrollIntoView(node: Element): void {
364
- const nodeAsAny: any = node
365
- if (nodeAsAny.scrollIntoViewIfNeeded) {
366
- nodeAsAny.scrollIntoViewIfNeeded(false)
367
- return
368
- }
369
- if (node.scrollIntoView) {
370
- node.scrollIntoView(false)
371
- }
372
- }
373
-
374
- selectMentionItem(index = this.activeMentionIndex, isClick?: boolean) {
375
- const activeMentionItem = this.latestMentionList[index]
376
- this.insertMentionBlot(activeMentionItem, isClick)
377
- this.options.select(activeMentionItem)
378
- this.hideMentionList()
379
- }
380
-
381
- insertMentionBlot(activeMentionItem: any, isClick?: boolean) {
382
- const mention = this.options.renderMentionText(activeMentionItem)
383
- const delta = new Delta()
384
- .retain(this.latestMentionCharPos)
385
- .delete(this.latestCaretPos - this.latestMentionCharPos)
386
- .insert({
387
- [MentionLink.blotName]: {
388
- char: this.options.mentionChar,
389
- text: mention,
390
- mention: activeMentionItem,
391
- link: this.options.defaultLink,
392
- target: this.options.target,
393
- searchKey: this.options.searchKey,
394
- },
395
- })
396
- if (isClick) {
397
- this.quill.updateContents(delta, Quill.sources.USER)
398
- }
399
- else {
400
- this.quill.updateContents(delta, Quill.sources.API)
401
- }
402
- this.quill.setSelection(this.latestMentionCharPos + 1, Quill.sources.API)
403
- }
404
- }
405
-
406
- export { Mention as default }
@@ -1,51 +0,0 @@
1
- import Quill from 'quill'
2
- import { DEFAULT_MENTION_CHAR, MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'
3
-
4
- const Embed = Quill.imports['blots/embed']
5
-
6
- // @dynamic
7
- class MentionLink extends Embed {
8
- static blotName: string
9
- static tagName: string
10
- static className: string
11
- scroll: any
12
- mentionData: any
13
-
14
- static create(data) {
15
- const node = super.create(data)
16
- node.dataset.mentionId = data.name || (data.mention && data.mention[data.searchKey || 'name']) || ''
17
- node.setAttribute('title', data.text)
18
- node.setAttribute(MENTION_CHAR, data.char)
19
- node.textContent = data.char + data.text
20
- return node
21
- }
22
-
23
- static value(domNode) {
24
- const
25
- char = domNode.getAttribute(MENTION_CHAR) || DEFAULT_MENTION_CHAR
26
- const text = domNode.getAttribute('title')
27
- const name = domNode.dataset.mentionId
28
- return { char, text, name }
29
- }
30
-
31
- constructor(scroll, domNode, data) {
32
- super(scroll, domNode, data)
33
- this.mentionData = data
34
- }
35
-
36
- value() {
37
- // fix: 将@提醒内容加入到 Delta 里,以解决输入空格,@提醒内容被删除的问题
38
- // return ' ';
39
- return super.value()
40
- }
41
-
42
- remove() {
43
- this.scroll.emitter.emit(ON_MENTION_LINK_REMOVE, this.mentionData)
44
- return super.remove()
45
- }
46
- }
47
-
48
- MentionLink.blotName = 'mention'
49
- MentionLink.tagName = 'span'
50
- MentionLink.className = 'ql-mention-link'
51
- export { MentionLink as default }
@@ -1,3 +0,0 @@
1
- export const ON_MENTION_LINK_REMOVE = 'mention-link/remove'
2
- export const MENTION_CHAR = 'mentionChar'
3
- export const DEFAULT_MENTION_CHAR = '@'
@@ -1,100 +0,0 @@
1
- import type Quill from 'quill'
2
-
3
- interface QuickMenuOptions {
4
- container: string
5
- component: any
6
- }
7
-
8
- class QuickMenu {
9
- private container: HTMLDivElement
10
- private hostElement: HTMLDivElement
11
- private quickMenu: HTMLDivElement
12
- private quickMenuContainer: HTMLDivElement
13
-
14
- // @ts-ignore
15
- constructor(private quill: Quill, private options: QuickMenuOptions) {
16
- this.quill = quill
17
- this.options = options
18
- this.container = this.quill.container
19
- this.hostElement = this.container.parentNode as HTMLDivElement
20
- this.quickMenu = this.hostElement.querySelector('.quick-menu')
21
- this.quickMenuContainer = this.quickMenu.querySelector('.quick-menu-container')
22
- quill.keyboard.addBinding({ key: '/' }, this.handleSlashKeyDown)
23
- quill.keyboard.addBinding({ key: 'ArrowUp' }, this.handleArrowUpKey)
24
- quill.keyboard.addBinding({ key: 'ArrowDown' }, this.handleArrowDownKey)
25
- quill.keyboard.addBinding({ key: 'Enter' }, this.handleEnterKey)
26
- quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop())
27
- document.body.addEventListener('click', this.hideQuickMenu.bind(this))
28
- }
29
-
30
- handleSlashKeyDown = (_range, context) => {
31
- const index = this.quill.selection.savedRange.index
32
- this.quill.insertText(index, '/')
33
-
34
- // 一行的第一个字符为 '/',且没有格式化,则触发快捷菜单
35
- const shouldTriggerQuickMenu = context.prefix === '' && Object.keys(context.format).length === 0
36
- if (shouldTriggerQuickMenu) {
37
- const cursorIndex = this.quill.selection.savedRange.index
38
- const cursorBounds = this.quill.getBounds(cursorIndex)
39
- const { left, top } = cursorBounds
40
- const { left: editorLeft, top: editorTop } = this.container.getBoundingClientRect()
41
- const { left: hostElementLeft, top: hostElementTop } = this.hostElement.getBoundingClientRect()
42
- const relativeLeft = editorLeft - hostElementLeft
43
- const relativeTop = editorTop - hostElementTop
44
- const menuLeft = left + relativeLeft - 5
45
- const menuTop = top + relativeTop + 20
46
-
47
- this.quickMenu.style.display = 'block'
48
- const zIndex = this.quill.options.modules.quickmenu.zIndex
49
- let style = `left:${menuLeft}px;top:${menuTop}px;`
50
- if (zIndex || zIndex === 0) {
51
- style += `z-index:${zIndex}`
52
- }
53
- this.quickMenuContainer.setAttribute('style', style)
54
- this.options.component.activeIndex = 0
55
- }
56
- else {
57
- this.quickMenu.style.display = 'none'
58
- }
59
- }
60
-
61
- private isOpen() {
62
- return this.quickMenuContainer.style.display !== 'none' && this.quickMenu.style.display === 'block'
63
- }
64
-
65
- hideQuickMenu = (event) => {
66
- if (this.quickMenuContainer && !this.quickMenuContainer.contains(event.target)) {
67
- this.quickMenuContainer.style.display = 'none'
68
- }
69
- }
70
-
71
- handleArrowUpKey = (_range, _context) => {
72
- if (this.isOpen()) {
73
- const index = this.options.component.activeIndex
74
- const total = this.options.component.quickMenus.length
75
- this.options.component.activeIndex = (index + total - 1) % total
76
- return false
77
- }
78
- return true
79
- }
80
-
81
- handleArrowDownKey = (_range, _context) => {
82
- if (this.isOpen()) {
83
- const index = this.options.component.activeIndex
84
- const total = this.options.component.quickMenus.length
85
- this.options.component.activeIndex = (index + 1) % total
86
- return false
87
- }
88
- return true
89
- }
90
-
91
- handleEnterKey = (_range, _context) => {
92
- if (this.isOpen()) {
93
- this.options.component.onEnter()
94
- return false
95
- }
96
- return true
97
- }
98
- }
99
-
100
- export default QuickMenu