@adaptabletools/adaptable 12.0.8 → 12.1.0-canary.1
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.
- package/base.css +231 -120
- package/bundle.cjs.js +143 -114
- package/index.css +268 -130
- package/package.json +3 -3
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +1 -0
- package/src/AdaptableOptions/SettingsPanelOptions.d.ts +1 -2
- package/src/Api/ColumnApi.d.ts +5 -0
- package/src/Api/EventApi.d.ts +13 -1
- package/src/Api/Events/AdaptableStateReloaded.d.ts +23 -0
- package/src/Api/Events/AdaptableStateReloaded.js +2 -0
- package/src/Api/FilterApi.d.ts +15 -1
- package/src/Api/Implementation/CalculatedColumnApiImpl.js +2 -3
- package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ColumnApiImpl.js +10 -0
- package/src/Api/Implementation/ConfigApiImpl.js +11 -0
- package/src/Api/Implementation/FilterApiImpl.d.ts +6 -1
- package/src/Api/Implementation/FilterApiImpl.js +58 -0
- package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -1
- package/src/Api/Implementation/LayoutApiImpl.js +8 -16
- package/src/Api/Implementation/ScheduleApiImpl.js +4 -1
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +7 -2
- package/src/PredefinedConfig/LayoutState.d.ts +2 -0
- package/src/PredefinedConfig/ScheduleState.d.ts +4 -0
- package/src/Redux/Store/AdaptableStore.js +12 -6
- package/src/Strategy/AdaptableModuleBase.d.ts +2 -0
- package/src/Strategy/AdaptableModuleBase.js +6 -0
- package/src/Strategy/AlertModule.js +2 -2
- package/src/Strategy/CalculatedColumnModule.d.ts +2 -0
- package/src/Strategy/CalculatedColumnModule.js +4 -0
- package/src/Strategy/CustomSortModule.js +2 -2
- package/src/Strategy/ExportModule.js +2 -2
- package/src/Strategy/FlashingCellModule.js +3 -3
- package/src/Strategy/FormatColumnModule.js +2 -2
- package/src/Strategy/LayoutModule.js +10 -17
- package/src/Strategy/ShortcutModule.js +1 -1
- package/src/Strategy/TeamSharingModule.js +4 -2
- package/src/Strategy/Utilities/{getAlertBehaviourViewItems.d.ts → Alert/getAlertBehaviourViewItems.d.ts} +0 -0
- package/src/Strategy/Utilities/{getAlertBehaviourViewItems.js → Alert/getAlertBehaviourViewItems.js} +2 -2
- package/src/Strategy/Utilities/{getAlertPreviewViewItems.d.ts → Alert/getAlertPreviewViewItems.d.ts} +2 -2
- package/src/Strategy/Utilities/{getAlertPreviewViewItems.js → Alert/getAlertPreviewViewItems.js} +2 -2
- package/src/Strategy/Utilities/{getCustomSortColumnViewItems.d.ts → CustomSort/getCustomSortColumnViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getCustomSortColumnViewItems.js → CustomSort/getCustomSortColumnViewItems.js} +0 -0
- package/src/Strategy/Utilities/{getCustomSortSortOrderViewItems.d.ts → CustomSort/getCustomSortSortOrderViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getCustomSortSortOrderViewItems.js → CustomSort/getCustomSortSortOrderViewItems.js} +0 -0
- package/src/Strategy/Utilities/Export/getExportColumnsViewItems.d.ts +3 -0
- package/src/Strategy/Utilities/{getExportColumnsViewItems.js → Export/getExportColumnsViewItems.js} +0 -0
- package/src/Strategy/Utilities/{getExportRowsViewItems.d.ts → Export/getExportRowsViewItems.d.ts} +0 -0
- package/src/Strategy/Utilities/{getExportRowsViewItems.js → Export/getExportRowsViewItems.js} +0 -0
- package/src/Strategy/Utilities/{getFlashingCellDurationViewItems.d.ts → FlashingCell/getFlashingCellDurationViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getFlashingCellDurationViewItems.js → FlashingCell/getFlashingCellDurationViewItems.js} +0 -0
- package/src/Strategy/Utilities/{getFlashingCellStyleViewItems.d.ts → FlashingCell/getFlashingCellStyleViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getFlashingCellStyleViewItems.js → FlashingCell/getFlashingCellStyleViewItems.js} +1 -1
- package/src/Strategy/Utilities/{getFlashingTargetViewItems.d.ts → FlashingCell/getFlashingTargetViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getFlashingTargetViewItems.js → FlashingCell/getFlashingTargetViewItems.js} +0 -0
- package/src/Strategy/Utilities/{getFormatColumnSettingsViewItems.d.ts → FormatColumn/getFormatColumnSettingsViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getFormatColumnSettingsViewItems.js → FormatColumn/getFormatColumnSettingsViewItems.js} +0 -0
- package/src/Strategy/Utilities/{getFormatColumnStyleViewItems.d.ts → FormatColumn/getFormatColumnStyleViewItems.d.ts} +0 -0
- package/src/Strategy/Utilities/{getFormatColumnStyleViewItems.js → FormatColumn/getFormatColumnStyleViewItems.js} +1 -1
- package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.d.ts +5 -0
- package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +24 -0
- package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.d.ts +5 -0
- package/src/Strategy/Utilities/Layout/getLayoutSortViewItems.js +14 -0
- package/src/Strategy/Utilities/{getShortcutSettingsViewItems.d.ts → Shortcut/getShortcutSettingsViewItems.d.ts} +1 -1
- package/src/Strategy/Utilities/{getShortcutSettingsViewItems.js → Shortcut/getShortcutSettingsViewItems.js} +0 -0
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +4 -2
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +144 -0
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +6 -6
- package/src/Utilities/ObjectFactory.d.ts +1 -1
- package/src/Utilities/ObjectFactory.js +12 -11
- package/src/Utilities/Services/CalculatedColumnExpressionService.js +57 -13
- package/src/View/AdaptableView.js +2 -2
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +27 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +46 -36
- package/src/View/Components/FilterForm/ListBoxFilterForm.js +5 -4
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -2
- package/src/View/Components/Popups/AdaptableToaster.js +15 -33
- package/src/View/Components/ValueSelector/index.d.ts +10 -1
- package/src/View/Components/ValueSelector/index.js +16 -8
- package/src/View/FormatColumn/FormatColumnSummary.js +2 -1
- package/src/View/Layout/Wizard/LayoutEditor/index.js +1 -1
- package/src/View/Layout/Wizard/LayoutWizard.d.ts +4 -7
- package/src/View/Layout/Wizard/LayoutWizard.js +127 -13
- package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/AggregationsSection.js +102 -0
- package/src/View/Layout/Wizard/sections/ColumnsSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/ColumnsSection.js +226 -0
- package/src/View/Layout/Wizard/sections/FilterSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/FilterSection.js +35 -0
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +39 -0
- package/src/View/Layout/Wizard/sections/RowGroupingSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/RowGroupingSection.js +46 -0
- package/src/View/Layout/Wizard/sections/SettingsSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/SettingsSection.js +51 -0
- package/src/View/Layout/Wizard/sections/SortSection.d.ts +8 -0
- package/src/View/Layout/Wizard/sections/SortSection.js +69 -0
- package/src/View/Layout/Wizard/sections/Utilities.d.ts +2 -0
- package/src/View/Layout/Wizard/sections/Utilities.js +5 -0
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +7 -2
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +2 -2
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsSummary.js +4 -0
- package/src/View/StatusBar/StatusBarPanel.js +1 -1
- package/src/View/Wizard/OnePageAdaptableWizard.d.ts +1 -0
- package/src/View/Wizard/OnePageAdaptableWizard.js +3 -3
- package/src/View/Wizard/OnePageWizards.d.ts +1 -0
- package/src/View/Wizard/OnePageWizards.js +1 -1
- package/src/agGrid/Adaptable.d.ts +3 -0
- package/src/agGrid/Adaptable.js +47 -10
- package/src/agGrid/agGridHelper.js +11 -1
- package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -0
- package/src/components/ExpressionEditor/index.js +1 -1
- package/src/components/Tabs/index.js +4 -2
- package/src/components/icons/arrow-down-long.d.ts +3 -0
- package/src/components/icons/arrow-down-long.js +7 -0
- package/src/components/icons/arrow-up-long.d.ts +3 -0
- package/src/components/icons/arrow-up-long.js +7 -0
- package/src/components/icons/index.js +4 -0
- package/src/metamodel/adaptable.metamodel.d.ts +9 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/Strategy/Utilities/getExportColumnsViewItems.d.ts +0 -3
- package/src/View/Layout/LayoutEntityRow.d.ts +0 -13
- package/src/View/Layout/LayoutEntityRow.js +0 -23
- package/src/View/Layout/LayoutPopup.d.ts +0 -32
- package/src/View/Layout/LayoutPopup.js +0 -153
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable",
|
|
3
|
-
"version": "12.0.
|
|
3
|
+
"version": "12.1.0-canary.1",
|
|
4
4
|
"description": "Powerful data-agnostic HTML5 datagrid add-on that sits on top of an underlying grid component and provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"main": "agGrid.js",
|
|
32
32
|
"typings": "types.d.ts",
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@infinite-table/infinite-react": "0.3.
|
|
34
|
+
"@infinite-table/infinite-react": "0.3.21",
|
|
35
35
|
"date-fns": "2.22.1",
|
|
36
36
|
"debug": "^4.3.1",
|
|
37
37
|
"isomorphic-fetch": "^2.2.1",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"react-dom": "^16.8.0 || ^17.0.0",
|
|
46
46
|
"react-redux": "7.2.4",
|
|
47
47
|
"react-remove-scroll": "2.4.2",
|
|
48
|
-
"react-toastify": "
|
|
48
|
+
"react-toastify": "9.0.7",
|
|
49
49
|
"rebass": "^3.2.2",
|
|
50
50
|
"redux": "4.0.5",
|
|
51
51
|
"rxjs": "6.6.7",
|
package/publishTimestamp.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default:
|
|
1
|
+
declare const _default: 1658495234609;
|
|
2
2
|
export default _default;
|
package/publishTimestamp.js
CHANGED
|
@@ -219,6 +219,7 @@ export interface IAdaptable {
|
|
|
219
219
|
showQuickFilter(): void;
|
|
220
220
|
hideQuickFilter(): void;
|
|
221
221
|
isQuickFilterAvailable(): boolean;
|
|
222
|
+
setAgQuickSearch(query: string): void;
|
|
222
223
|
getAgGridLightThemeName(): string;
|
|
223
224
|
getAgGridCurrentThemeName(): string;
|
|
224
225
|
applyAdaptableTheme(theme: AdaptableTheme | string): void;
|
|
@@ -10,8 +10,7 @@ export interface SettingsPanelOptions {
|
|
|
10
10
|
*/
|
|
11
11
|
title?: string;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
13
|
+
* Settings Panel Icon: `ConfigurationIcon`, `ApplicationIcon` or custom Icon
|
|
15
14
|
* @defaultValue `ConfigurationIcon`
|
|
16
15
|
*/
|
|
17
16
|
icon?: 'ConfigurationIcon' | 'ApplicationIcon' | AdaptableIcon;
|
package/src/Api/ColumnApi.d.ts
CHANGED
|
@@ -38,6 +38,10 @@ export interface ColumnApi {
|
|
|
38
38
|
* Returns all Sortable Columns
|
|
39
39
|
*/
|
|
40
40
|
getSortableColumns(): AdaptableColumn[];
|
|
41
|
+
/**
|
|
42
|
+
* Returns all Sortable Columns
|
|
43
|
+
*/
|
|
44
|
+
getFiltrableColumns(): AdaptableColumn[];
|
|
41
45
|
/**
|
|
42
46
|
* Returns all Groupable Columns
|
|
43
47
|
*/
|
|
@@ -299,4 +303,5 @@ export interface ColumnApi {
|
|
|
299
303
|
* @param columnId Column to Check
|
|
300
304
|
*/
|
|
301
305
|
isActionRowButtonColumn(columnId: string): boolean;
|
|
306
|
+
getDefaultAggFunc(columnId: string): string;
|
|
302
307
|
}
|
package/src/Api/EventApi.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { GridDataChangedInfo } from './Events/GridDataChanged';
|
|
|
16
16
|
import { TeamSharingEntityChangedInfo } from './Events/TeamSharingEntityChanged';
|
|
17
17
|
import { ActionRowSubmittedInfo } from './Events/ActionRowSubmitted';
|
|
18
18
|
import { DataSetSelectedInfo } from './Events/DataSetSelected';
|
|
19
|
+
import { AdaptableStateReloadedInfo } from './Events/AdaptableStateReloaded';
|
|
19
20
|
/**
|
|
20
21
|
* Responsible for publishing the many Events that AdapTable fires
|
|
21
22
|
*/
|
|
@@ -183,6 +184,17 @@ export interface EventApi {
|
|
|
183
184
|
* Unsubscribe from AdaptableStateChanged
|
|
184
185
|
*/
|
|
185
186
|
off(eventName: 'AdaptableStateChanged', callback: (adaptableStateChangedInfo: AdaptableStateChangedInfo) => void): void;
|
|
187
|
+
/**
|
|
188
|
+
* Event fired whenever **Adaptable State is reloaded**
|
|
189
|
+
* @param eventName AdaptableStateReloaded
|
|
190
|
+
* @param callback AdaptableStateReloadedInfo
|
|
191
|
+
* @returns the unsubscribe function
|
|
192
|
+
*/
|
|
193
|
+
on(eventName: 'AdaptableStateReloaded', callback: (adaptableStateReloadedInfo: AdaptableStateReloadedInfo) => void): () => void;
|
|
194
|
+
/**
|
|
195
|
+
* Unsubscribe from AdaptableStateReloaded
|
|
196
|
+
*/
|
|
197
|
+
off(eventName: 'AdaptableStateReloaded', callback: (adaptableStateReloadedInfo: AdaptableStateReloadedInfo) => void): void;
|
|
186
198
|
/**
|
|
187
199
|
* Event fired whenever **a change occurs relating to live reports / data**
|
|
188
200
|
* Used in conjunction with AdapTable's partners OpenFin, ipushpull or Glue42
|
|
@@ -252,6 +264,6 @@ export interface EventApi {
|
|
|
252
264
|
emitSync(eventName: 'DashboardChanged', data?: any): any[];
|
|
253
265
|
emitSync(eventName: 'FlashingCellDisplayed', data?: any): any[];
|
|
254
266
|
emitSync(eventName: 'AdaptableDestroy'): any[];
|
|
255
|
-
emit(eventName: 'AdaptableReady' | 'AlertFired' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'AdaptableStateChanged' | 'DashboardChanged' | 'CellChanged' | 'GridDataChanged' | 'LayoutChanged' | 'LiveDataChanged' | 'SearchChanged' | 'SelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'FDC3MessageSent' | 'ActionRowSubmitted' | 'DataSetSelected', data?: any): Promise<any>;
|
|
267
|
+
emit(eventName: 'AdaptableReady' | 'AlertFired' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'DashboardChanged' | 'CellChanged' | 'GridDataChanged' | 'LayoutChanged' | 'LiveDataChanged' | 'SearchChanged' | 'SelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'FDC3MessageSent' | 'ActionRowSubmitted' | 'DataSetSelected', data?: any): Promise<any>;
|
|
256
268
|
destroy(): void;
|
|
257
269
|
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AdaptablePersistentState } from '../../PredefinedConfig/AdaptableState';
|
|
2
|
+
import { BaseEventInfo } from './BaseEventInfo';
|
|
3
|
+
/**
|
|
4
|
+
* Object returned by the `AdaptableStateReloaded` event
|
|
5
|
+
*/
|
|
6
|
+
export interface AdaptableStateReloadedInfo extends BaseEventInfo {
|
|
7
|
+
/**
|
|
8
|
+
* Current AdapTableId
|
|
9
|
+
*/
|
|
10
|
+
adaptableId: string;
|
|
11
|
+
/**
|
|
12
|
+
* Current Adaptable State Key
|
|
13
|
+
*/
|
|
14
|
+
adaptableStateKey: string;
|
|
15
|
+
/**
|
|
16
|
+
* Adaptable State before the reload
|
|
17
|
+
*/
|
|
18
|
+
oldState: AdaptablePersistentState;
|
|
19
|
+
/**
|
|
20
|
+
* Adaptable State after the reload
|
|
21
|
+
*/
|
|
22
|
+
newState: AdaptablePersistentState;
|
|
23
|
+
}
|
package/src/Api/FilterApi.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { AdaptableColumn, ColumnFilter, GridCell, SystemFilterPredicateIds } from '../types';
|
|
2
|
-
import
|
|
2
|
+
import * as Redux from 'redux';
|
|
3
|
+
import { ColumnFilterDef, AdaptablePredicateDef } from '../PredefinedConfig/Common/AdaptablePredicate';
|
|
3
4
|
import { RowNode } from '@ag-grid-community/all-modules';
|
|
5
|
+
import { LayoutColumnFilterAction } from '../Redux/ActionsReducers/LayoutRedux';
|
|
4
6
|
/**
|
|
5
7
|
* Provides run-time access to Filter section of Adaptable State.
|
|
6
8
|
*/
|
|
@@ -46,6 +48,11 @@ export interface FilterApi {
|
|
|
46
48
|
* @returns column filters
|
|
47
49
|
*/
|
|
48
50
|
getColumnFilters(): ColumnFilter[];
|
|
51
|
+
/**
|
|
52
|
+
* Retrieves the Column Filter for the specified Column.
|
|
53
|
+
* @param columnId Column ID to lookup
|
|
54
|
+
*/
|
|
55
|
+
getColumnFilter(columnId: string): ColumnFilter | undefined;
|
|
49
56
|
/**
|
|
50
57
|
* Retrieves all Column Filters in a given Layout
|
|
51
58
|
* @param layoutName Layout to retrieve Column Filters for
|
|
@@ -120,4 +127,11 @@ export interface FilterApi {
|
|
|
120
127
|
* - filter predicate has inputs with values
|
|
121
128
|
*/
|
|
122
129
|
isFilterActive(columnFilter: ColumnFilter): boolean;
|
|
130
|
+
getColumnFilterDefs(): ColumnFilterDef[];
|
|
131
|
+
/**
|
|
132
|
+
* Checks if the filter action should trigger grid filtering.
|
|
133
|
+
*
|
|
134
|
+
* @param action Filtering Action
|
|
135
|
+
*/
|
|
136
|
+
shouldNewColumnFilterTriggerGridFiltering(action: LayoutColumnFilterAction | Redux.Action): boolean;
|
|
123
137
|
}
|
|
@@ -10,11 +10,10 @@ class CalculatedColumnApiImpl extends ApiBase_1.ApiBase {
|
|
|
10
10
|
return this.getAdaptableState().CalculatedColumn;
|
|
11
11
|
}
|
|
12
12
|
getAllCalculatedColumn() {
|
|
13
|
-
return this.getCalculatedColumnState().CalculatedColumns;
|
|
13
|
+
return this.getCalculatedColumnState().CalculatedColumns || [];
|
|
14
14
|
}
|
|
15
15
|
getCalculatedColumnById(id) {
|
|
16
|
-
|
|
17
|
-
return (_a = this.getAllCalculatedColumn()) === null || _a === void 0 ? void 0 : _a.find((column) => (column === null || column === void 0 ? void 0 : column.Uuid) === id);
|
|
16
|
+
return this.getAllCalculatedColumn().find((column) => (column === null || column === void 0 ? void 0 : column.Uuid) === id);
|
|
18
17
|
}
|
|
19
18
|
addCalculatedColumn(calculatedColumn) {
|
|
20
19
|
this.addUidToAdaptableObject(calculatedColumn);
|
|
@@ -46,6 +46,7 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
|
|
|
46
46
|
getDateColumns(): AdaptableColumn[];
|
|
47
47
|
getBooleanColumns(): AdaptableColumn[];
|
|
48
48
|
getSortableColumns(): AdaptableColumn[];
|
|
49
|
+
getFiltrableColumns(): AdaptableColumn[];
|
|
49
50
|
getGroupableColumns(): AdaptableColumn[];
|
|
50
51
|
getPivotableColumns(): AdaptableColumn[];
|
|
51
52
|
getAggregetableColumns(): AdaptableColumn[];
|
|
@@ -68,4 +69,5 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
|
|
|
68
69
|
usesAdaptableQuickFilter(columnId: string): boolean;
|
|
69
70
|
isColumnReferencedInExpression(columnId: string, expression: string): boolean;
|
|
70
71
|
isActionRowButtonColumn(columnId: string): boolean;
|
|
72
|
+
getDefaultAggFunc(columnId: string): string;
|
|
71
73
|
}
|
|
@@ -251,6 +251,9 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
|
|
|
251
251
|
getSortableColumns() {
|
|
252
252
|
return this.getColumns().filter((c) => c.sortable);
|
|
253
253
|
}
|
|
254
|
+
getFiltrableColumns() {
|
|
255
|
+
return this.getColumns().filter((c) => c.filterable);
|
|
256
|
+
}
|
|
254
257
|
getGroupableColumns() {
|
|
255
258
|
return this.getColumns().filter((c) => c.groupable);
|
|
256
259
|
}
|
|
@@ -410,5 +413,12 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
|
|
|
410
413
|
isActionRowButtonColumn(columnId) {
|
|
411
414
|
return columnId === GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS;
|
|
412
415
|
}
|
|
416
|
+
getDefaultAggFunc(columnId) {
|
|
417
|
+
var _a, _b, _c;
|
|
418
|
+
const abColumn = this.getColumnFromId(columnId);
|
|
419
|
+
const availableAggregationFunctions = abColumn.availableAggregationFunctions;
|
|
420
|
+
const agColumn = (_b = (_a = this.getAgGridColumnForAdaptableColumn(columnId)) === null || _a === void 0 ? void 0 : _a.getColDef) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
421
|
+
return (_c = agColumn === null || agColumn === void 0 ? void 0 : agColumn.defaultAggFunc) !== null && _c !== void 0 ? _c : availableAggregationFunctions[0];
|
|
422
|
+
}
|
|
413
423
|
}
|
|
414
424
|
exports.ColumnApiImpl = ColumnApiImpl;
|
|
@@ -48,6 +48,7 @@ class ConfigApiImpl extends ApiBase_1.ApiBase {
|
|
|
48
48
|
reloadPredefinedConfig(newPredefinedConfig) {
|
|
49
49
|
var _a;
|
|
50
50
|
const adaptableOptions = this.adaptable.adaptableOptions;
|
|
51
|
+
const oldState = this.getPersistedState();
|
|
51
52
|
const clearStateFn = ((_a = adaptableOptions.stateOptions) === null || _a === void 0 ? void 0 : _a.clearState) ||
|
|
52
53
|
(() => {
|
|
53
54
|
localStorage.removeItem(adaptableOptions.adaptableStateKey);
|
|
@@ -63,6 +64,16 @@ class ConfigApiImpl extends ApiBase_1.ApiBase {
|
|
|
63
64
|
this.setAdaptableStateKey(adaptableOptions.adaptableStateKey, {
|
|
64
65
|
predefinedConfig: newPredefinedConfig || adaptableOptions.predefinedConfig,
|
|
65
66
|
flushCurrentState: false,
|
|
67
|
+
}).then(() => {
|
|
68
|
+
const newState = this.getPersistedState();
|
|
69
|
+
const stateReloadedInfo = {
|
|
70
|
+
oldState,
|
|
71
|
+
newState,
|
|
72
|
+
adaptableStateKey: adaptableOptions.adaptableStateKey,
|
|
73
|
+
adaptableId: adaptableOptions.adaptableId,
|
|
74
|
+
adaptableApi: this.adaptable.api,
|
|
75
|
+
};
|
|
76
|
+
this.adaptable.api.eventApi.emit('AdaptableStateReloaded', stateReloadedInfo);
|
|
66
77
|
});
|
|
67
78
|
});
|
|
68
79
|
});
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
import * as Redux from 'redux';
|
|
2
|
+
import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
|
|
1
3
|
import { ApiBase } from './ApiBase';
|
|
2
4
|
import { FilterApi } from '../FilterApi';
|
|
3
|
-
import { AdaptablePredicateDef } from '../../PredefinedConfig/Common/AdaptablePredicate';
|
|
5
|
+
import { AdaptablePredicateDef, ColumnFilterDef } from '../../PredefinedConfig/Common/AdaptablePredicate';
|
|
4
6
|
import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
|
|
5
7
|
import { ColumnFilter, GridCell, SystemFilterPredicateIds } from '../../types';
|
|
6
8
|
import { RowNode } from '@ag-grid-community/all-modules';
|
|
@@ -15,6 +17,8 @@ export declare class FilterApiImpl extends ApiBase implements FilterApi {
|
|
|
15
17
|
isQuickFilterAvailable(): boolean;
|
|
16
18
|
isQuickFilterVisible(): boolean;
|
|
17
19
|
getColumnFilters(): ColumnFilter[];
|
|
20
|
+
getColumnFilter(columnId: string): ColumnFilter | undefined;
|
|
21
|
+
getColumnFilterDefs(): ColumnFilterDef[];
|
|
18
22
|
getColumnFiltersForLayout(layoutName: string): ColumnFilter[];
|
|
19
23
|
setColumnFilter(columnFilters: ColumnFilter[]): ColumnFilter[] | null;
|
|
20
24
|
clearColumnFilter(columnFilter: ColumnFilter): void;
|
|
@@ -37,4 +41,5 @@ export declare class FilterApiImpl extends ApiBase implements FilterApi {
|
|
|
37
41
|
* @param filter
|
|
38
42
|
*/
|
|
39
43
|
isFilterActive(filter: ColumnFilter): boolean;
|
|
44
|
+
shouldNewColumnFilterTriggerGridFiltering(action: LayoutRedux.LayoutColumnFilterAction | Redux.Action): boolean;
|
|
40
45
|
}
|
|
@@ -47,6 +47,21 @@ class FilterApiImpl extends ApiBase_1.ApiBase {
|
|
|
47
47
|
const currentLayout = this.adaptable.api.layoutApi.getCurrentLayout();
|
|
48
48
|
return (_a = currentLayout.ColumnFilters) !== null && _a !== void 0 ? _a : [];
|
|
49
49
|
}
|
|
50
|
+
getColumnFilter(columnId) {
|
|
51
|
+
return this.getColumnFilters().find((columnFilter) => columnFilter.ColumnId == columnId);
|
|
52
|
+
}
|
|
53
|
+
getColumnFilterDefs() {
|
|
54
|
+
const filters = this.getColumnFilters();
|
|
55
|
+
return filters.map((columnFilter) => {
|
|
56
|
+
const column = this.getAdaptableApi().columnApi.getColumnFromId(columnFilter.ColumnId);
|
|
57
|
+
const predicate = this.getAdaptableApi().predicateApi.getPredicateDefById(columnFilter.Predicate.PredicateId);
|
|
58
|
+
return {
|
|
59
|
+
predicate,
|
|
60
|
+
dataType: column === null || column === void 0 ? void 0 : column.dataType,
|
|
61
|
+
columnFilter: columnFilter,
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
}
|
|
50
65
|
getColumnFiltersForLayout(layoutName) {
|
|
51
66
|
var _a;
|
|
52
67
|
const layout = this.adaptable.api.layoutApi.getLayoutByName(layoutName);
|
|
@@ -209,5 +224,48 @@ class FilterApiImpl extends ApiBase_1.ApiBase {
|
|
|
209
224
|
});
|
|
210
225
|
return allInputsHaveValues;
|
|
211
226
|
}
|
|
227
|
+
shouldNewColumnFilterTriggerGridFiltering(action) {
|
|
228
|
+
var _a, _b;
|
|
229
|
+
// trigger filter change only:
|
|
230
|
+
// - new -> new filter is active
|
|
231
|
+
// - clear -> previous filters was active
|
|
232
|
+
// - clearAll -> a filter was active
|
|
233
|
+
// - edit -> same => input change
|
|
234
|
+
// - edit -> different & new is active
|
|
235
|
+
// - edit -> different & old was active
|
|
236
|
+
// - set -> new filter is active
|
|
237
|
+
const isNewAndActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_ADD &&
|
|
238
|
+
this.adaptable.api.filterApi.isFilterActive(action.columnFilter);
|
|
239
|
+
const isClearAndPreviousWasActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR &&
|
|
240
|
+
this.adaptable.api.filterApi.isFilterActive(action.columnFilter);
|
|
241
|
+
const isClearAllAtLeastOneActiveFilter = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR_ALL &&
|
|
242
|
+
this.adaptable.api.filterApi
|
|
243
|
+
.getColumnFilters()
|
|
244
|
+
.some((columnFilter) => this.adaptable.api.filterApi.isFilterActive(columnFilter));
|
|
245
|
+
let isEditTrigger = false;
|
|
246
|
+
if (action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_EDIT) {
|
|
247
|
+
const newFilter = action.columnFilter;
|
|
248
|
+
const previous = this.adaptable.api.filterApi.getColumnFilter(newFilter.ColumnId);
|
|
249
|
+
// same filter edit, so always trigger
|
|
250
|
+
if (((_a = previous === null || previous === void 0 ? void 0 : previous.Predicate) === null || _a === void 0 ? void 0 : _a.PredicateId) === ((_b = newFilter === null || newFilter === void 0 ? void 0 : newFilter.Predicate) === null || _b === void 0 ? void 0 : _b.PredicateId)) {
|
|
251
|
+
isEditTrigger = true;
|
|
252
|
+
// new filter is active
|
|
253
|
+
}
|
|
254
|
+
else if (this.adaptable.api.filterApi.isFilterActive(newFilter)) {
|
|
255
|
+
isEditTrigger = true;
|
|
256
|
+
}
|
|
257
|
+
else if (this.adaptable.api.filterApi.isFilterActive(previous)) {
|
|
258
|
+
// previous filter was active
|
|
259
|
+
isEditTrigger = true;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
const isSetAndActive = action.type === LayoutRedux.LAYOUT_COLUMN_FILTER_SET &&
|
|
263
|
+
this.adaptable.api.filterApi.isFilterActive(action.columnFilter);
|
|
264
|
+
return (isNewAndActive ||
|
|
265
|
+
isClearAndPreviousWasActive ||
|
|
266
|
+
isClearAllAtLeastOneActiveFilter ||
|
|
267
|
+
isEditTrigger ||
|
|
268
|
+
isSetAndActive);
|
|
269
|
+
}
|
|
212
270
|
}
|
|
213
271
|
exports.FilterApiImpl = FilterApiImpl;
|
|
@@ -3,6 +3,7 @@ import { LayoutApi } from '../LayoutApi';
|
|
|
3
3
|
import { LayoutState, Layout } from '../../PredefinedConfig/LayoutState';
|
|
4
4
|
import { AdaptableColumn } from '../../PredefinedConfig/Common/AdaptableColumn';
|
|
5
5
|
import { ColumnSort } from '../../PredefinedConfig/Common/ColumnSort';
|
|
6
|
+
import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
|
|
6
7
|
export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
|
|
7
8
|
getLayoutState(): LayoutState;
|
|
8
9
|
shouldAutoSaveLayout: (layout?: Layout) => boolean;
|
|
@@ -34,7 +35,7 @@ export declare class LayoutApiImpl extends ApiBase implements LayoutApi {
|
|
|
34
35
|
createDefaultLayoutIfNeeded(): Layout | null;
|
|
35
36
|
showChangeColumnCaption(column: AdaptableColumn): void;
|
|
36
37
|
showLayoutPopup(): void;
|
|
37
|
-
showLayoutEditor(layoutName?: string, action?:
|
|
38
|
+
showLayoutEditor(layoutName?: string, action?: ModuleParams['action']): void;
|
|
38
39
|
isCurrentLayoutReadOnly(): boolean;
|
|
39
40
|
deleteLayout(layout: Layout): void;
|
|
40
41
|
deleteLayoutByName(layoutName: string): void;
|
|
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const LayoutRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/LayoutRedux"));
|
|
6
6
|
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
7
7
|
const ApiBase_1 = require("./ApiBase");
|
|
8
|
-
const PopupRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/PopupRedux"));
|
|
9
8
|
const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
|
|
10
9
|
const ObjectFactory_1 = tslib_1.__importDefault(require("../../Utilities/ObjectFactory"));
|
|
11
10
|
const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
|
|
@@ -17,7 +16,6 @@ const Enums_1 = require("../../PredefinedConfig/Common/Enums");
|
|
|
17
16
|
const ArrayExtensions_1 = require("../../Utilities/Extensions/ArrayExtensions");
|
|
18
17
|
const PopupRedux_1 = require("../../Redux/ActionsReducers/PopupRedux");
|
|
19
18
|
const LayoutRedux_1 = require("../../Redux/ActionsReducers/LayoutRedux");
|
|
20
|
-
const windowFactory_1 = require("../../View/Components/Popups/WindowPopups/windowFactory");
|
|
21
19
|
class LayoutApiImpl extends ApiBase_1.ApiBase {
|
|
22
20
|
constructor() {
|
|
23
21
|
super(...arguments);
|
|
@@ -263,26 +261,20 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
|
|
|
263
261
|
this.showModulePopup(ModuleConstants.LayoutModuleId);
|
|
264
262
|
}
|
|
265
263
|
showLayoutEditor(layoutName, action = 'Edit') {
|
|
266
|
-
const layout = layoutName ? this.getLayoutByName(layoutName) : this.getCurrentLayout();
|
|
267
|
-
const moduleInfo = this.adaptable.ModuleService.getModuleInfoByModule(ModuleConstants.LayoutModuleId);
|
|
268
264
|
let preparedAction = action;
|
|
269
265
|
if (!['Edit', 'New', 'Clone'].includes(action)) {
|
|
270
266
|
preparedAction = 'Edit';
|
|
271
267
|
LoggingHelper_1.LogAdaptableError(`When opening the layout editor the action must be one of: New, Clone, Edit; given: ${action}`);
|
|
272
268
|
}
|
|
273
|
-
let
|
|
274
|
-
if (
|
|
275
|
-
|
|
269
|
+
let layout = layoutName ? this.getLayoutByName(layoutName) : this.getCurrentLayout();
|
|
270
|
+
if (preparedAction === 'New') {
|
|
271
|
+
layout = null;
|
|
276
272
|
}
|
|
277
|
-
this.
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
action: preparedAction,
|
|
283
|
-
layout,
|
|
284
|
-
},
|
|
285
|
-
}));
|
|
273
|
+
this.showModulePopup(ModuleConstants.LayoutModuleId, {
|
|
274
|
+
source: 'Toolbar',
|
|
275
|
+
action: preparedAction,
|
|
276
|
+
value: layout,
|
|
277
|
+
});
|
|
286
278
|
}
|
|
287
279
|
isCurrentLayoutReadOnly() {
|
|
288
280
|
const currentLayout = this.getCurrentLayout();
|
|
@@ -186,7 +186,10 @@ class ScheduleApiImpl extends ApiBase_1.ApiBase {
|
|
|
186
186
|
Scope: undefined,
|
|
187
187
|
},
|
|
188
188
|
};
|
|
189
|
-
this.
|
|
189
|
+
this.getAdaptableApi().alertApi.displayAlert(alert);
|
|
190
|
+
if (reminderSchedule.DisplaySystemStatusMessage) {
|
|
191
|
+
this.getAdaptableApi().systemStatusApi.setSystemStatus(reminderSchedule.Header, reminderSchedule.MessageType, reminderSchedule.Message);
|
|
192
|
+
}
|
|
190
193
|
}
|
|
191
194
|
else if (scheduleType == 'Report') {
|
|
192
195
|
const reportSchedule = schedule;
|
|
@@ -51,4 +51,4 @@ export interface AdaptableBaseIcon {
|
|
|
51
51
|
/**
|
|
52
52
|
* All AdapTable internal icon names
|
|
53
53
|
*/
|
|
54
|
-
export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrowexpand' | 'attach-file' | 'blanks' | 'boolean-list' | 'broadcast' | 'build' | 'bulk-update' | 'calculated-column' | 'calendar' | 'call' | 'campaign' | 'cell-summary' | 'cell-validation' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clear' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'column-chooser' | 'column-filter' | 'comment' | 'conditional-style' | 'contains' | 'custom-sort' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'drag' | 'edit' | 'ends-with' | 'equal' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'flashing-cell' | 'folder' | 'folder-open' | 'folder-shared' | 'format-column' | 'freetext-column' | 'function' | 'gradient-column' | 'greater-than' | 'greater-than-or-equal' | 'hide-column' | 'history' | 'home' | 'import-export' | 'info' | 'instrument' | 'invalid' | 'ipushpull' | 'justify' | 'layout' | 'less-than' | 'less-than-or-equal' | 'list' | 'login' | 'logout' | 'menu' | 'minus' | 'multiplication' | 'newpage' | 'news' | 'non-blanks' | 'not-contains' | 'not-equal' | 'ok' | 'pause' | 'percent' | 'percent-bar' | 'person' | 'pie-chart' | 'play' | 'plus' | 'plus-minus' | 'query' | 'quick-search' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'settings' | 'shortcut' | 'show-column' | 'smart-edit' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'state-management' | 'statusbar' | 'stop' | 'system-status' | 'tab-unselected' | 'team-share' | 'theme' | 'tool-panel' | 'track-changes' | 'trash' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'updated-row' | 'upload' | 'warning';
|
|
54
|
+
export declare type AdaptableInternalIconName = 'add' | 'add-row' | 'alert' | 'align-justify' | 'analysis' | 'application' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrow-up' | 'arrow-up-long' | 'arrow-down-long' | 'arrowexpand' | 'attach-file' | 'blanks' | 'boolean-list' | 'broadcast' | 'build' | 'bulk-update' | 'calculated-column' | 'calendar' | 'call' | 'campaign' | 'cell-summary' | 'cell-validation' | 'chart' | 'chat' | 'check' | 'check-circle' | 'checked' | 'clear' | 'clone' | 'close' | 'cloud-upload' | 'collapse' | 'column-add' | 'column-chooser' | 'column-filter' | 'comment' | 'conditional-style' | 'contains' | 'custom-sort' | 'dashboard' | 'data-set' | 'date-range' | 'delete' | 'division' | 'dock' | 'drag' | 'edit' | 'ends-with' | 'equal' | 'equation' | 'error' | 'expand' | 'exponent' | 'export' | 'export-data' | 'fast-backward' | 'fast-forward' | 'filter' | 'flashing-cell' | 'folder' | 'folder-open' | 'folder-shared' | 'format-column' | 'freetext-column' | 'function' | 'gradient-column' | 'greater-than' | 'greater-than-or-equal' | 'hide-column' | 'history' | 'home' | 'import-export' | 'info' | 'instrument' | 'invalid' | 'ipushpull' | 'justify' | 'layout' | 'less-than' | 'less-than-or-equal' | 'list' | 'login' | 'logout' | 'menu' | 'minus' | 'multiplication' | 'newpage' | 'news' | 'non-blanks' | 'not-contains' | 'not-equal' | 'ok' | 'pause' | 'percent' | 'percent-bar' | 'person' | 'pie-chart' | 'play' | 'plus' | 'plus-minus' | 'query' | 'quick-search' | 'quote' | 'refresh' | 'regex' | 'reminder' | 'save' | 'schedule' | 'settings' | 'shortcut' | 'show-column' | 'smart-edit' | 'sort-asc' | 'sort-desc' | 'spark-line' | 'starts-with' | 'state-management' | 'statusbar' | 'stop' | 'system-status' | 'tab-unselected' | 'team-share' | 'theme' | 'tool-panel' | 'track-changes' | 'trash' | 'triangle-down' | 'triangle-up' | 'unchecked' | 'undo' | 'updated-row' | 'upload' | 'warning';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AdaptableScope } from './AdaptableScope';
|
|
2
|
-
import { AdaptableColumn } from './AdaptableColumn';
|
|
3
|
-
import { AdaptableApi, AdaptableIcon } from '../../types';
|
|
2
|
+
import { AdaptableColumn, AdaptableColumnDataType } from './AdaptableColumn';
|
|
3
|
+
import { AdaptableApi, AdaptableIcon, ColumnFilter } from '../../types';
|
|
4
4
|
import { RowNode } from '@ag-grid-community/all-modules';
|
|
5
5
|
/**
|
|
6
6
|
* Predicate object used by AdapTableQL - essentially a boolean function
|
|
@@ -109,3 +109,8 @@ export declare type ModuleScope = 'filter' | 'alert' | 'conditionalstyle' | 'fla
|
|
|
109
109
|
*/
|
|
110
110
|
export declare const SystemPredicateDefs: AdaptablePredicateDef[];
|
|
111
111
|
export declare const SystemFilterPredicateIds: string[];
|
|
112
|
+
export interface ColumnFilterDef {
|
|
113
|
+
dataType: AdaptableColumnDataType;
|
|
114
|
+
predicate: AdaptablePredicateDef;
|
|
115
|
+
columnFilter: ColumnFilter;
|
|
116
|
+
}
|
|
@@ -69,6 +69,8 @@ export interface Layout extends AdaptableObject {
|
|
|
69
69
|
};
|
|
70
70
|
/**
|
|
71
71
|
* Whether Layout should automatically save or not - overrides `autoSaveLayouts` property in LayoutOptions
|
|
72
|
+
*
|
|
73
|
+
* @deprecated - use `autoSaveLayouts` property in LayoutOptions instead, will be removed in next major version
|
|
72
74
|
*/
|
|
73
75
|
AutoSave?: boolean;
|
|
74
76
|
/**
|
|
@@ -570,7 +570,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
|
|
|
570
570
|
.getCalculatedColumnExpressionService()
|
|
571
571
|
.createAggregatedScalarCalculatedColumn(calculatedColumn);
|
|
572
572
|
});
|
|
573
|
-
// refresh
|
|
573
|
+
// refresh calculated columns
|
|
574
574
|
const aggCalculatedColumnIds = aggregatedCalculatedColumns.map((calculatedColumn) => calculatedColumn.ColumnId);
|
|
575
575
|
adaptable.refreshCells(null, aggCalculatedColumnIds, true);
|
|
576
576
|
return;
|
|
@@ -685,15 +685,15 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
|
|
|
685
685
|
// const gridOptions = adaptable.api.gridApi.getAgGridInstance();
|
|
686
686
|
if (StringExtensions_1.StringExtensions.IsNotNullOrEmpty(searchText)) {
|
|
687
687
|
// Currently using this but any searchable would allow us to limit the cols checked
|
|
688
|
-
const queryText = 'ANY_CONTAINS("' + searchText + '") ';
|
|
688
|
+
// const queryText = 'ANY_CONTAINS("' + searchText + '") ';
|
|
689
689
|
// const queryText = 'ANY_SEARCHABLE_CONTAINS("' + searchText + '") ';
|
|
690
|
-
adaptable.api.queryApi.setCurrentQuery(queryText);
|
|
690
|
+
// adaptable.api.queryApi.setCurrentQuery(queryText);
|
|
691
691
|
// Better still would be to use ag grid if that is possible?
|
|
692
692
|
// gridOptions.api.setQuickFilter(searchText);
|
|
693
|
+
adaptable.setAgQuickSearch(searchText);
|
|
693
694
|
}
|
|
694
695
|
else {
|
|
695
|
-
adaptable.
|
|
696
|
-
// gridOptions.api.setQuickFilter('');
|
|
696
|
+
adaptable.setAgQuickSearch('');
|
|
697
697
|
}
|
|
698
698
|
}
|
|
699
699
|
return returnAction;
|
|
@@ -723,6 +723,8 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
|
|
|
723
723
|
case LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR:
|
|
724
724
|
case LayoutRedux.LAYOUT_COLUMN_FILTER_CLEAR_ALL: {
|
|
725
725
|
let returnAction;
|
|
726
|
+
// needs to be called before 'next' so previous and next column filters are known
|
|
727
|
+
const shouldTriggerGridFiltering = adaptable.api.filterApi.shouldNewColumnFilterTriggerGridFiltering(action);
|
|
726
728
|
if ((_g = adaptable.adaptableOptions.layoutOptions) === null || _g === void 0 ? void 0 : _g.autoSaveLayouts) {
|
|
727
729
|
returnAction = next(action);
|
|
728
730
|
}
|
|
@@ -752,7 +754,11 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
|
|
|
752
754
|
}
|
|
753
755
|
returnAction = next(draftLayoutAction);
|
|
754
756
|
}
|
|
755
|
-
setTimeout(() =>
|
|
757
|
+
setTimeout(() => {
|
|
758
|
+
if (shouldTriggerGridFiltering) {
|
|
759
|
+
adaptable.applyGridFiltering();
|
|
760
|
+
}
|
|
761
|
+
}, 5);
|
|
756
762
|
adaptable.api.gridApi.fireSearchChangedEvent('Filter');
|
|
757
763
|
return returnAction;
|
|
758
764
|
}
|
|
@@ -12,6 +12,7 @@ import { AccessLevel } from '../PredefinedConfig/Common/Entitlement';
|
|
|
12
12
|
import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
|
|
13
13
|
import { FreeTextColumn } from '../PredefinedConfig/FreeTextColumnState';
|
|
14
14
|
import { AdaptableInternalIconName } from '../PredefinedConfig/Common/AdaptableIcon';
|
|
15
|
+
import { AdaptableStateReloadedInfo } from '../Api/Events/AdaptableStateReloaded';
|
|
15
16
|
/**
|
|
16
17
|
* Base class for all strategies and does most of the work of creating menus
|
|
17
18
|
*/
|
|
@@ -34,6 +35,7 @@ export declare abstract class AdaptableModuleBase implements IModule {
|
|
|
34
35
|
getReferencedNamedQueryNames(adaptableObject: AdaptableObject): string[];
|
|
35
36
|
hasNamedQueryReferences(): boolean;
|
|
36
37
|
handleAdaptableReady(): void;
|
|
38
|
+
handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
|
|
37
39
|
setModuleEntitlement(): void;
|
|
38
40
|
addModuleMenuItem(source: 'ModuleMenu' | 'ModuleButton'): AdaptableMenuItem | undefined;
|
|
39
41
|
addModuleButtonMenuItem(): AdaptableMenuItem | undefined;
|
|
@@ -24,6 +24,9 @@ class AdaptableModuleBase {
|
|
|
24
24
|
this.handleAdaptableReady();
|
|
25
25
|
this.api.configApi.dispatchStateReadyAction(this.moduleInfo.ModuleName);
|
|
26
26
|
});
|
|
27
|
+
this.api.eventApi.on('AdaptableStateReloaded', (adaptableStateReloadedInfo) => {
|
|
28
|
+
this.handleConfigReloaded(adaptableStateReloadedInfo);
|
|
29
|
+
});
|
|
27
30
|
}
|
|
28
31
|
getViewAccessLevel() {
|
|
29
32
|
// override where necessary (ex. only 'Full' accessLevel should be displayed)
|
|
@@ -68,6 +71,9 @@ class AdaptableModuleBase {
|
|
|
68
71
|
handleAdaptableReady() {
|
|
69
72
|
// override where necessary in base classes
|
|
70
73
|
}
|
|
74
|
+
handleConfigReloaded(adaptableStateReloadedInfo) {
|
|
75
|
+
// override where necessary in base classes
|
|
76
|
+
}
|
|
71
77
|
setModuleEntitlement() {
|
|
72
78
|
this.AccessLevel = this.api.internalApi
|
|
73
79
|
.getEntitlementService()
|
|
@@ -12,8 +12,8 @@ const ObjectFactory_1 = tslib_1.__importDefault(require("../Utilities/ObjectFact
|
|
|
12
12
|
const AlertWizard_1 = require("../View/Alert/Wizard/AlertWizard");
|
|
13
13
|
const getScopeViewItems_1 = require("./Utilities/getScopeViewItems");
|
|
14
14
|
const getRuleViewItems_1 = require("./Utilities/getRuleViewItems");
|
|
15
|
-
const getAlertPreviewViewItems_1 = require("./Utilities/getAlertPreviewViewItems");
|
|
16
|
-
const getAlertBehaviourViewItems_1 = require("./Utilities/getAlertBehaviourViewItems");
|
|
15
|
+
const getAlertPreviewViewItems_1 = require("./Utilities/Alert/getAlertPreviewViewItems");
|
|
16
|
+
const getAlertBehaviourViewItems_1 = require("./Utilities/Alert/getAlertBehaviourViewItems");
|
|
17
17
|
const AlertEmptyView_1 = require("../View/Alert/AlertEmptyView");
|
|
18
18
|
const AlertStatusSubPanel_1 = require("../View/Alert/AlertStatusSubPanel");
|
|
19
19
|
const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
|
|
@@ -8,8 +8,10 @@ import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
|
|
|
8
8
|
import { AdaptableObjectItemView, IModule } from './Interface/IModule';
|
|
9
9
|
import { AdaptableApi } from '../Api/AdaptableApi';
|
|
10
10
|
import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
|
|
11
|
+
import { AdaptableStateReloadedInfo } from '../Api/Events/AdaptableStateReloaded';
|
|
11
12
|
export declare class CalculatedColumnModule extends AdaptableModuleBase implements IModule {
|
|
12
13
|
constructor(api: AdaptableApi);
|
|
14
|
+
handleConfigReloaded(adaptableStateReloadedInfo: AdaptableStateReloadedInfo): void;
|
|
13
15
|
getModuleAdaptableObjects(): AdaptableObject[];
|
|
14
16
|
updateOldConfig(): void;
|
|
15
17
|
getExplicitlyReferencedColumnIds(calculatedColumn: CalculatedColumn): string[];
|
|
@@ -15,6 +15,10 @@ class CalculatedColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
15
15
|
constructor(api) {
|
|
16
16
|
super(ModuleConstants.CalculatedColumnModuleId, 'Calculated Column', 'calculated-column', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
|
|
17
17
|
}
|
|
18
|
+
handleConfigReloaded(adaptableStateReloadedInfo) {
|
|
19
|
+
// re-dispatch the CalculatedColumnReady action to recreate all the aggregated scalar columns
|
|
20
|
+
this.api.internalApi.dispatchReduxAction(CalculatedColumnRedux.CalculatedColumnReady(this.api.calculatedColumnApi.getCalculatedColumnState()));
|
|
21
|
+
}
|
|
18
22
|
getModuleAdaptableObjects() {
|
|
19
23
|
return this.api.calculatedColumnApi.getAllCalculatedColumn();
|
|
20
24
|
}
|
|
@@ -6,8 +6,8 @@ const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
|
|
|
6
6
|
const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
|
|
7
7
|
const CustomSortRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/CustomSortRedux"));
|
|
8
8
|
const CustomSortWizard_1 = require("../View/CustomSort/Wizard/CustomSortWizard");
|
|
9
|
-
const getCustomSortColumnViewItems_1 = require("./Utilities/getCustomSortColumnViewItems");
|
|
10
|
-
const getCustomSortSortOrderViewItems_1 = require("./Utilities/getCustomSortSortOrderViewItems");
|
|
9
|
+
const getCustomSortColumnViewItems_1 = require("./Utilities/CustomSort/getCustomSortColumnViewItems");
|
|
10
|
+
const getCustomSortSortOrderViewItems_1 = require("./Utilities/CustomSort/getCustomSortSortOrderViewItems");
|
|
11
11
|
const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
|
|
12
12
|
class CustomSortModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
13
13
|
constructor(api) {
|