@adaptabletools/adaptable 17.0.4 → 17.0.6

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "17.0.4",
3
+ "version": "17.0.6",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,2 +1,2 @@
1
- declare const _default: 1706885118631;
1
+ declare const _default: 1707305637365;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1706885118631;
3
+ exports.default = 1707305637365;
@@ -12,9 +12,9 @@ export interface GroupingOptions<TData = any> {
12
12
  */
13
13
  showGroupingTotalsAsHeader?: boolean;
14
14
  /**
15
- * Value to use for 'Unbalanced Groups' (string columns)
15
+ * Value to use for 'Balanced Groups' (string columns only)
16
16
  */
17
- unbalancedGroupsKey?: string | ((context: UnbalancedGroupsKeyContext<TData>) => string);
17
+ balancedGroupsKey?: string | ((context: BalancedGroupsKeyContext<TData>) => string);
18
18
  /**
19
19
  * Places ungrouped columns at pre-grouping indexed position
20
20
  * @defaultValue false
@@ -31,9 +31,9 @@ export interface GroupingOptions<TData = any> {
31
31
  autoOrderGroupedColumns?: boolean;
32
32
  }
33
33
  /**
34
- * Context used when setting a value for Unbalanced Row Groups
34
+ * Context used when setting a value for Balanced Row Groups
35
35
  */
36
- export interface UnbalancedGroupsKeyContext<TData = any> extends BaseContext {
36
+ export interface BalancedGroupsKeyContext<TData = any> extends BaseContext {
37
37
  /**
38
38
  * AdapTable Column being grouped
39
39
  */
@@ -1,4 +1,5 @@
1
1
  import { CellSelectionChangedInfo, RowSelectionChangedInfo, LiveDataChangedInfo, DashboardChangedInfo, ThemeChangedInfo, AlertFiredInfo, LayoutChangedInfo, AdaptableReadyInfo, CustomToolbarConfiguredInfo, CellChangedInfo, SystemStatusMessageDisplayedInfo, AdaptableStateChangedInfo, FlashingCellDisplayedInfo, GridDataChangedInfo, TeamSharingEntityChangedInfo, ActionRowSubmittedInfo, DataSetSelectedInfo, AdaptableStateReloadedInfo, GridSortedInfo, ScheduleTriggeredInfo, ChartChangedInfo, ThemeEditedInfo, Fdc3MessageInfo, DataImportedInfo, ColumnFilterAppliedInfo, GridFilterAppliedInfo } from '../types';
2
+ import { CalculatedColumnChangedInfo } from './Events/CalculatedColumnChanged';
2
3
  /**
3
4
  * Responsible for publishing the many Events that AdapTable fires
4
5
  */
@@ -182,14 +183,25 @@ export interface EventApi {
182
183
  * @param callback LayoutChanged which includes just the name of the currently selected Layout.
183
184
  * @returns the unsubscribe function
184
185
  */
185
- on(eventName: 'LayoutChanged', callback: (LayoutChangedInfo: LayoutChangedInfo) => void): VoidFunction;
186
+ on(eventName: 'LayoutChanged', callback: (layoutChangedInfo: LayoutChangedInfo) => void): VoidFunction;
186
187
  /**
187
188
  * Unsubscribe from LayoutChanged
188
189
  */
189
- off(eventName: 'LayoutChanged', callback: (LayoutChangedInfo: LayoutChangedInfo) => void): void;
190
+ off(eventName: 'LayoutChanged', callback: (layoutChangedInfo: LayoutChangedInfo) => void): void;
191
+ /**
192
+ * Event fired whenever a Calculated Columns is created / updated / deleted in AdapTable
193
+ * @param eventName CalculatedColumnChanged
194
+ * @param callback CalculatedColumnChanged which includes the action and details of the Calculated Column
195
+ * @returns the unsubscribe function
196
+ */
197
+ on(eventName: 'CalculatedColumnChanged', callback: (calculatedColumnChangedInfo: CalculatedColumnChangedInfo) => void): VoidFunction;
198
+ /**
199
+ * Unsubscribe from CalculatedColumnChanged
200
+ */
201
+ off(eventName: 'CalculatedColumnChanged', callback: (calculatedColumnChangedInfo: CalculatedColumnChangedInfo) => void): void;
190
202
  /**
191
203
  * Event fired whenever **Configure Button is clicked in a Custom Toolbar**
192
- * @param eventName DashboardChanged
204
+ * @param eventName CustomToolbarConfigured
193
205
  * @param callback CustomToolbarConfiguredInfo which contains the Custom Toolbar
194
206
  * @returns the unsubscribe function
195
207
  */
@@ -327,6 +339,6 @@ export interface EventApi {
327
339
  emitSync(eventName: 'DashboardChanged', data?: any): any[];
328
340
  emitSync(eventName: 'FlashingCellDisplayed', data?: any): any[];
329
341
  emitSync(eventName: 'AdaptableDestroy'): any[];
330
- emit(eventName: 'ActionRowSubmitted' | 'AdaptableReady' | 'AlertFired' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'CellChanged' | 'ChartChanged' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'DashboardChanged' | 'DataImported' | 'DataSetSelected' | 'ColumnFilterApplied' | 'Fdc3Message' | 'GridDataChanged' | 'GridSorted' | 'LayoutChanged' | 'LiveDataChanged' | 'ScheduleTriggered' | 'SearchChanged' | 'CellSelectionChanged' | 'RowSelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'ThemeEdited' | 'GridFilterApplied', data?: any): Promise<any>;
342
+ emit(eventName: 'ActionRowSubmitted' | 'AdaptableReady' | 'AlertFired' | 'AdaptableStateChanged' | 'AdaptableStateReloaded' | 'CellChanged' | 'ChartChanged' | 'CheckboxColumnClicked' | 'CustomToolbarConfigured' | 'DashboardChanged' | 'DataImported' | 'DataSetSelected' | 'ColumnFilterApplied' | 'Fdc3Message' | 'GridDataChanged' | 'GridSorted' | 'LayoutChanged' | 'CalculatedColumnChanged' | 'LiveDataChanged' | 'ScheduleTriggered' | 'SearchChanged' | 'CellSelectionChanged' | 'RowSelectionChanged' | 'SystemStatusMessageDisplayed' | 'TeamSharingEntityChanged' | 'ThemeChanged' | 'ThemeEdited' | 'GridFilterApplied', data?: any): Promise<any>;
331
343
  destroy(): void;
332
344
  }
@@ -0,0 +1,19 @@
1
+ import { CalculatedColumn } from '../../PredefinedConfig/CalculatedColumnState';
2
+ import { BaseEventInfo } from './BaseEventInfo';
3
+ /**
4
+ * EventInfo returned by CalculatedColumnChanged event
5
+ */
6
+ export interface CalculatedColumnChangedInfo extends BaseEventInfo {
7
+ /**
8
+ * What caused CalculatedColumn State to change (i.e. Add, Edit, Delete)
9
+ */
10
+ actionName: string;
11
+ /**
12
+ * Calculated Column that has been added, edited or deleted
13
+ */
14
+ calculatedColumn: CalculatedColumn;
15
+ /**
16
+ * AST for Current Calculated Column Expression
17
+ */
18
+ calculatedColumnExpressionAST: any;
19
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -25,4 +25,6 @@ export declare class CalculatedColumnInternalApi extends ApiBase {
25
25
  getCalculatedColumnsDependentOnColumn(column: AdaptableColumn): string[];
26
26
  isCumulativeAggregatedExpression(input: string): boolean;
27
27
  isQuantileAggregatedExpression(input: string): boolean;
28
+ getExpressionFromCalculatedColumn(calculatedColumn: CalculatedColumn): string;
29
+ fireCalculatedColumnChangedEvent(trigger: string, calculatedColumn: CalculatedColumn): void;
28
30
  }
@@ -74,5 +74,21 @@ class CalculatedColumnInternalApi extends ApiBase_1.ApiBase {
74
74
  .internalApi.getQueryLanguageService()
75
75
  .getNodesFromExpression(input, 'QUANT')) === null || _a === void 0 ? void 0 : _a.length);
76
76
  }
77
+ getExpressionFromCalculatedColumn(calculatedColumn) {
78
+ var _a;
79
+ return ((_a = calculatedColumn.Query.ScalarExpression) !== null && _a !== void 0 ? _a : calculatedColumn.Query.AggregatedScalarExpression);
80
+ }
81
+ fireCalculatedColumnChangedEvent(trigger, calculatedColumn) {
82
+ const adaptableApi = this.getAdaptableApi();
83
+ const calculatedColumnChangedInfo = {
84
+ adaptableApi: adaptableApi,
85
+ actionName: trigger,
86
+ calculatedColumn: calculatedColumn,
87
+ calculatedColumnExpressionAST: adaptableApi.expressionApi.getASTForExpression(this.getExpressionFromCalculatedColumn(calculatedColumn)),
88
+ userName: adaptableApi.optionsApi.getUserName(),
89
+ adaptableId: adaptableApi.optionsApi.getAdaptableId(),
90
+ };
91
+ this.adaptable.api.eventApi.emit('CalculatedColumnChanged', calculatedColumnChangedInfo);
92
+ }
77
93
  }
78
94
  exports.CalculatedColumnInternalApi = CalculatedColumnInternalApi;
@@ -598,6 +598,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
598
598
  adaptable.api.internalApi
599
599
  .getCalculatedColumnExpressionService()
600
600
  .createAggregatedScalarLiveValue(returnAction.calculatedColumn);
601
+ adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
601
602
  }
602
603
  adaptable.updateColDefsForSpecialColumns();
603
604
  return returnAction;
@@ -623,6 +624,7 @@ const adaptableMiddleware = (adaptable) => function (middlewareAPI) {
623
624
  adaptable.api.internalApi
624
625
  .getCalculatedColumnExpressionService()
625
626
  .destroyAggregatedScalarLiveValue(returnAction.calculatedColumn);
627
+ adaptable.api.calculatedColumnApi.internalApi.fireCalculatedColumnChangedEvent(action.type, actionTyped.calculatedColumn);
626
628
  adaptable.updateColDefsForSpecialColumns();
627
629
  return returnAction;
628
630
  }
@@ -148,7 +148,7 @@ exports.DefaultAdaptableOptions = {
148
148
  dataSetOptions: { dataSets: GeneralConstants_1.EMPTY_ARRAY },
149
149
  groupingOptions: {
150
150
  showGroupingTotalsAsHeader: false,
151
- unbalancedGroupsKey: undefined,
151
+ balancedGroupsKey: undefined,
152
152
  restoreUngroupedColumns: false,
153
153
  autoOrderGroupedColumns: true,
154
154
  },
@@ -3625,20 +3625,23 @@ class Adaptable {
3625
3625
  return userPropertyValue(params);
3626
3626
  }
3627
3627
  const value = params.value;
3628
- const unbalancedGroupsKey = (_a = adaptableOptions.groupingOptions) === null || _a === void 0 ? void 0 : _a.unbalancedGroupsKey;
3629
- if (!unbalancedGroupsKey) {
3628
+ if (this.gridOptions.groupAllowUnbalanced) {
3630
3629
  return value;
3631
3630
  }
3632
- let groupUnbalancedGroupsUnderKeyValue = typeof unbalancedGroupsKey === 'function'
3633
- ? unbalancedGroupsKey({
3631
+ const balancedGroupsKey = (_a = adaptableOptions.groupingOptions) === null || _a === void 0 ? void 0 : _a.balancedGroupsKey;
3632
+ if (!balancedGroupsKey) {
3633
+ return value;
3634
+ }
3635
+ let groupBalancedGroupsUnderKeyValue = typeof balancedGroupsKey === 'function'
3636
+ ? balancedGroupsKey({
3634
3637
  adaptableApi: adaptableApi,
3635
3638
  userName: this.adaptableOptions.userName,
3636
3639
  adaptableId: this.adaptableOptions.adaptableId,
3637
3640
  adaptableColumn: abColumn,
3638
3641
  params,
3639
3642
  })
3640
- : unbalancedGroupsKey;
3641
- return value === null || value === undefined ? groupUnbalancedGroupsUnderKeyValue : value;
3643
+ : balancedGroupsKey;
3644
+ return value === null || value === undefined ? groupBalancedGroupsUnderKeyValue : value;
3642
3645
  };
3643
3646
  });
3644
3647
  }
@@ -1320,6 +1320,16 @@ export declare const ADAPTABLE_METAMODEL: {
1320
1320
  kind: string;
1321
1321
  desc: string;
1322
1322
  };
1323
+ BalancedGroupsKeyContext: {
1324
+ name: string;
1325
+ kind: string;
1326
+ desc: string;
1327
+ props: {
1328
+ name: string;
1329
+ kind: string;
1330
+ desc: string;
1331
+ }[];
1332
+ };
1323
1333
  BaseContext: {
1324
1334
  name: string;
1325
1335
  kind: string;
@@ -3626,25 +3636,25 @@ export declare const ADAPTABLE_METAMODEL: {
3626
3636
  kind: string;
3627
3637
  desc: string;
3628
3638
  isOpt: boolean;
3629
- noCode: string;
3630
- defVal: string;
3631
3639
  gridInfo?: undefined;
3640
+ noCode?: undefined;
3641
+ defVal?: undefined;
3632
3642
  } | {
3633
3643
  name: string;
3634
3644
  kind: string;
3635
3645
  desc: string;
3636
3646
  isOpt: boolean;
3637
- gridInfo: string;
3647
+ noCode: string;
3638
3648
  defVal: string;
3639
- noCode?: undefined;
3649
+ gridInfo?: undefined;
3640
3650
  } | {
3641
3651
  name: string;
3642
3652
  kind: string;
3643
3653
  desc: string;
3644
3654
  isOpt: boolean;
3645
- gridInfo?: undefined;
3655
+ gridInfo: string;
3656
+ defVal: string;
3646
3657
  noCode?: undefined;
3647
- defVal?: undefined;
3648
3658
  })[];
3649
3659
  };
3650
3660
  HandleFdc3Context: {
@@ -5354,16 +5364,6 @@ export declare const ADAPTABLE_METAMODEL: {
5354
5364
  ref: string;
5355
5365
  }[];
5356
5366
  };
5357
- UnbalancedGroupsKeyContext: {
5358
- name: string;
5359
- kind: string;
5360
- desc: string;
5361
- props: {
5362
- name: string;
5363
- kind: string;
5364
- desc: string;
5365
- }[];
5366
- };
5367
5367
  UserColumnMenuItem: {
5368
5368
  name: string;
5369
5369
  kind: string;