@adaptabletools/adaptable 22.0.0-canary.9 → 22.0.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 (168) 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/AdaptableOptions/UserInterfaceOptions.d.ts +2 -2
  7. package/src/AdaptableState/Common/AdaptableColumn.d.ts +3 -3
  8. package/src/AdaptableState/Common/AdaptableForm.d.ts +1 -1
  9. package/src/AdaptableState/Common/AggregationColumns.d.ts +1 -0
  10. package/src/AdaptableState/Common/AggregationColumns.js +1 -0
  11. package/src/AdaptableState/Common/DataUpdateConfig.d.ts +15 -5
  12. package/src/AdaptableState/Common/TransposeConfig.d.ts +4 -9
  13. package/src/AdaptableState/InitialState.d.ts +1 -1
  14. package/src/AdaptableState/UserInterfaceState.d.ts +1 -1
  15. package/src/Api/ColumnApi.d.ts +1 -1
  16. package/src/Api/GridApi.d.ts +4 -0
  17. package/src/Api/Implementation/ApiBase.d.ts +1 -1
  18. package/src/Api/Implementation/ApiBase.js +1 -1
  19. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -1
  20. package/src/Api/Implementation/ColumnApiImpl.js +4 -4
  21. package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
  22. package/src/Api/Implementation/GridApiImpl.js +6 -5
  23. package/src/Api/Implementation/LayoutHelpers.js +1 -1
  24. package/src/Api/Internal/ColumnInternalApi.d.ts +1 -1
  25. package/src/Api/Internal/ColumnInternalApi.js +5 -3
  26. package/src/Api/Internal/EventInternalApi.js +1 -1
  27. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +1 -1
  28. package/src/Redux/Store/AdaptableReduxMerger.js +5 -6
  29. package/src/Strategy/FormatColumnModule.js +2 -2
  30. package/src/Strategy/LayoutModule.js +1 -1
  31. package/src/Strategy/StyledColumnModule.js +14 -6
  32. package/src/Strategy/TeamSharingModule.js +2 -2
  33. package/src/Strategy/Utilities/FormatColumn/{getFormatColumnSettingsTargetItems.d.ts → getFormatColumnRowTargetItems.d.ts} +1 -1
  34. package/src/Strategy/Utilities/FormatColumn/getFormatColumnRowTargetItems.js +22 -0
  35. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +5 -13
  36. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +1 -1
  37. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +1 -1
  38. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +1 -1
  39. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +1 -1
  40. package/src/Utilities/Extensions/StringExtensions.js +1 -1
  41. package/src/Utilities/Helpers/AdaptableHelper.js +2 -2
  42. package/src/Utilities/Helpers/FormatHelper.js +1 -1
  43. package/src/Utilities/Hooks/index.d.ts +1 -2
  44. package/src/Utilities/Hooks/index.js +1 -2
  45. package/src/Utilities/Services/LicenseService/index.js +1 -1
  46. package/src/Utilities/Services/RowSummaryService.d.ts +1 -1
  47. package/src/Utilities/Services/RowSummaryService.js +2 -2
  48. package/src/Utilities/getScopeViewItems.js +1 -1
  49. package/src/Utilities/only.d.ts +15 -0
  50. package/src/Utilities/only.js +54 -0
  51. package/src/Utilities/utils/chunk.d.ts +6 -0
  52. package/src/Utilities/utils/chunk.js +17 -0
  53. package/src/Utilities/utils/clamp.d.ts +5 -0
  54. package/src/Utilities/utils/clamp.js +7 -0
  55. package/src/Utilities/utils/cloneDeepWith.d.ts +9 -0
  56. package/src/Utilities/utils/cloneDeepWith.js +67 -0
  57. package/src/Utilities/utils/debounce.d.ts +20 -0
  58. package/src/Utilities/utils/debounce.js +121 -0
  59. package/src/Utilities/utils/flatten.d.ts +5 -0
  60. package/src/Utilities/utils/flatten.js +7 -0
  61. package/src/Utilities/utils/flattenDeep.d.ts +5 -0
  62. package/src/Utilities/utils/flattenDeep.js +7 -0
  63. package/src/Utilities/utils/get.d.ts +6 -0
  64. package/src/Utilities/utils/get.js +35 -0
  65. package/src/Utilities/utils/index.d.ts +22 -0
  66. package/src/Utilities/utils/index.js +22 -0
  67. package/src/Utilities/utils/isArray.d.ts +6 -0
  68. package/src/Utilities/utils/isArray.js +6 -0
  69. package/src/Utilities/utils/isEqual.d.ts +5 -0
  70. package/src/Utilities/utils/isEqual.js +124 -0
  71. package/src/Utilities/utils/isObject.d.ts +6 -0
  72. package/src/Utilities/utils/isObject.js +9 -0
  73. package/src/Utilities/utils/isPlainObject.d.ts +6 -0
  74. package/src/Utilities/utils/isPlainObject.js +17 -0
  75. package/src/Utilities/utils/kebabCase.d.ts +5 -0
  76. package/src/Utilities/utils/kebabCase.js +8 -0
  77. package/src/Utilities/utils/merge.d.ts +11 -0
  78. package/src/Utilities/utils/merge.js +40 -0
  79. package/src/Utilities/utils/mergeWith.d.ts +7 -0
  80. package/src/Utilities/utils/mergeWith.js +46 -0
  81. package/src/Utilities/utils/orderBy.d.ts +8 -0
  82. package/src/Utilities/utils/orderBy.js +30 -0
  83. package/src/Utilities/utils/parseInt.d.ts +6 -0
  84. package/src/Utilities/utils/parseInt.js +9 -0
  85. package/src/Utilities/utils/sentenceCase.d.ts +6 -0
  86. package/src/Utilities/utils/sentenceCase.js +15 -0
  87. package/src/Utilities/utils/startCase.d.ts +5 -0
  88. package/src/Utilities/utils/startCase.js +11 -0
  89. package/src/Utilities/utils/throttle.d.ts +17 -0
  90. package/src/Utilities/utils/throttle.js +19 -0
  91. package/src/Utilities/utils/toNumber.d.ts +5 -0
  92. package/src/Utilities/utils/toNumber.js +39 -0
  93. package/src/Utilities/utils/uniq.d.ts +7 -0
  94. package/src/Utilities/utils/uniq.js +9 -0
  95. package/src/Utilities/utils/uniqBy.d.ts +8 -0
  96. package/src/Utilities/utils/uniqBy.js +22 -0
  97. package/src/Utilities/utils/words.d.ts +7 -0
  98. package/src/Utilities/utils/words.js +10 -0
  99. package/src/Utilities/weightedAverage.js +1 -1
  100. package/src/View/AdaptableComputedCSSVarsContext.js +1 -1
  101. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ColumnsList.js +1 -1
  102. package/src/View/Alert/Wizard/AlertButtonsEditor.js +1 -1
  103. package/src/View/Charting/ChartingWizard/AgChargingWizard/PreviewChartSection.js +1 -1
  104. package/src/View/Components/ColumnFilter/components/ColumnFilterInput.js +1 -1
  105. package/src/View/Components/ColumnFilter/components/ColumnFilterInputList.js +1 -1
  106. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -1
  107. package/src/View/Components/RangesComponent.js +1 -1
  108. package/src/View/Components/Selectors/PermittedValuesSelector.js +1 -1
  109. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -1
  110. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  111. package/src/View/Components/ValueSelector/index.js +7 -2
  112. package/src/View/Dashboard/CustomDashboardButton.js +1 -1
  113. package/src/View/Dashboard/Dashboard.js +1 -1
  114. package/src/View/Dashboard/DashboardPopup.js +4 -3
  115. package/src/View/DataImport/DataImportWizard/sections/DataPreview.js +1 -1
  116. package/src/View/DataSet/DataSetViewPanel.d.ts +1 -1
  117. package/src/View/Export/Wizard/NewReportWizard.js +8 -8
  118. package/src/View/Filter/FilterViewPanel.d.ts +1 -1
  119. package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +19 -10
  120. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +1 -1
  121. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +2 -2
  122. package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.d.ts +8 -0
  123. package/src/View/FormatColumn/Wizard/FormatColumnRowScopeWizardSection.js +80 -0
  124. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +22 -61
  125. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +22 -8
  126. package/src/View/GridFilter/GridFilterViewPanel.js +3 -3
  127. package/src/View/Layout/LayoutViewPanel.js +1 -1
  128. package/src/View/Layout/TransposedPopup.js +0 -1
  129. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  130. package/src/View/Note/NoteEditor.js +1 -1
  131. package/src/View/QuickSearch/useQuickSearchDebounced.js +1 -1
  132. package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
  133. package/src/View/StyledColumn/Wizard/StyledColumnBadgeRowsSection.d.ts +8 -0
  134. package/src/View/StyledColumn/Wizard/{StyledColumnWizardSettingsSection.js → StyledColumnBadgeRowsSection.js} +19 -19
  135. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +10 -11
  136. package/src/View/SystemStatus/SystemStatusViewPanel.d.ts +1 -1
  137. package/src/View/Theme/ThemeEditor.js +1 -1
  138. package/src/View/Theme/ThemeField.js +1 -1
  139. package/src/View/Wizard/OnePageAdaptableWizard.js +1 -1
  140. package/src/View/Wizard/OnePageWizards.js +1 -1
  141. package/src/agGrid/AdaptableAgGrid.js +26 -7
  142. package/src/agGrid/AgGridAdapter.js +4 -4
  143. package/src/agGrid/AgGridColumnAdapter.js +11 -4
  144. package/src/agGrid/AgGridExportAdapter.d.ts +2 -2
  145. package/src/agGrid/AgGridExportAdapter.js +7 -6
  146. package/src/agGrid/cellRenderers/PercentBarRenderer.js +17 -5
  147. package/src/components/ColorPicker/ColorPicker.js +1 -1
  148. package/src/components/DropdownButton/renderItem.js +1 -1
  149. package/src/components/ExpressionEditor/QueryBuilder/QueryBuilderInputs.js +1 -1
  150. package/src/components/FormLayout/index.js +1 -1
  151. package/src/components/OverlayTrigger/index.js +1 -1
  152. package/src/components/Select/Select.js +4 -0
  153. package/src/env.js +2 -2
  154. package/src/layout-manager/src/isLayoutEqual.js +1 -1
  155. package/src/metamodel/adaptable.metamodel.d.ts +12 -1
  156. package/src/metamodel/adaptable.metamodel.js +1 -1
  157. package/src/migration/VersionUpgrade22.js +9 -0
  158. package/themes/dark.css +2 -3
  159. package/themes/light.css +1 -1
  160. package/tsconfig.esm.tsbuildinfo +1 -1
  161. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsTargetItems.js +0 -12
  162. package/src/Utilities/Hooks/useAdaptableState.d.ts +0 -3
  163. package/src/Utilities/Hooks/useAdaptableState.js +0 -39
  164. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.d.ts +0 -8
  165. package/src/View/FormatColumn/Wizard/FormatColumnTargetWizardSection.js +0 -31
  166. package/src/View/StyledColumn/Wizard/StyledColumnWizardSettingsSection.d.ts +0 -8
  167. /package/src/View/FormatColumn/Wizard/{FormatColumnScopeWizardSection.d.ts → FormatColumnColumnScopeWizardSection.d.ts} +0 -0
  168. /package/src/View/FormatColumn/Wizard/{FormatColumnScopeWizardSection.js → FormatColumnColumnScopeWizardSection.js} +0 -0
