fuse-importer 0.25.7 → 0.25.9

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 (41) hide show
  1. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/tableColumns.js +1 -1
  2. package/lib/esm/Importer/Matcher/HeaderMatcher/tableColumns.js +1 -1
  3. package/lib/esm/Importer/Review/ReviewWithContext.js +4 -1
  4. package/lib/esm/Importer/Stepper/index.js +4 -3
  5. package/lib/esm/Importer/Uploader/HeadersPreview.js +4 -1
  6. package/lib/esm/Importer/common/GlobalStyle.js +1 -1
  7. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.d.ts +1 -0
  8. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.js +4 -5
  9. package/lib/esm/Importer/common/Spreadsheet/common/index.d.ts +3 -3
  10. package/lib/esm/Importer/common/Spreadsheet/common/index.js +1 -1
  11. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +3 -2
  12. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +4 -1
  13. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +1 -1
  14. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +1 -1
  15. package/lib/esm/Importer/common/Spreadsheet/hooks.js +9 -2
  16. package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +1 -1
  17. package/lib/esm/Importer/common/utils.js +1 -1
  18. package/lib/esm/common/Table/TableActions/SearchRows.js +1 -1
  19. package/lib/esm/common/Table/TableView/CustomScrollbar.d.ts +2 -0
  20. package/lib/esm/common/Table/TableView/CustomScrollbar.js +34 -0
  21. package/lib/esm/common/Table/TableView/TableCells.js +2 -2
  22. package/lib/esm/common/Table/TableView/TableHeaders.d.ts +4 -4
  23. package/lib/esm/common/Table/TableView/TableHeaders.js +8 -11
  24. package/lib/esm/common/Table/TableView/TableRow.d.ts +2 -2
  25. package/lib/esm/common/Table/TableView/TableRow.js +4 -4
  26. package/lib/esm/common/Table/TableView/common.d.ts +1 -1
  27. package/lib/esm/common/Table/TableView/common.js +2 -5
  28. package/lib/esm/common/Table/TableView/index.d.ts +3 -3
  29. package/lib/esm/common/Table/TableView/index.js +38 -8
  30. package/lib/esm/common/inputs/Checkbox.js +1 -1
  31. package/lib/esm/common/inputs/TextInput.js +1 -1
  32. package/lib/esm/index.d.ts +6 -0
  33. package/lib/esm/index.js +75 -21
  34. package/lib/esm/styled/fontsURL.d.ts +9 -0
  35. package/lib/esm/styled/fontsURL.js +27 -0
  36. package/lib/esm/utils/hooks/useWindowSize.d.ts +11 -0
  37. package/lib/esm/utils/hooks/useWindowSize.js +23 -0
  38. package/lib/esm/utils/hooks.d.ts +1 -0
  39. package/lib/esm/utils/hooks.js +1 -0
  40. package/lib/main.js +12 -12
  41. package/package.json +2 -1
@@ -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
  }); }) }) })));
@@ -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
  }); }) }));
@@ -22,12 +22,15 @@ import { AppResponseModal } from "./AppResponseModal";
22
22
  import { useReviewContext } from "./ReviewContextProvider";
23
23
  import styled from "styled-components";
24
24
  import { useTranslation } from "react-i18next";
25
+ import useWindowDimensions from "../../utils/hooks/useWindowSize";
25
26
  var TitleContainer = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject([""], [""])));
26
27
  var ReviewWithContext = function () {
27
28
  var _a = useReviewContext(), fields = _a.reviewFields, initialDataSet = _a.reviewInitialDataSet, options = _a.options, onValidateRecord = _a.onValidateRecord, onDataSetChanged = _a.onDataSetChanged, onValidationStateChanged = _a.onValidationStateChanged;
29
+ var isOnSmallScreens = useWindowDimensions().isOnSmallScreens;
28
30
  var _b = useImporterContext(), selectedRows = _b.selectedRows, setSelectedRows = _b.setSelectedRows, isUsingManualImport = _b.isUsingManualImport;
29
31
  var t = useTranslation("review").t;
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 }));
32
+ var rowWidth = getSpreadsheetRowWidth(fields, isOnSmallScreens ? 3 : 6);
33
+ var spreadsheetUI = initialDataSet && (_jsx(Spreadsheet, { options: __assign(__assign({}, options), { showCheckboxColumn: true }), selectedRows: selectedRows, setSelectedRows: setSelectedRows, initialDataSet: initialDataSet, fields: fields, rowWidth: rowWidth, onDataSetChanged: onDataSetChanged, onValidateRecord: onValidateRecord, onValidationStateChanged: onValidationStateChanged }));
31
34
  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 }))] }))] })));
32
35
  };
33
36
  export default ReviewWithContext;
@@ -35,7 +35,8 @@ var StepperButtonContainer = styled(Div)(templateObject_5 || (templateObject_5 =
35
35
  var align = _a.align;
36
36
  return align === "left" ? "flex-start" : "flex-end";
37
37
  });
38
- var CloseIcon = styled(Div)(function () { return css(templateObject_6 || (templateObject_6 = __makeTemplateObject([""], [""]))); });
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([""], [""]))); });
39
40
  export var Stepper = function (_a) {
40
41
  var stepLabels = _a.stepLabels, logoURL = _a.logoURL;
41
42
  var _b = useState(false), isUnmatchedHeadersModalOpen = _b[0], setIsUnmatchedHeadersModalOpen = _b[1];
@@ -107,10 +108,10 @@ export var Stepper = function (_a) {
107
108
  var isCompleted = index < currentStepIndex;
108
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));
109
110
  }) })));
110
- var leftButtonUI = (_jsx(Div, __assign({ forDesktop: true, style: { flex: 1 } }, { children: _jsxs(StepperButtonContainer, __assign({ align: "left" }, { children: [logoURL && _jsx(Logo, { src: logoURL, alt: "" }), currentStepIndex > 0 && !appResponse && (_jsx(Button, __assign({ variant: "secondary", onClick: goBack }, { children: t("stepper.go_back") })))] })) })));
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") })) }))] })) })));
111
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 }))] })));
112
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 () {
113
114
  return setIsUnmatchedHeadersModalOpen(false);
114
115
  } }), _jsx(StepperSubmitModal, { isSubmitModalOpen: isSubmitModalOpen, onCloseModal: function () { return setIsSubmitModalOpen(false); }, onSubmit: onSubmit }), _jsx(ConfirmCloseModal, { isOpen: isConfirmCloseModalOpen, onClose: function () { return setIsConfirmCloseModalOpen(false); }, onCloseImporter: onClose })] }));
