@adaptabletools/adaptable 14.0.3 → 14.1.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 (201) hide show
  1. package/base.css +7 -1
  2. package/base.css.map +1 -1
  3. package/bundle.cjs.js +170 -169
  4. package/index.css +76 -62
  5. package/index.css.map +1 -1
  6. package/package.json +2 -2
  7. package/publishTimestamp.d.ts +1 -1
  8. package/publishTimestamp.js +1 -1
  9. package/src/AdaptableOptions/ActionOptions.d.ts +3 -0
  10. package/src/AdaptableOptions/AdaptablePlugin.d.ts +3 -0
  11. package/src/AdaptableOptions/AdaptablePlugin.js +3 -0
  12. package/src/AdaptableOptions/ChartingOptions.d.ts +1 -1
  13. package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +26 -26
  14. package/src/AdaptableOptions/ExportOptions.d.ts +17 -3
  15. package/src/Api/CalculatedColumnApi.d.ts +9 -0
  16. package/src/Api/ChartingApi.d.ts +41 -14
  17. package/src/Api/ColumnApi.d.ts +4 -0
  18. package/src/Api/DataSetApi.d.ts +2 -2
  19. package/src/Api/EventApi.d.ts +15 -1
  20. package/src/Api/Events/ChartChanged.d.ts +8 -0
  21. package/src/Api/Events/ChartChanged.js +2 -0
  22. package/src/Api/ExportApi.d.ts +5 -0
  23. package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +2 -0
  24. package/src/Api/Implementation/CalculatedColumnApiImpl.js +24 -0
  25. package/src/Api/Implementation/ChartingApiImpl.d.ts +16 -2
  26. package/src/Api/Implementation/ChartingApiImpl.js +54 -2
  27. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  28. package/src/Api/Implementation/ColumnApiImpl.js +3 -0
  29. package/src/Api/Implementation/ExportApiImpl.d.ts +2 -0
  30. package/src/Api/Implementation/ExportApiImpl.js +10 -0
  31. package/src/Api/Implementation/PredicateApiImpl.d.ts +6 -4
  32. package/src/Api/Implementation/PredicateApiImpl.js +20 -1
  33. package/src/Api/Implementation/QueryApiImpl.js +8 -2
  34. package/src/Api/Internal/AdaptableInternalApi.d.ts +7 -1
  35. package/src/Api/Internal/AdaptableInternalApi.js +2 -1
  36. package/src/Api/Internal/AlertInternalApi.js +1 -1
  37. package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
  38. package/src/Api/Internal/CalculatedColumnInternalApi.js +9 -0
  39. package/src/Api/Internal/ChartingInternalApi.d.ts +6 -0
  40. package/src/Api/Internal/ChartingInternalApi.js +24 -0
  41. package/src/Api/Internal/FormatColumnInternalApi.d.ts +5 -0
  42. package/src/Api/Internal/FormatColumnInternalApi.js +25 -1
  43. package/src/Api/PredicateApi.d.ts +17 -1
  44. package/src/PredefinedConfig/AlertState.d.ts +5 -2
  45. package/src/PredefinedConfig/Common/AdaptableAlert.d.ts +6 -0
  46. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +15 -11
  47. package/src/PredefinedConfig/Common/AdaptableForm.d.ts +6 -0
  48. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  49. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +6 -0
  50. package/src/PredefinedConfig/Common/AdaptableQuery.d.ts +15 -0
  51. package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
  52. package/src/PredefinedConfig/Common/Enums.js +1 -0
  53. package/src/PredefinedConfig/Common/FDC3Context.d.ts +3 -0
  54. package/src/PredefinedConfig/Common/Types.d.ts +21 -6
  55. package/src/PredefinedConfig/Common/Types.js +1 -3
  56. package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
  57. package/src/PredefinedConfig/FormatColumnState.d.ts +3 -2
  58. package/src/PredefinedConfig/FreeTextColumnState.d.ts +1 -1
  59. package/src/PredefinedConfig/PredefinedConfig.d.ts +4 -4
  60. package/src/PredefinedConfig/ThemeState.d.ts +0 -4
  61. package/src/Redux/ActionsReducers/PopupRedux.d.ts +2 -0
  62. package/src/Redux/ActionsReducers/PopupRedux.js +2 -0
  63. package/src/Redux/ActionsReducers/StatusBarRedux.d.ts +2 -2
  64. package/src/Redux/ActionsReducers/StatusBarRedux.js +4 -4
  65. package/src/Redux/Store/AdaptableStore.js +1 -11
  66. package/src/Strategy/AlertModule.js +7 -3
  67. package/src/Strategy/ChartingModule.js +5 -3
  68. package/src/Strategy/ExportModule.d.ts +1 -0
  69. package/src/Strategy/ExportModule.js +43 -0
  70. package/src/Strategy/FlashingCellModule.js +1 -1
  71. package/src/Strategy/FormatColumnModule.js +7 -2
  72. package/src/Strategy/Interface/IModule.d.ts +1 -1
  73. package/src/Strategy/LayoutModule.js +8 -1
  74. package/src/Strategy/StyledColumnModule.js +5 -0
  75. package/src/Strategy/ThemeModule.js +8 -2
  76. package/src/Strategy/Utilities/Alert/getAlertPreviewViewItems.js +2 -2
  77. package/src/Strategy/Utilities/Alert/getAlertTypeViewItems.d.ts +5 -0
  78. package/src/Strategy/Utilities/Alert/getAlertTypeViewItems.js +13 -0
  79. package/src/Strategy/Utilities/getObjectTagsViewItems.js +3 -3
  80. package/src/Utilities/Constants/ModuleConstants.d.ts +0 -3
  81. package/src/Utilities/Constants/ModuleConstants.js +2 -5
  82. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  83. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +1 -1
  84. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +3 -1
  85. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +1 -1
  86. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +64 -3
  87. package/src/Utilities/Interface/MessagePopups.d.ts +1 -0
  88. package/src/Utilities/Services/AggregatedScalarLiveValue.js +13 -0
  89. package/src/Utilities/Services/ChartingService.d.ts +8 -0
  90. package/src/Utilities/Services/ChartingService.js +16 -0
  91. package/src/Utilities/Services/ReportService.js +1 -1
  92. package/src/View/AdaptableViewFactory.js +1 -1
  93. package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +3 -2
  94. package/src/View/Alert/Utilities/getAlertType.d.ts +15 -0
  95. package/src/View/Alert/Utilities/getAlertType.js +58 -0
  96. package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +3 -0
  97. package/src/View/Alert/Utilities/getAvailablePredicates.js +19 -0
  98. package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +37 -0
  99. package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +32 -0
  100. package/src/View/Alert/Utilities/mapAlertDefinition.d.ts +2 -0
  101. package/src/View/Alert/Utilities/mapAlertDefinition.js +38 -0
  102. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +4 -2
  103. package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +18 -11
  104. package/src/View/Alert/Wizard/AlertButtonsEditor.d.ts +2 -0
  105. package/src/View/Alert/Wizard/AlertButtonsEditor.js +15 -6
  106. package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +10 -0
  107. package/src/View/Alert/Wizard/AlertMessageWizardSection.js +57 -0
  108. package/src/View/Alert/Wizard/{AlertDisplayWizardSection.d.ts → AlertNotificationWizardSection.d.ts} +7 -5
  109. package/src/View/Alert/Wizard/{AlertDisplayWizardSection.js → AlertNotificationWizardSection.js} +12 -50
  110. package/src/View/Alert/Wizard/AlertRulesWizardSection.d.ts +7 -4
  111. package/src/View/Alert/Wizard/AlertRulesWizardSection.js +66 -6
  112. package/src/View/Alert/Wizard/AlertScopeWizardSection.d.ts +2 -0
  113. package/src/View/Alert/Wizard/AlertScopeWizardSection.js +41 -2
  114. package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +9 -0
  115. package/src/View/Alert/Wizard/AlertTypeWizardSection.js +27 -0
  116. package/src/View/Alert/Wizard/AlertWizard.js +53 -98
  117. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +1 -6
  118. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -39
  119. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +1 -1
  120. package/src/View/{Components/Charting → Charting}/ChartingStatusBarPopover.d.ts +0 -0
  121. package/src/View/{Components/Charting → Charting}/ChartingStatusBarPopover.js +2 -2
  122. package/src/View/{Components/Charting → Charting}/ChartingViewPanel.d.ts +1 -1
  123. package/src/View/{Components/Charting → Charting}/ChartingViewPanel.js +0 -0
  124. package/src/View/{Components/Charting → Charting}/ChartingWizard/ChartingWizard.d.ts +2 -2
  125. package/src/View/{Components/Charting → Charting}/ChartingWizard/ChartingWizard.js +12 -2
  126. package/src/View/{Components/Charting → Charting}/ChartingWizard/PreviewChartSection.d.ts +1 -1
  127. package/src/View/{Components/Charting → Charting}/ChartingWizard/PreviewChartSection.js +2 -2
  128. package/src/View/{Components/Charting → Charting}/ChartingWizard/SettingsSection.d.ts +1 -1
  129. package/src/View/{Components/Charting → Charting}/ChartingWizard/SettingsSection.js +4 -4
  130. package/src/View/{Components/Charting → Charting}/DeleteChartButton.d.ts +1 -1
  131. package/src/View/{Components/Charting → Charting}/DeleteChartButton.js +3 -3
  132. package/src/View/{Components/Charting → Charting}/EditChartButton.d.ts +1 -1
  133. package/src/View/{Components/Charting → Charting}/EditChartButton.js +3 -3
  134. package/src/View/{Components/Charting → Charting}/ShowChartButton.d.ts +1 -1
  135. package/src/View/{Components/Charting → Charting}/ShowChartButton.js +5 -5
  136. package/src/View/{Components/Charting → Charting}/useChartState.d.ts +1 -1
  137. package/src/View/{Components/Charting → Charting}/useChartState.js +5 -5
  138. package/src/View/{Components/Charting → Charting}/useChartingElements.d.ts +1 -1
  139. package/src/View/{Components/Charting → Charting}/useChartingElements.js +6 -6
  140. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.d.ts +12 -0
  141. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +85 -0
  142. package/src/View/Components/EntityRulesEditor/{PredicatesEditor.d.ts → EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts} +6 -4
  143. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +87 -0
  144. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/index.d.ts +1 -0
  145. package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/index.js +5 -0
  146. package/src/View/Components/EntityRulesEditor/Utilities.js +7 -1
  147. package/src/View/Components/EntityRulesEditor/index.d.ts +4 -2
  148. package/src/View/Components/EntityRulesEditor/index.js +27 -10
  149. package/src/View/Components/NewScopeComponent.d.ts +9 -5
  150. package/src/View/Components/NewScopeComponent.js +19 -10
  151. package/src/View/Components/Popups/WindowPopups/WindowPopups.js +2 -2
  152. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
  153. package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
  154. package/src/View/Components/PredicateEditor/PredicateEditor.js +16 -5
  155. package/src/View/Components/PreviewResultsPanel.js +30 -3
  156. package/src/View/CustomSort/Wizard/CustomSortWizard.js +1 -1
  157. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +3 -0
  158. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +1 -1
  159. package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
  160. package/src/View/Export/ExportTablePopup.d.ts +3 -0
  161. package/src/View/Export/ExportTablePopup.js +59 -0
  162. package/src/View/Export/Wizard/NewReportWizard.js +1 -1
  163. package/src/View/Export/Wizard/ReportColumnsWizardSection.js +1 -1
  164. package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +1 -1
  165. package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -2
  166. package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
  167. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
  168. package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +1 -1
  169. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +1 -1
  170. package/src/View/GridInfo/GridInfoPopup.js +1 -1
  171. package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +1 -1
  172. package/src/View/Query/Wizard/NamedQueryWizard.js +1 -1
  173. package/src/View/Schedule/Wizard/ScheduleWizard.js +1 -1
  174. package/src/View/Shortcut/Wizard/ShortcutWizard.js +1 -1
  175. package/src/View/StatusBar/StatusBarPanel.d.ts +3 -4
  176. package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +7 -4
  177. package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +5 -5
  178. package/src/View/TeamSharing/TeamSharingApplyButton.js +1 -1
  179. package/src/View/Theme/ThemeStatusPanelPopover.js +10 -2
  180. package/src/View/Wizard/TypeRadio.d.ts +7 -0
  181. package/src/View/Wizard/TypeRadio.js +12 -0
  182. package/src/agGrid/Adaptable.d.ts +3 -1
  183. package/src/agGrid/Adaptable.js +28 -4
  184. package/src/agGrid/agGridHelper.d.ts +1 -0
  185. package/src/agGrid/agGridHelper.js +15 -0
  186. package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +4 -0
  187. package/src/components/ExpressionEditor/editorButtonsAggregatedBoolean.js +5 -0
  188. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -0
  189. package/src/components/icons/index.js +4 -0
  190. package/src/components/icons/visibility-off.d.ts +3 -0
  191. package/src/components/icons/visibility-off.js +7 -0
  192. package/src/components/icons/visibility.d.ts +3 -0
  193. package/src/components/icons/visibility.js +8 -0
  194. package/src/metamodel/adaptable.metamodel.d.ts +129 -0
  195. package/src/metamodel/adaptable.metamodel.js +1 -1
  196. package/src/types.d.ts +5 -4
  197. package/version.d.ts +1 -1
  198. package/version.js +1 -1
  199. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.d.ts +0 -9
  200. package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +0 -30
  201. package/src/View/Components/EntityRulesEditor/PredicatesEditor.js +0 -86