@@ -0,0 +1,80 @@
1
+ import * as React from 'react';
2
+ import FormLayout, { FormRow } from '../../../components/FormLayout';
3
+ import { CheckBox } from '../../../components/CheckBox';
4
+ import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
+ import { Tag } from '../../../components/Tag';
6
+ import { Box, Flex } from '../../../components/Flex';
7
+ import { Tabs } from '../../../components/Tabs';
8
+ export const renderFormatColumnRowScopeSummary = (data) => {
9
+ return (React.createElement(Box, { className: "twa:p-2" },
10
+ React.createElement(Box, { className: "twa:mt-3" },
11
+ "Data Rows ",
12
+ React.createElement(Tag, null, data.RowScope?.ExcludeDataRows ? 'no' : 'yes')),
13
+ ' ',
14
+ React.createElement(Box, { className: "twa:mt-3" },
15
+ "Group Rows ",
16
+ React.createElement(Tag, null, data.RowScope?.ExcludeGroupRows ? 'no' : 'yes')),
17
+ React.createElement(Box, { className: "twa:mt-3" },
18
+ "Summary Rows ",
19
+ React.createElement(Tag, null, data.RowScope?.ExcludeSummaryRows ? 'no' : 'yes')),
20
+ React.createElement(Box, { className: "twa:mt-3" },
21
+ "Total Rows ",
22
+ React.createElement(Tag, null, data.RowScope?.ExcludeTotalRows ? 'no' : 'yes'))));
23
+ };
24
+ export const FormatColumnRowScopeWizardSection = (props) => {
25
+ const { data } = useOnePageAdaptableWizardContext();
26
+ const onExcludeDataRowsChanged = (includeDataRows) => {
27
+ props.onChange({
28
+ ...data,
29
+ RowScope: {
30
+ ...data.RowScope,
31
+ ExcludeDataRows: !includeDataRows,
32
+ },
33
+ });
34
+ };
35
+ const onExcludeGroupedRowsChanged = (includeGroupedRows) => {
36
+ props.onChange({
37
+ ...data,
38
+ RowScope: {
39
+ ...data.RowScope,
40
+ ExcludeGroupRows: !includeGroupedRows,
41
+ },
42
+ });
43
+ };
44
+ const onExcludeSummaryRowsChanged = (includeSummaryRows) => {
45
+ props.onChange({
46
+ ...data,
47
+ RowScope: {
48
+ ...data.RowScope,
49
+ ExcludeSummaryRows: !includeSummaryRows,
50
+ },
51
+ });
52
+ };
53
+ const onExcludeTotalRowsChanged = (includeTotalRows) => {
54
+ props.onChange({
55
+ ...data,
56
+ RowScope: {
57
+ ...data.RowScope,
58
+ ExcludeTotalRows: !includeTotalRows,
59
+ },
60
+ });
61
+ };
62
+ return (React.createElement(Flex, { flexDirection: "column", style: { height: '100%' } },
63
+ React.createElement(Tabs, { className: "twa:mb-3" },
64
+ React.createElement(Tabs.Tab, null, "Row Types"),
65
+ React.createElement(Tabs.Content, null,
66
+ React.createElement(Flex, { flexDirection: "row" },
67
+ React.createElement(FormLayout, null, data.Target === 'cell' && (React.createElement(React.Fragment, null,
68
+ React.createElement(FormRow, { label: "Data (leaf) Rows:" },
69
+ React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
70
+ React.createElement(CheckBox, { "data-name": "include-data-rows-checkbox", checked: !data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, className: "twa:mr-2" }))),
71
+ React.createElement(FormRow, { label: "Group Rows:" },
72
+ React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
73
+ React.createElement(CheckBox, { "data-name": "include-grouped-rows-checkbox", checked: !data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, className: "twa:mr-2" }))),
74
+ React.createElement(FormRow, { label: "Summary Rows:" },
75
+ React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
76
+ React.createElement(CheckBox, { "data-name": "include-summary-rows-checkbox", checked: !data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, className: "twa:mr-2" }))),
77
+ React.createElement(FormRow, { label: "Total Rows:" },
78
+ React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
79
+ React.createElement(CheckBox, { "data-name": "include-total-rows-checkbox", checked: !data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, className: "twa:mr-2" })))))))))));
80
+ };
@@ -1,30 +1,22 @@
1
1
  import * as React from 'react';