115
116
  };
116
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
117
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
@@ -22,13 +22,16 @@ import { HeaderButtons } from "./HeaderButtons";
22
22
  import { useImporterContext } from "../contexts/ImporterContextProvider";
23
23
  import { useTranslation } from "react-i18next";
24
24
  import styled from "styled-components";
25
+ import useWindowDimensions from "../../utils/hooks/useWindowSize";
25
26
  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
27
  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"])));
27
28
  var HeadersPreview = function () {
28
29
  var _a = useReviewContext(), fields = _a.previewFields, initialDataSet = _a.previewInitialDataSet;
30
+ var isOnSmallScreens = useWindowDimensions().isOnSmallScreens;
29
31
  var t = useTranslation("upload").t;
30
32
  var _b = useImporterContext(), selectedRows = _b.selectedRows, setSelectedRows = _b.setSelectedRows;
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: {
33
+ var rowWidth = getSpreadsheetRowWidth(fields, isOnSmallScreens ? 3 : 6);
34
+ 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: rowWidth, isReadOnly: true, initialDataSet: initialDataSet, fields: fields, highlightFirstRow: true, options: {
32
35
  showCheckboxColumn: true,
33
36
  firstRowIsHeader: true,
34
37
  }, selectedRows: selectedRows, setSelectedRows: setSelectedRows })) }))] })));
@@ -3,5 +3,5 @@ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cook
3
3
  return cooked;
4
4
  };
5
5
  import { createGlobalStyle } from "styled-components";
6
- export var GlobalStyle = createGlobalStyle(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n #fuse-importer-root > * {\n font-size: 17px;\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n font-family: DM Sans;\n color-scheme: normal;\n color: black;\n }\n"], ["\n #fuse-importer-root > * {\n font-size: 17px;\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n font-family: DM Sans;\n color-scheme: normal;\n color: black;\n }\n"])));
6
+ export var GlobalStyle = createGlobalStyle(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n #fuse-importer-root > *,\n body > * {\n font-size: 17px;\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n font-family: DM Sans;\n color-scheme: normal;\n color: black;\n }\n"], ["\n #fuse-importer-root > *,\n body > * {\n font-size: 17px;\n margin: 0;\n padding: 0;\n top: 0;\n left: 0;\n font-family: DM Sans;\n color-scheme: normal;\n color: black;\n }\n"])));
7
7
  var templateObject_1;
@@ -26,6 +26,7 @@ type State = {
26
26
  setFilteredInputValue: React.Dispatch<React.SetStateAction<string>>;
27
27
  addNewRowsToSpreadsheet: () => void;
28
28
  checkboxColumnWidth: number;
29
+ isFiltering: boolean;
29
30
  } & ValidationState;
30
31
  type Props = {
31
32
  initialDataSet: RecordDataSet;
@@ -24,7 +24,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import { get } from "lodash";
25
25
  import { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
26
26
  import { useValidationState } from "./hooks";
27
- import { addEmptyRows } from "../../../Importer/data";
28
27
  import { addMeta } from "../../../Importer/data";
29
28
  var SpreadsheetContext = createContext({});
30
29
  export var SpreadsheetContextProvider = function (_a) {
@@ -46,14 +45,14 @@ export var SpreadsheetContextProvider = function (_a) {
46
45
  setIsLoading: setIsLoading,
47
46
  onValidateRecord: onValidateRecord,
48
47
  }), errorsRef = _h.errorsRef, warningsRef = _h.warningsRef, updateRecordAndRevalidate = _h.updateRecordAndRevalidate, deleteRecords = _h.deleteRecords, filterRecordsBySearchValue = _h.filterRecordsBySearchValue, validationState = __rest(_h, ["errorsRef", "warningsRef", "updateRecordAndRevalidate", "deleteRecords", "filterRecordsBySearchValue"]);
49
- var addNewRowsToSpreadsheet = function () {
48
+ var addNewRowsToSpreadsheet = useCallback(function () {
50
49
  var highestRowIndex = Math.max.apply(Math, Object.values(dataSet).map(function (obj) { return obj._meta.rowIndex; }));
51
50
  var newRow = addMeta({}, highestRowIndex + 1);
52
51
  setDataSet(function (oldValues) {
53
52
  var _a;
54
53
  return (__assign(__assign({}, oldValues), (_a = {}, _a[newRow._meta.id] = newRow, _a)));
55
54
  });
56
- };
55
+ }, [dataSet]);
57
56
  // sort data based on errors (errors group on top and not errors group at bottom)
58
57
  var data = useMemo(function () {
59
58
  var filteredObj = filterRecordsBySearchValue(dataSet, filteredInputValue);
@@ -71,7 +70,7 @@ export var SpreadsheetContextProvider = function (_a) {
71
70
  return bHasErrors ? 1 : -1;
72
71
  });
73
72
  }, [dataSet, filteredInputValue, sortByFieldErrors, sortByFieldWarnings]);
74
- addEmptyRows(data, fields);
73
+ var isFiltering = useMemo(function () { return !!filteredInputValue; }, [filteredInputValue]);
75
74
  useEffect(function () {
76
75
  onDataSetChanged && onDataSetChanged(dataSet);
77
76
  var dataSetKeys = Object.keys(dataSet);
@@ -113,7 +112,7 @@ export var SpreadsheetContextProvider = function (_a) {
113
112
  var baseCheckboxColumnWidth = lastRowIndexLength * singleLetterWidth + horizontalSpacing;
114
113
  return baseCheckboxColumnWidth < 40 ? 40 : baseCheckboxColumnWidth;
115
114
  }, [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 });
115
+ 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, isFiltering: isFiltering });
117
116
  return (_jsx(SpreadsheetContext.Provider, __assign({ value: value }, { children: children })));
118
117
  };
119
118
  export var useSpreadsheetContext = function () { return useContext(SpreadsheetContext); };
@@ -2,9 +2,9 @@ import { Record, Field, FieldTypes } from "../../../../types";
2
2
  export declare const spreadsheetRowHeightPx = 40;
3
3
  export declare const spreadsheetHeaderHeightPx = 40;
4
4
  export declare const isNullOrUndefined: (value: any) => boolean;
5
- export declare const isEmpty: (value: any) => boolean;
6
- export declare const isEmail: (value: any) => boolean;
7
- export declare const isUrl: (value: any) => boolean;
5
+ export declare const isEmpty: (value: string) => boolean;
6
+ export declare const isEmail: (value: string) => boolean;
7
+ export declare const isUrl: (value: string) => boolean;
8
8
  export declare const isTrue: (value: string) => boolean;
9
9
  export declare const isFalse: (value: string) => boolean;
10
10
  export declare const isBoolean: (value: string) => boolean;
@@ -11,7 +11,7 @@ export var isEmpty = function (value) {
11
11
  (typeof value === "string" && value.trim().length === 0));
12
12
  };
