fuse-importer 0.27.0 → 0.30.0

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 (183) hide show
  1. package/lib/esm/Importer/ImporterWithContext.d.ts +2 -0
  2. package/lib/esm/Importer/ImporterWithContext.js +51 -13
  3. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/EnumFieldMatcher/index.js +2 -2
  4. package/lib/esm/Importer/Matcher/EnumFieldsMatchers/index.js +4 -3
  5. package/lib/esm/Importer/Matcher/HeaderMatcher/index.js +14 -9
  6. package/lib/esm/Importer/Matcher/index.js +0 -11
  7. package/lib/esm/Importer/PreviewFirstTime.js +1 -1
  8. package/lib/esm/Importer/Review/AppResponseModal.js +2 -2
  9. package/lib/esm/Importer/Review/ReviewContextProvider.d.ts +8 -6
  10. package/lib/esm/Importer/Review/ReviewContextProvider.js +72 -195
  11. package/lib/esm/Importer/Review/ReviewWithContext.js +2 -2
  12. package/lib/esm/Importer/Stepper/StepperSubmitModal.d.ts +2 -1
  13. package/lib/esm/Importer/Stepper/StepperSubmitModal.js +4 -2
  14. package/lib/esm/Importer/Stepper/UnmatchedHeadersModal.js +1 -1
  15. package/lib/esm/Importer/Stepper/index.js +36 -13
  16. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.d.ts +2 -1
  17. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterDropzone.js +15 -64
  18. package/lib/esm/Importer/Uploader/DragAndDropImporter/ImporterSectionHeader/index.js +2 -2
  19. package/lib/esm/Importer/Uploader/DragAndDropImporter/index.js +11 -3
  20. package/lib/esm/Importer/Uploader/HeadersPreview.js +1 -1
  21. package/lib/esm/Importer/common/Spreadsheet/DataSetContextProvider/index.d.ts +16 -0
  22. package/lib/esm/Importer/common/Spreadsheet/DataSetContextProvider/index.js +63 -0
  23. package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.d.ts +19 -0
  24. package/lib/esm/Importer/common/Spreadsheet/DuplicateDataContextProvider/index.js +155 -0
  25. package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.d.ts +29 -0
  26. package/lib/esm/Importer/common/Spreadsheet/FilteredDataContextProvider/index.js +150 -0
  27. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.d.ts +6 -4
  28. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/filterMethods.js +38 -45
  29. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.d.ts +7 -0
  30. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/hashCalculators.js +152 -0
  31. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.d.ts +7 -30
  32. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/index.js +10 -141
  33. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.d.ts +5 -0
  34. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useBatchProcessing.js +81 -0
  35. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.d.ts +5 -0
  36. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useDataSetManipulation.js +119 -0
  37. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/useSpreadsheetFilter.d.ts +1 -1
  38. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.d.ts +1 -0
  39. package/lib/esm/Importer/common/Spreadsheet/SpreadsheetContextProvider/utils.js +8 -0
  40. package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.d.ts +31 -0
  41. package/lib/esm/Importer/common/Spreadsheet/ValidationContextProvider/index.js +324 -0
  42. package/lib/esm/Importer/common/Spreadsheet/common/index.js +18 -9
  43. package/lib/esm/Importer/common/Spreadsheet/common/types.d.ts +2 -3
  44. package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.d.ts +0 -2
  45. package/lib/esm/Importer/common/Spreadsheet/components/FieldHeader.js +26 -11
  46. package/lib/esm/Importer/common/Spreadsheet/components/FindAndReplace/index.d.ts +6 -0
  47. package/lib/esm/Importer/common/Spreadsheet/components/FindAndReplace/index.js +88 -0
  48. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetData.js +25 -17
  49. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowCheckboxes.js +48 -47
  50. package/lib/esm/Importer/common/Spreadsheet/components/SpreadsheetRowNumbers.js +3 -3
  51. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.d.ts +1 -0
  52. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpeadsheetAutocomplete.js +7 -3
  53. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.d.ts +3 -1
  54. package/lib/esm/Importer/common/Spreadsheet/components/fields/SpreadsheetInput.js +45 -11
  55. package/lib/esm/Importer/common/Spreadsheet/components/fields/index.d.ts +12 -5
  56. package/lib/esm/Importer/common/Spreadsheet/components/fields/index.js +81 -26
  57. package/lib/esm/Importer/common/Spreadsheet/components/fields/utils.d.ts +11 -0
  58. package/lib/esm/Importer/common/Spreadsheet/components/fields/utils.js +29 -0
  59. package/lib/esm/Importer/common/Spreadsheet/components/inputs/index.js +1 -2
  60. package/lib/esm/Importer/common/Spreadsheet/index.d.ts +0 -1
  61. package/lib/esm/Importer/common/Spreadsheet/index.js +1 -84
  62. package/lib/esm/Importer/common/Spreadsheet/styles.d.ts +1 -2
  63. package/lib/esm/Importer/common/Spreadsheet/styles.js +13 -1
  64. package/lib/esm/Importer/common/Spreadsheet/transformation/index.d.ts +2 -2
  65. package/lib/esm/Importer/common/Spreadsheet/transformation/index.js +35 -13
  66. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/dateTimeAutoformatUtils.d.ts +5 -0
  67. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/dateTimeAutoformatUtils.js +231 -0
  68. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/index.d.ts +18 -0
  69. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators/index.js +179 -0
  70. package/lib/esm/Importer/common/Spreadsheet/useFieldSorting.d.ts +5 -0
  71. package/lib/esm/Importer/common/Spreadsheet/useFieldSorting.js +81 -0
  72. package/lib/esm/Importer/common/Spreadsheet/validation/index.d.ts +5 -3
  73. package/lib/esm/Importer/common/Spreadsheet/validation/index.js +13 -17
  74. package/lib/esm/Importer/common/Spreadsheet/validation/validators.d.ts +3 -2
  75. package/lib/esm/Importer/common/Spreadsheet/validation/validators.js +23 -7
  76. package/lib/esm/Importer/common/theme.d.ts +1 -0
  77. package/lib/esm/Importer/contexts/ImporterContextProvider.d.ts +13 -4
  78. package/lib/esm/Importer/contexts/ImporterContextProvider.js +150 -21
  79. package/lib/esm/Importer/data/index.d.ts +7 -3
  80. package/lib/esm/Importer/data/index.js +49 -20
  81. package/lib/esm/Importer/hooks/useExportDataToFile.d.ts +5 -0
  82. package/lib/esm/Importer/hooks/useExportDataToFile.js +54 -0
  83. package/lib/esm/Importer/hooks/useSubmitToServer.d.ts +7 -0
  84. package/lib/esm/Importer/hooks/useSubmitToServer.js +214 -0
  85. package/lib/esm/Importer/index.d.ts +4 -3
  86. package/lib/esm/Importer/index.js +2 -2
  87. package/lib/esm/common/CircleSpinner.d.ts +1 -0
  88. package/lib/esm/common/CircleSpinner.js +13 -0
  89. package/lib/esm/common/ConfirmationModal.js +1 -1
  90. package/lib/esm/common/EventManagerContextProvider/index.d.ts +22 -0
  91. package/lib/esm/common/EventManagerContextProvider/index.js +38 -0
  92. package/lib/esm/common/FileUploadDropzone/ImporterDropzone.d.ts +16 -0
  93. package/lib/esm/common/FileUploadDropzone/ImporterDropzone.js +143 -0
  94. package/lib/esm/common/FileUploadDropzone/index.d.ts +1 -0
  95. package/lib/esm/common/FileUploadDropzone/index.js +1 -0
  96. package/lib/esm/common/Modal.js +2 -2
  97. package/lib/esm/common/Table/TableActions/CustomActions/CustomActions.d.ts +1 -0
  98. package/lib/esm/common/Table/TableActions/CustomActions/CustomActions.js +150 -0
  99. package/lib/esm/common/Table/TableActions/CustomActions/index.d.ts +1 -0
  100. package/lib/esm/common/Table/TableActions/CustomActions/index.js +1 -0
  101. package/lib/esm/common/Table/TableActions/DeleteSelectedRows.js +25 -8
  102. package/lib/esm/common/Table/TableActions/ExportData.js +5 -3
  103. package/lib/esm/common/Table/TableActions/FilterByErrors/FilterByErrors.js +41 -10
  104. package/lib/esm/common/Table/TableActions/RowFilters.js +63 -11
  105. package/lib/esm/common/Table/TableActions/SearchRows.js +28 -17
  106. package/lib/esm/common/Table/TableActions/TableActions.js +15 -4
  107. package/lib/esm/common/Table/TableActions/TableActions.styles.d.ts +1 -0
  108. package/lib/esm/common/Table/TableActions/TableActions.styles.js +4 -3
  109. package/lib/esm/common/Table/TableActions/TransformedRecordsCount.d.ts +6 -0
  110. package/lib/esm/common/Table/TableActions/TransformedRecordsCount.js +71 -0
  111. package/lib/esm/common/Table/TableActions/ValidationProgress.d.ts +2 -0
  112. package/lib/esm/common/Table/TableActions/ValidationProgress.js +22 -0
  113. package/lib/esm/common/Table/TableActions/icons.d.ts +3 -0
  114. package/lib/esm/common/Table/TableActions/icons.js +3 -0
  115. package/lib/esm/common/Table/TableActions/useFindAndReplace.d.ts +5 -0
  116. package/lib/esm/common/Table/TableActions/useFindAndReplace.js +45 -0
  117. package/lib/esm/common/Table/TableView/TableRows/TableRow.d.ts +1 -1
  118. package/lib/esm/common/Table/TableView/TableRows/TableRow.js +3 -3
  119. package/lib/esm/common/Table/TableView/TableRows/index.js +21 -6
  120. package/lib/esm/common/Table/TableView/index.d.ts +1 -1
  121. package/lib/esm/common/Table/TableView/index.js +7 -16
  122. package/lib/esm/common/Table/TableView/types.d.ts +9 -9
  123. package/lib/esm/common/Table/index.d.ts +2 -1
  124. package/lib/esm/common/Table/index.js +2 -2
  125. package/lib/esm/common/Toast.d.ts +42 -3
  126. package/lib/esm/common/Toast.js +56 -18
  127. package/lib/esm/common/TooltipProvider.d.ts +2 -0
  128. package/lib/esm/common/TooltipProvider.js +12 -9
  129. package/lib/esm/common/buttons.d.ts +5 -1
  130. package/lib/esm/common/buttons.js +19 -13
  131. package/lib/esm/common/columnsTransformations.d.ts +1 -0
  132. package/lib/esm/common/columnsTransformations.js +10 -16
  133. package/lib/esm/common/columnsValidations.d.ts +0 -26
  134. package/lib/esm/common/columnsValidations.js +1 -31
  135. package/lib/esm/common/datePatterns.d.ts +26 -0
  136. package/lib/esm/common/datePatterns.js +327 -0
  137. package/lib/esm/common/icons/index.d.ts +4 -0
  138. package/lib/esm/common/icons/index.js +6 -2
  139. package/lib/esm/common/index.d.ts +2 -0
  140. package/lib/esm/common/index.js +2 -0
  141. package/lib/esm/common/inputs/Autocomplete.js +2 -2
  142. package/lib/esm/common/inputs/Checkbox.d.ts +2 -1
  143. package/lib/esm/common/inputs/Checkbox.js +9 -7
  144. package/lib/esm/common/inputs/SelectMenu.d.ts +2 -1
  145. package/lib/esm/common/inputs/SelectMenu.js +14 -3
  146. package/lib/esm/common/inputs/TextInput.js +1 -1
  147. package/lib/esm/index.d.ts +3 -1
  148. package/lib/esm/index.js +9 -2
  149. package/lib/esm/locales/de.d.ts +13 -1
  150. package/lib/esm/locales/de.js +14 -2
  151. package/lib/esm/locales/en.d.ts +26 -1
  152. package/lib/esm/locales/en.js +30 -5
  153. package/lib/esm/locales/es.d.ts +13 -1
  154. package/lib/esm/locales/es.js +14 -2
  155. package/lib/esm/locales/fr.d.ts +13 -1
  156. package/lib/esm/locales/fr.js +14 -2
  157. package/lib/esm/styled/theme/colorPalette.d.ts +2 -0
  158. package/lib/esm/styled/theme/colorPalette.js +1 -0
  159. package/lib/esm/styled/theme/index.d.ts +1 -0
  160. package/lib/esm/styled/theme/textCss.js +1 -1
  161. package/lib/esm/types.d.ts +48 -5
  162. package/lib/esm/types.js +0 -1
  163. package/lib/esm/utils/index.d.ts +1 -0
  164. package/lib/esm/utils/index.js +4 -0
  165. package/lib/main.js +24 -24
  166. package/lib/main.js.LICENSE.txt +2 -0
  167. package/package.json +8 -6
  168. package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.d.ts +0 -8
  169. package/lib/esm/Importer/Stepper/common/getEnumFieldValueMatchingsInitialValue.js +0 -33
  170. package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.d.ts +0 -5
  171. package/lib/esm/Importer/common/Spreadsheet/components/ValidationProgress.js +0 -19
  172. package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.d.ts +0 -3
  173. package/lib/esm/Importer/common/Spreadsheet/components/inputs/EmailInput.js +0 -14
  174. package/lib/esm/Importer/common/Spreadsheet/hooks.d.ts +0 -34
  175. package/lib/esm/Importer/common/Spreadsheet/hooks.js +0 -254
  176. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.d.ts +0 -8
  177. package/lib/esm/Importer/common/Spreadsheet/transformation/transformators.js +0 -106
  178. package/lib/esm/common/Table/TableActions/FilterByErrors/functions.d.ts +0 -11
  179. package/lib/esm/common/Table/TableActions/FilterByErrors/functions.js +0 -35
  180. package/lib/esm/common/Table/TableActions/hooks.d.ts +0 -18
  181. package/lib/esm/common/Table/TableActions/hooks.js +0 -41
  182. package/lib/esm/common/Table/TableView/CustomScrollbar.d.ts +0 -2
  183. package/lib/esm/common/Table/TableView/CustomScrollbar.js +0 -34
