@adaptabletools/adaptable 12.0.1 → 12.0.4

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 (91) hide show
  1. package/bundle.cjs.js +96 -96
  2. package/package.json +1 -1
  3. package/publishTimestamp.d.ts +1 -1
  4. package/publishTimestamp.js +1 -1
  5. package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -2
  6. package/src/AdaptableOptions/AdaptableQLOptions.d.ts +1 -1
  7. package/src/AdaptableOptions/EditOptions.d.ts +6 -9
  8. package/src/AdaptableOptions/ExportOptions.d.ts +15 -0
  9. package/src/AdaptableOptions/Glue42PluginOptions.d.ts +1 -1
  10. package/src/AdaptableOptions/IPushPullPluginOptions.d.ts +1 -3
  11. package/src/AdaptableOptions/StateOptions.d.ts +9 -23
  12. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +34 -1
  13. package/src/Api/ChartingApi.d.ts +19 -2
  14. package/src/Api/Events/SearchChanged.d.ts +1 -1
  15. package/src/Api/FinanceApi.d.ts +8 -8
  16. package/src/Api/FormatColumnApi.d.ts +11 -6
  17. package/src/Api/GridApi.d.ts +1 -1
  18. package/src/Api/Implementation/ChartingApiImpl.d.ts +6 -0
  19. package/src/Api/Implementation/ChartingApiImpl.js +17 -0
  20. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -0
  21. package/src/Api/Implementation/ConfigApiImpl.js +11 -0
  22. package/src/Api/Implementation/FormatColumnApiImpl.d.ts +4 -3
  23. package/src/Api/Implementation/FormatColumnApiImpl.js +36 -12
  24. package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
  25. package/src/Api/Implementation/GridApiImpl.js +2 -2
  26. package/src/Api/Implementation/InternalApiImpl.js +1 -2
  27. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -0
  28. package/src/Api/Implementation/LayoutApiImpl.js +7 -1
  29. package/src/Api/LayoutApi.d.ts +5 -0
  30. package/src/Api/StatusBarApi.d.ts +3 -0
  31. package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
  32. package/src/PredefinedConfig/CalculatedColumnState.d.ts +0 -5
  33. package/src/PredefinedConfig/ChartingState.d.ts +20 -0
  34. package/src/PredefinedConfig/ChartingState.js +2 -0
  35. package/src/PredefinedConfig/Common/CellSummary.d.ts +3 -0
  36. package/src/PredefinedConfig/Common/ColumnFilter.d.ts +9 -0
  37. package/src/PredefinedConfig/Common/FDC3Context.d.ts +12 -3
  38. package/src/PredefinedConfig/Common/FilterActionOnDataChange.d.ts +1 -2
  39. package/src/PredefinedConfig/Common/FilterActionOnDataChange.js +1 -2
  40. package/src/PredefinedConfig/Common/Types.d.ts +1 -1
  41. package/src/PredefinedConfig/ExportState.d.ts +6 -0
  42. package/src/PredefinedConfig/FormatColumnState.d.ts +4 -1
  43. package/src/PredefinedConfig/IPushPullState.d.ts +16 -5
  44. package/src/PredefinedConfig/LayoutState.d.ts +1 -1
  45. package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
  46. package/src/PredefinedConfig/ScheduleState.d.ts +1 -1
  47. package/src/PredefinedConfig/ShortcutState.d.ts +1 -1
  48. package/src/PredefinedConfig/TeamSharingState.d.ts +6 -0
  49. package/src/Redux/ActionsReducers/ChartingRedux.d.ts +23 -0
  50. package/src/Redux/ActionsReducers/ChartingRedux.js +38 -0
  51. package/src/Redux/ActionsReducers/GridRedux.d.ts +30 -1
  52. package/src/Redux/ActionsReducers/GridRedux.js +105 -2
  53. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +10 -11
  54. package/src/Redux/ActionsReducers/LayoutRedux.js +10 -10
  55. package/src/Redux/Store/AdaptableStore.js +45 -8
  56. package/src/Strategy/AlertModule.js +3 -3
  57. package/src/Strategy/ChartingModule.js +1 -1
  58. package/src/Strategy/FlashingCellModule.js +3 -3
  59. package/src/Strategy/FormatColumnModule.js +1 -1
  60. package/src/Strategy/LayoutModule.js +2 -1
  61. package/src/Utilities/Constants/GeneralConstants.d.ts +1 -0
  62. package/src/Utilities/Constants/GeneralConstants.js +3 -2
  63. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +3 -0
  64. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +3 -0
  65. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.d.ts +3 -0
  66. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +23 -1
  67. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.d.ts +3 -0
  68. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +3 -0
  69. package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
  70. package/src/Utilities/Helpers/FormatHelper.js +9 -4
  71. package/src/Utilities/Helpers/Helper.js +1 -1
  72. package/src/Utilities/ObjectFactory.d.ts +5 -1
  73. package/src/Utilities/ObjectFactory.js +12 -2
  74. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -1
  75. package/src/Utilities/Services/ReportService.d.ts +1 -1
  76. package/src/Utilities/Services/ReportService.js +5 -5
  77. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +2 -9
  78. package/src/View/Filter/FilterSummary.d.ts +1 -1
  79. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.d.ts +1 -2
  80. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +38 -31
  81. package/src/View/Layout/LayoutViewPanel.d.ts +2 -2
  82. package/src/View/Layout/LayoutViewPanel.js +5 -5
  83. package/src/View/Layout/SaveLayoutButton.d.ts +2 -0
  84. package/src/View/Layout/SaveLayoutButton.js +30 -0
  85. package/src/agGrid/Adaptable.d.ts +4 -2
  86. package/src/agGrid/Adaptable.js +36 -20
  87. package/src/metamodel/adaptable.metamodel.d.ts +219 -2
  88. package/src/metamodel/adaptable.metamodel.js +1 -1
  89. package/src/types.d.ts +4 -2
  90. package/version.d.ts +1 -1
  91. package/version.js +1 -1
