@adaptabletools/adaptable 12.0.9 → 12.1.0-canary.2

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 (122) hide show
  1. package/base.css +231 -120
  2. package/bundle.cjs.js +143 -114
  3. package/index.css +268 -130
  4. package/package.json +3 -3
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
  8. package/src/AdaptableOptions/SettingsPanelOptions.d.ts +1 -2
  9. package/src/Api/ColumnApi.d.ts +5 -0
  10. package/src/Api/FilterApi.d.ts +15 -1
  11. package/src/Api/Implementation/CalculatedColumnApiImpl.js +2 -3
  12. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -0
  13. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  14. package/src/Api/Implementation/FilterApiImpl.d.ts +6 -1
  15. package/src/Api/Implementation/FilterApiImpl.js +58 -0
  16. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -1
  17. package/src/Api/Implementation/LayoutApiImpl.js +8 -16
  18. package/src/Api/Implementation/ScheduleApiImpl.js +4 -1
  19. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  20. package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +7 -2
  21. package/src/PredefinedConfig/LayoutState.d.ts +2 -0
  22. package/src/PredefinedConfig/ScheduleState.d.ts +4 -0
  23. package/src/Redux/Store/AdaptableStore.js +11 -5
  24. package/src/Strategy/AlertModule.js +2 -2
  25. package/src/Strategy/CustomSortModule.js +2 -2
  26. package/src/Strategy/ExportModule.js +2 -2
  27. package/src/Strategy/FlashingCellModule.js +3 -3
  28. package/src/Strategy/FormatColumnModule.js +2 -2
  29. package/src/Strategy/LayoutModule.js +10 -17
  30. package/src/Strategy/ShortcutModule.js +1 -1
  31. package/src/Strategy/Utilities/{getAlertBehaviourViewItems.d.ts → Alert/getAlertBehaviourViewItems.d.ts} +0 -0
  32. package/src/Strategy/Utilities/{getAlertBehaviourViewItems.js → Alert/getAlertBehaviourViewItems.js} +2 -2
  33. package/src/Strategy/Utilities/{getAlertPreviewViewItems.d.ts → Alert/getAlertPreviewViewItems.d.ts} +2 -2
  34. package/src/Strategy/Utilities/{getAlertPreviewViewItems.js → Alert/getAlertPreviewViewItems.js} +2 -2
  35. package/src/Strategy/Utilities/{getCustomSortColumnViewItems.d.ts → CustomSort/getCustomSortColumnViewItems.d.ts} +1 -1
  36. package/src/Strategy/Utilities/{getCustomSortColumnViewItems.js → CustomSort/getCustomSortColumnViewItems.js} +0 -0
  37. package/src/Strategy/Utilities/{getCustomSortSortOrderViewItems.d.ts → CustomSort/getCustomSortSortOrderViewItems.d.ts} +1 -1
  38. package/src/Strategy/Utilities/{getCustomSortSortOrderViewItems.js → CustomSort/getCustomSortSortOrderViewItems.js} +0 -0
  39. package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +3 -0
  40. package/src/Strategy/Utilities/{getExportColumnsViewItems.js → Export/getExportColumnsViewItems.js} +0 -0
  41. package/src/Strategy/Utilities/{getExportRowsViewItems.d.ts → Export/getExportRowsViewItems.d.ts} +0 -0
  42. package/src/Strategy/Utilities/{getExportRowsViewItems.js → Export/getExportRowsViewItems.js} +0 -0
  43. package/src/Strategy/Utilities/{getFlashingCellDurationViewItems.d.ts → FlashingCell/getFlashingCellDurationViewItems.d.ts} +1 -1
  44. package/src/Strategy/Utilities/{getFlashingCellDurationViewItems.js → FlashingCell/getFlashingCellDurationViewItems.js} +0 -0
  45. package/src/Strategy/Utilities/{getFlashingCellStyleViewItems.d.ts → FlashingCell/getFlashingCellStyleViewItems.d.ts} +1 -1
  46. package/src/Strategy/Utilities/{getFlashingCellStyleViewItems.js → FlashingCell/getFlashingCellStyleViewItems.js} +1 -1
  47. package/src/Strategy/Utilities/{getFlashingTargetViewItems.d.ts → FlashingCell/getFlashingTargetViewItems.d.ts} +1 -1
  48. package/src/Strategy/Utilities/{getFlashingTargetViewItems.js → FlashingCell/getFlashingTargetViewItems.js} +0 -0
  49. package/src/Strategy/Utilities/{getFormatColumnSettingsViewItems.d.ts → FormatColumn/getFormatColumnSettingsViewItems.d.ts} +1 -1
  50. package/src/Strategy/Utilities/{getFormatColumnSettingsViewItems.js → FormatColumn/getFormatColumnSettingsViewItems.js} +0 -0
  51. package/src/Strategy/Utilities/{getFormatColumnStyleViewItems.d.ts → FormatColumn/getFormatColumnStyleViewItems.d.ts} +0 -0
  52. package/src/Strategy/Utilities/{getFormatColumnStyleViewItems.js → FormatColumn/getFormatColumnStyleViewItems.js} +1 -1
  53. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.d.ts +5 -0
  54. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +24 -0
  55. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +5 -0
  56. package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +14 -0
  57. package/src/Strategy/Utilities/{getShortcutSettingsViewItems.d.ts → Shortcut/getShortcutSettingsViewItems.d.ts} +1 -1
  58. package/src/Strategy/Utilities/{getShortcutSettingsViewItems.js → Shortcut/getShortcutSettingsViewItems.js} +0 -0
  59. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +4 -2
  60. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +134 -0
  61. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +1 -1
  62. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +6 -6
  63. package/src/Utilities/ObjectFactory.d.ts +1 -1
  64. package/src/Utilities/ObjectFactory.js +12 -11
  65. package/src/Utilities/Services/CalculatedColumnExpressionService.js +32 -4
  66. package/src/View/AdaptableView.js +2 -2
  67. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +27 -1
  68. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +46 -36
  69. package/src/View/Components/FilterForm/ListBoxFilterForm.js +5 -4
  70. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -2
  71. package/src/View/Components/Popups/AdaptableToaster.js +15 -33
  72. package/src/View/Components/ValueSelector/index.d.ts +10 -1
  73. package/src/View/Components/ValueSelector/index.js +16 -8
  74. package/src/View/FormatColumn/FormatColumnSummary.js +2 -1
  75. package/src/View/Layout/Wizard/LayoutEditor/index.js +1 -1
  76. package/src/View/Layout/Wizard/LayoutWizard.d.ts +4 -7
  77. package/src/View/Layout/Wizard/LayoutWizard.js +127 -13
  78. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +8 -0
  79. package/src/View/Layout/Wizard/sections/AggregationsSection.js +102 -0
  80. package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +8 -0
  81. package/src/View/Layout/Wizard/sections/ColumnsSection.js +226 -0
  82. package/src/View/Layout/Wizard/sections/FilterSection.d.ts +8 -0
  83. package/src/View/Layout/Wizard/sections/FilterSection.js +35 -0
  84. package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +8 -0
  85. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +39 -0
  86. package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +8 -0
  87. package/src/View/Layout/Wizard/sections/RowGroupingSection.js +46 -0
  88. package/src/View/Layout/Wizard/sections/SettingsSection.d.ts +8 -0
  89. package/src/View/Layout/Wizard/sections/SettingsSection.js +51 -0
  90. package/src/View/Layout/Wizard/sections/SortSection.d.ts +8 -0
  91. package/src/View/Layout/Wizard/sections/SortSection.js +69 -0
  92. package/src/View/Layout/Wizard/sections/Utilities.d.ts +2 -0
  93. package/src/View/Layout/Wizard/sections/Utilities.js +5 -0
  94. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +7 -2
  95. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
  96. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +4 -0
  97. package/src/View/StatusBar/StatusBarPanel.js +1 -1
  98. package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -0
  99. package/src/View/Wizard/OnePageAdaptableWizard.js +3 -3
  100. package/src/View/Wizard/OnePageWizards.d.ts +1 -0
  101. package/src/View/Wizard/OnePageWizards.js +1 -1
  102. package/src/agGrid/Adaptable.d.ts +2 -0
  103. package/src/agGrid/Adaptable.js +33 -9
  104. package/src/agGrid/agGridHelper.js +11 -1
  105. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -0
  106. package/src/components/ExpressionEditor/index.js +1 -1
  107. package/src/components/Tabs/index.js +4 -2
  108. package/src/components/icons/arrow-down-long.d.ts +3 -0
  109. package/src/components/icons/arrow-down-long.js +7 -0
  110. package/src/components/icons/arrow-up-long.d.ts +3 -0
  111. package/src/components/icons/arrow-up-long.js +7 -0
  112. package/src/components/icons/index.js +4 -0
  113. package/src/metamodel/adaptable.metamodel.d.ts +9 -0
  114. package/src/metamodel/adaptable.metamodel.js +1 -1
  115. package/src/types.d.ts +1 -1
  116. package/version.d.ts +1 -1
  117. package/version.js +1 -1
  118. package/src/Strategy/Utilities/getExportColumnsViewItems.d.ts +0 -3
  119. package/src/View/Layout/LayoutEntityRow.d.ts +0 -13
  120. package/src/View/Layout/LayoutEntityRow.js +0 -23
  121. package/src/View/Layout/LayoutPopup.d.ts +0 -32
  122. package/src/View/Layout/LayoutPopup.js +0 -153