@@ -109,6 +109,9 @@ const buildAdaptableOptions = (mainAdaptableInstance, gridOptions, adaptableCont
109
109
  entitlementOptions: {
110
110
  defaultAccessLevel: 'Hidden',
111
111
  },
112
+ filterOptions: {
113
+ quickFilterTrigger: 'click',
114
+ },
112
115
  layoutOptions: {
113
116
  createDefaultLayout: false,
114
117
  autoSizeColumnsInLayout: true,
@@ -27,7 +27,7 @@ class DataChangeHistoryPopupComponent extends React.Component {
27
27
  const disabled = changeHistoryMode === 'INACTIVE';
28
28
  const suspended = changeHistoryMode === 'SUSPENDED';
29
29
  const buttonPanel = (React.createElement(rebass_1.Flex, { className: "ab-DataChangeHistoryPopup--button-panel", padding: 2, style: { gap: 'var(--ab-space-1)' } },
30
- disabled && (React.createElement(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-activate", "data-name": 'data-change-history--button-activate"', variant: 'raised', tone: 'accent', tooltip: '', onClick: () => onChangeHistoryEnable() }, "Activate data change tracking")),
30
+ disabled && (React.createElement(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-activate", "data-name": 'data-change-history--button-activate"', variant: 'raised', tone: 'accent', tooltip: '', onClick: () => onChangeHistoryEnable() }, "Activate")),
31
31
  suspended && (React.createElement(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-resume", "data-name": 'data-change-history--button-resume', variant: 'outlined', tooltip: 'Resume tracking data changes', onClick: () => onChangeHistoryResume() }, "Resume")),
32
32
  enabled && (React.createElement(ButtonPause_1.ButtonPause, { className: "ab-DataChangeHistoryPopup--button-suspend", "data-name": 'data-change-history--button-suspend', variant: 'outlined', tooltip: 'Suspend tracking data changes', onClick: () => onChangeHistorySuspend() }, "Suspend")),
33
33
  (enabled || suspended) && (React.createElement(ButtonStop_1.ButtonStop, { className: "ab-DataChangeHistoryPopup--button-deactivate", "data-name": 'data-change-history--button-deactivate', variant: 'outlined', tooltip: 'Deactivate data change tracking', onClick: () => onChangeHistoryDisable() }, "Deactivate"))));
@@ -46,7 +46,7 @@ const DataChangeHistoryViewPanelControl = (props) => {
46
46
  React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-active", fontSize: 2, style: { color: 'var(--ab-color-success)' } }, "Active"))),
47
47
  suspended && (React.createElement(Tooltip_1.default, { label: !!suspensionTime && `since ${(0, FormatHelper_1.DateFormatter)(suspensionTime, { Pattern: dateFormat })}` },
48
48
  React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-suspended", fontSize: 2, style: { color: 'var(--ab-color-warn)' } }, "Suspended"))),
49
- disabled && (React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-disabled", fontSize: 2 }, "Activate data tracking"))));
49
+ disabled && (React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-disabled", fontSize: 2 }, "Activate Data Tracking"))));
50
50
  return (React.createElement(rebass_1.Flex, { flexDirection: 'row' },
51
51
  buttonPanel,
52
52
  statusPanel,
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ import { WindowPopupChildProps } from '../Components/Popups/WindowPopups/WindowPopups';
3
+ export declare const ExportTablePopup: React.FunctionComponent<WindowPopupChildProps>;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExportTablePopup = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const InfiniteTable_1 = require("../../components/InfiniteTable");
7
+ const AdaptableContext_1 = require("../AdaptableContext");
8
+ const tableDOMProps = {
9
+ style: {
10
+ height: '100%',
11
+ minWidth: '10rem',
12
+ minHeight: 300,
13
+ },
14
+ };
15
+ const ExportTablePopup = (props) => {
16
+ const adaptable = (0, AdaptableContext_1.useAdaptable)();
17
+ const adaptableApi = adaptable.api;
18
+ const primaryKey = adaptableApi.optionsApi.getPrimaryKey();
19
+ const { reportData, } = props.popupProps;
20
+ const data = reportData.rows;
21
+ const columns = React.useMemo(() => {
22
+ const getFriendlyName = (columnId) => adaptableApi.columnApi.getFriendlyNameForColumnId(columnId);
23
+ const columns = {
24
+ [primaryKey]: { field: primaryKey, header: getFriendlyName(primaryKey) },
25
+ };
26
+ for (let column of reportData.columns) {
27
+ columns[column.columnId] = {
28
+ field: column.columnId,
29
+ header: getFriendlyName(column.columnId),
30
+ dataType: column.dataType,
31
+ };
32
+ if (column.dataType === 'Date') {
33
+ columns[column.columnId].valueFormatter = (params) => {
34
+ var _a;
35
+ if (typeof params.value === 'string') {
36
+ return params.value;
37
+ }
38
+ return ((_a = params.value) === null || _a === void 0 ? void 0 : _a.toString) ? params.value.toString() : '';
39
+ };
40
+ }
41
+ if (column.dataType === 'Boolean') {
42
+ columns[column.columnId].valueFormatter = (params) => {
43
+ if (typeof params.value === 'boolean') {
44
+ return params.value ? 'true' : 'false';
45
+ }
46
+ return '';
47
+ };
48
+ }
49
+ }
50
+ return columns;
51
+ }, [props.popupProps]);
52
+ return (React.createElement(InfiniteTable_1.DataSource, { data: data, primaryKey: primaryKey },
53
+ React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
54
+ default: {
55
+ defaultFlex: 1,
56
+ },
57
+ }, domProps: tableDOMProps, columns: columns })));
58
+ };
59
+ exports.ExportTablePopup = ExportTablePopup;
@@ -62,7 +62,7 @@ const NewReportWizard = (props) => {
62
62
  React.createElement(ReportNameWizardSection_1.ReportNameWizardSection, { onChange: setReport }))),
63
63
  },
64
64
  {
65
- details: 'Select Report tags',
65
+ details: 'Select Report Tags',
66
66
  title: 'Tags',
67
67
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
68
68
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -62,7 +62,7 @@ const ReportColumnsWizardSection = (props) => {
62
62
  React.createElement(Tabs_1.Tabs.Content, { value: "BespokeColumns" },
63
63
  React.createElement(rebass_1.Text, { fontSize: 2, padding: 2 }, "Only selected Columns (which you will choose in the next step) will be exported - whether visible or not"))),
64
64
  data.ReportColumnScope === 'ScopeColumns' ? (React.createElement(rebass_1.Box, { padding: 2, flex: 1, style: { overflow: 'auto' } },
65
- React.createElement(NewScopeComponent_1.NewScopeComponent, { hideWholeRow: true, descriptions: {
65
+ React.createElement(NewScopeComponent_1.NewScopeComponent, { hideWholeRow: true, isColumnAvailable: (column) => Boolean(column.exportable), descriptions: {
66
66
  rowScope: 'Apply Scope for: Row, or one or more Columns, or one or more Data Types',
67
67
  columnScope: 'Selected columns will be included in the report',
68
68
  }, scope: data.Scope, updateScope: (Scope) => {
@@ -31,7 +31,7 @@ exports.renderFlashingAlertRulesSummary = renderFlashingAlertRulesSummary;
31
31
  const FlashingAlertRulesWizardSection = (props) => {
32
32
  const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
33
33
  const predicateDefs = api.flashingCellApi.getFlashingCellPredicateDefsForScope(data.Scope);
34
- return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: "Any", data: data, predicateDefs: predicateDefs, onChange: props.onChange, showAggregation: false, showObservable: false, showBoolean: true, showPredicate: true, descriptions: {
34
+ return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: "Any", data: data, predicateDefs: predicateDefs, getPredicateDefsForColId: (colId) => api.flashingCellApi.getFlashingCellPredicateDefsForScope({ ColumnIds: [colId] }), onChange: props.onChange, showAggregation: false, showObservable: false, showBoolean: true, showPredicate: true, descriptions: {
35
35
  selectPredicate: 'Select an Flashing Cell Rule - to be applied when data changes',
36
36
  useBooleanQuery: (React.createElement(React.Fragment, null,
37
37
  "Use an BooleanQuery if ",
@@ -61,7 +61,7 @@ const FlashingCellWizard = (props) => {
61
61
  details: 'Specify which data changes should trigger Cell Flashing',
62
62
  isValid: NewScopeComponent_1.isScopeValid,
63
63
  render: () => React.createElement(FlashingCellScopeWizardSection_1.FlashingAlertScopeWizardSection, { onChange: setFlashingCell }),
64
- renderSummary: BaseAlertScopeWizardSection_1.renderBaseAlertScopeSummary,
64
+ renderSummary: BaseAlertScopeWizardSection_1.renderScopeSummary,
65
65
  title: 'Scope',
66
66
  },
67
67
  {
@@ -88,7 +88,7 @@ const FlashingCellWizard = (props) => {
88
88
  title: 'Flash Styles',
89
89
  },
90
90
  {
91
- details: 'Select Flashing Cell tags',
91
+ details: 'Select Flashing Cell Tags',
92
92
  title: 'Tags',
93
93
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
94
94
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -9,7 +9,7 @@ function FormatColumnRuleWizardSection(props) {
9
9
  const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
10
10
  return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: props.defaultPredicateId,
11
11
  // TODO see what is this
12
- predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showPredicate: !api.scopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
12
+ predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showPredicate: !api.scopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
13
13
  selectPredicate: 'Create a Format Column Rule - to be applied when data changes',
14
14
  useBooleanQuery: (React.createElement(React.Fragment, null,
15
15
  "Use an BooleanQuery if ",
@@ -10,7 +10,7 @@ const renderFormatColumnScopeSummary = (data) => {
10
10
  return (0, NewScopeComponent_1.renderScopeSummary)(data.Scope, {
11
11
  scopeWholeRow: 'Matching rows will be formatted',
12
12
  scopeColumns: 'Cells in selected columns will be formatted',
13
- scopeDataTypes: 'Cells in columns of the selected data-types will be formatted',
13
+ scopeDataTypes: 'Cells in columns with these Data Types will be formatted',
14
14
  });
15
15
  };
16
16
  exports.renderFormatColumnScopeSummary = renderFormatColumnScopeSummary;
@@ -134,7 +134,7 @@ function FormatColumnWizard(props) {
134
134
  },
135
135
  },
136
136
  {
137
- details: 'Select Format Column tags',
137
+ details: 'Select Format Column Tags',
138
138
  title: 'Tags',
139
139
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
140
140
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -47,7 +47,7 @@ const FreeTextColumnWizard = (props) => {
47
47
  },
48
48
  },
49
49
  {
50
- details: 'Select Free Text Column tags',
50
+ details: 'Select Free Text Column Tags',
51
51
  title: 'Tags',
52
52
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
53
53
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -23,7 +23,7 @@ const GridInfoPopup = (props) => {
23
23
  const showColumnInfo = entitlementService.isGridInfoSectionVisible('ColumnInfo');
24
24
  /**
25
25
  * Because it is not associated with a module yet, setting this flag to true.
26
- * Needed for the logic weather to show radio buttons (buttons.length >= 2)
26
+ * Needed for the logic whether to show radio buttons (buttons.length >= 2)
27
27
  */
28
28
  const showAdaptableObjects = entitlementService.isGridInfoSectionVisible('AdaptableObjects');
29
29
  const [state, setState] = React.useState({
@@ -69,7 +69,7 @@ const PlusMinusWizard = (props) => {
69
69
  render: () => (React.createElement(PlusMinusSettingsWizardSection_1.PlusMinusSettingsWizardSection, { hasCondition: hasCondition, onConditionChange: setHasCondition, onChange: setPlusMinus })),
70
70
  },
71
71
  {
72
- details: 'Select Plus/Minus tags',
72
+ details: 'Select Plus/Minus Tags',
73
73
  title: 'Tags',
74
74
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
75
75
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -49,7 +49,7 @@ function NamedQueryWizard(props) {
49
49
  },
50
50
  },
51
51
  {
52
- details: 'Select Query tags',
52
+ details: 'Select Query Tags',
53
53
  title: 'Tags',
54
54
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
55
55
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -103,7 +103,7 @@ const ScheduleWizard = (props) => {
103
103
  React.createElement(ScheduleScheduleWizard_1.ScheduleScheduleWizard, { isOneOff: isOneOff, onSetIsOneOff: setIsOneOff, onChange: setSchedule }))),
104
104
  },
105
105
  {
106
- details: 'Select Schedule tags',
106
+ details: 'Select Schedule Tags',
107
107
  title: 'Tags',
108
108
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
109
109
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -73,7 +73,7 @@ const ShortcutWizard = (props) => {
73
73
  },
74
74
  },
75
75
  {
76
- details: 'Select Shortcut tags',
76
+ details: 'Select Shortcut Tags',
77
77
  title: 'Tags',
78
78
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
79
79
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -17,17 +17,16 @@ export interface StatusBarPanelProps extends Omit<FlexProps, 'content'> {
17
17
  icon?: string;
18
18
  content?: React.ReactNode | React.FunctionComponent<React.PropsWithChildren<unknown>>;
19
19
  /**
20
- * weather to trigger onAction when the wrapper is clicked
20
+ * Whether to trigger onAction when Wrapper is clicked
21
21
  */
22
22
  triggerActionOnWrapperClick?: boolean;
23
23
  /**
24
- * When specified this content will be rendered when the text
25
- * is clicked.
24
+ * If specified this content will be rendered when text is clicked
26
25
  */
27
26
  popover?: React.ReactNode | React.FunctionComponent<React.PropsWithChildren<unknown>>;
28
27
  popoverMinWidth?: number;
29
28
  /**
30
- * Allow to render custom content
29
+ * Can render custom content
31
30
  */
32
31
  view?: React.FunctionComponent<React.PropsWithChildren<unknown>>;
33
32
  onAction?: () => void;
@@ -17,8 +17,10 @@ const StyledColumnWizardSettingsSection_1 = require("./StyledColumnWizardSetting
17
17
  const StyledColumnSparklineSettingsSection_1 = require("./StyledColumnSparklineSettingsSection");
18
18
  const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
19
19
  const StyledColumnWizard = (props) => {
20
- var _a, _b;
20
+ var _a, _b, _c, _d, _e, _f;
21
21
  const data = (_a = props.data) !== null && _a !== void 0 ? _a : (_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.value;
22
+ const popupDefaultCurrentSectionName = (_e = (_d = (_c = props === null || props === void 0 ? void 0 : props.popupParams) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.defaultCurrentSectionName) !== null && _e !== void 0 ? _e : undefined;
23
+ const defaultCurrentSectionName = (_f = props.defaultCurrentSectionName) !== null && _f !== void 0 ? _f : popupDefaultCurrentSectionName;
22
24
  const [styledColumn, setStyledColumn] = (0, react_1.useState)(() => {
23
25
  if (data) {
24
26
  return (0, Helper_1.cloneObject)(data);
@@ -29,7 +31,8 @@ const StyledColumnWizard = (props) => {
29
31
  });
30
32
  const dispatch = (0, react_redux_1.useDispatch)();
31
33
  const handleFinish = () => {
32
- if (props.popupParams.action === 'New' || !data) {
34
+ var _a;
35
+ if (((_a = props === null || props === void 0 ? void 0 : props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'New' || !data) {
33
36
  dispatch(StyledColumnRedux.StyledColumnAdd(styledColumn));
34
37
  }
35
38
  else {
@@ -64,7 +67,7 @@ const StyledColumnWizard = (props) => {
64
67
  React.createElement(StyledColumnSparklineSettingsSection_1.StyledColumnSparklineSettingsSection, { onChange: setStyledColumn }))),
65
68
  },
66
69
  ];
67
- return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: props.defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: styledColumn, onFinish: handleFinish, onHide: props.onCloseWizard, sections: [
70
+ return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: styledColumn, onFinish: handleFinish, onHide: props.onCloseWizard, sections: [
68
71
  {
69
72
  details: 'Select a Styled Column type',
70
73
  renderSummary: StyledColumnWizardTypeSection_1.renderStyledColumnTypeSummary,
@@ -86,7 +89,7 @@ const StyledColumnWizard = (props) => {
86
89
  },
87
90
  ...(styledColumn.SparkLineStyle ? sparklineSteps : checkboxGrandientPercentSteps),
88
91
  {
89
- details: 'Select Format Column tags',
92
+ details: 'Select Format Column Tags',
90
93
  title: 'Tags',
91
94
  isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
92
95
  render: () => (React.createElement(rebass_1.Box, { padding: 2 },
@@ -4,11 +4,11 @@ exports.StyledColumnWizardTypeSection = exports.renderStyledColumnTypeSummary =
4
4
  const tslib_1 = require("tslib");
5
5
  const React = tslib_1.__importStar(require("react"));
6
6
  const rebass_1 = require("rebass");
7
- const Radio_1 = tslib_1.__importDefault(require("../../../components/Radio"));
8
7
  const Tabs_1 = require("../../../components/Tabs");
9
8
  const Tag_1 = require("../../../components/Tag");
10
9
  const AdaptableContext_1 = require("../../AdaptableContext");
11
10
  const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
11
+ const TypeRadio_1 = require("../../Wizard/TypeRadio");
12
12
  const renderStyledColumnTypeSummary = (data) => {
13
13
  let type = null;
14
14
  if (data.GradientStyle) {
@@ -62,9 +62,9 @@ const StyledColumnWizardTypeSection = (props) => {
62
62
  React.createElement(Tabs_1.Tabs, { autoFocus: false, padding: 2 },
63
63
  React.createElement(Tabs_1.Tabs.Tab, null, "Type"),
64
64
  React.createElement(Tabs_1.Tabs.Content, null,
65
- React.createElement(Radio_1.default, { checked: Boolean(data.GradientStyle), onChange: () => handleTypeChange('gradient') }, "Gradient Column"),
66
- React.createElement(Radio_1.default, { onChange: () => handleTypeChange('percent'), checked: Boolean(data.PercentBarStyle) }, "Percent Bar"),
67
- React.createElement(Radio_1.default, { onChange: () => handleTypeChange('checkbox'), checked: Boolean(data.CheckBoxStyle) }, "Check Box"),
68
- adaptable.api.styledColumnApi.canDisplaySparklines() && (React.createElement(Radio_1.default, { onChange: () => handleTypeChange('sparkline'), checked: Boolean(data.SparkLineStyle) }, "Sparkline"))))));
65
+ React.createElement(TypeRadio_1.TypeRadio, { text: "Gradient Column", description: "Colour each cell in a numeric column using a gradient value", checked: Boolean(data.GradientStyle), onClick: () => handleTypeChange('gradient') }),
66
+ React.createElement(TypeRadio_1.TypeRadio, { text: "Percent Bar", description: "Display a coloured bar where the width is based on the cell", checked: Boolean(data.PercentBarStyle), onClick: () => handleTypeChange('percent') }),
67
+ React.createElement(TypeRadio_1.TypeRadio, { text: "Check Box", description: "Display a checkbox (in a Boolean column)", checked: Boolean(data.CheckBoxStyle), onClick: () => handleTypeChange('checkbox') }),
68
+ adaptable.api.styledColumnApi.canDisplaySparklines() && (React.createElement(TypeRadio_1.TypeRadio, { text: "Sparkline", description: "Render the column as a Sparkline", checked: Boolean(data.SparkLineStyle), onClick: () => handleTypeChange('sparkline') }))))));
69
69
  };
70
70
  exports.StyledColumnWizardTypeSection = StyledColumnWizardTypeSection;
@@ -10,6 +10,6 @@ const TeamSharingApplyButton = (props) => {
10
10
  const handleImport = React.useCallback(() => {
11
11
  adaptable.api.teamSharingApi.importSharedEntry(props.data);
12
12
  }, []);
13
- return (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-apply-button", onClick: handleImport, variant: "text", tooltip: "Apply Adaptable Object", icon: "import-export" }));
13
+ return (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-apply-button", onClick: handleImport, variant: "text", tooltip: "Apply", icon: "import-export" }));
14
14
  };
15
15
  exports.TeamSharingApplyButton = TeamSharingApplyButton;
@@ -9,9 +9,17 @@ const ThemeStatusPanelPopover = () => {
9
9
  const adaptable = (0, AdaptableContext_1.useAdaptable)();
10
10
  const themes = adaptable.api.themeApi.getThemes();
11
11
  const handleThemeChange = React.useCallback((option) => {
12
- adaptable.api.themeApi.loadTheme(option.label);
12
+ adaptable.api.themeApi.loadTheme(option.value);
13
+ }, []);
14
+ const options = React.useMemo(() => {
15
+ return themes.map((theme) => {
16
+ var _a;
17
+ return ({
18
+ label: (_a = theme.Description) !== null && _a !== void 0 ? _a : theme.Name,
19
+ value: theme.Name,
20
+ });
21
+ });
13
22
  }, []);
14
- const options = themes.map((theme) => ({ label: theme.Name, value: theme.Uuid }));
15
23
  return React.createElement(SelectList_1.SelectList, { options: options, onChange: handleThemeChange });
16
24
  };
17
25
  exports.ThemeStatusPanelPopover = ThemeStatusPanelPopover;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ export declare const TypeRadio: (props: {
3
+ checked: boolean;
4
+ text: string;
5
+ description: string;
6
+ onClick: () => void;
7
+ }) => JSX.Element;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TypeRadio = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const rebass_1 = require("rebass");
7
+ const Radio_1 = tslib_1.__importDefault(require("../../components/Radio"));
8
+ const TypeRadio = (props) => (React.createElement(Radio_1.default, { onClick: () => props.onClick(), checked: props.checked },
9
+ React.createElement(rebass_1.Flex, { flexDirection: "column" },
10
+ React.createElement(rebass_1.Text, null, props.text),
11
+ React.createElement(rebass_1.Text, { fontSize: 2, marginTop: 1 }, props.description))));
12
+ exports.TypeRadio = TypeRadio;
@@ -307,7 +307,9 @@ export declare class Adaptable implements IAdaptable {
307
307
  * There are a few things that we need to do AFTER we edit a cell and it makes sense to put them in one place
308
308
  */
309
309
  private performPostEditChecks;
310
- private getExpressionStylesChanges;
310
+ private refreshCellsBasedOnCellDataChange;
311
+ private getFormatColumnExpressionStylesChanges;
312
+ private getFormatColumnPredicateStyleChanges;
311
313
  private getStyledColumnComparisonChanges;
312
314
  private checkChangedCellCurrentlySelected;
313
315
  refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos: CellDataChangedInfo[]): void;
@@ -2415,7 +2415,7 @@ class Adaptable {
2415
2415
  }
2416
2416
  });
2417
2417
  };
2418
- const resultColDefs = mapColDefs(allColDefs);
2418
+ let resultColDefs = mapColDefs(allColDefs);
2419
2419
  // check if there are any special colDefs that were not processed
2420
2420
  // in that case, add them to the end of the colDefs
2421
2421
  specialColDefs.forEach((specialColDef) => {
@@ -2423,6 +2423,14 @@ class Adaptable {
2423
2423
  resultColDefs.push(specialColDef);
2424
2424
  }
2425
2425
  });
2426
+ // remove special column that are no longer defined
2427
+ resultColDefs = resultColDefs.filter((colDef) => {
2428
+ if (isSpecialColDef(colDef)) {
2429
+ // must be in specialColDefs
2430
+ return specialColDefs.some((specialColDef) => specialColDef.colId === colDef.colId);
2431
+ }
2432
+ return true;
2433
+ });
2426
2434
  this.safeSetColDefs(resultColDefs);
2427
2435
  this.setLayout();
2428
2436
  }
@@ -2759,6 +2767,7 @@ class Adaptable {
2759
2767
  */
2760
2768
  this.gridOptions.api.addEventListener(core_1.Events.EVENT_FIRST_DATA_RENDERED, (this.listenerFirstDataRendered = () => {
2761
2769
  this.checkColumnsDataTypeSet();
2770
+ this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
2762
2771
  this.setLayout();
2763
2772
  }));
2764
2773
  /**
@@ -3712,6 +3721,11 @@ class Adaptable {
3712
3721
  this.DataService.CreateDataChangedEvent(cellDataChangedInfo);
3713
3722
  this.resetMinMaxCachedValueForColumn(cellDataChangedInfo.column);
3714
3723
  });
3724
+ this.refreshCellsBasedOnCellDataChange(cellDataChangedInfos);
3725
+ firstInfo.trigger == 'tick' ? this.filterOnTickingDataChange() : this.filterOnEditDataChange();
3726
+ }
3727
+ refreshCellsBasedOnCellDataChange(cellDataChangedInfos) {
3728
+ const [firstInfo] = cellDataChangedInfos;
3715
3729
  // if node is visible then check if need to refresh other columns / whole row if the updating column is:
3716
3730
  // 1. referenced in Format Column Styles that have Expressions (refreshing whole row if Scope is All)
3717
3731
  // 2. referenced in Format Column styles that use Column Comparisons (which might also be calculated columns)
@@ -3720,7 +3734,10 @@ class Adaptable {
3720
3734
  wholeRow: false,
3721
3735
  columnIds: new Set(),
3722
3736
  };
3723
- this.getExpressionStylesChanges(dataChangedScope, cellDataChangedInfos);
3737
+ this.getFormatColumnExpressionStylesChanges(dataChangedScope, cellDataChangedInfos);
3738
+ if (dataChangedScope.wholeRow === false) {
3739
+ this.getFormatColumnPredicateStyleChanges(dataChangedScope, cellDataChangedInfos);
3740
+ }
3724
3741
  if (dataChangedScope.wholeRow) {
3725
3742
  this.redrawRow(firstInfo.rowNode);
3726
3743
  }
@@ -3732,9 +3749,8 @@ class Adaptable {
3732
3749
  }
3733
3750
  }
3734
3751
  this.refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos);
3735
- firstInfo.trigger == 'tick' ? this.filterOnTickingDataChange() : this.filterOnEditDataChange();
3736
3752
  }
3737
- getExpressionStylesChanges(dataChangedScope, cellDataChangedInfos) {
3753
+ getFormatColumnExpressionStylesChanges(dataChangedScope, cellDataChangedInfos) {
3738
3754
  const formatColumnsWithExpression = [];
3739
3755
  formatColumnsWithExpression.push(...this.api.formatColumnApi.internalApi.getFormatColumnsWithExpression());
3740
3756
  if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(formatColumnsWithExpression)) {
@@ -3764,6 +3780,14 @@ class Adaptable {
3764
3780
  }
3765
3781
  });
3766
3782
  }
3783
+ getFormatColumnPredicateStyleChanges(dataChangedScope, cellDataChangedInfos) {
3784
+ cellDataChangedInfos.forEach((cellDataChangeInfo) => {
3785
+ const dependentColumns = this.api.formatColumnApi.internalApi.getFormatColumnColumnsDependentOnColumnChange(cellDataChangeInfo.column);
3786
+ for (let colId of dependentColumns) {
3787
+ dataChangedScope.columnIds.add(colId);
3788
+ }
3789
+ });
3790
+ }
3767
3791
  getStyledColumnComparisonChanges(dataChangedScope, cellDataChangedInfos) {
3768
3792
  this.api.styledColumnApi.getStyledColumns().forEach((sc) => {
3769
3793
  let columnComparison = this.api.styledColumnApi.internalApi.getColumnComparisonForStyledColumn(sc);
@@ -39,6 +39,7 @@ export declare class agGridHelper {
39
39
  private getColumnAggregationFunctions;
40
40
  private isColumnMoveable;
41
41
  private isColumnQueryable;
42
+ private isColumnExportable;
42
43
  private isColumnHideable;
43
44
  private isColumnFilterable;
44
45
  private getColumnPinnedPosition;
@@ -207,6 +207,7 @@ class agGridHelper {
207
207
  moveable: this.isColumnMoveable(colDef),
208
208
  hideable: this.isColumnHideable(colDef),
209
209
  queryable: this.isColumnQueryable(colDef, ColumnId, friendlyName, dataType),
210
+ exportable: this.isColumnExportable(colDef, ColumnId, friendlyName, dataType),
210
211
  isGrouped: this.isColumnGrouped(colDef),
211
212
  isFixed: this.isColumnFixed(colDef),
212
213
  pinned: this.getColumnPinnedPosition(colDef),
@@ -334,6 +335,20 @@ class agGridHelper {
334
335
  };
335
336
  return this.adaptable.api.queryLanguageApi.isColumnQueryable(abColumnBase);
336
337
  }
338
+ isColumnExportable(colDef, columnId, friendlyName, datatype) {
339
+ if (!colDef) {
340
+ return false;
341
+ }
342
+ if (colDef.colId === GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS) {
343
+ return false;
344
+ }
345
+ const abColumnBase = {
346
+ columnId,
347
+ friendlyName,
348
+ dataType: datatype,
349
+ };
350
+ return this.adaptable.api.exportApi.isColumnExportable(abColumnBase);
351
+ }
337
352
  isColumnHideable(colDef) {
338
353
  if (!colDef) {
339
354
  return false;
@@ -47,6 +47,10 @@ function EditorInputWithWhereClause(props) {
47
47
  const queryName = `${(0, StringExtensions_1.CapitaliseFirstLetter)(props.type)}Query`;
48
48
  return (React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start" },
49
49
  React.createElement(BaseEditorInput_1.BaseEditorInput, { type: 'main', value: reactiveValue || '', placeholder: `Create ${queryName}`, onChange: updateReactiveValue, onSelectedFunctionChange: setSelectedFunction, expressionFunctions: reactiveExpressionFns, editorButtons: props.type === 'observable' ? editorButtonsObservable_1.editorButtonsObservable : editorButtonsAggregatedBoolean_1.editorButtonsAggregatedBoolean, testData: props.testData, isFullExpression: true, hideResultPreview: true, api: props.api, style: { height: '75px' } }),
50
+ React.createElement(rebass_1.Text, { fontSize: 2, marginTop: 2, pl: 3 },
51
+ "Add a ",
52
+ React.createElement("i", null, "WHERE"),
53
+ " Clause to narrow the scope of the Query"),
50
54
  React.createElement(CheckBox_1.CheckBox, { disabled: (0, StringExtensions_1.IsNullOrEmptyOrWhiteSpace)(reactiveValue), checked: showWhereClause, style: { alignItems: 'center' }, onChange: (checked) => {
51
55
  setShowWhereClause(checked);
52
56
  if (!checked) {
@@ -22,6 +22,11 @@ exports.editorButtonsAggregatedBoolean = [
22
22
  data: 'AVG()',
23
23
  text: 'Average',
24
24
  },
25
+ {
26
+ functionName: 'COUNT',
27
+ data: 'COUNT()',
28
+ text: 'Count',
29
+ },
25
30
  {
26
31
  functionName: 'GROUP_BY',
27
32
  data: 'GROUP_BY()',
@@ -32,6 +32,11 @@ exports.editorButtonsAggregatedScalar = [
32
32
  data: 'QUANT()',
33
33
  text: 'Quantile',
34
34
  },
35
+ {
36
+ functionName: 'COUNT',
37
+ data: 'COUNT()',
38
+ text: 'Count',
39
+ },
35
40
  {
36
41
  functionName: 'WEIGHT',
37
42
  data: 'WEIGHT()',
@@ -138,6 +138,8 @@ const quote_1 = tslib_1.__importDefault(require("./quote"));
138
138
  const news_1 = tslib_1.__importDefault(require("./news"));
139
139
  const instrument_1 = tslib_1.__importDefault(require("./instrument"));
140
140
  const analysis_1 = tslib_1.__importDefault(require("./analysis"));
141
+ const visibility_1 = tslib_1.__importDefault(require("./visibility"));
142
+ const visibility_off_1 = tslib_1.__importDefault(require("./visibility-off"));
141
143
  const AdaptableIconComponent_1 = require("../AdaptableIconComponent");
142
144
  const allIcons = {
143
145
  // toolbars
@@ -280,6 +282,8 @@ const allIcons = {
280
282
  menu: menu_1.default,
281
283
  statusbar: statusbar_1.default,
282
284
  'add-row': add_row_1.default,
285
+ visibility: visibility_1.default,
286
+ 'visibility-off': visibility_off_1.default,
283
287
  };
284
288
  Object.keys(allIcons).forEach((name) => {
285
289
  const ReactCmp = allIcons[name];
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props),
7
+ React.createElement("path", { d: "m16.1 13.3-1.45-1.45q.225-1.175-.675-2.2-.9-1.025-2.325-.8L10.2 7.4q.425-.2.862-.3Q11.5 7 12 7q1.875 0 3.188 1.312Q16.5 9.625 16.5 11.5q0 .5-.1.938-.1.437-.3.862Zm3.2 3.15-1.45-1.4q.95-.725 1.688-1.588.737-.862 1.262-1.962-1.25-2.525-3.588-4.013Q14.875 6 12 6q-.725 0-1.425.1-.7.1-1.375.3L7.65 4.85q1.025-.425 2.1-.638Q10.825 4 12 4q3.775 0 6.725 2.087Q21.675 8.175 23 11.5q-.575 1.475-1.512 2.738Q20.55 15.5 19.3 16.45Zm.5 6.15-4.2-4.15q-.875.275-1.762.413Q12.95 19 12 19q-3.775 0-6.725-2.087Q2.325 14.825 1 11.5q.525-1.325 1.325-2.463Q3.125 7.9 4.15 7L1.4 4.2l1.4-1.4 18.4 18.4ZM5.55 8.4q-.725.65-1.325 1.425T3.2 11.5q1.25 2.525 3.587 4.012Q9.125 17 12 17q.5 0 .975-.062.475-.063.975-.138l-.9-.95q-.275.075-.525.112Q12.275 16 12 16q-1.875 0-3.188-1.312Q7.5 13.375 7.5 11.5q0-.275.037-.525.038-.25.113-.525Zm7.975 2.325ZM9.75 12.6Z" })));
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const _default: (props: any) => JSX.Element;
3
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const React = tslib_1.__importStar(require("react"));
5
+ const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
6
+ exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props),
7
+ React.createElement("path", { d: "M12 16q1.875 0 3.188-1.312Q16.5 13.375 16.5 11.5q0-1.875-1.312-3.188Q13.875 7 12 7q-1.875 0-3.188 1.312Q7.5 9.625 7.5 11.5q0 1.875 1.312 3.188Q10.125 16 12 16Zm0-1.8q-1.125 0-1.912-.788Q9.3 12.625 9.3 11.5t.788-1.913Q10.875 8.8 12 8.8t1.913.787q.787.788.787 1.913t-.787 1.912q-.788.788-1.913.788Zm0 4.8q-3.65 0-6.65-2.038-3-2.037-4.35-5.462 1.35-3.425 4.35-5.463Q8.35 4 12 4q3.65 0 6.65 2.037 3 2.038 4.35 5.463-1.35 3.425-4.35 5.462Q15.65 19 12 19Zm0-7.5Zm0 5.5q2.825 0 5.188-1.488Q19.55 14.025 20.8 11.5q-1.25-2.525-3.612-4.013Q14.825 6 12 6 9.175 6 6.812 7.487 4.45 8.975 3.2 11.5q1.25 2.525 3.612 4.012Q9.175 17 12 17Z" }),
8
+ ' '));