@opentiny/fluent-editor 4.0.0-alpha.9 → 4.0.0-beta.0

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 (385) hide show
  1. package/README.md +88 -88
  2. package/es/attributors/line-height.es.js.map +1 -1
  3. package/es/config/base64-image.es.js.map +1 -1
  4. package/es/config/editor.config.es.js +27 -0
  5. package/es/config/editor.config.es.js.map +1 -1
  6. package/es/config/editor.utils.es.js.map +1 -1
  7. package/es/config/i18n/en-us.es.js +2 -0
  8. package/es/config/i18n/en-us.es.js.map +1 -1
  9. package/es/config/i18n/zh-cn.es.js +2 -0
  10. package/es/config/i18n/zh-cn.es.js.map +1 -1
  11. package/es/config/index.es.js +3 -1
  12. package/es/config/index.es.js.map +1 -1
  13. package/es/core/fluent-editor.es.js.map +1 -1
  14. package/es/fluent-editor.es.js +17 -13
  15. package/es/fluent-editor.es.js.map +1 -1
  16. package/es/formats/emoji.es.js.map +1 -1
  17. package/es/formats/soft-break.es.js.map +1 -1
  18. package/es/formats/strike.es.js.map +1 -1
  19. package/es/formats/video.es.js.map +1 -1
  20. package/es/index.es.js +35 -2
  21. package/es/index.es.js.map +1 -1
  22. package/es/modules/ai/constants.es.js.map +1 -1
  23. package/es/modules/ai/icons.es.js.map +1 -1
  24. package/es/modules/ai/index.es.js +1 -1
  25. package/es/modules/ai/index.es.js.map +1 -1
  26. package/es/modules/collaborative-editing/awareness/awareness.es.js +6 -7
  27. package/es/modules/collaborative-editing/awareness/awareness.es.js.map +1 -1
  28. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js +7 -3
  29. package/es/modules/collaborative-editing/awareness/y-indexeddb.es.js.map +1 -1
  30. package/es/modules/collaborative-editing/collaborative-editing.es.js +13 -8
  31. package/es/modules/collaborative-editing/collaborative-editing.es.js.map +1 -1
  32. package/es/modules/collaborative-editing/module.es.js.map +1 -1
  33. package/es/modules/collaborative-editing/provider/providerRegistry.es.js.map +1 -1
  34. package/es/modules/collaborative-editing/provider/webrtc.es.js +8 -4
  35. package/es/modules/collaborative-editing/provider/webrtc.es.js.map +1 -1
  36. package/es/modules/collaborative-editing/provider/websocket.es.js +6 -4
  37. package/es/modules/collaborative-editing/provider/websocket.es.js.map +1 -1
  38. package/es/modules/counter.es.js.map +1 -1
  39. package/es/modules/custom-clipboard.es.js.map +1 -1
  40. package/es/modules/custom-image/actions/action.es.js.map +1 -1
  41. package/es/modules/custom-image/actions/custom-resize-action.es.js.map +1 -1
  42. package/es/modules/custom-image/actions/delete-action.es.js.map +1 -1
  43. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js +1 -1
  44. package/es/modules/custom-image/actions/image-toolbar-buttons.es.js.map +1 -1
  45. package/es/modules/custom-image/actions/toolbar-action.es.js.map +1 -1
  46. package/es/modules/custom-image/actions/toolbar.es.js.map +1 -1
  47. package/es/modules/custom-image/blot-formatter.es.js +1 -1
  48. package/es/modules/custom-image/blot-formatter.es.js.map +1 -1
  49. package/es/modules/custom-image/image.es.js.map +1 -1
  50. package/es/modules/custom-image/options.es.js.map +1 -1
  51. package/es/modules/custom-image/specs/blot-spec.es.js.map +1 -1
  52. package/es/modules/custom-image/specs/custom-image-spec.es.js.map +1 -1
  53. package/es/modules/custom-image/specs/image-spec.es.js.map +1 -1
  54. package/es/modules/custom-uploader.es.js.map +1 -1
  55. package/es/modules/divider.es.js.map +1 -1
  56. package/es/modules/emoji.es.js +1 -1
  57. package/es/modules/emoji.es.js.map +1 -1
  58. package/es/modules/file/formats/file.es.js.map +1 -1
  59. package/es/modules/file/modules/file-bar.es.js.map +1 -1
  60. package/es/modules/file/modules/file-module.es.js.map +1 -1
  61. package/es/modules/flow-chart/config-utils.es.js +102 -0
  62. package/es/modules/flow-chart/config-utils.es.js.map +1 -0
  63. package/es/modules/flow-chart/formats/flow-chart-blot.es.js +369 -0
  64. package/es/modules/flow-chart/formats/flow-chart-blot.es.js.map +1 -0
  65. package/es/modules/flow-chart/i18n/en-us.es.js +30 -0
  66. package/es/modules/flow-chart/i18n/en-us.es.js.map +1 -0
  67. package/es/modules/flow-chart/i18n/index.es.js +12 -0
  68. package/es/modules/flow-chart/i18n/index.es.js.map +1 -0
  69. package/es/modules/flow-chart/i18n/zh-cn.es.js +30 -0
  70. package/es/modules/flow-chart/i18n/zh-cn.es.js.map +1 -0
  71. package/es/modules/flow-chart/icons.es.js +27 -0
  72. package/es/modules/flow-chart/icons.es.js.map +1 -0
  73. package/es/modules/flow-chart/index.es.js +45 -0
  74. package/es/modules/flow-chart/index.es.js.map +1 -0
  75. package/es/modules/flow-chart/modules/context-menu.es.js +184 -0
  76. package/es/modules/flow-chart/modules/context-menu.es.js.map +1 -0
  77. package/es/modules/flow-chart/modules/control-panel.es.js +286 -0
  78. package/es/modules/flow-chart/modules/control-panel.es.js.map +1 -0
  79. package/es/modules/flow-chart/modules/custom-resize-action.es.js +150 -0
  80. package/es/modules/flow-chart/modules/custom-resize-action.es.js.map +1 -0
  81. package/es/modules/i18n.es.js.map +1 -1
  82. package/es/modules/index.es.js +4 -0
  83. package/es/modules/index.es.js.map +1 -1
  84. package/es/modules/link/formats/link.es.js.map +1 -1
  85. package/es/modules/link/modules/tooltip.es.js.map +1 -1
  86. package/es/modules/mathlive/formats.es.js.map +1 -1
  87. package/es/modules/mathlive/module.es.js.map +1 -1
  88. package/es/modules/mathlive/tooltip.es.js.map +1 -1
  89. package/es/modules/mention/constants.es.js.map +1 -1
  90. package/es/modules/mention/mention-link.es.js.map +1 -1
  91. package/es/modules/mention/mention.es.js.map +1 -1
  92. package/es/modules/mind-map/config-utils.es.js +108 -0
  93. package/es/modules/mind-map/config-utils.es.js.map +1 -0
  94. package/es/modules/mind-map/formats/mind-map-blot.es.js +356 -0
  95. package/es/modules/mind-map/formats/mind-map-blot.es.js.map +1 -0
  96. package/es/modules/mind-map/i18n/en-us.es.js +29 -0
  97. package/es/modules/mind-map/i18n/en-us.es.js.map +1 -0
  98. package/es/modules/mind-map/i18n/index.es.js +12 -0
  99. package/es/modules/mind-map/i18n/index.es.js.map +1 -0
  100. package/es/modules/mind-map/i18n/zh-cn.es.js +29 -0
  101. package/es/modules/mind-map/i18n/zh-cn.es.js.map +1 -0
  102. package/es/modules/mind-map/icons.es.js +45 -0
  103. package/es/modules/mind-map/icons.es.js.map +1 -0
  104. package/es/modules/mind-map/index.es.js +56 -0
  105. package/es/modules/mind-map/index.es.js.map +1 -0
  106. package/es/modules/mind-map/modules/context-menu.es.js +128 -0
  107. package/es/modules/mind-map/modules/context-menu.es.js.map +1 -0
  108. package/es/modules/mind-map/modules/control-panel.es.js +425 -0
  109. package/es/modules/mind-map/modules/control-panel.es.js.map +1 -0
  110. package/es/modules/mind-map/modules/custom-resize-action.es.js +161 -0
  111. package/es/modules/mind-map/modules/custom-resize-action.es.js.map +1 -0
  112. package/es/modules/shortcut-key/index.es.js +16 -0
  113. package/es/modules/shortcut-key/index.es.js.map +1 -1
  114. package/es/modules/syntax.es.js.map +1 -1
  115. package/es/modules/table-up/index.es.js.map +1 -1
  116. package/es/modules/toolbar/better-picker.es.js.map +1 -1
  117. package/es/modules/toolbar/better-toolbar.es.js.map +1 -1
  118. package/es/modules/toolbar/toolbar-tip.es.js.map +1 -1
  119. package/es/themes/snow.es.js.map +1 -1
  120. package/es/tools/format-painter.es.js.map +1 -1
  121. package/es/tools/fullscreen.es.js.map +1 -1
  122. package/es/tools/screenshot.es.js.map +1 -1
  123. package/es/ui/icons.config.es.js +4 -0
  124. package/es/ui/icons.config.es.js.map +1 -1
  125. package/es/ui/icons.es.js +4 -2
  126. package/es/ui/icons.es.js.map +1 -1
  127. package/es/utils/debounce.es.js.map +1 -1
  128. package/es/utils/image.es.js.map +1 -1
  129. package/es/utils/is.es.js.map +1 -1
  130. package/es/utils/merge.es.js +27 -0
  131. package/es/utils/merge.es.js.map +1 -0
  132. package/es/utils/method.es.js.map +1 -1
  133. package/es/utils/scroll-lock.es.js.map +1 -1
  134. package/flow-chart.css +185 -0
  135. package/lib/attributors/line-height.cjs.js.map +1 -1
  136. package/lib/config/base64-image.cjs.js.map +1 -1
  137. package/lib/config/editor.config.cjs.js +27 -0
  138. package/lib/config/editor.config.cjs.js.map +1 -1
  139. package/lib/config/editor.utils.cjs.js.map +1 -1
  140. package/lib/config/i18n/en-us.cjs.js +2 -0
  141. package/lib/config/i18n/en-us.cjs.js.map +1 -1
  142. package/lib/config/i18n/zh-cn.cjs.js +2 -0
  143. package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
  144. package/lib/config/index.cjs.js +2 -0
  145. package/lib/config/index.cjs.js.map +1 -1
  146. package/lib/core/fluent-editor.cjs.js.map +1 -1
  147. package/lib/fluent-editor.cjs.js +23 -19
  148. package/lib/fluent-editor.cjs.js.map +1 -1
  149. package/lib/formats/emoji.cjs.js.map +1 -1
  150. package/lib/formats/soft-break.cjs.js.map +1 -1
  151. package/lib/formats/strike.cjs.js.map +1 -1
  152. package/lib/formats/video.cjs.js.map +1 -1
  153. package/lib/index.cjs.js +39 -6
  154. package/lib/index.cjs.js.map +1 -1
  155. package/lib/modules/ai/constants.cjs.js.map +1 -1
  156. package/lib/modules/ai/icons.cjs.js.map +1 -1
  157. package/lib/modules/ai/index.cjs.js.map +1 -1
  158. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js +6 -24
  159. package/lib/modules/collaborative-editing/awareness/awareness.cjs.js.map +1 -1
  160. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js +7 -3
  161. package/lib/modules/collaborative-editing/awareness/y-indexeddb.cjs.js.map +1 -1
  162. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js +19 -31
  163. package/lib/modules/collaborative-editing/collaborative-editing.cjs.js.map +1 -1
  164. package/lib/modules/collaborative-editing/module.cjs.js.map +1 -1
  165. package/lib/modules/collaborative-editing/provider/providerRegistry.cjs.js.map +1 -1
  166. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js +10 -23
  167. package/lib/modules/collaborative-editing/provider/webrtc.cjs.js.map +1 -1
  168. package/lib/modules/collaborative-editing/provider/websocket.cjs.js +10 -25
  169. package/lib/modules/collaborative-editing/provider/websocket.cjs.js.map +1 -1
  170. package/lib/modules/counter.cjs.js.map +1 -1
  171. package/lib/modules/custom-clipboard.cjs.js.map +1 -1
  172. package/lib/modules/custom-image/actions/action.cjs.js.map +1 -1
  173. package/lib/modules/custom-image/actions/custom-resize-action.cjs.js.map +1 -1
  174. package/lib/modules/custom-image/actions/delete-action.cjs.js.map +1 -1
  175. package/lib/modules/custom-image/actions/image-toolbar-buttons.cjs.js.map +1 -1
  176. package/lib/modules/custom-image/actions/toolbar-action.cjs.js.map +1 -1
  177. package/lib/modules/custom-image/actions/toolbar.cjs.js.map +1 -1
  178. package/lib/modules/custom-image/blot-formatter.cjs.js +2 -2
  179. package/lib/modules/custom-image/blot-formatter.cjs.js.map +1 -1
  180. package/lib/modules/custom-image/image.cjs.js.map +1 -1
  181. package/lib/modules/custom-image/options.cjs.js.map +1 -1
  182. package/lib/modules/custom-image/specs/blot-spec.cjs.js.map +1 -1
  183. package/lib/modules/custom-image/specs/custom-image-spec.cjs.js.map +1 -1
  184. package/lib/modules/custom-image/specs/image-spec.cjs.js.map +1 -1
  185. package/lib/modules/custom-uploader.cjs.js.map +1 -1
  186. package/lib/modules/divider.cjs.js.map +1 -1
  187. package/lib/modules/emoji.cjs.js +2 -2
  188. package/lib/modules/emoji.cjs.js.map +1 -1
  189. package/lib/modules/file/formats/file.cjs.js.map +1 -1
  190. package/lib/modules/file/modules/file-bar.cjs.js.map +1 -1
  191. package/lib/modules/file/modules/file-module.cjs.js.map +1 -1
  192. package/lib/modules/flow-chart/config-utils.cjs.js +102 -0
  193. package/lib/modules/flow-chart/config-utils.cjs.js.map +1 -0
  194. package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js +369 -0
  195. package/lib/modules/flow-chart/formats/flow-chart-blot.cjs.js.map +1 -0
  196. package/lib/modules/flow-chart/i18n/en-us.cjs.js +30 -0
  197. package/lib/modules/flow-chart/i18n/en-us.cjs.js.map +1 -0
  198. package/lib/modules/flow-chart/i18n/index.cjs.js +12 -0
  199. package/lib/modules/flow-chart/i18n/index.cjs.js.map +1 -0
  200. package/lib/modules/flow-chart/i18n/zh-cn.cjs.js +30 -0
  201. package/lib/modules/flow-chart/i18n/zh-cn.cjs.js.map +1 -0
  202. package/lib/modules/flow-chart/icons.cjs.js +27 -0
  203. package/lib/modules/flow-chart/icons.cjs.js.map +1 -0
  204. package/lib/modules/flow-chart/index.cjs.js +45 -0
  205. package/lib/modules/flow-chart/index.cjs.js.map +1 -0
  206. package/lib/modules/flow-chart/modules/context-menu.cjs.js +184 -0
  207. package/lib/modules/flow-chart/modules/context-menu.cjs.js.map +1 -0
  208. package/lib/modules/flow-chart/modules/control-panel.cjs.js +286 -0
  209. package/lib/modules/flow-chart/modules/control-panel.cjs.js.map +1 -0
  210. package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js +150 -0
  211. package/lib/modules/flow-chart/modules/custom-resize-action.cjs.js.map +1 -0
  212. package/lib/modules/i18n.cjs.js.map +1 -1
  213. package/lib/modules/index.cjs.js +9 -5
  214. package/lib/modules/index.cjs.js.map +1 -1
  215. package/lib/modules/link/formats/link.cjs.js.map +1 -1
  216. package/lib/modules/link/modules/tooltip.cjs.js.map +1 -1
  217. package/lib/modules/mathlive/formats.cjs.js.map +1 -1
  218. package/lib/modules/mathlive/module.cjs.js.map +1 -1
  219. package/lib/modules/mathlive/tooltip.cjs.js.map +1 -1
  220. package/lib/modules/mention/constants.cjs.js.map +1 -1
  221. package/lib/modules/mention/mention-link.cjs.js.map +1 -1
  222. package/lib/modules/mention/mention.cjs.js.map +1 -1
  223. package/lib/modules/mind-map/config-utils.cjs.js +108 -0
  224. package/lib/modules/mind-map/config-utils.cjs.js.map +1 -0
  225. package/lib/modules/mind-map/formats/mind-map-blot.cjs.js +356 -0
  226. package/lib/modules/mind-map/formats/mind-map-blot.cjs.js.map +1 -0
  227. package/lib/modules/mind-map/i18n/en-us.cjs.js +29 -0
  228. package/lib/modules/mind-map/i18n/en-us.cjs.js.map +1 -0
  229. package/lib/modules/mind-map/i18n/index.cjs.js +12 -0
  230. package/lib/modules/mind-map/i18n/index.cjs.js.map +1 -0
  231. package/lib/modules/mind-map/i18n/zh-cn.cjs.js +29 -0
  232. package/lib/modules/mind-map/i18n/zh-cn.cjs.js.map +1 -0
  233. package/lib/modules/mind-map/icons.cjs.js +45 -0
  234. package/lib/modules/mind-map/icons.cjs.js.map +1 -0
  235. package/lib/modules/mind-map/index.cjs.js +56 -0
  236. package/lib/modules/mind-map/index.cjs.js.map +1 -0
  237. package/lib/modules/mind-map/modules/context-menu.cjs.js +128 -0
  238. package/lib/modules/mind-map/modules/context-menu.cjs.js.map +1 -0
  239. package/lib/modules/mind-map/modules/control-panel.cjs.js +425 -0
  240. package/lib/modules/mind-map/modules/control-panel.cjs.js.map +1 -0
  241. package/lib/modules/mind-map/modules/custom-resize-action.cjs.js +161 -0
  242. package/lib/modules/mind-map/modules/custom-resize-action.cjs.js.map +1 -0
  243. package/lib/modules/shortcut-key/index.cjs.js +16 -0
  244. package/lib/modules/shortcut-key/index.cjs.js.map +1 -1
  245. package/lib/modules/syntax.cjs.js.map +1 -1
  246. package/lib/modules/table-up/index.cjs.js.map +1 -1
  247. package/lib/modules/toolbar/better-picker.cjs.js.map +1 -1
  248. package/lib/modules/toolbar/better-toolbar.cjs.js.map +1 -1
  249. package/lib/modules/toolbar/toolbar-tip.cjs.js.map +1 -1
  250. package/lib/themes/snow.cjs.js.map +1 -1
  251. package/lib/tools/format-painter.cjs.js.map +1 -1
  252. package/lib/tools/fullscreen.cjs.js.map +1 -1
  253. package/lib/tools/screenshot.cjs.js.map +1 -1
  254. package/lib/ui/icons.cjs.js +3 -1
  255. package/lib/ui/icons.cjs.js.map +1 -1
  256. package/lib/ui/icons.config.cjs.js +4 -0
  257. package/lib/ui/icons.config.cjs.js.map +1 -1
  258. package/lib/utils/debounce.cjs.js.map +1 -1
  259. package/lib/utils/image.cjs.js.map +1 -1
  260. package/lib/utils/is.cjs.js.map +1 -1
  261. package/lib/utils/merge.cjs.js +27 -0
  262. package/lib/utils/merge.cjs.js.map +1 -0
  263. package/lib/utils/method.cjs.js.map +1 -1
  264. package/lib/utils/scroll-lock.cjs.js.map +1 -1
  265. package/mind-map.css +224 -0
  266. package/package.json +45 -67
  267. package/patches/quill@2.0.3.patch +33 -0
  268. package/scripts/apply-patches.cjs +248 -0
  269. package/style.css +4 -2
  270. package/types/attributors/font-size.d.ts +1 -1
  271. package/types/attributors/font-style.d.ts +1 -1
  272. package/types/attributors/index.d.ts +4 -4
  273. package/types/attributors/line-height.d.ts +1 -1
  274. package/types/attributors/text-indent.d.ts +1 -1
  275. package/types/config/base64-image.d.ts +2 -2
  276. package/types/config/editor.config.d.ts +55 -11
  277. package/types/config/editor.utils.d.ts +40 -40
  278. package/types/config/i18n/en-us.d.ts +125 -123
  279. package/types/config/i18n/zh-cn.d.ts +125 -123
  280. package/types/config/index.d.ts +7 -7
  281. package/types/config/types/editor-config.interface.d.ts +11 -12
  282. package/types/config/types/editor-modules.interface.d.ts +40 -37
  283. package/types/config/types/index.d.ts +3 -3
  284. package/types/config/types/type.d.ts +2 -2
  285. package/types/core/fluent-editor.d.ts +10 -11
  286. package/types/fluent-editor.d.ts +1 -2
  287. package/types/formats/emoji.d.ts +7 -8
  288. package/types/formats/index.d.ts +4 -4
  289. package/types/formats/soft-break.d.ts +11 -12
  290. package/types/formats/strike.d.ts +7 -8
  291. package/types/formats/video.d.ts +12 -13
  292. package/types/index.d.ts +7 -8
  293. package/types/modules/ai/constants.d.ts +30 -30
  294. package/types/modules/ai/icons.d.ts +21 -21
  295. package/types/modules/ai/index.d.ts +93 -94
  296. package/types/modules/ai/types.d.ts +16 -16
  297. package/types/modules/collaborative-editing/awareness/awareness.d.ts +25 -26
  298. package/types/modules/collaborative-editing/awareness/index.d.ts +2 -2
  299. package/types/modules/collaborative-editing/awareness/y-indexeddb.d.ts +3 -3
  300. package/types/modules/collaborative-editing/collaborative-editing.d.ts +22 -22
  301. package/types/modules/collaborative-editing/index.d.ts +2 -2
  302. package/types/modules/collaborative-editing/module.d.ts +10 -11
  303. package/types/modules/collaborative-editing/provider/index.d.ts +3 -3
  304. package/types/modules/collaborative-editing/provider/providerRegistry.d.ts +25 -25
  305. package/types/modules/collaborative-editing/provider/webrtc.d.ts +35 -35
  306. package/types/modules/collaborative-editing/provider/websocket.d.ts +39 -39
  307. package/types/modules/collaborative-editing/types.d.ts +51 -35
  308. package/types/modules/counter.d.ts +21 -22
  309. package/types/modules/custom-clipboard.d.ts +23 -24
  310. package/types/modules/custom-image/actions/action.d.ts +7 -8
  311. package/types/modules/custom-image/actions/custom-resize-action.d.ts +22 -23
  312. package/types/modules/custom-image/actions/delete-action.d.ts +5 -6
  313. package/types/modules/custom-image/actions/image-toolbar-buttons.d.ts +15 -16
  314. package/types/modules/custom-image/actions/index.d.ts +6 -6
  315. package/types/modules/custom-image/actions/toolbar-action.d.ts +7 -8
  316. package/types/modules/custom-image/actions/toolbar.d.ts +16 -17
  317. package/types/modules/custom-image/blot-formatter.d.ts +19 -20
  318. package/types/modules/custom-image/image.d.ts +26 -27
  319. package/types/modules/custom-image/index.d.ts +4 -4
  320. package/types/modules/custom-image/options.d.ts +45 -46
  321. package/types/modules/custom-image/specs/blot-spec.d.ts +10 -11
  322. package/types/modules/custom-image/specs/custom-image-spec.d.ts +15 -16
  323. package/types/modules/custom-image/specs/image-spec.d.ts +7 -8
  324. package/types/modules/custom-image/specs/index.d.ts +3 -3
  325. package/types/modules/custom-uploader.d.ts +37 -38
  326. package/types/modules/divider.d.ts +7 -8
  327. package/types/modules/emoji.d.ts +35 -36
  328. package/types/modules/file/formats/file.d.ts +17 -18
  329. package/types/modules/file/index.d.ts +3 -3
  330. package/types/modules/file/modules/file-bar.d.ts +14 -14
  331. package/types/modules/file/modules/file-module.d.ts +7 -8
  332. package/types/modules/flow-chart/config-utils.d.ts +10 -0
  333. package/types/modules/flow-chart/formats/flow-chart-blot.d.ts +43 -0
  334. package/types/modules/flow-chart/i18n/en-us.d.ts +26 -0
  335. package/types/modules/flow-chart/i18n/index.d.ts +1 -0
  336. package/types/modules/flow-chart/i18n/zh-cn.d.ts +26 -0
  337. package/types/modules/flow-chart/icons.d.ts +12 -0
  338. package/types/modules/flow-chart/index.d.ts +10 -0
  339. package/types/modules/flow-chart/modules/context-menu.d.ts +3 -0
  340. package/types/modules/flow-chart/modules/control-panel.d.ts +3 -0
  341. package/types/modules/flow-chart/modules/custom-resize-action.d.ts +22 -0
  342. package/types/modules/flow-chart/options.d.ts +29 -0
  343. package/types/modules/i18n.d.ts +13 -14
  344. package/types/modules/index.d.ts +18 -16
  345. package/types/modules/link/formats/link.d.ts +14 -15
  346. package/types/modules/link/index.d.ts +2 -2
  347. package/types/modules/link/modules/tooltip.d.ts +25 -26
  348. package/types/modules/mathlive/formats.d.ts +20 -21
  349. package/types/modules/mathlive/index.d.ts +3 -3
  350. package/types/modules/mathlive/module.d.ts +7 -8
  351. package/types/modules/mathlive/tooltip.d.ts +14 -15
  352. package/types/modules/mention/constants.d.ts +3 -3
  353. package/types/modules/mention/index.d.ts +2 -2
  354. package/types/modules/mention/mention-link.d.ts +14 -15
  355. package/types/modules/mention/mention.d.ts +52 -53
  356. package/types/modules/mind-map/config-utils.d.ts +12 -0
  357. package/types/modules/mind-map/formats/mind-map-blot.d.ts +44 -0
  358. package/types/modules/mind-map/i18n/en-us.d.ts +25 -0
  359. package/types/modules/mind-map/i18n/index.d.ts +1 -0
  360. package/types/modules/mind-map/i18n/zh-cn.d.ts +25 -0
  361. package/types/modules/mind-map/icons.d.ts +21 -0
  362. package/types/modules/mind-map/index.d.ts +10 -0
  363. package/types/modules/mind-map/modules/context-menu.d.ts +3 -0
  364. package/types/modules/mind-map/modules/control-panel.d.ts +3 -0
  365. package/types/modules/mind-map/modules/custom-resize-action.d.ts +23 -0
  366. package/types/modules/mind-map/options.d.ts +27 -0
  367. package/types/modules/shortcut-key/index.d.ts +67 -68
  368. package/types/modules/syntax.d.ts +12 -13
  369. package/types/modules/table-up/index.d.ts +32 -33
  370. package/types/modules/toolbar/better-picker.d.ts +13 -14
  371. package/types/modules/toolbar/better-toolbar.d.ts +6 -7
  372. package/types/modules/toolbar/index.d.ts +3 -3
  373. package/types/modules/toolbar/toolbar-tip.d.ts +7 -8
  374. package/types/themes/snow.d.ts +9 -10
  375. package/types/tools/format-painter.d.ts +12 -13
  376. package/types/tools/fullscreen.d.ts +4 -5
  377. package/types/tools/screenshot.d.ts +17 -18
  378. package/types/ui/icons.config.d.ts +40 -38
  379. package/types/ui/icons.d.ts +6 -6
  380. package/types/utils/debounce.d.ts +6 -6
  381. package/types/utils/image.d.ts +1 -1
  382. package/types/utils/is.d.ts +6 -6
  383. package/types/utils/merge.d.ts +7 -0
  384. package/types/utils/method.d.ts +6 -6
  385. package/types/utils/scroll-lock.d.ts +6 -6
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function merge(target, ...sources) {
4
+ if (!sources.length) return target;
5
+ const isObject = (obj) => obj !== null && (typeof obj === "object" || typeof obj === "function");
6
+ const isPlain = (obj) => {
7
+ if (!isObject(obj)) return false;
8
+ const proto = Object.getPrototypeOf(obj);
9
+ return proto === Object.prototype || proto === null;
10
+ };
11
+ for (const src of sources) {
12
+ if (!isObject(src)) continue;
13
+ for (const key in src) {
14
+ if (!Object.prototype.hasOwnProperty.call(src, key)) continue;
15
+ const oldVal = target[key];
16
+ const newVal = src[key];
17
+ if (isPlain(newVal) && (oldVal === void 0 || isPlain(oldVal))) {
18
+ target[key] = merge(oldVal || {}, newVal);
19
+ } else {
20
+ target[key] = newVal;
21
+ }
22
+ }
23
+ }
24
+ return target;
25
+ }
26
+ exports.merge = merge;
27
+ //# sourceMappingURL=merge.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.cjs.js","sources":["../../../src/utils/merge.ts"],"sourcesContent":["/**\n * 深合并任意多个普通对象\n * @param {object} target 目标对象(会被修改)\n * @param {...object} sources 任意多个来源对象\n * @returns {object} 返回合并后的 target\n */\nexport function merge(target, ...sources) {\n if (!sources.length) return target\n\n const isObject = obj =>\n obj !== null && (typeof obj === 'object' || typeof obj === 'function')\n\n const isPlain = (obj) => {\n if (!isObject(obj)) return false\n const proto = Object.getPrototypeOf(obj)\n return proto === Object.prototype || proto === null\n }\n\n for (const src of sources) {\n if (!isObject(src)) continue\n\n for (const key in src) {\n if (!Object.prototype.hasOwnProperty.call(src, key)) continue\n\n const oldVal = target[key]\n const newVal = src[key]\n\n // 递归合并纯对象,否则直接覆盖\n if (isPlain(newVal) && (oldVal === undefined || isPlain(oldVal))) {\n target[key] = merge(oldVal || {}, newVal)\n }\n else {\n target[key] = newVal // 数组、函数、原始值等直接覆盖\n }\n }\n }\n return target\n}\n"],"names":[],"mappings":";;AAMO,SAAS,MAAM,WAAW,SAAS;AACxC,MAAI,CAAC,QAAQ,OAAQ,QAAO;AAE5B,QAAM,WAAW,SACf,QAAQ,SAAS,OAAO,QAAQ,YAAY,OAAO,QAAQ;AAE7D,QAAM,UAAU,CAAC,QAAQ;AACvB,QAAI,CAAC,SAAS,GAAG,EAAG,QAAO;AAC3B,UAAM,QAAQ,OAAO,eAAe,GAAG;AACvC,WAAO,UAAU,OAAO,aAAa,UAAU;AAAA,EACjD;AAEA,aAAW,OAAO,SAAS;AACzB,QAAI,CAAC,SAAS,GAAG,EAAG;AAEpB,eAAW,OAAO,KAAK;AACrB,UAAI,CAAC,OAAO,UAAU,eAAe,KAAK,KAAK,GAAG,EAAG;AAErD,YAAM,SAAS,OAAO,GAAG;AACzB,YAAM,SAAS,IAAI,GAAG;AAGtB,UAAI,QAAQ,MAAM,MAAM,WAAW,UAAa,QAAQ,MAAM,IAAI;AAChE,eAAO,GAAG,IAAI,MAAM,UAAU,CAAA,GAAI,MAAM;AAAA,MAC1C,OACK;AACH,eAAO,GAAG,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"method.cjs.js","sources":["../../../src/utils/method.ts"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\r\nconst freeGlobal\r\n = typeof global === 'object'\r\n && global !== null\r\n && global.Object === Object\r\n && global\r\n\r\n/** Detect free variable `globalThis` */\r\nconst freeGlobalThis\r\n = typeof globalThis === 'object'\r\n && globalThis !== null\r\n && globalThis.Object == Object\r\n && globalThis\r\n\r\n/** Detect free variable `self`. */\r\nconst freeSelf\r\n = typeof self === 'object' && self !== null && self.Object === Object && self\r\n\r\n/** Used as a reference to the global object. */\r\nexport const root\r\n = freeGlobalThis || freeGlobal || freeSelf || new Function('return this')()\r\n\r\nexport function compareArray(arr1, arr2) {\r\n if (arr1.length !== arr2.length) {\r\n return false\r\n }\r\n for (let i = 0; i < arr1.length; i++) {\r\n if (arr1[i] !== arr2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nexport function compareObject(object1, object2) {\r\n const o1keys = Object.keys(object1)\r\n const o2keys = Object.keys(object2)\r\n if (o2keys.length !== o1keys.length) return false\r\n for (let i = 0; i <= o1keys.length - 1; i++) {\r\n const key = o1keys[i]\r\n if (!o2keys.includes(key)) return false\r\n if (!compare(object2[key], object1[key])) return false\r\n }\r\n return true\r\n}\r\n\r\nexport function compare(value, other) {\r\n if (value === other) {\r\n return true\r\n }\r\n if (Array.isArray(value) && Array.isArray(other)) {\r\n return compareArray(value, other)\r\n }\r\n if (value instanceof Function || other instanceof Function) {\r\n return false\r\n }\r\n if (value instanceof Object && other instanceof Object) {\r\n return compareObject(value, other)\r\n }\r\n return false\r\n}\r\n\r\nexport function unshiftString(str: string, targetLength: number, addString: string): string {\r\n targetLength = targetLength > 0 ? targetLength : 0\r\n addString = String((typeof addString !== 'undefined' && typeof addString !== 'object') ? addString : ' ')\r\n str = (str === undefined || str === null) ? '' : String(str)\r\n if (str.length >= targetLength) {\r\n return String(str)\r\n }\r\n else {\r\n targetLength = targetLength - str.length\r\n if (targetLength > addString.length) {\r\n addString += addString.repeat(targetLength / addString.length)\r\n }\r\n return addString.slice(0, targetLength) + String(str)\r\n }\r\n}\r\n"],"names":[],"mappings":";;AACA,MAAM,aACF,OAAO,WAAW,YACf,WAAW,QACX,OAAO,WAAW,UAClB;AAGP,MAAM,iBACF,OAAO,eAAe,YACnB,eAAe,QACf,WAAW,UAAU,UACrB;AAGP,MAAM,WACF,OAAO,SAAS,YAAY,SAAS,QAAQ,KAAK,WAAW,UAAU;AAGpE,MAAM,OACT,kBAAkB,cAAc,YAAY,IAAI,SAAS,aAAa,EAAE;AAE5D,SAAA,aAAa,MAAM,MAAM;AACnC,MAAA,KAAK,WAAW,KAAK,QAAQ;AACxB,WAAA;AAAA,EAAA;AAET,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,QAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG;AAChB,aAAA;AAAA,IAAA;AAAA,EACT;AAEK,SAAA;AACT;AAEgB,SAAA,cAAc,SAAS,SAAS;AACxC,QAAA,SAAS,OAAO,KAAK,OAAO;AAC5B,QAAA,SAAS,OAAO,KAAK,OAAO;AAClC,MAAI,OAAO,WAAW,OAAO,OAAe,QAAA;AAC5C,WAAS,IAAI,GAAG,KAAK,OAAO,SAAS,GAAG,KAAK;AACrC,UAAA,MAAM,OAAO,CAAC;AACpB,QAAI,CAAC,OAAO,SAAS,GAAG,EAAU,QAAA;AAC9B,QAAA,CAAC,QAAQ,QAAQ,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAU,QAAA;AAAA,EAAA;AAE5C,SAAA;AACT;AAEgB,SAAA,QAAQ,OAAO,OAAO;AACpC,MAAI,UAAU,OAAO;AACZ,WAAA;AAAA,EAAA;AAET,MAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,QAAQ,KAAK,GAAG;AACzC,WAAA,aAAa,OAAO,KAAK;AAAA,EAAA;AAE9B,MAAA,iBAAiB,YAAY,iBAAiB,UAAU;AACnD,WAAA;AAAA,EAAA;AAEL,MAAA,iBAAiB,UAAU,iBAAiB,QAAQ;AAC/C,WAAA,cAAc,OAAO,KAAK;AAAA,EAAA;AAE5B,SAAA;AACT;AAEgB,SAAA,cAAc,KAAa,cAAsB,WAA2B;AAC3E,iBAAA,eAAe,IAAI,eAAe;AACrC,cAAA,OAAQ,OAAO,cAAc,eAAe,OAAO,cAAc,WAAY,YAAY,GAAG;AACxG,QAAO,QAAQ,UAAa,QAAQ,OAAQ,KAAK,OAAO,GAAG;AACvD,MAAA,IAAI,UAAU,cAAc;AAC9B,WAAO,OAAO,GAAG;AAAA,EAAA,OAEd;AACH,mBAAe,eAAe,IAAI;AAC9B,QAAA,eAAe,UAAU,QAAQ;AACnC,mBAAa,UAAU,OAAO,eAAe,UAAU,MAAM;AAAA,IAAA;AAE/D,WAAO,UAAU,MAAM,GAAG,YAAY,IAAI,OAAO,GAAG;AAAA,EAAA;AAExD;;;;;;"}
1
+ {"version":3,"file":"method.cjs.js","sources":["../../../src/utils/method.ts"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nconst freeGlobal\n = typeof global === 'object'\n && global !== null\n && global.Object === Object\n && global\n\n/** Detect free variable `globalThis` */\nconst freeGlobalThis\n = typeof globalThis === 'object'\n && globalThis !== null\n && globalThis.Object == Object\n && globalThis\n\n/** Detect free variable `self`. */\nconst freeSelf\n = typeof self === 'object' && self !== null && self.Object === Object && self\n\n/** Used as a reference to the global object. */\nexport const root\n = freeGlobalThis || freeGlobal || freeSelf || new Function('return this')()\n\nexport function compareArray(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false\n }\n for (let i = 0; i < arr1.length; i++) {\n if (arr1[i] !== arr2[i]) {\n return false\n }\n }\n return true\n}\n\nexport function compareObject(object1, object2) {\n const o1keys = Object.keys(object1)\n const o2keys = Object.keys(object2)\n if (o2keys.length !== o1keys.length) return false\n for (let i = 0; i <= o1keys.length - 1; i++) {\n const key = o1keys[i]\n if (!o2keys.includes(key)) return false\n if (!compare(object2[key], object1[key])) return false\n }\n return true\n}\n\nexport function compare(value, other) {\n if (value === other) {\n return true\n }\n if (Array.isArray(value) && Array.isArray(other)) {\n return compareArray(value, other)\n }\n if (value instanceof Function || other instanceof Function) {\n return false\n }\n if (value instanceof Object && other instanceof Object) {\n return compareObject(value, other)\n }\n return false\n}\n\nexport function unshiftString(str: string, targetLength: number, addString: string): string {\n targetLength = targetLength > 0 ? targetLength : 0\n addString = String((typeof addString !== 'undefined' && typeof addString !== 'object') ? addString : ' ')\n str = (str === undefined || str === null) ? '' : String(str)\n if (str.length >= targetLength) {\n return String(str)\n }\n else {\n targetLength = targetLength - str.length\n if (targetLength > addString.length) {\n addString += addString.repeat(targetLength / addString.length)\n }\n return addString.slice(0, targetLength) + String(str)\n }\n}\n"],"names":[],"mappings":";;AACA,MAAM,aACF,OAAO,WAAW,YACf,WAAW,QACX,OAAO,WAAW,UAClB;AAGP,MAAM,iBACF,OAAO,eAAe,YACnB,eAAe,QACf,WAAW,UAAU,UACrB;AAGP,MAAM,WACF,OAAO,SAAS,YAAY,SAAS,QAAQ,KAAK,WAAW,UAAU;AAGpE,MAAM,OACT,kBAAkB,cAAc,YAAY,IAAI,SAAS,aAAa,EAAA;AAEnE,SAAS,aAAa,MAAM,MAAM;AACvC,MAAI,KAAK,WAAW,KAAK,QAAQ;AAC/B,WAAO;AAAA,EACT;AACA,WAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AACpC,QAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAG;AACvB,aAAO;AAAA,IACT;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,cAAc,SAAS,SAAS;AAC9C,QAAM,SAAS,OAAO,KAAK,OAAO;AAClC,QAAM,SAAS,OAAO,KAAK,OAAO;AAClC,MAAI,OAAO,WAAW,OAAO,OAAQ,QAAO;AAC5C,WAAS,IAAI,GAAG,KAAK,OAAO,SAAS,GAAG,KAAK;AAC3C,UAAM,MAAM,OAAO,CAAC;AACpB,QAAI,CAAC,OAAO,SAAS,GAAG,EAAG,QAAO;AAClC,QAAI,CAAC,QAAQ,QAAQ,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAG,QAAO;AAAA,EACnD;AACA,SAAO;AACT;AAEO,SAAS,QAAQ,OAAO,OAAO;AACpC,MAAI,UAAU,OAAO;AACnB,WAAO;AAAA,EACT;AACA,MAAI,MAAM,QAAQ,KAAK,KAAK,MAAM,QAAQ,KAAK,GAAG;AAChD,WAAO,aAAa,OAAO,KAAK;AAAA,EAClC;AACA,MAAI,iBAAiB,YAAY,iBAAiB,UAAU;AAC1D,WAAO;AAAA,EACT;AACA,MAAI,iBAAiB,UAAU,iBAAiB,QAAQ;AACtD,WAAO,cAAc,OAAO,KAAK;AAAA,EACnC;AACA,SAAO;AACT;AAEO,SAAS,cAAc,KAAa,cAAsB,WAA2B;AAC1F,iBAAe,eAAe,IAAI,eAAe;AACjD,cAAY,OAAQ,OAAO,cAAc,eAAe,OAAO,cAAc,WAAY,YAAY,GAAG;AACxG,QAAO,QAAQ,UAAa,QAAQ,OAAQ,KAAK,OAAO,GAAG;AAC3D,MAAI,IAAI,UAAU,cAAc;AAC9B,WAAO,OAAO,GAAG;AAAA,EACnB,OACK;AACH,mBAAe,eAAe,IAAI;AAClC,QAAI,eAAe,UAAU,QAAQ;AACnC,mBAAa,UAAU,OAAO,eAAe,UAAU,MAAM;AAAA,IAC/D;AACA,WAAO,UAAU,MAAM,GAAG,YAAY,IAAI,OAAO,GAAG;AAAA,EACtD;AACF;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-lock.cjs.js","sources":["../../../src/utils/scroll-lock.ts"],"sourcesContent":["let scrollBarWidth: number\r\nexport function getScrollBarWidth({ target = document.body } = {}): number {\r\n if (scrollBarWidth !== undefined) return scrollBarWidth\r\n\r\n const outer = document.createElement('div')\r\n outer.className = 'scroll__wrap'\r\n outer.style.visibility = 'hidden'\r\n outer.style.width = '100px'\r\n outer.style.position = 'absolute'\r\n outer.style.top = '-9999px'\r\n target.appendChild(outer)\r\n\r\n const widthNoScroll = outer.offsetWidth\r\n outer.style.overflow = 'scroll'\r\n\r\n const inner = document.createElement('div')\r\n inner.style.width = '100%'\r\n outer.appendChild(inner)\r\n\r\n const widthWithScroll = inner.offsetWidth\r\n outer.parentNode?.removeChild(outer)\r\n scrollBarWidth = widthNoScroll - widthWithScroll\r\n\r\n return scrollBarWidth\r\n}\r\n\r\nexport function lockScroll({ target = document.body } = {}) {\r\n let scrollBarWidth = 0\r\n let originWidth = '0'\r\n\r\n const clockClass = 'scroll--lock'\r\n\r\n const cleanLock = () => {\r\n target && (target.style.width = originWidth)\r\n target.classList.remove(clockClass)\r\n }\r\n\r\n const hasHiddenClass = target.classList.contains(clockClass)\r\n if (!hasHiddenClass) {\r\n originWidth = target.style.width\r\n }\r\n scrollBarWidth = getScrollBarWidth({ target })\r\n const hasOverflow = (target === document.body ? document.documentElement : target).clientHeight < target.scrollHeight\r\n const overflowY = window.getComputedStyle(target).overflowY\r\n // only when the scrollbar exists needs to reduce width\r\n if (scrollBarWidth > 0 && (hasOverflow || overflowY === 'scroll') && !hasHiddenClass) {\r\n target.style.width = `calc(100% - ${scrollBarWidth}px)`\r\n }\r\n target.classList.add(clockClass)\r\n\r\n return cleanLock\r\n}\r\n"],"names":["scrollBarWidth"],"mappings":";;AAAA,IAAI;AACG,SAAS,kBAAkB,EAAE,SAAS,SAAS,KAAK,IAAI,CAAA,GAAY;;AACrE,MAAA,mBAAmB,OAAkB,QAAA;AAEnC,QAAA,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,YAAY;AAClB,QAAM,MAAM,aAAa;AACzB,QAAM,MAAM,QAAQ;AACpB,QAAM,MAAM,WAAW;AACvB,QAAM,MAAM,MAAM;AAClB,SAAO,YAAY,KAAK;AAExB,QAAM,gBAAgB,MAAM;AAC5B,QAAM,MAAM,WAAW;AAEjB,QAAA,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,MAAM,QAAQ;AACpB,QAAM,YAAY,KAAK;AAEvB,QAAM,kBAAkB,MAAM;AACxB,cAAA,eAAA,mBAAY,YAAY;AAC9B,mBAAiB,gBAAgB;AAE1B,SAAA;AACT;AAEO,SAAS,WAAW,EAAE,SAAS,SAAS,KAAK,IAAI,CAAA,GAAI;AAC1D,MAAIA,kBAAiB;AACrB,MAAI,cAAc;AAElB,QAAM,aAAa;AAEnB,QAAM,YAAY,MAAM;AACX,eAAA,OAAO,MAAM,QAAQ;AACzB,WAAA,UAAU,OAAO,UAAU;AAAA,EACpC;AAEA,QAAM,iBAAiB,OAAO,UAAU,SAAS,UAAU;AAC3D,MAAI,CAAC,gBAAgB;AACnB,kBAAc,OAAO,MAAM;AAAA,EAAA;AAE7BA,oBAAiB,kBAAkB,EAAE,QAAQ;AACvC,QAAA,eAAe,WAAW,SAAS,OAAO,SAAS,kBAAkB,QAAQ,eAAe,OAAO;AACzG,QAAM,YAAY,OAAO,iBAAiB,MAAM,EAAE;AAElD,MAAIA,kBAAiB,MAAM,eAAe,cAAc,aAAa,CAAC,gBAAgB;AAC7E,WAAA,MAAM,QAAQ,eAAeA,eAAc;AAAA,EAAA;AAE7C,SAAA,UAAU,IAAI,UAAU;AAExB,SAAA;AACT;;;"}
1
+ {"version":3,"file":"scroll-lock.cjs.js","sources":["../../../src/utils/scroll-lock.ts"],"sourcesContent":["let scrollBarWidth: number\r\nexport function getScrollBarWidth({ target = document.body } = {}): number {\r\n if (scrollBarWidth !== undefined) return scrollBarWidth\r\n\r\n const outer = document.createElement('div')\r\n outer.className = 'scroll__wrap'\r\n outer.style.visibility = 'hidden'\r\n outer.style.width = '100px'\r\n outer.style.position = 'absolute'\r\n outer.style.top = '-9999px'\r\n target.appendChild(outer)\r\n\r\n const widthNoScroll = outer.offsetWidth\r\n outer.style.overflow = 'scroll'\r\n\r\n const inner = document.createElement('div')\r\n inner.style.width = '100%'\r\n outer.appendChild(inner)\r\n\r\n const widthWithScroll = inner.offsetWidth\r\n outer.parentNode?.removeChild(outer)\r\n scrollBarWidth = widthNoScroll - widthWithScroll\r\n\r\n return scrollBarWidth\r\n}\r\n\r\nexport function lockScroll({ target = document.body } = {}) {\r\n let scrollBarWidth = 0\r\n let originWidth = '0'\r\n\r\n const clockClass = 'scroll--lock'\r\n\r\n const cleanLock = () => {\r\n target && (target.style.width = originWidth)\r\n target.classList.remove(clockClass)\r\n }\r\n\r\n const hasHiddenClass = target.classList.contains(clockClass)\r\n if (!hasHiddenClass) {\r\n originWidth = target.style.width\r\n }\r\n scrollBarWidth = getScrollBarWidth({ target })\r\n const hasOverflow = (target === document.body ? document.documentElement : target).clientHeight < target.scrollHeight\r\n const overflowY = window.getComputedStyle(target).overflowY\r\n // only when the scrollbar exists needs to reduce width\r\n if (scrollBarWidth > 0 && (hasOverflow || overflowY === 'scroll') && !hasHiddenClass) {\r\n target.style.width = `calc(100% - ${scrollBarWidth}px)`\r\n }\r\n target.classList.add(clockClass)\r\n\r\n return cleanLock\r\n}\r\n"],"names":["scrollBarWidth"],"mappings":";;AAAA,IAAI;AACG,SAAS,kBAAkB,EAAE,SAAS,SAAS,KAAA,IAAS,CAAA,GAAY;;AACzE,MAAI,mBAAmB,OAAW,QAAO;AAEzC,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,YAAY;AAClB,QAAM,MAAM,aAAa;AACzB,QAAM,MAAM,QAAQ;AACpB,QAAM,MAAM,WAAW;AACvB,QAAM,MAAM,MAAM;AAClB,SAAO,YAAY,KAAK;AAExB,QAAM,gBAAgB,MAAM;AAC5B,QAAM,MAAM,WAAW;AAEvB,QAAM,QAAQ,SAAS,cAAc,KAAK;AAC1C,QAAM,MAAM,QAAQ;AACpB,QAAM,YAAY,KAAK;AAEvB,QAAM,kBAAkB,MAAM;AAC9B,cAAM,eAAN,mBAAkB,YAAY;AAC9B,mBAAiB,gBAAgB;AAEjC,SAAO;AACT;AAEO,SAAS,WAAW,EAAE,SAAS,SAAS,KAAA,IAAS,CAAA,GAAI;AAC1D,MAAIA,kBAAiB;AACrB,MAAI,cAAc;AAElB,QAAM,aAAa;AAEnB,QAAM,YAAY,MAAM;AACtB,eAAW,OAAO,MAAM,QAAQ;AAChC,WAAO,UAAU,OAAO,UAAU;AAAA,EACpC;AAEA,QAAM,iBAAiB,OAAO,UAAU,SAAS,UAAU;AAC3D,MAAI,CAAC,gBAAgB;AACnB,kBAAc,OAAO,MAAM;AAAA,EAC7B;AACAA,oBAAiB,kBAAkB,EAAE,QAAQ;AAC7C,QAAM,eAAe,WAAW,SAAS,OAAO,SAAS,kBAAkB,QAAQ,eAAe,OAAO;AACzG,QAAM,YAAY,OAAO,iBAAiB,MAAM,EAAE;AAElD,MAAIA,kBAAiB,MAAM,eAAe,cAAc,aAAa,CAAC,gBAAgB;AACpF,WAAO,MAAM,QAAQ,eAAeA,eAAc;AAAA,EACpD;AACA,SAAO,UAAU,IAAI,UAAU;AAE/B,SAAO;AACT;;;"}
package/mind-map.css ADDED
@@ -0,0 +1,224 @@
1
+ .ql-mind-map-item {
2
+ position: relative;
3
+ width: 100%;
4
+ height: 100%;
5
+ overflow: hidden;
6
+ }
7
+
8
+ .ql-mind-map-control {
9
+ position: absolute;
10
+ top: 8px;
11
+ right: 50px;
12
+ display: none;
13
+ gap: 6px;
14
+ white-space: nowrap;
15
+ pointer-events: auto;
16
+ padding: 5px 5px;
17
+ background-color: rgba(255, 255, 255, 0.85);
18
+ border-radius: 8px;
19
+ box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15);
20
+ }
21
+ .ql-mind-map-control .ql-mind-map-control-item {
22
+ align-items: center;
23
+ cursor: pointer;
24
+ display: flex;
25
+ flex-direction: column;
26
+ justify-content: center;
27
+ padding: 5px 5px;
28
+ border-radius: inherit;
29
+ transition: all 0.2s ease;
30
+ }
31
+ .ql-mind-map-control .ql-mind-map-control-item .ql-mind-map-control-text {
32
+ height: 20px;
33
+ font-size: 12px;
34
+ }
35
+
36
+ .ql-mind-map-left-up-control {
37
+ position: absolute;
38
+ top: 20%;
39
+ left: 2px;
40
+ display: none;
41
+ gap: 6px;
42
+ white-space: nowrap;
43
+ pointer-events: auto;
44
+ flex-direction: column;
45
+ margin: 5px;
46
+ padding: 5px 5px;
47
+ background-color: rgba(255, 255, 255, 0.85);
48
+ border-radius: 8px;
49
+ box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15);
50
+ }
51
+ .ql-mind-map-left-up-control .ql-mind-map-control-item {
52
+ align-items: center;
53
+ cursor: pointer;
54
+ display: flex;
55
+ flex-direction: column;
56
+ justify-content: center;
57
+ padding: 5px 5px;
58
+ border-radius: inherit;
59
+ transition: all 0.2s ease;
60
+ }
61
+ .ql-mind-map-left-up-control .ql-mind-map-control-item .ql-mind-map-control-text {
62
+ height: 20px;
63
+ font-size: 12px;
64
+ }
65
+
66
+ .ql-mind-map-right-up-control {
67
+ position: absolute;
68
+ top: 8px;
69
+ right: 6px;
70
+ display: inline-flex;
71
+ gap: 6px;
72
+ white-space: nowrap;
73
+ pointer-events: auto;
74
+ padding: 5px 5px;
75
+ background-color: rgba(255, 255, 255, 0.85);
76
+ border-radius: 8px;
77
+ box-shadow: 0 3px 15px rgba(0, 0, 0, 0.15);
78
+ }
79
+ .ql-mind-map-right-up-control .ql-mind-map-control-item {
80
+ align-items: center;
81
+ cursor: pointer;
82
+ display: flex;
83
+ flex-direction: column;
84
+ justify-content: center;
85
+ padding: 5px 5px;
86
+ border-radius: inherit;
87
+ transition: all 0.2s ease;
88
+ }
89
+ .ql-mind-map-right-up-control .ql-mind-map-control-item .ql-mind-map-control-text {
90
+ height: 20px;
91
+ font-size: 12px;
92
+ }
93
+
94
+ .ql-mind-map-icon-panel {
95
+ border-radius: inherit;
96
+ width: 200px;
97
+ position: absolute;
98
+ left: 45px;
99
+ top: 60px;
100
+ background-color: white;
101
+ border: 1px solid #ccc;
102
+ padding: 10px;
103
+ z-index: 1000;
104
+ max-height: 400px;
105
+ overflow-y: auto;
106
+ }
107
+ .ql-mind-map-icon-panel .ql-mind-map-icon-group-container {
108
+ display: flex;
109
+ flex-wrap: wrap;
110
+ gap: 6px;
111
+ }
112
+ .ql-mind-map-icon-panel .ql-mind-map-icon-group-container .ql-mind-map-icon-item {
113
+ width: 25px;
114
+ height: 25px;
115
+ display: flex;
116
+ align-items: center;
117
+ justify-content: center;
118
+ cursor: pointer;
119
+ border: 1px solid #eee;
120
+ border-radius: inherit;
121
+ padding: 2px;
122
+ transition: box-shadow 0.3s ease;
123
+ }
124
+ .ql-mind-map-icon-panel .ql-mind-map-icon-group-container .ql-mind-map-icon-item:hover {
125
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
126
+ }
127
+
128
+ .ql-mind-map-layout-panel {
129
+ display: flex;
130
+ flex-wrap: wrap;
131
+ gap: 6px;
132
+ border-radius: inherit;
133
+ width: 200px;
134
+ position: absolute;
135
+ left: 45px;
136
+ top: 60px;
137
+ background-color: white;
138
+ border: 1px solid #ccc;
139
+ padding: 10px;
140
+ z-index: 1000;
141
+ max-height: 400px;
142
+ overflow-y: auto;
143
+ }
144
+ .ql-mind-map-layout-panel .ql-mind-map-layout-item {
145
+ display: flex;
146
+ flex-direction: column;
147
+ align-items: center;
148
+ cursor: pointer;
149
+ border: 1px solid #eee;
150
+ border-radius: inherit;
151
+ padding: 2px;
152
+ width: 100%;
153
+ min-width: 100px;
154
+ transition: box-shadow 0.3s ease;
155
+ }
156
+ .ql-mind-map-layout-panel .ql-mind-map-layout-item:hover {
157
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
158
+ }
159
+ .ql-mind-map-layout-panel .ql-mind-map-layout-item .ql-mind-map-layout-icon-container {
160
+ width: 80px;
161
+ height: 60px;
162
+ }
163
+ .ql-mind-map-layout-panel .ql-mind-map-layout-item .ql-mind-map-layout-icon-container .ql-mind-map-layout-icon {
164
+ background-size: contain;
165
+ background-repeat: no-repeat;
166
+ background-position: center;
167
+ width: 80px;
168
+ height: 60px;
169
+ }
170
+ .ql-mind-map-layout-panel .ql-mind-map-layout-item .ql-mind-map-layout-name {
171
+ font-size: 12px;
172
+ margin-top: 5px;
173
+ }
174
+
175
+ .ql-mind-map-control-item.disabled {
176
+ opacity: 0.5;
177
+ cursor: not-allowed;
178
+ pointer-events: none;
179
+ }
180
+
181
+ .ql-mind-map-control-icon {
182
+ width: 16px;
183
+ height: 16px;
184
+ margin-right: 6px;
185
+ display: flex;
186
+ align-items: center;
187
+ justify-content: center;
188
+ }
189
+
190
+ .ql-mind-map-control-item i {
191
+ background-size: cover;
192
+ display: inline-block;
193
+ height: 20px;
194
+ vertical-align: middle;
195
+ width: 20px;
196
+ }
197
+
198
+ .ql-mind-map-control-item:hover {
199
+ background-color: #efefef;
200
+ }
201
+
202
+ .ql-mind-map-context-menu {
203
+ font-size: 14px;
204
+ color: #333;
205
+ user-select: none;
206
+ display: none;
207
+ position: fixed;
208
+ background: white;
209
+ border-radius: 4px;
210
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
211
+ padding: 5px 0;
212
+ z-index: 1000;
213
+ visibility: visible;
214
+ opacity: 1;
215
+ width: 120px;
216
+ height: auto;
217
+ }
218
+ .ql-mind-map-context-menu .ql-mind-map-context-menu-item:hover {
219
+ background-color: #f5f5f5;
220
+ }
221
+
222
+ .smm-node-edit-wrap {
223
+ display: none !important;
224
+ }
package/package.json CHANGED
@@ -1,67 +1,45 @@
1
- {
2
- "name": "@opentiny/fluent-editor",
3
- "type": "module",
4
- "version": "4.0.0-alpha.9",
5
- "description": "A rich text editor based on Quill 2.0, which extends rich modules and formats on the basis of Quill. It's powerful and out-of-the-box.",
6
- "author": "OpenTiny Team",
7
- "license": "MIT",
8
- "homepage": "https://opentiny.github.io/tiny-editor/",
9
- "repository": {
10
- "type": "git",
11
- "url": "git@github.com:opentiny/tiny-editor.git"
12
- },
13
- "bugs": {
14
- "url": "https://github.com/opentiny/tiny-editor/issues"
15
- },
16
- "keywords": [
17
- "editor",
18
- "rich-text-editor",
19
- "rich-text",
20
- "wysiwyg",
21
- "wysiwyg-editor",
22
- "quill",
23
- "opentiny",
24
- "fluent-editor"
25
- ],
26
- "main": "lib/index.cjs.js",
27
- "module": "es/index.es.js",
28
- "types": "types/index.d.ts",
29
- "scripts": {
30
- "dev": "vite build --watch",
31
- "build": "vite build && node scripts/pre-release.cjs",
32
- "test": "jest"
33
- },
34
- "dependencies": {
35
- "lodash-es": "^4.17.15",
36
- "quill": "^2.0.0",
37
- "quill-easy-color": "^0.0.10",
38
- "quill-shortcut-key": "^0.0.5"
39
- },
40
- "devDependencies": {
41
- "@emoji-mart/data": "^1.2.1",
42
- "@floating-ui/dom": "^1.7.2",
43
- "@types/jest": "^26.0.23",
44
- "@types/lodash-es": "^4.17.12",
45
- "commander": "^6.2.0",
46
- "emoji-mart": "^5.6.0",
47
- "highlight.js": "^10.2.0",
48
- "html2canvas": "^1.4.1",
49
- "jest": "^26.6.3",
50
- "mathlive": "^0.101.0",
51
- "parchment": "^3.0.0",
52
- "quill-cursors": "^4.0.4",
53
- "sass": "^1.90.0",
54
- "shelljs": "^0.8.4",
55
- "ts-jest": "^26.5.6",
56
- "ts-node": "^9.1.1",
57
- "typescript": "^4.9.5",
58
- "vite": "^5.0.0",
59
- "vite-plugin-dts": "^4.3.0",
60
- "y-indexeddb": "^9.0.12",
61
- "y-protocols": "^1.0.6",
62
- "y-quill": "^1.0.0",
63
- "y-webrtc": "10.3.0",
64
- "y-websocket": "^3.0.0",
65
- "yjs": "^13.6.27"
66
- }
67
- }
1
+ {
2
+ "name": "@opentiny/fluent-editor",
3
+ "type": "module",
4
+ "version": "4.0.0-beta.0",
5
+ "description": "A rich text editor based on Quill 2.0, which extends rich modules and formats on the basis of Quill. It's powerful and out-of-the-box.",
6
+ "author": "OpenTiny Team",
7
+ "license": "MIT",
8
+ "homepage": "https://opentiny.github.io/tiny-editor/",
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git@github.com:opentiny/tiny-editor.git"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/opentiny/tiny-editor/issues"
15
+ },
16
+ "keywords": [
17
+ "editor",
18
+ "rich-text-editor",
19
+ "rich-text",
20
+ "wysiwyg",
21
+ "wysiwyg-editor",
22
+ "quill",
23
+ "opentiny",
24
+ "fluent-editor"
25
+ ],
26
+ "main": "es/index.es.js",
27
+ "module": "es/index.es.js",
28
+ "types": "types/index.d.ts",
29
+ "dependencies": {
30
+ "quill": "^2.0.0",
31
+ "quill-easy-color": "^0.0.10",
32
+ "quill-shortcut-key": "^0.0.5"
33
+ },
34
+ "exports": {
35
+ ".": {
36
+ "import": "./es/index.es.js",
37
+ "require": "./lib/index.cjs.js",
38
+ "types": "./types/index.d.ts"
39
+ },
40
+ "./style.css": "./style.css",
41
+ "./flow-chart.css": "./flow-chart.css",
42
+ "./mind-map.css": "./mind-map.css",
43
+ "./package.json": "./package.json"
44
+ }
45
+ }
@@ -0,0 +1,33 @@
1
+ diff --git a/core/editor.js b/core/editor.js
2
+ index 07fd544a5857c0c498abf899c66e34a1b6b6a736..62072586605974e6890a919312c0bbd971870b9e 100644
3
+ --- a/core/editor.js
4
+ +++ b/core/editor.js
5
+ @@ -15,7 +15,14 @@ class Editor {
6
+ applyDelta(delta) {
7
+ this.scroll.update();
8
+ let scrollLength = this.scroll.length();
9
+ - this.scroll.batchStart();
10
+ +
11
+ + // Check if a batch already exists (e.g. during composition)
12
+ + const isAlreadyBatching = Boolean(this.scroll.batch);
13
+ +
14
+ + if (!isAlreadyBatching) {
15
+ + this.scroll.batchStart();
16
+ + }
17
+ +
18
+ const normalizedDelta = normalizeDelta(delta);
19
+ const deleteDelta = new Delta();
20
+ const normalizedOps = splitOpLines(normalizedDelta.ops.slice());
21
+ @@ -93,7 +100,11 @@ class Editor {
22
+ }
23
+ return index + Op.length(op);
24
+ }, 0);
25
+ - this.scroll.batchEnd();
26
+ +
27
+ + if (!isAlreadyBatching) {
28
+ + this.scroll.batchEnd();
29
+ + }
30
+ +
31
+ this.scroll.optimize();
32
+ return this.update(normalizedDelta);
33
+ }