@adaptabletools/adaptable-cjs 22.0.0-canary.9 → 22.0.1-canary.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 (180) hide show
  1. package/index.css +1157 -1319
  2. package/index.css.map +1 -1
  3. package/index.d.ts +8 -8
  4. package/index.js +8 -8
  5. package/package.json +1 -4
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
  7. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  8. package/src/AdaptableState/Common/AdaptableColumn.d.ts +3 -3
  9. package/src/AdaptableState/Common/AdaptableForm.d.ts +1 -1
  10. package/src/AdaptableState/Common/AggregationColumns.d.ts +1 -0
  11. package/src/AdaptableState/Common/AggregationColumns.js +2 -1
  12. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +15 -5
  13. package/src/AdaptableState/Common/TransposeConfig.d.ts +4 -9
  14. package/src/AdaptableState/InitialState.d.ts +1 -1
  15. package/src/AdaptableState/UserInterfaceState.d.ts +1 -1
  16. package/src/Api/ColumnApi.d.ts +1 -1
  17. package/src/Api/GridApi.d.ts +8 -0
  18. package/src/Api/Implementation/ApiBase.d.ts +1 -1
  19. package/src/Api/Implementation/ApiBase.js +1 -1
  20. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
  21. package/src/Api/Implementation/ColumnApiImpl.js +4 -4
  22. package/src/Api/Implementation/GridApiImpl.d.ts +2 -0
  23. package/src/Api/Implementation/GridApiImpl.js +9 -5
  24. package/src/Api/Implementation/LayoutHelpers.js +1 -1
  25. package/src/Api/Implementation/RowFormApiImpl.d.ts +1 -0
  26. package/src/Api/Implementation/RowFormApiImpl.js +13 -0
  27. package/src/Api/Internal/ActionColumnInternalApi.js +2 -19
  28. package/src/Api/Internal/ColumnInternalApi.d.ts +1 -1
  29. package/src/Api/Internal/ColumnInternalApi.js +5 -3
  30. package/src/Api/Internal/EventInternalApi.js +1 -1
  31. package/src/Api/Internal/ExportInternalApi.js +1 -1
  32. package/src/Api/RowFormApi.d.ts +5 -0
  33. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +1 -1
  34. package/src/Redux/Store/AdaptableReduxMerger.js +5 -6
  35. package/src/Strategy/CellSummaryModule.d.ts +1 -0
  36. package/src/Strategy/CellSummaryModule.js +3 -0
  37. package/src/Strategy/FormatColumnModule.js +2 -2
  38. package/src/Strategy/LayoutModule.js +23 -19
  39. package/src/Strategy/PlusMinusModule.d.ts +1 -0
  40. package/src/Strategy/PlusMinusModule.js +8 -2
  41. package/src/Strategy/StyledColumnModule.js +14 -6
  42. package/src/Strategy/TeamSharingModule.js +2 -2
  43. package/src/Strategy/Utilities/FormatColumn/{getFormatColumnSettingsTargetItems.d.ts → getFormatColumnRowTargetItems.d.ts} +1 -1
  44. package/src/Strategy/Utilities/FormatColumn/getFormatColumnRowTargetItems.js +26 -0
  45. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +5 -13
  46. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
  47. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +1 -1
  48. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
  49. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -1
  50. package/src/Utilities/Extensions/StringExtensions.js +1 -1
  51. package/src/Utilities/Helpers/AdaptableHelper.js +2 -2
  52. package/src/Utilities/Helpers/FormatHelper.js +2 -2
  53. package/src/Utilities/Hooks/index.d.ts +1 -2
  54. package/src/Utilities/Hooks/index.js +1 -3
  55. package/src/Utilities/Services/LicenseService/index.js +1 -1
  56. package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
  57. package/src/Utilities/Services/RowSummaryService.js +2 -2
  58. package/src/Utilities/getScopeViewItems.js +1 -1
  59. package/src/Utilities/only.d.ts +18 -0
  60. package/src/Utilities/only.js +44 -0
  61. package/src/Utilities/utils/chunk.d.ts +6 -0
  62. package/src/Utilities/utils/chunk.js +20 -0
  63. package/src/Utilities/utils/clamp.d.ts +5 -0
  64. package/src/Utilities/utils/clamp.js +10 -0
  65. package/src/Utilities/utils/cloneDeepWith.d.ts +9 -0
  66. package/src/Utilities/utils/cloneDeepWith.js +70 -0
  67. package/src/Utilities/utils/debounce.d.ts +20 -0
  68. package/src/Utilities/utils/debounce.js +124 -0
  69. package/src/Utilities/utils/flatten.d.ts +5 -0
  70. package/src/Utilities/utils/flatten.js +10 -0
  71. package/src/Utilities/utils/flattenDeep.d.ts +5 -0
  72. package/src/Utilities/utils/flattenDeep.js +10 -0
  73. package/src/Utilities/utils/get.d.ts +6 -0
  74. package/src/Utilities/utils/get.js +38 -0
  75. package/src/Utilities/utils/index.d.ts +22 -0
  76. package/src/Utilities/utils/index.js +48 -0
  77. package/src/Utilities/utils/isArray.d.ts +6 -0
  78. package/src/Utilities/utils/isArray.js +8 -0
  79. package/src/Utilities/utils/isEqual.d.ts +5 -0
  80. package/src/Utilities/utils/isEqual.js +127 -0
  81. package/src/Utilities/utils/isObject.d.ts +6 -0
  82. package/src/Utilities/utils/isObject.js +12 -0
  83. package/src/Utilities/utils/isPlainObject.d.ts +6 -0
  84. package/src/Utilities/utils/isPlainObject.js +20 -0
  85. package/src/Utilities/utils/kebabCase.d.ts +5 -0
  86. package/src/Utilities/utils/kebabCase.js +12 -0
  87. package/src/Utilities/utils/merge.d.ts +11 -0
  88. package/src/Utilities/utils/merge.js +44 -0
  89. package/src/Utilities/utils/mergeWith.d.ts +7 -0
  90. package/src/Utilities/utils/mergeWith.js +50 -0
  91. package/src/Utilities/utils/orderBy.d.ts +8 -0
  92. package/src/Utilities/utils/orderBy.js +33 -0
  93. package/src/Utilities/utils/parseInt.d.ts +6 -0
  94. package/src/Utilities/utils/parseInt.js +12 -0
  95. package/src/Utilities/utils/sentenceCase.d.ts +6 -0
  96. package/src/Utilities/utils/sentenceCase.js +19 -0
  97. package/src/Utilities/utils/startCase.d.ts +5 -0
  98. package/src/Utilities/utils/startCase.js +15 -0
  99. package/src/Utilities/utils/throttle.d.ts +17 -0
  100. package/src/Utilities/utils/throttle.js +23 -0
  101. package/src/Utilities/utils/toNumber.d.ts +5 -0
  102. package/src/Utilities/utils/toNumber.js +42 -0
  103. package/src/Utilities/utils/uniq.d.ts +7 -0
  104. package/src/Utilities/utils/uniq.js +12 -0
  105. package/src/Utilities/utils/uniqBy.d.ts +8 -0
  106. package/src/Utilities/utils/uniqBy.js +25 -0
  107. package/src/Utilities/utils/words.d.ts +7 -0
  108. package/src/Utilities/utils/words.js +13 -0
  109. package/src/Utilities/weightedAverage.d.ts +11 -0
  110. package/src/Utilities/weightedAverage.js +60 -46
  111. package/src/View/AdaptableComputedCSSVarsContext.js +1 -1
  112. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -1
  113. package/src/View/Alert/Wizard/AlertButtonsEditor.js +2 -2
  114. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  115. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  116. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +2 -2
  117. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +2 -2
  118. package/src/View/Components/RangesComponent.js +1 -1
  119. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  120. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
  121. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  122. package/src/View/Components/ValueSelector/index.js +7 -2
  123. package/src/View/Dashboard/CustomDashboardButton.js +1 -1
  124. package/src/View/Dashboard/Dashboard.js +1 -1
  125. package/src/View/Dashboard/DashboardPopup.js +4 -3
  126. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  127. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  128. package/src/View/Export/Wizard/NewReportWizard.js +8 -8
  129. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  130. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +19 -10
  131. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -1
  132. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +2 -2
  133. package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.d.ts +8 -0
  134. package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.js +86 -0
  135. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +22 -61
  136. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +22 -10
  137. package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
  138. package/src/View/Layout/LayoutViewPanel.js +1 -1
  139. package/src/View/Layout/TransposedPopup.js +0 -1
  140. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  141. package/src/View/Note/NoteEditor.js +1 -1
  142. package/src/View/QuickSearch/useQuickSearchDebounced.js +1 -1
  143. package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
  144. package/src/View/StyledColumn/Wizard/StyledColumnBadgeRowsSection.d.ts +8 -0
  145. package/src/View/StyledColumn/Wizard/{StyledColumnWizardSettingsSection.js → StyledColumnBadgeRowsSection.js} +22 -22
  146. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +10 -11
  147. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  148. package/src/View/Theme/ThemeEditor.js +1 -1
  149. package/src/View/Theme/ThemeField.js +1 -1
  150. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
  151. package/src/View/Wizard/OnePageWizards.js +1 -1
  152. package/src/agGrid/AdaptableAgGrid.d.ts +1 -0
  153. package/src/agGrid/AdaptableAgGrid.js +28 -6
  154. package/src/agGrid/AgGridAdapter.js +4 -4
  155. package/src/agGrid/AgGridColumnAdapter.js +11 -4
  156. package/src/agGrid/AgGridExportAdapter.d.ts +2 -2
  157. package/src/agGrid/AgGridExportAdapter.js +7 -6
  158. package/src/agGrid/cellRenderers/PercentBarRenderer.js +17 -5
  159. package/src/components/ColorPicker/ColorPicker.js +1 -1
  160. package/src/components/DropdownButton/renderItem.js +1 -1
  161. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +1 -1
  162. package/src/components/FormLayout/index.js +1 -1
  163. package/src/components/OverlayTrigger/index.js +1 -1
  164. package/src/components/Select/Select.js +4 -0
  165. package/src/env.js +2 -2
  166. package/src/layout-manager/src/isLayoutEqual.js +1 -1
  167. package/src/metamodel/adaptable.metamodel.d.ts +12 -1
  168. package/src/metamodel/adaptable.metamodel.js +1 -1
  169. package/src/migration/VersionUpgrade22.js +9 -0
  170. package/themes/dark.css +2 -3
  171. package/themes/light.css +1 -1
  172. package/tsconfig.cjs.tsbuildinfo +1 -1
  173. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +0 -16
  174. package/src/Utilities/Hooks/useAdaptableState.d.ts +0 -3
  175. package/src/Utilities/Hooks/useAdaptableState.js +0 -42
  176. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +0 -8
  177. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +0 -37
  178. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.d.ts +0 -8
  179. /package/src/View/FormatColumn/Wizard/{FormatColumnScopeWizardSection.d.ts → FormatColumnColumnScopeWizardSection.d.ts} +0 -0
  180. /package/src/View/FormatColumn/Wizard/{FormatColumnScopeWizardSection.js → FormatColumnColumnScopeWizardSection.js} +0 -0
