fuse-importer 0.23.3 → 0.23.6

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 (46) hide show
  1. package/README.md +1 -1
  2. package/lib/esm/Importer/FuseApi.js +1 -1
  3. package/lib/esm/Importer/ImporterContextProvider.d.ts +2 -0
  4. package/lib/esm/Importer/ImporterContextProvider.js +4 -1
  5. package/lib/esm/Importer/Review/index.js +1 -1
  6. package/lib/esm/Importer/SpreadsheetReviewContextProvider.d.ts +2 -1
  7. package/lib/esm/Importer/SpreadsheetReviewContextProvider.js +20 -9
  8. package/lib/esm/Importer/Stepper.js +4 -2
  9. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +1 -1
  10. package/lib/esm/Importer/Uploader/HeadersPreview.js +1 -1
  11. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.d.ts +1 -0
  12. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider.js +81 -61
  13. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetRowNumbers.d.ts +3 -3
  14. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetRowNumbers.js +10 -10
  15. package/lib/esm/Importer/common/Spreadsheet/common/fields/index.d.ts +2 -2
  16. package/lib/esm/Importer/common/Spreadsheet/common/fields/index.js +32 -47
  17. package/lib/esm/Importer/common/Spreadsheet/common/index.js +1 -1
  18. package/lib/esm/Importer/common/Spreadsheet/index.js +18 -57
  19. package/lib/esm/Importer/index.js +2 -2
  20. package/lib/esm/api/index.d.ts +1 -0
  21. package/lib/esm/api/index.js +3 -3
  22. package/lib/esm/common/Modal.d.ts +7 -4
  23. package/lib/esm/common/Modal.js +2 -2
  24. package/lib/esm/common/Table/TableDataProvider.js +24 -23
  25. package/lib/esm/common/Table/TableView/TableHeaders.d.ts +3 -2
  26. package/lib/esm/common/Table/TableView/TableHeaders.js +1 -5
  27. package/lib/esm/common/Table/TableView/TableRow.d.ts +2 -2
  28. package/lib/esm/common/Table/TableView/TableRow.js +7 -10
  29. package/lib/esm/common/Table/TableView/index.d.ts +1 -2
  30. package/lib/esm/common/Table/TableView/index.js +52 -45
  31. package/lib/esm/common/TooltipProvider.d.ts +1 -0
  32. package/lib/esm/common/TooltipProvider.js +7 -7
  33. package/lib/esm/common/buttons.js +2 -2
  34. package/lib/esm/common/index.d.ts +1 -1
  35. package/lib/esm/common/index.js +2 -2
  36. package/lib/esm/common/inputs/Autocomplete.js +8 -4
  37. package/lib/esm/common/inputs/TextInput.d.ts +2 -1
  38. package/lib/esm/common/inputs/TextInput.js +3 -2
  39. package/lib/esm/styled/utils.d.ts +3 -0
  40. package/lib/esm/styled/utils.js +4 -2
  41. package/lib/esm/types.d.ts +11 -7
  42. package/lib/esm/utils/index.d.ts +1 -0
  43. package/lib/esm/utils/index.js +3 -0
  44. package/lib/main.js +1 -1
  45. package/lib/main.js.LICENSE.txt +9 -0
  46. package/package.json +18 -14
@@ -13,42 +13,6 @@ var __assign = (this && this.__assign) || function () {
13
13
  };
14
14
  return __assign.apply(this, arguments);
15
15
  };