@@ -0,0 +1,2 @@
1
+ import { AdaptableColumn } from '../../../../types';
2
+ export declare const columnFilter: (column: AdaptableColumn, searchText: string) => boolean;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.columnFilter = void 0;
4
+ const columnFilter = (column, searchText) => [column.friendlyName, column.columnId].some((candidate) => candidate.toLowerCase().includes(searchText.toLowerCase()));
5
+ exports.columnFilter = columnFilter;
@@ -11,7 +11,7 @@ const DropdownButton_1 = tslib_1.__importDefault(require("../../../../components
11
11
  const CheckBox_1 = require("../../../../components/CheckBox");
12
12
  const MESSAGE_TYPES = ['Success', 'Info', 'Warning', 'Error'];
13
13
  const ScheduleSettingsReminder = (props) => {
14
- var _a, _b, _c, _d;
14
+ var _a, _b, _c, _d, _e;
15
15
  const messageTypes = MESSAGE_TYPES.map((messageType) => ({
16
16
  label: messageType,
17
17
  value: messageType,
@@ -30,6 +30,9 @@ const ScheduleSettingsReminder = (props) => {
30
30
  const handleDisplayNotificationChange = (checked) => {
31
31
  props.onChange(Object.assign(Object.assign({}, props.reminderSchedule), { DisplayNotification: checked }));
32
32
  };
33
+ const handleDisplaySystemStatusChange = (checked) => {
34
+ props.onChange(Object.assign(Object.assign({}, props.reminderSchedule), { DisplaySystemStatusMessage: checked }));
35
+ };
33
36
  return (React.createElement(rebass_1.Box, { "data-name": "schedule-settings-remainder" },
34
37
  React.createElement(Tabs_1.Tabs, { autoFocus: false },
35
38
  React.createElement(Tabs_1.Tabs.Tab, null, "Reminder Schedule Settings"),
@@ -42,6 +45,8 @@ const ScheduleSettingsReminder = (props) => {
42
45
  React.createElement(FormLayout_1.FormRow, { label: "Type" },
43
46
  React.createElement(DropdownButton_1.default, { style: { width: 300 }, columns: ['label'], placeholder: "Select Option", items: messageTypes }, ((_c = props.reminderSchedule) === null || _c === void 0 ? void 0 : _c.MessageType) || 'Select Option')),
44
47
  React.createElement(FormLayout_1.FormRow, { label: "" },
45
- React.createElement(CheckBox_1.CheckBox, { checked: (_d = props.reminderSchedule) === null || _d === void 0 ? void 0 : _d.DisplayNotification, onChange: handleDisplayNotificationChange }, "Show the Reminder as an Alert")))))));
48
+ React.createElement(CheckBox_1.CheckBox, { checked: (_d = props.reminderSchedule) === null || _d === void 0 ? void 0 : _d.DisplayNotification, onChange: handleDisplayNotificationChange }, "Show the Reminder as an Alert")),
49
+ React.createElement(FormLayout_1.FormRow, { label: "" },
50
+ React.createElement(CheckBox_1.CheckBox, { checked: (_e = props.reminderSchedule) === null || _e === void 0 ? void 0 : _e.DisplaySystemStatusMessage, onChange: handleDisplaySystemStatusChange }, "Display a System Status Message")))))));
46
51
  };
