fuse-importer 0.1.5-testing → 0.1.7-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/Review/ReviewContextProvider.d.ts +2 -0
- package/lib/esm/Importer/Review/ReviewContextProvider.js +18 -13
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +2 -2
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.d.ts +0 -2
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +3 -4
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +7 -5
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +2 -2
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +2 -2
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.d.ts +2 -1
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +10 -6
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.d.ts +8 -2
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +4 -16
- package/lib/esm/Importer/data/index.d.ts +6 -1
- package/lib/esm/Importer/data/index.js +51 -9
- package/lib/esm/Importer/hooks/useSubmitToServer.d.ts +1 -1
- package/lib/esm/Importer/hooks/useSubmitToServer.js +3 -2
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +9 -6
- package/lib/esm/common/Table/TableActions/RowFilters.js +2 -2
- package/lib/esm/common/Table/TableActions/SearchRows.js +8 -8
- package/lib/esm/common/Table/TableActions/TableActions.js +9 -4
- package/lib/esm/common/Table/TableActions/TableActions.styles.js +1 -1
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.d.ts +6 -1
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +27 -46
- package/lib/esm/common/buttons.js +6 -6
- package/lib/esm/common/datePatterns.d.ts +1 -0
- package/lib/esm/common/datePatterns.js +10 -0
- package/lib/esm/styled/theme/textCss.js +1 -1
- package/lib/main.js +2 -2
- package/package.json +1 -1
|
@@ -19,6 +19,8 @@ type State = {
|
|
|
19
19
|
onSubmit: (dataSet: RecordDataSet) => Promise<void>;
|
|
20
20
|
setReviewInitialDataSetDeprecated: (dataSet: any) => void;
|
|
21
21
|
setInitialDataSetUpdatedAt: React.Dispatch<any>;
|
|
22
|
+
isTransformTooltipOpened: boolean;
|
|
23
|
+
setIsTransformTooltipOpened: React.Dispatch<React.SetStateAction<boolean>>;
|
|
22
24
|
};
|
|
23
25
|
export type ExportDataType = "csv" | "excel";
|
|
24
26
|
type Props = {
|
|
@@ -57,14 +57,15 @@ var ReviewContext = createContext({});
|
|
|
57
57
|
export var ReviewContextProvider = function (_a) {
|
|
58
58
|
var initialRecords = _a.initialRecords, children = _a.children;
|
|
59
59
|
var _b = useImporterContext(), templateHeaderMatchings = _b.templateHeaderMatchings, enumFieldValueMatchings = _b.enumFieldValueMatchings, templateHeaders = _b.templateHeaders, uploadedDataHeaders = _b.uploadedDataHeaders, headerRowIndex = _b.headerRowIndex, uploadedData = _b.uploadedData, currentStepIndex = _b.currentStepIndex, setSelectedRows = _b.setSelectedRows, _c = _b.importerOptions, disableSubmitIfInvalid = _c.disableSubmitIfInvalid, batchValidationDelayMs = _c.batchValidationDelayMs, batchValidationSize = _c.batchValidationSize, loadingComponent = _c.loadingComponent, onValidateRecord = _b.onValidateRecord, formatRecord = _b.formatRecord;
|
|
60
|
-
var _d =
|
|
60
|
+
var _d = useState(false), isTransformTooltipOpened = _d[0], setIsTransformTooltipOpened = _d[1];
|
|
61
|
+
var _e = useSubmitToServer(setIsTransformTooltipOpened), appResponse = _e.appResponse, isSubmitting = _e.isSubmitting, importWasSuccessful = _e.importWasSuccessful, onSubmitToServer = _e.onSubmitToServer;
|
|
61
62
|
var setIsLoadingApp = useAppLoadingContext().setIsLoadingApp;
|
|
62
|
-
var
|
|
63
|
-
var
|
|
64
|
-
var
|
|
63
|
+
var _f = useState([]), previewFields = _f[0], setPreviewFields = _f[1];
|
|
64
|
+
var _g = useState(null), previewInitialDataSet = _g[0], setPreviewInitialDataSet = _g[1];
|
|
65
|
+
var _h = useState([]), reviewFields = _h[0], setReviewFields = _h[1];
|
|
65
66
|
var reviewInitialDataSet = useRef(null);
|
|
66
|
-
var
|
|
67
|
-
var
|
|
67
|
+
var _j = useState(null), initialDataSetUpdatedAt = _j[0], setInitialDataSetUpdatedAt = _j[1];
|
|
68
|
+
var _k = useState(false), _ = _k[0], setInefficientRerender = _k[1];
|
|
68
69
|
var setReviewInitialDataSetDeprecated = function (dataSet) {
|
|
69
70
|
reviewInitialDataSet.current = dataSet;
|
|
70
71
|
setInefficientRerender(function (prev) { return !prev; });
|
|
@@ -103,17 +104,17 @@ export var ReviewContextProvider = function (_a) {
|
|
|
103
104
|
else if (currentStepIndex === 2) {
|
|
104
105
|
setIsLoadingApp(true);
|
|
105
106
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
106
|
-
var generateRecords, fields, records, initialDataSet;
|
|
107
|
-
return __generator(this, function (
|
|
108
|
-
switch (
|
|
107
|
+
var generateRecords, fields, records, _a, isDatasetTransformed, initialDataSet;
|
|
108
|
+
return __generator(this, function (_b) {
|
|
109
|
+
switch (_b.label) {
|
|
109
110
|
case 0:
|
|
110
111
|
if (!(uploadedData && uploadedData.length > 10000)) return [3 /*break*/, 2];
|
|
111
112
|
// wait for the first render to complete before blocking main thread with review step logic
|
|
112
113
|
return [4 /*yield*/, sleep(200)];
|
|
113
114
|
case 1:
|
|
114
115
|
// wait for the first render to complete before blocking main thread with review step logic
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
_b.sent();
|
|
117
|
+
_b.label = 2;
|
|
117
118
|
case 2:
|
|
118
119
|
generateRecords = function () {
|
|
119
120
|
return transformToRecords({
|
|
@@ -127,10 +128,12 @@ export var ReviewContextProvider = function (_a) {
|
|
|
127
128
|
};
|
|
128
129
|
fields = getTemplateFields({ templateHeaders: templateHeaders });
|
|
129
130
|
records = initialRecords !== null && initialRecords !== void 0 ? initialRecords : generateRecords();
|
|
130
|
-
|
|
131
|
+
_a = getReviewDataSet({
|
|
131
132
|
records: records,
|
|
132
133
|
fields: fields,
|
|
133
|
-
}).initialDataSet;
|
|
134
|
+
}), isDatasetTransformed = _a.isDatasetTransformed, initialDataSet = _a.initialDataSet;
|
|
135
|
+
if (isDatasetTransformed)
|
|
136
|
+
setIsTransformTooltipOpened(true);
|
|
134
137
|
setSelectedRows([]);
|
|
135
138
|
setReviewFields(fields);
|
|
136
139
|
setReviewInitialDataSetDeprecated(initialDataSet);
|
|
@@ -178,6 +181,8 @@ export var ReviewContextProvider = function (_a) {
|
|
|
178
181
|
onDataSetChanged: onDataSetChanged,
|
|
179
182
|
setReviewInitialDataSetDeprecated: setReviewInitialDataSetDeprecated,
|
|
180
183
|
setInitialDataSetUpdatedAt: setInitialDataSetUpdatedAt,
|
|
184
|
+
isTransformTooltipOpened: isTransformTooltipOpened,
|
|
185
|
+
setIsTransformTooltipOpened: setIsTransformTooltipOpened,
|
|
181
186
|
};
|
|
182
187
|
function renderLoading() {
|
|
183
188
|
return isSubmitting ? (loadingComponent ? (loadingComponent()) : (_jsx(AppLoading, {}))) : null;
|
|
@@ -28,7 +28,7 @@ var HeadersList = function (_a) {
|
|
|
28
28
|
var title = _a.title, headers = _a.headers, props = __rest(_a, ["title", "headers"]);
|
|
29
29
|
return (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ label3: true }, props, { children: title })), headers.map(function (header, index) {
|
|
30
30
|
var isLast = index === headers.length - 1;
|
|
31
|
-
return (_jsx(S.HeaderListItem, __assign({ body1: true, isLast: isLast, mt: 16 }, { children: header }), index));
|
|
31
|
+
return (_jsx(S.HeaderListItem, __assign({ body1: true, "data-cy": header, isLast: isLast, mt: 16 }, { children: header }), index));
|
|
32
32
|
})] }));
|
|
33
33
|
};
|
|
34
34
|
export var HeaderCard = function (_a) {
|
|
@@ -40,5 +40,5 @@ export var HeaderCard = function (_a) {
|
|
|
40
40
|
.filter(function (h) { return !h.required; })
|
|
41
41
|
.map(function (h) { return h.label; });
|
|
42
42
|
var t = useTranslation("upload").t;
|
|
43
|
-
return (_jsx(S.HeaderCardWrapper, { children: _jsxs(S.HeaderCardContainer, __assign({}, props, { children: [_jsx(Div, __assign({ body3: true, mb: 24 }, { children: t("header.title") })), requiredHeaders.length > 0 && (_jsx(HeadersList, { title: t("header.required_headers"), headers: requiredHeaders })), optionalHeaders.length > 0 && (_jsx(HeadersList, { title: t("header.optional_headers"), headers: optionalHeaders, mt: 30 }))] })) }));
|
|
43
|
+
return (_jsx(S.HeaderCardWrapper, { children: _jsxs(S.HeaderCardContainer, __assign({}, props, { children: [_jsx(Div, __assign({ "data-cy": "header_title", body3: true, mb: 24 }, { children: t("header.title") })), requiredHeaders.length > 0 && (_jsx(HeadersList, { "data-cy": "required_header", title: t("header.required_headers"), headers: requiredHeaders })), optionalHeaders.length > 0 && (_jsx(HeadersList, { "data-cy": "optional_header", title: t("header.optional_headers"), headers: optionalHeaders, mt: 30 }))] })) }));
|
|
44
44
|
};
|
|
@@ -12,8 +12,6 @@ type State = {
|
|
|
12
12
|
setSelectedRows: React.Dispatch<React.SetStateAction<string[]>>;
|
|
13
13
|
lastClickedIndexRef: React.MutableRefObject<number | null>;
|
|
14
14
|
checkboxColumnWidth: number;
|
|
15
|
-
setIsTransformTooltipOpened: React.Dispatch<React.SetStateAction<boolean>>;
|
|
16
|
-
isTransformTooltipOpened: boolean;
|
|
17
15
|
inefficientRerender: boolean;
|
|
18
16
|
setInefficientRerender: React.Dispatch<React.SetStateAction<boolean>>;
|
|
19
17
|
};
|
|
@@ -27,10 +27,9 @@ import { useValidationContext } from "../ValidationContextProvider";
|
|
|
27
27
|
var SpreadsheetContext = createContext({});
|
|
28
28
|
export var SpreadsheetContextProvider = function (_a) {
|
|
29
29
|
var fields = _a.fields, options = _a.options, isReadOnly = _a.isReadOnly, children = _a.children, onValidateRecord = _a.onValidateRecord, selectedRows = _a.selectedRows, setSelectedRows = _a.setSelectedRows;
|
|
30
|
-
var _b = useState(false),
|
|
31
|
-
var _c = useState(false), inefficientRerender = _c[0], setInefficientRerender = _c[1];
|
|
30
|
+
var _b = useState(false), inefficientRerender = _b[0], setInefficientRerender = _b[1];
|
|
32
31
|
var filteredDataIds = useFilteredDataContext().filteredDataIds;
|
|
33
|
-
var
|
|
32
|
+
var _c = useValidationContext(), calculateColumnErrorCounts = _c.calculateColumnErrorCounts, calculateColumnWarningCounts = _c.calculateColumnWarningCounts, warnings = _c.warnings, errors = _c.errors, validationState = __rest(_c, ["calculateColumnErrorCounts", "calculateColumnWarningCounts", "warnings", "errors"]);
|
|
34
33
|
var lastClickedIndexRef = useRef(null);
|
|
35
34
|
var checkboxColumnWidth = useMemo(function () {
|
|
36
35
|
var lastRowIndexLength = filteredDataIds.length.toString().length;
|
|
@@ -39,7 +38,7 @@ export var SpreadsheetContextProvider = function (_a) {
|
|
|
39
38
|
var baseCheckboxColumnWidth = lastRowIndexLength * singleLetterWidth + horizontalSpacing;
|
|
40
39
|
return baseCheckboxColumnWidth < 40 ? 40 : baseCheckboxColumnWidth;
|
|
41
40
|
}, [filteredDataIds.length]);
|
|
42
|
-
var value = __assign(__assign({ filteredDataIds: filteredDataIds, fields: fields }, validationState), { isReadOnly: isReadOnly, options: options, onValidateRecord: onValidateRecord, selectedRows: selectedRows, setSelectedRows: setSelectedRows, lastClickedIndexRef: lastClickedIndexRef, checkboxColumnWidth: checkboxColumnWidth,
|
|
41
|
+
var value = __assign(__assign({ filteredDataIds: filteredDataIds, fields: fields }, validationState), { isReadOnly: isReadOnly, options: options, onValidateRecord: onValidateRecord, selectedRows: selectedRows, setSelectedRows: setSelectedRows, lastClickedIndexRef: lastClickedIndexRef, checkboxColumnWidth: checkboxColumnWidth, inefficientRerender: inefficientRerender, setInefficientRerender: setInefficientRerender });
|
|
43
42
|
return (_jsx(SpreadsheetContext.Provider, __assign({ value: value }, { children: children })));
|
|
44
43
|
};
|
|
45
44
|
export var useSpreadsheetContext = function () { return useContext(SpreadsheetContext); };
|
|
@@ -35,17 +35,18 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
35
35
|
};
|
|
36
36
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
37
37
|
import { useMemo } from "react";
|
|
38
|
+
import ReactVirtualizedAutoSizer from "react-virtualized-auto-sizer";
|
|
38
39
|
import { FixedSizeGrid as Grid } from "react-window";
|
|
39
40
|
import styled, { css } from "styled-components";
|
|
41
|
+
import { Checkbox } from "../../../../common/inputs/Checkbox";
|
|
40
42
|
import { Div } from "../../../../styled/utils";
|
|
43
|
+
import { useImporterContext } from "../../../contexts/ImporterContextProvider";
|
|
44
|
+
import { useReviewContext } from "../../../Review/ReviewContextProvider";
|
|
41
45
|
import { spreadsheetRowHeightPx } from "../common";
|
|
42
46
|
import { spreadsheetHeaderHeightPx } from "../common/index";
|
|
47
|
+
import { useDataSetContext } from "../DataSetContextProvider";
|
|
43
48
|
import { useSpreadsheetContext } from "../SpreadsheetContextProvider";
|
|
44
|
-
import { Checkbox } from "../../../../common/inputs/Checkbox";
|
|
45
|
-
import { useImporterContext } from "../../../contexts/ImporterContextProvider";
|
|
46
|
-
import ReactVirtualizedAutoSizer from "react-virtualized-auto-sizer";
|
|
47
49
|
import { rowIsEmpty } from "../SpreadsheetContextProvider/utils";
|
|
48
|
-
import { useDataSetContext } from "../DataSetContextProvider";
|
|
49
50
|
var StyledGrid = styled(Grid)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n overflow-y: scroll;\n"], ["\n background: ", ";\n overflow-y: scroll;\n"])), function (_a) {
|
|
50
51
|
var theme = _a.theme;
|
|
51
52
|
return theme.colors.white50;
|
|
@@ -58,7 +59,8 @@ var gridStyles = {
|
|
|
58
59
|
};
|
|
59
60
|
export var SpreadsheetRowCheckboxes = function (_a) {
|
|
60
61
|
var height = _a.height, gridRef = _a.gridRef, isLoadingData = _a.isLoadingData, props = __rest(_a, ["height", "gridRef", "isLoadingData"]);
|
|
61
|
-
var _b = useSpreadsheetContext(), selectedRows = _b.selectedRows, options = _b.options, filteredDataIds = _b.filteredDataIds, lastClickedIndexRef = _b.lastClickedIndexRef, setSelectedRows = _b.setSelectedRows, checkboxColumnWidth = _b.checkboxColumnWidth
|
|
62
|
+
var _b = useSpreadsheetContext(), selectedRows = _b.selectedRows, options = _b.options, filteredDataIds = _b.filteredDataIds, lastClickedIndexRef = _b.lastClickedIndexRef, setSelectedRows = _b.setSelectedRows, checkboxColumnWidth = _b.checkboxColumnWidth;
|
|
63
|
+
var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
|
|
62
64
|
var getRecord = useDataSetContext().getRecord;
|
|
63
65
|
var currentStepIndex = useImporterContext().currentStepIndex;
|
|
64
66
|
var nonEmptyRows = useMemo(function () { return filteredDataIds.filter(function (rowId) { return !rowIsEmpty(getRecord(rowId)); }); }, [filteredDataIds]);
|
|
@@ -19,8 +19,8 @@ import { SpreadsheetField, useSpreadsheetField } from ".";
|
|
|
19
19
|
import { Autocomplete as AutocompleteBase, } from "../../../../../common/inputs/Autocomplete";
|
|
20
20
|
import { SelectMenuDiv, SelectMenuScrollArea, } from "../../../../../common/inputs/SelectMenu";
|
|
21
21
|
import { HTMLInput, TextInputIcon, } from "../../../../../common/inputs/TextInput";
|
|
22
|
+
import { useReviewContext } from "../../../../Review/ReviewContextProvider";
|
|
22
23
|
import { spreadsheetRowHeightPx } from "../../common";
|
|
23
|
-
import { useSpreadsheetContext } from "../../SpreadsheetContextProvider";
|
|
24
24
|
var Autocomplete = styled(AutocompleteBase)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", " {\n border: none;\n border-radius: 0;\n margin: 0;\n background: transparent;\n height: ", "px;\n padding: 0 12px;\n\n ", "\n\n ::placeholder {\n ", "\n\n ", "\n\n ::placeholder {\n ", "\n }\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n\n :hover {\n background: transparent;\n }\n }\n ", " {\n right: 6px;\n }\n ", " {\n border-radius: 7px;\n }\n ", " {\n padding: 4px;\n }\n"], ["\n ", " {\n border: none;\n border-radius: 0;\n margin: 0;\n background: transparent;\n height: ", "px;\n padding: 0 12px;\n\n ", "\n\n ::placeholder {\n ", "\n\n ", "\n\n ::placeholder {\n ", "\n }\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n\n :hover {\n background: transparent;\n }\n }\n ", " {\n right: 6px;\n }\n ", " {\n border-radius: 7px;\n }\n ", " {\n padding: 4px;\n }\n"])), HTMLInput, spreadsheetRowHeightPx - 5, function (p) {
|
|
25
25
|
return p.hasWarning && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
|
|
26
26
|
}, function (p) {
|
|
@@ -34,7 +34,7 @@ export var SpreadsheetAutocomplete = function (props) {
|
|
|
34
34
|
var _a, _b, _c;
|
|
35
35
|
var name = props.name, record = props.record, options = props.options, fieldType = props.fieldType, _d = props.isInputDisabled, isInputDisabled = _d === void 0 ? false : _d, id = props.id;
|
|
36
36
|
var _e = useSpreadsheetField(name, record, fieldType), value = _e.value, setValue = _e.setValue, validationError = _e.validationError, validationWarning = _e.validationWarning;
|
|
37
|
-
var isTransformTooltipOpened =
|
|
37
|
+
var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
|
|
38
38
|
var isHighlighted = isTransformTooltipOpened &&
|
|
39
39
|
((_c = (_b = (_a = record._meta) === null || _a === void 0 ? void 0 : _a.transformedRow) === null || _b === void 0 ? void 0 : _b[name]) === null || _c === void 0 ? void 0 : _c.transformed);
|
|
40
40
|
return (_jsx(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning, isHighlighted: isHighlighted }, { children: _jsx(Autocomplete, { placement: "bottom", isInputDisabled: isInputDisabled, hasError: !!validationError, hasWarning: !!validationWarning, options: options, value: value, icon: chevronDownIcon, onChange: function (v) { return !isTransformTooltipOpened && setValue(v); }, disabledWhen: isTransformTooltipOpened, id: id }) })));
|
|
@@ -29,7 +29,7 @@ import { useMemo } from "react";
|
|
|
29
29
|
import styled, { css } from "styled-components";
|
|
30
30
|
import { SpreadsheetField, useSpreadsheetField } from ".";
|
|
31
31
|
import { Div } from "../../../../../styled/utils";
|
|
32
|
-
import {
|
|
32
|
+
import { useReviewContext } from "../../../../Review/ReviewContextProvider";
|
|
33
33
|
import { AVERAGE_CHAR_SIZE, getFieldContentWidth } from "./utils";
|
|
34
34
|
var parseValue = function (value) {
|
|
35
35
|
var isFalsyButNotZero = !value && value !== 0;
|
|
@@ -39,7 +39,7 @@ export var SpreadsheetInput = function (_a) {
|
|
|
39
39
|
var _b, _c, _d, _e, _f, _g;
|
|
40
40
|
var name = _a.name, record = _a.record, fieldType = _a.fieldType, columnWidth = _a.columnWidth, props = __rest(_a, ["name", "record", "fieldType", "columnWidth"]);
|
|
41
41
|
var _h = useSpreadsheetField(name, record, fieldType), value = _h.value, setValue = _h.setValue, validationError = _h.validationError, validationWarning = _h.validationWarning;
|
|
42
|
-
var isTransformTooltipOpened =
|
|
42
|
+
var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
|
|
43
43
|
var defaultWidthAsNumber = Number.parseInt(columnWidth.replace("px", ""));
|
|
44
44
|
var _fieldContentWidth = getFieldContentWidth({
|
|
45
45
|
record: record,
|
|
@@ -130,7 +130,7 @@ var ContentContainer = styled(Div)(templateObject_8 || (templateObject_8 = __mak
|
|
|
130
130
|
var expandedFieldWidth = _a.expandedFieldWidth, shouldExpandInput = _a.shouldExpandInput;
|
|
131
131
|
return shouldExpandInput && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: ", ";\n z-index: 1;\n\n .suffix {\n right: 12px;\n }\n "], ["\n width: ", ";\n z-index: 1;\n\n .suffix {\n right: 12px;\n }\n "])), expandedFieldWidth || "auto");
|
|
132
132
|
}, function (p) { return p.theme.css.alignCenter; }, function (p) {
|
|
133
|
-
return p.isHighlighted && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 2px ", " inset;\n "], ["\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 2px ", " inset;\n "])), function (p) { return p.theme.colors.blue100; }, function (p) { return p.theme.colors.blue500; });
|
|
133
|
+
return p.isHighlighted && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 2px ", " inset;\n z-index: 100;\n "], ["\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 2px ", " inset;\n z-index: 100;\n "])), function (p) { return p.theme.colors.blue100; }, function (p) { return p.theme.colors.blue500; });
|
|
134
134
|
}, function (p) {
|
|
135
135
|
return p.hasWarning && css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "], ["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "])), function (p) { return p.theme.colors.orange1200; }, function (p) { return p.theme.colors.orange1100; }, function (p) { return p.theme.colors.orange500; });
|
|
136
136
|
}, function (p) {
|
|
@@ -2,6 +2,7 @@ import { Field, Record, TransformedRecord } from "../../../../types";
|
|
|
2
2
|
type TransformRecordArgs = {
|
|
3
3
|
record: Record;
|
|
4
4
|
fields: Field[];
|
|
5
|
+
possibleDateFormats?: string[];
|
|
5
6
|
};
|
|
6
|
-
export declare const transformRecord: ({ record, fields }: TransformRecordArgs) => TransformedRecord;
|
|
7
|
+
export declare const transformRecord: ({ record, fields, possibleDateFormats, }: TransformRecordArgs) => TransformedRecord;
|
|
7
8
|
export {};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { fieldTransformations } from "./transformators";
|
|
2
|
-
var runTransformation = function (
|
|
1
|
+
import { datesDateTimesAndTimesTransformations, fieldTransformations, } from "./transformators";
|
|
2
|
+
var runTransformation = function (fieldValue, transformation, field, possibleDateFormats) {
|
|
3
3
|
var transformationType = transformation.transformation_type;
|
|
4
4
|
var transformerFunction = fieldTransformations[transformationType];
|
|
5
|
-
|
|
5
|
+
if (Object.keys(datesDateTimesAndTimesTransformations).includes(transformationType)) {
|
|
6
|
+
var dateTimeTransformFunction = transformerFunction;
|
|
7
|
+
return dateTimeTransformFunction(fieldValue, transformation, field, possibleDateFormats);
|
|
8
|
+
}
|
|
9
|
+
return transformerFunction(fieldValue, transformation, field);
|
|
6
10
|
};
|
|
7
11
|
export var transformRecord = function (_a) {
|
|
8
|
-
var record = _a.record, fields = _a.fields;
|
|
12
|
+
var record = _a.record, fields = _a.fields, possibleDateFormats = _a.possibleDateFormats;
|
|
9
13
|
var transformedRecords = {};
|
|
10
14
|
for (var _i = 0, fields_1 = fields; _i < fields_1.length; _i++) {
|
|
11
15
|
var currentField = fields_1[_i];
|
|
@@ -23,7 +27,7 @@ export var transformRecord = function (_a) {
|
|
|
23
27
|
var fieldWasTransformed = false;
|
|
24
28
|
for (var i = 0; i < fieldTransformations_1.length; i++) {
|
|
25
29
|
var currentTransformation = fieldTransformations_1[i];
|
|
26
|
-
var transformed = runTransformation(transformedField.transformed, currentTransformation, currentField);
|
|
30
|
+
var transformed = runTransformation(transformedField.transformed, currentTransformation, currentField, possibleDateFormats);
|
|
27
31
|
if (transformed.transformationWasNeeded) {
|
|
28
32
|
fieldWasTransformed = true;
|
|
29
33
|
transformedField = {
|
|
@@ -43,5 +47,5 @@ export var transformRecord = function (_a) {
|
|
|
43
47
|
};
|
|
44
48
|
}
|
|
45
49
|
var isTransformedRecordsEmpty = Object.keys(transformedRecords).length === 0;
|
|
46
|
-
return isTransformedRecordsEmpty ?
|
|
50
|
+
return isTransformedRecordsEmpty ? {} : transformedRecords;
|
|
47
51
|
};
|
|
@@ -4,9 +4,15 @@ export type FieldTransformator = (fieldValue: any, transformation?: FieldTransfo
|
|
|
4
4
|
original: any;
|
|
5
5
|
transformed: any;
|
|
6
6
|
};
|
|
7
|
+
export type DateTimeTransformator = (fieldValue: any, transformation?: FieldTransformation, fieldOptions?: Field, possibleDateFormats?: string[]) => {
|
|
8
|
+
transformationWasNeeded: boolean;
|
|
9
|
+
original: any;
|
|
10
|
+
transformed: any;
|
|
11
|
+
};
|
|
7
12
|
export type FieldTransformations = Partial<{
|
|
8
|
-
[key: string]: FieldTransformator;
|
|
13
|
+
[key: string]: FieldTransformator | DateTimeTransformator;
|
|
9
14
|
}>;
|
|
15
|
+
export declare const datesDateTimesAndTimesTransformations: FieldTransformations;
|
|
10
16
|
export declare const fieldTransformations: {
|
|
11
|
-
[x: string]: FieldTransformator;
|
|
17
|
+
[x: string]: FieldTransformator | DateTimeTransformator;
|
|
12
18
|
};
|
|
@@ -9,17 +9,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
9
9
|
};
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
13
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
14
|
-
if (ar || !(i in from)) {
|
|
15
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
16
|
-
ar[i] = from[i];
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
|
-
};
|
|
21
12
|
import { DateTime } from "luxon";
|
|
22
|
-
import { datePatterns, dateTimePatterns, timePatterns, } from "../../../../common/datePatterns";
|
|
23
13
|
var isTransformationNeeded = function (fieldValue, transformedValue) { return ({
|
|
24
14
|
transformationWasNeeded: fieldValue !== transformedValue,
|
|
25
15
|
original: fieldValue,
|
|
@@ -89,11 +79,9 @@ var stringFieldTransformations = {
|
|
|
89
79
|
return isTransformationNeeded(fieldValue, transformedValue);
|
|
90
80
|
},
|
|
91
81
|
};
|
|
92
|
-
var parseDate = function (date) {
|
|
82
|
+
var parseDate = function (date, possibleFormats) {
|
|
93
83
|
if (!date)
|
|
94
84
|
return null;
|
|
95
|
-
var allPatterns = __spreadArray(__spreadArray(__spreadArray([], datePatterns, true), dateTimePatterns, true), timePatterns, true);
|
|
96
|
-
var possibleFormats = allPatterns.map(function (date) { return date.value; });
|
|
97
85
|
for (var i = 0; i < possibleFormats.length; i++) {
|
|
98
86
|
var format = possibleFormats[i];
|
|
99
87
|
try {
|
|
@@ -108,14 +96,14 @@ var parseDate = function (date) {
|
|
|
108
96
|
}
|
|
109
97
|
return null;
|
|
110
98
|
};
|
|
111
|
-
var datesDateTimesAndTimesTransformations = {
|
|
112
|
-
autoformat: function (fieldValue, _, fieldOptions) {
|
|
99
|
+
export var datesDateTimesAndTimesTransformations = {
|
|
100
|
+
autoformat: function (fieldValue, _, fieldOptions, possibleDateFormats) {
|
|
113
101
|
var cleanFieldValue = fieldValue === null || fieldValue === void 0 ? void 0 : fieldValue.replace(/"/g, "");
|
|
114
102
|
var normalizedFieldValue = cleanFieldValue === null || cleanFieldValue === void 0 ? void 0 : cleanFieldValue.replace(/-/g, "/");
|
|
115
103
|
var isUnixTimestamp = /^\d+$/.test(normalizedFieldValue);
|
|
116
104
|
var luxonDate = isUnixTimestamp
|
|
117
105
|
? DateTime.fromSeconds(Number(normalizedFieldValue))
|
|
118
|
-
: parseDate(normalizedFieldValue);
|
|
106
|
+
: parseDate(normalizedFieldValue, possibleDateFormats);
|
|
119
107
|
var pattern = fieldOptions === null || fieldOptions === void 0 ? void 0 : fieldOptions.pattern;
|
|
120
108
|
var defaultObj = {
|
|
121
109
|
transformationWasNeeded: false,
|
|
@@ -7,7 +7,11 @@ export declare const addEmptyRows: (data: Record[], fields: Field[]) => (Record
|
|
|
7
7
|
};
|
|
8
8
|
})[];
|
|
9
9
|
export declare const addMeta: (record: any, index: number, uploadedRow?: any, transformedRow?: TransformedRecord) => Record;
|
|
10
|
-
export declare const
|
|
10
|
+
export declare const calculatePossibleDateFormats: (fieldsWithDateTransformations: Field[], sample: Record[]) => string[];
|
|
11
|
+
export declare const recordListToDataSet: (data: Record[], fields: Field[], withTransformations?: boolean) => {
|
|
12
|
+
isDatasetTransformed: boolean;
|
|
13
|
+
dataSet: RecordDataSet;
|
|
14
|
+
};
|
|
11
15
|
type transformToRecordsArgs = {
|
|
12
16
|
templateHeaderMatchings: HeaderMatchings;
|
|
13
17
|
enumFieldValueMatchings: EnumFieldValueMatchings;
|
|
@@ -45,6 +49,7 @@ type GetReviewDataSetArgs = {
|
|
|
45
49
|
fields: Field[];
|
|
46
50
|
};
|
|
47
51
|
export declare const getReviewDataSet: ({ records, fields }: GetReviewDataSetArgs) => {
|
|
52
|
+
isDatasetTransformed: boolean;
|
|
48
53
|
initialDataSet: {
|
|
49
54
|
[x: string]: Record;
|
|
50
55
|
};
|
|
@@ -18,9 +18,13 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
18
18
|
}
|
|
19
19
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
20
20
|
};
|
|
21
|
+
import { datesDateTimesAndTimesTransformations } from "../../Importer/common/Spreadsheet/transformation/transformators";
|
|
21
22
|
import { transformRecord } from "../../Importer/common/Spreadsheet/transformation";
|
|
22
23
|
import { FieldTypes, } from "../../types";
|
|
23
24
|
import { parseValue } from "../common/Spreadsheet/common";
|
|
25
|
+
import { DateTime } from "luxon";
|
|
26
|
+
import { allowedPatternValues } from "../../common/datePatterns";
|
|
27
|
+
import _ from "lodash";
|
|
24
28
|
var MINIMUM_ROW_COUNT = 20;
|
|
25
29
|
var getRowId = function (index) {
|
|
26
30
|
return index.toString();
|
|
@@ -39,29 +43,67 @@ export var addEmptyRows = function (data, fields) {
|
|
|
39
43
|
export var addMeta = function (record, index, uploadedRow, transformedRow) {
|
|
40
44
|
var _a;
|
|
41
45
|
if (uploadedRow === void 0) { uploadedRow = null; }
|
|
42
|
-
if (transformedRow === void 0) { transformedRow =
|
|
46
|
+
if (transformedRow === void 0) { transformedRow = {}; }
|
|
43
47
|
var rId = getRowId(index);
|
|
44
48
|
var meta = (_a = record._meta) !== null && _a !== void 0 ? _a : {};
|
|
45
|
-
return __assign(__assign({}, record), { _meta: __assign(__assign({}, meta), { id: rId, rowIndex: index, uploadedRow: uploadedRow, transformedRow:
|
|
49
|
+
return __assign(__assign({}, record), { _meta: __assign(__assign({}, meta), { id: rId, rowIndex: index, uploadedRow: uploadedRow, transformedRow: transformedRow }) });
|
|
46
50
|
};
|
|
47
|
-
export var
|
|
51
|
+
export var calculatePossibleDateFormats = function (fieldsWithDateTransformations, sample) {
|
|
52
|
+
var possibleDateFormats = [];
|
|
53
|
+
for (var _i = 0, sample_1 = sample; _i < sample_1.length; _i++) {
|
|
54
|
+
var record = sample_1[_i];
|
|
55
|
+
for (var _a = 0, fieldsWithDateTransformations_1 = fieldsWithDateTransformations; _a < fieldsWithDateTransformations_1.length; _a++) {
|
|
56
|
+
var field = fieldsWithDateTransformations_1[_a];
|
|
57
|
+
var value = record[field.name];
|
|
58
|
+
if (!value)
|
|
59
|
+
continue;
|
|
60
|
+
for (var i = 0; i < allowedPatternValues.length; i++) {
|
|
61
|
+
var format = allowedPatternValues[i];
|
|
62
|
+
try {
|
|
63
|
+
var currentDate = DateTime.fromFormat(value, format);
|
|
64
|
+
if (currentDate.isValid) {
|
|
65
|
+
possibleDateFormats.push(format);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (e) { }
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return Array.from(new Set(possibleDateFormats));
|
|
73
|
+
};
|
|
74
|
+
export var recordListToDataSet = function (data, fields, withTransformations) {
|
|
75
|
+
if (withTransformations === void 0) { withTransformations = true; }
|
|
48
76
|
var fieldWithTransformations = fields.filter(function (field) { var _a; return ((_a = field === null || field === void 0 ? void 0 : field.transformations) === null || _a === void 0 ? void 0 : _a.length) > 0; });
|
|
49
77
|
var initialData = data;
|
|
50
78
|
if (data.length < MINIMUM_ROW_COUNT) {
|
|
51
79
|
initialData = addEmptyRows(data, fields);
|
|
52
80
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
81
|
+
var fieldsWithDateTransformations = fieldWithTransformations.filter(function (field) {
|
|
82
|
+
return field.transformations.some(function (t) {
|
|
83
|
+
return Object.keys(datesDateTimesAndTimesTransformations).includes(t.transformation_type);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
var possibleDateFormats = [];
|
|
87
|
+
if (fieldsWithDateTransformations.length > 0) {
|
|
88
|
+
possibleDateFormats.push.apply(possibleDateFormats, calculatePossibleDateFormats(fieldsWithDateTransformations, _.sampleSize(initialData, 100)));
|
|
89
|
+
}
|
|
90
|
+
var isDatasetTransformed = false;
|
|
91
|
+
var res = initialData.reduce(function (dataSet, record, i) {
|
|
92
|
+
var transformedRecord = {};
|
|
93
|
+
if (withTransformations && fieldWithTransformations.length > 0) {
|
|
56
94
|
transformedRecord = transformRecord({
|
|
57
95
|
record: record,
|
|
58
96
|
fields: fieldWithTransformations,
|
|
97
|
+
possibleDateFormats: possibleDateFormats,
|
|
59
98
|
});
|
|
60
99
|
}
|
|
100
|
+
if (JSON.stringify(transformedRecord) !== "{}")
|
|
101
|
+
isDatasetTransformed = true;
|
|
61
102
|
var recordWithMeta = addMeta(record, i, undefined, transformedRecord);
|
|
62
103
|
dataSet[recordWithMeta._meta.id] = recordWithMeta;
|
|
63
104
|
return dataSet;
|
|
64
105
|
}, {});
|
|
106
|
+
return { isDatasetTransformed: isDatasetTransformed, dataSet: res };
|
|
65
107
|
};
|
|
66
108
|
var compareFormattedRecord = function (originalRecord, formattedRecord) {
|
|
67
109
|
var comparisonResult = {};
|
|
@@ -140,7 +182,7 @@ export var getPreviewDataSet = function (_a) {
|
|
|
140
182
|
});
|
|
141
183
|
return entry;
|
|
142
184
|
});
|
|
143
|
-
return recordListToDataSet(data, fields);
|
|
185
|
+
return recordListToDataSet(data, fields).dataSet;
|
|
144
186
|
};
|
|
145
187
|
return { fields: fields, initialDataSet: getInitialDataSet() };
|
|
146
188
|
};
|
|
@@ -160,7 +202,7 @@ export var getTemplateFields = function (_a) {
|
|
|
160
202
|
export var getReviewDataSet = function (_a) {
|
|
161
203
|
var _b;
|
|
162
204
|
var records = _a.records, fields = _a.fields;
|
|
163
|
-
var
|
|
205
|
+
var _c = recordListToDataSet(addEmptyRows(records, fields), fields), isDatasetTransformed = _c.isDatasetTransformed, baseInitialDataSet = _c.dataSet;
|
|
164
206
|
var highestRowIndex = 0;
|
|
165
207
|
Object.keys(baseInitialDataSet).forEach(function (key) {
|
|
166
208
|
var record = baseInitialDataSet[key];
|
|
@@ -170,5 +212,5 @@ export var getReviewDataSet = function (_a) {
|
|
|
170
212
|
});
|
|
171
213
|
var emptyRowAtBottom = addMeta({}, highestRowIndex + 1);
|
|
172
214
|
var initialDataSet = __assign(__assign({}, baseInitialDataSet), (_b = {}, _b[emptyRowAtBottom._meta.id] = emptyRowAtBottom, _b));
|
|
173
|
-
return { initialDataSet: initialDataSet };
|
|
215
|
+
return { isDatasetTransformed: isDatasetTransformed, initialDataSet: initialDataSet };
|
|
174
216
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AppResponse, RecordDataSet } from "../../types";
|
|
2
|
-
export declare const useSubmitToServer: () => {
|
|
2
|
+
export declare const useSubmitToServer: (setIsTransformTooltipOpened: any) => {
|
|
3
3
|
appResponse: AppResponse;
|
|
4
4
|
isSubmitting: boolean;
|
|
5
5
|
onSubmitToServer: (dataSet: RecordDataSet, afterSubmitCallback: (dataSet: RecordDataSet) => void) => Promise<void>;
|
|
@@ -118,7 +118,7 @@ var filterAndMapWithBackendErrors = function (dataSet, errors) {
|
|
|
118
118
|
return __assign(__assign({}, record), { _meta: __assign(__assign({}, meta), { isInvalid: true, backendErrors: errors[rId] }) });
|
|
119
119
|
}, []);
|
|
120
120
|
};
|
|
121
|
-
export var useSubmitToServer = function () {
|
|
121
|
+
export var useSubmitToServer = function (setIsTransformTooltipOpened) {
|
|
122
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;
|
|
123
123
|
var _b = useState(false), isSubmitting = _b[0], setIsSubmitting = _b[1];
|
|
124
124
|
var _c = useState(false), importWasSuccessful = _c[0], setImportWasSuccessful = _c[1];
|
|
@@ -157,7 +157,8 @@ export var useSubmitToServer = function () {
|
|
|
157
157
|
});
|
|
158
158
|
invalidRecords_1 = __spreadArray(__spreadArray([], invalidRecords_1, true), (recordsToDisplayFiltered || []), true);
|
|
159
159
|
}
|
|
160
|
-
invalidDataSet = recordListToDataSet(invalidRecords_1, reviewFields_1);
|
|
160
|
+
invalidDataSet = recordListToDataSet(invalidRecords_1, reviewFields_1, false).dataSet;
|
|
161
|
+
setIsTransformTooltipOpened(false);
|
|
161
162
|
afterSubmitCallback(invalidDataSet);
|
|
162
163
|
if (!!previewMode) return [3 /*break*/, 5];
|
|
163
164
|
return [4 /*yield*/, trackImportedRowsCount(fuseApi, templateSlug, validDataSetLength)];
|
|
@@ -1,21 +1,22 @@
|
|
|
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 {
|
|
4
|
+
import { addToast } from "../../../../common/Toast";
|
|
5
|
+
import { useReviewContext, useSpreadsheetContext } from "../../../../Importer";
|
|
5
6
|
import { useFilteredDataContext } from "../../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
6
7
|
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 () {
|
|
11
11
|
var _a, _b;
|
|
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
|
-
var
|
|
14
|
+
var fields = useSpreadsheetContext().fields;
|
|
15
|
+
var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
|
|
15
16
|
var columnsWithErrorCounts = useValidationContext().columnsWithErrorCounts;
|
|
16
17
|
var t = useTranslation("review").t;
|
|
17
|
-
var
|
|
18
|
-
var
|
|
18
|
+
var _e = useState([]), errorArray = _e[0], setErrorArray = _e[1];
|
|
19
|
+
var _f = useState(false), isMenuOpened = _f[0], setIsMenuOpened = _f[1];
|
|
19
20
|
useEffect(function () {
|
|
20
21
|
var listener = function () {
|
|
21
22
|
var getErrorArray = function () {
|
|
@@ -23,7 +24,9 @@ export var FilterByErrors = function () {
|
|
|
23
24
|
var _loop_1 = function (key, value) {
|
|
24
25
|
if (value > 0) {
|
|
25
26
|
var field = fields.find(function (f) { return f.name === key; });
|
|
26
|
-
|
|
27
|
+
if (field) {
|
|
28
|
+
errorArray.push({ label: field.label, value: field.name });
|
|
29
|
+
}
|
|
27
30
|
}
|
|
28
31
|
};
|
|
29
32
|
for (var _i = 0, _a = Object.entries(columnsWithErrorCounts.current); _i < _a.length; _i++) {
|
|
@@ -17,7 +17,7 @@ import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-run
|
|
|
17
17
|
import { useEffect, useState } from "react";
|
|
18
18
|
import { useTranslation } from "react-i18next";
|
|
19
19
|
import styled, { css } from "styled-components";
|
|
20
|
-
import {
|
|
20
|
+
import { useReviewContext } from "../../../Importer";
|
|
21
21
|
import { useDataSetContext } from "../../../Importer/common/Spreadsheet/DataSetContextProvider";
|
|
22
22
|
import { useDuplicateDataContext } from "../../../Importer/common/Spreadsheet/DuplicateDataContextProvider";
|
|
23
23
|
import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
@@ -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 =
|
|
48
|
+
var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
|
|
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;
|
|
@@ -14,17 +14,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
14
14
|
return __assign.apply(this, arguments);
|
|
15
15
|
};
|
|
16
16
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
import { useRef, useState } from "react";
|
|
18
|
+
import { useTranslation } from "react-i18next";
|
|
17
19
|
import styled, { css } from "styled-components";
|
|
18
|
-
import {
|
|
19
|
-
import { SearchIcon } from "./icons";
|
|
20
|
+
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
20
21
|
import { useDebounce } from "../../../hooks";
|
|
21
|
-
import {
|
|
22
|
+
import { useReviewContext } from "../../../Importer";
|
|
23
|
+
import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
24
|
+
import { Div } from "../../../styled";
|
|
22
25
|
import { colors } from "../../../styled/theme/colorPalette";
|
|
23
26
|
import { textStyles } from "../../../styled/theme/textStyles";
|
|
24
|
-
import {
|
|
25
|
-
import { useTranslation } from "react-i18next";
|
|
26
|
-
import { Div } from "../../../styled";
|
|
27
|
-
import { useFilteredDataContext } from "../../../Importer/common/Spreadsheet/FilteredDataContextProvider";
|
|
27
|
+
import { SearchIcon } from "./icons";
|
|
28
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) {
|
|
29
29
|
var isOpen = _a.isOpen;
|
|
30
30
|
return (isOpen ? colors.orange50 : "none");
|
|
@@ -66,7 +66,7 @@ var SearchInput = function (_a) {
|
|
|
66
66
|
export var SearchRows = function (_a) {
|
|
67
67
|
var _b = _a.testId, testId = _b === void 0 ? "ta-search-rows" : _b;
|
|
68
68
|
var _c = useFilteredDataContext(), filteredInputValue = _c.filteredInputValue, setFilteredInputValue = _c.setFilteredInputValue;
|
|
69
|
-
var isTransformTooltipOpened =
|
|
69
|
+
var isTransformTooltipOpened = useReviewContext().isTransformTooltipOpened;
|
|
70
70
|
var handleChangeInputValue = function (value) {
|
|
71
71
|
setFilteredInputValue(value);
|
|
72
72
|
};
|