fuse-importer 0.25.6 → 0.25.8

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 (62) hide show
  1. package/lib/esm/Importer/ImporterWithContext.js +9 -6
  2. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +1 -1
  3. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +2 -3
  4. package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +6 -6
  5. package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +1 -1
  6. package/lib/esm/Importer/Matcher/index.js +3 -19
  7. package/lib/esm/Importer/Review/ReviewWithContext.js +4 -8
  8. package/lib/esm/Importer/Stepper/StepIndex.js +2 -2
  9. package/lib/esm/Importer/Stepper/index.js +22 -12
  10. package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.d.ts +3 -0
  11. package/lib/esm/Importer/Uploader/DragAndDropImporter/DragAndDropImporter.styles.js +11 -0
  12. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +2 -2
  13. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.d.ts +7 -0
  14. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/ImporterSectionHeader.styles.js +11 -0
  15. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.d.ts +7 -0
  16. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +44 -0
  17. package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +7 -45
  18. package/lib/esm/Importer/Uploader/HeaderButtons.js +4 -7
  19. package/lib/esm/Importer/Uploader/HeadersPreview.js +9 -1
  20. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.d.ts +1 -0
  21. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.js +9 -1
  22. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +2 -2
  23. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +9 -12
  24. package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +1 -1
  25. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +1 -1
  26. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +3 -3
  27. package/lib/esm/Importer/common/Spreadsheet/hooks.js +3 -2
  28. package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +1 -1
  29. package/lib/esm/Importer/common/Spreadsheet/styles.js +1 -1
  30. package/lib/esm/Importer/data/index.js +7 -1
  31. package/lib/esm/common/Table/TableActions/DeleteSelectedRows.d.ts +0 -1
  32. package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +2 -2
  33. package/lib/esm/common/Table/TableActions/ExportData.d.ts +3 -0
  34. package/lib/esm/common/Table/TableActions/ExportData.js +21 -0
  35. package/lib/esm/common/Table/TableActions/SearchRows.js +2 -2
  36. package/lib/esm/common/Table/TableActions/TableActions.d.ts +1 -3
  37. package/lib/esm/common/Table/TableActions/TableActions.js +3 -16
  38. package/lib/esm/common/Table/TableActions/TableActions.styles.d.ts +5 -0
  39. package/lib/esm/common/Table/TableActions/TableActions.styles.js +17 -0
  40. package/lib/esm/common/Table/TableActions/icons.d.ts +1 -0
  41. package/lib/esm/common/Table/TableActions/icons.js +1 -0
  42. package/lib/esm/common/Table/TableView/CustomScrollbar.d.ts +2 -0
  43. package/lib/esm/common/Table/TableView/CustomScrollbar.js +34 -0
  44. package/lib/esm/common/Table/TableView/TableCells.js +2 -2
  45. package/lib/esm/common/Table/TableView/TableHeaders.d.ts +6 -2
  46. package/lib/esm/common/Table/TableView/TableHeaders.js +11 -8
  47. package/lib/esm/common/Table/TableView/TableRow.d.ts +2 -1
  48. package/lib/esm/common/Table/TableView/TableRow.js +4 -4
  49. package/lib/esm/common/Table/TableView/common.d.ts +5 -1
  50. package/lib/esm/common/Table/TableView/common.js +11 -4
  51. package/lib/esm/common/Table/TableView/index.d.ts +4 -1
  52. package/lib/esm/common/Table/TableView/index.js +24 -11
  53. package/lib/esm/common/Table/index.js +1 -1
  54. package/lib/esm/common/buttons.js +21 -14
  55. package/lib/esm/common/icons/index.d.ts +1 -1
  56. package/lib/esm/common/icons/index.js +4 -1
  57. package/lib/esm/common/inputs/Checkbox.js +1 -1
  58. package/lib/esm/common/inputs/TextInput.js +1 -1
  59. package/lib/esm/locales/en.js +2 -2
  60. package/lib/esm/styled/theme/textStyles.js +2 -2
  61. package/lib/main.js +11 -11
  62. package/package.json +2 -1
@@ -45,10 +45,13 @@ var steps = [
45
45
  component: _jsx(Review, {}),
46
46
  },
47
47
  ];
48
- export var Layout = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: grid;\n grid-template-rows: auto 1fr auto;\n height: 100vh;\n width: 100vw;\n overflow-y: scroll;\n position: fixed;\n top: 0;\n left: 0;\n z-index: ", ";\n ", ";\n"], ["\n display: grid;\n grid-template-rows: auto 1fr auto;\n height: 100vh;\n width: 100vw;\n overflow-y: scroll;\n position: fixed;\n top: 0;\n left: 0;\n z-index: ", ";\n ", ";\n"])), function (p) { return p.zIndex; }, function (p) { return p.theme.css.scrollbarDark; });
49
- var Content = styled(Div)(function (_a) {
50
- var colors = _a.theme.colors;
51
- return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n "], ["\n background-color: ", ";\n "])), colors.backgroundInterface);
48
+ export var Layout = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n display: flex;\n flex-direction: column;\n height: 100vh;\n left: 0;\n overflow-y: auto;\n position: fixed;\n top: 0;\n width: 100vw;\n z-index: ", ";\n ", ";\n"], ["\n background: ", ";\n display: flex;\n flex-direction: column;\n height: 100vh;\n left: 0;\n overflow-y: auto;\n position: fixed;\n top: 0;\n width: 100vw;\n z-index: ", ";\n ", ";\n"])), function (_a) {
49
+ var theme = _a.theme;
50
+ return theme.colors.backgroundInterface;
51
+ }, function (p) { return p.zIndex; }, function (p) { return p.theme.css.scrollbarDark; });
52
+ var Content = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (_a) {
53
+ var colors = _a.theme.colors, inTrialMode = _a.inTrialMode;
54
+ return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n flex: ", ";\n "], ["\n background-color: ", ";\n flex: ", ";\n "])), colors.backgroundInterface, inTrialMode ? "none" : 1);
52
55
  });
53
56
  export var ImporterWithContext = function () {
54
57
  var _a = useImporterContext(), inTrialMode = _a.inTrialMode, currentStepIndex = _a.currentStepIndex, matcherSubstep = _a.matcherSubstep, theme = _a.theme, logoURL = _a.logoURL, previewFirstTime = _a.previewFirstTime, _b = _a.importerOptions, zIndex = _b.zIndex, previewMode = _b.previewMode;
@@ -58,9 +61,9 @@ export var ImporterWithContext = function () {
58
61
  layoutRef.current.scrollTo(0, 0);
59
62
  }, [currentStepIndex, matcherSubstep]);
60
63
  function renderContent() {
61
- return (_jsxs(_Fragment, { children: [_jsxs(Div, { children: [previewMode && _jsx(PreviewModeBanner, {}), !previewMode && _jsx(TrialModeBanner, {}), _jsx(Stepper, { stepLabels: steps.map(function (step) { return t(step.label); }), logoURL: logoURL })] }), _jsx(Content, { children: steps[currentStepIndex].component }), inTrialMode && (_jsx(Content, { children: _jsx(Footer, {}) }))] }));
64
+ return (_jsxs(_Fragment, { children: [_jsxs(Div, { children: [previewMode && _jsx(PreviewModeBanner, {}), !previewMode && _jsx(TrialModeBanner, {}), _jsx(Stepper, { stepLabels: steps.map(function (step) { return t(step.label); }), logoURL: logoURL })] }), _jsx(Content, { children: steps[currentStepIndex].component }), inTrialMode && (_jsx(Content, __assign({ inTrialMode: inTrialMode }, { children: _jsx(Footer, {}) })))] }));
62
65
  }
63
66
  var shouldShowPreviewFirstTime = previewFirstTime && previewMode;
64
67
  return (_jsxs(ThemeProvider, __assign({ theme: theme }, { children: [_jsx(Toast, {}), _jsx(GlobalStyle, {}), _jsx(ImporterFonts, {}), _jsx(ReviewContextProvider, { children: _jsx(Layout, __assign({ zIndex: zIndex, ref: layoutRef }, { children: shouldShowPreviewFirstTime ? _jsx(PreviewFirstTime, {}) : renderContent() })) })] })));