2
2
  import FormLayout, { FormRow } from '../../../components/FormLayout';
3
- import { CheckBox } from '../../../components/CheckBox';
4
3
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
5
4
  import { Tag } from '../../../components/Tag';
6
5
  import Radio, { RadioGroup } from '../../../components/Radio';
7
6
  import { Box, Flex } from '../../../components/Flex';
8
7
  import { Tabs } from '../../../components/Tabs';
9
8
  import Input from '../../../components/Input';
9
+ import { TypeRadio } from '../../Wizard/TypeRadio';
10
10
  export const renderFormatColumnSettingsSummary = (data) => {
11
11
  return (React.createElement(Box, { className: "twa:p-2" },
12
12
  React.createElement(Box, { className: "twa:mt-3" },
13
13
  "Name ",
14
14
  React.createElement(Tag, null, data.Name)),
15
15
  React.createElement(Box, { className: "twa:mt-3" },
16
- "Data Rows ",
17
- React.createElement(Tag, null, data.RowScope?.ExcludeDataRows ? 'no' : 'yes')),
16
+ "Target",
17
+ ' ',
18
+ React.createElement(Tag, null, !data.Target || data.Target === 'cell' ? 'Column Cells' : 'Column Header')),
18
19
  ' ',
19
- React.createElement(Box, { className: "twa:mt-3" },
20
- "Group Rows ",
21
- React.createElement(Tag, null, data.RowScope?.ExcludeGroupRows ? 'no' : 'yes')),
22
- React.createElement(Box, { className: "twa:mt-3" },
23
- "Summary Rows ",
24
- React.createElement(Tag, null, data.RowScope?.ExcludeSummaryRows ? 'no' : 'yes')),
25
- React.createElement(Box, { className: "twa:mt-3" },
26
- "Total Rows ",
27
- React.createElement(Tag, null, data.RowScope?.ExcludeTotalRows ? 'no' : 'yes')),
28
20
  React.createElement(Box, { className: "twa:mt-3" },
29
21
  "Apply on Column Groups:",
30
22
  ' ',
@@ -33,49 +25,22 @@ export const renderFormatColumnSettingsSummary = (data) => {
33
25
  : data.ColumnGroupScope))));