@@ -23,31 +23,36 @@ var __rest = (this && this.__rest) || function (s, e) {
23
23
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
24
  import React, { useCallback, useEffect, useMemo, useRef } from "react";
25
25
  import { areEqual } from "react-window";
26
+ import { useImporterContext } from "../../../../Importer/contexts/ImporterContextProvider";
27
+ import { TableActions } from "../../../../common/Table/TableActions";
26
28
  import { Div } from "../../../../styled/utils";
29
+ import useWindowDimensions from "../../../../utils/hooks/useWindowSize";
27
30
  import { getTableHeight } from "../../../common";
28
- import { spreadsheetHeaderHeightPx, spreadsheetRowHeightPx } from "../common";
31
+ import { useDataSetContext } from "../DataSetContextProvider";
32
+ import { useFilteredDataContext } from "../FilteredDataContextProvider";
29
33
  import { useSpreadsheetContext } from "../SpreadsheetContextProvider";
34
+ import { useValidationContext } from "../ValidationContextProvider";
35
+ import { spreadsheetHeaderHeightPx, spreadsheetRowHeightPx } from "../common";
30
36
  import * as S from "../styles";
31
37
  import { FieldHeader } from "./FieldHeader";
32
38
  import GlobalStyle from "./GlobalStyle";
33
- import { inputTypes } from "./inputs";
34
39
  import { SpreadsheetRowCheckboxes } from "./SpreadsheetRowCheckboxes";
35
- import ValidationProgress from "./ValidationProgress";
36
- import { TableActions } from "../../../../common/Table/TableActions";
37
- import { useImporterContext } from "../../../../Importer/contexts/ImporterContextProvider";
38
- import useWindowDimensions from "../../../../utils/hooks/useWindowSize";
40
+ import { inputTypes } from "./inputs";
39
41
  var getItemKey = function (record) { return record._meta.id; };
40
42
  var SpreadsheetData = function (props) {
41
- var _a = useSpreadsheetContext(), fields = _a.fields, data = _a.data, isLoading = _a.isLoading, isReadOnly = _a.isReadOnly, totalErrors = _a.totalErrors, validationPercentage = _a.validationPercentage, setSortByFieldErrors = _a.setSortByFieldErrors, options = _a.options, setSortByFieldWarnings = _a.setSortByFieldWarnings, selectedRows = _a.selectedRows, setSelectedRows = _a.setSelectedRows, checkboxColumnWidth = _a.checkboxColumnWidth, isFiltering = _a.isFiltering;
43
+ var _a = useSpreadsheetContext(), fields = _a.fields, filteredDataIds = _a.filteredDataIds, isReadOnly = _a.isReadOnly, options = _a.options, selectedRows = _a.selectedRows, setSelectedRows = _a.setSelectedRows, checkboxColumnWidth = _a.checkboxColumnWidth;
44
+ var _b = useFilteredDataContext(), isFiltering = _b.isFiltering, handleSortByFieldErrors = _b.handleSortByFieldErrors;
45
+ var validationPercentage = useValidationContext().validationPercentage;
46
+ var dataSet = useDataSetContext().dataSet;
42
47
  var currentStepIndex = useImporterContext().currentStepIndex;
43
48
  var isOnSmallScreens = useWindowDimensions().isOnSmallScreens;
44
49
  var canShowCheckboxOnCheckboxRowHover = currentStepIndex === 2;
45
50
  var rowNumbersGridRef = useRef();
46
51
  var rowCheckboxesGridRef = useRef();
47
52
  useEffect(function () {
48
- if (data.length > 0 && options.withSingleRowSelect)
49
- setSelectedRows([data === null || data === void 0 ? void 0 : data[0]._meta.id]);
50
- }, [options.withSingleRowSelect]);
53
+ if (filteredDataIds.length > 0 && options.withSingleRowSelect)
54
+ setSelectedRows([filteredDataIds === null || filteredDataIds === void 0 ? void 0 : filteredDataIds[0]]);
55
+ }, [options.withSingleRowSelect, filteredDataIds]);
51
56
  var rowWidthScalingFactor = (function () {
52
57
  // Spreadsheet will display 6 columns on the viewport and a small portion of the
53
58
  // 7th column in the right side to let the user know they can scroll horizontally
@@ -74,14 +79,14 @@ var SpreadsheetData = function (props) {
74
79
  })();
75
80
  var columns = useMemo(function () {
76
81
  return fields.map(function (field) { return ({
77
- Header: function () { return (_jsx(FieldHeader, { field: field, sortByFieldErrors: setSortByFieldErrors, sortByFieldWarnings: setSortByFieldWarnings })); },
82
+ Header: function () { return _jsx(FieldHeader, { field: field }); },
78
83
  Content: function (record) {
79
84
  var Input = inputTypes[field.type];
80
- var rowIndex = record.rowIndex, recordProp = __rest(record, ["rowIndex"]);
81
- return (_jsx(Input, { id: "".concat(field.name, "-").concat(rowIndex), fieldType: field.type, name: field.name, options: field.options, record: recordProp }));
85
+ var rowIndex = record.rowIndex, columnWidth = record.columnWidth, recordProp = __rest(record, ["rowIndex", "columnWidth"]);
86
+ return (_jsx(Input, { id: "".concat(field.name, "-").concat(rowIndex), fieldType: field.type, name: field.name, options: field.options, record: recordProp, columnWidth: columnWidth }));
82
87
  },
83
88
  }); });
84
- }, [fields, setSortByFieldErrors]);
89
+ }, [fields, handleSortByFieldErrors, dataSet.current]);
85
90
  var onTableScroll = useCallback(function (scrollTop) {
86
91
  if (rowNumbersGridRef.current) {
87
92
  var grid = rowNumbersGridRef.current;
@@ -92,7 +97,7 @@ var SpreadsheetData = function (props) {
92
97
  grid.scrollTo({ scrollTop: scrollTop });
93
98
  }
94
99
  }, []);
95
- var dataLength = data === null || data === void 0 ? void 0 : data.length;
100
+ var dataLength = filteredDataIds.length;
96
101
  var spreadsheetHeight = useMemo(function () {
97
102
  return getTableHeight({
98
103
  headerHeight: spreadsheetHeaderHeightPx,
@@ -104,7 +109,10 @@ var SpreadsheetData = function (props) {
104
109
  }, [dataLength]);
105
110
  var showValidationProgress = !isReadOnly && validationPercentage < 100;
106
111
  var isReviewStep = currentStepIndex === 2;
107
- return (_jsxs(S.SpreadSheetData, __assign({ h100: true, flexColumn: true, className: props.className }, { 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) ||
108
- currentStepIndex === 0, dflex: true, h100: true }, { children: [(options === null || options === void 0 ? void 0 : options.showCheckboxColumn) && (_jsx(SpreadsheetRowCheckboxes, { gridRef: rowCheckboxesGridRef, height: spreadsheetHeight, isLoadingData: showValidationProgress })), _jsx(S.TableView, { tableHeadersHeight: spreadsheetHeaderHeightPx, rowHeight: spreadsheetRowHeightPx, h: null, rowWidthScalingFactor: rowWidthScalingFactor, data: data, columns: columns, isLoading: isLoading, onTableScroll: onTableScroll, getItemKey: getItemKey, checkboxColumnWidth: checkboxColumnWidth, isFiltering: isFiltering })] }))] }))] })));
112
+ return (_jsxs(S.SpreadSheetData, __assign({ h100: true, flexColumn: true, className: props.className }, { children: [_jsx(GlobalStyle, {}), _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) ||
113
+ currentStepIndex === 0, dflex: true, h100: true }, { children: [(options === null || options === void 0 ? void 0 : options.showCheckboxColumn) && (_jsx(SpreadsheetRowCheckboxes, { gridRef: rowCheckboxesGridRef, height: spreadsheetHeight, isLoadingData: showValidationProgress })), _jsx(S.TableView, { rowCount: filteredDataIds.length, tableHeadersHeight: spreadsheetHeaderHeightPx, rowHeight: spreadsheetRowHeightPx, h: null, rowWidthScalingFactor: rowWidthScalingFactor, dataRefIds: {
114
+ ref: dataSet,
115
+ ids: filteredDataIds,
116
+ }, columns: columns, onTableScroll: onTableScroll, getItemKey: getItemKey, checkboxColumnWidth: checkboxColumnWidth, isFiltering: isFiltering, shouldHideTable: dataLength === 0 })] }))] }))] })));
109
117
  };