47
52
  exports.ScheduleSettingsReminder = ScheduleSettingsReminder;
@@ -29,8 +29,8 @@ const ScheduleSettingsReport = (props) => {
29
29
  React.createElement(Tabs_1.Tabs.Content, null,
30
30
  React.createElement(FormLayout_1.default, null,
31
31
  React.createElement(FormLayout_1.FormRow, { label: "Export" },
32
- React.createElement(DropdownButton_1.default, { style: { width: 300 }, items: reportOptions }, ((_a = props === null || props === void 0 ? void 0 : props.report) === null || _a === void 0 ? void 0 : _a.ReportName) || 'Select Report')),
32
+ React.createElement(DropdownButton_1.default, { columns: ['label'], style: { width: 300 }, items: reportOptions }, ((_a = props === null || props === void 0 ? void 0 : props.report) === null || _a === void 0 ? void 0 : _a.ReportName) || 'Select Report')),
33
33
  React.createElement(FormLayout_1.FormRow, { label: "Destination" },
34
- React.createElement(DropdownButton_1.default, { style: { width: 300 }, items: destinationOptions }, ((_b = props === null || props === void 0 ? void 0 : props.report) === null || _b === void 0 ? void 0 : _b.ExportDestination) || 'Select Destination')))))));
34
+ React.createElement(DropdownButton_1.default, { columns: ['label'], style: { width: 300 }, items: destinationOptions }, ((_b = props === null || props === void 0 ? void 0 : props.report) === null || _b === void 0 ? void 0 : _b.ExportDestination) || 'Select Destination')))))));
35
35
  };
