@genesislcap/foundation-forms 14.397.2 → 14.398.0

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 (77) hide show
  1. package/dist/custom-elements.json +389 -4
  2. package/dist/dts/form.d.ts +100 -1
  3. package/dist/dts/form.d.ts.map +1 -1
  4. package/dist/dts/form.styles.d.ts.map +1 -1
  5. package/dist/dts/form.template.d.ts.map +1 -1
  6. package/dist/dts/jsonforms/json-forms.d.ts +13 -0
  7. package/dist/dts/jsonforms/json-forms.d.ts.map +1 -1
  8. package/dist/dts/jsonforms/renderers/ArrayListWrapperRenderer.d.ts +5 -0
  9. package/dist/dts/jsonforms/renderers/ArrayListWrapperRenderer.d.ts.map +1 -1
  10. package/dist/dts/jsonforms/renderers/BooleanControlRenderer.d.ts.map +1 -1
  11. package/dist/dts/jsonforms/renderers/ConnectedMultiselectControlRenderer.d.ts.map +1 -1
  12. package/dist/dts/jsonforms/renderers/ControlWrapperRenderer.d.ts.map +1 -1
  13. package/dist/dts/jsonforms/renderers/EnumControlRenderer.d.ts.map +1 -1
  14. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts +3 -0
  15. package/dist/dts/jsonforms/renderers/LayoutFormGridRenderer.d.ts.map +1 -0
  16. package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts +1 -0
  17. package/dist/dts/jsonforms/renderers/RenderersRanks.d.ts.map +1 -1
  18. package/dist/dts/jsonforms/testers/isOneOfOptionMultiselect.d.ts.map +1 -1
  19. package/dist/dts/types.d.ts +89 -2
  20. package/dist/dts/types.d.ts.map +1 -1
  21. package/dist/dts/utils/csv-parser.d.ts +85 -0
  22. package/dist/dts/utils/csv-parser.d.ts.map +1 -0
  23. package/dist/dts/utils/index.d.ts +1 -0
  24. package/dist/dts/utils/index.d.ts.map +1 -1
  25. package/dist/dts/utils/schema-utils.d.ts +46 -0
  26. package/dist/dts/utils/schema-utils.d.ts.map +1 -0
  27. package/dist/dts/utils/validation.d.ts +2 -0
  28. package/dist/dts/utils/validation.d.ts.map +1 -1
  29. package/dist/esm/form.js +423 -5
  30. package/dist/esm/form.styles.js +41 -1
  31. package/dist/esm/form.template.js +33 -1
  32. package/dist/esm/jsonforms/json-forms.js +30 -0
  33. package/dist/esm/jsonforms/renderers/ArrayListWrapperRenderer.js +223 -22
  34. package/dist/esm/jsonforms/renderers/BooleanControlRenderer.js +1 -2
  35. package/dist/esm/jsonforms/renderers/ConnectedMultiselectControlRenderer.js +13 -2
  36. package/dist/esm/jsonforms/renderers/ControlWrapperRenderer.js +25 -4
  37. package/dist/esm/jsonforms/renderers/EnumControlRenderer.js +14 -5
  38. package/dist/esm/jsonforms/renderers/LayoutFormGridRenderer.js +39 -0
  39. package/dist/esm/jsonforms/renderers/RenderersRanks.js +1 -0
  40. package/dist/esm/jsonforms/testers/isOneOfOptionMultiselect.js +1 -1
  41. package/dist/esm/utils/csv-parser.js +486 -0
  42. package/dist/esm/utils/index.js +1 -0
  43. package/dist/esm/utils/schema-utils.js +120 -0
  44. package/dist/esm/utils/validation.js +2 -0
  45. package/dist/foundation-forms.api.json +1028 -34
  46. package/dist/foundation-forms.d.ts +285 -2
  47. package/docs/api/foundation-forms.arrayrendereroptions.md +2 -2
  48. package/docs/api/foundation-forms.bulkrowstatus.md +22 -0
  49. package/docs/api/foundation-forms.bulkrowsubmitstatus.md +13 -0
  50. package/docs/api/foundation-forms.bulksubmitfaileditem.md +20 -0
  51. package/docs/api/foundation-forms.bulksubmitresult.md +18 -0
  52. package/docs/api/foundation-forms.bulksubmitsuccessitem.md +17 -0
  53. package/docs/api/foundation-forms.childuischemaresolver.md +15 -0
  54. package/docs/api/foundation-forms.csvmappingresult.mappedrows.md +13 -0
  55. package/docs/api/foundation-forms.csvmappingresult.md +77 -0
  56. package/docs/api/foundation-forms.csvmappingresult.unmappedcolumns.md +13 -0
  57. package/docs/api/foundation-forms.csvparseresult.errors.md +13 -0
  58. package/docs/api/foundation-forms.csvparseresult.headers.md +13 -0
  59. package/docs/api/foundation-forms.csvparseresult.md +96 -0
  60. package/docs/api/foundation-forms.csvparseresult.rows.md +13 -0
  61. package/docs/api/foundation-forms.downloadcsvtemplate.md +74 -0
  62. package/docs/api/foundation-forms.form.bulkinsert.md +13 -0
  63. package/docs/api/foundation-forms.form.bulkinsertmaxitems.md +13 -0
  64. package/docs/api/foundation-forms.form.bulkinsertminitems.md +13 -0
  65. package/docs/api/foundation-forms.form.clearrowsubmitstatuses.md +17 -0
  66. package/docs/api/foundation-forms.form.downloadcsvtemplate.md +17 -0
  67. package/docs/api/foundation-forms.form.handlecsvfileselected.md +54 -0
  68. package/docs/api/foundation-forms.form.md +132 -0
  69. package/docs/api/foundation-forms.form.rowsubmitstatuses.md +13 -0
  70. package/docs/api/foundation-forms.form.submitsinglerow.md +56 -0
  71. package/docs/api/foundation-forms.generatecsvtemplate.md +104 -0
  72. package/docs/api/foundation-forms.mapcsvtoschema.md +88 -0
  73. package/docs/api/foundation-forms.md +147 -0
  74. package/docs/api/foundation-forms.parsecsv.md +56 -0
  75. package/docs/api/foundation-forms.uischemaelementtype.md +1 -1
  76. package/docs/api-report.md.api.md +87 -4
  77. package/package.json +19 -17
