@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,160 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
+ var _react = require("react");
13
+ var _react2 = require("@emotion/react");
14
+ var _reactIntlNext = require("react-intl-next");
15
+ var _datetimePicker = require("@atlaskit/datetime-picker");
16
+ var _form = require("@atlaskit/form");
17
+ var _radio = require("@atlaskit/radio");
18
+ var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
19
+ var _FieldMessages = _interopRequireDefault(require("../FieldMessages"));
20
+ var _messages = require("../messages");
21
+ var _utils = require("../utils");
22
+ 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; }
23
+ 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; } /** @jsx jsx */
24
+ var horizontalFieldsStyles = (0, _react2.css)({
25
+ display: 'flex',
26
+ flexDirection: 'row',
27
+ justifyContent: 'space-between'
28
+ });
29
+ var horizontalFieldWrapperStyles = (0, _react2.css)({
30
+ flexBasis: '47%'
31
+ });
32
+ var hiddenStyles = (0, _react2.css)({
33
+ display: 'none'
34
+ });
35
+ var getFromDefaultValue = function getFromDefaultValue(field, attribute) {
36
+ if (field.defaultValue) {
37
+ return field.defaultValue[attribute];
38
+ }
39
+ };
40
+ var DateField = function DateField(_ref) {
41
+ var parentField = _ref.parentField,
42
+ scope = _ref.scope,
43
+ fieldName = _ref.fieldName,
44
+ onFieldChange = _ref.onFieldChange,
45
+ intl = _ref.intl,
46
+ isRequired = _ref.isRequired;
47
+ return (0, _react2.jsx)("div", {
48
+ css: horizontalFieldWrapperStyles,
49
+ key: fieldName
50
+ }, (0, _react2.jsx)(_form.Field, {
51
+ name: "".concat(scope, ".").concat(fieldName),
52
+ label: intl.formatMessage(_messages.messages[fieldName]),
53
+ defaultValue: getFromDefaultValue(parentField, fieldName),
54
+ isRequired: isRequired,
55
+ validate: function validate(value) {
56
+ return (0, _utils.validateRequired)({
57
+ isRequired: isRequired
58
+ }, value);
59
+ }
60
+ }, function (_ref2) {
61
+ var fieldProps = _ref2.fieldProps,
62
+ error = _ref2.error;
63
+ return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_datetimePicker.DatePicker, (0, _extends2.default)({}, fieldProps, {
64
+ onChange: function onChange(date) {
65
+ fieldProps.onChange(date);
66
+ onFieldChange(parentField.name, true);
67
+ },
68
+ locale: intl.locale
69
+ })), (0, _react2.jsx)(_FieldMessages.default, {
70
+ error: error
71
+ }));
72
+ }));
73
+ };
74
+ var DateRange = function DateRange(_ref3) {
75
+ var name = _ref3.name,
76
+ field = _ref3.field,
77
+ onFieldChange = _ref3.onFieldChange,
78
+ intl = _ref3.intl;
79
+ var items = (0, _react.useMemo)(function () {
80
+ return [].concat((0, _toConsumableArray2.default)(field.items || []), [{
81
+ label: intl.formatMessage(_messages.messages.custom),
82
+ value: 'custom'
83
+ }]).map(function (option) {
84
+ return _objectSpread(_objectSpread({}, option), {}, {
85
+ name: name
86
+ });
87
+ });
88
+ }, [field.items, name, intl]);
89
+ var _useState = (0, _react.useState)(getFromDefaultValue(field, 'value') || items[0].value),
90
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
91
+ currentValue = _useState2[0],
92
+ setCurrentValue = _useState2[1];
93
+ (0, _react.useEffect)(function () {
94
+ // calling onBlur here based on the currentValue changing will ensure that we
95
+ // get the most up to date value after the form has been rendered
96
+ onFieldChange(name, true);
97
+ }, [currentValue, onFieldChange, name]);
98
+ var element = (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)("div", {
99
+ css: hiddenStyles
100
+ }, (0, _react2.jsx)(_form.Field, {
101
+ name: "".concat(name, ".type"),
102
+ defaultValue: 'date-range'
103
+ }, function (_ref4) {
104
+ var fieldProps = _ref4.fieldProps;
105
+ return (0, _react2.jsx)(_textfield.default, (0, _extends2.default)({}, fieldProps, {
106
+ type: "hidden"
107
+ }));
108
+ })), (0, _react2.jsx)(_form.Field, {
109
+ name: "".concat(name, ".value"),
110
+ label: field.label,
111
+ defaultValue: currentValue,
112
+ isRequired: field.isRequired,
113
+ validate: function validate(value) {
114
+ return (0, _utils.validate)(field, value || '');
115
+ },
116
+ testId: "config-panel-date-range-".concat(name)
117
+ }, function (_ref5) {
118
+ var fieldProps = _ref5.fieldProps,
119
+ error = _ref5.error;
120
+ return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_radio.RadioGroup, (0, _extends2.default)({}, fieldProps, {
121
+ options: items,
122
+ onChange: function onChange(event) {
123
+ fieldProps.onChange(event.target.value);
124
+ setCurrentValue(event.target.value);
125
+ }
126
+ })), (0, _react2.jsx)(_FieldMessages.default, {
127
+ error: error
128
+ }));
129
+ }), currentValue !== 'custom' ? (0, _react2.jsx)("div", {
130
+ css: hiddenStyles
131
+ }, (0, _react2.jsx)(_form.Field, {
132
+ name: "".concat(name, ".from"),
133
+ defaultValue: currentValue
134
+ }, function (_ref6) {
135
+ var fieldProps = _ref6.fieldProps;
136
+ return (0, _react2.jsx)(_textfield.default, (0, _extends2.default)({}, fieldProps, {
137
+ type: "hidden"
138
+ }));
139
+ })) : (0, _react2.jsx)("div", {
140
+ css: horizontalFieldsStyles
141
+ }, (0, _react2.jsx)(DateField, {
142
+ scope: name,
143
+ parentField: field,
144
+ fieldName: "from",
145
+ onFieldChange: onFieldChange,
146
+ intl: intl,
147
+ isRequired: field.isRequired
148
+ }), (0, _react2.jsx)(DateField, {
149
+ scope: name,
150
+ parentField: field,
151
+ fieldName: "to",
152
+ onFieldChange: onFieldChange,
153
+ intl: intl,
154
+ isRequired: field.isRequired
155
+ })), (0, _react2.jsx)(_FieldMessages.default, {
156
+ description: field.description
157
+ }));
158
+ return element;
159
+ };
160
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(DateRange);
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = Enum;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _CheckboxGroup = _interopRequireDefault(require("./CheckboxGroup"));
10
+ var _RadioGroup = _interopRequireDefault(require("./RadioGroup"));
11
+ var _Select = _interopRequireDefault(require("./Select"));
12
+ function Enum(_ref) {
13
+ var name = _ref.name,
14
+ field = _ref.field,
15
+ autoFocus = _ref.autoFocus,
16
+ onFieldChange = _ref.onFieldChange,
17
+ fieldDefaultValue = _ref.fieldDefaultValue;
18
+ switch (field.style) {
19
+ case 'checkbox':
20
+ return /*#__PURE__*/_react.default.createElement(_CheckboxGroup.default, {
21
+ name: name,
22
+ field: field,
23
+ onFieldChange: onFieldChange
24
+ });
25
+ case 'radio':
26
+ return /*#__PURE__*/_react.default.createElement(_RadioGroup.default, {
27
+ name: name,
28
+ field: field,
29
+ onFieldChange: onFieldChange
30
+ });
31
+ case 'select':
32
+ return /*#__PURE__*/_react.default.createElement(_Select.default, {
33
+ name: name,
34
+ field: field,
35
+ onFieldChange: onFieldChange,
36
+ placeholder: field.placeholder,
37
+ autoFocus: autoFocus,
38
+ fieldDefaultValue: fieldDefaultValue
39
+ });
40
+ }
41
+ }
@@ -0,0 +1,88 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _react2 = require("@emotion/react");
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _button = _interopRequireDefault(require("@atlaskit/button"));
14
+ var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
15
+ var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-right"));
16
+ var _colors = require("@atlaskit/theme/colors");
17
+ var _messages = require("../messages");
18
+ 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); }
19
+ 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; }
20
+ /** @jsx jsx */
21
+
22
+ var expandContainerStyles = (0, _react2.css)({
23
+ borderBottom: "1px solid ".concat("var(--ds-border, ".concat(_colors.N40, ")"))
24
+ });
25
+ var expandControlStyles = (0, _react2.css)({
26
+ display: 'flex',
27
+ height: "var(--ds-space-600, 48px)",
28
+ justifyContent: 'center',
29
+ paddingRight: "var(--ds-space-100, 8px)"
30
+ });
31
+ var chevronContainerStyles = (0, _react2.css)({
32
+ display: 'flex',
33
+ alignItems: 'center',
34
+ // eslint-disable-next-line @atlaskit/design-system/no-nested-styles
35
+ '& > button': {
36
+ width: "var(--ds-space-300, 24px)",
37
+ height: "var(--ds-space-300, 24px)"
38
+ }
39
+ });
40
+ var labelContainerStyles = (0, _react2.css)({
41
+ width: '100%',
42
+ alignItems: 'center',
43
+ display: 'flex',
44
+ fontWeight: 500
45
+ });
46
+ var expandContentContainerHiddenStyles = (0, _react2.css)({
47
+ display: 'none',
48
+ marginTop: "var(--ds-space-negative-100, -8px)"
49
+ });
50
+ var expandContentContainerVisibleStyles = (0, _react2.css)({
51
+ display: 'block',
52
+ marginTop: "var(--ds-space-negative-100, -8px)"
53
+ });
54
+ function Expand(_ref) {
55
+ var field = _ref.field,
56
+ children = _ref.children,
57
+ _ref$isExpanded = _ref.isExpanded,
58
+ isExpanded = _ref$isExpanded === void 0 ? false : _ref$isExpanded,
59
+ intl = _ref.intl;
60
+ var _useState = (0, _react.useState)(isExpanded),
61
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
62
+ expanded = _useState2[0],
63
+ setExpanded = _useState2[1];
64
+ return (0, _react2.jsx)("div", {
65
+ "data-testid": "expand-config-field",
66
+ css: expandContainerStyles
67
+ }, (0, _react2.jsx)("div", {
68
+ css: expandControlStyles
69
+ }, (0, _react2.jsx)("div", {
70
+ css: labelContainerStyles
71
+ }, field.label), (0, _react2.jsx)("div", {
72
+ css: chevronContainerStyles
73
+ }, (0, _react2.jsx)(_button.default, {
74
+ onClick: function onClick() {
75
+ setExpanded(!expanded);
76
+ },
77
+ testId: "form-expand-toggle",
78
+ iconBefore: expanded ? (0, _react2.jsx)(_chevronDown.default, {
79
+ label: intl.formatMessage(_messages.messages.collapse)
80
+ }) : (0, _react2.jsx)(_chevronRight.default, {
81
+ label: intl.formatMessage(_messages.messages.expand)
82
+ })
83
+ }))), (0, _react2.jsx)("div", {
84
+ "data-testid": "expand-content-container",
85
+ css: expanded ? expandContentContainerVisibleStyles : expandContentContainerHiddenStyles
86
+ }, children));
87
+ }
88
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(Expand);
@@ -0,0 +1,270 @@
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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
18
+ var _react = _interopRequireWildcard(require("react"));
19
+ var _react2 = require("@emotion/react");
20
+ var _reactIntlNext = require("react-intl-next");
21
+ var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
22
+ var _addCircle = _interopRequireDefault(require("@atlaskit/icon/glyph/add-circle"));
23
+ var _sectionMessage = _interopRequireDefault(require("@atlaskit/section-message"));
24
+ var _select = _interopRequireDefault(require("@atlaskit/select"));
25
+ var _colors = require("@atlaskit/theme/colors");
26
+ var _messages = require("../messages");
27
+ var _utils = require("../utils");
28
+ 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); }
29
+ 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; }
30
+ 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; }
31
+ 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; }
32
+ 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); }; }
33
+ 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; } } /** @jsx jsx */
34
+ var actionsWrapperStyles = (0, _react2.css)({
35
+ borderTop: "1px solid ".concat("var(--ds-border, ".concat(_colors.N40A, ")")),
36
+ marginTop: "var(--ds-space-200, 16px)",
37
+ paddingTop: "var(--ds-space-200, 16px)"
38
+ });
39
+ var populateFromParameters = function populateFromParameters(parameters, fields) {
40
+ if (Object.keys(parameters).length) {
41
+ var keys = Object.keys(parameters);
42
+ var existingFieldKeys = keys.filter(function (key) {
43
+ return fields.find(function (field) {
44
+ return field.name === (0, _utils.getNameFromDuplicateField)(key);
45
+ });
46
+ });
47
+ if (existingFieldKeys.length > 0) {
48
+ return existingFieldKeys;
49
+ }
50
+ }
51
+ };
52
+ var populateFromRequired = function populateFromRequired(fields) {
53
+ return fields.filter(function (field) {
54
+ return field.isRequired;
55
+ }).map(function (field) {
56
+ return field.name;
57
+ });
58
+ };
59
+ var getInitialFields = function getInitialFields() {
60
+ var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
61
+ var fields = arguments.length > 1 ? arguments[1] : undefined;
62
+ var isDynamic = arguments.length > 2 ? arguments[2] : undefined;
63
+ if (!isDynamic) {
64
+ return new Set(fields.map(function (field) {
65
+ return field.name;
66
+ }));
67
+ }
68
+ var dynamicFields = [];
69
+ var fromRequired = populateFromRequired(fields);
70
+ if (fromRequired) {
71
+ dynamicFields.push.apply(dynamicFields, (0, _toConsumableArray2.default)(fromRequired));
72
+ }
73
+ var fromParameters = populateFromParameters(parameters, fields);
74
+ if (fromParameters) {
75
+ dynamicFields.push.apply(dynamicFields, (0, _toConsumableArray2.default)(fromParameters));
76
+ }
77
+ if (dynamicFields.length === 0 && Array.isArray(fields) && fields.length > 0) {
78
+ dynamicFields.push(fields[0].name);
79
+ }
80
+ return new Set(dynamicFields);
81
+ };
82
+ // eslint-disable-next-line @repo/internal/react/no-class-components
83
+ var FieldsetField = /*#__PURE__*/function (_React$Component) {
84
+ (0, _inherits2.default)(FieldsetField, _React$Component);
85
+ var _super = _createSuper(FieldsetField);
86
+ function FieldsetField(props) {
87
+ var _this;
88
+ (0, _classCallCheck2.default)(this, FieldsetField);
89
+ _this = _super.call(this, props);
90
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getSelectedFields", function (visibleFields) {
91
+ var field = _this.props.field;
92
+ return (0, _toConsumableArray2.default)(visibleFields).map(function (fieldName) {
93
+ var originalFieldDef = field.fields.find(function (field) {
94
+ return field.name === (0, _utils.getNameFromDuplicateField)(fieldName);
95
+ });
96
+ var fieldDef = _objectSpread(_objectSpread({}, originalFieldDef), {}, {
97
+ name: fieldName
98
+ });
99
+ // for duplicate fields we only want the first one to actually be required
100
+ if (originalFieldDef.name !== fieldName && fieldDef.isRequired === true) {
101
+ fieldDef.isRequired = false;
102
+ }
103
+ return fieldDef;
104
+ });
105
+ });
106
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getSelectOptions", function (visibleFields) {
107
+ var field = _this.props.field;
108
+ return field.fields.filter(function (field) {
109
+ return field.allowDuplicates || !visibleFields.has(field.name);
110
+ }).map(function (field) {
111
+ return {
112
+ value: field.name,
113
+ label: field.label
114
+ };
115
+ });
116
+ });
117
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setIsAdding", function (value) {
118
+ _this.setState(function (state) {
119
+ return _objectSpread(_objectSpread({}, state), {}, {
120
+ isAdding: value
121
+ });
122
+ });
123
+ });
124
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setCurrentParameters", function (parameters) {
125
+ _this.setState(function (state) {
126
+ return _objectSpread(_objectSpread({}, state), {}, {
127
+ currentParameters: parameters
128
+ });
129
+ },
130
+ // callback required so autosave can be triggered on
131
+ // the right moment if fields are being removed
132
+ function () {
133
+ return _this.props.onFieldChange(_this.props.field.name, true);
134
+ });
135
+ });
136
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "setVisibleFields", function (fields) {
137
+ _this.setState(function (state) {
138
+ return _objectSpread(_objectSpread({}, state), {}, {
139
+ visibleFields: fields,
140
+ selectedFields: _this.getSelectedFields(fields),
141
+ selectOptions: _this.getSelectOptions(fields)
142
+ });
143
+ });
144
+ });
145
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onSelectItem", function (option) {
146
+ var visibleFields = _this.state.visibleFields;
147
+ var newItem = option.value;
148
+ var duplicates = (0, _toConsumableArray2.default)(visibleFields).filter(function (field) {
149
+ return (0, _utils.getNameFromDuplicateField)(field) === newItem;
150
+ });
151
+ if (duplicates.length > 0) {
152
+ newItem += ":".concat(duplicates.length);
153
+ }
154
+ _this.setVisibleFields(new Set([].concat((0, _toConsumableArray2.default)(visibleFields), [newItem])));
155
+ _this.setIsAdding(false);
156
+ });
157
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onClickRemove", function (fieldName) {
158
+ var _this$state = _this.state,
159
+ visibleFields = _this$state.visibleFields,
160
+ currentParameters = _this$state.currentParameters;
161
+ visibleFields.delete(fieldName);
162
+ _this.setVisibleFields(new Set(visibleFields));
163
+ var newParameters = _objectSpread({}, currentParameters);
164
+ delete newParameters[fieldName];
165
+ // if any there are duplicate fields that come after the one removed, we want to reduce their
166
+ // duplicate index eg. label:2 -> label:1
167
+ if ((0, _utils.isDuplicateField)(fieldName)) {
168
+ var _fieldName$split = fieldName.split(':'),
169
+ _fieldName$split2 = (0, _slicedToArray2.default)(_fieldName$split, 2),
170
+ key = _fieldName$split2[0],
171
+ idx = _fieldName$split2[1];
172
+ var currentIdx = +idx;
173
+ while (currentParameters["".concat(key, ":").concat(currentIdx + 1)]) {
174
+ newParameters["".concat(key, ":").concat(currentIdx)] = currentParameters["".concat(key, ":").concat(currentIdx + 1)];
175
+ currentIdx++;
176
+ }
177
+ delete newParameters["".concat(key, ":").concat(currentIdx)];
178
+ }
179
+ _this.setCurrentParameters(newParameters);
180
+ });
181
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderActions", function () {
182
+ var intl = _this.props.intl;
183
+ var _this$state2 = _this.state,
184
+ selectOptions = _this$state2.selectOptions,
185
+ isAdding = _this$state2.isAdding;
186
+ if (selectOptions.length === 0) {
187
+ return null;
188
+ }
189
+ return (0, _react2.jsx)(_react.default.Fragment, null, isAdding ? (0, _react2.jsx)(_select.default, {
190
+ testId: "field-picker",
191
+ defaultMenuIsOpen: true,
192
+ autoFocus: true,
193
+ placeholder: intl.formatMessage(_messages.messages.addField),
194
+ options: selectOptions,
195
+ onChange: function onChange(option) {
196
+ if (option) {
197
+ _this.onSelectItem(option);
198
+ }
199
+ }
200
+ }) : (0, _react2.jsx)(_customThemeButton.default, {
201
+ testId: "add-more",
202
+ appearance: "subtle",
203
+ iconBefore: (0, _react2.jsx)(_addCircle.default, {
204
+ size: "small",
205
+ label: intl.formatMessage(_messages.messages.addField)
206
+ }),
207
+ onClick: function onClick() {
208
+ return _this.setIsAdding(true);
209
+ }
210
+ }, intl.formatMessage(_messages.messages.addField)));
211
+ });
212
+ var initialFields = getInitialFields(props.parameters, props.field.fields, props.field.options.isDynamic);
213
+ _this.state = {
214
+ isAdding: false,
215
+ currentParameters: props.parameters || {},
216
+ visibleFields: initialFields,
217
+ selectedFields: _this.getSelectedFields(initialFields),
218
+ selectOptions: _this.getSelectOptions(initialFields)
219
+ };
220
+ return _this;
221
+ }
222
+ (0, _createClass2.default)(FieldsetField, [{
223
+ key: "render",
224
+ value: function render() {
225
+ var _this$props = this.props,
226
+ name = _this$props.name,
227
+ field = _this$props.field,
228
+ extensionManifest = _this$props.extensionManifest,
229
+ onFieldChange = _this$props.onFieldChange,
230
+ firstVisibleFieldName = _this$props.firstVisibleFieldName,
231
+ error = _this$props.error,
232
+ FormComponent = _this$props.formComponent;
233
+ var label = field.label,
234
+ options = field.options;
235
+ var _this$state3 = this.state,
236
+ selectedFields = _this$state3.selectedFields,
237
+ currentParameters = _this$state3.currentParameters,
238
+ visibleFields = _this$state3.visibleFields;
239
+ var children = this.renderActions();
240
+ return (0, _react2.jsx)(_react.Fragment, null, error && (0, _react2.jsx)(FieldsetError, {
241
+ message: error
242
+ }), (0, _react2.jsx)("div", null, options.showTitle && (0, _react2.jsx)("h5", null, label), (0, _react2.jsx)(FormComponent, {
243
+ fields: selectedFields,
244
+ parentName: name,
245
+ extensionManifest: extensionManifest,
246
+ parameters: currentParameters,
247
+ canRemoveFields: field.options.isDynamic && visibleFields.size > 1,
248
+ onClickRemove: this.onClickRemove,
249
+ onFieldChange: onFieldChange,
250
+ firstVisibleFieldName: firstVisibleFieldName
251
+ }), children && (0, _react2.jsx)("div", {
252
+ css: actionsWrapperStyles,
253
+ "data-testId": "fieldset-actions"
254
+ }, children)));
255
+ }
256
+ }]);
257
+ return FieldsetField;
258
+ }(_react.default.Component);
259
+ function FieldsetError(_ref) {
260
+ var message = _ref.message;
261
+ return (0, _react2.jsx)("div", {
262
+ css: sectionMessageWrapperStyles
263
+ }, (0, _react2.jsx)(_sectionMessage.default, {
264
+ appearance: "error"
265
+ }, (0, _react2.jsx)("p", null, message)));
266
+ }
267
+ var sectionMessageWrapperStyles = (0, _react2.css)({
268
+ marginBottom: "var(--ds-space-300, 24px)"
269
+ });
270
+ var _default = exports.default = (0, _reactIntlNext.injectIntl)(FieldsetField);
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = Number;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _isNumber = _interopRequireDefault(require("is-number"));
11
+ var _form = require("@atlaskit/form");
12
+ var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
13
+ var _FieldMessages = _interopRequireDefault(require("../FieldMessages"));
14
+ var _types = require("../types");
15
+ var _utils = require("../utils");
16
+ function Number(_ref) {
17
+ var name = _ref.name,
18
+ field = _ref.field,
19
+ autoFocus = _ref.autoFocus,
20
+ onFieldChange = _ref.onFieldChange,
21
+ placeholder = _ref.placeholder;
22
+ var label = field.label,
23
+ description = field.description,
24
+ defaultValue = field.defaultValue,
25
+ isRequired = field.isRequired;
26
+ function validateNumber(value) {
27
+ var error = (0, _utils.validate)(field, value || '');
28
+ if (error) {
29
+ return error;
30
+ }
31
+ if (value === '') {
32
+ return;
33
+ }
34
+ if ((0, _isNumber.default)(value)) {
35
+ return;
36
+ }
37
+ return _types.ValidationError.Invalid;
38
+ }
39
+ return /*#__PURE__*/_react.default.createElement(_form.Field, {
40
+ name: name,
41
+ label: label,
42
+ defaultValue: defaultValue === undefined ? '' : String(defaultValue),
43
+ isRequired: isRequired,
44
+ validate: validateNumber,
45
+ testId: "config-panel-number-".concat(name)
46
+ }, function (_ref2) {
47
+ var fieldProps = _ref2.fieldProps,
48
+ error = _ref2.error,
49
+ meta = _ref2.meta;
50
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_textfield.default, (0, _extends2.default)({}, fieldProps, {
51
+ autoFocus: autoFocus,
52
+ onBlur: function onBlur() {
53
+ fieldProps.onBlur();
54
+ onFieldChange(name, meta.dirty);
55
+ },
56
+ type: "text" // do not change this to type="number", it will return invalid strings as ''
57
+ ,
58
+ placeholder: placeholder
59
+ })), /*#__PURE__*/_react.default.createElement(_FieldMessages.default, {
60
+ error: error,
61
+ description: description
62
+ }));
63
+ });
64
+ }