@adaptabletools/adaptable 17.0.5 → 17.0.7

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.5",
3
+ "version": "17.0.7",
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: 1707035112774;
1
+ declare const _default: 1709713890982;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1707035112774;
3
+ exports.default = 1709713890982;
@@ -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
  */
@@ -5,8 +5,15 @@ import { BaseEventInfo } from './BaseEventInfo';
5
5
  */
6
6
  export interface CalculatedColumnChangedInfo extends BaseEventInfo {
7
7
  /**
8
- * What caused CalculatedColumn State to change
8
+ * What caused CalculatedColumn State to change (i.e. Add, Edit, Delete)
9
9
  */
10
10
  actionName: string;
11
+ /**
12
+ * Calculated Column that has been added, edited or deleted
13
+ */
11
14
  calculatedColumn: CalculatedColumn;
15
+ /**
16
+ * AST for Current Calculated Column Expression
17
+ */
18
+ calculatedColumnExpressionAST: any;
12
19
  }
@@ -25,5 +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;
28
29
  fireCalculatedColumnChangedEvent(trigger: string, calculatedColumn: CalculatedColumn): void;
29
30
  }
@@ -74,12 +74,17 @@ 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
+ }
77
81
  fireCalculatedColumnChangedEvent(trigger, calculatedColumn) {
78
82
  const adaptableApi = this.getAdaptableApi();
79
83
  const calculatedColumnChangedInfo = {
80
84
  adaptableApi: adaptableApi,
81
85
  actionName: trigger,
82
86
  calculatedColumn: calculatedColumn,
87
+ calculatedColumnExpressionAST: adaptableApi.expressionApi.getASTForExpression(this.getExpressionFromCalculatedColumn(calculatedColumn)),
83
88
  userName: adaptableApi.optionsApi.getUserName(),
84
89
  adaptableId: adaptableApi.optionsApi.getAdaptableId(),
85
90
  };
@@ -10,6 +10,7 @@ const ChartingRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/Cha
10
10
  const ChartingStatusBarPopover_1 = require("../View/Charting/ChartingStatusBarPopover");
11
11
  const getObjectTagsViewItems_1 = require("./Utilities/getObjectTagsViewItems");
12
12
  const ChartingState_1 = require("../PredefinedConfig/ChartingState");
13
+ const Helper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/Helper"));
13
14
  class ChartingModule extends AdaptableModuleBase_1.AdaptableModuleBase {
14
15
  constructor(api) {
15
16
  super(ModuleConstants.ChartingModuleId, ModuleConstants.ChartingFriendlyName, 'chart', 'ChartPopup', 'Create AG Grid Charts in order to see Adaptable Data visually', api);
@@ -37,7 +38,7 @@ class ChartingModule extends AdaptableModuleBase_1.AdaptableModuleBase {
37
38
  }
38
39
  isModuleAvailable() {
39
40
  const agChartsAvailable = this.api.chartingApi.isChartingEnabled() && super.isModuleAvailable();
40
- const externalChartsAvailable = this.api.optionsApi.getChartingOptions().externalChartingOptions;
41
+ const externalChartsAvailable = Helper_1.default.objectHasKeys(this.api.optionsApi.getChartingOptions().externalChartingOptions);
41
42
  return Boolean(agChartsAvailable || externalChartsAvailable);
42
43
  }
43
44
  getModuleAdaptableObjects() {
@@ -15,4 +15,4 @@ exports.PredicateDocsLink = `${exports.HOST_URL_DOCS}/guide/adaptable-predicate`
15
15
  exports.PrimaryKeyDocsLink = `${exports.HOST_URL_DOCS}/guide/getting-started-primary-key`;
16
16
  exports.LicenseDocsLink = `${exports.HOST_URL_DOCS}/guide/licensing`;
17
17
  exports.AdaptableOptionsDocsLink = `${exports.HOST_URL_DOCS}/guide/reference-options-overview`;
18
- exports.AgGridModulesDocsLink = `${exports.HOST_URL_DOCS}/TODO_TODO_TODO`;
18
+ exports.AgGridModulesDocsLink = `${exports.HOST_URL_DOCS}/guide/dev-guide-aggrid-modules-overview`;
@@ -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
  },
@@ -1,5 +1,6 @@
1
1
  export declare function objectExists(item: any): boolean;
2
2
  export declare function objectNotExists(item: any): boolean;
3
+ export declare function objectHasKeys(item: any): boolean;
3
4
  export declare function getStringRepresentionFromKey(event: KeyboardEvent | any): string;
4
5
  export declare function cloneObject<T extends any>(obj: T): T;
5
6
  export declare const arrayToKeyMap: <T extends string | number | symbol>(arr?: T[]) => Record<T, boolean>;
@@ -20,6 +21,7 @@ export declare function clamp(value: any, boundOne: number, boundTwo: number): n
20
21
  export declare const Helper: {
21
22
  objectExists: typeof objectExists;
22
23
  objectNotExists: typeof objectNotExists;
24
+ objectHasKeys: typeof objectHasKeys;
23
25
  getStringRepresentionFromKey: typeof getStringRepresentionFromKey;
24
26
  cloneObject: typeof cloneObject;
25
27
  convertArrayToCsv: typeof convertArrayToCsv;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Helper = exports.clamp = exports.modeNumberArray = exports.medianNumberArray = exports.meanNumberArray = exports.standardDeviationNumberArray = exports.sumNumberArray = exports.roundNumberTo4dp = exports.roundNumber = exports.isInputNotNullOrEmpty = exports.isInputNullOrEmpty = exports.returnItemCount = exports.copyToClipboard = exports.createDownloadedFile = exports.convertArrayToCsv = exports.arrayToKeyMap = exports.cloneObject = exports.getStringRepresentionFromKey = exports.objectNotExists = exports.objectExists = void 0;
3
+ exports.Helper = exports.clamp = exports.modeNumberArray = exports.medianNumberArray = exports.meanNumberArray = exports.standardDeviationNumberArray = exports.sumNumberArray = exports.roundNumberTo4dp = exports.roundNumber = exports.isInputNotNullOrEmpty = exports.isInputNullOrEmpty = exports.returnItemCount = exports.copyToClipboard = exports.createDownloadedFile = exports.convertArrayToCsv = exports.arrayToKeyMap = exports.cloneObject = exports.getStringRepresentionFromKey = exports.objectHasKeys = exports.objectNotExists = exports.objectExists = void 0;
4
4
  const StringExtensions_1 = require("../Extensions/StringExtensions");
5
5
  const AdaptableLogger_1 = require("../../agGrid/AdaptableLogger");
6
6
  function objectExists(item) {
@@ -11,6 +11,10 @@ function objectNotExists(item) {
11
11
  return !objectExists(item);
12
12
  }
13
13
  exports.objectNotExists = objectNotExists;
14
+ function objectHasKeys(item) {
15
+ return Object.keys(item).length > 0;
16
+ }
17
+ exports.objectHasKeys = objectHasKeys;
14
18
  function getStringRepresentionFromKey(event) {
15
19
  if (event.key == null) {
16
20
  return event.char; // IE
@@ -249,6 +253,7 @@ exports.clamp = clamp;
249
253
  exports.Helper = {
250
254
  objectExists,
251
255
  objectNotExists,
256
+ objectHasKeys,
252
257
  getStringRepresentionFromKey,
253
258
  cloneObject,
254
259
  convertArrayToCsv,
@@ -41,7 +41,9 @@ class AggregatedScalarLiveValue {
41
41
  getAggregatedValueForRow(rowNode) {
42
42
  const aggregationValue = this.getAggregationValue(rowNode);
43
43
  if (aggregationValue == undefined) {
44
- logOnce(`${this.aggregatedScalarExpression} :: aggregation value is NOT available!`, this.adaptableApi.logWarn);
44
+ logOnce(`${this.aggregatedScalarExpression} :: aggregation value is NOT available!`, (message) => {
45
+ this.adaptableApi.internalApi.getAdaptableInstance().logger.warn(message);
46
+ });
45
47
  return;
46
48
  }
47
49
  if (this.expressionEvaluation.rowValueGetter) {
@@ -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;