13
13
  export var isEmail = function (value) {
14
- var emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;
14
+ var emailRegex = /^[\w+.-]+@([\w-]+\.)+[\w-]{2,4}$/;
15
15
  return emailRegex.test(value);
16
16
  };
17
17
  export var isUrl = function (value) {
@@ -37,7 +37,7 @@ import { TableActions } from "../../../../common/Table/TableActions";
37
37
  import { useImporterContext } from "../../../../Importer/contexts/ImporterContextProvider";
38
38
  var getItemKey = function (record) { return record._meta.id; };
39
39
  var SpreadsheetData = function () {
40
- var _a = useSpreadsheetContext(), fields = _a.fields, data = _a.data, isLoading = _a.isLoading, isReadOnly = _a.isReadOnly, rowWidth = _a.rowWidth, totalErrors = _a.totalErrors, validationPercentage = _a.validationPercentage, setSortByFieldErrors = _a.setSortByFieldErrors, options = _a.options, setSortByFieldWarnings = _a.setSortByFieldWarnings, selectedRows = _a.selectedRows, checkboxColumnWidth = _a.checkboxColumnWidth;
40
+ var _a = useSpreadsheetContext(), fields = _a.fields, data = _a.data, isLoading = _a.isLoading, isReadOnly = _a.isReadOnly, rowWidth = _a.rowWidth, totalErrors = _a.totalErrors, validationPercentage = _a.validationPercentage, setSortByFieldErrors = _a.setSortByFieldErrors, options = _a.options, setSortByFieldWarnings = _a.setSortByFieldWarnings, selectedRows = _a.selectedRows, checkboxColumnWidth = _a.checkboxColumnWidth, isFiltering = _a.isFiltering;
41
41
  var currentStepIndex = useImporterContext().currentStepIndex;
42
42
  var canShowCheckboxOnCheckboxRowHover = currentStepIndex === 2;
43
43
  var rowNumbersGridRef = useRef();
@@ -83,6 +83,7 @@ var SpreadsheetData = function () {
83
83
  });
84
84
  }, [dataLength]);
85
85
  var showValidationProgress = !isReadOnly && validationPercentage < 100;
86
- return (_jsxs(S.SpreadSheetData, __assign({ h100: true, flexColumn: true }, { children: [_jsx(GlobalStyle, {}), showValidationProgress && (_jsx(Div, __assign({ h: 32 }, { children: _jsx(ValidationProgress, { totalErrors: totalErrors, validationPercentage: validationPercentage }) }))), _jsxs(S.SpreadSheetContainer, __assign({ flexColumn: true, w100: true, h100: true }, { children: [_jsx(Div, __assign({ w100: true, justifyCenter: true }, { children: currentStepIndex === 2 && _jsx(TableActions, {}) })), _jsxs(S.SpreadSheetWrapper, __assign({ canShowCheckboxOnHover: !showValidationProgress && canShowCheckboxOnCheckboxRowHover, shouldShowOnlyCheckbox: !showValidationProgress && selectedRows.length > 0, dflex: true, h100: true }, { children: [(options === null || options === void 0 ? void 0 : options.showCheckboxColumn) && (_jsx(SpreadsheetRowCheckboxes, { gridRef: rowCheckboxesGridRef, spreadsheetHasXScroll: rowWidth > 1, height: spreadsheetHeight, firstRowIsHeader: options === null || options === void 0 ? void 0 : options.firstRowIsHeader, isLoadingData: showValidationProgress })), _jsx(S.TableView, { tableHeadersHeight: spreadsheetHeaderHeightPx, highlightFirstRow: isReadOnly, rowHeight: spreadsheetRowHeightPx, h: spreadsheetHeight, rowWidth: rowWidth, data: data, columns: columns, isLoading: isLoading, onTableScroll: onTableScroll, getItemKey: getItemKey, isInsideImporter: true, checkboxColumnWidth: checkboxColumnWidth })] }))] }))] })));
86
+ var isReviewStep = currentStepIndex === 2;
87
+ return (_jsxs(S.SpreadSheetData, __assign({ h100: true, flexColumn: true }, { children: [_jsx(GlobalStyle, {}), showValidationProgress && (_jsx(Div, __assign({ h: 32 }, { children: _jsx(ValidationProgress, { totalErrors: totalErrors, validationPercentage: validationPercentage }) }))), _jsxs(S.SpreadSheetContainer, __assign({ flexColumn: true, w100: true, h100: true }, { children: [_jsx(Div, __assign({ w100: true, justifyCenter: true }, { children: isReviewStep && _jsx(TableActions, {}) })), _jsxs(S.SpreadSheetWrapper, __assign({ canShowCheckboxOnHover: !showValidationProgress && canShowCheckboxOnCheckboxRowHover, shouldShowOnlyCheckbox: !showValidationProgress && selectedRows.length > 0, dflex: true, h100: true }, { children: [(options === null || options === void 0 ? void 0 : options.showCheckboxColumn) && (_jsx(SpreadsheetRowCheckboxes, { gridRef: rowCheckboxesGridRef, spreadsheetHasXScroll: rowWidth > 1, height: spreadsheetHeight, firstRowIsHeader: options === null || options === void 0 ? void 0 : options.firstRowIsHeader, isLoadingData: showValidationProgress })), _jsx(S.TableView, { tableHeadersHeight: spreadsheetHeaderHeightPx, highlightFirstRow: isReadOnly, rowHeight: spreadsheetRowHeightPx, h: spreadsheetHeight, rowWidth: rowWidth, data: data, columns: columns, isLoading: isLoading, onTableScroll: onTableScroll, getItemKey: getItemKey, shouldHaveCustomScrollbar: true, checkboxColumnWidth: checkboxColumnWidth, isFiltering: isFiltering })] }))] }))] })));
87
88
  };
88
89
  export default React.memo(SpreadsheetData, areEqual);
@@ -44,7 +44,10 @@ import { useSpreadsheetContext } from "../SpreadsheetContextProvider";
44
44
  import { Checkbox } from "../../../../common/inputs/Checkbox";
