@opentiny/fluent-editor 4.0.0-alpha.1 → 4.0.0-alpha.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 (471) hide show
  1. package/README.md +7 -24
  2. package/es/config/editor.utils.es.js +0 -2
  3. package/es/config/editor.utils.es.js.map +1 -1
  4. package/es/config/index.es.js +2 -2
  5. package/es/config/index.es.js.map +1 -1
  6. package/es/config/types/index.es.js +0 -20
  7. package/es/config/types/index.es.js.map +1 -1
  8. package/es/core/fluent-editor.es.js +4 -1
  9. package/es/core/fluent-editor.es.js.map +1 -1
  10. package/es/fluent-editor.es.js +26 -19
  11. package/es/fluent-editor.es.js.map +1 -1
  12. package/es/formats/emoji.es.js +14 -0
  13. package/es/formats/emoji.es.js.map +1 -0
  14. package/es/formats/index.es.js +11 -0
  15. package/es/formats/index.es.js.map +1 -0
  16. package/es/formats/soft-break.es.js +12 -5
  17. package/es/formats/soft-break.es.js.map +1 -1
  18. package/es/formats/strike.es.js +8 -5
  19. package/es/formats/strike.es.js.map +1 -1
  20. package/es/formats/video.es.js +14 -10
  21. package/es/formats/video.es.js.map +1 -1
  22. package/es/index.es.js +90 -31
  23. package/es/index.es.js.map +1 -1
  24. package/es/modules/ai/index.es.js +238 -0
  25. package/es/modules/ai/index.es.js.map +1 -0
  26. package/es/modules/counter.es.js +8 -3
  27. package/es/modules/counter.es.js.map +1 -1
  28. package/es/modules/custom-clipboard.es.js +20 -22
  29. package/es/modules/custom-clipboard.es.js.map +1 -1
  30. package/es/modules/custom-image/actions/action.es.js +19 -0
  31. package/es/modules/custom-image/actions/action.es.js.map +1 -0
  32. package/es/modules/custom-image/actions/{CustomResizeAction.es.js → custom-resize-action.es.js} +24 -11
  33. package/es/modules/custom-image/actions/{CustomResizeAction.es.js.map → custom-resize-action.es.js.map} +1 -1
  34. package/es/modules/custom-image/actions/{DeleteAction.es.js → delete-action.es.js} +8 -5
  35. package/es/modules/custom-image/actions/delete-action.es.js.map +1 -0
  36. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js +137 -0
  37. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +1 -0
  38. package/es/modules/custom-image/actions/index.es.js +18 -0
  39. package/es/modules/custom-image/actions/index.es.js.map +1 -0
  40. package/es/modules/custom-image/actions/toolbar-action.es.js +33 -0
  41. package/es/modules/custom-image/actions/toolbar-action.es.js.map +1 -0
  42. package/es/modules/custom-image/actions/toolbar.es.js +110 -0
  43. package/es/modules/custom-image/actions/toolbar.es.js.map +1 -0
  44. package/es/modules/custom-image/{BlotFormatter.es.js → blot-formatter.es.js} +23 -49
  45. package/es/modules/custom-image/blot-formatter.es.js.map +1 -0
  46. package/es/modules/custom-image/image.es.js +31 -6
  47. package/es/modules/custom-image/image.es.js.map +1 -1
  48. package/es/modules/custom-image/index.es.js +9 -0
  49. package/es/modules/custom-image/index.es.js.map +1 -0
  50. package/es/modules/custom-image/options.es.js +85 -0
  51. package/es/modules/custom-image/options.es.js.map +1 -0
  52. package/es/modules/custom-image/specs/blot-spec.es.js +33 -0
  53. package/es/modules/custom-image/specs/blot-spec.es.js.map +1 -0
  54. package/es/modules/custom-image/specs/{CustomImageSpec.es.js → custom-image-spec.es.js} +13 -14
  55. package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -0
  56. package/es/modules/custom-image/specs/image-spec.es.js +32 -0
  57. package/es/modules/custom-image/specs/image-spec.es.js.map +1 -0
  58. package/es/modules/custom-image/specs/index.es.js +9 -0
  59. package/es/modules/custom-image/specs/index.es.js.map +1 -0
  60. package/es/modules/custom-uploader.es.js +6 -4
  61. package/es/modules/custom-uploader.es.js.map +1 -1
  62. package/es/modules/divider.es.js +8 -7
  63. package/es/modules/divider.es.js.map +1 -1
  64. package/es/modules/emoji.es.js +175 -0
  65. package/es/modules/emoji.es.js.map +1 -0
  66. package/es/modules/file/formats/file.es.js +10 -8
  67. package/es/modules/file/formats/file.es.js.map +1 -1
  68. package/es/modules/file/index.es.js +6 -28
  69. package/es/modules/file/index.es.js.map +1 -1
  70. package/es/modules/file/modules/file-bar.es.js +11 -3
  71. package/es/modules/file/modules/file-bar.es.js.map +1 -1
  72. package/es/modules/file/modules/file-module.es.js +35 -0
  73. package/es/modules/file/modules/file-module.es.js.map +1 -0
  74. package/es/modules/i18n.es.js +6 -3
  75. package/es/modules/i18n.es.js.map +1 -1
  76. package/es/modules/index.es.js +26 -0
  77. package/es/modules/index.es.js.map +1 -0
  78. package/es/modules/link/formats/link.es.js +14 -10
  79. package/es/modules/link/formats/link.es.js.map +1 -1
  80. package/es/modules/link/index.es.js +4 -12
  81. package/es/modules/link/index.es.js.map +1 -1
  82. package/es/modules/link/modules/tooltip.es.js +28 -19
  83. package/es/modules/link/modules/tooltip.es.js.map +1 -1
  84. package/es/modules/mathlive/formats.es.js +10 -7
  85. package/es/modules/mathlive/formats.es.js.map +1 -1
  86. package/es/modules/mathlive/index.es.js +6 -30
  87. package/es/modules/mathlive/index.es.js.map +1 -1
  88. package/es/modules/mathlive/module.es.js +40 -0
  89. package/es/modules/mathlive/module.es.js.map +1 -0
  90. package/es/modules/mathlive/tooltip.es.js +9 -5
  91. package/es/modules/mathlive/tooltip.es.js.map +1 -1
  92. package/es/modules/mention/index.es.js +7 -0
  93. package/es/modules/{emoji/emoji-list → mention}/index.es.js.map +1 -1
  94. package/es/modules/mention/{MentionLink.es.js → mention-link.es.js} +14 -6
  95. package/es/modules/mention/mention-link.es.js.map +1 -0
  96. package/es/modules/mention/{Mention.es.js → mention.es.js} +28 -20
  97. package/es/modules/mention/mention.es.js.map +1 -0
  98. package/es/modules/shortcut-key/index.es.js.map +1 -1
  99. package/es/modules/syntax.es.js +4 -0
  100. package/es/modules/syntax.es.js.map +1 -1
  101. package/es/modules/table-up/index.es.js +4 -0
  102. package/es/modules/table-up/index.es.js.map +1 -1
  103. package/es/modules/toolbar/better-picker.es.js +5 -0
  104. package/es/modules/toolbar/better-picker.es.js.map +1 -1
  105. package/es/modules/toolbar/better-toolbar.es.js +138 -0
  106. package/es/modules/toolbar/better-toolbar.es.js.map +1 -0
  107. package/es/modules/toolbar/index.es.js +5 -135
  108. package/es/modules/toolbar/index.es.js.map +1 -1
  109. package/es/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.es.js +40145 -0
  110. package/es/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.es.js.map +1 -0
  111. package/es/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.es.js +938 -0
  112. package/es/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.es.js.map +1 -0
  113. package/es/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.es.js +624 -0
  114. package/es/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.es.js.map +1 -0
  115. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.es.js +174 -0
  116. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.es.js.map +1 -0
  117. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js +159 -0
  118. package/es/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.es.js.map +1 -0
  119. package/es/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.es.js +2849 -0
  120. package/es/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.es.js.map +1 -0
  121. package/es/themes/snow.es.js +6 -10
  122. package/es/themes/snow.es.js.map +1 -1
  123. package/es/tools/fullscreen.es.js.map +1 -1
  124. package/es/ui/icons.config.es.js +23 -0
  125. package/es/ui/icons.config.es.js.map +1 -1
  126. package/es/ui/icons.es.js +2 -1
  127. package/es/ui/icons.es.js.map +1 -1
  128. package/es/utils/is.es.js.map +1 -1
  129. package/lib/config/editor.utils.cjs.js +0 -2
  130. package/lib/config/editor.utils.cjs.js.map +1 -1
  131. package/lib/config/index.cjs.js +1 -1
  132. package/lib/config/index.cjs.js.map +1 -1
  133. package/lib/config/types/index.cjs.js +0 -20
  134. package/lib/config/types/index.cjs.js.map +1 -1
  135. package/lib/core/fluent-editor.cjs.js +4 -1
  136. package/lib/core/fluent-editor.cjs.js.map +1 -1
  137. package/lib/fluent-editor.cjs.js +35 -28
  138. package/lib/fluent-editor.cjs.js.map +1 -1
  139. package/lib/formats/emoji.cjs.js +14 -0
  140. package/lib/formats/emoji.cjs.js.map +1 -0
  141. package/lib/formats/index.cjs.js +11 -0
  142. package/lib/formats/index.cjs.js.map +1 -0
  143. package/lib/formats/soft-break.cjs.js +13 -6
  144. package/lib/formats/soft-break.cjs.js.map +1 -1
  145. package/lib/formats/strike.cjs.js +9 -6
  146. package/lib/formats/strike.cjs.js.map +1 -1
  147. package/lib/formats/video.cjs.js +15 -11
  148. package/lib/formats/video.cjs.js.map +1 -1
  149. package/lib/index.cjs.js +111 -34
  150. package/lib/index.cjs.js.map +1 -1
  151. package/lib/modules/ai/index.cjs.js +238 -0
  152. package/lib/modules/ai/index.cjs.js.map +1 -0
  153. package/lib/modules/counter.cjs.js +8 -3
  154. package/lib/modules/counter.cjs.js.map +1 -1
  155. package/lib/modules/custom-clipboard.cjs.js +21 -23
  156. package/lib/modules/custom-clipboard.cjs.js.map +1 -1
  157. package/lib/modules/custom-image/actions/action.cjs.js +19 -0
  158. package/lib/modules/custom-image/actions/action.cjs.js.map +1 -0
  159. package/lib/modules/custom-image/actions/{CustomResizeAction.cjs.js → custom-resize-action.cjs.js} +26 -13
  160. package/lib/modules/custom-image/actions/{CustomResizeAction.cjs.js.map → custom-resize-action.cjs.js.map} +1 -1
  161. package/lib/modules/custom-image/actions/{DeleteAction.cjs.js → delete-action.cjs.js} +10 -7
  162. package/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -0
  163. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js +137 -0
  164. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +1 -0
  165. package/lib/modules/custom-image/actions/index.cjs.js +18 -0
  166. package/lib/modules/custom-image/actions/index.cjs.js.map +1 -0
  167. package/lib/modules/custom-image/actions/toolbar-action.cjs.js +33 -0
  168. package/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +1 -0
  169. package/lib/modules/custom-image/actions/toolbar.cjs.js +110 -0
  170. package/lib/modules/custom-image/actions/toolbar.cjs.js.map +1 -0
  171. package/lib/modules/custom-image/{BlotFormatter.cjs.js → blot-formatter.cjs.js} +24 -50
  172. package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -0
  173. package/lib/modules/custom-image/image.cjs.js +32 -7
  174. package/lib/modules/custom-image/image.cjs.js.map +1 -1
  175. package/lib/modules/custom-image/index.cjs.js +9 -0
  176. package/lib/modules/custom-image/index.cjs.js.map +1 -0
  177. package/lib/modules/custom-image/options.cjs.js +85 -0
  178. package/lib/modules/custom-image/options.cjs.js.map +1 -0
  179. package/lib/modules/custom-image/specs/blot-spec.cjs.js +33 -0
  180. package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -0
  181. package/lib/modules/custom-image/specs/{CustomImageSpec.cjs.js → custom-image-spec.cjs.js} +14 -15
  182. package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -0
  183. package/lib/modules/custom-image/specs/image-spec.cjs.js +32 -0
  184. package/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -0
  185. package/lib/modules/custom-image/specs/index.cjs.js +9 -0
  186. package/lib/modules/custom-image/specs/index.cjs.js.map +1 -0
  187. package/lib/modules/custom-uploader.cjs.js +6 -4
  188. package/lib/modules/custom-uploader.cjs.js.map +1 -1
  189. package/lib/modules/divider.cjs.js +9 -8
  190. package/lib/modules/divider.cjs.js.map +1 -1
  191. package/lib/modules/emoji.cjs.js +175 -0
  192. package/lib/modules/emoji.cjs.js.map +1 -0
  193. package/lib/modules/file/formats/file.cjs.js +11 -9
  194. package/lib/modules/file/formats/file.cjs.js.map +1 -1
  195. package/lib/modules/file/index.cjs.js +5 -27
  196. package/lib/modules/file/index.cjs.js.map +1 -1
  197. package/lib/modules/file/modules/file-bar.cjs.js +12 -4
  198. package/lib/modules/file/modules/file-bar.cjs.js.map +1 -1
  199. package/lib/modules/file/modules/file-module.cjs.js +35 -0
  200. package/lib/modules/file/modules/file-module.cjs.js.map +1 -0
  201. package/lib/modules/i18n.cjs.js +6 -3
  202. package/lib/modules/i18n.cjs.js.map +1 -1
  203. package/lib/modules/index.cjs.js +26 -0
  204. package/lib/modules/index.cjs.js.map +1 -0
  205. package/lib/modules/link/formats/link.cjs.js +15 -11
  206. package/lib/modules/link/formats/link.cjs.js.map +1 -1
  207. package/lib/modules/link/index.cjs.js +4 -12
  208. package/lib/modules/link/index.cjs.js.map +1 -1
  209. package/lib/modules/link/modules/tooltip.cjs.js +28 -19
  210. package/lib/modules/link/modules/tooltip.cjs.js.map +1 -1
  211. package/lib/modules/mathlive/formats.cjs.js +11 -8
  212. package/lib/modules/mathlive/formats.cjs.js.map +1 -1
  213. package/lib/modules/mathlive/index.cjs.js +5 -29
  214. package/lib/modules/mathlive/index.cjs.js.map +1 -1
  215. package/lib/modules/mathlive/module.cjs.js +40 -0
  216. package/lib/modules/mathlive/module.cjs.js.map +1 -0
  217. package/lib/modules/mathlive/tooltip.cjs.js +10 -6
  218. package/lib/modules/mathlive/tooltip.cjs.js.map +1 -1
  219. package/lib/modules/mention/index.cjs.js +7 -0
  220. package/lib/modules/{emoji/emoji-list → mention}/index.cjs.js.map +1 -1
  221. package/lib/modules/mention/{MentionLink.cjs.js → mention-link.cjs.js} +15 -7
  222. package/lib/modules/mention/mention-link.cjs.js.map +1 -0
  223. package/lib/modules/mention/{Mention.cjs.js → mention.cjs.js} +30 -22
  224. package/lib/modules/mention/mention.cjs.js.map +1 -0
  225. package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
  226. package/lib/modules/syntax.cjs.js +4 -0
  227. package/lib/modules/syntax.cjs.js.map +1 -1
  228. package/lib/modules/table-up/index.cjs.js +4 -0
  229. package/lib/modules/table-up/index.cjs.js.map +1 -1
  230. package/lib/modules/toolbar/better-picker.cjs.js +5 -0
  231. package/lib/modules/toolbar/better-picker.cjs.js.map +1 -1
  232. package/lib/modules/toolbar/better-toolbar.cjs.js +138 -0
  233. package/lib/modules/toolbar/better-toolbar.cjs.js.map +1 -0
  234. package/lib/modules/toolbar/index.cjs.js +6 -136
  235. package/lib/modules/toolbar/index.cjs.js.map +1 -1
  236. package/lib/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.cjs.js +40145 -0
  237. package/lib/node_modules/.pnpm/@emoji-mart_data@1.2.1/node_modules/@emoji-mart/data/sets/15/native.json.cjs.js.map +1 -0
  238. package/lib/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.js +938 -0
  239. package/lib/node_modules/.pnpm/@floating-ui_core@1.7.2/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.js.map +1 -0
  240. package/lib/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.js +624 -0
  241. package/lib/node_modules/.pnpm/@floating-ui_dom@1.7.2/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.js.map +1 -0
  242. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.js +159 -0
  243. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.js.map +1 -0
  244. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js +174 -0
  245. package/lib/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js.map +1 -0
  246. package/lib/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.cjs.js +2847 -0
  247. package/lib/node_modules/.pnpm/emoji-mart@5.6.0/node_modules/emoji-mart/dist/module.cjs.js.map +1 -0
  248. package/lib/themes/snow.cjs.js +7 -11
  249. package/lib/themes/snow.cjs.js.map +1 -1
  250. package/lib/tools/fullscreen.cjs.js.map +1 -1
  251. package/lib/ui/icons.cjs.js +1 -0
  252. package/lib/ui/icons.cjs.js.map +1 -1
  253. package/lib/ui/icons.config.cjs.js +23 -0
  254. package/lib/ui/icons.config.cjs.js.map +1 -1
  255. package/lib/utils/is.cjs.js.map +1 -1
  256. package/package.json +8 -7
  257. package/style.css +92 -933
  258. package/types/config/editor.utils.d.ts +0 -1
  259. package/types/config/index.d.ts +1 -0
  260. package/types/config/types/editor-config.interface.d.ts +0 -7
  261. package/types/config/types/editor-modules.interface.d.ts +21 -12
  262. package/types/config/types/index.d.ts +0 -20
  263. package/types/config/types/type.d.ts +0 -4
  264. package/types/core/fluent-editor.d.ts +0 -1
  265. package/types/formats/emoji.d.ts +9 -0
  266. package/types/formats/index.d.ts +4 -0
  267. package/types/formats/soft-break.d.ts +6 -7
  268. package/types/formats/strike.d.ts +6 -4
  269. package/types/formats/video.d.ts +4 -6
  270. package/types/index.d.ts +6 -5
  271. package/types/modules/ai/index.d.ts +39 -0
  272. package/types/modules/counter.d.ts +8 -1
  273. package/types/modules/custom-clipboard.d.ts +3 -6
  274. package/types/modules/custom-image/Options.d.ts +34 -23
  275. package/types/modules/custom-image/actions/Action.d.ts +5 -3
  276. package/types/modules/custom-image/actions/custom-resize-action.d.ts +24 -0
  277. package/types/modules/custom-image/actions/delete-action.d.ts +7 -0
  278. package/types/modules/custom-image/actions/image-toolbar-buttons.d.ts +17 -0
  279. package/types/modules/custom-image/actions/index.d.ts +6 -0
  280. package/types/modules/custom-image/actions/toolbar-action.d.ts +12 -0
  281. package/types/modules/custom-image/actions/toolbar.d.ts +20 -0
  282. package/types/modules/custom-image/blot-formatter.d.ts +24 -0
  283. package/types/modules/custom-image/image-bar.d.ts +9 -7
  284. package/types/modules/custom-image/image.d.ts +15 -13
  285. package/types/modules/custom-image/index.d.ts +4 -0
  286. package/types/modules/custom-image/specs/blot-spec.d.ts +13 -0
  287. package/types/modules/custom-image/specs/custom-image-spec.d.ts +18 -0
  288. package/types/modules/custom-image/specs/image-spec.d.ts +9 -0
  289. package/types/modules/custom-image/specs/index.d.ts +3 -0
  290. package/types/modules/custom-uploader.d.ts +41 -0
  291. package/types/modules/divider.d.ts +6 -4
  292. package/types/modules/emoji/formats/emoji-blot.d.ts +9 -7
  293. package/types/modules/emoji/index.d.ts +3 -10
  294. package/types/modules/emoji/modules/emoji.d.ts +6 -6
  295. package/types/modules/emoji/modules/toolbar-emoji.d.ts +7 -6
  296. package/types/modules/emoji.d.ts +35 -0
  297. package/types/modules/file/formats/file.d.ts +2 -2
  298. package/types/modules/file/index.d.ts +3 -11
  299. package/types/modules/file/modules/file-bar.d.ts +1 -1
  300. package/types/modules/file/modules/file-module.d.ts +10 -0
  301. package/types/modules/i18n.d.ts +1 -2
  302. package/types/modules/index.d.ts +15 -0
  303. package/types/modules/link/formats/link.d.ts +5 -5
  304. package/types/modules/link/index.d.ts +2 -6
  305. package/types/modules/link/modules/tooltip.d.ts +5 -10
  306. package/types/modules/mathlive/formats.d.ts +2 -2
  307. package/types/modules/mathlive/index.d.ts +3 -9
  308. package/types/modules/mathlive/module.d.ts +10 -0
  309. package/types/modules/mathlive/tooltip.d.ts +1 -1
  310. package/types/modules/mention/Mention.d.ts +3 -4
  311. package/types/modules/mention/index.d.ts +2 -0
  312. package/types/modules/mention/mention-link.d.ts +17 -0
  313. package/types/modules/shortcut-key/index.d.ts +12 -8
  314. package/types/modules/table-up/index.d.ts +3 -3
  315. package/types/modules/toolbar/better-toolbar.d.ts +8 -0
  316. package/types/modules/toolbar/index.d.ts +2 -8
  317. package/types/tools/fullscreen.d.ts +5 -1
  318. package/types/ui/icons.config.d.ts +2 -0
  319. package/types/utils/is.d.ts +1 -1
  320. package/es/config/types/additional-toolbar-item.interface.es.js +0 -2
  321. package/es/config/types/additional-toolbar-item.interface.es.js.map +0 -1
  322. package/es/config/types/content-change.interface.es.js +0 -2
  323. package/es/config/types/content-change.interface.es.js.map +0 -1
  324. package/es/config/types/content-save.interface.es.js +0 -2
  325. package/es/config/types/content-save.interface.es.js.map +0 -1
  326. package/es/config/types/counter-option.interface.es.js +0 -2
  327. package/es/config/types/counter-option.interface.es.js.map +0 -1
  328. package/es/config/types/editor-toolbar.interface.es.js +0 -2
  329. package/es/config/types/editor-toolbar.interface.es.js.map +0 -1
  330. package/es/config/types/file-operation.interface.es.js +0 -2
  331. package/es/config/types/file-operation.interface.es.js.map +0 -1
  332. package/es/config/types/focus-change.interface.es.js +0 -2
  333. package/es/config/types/focus-change.interface.es.js.map +0 -1
  334. package/es/config/types/fullscreen-module.interface.es.js +0 -2
  335. package/es/config/types/fullscreen-module.interface.es.js.map +0 -1
  336. package/es/config/types/help-panel-item.interface.es.js +0 -2
  337. package/es/config/types/help-panel-item.interface.es.js.map +0 -1
  338. package/es/config/types/help-panel-option.interface.es.js +0 -2
  339. package/es/config/types/help-panel-option.interface.es.js.map +0 -1
  340. package/es/config/types/image-module.interface.es.js +0 -2
  341. package/es/config/types/image-module.interface.es.js.map +0 -1
  342. package/es/config/types/image-upload.interface.es.js +0 -2
  343. package/es/config/types/image-upload.interface.es.js.map +0 -1
  344. package/es/config/types/load-on-demand-module.interface.es.js +0 -2
  345. package/es/config/types/load-on-demand-module.interface.es.js.map +0 -1
  346. package/es/config/types/mention-module.interface.es.js +0 -2
  347. package/es/config/types/mention-module.interface.es.js.map +0 -1
  348. package/es/config/types/paste-change.interface.es.js +0 -2
  349. package/es/config/types/paste-change.interface.es.js.map +0 -1
  350. package/es/config/types/quick-menu-module.interface.es.js +0 -2
  351. package/es/config/types/quick-menu-module.interface.es.js.map +0 -1
  352. package/es/config/types/range.interface.es.js +0 -2
  353. package/es/config/types/range.interface.es.js.map +0 -1
  354. package/es/config/types/registry-options.interface.es.js +0 -2
  355. package/es/config/types/registry-options.interface.es.js.map +0 -1
  356. package/es/config/types/selection-change.interface.es.js +0 -2
  357. package/es/config/types/selection-change.interface.es.js.map +0 -1
  358. package/es/config/types/toolbar-item.interface.es.js +0 -2
  359. package/es/config/types/toolbar-item.interface.es.js.map +0 -1
  360. package/es/config/types/validate-error.interface.es.js +0 -2
  361. package/es/config/types/validate-error.interface.es.js.map +0 -1
  362. package/es/modules/custom-image/BlotFormatter.es.js.map +0 -1
  363. package/es/modules/custom-image/Options.es.js +0 -95
  364. package/es/modules/custom-image/Options.es.js.map +0 -1
  365. package/es/modules/custom-image/actions/Action.es.js +0 -15
  366. package/es/modules/custom-image/actions/Action.es.js.map +0 -1
  367. package/es/modules/custom-image/actions/DeleteAction.es.js.map +0 -1
  368. package/es/modules/custom-image/image-bar.es.js +0 -127
  369. package/es/modules/custom-image/image-bar.es.js.map +0 -1
  370. package/es/modules/custom-image/specs/BlotSpec.es.js +0 -27
  371. package/es/modules/custom-image/specs/BlotSpec.es.js.map +0 -1
  372. package/es/modules/custom-image/specs/CustomImageSpec.es.js.map +0 -1
  373. package/es/modules/custom-image/specs/ImageSpec.es.js +0 -29
  374. package/es/modules/custom-image/specs/ImageSpec.es.js.map +0 -1
  375. package/es/modules/emoji/emoji-list/index.es.js +0 -5
  376. package/es/modules/emoji/emoji-list/people.es.js +0 -114
  377. package/es/modules/emoji/emoji-list/people.es.js.map +0 -1
  378. package/es/modules/emoji/emoji-list.es.js +0 -9
  379. package/es/modules/emoji/emoji-list.es.js.map +0 -1
  380. package/es/modules/emoji/emoji-map.es.js +0 -9
  381. package/es/modules/emoji/emoji-map.es.js.map +0 -1
  382. package/es/modules/emoji/emoji-sprite.es.js +0 -5
  383. package/es/modules/emoji/emoji-sprite.es.js.map +0 -1
  384. package/es/modules/emoji/formats/emoji-blot.es.js +0 -41
  385. package/es/modules/emoji/formats/emoji-blot.es.js.map +0 -1
  386. package/es/modules/emoji/index.es.js +0 -8
  387. package/es/modules/emoji/index.es.js.map +0 -1
  388. package/es/modules/emoji/modules/emoji.es.js +0 -248
  389. package/es/modules/emoji/modules/emoji.es.js.map +0 -1
  390. package/es/modules/emoji/modules/toolbar-emoji.es.js +0 -153
  391. package/es/modules/emoji/modules/toolbar-emoji.es.js.map +0 -1
  392. package/es/modules/emoji/utils.es.js +0 -19
  393. package/es/modules/emoji/utils.es.js.map +0 -1
  394. package/es/modules/mention/Mention.es.js.map +0 -1
  395. package/es/modules/mention/MentionLink.es.js.map +0 -1
  396. package/lib/config/types/additional-toolbar-item.interface.cjs.js +0 -2
  397. package/lib/config/types/additional-toolbar-item.interface.cjs.js.map +0 -1
  398. package/lib/config/types/content-change.interface.cjs.js +0 -2
  399. package/lib/config/types/content-change.interface.cjs.js.map +0 -1
  400. package/lib/config/types/content-save.interface.cjs.js +0 -2
  401. package/lib/config/types/content-save.interface.cjs.js.map +0 -1
  402. package/lib/config/types/counter-option.interface.cjs.js +0 -2
  403. package/lib/config/types/counter-option.interface.cjs.js.map +0 -1
  404. package/lib/config/types/editor-toolbar.interface.cjs.js +0 -2
  405. package/lib/config/types/editor-toolbar.interface.cjs.js.map +0 -1
  406. package/lib/config/types/file-operation.interface.cjs.js +0 -2
  407. package/lib/config/types/file-operation.interface.cjs.js.map +0 -1
  408. package/lib/config/types/focus-change.interface.cjs.js +0 -2
  409. package/lib/config/types/focus-change.interface.cjs.js.map +0 -1
  410. package/lib/config/types/fullscreen-module.interface.cjs.js +0 -2
  411. package/lib/config/types/fullscreen-module.interface.cjs.js.map +0 -1
  412. package/lib/config/types/help-panel-item.interface.cjs.js +0 -2
  413. package/lib/config/types/help-panel-item.interface.cjs.js.map +0 -1
  414. package/lib/config/types/help-panel-option.interface.cjs.js +0 -2
  415. package/lib/config/types/help-panel-option.interface.cjs.js.map +0 -1
  416. package/lib/config/types/image-module.interface.cjs.js +0 -2
  417. package/lib/config/types/image-module.interface.cjs.js.map +0 -1
  418. package/lib/config/types/image-upload.interface.cjs.js +0 -2
  419. package/lib/config/types/image-upload.interface.cjs.js.map +0 -1
  420. package/lib/config/types/load-on-demand-module.interface.cjs.js +0 -2
  421. package/lib/config/types/load-on-demand-module.interface.cjs.js.map +0 -1
  422. package/lib/config/types/mention-module.interface.cjs.js +0 -2
  423. package/lib/config/types/mention-module.interface.cjs.js.map +0 -1
  424. package/lib/config/types/paste-change.interface.cjs.js +0 -2
  425. package/lib/config/types/paste-change.interface.cjs.js.map +0 -1
  426. package/lib/config/types/quick-menu-module.interface.cjs.js +0 -2
  427. package/lib/config/types/quick-menu-module.interface.cjs.js.map +0 -1
  428. package/lib/config/types/range.interface.cjs.js +0 -2
  429. package/lib/config/types/range.interface.cjs.js.map +0 -1
  430. package/lib/config/types/registry-options.interface.cjs.js +0 -2
  431. package/lib/config/types/registry-options.interface.cjs.js.map +0 -1
  432. package/lib/config/types/selection-change.interface.cjs.js +0 -2
  433. package/lib/config/types/selection-change.interface.cjs.js.map +0 -1
  434. package/lib/config/types/toolbar-item.interface.cjs.js +0 -2
  435. package/lib/config/types/toolbar-item.interface.cjs.js.map +0 -1
  436. package/lib/config/types/validate-error.interface.cjs.js +0 -2
  437. package/lib/config/types/validate-error.interface.cjs.js.map +0 -1
  438. package/lib/modules/custom-image/BlotFormatter.cjs.js.map +0 -1
  439. package/lib/modules/custom-image/Options.cjs.js +0 -95
  440. package/lib/modules/custom-image/Options.cjs.js.map +0 -1
  441. package/lib/modules/custom-image/actions/Action.cjs.js +0 -15
  442. package/lib/modules/custom-image/actions/Action.cjs.js.map +0 -1
  443. package/lib/modules/custom-image/actions/DeleteAction.cjs.js.map +0 -1
  444. package/lib/modules/custom-image/image-bar.cjs.js +0 -127
  445. package/lib/modules/custom-image/image-bar.cjs.js.map +0 -1
  446. package/lib/modules/custom-image/specs/BlotSpec.cjs.js +0 -27
  447. package/lib/modules/custom-image/specs/BlotSpec.cjs.js.map +0 -1
  448. package/lib/modules/custom-image/specs/CustomImageSpec.cjs.js.map +0 -1
  449. package/lib/modules/custom-image/specs/ImageSpec.cjs.js +0 -29
  450. package/lib/modules/custom-image/specs/ImageSpec.cjs.js.map +0 -1
  451. package/lib/modules/emoji/emoji-list/index.cjs.js +0 -5
  452. package/lib/modules/emoji/emoji-list/people.cjs.js +0 -114
  453. package/lib/modules/emoji/emoji-list/people.cjs.js.map +0 -1
  454. package/lib/modules/emoji/emoji-list.cjs.js +0 -9
  455. package/lib/modules/emoji/emoji-list.cjs.js.map +0 -1
  456. package/lib/modules/emoji/emoji-map.cjs.js +0 -9
  457. package/lib/modules/emoji/emoji-map.cjs.js.map +0 -1
  458. package/lib/modules/emoji/emoji-sprite.cjs.js +0 -5
  459. package/lib/modules/emoji/emoji-sprite.cjs.js.map +0 -1
  460. package/lib/modules/emoji/formats/emoji-blot.cjs.js +0 -41
  461. package/lib/modules/emoji/formats/emoji-blot.cjs.js.map +0 -1
  462. package/lib/modules/emoji/index.cjs.js +0 -8
  463. package/lib/modules/emoji/index.cjs.js.map +0 -1
  464. package/lib/modules/emoji/modules/emoji.cjs.js +0 -248
  465. package/lib/modules/emoji/modules/emoji.cjs.js.map +0 -1
  466. package/lib/modules/emoji/modules/toolbar-emoji.cjs.js +0 -153
  467. package/lib/modules/emoji/modules/toolbar-emoji.cjs.js.map +0 -1
  468. package/lib/modules/emoji/utils.cjs.js +0 -19
  469. package/lib/modules/emoji/utils.cjs.js.map +0 -1
  470. package/lib/modules/mention/Mention.cjs.js.map +0 -1
  471. package/lib/modules/mention/MentionLink.cjs.js.map +0 -1
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  const Quill = require("quill");
4
7
  const Parchment = Quill.import("parchment");