110
118
  export default React.memo(SpreadsheetData, areEqual);
@@ -35,15 +35,18 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
35
35
  };
36
36
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
37
37
  import { useMemo } from "react";
38
+ import ReactVirtualizedAutoSizer from "react-virtualized-auto-sizer";
38
39
  import { FixedSizeGrid as Grid } from "react-window";
39
40
  import styled, { css } from "styled-components";
41
+ import { Checkbox } from "../../../../common/inputs/Checkbox";
40
42
  import { Div } from "../../../../styled/utils";
43
+ import { useReviewContext } from "../../../Review/ReviewContextProvider";
44
+ import { useImporterContext } from "../../../contexts/ImporterContextProvider";
45
+ import { useDataSetContext } from "../DataSetContextProvider";
46
+ import { useSpreadsheetContext } from "../SpreadsheetContextProvider";
47
+ import { rowIsEmpty } from "../SpreadsheetContextProvider/utils";
41
48
  import { spreadsheetRowHeightPx } from "../common";
42
49
  import { spreadsheetHeaderHeightPx } from "../common/index";
43
- import { useSpreadsheetContext } from "../SpreadsheetContextProvider";
44
- import { Checkbox } from "../../../../common/inputs/Checkbox";
45
- import { useImporterContext } from "../../../contexts/ImporterContextProvider";
46
- import ReactVirtualizedAutoSizer from "react-virtualized-auto-sizer";
47
50
  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
