@ingestro/importer-react 4.9.8 → 4.11.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.
package/index.d.ts CHANGED
@@ -299,6 +299,17 @@ export type IHeaderStepHandler = (params: {
299
299
  stay: IStayFn;
300
300
  }) => Promise<void> | void;
301
301
 
302
+ export type IPreProcessingStepUpdateDataFn = IHeaderStepUpdateDataFn;
303
+
304
+ export type IPreProcessingStepHandler = (params: {
305
+ data: ISheetData[];
306
+ updateData: IPreProcessingStepUpdateDataFn;
307
+ alert: IAlertFn;
308
+ block: IBlockFn;
309
+ proceed: IProceedFn;
310
+ stay: IStayFn;
311
+ }) => Promise<void> | void;
312
+
302
313
  export type IReviewData = Record<
303
314
  string,
304
315
  {
@@ -320,6 +331,7 @@ export type IReviewStepHandler = (params: {
320
331
 
321
332
  export type IStepHandler = {
322
333
  uploadStep?: IUploadStepHandler;
334
+ preProcessingStep?: IPreProcessingStepHandler;
323
335
  mappingStep?: IMappingStepHandler;
324
336
  headerStep?: IHeaderStepHandler;
325
337
  reviewStep?: IReviewStepHandler;
@@ -574,6 +586,8 @@ export type ColumnAPI = {
574
586
 
575
587
  export type I18nOverrides =
576
588
  | {
589
+ ar?: Record<string, string>;
590
+ he?: Record<string, string>;
577
591
  en?: Record<string, string>;
578
592
  de?: Record<string, string>;
579
593
  es?: Record<string, string>;
@@ -597,6 +611,10 @@ export type I18nOverrides =
597
611
  type IAdditionalInfo = {
598
612
  uploadStep?: boolean;
599
613
  sheetSelectionStep?: boolean;
614
+ preProcessingStep?: boolean;
615
+ preProcessingModal?: boolean;
616
+ xmlModal?: boolean;
617
+ pdfModal?: boolean;
600
618
  headerStep?: boolean;
601
619
  mappingStep?: boolean;
602
620
  reviewStep?: boolean;
@@ -617,6 +635,7 @@ export type ISkipConfigurationMapping = {
617
635
  automaticMapping?: boolean;
618
636
  applyColumnMapping?: IApplyMappingMode;
619
637
  applyOptionMapping?: IApplyMappingMode;
638
+ requireConfirmation?: boolean;
620
639
  };
621
640
 
622
641
  export type ISkipConfiguration = {
@@ -691,6 +710,8 @@ export type SettingsAPI = {
691
710
  completeImportLogging?: boolean;
692
711
  submitModalConfiguration?: ISubmitModalConfiguration;
693
712
  prompts?: boolean;
713
+ /** Off by default. Turns on the review error/warning/info cell indicator. */
714
+ showReviewCellState?: boolean;
694
715
  successModalConfiguration?: ISuccessModalConfiguration;
695
716
  workersBaseUrl?: string;
696
717
  mappingViewMode?: 'sourceColumns' | 'targetColumns';
@@ -698,6 +719,7 @@ export type SettingsAPI = {
698
719
  transpose?: boolean;
699
720
  mergeHeaders?: boolean;
700
721
  metadataSelection?: boolean;
722
+ preProcessing?: boolean;
701
723
  collapseMatchedColumns?: boolean;
702
724
  skipConfiguration?: ISkipConfiguration;
703
725
  disableColumnRemapping?: boolean;
@@ -787,6 +809,18 @@ export type EntryChangeRow = {
787
809
  info: RowInfo;
788
810
  };
789
811
 
812
+ export type DatasetRow = {
813
+ rowIndex: number;
814
+ data: Row;
815
+ info: RowInfo;
816
+ };
817
+
818
+ export type EntryChangeDataset = {
819
+ readonly rowCount: number;
820
+ getRow: (index: number) => DatasetRow | undefined;
821
+ forEachRow: (cb: (row: DatasetRow, index: number) => void) => void;
822
+ };
823
+
790
824
  export type RowResult = Record<string, HookedRecordResult | FieldValue>;
791
825
 
792
826
  export type EntryChangeResult = {
@@ -803,7 +837,8 @@ export type ResultOnEntryChange =
803
837
 
804
838
  export type OnEntryChange = (
805
839
  rows: EntryChangeRow[],
806
- logs: OnEntryChangeLogs
840
+ logs: OnEntryChangeLogs,
841
+ dataset: EntryChangeDataset
807
842
  ) => ResultOnEntryChange;
808
843
 
809
844
  export type HookedRecordRowResult = [HookedRecordResult, number];
@@ -891,6 +926,7 @@ export type AIpromptThemeAPI = {
891
926
  root?: CSSInterpolation;
892
927
  input?: {
893
928
  root?: CSSInterpolation;
929
+ placeholderColor?: string;
894
930
  variables?: {
895
931
  default?: CSSInterpolation;
896
932
  column?: CSSInterpolation;
@@ -923,6 +959,7 @@ export type AIpromptThemeAPI = {
923
959
  root?: CSSInterpolation;
924
960
  input?: {
925
961
  root?: CSSInterpolation;
962
+ placeholderColor?: string;
926
963
  variables?: {
927
964
  default?: CSSInterpolation;
928
965
  column?: CSSInterpolation;
@@ -973,6 +1010,7 @@ export type ThemeAPI = {
973
1010
  };
974
1011
  loader?: LoaderThemeAPI;
975
1012
  headerSelect?: HeaderMatchAPI;
1013
+ preProcessing?: PreProcessingThemeAPI;
976
1014
  dropzone?: DropzoneThemeAPI;
977
1015
  progressBar?: ProgressBarThemeAPI;
978
1016
  joinSheet?: JoinSheetThemeAPI;
@@ -1089,7 +1127,7 @@ type HeaderMatchScrollbarAPI = {
1089
1127
  backgroundColor?: string;
1090
1128
  };
1091
1129
 
1092
- type HeaderMatchSurfaceAPI = {
1130
+ export type HeaderMatchSurfaceAPI = {
1093
1131
  root?: CSSInterpolation;
1094
1132
  backgroundColor?: string;
1095
1133
  borderColor?: string;
@@ -1124,7 +1162,9 @@ type HeaderMatchSheetTabAPI = {
1124
1162
  type HeaderMatchButtonThemeAPI = CSSInterpolation;
1125
1163
 
1126
1164
  type HeaderMatchDeleteButtonThemeAPI = CSSInterpolation & {
1127
- // trash icon color (read as an inline style on the SVG, not via CSS spread on the button)
1165
+ // trash icon stroke color (Lucide `color` prop) — not spread onto the button wrapper
1166
+ color?: string;
1167
+ // icon sizing only (width, height, strokeWidth); use top-level `color` for stroke
1128
1168
  icon?: CSSInterpolation;
1129
1169
  };
1130
1170
 
@@ -1139,6 +1179,55 @@ type HeaderMatchQuickFillButtonThemeAPI = CSSInterpolation & {
1139
1179
  icon?: CSSInterpolation;
1140
1180
  };
1141
1181
 
1182
+ export type MetadataSelectionThemeAPI = {
1183
+ root?: CSSInterpolation;
1184
+ iconButton?: CSSInterpolation;
1185
+ iconColor?: string;
1186
+ valuePreview?: {
1187
+ root?: CSSInterpolation;
1188
+ label?: CSSInterpolation;
1189
+ value?: CSSInterpolation;
1190
+ };
1191
+ };
1192
+
1193
+ export type FormPopoverInputThemeAPI = {
1194
+ root?: CSSInterpolation;
1195
+ color?: string;
1196
+ backgroundColor?: string;
1197
+ borderColor?: string;
1198
+ borderRadius?: string;
1199
+ fontSize?: string;
1200
+ placeholderColor?: string;
1201
+ focusBorderColor?: string;
1202
+ };
1203
+
1204
+ export type FormPopoverControlsThemeAPI = {
1205
+ input?: FormPopoverInputThemeAPI;
1206
+ quickFillButton?: HeaderMatchQuickFillButtonThemeAPI;
1207
+ };
1208
+
1209
+ export type FormPopoverThemeAPI = HeaderMatchSurfaceAPI & {
1210
+ width?: string;
1211
+ header?: HeaderMatchDividerSectionAPI;
1212
+ title?: HeaderMatchTextStyleAPI;
1213
+ description?: HeaderMatchTextStyleAPI;
1214
+ content?: CSSInterpolation;
1215
+ footer?: HeaderMatchDividerSectionAPI;
1216
+ controls?: FormPopoverControlsThemeAPI;
1217
+ };
1218
+
1219
+ export type PreProcessingFormPopoverThemeAPI = Omit<
1220
+ FormPopoverThemeAPI,
1221
+ 'controls'
1222
+ > & {
1223
+ controls?: Pick<FormPopoverControlsThemeAPI, 'input'>;
1224
+ };
1225
+
1226
+ export type FormButtonsThemeAPI = {
1227
+ primary?: HeaderMatchButtonThemeAPI;
1228
+ secondary?: HeaderMatchButtonThemeAPI;
1229
+ };
1230
+
1142
1231
  export type HeaderMatchAPI = {
1143
1232
  // core — always rendered, no settings flag
1144
1233
  root?: CSSInterpolation;
@@ -1153,8 +1242,6 @@ export type HeaderMatchAPI = {
1153
1242
  td?: CSSInterpolation;
1154
1243
  selectRowColor?: string;
1155
1244
  hoverRowColor?: string;
1156
- // background/text color for a row that is both selected and hovered (defaults to a darkened selectRowColor)
1157
- highlightRowColor?: string;
1158
1245
  textColor?: string;
1159
1246
  mergedCell?: CSSInterpolation;
1160
1247
  scrollbar?: HeaderMatchScrollbarAPI;
@@ -1167,10 +1254,7 @@ export type HeaderMatchAPI = {
1167
1254
 
1168
1255
  // gated behind settings.transpose / settings.mergeHeaders / settings.metadataSelection
1169
1256
  features?: {
1170
- buttons?: {
1171
- primary?: HeaderMatchButtonThemeAPI;
1172
- secondary?: HeaderMatchButtonThemeAPI;
1173
- };
1257
+ buttons?: FormButtonsThemeAPI;
1174
1258
  toolbar?: HeaderMatchSurfaceAPI & {
1175
1259
  dividerColor?: string;
1176
1260
  spinnerColor?: string;
@@ -1186,41 +1270,103 @@ export type HeaderMatchAPI = {
1186
1270
  item?: HeaderMatchDropdownItemThemeAPI;
1187
1271
  };
1188
1272
  };
1189
- metadataSelection?: {
1273
+ metadataSelection?: MetadataSelectionThemeAPI;
1274
+ formPopover?: FormPopoverThemeAPI;
1275
+ };
1276
+ };
1277
+
1278
+ /** Shared by headerSelect.features and preProcessing.preview.features (toolbar + merge edit bar). */
1279
+ export type HeaderMatchFeaturesThemeAPI = NonNullable<
1280
+ HeaderMatchAPI['features']
1281
+ >;
1282
+
1283
+ export type PreProcessingThemeAPI = {
1284
+ accent?: {
1285
+ color?: string;
1286
+ };
1287
+ root?: CSSInterpolation;
1288
+ pageHeader?: HeaderThemeAPI;
1289
+ footer?: FooterThemeAPI;
1290
+ content?: CSSInterpolation;
1291
+ inventory?: {
1292
+ root?: CSSInterpolation;
1293
+ fileChip?: CSSInterpolation & {
1294
+ focused?: CSSInterpolation;
1295
+ configureButton?: CSSInterpolation;
1296
+ parsedBadge?: CSSInterpolation;
1297
+ };
1298
+ sheetRow?: CSSInterpolation & {
1299
+ selected?: CSSInterpolation;
1300
+ viewing?: CSSInterpolation;
1301
+ processedTag?: CSSInterpolation;
1302
+ };
1303
+ addFileButton?: CSSInterpolation;
1304
+ };
1305
+ preview?: {
1306
+ root?: CSSInterpolation;
1307
+ title?: CSSInterpolation;
1308
+ combineRequired?: CSSInterpolation;
1309
+ table?: HeaderMatchAPI['table'];
1310
+ features?: Pick<HeaderMatchFeaturesThemeAPI, 'toolbar' | 'buttons'>;
1311
+ };
1312
+ modal?: {
1313
+ root?: CSSInterpolation;
1314
+ overlay?: CSSInterpolation;
1315
+ header?: CSSInterpolation;
1316
+ footer?: CSSInterpolation;
1317
+ additionalInfo?: IAdditionalInfoTheme;
1318
+ buttons?: FormButtonsThemeAPI;
1319
+ tabs?: {
1190
1320
  root?: CSSInterpolation;
1191
- selectedBorderColor?: string;
1192
- hoverBackground?: string;
1193
- // metadata +/- button container
1194
- iconButton?: CSSInterpolation;
1195
- // metadata +/- SVG color (falls back to selectedBorderColor)
1196
- iconColor?: string;
1197
- valuePreview?: {
1198
- root?: CSSInterpolation;
1321
+ tab?: CSSInterpolation;
1322
+ activeTab?: CSSInterpolation;
1323
+ };
1324
+ recipe?: {
1325
+ root?: CSSInterpolation;
1326
+ step?: CSSInterpolation;
1327
+ stepEditing?: CSSInterpolation;
1328
+ stepGenerated?: CSSInterpolation;
1329
+ generatedBadge?: CSSInterpolation;
1330
+ empty?: CSSInterpolation;
1331
+ addStep?: CSSInterpolation;
1332
+ addStepOption?: CSSInterpolation;
1333
+ field?: {
1199
1334
  label?: CSSInterpolation;
1200
- value?: CSSInterpolation;
1335
+ input?: CSSInterpolation;
1336
+ };
1337
+ dropdown?: {
1338
+ button?: CSSInterpolation;
1339
+ option?: CSSInterpolation;
1340
+ selectedOption?: CSSInterpolation;
1201
1341
  };
1202
1342
  };
1203
- formPopover?: HeaderMatchSurfaceAPI & {
1204
- width?: string;
1205
- header?: HeaderMatchDividerSectionAPI;
1206
- title?: HeaderMatchTextStyleAPI;
1207
- description?: HeaderMatchTextStyleAPI;
1208
- content?: CSSInterpolation;
1209
- footer?: HeaderMatchDividerSectionAPI;
1210
- controls?: {
1211
- input?: {
1212
- root?: CSSInterpolation;
1213
- color?: string;
1214
- backgroundColor?: string;
1215
- borderColor?: string;
1216
- borderRadius?: string;
1217
- fontSize?: string;
1218
- placeholderColor?: string;
1219
- focusBorderColor?: string;
1220
- };
1221
- quickFillButton?: HeaderMatchQuickFillButtonThemeAPI;
1343
+ combine?: {
1344
+ toggle?: CSSInterpolation;
1345
+ toggleSelected?: CSSInterpolation;
1346
+ mapping?: CSSInterpolation;
1347
+ matchStatus?: {
1348
+ success?: CSSInterpolation;
1349
+ warning?: CSSInterpolation;
1222
1350
  };
1223
1351
  };
1352
+ aiAssist?: {
1353
+ root?: CSSInterpolation;
1354
+ input?: CSSInterpolation;
1355
+ placeholderColor?: string;
1356
+ mentionList?: CSSInterpolation;
1357
+ mentionItem?: CSSInterpolation;
1358
+ mentionItemActive?: CSSInterpolation;
1359
+ };
1360
+ metadataSelection?: MetadataSelectionThemeAPI;
1361
+ formPopover?: PreProcessingFormPopoverThemeAPI;
1362
+ };
1363
+ configurePdf?: {
1364
+ instruction?: {
1365
+ placeholderColor?: string;
1366
+ };
1367
+ search?: {
1368
+ placeholderColor?: string;
1369
+ };
1224
1370
  };
1225
1371
  };
1226
1372
 
@@ -1305,6 +1451,7 @@ type CreateCustomTextField = {
1305
1451
  icon?: CSSInterpolation;
1306
1452
  input?: CSSInterpolation;
1307
1453
  errorMessage?: CSSInterpolation;
1454
+ placeholderColor?: string;
1308
1455
  };
1309
1456
 
1310
1457
  type CreateCustomDropdown = {
@@ -1386,6 +1533,7 @@ type ColumnMatchThemeAPI = {
1386
1533
  backgroundColor?: string;
1387
1534
  };
1388
1535
  loading?: CSSInterpolation;
1536
+ dateFormatPlaceholderColor?: string;
1389
1537
  };
1390
1538
  requiredColumns?: {
1391
1539
  title?: CSSInterpolation;
@@ -1440,6 +1588,7 @@ type FilterConditionDropdown = {
1440
1588
  type FindColumnDropdown = {
1441
1589
  root?: CSSInterpolation;
1442
1590
  icon?: CSSInterpolation;
1591
+ placeholderColor?: string;
1443
1592
  list?: {
1444
1593
  root?: CSSInterpolation;
1445
1594
  item?: CSSInterpolation;
@@ -1472,6 +1621,7 @@ type SmartTableThemeAPI = {
1472
1621
  input?: {
1473
1622
  root?: CSSInterpolation;
1474
1623
  icon?: CSSInterpolation;
1624
+ placeholderColor?: string;
1475
1625
  };
1476
1626
  label?: CSSInterpolation;
1477
1627
  valueList?: {
@@ -1501,6 +1651,12 @@ type SmartTableThemeAPI = {
1501
1651
  removeRows?: {
1502
1652
  root?: CSSInterpolation;
1503
1653
  dialog?: CSSInterpolation;
1654
+ dropdown?: {
1655
+ placeholderColor?: string;
1656
+ search?: {
1657
+ placeholderColor?: string;
1658
+ };
1659
+ };
1504
1660
  };
1505
1661
  freezeBoxShadow?: CSSObject['boxShadow'];
1506
1662
  };
@@ -1983,6 +2139,8 @@ export type ContextualEngineThemeAPI = {
1983
2139
  };
1984
2140
 
1985
2141
  export type LanguageType =
2142
+ | 'ar'
2143
+ | 'he'
1986
2144
  | 'de'
1987
2145
  | 'en'
1988
2146
  | 'es'
@@ -2021,6 +2179,7 @@ export declare const useDataImporter: (
2021
2179
  export type DynamicStepValues =
2022
2180
  | 'header'
2023
2181
  | 'mapping'
2182
+ | 'preProcessing'
2024
2183
  | 'review'
2025
2184
  | 'sheetSelection';
2026
2185
 
@@ -2041,14 +2200,22 @@ export type IParseFileXmlConfiguration = {
2041
2200
  };
2042
2201
  };
2043
2202
 
2203
+ export type IParseFilePdfConfiguration = {
2204
+ sourcePdfFile?: File;
2205
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2206
+ pdfDocument?: any;
2207
+ selectedPdfTableIds?: string[];
2208
+ };
2209
+
2044
2210
  export type SheetSelectionUploadFile = {
2045
- fileName: string;
2211
+ fileName?: string;
2046
2212
  sheets: {
2047
- sheetName: string;
2213
+ sheetName?: string;
2048
2214
  data: UploadData;
2049
2215
  visibility?: SheetVisibility;
2050
2216
  }[];
2051
2217
  xmlConfiguration?: IParseFileXmlConfiguration;
2218
+ pdfConfiguration?: IParseFilePdfConfiguration;
2052
2219
  };
2053
2220
 
2054
2221
  export type SheetSelectionUploadData = SheetSelectionUploadFile[];
@@ -2071,6 +2238,7 @@ export type IParseFile = {
2071
2238
  fileName: string;
2072
2239
  sheets: IParseSheet[];
2073
2240
  xmlConfiguration?: IParseFileXmlConfiguration;
2241
+ pdfConfiguration?: IParseFilePdfConfiguration;
2074
2242
  };
2075
2243
 
2076
2244
  export type OnEntryChangeLogs = {