@@ -4,31 +4,23 @@ exports.FormatColumnSettingsWizardSection = exports.renderFormatColumnSettingsSu
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const FormLayout_1 = tslib_1.__importStar(require("../../../components/FormLayout"));
7
- const CheckBox_1 = require("../../../components/CheckBox");
8
7
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
9
8
  const Tag_1 = require("../../../components/Tag");
10
9
  const Radio_1 = tslib_1.__importStar(require("../../../components/Radio"));
11
10
  const Flex_1 = require("../../../components/Flex");
12
11
  const Tabs_1 = require("../../../components/Tabs");
13
12
  const Input_1 = tslib_1.__importDefault(require("../../../components/Input"));
13
+ const TypeRadio_1 = require("../../Wizard/TypeRadio");
14
14
  const renderFormatColumnSettingsSummary = (data) => {
15
15
  return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
16
16
  React.createElement(Flex_1.Box, { className: "twa:mt-3" },
17
17
  "Name ",
18
18
  React.createElement(Tag_1.Tag, null, data.Name)),
19
19
  React.createElement(Flex_1.Box, { className: "twa:mt-3" },
20
- "Data Rows ",
21
- React.createElement(Tag_1.Tag, null, data.RowScope?.ExcludeDataRows ? 'no' : 'yes')),
20
+ "Target",
21
+ ' ',
22
+ React.createElement(Tag_1.Tag, null, !data.Target || data.Target === 'cell' ? 'Column Cells' : 'Column Header')),
22
23
  ' ',
