@atlaskit/editor-plugin-extension 0.4.2 → 0.5.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 (307) hide show
  1. package/.eslintrc.js +26 -0
  2. package/CHANGELOG.md +16 -0
  3. package/dist/cjs/actions.js +236 -0
  4. package/dist/cjs/commands.js +122 -0
  5. package/dist/cjs/context-panel.js +269 -0
  6. package/dist/cjs/extension-api.js +266 -0
  7. package/dist/cjs/index.js +8 -1
  8. package/dist/cjs/plugin-factory.js +32 -0
  9. package/dist/cjs/plugin-key.js +8 -0
  10. package/dist/cjs/plugin.js +147 -0
  11. package/dist/cjs/pm-plugins/keymap.js +21 -0
  12. package/dist/cjs/pm-plugins/macro/actions.js +186 -0
  13. package/dist/cjs/pm-plugins/macro/index.js +72 -0
  14. package/dist/cjs/pm-plugins/macro/plugin-key.js +8 -0
  15. package/dist/cjs/pm-plugins/macro/types.js +5 -0
  16. package/dist/cjs/pm-plugins/main.js +323 -0
  17. package/dist/cjs/pm-plugins/unique-id.js +80 -0
  18. package/dist/cjs/pm-plugins/utils.js +75 -0
  19. package/dist/cjs/reducer.js +18 -0
  20. package/dist/cjs/toolbar.js +242 -0
  21. package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +475 -0
  22. package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +122 -0
  23. package/dist/cjs/ui/ConfigPanel/ConfigPanelLoader.js +23 -0
  24. package/dist/cjs/ui/ConfigPanel/ErrorMessage/ErrorImage.js +76 -0
  25. package/dist/cjs/ui/ConfigPanel/ErrorMessage/index.js +33 -0
  26. package/dist/cjs/ui/ConfigPanel/FieldMessages.js +105 -0
  27. package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +150 -0
  28. package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +101 -0
  29. package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +420 -0
  30. package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +192 -0
  31. package/dist/cjs/ui/ConfigPanel/Fields/Date.js +55 -0
  32. package/dist/cjs/ui/ConfigPanel/Fields/DateRange.js +160 -0
  33. package/dist/cjs/ui/ConfigPanel/Fields/Enum.js +41 -0
  34. package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +88 -0
  35. package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +270 -0
  36. package/dist/cjs/ui/ConfigPanel/Fields/Number.js +64 -0
  37. package/dist/cjs/ui/ConfigPanel/Fields/RadioGroup.js +56 -0
  38. package/dist/cjs/ui/ConfigPanel/Fields/Select.js +60 -0
  39. package/dist/cjs/ui/ConfigPanel/Fields/SelectItem.js +53 -0
  40. package/dist/cjs/ui/ConfigPanel/Fields/String.js +75 -0
  41. package/dist/cjs/ui/ConfigPanel/Fields/TabGroup.js +73 -0
  42. package/dist/cjs/ui/ConfigPanel/Fields/UnhandledType.js +19 -0
  43. package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +268 -0
  44. package/dist/cjs/ui/ConfigPanel/Fields/common/RequiredIndicator.js +12 -0
  45. package/dist/cjs/ui/ConfigPanel/FormContent.js +231 -0
  46. package/dist/cjs/ui/ConfigPanel/FormErrorBoundary.js +140 -0
  47. package/dist/cjs/ui/ConfigPanel/Header.js +148 -0
  48. package/dist/cjs/ui/ConfigPanel/LoadingState.js +25 -0
  49. package/dist/cjs/ui/ConfigPanel/NestedForms/RemovableField.js +61 -0
  50. package/dist/cjs/ui/ConfigPanel/constants.js +13 -0
  51. package/dist/cjs/ui/ConfigPanel/index.js +9 -0
  52. package/dist/cjs/ui/ConfigPanel/messages.js +99 -0
  53. package/dist/cjs/ui/ConfigPanel/transformers.js +631 -0
  54. package/dist/cjs/ui/ConfigPanel/types.js +15 -0
  55. package/dist/cjs/ui/ConfigPanel/use-abortable-effect/index.js +56 -0
  56. package/dist/cjs/ui/ConfigPanel/use-state-from-promise/index.js +41 -0
  57. package/dist/cjs/ui/ConfigPanel/utils.js +116 -0
  58. package/dist/cjs/ui/SaveIndicator/SaveIndicator.js +79 -0
  59. package/dist/cjs/ui/SaveIndicator/messages.js +14 -0
  60. package/dist/cjs/ui/SaveIndicator/types.js +5 -0
  61. package/dist/cjs/utils.js +73 -0
  62. package/dist/es2019/actions.js +203 -0
  63. package/dist/es2019/commands.js +99 -0
  64. package/dist/es2019/context-panel.js +181 -0
  65. package/dist/es2019/extension-api.js +284 -0
  66. package/dist/es2019/index.js +1 -1
  67. package/dist/es2019/plugin-factory.js +26 -0
  68. package/dist/es2019/plugin-key.js +2 -0
  69. package/dist/es2019/plugin.js +138 -0
  70. package/dist/es2019/pm-plugins/keymap.js +15 -0
  71. package/dist/es2019/pm-plugins/macro/actions.js +152 -0
  72. package/dist/es2019/pm-plugins/macro/index.js +36 -0
  73. package/dist/es2019/pm-plugins/macro/plugin-key.js +2 -0
  74. package/dist/es2019/pm-plugins/macro/types.js +1 -0
  75. package/dist/es2019/pm-plugins/main.js +230 -0
  76. package/dist/es2019/pm-plugins/unique-id.js +69 -0
  77. package/dist/es2019/pm-plugins/utils.js +30 -0
  78. package/dist/es2019/reducer.js +11 -0
  79. package/dist/es2019/toolbar.js +236 -0
  80. package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +415 -0
  81. package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +100 -0
  82. package/dist/es2019/ui/ConfigPanel/ConfigPanelLoader.js +7 -0
  83. package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +66 -0
  84. package/dist/es2019/ui/ConfigPanel/ErrorMessage/index.js +25 -0
  85. package/dist/es2019/ui/ConfigPanel/FieldMessages.js +101 -0
  86. package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +138 -0
  87. package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +96 -0
  88. package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +411 -0
  89. package/dist/es2019/ui/ConfigPanel/Fields/CustomSelect.js +132 -0
  90. package/dist/es2019/ui/ConfigPanel/Fields/Date.js +50 -0
  91. package/dist/es2019/ui/ConfigPanel/Fields/DateRange.js +139 -0
  92. package/dist/es2019/ui/ConfigPanel/Fields/Enum.js +35 -0
  93. package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +73 -0
  94. package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +227 -0
  95. package/dist/es2019/ui/ConfigPanel/Fields/Number.js +61 -0
  96. package/dist/es2019/ui/ConfigPanel/Fields/RadioGroup.js +40 -0
  97. package/dist/es2019/ui/ConfigPanel/Fields/Select.js +50 -0
  98. package/dist/es2019/ui/ConfigPanel/Fields/SelectItem.js +47 -0
  99. package/dist/es2019/ui/ConfigPanel/Fields/String.js +67 -0
  100. package/dist/es2019/ui/ConfigPanel/Fields/TabGroup.js +57 -0
  101. package/dist/es2019/ui/ConfigPanel/Fields/UnhandledType.js +11 -0
  102. package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +194 -0
  103. package/dist/es2019/ui/ConfigPanel/Fields/common/RequiredIndicator.js +5 -0
  104. package/dist/es2019/ui/ConfigPanel/FormContent.js +225 -0
  105. package/dist/es2019/ui/ConfigPanel/FormErrorBoundary.js +100 -0
  106. package/dist/es2019/ui/ConfigPanel/Header.js +140 -0
  107. package/dist/es2019/ui/ConfigPanel/LoadingState.js +15 -0
  108. package/dist/es2019/ui/ConfigPanel/NestedForms/RemovableField.js +52 -0
  109. package/dist/es2019/ui/ConfigPanel/constants.js +7 -0
  110. package/dist/es2019/ui/ConfigPanel/index.js +2 -0
  111. package/dist/es2019/ui/ConfigPanel/messages.js +93 -0
  112. package/dist/es2019/ui/ConfigPanel/transformers.js +367 -0
  113. package/dist/es2019/ui/ConfigPanel/types.js +9 -0
  114. package/dist/es2019/ui/ConfigPanel/use-abortable-effect/index.js +46 -0
  115. package/dist/es2019/ui/ConfigPanel/use-state-from-promise/index.js +30 -0
  116. package/dist/es2019/ui/ConfigPanel/utils.js +86 -0
  117. package/dist/es2019/ui/SaveIndicator/SaveIndicator.js +66 -0
  118. package/dist/es2019/ui/SaveIndicator/messages.js +8 -0
  119. package/dist/es2019/ui/SaveIndicator/types.js +1 -0
  120. package/dist/es2019/utils.js +65 -0
  121. package/dist/esm/actions.js +223 -0
  122. package/dist/esm/commands.js +113 -0
  123. package/dist/esm/context-panel.js +261 -0
  124. package/dist/esm/extension-api.js +259 -0
  125. package/dist/esm/index.js +1 -1
  126. package/dist/esm/plugin-factory.js +25 -0
  127. package/dist/esm/plugin-key.js +2 -0
  128. package/dist/esm/plugin.js +140 -0
  129. package/dist/esm/pm-plugins/keymap.js +15 -0
  130. package/dist/esm/pm-plugins/macro/actions.js +179 -0
  131. package/dist/esm/pm-plugins/macro/index.js +42 -0
  132. package/dist/esm/pm-plugins/macro/plugin-key.js +2 -0
  133. package/dist/esm/pm-plugins/macro/types.js +1 -0
  134. package/dist/esm/pm-plugins/main.js +298 -0
  135. package/dist/esm/pm-plugins/unique-id.js +74 -0
  136. package/dist/esm/pm-plugins/utils.js +68 -0
  137. package/dist/esm/reducer.js +11 -0
  138. package/dist/esm/toolbar.js +235 -0
  139. package/dist/esm/ui/ConfigPanel/ConfigPanel.js +465 -0
  140. package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +112 -0
  141. package/dist/esm/ui/ConfigPanel/ConfigPanelLoader.js +11 -0
  142. package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +68 -0
  143. package/dist/esm/ui/ConfigPanel/ErrorMessage/index.js +26 -0
  144. package/dist/esm/ui/ConfigPanel/FieldMessages.js +97 -0
  145. package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +140 -0
  146. package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +95 -0
  147. package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +414 -0
  148. package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +182 -0
  149. package/dist/esm/ui/ConfigPanel/Fields/Date.js +48 -0
  150. package/dist/esm/ui/ConfigPanel/Fields/DateRange.js +154 -0
  151. package/dist/esm/ui/ConfigPanel/Fields/Enum.js +34 -0
  152. package/dist/esm/ui/ConfigPanel/Fields/Expand.js +77 -0
  153. package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +261 -0
  154. package/dist/esm/ui/ConfigPanel/Fields/Number.js +57 -0
  155. package/dist/esm/ui/ConfigPanel/Fields/RadioGroup.js +46 -0
  156. package/dist/esm/ui/ConfigPanel/Fields/Select.js +50 -0
  157. package/dist/esm/ui/ConfigPanel/Fields/SelectItem.js +45 -0
  158. package/dist/esm/ui/ConfigPanel/Fields/String.js +65 -0
  159. package/dist/esm/ui/ConfigPanel/Fields/TabGroup.js +62 -0
  160. package/dist/esm/ui/ConfigPanel/Fields/UnhandledType.js +10 -0
  161. package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +258 -0
  162. package/dist/esm/ui/ConfigPanel/Fields/common/RequiredIndicator.js +5 -0
  163. package/dist/esm/ui/ConfigPanel/FormContent.js +223 -0
  164. package/dist/esm/ui/ConfigPanel/FormErrorBoundary.js +133 -0
  165. package/dist/esm/ui/ConfigPanel/Header.js +140 -0
  166. package/dist/esm/ui/ConfigPanel/LoadingState.js +17 -0
  167. package/dist/esm/ui/ConfigPanel/NestedForms/RemovableField.js +53 -0
  168. package/dist/esm/ui/ConfigPanel/constants.js +7 -0
  169. package/dist/esm/ui/ConfigPanel/index.js +2 -0
  170. package/dist/esm/ui/ConfigPanel/messages.js +93 -0
  171. package/dist/esm/ui/ConfigPanel/transformers.js +624 -0
  172. package/dist/esm/ui/ConfigPanel/types.js +9 -0
  173. package/dist/esm/ui/ConfigPanel/use-abortable-effect/index.js +49 -0
  174. package/dist/esm/ui/ConfigPanel/use-state-from-promise/index.js +34 -0
  175. package/dist/esm/ui/ConfigPanel/utils.js +109 -0
  176. package/dist/esm/ui/SaveIndicator/SaveIndicator.js +72 -0
  177. package/dist/esm/ui/SaveIndicator/messages.js +8 -0
  178. package/dist/esm/ui/SaveIndicator/types.js +1 -0
  179. package/dist/esm/utils.js +67 -0
  180. package/dist/types/actions.d.ts +20 -0
  181. package/dist/types/commands.d.ts +15 -0
  182. package/dist/types/context-panel.d.ts +10 -0
  183. package/dist/types/extension-api.d.ts +12 -0
  184. package/dist/types/index.d.ts +2 -1
  185. package/dist/types/plugin-factory.d.ts +4 -0
  186. package/dist/types/plugin-key.d.ts +3 -0
  187. package/dist/types/plugin.d.ts +2 -0
  188. package/dist/types/pm-plugins/keymap.d.ts +3 -0
  189. package/dist/types/pm-plugins/macro/actions.d.ts +9 -0
  190. package/dist/types/pm-plugins/macro/index.d.ts +8 -0
  191. package/dist/types/pm-plugins/macro/plugin-key.d.ts +3 -0
  192. package/dist/types/pm-plugins/macro/types.d.ts +4 -0
  193. package/dist/types/pm-plugins/main.d.ts +25 -0
  194. package/dist/types/pm-plugins/unique-id.d.ts +3 -0
  195. package/dist/types/pm-plugins/utils.d.ts +3 -0
  196. package/dist/types/reducer.d.ts +2 -0
  197. package/dist/types/toolbar.d.ts +44 -0
  198. package/dist/types/types.d.ts +27 -2
  199. package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +22 -0
  200. package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +21 -0
  201. package/dist/types/ui/ConfigPanel/ConfigPanelLoader.d.ts +5 -0
  202. package/dist/types/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +4 -0
  203. package/dist/types/ui/ConfigPanel/ErrorMessage/index.d.ts +10 -0
  204. package/dist/types/ui/ConfigPanel/FieldMessages.d.ts +12 -0
  205. package/dist/types/ui/ConfigPanel/Fields/Boolean.d.ts +8 -0
  206. package/dist/types/ui/ConfigPanel/Fields/CheckboxGroup.d.ts +8 -0
  207. package/dist/types/ui/ConfigPanel/Fields/ColorPicker.d.ts +20 -0
  208. package/dist/types/ui/ConfigPanel/Fields/CustomSelect.d.ts +24 -0
  209. package/dist/types/ui/ConfigPanel/Fields/Date.d.ts +20 -0
  210. package/dist/types/ui/ConfigPanel/Fields/DateRange.d.ts +20 -0
  211. package/dist/types/ui/ConfigPanel/Fields/Enum.d.ts +10 -0
  212. package/dist/types/ui/ConfigPanel/Fields/Expand.d.ts +16 -0
  213. package/dist/types/ui/ConfigPanel/Fields/Fieldset.d.ts +19 -0
  214. package/dist/types/ui/ConfigPanel/Fields/Number.d.ts +10 -0
  215. package/dist/types/ui/ConfigPanel/Fields/RadioGroup.d.ts +8 -0
  216. package/dist/types/ui/ConfigPanel/Fields/Select.d.ts +11 -0
  217. package/dist/types/ui/ConfigPanel/Fields/SelectItem.d.ts +5 -0
  218. package/dist/types/ui/ConfigPanel/Fields/String.d.ts +10 -0
  219. package/dist/types/ui/ConfigPanel/Fields/TabGroup.d.ts +14 -0
  220. package/dist/types/ui/ConfigPanel/Fields/UnhandledType.d.ts +6 -0
  221. package/dist/types/ui/ConfigPanel/Fields/UserSelect.d.ts +10 -0
  222. package/dist/types/ui/ConfigPanel/Fields/common/RequiredIndicator.d.ts +1 -0
  223. package/dist/types/ui/ConfigPanel/FormContent.d.ts +4 -0
  224. package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +16 -0
  225. package/dist/types/ui/ConfigPanel/Header.d.ts +23 -0
  226. package/dist/types/ui/ConfigPanel/LoadingState.d.ts +4 -0
  227. package/dist/types/ui/ConfigPanel/NestedForms/RemovableField.d.ts +19 -0
  228. package/dist/types/ui/ConfigPanel/constants.d.ts +2 -0
  229. package/dist/types/ui/ConfigPanel/index.d.ts +2 -0
  230. package/dist/types/ui/ConfigPanel/messages.d.ts +92 -0
  231. package/dist/types/ui/ConfigPanel/transformers.d.ts +9 -0
  232. package/dist/types/ui/ConfigPanel/types.d.ts +36 -0
  233. package/dist/types/ui/ConfigPanel/use-abortable-effect/index.d.ts +16 -0
  234. package/dist/types/ui/ConfigPanel/use-state-from-promise/index.d.ts +15 -0
  235. package/dist/types/ui/ConfigPanel/utils.d.ts +16 -0
  236. package/dist/types/ui/SaveIndicator/SaveIndicator.d.ts +4 -0
  237. package/dist/types/ui/SaveIndicator/messages.d.ts +7 -0
  238. package/dist/types/ui/SaveIndicator/types.d.ts +11 -0
  239. package/dist/types/utils.d.ts +15 -0
  240. package/dist/types-ts4.5/actions.d.ts +20 -0
  241. package/dist/types-ts4.5/commands.d.ts +15 -0
  242. package/dist/types-ts4.5/context-panel.d.ts +10 -0
  243. package/dist/types-ts4.5/extension-api.d.ts +12 -0
  244. package/dist/types-ts4.5/index.d.ts +2 -1
  245. package/dist/types-ts4.5/plugin-factory.d.ts +4 -0
  246. package/dist/types-ts4.5/plugin-key.d.ts +3 -0
  247. package/dist/types-ts4.5/plugin.d.ts +2 -0
  248. package/dist/types-ts4.5/pm-plugins/keymap.d.ts +3 -0
  249. package/dist/types-ts4.5/pm-plugins/macro/actions.d.ts +9 -0
  250. package/dist/types-ts4.5/pm-plugins/macro/index.d.ts +8 -0
  251. package/dist/types-ts4.5/pm-plugins/macro/plugin-key.d.ts +3 -0
  252. package/dist/types-ts4.5/pm-plugins/macro/types.d.ts +4 -0
  253. package/dist/types-ts4.5/pm-plugins/main.d.ts +25 -0
  254. package/dist/types-ts4.5/pm-plugins/unique-id.d.ts +3 -0
  255. package/dist/types-ts4.5/pm-plugins/utils.d.ts +3 -0
  256. package/dist/types-ts4.5/reducer.d.ts +2 -0
  257. package/dist/types-ts4.5/toolbar.d.ts +44 -0
  258. package/dist/types-ts4.5/types.d.ts +27 -2
  259. package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanel.d.ts +22 -0
  260. package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +21 -0
  261. package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelLoader.d.ts +5 -0
  262. package/dist/types-ts4.5/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +4 -0
  263. package/dist/types-ts4.5/ui/ConfigPanel/ErrorMessage/index.d.ts +10 -0
  264. package/dist/types-ts4.5/ui/ConfigPanel/FieldMessages.d.ts +12 -0
  265. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Boolean.d.ts +8 -0
  266. package/dist/types-ts4.5/ui/ConfigPanel/Fields/CheckboxGroup.d.ts +8 -0
  267. package/dist/types-ts4.5/ui/ConfigPanel/Fields/ColorPicker.d.ts +20 -0
  268. package/dist/types-ts4.5/ui/ConfigPanel/Fields/CustomSelect.d.ts +24 -0
  269. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Date.d.ts +20 -0
  270. package/dist/types-ts4.5/ui/ConfigPanel/Fields/DateRange.d.ts +20 -0
  271. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Enum.d.ts +10 -0
  272. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Expand.d.ts +16 -0
  273. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Fieldset.d.ts +19 -0
  274. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Number.d.ts +10 -0
  275. package/dist/types-ts4.5/ui/ConfigPanel/Fields/RadioGroup.d.ts +8 -0
  276. package/dist/types-ts4.5/ui/ConfigPanel/Fields/Select.d.ts +11 -0
  277. package/dist/types-ts4.5/ui/ConfigPanel/Fields/SelectItem.d.ts +5 -0
  278. package/dist/types-ts4.5/ui/ConfigPanel/Fields/String.d.ts +10 -0
  279. package/dist/types-ts4.5/ui/ConfigPanel/Fields/TabGroup.d.ts +14 -0
  280. package/dist/types-ts4.5/ui/ConfigPanel/Fields/UnhandledType.d.ts +6 -0
  281. package/dist/types-ts4.5/ui/ConfigPanel/Fields/UserSelect.d.ts +10 -0
  282. package/dist/types-ts4.5/ui/ConfigPanel/Fields/common/RequiredIndicator.d.ts +1 -0
  283. package/dist/types-ts4.5/ui/ConfigPanel/FormContent.d.ts +4 -0
  284. package/dist/types-ts4.5/ui/ConfigPanel/FormErrorBoundary.d.ts +16 -0
  285. package/dist/types-ts4.5/ui/ConfigPanel/Header.d.ts +23 -0
  286. package/dist/types-ts4.5/ui/ConfigPanel/LoadingState.d.ts +4 -0
  287. package/dist/types-ts4.5/ui/ConfigPanel/NestedForms/RemovableField.d.ts +19 -0
  288. package/dist/types-ts4.5/ui/ConfigPanel/constants.d.ts +2 -0
  289. package/dist/types-ts4.5/ui/ConfigPanel/index.d.ts +2 -0
  290. package/dist/types-ts4.5/ui/ConfigPanel/messages.d.ts +92 -0
  291. package/dist/types-ts4.5/ui/ConfigPanel/transformers.d.ts +9 -0
  292. package/dist/types-ts4.5/ui/ConfigPanel/types.d.ts +39 -0
  293. package/dist/types-ts4.5/ui/ConfigPanel/use-abortable-effect/index.d.ts +16 -0
  294. package/dist/types-ts4.5/ui/ConfigPanel/use-state-from-promise/index.d.ts +18 -0
  295. package/dist/types-ts4.5/ui/ConfigPanel/utils.d.ts +16 -0
  296. package/dist/types-ts4.5/ui/SaveIndicator/SaveIndicator.d.ts +4 -0
  297. package/dist/types-ts4.5/ui/SaveIndicator/messages.d.ts +7 -0
  298. package/dist/types-ts4.5/ui/SaveIndicator/types.d.ts +11 -0
  299. package/dist/types-ts4.5/utils.d.ts +15 -0
  300. package/example-utils/config-panel/ConfigPanelWithExtensionPicker.tsx +217 -0
  301. package/example-utils/config-panel/ConfigPanelWithProviders.tsx +51 -0
  302. package/example-utils/config-panel/ExtensionNodePicker.tsx +141 -0
  303. package/example-utils/config-panel/FieldTypePicker.tsx +63 -0
  304. package/example-utils/config-panel/example-manifest-all-fields.ts +86 -0
  305. package/example-utils/config-panel/example-manifest-individual-fields.ts +85 -0
  306. package/example-utils/config-panel/fields.ts +611 -0
  307. package/package.json +49 -7
