@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,584 +0,0 @@
1
- import Quill from 'quill'
2
- import { LANG_CONF } from '../../config/editor.config'
3
- import {
4
- ERROR_LIMIT,
5
- MENU_ITEM_HEIGHT,
6
- MENU_MIN_HEIGHT,
7
- MENU_WIDTH,
8
- OPERATE_MENU_COLORPICKER_CLASS,
9
-
10
- OPERATE_MENU_COLORPICKER_ITEM_CLASS,
11
- OPERATE_MENU_DIVIDING_CLASS,
12
- OPERATE_MENU_ITEM_CLASS,
13
- OPERATE_MENU_SUBTITLE_CLASS,
14
- } from '../table-config'
15
-
16
- import { arrayFrom, css, elementRemove, getRelativeRect } from '../utils'
17
-
18
- const MENU_ITEMS_DEFAULT = {
19
- copyCells: {
20
- text: 'Copy Cells',
21
- handler() {
22
- this.onCopy('copy')
23
- },
24
- },
25
- copyTable: {
26
- text: 'Copy Table',
27
- handler() {
28
- this.tableColumnTool.destroy()
29
- this.tableScrollBar.destroy()
30
- this.tableSelection.clearSelection()
31
- const dom = this.table.cloneNode(true)
32
- const trArr = dom.querySelectorAll('tr[data-row]')
33
- trArr.forEach(tr => tr.removeAttribute('data-row'))
34
- dom.style.position = 'fixed'
35
- dom.style.top = 0
36
- dom.style.left = 0
37
- dom.style.clip = 'rect(0,0,0,0)'
38
- document.body.appendChild(dom)
39
- this.setCopyRange(dom)
40
- document.execCommand('copy')
41
- dom.remove()
42
- },
43
- },
44
- cutCells: {
45
- text: 'Cut Cells',
46
- handler() {
47
- this.onCopy('cut')
48
- },
49
- },
50
- emptyCells: {
51
- text: 'Empty Cells',
52
- handler() {
53
- const tableContainer = Quill.find(this.table)
54
- const { selectedTds } = this.tableSelection
55
- tableContainer.emptyCells(selectedTds)
56
- },
57
- },
58
- insertColumnRight: {
59
- text: 'Insert Column After',
60
- handler() {
61
- const tableContainer = Quill.find(this.table)
62
- const colIndex = getColToolCellIndexByBoundary(
63
- this.columnToolCells,
64
- this.boundary,
65
- (cellRect, boundary) => {
66
- return Math.abs(cellRect.x + cellRect.width - boundary.x1) <= ERROR_LIMIT
67
- },
68
- this.quill.root.parentNode,
69
- )
70
-
71
- const newColumn = tableContainer.insertColumn(this.boundary, colIndex, true, this.quill.root.parentNode)
72
-
73
- this.tableColumnTool.updateColToolCells()
74
- this.quill.update(Quill.sources.USER)
75
- // fix: the scroll bar will go to the top when insert row/column to the table
76
- // this.quill.setSelection(
77
- // this.quill.getIndex(newColumn[0]),
78
- // 0,
79
- // Quill.sources.SILENT
80
- // )
81
- this.tableSelection.setSelection(
82
- newColumn[0].domNode.getBoundingClientRect(),
83
- newColumn[0].domNode.getBoundingClientRect(),
84
- )
85
-
86
- setTimeout(() => this.tableScrollBar.updateScrollBar())
87
- },
88
- },
89
-
90
- insertColumnLeft: {
91
- text: 'Insert Column Before',
92
- handler() {
93
- const tableContainer = Quill.find(this.table)
94
- const colIndex = getColToolCellIndexByBoundary(
95
- this.columnToolCells,
96
- this.boundary,
97
- (cellRect, boundary) => {
98
- return Math.abs(cellRect.x - boundary.x) <= ERROR_LIMIT
99
- },
100
- this.quill.root.parentNode,
101
- )
102
-
103
- const newColumn = tableContainer.insertColumn(this.boundary, colIndex, false, this.quill.root.parentNode)
104
-
105
- this.tableColumnTool.updateColToolCells()
106
- this.quill.update(Quill.sources.USER)
107
- // this.quill.setSelection(
108
- // this.quill.getIndex(newColumn[0]),
109
- // 0,
110
- // Quill.sources.SILENT
111
- // )
112
- this.tableSelection.setSelection(
113
- newColumn[0].domNode.getBoundingClientRect(),
114
- newColumn[0].domNode.getBoundingClientRect(),
115
- )
116
-
117
- setTimeout(() => this.tableScrollBar.updateScrollBar())
118
- },
119
- },
120
-
121
- insertRowUp: {
122
- text: 'Insert Row Above',
123
- handler() {
124
- const tableContainer = Quill.find(this.table)
125
- const affectedCells = tableContainer.insertRow(this.boundary, false, this.quill.root.parentNode)
126
-
127
- this.tableColumnTool.updateRowToolCells()
128
- this.quill.update(Quill.sources.USER)
129
- // this.quill.setSelection(
130
- // this.quill.getIndex(affectedCells[0]),
131
- // 0,
132
- // Quill.sources.SILENT
133
- // )
134
- this.tableSelection.setSelection(
135
- affectedCells[0].domNode.getBoundingClientRect(),
136
- affectedCells[0].domNode.getBoundingClientRect(),
137
- )
138
-
139
- setTimeout(() => this.tableScrollBar.resetTableHeight(this.table))
140
- },
141
- },
142
-
143
- insertRowDown: {
144
- text: 'Insert Row Below',
145
- handler() {
146
- const tableContainer = Quill.find(this.table)
147
- const affectedCells = tableContainer.insertRow(this.boundary, true, this.quill.root.parentNode)
148
-
149
- this.tableColumnTool.updateRowToolCells()
150
- this.quill.update(Quill.sources.USER)
151
- // this.quill.setSelection(
152
- // this.quill.getIndex(affectedCells[0]),
153
- // 0,
154
- // Quill.sources.SILENT
155
- // )
156
- this.tableSelection.setSelection(
157
- affectedCells[0].domNode.getBoundingClientRect(),
158
- affectedCells[0].domNode.getBoundingClientRect(),
159
- )
160
-
161
- setTimeout(() => this.tableScrollBar.resetTableHeight(this.table))
162
- },
163
- },
164
-
165
- mergeCells: {
166
- text: 'Merge Cells',
167
- handler() {
168
- const tableContainer = Quill.find(this.table)
169
- // compute merged Cell rowspan, equal to length of selected rows
170
- const rowspan = tableContainer.rows().reduce((sum, row) => {
171
- const rowRect = getRelativeRect(row.domNode.getBoundingClientRect(), this.quill.root.parentNode)
172
- if (
173
- rowRect.y > this.boundary.y - ERROR_LIMIT
174
- && rowRect.y + rowRect.height < this.boundary.y + this.boundary.height + ERROR_LIMIT
175
- ) {
176
- sum += 1
177
- }
178
- return sum
179
- }, 0)
180
-
181
- // compute merged cell colspan, equal to length of selected cols
182
- const colspan = this.columnToolCells.reduce((sum, cell) => {
183
- const cellRect = getRelativeRect(cell.getBoundingClientRect(), this.quill.root.parentNode)
184
- if (
185
- cellRect.x > this.boundary.x - ERROR_LIMIT
186
- && cellRect.x + cellRect.width < this.boundary.x + this.boundary.width + ERROR_LIMIT
187
- ) {
188
- sum += 1
189
- }
190
- return sum
191
- }, 0)
192
-
193
- const mergedCell = tableContainer.mergeCells(
194
- this.boundary,
195
- this.selectedTds,
196
- rowspan,
197
- colspan,
198
- this.quill.root.parentNode,
199
- )
200
- this.quill.update(Quill.sources.USER)
201
- this.tableSelection.setSelection(
202
- mergedCell.domNode.getBoundingClientRect(),
203
- mergedCell.domNode.getBoundingClientRect(),
204
- )
205
- },
206
- },
207
-
208
- unmergeCells: {
209
- text: 'Split Cells',
210
- handler() {
211
- const tableContainer = Quill.find(this.table)
212
- tableContainer.unmergeCells(this.selectedTds, this.quill.root.parentNode)
213
- this.quill.update(Quill.sources.USER)
214
- this.tableSelection.clearSelection()
215
- },
216
- },
217
-
218
- deleteColumn: {
219
- text: 'Delete Columns',
220
- handler() {
221
- const tableContainer = Quill.find(this.table)
222
- const colIndexes = getColToolCellIndexesByBoundary(
223
- this.columnToolCells,
224
- this.boundary,
225
- (cellRect, boundary) => {
226
- return cellRect.x + ERROR_LIMIT > boundary.x && cellRect.x + cellRect.width - ERROR_LIMIT < boundary.x1
227
- },
228
- this.quill.root.parentNode,
229
- )
230
-
231
- const isDeleteTable = tableContainer.deleteColumns(this.boundary, colIndexes, this.quill.root.parentNode)
232
- if (!isDeleteTable) {
233
- this.tableColumnTool.updateColToolCells()
234
- this.quill.update(Quill.sources.USER)
235
- this.tableSelection.clearSelection()
236
- }
237
-
238
- setTimeout(() => this.tableScrollBar.updateScrollBar())
239
- },
240
- },
241
-
242
- deleteRow: {
243
- text: 'Delete Rows',
244
- handler() {
245
- const tableContainer = Quill.find(this.table)
246
- const isDeleteTable = tableContainer.deleteRow(this.boundary, this.quill.root.parentNode)
247
- if (!isDeleteTable) {
248
- this.tableColumnTool.updateRowToolCells()
249
- this.quill.update(Quill.sources.USER)
250
- this.tableSelection.clearSelection()
251
- }
252
- },
253
- },
254
-
255
- deleteTable: {
256
- text: 'Remove Table',
257
- handler() {
258
- const betterTableModule = this.quill.getModule('better-table')
259
- const tableContainer = Quill.find(this.table)
260
- betterTableModule.hideTableTools()
261
- tableContainer.remove()
262
- this.quill.update(Quill.sources.USER)
263
- // fix: 右键菜单删除表格后编辑器失焦
264
- this.quill.focus()
265
- },
266
- },
267
- }
268
- const DEFAULT_CELL_COLORS = ['white', 'red', 'yellow', 'blue']
269
- const NODE_EVENT_MAP = new WeakMap()
270
- const DEFAULT_COLOR_SUBTITLE = LANG_CONF.subTitleBgColor
271
- export default class TableOperationMenu {
272
- tableSelection: any
273
- table: any
274
- quill: any
275
- options: any
276
- menuItems: any
277
- tableColumnTool: any
278
- tableScrollBar: any
279
- boundary: any
280
- selectedTds: any
281
- destroyHandler: any
282
- columnToolCells: any
283
- colorSubTitle: any
284
- cellColors: any
285
- domNode: any
286
-
287
- constructor(params, quill, options) {
288
- const betterTableModule = quill.getModule('better-table')
289
- this.tableSelection = betterTableModule.tableSelection
290
- this.table = params.table
291
- this.quill = quill
292
- this.options = options
293
- this.menuItems = { ...MENU_ITEMS_DEFAULT, ...options.items }
294
- this.tableColumnTool = betterTableModule.columnTool
295
- // this.tableRowTool = betterTableModule.rowTool
296
- this.tableScrollBar = betterTableModule.tableScrollBar
297
- this.boundary = this.tableSelection.boundary
298
- this.selectedTds = this.tableSelection.selectedTds
299
- this.destroyHandler = this.destroy.bind(this)
300
- this.columnToolCells = this.tableColumnTool.colToolCells()
301
- this.colorSubTitle
302
- = options.color && options.color.text
303
- ? options.color.text
304
- : DEFAULT_COLOR_SUBTITLE
305
- this.cellColors
306
- = options.color && options.color.colors
307
- ? options.color.colors
308
- : DEFAULT_CELL_COLORS
309
-
310
- this.menuInitial(params)
311
- this.mount()
312
- document.addEventListener('click', this.destroyHandler, false)
313
- }
314
-
315
- mount() {
316
- this.quill.root.parentNode.appendChild(this.domNode)
317
- }
318
-
319
- destroy() {
320
- const menuItems = arrayFrom(
321
- this.domNode.querySelectorAll(`.${OPERATE_MENU_ITEM_CLASS}`),
322
- )
323
- const colorPickerItems = arrayFrom(
324
- this.domNode.querySelectorAll(`.${OPERATE_MENU_COLORPICKER_ITEM_CLASS}`),
325
- )
326
- const nodes = menuItems.concat(colorPickerItems)
327
-
328
- nodes.forEach((node) => {
329
- if (NODE_EVENT_MAP.has(node)) {
330
- const unregister = NODE_EVENT_MAP.get(node)
331
-
332
- if (unregister && typeof unregister === 'function') {
333
- unregister()
334
- }
335
- }
336
- })
337
-
338
- elementRemove(this.domNode)
339
- document.removeEventListener('mousedown', this.destroyHandler, false)
340
-
341
- return null
342
- }
343
-
344
- menuInitial({ cell, left, top }) {
345
- const rowspan = cell.getAttribute('rowspan')
346
- const colspan = cell.getAttribute('colspan')
347
- const winHeight = window.innerHeight || Math.max(document.documentElement.clientHeight, document.body.clientHeight)
348
- const num = Object.keys(this.menuItems) || []
349
- const menuHeight = MENU_ITEM_HEIGHT * num.length || MENU_MIN_HEIGHT
350
- const transformOffset = checkAndGetViewPointChange(this.quill.root.parentNode, left, top)
351
- const leftPos = left - transformOffset.offsetX
352
- const topPos = top - transformOffset.offsetY
353
- const cssContent = {
354
- 'left': `${leftPos}px`,
355
- 'top': `${topPos}px`,
356
- 'min-height': `${MENU_MIN_HEIGHT}px`,
357
- 'width': `${MENU_WIDTH}px`,
358
- }
359
-
360
- if (menuHeight + top > winHeight && menuHeight < winHeight) {
361
- delete cssContent.top
362
- cssContent.bottom = '10px'
363
- }
364
-
365
- this.domNode = document.createElement('div')
366
- this.domNode.classList.add('qlbt-operation-menu')
367
- css(this.domNode, cssContent)
368
-
369
- for (const name in this.menuItems) {
370
- if (this.menuItems[name]) {
371
- const item = { ...MENU_ITEMS_DEFAULT[name], ...this.menuItems[name] }
372
- const dom = this.menuItemCreator(item)
373
- if (
374
- (name === 'mergeCells' && this.tableSelection.selectedTds.length === 1)
375
- || (name === 'unmergeCells' && rowspan === 1 && colspan === 1)
376
- ) {
377
- dom.classList.add('qlbt-operation-menu-disabled')
378
- }
379
- else {
380
- dom.addEventListener('mouseup', item.handler.bind(this), false)
381
- }
382
- this.domNode.appendChild(dom)
383
- }
384
- }
385
-
386
- // if colors option is false, disabled bg color
387
- if (this.options.color && this.options.color !== false) {
388
- this.domNode.appendChild(dividingCreator())
389
- this.domNode.appendChild(subTitleCreator(this.colorSubTitle))
390
- this.domNode.appendChild(this.colorsItemCreator(this.cellColors))
391
- }
392
-
393
- // create dividing line
394
- function dividingCreator() {
395
- const dividing = document.createElement('div')
396
- dividing.classList.add(OPERATE_MENU_DIVIDING_CLASS)
397
- return dividing
398
- }
399
-
400
- // create subtitle for menu
401
- function subTitleCreator(title) {
402
- const subTitle = document.createElement('div')
403
- subTitle.classList.add(OPERATE_MENU_SUBTITLE_CLASS)
404
- subTitle.textContent = title
405
- return subTitle
406
- }
407
- }
408
-
409
- colorsItemCreator(colors) {
410
- const self = this
411
- const node = document.createElement('div')
412
- node.classList.add(OPERATE_MENU_COLORPICKER_CLASS)
413
-
414
- colors.forEach((color) => {
415
- const colorBox = colorBoxCreator(color)
416
- node.appendChild(colorBox)
417
- })
418
-
419
- function colorBoxCreator(color) {
420
- const box = document.createElement('div')
421
- box.classList.add(OPERATE_MENU_COLORPICKER_ITEM_CLASS)
422
- box.setAttribute('data-color', color)
423
- box.style.backgroundColor = color
424
-
425
- const clickHandler = function () {
426
- const selectedTds = self.tableSelection.selectedTds
427
- if (selectedTds && selectedTds.length > 0) {
428
- selectedTds.forEach((tableCell) => {
429
- tableCell.domNode.children[0].setAttribute('data-parent-bg', color)
430
- tableCell.format('cell-bg', color)
431
- })
432
- }
433
- }
434
-
435
- box.addEventListener('click', clickHandler, false)
436
-
437
- NODE_EVENT_MAP.set(box, () => {
438
- box.removeEventListener('click', clickHandler, false)
439
- })
440
-
441
- return box
442
- }
443
-
444
- return node
445
- }
446
-
447
- menuItemCreator({ text }) {
448
- const node = document.createElement('div')
449
- node.classList.add('qlbt-operation-menu-item')
450
- node.textContent = text
451
- // node.addEventListener('click', handler.bind(this), false)
452
- return node
453
- }
454
-
455
- onCopy(operation) {
456
- const { selectedTds } = this.tableSelection
457
- const virtualTable = this.createVirtualTable(selectedTds, operation)
458
- document.body.appendChild(virtualTable)
459
- this.setCopyRange(virtualTable)
460
- this.tableSelection.preSelectedTable = virtualTable
461
- this.tableSelection.preSelectedTds = selectedTds
462
- document.execCommand('copy')
463
- virtualTable.remove()
464
- if (operation === 'cut') {
465
- const tableContainer = Quill.find(this.table)
466
- tableContainer.emptyCells(selectedTds)
467
- }
468
- }
469
-
470
- createVirtualTable(selectedTds, _operation) {
471
- const virtualTable: any = document.createElement('table')
472
- virtualTable.style.position = 'fixed'
473
- virtualTable.style.top = 0
474
- virtualTable.style.left = 0
475
- virtualTable.style.clip = 'rect(0,0,0,0)'
476
- let preParentSign = ''
477
- let virtualTr = null
478
- selectedTds.forEach((selectedCell) => {
479
- const { domNode, parent } = selectedCell
480
- const currentParentSign = parent.domNode.getAttribute('data-row')
481
- const rowspan = domNode.firstChild.dataset.rowspan
482
- const colspan = domNode.firstChild.dataset.colspan
483
- const row = domNode.firstChild.dataset.row
484
- const cell = domNode.firstChild.dataset.cell
485
-
486
- selectedCell.dataCell = cell
487
- selectedCell.dataRow = row
488
- selectedCell.dataColSpan = colspan
489
- selectedCell.dataRowSpan = rowspan
490
-
491
- if (currentParentSign !== preParentSign) {
492
- if (preParentSign !== '') {
493
- virtualTable.appendChild(virtualTr)
494
- }
495
- virtualTr = document.createElement('tr')
496
- preParentSign = currentParentSign
497
- }
498
-
499
- const domNodeWidth = domNode.offsetWidth
500
- const cloneNode = domNode.cloneNode(true)
501
- cloneNode.setAttribute('width', domNodeWidth)
502
-
503
- virtualTr.appendChild(cloneNode)
504
- })
505
- virtualTable.appendChild(virtualTr)
506
- return virtualTable
507
- }
508
-
509
- setCopyRange(selectedNodes) {
510
- const range = document.createRange()
511
- const windowSelectionRange = window.getSelection()
512
- range.selectNodeContents(selectedNodes)
513
- windowSelectionRange.removeAllRanges()
514
- windowSelectionRange.addRange(range)
515
- }
516
-
517
- groupTableCell(selectedTds) {
518
- const rowGroup = []
519
- let dataRow = ''
520
- let preDataRow = ''
521
- let index = 0
522
- selectedTds.forEach((tableCell) => {
523
- dataRow = tableCell.parent.domNode.getAttribute('data-row')
524
-
525
- if (dataRow !== preDataRow) {
526
- if (preDataRow !== '') {
527
- index++
528
- }
529
- rowGroup[index] = []
530
- preDataRow = dataRow
531
- }
532
-
533
- rowGroup[index].push(tableCell)
534
- })
535
- return rowGroup
536
- }
537
- }
538
-
539
- function getColToolCellIndexByBoundary(cells, boundary, conditionFn, container) {
540
- return cells.reduce((findIndex, cell) => {
541
- const cellRect = getRelativeRect(cell.getBoundingClientRect(), container)
542
- if (conditionFn(cellRect, boundary)) {
543
- findIndex = cells.indexOf(cell)
544
- }
545
- return findIndex
546
- }, false)
547
- }
548
-
549
- function getColToolCellIndexesByBoundary(cells, boundary, conditionFn, container) {
550
- return cells.reduce((findIndexes, cell) => {
551
- const cellRect = getRelativeRect(cell.getBoundingClientRect(), container)
552
- if (conditionFn(cellRect, boundary)) {
553
- findIndexes.push(cells.indexOf(cell))
554
- }
555
- return findIndexes
556
- }, [])
557
- }
558
-
559
- function checkAndGetViewPointChange(parentContainer: HTMLElement, left: number, top: number) {
560
- if (!parentContainer) {
561
- return {
562
- offsetX: 0,
563
- offsetY: 0,
564
- }
565
- }
566
- // 模拟一个元素测预测位置和最终位置是否符合,如果不符合则是有transform等造成的偏移
567
- const testEl = document.createElement('div')
568
- css(testEl, {
569
- opacity: '0',
570
- position: 'fixed',
571
- left: `${left}px`,
572
- top: `${top}px`,
573
- width: '1px',
574
- height: '1px',
575
- zIndex: '-999999',
576
- })
577
- parentContainer.appendChild(testEl)
578
- const testElPosition = testEl.getBoundingClientRect()
579
- parentContainer.removeChild(testEl)
580
- return {
581
- offsetX: testElPosition.left - left,
582
- offsetY: testElPosition.top - top,
583
- }
584
- }