5
- const _MathliveBlot = class _MathliveBlot extends Parchment.EmbedBlot {
8
+ class MathliveBlot extends Parchment.EmbedBlot {
6
9
  constructor(scroll, domNode) {
7
10
  super(scroll, domNode);
11
+ __publicField(this, "mode");
8
12
  this.domNode = domNode;
9
13
  domNode.setAttribute("contenteditable", "false");
10
14
  this.mode = domNode.getAttribute("mode") || "only-read";
@@ -27,10 +31,9 @@ const _MathliveBlot = class _MathliveBlot extends Parchment.EmbedBlot {
27
31
  const formula = this.domNode.value;
28
32
  return `<math-field class="ql-math-field view" contenteditable="false" mode="${this.mode}">${formula}</math-field>`;
29
33
  }
30
- };
31
- _MathliveBlot.blotName = "mathlive";
32
- _MathliveBlot.tagName = "math-field";
33
- _MathliveBlot.className = "ql-math-field";
34
- let MathliveBlot = _MathliveBlot;
35
- exports.default = MathliveBlot;
34
+ }
35
+ __publicField(MathliveBlot, "blotName", "mathlive");
36
+ __publicField(MathliveBlot, "tagName", "math-field");
37
+ __publicField(MathliveBlot, "className", "ql-math-field");
38
+ exports.MathliveBlot = MathliveBlot;
36
39
  //# sourceMappingURL=formats.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"formats.cjs.js","sources":["../../../../src/modules/mathlive/formats.ts"],"sourcesContent":["import type { MathfieldElement } from 'mathlive'\r\nimport type { Root } from 'parchment'\r\nimport Quill from 'quill'\r\n\r\nconst Parchment = Quill.import('parchment')\r\ntype MathliveBlotMode = 'dialog' | 'only-read'\r\nexport default class MathliveBlot extends Parchment.EmbedBlot {\r\n static blotName = 'mathlive'\r\n static tagName = 'math-field'\r\n static className = 'ql-math-field'\r\n mode: MathliveBlotMode\r\n\r\n static create(obj: { value: string, mode: MathliveBlotMode }) {\r\n const el = super.create() as MathfieldElement\r\n el.setAttribute('mode', obj.mode)\r\n el.classList.add('view')\r\n el.innerHTML = obj.value\r\n el.setValue(obj.value)\r\n return el\r\n }\r\n\r\n static value(domNode: MathfieldElement) {\r\n return {\r\n value: domNode.value,\r\n mode: domNode.getAttribute('mode'),\r\n }\r\n }\r\n\r\n constructor(scroll: Root, public domNode: MathfieldElement) {\r\n super(scroll, domNode)\r\n domNode.setAttribute('contenteditable', 'false')\r\n this.mode = (domNode.getAttribute('mode') || 'only-read') as MathliveBlotMode\r\n }\r\n\r\n html() {\r\n const formula = this.domNode.value\r\n return `<math-field class=\"ql-math-field view\" contenteditable=\"false\" mode=\"${this.mode}\">${formula}</math-field>`\r\n }\r\n}\r\n"],"names":[],"mappings":";;;AAIA,MAAM,YAAY,MAAM,OAAO,WAAW;AAErB,MAAA,gBAAA,MAAA,sBAAqB,UAAU,UAAU;AAAA,EAsB5D,YAAY,QAAqB,SAA2B;AAC1D,UAAM,QAAQ,OAAO;AADU,SAAA,UAAA;AAEvB,YAAA,aAAa,mBAAmB,OAAO;AAC/C,SAAK,OAAQ,QAAQ,aAAa,MAAM,KAAK;AAAA,EAAA;AAAA,EAnB/C,OAAO,OAAO,KAAgD;AACtD,UAAA,KAAK,MAAM,OAAO;AACrB,OAAA,aAAa,QAAQ,IAAI,IAAI;AAC7B,OAAA,UAAU,IAAI,MAAM;AACvB,OAAG,YAAY,IAAI;AAChB,OAAA,SAAS,IAAI,KAAK;AACd,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAA2B;AAC/B,WAAA;AAAA,MACL,OAAO,QAAQ;AAAA,MACf,MAAM,QAAQ,aAAa,MAAM;AAAA,IACnC;AAAA,EAAA;AAAA,EASF,OAAO;AACC,UAAA,UAAU,KAAK,QAAQ;AAC7B,WAAO,wEAAwE,KAAK,IAAI,KAAK,OAAO;AAAA,EAAA;AAExG;AA/BE,cAAO,WAAW;AAClB,cAAO,UAAU;AACjB,cAAO,YAAY;AAHA,IAAA,eAAA;;"}
1
+ {"version":3,"file":"formats.cjs.js","sources":["../../../../src/modules/mathlive/formats.ts"],"sourcesContent":["import type { MathfieldElement } from 'mathlive'\r\nimport type { Root } from 'parchment'\r\nimport Quill from 'quill'\r\n\r\nconst Parchment = Quill.import('parchment')\r\nexport type MathliveBlotMode = 'dialog' | 'only-read'\r\nexport class MathliveBlot extends Parchment.EmbedBlot {\r\n static blotName = 'mathlive'\r\n static tagName = 'math-field'\r\n static className = 'ql-math-field'\r\n mode: MathliveBlotMode\r\n\r\n static create(obj: { value: string, mode: MathliveBlotMode }) {\r\n const el = super.create() as MathfieldElement\r\n el.setAttribute('mode', obj.mode)\r\n el.classList.add('view')\r\n el.innerHTML = obj.value\r\n el.setValue(obj.value)\r\n return el\r\n }\r\n\r\n static value(domNode: MathfieldElement) {\r\n return {\r\n value: domNode.value,\r\n mode: domNode.getAttribute('mode'),\r\n }\r\n }\r\n\r\n constructor(scroll: Root, public domNode: MathfieldElement) {\r\n super(scroll, domNode)\r\n domNode.setAttribute('contenteditable', 'false')\r\n this.mode = (domNode.getAttribute('mode') || 'only-read') as MathliveBlotMode\r\n }\r\n\r\n html() {\r\n const formula = this.domNode.value\r\n return `<math-field class=\"ql-math-field view\" contenteditable=\"false\" mode=\"${this.mode}\">${formula}</math-field>`\r\n }\r\n}\r\n"],"names":[],"mappings":";;;;;;AAIA,MAAM,YAAY,MAAM,OAAO,WAAW;AAE7B,MAAA,qBAAqB,UAAU,UAAU;AAAA,EAsBpD,YAAY,QAAqB,SAA2B;AAC1D,UAAM,QAAQ,OAAO;AAnBvB;AAkBiC,SAAA,UAAA;AAEvB,YAAA,aAAa,mBAAmB,OAAO;AAC/C,SAAK,OAAQ,QAAQ,aAAa,MAAM,KAAK;AAAA,EAAA;AAAA,EAnB/C,OAAO,OAAO,KAAgD;AACtD,UAAA,KAAK,MAAM,OAAO;AACrB,OAAA,aAAa,QAAQ,IAAI,IAAI;AAC7B,OAAA,UAAU,IAAI,MAAM;AACvB,OAAG,YAAY,IAAI;AAChB,OAAA,SAAS,IAAI,KAAK;AACd,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAA2B;AAC/B,WAAA;AAAA,MACL,OAAO,QAAQ;AAAA,MACf,MAAM,QAAQ,aAAa,MAAM;AAAA,IACnC;AAAA,EAAA;AAAA,EASF,OAAO;AACC,UAAA,UAAU,KAAK,QAAQ;AAC7B,WAAO,wEAAwE,KAAK,IAAI,KAAK,OAAO;AAAA,EAAA;AAExG;AA/BE,cADW,cACJ,YAAW;AAClB,cAFW,cAEJ,WAAU;AACjB,cAHW,cAGJ,aAAY;;"}
@@ -1,33 +1,9 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const Quill = require("quill");
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
4
3
  const formats = require("./formats.cjs.js");
4
+ const module$1 = require("./module.cjs.js");
5
5
  const tooltip = require("./tooltip.cjs.js");
6
- class MathliveModule {
7
- constructor(quill) {
8
- this.quill = quill;
9
- this.tooltip = new tooltip.default(quill);
10
- this.quill.root.addEventListener(
11
- "click",
12
- (e) => {
13
- if (!this.quill.isEnabled()) return;
14
- const path = e.composedPath();
15
- if (!path || path.length <= 0) return;
16
- const mathliveNode = path.find((node) => node.tagName && node.tagName.toUpperCase() === formats.default.tagName.toUpperCase() && node.classList.contains(formats.default.className));
17
- const mathliveBlot = Quill.find(mathliveNode);
18
- if (mathliveBlot) {
19
- const { value, mode } = formats.default.value(mathliveBlot.domNode);
20
- if (mode === "dialog") {
21
- this.createDialog(value);
22
- }
23
- }
24
- },
25
- true
26
- );
27
- }
28
- createDialog(value) {
29
- this.tooltip.edit(value);
30
- }
31
- }
32
- exports.default = MathliveModule;
6
+ exports.MathliveBlot = formats.MathliveBlot;
7
+ exports.MathliveModule = module$1.MathliveModule;
8
+ exports.MathliveTooltip = tooltip.MathliveTooltip;
33
9
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/mathlive/index.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport MathliveBlot from './formats'\r\nimport MathliveTooltip from './tooltip'\r\n\r\nexport default class MathliveModule {\r\n tooltip: MathliveTooltip\r\n constructor(public quill: Quill) {\r\n this.tooltip = new MathliveTooltip(quill)\r\n\r\n this.quill.root.addEventListener(\r\n 'click',\r\n (e: MouseEvent) => {\r\n if (!this.quill.isEnabled()) return\r\n const path = e.composedPath() as HTMLElement[]\r\n if (!path || path.length <= 0) return\r\n\r\n const mathliveNode = path.find(node => node.tagName && node.tagName.toUpperCase() === MathliveBlot.tagName.toUpperCase() && node.classList.contains(MathliveBlot.className))\r\n const mathliveBlot = Quill.find(mathliveNode) as MathliveBlot | null\r\n if (mathliveBlot) {\r\n const { value, mode } = MathliveBlot.value(mathliveBlot.domNode)\r\n if (mode === 'dialog') {\r\n this.createDialog(value)\r\n }\r\n }\r\n },\r\n true,\r\n )\r\n }\r\n\r\n createDialog(value?: string) {\r\n this.tooltip.edit(value)\r\n }\r\n}\r\n"],"names":["MathliveTooltip","MathliveBlot"],"mappings":";;;;;AAIA,MAAqB,eAAe;AAAA,EAElC,YAAmB,OAAc;AAAd,SAAA,QAAA;AACZ,SAAA,UAAU,IAAIA,QAAA,QAAgB,KAAK;AAExC,SAAK,MAAM,KAAK;AAAA,MACd;AAAA,MACA,CAAC,MAAkB;AACjB,YAAI,CAAC,KAAK,MAAM,YAAa;AACvB,cAAA,OAAO,EAAE,aAAa;AAC5B,YAAI,CAAC,QAAQ,KAAK,UAAU,EAAG;AAE/B,cAAM,eAAe,KAAK,KAAK,UAAQ,KAAK,WAAW,KAAK,QAAQ,kBAAkBC,gBAAa,QAAQ,iBAAiB,KAAK,UAAU,SAASA,gBAAa,SAAS,CAAC;AACrK,cAAA,eAAe,MAAM,KAAK,YAAY;AAC5C,YAAI,cAAc;AAChB,gBAAM,EAAE,OAAO,SAASA,QAAa,QAAA,MAAM,aAAa,OAAO;AAC/D,cAAI,SAAS,UAAU;AACrB,iBAAK,aAAa,KAAK;AAAA,UAAA;AAAA,QACzB;AAAA,MAEJ;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAAA,EAGF,aAAa,OAAgB;AACtB,SAAA,QAAQ,KAAK,KAAK;AAAA,EAAA;AAE3B;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
6
+ const Quill = require("quill");
7
+ const formats = require("./formats.cjs.js");
8
+ const tooltip = require("./tooltip.cjs.js");
9
+ class MathliveModule {
10
+ constructor(quill) {
11
+ __publicField(this, "tooltip");
12
+ this.quill = quill;
13
+ this.tooltip = new tooltip.MathliveTooltip(quill);
14
+ this.quill.root.addEventListener(
15
+ "click",
16
+ (e) => {
17
+ if (!this.quill.isEnabled()) return;
18
+ const path = e.composedPath();
19
+ if (!path || path.length <= 0) return;
20
+ const mathliveNode = path.find((node) => node.tagName && node.tagName.toUpperCase() === formats.MathliveBlot.tagName.toUpperCase() && node.classList.contains(formats.MathliveBlot.className));
21
+ const mathliveBlot = Quill.find(mathliveNode);
22
+ if (mathliveBlot) {
23
+ const { value, mode } = formats.MathliveBlot.value(mathliveBlot.domNode);
24
+ if (mode === "dialog") {
25
+ this.createDialog(value);
26
+ }
27
+ }
28
+ },
29
+ true
30
+ );
31
+ }
32
+ static register() {
33
+ Quill.register({ [`formats/${formats.MathliveBlot.blotName}`]: formats.MathliveBlot }, true);
34
+ }
35
+ createDialog(value) {
36
+ this.tooltip.edit(value);
37
+ }
38
+ }
39
+ exports.MathliveModule = MathliveModule;
40
+ //# sourceMappingURL=module.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.cjs.js","sources":["../../../../src/modules/mathlive/module.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { MathliveBlot } from './formats'\r\nimport { MathliveTooltip } from './tooltip'\r\n\r\nexport class MathliveModule {\r\n tooltip: MathliveTooltip\r\n static register() {\r\n Quill.register({ [`formats/${MathliveBlot.blotName}`]: MathliveBlot }, true)\r\n }\r\n\r\n constructor(public quill: Quill) {\r\n this.tooltip = new MathliveTooltip(quill)\r\n\r\n this.quill.root.addEventListener(\r\n 'click',\r\n (e: MouseEvent) => {\r\n if (!this.quill.isEnabled()) return\r\n const path = e.composedPath() as HTMLElement[]\r\n if (!path || path.length <= 0) return\r\n\r\n const mathliveNode = path.find(node => node.tagName && node.tagName.toUpperCase() === MathliveBlot.tagName.toUpperCase() && node.classList.contains(MathliveBlot.className))\r\n const mathliveBlot = Quill.find(mathliveNode) as MathliveBlot | null\r\n if (mathliveBlot) {\r\n const { value, mode } = MathliveBlot.value(mathliveBlot.domNode)\r\n if (mode === 'dialog') {\r\n this.createDialog(value)\r\n }\r\n }\r\n },\r\n true,\r\n )\r\n }\r\n\r\n createDialog(value?: string) {\r\n this.tooltip.edit(value)\r\n }\r\n}\r\n"],"names":["MathliveTooltip","MathliveBlot"],"mappings":";;;;;;;;AAIO,MAAM,eAAe;AAAA,EAM1B,YAAmB,OAAc;AALjC;AAKmB,SAAA,QAAA;AACZ,SAAA,UAAU,IAAIA,QAAA,gBAAgB,KAAK;AAExC,SAAK,MAAM,KAAK;AAAA,MACd;AAAA,MACA,CAAC,MAAkB;AACjB,YAAI,CAAC,KAAK,MAAM,YAAa;AACvB,cAAA,OAAO,EAAE,aAAa;AAC5B,YAAI,CAAC,QAAQ,KAAK,UAAU,EAAG;AAE/B,cAAM,eAAe,KAAK,KAAK,UAAQ,KAAK,WAAW,KAAK,QAAQ,kBAAkBC,qBAAa,QAAQ,iBAAiB,KAAK,UAAU,SAASA,qBAAa,SAAS,CAAC;AACrK,cAAA,eAAe,MAAM,KAAK,YAAY;AAC5C,YAAI,cAAc;AAChB,gBAAM,EAAE,OAAO,SAASA,QAAa,aAAA,MAAM,aAAa,OAAO;AAC/D,cAAI,SAAS,UAAU;AACrB,iBAAK,aAAa,KAAK;AAAA,UAAA;AAAA,QACzB;AAAA,MAEJ;AAAA,MACA;AAAA,IACF;AAAA,EAAA;AAAA,EAxBF,OAAO,WAAW;AACV,UAAA,SAAS,EAAE,CAAC,WAAWA,qBAAa,QAAQ,EAAE,GAAGA,qBAAa,GAAG,IAAI;AAAA,EAAA;AAAA,EA0B7E,aAAa,OAAgB;AACtB,SAAA,QAAQ,KAAK,KAAK;AAAA,EAAA;AAE3B;;"}
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  const Quill = require("quill");
4
7
  const is = require("../../utils/is.cjs.js");
5
8
  const Delta = Quill.import("delta");
6
9
  const Tooltip = Quill.import("ui/tooltip");
7
- const _MathliveTooltip = class _MathliveTooltip extends Tooltip {
10
+ class MathliveTooltip extends Tooltip {
8
11
  constructor(quill, boundsContainer) {
9
12
  super(quill, boundsContainer);
13
+ __publicField(this, "mathliveDom");
14
+ __publicField(this, "editValue");
10
15
  this.mathliveDom = document.createElement("math-field");
11
16
  this.mathliveDom.classList.add("ql-math-field");
12
17
  this.root.appendChild(this.mathliveDom);
@@ -67,8 +72,7 @@ const _MathliveTooltip = class _MathliveTooltip extends Tooltip {
67
72
  adjustedReference.left = reference.left + this.root.offsetWidth / 2 - reference.width / 2;
68
73
  return super.position(adjustedReference);
69
74
  }
70
- };
71
- _MathliveTooltip.TEMPLATE = ``;
72
- let MathliveTooltip = _MathliveTooltip;
73
- exports.default = MathliveTooltip;
75
+ }
76
+ __publicField(MathliveTooltip, "TEMPLATE", ``);
77
+ exports.MathliveTooltip = MathliveTooltip;
74
78
  //# sourceMappingURL=tooltip.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.cjs.js","sources":["../../../../src/modules/mathlive/tooltip.ts"],"sourcesContent":["import type { MathfieldElement } from 'mathlive'\r\nimport type { Bounds } from 'quill/core/selection'\r\nimport type TypeTooltip from 'quill/ui/tooltip'\r\nimport Quill from 'quill'\r\nimport { isString } from '../../utils/is'\r\n\r\nconst Delta = Quill.import('delta')\r\nconst Tooltip = Quill.import('ui/tooltip') as typeof TypeTooltip\r\nexport default class MathliveTooltip extends Tooltip {\r\n static TEMPLATE = ``\r\n\r\n mathliveDom: MathfieldElement\r\n editValue?: string\r\n\r\n constructor(quill: Quill, boundsContainer?: HTMLElement) {\r\n super(quill, boundsContainer)\r\n this.mathliveDom = document.createElement('math-field') as MathfieldElement\r\n this.mathliveDom.classList.add('ql-math-field')\r\n this.root.appendChild(this.mathliveDom)\r\n this.root.classList.add('math-field-tooltip')\r\n this.listen()\r\n }\r\n\r\n listen() {\r\n this.mathliveDom.addEventListener('blur', (event) => {\r\n this.hide()\r\n })\r\n this.root.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault()\r\n this.save()\r\n }\r\n else if (event.key === 'Escape') {\r\n event.preventDefault()\r\n this.cancel()\r\n }\r\n })\r\n }\r\n\r\n cancel() {\r\n this.hide()\r\n this.restoreFocus()\r\n }\r\n\r\n edit(value?: string) {\r\n this.editValue = value\r\n this.root.classList.remove('ql-hidden')\r\n this.root.classList.add('ql-editing')\r\n this.mathliveDom.setValue(value || '')\r\n const range = this.quill.getSelection()\r\n const bounds = range ? this.quill.getBounds(range) : null\r\n if (bounds != null) {\r\n this.position(bounds)\r\n }\r\n this.show()\r\n this.mathliveDom.focus()\r\n }\r\n\r\n restoreFocus() {\r\n this.mathliveDom.blur()\r\n this.quill.focus({ preventScroll: true })\r\n }\r\n\r\n save() {\r\n const range = this.quill.getSelection(true)\r\n const inputValue = this.mathliveDom.value\r\n if (!inputValue) return\r\n const contentData = this.quill.getContents(range.index, 1).ops[0].insert\r\n let deleteCount = 0\r\n if (!isString(contentData) && contentData.mathlive) {\r\n deleteCount += 1\r\n }\r\n const delta = new Delta()\r\n .retain(range.index)\r\n .delete(Math.max(deleteCount, range.length))\r\n .insert({ mathlive: { value: inputValue, mode: 'dialog' } })\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT)\r\n this.hide()\r\n }\r\n\r\n position(reference: Bounds) {\r\n const adjustedReference = { ...reference }\r\n adjustedReference.left = reference.left + this.root.offsetWidth / 2 - reference.width / 2\r\n return super.position(adjustedReference)\r\n }\r\n}\r\n"],"names":["isString"],"mappings":";;;;AAMA,MAAM,QAAQ,MAAM,OAAO,OAAO;AAClC,MAAM,UAAU,MAAM,OAAO,YAAY;AACzC,MAAqB,mBAArB,MAAqB,yBAAwB,QAAQ;AAAA,EAMnD,YAAY,OAAc,iBAA+B;AACvD,UAAM,OAAO,eAAe;AACvB,SAAA,cAAc,SAAS,cAAc,YAAY;AACjD,SAAA,YAAY,UAAU,IAAI,eAAe;AACzC,SAAA,KAAK,YAAY,KAAK,WAAW;AACjC,SAAA,KAAK,UAAU,IAAI,oBAAoB;AAC5C,SAAK,OAAO;AAAA,EAAA;AAAA,EAGd,SAAS;AACP,SAAK,YAAY,iBAAiB,QAAQ,CAAC,UAAU;AACnD,WAAK,KAAK;AAAA,IAAA,CACX;AACD,SAAK,KAAK,iBAAiB,WAAW,CAAC,UAAU;AAC3C,UAAA,MAAM,QAAQ,SAAS;AACzB,cAAM,eAAe;AACrB,aAAK,KAAK;AAAA,MAAA,WAEH,MAAM,QAAQ,UAAU;AAC/B,cAAM,eAAe;AACrB,aAAK,OAAO;AAAA,MAAA;AAAA,IACd,CACD;AAAA,EAAA;AAAA,EAGH,SAAS;AACP,SAAK,KAAK;AACV,SAAK,aAAa;AAAA,EAAA;AAAA,EAGpB,KAAK,OAAgB;AACnB,SAAK,YAAY;AACZ,SAAA,KAAK,UAAU,OAAO,WAAW;AACjC,SAAA,KAAK,UAAU,IAAI,YAAY;AAC/B,SAAA,YAAY,SAAS,SAAS,EAAE;AAC/B,UAAA,QAAQ,KAAK,MAAM,aAAa;AACtC,UAAM,SAAS,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI;AACrD,QAAI,UAAU,MAAM;AAClB,WAAK,SAAS,MAAM;AAAA,IAAA;AAEtB,SAAK,KAAK;AACV,SAAK,YAAY,MAAM;AAAA,EAAA;AAAA,EAGzB,eAAe;AACb,SAAK,YAAY,KAAK;AACtB,SAAK,MAAM,MAAM,EAAE,eAAe,MAAM;AAAA,EAAA;AAAA,EAG1C,OAAO;AACL,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI;AACpC,UAAA,aAAa,KAAK,YAAY;AACpC,QAAI,CAAC,WAAY;AACX,UAAA,cAAc,KAAK,MAAM,YAAY,MAAM,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;AAClE,QAAI,cAAc;AAClB,QAAI,CAACA,GAAAA,SAAS,WAAW,KAAK,YAAY,UAAU;AACnC,qBAAA;AAAA,IAAA;AAEX,UAAA,QAAQ,IAAI,MAAA,EACf,OAAO,MAAM,KAAK,EAClB,OAAO,KAAK,IAAI,aAAa,MAAM,MAAM,CAAC,EAC1C,OAAO,EAAE,UAAU,EAAE,OAAO,YAAY,MAAM,SAAS,GAAG;AAC7D,SAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,SAAK,MAAM,aAAa,MAAM,QAAQ,GAAG,MAAM,QAAQ,MAAM;AAC7D,SAAK,KAAK;AAAA,EAAA;AAAA,EAGZ,SAAS,WAAmB;AACpB,UAAA,oBAAoB,EAAE,GAAG,UAAU;AACvB,sBAAA,OAAO,UAAU,OAAO,KAAK,KAAK,cAAc,IAAI,UAAU,QAAQ;AACjF,WAAA,MAAM,SAAS,iBAAiB;AAAA,EAAA;AAE3C;AA7EE,iBAAO,WAAW;AADpB,IAAqB,kBAArB;;"}
1
+ {"version":3,"file":"tooltip.cjs.js","sources":["../../../../src/modules/mathlive/tooltip.ts"],"sourcesContent":["import type { MathfieldElement } from 'mathlive'\r\nimport type { Bounds } from 'quill/core/selection'\r\nimport type TypeTooltip from 'quill/ui/tooltip'\r\nimport Quill from 'quill'\r\nimport { isString } from '../../utils/is'\r\n\r\nconst Delta = Quill.import('delta')\r\nconst Tooltip = Quill.import('ui/tooltip') as typeof TypeTooltip\r\nexport class MathliveTooltip extends Tooltip {\r\n static TEMPLATE = ``\r\n\r\n mathliveDom: MathfieldElement\r\n editValue?: string\r\n\r\n constructor(quill: Quill, boundsContainer?: HTMLElement) {\r\n super(quill, boundsContainer)\r\n this.mathliveDom = document.createElement('math-field') as MathfieldElement\r\n this.mathliveDom.classList.add('ql-math-field')\r\n this.root.appendChild(this.mathliveDom)\r\n this.root.classList.add('math-field-tooltip')\r\n this.listen()\r\n }\r\n\r\n listen() {\r\n this.mathliveDom.addEventListener('blur', (event) => {\r\n this.hide()\r\n })\r\n this.root.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter') {\r\n event.preventDefault()\r\n this.save()\r\n }\r\n else if (event.key === 'Escape') {\r\n event.preventDefault()\r\n this.cancel()\r\n }\r\n })\r\n }\r\n\r\n cancel() {\r\n this.hide()\r\n this.restoreFocus()\r\n }\r\n\r\n edit(value?: string) {\r\n this.editValue = value\r\n this.root.classList.remove('ql-hidden')\r\n this.root.classList.add('ql-editing')\r\n this.mathliveDom.setValue(value || '')\r\n const range = this.quill.getSelection()\r\n const bounds = range ? this.quill.getBounds(range) : null\r\n if (bounds != null) {\r\n this.position(bounds)\r\n }\r\n this.show()\r\n this.mathliveDom.focus()\r\n }\r\n\r\n restoreFocus() {\r\n this.mathliveDom.blur()\r\n this.quill.focus({ preventScroll: true })\r\n }\r\n\r\n save() {\r\n const range = this.quill.getSelection(true)\r\n const inputValue = this.mathliveDom.value\r\n if (!inputValue) return\r\n const contentData = this.quill.getContents(range.index, 1).ops[0].insert\r\n let deleteCount = 0\r\n if (!isString(contentData) && contentData.mathlive) {\r\n deleteCount += 1\r\n }\r\n const delta = new Delta()\r\n .retain(range.index)\r\n .delete(Math.max(deleteCount, range.length))\r\n .insert({ mathlive: { value: inputValue, mode: 'dialog' } })\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT)\r\n this.hide()\r\n }\r\n\r\n position(reference: Bounds) {\r\n const adjustedReference = { ...reference }\r\n adjustedReference.left = reference.left + this.root.offsetWidth / 2 - reference.width / 2\r\n return super.position(adjustedReference)\r\n }\r\n}\r\n"],"names":["isString"],"mappings":";;;;;;;AAMA,MAAM,QAAQ,MAAM,OAAO,OAAO;AAClC,MAAM,UAAU,MAAM,OAAO,YAAY;AAClC,MAAM,wBAAwB,QAAQ;AAAA,EAM3C,YAAY,OAAc,iBAA+B;AACvD,UAAM,OAAO,eAAe;AAJ9B;AACA;AAIO,SAAA,cAAc,SAAS,cAAc,YAAY;AACjD,SAAA,YAAY,UAAU,IAAI,eAAe;AACzC,SAAA,KAAK,YAAY,KAAK,WAAW;AACjC,SAAA,KAAK,UAAU,IAAI,oBAAoB;AAC5C,SAAK,OAAO;AAAA,EAAA;AAAA,EAGd,SAAS;AACP,SAAK,YAAY,iBAAiB,QAAQ,CAAC,UAAU;AACnD,WAAK,KAAK;AAAA,IAAA,CACX;AACD,SAAK,KAAK,iBAAiB,WAAW,CAAC,UAAU;AAC3C,UAAA,MAAM,QAAQ,SAAS;AACzB,cAAM,eAAe;AACrB,aAAK,KAAK;AAAA,MAAA,WAEH,MAAM,QAAQ,UAAU;AAC/B,cAAM,eAAe;AACrB,aAAK,OAAO;AAAA,MAAA;AAAA,IACd,CACD;AAAA,EAAA;AAAA,EAGH,SAAS;AACP,SAAK,KAAK;AACV,SAAK,aAAa;AAAA,EAAA;AAAA,EAGpB,KAAK,OAAgB;AACnB,SAAK,YAAY;AACZ,SAAA,KAAK,UAAU,OAAO,WAAW;AACjC,SAAA,KAAK,UAAU,IAAI,YAAY;AAC/B,SAAA,YAAY,SAAS,SAAS,EAAE;AAC/B,UAAA,QAAQ,KAAK,MAAM,aAAa;AACtC,UAAM,SAAS,QAAQ,KAAK,MAAM,UAAU,KAAK,IAAI;AACrD,QAAI,UAAU,MAAM;AAClB,WAAK,SAAS,MAAM;AAAA,IAAA;AAEtB,SAAK,KAAK;AACV,SAAK,YAAY,MAAM;AAAA,EAAA;AAAA,EAGzB,eAAe;AACb,SAAK,YAAY,KAAK;AACtB,SAAK,MAAM,MAAM,EAAE,eAAe,MAAM;AAAA,EAAA;AAAA,EAG1C,OAAO;AACL,UAAM,QAAQ,KAAK,MAAM,aAAa,IAAI;AACpC,UAAA,aAAa,KAAK,YAAY;AACpC,QAAI,CAAC,WAAY;AACX,UAAA,cAAc,KAAK,MAAM,YAAY,MAAM,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE;AAClE,QAAI,cAAc;AAClB,QAAI,CAACA,GAAAA,SAAS,WAAW,KAAK,YAAY,UAAU;AACnC,qBAAA;AAAA,IAAA;AAEX,UAAA,QAAQ,IAAI,MAAA,EACf,OAAO,MAAM,KAAK,EAClB,OAAO,KAAK,IAAI,aAAa,MAAM,MAAM,CAAC,EAC1C,OAAO,EAAE,UAAU,EAAE,OAAO,YAAY,MAAM,SAAS,GAAG;AAC7D,SAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,SAAK,MAAM,aAAa,MAAM,QAAQ,GAAG,MAAM,QAAQ,MAAM;AAC7D,SAAK,KAAK;AAAA,EAAA;AAAA,EAGZ,SAAS,WAAmB;AACpB,UAAA,oBAAoB,EAAE,GAAG,UAAU;AACvB,sBAAA,OAAO,UAAU,OAAO,KAAK,KAAK,cAAc,IAAI,UAAU,QAAQ;AACjF,WAAA,MAAM,SAAS,iBAAiB;AAAA,EAAA;AAE3C;AA7EE,cADW,iBACJ,YAAW;;"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const mention = require("./mention.cjs.js");
4
+ const mentionLink = require("./mention-link.cjs.js");
5
+ exports.Mention = mention.Mention;
6
+ exports.MentionLink = mentionLink.MentionLink;
7
+ //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,9 +1,18 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  const Quill = require("quill");
4
7
  const constants = require("./constants.cjs.js");
5
8
  const Embed = Quill.import("blots/embed");
6
9
  class MentionLink extends Embed {
10
+ constructor(scroll, domNode, data) {
11
+ super(scroll, domNode);
12
+ __publicField(this, "mentionData");
13
+ this.scroll = scroll;
14
+ this.mentionData = data;
15
+ }
7
16
  static create(data) {
8
17
  let node;
9
18
  if (data.link) {
@@ -32,10 +41,6 @@ class MentionLink extends Embed {
32
41
  }
33
42
  return value;
34
43
  }
35
- constructor(scroll, domNode, data) {
36
- super(scroll, domNode);
37
- this.mentionData = data;
38
- }
39
44
  value() {
40
45
  return super.value();
41
46
  }
@@ -44,8 +49,11 @@ class MentionLink extends Embed {
44
49
  return super.remove();
45
50
  }
46
51
  }
52
+ __publicField(MentionLink, "blotName");
53
+ __publicField(MentionLink, "tagName");
54
+ __publicField(MentionLink, "className");
47
55
  MentionLink.blotName = "mention";
48
56
  MentionLink.tagName = "span";
49
57
  MentionLink.className = "ql-mention-link";
50
- exports.default = MentionLink;
51
- //# sourceMappingURL=MentionLink.cjs.js.map
58
+ exports.MentionLink = MentionLink;
59
+ //# sourceMappingURL=mention-link.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention-link.cjs.js","sources":["../../../../src/modules/mention/mention-link.ts"],"sourcesContent":["import type TypeEmbed from 'quill/blots/embed'\r\nimport type TypeScroll from 'quill/blots/scroll'\r\nimport Quill from 'quill'\r\nimport { DEFAULT_MENTION_CHAR, MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'\r\n\r\nconst Embed = Quill.import('blots/embed') as typeof TypeEmbed\r\n\r\nexport class MentionLink extends Embed {\r\n static blotName: string\r\n static tagName: string\r\n static className: string\r\n mentionData: any\r\n\r\n static create(data) {\r\n let node: HTMLElement\r\n if (data.link) {\r\n node = document.createElement('a')\r\n node.setAttribute('href', data.link)\r\n node.setAttribute('target', data.target)\r\n }\r\n else {\r\n node = document.createElement(this.tagName)\r\n }\r\n node.classList.add(this.className)\r\n node.dataset.mentionId = data.name || (data.mention && data.mention[data.searchKey || 'name']) || ''\r\n node.setAttribute('title', data.text)\r\n node.setAttribute(MENTION_CHAR, data.char)\r\n node.textContent = data.char + data.text\r\n return node\r\n }\r\n\r\n static value(domNode: HTMLElement) {\r\n const value: Record<string, any> = {\r\n char: domNode.getAttribute(MENTION_CHAR) || DEFAULT_MENTION_CHAR,\r\n text: domNode.getAttribute('title'),\r\n name: domNode.dataset.mentionId,\r\n }\r\n if (domNode.tagName.toLowerCase() === 'a' && domNode.hasAttribute('href')) {\r\n value.link = domNode.getAttribute('href')\r\n value.target = domNode.getAttribute('target')\r\n }\r\n return value\r\n }\r\n\r\n constructor(public scroll: TypeScroll, domNode, data) {\r\n super(scroll, domNode)\r\n this.mentionData = data\r\n }\r\n\r\n value() {\r\n // fix: 将@提醒内容加入到 Delta 里,以解决输入空格,@提醒内容被删除的问题\r\n // return ' ';\r\n return super.value()\r\n }\r\n\r\n remove() {\r\n this.scroll.emitter.emit(ON_MENTION_LINK_REMOVE, this.mentionData)\r\n return super.remove()\r\n }\r\n}\r\n\r\nMentionLink.blotName = 'mention'\r\nMentionLink.tagName = 'span'\r\nMentionLink.className = 'ql-mention-link'\r\n"],"names":["MENTION_CHAR","DEFAULT_MENTION_CHAR","ON_MENTION_LINK_REMOVE"],"mappings":";;;;;;;AAKA,MAAM,QAAQ,MAAM,OAAO,aAAa;AAEjC,MAAM,oBAAoB,MAAM;AAAA,EAqCrC,YAAmB,QAAoB,SAAS,MAAM;AACpD,UAAM,QAAQ,OAAO;AAlCvB;AAiCmB,SAAA,SAAA;AAEjB,SAAK,cAAc;AAAA,EAAA;AAAA,EAjCrB,OAAO,OAAO,MAAM;AACd,QAAA;AACJ,QAAI,KAAK,MAAM;AACN,aAAA,SAAS,cAAc,GAAG;AAC5B,WAAA,aAAa,QAAQ,KAAK,IAAI;AAC9B,WAAA,aAAa,UAAU,KAAK,MAAM;AAAA,IAAA,OAEpC;AACI,aAAA,SAAS,cAAc,KAAK,OAAO;AAAA,IAAA;AAEvC,SAAA,UAAU,IAAI,KAAK,SAAS;AAC5B,SAAA,QAAQ,YAAY,KAAK,QAAS,KAAK,WAAW,KAAK,QAAQ,KAAK,aAAa,MAAM,KAAM;AAC7F,SAAA,aAAa,SAAS,KAAK,IAAI;AAC/B,SAAA,aAAaA,wBAAc,KAAK,IAAI;AACpC,SAAA,cAAc,KAAK,OAAO,KAAK;AAC7B,WAAA;AAAA,EAAA;AAAA,EAGT,OAAO,MAAM,SAAsB;AACjC,UAAM,QAA6B;AAAA,MACjC,MAAM,QAAQ,aAAaA,UAAAA,YAAY,KAAKC,UAAA;AAAA,MAC5C,MAAM,QAAQ,aAAa,OAAO;AAAA,MAClC,MAAM,QAAQ,QAAQ;AAAA,IACxB;AACI,QAAA,QAAQ,QAAQ,YAAY,MAAM,OAAO,QAAQ,aAAa,MAAM,GAAG;AACnE,YAAA,OAAO,QAAQ,aAAa,MAAM;AAClC,YAAA,SAAS,QAAQ,aAAa,QAAQ;AAAA,IAAA;AAEvC,WAAA;AAAA,EAAA;AAAA,EAQT,QAAQ;AAGN,WAAO,MAAM,MAAM;AAAA,EAAA;AAAA,EAGrB,SAAS;AACP,SAAK,OAAO,QAAQ,KAAKC,UAAA,wBAAwB,KAAK,WAAW;AACjE,WAAO,MAAM,OAAO;AAAA,EAAA;AAExB;AAnDE,cADW,aACJ;AACP,cAFW,aAEJ;AACP,cAHW,aAGJ;AAmDT,YAAY,WAAW;AACvB,YAAY,UAAU;AACtB,YAAY,YAAY;;"}
@@ -1,20 +1,27 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
5
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  const Quill = require("quill");
4
7
  const editor_utils = require("../../config/editor.utils.cjs.js");
5
8
  const constants = require("./constants.cjs.js");
6
- const MentionLink = require("./MentionLink.cjs.js");
9
+ const mentionLink = require("./mention-link.cjs.js");
7
10
  const Delta = Quill.import("delta");
8
11
  const Parchment = Quill.import("parchment");
9
12
  const { Scope } = Parchment;
10
13
  class Mention {
11
14
  // @ts-ignore
12
15
  constructor(quill, options) {
13
- this.quill = quill;
14
- this.activeMentionIndex = 0;
15
- this.searchTerm = "";
16
- this.needInsertBr = true;
17
- this.defaultOptions = {
16
+ __publicField(this, "options");
17
+ __publicField(this, "mentionListEL");
18
+ __publicField(this, "activeMentionIndex", 0);
19
+ __publicField(this, "latestMentionList");
20
+ __publicField(this, "latestMentionCharPos");
21
+ __publicField(this, "latestCaretPos");
22
+ __publicField(this, "searchTerm", "");
23
+ __publicField(this, "needInsertBr", true);
24
+ __publicField(this, "defaultOptions", {
18
25
  defaultLink: "#",
19
26
  target: "_blank",
20
27
  mentionChar: constants.DEFAULT_MENTION_CHAR,
@@ -47,8 +54,8 @@ class Mention {
47
54
  },
48
55
  remove(_data) {
49
56
  }
50
- };
51
- this.handleTextChange = (_delta, _oldDelta, source) => {
57
+ });
58
+ __publicField(this, "handleTextChange", (_delta, _oldDelta, source) => {
52
59
  setTimeout(() => {
53
60
  if (Quill.sources.USER === source) {
54
61
  const range = this.quill.getSelection();
@@ -79,37 +86,38 @@ class Mention {
79
86
  }
80
87
  }
81
88
  });
82
- };
83
- this.handleArrowUpKey = () => {
89
+ });
90
+ __publicField(this, "handleArrowUpKey", () => {
84
91
  if (this.isOpen()) {
85
92
  this.activeMentionIndex = (this.activeMentionIndex + this.latestMentionList.length - 1) % this.latestMentionList.length;
86
93
  this.highlightMentionItem(this.activeMentionIndex);
87
94
  return false;
88
95
  }
89
96
  return true;
90
- };
91
- this.handleArrowDownKey = () => {
97
+ });
98
+ __publicField(this, "handleArrowDownKey", () => {
92
99
  if (this.isOpen()) {
93
100
  this.activeMentionIndex = (this.activeMentionIndex + 1) % this.latestMentionList.length;
94
101
  this.highlightMentionItem(this.activeMentionIndex);
95
102
  return false;
96
103
  }
97
104
  return true;
98
- };
99
- this.handleEnterKey = () => {
105
+ });
106
+ __publicField(this, "handleEnterKey", () => {
100
107
  if (this.isOpen()) {
101
108
  this.selectMentionItem();
102
109
  this.needInsertBr = false;
103
110
  }
104
111
  return true;
105
- };
106
- this.handleEscapeKey = () => {
112
+ });
113
+ __publicField(this, "handleEscapeKey", () => {
107
114
  if (this.isOpen()) {
108
115
  this.hideMentionList();
109
116
  return false;
110
117
  }
111
118
  return true;
112
- };
119
+ });
120
+ this.quill = quill;
113
121
  if (!options.search) {
114
122
  console.warn("please provide a search function!");
115
123
  return;
@@ -183,7 +191,7 @@ class Mention {
183
191
  quill.container.parentElement.insertBefore(container, quill.container);
184
192
  }
185
193
  static register() {
186
- Quill.register(MentionLink.default);
194
+ Quill.register(mentionLink.MentionLink);
187
195
  }
188
196
  on(eventName, callback) {
189
197
  this.mentionListEL.addEventListener(eventName, (evt) => {
@@ -304,7 +312,7 @@ class Mention {
304
312
  insertMentionBlot(activeMentionItem, isClick) {
305
313
  const mention = this.options.renderMentionText(activeMentionItem);
306
314
  const delta = new Delta().retain(this.latestMentionCharPos).delete(this.latestCaretPos - this.latestMentionCharPos).insert({
307
- [MentionLink.default.blotName]: {
315
+ [mentionLink.MentionLink.blotName]: {
308
316
  char: this.options.mentionChar,
309
317
  text: mention,
310
318
  mention: activeMentionItem,
@@ -321,5 +329,5 @@ class Mention {
321
329
  this.quill.setSelection(this.latestMentionCharPos + 1, Quill.sources.API);
322
330
  }
323
331
  }
324
- exports.default = Mention;
325
- //# sourceMappingURL=Mention.cjs.js.map
332
+ exports.Mention = Mention;
333
+ //# sourceMappingURL=mention.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention.cjs.js","sources":["../../../../src/modules/mention/mention.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { isNullOrUndefined } from '../../config/editor.utils'\r\nimport { DEFAULT_MENTION_CHAR, ON_MENTION_LINK_REMOVE } from './constants'\r\nimport { MentionLink } from './mention-link'\r\n\r\nconst Delta = Quill.import('delta')\r\nconst Parchment = Quill.import('parchment')\r\nconst { Scope } = Parchment\r\n\r\nexport interface MentionOption {\r\n containerClass?: string\r\n // dataAttributes?: string[]\r\n defaultLink?: string\r\n itemActiveClass?: string\r\n itemKey: string\r\n itemClass?: string\r\n listClass?: string\r\n listHideClass?: string\r\n maxHeight?: number\r\n mentionChar?: string\r\n remove?: (data: any) => void\r\n renderMentionItem?: (data: any) => string | HTMLElement\r\n renderMentionText?: (data: any) => string | HTMLElement\r\n search?: (term: string) => Promise<any[]> | any[]\r\n searchKey: string\r\n select?: (data: any) => void\r\n target?: string\r\n}\r\n\r\nexport class Mention {\r\n private readonly options: MentionOption\r\n private readonly mentionListEL: HTMLUListElement\r\n private activeMentionIndex = 0\r\n private latestMentionList: any[]\r\n private latestMentionCharPos: number\r\n private latestCaretPos: number\r\n private searchTerm = ''\r\n private needInsertBr = true\r\n private readonly defaultOptions: MentionOption = {\r\n defaultLink: '#',\r\n target: '_blank',\r\n mentionChar: DEFAULT_MENTION_CHAR,\r\n maxHeight: 200,\r\n renderMentionItem(data: any) {\r\n let mentionItem = data.name || data.id\r\n if (this.itemKey) {\r\n mentionItem = data[this.itemKey]\r\n }\r\n const dom = document.createElement('SPAN')\r\n dom.textContent = mentionItem\r\n return dom\r\n },\r\n renderMentionText(data: any) {\r\n let mentionText = data.name || data.id\r\n if (this.itemKey) {\r\n mentionText = data[this.itemKey]\r\n }\r\n return `${mentionText}`\r\n },\r\n containerClass: 'ql-mention-list-container',\r\n listClass: 'ql-mention-list',\r\n listHideClass: 'ql-mention-list--hide',\r\n itemClass: 'ql-mention-item',\r\n itemActiveClass: 'ql-mention-item--active',\r\n itemKey: 'name',\r\n searchKey: 'name',\r\n // dataAttributes: ['id'],\r\n select(_data: any) {},\r\n remove(_data: any) {},\r\n }\r\n\r\n static register() {\r\n Quill.register(MentionLink)\r\n }\r\n\r\n // @ts-ignore\r\n constructor(private quill: Quill, options: MentionOption) {\r\n if (!options.search) {\r\n console.warn('please provide a search function!')\r\n return\r\n }\r\n\r\n this.options = Object.assign(this.defaultOptions, options)\r\n const container = document.createElement('div')\r\n container.classList.add('ql-mention-list-container')\r\n if (this.options.containerClass !== 'ql-mention-list-container') {\r\n container.classList.add(this.options.containerClass)\r\n }\r\n this.mentionListEL = document.createElement('ul')\r\n this.mentionListEL.classList.add(this.options.listClass, this.options.listHideClass)\r\n this.mentionListEL.style.cssText += `\r\n max-height: ${this.options.maxHeight}px;\r\n `\r\n\r\n quill.on(Quill.events.TEXT_CHANGE, this.handleTextChange)\r\n quill.keyboard.addBinding({ key: 'ArrowUp' }, this.handleArrowUpKey)\r\n quill.keyboard.addBinding({ key: 'ArrowDown' }, this.handleArrowDownKey)\r\n quill.keyboard.addBinding({ key: 'Enter' }, this.handleEnterKey)\r\n quill.keyboard.addBinding({ key: 'Tab' }, this.handleEnterKey)\r\n quill.keyboard.addBinding({ key: 'Escape' }, this.handleEscapeKey)\r\n quill.keyboard.bindings.Enter.unshift(quill.keyboard.bindings.Enter.pop())\r\n quill.keyboard.bindings.Tab.unshift(quill.keyboard.bindings.Tab.pop())\r\n quill.keyboard.bindings.Escape.unshift(quill.keyboard.bindings.Escape.pop())\r\n\r\n const customKeyboardEnter = {\r\n key: 'Enter',\r\n shiftKey: null,\r\n handler: (range, context) => {\r\n const lineFormats = Object.keys(context.format).reduce(\r\n (formats, format) => {\r\n if (\r\n this.quill.scroll.query(format, Scope.BLOCK)\r\n && !Array.isArray(context.format[format])\r\n ) {\r\n formats[format] = context.format[format]\r\n }\r\n return formats\r\n },\r\n {},\r\n )\r\n\r\n // fix: 解决@提醒之后插入多余空行和光标位置不对的问题\r\n let selectionIndex = range.index - this.searchTerm.length\r\n let delta = new Delta()\r\n .retain(range.index)\r\n .delete(range.length)\r\n if (this.needInsertBr) {\r\n delta = delta.insert('\\n', lineFormats)\r\n selectionIndex = range.index + 1\r\n }\r\n\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n this.quill.setSelection(selectionIndex, Quill.sources.SILENT)\r\n this.quill.focus()\r\n\r\n Object.keys(context.format).forEach((name) => {\r\n if (!isNullOrUndefined(lineFormats[name])) return\r\n if (Array.isArray(context.format[name])) return\r\n if (name === 'code' || name === 'link') return\r\n this.quill.format(name, context.format[name], Quill.sources.USER)\r\n })\r\n\r\n this.needInsertBr = true // 标记是否是输入@提醒的Enter\r\n },\r\n }\r\n\r\n // 用自定义的Enter替换内置的Enter\r\n quill.keyboard.bindings.Enter = quill.keyboard.bindings.Enter.map((item) => {\r\n const buildinKeyboardEnter = item.format === undefined && item.shiftKey === null\r\n if (buildinKeyboardEnter) {\r\n return customKeyboardEnter\r\n }\r\n else {\r\n return item\r\n }\r\n })\r\n\r\n this.on('click', this.handleMouseClick)\r\n this.on('mouseover', this.handleMouseEnter)\r\n quill.emitter.on(ON_MENTION_LINK_REMOVE, async ({ mention, name }) => {\r\n const [result] = (mention && [mention]) || (await this.options.search(name))\r\n this.options.remove(result)\r\n })\r\n container.appendChild(this.mentionListEL)\r\n quill.container.parentElement.insertBefore(container, quill.container)\r\n }\r\n\r\n on(eventName, callback) {\r\n this.mentionListEL.addEventListener(eventName, (evt) => {\r\n let\r\n target = evt.target\r\n let targetItemEL\r\n\r\n while (this.mentionListEL.contains(target) && target !== this.mentionListEL) {\r\n if (target.classList.contains(this.options.itemClass)) {\r\n targetItemEL = target\r\n }\r\n target = target.parentElement\r\n }\r\n\r\n if (targetItemEL) {\r\n callback.call(this, targetItemEL, this.getMentionItemIndex(targetItemEL))\r\n }\r\n })\r\n }\r\n\r\n getMentionItemIndex(itemEl: Element) {\r\n return [].reduce.call(this.mentionListEL.children, (index, item, idx) => item === itemEl ? idx : index, -1)\r\n }\r\n\r\n handleTextChange = (_delta, _oldDelta, source) => {\r\n // defer handler to make sure that we can get correct quill selection range.\r\n setTimeout(() => {\r\n if (Quill.sources.USER === source) {\r\n const range = this.quill.getSelection()\r\n if (!range) {\r\n return\r\n }\r\n\r\n const caretPos = this.latestCaretPos = range.index\r\n // beforeCaretText的计算有问题,没有把图片内容和@提醒内容的非字符内容算进去\r\n const content = this.quill.getContents()\r\n const beforeCaretText = content.reduce((newText, op) => {\r\n if (typeof op.insert === 'string') {\r\n return (newText += op.insert)\r\n }\r\n else {\r\n return (newText += ' ') // 将图片内容和@提醒内容的非字符内容置为' ',算一个位置\r\n }\r\n }, '')\r\n const mentionCharPos = beforeCaretText.lastIndexOf(this.options.mentionChar)\r\n\r\n if (mentionCharPos > -1) {\r\n const searchTerm = beforeCaretText.substring(mentionCharPos + this.options.mentionChar.length, caretPos)\r\n this.searchTerm = searchTerm\r\n if (!''.startsWith.call(searchTerm, ' ')) {\r\n this.latestMentionCharPos = mentionCharPos\r\n this.searchMentionListByTerm(searchTerm)\r\n }\r\n else {\r\n this.hideMentionList()\r\n }\r\n }\r\n else {\r\n this.hideMentionList()\r\n }\r\n }\r\n })\r\n }\r\n\r\n handleMouseClick(_itemEl: HTMLLIElement, index: number) {\r\n this.selectMentionItem(index, true)\r\n this.quill.focus()\r\n }\r\n\r\n handleMouseEnter(_itemEl: HTMLLIElement, index: number) {\r\n this.activeMentionIndex = index\r\n this.highlightMentionItem(index)\r\n }\r\n\r\n handleArrowUpKey = () => {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex\r\n = (this.activeMentionIndex + this.latestMentionList.length - 1) % this.latestMentionList.length\r\n this.highlightMentionItem(this.activeMentionIndex)\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleArrowDownKey = () => {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex = (this.activeMentionIndex + 1) % this.latestMentionList.length\r\n this.highlightMentionItem(this.activeMentionIndex)\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n handleEnterKey = () => {\r\n if (this.isOpen()) {\r\n this.selectMentionItem()\r\n this.needInsertBr = false\r\n }\r\n return true\r\n }\r\n\r\n handleEscapeKey = () => {\r\n if (this.isOpen()) {\r\n this.hideMentionList()\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n getActiveMentionItem() {\r\n return this.mentionListEL.querySelector(`.${this.options.itemActiveClass}`)\r\n }\r\n\r\n isOpen() {\r\n return !this.mentionListEL.classList.contains(this.options.listHideClass)\r\n }\r\n\r\n async searchMentionListByTerm(term: string) {\r\n const mentionList = await this.options.search(term)\r\n this.latestMentionList = mentionList\r\n if (!mentionList || mentionList.length === 0) {\r\n return this.hideMentionList()\r\n }\r\n\r\n this.showMentionList(mentionList)\r\n }\r\n\r\n showMentionList(mentionList: any[]) {\r\n if (!this.isOpen()) {\r\n this.mentionListEL.classList.remove(this.options.listHideClass)\r\n }\r\n this.activeMentionIndex = 0\r\n this.setMentionListPos()\r\n this.render(mentionList)\r\n }\r\n\r\n hideMentionList() {\r\n if (this.isOpen()) {\r\n this.activeMentionIndex = 0\r\n this.mentionListEL.classList.add(this.options.listHideClass)\r\n }\r\n }\r\n\r\n setMentionListPos() {\r\n const cursorIndex = this.quill.selection.savedRange.index\r\n const cursorBounds = this.quill.getBounds(cursorIndex)\r\n const { left, top } = cursorBounds\r\n const container = this.quill.container\r\n const hostElement = container.parentNode as HTMLDivElement\r\n const { left: editorLeft, top: editorTop } = container.getBoundingClientRect()\r\n const { left: hostElementLeft, top: hostElementTop } = hostElement.getBoundingClientRect()\r\n const relativeLeft = editorLeft - hostElementLeft\r\n const relativeTop = editorTop - hostElementTop\r\n const menuLeft = left + relativeLeft - 5\r\n const menuTop = top + relativeTop + 20\r\n this.mentionListEL.style.cssText += `\r\n left: ${menuLeft}px;\r\n top: ${menuTop}px;\r\n `\r\n }\r\n\r\n render(mentionList: any[]) {\r\n const wrapEl = document.createElement('div');\r\n\r\n [].forEach.call(mentionList, (mentionItem, index) => {\r\n const mentionItemEl = document.createElement('li')\r\n mentionItemEl.classList.add(this.options.itemClass)\r\n if (index === this.activeMentionIndex) {\r\n mentionItemEl.classList.add(this.options.itemActiveClass)\r\n }\r\n const renderResult = this.options.renderMentionItem(mentionItem)\r\n if (typeof renderResult === 'string') {\r\n mentionItemEl.insertAdjacentHTML('afterbegin', renderResult)\r\n }\r\n else {\r\n mentionItemEl.insertAdjacentElement('afterbegin', renderResult)\r\n }\r\n wrapEl.appendChild(mentionItemEl)\r\n })\r\n\r\n this.mentionListEL.innerHTML = wrapEl.innerHTML\r\n }\r\n\r\n highlightMentionItem(index: number) {\r\n const oldActiveItem = this.getActiveMentionItem()\r\n if (oldActiveItem) {\r\n oldActiveItem.classList.remove(this.options.itemActiveClass)\r\n }\r\n\r\n const newActiveItem = this.mentionListEL.querySelector(`.${this.options.itemClass}:nth-of-type(${index + 1})`)\r\n if (newActiveItem) {\r\n newActiveItem.classList.add(this.options.itemActiveClass)\r\n this.scrollIntoView(newActiveItem)\r\n }\r\n }\r\n\r\n scrollIntoView(node: Element): void {\r\n const nodeAsAny: any = node\r\n if (nodeAsAny.scrollIntoViewIfNeeded) {\r\n nodeAsAny.scrollIntoViewIfNeeded(false)\r\n return\r\n }\r\n if (node.scrollIntoView) {\r\n node.scrollIntoView(false)\r\n }\r\n }\r\n\r\n selectMentionItem(index = this.activeMentionIndex, isClick?: boolean) {\r\n const activeMentionItem = this.latestMentionList[index]\r\n this.insertMentionBlot(activeMentionItem, isClick)\r\n this.options.select(activeMentionItem)\r\n this.hideMentionList()\r\n }\r\n\r\n insertMentionBlot(activeMentionItem: any, isClick?: boolean) {\r\n const mention = this.options.renderMentionText(activeMentionItem)\r\n const delta = new Delta()\r\n .retain(this.latestMentionCharPos)\r\n .delete(this.latestCaretPos - this.latestMentionCharPos)\r\n .insert({\r\n [MentionLink.blotName]: {\r\n char: this.options.mentionChar,\r\n text: mention,\r\n mention: activeMentionItem,\r\n link: activeMentionItem.link || this.options.defaultLink,\r\n target: activeMentionItem.target || this.options.target,\r\n searchKey: this.options.searchKey,\r\n },\r\n })\r\n if (isClick) {\r\n this.quill.updateContents(delta, Quill.sources.USER)\r\n }\r\n else {\r\n this.quill.updateContents(delta, Quill.sources.API)\r\n }\r\n this.quill.setSelection(this.latestMentionCharPos + 1, Quill.sources.API)\r\n }\r\n}\r\n"],"names":["DEFAULT_MENTION_CHAR","isNullOrUndefined","ON_MENTION_LINK_REMOVE","MentionLink"],"mappings":";;;;;;;;;AAKA,MAAM,QAAQ,MAAM,OAAO,OAAO;AAClC,MAAM,YAAY,MAAM,OAAO,WAAW;AAC1C,MAAM,EAAE,MAAU,IAAA;AAsBX,MAAM,QAAQ;AAAA;AAAA,EA+CnB,YAAoB,OAAc,SAAwB;AA9CzC;AACA;AACT,8CAAqB;AACrB;AACA;AACA;AACA,sCAAa;AACb,wCAAe;AACN,0CAAgC;AAAA,MAC/C,aAAa;AAAA,MACb,QAAQ;AAAA,MACR,aAAaA,UAAA;AAAA,MACb,WAAW;AAAA,MACX,kBAAkB,MAAW;AACvB,YAAA,cAAc,KAAK,QAAQ,KAAK;AACpC,YAAI,KAAK,SAAS;AACF,wBAAA,KAAK,KAAK,OAAO;AAAA,QAAA;AAE3B,cAAA,MAAM,SAAS,cAAc,MAAM;AACzC,YAAI,cAAc;AACX,eAAA;AAAA,MACT;AAAA,MACA,kBAAkB,MAAW;AACvB,YAAA,cAAc,KAAK,QAAQ,KAAK;AACpC,YAAI,KAAK,SAAS;AACF,wBAAA,KAAK,KAAK,OAAO;AAAA,QAAA;AAEjC,eAAO,GAAG,WAAW;AAAA,MACvB;AAAA,MACA,gBAAgB;AAAA,MAChB,WAAW;AAAA,MACX,eAAe;AAAA,MACf,WAAW;AAAA,MACX,iBAAiB;AAAA,MACjB,SAAS;AAAA,MACT,WAAW;AAAA;AAAA,MAEX,OAAO,OAAY;AAAA,MAAC;AAAA,MACpB,OAAO,OAAY;AAAA,MAAA;AAAA,IACrB;AAyHA,4CAAmB,CAAC,QAAQ,WAAW,WAAW;AAEhD,iBAAW,MAAM;AACX,YAAA,MAAM,QAAQ,SAAS,QAAQ;AAC3B,gBAAA,QAAQ,KAAK,MAAM,aAAa;AACtC,cAAI,CAAC,OAAO;AACV;AAAA,UAAA;AAGI,gBAAA,WAAW,KAAK,iBAAiB,MAAM;AAEvC,gBAAA,UAAU,KAAK,MAAM,YAAY;AACvC,gBAAM,kBAAkB,QAAQ,OAAO,CAAC,SAAS,OAAO;AAClD,gBAAA,OAAO,GAAG,WAAW,UAAU;AACjC,qBAAQ,WAAW,GAAG;AAAA,YAAA,OAEnB;AACH,qBAAQ,WAAW;AAAA,YAAA;AAAA,aAEpB,EAAE;AACL,gBAAM,iBAAiB,gBAAgB,YAAY,KAAK,QAAQ,WAAW;AAE3E,cAAI,iBAAiB,IAAI;AACjB,kBAAA,aAAa,gBAAgB,UAAU,iBAAiB,KAAK,QAAQ,YAAY,QAAQ,QAAQ;AACvG,iBAAK,aAAa;AAClB,gBAAI,CAAC,GAAG,WAAW,KAAK,YAAY,GAAG,GAAG;AACxC,mBAAK,uBAAuB;AAC5B,mBAAK,wBAAwB,UAAU;AAAA,YAAA,OAEpC;AACH,mBAAK,gBAAgB;AAAA,YAAA;AAAA,UACvB,OAEG;AACH,iBAAK,gBAAgB;AAAA,UAAA;AAAA,QACvB;AAAA,MACF,CACD;AAAA,IACH;AAYA,4CAAmB,MAAM;AACnB,UAAA,KAAK,UAAU;AACZ,aAAA,sBACA,KAAK,qBAAqB,KAAK,kBAAkB,SAAS,KAAK,KAAK,kBAAkB;AACtF,aAAA,qBAAqB,KAAK,kBAAkB;AAC1C,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACT;AAEA,8CAAqB,MAAM;AACrB,UAAA,KAAK,UAAU;AACjB,aAAK,sBAAsB,KAAK,qBAAqB,KAAK,KAAK,kBAAkB;AAC5E,aAAA,qBAAqB,KAAK,kBAAkB;AAC1C,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACT;AAEA,0CAAiB,MAAM;AACjB,UAAA,KAAK,UAAU;AACjB,aAAK,kBAAkB;AACvB,aAAK,eAAe;AAAA,MAAA;AAEf,aAAA;AAAA,IACT;AAEA,2CAAkB,MAAM;AAClB,UAAA,KAAK,UAAU;AACjB,aAAK,gBAAgB;AACd,eAAA;AAAA,MAAA;AAEF,aAAA;AAAA,IACT;AArMoB,SAAA,QAAA;AACd,QAAA,CAAC,QAAQ,QAAQ;AACnB,cAAQ,KAAK,mCAAmC;AAChD;AAAA,IAAA;AAGF,SAAK,UAAU,OAAO,OAAO,KAAK,gBAAgB,OAAO;AACnD,UAAA,YAAY,SAAS,cAAc,KAAK;AACpC,cAAA,UAAU,IAAI,2BAA2B;AAC/C,QAAA,KAAK,QAAQ,mBAAmB,6BAA6B;AAC/D,gBAAU,UAAU,IAAI,KAAK,QAAQ,cAAc;AAAA,IAAA;AAEhD,SAAA,gBAAgB,SAAS,cAAc,IAAI;AAC3C,SAAA,cAAc,UAAU,IAAI,KAAK,QAAQ,WAAW,KAAK,QAAQ,aAAa;AAC9E,SAAA,cAAc,MAAM,WAAW;AAAA,oBACpB,KAAK,QAAQ,SAAS;AAAA;AAGtC,UAAM,GAAG,MAAM,OAAO,aAAa,KAAK,gBAAgB;AACxD,UAAM,SAAS,WAAW,EAAE,KAAK,UAAU,GAAG,KAAK,gBAAgB;AACnE,UAAM,SAAS,WAAW,EAAE,KAAK,YAAY,GAAG,KAAK,kBAAkB;AACvE,UAAM,SAAS,WAAW,EAAE,KAAK,QAAQ,GAAG,KAAK,cAAc;AAC/D,UAAM,SAAS,WAAW,EAAE,KAAK,MAAM,GAAG,KAAK,cAAc;AAC7D,UAAM,SAAS,WAAW,EAAE,KAAK,SAAS,GAAG,KAAK,eAAe;AAC3D,UAAA,SAAS,SAAS,MAAM,QAAQ,MAAM,SAAS,SAAS,MAAM,KAAK;AACnE,UAAA,SAAS,SAAS,IAAI,QAAQ,MAAM,SAAS,SAAS,IAAI,KAAK;AAC/D,UAAA,SAAS,SAAS,OAAO,QAAQ,MAAM,SAAS,SAAS,OAAO,KAAK;AAE3E,UAAM,sBAAsB;AAAA,MAC1B,KAAK;AAAA,MACL,UAAU;AAAA,MACV,SAAS,CAAC,OAAO,YAAY;AAC3B,cAAM,cAAc,OAAO,KAAK,QAAQ,MAAM,EAAE;AAAA,UAC9C,CAAC,SAAS,WAAW;AACnB,gBACE,KAAK,MAAM,OAAO,MAAM,QAAQ,MAAM,KAAK,KACxC,CAAC,MAAM,QAAQ,QAAQ,OAAO,MAAM,CAAC,GACxC;AACA,sBAAQ,MAAM,IAAI,QAAQ,OAAO,MAAM;AAAA,YAAA;AAElC,mBAAA;AAAA,UACT;AAAA,UACA,CAAA;AAAA,QACF;AAGA,YAAI,iBAAiB,MAAM,QAAQ,KAAK,WAAW;AAC/C,YAAA,QAAQ,IAAI,MAAA,EACb,OAAO,MAAM,KAAK,EAClB,OAAO,MAAM,MAAM;AACtB,YAAI,KAAK,cAAc;AACb,kBAAA,MAAM,OAAO,MAAM,WAAW;AACtC,2BAAiB,MAAM,QAAQ;AAAA,QAAA;AAGjC,aAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AACnD,aAAK,MAAM,aAAa,gBAAgB,MAAM,QAAQ,MAAM;AAC5D,aAAK,MAAM,MAAM;AAEjB,eAAO,KAAK,QAAQ,MAAM,EAAE,QAAQ,CAAC,SAAS;AAC5C,cAAI,CAACC,aAAA,kBAAkB,YAAY,IAAI,CAAC,EAAG;AAC3C,cAAI,MAAM,QAAQ,QAAQ,OAAO,IAAI,CAAC,EAAG;AACrC,cAAA,SAAS,UAAU,SAAS,OAAQ;AACnC,eAAA,MAAM,OAAO,MAAM,QAAQ,OAAO,IAAI,GAAG,MAAM,QAAQ,IAAI;AAAA,QAAA,CACjE;AAED,aAAK,eAAe;AAAA,MAAA;AAAA,IAExB;AAGM,UAAA,SAAS,SAAS,QAAQ,MAAM,SAAS,SAAS,MAAM,IAAI,CAAC,SAAS;AAC1E,YAAM,uBAAuB,KAAK,WAAW,UAAa,KAAK,aAAa;AAC5E,UAAI,sBAAsB;AACjB,eAAA;AAAA,MAAA,OAEJ;AACI,eAAA;AAAA,MAAA;AAAA,IACT,CACD;AAEI,SAAA,GAAG,SAAS,KAAK,gBAAgB;AACjC,SAAA,GAAG,aAAa,KAAK,gBAAgB;AAC1C,UAAM,QAAQ,GAAGC,UAAAA,wBAAwB,OAAO,EAAE,SAAS,WAAW;AAC9D,YAAA,CAAC,MAAM,IAAK,WAAW,CAAC,OAAO,KAAO,MAAM,KAAK,QAAQ,OAAO,IAAI;AACrE,WAAA,QAAQ,OAAO,MAAM;AAAA,IAAA,CAC3B;AACS,cAAA,YAAY,KAAK,aAAa;AACxC,UAAM,UAAU,cAAc,aAAa,WAAW,MAAM,SAAS;AAAA,EAAA;AAAA,EA7FvE,OAAO,WAAW;AAChB,UAAM,SAASC,uBAAW;AAAA,EAAA;AAAA,EA+F5B,GAAG,WAAW,UAAU;AACtB,SAAK,cAAc,iBAAiB,WAAW,CAAC,QAAQ;AACtD,UACE,SAAS,IAAI;AACX,UAAA;AAEJ,aAAO,KAAK,cAAc,SAAS,MAAM,KAAK,WAAW,KAAK,eAAe;AAC3E,YAAI,OAAO,UAAU,SAAS,KAAK,QAAQ,SAAS,GAAG;AACtC,yBAAA;AAAA,QAAA;AAEjB,iBAAS,OAAO;AAAA,MAAA;AAGlB,UAAI,cAAc;AAChB,iBAAS,KAAK,MAAM,cAAc,KAAK,oBAAoB,YAAY,CAAC;AAAA,MAAA;AAAA,IAC1E,CACD;AAAA,EAAA;AAAA,EAGH,oBAAoB,QAAiB;AACnC,WAAO,CAAA,EAAG,OAAO,KAAK,KAAK,cAAc,UAAU,CAAC,OAAO,MAAM,QAAQ,SAAS,SAAS,MAAM,OAAO,EAAE;AAAA,EAAA;AAAA,EA2C5G,iBAAiB,SAAwB,OAAe;AACjD,SAAA,kBAAkB,OAAO,IAAI;AAClC,SAAK,MAAM,MAAM;AAAA,EAAA;AAAA,EAGnB,iBAAiB,SAAwB,OAAe;AACtD,SAAK,qBAAqB;AAC1B,SAAK,qBAAqB,KAAK;AAAA,EAAA;AAAA,EAsCjC,uBAAuB;AACrB,WAAO,KAAK,cAAc,cAAc,IAAI,KAAK,QAAQ,eAAe,EAAE;AAAA,EAAA;AAAA,EAG5E,SAAS;AACP,WAAO,CAAC,KAAK,cAAc,UAAU,SAAS,KAAK,QAAQ,aAAa;AAAA,EAAA;AAAA,EAG1E,MAAM,wBAAwB,MAAc;AAC1C,UAAM,cAAc,MAAM,KAAK,QAAQ,OAAO,IAAI;AAClD,SAAK,oBAAoB;AACzB,QAAI,CAAC,eAAe,YAAY,WAAW,GAAG;AAC5C,aAAO,KAAK,gBAAgB;AAAA,IAAA;AAG9B,SAAK,gBAAgB,WAAW;AAAA,EAAA;AAAA,EAGlC,gBAAgB,aAAoB;AAC9B,QAAA,CAAC,KAAK,UAAU;AAClB,WAAK,cAAc,UAAU,OAAO,KAAK,QAAQ,aAAa;AAAA,IAAA;AAEhE,SAAK,qBAAqB;AAC1B,SAAK,kBAAkB;AACvB,SAAK,OAAO,WAAW;AAAA,EAAA;AAAA,EAGzB,kBAAkB;AACZ,QAAA,KAAK,UAAU;AACjB,WAAK,qBAAqB;AAC1B,WAAK,cAAc,UAAU,IAAI,KAAK,QAAQ,aAAa;AAAA,IAAA;AAAA,EAC7D;AAAA,EAGF,oBAAoB;AAClB,UAAM,cAAc,KAAK,MAAM,UAAU,WAAW;AACpD,UAAM,eAAe,KAAK,MAAM,UAAU,WAAW;AAC/C,UAAA,EAAE,MAAM,IAAA,IAAQ;AAChB,UAAA,YAAY,KAAK,MAAM;AAC7B,UAAM,cAAc,UAAU;AAC9B,UAAM,EAAE,MAAM,YAAY,KAAK,UAAU,IAAI,UAAU,sBAAsB;AAC7E,UAAM,EAAE,MAAM,iBAAiB,KAAK,eAAe,IAAI,YAAY,sBAAsB;AACzF,UAAM,eAAe,aAAa;AAClC,UAAM,cAAc,YAAY;AAC1B,UAAA,WAAW,OAAO,eAAe;AACjC,UAAA,UAAU,MAAM,cAAc;AAC/B,SAAA,cAAc,MAAM,WAAW;AAAA,cAC1B,QAAQ;AAAA,aACT,OAAO;AAAA;AAAA,EAAA;AAAA,EAIlB,OAAO,aAAoB;AACnB,UAAA,SAAS,SAAS,cAAc,KAAK;AAE3C,OAAG,QAAQ,KAAK,aAAa,CAAC,aAAa,UAAU;AAC7C,YAAA,gBAAgB,SAAS,cAAc,IAAI;AACjD,oBAAc,UAAU,IAAI,KAAK,QAAQ,SAAS;AAC9C,UAAA,UAAU,KAAK,oBAAoB;AACrC,sBAAc,UAAU,IAAI,KAAK,QAAQ,eAAe;AAAA,MAAA;AAE1D,YAAM,eAAe,KAAK,QAAQ,kBAAkB,WAAW;AAC3D,UAAA,OAAO,iBAAiB,UAAU;AACtB,sBAAA,mBAAmB,cAAc,YAAY;AAAA,MAAA,OAExD;AACW,sBAAA,sBAAsB,cAAc,YAAY;AAAA,MAAA;AAEhE,aAAO,YAAY,aAAa;AAAA,IAAA,CACjC;AAEI,SAAA,cAAc,YAAY,OAAO;AAAA,EAAA;AAAA,EAGxC,qBAAqB,OAAe;AAC5B,UAAA,gBAAgB,KAAK,qBAAqB;AAChD,QAAI,eAAe;AACjB,oBAAc,UAAU,OAAO,KAAK,QAAQ,eAAe;AAAA,IAAA;AAGvD,UAAA,gBAAgB,KAAK,cAAc,cAAc,IAAI,KAAK,QAAQ,SAAS,gBAAgB,QAAQ,CAAC,GAAG;AAC7G,QAAI,eAAe;AACjB,oBAAc,UAAU,IAAI,KAAK,QAAQ,eAAe;AACxD,WAAK,eAAe,aAAa;AAAA,IAAA;AAAA,EACnC;AAAA,EAGF,eAAe,MAAqB;AAClC,UAAM,YAAiB;AACvB,QAAI,UAAU,wBAAwB;AACpC,gBAAU,uBAAuB,KAAK;AACtC;AAAA,IAAA;AAEF,QAAI,KAAK,gBAAgB;AACvB,WAAK,eAAe,KAAK;AAAA,IAAA;AAAA,EAC3B;AAAA,EAGF,kBAAkB,QAAQ,KAAK,oBAAoB,SAAmB;AAC9D,UAAA,oBAAoB,KAAK,kBAAkB,KAAK;AACjD,SAAA,kBAAkB,mBAAmB,OAAO;AAC5C,SAAA,QAAQ,OAAO,iBAAiB;AACrC,SAAK,gBAAgB;AAAA,EAAA;AAAA,EAGvB,kBAAkB,mBAAwB,SAAmB;AAC3D,UAAM,UAAU,KAAK,QAAQ,kBAAkB,iBAAiB;AAChE,UAAM,QAAQ,IAAI,MAAM,EACrB,OAAO,KAAK,oBAAoB,EAChC,OAAO,KAAK,iBAAiB,KAAK,oBAAoB,EACtD,OAAO;AAAA,MACN,CAACA,YAAAA,YAAY,QAAQ,GAAG;AAAA,QACtB,MAAM,KAAK,QAAQ;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,MAAM,kBAAkB,QAAQ,KAAK,QAAQ;AAAA,QAC7C,QAAQ,kBAAkB,UAAU,KAAK,QAAQ;AAAA,QACjD,WAAW,KAAK,QAAQ;AAAA,MAAA;AAAA,IAC1B,CACD;AACH,QAAI,SAAS;AACX,WAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,IAAI;AAAA,IAAA,OAEhD;AACH,WAAK,MAAM,eAAe,OAAO,MAAM,QAAQ,GAAG;AAAA,IAAA;AAEpD,SAAK,MAAM,aAAa,KAAK,uBAAuB,GAAG,MAAM,QAAQ,GAAG;AAAA,EAAA;AAE5E;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/shortcut-key/index.ts"],"sourcesContent":["import type { Range } from 'quill'\r\nimport type { Menu, MenuItemsGroup, QuillShortcutKeyInputOptions, QuillShortcutKeyOptions } from 'quill-shortcut-key'\r\nimport type { Context } from 'quill/modules/keyboard'\r\nimport type TypeToolbar from 'quill/modules/toolbar'\r\nimport type FluentEditor from '../../fluent-editor'\r\nimport Quill from 'quill'\r\nimport QuillShortcutKey, { defaultShortKey, searchAndSort } from 'quill-shortcut-key'\r\nimport { CHANGE_LANGUAGE_EVENT } from '../../config'\r\n\r\ninterface ShortCutKeyCustomOptions { isMenuItemsAdd: boolean }\r\ntype ShortCutKeyInputOptions = QuillShortcutKeyInputOptions & ShortCutKeyCustomOptions\r\ntype ShortCutKeyOptions = QuillShortcutKeyOptions & ShortCutKeyCustomOptions\r\n\r\nexport class ShortCutKey extends QuillShortcutKey {\r\n options: ShortCutKeyOptions\r\n constructor(public quill: FluentEditor, options: Partial<ShortCutKeyInputOptions>) {\r\n super(quill, options)\r\n\r\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\r\n this.destroyMenuList()\r\n this.options = this.resolveOptions(options)\r\n this.menuSorter = searchAndSort.bind(this, this.getAllMenuItems()) as (searchText: string) => Menu\r\n this.placeholderTip.remove()\r\n this.placeholderTip = this.initPlaceholder()\r\n this.placeholderUpdate()\r\n })\r\n }\r\n\r\n resolveOptions(options: Partial<ShortCutKeyInputOptions>) {\r\n const defaultMenuItems = this.defaultMenuList()\r\n const value: ShortCutKeyOptions = Object.assign({\r\n placeholder: this.quill.getLangText('input-recall-menu-placeholder'),\r\n menuItems: defaultMenuItems,\r\n isMenuItemsAdd: false,\r\n menuKeyboardControls: () => false,\r\n }, options)\r\n if (value.isMenuItemsAdd) {\r\n value.menuItems = [...defaultMenuItems, ...value.menuItems]\r\n }\r\n\r\n const deepCopyMenuItems = (items: Menu): Menu => {\r\n return items.map((item) => {\r\n const value = {\r\n ...item,\r\n }\r\n if (item.title) {\r\n value.title = this.quill.getLangText(item.title)\r\n }\r\n if (item.type === 'group') {\r\n (value as MenuItemsGroup).children = deepCopyMenuItems(item.children)\r\n }\r\n return value\r\n })\r\n }\r\n value.menuItems = deepCopyMenuItems(value.menuItems)\r\n return value\r\n }\r\n\r\n defaultMenuList() {\r\n const icons = Quill.import('ui/icons') as Record<string, any>\r\n const toolbarHandler = (format: string) => {\r\n return function (range: Range | null) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n toolbarModule.handlers[format].call(toolbarModule, true)\r\n }\r\n }\r\n const formatHandler = (format: string, value: any) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n this.formatLine(range.index, 0, format, value, Quill.sources.USER)\r\n }\r\n }\r\n\r\n return [\r\n ...new Array(6).fill(0).map((_, i) => ({\r\n type: 'item' as const,\r\n name: `h${i + 1}`,\r\n alias: ['header', `head${i + 1}`],\r\n icon: icons.header[i + 1],\r\n title: this.quill.getLangText(`header-${i + 1}`),\r\n onClick: formatHandler('header', i + 1),\r\n })),\r\n {\r\n type: 'item' as const,\r\n name: 'yy',\r\n alias: ['blockquote'],\r\n icon: icons.blockquote,\r\n title: this.quill.getLangText('blockquote'),\r\n onClick: formatHandler('blockquote', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'dm',\r\n alias: ['code', 'codeblock'],\r\n icon: icons['code-block'],\r\n title: this.quill.getLangText('code-block'),\r\n onClick: formatHandler('code-block', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'lj',\r\n alias: ['link'],\r\n icon: icons.link,\r\n title: this.quill.getLangText('link'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const title = 'link'\r\n const link = prompt('Enter link URL')\r\n if (!link) return\r\n this.insertText(range.index, title, Quill.sources.USER)\r\n this.formatText(range.index, range.length + title.length, 'link', link, Quill.sources.USER)\r\n this.setSelection({ index: range.index, length: range.index + title.length })\r\n },\r\n },\r\n {\r\n type: 'group' as const,\r\n name: 'lb',\r\n alias: [],\r\n hideSearch: true,\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list'),\r\n children: [\r\n {\r\n type: 'item' as const,\r\n name: 'wxlb',\r\n alias: ['list', 'bullet'],\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list-bullet'),\r\n onClick: formatHandler('list', 'bullet'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'yxlb',\r\n alias: ['list', 'ordered'],\r\n icon: icons.list.ordered,\r\n title: this.quill.getLangText('list-ordered'),\r\n onClick: formatHandler('list', 'ordered'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'rwlb',\r\n alias: ['list', 'check'],\r\n icon: icons.list.check,\r\n title: this.quill.getLangText('list-check'),\r\n onClick: formatHandler('list', 'unchecked'),\r\n },\r\n ],\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'bq',\r\n alias: ['emoji'],\r\n icon: icons.emoji,\r\n title: this.quill.getLangText('emoji'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n // TODO: keyboard handler emoji select(in emoji module)\r\n toolbarModule.handlers.emoji.call(toolbarModule, true)\r\n },\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'jp',\r\n alias: ['screenshot'],\r\n icon: icons.screenshot,\r\n title: this.quill.getLangText('screenshot'),\r\n onClick: toolbarHandler('screenshot'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'gs',\r\n alias: ['formula'],\r\n icon: icons.formula,\r\n title: this.quill.getLangText('formula'),\r\n onClick: toolbarHandler('formula'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'tp',\r\n alias: ['image', 'pic', 'picture'],\r\n icon: icons.image,\r\n title: this.quill.getLangText('image'),\r\n onClick: toolbarHandler('image'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'sp',\r\n alias: ['video'],\r\n icon: icons.video,\r\n title: this.quill.getLangText('video'),\r\n onClick: toolbarHandler('video'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'wj',\r\n alias: ['file'],\r\n icon: icons.file,\r\n title: this.quill.getLangText('file'),\r\n onClick: toolbarHandler('file'),\r\n },\r\n ]\r\n }\r\n}\r\n\r\nexport const shortKey = {\r\n ...defaultShortKey,\r\n link: {\r\n key: 'k',\r\n shortKey: true,\r\n handler(_, context: Context) {\r\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\r\n if (!toolbar) return\r\n toolbar.handlers.link.call(toolbar, !context.format.link)\r\n },\r\n },\r\n color: {\r\n key: 'c',\r\n altKey: true,\r\n shortKey: true,\r\n handler() {\r\n const selected = this.quill.getModule('toolbar').container.querySelector('.ql-color.ql-color-picker .ql-picker-options .ql-selected')\r\n this.quill.format('color', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n background: {\r\n key: 'b',\r\n altKey: true,\r\n shortKey: true,\r\n handler() {\r\n const selected = this.quill.getModule('toolbar').container.querySelector('.ql-background.ql-color-picker .ql-picker-options .ql-selected')\r\n this.quill.format('background', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n}\r\n"],"names":["CHANGE_LANGUAGE_EVENT","searchAndSort","value","defaultShortKey"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/shortcut-key/index.ts"],"sourcesContent":["import type { Range } from 'quill'\r\nimport type { Menu, MenuItemsGroup, QuillShortcutKeyInputOptions, QuillShortcutKeyOptions } from 'quill-shortcut-key'\r\nimport type { Context } from 'quill/modules/keyboard'\r\nimport type TypeToolbar from 'quill/modules/toolbar'\r\nimport type FluentEditor from '../../fluent-editor'\r\nimport Quill from 'quill'\r\nimport QuillShortcutKey, { defaultShortKey, searchAndSort } from 'quill-shortcut-key'\r\nimport { CHANGE_LANGUAGE_EVENT } from '../../config'\r\n\r\nexport interface ShortCutKeyCustomOptions { isMenuItemsAdd: boolean }\r\nexport type ShortCutKeyInputOptions = QuillShortcutKeyInputOptions & ShortCutKeyCustomOptions\r\nexport type ShortCutKeyOptions = QuillShortcutKeyOptions & ShortCutKeyCustomOptions\r\n\r\nexport class ShortCutKey extends QuillShortcutKey {\r\n constructor(public quill: FluentEditor, options: Partial<ShortCutKeyInputOptions>) {\r\n super(quill, options)\r\n\r\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\r\n this.destroyMenuList()\r\n this.options = this.resolveOptions(options)\r\n this.menuSorter = searchAndSort.bind(this, this.getAllMenuItems()) as (searchText: string) => Menu\r\n this.placeholderTip.remove()\r\n this.placeholderTip = this.initPlaceholder()\r\n this.placeholderUpdate()\r\n })\r\n }\r\n\r\n resolveOptions(options: Partial<ShortCutKeyInputOptions>) {\r\n const defaultMenuItems = this.defaultMenuList()\r\n const value: ShortCutKeyOptions = Object.assign({\r\n placeholder: this.quill.getLangText('input-recall-menu-placeholder'),\r\n menuItems: defaultMenuItems,\r\n isMenuItemsAdd: false,\r\n menuKeyboardControls: () => false,\r\n }, options)\r\n if (value.isMenuItemsAdd) {\r\n value.menuItems = [...defaultMenuItems, ...value.menuItems]\r\n }\r\n\r\n const deepCopyMenuItems = (items: Menu): Menu => {\r\n return items.map((item) => {\r\n const value = {\r\n ...item,\r\n }\r\n if (item.title) {\r\n value.title = this.quill.getLangText(item.title)\r\n }\r\n if (item.type === 'group') {\r\n (value as MenuItemsGroup).children = deepCopyMenuItems(item.children)\r\n }\r\n return value\r\n })\r\n }\r\n value.menuItems = deepCopyMenuItems(value.menuItems)\r\n return value\r\n }\r\n\r\n defaultMenuList() {\r\n const icons = Quill.import('ui/icons') as Record<string, any>\r\n const toolbarHandler = (format: string) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n toolbarModule.handlers[format].call(toolbarModule, true)\r\n }\r\n }\r\n const formatHandler = (format: string, value: any) => {\r\n return function (this: Quill, range: Range | null) {\r\n if (!range) return\r\n this.formatLine(range.index, 0, format, value, Quill.sources.USER)\r\n }\r\n }\r\n\r\n return [\r\n ...new Array(6).fill(0).map((_, i) => ({\r\n type: 'item' as const,\r\n name: `h${i + 1}`,\r\n alias: ['header', `head${i + 1}`],\r\n icon: icons.header[i + 1],\r\n title: this.quill.getLangText(`header-${i + 1}`),\r\n onClick: formatHandler('header', i + 1),\r\n })),\r\n {\r\n type: 'item' as const,\r\n name: 'yy',\r\n alias: ['blockquote'],\r\n icon: icons.blockquote,\r\n title: this.quill.getLangText('blockquote'),\r\n onClick: formatHandler('blockquote', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'dm',\r\n alias: ['code', 'codeblock'],\r\n icon: icons['code-block'],\r\n title: this.quill.getLangText('code-block'),\r\n onClick: formatHandler('code-block', true),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'lj',\r\n alias: ['link'],\r\n icon: icons.link,\r\n title: this.quill.getLangText('link'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const title = 'link'\r\n const link = prompt('Enter link URL')\r\n if (!link) return\r\n this.insertText(range.index, title, Quill.sources.USER)\r\n this.formatText(range.index, range.length + title.length, 'link', link, Quill.sources.USER)\r\n this.setSelection({ index: range.index, length: range.index + title.length })\r\n },\r\n },\r\n {\r\n type: 'group' as const,\r\n name: 'lb',\r\n alias: [],\r\n hideSearch: true,\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list'),\r\n children: [\r\n {\r\n type: 'item' as const,\r\n name: 'wxlb',\r\n alias: ['list', 'bullet'],\r\n icon: icons.list.bullet,\r\n title: this.quill.getLangText('list-bullet'),\r\n onClick: formatHandler('list', 'bullet'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'yxlb',\r\n alias: ['list', 'ordered'],\r\n icon: icons.list.ordered,\r\n title: this.quill.getLangText('list-ordered'),\r\n onClick: formatHandler('list', 'ordered'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'rwlb',\r\n alias: ['list', 'check'],\r\n icon: icons.list.check,\r\n title: this.quill.getLangText('list-check'),\r\n onClick: formatHandler('list', 'unchecked'),\r\n },\r\n ],\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'bq',\r\n alias: ['emoji'],\r\n icon: icons.emoji,\r\n title: this.quill.getLangText('emoji'),\r\n onClick(this: Quill, range: Range | null, _: any) {\r\n if (!range) return\r\n const toolbarModule = this.getModule('toolbar') as TypeToolbar\r\n if (!toolbarModule) return\r\n // TODO: keyboard handler emoji select(in emoji module)\r\n toolbarModule.handlers.emoji.call(toolbarModule, true)\r\n },\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'jp',\r\n alias: ['screenshot'],\r\n icon: icons.screenshot,\r\n title: this.quill.getLangText('screenshot'),\r\n onClick: toolbarHandler('screenshot'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'gs',\r\n alias: ['formula'],\r\n icon: icons.formula,\r\n title: this.quill.getLangText('formula'),\r\n onClick: toolbarHandler('formula'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'tp',\r\n alias: ['image', 'pic', 'picture'],\r\n icon: icons.image,\r\n title: this.quill.getLangText('image'),\r\n onClick: toolbarHandler('image'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'sp',\r\n alias: ['video'],\r\n icon: icons.video,\r\n title: this.quill.getLangText('video'),\r\n onClick: toolbarHandler('video'),\r\n },\r\n {\r\n type: 'item' as const,\r\n name: 'wj',\r\n alias: ['file'],\r\n icon: icons.file,\r\n title: this.quill.getLangText('file'),\r\n onClick: toolbarHandler('file'),\r\n },\r\n ]\r\n }\r\n}\r\n\r\nexport const shortKey = {\r\n ...defaultShortKey,\r\n link: {\r\n key: 'k',\r\n shortKey: true,\r\n handler(this: { quill: Quill }, _: any, context: Context) {\r\n const toolbar = this.quill.getModule('toolbar') as TypeToolbar\r\n if (!toolbar) return\r\n toolbar.handlers.link.call(toolbar, !context.format.link)\r\n },\r\n },\r\n color: {\r\n key: 'c',\r\n altKey: true,\r\n shortKey: true,\r\n handler(this: { quill: Quill }) {\r\n const selected = (this.quill.getModule('toolbar') as TypeToolbar).container!.querySelector('.ql-color.ql-color-picker .ql-picker-options .ql-selected') as HTMLElement\r\n this.quill.format('color', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n background: {\r\n key: 'b',\r\n altKey: true,\r\n shortKey: true,\r\n handler(this: { quill: Quill }) {\r\n const selected = (this.quill.getModule('toolbar') as TypeToolbar).container!.querySelector('.ql-background.ql-color-picker .ql-picker-options .ql-selected') as HTMLElement\r\n this.quill.format('background', selected?.dataset?.value || false, Quill.sources.USER)\r\n },\r\n },\r\n}\r\n"],"names":["CHANGE_LANGUAGE_EVENT","searchAndSort","value","defaultShortKey"],"mappings":"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"}
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
2
5
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
6
  const Quill = require("quill");
4
7
  const Syntax = Quill.import("modules/syntax");
5
8
  class CustomSyntax extends Syntax {
6
9
  }
10
+ __publicField(CustomSyntax, "DEFAULTS");
7
11
  CustomSyntax.DEFAULTS = {
8
12
  hljs: (() => {
9
13
  return window.hljs;
@@ -1 +1 @@
1
- {"version":3,"file":"syntax.cjs.js","sources":["../../../src/modules/syntax.ts"],"sourcesContent":["import type TypeSyntax from 'quill/modules/syntax'\r\nimport Quill from 'quill'\r\n\r\nconst Syntax = Quill.import('modules/syntax') as typeof TypeSyntax\r\n\r\n// @dynamic\r\nclass CustomSyntax extends Syntax {\r\n static DEFAULTS: { hljs: any, interval: number, languages: { key: string, label: string }[] }\r\n}\r\n\r\nCustomSyntax.DEFAULTS = {\r\n hljs: (() => {\r\n // @ts-ignore\r\n return window.hljs\r\n })(),\r\n interval: 1000,\r\n languages: [\r\n { key: 'plain', label: 'Plain' },\r\n { key: 'bash', label: 'Bash' },\r\n { key: 'cpp', label: 'C++' },\r\n { key: 'cs', label: 'C#' },\r\n { key: 'css', label: 'CSS' },\r\n { key: 'diff', label: 'Diff' },\r\n { key: 'xml', label: 'HTML/XML' },\r\n { key: 'java', label: 'Java' },\r\n { key: 'javascript', label: 'Javascript' },\r\n { key: 'markdown', label: 'Markdown' },\r\n { key: 'php', label: 'PHP' },\r\n { key: 'python', label: 'Python' },\r\n { key: 'ruby', label: 'Ruby' },\r\n { key: 'sql', label: 'SQL' },\r\n ],\r\n}\r\n\r\nexport default CustomSyntax\r\n"],"names":[],"mappings":";;;AAGA,MAAM,SAAS,MAAM,OAAO,gBAAgB;AAG5C,MAAM,qBAAqB,OAAO;AAElC;AAEA,aAAa,WAAW;AAAA,EACtB,OAAO,MAAM;AAEX,WAAO,OAAO;AAAA,EAAA,GACb;AAAA,EACH,UAAU;AAAA,EACV,WAAW;AAAA,IACT,EAAE,KAAK,SAAS,OAAO,QAAQ;AAAA,IAC/B,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,MAAM,OAAO,KAAK;AAAA,IACzB,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,WAAW;AAAA,IAChC,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,cAAc,OAAO,aAAa;AAAA,IACzC,EAAE,KAAK,YAAY,OAAO,WAAW;AAAA,IACrC,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,UAAU,OAAO,SAAS;AAAA,IACjC,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,EAAA;AAE/B;;"}
1
+ {"version":3,"file":"syntax.cjs.js","sources":["../../../src/modules/syntax.ts"],"sourcesContent":["import type TypeSyntax from 'quill/modules/syntax'\r\nimport Quill from 'quill'\r\n\r\nconst Syntax = Quill.import('modules/syntax') as typeof TypeSyntax\r\n\r\n// @dynamic\r\nclass CustomSyntax extends Syntax {\r\n static DEFAULTS: { hljs: any, interval: number, languages: { key: string, label: string }[] }\r\n}\r\n\r\nCustomSyntax.DEFAULTS = {\r\n hljs: (() => {\r\n // @ts-ignore\r\n return window.hljs\r\n })(),\r\n interval: 1000,\r\n languages: [\r\n { key: 'plain', label: 'Plain' },\r\n { key: 'bash', label: 'Bash' },\r\n { key: 'cpp', label: 'C++' },\r\n { key: 'cs', label: 'C#' },\r\n { key: 'css', label: 'CSS' },\r\n { key: 'diff', label: 'Diff' },\r\n { key: 'xml', label: 'HTML/XML' },\r\n { key: 'java', label: 'Java' },\r\n { key: 'javascript', label: 'Javascript' },\r\n { key: 'markdown', label: 'Markdown' },\r\n { key: 'php', label: 'PHP' },\r\n { key: 'python', label: 'Python' },\r\n { key: 'ruby', label: 'Ruby' },\r\n { key: 'sql', label: 'SQL' },\r\n ],\r\n}\r\n\r\nexport default CustomSyntax\r\n"],"names":[],"mappings":";;;;;;AAGA,MAAM,SAAS,MAAM,OAAO,gBAAgB;AAG5C,MAAM,qBAAqB,OAAO;AAElC;AADE,cADI,cACG;AAGT,aAAa,WAAW;AAAA,EACtB,OAAO,MAAM;AAEX,WAAO,OAAO;AAAA,EAAA,GACb;AAAA,EACH,UAAU;AAAA,EACV,WAAW;AAAA,IACT,EAAE,KAAK,SAAS,OAAO,QAAQ;AAAA,IAC/B,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,MAAM,OAAO,KAAK;AAAA,IACzB,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,WAAW;AAAA,IAChC,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,cAAc,OAAO,aAAa;AAAA,IACzC,EAAE,KAAK,YAAY,OAAO,WAAW;AAAA,IACrC,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,IAC3B,EAAE,KAAK,UAAU,OAAO,SAAS;AAAA,IACjC,EAAE,KAAK,QAAQ,OAAO,OAAO;AAAA,IAC7B,EAAE,KAAK,OAAO,OAAO,MAAM;AAAA,EAAA;AAE/B;;"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
2
5
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  require("../../config/index.cjs.js");
4
7
  const editor_config = require("../../config/editor.config.cjs.js");
@@ -6,6 +9,7 @@ function generateTableUp(QuillTableUp) {
6
9
  return class extends QuillTableUp {
7
10
  constructor(quill, options) {
8
11
  super(quill, options);
12
+ __publicField(this, "tableSelection");
9
13
  this.quill = quill;
10
14
  this.quill.emitter.on(editor_config.CHANGE_LANGUAGE_EVENT, () => {
11
15
  this.options.texts = this.resolveTexts(options.texts);
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/table-up/index.ts"],"sourcesContent":["import type { Parchment } from 'quill'\r\nimport type Toolbar from 'quill/modules/toolbar'\r\nimport type BaseTheme from 'quill/themes/base'\r\nimport type Picker from 'quill/ui/picker'\r\nimport type { Constructor } from '../../config/types'\r\nimport type FluentEditor from '../../core/fluent-editor'\r\nimport { CHANGE_LANGUAGE_EVENT } from '../../config'\r\n\r\ninterface QuillTheme extends BaseTheme {\r\n pickers: QuillThemePicker[]\r\n}\r\ntype QuillThemePicker = (Picker & { options: HTMLElement })\r\ninterface InternalModule {\r\n show: () => void\r\n hide: () => void\r\n update: () => void\r\n destroy: () => void\r\n}\r\ninterface InternalTableSelectionModule extends InternalModule {\r\n dragging: boolean\r\n boundary: {\r\n x: number\r\n y: number\r\n x1: number\r\n y1: number\r\n width: number\r\n height: number\r\n } | null\r\n selectedTds: Parchment.Blot[]\r\n cellSelect: HTMLElement\r\n tableMenu?: InternalModule\r\n computeSelectedTds: (\r\n startPoint: {\r\n x: number\r\n y: number\r\n },\r\n endPoint: {\r\n x: number\r\n y: number\r\n }\r\n ) => Parchment.Blot[]\r\n updateWithSelectedTds: () => void\r\n}\r\nexport function generateTableUp(QuillTableUp: Constructor) {\r\n return class extends QuillTableUp {\r\n tableSelection?: InternalTableSelectionModule\r\n constructor(public quill: FluentEditor, options: Partial<any>) {\r\n super(quill, options)\r\n\r\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\r\n this.options.texts = this.resolveTexts(options.texts)\r\n const toolbar = this.quill.getModule('toolbar') as Toolbar\r\n if (toolbar && (this.quill.theme as QuillTheme).pickers) {\r\n const [, select] = (toolbar.controls as [string, HTMLElement][] || []).find(([name]) => name === this.statics.toolName) || []\r\n if (select && select.tagName.toLocaleLowerCase() === 'select') {\r\n const picker = (this.quill.theme as QuillTheme).pickers.find(picker => picker.select === select)\r\n if (picker) {\r\n this.buildCustomSelect(this.options.customSelect, picker)\r\n }\r\n }\r\n }\r\n if (this.tableSelection) {\r\n this.tableSelection.destroy()\r\n }\r\n if (this.options.selection) {\r\n // eslint-disable-next-line new-cap\r\n this.tableSelection = new this.options.selection(this, this.quill, this.options.selectionOptions)\r\n }\r\n })\r\n }\r\n\r\n resolveTexts(options: Partial<Record<string, string>> = {}) {\r\n return Object.assign({\r\n fullCheckboxText: this.quill.getLangText('fullCheckboxText'),\r\n customBtnText: this.quill.getLangText('customBtnText'),\r\n confirmText: this.quill.getLangText('confirmText'),\r\n cancelText: this.quill.getLangText('cancelText'),\r\n rowText: this.quill.getLangText('rowText'),\r\n colText: this.quill.getLangText('colText'),\r\n notPositiveNumberError: this.quill.getLangText('notPositiveNumberError'),\r\n custom: this.quill.getLangText('custom'),\r\n clear: this.quill.getLangText('clear'),\r\n transparent: this.quill.getLangText('transparent'),\r\n perWidthInsufficient: this.quill.getLangText('perWidthInsufficient'),\r\n CopyCell: this.quill.getLangText('CopyCell'),\r\n CutCell: this.quill.getLangText('CutCell'),\r\n InsertTop: this.quill.getLangText('InsertTop'),\r\n InsertRight: this.quill.getLangText('InsertRight'),\r\n InsertBottom: this.quill.getLangText('InsertBottom'),\r\n InsertLeft: this.quill.getLangText('InsertLeft'),\r\n MergeCell: this.quill.getLangText('MergeCell'),\r\n SplitCell: this.quill.getLangText('SplitCell'),\r\n DeleteRow: this.quill.getLangText('DeleteRow'),\r\n DeleteColumn: this.quill.getLangText('DeleteColumn'),\r\n DeleteTable: this.quill.getLangText('DeleteTable'),\r\n BackgroundColor: this.quill.getLangText('BackgroundColor'),\r\n BorderColor: this.quill.getLangText('BorderColor'),\r\n }, Object.entries(options).reduce((pre, [key, value]) => {\r\n pre[key] = this.quill.getLangText(value)\r\n return pre\r\n }, {}))\r\n }\r\n }\r\n}\r\n"],"names":["CHANGE_LANGUAGE_EVENT","picker"],"mappings":";;;;AA2CO,SAAS,gBAAgB,cAA2B;AACzD,SAAO,cAAc,aAAa;AAAA,IAEhC,YAAmB,OAAqB,SAAuB;AAC7D,YAAM,OAAO,OAAO;AADH,WAAA,QAAA;AAGjB,WAAK,MAAM,QAAQ,GAAGA,cAAA,uBAAuB,MAAM;AACjD,aAAK,QAAQ,QAAQ,KAAK,aAAa,QAAQ,KAAK;AACpD,cAAM,UAAU,KAAK,MAAM,UAAU,SAAS;AAC9C,YAAI,WAAY,KAAK,MAAM,MAAqB,SAAS;AACvD,gBAAM,CAAA,EAAG,MAAM,KAAK,QAAQ,YAAuC,CAAI,GAAA,KAAK,CAAC,CAAC,IAAI,MAAM,SAAS,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAC5H,cAAI,UAAU,OAAO,QAAQ,kBAAA,MAAwB,UAAU;AACvD,kBAAA,SAAU,KAAK,MAAM,MAAqB,QAAQ,KAAK,CAAAC,YAAUA,QAAO,WAAW,MAAM;AAC/F,gBAAI,QAAQ;AACV,mBAAK,kBAAkB,KAAK,QAAQ,cAAc,MAAM;AAAA,YAAA;AAAA,UAC1D;AAAA,QACF;AAEF,YAAI,KAAK,gBAAgB;AACvB,eAAK,eAAe,QAAQ;AAAA,QAAA;AAE1B,YAAA,KAAK,QAAQ,WAAW;AAErB,eAAA,iBAAiB,IAAI,KAAK,QAAQ,UAAU,MAAM,KAAK,OAAO,KAAK,QAAQ,gBAAgB;AAAA,QAAA;AAAA,MAClG,CACD;AAAA,IAAA;AAAA,IAGH,aAAa,UAA2C,IAAI;AAC1D,aAAO,OAAO,OAAO;AAAA,QACnB,kBAAkB,KAAK,MAAM,YAAY,kBAAkB;AAAA,QAC3D,eAAe,KAAK,MAAM,YAAY,eAAe;AAAA,QACrD,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,YAAY,KAAK,MAAM,YAAY,YAAY;AAAA,QAC/C,SAAS,KAAK,MAAM,YAAY,SAAS;AAAA,QACzC,SAAS,KAAK,MAAM,YAAY,SAAS;AAAA,QACzC,wBAAwB,KAAK,MAAM,YAAY,wBAAwB;AAAA,QACvE,QAAQ,KAAK,MAAM,YAAY,QAAQ;AAAA,QACvC,OAAO,KAAK,MAAM,YAAY,OAAO;AAAA,QACrC,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,sBAAsB,KAAK,MAAM,YAAY,sBAAsB;AAAA,QACnE,UAAU,KAAK,MAAM,YAAY,UAAU;AAAA,QAC3C,SAAS,KAAK,MAAM,YAAY,SAAS;AAAA,QACzC,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,cAAc,KAAK,MAAM,YAAY,cAAc;AAAA,QACnD,YAAY,KAAK,MAAM,YAAY,YAAY;AAAA,QAC/C,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,cAAc,KAAK,MAAM,YAAY,cAAc;AAAA,QACnD,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,iBAAiB,KAAK,MAAM,YAAY,iBAAiB;AAAA,QACzD,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,MAAA,GAChD,OAAO,QAAQ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AACvD,YAAI,GAAG,IAAI,KAAK,MAAM,YAAY,KAAK;AAChC,eAAA;AAAA,MACT,GAAG,CAAE,CAAA,CAAC;AAAA,IAAA;AAAA,EAEV;AACF;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../../src/modules/table-up/index.ts"],"sourcesContent":["import type { Parchment } from 'quill'\r\nimport type Toolbar from 'quill/modules/toolbar'\r\nimport type BaseTheme from 'quill/themes/base'\r\nimport type Picker from 'quill/ui/picker'\r\nimport type { Constructor } from '../../config/types'\r\nimport type FluentEditor from '../../core/fluent-editor'\r\nimport { CHANGE_LANGUAGE_EVENT } from '../../config'\r\n\r\ninterface QuillTheme extends BaseTheme {\r\n pickers: QuillThemePicker[]\r\n}\r\ntype QuillThemePicker = (Picker & { options: HTMLElement })\r\ninterface InternalModule {\r\n show: () => void\r\n hide: () => void\r\n update: () => void\r\n destroy: () => void\r\n}\r\nexport interface InternalTableSelectionModule extends InternalModule {\r\n dragging: boolean\r\n boundary: {\r\n x: number\r\n y: number\r\n x1: number\r\n y1: number\r\n width: number\r\n height: number\r\n } | null\r\n selectedTds: Parchment.Blot[]\r\n cellSelect: HTMLElement\r\n tableMenu?: InternalModule\r\n computeSelectedTds: (\r\n startPoint: {\r\n x: number\r\n y: number\r\n },\r\n endPoint: {\r\n x: number\r\n y: number\r\n }\r\n ) => Parchment.Blot[]\r\n updateWithSelectedTds: () => void\r\n}\r\nexport function generateTableUp(QuillTableUp: Constructor) {\r\n return class extends QuillTableUp {\r\n tableSelection?: InternalTableSelectionModule\r\n constructor(public quill: FluentEditor, options: Partial<any>) {\r\n super(quill, options)\r\n\r\n this.quill.emitter.on(CHANGE_LANGUAGE_EVENT, () => {\r\n this.options.texts = this.resolveTexts(options.texts)\r\n const toolbar = this.quill.getModule('toolbar') as Toolbar\r\n if (toolbar && (this.quill.theme as QuillTheme).pickers) {\r\n const [, select] = (toolbar.controls as [string, HTMLElement][] || []).find(([name]) => name === this.statics.toolName) || []\r\n if (select && select.tagName.toLocaleLowerCase() === 'select') {\r\n const picker = (this.quill.theme as QuillTheme).pickers.find(picker => picker.select === select)\r\n if (picker) {\r\n this.buildCustomSelect(this.options.customSelect, picker)\r\n }\r\n }\r\n }\r\n if (this.tableSelection) {\r\n this.tableSelection.destroy()\r\n }\r\n if (this.options.selection) {\r\n // eslint-disable-next-line new-cap\r\n this.tableSelection = new this.options.selection(this, this.quill, this.options.selectionOptions)\r\n }\r\n })\r\n }\r\n\r\n resolveTexts(options: Record<string, string> = {}) {\r\n return Object.assign({\r\n fullCheckboxText: this.quill.getLangText('fullCheckboxText'),\r\n customBtnText: this.quill.getLangText('customBtnText'),\r\n confirmText: this.quill.getLangText('confirmText'),\r\n cancelText: this.quill.getLangText('cancelText'),\r\n rowText: this.quill.getLangText('rowText'),\r\n colText: this.quill.getLangText('colText'),\r\n notPositiveNumberError: this.quill.getLangText('notPositiveNumberError'),\r\n custom: this.quill.getLangText('custom'),\r\n clear: this.quill.getLangText('clear'),\r\n transparent: this.quill.getLangText('transparent'),\r\n perWidthInsufficient: this.quill.getLangText('perWidthInsufficient'),\r\n CopyCell: this.quill.getLangText('CopyCell'),\r\n CutCell: this.quill.getLangText('CutCell'),\r\n InsertTop: this.quill.getLangText('InsertTop'),\r\n InsertRight: this.quill.getLangText('InsertRight'),\r\n InsertBottom: this.quill.getLangText('InsertBottom'),\r\n InsertLeft: this.quill.getLangText('InsertLeft'),\r\n MergeCell: this.quill.getLangText('MergeCell'),\r\n SplitCell: this.quill.getLangText('SplitCell'),\r\n DeleteRow: this.quill.getLangText('DeleteRow'),\r\n DeleteColumn: this.quill.getLangText('DeleteColumn'),\r\n DeleteTable: this.quill.getLangText('DeleteTable'),\r\n BackgroundColor: this.quill.getLangText('BackgroundColor'),\r\n BorderColor: this.quill.getLangText('BorderColor'),\r\n }, Object.entries(options).reduce((pre, [key, value]) => {\r\n pre[key] = this.quill.getLangText(value)\r\n return pre\r\n }, {} as Record<string, string>))\r\n }\r\n }\r\n}\r\n"],"names":["CHANGE_LANGUAGE_EVENT","picker"],"mappings":";;;;;;;AA2CO,SAAS,gBAAgB,cAA2B;AACzD,SAAO,cAAc,aAAa;AAAA,IAEhC,YAAmB,OAAqB,SAAuB;AAC7D,YAAM,OAAO,OAAO;AAFtB;AACmB,WAAA,QAAA;AAGjB,WAAK,MAAM,QAAQ,GAAGA,cAAA,uBAAuB,MAAM;AACjD,aAAK,QAAQ,QAAQ,KAAK,aAAa,QAAQ,KAAK;AACpD,cAAM,UAAU,KAAK,MAAM,UAAU,SAAS;AAC9C,YAAI,WAAY,KAAK,MAAM,MAAqB,SAAS;AACvD,gBAAM,CAAA,EAAG,MAAM,KAAK,QAAQ,YAAuC,CAAI,GAAA,KAAK,CAAC,CAAC,IAAI,MAAM,SAAS,KAAK,QAAQ,QAAQ,KAAK,CAAC;AAC5H,cAAI,UAAU,OAAO,QAAQ,kBAAA,MAAwB,UAAU;AACvD,kBAAA,SAAU,KAAK,MAAM,MAAqB,QAAQ,KAAK,CAAAC,YAAUA,QAAO,WAAW,MAAM;AAC/F,gBAAI,QAAQ;AACV,mBAAK,kBAAkB,KAAK,QAAQ,cAAc,MAAM;AAAA,YAAA;AAAA,UAC1D;AAAA,QACF;AAEF,YAAI,KAAK,gBAAgB;AACvB,eAAK,eAAe,QAAQ;AAAA,QAAA;AAE1B,YAAA,KAAK,QAAQ,WAAW;AAErB,eAAA,iBAAiB,IAAI,KAAK,QAAQ,UAAU,MAAM,KAAK,OAAO,KAAK,QAAQ,gBAAgB;AAAA,QAAA;AAAA,MAClG,CACD;AAAA,IAAA;AAAA,IAGH,aAAa,UAAkC,IAAI;AACjD,aAAO,OAAO,OAAO;AAAA,QACnB,kBAAkB,KAAK,MAAM,YAAY,kBAAkB;AAAA,QAC3D,eAAe,KAAK,MAAM,YAAY,eAAe;AAAA,QACrD,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,YAAY,KAAK,MAAM,YAAY,YAAY;AAAA,QAC/C,SAAS,KAAK,MAAM,YAAY,SAAS;AAAA,QACzC,SAAS,KAAK,MAAM,YAAY,SAAS;AAAA,QACzC,wBAAwB,KAAK,MAAM,YAAY,wBAAwB;AAAA,QACvE,QAAQ,KAAK,MAAM,YAAY,QAAQ;AAAA,QACvC,OAAO,KAAK,MAAM,YAAY,OAAO;AAAA,QACrC,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,sBAAsB,KAAK,MAAM,YAAY,sBAAsB;AAAA,QACnE,UAAU,KAAK,MAAM,YAAY,UAAU;AAAA,QAC3C,SAAS,KAAK,MAAM,YAAY,SAAS;AAAA,QACzC,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,cAAc,KAAK,MAAM,YAAY,cAAc;AAAA,QACnD,YAAY,KAAK,MAAM,YAAY,YAAY;AAAA,QAC/C,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,WAAW,KAAK,MAAM,YAAY,WAAW;AAAA,QAC7C,cAAc,KAAK,MAAM,YAAY,cAAc;AAAA,QACnD,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,QACjD,iBAAiB,KAAK,MAAM,YAAY,iBAAiB;AAAA,QACzD,aAAa,KAAK,MAAM,YAAY,aAAa;AAAA,MAAA,GAChD,OAAO,QAAQ,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,MAAM;AACvD,YAAI,GAAG,IAAI,KAAK,MAAM,YAAY,KAAK;AAChC,eAAA;AAAA,MACT,GAAG,CAA4B,CAAA,CAAC;AAAA,IAAA;AAAA,EAEpC;AACF;;"}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
2
5
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
6
  const quillEasyColor = require("quill-easy-color");
4
7
  const fluentEditor = require("../../core/fluent-editor.cjs.js");
@@ -54,6 +57,8 @@ class ColorPicker extends quillEasyColor.EasyColorPicker {
54
57
  return item;
55
58
  }
56
59
  }
60
+ __publicField(ColorPicker, "clearText");
61
+ __publicField(ColorPicker, "customText");
57
62
  exports.ColorPicker = ColorPicker;
58
63
  exports.Picker = Picker;
59
64
  //# sourceMappingURL=better-picker.cjs.js.map