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.
Files changed (158) hide show
  1. package/lib/esm/Importer/ImporterWithContext.js +63 -0
  2. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +68 -0
  3. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +58 -0
  4. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcherContext.js +21 -0
  5. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +23 -0
  6. package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +61 -0
  7. package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +55 -0
  8. package/lib/esm/Importer/Matcher/common/icons/index.js +14 -0
  9. package/lib/esm/Importer/Matcher/common/index.js +39 -0
  10. package/lib/esm/Importer/Matcher/common/types.js +9 -0
  11. package/lib/esm/Importer/Matcher/index.js +22 -0
  12. package/lib/esm/Importer/PreviewFirstTime.js +81 -0
  13. package/lib/esm/Importer/PreviewModeBanner.js +19 -0
  14. package/lib/esm/Importer/Review/AppResponseModal.js +35 -0
  15. package/lib/esm/Importer/Review/ReviewContextProvider.js +315 -0
  16. package/lib/esm/Importer/Review/ReviewWithContext.js +33 -0
  17. package/lib/esm/Importer/Review/index.js +4 -0
  18. package/lib/esm/Importer/Stepper/ConfirmCloseModal.js +24 -0
  19. package/lib/esm/Importer/Stepper/Step.js +19 -0
  20. package/lib/esm/Importer/Stepper/StepIndex.js +27 -0
  21. package/lib/esm/Importer/Stepper/StepperSubmitModal.js +24 -0
  22. package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +31 -0
  23. package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +33 -0
  24. package/lib/esm/Importer/Stepper/common/icons.js +18 -0
  25. package/lib/esm/Importer/Stepper/index.js +118 -0
  26. package/lib/esm/Importer/TrialModeBanner.js +22 -0
  27. package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.js +11 -0
  28. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +123 -0
  29. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.js +11 -0
  30. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +44 -0
  31. package/lib/esm/Importer/Uploader/DragAndDropImporter/backgrounds.js +14 -0
  32. package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +45 -0
  33. package/lib/esm/Importer/Uploader/HeaderButtons.js +28 -0
  34. package/lib/esm/Importer/Uploader/HeadersPreview.js +44 -0
  35. package/lib/esm/Importer/Uploader/UploaderContextProvider.js +27 -0
  36. package/lib/esm/Importer/Uploader/index.js +13 -0
  37. package/lib/esm/Importer/common/AppLoading.js +24 -0
  38. package/lib/esm/Importer/common/Footer.js +17 -0
  39. package/lib/esm/Importer/common/FuseApi.js +48 -0
  40. package/lib/esm/Importer/common/GlobalStyle.js +7 -0
  41. package/lib/esm/Importer/common/ImporterFonts.js +5 -0
  42. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +56 -0
  43. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +176 -0
  44. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.js +45 -0
  45. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +14 -0
  46. package/lib/esm/Importer/common/Spreadsheet/common/index.js +63 -0
  47. package/lib/esm/Importer/common/Spreadsheet/common/types.js +5 -0
  48. package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +66 -0
  49. package/lib/esm/Importer/common/Spreadsheet/components/GlobalStyle.js +9 -0
  50. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +110 -0
  51. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +186 -0
  52. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +55 -0
  53. package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +19 -0
  54. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +43 -0
  55. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +70 -0
  56. package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +108 -0
  57. package/lib/esm/Importer/common/Spreadsheet/components/inputs/Boolean.js +18 -0
  58. package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +14 -0
  59. package/lib/esm/Importer/common/Spreadsheet/components/inputs/EnumInput.js +30 -0
  60. package/lib/esm/Importer/common/Spreadsheet/components/inputs/FloatInput.js +16 -0
  61. package/lib/esm/Importer/common/Spreadsheet/components/inputs/IntegerInput.js +16 -0
  62. package/lib/esm/Importer/common/Spreadsheet/components/inputs/StringInput.js +14 -0
  63. package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.d.ts +1 -0
  64. package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +20 -0
  65. package/lib/esm/Importer/common/Spreadsheet/hooks.js +245 -0
  66. package/lib/esm/Importer/common/Spreadsheet/index.js +119 -0
  67. package/lib/esm/Importer/common/Spreadsheet/styles.js +16 -0
  68. package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +47 -0
  69. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +204 -0
  70. package/lib/esm/Importer/common/Spreadsheet/validation/index.js +202 -0
  71. package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +181 -0
  72. package/lib/esm/Importer/common/icons/index.js +18 -0
  73. package/lib/esm/Importer/common/index.js +13 -0
  74. package/lib/esm/Importer/common/theme.js +19 -0
  75. package/lib/esm/Importer/common/utils.js +100 -0
  76. package/lib/esm/Importer/contexts/ImporterContextProvider.js +247 -0
  77. package/lib/esm/Importer/data/index.js +152 -0
  78. package/lib/esm/Importer/index.js +28 -0
  79. package/lib/esm/api/index.js +93 -0
  80. package/lib/esm/api/responseHandlers.js +49 -0
  81. package/lib/esm/common/AppLoadingContextProvider/AppLoadingUI.js +26 -0
  82. package/lib/esm/common/AppLoadingContextProvider/index.js +25 -0
  83. package/lib/esm/common/ConfirmationModal.js +19 -0
  84. package/lib/esm/common/Modal.js +31 -0
  85. package/lib/esm/common/Spinner.js +41 -0
  86. package/lib/esm/common/Table/Pagination/icons.js +42 -0
  87. package/lib/esm/common/Table/Pagination/index.js +32 -0
  88. package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +50 -0
  89. package/lib/esm/common/Table/TableActions/ExportData.js +23 -0
  90. package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +47 -0
  91. package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.styles.js +24 -0
  92. package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +35 -0
  93. package/lib/esm/common/Table/TableActions/FilterByErrors/index.js +1 -0
  94. package/lib/esm/common/Table/TableActions/RowFilters.js +42 -0
  95. package/lib/esm/common/Table/TableActions/SearchRows.js +72 -0
  96. package/lib/esm/common/Table/TableActions/TableActions.js +35 -0
  97. package/lib/esm/common/Table/TableActions/TableActions.styles.js +18 -0
  98. package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +71 -0
  99. package/lib/esm/common/Table/TableActions/common.js +1 -0
  100. package/lib/esm/common/Table/TableActions/hooks.js +41 -0
  101. package/lib/esm/common/Table/TableActions/icons.js +17 -0
  102. package/lib/esm/common/Table/TableActions/index.js +1 -0
  103. package/lib/esm/common/Table/TableDataProvider.js +127 -0
  104. package/lib/esm/common/Table/TableView/TableHeaders.js +69 -0
  105. package/lib/esm/common/Table/TableView/TableRows/TableRow.js +57 -0
  106. package/lib/esm/common/Table/TableView/TableRows/index.js +48 -0
  107. package/lib/esm/common/Table/TableView/common/index.js +37 -0
  108. package/lib/esm/common/Table/TableView/index.js +132 -0
  109. package/lib/esm/common/Table/TableView/types.js +1 -0
  110. package/lib/esm/common/Table/icons.js +15 -0
  111. package/lib/esm/common/Table/index.js +140 -0
  112. package/lib/esm/common/Table/useReorderRows.js +83 -0
  113. package/lib/esm/common/Toast.js +69 -0
  114. package/lib/esm/common/TooltipProvider.js +57 -0
  115. package/lib/esm/common/buttons.js +97 -0
  116. package/lib/esm/common/columnsTransformations.js +94 -0
  117. package/lib/esm/common/columnsValidations.d.ts +1 -1
  118. package/lib/esm/common/columnsValidations.js +687 -0
  119. package/lib/esm/common/icons/index.js +30 -0
  120. package/lib/esm/common/index.js +45 -0
  121. package/lib/esm/common/inputs/Autocomplete.js +110 -0
  122. package/lib/esm/common/inputs/Checkbox.js +53 -0
  123. package/lib/esm/common/inputs/SelectMenu.js +67 -0
  124. package/lib/esm/common/inputs/TextInput.js +89 -0
  125. package/lib/esm/common/inputs/index.js +5 -0
  126. package/lib/esm/common/inputs/tooltip.js +38 -0
  127. package/lib/esm/common/logo.js +13 -0
  128. package/lib/esm/hooks/index.d.ts +1 -0
  129. package/lib/esm/hooks/index.js +16 -0
  130. package/lib/esm/index.js +218 -0
  131. package/lib/esm/locales/de.js +126 -0
  132. package/lib/esm/locales/en.js +126 -0
  133. package/lib/esm/locales/es.js +126 -0
  134. package/lib/esm/locales/fr.js +126 -0
  135. package/lib/esm/locales/index.js +4 -0
  136. package/lib/esm/styled/fontsURL.js +27 -0
  137. package/lib/esm/styled/index.js +3 -0
  138. package/lib/esm/styled/theme/animations.js +9 -0
  139. package/lib/esm/styled/theme/colorPalette.js +109 -0
  140. package/lib/esm/styled/theme/debugCss.js +16 -0
  141. package/lib/esm/styled/theme/dimensionsCss.js +20 -0
  142. package/lib/esm/styled/theme/fontCss.js +17 -0
  143. package/lib/esm/styled/theme/globalCss.js +26 -0
  144. package/lib/esm/styled/theme/index.js +33 -0
  145. package/lib/esm/styled/theme/layoutCss.js +26 -0
  146. package/lib/esm/styled/theme/mediaQueries.js +4 -0
  147. package/lib/esm/styled/theme/positionCss.js +27 -0
  148. package/lib/esm/styled/theme/textCss.js +18 -0
  149. package/lib/esm/styled/theme/textStyles.js +27 -0
  150. package/lib/esm/styled/themeType.js +6 -0
  151. package/lib/esm/styled/utils.js +17 -0
  152. package/lib/esm/types.d.ts +2 -2
  153. package/lib/esm/types.js +65 -0
  154. package/lib/esm/utils/hooks/useWindowSize.js +23 -0
  155. package/lib/esm/utils/hooks.js +1 -0
  156. package/lib/esm/utils/index.js +37 -0
  157. package/lib/main.js +1 -1
  158. 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;