65
68
  };
66
- var templateObject_1, templateObject_2;
69
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -41,7 +41,7 @@ export var tableColumns = [
41
41
  newEnumFieldValueMatchings[templateHeaderLabel][uploadedDataValue] = selected;
42
42
  setEnumFieldValueMatchings(newEnumFieldValueMatchings);
43
43
  };
44
- return (_jsx(Div, __assign({ w100: true }, { children: _jsx(Autocomplete, { w: "90%", placeholder: t("columns.placeholder"), onChange: onChange, value: uploadedDataValueMatching, options: valueOptions.map(function (vo) { return ({
44
+ return (_jsx(Div, __assign({ w100: true }, { children: _jsx(Autocomplete, { w: "90%", placeholder: t("columns.placeholder"), onChange: onChange, placement: "bottom", value: uploadedDataValueMatching, options: valueOptions.map(function (vo) { return ({
45
45
  value: vo,
46
46
  label: vo,
47
47
  }); }) }) })));
@@ -11,14 +11,13 @@ var __assign = (this && this.__assign) || function () {
11
11
  };
12
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
13
  import { Div } from "../../../styled/utils";
14
- import { contentWidth } from "../../common/index";
15
14
  import { useImporterContext } from "../../contexts/ImporterContextProvider";
16
15
  import { EnumFieldMatcher } from "./EnumFieldMatcher";
17
16
  import { useTranslation } from "react-i18next";
18
17
  export var EnumFieldsMatchers = function () {
19
18
  var t = useTranslation("match").t;
20
19
  var enumFieldValueMatchings = useImporterContext().enumFieldValueMatchings;
21
- return (_jsxs(_Fragment, { children: [_jsxs(Div, __assign({ flexColumn: true, centered: true }, { children: [_jsx(Div, __assign({ h2: true, mb: 16 }, { children: t("title") })), _jsx(Div, __assign({ body1: true, mb: 24, textAlignCenter: true, maxw: 928 }, { children: t("enum_description") }))] })), _jsx(Div, __assign({ flexColumn: true, alignCenter: true, mb: 20, centered: true }, { children: Object.keys(enumFieldValueMatchings).map(function (templateHeaderLabel, index) {
22
- return (_jsx(Div, __assign({ w: contentWidth }, { children: _jsx(EnumFieldMatcher, { templateHeaderLabel: templateHeaderLabel }) }), index));
20
+ return (_jsxs(_Fragment, { children: [_jsxs(Div, __assign({ flexColumn: true, ml: 32 }, { children: [_jsx(Div, __assign({ h2: true, mb: 16, mt: 40 }, { children: t("title") })), _jsx(Div, __assign({ body1: true, mb: 40, maxw: 928 }, { children: t("enum_description") }))] })), _jsx(Div, __assign({ flexColumn: true, alignCenter: true, mb: 20, ml: 32, mr: 32, centered: true }, { children: Object.keys(enumFieldValueMatchings).map(function (templateHeaderLabel, index) {
21
+ return (_jsx(Div, __assign({ w: "100%" }, { children: _jsx(EnumFieldMatcher, { templateHeaderLabel: templateHeaderLabel }) }), index));
23
22
  }) }))] }));
24
23
  };
@@ -19,13 +19,13 @@ import styled from "styled-components";
19
19
  import { defaultTableHeaderHeightPx, TableView, } from "../../../common/Table/TableView";
20
20
  import { colors } from "../../../styled/theme";
21
21
  import { Div } from "../../../styled/utils";
22
- import { contentWidth, getTableHeight } from "../../common/index";
22
+ import { getTableHeight } from "../../common/index";
23
23
  import { useImporterContext } from "../../contexts/ImporterContextProvider";
24
24
  import { MAX_VISIBLE_ROWS } from "../common";
25
25
  import { MatcherStatus } from "../common/types";
26
26
  import { tableColumns } from "./tableColumns";
27
27
  import { useTranslation } from "react-i18next";
28
- var CardContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex-direction: row;\n > div {\n margin: 16px;\n }\n"], ["\n flex-direction: row;\n > div {\n margin: 16px;\n }\n"])));
28
+ var CardContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n flex-direction: row;\n"], ["\n flex-direction: row;\n"])));
29
29
  var HeaderMatcher = function () {
30
30
  var t = useTranslation("match").t;
31
31
  var _a = useImporterContext(), templateHeaders = _a.templateHeaders, templateHeaderMatchings = _a.templateHeaderMatchings;
@@ -52,10 +52,10 @@ var HeaderMatcher = function () {
52
52
  dataCount: data.length,
53
53
  maxVisibleRows: MAX_VISIBLE_ROWS,
54
54
  });
55
- return (_jsx(_Fragment, { children: _jsx(Div, { children: _jsxs(Div, __assign({ flexColumn: true, centered: true }, { children: [_jsx(Div, __assign({ h2: true, mb: 16 }, { children: t("title") })), _jsx(Div, __assign({ body1: true, mb: 24, textAlignCenter: true }, { children: t("description", {
56
- numberOfMatchedHeaders: numberOfMatchedHeaders,
57
- totalNumberOfHeaders: templateHeaders.length,
58
- }) })), _jsx(CardContainer, __assign({ dflex: true, centered: true, alignStart: true }, { children: _jsx(Div, __assign({ w: contentWidth }, { children: _jsx(TableView, { h: tableHeight, data: sortedData, rowHeight: tableRowHeight, columns: tableColumns, bg: colors.white }) })) }))] })) }) }));
55
+ return (_jsx(_Fragment, { children: _jsxs(Div, __assign({ flexColumn: true, h100: true }, { children: [_jsxs(Div, __assign({ ml: 32, mr: 32 }, { children: [_jsx(Div, __assign({ h2: true, mb: 16, mt: 40 }, { children: t("title") })), _jsx(Div, __assign({ body1: true, mb: 24 }, { children: t("description", {
56
+ numberOfMatchedHeaders: numberOfMatchedHeaders,
57
+ totalNumberOfHeaders: templateHeaders.length,
58
+ }) }))] })), _jsx(CardContainer, __assign({ dflex: true, centered: true, alignStart: true, w100: true, h100: true }, { children: _jsx(Div, __assign({ w100: true, h100: true }, { children: _jsx(TableView, { h: tableHeight, data: sortedData, rowHeight: tableRowHeight, columns: tableColumns, bg: colors.white, style: { height: "100%" } }) })) }))] })) }));
59
59
  };
60
60
  export { HeaderMatcher };
61
61
  var templateObject_1;
@@ -27,7 +27,7 @@ export var tableColumns = [
27
27
  newTemplateHeaderMatchings[ourColumns] = selected;
28
28
  setTemplateHeaderMatchings(newTemplateHeaderMatchings);
29
29
  };
30
- return (_jsx(Autocomplete, { w: "92%", onChange: onChange, value: yourColumns, id: "your-column-".concat(ourColumns), options: uploadedDataHeaders.map(function (h) { return ({
30
+ return (_jsx(Autocomplete, { w: "92%", onChange: onChange, value: yourColumns, placement: "bottom", id: "your-column-".concat(ourColumns), options: uploadedDataHeaders.map(function (h) { return ({
31
31
  value: h,
32
32
  label: h,
33
33
  }); }) }));
@@ -2,21 +2,9 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
2
2
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
3
3
  return cooked;
4
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
5
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
17
- import React, { useMemo } from "react";
6
+ import React from "react";
18
7
  import styled, { css } from "styled-components";
19
- import { FieldTypes } from "../..";
20
8
  import { Div } from "../../styled/utils";
21
9
  import { useImporterContext } from "../contexts/ImporterContextProvider";
22
10
  import { HeaderMatcher } from "./HeaderMatcher";
@@ -27,12 +15,8 @@ var Dot = styled(Div)(function (_a) {
27
15
  return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 8px;\n width: 8px;\n border-radius: 100%;\n background: ", ";\n ", "\n "], ["\n height: 8px;\n width: 8px;\n border-radius: 100%;\n background: ", ";\n ", "\n "])), colors.outlineInputs, isSelected && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 12px;\n width: 12px;\n background: ", ";\n "], ["\n height: 12px;\n width: 12px;\n background: ", ";\n "])), colors.highlight01));
28
16
  });
29
17
  var Matcher = function () {
30
- var _a = useImporterContext(), matcherSubstep = _a.matcherSubstep, templateHeaders = _a.templateHeaders;
31
- var enumFieldsCount = useMemo(function () {
32
- return templateHeaders.filter(function (th) { return th.column_type === FieldTypes.enum; }).length;
33
- }, [templateHeaders]);
34
- var dotsUI = (_jsxs(_Fragment, { children: [_jsx(Dot, { isSelected: matcherSubstep === 0 }), _jsx(Dot, { isSelected: matcherSubstep === 1 })] }));
35
- return (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ centered: true }, { children: _jsx(Div, __assign({ w: 30, mt: 40, mb: 16, alignCenter: true, spaceBetween: true }, { children: enumFieldsCount > 0 && dotsUI })) })), matcherSubstep === 0 && _jsx(HeaderMatcher, {}), matcherSubstep === 1 && _jsx(EnumFieldsMatchers, {})] }));
18
+ var matcherSubstep = useImporterContext().matcherSubstep;
19
+ return (_jsxs(_Fragment, { children: [matcherSubstep === 0 && _jsx(HeaderMatcher, {}), matcherSubstep === 1 && _jsx(EnumFieldsMatchers, {})] }));
36
20
  };
37
21
  export default React.memo(Matcher, areEqual);
38
22
  var templateObject_1, templateObject_2;
@@ -16,23 +16,19 @@ var __assign = (this && this.__assign) || function () {
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  import { useImporterContext } from "../contexts/ImporterContextProvider";
18
18
  import { Div } from "../../styled/utils";
19
- import { Span } from "../../styled";
20
19
  import Spreadsheet from "../common/Spreadsheet";
21
20
  import { getSpreadsheetRowWidth } from "../common/utils";
22
21
  import { AppResponseModal } from "./AppResponseModal";
23
22
  import { useReviewContext } from "./ReviewContextProvider";
24
- import { Button } from "../../common/buttons";
25
23
  import styled from "styled-components";
26
24
  import { useTranslation } from "react-i18next";
27
- var downloadIcon = (_jsxs("svg", __assign({ width: "16", height: "17", viewBox: "0 0 16 17", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: [_jsx("path", { d: "M1.66659 8.99996C1.33325 7.99996 1.33325 6.99996 1.33325 6.3042C1.33325 3.98541 3.40957 1.66663 5.97083 1.66663C7.68739 1.66663 9.18612 2.59924 9.98798 3.98541H10.6084C12.5293 3.98541 14.3333 5.33329 14.3333 6.99996C14.3333 7.66663 14.3333 8.33329 13.9999 8.99996", stroke: "#333333", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M4.94434 13.2211L7.66656 15.8333L10.3888 13.2211", stroke: "#333333", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M7.66675 15.1462L7.66675 7.75005", stroke: "#333333", strokeWidth: "2", strokeLinecap: "round" })] })));
28
- var TitleContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n width: 99%;\n"], ["\n width: 99%;\n"])));
29
- var ExportButtonContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n position: absolute;\n right: 32px;\n"], ["\n position: absolute;\n right: 32px;\n"])));
25
+ var TitleContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject([""], [""])));
30
26
  var ReviewWithContext = function () {
31
- var _a = useReviewContext(), fields = _a.reviewFields, initialDataSet = _a.reviewInitialDataSet, options = _a.options, onValidateRecord = _a.onValidateRecord, onDataSetChanged = _a.onDataSetChanged, onValidationStateChanged = _a.onValidationStateChanged, onExport = _a.onExport;
27
+ var _a = useReviewContext(), fields = _a.reviewFields, initialDataSet = _a.reviewInitialDataSet, options = _a.options, onValidateRecord = _a.onValidateRecord, onDataSetChanged = _a.onDataSetChanged, onValidationStateChanged = _a.onValidationStateChanged;
32
28
  var _b = useImporterContext(), selectedRows = _b.selectedRows, setSelectedRows = _b.setSelectedRows, isUsingManualImport = _b.isUsingManualImport;
33
29
  var t = useTranslation("review").t;
34
30
  var spreadsheetUI = initialDataSet && (_jsx(Spreadsheet, { options: __assign(__assign({}, options), { showCheckboxColumn: true }), selectedRows: selectedRows, setSelectedRows: setSelectedRows, initialDataSet: initialDataSet, fields: fields, rowWidth: getSpreadsheetRowWidth(fields, 6), onDataSetChanged: onDataSetChanged, onValidateRecord: onValidateRecord, onValidationStateChanged: onValidationStateChanged }));
35
- return (_jsxs(Div, __assign({ centered: true, flexColumn: true, h100: true }, { children: [_jsx(AppResponseModal, {}), _jsxs(Div, __assign({ w100: true, h100: true }, { children: [_jsxs(TitleContainer, __assign({ centered: true, textAlignCenter: true, flexColumn: true }, { children: [_jsx(Div, __assign({ h2: true, mt: 40 }, { children: t(isUsingManualImport.current ? "manual_importer_title" : "title") })), _jsx(ExportButtonContainer, __assign({ mb: 16, mt: 64 }, { children: _jsxs(Button, __assign({ w: 120, br: 8, variant: "secondary", svgNormalFillColorOverride: "transparent", svgActiveFillColorOverride: "transparent", svgActiveStrokeColorOverride: "white", onClick: onExport }, { children: [downloadIcon, " ", _jsxs(Span, __assign({ ml: 6 }, { children: [" ", t("export")] }))] })) }))] })), _jsx(Div, __assign({ centered: true, textAlignCenter: true, flexColumn: true }, { children: _jsx(Div, __assign({ body1: true, mt: 20, w: 540, mb: 15 }, { children: t("description") })) })), spreadsheetUI] }))] })));
31
+ return (_jsxs(Div, __assign({ centered: true, flexColumn: true, h100: true }, { children: [_jsx(AppResponseModal, {}), _jsxs(Div, __assign({ w100: true, h100: true, flexColumn: true }, { children: [_jsx(TitleContainer, __assign({ flexColumn: true, ml: 32 }, { children: _jsx(Div, __assign({ h2: true, mt: 40, mb: 40 }, { children: t(isUsingManualImport.current ? "manual_importer_title" : "title") })) })), _jsx(Div, __assign({ h100: true, w100: true, justifyCenter: true }, { children: spreadsheetUI }))] }))] })));
36
32
  };
37
33
  export default ReviewWithContext;
38
- var templateObject_1, templateObject_2;
34
+ var templateObject_1;
@@ -15,13 +15,13 @@ var __assign = (this && this.__assign) || function () {
15
15
  };
16
16
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
17
17
  import styled, { css } from "styled-components";
18
- import { whiteCheckIcon } from "../../common";
18
+ import { WhiteCheckIcon } from "../../common";
19
19
  import { Div } from "../../styled";
20
20
  var StepIndexWrapper = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 22px;\n width: 22px;\n color: ", ";\n border-radius: 50%;\n background-color: none;\n border: 1px solid ", ";\n\n ", ";\n"], ["\n height: 22px;\n width: 22px;\n color: ", ";\n border-radius: 50%;\n background-color: none;\n border: 1px solid ", ";\n\n ", ";\n"])), function (p) { return p.theme.colors.gray400; }, function (p) { return p.theme.colors.gray400; }, function (p) {
21
21
  return p.isSelected && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 32px;\n width: 32px;\n border: solid 1px ", ";\n color: ", ";\n background-color: ", ";\n "], ["\n height: 32px;\n width: 32px;\n border: solid 1px ", ";\n color: ", ";\n background-color: ", ";\n "])), function (p) { return p.theme.colors.blue500; }, function (p) { return p.theme.colors.white; }, function (p) { return p.theme.colors.blue500; });
22
22
  });
23
23
  export var StepIndex = function (_a) {
24
24
  var index = _a.index, isSelected = _a.isSelected, isCompleted = _a.isCompleted;
25
- return (_jsx(_Fragment, { children: isCompleted ? (_jsx(Div, __assign({ centered: true, body2: true, bold: true, mr: 8 }, { children: whiteCheckIcon }))) : (_jsx(StepIndexWrapper, __assign({ centered: true, body2: true, bold: true, mr: 8, isSelected: isSelected }, { children: index }))) }));
25
+ return (_jsx(_Fragment, { children: isCompleted ? (_jsx(Div, __assign({ centered: true, body2: true, bold: true, mr: 8 }, { children: _jsx(WhiteCheckIcon, {}) }))) : (_jsx(StepIndexWrapper, __assign({ centered: true, body2: true, bold: true, mr: 8, isSelected: isSelected }, { children: index }))) }));
26
26
  };
27
27
  var templateObject_1, templateObject_2;
@@ -18,7 +18,6 @@ import { useState } from "react";
18
18
  import styled, { css } from "styled-components";
19
19
  import { Button, closeIconCondensed, ChevronRightIcon } from "../../common";
20
20
  import { Div } from "../../styled/utils";
21
- import { contentWidth } from "../common";
22
21
  import { useImporterContext } from "../contexts/ImporterContextProvider";
23
22
  import { useReviewContext } from "../Review/ReviewContextProvider";
24
23
  import { ColumnType } from "../Matcher/common/types";
@@ -29,8 +28,15 @@ import { UnmatchedHeadersModal } from "./UnmatchedHeadersModal";
29
28
  import { ConfirmCloseModal } from "./ConfirmCloseModal";
30
29
  import { useTranslation } from "react-i18next";
31
30
  var StepperWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n user-select: none;\n"], ["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n user-select: none;\n"])), function (p) { return p.theme.colors.white; }, function (p) { return p.theme.colors.gray300; });
32
- var Logo = styled.img(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n max-height: 70px;\n max-width: 300px;\n position: absolute;\n left: 41px;\n"], ["\n max-height: 70px;\n max-width: 300px;\n position: absolute;\n left: 41px;\n"])));
33
- var CloseIcon = styled(Div)(function () { return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n right: 41px;\n "], ["\n position: absolute;\n right: 41px;\n "]))); });
31
+ var StepperContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n padding-left: 32px;\n padding-right: 32px;\n width: 100%;\n"], ["\n align-items: center;\n display: flex;\n gap: 16px;\n justify-content: space-between;\n padding-left: 32px;\n padding-right: 32px;\n width: 100%;\n"])));
32
+ var Steps = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n @media (max-width: 630px) {\n display: none;\n }\n"], ["\n @media (max-width: 630px) {\n display: none;\n }\n"])));
33
+ var Logo = styled.img(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n max-height: 70px;\n max-width: 300px;\n"], ["\n max-height: 70px;\n max-width: 300px;\n"])));
34
+ var StepperButtonContainer = styled(Div)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n align-items: center;\n display: flex;\n flex: 1;\n gap: 32px;\n justify-content: ", ";\n"], ["\n align-items: center;\n display: flex;\n flex: 1;\n gap: 32px;\n justify-content: ", ";\n"])), function (_a) {
35
+ var align = _a.align;
36
+ return align === "left" ? "flex-start" : "flex-end";
37
+ });
38
+ var GoBackButtonWrapper = styled(Div)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n @media (max-width: 740px) {\n display: none;\n }\n"], ["\n @media (max-width: 740px) {\n display: none;\n }\n"])));
39
+ var CloseIcon = styled(Div)(function () { return css(templateObject_7 || (templateObject_7 = __makeTemplateObject([""], [""]))); });
34
40
  export var Stepper = function (_a) {
35
41
  var stepLabels = _a.stepLabels, logoURL = _a.logoURL;
36
42
  var _b = useState(false), isUnmatchedHeadersModalOpen = _b[0], setIsUnmatchedHeadersModalOpen = _b[1];
@@ -38,7 +44,7 @@ export var Stepper = function (_a) {
38
44
  var _c = useState(false), isSubmitModalOpen = _c[0], setIsSubmitModalOpen = _c[1];
39
45
  var _d = useState(false), isConfirmCloseModalOpen = _d[0], setIsConfirmCloseModalOpen = _d[1];
40
46
  var _e = useReviewContext(), appResponse = _e.appResponse, isSubmitDisabled = _e.isSubmitDisabled, onSubmit = _e.onSubmit;
41
- var _f = useImporterContext(), currentStepIndex = _f.currentStepIndex, templateHeaderMatchings = _f.templateHeaderMatchings, matcherSubstep = _f.matcherSubstep, templateHeaders = _f.templateHeaders, uploadedDataEnumFieldValues = _f.uploadedDataEnumFieldValues, setEnumFieldValueMatchings = _f.setEnumFieldValueMatchings, setMatcherSubstep = _f.setMatcherSubstep, setCurrentStepIndex = _f.setCurrentStepIndex, onClose = _f.onClose, isUsingManualImport = _f.isUsingManualImport, resetImporterWhenUsingManualImport = _f.resetImporterWhenUsingManualImport;
47
+ var _f = useImporterContext(), currentStepIndex = _f.currentStepIndex, templateHeaderMatchings = _f.templateHeaderMatchings, matcherSubstep = _f.matcherSubstep, templateHeaders = _f.templateHeaders, uploadedDataEnumFieldValues = _f.uploadedDataEnumFieldValues, setEnumFieldValueMatchings = _f.setEnumFieldValueMatchings, setMatcherSubstep = _f.setMatcherSubstep, setCurrentStepIndex = _f.setCurrentStepIndex, onClose = _f.onClose, isUsingManualImport = _f.isUsingManualImport, resetImporterWhenUsingManualImport = _f.resetImporterWhenUsingManualImport, uploadedData = _f.uploadedData;
42
48
  var templateHeaderLabels = Object.keys(templateHeaderMatchings || []);
43
49
  var unmatchedHeadersCount = templateHeaderLabels.filter(function (templateHeaderLabel) { return !templateHeaderMatchings[templateHeaderLabel]; }).length;
44
50
  var isLastSubMatchStep = matcherSubstep === 1;
@@ -66,7 +72,10 @@ export var Stepper = function (_a) {
66
72
  unmatchedHeadersCount ? setIsUnmatchedHeadersModalOpen(true) : setStep();
67
73
  };
68
74
  var continueToNextStep = function () {
69
- if (isLastSubMatchStep) {
75
+ if (isVerifyStep) {
76
+ setCurrentStepIndex(1);
77
+ }
78
+ else if (isLastSubMatchStep) {
70
79
  setIsUnmatchedHeadersModalOpen(false);
71
80
  setCurrentStepIndex(2);
72
81
  }
@@ -88,6 +97,10 @@ export var Stepper = function (_a) {
88
97
  setCurrentStepIndex(currentStepIndex - 1);
89
98
  }
90
99
  };
100
+ var handleOnClose = function () {
101
+ setIsConfirmCloseModalOpen(true);
102
+ };
103
+ var isVerifyStep = currentStepIndex === 0 && !!uploadedData;
91
104
  var isMatchStep = currentStepIndex === 1;
92
105
  var isReviewStep = currentStepIndex === 2;
93
106
  var stepsUI = (_jsx(Div, __assign({ dflex: true, centered: true }, { children: stepLabels.map(function (label, index) {
@@ -95,13 +108,10 @@ export var Stepper = function (_a) {
95
108
  var isCompleted = index < currentStepIndex;
96
109
  return (_jsxs(Div, __assign({ centered: true }, { children: [_jsx(Step, { index: index, label: label, isCompleted: isCompleted, isSelected: index === currentStepIndex }), !isLast && (_jsx(Div, __assign({ ml: 18, mr: 18, dflex: true }, { children: _jsx(ChevronRightIcon, {}) })))] }), index));
97
110
  }) })));
98
- var leftButtonUI = (_jsx(Div, { children: currentStepIndex > 0 && !appResponse && (_jsx(Button, __assign({ variant: "secondary", onClick: goBack }, { children: t("stepper.go_back") }))) }));
99
- var rightButtonUI = (_jsxs(Div, __assign({ w: 100 }, { children: [isMatchStep && (_jsx(Button, __assign({ variant: "primary", onClick: continueToNextStep }, { children: t("stepper.continue") }))), isReviewStep && (_jsx(Button, __assign({ variant: "primary", isDisabled: isSubmitDisabled, onClick: function () { return setIsSubmitModalOpen(true); } }, { children: t("stepper.submit") })))] })));
100
- var handleOnClose = function () {
101
- setIsConfirmCloseModalOpen(true);
102
- };
103
- return (_jsxs(_Fragment, { children: [_jsxs(StepperWrapper, __assign({ pRelative: true, alignCenter: true, w100: true, h: 96, centered: true }, { children: [logoURL && _jsx(Logo, { src: logoURL, alt: "" }), _jsxs(Div, __assign({ spaceBetween: true, w: contentWidth }, { children: [leftButtonUI, _jsx(Div, __assign({ alignCenter: true }, { children: stepsUI })), rightButtonUI] })), _jsx(CloseIcon, __assign({ "data-test-id": "close-importer", centered: true, clickable: true, onClick: handleOnClose }, { children: closeIconCondensed }))] })), _jsx(UnmatchedHeadersModal, { isUnmatchedHeadersModalOpen: isUnmatchedHeadersModalOpen, unmatchedHeadersCount: unmatchedHeadersCount, onSetStep: function () { return setStep(); }, onCloseUnmatchedHeadersModal: function () {
111
+ var leftButtonUI = (_jsx(Div, __assign({ style: { flex: 1 } }, { children: _jsxs(StepperButtonContainer, __assign({ align: "left" }, { children: [logoURL && (_jsx(Div, __assign({ forDesktop: true }, { children: _jsx(Logo, { src: logoURL, alt: "" }) }))), currentStepIndex > 0 && !appResponse && (_jsx(GoBackButtonWrapper, { children: _jsx(Button, __assign({ variant: "secondary", onClick: goBack }, { children: t("stepper.go_back") })) }))] })) })));
112
+ var rightButtonUI = (_jsxs(StepperButtonContainer, __assign({ align: "right" }, { children: [(isMatchStep || isVerifyStep) && (_jsx(Button, __assign({ variant: "primary", onClick: continueToNextStep }, { children: t("stepper.continue") }))), isReviewStep && (_jsx(Button, __assign({ variant: "primary", isDisabled: isSubmitDisabled, onClick: function () { return setIsSubmitModalOpen(true); } }, { children: t("stepper.submit") }))), _jsx(CloseIcon, __assign({ "data-test-id": "close-importer", centered: true, clickable: true, onClick: handleOnClose }, { children: closeIconCondensed }))] })));
113
+ return (_jsxs(_Fragment, { children: [_jsx(StepperWrapper, __assign({ pRelative: true, alignCenter: true, w100: true, h: 72, centered: true }, { children: _jsxs(StepperContainer, { children: [leftButtonUI, _jsx(Steps, __assign({ alignCenter: true }, { children: stepsUI })), rightButtonUI] }) })), _jsx(UnmatchedHeadersModal, { isUnmatchedHeadersModalOpen: isUnmatchedHeadersModalOpen, unmatchedHeadersCount: unmatchedHeadersCount, onSetStep: function () { return setStep(); }, onCloseUnmatchedHeadersModal: function () {
104
114
  return setIsUnmatchedHeadersModalOpen(false);
105
115
  } }), _jsx(StepperSubmitModal, { isSubmitModalOpen: isSubmitModalOpen, onCloseModal: function () { return setIsSubmitModalOpen(false); }, onSubmit: onSubmit }), _jsx(ConfirmCloseModal, { isOpen: isConfirmCloseModalOpen, onClose: function () { return setIsConfirmCloseModalOpen(false); }, onCloseImporter: onClose })] }));
106
116
  };
107
- var templateObject_1, templateObject_2, templateObject_3;
117
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -0,0 +1,3 @@
1
+ export declare const ImporterSectionContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
2
+ export declare const ErrorCardContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
3
+ export declare const LoadingCardWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
@@ -0,0 +1,11 @@
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 { theme } from "../../../styled/theme";
7
+ import { Div } from "../../../styled/utils";
8
+ export var ImporterSectionContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n gap: 16px;\n width: 100%;\n height: 100%;\n\n @media (max-width: 1050px) {\n flex-direction: column;\n }\n"], ["\n display: flex;\n gap: 16px;\n width: 100%;\n height: 100%;\n\n @media (max-width: 1050px) {\n flex-direction: column;\n }\n"])));
9
+ export var ErrorCardContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n align-self: center;\n background: ", ";\n border-radius: 8px;\n border: 1px dashed ", ";\n display: flex;\n flex-direction: column;\n height: 550px;\n justify-content: center;\n width: 1120px;\n"], ["\n align-items: center;\n align-self: center;\n background: ", ";\n border-radius: 8px;\n border: 1px dashed ", ";\n display: flex;\n flex-direction: column;\n height: 550px;\n justify-content: center;\n width: 1120px;\n"])), theme.colors.blue100, theme.colors.blue500);
10
+ export var LoadingCardWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n box-shadow: 0px 0px 12px rgba(33, 75, 167, 0.24);\n border-radius: 8px;\n max-width: 544px;\n height: 102px;\n padding-left: 30px;\n padding-right: 30px;\n background: ", ";\n"], ["\n box-shadow: 0px 0px 12px rgba(33, 75, 167, 0.24);\n border-radius: 8px;\n max-width: 544px;\n height: 102px;\n padding-left: 30px;\n padding-right: 30px;\n background: ", ";\n"])), function (p) { return p.theme.colors.white; });
11
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -25,7 +25,7 @@ import { addToast } from "../../../common/Toast";
25
25
  import { Button } from "../../../common/buttons";
26
26
  import { DragAndDropSvg, UploadIndicatorSvg } from "./backgrounds";
27
27
  import { useTranslation } from "react-i18next";
28
- var DragAndDropCard = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: 8px;\n margin-right: ", ";\n width: 832px;\n height: 530px;\n display: flex;\n background: ", ";\n border: 1px dashed ", ";\n ", "\n"], ["\n border-radius: 8px;\n margin-right: ", ";\n width: 832px;\n height: 530px;\n display: flex;\n background: ", ";\n border: 1px dashed ", ";\n ", "\n"])), function (props) { return (props.isDragActive ? "-10px" : "revert"); }, theme.colors.white, theme.colors.red50, function (props) {
28
+ var DragAndDropCard = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: 8px;\n margin-right: ", ";\n width: 100%;\n height: 100%;\n display: flex;\n background: ", ";\n border: 1px dashed ", ";\n\n @media (max-width: 1050px) {\n padding: 24px;\n width: auto;\n }\n\n ", "\n"], ["\n border-radius: 8px;\n margin-right: ", ";\n width: 100%;\n height: 100%;\n display: flex;\n background: ", ";\n border: 1px dashed ", ";\n\n @media (max-width: 1050px) {\n padding: 24px;\n width: auto;\n }\n\n ", "\n"])), function (props) { return (props.isDragActive ? "-10px" : "revert"); }, theme.colors.white, theme.colors.red50, function (props) {
29
29
  return props.isDragActive && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n border: 1px solid ", ";\n justify-content: center;\n "], ["\n background: ", ";\n border: 1px solid ", ";\n justify-content: center;\n "])), function (p) { return p.theme.colors.blue100; }, function (p) { return p.theme.colors.blue500; });
30
30
  });
31
31
  var DropzoneUploadingContainer = styled(Div)(function (_a) {
@@ -37,7 +37,7 @@ var DragAndDropComponent = function (_a) {
37
37
  var openUploadFileDialog = _a.openUploadFileDialog;
38
38
  var t = useTranslation("upload").t;
39
39
  var manualDataImportSelected = useImporterContext().manualDataImportSelected;
40
- return (_jsxs(Div, __assign({ centered: true, flexColumn: true }, { children: [_jsx(Div, __assign({ mb: 12 }, { children: DragAndDropSvg })), _jsx(Div, __assign({ h4: true }, { children: t("dropzone.title") })), _jsx(Button, __assign({ mt: 20, variant: "secondary", w: "fit-content", p: 12, isSmall: true, onClick: openUploadFileDialog }, { children: t("dropzone.button") })), _jsx(Div, __assign({ body1: true, textAlignCenter: true, m: 4 }, { children: t("dropzone.description") })), _jsx(Div, { children: _jsx(Button, __assign({ variant: "link", w: "fit-content", p: 12, isSmall: true, onClick: manualDataImportSelected }, { children: t("dropzone.enter_data_manually") })) })] })));
40
+ return (_jsxs(Div, __assign({ centered: true, flexColumn: true }, { children: [_jsx(Div, __assign({ mb: 12 }, { children: DragAndDropSvg })), _jsx(Div, __assign({ h5: true }, { children: t("dropzone.title") })), _jsx(Button, __assign({ mt: 20, variant: "secondary", w: "fit-content", p: 12, isSmall: true, onClick: openUploadFileDialog }, { children: t("dropzone.button") })), _jsx(Div, __assign({ body1: true, textAlignCenter: true, m: 4, mt: 24 }, { children: t("dropzone.description") })), _jsx(Div, { children: _jsx(Button, __assign({ variant: "link", w: "fit-content", p: 12, isSmall: true, onClick: manualDataImportSelected }, { children: t("dropzone.enter_data_manually") })) })] })));
41
41
  };
42
42
  var ImporterDropzone = function () {
43
43
  var _a = useUploaderContext(), setIsUploading = _a.setIsUploading, setFileName = _a.setFileName;
@@ -0,0 +1,7 @@
1
+ type HeaderListItemProps = {
2
+ isLast: boolean;
3
+ };
4
+ export declare const HeaderCardWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../../styled/utils").CSSProps, never>;
5
+ export declare const HeaderCardContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../../styled/utils").CSSProps, never>;
6
+ export declare const HeaderListItem: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../../styled/utils").CSSProps & HeaderListItemProps, never>;
7
+ export {};
@@ -0,0 +1,11 @@
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
+ import { theme } from "../../../../styled/theme";
8
+ export var HeaderCardWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: fit-content;\n"], ["\n height: fit-content;\n"])));
9
+ export var HeaderCardContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border: 1px solid ", ";\n border-radius: 8px;\n padding: 24px;\n box-sizing: border-box;\n overflow-y: auto;\n ", ";\n background: ", ";\n max-height: 596px;\n width: 332px;\n\n @media (max-width: 1050px) {\n width: 100%;\n }\n"], ["\n border: 1px solid ", ";\n border-radius: 8px;\n padding: 24px;\n box-sizing: border-box;\n overflow-y: auto;\n ", ";\n background: ", ";\n max-height: 596px;\n width: 332px;\n\n @media (max-width: 1050px) {\n width: 100%;\n }\n"])), theme.colors.gray200, function (p) { return p.theme.css.scrollbarDark; }, function (p) { return p.theme.colors.white; });
10
+ export var HeaderListItem = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin-bottom: ", "px;\n"], ["\n margin-bottom: ", "px;\n"])), function (p) { return (p.isLast ? 0 : 8); });
11
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,7 @@
1
+ import { DivCSSProps } from "../../../../styled/utils";
2
+ import { TemplateHeader } from "../../../../types";
3
+ type HeaderCardProps = {
4
+ templateHeaders: TemplateHeader[];
5
+ } & DivCSSProps;
6
+ export declare const HeaderCard: ({ templateHeaders, ...props }: HeaderCardProps) => JSX.Element;
7
+ export {};
@@ -0,0 +1,44 @@
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, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
24
+ import { Div } from "../../../../styled/utils";
25
+ import { useTranslation } from "react-i18next";
26
+ import * as S from "./ImporterSectionHeader.styles";
27
+ var HeadersList = function (_a) {
28
+ var title = _a.title, headers = _a.headers, props = __rest(_a, ["title", "headers"]);
29
+ return (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ label3: true }, props, { children: title })), headers.map(function (header, index) {
30
+ var isLast = index === headers.length - 1;
31
+ return (_jsx(S.HeaderListItem, __assign({ body1: true, isLast: isLast, mt: 16 }, { children: header }), index));
32
+ })] }));
33
+ };
34
+ export var HeaderCard = function (_a) {
35
+ var templateHeaders = _a.templateHeaders, props = __rest(_a, ["templateHeaders"]);
36
+ var requiredHeaders = templateHeaders
37
+ .filter(function (h) { return h.required; })
38
+ .map(function (h) { return "".concat(h.label, "*"); });
39
+ var optionalHeaders = templateHeaders
40
+ .filter(function (h) { return !h.required; })
41
+ .map(function (h) { return h.label; });
42
+ var t = useTranslation("upload").t;
43
+ return (_jsx(S.HeaderCardWrapper, { children: _jsxs(S.HeaderCardContainer, __assign({}, props, { children: [_jsx(Div, __assign({ body3: true, mb: 24 }, { children: t("header.title") })), requiredHeaders.length > 0 && (_jsx(HeadersList, { title: t("header.required_headers"), headers: requiredHeaders })), optionalHeaders.length > 0 && (_jsx(HeadersList, { title: t("header.optional_headers"), headers: optionalHeaders, mt: 30 }))] })) }));
44
+ };
@@ -1,7 +1,3 @@
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
1
  var __assign = (this && this.__assign) || function () {
6
2
  __assign = Object.assign || function(t) {
7
3
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -13,20 +9,7 @@ var __assign = (this && this.__assign) || function () {
13
9
  };
14
10
  return __assign.apply(this, arguments);
15
11
  };
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
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
28
- import styled from "styled-components";
29
- import { theme } from "../../../styled/theme";
30
13
  import { colors } from "../../../styled/theme/colorPalette";
31
14
  import { Div } from "../../../styled/utils";
32
15
  import { closeIconWithCircle, errorIcon, fileExtensionIcon, } from "../../common/icons";
@@ -34,50 +17,29 @@ import { useImporterContext } from "../../contexts/ImporterContextProvider";
34
17
  import { useUploaderContext } from "../UploaderContextProvider";
35
18
  import { ImporterDropzone } from "./ImporterDropzone";
36
19
  import { useTranslation } from "react-i18next";
37
- var HeaderCardWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: 1px solid ", ";\n border-radius: 8px;\n padding: 24px;\n box-sizing: border-box;\n width: 256px;\n overflow-y: auto;\n ", ";\n background: ", ";\n max-height: 530px;\n"], ["\n border: 1px solid ", ";\n border-radius: 8px;\n padding: 24px;\n box-sizing: border-box;\n width: 256px;\n overflow-y: auto;\n ", ";\n background: ", ";\n max-height: 530px;\n"])), theme.colors.gray200, function (p) { return p.theme.css.scrollbarDark; }, function (p) { return p.theme.colors.white; });
38
- var ErrorCardContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: 8px;\n width: 1120px;\n height: 550px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: ", ";\n border: 1px dashed ", ";\n justify-content: center;\n"], ["\n border-radius: 8px;\n width: 1120px;\n height: 550px;\n display: flex;\n flex-direction: column;\n align-items: center;\n background: ", ";\n border: 1px dashed ", ";\n justify-content: center;\n"])), theme.colors.blue100, theme.colors.blue500);
20
+ import { HeaderCard } from "./ImporterSectionHeader";
21
+ import * as S from "./DragAndDropImporter.styles";
39
22
  export var ErrorCard = function () {
40
23
  var templateError = useImporterContext().templateError;
41
24
  var t = useTranslation("upload").t;
42
- return (_jsxs(ErrorCardContainer, { children: [_jsx(Div, __assign({ mb: 28 }, { children: errorIcon })), _jsx(Div, __assign({ h3: true, mb: 16 }, { children: t("error.title") })), _jsx(Div, __assign({ body1: true }, { children: templateError }))] }));
43
- };
44
- var HeaderListItem = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin-bottom: ", "px;\n"], ["\n margin-bottom: ", "px;\n"])), function (p) { return (p.isLast ? 0 : 8); });
45
- var HeadersList = function (_a) {
46
- var title = _a.title, headers = _a.headers, props = __rest(_a, ["title", "headers"]);
47
- return (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ label3: true }, props, { children: title })), headers.map(function (header, index) {
48
- var isLast = index === headers.length - 1;
49
- return (_jsx(HeaderListItem, __assign({ body1: true, isLast: isLast, mt: 16 }, { children: header }), index));
50
- })] }));
51
- };
52
- var HeaderCard = function (_a) {
53
- var templateHeaders = _a.templateHeaders, props = __rest(_a, ["templateHeaders"]);
54
- var requiredHeaders = templateHeaders
55
- .filter(function (h) { return h.required; })
56
- .map(function (h) { return "".concat(h.label, "*"); });
57
- var optionalHeaders = templateHeaders
58
- .filter(function (h) { return !h.required; })
59
- .map(function (h) { return h.label; });
60
- var t = useTranslation("upload").t;
61
- return (_jsx(Div, { children: _jsxs(HeaderCardWrapper, __assign({}, props, { children: [_jsx(Div, __assign({ body3: true, mb: 24 }, { children: t("header.title") })), requiredHeaders.length > 0 && (_jsx(HeadersList, { title: t("header.required_headers"), headers: requiredHeaders })), optionalHeaders.length > 0 && (_jsx(HeadersList, { title: t("header.optional_headers"), headers: optionalHeaders, mt: 30 }))] })) }));
25
+ return (_jsxs(S.ErrorCardContainer, { children: [_jsx(Div, __assign({ mb: 28 }, { children: errorIcon })), _jsx(Div, __assign({ h3: true, mb: 16 }, { children: t("error.title") })), _jsx(Div, __assign({ body1: true }, { children: templateError }))] }));
62
26
  };
63
- var LoadingCardWrapper = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n box-shadow: 0px 0px 12px rgba(33, 75, 167, 0.24);\n border-radius: 8px;\n max-width: 544px;\n height: 102px;\n padding-left: 30px;\n padding-right: 30px;\n background: ", ";\n"], ["\n box-shadow: 0px 0px 12px rgba(33, 75, 167, 0.24);\n border-radius: 8px;\n max-width: 544px;\n height: 102px;\n padding-left: 30px;\n padding-right: 30px;\n background: ", ";\n"])), function (p) { return p.theme.colors.white; });
64
27
  var LoadingCard = function () {
65
28
  var fileName = useUploaderContext().fileName;
66
29
  var resetImport = useImporterContext().resetImport;
67
30
  var t = useTranslation("upload").t;
68
31
  var fileExtension = fileName && fileName.slice(fileName.lastIndexOf("."));
69
32
  var fileExtensionUI = (_jsxs(Div, { children: [fileExtensionIcon, _jsx(Div, __assign({ c: colors.gray900, helperText: true, mt: -26, ml: 7 }, { children: fileExtension }))] }));
70
- return (_jsxs(LoadingCardWrapper, __assign({ spaceBetween: true, centered: true }, { children: [fileExtensionUI, _jsxs(Div, __assign({ mr: 30, ml: 30 }, { children: [_jsx(Div, __assign({ label2: true }, { children: fileName })), _jsx(Div, __assign({ helperText: true, c: colors.gray500 }, { children: t("loading.title") }))] })), _jsx(Div, __assign({ clickable: true, onClick: resetImport }, { children: closeIconWithCircle }))] })));
33
+ return (_jsxs(S.LoadingCardWrapper, __assign({ spaceBetween: true, centered: true }, { children: [fileExtensionUI, _jsxs(Div, __assign({ mr: 30, ml: 30 }, { children: [_jsx(Div, __assign({ label2: true }, { children: fileName })), _jsx(Div, __assign({ helperText: true, c: colors.gray500 }, { children: t("loading.title") }))] })), _jsx(Div, __assign({ clickable: true, onClick: resetImport }, { children: closeIconWithCircle }))] })));
71
34
  };
72
35
  var ImporterSection = function () {
73
36
  var _a = useImporterContext(), templateHeaders = _a.templateHeaders, templateError = _a.templateError;
74
- return templateError ? (_jsx(ErrorCard, {})) : (_jsx(_Fragment, { children: templateHeaders && (_jsxs(Div, __assign({ dflex: true }, { children: [_jsx(ImporterDropzone, {}), _jsx(HeaderCard, { ml: 25, templateHeaders: templateHeaders })] }))) }));
37
+ return templateError ? (_jsx(ErrorCard, {})) : (_jsx(_Fragment, { children: templateHeaders && (_jsxs(S.ImporterSectionContainer, { children: [_jsx(ImporterDropzone, {}), _jsx(HeaderCard, { templateHeaders: templateHeaders })] })) }));
75
38
  };
76
39
  var DragAndDropImporter = function () {
77
40
  var isUploading = useUploaderContext().isUploading;
78
41
  var t = useTranslation("upload").t;
79
- var headerUI = (_jsxs(_Fragment, { children: [_jsx(Div, __assign({ textAlignCenter: true, dflex: true, centered: true }, { children: _jsx(Div, __assign({ h2: true, mb: 16, mt: 64 }, { children: t("title") })) })), _jsx(Div, __assign({ body1: true, mb: 24, textAlignCenter: true }, { children: t("description") }))] }));
80
- return (_jsxs(Div, __assign({ flexColumn: true, centered: true }, { children: [headerUI, isUploading ? (_jsx(Div, __assign({ mt: 40 }, { children: _jsx(LoadingCard, {}) }))) : (_jsx(ImporterSection, {}))] })));
42
+ var HeaderUI = function () { return (_jsxs(_Fragment, { children: [_jsx(Div, { children: _jsx(Div, __assign({ h2: true, mb: 16, mt: 40 }, { children: t("title") })) }), _jsx(Div, __assign({ body1: true, mb: 48 }, { children: t("description") }))] })); };
43
+ return (_jsx(Div, __assign({ flexColumn: true, h100: true }, { children: _jsxs(Div, __assign({ flexColumn: true, pl: 32, pr: 32, pb: 64, h100: true }, { children: [_jsx(HeaderUI, {}), isUploading ? (_jsx(Div, __assign({ mt: 40, justifyCenter: true }, { children: _jsx(LoadingCard, {}) }))) : (_jsx(ImporterSection, {}))] })) })));
81
44
  };
82
45
  export { DragAndDropImporter };
83
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -13,19 +13,16 @@ var __assign = (this && this.__assign) || function () {
13
13
  };
14
14
  return __assign.apply(this, arguments);
15
15
  };
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ import { jsx as _jsx } from "react/jsx-runtime";
17
17
  import styled from "styled-components";
18
18
  import { Button } from "../../common/buttons";
19
19
  import { Div } from "../../styled/utils";
20
20
  import { useImporterContext } from "../contexts/ImporterContextProvider";
21
21
  import { useTranslation } from "react-i18next";
22
- var HeaderButtonsWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n > div {\n margin-left: 8px;\n margin-right: 8px;\n }\n"], ["\n > div {\n margin-left: 8px;\n margin-right: 8px;\n }\n"])));
22
+ var HeaderButtonsWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n > div {\n margin-right: 8px;\n }\n"], ["\n > div {\n margin-right: 8px;\n }\n"])));
23
23
  export var HeaderButtons = function () {
24
24
  var t = useTranslation("upload").t;
25
- var _a = useImporterContext(), setCurrentStepIndex = _a.setCurrentStepIndex, resetImport = _a.resetImport;
26
- var onClick = function () {
27
- setCurrentStepIndex(1);
28
- };
29
- return (_jsxs(HeaderButtonsWrapper, __assign({ dflex: true, spaceBetween: true, mb: 12 }, { children: [_jsx(Button, __assign({ isSmall: true, variant: "secondary", onClick: resetImport }, { children: t("headers_preview.cancel") })), _jsx(Button, __assign({ isSmall: true, onClick: onClick }, { children: t("headers_preview.continue") }))] })));
25
+ var resetImport = useImporterContext().resetImport;
26
+ return (_jsx(HeaderButtonsWrapper, __assign({ dflex: true, ml: 12 }, { children: _jsx(Button, __assign({ isSmall: true, variant: "secondary", onClick: resetImport }, { children: t("headers_preview.cancel") })) })));
30
27
  };
31
28
  var templateObject_1;
@@ -1,3 +1,7 @@
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
+ };
1
5
  var __assign = (this && this.__assign) || function () {
2
6
  __assign = Object.assign || function(t) {
3
7
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -17,13 +21,17 @@ import { useReviewContext } from "../Review/ReviewContextProvider";
17
21
  import { HeaderButtons } from "./HeaderButtons";
18
22
  import { useImporterContext } from "../contexts/ImporterContextProvider";
19
23
  import { useTranslation } from "react-i18next";
24
+ import styled from "styled-components";
25
+ var HeaderContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n margin-left: 32px;\n\n @media (max-width: 1050px) {\n margin-left: 0px;\n\n > div:first-of-type {\n text-align: center;\n }\n\n div:last-of-type {\n margin-left: 0px;\n }\n }\n"], ["\n margin-left: 32px;\n\n @media (max-width: 1050px) {\n margin-left: 0px;\n\n > div:first-of-type {\n text-align: center;\n }\n\n div:last-of-type {\n margin-left: 0px;\n }\n }\n"])));
26
+ var DescriptionAndButtons = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n @media (max-width: 1050px) {\n flex-direction: column;\n gap: 16px;\n }\n"], ["\n @media (max-width: 1050px) {\n flex-direction: column;\n gap: 16px;\n }\n"])));
20
27
  var HeadersPreview = function () {
21
28
  var _a = useReviewContext(), fields = _a.previewFields, initialDataSet = _a.previewInitialDataSet;
22
29
  var t = useTranslation("upload").t;
23
30
  var _b = useImporterContext(), selectedRows = _b.selectedRows, setSelectedRows = _b.setSelectedRows;
24
- return (_jsxs(Div, __assign({ flexColumn: true, centered: true, pt: 40, h100: true }, { children: [_jsx(Div, __assign({ h2: true, mb: 16 }, { children: t("headers_preview.title") })), _jsx(Div, __assign({ body1: true, mb: 24, textAlignCenter: true }, { children: t("headers_preview.description") })), _jsx(HeaderButtons, {}), _jsx(Div, __assign({ w100: true, h100: true }, { children: initialDataSet && (_jsx(Spreadsheet, { rowWidth: getSpreadsheetRowWidth(fields, 6), isReadOnly: true, initialDataSet: initialDataSet, fields: fields, highlightFirstRow: true, options: {
31
+ return (_jsxs(Div, __assign({ flexColumn: true, h100: true }, { children: [_jsxs(HeaderContainer, { children: [_jsx(Div, __assign({ h2: true, mt: 40, mb: 16 }, { children: t("headers_preview.title") })), _jsxs(DescriptionAndButtons, __assign({ body1: true, mb: 24, alignCenter: true }, { children: [t("headers_preview.description"), _jsx(HeaderButtons, {})] }))] }), _jsx(Div, __assign({ w100: true, h100: true, justifyCenter: true }, { children: initialDataSet && (_jsx(Spreadsheet, { rowWidth: getSpreadsheetRowWidth(fields, 6), isReadOnly: true, initialDataSet: initialDataSet, fields: fields, highlightFirstRow: true, options: {
25
32
  showCheckboxColumn: true,
26
33
  firstRowIsHeader: true,
27
34
  }, selectedRows: selectedRows, setSelectedRows: setSelectedRows })) }))] })));
28
35
  };
29
36
  export default HeadersPreview;
37
+ var templateObject_1, templateObject_2;
@@ -25,6 +25,7 @@ type State = {
25
25
  filteredInputValue: string;
26
26
  setFilteredInputValue: React.Dispatch<React.SetStateAction<string>>;
27
27
  addNewRowsToSpreadsheet: () => void;
28
+ checkboxColumnWidth: number;
28
29
  } & ValidationState;
29
30
  type Props = {
30
31
  initialDataSet: RecordDataSet;
@@ -105,7 +105,15 @@ export var SpreadsheetContextProvider = function (_a) {
105
105
  setSortByFieldErrors(null);
106
106
  }, []);
107
107
  var lastClickedIndexRef = useRef(null);
108
- var value = __assign(__assign({ data: data, fields: fields, isLoading: isLoading }, validationState), { isReadOnly: isReadOnly, rowWidth: rowWidth, sortByFieldErrors: sortByFieldErrors, sortByFieldWarnings: sortByFieldWarnings, highlightFirstRow: highlightFirstRow, options: options, setIsLoading: setIsLoading, setSortByFieldErrors: handleSortByFieldErrors, setSortByFieldWarnings: handleSortByFieldWarnings, onValidateRecord: onValidateRecord, updateRecord: updateRecordAndRevalidate, selectedRows: selectedRows, setSelectedRows: setSelectedRows, deleteRecords: deleteRecords, filteredInputValue: filteredInputValue, setFilteredInputValue: setFilteredInputValue, lastClickedIndexRef: lastClickedIndexRef, addNewRowsToSpreadsheet: addNewRowsToSpreadsheet });
108
+ var checkboxColumnWidth = useMemo(function () {
109
+ var _a, _b, _c, _d;
110
+ var lastRowIndexLength = (_d = (_c = (_b = (_a = data[data.length - 1]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.rowIndex) === null || _c === void 0 ? void 0 : _c.toString()) === null || _d === void 0 ? void 0 : _d.length;
111
+ var singleLetterWidth = 15;
112
+ var horizontalSpacing = 8;
113
+ var baseCheckboxColumnWidth = lastRowIndexLength * singleLetterWidth + horizontalSpacing;
114
+ return baseCheckboxColumnWidth < 40 ? 40 : baseCheckboxColumnWidth;
115
+ }, [data]);
116
+ var value = __assign(__assign({ data: data, fields: fields, isLoading: isLoading }, validationState), { isReadOnly: isReadOnly, rowWidth: rowWidth, sortByFieldErrors: sortByFieldErrors, sortByFieldWarnings: sortByFieldWarnings, highlightFirstRow: highlightFirstRow, options: options, setIsLoading: setIsLoading, setSortByFieldErrors: handleSortByFieldErrors, setSortByFieldWarnings: handleSortByFieldWarnings, onValidateRecord: onValidateRecord, updateRecord: updateRecordAndRevalidate, selectedRows: selectedRows, setSelectedRows: setSelectedRows, deleteRecords: deleteRecords, filteredInputValue: filteredInputValue, setFilteredInputValue: setFilteredInputValue, lastClickedIndexRef: lastClickedIndexRef, addNewRowsToSpreadsheet: addNewRowsToSpreadsheet, checkboxColumnWidth: checkboxColumnWidth });
109
117
  return (_jsx(SpreadsheetContext.Provider, __assign({ value: value }, { children: children })));
110
118
  };
111
119
  export var useSpreadsheetContext = function () { return useContext(SpreadsheetContext); };