51
  var theme = _a.theme;
49
52
  return theme.colors.white50;
@@ -54,57 +57,58 @@ var gridStyles = {
54
57
  overflowY: "hidden",
55
58
  overflowX: "scroll",
56
59
  };
57
- var rowIsEmpty = function (row) {
58
- return Object.keys(row).every(function (key) {
59
- if (key === "_meta")
60
- return true;
61
- return !row[key];
62
- });
63
- };
64
60
  export var SpreadsheetRowCheckboxes = function (_a) {
65
61
  var height = _a.height, gridRef = _a.gridRef, isLoadingData = _a.isLoadingData, props = __rest(_a, ["height", "gridRef", "isLoadingData"]);
66
- var _b = useSpreadsheetContext(), data = _b.data, selectedRows = _b.selectedRows, options = _b.options, lastClickedIndexRef = _b.lastClickedIndexRef, setSelectedRows = _b.setSelectedRows, checkboxColumnWidth = _b.checkboxColumnWidth;
62
+ var _b = useSpreadsheetContext(), selectedRows = _b.selectedRows, options = _b.options, filteredDataIds = _b.filteredDataIds, lastClickedIndexRef = _b.lastClickedIndexRef, setSelectedRows = _b.setSelectedRows, checkboxColumnWidth = _b.checkboxColumnWidth;
63
+ var hasTransformedRecords = useReviewContext().hasTransformedRecords;
64
+ var getRecord = useDataSetContext().getRecord;
67
65
  var currentStepIndex = useImporterContext().currentStepIndex;
68
- var nonEmptyRows = useMemo(function () { return data.filter(function (row) { return !rowIsEmpty(row); }); }, [
69
- data,
70
- ]);
66
+ var nonEmptyRows = useMemo(function () { return filteredDataIds.filter(function (rowId) { return !rowIsEmpty(getRecord(rowId)); }); }, [filteredDataIds]);
71
67
  var isIndeterminate = selectedRows.length > 0 && selectedRows.length < nonEmptyRows.length;
72
68
  var handleRowSelect = function (checked, rowIndex, rowMetaId) {
73
- var _a, _b;
74
- var lastRowMetaId = data[data.length - 1]._meta.id;
75
- var isLastRow = rowMetaId === lastRowMetaId;
76
- var isLastRowAndEmpty = isLastRow && rowIsEmpty(data[rowIndex]);
69
+ var _a;
70
+ if (hasTransformedRecords)
71
+ return;
72
+ var recordId = filteredDataIds[rowIndex];
73
+ var record = getRecord(recordId);
74
+ var lastRowRecordId = filteredDataIds[filteredDataIds.length - 1];
75
+ var isLastRow = rowMetaId === lastRowRecordId;
76
+ var isLastRowAndEmpty = isLastRow && rowIsEmpty(getRecord(lastRowRecordId));
77
77
  if (isLastRowAndEmpty)
78
78
  return;
79
79
  if (options.withSingleRowSelect) {
80
- if (!rowIsEmpty(data[rowIndex]))
81
- setSelectedRows([(_b = (_a = data[rowIndex]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.id]);
80
+ if (!rowIsEmpty(record))
81
+ setSelectedRows([(_a = record === null || record === void 0 ? void 0 : record._meta) === null || _a === void 0 ? void 0 : _a.id]);
82
82
  return;
83
83
  }
84
84
  if (checked) {
85
- setSelectedRows(function (prev) { var _a, _b; return __spreadArray(__spreadArray([], prev, true), [(_b = (_a = data[rowIndex]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.id], false); });
85
+ setSelectedRows(function (prev) { var _a; return __spreadArray(__spreadArray([], prev, true), [(_a = record === null || record === void 0 ? void 0 : record._meta) === null || _a === void 0 ? void 0 : _a.id], false); });
86
86
  }
87
87
  else {
88
88
  setSelectedRows(function (prev) {
89
- return prev.filter(function (row) { var _a, _b; return row !== ((_b = (_a = data[rowIndex]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.id); });
89
+ return prev.filter(function (row) { var _a; return row !== ((_a = record === null || record === void 0 ? void 0 : record._meta) === null || _a === void 0 ? void 0 : _a.id); });
90
90
  });
91
91
  }
92
92
  lastClickedIndexRef.current = rowIndex;
93
93
  };
94
94
  var handleSelectMultipleRows = function (rowIndex) {
95
- var _a, _b;
96
- var clickedRowId = (_b = (_a = data[rowIndex]) === null || _a === void 0 ? void 0 : _a._meta) === null || _b === void 0 ? void 0 : _b.id;
95
+ var _a;
96
+ if (hasTransformedRecords)
97
+ return;
98
+ var rowId = filteredDataIds[rowIndex];
99
+ var record = getRecord(rowId);
100
+ var clickedRowId = (_a = record === null || record === void 0 ? void 0 : record._meta) === null || _a === void 0 ? void 0 : _a.id;
97
101
  if (selectedRows.includes(clickedRowId)) {
98
102
  // The clicked row is already selected, so we have to remove it
99
103
  var clickedRowIndex = selectedRows.indexOf(clickedRowId);
100
104
  var lastClickedIndex = lastClickedIndexRef.current;
101
105
  var rangeStartIndex_1 = Math.min(clickedRowIndex, lastClickedIndex);
102
106
  var rangeEndIndex_1 = Math.max(clickedRowIndex, lastClickedIndex);
103
- var lastRowId_1 = data[data.length - 1]._meta.id;
107
+ var lastRowId_1 = filteredDataIds[filteredDataIds.length - 1];
104
108
  var updatedSelectedRows = selectedRows.filter(function (value, index) {
105
109
  return index < rangeStartIndex_1 ||
106
110
  index > rangeEndIndex_1 ||
107
- (value === lastRowId_1 && rowIsEmpty(data[data.length - 1]));
111
+ (value === lastRowId_1 && rowIsEmpty(getRecord(lastRowId_1)));
108
112
  });
109
113
  setSelectedRows(updatedSelectedRows);
110
114
  }
@@ -112,14 +116,14 @@ export var SpreadsheetRowCheckboxes = function (_a) {
112
116
  // The clicked row is not selected, so we have to add it
113
117
  var lastSelectedRowIndex = selectedRows.length - 1;
114
118
  var lastSelectedRowId_1 = selectedRows[lastSelectedRowIndex];
115
- var lastSelectedRow = data.find(function (row) { var _a; return ((_a = row === null || row === void 0 ? void 0 : row._meta) === null || _a === void 0 ? void 0 : _a.id) === lastSelectedRowId_1; });
116
- var clickedRow = data[rowIndex];
117
- var rangeStartIndex = data.indexOf(lastSelectedRow);
118
- var rangeEndIndex = data.indexOf(clickedRow);
119
- var range = data.slice(Math.min(rangeStartIndex, rangeEndIndex), Math.max(rangeStartIndex, rangeEndIndex) + 1);
120
- var rangeIds = range.map(function (row) { return row === null || row === void 0 ? void 0 : row._meta.id; });
121
- var lastRowId_2 = data[data.length - 1]._meta.id;
122
- var isLastRowEmpty_1 = rowIsEmpty(data[data.length - 1]);
119
+ var lastSelectedRow = filteredDataIds.find(function (id) { return id === lastSelectedRowId_1; });
120
+ var clickedRow = filteredDataIds[rowIndex];
121
+ var rangeStartIndex = filteredDataIds.indexOf(lastSelectedRow);
122
+ var rangeEndIndex = filteredDataIds.indexOf(clickedRow);
123
+ var range = filteredDataIds.slice(Math.min(rangeStartIndex, rangeEndIndex), Math.max(rangeStartIndex, rangeEndIndex) + 1);
124
+ var rangeIds = range.map(function (row) { return row; });
125
+ var lastRowId_2 = filteredDataIds[filteredDataIds.length - 1];
126
+ var isLastRowEmpty_1 = rowIsEmpty(getRecord(lastRowId_2));
123
127
  var updatedSelectedRows = __spreadArray(__spreadArray([], selectedRows, true), rangeIds, true).filter(function (value, index, array) {
124
128
  return array.indexOf(value) === index &&
125
129
  (value !== lastRowId_2 || (value === lastRowId_2 && !isLastRowEmpty_1));
@@ -129,15 +133,13 @@ export var SpreadsheetRowCheckboxes = function (_a) {
129
133
  }
130
134
  };
131
135
  var handleSelectAllRows = function (checked) {
136
+ if (hasTransformedRecords)
137
+ return;
132
138
  if (checked) {
133
- var allRows = data
134
- .filter(function (row) {
135
- var isLastRow = row._meta.id === data[data.length - 1]._meta.id;
136
- var isLastRowAndEmpty = isLastRow && rowIsEmpty(row);
139
+ var allRows = filteredDataIds.filter(function (recordId) {
140
+ var isLastRow = recordId === filteredDataIds[filteredDataIds.length - 1];
141
+ var isLastRowAndEmpty = isLastRow && rowIsEmpty(getRecord(recordId));
137
142
  return !isLastRowAndEmpty;
138
- })
139
- .map(function (row) {
140
- return row === null || row === void 0 ? void 0 : row._meta.id;
141
143
  });
142
144
  setSelectedRows(allRows);
143
145
  }
@@ -147,9 +149,8 @@ export var SpreadsheetRowCheckboxes = function (_a) {
147
149
  lastClickedIndexRef.current = null;
148
150
  };
149
151
  var CheckboxCell = function (_a) {
150
- var _b, _c;
151
152
  var rowIndex = _a.rowIndex;
152
- var rowMetaId = (_c = (_b = data[rowIndex]) === null || _b === void 0 ? void 0 : _b._meta) === null || _c === void 0 ? void 0 : _c.id;
153
+ var rowMetaId = filteredDataIds[rowIndex];
153
154
  return (_jsx(Div, __assign({ className: "checkbox-cell", "data-test-id": "checkbox-cell-".concat(rowIndex) }, { children: _jsx(Checkbox, { isChecked: rowMetaId && selectedRows.includes(rowMetaId), onChange: function (checked) {
154
155
  return !isLoadingData && handleRowSelect(checked, rowIndex, rowMetaId);
155
156
  }, onShiftKeyPressed: function () {
@@ -163,16 +164,16 @@ export var SpreadsheetRowCheckboxes = function (_a) {
163
164
  };
164
165
  var Cell = function (_a) {
165
166
  var rowIndex = _a.rowIndex, style = _a.style;
166
- return (_jsxs(RowCheckbox, __assign({ style: style, alignCenter: true, justifyCenter: true, isLast: rowIndex === data.length - 1 }, { children: [_jsx(CheckboxCell, { rowIndex: rowIndex }), _jsx(RowNumbersCell, { rowIndex: rowIndex })] }), rowIndex));
167
+ return (_jsxs(RowCheckbox, __assign({ style: style, alignCenter: true, justifyCenter: true, isLast: rowIndex === filteredDataIds.length - 1 }, { children: [_jsx(CheckboxCell, { rowIndex: rowIndex }), _jsx(RowNumbersCell, { rowIndex: rowIndex })] }), rowIndex));
167
168
  };
168
169
  var isSelectAllRowsChekboxChecked = (selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.length) > 0 &&
169
- (data === null || data === void 0 ? void 0 : data.length) > 0 &&
170
+ (filteredDataIds === null || filteredDataIds === void 0 ? void 0 : filteredDataIds.length) > 0 &&
170
171
  (selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.length) >= (nonEmptyRows === null || nonEmptyRows === void 0 ? void 0 : nonEmptyRows.length);
171
172
  return (_jsxs(SpreadsheetRowCheckboxesContainer, __assign({ className: "spreadsheet-row-container", columnWidth: checkboxColumnWidth }, props, { h100: true }, { children: [_jsx(SpreadsheetRowCheckboxesHeader, { children: currentStepIndex === 2 && (_jsx(Checkbox, { isChecked: isSelectAllRowsChekboxChecked, onChange: function (checked) {
172
173
  return !isLoadingData && handleSelectAllRows(checked);
173
174
  }, isIndeterminate: isIndeterminate, isDisabled: isLoadingData })) }), _jsx(ReactVirtualizedAutoSizer, { children: function (_a) {
174
175
  var height = _a.height;
175
- return (_jsx(StyledGrid, __assign({ ref: gridRef, style: gridStyles, width: checkboxColumnWidth, columnCount: 1, columnWidth: checkboxColumnWidth, rowHeight: 40, rowCount: data.length, height: height - spreadsheetHeaderHeightPx }, { children: Cell })));
176
+ return (_jsx(StyledGrid, __assign({ ref: gridRef, style: gridStyles, width: checkboxColumnWidth, columnCount: 1, columnWidth: checkboxColumnWidth, rowHeight: 40, rowCount: filteredDataIds.length, height: height - spreadsheetHeaderHeightPx }, { children: Cell })));
176
177
  } })] })));
177
178
  };
178
179
  var RowCheckbox = styled(Div)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n ", ";\n ", "\n display: flex;\n justify-content: center;\n position: relative;\n user-select: none;\n\n .checkbox-cell {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n visibility: hidden;\n z-index: 1;\n }\n\n .row-numbers-cell {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n"], ["\n background-color: ", ";\n ", ";\n ", "\n display: flex;\n justify-content: center;\n position: relative;\n user-select: none;\n\n .checkbox-cell {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n visibility: hidden;\n z-index: 1;\n }\n\n .row-numbers-cell {\n left: 50%;\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n }\n"])), function (p) { return p.theme.colors.tableHeader; }, function (p) { return p.theme.css.label3; }, function (p) {
@@ -40,12 +40,12 @@ var gridStyles = {
40
40
  };
41
41
  export var SpreadsheetRowNumbers = function (_a) {
42
42
  var height = _a.height, spreadsheetHasXScroll = _a.spreadsheetHasXScroll, gridRef = _a.gridRef, props = __rest(_a, ["height", "spreadsheetHasXScroll", "gridRef"]);
43
- var data = useSpreadsheetContext().data;
43
+ var filteredDataIds = useSpreadsheetContext().filteredDataIds;
44
44
  var Cell = function (_a) {
45
45
  var rowIndex = _a.rowIndex, style = _a.style;
46
- return (_jsx(RowNumber, __assign({ style: style, alignCenter: true, justifyCenter: true, isLast: rowIndex === data.length - 1 }, { children: _jsx(Div, __assign({ truncateText: true, textAlignCenter: true, body2: true }, { children: rowIndex + 1 })) }), rowIndex));
46
+ return (_jsx(RowNumber, __assign({ style: style, alignCenter: true, justifyCenter: true, isLast: rowIndex === filteredDataIds.length - 1 }, { children: _jsx(Div, __assign({ truncateText: true, textAlignCenter: true, body2: true }, { children: rowIndex + 1 })) }), rowIndex));
47
47
  };
48
- return (_jsxs(SpreadsheetRowNumbersContainer, __assign({}, props, { h: height }, { children: [_jsx(SpreadsheetRowNumbersHeader, {}), _jsx(Grid, __assign({ ref: gridRef, style: gridStyles, width: SPREADSHEET_ROW_NUMBERS_WIDTH, columnCount: 1, columnWidth: SPREADSHEET_ROW_NUMBERS_WIDTH, height: height - spreadsheetHeaderHeightPx, rowHeight: 40, rowCount: data.length }, { children: Cell }))] })));
48
+ return (_jsxs(SpreadsheetRowNumbersContainer, __assign({}, props, { h: height }, { children: [_jsx(SpreadsheetRowNumbersHeader, {}), _jsx(Grid, __assign({ ref: gridRef, style: gridStyles, width: SPREADSHEET_ROW_NUMBERS_WIDTH, columnCount: 1, columnWidth: SPREADSHEET_ROW_NUMBERS_WIDTH, height: height - spreadsheetHeaderHeightPx, rowHeight: 40, rowCount: filteredDataIds.length }, { children: Cell }))] })));
49
49
  };
50
50
  var RowNumber = styled(Div)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background-color: ", ";\n ", ";\n ", "\n"], ["\n background-color: ", ";\n ", ";\n ", "\n"])), function (p) { return p.theme.colors.tableHeader; }, function (p) { return p.theme.css.label3; }, function (p) {
51
51
  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; });
@@ -9,5 +9,6 @@ export type SpreadsheetAutocompleteProps = {
9
9
  isInputDisabled?: boolean;
10
10
  fieldType: FieldTypes;
11
11
  id?: string;
12
+ columnWidth?: string;
12
13
  };
13
14
  export declare const SpreadsheetAutocomplete: React.FC<SpreadsheetAutocompleteProps>;
@@ -19,6 +19,7 @@ import { SpreadsheetField, useSpreadsheetField } from ".";
19
19
  import { Autocomplete as AutocompleteBase, } from "../../../../../common/inputs/Autocomplete";
20
20
  import { SelectMenuDiv, SelectMenuScrollArea, } from "../../../../../common/inputs/SelectMenu";
21
21
  import { HTMLInput, TextInputIcon, } from "../../../../../common/inputs/TextInput";
22
+ import { useReviewContext } from "../../../../Review/ReviewContextProvider";
22
23
  import { spreadsheetRowHeightPx } from "../../common";
23
24
  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
25
  return p.hasWarning && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
@@ -30,9 +31,12 @@ var Autocomplete = styled(AutocompleteBase)(templateObject_5 || (templateObject_
30
31
  return p.hasError && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.error; });
31
32
  }, TextInputIcon, SelectMenuDiv, SelectMenuScrollArea);
32
33
  export var SpreadsheetAutocomplete = function (props) {
33
- var name = props.name, record = props.record, options = props.options, fieldType = props.fieldType, _a = props.isInputDisabled, isInputDisabled = _a === void 0 ? false : _a, id = props.id;
34
- var _b = useSpreadsheetField(name, record, fieldType), value = _b.value, setValue = _b.setValue, validationError = _b.validationError, validationWarning = _b.validationWarning;
35
- return (_jsx(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning }, { children: _jsx(Autocomplete, { placement: "bottom", isInputDisabled: isInputDisabled, hasError: !!validationError, hasWarning: !!validationWarning, options: options, value: value, icon: chevronDownIcon, onChange: function (v) { return setValue(v); }, id: id }) })));
34
+ var _a, _b, _c;
35
+ var name = props.name, record = props.record, options = props.options, fieldType = props.fieldType, _d = props.isInputDisabled, isInputDisabled = _d === void 0 ? false : _d, id = props.id;
36
+ var _e = useSpreadsheetField(name, record, fieldType), value = _e.value, setValue = _e.setValue, validationError = _e.validationError, validationWarning = _e.validationWarning;
37
+ var hasTransformedRecords = useReviewContext().hasTransformedRecords;
38
+ var isHighlighted = hasTransformedRecords && ((_c = (_b = (_a = record._meta) === null || _a === void 0 ? void 0 : _a.transformedRow) === null || _b === void 0 ? void 0 : _b[name]) === null || _c === void 0 ? void 0 : _c.transformed);
39
+ return (_jsx(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning, isHighlighted: isHighlighted }, { children: _jsx(Autocomplete, { placement: "bottom", isInputDisabled: isInputDisabled, hasError: !!validationError, hasWarning: !!validationWarning, options: options, value: value, icon: chevronDownIcon, onChange: function (v) { return !hasTransformedRecords && setValue(v); }, disabledWhen: hasTransformedRecords, id: id }) })));
36
40
  };
37
41
  var chevronDownIcon = (_jsx("svg", __assign({ width: "10", height: "6", viewBox: "0 0 10 6", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, { children: _jsx("path", { d: "M8.46289 1L4.98131 4.48159L1.49972 1", stroke: "black", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) })));
38
42
  var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
@@ -4,9 +4,11 @@ export type SpreadsheetTextInputArgs = {
4
4
  name: string;
5
5
  record: Record;
6
6
  fieldType: FieldTypes;
7
+ columnWidth?: string;
7
8
  } & HTMLInputCSSProps;
8
- export declare const SpreadsheetInput: ({ name, record, fieldType, ...props }: SpreadsheetTextInputArgs) => JSX.Element;
9
+ export declare const SpreadsheetInput: ({ name, record, fieldType, columnWidth, ...props }: SpreadsheetTextInputArgs) => JSX.Element;
9
10
  export declare const Input: import("styled-components").StyledComponent<"input", import("styled-components").DefaultTheme, {
10
11
  hasError: boolean;
11
12
  hasWarning?: boolean;
13
+ fitContent?: boolean;
12
14
  } & import("../../../../../styled/utils").HTMLInputProps & import("../../../../../styled/utils").CSSProps, never>;
@@ -24,20 +24,54 @@ var __rest = (this && this.__rest) || function (s, e) {
24
24
  }
25
25
  return t;
26
26
  };
27
- import { jsx as _jsx } from "react/jsx-runtime";
27
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
28
+ import { useMemo } from "react";
28
29
  import styled, { css } from "styled-components";
29
30
  import { SpreadsheetField, useSpreadsheetField } from ".";
31
+ import { Div } from "../../../../../styled/utils";
32
+ import { useReviewContext } from "../../../../Review/ReviewContextProvider";
33
+ import { AVERAGE_CHAR_SIZE, getFieldContentWidth } from "./utils";
34
+ var parseValue = function (value) {
35
+ var isFalsyButNotZero = !value && value !== 0;
36
+ return isFalsyButNotZero ? "" : value;
37
+ };
30
38
  export var SpreadsheetInput = function (_a) {
31
- var name = _a.name, record = _a.record, fieldType = _a.fieldType, props = __rest(_a, ["name", "record", "fieldType"]);
32
- var _b = useSpreadsheetField(name, record, fieldType), value = _b.value, setValue = _b.setValue, validationError = _b.validationError, validationWarning = _b.validationWarning;
33
- return (_jsx(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning }, { children: _jsx(Input, __assign({ hasError: !!validationError, hasWarning: !!validationWarning, value: value || "", onChange: function (_a) {
34
- var value = _a.target.value;
35
- return setValue(value);
36
- } }, props)) })));
39
+ var _b, _c, _d, _e, _f, _g;
40
+ var name = _a.name, record = _a.record, fieldType = _a.fieldType, columnWidth = _a.columnWidth, props = __rest(_a, ["name", "record", "fieldType", "columnWidth"]);
41
+ var _h = useSpreadsheetField(name, record, fieldType), value = _h.value, setValue = _h.setValue, validationError = _h.validationError, validationWarning = _h.validationWarning;
42
+ var hasTransformedRecords = useReviewContext().hasTransformedRecords;
43
+ var defaultWidthAsNumber = Number.parseInt(columnWidth.replace("px", ""));
44
+ var _fieldContentWidth = getFieldContentWidth({
45
+ record: record,
46
+ fieldType: fieldType,
47
+ isTooltipOpened: hasTransformedRecords,
48
+ name: name,
49
+ });
50
+ var isHighlighted = hasTransformedRecords && ((_d = (_c = (_b = record._meta) === null || _b === void 0 ? void 0 : _b.transformedRow) === null || _c === void 0 ? void 0 : _c[name]) === null || _d === void 0 ? void 0 : _d.transformed);
51
+ var expandedFieldWidth = useMemo(function () {
52
+ // if the value is falsy, returns the default width
53
+ if (!value)
54
+ return columnWidth;
55
+ var inputPadding = 24; // 12 left + 12 right
56
+ var transformedValueSize = value.length * AVERAGE_CHAR_SIZE;
57
+ var totalInputSize = transformedValueSize + _fieldContentWidth + inputPadding;
58
+ return totalInputSize > defaultWidthAsNumber
59
+ ? "".concat(totalInputSize, "px")
60
+ : "".concat(defaultWidthAsNumber, "px");
61
+ }, [value, record, columnWidth]);
62
+ return (_jsxs(SpreadsheetField, __assign({ validationError: validationError, validationWarning: validationWarning, isHighlighted: isHighlighted, defaultFieldWidth: defaultWidthAsNumber, expandedFieldWidth: expandedFieldWidth, shouldExpandInput: true }, { children: [_jsx(Input, __assign({ autoComplete: "off", hasError: !!validationError, hasWarning: !!validationWarning, value: parseValue(value), onChange: function (_a) {
63
+ var value = _a.target.value;
64
+ return !hasTransformedRecords && setValue(value);
65
+ }, disabledWhen: hasTransformedRecords }, props)), ((_g = (_f = (_e = record === null || record === void 0 ? void 0 : record._meta) === null || _e === void 0 ? void 0 : _e.transformedRow) === null || _f === void 0 ? void 0 : _f[name]) === null || _g === void 0 ? void 0 : _g.original) &&
66
+ hasTransformedRecords && (_jsx(SuffixText, __assign({ className: "suffix", fieldWidth: _fieldContentWidth }, { children: record._meta.transformedRow[name].original })))] })));
37
67
  };
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
- return p.hasWarning && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
68
+ var SuffixText = styled(Div)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: #1c1c1c;\n font-family: DM Sans;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n position: absolute;\n left: ", "px;\n text-decoration: line-through;\n white-space: nowrap;\n"], ["\n color: #1c1c1c;\n font-family: DM Sans;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n position: absolute;\n left: ", "px;\n text-decoration: line-through;\n white-space: nowrap;\n"])), function (_a) {
69
+ var fieldWidth = _a.fieldWidth;
70
+ return fieldWidth;
71
+ });
72
+ export var Input = styled.input(templateObject_4 || (templateObject_4 = __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) {
73
+ return p.hasWarning && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.orange1200; });
40
74
  }, function (p) {
41
- return p.hasError && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.error; });
75
+ return p.hasError && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n color: ", ";\n "], ["\n color: ", ";\n "])), function (p) { return p.theme.colors.error; });
42
76
  });
43
- var templateObject_1, templateObject_2, templateObject_3;
77
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -1,3 +1,4 @@
1
+ /// <reference types="react" />
1
2
  import { FieldTypes, Record } from "../../../../../types";
2
3
  export declare const useSpreadsheetField: (name: string, record: Record, fieldType: FieldTypes) => {
3
4
  value: any;
@@ -5,8 +6,14 @@ export declare const useSpreadsheetField: (name: string, record: Record, fieldTy
5
6
  validationError: any;
6
7
  validationWarning: any;
7
8
  };
8
- export declare const SpreadsheetField: ({ validationError, validationWarning, children, }: {
9
- validationError: any;
10
- validationWarning: any;
11
- children: any;
12
- }) => JSX.Element;
9
+ type SpreadsheetFieldProps = {
10
+ validationError: string | JSX.Element;
11
+ validationWarning: string | JSX.Element;
12
+ children: React.ReactNode;
13
+ isHighlighted?: boolean;
14
+ expandedFieldWidth?: string;
15
+ shouldExpandInput?: boolean;
16
+ defaultFieldWidth?: number;
17
+ };
18
+ export declare const SpreadsheetField: ({ validationError, validationWarning, children, isHighlighted, expandedFieldWidth, shouldExpandInput, defaultFieldWidth, }: SpreadsheetFieldProps) => JSX.Element;
19
+ export {};
@@ -51,46 +51,101 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
51
51
  };
52
52
  import { jsx as _jsx } from "react/jsx-runtime";
53
53
  import { debounce, get } from "lodash";
54
- import { useCallback, useState } from "react";
54
+ import { useCallback, useEffect, useState } from "react";
55
55
  import styled, { css } from "styled-components";
56
+ import { useEventManagerContext } from "../../../../../common/EventManagerContextProvider";
56
57
  import { TooltipProvider } from "../../../../../common/TooltipProvider";
57
58
  import { Div } from "../../../../../styled/utils";
58
- import { parseValue } from "../../common";
59
+ import { useDataSetContext } from "../../DataSetContextProvider";
60
+ import { useFilteredDataContext } from "../../FilteredDataContextProvider";
59
61
  import { useSpreadsheetContext } from "../../SpreadsheetContextProvider";
62
+ import { useDataSetManipulation } from "../../SpreadsheetContextProvider/useDataSetManipulation";
63
+ import { useValidationContext } from "../../ValidationContextProvider";
64
+ import { parseValue } from "../../common";
60
65
  export var useSpreadsheetField = function (name, record, fieldType) {
61
- var _a = useSpreadsheetContext(), updateRecord = _a.updateRecord, errors = _a.errors, warnings = _a.warnings;
62
- var _b = useState(record[name]), value = _b[0], setValue = _b[1];
63
- var validationError = get(errors, "".concat(record._meta.id, ".").concat(name), null);
64
- var validationWarning = get(warnings, "".concat(record._meta.id, ".").concat(name), null);
66
+ var appendNewRecordToSpreadsheet = useDataSetManipulation().appendNewRecordToSpreadsheet;
67
+ var _a = useFilteredDataContext(), lastFilteredRecordId = _a.lastFilteredRecordId, spreadsheetFilter = _a.spreadsheetFilter;
68
+ var _b = useValidationContext(), updateRecordAndRevalidate = _b.updateRecordAndRevalidate, warnings = _b.warnings, errors = _b.errors;
69
+ var getRecord = useDataSetContext().getRecord;
70
+ var _c = useState(record), recordState = _c[0], setRecordState = _c[1];
71
+ var _d = useState(record[name]), value = _d[0], setValue = _d[1];
72
+ var _e = useEventManagerContext(), on = _e.on, off = _e.off;
73
+ var _f = useState(get(errors.current, "".concat(record._meta.id, ".").concat(name), null)), validationError = _f[0], setValidationError = _f[1];
74
+ var _g = useState(get(warnings.current, "".concat(record._meta.id, ".").concat(name), null)), validationWarning = _g[0], setValidationWarning = _g[1];
75
+ useEffect(function () {
76
+ var listener = function (newRecord) {
77
+ var _record = getRecord(record._meta.id);
78
+ setValidationError(get(errors.current, "".concat(_record._meta.id, ".").concat(name), null));
79
+ setValidationWarning(get(warnings.current, "".concat(_record._meta.id, ".").concat(name), null));
80
+ setRecordState(_record);
81
+ };
82
+ on(record._meta.id, listener);
83
+ return function () {
84
+ off(record._meta.id, listener);
85
+ };
86
+ }, []);
65
87
  var updateData = useCallback(debounce(function (value) { return __awaiter(void 0, void 0, void 0, function () {
66
- var newRecord;
67
- var _a;
68
- return __generator(this, function (_b) {
69
- newRecord = __assign(__assign({}, record), (_a = {}, _a[name] = parseValue(fieldType, value), _a));
70
- updateRecord(newRecord);
88
+ var _record;
89
+ return __generator(this, function (_a) {
90
+ _record = __assign({}, getRecord(record._meta.id));
91
+ _record[name] = parseValue(fieldType, value);
92
+ updateRecordAndRevalidate(_record);
93
+ setRecordState(_record);
94
+ if (record._meta.id === lastFilteredRecordId.current &&
95
+ spreadsheetFilter.byRow === "all") {
96
+ appendNewRecordToSpreadsheet();
97
+ }
71
98
  return [2 /*return*/];
72
99
  });
73
- }); }, 50), [record]);
100
+ }); }, 200), [record]);
101
+ useEffect(function () {
102
+ if (recordState[name] !== value) {
103
+ setValue(recordState[name]);
104
+ }
105
+ }, [recordState[name], recordState]);
74
106
  var updateValue = useCallback(function (value) {
75
107
  setValue(value);
76
108
  updateData(value);
77
- }, [record, updateData]);
78
- return { value: value, setValue: updateValue, validationError: validationError, validationWarning: validationWarning };
109
+ }, [record, recordState, updateData]);
110
+ return {
111
+ value: value,
112
+ setValue: updateValue,
113
+ validationError: validationError,
114
+ validationWarning: validationWarning,
115
+ };
79
116
  };
80
- var ContentContainer = styled(Div)(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: calc(100% - 1px);\n width: 100%;\n ", ";\n ", "\n ", "\n ", "\n"], ["\n height: calc(100% - 1px);\n width: 100%;\n ", ";\n ", "\n ", "\n ", "\n"])), function (p) { return p.theme.css.alignCenter; }, function (p) {
81
- return p.hasWarning && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "], ["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "])), function (p) { return p.theme.colors.orange1200; }, function (p) { return p.theme.colors.orange1100; }, function (p) { return p.theme.colors.orange500; });
117
+ var ContentContainer = styled(Div)(templateObject_9 || (templateObject_9 = __makeTemplateObject(["\n height: calc(100% - 1px);\n width: ", ";\n overflow: hidden;\n\n ", "\n\n &:focus-within, \n &:hover {\n ", "\n }\n\n &:focus-within, \n &:hover {\n ", "\n }\n\n ", ";\n ", "\n ", "\n ", "\n\n ", "\n\n ", "\n"], ["\n height: calc(100% - 1px);\n width: ", ";\n overflow: hidden;\n\n ", "\n\n &:focus-within, \n &:hover {\n ", "\n }\n\n &:focus-within, \n &:hover {\n ", "\n }\n\n ", ";\n ", "\n ", "\n ", "\n\n ", "\n\n ", "\n"])), function (_a) {
118
+ var defaultFieldWidth = _a.defaultFieldWidth;
119
+ return defaultFieldWidth ? "".concat(defaultFieldWidth, "px") : "100%";
120
+ }, function (_a) {
121
+ var expandedFieldWidth = _a.expandedFieldWidth;
122
+ return expandedFieldWidth && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n "], ["\n position: absolute;\n "])));
123
+ }, function (_a) {
124
+ var hasError = _a.hasError, hasWarning = _a.hasWarning, isHighlighted = _a.isHighlighted, theme = _a.theme, shouldExpandInput = _a.shouldExpandInput;
125
+ return shouldExpandInput &&
126
+ !hasError &&
127
+ !hasWarning && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n background: ", ";\n box-shadow: 0px 0px 0px 2px ", " inset;\n "], ["\n background: ", ";\n box-shadow: 0px 0px 0px 2px ", " inset;\n "])), !isHighlighted
128
+ ? theme.colors.white
129
+ : theme.colors.blue100, function (p) { return p.theme.colors.blue500; });
130
+ }, function (_a) {
131
+ var expandedFieldWidth = _a.expandedFieldWidth, shouldExpandInput = _a.shouldExpandInput;
132
+ return shouldExpandInput && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n width: ", ";\n\n .suffix {\n right: 12px;\n }\n "], ["\n width: ", ";\n\n .suffix {\n right: 12px;\n }\n "])), expandedFieldWidth || "auto");
133
+ }, function (p) { return p.theme.css.alignCenter; }, function (p) {
134
+ return p.hasWarning && css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "], ["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "])), function (p) { return p.theme.colors.orange1200; }, function (p) { return p.theme.colors.orange1100; }, function (p) { return p.theme.colors.orange500; });
82
135
  }, function (p) {
83
- return p.hasError && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "], ["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "])), function (p) { return p.theme.colors.error; }, function (p) { return p.theme.colors.red100; }, function (p) { return p.theme.colors.error; });
136
+ return p.hasError && css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "], ["\n color: ", ";\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 1px ", " inset;\n "])), function (p) { return p.theme.colors.error; }, function (p) { return p.theme.colors.red100; }, function (p) { return p.theme.colors.error; });
84
137
  }, function (p) {
85
- return p.isReadOnly && css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n pointer-events: none;\n "], ["\n pointer-events: none;\n "])));
86
- });
87
- var Wrapper = styled(Div)(function (_a) {
88
- var isLoading = _a.isLoading;
89
- return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), isLoading && css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n pointer-events: none;\n "], ["\n pointer-events: none;\n "]))));
138
+ return p.isHighlighted && css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 2px ", " inset;\n z-index: 99;\n color: ", ";\n\n &:hover {\n z-index: 100;\n }\n\n input {\n color: ", ";\n }\n "], ["\n background: ", ";\n /* internal border */\n box-shadow: 0px 0px 0px 2px ", " inset;\n z-index: 99;\n color: ", ";\n\n &:hover {\n z-index: 100;\n }\n\n input {\n color: ", ";\n }\n "])), function (p) { return p.theme.colors.blue100; }, function (p) { return p.theme.colors.blue500; }, function (p) { return p.theme.colors.gray1000; }, function (p) { return p.theme.colors.gray1000; });
139
+ }, function (_a) {
140
+ var shouldExpandInput = _a.shouldExpandInput, isHighlighted = _a.isHighlighted;
141
+ return shouldExpandInput &&
142
+ !isHighlighted && css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n z-index: 1;\n "], ["\n z-index: 1;\n "])));
143
+ }, function (p) {
144
+ return p.isReadOnly && css(templateObject_8 || (templateObject_8 = __makeTemplateObject(["\n pointer-events: none;\n "], ["\n pointer-events: none;\n "])));
90
145
  });