45
45
  import { useImporterContext } from "../../../contexts/ImporterContextProvider";
46
46
  import ReactVirtualizedAutoSizer from "react-virtualized-auto-sizer";
47
- var StyledGrid = styled(Grid)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ::-webkit-scrollbar {\n width: 0 !important;\n height: 0 !important;\n }\n\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n scrollbar-width: none;\n"], ["\n ::-webkit-scrollbar {\n width: 0 !important;\n height: 0 !important;\n }\n\n -ms-overflow-style: none;\n overflow: -moz-scrollbars-none;\n scrollbar-width: none;\n"])));
47
+ var StyledGrid = styled(Grid)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n background: ", ";\n overflow-y: scroll;\n"], ["\n background: ", ";\n overflow-y: scroll;\n"])), function (_a) {
48
+ var theme = _a.theme;
49
+ return theme.colors.white50;
50
+ });
48
51
  var gridStyles = {
49
52
  outline: "none",
50
53
  willChange: "unset",
@@ -20,7 +20,7 @@ import { Autocomplete as AutocompleteBase, } from "../../../../../common/inputs/
20
20
  import { SelectMenuDiv, SelectMenuScrollArea, } from "../../../../../common/inputs/SelectMenu";
21
21
  import { HTMLInput, TextInputIcon, } from "../../../../../common/inputs/TextInput";
22
22
  import { spreadsheetRowHeightPx } from "../../common";
23
- var Autocomplete = styled(AutocompleteBase)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", " {\n border: none;\n border-radius: 0;\n margin: 0;\n background: transparent;\n height: ", "px;\n padding: 0 12px;\n\n ", "\n\n ::placeholder {\n ", "\n\n ", "\n\n ::placeholder {\n ", "\n }\n }\n :focus {\n border: none;\n box-shadow: none;\n }\n }\n ", " {\n right: 6px;\n }\n ", " {\n border-radius: 7px;\n }\n ", " {\n padding: 4px;\n }\n"], ["\n ", " {\n border: none;\n border-radius: 0;\n margin: 0;\n background: transparent;\n height: ", "px;\n padding: 0 12px;\n\n ", "\n\n ::placeholder {\n ", "\n\n ", "\n\n ::placeholder {\n ", "\n }\n }\n :focus {\n border: none;\n box-shadow: none;\n }\n }\n ", " {\n right: 6px;\n }\n ", " {\n border-radius: 7px;\n }\n ", " {\n padding: 4px;\n }\n"])), HTMLInput, spreadsheetRowHeightPx - 5, function (p) {
23
+ var Autocomplete = styled(AutocompleteBase)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n ", " {\n border: none;\n border-radius: 0;\n margin: 0;\n background: transparent;\n height: ", "px;\n padding: 0 12px;\n\n ", "\n\n ::placeholder {\n ", "\n\n ", "\n\n ::placeholder {\n ", "\n }\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n\n :hover {\n background: transparent;\n }\n }\n ", " {\n right: 6px;\n }\n ", " {\n border-radius: 7px;\n }\n ", " {\n padding: 4px;\n }\n"], ["\n ", " {\n border: none;\n border-radius: 0;\n margin: 0;\n background: transparent;\n height: ", "px;\n padding: 0 12px;\n\n ", "\n\n ::placeholder {\n ", "\n\n ", "\n\n ::placeholder {\n ", "\n }\n }\n\n :focus {\n border: none;\n box-shadow: none;\n }\n\n :hover {\n background: transparent;\n }\n }\n ", " {\n right: 6px;\n }\n ", " {\n border-radius: 7px;\n }\n ", " {\n padding: 4px;\n }\n"])), HTMLInput, spreadsheetRowHeightPx - 5, function (p) {
24
24
  return p.hasWarning && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
25
25
  }, function (p) {
26
26
  return p.hasWarning && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
@@ -35,7 +35,7 @@ export var SpreadsheetInput = function (_a) {
35
35
  return setValue(value);
36
36
  } }, props)) })));
37
37
  };
38
- export var Input = styled.input(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n outline: none;\n border: none;\n width: 100%;\n height: calc(100% - 2px);\n background: transparent;\n box-sizing: border-box;\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n -moz-appearance: textfield;\n\n padding: 0 12px;\n ", ";\n color: ", ";\n ::placeholder {\n color: ", ";\n }\n\n ", "\n\n ", "\n"], ["\n outline: none;\n border: none;\n width: 100%;\n height: calc(100% - 2px);\n background: transparent;\n box-sizing: border-box;\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n -moz-appearance: textfield;\n\n padding: 0 12px;\n ", ";\n color: ", ";\n ::placeholder {\n color: ", ";\n }\n\n ", "\n\n ", "\n"])), function (props) { return props.theme.css.body1; }, function (props) { return props.theme.colors.gray1000; }, function (props) { return props.theme.colors.placeholder; }, function (p) {
38
+ export var Input = styled.input(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: transparent;\n border: none;\n box-shadow: none;\n box-sizing: border-box;\n height: calc(100% - 2px);\n margin: 0px;\n outline: none;\n width: 100%;\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n -moz-appearance: textfield;\n\n padding: 0 12px;\n ", ";\n color: ", ";\n ::placeholder {\n color: ", ";\n }\n\n ", "\n\n ", "\n"], ["\n background: transparent;\n border: none;\n box-shadow: none;\n box-sizing: border-box;\n height: calc(100% - 2px);\n margin: 0px;\n outline: none;\n width: 100%;\n\n ::-webkit-outer-spin-button,\n ::-webkit-inner-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n /* Firefox */\n -moz-appearance: textfield;\n\n padding: 0 12px;\n ", ";\n color: ", ";\n ::placeholder {\n color: ", ";\n }\n\n ", "\n\n ", "\n"])), function (props) { return props.theme.css.body1; }, function (props) { return props.theme.colors.gray1000; }, function (props) { return props.theme.colors.placeholder; }, function (p) {
39
39
  return p.hasWarning && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
40
40
  }, function (p) {
41
41
  return p.hasError && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.error; });
@@ -49,6 +49,7 @@ import { omit, set } from "lodash";
49
49
  import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
50
50
  import { sleep } from "../../..";
51
51
  import { selectValidatorsFor, validateRecord } from "./validation";
52
+ import { addEmptyRows, recordListToDataSet } from "../../../Importer/data";
52
53
  var checkIfHasErrors = function (errors) {
53
54
  return errors && Object.keys(errors).length > 0;
54
55
  };
