fuse-importer 0.1.8-testing → 0.2.1-testing

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 (49) hide show
  1. package/lib/esm/Importer/ImporterWithContext.js +4 -1
  2. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +1 -1
  3. package/lib/esm/Importer/PreviewFirstTime.js +1 -1
  4. package/lib/esm/Importer/Review/ReviewContextProvider.d.ts +2 -2
  5. package/lib/esm/Importer/Review/ReviewContextProvider.js +6 -6
  6. package/lib/esm/Importer/Stepper/index.js +5 -5
  7. package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.d.ts +5 -4
  8. package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.js +104 -50
  9. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.d.ts +3 -2
  10. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.js +40 -26
  11. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.d.ts +2 -2
  12. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.js +13 -4
  13. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.d.ts +1 -1
  14. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.js +55 -11
  15. package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.d.ts +1 -1
  16. package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.js +21 -10
  17. package/lib/esm/Importer/common/Spreadsheet/common/index.d.ts +1 -1
  18. package/lib/esm/Importer/common/Spreadsheet/common/index.js +13 -5
  19. package/lib/esm/Importer/common/Spreadsheet/components/FindAndReplace/index.js +57 -13
  20. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +7 -7
  21. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +8 -8
  22. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +3 -4
  23. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +6 -7
  24. package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +20 -15
  25. package/lib/esm/Importer/common/Spreadsheet/validation/validators.d.ts +1 -1
  26. package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +2 -0
  27. package/lib/esm/Importer/contexts/ImporterContextProvider.d.ts +5 -0
  28. package/lib/esm/Importer/contexts/ImporterContextProvider.js +14 -5
  29. package/lib/esm/Importer/hooks/useSubmitToServer.d.ts +1 -1
  30. package/lib/esm/Importer/hooks/useSubmitToServer.js +30 -9
  31. package/lib/esm/common/CircleSpinner.d.ts +1 -0
  32. package/lib/esm/common/CircleSpinner.js +13 -0
  33. package/lib/esm/common/FileUploadDropzone/ImporterDropzone.js +56 -21
  34. package/lib/esm/common/Table/TableActions/CustomActions/CustomActions.js +28 -23
  35. package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +3 -3
  36. package/lib/esm/common/Table/TableActions/RowFilters.js +2 -2
  37. package/lib/esm/common/Table/TableActions/SearchRows.js +9 -9
  38. package/lib/esm/common/Table/TableActions/TableActions.js +7 -4
  39. package/lib/esm/common/Table/TableActions/TableActions.styles.js +1 -1
  40. package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +3 -3
  41. package/lib/esm/common/Table/TableView/index.d.ts +1 -1
  42. package/lib/esm/common/Table/TableView/index.js +2 -2
  43. package/lib/esm/common/Table/TableView/types.d.ts +1 -0
  44. package/lib/esm/common/Toast.d.ts +9 -1
  45. package/lib/esm/common/Toast.js +29 -8
  46. package/lib/esm/common/icons/index.js +3 -3
  47. package/lib/esm/common/inputs/Autocomplete.js +1 -1
  48. package/lib/main.js +4 -4
  49. package/package.json +1 -1
@@ -55,10 +55,10 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
55
  return to.concat(ar || Array.prototype.slice.call(from));
56
56
  };
57
57
  import { useState } from "react";
58
- import { useImporterContext, } from "../contexts/ImporterContextProvider";
59
58
  import { isRecordEmpty } from "../../Importer/common/Spreadsheet/common";
60
59
  import { sendRecordsToIntegrations } from "../../Importer/common/utils";
61
60
  import { getTemplateFields, recordListToDataSet } from "../../Importer/data";
61
+ import { useImporterContext, } from "../contexts/ImporterContextProvider";
62
62
  var trackImportedRowsCount = function (fuseApi, templateSlug, rowCount) { return __awaiter(void 0, void 0, void 0, function () {
63
63
  var error_1, errorMessage;
64
64
  var _a, _b;
@@ -82,21 +82,41 @@ var trackImportedRowsCount = function (fuseApi, templateSlug, rowCount) { return
82
82
  });
83
83
  }); };
