@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,45 @@
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/react';
3
+ import Avatar from '@atlaskit/avatar';
4
+ var itemWrapperStyles = css({
5
+ display: 'flex',
6
+ alignItems: 'center',
7
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
8
+ small: {
9
+ margin: 0,
10
+ display: 'block',
11
+ color: 'currentColor'
12
+ }
13
+ });
14
+ var iconWrapperStyles = css({
15
+ lineHeight: 1
16
+ });
17
+ var iconWrapperMenuStyles = css({
18
+ alignSelf: 'flex-start',
19
+ marginTop: '3px'
20
+ });
21
+ var getIconSize = function getIconSize(context, description) {
22
+ if (context === 'value' || !description) {
23
+ return 'xsmall';
24
+ }
25
+ return 'small';
26
+ };
27
+ export var formatOptionLabel = function formatOptionLabel(_ref, _ref2) {
28
+ var label = _ref.label,
29
+ icon = _ref.icon,
30
+ description = _ref.description;
31
+ var context = _ref2.context;
32
+ return jsx("div", {
33
+ css: itemWrapperStyles
34
+ }, jsx("span", {
35
+ css: [iconWrapperStyles, context === 'menu' && iconWrapperMenuStyles]
36
+ }, typeof icon === 'string' ? jsx(Avatar, {
37
+ src: icon,
38
+ size: getIconSize(context, description),
39
+ appearance: "square"
40
+ }) : icon), jsx("div", {
41
+ style: {
42
+ paddingLeft: icon ? "var(--ds-space-100, 8px)" : 0
43
+ }
44
+ }, jsx("p", null, label, description && context !== 'value' && jsx("small", null, description))));
45
+ };
@@ -0,0 +1,65 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["onChange"];
4
+ import React, { Fragment } from 'react';
5
+ import { Field } from '@atlaskit/form';
6
+ import TextArea from '@atlaskit/textarea';
7
+ import TextField from '@atlaskit/textfield';
8
+ import FieldMessages from '../FieldMessages';
9
+ import { validate as _validate } from '../utils';
10
+ export default function String(_ref) {
11
+ var name = _ref.name,
12
+ field = _ref.field,
13
+ autoFocus = _ref.autoFocus,
14
+ onFieldChange = _ref.onFieldChange,
15
+ placeholder = _ref.placeholder;
16
+ var label = field.label,
17
+ description = field.description,
18
+ defaultValue = field.defaultValue,
19
+ isRequired = field.isRequired;
20
+ return /*#__PURE__*/React.createElement(Field, {
21
+ name: name,
22
+ label: label,
23
+ defaultValue: defaultValue || '',
24
+ isRequired: isRequired,
25
+ validate: function validate(value) {
26
+ return _validate(field, value || '');
27
+ },
28
+ testId: "config-panel-string-".concat(name)
29
+ }, function (_ref2) {
30
+ var fieldProps = _ref2.fieldProps,
31
+ error = _ref2.error,
32
+ meta = _ref2.meta;
33
+ if (field.style === 'multiline') {
34
+ var _onChange = fieldProps.onChange,
35
+ restFieldProps = _objectWithoutProperties(fieldProps, _excluded);
36
+ var options = field.options;
37
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(TextArea, _extends({}, restFieldProps, options, {
38
+ onChange: function onChange(e) {
39
+ return _onChange(e.currentTarget.value);
40
+ },
41
+ onBlur: function onBlur() {
42
+ fieldProps.onBlur();
43
+ onFieldChange(name, meta.dirty);
44
+ },
45
+ placeholder: placeholder,
46
+ "data-testid": "config-panel-textarea-".concat(name)
47
+ })), /*#__PURE__*/React.createElement(FieldMessages, {
48
+ error: error,
49
+ description: description
50
+ }));
51
+ }
52
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(TextField, _extends({}, fieldProps, {
53
+ type: "text",
54
+ autoFocus: autoFocus,
55
+ onBlur: function onBlur() {
56
+ fieldProps.onBlur();
57
+ onFieldChange(name, meta.dirty);
58
+ },
59
+ placeholder: placeholder
60
+ })), /*#__PURE__*/React.createElement(FieldMessages, {
61
+ error: error,
62
+ description: description
63
+ }));
64
+ });
65
+ }
@@ -0,0 +1,62 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /** @jsx jsx */
3
+ import React, { useState } from 'react';
4
+ import { css, jsx } from '@emotion/react';
5
+ import { injectIntl } from 'react-intl-next';
6
+ import Tabs, { Tab, TabList, TabPanel } from '@atlaskit/tabs';
7
+ var tabWrapperStyles = css({
8
+ // increase specificity to make sure the tab style is overridden
9
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
10
+ "&&& [role='tabpanel'][tabindex]": {
11
+ padding: 0
12
+ },
13
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
14
+ "&&& [role='tablist']::before": {
15
+ left: 0,
16
+ right: 0
17
+ }
18
+ });
19
+ var panelWrapperStyles = css({
20
+ flexGrow: 1,
21
+ maxWidth: '100%'
22
+ });
23
+ var TabGroupImpl = function TabGroupImpl(props) {
24
+ var field = props.field,
25
+ renderPanel = props.renderPanel;
26
+ var fields = field.fields;
27
+ var _useState = useState(function () {
28
+ var activeTabName = field.defaultTab || fields[0].name;
29
+ var index = fields.findIndex(function (f) {
30
+ return f.name === activeTabName;
31
+ });
32
+ return Math.max(index, 0);
33
+ }),
34
+ _useState2 = _slicedToArray(_useState, 2),
35
+ activeTab = _useState2[0],
36
+ setActiveTab = _useState2[1];
37
+ var onChange = React.useCallback(function (index) {
38
+ setActiveTab(index);
39
+ }, [setActiveTab]);
40
+ return jsx("div", {
41
+ css: tabWrapperStyles
42
+ }, jsx(Tabs, {
43
+ id: "configPanelTabs-".concat(field.name),
44
+ onChange: onChange,
45
+ selected: activeTab
46
+ }, jsx(TabList, null, fields.map(function (_ref) {
47
+ var name = _ref.name,
48
+ label = _ref.label;
49
+ return jsx(Tab, {
50
+ key: "tab-".concat(name)
51
+ }, label);
52
+ })), fields.map(function (field) {
53
+ return jsx(TabPanel, {
54
+ key: "panel-".concat(field.name)
55
+ }, jsx("div", {
56
+ css: panelWrapperStyles
57
+ }, renderPanel(field)));
58
+ })));
59
+ };
60
+ TabGroupImpl.displayName = 'TabGroup';
61
+ var TabGroup = injectIntl(TabGroupImpl);
62
+ export default TabGroup;
@@ -0,0 +1,10 @@
1
+ import React, { useEffect } from 'react';
2
+ import { HelperMessage } from '@atlaskit/form';
3
+ export default function (_ref) {
4
+ var errorMessage = _ref.errorMessage;
5
+ useEffect(function () {
6
+ // eslint-disable-next-line no-console
7
+ console.error(errorMessage);
8
+ }, [errorMessage]);
9
+ return /*#__PURE__*/React.createElement(HelperMessage, null, errorMessage);
10
+ }
@@ -0,0 +1,258 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5
+ var _excluded = ["value"];
6
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
7
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
8
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
10
+ import React, { useEffect, useState } from 'react';
11
+ import { getUserFieldContextProvider } from '@atlaskit/editor-common/extensions';
12
+ import { Field } from '@atlaskit/form';
13
+ import SmartUserPicker, { hydrateDefaultValues } from '@atlaskit/smart-user-picker';
14
+ import FieldMessages from '../FieldMessages';
15
+ import { validate as _validate } from '../utils';
16
+ import UnhandledType from './UnhandledType';
17
+ function makeCompat(defaultValue) {
18
+ if (!defaultValue) {
19
+ return null;
20
+ }
21
+ if (Array.isArray(defaultValue)) {
22
+ return defaultValue.map(function (id) {
23
+ return {
24
+ type: 'user',
25
+ id: id
26
+ };
27
+ });
28
+ }
29
+ return {
30
+ type: 'user',
31
+ id: defaultValue
32
+ };
33
+ }
34
+ function makeSafe(value) {
35
+ if (!value) {
36
+ return null;
37
+ }
38
+ if (Array.isArray(value)) {
39
+ var ids = [];
40
+ var _iterator = _createForOfIteratorHelper(value),
41
+ _step;
42
+ try {
43
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
44
+ var id = _step.value.id;
45
+ ids.push(id);
46
+ }
47
+ } catch (err) {
48
+ _iterator.e(err);
49
+ } finally {
50
+ _iterator.f();
51
+ }
52
+ return ids;
53
+ }
54
+ return value.id;
55
+ }
56
+ var isOptionData = function isOptionData(value) {
57
+ if (!value) {
58
+ return false;
59
+ }
60
+ return (Array.isArray(value) ? value : [value]).every(function (item) {
61
+ return 'name' in item;
62
+ });
63
+ };
64
+ function SafeSmartUserPicker(_ref) {
65
+ var context = _ref.context,
66
+ field = _ref.field,
67
+ formFieldProps = _ref.formFieldProps,
68
+ autoFocus = _ref.autoFocus,
69
+ onBlur = _ref.onBlur,
70
+ onChange = _ref.onChange;
71
+ var _useState = useState(null),
72
+ _useState2 = _slicedToArray(_useState, 2),
73
+ unsafeValue = _useState2[0],
74
+ setUnsafeValue = _useState2[1];
75
+ var siteId = context.siteId,
76
+ principalId = context.principalId,
77
+ fieldId = context.fieldId,
78
+ productKey = context.productKey,
79
+ containerId = context.containerId,
80
+ objectId = context.objectId,
81
+ childObjectId = context.childObjectId,
82
+ productAttributes = context.productAttributes,
83
+ _context$includeUsers = context.includeUsers,
84
+ includeUsers = _context$includeUsers === void 0 ? true : _context$includeUsers;
85
+ var safeValue = formFieldProps.value,
86
+ formFieldPropsRest = _objectWithoutProperties(formFieldProps, _excluded);
87
+ var isMultiple = field.isMultiple,
88
+ placeholder = field.placeholder;
89
+ function onChangeUnsafe(newValue) {
90
+ setUnsafeValue(newValue);
91
+ onChange(makeSafe(newValue));
92
+ }
93
+ useEffect(function () {
94
+ var cancel = false;
95
+ function hydrate() {
96
+ return _hydrate.apply(this, arguments);
97
+ }
98
+ function _hydrate() {
99
+ _hydrate = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
100
+ var hydrated;
101
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
102
+ while (1) switch (_context.prev = _context.next) {
103
+ case 0:
104
+ _context.next = 2;
105
+ return hydrateDefaultValues(undefined,
106
+ // no need to override baseUrl
107
+ makeCompat(safeValue), productKey);
108
+ case 2:
109
+ hydrated = _context.sent;
110
+ if (!(cancel || !isOptionData(hydrated))) {
111
+ _context.next = 5;
112
+ break;
113
+ }
114
+ return _context.abrupt("return");
115
+ case 5:
116
+ setUnsafeValue(hydrated);
117
+ case 6:
118
+ case "end":
119
+ return _context.stop();
120
+ }
121
+ }, _callee);
122
+ }));
123
+ return _hydrate.apply(this, arguments);
124
+ }
125
+ hydrate();
126
+ return function () {
127
+ cancel = true;
128
+ };
129
+ }, [safeValue, productKey]);
130
+ return /*#__PURE__*/React.createElement(SmartUserPicker, _extends({}, formFieldPropsRest, {
131
+ onChange: onChangeUnsafe,
132
+ autoFocus: autoFocus,
133
+ onBlur: onBlur,
134
+ maxOptions: 10,
135
+ isClearable: true,
136
+ isMulti: isMultiple,
137
+ includeUsers: includeUsers,
138
+ includeGroups: false,
139
+ includeTeams: false,
140
+ fieldId: fieldId,
141
+ principalId: principalId,
142
+ siteId: siteId,
143
+ productKey: productKey,
144
+ objectId: objectId,
145
+ containerId: containerId,
146
+ childObjectId: childObjectId,
147
+ placeholder: placeholder,
148
+ productAttributes: productAttributes,
149
+ value: unsafeValue,
150
+ width: "100%"
151
+ }));
152
+ }
153
+ export default function UserSelect(_ref2) {
154
+ var name = _ref2.name,
155
+ autoFocus = _ref2.autoFocus,
156
+ extensionManifest = _ref2.extensionManifest,
157
+ field = _ref2.field,
158
+ onFieldChange = _ref2.onFieldChange;
159
+ var _useState3 = useState({}),
160
+ _useState4 = _slicedToArray(_useState3, 2),
161
+ context = _useState4[0],
162
+ setContext = _useState4[1];
163
+ var siteId = context.siteId,
164
+ principalId = context.principalId,
165
+ fieldId = context.fieldId,
166
+ productKey = context.productKey;
167
+ var label = field.label,
168
+ defaultValue = field.defaultValue,
169
+ description = field.description,
170
+ isRequired = field.isRequired,
171
+ options = field.options;
172
+ var type = options.provider.type;
173
+ useEffect(function () {
174
+ var cancel = false;
175
+ function fetchContext() {
176
+ return _fetchContext.apply(this, arguments);
177
+ }
178
+ function _fetchContext() {
179
+ _fetchContext = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
180
+ var _context2;
181
+ return _regeneratorRuntime.wrap(function _callee2$(_context3) {
182
+ while (1) switch (_context3.prev = _context3.next) {
183
+ case 0:
184
+ _context3.prev = 0;
185
+ _context3.next = 3;
186
+ return getUserFieldContextProvider(extensionManifest, field.options.provider);
187
+ case 3:
188
+ _context3.t0 = _context3.sent;
189
+ _context3.next = 6;
190
+ return (0, _context3.t0)();
191
+ case 6:
192
+ _context2 = _context3.sent;
193
+ if (!cancel) {
194
+ _context3.next = 9;
195
+ break;
196
+ }
197
+ return _context3.abrupt("return");
198
+ case 9:
199
+ setContext(_context2);
200
+ _context3.next = 15;
201
+ break;
202
+ case 12:
203
+ _context3.prev = 12;
204
+ _context3.t1 = _context3["catch"](0);
205
+ // eslint-disable-next-line no-console
206
+ console.error(_context3.t1);
207
+ case 15:
208
+ case "end":
209
+ return _context3.stop();
210
+ }
211
+ }, _callee2, null, [[0, 12]]);
212
+ }));
213
+ return _fetchContext.apply(this, arguments);
214
+ }
215
+ fetchContext();
216
+ return function () {
217
+ cancel = true;
218
+ };
219
+ }, [extensionManifest, field.options.provider]);
220
+ return /*#__PURE__*/React.createElement(Field, {
221
+ name: name,
222
+ label: label,
223
+ isRequired: isRequired,
224
+ defaultValue: defaultValue,
225
+ validate: function validate(value) {
226
+ return _validate(field, value);
227
+ },
228
+ testId: "config-panel-user-select-".concat(name)
229
+ }, function (_ref3) {
230
+ var fieldProps = _ref3.fieldProps,
231
+ error = _ref3.error;
232
+ // if any of these don't exists, the provider is missing
233
+ if (!siteId || !principalId || !fieldId || !productKey) {
234
+ return /*#__PURE__*/React.createElement(UnhandledType, {
235
+ key: name,
236
+ field: field,
237
+ errorMessage: "Field \"".concat(name, "\" can't be renderered. Missing provider for \"").concat(type, "\".")
238
+ });
239
+ }
240
+ function onChange(newValue) {
241
+ fieldProps.onChange(newValue);
242
+ onFieldChange(name, true);
243
+ }
244
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SafeSmartUserPicker, {
245
+ context: context,
246
+ field: field,
247
+ formFieldProps: fieldProps,
248
+ autoFocus: autoFocus || false,
249
+ onBlur: function onBlur() {
250
+ return onFieldChange(name, true);
251
+ },
252
+ onChange: onChange
253
+ }), /*#__PURE__*/React.createElement(FieldMessages, {
254
+ error: error,
255
+ description: description
256
+ }));
257
+ });
258
+ }
@@ -0,0 +1,5 @@
1
+ import _taggedTemplateLiteral from "@babel/runtime/helpers/taggedTemplateLiteral";
2
+ var _templateObject;
3
+ import { css } from '@emotion/react';
4
+ import { R500 } from '@atlaskit/theme/colors';
5
+ export var requiredIndicator = css(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n color: ", ";\n"])), "var(--ds-text-danger, ".concat(R500, ")"));
@@ -0,0 +1,223 @@
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 React from 'react';
5
+ import { isFieldset } from '@atlaskit/editor-common/extensions';
6
+ import Boolean from './Fields/Boolean';
7
+ import ColorPicker from './Fields/ColorPicker';
8
+ import CustomSelect from './Fields/CustomSelect';
9
+ import Date from './Fields/Date';
10
+ import DateRange from './Fields/DateRange';
11
+ import Enum from './Fields/Enum';
12
+ import Expand from './Fields/Expand';
13
+ import Fieldset from './Fields/Fieldset';
14
+ import Number from './Fields/Number';
15
+ import String from './Fields/String';
16
+ import TabGroup from './Fields/TabGroup';
17
+ import UnhandledType from './Fields/UnhandledType';
18
+ import UserSelect from './Fields/UserSelect';
19
+ import { FormErrorBoundary } from './FormErrorBoundary';
20
+ import RemovableField from './NestedForms/RemovableField';
21
+ import { getSafeParentedName } from './utils';
22
+ export function FieldComponent(_ref) {
23
+ var _parameters$errors;
24
+ var field = _ref.field,
25
+ parameters = _ref.parameters,
26
+ parentName = _ref.parentName,
27
+ extensionManifest = _ref.extensionManifest,
28
+ firstVisibleFieldName = _ref.firstVisibleFieldName,
29
+ onFieldChange = _ref.onFieldChange,
30
+ featureFlags = _ref.featureFlags;
31
+ var _field = field,
32
+ name = _field.name,
33
+ type = _field.type;
34
+ var autoFocus = name === firstVisibleFieldName;
35
+ var defaultValue = parameters[name];
36
+ var error = (_parameters$errors = parameters.errors) === null || _parameters$errors === void 0 ? void 0 : _parameters$errors[name];
37
+ var parentedName = getSafeParentedName(name, parentName);
38
+ var fieldDefaultValue = field.type === 'enum' ? field.defaultValue : undefined;
39
+ if (name in parameters && !isFieldset(field)) {
40
+ field = _objectSpread(_objectSpread({}, field), defaultValue != null ? {
41
+ defaultValue: defaultValue
42
+ } : {});
43
+ }
44
+ switch (field.type) {
45
+ case 'string':
46
+ return /*#__PURE__*/React.createElement(String, {
47
+ name: parentedName,
48
+ field: field,
49
+ autoFocus: autoFocus,
50
+ onFieldChange: onFieldChange,
51
+ placeholder: field.placeholder
52
+ });
53
+ case 'number':
54
+ return /*#__PURE__*/React.createElement(Number, {
55
+ name: parentedName,
56
+ field: field,
57
+ autoFocus: autoFocus,
58
+ onFieldChange: onFieldChange,
59
+ placeholder: field.placeholder
60
+ });
61
+ case 'boolean':
62
+ return /*#__PURE__*/React.createElement(Boolean, {
63
+ name: parentedName,
64
+ field: field,
65
+ onFieldChange: onFieldChange
66
+ });
67
+ case 'color':
68
+ return /*#__PURE__*/React.createElement(ColorPicker, {
69
+ name: parentedName,
70
+ field: field,
71
+ onFieldChange: onFieldChange,
72
+ featureFlags: featureFlags
73
+ });
74
+ case 'date':
75
+ return /*#__PURE__*/React.createElement(Date, {
76
+ name: parentedName,
77
+ field: field,
78
+ autoFocus: autoFocus,
79
+ onFieldChange: onFieldChange,
80
+ placeholder: field.placeholder
81
+ });
82
+ case 'date-range':
83
+ return /*#__PURE__*/React.createElement(DateRange, {
84
+ name: parentedName,
85
+ field: field,
86
+ autoFocus: autoFocus,
87
+ onFieldChange: onFieldChange
88
+ });
89
+ case 'enum':
90
+ return /*#__PURE__*/React.createElement(Enum, {
91
+ name: parentedName,
92
+ field: field,
93
+ autoFocus: autoFocus,
94
+ onFieldChange: onFieldChange,
95
+ fieldDefaultValue: fieldDefaultValue
96
+ });
97
+ case 'custom':
98
+ return /*#__PURE__*/React.createElement(CustomSelect, {
99
+ name: parentedName,
100
+ field: field,
101
+ extensionManifest: extensionManifest,
102
+ placeholder: field.placeholder,
103
+ autoFocus: autoFocus,
104
+ onFieldChange: onFieldChange,
105
+ parameters: parameters
106
+ });
107
+ case 'fieldset':
108
+ return /*#__PURE__*/React.createElement(Fieldset, {
109
+ name: parentedName,
110
+ field: field,
111
+ firstVisibleFieldName: firstVisibleFieldName,
112
+ onFieldChange: onFieldChange,
113
+ extensionManifest: extensionManifest,
114
+ parameters: defaultValue || {},
115
+ error: error,
116
+ formComponent: FormContent
117
+ });
118
+ case 'user':
119
+ return /*#__PURE__*/React.createElement(UserSelect, {
120
+ name: parentedName,
121
+ field: field,
122
+ autoFocus: name === firstVisibleFieldName,
123
+ extensionManifest: extensionManifest,
124
+ onFieldChange: onFieldChange
125
+ });
126
+ case 'expand':
127
+ {
128
+ // if expand is under a tab with hasGroupedValues=true
129
+ var resolvedParentName = [parentName, field.hasGroupedValues ? field.name : undefined].filter(function (val) {
130
+ return !!val;
131
+ }).join('.') || undefined;
132
+ var resolvedParameters = !field.hasGroupedValues ? parameters : parameters[field.name] || {};
133
+ return /*#__PURE__*/React.createElement(Expand, {
134
+ field: field,
135
+ isExpanded: field.isExpanded
136
+ }, /*#__PURE__*/React.createElement(FormContent, {
137
+ parentName: resolvedParentName,
138
+ fields: field.fields,
139
+ parameters: resolvedParameters,
140
+ onFieldChange: onFieldChange,
141
+ extensionManifest: extensionManifest,
142
+ featureFlags: featureFlags
143
+ }));
144
+ }
145
+ case 'tab-group':
146
+ {
147
+ var tabGroupField = field;
148
+ var tabGroupParams = tabGroupField.hasGroupedValues ? parameters[tabGroupField.name] || {} : parameters;
149
+ var renderPanel = function renderPanel(tabField) {
150
+ var parentName = [tabGroupField.hasGroupedValues ? tabGroupField.name : undefined, tabField.hasGroupedValues ? tabField.name : undefined].filter(function (val) {
151
+ return !!val;
152
+ }).join('.') || undefined;
153
+ var tabParameters = tabField.hasGroupedValues ? tabGroupParams[tabField.name] || {} : tabGroupParams;
154
+ return /*#__PURE__*/React.createElement(FormContent, {
155
+ parentName: parentName,
156
+ fields: tabField.fields,
157
+ parameters: tabParameters,
158
+ onFieldChange: onFieldChange,
159
+ extensionManifest: extensionManifest,
160
+ featureFlags: featureFlags
161
+ });
162
+ };
163
+ return /*#__PURE__*/React.createElement(TabGroup, {
164
+ field: tabGroupField,
165
+ renderPanel: renderPanel
166
+ });
167
+ }
168
+ default:
169
+ return /*#__PURE__*/React.createElement(UnhandledType, {
170
+ field: field,
171
+ errorMessage: "Field \"".concat(name, "\" of type \"").concat(type, "\" not supported")
172
+ });
173
+ }
174
+ }
175
+ function Hidden(_ref2) {
176
+ var children = _ref2.children;
177
+ return /*#__PURE__*/React.createElement("div", {
178
+ style: {
179
+ display: 'none'
180
+ }
181
+ }, children);
182
+ }
183
+ export default function FormContent(_ref3) {
184
+ var fields = _ref3.fields,
185
+ parentName = _ref3.parentName,
186
+ parameters = _ref3.parameters,
187
+ extensionManifest = _ref3.extensionManifest,
188
+ canRemoveFields = _ref3.canRemoveFields,
189
+ onClickRemove = _ref3.onClickRemove,
190
+ onFieldChange = _ref3.onFieldChange,
191
+ firstVisibleFieldName = _ref3.firstVisibleFieldName,
192
+ contextIdentifierProvider = _ref3.contextIdentifierProvider,
193
+ featureFlags = _ref3.featureFlags;
194
+ return /*#__PURE__*/React.createElement(FormErrorBoundary, {
195
+ contextIdentifierProvider: contextIdentifierProvider,
196
+ extensionKey: extensionManifest.key,
197
+ fields: fields
198
+ }, fields.map(function (field) {
199
+ var fieldElement = /*#__PURE__*/React.createElement(FieldComponent, {
200
+ field: field,
201
+ parameters: parameters || {},
202
+ parentName: parentName,
203
+ extensionManifest: extensionManifest,
204
+ firstVisibleFieldName: firstVisibleFieldName,
205
+ onFieldChange: onFieldChange,
206
+ featureFlags: featureFlags
207
+ });
208
+
209
+ // only to be supported by String fields at this time
210
+ if ('isHidden' in field && field.isHidden) {
211
+ fieldElement = /*#__PURE__*/React.createElement(Hidden, null, fieldElement);
212
+ }
213
+ var name = field.name,
214
+ type = field.type;
215
+ return /*#__PURE__*/React.createElement(RemovableField, {
216
+ key: name,
217
+ name: name,
218
+ canRemoveField: canRemoveFields && !field.isRequired,
219
+ onClickRemove: onClickRemove,
220
+ className: "field-wrapper-".concat(type)
221
+ }, fieldElement);
222
+ }));
223
+ }