@gravity-ui/markdown-editor 15.1.0 → 15.2.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 (299) hide show
  1. package/build/cjs/bundle/Editor.d.ts +3 -0
  2. package/build/cjs/bundle/Editor.js +21 -2
  3. package/build/cjs/bundle/Editor.js.map +1 -1
  4. package/build/cjs/bundle/MarkdownEditorView.js +2 -1
  5. package/build/cjs/bundle/MarkdownEditorView.js.map +1 -1
  6. package/build/cjs/bundle/MarkupEditorView.js +6 -1
  7. package/build/cjs/bundle/MarkupEditorView.js.map +1 -1
  8. package/build/cjs/bundle/MarkupManager.d.ts +3 -6
  9. package/build/cjs/bundle/MarkupManager.js +5 -5
  10. package/build/cjs/bundle/MarkupManager.js.map +1 -1
  11. package/build/cjs/bundle/WysiwygEditorView.js +6 -1
  12. package/build/cjs/bundle/WysiwygEditorView.js.map +1 -1
  13. package/build/cjs/bundle/types.d.ts +2 -0
  14. package/build/cjs/bundle/types.js.map +1 -1
  15. package/build/cjs/bundle/useMarkdownEditor.js +4 -2
  16. package/build/cjs/bundle/useMarkdownEditor.js.map +1 -1
  17. package/build/cjs/core/Editor.d.ts +3 -1
  18. package/build/cjs/core/Editor.js +6 -3
  19. package/build/cjs/core/Editor.js.map +1 -1
  20. package/build/cjs/core/ExtensionBuilder.d.ts +3 -1
  21. package/build/cjs/core/ExtensionBuilder.js +6 -1
  22. package/build/cjs/core/ExtensionBuilder.js.map +1 -1
  23. package/build/cjs/core/ExtensionsManager.d.ts +4 -2
  24. package/build/cjs/core/ExtensionsManager.js +6 -5
  25. package/build/cjs/core/ExtensionsManager.js.map +1 -1
  26. package/build/cjs/core/ParserTokensRegistry.d.ts +6 -0
  27. package/build/cjs/core/ParserTokensRegistry.js +9 -1
  28. package/build/cjs/core/ParserTokensRegistry.js.map +1 -1
  29. package/build/cjs/core/index.d.ts +1 -0
  30. package/build/cjs/core/index.js +3 -1
  31. package/build/cjs/core/index.js.map +1 -1
  32. package/build/cjs/core/markdown/MarkdownParser.d.ts +9 -1
  33. package/build/cjs/core/markdown/MarkdownParser.js +7 -3
  34. package/build/cjs/core/markdown/MarkdownParser.js.map +1 -1
  35. package/build/cjs/core/utils/logger.d.ts +3 -0
  36. package/build/cjs/core/utils/logger.js +12 -0
  37. package/build/cjs/core/utils/logger.js.map +1 -0
  38. package/build/cjs/core/utils/metrics.d.ts +2 -1
  39. package/build/cjs/core/utils/metrics.js +8 -2
  40. package/build/cjs/core/utils/metrics.js.map +1 -1
  41. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.d.ts +1 -1
  42. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js +2 -2
  43. package/build/cjs/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
  44. package/build/cjs/extensions/behavior/Autocomplete/handler.d.ts +3 -1
  45. package/build/cjs/extensions/behavior/Autocomplete/handler.js +16 -10
  46. package/build/cjs/extensions/behavior/Autocomplete/handler.js.map +1 -1
  47. package/build/cjs/extensions/behavior/Autocomplete/index.js +1 -1
  48. package/build/cjs/extensions/behavior/Autocomplete/index.js.map +1 -1
  49. package/build/cjs/extensions/behavior/Clipboard/clipboard.d.ts +3 -1
  50. package/build/cjs/extensions/behavior/Clipboard/clipboard.js +31 -3
  51. package/build/cjs/extensions/behavior/Clipboard/clipboard.js.map +1 -1
  52. package/build/cjs/extensions/behavior/Clipboard/index.js +4 -0
  53. package/build/cjs/extensions/behavior/Clipboard/index.js.map +1 -1
  54. package/build/cjs/extensions/behavior/CommandMenu/handler.d.ts +3 -1
  55. package/build/cjs/extensions/behavior/CommandMenu/handler.js +6 -3
  56. package/build/cjs/extensions/behavior/CommandMenu/handler.js.map +1 -1
  57. package/build/cjs/extensions/behavior/CommandMenu/index.js +5 -3
  58. package/build/cjs/extensions/behavior/CommandMenu/index.js.map +1 -1
  59. package/build/cjs/extensions/behavior/EditorModeKeymap/index.js +13 -2
  60. package/build/cjs/extensions/behavior/EditorModeKeymap/index.js.map +1 -1
  61. package/build/cjs/extensions/behavior/FilePaste/index.d.ts +1 -1
  62. package/build/cjs/extensions/behavior/FilePaste/index.js +12 -0
  63. package/build/cjs/extensions/behavior/FilePaste/index.js.map +1 -1
  64. package/build/cjs/extensions/behavior/SelectionContext/index.js +3 -3
  65. package/build/cjs/extensions/behavior/SelectionContext/index.js.map +1 -1
  66. package/build/cjs/extensions/behavior/SelectionContext/tooltip.d.ts +3 -1
  67. package/build/cjs/extensions/behavior/SelectionContext/tooltip.js +7 -2
  68. package/build/cjs/extensions/behavior/SelectionContext/tooltip.js.map +1 -1
  69. package/build/cjs/extensions/behavior/utils/upload.d.ts +2 -0
  70. package/build/cjs/extensions/behavior/utils/upload.js +3 -0
  71. package/build/cjs/extensions/behavior/utils/upload.js.map +1 -1
  72. package/build/cjs/extensions/markdown/Breaks/index.js +2 -1
  73. package/build/cjs/extensions/markdown/Breaks/index.js.map +1 -1
  74. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +2 -1
  75. package/build/cjs/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
  76. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js +2 -2
  77. package/build/cjs/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
  78. package/build/cjs/extensions/markdown/Html/index.js +2 -1
  79. package/build/cjs/extensions/markdown/Html/index.js.map +1 -1
  80. package/build/cjs/extensions/markdown/Html/schema.js +2 -2
  81. package/build/cjs/extensions/markdown/Html/schema.js.map +1 -1
  82. package/build/cjs/extensions/markdown/Link/paste-plugin.d.ts +1 -1
  83. package/build/cjs/extensions/markdown/Link/paste-plugin.js +11 -0
  84. package/build/cjs/extensions/markdown/Link/paste-plugin.js.map +1 -1
  85. package/build/cjs/extensions/markdown/Superscript/SuperscriptSpecs/index.js +3 -3
  86. package/build/cjs/extensions/markdown/Superscript/SuperscriptSpecs/index.js.map +1 -1
  87. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js +2 -2
  88. package/build/cjs/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
  89. package/build/cjs/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js +2 -2
  90. package/build/cjs/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js.map +1 -1
  91. package/build/cjs/extensions/yfm/ImgSize/ImagePaste/index.d.ts +1 -1
  92. package/build/cjs/extensions/yfm/ImgSize/ImagePaste/index.js +14 -0
  93. package/build/cjs/extensions/yfm/ImgSize/ImagePaste/index.js.map +1 -1
  94. package/build/cjs/extensions/yfm/ImgSize/ImagePaste/upload.js +6 -5
  95. package/build/cjs/extensions/yfm/ImgSize/ImagePaste/upload.js.map +1 -1
  96. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.d.ts +1 -1
  97. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.js +6 -6
  98. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/const.js.map +1 -1
  99. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js +3 -3
  100. package/build/cjs/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
  101. package/build/cjs/extensions/yfm/ImgSize/utils.d.ts +2 -1
  102. package/build/cjs/extensions/yfm/ImgSize/utils.js +3 -2
  103. package/build/cjs/extensions/yfm/ImgSize/utils.js.map +1 -1
  104. package/build/cjs/extensions/yfm/Monospace/MonospaceSpecs/index.js +3 -3
  105. package/build/cjs/extensions/yfm/Monospace/MonospaceSpecs/index.js.map +1 -1
  106. package/build/cjs/extensions/yfm/Video/VideoSpecs/index.js +2 -2
  107. package/build/cjs/extensions/yfm/Video/VideoSpecs/index.js.map +1 -1
  108. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.d.ts +4 -4
  109. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.js +7 -7
  110. package/build/cjs/extensions/yfm/Video/VideoSpecs/md-video.js.map +1 -1
  111. package/build/cjs/extensions/yfm/YfmConfigs/index.d.ts +2 -2
  112. package/build/cjs/extensions/yfm/YfmConfigs/index.js +2 -2
  113. package/build/cjs/extensions/yfm/YfmConfigs/index.js.map +1 -1
  114. package/build/cjs/extensions/yfm/YfmFile/YfmFilePaste/index.d.ts +1 -1
  115. package/build/cjs/extensions/yfm/YfmFile/YfmFilePaste/index.js +15 -1
  116. package/build/cjs/extensions/yfm/YfmFile/YfmFilePaste/index.js.map +1 -1
  117. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +3 -3
  118. package/build/cjs/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
  119. package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js +3 -3
  120. package/build/cjs/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
  121. package/build/cjs/extensions/yfm/YfmTabs/actions.js +4 -4
  122. package/build/cjs/extensions/yfm/YfmTabs/actions.js.map +1 -1
  123. package/build/cjs/extensions/yfm/YfmTabs/plugins.js +11 -11
  124. package/build/cjs/extensions/yfm/YfmTabs/plugins.js.map +1 -1
  125. package/build/cjs/i18n/yfm-note/index.d.ts +1 -1
  126. package/build/cjs/logger.d.ts +75 -0
  127. package/build/cjs/logger.js +89 -1
  128. package/build/cjs/logger.js.map +1 -1
  129. package/build/cjs/markdown-it/emoji.d.ts +2 -2
  130. package/build/cjs/markdown-it/emoji.js +4 -4
  131. package/build/cjs/markdown-it/emoji.js.map +1 -1
  132. package/build/cjs/markup/codemirror/create.d.ts +2 -0
  133. package/build/cjs/markup/codemirror/create.js +15 -4
  134. package/build/cjs/markup/codemirror/create.js.map +1 -1
  135. package/build/cjs/markup/codemirror/files-upload-plugin/plugin.js +13 -0
  136. package/build/cjs/markup/codemirror/files-upload-plugin/plugin.js.map +1 -1
  137. package/build/cjs/markup/codemirror/logger-facet.d.ts +3 -0
  138. package/build/cjs/markup/codemirror/logger-facet.js +9 -0
  139. package/build/cjs/markup/codemirror/logger-facet.js.map +1 -0
  140. package/build/cjs/utils/event-emitter.d.ts +1 -0
  141. package/build/cjs/utils/event-emitter.js +3 -0
  142. package/build/cjs/utils/event-emitter.js.map +1 -1
  143. package/build/cjs/utils/facet.d.ts +1 -0
  144. package/build/cjs/utils/facet.js +33 -0
  145. package/build/cjs/utils/facet.js.map +1 -0
  146. package/build/cjs/utils/keymap.js +7 -2
  147. package/build/cjs/utils/keymap.js.map +1 -1
  148. package/build/cjs/version.js +1 -1
  149. package/build/cjs/version.js.map +1 -1
  150. package/build/esm/bundle/Editor.d.ts +3 -0
  151. package/build/esm/bundle/Editor.js +22 -3
  152. package/build/esm/bundle/Editor.js.map +1 -1
  153. package/build/esm/bundle/MarkdownEditorView.js +3 -2
  154. package/build/esm/bundle/MarkdownEditorView.js.map +1 -1
  155. package/build/esm/bundle/MarkupEditorView.js +7 -2
  156. package/build/esm/bundle/MarkupEditorView.js.map +1 -1
  157. package/build/esm/bundle/MarkupManager.d.ts +3 -6
  158. package/build/esm/bundle/MarkupManager.js +5 -5
  159. package/build/esm/bundle/MarkupManager.js.map +1 -1
  160. package/build/esm/bundle/WysiwygEditorView.js +7 -2
  161. package/build/esm/bundle/WysiwygEditorView.js.map +1 -1
  162. package/build/esm/bundle/types.d.ts +2 -0
  163. package/build/esm/bundle/types.js.map +1 -1
  164. package/build/esm/bundle/useMarkdownEditor.js +5 -3
  165. package/build/esm/bundle/useMarkdownEditor.js.map +1 -1
  166. package/build/esm/core/Editor.d.ts +3 -1
  167. package/build/esm/core/Editor.js +6 -3
  168. package/build/esm/core/Editor.js.map +1 -1
  169. package/build/esm/core/ExtensionBuilder.d.ts +3 -1
  170. package/build/esm/core/ExtensionBuilder.js +6 -1
  171. package/build/esm/core/ExtensionBuilder.js.map +1 -1
  172. package/build/esm/core/ExtensionsManager.d.ts +4 -2
  173. package/build/esm/core/ExtensionsManager.js +6 -5
  174. package/build/esm/core/ExtensionsManager.js.map +1 -1
  175. package/build/esm/core/ParserTokensRegistry.d.ts +6 -0
  176. package/build/esm/core/ParserTokensRegistry.js +9 -1
  177. package/build/esm/core/ParserTokensRegistry.js.map +1 -1
  178. package/build/esm/core/index.d.ts +1 -0
  179. package/build/esm/core/index.js +1 -0
  180. package/build/esm/core/index.js.map +1 -1
  181. package/build/esm/core/markdown/MarkdownParser.d.ts +9 -1
  182. package/build/esm/core/markdown/MarkdownParser.js +7 -3
  183. package/build/esm/core/markdown/MarkdownParser.js.map +1 -1
  184. package/build/esm/core/utils/logger.d.ts +3 -0
  185. package/build/esm/core/utils/logger.js +8 -0
  186. package/build/esm/core/utils/logger.js.map +1 -0
  187. package/build/esm/core/utils/metrics.d.ts +2 -1
  188. package/build/esm/core/utils/metrics.js +8 -2
  189. package/build/esm/core/utils/metrics.js.map +1 -1
  190. package/build/esm/extensions/additional/YfmHtmlBlock/utils.d.ts +1 -1
  191. package/build/esm/extensions/additional/YfmHtmlBlock/utils.js +1 -1
  192. package/build/esm/extensions/additional/YfmHtmlBlock/utils.js.map +1 -1
  193. package/build/esm/extensions/behavior/Autocomplete/handler.d.ts +3 -1
  194. package/build/esm/extensions/behavior/Autocomplete/handler.js +15 -9
  195. package/build/esm/extensions/behavior/Autocomplete/handler.js.map +1 -1
  196. package/build/esm/extensions/behavior/Autocomplete/index.js +1 -1
  197. package/build/esm/extensions/behavior/Autocomplete/index.js.map +1 -1
  198. package/build/esm/extensions/behavior/Clipboard/clipboard.d.ts +3 -1
  199. package/build/esm/extensions/behavior/Clipboard/clipboard.js +32 -4
  200. package/build/esm/extensions/behavior/Clipboard/clipboard.js.map +1 -1
  201. package/build/esm/extensions/behavior/Clipboard/index.js +4 -0
  202. package/build/esm/extensions/behavior/Clipboard/index.js.map +1 -1
  203. package/build/esm/extensions/behavior/CommandMenu/handler.d.ts +3 -1
  204. package/build/esm/extensions/behavior/CommandMenu/handler.js +7 -4
  205. package/build/esm/extensions/behavior/CommandMenu/handler.js.map +1 -1
  206. package/build/esm/extensions/behavior/CommandMenu/index.js +6 -4
  207. package/build/esm/extensions/behavior/CommandMenu/index.js.map +1 -1
  208. package/build/esm/extensions/behavior/EditorModeKeymap/index.js +13 -2
  209. package/build/esm/extensions/behavior/EditorModeKeymap/index.js.map +1 -1
  210. package/build/esm/extensions/behavior/FilePaste/index.d.ts +1 -1
  211. package/build/esm/extensions/behavior/FilePaste/index.js +12 -0
  212. package/build/esm/extensions/behavior/FilePaste/index.js.map +1 -1
  213. package/build/esm/extensions/behavior/SelectionContext/index.js +3 -3
  214. package/build/esm/extensions/behavior/SelectionContext/index.js.map +1 -1
  215. package/build/esm/extensions/behavior/SelectionContext/tooltip.d.ts +3 -1
  216. package/build/esm/extensions/behavior/SelectionContext/tooltip.js +8 -3
  217. package/build/esm/extensions/behavior/SelectionContext/tooltip.js.map +1 -1
  218. package/build/esm/extensions/behavior/utils/upload.d.ts +2 -0
  219. package/build/esm/extensions/behavior/utils/upload.js +3 -0
  220. package/build/esm/extensions/behavior/utils/upload.js.map +1 -1
  221. package/build/esm/extensions/markdown/Breaks/index.js +3 -2
  222. package/build/esm/extensions/markdown/Breaks/index.js.map +1 -1
  223. package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js +3 -2
  224. package/build/esm/extensions/markdown/CodeBlock/CodeBlockHighlight/CodeBlockHighlight.js.map +1 -1
  225. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js +1 -1
  226. package/build/esm/extensions/markdown/Deflist/DeflistSpecs/index.js.map +1 -1
  227. package/build/esm/extensions/markdown/Html/index.js +3 -2
  228. package/build/esm/extensions/markdown/Html/index.js.map +1 -1
  229. package/build/esm/extensions/markdown/Html/schema.js +1 -1
  230. package/build/esm/extensions/markdown/Html/schema.js.map +1 -1
  231. package/build/esm/extensions/markdown/Link/paste-plugin.d.ts +1 -1
  232. package/build/esm/extensions/markdown/Link/paste-plugin.js +11 -0
  233. package/build/esm/extensions/markdown/Link/paste-plugin.js.map +1 -1
  234. package/build/esm/extensions/markdown/Superscript/SuperscriptSpecs/index.js +2 -2
  235. package/build/esm/extensions/markdown/Superscript/SuperscriptSpecs/index.js.map +1 -1
  236. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js +1 -1
  237. package/build/esm/extensions/yfm/Checkbox/CheckboxSpecs/index.js.map +1 -1
  238. package/build/esm/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js +1 -1
  239. package/build/esm/extensions/yfm/Emoji/EmojiSpecs/EmojiSpecs.js.map +1 -1
  240. package/build/esm/extensions/yfm/ImgSize/ImagePaste/index.d.ts +1 -1
  241. package/build/esm/extensions/yfm/ImgSize/ImagePaste/index.js +14 -0
  242. package/build/esm/extensions/yfm/ImgSize/ImagePaste/index.js.map +1 -1
  243. package/build/esm/extensions/yfm/ImgSize/ImagePaste/upload.js +7 -6
  244. package/build/esm/extensions/yfm/ImgSize/ImagePaste/upload.js.map +1 -1
  245. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.d.ts +1 -1
  246. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.js +1 -1
  247. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/const.js.map +1 -1
  248. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js +2 -2
  249. package/build/esm/extensions/yfm/ImgSize/ImgSizeSpecs/index.js.map +1 -1
  250. package/build/esm/extensions/yfm/ImgSize/utils.d.ts +2 -1
  251. package/build/esm/extensions/yfm/ImgSize/utils.js +4 -3
  252. package/build/esm/extensions/yfm/ImgSize/utils.js.map +1 -1
  253. package/build/esm/extensions/yfm/Monospace/MonospaceSpecs/index.js +2 -2
  254. package/build/esm/extensions/yfm/Monospace/MonospaceSpecs/index.js.map +1 -1
  255. package/build/esm/extensions/yfm/Video/VideoSpecs/index.js +1 -1
  256. package/build/esm/extensions/yfm/Video/VideoSpecs/index.js.map +1 -1
  257. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.d.ts +4 -4
  258. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.js +3 -3
  259. package/build/esm/extensions/yfm/Video/VideoSpecs/md-video.js.map +1 -1
  260. package/build/esm/extensions/yfm/YfmConfigs/index.d.ts +2 -2
  261. package/build/esm/extensions/yfm/YfmConfigs/index.js +2 -2
  262. package/build/esm/extensions/yfm/YfmConfigs/index.js.map +1 -1
  263. package/build/esm/extensions/yfm/YfmFile/YfmFilePaste/index.d.ts +1 -1
  264. package/build/esm/extensions/yfm/YfmFile/YfmFilePaste/index.js +15 -1
  265. package/build/esm/extensions/yfm/YfmFile/YfmFilePaste/index.js.map +1 -1
  266. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js +2 -2
  267. package/build/esm/extensions/yfm/YfmNote/YfmNoteSpecs/index.js.map +1 -1
  268. package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js +2 -2
  269. package/build/esm/extensions/yfm/YfmTable/YfmTableSpecs/index.js.map +1 -1
  270. package/build/esm/extensions/yfm/YfmTabs/actions.js +1 -1
  271. package/build/esm/extensions/yfm/YfmTabs/actions.js.map +1 -1
  272. package/build/esm/extensions/yfm/YfmTabs/plugins.js +1 -1
  273. package/build/esm/extensions/yfm/YfmTabs/plugins.js.map +1 -1
  274. package/build/esm/i18n/yfm-note/index.d.ts +1 -1
  275. package/build/esm/logger.d.ts +75 -0
  276. package/build/esm/logger.js +87 -0
  277. package/build/esm/logger.js.map +1 -1
  278. package/build/esm/markdown-it/emoji.d.ts +2 -2
  279. package/build/esm/markdown-it/emoji.js +2 -2
  280. package/build/esm/markdown-it/emoji.js.map +1 -1
  281. package/build/esm/markup/codemirror/create.d.ts +2 -0
  282. package/build/esm/markup/codemirror/create.js +16 -5
  283. package/build/esm/markup/codemirror/create.js.map +1 -1
  284. package/build/esm/markup/codemirror/files-upload-plugin/plugin.js +13 -0
  285. package/build/esm/markup/codemirror/files-upload-plugin/plugin.js.map +1 -1
  286. package/build/esm/markup/codemirror/logger-facet.d.ts +3 -0
  287. package/build/esm/markup/codemirror/logger-facet.js +6 -0
  288. package/build/esm/markup/codemirror/logger-facet.js.map +1 -0
  289. package/build/esm/utils/event-emitter.d.ts +1 -0
  290. package/build/esm/utils/event-emitter.js +3 -0
  291. package/build/esm/utils/event-emitter.js.map +1 -1
  292. package/build/esm/utils/facet.d.ts +1 -0
  293. package/build/esm/utils/facet.js +29 -0
  294. package/build/esm/utils/facet.js.map +1 -0
  295. package/build/esm/utils/keymap.js +7 -2
  296. package/build/esm/utils/keymap.js.map +1 -1
  297. package/build/esm/version.js +1 -1
  298. package/build/esm/version.js.map +1 -1
  299. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/index.ts"],"names":[],"mappings":";;;AAAA,2DAA4D;AAC5D,yDAA0E;AAC1E,yDAAyC;AACzC,iEAAgD;AAIhD,kDAA8C;AAE9C,oEAA2D;AAC3D,gEAAmE;AACnE,6CAAiE;AACjE,uCAAkE;AAElE,wCAA6C;AAE7C,MAAM,EAAC,eAAe,EAAE,WAAW,EAAE,WAAW,EAAC,GAAG,0BAAc,CAAC;AAa5D,MAAM,UAAU,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,MAAM,EAAC,uBAAuB,EAAE,kBAAkB,EAAC,GAAG,IAAI,IAAI,EAAE,CAAC;IAEjE,IAAI,CAAC,IAAA,mBAAU,EAAC,kBAAkB,IAAI,uBAAuB,CAAC;QAC1D,MAAM,IAAI,KAAK,CACX,yBACI,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,yBACrD,oBAAoB,CACvB,CAAC;IAEN,OAAO,CAAC,SAAS,CACb,GAAG,EAAE,CACD,IAAI,0BAAM,CAAC;QACP,KAAK,EAAE;YACH,eAAe,EAAE;gBACb,KAAK,CAAC,IAAI,EAAE,CAAC;oBACT,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;oBAC/C,IAAI,kBAAkB,IAAI,KAAK,EAAE,CAAC;wBAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,IAAI,4BAAmB,CACnB,IAAI,EACJ,KAAK,EACL,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAC5B,IAAI,CACP,CAAC,GAAG,EAAE,CAAC;wBACR,OAAO,IAAI,CAAC;oBAChB,CAAC;yBAAM,IAAI,uBAAuB,EAAE,CAAC;wBACjC,MAAM,EAAC,QAAQ,EAAE,KAAK,EAAC,GACnB,uBAAuB,CACnB,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,wBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CACxD,IAAI,EAAE,CAAC;wBAEZ,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACZ,OAAO,KAAK,CAAC;wBACjB,CAAC;wBAED,CAAC,CAAC,cAAc,EAAE,CAAC;wBAEnB,MAAM,SAAS,GAAG,IAAA,iBAAS,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;4BAClD,GAAG,EAAE,QAAQ;4BACb,GAAG,EAAE,KAAK;yBACb,CAAC,CAAC;wBAEH,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;wBACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC;wBAEnC,OAAO,IAAI,CAAC;oBAChB,CAAC;oBAED,OAAO,KAAK,CAAC;gBACjB,CAAC;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;oBACR,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACtB,OAAO,KAAK,CAAC;oBACjB,CAAC;oBAED,iCAAiC;oBACjC,IAAI,IAAI,CAAC,QAAQ;wBAAE,OAAO,KAAK,CAAC;oBAEhC,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBAC9C,IAAI,CAAC,KAAK;wBAAE,OAAO,KAAK,CAAC;oBAEzB,MAAM,OAAO,GACT,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,EAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;oBACnE,IAAI,OAAO,KAAK,CAAC,CAAC;wBAAE,OAAO,KAAK,CAAC;oBAEjC,MAAM,WAAW,GAAG,IAAA,iCAAS,EACzB,IAAI,CAAC,KAAK,CAAC,GAAG,EACd,OAAO,EACP,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAC1C,CAAC;oBAEF,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;wBACvB,IAAI,4BAAmB,CACnB,IAAI,EACJ,KAAK,EACL,kBAAkB,EAClB,WAAW,EACX,IAAI,CACP,CAAC,GAAG,EAAE,CAAC;oBACZ,CAAC;oBAED,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,OAAO,IAAI,CAAC;gBAChB,CAAC;aACJ;YACD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK;gBAC3B,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACtB,OAAO,KAAK,CAAC;gBACjB,CAAC;gBAED,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;gBACpC,IAAI,IAAI,IAAI,IAAA,mBAAW,EAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAW,CAAC,GAAG,CAAC,CAAC;oBAC3C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC/C,IAAI,OAAO,EAAE,CAAC;wBACV,IAAI,4BAAmB,CACnB,IAAI,EACJ,CAAC,OAAO,CAAC,EACT,kBAAkB,EAClB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAC5B,IAAI,CACP,CAAC,GAAG,EAAE,CAAC;wBACR,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACL,CAAC;gBACD,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ;KACJ,CAAC,EACN,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAC5B,CAAC;AACN,CAAC,CAAC;AAjHW,QAAA,UAAU,cAiHrB;AAEF,SAAS,eAAe,CAAC,IAAyB;IAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IACxC,OAAO,IAAI,yBAAK,CACZ,4BAAQ,CAAC,IAAI,CACT,IAAA,iBAAS,EAAC,MAAM,CAAC,CAAC,MAAM,CAAC;QACrB,CAAC,iBAAS,CAAC,GAAG,CAAC,EAAE,MAAM;QACvB,CAAC,iBAAS,CAAC,KAAK,CAAC,EAAE,OAAO;KAC7B,CAAC,CACL,EACD,CAAC,EACD,CAAC,CACJ,CAAC;AACN,CAAC;AAED,wCAAwC;AACxC,SAAS,eAAe,CAAC,KAAY;IACjC,OAAO,KAAK,CAAC,SAAS,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,KAAK,CAAC;QACjF,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU;QAC1B,CAAC,CAAC,IAAI,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,OAAe,EAAE,QAAgB;IACpD,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC,CAAC,IAAA,2BAAc,EAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;AAC5E,CAAC","sourcesContent":["import {decode as base64ToBuffer} from 'base64-arraybuffer';\nimport {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\n\nimport type {ParseInsertedUrlAsImage} from '../../../../bundle';\nimport type {ExtensionAuto} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {DataTransferType} from '../../../behavior/Clipboard/utils';\nimport {ImageAttr, ImgSizeAttr, imageType} from '../../../specs';\nimport {type CreateImageNodeOptions, isImageNode} from '../utils';\n\nimport {ImagesUploadProcess} from './upload';\n\nconst {isFilesFromHtml, isFilesOnly, isImageFile} = clipboardUtils;\n\nexport type ImagePasteOptions = Pick<\n CreateImageNodeOptions,\n 'needDimensions' | 'enableNewImageSizeCalculation'\n> & {\n imageUploadHandler?: FileUploadHandler;\n /**\n * The function, used to determine if the pasted text is the image url and should be inserted as an image\n */\n parseInsertedUrlAsImage?: ParseInsertedUrlAsImage;\n};\n\nexport const ImagePaste: ExtensionAuto<ImagePasteOptions> = (builder, opts) => {\n const {parseInsertedUrlAsImage, imageUploadHandler} = opts ?? {};\n\n if (!isFunction(imageUploadHandler ?? parseInsertedUrlAsImage))\n throw new Error(\n `ImagePaste extension: ${\n opts.imageUploadHandler ? 'imageUploadHandler' : 'parseInsertedUrlAsImage'\n } is not a function`,\n );\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const files = getPastedImages(e.clipboardData);\n if (imageUploadHandler && files) {\n e.preventDefault();\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n } else if (parseInsertedUrlAsImage) {\n const {imageUrl, title} =\n parseInsertedUrlAsImage(\n e.clipboardData?.getData(DataTransferType.Text) ?? '',\n ) || {};\n\n if (!imageUrl) {\n return false;\n }\n\n e.preventDefault();\n\n const imageNode = imageType(view.state.schema).create({\n src: imageUrl,\n alt: title,\n });\n\n const tr = view.state.tr.replaceSelectionWith(imageNode);\n view.dispatch(tr.scrollIntoView());\n\n return true;\n }\n\n return false;\n },\n drop(view, e) {\n if (!imageUploadHandler) {\n return false;\n }\n\n // handle drop images from device\n if (view.dragging) return false;\n\n const files = getPastedImages(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeImageSlice(view.state.schema),\n );\n\n if (posToInsert !== null) {\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n posToInsert,\n opts,\n ).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n handlePaste(view, _event, slice) {\n if (!imageUploadHandler) {\n return false;\n }\n\n const node = sliceSingleNode(slice);\n if (node && isImageNode(node)) {\n const imgUrl = node.attrs[ImgSizeAttr.Src];\n const imgFile = dataUrlToFile(imgUrl, 'image');\n if (imgFile) {\n new ImagesUploadProcess(\n view,\n [imgFile],\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n }\n }\n return false;\n },\n },\n }),\n builder.Priority.VeryHigh,\n );\n};\n\nfunction getPastedImages(data: DataTransfer | null): File[] | null {\n if (!data || data.files.length === 0) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n const files = Array.from(data.files);\n return files.every(isImageFile) ? files : null;\n}\n\nfunction createFakeImageSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n imageType(schema).create({\n [ImageAttr.Src]: 'fake',\n [ImageAttr.Title]: 'image',\n }),\n ),\n 0,\n 0,\n );\n}\n\n// copied from prosemirror-view input.ts\nfunction sliceSingleNode(slice: Slice): Node | null {\n return slice.openStart === 0 && slice.openEnd === 0 && slice.content.childCount === 1\n ? slice.content.firstChild\n : null;\n}\n\nfunction dataUrlToFile(dataUrl: string, filename: string): File | null {\n const [data, base64String] = dataUrl.split(',');\n if (!data || !base64String) return null;\n const mime = data.match(/^data:(.+);base64/)?.[1];\n if (!mime) return null;\n return new File([base64ToBuffer(base64String)], filename, {type: mime});\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {decode as base64ToBuffer} from 'base64-arraybuffer';\nimport {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\n\nimport type {ParseInsertedUrlAsImage} from '../../../../bundle';\nimport {type ExtensionAuto, getLoggerFromState} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {DataTransferType} from '../../../behavior/Clipboard/utils';\nimport {ImageAttr, ImgSizeAttr, imageType} from '../../../specs';\nimport {type CreateImageNodeOptions, isImageNode} from '../utils';\n\nimport {ImagesUploadProcess} from './upload';\n\nconst {isFilesFromHtml, isFilesOnly, isImageFile} = clipboardUtils;\n\nexport type ImagePasteOptions = Pick<\n CreateImageNodeOptions,\n 'needDimensions' | 'enableNewImageSizeCalculation'\n> & {\n imageUploadHandler?: FileUploadHandler;\n /**\n * The function, used to determine if the pasted text is the image url and should be inserted as an image\n */\n parseInsertedUrlAsImage?: ParseInsertedUrlAsImage;\n};\n\nexport const ImagePaste: ExtensionAuto<ImagePasteOptions> = (builder, opts) => {\n const {parseInsertedUrlAsImage, imageUploadHandler} = opts ?? {};\n\n if (!isFunction(imageUploadHandler ?? parseInsertedUrlAsImage))\n throw new Error(\n `ImagePaste extension: ${\n opts.imageUploadHandler ? 'imageUploadHandler' : 'parseInsertedUrlAsImage'\n } is not a function`,\n );\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const logger = getLoggerFromState(view.state).nested({\n plugin: 'image-paste',\n domEvent: 'paste',\n });\n\n const files = getPastedImages(e.clipboardData);\n if (imageUploadHandler && files) {\n e.preventDefault();\n logger.event({event: 'paste-images'});\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n } else if (parseInsertedUrlAsImage) {\n const {imageUrl, title} =\n parseInsertedUrlAsImage(\n e.clipboardData?.getData(DataTransferType.Text) ?? '',\n ) || {};\n\n if (!imageUrl) {\n return false;\n }\n\n e.preventDefault();\n\n const imageNode = imageType(view.state.schema).create({\n src: imageUrl,\n alt: title,\n });\n\n const tr = view.state.tr.replaceSelectionWith(imageNode);\n view.dispatch(tr.scrollIntoView());\n logger.event({event: 'paste-url-as-image'});\n\n return true;\n }\n\n return false;\n },\n drop(view, e) {\n if (!imageUploadHandler) {\n return false;\n }\n\n // handle drop images from device\n if (view.dragging) return false;\n\n const files = getPastedImages(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeImageSlice(view.state.schema),\n );\n\n const logger = getLoggerFromState(view.state);\n logger.event({\n event: 'drop-image',\n plugin: 'image-paste',\n domEvent: 'drop',\n runProcess: posToInsert !== null,\n });\n\n if (posToInsert !== null) {\n new ImagesUploadProcess(\n view,\n files,\n imageUploadHandler,\n posToInsert,\n opts,\n ).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n handlePaste(view, _event, slice) {\n if (!imageUploadHandler) {\n return false;\n }\n\n const node = sliceSingleNode(slice);\n if (node && isImageNode(node)) {\n const imgUrl = node.attrs[ImgSizeAttr.Src];\n const imgFile = dataUrlToFile(imgUrl, 'image');\n if (imgFile) {\n new ImagesUploadProcess(\n view,\n [imgFile],\n imageUploadHandler,\n view.state.tr.selection.from,\n opts,\n ).run();\n return true;\n }\n }\n return false;\n },\n },\n }),\n builder.Priority.VeryHigh,\n );\n};\n\nfunction getPastedImages(data: DataTransfer | null): File[] | null {\n if (!data || data.files.length === 0) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n const files = Array.from(data.files);\n return files.every(isImageFile) ? files : null;\n}\n\nfunction createFakeImageSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n imageType(schema).create({\n [ImageAttr.Src]: 'fake',\n [ImageAttr.Title]: 'image',\n }),\n ),\n 0,\n 0,\n );\n}\n\n// copied from prosemirror-view input.ts\nfunction sliceSingleNode(slice: Slice): Node | null {\n return slice.openStart === 0 && slice.openEnd === 0 && slice.content.childCount === 1\n ? slice.content.firstChild\n : null;\n}\n\nfunction dataUrlToFile(dataUrl: string, filename: string): File | null {\n const [data, base64String] = dataUrl.split(',');\n if (!data || !base64String) return null;\n const mime = data.match(/^data:(.+);base64/)?.[1];\n if (!mime) return null;\n return new File([base64ToBuffer(base64String)], filename, {type: mime});\n}\n"]}
@@ -15,29 +15,30 @@ class ImagesUploadProcess extends upload_1.FilesBatchUploadProcess {
15
15
  constructor(view, files, uploadHandler, position, opts) {
16
16
  super(view, files, uploadHandler);
17
17
  this.initPosition = position;
18
- this.createImage = (0, utils_2.createImageNode)((0, markdown_1.imageType)(this.view.state.schema), opts);
18
+ this.createImage = (0, utils_2.createImageNode)((0, markdown_1.imageType)(this.view.state.schema), opts, this.logger);
19
19
  this.enableNewImageSizeCalculation = opts.enableNewImageSizeCalculation;
20
20
  }
21
21
  async createSkeleton() {
22
22
  return new skeleton_1.ImageSkeletonDescriptor(this.initPosition, await getSkeletonSize(this.files, {
23
23
  enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,
24
- }));
24
+ }, this.logger));
25
25
  }