34
26
  };
35
27
  export const FormatColumnSettingsWizardSection = (props) => {
36
- const { data } = useOnePageAdaptableWizardContext();
37
- const onNameChange = (event) => {
38
- props.onChange({
39
- ...data,
40
- Name: event.target.value,
41
- });
42
- };
43
- const onExcludeDataRowsChanged = (ExcludeDataRows) => {
44
- props.onChange({
45
- ...data,
46
- RowScope: {
47
- ...data.RowScope,
48
- ExcludeDataRows,
49
- },
50
- });
51
- };
52
- const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
28
+ const { data, api } = useOnePageAdaptableWizardContext();
29
+ const currentTarget = data.Target ? data.Target : 'cell';
30
+ const handleTargetChange = (target) => {
31
+ // Update the formatColumn object
53
32
  props.onChange({
54
33
  ...data,
55
- RowScope: {
56
- ...data.RowScope,
57
- ExcludeGroupRows: ExcludeGroupedRows,
58
- },
34
+ Target: target,
59
35
  });
60
36
  };
61
- const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
62
- props.onChange({
63
- ...data,
64
- RowScope: {
65
- ...data.RowScope,
66
- ExcludeSummaryRows,
67
- },
68
- });
69
- };
70
- const onExcludeTotalRowsChanged = (ExcludeTotalRows) => {
37
+ const onNameChange = (event) => {
71
38
  props.onChange({
72
39
  ...data,
73
- RowScope: {
74
- ...data.RowScope,
75
- ExcludeTotalRows,
76
- },
40
+ Name: event.target.value,
77
41
  });
78
42
  };
43
+ const behaviourSpellingVariant = api.internalApi.getCorrectEnglishVariant('Behaviour');
79
44
  return (React.createElement(Flex, { flexDirection: "column", style: { height: '100%' } },
80
45
  React.createElement(Tabs, { className: "twa:mb-3" },
81
46
  React.createElement(Tabs.Tab, null, "Settings"),
@@ -84,24 +49,20 @@ export const FormatColumnSettingsWizardSection = (props) => {
84
49
  React.createElement(FormLayout, { className: "twa:max-w-[300px] twa:w-full" },
85
50
  React.createElement(FormRow, { label: "Name" },
86
51
  React.createElement(Input, { className: "twa:w-full", "data-name": "format-column-name", onChange: onNameChange, value: data?.Name ?? '' })))))),
52
+ React.createElement(Tabs, { className: "twa:mb-3" },
53
+ React.createElement(Tabs.Tab, null, "Target"),
54
+ React.createElement(Tabs.Content, null,
55
+ React.createElement(Flex, { flexDirection: "column" },
56
+ React.createElement(TypeRadio, { "data-name": "target-column-cell", text: 'Column Cells', description: "Column Cells are styled and formatted", checked: currentTarget === 'cell', onClick: () => handleTargetChange('cell') }),
57
+ React.createElement(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') })))),
87
58
  React.createElement(Tabs, null,
88
- React.createElement(Tabs.Tab, null, "Configuration"),
59
+ React.createElement(Tabs.Tab, null,
60
+ "Column Group ",
61
+ behaviourSpellingVariant,
62
+ " "),
89
63
  React.createElement(Tabs.Content, null,
90
64
  React.createElement(Flex, { flexDirection: "row" },
91
65
  React.createElement(FormLayout, null,
92
- data.Target === 'cell' && (React.createElement(React.Fragment, null,
93
- React.createElement(FormRow, { label: "Exclude Data Rows:" },
94
- React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
95
- React.createElement(CheckBox, { "data-name": "exclude-data-rows-checkbox", checked: data.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged, className: "twa:mr-2" }))),
96
- React.createElement(FormRow, { label: "Exclude Group Rows:" },
97
- React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
98
- React.createElement(CheckBox, { "data-name": "exclude-grouped-rows-checkbox", checked: data.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged, className: "twa:mr-2" }))),
99
- React.createElement(FormRow, { label: "Exclude Row Summaries:" },
100
- React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
101
- React.createElement(CheckBox, { "data-name": "exclude-summary-rows-checkbox", checked: data.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged, className: "twa:mr-2" }))),
102
- React.createElement(FormRow, { label: "Exclude Total Rows:" },
103
- React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
104
- React.createElement(CheckBox, { "data-name": "exclude-total-rows-checkbox", checked: data.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged, className: "twa:mr-2" }))))),
105
66
  React.createElement(FormRow, { label: "Apply on Column Group:" },
106
67
  React.createElement(RadioGroup, { value: data.ColumnGroupScope || 'Both', name: "columnGroupScope", orientation: "horizontal", onRadioChange: (columnGroupScope) => {
107
68
  props.onChange({
@@ -2,7 +2,10 @@ import * as React from 'react';
2
2
  import { useState } from 'react';
3
3
  import { OnePageAdaptableWizard, OnePageWizardSummary } from '../../Wizard/OnePageAdaptableWizard';
4
4
  import { cloneObject } from '../../../Utilities/Helpers/Helper';
5
- import { FormatColumnScopeWizardSection, renderFormatColumnScopeSummary, } from './FormatColumnScopeWizardSection';
5
+ import { FormatColumnScopeWizardSection, renderFormatColumnScopeSummary, } from './FormatColumnColumnScopeWizardSection';
6
+ import { FormatColumnRowScopeWizardSection, renderFormatColumnRowScopeSummary,
7
+ // renderFormatColumnRowScopeSummary,
8
+ } from './FormatColumnRowScopeWizardSection';
6
9
  import { FormatColumnStyleWizardSection, isFormatColumnStyleValid, renderFormatColumnStyleWizardSummary, } from './FormatColumnStyleWizardSection';
7
10
  import { FormatColumnFormatWizardSection, getFormatDisplayTypeForScope, renderFormatColumnFormatSummary, } from './FormatColumnFormatWizardSection';
8
11
  import { useAdaptable } from '../../AdaptableContext';
@@ -17,11 +20,22 @@ import { isAdaptableRuleValid } from '../../Components/EntityRulesEditor/Utiliti
17
20
  import { FormatColumnRuleWizardSection } from './FormatColumnRuleWizardSection';
18
21
  import { DEFAULT_PREDICATE_ID_FOR_FORMAT_COLUMN } from './constants';
19
22
  import { isObjectEmpty } from '../../../Utilities/Extensions/ObjectExtensions';
20
- import { FormatColumnTargetWizardSection, renderFormatColumnTargetSummary, } from './FormatColumnTargetWizardSection';
21
23
  import { Box, Flex } from '../../../components/Flex';
22
24
  const adjustDisplayFormat = (fc, api) => {
23
25
  const formatColumn = { ...fc };
24
26
  let formatDataType = getFormatDisplayTypeForScope(formatColumn.Scope, api);
27
+ // Add RowScope and Target defaults for Format Columns that have been created in Initial State
28
+ if (!formatColumn.RowScope) {
29
+ formatColumn.RowScope = {
30
+ ExcludeDataRows: false,
31
+ ExcludeGroupRows: false,
32
+ ExcludeSummaryRows: false,
33
+ ExcludeTotalRows: false,
34
+ };
35
+ }
36
+ if (!formatColumn.Target) {
37
+ formatColumn.Target = 'cell';
38
+ }
25
39
  if (formatColumn.Target === 'columnHeader') {
26
40
  // Column Headers are always text
27
41
  formatDataType = 'text';
@@ -96,7 +110,7 @@ export function FormatColumnWizard(props) {
96
110
  return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, modal: props.modal, data: formatColumn, onHide: props.onCloseWizard, onFinish: handleFinish, sections: [
97
111
  {
98
112
  title: 'Settings',
99
- details: 'Enter Name and set Additional Properties',
113
+ details: 'Enter Name and other Properties',
100
114
  isValid: (formatColumnData) => {
101
115
  if (!formatColumnData.Name) {
102
116
  return 'Format Column Name cannot be blank';
@@ -113,7 +127,7 @@ export function FormatColumnWizard(props) {
113
127
  },
114
128
  },
115
129
  {
116
- title: 'Scope',
130
+ title: 'Columns',
117
131
  details: 'Select which Columns will be formatted',
118
132
  isValid: isScopeValid,
119
133
  renderSummary: renderFormatColumnScopeSummary,
@@ -123,12 +137,12 @@ export function FormatColumnWizard(props) {
123
137
  },
124
138
  },
125
139
  {
126
- title: 'Target',
127
- details: 'Select which Columns Elements will be formatted',
128
- renderSummary: renderFormatColumnTargetSummary,
140
+ title: 'Rows',
141
+ details: 'Select which Rows will be formatted',
142
+ renderSummary: renderFormatColumnRowScopeSummary,
129
143
  render: () => {
130
144
  return (React.createElement(Flex, { flexDirection: "column", className: "twa:p-2 twa:h-full" },
131
- React.createElement(FormatColumnTargetWizardSection, { onChange: setFormatColumn })));
145
+ React.createElement(FormatColumnRowScopeWizardSection, { onChange: setFormatColumn })));
132
146
  },
133
147
  },
134
148
  {
@@ -21,14 +21,14 @@ const QueryViewPanelComponent = (props) => {
21
21
  const disabled = isReadOnly || isSuspended || gridFilterAccessLevel === 'ReadOnly';
22
22
  const buttonExpand = (React.createElement(ButtonExpand, { disabled: disabled, accessLevel: gridFilterAccessLevel, variant: "text", tone: "neutral", onClick: onExpand, tooltip: "Edit the Expression in UI", className: "twa:ml-1" }));
23
23
  const renderExpressionLabel = () => {
24
- 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';
24
+ 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';
25
25
  const placeholderClasses = 'twa:text-gray-400 twa:italic';
26
26
  const labelClassName = clsx(baseClasses, {
27
27
  [placeholderClasses]: !expression,
28
28
  });
29
29
  const expressionLabel = (React.createElement(Tooltip, { label: expression || 'Click to edit Grid Filter' },
30
- React.createElement(Box, { className: clsx('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter')));
31
- return (React.createElement(FieldWrap, { className: "twa:flex-1 twa:min-w-0 twa:overflow-visible" },
30
+ React.createElement(Box, { className: clsx('twa:flex-1 twa:h-full twa:min-w-0', labelClassName), "data-name": "grid-filter-input", onClick: onExpand }, expression || 'Grid Filter...')));
31
+ return (React.createElement(FieldWrap, { className: "twa:flex-1 twa:min-w-0 twa:min-h-input twa:overflow-visible" },
32
32
  buttonExpand,
33
33
  expressionLabel,
34
34
  gridFilter && !isExpressionValid && (React.createElement(ButtonInvalid, { variant: "text", tone: "neutral", tooltip: "Invalid Grid Filter" }))));
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import * as PopupRedux from '../../Redux/ActionsReducers/PopupRedux';
3
3
  import { connect } from 'react-redux';
4
- import isEqual from 'lodash/isEqual';
4
+ import isEqual from '../../Utilities/utils/isEqual';
5
5
  import { Select } from '../../components/Select';
6
6
  import join from '../../components/utils/join';
7
7
  import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
@@ -80,7 +80,6 @@ export const TransposedPopup = (props) => {
80
80
  const transposeConfig = {
81
81
  transposedColumnId: rawConfig.transposedColumnId ?? primaryKey,
82
82
  hideTransposedColumn: rawConfig.hideTransposedColumn ?? true,
83
- autosize: rawConfig.autosize ?? true,
84
83
  columnsToTranspose: rawConfig.columnsToTranspose,
85
84
  rowsToTranspose: rawConfig.rowsToTranspose,
86
85
  };
@@ -365,7 +365,7 @@ export const ColumnsSection = (props) => {
365
365
  const visibleIds = layout.TableColumns.filter((colId) => {
366
366
  return (layout.ColumnVisibility?.[colId] !== false &&
367
367
  adaptable.api.columnApi.isSelectionColumn(colId) === false &&
368
- !adaptable.api.columnApi.internalApi.isAlwaysHiddenColumn(colId));
368
+ !adaptable.api.columnApi.internalApi.isColumnUIHidden(colId));
369
369
  });
370
370
  const currentlyDisplayedColumnIds = searchInputValue
371
371
  ? currentOrder
@@ -1,4 +1,4 @@
1
- import throttle from 'lodash/throttle';
1
+ import throttle from '../../Utilities/utils/throttle';
2
2
  import * as React from 'react';
3
3
  import Textarea from '../../components/Textarea';
4
4
  import SimpleButton from '../../components/SimpleButton';
@@ -1,5 +1,5 @@
1
1
  import { useEffect, useState, useMemo } from 'react';
2
- import debounce from 'lodash/debounce';
2
+ import debounce from '../../Utilities/utils/debounce';
3
3
  import { QUICK_SEARCH_DEBOUNCE_TIME } from '../../Utilities/Constants/GeneralConstants';
4
4
  export const useQuickSearchDebounced = (props) => {
5
5
  const [searchText, setSearchText] = useState(props.QuickSearchText ?? '');
@@ -1,4 +1,4 @@
1
- import chunk from 'lodash/chunk';
1
+ import chunk from '../Utilities/utils/chunk';
2
2
  import * as React from 'react';
3
3
  import { CheckBox } from '../components/CheckBox';
4
4
  import FormLayout, { FormRow } from '../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 {};
@@ -5,7 +5,7 @@ import { Tabs } from '../../../components/Tabs';
5
5
  import { Tag } from '../../../components/Tag';
6
6
  import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
7
7
  import { Flex, Box } from '../../../components/Flex';
8
- export const renderStyledColumnWizardSettingsSummary = (data) => {
8
+ export const renderStyledColumnBadgeRowsSummary = (data) => {
9
9
  const badgeStyle = data;
10
10
  return (React.createElement(Box, { className: "twa:p-2" },
11
11
  React.createElement(Box, { className: "twa:mt-3" },
@@ -22,80 +22,80 @@ export const renderStyledColumnWizardSettingsSummary = (data) => {
22
22
  "Total Rows ",
23
23
  React.createElement(Tag, null, badgeStyle.RowScope?.ExcludeTotalRows ? 'no' : 'yes'))));
24
24
  };
25
- export const StyledColumnWizardSettingsSection = (props) => {
25
+ export const StyledColumnBadgeRowsSection = (props) => {
26
26
  const { data } = useOnePageAdaptableWizardContext();
27
- const onExcludeDataRowsChanged = (ExcludeDataRows) => {
27
+ const onExcludeDataRowsChanged = (includeDataRows) => {
28
28
  props.onChange({
29
29
  ...data,
30
30
  BadgeStyle: {
31
31
  ...data.BadgeStyle,
32
32
  RowScope: {
33
33
  ...data.BadgeStyle.RowScope,
34
- ExcludeDataRows,
34
+ ExcludeDataRows: !includeDataRows,
35
35
  },
36
36
  },
37
37
  });
38
38
  };
39
- const onExcludeGroupedRowsChanged = (ExcludeGroupedRows) => {
39
+ const onExcludeGroupedRowsChanged = (includeGroupedRows) => {
40
40
  props.onChange({
41
41
  ...data,
42
42
  BadgeStyle: {
43
43
  ...data.BadgeStyle,
44
44
  RowScope: {
45
45
  ...data.BadgeStyle.RowScope,
46
- ExcludeGroupRows: ExcludeGroupedRows,
46
+ ExcludeGroupRows: !includeGroupedRows,
47
47
  },
48
48
  },
49
49
  });
50
50
  };
51
- const onExcludeSummaryRowsChanged = (ExcludeSummaryRows) => {
51
+ const onExcludeSummaryRowsChanged = (includeSummaryRows) => {
52
52
  props.onChange({
53
53
  ...data,
54
54
  BadgeStyle: {
55
55
  ...data.BadgeStyle,
56
56
  RowScope: {
57
57
  ...data.BadgeStyle.RowScope,
58
- ExcludeSummaryRows,
58
+ ExcludeSummaryRows: !includeSummaryRows,
59
59
  },
60
60
  },
61
61
  });
62
62
  };
63
- const onExcludeTotalRowsChanged = (ExcludeTotalRows) => {
63
+ const onExcludeTotalRowsChanged = (includeTotalRows) => {
64
64
  props.onChange({
65
65
  ...data,
66
66
  BadgeStyle: {
67
67
  ...data.BadgeStyle,
68
68
  RowScope: {
69
69
  ...data.BadgeStyle.RowScope,
70
- ExcludeTotalRows,
70
+ ExcludeTotalRows: !includeTotalRows,
71
71
  },
72
72
  },
73
73
  });
74
74
  };
75
75
  return (React.createElement(Tabs, null,
76
- React.createElement(Tabs.Tab, null, "Settings"),
76
+ React.createElement(Tabs.Tab, null, "Row Types"),
77
77
  React.createElement(Tabs.Content, null,
78
78
  React.createElement(Flex, { flexDirection: "row" },
79
79
  React.createElement(FormLayout, null,
80
- React.createElement(FormRow, { label: "Exclude Data Rows:" },
80
+ React.createElement(FormRow, { label: "Data (leaf) Rows:" },
81
81
  React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
82
82
  React.createElement(CheckBox, { "data-name": "exclude-data-rows-checkbox", className: "twa:mr-2", checked:
83
83
  // @ts-ignore
84
- data.BadgeStyle.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged }))),
85
- React.createElement(FormRow, { label: "Exclude Group Rows:" },
84
+ !data.BadgeStyle.RowScope?.ExcludeDataRows, onChange: onExcludeDataRowsChanged }))),
85
+ React.createElement(FormRow, { label: "Group Rows:" },
86
86
  React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
87
87
  React.createElement(CheckBox, { className: "twa:mr-2", "data-name": "exclude-grouped-rows-checkbox", checked:
88
88
  // @ts-ignore
89
- data.BadgeStyle.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged }))),
90
- React.createElement(FormRow, { label: "Exclude Row Summaries:" },
89
+ !data.BadgeStyle.RowScope?.ExcludeGroupRows, onChange: onExcludeGroupedRowsChanged }))),
90
+ React.createElement(FormRow, { label: "Summary Rows:" },
91
91
  React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
92
92
  React.createElement(CheckBox, { "data-name": "exclude-summary-rows-checkbox", className: "twa:mr-2", checked:
93
93
  // @ts-ignore
94
- data.BadgeStyle.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged }))),
94
+ !data.BadgeStyle.RowScope?.ExcludeSummaryRows, onChange: onExcludeSummaryRowsChanged }))),
95
95
  ' ',
96
- React.createElement(FormRow, { label: "Exclude Total Rows:" },
96
+ React.createElement(FormRow, { label: "Total Rows:" },
97
97
  React.createElement(Flex, { alignItems: "center", className: "twa:ml-2" },
98
98
  React.createElement(CheckBox, { "data-name": "exclude-total-rows-checkbox", className: "twa:mr-2", checked:
99
99
  // @ts-ignore
100
- data.BadgeStyle.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged }))))))));
100
+ !data.BadgeStyle.RowScope?.ExcludeTotalRows, onChange: onExcludeTotalRowsChanged }))))))));
101
101
  };
@@ -8,7 +8,7 @@ import { renderStyledColumnTypeSummary, StyledColumnWizardTypeSection, } from '.
8
8
  import { isValidStyledColumnColumn, renderStyledColumnColumnSummary, StyledColumnWizardColumnSection, } from './StyledColumnWizardColumnSection';
9
9
  import { renderStyledColumnStyleSummary, StyledColumnWizardStyleSection, } from './StyledColumnWizardStyleSection';
10
10
  import { cloneObject } from '../../../Utilities/Helpers/Helper';
11
- import { renderStyledColumnWizardSettingsSummary, StyledColumnWizardSettingsSection, } from './StyledColumnWizardSettingsSection';
11
+ import { renderStyledColumnBadgeRowsSummary, StyledColumnBadgeRowsSection, } from './StyledColumnBadgeRowsSection';
12
12
  import { StyledColumnSparklineSettingsSection } from './StyledColumnSparklineSettingsSection';
13
13
  import { ObjectTagsWizardSection, renderObjectTagsSummary, } from '../../Wizard/ObjectTagsWizardSection';
14
14
  import { renderBadgeSummary, StyledColumnBadgeSection } from './StyledColumnBadgeSection';
@@ -48,15 +48,6 @@ export const StyledColumnWizard = (props) => {
48
48
  }
49
49
  props.onFinishWizard(styledColumn);
50
50
  };
51
- const AdditionalSettingSection = {
52
- details: 'Apply Additional Settings',
53
- renderSummary: renderStyledColumnWizardSettingsSummary,
54
- render: () => {
55
- return (React.createElement(Box, { className: "twa:p-2" },
56
- React.createElement(StyledColumnWizardSettingsSection, { onChange: setStyledColumn })));
57
- },
58
- title: 'Settings',
59
- };
60
51
  const specificSteps = [];
61
52
  if (styledColumn.SparklineStyle) {
62
53
  specificSteps.push({
@@ -93,6 +84,15 @@ export const StyledColumnWizard = (props) => {
93
84
  );
94
85
  }
95
86
  else if (styledColumn.BadgeStyle) {
87
+ specificSteps.push({
88
+ details: 'Select the Rows where the Badge will be applied',
89
+ renderSummary: renderStyledColumnBadgeRowsSummary,
90
+ render: () => {
91
+ return (React.createElement(Box, { className: "twa:p-2" },
92
+ React.createElement(StyledColumnBadgeRowsSection, { onChange: setStyledColumn })));
93
+ },
94
+ title: 'Rows',
95
+ });
96
96
  specificSteps.push({
97
97
  title: 'Badges',
98
98
  details: 'Create Badge Styles',
@@ -110,7 +110,6 @@ export const StyledColumnWizard = (props) => {
110
110
  render: () => (React.createElement(Box, { className: "twa:p-2" },
111
111
  React.createElement(StyledColumnBadgeSection, { onChange: setStyledColumn }))),
112
112
  });
113
- specificSteps.push(AdditionalSettingSection);
114
113
  }
115
114
  return (React.createElement(OnePageAdaptableWizard, { defaultCurrentSectionName: defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: styledColumn, onFinish: handleFinish, onHide: props.onCloseWizard, sections: [
116
115
  {
@@ -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
  }>;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import FormLayout, { FormRow } from '../../components/FormLayout';
3
3
  import { useAdaptable } from '../AdaptableContext';
4
4
  import AdaptableInput from '../Components/AdaptableInput';
5
- import throttle from 'lodash/throttle';
5
+ import throttle from '../../Utilities/utils/throttle';
6
6
  import SimpleButton from '../../components/SimpleButton';
7
7
  import Panel from '../../components/Panel';
8
8
  import { Field } from './ThemeField';
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import throttle from 'lodash/throttle';
2
+ import throttle from '../../Utilities/utils/throttle';
3
3
  import { useAdaptable } from '../AdaptableContext';
4
4
  import { getVariableColor } from '../../Utilities/Helpers/StyleHelper';
5
5
  import { FormRow } from '../../components/FormLayout';
@@ -7,7 +7,7 @@ import { useAdaptable } from '../AdaptableContext';
7
7
  import { Tabs } from '../../components/Tabs';
8
8
  import { NamedQueryContext, } from '../../components/ExpressionEditor/NamedQueryContext';
9
9
  import { OnePageWizard, useOnePageWizardContext } from './OnePageWizards';
10
- import kebabCase from 'lodash/kebabCase';
10
+ import kebabCase from '../../Utilities/utils/kebabCase';
11
11
  import { Box } from '../../components/Flex';
12
12
  import { twMerge } from '../../twMerge';
13
13
  export const SummaryTag = (props) => (React.createElement(Box, { ...props }));
@@ -156,7 +156,7 @@ export const OnePageWizard = (props) => {
156
156
  } },
157
157
  React.createElement(KeyHint, { className: "twa:mr-2 twa:inline-block twa:text-color-accent-foreground" }, navIndex),
158
158
  React.createElement("div", { className: "twa:flex-1" }, section.title),
159
- React.createElement(Icon, { name: "error", className: clsx('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:hidden') })));
159
+ React.createElement(Icon, { name: "error", className: clsx('twa:ml-2', validSectionsMap.get(index) !== true ? 'twa:visible' : 'twa:invisible') })));
160
160
  }),
161
161
  selectedFeedback,
162
162
  React.createElement(Box, { className: "twa:flex-1" }),