fuse-importer 0.2.0-testing → 0.2.1-testing
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/Importer/ImporterWithContext.js +9 -8
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +2 -2
- package/lib/esm/Importer/PreviewModeBanner.js +2 -2
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +4 -21
- package/lib/esm/Importer/Stepper/index.js +13 -15
- package/lib/esm/Importer/TrialModeBanner.d.ts +1 -0
- package/lib/esm/Importer/TrialModeBanner.js +22 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +1 -1
- package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.d.ts +0 -1
- package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.js +1 -6
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.d.ts +1 -2
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +1 -2
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.d.ts +0 -3
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.js +13 -46
- package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.js +2 -7
- package/lib/esm/Importer/common/Spreadsheet/components/FindAndReplace/index.js +2 -8
- package/lib/esm/Importer/common/Spreadsheet/components/{SpreadsheetData/index.d.ts → SpreadsheetData.d.ts} +1 -1
- package/lib/esm/Importer/common/Spreadsheet/components/{SpreadsheetData/index.js → SpreadsheetData.js} +17 -18
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +1 -2
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.d.ts +0 -11
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +10 -13
- package/lib/esm/Importer/contexts/ImporterContextProvider.d.ts +1 -3
- package/lib/esm/Importer/contexts/ImporterContextProvider.js +0 -4
- package/lib/esm/Importer/hooks/useSubmitToServer.js +0 -25
- package/lib/esm/common/Table/TableActions/SearchRows.js +17 -9
- package/lib/esm/common/Table/TableView/TableRows/TableRow.js +1 -1
- package/lib/esm/common/inputs/Autocomplete.js +1 -1
- package/lib/esm/common/inputs/TextInput.d.ts +0 -1
- package/lib/esm/common/inputs/TextInput.js +2 -10
- package/lib/esm/index.js +1 -1
- package/lib/esm/locales/de.d.ts +0 -10
- package/lib/esm/locales/de.js +0 -10
- package/lib/esm/locales/en.d.ts +0 -10
- package/lib/esm/locales/en.js +0 -10
- package/lib/esm/locales/es.d.ts +0 -10
- package/lib/esm/locales/es.js +0 -10
- package/lib/esm/locales/fr.d.ts +0 -10
- package/lib/esm/locales/fr.js +0 -10
- package/lib/esm/types.d.ts +0 -1
- package/lib/main.js +9 -9
- package/package.json +1 -1
- package/lib/esm/Importer/WarningsBanner.d.ts +0 -3
- package/lib/esm/Importer/WarningsBanner.js +0 -42
- package/lib/esm/Importer/common/Spreadsheet/KeyboardEventContextProvider/index.d.ts +0 -7
- package/lib/esm/Importer/common/Spreadsheet/KeyboardEventContextProvider/index.js +0 -73
- package/lib/esm/Importer/common/Spreadsheet/SearchContextProvider/index.d.ts +0 -15
- package/lib/esm/Importer/common/Spreadsheet/SearchContextProvider/index.js +0 -43
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useCellSelection.d.ts +0 -24
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useCellSelection.js +0 -207
- package/lib/esm/Importer/common/Spreadsheet/UndoRedoContextProvider/index.d.ts +0 -16
- package/lib/esm/Importer/common/Spreadsheet/UndoRedoContextProvider/index.js +0 -104
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData/CellContextProvider.d.ts +0 -23
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData/CellContextProvider.js +0 -128
|
@@ -14,7 +14,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
14
14
|
return __assign.apply(this, arguments);
|
|
15
15
|
};
|
|
16
16
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
|
-
import { useEffect } from "react";
|
|
17
|
+
import { useEffect, useRef } from "react";
|
|
18
18
|
import { useTranslation } from "react-i18next";
|
|
19
19
|
import styled, { ThemeProvider, css } from "styled-components";
|
|
20
20
|
import { Toast } from "../common";
|
|
@@ -22,20 +22,19 @@ import { AppLoadingContextProvider } from "../common/AppLoadingContextProvider";
|
|
|
22
22
|
import { EventManagerContextProvider } from "../common/EventManagerContextProvider";
|
|
23
23
|
import { Div } from "../styled";
|
|
24
24
|
import Matcher from "./Matcher";
|
|
25
|
+
import { PreviewFirstTime } from "./PreviewFirstTime";
|
|
26
|
+
import { PreviewModeBanner } from "./PreviewModeBanner";
|
|
25
27
|
import Review from "./Review";
|
|
26
28
|
import { ReviewContextProvider, useReviewContext, } from "./Review/ReviewContextProvider";
|
|
27
29
|
import { Stepper } from "./Stepper/index";
|
|
30
|
+
import { TrialModeBanner } from "./TrialModeBanner";
|
|
28
31
|
import Uploader from "./Uploader";
|
|
29
|
-
import { WarningsBanner } from "./WarningsBanner";
|
|
30
32
|
import { AppLoading } from "./common/AppLoading";
|
|
31
33
|
import { GlobalStyle } from "./common/GlobalStyle";
|
|
32
34
|
import { ImporterFonts } from "./common/ImporterFonts";
|
|
33
35
|
import { DataSetContextProvider } from "./common/Spreadsheet/DataSetContextProvider";
|
|
34
36
|
import { DuplicateDataContextProvider } from "./common/Spreadsheet/DuplicateDataContextProvider";
|
|
35
37
|
import { FilteredDataContextProvider } from "./common/Spreadsheet/FilteredDataContextProvider";
|
|
36
|
-
import { KeyboardEventContextProvider } from "./common/Spreadsheet/KeyboardEventContextProvider";
|
|
37
|
-
import { SearchContextProvider } from "./common/Spreadsheet/SearchContextProvider";
|
|
38
|
-
import { UndoRedoContextProvider } from "./common/Spreadsheet/UndoRedoContextProvider";
|
|
39
38
|
import { ValidationContextProvider } from "./common/Spreadsheet/ValidationContextProvider";
|
|
40
39
|
import { useFieldSorting } from "./common/Spreadsheet/useFieldSorting";
|
|
41
40
|
import { useImporterContext } from "./contexts/ImporterContextProvider";
|
|
@@ -74,10 +73,11 @@ var ContentRenderer = function (_a) {
|
|
|
74
73
|
};
|
|
75
74
|
var initialDataSet = getInitialDataSet();
|
|
76
75
|
var getDefaultSortCompareFn = useFieldSorting().getDefaultSortCompareFn;
|
|
77
|
-
return (_jsx(DataSetContextProvider, __assign({ initialDataSet: initialDataSet || {} }, { children: _jsx(
|
|
76
|
+
return (_jsx(DataSetContextProvider, __assign({ initialDataSet: initialDataSet || {} }, { children: _jsx(DuplicateDataContextProvider, __assign({ fields: fields, isReadOnly: isReadOnly }, { children: _jsx(ValidationContextProvider, __assign({ fields: fields, isReadOnly: isReadOnly, options: __assign(__assign({}, options), { showCheckboxColumn: true }), onValidateRecord: onValidateRecord }, { children: _jsxs(FilteredDataContextProvider, __assign({ getSortCompareFn: getDefaultSortCompareFn }, { children: [_jsxs(Div, { children: [previewMode && _jsx(PreviewModeBanner, {}), !previewMode && _jsx(TrialModeBanner, {}), _jsx(Stepper, { stepLabels: stepLabels, logoURL: logoURL })] }), _jsxs(Content, { children: [currentStepIndex === 0 && _jsx(Uploader, {}), currentStepIndex === 1 && _jsx(Matcher, {}), currentStepIndex === 2 && templateHeaders && _jsx(Review, {})] })] })) })) })) })));
|
|
78
77
|
};
|
|
79
78
|
export var ImporterWithContext = function () {
|
|
80
|
-
var _a = useImporterContext(), inTrialMode = _a.inTrialMode, currentStepIndex = _a.currentStepIndex, matcherSubstep = _a.matcherSubstep, templateHeaders = _a.templateHeaders, theme = _a.theme, logoURL = _a.logoURL, previewFirstTime = _a.previewFirstTime, initialRecords = _a.initialRecords, _b = _a.importerOptions, zIndex = _b.zIndex, previewMode = _b.previewMode, isModal = _b.modal
|
|
79
|
+
var _a = useImporterContext(), inTrialMode = _a.inTrialMode, currentStepIndex = _a.currentStepIndex, matcherSubstep = _a.matcherSubstep, templateHeaders = _a.templateHeaders, theme = _a.theme, logoURL = _a.logoURL, previewFirstTime = _a.previewFirstTime, initialRecords = _a.initialRecords, _b = _a.importerOptions, zIndex = _b.zIndex, previewMode = _b.previewMode, isModal = _b.modal;
|
|
80
|
+
var layoutRef = useRef(null);
|
|
81
81
|
var t = useTranslation().t;
|
|
82
82
|
useEffect(function () {
|
|
83
83
|
var _a;
|
|
@@ -88,6 +88,7 @@ export var ImporterWithContext = function () {
|
|
|
88
88
|
t("general:steps.match"),
|
|
89
89
|
t("general:steps.review"),
|
|
90
90
|
];
|
|
91
|
+
var shouldShowPreviewFirstTime = previewFirstTime && previewMode;
|
|
91
92
|
var contentRendererProps = {
|
|
92
93
|
previewMode: previewMode,
|
|
93
94
|
stepLabels: stepLabels,
|
|
@@ -95,6 +96,6 @@ export var ImporterWithContext = function () {
|
|
|
95
96
|
currentStepIndex: currentStepIndex,
|
|
96
97
|
templateHeaders: templateHeaders,
|
|
97
98
|
};
|
|
98
|
-
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(AppLoadingContextProvider, { children: _jsxs(EventManagerContextProvider, { children: [_jsx(Toast, { zIndex: zIndex + 1, toastStyle: toastStyle }), _jsx(GlobalStyle, {}), _jsx(ImporterFonts, {}), templateHeaders ? (_jsx(ReviewContextProvider, __assign({ initialRecords: initialRecords }, { children: _jsxs(_Fragment, { children: [isModal && _jsx(Backdrop, {}), _jsx(Layout, __assign({ zIndex: zIndex, ref: layoutRef, isModal: isModal }, { children: _jsx(ContentRenderer, __assign({}, contentRendererProps)) }))] }) }))) : (_jsx(AppLoading, {}))] }) }) })));
|
|
99
|
+
return (_jsx(ThemeProvider, __assign({ theme: theme }, { children: _jsx(AppLoadingContextProvider, { children: _jsxs(EventManagerContextProvider, { children: [_jsx(Toast, { zIndex: zIndex + 1, toastStyle: toastStyle }), _jsx(GlobalStyle, {}), _jsx(ImporterFonts, {}), templateHeaders ? (_jsx(ReviewContextProvider, __assign({ initialRecords: initialRecords }, { children: _jsxs(_Fragment, { children: [isModal && _jsx(Backdrop, {}), _jsx(Layout, __assign({ zIndex: zIndex, ref: layoutRef, isModal: isModal }, { children: shouldShowPreviewFirstTime ? (_jsx(PreviewFirstTime, {})) : (_jsx(ContentRenderer, __assign({}, contentRendererProps))) }))] }) }))) : (_jsx(AppLoading, {}))] }) }) })));
|
|
99
100
|
};
|
|
100
101
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
|
|
@@ -62,7 +62,7 @@ export var EnumFieldMatcher = function (_a) {
|
|
|
62
62
|
dataCount: data.length,
|
|
63
63
|
maxVisibleRows: MAX_VISIBLE_ROWS,
|
|
64
64
|
});
|
|
65
|
-
return (_jsxs(Div,
|
|
65
|
+
return (_jsxs(Div, { children: [_jsx(Div, __assign({ h5: true, mb: 16 }, { children: t("columns.values_for_the_column", {
|
|
66
66
|
column: "".concat(templateHeaderLabel).concat(isRequired ? "*" : ""),
|
|
67
|
-
}) })), _jsx(Div, __assign({ mb: 40 }, { children: _jsx(EnumFieldMatcherContextProvider, __assign({ templateHeaderLabel: templateHeaderLabel }, { children: _jsx(TableView, { rowCount: sortedData.length, h: tableHeight, rowHeight: tableRowHeight, data: sortedData, columns: tableColumns, bg: colors.white }) })) }))] }))
|
|
67
|
+
}) })), _jsx(Div, __assign({ mb: 40 }, { children: _jsx(EnumFieldMatcherContextProvider, __assign({ templateHeaderLabel: templateHeaderLabel }, { children: _jsx(TableView, { rowCount: sortedData.length, h: tableHeight, rowHeight: tableRowHeight, data: sortedData, columns: tableColumns, bg: colors.white }) })) }))] }));
|
|
68
68
|
};
|
|
@@ -10,10 +10,10 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { useTranslation } from "react-i18next";
|
|
14
13
|
import { Div, Span, theme } from "../styled";
|
|
15
14
|
import { infoIcon } from "./common/icons";
|
|
15
|
+
import { useTranslation } from "react-i18next";
|
|
16
16
|
export var PreviewModeBanner = function () {
|
|
17
17
|
var t = useTranslation("general").t;
|
|
18
|
-
return (_jsxs(Div, __assign({ bg: theme.colors.blue100, h:
|
|
18
|
+
return (_jsxs(Div, __assign({ bg: theme.colors.blue100, h: 80, alignCenter: true }, { children: [_jsx(Div, __assign({ ml: 33, mr: 8 }, { children: infoIcon })), _jsx(Span, __assign({ mr: 16 }, { children: t("preview_mode_banner.title") }))] })));
|
|
19
19
|
};
|
|
@@ -10,34 +10,17 @@ var __assign = (this && this.__assign) || function () {
|
|
|
10
10
|
return __assign.apply(this, arguments);
|
|
11
11
|
};
|
|
12
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
-
import { useTranslation } from "react-i18next";
|
|
14
|
-
import { useDataSetContext } from "../../Importer/common/Spreadsheet/DataSetContextProvider";
|
|
15
|
-
import { Button, Modal } from "../../common";
|
|
16
13
|
import { Div } from "../../styled";
|
|
17
|
-
import {
|
|
18
|
-
import { useImporterContext } from "../contexts/ImporterContextProvider";
|
|
14
|
+
import { Button, Modal } from "../../common";
|
|
19
15
|
import { submitIcon } from "./common/icons";
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return dataSet;
|
|
23
|
-
var newDataSet = {};
|
|
24
|
-
for (var i = 0; i < 100 && i < ids.length; i++) {
|
|
25
|
-
var index = ids[i];
|
|
26
|
-
newDataSet[index] = dataSet[index];
|
|
27
|
-
}
|
|
28
|
-
return newDataSet;
|
|
29
|
-
};
|
|
16
|
+
import { useTranslation } from "react-i18next";
|
|
17
|
+
import { useDataSetContext } from "../../Importer/common/Spreadsheet/DataSetContextProvider";
|
|
30
18
|
export var StepperSubmitModal = function (_a) {
|
|
31
19
|
var isSubmitModalOpen = _a.isSubmitModalOpen, onCloseModal = _a.onCloseModal, onSubmit = _a.onSubmit;
|
|
32
20
|
var t = useTranslation("general").t;
|
|
33
21
|
var dataSet = useDataSetContext().dataSet;
|
|
34
|
-
var filteredDataIds = useFilteredDataContext().filteredDataIds;
|
|
35
|
-
var inTrialMode = useImporterContext().inTrialMode;
|
|
36
22
|
return (_jsx(Modal, __assign({ isOpen: isSubmitModalOpen, onClose: function () { return onCloseModal(); } }, { children: _jsxs(Div, __assign({ centered: true, flexColumn: true, p: 60 }, { children: [_jsx(Div, { children: submitIcon }), _jsx(Div, __assign({ h5: true, mt: 20, "data-cy": "submit-modal-title" }, { children: t("submit_modal.title") })), _jsx(Div, __assign({ body1: true, mt: 12, w: 448, textAlignCenter: true, "data-cy": "submit-modal-description" }, { children: t("submit_modal.description") })), _jsxs(Div, __assign({ dflex: true, mt: 40, w100: true, centered: true }, { children: [_jsx(Button, __assign({ w: 115, variant: "secondary", mr: 10, onClick: function () { return onCloseModal(); }, "data-test-id": "submit-modal-go-back" }, { children: t("submit_modal.cancel") })), _jsx(Button, __assign({ "data-cy": "yes-submit", w: 140, ml: 10, onClick: function () {
|
|
37
|
-
|
|
38
|
-
? getValuesFromDataSet(dataSet.current, filteredDataIds, 100)
|
|
39
|
-
: dataSet.current;
|
|
40
|
-
onSubmit(currentDataSet);
|
|
23
|
+
onSubmit(dataSet === null || dataSet === void 0 ? void 0 : dataSet.current);
|
|
41
24
|
onCloseModal();
|
|
42
25
|
} }, { children: t("submit_modal.submit") }))] }))] })) })));
|
|
43
26
|
};
|
|
@@ -13,7 +13,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
13
13
|
};
|
|
14
14
|
return __assign.apply(this, arguments);
|
|
15
15
|
};
|
|
16
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
17
|
import { useEffect, useState } from "react";
|
|
18
18
|
import { useTranslation } from "react-i18next";
|
|
19
19
|
import styled, { css } from "styled-components";
|
|
@@ -23,12 +23,12 @@ import { useEventManagerContext } from "../../common/EventManagerContextProvider
|
|
|
23
23
|
import { Div } from "../../styled/utils";
|
|
24
24
|
import { ColumnType } from "../Matcher/common/types";
|
|
25
25
|
import { useReviewContext } from "../Review/ReviewContextProvider";
|
|
26
|
-
import { useDataSetContext } from "../common/Spreadsheet/DataSetContextProvider";
|
|
27
26
|
import { useImporterContext } from "../contexts/ImporterContextProvider";
|
|
28
27
|
import { ConfirmCloseModal } from "./ConfirmCloseModal";
|
|
29
28
|
import { Step } from "./Step";
|
|
30
29
|
import { StepperSubmitModal } from "./StepperSubmitModal";
|
|
31
30
|
import { UnmatchedHeadersModal } from "./UnmatchedHeadersModal";
|
|
31
|
+
import { useDataSetContext } from "../common/Spreadsheet/DataSetContextProvider";
|
|
32
32
|
var StepperWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n user-select: none;\n"], ["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n user-select: none;\n"])), function (p) { return p.theme.colors.white; }, function (p) { return p.theme.colors.gray300; });
|
|
33
33
|
var StepperContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n padding-left: 32px;\n padding-right: 32px;\n width: 100%;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n padding-left: 32px;\n padding-right: 32px;\n width: 100%;\n"])));
|
|
34
34
|
var Steps = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n @media (max-width: 630px) {\n display: none;\n }\n"], ["\n @media (max-width: 630px) {\n display: none;\n }\n"])));
|
|
@@ -47,16 +47,15 @@ export var Stepper = function (_a) {
|
|
|
47
47
|
var _d = useState(false), isConfirmCloseModalOpen = _d[0], setIsConfirmCloseModalOpen = _d[1];
|
|
48
48
|
var _e = useDataSetContext(), dataSetLength = _e.dataSetLength, emptyRecordIds = _e.emptyRecordIds;
|
|
49
49
|
var _f = useState(true), isSubmitDisabled = _f[0], setIsSubmitDisabled = _f[1];
|
|
50
|
-
var
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var
|
|
50
|
+
var headerMappingsLoaded = useImporterContext().headerMappingsLoaded;
|
|
51
|
+
var _g = useReviewContext(), appResponse = _g.appResponse, onSubmit = _g.onSubmit;
|
|
52
|
+
var _h = useValidationContext(), totalErrorCount = _h.totalErrorCount, spreadsheetInitialized = _h.spreadsheetInitialized;
|
|
53
|
+
var _j = useEventManagerContext(), on = _j.on, off = _j.off, EVENTS = _j.EVENTS;
|
|
54
54
|
var updateSpreadsheetDisabled = function () {
|
|
55
55
|
var isSpreadsheetEmpty = dataSetLength.current === emptyRecordIds.current.size;
|
|
56
56
|
var isDisabled = totalErrorCount.current > 0 ||
|
|
57
57
|
!spreadsheetInitialized ||
|
|
58
|
-
isSpreadsheetEmpty
|
|
59
|
-
!hasValidSubmitFn;
|
|
58
|
+
isSpreadsheetEmpty;
|
|
60
59
|
setIsSubmitDisabled(isDisabled);
|
|
61
60
|
};
|
|
62
61
|
useEffect(function () {
|
|
@@ -68,15 +67,14 @@ export var Stepper = function (_a) {
|
|
|
68
67
|
useEffect(function () {
|
|
69
68
|
updateSpreadsheetDisabled();
|
|
70
69
|
}, [spreadsheetInitialized]);
|
|
71
|
-
var
|
|
72
|
-
var
|
|
70
|
+
var _k = useImporterContext(), initialRecords = _k.initialRecords, currentStepIndex = _k.currentStepIndex, templateHeaderMatchings = _k.templateHeaderMatchings, matcherSubstep = _k.matcherSubstep, templateHeaders = _k.templateHeaders, setMatcherSubstep = _k.setMatcherSubstep, setCurrentStepIndex = _k.setCurrentStepIndex, onClose = _k.onClose, isUsingManualImport = _k.isUsingManualImport, resetImporterWhenUsingManualImport = _k.resetImporterWhenUsingManualImport, uploadedData = _k.uploadedData;
|
|
71
|
+
var _l = useState(true), isContinueDisabled = _l[0], setIsContinueDisabled = _l[1];
|
|
73
72
|
var templateHeaderLabels = Object.keys(templateHeaderMatchings || []);
|
|
74
73
|
var unmatchedHeadersCount = templateHeaderLabels.filter(function (templateHeaderLabel) { return !templateHeaderMatchings[templateHeaderLabel]; }).length;
|
|
75
|
-
var allColumnsUnmatched = unmatchedHeadersCount === templateHeaders.length;
|
|
76
74
|
var isLastSubMatchStep = matcherSubstep === 1;
|
|
77
75
|
useEffect(function () {
|
|
78
|
-
setIsContinueDisabled(
|
|
79
|
-
}, [currentStepIndex, headerMappingsLoaded
|
|
76
|
+
setIsContinueDisabled(currentStepIndex === 1 && !headerMappingsLoaded);
|
|
77
|
+
}, [currentStepIndex, headerMappingsLoaded]);
|
|
80
78
|
var setStep = function () {
|
|
81
79
|
var templateEnumFields = templateHeaders === null || templateHeaders === void 0 ? void 0 : templateHeaders.filter(function (header) { return header.column_type === ColumnType.enum; });
|
|
82
80
|
var templateHasEnumFields = !!(templateEnumFields === null || templateEnumFields === void 0 ? void 0 : templateEnumFields.length);
|
|
@@ -136,8 +134,8 @@ export var Stepper = function (_a) {
|
|
|
136
134
|
}) })));
|
|
137
135
|
var leftButtonUI = (_jsx(Div, __assign({ style: { flex: 1 } }, { children: !initialRecords && (_jsxs(StepperButtonContainer, __assign({ align: "left" }, { children: [logoURL && (_jsx(Div, __assign({ forDesktop: true }, { children: _jsx(Logo, { src: logoURL, alt: "" }) }))), currentStepIndex > 0 && !appResponse && (_jsx(GoBackButtonWrapper, { children: _jsx(Button, __assign({ variant: "secondary", onClick: goBack }, { children: t("stepper.go_back") })) }))] }))) })));
|
|
138
136
|
var rightButtonUI = (_jsxs(StepperButtonContainer, __assign({ align: "right" }, { children: [(isMatchStep || isVerifyStep) && (_jsx(Button, __assign({ "data-cy": "continue-button", isDisabled: isContinueDisabled, variant: "primary", onClick: continueToNextStep }, { children: t("stepper.continue") }))), isReviewStep && (_jsx(Button, __assign({ variant: "primary", isDisabled: isSubmitDisabled, "data-cy": "submit_disabled_" + isSubmitDisabled, onClick: function () { return setIsSubmitModalOpen(true); } }, { children: t("stepper.submit") }))), _jsx(CloseIcon, __assign({ "data-test-id": "close-importer", centered: true, clickable: true, onClick: handleOnClose }, { children: closeIconCondensed }))] })));
|
|
139
|
-
return (_jsxs(
|
|
137
|
+
return (_jsxs(_Fragment, { children: [_jsx(StepperWrapper, __assign({ pRelative: true, alignCenter: true, w100: true, h: 72, centered: true }, { children: _jsxs(StepperContainer, { children: [leftButtonUI, _jsx(Steps, __assign({ alignCenter: true }, { children: stepsUI })), rightButtonUI] }) })), _jsx(UnmatchedHeadersModal, { isUnmatchedHeadersModalOpen: isUnmatchedHeadersModalOpen, unmatchedHeadersCount: unmatchedHeadersCount, onSetStep: function () { return setStep(); }, onCloseUnmatchedHeadersModal: function () {
|
|
140
138
|
return setIsUnmatchedHeadersModalOpen(false);
|
|
141
|
-
} }), _jsx(StepperSubmitModal, { isSubmitModalOpen: isSubmitModalOpen, onCloseModal: function () { return setIsSubmitModalOpen(false); }, onSubmit: onSubmit }), _jsx(ConfirmCloseModal, { isOpen: isConfirmCloseModalOpen, onClose: function () { return setIsConfirmCloseModalOpen(false); }, onCloseImporter: onClose })] }))
|
|
139
|
+
} }), _jsx(StepperSubmitModal, { isSubmitModalOpen: isSubmitModalOpen, onCloseModal: function () { return setIsSubmitModalOpen(false); }, onSubmit: onSubmit }), _jsx(ConfirmCloseModal, { isOpen: isConfirmCloseModalOpen, onClose: function () { return setIsConfirmCloseModalOpen(false); }, onCloseImporter: onClose })] }));
|
|
142
140
|
};
|
|
143
141
|
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TrialModeBanner: () => JSX.Element;
|
|
@@ -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 { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
13
|
+
import { Button } from "../common";
|
|
14
|
+
import { Div, Span, theme } from "../styled";
|
|
15
|
+
import { exclamationPointIcon } from "./common/icons";
|
|
16
|
+
import { useImporterContext } from "./contexts/ImporterContextProvider";
|
|
17
|
+
export var TrialModeBanner = function () {
|
|
18
|
+
var inTrialMode = useImporterContext().inTrialMode;
|
|
19
|
+
return (_jsx(_Fragment, { children: inTrialMode && (_jsxs(Div, __assign({ bg: theme.colors.orange100, h: 80, dflex: true, alignCenter: true, justifyCenter: true }, { children: [_jsx(Div, __assign({ ml: 33, mr: 8 }, { children: exclamationPointIcon })), _jsx(Span, __assign({ mr: 16 }, { children: "You're currently in Trial mode. Subscribe to a plan to deploy to your website." })), _jsx(Button, __assign({ w: 120, br: 8, variant: "secondary", onClick: function () {
|
|
20
|
+
window.location.href = "".concat(process.env.REACT_APP_API_BASE_URL, "/account/billing");
|
|
21
|
+
} }, { children: "Select plan" }))] }))) }));
|
|
22
|
+
};
|
|
@@ -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, "data-cy": header
|
|
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) {
|
|
@@ -2,7 +2,6 @@ import React, { MutableRefObject } from "react";
|
|
|
2
2
|
import { SpreadsheetFilter } from "../SpreadsheetContextProvider/useSpreadsheetFilter";
|
|
3
3
|
import { SortBy } from "../common/types";
|
|
4
4
|
export type State = {
|
|
5
|
-
isSortingOrFiltering: boolean;
|
|
6
5
|
filteredDataIds: string[];
|
|
7
6
|
filteredInputValue: string;
|
|
8
7
|
setFilteredInputValue: (value: string) => void;
|
|
@@ -43,7 +43,7 @@ export var FilteredDataContextProvider = function (_a) {
|
|
|
43
43
|
var _h = useState(false), recalculateFilters = _h[0], setRecalculateFilters = _h[1];
|
|
44
44
|
var lastFilteredRecordId = useRef(null);
|
|
45
45
|
var _j = useEventManagerContext(), on = _j.on, off = _j.off, EVENTS = _j.EVENTS;
|
|
46
|
-
var _k = useDataSetContext(), getRecord = _k.getRecord, dataSet = _k.dataSet
|
|
46
|
+
var _k = useDataSetContext(), getRecord = _k.getRecord, dataSet = _k.dataSet;
|
|
47
47
|
var duplicateRecordIds = useDuplicateDataContext().duplicateRecordIds;
|
|
48
48
|
var _l = useValidationContext(), errors = _l.errors, warnings = _l.warnings;
|
|
49
49
|
var reset = function () {
|
|
@@ -127,12 +127,7 @@ export var FilteredDataContextProvider = function (_a) {
|
|
|
127
127
|
setSortByFieldErrors(null);
|
|
128
128
|
setSortBy(null);
|
|
129
129
|
}, [sortByFieldWarnings]);
|
|
130
|
-
var isSortingOrFiltering = filteredDataIds.length !== dataSetLength.current ||
|
|
131
|
-
!!sortByFieldErrors ||
|
|
132
|
-
!!sortByFieldWarnings ||
|
|
133
|
-
!!sortBy;
|
|
134
130
|
var value = {
|
|
135
|
-
isSortingOrFiltering: isSortingOrFiltering,
|
|
136
131
|
filteredDataIds: filteredDataIds,
|
|
137
132
|
filteredInputValue: filteredInputValue,
|
|
138
133
|
setFilteredInputValue: setFilteredInputValue,
|
|
@@ -2,7 +2,6 @@ import React from "react";
|
|
|
2
2
|
import { SpreadsheetOptions } from "../../../..";
|
|
3
3
|
import { Field, RecordDataSet } from "../../../../types";
|
|
4
4
|
import { SpreadsheetProps } from "../common/types";
|
|
5
|
-
import { CellSelectionState } from "./useCellSelection";
|
|
6
5
|
export type OnDataSetChanged = (dataSet: RecordDataSet) => void;
|
|
7
6
|
type State = {
|
|
8
7
|
filteredDataIds: string[];
|
|
@@ -15,7 +14,7 @@ type State = {
|
|
|
15
14
|
checkboxColumnWidth: number;
|
|
16
15
|
inefficientRerender: boolean;
|
|
17
16
|
setInefficientRerender: React.Dispatch<React.SetStateAction<boolean>>;
|
|
18
|
-
}
|
|
17
|
+
};
|
|
19
18
|
type Props = SpreadsheetProps & {
|
|
20
19
|
children: JSX.Element;
|
|
21
20
|
};
|
|
@@ -24,7 +24,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
24
24
|
import { createContext, useContext, useMemo, useRef, useState, } from "react";
|
|
25
25
|
import { useFilteredDataContext } from "../FilteredDataContextProvider";
|
|
26
26
|
import { useValidationContext } from "../ValidationContextProvider";
|
|
27
|
-
import { useCellSelection } from "./useCellSelection";
|
|
28
27
|
var SpreadsheetContext = createContext({});
|
|
29
28
|
export var SpreadsheetContextProvider = function (_a) {
|
|
30
29
|
var fields = _a.fields, options = _a.options, isReadOnly = _a.isReadOnly, children = _a.children, onValidateRecord = _a.onValidateRecord, selectedRows = _a.selectedRows, setSelectedRows = _a.setSelectedRows;
|
|
@@ -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(
|
|
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); };
|
package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.d.ts
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import { Record } from "../../../../types";
|
|
2
1
|
export declare const useDataSetManipulation: () => {
|
|
3
|
-
addNewRecord: () => string;
|
|
4
|
-
insertRecordsIntoSpreadsheet: (records: Record[]) => Promise<void>;
|
|
5
2
|
appendNewRecordToSpreadsheet: () => void;
|
|
6
3
|
deleteRecordsFromSpreadsheet: (recordIds: string[]) => void;
|
|
7
4
|
findAndReplaceInSpreadsheet: (searchText: string, replaceText: string, matchCase: boolean, useRegex: boolean) => Promise<any[]>;
|
package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.js
CHANGED
|
@@ -45,81 +45,50 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
45
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
import {
|
|
48
|
+
import { useFilteredDataContext } from "../FilteredDataContextProvider";
|
|
49
|
+
import { useDataSetContext } from "../DataSetContextProvider";
|
|
50
|
+
import { hasValueInAnyField } from "./utils";
|
|
49
51
|
import { addMeta } from "../../../../Importer/data";
|
|
50
52
|
import { useEventManagerContext } from "../../../../common/EventManagerContextProvider";
|
|
51
|
-
import useFindAndReplace from "../../../../common/Table/TableActions/useFindAndReplace";
|
|
52
|
-
import { useDataSetContext } from "../DataSetContextProvider";
|
|
53
|
-
import { useDuplicateDataContext } from "../DuplicateDataContextProvider";
|
|
54
|
-
import { useFilteredDataContext } from "../FilteredDataContextProvider";
|
|
55
|
-
import { useUndoRedoContext } from "../UndoRedoContextProvider";
|
|
56
53
|
import { useValidationContext } from "../ValidationContextProvider";
|
|
54
|
+
import { useDuplicateDataContext } from "../DuplicateDataContextProvider";
|
|
57
55
|
import { useBatchProcessing } from "./useBatchProcessing";
|
|
58
|
-
import
|
|
56
|
+
import useFindAndReplace from "../../../../common/Table/TableActions/useFindAndReplace";
|
|
59
57
|
export var useDataSetManipulation = function () {
|
|
60
58
|
var _a = useFilteredDataContext(), lastFilteredRecordId = _a.lastFilteredRecordId, setRecalculateFilters = _a.setRecalculateFilters;
|
|
61
|
-
var _b = useDataSetContext(), getRecord = _b.getRecord, setRecord = _b.setRecord, dataSet = _b.dataSet, deleteRecord = _b.deleteRecord, emptyRecordIds = _b.emptyRecordIds
|
|
59
|
+
var _b = useDataSetContext(), getRecord = _b.getRecord, setRecord = _b.setRecord, dataSet = _b.dataSet, deleteRecord = _b.deleteRecord, emptyRecordIds = _b.emptyRecordIds;
|
|
62
60
|
var _c = useEventManagerContext(), emit = _c.emit, EVENTS = _c.EVENTS;
|
|
63
61
|
var _d = useValidationContext(), errors = _d.errors, warnings = _d.warnings, calculateColumnErrorCounts = _d.calculateColumnErrorCounts, calculateColumnWarningCounts = _d.calculateColumnWarningCounts;
|
|
64
62
|
var updateDuplicateValues = useDuplicateDataContext().updateDuplicateValues;
|
|
65
63
|
var updateRecordAndRevalidate = useValidationContext().updateRecordAndRevalidate;
|
|
66
64
|
var processInBatches = useBatchProcessing().processInBatches;
|
|
67
65
|
var replaceInRecord = useFindAndReplace().replaceInRecord;
|
|
68
|
-
var trackRecordDeletion = useUndoRedoContext().trackRecordDeletion;
|
|
69
|
-
var layoutRef = useImporterContext().layoutRef;
|
|
70
|
-
var addNewRecord = function () {
|
|
71
|
-
var newRow = addMeta({}, dataSetLength.current);
|
|
72
|
-
setRecord(newRow._meta.id, newRow);
|
|
73
|
-
return newRow._meta.id;
|
|
74
|
-
};
|
|
75
66
|
var appendNewRecordToSpreadsheet = function () {
|
|
67
|
+
var _a, _b;
|
|
76
68
|
var _record = getRecord(lastFilteredRecordId.current);
|
|
77
69
|
if (!hasValueInAnyField(_record)) {
|
|
78
70
|
return;
|
|
79
71
|
}
|
|
80
|
-
|
|
72
|
+
var highestRowIndex = -1;
|
|
73
|
+
for (var recordId in dataSet.current)
|
|
74
|
+
if (((_b = (_a = getRecord(recordId)) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.rowIndex) > highestRowIndex)
|
|
75
|
+
highestRowIndex = getRecord(recordId)._meta.rowIndex;
|
|
76
|
+
var newRow = addMeta({}, highestRowIndex + 1);
|
|
77
|
+
setRecord(newRow._meta.id, newRow);
|
|
81
78
|
emit(EVENTS.ON_LAST_ROW_CHANGED);
|
|
82
79
|
};
|
|
83
|
-
var insertRecordsIntoSpreadsheet = function (records) { return __awaiter(void 0, void 0, void 0, function () {
|
|
84
|
-
return __generator(this, function (_a) {
|
|
85
|
-
switch (_a.label) {
|
|
86
|
-
case 0:
|
|
87
|
-
records.forEach(function (record) {
|
|
88
|
-
setRecord(record._meta.id, { _meta: record._meta });
|
|
89
|
-
});
|
|
90
|
-
return [4 /*yield*/, updateRecordAndRevalidate(records)];
|
|
91
|
-
case 1:
|
|
92
|
-
_a.sent();
|
|
93
|
-
setRecalculateFilters(function (prev) { return !prev; });
|
|
94
|
-
emit(EVENTS.UPDATE_COLUMN_ERROR_COUNT);
|
|
95
|
-
emit(EVENTS.UPDATE_TOTAL_ERROR_COUNT);
|
|
96
|
-
emit(EVENTS.UPDATE_TOTAL_ROW_COUNT);
|
|
97
|
-
layoutRef.current.querySelector(".input-content").focus();
|
|
98
|
-
return [2 /*return*/];
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
}); };
|
|
102
80
|
var deleteRecordsFromSpreadsheet = function (recordIds) {
|
|
103
|
-
trackRecordDeletion(recordIds, insertRecordsIntoSpreadsheet, function (records) {
|
|
104
|
-
var ids = records.map(function (r) { return r._meta.id; });
|
|
105
|
-
deleteRecordsFromSpreadsheet(ids);
|
|
106
|
-
});
|
|
107
|
-
var records = [];
|
|
108
81
|
recordIds.forEach(function (recordId) {
|
|
109
|
-
records.push(getRecord(recordId));
|
|
110
82
|
updateDuplicateValues(getRecord(recordId), {}, false, updateRecordAndRevalidate);
|
|
111
83
|
deleteRecord(recordId);
|
|
112
84
|
calculateColumnErrorCounts(errors.current[recordId], {});
|
|
113
85
|
calculateColumnWarningCounts(warnings.current[recordId], {});
|
|
114
|
-
delete errors.current[recordId];
|
|
115
|
-
delete warnings.current[recordId];
|
|
116
86
|
emptyRecordIds.current.delete(recordId);
|
|
117
87
|
});
|
|
118
88
|
setRecalculateFilters(function (prev) { return !prev; });
|
|
119
89
|
emit(EVENTS.UPDATE_COLUMN_ERROR_COUNT);
|
|
120
90
|
emit(EVENTS.UPDATE_TOTAL_ERROR_COUNT);
|
|
121
91
|
emit(EVENTS.UPDATE_TOTAL_ROW_COUNT);
|
|
122
|
-
layoutRef.current.querySelector(".input-content input").focus();
|
|
123
92
|
};
|
|
124
93
|
var findAndReplaceInSpreadsheet = function (searchText, replaceText, matchCase, useRegex) { return __awaiter(void 0, void 0, void 0, function () {
|
|
125
94
|
var cellsWithText;
|
|
@@ -143,8 +112,6 @@ export var useDataSetManipulation = function () {
|
|
|
143
112
|
});
|
|
144
113
|
}); };
|
|
145
114
|
return {
|
|
146
|
-
addNewRecord: addNewRecord,
|
|
147
|
-
insertRecordsIntoSpreadsheet: insertRecordsIntoSpreadsheet,
|
|
148
115
|
appendNewRecordToSpreadsheet: appendNewRecordToSpreadsheet,
|
|
149
116
|
deleteRecordsFromSpreadsheet: deleteRecordsFromSpreadsheet,
|
|
150
117
|
findAndReplaceInSpreadsheet: findAndReplaceInSpreadsheet,
|
|
@@ -63,7 +63,6 @@ import { useDataSetContext } from "../DataSetContextProvider";
|
|
|
63
63
|
import { useDuplicateDataContext } from "../DuplicateDataContextProvider";
|
|
64
64
|
import { useBatchProcessing } from "../SpreadsheetContextProvider/useBatchProcessing";
|
|
65
65
|
import { selectValidatorsFor, validateRecord } from "../validation";
|
|
66
|
-
import { useUndoRedoContext } from "../UndoRedoContextProvider";
|
|
67
66
|
// this is the fastest check for empty object as per
|
|
68
67
|
// https://stackoverflow.com/questions/679915/how-do-i-test-for-an-empty-javascript-object/785768#785768
|
|
69
68
|
var isObjectEmpty = function (obj) {
|
|
@@ -108,9 +107,8 @@ export var ValidationContextProvider = function (_a) {
|
|
|
108
107
|
var _e = useDuplicateDataContext(), duplicateValues = _e.duplicateValues, updateDuplicateValues = _e.updateDuplicateValues, resetDuplicateProvider = _e.resetDuplicateProvider;
|
|
109
108
|
var processRecordsInBatches = useBatchProcessing(10000).processRecordsInBatches;
|
|
110
109
|
var _f = useState(false), spreadsheetInitialized = _f[0], setSpreadsheetInitialized = _f[1];
|
|
111
|
-
var
|
|
112
|
-
var
|
|
113
|
-
var _j = useUndoRedoContext(), trackRecordChanges = _j.trackRecordChanges, undoTrackingEnabled = _j.undoTrackingEnabled;
|
|
110
|
+
var currentStepIndex = useImporterContext().currentStepIndex;
|
|
111
|
+
var _g = useState(false), dataSetChanged = _g[0], setDataSetChanged = _g[1];
|
|
114
112
|
var reset = function () {
|
|
115
113
|
columnsWithErrorCounts.current = {};
|
|
116
114
|
columnsWithWarningCounts.current = {};
|
|
@@ -209,7 +207,6 @@ export var ValidationContextProvider = function (_a) {
|
|
|
209
207
|
switch (_a.label) {
|
|
210
208
|
case 0:
|
|
211
209
|
recordsArray = Array.isArray(records) ? records : [records];
|
|
212
|
-
trackRecordChanges(recordsArray, updateRecordAndRevalidate, updateRecordAndRevalidate);
|
|
213
210
|
length = recordsArray.length;
|
|
214
211
|
if (!(loadingIndicator && length > 10000)) return [3 /*break*/, 2];
|
|
215
212
|
setIsLoadingApp(true);
|
|
@@ -285,11 +282,9 @@ export var ValidationContextProvider = function (_a) {
|
|
|
285
282
|
initialData = Object.values(dataSet.current);
|
|
286
283
|
if (!(initialData.length > 0)) return [3 /*break*/, 2];
|
|
287
284
|
setIsLoadingApp(true);
|
|
288
|
-
undoTrackingEnabled.current = false;
|
|
289
285
|
return [4 /*yield*/, updateRecordAndRevalidate(initialData, true)];
|
|
290
286
|
case 1:
|
|
291
287
|
_a.sent();
|
|
292
|
-
undoTrackingEnabled.current = true;
|
|
293
288
|
_a.label = 2;
|
|
294
289
|
case 2: return [2 /*return*/];
|
|
295
290
|
}
|
|
@@ -51,7 +51,7 @@ import { Button, Modal, addToast } from "../../../../../common";
|
|
|
51
51
|
import { useTranslation } from "react-i18next";
|
|
52
52
|
import { TextInput } from "../../../../../common/inputs/TextInput";
|
|
53
53
|
import { Checkbox } from "../../../../../common";
|
|
54
|
-
import {
|
|
54
|
+
import { useState } from "react";
|
|
55
55
|
import { useDataSetManipulation } from "../../SpreadsheetContextProvider/useDataSetManipulation";
|
|
56
56
|
import { useFilteredDataContext } from "../../FilteredDataContextProvider";
|
|
57
57
|
export var FindAndReplaceModal = function (_a) {
|
|
@@ -63,12 +63,6 @@ export var FindAndReplaceModal = function (_a) {
|
|
|
63
63
|
var _d = useState(false), useRegex = _d[0], setUseRegex = _d[1];
|
|
64
64
|
var _e = useState(true), matchCase = _e[0], setMatchCase = _e[1];
|
|
65
65
|
var setFilteredInputValue = useFilteredDataContext().setFilteredInputValue;
|
|
66
|
-
var findRef = useRef();
|
|
67
|
-
useEffect(function () {
|
|
68
|
-
if (!findRef.current)
|
|
69
|
-
return;
|
|
70
|
-
findRef.current.focus();
|
|
71
|
-
}, [findRef.current]);
|
|
72
66
|
var findAndReplace = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
73
67
|
var records;
|
|
74
68
|
return __generator(this, function (_a) {
|
|
@@ -90,5 +84,5 @@ export var FindAndReplaceModal = function (_a) {
|
|
|
90
84
|
}
|
|
91
85
|
});
|
|
92
86
|
}); };
|
|
93
|
-
return (_jsx(Modal, __assign({ isOpen: true, onClose: function () { return onClose(); } }, { children: _jsxs(Div, __assign({ p: "17px 20px", w: 500 }, { children: [_jsx(Div, __assign({ textAlignCenter: true, h5: true }, { children: t("find_and_replace_modal.title") })), _jsx(Div, __assign({ mt: 20, mb: 20, textAlignCenter: true, body1: true }, { children: t("find_and_replace_modal.description") })), _jsxs(Div, __assign({ mb: 20, w: 500, textAlignCenter: true, body1: true }, { children: [_jsx(TextInput, {
|
|
87
|
+
return (_jsx(Modal, __assign({ isOpen: true, onClose: function () { return onClose(); } }, { children: _jsxs(Div, __assign({ p: "17px 20px", w: 500 }, { children: [_jsx(Div, __assign({ textAlignCenter: true, h5: true }, { children: t("find_and_replace_modal.title") })), _jsx(Div, __assign({ mt: 20, mb: 20, textAlignCenter: true, body1: true }, { children: t("find_and_replace_modal.description") })), _jsxs(Div, __assign({ mb: 20, w: 500, textAlignCenter: true, body1: true }, { children: [_jsx(TextInput, { "data-cy": "find-input", mb: 20, name: t("find_and_replace_modal.find"), label: t("find_and_replace_modal.find"), value: searchText, onChange: function (value) { return setSearchText(value); } }), _jsx(TextInput, { "data-cy": "replace-input", label: t("find_and_replace_modal.replace_with"), value: replaceText, onChange: function (value) { return setReplaceText(value); } })] })), _jsx(Div, __assign({ mb: 12 }, { children: _jsx(Checkbox, { "data-cy": "use-regex", label: t("find_and_replace_modal.use_regex"), isChecked: useRegex, onChange: function (v) { return setUseRegex(v); } }) })), _jsx(Div, __assign({ mb: 12 }, { children: _jsx(Checkbox, { "data-cy": "case-sensitive", label: t("find_and_replace_modal.use_case_sensitive"), isChecked: matchCase, onChange: function (v) { return setMatchCase(v); } }) })), _jsxs(Div, __assign({ dflex: true, centered: true, mt: 40 }, { children: [_jsx(Button, __assign({ variant: "secondary", onClick: function () { return onClose(); }, w: 160, mr: 16 }, { children: t("find_and_replace_modal.cancel") })), _jsx(Button, __assign({ "data-cy": "find-replace-submit", variant: "primary", onClick: function () { return findAndReplace(); } }, { children: t("find_and_replace_modal.submit") }))] }))] })) })));
|
|
94
88
|
};
|
|
@@ -23,22 +23,21 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
23
23
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
24
|
import React, { useCallback, useEffect, useMemo, useRef } from "react";
|
|
25
25
|
import { areEqual } from "react-window";
|
|
26
|
-
import {
|
|
27
|
-
import { TableActions } from "
|
|
28
|
-
import { Div } from "
|
|
29
|
-
import useWindowDimensions from "
|
|
30
|
-
import {
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import
|
|
36
|
-
import
|
|
37
|
-
import { FieldHeader } from "
|
|
38
|
-
import GlobalStyle from "
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import { CellContextProvider } from "./CellContextProvider";
|
|
26
|
+
import { useImporterContext } from "../../../../Importer/contexts/ImporterContextProvider";
|
|
27
|
+
import { TableActions } from "../../../../common/Table/TableActions";
|
|
28
|
+
import { Div } from "../../../../styled/utils";
|
|
29
|
+
import useWindowDimensions from "../../../../utils/hooks/useWindowSize";
|
|
30
|
+
import { getTableHeight } from "../../../common";
|
|
31
|
+
import { useDataSetContext } from "../DataSetContextProvider";
|
|
32
|
+
import { useFilteredDataContext } from "../FilteredDataContextProvider";
|
|
33
|
+
import { useSpreadsheetContext } from "../SpreadsheetContextProvider";
|
|
34
|
+
import { useValidationContext } from "../ValidationContextProvider";
|
|
35
|
+
import { spreadsheetHeaderHeightPx, spreadsheetRowHeightPx } from "../common";
|
|
36
|
+
import * as S from "../styles";
|
|
37
|
+
import { FieldHeader } from "./FieldHeader";
|
|
38
|
+
import GlobalStyle from "./GlobalStyle";
|
|
39
|
+
import { SpreadsheetRowCheckboxes } from "./SpreadsheetRowCheckboxes";
|
|
40
|
+
import { inputTypes } from "./inputs";
|
|
42
41
|
var getItemKey = function (record) { return record._meta.id; };
|
|
43
42
|
var SpreadsheetData = function (props) {
|
|
44
43
|
var _a = useSpreadsheetContext(), fields = _a.fields, filteredDataIds = _a.filteredDataIds, isReadOnly = _a.isReadOnly, options = _a.options, selectedRows = _a.selectedRows, setSelectedRows = _a.setSelectedRows, checkboxColumnWidth = _a.checkboxColumnWidth;
|
|
@@ -83,8 +82,8 @@ var SpreadsheetData = function (props) {
|
|
|
83
82
|
Header: function () { return _jsx(FieldHeader, { field: field }); },
|
|
84
83
|
Content: function (record) {
|
|
85
84
|
var Input = inputTypes[field.type];
|
|
86
|
-
var rowIndex = record.rowIndex,
|
|
87
|
-
return (_jsx(
|
|
85
|
+
var rowIndex = record.rowIndex, columnWidth = record.columnWidth, recordProp = __rest(record, ["rowIndex", "columnWidth"]);
|
|
86
|
+
return (_jsx(Input, { id: "".concat(field.name, "-").concat(rowIndex), fieldType: field.type, name: field.name, options: field.options, record: recordProp, columnWidth: columnWidth }));
|
|
88
87
|
},
|
|
89
88
|
}); });
|
|
90
89
|
}, [fields, handleSortByFieldErrors, dataSet.current]);
|
|
@@ -28,7 +28,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
28
28
|
import { useMemo } from "react";
|
|
29
29
|
import styled, { css } from "styled-components";
|
|
30
30
|
import { SpreadsheetField, useSpreadsheetField } from ".";
|
|
31
|
-
import { handleInputPaste } from "../../../../../common";
|
|
32
31
|
import { Div } from "../../../../../styled/utils";
|
|
33
32
|
import { useReviewContext } from "../../../../Review/ReviewContextProvider";
|
|
34
33
|
import { AVERAGE_CHAR_SIZE, getFieldContentWidth } from "./utils";
|
|
@@ -60,7 +59,7 @@ export var SpreadsheetInput = function (_a) {
|
|
|
60
59
|
? "".concat(totalInputSize, "px")
|
|
61
60
|
: "".concat(defaultWidthAsNumber, "px");
|
|
62
61
|
}, [value, record, columnWidth]);
|
|
63
|
-
return (_jsxs(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning, isHighlighted: isHighlighted, defaultFieldWidth: defaultWidthAsNumber, expandedFieldWidth: expandedFieldWidth, shouldExpandInput: true }, { children: [_jsx(Input, __assign({
|
|
62
|
+
return (_jsxs(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning, isHighlighted: isHighlighted, defaultFieldWidth: defaultWidthAsNumber, expandedFieldWidth: expandedFieldWidth, shouldExpandInput: true }, { children: [_jsx(Input, __assign({ autoComplete: "off", hasError: !!validationError, hasWarning: !!validationWarning, value: parseValue(value), onChange: function (_a) {
|
|
64
63
|
var value = _a.target.value;
|
|
65
64
|
return !hasTransformedRecords && setValue(value);
|
|
66
65
|
}, disabledWhen: hasTransformedRecords }, props)), ((_g = (_f = (_e = record === null || record === void 0 ? void 0 : record._meta) === null || _e === void 0 ? void 0 : _e.transformedRow) === null || _f === void 0 ? void 0 : _f[name]) === null || _g === void 0 ? void 0 : _g.original) &&
|
|
@@ -6,17 +6,6 @@ export declare const useSpreadsheetField: (name: string, record: Record, fieldTy
|
|
|
6
6
|
validationError: any;
|
|
7
7
|
validationWarning: any;
|
|
8
8
|
};
|
|
9
|
-
type ContentContainerProps = {
|
|
10
|
-
hasError?: boolean;
|
|
11
|
-
hasWarning?: boolean;
|
|
12
|
-
isReadOnly?: boolean;
|
|
13
|
-
isHighlighted?: boolean;
|
|
14
|
-
expandedFieldWidth?: string;
|
|
15
|
-
shouldExpandInput?: boolean;
|
|
16
|
-
defaultFieldWidth?: number;
|
|
17
|
-
isSelected?: boolean;
|
|
18
|
-
};
|
|
19
|
-
export declare const ContentContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../../../styled/utils").CSSProps & ContentContainerProps, never>;
|
|
20
9
|
type SpreadsheetFieldProps = {
|
|
21
10
|
validationError: string | JSX.Element;
|
|
22
11
|
validationWarning: string | JSX.Element;
|