@adobe-commerce/aio-experience-kit 1.0.0 → 1.0.2
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 +90 -0
- package/README.md +197 -25
- package/dist/cjs/components/DataForm/FieldBuilder/index.js +184 -35
- package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataForm/FormBuilder/index.js +9 -7
- package/dist/cjs/components/DataForm/FormBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataForm/FormBuilder/types.js +2 -0
- package/dist/cjs/components/DataForm/FormBuilder/types.js.map +1 -1
- package/dist/cjs/components/DataForm/index.js +4 -1
- package/dist/cjs/components/DataForm/index.js.map +1 -1
- package/dist/cjs/components/DataTable/index.js +4 -1
- package/dist/cjs/components/DataTable/index.js.map +1 -1
- package/dist/cjs/components/FileUpload/index.js +241 -0
- package/dist/cjs/components/FileUpload/index.js.map +1 -0
- package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js +1 -1
- package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
- package/dist/cjs/components/ShippingCarrierForm/index.js +143 -0
- package/dist/cjs/components/ShippingCarrierForm/index.js.map +1 -0
- package/dist/cjs/index.js +8 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/AdminUiSdk/index.js +67 -97
- package/dist/cjs/utils/AdminUiSdk/index.js.map +1 -1
- package/dist/esm/components/DataForm/FieldBuilder/index.js +185 -36
- package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
- package/dist/esm/components/DataForm/FormBuilder/index.js +9 -7
- package/dist/esm/components/DataForm/FormBuilder/index.js.map +1 -1
- package/dist/esm/components/DataForm/FormBuilder/types.js +2 -0
- package/dist/esm/components/DataForm/FormBuilder/types.js.map +1 -1
- package/dist/esm/components/DataForm/index.js +5 -2
- package/dist/esm/components/DataForm/index.js.map +1 -1
- package/dist/esm/components/DataTable/index.js +5 -2
- package/dist/esm/components/DataTable/index.js.map +1 -1
- package/dist/esm/components/FileUpload/index.js +237 -0
- package/dist/esm/components/FileUpload/index.js.map +1 -0
- package/dist/esm/components/MainContainer/TwoColumnLeft/index.js +1 -1
- package/dist/esm/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
- package/dist/esm/components/ShippingCarrierForm/index.js +139 -0
- package/dist/esm/components/ShippingCarrierForm/index.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- 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 +2 -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/DataTable/index.d.ts.map +1 -1
- package/dist/esm/types/components/FileUpload/index.d.ts +8 -0
- package/dist/esm/types/components/FileUpload/index.d.ts.map +1 -0
- package/dist/esm/types/components/FileUpload/types.d.ts +71 -0
- package/dist/esm/types/components/FileUpload/types.d.ts.map +1 -0
- package/dist/esm/types/components/ShippingCarrierForm/index.d.ts +18 -0
- package/dist/esm/types/components/ShippingCarrierForm/index.d.ts.map +1 -0
- package/dist/esm/types/components/ShippingCarrierForm/types.d.ts +55 -0
- package/dist/esm/types/components/ShippingCarrierForm/types.d.ts.map +1 -0
- package/dist/esm/types/components/index.d.ts +10 -0
- package/dist/esm/types/components/index.d.ts.map +1 -1
- package/dist/esm/types/utils/AdminUiSdk/index.d.ts +17 -30
- package/dist/esm/types/utils/AdminUiSdk/index.d.ts.map +1 -1
- package/dist/esm/types/utils/AdminUiSdk/types.d.ts +9 -50
- package/dist/esm/types/utils/AdminUiSdk/types.d.ts.map +1 -1
- package/dist/esm/utils/AdminUiSdk/index.js +69 -99
- package/dist/esm/utils/AdminUiSdk/index.js.map +1 -1
- package/package.json +36 -35
|
@@ -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 { Picker, Item, TextField, View, Checkbox, LabeledValue } 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>(editItem[field.db_field] ?? field.value ?? null);\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.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","_ref2","_editItem$field$db_fi","field","editItem","onFieldChange","_ref$usePlaceholder","usePlaceholder","envName","db_field","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","_useState3","value","_useState4","setValue","_jsx","View","children","_field$required","_field$disabled","_field$contextualHelp","_field$contextualHelp2","_field$required2","_field$disabled2","_field$contextualHelp3","type","FieldType","SELECT","_jsxs","marginBottom","Picker","label","items","options","isRequired","required","isDisabled","disabled","contextualHelp","defaultSelectedKey","width","onSelectionChange","_onSelectionChange","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","code","a","_x","apply","arguments","item","Item","use_env_var","undefined","Checkbox","name","defaultSelected","onChange","_onChange","_callee2","checked","_context2","_x2","LABEL","LabeledValue","TEXT","EMAIL","PASSWORD","NUMBER","URL","TEL","SEARCH","TextField","placeholder","defaultValue","_onChange2","_callee3","_context3","_x3","_onChange3","_callee4","_context4","_x4"],"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 => <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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"}
|
|
@@ -50,19 +50,21 @@ var FormBuilder = function FormBuilder(_ref) {
|
|
|
50
50
|
validationBehavior: "native",
|
|
51
51
|
onSubmit: function () {
|
|
52
52
|
var _onSubmit = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(e) {
|
|
53
|
-
var key;
|
|
53
|
+
var submissionValues, key;
|
|
54
54
|
return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
|
|
55
55
|
while (1) switch (_context.n) {
|
|
56
56
|
case 0:
|
|
57
57
|
e.preventDefault();
|
|
58
|
+
// Create a new object instead of mutating the existing values
|
|
59
|
+
submissionValues = _rollupPluginBabelHelpers.objectSpread2({}, values);
|
|
58
60
|
for (key in editItem) {
|
|
59
|
-
if (!Object.prototype.hasOwnProperty.call(
|
|
60
|
-
|
|
61
|
+
if (!Object.prototype.hasOwnProperty.call(submissionValues, key)) {
|
|
62
|
+
submissionValues[key] = editItem[key];
|
|
61
63
|
}
|
|
62
64
|
}
|
|
63
65
|
setSubmitting(true);
|
|
64
66
|
_context.n = 1;
|
|
65
|
-
return onFormSubmit(
|
|
67
|
+
return onFormSubmit(submissionValues);
|
|
66
68
|
case 1:
|
|
67
69
|
setSubmitting(false);
|
|
68
70
|
_context.n = 2;
|
|
@@ -94,12 +96,12 @@ var FormBuilder = function FormBuilder(_ref) {
|
|
|
94
96
|
usePlaceholder: usePlaceholder,
|
|
95
97
|
onFieldChange: function () {
|
|
96
98
|
var _onFieldChange2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2(code, db_field, value) {
|
|
97
|
-
var db_values;
|
|
98
99
|
return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
|
|
99
100
|
while (1) switch (_context2.n) {
|
|
100
101
|
case 0:
|
|
101
|
-
|
|
102
|
-
|
|
102
|
+
setValues(function (prevValues) {
|
|
103
|
+
return _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, prevValues), {}, _rollupPluginBabelHelpers.defineProperty({}, db_field, value));
|
|
104
|
+
});
|
|
103
105
|
_context2.n = 1;
|
|
104
106
|
return _onFieldChange(code, value);
|
|
105
107
|
case 1:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/FormBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport { Form, Flex, ProgressCircle, Heading, ActionButton, Text } from '@adobe/react-spectrum';\nimport { FormBuilderProps } from './types';\nimport FieldBuilder from '../FieldBuilder';\nimport SaveFloppy from '@spectrum-icons/workflow/SaveFloppy';\nimport Back from '@spectrum-icons/workflow/Back';\n\nconst FormBuilder: React.FC<FormBuilderProps> = ({\n components = { groups: [] },\n editItem = {},\n onFieldChange = (): Promise<void> => Promise.resolve(),\n onFormSubmit = (): Promise<void> => Promise.resolve(),\n onPostFormSubmit = (): Promise<void> => Promise.resolve(),\n onBackPress = (): void => {},\n isProcessing = false,\n usePlaceholder = true,\n}) => {\n const [isSubmitting, setSubmitting] = useState(false);\n const [values, setValues] = useState<Record<string, any>>({});\n\n return (\n <Form\n isRequired\n isDisabled={isSubmitting || isProcessing}\n width=\"size-6000\"\n validationBehavior=\"native\"\n onSubmit={async e => {\n e.preventDefault();\n for (const key in editItem) {\n if (!Object.prototype.hasOwnProperty.call(
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/FormBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport { Form, Flex, ProgressCircle, Heading, ActionButton, Text } from '@adobe/react-spectrum';\nimport { FormBuilderProps } from './types';\nimport FieldBuilder from '../FieldBuilder';\nimport SaveFloppy from '@spectrum-icons/workflow/SaveFloppy';\nimport Back from '@spectrum-icons/workflow/Back';\n\nconst FormBuilder: React.FC<FormBuilderProps> = ({\n components = { groups: [] },\n editItem = {},\n onFieldChange = (): Promise<void> => Promise.resolve(),\n onFormSubmit = (): Promise<void> => Promise.resolve(),\n onPostFormSubmit = (): Promise<void> => Promise.resolve(),\n onBackPress = (): void => {},\n isProcessing = false,\n usePlaceholder = true,\n}) => {\n const [isSubmitting, setSubmitting] = useState(false);\n const [values, setValues] = useState<Record<string, any>>({});\n\n return (\n <Form\n isRequired\n isDisabled={isSubmitting || isProcessing}\n width=\"size-6000\"\n validationBehavior=\"native\"\n onSubmit={async e => {\n e.preventDefault();\n // Create a new object instead of mutating the existing values\n const submissionValues = { ...values };\n for (const key in editItem) {\n if (!Object.prototype.hasOwnProperty.call(submissionValues, key)) {\n submissionValues[key] = editItem[key];\n }\n }\n setSubmitting(true);\n await onFormSubmit(submissionValues);\n setSubmitting(false);\n await onPostFormSubmit();\n }}\n >\n <>\n {components.groups.map(group => (\n <Flex key={group.code} direction=\"column\" marginBottom=\"size-200\">\n <Heading id={group.code} level={4} marginTop={0}>\n {group.label}\n </Heading>\n {group.fields.map(field => (\n <FieldBuilder\n key={field.db_field}\n field={field}\n editItem={editItem}\n usePlaceholder={usePlaceholder}\n onFieldChange={async (code, db_field, value) => {\n setValues(prevValues => ({\n ...prevValues,\n [db_field]: value,\n }));\n await onFieldChange(code, value);\n }}\n />\n ))}\n </Flex>\n ))}\n </>\n <Flex width=\"100%\" alignItems=\"center\" marginTop={'size-100'}>\n {(isSubmitting || isProcessing) && (\n <ProgressCircle\n size=\"M\"\n marginEnd={'size-250'}\n aria-label=\"Submitting..\"\n isIndeterminate\n />\n )}\n <ActionButton\n marginEnd={'size-100'}\n type=\"submit\"\n isDisabled={isSubmitting || isProcessing}\n staticColor=\"black\"\n >\n <SaveFloppy size={'M'} />\n <Text>Save</Text>\n </ActionButton>\n <ActionButton\n type=\"button\"\n staticColor=\"black\"\n isDisabled={isSubmitting || isProcessing}\n onPress={onBackPress}\n >\n <Back size={'M'} />\n <Text>Back</Text>\n </ActionButton>\n </Flex>\n </Form>\n );\n};\n\nexport default FormBuilder;\n"],"names":["FormBuilder","_ref","_ref$components","components","groups","_ref$editItem","editItem","_ref$onFieldChange","onFieldChange","Promise","resolve","_ref$onFormSubmit","onFormSubmit","_ref$onPostFormSubmit","onPostFormSubmit","_ref$onBackPress","onBackPress","_ref$isProcessing","isProcessing","_ref$usePlaceholder","usePlaceholder","_useState","useState","_useState2","_slicedToArray","isSubmitting","setSubmitting","_useState3","_useState4","values","setValues","_jsxs","Form","isRequired","isDisabled","width","validationBehavior","onSubmit","_onSubmit","_asyncToGenerator","_regenerator","m","_callee","e","submissionValues","key","w","_context","n","preventDefault","_objectSpread","Object","prototype","hasOwnProperty","call","a","_x","apply","arguments","_jsx","_Fragment","children","map","group","Flex","direction","marginBottom","Heading","id","code","level","marginTop","label","fields","field","FieldBuilder","_onFieldChange2","_callee2","db_field","value","_context2","prevValues","_defineProperty","_x2","_x3","_x4","alignItems","ProgressCircle","size","marginEnd","isIndeterminate","ActionButton","type","staticColor","SaveFloppy","Text","onPress","Back"],"mappings":"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"}
|
|
@@ -10,6 +10,8 @@ exports.FieldType = void 0;
|
|
|
10
10
|
FieldType["TEL"] = "tel";
|
|
11
11
|
FieldType["SEARCH"] = "search";
|
|
12
12
|
FieldType["SELECT"] = "select";
|
|
13
|
+
FieldType["MULTISELECT"] = "multiselect";
|
|
14
|
+
FieldType["TOGGLE"] = "toggle";
|
|
13
15
|
FieldType["LABEL"] = "label";
|
|
14
16
|
})(exports.FieldType || (exports.FieldType = {}));
|
|
15
17
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../../src/components/DataForm/FormBuilder/types.ts"],"sourcesContent":["/**\n * <license header>\n */\nimport React from 'react';\n\nexport enum FieldType {\n TEXT = 'text',\n EMAIL = 'email',\n PASSWORD = 'password',\n NUMBER = 'number',\n URL = 'url',\n TEL = 'tel',\n SEARCH = 'search',\n SELECT = 'select',\n LABEL = 'label',\n}\n\nexport interface FormBuilderProps {\n components: FormBuilderComponents;\n editItem?: Record<string, any>;\n onFieldChange?: (field: string, value: any) => Promise<void>;\n onFormSubmit?: (values: Record<string, any>) => Promise<void>;\n onPostFormSubmit?: () => Promise<void>;\n onBackPress?: () => void;\n isProcessing?: boolean;\n usePlaceholder?: boolean;\n}\n\nexport interface FormBuilderComponents {\n groups: FormBuilderGroup[];\n}\n\nexport interface FormBuilderGroup {\n code: string;\n label: string;\n fields: FormBuilderField[];\n}\n\nexport interface FormBuilderField {\n label: string;\n code: string;\n db_field: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n use_env_var?: boolean;\n value?: string;\n options?: FormBuilderOption[];\n contextualHelp?: React.ReactNode;\n onFieldChange?: (value: any) => void;\n}\n\nexport interface FormBuilderOption {\n value: string;\n label: string;\n}\n"],"names":["FieldType"],"mappings":";;AAKYA;AAAZ,CAAA,UAAYA,SAAS,EAAA;AACnBA,EAAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACbA,EAAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACfA,EAAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACXA,EAAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACXA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../src/components/DataForm/FormBuilder/types.ts"],"sourcesContent":["/**\n * <license header>\n */\nimport React from 'react';\n\nexport enum FieldType {\n TEXT = 'text',\n EMAIL = 'email',\n PASSWORD = 'password',\n NUMBER = 'number',\n URL = 'url',\n TEL = 'tel',\n SEARCH = 'search',\n SELECT = 'select',\n MULTISELECT = 'multiselect',\n TOGGLE = 'toggle',\n LABEL = 'label',\n}\n\nexport interface FormBuilderProps {\n components: FormBuilderComponents;\n editItem?: Record<string, any>;\n onFieldChange?: (field: string, value: any) => Promise<void>;\n onFormSubmit?: (values: Record<string, any>) => Promise<void>;\n onPostFormSubmit?: () => Promise<void>;\n onBackPress?: () => void;\n isProcessing?: boolean;\n usePlaceholder?: boolean;\n}\n\nexport interface FormBuilderComponents {\n groups: FormBuilderGroup[];\n}\n\nexport interface FormBuilderGroup {\n code: string;\n label: string;\n fields: FormBuilderField[];\n}\n\nexport interface FormBuilderField {\n label: string;\n code: string;\n db_field: string;\n type: FieldType;\n required: boolean;\n disabled: boolean;\n use_env_var?: boolean;\n value?: string;\n options?: FormBuilderOption[];\n contextualHelp?: React.ReactNode;\n onFieldChange?: (value: any) => void;\n}\n\nexport interface FormBuilderOption {\n value: string;\n label: string;\n}\n"],"names":["FieldType"],"mappings":";;AAKYA;AAAZ,CAAA,UAAYA,SAAS,EAAA;AACnBA,EAAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACbA,EAAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACfA,EAAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACXA,EAAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACXA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3BA,EAAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjBA,EAAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAZWA,iBAAS,KAATA,iBAAS,GAAA,EAAA,CAAA,CAAA;;"}
|
|
@@ -42,7 +42,10 @@ var DataForm = function DataForm(_ref) {
|
|
|
42
42
|
setLoading = _useState2[1];
|
|
43
43
|
// Stable reference to onFormLoad to prevent infinite loops
|
|
44
44
|
var onFormLoadRef = React.useRef(onFormLoad);
|
|
45
|
-
|
|
45
|
+
// Update ref in useEffect instead of during render
|
|
46
|
+
React.useEffect(function () {
|
|
47
|
+
onFormLoadRef.current = onFormLoad;
|
|
48
|
+
}, [onFormLoad]);
|
|
46
49
|
// Stable callback that won't change on every render
|
|
47
50
|
var stableOnFormLoad = React.useCallback(function () {
|
|
48
51
|
return onFormLoadRef.current();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/DataForm/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\nimport { defaultTheme, Provider, Flex, ProgressCircle, View } from '@adobe/react-spectrum';\nimport { DataFormProps } from './types';\nimport FormBuilder from './FormBuilder';\n\nconst DataForm: React.FC<DataFormProps> = ({\n components = { groups: [] },\n editItem,\n onFieldChange = (): Promise<void> => Promise.resolve(),\n onFormLoad = (): Promise<void> => Promise.resolve(),\n onFormSubmit = (): Promise<void> => Promise.resolve(),\n onPostFormSubmit = (): Promise<void> => Promise.resolve(),\n onBackPress = (): void => {},\n isProcessing = false,\n usePlaceholder = true,\n}) => {\n const [isLoading, setLoading] = useState<boolean>(true);\n\n // Stable reference to onFormLoad to prevent infinite loops\n const onFormLoadRef = useRef(onFormLoad);\n onFormLoadRef.current = onFormLoad;\n\n // Stable callback that won't change on every render\n const stableOnFormLoad = useCallback(() => {\n return onFormLoadRef.current();\n }, []);\n\n useEffect(() => {\n (async (): Promise<void> => {\n await stableOnFormLoad();\n setLoading(false);\n })();\n }, [stableOnFormLoad]);\n\n return (\n <Provider theme={defaultTheme} colorScheme={'light'}>\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <FormBuilder\n components={components}\n editItem={editItem}\n onFieldChange={onFieldChange}\n onBackPress={onBackPress}\n onFormSubmit={onFormSubmit}\n onPostFormSubmit={onPostFormSubmit}\n isProcessing={isProcessing}\n usePlaceholder={usePlaceholder}\n />\n </View>\n )}\n </Flex>\n </Provider>\n );\n};\n\nexport default DataForm;\n"],"names":["DataForm","_ref","_ref$components","components","groups","editItem","_ref$onFieldChange","onFieldChange","Promise","resolve","_ref$onFormLoad","onFormLoad","_ref$onFormSubmit","onFormSubmit","_ref$onPostFormSubmit","onPostFormSubmit","_ref$onBackPress","onBackPress","_ref$isProcessing","isProcessing","_ref$usePlaceholder","usePlaceholder","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","onFormLoadRef","useRef","current","stableOnFormLoad","useCallback","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/DataForm/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useEffect, useState, useCallback, useRef } from 'react';\nimport { defaultTheme, Provider, Flex, ProgressCircle, View } from '@adobe/react-spectrum';\nimport { DataFormProps } from './types';\nimport FormBuilder from './FormBuilder';\n\nconst DataForm: React.FC<DataFormProps> = ({\n components = { groups: [] },\n editItem,\n onFieldChange = (): Promise<void> => Promise.resolve(),\n onFormLoad = (): Promise<void> => Promise.resolve(),\n onFormSubmit = (): Promise<void> => Promise.resolve(),\n onPostFormSubmit = (): Promise<void> => Promise.resolve(),\n onBackPress = (): void => {},\n isProcessing = false,\n usePlaceholder = true,\n}) => {\n const [isLoading, setLoading] = useState<boolean>(true);\n\n // Stable reference to onFormLoad to prevent infinite loops\n const onFormLoadRef = useRef(onFormLoad);\n\n // Update ref in useEffect instead of during render\n useEffect(() => {\n onFormLoadRef.current = onFormLoad;\n }, [onFormLoad]);\n\n // Stable callback that won't change on every render\n const stableOnFormLoad = useCallback(() => {\n return onFormLoadRef.current();\n }, []);\n\n useEffect(() => {\n (async (): Promise<void> => {\n await stableOnFormLoad();\n setLoading(false);\n })();\n }, [stableOnFormLoad]);\n\n return (\n <Provider theme={defaultTheme} colorScheme={'light'}>\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <FormBuilder\n components={components}\n editItem={editItem}\n onFieldChange={onFieldChange}\n onBackPress={onBackPress}\n onFormSubmit={onFormSubmit}\n onPostFormSubmit={onPostFormSubmit}\n isProcessing={isProcessing}\n usePlaceholder={usePlaceholder}\n />\n </View>\n )}\n </Flex>\n </Provider>\n );\n};\n\nexport default DataForm;\n"],"names":["DataForm","_ref","_ref$components","components","groups","editItem","_ref$onFieldChange","onFieldChange","Promise","resolve","_ref$onFormLoad","onFormLoad","_ref$onFormSubmit","onFormSubmit","_ref$onPostFormSubmit","onPostFormSubmit","_ref$onBackPress","onBackPress","_ref$isProcessing","isProcessing","_ref$usePlaceholder","usePlaceholder","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","onFormLoadRef","useRef","useEffect","current","stableOnFormLoad","useCallback","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_jsx","Provider","theme","defaultTheme","colorScheme","children","Flex","width","alignItems","ProgressCircle","size","isIndeterminate","View","FormBuilder"],"mappings":"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"}
|
|
@@ -47,7 +47,10 @@ var DataTable = function DataTable(_ref) {
|
|
|
47
47
|
setIds = _useState4[1];
|
|
48
48
|
// Stable reference to onGridLoad to prevent infinite loops
|
|
49
49
|
var onGridLoadRef = React.useRef(onGridLoad);
|
|
50
|
-
|
|
50
|
+
// Update ref in useEffect instead of during render
|
|
51
|
+
React.useEffect(function () {
|
|
52
|
+
onGridLoadRef.current = onGridLoad;
|
|
53
|
+
}, [onGridLoad]);
|
|
51
54
|
// Stable callback that won't change on every render
|
|
52
55
|
var stableOnGridLoad = React.useCallback(function () {
|
|
53
56
|
return onGridLoadRef.current();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/components/DataTable/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { Flex, View, ProgressCircle } from '@adobe/react-spectrum';\nimport ActionsBuilder from './ActionsBuilder';\nimport GridBuilder from './GridBuilder';\nimport { DataTableProps, GridAction, DataTableRow } from './types';\nimport { Selection } from '@react-types/shared';\n\nconst DataTable = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n buttons = [],\n massActions = [],\n onMassActionPress = (): Promise<void> => Promise.resolve(),\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = (): Promise<void> => Promise.resolve(),\n onGridLoad = (): Promise<void> => Promise.resolve(),\n isProcessing = false,\n}: DataTableProps<T>): JSX.Element => {\n const [isLoading, setLoading] = useState(true);\n const [ids, setIds] = useState<(number | string)[]>([]);\n\n // Stable reference to onGridLoad to prevent infinite loops\n const onGridLoadRef = useRef(onGridLoad);\n onGridLoadRef.current = onGridLoad;\n\n // Stable callback that won't change on every render\n const stableOnGridLoad = useCallback(() => {\n return onGridLoadRef.current();\n }, []);\n\n // Initial load effect - runs once on mount\n useEffect((): void => {\n (async (): Promise<void> => {\n await stableOnGridLoad();\n setLoading(false);\n })();\n }, [stableOnGridLoad]);\n\n return (\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <View gridArea=\"header\">\n <Flex direction=\"row\" width=\"100%\">\n <ActionsBuilder\n buttons={buttons}\n massActions={massActions}\n isMassActionDisabled={ids.length === 0 || isProcessing}\n onMassActionPress={async (key: string) => {\n await onMassActionPress(key, ids);\n setIds([]);\n }}\n />\n {isProcessing && (\n <ProgressCircle\n size=\"M\"\n aria-label=\"Syncing..\"\n isIndeterminate\n marginEnd=\"size-100\"\n />\n )}\n </Flex>\n </View>\n <View gridArea=\"content\">\n <GridBuilder<T>\n columns={columns}\n data={data}\n isMassActionsEnabled={massActions.length > 0}\n gridAction={gridAction}\n gridActions={gridActions}\n onGridActionPress={async (key: string, item: T) => {\n await onGridActionPress(key, item);\n }}\n onSelectionChange={(keys: Selection) => {\n const selectedIds: (string | number)[] = [];\n if (typeof keys === 'string' && keys === 'all') {\n data.forEach(item => {\n selectedIds.push(item.id);\n });\n } else {\n selectedIds.push(...keys);\n }\n setIds(selectedIds);\n }}\n />\n </View>\n </View>\n )}\n </Flex>\n );\n};\n\nexport default DataTable;\n"],"names":["DataTable","_ref","_ref$columns","columns","_ref$data","data","_ref$buttons","buttons","_ref$massActions","massActions","_ref$onMassActionPres","onMassActionPress","Promise","resolve","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_ref$onGridLoad","onGridLoad","_ref$isProcessing","isProcessing","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","ids","setIds","onGridLoadRef","useRef","current","stableOnGridLoad","useCallback","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/DataTable/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { useEffect, useState, useCallback, useRef } from 'react';\nimport { Flex, View, ProgressCircle } from '@adobe/react-spectrum';\nimport ActionsBuilder from './ActionsBuilder';\nimport GridBuilder from './GridBuilder';\nimport { DataTableProps, GridAction, DataTableRow } from './types';\nimport { Selection } from '@react-types/shared';\n\nconst DataTable = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n buttons = [],\n massActions = [],\n onMassActionPress = (): Promise<void> => Promise.resolve(),\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = (): Promise<void> => Promise.resolve(),\n onGridLoad = (): Promise<void> => Promise.resolve(),\n isProcessing = false,\n}: DataTableProps<T>): JSX.Element => {\n const [isLoading, setLoading] = useState(true);\n const [ids, setIds] = useState<(number | string)[]>([]);\n\n // Stable reference to onGridLoad to prevent infinite loops\n const onGridLoadRef = useRef(onGridLoad);\n\n // Update ref in useEffect instead of during render\n useEffect(() => {\n onGridLoadRef.current = onGridLoad;\n }, [onGridLoad]);\n\n // Stable callback that won't change on every render\n const stableOnGridLoad = useCallback(() => {\n return onGridLoadRef.current();\n }, []);\n\n // Initial load effect - runs once on mount\n useEffect((): void => {\n (async (): Promise<void> => {\n await stableOnGridLoad();\n setLoading(false);\n })();\n }, [stableOnGridLoad]);\n\n return (\n <Flex width=\"100%\" alignItems=\"center\">\n {isLoading ? (\n <ProgressCircle size=\"L\" aria-label=\"Loading...\" isIndeterminate />\n ) : (\n <View width=\"100%\">\n <View gridArea=\"header\">\n <Flex direction=\"row\" width=\"100%\">\n <ActionsBuilder\n buttons={buttons}\n massActions={massActions}\n isMassActionDisabled={ids.length === 0 || isProcessing}\n onMassActionPress={async (key: string) => {\n await onMassActionPress(key, ids);\n setIds([]);\n }}\n />\n {isProcessing && (\n <ProgressCircle\n size=\"M\"\n aria-label=\"Syncing..\"\n isIndeterminate\n marginEnd=\"size-100\"\n />\n )}\n </Flex>\n </View>\n <View gridArea=\"content\">\n <GridBuilder<T>\n columns={columns}\n data={data}\n isMassActionsEnabled={massActions.length > 0}\n gridAction={gridAction}\n gridActions={gridActions}\n onGridActionPress={async (key: string, item: T) => {\n await onGridActionPress(key, item);\n }}\n onSelectionChange={(keys: Selection) => {\n const selectedIds: (string | number)[] = [];\n if (typeof keys === 'string' && keys === 'all') {\n data.forEach(item => {\n selectedIds.push(item.id);\n });\n } else {\n selectedIds.push(...keys);\n }\n setIds(selectedIds);\n }}\n />\n </View>\n </View>\n )}\n </Flex>\n );\n};\n\nexport default DataTable;\n"],"names":["DataTable","_ref","_ref$columns","columns","_ref$data","data","_ref$buttons","buttons","_ref$massActions","massActions","_ref$onMassActionPres","onMassActionPress","Promise","resolve","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_ref$onGridLoad","onGridLoad","_ref$isProcessing","isProcessing","_useState","useState","_useState2","_slicedToArray","isLoading","setLoading","_useState3","_useState4","ids","setIds","onGridLoadRef","useRef","useEffect","current","stableOnGridLoad","useCallback","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_jsx","Flex","width","alignItems","ProgressCircle","size","isIndeterminate","_jsxs","View","gridArea","children","direction","ActionsBuilder","isMassActionDisabled","length","_onMassActionPress2","_callee2","key","_context2","_x","apply","arguments","marginEnd","GridBuilder","isMassActionsEnabled","_onGridActionPress2","_callee3","item","_context3","_x2","_x3","onSelectionChange","keys","selectedIds","forEach","push","id","_toConsumableArray"],"mappings":"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"}
|
|
@@ -0,0 +1,241 @@
|
|
|
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
|
+
|
|
10
|
+
var FileUpload = function FileUpload(_ref) {
|
|
11
|
+
var name = _ref.name,
|
|
12
|
+
label = _ref.label,
|
|
13
|
+
_ref$isRequired = _ref.isRequired,
|
|
14
|
+
isRequired = _ref$isRequired === void 0 ? false : _ref$isRequired,
|
|
15
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
16
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
17
|
+
acceptedFileTypes = _ref.acceptedFileTypes,
|
|
18
|
+
_ref$allowsMultiple = _ref.allowsMultiple,
|
|
19
|
+
allowsMultiple = _ref$allowsMultiple === void 0 ? false : _ref$allowsMultiple,
|
|
20
|
+
contextualHelp = _ref.contextualHelp,
|
|
21
|
+
onSelect = _ref.onSelect;
|
|
22
|
+
var _useState = React.useState([]),
|
|
23
|
+
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
24
|
+
selectedFiles = _useState2[0],
|
|
25
|
+
setSelectedFiles = _useState2[1];
|
|
26
|
+
var _useState3 = React.useState(''),
|
|
27
|
+
_useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
|
|
28
|
+
error = _useState4[0],
|
|
29
|
+
setError = _useState4[1];
|
|
30
|
+
var _useState5 = React.useState(false),
|
|
31
|
+
_useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
|
|
32
|
+
isLoading = _useState6[0],
|
|
33
|
+
setIsLoading = _useState6[1];
|
|
34
|
+
// Dynamic button text based on allowsMultiple
|
|
35
|
+
var buttonText = allowsMultiple ? 'Select Files' : 'Select File';
|
|
36
|
+
/**
|
|
37
|
+
* Reads file content as text or base64 depending on file type
|
|
38
|
+
*/
|
|
39
|
+
var readFileContent = React.useCallback(function (file) {
|
|
40
|
+
return new Promise(function (resolve, reject) {
|
|
41
|
+
var reader = new FileReader();
|
|
42
|
+
reader.onload = function () {
|
|
43
|
+
var result = reader.result;
|
|
44
|
+
// Check if file is likely binary by checking MIME type
|
|
45
|
+
var isBinary = file.type && (file.type.startsWith('image/') || file.type.startsWith('video/') || file.type.startsWith('audio/') || file.type === 'application/pdf' || file.type === 'application/zip' || file.type.includes('binary'));
|
|
46
|
+
if (isBinary && result.startsWith('data:')) {
|
|
47
|
+
// Remove data URL prefix for base64 content
|
|
48
|
+
var base64Content = result.split(',')[1] || result;
|
|
49
|
+
resolve({
|
|
50
|
+
content: base64Content,
|
|
51
|
+
isBase64: true
|
|
52
|
+
});
|
|
53
|
+
} else {
|
|
54
|
+
resolve({
|
|
55
|
+
content: result,
|
|
56
|
+
isBase64: false
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
reader.onerror = function () {
|
|
61
|
+
reject(new Error("Failed to read file: ".concat(file.name)));
|
|
62
|
+
};
|
|
63
|
+
// Read as base64 for binary files, as text for text files
|
|
64
|
+
var isBinary = file.type && (file.type.startsWith('image/') || file.type.startsWith('video/') || file.type.startsWith('audio/') || file.type === 'application/pdf' || file.type === 'application/zip' || file.type.includes('binary'));
|
|
65
|
+
if (isBinary) {
|
|
66
|
+
reader.readAsDataURL(file);
|
|
67
|
+
} else {
|
|
68
|
+
reader.readAsText(file);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}, []);
|
|
72
|
+
/**
|
|
73
|
+
* Processes selected files and reads their content
|
|
74
|
+
*/
|
|
75
|
+
var processFiles = React.useCallback(/*#__PURE__*/function () {
|
|
76
|
+
var _ref2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(fileList) {
|
|
77
|
+
var files, processedFiles, _i, _files, file, _yield$readFileConten, content, isBase64, fileInfo, errorMsg, _errorMsg, _t, _t2;
|
|
78
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
|
|
79
|
+
while (1) switch (_context.p = _context.n) {
|
|
80
|
+
case 0:
|
|
81
|
+
if (!(!fileList || fileList.length === 0)) {
|
|
82
|
+
_context.n = 1;
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
return _context.a(2);
|
|
86
|
+
case 1:
|
|
87
|
+
setIsLoading(true);
|
|
88
|
+
setError('');
|
|
89
|
+
_context.p = 2;
|
|
90
|
+
files = Array.from(fileList);
|
|
91
|
+
processedFiles = [];
|
|
92
|
+
_i = 0, _files = files;
|
|
93
|
+
case 3:
|
|
94
|
+
if (!(_i < _files.length)) {
|
|
95
|
+
_context.n = 8;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
file = _files[_i];
|
|
99
|
+
_context.p = 4;
|
|
100
|
+
_context.n = 5;
|
|
101
|
+
return readFileContent(file);
|
|
102
|
+
case 5:
|
|
103
|
+
_yield$readFileConten = _context.v;
|
|
104
|
+
content = _yield$readFileConten.content;
|
|
105
|
+
isBase64 = _yield$readFileConten.isBase64;
|
|
106
|
+
fileInfo = {
|
|
107
|
+
name: file.name,
|
|
108
|
+
size: file.size,
|
|
109
|
+
type: file.type,
|
|
110
|
+
lastModified: file.lastModified,
|
|
111
|
+
content: content,
|
|
112
|
+
isBase64: isBase64
|
|
113
|
+
};
|
|
114
|
+
processedFiles.push(fileInfo);
|
|
115
|
+
_context.n = 7;
|
|
116
|
+
break;
|
|
117
|
+
case 6:
|
|
118
|
+
_context.p = 6;
|
|
119
|
+
_t = _context.v;
|
|
120
|
+
// Log error for debugging (will be suppressed in test environment by setupTests.ts)
|
|
121
|
+
console.error("Error processing file ".concat(file.name, ":"), _t);
|
|
122
|
+
errorMsg = "Failed to process file: ".concat(file.name);
|
|
123
|
+
setError(errorMsg);
|
|
124
|
+
return _context.a(2);
|
|
125
|
+
case 7:
|
|
126
|
+
_i++;
|
|
127
|
+
_context.n = 3;
|
|
128
|
+
break;
|
|
129
|
+
case 8:
|
|
130
|
+
setSelectedFiles(processedFiles);
|
|
131
|
+
// Call callback
|
|
132
|
+
onSelect === null || onSelect === void 0 || onSelect(processedFiles);
|
|
133
|
+
_context.n = 10;
|
|
134
|
+
break;
|
|
135
|
+
case 9:
|
|
136
|
+
_context.p = 9;
|
|
137
|
+
_t2 = _context.v;
|
|
138
|
+
/* istanbul ignore next */
|
|
139
|
+
_errorMsg = 'An error occurred while processing files.';
|
|
140
|
+
/* istanbul ignore next */
|
|
141
|
+
setError(_errorMsg);
|
|
142
|
+
/* istanbul ignore next */
|
|
143
|
+
// Log error for debugging (will be suppressed in test environment by setupTests.ts)
|
|
144
|
+
/* istanbul ignore next */
|
|
145
|
+
console.error('File processing error:', _t2);
|
|
146
|
+
case 10:
|
|
147
|
+
_context.p = 10;
|
|
148
|
+
setIsLoading(false);
|
|
149
|
+
return _context.f(10);
|
|
150
|
+
case 11:
|
|
151
|
+
return _context.a(2);
|
|
152
|
+
}
|
|
153
|
+
}, _callee, null, [[4, 6], [2, 9, 10, 11]]);
|
|
154
|
+
}));
|
|
155
|
+
return function (_x) {
|
|
156
|
+
return _ref2.apply(this, arguments);
|
|
157
|
+
};
|
|
158
|
+
}(), [onSelect, readFileContent]);
|
|
159
|
+
/**
|
|
160
|
+
* Handles file selection from FileTrigger
|
|
161
|
+
*/
|
|
162
|
+
var handleFileSelect = React.useCallback(function (fileList) {
|
|
163
|
+
processFiles(fileList);
|
|
164
|
+
}, [processFiles]);
|
|
165
|
+
/**
|
|
166
|
+
* Clears selected files and errors
|
|
167
|
+
*/
|
|
168
|
+
var clearFiles = React.useCallback(function () {
|
|
169
|
+
var emptyFiles = [];
|
|
170
|
+
setSelectedFiles(emptyFiles);
|
|
171
|
+
setError('');
|
|
172
|
+
// Call callback
|
|
173
|
+
onSelect === null || onSelect === void 0 || onSelect(emptyFiles);
|
|
174
|
+
}, [onSelect]);
|
|
175
|
+
return jsxRuntime.jsxs(reactSpectrum.View, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, name && {
|
|
176
|
+
'data-name': name
|
|
177
|
+
}), {}, {
|
|
178
|
+
maxWidth: 'size-6000',
|
|
179
|
+
children: [jsxRuntime.jsx(reactSpectrum.View, {
|
|
180
|
+
marginBottom: 'size-100',
|
|
181
|
+
children: jsxRuntime.jsxs(reactSpectrum.Text, {
|
|
182
|
+
children: [label, selectedFiles.length > 0 && " (".concat(selectedFiles.length, ")"), isRequired && jsxRuntime.jsx(reactSpectrum.Text, {
|
|
183
|
+
children: " *"
|
|
184
|
+
}), contextualHelp]
|
|
185
|
+
})
|
|
186
|
+
}), selectedFiles.length === 0 && jsxRuntime.jsx(reactSpectrum.View, {
|
|
187
|
+
marginBottom: 'size-100',
|
|
188
|
+
children: jsxRuntime.jsx(reactSpectrum.FileTrigger, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, acceptedFileTypes && acceptedFileTypes.length > 0 && {
|
|
189
|
+
acceptedFileTypes: acceptedFileTypes
|
|
190
|
+
}), {}, {
|
|
191
|
+
allowsMultiple: allowsMultiple,
|
|
192
|
+
acceptDirectory: false,
|
|
193
|
+
onSelect: handleFileSelect,
|
|
194
|
+
children: jsxRuntime.jsx(reactSpectrum.Button, {
|
|
195
|
+
variant: "primary",
|
|
196
|
+
isDisabled: isDisabled || isLoading,
|
|
197
|
+
children: isLoading ? 'Processing...' : buttonText
|
|
198
|
+
})
|
|
199
|
+
}))
|
|
200
|
+
}), selectedFiles.length > 0 && jsxRuntime.jsxs(reactSpectrum.View, {
|
|
201
|
+
marginBottom: 'size-100',
|
|
202
|
+
children: [jsxRuntime.jsx(reactSpectrum.View, {
|
|
203
|
+
borderWidth: 'thin',
|
|
204
|
+
borderColor: 'gray-400',
|
|
205
|
+
borderRadius: 'medium',
|
|
206
|
+
padding: 'size-100',
|
|
207
|
+
backgroundColor: 'gray-50',
|
|
208
|
+
children: selectedFiles.map(function (file, index) {
|
|
209
|
+
return jsxRuntime.jsx(reactSpectrum.View, {
|
|
210
|
+
marginBottom: index < selectedFiles.length - 1 ? 'size-50' : 'size-0',
|
|
211
|
+
children: jsxRuntime.jsx(reactSpectrum.View, {
|
|
212
|
+
children: jsxRuntime.jsxs(reactSpectrum.Text, {
|
|
213
|
+
marginBottom: 'size-50',
|
|
214
|
+
children: [jsxRuntime.jsx("strong", {
|
|
215
|
+
children: file.name
|
|
216
|
+
}), ": ", file.size / 1024, " KB | ", file.type || 'Unknown']
|
|
217
|
+
})
|
|
218
|
+
})
|
|
219
|
+
}, "".concat(file.name, "-").concat(index));
|
|
220
|
+
})
|
|
221
|
+
}), jsxRuntime.jsx(reactSpectrum.View, {
|
|
222
|
+
marginTop: 'size-100',
|
|
223
|
+
children: jsxRuntime.jsx(reactSpectrum.Link, {
|
|
224
|
+
onPress: clearFiles,
|
|
225
|
+
children: "Clear Files"
|
|
226
|
+
})
|
|
227
|
+
})]
|
|
228
|
+
}), error && jsxRuntime.jsx(reactSpectrum.View, {
|
|
229
|
+
marginTop: 'size-100',
|
|
230
|
+
children: jsxRuntime.jsx(reactSpectrum.InlineAlert, {
|
|
231
|
+
variant: 'negative',
|
|
232
|
+
children: jsxRuntime.jsx(reactSpectrum.Text, {
|
|
233
|
+
children: error
|
|
234
|
+
})
|
|
235
|
+
})
|
|
236
|
+
})]
|
|
237
|
+
}));
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
exports.default = FileUpload;
|
|
241
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/components/FileUpload/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState, useCallback } from 'react';\nimport { FileTrigger, Button, View, Text, InlineAlert, Link } from '@adobe/react-spectrum';\nimport { FileUploadProps, FileInfo } from './types';\n\nconst FileUpload: React.FC<FileUploadProps> = ({\n name,\n label,\n isRequired = false,\n isDisabled = false,\n acceptedFileTypes,\n allowsMultiple = false,\n contextualHelp,\n onSelect,\n}) => {\n const [selectedFiles, setSelectedFiles] = useState<FileInfo[]>([]);\n const [error, setError] = useState<string>('');\n const [isLoading, setIsLoading] = useState<boolean>(false);\n\n // Dynamic button text based on allowsMultiple\n const buttonText = allowsMultiple ? 'Select Files' : 'Select File';\n\n /**\n * Reads file content as text or base64 depending on file type\n */\n const readFileContent = useCallback(\n (file: File): Promise<{ content: string; isBase64: boolean }> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = (): void => {\n const result = reader.result as string;\n\n // Check if file is likely binary by checking MIME type\n const isBinary =\n file.type &&\n (file.type.startsWith('image/') ||\n file.type.startsWith('video/') ||\n file.type.startsWith('audio/') ||\n file.type === 'application/pdf' ||\n file.type === 'application/zip' ||\n file.type.includes('binary'));\n\n if (isBinary && result.startsWith('data:')) {\n // Remove data URL prefix for base64 content\n const base64Content = result.split(',')[1] || result;\n resolve({ content: base64Content, isBase64: true });\n } else {\n resolve({ content: result, isBase64: false });\n }\n };\n\n reader.onerror = (): void => {\n reject(new Error(`Failed to read file: ${file.name}`));\n };\n\n // Read as base64 for binary files, as text for text files\n const isBinary =\n file.type &&\n (file.type.startsWith('image/') ||\n file.type.startsWith('video/') ||\n file.type.startsWith('audio/') ||\n file.type === 'application/pdf' ||\n file.type === 'application/zip' ||\n file.type.includes('binary'));\n\n if (isBinary) {\n reader.readAsDataURL(file);\n } else {\n reader.readAsText(file);\n }\n });\n },\n []\n );\n\n /**\n * Processes selected files and reads their content\n */\n const processFiles = useCallback(\n async (fileList: FileList | null): Promise<void> => {\n if (!fileList || fileList.length === 0) {\n return;\n }\n\n setIsLoading(true);\n setError('');\n\n try {\n const files = Array.from(fileList);\n const processedFiles: FileInfo[] = [];\n\n for (const file of files) {\n try {\n const { content, isBase64 } = await readFileContent(file);\n\n const fileInfo: FileInfo = {\n name: file.name,\n size: file.size,\n type: file.type,\n lastModified: file.lastModified,\n content,\n isBase64,\n };\n\n processedFiles.push(fileInfo);\n } catch (fileError) {\n // Log error for debugging (will be suppressed in test environment by setupTests.ts)\n console.error(`Error processing file ${file.name}:`, fileError);\n const errorMsg = `Failed to process file: ${file.name}`;\n setError(errorMsg);\n return;\n }\n }\n\n setSelectedFiles(processedFiles);\n\n // Call callback\n onSelect?.(processedFiles);\n } catch (error) {\n /* istanbul ignore next */\n const errorMsg = 'An error occurred while processing files.';\n /* istanbul ignore next */\n setError(errorMsg);\n /* istanbul ignore next */\n // Log error for debugging (will be suppressed in test environment by setupTests.ts)\n /* istanbul ignore next */\n console.error('File processing error:', error);\n } finally {\n setIsLoading(false);\n }\n },\n [onSelect, readFileContent]\n );\n\n /**\n * Handles file selection from FileTrigger\n */\n const handleFileSelect = useCallback(\n (fileList: FileList | null) => {\n processFiles(fileList);\n },\n [processFiles]\n );\n\n /**\n * Clears selected files and errors\n */\n const clearFiles = useCallback(() => {\n const emptyFiles: FileInfo[] = [];\n setSelectedFiles(emptyFiles);\n setError('');\n\n // Call callback\n onSelect?.(emptyFiles);\n }, [onSelect]);\n\n return (\n <View {...(name && { 'data-name': name })} maxWidth={'size-6000'}>\n {/* Label - Always visible */}\n <View marginBottom={'size-100'}>\n <Text>\n {label}\n {selectedFiles.length > 0 && ` (${selectedFiles.length})`}\n {isRequired && <Text> *</Text>}\n {contextualHelp}\n </Text>\n </View>\n\n {/* File Trigger - Only show when no files are selected */}\n {selectedFiles.length === 0 && (\n <View marginBottom={'size-100'}>\n <FileTrigger\n {...(acceptedFileTypes && acceptedFileTypes.length > 0 && { acceptedFileTypes })}\n allowsMultiple={allowsMultiple}\n acceptDirectory={false}\n onSelect={handleFileSelect}\n >\n <Button variant=\"primary\" isDisabled={isDisabled || isLoading}>\n {isLoading ? 'Processing...' : buttonText}\n </Button>\n </FileTrigger>\n </View>\n )}\n\n {/* Selected Files Display */}\n {selectedFiles.length > 0 && (\n <View marginBottom={'size-100'}>\n <View\n borderWidth={'thin'}\n borderColor={'gray-400'}\n borderRadius={'medium'}\n padding={'size-100'}\n backgroundColor={'gray-50'}\n >\n {selectedFiles.map((file, index) => (\n <View\n key={`${file.name}-${index}`}\n marginBottom={index < selectedFiles.length - 1 ? 'size-50' : 'size-0'}\n >\n <View>\n <Text marginBottom={'size-50'}>\n <strong>{file.name}</strong>: {file.size / 1024} KB | {file.type || 'Unknown'}\n </Text>\n </View>\n </View>\n ))}\n </View>\n\n <View marginTop={'size-100'}>\n <Link onPress={clearFiles}>Clear Files</Link>\n </View>\n </View>\n )}\n\n {/* Error Message - Display at bottom */}\n {error && (\n <View marginTop={'size-100'}>\n <InlineAlert variant={'negative'}>\n <Text>{error}</Text>\n </InlineAlert>\n </View>\n )}\n </View>\n );\n};\n\nexport default FileUpload;\n"],"names":["FileUpload","_ref","name","label","_ref$isRequired","isRequired","_ref$isDisabled","isDisabled","acceptedFileTypes","_ref$allowsMultiple","allowsMultiple","contextualHelp","onSelect","_useState","useState","_useState2","_slicedToArray","selectedFiles","setSelectedFiles","_useState3","_useState4","error","setError","_useState5","_useState6","isLoading","setIsLoading","buttonText","readFileContent","useCallback","file","Promise","resolve","reject","reader","FileReader","onload","result","isBinary","type","startsWith","includes","base64Content","split","content","isBase64","onerror","Error","concat","readAsDataURL","readAsText","processFiles","_ref2","_asyncToGenerator","_regenerator","m","_callee","fileList","files","processedFiles","_i","_files","_yield$readFileConten","fileInfo","errorMsg","_errorMsg","_t","_t2","w","_context","p","n","length","a","Array","from","v","size","lastModified","push","console","f","_x","apply","arguments","handleFileSelect","clearFiles","emptyFiles","_jsxs","View","_objectSpread","maxWidth","children","_jsx","marginBottom","Text","FileTrigger","acceptDirectory","Button","variant","borderWidth","borderColor","borderRadius","padding","backgroundColor","map","index","marginTop","Link","onPress","InlineAlert"],"mappings":";;;;;;;;;AAQA,IAAMA,UAAU,GAA8B,SAAxCA,UAAUA,CAAAC,IAAA,EASX;AAAA,EAAA,IARHC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAAC,eAAA,GAAAH,IAAA,CACLI,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAAAE,eAAA,GAAAL,IAAA,CAClBM,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAClBE,iBAAiB,GAAAP,IAAA,CAAjBO,iBAAiB;IAAAC,mBAAA,GAAAR,IAAA,CACjBS,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,mBAAA;IACtBE,cAAc,GAAAV,IAAA,CAAdU,cAAc;IACdC,QAAQ,GAAAX,IAAA,CAARW,QAAQ;AAER,EAAA,IAAAC,SAAA,GAA0CC,cAAQ,CAAa,EAAE,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA3DI,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,gBAAgB,GAAAH,UAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAAI,UAAA,GAA0BL,cAAQ,CAAS,EAAE,CAAC;IAAAM,UAAA,GAAAJ,uCAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAvCE,IAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AACtB,EAAA,IAAAG,UAAA,GAAkCT,cAAQ,CAAU,KAAK,CAAC;IAAAU,UAAA,GAAAR,uCAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAAnDE,IAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAE9B;AACA,EAAA,IAAMG,UAAU,GAAGjB,cAAc,GAAG,cAAc,GAAG,aAAa;AAElE;;AAEG;AACH,EAAA,IAAMkB,eAAe,GAAGC,iBAAW,CACjC,UAACC,IAAU,EAAqD;AAC9D,IAAA,OAAO,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAEC,MAAM,EAAI;AACrC,MAAA,IAAMC,MAAM,GAAG,IAAIC,UAAU,EAAE;MAE/BD,MAAM,CAACE,MAAM,GAAG,YAAW;AACzB,QAAA,IAAMC,MAAM,GAAGH,MAAM,CAACG,MAAgB;AAEtC;QACA,IAAMC,QAAQ,GACZR,IAAI,CAACS,IAAI,KACRT,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,IAC7BV,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,IAC9BV,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,IAC9BV,IAAI,CAACS,IAAI,KAAK,iBAAiB,IAC/BT,IAAI,CAACS,IAAI,KAAK,iBAAiB,IAC/BT,IAAI,CAACS,IAAI,CAACE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEjC,IAAIH,QAAQ,IAAID,MAAM,CAACG,UAAU,CAAC,OAAO,CAAC,EAAE;AAC1C;AACA,UAAA,IAAME,aAAa,GAAGL,MAAM,CAACM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAIN,MAAM;AACpDL,UAAAA,OAAO,CAAC;AAAEY,YAAAA,OAAO,EAAEF,aAAa;AAAEG,YAAAA,QAAQ,EAAE;AAAI,WAAE,CAAC;AACrD,QAAA,CAAC,MAAM;AACLb,UAAAA,OAAO,CAAC;AAAEY,YAAAA,OAAO,EAAEP,MAAM;AAAEQ,YAAAA,QAAQ,EAAE;AAAK,WAAE,CAAC;AAC/C,QAAA;MACF,CAAC;MAEDX,MAAM,CAACY,OAAO,GAAG,YAAW;QAC1Bb,MAAM,CAAC,IAAIc,KAAK,CAAA,uBAAA,CAAAC,MAAA,CAAyBlB,IAAI,CAAC5B,IAAI,CAAE,CAAC,CAAC;MACxD,CAAC;AAED;MACA,IAAMoC,QAAQ,GACZR,IAAI,CAACS,IAAI,KACRT,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,IAC7BV,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,IAC9BV,IAAI,CAACS,IAAI,CAACC,UAAU,CAAC,QAAQ,CAAC,IAC9BV,IAAI,CAACS,IAAI,KAAK,iBAAiB,IAC/BT,IAAI,CAACS,IAAI,KAAK,iBAAiB,IAC/BT,IAAI,CAACS,IAAI,CAACE,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAEjC,MAAA,IAAIH,QAAQ,EAAE;AACZJ,QAAAA,MAAM,CAACe,aAAa,CAACnB,IAAI,CAAC;AAC5B,MAAA,CAAC,MAAM;AACLI,QAAAA,MAAM,CAACgB,UAAU,CAACpB,IAAI,CAAC;AACzB,MAAA;AACF,IAAA,CAAC,CAAC;EACJ,CAAC,EACD,EAAE,CACH;AAED;;AAEG;EACH,IAAMqB,YAAY,GAAGtB,iBAAW,cAAA,YAAA;IAAA,IAAAuB,KAAA,GAAAC,0CAAA,cAAAC,qCAAA,GAAAC,CAAA,CAC9B,SAAAC,OAAAA,CAAOC,QAAyB,EAAA;MAAA,IAAAC,KAAA,EAAAC,cAAA,EAAAC,EAAA,EAAAC,MAAA,EAAA/B,IAAA,EAAAgC,qBAAA,EAAAlB,OAAA,EAAAC,QAAA,EAAAkB,QAAA,EAAAC,QAAA,EAAAC,SAAA,EAAAC,EAAA,EAAAC,GAAA;AAAA,MAAA,OAAAb,qCAAA,EAAA,CAAAc,CAAA,CAAA,UAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA,GAAAD,QAAA,CAAAE,CAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EAC1B,CAACd,QAAQ,IAAIA,QAAQ,CAACe,MAAM,KAAK,CAAC,CAAA,EAAA;AAAAH,cAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YAAA,OAAAF,QAAA,CAAAI,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAItC/C,YAAY,CAAC,IAAI,CAAC;YAClBJ,QAAQ,CAAC,EAAE,CAAC;AAAC+C,YAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;AAGLZ,YAAAA,KAAK,GAAGgB,KAAK,CAACC,IAAI,CAAClB,QAAQ,CAAC;AAC5BE,YAAAA,cAAc,GAAe,EAAE;YAAAC,EAAA,GAAA,CAAA,EAAAC,MAAA,GAElBH,KAAK;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EAAAE,EAAA,GAAAC,MAAA,CAAAW,MAAA,CAAA,EAAA;AAAAH,cAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;YAAbzC,IAAI,GAAA+B,MAAA,CAAAD,EAAA,CAAA;AAAAS,YAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;AAAAD,YAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;YAAA,OAEyB3C,eAAe,CAACE,IAAI,CAAC;AAAA,UAAA,KAAA,CAAA;YAAAgC,qBAAA,GAAAO,QAAA,CAAAO,CAAA;YAAjDhC,OAAO,GAAAkB,qBAAA,CAAPlB,OAAO;YAAEC,QAAQ,GAAAiB,qBAAA,CAARjB,QAAQ;AAEnBkB,YAAAA,QAAQ,GAAa;cACzB7D,IAAI,EAAE4B,IAAI,CAAC5B,IAAI;cACf2E,IAAI,EAAE/C,IAAI,CAAC+C,IAAI;cACftC,IAAI,EAAET,IAAI,CAACS,IAAI;cACfuC,YAAY,EAAEhD,IAAI,CAACgD,YAAY;AAC/BlC,cAAAA,OAAO,EAAPA,OAAO;AACPC,cAAAA,QAAQ,EAARA;aACD;AAEDc,YAAAA,cAAc,CAACoB,IAAI,CAAChB,QAAQ,CAAC;AAACM,YAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;YAAAJ,EAAA,GAAAG,QAAA,CAAAO,CAAA;AAE9B;YACAI,OAAO,CAAC3D,KAAK,CAAA,wBAAA,CAAA2B,MAAA,CAA0BlB,IAAI,CAAC5B,IAAI,EAAA,GAAA,CAAA,EAAAgE,EAAc,CAAC;AACzDF,YAAAA,QAAQ,GAAA,0BAAA,CAAAhB,MAAA,CAA8BlB,IAAI,CAAC5B,IAAI,CAAA;YACrDoB,QAAQ,CAAC0C,QAAQ,CAAC;YAAC,OAAAK,QAAA,CAAAI,CAAA,CAAA,CAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAAAb,EAAA,EAAA;AAAAS,YAAAA,QAAA,CAAAE,CAAA,GAAA,CAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;YAKvBrD,gBAAgB,CAACyC,cAAc,CAAC;AAEhC;AACA/C,YAAAA,QAAQ,aAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAG+C,cAAc,CAAC;AAACU,YAAAA,QAAA,CAAAE,CAAA,GAAA,EAAA;AAAA,YAAA;AAAA,UAAA,KAAA,CAAA;AAAAF,YAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;YAAAH,GAAA,GAAAE,QAAA,CAAAO,CAAA;AAE3B;AACMZ,YAAAA,SAAQ,GAAG,2CAA2C;AAC5D;YACA1C,QAAQ,CAAC0C,SAAQ,CAAC;AAClB;AACA;AACA;AACAgB,YAAAA,OAAO,CAAC3D,KAAK,CAAC,wBAAwB,EAAA8C,GAAO,CAAC;AAAC,UAAA,KAAA,EAAA;AAAAE,YAAAA,QAAA,CAAAC,CAAA,GAAA,EAAA;YAE/C5C,YAAY,CAAC,KAAK,CAAC;YAAC,OAAA2C,QAAA,CAAAY,CAAA,CAAA,EAAA,CAAA;AAAA,UAAA,KAAA,EAAA;YAAA,OAAAZ,QAAA,CAAAI,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAjB,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA;IAAA,CAEvB,CAAA,CAAA;AAAA,IAAA,OAAA,UAAA0B,EAAA,EAAA;AAAA,MAAA,OAAA9B,KAAA,CAAA+B,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA,CAAA;AAAA,EAAA,CAAA,EAAA,EACD,CAACxE,QAAQ,EAAEgB,eAAe,CAAC,CAC5B;AAED;;AAEG;AACH,EAAA,IAAMyD,gBAAgB,GAAGxD,iBAAW,CAClC,UAAC4B,QAAyB,EAAI;IAC5BN,YAAY,CAACM,QAAQ,CAAC;AACxB,EAAA,CAAC,EACD,CAACN,YAAY,CAAC,CACf;AAED;;AAEG;AACH,EAAA,IAAMmC,UAAU,GAAGzD,iBAAW,CAAC,YAAK;IAClC,IAAM0D,UAAU,GAAe,EAAE;IACjCrE,gBAAgB,CAACqE,UAAU,CAAC;IAC5BjE,QAAQ,CAAC,EAAE,CAAC;AAEZ;AACAV,IAAAA,QAAQ,aAARA,QAAQ,KAAA,MAAA,IAARA,QAAQ,CAAG2E,UAAU,CAAC;AACxB,EAAA,CAAC,EAAE,CAAC3E,QAAQ,CAAC,CAAC;EAEd,OACE4E,eAAA,CAACC,kBAAI,EAAAC,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EAAMxF,IAAI,IAAI;AAAE,IAAA,WAAW,EAAEA;GAAM,CAAA,EAAA,EAAA,EAAA;AAAGyF,IAAAA,QAAQ,EAAE,WAAW;AAAAC,IAAAA,QAAA,EAAA,CAE9DC,cAAA,CAACJ,kBAAI,EAAA;AAACK,MAAAA,YAAY,EAAE,UAAU;AAAAF,MAAAA,QAAA,EAC5BJ,eAAA,CAACO,kBAAI,EAAA;QAAAH,QAAA,EAAA,CACFzF,KAAK,EACLc,aAAa,CAACuD,MAAM,GAAG,CAAC,IAAA,IAAA,CAAAxB,MAAA,CAAS/B,aAAa,CAACuD,MAAM,EAAA,GAAA,CAAG,EACxDnE,UAAU,IAAIwF,cAAA,CAACE,kBAAI,EAAA;AAAAH,UAAAA,QAAA,EAAA;SAAA,CAAU,EAC7BjF,cAAc;OAAA;KACV,CACF,EAGNM,aAAa,CAACuD,MAAM,KAAK,CAAC,IACzBqB,cAAA,CAACJ,kBAAI,EAAA;AAACK,MAAAA,YAAY,EAAE,UAAU;gBAC5BD,cAAA,CAACG,yBAAW,EAAAN,uCAAA,CAAAA,uCAAA,CAAA,EAAA,EACLlF,iBAAiB,IAAIA,iBAAiB,CAACgE,MAAM,GAAG,CAAC,IAAI;AAAEhE,QAAAA,iBAAiB,EAAjBA;OAAmB,CAAA,EAAA,EAAA,EAAA;AAC/EE,QAAAA,cAAc,EAAEA,cAAc;AAC9BuF,QAAAA,eAAe,EAAE,KAAK;AACtBrF,QAAAA,QAAQ,EAAEyE,gBAAgB;AAAAO,QAAAA,QAAA,EAE1BC,cAAA,CAACK,oBAAM,EAAA;AAACC,UAAAA,OAAO,EAAC,SAAS;UAAC5F,UAAU,EAAEA,UAAU,IAAIkB,SAAS;AAAAmE,UAAAA,QAAA,EAC1DnE,SAAS,GAAG,eAAe,GAAGE;SAAU;OAClC;KACG,CAEjB,EAGAV,aAAa,CAACuD,MAAM,GAAG,CAAC,IACvBgB,eAAA,CAACC,kBAAI,EAAA;AAACK,MAAAA,YAAY,EAAE,UAAU;AAAAF,MAAAA,QAAA,EAAA,CAC5BC,eAACJ,kBAAI,EAAA;AACHW,QAAAA,WAAW,EAAE,MAAM;AACnBC,QAAAA,WAAW,EAAE,UAAU;AACvBC,QAAAA,YAAY,EAAE,QAAQ;AACtBC,QAAAA,OAAO,EAAE,UAAU;AACnBC,QAAAA,eAAe,EAAE,SAAS;QAAAZ,QAAA,EAEzB3E,aAAa,CAACwF,GAAG,CAAC,UAAC3E,IAAI,EAAE4E,KAAK,EAAA;UAAA,OAC7Bb,eAACJ,kBAAI,EAAA;YAEHK,YAAY,EAAEY,KAAK,GAAGzF,aAAa,CAACuD,MAAM,GAAG,CAAC,GAAG,SAAS,GAAG,QAAQ;AAAAoB,YAAAA,QAAA,EAErEC,cAAA,CAACJ,kBAAI,EAAA;AAAAG,cAAAA,QAAA,EACHJ,eAAA,CAACO,kBAAI,EAAA;AAACD,gBAAAA,YAAY,EAAE,SAAS;AAAAF,gBAAAA,QAAA,EAAA,CAC3BC,cAAA,CAAA,QAAA,EAAA;kBAAAD,QAAA,EAAS9D,IAAI,CAAC5B;AAAI,iBAAA,CAAU,QAAG4B,IAAI,CAAC+C,IAAI,GAAG,IAAI,EAAA,QAAA,EAAQ/C,IAAI,CAACS,IAAI,IAAI,SAAS;eAAA;aACxE;WACF,EAAA,EAAA,CAAAS,MAAA,CAPClB,IAAI,CAAC5B,IAAI,EAAA,GAAA,CAAA,CAAA8C,MAAA,CAAI0D,KAAK,CAAE,CAQvB;QAAA,CACR;AAAC,OAAA,CACG,EAEPb,cAAA,CAACJ,kBAAI,EAAA;AAACkB,QAAAA,SAAS,EAAE,UAAU;AAAAf,QAAAA,QAAA,EACzBC,cAAA,CAACe,kBAAI,EAAA;AAACC,UAAAA,OAAO,EAAEvB,UAAU;AAAAM,UAAAA,QAAA,EAAA;SAAA;AAAoB,OAAA,CACxC;AAAA,KAAA,CAEV,EAGAvE,KAAK,IACJwE,cAAA,CAACJ,kBAAI,EAAA;AAACkB,MAAAA,SAAS,EAAE,UAAU;AAAAf,MAAAA,QAAA,EACzBC,cAAA,CAACiB,yBAAW,EAAA;AAACX,QAAAA,OAAO,EAAE,UAAU;AAAAP,QAAAA,QAAA,EAC9BC,eAACE,kBAAI,EAAA;AAAAH,UAAAA,QAAA,EAAEvE;SAAK;OAAQ;AACR,KAAA,CAEjB;AAAA,GAAA,CAAA,CACI;AAEX;;;;"}
|