@@ -0,0 +1,261 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _typeof from "@babel/runtime/helpers/typeof";
5
+ 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; }
6
+ 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; }
7
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
8
+ import React from 'react';
9
+ import { getExtensionKeyAndNodeKey } from '@atlaskit/editor-common/extensions';
10
+ import { GapCursorSelection } from '@atlaskit/editor-common/selection';
11
+ import { NodeSelection, TextSelection } from '@atlaskit/editor-prosemirror/state';
12
+ import { CellSelection } from '@atlaskit/editor-tables/cell-selection';
13
+ import { buildExtensionNode } from './actions';
14
+ import { clearEditingContext, forceAutoSave, updateState } from './commands';
15
+ import { getPluginState } from './pm-plugins/main';
16
+ import ConfigPanelLoader from './ui/ConfigPanel/ConfigPanelLoader';
17
+ import { SaveIndicator } from './ui/SaveIndicator/SaveIndicator';
18
+ import { getSelectedExtension } from './utils';
19
+ var areParametersEqual = function areParametersEqual(firstParameters, secondParameters) {
20
+ if (_typeof(firstParameters) === 'object' && _typeof(secondParameters) === 'object' && firstParameters !== null && secondParameters !== null) {
21
+ var firstKeys = Object.keys(firstParameters);
22
+ var secondKeys = Object.keys(secondParameters);
23
+ return firstKeys.length === secondKeys.length && firstKeys.every(function (key) {
24
+ return firstParameters[key] === secondParameters[key];
25
+ });
26
+ }
27
+ return firstParameters === secondParameters;
28
+ };
29
+ export var duplicateSelection = function duplicateSelection(selectionToDuplicate, doc) {
30
+ if (selectionToDuplicate instanceof NodeSelection) {
31
+ return NodeSelection.create(doc, selectionToDuplicate.from);
32
+ } else if (selectionToDuplicate instanceof TextSelection) {
33
+ return TextSelection.create(doc, selectionToDuplicate.from, selectionToDuplicate.to);
34
+ } else if (selectionToDuplicate instanceof GapCursorSelection) {
35
+ return new GapCursorSelection(doc.resolve(selectionToDuplicate.from), selectionToDuplicate.side);
36
+ } else if (selectionToDuplicate instanceof CellSelection) {
37
+ return new CellSelection(doc.resolve(selectionToDuplicate.$anchorCell.pos), doc.resolve(selectionToDuplicate.$headCell.pos));
38
+ }
39
+ };
40
+ export var getContextPanel = function getContextPanel(getEditorView) {
41
+ return function (allowAutoSave, featureFlags, applyChange) {
42
+ return function (state) {
43
+ var nodeWithPos = getSelectedExtension(state, true);
44
+
45
+ // Adding checks to bail out early
46
+ if (!nodeWithPos) {
47
+ return;
48
+ }
49
+ var extensionState = getPluginState(state);
50
+ var autoSaveResolve = extensionState.autoSaveResolve,
51
+ autoSaveReject = extensionState.autoSaveReject,
52
+ showContextPanel = extensionState.showContextPanel,
53
+ extensionProvider = extensionState.extensionProvider,
54
+ processParametersBefore = extensionState.processParametersBefore,
55
+ processParametersAfter = extensionState.processParametersAfter;
56
+ if (extensionState && showContextPanel && extensionProvider && processParametersAfter) {
57
+ var _nodeWithPos$node$att = nodeWithPos.node.attrs,
58
+ extensionType = _nodeWithPos$node$att.extensionType,
59
+ extensionKey = _nodeWithPos$node$att.extensionKey,
60
+ parameters = _nodeWithPos$node$att.parameters;
61
+ var _getExtensionKeyAndNo = getExtensionKeyAndNodeKey(extensionKey, extensionType),
62
+ _getExtensionKeyAndNo2 = _slicedToArray(_getExtensionKeyAndNo, 2),
63
+ extKey = _getExtensionKeyAndNo2[0],
64
+ nodeKey = _getExtensionKeyAndNo2[1];
65
+ var configParams = processParametersBefore ? processParametersBefore(parameters || {}) : parameters;
66
+ return /*#__PURE__*/React.createElement(SaveIndicator, {
67
+ duration: 5000,
68
+ visible: allowAutoSave
69
+ }, function (_ref) {
70
+ var onSaveStarted = _ref.onSaveStarted,
71
+ onSaveEnded = _ref.onSaveEnded;
72
+ var editorView = getEditorView === null || getEditorView === void 0 ? void 0 : getEditorView();
73
+ if (!editorView) {
74
+ return null;
75
+ }
76
+ return /*#__PURE__*/React.createElement(ConfigPanelLoader, {
77
+ showHeader: true,
78
+ closeOnEsc: true,
79
+ extensionType: extensionType,
80
+ extensionKey: extKey,
81
+ nodeKey: nodeKey,
82
+ extensionParameters: parameters,
83
+ parameters: configParams,
84
+ extensionProvider: extensionProvider,
85
+ autoSave: allowAutoSave,
86
+ autoSaveTrigger: autoSaveResolve,
87
+ autoSaveReject: autoSaveReject,
88
+ onChange: /*#__PURE__*/function () {
89
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(updatedParameters) {
90
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
91
+ while (1) switch (_context.prev = _context.next) {
92
+ case 0:
93
+ _context.next = 2;
94
+ return onChangeAction(editorView, updatedParameters, parameters, nodeWithPos, onSaveStarted);
95
+ case 2:
96
+ onSaveEnded();
97
+ if (autoSaveResolve) {
98
+ autoSaveResolve();
99
+ }
100
+ if (!allowAutoSave) {
101
+ clearEditingContext(applyChange)(editorView.state, editorView.dispatch);
102
+ }
103
+ case 5:
104
+ case "end":
105
+ return _context.stop();
106
+ }
107
+ }, _callee);
108
+ }));
109
+ return function (_x) {
110
+ return _ref2.apply(this, arguments);
111
+ };
112
+ }(),
113
+ onCancel: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
114
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
115
+ while (1) switch (_context2.prev = _context2.next) {
116
+ case 0:
117
+ if (!allowAutoSave) {
118
+ _context2.next = 9;
119
+ break;
120
+ }
121
+ _context2.prev = 1;
122
+ _context2.next = 4;
123
+ return new Promise(function (resolve, reject) {
124
+ forceAutoSave(applyChange)(resolve, reject)(editorView.state, editorView.dispatch);
125
+ });
126
+ case 4:
127
+ _context2.next = 9;
128
+ break;
129
+ case 6:
130
+ _context2.prev = 6;
131
+ _context2.t0 = _context2["catch"](1);
132
+ // Even if the save failed, we should proceed with closing the panel
133
+ // eslint-disable-next-line no-console
134
+ console.error("Autosave failed with error", _context2.t0);
135
+ case 9:
136
+ clearEditingContext(applyChange)(editorView.state, editorView.dispatch);
137
+ case 10:
138
+ case "end":
139
+ return _context2.stop();
140
+ }
141
+ }, _callee2, null, [[1, 6]]);
142
+ })),
143
+ featureFlags: featureFlags
144
+ });
145
+ });
146
+ }
147
+ };
148
+ };
149
+ };
150
+ export function onChangeAction(_x2) {
151
+ return _onChangeAction.apply(this, arguments);
152
+ }
153
+ function _onChangeAction() {
154
+ _onChangeAction = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(editorView) {
155
+ var updatedParameters,
156
+ oldParameters,
157
+ nodeWithPos,
158
+ onSaving,
159
+ _ref4,
160
+ processParametersAfter,
161
+ processParametersBefore,
162
+ unwrappedOldParameters,
163
+ key,
164
+ _ref5,
165
+ previousPositions,
166
+ newParameters,
167
+ _ref6,
168
+ positions,
169
+ node,
170
+ newNode,
171
+ positionUpdated,
172
+ transaction,
173
+ prevSelection,
174
+ selection,
175
+ positionsLess,
176
+ _args3 = arguments;
177
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
178
+ while (1) switch (_context3.prev = _context3.next) {
179
+ case 0:
180
+ updatedParameters = _args3.length > 1 && _args3[1] !== undefined ? _args3[1] : {};
181
+ oldParameters = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : {};
182
+ nodeWithPos = _args3.length > 3 ? _args3[3] : undefined;
183
+ onSaving = _args3.length > 4 ? _args3[4] : undefined;
184
+ // WARNING: editorView.state stales quickly, do not unpack
185
+ _ref4 = getPluginState(editorView.state), processParametersAfter = _ref4.processParametersAfter, processParametersBefore = _ref4.processParametersBefore;
186
+ if (processParametersAfter) {
187
+ _context3.next = 7;
188
+ break;
189
+ }
190
+ return _context3.abrupt("return");
191
+ case 7:
192
+ unwrappedOldParameters = processParametersBefore ? processParametersBefore(oldParameters) : oldParameters; // todo: update to only check parameters which are in the manifest's field definitions
193
+ if (!areParametersEqual(unwrappedOldParameters, updatedParameters)) {
194
+ _context3.next = 10;
195
+ break;
196
+ }
197
+ return _context3.abrupt("return");
198
+ case 10:
199
+ if (onSaving) {
200
+ onSaving();
201
+ }
202
+ key = Date.now();
203
+ _ref5 = getPluginState(editorView.state), previousPositions = _ref5.positions;
204
+ _context3.next = 15;
205
+ return updateState({
206
+ positions: _objectSpread(_objectSpread({}, previousPositions), {}, _defineProperty({}, key, nodeWithPos.pos))
207
+ })(editorView.state, editorView.dispatch);
208
+ case 15:
209
+ _context3.next = 17;
210
+ return processParametersAfter(updatedParameters);
211
+ case 17:
212
+ newParameters = _context3.sent;
213
+ _ref6 = getPluginState(editorView.state), positions = _ref6.positions;
214
+ if (positions) {
215
+ _context3.next = 21;
216
+ break;
217
+ }
218
+ return _context3.abrupt("return");
219
+ case 21:
220
+ if (key in positions) {
221
+ _context3.next = 23;
222
+ break;
223
+ }
224
+ return _context3.abrupt("return");
225
+ case 23:
226
+ node = nodeWithPos.node;
227
+ newNode = buildExtensionNode(nodeWithPos.node.toJSON().type, editorView.state.schema, _objectSpread(_objectSpread({}, node.attrs), {}, {
228
+ parameters: _objectSpread(_objectSpread({}, oldParameters), newParameters)
229
+ }), node.content, node.marks);
230
+ if (newNode) {
231
+ _context3.next = 27;
232
+ break;
233
+ }
234
+ return _context3.abrupt("return");
235
+ case 27:
236
+ positionUpdated = positions[key];
237
+ transaction = editorView.state.tr.replaceWith(positionUpdated, positionUpdated + newNode.nodeSize, newNode); // Ensure we preserve the selection, tr.replaceWith causes it to be lost in some cases
238
+ // when replacing the node
239
+ prevSelection = editorView.state.selection;
240
+ if (!prevSelection.eq(transaction.selection)) {
241
+ selection = duplicateSelection(prevSelection, transaction.doc);
242
+ if (selection) {
243
+ transaction.setSelection(selection);
244
+ }
245
+ }
246
+ positionsLess = _objectSpread({}, getPluginState(editorView.state).positions);
247
+ delete positionsLess[key];
248
+ _context3.next = 35;
249
+ return updateState({
250
+ positions: positionsLess
251
+ })(editorView.state, editorView.dispatch);
252
+ case 35:
253
+ editorView.dispatch(transaction);
254
+ case 36:
255
+ case "end":
256
+ return _context3.stop();
257
+ }
258
+ }, _callee3);
259
+ }));
260
+ return _onChangeAction.apply(this, arguments);
261
+ }
@@ -0,0 +1,259 @@
1
+ import _typeof from "@babel/runtime/helpers/typeof";
2
+ import { validator } from '@atlaskit/adf-utils/validator';
3
+ import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics';
4
+ import { nodeToJSON } from '@atlaskit/editor-common/utils';
5
+ import { JSONTransformer } from '@atlaskit/editor-json-transformer';
6
+ import { Fragment, Mark } from '@atlaskit/editor-prosemirror/model';
7
+ import { NodeSelection, Selection } from '@atlaskit/editor-prosemirror/state';
8
+ import { setTextSelection } from '@atlaskit/editor-prosemirror/utils';
9
+ import { setEditingContextToContextPanel } from './commands';
10
+ import { insertMacroFromMacroBrowser } from './pm-plugins/macro/actions';
11
+ import { pluginKey as macroPluginKey } from './pm-plugins/macro/plugin-key';
12
+ import { findNodePosWithLocalId, getDataConsumerMark, getNodeTypesReferenced, getSelectedExtension } from './utils';
13
+ export var getEditInLegacyMacroBrowser = function getEditInLegacyMacroBrowser(_ref) {
14
+ var view = _ref.view,
15
+ macroProvider = _ref.macroProvider,
16
+ editorAnalyticsAPI = _ref.editorAnalyticsAPI;
17
+ return function () {
18
+ if (!view) {
19
+ throw new Error("Missing view. Can't update without EditorView");
20
+ }
21
+ if (!macroProvider) {
22
+ throw new Error("Missing macroProvider. Can't use the macro browser for updates");
23
+ }
24
+ var nodeWithPos = getSelectedExtension(view.state, true);
25
+ if (!nodeWithPos) {
26
+ throw new Error("Missing nodeWithPos. Can't determine position of node");
27
+ }
28
+ insertMacroFromMacroBrowser(editorAnalyticsAPI)(macroProvider, nodeWithPos.node, true)(view);
29
+ };
30
+ };
31
+ var extensionAPICallPayload = function extensionAPICallPayload(functionName) {
32
+ return {
33
+ action: ACTION.INVOKED,
34
+ actionSubject: ACTION_SUBJECT.EXTENSION,
35
+ actionSubjectId: ACTION_SUBJECT_ID.EXTENSION_API,
36
+ attributes: {
37
+ functionName: functionName
38
+ },
39
+ eventType: EVENT_TYPE.TRACK
40
+ };
41
+ };
42
+ export var createExtensionAPI = function createExtensionAPI(options) {
43
+ var schema = options.editorView.state.schema,
44
+ editorAnalyticsAPI = options.editorAnalyticsAPI;
45
+ var nodes = Object.keys(schema.nodes);
46
+ var marks = Object.keys(schema.marks);
47
+ var validate = validator(nodes, marks, {
48
+ allowPrivateAttributes: true
49
+ });
50
+
51
+ /**
52
+ * Finds the node and its position by `localId`. Throws if the node could not be found.
53
+ *
54
+ * @returns {NodeWithPos}
55
+ */
56
+ var ensureNodePosByLocalId = function ensureNodePosByLocalId(localId, _ref2) {
57
+ var opName = _ref2.opName;
58
+ // Be extra cautious since 3rd party devs can use regular JS without type safety
59
+ if (typeof localId !== 'string' || localId === '') {
60
+ throw new Error("".concat(opName, "(): Invalid localId '").concat(localId, "'."));
61
+ }
62
+
63
+ // Find the node + position matching the given ID
64
+ var state = options.editorView.state;
65
+ var nodePos = findNodePosWithLocalId(state, localId);
66
+ if (!nodePos) {
67
+ throw new Error("".concat(opName, "(): Could not find node with ID '").concat(localId, "'."));
68
+ }
69
+ return nodePos;
70
+ };
71
+ var doc = {
72
+ insertAfter: function insertAfter(localId, adf, opt) {
73
+ try {
74
+ validate(adf);
75
+ } catch (e) {
76
+ throw new Error("insertAfter(): Invalid ADF given.");
77
+ }
78
+ var nodePos = ensureNodePosByLocalId(localId, {
79
+ opName: 'insertAfter'
80
+ });
81
+ var editorView = options.editorView;
82
+ var dispatch = editorView.dispatch,
83
+ state = editorView.state;
84
+
85
+ // Validate the given ADF
86
+ var tr = state.tr,
87
+ schema = state.schema;
88
+ var nodeType = schema.nodes[adf.type];
89
+ if (!nodeType) {
90
+ throw new Error("insertAfter(): Invalid ADF type '".concat(adf.type, "'."));
91
+ }
92
+ var fragment = Fragment.fromJSON(schema, adf.content);
93
+ var marks = (adf.marks || []).map(function (markEntity) {
94
+ return Mark.fromJSON(schema, markEntity);
95
+ });
96
+ var newNode = nodeType === null || nodeType === void 0 ? void 0 : nodeType.createChecked(adf.attrs, fragment, marks);
97
+ if (!newNode) {
98
+ throw new Error('insertAfter(): Could not create a node for given ADFEntity.');
99
+ }
100
+ var insertPosition = nodePos.pos + nodePos.node.nodeSize;
101
+ tr.insert(insertPosition, newNode);
102
+
103
+ // Validate if the document is valid at this point
104
+ try {
105
+ tr.doc.check();
106
+ } catch (err) {
107
+ throw new Error("insertAfter(): The given ADFEntity cannot be inserted in the current position.\n".concat(err));
108
+ }
109
+
110
+ // Analytics - tracking the api call
111
+ var apiCallPayload = extensionAPICallPayload('insertAfter');
112
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(apiCallPayload)(tr);
113
+
114
+ // Analytics - tracking node types added
115
+ var nodesAdded = [newNode];
116
+ newNode.descendants(function (node) {
117
+ nodesAdded.push(node);
118
+ return true;
119
+ });
120
+ nodesAdded.forEach(function (node) {
121
+ var _node$attrs = node.attrs,
122
+ extensionKey = _node$attrs.extensionKey,
123
+ extensionType = _node$attrs.extensionType;
124
+ var dataConsumerMark = getDataConsumerMark(node);
125
+ var stringIds = (dataConsumerMark === null || dataConsumerMark === void 0 ? void 0 : dataConsumerMark.attrs.sources.map(function (sourceId) {
126
+ return sourceId;
127
+ })) || [];
128
+ var hasReferentiality = !!dataConsumerMark;
129
+ var nodeTypesReferenced = hasReferentiality ? getNodeTypesReferenced(stringIds, state) : undefined;
130
+
131
+ // fire off analytics for this ADF
132
+ var payload = {
133
+ action: ACTION.INSERTED,
134
+ actionSubject: ACTION_SUBJECT.DOCUMENT,
135
+ attributes: {
136
+ nodeType: node.type.name,
137
+ inputMethod: INPUT_METHOD.EXTENSION_API,
138
+ hasReferentiality: hasReferentiality,
139
+ nodeTypesReferenced: nodeTypesReferenced,
140
+ layout: node.attrs.layout,
141
+ extensionType: extensionType,
142
+ extensionKey: extensionKey
143
+ },
144
+ eventType: EVENT_TYPE.TRACK
145
+ };
146
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(payload)(tr);
147
+ });
148
+ if (opt && opt.allowSelectionToNewNode) {
149
+ tr.setSelection(new NodeSelection(tr.doc.resolve(insertPosition)));
150
+ }
151
+ dispatch(tr);
152
+ },
153
+ scrollTo: function scrollTo(localId) {
154
+ var nodePos = ensureNodePosByLocalId(localId, {
155
+ opName: 'scrollTo'
156
+ });
157
+
158
+ // Analytics - tracking the api call
159
+ var apiCallPayload = extensionAPICallPayload('scrollTo');
160
+ var _options$editorView = options.editorView,
161
+ dispatch = _options$editorView.dispatch,
162
+ state = _options$editorView.state;
163
+ var tr = state.tr;
164
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(apiCallPayload)(tr);
165
+ tr = setTextSelection(nodePos.pos)(tr);
166
+ tr = tr.scrollIntoView();
167
+ dispatch(tr);
168
+ },
169
+ update: function update(localId, mutationCallback) {
170
+ var _changedValues$marks;
171
+ var _ensureNodePosByLocal = ensureNodePosByLocalId(localId, {
172
+ opName: 'update'
173
+ }),
174
+ node = _ensureNodePosByLocal.node,
175
+ pos = _ensureNodePosByLocal.pos;
176
+ var _options$editorView2 = options.editorView,
177
+ dispatch = _options$editorView2.dispatch,
178
+ state = _options$editorView2.state;
179
+ var tr = state.tr,
180
+ schema = state.schema;
181
+ var changedValues = mutationCallback({
182
+ content: nodeToJSON(node).content,
183
+ attrs: node.attrs,
184
+ marks: node.marks.map(function (pmMark) {
185
+ return {
186
+ type: pmMark.type.name,
187
+ attrs: pmMark.attrs
188
+ };
189
+ })
190
+ });
191
+ var ensureValidMark = function ensureValidMark(mark) {
192
+ if (_typeof(mark) !== 'object' || Array.isArray(mark)) {
193
+ throw new Error("update(): Invalid mark given.");
194
+ }
195
+ var _state$doc$resolve = state.doc.resolve(pos),
196
+ parent = _state$doc$resolve.parent;
197
+ // Ensure that the given mark is present in the schema
198
+ var markType = schema.marks[mark.type];
199
+ if (!markType) {
200
+ throw new Error("update(): Invalid ADF mark type '".concat(mark.type, "'."));
201
+ }
202
+ if (!parent.type.allowsMarkType(markType)) {
203
+ throw new Error("update(): Parent of type '".concat(parent.type.name, "' does not allow marks of type '").concat(mark.type, "'."));
204
+ }
205
+ return {
206
+ mark: markType,
207
+ attrs: mark.attrs
208
+ };
209
+ };
210
+ var newMarks = changedValues.hasOwnProperty('marks') ? (_changedValues$marks = changedValues.marks) === null || _changedValues$marks === void 0 ? void 0 : _changedValues$marks.map(ensureValidMark).map(function (_ref3) {
211
+ var mark = _ref3.mark,
212
+ attrs = _ref3.attrs;
213
+ return mark.create(attrs);
214
+ }) : node.marks;
215
+ var newContent = changedValues.hasOwnProperty('content') ? Fragment.fromJSON(schema, changedValues.content) : node.content;
216
+ var newAttrs = changedValues.hasOwnProperty('attrs') ? changedValues.attrs : node.attrs;
217
+
218
+ // Validate if the new attributes, content and marks result in a valid node and adf.
219
+ try {
220
+ var newNode = node.type.createChecked(newAttrs, newContent, newMarks);
221
+ var newNodeAdf = new JSONTransformer().encodeNode(newNode);
222
+ validate(newNodeAdf);
223
+ tr.replaceWith(pos, pos + node.nodeSize, newNode);
224
+
225
+ // Keep selection if content does not change
226
+ if (newContent === node.content) {
227
+ tr.setSelection(Selection.fromJSON(tr.doc, state.selection.toJSON()));
228
+ }
229
+ } catch (err) {
230
+ throw new Error("update(): The given ADFEntity cannot be inserted in the current position.\n".concat(err));
231
+ }
232
+
233
+ // Analytics - tracking the api call
234
+ var apiCallPayload = extensionAPICallPayload('update');
235
+ editorAnalyticsAPI === null || editorAnalyticsAPI === void 0 || editorAnalyticsAPI.attachAnalyticsEvent(apiCallPayload)(tr);
236
+ dispatch(tr);
237
+ }
238
+ };
239
+ return {
240
+ editInContextPanel: function editInContextPanel(transformBefore, transformAfter) {
241
+ var editorView = options.editorView;
242
+ setEditingContextToContextPanel(transformBefore, transformAfter, options.applyChange)(editorView.state, editorView.dispatch, editorView);
243
+ },
244
+ _editInLegacyMacroBrowser: function _editInLegacyMacroBrowser() {
245
+ var editorView = options.editorView;
246
+ var editInLegacy = options.editInLegacyMacroBrowser;
247
+ if (!editInLegacy) {
248
+ var macroState = macroPluginKey.getState(editorView.state);
249
+ editInLegacy = getEditInLegacyMacroBrowser({
250
+ view: options.editorView,
251
+ macroProvider: (macroState === null || macroState === void 0 ? void 0 : macroState.macroProvider) || undefined,
252
+ editorAnalyticsAPI: editorAnalyticsAPI
253
+ });
254
+ }
255
+ editInLegacy();
256
+ },
257
+ doc: doc
258
+ };
259
+ };
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export {};
1
+ export { extensionPlugin } from './plugin';
@@ -0,0 +1,25 @@
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ 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; }
3
+ 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; }
4
+ import { pluginFactory } from '@atlaskit/editor-common/utils';
5
+ import { pluginKey } from './plugin-key';
6
+ import reducer from './reducer';
7
+ var factory = pluginFactory(pluginKey, reducer, {
8
+ mapping: function mapping(tr, state) {
9
+ var _ref = state,
10
+ previousPositions = _ref.positions;
11
+ if (!previousPositions) {
12
+ return state;
13
+ }
14
+ var positions = _objectSpread({}, previousPositions);
15
+ for (var key in positions) {
16
+ positions[key] = tr.mapping.map(positions[key]);
17
+ }
18
+ return _objectSpread(_objectSpread({}, state), {}, {
19
+ positions: positions
20
+ });
21
+ }
22
+ });
23
+ export var createPluginState = factory.createPluginState;
24
+ export var createCommand = factory.createCommand;
25
+ export var getPluginState = factory.getPluginState;
@@ -0,0 +1,2 @@
1
+ import { PluginKey } from '@atlaskit/editor-prosemirror/state';
2
+ export var pluginKey = new PluginKey('extensionPlugin');