23
- React.createElement(Flex_1.Box, { className: "twa:mt-3" },
24
- "Group Rows ",
25
- React.createElement(Tag_1.Tag, null, data.RowScope?.ExcludeGroupRows ? 'no' : 'yes')),
26
- React.createElement(Flex_1.Box, { className: "twa:mt-3" },
27
- "Summary Rows ",
28
- React.createElement(Tag_1.Tag, null, data.RowScope?.ExcludeSummaryRows ? 'no' : 'yes')),
29
- React.createElement(Flex_1.Box, { className: "twa:mt-3" },
30
- "Total Rows ",
31
- React.createElement(Tag_1.Tag, null, data.RowScope?.ExcludeTotalRows ? 'no' : 'yes')),
32
24
  React.createElement(Flex_1.Box, { className: "twa:mt-3" },
33
25
  "Apply on Column Groups:",
34
26
  ' ',
@@ -38,49 +30,22 @@ const renderFormatColumnSettingsSummary = (data) => {
38
30
  };
39
31
  exports.renderFormatColumnSettingsSummary = renderFormatColumnSettingsSummary;
40
32
  const FormatColumnSettingsWizardSection = (props) => {
41
- const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
42
- const onNameChange = (event) => {
43
- props.onChange({
44
- ...data,
45
- Name: event.target.value,
46
- });
47
- };
48
- const onExcludeDataRowsChanged = (ExcludeDataRows) => {
49
- props.onChange({
50
- ...data,
51
- RowScope: {
52
- ...data.RowScope,
53
- ExcludeDataRows,
54
- },
55
- });
56
- };
57
- const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
33
+ const { data, api } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
34
+ const currentTarget = data.Target ? data.Target : 'cell';
35
+ const handleTargetChange = (target) => {
36
+ // Update the formatColumn object
58
37
  props.onChange({
59
38
  ...data,
60
- RowScope: {
61
- ...data.RowScope,
62
- ExcludeGroupRows: ExcludeGroupedRows,
63
- },
39
+ Target: target,
64
40
  });
65
41
  };
66
- const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
67
- props.onChange({
68
- ...data,
69
- RowScope: {
70
- ...data.RowScope,
71
- ExcludeSummaryRows,
72
- },
73
- });
74
- };
75
- const onExcludeTotalRowsChanged = (ExcludeTotalRows) => {
42
+ const onNameChange = (event) => {
76
43
  props.onChange({
77
44
  ...data,
78
- RowScope: {
79
- ...data.RowScope,
80
- ExcludeTotalRows,
81
- },
45
+ Name: event.target.value,
82
46
  });
83
47
  };
48
+ const behaviourSpellingVariant = api.internalApi.getCorrectEnglishVariant('Behaviour');
84
49
  return (React.createElement(Flex_1.Flex, { flexDirection: "column", style: { height: '100%' } },
85
50
  React.createElement(Tabs_1.Tabs, { className: "twa:mb-3" },
86
51
  React.createElement(Tabs_1.Tabs.Tab, null, "Settings"),
@@ -89,24 +54,20 @@ const FormatColumnSettingsWizardSection = (props) => {
89
54
  React.createElement(FormLayout_1.default, { className: "twa:max-w-[300px] twa:w-full" },
90
55
  React.createElement(FormLayout_1.FormRow, { label: "Name" },
91
56
  React.createElement(Input_1.default, { className: "twa:w-full", "data-name": "format-column-name", onChange: onNameChange, value: data?.Name ?? '' })))))),
57
+ React.createElement(Tabs_1.Tabs, { className: "twa:mb-3" },
58
+ React.createElement(Tabs_1.Tabs.Tab, null, "Target"),
59
+ React.createElement(Tabs_1.Tabs.Content, null,
60
+ React.createElement(Flex_1.Flex, { flexDirection: "column" },
61
+ React.createElement(TypeRadio_1.TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "Column Cells are styled and formatted", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }),
62
+ React.createElement(TypeRadio_1.TypeRadio, { "data-name": "target-column-header", text: 'Column Header', description: "The Column Header is styled (Note: Conditions are not available for Column Headers)", checked: currentTarget === 'columnHeader', onClick: () => handleTargetChange('columnHeader') })))),
92
63
  React.createElement(Tabs_1.Tabs, null,
93
- React.createElement(Tabs_1.Tabs.Tab, null, "Configuration"),
64
+ React.createElement(Tabs_1.Tabs.Tab, null,
65
+ "Column Group ",
66
+ behaviourSpellingVariant,
67
+ " "),
94
68
  React.createElement(Tabs_1.Tabs.Content, null,
95
69
  React.createElement(Flex_1.Flex, { flexDirection: "row" },
96
70
  React.createElement(FormLayout_1.default, null,
97
- data.Target === 'cell' && (React.createElement(React.Fragment, null,
98
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
99
- React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
100
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, className: "twa:mr-2" }))),
101
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
102
- React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
103
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, className: "twa:mr-2" }))),
104
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
105
- React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
106
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, className: "twa:mr-2" }))),
107
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Total Rows:" },
108
- React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
109
- React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, className: "twa:mr-2" }))))),
110
71
  React.createElement(FormLayout_1.FormRow, { label: "Apply on Column Group:" },
111
72
  React.createElement(Radio_1.RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
112
73
  props.onChange({
@@ -6,7 +6,8 @@ const React = tslib_1.__importStar(require("react"));
6
6
  const react_1 = require("react");
7
7
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
8
8
  const Helper_1 = require("../../../Utilities/Helpers/Helper");
9
- const FormatColumnScopeWizardSection_1 = require("./FormatColumnScopeWizardSection");
9
+ const FormatColumnColumnScopeWizardSection_1 = require("./FormatColumnColumnScopeWizardSection");
10
+ const FormatColumnRowScopeWizardSection_1 = require("./FormatColumnRowScopeWizardSection");
10
11
  const FormatColumnStyleWizardSection_1 = require("./FormatColumnStyleWizardSection");
11
12
  const FormatColumnFormatWizardSection_1 = require("./FormatColumnFormatWizardSection");
12
13
  const AdaptableContext_1 = require("../../AdaptableContext");
@@ -21,11 +22,22 @@ const Utilities_1 = require("../../Components/EntityRulesEditor/Utilities");
21
22
  const FormatColumnRuleWizardSection_1 = require("./FormatColumnRuleWizardSection");
22
23
  const constants_1 = require("./constants");
23
24
  const ObjectExtensions_1 = require("../../../Utilities/Extensions/ObjectExtensions");
24
- const FormatColumnTargetWizardSection_1 = require("./FormatColumnTargetWizardSection");
25
25
  const Flex_1 = require("../../../components/Flex");
26
26
  const adjustDisplayFormat = (fc, api) => {
27
27
  const formatColumn = { ...fc };
28
28
  let formatDataType = (0, FormatColumnFormatWizardSection_1.getFormatDisplayTypeForScope)(formatColumn.Scope, api);
29
+ // Add RowScope and Target defaults for Format Columns that have been created in Initial State
30
+ if (!formatColumn.RowScope) {
31
+ formatColumn.RowScope = {
32
+ ExcludeDataRows: false,
33
+ ExcludeGroupRows: false,
34
+ ExcludeSummaryRows: false,
35
+ ExcludeTotalRows: false,
36
+ };
37
+ }
38
+ if (!formatColumn.Target) {
39
+ formatColumn.Target = 'cell';
40
+ }
29
41
  if (formatColumn.Target === 'columnHeader') {
30
42
  // Column Headers are always text
31
43
  formatDataType = 'text';
@@ -100,7 +112,7 @@ function FormatColumnWizard(props) {
100
112
  return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, modal: props.modal, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
101
113
  {
102
114
  title: 'Settings',
103
- details: 'Enter Name and set Additional Properties',
115
+ details: 'Enter Name and other Properties',
104
116
  isValid: (formatColumnData) => {
105
117
  if (!formatColumnData.Name) {
106
118
  return 'Format Column Name cannot be blank';
@@ -117,22 +129,22 @@ function FormatColumnWizard(props) {
117
129
  },
118
130
  },
119
131
  {
120
- title: 'Scope',
132
+ title: 'Columns',
121
133
  details: 'Select which Columns will be formatted',
122
134
  isValid: NewScopeComponent_1.isScopeValid,
123
- renderSummary: FormatColumnScopeWizardSection_1.renderFormatColumnScopeSummary,
135
+ renderSummary: FormatColumnColumnScopeWizardSection_1.renderFormatColumnScopeSummary,
124
136
  render: () => {
125
137
  return (React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:p-2 twa:h-full" },
126
- React.createElement(FormatColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn })));
138
+ React.createElement(FormatColumnColumnScopeWizardSection_1.FormatColumnScopeWizardSection, { onChange: setFormatColumn })));
127
139
  },
128
140
  },
129
141
  {
130
- title: 'Target',
131
- details: 'Select which Columns Elements will be formatted',
132
- renderSummary: FormatColumnTargetWizardSection_1.renderFormatColumnTargetSummary,
142
+ title: 'Rows',
143
+ details: 'Select which Rows will be formatted',
144
+ renderSummary: FormatColumnRowScopeWizardSection_1.renderFormatColumnRowScopeSummary,
133
145
  render: () => {
134
146
  return (React.createElement(Flex_1.Flex, { flexDirection: "column", className: "twa:p-2 twa:h-full" },
135
- React.createElement(FormatColumnTargetWizardSection_1.FormatColumnTargetWizardSection, { onChange: setFormatColumn })));
147
+ React.createElement(FormatColumnRowScopeWizardSection_1.FormatColumnRowScopeWizardSection, { onChange: setFormatColumn })));
136
148
  },
137
149
  },
138
150
  {
@@ -25,14 +25,14 @@ const QueryViewPanelComponent = (props) => {
25
25
  const disabled = isReadOnly || isSuspended || gridFilterAccessLevel === 'ReadOnly';
26
26
  const buttonExpand = (React.createElement(ButtonExpand_1.ButtonExpand, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }));
27
27
  const renderExpressionLabel = () => {
28
- const baseClasses = 'twa:font-mono twa:text-xs twa:py-1.5 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-white twa:rounded twa:cursor-pointer twa:h-7 twa:leading-4';
28
+ const baseClasses = 'twa:font-mono twa:text-s twa:py-2 twa:px-2 twa:overflow-hidden twa:text-ellipsis twa:whitespace-nowrap twa:bg-defaultbackground twa:text-text-on-defaultbackground twa:rounded twa:cursor-pointer twa:leading-4 twa:flex twa:items-center';
29
29
  const placeholderClasses = 'twa:text-gray-400 twa:italic';
30
30
  const labelClassName = (0, clsx_1.default)(baseClasses, {
31
31
  [placeholderClasses]: !expression,
32
32
  });
33
33
  const expressionLabel = (React.createElement(Tooltip_1.default, { label: expression || 'Click to edit Grid Filter' },
34
- React.createElement(Flex_1.Box, { className: (0, clsx_1.default)('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter')));
35
- return (React.createElement(FieldWrap_1.default, { className: "twa:flex-1 twa:min-w-0 twa:overflow-visible" },
34
+ React.createElement(Flex_1.Box, { className: (0, clsx_1.default)('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter...')));
35
+ return (React.createElement(FieldWrap_1.default, { className: "twa:flex-1 twa:min-w-0 twa:min-h-input twa:overflow-visible" },
36
36
  buttonExpand,
37
37
  expressionLabel,
38
38
  gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid_1.ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter" }))));
@@ -5,7 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const PopupRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/PopupRedux"));
7
7
  const react_redux_1 = require("react-redux");
8
- const isEqual_1 = tslib_1.__importDefault(require("lodash/isEqual"));
8
+ const isEqual_1 = tslib_1.__importDefault(require("../../Utilities/utils/isEqual"));
9
9
  const Select_1 = require("../../components/Select");
10
10
  const join_1 = tslib_1.__importDefault(require("../../components/utils/join"));
11
11
  const LayoutRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/LayoutRedux"));
@@ -84,7 +84,6 @@ const TransposedPopup = (props) => {
84
84
  const transposeConfig = {
85
85
  transposedColumnId: rawConfig.transposedColumnId ?? primaryKey,
86
86
  hideTransposedColumn: rawConfig.hideTransposedColumn ?? true,
87
- autosize: rawConfig.autosize ?? true,
88
87
  columnsToTranspose: rawConfig.columnsToTranspose,
89
88
  rowsToTranspose: rawConfig.rowsToTranspose,
90
89
  };
@@ -370,7 +370,7 @@ const ColumnsSection = (props) => {
370
370
  const visibleIds = layout.TableColumns.filter((colId) => {
371
371
  return (layout.ColumnVisibility?.[colId] !== false &&
372
372
  adaptable.api.columnApi.isSelectionColumn(colId) === false &&
373
- !adaptable.api.columnApi.internalApi.isAlwaysHiddenColumn(colId));
373
+ !adaptable.api.columnApi.internalApi.isColumnUIHidden(colId));
374
374
  });
375
375
  const currentlyDisplayedColumnIds = searchInputValue
376
376
  ? currentOrder
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NoteEditor = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
5
+ const throttle_1 = tslib_1.__importDefault(require("../../Utilities/utils/throttle"));
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const Textarea_1 = tslib_1.__importDefault(require("../../components/Textarea"));
8
8
  const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useQuickSearchDebounced = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = require("react");
6
- const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
6
+ const debounce_1 = tslib_1.__importDefault(require("../../Utilities/utils/debounce"));
7
7
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
8
8
  const useQuickSearchDebounced = (props) => {
9
9
  const [searchText, setSearchText] = (0, react_1.useState)(props.QuickSearchText ?? '');
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SpecialColumnSettingsWizardStep = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const chunk_1 = tslib_1.__importDefault(require("lodash/chunk"));
5
+ const chunk_1 = tslib_1.__importDefault(require("../Utilities/utils/chunk"));
6
6
  const React = tslib_1.__importStar(require("react"));
7
7
  const CheckBox_1 = require("../components/CheckBox");
8
8
  const FormLayout_1 = tslib_1.__importStar(require("../components/FormLayout"));
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { StyledColumn } from '../../../types';
3
+ type StyledColumnBadgeRowsSectionProps = {
4
+ onChange: (data: StyledColumn) => void;
5
+ };
6
+ export declare const renderStyledColumnBadgeRowsSummary: (data: StyledColumn) => React.JSX.Element;
7
+ export declare const StyledColumnBadgeRowsSection: (props: StyledColumnBadgeRowsSectionProps) => React.JSX.Element;
8
+ export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StyledColumnWizardSettingsSection = exports.renderStyledColumnWizardSettingsSummary = void 0;
3
+ exports.StyledColumnBadgeRowsSection = exports.renderStyledColumnBadgeRowsSummary = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const CheckBox_1 = require("../../../components/CheckBox");
@@ -9,7 +9,7 @@ const Tabs_1 = require("../../../components/Tabs");
9
9
  const Tag_1 = require("../../../components/Tag");
10
10
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
11
11
  const Flex_1 = require("../../../components/Flex");
12
- const renderStyledColumnWizardSettingsSummary = (data) => {
12
+ const renderStyledColumnBadgeRowsSummary = (data) => {
13
13
  const badgeStyle = data;
14
14
  return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
15
15
  React.createElement(Flex_1.Box, { className: "twa:mt-3" },
@@ -26,82 +26,82 @@ const renderStyledColumnWizardSettingsSummary = (data) => {
26
26
  "Total Rows ",
27
27
  React.createElement(Tag_1.Tag, null, badgeStyle.RowScope?.ExcludeTotalRows ? 'no' : 'yes'))));
28
28
  };
29
- exports.renderStyledColumnWizardSettingsSummary = renderStyledColumnWizardSettingsSummary;
30
- const StyledColumnWizardSettingsSection = (props) => {
29
+ exports.renderStyledColumnBadgeRowsSummary = renderStyledColumnBadgeRowsSummary;
30
+ const StyledColumnBadgeRowsSection = (props) => {
31
31
  const { data } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
32
- const onExcludeDataRowsChanged = (ExcludeDataRows) => {
32
+ const onExcludeDataRowsChanged = (includeDataRows) => {
33
33
  props.onChange({
34
34
  ...data,
35
35
  BadgeStyle: {
36
36
  ...data.BadgeStyle,
37
37
  RowScope: {
38
38
  ...data.BadgeStyle.RowScope,
39
- ExcludeDataRows,
39
+ ExcludeDataRows: !includeDataRows,
40
40
  },
41
41
  },
42
42
  });
43
43
  };
44
- const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
44
+ const onExcludeGroupedRowsChanged = (includeGroupedRows) => {
45
45
  props.onChange({
46
46
  ...data,
47
47
  BadgeStyle: {
48
48
  ...data.BadgeStyle,
49
49
  RowScope: {
50
50
  ...data.BadgeStyle.RowScope,
51
- ExcludeGroupRows: ExcludeGroupedRows,
51
+ ExcludeGroupRows: !includeGroupedRows,
52
52
  },
53
53
  },
54
54
  });
55
55
  };
56
- const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
56
+ const onExcludeSummaryRowsChanged = (includeSummaryRows) => {
57
57
  props.onChange({
58
58
  ...data,
59
59
  BadgeStyle: {
60
60
  ...data.BadgeStyle,
61
61
  RowScope: {
62
62
  ...data.BadgeStyle.RowScope,
63
- ExcludeSummaryRows,
63
+ ExcludeSummaryRows: !includeSummaryRows,
64
64
  },
65
65
  },
66
66
  });
67
67
  };
68
- const onExcludeTotalRowsChanged = (ExcludeTotalRows) => {
68
+ const onExcludeTotalRowsChanged = (includeTotalRows) => {
69
69
  props.onChange({
70
70
  ...data,
71
71
  BadgeStyle: {
72
72
  ...data.BadgeStyle,
73
73
  RowScope: {
74
74
  ...data.BadgeStyle.RowScope,
75
- ExcludeTotalRows,
75
+ ExcludeTotalRows: !includeTotalRows,
76
76
  },
77
77
  },
78
78
  });
79
79
  };
80
80
  return (React.createElement(Tabs_1.Tabs, null,
81
- React.createElement(Tabs_1.Tabs.Tab, null, "Settings"),
81
+ React.createElement(Tabs_1.Tabs.Tab, null, "Row Types"),
82
82
  React.createElement(Tabs_1.Tabs.Content, null,
83
83
  React.createElement(Flex_1.Flex, { flexDirection: "row" },
84
84
  React.createElement(FormLayout_1.default, null,
85
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Data Rows:" },
85
+ React.createElement(FormLayout_1.FormRow, { label: "Data (leaf) Rows:" },
86
86
  React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
87
87
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-data-rows-checkbox", className: "twa:mr-2", checked:
88
88
  // @ts-ignore
89
- data.BadgeStyle.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged }))),
90
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Group Rows:" },
89
+ !data.BadgeStyle.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged }))),
90
+ React.createElement(FormLayout_1.FormRow, { label: "Group Rows:" },
91
91
  React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
92
92
  React.createElement(CheckBox_1.CheckBox, { className: "twa:mr-2", "data-name": "exclude-grouped-rows-checkbox", checked:
93
93
  // @ts-ignore
94
- data.BadgeStyle.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged }))),
95
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Row Summaries:" },
94
+ !data.BadgeStyle.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged }))),
95
+ React.createElement(FormLayout_1.FormRow, { label: "Summary Rows:" },
96
96
  React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
97
97
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-summary-rows-checkbox", className: "twa:mr-2", checked:
98
98
  // @ts-ignore
99
- data.BadgeStyle.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged }))),
99
+ !data.BadgeStyle.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged }))),
100
100
  ' ',
101
- React.createElement(FormLayout_1.FormRow, { label: "Exclude Total Rows:" },
101
+ React.createElement(FormLayout_1.FormRow, { label: "Total Rows:" },
102
102
  React.createElement(Flex_1.Flex, { alignItems: "center", className: "twa:ml-2" },
103
103
  React.createElement(CheckBox_1.CheckBox, { "data-name": "exclude-total-rows-checkbox", className: "twa:mr-2", checked:
104
104
  // @ts-ignore
105
- data.BadgeStyle.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged }))))))));
105
+ !data.BadgeStyle.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged }))))))));
106
106
  };
