@atlaskit/editor-plugin-media 0.2.0 → 0.3.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 (328) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/commands/captions.js +59 -0
  3. package/dist/cjs/commands/helpers.js +127 -0
  4. package/dist/cjs/commands/index.js +24 -0
  5. package/dist/cjs/commands/linking.js +181 -0
  6. package/dist/cjs/index.js +8 -1
  7. package/dist/cjs/media-plugin-options.js +5 -0
  8. package/dist/cjs/next-plugin-type.js +5 -0
  9. package/dist/cjs/nodeviews/mediaGroup.js +376 -0
  10. package/dist/cjs/nodeviews/mediaInline.js +288 -0
  11. package/dist/cjs/nodeviews/mediaNodeUpdater.js +739 -0
  12. package/dist/cjs/nodeviews/mediaNodeView/index.js +177 -0
  13. package/dist/cjs/nodeviews/mediaNodeView/media.js +242 -0
  14. package/dist/cjs/nodeviews/mediaSingle.js +629 -0
  15. package/dist/cjs/nodeviews/messages.js +14 -0
  16. package/dist/cjs/nodeviews/styles.js +46 -0
  17. package/dist/cjs/nodeviews/types.js +5 -0
  18. package/dist/cjs/picker-facade.js +192 -0
  19. package/dist/cjs/plugin.js +293 -0
  20. package/dist/cjs/pm-plugins/alt-text/actions.js +5 -0
  21. package/dist/cjs/pm-plugins/alt-text/commands.js +59 -0
  22. package/dist/cjs/pm-plugins/alt-text/index.js +36 -0
  23. package/dist/cjs/pm-plugins/alt-text/keymap.js +15 -0
  24. package/dist/cjs/pm-plugins/alt-text/messages.js +44 -0
  25. package/dist/cjs/pm-plugins/alt-text/reducer.js +32 -0
  26. package/dist/cjs/pm-plugins/alt-text/types.js +5 -0
  27. package/dist/cjs/pm-plugins/alt-text/ui/AltTextEdit.js +209 -0
  28. package/dist/cjs/pm-plugins/keymap-media-single.js +163 -0
  29. package/dist/cjs/pm-plugins/keymap.js +88 -0
  30. package/dist/cjs/pm-plugins/linking/actions.js +13 -0
  31. package/dist/cjs/pm-plugins/linking/index.js +65 -0
  32. package/dist/cjs/pm-plugins/linking/keymap.js +14 -0
  33. package/dist/cjs/pm-plugins/linking/reducer.js +43 -0
  34. package/dist/cjs/pm-plugins/linking/types.js +5 -0
  35. package/dist/cjs/pm-plugins/main.js +813 -0
  36. package/dist/cjs/pm-plugins/media-editor-plugin-factory.js +8 -0
  37. package/dist/cjs/pm-plugins/mediaTaskManager.js +101 -0
  38. package/dist/cjs/pm-plugins/plugin-key.js +8 -0
  39. package/dist/cjs/pm-plugins/types.js +5 -0
  40. package/dist/cjs/toolbar/alt-text.js +80 -0
  41. package/dist/cjs/toolbar/commands.js +236 -0
  42. package/dist/cjs/toolbar/filePreviewItem.js +66 -0
  43. package/dist/cjs/toolbar/imageBorder.js +20 -0
  44. package/dist/cjs/toolbar/index.js +523 -0
  45. package/dist/cjs/toolbar/linking-toolbar-appearance.js +100 -0
  46. package/dist/cjs/toolbar/linking.js +96 -0
  47. package/dist/cjs/toolbar/utils.js +110 -0
  48. package/dist/cjs/ui/CaptionPlaceholder/index.js +27 -0
  49. package/dist/cjs/ui/CaptionPlaceholder/messages.js +14 -0
  50. package/dist/cjs/ui/ImageBorder/index.js +226 -0
  51. package/dist/cjs/ui/ImageBorder/messages.js +49 -0
  52. package/dist/cjs/ui/ImageBorder/styles.js +52 -0
  53. package/dist/cjs/ui/Media/DropPlaceholder.js +38 -0
  54. package/dist/cjs/ui/Media/drop-placeholder-messages.js +14 -0
  55. package/dist/cjs/ui/MediaLinkingToolbar.js +196 -0
  56. package/dist/cjs/ui/MediaPicker/BrowserWrapper.js +40 -0
  57. package/dist/cjs/ui/MediaPicker/ClipboardWrapper.js +39 -0
  58. package/dist/cjs/ui/MediaPicker/DropzoneWrapper.js +51 -0
  59. package/dist/cjs/ui/MediaPicker/PickerFacadeProvider.js +151 -0
  60. package/dist/cjs/ui/MediaPicker/index.js +103 -0
  61. package/dist/cjs/ui/PixelEntry/constants.js +7 -0
  62. package/dist/cjs/ui/PixelEntry/index.js +185 -0
  63. package/dist/cjs/ui/PixelEntry/messages.js +54 -0
  64. package/dist/cjs/ui/PixelEntry/styles.js +19 -0
  65. package/dist/cjs/ui/PixelEntry/types.js +5 -0
  66. package/dist/cjs/ui/ResizableMediaSingle/ResizableMediaMigrationNotification.js +16 -0
  67. package/dist/cjs/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +541 -0
  68. package/dist/cjs/ui/ResizableMediaSingle/index.js +422 -0
  69. package/dist/cjs/ui/ResizableMediaSingle/styled.js +14 -0
  70. package/dist/cjs/ui/ResizableMediaSingle/styles.js +17 -0
  71. package/dist/cjs/ui/ResizableMediaSingle/types.js +5 -0
  72. package/dist/cjs/ui/ToolbarMedia/index.js +42 -0
  73. package/dist/cjs/ui/ToolbarMedia/toolbar-media-messages.js +14 -0
  74. package/dist/cjs/ui/media-linking-toolbar-messages.js +14 -0
  75. package/dist/cjs/utils/analytics.js +53 -0
  76. package/dist/cjs/utils/check-media-type.js +56 -0
  77. package/dist/cjs/utils/current-media-node.js +41 -0
  78. package/dist/cjs/utils/is-image.js +9 -0
  79. package/dist/cjs/utils/media-common.js +181 -0
  80. package/dist/cjs/utils/media-files.js +297 -0
  81. package/dist/cjs/utils/media-single.js +181 -0
  82. package/dist/es2019/commands/captions.js +47 -0
  83. package/dist/es2019/commands/helpers.js +113 -0
  84. package/dist/es2019/commands/index.js +1 -0
  85. package/dist/es2019/commands/linking.js +169 -0
  86. package/dist/es2019/index.js +1 -1
  87. package/dist/es2019/media-plugin-options.js +1 -0
  88. package/dist/es2019/next-plugin-type.js +1 -0
  89. package/dist/es2019/nodeviews/mediaGroup.js +314 -0
  90. package/dist/es2019/nodeviews/mediaInline.js +201 -0
  91. package/dist/es2019/nodeviews/mediaNodeUpdater.js +384 -0
  92. package/dist/es2019/nodeviews/mediaNodeView/index.js +149 -0
  93. package/dist/es2019/nodeviews/mediaNodeView/media.js +182 -0
  94. package/dist/es2019/nodeviews/mediaSingle.js +511 -0
  95. package/dist/es2019/nodeviews/messages.js +8 -0
  96. package/dist/es2019/nodeviews/styles.js +46 -0
  97. package/dist/es2019/nodeviews/types.js +1 -0
  98. package/dist/es2019/picker-facade.js +146 -0
  99. package/dist/es2019/plugin.js +284 -0
  100. package/dist/es2019/pm-plugins/alt-text/actions.js +1 -0
  101. package/dist/es2019/pm-plugins/alt-text/commands.js +42 -0
  102. package/dist/es2019/pm-plugins/alt-text/index.js +33 -0
  103. package/dist/es2019/pm-plugins/alt-text/keymap.js +9 -0
  104. package/dist/es2019/pm-plugins/alt-text/messages.js +38 -0
  105. package/dist/es2019/pm-plugins/alt-text/reducer.js +26 -0
  106. package/dist/es2019/pm-plugins/alt-text/types.js +1 -0
  107. package/dist/es2019/pm-plugins/alt-text/ui/AltTextEdit.js +228 -0
  108. package/dist/es2019/pm-plugins/keymap-media-single.js +172 -0
  109. package/dist/es2019/pm-plugins/keymap.js +84 -0
  110. package/dist/es2019/pm-plugins/linking/actions.js +7 -0
  111. package/dist/es2019/pm-plugins/linking/index.js +56 -0
  112. package/dist/es2019/pm-plugins/linking/keymap.js +8 -0
  113. package/dist/es2019/pm-plugins/linking/reducer.js +37 -0
  114. package/dist/es2019/pm-plugins/linking/types.js +1 -0
  115. package/dist/es2019/pm-plugins/main.js +695 -0
  116. package/dist/es2019/pm-plugins/media-editor-plugin-factory.js +2 -0
  117. package/dist/es2019/pm-plugins/mediaTaskManager.js +64 -0
  118. package/dist/es2019/pm-plugins/plugin-key.js +2 -0
  119. package/dist/es2019/pm-plugins/types.js +1 -0
  120. package/dist/es2019/toolbar/alt-text.js +72 -0
  121. package/dist/es2019/toolbar/commands.js +212 -0
  122. package/dist/es2019/toolbar/filePreviewItem.js +54 -0
  123. package/dist/es2019/toolbar/imageBorder.js +15 -0
  124. package/dist/es2019/toolbar/index.js +538 -0
  125. package/dist/es2019/toolbar/linking-toolbar-appearance.js +90 -0
  126. package/dist/es2019/toolbar/linking.js +98 -0
  127. package/dist/es2019/toolbar/utils.js +86 -0
  128. package/dist/es2019/ui/CaptionPlaceholder/index.js +25 -0
  129. package/dist/es2019/ui/CaptionPlaceholder/messages.js +8 -0
  130. package/dist/es2019/ui/ImageBorder/index.js +213 -0
  131. package/dist/es2019/ui/ImageBorder/messages.js +43 -0
  132. package/dist/es2019/ui/ImageBorder/styles.js +126 -0
  133. package/dist/es2019/ui/Media/DropPlaceholder.js +47 -0
  134. package/dist/es2019/ui/Media/drop-placeholder-messages.js +8 -0
  135. package/dist/es2019/ui/MediaLinkingToolbar.js +190 -0
  136. package/dist/es2019/ui/MediaPicker/BrowserWrapper.js +31 -0
  137. package/dist/es2019/ui/MediaPicker/ClipboardWrapper.js +32 -0
  138. package/dist/es2019/ui/MediaPicker/DropzoneWrapper.js +42 -0
  139. package/dist/es2019/ui/MediaPicker/PickerFacadeProvider.js +85 -0
  140. package/dist/es2019/ui/MediaPicker/index.js +82 -0
  141. package/dist/es2019/ui/PixelEntry/constants.js +1 -0
  142. package/dist/es2019/ui/PixelEntry/index.js +170 -0
  143. package/dist/es2019/ui/PixelEntry/messages.js +48 -0
  144. package/dist/es2019/ui/PixelEntry/styles.js +51 -0
  145. package/dist/es2019/ui/PixelEntry/types.js +1 -0
  146. package/dist/es2019/ui/ResizableMediaSingle/ResizableMediaMigrationNotification.js +9 -0
  147. package/dist/es2019/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +454 -0
  148. package/dist/es2019/ui/ResizableMediaSingle/index.js +344 -0
  149. package/dist/es2019/ui/ResizableMediaSingle/styled.js +9 -0
  150. package/dist/es2019/ui/ResizableMediaSingle/styles.js +14 -0
  151. package/dist/es2019/ui/ResizableMediaSingle/types.js +1 -0
  152. package/dist/es2019/ui/ToolbarMedia/index.js +37 -0
  153. package/dist/es2019/ui/ToolbarMedia/toolbar-media-messages.js +8 -0
  154. package/dist/es2019/ui/media-linking-toolbar-messages.js +8 -0
  155. package/dist/es2019/utils/analytics.js +51 -0
  156. package/dist/es2019/utils/check-media-type.js +19 -0
  157. package/dist/es2019/utils/current-media-node.js +35 -0
  158. package/dist/es2019/utils/is-image.js +3 -0
  159. package/dist/es2019/utils/media-common.js +189 -0
  160. package/dist/es2019/utils/media-files.js +321 -0
  161. package/dist/es2019/utils/media-single.js +176 -0
  162. package/dist/esm/commands/captions.js +53 -0
  163. package/dist/esm/commands/helpers.js +120 -0
  164. package/dist/esm/commands/index.js +1 -0
  165. package/dist/esm/commands/linking.js +174 -0
  166. package/dist/esm/index.js +1 -1
  167. package/dist/esm/media-plugin-options.js +1 -0
  168. package/dist/esm/next-plugin-type.js +1 -0
  169. package/dist/esm/nodeviews/mediaGroup.js +369 -0
  170. package/dist/esm/nodeviews/mediaInline.js +278 -0
  171. package/dist/esm/nodeviews/mediaNodeUpdater.js +732 -0
  172. package/dist/esm/nodeviews/mediaNodeView/index.js +170 -0
  173. package/dist/esm/nodeviews/mediaNodeView/media.js +233 -0
  174. package/dist/esm/nodeviews/mediaSingle.js +622 -0
  175. package/dist/esm/nodeviews/messages.js +8 -0
  176. package/dist/esm/nodeviews/styles.js +39 -0
  177. package/dist/esm/nodeviews/types.js +1 -0
  178. package/dist/esm/picker-facade.js +186 -0
  179. package/dist/esm/plugin.js +282 -0
  180. package/dist/esm/pm-plugins/alt-text/actions.js +1 -0
  181. package/dist/esm/pm-plugins/alt-text/commands.js +52 -0
  182. package/dist/esm/pm-plugins/alt-text/index.js +31 -0
  183. package/dist/esm/pm-plugins/alt-text/keymap.js +9 -0
  184. package/dist/esm/pm-plugins/alt-text/messages.js +38 -0
  185. package/dist/esm/pm-plugins/alt-text/reducer.js +25 -0
  186. package/dist/esm/pm-plugins/alt-text/types.js +1 -0
  187. package/dist/esm/pm-plugins/alt-text/ui/AltTextEdit.js +206 -0
  188. package/dist/esm/pm-plugins/keymap-media-single.js +158 -0
  189. package/dist/esm/pm-plugins/keymap.js +81 -0
  190. package/dist/esm/pm-plugins/linking/actions.js +7 -0
  191. package/dist/esm/pm-plugins/linking/index.js +59 -0
  192. package/dist/esm/pm-plugins/linking/keymap.js +8 -0
  193. package/dist/esm/pm-plugins/linking/reducer.js +36 -0
  194. package/dist/esm/pm-plugins/linking/types.js +1 -0
  195. package/dist/esm/pm-plugins/main.js +798 -0
  196. package/dist/esm/pm-plugins/media-editor-plugin-factory.js +2 -0
  197. package/dist/esm/pm-plugins/mediaTaskManager.js +94 -0
  198. package/dist/esm/pm-plugins/plugin-key.js +2 -0
  199. package/dist/esm/pm-plugins/types.js +1 -0
  200. package/dist/esm/toolbar/alt-text.js +70 -0
  201. package/dist/esm/toolbar/commands.js +229 -0
  202. package/dist/esm/toolbar/filePreviewItem.js +56 -0
  203. package/dist/esm/toolbar/imageBorder.js +14 -0
  204. package/dist/esm/toolbar/index.js +513 -0
  205. package/dist/esm/toolbar/linking-toolbar-appearance.js +91 -0
  206. package/dist/esm/toolbar/linking.js +88 -0
  207. package/dist/esm/toolbar/utils.js +103 -0
  208. package/dist/esm/ui/CaptionPlaceholder/index.js +20 -0
  209. package/dist/esm/ui/CaptionPlaceholder/messages.js +8 -0
  210. package/dist/esm/ui/ImageBorder/index.js +218 -0
  211. package/dist/esm/ui/ImageBorder/messages.js +43 -0
  212. package/dist/esm/ui/ImageBorder/styles.js +42 -0
  213. package/dist/esm/ui/Media/DropPlaceholder.js +31 -0
  214. package/dist/esm/ui/Media/drop-placeholder-messages.js +8 -0
  215. package/dist/esm/ui/MediaLinkingToolbar.js +188 -0
  216. package/dist/esm/ui/MediaPicker/BrowserWrapper.js +33 -0
  217. package/dist/esm/ui/MediaPicker/ClipboardWrapper.js +32 -0
  218. package/dist/esm/ui/MediaPicker/DropzoneWrapper.js +44 -0
  219. package/dist/esm/ui/MediaPicker/PickerFacadeProvider.js +145 -0
  220. package/dist/esm/ui/MediaPicker/index.js +96 -0
  221. package/dist/esm/ui/PixelEntry/constants.js +1 -0
  222. package/dist/esm/ui/PixelEntry/index.js +174 -0
  223. package/dist/esm/ui/PixelEntry/messages.js +48 -0
  224. package/dist/esm/ui/PixelEntry/styles.js +12 -0
  225. package/dist/esm/ui/PixelEntry/types.js +1 -0
  226. package/dist/esm/ui/ResizableMediaSingle/ResizableMediaMigrationNotification.js +9 -0
  227. package/dist/esm/ui/ResizableMediaSingle/ResizableMediaSingleNext.js +535 -0
  228. package/dist/esm/ui/ResizableMediaSingle/index.js +417 -0
  229. package/dist/esm/ui/ResizableMediaSingle/styled.js +7 -0
  230. package/dist/esm/ui/ResizableMediaSingle/styles.js +7 -0
  231. package/dist/esm/ui/ResizableMediaSingle/types.js +1 -0
  232. package/dist/esm/ui/ToolbarMedia/index.js +35 -0
  233. package/dist/esm/ui/ToolbarMedia/toolbar-media-messages.js +8 -0
  234. package/dist/esm/ui/media-linking-toolbar-messages.js +8 -0
  235. package/dist/esm/utils/analytics.js +47 -0
  236. package/dist/esm/utils/check-media-type.js +49 -0
  237. package/dist/esm/utils/current-media-node.js +35 -0
  238. package/dist/esm/utils/is-image.js +3 -0
  239. package/dist/esm/utils/media-common.js +175 -0
  240. package/dist/esm/utils/media-files.js +291 -0
  241. package/dist/esm/utils/media-single.js +172 -0
  242. package/dist/types/commands/captions.d.ts +5 -0
  243. package/dist/types/commands/helpers.d.ts +15 -0
  244. package/dist/types/commands/index.d.ts +1 -0
  245. package/dist/types/commands/linking.d.ts +9 -0
  246. package/dist/types/index.d.ts +2 -1
  247. package/dist/types/media-plugin-options.d.ts +17 -0
  248. package/dist/types/next-plugin-type.d.ts +33 -0
  249. package/dist/types/nodeviews/__mocks__/mediaNodeUpdater.d.ts +24 -0
  250. package/dist/types/nodeviews/mediaGroup.d.ts +33 -0
  251. package/dist/types/nodeviews/mediaInline.d.ts +50 -0
  252. package/dist/types/nodeviews/mediaNodeUpdater.d.ts +45 -0
  253. package/dist/types/nodeviews/mediaNodeView/index.d.ts +28 -0
  254. package/dist/types/nodeviews/mediaNodeView/media.d.ts +44 -0
  255. package/dist/types/nodeviews/mediaSingle.d.ts +62 -0
  256. package/dist/types/nodeviews/messages.d.ts +7 -0
  257. package/dist/types/nodeviews/styles.d.ts +16 -0
  258. package/dist/types/nodeviews/types.d.ts +42 -0
  259. package/dist/types/picker-facade.d.ts +44 -0
  260. package/dist/types/plugin.d.ts +7 -0
  261. package/dist/types/pm-plugins/alt-text/actions.d.ts +10 -0
  262. package/dist/types/pm-plugins/alt-text/commands.d.ts +4 -0
  263. package/dist/types/pm-plugins/alt-text/index.d.ts +7 -0
  264. package/dist/types/pm-plugins/alt-text/keymap.d.ts +4 -0
  265. package/dist/types/pm-plugins/alt-text/messages.d.ts +37 -0
  266. package/dist/types/pm-plugins/alt-text/reducer.d.ts +4 -0
  267. package/dist/types/pm-plugins/alt-text/types.d.ts +3 -0
  268. package/dist/types/pm-plugins/alt-text/ui/AltTextEdit.d.ts +41 -0
  269. package/dist/types/pm-plugins/keymap-media-single.d.ts +3 -0
  270. package/dist/types/pm-plugins/keymap.d.ts +6 -0
  271. package/dist/types/pm-plugins/linking/actions.d.ts +20 -0
  272. package/dist/types/pm-plugins/linking/index.d.ts +10 -0
  273. package/dist/types/pm-plugins/linking/keymap.d.ts +3 -0
  274. package/dist/types/pm-plugins/linking/reducer.d.ts +4 -0
  275. package/dist/types/pm-plugins/linking/types.d.ts +12 -0
  276. package/dist/types/pm-plugins/main.d.ts +120 -0
  277. package/dist/types/pm-plugins/media-editor-plugin-factory.d.ts +3 -0
  278. package/dist/types/pm-plugins/mediaTaskManager.d.ts +9 -0
  279. package/dist/types/pm-plugins/plugin-key.d.ts +3 -0
  280. package/dist/types/pm-plugins/types.d.ts +65 -0
  281. package/dist/types/toolbar/alt-text.d.ts +13 -0
  282. package/dist/types/toolbar/commands.d.ts +12 -0
  283. package/dist/types/toolbar/filePreviewItem.d.ts +9 -0
  284. package/dist/types/toolbar/imageBorder.d.ts +2 -0
  285. package/dist/types/toolbar/index.d.ts +6 -0
  286. package/dist/types/toolbar/linking-toolbar-appearance.d.ts +14 -0
  287. package/dist/types/toolbar/linking.d.ts +10 -0
  288. package/dist/types/toolbar/utils.d.ts +11 -0
  289. package/dist/types/types.d.ts +2 -1
  290. package/dist/types/ui/CaptionPlaceholder/index.d.ts +6 -0
  291. package/dist/types/ui/CaptionPlaceholder/messages.d.ts +7 -0
  292. package/dist/types/ui/ImageBorder/index.d.ts +11 -0
  293. package/dist/types/ui/ImageBorder/messages.d.ts +42 -0
  294. package/dist/types/ui/ImageBorder/styles.d.ts +15 -0
  295. package/dist/types/ui/Media/DropPlaceholder.d.ts +8 -0
  296. package/dist/types/ui/Media/drop-placeholder-messages.d.ts +7 -0
  297. package/dist/types/ui/MediaLinkingToolbar.d.ts +35 -0
  298. package/dist/types/ui/MediaPicker/BrowserWrapper.d.ts +11 -0
  299. package/dist/types/ui/MediaPicker/ClipboardWrapper.d.ts +10 -0
  300. package/dist/types/ui/MediaPicker/DropzoneWrapper.d.ts +13 -0
  301. package/dist/types/ui/MediaPicker/PickerFacadeProvider.d.ts +28 -0
  302. package/dist/types/ui/MediaPicker/index.d.ts +23 -0
  303. package/dist/types/ui/PixelEntry/constants.d.ts +1 -0
  304. package/dist/types/ui/PixelEntry/index.d.ts +8 -0
  305. package/dist/types/ui/PixelEntry/messages.d.ts +47 -0
  306. package/dist/types/ui/PixelEntry/styles.d.ts +8 -0
  307. package/dist/types/ui/PixelEntry/types.d.ts +58 -0
  308. package/dist/types/ui/ResizableMediaSingle/ResizableMediaMigrationNotification.d.ts +3 -0
  309. package/dist/types/ui/ResizableMediaSingle/ResizableMediaSingleNext.d.ts +59 -0
  310. package/dist/types/ui/ResizableMediaSingle/index.d.ts +45 -0
  311. package/dist/types/ui/ResizableMediaSingle/styled.d.ts +2 -0
  312. package/dist/types/ui/ResizableMediaSingle/styles.d.ts +1 -0
  313. package/dist/types/ui/ResizableMediaSingle/types.d.ts +27 -0
  314. package/dist/types/ui/ToolbarMedia/index.d.ts +13 -0
  315. package/dist/types/ui/ToolbarMedia/toolbar-media-messages.d.ts +7 -0
  316. package/dist/types/ui/media-linking-toolbar-messages.d.ts +7 -0
  317. package/dist/types/utils/analytics.d.ts +3 -0
  318. package/dist/types/utils/check-media-type.d.ts +4 -0
  319. package/dist/types/utils/current-media-node.d.ts +9 -0
  320. package/dist/types/utils/is-image.d.ts +1 -0
  321. package/dist/types/utils/media-common.d.ts +20 -0
  322. package/dist/types/utils/media-files.d.ts +30 -0
  323. package/dist/types/utils/media-single.d.ts +20 -0
  324. package/package.json +32 -20
  325. package/report.api.md +430 -0
  326. package/dist/types-ts4.5/index.d.ts +0 -1
  327. package/dist/types-ts4.5/types.d.ts +0 -118
  328. package/tmp/api-report-tmp.d.ts +0 -9