36
36
  exports.ScheduleSettingsReport = ScheduleSettingsReport;
@@ -26,6 +26,10 @@ const getScheduleSettingsValues = (data) => {
26
26
  label: 'Display Toast Notification',
27
27
  value: (reminder === null || reminder === void 0 ? void 0 : reminder.DisplayNotification) ? 'True' : 'False',
28
28
  },
29
+ {
30
+ label: 'Show System Status Message',
31
+ value: (reminder === null || reminder === void 0 ? void 0 : reminder.DisplaySystemStatusMessage) ? 'True' : 'False',
32
+ },
29
33
  ];
30
34
  }
31
35
  if (data.ScheduleType === Enums_1.ScheduleType.Report) {
@@ -39,7 +39,7 @@ const StatusBarPanel = (props) => {
39
39
  const preparedContent = typeof content === 'function'
40
40
  ? React.createElement(content)
41
41
  : content;
42
- return (React.createElement(rebass_1.Flex, Object.assign({}, flexProps, { alignItems: "center", justifyContent: "center", as: shouldTriggerActionOnWrapperClick ? 'button' : 'div', className: baseClassName, onClick: handleWrapperClick }),
42
+ return (React.createElement(rebass_1.Flex, Object.assign({}, flexProps, { alignItems: "center", justifyContent: "center", className: baseClassName, onClick: handleWrapperClick, style: { cursor: shouldTriggerActionOnWrapperClick ? 'pointer' : 'default' } }),
43
43
  props.icon && (React.createElement(SimpleButton_1.default, { tooltip: tooltip, color: props.color, icon: props.icon, iconSize: 15, variant: "text", onClick: handleIconClick, mr: preparedContent ? 1 : 0 })),
44
44
  popover ? (React.createElement(AdaptablePopover_1.AdaptablePopover, { tooltipText: tooltip, showIcon: false, bodyText: [popoverContent], MessageType: 'Info', showEvent: 'focus', hideEvent: "blur", popoverMinWidth: popoverMinWidth }, preparedContent)) : (preparedContent),
45
45
  ArrayExtensions_1.default.IsNotNullOrEmpty(extraActions) && (React.createElement(rebass_1.Box, { ml: 1 }, (_a = extraActions === null || extraActions === void 0 ? void 0 : extraActions.map) === null || _a === void 0 ? void 0 : _a.call(extraActions, (action, index) => React.createElement(action, { key: index }))))));
@@ -36,6 +36,7 @@ export interface OnePageAdaptableWizardProps<ENTITY> {
36
36
  onFinish?: (data: ENTITY) => any;
37
37
  children?: React.ReactNode;
38
38
  style?: CSSProperties;
39
+ titleContainerStyle?: CSSProperties;
39
40
  closeText?: React.ReactNode;
40
41
  closeTooltip?: string;
41
42
  }
@@ -75,8 +75,8 @@ const OnePageAdaptableWizard = (props) => {
75
75
  };
76
76
  exports.OnePageAdaptableWizard = OnePageAdaptableWizard;
77
77
  const OnePageWizardSummary = () => {
78
- const { setCurrentSection } = OnePageWizards_1.useOnePageWizardContext();
79
- const { sections, data, api } = useOnePageAdaptableWizardContext();
78
+ const { setCurrentSection, sections, data } = OnePageWizards_1.useOnePageWizardContext();
79
+ const { api } = useOnePageAdaptableWizardContext();
80
80
  const renderEdit = (index) => (React.createElement(SimpleButton_1.default, { px: 1, variant: "text", style: {
81
81
  textDecoration: 'underline',
82
82
  display: 'inline-block',
@@ -97,7 +97,7 @@ const OnePageWizardSummary = () => {
97
97
  section.title,
98
98
  " ",
99
99
  renderEdit(index)),
100
- React.createElement(Tabs_1.Tabs.Content, null, section.renderSummary(data, api))));
100
+ React.createElement(Tabs_1.Tabs.Content, null, section.renderSummary(data))));
101
101
  })
102
102
  .filter(Boolean)));
103
103
  };