107
- exports.StyledColumnWizardSettingsSection = StyledColumnWizardSettingsSection;
107
+ exports.StyledColumnBadgeRowsSection = StyledColumnBadgeRowsSection;
@@ -12,7 +12,7 @@ const StyledColumnWizardTypeSection_1 = require("./StyledColumnWizardTypeSection
12
12
  const StyledColumnWizardColumnSection_1 = require("./StyledColumnWizardColumnSection");
13
13
  const StyledColumnWizardStyleSection_1 = require("./StyledColumnWizardStyleSection");
14
14
  const Helper_1 = require("../../../Utilities/Helpers/Helper");
15
- const StyledColumnWizardSettingsSection_1 = require("./StyledColumnWizardSettingsSection");
15
+ const StyledColumnBadgeRowsSection_1 = require("./StyledColumnBadgeRowsSection");
16
16
  const StyledColumnSparklineSettingsSection_1 = require("./StyledColumnSparklineSettingsSection");
17
17
  const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
18
18
  const StyledColumnBadgeSection_1 = require("./StyledColumnBadgeSection");
@@ -52,15 +52,6 @@ const StyledColumnWizard = (props) => {
52
52
  }
53
53
  props.onFinishWizard(styledColumn);
54
54
  };
55
- const AdditionalSettingSection = {
56
- details: 'Apply Additional Settings',
57
- renderSummary: StyledColumnWizardSettingsSection_1.renderStyledColumnWizardSettingsSummary,
58
- render: () => {
59
- return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
60
- React.createElement(StyledColumnWizardSettingsSection_1.StyledColumnWizardSettingsSection, { onChange: setStyledColumn })));
61
- },
62
- title: 'Settings',
63
- };
64
55
  const specificSteps = [];