@@ -81,8 +82,9 @@ var isObject = function (value) {
81
82
  };
82
83
  var includesSearchValue = function (value, searchValue) {
83
84
  if (typeof value === "string" || typeof value === "number") {
84
- var stringValue = String(value);
85
- return stringValue.includes(searchValue);
85
+ var stringValue = String(value).toLowerCase();
86
+ var searchValueLower = searchValue.toLowerCase();
87
+ return stringValue.includes(searchValueLower);
86
88
  }
87
89
  return false;
88
90
  };
@@ -119,6 +121,11 @@ export var useValidationState = function (_a) {
119
121
  }
120
122
  }
121
123
  }
124
+ // To ensure that rows are always displayed, even when the search query is empty,
125
+ // we return an empty record list when the search yields no results.
126
+ if (Object.keys(filteredObj).length === 0) {
127
+ return recordListToDataSet(addEmptyRows([], fields), fields);
128
+ }
122
129
  return filteredObj;
123
130
  };
124
131
  //Validate record and update dataSet
@@ -6,5 +6,5 @@ interface SpreadSheetWrapperProps {
6
6
  export declare const SpreadSheetData: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
7
7
  export declare const SpreadSheetWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps & SpreadSheetWrapperProps, never>;
8
8
  export declare const SpreadSheetContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps, never>;
9
- export declare const TableView: import("styled-components").StyledComponent<import("react").MemoExoticComponent<({ data, columns, pageSize, onRowClick, sortBy, isLoading, highlightFirstRow, setSortBy, rowWidth, onSectionRendered, tableHeadersHeight, rowHeight, h, onTableScroll, getItemKey, shouldBeDraggable, isInsideImporter, checkboxColumnWidth, ...props }: import("../../../common/Table/TableView").TableViewProps) => JSX.Element>, import("styled-components").DefaultTheme, {}, never>;
9
+ export declare const TableView: import("styled-components").StyledComponent<import("react").MemoExoticComponent<({ data, columns, pageSize, onRowClick, sortBy, isLoading, highlightFirstRow, setSortBy, rowWidth, onSectionRendered, tableHeadersHeight, rowHeight, h, onTableScroll, getItemKey, shouldBeDraggable, shouldHaveCustomScrollbar, checkboxColumnWidth, isFiltering, ...props }: import("../../../common/Table/TableView").TableViewProps) => JSX.Element>, import("styled-components").DefaultTheme, {}, never>;
10
10
  export {};
@@ -36,7 +36,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  };
37
37
  import axios from "axios";
38
38
  export var getSpreadsheetRowWidth = function (fields, visibleRowsOnTableViewport) {
39
- var res = fields.length / visibleRowsOnTableViewport;
39
+ var res = Math.ceil(fields.length / visibleRowsOnTableViewport);
40
40
  return res > 1 ? res : 1;
41
41
  };
42
42
  export var getColumnType = function (_a) {
@@ -30,7 +30,7 @@ var Wrapper = styled.div(templateObject_1 || (templateObject_1 = __makeTemplateO
30
30
  return (isOpen ? "332px" : "24px");
31
31
  });
32
32
  var IconWrapper = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n height: 24px;\n width: 24px;\n"], ["\n height: 24px;\n width: 24px;\n"])));
33
- var Input = styled.input(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n background: none;\n border: none;\n color: ", ";\n height: 20px !important;\n outline: none;\n\n ", ";\n"], ["\n ", ";\n background: none;\n border: none;\n color: ", ";\n height: 20px !important;\n outline: none;\n\n ", ";\n"])), textStyles.body3, colors.gray700, function (_a) {
33
+ 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) {
34
34
  var isOpen = _a.isOpen;
35
35
  return !isOpen && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: absolute;\n top: -9999px;\n "], ["\n position: absolute;\n top: -9999px;\n "])));
36
36
  });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const CustomScrollbarsVirtualList: import("react").ForwardRefExoticComponent<Pick<any, string | number | symbol> & import("react").RefAttributes<unknown>>;
@@ -0,0 +1,34 @@
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 } from "react/jsx-runtime";
17
+ import { forwardRef, useCallback } from "react";
18
+ import { Scrollbars } from "react-custom-scrollbars";
19
+ import styled from "styled-components";
20
+ var StyledScrollbars = styled(Scrollbars)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n scrollbar-width: thin;\n scrollbar-color: #b1b1b2 transparent;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: #b1b1b2;\n border-radius: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n\n > div:first-of-type {\n margin-bottom: 0 !important;\n }\n"], ["\n scrollbar-width: thin;\n scrollbar-color: #b1b1b2 transparent;\n\n ::-webkit-scrollbar {\n width: 0;\n height: 5px;\n }\n\n ::-webkit-scrollbar-thumb {\n background-color: #b1b1b2;\n border-radius: 3px;\n }\n\n ::-webkit-scrollbar-track {\n background: transparent;\n }\n\n > div:first-of-type {\n margin-bottom: 0 !important;\n }\n"])));
21
+ var CustomScrollbars = function (_a) {
22
+ var onScroll = _a.onScroll, forwardedRef = _a.forwardedRef, style = _a.style, children = _a.children;
23
+ var refSetter = useCallback(function (scrollbarsRef) {
24
+ if (scrollbarsRef) {
25
+ forwardedRef(scrollbarsRef.view);
26
+ }
27
+ else {
28
+ forwardedRef(null);
29
+ }
30
+ }, []);
31
+ return (_jsx(StyledScrollbars, __assign({ renderTrackHorizontal: function (props) { return (_jsx("div", __assign({}, props, { style: { display: "none" }, className: "track-horizontal" }))); }, ref: refSetter, style: style, onScroll: onScroll }, { children: children })));
32
+ };
33
+ export var CustomScrollbarsVirtualList = forwardRef(function (props, ref) { return (_jsx(CustomScrollbars, __assign({}, props, { forwardedRef: ref }))); });
34
+ var templateObject_1;
@@ -20,11 +20,11 @@ import { useSpreadsheetContext } from "../../../Importer";
20
20
  var Cell = React.memo(function (_a) {
21
21
  var _b;
22
22
  var data = _a.data, rowIndex = _a.rowIndex, style = _a.style;
23
- var items = data.items, onRowClick = data.onRowClick, columns = data.columns, highlightFirstRow = data.highlightFirstRow, rowHeight = data.rowHeight, getItemKey = data.getItemKey, isSpreadsheetTable = data.isSpreadsheetTable;
23
+ var items = data.items, onRowClick = data.onRowClick, columns = data.columns, highlightFirstRow = data.highlightFirstRow, rowHeight = data.rowHeight, getItemKey = data.getItemKey, shouldHaveCustomScrollbar = data.shouldHaveCustomScrollbar;
24
24
  var item = items[rowIndex];
25
25
  var selectedRows = useSpreadsheetContext().selectedRows;
26
26
  var isRowSelected = selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.includes((_b = item === null || item === void 0 ? void 0 : item._meta) === null || _b === void 0 ? void 0 : _b.id);
27
- return (_jsx(Div, __assign({ style: style }, { children: _jsx(TableRow, { columns: columns, onRowClick: onRowClick, highlightFirstRow: highlightFirstRow, h: rowHeight, row: item, indexI: rowIndex, isLast: rowIndex === items.length - 1, pRelative: true, getItemKey: getItemKey, isRowSelected: isRowSelected || false, isSpreadsheetTable: isSpreadsheetTable }) })));
27
+ return (_jsx(Div, __assign({ style: style }, { children: _jsx(TableRow, { columns: columns, onRowClick: onRowClick, highlightFirstRow: highlightFirstRow, h: rowHeight, row: item, indexI: rowIndex, isLast: rowIndex === items.length - 1, pRelative: true, getItemKey: getItemKey, isRowSelected: isRowSelected || false, shouldHaveCustomScrollbar: shouldHaveCustomScrollbar }) })));
28
28
  }, areEqual);
