@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.
Files changed (63) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +197 -25
  3. package/dist/cjs/components/DataForm/FieldBuilder/index.js +184 -35
  4. package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -1
  5. package/dist/cjs/components/DataForm/FormBuilder/index.js +9 -7
  6. package/dist/cjs/components/DataForm/FormBuilder/index.js.map +1 -1
  7. package/dist/cjs/components/DataForm/FormBuilder/types.js +2 -0
  8. package/dist/cjs/components/DataForm/FormBuilder/types.js.map +1 -1
  9. package/dist/cjs/components/DataForm/index.js +4 -1
  10. package/dist/cjs/components/DataForm/index.js.map +1 -1
  11. package/dist/cjs/components/DataTable/index.js +4 -1
  12. package/dist/cjs/components/DataTable/index.js.map +1 -1
  13. package/dist/cjs/components/FileUpload/index.js +241 -0
  14. package/dist/cjs/components/FileUpload/index.js.map +1 -0
  15. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js +1 -1
  16. package/dist/cjs/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
  17. package/dist/cjs/components/ShippingCarrierForm/index.js +143 -0
  18. package/dist/cjs/components/ShippingCarrierForm/index.js.map +1 -0
  19. package/dist/cjs/index.js +8 -4
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/cjs/utils/AdminUiSdk/index.js +67 -97
  22. package/dist/cjs/utils/AdminUiSdk/index.js.map +1 -1
  23. package/dist/esm/components/DataForm/FieldBuilder/index.js +185 -36
  24. package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
  25. package/dist/esm/components/DataForm/FormBuilder/index.js +9 -7
  26. package/dist/esm/components/DataForm/FormBuilder/index.js.map +1 -1
  27. package/dist/esm/components/DataForm/FormBuilder/types.js +2 -0
  28. package/dist/esm/components/DataForm/FormBuilder/types.js.map +1 -1
  29. package/dist/esm/components/DataForm/index.js +5 -2
  30. package/dist/esm/components/DataForm/index.js.map +1 -1
  31. package/dist/esm/components/DataTable/index.js +5 -2
  32. package/dist/esm/components/DataTable/index.js.map +1 -1
  33. package/dist/esm/components/FileUpload/index.js +237 -0
  34. package/dist/esm/components/FileUpload/index.js.map +1 -0
  35. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js +1 -1
  36. package/dist/esm/components/MainContainer/TwoColumnLeft/index.js.map +1 -1
  37. package/dist/esm/components/ShippingCarrierForm/index.js +139 -0
  38. package/dist/esm/components/ShippingCarrierForm/index.js.map +1 -0
  39. package/dist/esm/index.js +2 -0
  40. package/dist/esm/index.js.map +1 -1
  41. package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -1
  42. package/dist/esm/types/components/DataForm/FormBuilder/index.d.ts.map +1 -1
  43. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts +2 -0
  44. package/dist/esm/types/components/DataForm/FormBuilder/types.d.ts.map +1 -1
  45. package/dist/esm/types/components/DataForm/index.d.ts.map +1 -1
  46. package/dist/esm/types/components/DataTable/index.d.ts.map +1 -1
  47. package/dist/esm/types/components/FileUpload/index.d.ts +8 -0
  48. package/dist/esm/types/components/FileUpload/index.d.ts.map +1 -0
  49. package/dist/esm/types/components/FileUpload/types.d.ts +71 -0
  50. package/dist/esm/types/components/FileUpload/types.d.ts.map +1 -0
  51. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts +18 -0
  52. package/dist/esm/types/components/ShippingCarrierForm/index.d.ts.map +1 -0
  53. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts +55 -0
  54. package/dist/esm/types/components/ShippingCarrierForm/types.d.ts.map +1 -0
  55. package/dist/esm/types/components/index.d.ts +10 -0
  56. package/dist/esm/types/components/index.d.ts.map +1 -1
  57. package/dist/esm/types/utils/AdminUiSdk/index.d.ts +17 -30
  58. package/dist/esm/types/utils/AdminUiSdk/index.d.ts.map +1 -1
  59. package/dist/esm/types/utils/AdminUiSdk/types.d.ts +9 -50
  60. package/dist/esm/types/utils/AdminUiSdk/types.d.ts.map +1 -1
  61. package/dist/esm/utils/AdminUiSdk/index.js +69 -99
  62. package/dist/esm/utils/AdminUiSdk/index.js.map +1 -1
  63. 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(values, key)) {
60
- values[key] = editItem[key];
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(values);
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
- db_values = _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, values), {}, _rollupPluginBabelHelpers.defineProperty({}, db_field, value));
102
- setValues(db_values);
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(values, key)) {\n values[key] = editItem[key];\n }\n }\n setSubmitting(true);\n await onFormSubmit(values);\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 const db_values = {\n ...values,\n [db_field]: value,\n };\n setValues(db_values);\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","key","w","_context","n","preventDefault","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","db_values","_context2","_objectSpread","_defineProperty","_x2","_x3","_x4","alignItems","ProgressCircle","size","marginEnd","isIndeterminate","ActionButton","type","staticColor","SaveFloppy","Text","onPress","Back"],"mappings":"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"}
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,EAVWA,iBAAS,KAATA,iBAAS,GAAA,EAAA,CAAA,CAAA;;"}
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
- onFormLoadRef.current = onFormLoad;
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","useEffect","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_jsx","Provider","theme","defaultTheme","colorScheme","children","Flex","width","alignItems","ProgressCircle","size","isIndeterminate","View","FormBuilder"],"mappings":";;;;;;;;;;AASA,IAAMA,QAAQ,GAA4B,SAApCA,QAAQA,CAAAC,IAAA,EAUT;AAAA,EAAA,IAAAC,eAAA,GAAAD,IAAA,CATHE,UAAU;IAAVA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG;AAAEE,MAAAA,MAAM,EAAE;AAAE,KAAE,GAAAF,eAAA;IAC3BG,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAAC,kBAAA,GAAAL,IAAA,CACRM,aAAa;IAAbA,aAAa,GAAAD,kBAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAqBE,OAAO,CAACC,OAAO,EAAE;AAAA,IAAA,CAAA,GAAAH,kBAAA;IAAAI,eAAA,GAAAT,IAAA,CACtDU,UAAU;IAAVA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAqBF,OAAO,CAACC,OAAO,EAAE;AAAA,IAAA,CAAA,GAAAC,eAAA;IAAAE,iBAAA,GAAAX,IAAA,CACnDY,YAAY;IAAZA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAqBJ,OAAO,CAACC,OAAO,EAAE;AAAA,IAAA,CAAA,GAAAG,iBAAA;IAAAE,qBAAA,GAAAb,IAAA,CACrDc,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,YAAA;AAAA,MAAA,OAAqBN,OAAO,CAACC,OAAO,EAAE;AAAA,IAAA,CAAA,GAAAK,qBAAA;IAAAE,gBAAA,GAAAf,IAAA,CACzDgB,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAA,MAAA,GAAG,YAAW,CAAE,CAAC,GAAAA,gBAAA;IAAAE,iBAAA,GAAAjB,IAAA,CAC5BkB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,iBAAA;IAAAE,mBAAA,GAAAnB,IAAA,CACpBoB,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAA,MAAA,GAAG,IAAI,GAAAA,mBAAA;AAErB,EAAA,IAAAE,SAAA,GAAgCC,cAAQ,CAAU,IAAI,CAAC;IAAAC,UAAA,GAAAC,uCAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhDI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,UAAU,GAAAH,UAAA,CAAA,CAAA,CAAA;AAE5B;AACA,EAAA,IAAMI,aAAa,GAAGC,YAAM,CAAClB,UAAU,CAAC;EACxCiB,aAAa,CAACE,OAAO,GAAGnB,UAAU;AAElC;AACA,EAAA,IAAMoB,gBAAgB,GAAGC,iBAAW,CAAC,YAAK;AACxC,IAAA,OAAOJ,aAAa,CAACE,OAAO,EAAE;EAChC,CAAC,EAAE,EAAE,CAAC;AAENG,EAAAA,eAAS,CAAC,YAAK;AACbC,IAAAA,0CAAA,cAAAC,qCAAA,EAAA,CAAAC,CAAA,CAAC,SAAAC,OAAAA,GAAA;AAAA,MAAA,OAAAF,qCAAA,EAAA,CAAAG,CAAA,CAAA,UAAAC,QAAA,EAAA;QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,CAAA;AAAA,UAAA,KAAA,CAAA;AAAAD,YAAAA,QAAA,CAAAC,CAAA,GAAA,CAAA;YAAA,OACOT,gBAAgB,EAAE;AAAA,UAAA,KAAA,CAAA;YACxBJ,UAAU,CAAC,KAAK,CAAC;AAAC,UAAA,KAAA,CAAA;YAAA,OAAAY,QAAA,CAAAE,CAAA,CAAA,CAAA,CAAA;AAAA;AAAA,MAAA,CAAA,EAAAJ,OAAA,CAAA;AAAA,IAAA,CACnB,IAAG;AACN,EAAA,CAAC,EAAE,CAACN,gBAAgB,CAAC,CAAC;EAEtB,OACEW,cAAA,CAACC,sBAAQ;AAACC,IAAAA,KAAK,EAAEC,0BAAY;AAAEC,IAAAA,WAAW,EAAE,OAAO;AAAAC,IAAAA,QAAA,EACjDL,eAACM,kBAAI,EAAA;AAACC,MAAAA,KAAK,EAAC,MAAM;AAACC,MAAAA,UAAU,EAAC,QAAQ;AAAAH,MAAAA,QAAA,EACnCrB,SAAS,GACRgB,cAAA,CAACS,4BAAc;AAACC,QAAAA,IAAI,EAAC,GAAG;AAAA,QAAA,YAAA,EAAY,YAAY;AAACC,QAAAA,eAAe,EAAA;AAAA,OAAA,CAAG,GAEnEX,cAAA,CAACY,kBAAI,EAAA;AAACL,QAAAA,KAAK,EAAC,MAAM;AAAAF,QAAAA,QAAA,EAChBL,eAACa,aAAW,EAAA;AACVpD,UAAAA,UAAU,EAAEA,UAAU;AACtBE,UAAAA,QAAQ,EAAEA,QAAQ;AAClBE,UAAAA,aAAa,EAAEA,aAAa;AAC5BU,UAAAA,WAAW,EAAEA,WAAW;AACxBJ,UAAAA,YAAY,EAAEA,YAAY;AAC1BE,UAAAA,gBAAgB,EAAEA,gBAAgB;AAClCI,UAAAA,YAAY,EAAEA,YAAY;AAC1BE,UAAAA,cAAc,EAAEA;SAAc;OAC9B;KAEL;AACI,GAAA,CACE;AAEf;;;;"}
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
- onGridLoadRef.current = onGridLoad;
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","useEffect","_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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"}
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":"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"}