65
56
  if (styledColumn.SparklineStyle) {
66
57
  specificSteps.push({
@@ -97,6 +88,15 @@ const StyledColumnWizard = (props) => {
97
88
  );
98
89
  }
99
90
  else if (styledColumn.BadgeStyle) {
91
+ specificSteps.push({
92
+ details: 'Select the Rows where the Badge will be applied',
93
+ renderSummary: StyledColumnBadgeRowsSection_1.renderStyledColumnBadgeRowsSummary,
94
+ render: () => {
95
+ return (React.createElement(Flex_1.Box, { className: "twa:p-2" },
96
+ React.createElement(StyledColumnBadgeRowsSection_1.StyledColumnBadgeRowsSection, { onChange: setStyledColumn })));
97
+ },
98
+ title: 'Rows',
99
+ });
100
100
  specificSteps.push({
101
101
  title: 'Badges',
102
102
  details: 'Create Badge Styles',
@@ -114,7 +114,6 @@ const StyledColumnWizard = (props) => {
114
114
  render: () => (React.createElement(Flex_1.Box, { className: "twa:p-2" },
115
115
  React.createElement(StyledColumnBadgeSection_1.StyledColumnBadgeSection, { onChange: setStyledColumn }))),
116
116
  });
117
- specificSteps.push(AdditionalSettingSection);
118
117
  }
119
118
  return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: styledColumn, onFinish: handleFinish, onHide: props.onCloseWizard, sections: [
120
119
  {
@@ -9,8 +9,8 @@ declare class SystemStatusViewPanelComponent extends React.Component<SystemStatu
9
9
  render(): React.JSX.Element;
10
10
  }
11
11
  export declare let SystemStatusViewPanel: import("react-redux").ConnectedComponent<typeof SystemStatusViewPanelComponent, {
12
- ref?: React.Ref<SystemStatusViewPanelComponent>;
13
12
  key?: React.Key | null | undefined;
13
+ ref?: React.Ref<SystemStatusViewPanelComponent>;
14
14
  context?: React.Context<import("react-redux").ReactReduxContextValue<any, import("redux").UnknownAction>>;
15
15
  store?: import("redux").Store;
16
16
  }>;
@@ -6,7 +6,7 @@ const React = tslib_1.__importStar(require("react"));
6
6
  const FormLayout_1 = tslib_1.__importStar(require("../../components/FormLayout"));
7
7
  const AdaptableContext_1 = require("../AdaptableContext");
8
8
  const AdaptableInput_1 = tslib_1.__importDefault(require("../Components/AdaptableInput"));
9
- const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
9
+ const throttle_1 = tslib_1.__importDefault(require("../../Utilities/utils/throttle"));
10
10
  const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
11
11
  const Panel_1 = tslib_1.__importDefault(require("../../components/Panel"));
12
12
  const ThemeField_1 = require("./ThemeField");
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Field = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
- const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
6
+ const throttle_1 = tslib_1.__importDefault(require("../../Utilities/utils/throttle"));
7
7
  const AdaptableContext_1 = require("../AdaptableContext");
8
8
  const StyleHelper_1 = require("../../Utilities/Helpers/StyleHelper");
9
9
  const FormLayout_1 = require("../../components/FormLayout");
@@ -12,7 +12,7 @@ const AdaptableContext_1 = require("../AdaptableContext");
12
12
  const Tabs_1 = require("../../components/Tabs");
13
13
  const NamedQueryContext_1 = require("../../components/ExpressionEditor/NamedQueryContext");
14
14
  const OnePageWizards_1 = require("./OnePageWizards");
15
- const kebabCase_1 = tslib_1.__importDefault(require("lodash/kebabCase"));
15
+ const kebabCase_1 = tslib_1.__importDefault(require("../../Utilities/utils/kebabCase"));
16
16
  const Flex_1 = require("../../components/Flex");
17
17
  const twMerge_1 = require("../../twMerge");
18
18
  const SummaryTag = (props) => (React.createElement(Flex_1.Box, { ...props }));
@@ -164,7 +164,7 @@ const OnePageWizard = (props) => {
164
164
  } },
165
165
  React.createElement(KeyHint_1.KeyHint, { className: "twa:mr-2 twa:inline-block twa:text-color-accent-foreground" }, navIndex),
166
166
  React.createElement("div", { className: "twa:flex-1" }, section.title),
167
- React.createElement(icons_1.Icon, { name: "error", className: (0, clsx_1.default)('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:hidden') })));
167
+ React.createElement(icons_1.Icon, { name: "error", className: (0, clsx_1.default)('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:invisible') })));
168
168
  }),