@@ -0,0 +1,369 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/createClass";
4
+ import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
5
+ import _inherits from "@babel/runtime/helpers/inherits";
6
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
7
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
8
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
9
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
10
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
11
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
13
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
14
+ import React from 'react';
15
+ import { injectIntl } from 'react-intl-next';
16
+ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
17
+ import { WithProviders } from '@atlaskit/editor-common/provider-factory';
18
+ import ReactNodeView from '@atlaskit/editor-common/react-node-view';
19
+ import { isNodeSelectedOrInRange, SelectedState, setNodeSelection } from '@atlaskit/editor-common/utils';
20
+ import EditorCloseIcon from '@atlaskit/icon/glyph/editor/close';
21
+ import { getMediaFeatureFlag } from '@atlaskit/media-common';
22
+ import { Filmstrip } from '@atlaskit/media-filmstrip';
23
+ import { stateKey as mediaStateKey } from '../pm-plugins/plugin-key';
24
+ import { MediaNodeUpdater } from './mediaNodeUpdater';
25
+ import { messages } from './messages';
26
+ var isMediaGroupSelectedFromProps = function isMediaGroupSelectedFromProps(props) {
27
+ /**
28
+ * ED-19831
29
+ * There is a getPos issue coming from this code. We need to apply this workaround for now and apply a patch
30
+ * directly to confluence since this bug is now in production.
31
+ */
32
+ var pos;
33
+ try {
34
+ pos = props.getPos ? props.getPos() : undefined;
35
+ } catch (e) {
36
+ pos = undefined;
37
+ }
38
+ if (typeof pos !== 'number') {
39
+ return false;
40
+ }
41
+ return isNodeSelectedOrInRange(props.anchorPos, props.headPos, pos, props.node.nodeSize);
42
+ };
43
+ var hasSelectionChanged = function hasSelectionChanged(oldProps, newProps) {
44
+ if (isMediaGroupSelectedFromProps(oldProps) !== isMediaGroupSelectedFromProps(newProps)) {
45
+ return true;
46
+ }
47
+ if (isMediaGroupSelectedFromProps(newProps) === SelectedState.selectedInside) {
48
+ return oldProps.anchorPos !== newProps.anchorPos;
49
+ }
50
+ return false;
51
+ };
52
+
53
+ // eslint-disable-next-line @repo/internal/react/no-class-components
54
+ var MediaGroup = /*#__PURE__*/function (_React$Component) {
55
+ _inherits(MediaGroup, _React$Component);
56
+ var _super = _createSuper(MediaGroup);
57
+ function MediaGroup(_props) {
58
+ var _this;
59
+ _classCallCheck(this, MediaGroup);
60
+ _this = _super.call(this, _props);
61
+ _defineProperty(_assertThisInitialized(_this), "state", {
62
+ viewMediaClientConfig: undefined
63
+ });
64
+ _defineProperty(_assertThisInitialized(_this), "updateNodeAttrs", function (props, node, getPos) {
65
+ var view = props.view,
66
+ mediaProvider = props.mediaProvider,
67
+ contextIdentifierProvider = props.contextIdentifierProvider;
68
+ var mediaNodeUpdater = new MediaNodeUpdater({
69
+ view: view,
70
+ mediaProvider: mediaProvider,
71
+ contextIdentifierProvider: contextIdentifierProvider,
72
+ node: node,
73
+ isMediaSingle: false
74
+ });
75
+ mediaNodeUpdater.updateNodeAttrs(getPos);
76
+ });
77
+ _defineProperty(_assertThisInitialized(_this), "setMediaItems", function (props) {
78
+ var _this$mediaPluginStat;
79
+ var updatedAttrs = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
80
+ var node = props.node;
81
+ var oldMediaNodes = _this.mediaNodes;
82
+ _this.mediaNodes = [];
83
+ node.forEach(function (item, childOffset) {
84
+ var getPos = function getPos() {
85
+ var pos = props.getPos();
86
+ if (typeof pos !== 'number') {
87
+ // That may seems weird, but the previous type wasn't match with the real ProseMirror code. And a lot of Media API was built expecting a number
88
+ // Because the original code would return NaN on runtime
89
+ // We are just make it explict now.
90
+ // We may run a deep investagation on Media code to figure out a better fix. But, for now, we want to keep the current behavior.
91
+ // TODO: ED-13910 prosemirror-bump leftovers
92
+ return NaN;
93
+ }
94
+ return pos + childOffset + 1;
95
+ };
96
+ _this.mediaNodes.push(item);
97
+ if (updatedAttrs) {
98
+ _this.updateNodeAttrs(props, item, getPos);
99
+ }
100
+ });
101
+ (_this$mediaPluginStat = _this.mediaPluginState) === null || _this$mediaPluginStat === void 0 || _this$mediaPluginStat.handleMediaGroupUpdate(oldMediaNodes, _this.mediaNodes);
102
+ });
103
+ _defineProperty(_assertThisInitialized(_this), "getIdentifier", function (item) {
104
+ if (item.attrs.type === 'external') {
105
+ return {
106
+ mediaItemType: 'external-image',
107
+ dataURI: item.attrs.url
108
+ };
109
+ }
110
+ return {
111
+ id: item.attrs.id,
112
+ mediaItemType: 'file',
113
+ collectionName: item.attrs.collection
114
+ };
115
+ });
116
+ _defineProperty(_assertThisInitialized(_this), "isNodeSelected", function (nodePos) {
117
+ var selected = isMediaGroupSelectedFromProps(_this.props);
118
+ if (selected === SelectedState.selectedInRange) {
119
+ return true;
120
+ }
121
+ if (selected === SelectedState.selectedInside && _this.props.anchorPos === nodePos) {
122
+ return true;
123
+ }
124
+ return false;
125
+ });
126
+ _defineProperty(_assertThisInitialized(_this), "renderChildNodes", function () {
127
+ var viewMediaClientConfig = _this.state.viewMediaClientConfig;
128
+ var _this$props = _this.props,
129
+ getPos = _this$props.getPos,
130
+ allowLazyLoading = _this$props.allowLazyLoading,
131
+ disabled = _this$props.disabled,
132
+ mediaOptions = _this$props.mediaOptions;
133
+ var items = _this.mediaNodes.map(function (item, idx) {
134
+ // We declared this to get a fresh position every time
135
+ var getNodePos = function getNodePos() {
136
+ var pos = getPos();
137
+ if (typeof pos !== 'number') {
138
+ // That may seems weird, but the previous type wasn't match with the real ProseMirror code. And a lot of Media API was built expecting a number
139
+ // Because the original code would return NaN on runtime
140
+ // We are just make it explict now.
141
+ // We may run a deep investagation on Media code to figure out a better fix. But, for now, we want to keep the current behavior.
142
+ // TODO: ED-13910 prosemirror-bump leftovers
143
+ return NaN;
144
+ }
145
+ return pos + idx + 1;
146
+ };
147
+
148
+ // Media Inline creates a floating toolbar with the same options, excludes these options if enabled
149
+ var mediaInlineOptions = function mediaInlineOptions() {
150
+ var allowMediaInline = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
151
+ if (!allowMediaInline) {
152
+ return {
153
+ shouldEnableDownloadButton: mediaOptions.enableDownloadButton,
154
+ actions: [{
155
+ handler: disabled || !_this.mediaPluginState ? function () {} : _this.mediaPluginState.handleMediaNodeRemoval.bind(null, undefined, getNodePos),
156
+ icon: /*#__PURE__*/React.createElement(EditorCloseIcon, {
157
+ label: _this.props.intl.formatMessage(messages.mediaGroupDeleteLabel)
158
+ })
159
+ }]
160
+ };
161
+ }
162
+ };
163
+ return _objectSpread({
164
+ identifier: _this.getIdentifier(item),
165
+ isLazy: allowLazyLoading,
166
+ selected: _this.isNodeSelected(getNodePos()),
167
+ onClick: function onClick() {
168
+ setNodeSelection(_this.props.view, getNodePos());
169
+ }
170
+ }, mediaInlineOptions(getMediaFeatureFlag('mediaInline', mediaOptions.featureFlags)));
171
+ });
172
+ return /*#__PURE__*/React.createElement(Filmstrip, {
173
+ items: items,
174
+ mediaClientConfig: viewMediaClientConfig,
175
+ featureFlags: mediaOptions.featureFlags
176
+ });
177
+ });
178
+ _this.mediaNodes = [];
179
+ _this.mediaPluginState = mediaStateKey.getState(_props.view.state);
180
+ _this.setMediaItems(_props);
181
+ _this.state = {
182
+ viewMediaClientConfig: undefined
183
+ };
184
+ return _this;
185
+ }
186
+ _createClass(MediaGroup, [{
187
+ key: "componentDidMount",
188
+ value: function componentDidMount() {
189
+ var _this2 = this;
190
+ this.updateMediaClientConfig();
191
+ this.mediaNodes.forEach( /*#__PURE__*/function () {
192
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(node) {
193
+ var _this2$props, view, mediaProvider, contextIdentifierProvider, mediaNodeUpdater, getPos, contextId, hasDifferentContextId;
194
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
195
+ while (1) switch (_context.prev = _context.next) {
196
+ case 0:
197
+ if (!(node.attrs.type === 'external')) {
198
+ _context.next = 2;
199
+ break;
200
+ }
201
+ return _context.abrupt("return");
202
+ case 2:
203
+ _this2$props = _this2.props, view = _this2$props.view, mediaProvider = _this2$props.mediaProvider, contextIdentifierProvider = _this2$props.contextIdentifierProvider;
204
+ mediaNodeUpdater = new MediaNodeUpdater({
205
+ view: view,
206
+ mediaProvider: mediaProvider,
207
+ contextIdentifierProvider: contextIdentifierProvider,
208
+ node: node,
209
+ isMediaSingle: false
210
+ });
211
+ getPos = function getPos() {
212
+ var pos = _this2.props.getPos();
213
+ if (typeof pos !== 'number') {
214
+ // That may seems weird, but the previous type wasn't match with the real ProseMirror code. And a lot of Media API was built expecting a number
215
+ // Because the original code would return NaN on runtime
216
+ // We are just make it explict now.
217
+ // We may run a deep investagation on Media code to figure out a better fix. But, for now, we want to keep the current behavior.
218
+ // TODO: ED-13910 prosemirror-bump leftovers
219
+ return NaN;
220
+ }
221
+ return pos + 1;
222
+ };
223
+ contextId = mediaNodeUpdater.getNodeContextId();
224
+ if (contextId) {
225
+ _context.next = 9;
226
+ break;
227
+ }
228
+ _context.next = 9;
229
+ return mediaNodeUpdater.updateNodeContextId(getPos);
230
+ case 9:
231
+ _context.next = 11;
232
+ return mediaNodeUpdater.hasDifferentContextId();
233
+ case 11:
234
+ hasDifferentContextId = _context.sent;
235
+ if (!hasDifferentContextId) {
236
+ _context.next = 15;
237
+ break;
238
+ }
239
+ _context.next = 15;
240
+ return mediaNodeUpdater.copyNodeFromPos(getPos, {
241
+ traceId: node.attrs.__mediaTraceId
242
+ });
243
+ case 15:
244
+ case "end":
245
+ return _context.stop();
246
+ }
247
+ }, _callee);
248
+ }));
249
+ return function (_x) {
250
+ return _ref.apply(this, arguments);
251
+ };
252
+ }());
253
+ }
254
+ }, {
255
+ key: "componentWillUnmount",
256
+ value: function componentWillUnmount() {
257
+ var _this$mediaPluginStat2;
258
+ (_this$mediaPluginStat2 = this.mediaPluginState) === null || _this$mediaPluginStat2 === void 0 || _this$mediaPluginStat2.handleMediaGroupUpdate(this.mediaNodes, []);
259
+ }
260
+ }, {
261
+ key: "UNSAFE_componentWillReceiveProps",
262
+ value: function UNSAFE_componentWillReceiveProps(props) {
263
+ this.updateMediaClientConfig();
264
+ this.setMediaItems(props, props.isCopyPasteEnabled || props.isCopyPasteEnabled === undefined);
265
+ }
266
+ }, {
267
+ key: "shouldComponentUpdate",
268
+ value: function shouldComponentUpdate(nextProps) {
269
+ var _this$mediaPluginStat3;
270
+ if (hasSelectionChanged(this.props, nextProps) || this.props.node !== nextProps.node || this.state.viewMediaClientConfig !== ((_this$mediaPluginStat3 = this.mediaPluginState) === null || _this$mediaPluginStat3 === void 0 ? void 0 : _this$mediaPluginStat3.mediaClientConfig)) {
271
+ return true;
272
+ }
273
+ return false;
274
+ }
275
+ }, {
276
+ key: "updateMediaClientConfig",
277
+ value: function updateMediaClientConfig() {
278
+ var viewMediaClientConfig = this.state.viewMediaClientConfig;
279
+ var _ref2 = this.mediaPluginState || {},
280
+ mediaClientConfig = _ref2.mediaClientConfig;
281
+ if (!viewMediaClientConfig && mediaClientConfig) {
282
+ this.setState({
283
+ viewMediaClientConfig: mediaClientConfig
284
+ });
285
+ }
286
+ }
287
+ }, {
288
+ key: "render",
289
+ value: function render() {
290
+ return this.renderChildNodes();
291
+ }
292
+ }]);
293
+ return MediaGroup;
294
+ }(React.Component);
295
+ _defineProperty(MediaGroup, "displayName", 'MediaGroup');
296
+ var IntlMediaGroup = injectIntl(MediaGroup);
297
+ export default IntlMediaGroup;
298
+ function MediaGroupNodeViewInternal(_ref3) {
299
+ var renderFn = _ref3.renderFn,
300
+ pluginInjectionApi = _ref3.pluginInjectionApi;
301
+ var _useSharedPluginState = useSharedPluginState(pluginInjectionApi, ['editorDisabled']),
302
+ editorDisabledPlugin = _useSharedPluginState.editorDisabledState;
303
+ return renderFn({
304
+ editorDisabledPlugin: editorDisabledPlugin
305
+ });
306
+ }
307
+ var MediaGroupNodeView = /*#__PURE__*/function (_ReactNodeView) {
308
+ _inherits(MediaGroupNodeView, _ReactNodeView);
309
+ var _super2 = _createSuper(MediaGroupNodeView);
310
+ function MediaGroupNodeView() {
311
+ _classCallCheck(this, MediaGroupNodeView);
312
+ return _super2.apply(this, arguments);
313
+ }
314
+ _createClass(MediaGroupNodeView, [{
315
+ key: "render",
316
+ value: function render(props, forwardRef) {
317
+ var _this3 = this;
318
+ var providerFactory = props.providerFactory,
319
+ mediaOptions = props.mediaOptions,
320
+ pluginInjectionApi = props.pluginInjectionApi;
321
+ var getPos = this.getPos;
322
+ return /*#__PURE__*/React.createElement(WithProviders, {
323
+ providers: ['mediaProvider', 'contextIdentifierProvider'],
324
+ providerFactory: providerFactory,
325
+ renderNode: function renderNode(_ref4) {
326
+ var mediaProvider = _ref4.mediaProvider,
327
+ contextIdentifierProvider = _ref4.contextIdentifierProvider;
328
+ var renderFn = function renderFn(_ref5) {
329
+ var editorDisabledPlugin = _ref5.editorDisabledPlugin;
330
+ if (!mediaProvider) {
331
+ return null;
332
+ }
333
+ return /*#__PURE__*/React.createElement(IntlMediaGroup, {
334
+ node: _this3.node,
335
+ getPos: getPos,
336
+ view: _this3.view,
337
+ forwardRef: forwardRef,
338
+ disabled: (editorDisabledPlugin || {}).editorDisabled,
339
+ allowLazyLoading: mediaOptions.allowLazyLoading,
340
+ mediaProvider: mediaProvider,
341
+ contextIdentifierProvider: contextIdentifierProvider,
342
+ isCopyPasteEnabled: mediaOptions.isCopyPasteEnabled,
343
+ anchorPos: _this3.view.state.selection.$anchor.pos,
344
+ headPos: _this3.view.state.selection.$head.pos,
345
+ mediaOptions: mediaOptions
346
+ });
347
+ };
348
+ return /*#__PURE__*/React.createElement(MediaGroupNodeViewInternal, {
349
+ renderFn: renderFn,
350
+ pluginInjectionApi: pluginInjectionApi
351
+ });
352
+ }
353
+ });
354
+ }
355
+ }]);
356
+ return MediaGroupNodeView;
357
+ }(ReactNodeView);
358
+ export var ReactMediaGroupNode = function ReactMediaGroupNode(portalProviderAPI, eventDispatcher, providerFactory) {
359
+ var mediaOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
360
+ var pluginInjectionApi = arguments.length > 4 ? arguments[4] : undefined;
361
+ return function (node, view, getPos) {
362
+ var hasIntlContext = true;
363
+ return new MediaGroupNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
364
+ providerFactory: providerFactory,
365
+ mediaOptions: mediaOptions,
366
+ pluginInjectionApi: pluginInjectionApi
367
+ }, undefined, undefined, undefined, hasIntlContext).init();
368
+ };
369
+ };
@@ -0,0 +1,278 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _get from "@babel/runtime/helpers/get";
4
+ import _inherits from "@babel/runtime/helpers/inherits";
5
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
8
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
9
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
10
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
13
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
14
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ import React, { useEffect, useState } from 'react';
16
+ import { useSharedPluginState } from '@atlaskit/editor-common/hooks';
17
+ import { WithProviders } from '@atlaskit/editor-common/provider-factory';
18
+ import { SelectionBasedNodeView } from '@atlaskit/editor-common/selection-based-node-view';
19
+ import { MediaInlineCard } from '@atlaskit/media-card';
20
+ import { MediaInlineCardLoadingView } from '@atlaskit/media-ui';
21
+ import { MediaNodeUpdater } from './mediaNodeUpdater';
22
+ import { MediaInlineNodeSelector } from './styles';
23
+ export var createMediaNodeUpdater = function createMediaNodeUpdater(props) {
24
+ var node = props.node;
25
+ return new MediaNodeUpdater(_objectSpread(_objectSpread({}, props), {}, {
26
+ isMediaSingle: true,
27
+ node: node ? node : props.node,
28
+ dispatchAnalyticsEvent: props.dispatchAnalyticsEvent,
29
+ contextIdentifierProvider: props.contextIdentifierProvider
30
+ }));
31
+ };
32
+
33
+ /**
34
+ * Handles updating the media inline node attributes
35
+ * but also handling copy-paste for cross-editor of the same instance
36
+ * using the contextid
37
+ *
38
+ */
39
+ export var updateMediaNodeAttributes = /*#__PURE__*/function () {
40
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(props, mediaNodeUpdater) {
41
+ var addPendingTask, node, contextId, hasDifferentContextId, copyNode;
42
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
43
+ while (1) switch (_context.prev = _context.next) {
44
+ case 0:
45
+ addPendingTask = props.mediaPluginState.addPendingTask;
46
+ node = props.node;
47
+ if (node) {
48
+ _context.next = 4;
49
+ break;
50
+ }
51
+ return _context.abrupt("return");
52
+ case 4:
53
+ contextId = mediaNodeUpdater.getNodeContextId();
54
+ if (contextId) {
55
+ _context.next = 8;
56
+ break;
57
+ }
58
+ _context.next = 8;
59
+ return mediaNodeUpdater.updateContextId();
60
+ case 8:
61
+ _context.next = 10;
62
+ return mediaNodeUpdater.hasDifferentContextId();
63
+ case 10:
64
+ hasDifferentContextId = _context.sent;
65
+ if (!hasDifferentContextId) {
66
+ _context.next = 22;
67
+ break;
68
+ }
69
+ _context.prev = 12;
70
+ copyNode = mediaNodeUpdater.copyNode({
71
+ traceId: node.attrs.__mediaTraceId
72
+ });
73
+ addPendingTask(copyNode);
74
+ _context.next = 17;
75
+ return copyNode;
76
+ case 17:
77
+ _context.next = 22;
78
+ break;
79
+ case 19:
80
+ _context.prev = 19;
81
+ _context.t0 = _context["catch"](12);
82
+ return _context.abrupt("return");
83
+ case 22:
84
+ _context.next = 24;
85
+ return mediaNodeUpdater.updateMediaSingleFileAttrs();
86
+ case 24:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }, _callee, null, [[12, 19]]);
91
+ }));
92
+ return function updateMediaNodeAttributes(_x, _x2) {
93
+ return _ref.apply(this, arguments);
94
+ };
95
+ }();
96
+ export var handleNewNode = function handleNewNode(props) {
97
+ var node = props.node,
98
+ mediaPluginState = props.mediaPluginState,
99
+ getPos = props.getPos;
100
+ mediaPluginState.handleMediaNodeMount(node, function () {
101
+ return getPos();
102
+ });
103
+ };
104
+ export var MediaInline = function MediaInline(props) {
105
+ var _useState = useState(),
106
+ _useState2 = _slicedToArray(_useState, 2),
107
+ viewMediaClientConfig = _useState2[0],
108
+ setViewMediaClientConfig = _useState2[1];
109
+ var _useState3 = useState(true),
110
+ _useState4 = _slicedToArray(_useState3, 2),
111
+ isContextIdUnsync = _useState4[0],
112
+ setIsContextIdUnsync = _useState4[1];
113
+ useEffect(function () {
114
+ var mediaNodeUpdater = createMediaNodeUpdater(props);
115
+ mediaNodeUpdater.hasDifferentContextId().then(setIsContextIdUnsync);
116
+ handleNewNode(props);
117
+ updateMediaNodeAttributes(props, mediaNodeUpdater);
118
+ updateViewMediaClientConfig(props);
119
+ return function () {
120
+ var mediaPluginState = props.mediaPluginState;
121
+ mediaPluginState.handleMediaNodeUnmount(props.node);
122
+ };
123
+ }, [props]);
124
+ var updateViewMediaClientConfig = /*#__PURE__*/function () {
125
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(props) {
126
+ var mediaProvider, _viewMediaClientConfig;
127
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
128
+ while (1) switch (_context2.prev = _context2.next) {
129
+ case 0:
130
+ _context2.next = 2;
131
+ return props.mediaProvider;
132
+ case 2:
133
+ mediaProvider = _context2.sent;
134
+ if (mediaProvider) {
135
+ _viewMediaClientConfig = mediaProvider.viewMediaClientConfig;
136
+ setViewMediaClientConfig(_viewMediaClientConfig);
137
+ }
138
+ case 4:
139
+ case "end":
140
+ return _context2.stop();
141
+ }
142
+ }, _callee2);
143
+ }));
144
+ return function updateViewMediaClientConfig(_x3) {
145
+ return _ref2.apply(this, arguments);
146
+ };
147
+ }();
148
+ var _props$node$attrs = props.node.attrs,
149
+ id = _props$node$attrs.id,
150
+ collection = _props$node$attrs.collection;
151
+ var identifier = {
152
+ id: id,
153
+ mediaItemType: 'file',
154
+ collectionName: collection
155
+ };
156
+
157
+ /*
158
+ * Show the loading view if
159
+ * 1. The media provider is not ready
160
+ * 2. Context Id is not synced
161
+ * to prevent calling the media API (in mounting of `MediaInlineCard`)
162
+ * before the prerequisites meet
163
+ */
164
+ if (!viewMediaClientConfig || isContextIdUnsync) {
165
+ return /*#__PURE__*/React.createElement(MediaInlineCardLoadingView, {
166
+ message: "",
167
+ isSelected: false
168
+ });
169
+ }
170
+ return /*#__PURE__*/React.createElement(MediaInlineCard, {
171
+ isSelected: props.isSelected,
172
+ identifier: identifier,
173
+ mediaClientConfig: viewMediaClientConfig
174
+ });
175
+ };
176
+ var MediaInlineSharedState = function MediaInlineSharedState(_ref3) {
177
+ var identifier = _ref3.identifier,
178
+ mediaProvider = _ref3.mediaProvider,
179
+ node = _ref3.node,
180
+ isSelected = _ref3.isSelected,
181
+ getPos = _ref3.getPos,
182
+ contextIdentifierProvider = _ref3.contextIdentifierProvider,
183
+ api = _ref3.api,
184
+ view = _ref3.view;
185
+ var _useSharedPluginState = useSharedPluginState(api, ['media']),
186
+ mediaState = _useSharedPluginState.mediaState;
187
+ if (!mediaState) {
188
+ return null;
189
+ }
190
+ return /*#__PURE__*/React.createElement(MediaInline, {
191
+ identifier: identifier,
192
+ mediaProvider: mediaProvider,
193
+ mediaPluginState: mediaState,
194
+ node: node,
195
+ isSelected: isSelected,
196
+ view: view,
197
+ getPos: getPos,
198
+ contextIdentifierProvider: contextIdentifierProvider
199
+ });
200
+ };
201
+ export var MediaInlineNodeView = /*#__PURE__*/function (_SelectionBasedNodeVi) {
202
+ _inherits(MediaInlineNodeView, _SelectionBasedNodeVi);
203
+ var _super = _createSuper(MediaInlineNodeView);
204
+ function MediaInlineNodeView() {
205
+ _classCallCheck(this, MediaInlineNodeView);
206
+ return _super.apply(this, arguments);
207
+ }
208
+ _createClass(MediaInlineNodeView, [{
209
+ key: "createDomRef",
210
+ value: function createDomRef() {
211
+ var domRef = document.createElement('span');
212
+ domRef.contentEditable = 'false';
213
+ return domRef;
214
+ }
215
+ }, {
216
+ key: "getContentDOM",
217
+ value: function getContentDOM() {
218
+ var dom = document.createElement('span');
219
+ dom.classList.add(MediaInlineNodeSelector);
220
+ return {
221
+ dom: dom
222
+ };
223
+ }
224
+ }, {
225
+ key: "ignoreMutation",
226
+ value: function ignoreMutation() {
227
+ return true;
228
+ }
229
+ }, {
230
+ key: "viewShouldUpdate",
231
+ value: function viewShouldUpdate(nextNode) {
232
+ if (this.node.attrs !== nextNode.attrs) {
233
+ return true;
234
+ }
235
+ return _get(_getPrototypeOf(MediaInlineNodeView.prototype), "viewShouldUpdate", this).call(this, nextNode);
236
+ }
237
+ }, {
238
+ key: "render",
239
+ value: function render(props) {
240
+ var _this = this;
241
+ var providerFactory = props.providerFactory,
242
+ api = props.api;
243
+ var view = this.view;
244
+ var getPos = this.getPos;
245
+ return /*#__PURE__*/React.createElement(WithProviders, {
246
+ providers: ['mediaProvider', 'contextIdentifierProvider'],
247
+ providerFactory: providerFactory,
248
+ renderNode: function renderNode(_ref4) {
249
+ var mediaProvider = _ref4.mediaProvider,
250
+ contextIdentifierProvider = _ref4.contextIdentifierProvider;
251
+ if (!mediaProvider) {
252
+ return null;
253
+ }
254
+ return /*#__PURE__*/React.createElement(MediaInlineSharedState, {
255
+ identifier: _this.node.attrs.id,
256
+ mediaProvider: mediaProvider,
257
+ node: _this.node,
258
+ isSelected: _this.nodeInsideSelection(),
259
+ view: view,
260
+ getPos: getPos,
261
+ contextIdentifierProvider: contextIdentifierProvider,
262
+ api: api
263
+ });
264
+ }
265
+ });
266
+ }
267
+ }]);
268
+ return MediaInlineNodeView;
269
+ }(SelectionBasedNodeView);
270
+ export var ReactMediaInlineNode = function ReactMediaInlineNode(portalProviderAPI, eventDispatcher, providerFactory, api, dispatchAnalyticsEvent) {
271
+ return function (node, view, getPos) {
272
+ return new MediaInlineNodeView(node, view, getPos, portalProviderAPI, eventDispatcher, {
273
+ providerFactory: providerFactory,
274
+ dispatchAnalyticsEvent: dispatchAnalyticsEvent,
275
+ api: api
276
+ }).init();
277
+ };
278
+ };