@adobe-commerce/aio-experience-kit 1.0.2 → 1.0.4
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/CHANGELOG.md +117 -0
- package/README.md +590 -2
- package/dist/cjs/components/DataForm/ButtonContainer/index.js +158 -0
- package/dist/cjs/components/DataForm/ButtonContainer/index.js.map +1 -0
- package/dist/cjs/components/DataForm/FieldBuilder/index.js +3 -2
- package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataForm/FormBuilder/index.js +178 -65
- package/dist/cjs/components/DataForm/FormBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataForm/FormBuilder/types.js.map +1 -1
- package/dist/cjs/components/DataForm/index.js +6 -3
- package/dist/cjs/components/DataForm/index.js.map +1 -1
- package/dist/cjs/components/DataTable/GridBuilder/index.js +72 -58
- package/dist/cjs/components/DataTable/GridBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataTable/SearchBar/index.js +184 -0
- package/dist/cjs/components/DataTable/SearchBar/index.js.map +1 -0
- package/dist/cjs/components/DataTable/index.js +53 -33
- package/dist/cjs/components/DataTable/index.js.map +1 -1
- package/dist/cjs/components/DataTable/types.js.map +1 -1
- package/dist/cjs/components/FileUpload/index.js +12 -2
- package/dist/cjs/components/FileUpload/index.js.map +1 -1
- package/dist/esm/components/DataForm/ButtonContainer/index.js +154 -0
- package/dist/esm/components/DataForm/ButtonContainer/index.js.map +1 -0
- package/dist/esm/components/DataForm/FieldBuilder/index.js +3 -2
- package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
- package/dist/esm/components/DataForm/FormBuilder/index.js +180 -67
- package/dist/esm/components/DataForm/FormBuilder/index.js.map +1 -1
- package/dist/esm/components/DataForm/FormBuilder/types.js.map +1 -1
- package/dist/esm/components/DataForm/index.js +7 -4
- package/dist/esm/components/DataForm/index.js.map +1 -1
- package/dist/esm/components/DataTable/GridBuilder/index.js +74 -60
- package/dist/esm/components/DataTable/GridBuilder/index.js.map +1 -1
- package/dist/esm/components/DataTable/SearchBar/index.js +180 -0
- package/dist/esm/components/DataTable/SearchBar/index.js.map +1 -0
- package/dist/esm/components/DataTable/index.js +53 -33
- package/dist/esm/components/DataTable/index.js.map +1 -1
- package/dist/esm/components/DataTable/types.js.map +1 -1
- package/dist/esm/components/FileUpload/index.js +13 -3
- package/dist/esm/components/FileUpload/index.js.map +1 -1
- package/dist/esm/types/components/DataForm/ButtonContainer/index.d.ts +12 -0
- package/dist/esm/types/components/DataForm/ButtonContainer/index.d.ts.map +1 -0
- package/dist/esm/types/components/DataForm/ButtonContainer/types.d.ts +82 -0
- package/dist/esm/types/components/DataForm/ButtonContainer/types.d.ts.map +1 -0
- package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataForm/FormBuilder/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts +40 -0
- package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts.map +1 -1
- package/dist/esm/types/components/DataForm/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataForm/types.d.ts +2 -0
- package/dist/esm/types/components/DataForm/types.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/GridBuilder/index.d.ts +1 -1
- package/dist/esm/types/components/DataTable/GridBuilder/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/GridBuilder/types.d.ts +1 -0
- package/dist/esm/types/components/DataTable/GridBuilder/types.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/SearchBar/index.d.ts +11 -0
- package/dist/esm/types/components/DataTable/SearchBar/index.d.ts.map +1 -0
- package/dist/esm/types/components/DataTable/index.d.ts +1 -1
- package/dist/esm/types/components/DataTable/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/types.d.ts +38 -0
- package/dist/esm/types/components/DataTable/types.d.ts.map +1 -1
- package/dist/esm/types/components/FileUpload/index.d.ts +2 -3
- package/dist/esm/types/components/FileUpload/index.d.ts.map +1 -1
- package/dist/esm/types/components/FileUpload/types.d.ts +14 -0
- package/dist/esm/types/components/FileUpload/types.d.ts.map +1 -1
- package/dist/esm/types/components/index.d.ts +2 -1
- package/dist/esm/types/components/index.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
|
|
6
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var reactSpectrum = require('@adobe/react-spectrum');
|
|
9
|
+
var SaveFloppy = require('@spectrum-icons/workflow/SaveFloppy');
|
|
10
|
+
var Back = require('@spectrum-icons/workflow/Back');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* ButtonContainer component handles rendering of form action buttons
|
|
14
|
+
* with customizable labels, icons, visibility, and layout
|
|
15
|
+
*/
|
|
16
|
+
var ButtonContainer = function ButtonContainer(_ref) {
|
|
17
|
+
var _buttonConfig$submitB, _buttonConfig$backBut, _buttonConfig$seconda, _buttonConfig$alignme, _buttonConfig$gap, _submitButton$label, _submitButton$icon, _submitButton$isHidde, _submitButton$ariaLab, _backButton$label, _backButton$icon, _backButton$isHidden, _backButton$ariaLabel;
|
|
18
|
+
var buttonConfig = _ref.buttonConfig,
|
|
19
|
+
isSubmitting = _ref.isSubmitting,
|
|
20
|
+
isProcessing = _ref.isProcessing,
|
|
21
|
+
onBackPress = _ref.onBackPress;
|
|
22
|
+
// Track secondary button loading states
|
|
23
|
+
var _useState = React.useState({}),
|
|
24
|
+
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
25
|
+
secondaryLoadingStates = _useState2[0],
|
|
26
|
+
setSecondaryLoadingStates = _useState2[1];
|
|
27
|
+
// Extract configuration with defaults
|
|
28
|
+
var submitButton = (_buttonConfig$submitB = buttonConfig === null || buttonConfig === void 0 ? void 0 : buttonConfig.submitButton) !== null && _buttonConfig$submitB !== void 0 ? _buttonConfig$submitB : {};
|
|
29
|
+
var backButton = (_buttonConfig$backBut = buttonConfig === null || buttonConfig === void 0 ? void 0 : buttonConfig.backButton) !== null && _buttonConfig$backBut !== void 0 ? _buttonConfig$backBut : {};
|
|
30
|
+
var secondaryButtons = (_buttonConfig$seconda = buttonConfig === null || buttonConfig === void 0 ? void 0 : buttonConfig.secondaryButtons) !== null && _buttonConfig$seconda !== void 0 ? _buttonConfig$seconda : [];
|
|
31
|
+
var alignment = (_buttonConfig$alignme = buttonConfig === null || buttonConfig === void 0 ? void 0 : buttonConfig.alignment) !== null && _buttonConfig$alignme !== void 0 ? _buttonConfig$alignme : 'start';
|
|
32
|
+
var gap = (_buttonConfig$gap = buttonConfig === null || buttonConfig === void 0 ? void 0 : buttonConfig.gap) !== null && _buttonConfig$gap !== void 0 ? _buttonConfig$gap : 'small';
|
|
33
|
+
// Map gap size to Spectrum size tokens
|
|
34
|
+
var gapSizeMap = {
|
|
35
|
+
small: 'size-100',
|
|
36
|
+
medium: 'size-200',
|
|
37
|
+
large: 'size-300'
|
|
38
|
+
};
|
|
39
|
+
// Default values
|
|
40
|
+
var submitLabel = (_submitButton$label = submitButton.label) !== null && _submitButton$label !== void 0 ? _submitButton$label : 'Save';
|
|
41
|
+
var submitIcon = (_submitButton$icon = submitButton.icon) !== null && _submitButton$icon !== void 0 ? _submitButton$icon : jsxRuntime.jsx(SaveFloppy, {
|
|
42
|
+
size: "M",
|
|
43
|
+
marginStart: "size-150"
|
|
44
|
+
});
|
|
45
|
+
var submitHidden = (_submitButton$isHidde = submitButton.isHidden) !== null && _submitButton$isHidde !== void 0 ? _submitButton$isHidde : false;
|
|
46
|
+
var submitAriaLabel = (_submitButton$ariaLab = submitButton.ariaLabel) !== null && _submitButton$ariaLab !== void 0 ? _submitButton$ariaLab : submitLabel;
|
|
47
|
+
var backLabel = (_backButton$label = backButton.label) !== null && _backButton$label !== void 0 ? _backButton$label : 'Back';
|
|
48
|
+
var backIcon = (_backButton$icon = backButton.icon) !== null && _backButton$icon !== void 0 ? _backButton$icon : jsxRuntime.jsx(Back, {
|
|
49
|
+
size: "M",
|
|
50
|
+
marginStart: "size-150"
|
|
51
|
+
});
|
|
52
|
+
var backHidden = (_backButton$isHidden = backButton.isHidden) !== null && _backButton$isHidden !== void 0 ? _backButton$isHidden : false;
|
|
53
|
+
var backAriaLabel = (_backButton$ariaLabel = backButton.ariaLabel) !== null && _backButton$ariaLabel !== void 0 ? _backButton$ariaLabel : backLabel;
|
|
54
|
+
var isDisabled = isSubmitting || isProcessing;
|
|
55
|
+
// Handle secondary button press
|
|
56
|
+
var handleSecondaryPress = /*#__PURE__*/function () {
|
|
57
|
+
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(button) {
|
|
58
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
|
|
59
|
+
while (1) switch (_context.p = _context.n) {
|
|
60
|
+
case 0:
|
|
61
|
+
setSecondaryLoadingStates(function (prev) {
|
|
62
|
+
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, prev), {}, _rollupPluginBabelHelpers.defineProperty({}, button.key, true));
|
|
63
|
+
});
|
|
64
|
+
_context.p = 1;
|
|
65
|
+
_context.n = 2;
|
|
66
|
+
return button.onPress();
|
|
67
|
+
case 2:
|
|
68
|
+
_context.p = 2;
|
|
69
|
+
setSecondaryLoadingStates(function (prev) {
|
|
70
|
+
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, prev), {}, _rollupPluginBabelHelpers.defineProperty({}, button.key, false));
|
|
71
|
+
});
|
|
72
|
+
return _context.f(2);
|
|
73
|
+
case 3:
|
|
74
|
+
return _context.a(2);
|
|
75
|
+
}
|
|
76
|
+
}, _callee, null, [[1,, 2, 3]]);
|
|
77
|
+
}));
|
|
78
|
+
return function handleSecondaryPress(_x) {
|
|
79
|
+
return _ref2.apply(this, arguments);
|
|
80
|
+
};
|
|
81
|
+
}();
|
|
82
|
+
// Get button variant style - ActionButton only supports 'black' or 'white' staticColor
|
|
83
|
+
var getVariantStyle = function getVariantStyle() {
|
|
84
|
+
return 'black';
|
|
85
|
+
};
|
|
86
|
+
return jsxRuntime.jsxs(reactSpectrum.Flex, {
|
|
87
|
+
width: "100%",
|
|
88
|
+
alignItems: "center",
|
|
89
|
+
justifyContent: alignment,
|
|
90
|
+
gap: gapSizeMap[gap],
|
|
91
|
+
marginTop: "size-100",
|
|
92
|
+
children: [(isSubmitting || isProcessing) && jsxRuntime.jsx(reactSpectrum.ProgressCircle, {
|
|
93
|
+
size: "M",
|
|
94
|
+
"aria-label": "Processing...",
|
|
95
|
+
isIndeterminate: true
|
|
96
|
+
}), !submitHidden && jsxRuntime.jsxs(reactSpectrum.ActionButton, {
|
|
97
|
+
type: "submit",
|
|
98
|
+
isDisabled: isDisabled,
|
|
99
|
+
staticColor: getVariantStyle(),
|
|
100
|
+
"aria-label": submitAriaLabel,
|
|
101
|
+
children: [submitIcon, jsxRuntime.jsx(reactSpectrum.Text, {
|
|
102
|
+
children: submitLabel
|
|
103
|
+
})]
|
|
104
|
+
}), !backHidden && jsxRuntime.jsxs(reactSpectrum.ActionButton, {
|
|
105
|
+
type: "button",
|
|
106
|
+
isDisabled: isDisabled,
|
|
107
|
+
staticColor: getVariantStyle(),
|
|
108
|
+
onPress: onBackPress,
|
|
109
|
+
"aria-label": backAriaLabel,
|
|
110
|
+
children: [backIcon, jsxRuntime.jsx(reactSpectrum.Text, {
|
|
111
|
+
children: backLabel
|
|
112
|
+
})]
|
|
113
|
+
}), secondaryButtons.map(function (button) {
|
|
114
|
+
var _button$type, _button$ariaLabel;
|
|
115
|
+
var isSecondaryDisabled = isDisabled || button.isDisabled || false;
|
|
116
|
+
var isSecondaryLoading = secondaryLoadingStates[button.key] || false;
|
|
117
|
+
var buttonType = (_button$type = button.type) !== null && _button$type !== void 0 ? _button$type : 'button';
|
|
118
|
+
var buttonAriaLabel = (_button$ariaLabel = button.ariaLabel) !== null && _button$ariaLabel !== void 0 ? _button$ariaLabel : button.label;
|
|
119
|
+
return jsxRuntime.jsxs(reactSpectrum.ActionButton, {
|
|
120
|
+
type: buttonType,
|
|
121
|
+
isDisabled: isSecondaryDisabled,
|
|
122
|
+
staticColor: getVariantStyle(),
|
|
123
|
+
onPress: function () {
|
|
124
|
+
var _onPress = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2() {
|
|
125
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
|
|
126
|
+
while (1) switch (_context2.n) {
|
|
127
|
+
case 0:
|
|
128
|
+
if (!(buttonType === 'button')) {
|
|
129
|
+
_context2.n = 1;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
_context2.n = 1;
|
|
133
|
+
return handleSecondaryPress(button);
|
|
134
|
+
case 1:
|
|
135
|
+
return _context2.a(2);
|
|
136
|
+
}
|
|
137
|
+
}, _callee2);
|
|
138
|
+
}));
|
|
139
|
+
function onPress() {
|
|
140
|
+
return _onPress.apply(this, arguments);
|
|
141
|
+
}
|
|
142
|
+
return onPress;
|
|
143
|
+
}(),
|
|
144
|
+
"aria-label": buttonAriaLabel,
|
|
145
|
+
children: [isSecondaryLoading && jsxRuntime.jsx(reactSpectrum.ProgressCircle, {
|
|
146
|
+
size: "S",
|
|
147
|
+
"aria-label": "Processing...",
|
|
148
|
+
isIndeterminate: true
|
|
149
|
+
}), !isSecondaryLoading && button.icon, jsxRuntime.jsx(reactSpectrum.Text, {
|
|
150
|
+
children: button.label
|
|
151
|
+
})]
|
|
152
|
+
}, button.key);
|
|
153
|
+
})]
|
|
154
|
+
});
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
exports.default = ButtonContainer;
|
|
158
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/ButtonContainer/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport { Flex, ProgressCircle, ActionButton, Text } from '@adobe/react-spectrum';\nimport SaveFloppy from '@spectrum-icons/workflow/SaveFloppy';\nimport Back from '@spectrum-icons/workflow/Back';\nimport { ButtonContainerProps, FormSecondaryButton } from './types';\n\n/**\n * ButtonContainer component handles rendering of form action buttons\n * with customizable labels, icons, visibility, and layout\n */\nconst ButtonContainer: React.FC<ButtonContainerProps> = ({\n buttonConfig,\n isSubmitting,\n isProcessing,\n onBackPress,\n}) => {\n // Track secondary button loading states\n const [secondaryLoadingStates, setSecondaryLoadingStates] = useState<Record<string, boolean>>({});\n\n // Extract configuration with defaults\n const submitButton = buttonConfig?.submitButton ?? {};\n const backButton = buttonConfig?.backButton ?? {};\n const secondaryButtons = buttonConfig?.secondaryButtons ?? [];\n const alignment = buttonConfig?.alignment ?? 'start';\n const gap = buttonConfig?.gap ?? 'small';\n\n // Map gap size to Spectrum size tokens\n const gapSizeMap = {\n small: 'size-100',\n medium: 'size-200',\n large: 'size-300',\n };\n\n // Default values\n const submitLabel = submitButton.label ?? 'Save';\n const submitIcon = submitButton.icon ?? <SaveFloppy size=\"M\" marginStart=\"size-150\" />;\n const submitHidden = submitButton.isHidden ?? false;\n const submitAriaLabel = submitButton.ariaLabel ?? submitLabel;\n\n const backLabel = backButton.label ?? 'Back';\n const backIcon = backButton.icon ?? <Back size=\"M\" marginStart=\"size-150\" />;\n const backHidden = backButton.isHidden ?? false;\n const backAriaLabel = backButton.ariaLabel ?? backLabel;\n\n const isDisabled = isSubmitting || isProcessing;\n\n // Handle secondary button press\n const handleSecondaryPress = async (button: FormSecondaryButton): Promise<void> => {\n setSecondaryLoadingStates(prev => ({ ...prev, [button.key]: true }));\n try {\n await button.onPress();\n } finally {\n setSecondaryLoadingStates(prev => ({ ...prev, [button.key]: false }));\n }\n };\n\n // Get button variant style - ActionButton only supports 'black' or 'white' staticColor\n const getVariantStyle = (): 'black' | 'white' => {\n return 'black';\n };\n\n return (\n <Flex\n width=\"100%\"\n alignItems=\"center\"\n justifyContent={alignment}\n gap={gapSizeMap[gap]}\n marginTop=\"size-100\"\n >\n {/* Progress Indicator */}\n {(isSubmitting || isProcessing) && (\n <ProgressCircle size=\"M\" aria-label=\"Processing...\" isIndeterminate />\n )}\n\n {/* Submit Button */}\n {!submitHidden && (\n <ActionButton\n type=\"submit\"\n isDisabled={isDisabled}\n staticColor={getVariantStyle()}\n aria-label={submitAriaLabel}\n >\n {submitIcon}\n <Text>{submitLabel}</Text>\n </ActionButton>\n )}\n\n {/* Back Button */}\n {!backHidden && (\n <ActionButton\n type=\"button\"\n isDisabled={isDisabled}\n staticColor={getVariantStyle()}\n onPress={onBackPress}\n aria-label={backAriaLabel}\n >\n {backIcon}\n <Text>{backLabel}</Text>\n </ActionButton>\n )}\n\n {/* Secondary Buttons */}\n {secondaryButtons.map(button => {\n const isSecondaryDisabled = isDisabled || button.isDisabled || false;\n const isSecondaryLoading = secondaryLoadingStates[button.key] || false;\n const buttonType = button.type ?? 'button';\n const buttonAriaLabel = button.ariaLabel ?? button.label;\n\n return (\n <ActionButton\n key={button.key}\n type={buttonType}\n isDisabled={isSecondaryDisabled}\n staticColor={getVariantStyle()}\n onPress={async () => {\n if (buttonType === 'button') {\n await handleSecondaryPress(button);\n }\n }}\n aria-label={buttonAriaLabel}\n >\n {isSecondaryLoading && (\n <ProgressCircle size=\"S\" aria-label=\"Processing...\" isIndeterminate />\n )}\n {!isSecondaryLoading && button.icon}\n <Text>{button.label}</Text>\n </ActionButton>\n );\n })}\n </Flex>\n );\n};\n\nexport default ButtonContainer;\n"],"names":["ButtonContainer","_ref","_buttonConfig$submitB","_buttonConfig$backBut","_buttonConfig$seconda","_buttonConfig$alignme","_buttonConfig$gap","_submitButton$label","_submitButton$icon","_submitButton$isHidde","_submitButton$ariaLab","_backButton$label","_backButton$icon","_backButton$isHidden","_backButton$ariaLabel","buttonConfig","isSubmitting","isProcessing","onBackPress","_useState","useState","_useState2","_slicedToArray","secondaryLoadingStates","setSecondaryLoadingStates","submitButton","backButton","secondaryButtons","alignment","gap","gapSizeMap","small","medium","large","submitLabel","label","submitIcon","icon","_jsx","SaveFloppy","size","marginStart","submitHidden","isHidden","submitAriaLabel","ariaLabel","backLabel","backIcon","Back","backHidden","backAriaLabel","isDisabled","handleSecondaryPress","_ref2","_asyncToGenerator","_regenerator","m","_callee","button","w","_context","p","n","prev","_objectSpread","_defineProperty","key","onPress","f","a","_x","apply","arguments","getVariantStyle","_jsxs","Flex","width","alignItems","justifyContent","marginTop","children","ProgressCircle","isIndeterminate","ActionButton","type","staticColor","Text","map","_button$type","_button$ariaLabel","isSecondaryDisabled","isSecondaryLoading","buttonType","buttonAriaLabel","_onPress","_callee2","_context2"],"mappings":"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"}
|
|
@@ -183,11 +183,12 @@ var FieldBuilder = function FieldBuilder(_ref) {
|
|
|
183
183
|
return jsxRuntime.jsxs(reactSpectrum.View, {
|
|
184
184
|
marginBottom: 'size-100',
|
|
185
185
|
children: [jsxRuntime.jsxs(reactSpectrum.Flex, {
|
|
186
|
-
gap: "size-
|
|
187
|
-
alignItems: "
|
|
186
|
+
gap: "size-0",
|
|
187
|
+
alignItems: "center",
|
|
188
188
|
children: [jsxRuntime.jsx(reactSpectrum.Switch, {
|
|
189
189
|
isDisabled: isChecked || ((_field$disabled3 = field.disabled) !== null && _field$disabled3 !== void 0 ? _field$disabled3 : false),
|
|
190
190
|
isSelected: value === '1',
|
|
191
|
+
marginEnd: "size-0",
|
|
191
192
|
onChange: function () {
|
|
192
193
|
var _onChange4 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee6(selected) {
|
|
193
194
|
var toggleValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/FieldBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport {\n Picker,\n Item,\n TextField,\n View,\n Checkbox,\n CheckboxGroup,\n LabeledValue,\n Switch,\n Flex,\n} from '@adobe/react-spectrum';\nimport { FieldBuilderProps } from './types';\nimport { FieldType } from '../FormBuilder/types';\n\nconst FieldBuilder: React.FC<FieldBuilderProps> = ({\n field,\n editItem,\n onFieldChange,\n usePlaceholder = true,\n}) => {\n const envName = field.db_field + '-env';\n\n const [isChecked, setIsChecked] = useState<boolean>(editItem[envName] ?? false);\n const [value, setValue] = useState<any>(() => {\n const initialValue = editItem[field.db_field] ?? field.value;\n const defaultValue = initialValue ?? (field.type === FieldType.TOGGLE ? '0' : null);\n\n // Call onFieldChange for TOGGLE fields with default value\n if (field.type === FieldType.TOGGLE && !initialValue && defaultValue === '0') {\n // Use setTimeout to avoid calling during render\n setTimeout(async () => {\n await onFieldChange(field.code, field.db_field, '0');\n }, 0);\n }\n\n return defaultValue;\n });\n\n return (\n <View>\n {((): React.ReactElement => {\n switch (field.type) {\n case FieldType.SELECT:\n return (\n <View marginBottom={'size-100'}>\n <Picker\n key={field.code}\n label={field.label}\n items={field.options || []}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n defaultSelectedKey={value}\n width=\"100%\"\n onSelectionChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n >\n {item => <Item key={item.value}>{item.label}</Item>}\n </Picker>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.MULTISELECT:\n return (\n <View marginBottom={'size-100'}>\n <CheckboxGroup\n key={field.code}\n label={field.label}\n width={'size-6000'}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n value={Array.isArray(value) ? value : []}\n onChange={async (selectedValues: string[]) => {\n setValue(selectedValues);\n await onFieldChange(field.code, field.db_field, selectedValues);\n }}\n >\n <View\n borderWidth={'thin'}\n borderColor={'gray-600'}\n borderRadius={'medium'}\n padding={'size-100'}\n backgroundColor={'static-white'}\n >\n <View maxHeight={'size-2400'} overflow={'auto'}>\n {(field.options || []).map((option, index) => (\n <Checkbox\n key={`${field.code}-${index}`}\n width={'100%'}\n value={option.value}\n >\n {option.label}\n </Checkbox>\n ))}\n </View>\n </View>\n </CheckboxGroup>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable:{' '}\n {Array.isArray(value) ? value.join(', ') : value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.TOGGLE:\n return (\n <View marginBottom={'size-100'}>\n <Flex gap=\"size-100\" alignItems=\"start\">\n <Switch\n key={field.code}\n isDisabled={isChecked || (field.disabled ?? false)}\n isSelected={value === '1'}\n onChange={async (selected: boolean) => {\n const toggleValue = selected ? '1' : '0';\n setValue(toggleValue);\n await onFieldChange(field.code, field.db_field, toggleValue);\n }}\n >\n {field.label}\n </Switch>\n {field.contextualHelp ?? null}\n </Flex>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.LABEL:\n return (\n <View marginBottom={'size-100'}>\n <LabeledValue\n key={field.code}\n label={field.label}\n value={value}\n contextualHelp={field.contextualHelp ?? null}\n />\n </View>\n );\n case FieldType.TEXT:\n case FieldType.EMAIL:\n case FieldType.PASSWORD:\n case FieldType.NUMBER:\n case FieldType.URL:\n case FieldType.TEL:\n case FieldType.SEARCH:\n default:\n return (\n <View marginBottom={'size-100'}>\n <TextField\n type={field.type}\n key={field.code}\n label={field.label}\n placeholder={usePlaceholder ? field.label : ''}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n defaultValue={value}\n contextualHelp={field.contextualHelp ?? null}\n width=\"100%\"\n onChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n />\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n }\n })()}\n </View>\n );\n};\n\nexport default FieldBuilder;\n"],"names":["FieldBuilder","_ref","_editItem$envName","field","editItem","onFieldChange","_ref$usePlaceholder","usePlaceholder","envName","db_field","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","_useState3","_editItem$field$db_fi","initialValue","value","defaultValue","type","FieldType","TOGGLE","setTimeout","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","code","a","_useState4","setValue","_jsx","View","children","_field$required","_field$disabled","_field$contextualHelp","_field$required2","_field$disabled2","_field$contextualHelp2","_field$disabled3","_field$contextualHelp3","_field$contextualHelp4","_field$required3","_field$disabled4","_field$contextualHelp5","SELECT","_jsxs","marginBottom","Picker","label","items","options","isRequired","required","isDisabled","disabled","contextualHelp","defaultSelectedKey","width","onSelectionChange","_onSelectionChange","_callee2","_context2","_x","apply","arguments","item","Item","use_env_var","undefined","Checkbox","name","defaultSelected","onChange","_onChange","_callee3","checked","_context3","_x2","MULTISELECT","CheckboxGroup","Array","isArray","_onChange2","_callee4","selectedValues","_context4","_x3","borderWidth","borderColor","borderRadius","padding","backgroundColor","maxHeight","overflow","map","option","index","concat","_onChange3","_callee5","_context5","_x4","join","Flex","gap","alignItems","Switch","isSelected","_onChange4","_callee6","selected","toggleValue","_context6","_x5","_onChange5","_callee7","_context7","_x6","LABEL","LabeledValue","TEXT","EMAIL","PASSWORD","NUMBER","URL","TEL","SEARCH","TextField","placeholder","_onChange6","_callee8","_context8","_x7","_onChange7","_callee9","_context9","_x8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/FieldBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport {\n Picker,\n Item,\n TextField,\n View,\n Checkbox,\n CheckboxGroup,\n LabeledValue,\n Switch,\n Flex,\n} from '@adobe/react-spectrum';\nimport { FieldBuilderProps } from './types';\nimport { FieldType } from '../FormBuilder/types';\n\nconst FieldBuilder: React.FC<FieldBuilderProps> = ({\n field,\n editItem,\n onFieldChange,\n usePlaceholder = true,\n}) => {\n const envName = field.db_field + '-env';\n\n const [isChecked, setIsChecked] = useState<boolean>(editItem[envName] ?? false);\n const [value, setValue] = useState<any>(() => {\n const initialValue = editItem[field.db_field] ?? field.value;\n const defaultValue = initialValue ?? (field.type === FieldType.TOGGLE ? '0' : null);\n\n // Call onFieldChange for TOGGLE fields with default value\n if (field.type === FieldType.TOGGLE && !initialValue && defaultValue === '0') {\n // Use setTimeout to avoid calling during render\n setTimeout(async () => {\n await onFieldChange(field.code, field.db_field, '0');\n }, 0);\n }\n\n return defaultValue;\n });\n\n return (\n <View>\n {((): React.ReactElement => {\n switch (field.type) {\n case FieldType.SELECT:\n return (\n <View marginBottom={'size-100'}>\n <Picker\n key={field.code}\n label={field.label}\n items={field.options || []}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n defaultSelectedKey={value}\n width=\"100%\"\n onSelectionChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n >\n {(item: { value: string; label: string }) => (\n <Item key={item.value}>{item.label}</Item>\n )}\n </Picker>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.MULTISELECT:\n return (\n <View marginBottom={'size-100'}>\n <CheckboxGroup\n key={field.code}\n label={field.label}\n width={'size-6000'}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n value={Array.isArray(value) ? value : []}\n onChange={async (selectedValues: string[]) => {\n setValue(selectedValues);\n await onFieldChange(field.code, field.db_field, selectedValues);\n }}\n >\n <View\n borderWidth={'thin'}\n borderColor={'gray-600'}\n borderRadius={'medium'}\n padding={'size-100'}\n backgroundColor={'static-white'}\n >\n <View maxHeight={'size-2400'} overflow={'auto'}>\n {(field.options || []).map((option, index) => (\n <Checkbox\n key={`${field.code}-${index}`}\n width={'100%'}\n value={option.value}\n >\n {option.label}\n </Checkbox>\n ))}\n </View>\n </View>\n </CheckboxGroup>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable:{' '}\n {Array.isArray(value) ? value.join(', ') : value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.TOGGLE:\n return (\n <View marginBottom={'size-100'}>\n <Flex gap=\"size-0\" alignItems=\"center\">\n <Switch\n key={field.code}\n isDisabled={isChecked || (field.disabled ?? false)}\n isSelected={value === '1'}\n marginEnd=\"size-0\"\n onChange={async (selected: boolean) => {\n const toggleValue = selected ? '1' : '0';\n setValue(toggleValue);\n await onFieldChange(field.code, field.db_field, toggleValue);\n }}\n >\n {field.label}\n </Switch>\n {field.contextualHelp ?? null}\n </Flex>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.LABEL:\n return (\n <View marginBottom={'size-100'}>\n <LabeledValue\n key={field.code}\n label={field.label}\n value={value}\n contextualHelp={field.contextualHelp ?? null}\n />\n </View>\n );\n case FieldType.TEXT:\n case FieldType.EMAIL:\n case FieldType.PASSWORD:\n case FieldType.NUMBER:\n case FieldType.URL:\n case FieldType.TEL:\n case FieldType.SEARCH:\n default:\n return (\n <View marginBottom={'size-100'}>\n <TextField\n type={field.type}\n key={field.code}\n label={field.label}\n placeholder={usePlaceholder ? field.label : ''}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n defaultValue={value}\n contextualHelp={field.contextualHelp ?? null}\n width=\"100%\"\n onChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n />\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n }\n })()}\n </View>\n );\n};\n\nexport default FieldBuilder;\n"],"names":["FieldBuilder","_ref","_editItem$envName","field","editItem","onFieldChange","_ref$usePlaceholder","usePlaceholder","envName","db_field","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","_useState3","_editItem$field$db_fi","initialValue","value","defaultValue","type","FieldType","TOGGLE","setTimeout","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","code","a","_useState4","setValue","_jsx","View","children","_field$required","_field$disabled","_field$contextualHelp","_field$required2","_field$disabled2","_field$contextualHelp2","_field$disabled3","_field$contextualHelp3","_field$contextualHelp4","_field$required3","_field$disabled4","_field$contextualHelp5","SELECT","_jsxs","marginBottom","Picker","label","items","options","isRequired","required","isDisabled","disabled","contextualHelp","defaultSelectedKey","width","onSelectionChange","_onSelectionChange","_callee2","_context2","_x","apply","arguments","item","Item","use_env_var","undefined","Checkbox","name","defaultSelected","onChange","_onChange","_callee3","checked","_context3","_x2","MULTISELECT","CheckboxGroup","Array","isArray","_onChange2","_callee4","selectedValues","_context4","_x3","borderWidth","borderColor","borderRadius","padding","backgroundColor","maxHeight","overflow","map","option","index","concat","_onChange3","_callee5","_context5","_x4","join","Flex","gap","alignItems","Switch","isSelected","marginEnd","_onChange4","_callee6","selected","toggleValue","_context6","_x5","_onChange5","_callee7","_context7","_x6","LABEL","LabeledValue","TEXT","EMAIL","PASSWORD","NUMBER","URL","TEL","SEARCH","TextField","placeholder","_onChange6","_callee8","_context8","_x7","_onChange7","_callee9","_context9","_x8"],"mappings":"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"}
|
|
@@ -6,11 +6,42 @@ var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHel
|
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var reactSpectrum = require('@adobe/react-spectrum');
|
|
9
|
-
var index = require('../FieldBuilder/index.js');
|
|
10
|
-
var
|
|
11
|
-
var Back = require('@spectrum-icons/workflow/Back');
|
|
9
|
+
var index$1 = require('../FieldBuilder/index.js');
|
|
10
|
+
var index = require('../ButtonContainer/index.js');
|
|
12
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Evaluates whether a dependency condition is met
|
|
14
|
+
* @param condition The dependency condition to evaluate
|
|
15
|
+
* @param value The current value of the dependency field
|
|
16
|
+
* @param allValues All form values for custom validators
|
|
17
|
+
* @returns true if condition is met, false otherwise
|
|
18
|
+
*/
|
|
19
|
+
var evaluateDependencyCondition = function evaluateDependencyCondition(condition, value, allValues) {
|
|
20
|
+
switch (condition.type) {
|
|
21
|
+
case 'equals':
|
|
22
|
+
return value === condition.value;
|
|
23
|
+
case 'notEquals':
|
|
24
|
+
return value !== condition.value;
|
|
25
|
+
case 'in':
|
|
26
|
+
return condition.values.indexOf(value) !== -1;
|
|
27
|
+
case 'notIn':
|
|
28
|
+
return condition.values.indexOf(value) === -1;
|
|
29
|
+
case 'greaterThan':
|
|
30
|
+
return typeof value === 'number' && value > condition.value;
|
|
31
|
+
case 'lessThan':
|
|
32
|
+
return typeof value === 'number' && value < condition.value;
|
|
33
|
+
case 'truthy':
|
|
34
|
+
return !!value && value !== '0' && value !== 'false';
|
|
35
|
+
case 'falsy':
|
|
36
|
+
return !value || value === '0' || value === 'false';
|
|
37
|
+
case 'custom':
|
|
38
|
+
return condition.validator(value, allValues);
|
|
39
|
+
default:
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
13
43
|
var FormBuilder = function FormBuilder(_ref) {
|
|
44
|
+
var _buttonConfig$positio;
|
|
14
45
|
var _ref$components = _ref.components,
|
|
15
46
|
components = _ref$components === void 0 ? {
|
|
16
47
|
groups: []
|
|
@@ -18,7 +49,7 @@ var FormBuilder = function FormBuilder(_ref) {
|
|
|
18
49
|
_ref$editItem = _ref.editItem,
|
|
19
50
|
editItem = _ref$editItem === void 0 ? {} : _ref$editItem,
|
|
20
51
|
_ref$onFieldChange = _ref.onFieldChange,
|
|
21
|
-
|
|
52
|
+
onFieldChange = _ref$onFieldChange === void 0 ? function () {
|
|
22
53
|
return Promise.resolve();
|
|
23
54
|
} : _ref$onFieldChange,
|
|
24
55
|
_ref$onFormSubmit = _ref.onFormSubmit,
|
|
@@ -34,7 +65,8 @@ var FormBuilder = function FormBuilder(_ref) {
|
|
|
34
65
|
_ref$isProcessing = _ref.isProcessing,
|
|
35
66
|
isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing,
|
|
36
67
|
_ref$usePlaceholder = _ref.usePlaceholder,
|
|
37
|
-
usePlaceholder = _ref$usePlaceholder === void 0 ? true : _ref$usePlaceholder
|
|
68
|
+
usePlaceholder = _ref$usePlaceholder === void 0 ? true : _ref$usePlaceholder,
|
|
69
|
+
buttonConfig = _ref.buttonConfig;
|
|
38
70
|
var _useState = React.useState(false),
|
|
39
71
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
40
72
|
isSubmitting = _useState2[0],
|
|
@@ -43,44 +75,158 @@ var FormBuilder = function FormBuilder(_ref) {
|
|
|
43
75
|
_useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
|
|
44
76
|
values = _useState4[0],
|
|
45
77
|
setValues = _useState4[1];
|
|
46
|
-
|
|
78
|
+
// Initialize form values with editItem values for proper dependency evaluation
|
|
79
|
+
var initializedValues = React.useMemo(function () {
|
|
80
|
+
var mergedValues = {};
|
|
81
|
+
components.groups.forEach(function (group) {
|
|
82
|
+
group.fields.forEach(function (field) {
|
|
83
|
+
// Set both code and db_field for consistency
|
|
84
|
+
if (editItem[field.db_field] !== undefined) {
|
|
85
|
+
mergedValues[field.code] = editItem[field.db_field];
|
|
86
|
+
mergedValues[field.db_field] = editItem[field.db_field];
|
|
87
|
+
} else if (field.value !== undefined) {
|
|
88
|
+
mergedValues[field.code] = field.value;
|
|
89
|
+
mergedValues[field.db_field] = field.value;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
return mergedValues;
|
|
94
|
+
}, [editItem, components]);
|
|
95
|
+
// Combine initial values with current form values
|
|
96
|
+
var allValues = React.useMemo(function () {
|
|
97
|
+
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, initializedValues), values);
|
|
98
|
+
}, [initializedValues, values]);
|
|
99
|
+
/**
|
|
100
|
+
* Evaluates whether a field should be visible based on its dependencies
|
|
101
|
+
* @param field The field to evaluate
|
|
102
|
+
* @returns true if field should be visible, false otherwise
|
|
103
|
+
*/
|
|
104
|
+
var isFieldVisible = React.useCallback(function (field) {
|
|
105
|
+
if (!field.dependsOn) {
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
var dependencyValue = allValues[field.dependsOn.field];
|
|
109
|
+
return evaluateDependencyCondition(field.dependsOn.condition, dependencyValue, allValues);
|
|
110
|
+
}, [allValues]);
|
|
111
|
+
/**
|
|
112
|
+
* Get all visible fields with memoization for performance
|
|
113
|
+
*/
|
|
114
|
+
var visibleFieldsByGroup = React.useMemo(function () {
|
|
115
|
+
var result = new Map();
|
|
116
|
+
components.groups.forEach(function (group) {
|
|
117
|
+
var visibleFields = group.fields.filter(function (field) {
|
|
118
|
+
return isFieldVisible(field);
|
|
119
|
+
});
|
|
120
|
+
result.set(group.code, visibleFields);
|
|
121
|
+
});
|
|
122
|
+
return result;
|
|
123
|
+
}, [components.groups, isFieldVisible]);
|
|
124
|
+
// Determine button position (default: 'after')
|
|
125
|
+
var buttonPosition = (_buttonConfig$positio = buttonConfig === null || buttonConfig === void 0 ? void 0 : buttonConfig.position) !== null && _buttonConfig$positio !== void 0 ? _buttonConfig$positio : 'after';
|
|
126
|
+
/**
|
|
127
|
+
* Handle field changes with dependency awareness
|
|
128
|
+
*/
|
|
129
|
+
var handleFieldChange = React.useCallback(/*#__PURE__*/function () {
|
|
130
|
+
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(code, db_field, value) {
|
|
131
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
|
|
132
|
+
while (1) switch (_context.n) {
|
|
133
|
+
case 0:
|
|
134
|
+
setValues(function (prevValues) {
|
|
135
|
+
var newValues = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, prevValues), {}, _rollupPluginBabelHelpers.defineProperty(_rollupPluginBabelHelpers.defineProperty({}, code, value), db_field, value));
|
|
136
|
+
// Check if any fields depend on this field and clear their values if they become hidden
|
|
137
|
+
components.groups.forEach(function (group) {
|
|
138
|
+
group.fields.forEach(function (field) {
|
|
139
|
+
var _field$dependsOn;
|
|
140
|
+
if (((_field$dependsOn = field.dependsOn) === null || _field$dependsOn === void 0 ? void 0 : _field$dependsOn.field) === code && field.dependsOn.clearValueOnHide !== false) {
|
|
141
|
+
// Evaluate if the dependent field will be visible with the new value
|
|
142
|
+
var tempValues = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, allValues), {}, _rollupPluginBabelHelpers.defineProperty({}, code, value));
|
|
143
|
+
var willBeVisible = evaluateDependencyCondition(field.dependsOn.condition, value, tempValues);
|
|
144
|
+
// If field will be hidden, clear its value
|
|
145
|
+
if (!willBeVisible) {
|
|
146
|
+
delete newValues[field.code];
|
|
147
|
+
delete newValues[field.db_field];
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
return newValues;
|
|
153
|
+
});
|
|
154
|
+
_context.n = 1;
|
|
155
|
+
return onFieldChange(code, value);
|
|
156
|
+
case 1:
|
|
157
|
+
return _context.a(2);
|
|
158
|
+
}
|
|
159
|
+
}, _callee);
|
|
160
|
+
}));
|
|
161
|
+
return function (_x, _x2, _x3) {
|
|
162
|
+
return _ref2.apply(this, arguments);
|
|
163
|
+
};
|
|
164
|
+
}(), [allValues, components.groups, onFieldChange]);
|
|
165
|
+
// Button container component
|
|
166
|
+
var buttonContainerElement = jsxRuntime.jsx(index.default, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, buttonConfig !== undefined && {
|
|
167
|
+
buttonConfig: buttonConfig
|
|
168
|
+
}), {}, {
|
|
169
|
+
isSubmitting: isSubmitting,
|
|
170
|
+
isProcessing: isProcessing,
|
|
171
|
+
onBackPress: onBackPress
|
|
172
|
+
}));
|
|
173
|
+
return jsxRuntime.jsx(reactSpectrum.Form, {
|
|
47
174
|
isRequired: true,
|
|
48
175
|
isDisabled: isSubmitting || isProcessing,
|
|
49
176
|
width: "size-6000",
|
|
50
177
|
validationBehavior: "native",
|
|
51
178
|
onSubmit: function () {
|
|
52
|
-
var _onSubmit = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function
|
|
53
|
-
var submissionValues, key;
|
|
54
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
55
|
-
while (1) switch (
|
|
179
|
+
var _onSubmit = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2(e) {
|
|
180
|
+
var submissionValues, visibleFieldCodes, key;
|
|
181
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
|
|
182
|
+
while (1) switch (_context2.n) {
|
|
56
183
|
case 0:
|
|
57
184
|
e.preventDefault();
|
|
58
185
|
// Create a new object instead of mutating the existing values
|
|
59
|
-
submissionValues = _rollupPluginBabelHelpers.objectSpread2({}, values);
|
|
186
|
+
submissionValues = _rollupPluginBabelHelpers.objectSpread2({}, values); // Only include values from visible fields
|
|
187
|
+
visibleFieldCodes = new Set();
|
|
188
|
+
components.groups.forEach(function (group) {
|
|
189
|
+
var visibleFields = visibleFieldsByGroup.get(group.code) || [];
|
|
190
|
+
visibleFields.forEach(function (field) {
|
|
191
|
+
visibleFieldCodes.add(field.db_field);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
// Filter out hidden field values
|
|
195
|
+
Object.keys(submissionValues).forEach(function (key) {
|
|
196
|
+
if (!visibleFieldCodes.has(key)) {
|
|
197
|
+
delete submissionValues[key];
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
// Add editItem values for fields not changed
|
|
60
201
|
for (key in editItem) {
|
|
61
|
-
if (!Object.prototype.hasOwnProperty.call(submissionValues, key)) {
|
|
202
|
+
if (!Object.prototype.hasOwnProperty.call(submissionValues, key) && visibleFieldCodes.has(key)) {
|
|
62
203
|
submissionValues[key] = editItem[key];
|
|
63
204
|
}
|
|
64
205
|
}
|
|
65
206
|
setSubmitting(true);
|
|
66
|
-
|
|
207
|
+
_context2.n = 1;
|
|
67
208
|
return onFormSubmit(submissionValues);
|
|
68
209
|
case 1:
|
|
69
210
|
setSubmitting(false);
|
|
70
|
-
|
|
211
|
+
_context2.n = 2;
|
|
71
212
|
return onPostFormSubmit();
|
|
72
213
|
case 2:
|
|
73
|
-
return
|
|
214
|
+
return _context2.a(2);
|
|
74
215
|
}
|
|
75
|
-
},
|
|
216
|
+
}, _callee2);
|
|
76
217
|
}));
|
|
77
|
-
function onSubmit(
|
|
218
|
+
function onSubmit(_x4) {
|
|
78
219
|
return _onSubmit.apply(this, arguments);
|
|
79
220
|
}
|
|
80
221
|
return onSubmit;
|
|
81
222
|
}(),
|
|
82
|
-
children:
|
|
83
|
-
children: components.groups.map(function (group) {
|
|
223
|
+
children: jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
224
|
+
children: [buttonPosition === 'before' && buttonContainerElement, components.groups.map(function (group) {
|
|
225
|
+
var visibleFields = visibleFieldsByGroup.get(group.code) || [];
|
|
226
|
+
// Only render group if it has visible fields
|
|
227
|
+
if (visibleFields.length === 0) {
|
|
228
|
+
return null;
|
|
229
|
+
}
|
|
84
230
|
return jsxRuntime.jsxs(reactSpectrum.Flex, {
|
|
85
231
|
direction: "column",
|
|
86
232
|
marginBottom: "size-200",
|
|
@@ -89,66 +235,33 @@ var FormBuilder = function FormBuilder(_ref) {
|
|
|
89
235
|
level: 4,
|
|
90
236
|
marginTop: 0,
|
|
91
237
|
children: group.label
|
|
92
|
-
}),
|
|
93
|
-
return jsxRuntime.jsx(index.default, {
|
|
238
|
+
}), visibleFields.map(function (field) {
|
|
239
|
+
return jsxRuntime.jsx(index$1.default, {
|
|
94
240
|
field: field,
|
|
95
241
|
editItem: editItem,
|
|
96
242
|
usePlaceholder: usePlaceholder,
|
|
97
243
|
onFieldChange: function () {
|
|
98
|
-
var
|
|
99
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
100
|
-
while (1) switch (
|
|
244
|
+
var _onFieldChange = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee3(code, db_field, value) {
|
|
245
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context3) {
|
|
246
|
+
while (1) switch (_context3.n) {
|
|
101
247
|
case 0:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
});
|
|
105
|
-
_context2.n = 1;
|
|
106
|
-
return _onFieldChange(code, value);
|
|
248
|
+
_context3.n = 1;
|
|
249
|
+
return handleFieldChange(code, db_field, value);
|
|
107
250
|
case 1:
|
|
108
|
-
return
|
|
251
|
+
return _context3.a(2);
|
|
109
252
|
}
|
|
110
|
-
},
|
|
253
|
+
}, _callee3);
|
|
111
254
|
}));
|
|
112
|
-
function onFieldChange(
|
|
113
|
-
return
|
|
255
|
+
function onFieldChange(_x5, _x6, _x7) {
|
|
256
|
+
return _onFieldChange.apply(this, arguments);
|
|
114
257
|
}
|
|
115
258
|
return onFieldChange;
|
|
116
259
|
}()
|
|
117
260
|
}, field.db_field);
|
|
118
261
|
})]
|
|
119
262
|
}, group.code);
|
|
120
|
-
})
|
|
121
|
-
})
|
|
122
|
-
width: "100%",
|
|
123
|
-
alignItems: "center",
|
|
124
|
-
marginTop: 'size-100',
|
|
125
|
-
children: [(isSubmitting || isProcessing) && jsxRuntime.jsx(reactSpectrum.ProgressCircle, {
|
|
126
|
-
size: "M",
|
|
127
|
-
marginEnd: 'size-250',
|
|
128
|
-
"aria-label": "Submitting..",
|
|
129
|
-
isIndeterminate: true
|
|
130
|
-
}), jsxRuntime.jsxs(reactSpectrum.ActionButton, {
|
|
131
|
-
marginEnd: 'size-100',
|
|
132
|
-
type: "submit",
|
|
133
|
-
isDisabled: isSubmitting || isProcessing,
|
|
134
|
-
staticColor: "black",
|
|
135
|
-
children: [jsxRuntime.jsx(SaveFloppy, {
|
|
136
|
-
size: 'M'
|
|
137
|
-
}), jsxRuntime.jsx(reactSpectrum.Text, {
|
|
138
|
-
children: "Save"
|
|
139
|
-
})]
|
|
140
|
-
}), jsxRuntime.jsxs(reactSpectrum.ActionButton, {
|
|
141
|
-
type: "button",
|
|
142
|
-
staticColor: "black",
|
|
143
|
-
isDisabled: isSubmitting || isProcessing,
|
|
144
|
-
onPress: onBackPress,
|
|
145
|
-
children: [jsxRuntime.jsx(Back, {
|
|
146
|
-
size: 'M'
|
|
147
|
-
}), jsxRuntime.jsx(reactSpectrum.Text, {
|
|
148
|
-
children: "Back"
|
|
149
|
-
})]
|
|
150
|
-
})]
|
|
151
|
-
})]
|
|
263
|
+
}), buttonPosition === 'after' && buttonContainerElement]
|
|
264
|
+
})
|
|
152
265
|
});
|
|
153
266
|
};
|
|
154
267
|
|