169
169
  selectedFeedback,
170
170
  React.createElement(Flex_1.Box, { className: "twa:flex-1" }),
@@ -223,6 +223,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
223
223
  redrawBody(): void;
224
224
  refreshHeader(): void;
225
225
  redrawRows(rowNodes?: IRowNode[]): void;
226
+ refreshGridHeader(): void;
226
227
  redrawRow(rowNode: IRowNode): void;
227
228
  refreshCell(rowNode: IRowNode, column: string | any, forceUpdate: boolean, suppressFlash?: boolean): void;
228
229
  refreshCells(rowNode: IRowNode, columns: (string | Column)[], forceUpdate: boolean, suppressFlash?: boolean): void;
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AdaptableAgGrid = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const throttle_1 = tslib_1.__importDefault(require("lodash/throttle"));
6
- const debounce_1 = tslib_1.__importDefault(require("lodash/debounce"));
5
+ const throttle_1 = tslib_1.__importDefault(require("../Utilities/utils/throttle"));
6
+ const debounce_1 = tslib_1.__importDefault(require("../Utilities/utils/debounce"));
7
7
  const ag_grid_enterprise_1 = require("ag-grid-enterprise");
8
8
  const AdaptableLogger_1 = require("./AdaptableLogger");
9
9
  const DocumentationLinkConstants_1 = require("../Utilities/Constants/DocumentationLinkConstants");