26
26
  async createPMNode(res) {
27
27
  return this.createImage(res);
28
28
  }
29
29
  }
30
30
  exports.ImagesUploadProcess = ImagesUploadProcess;
31
- async function getSkeletonSize(files, opts) {
31
+ async function getSkeletonSize(files, opts, logger) {
32
32
  const skeletonSize = { width: '300', height: '200' };
33
33
  if (files.length === 1) {
34
34
  try {
35
- const size = await (0, utils_2.loadImage)(files[0]).then(opts?.enableNewImageSizeCalculation ? calcSkeletonSizeNew : calcSkeletonSize);
35
+ const size = await (0, utils_2.loadImage)(files[0]).then(opts.enableNewImageSizeCalculation ? calcSkeletonSizeNew : calcSkeletonSize);
36
36
  skeletonSize.width = String(size.width);
37
37
  skeletonSize.height = String(size.height);
38
38
  }
39
39
  catch (err) {
40
- logger_1.logger.error(err);
40
+ logger_1.globalLogger.error(err);
41
+ logger.error({ error: err });
41
42
  }
42
43
  }
43
44
  return skeletonSize;
@@ -1 +1 @@
1
- {"version":3,"file":"upload.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/upload.ts"],"names":[],"mappings":";;;AAGA,kDAA0C;AAC1C,sDAI2B;AAC3B,8DAAuE;AACvE,yDAA4C;AAC5C,uCAAwC;AACxC,uCAAiF;AAEjF,4CAAmD;AAEnD,MAAa,mBAAoB,SAAQ,gCAAuB;IACzC,WAAW,CAAC;IAEZ,YAAY,CAAS;IACvB,6BAA6B,CAAW;IAEzD,YACI,IAAgB,EAChB,KAAsB,EACtB,aAAgC,EAChC,QAAgB,EAChB,IAA4B;QAE5B,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAA,uBAAe,EAAC,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5E,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC;IAC5E,CAAC;IAES,KAAK,CAAC,cAAc;QAC1B,OAAO,IAAI,kCAAuB,CAC9B,IAAI,CAAC,YAAY,EACjB,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE;YAC9B,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;SACpE,CAAC,CACL,CAAC;IACN,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,GAAsB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ;AAhCD,kDAgCC;AAED,KAAK,UAAU,eAAe,CAC1B,KAAsB,EACtB,IAAgD;IAEhD,MAAM,YAAY,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACvC,IAAI,EAAE,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAC/E,CAAC;YACF,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IACvD,IAAI,MAAM,IAAI,sBAAc;QAAE,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IAErD,MAAM,KAAK,GAAG,sBAAc,GAAG,MAAM,CAAC,CAAC,UAAU;IACjD,OAAO,EAAC,MAAM,EAAE,sBAAc,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IAC1D,OAAO,IAAA,2BAAmB,EAAC;QACvB,KAAK;QACL,MAAM;QACN,YAAY,EAAE,sBAAc;KAC/B,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type {Node} from 'prosemirror-model';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {logger} from '../../../../logger';\nimport {\n type FileUploadHandler,\n type UploadSuccessItem,\n getProportionalSize,\n} from '../../../../utils';\nimport {FilesBatchUploadProcess} from '../../../behavior/utils/upload';\nimport {imageType} from '../../../markdown';\nimport {IMG_MAX_HEIGHT} from '../const';\nimport {type CreateImageNodeOptions, createImageNode, loadImage} from '../utils';\n\nimport {ImageSkeletonDescriptor} from './skeleton';\n\nexport class ImagesUploadProcess extends FilesBatchUploadProcess {\n protected readonly createImage;\n\n protected readonly initPosition: number;\n private readonly enableNewImageSizeCalculation?: boolean;\n\n constructor(\n view: EditorView,\n files: readonly File[],\n uploadHandler: FileUploadHandler,\n position: number,\n opts: CreateImageNodeOptions,\n ) {\n super(view, files, uploadHandler);\n\n this.initPosition = position;\n this.createImage = createImageNode(imageType(this.view.state.schema), opts);\n this.enableNewImageSizeCalculation = opts.enableNewImageSizeCalculation;\n }\n\n protected async createSkeleton() {\n return new ImageSkeletonDescriptor(\n this.initPosition,\n await getSkeletonSize(this.files, {\n enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,\n }),\n );\n }\n\n protected async createPMNode(res: UploadSuccessItem): Promise<Node> {\n return this.createImage(res);\n }\n}\n\nasync function getSkeletonSize(\n files: readonly File[],\n opts?: {enableNewImageSizeCalculation?: boolean},\n) {\n const skeletonSize = {width: '300', height: '200'};\n if (files.length === 1) {\n try {\n const size = await loadImage(files[0]).then(\n opts?.enableNewImageSizeCalculation ? calcSkeletonSizeNew : calcSkeletonSize,\n );\n skeletonSize.width = String(size.width);\n skeletonSize.height = String(size.height);\n } catch (err) {\n logger.error(err);\n }\n }\n return skeletonSize;\n}\n\nfunction calcSkeletonSize({width, height}: HTMLImageElement): {width: number; height: number} {\n if (height <= IMG_MAX_HEIGHT) return {width, height};\n\n const ratio = IMG_MAX_HEIGHT / height; // ratio<1\n return {height: IMG_MAX_HEIGHT, width: width * ratio};\n}\n\nfunction calcSkeletonSizeNew({width, height}: HTMLImageElement): {width: number; height: number} {\n return getProportionalSize({\n width,\n height,\n imgMaxHeight: IMG_MAX_HEIGHT,\n });\n}\n"]}
1
+ {"version":3,"file":"upload.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImagePaste/upload.ts"],"names":[],"mappings":";;;AAGA,kDAA8D;AAC9D,sDAI2B;AAC3B,8DAAuE;AACvE,yDAA4C;AAC5C,uCAAwC;AACxC,uCAAiF;AAEjF,4CAAmD;AAEnD,MAAa,mBAAoB,SAAQ,gCAAuB;IACzC,WAAW,CAAC;IAEZ,YAAY,CAAS;IACvB,6BAA6B,CAAW;IAEzD,YACI,IAAgB,EAChB,KAAsB,EACtB,aAAgC,EAChC,QAAgB,EAChB,IAA4B;QAE5B,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;QAElC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAA,uBAAe,EAAC,IAAA,oBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC;IAC5E,CAAC;IAES,KAAK,CAAC,cAAc;QAC1B,OAAO,IAAI,kCAAuB,CAC9B,IAAI,CAAC,YAAY,EACjB,MAAM,eAAe,CACjB,IAAI,CAAC,KAAK,EACV;YACI,6BAA6B,EAAE,IAAI,CAAC,6BAA6B;SACpE,EACD,IAAI,CAAC,MAAM,CACd,CACJ,CAAC;IACN,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,GAAsB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACJ;AApCD,kDAoCC;AAED,KAAK,UAAU,eAAe,CAC1B,KAAsB,EACtB,IAA+C,EAC/C,MAAuB;IAEvB,MAAM,YAAY,GAAG,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CACvC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,gBAAgB,CAC9E,CAAC;YACF,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,qBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IACvD,IAAI,MAAM,IAAI,sBAAc;QAAE,OAAO,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC;IAErD,MAAM,KAAK,GAAG,sBAAc,GAAG,MAAM,CAAC,CAAC,UAAU;IACjD,OAAO,EAAC,MAAM,EAAE,sBAAc,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAC,CAAC;AAC1D,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IAC1D,OAAO,IAAA,2BAAmB,EAAC;QACvB,KAAK;QACL,MAAM;QACN,YAAY,EAAE,sBAAc;KAC/B,CAAC,CAAC;AACP,CAAC","sourcesContent":["import type {Node} from 'prosemirror-model';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {type Logger2, globalLogger} from '../../../../logger';\nimport {\n type FileUploadHandler,\n type UploadSuccessItem,\n getProportionalSize,\n} from '../../../../utils';\nimport {FilesBatchUploadProcess} from '../../../behavior/utils/upload';\nimport {imageType} from '../../../markdown';\nimport {IMG_MAX_HEIGHT} from '../const';\nimport {type CreateImageNodeOptions, createImageNode, loadImage} from '../utils';\n\nimport {ImageSkeletonDescriptor} from './skeleton';\n\nexport class ImagesUploadProcess extends FilesBatchUploadProcess {\n protected readonly createImage;\n\n protected readonly initPosition: number;\n private readonly enableNewImageSizeCalculation?: boolean;\n\n constructor(\n view: EditorView,\n files: readonly File[],\n uploadHandler: FileUploadHandler,\n position: number,\n opts: CreateImageNodeOptions,\n ) {\n super(view, files, uploadHandler);\n\n this.initPosition = position;\n this.createImage = createImageNode(imageType(this.view.state.schema), opts, this.logger);\n this.enableNewImageSizeCalculation = opts.enableNewImageSizeCalculation;\n }\n\n protected async createSkeleton() {\n return new ImageSkeletonDescriptor(\n this.initPosition,\n await getSkeletonSize(\n this.files,\n {\n enableNewImageSizeCalculation: this.enableNewImageSizeCalculation,\n },\n this.logger,\n ),\n );\n }\n\n protected async createPMNode(res: UploadSuccessItem): Promise<Node> {\n return this.createImage(res);\n }\n}\n\nasync function getSkeletonSize(\n files: readonly File[],\n opts: {enableNewImageSizeCalculation?: boolean},\n logger: Logger2.ILogger,\n) {\n const skeletonSize = {width: '300', height: '200'};\n if (files.length === 1) {\n try {\n const size = await loadImage(files[0]).then(\n opts.enableNewImageSizeCalculation ? calcSkeletonSizeNew : calcSkeletonSize,\n );\n skeletonSize.width = String(size.width);\n skeletonSize.height = String(size.height);\n } catch (err) {\n globalLogger.error(err);\n logger.error({error: err});\n }\n }\n return skeletonSize;\n}\n\nfunction calcSkeletonSize({width, height}: HTMLImageElement): {width: number; height: number} {\n if (height <= IMG_MAX_HEIGHT) return {width, height};\n\n const ratio = IMG_MAX_HEIGHT / height; // ratio<1\n return {height: IMG_MAX_HEIGHT, width: width * ratio};\n}\n\nfunction calcSkeletonSizeNew({width, height}: HTMLImageElement): {width: number; height: number} {\n return getProportionalSize({\n width,\n height,\n imgMaxHeight: IMG_MAX_HEIGHT,\n });\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { ImsizeAttr } from '@diplodoc/transform/lib/plugins/imsize/const';
1
+ import { ImsizeAttr } from '@diplodoc/transform/lib/plugins/imsize/const.js';
2
2
  export declare const ImgSizeAttr: {
3
3
  readonly Alt: ImsizeAttr.Alt;
4
4
  readonly Src: ImsizeAttr.Src;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ImgSizeAttr = void 0;
4
- const const_1 = require("@diplodoc/transform/lib/plugins/imsize/const");
4
+ const const_js_1 = require("@diplodoc/transform/lib/plugins/imsize/const.js");
5
5
  exports.ImgSizeAttr = {
6
- Alt: const_1.ImsizeAttr.Alt,
7
- Src: const_1.ImsizeAttr.Src,
8
- Title: const_1.ImsizeAttr.Title,
9
- Width: const_1.ImsizeAttr.Width,
10
- Height: const_1.ImsizeAttr.Height,
6
+ Alt: const_js_1.ImsizeAttr.Alt,
7
+ Src: const_js_1.ImsizeAttr.Src,
8
+ Title: const_js_1.ImsizeAttr.Title,
9
+ Width: const_js_1.ImsizeAttr.Width,
10
+ Height: const_js_1.ImsizeAttr.Height,
11
11
  Loading: 'loading',
12
12
  };
13
13
  //# sourceMappingURL=const.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/const.ts"],"names":[],"mappings":";;;AAAA,wEAAwE;AAE3D,QAAA,WAAW,GAAG;IACvB,GAAG,EAAE,kBAAU,CAAC,GAAG;IACnB,GAAG,EAAE,kBAAU,CAAC,GAAG;IACnB,KAAK,EAAE,kBAAU,CAAC,KAAK;IACvB,KAAK,EAAE,kBAAU,CAAC,KAAK;IACvB,MAAM,EAAE,kBAAU,CAAC,MAAM;IACzB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import {ImsizeAttr} from '@diplodoc/transform/lib/plugins/imsize/const';\n\nexport const ImgSizeAttr = {\n Alt: ImsizeAttr.Alt,\n Src: ImsizeAttr.Src,\n Title: ImsizeAttr.Title,\n Width: ImsizeAttr.Width,\n Height: ImsizeAttr.Height,\n Loading: 'loading',\n} as const;\n"]}
1
+ {"version":3,"file":"const.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/const.ts"],"names":[],"mappings":";;;AAAA,8EAA2E;AAE9D,QAAA,WAAW,GAAG;IACvB,GAAG,EAAE,qBAAU,CAAC,GAAG;IACnB,GAAG,EAAE,qBAAU,CAAC,GAAG;IACnB,KAAK,EAAE,qBAAU,CAAC,KAAK;IACvB,KAAK,EAAE,qBAAU,CAAC,KAAK;IACvB,MAAM,EAAE,qBAAU,CAAC,MAAM;IACzB,OAAO,EAAE,SAAS;CACZ,CAAC","sourcesContent":["import {ImsizeAttr} from '@diplodoc/transform/lib/plugins/imsize/const.js';\n\nexport const ImgSizeAttr = {\n Alt: ImsizeAttr.Alt,\n Src: ImsizeAttr.Src,\n Title: ImsizeAttr.Title,\n Width: ImsizeAttr.Width,\n Height: ImsizeAttr.Height,\n Loading: 'loading',\n} as const;\n"]}
@@ -2,15 +2,15 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ImgSizeSpecs = exports.ImgSizeAttr = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log"));
6
- const imsize_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/imsize"));
5
+ const log_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log.js"));
6
+ const index_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/imsize/index.js"));
7
7
  const is_number_1 = tslib_1.__importDefault(require("is-number"));
8
8
  const const_1 = require("../../../markdown/Image/const.js");
9
9
  const const_2 = require("./const.js");
10
10
  Object.defineProperty(exports, "ImgSizeAttr", { enumerable: true, get: function () { return const_2.ImgSizeAttr; } });
11
11
  const ImgSizeSpecs = (builder, opts) => {
12
12
  const placeholderContent = builder.context.get('placeholder')?.imgSize;
13
- builder.configureMd((md) => md.use(imsize_1.default, { log: log_1.default, enableInlineStyling: true }));
13
+ builder.configureMd((md) => md.use(index_js_1.default, { log: log_js_1.default, enableInlineStyling: true }));
14
14
  builder.addNode(const_1.imageNodeName, () => ({
15
15
  spec: {
16
16
  inline: true,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import log from '@diplodoc/transform/lib/log';\nimport imsize from '@diplodoc/transform/lib/plugins/imsize';\nimport isNumber from 'is-number';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {imageNodeName} from '../../../markdown/Image/const';\n\nimport {ImgSizeAttr} from './const';\n\ntype ImsizeTypedAttributes = {\n [ImgSizeAttr.Src]: string;\n [ImgSizeAttr.Title]: string | null;\n [ImgSizeAttr.Alt]: string | null;\n [ImgSizeAttr.Width]: string | null;\n [ImgSizeAttr.Height]: string | null;\n [ImgSizeAttr.Loading]: string | null;\n};\n\nexport {ImgSizeAttr};\n\nexport type ImgSizeSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n placeholder?: NodeSpec['placeholder'];\n};\n\nexport const ImgSizeSpecs: ExtensionAuto<ImgSizeSpecsOptions> = (builder, opts) => {\n const placeholderContent = builder.context.get('placeholder')?.imgSize;\n\n builder.configureMd((md) => md.use(imsize, {log, enableInlineStyling: true}));\n builder.addNode(imageNodeName, () => ({\n spec: {\n inline: true,\n attrs: {\n [ImgSizeAttr.Src]: {},\n [ImgSizeAttr.Alt]: {default: null},\n [ImgSizeAttr.Title]: {default: null},\n [ImgSizeAttr.Height]: {default: null},\n [ImgSizeAttr.Width]: {default: null},\n [ImgSizeAttr.Loading]: {default: null},\n },\n placeholder: placeholderContent ? {content: placeholderContent} : opts.placeholder,\n group: 'inline',\n draggable: true,\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs(dom) {\n const height = (dom as Element).getAttribute(ImgSizeAttr.Height);\n const width = (dom as Element).getAttribute(ImgSizeAttr.Width);\n\n return {\n [ImgSizeAttr.Src]: (dom as Element).getAttribute(ImgSizeAttr.Src),\n [ImgSizeAttr.Alt]: (dom as Element).getAttribute(ImgSizeAttr.Alt),\n [ImgSizeAttr.Title]: (dom as Element).getAttribute(ImgSizeAttr.Title),\n [ImgSizeAttr.Loading]: (dom as Element).getAttribute(\n ImgSizeAttr.Loading,\n ),\n [ImgSizeAttr.Height]: isNumber(height) ? height : null,\n [ImgSizeAttr.Width]: isNumber(width) ? height : null,\n };\n },\n },\n ],\n toDOM(node) {\n return ['img', node.attrs];\n },\n },\n fromMd: {\n tokenSpec: {\n name: imageNodeName,\n type: 'node',\n getAttrs: (tok): ImsizeTypedAttributes => ({\n [ImgSizeAttr.Src]: tok.attrGet(ImgSizeAttr.Src)!,\n [ImgSizeAttr.Title]: tok.attrGet(ImgSizeAttr.Title),\n [ImgSizeAttr.Height]: tok.attrGet(ImgSizeAttr.Height),\n [ImgSizeAttr.Width]: tok.attrGet(ImgSizeAttr.Width),\n [ImgSizeAttr.Loading]: tok.attrGet(ImgSizeAttr.Loading),\n [ImgSizeAttr.Alt]: tok.children?.[0]?.content || null,\n }),\n },\n },\n toMd: (state, node) => {\n const attrs = node.attrs as ImsizeTypedAttributes;\n let result = '![';\n\n if (attrs.alt) {\n result += state.esc(attrs.alt);\n }\n\n result += '](';\n\n if (attrs.src) {\n result += state.esc(attrs.src);\n }\n\n if (attrs.title) {\n result += ` ${state.quote(attrs.title)}`;\n }\n\n result += getSize(attrs);\n result += ')';\n\n state.write(result);\n },\n }));\n};\n\nfunction getSize({width, height}: ImsizeTypedAttributes): string {\n if (width || height) {\n return ` =${width || ''}x${height || ''}`;\n }\n\n return '';\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/ImgSize/ImgSizeSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,oFAAiD;AACjD,uGAAqE;AACrE,kEAAiC;AAIjC,4DAA4D;AAE5D,sCAAoC;AAW5B,4FAXA,mBAAW,OAWA;AASZ,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAEvE,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAM,EAAE,EAAC,GAAG,EAAH,gBAAG,EAAE,mBAAmB,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,OAAO,CAAC,qBAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE;YACF,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE;gBACH,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,EAAE;gBACrB,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC;gBAClC,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC;gBACpC,CAAC,mBAAW,CAAC,MAAM,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC;gBACrC,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC;gBACpC,CAAC,mBAAW,CAAC,OAAO,CAAC,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC;aACzC;YACD,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,kBAAkB,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW;YAClF,KAAK,EAAE,QAAQ;YACf,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE;gBACN;oBACI,GAAG,EAAE,UAAU;oBACf,QAAQ,CAAC,GAAG;wBACR,MAAM,MAAM,GAAI,GAAe,CAAC,YAAY,CAAC,mBAAW,CAAC,MAAM,CAAC,CAAC;wBACjE,MAAM,KAAK,GAAI,GAAe,CAAC,YAAY,CAAC,mBAAW,CAAC,KAAK,CAAC,CAAC;wBAE/D,OAAO;4BACH,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAG,GAAe,CAAC,YAAY,CAAC,mBAAW,CAAC,GAAG,CAAC;4BACjE,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAG,GAAe,CAAC,YAAY,CAAC,mBAAW,CAAC,GAAG,CAAC;4BACjE,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAG,GAAe,CAAC,YAAY,CAAC,mBAAW,CAAC,KAAK,CAAC;4BACrE,CAAC,mBAAW,CAAC,OAAO,CAAC,EAAG,GAAe,CAAC,YAAY,CAChD,mBAAW,CAAC,OAAO,CACtB;4BACD,CAAC,mBAAW,CAAC,MAAM,CAAC,EAAE,IAAA,mBAAQ,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;4BACtD,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;yBACvD,CAAC;oBACN,CAAC;iBACJ;aACJ;YACD,KAAK,CAAC,IAAI;gBACN,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC;SACJ;QACD,MAAM,EAAE;YACJ,SAAS,EAAE;gBACP,IAAI,EAAE,qBAAa;gBACnB,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE,CAAC,GAAG,EAAyB,EAAE,CAAC,CAAC;oBACvC,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAW,CAAC,GAAG,CAAE;oBAChD,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAW,CAAC,KAAK,CAAC;oBACnD,CAAC,mBAAW,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAW,CAAC,MAAM,CAAC;oBACrD,CAAC,mBAAW,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAW,CAAC,KAAK,CAAC;oBACnD,CAAC,mBAAW,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,mBAAW,CAAC,OAAO,CAAC;oBACvD,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,IAAI;iBACxD,CAAC;aACL;SACJ;QACD,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAA8B,CAAC;YAClD,IAAI,MAAM,GAAG,IAAI,CAAC;YAElB,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,MAAM,IAAI,IAAI,CAAC;YAEf,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC;YAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7C,CAAC;YAED,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,MAAM,IAAI,GAAG,CAAC;YAEd,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;KACJ,CAAC,CAAC,CAAC;AACR,CAAC,CAAC;AAhFW,QAAA,YAAY,gBAgFvB;AAEF,SAAS,OAAO,CAAC,EAAC,KAAK,EAAE,MAAM,EAAwB;IACnD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QAClB,OAAO,KAAK,KAAK,IAAI,EAAE,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,CAAC;AACd,CAAC","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport imsize from '@diplodoc/transform/lib/plugins/imsize/index.js';\nimport isNumber from 'is-number';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {imageNodeName} from '../../../markdown/Image/const';\n\nimport {ImgSizeAttr} from './const';\n\ntype ImsizeTypedAttributes = {\n [ImgSizeAttr.Src]: string;\n [ImgSizeAttr.Title]: string | null;\n [ImgSizeAttr.Alt]: string | null;\n [ImgSizeAttr.Width]: string | null;\n [ImgSizeAttr.Height]: string | null;\n [ImgSizeAttr.Loading]: string | null;\n};\n\nexport {ImgSizeAttr};\n\nexport type ImgSizeSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n placeholder?: NodeSpec['placeholder'];\n};\n\nexport const ImgSizeSpecs: ExtensionAuto<ImgSizeSpecsOptions> = (builder, opts) => {\n const placeholderContent = builder.context.get('placeholder')?.imgSize;\n\n builder.configureMd((md) => md.use(imsize, {log, enableInlineStyling: true}));\n builder.addNode(imageNodeName, () => ({\n spec: {\n inline: true,\n attrs: {\n [ImgSizeAttr.Src]: {},\n [ImgSizeAttr.Alt]: {default: null},\n [ImgSizeAttr.Title]: {default: null},\n [ImgSizeAttr.Height]: {default: null},\n [ImgSizeAttr.Width]: {default: null},\n [ImgSizeAttr.Loading]: {default: null},\n },\n placeholder: placeholderContent ? {content: placeholderContent} : opts.placeholder,\n group: 'inline',\n draggable: true,\n parseDOM: [\n {\n tag: 'img[src]',\n getAttrs(dom) {\n const height = (dom as Element).getAttribute(ImgSizeAttr.Height);\n const width = (dom as Element).getAttribute(ImgSizeAttr.Width);\n\n return {\n [ImgSizeAttr.Src]: (dom as Element).getAttribute(ImgSizeAttr.Src),\n [ImgSizeAttr.Alt]: (dom as Element).getAttribute(ImgSizeAttr.Alt),\n [ImgSizeAttr.Title]: (dom as Element).getAttribute(ImgSizeAttr.Title),\n [ImgSizeAttr.Loading]: (dom as Element).getAttribute(\n ImgSizeAttr.Loading,\n ),\n [ImgSizeAttr.Height]: isNumber(height) ? height : null,\n [ImgSizeAttr.Width]: isNumber(width) ? height : null,\n };\n },\n },\n ],\n toDOM(node) {\n return ['img', node.attrs];\n },\n },\n fromMd: {\n tokenSpec: {\n name: imageNodeName,\n type: 'node',\n getAttrs: (tok): ImsizeTypedAttributes => ({\n [ImgSizeAttr.Src]: tok.attrGet(ImgSizeAttr.Src)!,\n [ImgSizeAttr.Title]: tok.attrGet(ImgSizeAttr.Title),\n [ImgSizeAttr.Height]: tok.attrGet(ImgSizeAttr.Height),\n [ImgSizeAttr.Width]: tok.attrGet(ImgSizeAttr.Width),\n [ImgSizeAttr.Loading]: tok.attrGet(ImgSizeAttr.Loading),\n [ImgSizeAttr.Alt]: tok.children?.[0]?.content || null,\n }),\n },\n },\n toMd: (state, node) => {\n const attrs = node.attrs as ImsizeTypedAttributes;\n let result = '![';\n\n if (attrs.alt) {\n result += state.esc(attrs.alt);\n }\n\n result += '](';\n\n if (attrs.src) {\n result += state.esc(attrs.src);\n }\n\n if (attrs.title) {\n result += ` ${state.quote(attrs.title)}`;\n }\n\n result += getSize(attrs);\n result += ')';\n\n state.write(result);\n },\n }));\n};\n\nfunction getSize({width, height}: ImsizeTypedAttributes): string {\n if (width || height) {\n return ` =${width || ''}x${height || ''}`;\n }\n\n return '';\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { Node, NodeType } from 'prosemirror-model';
2
+ import { type Logger2 } from "../../../logger.js";
2
3
  import { type UploadSuccessItem } from "../../../utils/index.js";
3
4
  import { ImgSizeAttr } from "../../specs.js";
4
5
  export declare function isImageNode(node: Node): boolean;
@@ -6,7 +7,7 @@ export type CreateImageNodeOptions = {
6
7
  needDimensions: boolean;
7
8
  enableNewImageSizeCalculation?: boolean;
8
9
  };
9
- export declare const createImageNode: (imgType: NodeType, opts: CreateImageNodeOptions) => ({ result, file }: UploadSuccessItem) => Promise<Node>;
10
+ export declare const createImageNode: (imgType: NodeType, opts: CreateImageNodeOptions, logger: Logger2.ILogger) => ({ result, file }: UploadSuccessItem) => Promise<Node>;
10
11
  export declare function loadImage(imgFile: File): Promise<HTMLImageElement>;
11
12
  export declare function getImageSize(img: HTMLImageElement): {
12
13
  [ImgSizeAttr.Height]?: string;
@@ -13,7 +13,7 @@ const const_1 = require("./const.js");
13
13
  function isImageNode(node) {
14
14
  return node.type.name === markdown_1.imageNodeName;
15
15
  }
16
- const createImageNode = (imgType, opts) => async ({ result, file }) => {
16
+ const createImageNode = (imgType, opts, logger) => async ({ result, file }) => {
17
17
  const attrs = {
18
18
  [specs_1.ImgSizeAttr.Src]: result.url,
19
19
  [specs_1.ImgSizeAttr.Alt]: result.name ?? file.name,
@@ -24,7 +24,8 @@ const createImageNode = (imgType, opts) => async ({ result, file }) => {
24
24
  Object.assign(attrs, sizes);
25
25
  }
26
26
  catch (err) {
27
- logger_1.logger.error(err);
27
+ logger_1.globalLogger.error(err);
28
+ logger.error({ error: err });
28
29
  }
29
30
  }
30
31
  return imgType.create(attrs);
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/ImgSize/utils.ts"],"names":[],"mappings":";;;AASA,kCAEC;AA2BD,8BAUC;AAED,oCAEC;AAED,0CAUC;AA9DD,+CAAuC;AACvC,mDAA2E;AAC3E,sDAA6C;AAC7C,0CAAwC;AAExC,sCAAuC;AAEvC,SAAgB,WAAW,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAa,CAAC;AAC5C,CAAC;AAOM,MAAM,eAAe,GACxB,CAAC,OAAiB,EAAE,IAA4B,EAAE,EAAE,CACpD,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAoB,EAAE,EAAE;IACxC,MAAM,KAAK,GAA2B;QAClC,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;QAC7B,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;KAC9C,CAAC;IACF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CACpC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CACtE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAlBO,QAAA,eAAe,mBAkBtB;AAEC,KAAK,UAAU,SAAS,CAAC,OAAa;IACzC,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YACd,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,YAAY,CAAC,GAAqB;IAC9C,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC;AAClE,CAAC;AAED,SAAgB,eAAe,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IAI7D,MAAM,IAAI,GAAG,IAAA,2BAAmB,EAAC;QAC7B,KAAK;QACL,MAAM;QACN,YAAY,EAAE,sBAAc;KAC/B,CAAC,CAAC;IACH,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;AACpE,CAAC","sourcesContent":["import type {Node, NodeType} from 'prosemirror-model';\n\nimport {logger} from '../../../logger';\nimport {type UploadSuccessItem, getProportionalSize} from '../../../utils';\nimport {imageNodeName} from '../../markdown';\nimport {ImgSizeAttr} from '../../specs';\n\nimport {IMG_MAX_HEIGHT} from './const';\n\nexport function isImageNode(node: Node): boolean {\n return node.type.name === imageNodeName;\n}\n\nexport type CreateImageNodeOptions = {\n needDimensions: boolean;\n enableNewImageSizeCalculation?: boolean;\n};\n\nexport const createImageNode =\n (imgType: NodeType, opts: CreateImageNodeOptions) =>\n async ({result, file}: UploadSuccessItem) => {\n const attrs: Record<string, string> = {\n [ImgSizeAttr.Src]: result.url,\n [ImgSizeAttr.Alt]: result.name ?? file.name,\n };\n if (opts.needDimensions) {\n try {\n const sizes = await loadImage(file).then(\n opts.enableNewImageSizeCalculation ? getImageSizeNew : getImageSize,\n );\n Object.assign(attrs, sizes);\n } catch (err) {\n logger.error(err);\n }\n }\n return imgType.create(attrs);\n };\n\nexport async function loadImage(imgFile: File) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const img = document.createElement('img');\n img.src = URL.createObjectURL(imgFile);\n img.onload = () => {\n URL.revokeObjectURL(img.src);\n resolve(img);\n };\n img.onerror = (_e, _s, _l, _c, error) => reject(error);\n });\n}\n\nexport function getImageSize(img: HTMLImageElement): {[ImgSizeAttr.Height]?: string} {\n return {height: String(Math.min(IMG_MAX_HEIGHT, img.height))};\n}\n\nexport function getImageSizeNew({width, height}: HTMLImageElement): {\n [ImgSizeAttr.Width]?: string;\n [ImgSizeAttr.Height]?: string;\n} {\n const size = getProportionalSize({\n width,\n height,\n imgMaxHeight: IMG_MAX_HEIGHT,\n });\n return {width: String(size.width), height: String(size.height)};\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/ImgSize/utils.ts"],"names":[],"mappings":";;;AASA,kCAEC;AA4BD,8BAUC;AAED,oCAEC;AAED,0CAUC;AA/DD,+CAA2D;AAC3D,mDAA2E;AAC3E,sDAA6C;AAC7C,0CAAwC;AAExC,sCAAuC;AAEvC,SAAgB,WAAW,CAAC,IAAU;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,wBAAa,CAAC;AAC5C,CAAC;AAOM,MAAM,eAAe,GACxB,CAAC,OAAiB,EAAE,IAA4B,EAAE,MAAuB,EAAE,EAAE,CAC7E,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAoB,EAAE,EAAE;IACxC,MAAM,KAAK,GAA2B;QAClC,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;QAC7B,CAAC,mBAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;KAC9C,CAAC;IACF,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CACpC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CACtE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACX,qBAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC,CAAC;AAnBO,QAAA,eAAe,mBAmBtB;AAEC,KAAK,UAAU,SAAS,CAAC,OAAa;IACzC,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACvC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YACd,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,CAAC;QACjB,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAgB,YAAY,CAAC,GAAqB;IAC9C,OAAO,EAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,sBAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC;AAClE,CAAC;AAED,SAAgB,eAAe,CAAC,EAAC,KAAK,EAAE,MAAM,EAAmB;IAI7D,MAAM,IAAI,GAAG,IAAA,2BAAmB,EAAC;QAC7B,KAAK;QACL,MAAM;QACN,YAAY,EAAE,sBAAc;KAC/B,CAAC,CAAC;IACH,OAAO,EAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC;AACpE,CAAC","sourcesContent":["import type {Node, NodeType} from 'prosemirror-model';\n\nimport {type Logger2, globalLogger} from '../../../logger';\nimport {type UploadSuccessItem, getProportionalSize} from '../../../utils';\nimport {imageNodeName} from '../../markdown';\nimport {ImgSizeAttr} from '../../specs';\n\nimport {IMG_MAX_HEIGHT} from './const';\n\nexport function isImageNode(node: Node): boolean {\n return node.type.name === imageNodeName;\n}\n\nexport type CreateImageNodeOptions = {\n needDimensions: boolean;\n enableNewImageSizeCalculation?: boolean;\n};\n\nexport const createImageNode =\n (imgType: NodeType, opts: CreateImageNodeOptions, logger: Logger2.ILogger) =>\n async ({result, file}: UploadSuccessItem) => {\n const attrs: Record<string, string> = {\n [ImgSizeAttr.Src]: result.url,\n [ImgSizeAttr.Alt]: result.name ?? file.name,\n };\n if (opts.needDimensions) {\n try {\n const sizes = await loadImage(file).then(\n opts.enableNewImageSizeCalculation ? getImageSizeNew : getImageSize,\n );\n Object.assign(attrs, sizes);\n } catch (err) {\n globalLogger.error(err);\n logger.error({error: err});\n }\n }\n return imgType.create(attrs);\n };\n\nexport async function loadImage(imgFile: File) {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const img = document.createElement('img');\n img.src = URL.createObjectURL(imgFile);\n img.onload = () => {\n URL.revokeObjectURL(img.src);\n resolve(img);\n };\n img.onerror = (_e, _s, _l, _c, error) => reject(error);\n });\n}\n\nexport function getImageSize(img: HTMLImageElement): {[ImgSizeAttr.Height]?: string} {\n return {height: String(Math.min(IMG_MAX_HEIGHT, img.height))};\n}\n\nexport function getImageSizeNew({width, height}: HTMLImageElement): {\n [ImgSizeAttr.Width]?: string;\n [ImgSizeAttr.Height]?: string;\n} {\n const size = getProportionalSize({\n width,\n height,\n imgMaxHeight: IMG_MAX_HEIGHT,\n });\n return {width: String(size.width), height: String(size.height)};\n}\n"]}
@@ -2,14 +2,14 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MonospaceSpecs = exports.monospaceType = exports.monospaceMarkName = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log"));
6
- const monospace_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/monospace"));
5
+ const log_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log.js"));
6
+ const monospace_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/monospace.js"));
7
7
  const schema_1 = require("../../../../utils/schema.js");
8
8
  exports.monospaceMarkName = 'monospace';
9
9
  exports.monospaceType = (0, schema_1.markTypeFactory)(exports.monospaceMarkName);
10
10
  const MonospaceSpecs = (builder) => {
11
11
  builder
12
- .configureMd((md) => md.use(monospace_1.default, { log: log_1.default }))
12
+ .configureMd((md) => md.use(monospace_js_1.default, { log: log_js_1.default }))
13
13
  .addMark(exports.monospaceMarkName, () => ({
14
14
  spec: {
15
15
  parseDOM: [{ tag: 'samp' }],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Monospace/MonospaceSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,8EAA8C;AAC9C,kGAAkE;AAGlE,wDAAyD;AAE5C,QAAA,iBAAiB,GAAG,WAAW,CAAC;AAChC,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,yBAAiB,CAAC,CAAC;AAEzD,MAAM,cAAc,GAAkB,CAAC,OAAO,EAAE,EAAE;IACrD,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAS,EAAE,EAAC,GAAG,EAAH,aAAG,EAAC,CAAC,CAAC;SAC7C,OAAO,CAAC,yBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE;YACF,QAAQ,EAAE,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC;YACzB,KAAK;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;SACJ;QACD,MAAM,EAAE;YACJ,SAAS,EAAE;gBACP,IAAI,EAAE,yBAAiB;gBACvB,IAAI,EAAE,MAAM;aACf;SACJ;QACD,IAAI,EAAE;YACF,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,IAAI;SACjC;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAvBW,QAAA,cAAc,kBAuBzB","sourcesContent":["import log from '@diplodoc/transform/lib/log';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/monospace';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {markTypeFactory} from '../../../../utils/schema';\n\nexport const monospaceMarkName = 'monospace';\nexport const monospaceType = markTypeFactory(monospaceMarkName);\n\nexport const MonospaceSpecs: ExtensionAuto = (builder) => {\n builder\n .configureMd((md) => md.use(yfmPlugin, {log}))\n .addMark(monospaceMarkName, () => ({\n spec: {\n parseDOM: [{tag: 'samp'}],\n toDOM() {\n return ['samp'];\n },\n },\n fromMd: {\n tokenSpec: {\n name: monospaceMarkName,\n type: 'mark',\n },\n },\n toMd: {\n open: '##',\n close: '##',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Monospace/MonospaceSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,oFAAiD;AACjD,wGAAqE;AAGrE,wDAAyD;AAE5C,QAAA,iBAAiB,GAAG,WAAW,CAAC;AAChC,QAAA,aAAa,GAAG,IAAA,wBAAe,EAAC,yBAAiB,CAAC,CAAC;AAEzD,MAAM,cAAc,GAAkB,CAAC,OAAO,EAAE,EAAE;IACrD,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,sBAAS,EAAE,EAAC,GAAG,EAAH,gBAAG,EAAC,CAAC,CAAC;SAC7C,OAAO,CAAC,yBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC;QAC/B,IAAI,EAAE;YACF,QAAQ,EAAE,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,CAAC;YACzB,KAAK;gBACD,OAAO,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC;SACJ;QACD,MAAM,EAAE;YACJ,SAAS,EAAE;gBACP,IAAI,EAAE,yBAAiB;gBACvB,IAAI,EAAE,MAAM;aACf;SACJ;QACD,IAAI,EAAE;YACF,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI;YACb,wBAAwB,EAAE,IAAI;SACjC;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAvBW,QAAA,cAAc,kBAuBzB","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/monospace.js';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {markTypeFactory} from '../../../../utils/schema';\n\nexport const monospaceMarkName = 'monospace';\nexport const monospaceType = markTypeFactory(monospaceMarkName);\n\nexport const MonospaceSpecs: ExtensionAuto = (builder) => {\n builder\n .configureMd((md) => md.use(yfmPlugin, {log}))\n .addMark(monospaceMarkName, () => ({\n spec: {\n parseDOM: [{tag: 'samp'}],\n toDOM() {\n return ['samp'];\n },\n },\n fromMd: {\n tokenSpec: {\n name: monospaceMarkName,\n type: 'mark',\n },\n },\n toMd: {\n open: '##',\n close: '##',\n mixable: true,\n expelEnclosingWhitespace: true,\n },\n }));\n};\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VideoSpecs = exports.videoType = exports.videoNodeName = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log"));
5
+ const log_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log.js"));
6
6
  const const_1 = require("./const.js");
7
7
  const md_video_1 = require("./md-video.js");
8
8
  const utils_1 = require("./utils.js");
@@ -18,7 +18,7 @@ Object.defineProperty(exports, "videoNodeName", { enumerable: true, get: functio
18
18
  var utils_2 = require("./utils.js");
19
19
  Object.defineProperty(exports, "videoType", { enumerable: true, get: function () { return utils_2.videoType; } });
20
20
  const VideoSpecs = (builder, opts) => {
21
- const options = { ...md_video_1.defaults, ...opts, log: log_1.default };
21
+ const options = { ...md_video_1.defaults, ...opts, log: log_js_1.default };
22
22
  builder.configureMd((md) => md.use(md_video_1.videoPlugin, options));
23
23
  builder.addNode(const_1.videoNodeName, () => ({
24
24
  spec: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import log from '@diplodoc/transform/lib/log';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {VideoAttr, videoNodeName} from './const';\nimport {\n type VideoPluginOptions,\n VideoService,\n type VideoToken,\n defaults,\n videoPlugin,\n} from './md-video';\nimport {createViewStub, serializeNodeToString} from './utils';\n\n// we don't support osf service\nconst availableServices: ReadonlySet<string> = new Set([\n VideoService.YouTube,\n VideoService.Vimeo,\n VideoService.Vine,\n VideoService.Prezi,\n]);\n\nexport {videoNodeName} from './const';\nexport {videoType} from './utils';\n\nexport type VideoSpecsOptions = VideoPluginOptions & {};\n\nexport const VideoSpecs: ExtensionAuto<VideoSpecsOptions> = (builder, opts) => {\n const options = {...defaults, ...opts, log};\n\n builder.configureMd((md) => md.use(videoPlugin, options));\n builder.addNode(videoNodeName, () => ({\n spec: {\n inline: true,\n atom: true,\n group: 'inline',\n attrs: {[VideoAttr.Service]: {}, [VideoAttr.VideoID]: {}},\n parseDOM: [\n {\n tag: `span[${VideoAttr.Service}][${VideoAttr.VideoID}]`,\n getAttrs(dom) {\n const domElem = dom as HTMLElement;\n return {\n [VideoAttr.Service]: domElem.getAttribute(VideoAttr.Service),\n [VideoAttr.VideoID]: domElem.getAttribute(VideoAttr.VideoID),\n };\n },\n },\n {\n tag: `iframe[${VideoAttr.Service}][${VideoAttr.VideoID}]`,\n getAttrs(dom) {\n const domElem = dom as HTMLElement;\n return {\n [VideoAttr.Service]: domElem.getAttribute(VideoAttr.Service),\n [VideoAttr.VideoID]: domElem.getAttribute(VideoAttr.VideoID),\n };\n },\n priority: 100,\n },\n ],\n toDOM(node) {\n const service = node.attrs[VideoAttr.Service];\n const videoId = node.attrs[VideoAttr.VideoID];\n\n if (availableServices.has(service) || !videoId) {\n let src = '';\n if (typeof options.videoUrl === 'function') {\n src = options.videoUrl(service, videoId, options);\n }\n return [\n 'div',\n {\n class: 'embed-responsive embed-responsive-16by9',\n },\n [\n 'iframe',\n {\n class: `embed-responsive-item ${service}-player`,\n type: 'text/html',\n width: String(options[service as VideoService].width),\n height: String(options[service as VideoService].height),\n src: src,\n frameborder: '0',\n webkitallowfullscreen: '',\n mozallowfullscreen: '',\n allowfullscreen: '',\n [VideoAttr.Service]: service,\n [VideoAttr.VideoID]: videoId,\n },\n ],\n ];\n }\n\n return createViewStub(node);\n },\n },\n fromMd: {\n tokenSpec: {\n name: videoNodeName,\n type: 'node',\n getAttrs: (tok) => ({\n [VideoAttr.Service]: (tok as VideoToken).service,\n [VideoAttr.VideoID]: (tok as VideoToken).videoID,\n }),\n },\n },\n toMd: (state, node) => {\n state.write(serializeNodeToString(node));\n },\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/index.ts"],"names":[],"mappings":"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","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {VideoAttr, videoNodeName} from './const';\nimport {\n type VideoPluginOptions,\n VideoService,\n type VideoToken,\n defaults,\n videoPlugin,\n} from './md-video';\nimport {createViewStub, serializeNodeToString} from './utils';\n\n// we don't support osf service\nconst availableServices: ReadonlySet<string> = new Set([\n VideoService.YouTube,\n VideoService.Vimeo,\n VideoService.Vine,\n VideoService.Prezi,\n]);\n\nexport {videoNodeName} from './const';\nexport {videoType} from './utils';\n\nexport type VideoSpecsOptions = VideoPluginOptions & {};\n\nexport const VideoSpecs: ExtensionAuto<VideoSpecsOptions> = (builder, opts) => {\n const options = {...defaults, ...opts, log};\n\n builder.configureMd((md) => md.use(videoPlugin, options));\n builder.addNode(videoNodeName, () => ({\n spec: {\n inline: true,\n atom: true,\n group: 'inline',\n attrs: {[VideoAttr.Service]: {}, [VideoAttr.VideoID]: {}},\n parseDOM: [\n {\n tag: `span[${VideoAttr.Service}][${VideoAttr.VideoID}]`,\n getAttrs(dom) {\n const domElem = dom as HTMLElement;\n return {\n [VideoAttr.Service]: domElem.getAttribute(VideoAttr.Service),\n [VideoAttr.VideoID]: domElem.getAttribute(VideoAttr.VideoID),\n };\n },\n },\n {\n tag: `iframe[${VideoAttr.Service}][${VideoAttr.VideoID}]`,\n getAttrs(dom) {\n const domElem = dom as HTMLElement;\n return {\n [VideoAttr.Service]: domElem.getAttribute(VideoAttr.Service),\n [VideoAttr.VideoID]: domElem.getAttribute(VideoAttr.VideoID),\n };\n },\n priority: 100,\n },\n ],\n toDOM(node) {\n const service = node.attrs[VideoAttr.Service];\n const videoId = node.attrs[VideoAttr.VideoID];\n\n if (availableServices.has(service) || !videoId) {\n let src = '';\n if (typeof options.videoUrl === 'function') {\n src = options.videoUrl(service, videoId, options);\n }\n return [\n 'div',\n {\n class: 'embed-responsive embed-responsive-16by9',\n },\n [\n 'iframe',\n {\n class: `embed-responsive-item ${service}-player`,\n type: 'text/html',\n width: String(options[service as VideoService].width),\n height: String(options[service as VideoService].height),\n src: src,\n frameborder: '0',\n webkitallowfullscreen: '',\n mozallowfullscreen: '',\n allowfullscreen: '',\n [VideoAttr.Service]: service,\n [VideoAttr.VideoID]: videoId,\n },\n ],\n ];\n }\n\n return createViewStub(node);\n },\n },\n fromMd: {\n tokenSpec: {\n name: videoNodeName,\n type: 'node',\n getAttrs: (tok) => ({\n [VideoAttr.Service]: (tok as VideoToken).service,\n [VideoAttr.VideoID]: (tok as VideoToken).videoID,\n }),\n },\n },\n toMd: (state, node) => {\n state.write(serializeNodeToString(node));\n },\n }));\n};\n"]}
@@ -1,4 +1,4 @@
1
- export declare const videoPlugin: import("markdown-it").PluginWithOptions<Partial<import("@diplodoc/transform/lib/plugins/video/types").VideoFullOptions>>;
2
- export { VideoService, defaults } from '@diplodoc/transform/lib/plugins/video/const';
3
- export type { VideoPluginOptions, VideoToken } from '@diplodoc/transform/lib/plugins/video/types';
4
- export { parseVideoUrl } from '@diplodoc/transform/lib/plugins/video/parsers';
1
+ export declare const videoPlugin: import("markdown-it").PluginWithOptions<Partial<import("@diplodoc/transform/lib/plugins/video/types.js").VideoFullOptions>>;
2
+ export { VideoService, defaults } from '@diplodoc/transform/lib/plugins/video/const.js';
3
+ export type { VideoPluginOptions, VideoToken } from '@diplodoc/transform/lib/plugins/video/types.js';
4
+ export { parseVideoUrl } from '@diplodoc/transform/lib/plugins/video/parsers.js';
@@ -2,11 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseVideoUrl = exports.defaults = exports.VideoService = exports.videoPlugin = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const video_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/video"));
6
- exports.videoPlugin = video_1.default;
7
- var const_1 = require("@diplodoc/transform/lib/plugins/video/const");
8
- Object.defineProperty(exports, "VideoService", { enumerable: true, get: function () { return const_1.VideoService; } });
9
- Object.defineProperty(exports, "defaults", { enumerable: true, get: function () { return const_1.defaults; } });
10
- var parsers_1 = require("@diplodoc/transform/lib/plugins/video/parsers");
11
- Object.defineProperty(exports, "parseVideoUrl", { enumerable: true, get: function () { return parsers_1.parseVideoUrl; } });
5
+ const index_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/video/index.js"));
6
+ exports.videoPlugin = index_js_1.default;
7
+ var const_js_1 = require("@diplodoc/transform/lib/plugins/video/const.js");
8
+ Object.defineProperty(exports, "VideoService", { enumerable: true, get: function () { return const_js_1.VideoService; } });
9
+ Object.defineProperty(exports, "defaults", { enumerable: true, get: function () { return const_js_1.defaults; } });
10
+ var parsers_js_1 = require("@diplodoc/transform/lib/plugins/video/parsers.js");
11
+ Object.defineProperty(exports, "parseVideoUrl", { enumerable: true, get: function () { return parsers_js_1.parseVideoUrl; } });
12
12
  //# sourceMappingURL=md-video.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"md-video.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/md-video.ts"],"names":[],"mappings":";;;;AAAA,0FAA0D;AAC7C,QAAA,WAAW,GAAG,eAAK,CAAC;AACjC,qEAAmF;AAA3E,qGAAA,YAAY,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAE9B,yEAA4E;AAApE,wGAAA,aAAa,OAAA","sourcesContent":["import video from '@diplodoc/transform/lib/plugins/video';\nexport const videoPlugin = video;\nexport {VideoService, defaults} from '@diplodoc/transform/lib/plugins/video/const';\nexport type {VideoPluginOptions, VideoToken} from '@diplodoc/transform/lib/plugins/video/types';\nexport {parseVideoUrl} from '@diplodoc/transform/lib/plugins/video/parsers';\n"]}
1
+ {"version":3,"file":"md-video.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/Video/VideoSpecs/md-video.ts"],"names":[],"mappings":";;;;AAAA,sGAAmE;AACtD,QAAA,WAAW,GAAG,kBAAK,CAAC;AACjC,2EAAsF;AAA9E,wGAAA,YAAY,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAE9B,+EAA+E;AAAvE,2GAAA,aAAa,OAAA","sourcesContent":["import video from '@diplodoc/transform/lib/plugins/video/index.js';\nexport const videoPlugin = video;\nexport {VideoService, defaults} from '@diplodoc/transform/lib/plugins/video/const.js';\nexport type {VideoPluginOptions, VideoToken} from '@diplodoc/transform/lib/plugins/video/types.js';\nexport {parseVideoUrl} from '@diplodoc/transform/lib/plugins/video/parsers.js';\n"]}
@@ -1,5 +1,5 @@
1
- import '@diplodoc/transform/dist/js/base';
2
- import '@diplodoc/transform/dist/js/_yfm-only';
1
+ import '@diplodoc/transform/dist/js/base.js';
2
+ import '@diplodoc/transform/dist/js/_yfm-only.js';
3
3
  import type { ExtensionAuto } from "../../../core/index.js";
4
4
  import { type YfmConfigsSpecsOptions } from "./YfmConfigsSpecs/index.js";
5
5
  import '@diplodoc/transform/dist/css/base.css';
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YfmConfigs = void 0;
4
- require("@diplodoc/transform/dist/js/base");
5
- require("@diplodoc/transform/dist/js/_yfm-only"); // eslint-disable-line import/order
4
+ require("@diplodoc/transform/dist/js/base.js");
5
+ require("@diplodoc/transform/dist/js/_yfm-only.js"); // eslint-disable-line import/order
6
6
  const prosemirror_state_1 = require("prosemirror-state");
7
7
  const YfmConfigsSpecs_1 = require("./YfmConfigsSpecs/index.js");
8
8
  require("@diplodoc/transform/dist/css/base.css");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmConfigs/index.ts"],"names":[],"mappings":";;;AAAA,4CAA0C;AAC1C,iDAA+C,CAAC,mCAAmC;AACnF,yDAAyC;AAIzC,gEAA+E;AAE/E,iDAA+C;AAC/C,sDAAoD,CAAC,mCAAmC;AACxF,qBAAoB,CAAC,mCAAmC;AAIjD,MAAM,UAAU,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,iCAAe,EAAE,IAAI,CAAC,CAAC;IAEnC,OAAO,CAAC,SAAS,CACb,GAAG,EAAE,CACD,IAAI,0BAAM,CAAC;QACP,KAAK,EAAE;YACH,UAAU,EAAE;gBACR,KAAK,EAAE,kCAAkC;aAC5C;SACJ;KACJ,CAAC,CACT,CAAC;AACN,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB","sourcesContent":["import '@diplodoc/transform/dist/js/base';\nimport '@diplodoc/transform/dist/js/_yfm-only'; // eslint-disable-line import/order\nimport {Plugin} from 'prosemirror-state';\n\nimport type {ExtensionAuto} from '../../../core';\n\nimport {YfmConfigsSpecs, type YfmConfigsSpecsOptions} from './YfmConfigsSpecs';\n\nimport '@diplodoc/transform/dist/css/base.css';\nimport '@diplodoc/transform/dist/css/_yfm-only.css'; // eslint-disable-line import/order\nimport './yfm.scss'; // eslint-disable-line import/order\n\nexport type YfmConfigsOptions = YfmConfigsSpecsOptions & {};\n\nexport const YfmConfigs: ExtensionAuto<YfmConfigsOptions> = (builder, opts) => {\n // apply md-it-attrs plugin and ignore yfm lint token\n builder.use(YfmConfigsSpecs, opts);\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n attributes: {\n class: 'yfm yfm_no-list-reset yfm-editor',\n },\n },\n }),\n );\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../src","sources":["extensions/yfm/YfmConfigs/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAC7C,oDAAkD,CAAC,mCAAmC;AACtF,yDAAyC;AAIzC,gEAA+E;AAE/E,iDAA+C;AAC/C,sDAAoD,CAAC,mCAAmC;AACxF,qBAAoB,CAAC,mCAAmC;AAIjD,MAAM,UAAU,GAAqC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC1E,qDAAqD;IACrD,OAAO,CAAC,GAAG,CAAC,iCAAe,EAAE,IAAI,CAAC,CAAC;IAEnC,OAAO,CAAC,SAAS,CACb,GAAG,EAAE,CACD,IAAI,0BAAM,CAAC;QACP,KAAK,EAAE;YACH,UAAU,EAAE;gBACR,KAAK,EAAE,kCAAkC;aAC5C;SACJ;KACJ,CAAC,CACT,CAAC;AACN,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB","sourcesContent":["import '@diplodoc/transform/dist/js/base.js';\nimport '@diplodoc/transform/dist/js/_yfm-only.js'; // eslint-disable-line import/order\nimport {Plugin} from 'prosemirror-state';\n\nimport type {ExtensionAuto} from '../../../core';\n\nimport {YfmConfigsSpecs, type YfmConfigsSpecsOptions} from './YfmConfigsSpecs';\n\nimport '@diplodoc/transform/dist/css/base.css';\nimport '@diplodoc/transform/dist/css/_yfm-only.css'; // eslint-disable-line import/order\nimport './yfm.scss'; // eslint-disable-line import/order\n\nexport type YfmConfigsOptions = YfmConfigsSpecsOptions & {};\n\nexport const YfmConfigs: ExtensionAuto<YfmConfigsOptions> = (builder, opts) => {\n // apply md-it-attrs plugin and ignore yfm lint token\n builder.use(YfmConfigsSpecs, opts);\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n attributes: {\n class: 'yfm yfm_no-list-reset yfm-editor',\n },\n },\n }),\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import type { ExtensionAuto } from "../../../../core/index.js";
1
+ import { type ExtensionAuto } from "../../../../core/index.js";
2
2
  import type { FileUploadHandler } from "../../../../utils/index.js";
3
3
  export type YfmFilePasteOptions = {
4
4
  fileUploadHandler: FileUploadHandler;
@@ -4,6 +4,7 @@ exports.YfmFilePaste = void 0;
4
4
  const prosemirror_model_1 = require("prosemirror-model");
5
5
  const prosemirror_state_1 = require("prosemirror-state");
6
6
  const prosemirror_transform_1 = require("prosemirror-transform");
7
+ const core_1 = require("../../../../core/index.js");
7
8
  const lodash_1 = require("../../../../lodash.js");
8
9
  const Clipboard_1 = require("../../../behavior/Clipboard/index.js");
9
10
  const markdown_1 = require("../../../markdown/index.js");
@@ -18,9 +19,15 @@ const YfmFilePaste = (builder, opts) => {
18
19
  props: {
19
20
  handleDOMEvents: {
20
21
  paste(view, e) {
22
+ const logger = (0, core_1.getLoggerFromState)(view.state);
21
23
  const files = getPastedFiles(e.clipboardData);
22
24
  if (files) {
23
25
  e.preventDefault();
26
+ logger.event({
27
+ event: 'paste-files',
28
+ plugin: 'yfm-file-paste',
29
+ domEvent: 'paste',
30
+ });
24
31
  new YfmFilesPasteUploadProcess(view, files, {
25
32
  uploadHandler: opts.fileUploadHandler,
26
33
  needToSetDimensionsForUploadedImages: opts.needToSetDimensionsForUploadedImages,
@@ -40,6 +47,13 @@ const YfmFilePaste = (builder, opts) => {
40
47
  if (dropPos === -1)
41
48
  return false;
42
49
  const posToInsert = (0, prosemirror_transform_1.dropPoint)(view.state.doc, dropPos, createFakeFileSlice(view.state.schema));
50
+ const logger = (0, core_1.getLoggerFromState)(view.state);
51
+ logger.event({
52
+ event: 'drop-files',
53
+ plugin: 'yfm-file-paste',
54
+ domEvent: 'drop',
55
+ runProcess: posToInsert !== null,
56
+ });
43
57
  if (posToInsert !== null) {
44
58
  new YfmFilesPasteUploadProcess(view, files, {
45
59
  pos: posToInsert,
@@ -78,7 +92,7 @@ class YfmFilesPasteUploadProcess extends upload_1.YfmFilesUploadProcessBase {
78
92
  if ((0, markdown_1.imageType)(schema)) {
79
93
  this.createImage = (0, utils_1.createImageNode)((0, markdown_1.imageType)(schema), {
80
94
  needDimensions: opts.needToSetDimensionsForUploadedImages,
81
- });
95
+ }, this.logger);
82
96
  }
83
97
  }
84
98
  getSkeletonInitPos() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmFile/YfmFilePaste/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\nimport type {EditorView} from 'prosemirror-view';\n\nimport type {ExtensionAuto} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler, UploadSuccessItem} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {imageType} from '../../../markdown';\nimport {createImageNode} from '../../ImgSize/utils'; // TODO: remove hard import\nimport {fileType} from '../YfmFileSpecs';\n\nimport {YfmFilesUploadProcessBase} from './upload';\n\nconst {isFilesOnly, isFilesFromHtml, isImageFile} = clipboardUtils;\n\nexport type YfmFilePasteOptions = {\n fileUploadHandler: FileUploadHandler;\n needToSetDimensionsForUploadedImages: boolean;\n};\n\nexport const YfmFilePaste: ExtensionAuto<YfmFilePasteOptions> = (builder, opts) => {\n if (!opts || !isFunction(opts.fileUploadHandler))\n throw new Error('YfmFilePaste extension: fileUploadHandler is not a function');\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const files = getPastedFiles(e.clipboardData);\n if (files) {\n e.preventDefault();\n new YfmFilesPasteUploadProcess(view, files, {\n uploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n opts.needToSetDimensionsForUploadedImages,\n }).run();\n return true;\n }\n return false;\n },\n drop(view, e) {\n // handle drop files from device\n if (view.dragging) return false;\n\n const files = getPastedFiles(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeFileSlice(view.state.schema),\n );\n\n if (posToInsert !== null) {\n new YfmFilesPasteUploadProcess(view, files, {\n pos: posToInsert,\n uploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n opts.needToSetDimensionsForUploadedImages,\n }).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n },\n }),\n builder.Priority.Low,\n );\n};\n\nfunction getPastedFiles(data: DataTransfer | null): File[] | null {\n if (!data) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n return Array.from(data.files);\n}\n\nfunction createFakeFileSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n fileType(schema).create({\n href: 'fake',\n download: 'file',\n }),\n ),\n 0,\n 0,\n );\n}\n\ntype YfmFilesPasteUploadProcessOptions = {\n pos?: number;\n uploadHandler: FileUploadHandler;\n needToSetDimensionsForUploadedImages: boolean;\n};\n\nclass YfmFilesPasteUploadProcess extends YfmFilesUploadProcessBase {\n protected readonly pos?: number;\n protected readonly createImage?;\n\n constructor(view: EditorView, files: readonly File[], opts: YfmFilesPasteUploadProcessOptions) {\n super(view, files, opts.uploadHandler);\n\n this.pos = opts.pos;\n\n const {schema} = this.view.state;\n if (imageType(schema)) {\n this.createImage = createImageNode(imageType(schema), {\n needDimensions: opts.needToSetDimensionsForUploadedImages,\n });\n }\n }\n\n protected getSkeletonInitPos(): number {\n return this.pos ?? this.view.state.tr.selection.from;\n }\n\n protected async createPMNode(res: UploadSuccessItem): Promise<Node> {\n return isImageFile(res.file) && this.createImage\n ? this.createImage(res)\n : this.createFile(res);\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmFile/YfmFilePaste/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {Fragment, type Node, type Schema, Slice} from 'prosemirror-model';\nimport {Plugin} from 'prosemirror-state';\nimport {dropPoint} from 'prosemirror-transform';\nimport type {EditorView} from 'prosemirror-view';\n\nimport {type ExtensionAuto, getLoggerFromState} from '../../../../core';\nimport {isFunction} from '../../../../lodash';\nimport type {FileUploadHandler, UploadSuccessItem} from '../../../../utils';\nimport {clipboardUtils} from '../../../behavior/Clipboard';\nimport {imageType} from '../../../markdown';\nimport {createImageNode} from '../../ImgSize/utils'; // TODO: remove hard import\nimport {fileType} from '../YfmFileSpecs';\n\nimport {YfmFilesUploadProcessBase} from './upload';\n\nconst {isFilesOnly, isFilesFromHtml, isImageFile} = clipboardUtils;\n\nexport type YfmFilePasteOptions = {\n fileUploadHandler: FileUploadHandler;\n needToSetDimensionsForUploadedImages: boolean;\n};\n\nexport const YfmFilePaste: ExtensionAuto<YfmFilePasteOptions> = (builder, opts) => {\n if (!opts || !isFunction(opts.fileUploadHandler))\n throw new Error('YfmFilePaste extension: fileUploadHandler is not a function');\n\n builder.addPlugin(\n () =>\n new Plugin({\n props: {\n handleDOMEvents: {\n paste(view, e) {\n const logger = getLoggerFromState(view.state);\n const files = getPastedFiles(e.clipboardData);\n if (files) {\n e.preventDefault();\n logger.event({\n event: 'paste-files',\n plugin: 'yfm-file-paste',\n domEvent: 'paste',\n });\n new YfmFilesPasteUploadProcess(view, files, {\n uploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n opts.needToSetDimensionsForUploadedImages,\n }).run();\n return true;\n }\n return false;\n },\n drop(view, e) {\n // handle drop files from device\n if (view.dragging) return false;\n\n const files = getPastedFiles(e.dataTransfer);\n if (!files) return false;\n\n const dropPos =\n view.posAtCoords({left: e.clientX, top: e.clientY})?.pos ?? -1;\n if (dropPos === -1) return false;\n\n const posToInsert = dropPoint(\n view.state.doc,\n dropPos,\n createFakeFileSlice(view.state.schema),\n );\n\n const logger = getLoggerFromState(view.state);\n logger.event({\n event: 'drop-files',\n plugin: 'yfm-file-paste',\n domEvent: 'drop',\n runProcess: posToInsert !== null,\n });\n\n if (posToInsert !== null) {\n new YfmFilesPasteUploadProcess(view, files, {\n pos: posToInsert,\n uploadHandler: opts.fileUploadHandler,\n needToSetDimensionsForUploadedImages:\n opts.needToSetDimensionsForUploadedImages,\n }).run();\n }\n\n e.preventDefault();\n return true;\n },\n },\n },\n }),\n builder.Priority.Low,\n );\n};\n\nfunction getPastedFiles(data: DataTransfer | null): File[] | null {\n if (!data) return null;\n if (!isFilesOnly(data) && !isFilesFromHtml(data)) return null;\n return Array.from(data.files);\n}\n\nfunction createFakeFileSlice(schema: Schema): Slice {\n return new Slice(\n Fragment.from(\n fileType(schema).create({\n href: 'fake',\n download: 'file',\n }),\n ),\n 0,\n 0,\n );\n}\n\ntype YfmFilesPasteUploadProcessOptions = {\n pos?: number;\n uploadHandler: FileUploadHandler;\n needToSetDimensionsForUploadedImages: boolean;\n};\n\nclass YfmFilesPasteUploadProcess extends YfmFilesUploadProcessBase {\n protected readonly pos?: number;\n protected readonly createImage?;\n\n constructor(view: EditorView, files: readonly File[], opts: YfmFilesPasteUploadProcessOptions) {\n super(view, files, opts.uploadHandler);\n\n this.pos = opts.pos;\n\n const {schema} = this.view.state;\n if (imageType(schema)) {\n this.createImage = createImageNode(\n imageType(schema),\n {\n needDimensions: opts.needToSetDimensionsForUploadedImages,\n },\n this.logger,\n );\n }\n }\n\n protected getSkeletonInitPos(): number {\n return this.pos ?? this.view.state.tr.selection.from;\n }\n\n protected async createPMNode(res: UploadSuccessItem): Promise<Node> {\n return isImageFile(res.file) && this.createImage\n ? this.createImage(res)\n : this.createFile(res);\n }\n}\n"]}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.YfmNoteSpecs = exports.noteTitleType = exports.noteType = exports.YfmNoteNode = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const log_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log"));
6
- const notes_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/notes"));
5
+ const log_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/log.js"));
6
+ const index_js_1 = tslib_1.__importDefault(require("@diplodoc/transform/lib/plugins/notes/index.js"));
7
7
  const const_1 = require("./const.js");
8
8
  const parser_1 = require("./parser.js");
9
9
  const schema_1 = require("./schema.js");
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "noteTitleType", { enumerable: true, get: functio
16
16
  const YfmNoteSpecs = (builder, opts) => {
17
17
  const schemaSpecs = (0, schema_1.getSchemaSpecs)(opts, builder.context.get('placeholder'));
18
18
  builder
19
- .configureMd((md) => md.use(notes_1.default, { log: log_1.default }))
19
+ .configureMd((md) => md.use(index_js_1.default, { log: log_js_1.default }))
20
20
  .addNode(const_1.NoteNode.Note, () => ({
21
21
  spec: schemaSpecs[const_1.NoteNode.Note],
22
22
  toMd: serializer_1.serializerTokens[const_1.NoteNode.Note],
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,8EAA8C;AAC9C,0FAA8D;AAK9D,sCAAiC;AACjC,wCAAsC;AACtC,wCAAwC;AACxC,gDAA8C;AAE9C,oCAAgD;AAAxC,oGAAA,QAAQ,OAAe;AAC/B,oCAAgD;AAAxC,iGAAA,QAAQ,OAAA;AAAE,sGAAA,aAAa,OAAA;AASxB,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,eAAS,EAAE,EAAC,GAAG,EAAH,aAAG,EAAC,CAAC,CAAC;SAC7C,OAAO,CAAC,gBAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,IAAI,CAAC;QAChC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,IAAI,CAAC;QACrC,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,IAAI,CAAC;SACzC;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,gBAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,SAAS,CAAC;SAC9C;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,gBAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,WAAW,CAAC;QAC5C,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,WAAW,CAAC;SAChD;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AA1BW,QAAA,YAAY,gBA0BvB","sourcesContent":["import log from '@diplodoc/transform/lib/log';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/notes';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {NoteNode} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {NoteNode as YfmNoteNode} from './const';\nexport {noteType, noteTitleType} from './utils';\n\nexport type YfmNoteSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n yfmNoteTitlePlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const YfmNoteSpecs: ExtensionAuto<YfmNoteSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmPlugin, {log}))\n .addNode(NoteNode.Note, () => ({\n spec: schemaSpecs[NoteNode.Note],\n toMd: serializerTokens[NoteNode.Note],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.Note],\n },\n }))\n .addNode(NoteNode.NoteTitle, () => ({\n spec: schemaSpecs[NoteNode.NoteTitle],\n toMd: serializerTokens[NoteNode.NoteTitle],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteTitle],\n },\n }))\n .addNode(NoteNode.NoteContent, () => ({\n spec: schemaSpecs[NoteNode.NoteContent],\n toMd: serializerTokens[NoteNode.NoteContent],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteContent],\n },\n }));\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"../../../../../../src","sources":["extensions/yfm/YfmNote/YfmNoteSpecs/index.ts"],"names":[],"mappings":";;;;AAAA,oFAAiD;AACjD,sGAAuE;AAKvE,sCAAiC;AACjC,wCAAsC;AACtC,wCAAwC;AACxC,gDAA8C;AAE9C,oCAAgD;AAAxC,oGAAA,QAAQ,OAAe;AAC/B,oCAAgD;AAAxC,iGAAA,QAAQ,OAAA;AAAE,sGAAA,aAAa,OAAA;AASxB,MAAM,YAAY,GAAuC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;IAC9E,MAAM,WAAW,GAAG,IAAA,uBAAc,EAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;IAE7E,OAAO;SACF,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,kBAAS,EAAE,EAAC,GAAG,EAAH,gBAAG,EAAC,CAAC,CAAC;SAC7C,OAAO,CAAC,gBAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3B,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,IAAI,CAAC;QAChC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,IAAI,CAAC;QACrC,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,IAAI,CAAC;SACzC;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,gBAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QAChC,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,SAAS,CAAC;QAC1C,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,SAAS,CAAC;SAC9C;KACJ,CAAC,CAAC;SACF,OAAO,CAAC,gBAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;QAClC,IAAI,EAAE,WAAW,CAAC,gBAAQ,CAAC,WAAW,CAAC;QACvC,IAAI,EAAE,6BAAgB,CAAC,gBAAQ,CAAC,WAAW,CAAC;QAC5C,MAAM,EAAE;YACJ,SAAS,EAAE,qBAAY,CAAC,gBAAQ,CAAC,WAAW,CAAC;SAChD;KACJ,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AA1BW,QAAA,YAAY,gBA0BvB","sourcesContent":["import log from '@diplodoc/transform/lib/log.js';\nimport yfmPlugin from '@diplodoc/transform/lib/plugins/notes/index.js';\nimport type {NodeSpec} from 'prosemirror-model';\n\nimport type {ExtensionAuto} from '../../../../core';\n\nimport {NoteNode} from './const';\nimport {parserTokens} from './parser';\nimport {getSchemaSpecs} from './schema';\nimport {serializerTokens} from './serializer';\n\nexport {NoteNode as YfmNoteNode} from './const';\nexport {noteType, noteTitleType} from './utils';\n\nexport type YfmNoteSpecsOptions = {\n /**\n * @deprecated: use placeholder option in BehaviorPreset instead.\n */\n yfmNoteTitlePlaceholder?: NonNullable<NodeSpec['placeholder']>['content'];\n};\n\nexport const YfmNoteSpecs: ExtensionAuto<YfmNoteSpecsOptions> = (builder, opts) => {\n const schemaSpecs = getSchemaSpecs(opts, builder.context.get('placeholder'));\n\n builder\n .configureMd((md) => md.use(yfmPlugin, {log}))\n .addNode(NoteNode.Note, () => ({\n spec: schemaSpecs[NoteNode.Note],\n toMd: serializerTokens[NoteNode.Note],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.Note],\n },\n }))\n .addNode(NoteNode.NoteTitle, () => ({\n spec: schemaSpecs[NoteNode.NoteTitle],\n toMd: serializerTokens[NoteNode.NoteTitle],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteTitle],\n },\n }))\n .addNode(NoteNode.NoteContent, () => ({\n spec: schemaSpecs[NoteNode.NoteContent],\n toMd: serializerTokens[NoteNode.NoteContent],\n fromMd: {\n tokenSpec: parserTokens[NoteNode.NoteContent],\n },\n }));\n};\n"]}