@wangeditor-next/upload-image-module 1.3.0 → 2.0.1

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 (303) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +3 -3
  3. package/dist/basic-modules/src/constants/icon-svg.d.ts +47 -0
  4. package/dist/basic-modules/src/index.d.ts +9 -0
  5. package/dist/basic-modules/src/locale/en.d.ts +101 -0
  6. package/dist/basic-modules/src/locale/index.d.ts +5 -0
  7. package/dist/basic-modules/src/locale/zh-CN.d.ts +101 -0
  8. package/dist/basic-modules/src/modules/blockquote/custom-types.d.ts +9 -0
  9. package/dist/basic-modules/src/modules/blockquote/elem-to-html.d.ts +11 -0
  10. package/dist/basic-modules/src/modules/blockquote/index.d.ts +7 -0
  11. package/dist/basic-modules/src/modules/blockquote/menu/BlockquoteMenu.d.ts +20 -0
  12. package/dist/basic-modules/src/modules/blockquote/menu/index.d.ts +9 -0
  13. package/dist/basic-modules/src/modules/blockquote/parse-elem-html.d.ts +14 -0
  14. package/dist/basic-modules/src/modules/blockquote/plugin.d.ts +7 -0
  15. package/dist/basic-modules/src/modules/blockquote/render-elem.d.ts +20 -0
  16. package/dist/basic-modules/src/modules/code-block/custom-types.d.ts +17 -0
  17. package/dist/basic-modules/src/modules/code-block/elem-to-html.d.ts +16 -0
  18. package/dist/basic-modules/src/modules/code-block/index.d.ts +7 -0
  19. package/dist/basic-modules/src/modules/code-block/menu/CodeBlockMenu.d.ts +22 -0
  20. package/dist/basic-modules/src/modules/code-block/menu/index.d.ts +9 -0
  21. package/dist/basic-modules/src/modules/code-block/parse-elem-html.d.ts +19 -0
  22. package/dist/basic-modules/src/modules/code-block/plugin.d.ts +7 -0
  23. package/dist/basic-modules/src/modules/code-block/pre-parse-html.d.ts +15 -0
  24. package/dist/basic-modules/src/modules/code-block/render-elem.d.ts +18 -0
  25. package/dist/basic-modules/src/modules/color/custom-types.d.ts +9 -0
  26. package/dist/basic-modules/src/modules/color/index.d.ts +7 -0
  27. package/dist/basic-modules/src/modules/color/menu/BaseMenu.d.ts +20 -0
  28. package/dist/basic-modules/src/modules/color/menu/BgColorMenu.d.ts +11 -0
  29. package/dist/basic-modules/src/modules/color/menu/ColorMenu.d.ts +11 -0
  30. package/dist/basic-modules/src/modules/color/menu/config.d.ts +6 -0
  31. package/dist/basic-modules/src/modules/color/menu/index.d.ts +20 -0
  32. package/dist/basic-modules/src/modules/color/parse-style-html.d.ts +8 -0
  33. package/dist/basic-modules/src/modules/color/pre-parse-html.d.ts +15 -0
  34. package/dist/basic-modules/src/modules/color/render-style.d.ts +15 -0
  35. package/dist/basic-modules/src/modules/color/style-to-html.d.ts +14 -0
  36. package/dist/basic-modules/src/modules/common/index.d.ts +7 -0
  37. package/dist/basic-modules/src/modules/common/menu/EnterMenu.d.ts +15 -0
  38. package/dist/basic-modules/src/modules/common/menu/index.d.ts +9 -0
  39. package/dist/basic-modules/src/modules/divider/custom-types.d.ts +12 -0
  40. package/dist/basic-modules/src/modules/divider/elem-to-html.d.ts +11 -0
  41. package/dist/basic-modules/src/modules/divider/index.d.ts +7 -0
  42. package/dist/basic-modules/src/modules/divider/menu/InsertDividerMenu.d.ts +15 -0
  43. package/dist/basic-modules/src/modules/divider/menu/index.d.ts +9 -0
  44. package/dist/basic-modules/src/modules/divider/parse-elem-html.d.ts +14 -0
  45. package/dist/basic-modules/src/modules/divider/plugin.d.ts +7 -0
  46. package/dist/basic-modules/src/modules/divider/render-elem.d.ts +13 -0
  47. package/dist/basic-modules/src/modules/emotion/index.d.ts +7 -0
  48. package/dist/basic-modules/src/modules/emotion/menu/EmotionMenu.d.ts +19 -0
  49. package/dist/basic-modules/src/modules/emotion/menu/config.d.ts +5 -0
  50. package/dist/basic-modules/src/modules/emotion/menu/index.d.ts +12 -0
  51. package/dist/basic-modules/src/modules/font-size-family/custom-types.d.ts +9 -0
  52. package/dist/basic-modules/src/modules/font-size-family/index.d.ts +7 -0
  53. package/dist/basic-modules/src/modules/font-size-family/menu/BaseMenu.d.ts +18 -0
  54. package/dist/basic-modules/src/modules/font-size-family/menu/FontFamilyMenu.d.ts +14 -0
  55. package/dist/basic-modules/src/modules/font-size-family/menu/FontSizeMenu.d.ts +13 -0
  56. package/dist/basic-modules/src/modules/font-size-family/menu/config.d.ts +12 -0
  57. package/dist/basic-modules/src/modules/font-size-family/menu/index.d.ts +26 -0
  58. package/dist/basic-modules/src/modules/font-size-family/parse-style-html.d.ts +8 -0
  59. package/dist/basic-modules/src/modules/font-size-family/pre-parse-html.d.ts +15 -0
  60. package/dist/basic-modules/src/modules/font-size-family/render-style.d.ts +15 -0
  61. package/dist/basic-modules/src/modules/font-size-family/style-to-html.d.ts +14 -0
  62. package/dist/basic-modules/src/modules/format-painter/helper.d.ts +3 -0
  63. package/dist/basic-modules/src/modules/format-painter/index.d.ts +7 -0
  64. package/dist/basic-modules/src/modules/format-painter/menu/FormatPainter.d.ts +22 -0
  65. package/dist/basic-modules/src/modules/format-painter/menu/index.d.ts +9 -0
  66. package/dist/basic-modules/src/modules/format-painter/plugin.d.ts +7 -0
  67. package/dist/basic-modules/src/modules/full-screen/index.d.ts +7 -0
  68. package/dist/basic-modules/src/modules/full-screen/menu/FullScreen.d.ts +18 -0
  69. package/dist/basic-modules/src/modules/full-screen/menu/index.d.ts +9 -0
  70. package/dist/basic-modules/src/modules/header/custom-types.d.ts +29 -0
  71. package/dist/basic-modules/src/modules/header/elem-to-html.d.ts +29 -0
  72. package/dist/basic-modules/src/modules/header/helper.d.ts +14 -0
  73. package/dist/basic-modules/src/modules/header/index.d.ts +7 -0
  74. package/dist/basic-modules/src/modules/header/menu/Header1ButtonMenu.d.ts +10 -0
  75. package/dist/basic-modules/src/modules/header/menu/Header2ButtonMenu.d.ts +10 -0
  76. package/dist/basic-modules/src/modules/header/menu/Header3ButtonMenu.d.ts +10 -0
  77. package/dist/basic-modules/src/modules/header/menu/Header4ButtonMenu.d.ts +10 -0
  78. package/dist/basic-modules/src/modules/header/menu/Header5ButtonMenu.d.ts +10 -0
  79. package/dist/basic-modules/src/modules/header/menu/Header6ButtonMenu.d.ts +10 -0
  80. package/dist/basic-modules/src/modules/header/menu/HeaderButtonMenuBase.d.ts +19 -0
  81. package/dist/basic-modules/src/modules/header/menu/HeaderSelectMenu.d.ts +26 -0
  82. package/dist/basic-modules/src/modules/header/menu/index.d.ts +39 -0
  83. package/dist/basic-modules/src/modules/header/parse-elem-html.d.ts +32 -0
  84. package/dist/basic-modules/src/modules/header/plugin.d.ts +7 -0
  85. package/dist/basic-modules/src/modules/header/render-elem.d.ts +32 -0
  86. package/dist/basic-modules/src/modules/image/custom-types.d.ts +22 -0
  87. package/dist/basic-modules/src/modules/image/elem-to-html.d.ts +12 -0
  88. package/dist/basic-modules/src/modules/image/helper.d.ts +13 -0
  89. package/dist/basic-modules/src/modules/image/index.d.ts +7 -0
  90. package/dist/basic-modules/src/modules/image/menu/DeleteImage.d.ts +15 -0
  91. package/dist/basic-modules/src/modules/image/menu/EditImage.d.ts +28 -0
  92. package/dist/basic-modules/src/modules/image/menu/EditImageSizeMenu.d.ts +25 -0
  93. package/dist/basic-modules/src/modules/image/menu/InsertImage.d.ts +27 -0
  94. package/dist/basic-modules/src/modules/image/menu/ViewImageLink.d.ts +15 -0
  95. package/dist/basic-modules/src/modules/image/menu/Width100.d.ts +10 -0
  96. package/dist/basic-modules/src/modules/image/menu/Width30.d.ts +10 -0
  97. package/dist/basic-modules/src/modules/image/menu/Width50.d.ts +10 -0
  98. package/dist/basic-modules/src/modules/image/menu/WidthBase.d.ts +16 -0
  99. package/dist/basic-modules/src/modules/image/menu/config.d.ts +30 -0
  100. package/dist/basic-modules/src/modules/image/menu/index.d.ts +56 -0
  101. package/dist/basic-modules/src/modules/image/parse-elem-html.d.ts +14 -0
  102. package/dist/basic-modules/src/modules/image/plugin.d.ts +7 -0
  103. package/dist/basic-modules/src/modules/image/render-elem.d.ts +13 -0
  104. package/dist/basic-modules/src/modules/indent/custom-types.d.ts +10 -0
  105. package/dist/basic-modules/src/modules/indent/index.d.ts +7 -0
  106. package/dist/basic-modules/src/modules/indent/menu/BaseMenu.d.ts +25 -0
  107. package/dist/basic-modules/src/modules/indent/menu/DecreaseIndentMenu.d.ts +13 -0
  108. package/dist/basic-modules/src/modules/indent/menu/IncreaseIndentMenu.d.ts +15 -0
  109. package/dist/basic-modules/src/modules/indent/menu/index.d.ts +14 -0
  110. package/dist/basic-modules/src/modules/indent/parse-style-html.d.ts +8 -0
  111. package/dist/basic-modules/src/modules/indent/pre-parse-html.d.ts +15 -0
  112. package/dist/basic-modules/src/modules/indent/render-style.d.ts +15 -0
  113. package/dist/basic-modules/src/modules/indent/style-to-html.d.ts +7 -0
  114. package/dist/basic-modules/src/modules/justify/custom-types.d.ts +10 -0
  115. package/dist/basic-modules/src/modules/justify/index.d.ts +7 -0
  116. package/dist/basic-modules/src/modules/justify/menu/BaseMenu.d.ts +15 -0
  117. package/dist/basic-modules/src/modules/justify/menu/JustifyCenterMenu.d.ts +12 -0
  118. package/dist/basic-modules/src/modules/justify/menu/JustifyJustifyMenu.d.ts +12 -0
  119. package/dist/basic-modules/src/modules/justify/menu/JustifyLeftMenu.d.ts +12 -0
  120. package/dist/basic-modules/src/modules/justify/menu/JustifyRightMenu.d.ts +12 -0
  121. package/dist/basic-modules/src/modules/justify/menu/index.d.ts +24 -0
  122. package/dist/basic-modules/src/modules/justify/parse-style-html.d.ts +8 -0
  123. package/dist/basic-modules/src/modules/justify/render-style.d.ts +15 -0
  124. package/dist/basic-modules/src/modules/justify/style-to-html.d.ts +7 -0
  125. package/dist/basic-modules/src/modules/line-height/custom-types.d.ts +10 -0
  126. package/dist/basic-modules/src/modules/line-height/index.d.ts +7 -0
  127. package/dist/basic-modules/src/modules/line-height/menu/LineHeightMenu.d.ts +26 -0
  128. package/dist/basic-modules/src/modules/line-height/menu/config.d.ts +5 -0
  129. package/dist/basic-modules/src/modules/line-height/menu/index.d.ts +12 -0
  130. package/dist/basic-modules/src/modules/line-height/parse-style-html.d.ts +8 -0
  131. package/dist/basic-modules/src/modules/line-height/render-style.d.ts +15 -0
  132. package/dist/basic-modules/src/modules/line-height/style-to-html.d.ts +7 -0
  133. package/dist/basic-modules/src/modules/link/custom-types.d.ts +11 -0
  134. package/dist/basic-modules/src/modules/link/elem-to-html.d.ts +11 -0
  135. package/dist/basic-modules/src/modules/link/helper.d.ts +20 -0
  136. package/dist/basic-modules/src/modules/link/index.d.ts +7 -0
  137. package/dist/basic-modules/src/modules/link/menu/EditLink.d.ts +29 -0
  138. package/dist/basic-modules/src/modules/link/menu/InsertLink.d.ts +25 -0
  139. package/dist/basic-modules/src/modules/link/menu/UnLink.d.ts +15 -0
  140. package/dist/basic-modules/src/modules/link/menu/ViewLink.d.ts +16 -0
  141. package/dist/basic-modules/src/modules/link/menu/config.d.ts +18 -0
  142. package/dist/basic-modules/src/modules/link/menu/index.d.ts +33 -0
  143. package/dist/basic-modules/src/modules/link/parse-elem-html.d.ts +14 -0
  144. package/dist/basic-modules/src/modules/link/plugin.d.ts +7 -0
  145. package/dist/basic-modules/src/modules/link/render-elem.d.ts +20 -0
  146. package/dist/basic-modules/src/modules/link/url.d.ts +10 -0
  147. package/dist/basic-modules/src/modules/paragraph/custom-types.d.ts +9 -0
  148. package/dist/basic-modules/src/modules/paragraph/elem-to-html.d.ts +11 -0
  149. package/dist/basic-modules/src/modules/paragraph/index.d.ts +7 -0
  150. package/dist/basic-modules/src/modules/paragraph/parse-elem-html.d.ts +14 -0
  151. package/dist/basic-modules/src/modules/paragraph/plugin.d.ts +7 -0
  152. package/dist/basic-modules/src/modules/paragraph/render-elem.d.ts +20 -0
  153. package/dist/basic-modules/src/modules/text-style/custom-types.d.ts +14 -0
  154. package/dist/basic-modules/src/modules/text-style/helper.d.ts +8 -0
  155. package/dist/basic-modules/src/modules/text-style/index.d.ts +7 -0
  156. package/dist/basic-modules/src/modules/text-style/menu/BaseMenu.d.ts +27 -0
  157. package/dist/basic-modules/src/modules/text-style/menu/BoldMenu.d.ts +12 -0
  158. package/dist/basic-modules/src/modules/text-style/menu/ClearStyleMenu.d.ts +20 -0
  159. package/dist/basic-modules/src/modules/text-style/menu/CodeMenu.d.ts +12 -0
  160. package/dist/basic-modules/src/modules/text-style/menu/ItalicMenu.d.ts +12 -0
  161. package/dist/basic-modules/src/modules/text-style/menu/SubMenu.d.ts +13 -0
  162. package/dist/basic-modules/src/modules/text-style/menu/SupMenu.d.ts +13 -0
  163. package/dist/basic-modules/src/modules/text-style/menu/ThroughMenu.d.ts +12 -0
  164. package/dist/basic-modules/src/modules/text-style/menu/UnderlineMenu.d.ts +12 -0
  165. package/dist/basic-modules/src/modules/text-style/menu/index.d.ts +44 -0
  166. package/dist/basic-modules/src/modules/text-style/parse-style-html.d.ts +8 -0
  167. package/dist/basic-modules/src/modules/text-style/render-style.d.ts +13 -0
  168. package/dist/basic-modules/src/modules/text-style/style-to-html.d.ts +12 -0
  169. package/dist/basic-modules/src/modules/todo/custom-types.d.ts +10 -0
  170. package/dist/basic-modules/src/modules/todo/elem-to-html.d.ts +11 -0
  171. package/dist/basic-modules/src/modules/todo/index.d.ts +7 -0
  172. package/dist/basic-modules/src/modules/todo/menu/Todo.d.ts +15 -0
  173. package/dist/basic-modules/src/modules/todo/menu/index.d.ts +9 -0
  174. package/dist/basic-modules/src/modules/todo/parse-elem-html.d.ts +14 -0
  175. package/dist/basic-modules/src/modules/todo/plugin.d.ts +7 -0
  176. package/dist/basic-modules/src/modules/todo/pre-parse-html.d.ts +15 -0
  177. package/dist/basic-modules/src/modules/todo/render-elem.d.ts +20 -0
  178. package/dist/basic-modules/src/modules/undo-redo/index.d.ts +7 -0
  179. package/dist/basic-modules/src/modules/undo-redo/menu/RedoMenu.d.ts +15 -0
  180. package/dist/basic-modules/src/modules/undo-redo/menu/UndoMenu.d.ts +15 -0
  181. package/dist/basic-modules/src/modules/undo-redo/menu/index.d.ts +14 -0
  182. package/dist/basic-modules/src/utils/dom.d.ts +36 -0
  183. package/dist/basic-modules/src/utils/style-class.d.ts +14 -0
  184. package/dist/basic-modules/src/utils/util.d.ts +11 -0
  185. package/dist/basic-modules/src/utils/vdom.d.ts +25 -0
  186. package/dist/core/src/config/index.d.ts +13 -0
  187. package/dist/core/src/config/interface.d.ts +270 -0
  188. package/dist/core/src/config/register.d.ts +12 -0
  189. package/dist/core/src/config/style-mode.d.ts +8 -0
  190. package/dist/core/src/constants/index.d.ts +1 -0
  191. package/dist/core/src/constants/svg.d.ts +12 -0
  192. package/dist/core/src/create/bind-node-relation.d.ts +15 -0
  193. package/dist/core/src/create/create-editor.d.ts +10 -0
  194. package/dist/core/src/create/create-toolbar.d.ts +14 -0
  195. package/dist/core/src/create/helper.d.ts +37 -0
  196. package/dist/core/src/create/index.d.ts +7 -0
  197. package/dist/core/src/editor/dom-editor.d.ts +153 -0
  198. package/dist/core/src/editor/interface.d.ts +73 -0
  199. package/dist/core/src/editor/plugins/with-config.d.ts +7 -0
  200. package/dist/core/src/editor/plugins/with-content.d.ts +7 -0
  201. package/dist/core/src/editor/plugins/with-dom.d.ts +10 -0
  202. package/dist/core/src/editor/plugins/with-emitter.d.ts +7 -0
  203. package/dist/core/src/editor/plugins/with-event-data.d.ts +7 -0
  204. package/dist/core/src/editor/plugins/with-max-length.d.ts +7 -0
  205. package/dist/core/src/editor/plugins/with-selection.d.ts +7 -0
  206. package/dist/core/src/i18n/index.d.ts +32 -0
  207. package/dist/core/src/index.d.ts +43 -0
  208. package/dist/core/src/menus/bar/HoverBar.d.ts +48 -0
  209. package/dist/core/src/menus/bar/Toolbar.d.ts +36 -0
  210. package/dist/core/src/menus/bar-item/BaseButton.d.ts +26 -0
  211. package/dist/core/src/menus/bar-item/DropPanelButton.d.ts +14 -0
  212. package/dist/core/src/menus/bar-item/GroupButton.d.ts +17 -0
  213. package/dist/core/src/menus/bar-item/ModalButton.d.ts +25 -0
  214. package/dist/core/src/menus/bar-item/Select.d.ts +22 -0
  215. package/dist/core/src/menus/bar-item/SimpleButton.d.ts +11 -0
  216. package/dist/core/src/menus/bar-item/index.d.ts +24 -0
  217. package/dist/core/src/menus/bar-item/tooltip.d.ts +6 -0
  218. package/dist/core/src/menus/helpers/helpers.d.ts +18 -0
  219. package/dist/core/src/menus/helpers/position.d.ts +36 -0
  220. package/dist/core/src/menus/index.d.ts +9 -0
  221. package/dist/core/src/menus/interface.d.ts +65 -0
  222. package/dist/core/src/menus/panel-and-modal/BaseClass.d.ts +26 -0
  223. package/dist/core/src/menus/panel-and-modal/DropPanel.d.ts +14 -0
  224. package/dist/core/src/menus/panel-and-modal/Modal.d.ts +44 -0
  225. package/dist/core/src/menus/panel-and-modal/SelectList.d.ts +20 -0
  226. package/dist/core/src/menus/register.d.ts +15 -0
  227. package/dist/core/src/parse-html/helper.d.ts +10 -0
  228. package/dist/core/src/parse-html/index.d.ts +35 -0
  229. package/dist/core/src/parse-html/parse-common-elem-html.d.ts +15 -0
  230. package/dist/core/src/parse-html/parse-elem-html.d.ts +15 -0
  231. package/dist/core/src/parse-html/parse-text-elem-html.d.ts +16 -0
  232. package/dist/core/src/render/element/getRenderElem.d.ts +11 -0
  233. package/dist/core/src/render/element/renderElement.d.ts +9 -0
  234. package/dist/core/src/render/element/renderStyle.d.ts +15 -0
  235. package/dist/core/src/render/helper.d.ts +7 -0
  236. package/dist/core/src/render/index.d.ts +27 -0
  237. package/dist/core/src/render/node2Vnode.d.ts +15 -0
  238. package/dist/core/src/render/text/genVnode.d.ts +9 -0
  239. package/dist/core/src/render/text/renderStyle.d.ts +15 -0
  240. package/dist/core/src/render/text/renderText.d.ts +9 -0
  241. package/dist/core/src/text-area/TextArea.d.ts +52 -0
  242. package/dist/core/src/text-area/event-handlers/beforeInput.d.ts +8 -0
  243. package/dist/core/src/text-area/event-handlers/blur.d.ts +8 -0
  244. package/dist/core/src/text-area/event-handlers/click.d.ts +8 -0
  245. package/dist/core/src/text-area/event-handlers/composition.d.ts +27 -0
  246. package/dist/core/src/text-area/event-handlers/copy.d.ts +8 -0
  247. package/dist/core/src/text-area/event-handlers/cut.d.ts +8 -0
  248. package/dist/core/src/text-area/event-handlers/drag.d.ts +9 -0
  249. package/dist/core/src/text-area/event-handlers/drop.d.ts +8 -0
  250. package/dist/core/src/text-area/event-handlers/focus.d.ts +8 -0
  251. package/dist/core/src/text-area/event-handlers/index.d.ts +35 -0
  252. package/dist/core/src/text-area/event-handlers/keydown.d.ts +8 -0
  253. package/dist/core/src/text-area/event-handlers/keypress.d.ts +8 -0
  254. package/dist/core/src/text-area/event-handlers/paste.d.ts +8 -0
  255. package/dist/core/src/text-area/helpers.d.ts +30 -0
  256. package/dist/core/src/text-area/place-holder.d.ts +18 -0
  257. package/dist/core/src/text-area/syncSelection.d.ts +19 -0
  258. package/dist/core/src/text-area/update-view.d.ts +13 -0
  259. package/dist/core/src/to-html/elem2html.d.ts +8 -0
  260. package/dist/core/src/to-html/index.d.ts +32 -0
  261. package/dist/core/src/to-html/node2html.d.ts +8 -0
  262. package/dist/core/src/to-html/text2html.d.ts +8 -0
  263. package/dist/core/src/upload/createUploader.d.ts +12 -0
  264. package/dist/core/src/upload/createUppyUploader.d.ts +7 -0
  265. package/dist/core/src/upload/index.d.ts +9 -0
  266. package/dist/core/src/upload/interface.d.ts +72 -0
  267. package/dist/core/src/upload.d.ts +5 -0
  268. package/dist/core/src/utils/dom.d.ts +103 -0
  269. package/dist/core/src/utils/hotkeys.d.ts +35 -0
  270. package/dist/core/src/utils/key.d.ts +11 -0
  271. package/dist/core/src/utils/line.d.ts +14 -0
  272. package/dist/core/src/utils/sanitize-html.d.ts +5 -0
  273. package/dist/core/src/utils/ua.d.ts +14 -0
  274. package/dist/core/src/utils/util.d.ts +28 -0
  275. package/dist/core/src/utils/vdom.d.ts +34 -0
  276. package/dist/core/src/utils/weak-maps.d.ts +60 -0
  277. package/dist/css/style.css +0 -0
  278. package/dist/index.js +2 -0
  279. package/dist/index.js.map +1 -0
  280. package/dist/index.mjs +2 -0
  281. package/dist/index.mjs.map +1 -0
  282. package/dist/table-module/src/utils/has-common.d.ts +7 -0
  283. package/dist/table-module/src/utils/index.d.ts +5 -0
  284. package/dist/table-module/src/utils/is-of-type.d.ts +6 -0
  285. package/dist/table-module/src/utils/matrices.d.ts +9 -0
  286. package/dist/table-module/src/utils/options.d.ts +25 -0
  287. package/dist/table-module/src/utils/point.d.ts +7 -0
  288. package/dist/table-module/src/utils/types.d.ts +19 -0
  289. package/dist/upload-image-module/src/constants/svg.d.ts +10 -0
  290. package/dist/upload-image-module/src/index.d.ts +8 -0
  291. package/dist/upload-image-module/src/locale/en.d.ts +11 -0
  292. package/dist/upload-image-module/src/locale/index.d.ts +5 -0
  293. package/dist/upload-image-module/src/locale/zh-CN.d.ts +11 -0
  294. package/dist/upload-image-module/src/module/index.d.ts +7 -0
  295. package/dist/upload-image-module/src/module/menu/UploadImageMenu.d.ts +16 -0
  296. package/dist/upload-image-module/src/module/menu/config.d.ts +6 -0
  297. package/dist/upload-image-module/src/module/menu/index.d.ts +10 -0
  298. package/dist/upload-image-module/src/module/plugin.d.ts +7 -0
  299. package/dist/upload-image-module/src/module/upload-images.d.ts +11 -0
  300. package/dist/upload-image-module/src/utils/dom.d.ts +7 -0
  301. package/dist/video-module/src/module/custom-types.d.ts +23 -0
  302. package/package.json +32 -26
  303. package/CHANGELOG.md +0 -138
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @description DOM 操作 part1 - DOM7 文档 https://framework7.io/docs/dom7.html
3
+ * @author wangfupeng
4
+ */
5
+ import $, { Dom7Array } from 'dom7';
6
+ import DOMNode = globalThis.Node;
7
+ import DOMComment = globalThis.Comment;
8
+ import DOMElement = globalThis.Element;
9
+ import DOMText = globalThis.Text;
10
+ import DOMRange = globalThis.Range;
11
+ import DOMSelection = globalThis.Selection;
12
+ import DOMStaticRange = globalThis.StaticRange;
13
+ export { Dom7Array } from 'dom7';
14
+ export default $;
15
+ export declare enum NodeType {
16
+ ELEMENT_NODE = 1,
17
+ TEXT_NODE = 3,
18
+ CDATA_SECTION_NODE = 4,
19
+ PROCESSING_INSTRUCTION_NODE = 7,
20
+ COMMENT_NODE = 8,
21
+ DOCUMENT_NODE = 9,
22
+ DOCUMENT_TYPE_NODE = 10,
23
+ DOCUMENT_FRAGMENT_NODE = 11
24
+ }
25
+ export declare const isDocument: (value: any) => value is Document;
26
+ export declare const isShadowRoot: (value: any) => value is ShadowRoot;
27
+ export declare const isDataTransfer: (value: any) => value is DataTransfer;
28
+ export declare const isUnprocessedListElement: (el: Element) => boolean;
29
+ export declare const isHTMLElememt: (value: any) => value is HTMLElement;
30
+ export { DOMComment, DOMElement, DOMNode, DOMRange, DOMSelection, DOMStaticRange, DOMText, };
31
+ export type DOMPoint = [Node, number];
32
+ /**
33
+ * Returns the host window of a DOM node
34
+ */
35
+ export declare const getDefaultView: (value: any) => Window | null;
36
+ /**
37
+ * Check if a value is a DOM node.
38
+ */
39
+ export declare const isDOMNode: (value: any) => value is DOMNode;
40
+ /**
41
+ * Check if a DOM node is a comment node.
42
+ */
43
+ export declare const isDOMComment: (value: any) => value is DOMComment;
44
+ /**
45
+ * Check if a DOM node is an element node.
46
+ */
47
+ export declare const isDOMElement: (value: any) => value is DOMElement;
48
+ /**
49
+ * Check if a value is a DOM selection.
50
+ */
51
+ export declare const isDOMSelection: (value: any) => value is DOMSelection;
52
+ /**
53
+ * Check if a DOM node is an element node.
54
+ */
55
+ export declare const isDOMText: (value: any) => value is DOMText;
56
+ /**
57
+ * Checks whether a paste event is a plaintext-only event.
58
+ */
59
+ export declare const isPlainTextOnlyPaste: (event: ClipboardEvent) => boolean | null;
60
+ /**
61
+ * Normalize a DOM point so that it always refers to a text node.
62
+ */
63
+ export declare const normalizeDOMPoint: (domPoint: DOMPoint) => DOMPoint;
64
+ /**
65
+ * Determines wether the active element is nested within a shadowRoot
66
+ */
67
+ export declare const hasShadowRoot: () => boolean;
68
+ /**
69
+ * Get the element with the specified id
70
+ */
71
+ export declare const getElementById: (id: string) => null | HTMLElement;
72
+ /**
73
+ * Get the nearest editable child and index at `index` in a `parent`, preferring `direction`.
74
+ */
75
+ export declare const getEditableChildAndIndex: (parent: DOMElement, index: number, direction: "forward" | "backward") => [DOMNode, number];
76
+ /**
77
+ * Get the nearest editable child at `index` in a `parent`, preferring
78
+ * `direction`.
79
+ */
80
+ export declare const getEditableChild: (parent: DOMElement, index: number, direction: "forward" | "backward") => DOMNode;
81
+ /**
82
+ * Get a plaintext representation of the content of a node, accounting for block
83
+ * elements which get a newline appended.
84
+ *
85
+ * The domNode must be attached to the DOM.
86
+ */
87
+ export declare const getPlainText: (domNode: DOMNode) => string;
88
+ /**
89
+ * 在下级节点中找到第一个 void elem
90
+ * @param elem elem
91
+ */
92
+ export declare function getFirstVoidChild(elem: DOMElement): DOMElement | null;
93
+ /**
94
+ * 遍历一个 elem 内所有的 text node ,执行函数
95
+ * @param elem elem
96
+ * @param handler handler
97
+ */
98
+ export declare function walkTextNodes(elem: DOMElement, handler: (textNode: DOMNode, parent: DOMElement) => void): void;
99
+ /**
100
+ * 获取 tagName lower-case
101
+ * @param $elem $elem
102
+ */
103
+ export declare function getTagName($elem: Dom7Array): string;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @description 快捷键
3
+ * @author wangfupeng
4
+ */
5
+ /**
6
+ * Hotkeys.
7
+ */
8
+ declare const _default: {
9
+ isBold: (event: KeyboardEvent) => boolean;
10
+ isCompose: (event: KeyboardEvent) => boolean;
11
+ isMoveBackward: (event: KeyboardEvent) => boolean;
12
+ isMoveForward: (event: KeyboardEvent) => boolean;
13
+ isDeleteBackward: (event: KeyboardEvent) => boolean;
14
+ isDeleteForward: (event: KeyboardEvent) => boolean;
15
+ isDeleteLineBackward: (event: KeyboardEvent) => boolean;
16
+ isDeleteLineForward: (event: KeyboardEvent) => boolean;
17
+ isDeleteWordBackward: (event: KeyboardEvent) => boolean;
18
+ isDeleteWordForward: (event: KeyboardEvent) => boolean;
19
+ isExtendBackward: (event: KeyboardEvent) => boolean;
20
+ isExtendForward: (event: KeyboardEvent) => boolean;
21
+ isExtendLineBackward: (event: KeyboardEvent) => boolean;
22
+ isExtendLineForward: (event: KeyboardEvent) => boolean;
23
+ isItalic: (event: KeyboardEvent) => boolean;
24
+ isMoveLineBackward: (event: KeyboardEvent) => boolean;
25
+ isMoveLineForward: (event: KeyboardEvent) => boolean;
26
+ isMoveWordBackward: (event: KeyboardEvent) => boolean;
27
+ isMoveWordForward: (event: KeyboardEvent) => boolean;
28
+ isRedo: (event: KeyboardEvent) => boolean;
29
+ isSplitBlock: (event: KeyboardEvent) => boolean;
30
+ isTransposeCharacter: (event: KeyboardEvent) => boolean;
31
+ isUndo: (event: KeyboardEvent) => boolean;
32
+ isTab: (event: KeyboardEvent) => boolean;
33
+ isSelectAll: (event: KeyboardEvent) => boolean;
34
+ };
35
+ export default _default;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * An auto-incrementing identifier for keys.
3
+ */
4
+ /**
5
+ * A class that keeps track of a key string. We use a full class here because we
6
+ * want to be able to use them as keys in `WeakMap` objects.
7
+ */
8
+ export declare class Key {
9
+ id: string;
10
+ constructor();
11
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description Utilities for single-line deletion
3
+ */
4
+ import { Range } from 'slate';
5
+ import { IDomEditor } from '../editor/interface';
6
+ /**
7
+ * A helper utility that returns the end portion of a `Range`
8
+ * which is located on a single line.
9
+ *
10
+ * @param {Editor} editor The editor object to compare against
11
+ * @param {Range} parentRange The parent range to compare against
12
+ * @returns {Range} A valid portion of the parentRange which is one a single line
13
+ */
14
+ export declare const findCurrentLineRange: (editor: IDomEditor, parentRange: Range) => Range;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description sanitize html before parsing/importing into editor
3
+ * @author Codex
4
+ */
5
+ export declare function defaultSanitizeHtml(html?: string): string;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @description 通过 UA 判断浏览器
3
+ * @author wangfupeng
4
+ */
5
+ export declare const IS_IOS: boolean;
6
+ export declare const IS_APPLE: boolean;
7
+ export declare const IS_FIREFOX: boolean;
8
+ export declare const IS_FIREFOX_LEGACY: boolean;
9
+ export declare const IS_SAFARI: boolean;
10
+ export declare const IS_EDGE_LEGACY: boolean;
11
+ export declare const IS_CHROME_LEGACY: boolean;
12
+ export declare const IS_CHROME: boolean;
13
+ export declare const IS_QQBROWSER: boolean;
14
+ export declare const HAS_BEFORE_INPUT_SUPPORT: boolean;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @description 工具函数
3
+ * @author wangfupeng
4
+ */
5
+ /**
6
+ * 获取随机数字符串
7
+ * @param prefix 前缀
8
+ * @returns 随机数字符串
9
+ */
10
+ export declare function genRandomStr(prefix?: string): string;
11
+ export declare function promiseResolveThen(fn: Function): void;
12
+ /**
13
+ * 追加 url query 参数
14
+ * @param url url
15
+ * @param data data
16
+ */
17
+ export declare function addQueryToUrl(url: string, data: object): string;
18
+ /**
19
+ * 替换 html 特殊字符,如 > 替换为 >
20
+ * @param str html str
21
+ */
22
+ export declare function replaceHtmlSpecialSymbols(str: string): string;
23
+ /**
24
+ *【反转】替换 html 特殊字符,如 > 替换为 >
25
+ * @param str html str
26
+ */
27
+ export declare function deReplaceHtmlSpecialSymbols(str: string): string;
28
+ export declare const toString: (val: unknown) => string;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @description vdom 相关方法
3
+ * @author wangfupeng
4
+ */
5
+ import { VNode, VNodeStyle, Props, Dataset } from 'snabbdom';
6
+ export type PatchFn = (oldVnode: VNode | Element, vnode: VNode) => VNode;
7
+ /**
8
+ * 创建 snabbdom patch
9
+ * @returns snabbdom patch 函数
10
+ */
11
+ export declare function genPatchFn(): PatchFn;
12
+ /**
13
+ * 整理 vnode.data ,将暴露出来的零散属性(如 id className data-xxx)放在 data.props 或 data.dataset
14
+ * @param vnode vnode
15
+ */
16
+ export declare function normalizeVnodeData(vnode: VNode): void;
17
+ /**
18
+ * 给 vnode 添加 prop
19
+ * @param vnode vnode
20
+ * @param newProp { key: val }
21
+ */
22
+ export declare function addVnodeProp(vnode: VNode, newProp: Props): void;
23
+ /**
24
+ * 给 vnode 添加 dataset
25
+ * @param vnode vnode
26
+ * @param newDataset { key: val }
27
+ */
28
+ export declare function addVnodeDataset(vnode: VNode, newDataset: Dataset): void;
29
+ /**
30
+ * 给 vnode 添加样式
31
+ * @param vnode vnode
32
+ * @param newStyle { key: val }
33
+ */
34
+ export declare function addVnodeStyle(vnode: VNode, newStyle: VNodeStyle): void;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @description 对象关联关系(部分参考 slate-react weak-maps.ts)
3
+ * @author wangfupeng
4
+ */
5
+ import { Emitter } from 'event-emitter';
6
+ import { Ancestor, Editor, Node, Path, Range } from 'slate';
7
+ import { VNode } from 'snabbdom';
8
+ import { IEditorConfig } from '../config/interface';
9
+ import { IDomEditor } from '../editor/interface';
10
+ import HoverBar from '../menus/bar/HoverBar';
11
+ import Toolbar from '../menus/bar/Toolbar';
12
+ import { IBarItem } from '../menus/bar-item/index';
13
+ import PanelAndModal from '../menus/panel-and-modal/BaseClass';
14
+ import TextArea from '../text-area/TextArea';
15
+ import { PatchFn } from '../utils/vdom';
16
+ import { Key } from './key';
17
+ export declare const EDITOR_TO_TEXTAREA: WeakMap<IDomEditor, TextArea>;
18
+ export declare const TEXTAREA_TO_EDITOR: WeakMap<TextArea, IDomEditor>;
19
+ export declare const TOOLBAR_TO_EDITOR: WeakMap<Toolbar, IDomEditor>;
20
+ export declare const EDITOR_TO_TOOLBAR: WeakMap<IDomEditor, Toolbar>;
21
+ export declare const HOVER_BAR_TO_EDITOR: WeakMap<HoverBar, IDomEditor>;
22
+ export declare const EDITOR_TO_HOVER_BAR: WeakMap<IDomEditor, HoverBar>;
23
+ export declare const BAR_ITEM_TO_EDITOR: WeakMap<IBarItem, IDomEditor>;
24
+ export declare const EDITOR_TO_PANEL_AND_MODAL: WeakMap<IDomEditor, Set<PanelAndModal>>;
25
+ export declare const PANEL_OR_MODAL_TO_EDITOR: WeakMap<PanelAndModal, IDomEditor>;
26
+ export declare const EDITOR_TO_CONFIG: WeakMap<IDomEditor, IEditorConfig>;
27
+ export declare const IS_FIRST_PATCH: WeakMap<TextArea, boolean>;
28
+ export declare const TEXTAREA_TO_PATCH_FN: WeakMap<TextArea, PatchFn>;
29
+ export declare const TEXTAREA_TO_VNODE: WeakMap<TextArea, VNode>;
30
+ export declare const NODE_TO_VNODE: WeakMap<Node, [number, VNode]>;
31
+ export declare const NODE_TO_HTML: WeakMap<Node, String>;
32
+ /**
33
+ * Two weak maps that allow us rebuild a path given a node. They are populated
34
+ * at render time such that after a render occurs we can always backtrack.
35
+ */
36
+ export declare const NODE_TO_INDEX: WeakMap<Node, number>;
37
+ export declare const NODE_TO_PARENT: WeakMap<Node, Ancestor>;
38
+ /**
39
+ * Weak maps that allow us to go between Slate nodes and DOM nodes. These
40
+ * are used to resolve DOM event-related logic into Slate actions.
41
+ */
42
+ export declare const EDITOR_TO_ELEMENT: WeakMap<Editor, HTMLElement>;
43
+ export declare const EDITOR_TO_PLACEHOLDER: WeakMap<Editor, string>;
44
+ export declare const ELEMENT_TO_NODE: WeakMap<HTMLElement, Node>;
45
+ export declare const KEY_TO_ELEMENT: WeakMap<Key, HTMLElement>;
46
+ export declare const NODE_TO_ELEMENT: WeakMap<Node, HTMLElement>;
47
+ export declare const NODE_TO_KEY: WeakMap<Node, Key>;
48
+ export declare const EDITOR_TO_WINDOW: WeakMap<Editor, Window>;
49
+ /**
50
+ * Weak maps for storing editor-related state.
51
+ */
52
+ export declare const IS_FOCUSED: WeakMap<Editor, boolean>;
53
+ export declare const IS_DRAGGING: WeakMap<Editor, boolean>;
54
+ export declare const IS_CLICKING: WeakMap<Editor, boolean>;
55
+ export declare const CHANGING_NODE_PATH: WeakMap<Editor, Path>;
56
+ export declare const EDITOR_TO_SELECTION: WeakMap<Editor, Range>;
57
+ export declare const EDITOR_TO_EMITTER: WeakMap<Editor, Emitter>;
58
+ export declare const EDITOR_TO_CAN_PASTE: WeakMap<Editor, boolean>;
59
+ export declare const EDITOR_TO_PENDING_COMPOSITION_END: WeakMap<Editor, boolean>;
60
+ export declare const EDITOR_TO_PENDING_SELECTION: WeakMap<Editor, Range | null>;
File without changes
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n(require("@wangeditor-next/core"),require("@wangeditor-next/basic-modules"),require("dom7"),require("@wangeditor-next/core/upload")):"function"==typeof define&&define.amd?define(["@wangeditor-next/core","@wangeditor-next/basic-modules","dom7","@wangeditor-next/core/upload"],n):(e="undefined"!=typeof globalThis?globalThis:e||self).WangEditorUploadImageModule=n(e.core,e.basicModules,e.$,e.upload)}(this,function(e,n,r,t){"use strict";e.i18nAddResources("en",{uploadImgModule:{uploadImage:"Upload Image",uploadError:"{{fileName}} upload error"}}),e.i18nAddResources("zh-CN",{uploadImgModule:{uploadImage:"上传图片",uploadError:"{{fileName}} 上传出错"}});r.append&&(r.fn.append=r.append),r.on&&(r.fn.on=r.on),r.remove&&(r.fn.remove=r.remove),r.val&&(r.fn.val=r.val),r.click&&(r.fn.click=r.click),r.hide&&(r.fn.hide=r.hide);var o=function(){return o=Object.assign||function(e){for(var n,r=1,t=arguments.length;r<t;r++)for(var o in n=arguments[r])Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o]);return e},o.apply(this,arguments)};function a(e,n,r,t){return new(r||(r=Promise))(function(o,a){function i(e){try{l(t.next(e))}catch(e){a(e)}}function u(e){try{l(t.throw(e))}catch(e){a(e)}}function l(e){var n;e.done?o(e.value):(n=e.value,n instanceof r?n:new r(function(e){e(n)})).then(i,u)}l((t=t.apply(e,n||[])).next())})}function i(e,n){var r,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=u(0),i.throw=u(1),i.return=u(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(u){return function(l){return function(u){if(r)throw new TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(a=0)),a;)try{if(r=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,t=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=n.call(e,a)}catch(e){u=[6,e],t=0}finally{r=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,l])}}}function u(e){var n="function"==typeof Symbol&&Symbol.iterator,r=n&&e[n],t=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")}function l(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var n,r=e[Symbol.asyncIterator];return r?r.call(e):(e=u(e),n={},t("next"),t("throw"),t("return"),n[Symbol.asyncIterator]=function(){return this},n);function t(r){n[r]=e[r]&&function(n){return new Promise(function(t,o){(function(e,n,r,t){Promise.resolve(t).then(function(n){e({value:n,done:r})},n)})(t,o,(n=e[r](n)).done,n.value)})}}}"function"==typeof SuppressedError&&SuppressedError;var c=new WeakMap;function s(e){return e.getMenuConfig("uploadImage")}function f(e,r){return a(this,void 0,void 0,function(){return i(this,function(t){return[2,new Promise(function(t){var o=new FileReader;o.readAsDataURL(r),o.onload=function(){var a=o.result;if(a){var i=a.toString(),u=0===i.indexOf("data:image")?"":i;n.insertImageNode(e,i,r.name,u),t("ok")}}})]})})}function d(e,r){return a(this,void 0,void 0,function(){var a,u;return i(this,function(i){switch(i.label){case 0:return a=function(e){var r=c.get(e);if(null!=r)return r;var a=s(e),i=a.onSuccess,u=a.onProgress,l=a.onFailed,f=a.customInsert,d=a.onError;return r=t.createUploader(o(o({},a),{onProgress:function(n){e.showProgressBar(n),u&&u(n)},onSuccess:function(r,t){if(f)return f(t,function(r,t,o){return n.insertImageNode(e,r,t,o)}),void i(r,t);var o=t.errno,a=void 0===o?1:o,u=t.data,c=void 0===u?{}:u;if(0===a){if(Array.isArray(c))c.forEach(function(r){var t=r.url,o=void 0===t?"":t,a=r.alt,i=void 0===a?"":a,u=r.href,l=void 0===u?"":u;n.insertImageNode(e,o,i,l)});else{var s=c.url,d=void 0===s?"":s,p=c.alt,m=void 0===p?"":p,v=c.href,y=void 0===v?"":v;n.insertImageNode(e,d,m,y)}i(r,t)}else l(r,t)},onError:function(e,n,r){d(e,n,r)}}),e),c.set(e,r),r}(e),u=r.map(function(e){return{name:e.name,type:e.type,size:e.size,data:e}}),a.addFiles(u),[4,a.upload()];case 1:return i.sent(),[2]}})})}function p(e,r){return a(this,void 0,void 0,function(){var t,o,a,u,c,p,m,v,y,g,h,b,w,I,x;return i(this,function(i){switch(i.label){case 0:if(null==r)return[2];t=Array.prototype.slice.call(r),o=s(e),a=o.customUpload,u=o.base64LimitSize,c=[],i.label=1;case 1:i.trys.push([1,10,11,16]),p=!0,m=l(t),i.label=2;case 2:return[4,m.next()];case 3:return v=i.sent(),(b=v.done)?[3,9]:(x=v.value,p=!1,g=(y=x).size,u&&g<=u?[4,f(e,y)]:[3,5]);case 4:return i.sent(),[3,8];case 5:return a?[4,a(y,function(r,t,o){return n.insertImageNode(e,r,t,o)},e)]:[3,7];case 6:return i.sent(),[3,8];case 7:c.push(y),i.label=8;case 8:return p=!0,[3,2];case 9:return[3,16];case 10:return h=i.sent(),w={error:h},[3,16];case 11:return i.trys.push([11,,14,15]),p||b||!(I=m.return)?[3,13]:[4,I.call(m)];case 12:i.sent(),i.label=13;case 13:return[3,15];case 14:if(w)throw w.error;return[7];case 15:return[7];case 16:return c.length>0?[4,d(e,c)]:[3,18];case 17:i.sent(),i.label=18;case 18:return[2]}})})}var m=function(){function t(){this.title=e.t("uploadImgModule.uploadImage"),this.iconSvg='<svg viewBox="0 0 1024 1024"><path d="M828.708571 585.045333a48.761905 48.761905 0 0 0-48.737523 48.761905v18.529524l-72.143238-72.167619a135.972571 135.972571 0 0 0-191.585524 0l-34.133334 34.133333-120.880762-120.953905a138.898286 138.898286 0 0 0-191.585523 0l-72.167619 72.167619V292.400762a48.786286 48.786286 0 0 1 48.761904-48.761905h341.23581a48.737524 48.737524 0 0 0 34.474667-83.285333 48.737524 48.737524 0 0 0-34.474667-14.287238H146.236952A146.212571 146.212571 0 0 0 0 292.400762v585.289143A146.358857 146.358857 0 0 0 146.236952 1024h584.996572a146.212571 146.212571 0 0 0 146.236952-146.310095V633.807238a48.786286 48.786286 0 0 0-48.761905-48.761905zM146.261333 926.45181a48.737524 48.737524 0 0 1-48.761904-48.761905v-174.128762l141.409523-141.458286a38.497524 38.497524 0 0 1 53.126096 0l154.526476 154.624 209.627428 209.724953H146.236952z m633.734096-48.761905c-0.073143 9.337905-3.145143 18.383238-8.777143 25.843809l-219.843048-220.94019 34.133333-34.133334a37.546667 37.546667 0 0 1 53.613715 0l140.873143 141.897143V877.714286zM1009.615238 160.231619L863.329524 13.897143a48.737524 48.737524 0 0 0-16.091429-10.24c-11.849143-4.87619-25.161143-4.87619-37.059047 0a48.761905 48.761905 0 0 0-16.067048 10.24l-146.236952 146.334476a49.005714 49.005714 0 0 0 69.217523 69.241905l62.902858-63.390476v272.627809a48.761905 48.761905 0 1 0 97.475047 0V166.083048l62.902857 63.390476a48.737524 48.737524 0 0 0 69.217524 0 48.761905 48.761905 0 0 0 0-69.241905z"></path></svg>',this.tag="button"}return t.prototype.getValue=function(e){return""},t.prototype.isActive=function(e){return!1},t.prototype.isDisabled=function(e){return n.isInsertImageMenuDisabled(e)},t.prototype.getMenuConfig=function(e){return e.getMenuConfig("uploadImage")},t.prototype.exec=function(e,t){var o=this.getMenuConfig(e),a=o.allowedFileTypes,i=void 0===a?[]:a,u=o.customBrowseAndUpload;if(u)u(function(r,t,o){return n.insertImageNode(e,r,t,o)});else{var l="";i.length>0&&(l='accept="'.concat(i.join(", "),'"'));var c=r("body"),s=r('<input type="file" '.concat(l," multiple/>"));s.hide(),c.append(s),s.click(),s.on("change",function(){var n=s[0].files;p(e,n)})}},t}();return{menus:[{key:"uploadImage",factory:function(){return new m},config:{server:"",fieldName:"wangeditor-uploaded-image",maxFileSize:2097152,maxNumberOfFiles:100,allowedFileTypes:["image/*"],meta:{},metaWithUrl:!1,withCredentials:!1,timeout:1e4,onBeforeUpload:function(e){return e},onProgress:function(e){},onSuccess:function(e,n){},onFailed:function(e,n){console.error("'".concat(e.name,"' upload failed"),n)},onError:function(e,n,r){console.error("'".concat(e.name,"' upload error"),r)},base64LimitSize:0}}],editorPlugin:function(e){var r=e.insertData,t=e;return t.insertData=function(o){if(n.isInsertImageMenuDisabled(t))r(o);else if(o.getData("text/plain"))r(o);else{var a=o.files;if(a.length<=0)r(o);else Array.prototype.slice.call(a).some(function(e){return"image"===function(e,n){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var t,o,a=r.call(e),i=[];try{for(;(void 0===n||n-- >0)&&!(t=a.next()).done;)i.push(t.value)}catch(e){o={error:e}}finally{try{t&&!t.done&&(r=a.return)&&r.call(a)}finally{if(o)throw o.error}}return i}(e.type.split("/"),1)[0]})?p(e,a):r(o)}},t}}});
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/locale/index.ts","../src/locale/en.ts","../src/locale/zh-CN.ts","../src/utils/dom.ts","../src/module/upload-images.ts","../src/module/menu/UploadImageMenu.ts","../src/constants/svg.ts","../src/module/index.ts","../src/module/menu/index.ts","../src/module/menu/config.ts","../src/module/plugin.ts"],"sourcesContent":["/**\n * @description i18n entry\n * @author wangfupeng\n */\n\nimport { i18nAddResources } from '@wangeditor-next/core'\n\nimport enResources from './en'\nimport zhResources from './zh-CN'\n\ni18nAddResources('en', enResources)\ni18nAddResources('zh-CN', zhResources)\n","/**\n * @description i18n en\n * @author wangfupeng\n */\n\nexport default {\n uploadImgModule: {\n uploadImage: 'Upload Image',\n uploadError: '{{fileName}} upload error',\n },\n}\n","/**\n * @description i18n zh-CN\n * @author wangfupeng\n */\n\nexport default {\n uploadImgModule: {\n uploadImage: '上传图片',\n uploadError: '{{fileName}} 上传出错',\n },\n}\n","/**\n * @description DOM 操作\n * @author wangfupeng\n */\n\nimport $, {\n append, click, hide, on, remove, val,\n} from 'dom7'\n\nexport { Dom7Array } from 'dom7'\n\nif (append) { $.fn.append = append }\nif (on) { $.fn.on = on }\nif (remove) { $.fn.remove = remove }\nif (val) { $.fn.val = val }\nif (click) { $.fn.click = click }\nif (hide) { $.fn.hide = hide }\n\nexport default $\n","/**\n * @description 上传文件\n * @author wangfupeng\n */\n\nimport { insertImageNode } from '@wangeditor-next/basic-modules'\nimport {\n IDomEditor, IUploader,\n IUploadFile, IUploadResultFile,\n} from '@wangeditor-next/core'\nimport { createUploader } from '@wangeditor-next/core/upload'\n\n// 存储 editor uploader 的关系 - 缓存 uploader ,不重复创建\nconst EDITOR_TO_UPLOADER_MAP = new WeakMap<IDomEditor, IUploader>()\n\nfunction getMenuConfig(editor: IDomEditor) {\n return editor.getMenuConfig('uploadImage')\n}\n/**\n * 获取 uploader 实例(并通过 editor 缓存)\n * @param editor editor\n */\nfunction getUploader(editor: IDomEditor): IUploader {\n let uploader = EDITOR_TO_UPLOADER_MAP.get(editor)\n\n if (uploader != null) { return uploader }\n\n const menuConfig = getMenuConfig(editor)\n const {\n onSuccess, onProgress, onFailed, customInsert, onError,\n } = menuConfig\n\n // 上传完成之后\n const successHandler = (file: IUploadResultFile, res: any) => {\n // 预期 res 格式:\n // 成功:{ errno: 0, data: { url, alt, href } } —— 注意,旧版的 data 是数组,要兼容一下\n // 失败:{ errno: !0, message: '失败信息' }\n\n if (customInsert) {\n // 用户自定义插入图片,此时 res 格式可能不符合预期\n customInsert(res, (src, alt, href) => insertImageNode(editor, src, alt, href))\n // success 回调\n onSuccess(file, res)\n return\n }\n\n const { errno = 1, data = {} } = res\n\n if (errno !== 0) {\n // failed 回调\n onFailed(file, res)\n return\n }\n\n if (Array.isArray(data)) {\n // 返回的数组(旧版的,兼容一下)\n data.forEach((item: { url: string; alt?: string; href?: string }) => {\n const { url = '', alt = '', href = '' } = item\n // 使用 basic-module 的 insertImageNode 方法插入图片,其中有用户配置的校验和 callback\n\n insertImageNode(editor, url, alt, href)\n })\n } else {\n // 返回的对象\n const { url = '', alt = '', href = '' } = data\n\n insertImageNode(editor, url, alt, href)\n }\n\n // success 回调\n onSuccess(file, res)\n }\n\n // progress 显示进度条\n const progressHandler = (progress: number) => {\n editor.showProgressBar(progress)\n\n // 回调函数\n if (onProgress) { onProgress(progress) }\n }\n\n // onError 提示错误\n const errorHandler = (file: any, err: any, res: any) => {\n // 回调函数\n onError(file, err, res)\n }\n\n uploader = createUploader({\n ...menuConfig,\n onProgress: progressHandler,\n onSuccess: successHandler,\n onError: errorHandler,\n }, editor)\n EDITOR_TO_UPLOADER_MAP.set(editor, uploader)\n\n return uploader\n}\n\n/**\n * 插入 base64 格式\n * @param editor editor\n * @param file file\n */\nasync function insertBase64(editor: IDomEditor, file: File) {\n return new Promise(resolve => {\n const reader = new FileReader()\n\n reader.readAsDataURL(file)\n reader.onload = () => {\n const { result } = reader\n\n if (!result) { return }\n const src = result.toString()\n const href = src.indexOf('data:image') === 0 ? '' : src // base64 格式则不设置 href\n\n insertImageNode(editor, src, file.name, href)\n\n resolve('ok')\n }\n })\n}\n\n/**\n * 上传图片文件\n * @param editor editor\n * @param file file\n */\nasync function uploadFile(editor: IDomEditor, files: File[]) {\n const uploader = getUploader(editor)\n const uploadList: IUploadFile[] = files.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n data: file,\n }))\n\n uploader.addFiles(uploadList)\n await uploader.upload()\n}\n\n/**\n * 上传图片\n * @param editor editor\n * @param files files\n */\nexport default async function (editor: IDomEditor, files: FileList | null) {\n if (files == null) { return }\n const fileList = Array.prototype.slice.call(files)\n\n // 获取菜单配置\n const { customUpload, base64LimitSize } = getMenuConfig(editor)\n\n const uploadFileList : File[] = []\n // 按顺序上传\n\n for await (const file of fileList) {\n const size = file.size // size kb\n\n if (base64LimitSize && size <= base64LimitSize) {\n // 允许 base64 ,而且 size 在 base64 限制之内,则插入 base64 格式\n await insertBase64(editor, file)\n } else if (customUpload) {\n // 自定义上传\n await customUpload(file, (src, alt, href) => insertImageNode(editor, src, alt, href), editor)\n } else {\n // 默认上传\n uploadFileList.push(file)\n }\n }\n // 默认上传\n if (uploadFileList.length > 0) { await uploadFile(editor, uploadFileList) }\n}\n","/**\n * @description upload image menu\n * @author wangfupeng\n */\n\nimport { insertImageNode, isInsertImageMenuDisabled } from '@wangeditor-next/basic-modules'\nimport {\n IButtonMenu, IDomEditor, t,\n} from '@wangeditor-next/core'\n\nimport { UPLOAD_IMAGE_SVG } from '../../constants/svg'\nimport $ from '../../utils/dom'\nimport uploadImages from '../upload-images'\n\nclass UploadImage implements IButtonMenu {\n readonly title = t('uploadImgModule.uploadImage')\n\n readonly iconSvg = UPLOAD_IMAGE_SVG\n\n readonly tag = 'button'\n\n getValue(_editor: IDomEditor): string | boolean {\n // 插入菜单,不需要 value\n return ''\n }\n\n isActive(_editor: IDomEditor): boolean {\n // 任何时候,都不用激活 menu\n return false\n }\n\n isDisabled(editor: IDomEditor): boolean {\n return isInsertImageMenuDisabled(editor)\n }\n\n private getMenuConfig(editor: IDomEditor) {\n // 获取配置,见 `./config.js`\n return editor.getMenuConfig('uploadImage')\n }\n\n exec(editor: IDomEditor, _value: string | boolean) {\n const { allowedFileTypes = [], customBrowseAndUpload } = this.getMenuConfig(editor)\n\n // 自定义选择图片,并上传,如图床\n if (customBrowseAndUpload) {\n customBrowseAndUpload((src, alt, href) => insertImageNode(editor, src, alt, href))\n return\n }\n\n // 设置选择文件的类型\n let acceptAttr = ''\n\n if (allowedFileTypes.length > 0) {\n acceptAttr = `accept=\"${allowedFileTypes.join(', ')}\"`\n }\n\n // 添加 file input(每次重新创建 input)\n const $body = $('body')\n const $inputFile = $(`<input type=\"file\" ${acceptAttr} multiple/>`)\n\n $inputFile.hide()\n $body.append($inputFile)\n $inputFile.click()\n // 选中文件\n $inputFile.on('change', () => {\n const files = ($inputFile[0] as HTMLInputElement).files\n\n uploadImages(editor, files) // 上传文件\n })\n }\n}\n\nexport default UploadImage\n","/**\n * @description icon svg\n * @author wangfupeng\n */\n\n/**\n * 【注意】svg 字符串的长度 ,否则会导致代码体积过大\n * 尽量选择 https://www.iconfont.cn/collections/detail?spm=a313x.7781069.0.da5a778a4&cid=20293\n * 找不到再从 iconfont.com 搜索\n */\n\n// 上传图片\nexport const UPLOAD_IMAGE_SVG = '<svg viewBox=\"0 0 1024 1024\"><path d=\"M828.708571 585.045333a48.761905 48.761905 0 0 0-48.737523 48.761905v18.529524l-72.143238-72.167619a135.972571 135.972571 0 0 0-191.585524 0l-34.133334 34.133333-120.880762-120.953905a138.898286 138.898286 0 0 0-191.585523 0l-72.167619 72.167619V292.400762a48.786286 48.786286 0 0 1 48.761904-48.761905h341.23581a48.737524 48.737524 0 0 0 34.474667-83.285333 48.737524 48.737524 0 0 0-34.474667-14.287238H146.236952A146.212571 146.212571 0 0 0 0 292.400762v585.289143A146.358857 146.358857 0 0 0 146.236952 1024h584.996572a146.212571 146.212571 0 0 0 146.236952-146.310095V633.807238a48.786286 48.786286 0 0 0-48.761905-48.761905zM146.261333 926.45181a48.737524 48.737524 0 0 1-48.761904-48.761905v-174.128762l141.409523-141.458286a38.497524 38.497524 0 0 1 53.126096 0l154.526476 154.624 209.627428 209.724953H146.236952z m633.734096-48.761905c-0.073143 9.337905-3.145143 18.383238-8.777143 25.843809l-219.843048-220.94019 34.133333-34.133334a37.546667 37.546667 0 0 1 53.613715 0l140.873143 141.897143V877.714286zM1009.615238 160.231619L863.329524 13.897143a48.737524 48.737524 0 0 0-16.091429-10.24c-11.849143-4.87619-25.161143-4.87619-37.059047 0a48.761905 48.761905 0 0 0-16.067048 10.24l-146.236952 146.334476a49.005714 49.005714 0 0 0 69.217523 69.241905l62.902858-63.390476v272.627809a48.761905 48.761905 0 1 0 97.475047 0V166.083048l62.902857 63.390476a48.737524 48.737524 0 0 0 69.217524 0 48.761905 48.761905 0 0 0 0-69.241905z\"></path></svg>'\n","/**\n * @description uploadImage module\n * @author wangfupeng\n */\n\nimport { IModuleConf } from '@wangeditor-next/core'\n\nimport { uploadImageMenuConf } from './menu/index'\nimport withUploadImage from './plugin'\n\nconst uploadImage: Partial<IModuleConf> = {\n menus: [uploadImageMenuConf],\n editorPlugin: withUploadImage,\n}\n\nexport default uploadImage\n","/**\n * @description upload image menu\n * @author wangfupeng\n */\n\nimport { genUploadImageConfig } from './config'\nimport UploadImageMenu from './UploadImageMenu'\n\nexport const uploadImageMenuConf = {\n key: 'uploadImage',\n factory() {\n return new UploadImageMenu()\n },\n\n // 默认的菜单菜单配置,将存储在 editorConfig.MENU_CONF[key] 中\n // 创建编辑器时,可通过 editorConfig.MENU_CONF[key] = {...} 来修改\n config: genUploadImageConfig(),\n}\n","/**\n * @description upload image config\n * @author wangfupeng\n */\n\nimport { IUploadImageConfig } from '@wangeditor-next/core'\n\n// 生成默认配置\nexport function genUploadImageConfig(): IUploadImageConfig {\n return {\n server: '', // server API 地址,需用户配置\n\n fieldName: 'wangeditor-uploaded-image', // formData 中,文件的 key\n maxFileSize: 2 * 1024 * 1024, // 2M\n maxNumberOfFiles: 100, // 最多上传 xx 张图片\n allowedFileTypes: ['image/*'],\n meta: {\n // 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。\n // 例如:token: 'xxxxx', x: 100\n },\n metaWithUrl: false,\n // headers: {\n // // 自定义 http headers\n // // 例如:Accept: 'text/x-json', a: 100,\n // },\n withCredentials: false,\n timeout: 10 * 1000, // 10s\n\n onBeforeUpload: (files: any) => files, // 返回 false 则终止上传\n onProgress: (_progress: number) => {\n /* on progress */\n },\n onSuccess: (_file: any, _res: any) => {\n /* on success */\n },\n onFailed: (file: any, res: any) => {\n console.error(`'${file.name}' upload failed`, res)\n },\n onError: (file: any, err: any, res: any) => {\n /* on error */\n /* on timeout */\n console.error(`'${file.name}' upload error`, res)\n },\n\n // 自定义插入图片,用户配置\n // customInsert: (res, insertFn) => {},\n\n // 自定义上传图片,用户配置\n // customUpload: (file, insertFn) => {},\n\n // 自定义上传适配器,默认仍使用内置 Uppy\n // uploadAdapter: ({ config, editor }) => ({ addFiles() {}, upload: async () => {} }),\n\n // 小于 xxx 就插入 base64\n base64LimitSize: 0,\n\n // 自定义选择,并上传图片,如:图床 (用户配置)\n // customBrowseAndUpload: insertFn => {},\n }\n}\n","/**\n * @description editor 插件,重写 editor API\n * @author wangfupeng\n */\n\nimport { isInsertImageMenuDisabled } from '@wangeditor-next/basic-modules'\nimport { IDomEditor } from '@wangeditor-next/core'\n\nimport uploadImages from './upload-images'\n\nfunction withUploadImage<T extends IDomEditor>(editor: T): T {\n const { insertData } = editor\n const newEditor = editor\n\n // 重写 insertData - 粘贴图片、拖拽上传图片\n newEditor.insertData = (data: DataTransfer) => {\n if (isInsertImageMenuDisabled(newEditor)) {\n insertData(data)\n return\n }\n\n // 如有 text ,则优先粘贴 text\n const text = data.getData('text/plain')\n\n if (text) {\n insertData(data)\n return\n }\n\n // 获取文件\n const { files } = data\n\n if (files.length <= 0) {\n insertData(data)\n return\n }\n\n // 判断是否有图片文件(可能是其他类型的文件)\n const fileList = Array.prototype.slice.call(files)\n const hasImageFiles = fileList.some(file => {\n const [mime] = file.type.split('/')\n\n return mime === 'image'\n })\n\n if (hasImageFiles) {\n // 有图片文件,则上传图片\n uploadImages(editor, files)\n } else {\n // 如果没有, 则继续 insertData\n insertData(data)\n }\n }\n\n // 返回 editor ,重要!\n return newEditor\n}\n\nexport default withUploadImage\n"],"names":["i18nAddResources","uploadImgModule","uploadImage","uploadError","append","$","fn","on","remove","val","click","hide","EDITOR_TO_UPLOADER_MAP","WeakMap","getMenuConfig","editor","insertBase64","file","Promise","resolve","reader","FileReader","readAsDataURL","onload","result","src","toString","href","indexOf","insertImageNode","name","uploadFile","files","uploader","get","menuConfig","onSuccess","onProgress","onFailed","customInsert","onError","createUploader","__assign","progress","showProgressBar","res","alt","_a","errno","_b","data","Array","isArray","forEach","item","url","_c","_d","_e","err","set","getUploader","uploadList","map","type","size","addFiles","upload","sent","uploadImages","fileList","prototype","slice","call","customUpload","base64LimitSize","uploadFileList","fileList_1","__asyncValues","fileList_1_1","value","_f","push","length","UploadImage","this","title","t","iconSvg","tag","getValue","_editor","isActive","isDisabled","isInsertImageMenuDisabled","exec","_value","allowedFileTypes","customBrowseAndUpload","acceptAttr","join","$body","$inputFile","menus","key","factory","UploadImageMenu","config","server","fieldName","maxFileSize","maxNumberOfFiles","meta","metaWithUrl","withCredentials","timeout","onBeforeUpload","_progress","_file","_res","console","error","concat","editorPlugin","insertData","newEditor","getData","some","__read","split"],"mappings":"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"}
package/dist/index.mjs ADDED
@@ -0,0 +1,2 @@
1
+ import{i18nAddResources as e,t as r}from"@wangeditor-next/core";import{insertImageNode as n,isInsertImageMenuDisabled as t}from"@wangeditor-next/basic-modules";import o,{append as a,on as i,remove as u,val as l,click as c,hide as s}from"dom7";import{createUploader as f}from"@wangeditor-next/core/upload";e("en",{uploadImgModule:{uploadImage:"Upload Image",uploadError:"{{fileName}} upload error"}}),e("zh-CN",{uploadImgModule:{uploadImage:"上传图片",uploadError:"{{fileName}} 上传出错"}});a&&(o.fn.append=a),i&&(o.fn.on=i),u&&(o.fn.remove=u),l&&(o.fn.val=l),c&&(o.fn.click=c),s&&(o.fn.hide=s);var p=function(){return p=Object.assign||function(e){for(var r,n=1,t=arguments.length;n<t;n++)for(var o in r=arguments[n])Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o]);return e},p.apply(this,arguments)};function d(e,r,n,t){return new(n||(n=Promise))(function(o,a){function i(e){try{l(t.next(e))}catch(e){a(e)}}function u(e){try{l(t.throw(e))}catch(e){a(e)}}function l(e){var r;e.done?o(e.value):(r=e.value,r instanceof n?r:new n(function(e){e(r)})).then(i,u)}l((t=t.apply(e,r||[])).next())})}function v(e,r){var n,t,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=u(0),i.throw=u(1),i.return=u(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(u){return function(l){return function(u){if(n)throw new TypeError("Generator is already executing.");for(;i&&(i=0,u[0]&&(a=0)),a;)try{if(n=1,t&&(o=2&u[0]?t.return:u[0]?t.throw||((o=t.return)&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;switch(t=0,o&&(u=[2&u[0],o.value]),u[0]){case 0:case 1:o=u;break;case 4:return a.label++,{value:u[1],done:!1};case 5:a.label++,t=u[1],u=[0];continue;case 7:u=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==u[0]&&2!==u[0])){a=0;continue}if(3===u[0]&&(!o||u[1]>o[0]&&u[1]<o[3])){a.label=u[1];break}if(6===u[0]&&a.label<o[1]){a.label=o[1],o=u;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(u);break}o[2]&&a.ops.pop(),a.trys.pop();continue}u=r.call(e,a)}catch(e){u=[6,e],t=0}finally{n=o=0}if(5&u[0])throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}([u,l])}}}function m(e){var r="function"==typeof Symbol&&Symbol.iterator,n=r&&e[r],t=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&t>=e.length&&(e=void 0),{value:e&&e[t++],done:!e}}};throw new TypeError(r?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,n=e[Symbol.asyncIterator];return n?n.call(e):(e=m(e),r={},t("next"),t("throw"),t("return"),r[Symbol.asyncIterator]=function(){return this},r);function t(n){r[n]=e[n]&&function(r){return new Promise(function(t,o){(function(e,r,n,t){Promise.resolve(t).then(function(r){e({value:r,done:n})},r)})(t,o,(r=e[n](r)).done,r.value)})}}}"function"==typeof SuppressedError&&SuppressedError;var h=new WeakMap;function g(e){return e.getMenuConfig("uploadImage")}function b(e,r){return d(this,void 0,void 0,function(){return v(this,function(t){return[2,new Promise(function(t){var o=new FileReader;o.readAsDataURL(r),o.onload=function(){var a=o.result;if(a){var i=a.toString(),u=0===i.indexOf("data:image")?"":i;n(e,i,r.name,u),t("ok")}}})]})})}function w(e,r){return d(this,void 0,void 0,function(){var t,o;return v(this,function(a){switch(a.label){case 0:return t=function(e){var r=h.get(e);if(null!=r)return r;var t=g(e),o=t.onSuccess,a=t.onProgress,i=t.onFailed,u=t.customInsert,l=t.onError;return r=f(p(p({},t),{onProgress:function(r){e.showProgressBar(r),a&&a(r)},onSuccess:function(r,t){if(u)return u(t,function(r,t,o){return n(e,r,t,o)}),void o(r,t);var a=t.errno,l=void 0===a?1:a,c=t.data,s=void 0===c?{}:c;if(0===l){if(Array.isArray(s))s.forEach(function(r){var t=r.url,o=void 0===t?"":t,a=r.alt,i=void 0===a?"":a,u=r.href;n(e,o,i,void 0===u?"":u)});else{var f=s.url,p=void 0===f?"":f,d=s.alt,v=void 0===d?"":d,m=s.href;n(e,p,v,void 0===m?"":m)}o(r,t)}else i(r,t)},onError:function(e,r,n){l(e,r,n)}}),e),h.set(e,r),r}(e),o=r.map(function(e){return{name:e.name,type:e.type,size:e.size,data:e}}),t.addFiles(o),[4,t.upload()];case 1:return a.sent(),[2]}})})}function S(e,r){return d(this,void 0,void 0,function(){var t,o,a,i,u,l,c,s,f,p,d,m,h,S,x;return v(this,function(v){switch(v.label){case 0:if(null==r)return[2];t=Array.prototype.slice.call(r),o=g(e),a=o.customUpload,i=o.base64LimitSize,u=[],v.label=1;case 1:v.trys.push([1,10,11,16]),l=!0,c=y(t),v.label=2;case 2:return[4,c.next()];case 3:return s=v.sent(),(m=s.done)?[3,9]:(x=s.value,l=!1,p=(f=x).size,i&&p<=i?[4,b(e,f)]:[3,5]);case 4:return v.sent(),[3,8];case 5:return a?[4,a(f,function(r,t,o){return n(e,r,t,o)},e)]:[3,7];case 6:return v.sent(),[3,8];case 7:u.push(f),v.label=8;case 8:return l=!0,[3,2];case 9:return[3,16];case 10:return d=v.sent(),h={error:d},[3,16];case 11:return v.trys.push([11,,14,15]),l||m||!(S=c.return)?[3,13]:[4,S.call(c)];case 12:v.sent(),v.label=13;case 13:return[3,15];case 14:if(h)throw h.error;return[7];case 15:return[7];case 16:return u.length>0?[4,w(e,u)]:[3,18];case 17:v.sent(),v.label=18;case 18:return[2]}})})}var x=function(){function e(){this.title=r("uploadImgModule.uploadImage"),this.iconSvg='<svg viewBox="0 0 1024 1024"><path d="M828.708571 585.045333a48.761905 48.761905 0 0 0-48.737523 48.761905v18.529524l-72.143238-72.167619a135.972571 135.972571 0 0 0-191.585524 0l-34.133334 34.133333-120.880762-120.953905a138.898286 138.898286 0 0 0-191.585523 0l-72.167619 72.167619V292.400762a48.786286 48.786286 0 0 1 48.761904-48.761905h341.23581a48.737524 48.737524 0 0 0 34.474667-83.285333 48.737524 48.737524 0 0 0-34.474667-14.287238H146.236952A146.212571 146.212571 0 0 0 0 292.400762v585.289143A146.358857 146.358857 0 0 0 146.236952 1024h584.996572a146.212571 146.212571 0 0 0 146.236952-146.310095V633.807238a48.786286 48.786286 0 0 0-48.761905-48.761905zM146.261333 926.45181a48.737524 48.737524 0 0 1-48.761904-48.761905v-174.128762l141.409523-141.458286a38.497524 38.497524 0 0 1 53.126096 0l154.526476 154.624 209.627428 209.724953H146.236952z m633.734096-48.761905c-0.073143 9.337905-3.145143 18.383238-8.777143 25.843809l-219.843048-220.94019 34.133333-34.133334a37.546667 37.546667 0 0 1 53.613715 0l140.873143 141.897143V877.714286zM1009.615238 160.231619L863.329524 13.897143a48.737524 48.737524 0 0 0-16.091429-10.24c-11.849143-4.87619-25.161143-4.87619-37.059047 0a48.761905 48.761905 0 0 0-16.067048 10.24l-146.236952 146.334476a49.005714 49.005714 0 0 0 69.217523 69.241905l62.902858-63.390476v272.627809a48.761905 48.761905 0 1 0 97.475047 0V166.083048l62.902857 63.390476a48.737524 48.737524 0 0 0 69.217524 0 48.761905 48.761905 0 0 0 0-69.241905z"></path></svg>',this.tag="button"}return e.prototype.getValue=function(e){return""},e.prototype.isActive=function(e){return!1},e.prototype.isDisabled=function(e){return t(e)},e.prototype.getMenuConfig=function(e){return e.getMenuConfig("uploadImage")},e.prototype.exec=function(e,r){var t=this.getMenuConfig(e),a=t.allowedFileTypes,i=void 0===a?[]:a,u=t.customBrowseAndUpload;if(u)u(function(r,t,o){return n(e,r,t,o)});else{var l="";i.length>0&&(l='accept="'.concat(i.join(", "),'"'));var c=o("body"),s=o('<input type="file" '.concat(l," multiple/>"));s.hide(),c.append(s),s.click(),s.on("change",function(){var r=s[0].files;S(e,r)})}},e}();var I={menus:[{key:"uploadImage",factory:function(){return new x},config:{server:"",fieldName:"wangeditor-uploaded-image",maxFileSize:2097152,maxNumberOfFiles:100,allowedFileTypes:["image/*"],meta:{},metaWithUrl:!1,withCredentials:!1,timeout:1e4,onBeforeUpload:function(e){return e},onProgress:function(e){},onSuccess:function(e,r){},onFailed:function(e,r){console.error("'".concat(e.name,"' upload failed"),r)},onError:function(e,r,n){console.error("'".concat(e.name,"' upload error"),n)},base64LimitSize:0}}],editorPlugin:function(e){var r=e.insertData,n=e;return n.insertData=function(o){if(t(n))r(o);else if(o.getData("text/plain"))r(o);else{var a=o.files;if(a.length<=0)r(o);else Array.prototype.slice.call(a).some(function(e){return"image"===function(e,r){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var t,o,a=n.call(e),i=[];try{for(;(void 0===r||r-- >0)&&!(t=a.next()).done;)i.push(t.value)}catch(e){o={error:e}}finally{try{t&&!t.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}(e.type.split("/"),1)[0]})?S(e,a):r(o)}},n}};export{I as default};
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/locale/index.ts","../src/locale/en.ts","../src/locale/zh-CN.ts","../src/utils/dom.ts","../src/module/upload-images.ts","../src/module/menu/UploadImageMenu.ts","../src/constants/svg.ts","../src/module/index.ts","../src/module/menu/index.ts","../src/module/menu/config.ts","../src/module/plugin.ts"],"sourcesContent":["/**\n * @description i18n entry\n * @author wangfupeng\n */\n\nimport { i18nAddResources } from '@wangeditor-next/core'\n\nimport enResources from './en'\nimport zhResources from './zh-CN'\n\ni18nAddResources('en', enResources)\ni18nAddResources('zh-CN', zhResources)\n","/**\n * @description i18n en\n * @author wangfupeng\n */\n\nexport default {\n uploadImgModule: {\n uploadImage: 'Upload Image',\n uploadError: '{{fileName}} upload error',\n },\n}\n","/**\n * @description i18n zh-CN\n * @author wangfupeng\n */\n\nexport default {\n uploadImgModule: {\n uploadImage: '上传图片',\n uploadError: '{{fileName}} 上传出错',\n },\n}\n","/**\n * @description DOM 操作\n * @author wangfupeng\n */\n\nimport $, {\n append, click, hide, on, remove, val,\n} from 'dom7'\n\nexport { Dom7Array } from 'dom7'\n\nif (append) { $.fn.append = append }\nif (on) { $.fn.on = on }\nif (remove) { $.fn.remove = remove }\nif (val) { $.fn.val = val }\nif (click) { $.fn.click = click }\nif (hide) { $.fn.hide = hide }\n\nexport default $\n","/**\n * @description 上传文件\n * @author wangfupeng\n */\n\nimport { insertImageNode } from '@wangeditor-next/basic-modules'\nimport {\n IDomEditor, IUploader,\n IUploadFile, IUploadResultFile,\n} from '@wangeditor-next/core'\nimport { createUploader } from '@wangeditor-next/core/upload'\n\n// 存储 editor uploader 的关系 - 缓存 uploader ,不重复创建\nconst EDITOR_TO_UPLOADER_MAP = new WeakMap<IDomEditor, IUploader>()\n\nfunction getMenuConfig(editor: IDomEditor) {\n return editor.getMenuConfig('uploadImage')\n}\n/**\n * 获取 uploader 实例(并通过 editor 缓存)\n * @param editor editor\n */\nfunction getUploader(editor: IDomEditor): IUploader {\n let uploader = EDITOR_TO_UPLOADER_MAP.get(editor)\n\n if (uploader != null) { return uploader }\n\n const menuConfig = getMenuConfig(editor)\n const {\n onSuccess, onProgress, onFailed, customInsert, onError,\n } = menuConfig\n\n // 上传完成之后\n const successHandler = (file: IUploadResultFile, res: any) => {\n // 预期 res 格式:\n // 成功:{ errno: 0, data: { url, alt, href } } —— 注意,旧版的 data 是数组,要兼容一下\n // 失败:{ errno: !0, message: '失败信息' }\n\n if (customInsert) {\n // 用户自定义插入图片,此时 res 格式可能不符合预期\n customInsert(res, (src, alt, href) => insertImageNode(editor, src, alt, href))\n // success 回调\n onSuccess(file, res)\n return\n }\n\n const { errno = 1, data = {} } = res\n\n if (errno !== 0) {\n // failed 回调\n onFailed(file, res)\n return\n }\n\n if (Array.isArray(data)) {\n // 返回的数组(旧版的,兼容一下)\n data.forEach((item: { url: string; alt?: string; href?: string }) => {\n const { url = '', alt = '', href = '' } = item\n // 使用 basic-module 的 insertImageNode 方法插入图片,其中有用户配置的校验和 callback\n\n insertImageNode(editor, url, alt, href)\n })\n } else {\n // 返回的对象\n const { url = '', alt = '', href = '' } = data\n\n insertImageNode(editor, url, alt, href)\n }\n\n // success 回调\n onSuccess(file, res)\n }\n\n // progress 显示进度条\n const progressHandler = (progress: number) => {\n editor.showProgressBar(progress)\n\n // 回调函数\n if (onProgress) { onProgress(progress) }\n }\n\n // onError 提示错误\n const errorHandler = (file: any, err: any, res: any) => {\n // 回调函数\n onError(file, err, res)\n }\n\n uploader = createUploader({\n ...menuConfig,\n onProgress: progressHandler,\n onSuccess: successHandler,\n onError: errorHandler,\n }, editor)\n EDITOR_TO_UPLOADER_MAP.set(editor, uploader)\n\n return uploader\n}\n\n/**\n * 插入 base64 格式\n * @param editor editor\n * @param file file\n */\nasync function insertBase64(editor: IDomEditor, file: File) {\n return new Promise(resolve => {\n const reader = new FileReader()\n\n reader.readAsDataURL(file)\n reader.onload = () => {\n const { result } = reader\n\n if (!result) { return }\n const src = result.toString()\n const href = src.indexOf('data:image') === 0 ? '' : src // base64 格式则不设置 href\n\n insertImageNode(editor, src, file.name, href)\n\n resolve('ok')\n }\n })\n}\n\n/**\n * 上传图片文件\n * @param editor editor\n * @param file file\n */\nasync function uploadFile(editor: IDomEditor, files: File[]) {\n const uploader = getUploader(editor)\n const uploadList: IUploadFile[] = files.map(file => ({\n name: file.name,\n type: file.type,\n size: file.size,\n data: file,\n }))\n\n uploader.addFiles(uploadList)\n await uploader.upload()\n}\n\n/**\n * 上传图片\n * @param editor editor\n * @param files files\n */\nexport default async function (editor: IDomEditor, files: FileList | null) {\n if (files == null) { return }\n const fileList = Array.prototype.slice.call(files)\n\n // 获取菜单配置\n const { customUpload, base64LimitSize } = getMenuConfig(editor)\n\n const uploadFileList : File[] = []\n // 按顺序上传\n\n for await (const file of fileList) {\n const size = file.size // size kb\n\n if (base64LimitSize && size <= base64LimitSize) {\n // 允许 base64 ,而且 size 在 base64 限制之内,则插入 base64 格式\n await insertBase64(editor, file)\n } else if (customUpload) {\n // 自定义上传\n await customUpload(file, (src, alt, href) => insertImageNode(editor, src, alt, href), editor)\n } else {\n // 默认上传\n uploadFileList.push(file)\n }\n }\n // 默认上传\n if (uploadFileList.length > 0) { await uploadFile(editor, uploadFileList) }\n}\n","/**\n * @description upload image menu\n * @author wangfupeng\n */\n\nimport { insertImageNode, isInsertImageMenuDisabled } from '@wangeditor-next/basic-modules'\nimport {\n IButtonMenu, IDomEditor, t,\n} from '@wangeditor-next/core'\n\nimport { UPLOAD_IMAGE_SVG } from '../../constants/svg'\nimport $ from '../../utils/dom'\nimport uploadImages from '../upload-images'\n\nclass UploadImage implements IButtonMenu {\n readonly title = t('uploadImgModule.uploadImage')\n\n readonly iconSvg = UPLOAD_IMAGE_SVG\n\n readonly tag = 'button'\n\n getValue(_editor: IDomEditor): string | boolean {\n // 插入菜单,不需要 value\n return ''\n }\n\n isActive(_editor: IDomEditor): boolean {\n // 任何时候,都不用激活 menu\n return false\n }\n\n isDisabled(editor: IDomEditor): boolean {\n return isInsertImageMenuDisabled(editor)\n }\n\n private getMenuConfig(editor: IDomEditor) {\n // 获取配置,见 `./config.js`\n return editor.getMenuConfig('uploadImage')\n }\n\n exec(editor: IDomEditor, _value: string | boolean) {\n const { allowedFileTypes = [], customBrowseAndUpload } = this.getMenuConfig(editor)\n\n // 自定义选择图片,并上传,如图床\n if (customBrowseAndUpload) {\n customBrowseAndUpload((src, alt, href) => insertImageNode(editor, src, alt, href))\n return\n }\n\n // 设置选择文件的类型\n let acceptAttr = ''\n\n if (allowedFileTypes.length > 0) {\n acceptAttr = `accept=\"${allowedFileTypes.join(', ')}\"`\n }\n\n // 添加 file input(每次重新创建 input)\n const $body = $('body')\n const $inputFile = $(`<input type=\"file\" ${acceptAttr} multiple/>`)\n\n $inputFile.hide()\n $body.append($inputFile)\n $inputFile.click()\n // 选中文件\n $inputFile.on('change', () => {\n const files = ($inputFile[0] as HTMLInputElement).files\n\n uploadImages(editor, files) // 上传文件\n })\n }\n}\n\nexport default UploadImage\n","/**\n * @description icon svg\n * @author wangfupeng\n */\n\n/**\n * 【注意】svg 字符串的长度 ,否则会导致代码体积过大\n * 尽量选择 https://www.iconfont.cn/collections/detail?spm=a313x.7781069.0.da5a778a4&cid=20293\n * 找不到再从 iconfont.com 搜索\n */\n\n// 上传图片\nexport const UPLOAD_IMAGE_SVG = '<svg viewBox=\"0 0 1024 1024\"><path d=\"M828.708571 585.045333a48.761905 48.761905 0 0 0-48.737523 48.761905v18.529524l-72.143238-72.167619a135.972571 135.972571 0 0 0-191.585524 0l-34.133334 34.133333-120.880762-120.953905a138.898286 138.898286 0 0 0-191.585523 0l-72.167619 72.167619V292.400762a48.786286 48.786286 0 0 1 48.761904-48.761905h341.23581a48.737524 48.737524 0 0 0 34.474667-83.285333 48.737524 48.737524 0 0 0-34.474667-14.287238H146.236952A146.212571 146.212571 0 0 0 0 292.400762v585.289143A146.358857 146.358857 0 0 0 146.236952 1024h584.996572a146.212571 146.212571 0 0 0 146.236952-146.310095V633.807238a48.786286 48.786286 0 0 0-48.761905-48.761905zM146.261333 926.45181a48.737524 48.737524 0 0 1-48.761904-48.761905v-174.128762l141.409523-141.458286a38.497524 38.497524 0 0 1 53.126096 0l154.526476 154.624 209.627428 209.724953H146.236952z m633.734096-48.761905c-0.073143 9.337905-3.145143 18.383238-8.777143 25.843809l-219.843048-220.94019 34.133333-34.133334a37.546667 37.546667 0 0 1 53.613715 0l140.873143 141.897143V877.714286zM1009.615238 160.231619L863.329524 13.897143a48.737524 48.737524 0 0 0-16.091429-10.24c-11.849143-4.87619-25.161143-4.87619-37.059047 0a48.761905 48.761905 0 0 0-16.067048 10.24l-146.236952 146.334476a49.005714 49.005714 0 0 0 69.217523 69.241905l62.902858-63.390476v272.627809a48.761905 48.761905 0 1 0 97.475047 0V166.083048l62.902857 63.390476a48.737524 48.737524 0 0 0 69.217524 0 48.761905 48.761905 0 0 0 0-69.241905z\"></path></svg>'\n","/**\n * @description uploadImage module\n * @author wangfupeng\n */\n\nimport { IModuleConf } from '@wangeditor-next/core'\n\nimport { uploadImageMenuConf } from './menu/index'\nimport withUploadImage from './plugin'\n\nconst uploadImage: Partial<IModuleConf> = {\n menus: [uploadImageMenuConf],\n editorPlugin: withUploadImage,\n}\n\nexport default uploadImage\n","/**\n * @description upload image menu\n * @author wangfupeng\n */\n\nimport { genUploadImageConfig } from './config'\nimport UploadImageMenu from './UploadImageMenu'\n\nexport const uploadImageMenuConf = {\n key: 'uploadImage',\n factory() {\n return new UploadImageMenu()\n },\n\n // 默认的菜单菜单配置,将存储在 editorConfig.MENU_CONF[key] 中\n // 创建编辑器时,可通过 editorConfig.MENU_CONF[key] = {...} 来修改\n config: genUploadImageConfig(),\n}\n","/**\n * @description upload image config\n * @author wangfupeng\n */\n\nimport { IUploadImageConfig } from '@wangeditor-next/core'\n\n// 生成默认配置\nexport function genUploadImageConfig(): IUploadImageConfig {\n return {\n server: '', // server API 地址,需用户配置\n\n fieldName: 'wangeditor-uploaded-image', // formData 中,文件的 key\n maxFileSize: 2 * 1024 * 1024, // 2M\n maxNumberOfFiles: 100, // 最多上传 xx 张图片\n allowedFileTypes: ['image/*'],\n meta: {\n // 自定义上传参数,例如传递验证的 token 等。参数会被添加到 formData 中,一起上传到服务端。\n // 例如:token: 'xxxxx', x: 100\n },\n metaWithUrl: false,\n // headers: {\n // // 自定义 http headers\n // // 例如:Accept: 'text/x-json', a: 100,\n // },\n withCredentials: false,\n timeout: 10 * 1000, // 10s\n\n onBeforeUpload: (files: any) => files, // 返回 false 则终止上传\n onProgress: (_progress: number) => {\n /* on progress */\n },\n onSuccess: (_file: any, _res: any) => {\n /* on success */\n },\n onFailed: (file: any, res: any) => {\n console.error(`'${file.name}' upload failed`, res)\n },\n onError: (file: any, err: any, res: any) => {\n /* on error */\n /* on timeout */\n console.error(`'${file.name}' upload error`, res)\n },\n\n // 自定义插入图片,用户配置\n // customInsert: (res, insertFn) => {},\n\n // 自定义上传图片,用户配置\n // customUpload: (file, insertFn) => {},\n\n // 自定义上传适配器,默认仍使用内置 Uppy\n // uploadAdapter: ({ config, editor }) => ({ addFiles() {}, upload: async () => {} }),\n\n // 小于 xxx 就插入 base64\n base64LimitSize: 0,\n\n // 自定义选择,并上传图片,如:图床 (用户配置)\n // customBrowseAndUpload: insertFn => {},\n }\n}\n","/**\n * @description editor 插件,重写 editor API\n * @author wangfupeng\n */\n\nimport { isInsertImageMenuDisabled } from '@wangeditor-next/basic-modules'\nimport { IDomEditor } from '@wangeditor-next/core'\n\nimport uploadImages from './upload-images'\n\nfunction withUploadImage<T extends IDomEditor>(editor: T): T {\n const { insertData } = editor\n const newEditor = editor\n\n // 重写 insertData - 粘贴图片、拖拽上传图片\n newEditor.insertData = (data: DataTransfer) => {\n if (isInsertImageMenuDisabled(newEditor)) {\n insertData(data)\n return\n }\n\n // 如有 text ,则优先粘贴 text\n const text = data.getData('text/plain')\n\n if (text) {\n insertData(data)\n return\n }\n\n // 获取文件\n const { files } = data\n\n if (files.length <= 0) {\n insertData(data)\n return\n }\n\n // 判断是否有图片文件(可能是其他类型的文件)\n const fileList = Array.prototype.slice.call(files)\n const hasImageFiles = fileList.some(file => {\n const [mime] = file.type.split('/')\n\n return mime === 'image'\n })\n\n if (hasImageFiles) {\n // 有图片文件,则上传图片\n uploadImages(editor, files)\n } else {\n // 如果没有, 则继续 insertData\n insertData(data)\n }\n }\n\n // 返回 editor ,重要!\n return newEditor\n}\n\nexport default withUploadImage\n"],"names":["i18nAddResources","uploadImgModule","uploadImage","uploadError","append","$","fn","on","remove","val","click","hide","EDITOR_TO_UPLOADER_MAP","WeakMap","getMenuConfig","editor","insertBase64","file","Promise","resolve","reader","FileReader","readAsDataURL","onload","result","src","toString","href","indexOf","insertImageNode","name","uploadFile","files","uploader","get","menuConfig","onSuccess","onProgress","onFailed","customInsert","onError","createUploader","__assign","progress","showProgressBar","res","alt","_a","errno","_b","data","Array","isArray","forEach","item","url","_c","_d","_e","err","set","getUploader","uploadList","map","type","size","addFiles","upload","sent","uploadImages","fileList","prototype","slice","call","customUpload","base64LimitSize","uploadFileList","fileList_1","__asyncValues","fileList_1_1","value","_f","push","length","UploadImage","this","title","t","iconSvg","tag","getValue","_editor","isActive","isDisabled","isInsertImageMenuDisabled","exec","_value","allowedFileTypes","customBrowseAndUpload","acceptAttr","join","$body","$inputFile","menus","key","factory","UploadImageMenu","config","server","fieldName","maxFileSize","maxNumberOfFiles","meta","metaWithUrl","withCredentials","timeout","onBeforeUpload","_progress","_file","_res","console","error","concat","editorPlugin","insertData","newEditor","getData","some","__read","split"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Editor, Span } from 'slate';
2
+ import { WithTableOptions } from './options';
3
+ /**
4
+ * Determines whether two paths belong to the same types by checking
5
+ * if they share a common ancestor node of type table
6
+ */
7
+ export declare function hasCommon(editor: Editor, [path, another]: Span, ...types: Array<keyof WithTableOptions['blocks']>): boolean;
@@ -0,0 +1,5 @@
1
+ export * from './has-common';
2
+ export * from './is-of-type';
3
+ export * from './matrices';
4
+ export * from './point';
5
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ import { Editor, Element, Node, NodeMatch } from 'slate';
2
+ import { WithTableOptions } from './options';
3
+ import { WithType } from './types';
4
+ export declare function isElement<T extends Element>(node: Node): node is WithType<T>;
5
+ /** @returns a `NodeMatch` function which is used to match the elements of a specific `type`. */
6
+ export declare function isOfType<T extends WithType<Element>>(editor: Editor, ...types: Array<keyof WithTableOptions['blocks']>): NodeMatch<T>;
@@ -0,0 +1,9 @@
1
+ import { Editor, Location, NodeEntry } from 'slate';
2
+ import { CellElement, NodeEntryWithContext } from './types';
3
+ /** Generates a matrix for each table section (`thead`, `tbody`, `tfoot`) */
4
+ export declare function matrices(editor: Editor, options?: {
5
+ at?: Location;
6
+ }): Generator<NodeEntry<CellElement>[][]>;
7
+ export declare function filledMatrix(editor: Editor, options?: {
8
+ at?: Location;
9
+ }): NodeEntryWithContext[][];
@@ -0,0 +1,25 @@
1
+ import { CustomTypes, ExtendedType } from 'slate';
2
+ type ElementType = ExtendedType<'Element', CustomTypes>['type'];
3
+ export interface WithTableOptions {
4
+ blocks: {
5
+ td: ElementType;
6
+ th: ElementType;
7
+ content: ElementType;
8
+ tr: ElementType;
9
+ table: ElementType;
10
+ tbody: ElementType;
11
+ tfoot: ElementType;
12
+ thead: ElementType;
13
+ };
14
+ }
15
+ export declare const DEFAULT_WITH_TABLE_OPTIONS: {
16
+ blocks: {
17
+ td: string;
18
+ th: string;
19
+ content: string;
20
+ tr: string;
21
+ table: string;
22
+ tbody: string;
23
+ };
24
+ };
25
+ export {};
@@ -0,0 +1,7 @@
1
+ export declare class Point {
2
+ x: number;
3
+ y: number;
4
+ constructor(x: number, y: number);
5
+ static valueOf(x: number, y: number): Point;
6
+ static equals(point: Point, another: Point): boolean;
7
+ }
@@ -0,0 +1,19 @@
1
+ import { Element, NodeEntry } from 'slate';
2
+ export type CellElement = WithType<{
3
+ rowSpan?: number;
4
+ colSpan?: number;
5
+ hidden?: boolean;
6
+ } & Element>;
7
+ /** Extends an element with the "type" property */
8
+ export type WithType<T extends Element> = T & Record<'type', unknown>;
9
+ export type NodeEntryWithContext = [
10
+ NodeEntry<CellElement>,
11
+ {
12
+ rtl: number;
13
+ ltr: number;
14
+ ttb: number;
15
+ btt: number;
16
+ }
17
+ ];
18
+ export type SelectionMode = 'start' | 'end' | 'all';
19
+ export type Edge = 'start' | 'end' | 'top' | 'bottom';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @description icon svg
3
+ * @author wangfupeng
4
+ */
5
+ /**
6
+ * 【注意】svg 字符串的长度 ,否则会导致代码体积过大
7
+ * 尽量选择 https://www.iconfont.cn/collections/detail?spm=a313x.7781069.0.da5a778a4&cid=20293
8
+ * 找不到再从 iconfont.com 搜索
9
+ */
10
+ export declare const UPLOAD_IMAGE_SVG = "<svg viewBox=\"0 0 1024 1024\"><path d=\"M828.708571 585.045333a48.761905 48.761905 0 0 0-48.737523 48.761905v18.529524l-72.143238-72.167619a135.972571 135.972571 0 0 0-191.585524 0l-34.133334 34.133333-120.880762-120.953905a138.898286 138.898286 0 0 0-191.585523 0l-72.167619 72.167619V292.400762a48.786286 48.786286 0 0 1 48.761904-48.761905h341.23581a48.737524 48.737524 0 0 0 34.474667-83.285333 48.737524 48.737524 0 0 0-34.474667-14.287238H146.236952A146.212571 146.212571 0 0 0 0 292.400762v585.289143A146.358857 146.358857 0 0 0 146.236952 1024h584.996572a146.212571 146.212571 0 0 0 146.236952-146.310095V633.807238a48.786286 48.786286 0 0 0-48.761905-48.761905zM146.261333 926.45181a48.737524 48.737524 0 0 1-48.761904-48.761905v-174.128762l141.409523-141.458286a38.497524 38.497524 0 0 1 53.126096 0l154.526476 154.624 209.627428 209.724953H146.236952z m633.734096-48.761905c-0.073143 9.337905-3.145143 18.383238-8.777143 25.843809l-219.843048-220.94019 34.133333-34.133334a37.546667 37.546667 0 0 1 53.613715 0l140.873143 141.897143V877.714286zM1009.615238 160.231619L863.329524 13.897143a48.737524 48.737524 0 0 0-16.091429-10.24c-11.849143-4.87619-25.161143-4.87619-37.059047 0a48.761905 48.761905 0 0 0-16.067048 10.24l-146.236952 146.334476a49.005714 49.005714 0 0 0 69.217523 69.241905l62.902858-63.390476v272.627809a48.761905 48.761905 0 1 0 97.475047 0V166.083048l62.902857 63.390476a48.737524 48.737524 0 0 0 69.217524 0 48.761905 48.761905 0 0 0 0-69.241905z\"></path></svg>";
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description upload image
3
+ * @author wangfupeng
4
+ */
5
+ import './assets/index.less';
6
+ import './locale/index';
7
+ import wangEditorUploadImageModule from './module/index';
8
+ export default wangEditorUploadImageModule;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @description i18n en
3
+ * @author wangfupeng
4
+ */
5
+ declare const _default: {
6
+ uploadImgModule: {
7
+ uploadImage: string;
8
+ uploadError: string;
9
+ };
10
+ };
11
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @description i18n entry
3
+ * @author wangfupeng
4
+ */
5
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @description i18n zh-CN
3
+ * @author wangfupeng
4
+ */
5
+ declare const _default: {
6
+ uploadImgModule: {
7
+ uploadImage: string;
8
+ uploadError: string;
9
+ };
10
+ };
11
+ export default _default;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @description uploadImage module
3
+ * @author wangfupeng
4
+ */
5
+ import { IModuleConf } from '@wangeditor-next/core';
6
+ declare const uploadImage: Partial<IModuleConf>;
7
+ export default uploadImage;