@@ -91,6 +91,7 @@ const Modal_1 = require("../components/Modal");
91
91
  const AdaptableLoadingScreen_1 = require("../View/Components/Popups/AdaptableLoadingScreen");
92
92
  const react_1 = require("react");
93
93
  const createAgStatusPanelComponent_1 = require("../Utilities/createAgStatusPanelComponent");
94
+ const only_1 = require("../Utilities/only");
94
95
  const weightedAverage_1 = require("../Utilities/weightedAverage");
95
96
  const RowSummary_1 = require("../AdaptableState/Common/RowSummary");
96
97
  const FlashingCellService_1 = require("../Utilities/Services/FlashingCellService");
@@ -1084,6 +1085,9 @@ class AdaptableAgGrid {
1084
1085
  */
1085
1086
  this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'aggFuncs', (original_aggFuncs) => {
1086
1087
  const aggregationFunctions = original_aggFuncs || {};
1088
+ aggregationFunctions[AggregationColumns_1.ONLY_AGG_FN_NAME] = (params) => {
1089
+ return (0, only_1.only)(params);
1090
+ };
1087
1091
  aggregationFunctions[AggregationColumns_1.WEIGHTED_AVERAGE_AGG_FN_NAME] = (params) => {
1088
1092
  const columnId = params.column.getColId();
1089
1093
  const adaptableAggFunc = this.getActiveAdaptableAggFuncForCol(columnId);
@@ -1466,6 +1470,18 @@ class AdaptableAgGrid {
1466
1470
  caseSensitive: !!this.adaptableOptions.quickSearchOptions.isQuickSearchCaseSensitive,
1467
1471
  };
1468
1472
  });
1473
+ /**
1474
+ * suppressOverlays
1475
+ */
1476
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'suppressOverlays', (original_suppressOverlays) => {
1477
+ // we want to suppress the exporting overlay because having it enabled will turn api.exportDataAsExcel() and api.exportDataAsCsv() into async operations,
1478
+ // see #export_data_synchronously
1479
+ let suppressOverlays = original_suppressOverlays || [];
1480
+ if (!suppressOverlays.includes('exporting')) {
1481
+ suppressOverlays.push('exporting');
1482
+ }
1483
+ return suppressOverlays;
1484
+ });
1469
1485
  }