29
29
  var DraggableCell = React.memo(function (_a) {
30
30
  var data = _a.data, rowIndex = _a.rowIndex, baseStyle = _a.style;
@@ -4,10 +4,10 @@ import { DivCSSProps } from "../../../styled/utils";
4
4
  import { SortDirection } from "../TableDataProvider";
5
5
  type TableViewHeaderProps = {
6
6
  isLast: boolean;
7
- isSpreadsheetTable?: boolean;
7
+ shouldHaveCustomScrollbar?: boolean;
8
8
  };
9
9
  export declare const TableViewHeader: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps & {
10
- isSpreadsheetTable?: boolean;
10
+ shouldHaveCustomScrollbar?: boolean;
11
11
  } & TableViewHeaderProps, never>;
12
12
  type SortIndicatorProps = {
13
13
  direction: SortDirection;
@@ -19,7 +19,7 @@ type TableHeadersProps = Pick<TableViewProps, "columns" | "sortBy" | "setSortBy"
19
19
  scrollLeft: number;
20
20
  height: number;
21
21
  containerRef: React.MutableRefObject<HTMLDivElement>;
22
- isSpreadsheetTable?: boolean;
22
+ shouldHaveCustomScrollbar?: boolean;
23
23
  } & DivCSSProps;
24
- export declare const TableHeaders: ({ scrollLeft, columns, sortBy, rowHeight, containerRef, setSortBy, rowWidth, height, isSpreadsheetTable, ...props }: TableHeadersProps) => JSX.Element;
24
+ export declare const TableHeaders: ({ scrollLeft, columns, sortBy, rowHeight, containerRef, setSortBy, rowWidth, height, shouldHaveCustomScrollbar, ...props }: TableHeadersProps) => JSX.Element;
25
25
  export {};
@@ -31,19 +31,16 @@ import { chevronDown as chevronDownIcon } from "../icons";
31
31
  import { SortDirection } from "../TableDataProvider";
32
32
  import { columnWidthPercentage, defaultTableHeaderHeightPx, TableViewCellContainer, } from "./common";
33
33
  import { useTranslation } from "react-i18next";
34
- export var TableViewHeader = styled(TableViewCellContainer)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n border-bottom: none;\n box-shadow: inset 0 -1px 0 ", ";\n background-color: ", ";\n ", ";\n color: ", ";\n ", "\n ", "\n"], ["\n border-bottom: none;\n box-shadow: inset 0 -1px 0 ", ";\n background-color: ", ";\n ", ";\n color: ", ";\n ", "\n ", "\n"])), function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.tableHeader; }, function (p) { return p.theme.css.body2; }, function (p) { return p.theme.colors.text; }, function (p) {
34
+ export var TableViewHeader = styled(TableViewCellContainer)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-bottom: none;\n box-shadow: inset 0 -1px 0 ", ";\n background-color: ", ";\n ", ";\n color: ", ";\n ", "\n"], ["\n border-bottom: none;\n box-shadow: inset 0 -1px 0 ", ";\n background-color: ", ";\n ", ";\n color: ", ";\n ", "\n"])), function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.tableHeader; }, function (p) { return p.theme.css.body2; }, function (p) { return p.theme.colors.text; }, function (p) {
35
35
  return p.isLast && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border-right: solid 1px transparent !important;\n "], ["\n border-right: solid 1px transparent !important;\n "])));
36
- }, function (_a) {
37
- var isSpreadsheetTable = _a.isSpreadsheetTable;
38
- return isSpreadsheetTable && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n min-width: 200px;\n "], ["\n min-width: 200px;\n "])));
39
36
  });
40
- export var SortIndicator = styled(Div)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-left: 10px;\n margin-top: -4px;\n ", "\n svg {\n path {\n fill: ", ";\n }\n }\n"], ["\n margin-left: 10px;\n margin-top: -4px;\n ", "\n svg {\n path {\n fill: ", ";\n }\n }\n"])), function (p) {
41
- return p.direction === SortDirection.asc && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin-top: 3px;\n transform: rotate(180deg);\n "], ["\n margin-top: 3px;\n transform: rotate(180deg);\n "])));
37
+ export var SortIndicator = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n margin-left: 10px;\n margin-top: -4px;\n ", "\n svg {\n path {\n fill: ", ";\n }\n }\n"], ["\n margin-left: 10px;\n margin-top: -4px;\n ", "\n svg {\n path {\n fill: ", ";\n }\n }\n"])), function (p) {
38
+ return p.direction === SortDirection.asc && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n margin-top: 3px;\n transform: rotate(180deg);\n "], ["\n margin-top: 3px;\n transform: rotate(180deg);\n "])));
42
39
  }, function (p) { return p.theme.colors.gray300; });
