fuse-importer 0.1.4-testing → 0.1.5-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.
- package/lib/esm/Importer/ImporterWithContext.js +38 -7
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +1 -1
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +4 -3
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +14 -9
- package/lib/esm/Importer/PreviewFirstTime.js +1 -1
- package/lib/esm/Importer/Review/ReviewContextProvider.d.ts +6 -6
- package/lib/esm/Importer/Review/ReviewContextProvider.js +51 -223
- package/lib/esm/Importer/Review/ReviewWithContext.js +2 -2
- package/lib/esm/Importer/Stepper/StepperSubmitModal.d.ts +2 -1
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +4 -2
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +1 -1
- package/lib/esm/Importer/Stepper/index.js +20 -69
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.d.ts +2 -1
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +14 -86
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +11 -3
- package/lib/esm/Importer/Uploader/HeadersPreview.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/DataSetContextProvider/index.d.ts +16 -0
- package/lib/esm/Importer/common/Spreadsheet/DataSetContextProvider/index.js +63 -0
- package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.d.ts +18 -0
- package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.js +101 -0
- package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.d.ts +29 -0
- package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.js +150 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.d.ts +6 -4
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +37 -37
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.d.ts +6 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.js +138 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.d.ts +7 -29
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +11 -193
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.js +72 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.d.ts +4 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.js +46 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +2 -1
- package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.d.ts +31 -0
- package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.js +304 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +5 -4
- package/lib/esm/Importer/common/Spreadsheet/common/types.d.ts +2 -3
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.d.ts +0 -2
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +26 -11
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +21 -13
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +35 -36
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +3 -3
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +5 -1
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +43 -17
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +1 -2
- package/lib/esm/Importer/common/Spreadsheet/index.d.ts +0 -1
- package/lib/esm/Importer/common/Spreadsheet/index.js +1 -84
- package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +1 -2
- package/lib/esm/Importer/common/Spreadsheet/styles.js +13 -1
- package/lib/esm/Importer/common/Spreadsheet/useFieldSorting.d.ts +5 -0
- package/lib/esm/Importer/common/Spreadsheet/useFieldSorting.js +81 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.d.ts +5 -3
- package/lib/esm/Importer/common/Spreadsheet/validation/index.js +13 -17
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.d.ts +3 -2
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +16 -7
- package/lib/esm/Importer/contexts/ImporterContextProvider.d.ts +4 -2
- package/lib/esm/Importer/contexts/ImporterContextProvider.js +121 -13
- package/lib/esm/Importer/data/index.js +7 -5
- package/lib/esm/Importer/hooks/useExportDataToFile.d.ts +5 -0
- package/lib/esm/Importer/hooks/useExportDataToFile.js +54 -0
- package/lib/esm/Importer/hooks/useSubmitToServer.d.ts +7 -0
- package/lib/esm/Importer/hooks/useSubmitToServer.js +192 -0
- package/lib/esm/common/EventManagerContextProvider/index.d.ts +22 -0
- package/lib/esm/common/EventManagerContextProvider/index.js +38 -0
- package/lib/esm/common/FileUploadDropzone/ImporterDropzone.d.ts +16 -0
- package/lib/esm/common/FileUploadDropzone/ImporterDropzone.js +108 -0
- package/lib/esm/common/FileUploadDropzone/index.d.ts +1 -0
- package/lib/esm/common/FileUploadDropzone/index.js +1 -0
- package/lib/esm/common/Table/TableActions/CustomActions/CustomActions.js +55 -41
- package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +25 -16
- package/lib/esm/common/Table/TableActions/ExportData.js +5 -3
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +36 -9
- package/lib/esm/common/Table/TableActions/RowFilters.js +53 -5
- package/lib/esm/common/Table/TableActions/SearchRows.js +3 -1
- package/lib/esm/common/Table/TableActions/TableActions.js +2 -1
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +16 -9
- package/lib/esm/common/Table/TableActions/ValidationProgress.d.ts +2 -0
- package/lib/esm/common/Table/TableActions/ValidationProgress.js +22 -0
- package/lib/esm/common/Table/TableView/TableRows/TableRow.d.ts +1 -1
- package/lib/esm/common/Table/TableView/TableRows/TableRow.js +2 -2
- package/lib/esm/common/Table/TableView/TableRows/index.js +21 -6
- package/lib/esm/common/Table/TableView/index.d.ts +1 -1
- package/lib/esm/common/Table/TableView/index.js +6 -15
- package/lib/esm/common/Table/TableView/types.d.ts +8 -9
- package/lib/esm/common/Table/index.d.ts +2 -1
- package/lib/esm/common/Table/index.js +2 -2
- package/lib/esm/common/Toast.js +3 -2
- package/lib/esm/common/TooltipProvider.d.ts +2 -0
- package/lib/esm/common/TooltipProvider.js +12 -9
- package/lib/esm/common/buttons.d.ts +5 -1
- package/lib/esm/common/buttons.js +13 -7
- package/lib/esm/common/columnsTransformations.js +1 -1
- package/lib/esm/common/icons/index.d.ts +1 -0
- package/lib/esm/common/icons/index.js +1 -0
- package/lib/esm/common/index.d.ts +1 -0
- package/lib/esm/common/index.js +1 -0
- package/lib/esm/common/inputs/Autocomplete.js +1 -1
- package/lib/esm/locales/de.d.ts +1 -1
- package/lib/esm/locales/de.js +1 -1
- package/lib/esm/locales/en.d.ts +1 -1
- package/lib/esm/locales/en.js +4 -4
- package/lib/esm/locales/es.d.ts +1 -1
- package/lib/esm/locales/es.js +1 -1
- package/lib/esm/locales/fr.d.ts +1 -1
- package/lib/esm/locales/fr.js +1 -1
- package/lib/esm/types.d.ts +20 -5
- package/lib/main.js +2 -2
- package/package.json +6 -4
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.d.ts +0 -8
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +0 -36
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.d.ts +0 -5
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +0 -19
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.d.ts +0 -3
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +0 -14
- package/lib/esm/Importer/common/Spreadsheet/hooks.d.ts +0 -33
- package/lib/esm/Importer/common/Spreadsheet/hooks.js +0 -256
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.d.ts +0 -11
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +0 -35
- package/lib/esm/common/Table/TableActions/hooks.d.ts +0 -18
- package/lib/esm/common/Table/TableActions/hooks.js +0 -41
|
@@ -1,15 +1,44 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
3
|
-
import { useSpreadsheetContext } from "../../../../Importer";
|
|
4
|
-
import { formatErrors, getUniqueErrors } from "./functions";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
5
3
|
import { useTranslation } from "react-i18next";
|
|
4
|
+
import { useSpreadsheetContext } from "../../../../Importer";
|
|
5
|
+
import { useFilteredDataContext } from "../../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
6
|
+
import { useValidationContext } from "../../../../Importer/common/Spreadsheet/ValidationContextProvider";
|
|
6
7
|
import { addToast } from "../../../../common/Toast";
|
|
7
|
-
import {
|
|
8
|
+
import { useEventManagerContext } from "../../../EventManagerContextProvider";
|
|
9
|
+
import * as S from "./FilterByErrors.styles";
|
|
8
10
|
export var FilterByErrors = function () {
|
|
9
11
|
var _a, _b;
|
|
10
|
-
var _c =
|
|
12
|
+
var _c = useFilteredDataContext(), spreadsheetFilter = _c.spreadsheetFilter, resetSpreadsheetFilter = _c.resetSpreadsheetFilter, filterRecordsByFieldErrors = _c.filterRecordsByFieldErrors;
|
|
13
|
+
var _d = useEventManagerContext(), on = _d.on, off = _d.off, EVENTS = _d.EVENTS;
|
|
14
|
+
var _e = useSpreadsheetContext(), fields = _e.fields, isTransformTooltipOpened = _e.isTransformTooltipOpened;
|
|
15
|
+
var columnsWithErrorCounts = useValidationContext().columnsWithErrorCounts;
|
|
11
16
|
var t = useTranslation("review").t;
|
|
12
|
-
var
|
|
17
|
+
var _f = useState([]), errorArray = _f[0], setErrorArray = _f[1];
|
|
18
|
+
var _g = useState(false), isMenuOpened = _g[0], setIsMenuOpened = _g[1];
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
var listener = function () {
|
|
21
|
+
var getErrorArray = function () {
|
|
22
|
+
var errorArray = [];
|
|
23
|
+
var _loop_1 = function (key, value) {
|
|
24
|
+
if (value > 0) {
|
|
25
|
+
var field = fields.find(function (f) { return f.name === key; });
|
|
26
|
+
errorArray.push({ label: field.label, value: field.name });
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
for (var _i = 0, _a = Object.entries(columnsWithErrorCounts.current); _i < _a.length; _i++) {
|
|
30
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
31
|
+
_loop_1(key, value);
|
|
32
|
+
}
|
|
33
|
+
return errorArray;
|
|
34
|
+
};
|
|
35
|
+
setErrorArray(getErrorArray());
|
|
36
|
+
};
|
|
37
|
+
on(EVENTS.UPDATE_COLUMN_ERROR_COUNT, listener);
|
|
38
|
+
return function () {
|
|
39
|
+
off(EVENTS.UPDATE_COLUMN_ERROR_COUNT, listener);
|
|
40
|
+
};
|
|
41
|
+
}, []);
|
|
13
42
|
var prefix = t("table_actions.filter_by_errors.filter_by_errors");
|
|
14
43
|
var search_or_select = t("table_actions.filter_by_errors.search_or_select");
|
|
15
44
|
var selectedErrorToFilter = ((_a = spreadsheetFilter === null || spreadsheetFilter === void 0 ? void 0 : spreadsheetFilter.byColumn) === null || _a === void 0 ? void 0 : _a.field) || null;
|
|
@@ -23,14 +52,12 @@ export var FilterByErrors = function () {
|
|
|
23
52
|
if (selected) {
|
|
24
53
|
var label = getSelectedErrorLabel(selected);
|
|
25
54
|
filterRecordsByFieldErrors(selected);
|
|
26
|
-
addToast("Showing
|
|
55
|
+
addToast("Showing rows with an error in the ".concat(label, " column"), "success");
|
|
27
56
|
}
|
|
28
57
|
else {
|
|
29
58
|
resetSpreadsheetFilter();
|
|
30
59
|
}
|
|
31
60
|
};
|
|
32
|
-
var uniqueErrors = getUniqueErrors(fields, errors);
|
|
33
|
-
var errorArray = formatErrors(fields, uniqueErrors);
|
|
34
61
|
// the average size of each character in the input (in px)
|
|
35
62
|
var widthPerCharacter = 5.8;
|
|
36
63
|
var amountOfCharacters = prefix.length + ((_b = getSelectedErrorLabel(selectedErrorToFilter)) === null || _b === void 0 ? void 0 : _b.length);
|
|
@@ -14,10 +14,16 @@ var __assign = (this && this.__assign) || function () {
|
|
|
14
14
|
return __assign.apply(this, arguments);
|
|
15
15
|
};
|
|
16
16
|
import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import { useEffect, useState } from "react";
|
|
18
|
+
import { useTranslation } from "react-i18next";
|
|
17
19
|
import styled, { css } from "styled-components";
|
|
18
20
|
import { useSpreadsheetContext } from "../../../Importer";
|
|
21
|
+
import { useDataSetContext } from "../../../Importer/common/Spreadsheet/DataSetContextProvider";
|
|
22
|
+
import { useDuplicateDataContext } from "../../../Importer/common/Spreadsheet/DuplicateDataContextProvider";
|
|
23
|
+
import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
24
|
+
import { useValidationContext } from "../../../Importer/common/Spreadsheet/ValidationContextProvider";
|
|
19
25
|
import { Div } from "../../../styled";
|
|
20
|
-
import {
|
|
26
|
+
import { useEventManagerContext } from "../../EventManagerContextProvider";
|
|
21
27
|
var FilterContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n ", ";\n ", "\n"], ["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n ", ";\n ", "\n"])), function (p) { return p.theme.css.body3; }, function (p) {
|
|
22
28
|
return p.isSelected && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n color: ", ";\n border-radius: 4px;\n "], ["\n background: ", ";\n color: ", ";\n border-radius: 4px;\n "])), function (p) { return p.theme.colors.black; }, function (p) { return p.theme.colors.white; });
|
|
23
29
|
});
|
|
@@ -29,18 +35,60 @@ var Wrapper = styled(Div)(templateObject_5 || (templateObject_5 = __makeTemplate
|
|
|
29
35
|
var FilteredDataCount = styled(Div)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background: ", ";\n color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n margin-left: -3px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n"], ["\n background: ", ";\n color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n margin-left: -3px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n"])), function (p) { return p.theme.colors.highlight01; }, function (p) { return p.theme.colors.black; });
|
|
30
36
|
var Filter = function (_a) {
|
|
31
37
|
var label = _a.label, count = _a.count, isSelected = _a.isSelected, onClick = _a.onClick, isDisabled = _a.isDisabled;
|
|
32
|
-
var _b =
|
|
38
|
+
var _b = useFilteredDataContext(), filteredInputValue = _b.filteredInputValue, filteredDataIds = _b.filteredDataIds;
|
|
33
39
|
var labelToId = function (label) {
|
|
34
40
|
return label.toLowerCase().replace(/\s/g, "_") + "_filter";
|
|
35
41
|
};
|
|
36
|
-
return (_jsxs(Div, __assign({ disabledWhen: isDisabled, dflex: true, clickable: true, onClick: function () { return !isDisabled && onClick(); }, "data-test-id": labelToId(label) }, { children: [_jsxs(FilterContainer, __assign({ isSelected: isSelected }, { children: [label, count >= 0 && _jsxs(_Fragment, { children: ["\u00A0(", count, ")"] })] })), isSelected && filteredInputValue !== "" && (_jsx(FilteredDataCount, { children: _jsx(Div, __assign({ minw: 14, centered: true }, { children:
|
|
42
|
+
return (_jsxs(Div, __assign({ disabledWhen: isDisabled, dflex: true, clickable: true, onClick: function () { return !isDisabled && onClick(); }, "data-test-id": labelToId(label) }, { children: [_jsxs(FilterContainer, __assign({ isSelected: isSelected }, { children: [label, count >= 0 && _jsxs(_Fragment, { children: ["\u00A0(", count.toLocaleString(), ")"] })] })), isSelected && filteredInputValue !== "" && (_jsx(FilteredDataCount, { children: _jsx(Div, __assign({ minw: 14, centered: true }, { children: filteredDataIds.length })) }))] })));
|
|
37
43
|
};
|
|
38
44
|
export var RowFilters = function () {
|
|
39
|
-
var _a =
|
|
45
|
+
var _a = useFilteredDataContext(), spreadsheetFilter = _a.spreadsheetFilter, filterRecordsByRowType = _a.filterRecordsByRowType;
|
|
46
|
+
var _b = useDuplicateDataContext(), duplicateRecordIds = _b.duplicateRecordIds, calculateDuplicateRecords = _b.calculateDuplicateRecords;
|
|
47
|
+
var invalidRowsCountRef = useValidationContext().invalidRowsCountRef;
|
|
48
|
+
var isTransformTooltipOpened = useSpreadsheetContext().isTransformTooltipOpened;
|
|
49
|
+
var _c = useState(invalidRowsCountRef.current), invalidRowsCount = _c[0], setInvalidRowsCount = _c[1];
|
|
50
|
+
var _d = useDataSetContext(), dataSetLength = _d.dataSetLength, emptyRecordIds = _d.emptyRecordIds;
|
|
51
|
+
var _e = useEventManagerContext(), on = _e.on, off = _e.off, EVENTS = _e.EVENTS;
|
|
40
52
|
var t = useTranslation("review").t;
|
|
41
53
|
var all_rows = t("table_actions.filters_by_rows.all_rows");
|
|
42
54
|
var invalid_rows = t("table_actions.filters_by_rows.invalid_rows");
|
|
43
55
|
var duplicates = t("table_actions.filters_by_rows.duplicates");
|
|
44
|
-
|
|
56
|
+
var _f = useState(0), recordsWithValuesCount = _f[0], setRecordsWithValuesCount = _f[1];
|
|
57
|
+
var calculateRecordsWithValuesCount = function () {
|
|
58
|
+
setRecordsWithValuesCount(dataSetLength.current - emptyRecordIds.current.size);
|
|
59
|
+
};
|
|
60
|
+
useEffect(function () {
|
|
61
|
+
var listener = function () {
|
|
62
|
+
setInvalidRowsCount(invalidRowsCountRef.current);
|
|
63
|
+
};
|
|
64
|
+
on(EVENTS.UPDATE_TOTAL_ERROR_COUNT, listener);
|
|
65
|
+
return function () {
|
|
66
|
+
off(EVENTS.UPDATE_TOTAL_ERROR_COUNT, listener);
|
|
67
|
+
};
|
|
68
|
+
}, []);
|
|
69
|
+
useEffect(function () {
|
|
70
|
+
calculateRecordsWithValuesCount();
|
|
71
|
+
on(EVENTS.UPDATE_TOTAL_ROW_COUNT, calculateRecordsWithValuesCount);
|
|
72
|
+
return function () {
|
|
73
|
+
off(EVENTS.UPDATE_TOTAL_ROW_COUNT, calculateRecordsWithValuesCount);
|
|
74
|
+
};
|
|
75
|
+
}, []);
|
|
76
|
+
var onDuplicatesSelected = function () {
|
|
77
|
+
calculateDuplicateRecords();
|
|
78
|
+
filterRecordsByRowType("duplicates");
|
|
79
|
+
};
|
|
80
|
+
var onAllSelected = function () {
|
|
81
|
+
if (spreadsheetFilter.byRow === "duplicates") {
|
|
82
|
+
calculateDuplicateRecords();
|
|
83
|
+
}
|
|
84
|
+
filterRecordsByRowType("all");
|
|
85
|
+
};
|
|
86
|
+
var onInvalidSelected = function () {
|
|
87
|
+
if (spreadsheetFilter.byRow === "duplicates") {
|
|
88
|
+
calculateDuplicateRecords();
|
|
89
|
+
}
|
|
90
|
+
filterRecordsByRowType("invalid");
|
|
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(); } })] }) })));
|
|
45
93
|
};
|
|
46
94
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
@@ -24,6 +24,7 @@ import { textStyles } from "../../../styled/theme/textStyles";
|
|
|
24
24
|
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
25
25
|
import { useTranslation } from "react-i18next";
|
|
26
26
|
import { Div } from "../../../styled";
|
|
27
|
+
import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
27
28
|
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) {
|
|
28
29
|
var isOpen = _a.isOpen;
|
|
29
30
|
return (isOpen ? colors.orange50 : "none");
|
|
@@ -64,7 +65,8 @@ var SearchInput = function (_a) {
|
|
|
64
65
|
};
|
|
65
66
|
export var SearchRows = function (_a) {
|
|
66
67
|
var _b = _a.testId, testId = _b === void 0 ? "ta-search-rows" : _b;
|
|
67
|
-
var _c =
|
|
68
|
+
var _c = useFilteredDataContext(), filteredInputValue = _c.filteredInputValue, setFilteredInputValue = _c.setFilteredInputValue;
|
|
69
|
+
var isTransformTooltipOpened = useSpreadsheetContext().isTransformTooltipOpened;
|
|
68
70
|
var handleChangeInputValue = function (value) {
|
|
69
71
|
setFilteredInputValue(value);
|
|
70
72
|
};
|
|
@@ -30,7 +30,8 @@ import { FilterByErrors } from "./FilterByErrors/FilterByErrors";
|
|
|
30
30
|
import { RowFilters } from "./RowFilters";
|
|
31
31
|
import { TransformedRecordsCount } from "./TransformedRecordsCount";
|
|
32
32
|
import { CustomActions } from "./CustomActions";
|
|
33
|
+
import ValidationProgress from "./ValidationProgress";
|
|
33
34
|
export var TableActions = function (_a) {
|
|
34
35
|
var _b = _a.tableActionsHeight, tableActionsHeight = _b === void 0 ? defaultTableActionsHeightPx : _b, props = __rest(_a, ["tableActionsHeight"]);
|
|
35
|
-
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, {})] })] }),
|
|
36
|
+
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, {}), _jsx(TransformedRecordsCount, {})] })] })));
|
|
36
37
|
};
|
|
@@ -22,6 +22,8 @@ import { Div, colors } from "../../../styled";
|
|
|
22
22
|
import { CheckIcon } from "./icons";
|
|
23
23
|
import { Button } from "../../../common/buttons";
|
|
24
24
|
import { truncateString } from "../../../utils";
|
|
25
|
+
import { useDataSetContext } from "../../../Importer/common/Spreadsheet/DataSetContextProvider";
|
|
26
|
+
import { useValidationContext } from "../../../Importer/common/Spreadsheet/ValidationContextProvider";
|
|
25
27
|
var formatToLocaleString = function (number) {
|
|
26
28
|
return number.toLocaleString(undefined, {
|
|
27
29
|
minimumFractionDigits: 0,
|
|
@@ -41,37 +43,42 @@ var Tooltip = function (_a) {
|
|
|
41
43
|
}) })), transformedRowData && (_jsxs(Div, { children: [_jsx(Div, __assign({ mb: 5, label1: true, style: { color: colors.gray700 } }, { children: t("table_actions.transformed_records.example") })), _jsxs(ExampleCode, { children: [_jsx(Div, __assign({ body1: true }, { children: truncateString(transformedRowData === null || transformedRowData === void 0 ? void 0 : transformedRowData.transformed, 15) })), _jsx(Div, __assign({ body1: true, style: { textDecoration: "line-through" } }, { children: truncateString(transformedRowData === null || transformedRowData === void 0 ? void 0 : transformedRowData.original, 15) }))] })] })), _jsx(StyledButton, __assign({ buttonTextSmall: true, uppercase: true, onClick: onClose }, { children: "OK" }))] })));
|
|
42
44
|
};
|
|
43
45
|
export var TransformedRecordsCount = function () {
|
|
44
|
-
var _a = useSpreadsheetContext(),
|
|
46
|
+
var _a = useSpreadsheetContext(), filteredDataIds = _a.filteredDataIds, isTransformTooltipOpened = _a.isTransformTooltipOpened, setIsTransformTooltipOpened = _a.setIsTransformTooltipOpened;
|
|
47
|
+
var spreadsheetInitialized = useValidationContext().spreadsheetInitialized;
|
|
48
|
+
var getRecord = useDataSetContext().getRecord;
|
|
45
49
|
var t = useTranslation("review").t;
|
|
46
50
|
var tooltipWasAlreadyOpened = useRef(false);
|
|
47
51
|
var transformedRecordsCount = useMemo(function () {
|
|
48
52
|
var _a;
|
|
53
|
+
if (tooltipWasAlreadyOpened.current)
|
|
54
|
+
return;
|
|
49
55
|
var counter = 0;
|
|
50
|
-
for (var i = 0; i <
|
|
51
|
-
var currentData =
|
|
56
|
+
for (var i = 0; i < filteredDataIds.length; i++) {
|
|
57
|
+
var currentData = getRecord(filteredDataIds[i]);
|
|
52
58
|
var transformedObj = (_a = currentData === null || currentData === void 0 ? void 0 : currentData._meta) === null || _a === void 0 ? void 0 : _a.transformedRow;
|
|
53
59
|
if (transformedObj) {
|
|
54
60
|
counter += Object.keys(transformedObj).length;
|
|
55
61
|
}
|
|
56
62
|
}
|
|
57
63
|
return counter;
|
|
58
|
-
}, [
|
|
64
|
+
}, [filteredDataIds]);
|
|
59
65
|
useEffect(function () {
|
|
60
|
-
if (tooltipWasAlreadyOpened.current)
|
|
66
|
+
if (tooltipWasAlreadyOpened.current || !spreadsheetInitialized)
|
|
61
67
|
return;
|
|
62
68
|
if (transformedRecordsCount > 0 && !isTransformTooltipOpened) {
|
|
63
69
|
setIsTransformTooltipOpened(true);
|
|
64
70
|
tooltipWasAlreadyOpened.current = true;
|
|
65
71
|
}
|
|
66
|
-
}, [transformedRecordsCount]);
|
|
72
|
+
}, [transformedRecordsCount, spreadsheetInitialized]);
|
|
67
73
|
var handleCloseTooltip = function () {
|
|
68
74
|
setIsTransformTooltipOpened(false);
|
|
69
75
|
};
|
|
70
76
|
var firstTransformedRow = useMemo(function () {
|
|
71
77
|
var _a;
|
|
72
|
-
for (var _i = 0,
|
|
73
|
-
var
|
|
74
|
-
var
|
|
78
|
+
for (var _i = 0, filteredDataIds_1 = filteredDataIds; _i < filteredDataIds_1.length; _i++) {
|
|
79
|
+
var id = filteredDataIds_1[_i];
|
|
80
|
+
var record = getRecord(id);
|
|
81
|
+
var transformedRow = (_a = record === null || record === void 0 ? void 0 : record._meta) === null || _a === void 0 ? void 0 : _a.transformedRow;
|
|
75
82
|
if (transformedRow && Object.keys(transformedRow).length > 0) {
|
|
76
83
|
return Object.values(transformedRow)[0];
|
|
77
84
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { useSpreadsheetContext } from "../../../Importer/common/Spreadsheet/SpreadsheetContextProvider";
|
|
14
|
+
import { useValidationContext } from "../../../Importer/common/Spreadsheet/ValidationContextProvider";
|
|
15
|
+
import { Div, Span } from "../../../styled/utils";
|
|
16
|
+
var ValidationProgress = function () {
|
|
17
|
+
var isReadOnly = useSpreadsheetContext().isReadOnly;
|
|
18
|
+
var validationPercentage = useValidationContext().validationPercentage;
|
|
19
|
+
var showValidationProgress = !isReadOnly && validationPercentage < 100;
|
|
20
|
+
return (_jsx(_Fragment, { children: showValidationProgress ? (_jsxs(Div, __assign({ w: 250, textAlignRight: true }, { children: ["Processing Data...", _jsxs(Span, __assign({ bold: true, ml: 5 }, { children: [validationPercentage, "%"] }))] }))) : (_jsx(_Fragment, {})) }));
|
|
21
|
+
};
|
|
22
|
+
export default ValidationProgress;
|
|
@@ -12,7 +12,7 @@ type Props = Pick<TableViewProps, "columns" | "onRowClick"> & {
|
|
|
12
12
|
rowWidth: number;
|
|
13
13
|
indexI: number;
|
|
14
14
|
isLast?: boolean;
|
|
15
|
-
getItemKey?: (
|
|
15
|
+
getItemKey?: (id: string) => string;
|
|
16
16
|
isRowSelected?: boolean;
|
|
17
17
|
} & DivCSSProps;
|
|
18
18
|
export declare const TableRow: ({ row, indexI, columns, isLast, onRowClick, getItemKey, rowWidth, isRowSelected, ...props }: Props) => JSX.Element;
|
|
@@ -34,7 +34,7 @@ export var Cell = React.memo(function (props) {
|
|
|
34
34
|
var children = props.children, cellProps = __rest(props, ["children"]);
|
|
35
35
|
return (_jsx(TableViewCellContainer, __assign({}, cellProps, { children: children })));
|
|
36
36
|
}, areEqual);
|
|
37
|
-
export var TableViewRow = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: white;\n ", "\n ", "\n"], ["\n background-color: white;\n ", "\n ", "\n"])), function (p) {
|
|
37
|
+
export var TableViewRow = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: white;\n ", "\n ", "\n\n &:hover {\n .shouldBeVisibleOnHover {\n opacity: 1;\n transition: opacity 0.25s ease;\n visibility: visible;\n }\n }\n"], ["\n background-color: white;\n ", "\n ", "\n\n &:hover {\n .shouldBeVisibleOnHover {\n opacity: 1;\n transition: opacity 0.25s ease;\n visibility: visible;\n }\n }\n"])), function (p) {
|
|
38
38
|
return !p.isLast && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n box-shadow: inset 0 -1px 0 ", ";\n "], ["\n box-shadow: inset 0 -1px 0 ", ";\n "])), function (p) { return p.theme.colors.gray300; });
|
|
39
39
|
}, function (p) {
|
|
40
40
|
return p.isHighlighted && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background: ", ";\n box-shadow: inset 0 0 0 3px ", ";\n\n .input-content {\n background: transparent;\n border: none;\n box-shadow: none;\n\n &,\n input {\n color: ", ";\n }\n }\n "], ["\n background: ", ";\n box-shadow: inset 0 0 0 3px ", ";\n\n .input-content {\n background: transparent;\n border: none;\n box-shadow: none;\n\n &,\n input {\n color: ", ";\n }\n }\n "])), p.theme.colors.blue100, p.theme.colors.blue500, p.theme.colors.gray1000);
|
|
@@ -43,7 +43,7 @@ export var TableRow = function (_a) {
|
|
|
43
43
|
var row = _a.row, indexI = _a.indexI, columns = _a.columns, isLast = _a.isLast, onRowClick = _a.onRowClick, getItemKey = _a.getItemKey, rowWidth = _a.rowWidth, _b = _a.isRowSelected, isRowSelected = _b === void 0 ? false : _b, props = __rest(_a, ["row", "indexI", "columns", "isLast", "onRowClick", "getItemKey", "rowWidth", "isRowSelected"]);
|
|
44
44
|
var isHighlighted = isRowSelected;
|
|
45
45
|
var key = getItemKey ? getItemKey(row) : "".concat(indexI);
|
|
46
|
-
return (_jsx(TableViewRow, __assign({ "data-test-id": "row-".concat(indexI), id: "row-id-".concat(key), dflex: true }, { isHighlighted: isHighlighted, isLast: isLast }, props, { children: columns.map(function (column, indexJ) {
|
|
46
|
+
return (_jsx(TableViewRow, __assign({ "data-test-id": "row-".concat(indexI), "data-cy": "rows", id: "row-id-".concat(key), dflex: true }, { isHighlighted: isHighlighted, isLast: isLast }, props, { children: columns.map(function (column, indexJ) {
|
|
47
47
|
var Content = column.Content;
|
|
48
48
|
var resolvedKey = "column-".concat(indexJ, "-row-").concat(key);
|
|
49
49
|
var columnWidthPercentages = getColumnWidthsPx(columns, rowWidth);
|
|
@@ -20,18 +20,33 @@ import { TableRow } from "./TableRow";
|
|
|
20
20
|
var Row = React.memo(function (_a) {
|
|
21
21
|
var _b;
|
|
22
22
|
var data = _a.data, rowIndex = _a.rowIndex, style = _a.style;
|
|
23
|
-
var items = data.items, rowWidth = data.rowWidth, isDraggable = data.isDraggable, onRowClick = data.onRowClick, columns = data.columns, rowHeight = data.rowHeight, getItemKey = data.getItemKey;
|
|
24
|
-
var item
|
|
23
|
+
var items = data.items, dataRefIds = data.dataRefIds, rowWidth = data.rowWidth, isDraggable = data.isDraggable, onRowClick = data.onRowClick, columns = data.columns, rowHeight = data.rowHeight, getItemKey = data.getItemKey;
|
|
24
|
+
var item;
|
|
25
25
|
var selectedRows = useSpreadsheetContext().selectedRows;
|
|
26
|
+
var rowCount = dataRefIds ? dataRefIds.ids.length : items.length;
|
|
27
|
+
var fistSelectedRowId = selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows[0];
|
|
28
|
+
var dataSetfirstSelectedRowIndex;
|
|
29
|
+
if (dataRefIds) {
|
|
30
|
+
var rowId = dataRefIds.ids[rowIndex];
|
|
31
|
+
item = dataRefIds.ref.current[rowId];
|
|
32
|
+
if ((selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.length) > 0)
|
|
33
|
+
dataSetfirstSelectedRowIndex = dataRefIds.ids.findIndex(function (id) { return fistSelectedRowId === id; });
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
item = items[rowIndex];
|
|
37
|
+
if ((selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.length) > 0)
|
|
38
|
+
dataSetfirstSelectedRowIndex = items.findIndex(function (item) { var _a; return fistSelectedRowId === ((_a = item === null || item === void 0 ? void 0 : item._meta) === null || _a === void 0 ? void 0 : _a.id); });
|
|
39
|
+
}
|
|
26
40
|
var isRowSelected = selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.includes((_b = item === null || item === void 0 ? void 0 : item._meta) === null || _b === void 0 ? void 0 : _b.id);
|
|
27
41
|
var Container = isDraggable ? DraggableRow : Div;
|
|
28
42
|
var containerProps = { style: style };
|
|
29
43
|
if (isDraggable)
|
|
30
44
|
containerProps = __assign(__assign({}, containerProps), { item: item });
|
|
31
|
-
return (_jsx(Container, __assign({}, containerProps, { children: _jsx(TableRow, { rowWidth: rowWidth, columns: columns, onRowClick: onRowClick, h: rowHeight, row: item, indexI: rowIndex, isLast: rowIndex ===
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
45
|
+
return (_jsx(Container, __assign({}, containerProps, { children: _jsx(TableRow, { rowWidth: rowWidth, columns: columns, onRowClick: onRowClick, h: rowHeight, row: item, indexI: rowIndex, isLast: rowIndex === rowCount - 1, pRelative: true, getItemKey: getItemKey, isRowSelected: isRowSelected || false, className: (selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.length) === 0
|
|
46
|
+
? ""
|
|
47
|
+
: rowIndex < dataSetfirstSelectedRowIndex
|
|
48
|
+
? "before-selected-row"
|
|
49
|
+
: "" }) })));
|
|
35
50
|
}, areEqual);
|
|
36
51
|
var DraggableRow = React.memo(function (_a) {
|
|
37
52
|
var item = _a.item, baseStyle = _a.style, children = _a.children;
|
|
@@ -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, columns, pageSize, onRowClick, sortBy, isLoading, setSortBy, rowWidthScalingFactor,
|
|
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>;
|
|
@@ -26,7 +26,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
26
26
|
};
|
|
27
27
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
28
|
import { SortableContext, verticalListSortingStrategy, } from "@dnd-kit/sortable";
|
|
29
|
-
import React, { Fragment,
|
|
29
|
+
import React, { Fragment, useRef } from "react";
|
|
30
30
|
import AutoSizer from "react-virtualized-auto-sizer";
|
|
31
31
|
import { FixedSizeGrid as Grid, areEqual } from "react-window";
|
|
32
32
|
import styled, { css } from "styled-components";
|
|
@@ -66,8 +66,9 @@ var buildGridStyles = function (rowWidthScalingFactor) {
|
|
|
66
66
|
return gridStyles;
|
|
67
67
|
};
|
|
68
68
|
export var TableView = React.memo(function (_a) {
|
|
69
|
-
var
|
|
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"]);
|
|
70
70
|
var headerContainerRef = useRef();
|
|
71
|
+
var rowCount = dataRefIds ? dataRefIds.ids.length : data.length;
|
|
71
72
|
var onScroll = function (_a) {
|
|
72
73
|
var scrollTop = _a.scrollTop, scrollLeft = _a.scrollLeft;
|
|
73
74
|
if (headerContainerRef.current && headerContainerRef.current.scrollTo) {
|
|
@@ -82,20 +83,10 @@ export var TableView = React.memo(function (_a) {
|
|
|
82
83
|
onTableScroll(scrollTop);
|
|
83
84
|
}
|
|
84
85
|
};
|
|
85
|
-
var onItemsRendered = useCallback(function (_a) {
|
|
86
|
-
var rowStartIndex = _a.overscanRowStartIndex, rowStopIndex = _a.overscanRowStopIndex;
|
|
87
|
-
if (onSectionRendered) {
|
|
88
|
-
onSectionRendered({
|
|
89
|
-
rowStartIndex: rowStartIndex,
|
|
90
|
-
rowStopIndex: rowStopIndex,
|
|
91
|
-
data: data.slice(rowStartIndex, rowStopIndex + 1),
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
}, [data, onSectionRendered]);
|
|
95
86
|
var tableHeight = pageSize
|
|
96
87
|
? pageSize * rowHeight + tableHeadersHeight
|
|
97
88
|
: h;
|
|
98
|
-
var canRenderTableHeaders = isFiltering ? true :
|
|
89
|
+
var canRenderTableHeaders = isFiltering ? true : rowCount > 0;
|
|
99
90
|
return (_jsxs(TableViewWrapper, __assign({ "data-test-id": "table-view-wrapper", isLoading: isLoading, checkboxColumnWidth: checkboxColumnWidth, h: tableHeight }, props, { children: [isLoading && loadingUI, _jsx(AutoSizer, { children: function (_a) {
|
|
100
91
|
var autosizerWidth = _a.width, autosizerHeight = _a.height;
|
|
101
92
|
// using Math.floor to avoid floating point errors with the grid and table cell widths
|
|
@@ -103,6 +94,7 @@ export var TableView = React.memo(function (_a) {
|
|
|
103
94
|
var gridProps = {
|
|
104
95
|
itemData: {
|
|
105
96
|
items: data,
|
|
97
|
+
dataRefIds: dataRefIds,
|
|
106
98
|
isDraggable: isDraggable,
|
|
107
99
|
rowWidth: rowWidth,
|
|
108
100
|
onRowClick: onRowClick,
|
|
@@ -113,12 +105,11 @@ export var TableView = React.memo(function (_a) {
|
|
|
113
105
|
style: buildGridStyles(rowWidthScalingFactor),
|
|
114
106
|
width: autosizerWidth,
|
|
115
107
|
columnCount: 1,
|
|
116
|
-
onItemsRendered: onItemsRendered,
|
|
117
108
|
onScroll: onScroll,
|
|
118
109
|
columnWidth: rowWidth,
|
|
119
110
|
height: autosizerHeight - tableHeadersHeight,
|
|
120
111
|
rowHeight: rowHeight,
|
|
121
|
-
rowCount:
|
|
112
|
+
rowCount: rowCount,
|
|
122
113
|
};
|
|
123
114
|
var GridContainer = isDraggable
|
|
124
115
|
? SortableContext
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { DivCSSProps } from "../../../styled/utils";
|
|
3
|
+
import { Record, RecordDataSet } from "../../../types";
|
|
3
4
|
import { SortBy } from "../TableDataProvider";
|
|
4
5
|
export type TableViewColumn = {
|
|
5
6
|
header?: string;
|
|
@@ -10,13 +11,13 @@ export type TableViewColumn = {
|
|
|
10
11
|
disableSort?: boolean;
|
|
11
12
|
width?: number;
|
|
12
13
|
};
|
|
13
|
-
type TableSection = {
|
|
14
|
-
rowStartIndex?: number;
|
|
15
|
-
rowStopIndex?: number;
|
|
16
|
-
data?: any[];
|
|
17
|
-
};
|
|
18
14
|
export type TableViewProps = {
|
|
19
|
-
data
|
|
15
|
+
data?: any;
|
|
16
|
+
dataRefIds?: {
|
|
17
|
+
ids: string[];
|
|
18
|
+
ref: React.MutableRefObject<RecordDataSet>;
|
|
19
|
+
};
|
|
20
|
+
rowCount: number;
|
|
20
21
|
columns: TableViewColumn[];
|
|
21
22
|
sortBy?: SortBy;
|
|
22
23
|
setSortBy?: React.Dispatch<React.SetStateAction<SortBy>>;
|
|
@@ -25,12 +26,10 @@ export type TableViewProps = {
|
|
|
25
26
|
rowWidthScalingFactor?: number;
|
|
26
27
|
rowHeight?: number;
|
|
27
28
|
tableHeadersHeight?: number;
|
|
28
|
-
onSectionRendered?: (section: TableSection) => void;
|
|
29
29
|
onTableScroll?: (scrollTop: number) => void;
|
|
30
30
|
onRowClick?: (row: any) => void;
|
|
31
|
-
getItemKey?: (row:
|
|
31
|
+
getItemKey?: (row: Record) => string;
|
|
32
32
|
isDraggable?: boolean;
|
|
33
33
|
checkboxColumnWidth?: number;
|
|
34
34
|
isFiltering?: boolean;
|
|
35
35
|
} & DivCSSProps;
|
|
36
|
-
export {};
|
|
@@ -5,7 +5,8 @@ type Props = {
|
|
|
5
5
|
onRowClick?: (row: any) => void;
|
|
6
6
|
templateSlug?: string;
|
|
7
7
|
isDraggable?: boolean;
|
|
8
|
+
rowHeight?: number;
|
|
8
9
|
} & DivCSSProps;
|
|
9
|
-
declare const Table: ({ columns, onRowClick, blankState, templateSlug, isDraggable, ...props }: Props) => JSX.Element;
|
|
10
|
+
declare const Table: ({ columns, onRowClick, blankState, templateSlug, isDraggable, rowHeight, ...props }: Props) => JSX.Element;
|
|
10
11
|
export { Table };
|
|
11
12
|
export * from "./TableDataProvider";
|
|
@@ -77,7 +77,7 @@ var TableView = styled(TableViewBase)(templateObject_4 || (templateObject_4 = __
|
|
|
77
77
|
return p.withPagination && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border-radius: 0px;\n "], ["\n border-radius: 0px;\n "])));
|
|
78
78
|
});
|
|
79
79
|
var Table = function (_a) {
|
|
80
|
-
var columns = _a.columns, _b = _a.onRowClick, onRowClick = _b === void 0 ? null : _b, _c = _a.blankState, blankState = _c === void 0 ? null : _c, templateSlug = _a.templateSlug, _d = _a.isDraggable, isDraggable = _d === void 0 ? false : _d, props = __rest(_a, ["columns", "onRowClick", "blankState", "templateSlug", "isDraggable"]);
|
|
80
|
+
var columns = _a.columns, _b = _a.onRowClick, onRowClick = _b === void 0 ? null : _b, _c = _a.blankState, blankState = _c === void 0 ? null : _c, templateSlug = _a.templateSlug, _d = _a.isDraggable, isDraggable = _d === void 0 ? false : _d, rowHeight = _a.rowHeight, props = __rest(_a, ["columns", "onRowClick", "blankState", "templateSlug", "isDraggable", "rowHeight"]);
|
|
81
81
|
var _e = useTableContext(), data = _e.data, isLoading = _e.isLoading, sortBy = _e.sortBy, setSortBy = _e.setSortBy, totalPages = _e.totalPages;
|
|
82
82
|
var reorderRows = useReorderRows(templateSlug).reorderRows;
|
|
83
83
|
var withPagination = data.length > 0 && totalPages > 1;
|
|
@@ -126,7 +126,7 @@ var Table = function (_a) {
|
|
|
126
126
|
};
|
|
127
127
|
var Container = data.length > 0 ? TableContainer : Div;
|
|
128
128
|
var Wrapper = data.length > 0 ? TableWrapper : Div;
|
|
129
|
-
return (_jsx(Container, { children: _jsx(Wrapper, { children: _jsxs(Div, __assign({}, props, { children: [data.length || isLoading ? (_jsx(DndContext, __assign({ sensors: dndContextValues.sensors, collisionDetection: dndContextValues.collisionDetection, onDragEnd: dndContextValues.onDragEnd, modifiers: dndContextValues.modifiers }, { children: _jsx(TableView, __assign({ pageSize: data.length, withPagination: withPagination, isDraggable: isDraggable }, {
|
|
129
|
+
return (_jsx(Container, { children: _jsx(Wrapper, { children: _jsxs(Div, __assign({}, props, { children: [data.length || isLoading ? (_jsx(DndContext, __assign({ sensors: dndContextValues.sensors, collisionDetection: dndContextValues.collisionDetection, onDragEnd: dndContextValues.onDragEnd, modifiers: dndContextValues.modifiers }, { children: _jsx(TableView, __assign({ rowCount: data.length, pageSize: data.length, withPagination: withPagination, isDraggable: isDraggable, rowHeight: rowHeight }, {
|
|
130
130
|
isLoading: isLoading,
|
|
131
131
|
data: data,
|
|
132
132
|
columns: columns,
|
package/lib/esm/common/Toast.js
CHANGED
|
@@ -55,15 +55,16 @@ var toastTypeStyles = {
|
|
|
55
55
|
},
|
|
56
56
|
};
|
|
57
57
|
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; });
|
|
58
|
+
var IconWrapper = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n margin-right: 10px;\n"], ["\n margin-right: 10px;\n"])));
|
|
58
59
|
var Toast = function () {
|
|
59
60
|
return (_jsx(Toaster, __assign({ toastOptions: {
|
|
60
61
|
style: toastContainerCss,
|
|
61
62
|
} }, { children: function (t) { return (_jsx(ToastBar, __assign({ toast: t }, { children: function (_a) {
|
|
62
63
|
var message = _a.message, hotToastIcon = _a.icon;
|
|
63
64
|
var _b = toastTypeStyles[t.type] || {}, icon = _b.icon, color = _b.color, backgroundColor = _b.backgroundColor;
|
|
64
|
-
return (_jsxs(ToastWrapper, __assign({ c: color, bg: backgroundColor }, { children: [_jsx(
|
|
65
|
+
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 }))] })));
|
|
65
66
|
} }))); } })));
|
|
66
67
|
};
|
|
67
68
|
export { Toast };
|
|
68
69
|
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" })] })));
|
|
69
|
-
var templateObject_1;
|
|
70
|
+
var templateObject_1, templateObject_2;
|
|
@@ -3,6 +3,7 @@ import React from "react";
|
|
|
3
3
|
import { DivCSSProps } from "../styled/utils";
|
|
4
4
|
type TooltipContentProps = {
|
|
5
5
|
isActionable?: boolean;
|
|
6
|
+
shouldCenterText?: boolean;
|
|
6
7
|
};
|
|
7
8
|
export declare const TooltipContent: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../styled/utils").CSSProps & TooltipContentProps, never>;
|
|
8
9
|
export type TooltipProps = {
|
|
@@ -14,6 +15,7 @@ export type TooltipProps = {
|
|
|
14
15
|
tooltipMaxWidth?: number;
|
|
15
16
|
tooltipMinWidth?: number;
|
|
16
17
|
offset?: number[];
|
|
18
|
+
shouldCenterText?: boolean;
|
|
17
19
|
} & DivCSSProps;
|
|
18
20
|
export declare const TooltipProvider: React.FC<TooltipProps>;
|
|
19
21
|
export {};
|
|
@@ -27,14 +27,17 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
27
27
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
28
|
import { useMemo, useState } from "react";
|
|
29
29
|
import { usePopper } from "react-popper";
|
|
30
|
-
import styled from "styled-components";
|
|
30
|
+
import styled, { css } from "styled-components";
|
|
31
31
|
import { Div } from "../styled/utils";
|
|
32
|
-
export var TooltipContent = styled(Div)(
|
|
32
|
+
export var TooltipContent = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", ";\n color: ", ";\n background: ", ";\n border-radius: 4px;\n padding: 10px;\n pointer-events: none;\n z-index: 1000;\n\n ", "\n"], ["\n ", ";\n color: ", ";\n background: ", ";\n border-radius: 4px;\n padding: 10px;\n pointer-events: none;\n z-index: 1000;\n\n ", "\n"])), function (p) { return p.theme.css.body4; }, function (p) { return p.theme.colors.white; }, function (p) { return p.theme.colors.black; }, function (_a) {
|
|
33
|
+
var shouldCenterText = _a.shouldCenterText;
|
|
34
|
+
return shouldCenterText && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n text-align: center;\n "], ["\n text-align: center;\n "])));
|
|
35
|
+
});
|
|
33
36
|
export var TooltipProvider = function (_a) {
|
|
34
|
-
var tooltip = _a.tooltip, children = _a.children, tooltipMaxWidth = _a.tooltipMaxWidth, tooltipMinWidth = _a.tooltipMinWidth, _b = _a.placement, placement = _b === void 0 ? "top-start" : _b, _c = _a.flip, flip = _c === void 0 ? true : _c, _d = _a.isDisabled, isDisabled = _d === void 0 ? false : _d, _e = _a.isOpen, isOpen = _e === void 0 ? false : _e, _f = _a.offset, offset = _f === void 0 ? [0, 4] : _f, props = __rest(_a, ["tooltip", "children", "tooltipMaxWidth", "tooltipMinWidth", "placement", "flip", "isDisabled", "isOpen", "offset"]);
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
37
|
+
var tooltip = _a.tooltip, children = _a.children, tooltipMaxWidth = _a.tooltipMaxWidth, tooltipMinWidth = _a.tooltipMinWidth, _b = _a.placement, placement = _b === void 0 ? "top-start" : _b, _c = _a.flip, flip = _c === void 0 ? true : _c, _d = _a.isDisabled, isDisabled = _d === void 0 ? false : _d, _e = _a.isOpen, isOpen = _e === void 0 ? false : _e, _f = _a.offset, offset = _f === void 0 ? [0, 4] : _f, _g = _a.shouldCenterText, shouldCenterText = _g === void 0 ? false : _g, props = __rest(_a, ["tooltip", "children", "tooltipMaxWidth", "tooltipMinWidth", "placement", "flip", "isDisabled", "isOpen", "offset", "shouldCenterText"]);
|
|
38
|
+
var _h = useState(false), isDisplayingTooltip = _h[0], setIsDisplayingTooltip = _h[1];
|
|
39
|
+
var _j = useState(null), referenceElement = _j[0], setReferenceElement = _j[1];
|
|
40
|
+
var _k = useState(null), popperElement = _k[0], setPopperElement = _k[1];
|
|
38
41
|
var options = useMemo(function () { return ({
|
|
39
42
|
placement: placement,
|
|
40
43
|
modifiers: [
|
|
@@ -50,8 +53,8 @@ export var TooltipProvider = function (_a) {
|
|
|
50
53
|
},
|
|
51
54
|
],
|
|
52
55
|
}); }, [placement, offset]);
|
|
53
|
-
var
|
|
56
|
+
var _l = usePopper(referenceElement, popperElement, options), styles = _l.styles, attributes = _l.attributes;
|
|
54
57
|
var showTooltip = isOpen || (isDisplayingTooltip && !!tooltip);
|
|
55
|
-
return (_jsxs(Div, __assign({ dim: "100%", ref: setReferenceElement, onMouseOver: function () { return isDisabled || setIsDisplayingTooltip(true); }, onMouseOut: function () { return isDisabled || setIsDisplayingTooltip(false); } }, props, { children: [children, showTooltip && (_jsx(TooltipContent, __assign({ ref: setPopperElement, style: styles.popper, maxw: tooltipMaxWidth, minw: tooltipMinWidth }, attributes.popper, { children: tooltip })))] })));
|
|
58
|
+
return (_jsxs(Div, __assign({ dim: "100%", ref: setReferenceElement, onMouseOver: function () { return isDisabled || setIsDisplayingTooltip(true); }, onMouseOut: function () { return isDisabled || setIsDisplayingTooltip(false); } }, props, { children: [children, showTooltip && (_jsx(TooltipContent, __assign({ ref: setPopperElement, style: styles.popper, maxw: tooltipMaxWidth, minw: tooltipMinWidth, shouldCenterText: shouldCenterText }, attributes.popper, { children: tooltip })))] })));
|
|
56
59
|
};
|
|
57
|
-
var templateObject_1;
|
|
60
|
+
var templateObject_1, templateObject_2;
|
|
@@ -15,6 +15,7 @@ export type BtnProps = {
|
|
|
15
15
|
svgNormalStrokeColorOverride?: string;
|
|
16
16
|
svgActiveStrokeColorOverride?: string;
|
|
17
17
|
svgDisabledStrokeColorOverride?: string;
|
|
18
|
+
iconPlacement?: "left" | "right";
|
|
18
19
|
} & CSSProps;
|
|
19
20
|
export declare const ButtonWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, CSSProps & {
|
|
20
21
|
onClick?: () => void;
|
|
@@ -30,6 +31,7 @@ export declare const ButtonWrapper: import("styled-components").StyledComponent<
|
|
|
30
31
|
svgNormalStrokeColorOverride?: string;
|
|
31
32
|
svgActiveStrokeColorOverride?: string;
|
|
32
33
|
svgDisabledStrokeColorOverride?: string;
|
|
34
|
+
iconPlacement?: "left" | "right";
|
|
33
35
|
}, never>;
|
|
34
36
|
export declare const ButtonElementWrapper: import("styled-components").StyledComponent<"button", import("styled-components").DefaultTheme, CSSProps & {
|
|
35
37
|
onClick?: () => void;
|
|
@@ -45,6 +47,8 @@ export declare const ButtonElementWrapper: import("styled-components").StyledCom
|
|
|
45
47
|
svgNormalStrokeColorOverride?: string;
|
|
46
48
|
svgActiveStrokeColorOverride?: string;
|
|
47
49
|
svgDisabledStrokeColorOverride?: string;
|
|
50
|
+
iconPlacement?: "left" | "right";
|
|
48
51
|
}, never>;
|
|
49
|
-
export declare const
|
|
52
|
+
export declare const ContentWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, CSSProps, never>;
|
|
53
|
+
export declare const Button: ({ onClick, isDisabled, variant, isSmall, children, isButtonElement, iconPlacement, ...props }: BtnProps) => JSX.Element;
|
|
50
54
|
export {};
|