@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.
- package/.eslintrc.js +26 -0
- package/CHANGELOG.md +16 -0
- package/dist/cjs/actions.js +236 -0
- package/dist/cjs/commands.js +122 -0
- package/dist/cjs/context-panel.js +269 -0
- package/dist/cjs/extension-api.js +266 -0
- package/dist/cjs/index.js +8 -1
- package/dist/cjs/plugin-factory.js +32 -0
- package/dist/cjs/plugin-key.js +8 -0
- package/dist/cjs/plugin.js +147 -0
- package/dist/cjs/pm-plugins/keymap.js +21 -0
- package/dist/cjs/pm-plugins/macro/actions.js +186 -0
- package/dist/cjs/pm-plugins/macro/index.js +72 -0
- package/dist/cjs/pm-plugins/macro/plugin-key.js +8 -0
- package/dist/cjs/pm-plugins/macro/types.js +5 -0
- package/dist/cjs/pm-plugins/main.js +323 -0
- package/dist/cjs/pm-plugins/unique-id.js +80 -0
- package/dist/cjs/pm-plugins/utils.js +75 -0
- package/dist/cjs/reducer.js +18 -0
- package/dist/cjs/toolbar.js +242 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanel.js +475 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanelFieldsLoader.js +122 -0
- package/dist/cjs/ui/ConfigPanel/ConfigPanelLoader.js +23 -0
- package/dist/cjs/ui/ConfigPanel/ErrorMessage/ErrorImage.js +76 -0
- package/dist/cjs/ui/ConfigPanel/ErrorMessage/index.js +33 -0
- package/dist/cjs/ui/ConfigPanel/FieldMessages.js +105 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Boolean.js +150 -0
- package/dist/cjs/ui/ConfigPanel/Fields/CheckboxGroup.js +101 -0
- package/dist/cjs/ui/ConfigPanel/Fields/ColorPicker.js +420 -0
- package/dist/cjs/ui/ConfigPanel/Fields/CustomSelect.js +192 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Date.js +55 -0
- package/dist/cjs/ui/ConfigPanel/Fields/DateRange.js +160 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Enum.js +41 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Expand.js +88 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Fieldset.js +270 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Number.js +64 -0
- package/dist/cjs/ui/ConfigPanel/Fields/RadioGroup.js +56 -0
- package/dist/cjs/ui/ConfigPanel/Fields/Select.js +60 -0
- package/dist/cjs/ui/ConfigPanel/Fields/SelectItem.js +53 -0
- package/dist/cjs/ui/ConfigPanel/Fields/String.js +75 -0
- package/dist/cjs/ui/ConfigPanel/Fields/TabGroup.js +73 -0
- package/dist/cjs/ui/ConfigPanel/Fields/UnhandledType.js +19 -0
- package/dist/cjs/ui/ConfigPanel/Fields/UserSelect.js +268 -0
- package/dist/cjs/ui/ConfigPanel/Fields/common/RequiredIndicator.js +12 -0
- package/dist/cjs/ui/ConfigPanel/FormContent.js +231 -0
- package/dist/cjs/ui/ConfigPanel/FormErrorBoundary.js +140 -0
- package/dist/cjs/ui/ConfigPanel/Header.js +148 -0
- package/dist/cjs/ui/ConfigPanel/LoadingState.js +25 -0
- package/dist/cjs/ui/ConfigPanel/NestedForms/RemovableField.js +61 -0
- package/dist/cjs/ui/ConfigPanel/constants.js +13 -0
- package/dist/cjs/ui/ConfigPanel/index.js +9 -0
- package/dist/cjs/ui/ConfigPanel/messages.js +99 -0
- package/dist/cjs/ui/ConfigPanel/transformers.js +631 -0
- package/dist/cjs/ui/ConfigPanel/types.js +15 -0
- package/dist/cjs/ui/ConfigPanel/use-abortable-effect/index.js +56 -0
- package/dist/cjs/ui/ConfigPanel/use-state-from-promise/index.js +41 -0
- package/dist/cjs/ui/ConfigPanel/utils.js +116 -0
- package/dist/cjs/ui/SaveIndicator/SaveIndicator.js +79 -0
- package/dist/cjs/ui/SaveIndicator/messages.js +14 -0
- package/dist/cjs/ui/SaveIndicator/types.js +5 -0
- package/dist/cjs/utils.js +73 -0
- package/dist/es2019/actions.js +203 -0
- package/dist/es2019/commands.js +99 -0
- package/dist/es2019/context-panel.js +181 -0
- package/dist/es2019/extension-api.js +284 -0
- package/dist/es2019/index.js +1 -1
- package/dist/es2019/plugin-factory.js +26 -0
- package/dist/es2019/plugin-key.js +2 -0
- package/dist/es2019/plugin.js +138 -0
- package/dist/es2019/pm-plugins/keymap.js +15 -0
- package/dist/es2019/pm-plugins/macro/actions.js +152 -0
- package/dist/es2019/pm-plugins/macro/index.js +36 -0
- package/dist/es2019/pm-plugins/macro/plugin-key.js +2 -0
- package/dist/es2019/pm-plugins/macro/types.js +1 -0
- package/dist/es2019/pm-plugins/main.js +230 -0
- package/dist/es2019/pm-plugins/unique-id.js +69 -0
- package/dist/es2019/pm-plugins/utils.js +30 -0
- package/dist/es2019/reducer.js +11 -0
- package/dist/es2019/toolbar.js +236 -0
- package/dist/es2019/ui/ConfigPanel/ConfigPanel.js +415 -0
- package/dist/es2019/ui/ConfigPanel/ConfigPanelFieldsLoader.js +100 -0
- package/dist/es2019/ui/ConfigPanel/ConfigPanelLoader.js +7 -0
- package/dist/es2019/ui/ConfigPanel/ErrorMessage/ErrorImage.js +66 -0
- package/dist/es2019/ui/ConfigPanel/ErrorMessage/index.js +25 -0
- package/dist/es2019/ui/ConfigPanel/FieldMessages.js +101 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Boolean.js +138 -0
- package/dist/es2019/ui/ConfigPanel/Fields/CheckboxGroup.js +96 -0
- package/dist/es2019/ui/ConfigPanel/Fields/ColorPicker.js +411 -0
- package/dist/es2019/ui/ConfigPanel/Fields/CustomSelect.js +132 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Date.js +50 -0
- package/dist/es2019/ui/ConfigPanel/Fields/DateRange.js +139 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Enum.js +35 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Expand.js +73 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Fieldset.js +227 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Number.js +61 -0
- package/dist/es2019/ui/ConfigPanel/Fields/RadioGroup.js +40 -0
- package/dist/es2019/ui/ConfigPanel/Fields/Select.js +50 -0
- package/dist/es2019/ui/ConfigPanel/Fields/SelectItem.js +47 -0
- package/dist/es2019/ui/ConfigPanel/Fields/String.js +67 -0
- package/dist/es2019/ui/ConfigPanel/Fields/TabGroup.js +57 -0
- package/dist/es2019/ui/ConfigPanel/Fields/UnhandledType.js +11 -0
- package/dist/es2019/ui/ConfigPanel/Fields/UserSelect.js +194 -0
- package/dist/es2019/ui/ConfigPanel/Fields/common/RequiredIndicator.js +5 -0
- package/dist/es2019/ui/ConfigPanel/FormContent.js +225 -0
- package/dist/es2019/ui/ConfigPanel/FormErrorBoundary.js +100 -0
- package/dist/es2019/ui/ConfigPanel/Header.js +140 -0
- package/dist/es2019/ui/ConfigPanel/LoadingState.js +15 -0
- package/dist/es2019/ui/ConfigPanel/NestedForms/RemovableField.js +52 -0
- package/dist/es2019/ui/ConfigPanel/constants.js +7 -0
- package/dist/es2019/ui/ConfigPanel/index.js +2 -0
- package/dist/es2019/ui/ConfigPanel/messages.js +93 -0
- package/dist/es2019/ui/ConfigPanel/transformers.js +367 -0
- package/dist/es2019/ui/ConfigPanel/types.js +9 -0
- package/dist/es2019/ui/ConfigPanel/use-abortable-effect/index.js +46 -0
- package/dist/es2019/ui/ConfigPanel/use-state-from-promise/index.js +30 -0
- package/dist/es2019/ui/ConfigPanel/utils.js +86 -0
- package/dist/es2019/ui/SaveIndicator/SaveIndicator.js +66 -0
- package/dist/es2019/ui/SaveIndicator/messages.js +8 -0
- package/dist/es2019/ui/SaveIndicator/types.js +1 -0
- package/dist/es2019/utils.js +65 -0
- package/dist/esm/actions.js +223 -0
- package/dist/esm/commands.js +113 -0
- package/dist/esm/context-panel.js +261 -0
- package/dist/esm/extension-api.js +259 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/plugin-factory.js +25 -0
- package/dist/esm/plugin-key.js +2 -0
- package/dist/esm/plugin.js +140 -0
- package/dist/esm/pm-plugins/keymap.js +15 -0
- package/dist/esm/pm-plugins/macro/actions.js +179 -0
- package/dist/esm/pm-plugins/macro/index.js +42 -0
- package/dist/esm/pm-plugins/macro/plugin-key.js +2 -0
- package/dist/esm/pm-plugins/macro/types.js +1 -0
- package/dist/esm/pm-plugins/main.js +298 -0
- package/dist/esm/pm-plugins/unique-id.js +74 -0
- package/dist/esm/pm-plugins/utils.js +68 -0
- package/dist/esm/reducer.js +11 -0
- package/dist/esm/toolbar.js +235 -0
- package/dist/esm/ui/ConfigPanel/ConfigPanel.js +465 -0
- package/dist/esm/ui/ConfigPanel/ConfigPanelFieldsLoader.js +112 -0
- package/dist/esm/ui/ConfigPanel/ConfigPanelLoader.js +11 -0
- package/dist/esm/ui/ConfigPanel/ErrorMessage/ErrorImage.js +68 -0
- package/dist/esm/ui/ConfigPanel/ErrorMessage/index.js +26 -0
- package/dist/esm/ui/ConfigPanel/FieldMessages.js +97 -0
- package/dist/esm/ui/ConfigPanel/Fields/Boolean.js +140 -0
- package/dist/esm/ui/ConfigPanel/Fields/CheckboxGroup.js +95 -0
- package/dist/esm/ui/ConfigPanel/Fields/ColorPicker.js +414 -0
- package/dist/esm/ui/ConfigPanel/Fields/CustomSelect.js +182 -0
- package/dist/esm/ui/ConfigPanel/Fields/Date.js +48 -0
- package/dist/esm/ui/ConfigPanel/Fields/DateRange.js +154 -0
- package/dist/esm/ui/ConfigPanel/Fields/Enum.js +34 -0
- package/dist/esm/ui/ConfigPanel/Fields/Expand.js +77 -0
- package/dist/esm/ui/ConfigPanel/Fields/Fieldset.js +261 -0
- package/dist/esm/ui/ConfigPanel/Fields/Number.js +57 -0
- package/dist/esm/ui/ConfigPanel/Fields/RadioGroup.js +46 -0
- package/dist/esm/ui/ConfigPanel/Fields/Select.js +50 -0
- package/dist/esm/ui/ConfigPanel/Fields/SelectItem.js +45 -0
- package/dist/esm/ui/ConfigPanel/Fields/String.js +65 -0
- package/dist/esm/ui/ConfigPanel/Fields/TabGroup.js +62 -0
- package/dist/esm/ui/ConfigPanel/Fields/UnhandledType.js +10 -0
- package/dist/esm/ui/ConfigPanel/Fields/UserSelect.js +258 -0
- package/dist/esm/ui/ConfigPanel/Fields/common/RequiredIndicator.js +5 -0
- package/dist/esm/ui/ConfigPanel/FormContent.js +223 -0
- package/dist/esm/ui/ConfigPanel/FormErrorBoundary.js +133 -0
- package/dist/esm/ui/ConfigPanel/Header.js +140 -0
- package/dist/esm/ui/ConfigPanel/LoadingState.js +17 -0
- package/dist/esm/ui/ConfigPanel/NestedForms/RemovableField.js +53 -0
- package/dist/esm/ui/ConfigPanel/constants.js +7 -0
- package/dist/esm/ui/ConfigPanel/index.js +2 -0
- package/dist/esm/ui/ConfigPanel/messages.js +93 -0
- package/dist/esm/ui/ConfigPanel/transformers.js +624 -0
- package/dist/esm/ui/ConfigPanel/types.js +9 -0
- package/dist/esm/ui/ConfigPanel/use-abortable-effect/index.js +49 -0
- package/dist/esm/ui/ConfigPanel/use-state-from-promise/index.js +34 -0
- package/dist/esm/ui/ConfigPanel/utils.js +109 -0
- package/dist/esm/ui/SaveIndicator/SaveIndicator.js +72 -0
- package/dist/esm/ui/SaveIndicator/messages.js +8 -0
- package/dist/esm/ui/SaveIndicator/types.js +1 -0
- package/dist/esm/utils.js +67 -0
- package/dist/types/actions.d.ts +20 -0
- package/dist/types/commands.d.ts +15 -0
- package/dist/types/context-panel.d.ts +10 -0
- package/dist/types/extension-api.d.ts +12 -0
- package/dist/types/index.d.ts +2 -1
- package/dist/types/plugin-factory.d.ts +4 -0
- package/dist/types/plugin-key.d.ts +3 -0
- package/dist/types/plugin.d.ts +2 -0
- package/dist/types/pm-plugins/keymap.d.ts +3 -0
- package/dist/types/pm-plugins/macro/actions.d.ts +9 -0
- package/dist/types/pm-plugins/macro/index.d.ts +8 -0
- package/dist/types/pm-plugins/macro/plugin-key.d.ts +3 -0
- package/dist/types/pm-plugins/macro/types.d.ts +4 -0
- package/dist/types/pm-plugins/main.d.ts +25 -0
- package/dist/types/pm-plugins/unique-id.d.ts +3 -0
- package/dist/types/pm-plugins/utils.d.ts +3 -0
- package/dist/types/reducer.d.ts +2 -0
- package/dist/types/toolbar.d.ts +44 -0
- package/dist/types/types.d.ts +27 -2
- package/dist/types/ui/ConfigPanel/ConfigPanel.d.ts +22 -0
- package/dist/types/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +21 -0
- package/dist/types/ui/ConfigPanel/ConfigPanelLoader.d.ts +5 -0
- package/dist/types/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +4 -0
- package/dist/types/ui/ConfigPanel/ErrorMessage/index.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/FieldMessages.d.ts +12 -0
- package/dist/types/ui/ConfigPanel/Fields/Boolean.d.ts +8 -0
- package/dist/types/ui/ConfigPanel/Fields/CheckboxGroup.d.ts +8 -0
- package/dist/types/ui/ConfigPanel/Fields/ColorPicker.d.ts +20 -0
- package/dist/types/ui/ConfigPanel/Fields/CustomSelect.d.ts +24 -0
- package/dist/types/ui/ConfigPanel/Fields/Date.d.ts +20 -0
- package/dist/types/ui/ConfigPanel/Fields/DateRange.d.ts +20 -0
- package/dist/types/ui/ConfigPanel/Fields/Enum.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/Expand.d.ts +16 -0
- package/dist/types/ui/ConfigPanel/Fields/Fieldset.d.ts +19 -0
- package/dist/types/ui/ConfigPanel/Fields/Number.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/RadioGroup.d.ts +8 -0
- package/dist/types/ui/ConfigPanel/Fields/Select.d.ts +11 -0
- package/dist/types/ui/ConfigPanel/Fields/SelectItem.d.ts +5 -0
- package/dist/types/ui/ConfigPanel/Fields/String.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/TabGroup.d.ts +14 -0
- package/dist/types/ui/ConfigPanel/Fields/UnhandledType.d.ts +6 -0
- package/dist/types/ui/ConfigPanel/Fields/UserSelect.d.ts +10 -0
- package/dist/types/ui/ConfigPanel/Fields/common/RequiredIndicator.d.ts +1 -0
- package/dist/types/ui/ConfigPanel/FormContent.d.ts +4 -0
- package/dist/types/ui/ConfigPanel/FormErrorBoundary.d.ts +16 -0
- package/dist/types/ui/ConfigPanel/Header.d.ts +23 -0
- package/dist/types/ui/ConfigPanel/LoadingState.d.ts +4 -0
- package/dist/types/ui/ConfigPanel/NestedForms/RemovableField.d.ts +19 -0
- package/dist/types/ui/ConfigPanel/constants.d.ts +2 -0
- package/dist/types/ui/ConfigPanel/index.d.ts +2 -0
- package/dist/types/ui/ConfigPanel/messages.d.ts +92 -0
- package/dist/types/ui/ConfigPanel/transformers.d.ts +9 -0
- package/dist/types/ui/ConfigPanel/types.d.ts +36 -0
- package/dist/types/ui/ConfigPanel/use-abortable-effect/index.d.ts +16 -0
- package/dist/types/ui/ConfigPanel/use-state-from-promise/index.d.ts +15 -0
- package/dist/types/ui/ConfigPanel/utils.d.ts +16 -0
- package/dist/types/ui/SaveIndicator/SaveIndicator.d.ts +4 -0
- package/dist/types/ui/SaveIndicator/messages.d.ts +7 -0
- package/dist/types/ui/SaveIndicator/types.d.ts +11 -0
- package/dist/types/utils.d.ts +15 -0
- package/dist/types-ts4.5/actions.d.ts +20 -0
- package/dist/types-ts4.5/commands.d.ts +15 -0
- package/dist/types-ts4.5/context-panel.d.ts +10 -0
- package/dist/types-ts4.5/extension-api.d.ts +12 -0
- package/dist/types-ts4.5/index.d.ts +2 -1
- package/dist/types-ts4.5/plugin-factory.d.ts +4 -0
- package/dist/types-ts4.5/plugin-key.d.ts +3 -0
- package/dist/types-ts4.5/plugin.d.ts +2 -0
- package/dist/types-ts4.5/pm-plugins/keymap.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/macro/actions.d.ts +9 -0
- package/dist/types-ts4.5/pm-plugins/macro/index.d.ts +8 -0
- package/dist/types-ts4.5/pm-plugins/macro/plugin-key.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/macro/types.d.ts +4 -0
- package/dist/types-ts4.5/pm-plugins/main.d.ts +25 -0
- package/dist/types-ts4.5/pm-plugins/unique-id.d.ts +3 -0
- package/dist/types-ts4.5/pm-plugins/utils.d.ts +3 -0
- package/dist/types-ts4.5/reducer.d.ts +2 -0
- package/dist/types-ts4.5/toolbar.d.ts +44 -0
- package/dist/types-ts4.5/types.d.ts +27 -2
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanel.d.ts +22 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelFieldsLoader.d.ts +21 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ConfigPanelLoader.d.ts +5 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ErrorMessage/ErrorImage.d.ts +4 -0
- package/dist/types-ts4.5/ui/ConfigPanel/ErrorMessage/index.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/FieldMessages.d.ts +12 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Boolean.d.ts +8 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/CheckboxGroup.d.ts +8 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/ColorPicker.d.ts +20 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/CustomSelect.d.ts +24 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Date.d.ts +20 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/DateRange.d.ts +20 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Enum.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Expand.d.ts +16 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Fieldset.d.ts +19 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Number.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/RadioGroup.d.ts +8 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/Select.d.ts +11 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/SelectItem.d.ts +5 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/String.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/TabGroup.d.ts +14 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/UnhandledType.d.ts +6 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/UserSelect.d.ts +10 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Fields/common/RequiredIndicator.d.ts +1 -0
- package/dist/types-ts4.5/ui/ConfigPanel/FormContent.d.ts +4 -0
- package/dist/types-ts4.5/ui/ConfigPanel/FormErrorBoundary.d.ts +16 -0
- package/dist/types-ts4.5/ui/ConfigPanel/Header.d.ts +23 -0
- package/dist/types-ts4.5/ui/ConfigPanel/LoadingState.d.ts +4 -0
- package/dist/types-ts4.5/ui/ConfigPanel/NestedForms/RemovableField.d.ts +19 -0
- package/dist/types-ts4.5/ui/ConfigPanel/constants.d.ts +2 -0
- package/dist/types-ts4.5/ui/ConfigPanel/index.d.ts +2 -0
- package/dist/types-ts4.5/ui/ConfigPanel/messages.d.ts +92 -0
- package/dist/types-ts4.5/ui/ConfigPanel/transformers.d.ts +9 -0
- package/dist/types-ts4.5/ui/ConfigPanel/types.d.ts +39 -0
- package/dist/types-ts4.5/ui/ConfigPanel/use-abortable-effect/index.d.ts +16 -0
- package/dist/types-ts4.5/ui/ConfigPanel/use-state-from-promise/index.d.ts +18 -0
- package/dist/types-ts4.5/ui/ConfigPanel/utils.d.ts +16 -0
- package/dist/types-ts4.5/ui/SaveIndicator/SaveIndicator.d.ts +4 -0
- package/dist/types-ts4.5/ui/SaveIndicator/messages.d.ts +7 -0
- package/dist/types-ts4.5/ui/SaveIndicator/types.d.ts +11 -0
- package/dist/types-ts4.5/utils.d.ts +15 -0
- package/example-utils/config-panel/ConfigPanelWithExtensionPicker.tsx +217 -0
- package/example-utils/config-panel/ConfigPanelWithProviders.tsx +51 -0
- package/example-utils/config-panel/ExtensionNodePicker.tsx +141 -0
- package/example-utils/config-panel/FieldTypePicker.tsx +63 -0
- package/example-utils/config-panel/example-manifest-all-fields.ts +86 -0
- package/example-utils/config-panel/example-manifest-individual-fields.ts +85 -0
- package/example-utils/config-panel/fields.ts +611 -0
- package/package.json +49 -7
|
@@ -0,0 +1,624 @@
|
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
4
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
5
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
6
|
+
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; } } }; }
|
|
7
|
+
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); }
|
|
8
|
+
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; }
|
|
9
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
10
|
+
import { getFieldDeserializer, getFieldSerializer, isDateRange, isExpand, isFieldset, isTabField, isTabGroup } from '@atlaskit/editor-common/extensions';
|
|
11
|
+
import { getNameFromDuplicateField, isDuplicateField } from './utils';
|
|
12
|
+
var isOption = function isOption(option) {
|
|
13
|
+
return option && _typeof(option) === 'object' && 'label' in option && 'value' in option;
|
|
14
|
+
};
|
|
15
|
+
var isOptions = function isOptions(options) {
|
|
16
|
+
return Array.isArray(options) && options.every(isOption);
|
|
17
|
+
};
|
|
18
|
+
/** maps the typed-values from the Form values object */
|
|
19
|
+
function extract(value, field, options) {
|
|
20
|
+
if (isOptions(value)) {
|
|
21
|
+
return value.map(function (item) {
|
|
22
|
+
return item.value;
|
|
23
|
+
});
|
|
24
|
+
} else if (isOption(value)) {
|
|
25
|
+
return value.value;
|
|
26
|
+
} else if (isDateRange(value)) {
|
|
27
|
+
return value;
|
|
28
|
+
} else if (value !== undefined && field.type === 'number') {
|
|
29
|
+
if (value === '') {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
return Number(value);
|
|
33
|
+
}
|
|
34
|
+
// Workaround for https://product-fabric.atlassian.net/browse/DST-2701
|
|
35
|
+
else if (options !== null && options !== void 0 && options.useDefaultValue && value === undefined && 'defaultValue' in field) {
|
|
36
|
+
return field.defaultValue;
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
export var findDuplicateFields = function findDuplicateFields(fields) {
|
|
41
|
+
return findDuplicateFieldsInternal(flattenFields(fields));
|
|
42
|
+
};
|
|
43
|
+
var findDuplicateFieldsInternal = function findDuplicateFieldsInternal(fields) {
|
|
44
|
+
var allowDuplicatesMap = {};
|
|
45
|
+
return fields.find(function (field) {
|
|
46
|
+
if (isExpand(field)) {
|
|
47
|
+
return findDuplicateFieldsInternal(field.fields);
|
|
48
|
+
} else if (isTabGroup(field)) {
|
|
49
|
+
return field.fields.find(function (tabField) {
|
|
50
|
+
return findDuplicateFieldsInternal(tabField.fields);
|
|
51
|
+
});
|
|
52
|
+
} else if (allowDuplicatesMap[field.name] === undefined) {
|
|
53
|
+
allowDuplicatesMap[field.name] = !!field.allowDuplicates;
|
|
54
|
+
return;
|
|
55
|
+
} else if (!field.allowDuplicates || !allowDuplicatesMap[field.name]) {
|
|
56
|
+
return field;
|
|
57
|
+
}
|
|
58
|
+
return;
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
export var serialize = /*#__PURE__*/function () {
|
|
62
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(manifest, data, fields) {
|
|
63
|
+
var options,
|
|
64
|
+
result,
|
|
65
|
+
_options$depth,
|
|
66
|
+
depth,
|
|
67
|
+
parentType,
|
|
68
|
+
flattenedFields,
|
|
69
|
+
fillResults,
|
|
70
|
+
parameters,
|
|
71
|
+
hasDuplicateFields,
|
|
72
|
+
_args2 = arguments;
|
|
73
|
+
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
74
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
75
|
+
case 0:
|
|
76
|
+
options = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : {};
|
|
77
|
+
result = [];
|
|
78
|
+
_options$depth = options.depth, depth = _options$depth === void 0 ? 0 : _options$depth, parentType = options.parentType;
|
|
79
|
+
flattenedFields = flattenFields(fields);
|
|
80
|
+
fillResults = flattenedFields.map( /*#__PURE__*/function () {
|
|
81
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(field) {
|
|
82
|
+
var tabGroupData, tabData, expandData, fieldsetData, value;
|
|
83
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
84
|
+
while (1) switch (_context.prev = _context.next) {
|
|
85
|
+
case 0:
|
|
86
|
+
if (!isTabGroup(field)) {
|
|
87
|
+
_context.next = 7;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
_context.next = 3;
|
|
91
|
+
return serializeTabGroupField(manifest, field, data);
|
|
92
|
+
case 3:
|
|
93
|
+
tabGroupData = _context.sent;
|
|
94
|
+
result.push.apply(result, _toConsumableArray(tabGroupData));
|
|
95
|
+
_context.next = 30;
|
|
96
|
+
break;
|
|
97
|
+
case 7:
|
|
98
|
+
if (!isTabField(field)) {
|
|
99
|
+
_context.next = 14;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
_context.next = 10;
|
|
103
|
+
return serializeTabField(manifest, field, data);
|
|
104
|
+
case 10:
|
|
105
|
+
tabData = _context.sent;
|
|
106
|
+
result.push.apply(result, _toConsumableArray(tabData));
|
|
107
|
+
_context.next = 30;
|
|
108
|
+
break;
|
|
109
|
+
case 14:
|
|
110
|
+
if (!isExpand(field)) {
|
|
111
|
+
_context.next = 21;
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
_context.next = 17;
|
|
115
|
+
return serializeExpandField(manifest, field, data);
|
|
116
|
+
case 17:
|
|
117
|
+
expandData = _context.sent;
|
|
118
|
+
result.push.apply(result, _toConsumableArray(expandData));
|
|
119
|
+
_context.next = 30;
|
|
120
|
+
break;
|
|
121
|
+
case 21:
|
|
122
|
+
if (!(isFieldset(field) && depth === 0)) {
|
|
123
|
+
_context.next = 28;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
_context.next = 24;
|
|
127
|
+
return serializeFieldset(manifest, field, data, depth);
|
|
128
|
+
case 24:
|
|
129
|
+
fieldsetData = _context.sent;
|
|
130
|
+
if (fieldsetData) {
|
|
131
|
+
result.push(fieldsetData);
|
|
132
|
+
}
|
|
133
|
+
_context.next = 30;
|
|
134
|
+
break;
|
|
135
|
+
case 28:
|
|
136
|
+
value = extract(data[field.name], field, {
|
|
137
|
+
useDefaultValue: true
|
|
138
|
+
}); // ignore undefined values
|
|
139
|
+
if (value !== undefined) {
|
|
140
|
+
result.push(_defineProperty({}, field.name, value));
|
|
141
|
+
}
|
|
142
|
+
case 30:
|
|
143
|
+
case "end":
|
|
144
|
+
return _context.stop();
|
|
145
|
+
}
|
|
146
|
+
}, _callee);
|
|
147
|
+
}));
|
|
148
|
+
return function (_x4) {
|
|
149
|
+
return _ref2.apply(this, arguments);
|
|
150
|
+
};
|
|
151
|
+
}());
|
|
152
|
+
_context2.next = 7;
|
|
153
|
+
return Promise.all(fillResults);
|
|
154
|
+
case 7:
|
|
155
|
+
// Crunch fields down to parameters
|
|
156
|
+
parameters = result.reduce(function (obj, current) {
|
|
157
|
+
for (var _key in current) {
|
|
158
|
+
obj[_key] = current[_key];
|
|
159
|
+
}
|
|
160
|
+
return obj;
|
|
161
|
+
}, {}); // Fix up duplicate values (currently only for fieldsets)
|
|
162
|
+
hasDuplicateFields = parentType === 'fieldset' && !!flattenedFields.find(function (field) {
|
|
163
|
+
return field.allowDuplicates;
|
|
164
|
+
});
|
|
165
|
+
if (!hasDuplicateFields) {
|
|
166
|
+
_context2.next = 11;
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
return _context2.abrupt("return", serializeMergeDuplicateFieldData(parameters, data, flattenedFields));
|
|
170
|
+
case 11:
|
|
171
|
+
return _context2.abrupt("return", parameters);
|
|
172
|
+
case 12:
|
|
173
|
+
case "end":
|
|
174
|
+
return _context2.stop();
|
|
175
|
+
}
|
|
176
|
+
}, _callee2);
|
|
177
|
+
}));
|
|
178
|
+
return function serialize(_x, _x2, _x3) {
|
|
179
|
+
return _ref.apply(this, arguments);
|
|
180
|
+
};
|
|
181
|
+
}();
|
|
182
|
+
var serializeFieldset = /*#__PURE__*/function () {
|
|
183
|
+
var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(manifest, field, data, depth) {
|
|
184
|
+
var fieldSerializer, fieldsetFields, fieldParams, extracted;
|
|
185
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
186
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
187
|
+
case 0:
|
|
188
|
+
_context3.prev = 0;
|
|
189
|
+
_context3.next = 3;
|
|
190
|
+
return getFieldSerializer(manifest, field.options.transformer);
|
|
191
|
+
case 3:
|
|
192
|
+
fieldSerializer = _context3.sent;
|
|
193
|
+
_context3.next = 10;
|
|
194
|
+
break;
|
|
195
|
+
case 6:
|
|
196
|
+
_context3.prev = 6;
|
|
197
|
+
_context3.t0 = _context3["catch"](0);
|
|
198
|
+
if (!(data[field.name] !== undefined)) {
|
|
199
|
+
_context3.next = 10;
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
throw _context3.t0;
|
|
203
|
+
case 10:
|
|
204
|
+
if (fieldSerializer) {
|
|
205
|
+
_context3.next = 12;
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
return _context3.abrupt("return");
|
|
209
|
+
case 12:
|
|
210
|
+
fieldsetFields = field.fields;
|
|
211
|
+
fieldParams = extract(data[field.name], field, {
|
|
212
|
+
useDefaultValue: true
|
|
213
|
+
}) || {};
|
|
214
|
+
_context3.next = 16;
|
|
215
|
+
return serialize(manifest, fieldParams, fieldsetFields, {
|
|
216
|
+
depth: depth + 1,
|
|
217
|
+
parentType: 'fieldset'
|
|
218
|
+
});
|
|
219
|
+
case 16:
|
|
220
|
+
extracted = _context3.sent;
|
|
221
|
+
return _context3.abrupt("return", _defineProperty({}, field.name, fieldSerializer(extracted)));
|
|
222
|
+
case 18:
|
|
223
|
+
case "end":
|
|
224
|
+
return _context3.stop();
|
|
225
|
+
}
|
|
226
|
+
}, _callee3, null, [[0, 6]]);
|
|
227
|
+
}));
|
|
228
|
+
return function serializeFieldset(_x5, _x6, _x7, _x8) {
|
|
229
|
+
return _ref3.apply(this, arguments);
|
|
230
|
+
};
|
|
231
|
+
}();
|
|
232
|
+
var serializeExpandField = /*#__PURE__*/function () {
|
|
233
|
+
var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(manifest, field, data) {
|
|
234
|
+
var expandData, value, results, fieldName;
|
|
235
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
236
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
237
|
+
case 0:
|
|
238
|
+
expandData = field.hasGroupedValues ? data[field.name] || {} : data;
|
|
239
|
+
_context4.next = 3;
|
|
240
|
+
return serialize(manifest, expandData, field.fields, {
|
|
241
|
+
parentType: 'expand'
|
|
242
|
+
});
|
|
243
|
+
case 3:
|
|
244
|
+
value = _context4.sent;
|
|
245
|
+
results = [];
|
|
246
|
+
if (!field.hasGroupedValues) {
|
|
247
|
+
for (fieldName in value) {
|
|
248
|
+
results.push(_defineProperty({}, fieldName, value[fieldName]));
|
|
249
|
+
}
|
|
250
|
+
} else {
|
|
251
|
+
results.push(_defineProperty({}, field.name, value));
|
|
252
|
+
}
|
|
253
|
+
return _context4.abrupt("return", results);
|
|
254
|
+
case 7:
|
|
255
|
+
case "end":
|
|
256
|
+
return _context4.stop();
|
|
257
|
+
}
|
|
258
|
+
}, _callee4);
|
|
259
|
+
}));
|
|
260
|
+
return function serializeExpandField(_x9, _x10, _x11) {
|
|
261
|
+
return _ref5.apply(this, arguments);
|
|
262
|
+
};
|
|
263
|
+
}();
|
|
264
|
+
var resolveTabValues = /*#__PURE__*/function () {
|
|
265
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(manifest, tabField, groupData) {
|
|
266
|
+
var tabFieldParams;
|
|
267
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
268
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
269
|
+
case 0:
|
|
270
|
+
tabFieldParams = tabField.hasGroupedValues ? groupData[tabField.name] || {} : groupData;
|
|
271
|
+
_context5.next = 3;
|
|
272
|
+
return serialize(manifest, tabFieldParams, tabField.fields, {
|
|
273
|
+
parentType: 'tab'
|
|
274
|
+
});
|
|
275
|
+
case 3:
|
|
276
|
+
return _context5.abrupt("return", _context5.sent);
|
|
277
|
+
case 4:
|
|
278
|
+
case "end":
|
|
279
|
+
return _context5.stop();
|
|
280
|
+
}
|
|
281
|
+
}, _callee5);
|
|
282
|
+
}));
|
|
283
|
+
return function resolveTabValues(_x12, _x13, _x14) {
|
|
284
|
+
return _ref6.apply(this, arguments);
|
|
285
|
+
};
|
|
286
|
+
}();
|
|
287
|
+
var serializeTabGroupField = /*#__PURE__*/function () {
|
|
288
|
+
var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(manifest, field, data) {
|
|
289
|
+
var tabs, results, value, i, tabField, tabFieldParameters, fieldName, _fieldName;
|
|
290
|
+
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
291
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
292
|
+
case 0:
|
|
293
|
+
tabs = field.fields;
|
|
294
|
+
results = [];
|
|
295
|
+
value = {};
|
|
296
|
+
i = 0;
|
|
297
|
+
case 4:
|
|
298
|
+
if (!(i < tabs.length)) {
|
|
299
|
+
_context6.next = 13;
|
|
300
|
+
break;
|
|
301
|
+
}
|
|
302
|
+
tabField = tabs[i];
|
|
303
|
+
_context6.next = 8;
|
|
304
|
+
return resolveTabValues(manifest, tabField, field.hasGroupedValues ? data[field.name] || {} : data);
|
|
305
|
+
case 8:
|
|
306
|
+
tabFieldParameters = _context6.sent;
|
|
307
|
+
if (tabField.hasGroupedValues) {
|
|
308
|
+
// Keep namespaced by tab
|
|
309
|
+
value[tabField.name] = tabFieldParameters;
|
|
310
|
+
} else {
|
|
311
|
+
// Copy into tabGroup value
|
|
312
|
+
for (fieldName in tabFieldParameters) {
|
|
313
|
+
value[fieldName] = tabFieldParameters[fieldName];
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
case 10:
|
|
317
|
+
i++;
|
|
318
|
+
_context6.next = 4;
|
|
319
|
+
break;
|
|
320
|
+
case 13:
|
|
321
|
+
// Now for tabGroup...
|
|
322
|
+
if (field.hasGroupedValues) {
|
|
323
|
+
results.push(_defineProperty({}, field.name, value));
|
|
324
|
+
} else {
|
|
325
|
+
for (_fieldName in value) {
|
|
326
|
+
results.push(_defineProperty({}, _fieldName, value));
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return _context6.abrupt("return", results);
|
|
330
|
+
case 15:
|
|
331
|
+
case "end":
|
|
332
|
+
return _context6.stop();
|
|
333
|
+
}
|
|
334
|
+
}, _callee6);
|
|
335
|
+
}));
|
|
336
|
+
return function serializeTabGroupField(_x15, _x16, _x17) {
|
|
337
|
+
return _ref7.apply(this, arguments);
|
|
338
|
+
};
|
|
339
|
+
}();
|
|
340
|
+
var serializeTabField = /*#__PURE__*/function () {
|
|
341
|
+
var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7(manifest, field, data) {
|
|
342
|
+
var results, tabField, tabFieldParameters, fieldName;
|
|
343
|
+
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
344
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
345
|
+
case 0:
|
|
346
|
+
results = [];
|
|
347
|
+
tabField = field;
|
|
348
|
+
_context7.next = 4;
|
|
349
|
+
return resolveTabValues(manifest, tabField, data);
|
|
350
|
+
case 4:
|
|
351
|
+
tabFieldParameters = _context7.sent;
|
|
352
|
+
if (tabField.hasGroupedValues) {
|
|
353
|
+
// Keep namespaced by tab
|
|
354
|
+
results.push(_defineProperty({}, tabField.name, tabFieldParameters));
|
|
355
|
+
} else {
|
|
356
|
+
// Copy into tabGroup value
|
|
357
|
+
for (fieldName in tabFieldParameters) {
|
|
358
|
+
results.push(_defineProperty({}, fieldName, tabFieldParameters[fieldName]));
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
return _context7.abrupt("return", results);
|
|
362
|
+
case 7:
|
|
363
|
+
case "end":
|
|
364
|
+
return _context7.stop();
|
|
365
|
+
}
|
|
366
|
+
}, _callee7);
|
|
367
|
+
}));
|
|
368
|
+
return function serializeTabField(_x18, _x19, _x20) {
|
|
369
|
+
return _ref8.apply(this, arguments);
|
|
370
|
+
};
|
|
371
|
+
}();
|
|
372
|
+
var serializeMergeDuplicateFieldData = function serializeMergeDuplicateFieldData(parameters, formData, flattenedFields) {
|
|
373
|
+
// Weed out all the non-duplicate field names
|
|
374
|
+
var allDuplicateFieldNames = Object.keys(formData).filter(function (key) {
|
|
375
|
+
return isDuplicateField(key);
|
|
376
|
+
});
|
|
377
|
+
return flattenedFields.reduce(function (newParams, field) {
|
|
378
|
+
var paramValue = parameters[field.name];
|
|
379
|
+
if (!field.allowDuplicates && paramValue !== undefined) {
|
|
380
|
+
newParams[field.name] = paramValue;
|
|
381
|
+
} else {
|
|
382
|
+
// extract the given duplicate values through the field
|
|
383
|
+
var duplicateValues = allDuplicateFieldNames.filter(function (name) {
|
|
384
|
+
return getNameFromDuplicateField(name) === field.name;
|
|
385
|
+
}).map(function (duplicateFieldName) {
|
|
386
|
+
return extract(formData[duplicateFieldName], field, {
|
|
387
|
+
useDefaultValue: true
|
|
388
|
+
});
|
|
389
|
+
});
|
|
390
|
+
// Merge and ensure that all values are worth serializing
|
|
391
|
+
var mergedValues = [paramValue].concat(_toConsumableArray(duplicateValues)).filter(function (value) {
|
|
392
|
+
return value !== undefined;
|
|
393
|
+
});
|
|
394
|
+
if (mergedValues.length > 0) {
|
|
395
|
+
// Replace so the duplicate field values are saved under the
|
|
396
|
+
// fieldName as an array
|
|
397
|
+
newParams[field.name] = mergedValues;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
return newParams;
|
|
401
|
+
}, {});
|
|
402
|
+
};
|
|
403
|
+
function injectDefaultValues(data, fields) {
|
|
404
|
+
var copy = _toConsumableArray(convertToParametersArray(data));
|
|
405
|
+
var _iterator = _createForOfIteratorHelper(fields),
|
|
406
|
+
_step;
|
|
407
|
+
try {
|
|
408
|
+
var _loop = function _loop() {
|
|
409
|
+
var field = _step.value;
|
|
410
|
+
var name = field.name;
|
|
411
|
+
var fieldIndex = copy.findIndex(function (item) {
|
|
412
|
+
return Object.entries(item)[0][0] === name;
|
|
413
|
+
});
|
|
414
|
+
if (fieldIndex >= 0 && !isFieldset(field)) {
|
|
415
|
+
return 1; // continue
|
|
416
|
+
}
|
|
417
|
+
if (isFieldset(field)) {
|
|
418
|
+
var fieldsetFields = field.fields;
|
|
419
|
+
if (fieldIndex >= 0) {
|
|
420
|
+
var fieldValue = Object.entries(copy[fieldIndex])[0][1];
|
|
421
|
+
copy[fieldIndex] = _defineProperty({}, name, injectDefaultValues(fieldValue, fieldsetFields));
|
|
422
|
+
} else {
|
|
423
|
+
copy.push(_defineProperty({}, name, injectDefaultValues({}, fieldsetFields)));
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
if ('defaultValue' in field) {
|
|
427
|
+
copy.push(_defineProperty({}, name, field.defaultValue));
|
|
428
|
+
}
|
|
429
|
+
};
|
|
430
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
431
|
+
if (_loop()) continue;
|
|
432
|
+
}
|
|
433
|
+
} catch (err) {
|
|
434
|
+
_iterator.e(err);
|
|
435
|
+
} finally {
|
|
436
|
+
_iterator.f();
|
|
437
|
+
}
|
|
438
|
+
return convertToParametersObject(copy);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Flattens the given FieldDefinition[] so it resembles the expected data
|
|
443
|
+
* structure in result Parameters.
|
|
444
|
+
*/
|
|
445
|
+
var flattenFields = function flattenFields(fields) {
|
|
446
|
+
var flattenAccumulator = function flattenAccumulator(accumulator, field) {
|
|
447
|
+
if (isTabGroup(field)) {
|
|
448
|
+
if (field.hasGroupedValues) {
|
|
449
|
+
accumulator.push(field);
|
|
450
|
+
} else {
|
|
451
|
+
var flattenedTabs = field.fields.reduce(function (tabAccumulator, tab) {
|
|
452
|
+
return tabAccumulator.concat(tab.hasGroupedValues ?
|
|
453
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
454
|
+
tab : tab.fields.reduce(flattenAccumulator, []));
|
|
455
|
+
}, []);
|
|
456
|
+
accumulator.push.apply(accumulator, _toConsumableArray(flattenedTabs));
|
|
457
|
+
}
|
|
458
|
+
} else if (isExpand(field)) {
|
|
459
|
+
if (field.hasGroupedValues) {
|
|
460
|
+
accumulator.push(field);
|
|
461
|
+
} else {
|
|
462
|
+
var flattenedExpand = field.fields.reduce(flattenAccumulator, []);
|
|
463
|
+
accumulator.push.apply(accumulator, _toConsumableArray(flattenedExpand));
|
|
464
|
+
}
|
|
465
|
+
} else {
|
|
466
|
+
accumulator.push(field);
|
|
467
|
+
}
|
|
468
|
+
return accumulator;
|
|
469
|
+
};
|
|
470
|
+
return fields.reduce(flattenAccumulator, []);
|
|
471
|
+
};
|
|
472
|
+
export var deserialize = /*#__PURE__*/function () {
|
|
473
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8(manifest, data, fields) {
|
|
474
|
+
var depth,
|
|
475
|
+
dataArray,
|
|
476
|
+
result,
|
|
477
|
+
errors,
|
|
478
|
+
flattenedFields,
|
|
479
|
+
_iterator2,
|
|
480
|
+
_step2,
|
|
481
|
+
_loop2,
|
|
482
|
+
_ret,
|
|
483
|
+
_args9 = arguments;
|
|
484
|
+
return _regeneratorRuntime.wrap(function _callee8$(_context9) {
|
|
485
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
486
|
+
case 0:
|
|
487
|
+
depth = _args9.length > 3 && _args9[3] !== undefined ? _args9[3] : 0;
|
|
488
|
+
dataArray = convertToParametersArray(data);
|
|
489
|
+
result = [];
|
|
490
|
+
errors = [];
|
|
491
|
+
flattenedFields = flattenFields(fields);
|
|
492
|
+
_iterator2 = _createForOfIteratorHelper(dataArray);
|
|
493
|
+
_context9.prev = 6;
|
|
494
|
+
_loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2() {
|
|
495
|
+
var item, _Object$entries$, name, originalValue, field, value, fieldDeserializer;
|
|
496
|
+
return _regeneratorRuntime.wrap(function _loop2$(_context8) {
|
|
497
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
498
|
+
case 0:
|
|
499
|
+
item = _step2.value;
|
|
500
|
+
_Object$entries$ = _slicedToArray(Object.entries(item)[0], 2), name = _Object$entries$[0], originalValue = _Object$entries$[1];
|
|
501
|
+
field = flattenedFields.find(function (field) {
|
|
502
|
+
return field.name === getNameFromDuplicateField(name);
|
|
503
|
+
});
|
|
504
|
+
if (!(field === undefined)) {
|
|
505
|
+
_context8.next = 5;
|
|
506
|
+
break;
|
|
507
|
+
}
|
|
508
|
+
return _context8.abrupt("return", 0);
|
|
509
|
+
case 5:
|
|
510
|
+
value = extract(originalValue, field);
|
|
511
|
+
if (!(value === undefined)) {
|
|
512
|
+
_context8.next = 8;
|
|
513
|
+
break;
|
|
514
|
+
}
|
|
515
|
+
return _context8.abrupt("return", 0);
|
|
516
|
+
case 8:
|
|
517
|
+
if (!(isFieldset(field) && depth === 0)) {
|
|
518
|
+
_context8.next = 24;
|
|
519
|
+
break;
|
|
520
|
+
}
|
|
521
|
+
_context8.next = 11;
|
|
522
|
+
return getFieldDeserializer(manifest, field.options.transformer);
|
|
523
|
+
case 11:
|
|
524
|
+
fieldDeserializer = _context8.sent;
|
|
525
|
+
if (!fieldDeserializer) {
|
|
526
|
+
_context8.next = 24;
|
|
527
|
+
break;
|
|
528
|
+
}
|
|
529
|
+
_context8.prev = 13;
|
|
530
|
+
value = fieldDeserializer(value);
|
|
531
|
+
_context8.next = 21;
|
|
532
|
+
break;
|
|
533
|
+
case 17:
|
|
534
|
+
_context8.prev = 17;
|
|
535
|
+
_context8.t0 = _context8["catch"](13);
|
|
536
|
+
errors.push(_defineProperty({}, name, _context8.t0 instanceof Error ? _context8.t0.message : String(_context8.t0)));
|
|
537
|
+
return _context8.abrupt("return", 0);
|
|
538
|
+
case 21:
|
|
539
|
+
_context8.next = 23;
|
|
540
|
+
return deserialize(manifest, value, field.fields, depth + 1);
|
|
541
|
+
case 23:
|
|
542
|
+
value = _context8.sent;
|
|
543
|
+
case 24:
|
|
544
|
+
result.push(_defineProperty({}, name, value));
|
|
545
|
+
case 25:
|
|
546
|
+
case "end":
|
|
547
|
+
return _context8.stop();
|
|
548
|
+
}
|
|
549
|
+
}, _loop2, null, [[13, 17]]);
|
|
550
|
+
});
|
|
551
|
+
_iterator2.s();
|
|
552
|
+
case 9:
|
|
553
|
+
if ((_step2 = _iterator2.n()).done) {
|
|
554
|
+
_context9.next = 16;
|
|
555
|
+
break;
|
|
556
|
+
}
|
|
557
|
+
return _context9.delegateYield(_loop2(), "t0", 11);
|
|
558
|
+
case 11:
|
|
559
|
+
_ret = _context9.t0;
|
|
560
|
+
if (!(_ret === 0)) {
|
|
561
|
+
_context9.next = 14;
|
|
562
|
+
break;
|
|
563
|
+
}
|
|
564
|
+
return _context9.abrupt("continue", 14);
|
|
565
|
+
case 14:
|
|
566
|
+
_context9.next = 9;
|
|
567
|
+
break;
|
|
568
|
+
case 16:
|
|
569
|
+
_context9.next = 21;
|
|
570
|
+
break;
|
|
571
|
+
case 18:
|
|
572
|
+
_context9.prev = 18;
|
|
573
|
+
_context9.t1 = _context9["catch"](6);
|
|
574
|
+
_iterator2.e(_context9.t1);
|
|
575
|
+
case 21:
|
|
576
|
+
_context9.prev = 21;
|
|
577
|
+
_iterator2.f();
|
|
578
|
+
return _context9.finish(21);
|
|
579
|
+
case 24:
|
|
580
|
+
result = convertToParametersObject(result);
|
|
581
|
+
if (errors.length > 0) {
|
|
582
|
+
result.errors = convertToParametersObject(errors);
|
|
583
|
+
}
|
|
584
|
+
return _context9.abrupt("return", injectDefaultValues(result, flattenedFields));
|
|
585
|
+
case 27:
|
|
586
|
+
case "end":
|
|
587
|
+
return _context9.stop();
|
|
588
|
+
}
|
|
589
|
+
}, _callee8, null, [[6, 18, 21, 24]]);
|
|
590
|
+
}));
|
|
591
|
+
return function deserialize(_x21, _x22, _x23) {
|
|
592
|
+
return _ref9.apply(this, arguments);
|
|
593
|
+
};
|
|
594
|
+
}();
|
|
595
|
+
var convertToParametersObject = function convertToParametersObject() {
|
|
596
|
+
var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
597
|
+
if (!Array.isArray(parameters)) {
|
|
598
|
+
return parameters;
|
|
599
|
+
}
|
|
600
|
+
return parameters.reduce(function (obj, current) {
|
|
601
|
+
for (var _key2 in current) {
|
|
602
|
+
var keys = Object.keys(obj);
|
|
603
|
+
var resultKey = _key2;
|
|
604
|
+
var idx = 1;
|
|
605
|
+
while (keys.indexOf(resultKey) >= 0) {
|
|
606
|
+
resultKey = "".concat(getNameFromDuplicateField(_key2), ":").concat(idx);
|
|
607
|
+
idx++;
|
|
608
|
+
}
|
|
609
|
+
obj[resultKey] = current[_key2];
|
|
610
|
+
}
|
|
611
|
+
return obj;
|
|
612
|
+
}, {});
|
|
613
|
+
};
|
|
614
|
+
var convertToParametersArray = function convertToParametersArray() {
|
|
615
|
+
var parameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
616
|
+
if (Array.isArray(parameters)) {
|
|
617
|
+
return parameters;
|
|
618
|
+
}
|
|
619
|
+
var dataArray = [];
|
|
620
|
+
for (var name in parameters) {
|
|
621
|
+
dataArray.push(_defineProperty({}, name, parameters[name]));
|
|
622
|
+
}
|
|
623
|
+
return dataArray;
|
|
624
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export var ValidationError = /*#__PURE__*/function (ValidationError) {
|
|
2
|
+
ValidationError["Required"] = "required";
|
|
3
|
+
ValidationError["Invalid"] = "invalid";
|
|
4
|
+
return ValidationError;
|
|
5
|
+
}({});
|
|
6
|
+
export var FieldTypeError = /*#__PURE__*/function (FieldTypeError) {
|
|
7
|
+
FieldTypeError["isMultipleAndRadio"] = "isMultipleAndRadio";
|
|
8
|
+
return FieldTypeError;
|
|
9
|
+
}({});
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
2
|
+
import { useCallback, useEffect, useMemo } from 'react';
|
|
3
|
+
var safeError = function safeError(message) {
|
|
4
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
5
|
+
throw new Error(message);
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line no-console
|
|
9
|
+
console.error(message);
|
|
10
|
+
};
|
|
11
|
+
var createAbortController = function createAbortController() {
|
|
12
|
+
if (typeof AbortController === 'undefined') {
|
|
13
|
+
safeError('Missing AbortController');
|
|
14
|
+
}
|
|
15
|
+
return new AbortController();
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Similar to useEffect but integrated with the AbortController to make it useful for async operations.
|
|
19
|
+
* On unmount, the abort function will be called and the signal will be passed down to the function so
|
|
20
|
+
* we get the chance to cancel any operation we want.
|
|
21
|
+
*
|
|
22
|
+
* Note: This hook follows the signature of useEffect so it can be linted if enabled through the
|
|
23
|
+
* `additionalHooks` config.
|
|
24
|
+
*
|
|
25
|
+
* @param callback
|
|
26
|
+
* @param deps
|
|
27
|
+
*/
|
|
28
|
+
export function useAbortableEffect(callback, deps) {
|
|
29
|
+
var abortController = useMemo(function () {
|
|
30
|
+
return createAbortController();
|
|
31
|
+
},
|
|
32
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
|
+
deps);
|
|
34
|
+
var abort = useCallback(function () {
|
|
35
|
+
return abortController.abort();
|
|
36
|
+
}, [abortController]);
|
|
37
|
+
// AFP-2511 TODO: Fix automatic suppressions below
|
|
38
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
39
|
+
var fn = useCallback(callback, deps);
|
|
40
|
+
useEffect(function () {
|
|
41
|
+
var teardown = fn(abortController.signal);
|
|
42
|
+
return function () {
|
|
43
|
+
if (typeof teardown === 'function') {
|
|
44
|
+
teardown();
|
|
45
|
+
}
|
|
46
|
+
abort();
|
|
47
|
+
};
|
|
48
|
+
}, [abortController, abort, fn].concat(_toConsumableArray(deps)));
|
|
49
|
+
}
|