fuse-importer 0.0.8-testing → 0.0.9-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 +63 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +68 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +58 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.js +21 -0
- package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +23 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +61 -0
- package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +55 -0
- package/lib/esm/Importer/Matcher/common/icons/index.js +14 -0
- package/lib/esm/Importer/Matcher/common/index.js +39 -0
- package/lib/esm/Importer/Matcher/common/types.js +9 -0
- package/lib/esm/Importer/Matcher/index.js +22 -0
- package/lib/esm/Importer/PreviewFirstTime.js +81 -0
- package/lib/esm/Importer/PreviewModeBanner.js +19 -0
- package/lib/esm/Importer/Review/AppResponseModal.js +35 -0
- package/lib/esm/Importer/Review/ReviewContextProvider.js +315 -0
- package/lib/esm/Importer/Review/ReviewWithContext.js +33 -0
- package/lib/esm/Importer/Review/index.js +4 -0
- package/lib/esm/Importer/Stepper/ConfirmCloseModal.js +24 -0
- package/lib/esm/Importer/Stepper/Step.js +19 -0
- package/lib/esm/Importer/Stepper/StepIndex.js +27 -0
- package/lib/esm/Importer/Stepper/StepperSubmitModal.js +24 -0
- package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +31 -0
- package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +33 -0
- package/lib/esm/Importer/Stepper/common/icons.js +18 -0
- package/lib/esm/Importer/Stepper/index.js +118 -0
- package/lib/esm/Importer/TrialModeBanner.js +22 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.js +11 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +123 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.js +11 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +44 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.js +14 -0
- package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +45 -0
- package/lib/esm/Importer/Uploader/HeaderButtons.js +28 -0
- package/lib/esm/Importer/Uploader/HeadersPreview.js +44 -0
- package/lib/esm/Importer/Uploader/UploaderContextProvider.js +27 -0
- package/lib/esm/Importer/Uploader/index.js +13 -0
- package/lib/esm/Importer/common/AppLoading.js +24 -0
- package/lib/esm/Importer/common/Footer.js +17 -0
- package/lib/esm/Importer/common/FuseApi.js +48 -0
- package/lib/esm/Importer/common/GlobalStyle.js +7 -0
- package/lib/esm/Importer/common/ImporterFonts.js +5 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +56 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +176 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.js +45 -0
- package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/common/index.js +63 -0
- package/lib/esm/Importer/common/Spreadsheet/common/types.js +5 -0
- package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +66 -0
- package/lib/esm/Importer/common/Spreadsheet/components/GlobalStyle.js +9 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +110 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +186 -0
- package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +55 -0
- package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +19 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +43 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +70 -0
- package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +108 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/Boolean.js +18 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/EnumInput.js +30 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/FloatInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/IntegerInput.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/StringInput.js +14 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.d.ts +1 -0
- package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +20 -0
- package/lib/esm/Importer/common/Spreadsheet/hooks.js +245 -0
- package/lib/esm/Importer/common/Spreadsheet/index.js +119 -0
- package/lib/esm/Importer/common/Spreadsheet/styles.js +16 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +47 -0
- package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +204 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/index.js +202 -0
- package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +181 -0
- package/lib/esm/Importer/common/icons/index.js +18 -0
- package/lib/esm/Importer/common/index.js +13 -0
- package/lib/esm/Importer/common/theme.js +19 -0
- package/lib/esm/Importer/common/utils.js +100 -0
- package/lib/esm/Importer/contexts/ImporterContextProvider.js +247 -0
- package/lib/esm/Importer/data/index.js +152 -0
- package/lib/esm/Importer/index.js +28 -0
- package/lib/esm/api/index.js +93 -0
- package/lib/esm/api/responseHandlers.js +49 -0
- package/lib/esm/common/AppLoadingContextProvider/AppLoadingUI.js +26 -0
- package/lib/esm/common/AppLoadingContextProvider/index.js +25 -0
- package/lib/esm/common/ConfirmationModal.js +19 -0
- package/lib/esm/common/Modal.js +31 -0
- package/lib/esm/common/Spinner.js +41 -0
- package/lib/esm/common/Table/Pagination/icons.js +42 -0
- package/lib/esm/common/Table/Pagination/index.js +32 -0
- package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +50 -0
- package/lib/esm/common/Table/TableActions/ExportData.js +23 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +47 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.styles.js +24 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +35 -0
- package/lib/esm/common/Table/TableActions/FilterByErrors/index.js +1 -0
- package/lib/esm/common/Table/TableActions/RowFilters.js +42 -0
- package/lib/esm/common/Table/TableActions/SearchRows.js +72 -0
- package/lib/esm/common/Table/TableActions/TableActions.js +35 -0
- package/lib/esm/common/Table/TableActions/TableActions.styles.js +18 -0
- package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +71 -0
- package/lib/esm/common/Table/TableActions/common.js +1 -0
- package/lib/esm/common/Table/TableActions/hooks.js +41 -0
- package/lib/esm/common/Table/TableActions/icons.js +17 -0
- package/lib/esm/common/Table/TableActions/index.js +1 -0
- package/lib/esm/common/Table/TableDataProvider.js +127 -0
- package/lib/esm/common/Table/TableView/TableHeaders.js +69 -0
- package/lib/esm/common/Table/TableView/TableRows/TableRow.js +57 -0
- package/lib/esm/common/Table/TableView/TableRows/index.js +48 -0
- package/lib/esm/common/Table/TableView/common/index.js +37 -0
- package/lib/esm/common/Table/TableView/index.js +132 -0
- package/lib/esm/common/Table/TableView/types.js +1 -0
- package/lib/esm/common/Table/icons.js +15 -0
- package/lib/esm/common/Table/index.js +140 -0
- package/lib/esm/common/Table/useReorderRows.js +83 -0
- package/lib/esm/common/Toast.js +69 -0
- package/lib/esm/common/TooltipProvider.js +57 -0
- package/lib/esm/common/buttons.js +97 -0
- package/lib/esm/common/columnsTransformations.js +94 -0
- package/lib/esm/common/columnsValidations.d.ts +1 -1
- package/lib/esm/common/columnsValidations.js +687 -0
- package/lib/esm/common/icons/index.js +30 -0
- package/lib/esm/common/index.js +45 -0
- package/lib/esm/common/inputs/Autocomplete.js +110 -0
- package/lib/esm/common/inputs/Checkbox.js +53 -0
- package/lib/esm/common/inputs/SelectMenu.js +67 -0
- package/lib/esm/common/inputs/TextInput.js +89 -0
- package/lib/esm/common/inputs/index.js +5 -0
- package/lib/esm/common/inputs/tooltip.js +38 -0
- package/lib/esm/common/logo.js +13 -0
- package/lib/esm/hooks/index.d.ts +1 -0
- package/lib/esm/hooks/index.js +16 -0
- package/lib/esm/index.js +218 -0
- package/lib/esm/locales/de.js +126 -0
- package/lib/esm/locales/en.js +126 -0
- package/lib/esm/locales/es.js +126 -0
- package/lib/esm/locales/fr.js +126 -0
- package/lib/esm/locales/index.js +4 -0
- package/lib/esm/styled/fontsURL.js +27 -0
- package/lib/esm/styled/index.js +3 -0
- package/lib/esm/styled/theme/animations.js +9 -0
- package/lib/esm/styled/theme/colorPalette.js +109 -0
- package/lib/esm/styled/theme/debugCss.js +16 -0
- package/lib/esm/styled/theme/dimensionsCss.js +20 -0
- package/lib/esm/styled/theme/fontCss.js +17 -0
- package/lib/esm/styled/theme/globalCss.js +26 -0
- package/lib/esm/styled/theme/index.js +33 -0
- package/lib/esm/styled/theme/layoutCss.js +26 -0
- package/lib/esm/styled/theme/mediaQueries.js +4 -0
- package/lib/esm/styled/theme/positionCss.js +27 -0
- package/lib/esm/styled/theme/textCss.js +18 -0
- package/lib/esm/styled/theme/textStyles.js +27 -0
- package/lib/esm/styled/themeType.js +6 -0
- package/lib/esm/styled/utils.js +17 -0
- package/lib/esm/types.d.ts +2 -2
- package/lib/esm/types.js +65 -0
- package/lib/esm/utils/hooks/useWindowSize.js +23 -0
- package/lib/esm/utils/hooks.js +1 -0
- package/lib/esm/utils/index.js +37 -0
- package/lib/main.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
|
+
import styled from "styled-components";
|
|
18
|
+
import { Div } from "../styled/utils";
|
|
19
|
+
import { closeIcon } from "./icons";
|
|
20
|
+
export var ModalContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"], ["\n top: 0px;\n left: 0px;\n margin: 0px;\n position: fixed;\n display: flex;\n justify-content: center;\n align-items: center;\n z-index: 10000000000;\n width: 100vw;\n height: 100vh;\n pointer-events: none;\n div {\n pointer-events: auto;\n }\n"])));
|
|
21
|
+
export var ModalBackdrop = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: black;\n opacity: 0.38;\n"], ["\n position: fixed;\n top: 0px;\n left: 0px;\n margin: 0px;\n width: 100vw;\n height: 100vh;\n z-index: 99999999;\n background: black;\n opacity: 0.38;\n"])));
|
|
22
|
+
export var ModalWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n padding: 32px 36px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"], ["\n background: ", ";\n padding: 32px 36px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"])), function (props) { return props.theme.colors.white; });
|
|
23
|
+
export var ModalCloseIcon = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 10;\n"], ["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n z-index: 10;\n"])));
|
|
24
|
+
export var Modal = function (_a) {
|
|
25
|
+
var _b = _a.isOpen, isOpen = _b === void 0 ? false : _b, _c = _a.onClose, onClose = _c === void 0 ? null : _c, children = _a.children, _d = _a.withCloseIcon, withCloseIcon = _d === void 0 ? true : _d, _e = _a.withBackdropClose, withBackdropClose = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? "" : _f, testId = _a.testId;
|
|
26
|
+
function renderModal() {
|
|
27
|
+
return (_jsxs(Div, __assign({ className: className, "data-testid": testId }, { children: [_jsx(ModalBackdrop, { onClick: withBackdropClose ? onClose : null }), _jsx(ModalContainer, { children: _jsxs(ModalWrapper, { children: [withCloseIcon && (_jsx(ModalCloseIcon, { children: _jsx(Div, __assign({ clickable: true, mt: -5, mr: -5, w: "25px", h: "25px", onClick: onClose }, { children: closeIcon })) })), children] }) })] })));
|
|
28
|
+
}
|
|
29
|
+
return _jsx(_Fragment, { children: isOpen && renderModal() });
|
|
30
|
+
};
|
|
31
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
17
|
+
var t = {};
|
|
18
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
19
|
+
t[p] = s[p];
|
|
20
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
21
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
23
|
+
t[p[i]] = s[p[i]];
|
|
24
|
+
}
|
|
25
|
+
return t;
|
|
26
|
+
};
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
import styled from "styled-components";
|
|
29
|
+
import { theme } from "../styled/theme";
|
|
30
|
+
import { Div } from "../styled/utils";
|
|
31
|
+
var Wrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n"], ["\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n"])));
|
|
32
|
+
var Bounce = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 12px;\n height: 12px;\n margin: 0 5px 0 5px;\n background: ", ";\n @-webkit-keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n }\n }\n @keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n }\n border-radius: 100%;\n display: inline-block;\n -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n"], ["\n width: 12px;\n height: 12px;\n margin: 0 5px 0 5px;\n background: ", ";\n @-webkit-keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n }\n }\n @keyframes sk-bouncedelay {\n 0%,\n 80%,\n 100% {\n -webkit-transform: scale(0);\n transform: scale(0);\n }\n 40% {\n -webkit-transform: scale(1);\n transform: scale(1);\n }\n }\n border-radius: 100%;\n display: inline-block;\n -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n animation: sk-bouncedelay 1.4s infinite ease-in-out both;\n"])), function (props) { return props.color; });
|
|
33
|
+
var Bounce1 = styled(Bounce)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n -webkit-animation-delay: -0.32s;\n animation-delay: -0.32s;\n"], ["\n -webkit-animation-delay: -0.32s;\n animation-delay: -0.32s;\n"])));
|
|
34
|
+
var Bounce2 = styled(Bounce)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n -webkit-animation-delay: -0.16s;\n animation-delay: -0.16s;\n"], ["\n -webkit-animation-delay: -0.16s;\n animation-delay: -0.16s;\n"])));
|
|
35
|
+
var SpinnerContainer = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n width: 70px;\n text-align: center;\n"], ["\n width: 70px;\n text-align: center;\n"])));
|
|
36
|
+
var Spinner = function (_a) {
|
|
37
|
+
var _b = _a.color, color = _b === void 0 ? theme.colors.gray300 : _b, props = __rest(_a, ["color"]);
|
|
38
|
+
return (_jsx(Wrapper, __assign({}, props, { children: _jsxs(SpinnerContainer, { children: [_jsx(Bounce1, { color: color }), _jsx(Bounce2, { color: color }), _jsx(Bounce, { color: color })] }) })));
|
|
39
|
+
};
|
|
40
|
+
export { Spinner };
|
|
41
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
17
|
+
var t = {};
|
|
18
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
19
|
+
t[p] = s[p];
|
|
20
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
21
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
22
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
23
|
+
t[p[i]] = s[p[i]];
|
|
24
|
+
}
|
|
25
|
+
return t;
|
|
26
|
+
};
|
|
27
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
28
|
+
import styled, { css } from "styled-components";
|
|
29
|
+
import { Div } from "../../../styled/utils";
|
|
30
|
+
var IconContainer = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", ";\n color: ", ";\n border-radius: 4px;\n height: 24px;\n width: 24px;\n ", "\n"], ["\n ", ";\n color: ", ";\n border-radius: 4px;\n height: 24px;\n width: 24px;\n ", "\n"])), function (p) { return p.theme.css.centered; }, function (p) { return p.theme.colors.gray900; }, function (p) {
|
|
31
|
+
return p.isDisabled
|
|
32
|
+
? css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.disabled3; }) : css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n :hover {\n cursor: pointer;\n\n background-color: ", ";\n }\n "], ["\n :hover {\n cursor: pointer;\n\n background-color: ", ";\n }\n "])), function (p) { return p.theme.colors.gray100; });
|
|
33
|
+
});
|
|
34
|
+
export var PaginationIcon = function (_a) {
|
|
35
|
+
var _b = _a.isDisabled, isDisabled = _b === void 0 ? false : _b, children = _a.children, props = __rest(_a, ["isDisabled", "children"]);
|
|
36
|
+
return (_jsx(IconContainer, __assign({ ml: 10, isDisabled: isDisabled }, props, { children: children })));
|
|
37
|
+
};
|
|
38
|
+
export var previousPage = (_jsx("svg", __assign({ width: "8", height: "13", viewBox: "0 0 8 13", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M7.00623 0.90802L1.26688 6.3505L7.00623 11.793", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) })));
|
|
39
|
+
export var nextPage = (_jsx("svg", __assign({ width: "8", height: "13", viewBox: "0 0 8 13", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M1.24243 0.90802L6.98177 6.3505L1.24243 11.793", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }) })));
|
|
40
|
+
export var jumpToFirst = (_jsxs("svg", __assign({ width: "24", height: "19", viewBox: "0 0 24 19", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M16.4547 3.90802L10.7154 9.3505L16.4547 14.793", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M6.59399 14.069L6.59399 4.68966", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" })] })));
|
|
41
|
+
export var jumpToLast = (_jsxs("svg", __assign({ width: "25", height: "19", viewBox: "0 0 25 19", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M8.23022 14.8506L13.9696 9.40811L8.23023 3.96563", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M18.0909 4.68964L18.0909 14.0689", stroke: "currentColor", strokeWidth: "1.8", strokeLinecap: "round", strokeLinejoin: "round" })] })));
|
|
42
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
import { useTableContext } from "../TableDataProvider";
|
|
18
|
+
import { jumpToFirst, jumpToLast, nextPage, PaginationIcon, previousPage, } from "./icons";
|
|
19
|
+
import styled from "styled-components";
|
|
20
|
+
import { colors } from "../../../styled/theme/colorPalette";
|
|
21
|
+
import { Div } from "../../../styled/utils";
|
|
22
|
+
var Container = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: solid 1px ", ";\n border-top: none;\n overflow: hidden;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n"], ["\n border: solid 1px ", ";\n border-top: none;\n overflow: hidden;\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n"])), function (p) { return p.theme.colors.gray300; });
|
|
23
|
+
var Pagination = function () {
|
|
24
|
+
var _a = useTableContext(), totalPages = _a.totalPages, totalCount = _a.totalCount, pageSize = _a.pageSize, currentPage = _a.currentPage, setCurrentPage = _a.setCurrentPage;
|
|
25
|
+
var isFirstPage = currentPage === 1;
|
|
26
|
+
var isLastPage = currentPage === totalPages;
|
|
27
|
+
var cursor = (currentPage - 1) * pageSize;
|
|
28
|
+
var buttonsUI = (_jsxs(Div, __assign({ mr: 25, dflex: true }, { children: [_jsx(PaginationIcon, __assign({ isDisabled: isFirstPage, onClick: function () { return setCurrentPage(1); } }, { children: jumpToFirst })), _jsx(PaginationIcon, __assign({ isDisabled: isFirstPage, onClick: function () { return setCurrentPage(Math.max(currentPage - 1, 1)); } }, { children: previousPage })), _jsxs(Div, __assign({ centered: true, ml: 10 }, { children: [cursor + 1, "-", Math.min(cursor + pageSize, totalCount), " of ", totalCount] })), _jsx(PaginationIcon, __assign({ isDisabled: isLastPage, onClick: function () { return setCurrentPage(Math.min(currentPage + 1, totalPages)); } }, { children: nextPage })), _jsx(PaginationIcon, __assign({ isDisabled: isLastPage, onClick: function () { return setCurrentPage(totalPages); } }, { children: jumpToLast }))] })));
|
|
29
|
+
return (_jsx(Container, __assign({ w100: true }, { children: _jsx(Div, __assign({ h: 38, bg: colors.tableHeader, justifyEnd: true }, { children: _jsx(Div, __assign({ dflex: true, alignCenter: true, body2: true, c: colors.text }, { children: buttonsUI })) })) })));
|
|
30
|
+
};
|
|
31
|
+
export { Pagination };
|
|
32
|
+
var templateObject_1;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsxs as _jsxs, Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import { useState } from "react";
|
|
18
|
+
import styled from "styled-components";
|
|
19
|
+
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
20
|
+
import { ConfirmationModal } from "../../../common/ConfirmationModal";
|
|
21
|
+
import { useSpreadsheetContext } from "../../../Importer";
|
|
22
|
+
import { DeleteIcon, ConfirmationDeleteIcon } from "./icons";
|
|
23
|
+
import { Div } from "../../../styled/utils";
|
|
24
|
+
import { ActionButton } from "./TableActions.styles";
|
|
25
|
+
import { useTranslation } from "react-i18next";
|
|
26
|
+
var StyledTooltipProvider = styled(TooltipProvider)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: fit-content;\n"], ["\n width: fit-content;\n"])));
|
|
27
|
+
export var DeleteSelectedRows = function (_a) {
|
|
28
|
+
var _b = _a.testId, testId = _b === void 0 ? "ta-delete-rows" : _b;
|
|
29
|
+
var _c = useState(false), isConfirmationModalOpen = _c[0], setIsConfirmationModalOpen = _c[1];
|
|
30
|
+
var _d = useSpreadsheetContext(), deleteRecords = _d.deleteRecords, selectedRows = _d.selectedRows, setSelectedRows = _d.setSelectedRows, setFilteredInputValue = _d.setFilteredInputValue;
|
|
31
|
+
var t = useTranslation("review").t;
|
|
32
|
+
var toggleModalVisibility = function () {
|
|
33
|
+
setIsConfirmationModalOpen(function (oldValue) { return !oldValue; });
|
|
34
|
+
};
|
|
35
|
+
var handleDeleteRecord = function () {
|
|
36
|
+
setSelectedRows([]);
|
|
37
|
+
toggleModalVisibility();
|
|
38
|
+
setFilteredInputValue("");
|
|
39
|
+
deleteRecords(selectedRows);
|
|
40
|
+
};
|
|
41
|
+
var DescriptionUI = function () { return (_jsx(_Fragment, { children: _jsxs(Div, { children: [t("table_actions.delete_rows.confirmation_modal", {
|
|
42
|
+
length: selectedRows.length,
|
|
43
|
+
}), selectedRows.length > 1 ? "s" : "", "?"] }) })); };
|
|
44
|
+
var confirmationModalUI = (_jsx(ConfirmationModal, { isOpen: isConfirmationModalOpen, handleClose: toggleModalVisibility, title: "".concat(t("table_actions.delete_rows.modal_title")).concat(selectedRows.length > 1 ? "s" : ""), description: _jsx(DescriptionUI, {}), onSubmit: handleDeleteRecord, buttonText: t("table_actions.delete_rows.yes_delete"), icon: ConfirmationDeleteIcon }));
|
|
45
|
+
var isDeleteButtonDisabled = selectedRows.length <= 0;
|
|
46
|
+
return (_jsxs(_Fragment, { children: [confirmationModalUI, _jsx(StyledTooltipProvider, __assign({ tooltip: isDeleteButtonDisabled
|
|
47
|
+
? t("table_actions.delete_rows.select_rows")
|
|
48
|
+
: t("table_actions.delete_rows.delete_row"), placement: "right", flip: false, centered: true, "data-testid": testId }, { children: _jsx(ActionButton, __assign({ onClick: toggleModalVisibility, disabled: isDeleteButtonDisabled }, { children: _jsx(DeleteIcon, {}) })) }))] }));
|
|
49
|
+
};
|
|
50
|
+
var templateObject_1;
|
|
@@ -0,0 +1,23 @@
|
|
|
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 } from "react/jsx-runtime";
|
|
13
|
+
import { DownloadIcon } from "./icons";
|
|
14
|
+
import { useReviewContext } from "../../../Importer";
|
|
15
|
+
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
16
|
+
import { ActionButton } from "./TableActions.styles";
|
|
17
|
+
import { useTranslation } from "react-i18next";
|
|
18
|
+
export var ExportData = function (_a) {
|
|
19
|
+
var _b = _a.testId, testId = _b === void 0 ? "ta-export-data" : _b;
|
|
20
|
+
var onExport = useReviewContext().onExport;
|
|
21
|
+
var t = useTranslation("review").t;
|
|
22
|
+
return (_jsx(TooltipProvider, __assign({ tooltip: t("table_actions.export_your_data.tooltip"), placement: "right", flip: false, centered: true, "data-testid": testId }, { children: _jsx(ActionButton, __assign({ onClick: function () { return onExport("csv"); } }, { children: _jsx(DownloadIcon, {}) })) })));
|
|
23
|
+
};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as S from "./FilterByErrors.styles";
|
|
3
|
+
import { useSpreadsheetContext } from "../../../../Importer";
|
|
4
|
+
import { formatErrors, getUniqueErrors } from "./functions";
|
|
5
|
+
import { useTranslation } from "react-i18next";
|
|
6
|
+
import { addToast } from "../../../../common/Toast";
|
|
7
|
+
import { useState } from "react";
|
|
8
|
+
export var FilterByErrors = function () {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
var _c = useSpreadsheetContext(), errors = _c.errors, fields = _c.fields, spreadsheetFilter = _c.spreadsheetFilter, resetSpreadsheetFilter = _c.resetSpreadsheetFilter, filterRecordsByFieldErrors = _c.filterRecordsByFieldErrors;
|
|
11
|
+
var t = useTranslation("review").t;
|
|
12
|
+
var _d = useState(false), isMenuOpened = _d[0], setIsMenuOpened = _d[1];
|
|
13
|
+
var prefix = t("table_actions.filter_by_errors.filter_by_errors");
|
|
14
|
+
var search_or_select = t("table_actions.filter_by_errors.search_or_select");
|
|
15
|
+
var selectedErrorToFilter = ((_a = spreadsheetFilter === null || spreadsheetFilter === void 0 ? void 0 : spreadsheetFilter.byColumn) === null || _a === void 0 ? void 0 : _a.field) || null;
|
|
16
|
+
var getSelectedErrorLabel = function (selectedFieldName) {
|
|
17
|
+
var _a;
|
|
18
|
+
var selectedField = fields.filter(function (field) { return (field === null || field === void 0 ? void 0 : field.name) === selectedFieldName; });
|
|
19
|
+
var label = ((_a = selectedField === null || selectedField === void 0 ? void 0 : selectedField[0]) === null || _a === void 0 ? void 0 : _a.label) || selectedFieldName;
|
|
20
|
+
return label;
|
|
21
|
+
};
|
|
22
|
+
var onChange = function (selected) {
|
|
23
|
+
if (selected) {
|
|
24
|
+
var label = getSelectedErrorLabel(selected);
|
|
25
|
+
filterRecordsByFieldErrors(selected);
|
|
26
|
+
addToast("Showing only the rows with error on the ".concat(label, " column"), "success");
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
resetSpreadsheetFilter();
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
var uniqueErrors = getUniqueErrors(fields, errors);
|
|
33
|
+
var errorArray = formatErrors(fields, uniqueErrors);
|
|
34
|
+
// the average size of each character in the input (in px)
|
|
35
|
+
var widthPerCharacter = 5.8;
|
|
36
|
+
var amountOfCharacters = prefix.length + ((_b = getSelectedErrorLabel(selectedErrorToFilter)) === null || _b === void 0 ? void 0 : _b.length);
|
|
37
|
+
// 24 -> padding + 64px of the X icon area
|
|
38
|
+
var totalWidth = widthPerCharacter * amountOfCharacters + 24 + 64;
|
|
39
|
+
var inputWidth = selectedErrorToFilter ? "".concat(totalWidth, "px") : "fit-content";
|
|
40
|
+
var inputText = selectedErrorToFilter
|
|
41
|
+
? "".concat(prefix, ": ")
|
|
42
|
+
: isMenuOpened
|
|
43
|
+
? search_or_select
|
|
44
|
+
: prefix;
|
|
45
|
+
var isDisabled = errorArray.length === 0;
|
|
46
|
+
return (_jsx(S.StyledAutocomplete, { placement: "bottom", placeholder: inputText, onToggle: function (v) { return !isDisabled && setIsMenuOpened(v); }, onChange: onChange, value: selectedErrorToFilter, options: errorArray, isDisabled: isDisabled, isInputDisabled: isDisabled, inputWidth: inputWidth, "data-testid": "ta-filter-by-errors", prefix: inputText }));
|
|
47
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
import styled, { css } from "styled-components";
|
|
6
|
+
import { Autocomplete } from "../../../../common/inputs/Autocomplete";
|
|
7
|
+
import { textStyles } from "../../../../styled/theme/textStyles";
|
|
8
|
+
export var StyledAutocomplete = styled(Autocomplete)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n &,\n * {\n box-sizing: border-box !important;\n\n ", "\n }\n\n div[data-popper-placement=\"bottom\"] > div {\n display: flex;\n flex-direction: column;\n gap: 8px;\n outline: 1px solid red;\n padding: 8px;\n\n > div div {\n padding: 6px 12px;\n }\n\n ", "\n }\n\n input {\n ", ";\n background-color: ", ";\n border: 1px solid transparent;\n font-family: \"DM Sans\";\n font-size: 14px;\n font-weight: 400;\n height: 32px;\n padding: 6px 12px;\n width: ", ";\n\n ::placeholder {\n color: ", ";\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n }\n"], ["\n &,\n * {\n box-sizing: border-box !important;\n\n ", "\n }\n\n div[data-popper-placement=\"bottom\"] > div {\n display: flex;\n flex-direction: column;\n gap: 8px;\n outline: 1px solid red;\n padding: 8px;\n\n > div div {\n padding: 6px 12px;\n }\n\n ", "\n }\n\n input {\n ", ";\n background-color: ", ";\n border: 1px solid transparent;\n font-family: \"DM Sans\";\n font-size: 14px;\n font-weight: 400;\n height: 32px;\n padding: 6px 12px;\n width: ", ";\n\n ::placeholder {\n color: ", ";\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n }\n"])), function (_a) {
|
|
9
|
+
var isDisabled = _a.isDisabled;
|
|
10
|
+
return isDisabled && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n cursor: not-allowed !important;\n "], ["\n cursor: not-allowed !important;\n "])));
|
|
11
|
+
}, function (_a) {
|
|
12
|
+
var isDisabled = _a.isDisabled;
|
|
13
|
+
return isDisabled && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n cursor: not-allowed;\n "], ["\n cursor: not-allowed;\n "])));
|
|
14
|
+
}, textStyles.body3, function (_a) {
|
|
15
|
+
var theme = _a.theme;
|
|
16
|
+
return theme.colors.orange50;
|
|
17
|
+
}, function (_a) {
|
|
18
|
+
var inputWidth = _a.inputWidth;
|
|
19
|
+
return inputWidth;
|
|
20
|
+
}, function (_a) {
|
|
21
|
+
var theme = _a.theme;
|
|
22
|
+
return theme.colors.black;
|
|
23
|
+
});
|
|
24
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export var getUniqueErrors = function (fields, errors) {
|
|
2
|
+
var fieldKeys = new Set(fields.map(function (field) { return field.name; }));
|
|
3
|
+
var uniqueErrors = [];
|
|
4
|
+
for (var _i = 0, _a = Object.entries(errors); _i < _a.length; _i++) {
|
|
5
|
+
var _b = _a[_i], _1 = _b[0], errorObj = _b[1];
|
|
6
|
+
for (var _c = 0, _d = Object.entries(errorObj); _c < _d.length; _c++) {
|
|
7
|
+
var fieldName = _d[_c][0];
|
|
8
|
+
if (fieldKeys.has(fieldName)) {
|
|
9
|
+
uniqueErrors.push({ fieldName: fieldName });
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return uniqueErrors;
|
|
14
|
+
};
|
|
15
|
+
export var formatErrors = function (fields, uniqueErrors) {
|
|
16
|
+
var errorMap = new Map();
|
|
17
|
+
var orderedErrorArray = [];
|
|
18
|
+
fields.forEach(function (field) {
|
|
19
|
+
errorMap.set(field.name, field);
|
|
20
|
+
});
|
|
21
|
+
fields.forEach(function (field) {
|
|
22
|
+
var name = field.name, label = field.label;
|
|
23
|
+
if (uniqueErrors.some(function (_a) {
|
|
24
|
+
var fieldName = _a.fieldName;
|
|
25
|
+
return fieldName === name;
|
|
26
|
+
}) &&
|
|
27
|
+
!orderedErrorArray.some(function (error) { return error.value === name; })) {
|
|
28
|
+
orderedErrorArray.push({
|
|
29
|
+
value: name,
|
|
30
|
+
label: label,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return orderedErrorArray;
|
|
35
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./FilterByErrors";
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { Fragment as _Fragment, jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
17
|
+
import styled, { css } from "styled-components";
|
|
18
|
+
import { useSpreadsheetContext } from "../../../Importer";
|
|
19
|
+
import { Div } from "../../../styled";
|
|
20
|
+
import { useTranslation } from "react-i18next";
|
|
21
|
+
var FilterContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n ", ";\n ", "\n"], ["\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 6px 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n ", ";\n ", "\n"])), function (p) { return p.theme.css.body3; }, function (p) {
|
|
22
|
+
return p.isSelected && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n color: ", ";\n border-radius: 4px;\n "], ["\n background: ", ";\n color: ", ";\n border-radius: 4px;\n "])), function (p) { return p.theme.colors.black; }, function (p) { return p.theme.colors.white; });
|
|
23
|
+
});
|
|
24
|
+
var Container = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n border-radius: 4px;\n background-color: ", ";\n"], ["\n display: flex;\n border-radius: 4px;\n background-color: ", ";\n"])), function (p) { return p.theme.colors.backgroundInterface; });
|
|
25
|
+
var FilteredDataCount = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background: ", ";\n color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n margin-left: -3px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n"], ["\n background: ", ";\n color: ", ";\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 6px 8px;\n margin-left: -3px;\n border-top-right-radius: 4px;\n border-bottom-right-radius: 4px;\n"])), function (p) { return p.theme.colors.highlight01; }, function (p) { return p.theme.colors.black; });
|
|
26
|
+
var Filter = function (_a) {
|
|
27
|
+
var label = _a.label, count = _a.count, isSelected = _a.isSelected, onClick = _a.onClick;
|
|
28
|
+
var _b = useSpreadsheetContext(), filteredInputValue = _b.filteredInputValue, filteredDataCount = _b.filteredDataCount;
|
|
29
|
+
var labelToId = function (label) {
|
|
30
|
+
return label.toLowerCase().replace(/\s/g, "_") + "_filter";
|
|
31
|
+
};
|
|
32
|
+
return (_jsxs(Div, __assign({ dflex: true, clickable: true, onClick: onClick, "data-test-id": labelToId(label) }, { children: [_jsxs(FilterContainer, __assign({ isSelected: isSelected }, { children: [label, count >= 0 && _jsxs(_Fragment, { children: ["\u00A0(", count, ")"] })] })), isSelected && filteredInputValue !== "" && (_jsx(FilteredDataCount, { children: _jsx(Div, __assign({ minw: 14, centered: true }, { children: filteredDataCount })) }))] })));
|
|
33
|
+
};
|
|
34
|
+
export var RowFilters = function () {
|
|
35
|
+
var _a = useSpreadsheetContext(), spreadsheetFilter = _a.spreadsheetFilter, errors = _a.errors, filterRecordsByRowType = _a.filterRecordsByRowType, recordsWithValuesCount = _a.recordsWithValuesCount;
|
|
36
|
+
var t = useTranslation("review").t;
|
|
37
|
+
var all_rows = t("table_actions.filters_by_rows.all_rows");
|
|
38
|
+
var valid_rows = t("table_actions.filters_by_rows.valid_rows");
|
|
39
|
+
var invalid_rows = t("table_actions.filters_by_rows.invalid_rows");
|
|
40
|
+
return (_jsxs(Container, { children: [_jsx(Filter, { isSelected: spreadsheetFilter.byRow === "all", label: all_rows, count: recordsWithValuesCount, onClick: function () { return filterRecordsByRowType("all"); } }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "valid", label: valid_rows, onClick: function () { return filterRecordsByRowType("valid"); } }), _jsx(Filter, { isSelected: spreadsheetFilter.byRow === "invalid", label: invalid_rows, count: Object.values(errors).length, onClick: function () { return filterRecordsByRowType("invalid"); } })] }));
|
|
41
|
+
};
|
|
42
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
import styled, { css } from "styled-components";
|
|
18
|
+
import { useSpreadsheetContext } from "../../../Importer";
|
|
19
|
+
import { SearchIcon } from "./icons";
|
|
20
|
+
import { useDebounce } from "../../../hooks";
|
|
21
|
+
import { useRef, useState } from "react";
|
|
22
|
+
import { colors } from "../../../styled/theme/colorPalette";
|
|
23
|
+
import { textStyles } from "../../../styled/theme/textStyles";
|
|
24
|
+
import { TooltipProvider } from "../../../common/TooltipProvider";
|
|
25
|
+
import { useTranslation } from "react-i18next";
|
|
26
|
+
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) {
|
|
27
|
+
var isOpen = _a.isOpen;
|
|
28
|
+
return (isOpen ? colors.orange50 : "none");
|
|
29
|
+
}, function (_a) {
|
|
30
|
+
var isOpen = _a.isOpen;
|
|
31
|
+
return (isOpen ? "332px" : "24px");
|
|
32
|
+
});
|
|
33
|
+
var IconWrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 24px;\n width: 24px;\n"], ["\n height: 24px;\n width: 24px;\n"])));
|
|
34
|
+
var Input = styled.input(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n width: 100%;\n\n background-color: none;\n background: none;\n border: none;\n box-shadow: none;\n color: ", ";\n height: 20px;\n line-height: 20px;\n outline: none;\n padding: 1px 2px;\n\n ", ";\n"], ["\n ", ";\n width: 100%;\n\n background-color: none;\n background: none;\n border: none;\n box-shadow: none;\n color: ", ";\n height: 20px;\n line-height: 20px;\n outline: none;\n padding: 1px 2px;\n\n ", ";\n"])), textStyles.body3, colors.gray700, function (_a) {
|
|
35
|
+
var isOpen = _a.isOpen;
|
|
36
|
+
return !isOpen && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n top: -9999px;\n "], ["\n position: absolute;\n top: -9999px;\n "])));
|
|
37
|
+
});
|
|
38
|
+
var SearchInput = function (_a) {
|
|
39
|
+
var testId = _a.testId, value = _a.value, onChange = _a.onChange;
|
|
40
|
+
var _b = useDebounce(value, onChange, 300), _value = _b._value, set_Value = _b.set_Value;
|
|
41
|
+
var inputRef = useRef(null);
|
|
42
|
+
var _c = useState(false), isOpen = _c[0], setIsOpen = _c[1];
|
|
43
|
+
var t = useTranslation("review").t;
|
|
44
|
+
var handleInputChange = function (_a) {
|
|
45
|
+
var target = _a.target;
|
|
46
|
+
set_Value(target.value);
|
|
47
|
+
};
|
|
48
|
+
var handleInputOnBlur = function () {
|
|
49
|
+
if (!_value) {
|
|
50
|
+
setIsOpen(false);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
var handleWrapperClick = function () {
|
|
54
|
+
var _a;
|
|
55
|
+
if (!isOpen) {
|
|
56
|
+
setIsOpen(true);
|
|
57
|
+
if (inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) {
|
|
58
|
+
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
return (_jsx(TooltipProvider, __assign({ tooltip: !isOpen ? t("table_actions.search_rows.tooltip") : "", placement: "right", flip: false, centered: true, w: "auto", "data-testid": testId }, { children: _jsxs(Wrapper, __assign({ isOpen: isOpen, onClick: handleWrapperClick }, { children: [_jsx(IconWrapper, { children: _jsx(SearchIcon, {}) }), _jsx(Input, { isOpen: isOpen, ref: inputRef, value: _value, onChange: handleInputChange, onBlur: handleInputOnBlur, type: "text", placeholder: t("table_actions.search_rows.placeholder") })] })) })));
|
|
63
|
+
};
|
|
64
|
+
export var SearchRows = function (_a) {
|
|
65
|
+
var _b = _a.testId, testId = _b === void 0 ? "ta-search-rows" : _b;
|
|
66
|
+
var _c = useSpreadsheetContext(), filteredInputValue = _c.filteredInputValue, setFilteredInputValue = _c.setFilteredInputValue;
|
|
67
|
+
var handleChangeInputValue = function (value) {
|
|
68
|
+
setFilteredInputValue(value);
|
|
69
|
+
};
|
|
70
|
+
return (_jsx(SearchInput, { testId: testId, value: filteredInputValue, onChange: handleChangeInputValue }));
|
|
71
|
+
};
|
|
72
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
|
|
@@ -0,0 +1,35 @@
|
|
|
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
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
24
|
+
import { defaultTableActionsHeightPx } from "./common";
|
|
25
|
+
import { DeleteSelectedRows } from "./DeleteSelectedRows";
|
|
26
|
+
import { SearchRows } from "./SearchRows";
|
|
27
|
+
import { ExportData } from "./ExportData";
|
|
28
|
+
import * as S from "./TableActions.styles";
|
|
29
|
+
import { FilterByErrors } from "./FilterByErrors/FilterByErrors";
|
|
30
|
+
import { RowFilters } from "./RowFilters";
|
|
31
|
+
import { TransformedRecordsCount } from "./TransformedRecordsCount";
|
|
32
|
+
export var TableActions = function (_a) {
|
|
33
|
+
var _b = _a.tableActionsHeight, tableActionsHeight = _b === void 0 ? defaultTableActionsHeightPx : _b, props = __rest(_a, ["tableActionsHeight"]);
|
|
34
|
+
return (_jsxs(S.TableActionsContainer, __assign({ height: tableActionsHeight }, props, { children: [_jsxs(S.TableActionsContent, { children: [_jsx(SearchRows, {}), _jsx(RowFilters, {}), _jsx(FilterByErrors, {}), _jsxs(S.ButtonActionsContainer, { children: [_jsx(DeleteSelectedRows, {}), _jsx(ExportData, {})] })] }), _jsx(S.TableActionsInformations, { children: _jsx(TransformedRecordsCount, {}) })] })));
|
|
35
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
import styled from "styled-components";
|
|
6
|
+
import { Div } from "../../../styled/utils";
|
|
7
|
+
export var TableActionsContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n align-items: center;\n background: ", ";\n border-top: 1px solid ", ";\n display: flex;\n justify-content: space-between;\n padding: 8px 32px;\n width: 100%;\n\n * {\n box-sizing: content-box;\n }\n"], ["\n align-items: center;\n background: ", ";\n border-top: 1px solid ", ";\n display: flex;\n justify-content: space-between;\n padding: 8px 32px;\n width: 100%;\n\n * {\n box-sizing: content-box;\n }\n"])), function (_a) {
|
|
8
|
+
var theme = _a.theme;
|
|
9
|
+
return theme.colors.white;
|
|
10
|
+
}, function (_a) {
|
|
11
|
+
var theme = _a.theme;
|
|
12
|
+
return theme.colors.gray300;
|
|
13
|
+
});
|
|
14
|
+
export var ButtonActionsContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 8px;\n"], ["\n align-items: center;\n display: flex;\n gap: 8px;\n"])));
|
|
15
|
+
export var TableActionsContent = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n"])));
|
|
16
|
+
export var TableActionsInformations = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n"])));
|
|
17
|
+
export var ActionButton = styled.button(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n align-items: center;\n background: transparent;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n display: flex;\n height: 36px;\n justify-content: center;\n padding: 0px;\n width: 36px;\n\n :disabled {\n opacity: 0.6;\n\n :hover {\n background-color: transparent !important;\n cursor: not-allowed;\n }\n }\n"], ["\n align-items: center;\n background: transparent;\n border-radius: 4px;\n border: none;\n cursor: pointer;\n display: flex;\n height: 36px;\n justify-content: center;\n padding: 0px;\n width: 36px;\n\n :disabled {\n opacity: 0.6;\n\n :hover {\n background-color: transparent !important;\n cursor: not-allowed;\n }\n }\n"])));
|
|
18
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __assign = (this && this.__assign) || function () {
|
|
6
|
+
__assign = Object.assign || function(t) {
|
|
7
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
8
|
+
s = arguments[i];
|
|
9
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
10
|
+
t[p] = s[p];
|
|
11
|
+
}
|
|
12
|
+
return t;
|
|
13
|
+
};
|
|
14
|
+
return __assign.apply(this, arguments);
|
|
15
|
+
};
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
|
+
import { useEffect, useMemo, useRef } from "react";
|
|
18
|
+
import { useTranslation } from "react-i18next";
|
|
19
|
+
import styled from "styled-components";
|
|
20
|
+
import { useSpreadsheetContext } from "../../../Importer";
|
|
21
|
+
import { Div, colors } from "../../../styled";
|
|
22
|
+
import { CheckIcon } from "./icons";
|
|
23
|
+
import { Button } from "../../../common/buttons";
|
|
24
|
+
var formatToLocaleString = function (number) {
|
|
25
|
+
return number.toLocaleString(undefined, {
|
|
26
|
+
minimumFractionDigits: 0,
|
|
27
|
+
maximumFractionDigits: 0,
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
var RecordsCountContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: relative;\n z-index: 2;\n\n * {\n box-sizing: border-box;\n }\n"], ["\n position: relative;\n z-index: 2;\n\n * {\n box-sizing: border-box;\n }\n"])));
|
|
31
|
+
var Counter = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n background: ", ";\n border-radius: 35px;\n display: flex;\n padding: 0px 18px;\n user-select: none;\n"], ["\n align-items: center;\n background: ", ";\n border-radius: 35px;\n display: flex;\n padding: 0px 18px;\n user-select: none;\n"])), colors.blue100);
|
|
32
|
+
var TooltipContainer = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n border-radius: 8px;\n box-shadow: 0px 3.53px 63.58px 0px #b7a6a640;\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 16px 32px 24px 24px;\n position: absolute;\n right: 0px;\n top: 66px;\n width: clamp(150px, 379px, 379px);\n\n &::before {\n border-color: transparent transparent #ffffff transparent;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 14.5px 24px 14.5px;\n content: \"\";\n height: 0;\n position: absolute;\n right: -4px;\n top: -6px;\n transform: rotate(120deg);\n width: 0;\n }\n"], ["\n background: ", ";\n border-radius: 8px;\n box-shadow: 0px 3.53px 63.58px 0px #b7a6a640;\n display: flex;\n flex-direction: column;\n gap: 18px;\n padding: 16px 32px 24px 24px;\n position: absolute;\n right: 0px;\n top: 66px;\n width: clamp(150px, 379px, 379px);\n\n &::before {\n border-color: transparent transparent #ffffff transparent;\n border-radius: 4px;\n border-style: solid;\n border-width: 0 14.5px 24px 14.5px;\n content: \"\";\n height: 0;\n position: absolute;\n right: -4px;\n top: -6px;\n transform: rotate(120deg);\n width: 0;\n }\n"])), colors.white);
|
|
33
|
+
var ExampleCode = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n background: ", ";\n border-radius: 4px;\n display: flex;\n justify-content: space-between;\n padding: 4px;\n"], ["\n align-items: center;\n background: ", ";\n border-radius: 4px;\n display: flex;\n justify-content: space-between;\n padding: 4px;\n"])), colors.blue100);
|
|
34
|
+
var StyledButton = styled(Button)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n align-self: flex-end;\n height: 36px;\n padding: 0px;\n width: 61px;\n"], ["\n align-self: flex-end;\n height: 36px;\n padding: 0px;\n width: 61px;\n"])));
|
|
35
|
+
var Tooltip = function (_a) {
|
|
36
|
+
var recordsCount = _a.recordsCount, onClose = _a.onClose;
|
|
37
|
+
var t = useTranslation("review").t;
|
|
38
|
+
return (_jsxs(TooltipContainer, __assign({ "data-cy": "transformations-tooltip" }, { children: [_jsx(Div, { children: _jsx(CheckIcon, {}) }), _jsx(Div, __assign({ subtitle: true }, { children: t("table_actions.transformed_records.auto_corrections_amount", {
|
|
39
|
+
amount: formatToLocaleString(recordsCount),
|
|
40
|
+
}) })), _jsxs(Div, { children: [_jsx(Div, __assign({ mb: 5, label1: true, style: { color: colors.gray700 } }, { children: t("table_actions.transformed_records.example") })), _jsxs(ExampleCode, { children: [_jsx(Div, __assign({ body1: true }, { children: "$37.00" })), _jsx(Div, __assign({ body1: true, style: { textDecoration: "line-through" } }, { children: "$36.8" }))] })] }), _jsx(StyledButton, __assign({ buttonTextSmall: true, uppercase: true, onClick: onClose }, { children: "OK" }))] })));
|
|
41
|
+
};
|
|
42
|
+
export var TransformedRecordsCount = function () {
|
|
43
|
+
var _a = useSpreadsheetContext(), data = _a.data, isTransformTooltipOpened = _a.isTransformTooltipOpened, setIsTransformTooltipOpened = _a.setIsTransformTooltipOpened;
|
|
44
|
+
var t = useTranslation("review").t;
|
|
45
|
+
var tooltipWasAlreadyOpened = useRef(false);
|
|
46
|
+
var transformedRecordsCount = useMemo(function () {
|
|
47
|
+
var _a;
|
|
48
|
+
var counter = 0;
|
|
49
|
+
for (var i = 0; i < data.length; i++) {
|
|
50
|
+
var currentData = data[i];
|
|
51
|
+
var transformedObj = (_a = currentData === null || currentData === void 0 ? void 0 : currentData._meta) === null || _a === void 0 ? void 0 : _a.transformedRow;
|
|
52
|
+
if (transformedObj) {
|
|
53
|
+
counter += Object.keys(transformedObj).length;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return counter;
|
|
57
|
+
}, [data]);
|
|
58
|
+
useEffect(function () {
|
|
59
|
+
if (tooltipWasAlreadyOpened.current)
|
|
60
|
+
return;
|
|
61
|
+
if (transformedRecordsCount > 0 && !isTransformTooltipOpened) {
|
|
62
|
+
setIsTransformTooltipOpened(true);
|
|
63
|
+
tooltipWasAlreadyOpened.current = true;
|
|
64
|
+
}
|
|
65
|
+
}, [transformedRecordsCount]);
|
|
66
|
+
var handleCloseTooltip = function () {
|
|
67
|
+
setIsTransformTooltipOpened(false);
|
|
68
|
+
};
|
|
69
|
+
return (_jsx(_Fragment, { children: isTransformTooltipOpened && transformedRecordsCount ? (_jsxs(RecordsCountContainer, { children: [_jsxs(Counter, __assign({ body1: true }, { children: [_jsxs(Div, __assign({ bold: true, mr: 4, "data-cy": "transformations-counter" }, { children: [formatToLocaleString(transformedRecordsCount), " "] })), t("table_actions.transformed_records.auto_corrections_done")] })), isTransformTooltipOpened && (_jsx(Tooltip, { recordsCount: transformedRecordsCount, onClose: handleCloseTooltip }))] })) : null }));
|
|
70
|
+
};
|
|
71
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export var defaultTableActionsHeightPx = 60;
|