@@ -31,6 +31,7 @@ export interface OnePageWizardProps<ENTITY> {
31
31
  onFinish?: (data: ENTITY) => any;
32
32
  children?: React.ReactNode;
33
33
  style?: CSSProperties;
34
+ titleContainerStyle?: CSSProperties;
34
35
  closeText?: React.ReactNode;
35
36
  closeTooltip?: string;
36
37
  }
@@ -139,7 +139,7 @@ const OnePageWizard = (props) => {
139
139
  } },
140
140
  React.createElement(rebass_1.Flex, { className: "ab-OnePageWizard", flexDirection: "column", "data-name": props.name, style: Object.assign({ height: '100%', width: '90vw', maxWidth: 1200 }, props.style) },
141
141
  React.createElement(rebass_1.Flex, { flexDirection: "row", alignItems: "stretch", flex: 1, style: { overflow: 'auto' } },
142
- React.createElement(rebass_1.Flex, { flexDirection: "column", padding: 3, className: "ab-OnePageWizard__section-title-container", ref: sizeOwnerRef, style: { overflow: 'auto', position: 'relative', flex: 'none' } },
142
+ React.createElement(rebass_1.Flex, { flexDirection: "column", padding: 3, className: "ab-OnePageWizard__section-title-container", ref: sizeOwnerRef, style: Object.assign({ overflow: 'auto', position: 'relative', flex: 'none' }, props.titleContainerStyle) },
143
143
  visibleSections.map((section, index) => {
144
144
  if (section === '-') {
145
145
  return (React.createElement(rebass_1.Box, { as: "hr", mt: 2, className: "ab-OnePageWizard__section-separator", key: `${index}-`, style: {
@@ -260,6 +260,7 @@ export declare class Adaptable implements IAdaptable {
260
260
  setupColumnCellEditor({ colId, col }: ColumnSetupInfo): void;
261
261
  setupColumnCellRenderer({ col, colId, abColumn }: ColumnSetupInfo): void;
262
262
  setupColumnTooltipValueGetter({ col, colId }: ColumnSetupInfo): void;
263
+ setupColumnQuickFilerText({ col, abColumn }: ColumnSetupInfo): void;
263
264
  setupColumnHeader({ col, abColumn }: ColumnSetupInfo): boolean;
264
265
  setupColumnFilter({ col, colDef }: ColumnSetupInfo): void;
265
266
  setupColumnFloatingFilter({ col, colDef }: ColumnSetupInfo): void;
@@ -326,6 +327,7 @@ export declare class Adaptable implements IAdaptable {
326
327
  isGridGroupingActive(): boolean;
327
328
  isGridPivotable(): boolean;
328
329
  isQuickFilterAvailable(): boolean;
330
+ setAgQuickSearch(query: string): void;
329
331
  private hasFloatingFilterOnAtLeastOneColumn;
330
332
  showQuickFilter(): void;
331
333
  hideQuickFilter(): void;
@@ -3032,6 +3032,7 @@ class Adaptable {
3032
3032
  this.setupColumnComparator(colSetupInfo);
3033
3033
  this.setupColumnCellEditor(colSetupInfo);
3034
3034
  this.setupColumnHeader(colSetupInfo);
3035
+ this.setupColumnQuickFilerText(colSetupInfo);
3035
3036
  });
3036
3037
  this.setupRowStyling();
3037
3038
  // setupAggregationColumnHeaders() is executed on every setLayout()
@@ -3042,6 +3043,9 @@ class Adaptable {
3042
3043
  this.redrawHeader();
3043
3044
  }
3044
3045
  setGridOptionsProperty(propertyName, propertyGetter) {
3046
+ if (this.isDestroyed) {
3047
+ return;
3048
+ }
3045
3049
  const userKey = `user.${propertyName}`;
3046
3050
  const adaptableKey = `adaptable.${propertyName}`;
3047
3051
  const value = this.gridOptions[propertyName];
@@ -3050,15 +3054,17 @@ class Adaptable {
3050
3054
  this.gridOptionsPropertyCache.set(userKey, value);
3051
3055
  }
3052
3056
  const userValue = this.gridOptionsPropertyCache.get(userKey);
3053
- const adaptableValue = (...args) => {
3054
- if (this.isDestroyed) {
3055
- return;
3056
- }
3057
- if (propertyGetter) {
3058
- return propertyGetter(userValue)(...args);
3059
- }
3060
- return undefined;
3061
- };
3057
+ let adaptableValue = propertyGetter(userValue);
3058
+ // usualy it is a function, but not always, e.g. in the case of 'suppressAggFuncInHeader'
3059
+ if (typeof adaptableValue === 'function') {
3060
+ const previousValue = adaptableValue;
3061
+ adaptableValue = (...args) => {
3062
+ if (this.isDestroyed) {
3063
+ return;
3064
+ }
3065
+ return previousValue(...args);
3066
+ };
3067
+ }
3062
3068
  if (adaptableValue != null) {
3063
3069
  this.gridOptionsPropertyCache.set(adaptableKey, adaptableValue);
3064
3070
  }
@@ -3259,6 +3265,21 @@ class Adaptable {
3259
3265
  }
3260
3266
  });
3261
3267
  }
3268
+ setupColumnQuickFilerText({ col, abColumn }) {
3269
+ this.setColDefProperty(col, 'getQuickFilterText', (userGetQuickFilterText) => {
3270
+ if (userGetQuickFilterText) {
3271
+ return userGetQuickFilterText;
3272
+ }
3273
+ return (params) => {
3274
+ const visibleCoulmnsMap = this.api.layoutApi.getCurrentVisibleColumnIdsMap();
3275
+ const isVisible = visibleCoulmnsMap[abColumn.columnId];
3276
+ if (!isVisible) {
3277
+ return '';
3278
+ }
3279
+ return this.getDisplayValueFromRowNode(params.node, abColumn.columnId);
3280
+ };
3281
+ });
3282
+ }
3262
3283
  setupColumnHeader({ col, abColumn }) {
3263
3284
  var _a, _b;
3264
3285
  const previousColumnHeader = (_a = col === null || col === void 0 ? void 0 : col.getColDef()) === null || _a === void 0 ? void 0 : _a.headerName;
@@ -4062,6 +4083,9 @@ class Adaptable {
4062
4083
  isQuickFilterAvailable() {
4063
4084
  return this.hasFloatingFilterOnAtLeastOneColumn() === true;
4064
4085
  }
4086
+ setAgQuickSearch(query) {
4087
+ this.gridOptions.api.setQuickFilter(query);
4088
+ }
4065
4089
  hasFloatingFilterOnAtLeastOneColumn(defs = this.gridOptions.columnDefs) {
4066
4090
  if (this.gridOptions.defaultColDef && this.gridOptions.defaultColDef.floatingFilter) {
4067
4091
  return true;
@@ -130,7 +130,17 @@ class agGridHelper {
130
130
  }
131
131
  else {
132
132
  this.gridOptions.getRowId = (params) => {
133
- return params.data[primaryKey];
133
+ var _a;
134
+ if (params.data[primaryKey]) {
135
+ return params.data[primaryKey];
136
+ }
137
+ // row does not have primary key => might be a group row
138
+ const parentKeys = (_a = params.parentKeys) !== null && _a !== void 0 ? _a : [];
139
+ const values = Object.values(params.data);
140
+ if (values.length) {
141
+ const id = [...parentKeys, values[0]].join('/');
142
+ return id;
143
+ }
134
144
  };
135
145
  }
136
146
  return true;
@@ -27,6 +27,11 @@ exports.editorButtonsAggregatedScalar = [
27
27
  data: 'MAX()',
28
28
  text: 'Max',
29
29
  },
30
+ {
31
+ functionName: 'QUANT',
32
+ data: 'QUANT()',
33
+ text: 'Quantile',
34
+ },
30
35
  {
31
36
  functionName: 'GROUP_BY',
32
37
  data: 'GROUP_BY()',
@@ -45,7 +45,7 @@ function ExpressionEditor(props) {
45
45
  props.onChange(value);
46
46
  }, testData: data, isFullExpression: props.isFullExpression, api: props.api }));
47
47
  // currently only boolean and scalar expressions support nested calculated columns (calc cols which reference other calc cols)
48
- const queryableColumns = type === 'scalar' || type === 'boolean'
48
+ const queryableColumns = type === 'scalar' || type === 'boolean' || type === 'aggregatedScalar'
49
49
  ? props.columns
50
50
  : props.columns.filter((c) => !props.api.columnApi.isCalculatedColumn(c.columnId));
51
51
  // borrowed from https://github.com/ag-grid/ag-grid/blob/v27.2.1/community-modules/core/src/ts/utils/object.ts#L205
@@ -13,10 +13,12 @@ const TabContext = React.createContext({
13
13
  setSelectedIndex: (index) => { },
14
14
  });
15
15
  const isTab = (c) => {
16
- return c.type === exports.Tab || c.props.isTabsTab;
16
+ var _a;
17
+ return c.type === exports.Tab || ((_a = c.props) === null || _a === void 0 ? void 0 : _a.isTabsTab);
17
18
  };
18
19
  const isTabContent = (c) => {
19
- return c.type === exports.Content || c.props.isTabsContent;
20
+ var _a;
21
+ return c.type === exports.Content || ((_a = c.props) === null || _a === void 0 ? void 0 : _a.isTabsContent);
20
22
  };
21
23
  const Tabs = (props) => {
22
24
  var _a;
@@ -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: "m12 22-7-7 1.4-1.425 4.6 4.6V2h2v16.175l4.6-4.575L19 15Z" })));
@@ -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: "M11 22V5.825L6.4 10.4 5 9l7-7 7 7-1.4 1.425-4.6-4.6V22Z" })));
@@ -7,6 +7,8 @@ const ReactDOMServer = tslib_1.__importStar(require("react-dom/server"));
7
7
  const arrow_right_1 = tslib_1.__importDefault(require("./arrow-right"));
8
8
  const arrow_down_1 = tslib_1.__importDefault(require("./arrow-down"));
9
9
  const arrow_up_1 = tslib_1.__importDefault(require("./arrow-up"));
10
+ const arrow_up_long_1 = tslib_1.__importDefault(require("./arrow-up-long"));
11
+ const arrow_down_long_1 = tslib_1.__importDefault(require("./arrow-down-long"));
10
12
  const arrow_left_1 = tslib_1.__importDefault(require("./arrow-left"));
11
13
  const triangle_up_1 = tslib_1.__importDefault(require("./triangle-up"));
12
14
  const triangle_down_1 = tslib_1.__importDefault(require("./triangle-down"));
@@ -194,8 +196,10 @@ const allIcons = {
194
196
  'boolean-list': boolean_list_1.default,
195
197
  'arrow-right': arrow_right_1.default,
196
198
  'arrow-up': arrow_up_1.default,
199
+ 'arrow-up-long': arrow_up_long_1.default,
197
200
  'triangle-up': triangle_up_1.default,
198
201
  'arrow-down': arrow_down_1.default,
202
+ 'arrow-down-long': arrow_down_long_1.default,
199
203
  'triangle-down': triangle_down_1.default,
200
204
  'arrow-left': arrow_left_1.default,
201
205
  'check-circle': check_circle_1.default,
@@ -4066,6 +4066,14 @@ export declare const ADAPTABLE_METAMODEL: {
4066
4066
  kind: string;
4067
4067
  description: string;
4068
4068
  uiLabel: string;
4069
+ isOptional?: undefined;
4070
+ reference?: undefined;
4071
+ } | {
4072
+ name: string;
4073
+ kind: string;
4074
+ description: string;
4075
+ uiLabel: string;
4076
+ isOptional: boolean;
4069
4077
  reference?: undefined;
4070
4078
  } | {
4071
4079
  name: string;
@@ -4073,6 +4081,7 @@ export declare const ADAPTABLE_METAMODEL: {
4073
4081
  description: string;
4074
4082
  uiLabel: string;
4075
4083
  reference: string;
4084
+ isOptional?: undefined;
4076
4085
  })[];
4077
4086
  };
4078
4087
  ReportContext: {