@adobe-commerce/aio-experience-kit 1.0.2 → 1.0.3
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 +26 -0
- package/README.md +56 -2
- package/dist/cjs/components/DataForm/FieldBuilder/index.js +3 -2
- package/dist/cjs/components/DataForm/FieldBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataTable/GridBuilder/index.js +72 -58
- package/dist/cjs/components/DataTable/GridBuilder/index.js.map +1 -1
- package/dist/cjs/components/DataTable/index.js +8 -4
- package/dist/cjs/components/DataTable/index.js.map +1 -1
- package/dist/cjs/components/DataTable/types.js.map +1 -1
- package/dist/cjs/components/FileUpload/index.js +12 -2
- package/dist/cjs/components/FileUpload/index.js.map +1 -1
- package/dist/esm/components/DataForm/FieldBuilder/index.js +3 -2
- package/dist/esm/components/DataForm/FieldBuilder/index.js.map +1 -1
- package/dist/esm/components/DataTable/GridBuilder/index.js +74 -60
- package/dist/esm/components/DataTable/GridBuilder/index.js.map +1 -1
- package/dist/esm/components/DataTable/index.js +9 -5
- package/dist/esm/components/DataTable/index.js.map +1 -1
- package/dist/esm/components/DataTable/types.js.map +1 -1
- package/dist/esm/components/FileUpload/index.js +13 -3
- package/dist/esm/components/FileUpload/index.js.map +1 -1
- package/dist/esm/types/components/DataForm/FieldBuilder/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/GridBuilder/index.d.ts +1 -1
- package/dist/esm/types/components/DataTable/GridBuilder/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/GridBuilder/types.d.ts +1 -0
- package/dist/esm/types/components/DataTable/GridBuilder/types.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/index.d.ts +1 -1
- package/dist/esm/types/components/DataTable/index.d.ts.map +1 -1
- package/dist/esm/types/components/DataTable/types.d.ts +1 -0
- package/dist/esm/types/components/DataTable/types.d.ts.map +1 -1
- package/dist/esm/types/components/FileUpload/index.d.ts +2 -3
- package/dist/esm/types/components/FileUpload/index.d.ts.map +1 -1
- package/dist/esm/types/components/FileUpload/types.d.ts +14 -0
- package/dist/esm/types/components/FileUpload/types.d.ts.map +1 -1
- package/dist/esm/types/components/index.d.ts +1 -1
- package/dist/esm/types/components/index.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,32 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.3] - 2024-11-19
|
|
9
|
+
|
|
10
|
+
### ✨ Added
|
|
11
|
+
|
|
12
|
+
- **[FileUpload](./src/components/FileUpload/index.tsx)** - Imperative handle for programmatic control
|
|
13
|
+
- Added `FileUploadHandle` interface exposing `reset()` and `getFiles()` methods via React refs
|
|
14
|
+
- Enables parent components to imperatively clear selected files and reset component state
|
|
15
|
+
- Supports form reset workflows, multi-step wizards, and conditional clearing scenarios
|
|
16
|
+
- Maintains 100% backward compatibility (ref is optional)
|
|
17
|
+
- Full test coverage with comprehensive ref functionality testing
|
|
18
|
+
|
|
19
|
+
- **[DataTable](./src/components/DataTable/index.tsx)** - Vertical scrolling for large datasets
|
|
20
|
+
- Added `maxHeight` prop to enable vertical scrolling when displaying large datasets
|
|
21
|
+
- Supports Spectrum dimension tokens (`size-6000`), CSS values (`500px`), and viewport units (`60vh`)
|
|
22
|
+
- Prevents excessive page scrolling and improves performance with many rows
|
|
23
|
+
- Maintains table header visibility while scrolling content
|
|
24
|
+
- Backward compatible (defaults to existing behavior without maxHeight)
|
|
25
|
+
|
|
26
|
+
### 🔧 Changed
|
|
27
|
+
|
|
28
|
+
- **[FieldBuilder](./src/components/DataForm/FieldBuilder/index.tsx)** - Improved Toggle field spacing and alignment
|
|
29
|
+
- Reduced gap between Switch label and Contextual Help from `size-100` (8px) to `size-25` (2px)
|
|
30
|
+
- Changed alignment from `start` to `center` for better vertical positioning
|
|
31
|
+
- Improved visual consistency with other form field types
|
|
32
|
+
- Enhanced user experience with tighter, more cohesive appearance
|
|
33
|
+
|
|
8
34
|
## [1.0.2] - 2024-11-15
|
|
9
35
|
|
|
10
36
|
### ✨ Added
|
package/README.md
CHANGED
|
@@ -181,13 +181,31 @@ class EntityModel {
|
|
|
181
181
|
}
|
|
182
182
|
```
|
|
183
183
|
|
|
184
|
+
**Vertical Scrolling for Large Datasets (v1.0.3+):**
|
|
185
|
+
|
|
186
|
+
Control table height with automatic scrolling:
|
|
187
|
+
|
|
188
|
+
```javascript
|
|
189
|
+
<DataTable
|
|
190
|
+
columns={columns}
|
|
191
|
+
data={largeDataset}
|
|
192
|
+
maxHeight="size-6000" // Spectrum token (480px)
|
|
193
|
+
// or maxHeight="500px" // CSS value
|
|
194
|
+
// or maxHeight="60vh" // Viewport height
|
|
195
|
+
onGridLoad={async () => {
|
|
196
|
+
// Load large dataset
|
|
197
|
+
}}
|
|
198
|
+
/>
|
|
199
|
+
```
|
|
200
|
+
|
|
184
201
|
**Features:**
|
|
185
202
|
- **Advanced Data Management**: Sortable columns with intelligent data type handling and custom sort functions
|
|
186
203
|
- **Flexible Selection**: Support for single-row selection or multi-row selection with visual feedback
|
|
187
204
|
- **Bulk Operations**: Mass action system for performing operations on multiple selected items
|
|
188
205
|
- **Contextual Actions**: Per-row actions with customizable button layouts, links, or dropdown menus
|
|
189
206
|
- **State Management**: Built-in loading states, empty state handling, and error boundary support
|
|
190
|
-
- **Performance Optimized**: Virtual scrolling for large datasets
|
|
207
|
+
- **Performance Optimized**: Virtual scrolling for large datasets with efficient re-rendering
|
|
208
|
+
- **Scrollable Tables**: Optional maxHeight prop for vertical scrolling with large datasets (v1.0.3+)
|
|
191
209
|
- **User Experience**: Intuitive interactions with hover states, keyboard navigation, and clear visual hierarchy
|
|
192
210
|
|
|
193
211
|
#### `DataForm`
|
|
@@ -528,12 +546,47 @@ const DocumentUploader = () => {
|
|
|
528
546
|
};
|
|
529
547
|
```
|
|
530
548
|
|
|
549
|
+
**Programmatic Control with Refs (v1.0.3+):**
|
|
550
|
+
|
|
551
|
+
Reset the component programmatically from parent components:
|
|
552
|
+
|
|
553
|
+
```javascript
|
|
554
|
+
import React, { useRef } from 'react';
|
|
555
|
+
import { FileUpload, FileUploadHandle } from '@adobe-commerce/aio-experience-kit';
|
|
556
|
+
|
|
557
|
+
const MyForm = () => {
|
|
558
|
+
const fileUploadRef = useRef<FileUploadHandle>(null);
|
|
559
|
+
|
|
560
|
+
const handleReset = () => {
|
|
561
|
+
fileUploadRef.current?.reset(); // Clear all files
|
|
562
|
+
};
|
|
563
|
+
|
|
564
|
+
const handleGetFiles = () => {
|
|
565
|
+
const files = fileUploadRef.current?.getFiles(); // Get current files
|
|
566
|
+
console.log('Current files:', files);
|
|
567
|
+
};
|
|
568
|
+
|
|
569
|
+
return (
|
|
570
|
+
<>
|
|
571
|
+
<FileUpload
|
|
572
|
+
ref={fileUploadRef}
|
|
573
|
+
label="Upload Files"
|
|
574
|
+
onSelect={(files) => console.log('Selected:', files)}
|
|
575
|
+
/>
|
|
576
|
+
<Button onPress={handleReset}>Reset</Button>
|
|
577
|
+
<Button onPress={handleGetFiles}>Get Files</Button>
|
|
578
|
+
</>
|
|
579
|
+
);
|
|
580
|
+
};
|
|
581
|
+
```
|
|
582
|
+
|
|
531
583
|
**Features:**
|
|
532
584
|
- **File Selection**: Click to browse files with support for single or multiple file selection
|
|
533
585
|
- **Automatic Content Reading**: Automatically reads file content as text or base64 based on file type
|
|
534
586
|
- **File Type Validation**: Built-in validation for accepted MIME types and file extensions
|
|
535
587
|
- **Built-in Display**: Automatically displays selected files with name, size, and type information
|
|
536
|
-
- **Clear Functionality**: Built-in "Clear Files" link to remove selected files
|
|
588
|
+
- **Clear Functionality**: Built-in "Clear Files" link to remove selected files and programmatic reset via ref
|
|
589
|
+
- **Imperative Handle**: Access reset() and getFiles() methods via React refs for parent control
|
|
537
590
|
- **Loading States**: Shows processing indicator while reading file contents
|
|
538
591
|
- **Error Handling**: Comprehensive error messaging for file reading failures
|
|
539
592
|
- **Accessibility**: Full keyboard navigation, screen reader support, and ARIA labels
|
|
@@ -631,6 +684,7 @@ import type {
|
|
|
631
684
|
DataFormProps,
|
|
632
685
|
ConfirmationDialogProps,
|
|
633
686
|
FileUploadProps,
|
|
687
|
+
FileUploadHandle,
|
|
634
688
|
FieldType,
|
|
635
689
|
AdminUiSdkInterface,
|
|
636
690
|
AdminUiSdkCredentials
|
|
@@ -183,11 +183,12 @@ var FieldBuilder = function FieldBuilder(_ref) {
|
|
|
183
183
|
return jsxRuntime.jsxs(reactSpectrum.View, {
|
|
184
184
|
marginBottom: 'size-100',
|
|
185
185
|
children: [jsxRuntime.jsxs(reactSpectrum.Flex, {
|
|
186
|
-
gap: "size-
|
|
187
|
-
alignItems: "
|
|
186
|
+
gap: "size-0",
|
|
187
|
+
alignItems: "center",
|
|
188
188
|
children: [jsxRuntime.jsx(reactSpectrum.Switch, {
|
|
189
189
|
isDisabled: isChecked || ((_field$disabled3 = field.disabled) !== null && _field$disabled3 !== void 0 ? _field$disabled3 : false),
|
|
190
190
|
isSelected: value === '1',
|
|
191
|
+
marginEnd: "size-0",
|
|
191
192
|
onChange: function () {
|
|
192
193
|
var _onChange4 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee6(selected) {
|
|
193
194
|
var toggleValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/FieldBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport {\n Picker,\n Item,\n TextField,\n View,\n Checkbox,\n CheckboxGroup,\n LabeledValue,\n Switch,\n Flex,\n} from '@adobe/react-spectrum';\nimport { FieldBuilderProps } from './types';\nimport { FieldType } from '../FormBuilder/types';\n\nconst FieldBuilder: React.FC<FieldBuilderProps> = ({\n field,\n editItem,\n onFieldChange,\n usePlaceholder = true,\n}) => {\n const envName = field.db_field + '-env';\n\n const [isChecked, setIsChecked] = useState<boolean>(editItem[envName] ?? false);\n const [value, setValue] = useState<any>(() => {\n const initialValue = editItem[field.db_field] ?? field.value;\n const defaultValue = initialValue ?? (field.type === FieldType.TOGGLE ? '0' : null);\n\n // Call onFieldChange for TOGGLE fields with default value\n if (field.type === FieldType.TOGGLE && !initialValue && defaultValue === '0') {\n // Use setTimeout to avoid calling during render\n setTimeout(async () => {\n await onFieldChange(field.code, field.db_field, '0');\n }, 0);\n }\n\n return defaultValue;\n });\n\n return (\n <View>\n {((): React.ReactElement => {\n switch (field.type) {\n case FieldType.SELECT:\n return (\n <View marginBottom={'size-100'}>\n <Picker\n key={field.code}\n label={field.label}\n items={field.options || []}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n defaultSelectedKey={value}\n width=\"100%\"\n onSelectionChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n >\n {item => <Item key={item.value}>{item.label}</Item>}\n </Picker>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.MULTISELECT:\n return (\n <View marginBottom={'size-100'}>\n <CheckboxGroup\n key={field.code}\n label={field.label}\n width={'size-6000'}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n value={Array.isArray(value) ? value : []}\n onChange={async (selectedValues: string[]) => {\n setValue(selectedValues);\n await onFieldChange(field.code, field.db_field, selectedValues);\n }}\n >\n <View\n borderWidth={'thin'}\n borderColor={'gray-600'}\n borderRadius={'medium'}\n padding={'size-100'}\n backgroundColor={'static-white'}\n >\n <View maxHeight={'size-2400'} overflow={'auto'}>\n {(field.options || []).map((option, index) => (\n <Checkbox\n key={`${field.code}-${index}`}\n width={'100%'}\n value={option.value}\n >\n {option.label}\n </Checkbox>\n ))}\n </View>\n </View>\n </CheckboxGroup>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable:{' '}\n {Array.isArray(value) ? value.join(', ') : value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.TOGGLE:\n return (\n <View marginBottom={'size-100'}>\n <Flex gap=\"size-100\" alignItems=\"start\">\n <Switch\n key={field.code}\n isDisabled={isChecked || (field.disabled ?? false)}\n isSelected={value === '1'}\n onChange={async (selected: boolean) => {\n const toggleValue = selected ? '1' : '0';\n setValue(toggleValue);\n await onFieldChange(field.code, field.db_field, toggleValue);\n }}\n >\n {field.label}\n </Switch>\n {field.contextualHelp ?? null}\n </Flex>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.LABEL:\n return (\n <View marginBottom={'size-100'}>\n <LabeledValue\n key={field.code}\n label={field.label}\n value={value}\n contextualHelp={field.contextualHelp ?? null}\n />\n </View>\n );\n case FieldType.TEXT:\n case FieldType.EMAIL:\n case FieldType.PASSWORD:\n case FieldType.NUMBER:\n case FieldType.URL:\n case FieldType.TEL:\n case FieldType.SEARCH:\n default:\n return (\n <View marginBottom={'size-100'}>\n <TextField\n type={field.type}\n key={field.code}\n label={field.label}\n placeholder={usePlaceholder ? field.label : ''}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n defaultValue={value}\n contextualHelp={field.contextualHelp ?? null}\n width=\"100%\"\n onChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n />\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n }\n })()}\n </View>\n );\n};\n\nexport default FieldBuilder;\n"],"names":["FieldBuilder","_ref","_editItem$envName","field","editItem","onFieldChange","_ref$usePlaceholder","usePlaceholder","envName","db_field","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","_useState3","_editItem$field$db_fi","initialValue","value","defaultValue","type","FieldType","TOGGLE","setTimeout","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","code","a","_useState4","setValue","_jsx","View","children","_field$required","_field$disabled","_field$contextualHelp","_field$required2","_field$disabled2","_field$contextualHelp2","_field$disabled3","_field$contextualHelp3","_field$contextualHelp4","_field$required3","_field$disabled4","_field$contextualHelp5","SELECT","_jsxs","marginBottom","Picker","label","items","options","isRequired","required","isDisabled","disabled","contextualHelp","defaultSelectedKey","width","onSelectionChange","_onSelectionChange","_callee2","_context2","_x","apply","arguments","item","Item","use_env_var","undefined","Checkbox","name","defaultSelected","onChange","_onChange","_callee3","checked","_context3","_x2","MULTISELECT","CheckboxGroup","Array","isArray","_onChange2","_callee4","selectedValues","_context4","_x3","borderWidth","borderColor","borderRadius","padding","backgroundColor","maxHeight","overflow","map","option","index","concat","_onChange3","_callee5","_context5","_x4","join","Flex","gap","alignItems","Switch","isSelected","_onChange4","_callee6","selected","toggleValue","_context6","_x5","_onChange5","_callee7","_context7","_x6","LABEL","LabeledValue","TEXT","EMAIL","PASSWORD","NUMBER","URL","TEL","SEARCH","TextField","placeholder","_onChange6","_callee8","_context8","_x7","_onChange7","_callee9","_context9","_x8"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataForm/FieldBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\nimport React, { useState } from 'react';\nimport {\n Picker,\n Item,\n TextField,\n View,\n Checkbox,\n CheckboxGroup,\n LabeledValue,\n Switch,\n Flex,\n} from '@adobe/react-spectrum';\nimport { FieldBuilderProps } from './types';\nimport { FieldType } from '../FormBuilder/types';\n\nconst FieldBuilder: React.FC<FieldBuilderProps> = ({\n field,\n editItem,\n onFieldChange,\n usePlaceholder = true,\n}) => {\n const envName = field.db_field + '-env';\n\n const [isChecked, setIsChecked] = useState<boolean>(editItem[envName] ?? false);\n const [value, setValue] = useState<any>(() => {\n const initialValue = editItem[field.db_field] ?? field.value;\n const defaultValue = initialValue ?? (field.type === FieldType.TOGGLE ? '0' : null);\n\n // Call onFieldChange for TOGGLE fields with default value\n if (field.type === FieldType.TOGGLE && !initialValue && defaultValue === '0') {\n // Use setTimeout to avoid calling during render\n setTimeout(async () => {\n await onFieldChange(field.code, field.db_field, '0');\n }, 0);\n }\n\n return defaultValue;\n });\n\n return (\n <View>\n {((): React.ReactElement => {\n switch (field.type) {\n case FieldType.SELECT:\n return (\n <View marginBottom={'size-100'}>\n <Picker\n key={field.code}\n label={field.label}\n items={field.options || []}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n contextualHelp={field.contextualHelp ?? null}\n defaultSelectedKey={value}\n width=\"100%\"\n onSelectionChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n >\n {item => <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-0\" alignItems=\"center\">\n <Switch\n key={field.code}\n isDisabled={isChecked || (field.disabled ?? false)}\n isSelected={value === '1'}\n marginEnd=\"size-0\"\n onChange={async (selected: boolean) => {\n const toggleValue = selected ? '1' : '0';\n setValue(toggleValue);\n await onFieldChange(field.code, field.db_field, toggleValue);\n }}\n >\n {field.label}\n </Switch>\n {field.contextualHelp ?? null}\n </Flex>\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n case FieldType.LABEL:\n return (\n <View marginBottom={'size-100'}>\n <LabeledValue\n key={field.code}\n label={field.label}\n value={value}\n contextualHelp={field.contextualHelp ?? null}\n />\n </View>\n );\n case FieldType.TEXT:\n case FieldType.EMAIL:\n case FieldType.PASSWORD:\n case FieldType.NUMBER:\n case FieldType.URL:\n case FieldType.TEL:\n case FieldType.SEARCH:\n default:\n return (\n <View marginBottom={'size-100'}>\n <TextField\n type={field.type}\n key={field.code}\n label={field.label}\n placeholder={usePlaceholder ? field.label : ''}\n isRequired={field.required ?? false}\n isDisabled={isChecked || (field.disabled ?? false)}\n defaultValue={value}\n contextualHelp={field.contextualHelp ?? null}\n width=\"100%\"\n onChange={async (value: any) => {\n setValue(value);\n await onFieldChange(field.code, field.db_field, value);\n }}\n />\n {field.use_env_var !== undefined && field.use_env_var ? (\n <Checkbox\n key={envName}\n name={envName}\n value={'1'}\n isRequired={false}\n defaultSelected={isChecked}\n onChange={async (checked: boolean) => {\n setIsChecked(checked);\n await onFieldChange(envName, envName, checked);\n }}\n >\n Use value as environment variable: {value}\n </Checkbox>\n ) : null}\n </View>\n );\n }\n })()}\n </View>\n );\n};\n\nexport default FieldBuilder;\n"],"names":["FieldBuilder","_ref","_editItem$envName","field","editItem","onFieldChange","_ref$usePlaceholder","usePlaceholder","envName","db_field","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","_useState3","_editItem$field$db_fi","initialValue","value","defaultValue","type","FieldType","TOGGLE","setTimeout","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","code","a","_useState4","setValue","_jsx","View","children","_field$required","_field$disabled","_field$contextualHelp","_field$required2","_field$disabled2","_field$contextualHelp2","_field$disabled3","_field$contextualHelp3","_field$contextualHelp4","_field$required3","_field$disabled4","_field$contextualHelp5","SELECT","_jsxs","marginBottom","Picker","label","items","options","isRequired","required","isDisabled","disabled","contextualHelp","defaultSelectedKey","width","onSelectionChange","_onSelectionChange","_callee2","_context2","_x","apply","arguments","item","Item","use_env_var","undefined","Checkbox","name","defaultSelected","onChange","_onChange","_callee3","checked","_context3","_x2","MULTISELECT","CheckboxGroup","Array","isArray","_onChange2","_callee4","selectedValues","_context4","_x3","borderWidth","borderColor","borderRadius","padding","backgroundColor","maxHeight","overflow","map","option","index","concat","_onChange3","_callee5","_context5","_x4","join","Flex","gap","alignItems","Switch","isSelected","marginEnd","_onChange4","_callee6","selected","toggleValue","_context6","_x5","_onChange5","_callee7","_context7","_x6","LABEL","LabeledValue","TEXT","EMAIL","PASSWORD","NUMBER","URL","TEL","SEARCH","TextField","placeholder","_onChange6","_callee8","_context8","_x7","_onChange7","_callee9","_context9","_x8"],"mappings":"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"}
|
|
@@ -31,7 +31,8 @@ var GridBuilder = function GridBuilder(_ref) {
|
|
|
31
31
|
}, _callee);
|
|
32
32
|
})) : _ref$onGridActionPres,
|
|
33
33
|
_ref$onSelectionChang = _ref.onSelectionChange,
|
|
34
|
-
onSelectionChange = _ref$onSelectionChang === void 0 ? function () {} : _ref$onSelectionChang
|
|
34
|
+
onSelectionChange = _ref$onSelectionChang === void 0 ? function () {} : _ref$onSelectionChang,
|
|
35
|
+
maxHeight = _ref.maxHeight;
|
|
35
36
|
var selectionMode = isMassActionsEnabled ? 'multiple' : 'none';
|
|
36
37
|
// Handle empty columns gracefully
|
|
37
38
|
if (columns.length === 0) {
|
|
@@ -47,66 +48,79 @@ var GridBuilder = function GridBuilder(_ref) {
|
|
|
47
48
|
})
|
|
48
49
|
});
|
|
49
50
|
}
|
|
51
|
+
var tableView = jsxRuntime.jsxs(reactSpectrum.TableView, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
|
|
52
|
+
selectionMode: selectionMode,
|
|
53
|
+
onSelectionChange: onSelectionChange,
|
|
54
|
+
minHeight: 'size-6000'
|
|
55
|
+
}, maxHeight && {
|
|
56
|
+
flex: true
|
|
57
|
+
}), {}, {
|
|
58
|
+
renderEmptyState: function renderEmptyState() {
|
|
59
|
+
return jsxRuntime.jsxs(reactSpectrum.IllustratedMessage, {
|
|
60
|
+
children: [jsxRuntime.jsx(reactSpectrum.Heading, {
|
|
61
|
+
children: "No results"
|
|
62
|
+
}), jsxRuntime.jsx(reactSpectrum.Content, {
|
|
63
|
+
children: "No results found"
|
|
64
|
+
})]
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
children: [jsxRuntime.jsx(reactSpectrum.TableHeader, {
|
|
68
|
+
columns: columns,
|
|
69
|
+
children: function children(column) {
|
|
70
|
+
return jsxRuntime.jsx(reactSpectrum.Column, {
|
|
71
|
+
align: column.uid === 'actions' ? 'end' : 'start',
|
|
72
|
+
children: column.name
|
|
73
|
+
}, column.uid);
|
|
74
|
+
}
|
|
75
|
+
}), jsxRuntime.jsx(reactSpectrum.TableBody, {
|
|
76
|
+
items: data,
|
|
77
|
+
children: function children(item) {
|
|
78
|
+
return jsxRuntime.jsx(reactSpectrum.Row, {
|
|
79
|
+
children: function children(columnKey) {
|
|
80
|
+
return columnKey === 'actions' ? jsxRuntime.jsx(reactSpectrum.Cell, {
|
|
81
|
+
children: function () {
|
|
82
|
+
switch (gridAction) {
|
|
83
|
+
case types.GridAction.LINKS:
|
|
84
|
+
return jsxRuntime.jsx(index$2.default, {
|
|
85
|
+
item: item,
|
|
86
|
+
gridActions: gridActions,
|
|
87
|
+
onGridActionPress: onGridActionPress
|
|
88
|
+
});
|
|
89
|
+
case types.GridAction.BUTTONS:
|
|
90
|
+
return jsxRuntime.jsx(index$1.default, {
|
|
91
|
+
item: item,
|
|
92
|
+
gridActions: gridActions,
|
|
93
|
+
onGridActionPress: onGridActionPress
|
|
94
|
+
});
|
|
95
|
+
default:
|
|
96
|
+
return jsxRuntime.jsx(index.default, {
|
|
97
|
+
item: item,
|
|
98
|
+
gridActions: gridActions,
|
|
99
|
+
onGridActionPress: onGridActionPress
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
}()
|
|
103
|
+
}) : jsxRuntime.jsx(reactSpectrum.Cell, {
|
|
104
|
+
children: item[columnKey]
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
})]
|
|
110
|
+
}));
|
|
111
|
+
if (maxHeight) {
|
|
112
|
+
return jsxRuntime.jsx(reactSpectrum.Flex, {
|
|
113
|
+
height: maxHeight,
|
|
114
|
+
width: '100%',
|
|
115
|
+
direction: "column",
|
|
116
|
+
marginTop: 'size-200',
|
|
117
|
+
children: tableView
|
|
118
|
+
});
|
|
119
|
+
}
|
|
50
120
|
return jsxRuntime.jsx(reactSpectrum.View, {
|
|
51
121
|
width: '100%',
|
|
52
122
|
marginTop: 'size-200',
|
|
53
|
-
children:
|
|
54
|
-
selectionMode: selectionMode,
|
|
55
|
-
onSelectionChange: onSelectionChange,
|
|
56
|
-
minHeight: 'size-6000',
|
|
57
|
-
renderEmptyState: function renderEmptyState() {
|
|
58
|
-
return jsxRuntime.jsxs(reactSpectrum.IllustratedMessage, {
|
|
59
|
-
children: [jsxRuntime.jsx(reactSpectrum.Heading, {
|
|
60
|
-
children: "No results"
|
|
61
|
-
}), jsxRuntime.jsx(reactSpectrum.Content, {
|
|
62
|
-
children: "No results found"
|
|
63
|
-
})]
|
|
64
|
-
});
|
|
65
|
-
},
|
|
66
|
-
children: [jsxRuntime.jsx(reactSpectrum.TableHeader, {
|
|
67
|
-
columns: columns,
|
|
68
|
-
children: function children(column) {
|
|
69
|
-
return jsxRuntime.jsx(reactSpectrum.Column, {
|
|
70
|
-
align: column.uid === 'actions' ? 'end' : 'start',
|
|
71
|
-
children: column.name
|
|
72
|
-
}, column.uid);
|
|
73
|
-
}
|
|
74
|
-
}), jsxRuntime.jsx(reactSpectrum.TableBody, {
|
|
75
|
-
items: data,
|
|
76
|
-
children: function children(item) {
|
|
77
|
-
return jsxRuntime.jsx(reactSpectrum.Row, {
|
|
78
|
-
children: function children(columnKey) {
|
|
79
|
-
return columnKey === 'actions' ? jsxRuntime.jsx(reactSpectrum.Cell, {
|
|
80
|
-
children: function () {
|
|
81
|
-
switch (gridAction) {
|
|
82
|
-
case types.GridAction.LINKS:
|
|
83
|
-
return jsxRuntime.jsx(index$2.default, {
|
|
84
|
-
item: item,
|
|
85
|
-
gridActions: gridActions,
|
|
86
|
-
onGridActionPress: onGridActionPress
|
|
87
|
-
});
|
|
88
|
-
case types.GridAction.BUTTONS:
|
|
89
|
-
return jsxRuntime.jsx(index$1.default, {
|
|
90
|
-
item: item,
|
|
91
|
-
gridActions: gridActions,
|
|
92
|
-
onGridActionPress: onGridActionPress
|
|
93
|
-
});
|
|
94
|
-
default:
|
|
95
|
-
return jsxRuntime.jsx(index.default, {
|
|
96
|
-
item: item,
|
|
97
|
-
gridActions: gridActions,
|
|
98
|
-
onGridActionPress: onGridActionPress
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
}()
|
|
102
|
-
}) : jsxRuntime.jsx(reactSpectrum.Cell, {
|
|
103
|
-
children: item[columnKey]
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
})]
|
|
109
|
-
})
|
|
123
|
+
children: tableView
|
|
110
124
|
});
|
|
111
125
|
};
|
|
112
126
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataTable/GridBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\n// import React from 'react'\nimport {\n Cell,\n Column,\n Content,\n Heading,\n IllustratedMessage,\n Row,\n TableBody,\n TableHeader,\n TableView,\n View,\n} from '@adobe/react-spectrum';\n// import NotFound from '@spectrum-icons/illustrations/NotFound';\nimport { GridBuilderProps } from './types';\nimport { GridAction, DataTableRow } from '../types';\nimport LinksRenderer from './LinksRenderer';\nimport ButtonsRenderer from './ButtonsRenderer';\nimport ActionMenuRenderer from './ActionMenuRenderer';\n\nconst GridBuilder = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n isMassActionsEnabled = false,\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = async (): Promise<void> => {},\n onSelectionChange = (): void => {},\n}: GridBuilderProps<T>): JSX.Element => {\n const selectionMode = isMassActionsEnabled ? 'multiple' : 'none';\n\n // Handle empty columns gracefully\n if (columns.length === 0) {\n return (\n <View width={'100%'} marginTop={'size-200'}>\n <IllustratedMessage>\n <Heading>No columns configured</Heading>\n <Content>Please configure columns to display data</Content>\n </IllustratedMessage>\n </View>\n );\n }\n\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../src/components/DataTable/GridBuilder/index.tsx"],"sourcesContent":["/**\n * <license header>\n */\n\n// import React from 'react'\nimport {\n Cell,\n Column,\n Content,\n Flex,\n Heading,\n IllustratedMessage,\n Row,\n TableBody,\n TableHeader,\n TableView,\n View,\n} from '@adobe/react-spectrum';\n// import NotFound from '@spectrum-icons/illustrations/NotFound';\nimport { GridBuilderProps } from './types';\nimport { GridAction, DataTableRow } from '../types';\nimport LinksRenderer from './LinksRenderer';\nimport ButtonsRenderer from './ButtonsRenderer';\nimport ActionMenuRenderer from './ActionMenuRenderer';\n\nconst GridBuilder = <T extends DataTableRow = DataTableRow>({\n columns = [],\n data = [],\n isMassActionsEnabled = false,\n gridAction = GridAction.ACTION_MENU,\n gridActions = [],\n onGridActionPress = async (): Promise<void> => {},\n onSelectionChange = (): void => {},\n maxHeight,\n}: GridBuilderProps<T>): JSX.Element => {\n const selectionMode = isMassActionsEnabled ? 'multiple' : 'none';\n\n // Handle empty columns gracefully\n if (columns.length === 0) {\n return (\n <View width={'100%'} marginTop={'size-200'}>\n <IllustratedMessage>\n <Heading>No columns configured</Heading>\n <Content>Please configure columns to display data</Content>\n </IllustratedMessage>\n </View>\n );\n }\n\n const tableView = (\n <TableView\n selectionMode={selectionMode}\n onSelectionChange={onSelectionChange}\n minHeight={'size-6000'}\n {...(maxHeight && { flex: true })}\n renderEmptyState={(): JSX.Element => {\n return (\n <IllustratedMessage>\n <Heading>No results</Heading>\n <Content>No results found</Content>\n </IllustratedMessage>\n );\n }}\n >\n <TableHeader columns={columns}>\n {(column): JSX.Element => (\n <Column key={column.uid} align={column.uid === 'actions' ? 'end' : 'start'}>\n {column.name}\n </Column>\n )}\n </TableHeader>\n <TableBody items={data}>\n {(item): JSX.Element => (\n <Row>\n {(columnKey): JSX.Element =>\n columnKey === 'actions' ? (\n <Cell>\n {((): JSX.Element => {\n switch (gridAction) {\n case GridAction.LINKS:\n return (\n <LinksRenderer\n item={item}\n gridActions={gridActions}\n onGridActionPress={onGridActionPress}\n />\n );\n case GridAction.BUTTONS:\n return (\n <ButtonsRenderer\n item={item}\n gridActions={gridActions}\n onGridActionPress={onGridActionPress}\n />\n );\n default:\n return (\n <ActionMenuRenderer\n item={item}\n gridActions={gridActions}\n onGridActionPress={onGridActionPress}\n />\n );\n }\n })()}\n </Cell>\n ) : (\n <Cell>{item[columnKey] as any}</Cell>\n )\n }\n </Row>\n )}\n </TableBody>\n </TableView>\n );\n\n if (maxHeight) {\n return (\n <Flex height={maxHeight} width={'100%'} direction=\"column\" marginTop={'size-200'}>\n {tableView}\n </Flex>\n );\n }\n\n return (\n <View width={'100%'} marginTop={'size-200'}>\n {tableView}\n </View>\n );\n};\n\nexport default GridBuilder;\n"],"names":["GridBuilder","_ref","_ref$columns","columns","_ref$data","data","_ref$isMassActionsEna","isMassActionsEnabled","_ref$gridAction","gridAction","GridAction","ACTION_MENU","_ref$gridActions","gridActions","_ref$onGridActionPres","onGridActionPress","_asyncToGenerator","_regenerator","m","_callee","w","_context","n","a","_ref$onSelectionChang","onSelectionChange","maxHeight","selectionMode","length","_jsx","View","width","marginTop","children","_jsxs","IllustratedMessage","Heading","Content","tableView","TableView","_objectSpread","minHeight","flex","renderEmptyState","TableHeader","column","Column","align","uid","name","TableBody","items","item","Row","columnKey","Cell","LINKS","LinksRenderer","BUTTONS","ButtonsRenderer","ActionMenuRenderer","Flex","height","direction"],"mappings":"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"}
|
|
@@ -36,7 +36,8 @@ var DataTable = function DataTable(_ref) {
|
|
|
36
36
|
return Promise.resolve();
|
|
37
37
|
} : _ref$onGridLoad,
|
|
38
38
|
_ref$isProcessing = _ref.isProcessing,
|
|
39
|
-
isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing
|
|
39
|
+
isProcessing = _ref$isProcessing === void 0 ? false : _ref$isProcessing,
|
|
40
|
+
maxHeight = _ref.maxHeight;
|
|
40
41
|
var _useState = React.useState(true),
|
|
41
42
|
_useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
|
|
42
43
|
isLoading = _useState2[0],
|
|
@@ -117,12 +118,15 @@ var DataTable = function DataTable(_ref) {
|
|
|
117
118
|
})
|
|
118
119
|
}), jsxRuntime.jsx(reactSpectrum.View, {
|
|
119
120
|
gridArea: "content",
|
|
120
|
-
children: jsxRuntime.jsx(index$1.default, {
|
|
121
|
+
children: jsxRuntime.jsx(index$1.default, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({
|
|
121
122
|
columns: columns,
|
|
122
123
|
data: data,
|
|
123
124
|
isMassActionsEnabled: massActions.length > 0,
|
|
124
125
|
gridAction: gridAction,
|
|
125
|
-
gridActions: gridActions
|
|
126
|
+
gridActions: gridActions
|
|
127
|
+
}, maxHeight && {
|
|
128
|
+
maxHeight: maxHeight
|
|
129
|
+
}), {}, {
|
|
126
130
|
onGridActionPress: function () {
|
|
127
131
|
var _onGridActionPress2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee3(key, item) {
|
|
128
132
|
return _rollupPluginBabelHelpers.regenerator().w(function (_context3) {
|
|
@@ -151,7 +155,7 @@ var DataTable = function DataTable(_ref) {
|
|
|
151
155
|
}
|
|
152
156
|
setIds(selectedIds);
|
|
153
157
|
}
|
|
154
|
-
})
|
|
158
|
+
}))
|
|
155
159
|
})]
|
|
156
160
|
})
|
|
157
161
|
});
|
|
@@ -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\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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"}
|
|
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 maxHeight,\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 {...(maxHeight && { maxHeight })}\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","maxHeight","_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","_objectSpread","isMassActionsEnabled","_onGridActionPress2","_callee3","item","_context3","_x2","_x3","onSelectionChange","keys","selectedIds","forEach","push","id","_toConsumableArray"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../src/components/DataTable/types.ts"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { ReactElement } from 'react';\n\nexport interface DataTableColumn {\n uid: string;\n name: string;\n sortable?: boolean;\n width?: string | number;\n}\n\nexport interface DataTableRow {\n id: string | number;\n [key: string]: any;\n}\n\nexport interface DataTableProps<T extends DataTableRow = DataTableRow> {\n columns?: DataTableColumn[];\n data?: T[];\n buttons?: ReactElement[];\n massActions?: MassActionProps[];\n onMassActionPress?: (key: string, selections: (string | number)[]) => Promise<void>;\n gridAction?: GridAction;\n gridActions?: GridActionProps<T>[];\n onGridActionPress?: (key: string, item: T) => Promise<void>;\n onGridLoad?: () => Promise<void>;\n isProcessing?: boolean;\n}\n\nexport interface MassActionProps {\n key: string;\n text: string;\n}\n\nexport interface GridActionProps<T extends DataTableRow = DataTableRow> {\n key: string;\n text: string;\n isVisible?: (item: T) => Promise<boolean>;\n}\n\nexport enum GridAction {\n ACTION_MENU = 'action-menu',\n BUTTONS = 'buttons',\n LINKS = 'links',\n}\n"],"names":["GridAction"],"mappings":";;AAAA;;AAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/components/DataTable/types.ts"],"sourcesContent":["/**\n * <license header>\n */\n\nimport { ReactElement } from 'react';\n\nexport interface DataTableColumn {\n uid: string;\n name: string;\n sortable?: boolean;\n width?: string | number;\n}\n\nexport interface DataTableRow {\n id: string | number;\n [key: string]: any;\n}\n\nexport interface DataTableProps<T extends DataTableRow = DataTableRow> {\n columns?: DataTableColumn[];\n data?: T[];\n buttons?: ReactElement[];\n massActions?: MassActionProps[];\n onMassActionPress?: (key: string, selections: (string | number)[]) => Promise<void>;\n gridAction?: GridAction;\n gridActions?: GridActionProps<T>[];\n onGridActionPress?: (key: string, item: T) => Promise<void>;\n onGridLoad?: () => Promise<void>;\n isProcessing?: boolean;\n maxHeight?: string;\n}\n\nexport interface MassActionProps {\n key: string;\n text: string;\n}\n\nexport interface GridActionProps<T extends DataTableRow = DataTableRow> {\n key: string;\n text: string;\n isVisible?: (item: T) => Promise<boolean>;\n}\n\nexport enum GridAction {\n ACTION_MENU = 'action-menu',\n BUTTONS = 'buttons',\n LINKS = 'links',\n}\n"],"names":["GridAction"],"mappings":";;AAAA;;AAEG;AAyCSA;AAAZ,CAAA,UAAYA,UAAU,EAAA;AACpBA,EAAAA,UAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3BA,EAAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnBA,EAAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAJWA,kBAAU,KAAVA,kBAAU,GAAA,EAAA,CAAA,CAAA;;"}
|
|
@@ -7,7 +7,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var reactSpectrum = require('@adobe/react-spectrum');
|
|
9
9
|
|
|
10
|
-
var FileUpload = function
|
|
10
|
+
var FileUpload = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
11
11
|
var name = _ref.name,
|
|
12
12
|
label = _ref.label,
|
|
13
13
|
_ref$isRequired = _ref.isRequired,
|
|
@@ -172,6 +172,15 @@ var FileUpload = function FileUpload(_ref) {
|
|
|
172
172
|
// Call callback
|
|
173
173
|
onSelect === null || onSelect === void 0 || onSelect(emptyFiles);
|
|
174
174
|
}, [onSelect]);
|
|
175
|
+
// Expose reset and getFiles methods via ref
|
|
176
|
+
React.useImperativeHandle(ref, function () {
|
|
177
|
+
return {
|
|
178
|
+
reset: clearFiles,
|
|
179
|
+
getFiles: function getFiles() {
|
|
180
|
+
return selectedFiles;
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
}, [clearFiles, selectedFiles]);
|
|
175
184
|
return jsxRuntime.jsxs(reactSpectrum.View, _rollupPluginBabelHelpers.objectSpread2(_rollupPluginBabelHelpers.objectSpread2({}, name && {
|
|
176
185
|
'data-name': name
|
|
177
186
|
}), {}, {
|
|
@@ -235,7 +244,8 @@ var FileUpload = function FileUpload(_ref) {
|
|
|
235
244
|
})
|
|
236
245
|
})]
|
|
237
246
|
}));
|
|
238
|
-
};
|
|
247
|
+
});
|
|
248
|
+
FileUpload.displayName = 'FileUpload';
|
|
239
249
|
|
|
240
250
|
exports.default = FileUpload;
|
|
241
251
|
//# sourceMappingURL=index.js.map
|