43
- export var TableHeadersContainer = styled(Div)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n overflow-x: hidden;\n"], ["\n overflow-x: hidden;\n"])));
44
- export var TableHeadersContent = styled(Div)(templateObject_7 || (templateObject_7 = __makeTemplateObject([""], [""])));
40
+ export var TableHeadersContainer = styled(Div)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n overflow-x: hidden;\n"], ["\n overflow-x: hidden;\n"])));
41
+ export var TableHeadersContent = styled(Div)(templateObject_6 || (templateObject_6 = __makeTemplateObject([""], [""])));
45
42
  export var TableHeaders = function (_a) {
46
- var _b = _a.scrollLeft, scrollLeft = _b === void 0 ? 0 : _b, columns = _a.columns, sortBy = _a.sortBy, rowHeight = _a.rowHeight, containerRef = _a.containerRef, setSortBy = _a.setSortBy, _c = _a.rowWidth, rowWidth = _c === void 0 ? 1 : _c, _d = _a.height, height = _d === void 0 ? defaultTableHeaderHeightPx : _d, isSpreadsheetTable = _a.isSpreadsheetTable, props = __rest(_a, ["scrollLeft", "columns", "sortBy", "rowHeight", "containerRef", "setSortBy", "rowWidth", "height", "isSpreadsheetTable"]);
43
+ var _b = _a.scrollLeft, scrollLeft = _b === void 0 ? 0 : _b, columns = _a.columns, sortBy = _a.sortBy, rowHeight = _a.rowHeight, containerRef = _a.containerRef, setSortBy = _a.setSortBy, _c = _a.rowWidth, rowWidth = _c === void 0 ? 1 : _c, _d = _a.height, height = _d === void 0 ? defaultTableHeaderHeightPx : _d, shouldHaveCustomScrollbar = _a.shouldHaveCustomScrollbar, props = __rest(_a, ["scrollLeft", "columns", "sortBy", "rowHeight", "containerRef", "setSortBy", "rowWidth", "height", "shouldHaveCustomScrollbar"]);
47
44
  var t = useTranslation().t;
48
45
  return (_jsx(TableHeadersContainer, __assign({ ref: containerRef }, { children: _jsx(TableHeadersContent, __assign({ dflex: true, w: "".concat(100 * rowWidth, "%") }, { children: columns.map(function (column, index) {
49
46
  var header = column.header, Header = column.Header;
@@ -65,7 +62,7 @@ export var TableHeaders = function (_a) {
65
62
  });
66
63
  }
67
64
  };
68
- return (_jsxs(TableViewHeader, __assign({ isLast: index === columns.length - 1, w: columnWidthPercentage(column, columns), onClick: onHeaderClick, h: height, isSpreadsheetTable: isSpreadsheetTable }, props, { children: [_jsx(_Fragment, { children: Header ? _jsx(Header, {}) : t(header) }), (sortBy === null || sortBy === void 0 ? void 0 : sortBy.field) === column.dataAccessor && (_jsx(SortIndicator, __assign({ direction: sortBy === null || sortBy === void 0 ? void 0 : sortBy.direction }, { children: chevronDownIcon })))] }), index));
65
+ return (_jsxs(TableViewHeader, __assign({ isLast: index === columns.length - 1, w: columnWidthPercentage(column, columns), onClick: onHeaderClick, h: height, shouldHaveCustomScrollbar: shouldHaveCustomScrollbar }, props, { children: [_jsx(_Fragment, { children: Header ? _jsx(Header, {}) : t(header) }), (sortBy === null || sortBy === void 0 ? void 0 : sortBy.field) === column.dataAccessor && (_jsx(SortIndicator, __assign({ direction: sortBy === null || sortBy === void 0 ? void 0 : sortBy.direction }, { children: chevronDownIcon })))] }), index));
69
66
  }) })) })));
70
67
  };
71
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
68
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
@@ -13,7 +13,7 @@ type Props = Pick<TableViewProps, "columns" | "onRowClick" | "highlightFirstRow"
13
13
  isLast?: boolean;
14
14
  getItemKey?: (row: any) => string;
15
15
  isRowSelected?: boolean;
16
- isSpreadsheetTable?: boolean;
16
+ shouldHaveCustomScrollbar?: boolean;
17
17
  } & DivCSSProps;
18
- export declare const TableRow: ({ row, indexI, columns, isLast, highlightFirstRow, onRowClick, getItemKey, isRowSelected, isSpreadsheetTable, ...props }: Props) => JSX.Element;
18
+ export declare const TableRow: ({ row, indexI, columns, isLast, highlightFirstRow, onRowClick, getItemKey, isRowSelected, shouldHaveCustomScrollbar, ...props }: Props) => JSX.Element;
19
19
  export {};
@@ -31,8 +31,8 @@ import styled, { css } from "styled-components";
31
31
  import { Div } from "../../../styled/utils";
32
32
  import { columnWidthPercentage, TableViewCellContainer } from "./common";
33
33
  export var Cell = React.memo(function (props) {
34
- var children = props.children, isSpreadsheetTable = props.isSpreadsheetTable, cellProps = __rest(props, ["children", "isSpreadsheetTable"]);
35
- return (_jsx(TableViewCellContainer, __assign({ isSpreadsheetTable: isSpreadsheetTable }, cellProps, { children: children })));
34
+ var children = props.children, shouldHaveCustomScrollbar = props.shouldHaveCustomScrollbar, cellProps = __rest(props, ["children", "shouldHaveCustomScrollbar"]);
35
+ return (_jsx(TableViewCellContainer, __assign({ shouldHaveCustomScrollbar: shouldHaveCustomScrollbar }, cellProps, { children: children })));
36
36
  }, areEqual);
37
37
  export var TableViewRow = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: white;\n ", "\n ", "\n"], ["\n background-color: white;\n ", "\n ", "\n"])), function (p) {
38
38
  return !p.isLast && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n box-shadow: inset 0 -1px 0 ", ";\n "], ["\n box-shadow: inset 0 -1px 0 ", ";\n "])), function (p) { return p.theme.colors.gray300; });
@@ -40,7 +40,7 @@ export var TableViewRow = styled(Div)(templateObject_3 || (templateObject_3 = __
40
40
  return p.isHighlighted && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background: ", ";\n box-shadow: inset 0 0 0 3px ", ";\n\n .input-content {\n background: transparent;\n border: none;\n box-shadow: none;\n\n &,\n input {\n color: ", ";\n }\n }\n "], ["\n background: ", ";\n box-shadow: inset 0 0 0 3px ", ";\n\n .input-content {\n background: transparent;\n border: none;\n box-shadow: none;\n\n &,\n input {\n color: ", ";\n }\n }\n "])), p.theme.colors.blue100, p.theme.colors.blue500, p.theme.colors.gray1000);
41
41
  });