84
84
  var buildColumnMappingsFromHeaderMatchings = function (templateHeaders, templateHeaderMatchings) {
85
- return templateHeaders.map(function (column) {
85
+ return templateHeaders
86
+ .filter(function (column) { return column.label && templateHeaderMatchings[column.label]; })
87
+ .map(function (column) {
86
88
  return {
87
89
  matched_column_name: templateHeaderMatchings[column.label],
88
90
  template_column_name: column.label,
89
91
  };
90
92
  });
91
93
  };
92
- var saveMappedColumns = function (columnMappings, fuseApi, templateSlug) { return __awaiter(void 0, void 0, void 0, function () {
94
+ var buildValueMappingsFromHeaderValueMatchings = function (enumFieldValueMatchings) {
95
+ var mappings = Object.values(enumFieldValueMatchings).map(function (column) {
96
+ var valuesMappings = [];
97
+ for (var _i = 0, _a = Object.entries(column); _i < _a.length; _i++) {
98
+ var _b = _a[_i], key = _b[0], value = _b[1];
99
+ if (!value) {
100
+ continue;
101
+ }
102
+ valuesMappings.push({
103
+ matched_value: key,
104
+ template_value: value,
105
+ });
106
+ }
107
+ return valuesMappings;
108
+ });
109
+ return mappings.flat();
110
+ };
111
+ var saveMappedColumns = function (columnMappings, valueMappings, fuseApi, templateSlug) { return __awaiter(void 0, void 0, void 0, function () {
93
112
  var error_2;
94
113
  return __generator(this, function (_a) {
95
114
  switch (_a.label) {
96
115
  case 0:
97
116
  _a.trys.push([0, 2, , 3]);
98
117
  return [4 /*yield*/, fuseApi.patch("/api/v1/importer/templates/".concat(templateSlug), {
99
- column_mappings_attributes: columnMappings,
118
+ column_mappings: columnMappings,
119
+ value_mappings: valueMappings,
100
120
  })];
101
121
  case 1:
102
122
  _a.sent();
@@ -118,13 +138,13 @@ var filterAndMapWithBackendErrors = function (dataSet, errors) {
118
138
  return __assign(__assign({}, record), { _meta: __assign(__assign({}, meta), { isInvalid: true, backendErrors: errors[rId] }) });
119
139
  }, []);
120
140
  };
121
- export var useSubmitToServer = function (setIsTransformTooltipOpened) {
122
- var _a = useImporterContext(), templateHeaderMatchings = _a.templateHeaderMatchings, templateHeaders = _a.templateHeaders, integrations = _a.integrations, templateSlug = _a.templateSlug, fuseApi = _a.fuseApi, previewMode = _a.importerOptions.previewMode, onSubmit = _a.onSubmit;
141
+ export var useSubmitToServer = function (setHasTransformedRecords) {
142
+ var _a = useImporterContext(), enumFieldValueMatchings = _a.enumFieldValueMatchings, templateHeaderMatchings = _a.templateHeaderMatchings, templateHeaders = _a.templateHeaders, integrations = _a.integrations, templateSlug = _a.templateSlug, fuseApi = _a.fuseApi, previewMode = _a.importerOptions.previewMode, onSubmit = _a.onSubmit;
123
143
  var _b = useState(false), isSubmitting = _b[0], setIsSubmitting = _b[1];
124
144
  var _c = useState(false), importWasSuccessful = _c[0], setImportWasSuccessful = _c[1];
125
145
  var _d = useState(null), appResponse = _d[0], setAppResponse = _d[1];
126
146
  var onSubmitToServer = function (dataSet, afterSubmitCallback) { return __awaiter(void 0, void 0, void 0, function () {
127
- var dataSetValues, reviewFields_1, validDataSetValues, validDataSetLength, invalidRecords_1, applicationResponse, isAppResponseSuccessful, _a, errors, isDataValid, recordsToDisplayFiltered, invalidDataSet, columnMappings, error_3;
147
+ var dataSetValues, reviewFields_1, validDataSetValues, validDataSetLength, invalidRecords_1, applicationResponse, isAppResponseSuccessful, _a, errors, isDataValid, recordsToDisplayFiltered, invalidDataSet, columnMappings, valueMappings, error_3;
128
148
  return __generator(this, function (_b) {
129
149
  switch (_b.label) {
130
150
  case 0:
@@ -158,7 +178,7 @@ export var useSubmitToServer = function (setIsTransformTooltipOpened) {
158
178
  invalidRecords_1 = __spreadArray(__spreadArray([], invalidRecords_1, true), (recordsToDisplayFiltered || []), true);
159
179
  }
160
180
  invalidDataSet = recordListToDataSet(invalidRecords_1, reviewFields_1, false).dataSet;
161
- setIsTransformTooltipOpened(false);
181
+ setHasTransformedRecords(false);
162
182
  afterSubmitCallback(invalidDataSet);
163
183
  if (!!previewMode) return [3 /*break*/, 5];
164
184
  return [4 /*yield*/, trackImportedRowsCount(fuseApi, templateSlug, validDataSetLength)];
@@ -168,7 +188,8 @@ export var useSubmitToServer = function (setIsTransformTooltipOpened) {
168
188
  case 3:
169
189
  _b.sent();
170
190
  columnMappings = buildColumnMappingsFromHeaderMatchings(templateHeaders, templateHeaderMatchings);
171
- return [4 /*yield*/, saveMappedColumns(columnMappings, fuseApi, templateSlug)];
191
+ valueMappings = buildValueMappingsFromHeaderValueMatchings(enumFieldValueMatchings);
192
+ return [4 /*yield*/, saveMappedColumns(columnMappings, valueMappings, fuseApi, templateSlug)];
172
193
  case 4:
173
194
  _b.sent();
174
195
  _b.label = 5;
@@ -0,0 +1 @@
1
+ export declare const CircleSpinner: () => JSX.Element;
@@ -0,0 +1,13 @@
1
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
2
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
+ return cooked;
4
+ };
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import styled from "styled-components";
7
+ var SpinnerContainer = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n animation: spin 1s linear infinite;\n background: transparent;\n border-radius: 50%;\n height: 24px;\n overflow: hidden;\n position: relative;\n width: 24px;\n z-index: 0;\n\n @keyframes spin {\n 100% {\n transform: rotate(360deg);\n }\n }\n"], ["\n animation: spin 1s linear infinite;\n background: transparent;\n border-radius: 50%;\n height: 24px;\n overflow: hidden;\n position: relative;\n width: 24px;\n z-index: 0;\n\n @keyframes spin {\n 100% {\n transform: rotate(360deg);\n }\n }\n"])));
8
+ var SpinBlocker = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background: black;\n border-radius: 50%;\n height: 80%;\n left: 10%;\n position: absolute;\n top: 10%;\n width: 80%;\n"], ["\n background: black;\n border-radius: 50%;\n height: 80%;\n left: 10%;\n position: absolute;\n top: 10%;\n width: 80%;\n"])));
9
+ var Spin = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: linear-gradient(\n to bottom right,\n rgba(255, 255, 255, 0.85) 50%,\n rgba(0, 0, 0, 0) 150%\n );\n height: 50%;\n left: 0;\n position: absolute;\n top: 50%;\n width: 50%;\n z-index: -1;\n"], ["\n background: linear-gradient(\n to bottom right,\n rgba(255, 255, 255, 0.85) 50%,\n rgba(0, 0, 0, 0) 150%\n );\n height: 50%;\n left: 0;\n position: absolute;\n top: 50%;\n width: 50%;\n z-index: -1;\n"])));
10
+ export var CircleSpinner = function () {
11
+ return (_jsxs(SpinnerContainer, { children: [_jsx(SpinBlocker, {}), _jsx(Spin, {})] }));
12
+ };
13
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -6,12 +6,19 @@ export var useDragAndDrop = function (_a) {
6
6
  var onComplete = _a.onComplete, saveFileName = _a.saveFileName, setIsLoading = _a.setIsLoading, validHeadersCount = _a.validHeadersCount;
7
7
  var onDrop = function (acceptedFiles) {
8
8
  acceptedFiles.forEach(function (file) {
9
+ if (file.size <= 0) {
10
+ addToast("Cannot upload an empty file.", "error");
11
+ return;
12
+ }
9
13
  setIsLoading && setIsLoading(true);
10
14
  saveFileName(file.name);
11
15
  var reader = new FileReader();
12
16
  var isCsvFile = file.type === "text/csv";
13
17
  reader.onabort = function () { return console.log("file reading was aborted"); };
14
- reader.onerror = function () { return console.log("file reading has failed"); };
18
+ reader.onerror = function () {
19
+ addToast("An error occurred while reading the file.", "error");
20
+ setIsLoading && setIsLoading(false);
21
+ };
15
22
  reader.onload = function (event) {
16
23
  var _a;
17
24
  var results = event.target.result;
@@ -22,31 +29,59 @@ export var useDragAndDrop = function (_a) {
22
29
  onComplete(parserResults.data);
23
30
  setIsLoading && setIsLoading(false);
24
31
  },
32
+ error: function (error) {
33
+ addToast("An error occurred while parsing the CSV: ".concat(error.message), "error");
34
+ setIsLoading && setIsLoading(false);
35
+ },
25
36
  });
26
37
  return;
27
38
  }
28
- var getDataFromFile = function (fileResults) {
29
- // rounded value to 20MB
30
- var isLargeFile = file.size > 20000000;
31
- var workBook = XLSX.read(fileResults, {
32
- type: "array",
33
- codepage: 65001,
34
- raw: true,
35
- dense: isLargeFile,
36
- });
37
- var workBookName = workBook.SheetNames[0];
38
- var sheet = workBook.Sheets[workBookName];
39
- return XLSX.utils.sheet_to_json(sheet, { header: 1, raw: false });
40
- };
41
- var fileData = getDataFromFile(results);
42
- var headersCount = (_a = fileData[0]) === null || _a === void 0 ? void 0 : _a.length;
43
- if (validHeadersCount) {
44
- validHeadersCount(headersCount) && onComplete(fileData);
39
+ var arr = new Uint8Array(event.target.result).subarray(0, 4);
40
+ var header = "";
41
+ for (var i = 0; i < arr.length; i++) {
42
+ header += arr[i].toString(16);
45
43
  }
46
- else {
47
- onComplete(fileData);
44
+ // Check the file signature
45
+ var isExcelFile = header === "504b34" || header === "d0cf11e0"; // .xlsx or .xls
46
+ if (!isExcelFile) {
47
+ addToast("The file is not a valid Excel file.", "error");
48
+ setIsLoading && setIsLoading(false);
49
+ return;
50
+ }
51
+ try {
52
+ var getDataFromFile = function (fileResults) {
53
+ // rounded value to 20MB
54
+ var isLargeFile = file.size > 20000000;
55
+ var workBook = XLSX.read(fileResults, {
56
+ type: "array",
57
+ codepage: 65001,
58
+ raw: true,
59
+ dense: isLargeFile,
60
+ });
61
+ var workBookName = workBook.SheetNames[0];
62
+ var sheet = workBook.Sheets[workBookName];
63
+ return XLSX.utils.sheet_to_json(sheet, { header: 1, raw: false });
64
+ };
65
+ var fileData = getDataFromFile(results);
66
+ if (!fileData.length) {
67
+ addToast("The file appears to be empty or cannot be parsed.", "error");
68
+ setIsLoading && setIsLoading(false);
69
+ return;
70
+ }
71
+ var headersCount = (_a = fileData[0]) === null || _a === void 0 ? void 0 : _a.length;
72
+ if (validHeadersCount && !validHeadersCount(headersCount)) {
73
+ addToast("Invalid header count in file.", "error");
74
+ setIsLoading && setIsLoading(false);
75
+ }
76
+ else {
77
+ onComplete(fileData);
78
+ setIsLoading && setIsLoading(false);
79
+ }
80
+ }
81
+ catch (error) {
82
+ addToast("An error occurred while processing the file: ".concat(error.message), "error");
83
+ setIsLoading && setIsLoading(false);
48
84
  }
49
- setIsLoading && setIsLoading(false);
50
85
  };
51
86
  if (isCsvFile) {
52
87
  reader.readAsText(file);
@@ -105,30 +105,35 @@ export var CustomActions = function () {
105
105
  var handleCustomAction = function (actionKey) { return __awaiter(void 0, void 0, void 0, function () {
106
106
  var recordsToRunAction, action, processRecordsInBatches, toastMessage;
107
107
  return __generator(this, function (_a) {
108
- recordsToRunAction = selectedRows.map(function (recordId) {
109
- return getRecord(recordId);
110
- });
111
- action = customActions.find(function (action) { return action.name === actionKey; });
112
- if (!action || Object.keys(action).length === 0) {
113
- addToast(t("table_actions.custom_actions.general_error_toast"), "error");
114
- return [2 /*return*/];
115
- }
116
- processRecordsInBatches = useBatchProcessing().processRecordsInBatches;
117
- processRecordsInBatches(recordsToRunAction, function (batch) { return __awaiter(void 0, void 0, void 0, function () {
118
- return __generator(this, function (_a) {
119
- switch (_a.label) {
120
- case 0: return [4 /*yield*/, processBatch(batch, action)];
121
- case 1:
122
- _a.sent();
123
- return [2 /*return*/];
108
+ switch (_a.label) {
109
+ case 0:
110
+ recordsToRunAction = selectedRows.map(function (recordId) {
111
+ return getRecord(recordId);
112
+ });
113
+ action = customActions.find(function (action) { return action.name === actionKey; });
114
+ if (!action || Object.keys(action).length === 0) {
115
+ addToast(t("table_actions.custom_actions.general_error_toast"), "error");
116
+ return [2 /*return*/];
124
117
  }
125
- });
126
- }); });
127
- toastMessage = t("table_actions.custom_actions.success_toast", {
128
- actionName: action.name,
129
- });
130
- addToast(toastMessage, "success");
131
- return [2 /*return*/];
118
+ processRecordsInBatches = useBatchProcessing().processRecordsInBatches;
119
+ return [4 /*yield*/, processRecordsInBatches(recordsToRunAction, function (batch) { return __awaiter(void 0, void 0, void 0, function () {
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0: return [4 /*yield*/, processBatch(batch, action)];
123
+ case 1:
124
+ _a.sent();
125
+ return [2 /*return*/];
126
+ }
127
+ });
128
+ }); })];
129
+ case 1:
130
+ _a.sent();
131
+ toastMessage = t("table_actions.custom_actions.success_toast", {
132
+ actionName: action.name,
133
+ });
134
+ addToast(toastMessage, "success");
135
+ return [2 /*return*/];
136
+ }
132
137
  });
133
138
  }); };
134
139
  var onSelect = function (value) {
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from "react";
3
3
  import { useTranslation } from "react-i18next";
4
- import { addToast } from "../../../../common/Toast";
5
4
  import { useReviewContext, useSpreadsheetContext } from "../../../../Importer";
6
5
  import { useFilteredDataContext } from "../../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
7
6
  import { useValidationContext } from "../../../../Importer/common/Spreadsheet/ValidationContextProvider";
7
+ import { addToast } from "../../../../common/Toast";
8
8
  import { useEventManagerContext } from "../../../EventManagerContextProvider";
9
9
  import * as S from "./FilterByErrors.styles";
10
10
  export var FilterByErrors = function () {
@@ -12,7 +12,7 @@ export var FilterByErrors = function () {
12
12
  var _c = useFilteredDataContext(), spreadsheetFilter = _c.spreadsheetFilter, resetSpreadsheetFilter = _c.resetSpreadsheetFilter, filterRecordsByFieldErrors = _c.filterRecordsByFieldErrors;
13
13
  var _d = useEventManagerContext(), on = _d.on, off = _d.off, EVENTS = _d.EVENTS;
14
14
  var fields = useSpreadsheetContext().fields;
15
- var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
15
+ var hasTransformedRecords = useReviewContext().hasTransformedRecords;
16
16
  var columnsWithErrorCounts = useValidationContext().columnsWithErrorCounts;
17
17
  var t = useTranslation("review").t;
18
18
  var _e = useState([]), errorArray = _e[0], setErrorArray = _e[1];
@@ -72,6 +72,6 @@ export var FilterByErrors = function () {
72
72
  : isMenuOpened
73
73
  ? search_or_select
74
74
  : prefix;
75
- var isDisabled = errorArray.length === 0 || isTransformTooltipOpened;
75
+ var isDisabled = errorArray.length === 0 || hasTransformedRecords;
76
76
  return (_jsx(S.StyledAutocomplete, { placement: "bottom", placeholder: inputText, onToggle: function (v) { return !isDisabled && setIsMenuOpened(v); }, onChange: onChange, value: selectedErrorToFilter, options: errorArray, isDisabled: isDisabled, isInputDisabled: isDisabled, inputWidth: inputWidth, "data-testid": "ta-filter-by-errors", prefix: inputText }));
77
77
  };
@@ -45,7 +45,7 @@ export var RowFilters = function () {
45
45
  var _a = useFilteredDataContext(), spreadsheetFilter = _a.spreadsheetFilter, filterRecordsByRowType = _a.filterRecordsByRowType;
46
46
  var _b = useDuplicateDataContext(), duplicateRecordIds = _b.duplicateRecordIds, calculateDuplicateRecords = _b.calculateDuplicateRecords;
47
47
  var invalidRowsCountRef = useValidationContext().invalidRowsCountRef;
48
- var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
48
+ var hasTransformedRecords = useReviewContext().hasTransformedRecords;
49
49
  var _c = useState(invalidRowsCountRef.current), invalidRowsCount = _c[0], setInvalidRowsCount = _c[1];
50
50
  var _d = useDataSetContext(), dataSetLength = _d.dataSetLength, emptyRecordIds = _d.emptyRecordIds;
51
51
  var _e = useEventManagerContext(), on = _e.on, off = _e.off, EVENTS = _e.EVENTS;
@@ -89,6 +89,6 @@ export var RowFilters = function () {
89
89
  }
90
90
  filterRecordsByRowType("invalid");
91
91
  };
92
- return (_jsx(Wrapper, __assign({ isDisabled: isTransformTooltipOpened }, { children: _jsxs(Container, { children: [_jsx(Filter, { isSelected: spreadsheetFilter.byRow === "all", label: all_rows, count: recordsWithValuesCount, onClick: function () { return onAllSelected(); } }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "invalid", label: invalid_rows, count: invalidRowsCount, onClick: function () { return onInvalidSelected(); } }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "duplicates", label: duplicates, count: duplicateRecordIds.size, onClick: function () { return onDuplicatesSelected(); } })] }) })));
92
+ return (_jsx(Wrapper, __assign({ isDisabled: hasTransformedRecords }, { children: _jsxs(Container, { children: [_jsx(Filter, { isSelected: spreadsheetFilter.byRow === "all", label: all_rows, count: recordsWithValuesCount, onClick: function () { return onAllSelected(); }, "data-test-id": "all_rows_filter" }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "invalid", label: invalid_rows, count: invalidRowsCount, onClick: function () { return onInvalidSelected(); }, "data-test-id": "invalid_filter" }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "duplicates", label: duplicates, count: duplicateRecordIds.size, onClick: function () { return onDuplicatesSelected(); }, "data-test-id": "duplicates_filter" })] }) })));
93
93
  };
94
94
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -15,17 +15,17 @@ var __assign = (this && this.__assign) || function () {
15
15
  };
16
16
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
17
17
  import { useRef, useState } from "react";
18
+ import { useTranslation } from "react-i18next";
18
19
  import styled, { css } from "styled-components";
19
- import { useDebounce } from "../../../hooks";
20
20
  import { useReviewContext } from "../../../Importer";
21
- import { colors } from "../../../styled/theme/colorPalette";
22
- import { textStyles } from "../../../styled/theme/textStyles";
23
- import { SearchIcon, ReplaceIcon } from "./icons";
24
- import { TooltipProvider } from "../../../common/TooltipProvider";
25
- import { useTranslation } from "react-i18next";
26
- import { Div } from "../../../styled";
27
21
  import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
28
22
  import { FindAndReplaceModal } from "../../../Importer/common/Spreadsheet/components/FindAndReplace";
23
+ import { TooltipProvider } from "../../../common/TooltipProvider";
24
+ import { useDebounce } from "../../../hooks";
25
+ import { Div } from "../../../styled";
26
+ import { colors } from "../../../styled/theme/colorPalette";
27
+ import { textStyles } from "../../../styled/theme/textStyles";
28
+ import { ReplaceIcon, SearchIcon } from "./icons";
29
29
  var Wrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n height: 24px;\n overflow: hidden;\n padding: 8px;\n position: relative;\n transition: width 0.25s ease-in-out;\n width: ", ";\n"], ["\n background: ", ";\n border-radius: 4px;\n cursor: pointer;\n display: flex;\n gap: 8px;\n height: 24px;\n overflow: hidden;\n padding: 8px;\n position: relative;\n transition: width 0.25s ease-in-out;\n width: ", ";\n"])), function (_a) {
30
30
  var isOpen = _a.isOpen;
31
31
  return (isOpen ? colors.orange50 : "none");
@@ -74,10 +74,10 @@ var SearchInput = function (_a) {
74
74
  export var SearchRows = function (_a) {
75
75
  var _b = _a.testId, testId = _b === void 0 ? "ta-search-rows" : _b;
76
76
  var _c = useFilteredDataContext(), filteredInputValue = _c.filteredInputValue, setFilteredInputValue = _c.setFilteredInputValue;
77
- var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
77
+ var hasTransformedRecords = useReviewContext().hasTransformedRecords;
78
78
  var handleChangeInputValue = function (value) {
79
79
  setFilteredInputValue(value);
80
80
  };
81
- return (_jsx(_Fragment, { children: _jsx(SearchInput, { testId: testId, value: filteredInputValue, onChange: handleChangeInputValue, isDisabled: isTransformTooltipOpened }) }));
81
+ return (_jsx(_Fragment, { children: _jsx(SearchInput, { testId: testId, value: filteredInputValue, onChange: handleChangeInputValue, isDisabled: hasTransformedRecords }) }));
82
82
  };
83
83
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -22,7 +22,7 @@ var __rest = (this && this.__rest) || function (s, e) {
22
22
  };
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import { useReviewContext } from "../../../Importer";
25
- import { defaultTableActionsHeightPx } from "./common";
25
+ import { useValidationContext } from "../../../Importer/common/Spreadsheet/ValidationContextProvider";
26
26
  import { CustomActions } from "./CustomActions";
27
27
  import { DeleteSelectedRows } from "./DeleteSelectedRows";
28
28
  import { ExportData } from "./ExportData";
@@ -32,11 +32,14 @@ import { SearchRows } from "./SearchRows";
32
32
  import * as S from "./TableActions.styles";
33
33
  import { TransformedRecordsCount } from "./TransformedRecordsCount";
34
34
  import ValidationProgress from "./ValidationProgress";
35
+ import { defaultTableActionsHeightPx } from "./common";
35
36
  export var TableActions = function (_a) {
36
37
  var _b = _a.tableActionsHeight, tableActionsHeight = _b === void 0 ? defaultTableActionsHeightPx : _b, props = __rest(_a, ["tableActionsHeight"]);
37
- var _c = useReviewContext(), isTransformTooltipOpened = _c.isTransformTooltipOpened, setIsTransformTooltipOpened = _c.setIsTransformTooltipOpened;
38
+ var _c = useReviewContext(), hasTransformedRecords = _c.hasTransformedRecords, setHasTransformedRecords = _c.setHasTransformedRecords;
39
+ var isValidationCompleted = useValidationContext().isValidationCompleted;
38
40
  var onCloseTransformsTooltip = function () {
39
- setIsTransformTooltipOpened(false);
41
+ setHasTransformedRecords(false);
40
42
  };
41
- return (_jsxs(S.TableActionsContainer, __assign({ height: tableActionsHeight }, props, { children: [_jsxs(S.TableActionsContent, { children: [_jsx(SearchRows, {}), _jsx(RowFilters, {}), _jsx(FilterByErrors, {}), _jsxs(S.ButtonActionsContainer, { children: [_jsx(DeleteSelectedRows, {}), _jsx(ExportData, {}), _jsx(CustomActions, {})] })] }), _jsxs(S.TableActionsInformations, { children: [_jsx(ValidationProgress, {}), isTransformTooltipOpened && (_jsx(TransformedRecordsCount, { onClose: onCloseTransformsTooltip }))] })] })));
43
+ var shouldShowTransformedCount = hasTransformedRecords && isValidationCompleted;
44
+ return (_jsxs(S.TableActionsContainer, __assign({ height: tableActionsHeight }, props, { children: [_jsxs(S.TableActionsContent, { children: [_jsx(SearchRows, {}), _jsx(RowFilters, {}), _jsx(FilterByErrors, {}), _jsxs(S.ButtonActionsContainer, { children: [_jsx(DeleteSelectedRows, {}), _jsx(ExportData, {}), _jsx(CustomActions, {})] })] }), _jsxs(S.TableActionsInformations, { children: [_jsx(ValidationProgress, {}), shouldShowTransformedCount && (_jsx(TransformedRecordsCount, { onClose: onCloseTransformsTooltip }))] })] })));
42
45
  };
@@ -13,6 +13,6 @@ export var TableActionsContainer = styled(Div)(templateObject_1 || (templateObje
13
13
  });
14
14
  export var ButtonActionsContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 8px;\n"], ["\n align-items: center;\n display: flex;\n gap: 8px;\n"])));
15
15
  export var TableActionsContent = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n"])));
16
- export var TableActionsInformations = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n position: relative;\n z-index: 101;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n position: relative;\n z-index: 101;\n"])));
16
+ export var TableActionsInformations = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n position: relative;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n position: relative;\n"])));
17
17
  export var ActionButton = styled.button(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n align-items: center;\n background: transparent;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n display: flex;\n height: 36px;\n justify-content: center;\n padding: 0px;\n width: 36px;\n\n :disabled {\n opacity: 0.6;\n\n :hover {\n background-color: transparent !important;\n cursor: not-allowed;\n }\n }\n"], ["\n align-items: center;\n background: transparent;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n display: flex;\n height: 36px;\n justify-content: center;\n padding: 0px;\n width: 36px;\n\n :disabled {\n opacity: 0.6;\n\n :hover {\n background-color: transparent !important;\n cursor: not-allowed;\n }\n }\n"])));
18
18
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -17,11 +17,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
17
17
  import { useEffect, useMemo, useState } from "react";
18
18
  import { useTranslation } from "react-i18next";
19
19
  import styled from "styled-components";
20
- import { Button } from "../../../common/buttons";
21
20
  import { useSpreadsheetContext } from "../../../Importer";
22
21
  import { useDataSetContext } from "../../../Importer/common/Spreadsheet/DataSetContextProvider";
23
22
  import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
24
- import { colors, Div } from "../../../styled";
23
+ import { Button } from "../../../common/buttons";
24
+ import { Div, colors } from "../../../styled";
25
25
  import { truncateString } from "../../../utils";
26
26
  import { CheckIcon } from "./icons";
27
27
  var formatToLocaleString = function (number) {
@@ -30,7 +30,7 @@ var formatToLocaleString = function (number) {
30
30
  maximumFractionDigits: 0,
31
31
  });
32
32
  };
33
- var RecordsCountContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n z-index: 2;\n\n * {\n box-sizing: border-box;\n }\n"], ["\n position: relative;\n z-index: 2;\n\n * {\n box-sizing: border-box;\n }\n"])));
33
+ var RecordsCountContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n\n * {\n box-sizing: border-box;\n }\n"], ["\n position: relative;\n\n * {\n box-sizing: border-box;\n }\n"])));
34
34
  var Counter = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n background: ", ";\n border-radius: 35px;\n display: flex;\n padding: 0px 18px;\n position: relative;\n user-select: none;\n z-index: 101;\n"], ["\n align-items: center;\n background: ", ";\n border-radius: 35px;\n display: flex;\n padding: 0px 18px;\n position: relative;\n user-select: none;\n z-index: 101;\n"])), colors.blue100);
35
35
  var TooltipContainer = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n border-radius: 8px;\n box-shadow: 0px 3.53px 63.58px 0px #b7a6a640;\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 16px 32px 24px 24px;\n position: absolute;\n right: 0px;\n top: 66px;\n width: clamp(150px, 379px, 379px);\n z-index: 101;\n\n &::before {\n border-color: transparent transparent #ffffff transparent;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 14.5px 24px 14.5px;\n content: \"\";\n height: 0;\n position: absolute;\n right: -4px;\n top: -6px;\n transform: rotate(120deg);\n width: 0;\n }\n"], ["\n background: ", ";\n border-radius: 8px;\n box-shadow: 0px 3.53px 63.58px 0px #b7a6a640;\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 16px 32px 24px 24px;\n position: absolute;\n right: 0px;\n top: 66px;\n width: clamp(150px, 379px, 379px);\n z-index: 101;\n\n &::before {\n border-color: transparent transparent #ffffff transparent;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 14.5px 24px 14.5px;\n content: \"\";\n height: 0;\n position: absolute;\n right: -4px;\n top: -6px;\n transform: rotate(120deg);\n width: 0;\n }\n"])), colors.white);
36
36
  var ExampleCode = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n background: ", ";\n border-radius: 4px;\n display: flex;\n justify-content: space-between;\n padding: 4px;\n"], ["\n align-items: center;\n background: ", ";\n border-radius: 4px;\n display: flex;\n justify-content: space-between;\n padding: 4px;\n"])), colors.blue100);
@@ -8,4 +8,4 @@ type TableViewWrapperProps = {
8
8
  checkboxColumnWidth?: number;
9
9
  };
10
10
  export declare const TableViewWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps & TableViewWrapperProps, never>;
11
- export declare const TableView: React.MemoExoticComponent<({ data, dataRefIds, columns, pageSize, onRowClick, sortBy, isLoading, setSortBy, rowWidthScalingFactor, tableHeadersHeight, rowHeight, h, onTableScroll, getItemKey, isDraggable, checkboxColumnWidth, isFiltering, ...props }: TableViewProps) => JSX.Element>;
11
+ export declare const TableView: React.MemoExoticComponent<({ data, dataRefIds, columns, pageSize, onRowClick, sortBy, isLoading, setSortBy, rowWidthScalingFactor, tableHeadersHeight, rowHeight, h, onTableScroll, getItemKey, isDraggable, checkboxColumnWidth, isFiltering, shouldHideTable, ...props }: TableViewProps) => JSX.Element>;
@@ -66,7 +66,7 @@ var buildGridStyles = function (rowWidthScalingFactor) {
66
66
  return gridStyles;
67
67
  };
68
68
  export var TableView = React.memo(function (_a) {
69
- var _b = _a.data, data = _b === void 0 ? null : _b, _c = _a.dataRefIds, dataRefIds = _c === void 0 ? null : _c, columns = _a.columns, pageSize = _a.pageSize, _d = _a.onRowClick, onRowClick = _d === void 0 ? null : _d, _e = _a.sortBy, sortBy = _e === void 0 ? { field: null, direction: null } : _e, _f = _a.isLoading, isLoading = _f === void 0 ? false : _f, _g = _a.setSortBy, setSortBy = _g === void 0 ? null : _g, _h = _a.rowWidthScalingFactor, rowWidthScalingFactor = _h === void 0 ? 1 : _h, _j = _a.tableHeadersHeight, tableHeadersHeight = _j === void 0 ? defaultTableHeaderHeightPx : _j, _k = _a.rowHeight, rowHeight = _k === void 0 ? defaultTableRowHeightPx : _k, _l = _a.h, h = _l === void 0 ? 500 : _l, _m = _a.onTableScroll, onTableScroll = _m === void 0 ? null : _m, _o = _a.getItemKey, getItemKey = _o === void 0 ? null : _o, _p = _a.isDraggable, isDraggable = _p === void 0 ? false : _p, checkboxColumnWidth = _a.checkboxColumnWidth, _q = _a.isFiltering, isFiltering = _q === void 0 ? false : _q, props = __rest(_a, ["data", "dataRefIds", "columns", "pageSize", "onRowClick", "sortBy", "isLoading", "setSortBy", "rowWidthScalingFactor", "tableHeadersHeight", "rowHeight", "h", "onTableScroll", "getItemKey", "isDraggable", "checkboxColumnWidth", "isFiltering"]);
69
+ var _b = _a.data, data = _b === void 0 ? null : _b, _c = _a.dataRefIds, dataRefIds = _c === void 0 ? null : _c, columns = _a.columns, pageSize = _a.pageSize, _d = _a.onRowClick, onRowClick = _d === void 0 ? null : _d, _e = _a.sortBy, sortBy = _e === void 0 ? { field: null, direction: null } : _e, _f = _a.isLoading, isLoading = _f === void 0 ? false : _f, _g = _a.setSortBy, setSortBy = _g === void 0 ? null : _g, _h = _a.rowWidthScalingFactor, rowWidthScalingFactor = _h === void 0 ? 1 : _h, _j = _a.tableHeadersHeight, tableHeadersHeight = _j === void 0 ? defaultTableHeaderHeightPx : _j, _k = _a.rowHeight, rowHeight = _k === void 0 ? defaultTableRowHeightPx : _k, _l = _a.h, h = _l === void 0 ? 500 : _l, _m = _a.onTableScroll, onTableScroll = _m === void 0 ? null : _m, _o = _a.getItemKey, getItemKey = _o === void 0 ? null : _o, _p = _a.isDraggable, isDraggable = _p === void 0 ? false : _p, checkboxColumnWidth = _a.checkboxColumnWidth, _q = _a.isFiltering, isFiltering = _q === void 0 ? false : _q, _r = _a.shouldHideTable, shouldHideTable = _r === void 0 ? false : _r, props = __rest(_a, ["data", "dataRefIds", "columns", "pageSize", "onRowClick", "sortBy", "isLoading", "setSortBy", "rowWidthScalingFactor", "tableHeadersHeight", "rowHeight", "h", "onTableScroll", "getItemKey", "isDraggable", "checkboxColumnWidth", "isFiltering", "shouldHideTable"]);
70
70
  var headerContainerRef = useRef();
71
71
  var rowCount = dataRefIds ? dataRefIds.ids.length : data.length;
72
72
  var onScroll = function (_a) {
@@ -106,7 +106,7 @@ export var TableView = React.memo(function (_a) {
106
106
  width: autosizerWidth,
107
107
  columnCount: 1,
108
108
  onScroll: onScroll,
109
- columnWidth: rowWidth,
109
+ columnWidth: shouldHideTable ? 0 : rowWidth,
110
110
  height: autosizerHeight - tableHeadersHeight,
111
111
  rowHeight: rowHeight,
112
112
  rowCount: rowCount,
@@ -32,4 +32,5 @@ export type TableViewProps = {
32
32
  isDraggable?: boolean;
33
33
  checkboxColumnWidth?: number;
34
34
  isFiltering?: boolean;
35
+ shouldHideTable?: boolean;
35
36
  } & DivCSSProps;
@@ -1,9 +1,12 @@
1
+ import { CSSProperties } from "react";
1
2
  import { ToastOptions } from "react-hot-toast";
2
3
  type ToastProps = {
3
4
  zIndex?: number;
5
+ toastStyle?: CSSProperties;
4
6
  };
5
7
  type ToastTypes = keyof typeof toastTypeStyles;
6
8
  export declare const addToast: (msg: JSX.Element | string, type?: ToastTypes, toastOptions?: ToastOptions) => void;
9
+ export declare const addLoadingToast: (msg: JSX.Element | string, helperMsg: JSX.Element | string, toastOptions?: ToastOptions, minW?: number) => void;
7
10
  declare const toastTypeStyles: {
8
11
  error: {
9
12
  color: string;
@@ -30,6 +33,11 @@ declare const toastTypeStyles: {
30
33
  backgroundColor: string;
31
34
  icon: JSX.Element;
32
35
  };
36
+ loadingNotification: {
37
+ color: string;
38
+ backgroundColor: string;
39
+ icon: JSX.Element;
40
+ };
33
41
  };
34
- declare const Toast: ({ zIndex }: ToastProps) => JSX.Element;
42
+ declare const Toast: ({ zIndex, toastStyle }: ToastProps) => JSX.Element;
35
43
  export { Toast };
@@ -18,21 +18,37 @@ import toast, { ToastBar, Toaster, } from "react-hot-toast";
18
18
  import styled from "styled-components";
19
19
  import { colors } from "../styled/theme/colorPalette";
20
20
  import { Div } from "../styled/utils";
21
+ import { CircleSpinner } from "./CircleSpinner";
21
22
  import { greenCheckIcon, infoIcon, notificationCheckIcon, redXIcon, warningIcon, } from "./icons";
22
23
  var defaultDuration = 5000;
23
24
  var defaultPosition = "bottom-right";
24
25
  var toastBorderRadius = 4;
25
26
  var toastMaxWidth = "85%";
26
- export var addToast = function (msg, type, toastOptions) {
27
- if (type === void 0) { type = "notification"; }
28
- if (toastOptions === void 0) { toastOptions = {}; }
27
+ var LoadingNotifToastContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n"])));
28
+ var genToastOptions = function (type, toastOptions) {
29
29
  var stylingByType = toastTypeStyles[type];
30
30
  var _toastOptions = __assign({ duration: defaultDuration, position: defaultPosition, style: {
31
31
  background: stylingByType.backgroundColor,
32
32
  color: stylingByType.color,
33
33
  }, icon: stylingByType.icon }, toastOptions);
34
+ return _toastOptions;
35
+ };
36
+ export var addToast = function (msg, type, toastOptions) {
37
+ if (type === void 0) { type = "notification"; }
38
+ if (toastOptions === void 0) { toastOptions = {}; }
39
+ var _toastOptions = genToastOptions(type, toastOptions);
34
40
  toast(msg, _toastOptions);
35
41
  };
42
+ export var addLoadingToast = function (msg, helperMsg, toastOptions, minW) {
43
+ if (toastOptions === void 0) { toastOptions = {}; }
44
+ if (minW === void 0) { minW = 320; }
45
+ var _toastOptions = genToastOptions("loadingNotification", toastOptions);
46
+ var message = msg;
47
+ if (msg && helperMsg) {
48
+ message = (_jsxs(LoadingNotifToastContainer, __assign({ minw: minW }, { children: [_jsx("span", { children: msg }), " ", _jsx("span", { children: helperMsg })] })));
49
+ }
50
+ toast(message, _toastOptions);
51
+ };
36
52
  var toastContainerCss = {
37
53
  padding: 0,
38
54
  marginRight: 72,
@@ -66,11 +82,16 @@ var toastTypeStyles = {
66
82
  backgroundColor: colors.black,
67
83
  icon: notificationCheckIcon,
68
84
  },
85
+ loadingNotification: {
86
+ color: colors.white,
87
+ backgroundColor: colors.black,
88
+ icon: _jsx(CircleSpinner, {}),
89
+ },
69
90
  };
70
- var ToastWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n padding: 10px;\n box-shadow: 0px 2px 8px 1px rgba(0, 0, 0, 0.1);\n border-radius: ", "px;\n ", ";\n"], ["\n padding: 10px;\n box-shadow: 0px 2px 8px 1px rgba(0, 0, 0, 0.1);\n border-radius: ", "px;\n ", ";\n"])), toastBorderRadius, function (p) { return p.theme.css.alignCenter; });
71
- var IconWrapper = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin-right: 10px;\n"], ["\n margin-right: 10px;\n"])));
91
+ var ToastWrapper = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n padding: 10px;\n box-shadow: 0px 2px 8px 1px rgba(0, 0, 0, 0.1);\n border-radius: ", "px;\n ", ";\n"], ["\n padding: 10px;\n box-shadow: 0px 2px 8px 1px rgba(0, 0, 0, 0.1);\n border-radius: ", "px;\n ", ";\n"])), toastBorderRadius, function (p) { return p.theme.css.alignCenter; });
92
+ var IconWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin-right: 10px;\n"], ["\n margin-right: 10px;\n"])));
72
93
  var Toast = function (_a) {
73
- var zIndex = _a.zIndex;
94
+ var zIndex = _a.zIndex, toastStyle = _a.toastStyle;
74
95
  return (_jsx(Toaster, __assign({ toastOptions: {
75
96
  style: toastContainerCss,
76
97
  }, containerStyle: {
@@ -78,9 +99,9 @@ var Toast = function (_a) {
78
99
  } }, { children: function (t) { return (_jsx(ToastBar, __assign({ toast: t }, { children: function (_a) {
79
100
  var message = _a.message, hotToastIcon = _a.icon;
80
101
  var _b = toastTypeStyles[t.type] || {}, icon = _b.icon, color = _b.color, backgroundColor = _b.backgroundColor;
81
- return (_jsxs(ToastWrapper, __assign({ c: color, bg: backgroundColor }, { children: [_jsx(IconWrapper, __assign({ alignCenter: true }, { children: icon || hotToastIcon })), _jsx(Div, __assign({ alignCenter: true }, { children: message })), _jsx(Div, __assign({ p: 5, clickable: true, onClick: function () { return toast.dismiss(t.id); } }, { children: closeIcon }))] })));
102
+ return (_jsxs(ToastWrapper, __assign({ c: color, bg: backgroundColor, style: toastStyle }, { children: [_jsx(IconWrapper, __assign({ alignCenter: true }, { children: icon || hotToastIcon })), _jsx(Div, __assign({ alignCenter: true }, { children: message })), _jsx(Div, __assign({ p: 5, clickable: true, onClick: function () { return toast.dismiss(t.id); } }, { children: closeIcon }))] })));
82
103
  } }))); } })));
83
104
  };
84
105
  export { Toast };
85
106
  var closeIcon = (_jsxs("svg", __assign({ width: "10", height: "10", viewBox: "0 0 10 10", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M2.5 2.5L7.82258 7.82258", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M2.5 7.82251L7.82258 2.49993", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] })));
86
- var templateObject_1, templateObject_2;
107
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -14,9 +14,9 @@ import { useTheme } from "styled-components";
14
14
  export var closeIcon = (_jsxs("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M6 6.00003L18.7742 18.7742", stroke: "black", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M6 18.7742L18.7742 6.00001", stroke: "black", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] })));
15
15
  export var closeIconCondensed = (_jsxs("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M6 6.00003L18.7742 18.7742", stroke: "#333333", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M6 18.7742L18.7742 6.00001", stroke: "#333333", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" })] })));
16
16
  export var checkIcon = (_jsx("svg", __assign({ width: "12", height: "10", viewBox: "0 0 12 10", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M1.37805 5.80142L3.94469 8.28708L10.6827 1.52003", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) })));
17
- export var greenCheckIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM9.70711 11.2426C9.31658 10.8521 8.68342 10.8521 8.29289 11.2426C7.90237 11.6331 7.90237 12.2663 8.29289 12.6568L10.4142 14.7781L11.1213 15.4852L11.8284 14.7781L16.0711 10.5355C16.4616 10.145 16.4616 9.5118 16.0711 9.12128C15.6805 8.73076 15.0474 8.73076 14.6569 9.12128L11.1213 12.6568L9.70711 11.2426Z", fill: "#025F40" }) })));
18
- export var redXIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071Z", fill: "#5C1008" }) })));
19
- export var warningIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM12 6C12.5523 6 13 6.44772 13 7V12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12V7C11 6.44772 11.4477 6 12 6ZM12 15C12.5523 15 13 15.4477 13 16V16.5C13 17.0523 12.5523 17.5 12 17.5C11.4477 17.5 11 17.0523 11 16.5V16C11 15.4477 11.4477 15 12 15Z", fill: "#78430D" }) })));
17
+ export var greenCheckIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM9.70711 11.2426C9.31658 10.8521 8.68342 10.8521 8.29289 11.2426C7.90237 11.6331 7.90237 12.2663 8.29289 12.6568L10.4142 14.7781L11.1213 15.4852L11.8284 14.7781L16.0711 10.5355C16.4616 10.145 16.4616 9.5118 16.0711 9.12128C15.6805 8.73076 15.0474 8.73076 14.6569 9.12128L11.1213 12.6568L9.70711 11.2426Z", fill: "#025F40" }) })));
18
+ export var redXIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM8.29289 15.7071C7.90237 15.3166 7.90237 14.6834 8.29289 14.2929L10.5858 12L8.29289 9.70711C7.90237 9.31658 7.90237 8.68342 8.29289 8.29289C8.68342 7.90237 9.31658 7.90237 9.70711 8.29289L12 10.5858L14.2929 8.29289C14.6834 7.90237 15.3166 7.90237 15.7071 8.29289C16.0976 8.68342 16.0976 9.31658 15.7071 9.70711L13.4142 12L15.7071 14.2929C16.0976 14.6834 16.0976 15.3166 15.7071 15.7071C15.3166 16.0976 14.6834 16.0976 14.2929 15.7071L12 13.4142L9.70711 15.7071C9.31658 16.0976 8.68342 16.0976 8.29289 15.7071Z", fill: "#5C1008" }) })));
19
+ export var warningIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12 23C18.0751 23 23 18.0751 23 12C23 5.92487 18.0751 1 12 1C5.92487 1 1 5.92487 1 12C1 18.0751 5.92487 23 12 23ZM12 6C12.5523 6 13 6.44772 13 7V12C13 12.5523 12.5523 13 12 13C11.4477 13 11 12.5523 11 12V7C11 6.44772 11.4477 6 12 6ZM12 15C12.5523 15 13 15.4477 13 16V16.5C13 17.0523 12.5523 17.5 12 17.5C11.4477 17.5 11 17.0523 11 16.5V16C11 15.4477 11.4477 15 12 15Z", fill: "#78430D" }) })));
20
20
  export var infoIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M12 17.5C12.3117 17.5 12.5729 17.3946 12.7837 17.1838C12.9946 16.9729 13.1 16.7117 13.1 16.4V12C13.1 11.6883 12.9946 11.4271 12.7837 11.2163C12.5729 11.0054 12.3117 10.9 12 10.9C11.6883 10.9 11.4271 11.0054 11.2163 11.2163C11.0054 11.4271 10.9 11.6883 10.9 12V16.4C10.9 16.7117 11.0054 16.9729 11.2163 17.1838C11.4271 17.3946 11.6883 17.5 12 17.5ZM12 8.7C12.3117 8.7 12.5729 8.59458 12.7837 8.38375C12.9946 8.17292 13.1 7.91167 13.1 7.6C13.1 7.28833 12.9946 7.02708 12.7837 6.81625C12.5729 6.60542 12.3117 6.5 12 6.5C11.6883 6.5 11.4271 6.60542 11.2163 6.81625C11.0054 7.02708 10.9 7.28833 10.9 7.6C10.9 7.91167 11.0054 8.17292 11.2163 8.38375C11.4271 8.59458 11.6883 8.7 12 8.7ZM12 23C10.4783 23 9.04833 22.7113 7.71 22.1337C6.37167 21.5562 5.2075 20.7725 4.2175 19.7825C3.2275 18.7925 2.44375 17.6283 1.86625 16.29C1.28875 14.9517 1 13.5217 1 12C1 10.4783 1.28875 9.04833 1.86625 7.71C2.44375 6.37167 3.2275 5.2075 4.2175 4.2175C5.2075 3.2275 6.37167 2.44375 7.71 1.86625C9.04833 1.28875 10.4783 1 12 1C13.5217 1 14.9517 1.28875 16.29 1.86625C17.6283 2.44375 18.7925 3.2275 19.7825 4.2175C20.7725 5.2075 21.5562 6.37167 22.1337 7.71C22.7113 9.04833 23 10.4783 23 12C23 13.5217 22.7113 14.9517 22.1337 16.29C21.5562 17.6283 20.7725 18.7925 19.7825 19.7825C18.7925 20.7725 17.6283 21.5562 16.29 22.1337C14.9517 22.7113 13.5217 23 12 23Z", fill: "#025B5B" }) })));
21
21
  export var notificationCheckIcon = (_jsx("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M4 12.3137L9.65685 17.9706L20.9706 6.65687", stroke: "white", "stroke-width": "2", "stroke-linecap": "round" }) })));
22
22
  export var defaultCheckIcon = (_jsxs("svg", __assign({ width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("circle", { cx: "12", cy: "12", r: "11", stroke: "currentColor", strokeWidth: "2" }), _jsx("path", { d: "M9 11.9497L11.1213 14.071L15.364 9.82839", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" })] })));
@@ -56,7 +56,7 @@ var Autocomplete = function (_a) {
56
56
  var _k = useState(false), isTyping = _k[0], setIsTyping = _k[1];
57
57
  var t = useTranslation().t;
58
58
  useEffect(function () {
59
- if (value)
59
+ if (value !== null && value !== undefined)
60
60
  setText(selectedLabel);
61
61
  else
62
62
  setText("");