@@ -31,9 +31,11 @@ export declare type ArrayRendererOptions = {
31
31
  /**
32
32
  * ChildUiSchema allows you to pass a UiSchema for a particular element,
33
33
  * which can then be multiplied many times by the renderer.
34
+ * For dynamic per-row schema (e.g. dropdown criteria based on another field in that row),
35
+ * pass a function that receives (index, rowData, formData) and returns the UiSchema.
34
36
  * @public
35
37
  */
36
- childUiSchema?: UiSchema;
38
+ childUiSchema?: UiSchema | ChildUiSchemaResolver;
37
39
  /**
38
40
  * By default the label is 'Add another'
39
41
  * To override it, set this property with your desired add message.
@@ -108,6 +110,90 @@ export declare type ArrayRendererOptions = {
108
110
  canDelete?: (item: any) => boolean;
109
111
  };
110
112
 
113
+ /**
114
+ * Tracks the submission status and result for a single row in bulk insert mode.
115
+ * @public
116
+ */
117
+ export declare type BulkRowStatus = {
118
+ /**
119
+ * The current submission status of the row.
120
+ */
121
+ status: BulkRowSubmitStatus;
122
+ /**
123
+ * Error messages if the row failed to submit.
124
+ */
125
+ errors?: Array<{
126
+ CODE: string;
127
+ TEXT: string;
128
+ }>;
129
+ /**
130
+ * Server response if the row was successfully submitted.
131
+ */
132
+ response?: any;
133
+ };
134
+
135
+ /**
136
+ * Possible submission status values for a row in bulk insert mode.
137
+ * @public
138
+ */
139
+ export declare type BulkRowSubmitStatus = 'pending' | 'submitting' | 'success' | 'failed';
140
+
141
+ /**
142
+ * Represents a failed bulk insert item result.
143
+ * @public
144
+ */
145
+ export declare type BulkSubmitFailedItem = {
146
+ /**
147
+ * The original item data that failed to submit.
148
+ */
149
+ item: any;
150
+ /**
151
+ * The index of the item in the original array.
152
+ */
153
+ index: number;
154
+ /**
155
+ * The errors returned from the server or client validation.
156
+ */
157
+ errors: Array<{
158
+ CODE: string;
159
+ TEXT: string;
160
+ }>;
161
+ };
162
+
163
+ /**
164
+ * Result of a bulk insert submission containing successful and failed items.
165
+ * @public
166
+ */
167
+ export declare type BulkSubmitResult = {
168
+ /**
169
+ * Array of successfully submitted items with their responses.
170
+ */
171
+ successful: BulkSubmitSuccessItem[];
172
+ /**
173
+ * Array of items that failed to submit with their errors.
174
+ */
175
+ failed: BulkSubmitFailedItem[];
176
+ };
177
+
178
+ /**
179
+ * Represents a successful bulk insert item result.
180
+ * @public
181
+ */
182
+ export declare type BulkSubmitSuccessItem = {
183
+ /**
184
+ * The original item data that was submitted.
185
+ */
186
+ item: any;
187
+ /**
188
+ * The index of the item in the original array.
189
+ */
190
+ index: number;
191
+ /**
192
+ * The server response for this item.
193
+ */
194
+ response: any;
195
+ };
196
+
111
197
  /**
112
198
  * Configuration options available for categorization renderer.
113
199
  * @public
@@ -120,6 +206,13 @@ export declare type CategorizationRendererOptions = {
120
206
  childElements?: UiSchema[];
121
207
  };
122
208
 
209
+ /**
210
+ * Resolver for dynamic per-row UI schema in array/bulk-insert mode.
211
+ * Receives the row index, that row's data, and the full form data.
212
+ * @public
213
+ */
214
+ export declare type ChildUiSchemaResolver = (index: number, rowData: any, formData: any) => UiSchema;
215
+
123
216
  /** @internal */
124
217
  export declare const comboboxRendererStyles: (prefix?: string) => string;
125
218
 
@@ -192,6 +285,40 @@ export declare type ConnectedRenderersOptions = {
192
285
  */
193
286
  export declare const createExpressions: (payload: any) => Expressions;
194
287
 
288
+ /**
289
+ * Result of mapping CSV data to schema fields.
290
+ * @public
291
+ */
292
+ export declare interface CsvMappingResult {
293
+ /**
294
+ * The mapped rows with values converted to appropriate types.
295
+ */
296
+ mappedRows: Record<string, any>[];
297
+ /**
298
+ * CSV columns that could not be matched to schema fields.
299
+ */
300
+ unmappedColumns: string[];
301
+ }
302
+
303
+ /**
304
+ * Result of parsing a CSV file.
305
+ * @public
306
+ */
307
+ export declare interface CsvParseResult {
308
+ /**
309
+ * The header names from the first row of the CSV.
310
+ */
311
+ headers: string[];
312
+ /**
313
+ * The parsed data rows as key-value objects.
314
+ */
315
+ rows: Record<string, string>[];
316
+ /**
317
+ * Any errors encountered during parsing.
318
+ */
319
+ errors: string[];
320
+ }
321
+
195
322
  declare class DispatchRenderer extends FASTElement {
196
323
  jsonforms: any;
197
324
  jsonformsChanged(): void;
@@ -211,6 +338,15 @@ declare class DispatchRenderer extends FASTElement {
211
338
  disconnectedCallback(): void;
212
339
  }
213
340
 
341
+ /**
342
+ * Triggers a download of the CSV template file in the browser.
343
+ * @param csvContent - The CSV content to download
344
+ * @param fileName - The name for the downloaded file (default: 'template.csv')
345
+ * @remarks Browser-only; uses document and URL.createObjectURL. Will throw in Node.js.
346
+ * @public
347
+ */
348
+ export declare function downloadCsvTemplate(csvContent: string, fileName?: string): void;
349
+
214
350
  declare type Expressions = {
215
351
  options: Expression[];
216
352
  arrayOptions: Expression[];
@@ -218,6 +354,18 @@ declare type Expressions = {
218
354
  dateOptions: Expression[];
219
355
  };
220
356
 
357
+ /**
358
+ * Extracts field names from a UI schema in the order they appear.
359
+ * @param uiSchema - The UI schema to extract fields from
360
+ * @returns Array of field info with name, label, and hidden status
361
+ * @internal
362
+ */
363
+ export declare function extractFieldsFromUiSchema(uiSchema: UiSchema): Array<{
364
+ fieldName: string;
365
+ label?: string;
366
+ isHidden: boolean;
367
+ }>;
368
+
221
369
  /**
222
370
  * Foundation filters component for automatically generated filters based on json schema
223
371
  * obtained from the api, supplied initial data or supplied JSON schema.
@@ -731,6 +879,16 @@ export declare class Form extends Form_base {
731
879
  */
732
880
  resourceName: string;
733
881
  private resourceNameChanged;
882
+ /**
883
+ * Initializes the data with default empty items for bulk insert mode.
884
+ * @internal
885
+ */
886
+ private initializeBulkInsertData;
887
+ /**
888
+ * Transforms the JSON schema to support bulk insert mode by wrapping it in an array.
889
+ * @internal
890
+ */
891
+ private transformSchemaForBulkInsert;
734
892
  /**
735
893
  * Optional confirmation message to display before form submission.
736
894
  * If set, a confirmation dialog will be shown when the user clicks submit.
@@ -753,6 +911,11 @@ export declare class Form extends Form_base {
753
911
  * @internal
754
912
  */
755
913
  approvalModal: any;
914
+ /**
915
+ * Reference to the CSV file input element for bulk import.
916
+ * @internal
917
+ */
918
+ csvFileInput: HTMLInputElement;
756
919
  /**
757
920
  * Stores the approval message entered by the user.
758
921
  * @internal
@@ -861,10 +1024,75 @@ export declare class Form extends Form_base {
861
1024
  * @public
862
1025
  */
863
1026
  hideSubmit: boolean;
1027
+ /**
1028
+ * When enabled, transforms the form into bulk insert mode where multiple records can be added.
1029
+ * The JSON schema will be wrapped as an array, and each item will be submitted separately.
1030
+ * @public
1031
+ */
1032
+ bulkInsert: boolean;
1033
+ /**
1034
+ * Minimum number of items required in bulk insert mode.
1035
+ * @public
1036
+ */
1037
+ bulkInsertMinItems: number;
1038
+ /**
1039
+ * Maximum number of items allowed in bulk insert mode. If not set, no maximum is enforced.
1040
+ * @public
1041
+ */
1042
+ bulkInsertMaxItems: number | undefined;
1043
+ /**
1044
+ * Stores the original schema before bulk insert transformation.
1045
+ * @internal
1046
+ */
1047
+ private originalDetailsSchema;
1048
+ /**
1049
+ * User-provided UI schema for bulk insert mode, stored separately.
1050
+ * @internal
1051
+ */
1052
+ private userProvidedUiSchema;
1053
+ /**
1054
+ * Tracks the submission status for each row in bulk insert mode.
1055
+ * Key is the row index, value is the status object.
1056
+ * @public
1057
+ */
1058
+ rowSubmitStatuses: Map<number, BulkRowStatus>;
864
1059
  /**
865
1060
  * @internal
866
1061
  */
867
1062
  _submit(): Promise<void>;
1063
+ /**
1064
+ * Handles bulk insert submission by iterating through items and submitting each separately.
1065
+ * Updates rowSubmitStatuses to provide row-level feedback.
1066
+ * @internal
1067
+ */
1068
+ private _submitBulk;
1069
+ /**
1070
+ * Updates the submit status for a specific row and triggers reactivity.
1071
+ * @param index - The row index
1072
+ * @param status - The new status object
1073
+ * @internal
1074
+ */
1075
+ private updateRowStatus;
1076
+ /**
1077
+ * Clears all row submit statuses, typically called when resetting the form.
1078
+ * @public
1079
+ */
1080
+ clearRowSubmitStatuses(): void;
1081
+ /**
1082
+ * Submits a single row in bulk insert mode.
1083
+ * @param index - The index of the row to submit
1084
+ * @returns Promise that resolves when submission is complete
1085
+ * @public
1086
+ */
1087
+ submitSingleRow(index: number): Promise<void>;
1088
+ /**
1089
+ * Filters item data to only include fields defined in the UI schema.
1090
+ * This ensures we don't submit default values for fields not shown in the UI.
1091
+ * @param item - The item data to filter
1092
+ * @returns Filtered item data containing only UI schema fields
1093
+ * @internal
1094
+ */
1095
+ private filterDataByUiSchema;
868
1096
  /**
869
1097
  * Builds the commit payload for the form submission.
870
1098
  * @internal
@@ -911,6 +1139,25 @@ export declare class Form extends Form_base {
911
1139
  * @internal
912
1140
  */
913
1141
  submitWithApproval(): Promise<void>;
1142
+ /**
1143
+ * Handles CSV file selection for bulk import.
1144
+ * Parses the CSV content and appends it to existing form items.
1145
+ * @param event - The file input change event
1146
+ * @public
1147
+ */
1148
+ handleCsvFileSelected(event: Event): Promise<void>;
1149
+ /**
1150
+ * Clears the CSV file input to allow re-selection of the same file.
1151
+ * @internal
1152
+ */
1153
+ private clearCsvFileInput;
1154
+ /**
1155
+ * Downloads a CSV template file with headers and sample data based on the schema.
1156
+ * If a UI schema is provided, it will be used to determine which fields to include
1157
+ * and in what order. Hidden fields will be excluded from the template.
1158
+ * @public
1159
+ */
1160
+ downloadCsvTemplate(): void;
914
1161
  }
915
1162
 
916
1163
  declare const Form_base: (new (...args: any[]) => {
@@ -1286,6 +1533,19 @@ export declare const foundationFormStyles: ElementStyles;
1286
1533
  /** @internal */
1287
1534
  export declare const foundationFormTemplate: ViewTemplate<Form, any>;
1288
1535
 
1536
+ /**
1537
+ * Generates a CSV template string with headers and sample data based on JSON schema.
1538
+ * If a UI schema is provided, it will be used to determine which fields to include
1539
+ * and in what order. Hidden fields in the UI schema will be excluded.
1540
+ * @param schema - The JSON schema defining the fields
1541
+ * @param uiSchema - Optional UI schema to determine field order and visibility
1542
+ * @param includeOptionalFields - Whether to include optional fields when no UI schema (default: true)
1543
+ * @param includeBom - Whether to prepend UTF-8 BOM for Excel compatibility (default: true)
1544
+ * @returns The CSV template string with headers and one sample row
1545
+ * @public
1546
+ */
1547
+ export declare function generateCsvTemplate(schema: JSONSchema7 | undefined, uiSchema?: UiSchema, includeOptionalFields?: boolean, includeBom?: boolean): string;
1548
+
1289
1549
  /**
1290
1550
  * @internal
1291
1551
  */
@@ -1313,6 +1573,8 @@ export declare enum GenesisType {
1313
1573
  /**
1314
1574
  * Computes a human-friendly anyOf error message for a given control path.
1315
1575
  * Prefers UI schema custom message, then JSON schema errorMessage.anyOf, then a constructed fallback.
1576
+ *
1577
+ * @public
1316
1578
  */
1317
1579
  export declare const getAnyOfErrorMessage: (errors: Array<any> | undefined, schema: any, controlPath: string | undefined, uiCustomMsg?: string) => string;
1318
1580
 
@@ -1348,6 +1610,18 @@ export { Layout }
1348
1610
  /** @internal */
1349
1611
  export declare const logger: Logger;
1350
1612
 
1613
+ /**
1614
+ * Maps CSV rows to schema fields with case-insensitive matching.
1615
+ * When uiSchema is provided, CSV headers can also match UI schema labels.
1616
+ * Converts values to appropriate types based on schema definition.
1617
+ * @param csvRows - The parsed CSV rows
1618
+ * @param schema - The JSON schema defining the fields
1619
+ * @param uiSchema - Optional UI schema to map labels to field names on import
1620
+ * @returns Mapped rows and list of unmapped columns
1621
+ * @public
1622
+ */
1623
+ export declare function mapCsvToSchema(csvRows: Record<string, string>[], schema: JSONSchema7 | undefined, uiSchema?: UiSchema): CsvMappingResult;
1624
+
1351
1625
  /**
1352
1626
  * Ensures the value of the current field (the one the validator is on) matches the one of the target field.
1353
1627
  * @param target - any other field
@@ -1386,6 +1660,15 @@ export declare type NumberRendererOptions = {
1386
1660
  autocomplete?: string;
1387
1661
  };
1388
1662
 
1663
+ /**
1664
+ * Parses a CSV string into headers and rows using PapaParse.
1665
+ * Handles quoted fields, escaped quotes, empty values, and mixed line endings.
1666
+ * @param content - The CSV content as a string
1667
+ * @returns The parsed result with headers, rows, and any errors
1668
+ * @public
1669
+ */
1670
+ export declare function parseCsv(content: string): CsvParseResult;
1671
+
1389
1672
  /**
1390
1673
  * Defines a renderer configuration in JSON forms.
1391
1674
  * Allows to specify the renderer component,
@@ -1575,7 +1858,7 @@ export declare type UiSchemaElementOptions = ConnectedRenderersOptions | NumberR
1575
1858
  * The layouts and control types, which allow you to customize the arrangement of forms.
1576
1859
  * @public
1577
1860
  */
1578
- export declare type UiSchemaElementType = 'Control' | 'VerticalLayout' | 'LayoutVertical2Columns' | 'Categorization' | 'Group' | 'Stepper' | 'HorizontalLayout';
1861
+ export declare type UiSchemaElementType = 'Control' | 'VerticalLayout' | 'LayoutVertical2Columns' | 'FormGridLayout' | 'Categorization' | 'Group' | 'Stepper' | 'HorizontalLayout';
1579
1862
 
1580
1863
  /**
1581
1864
  * All configuration options that are available.
@@ -10,12 +10,12 @@ Configuration options available for array renderer.
10
10
 
11
11
  ```typescript
12
12
  export type ArrayRendererOptions = {
13
- childUiSchema?: UiSchema;
13
+ childUiSchema?: UiSchema | ChildUiSchemaResolver;
14
14
  addLabel?: string;
15
15
  deleteLabel?: string;
16
16
  border?: boolean;
17
17
  canDelete?: (item: any) => boolean;
18
18
  };
19
19
  ```
20
- **References:** [UiSchema](./foundation-forms.uischema.md)
20
+ **References:** [UiSchema](./foundation-forms.uischema.md)<!-- -->, [ChildUiSchemaResolver](./foundation-forms.childuischemaresolver.md)
21
21
 
@@ -0,0 +1,22 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [BulkRowStatus](./foundation-forms.bulkrowstatus.md)
4
+
5
+ ## BulkRowStatus type
6
+
7
+ Tracks the submission status and result for a single row in bulk insert mode.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export type BulkRowStatus = {
13
+ status: BulkRowSubmitStatus;
14
+ errors?: Array<{
15
+ CODE: string;
16
+ TEXT: string;
17
+ }>;
18
+ response?: any;
19
+ };
20
+ ```
21
+ **References:** [BulkRowSubmitStatus](./foundation-forms.bulkrowsubmitstatus.md)
22
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [BulkRowSubmitStatus](./foundation-forms.bulkrowsubmitstatus.md)
4
+
5
+ ## BulkRowSubmitStatus type
6
+
7
+ Possible submission status values for a row in bulk insert mode.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export type BulkRowSubmitStatus = 'pending' | 'submitting' | 'success' | 'failed';
13
+ ```
@@ -0,0 +1,20 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [BulkSubmitFailedItem](./foundation-forms.bulksubmitfaileditem.md)
4
+
5
+ ## BulkSubmitFailedItem type
6
+
7
+ Represents a failed bulk insert item result.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export type BulkSubmitFailedItem = {
13
+ item: any;
14
+ index: number;
15
+ errors: Array<{
16
+ CODE: string;
17
+ TEXT: string;
18
+ }>;
19
+ };
20
+ ```
@@ -0,0 +1,18 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [BulkSubmitResult](./foundation-forms.bulksubmitresult.md)
4
+
5
+ ## BulkSubmitResult type
6
+
7
+ Result of a bulk insert submission containing successful and failed items.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export type BulkSubmitResult = {
13
+ successful: BulkSubmitSuccessItem[];
14
+ failed: BulkSubmitFailedItem[];
15
+ };
16
+ ```
17
+ **References:** [BulkSubmitSuccessItem](./foundation-forms.bulksubmitsuccessitem.md)<!-- -->, [BulkSubmitFailedItem](./foundation-forms.bulksubmitfaileditem.md)
18
+
@@ -0,0 +1,17 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [BulkSubmitSuccessItem](./foundation-forms.bulksubmitsuccessitem.md)
4
+
5
+ ## BulkSubmitSuccessItem type
6
+
7
+ Represents a successful bulk insert item result.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export type BulkSubmitSuccessItem = {
13
+ item: any;
14
+ index: number;
15
+ response: any;
16
+ };
17
+ ```
@@ -0,0 +1,15 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [ChildUiSchemaResolver](./foundation-forms.childuischemaresolver.md)
4
+
5
+ ## ChildUiSchemaResolver type
6
+
7
+ Resolver for dynamic per-row UI schema in array/bulk-insert mode. Receives the row index, that row's data, and the full form data.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export type ChildUiSchemaResolver = (index: number, rowData: any, formData: any) => UiSchema;
13
+ ```
14
+ **References:** [UiSchema](./foundation-forms.uischema.md)
15
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [CsvMappingResult](./foundation-forms.csvmappingresult.md) &gt; [mappedRows](./foundation-forms.csvmappingresult.mappedrows.md)
4
+
5
+ ## CsvMappingResult.mappedRows property
6
+
7
+ The mapped rows with values converted to appropriate types.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ mappedRows: Record<string, any>[];
13
+ ```
@@ -0,0 +1,77 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [CsvMappingResult](./foundation-forms.csvmappingresult.md)
4
+
5
+ ## CsvMappingResult interface
6
+
7
+ Result of mapping CSV data to schema fields.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ export interface CsvMappingResult
13
+ ```
14
+
15
+ ## Properties
16
+
17
+ <table><thead><tr><th>
18
+
19
+ Property
20
+
21
+
22
+ </th><th>
23
+
24
+ Modifiers
25
+
26
+
27
+ </th><th>
28
+
29
+ Type
30
+
31
+
32
+ </th><th>
33
+
34
+ Description
35
+
36
+
37
+ </th></tr></thead>
38
+ <tbody><tr><td>
39
+
40
+ [mappedRows](./foundation-forms.csvmappingresult.mappedrows.md)
41
+
42
+
43
+ </td><td>
44
+
45
+
46
+ </td><td>
47
+
48
+ Record&lt;string, any&gt;\[\]
49
+
50
+
51
+ </td><td>
52
+
53
+ The mapped rows with values converted to appropriate types.
54
+
55
+
56
+ </td></tr>
57
+ <tr><td>
58
+
59
+ [unmappedColumns](./foundation-forms.csvmappingresult.unmappedcolumns.md)
60
+
61
+
62
+ </td><td>
63
+
64
+
65
+ </td><td>
66
+
67
+ string\[\]
68
+
69
+
70
+ </td><td>
71
+
72
+ CSV columns that could not be matched to schema fields.
73
+
74
+
75
+ </td></tr>
76
+ </tbody></table>
77
+
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [CsvMappingResult](./foundation-forms.csvmappingresult.md) &gt; [unmappedColumns](./foundation-forms.csvmappingresult.unmappedcolumns.md)
4
+
5
+ ## CsvMappingResult.unmappedColumns property
6
+
7
+ CSV columns that could not be matched to schema fields.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ unmappedColumns: string[];
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [CsvParseResult](./foundation-forms.csvparseresult.md) &gt; [errors](./foundation-forms.csvparseresult.errors.md)
4
+
5
+ ## CsvParseResult.errors property
6
+
7
+ Any errors encountered during parsing.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ errors: string[];
13
+ ```
@@ -0,0 +1,13 @@
1
+ <!-- Do not edit this file. It is automatically generated by API Documenter. -->
2
+
3
+ [Home](./index.md) &gt; [@genesislcap/foundation-forms](./foundation-forms.md) &gt; [CsvParseResult](./foundation-forms.csvparseresult.md) &gt; [headers](./foundation-forms.csvparseresult.headers.md)
4
+
5
+ ## CsvParseResult.headers property
6
+
7
+ The header names from the first row of the CSV.
8
+
9
+ **Signature:**
10
+
11
+ ```typescript
12
+ headers: string[];
13
+ ```