@@ -76,6 +76,12 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
76
76
  const currentLayout = this.getCurrentLayout();
77
77
  return ((_d = (_c = (_b = (_a = currentLayout === null || currentLayout === void 0 ? void 0 : currentLayout.ColumnSorts) === null || _a === void 0 ? void 0 : _a.find) === null || _b === void 0 ? void 0 : _b.call(_a, (sort) => sort.ColumnId === columnId)) === null || _c === void 0 ? void 0 : _c.SortOrder) !== null && _d !== void 0 ? _d : null);
78
78
  }
79
+ areDraftAndCurrentLayoutEqual() {
80
+ const state = this.getAdaptableState();
81
+ const currentLayout = this.getLayoutByName(state.Layout.CurrentLayout);
82
+ const draftLayout = state.Grid.CurrentLayout;
83
+ return this.areLayoutsEqual(currentLayout, draftLayout);
84
+ }
79
85
  getCurrentLayoutName() {
80
86
  return this.getAdaptableState().Layout.CurrentLayout;
81
87
  }
@@ -329,7 +335,7 @@ class LayoutApiImpl extends ApiBase_1.ApiBase {
329
335
  const layout = this.getLayoutByName(layoutName);
330
336
  if (layout) {
331
337
  if (layout.Columns.includes(columnId)) {
332
- this.dispatchAction(LayoutRedux.LayouRemoveColumn(layoutName, columnId));
338
+ this.dispatchAction(LayoutRedux.LayoutRemoveColumn(layoutName, columnId));
333
339
  this.getAdaptableApi().columnApi.hideColumn(columnId);
334
340
  }
335
341
  }
@@ -198,4 +198,9 @@ export interface LayoutApi {
198
198
  * @param layoutName layout from which to remove Column
199
199
  */
200
200
  removeColumnFromLayout(columnId: string, layoutName: string): void;
201
+ /**
202
+ * Checks if the draft layout and the current layout are the same.
203
+ * Useful when `autoSaveLayouts=true`
204
+ */
205
+ areDraftAndCurrentLayoutEqual(): boolean;
201
206
  }
@@ -1,5 +1,8 @@
1
1
  import { GridOptions } from '@ag-grid-community/all-modules';
2
2
  import { AdaptableStatusBar } from '../PredefinedConfig/StatusBarState';
3
+ /**
4
+ * Methods for managaing the Adaptable Status Bar
5
+ */
3
6
  export interface StatusBarApi {
4
7
  /**
5
8
  * Retrieves the current AG Grid Status Bar Panels
@@ -22,6 +22,7 @@ import { ToolPanelState } from './ToolPanelState';
22
22
  import { QueryState } from './QueryState';
23
23
  import { FlashingCellState } from './FlashingCellState';
24
24
  import { StatusBarState } from './StatusBarState';
25
+ import { ChartingState } from './ChartingState';
25
26
  /**
26
27
  * The main state object of Adaptable
27
28
  */
@@ -52,6 +53,7 @@ export interface AdaptablePersistentState {
52
53
  TeamSharing: TeamSharingState;
53
54
  Theme: ThemeState;
54
55
  ToolPanel: ToolPanelState;
56
+ Charting: ChartingState;
55
57
  }
56
58
  /**
57
59
  * The state which is available in the internal Redux store but never persisted
@@ -46,11 +46,6 @@ export interface CalculatedColumnSettings extends SpecialColumnSettings {
46
46
  * @defaultValue false
47
47
  */
48
48
  ShowToolTip?: boolean;
49
- /**
50
- * If true, the Calculated Column Expression will NOT be evaluated and the value is loaded from the row data property with the same name as the ColumnId
51
- * @defaultValue false
52
- */
53
- ExternallyEvaluatedExpression?: boolean;
54
49
  }
55
50
  /**
56
51
  * Calculated Column Query which may be a Scalar or an AggregatedScalar Expression
@@ -0,0 +1,20 @@
1
+ import { ChartModel } from '@ag-grid-community/all-modules';
2
+ import { ConfigState } from './ConfigState';
3
+ /**
4
+ * Wraps an AG Grid Chart Model
5
+ */
6
+ export interface ChartDefinition {
7
+ /**
8
+ * AG Grid Chart Model
9
+ */
10
+ model: ChartModel;
11
+ }
12
+ /**
13
+ * Used for persisting AG Grids in Adaptable State
14
+ */
15
+ export interface ChartingState extends ConfigState {
16
+ /**
17
+ * Charting Definitions - wrap AG Grid Chart Models
18
+ */
19
+ ChartDefinitions?: ChartDefinition[];
20
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -14,6 +14,9 @@ export interface CellSummmary {
14
14
  Count: number | undefined;
15
15
  [key: string]: any;
16
16
  }
17
+ /**
18
+ * Defines a Custom Cell Summary operation provided by a user
19
+ */
17
20
  export interface CellSummaryOperation {
18
21
  /**
19
22
  * Name of the Operation - will be displayed in the Cell Summary components
@@ -13,8 +13,17 @@ export interface ColumnFilter extends AdaptableObject {
13
13
  */
14
14
  Predicate: ColumnFilterPredicate;
15
15
  }
16
+ /**
17
+ * A Predicate used in Column Filtering
18
+ */
16
19
  export interface ColumnFilterPredicate extends AdaptablePredicate {
17
20
  PredicateId: TypeHint<string, SystemFilterPredicateId>;
18
21
  }
22
+ /**
23
+ * Array containing all System Filter Predicates
24
+ */
19
25
  export declare type SystemFilterPredicateIds = SystemFilterPredicateId[];
26
+ /**
27
+ * List of all the Filter Predicates shipped by AdapTable
28
+ */
20
29
  export declare type SystemFilterPredicateId = 'Values' | 'ExcludeValues' | 'Blanks' | 'NonBlanks' | 'Equals' | 'NotEquals' | 'GreaterThan' | 'LessThan' | 'Positive' | 'Negative' | 'Zero' | 'Between' | 'NotBetween' | 'Is' | 'IsNot' | 'Contains' | 'NotContains' | 'StartsWith' | 'EndsWith' | 'Regex' | 'Today' | 'Yesterday' | 'Tomorrow' | 'ThisWeek' | 'ThisMonth' | 'ThisQuarter' | 'ThisYear' | 'InPast' | 'InFuture' | 'Before' | 'After' | 'InRange' | 'On' | 'NotOn' | 'NextWorkDay' | 'LastWorkDay' | 'True' | 'False' | 'BooleanToggle';
@@ -7,11 +7,14 @@ import { FDC3Intent } from '../../types';
7
7
  * it has a field describing what type it is, and data indicating its identity. Use this as a base
8
8
  * to derive your own with any custom properties or metadata.
9
9
  */
10
+ /**
11
+ * General-purpose context type, as defined by FDC3
12
+ */
10
13
  export interface FDC3Context {
11
14
  /**
12
- * Type of context that uniquely identifies it, e.g. "instrument"; used to refer to the accepted context(s) when declaring intents
15
+ * Type of FDC3Context that uniquely identifies it, e.g. "instrument"; used to refer to the accepted context(s) when declaring intents
13
16
  */
14
- type: ContextType;
17
+ type: FDC3ContextType;
15
18
  /**
16
19
  * Name of the context data (optional) - a text string that describes the data being sent
17
20
  */
@@ -228,7 +231,13 @@ export interface AdaptableFDC3EventInfo extends BaseEventInfo {
228
231
  */
229
232
  context: FDC3Context;
230
233
  }
231
- export declare type ContextType = 'fdc3.instrument' | 'fdc3.instrumentList' | 'fdc3.position' | 'fdc3.portfolio' | 'fdc3.contact' | 'fdc3.contactList' | 'fdc3.organization' | 'fdc3.country';
234
+ /**
235
+ * Defines which FDC3 context is being used
236
+ */
237
+ export declare type FDC3ContextType = 'fdc3.instrument' | 'fdc3.instrumentList' | 'fdc3.position' | 'fdc3.portfolio' | 'fdc3.contact' | 'fdc3.contactList' | 'fdc3.organization' | 'fdc3.country';
238
+ /**
239
+ * Context used when providing Custom FDC3 content
240
+ */
232
241
  export interface CustomFDC3Context extends FDC3Context {
233
242
  type: any;
234
243
  }
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Determines whether Adaptable should re-apply filtering after cell and ticking data edits. *
3
- * If the 'applyFilter' value is 'Throttle' then the 'throttleDelay' property should be additionally set.
2
+ * Whether Adaptable re-applies filtering after data edits; if `applyFilter` value is 'Throttle', `throttleDelay` should be set
4
3
  */
5
4
  export interface FilterActionOnDataChange {
6
5
  /**
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
  /**
3
- * Determines whether Adaptable should re-apply filtering after cell and ticking data edits. *
4
- * If the 'applyFilter' value is 'Throttle' then the 'throttleDelay' property should be additionally set.
3
+ * Whether Adaptable re-applies filtering after data edits; if `applyFilter` value is 'Throttle', `throttleDelay` should be set
5
4
  */
6
5
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -34,5 +34,5 @@ export declare type TypeHint<Base, Literals> = (Base & {
34
34
  __subType?: true;
35
35
  }) | Literals;
36
36
  export declare type AdaptableQLModules = AdaptableQLModule[];
37
- export declare type AdaptableQLModule = 'Filter' | 'Query';
37
+ export declare type AdaptableQLModule = 'CalculatedColumn' | 'Filter' | 'Query';
38
38
  export declare type AdaptableColumnType = 'abColDefBoolean' | 'abColDefDate' | 'abColDefNumber' | 'abColDefString' | 'abColDefObject' | 'abColDefCustom' | 'abSpecialColumn';
@@ -75,5 +75,11 @@ export interface ReportData {
75
75
  */
76
76
  rows: Record<string, any>[];
77
77
  }
78
+ /**
79
+ * Names of Reports provided by AdapTable
80
+ */
78
81
  export declare type SystemReportName = 'Visual Data' | 'All Data' | 'Current Data' | 'Selected Cells' | 'Selected Rows';
82
+ /**
83
+ * Array containing all System Report names
84
+ */
79
85
  export declare type SystemReportNames = SystemReportName[];
@@ -142,8 +142,11 @@ export interface ColumnComparison {
142
142
  */
143
143
  Color: string;
144
144
  }
145
+ /**
146
+ * Array of CellTextOption available in Format Columns
147
+ */
145
148
  export declare type CellTextOptions = CellTextOption[];
146
149
  /**
147
- * List of all the Module buttons Adaptable provides - each Module has a popup for which this is a shortcut button
150
+ * Text optionally to show in a Format Column special style: 'CellValue' or 'PercentageValue'
148
151
  */
149
152
  export declare type CellTextOption = 'CellValue' | 'PercentageValue';
@@ -35,20 +35,31 @@ export interface IPushPullDomain {
35
35
  }
36
36
  /**
37
37
  * An ipushpull report
38
- *
39
- * Contains the name of the Report (which will exist in the Export State), and the ipushpull `Folder` and `Page` to which it will be sent.
40
38
  */
41
39
  export interface IPushPullReport extends AdaptableObject {
40
+ /**
41
+ * Name of the Report
42
+ */
42
43
  ReportName: string;
44
+ /**
45
+ * ipushpull Folder which contains the Page
46
+ */
43
47
  Folder: string;
48
+ /**
49
+ * ipushpull Page which will contain the data
50
+ */
44
51
  Page: string;
45
52
  }
46
53
  /**
47
- * Defines an ipushpull Schedule. Used in the Schedule Module (where the State will be stored).
48
- *
49
- * Properties include the report being exported to Excel (via ipushpull) and whether it is Snapshot or Live Data
54
+ * Defines an ipushpull Schedule
50
55
  */
51
56
  export interface IPushPullSchedule extends BaseSchedule {
57
+ /**
58
+ * The report being exported to Excel (via ipushpull)
59
+ */
52
60
  IPushPullReport: IPushPullReport;
61
+ /**
62
+ * How data is sent: 'Snapshot' or 'Live Data'
63
+ */
53
64
  Transmission: 'Snapshot' | 'Live Data';
54
65
  }
@@ -16,7 +16,7 @@ export interface LayoutState extends ConfigState {
16
16
  Layouts?: Layout[];
17
17
  }
18
18
  /**
19
- * Layout object - contains everything required including Columns, Sorts, Widths, Aggregations, Grouping and Pivoting details
19
+ * Defines a Layout; contains everything required i.e. Columns, Sorts, Widths, Aggregations, Grouping & Pivoting
20
20
  */
21
21
  export interface Layout extends AdaptableObject {
22
22
  /**
@@ -17,6 +17,7 @@ import { ThemeState } from './ThemeState';
17
17
  import { ToolPanelState } from './ToolPanelState';
18
18
  import { QueryState } from './QueryState';
19
19
  import { StatusBarState } from './StatusBarState';
20
+ import { ChartingState } from './ChartingState';
20
21
  /**
21
22
  * This is the main Predefined Config interface which developers will populate at design-time
22
23
  */
@@ -97,4 +98,8 @@ export interface PredefinedConfig {
97
98
  * Sets the order and visibility of the Tool Panel controls in the AdapTable ToolPanel (on right of grid)
98
99
  */
99
100
  ToolPanel?: ToolPanelState;
101
+ /**
102
+ * Predefine charting models
103
+ */
104
+ Charting?: ChartingState;
100
105
  }
@@ -26,7 +26,7 @@ export interface ScheduleState extends ConfigState {
26
26
  */
27
27
  Glue42Schedules?: Glue42Schedule[];
28
28
  /**
29
- * Schedules connected to OpenFin data exports - available if OpenFin plugin is running
29
+ * Schedules connected to OpenFin exports - available if OpenFin plugin is running
30
30
  */
31
31
  OpenFinSchedules?: OpenFinSchedule[];
32
32
  }
@@ -27,7 +27,7 @@ export interface Shortcut extends SuspendableObject {
27
27
  */
28
28
  ShortcutKey: string;
29
29
  /**
30
- * Value which acts as 2nd operand for ShortcutOperation (the first operand being the cell value)
30
+ * Value acting as 2nd operand for ShortcutOperation (1st operand is the cell value)
31
31
  */
32
32
  ShortcutValue: number;
33
33
  /**
@@ -67,11 +67,17 @@ export interface SharedEntity extends AdaptableObject {
67
67
  */
68
68
  Type: SharedEntityType;
69
69
  }
70
+ /**
71
+ * Defines Objects which have been imported into Team Sharing
72
+ */
70
73
  export interface TeamSharingImportInfo<T extends AdaptableObject> {
71
74
  ModuleEntities: T[];
72
75
  AddAction: (entity: T) => any;
73
76
  EditAction: (entity: T) => any;
74
77
  }
78
+ /**
79
+ * Describes an Object which is being Team Shared
80
+ */
75
81
  export interface SharedEntityConfig {
76
82
  description: string;
77
83
  type: SharedEntityType;
@@ -0,0 +1,23 @@
1
+ import { ChartModel } from '@ag-grid-community/all-modules';
2
+ import * as Redux from 'redux';
3
+ import { AdaptableState } from '../../../types';
4
+ import { ChartingState } from '../../PredefinedConfig/ChartingState';
5
+ /**
6
+ * @ReduxAction Set AG Grid Charting Models
7
+ */
8
+ export declare const SET_CHARTING_CHARTS = "SET_CHARTING_CHARTS";
9
+ /**
10
+ * @ReduxAction Charting Module is ready
11
+ */
12
+ export declare const CHARTING_READY = "CHARTING_READY";
13
+ export interface ChartingSetChartModelsAction extends Redux.Action {
14
+ charts: ChartModel[];
15
+ }
16
+ export interface ChartingReadyAction extends Redux.Action {
17
+ chartingState: ChartingState;
18
+ }
19
+ export declare const ChartingSetChartModels: (charts: ChartModel[]) => ChartingSetChartModelsAction;
20
+ export declare const ChartingReady: (chartingState: ChartingState) => ChartingReadyAction;
21
+ export declare const initialState: ChartingState;
22
+ export declare const ChartingGetChartModels: (state: AdaptableState) => ChartingState['ChartDefinitions'];
23
+ export declare const ChartingReducer: Redux.Reducer<ChartingState>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChartingReducer = exports.ChartingGetChartModels = exports.initialState = exports.ChartingReady = exports.ChartingSetChartModels = exports.CHARTING_READY = exports.SET_CHARTING_CHARTS = void 0;
4
+ const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
5
+ /**
6
+ * @ReduxAction Set AG Grid Charting Models
7
+ */
8
+ exports.SET_CHARTING_CHARTS = 'SET_CHARTING_CHARTS';
9
+ /**
10
+ * @ReduxAction Charting Module is ready
11
+ */
12
+ exports.CHARTING_READY = 'CHARTING_READY';
13
+ const ChartingSetChartModels = (charts) => ({
14
+ charts,
15
+ type: exports.SET_CHARTING_CHARTS,
16
+ });
17
+ exports.ChartingSetChartModels = ChartingSetChartModels;
18
+ const ChartingReady = (chartingState) => ({
19
+ type: exports.CHARTING_READY,
20
+ chartingState,
21
+ });
22
+ exports.ChartingReady = ChartingReady;
23
+ exports.initialState = {
24
+ ChartDefinitions: GeneralConstants_1.EMPTY_ARRAY,
25
+ };
26
+ const ChartingGetChartModels = (state) => state.Charting.ChartDefinitions;
27
+ exports.ChartingGetChartModels = ChartingGetChartModels;
28
+ const ChartingReducer = (state = exports.initialState, action) => {
29
+ switch (action.type) {
30
+ case exports.SET_CHARTING_CHARTS:
31
+ const newCharts = action.charts.map((chartModel) => ({
32
+ model: chartModel,
33
+ }));
34
+ return Object.assign(Object.assign({}, state), { ChartDefinitions: newCharts });
35
+ }
36
+ return state;
37
+ };
38
+ exports.ChartingReducer = ChartingReducer;
@@ -6,7 +6,7 @@ import { SelectedRowInfo } from '../../PredefinedConfig/Selection/SelectedRowInf
6
6
  import { AdaptableMenuItem } from '../../PredefinedConfig/Common/Menu';
7
7
  import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
8
8
  import { ColumnSort } from '../../PredefinedConfig/Common/ColumnSort';
9
- import { CellSummmary } from '../../types';
9
+ import { Layout, CellSummmary, ColumnFilter } from '../../types';
10
10
  import { RowNode } from '@ag-grid-community/all-modules';
11
11
  /**
12
12
  * @ReduxAction Columns have been set in the Grid
@@ -80,6 +80,12 @@ export declare const GRID_SET_TREE_MODE_ON = "GRID_SET_TREE_MODE_ON";
80
80
  * @ReduxAction Grid is taken out of tree mode
81
81
  */
82
82
  export declare const GRID_SET_TREE_MODE_OFF = "GRID_SET_TREE_MODE_OFF";
83
+ export declare const LAYOUT_UPDATE_CURRENT_DRAFT = "LAYOUT_UPDATE_CURRENT_DRAFT";
84
+ export declare const LAYOUT_DRAFT_COLUMN_FILTER_ADD = "LAYOUT_DRAFT_COLUMN_FILTER_ADD";
85
+ export declare const LAYOUT_DRAFT_COLUMN_FILTER_EDIT = "LAYOUT_DRAFT_COLUMN_FILTER_EDIT";
86
+ export declare const LAYOUT_DRAFT_COLUMN_FILTER_SET = "LAYOUT_DRAFT_COLUMN_FILTER_SET";
87
+ export declare const LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL = "LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL";
88
+ export declare const LAYOUT_DRAFT_COLUMN_FILTER_CLEAR = "LAYOUT_DRAFT_COLUMN_FILTER_CLEAR";
83
89
  export interface GridDataChangedAction extends Redux.Action {
84
90
  cellDataChangedInfo: CellDataChangedInfo;
85
91
  }
@@ -151,6 +157,23 @@ export interface SetTreeModeOnAction extends Redux.Action {
151
157
  }
152
158
  export interface SetTreeModeOffAction extends Redux.Action {
153
159
  }
160
+ export interface LayoutUpdateCurrentDraftAction extends Redux.Action {
161
+ layout: Layout;
162
+ }
163
+ export interface LayoutDraftColumnFilterAddAction extends Redux.Action {
164
+ columnFilter: ColumnFilter;
165
+ }
166
+ export interface LayoutDraftColumnFilterEditAction extends Redux.Action {
167
+ columnFilter: ColumnFilter;
168
+ }
169
+ export interface LayoutDraftColumnFilterSetAction extends Redux.Action {
170
+ columnFilter: ColumnFilter;
171
+ }
172
+ export interface LayoutDraftColumnFilterClearAction extends Redux.Action {
173
+ columnFilter: ColumnFilter;
174
+ }
175
+ export interface LayoutDraftColumnFilterClearAllAction extends Redux.Action {
176
+ }
154
177
  export declare const GridSetColumns: (Columns: AdaptableColumn[]) => GridSetColumnsAction;
155
178
  export declare const GridAddColumn: (Column: AdaptableColumn) => GridAddColumnAction;
156
179
  export declare const GridAddColumns: (Columns: AdaptableColumn[]) => GridAddColumnsAction;
@@ -169,4 +192,10 @@ export declare const SetTreeModeOn: () => SetTreeModeOnAction;
169
192
  export declare const SetTreeModeOff: () => SetTreeModeOffAction;
170
193
  export declare const SetSettingPanelModuleMenuItems: (MenuItems: AdaptableMenuItem[]) => SetSettingPanelModuleMenuItemsAction;
171
194
  export declare const SetModuleButtonMenuItems: (MenuItems: AdaptableMenuItem[]) => SetModuleButtonMenuItemsAction;
195
+ export declare const LayoutUpdateCurrentDraft: (layout: Layout) => LayoutUpdateCurrentDraftAction;
196
+ export declare const LayoutDraftColumnFilterAdd: (columnFilter: ColumnFilter) => LayoutDraftColumnFilterAddAction;
197
+ export declare const LayoutDraftColumnFilterEdit: (columnFilter: ColumnFilter) => LayoutDraftColumnFilterEditAction;
198
+ export declare const LayoutDraftColumnFilterSet: (columnFilter: ColumnFilter) => LayoutDraftColumnFilterSetAction;
199
+ export declare const LayoutDraftColumnFilterClear: (columnFilter: ColumnFilter) => LayoutDraftColumnFilterClearAction;
200
+ export declare const LayoutDraftColumnFilterClearAll: () => LayoutDraftColumnFilterClearAllAction;
172
201
  export declare const GridReducer: Redux.Reducer<GridState>;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GridReducer = exports.SetModuleButtonMenuItems = exports.SetSettingPanelModuleMenuItems = exports.SetTreeModeOff = exports.SetTreeModeOn = exports.SetPivotModeOff = exports.SetPivotModeOn = exports.GridRefreshCells = exports.GridSetCellSummary = exports.GridCreateCellSummary = exports.GridSetSelectedRows = exports.GridSetSelectedCells = exports.GridClearSort = exports.GridSetSort = exports.GridEditColumn = exports.GridRemoveColumn = exports.GridAddColumns = exports.GridAddColumn = exports.GridSetColumns = exports.GRID_SET_TREE_MODE_OFF = exports.GRID_SET_TREE_MODE_ON = exports.GRID_SET_PIVOT_MODE_OFF = exports.GRID_SET_PIVOT_MODE_ON = exports.GRID_SET_MODULE_BUTTON_MENUITEMS = exports.GRID_SET_MODULE_DROPDOWN_MENUITEMS = exports.GRID_REFRESH_CELLS = exports.GRID_SET_CELLS_SUMMARY = exports.GRID_CREATE_CELLS_SUMMARY = exports.GRID_SET_SELECTED_ROWS = exports.GRID_SET_SELECTED_CELLS = exports.GRID_CLEAR_SORT = exports.GRID_SET_SORT = exports.GRID_EDIT_COLUMN = exports.GRID_REMOVE_COLUMN = exports.GRID_ADD_COLUMNS = exports.GRID_ADD_COLUMN = exports.GRID_SET_COLUMNS = void 0;
3
+ exports.GridReducer = exports.LayoutDraftColumnFilterClearAll = exports.LayoutDraftColumnFilterClear = exports.LayoutDraftColumnFilterSet = exports.LayoutDraftColumnFilterEdit = exports.LayoutDraftColumnFilterAdd = exports.LayoutUpdateCurrentDraft = exports.SetModuleButtonMenuItems = exports.SetSettingPanelModuleMenuItems = exports.SetTreeModeOff = exports.SetTreeModeOn = exports.SetPivotModeOff = exports.SetPivotModeOn = exports.GridRefreshCells = exports.GridSetCellSummary = exports.GridCreateCellSummary = exports.GridSetSelectedRows = exports.GridSetSelectedCells = exports.GridClearSort = exports.GridSetSort = exports.GridEditColumn = exports.GridRemoveColumn = exports.GridAddColumns = exports.GridAddColumn = exports.GridSetColumns = exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR = exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL = exports.LAYOUT_DRAFT_COLUMN_FILTER_SET = exports.LAYOUT_DRAFT_COLUMN_FILTER_EDIT = exports.LAYOUT_DRAFT_COLUMN_FILTER_ADD = exports.LAYOUT_UPDATE_CURRENT_DRAFT = exports.GRID_SET_TREE_MODE_OFF = exports.GRID_SET_TREE_MODE_ON = exports.GRID_SET_PIVOT_MODE_OFF = exports.GRID_SET_PIVOT_MODE_ON = exports.GRID_SET_MODULE_BUTTON_MENUITEMS = exports.GRID_SET_MODULE_DROPDOWN_MENUITEMS = exports.GRID_REFRESH_CELLS = exports.GRID_SET_CELLS_SUMMARY = exports.GRID_CREATE_CELLS_SUMMARY = exports.GRID_SET_SELECTED_ROWS = exports.GRID_SET_SELECTED_CELLS = exports.GRID_CLEAR_SORT = exports.GRID_SET_SORT = exports.GRID_EDIT_COLUMN = exports.GRID_REMOVE_COLUMN = exports.GRID_ADD_COLUMNS = exports.GRID_ADD_COLUMN = exports.GRID_SET_COLUMNS = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const GeneralConstants_1 = require("../../Utilities/Constants/GeneralConstants");
5
6
  const LayoutRedux_1 = require("./LayoutRedux");
7
+ const AdaptableHelper_1 = tslib_1.__importDefault(require("../../Utilities/Helpers/AdaptableHelper"));
6
8
  /**
7
9
  * @ReduxAction Columns have been set in the Grid
8
10
  */
@@ -75,6 +77,12 @@ exports.GRID_SET_TREE_MODE_ON = 'GRID_SET_TREE_MODE_ON';
75
77
  * @ReduxAction Grid is taken out of tree mode
76
78
  */
77
79
  exports.GRID_SET_TREE_MODE_OFF = 'GRID_SET_TREE_MODE_OFF';
80
+ exports.LAYOUT_UPDATE_CURRENT_DRAFT = 'LAYOUT_UPDATE_CURRENT_DRAFT';
81
+ exports.LAYOUT_DRAFT_COLUMN_FILTER_ADD = 'LAYOUT_DRAFT_COLUMN_FILTER_ADD';
82
+ exports.LAYOUT_DRAFT_COLUMN_FILTER_EDIT = 'LAYOUT_DRAFT_COLUMN_FILTER_EDIT';
83
+ exports.LAYOUT_DRAFT_COLUMN_FILTER_SET = 'LAYOUT_DRAFT_COLUMN_FILTER_SET';
84
+ exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL = 'LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL';
85
+ exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR = 'LAYOUT_DRAFT_COLUMN_FILTER_CLEAR';
78
86
  const GridSetColumns = (Columns) => ({
79
87
  type: exports.GRID_SET_COLUMNS,
80
88
  columns: Columns,
@@ -160,6 +168,35 @@ const SetModuleButtonMenuItems = (MenuItems) => ({
160
168
  menuItems: MenuItems,
161
169
  });
162
170
  exports.SetModuleButtonMenuItems = SetModuleButtonMenuItems;
171
+ const LayoutUpdateCurrentDraft = (layout) => ({
172
+ type: exports.LAYOUT_UPDATE_CURRENT_DRAFT,
173
+ layout,
174
+ });
175
+ exports.LayoutUpdateCurrentDraft = LayoutUpdateCurrentDraft;
176
+ const LayoutDraftColumnFilterAdd = (columnFilter) => ({
177
+ type: exports.LAYOUT_DRAFT_COLUMN_FILTER_ADD,
178
+ columnFilter,
179
+ });
180
+ exports.LayoutDraftColumnFilterAdd = LayoutDraftColumnFilterAdd;
181
+ const LayoutDraftColumnFilterEdit = (columnFilter) => ({
182
+ type: exports.LAYOUT_DRAFT_COLUMN_FILTER_EDIT,
183
+ columnFilter,
184
+ });
185
+ exports.LayoutDraftColumnFilterEdit = LayoutDraftColumnFilterEdit;
186
+ const LayoutDraftColumnFilterSet = (columnFilter) => ({
187
+ type: exports.LAYOUT_DRAFT_COLUMN_FILTER_SET,
188
+ columnFilter,
189
+ });
190
+ exports.LayoutDraftColumnFilterSet = LayoutDraftColumnFilterSet;
191
+ const LayoutDraftColumnFilterClear = (columnFilter) => ({
192
+ type: exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR,
193
+ columnFilter,
194
+ });
195
+ exports.LayoutDraftColumnFilterClear = LayoutDraftColumnFilterClear;
196
+ const LayoutDraftColumnFilterClearAll = () => ({
197
+ type: exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL,
198
+ });
199
+ exports.LayoutDraftColumnFilterClearAll = LayoutDraftColumnFilterClearAll;
163
200
  const initialState = {
164
201
  Columns: GeneralConstants_1.EMPTY_ARRAY,
165
202
  CurrentLayout: null,
@@ -173,6 +210,7 @@ const initialState = {
173
210
  IsGridInTreeMode: false,
174
211
  };
175
212
  const GridReducer = (state = initialState, action) => {
213
+ var _a, _b, _c, _d;
176
214
  switch (action.type) {
177
215
  case exports.GRID_SET_COLUMNS:
178
216
  return Object.assign({}, state, {
@@ -222,12 +260,77 @@ const GridReducer = (state = initialState, action) => {
222
260
  const menuItems = actionTyped.menuItems.sort((a, b) => a.label < b.label ? -1 : a.label > b.label ? 1 : 0);
223
261
  return Object.assign({}, state, { ModuleButtonMenuItems: menuItems });
224
262
  }
225
- case LayoutRedux_1.LAYOUT_UPDATE_CURRENT_DRAFT: {
263
+ case exports.LAYOUT_UPDATE_CURRENT_DRAFT: {
226
264
  const currentDraftLayout = action.layout;
227
265
  return Object.assign({}, state, {
228
266
  CurrentLayout: currentDraftLayout,
229
267
  });
230
268
  }
269
+ case exports.LAYOUT_DRAFT_COLUMN_FILTER_SET: {
270
+ const currentDraftLayout = state.CurrentLayout;
271
+ if (currentDraftLayout) {
272
+ let columnFilters = (_a = currentDraftLayout.ColumnFilters) !== null && _a !== void 0 ? _a : [];
273
+ const columnFilterAction = action
274
+ .columnFilter;
275
+ AdaptableHelper_1.default.addUuidAndSource(columnFilterAction);
276
+ columnFilters = columnFilters
277
+ .filter((colFilter) => {
278
+ return colFilter.ColumnId !== columnFilterAction.ColumnId;
279
+ })
280
+ .concat(columnFilterAction);
281
+ return Object.assign({}, state, {
282
+ CurrentLayout: Object.assign(Object.assign({}, currentDraftLayout), { ColumnFilters: columnFilters }),
283
+ });
284
+ }
285
+ }
286
+ case exports.LAYOUT_DRAFT_COLUMN_FILTER_ADD: {
287
+ const currentDraftLayout = state.CurrentLayout;
288
+ if (currentDraftLayout) {
289
+ let columnFilters = [...((_b = currentDraftLayout.ColumnFilters) !== null && _b !== void 0 ? _b : [])];
290
+ const columnFilterAction = action
291
+ .columnFilter;
292
+ AdaptableHelper_1.default.addUuidAndSource(columnFilterAction);
293
+ columnFilters.push(columnFilterAction);
294
+ return Object.assign({}, state, {
295
+ CurrentLayout: Object.assign(Object.assign({}, currentDraftLayout), { ColumnFilters: columnFilters }),
296
+ });
297
+ }
298
+ }
299
+ case exports.LAYOUT_DRAFT_COLUMN_FILTER_EDIT: {
300
+ const currentDraftLayout = state.CurrentLayout;
301
+ if (currentDraftLayout) {
302
+ const columnFilterAction = action
303
+ .columnFilter;
304
+ let columnFilters = ((_c = currentDraftLayout.ColumnFilters) !== null && _c !== void 0 ? _c : []).map((abObject) => abObject.Uuid === columnFilterAction.Uuid ? columnFilterAction : abObject);
305
+ return Object.assign({}, state, {
306
+ CurrentLayout: Object.assign(Object.assign({}, currentDraftLayout), { ColumnFilters: columnFilters }),
307
+ });
308
+ }
309
+ }
310
+ case exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR: {
311
+ const currentDraftLayout = state.CurrentLayout;
312
+ if (currentDraftLayout) {
313
+ let columnFilters = [...((_d = currentDraftLayout.ColumnFilters) !== null && _d !== void 0 ? _d : [])];
314
+ const actionTypedDelete = action;
315
+ const index = actionTypedDelete.columnFilter
316
+ ? columnFilters.findIndex((i) => i.Uuid == actionTypedDelete.columnFilter.Uuid)
317
+ : -1;
318
+ if (index != -1) {
319
+ columnFilters.splice(index, 1);
320
+ }
321
+ return Object.assign({}, state, {
322
+ CurrentLayout: Object.assign(Object.assign({}, currentDraftLayout), { ColumnFilters: columnFilters }),
323
+ });
324
+ }
325
+ }
326
+ case exports.LAYOUT_DRAFT_COLUMN_FILTER_CLEAR_ALL: {
327
+ const currentDraftLayout = state.CurrentLayout;
328
+ if (currentDraftLayout) {
329
+ return Object.assign({}, state, {
330
+ CurrentLayout: Object.assign(Object.assign({}, currentDraftLayout), { ColumnFilters: [] }),
331
+ });
332
+ }
333
+ }
231
334
  case LayoutRedux_1.LAYOUT_SELECT: {
232
335
  return Object.assign({}, state, {
233
336
  CurrentLayout: null,
@@ -22,6 +22,9 @@ export declare const LAYOUT_SELECT = "LAYOUT_SELECT";
22
22
  * @ReduxAction A Layout has been (auto)saved
23
23
  */
24
24
  export declare const LAYOUT_SAVE = "LAYOUT_SAVE";
25
+ /**
26
+ * @ReduxAction A Column has been removed
27
+ */
25
28
  export declare const LAYOUT_REMOVE_COLUMN = "LAYOUT_REMOVE_COLUMN";
26
29
  /**
27
30
  * @ReduxAction A Column Filter has been added
@@ -50,22 +53,21 @@ export interface LayoutColumnFilterAddAction extends LayoutColumnFilterAction {
50
53
  }
51
54
  export interface LayoutColumnFilterEditAction extends LayoutColumnFilterAction {
52
55
  }
53
- export interface LayoutFilterSetAction extends LayoutColumnFilterAction {
56
+ export interface LayoutColumnFilterSetAction extends LayoutColumnFilterAction {
54
57
  }
55
- export interface LayoutFilterClearAction extends LayoutColumnFilterAction {
58
+ export interface LayoutColumnFilterClearAction extends LayoutColumnFilterAction {
56
59
  }
57
- export interface LayoutFilterClearAllAction extends Redux.Action {
60
+ export interface LayoutColumnFilterClearAllAction extends Redux.Action {
58
61
  }
59
62
  export declare const LayoutColumnFilterAdd: (columnFilter: ColumnFilter) => LayoutColumnFilterAddAction;
60
63
  export declare const LayoutColumnFilterEdit: (columnFilter: ColumnFilter) => LayoutColumnFilterEditAction;
61
- export declare const LayoutColumnFilterSet: (columnFilter: ColumnFilter) => LayoutFilterSetAction;
62
- export declare const LayoutColumnFilterClearAll: () => LayoutFilterClearAllAction;
63
- export declare const LayoutColumnFilterClear: (columnFilter: ColumnFilter) => LayoutFilterClearAction;
64
+ export declare const LayoutColumnFilterSet: (columnFilter: ColumnFilter) => LayoutColumnFilterSetAction;
65
+ export declare const LayoutColumnFilterClearAll: () => LayoutColumnFilterClearAllAction;
66
+ export declare const LayoutColumnFilterClear: (columnFilter: ColumnFilter) => LayoutColumnFilterClearAction;
64
67
  /**
65
68
  * @ReduxAction A new caption / header has been set for a Column in the Layout
66
69
  */
67
70
  export declare const LAYOUT_SET_COLUMN_CAPTION = "LAYOUT_SET_COLUMN_CAPTION";
68
- export declare const LAYOUT_UPDATE_CURRENT_DRAFT = "LAYOUT_UPDATE_CURRENT_DRAFT";
69
71
  /**
70
72
  * @ReduxAction Layout Module is ready
71
73
  */
@@ -90,8 +92,6 @@ export interface LayoutRemoveColumnAction extends Redux.Action {
90
92
  layoutName: string;
91
93
  columnId: string;
92
94
  }
93
- export interface LayoutUpdateCurrentDraftAction extends LayoutAction {
94
- }
95
95
  export interface LayoutSelectAction extends Redux.Action {
96
96
  layoutName: string;
97
97
  }
@@ -106,9 +106,8 @@ export declare const LayoutAdd: (layout: Layout) => LayoutAddAction;
106
106
  export declare const LayoutDelete: (layout: Layout) => LayoutDeleteAction;
107
107
  export declare const LayoutSave: (layout: Layout) => LayoutSaveAction;
108
108
  export declare const LayoutSetColumnCaption: (layoutName: string, columnId: string, caption: string) => LayoutSetColumnCaptionAction;
109
- export declare const LayouRemoveColumn: (layoutName: string, columnId: string) => LayoutRemoveColumnAction;
109
+ export declare const LayoutRemoveColumn: (layoutName: string, columnId: string) => LayoutRemoveColumnAction;
110
110
  export declare const LayoutSelect: (layoutName: string) => LayoutSelectAction;
111
- export declare const LayoutUpdateCurrentDraft: (layout: Layout) => LayoutUpdateCurrentDraftAction;
112
111
  export declare const LayoutReady: (layoutState: LayoutState) => LayoutReadyAction;
113
112
  export declare const getColumnFilterSelector: (state: AdaptableState) => ColumnFilter[];
114
113
  export declare const LayoutReducer: Redux.Reducer<LayoutState>;