1470
1486
  /**
1471
1487
  * Either initializes the AG Grid instance or delegates it to the framework wrappers (React/Anglar)
@@ -2248,6 +2264,9 @@ class AdaptableAgGrid {
2248
2264
  this.logger.consoleError('AG Grid redrawRows failed to locate some row nodes.', rowNodes, ex);
2249
2265
  }
2250
2266
  }
2267
+ refreshGridHeader() {
2268
+ this.agGridAdapter.getAgGridApi().refreshHeader();
2269
+ }
2251
2270
  redrawRow(rowNode) {
2252
2271
  this.redrawRows([rowNode]);
2253
2272
  }
@@ -2545,12 +2564,15 @@ class AdaptableAgGrid {
2545
2564
  updatedRows: [],
2546
2565
  removedRows: [],
2547
2566
  };
2548
- if (!dataRowConfig || !dataRowConfig.dataRows) {
2567
+ if (!dataRowConfig) {
2568
+ return result;
2569
+ }
2570
+ if (!dataRowConfig.addRows || !dataRowConfig.updateRows || !dataRowConfig.deleteRows) {
2549
2571
  return result;
2550
2572
  }
2551
- const addDataRows = dataRowConfig.dataRows.add;
2552
- const updateDataRows = dataRowConfig.dataRows.update;
2553
- const removeDataRows = dataRowConfig.dataRows.delete;
2573
+ const addDataRows = dataRowConfig.addRows;
2574
+ const updateDataRows = dataRowConfig.updateRows;
2575
+ const removeDataRows = dataRowConfig.deleteRows;
2554
2576
  if (this.hasAutogeneratedPrimaryKey) {
2555
2577
  this.addSyntheticPrimaryKeyIfMissing(addDataRows);
2556
2578
  }
@@ -475,8 +475,8 @@ class AgGridAdapter {
475
475
  ? 'number'
476
476
  : this.deriveAdaptableColumnDataType(agGridColumn, false);
477
477
  const isTreeColumn = this.isTreeColumn(isGeneratedRowGroupColumn);
478
- const alwaysHidden = this.adaptableApi.columnApi.internalApi.isAlwaysHiddenColumn(colDef);
479
- const visible = !alwaysHidden || agGridColumn.isVisible();
478
+ const isUIHiddenColumn = this.adaptableApi.columnApi.internalApi.isColumnUIHidden(colDef);
479
+ const visible = !isUIHiddenColumn || agGridColumn.isVisible();
480
480
  const isGenerated = isGeneratedRowGroupColumn || isGeneratedPivotResultColumn || isGeneratedSelectionColumn;
481
481
  const abColumn = {
482
482
  Uuid: (0, Uuid_1.createUuid)(),
@@ -486,9 +486,9 @@ class AgGridAdapter {
486
486
  resizable: colDef.resizable !== false,
487
487
  friendlyName: friendlyName,
488
488
  isPrimaryKey: ColumnId === pkColumn,
489
- dataType: dataType,
489
+ dataType,
490
490
  visible,
491
- alwaysHidden,
491
+ isUIHiddenColumn,
492
492
  readOnly: this.isColumnReadonly(colDef),
493
493
  columnGroup: ColumnGroup,
494
494
  fieldOnly: isGenerated ? false : this.isColumnFieldonly(colDef),