42
42
  export var TableRow = function (_a) {
43
- var row = _a.row, indexI = _a.indexI, columns = _a.columns, isLast = _a.isLast, highlightFirstRow = _a.highlightFirstRow, onRowClick = _a.onRowClick, getItemKey = _a.getItemKey, _b = _a.isRowSelected, isRowSelected = _b === void 0 ? false : _b, isSpreadsheetTable = _a.isSpreadsheetTable, props = __rest(_a, ["row", "indexI", "columns", "isLast", "highlightFirstRow", "onRowClick", "getItemKey", "isRowSelected", "isSpreadsheetTable"]);
43
+ var row = _a.row, indexI = _a.indexI, columns = _a.columns, isLast = _a.isLast, highlightFirstRow = _a.highlightFirstRow, onRowClick = _a.onRowClick, getItemKey = _a.getItemKey, _b = _a.isRowSelected, isRowSelected = _b === void 0 ? false : _b, shouldHaveCustomScrollbar = _a.shouldHaveCustomScrollbar, props = __rest(_a, ["row", "indexI", "columns", "isLast", "highlightFirstRow", "onRowClick", "getItemKey", "isRowSelected", "shouldHaveCustomScrollbar"]);
44
44
  var isHighlighted = (indexI === 0 && highlightFirstRow) || isRowSelected;
45
45
  return (_jsx(TableViewRow, __assign({ "data-test-id": "row-".concat(indexI), dflex: true }, { isHighlighted: isHighlighted, isLast: isLast }, props, { children: columns.map(function (column, indexJ) {
46
46
  var Content = column.Content;
@@ -48,7 +48,7 @@ export var TableRow = function (_a) {
48
48
  var resolvedKey = "column-".concat(indexJ, "-row-").concat(key);
49
49
  return (_jsx(Cell, __assign({ row: row, onClick: onRowClick && !column.preventRowClick
50
50
  ? function () { return onRowClick(row); }
51
- : null, isSpreadsheetTable: isSpreadsheetTable, w: columnWidthPercentage(column, columns) }, { children: Content ? (_jsx(Content, __assign({}, row, { rowIndex: indexI }))) : (_jsx(Div, __assign({ truncateText: true }, { children: row[column.dataAccessor] || "-" }))) }), resolvedKey));
51
+ : null, shouldHaveCustomScrollbar: shouldHaveCustomScrollbar, w: columnWidthPercentage(column, columns) }, { children: Content ? (_jsx(Content, __assign({}, row, { rowIndex: indexI }))) : (_jsx(Div, __assign({ truncateText: true }, { children: row[column.dataAccessor] || "-" }))) }), resolvedKey));
52
52
  }) })));
53
53
  };
54
54
  var templateObject_1, templateObject_2, templateObject_3;
@@ -2,7 +2,7 @@ import { TableViewColumn } from ".";
2
2
  export declare const defaultTableRowHeightPx = 60;
3
3
  export declare const defaultTableHeaderHeightPx = 60;
4
4
  type TableViewCellContainerProps = {
5
- isSpreadsheetTable?: boolean;
5
+ shouldHaveCustomScrollbar?: boolean;
6
6
  };
7
7
  export declare const columnWidthPercentage: (column: TableViewColumn, columns: TableViewColumn[]) => string;
8
8
  export declare const TableViewCellContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../../../styled/utils").CSSProps & TableViewCellContainerProps, never>;
@@ -14,14 +14,11 @@ export var columnWidthPercentage = function (column, columns) {
14
14
  ? "".concat((column.width || 1 / totalColumnWidthCount) * 100, "%")
15
15
  : "0%";
16
16
  };
17
- export var TableViewCellContainer = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n padding-left: 16px;\n align-items: center;\n color: ", ";\n\n ", "\n ", ";\n ", "\n"], ["\n display: flex;\n padding-left: 16px;\n align-items: center;\n color: ", ";\n\n ", "\n ", ";\n ", "\n"])), function (p) { return p.theme.colors.textPrim; }, function (_a) {
17
+ export var TableViewCellContainer = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n display: flex;\n padding-left: 16px;\n align-items: center;\n color: ", ";\n\n ", "\n ", ";\n"], ["\n display: flex;\n padding-left: 16px;\n align-items: center;\n color: ", ";\n\n ", "\n ", ";\n"])), function (p) { return p.theme.colors.textPrim; }, function (_a) {
18
18
  var onClick = _a.onClick;
19
19
  return onClick && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n :hover {\n cursor: pointer;\n }\n "], ["\n :hover {\n cursor: pointer;\n }\n "])));
20
20
  }, function (_a) {
21
21
  var theme = _a.theme;
22
22
  return theme.css.body3;
23
- }, function (_a) {
24
- var isSpreadsheetTable = _a.isSpreadsheetTable;
25
- return isSpreadsheetTable && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n min-width: 200px;\n "], ["\n min-width: 200px;\n "])));
26
23
  });
27
- var templateObject_1, templateObject_2, templateObject_3;
24
+ var templateObject_1, templateObject_2;
@@ -39,8 +39,8 @@ export type TableViewProps = {
39
39
  onRowClick?: (row: any) => void;
40
40
  getItemKey?: (row: any) => string;
41
41
  shouldBeDraggable?: boolean;
42
- isInsideImporter?: boolean;
43
42
  checkboxColumnWidth?: number;
44
- isSpreadsheetTable?: boolean;
43
+ shouldHaveCustomScrollbar?: boolean;
44
+ isFiltering?: boolean;
45
45
  } & DivCSSProps;
46
- export declare const TableView: React.MemoExoticComponent<({ data, columns, pageSize, onRowClick, sortBy, isLoading, highlightFirstRow, setSortBy, rowWidth, onSectionRendered, tableHeadersHeight, rowHeight, h, onTableScroll, getItemKey, shouldBeDraggable, isInsideImporter, checkboxColumnWidth, ...props }: TableViewProps) => JSX.Element>;
46
+ export declare const TableView: React.MemoExoticComponent<({ data, columns, pageSize, onRowClick, sortBy, isLoading, highlightFirstRow, setSortBy, rowWidth, onSectionRendered, tableHeadersHeight, rowHeight, h, onTableScroll, getItemKey, shouldBeDraggable, shouldHaveCustomScrollbar, checkboxColumnWidth, isFiltering, ...props }: TableViewProps) => JSX.Element>;