16
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
17
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
18
- return new (P || (P = Promise))(function (resolve, reject) {
19
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
20
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
21
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
22
- step((generator = generator.apply(thisArg, _arguments || [])).next());
23
- });
24
- };
25
- var __generator = (this && this.__generator) || function (thisArg, body) {
26
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
27
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
28
- function verb(n) { return function (v) { return step([n, v]); }; }
29
- function step(op) {
30
- if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
32
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
- if (y = 0, t) op = [op[0] & 2, t.value];
34
- switch (op[0]) {
35
- case 0: case 1: t = op; break;
36
- case 4: _.label++; return { value: op[1], done: false };
37
- case 5: _.label++; y = op[1]; op = [0]; continue;
38
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
39
- default:
40
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
41
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
42
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
43
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
44
- if (t[2]) _.ops.pop();
45
- _.trys.pop(); continue;
46
- }
47
- op = body.call(thisArg, _);
48
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
49
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
50
- }
51
- };
52
16
  var __rest = (this && this.__rest) || function (s, e) {
53
17
  var t = {};
54
18
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -63,6 +27,7 @@ var __rest = (this && this.__rest) || function (s, e) {
63
27
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
64
28
  import { useEffect, useMemo, useRef, useState, useCallback, } from "react";
65
29
  import styled from "styled-components";
30
+ import { debounce } from "lodash";
66
31
  import { getTableHeight } from "..";
67
32
  import { TableView as TableViewBase, TableViewCellContainer, TableViewRow, } from "../../../common/Table/TableView";
68
33
  import { colors } from "../../../styled/theme/colorPalette";
@@ -78,7 +43,7 @@ import { inputTypes } from "./inputs";
78
43
  var SpreadSheetWrapper = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n border: solid 1px ", ";\n border-radius: 8px;\n background: ", ";\n overflow: hidden !important;\n"], ["\n border: solid 1px ", ";\n border-radius: 8px;\n background: ", ";\n overflow: hidden !important;\n"])), function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.colors.white; });
79
44
  var TableView = styled(TableViewBase)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n width: 100%;\n border: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n overflow: hidden;\n background-color: ", ";\n ", " {\n border-bottom: none;\n height: 40px;\n }\n ", " {\n padding: 0;\n border-right: 1px solid ", ";\n }\n"], ["\n width: 100%;\n border: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n overflow: hidden;\n background-color: ", ";\n ", " {\n border-bottom: none;\n height: 40px;\n }\n ", " {\n padding: 0;\n border-right: 1px solid ", ";\n }\n"])), function (p) { return p.theme.colors.gray50; }, TableViewRow, TableViewCellContainer, function (p) { return p.theme.colors.gray300; });
80
45
  var Spreadsheet = function (_a) {
81
- var isReadOnly = _a.isReadOnly, initialData = _a.initialData, rowWidth = _a.rowWidth, fields = _a.fields, appResponse = _a.appResponse, options = _a.options, _b = _a.onValidateRecord, onValidateRecord = _b === void 0 ? null : _b, submittedData = _a.submittedData, setReviewedData = _a.setReviewedData, _c = _a.onValidateBatch, onValidateBatch = _c === void 0 ? null : _c, _d = _a.highlightFirstRow, highlightFirstRow = _d === void 0 ? false : _d;
46
+ var isReadOnly = _a.isReadOnly, initialData = _a.initialData, rowWidth = _a.rowWidth, fields = _a.fields, appResponse = _a.appResponse, _b = _a.options, options = _b === void 0 ? {} : _b, _c = _a.onValidateRecord, onValidateRecord = _c === void 0 ? null : _c, submittedData = _a.submittedData, setReviewedData = _a.setReviewedData, _d = _a.onValidateBatch, onValidateBatch = _d === void 0 ? null : _d, _e = _a.highlightFirstRow, highlightFirstRow = _e === void 0 ? false : _e;
82
47
  return (_jsx(SpreadsheetContextProvider, __assign({}, {
83
48
  appResponse: appResponse,
84
49
  submittedData: submittedData,
@@ -103,9 +68,8 @@ var SpreadSheetWithContext = function () {
103
68
  var SpreadsheetData = function () {
104
69
  var _a = useSpreadsheetReviewContext(), appResponse = _a.appResponse, isSubmitting = _a.isSubmitting;
105
70
  var _b = useSpreadsheetContext(), fields = _b.fields, data = _b.data, isLoading = _b.isLoading, isReadOnly = _b.isReadOnly, rowWidth = _b.rowWidth, sortByFieldErrors = _b.sortByFieldErrors, setSortByFieldErrors = _b.setSortByFieldErrors, validateRenderedRecords = _b.validateRenderedRecords, setIsLoading = _b.setIsLoading;
106
- var validationTimeoutRef = useRef(null);
107
- var _c = useState(0), scrollTop = _c[0], setScrollTop = _c[1];
108
- var _d = useState(true), isSortingTableData = _d[0], setIsSortingTableData = _d[1];
71
+ var _c = useState(true), isSortingTableData = _c[0], setIsSortingTableData = _c[1];
72
+ var rowNumbersGridRef = useRef();
109
73
  useEffect(function () {
110
74
  setIsSortingTableData(true);
111
75
  setTimeout(function () {
@@ -113,23 +77,14 @@ var SpreadsheetData = function () {
113
77
  setSortByFieldErrors(null);
114
78
  }, 10);
115
79
  }, [sortByFieldErrors]);
116
- var onSectionRendered = useCallback(function (_a) {
80
+ var onSectionRendered = useCallback(debounce(function (_a) {
117
81
  var data = _a.data;
118
- return __awaiter(void 0, void 0, void 0, function () {
119
- return __generator(this, function (_b) {
120
- if (isSortingTableData)
121
- return [2 /*return*/];
122
- if (!isReadOnly)
123
- setIsLoading(true);
124
- if (validationTimeoutRef.current)
125
- clearTimeout(validationTimeoutRef.current);
126
- validationTimeoutRef.current = setTimeout(function () {
127
- validateRenderedRecords(data);
128
- }, 200);
129
- return [2 /*return*/];
130
- });
131
- });
132
- }, [isSortingTableData]);
82
+ if (isSortingTableData)
83
+ return;
84
+ if (!isReadOnly)
85
+ setIsLoading(true);
86
+ validateRenderedRecords(data);
87
+ }, 200), [isSortingTableData, validateRenderedRecords]);
133
88
  var columns = useMemo(function () {
134
89
  return fields.map(function (field) { return ({
135
90
  Header: function () { return (_jsx(FieldHeader, { field: field, sortByFieldErrors: setSortByFieldErrors })); },
@@ -144,6 +99,12 @@ var SpreadsheetData = function () {
144
99
  data,
145
100
  appResponse,
146
101
  ]);
102
+ var onTableScroll = useCallback(function (scrollTop) {
103
+ if (rowNumbersGridRef.current) {
104
+ var grid = rowNumbersGridRef.current;
105
+ grid.scrollTo({ scrollTop: scrollTop });
106
+ }
107
+ }, []);
147
108
  var spreadsheetHeight = getTableHeight({
148
109
  headerHeight: spreadsheetHeaderHeightPx,
149
110
  rowHeight: spreadsheetRowHeightPx,
@@ -151,7 +112,7 @@ var SpreadsheetData = function () {
151
112
  minimumTableHeight: 450,
152
113
  maxVisibleRows: 12,
153
114
  });
154
- return (_jsxs(_Fragment, { children: [_jsx(GlobalStyle, {}), !isSortingTableData && !isSubmitting && (_jsxs(SpreadSheetWrapper, __assign({ h: spreadsheetHeight, dflex: true, w: 1400 }, { children: [_jsx(SpreadsheetRowNumbers, { spreadsheetHasXScroll: rowWidth > 1, scrollTop: scrollTop, height: spreadsheetHeight }), _jsx(TableView, { tableHeadersHeight: spreadsheetHeaderHeightPx, highlightFirstRow: isReadOnly, rowHeight: spreadsheetRowHeightPx, onSectionRendered: onSectionRendered, onTableScroll: function (_scrollTop) { return setScrollTop(_scrollTop); }, h: spreadsheetHeight, rowWidth: rowWidth, data: unsubmittedData, columns: columns, isLoading: isLoading })] })))] }));
115
+ return (_jsxs(_Fragment, { children: [_jsx(GlobalStyle, {}), !isSortingTableData && !isSubmitting && (_jsxs(SpreadSheetWrapper, __assign({ h: spreadsheetHeight, dflex: true, w: 1400 }, { children: [_jsx(SpreadsheetRowNumbers, { gridRef: rowNumbersGridRef, spreadsheetHasXScroll: rowWidth > 1, height: spreadsheetHeight }), _jsx(TableView, { tableHeadersHeight: spreadsheetHeaderHeightPx, highlightFirstRow: isReadOnly, rowHeight: spreadsheetRowHeightPx, onSectionRendered: onSectionRendered, onTableScroll: onTableScroll, h: spreadsheetHeight, rowWidth: rowWidth, data: unsubmittedData, columns: columns, isLoading: isLoading })] })))] }));
155
116
  };
156
117
  export { Spreadsheet };
157
118
  var templateObject_1, templateObject_2;
@@ -64,12 +64,12 @@ var Importer = function (_a) {
64
64
  };
65
65
  var ImporterWithContext = function (_a) {
66
66
  var onSubmit = _a.onSubmit;
67
- var _b = useImporterContext(), inTrialMode = _b.inTrialMode, currentStepIndex = _b.currentStepIndex, matcherSubstep = _b.matcherSubstep, theme = _b.theme, logoURL = _b.logoURL, zIndex = _b.importerOptions.zIndex;
67
+ var _b = useImporterContext(), inTrialMode = _b.inTrialMode, currentStepIndex = _b.currentStepIndex, matcherSubstep = _b.matcherSubstep, theme = _b.theme, logoURL = _b.logoURL, _c = _b.importerOptions, zIndex = _c.zIndex, loadingComponent = _c.loadingComponent;
68
68
  var layoutRef = useRef(null);
69
69
  useEffect(function () {
70
70
  layoutRef.current.scrollTo(0, 0);
71
71
  }, [currentStepIndex, matcherSubstep]);
72
- return (_jsxs(ThemeProvider, __assign({ theme: theme }, { children: [_jsx(Toast, {}), _jsx(GlobalStyle, {}), _jsx(ImporterFonts, {}), _jsx(SpreadsheetReviewContextProvider, __assign({ onSubmit: onSubmit }, { children: _jsxs(Layout, __assign({ zIndex: zIndex, ref: layoutRef }, { children: [_jsxs(Div, { children: [_jsx(PreviewModeBanner, {}), _jsx(TrialModeBanner, {}), _jsx(Stepper, { stepLabels: steps.map(function (step) { return step.label; }), logoURL: logoURL })] }), _jsx(Content, { children: steps[currentStepIndex].component }), inTrialMode && (_jsx(Content, { children: _jsx(Footer, {}) }))] })) }))] })));
72
+ return (_jsxs(ThemeProvider, __assign({ theme: theme }, { children: [_jsx(Toast, {}), _jsx(GlobalStyle, {}), _jsx(ImporterFonts, {}), _jsx(SpreadsheetReviewContextProvider, __assign({ loadingComponent: loadingComponent, onSubmit: onSubmit }, { children: _jsxs(Layout, __assign({ zIndex: zIndex, ref: layoutRef }, { children: [_jsxs(Div, { children: [_jsx(PreviewModeBanner, {}), _jsx(TrialModeBanner, {}), _jsx(Stepper, { stepLabels: steps.map(function (step) { return step.label; }), logoURL: logoURL })] }), _jsx(Content, { children: steps[currentStepIndex].component }), inTrialMode && (_jsx(Content, { children: _jsx(Footer, {}) }))] })) }))] })));
73
73
  };
74
74
  export * from "./common/Spreadsheet";
75
75
  export * from "./common/utils";
@@ -9,6 +9,7 @@ declare module "axios" {
9
9
  withReq?: boolean;
10
10
  successMsg?: string | SuccessCallback;
11
11
  errorMsg?: string;
12
+ authToken?: string;
12
13
  }
13
14
  }
14
15
  declare const api: import("axios").AxiosInstance;
@@ -26,20 +26,20 @@ var getTTL = function (ttl) {
26
26
  };
27
27
  var requestInterceptor = {
28
28
  onFulFilled: function (_config) {
29
- var _a;
29
+ var _a, _b;
30
30
  _config.paramsSerializer = function (params) {
31
31
  return Qs.stringify(params, {
32
32
  arrayFormat: config.arrayFormat ? config.arrayFormat : "brackets",
33
33
  });
34
34
  };
35
- var authToken = (_a = JSON.parse(ls === null || ls === void 0 ? void 0 : ls.getItem("user"))) === null || _a === void 0 ? void 0 : _a.token;
35
+ var authToken = (_a = _config.authToken) !== null && _a !== void 0 ? _a : (_b = JSON.parse(ls === null || ls === void 0 ? void 0 : ls.getItem("user"))) === null || _b === void 0 ? void 0 : _b.token;
36
36
  var config = Object.assign(_config);
37
37
  if (authToken)
38
38
  config.headers.Authorization = "Bearer ".concat(authToken);
39
39
  if (!config.toPublicApi)
40
40
  config.url = "".concat(process.env.REACT_APP_API_BASE_URL || "").concat(config.url);
41
41
  if (config.cache) {
42
- var _b = getCacheKeys(config), key = _b.key, ttlKey = _b.ttlKey;
42
+ var _c = getCacheKeys(config), key = _c.key, ttlKey = _c.ttlKey;
43
43
  var ttl = ls === null || ls === void 0 ? void 0 : ls.getItem(ttlKey);
44
44
  if (config.refresh || (ttl && ttlIsExpired(ttl))) {
45
45
  ls === null || ls === void 0 ? void 0 : ls.removeItem(key);
@@ -3,11 +3,14 @@ export declare const ModalContainer: import("styled-components").StyledComponent
3
3
  export declare const ModalBackdrop: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../styled/utils").CSSProps, never>;
4
4
  export declare const ModalWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../styled/utils").CSSProps, never>;
5
5
  export declare const ModalCloseIcon: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, import("../styled/utils").CSSProps, never>;
6
- export declare const Modal: ({ isOpen, onClose, children, withCloseIcon, withBackdropClose, className, }: {
6
+ declare type ModalProps = {
7
7
  isOpen?: boolean;
8
- onClose?: any;
9
- children: any;
8
+ onClose?: () => void | null;
9
+ children?: React.ReactNode;
10
10
  withCloseIcon?: boolean;
11
11
  withBackdropClose?: boolean;
12
12
  className?: string;
13
- }) => JSX.Element;
13
+ testId?: string;
14
+ };
15
+ export declare const Modal: ({ isOpen, onClose, children, withCloseIcon, withBackdropClose, className, testId, }: ModalProps) => JSX.Element;
16
+ export {};
@@ -22,7 +22,7 @@ export var ModalBackdrop = styled(Div)(templateObject_2 || (templateObject_2 = _
22
22
  export var ModalWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background: ", ";\n padding: 32px 56px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"], ["\n background: ", ";\n padding: 32px 56px;\n border-radius: 8px;\n box-shadow: 0 8px 8px 0 rgba(0, 0, 0, 0.24), 0 0 8px 0 rgba(0, 0, 0, 0.32);\n"])), function (props) { return props.theme.colors.white; });
23
23
  export var ModalCloseIcon = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n"], ["\n height: 0;\n display: flex;\n flex-direction: row-reverse;\n"])));
24
24
  export var Modal = function (_a) {
25
- var _b = _a.isOpen, isOpen = _b === void 0 ? false : _b, _c = _a.onClose, onClose = _c === void 0 ? null : _c, children = _a.children, _d = _a.withCloseIcon, withCloseIcon = _d === void 0 ? true : _d, _e = _a.withBackdropClose, withBackdropClose = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? "" : _f;
26
- return (_jsx(_Fragment, { children: isOpen && (_jsxs(Div, __assign({ className: className }, { children: [_jsx(ModalBackdrop, { onClick: withBackdropClose ? onClose : null }), _jsx(ModalContainer, { children: _jsxs(ModalWrapper, { children: [withCloseIcon && (_jsx(ModalCloseIcon, { children: _jsx(Div, __assign({ clickable: true, mt: -10, mr: -20, onClick: onClose }, { children: closeIcon })) })), _jsx(Div, { children: children })] }) })] }))) }));
25
+ var _b = _a.isOpen, isOpen = _b === void 0 ? false : _b, _c = _a.onClose, onClose = _c === void 0 ? null : _c, children = _a.children, _d = _a.withCloseIcon, withCloseIcon = _d === void 0 ? true : _d, _e = _a.withBackdropClose, withBackdropClose = _e === void 0 ? true : _e, _f = _a.className, className = _f === void 0 ? "" : _f, testId = _a.testId;
26
+ return (_jsx(_Fragment, { children: isOpen && (_jsxs(Div, __assign({ className: className, "data-testid": testId }, { children: [_jsx(ModalBackdrop, { onClick: withBackdropClose ? onClose : null }), _jsx(ModalContainer, { children: _jsxs(ModalWrapper, { children: [withCloseIcon && (_jsx(ModalCloseIcon, { children: _jsx(Div, __assign({ clickable: true, mt: -10, mr: -20, onClick: onClose }, { children: closeIcon })) })), _jsx(Div, { children: children })] }) })] }))) }));
27
27
  };
28
28
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -57,7 +57,7 @@ export var SortDirection;
57
57
  var TableContext = createContext({});
58
58
  export var TableDataProvider = function (_a) {
59
59
  var children = _a.children, dataUrl = _a.dataUrl, _b = _a.query, query = _b === void 0 ? "" : _b, _c = _a.filters, filters = _c === void 0 ? null : _c, _d = _a.defaultSortBy, defaultSortBy = _d === void 0 ? { field: null, direction: null } : _d, _e = _a.onGetData, onGetData = _e === void 0 ? null : _e;
60
- var _f = useState(null), data = _f[0], setData = _f[1];
60
+ var _f = useState([]), data = _f[0], setData = _f[1];
61
61
  var _g = useState(false), isLoading = _g[0], setLoading = _g[1];
62
62
  var _h = useState(1), currentPage = _h[0], setCurrentPage = _h[1];
63
63
  var _j = useState(null), totalPages = _j[0], setTotalPages = _j[1];
@@ -65,12 +65,15 @@ export var TableDataProvider = function (_a) {
65
65
  var _l = useState(0), totalCount = _l[0], setTotalCount = _l[1];
66
66
  var _m = useState(7), pageSize = _m[0], setPageSize = _m[1];
67
67
  var getData = function () { return __awaiter(void 0, void 0, void 0, function () {
68
- var payload;
69
- var _a, _b;
70
- return __generator(this, function (_c) {
71
- switch (_c.label) {
68
+ var payload, e_1;
69
+ var _a, _b, _c;
70
+ return __generator(this, function (_d) {
71
+ switch (_d.label) {
72
72
  case 0:
73
73
  setLoading(true);
74
+ _d.label = 1;
75
+ case 1:
76
+ _d.trys.push([1, 3, , 4]);
74
77
  return [4 /*yield*/, api.get(dataUrl, {
75
78
  params: {
76
79
  query: query,
@@ -81,33 +84,31 @@ export var TableDataProvider = function (_a) {
81
84
  filters: filters || {},
82
85
  },
83
86
  })];
84
- case 1:
85
- payload = (_c.sent()).data;
87
+ case 2:
88
+ payload = (_d.sent()).data;
89
+ if (((_a = payload === null || payload === void 0 ? void 0 : payload.data) === null || _a === void 0 ? void 0 : _a.length) === 0 && currentPage > 1) {
90
+ setCurrentPage(function (oldValue) { return oldValue - 1; });
91
+ return [2 /*return*/];
92
+ }
86
93
  if (onGetData) {
87
94
  onGetData(payload);
88
95
  }
89
96
  setData(payload.data);
90
- setTotalPages((_a = payload.pagination) === null || _a === void 0 ? void 0 : _a.total_pages);
91
- setTotalCount((_b = payload.pagination) === null || _b === void 0 ? void 0 : _b.total_count);
97
+ setTotalPages((_b = payload.pagination) === null || _b === void 0 ? void 0 : _b.total_pages);
98
+ setTotalCount((_c = payload.pagination) === null || _c === void 0 ? void 0 : _c.total_count);
99
+ setLoading(false);
100
+ return [3 /*break*/, 4];
101
+ case 3:
102
+ e_1 = _d.sent();
92
103
  setLoading(false);
93
- return [2 /*return*/];
104
+ return [3 /*break*/, 4];
105
+ case 4: return [2 /*return*/];
94
106
  }
95
107
  });
96
108
  }); };
97
- var resetPagination = function () {
98
- setCurrentPage(null);
99
- setTimeout(function () {
100
- setCurrentPage(1);
101
- }, 10);
102
- };
103
- useEffect(function () {
104
- resetPagination();
105
- }, [query, dataUrl, sortBy, filters, pageSize]);
106
109
  useEffect(function () {
107
- if (currentPage) {
108
- getData();
109
- }
110
- }, [currentPage]);
110
+ getData();
111
+ }, [query, dataUrl, sortBy, filters, pageSize, currentPage]);
111
112
  var value = {
112
113
  data: data,
113
114
  isLoading: isLoading,
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { TableViewProps } from ".";
3
3
  import { DivCSSProps } from "../../../styled/utils";
4
4
  import { SortDirection } from "../TableDataProvider";
@@ -15,6 +15,7 @@ export declare const TableHeadersContent: import("styled-components").StyledComp
15
15
  declare type TableHeadersProps = Pick<TableViewProps, "columns" | "sortBy" | "setSortBy" | "rowHeight" | "rowWidth"> & {
16
16
  scrollLeft: number;
17
17
  height: number;
18
+ containerRef: React.MutableRefObject<HTMLDivElement>;
18
19
  } & DivCSSProps;
19
- export declare const TableHeaders: ({ scrollLeft, columns, sortBy, setSortBy, rowHeight, rowWidth, height, ...props }: TableHeadersProps) => JSX.Element;
20
+ export declare const TableHeaders: ({ scrollLeft, columns, sortBy, rowHeight, containerRef, setSortBy, rowWidth, height, ...props }: TableHeadersProps) => JSX.Element;
20
21
  export {};
@@ -25,7 +25,6 @@ var __rest = (this && this.__rest) || function (s, e) {
25
25
  return t;
26
26
  };
27
27
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
28
- import { useRef } from "react";
29
28
  import styled, { css } from "styled-components";
30
29
  import { Div } from "../../../styled/utils";
31
30
  import { chevronDown as chevronDownIcon } from "../icons";
@@ -40,10 +39,7 @@ export var SortIndicator = styled(Div)(templateObject_4 || (templateObject_4 = _
40
39
  export var TableHeadersContainer = styled(Div)(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n overflow-x: hidden;\n"], ["\n overflow-x: hidden;\n"])));
41
40
  export var TableHeadersContent = styled(Div)(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n /* table scrollbar offset */\n border-right: solid 10px ", ";\n"], ["\n /* table scrollbar offset */\n border-right: solid 10px ", ";\n"])), function (p) { return p.theme.colors.tableHeader; });
42
41
  export var TableHeaders = function (_a) {
43
- var _b = _a.scrollLeft, scrollLeft = _b === void 0 ? 0 : _b, columns = _a.columns, sortBy = _a.sortBy, setSortBy = _a.setSortBy, rowHeight = _a.rowHeight, _c = _a.rowWidth, rowWidth = _c === void 0 ? 1 : _c, _d = _a.height, height = _d === void 0 ? defaultTableHeaderHeightPx : _d, props = __rest(_a, ["scrollLeft", "columns", "sortBy", "setSortBy", "rowHeight", "rowWidth", "height"]);
44
- var containerRef = useRef(null);
45
- if (containerRef.current)
46
- containerRef.current.scrollLeft = scrollLeft;
42
+ 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, props = __rest(_a, ["scrollLeft", "columns", "sortBy", "rowHeight", "containerRef", "setSortBy", "rowWidth", "height"]);
47
43
  return (_jsx(TableHeadersContainer, __assign({ ref: containerRef }, { children: _jsx(TableHeadersContent, __assign({ dflex: true, w: "".concat(100 * rowWidth, "%") }, { children: columns.map(function (column, index) {
48
44
  var header = column.header, Header = column.Header;
49
45
  var onHeaderClick = function () {
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import { TableViewProps } from ".";
3
3
  import { DivCSSProps } from "../../../styled/utils";
4
- export declare const Cell: (props: any) => JSX.Element;
4
+ export declare const Cell: React.MemoExoticComponent<(props: any) => JSX.Element>;
5
5
  declare type TableViewRowProps = {
6
6
  isHighlighted: boolean;
7
7
  isLast: boolean;
@@ -25,18 +25,15 @@ var __rest = (this && this.__rest) || function (s, e) {
25
25
  return t;
26
26
  };
27
27
  import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
28
- import { useMemo } from "react";
28
+ import React from "react";
29
+ import { areEqual } from "react-window";
29
30
  import styled, { css } from "styled-components";
30
31
  import { Div } from "../../../styled/utils";
31
32
  import { columnWidthPercentage, TableViewCellContainer } from "./common";
32
- export var Cell = function (props) {
33
- var row = props.row, children = props.children, cellProps = __rest(props, ["row", "children"]);
34
- return useMemo(function () { return (_jsx(TableViewCellContainer, __assign({}, cellProps, { children: children }))); },
35
- // using [row] with usememo optimizes table renders but disables react hotreloading
36
- // [row, children] enables hotreloading, missing tests for optimizations
37
- // should we use [row] instead of [row, children] for table optimization ?
38
- [row]);
39
- };
33
+ export var Cell = React.memo(function (props) {
34
+ var children = props.children, cellProps = __rest(props, ["children"]);
35
+ return (_jsx(TableViewCellContainer, __assign({}, cellProps, { children: children })));
36
+ }, areEqual);
40
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) {
41
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; });
42
39
  }, function (p) {
@@ -51,7 +48,7 @@ export var TableRow = function (_a) {
51
48
  ? function () {
52
49
  onRowClick(row);
53
50
  }
54
- : null, w: columnWidthPercentage(column, columns) }, { children: _jsx(_Fragment, { children: Content ? (_jsx(Content, __assign({}, row, { rowIndex: indexI }))) : (_jsx(Div, __assign({ truncateText: true }, { children: row[column.dataAccessor] || "-" }))) }) }), indexJ));
51
+ : null, w: columnWidthPercentage(column, columns) }, { children: Content ? (_jsx(Content, __assign({}, row, { rowIndex: indexI }))) : (_jsx(Div, __assign({ truncateText: true }, { children: row[column.dataAccessor] || "-" }))) }), indexJ));
55
52
  }) })) }));
56
53
  };
57
54
  var templateObject_1, templateObject_2, templateObject_3;
@@ -4,7 +4,6 @@ import { SortBy } from "../TableDataProvider";
4
4
  export * from "./common";
5
5
  export * from "./TableHeaders";
6
6
  export * from "./TableRow";
7
- export { TableView };
8
7
  declare type TableViewWrapperProps = {
9
8
  isLoading: boolean;
10
9
  };
@@ -38,4 +37,4 @@ export declare type TableViewProps = {
38
37
  onTableScroll?: (scrollTop: number) => void;
39
38
  onRowClick?: (row: any) => void;
40
39
  } & DivCSSProps;
41
- declare const TableView: ({ data, columns, pageSize, onRowClick, sortBy, isLoading, highlightFirstRow, setSortBy, rowWidth, onSectionRendered, tableHeadersHeight, rowHeight, h, onTableScroll, ...props }: TableViewProps) => JSX.Element;
40
+ export declare const TableView: React.MemoExoticComponent<({ data, columns, pageSize, onRowClick, sortBy, isLoading, highlightFirstRow, setSortBy, rowWidth, onSectionRendered, tableHeadersHeight, rowHeight, h, onTableScroll, ...props }: TableViewProps) => JSX.Element>;
@@ -25,8 +25,9 @@ var __rest = (this && this.__rest) || function (s, e) {
25
25
  return t;
26
26
  };
27
27
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
28
- import { useState } from "react";
29
- import { AutoSizer, Grid } from "react-virtualized";
28
+ import React, { useRef, useMemo, useCallback } from "react";
29
+ import { FixedSizeGrid as Grid, areEqual } from "react-window";
30
+ import AutoSizer from "react-virtualized-auto-sizer";
30
31
  import styled, { css } from "styled-components";
31
32
  import { Div } from "../../../styled/utils";
32
33
  import { Spinner } from "../../Spinner";
@@ -36,67 +37,73 @@ import { TableRow } from "./TableRow";
36
37
  export * from "./common";
37
38
  export * from "./TableHeaders";
38
39
  export * from "./TableRow";
39
- export { TableView };
40
40
  export var TableViewWrapper = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n border-radius: 8px;\n border: solid 1px ", ";\n overflow: hidden;\n\n // prevents clipped dropdowns\n .ReactVirtualized__Grid__innerScrollContainer {\n overflow: visible !important;\n }\n .ReactVirtualized__Table__row {\n overflow: visible !important;\n }\n\n // fix scrollbar layout issues on windows/macos\n .ReactVirtualized__Grid {\n ", ";\n }\n"], ["\n ", "\n border-radius: 8px;\n border: solid 1px ", ";\n overflow: hidden;\n\n // prevents clipped dropdowns\n .ReactVirtualized__Grid__innerScrollContainer {\n overflow: visible !important;\n }\n .ReactVirtualized__Table__row {\n overflow: visible !important;\n }\n\n // fix scrollbar layout issues on windows/macos\n .ReactVirtualized__Grid {\n ", ";\n }\n"])), function (p) {
41
41
  return p.isLoading && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n opacity: 0.5;\n "], ["\n opacity: 0.5;\n "])));
42
42
  }, function (p) { return p.theme.colors.gray300; }, function (p) { return p.theme.css.scrollbarDark; });
43
43
  var SpinnerWrapper = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n pointer-events: none;\n z-index: 100;\n"], ["\n pointer-events: none;\n z-index: 100;\n"])));
44
44
  var tableHeaderId = "tableHeaderId";
45
- var TableView = function (_a) {
45
+ var buildGridStyles = function (rowWidth) {
46
+ /* using style={{ willChange: "unset" }} is important for having items
47
+ like backdrops with position fixed inside of the table working as
48
+ expected. Required for dropdowns in cells */
49
+ var gridStyles = {
50
+ outline: "none",
51
+ willChange: "unset",
52
+ };
53
+ if (rowWidth === 1)
54
+ gridStyles = __assign(__assign({}, gridStyles), { overflowX: "hidden", overflowY: "auto" });
55
+ else if (rowWidth > 1)
56
+ gridStyles = __assign(__assign({}, gridStyles), { overflowX: "scroll" });
57
+ return gridStyles;
58
+ };
59
+ var Cell = React.memo(function (_a) {
60
+ var data = _a.data, rowIndex = _a.rowIndex, style = _a.style;
61
+ var items = data.items, onRowClick = data.onRowClick, columns = data.columns, highlightFirstRow = data.highlightFirstRow, rowHeight = data.rowHeight;
62
+ var item = items[rowIndex];
63
+ 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 }) })));
64
+ }, areEqual);
65
+ export var TableView = React.memo(function (_a) {
46
66
  var data = _a.data, columns = _a.columns, pageSize = _a.pageSize, _b = _a.onRowClick, onRowClick = _b === void 0 ? null : _b, _c = _a.sortBy, sortBy = _c === void 0 ? { field: null, direction: null } : _c, _d = _a.isLoading, isLoading = _d === void 0 ? false : _d, _e = _a.highlightFirstRow, highlightFirstRow = _e === void 0 ? false : _e, _f = _a.setSortBy, setSortBy = _f === void 0 ? null : _f, _g = _a.rowWidth, rowWidth = _g === void 0 ? 1 : _g, onSectionRendered = _a.onSectionRendered, _h = _a.tableHeadersHeight, tableHeadersHeight = _h === void 0 ? defaultTableHeaderHeightPx : _h, _j = _a.rowHeight, rowHeight = _j === void 0 ? defaultTableRowHeightPx : _j, _k = _a.h, h = _k === void 0 ? 500 : _k, _l = _a.onTableScroll, onTableScroll = _l === void 0 ? null : _l, props = __rest(_a, ["data", "columns", "pageSize", "onRowClick", "sortBy", "isLoading", "highlightFirstRow", "setSortBy", "rowWidth", "onSectionRendered", "tableHeadersHeight", "rowHeight", "h", "onTableScroll"]);
47
- var _m = useState(0), scrollLeft = _m[0], setScrollLeft = _m[1];
48
67
  /*
49
- multiply the rowWidth by 0.95 to let the user know they can scroll
50
- horizontally (will display partial column on the right)
51
- */
68
+ multiply the rowWidth by 0.95 to let the user know they can scroll
69
+ horizontally (will display partial column on the right)
70
+ */
52
71
  var _rowWidth = rowWidth > 1 ? rowWidth * 0.95 : rowWidth;
53
- var tableHeadersUI = (_jsx(_Fragment, { children: data.length > 0 && (_jsx(TableHeaders, __assign({ id: tableHeaderId, height: tableHeadersHeight }, {
54
- rowHeight: rowHeight,
55
- rowWidth: _rowWidth,
56
- scrollLeft: scrollLeft,
57
- columns: columns,
58
- sortBy: sortBy,
59
- setSortBy: setSortBy,
60
- }))) }));
72
+ var headerContainerRef = useRef();
73
+ var tableHeadersUI = data.length > 0 && (_jsx(TableHeaders, { id: tableHeaderId, containerRef: headerContainerRef, height: tableHeadersHeight, rowHeight: rowHeight, rowWidth: _rowWidth, scrollLeft: 0, columns: columns, sortBy: sortBy, setSortBy: setSortBy }));
61
74
  var onScroll = function (_a) {
62
- var scrollTop = _a.scrollTop, _scrollLeft = _a.scrollLeft;
63
- setScrollLeft(_scrollLeft);
64
- if (onTableScroll)
75
+ var scrollTop = _a.scrollTop, scrollLeft = _a.scrollLeft;
76
+ if (headerContainerRef.current) {
77
+ headerContainerRef.current.scrollLeft = scrollLeft;
78
+ }
79
+ if (onTableScroll) {
65
80
  onTableScroll(scrollTop);
81
+ }
66
82
  };
67
- var _onSectionRendered = function (_a) {
68
- var rowStartIndex = _a.rowStartIndex, rowStopIndex = _a.rowStopIndex;
69
- if (onSectionRendered)
83
+ var onItemsRendered = useCallback(function (_a) {
84
+ var rowStartIndex = _a.overscanRowStartIndex, rowStopIndex = _a.overscanRowStopIndex;
85
+ if (onSectionRendered) {
70
86
  onSectionRendered({
71
87
  rowStartIndex: rowStartIndex,
72
88
  rowStopIndex: rowStopIndex,
73
89
  data: data.slice(rowStartIndex, rowStopIndex + 1),
74
90
  });
75
- };
76
- var rowRenderer = function (_a) {
77
- var rowIndex = _a.rowIndex, key = _a.key, style = _a.style;
78
- return (_jsx(Div, __assign({ style: style }, { children: _jsx(TableRow, __assign({}, {
79
- columns: columns,
80
- onRowClick: onRowClick,
81
- highlightFirstRow: highlightFirstRow,
82
- }, { h: rowHeight, row: data[rowIndex], indexI: rowIndex, isLast: rowIndex === data.length - 1, pRelative: true })) }), key));
83
- };
91
+ }
92
+ }, [data, onSectionRendered]);
84
93
  var loadingUI = (_jsx(_Fragment, { children: isLoading && (_jsx(SpinnerWrapper, __assign({ pRelative: true }, { children: _jsx(Div, __assign({ w100: true, h100: true, centered: true, h: 400, pAbsolute: true }, { children: _jsx(Spinner, {}) })) }))) }));
85
- var tableHeight = pageSize ? pageSize * rowHeight + tableHeadersHeight : h;
94
+ var tableHeight = pageSize
95
+ ? pageSize * rowHeight + tableHeadersHeight
96
+ : h;
97
+ var itemData = useMemo(function () { return ({
98
+ items: data,
99
+ onRowClick: onRowClick,
100
+ columns: columns,
101
+ highlightFirstRow: highlightFirstRow,
102
+ rowHeight: rowHeight,
103
+ }); }, [data, onRowClick, columns, highlightFirstRow, rowHeight]);
86
104
  return (_jsxs(TableViewWrapper, __assign({}, { isLoading: isLoading }, { h: tableHeight }, props, { children: [tableHeadersUI, loadingUI, _jsx(AutoSizer, { children: function (_a) {
87
105
  var width = _a.width, height = _a.height;
88
- /* using style={{ willChange: "unset" }} is important for having items
89
- like backdrops with position fixed inside of the table working as
90
- expected. Required for dropdowns in cells */
91
- var gridStyles = {
92
- outline: "none",
93
- willChange: "unset",
94
- };
95
- if (_rowWidth === 1)
96
- gridStyles = __assign(__assign({}, gridStyles), { overflowX: "hidden", overflowY: "auto" });
97
- else if (_rowWidth > 1)
98
- gridStyles = __assign(__assign({}, gridStyles), { overflowX: "scroll" });
99
- return (_jsx(Grid, { scrollLeft: scrollLeft, style: gridStyles, width: width, columnCount: 1, onSectionRendered: _onSectionRendered, onScroll: onScroll, columnWidth: Math.floor(width * _rowWidth), height: height - tableHeadersHeight, rowHeight: rowHeight, cellRenderer: rowRenderer, rowCount: data.length }));
106
+ return (_jsx(Grid, __assign({ style: buildGridStyles(_rowWidth), width: width, columnCount: 1, itemData: itemData, onItemsRendered: onItemsRendered, onScroll: onScroll, columnWidth: Math.floor(width * _rowWidth), height: height - tableHeadersHeight, rowHeight: rowHeight, rowCount: data.length }, { children: Cell })));
100
107
  } })] })));
101
- };
108
+ }, areEqual);
102
109
  var templateObject_1, templateObject_2, templateObject_3;
@@ -8,6 +8,7 @@ export declare const TooltipContent: import("styled-components").StyledComponent
8
8
  declare type TooltipProps = {
9
9
  tooltip: JSX.Element | string;
10
10
  placement?: Placement;
11
+ isDisabled?: boolean;
11
12
  } & DivCSSProps;
12
13
  export declare const TooltipProvider: React.FC<TooltipProps>;
13
14
  export {};
@@ -31,11 +31,11 @@ import styled from "styled-components";
31
31
  import { Div } from "../styled/utils";
32
32
  export var TooltipContent = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", ";\n color: ", ";\n background: ", ";\n border-radius: 4px;\n padding: 10px;\n pointer-events: none;\n z-index: 1000;\n"], ["\n ", ";\n color: ", ";\n background: ", ";\n border-radius: 4px;\n padding: 10px;\n pointer-events: none;\n z-index: 1000;\n"])), function (p) { return p.theme.css.body4; }, function (p) { return p.theme.colors.white; }, function (p) { return p.theme.colors.black; });
33
33
  export var TooltipProvider = function (_a) {
34
- var tooltip = _a.tooltip, _b = _a.placement, placement = _b === void 0 ? "top-start" : _b, children = _a.children, props = __rest(_a, ["tooltip", "placement", "children"]);
35
- var _c = useState(false), isDisplayingTooltip = _c[0], setIsDisplayingTooltip = _c[1];
36
- var _d = useState(null), referenceElement = _d[0], setReferenceElement = _d[1];
37
- var _e = useState(null), popperElement = _e[0], setPopperElement = _e[1];
38
- var _f = usePopper(referenceElement, popperElement, {
34
+ var tooltip = _a.tooltip, children = _a.children, _b = _a.placement, placement = _b === void 0 ? "top-start" : _b, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, props = __rest(_a, ["tooltip", "children", "placement", "isDisabled"]);
35
+ var _d = useState(false), isDisplayingTooltip = _d[0], setIsDisplayingTooltip = _d[1];
36
+ var _e = useState(null), referenceElement = _e[0], setReferenceElement = _e[1];
37
+ var _f = useState(null), popperElement = _f[0], setPopperElement = _f[1];
38
+ var _g = usePopper(referenceElement, popperElement, {
39
39
  placement: placement,
40
40
  modifiers: [
41
41
  {
@@ -45,11 +45,11 @@ export var TooltipProvider = function (_a) {
45
45
  },
46
46
  },
47
47
  ],
48
- }), styles = _f.styles, attributes = _f.attributes, update = _f.update;
48
+ }), styles = _g.styles, attributes = _g.attributes, update = _g.update;
49
49
  useEffect(function () {
50
50
  if (update)
51
51
  update();
52
52
  }, [isDisplayingTooltip]);
53
- return (_jsxs(Div, __assign({ dim: "100%", ref: setReferenceElement, onMouseOver: function () { return setIsDisplayingTooltip(true); }, onMouseOut: function () { return setIsDisplayingTooltip(false); } }, props, { children: [children, isDisplayingTooltip && tooltip && (_jsx(TooltipContent, __assign({ ref: setPopperElement, style: styles.popper }, attributes.popper, { children: tooltip })))] })));
53
+ return (_jsxs(Div, __assign({ dim: "100%", ref: setReferenceElement, onMouseOver: function () { return isDisabled || setIsDisplayingTooltip(true); }, onMouseOut: function () { return isDisabled || setIsDisplayingTooltip(false); } }, props, { children: [children, isDisplayingTooltip && tooltip && (_jsx(TooltipContent, __assign({ ref: setPopperElement, style: styles.popper }, attributes.popper, { children: tooltip })))] })));
54
54
  };
55
55
  var templateObject_1;
@@ -51,10 +51,10 @@ export var ButtonWrapper = styled(Div)(templateObject_10 || (templateObject_10 =
51
51
  export var ButtonElementWrapper = styled(HTMLButton)(templateObject_11 || (templateObject_11 = __makeTemplateObject(["\n ", ";\n"], ["\n ", ";\n"])), commonButtonStyle);
52
52
  export var Button = function (_a) {
53
53
  var _b = _a.onClick, onClick = _b === void 0 ? null : _b, _c = _a.isDisabled, isDisabled = _c === void 0 ? false : _c, _d = _a.variant, variant = _d === void 0 ? "primary" : _d, _e = _a.isSmall, isSmall = _e === void 0 ? false : _e, children = _a.children, _f = _a.isButtonElement, isButtonElement = _f === void 0 ? false : _f, props = __rest(_a, ["onClick", "isDisabled", "variant", "isSmall", "children", "isButtonElement"]);
54
- return (_jsx(_Fragment, { children: isButtonElement ? (_jsx(ButtonElementWrapper, __assign({ w100: true, isSmall: isSmall, isDisabled: isDisabled, variant: variant, type: "submit" }, props, { children: children }))) : (_jsx(ButtonWrapper, __assign({ w100: true, isSmall: isSmall, onKeyDown: function (_a) {
54
+ return (_jsx(_Fragment, { children: isButtonElement ? (_jsx(ButtonElementWrapper, __assign({ w100: true, isSmall: isSmall, isDisabled: isDisabled, disabled: isDisabled, variant: variant, type: "submit" }, props, { children: children }))) : (_jsx(ButtonWrapper, __assign({ w100: true, isSmall: isSmall, onKeyDown: function (_a) {
55
55
  var code = _a.code;
56
56
  if (code === "Space" || (code === "Enter" && onClick))
57
57
  onClick();
58
- }, tabIndex: 0 }, __assign({ variant: variant, isDisabled: isDisabled, onClick: onClick }, props), { children: _jsx(_Fragment, { children: children }) }))) }));
58
+ }, tabIndex: 0 }, __assign({ variant: variant, isDisabled: isDisabled, onClick: onClick, disabled: isDisabled }, props), { children: _jsx(_Fragment, { children: children }) }))) }));
59
59
  };
60
60
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9, templateObject_10, templateObject_11;
@@ -8,7 +8,7 @@ export declare const MenuItem: import("styled-components").StyledComponent<"div"
8
8
  declare type LabelProps = {
9
9
  isDisabled?: boolean;
10
10
  };
11
- export declare const FormInputLabel: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, CSSProps & LabelProps, never>;
11
+ export declare const FormInputLabel: import("styled-components").StyledComponent<"label", import("styled-components").DefaultTheme, CSSProps & LabelProps, never>;
12
12
  export declare const InfoDivider: ({ msg }: {
13
13
  msg: any;
14
14
  }) => JSX.Element;
@@ -15,13 +15,13 @@ var __assign = (this && this.__assign) || function () {
15
15
  };
16
16
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
17
  import styled, { css } from "styled-components";
18
- import { Div, themeProps } from "../styled/utils";
18
+ import { Div, themeProps, Label } from "../styled/utils";
19
19
  import { colors } from "../styled/theme/colorPalette";
20
20
  export var fuseImporterId = "fuse-importer-root";
21
21
  export var MenuItem = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n background: ", ";\n color: ", ";\n ", "\n ", ";\n ", "\n :hover {\n background: ", ";\n cursor: pointer;\n }\n"], ["\n border-radius: 8px;\n padding: 12px 16px;\n display: flex;\n align-items: center;\n background: ", ";\n color: ", ";\n ", "\n ", ";\n ", "\n :hover {\n background: ", ";\n cursor: pointer;\n }\n"])), function (props) { return props.theme.colors.white; }, function (props) { return props.color || props.theme.colors.text; }, function (props) { return props.theme.css.body1; }, function (p) { return p.theme.css.selectNone; }, function (p) {
22
22
  return p.isSelected && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.blue500; });
23
23
  }, function (props) { return props.theme.colors.blue100; });
24
- export var FormInputLabel = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n color: ", ";\n ", "\n"], ["\n ", ";\n color: ", ";\n ", "\n"])), function (props) { return props.theme.css.body4; }, function (props) { return props.theme.colors.text; }, function (props) {
24
+ export var FormInputLabel = styled(Label)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n ", ";\n color: ", ";\n ", "\n display: block;\n"], ["\n ", ";\n color: ", ";\n ", "\n display: block;\n"])), function (props) { return props.theme.css.body4; }, function (props) { return props.theme.colors.text; }, function (props) {
25
25
  return props.isDisabled && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (props) { return props.theme.colors.gray500; });
26
26
  });
27
27
  export var InfoDivider = function (_a) {