@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,475 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+ var _react = _interopRequireWildcard(require("react"));
20
+ var _isEqual2 = _interopRequireDefault(require("lodash/isEqual"));
21
+ var _merge = _interopRequireDefault(require("lodash/merge"));
22
+ var _memoizeOne = _interopRequireDefault(require("memoize-one"));
23
+ var _reactIntlNext = require("react-intl-next");
24
+ var _analyticsNext = require("@atlaskit/analytics-next");
25
+ var _buttonGroup = _interopRequireDefault(require("@atlaskit/button/button-group"));
26
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
27
+ var _analytics = require("@atlaskit/editor-common/analytics");
28
+ var _extensions = require("@atlaskit/editor-common/extensions");
29
+ var _withPluginState = require("@atlaskit/editor-common/with-plugin-state");
30
+ var _form = _interopRequireWildcard(require("@atlaskit/form"));
31
+ var _pluginKey = require("../../plugin-key");
32
+ var _constants = require("./constants");
33
+ var _ErrorMessage = _interopRequireDefault(require("./ErrorMessage"));
34
+ var _FormContent = _interopRequireDefault(require("./FormContent"));
35
+ var _FormErrorBoundary = require("./FormErrorBoundary");
36
+ var _Header = _interopRequireDefault(require("./Header"));
37
+ var _LoadingState = _interopRequireDefault(require("./LoadingState"));
38
+ var _messages = require("./messages");
39
+ var _transformers = require("./transformers");
40
+ var _utils = require("./utils");
41
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
43
+ 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; }
44
+ 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) { (0, _defineProperty2.default)(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; }
45
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
46
+ 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; } }
47
+ function ConfigForm(_ref) {
48
+ var canSave = _ref.canSave,
49
+ errorMessage = _ref.errorMessage,
50
+ extensionManifest = _ref.extensionManifest,
51
+ fields = _ref.fields,
52
+ firstVisibleFieldName = _ref.firstVisibleFieldName,
53
+ hasParsedParameters = _ref.hasParsedParameters,
54
+ intl = _ref.intl,
55
+ isLoading = _ref.isLoading,
56
+ onCancel = _ref.onCancel,
57
+ onFieldChange = _ref.onFieldChange,
58
+ parameters = _ref.parameters,
59
+ submitting = _ref.submitting,
60
+ contextIdentifierProvider = _ref.contextIdentifierProvider,
61
+ featureFlags = _ref.featureFlags;
62
+ (0, _react.useEffect)(function () {
63
+ if (fields) {
64
+ var firstDuplicateField = (0, _transformers.findDuplicateFields)(fields);
65
+ if (firstDuplicateField) {
66
+ throw new Error("Possible duplicate field name: `".concat(firstDuplicateField.name, "`."));
67
+ }
68
+ }
69
+ }, [fields]);
70
+ if (isLoading || !hasParsedParameters && errorMessage === null) {
71
+ return /*#__PURE__*/_react.default.createElement(_LoadingState.default, null);
72
+ }
73
+ if (errorMessage || !fields) {
74
+ return /*#__PURE__*/_react.default.createElement(_ErrorMessage.default, {
75
+ errorMessage: errorMessage || ''
76
+ });
77
+ }
78
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_FormContent.default, {
79
+ fields: fields,
80
+ parameters: parameters,
81
+ extensionManifest: extensionManifest,
82
+ onFieldChange: onFieldChange,
83
+ firstVisibleFieldName: firstVisibleFieldName,
84
+ contextIdentifierProvider: contextIdentifierProvider,
85
+ featureFlags: featureFlags
86
+ }), /*#__PURE__*/_react.default.createElement("div", {
87
+ style: canSave ? {} : {
88
+ display: 'none'
89
+ }
90
+ }, /*#__PURE__*/_react.default.createElement(_form.FormFooter, {
91
+ align: "start"
92
+ }, /*#__PURE__*/_react.default.createElement(_buttonGroup.default, null, /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
93
+ type: "submit",
94
+ appearance: "primary"
95
+ }, intl.formatMessage(_messages.messages.submit)), /*#__PURE__*/_react.default.createElement(_customThemeButton.default, {
96
+ appearance: "default",
97
+ isDisabled: submitting,
98
+ onClick: onCancel
99
+ }, intl.formatMessage(_messages.messages.cancel))))));
100
+ }
101
+ var ConfigFormIntl = (0, _reactIntlNext.injectIntl)(ConfigForm);
102
+ var WithOnFieldChange = function WithOnFieldChange(_ref2) {
103
+ var getState = _ref2.getState,
104
+ autoSave = _ref2.autoSave,
105
+ handleSubmit = _ref2.handleSubmit,
106
+ children = _ref2.children;
107
+ var getStateRef = (0, _react.useRef)(getState);
108
+ (0, _react.useEffect)(function () {
109
+ getStateRef.current = getState;
110
+ }, [getState]);
111
+ var handleFieldChange = (0, _react.useCallback)(function (name, isDirty) {
112
+ if (!autoSave) {
113
+ return;
114
+ }
115
+
116
+ // Don't trigger submit if nothing actually changed
117
+ if (!isDirty) {
118
+ return;
119
+ }
120
+ var _getStateRef$current = getStateRef.current(),
121
+ errors = _getStateRef$current.errors,
122
+ values = _getStateRef$current.values;
123
+
124
+ // Get only values that does not contain errors
125
+ var validValues = {};
126
+ for (var _i = 0, _Object$keys = Object.keys(values); _i < _Object$keys.length; _i++) {
127
+ var key = _Object$keys[_i];
128
+ if (!errors[key]) {
129
+ // not has error
130
+ validValues[key] = values[key];
131
+ }
132
+ }
133
+ handleSubmit(validValues);
134
+ }, [autoSave, handleSubmit]);
135
+ return children(handleFieldChange);
136
+ };
137
+ // eslint-disable-next-line @repo/internal/react/no-class-components
138
+ var ConfigPanel = /*#__PURE__*/function (_React$Component) {
139
+ (0, _inherits2.default)(ConfigPanel, _React$Component);
140
+ var _super = _createSuper(ConfigPanel);
141
+ function ConfigPanel(props) {
142
+ var _this;
143
+ (0, _classCallCheck2.default)(this, ConfigPanel);
144
+ _this = _super.call(this, props);
145
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleKeyDown", function (e) {
146
+ if ((e.key === 'Esc' || e.key === 'Escape') && _this.props.closeOnEsc) {
147
+ _this.props.onCancel();
148
+ }
149
+ });
150
+ // https://product-fabric.atlassian.net/browse/DST-2697
151
+ // workaround for DST-2697, remove this function once fix.
152
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "backfillTabFormData", function (fields, formData, currentParameters) {
153
+ var getRelevantData = function getRelevantData(field, formParams, currentParams, backfill) {
154
+ if (field.hasGroupedValues && !(field.name in backfill)) {
155
+ backfill[field.name] = {};
156
+ }
157
+ var actualFormParams = field.hasGroupedValues ? formParams[field.name] || {} : formParams;
158
+ var actualCurrentParams = field.hasGroupedValues ? currentParams[field.name] || {} : currentParams;
159
+ var actualBackfillParams = field.hasGroupedValues ? backfill[field.name] : backfill;
160
+ return {
161
+ formParams: actualFormParams,
162
+ currentParams: actualCurrentParams,
163
+ backfillParams: actualBackfillParams
164
+ };
165
+ };
166
+
167
+ // Traverse any tab structures and backfill field values on tabs
168
+ // which aren't shown. This filter should be ok because tabs are
169
+ // currently only allowed on top level
170
+ var mergedTabGroups = fields.filter(_extensions.isTabGroup).reduce(function (missingBackfill, tabGroup) {
171
+ var _getRelevantData = getRelevantData(tabGroup, formData, currentParameters, missingBackfill),
172
+ tabGroupFormData = _getRelevantData.formParams,
173
+ tabGroupCurrentData = _getRelevantData.currentParams,
174
+ tabGroupParams = _getRelevantData.backfillParams;
175
+
176
+ // Loop through tabs and see what fields are missing from current data
177
+ tabGroup.fields.forEach(function (tabField) {
178
+ var _getRelevantData2 = getRelevantData(tabField, tabGroupFormData, tabGroupCurrentData, tabGroupParams),
179
+ tabFormData = _getRelevantData2.formParams,
180
+ tabCurrentData = _getRelevantData2.currentParams,
181
+ tabParams = _getRelevantData2.backfillParams;
182
+ tabField.fields.forEach(function (field) {
183
+ if (field.name in tabFormData || !(field.name in tabCurrentData)) {
184
+ return;
185
+ }
186
+ tabParams[field.name] = tabCurrentData[field.name];
187
+ });
188
+ });
189
+ return missingBackfill;
190
+ }, {});
191
+ return (0, _merge.default)({}, mergedTabGroups, formData);
192
+ });
193
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleSubmit", /*#__PURE__*/function () {
194
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(formData) {
195
+ var _this$props, fields, extensionManifest, onChange, autoSaveReject, serializedData;
196
+ return _regenerator.default.wrap(function _callee$(_context) {
197
+ while (1) switch (_context.prev = _context.next) {
198
+ case 0:
199
+ _this$props = _this.props, fields = _this$props.fields, extensionManifest = _this$props.extensionManifest, onChange = _this$props.onChange, autoSaveReject = _this$props.autoSaveReject;
200
+ if (!(!extensionManifest || !fields)) {
201
+ _context.next = 4;
202
+ break;
203
+ }
204
+ if (!extensionManifest) {
205
+ autoSaveReject === null || autoSaveReject === void 0 || autoSaveReject(new Error('Extension manifest not loaded'));
206
+ } else if (!fields) {
207
+ autoSaveReject === null || autoSaveReject === void 0 || autoSaveReject(new Error('Config fields not loaded'));
208
+ }
209
+ return _context.abrupt("return");
210
+ case 4:
211
+ _context.prev = 4;
212
+ _context.next = 7;
213
+ return (0, _transformers.serialize)(extensionManifest, _this.backfillTabFormData(fields, formData, _this.state.currentParameters), fields);
214
+ case 7:
215
+ serializedData = _context.sent;
216
+ onChange(serializedData);
217
+ _context.next = 15;
218
+ break;
219
+ case 11:
220
+ _context.prev = 11;
221
+ _context.t0 = _context["catch"](4);
222
+ autoSaveReject === null || autoSaveReject === void 0 || autoSaveReject(_context.t0);
223
+ // eslint-disable-next-line no-console
224
+ console.error("Error serializing parameters", _context.t0);
225
+ case 15:
226
+ case "end":
227
+ return _context.stop();
228
+ }
229
+ }, _callee, null, [[4, 11]]);
230
+ }));
231
+ return function (_x) {
232
+ return _ref3.apply(this, arguments);
233
+ };
234
+ }());
235
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "parseParameters", /*#__PURE__*/function () {
236
+ var _ref4 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(fields, parameters) {
237
+ var extensionManifest, currentParameters;
238
+ return _regenerator.default.wrap(function _callee2$(_context2) {
239
+ while (1) switch (_context2.prev = _context2.next) {
240
+ case 0:
241
+ extensionManifest = _this.props.extensionManifest;
242
+ if (!(!extensionManifest || !fields || fields.length === 0)) {
243
+ _context2.next = 3;
244
+ break;
245
+ }
246
+ return _context2.abrupt("return");
247
+ case 3:
248
+ if (!(typeof parameters === 'undefined')) {
249
+ _context2.next = 6;
250
+ break;
251
+ }
252
+ _this.setState({
253
+ currentParameters: {},
254
+ hasParsedParameters: true
255
+ });
256
+ return _context2.abrupt("return");
257
+ case 6:
258
+ _context2.next = 8;
259
+ return (0, _transformers.deserialize)(extensionManifest, parameters, fields);
260
+ case 8:
261
+ currentParameters = _context2.sent;
262
+ _this.setState({
263
+ currentParameters: currentParameters,
264
+ hasParsedParameters: true
265
+ });
266
+ case 10:
267
+ case "end":
268
+ return _context2.stop();
269
+ }
270
+ }, _callee2);
271
+ }));
272
+ return function (_x2, _x3) {
273
+ return _ref4.apply(this, arguments);
274
+ };
275
+ }());
276
+ // memoized to prevent rerender on new parameters
277
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderHeader", (0, _memoizeOne.default)(function (extensionManifest) {
278
+ var _this$props2 = _this.props,
279
+ onCancel = _this$props2.onCancel,
280
+ showHeader = _this$props2.showHeader;
281
+
282
+ // Use a temporary allowlist of top 3 macros to test out a new "Documentation" CTA ("Need help?")
283
+ // This will be removed when Top 5 Modernized Macros updates are rolled out
284
+ var modernizedMacrosList = ['children', 'recently-updated', 'excerpt'];
285
+ var enableHelpCTA = modernizedMacrosList.includes(extensionManifest.key);
286
+ if (!showHeader) {
287
+ return null;
288
+ }
289
+ return /*#__PURE__*/_react.default.createElement(_Header.default, {
290
+ icon: extensionManifest.icons['48'],
291
+ title: extensionManifest.title,
292
+ description: extensionManifest.description,
293
+ summary: extensionManifest.summary,
294
+ documentationUrl: extensionManifest.documentationUrl,
295
+ onClose: onCancel,
296
+ enableHelpCTA: enableHelpCTA
297
+ });
298
+ }));
299
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getFirstVisibleFieldName", (0, _memoizeOne.default)(function (fields) {
300
+ function nonHidden(field) {
301
+ if ('isHidden' in field) {
302
+ return !field.isHidden;
303
+ }
304
+ return true;
305
+ }
306
+
307
+ // finds the first visible field, true for FieldSets too
308
+ var firstVisibleField = fields.find(nonHidden);
309
+ var newFirstVisibleFieldName;
310
+ if (firstVisibleField) {
311
+ // if it was a fieldset, go deeper trying to locate the field
312
+ if (firstVisibleField.type === 'fieldset') {
313
+ var firstVisibleFieldWithinFieldset = firstVisibleField.fields.find(nonHidden);
314
+ newFirstVisibleFieldName = firstVisibleFieldWithinFieldset && firstVisibleFieldWithinFieldset.name;
315
+ } else {
316
+ newFirstVisibleFieldName = firstVisibleField.name;
317
+ }
318
+ }
319
+ return newFirstVisibleFieldName;
320
+ }));
321
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setFirstVisibleFieldName", function (fields) {
322
+ var newFirstVisibleFieldName = _this.getFirstVisibleFieldName(fields);
323
+ if (newFirstVisibleFieldName !== _this.state.firstVisibleFieldName) {
324
+ _this.setState({
325
+ firstVisibleFieldName: newFirstVisibleFieldName
326
+ });
327
+ }
328
+ });
329
+ _this.state = {
330
+ hasParsedParameters: false,
331
+ currentParameters: {},
332
+ firstVisibleFieldName: props.fields ? _this.getFirstVisibleFieldName(props.fields) : undefined
333
+ };
334
+ _this.onFieldChange = null;
335
+ return _this;
336
+ }
337
+ (0, _createClass2.default)(ConfigPanel, [{
338
+ key: "componentDidMount",
339
+ value: function componentDidMount() {
340
+ var _this$props3 = this.props,
341
+ fields = _this$props3.fields,
342
+ parameters = _this$props3.parameters;
343
+ this.parseParameters(fields, parameters);
344
+ }
345
+ }, {
346
+ key: "componentWillUnmount",
347
+ value: function componentWillUnmount() {
348
+ var _this$props4 = this.props,
349
+ createAnalyticsEvent = _this$props4.createAnalyticsEvent,
350
+ extensionManifest = _this$props4.extensionManifest,
351
+ fields = _this$props4.fields;
352
+ var currentParameters = this.state.currentParameters;
353
+ (0, _analytics.fireAnalyticsEvent)(createAnalyticsEvent)({
354
+ payload: {
355
+ action: _analytics.ACTION.CLOSED,
356
+ actionSubject: _analytics.ACTION_SUBJECT.CONFIG_PANEL,
357
+ eventType: _analytics.EVENT_TYPE.UI,
358
+ attributes: _objectSpread({
359
+ extensionKey: extensionManifest === null || extensionManifest === void 0 ? void 0 : extensionManifest.key,
360
+ extensionType: extensionManifest === null || extensionManifest === void 0 ? void 0 : extensionManifest.type
361
+ }, extensionManifest !== null && extensionManifest !== void 0 && extensionManifest.key && _constants.ALLOWED_LOGGED_MACRO_PARAMS[extensionManifest.key] ? {
362
+ parameters: (0, _utils.getLoggedParameters)(extensionManifest.key, currentParameters, fields)
363
+ } : {})
364
+ }
365
+ });
366
+ }
367
+ }, {
368
+ key: "componentDidUpdate",
369
+ value: function componentDidUpdate(prevProps) {
370
+ var _this$props5 = this.props,
371
+ parameters = _this$props5.parameters,
372
+ fields = _this$props5.fields,
373
+ autoSaveTrigger = _this$props5.autoSaveTrigger,
374
+ extensionManifest = _this$props5.extensionManifest;
375
+ if (parameters && parameters !== prevProps.parameters || fields && (!prevProps.fields || !(0, _isEqual2.default)(fields, prevProps.fields))) {
376
+ this.parseParameters(fields, parameters);
377
+ }
378
+ if (fields && (!prevProps.fields || !(0, _isEqual2.default)(fields, prevProps.fields))) {
379
+ this.setFirstVisibleFieldName(fields);
380
+ }
381
+ if (prevProps.autoSaveTrigger !== autoSaveTrigger) {
382
+ if (this.onFieldChange) {
383
+ this.onFieldChange('', true);
384
+ }
385
+ }
386
+ if (prevProps.extensionManifest === undefined && prevProps.extensionManifest !== extensionManifest) {
387
+ // This will only be fired once when extensionManifest is loaded initially
388
+ // Can't do this in componentDidMount because extensionManifest is still undefined at that point
389
+ (0, _analytics.fireAnalyticsEvent)(this.props.createAnalyticsEvent)({
390
+ payload: {
391
+ action: _analytics.ACTION.OPENED,
392
+ actionSubject: _analytics.ACTION_SUBJECT.CONFIG_PANEL,
393
+ eventType: _analytics.EVENT_TYPE.UI,
394
+ attributes: {
395
+ extensionKey: extensionManifest === null || extensionManifest === void 0 ? void 0 : extensionManifest.key,
396
+ extensionType: extensionManifest === null || extensionManifest === void 0 ? void 0 : extensionManifest.type
397
+ }
398
+ }
399
+ });
400
+ }
401
+ }
402
+ }, {
403
+ key: "render",
404
+ value: function render() {
405
+ var _this2 = this;
406
+ var _this$props6 = this.props,
407
+ extensionManifest = _this$props6.extensionManifest,
408
+ featureFlags = _this$props6.featureFlags;
409
+ if (!extensionManifest) {
410
+ return /*#__PURE__*/_react.default.createElement(_LoadingState.default, null);
411
+ }
412
+ var _this$props7 = this.props,
413
+ autoSave = _this$props7.autoSave,
414
+ errorMessage = _this$props7.errorMessage,
415
+ fields = _this$props7.fields,
416
+ isLoading = _this$props7.isLoading,
417
+ onCancel = _this$props7.onCancel;
418
+ var _this$state = this.state,
419
+ currentParameters = _this$state.currentParameters,
420
+ hasParsedParameters = _this$state.hasParsedParameters,
421
+ firstVisibleFieldName = _this$state.firstVisibleFieldName;
422
+ var handleSubmit = this.handleSubmit,
423
+ handleKeyDown = this.handleKeyDown;
424
+ return /*#__PURE__*/_react.default.createElement(_form.default, {
425
+ onSubmit: handleSubmit
426
+ }, function (_ref5) {
427
+ var formProps = _ref5.formProps,
428
+ getState = _ref5.getState,
429
+ submitting = _ref5.submitting;
430
+ return /*#__PURE__*/_react.default.createElement(WithOnFieldChange, {
431
+ autoSave: !!autoSave,
432
+ getState: getState,
433
+ handleSubmit: handleSubmit
434
+ }, function (onFieldChange) {
435
+ _this2.onFieldChange = onFieldChange;
436
+ return /*#__PURE__*/_react.default.createElement("form", (0, _extends2.default)({}, formProps, {
437
+ noValidate: true,
438
+ onKeyDown: handleKeyDown,
439
+ "data-testid": "extension-config-panel"
440
+ }), _this2.renderHeader(extensionManifest), /*#__PURE__*/_react.default.createElement(_withPluginState.WithPluginState, {
441
+ plugins: {
442
+ extension: _pluginKey.pluginKey
443
+ },
444
+ render: function render(_ref6) {
445
+ var extension = _ref6.extension;
446
+ return /*#__PURE__*/_react.default.createElement(_FormErrorBoundary.FormErrorBoundary, {
447
+ contextIdentifierProvider: extension === null || extension === void 0 ? void 0 : extension.contextIdentifierProvider,
448
+ extensionKey: extensionManifest.key,
449
+ fields: fields || []
450
+ }, /*#__PURE__*/_react.default.createElement(ConfigFormIntl, {
451
+ canSave: !autoSave,
452
+ errorMessage: errorMessage,
453
+ extensionManifest: extensionManifest,
454
+ fields: fields,
455
+ firstVisibleFieldName: firstVisibleFieldName,
456
+ hasParsedParameters: hasParsedParameters,
457
+ isLoading: isLoading || false,
458
+ onCancel: onCancel,
459
+ onFieldChange: onFieldChange,
460
+ parameters: currentParameters,
461
+ submitting: submitting,
462
+ contextIdentifierProvider: extension === null || extension === void 0 ? void 0 : extension.contextIdentifierProvider,
463
+ featureFlags: featureFlags
464
+ }));
465
+ }
466
+ }));
467
+ });
468
+ });
469
+ }
470
+ }]);
471
+ return ConfigPanel;
472
+ }(_react.default.Component);
473
+ var _default = exports.default = (0, _analyticsNext.withAnalyticsContext)({
474
+ source: 'ConfigPanel'
475
+ })((0, _analyticsNext.withAnalyticsEvents)()(ConfigPanel));
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = FieldsLoader;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _ConfigPanel = _interopRequireDefault(require("./ConfigPanel"));
12
+ var _useStateFromPromise3 = require("./use-state-from-promise");
13
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
14
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
15
+ var getFieldsDefinitionFn = function getFieldsDefinitionFn(extensionManifest, nodeKey) {
16
+ if (extensionManifest && extensionManifest.modules.nodes && extensionManifest.modules.nodes[nodeKey] && extensionManifest.modules.nodes[nodeKey].getFieldsDefinition) {
17
+ return extensionManifest.modules.nodes[nodeKey].getFieldsDefinition;
18
+ }
19
+ };
20
+
21
+ // having the default value in the props instead of a reference will cause excessive rerenders
22
+ var defaultEmptyObject = {};
23
+ var FieldDefinitionsPromiseResolver = function FieldDefinitionsPromiseResolver(props) {
24
+ var extensionManifest = props.extensionManifest,
25
+ nodeKey = props.nodeKey,
26
+ extensionParameters = props.extensionParameters,
27
+ setErrorMessage = props.setErrorMessage;
28
+ var _useState = (0, _react.useState)(undefined),
29
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
30
+ fields = _useState2[0],
31
+ setFields = _useState2[1];
32
+
33
+ // Resolve the promise
34
+ // useStateFromPromise() has an issue which isn't compatible with
35
+ // DynamicFieldDefinitions when it returns a function as setState()
36
+ // will immediately run the function returned and pass it the currentState.
37
+ (0, _react.useEffect)(function () {
38
+ if (!extensionManifest) {
39
+ return;
40
+ }
41
+ var promiseFn = getFieldsDefinitionFn(extensionManifest, nodeKey);
42
+ if (typeof promiseFn !== 'function') {
43
+ setFields(undefined);
44
+ return;
45
+ }
46
+ promiseFn(extensionParameters).catch(function (err) {
47
+ if (err && typeof err.message === 'string') {
48
+ setErrorMessage(err.message);
49
+ }
50
+ setFields(undefined);
51
+ }).then(function (value) {
52
+ if (Array.isArray(value)) {
53
+ // value: FieldDefinition[]
54
+ setFields(value);
55
+ } else if (typeof value === 'function') {
56
+ try {
57
+ // value: DynamicFieldDefinitions
58
+ var dynamicFields = value(extensionParameters);
59
+ setFields(dynamicFields);
60
+ } catch (err) {
61
+ if (err instanceof Error) {
62
+ setErrorMessage(err.message);
63
+ }
64
+ setFields(undefined);
65
+ }
66
+ } else {
67
+ // value: undefined
68
+ setFields(undefined);
69
+ }
70
+ });
71
+ }, [extensionManifest, nodeKey, extensionParameters, setErrorMessage]);
72
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, props.children(fields));
73
+ };
74
+ function FieldsLoader(_ref) {
75
+ var extensionType = _ref.extensionType,
76
+ extensionKey = _ref.extensionKey,
77
+ nodeKey = _ref.nodeKey,
78
+ extensionProvider = _ref.extensionProvider,
79
+ _ref$extensionParamet = _ref.extensionParameters,
80
+ extensionParameters = _ref$extensionParamet === void 0 ? defaultEmptyObject : _ref$extensionParamet,
81
+ _ref$parameters = _ref.parameters,
82
+ parameters = _ref$parameters === void 0 ? defaultEmptyObject : _ref$parameters,
83
+ autoSave = _ref.autoSave,
84
+ autoSaveTrigger = _ref.autoSaveTrigger,
85
+ autoSaveReject = _ref.autoSaveReject,
86
+ closeOnEsc = _ref.closeOnEsc,
87
+ showHeader = _ref.showHeader,
88
+ featureFlags = _ref.featureFlags,
89
+ onChange = _ref.onChange,
90
+ onCancel = _ref.onCancel;
91
+ var _useStateFromPromise = (0, _useStateFromPromise3.useStateFromPromise)(function () {
92
+ return extensionProvider.getExtension(extensionType, extensionKey);
93
+ }, [extensionProvider, extensionType, extensionKey]),
94
+ _useStateFromPromise2 = (0, _slicedToArray2.default)(_useStateFromPromise, 1),
95
+ extensionManifest = _useStateFromPromise2[0];
96
+ var _useState3 = (0, _react.useState)(null),
97
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
98
+ errorMessage = _useState4[0],
99
+ setErrorMessage = _useState4[1];
100
+ return /*#__PURE__*/_react.default.createElement(FieldDefinitionsPromiseResolver, {
101
+ setErrorMessage: setErrorMessage,
102
+ extensionManifest: extensionManifest,
103
+ nodeKey: nodeKey,
104
+ extensionParameters: extensionParameters
105
+ }, function (fields) {
106
+ return /*#__PURE__*/_react.default.createElement(_ConfigPanel.default, {
107
+ extensionManifest: extensionManifest,
108
+ isLoading: !extensionManifest || errorMessage === null && !fields,
109
+ fields: fields,
110
+ parameters: parameters,
111
+ autoSave: autoSave,
112
+ autoSaveTrigger: autoSaveTrigger,
113
+ autoSaveReject: autoSaveReject,
114
+ closeOnEsc: closeOnEsc,
115
+ showHeader: showHeader,
116
+ onChange: onChange,
117
+ onCancel: onCancel,
118
+ errorMessage: errorMessage,
119
+ featureFlags: featureFlags
120
+ });
121
+ });
122
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _reactLoadable = _interopRequireDefault(require("react-loadable"));
10
+ var _LoadingState = _interopRequireDefault(require("./LoadingState"));
11
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || (0, _typeof2.default)(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
+ var _default = exports.default = (0, _reactLoadable.default)({
14
+ loader: function loader() {
15
+ return Promise.resolve().then(function () {
16
+ return _interopRequireWildcard(require( /* webpackChunkName: "@atlaskit-internal_editor-core-config-panel" */
17
+ './ConfigPanelFieldsLoader'));
18
+ }).then(function (module) {
19
+ return module.default;
20
+ });
21
+ },
22
+ loading: _LoadingState.default
23
+ });