91
146
  export var SpreadsheetField = function (_a) {
92
- var validationError = _a.validationError, validationWarning = _a.validationWarning, children = _a.children;
93
- var _b = useSpreadsheetContext(), isReadOnly = _b.isReadOnly, isLoading = _b.isLoading;
94
- return (_jsx(Wrapper, __assign({ dim: "100%", isLoading: isLoading }, { children: _jsx(TooltipProvider, __assign({ tooltip: validationError || validationWarning }, { children: _jsx(Div, __assign({ dim: "100%" }, { children: _jsx(ContentContainer, __assign({ hasError: !!validationError, hasWarning: !!validationWarning, isReadOnly: isReadOnly, className: "input-content" }, { children: children })) })) })) })));
147
+ var validationError = _a.validationError, validationWarning = _a.validationWarning, children = _a.children, isHighlighted = _a.isHighlighted, expandedFieldWidth = _a.expandedFieldWidth, shouldExpandInput = _a.shouldExpandInput, defaultFieldWidth = _a.defaultFieldWidth;
148
+ var isReadOnly = useSpreadsheetContext().isReadOnly;
149
+ return (_jsx(Div, __assign({ dim: "100%" }, { children: _jsx(TooltipProvider, __assign({ tooltip: validationError || validationWarning }, { children: _jsx(Div, __assign({ dim: "100%" }, { children: _jsx(ContentContainer, __assign({ hasError: validationError !== null, hasWarning: validationWarning !== null, isHighlighted: isHighlighted, expandedFieldWidth: expandedFieldWidth, defaultFieldWidth: defaultFieldWidth, shouldExpandInput: shouldExpandInput, isReadOnly: isReadOnly, className: "input-content" }, { children: children })) })) })) })));
95
150
  };
96
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6;
151
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7, templateObject_8, templateObject_9;
@@ -0,0 +1,11 @@
1
+ import { FieldTypes, Record } from "../../../../../types";
2
+ export declare const AVERAGE_CHAR_SIZE = 11;
3
+ interface FieldProps {
4
+ record: Record;
5
+ name: string;
6
+ fieldType: FieldTypes;
7
+ isTooltipOpened: boolean;
8
+ avgCharSize?: number;
9
+ }
10
+ export declare const getFieldContentWidth: ({ record, fieldType, isTooltipOpened, name, avgCharSize, }: FieldProps) => number;
11
+ export {};