@adaptabletools/adaptable 21.0.10 → 21.0.12

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": "21.0.10",
3
+ "version": "21.0.12",
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",
@@ -32,11 +32,13 @@ export const SystemPredicateDefs = [
32
32
  if (!predicateInput) {
33
33
  return;
34
34
  }
35
- if (adaptableApi.columnScopeApi.isScopeInScope(predicateInput.columnScope,
36
- // 'In' ColumnScope
37
- {
38
- DataTypes: ['text', 'number', 'date', 'textArray', 'numberArray'],
39
- })) {
35
+ // make sure that the input Predicate is included in the 'In' Predicate
36
+ if (adaptableApi.columnScopeApi.scopeIsAll(predicateInput.columnScope) ||
37
+ adaptableApi.columnScopeApi.isScopeInScope(predicateInput.columnScope,
38
+ // 'In' ColumnScope
39
+ {
40
+ DataTypes: ['text', 'number', 'date', 'textArray', 'numberArray'],
41
+ })) {
40
42
  return predicateInput;
41
43
  }
42
44
  })
@@ -113,11 +115,13 @@ export const SystemPredicateDefs = [
113
115
  if (!predicateInput) {
114
116
  return;
115
117
  }
116
- if (adaptableApi.columnScopeApi.isScopeInScope(predicateInput.columnScope,
117
- // 'NotIn' ColumnScope
118
- {
119
- DataTypes: ['text', 'number', 'date', 'textArray', 'numberArray'],
120
- })) {
118
+ // make sure that the input Predicate is included in the 'NotIn' Predicate
119
+ if (adaptableApi.columnScopeApi.scopeIsAll(predicateInput.columnScope) ||
120
+ adaptableApi.columnScopeApi.isScopeInScope(predicateInput.columnScope,
121
+ // 'NotIn' ColumnScope
122
+ {
123
+ DataTypes: ['text', 'number', 'date', 'textArray', 'numberArray'],
124
+ })) {
121
125
  return predicateInput;
122
126
  }
123
127
  })
@@ -6,7 +6,7 @@ export function IsNotNull(stringToCheck) {
6
6
  return !IsNull(stringToCheck);
7
7
  }
8
8
  export function IsEmpty(stringToCheck) {
9
- return stringToCheck == '';
9
+ return stringToCheck === '';
10
10
  }
11
11
  export function IsNotEmpty(stringToCheck) {
12
12
  return !IsEmpty(stringToCheck);
@@ -18,7 +18,7 @@ export function IsNotNullOrEmpty(stringToCheck) {
18
18
  return !IsNullOrEmpty(stringToCheck);
19
19
  }
20
20
  export function IsNullOrEmptyOrWhiteSpace(stringToCheck) {
21
- return IsNullOrEmpty(stringToCheck) || IsEmpty(stringToCheck.trim());
21
+ return IsNullOrEmpty(stringToCheck) || IsEmpty(stringToCheck?.trim());
22
22
  }
23
23
  export function IsNotNullOrEmptyOrWhiteSpace(stringToCheck) {
24
24
  return !IsNullOrEmptyOrWhiteSpace(stringToCheck);
@@ -15,8 +15,7 @@ export const ColumnValuesSelect = (props) => {
15
15
  if (!isActive && distinctValue.value && distinctValue.value instanceof Date) {
16
16
  isActive = selectedColumnValues.some((dateStr) => isEqual(parseDateValue(dateStr), parseDateValue(distinctValue.value)));
17
17
  }
18
- const columnLabel = distinctValue.label;
19
- if (StringExtensions.IsNullOrEmpty(columnLabel)) {
18
+ if (StringExtensions.IsNullOrEmpty(distinctValue.value)) {
20
19
  return false;
21
20
  }
22
21
  if (isActive) {
@@ -2463,7 +2463,10 @@ You need to define at least one Layout!`);
2463
2463
  const value = gridCell.rawValue;
2464
2464
  // we want to filter out empty values
2465
2465
  if (value === '' || value === null || value === undefined) {
2466
- return;
2466
+ // 2025-10-31: we want to allow empty values to be included
2467
+ // after all - they are not displayed by default
2468
+ // but will be accessible in the customInFilterValues callback
2469
+ // return;
2467
2470
  }
2468
2471
  gridCells.push(gridCell);
2469
2472
  }
@@ -8,6 +8,7 @@ import { agGridDataTypeDefinitions, ALL_ADAPTABLE_DATA_TYPES } from './agGridDat
8
8
  import { isPivotGrandTotal } from '../Api/Implementation/ColumnApiImpl';
9
9
  import { isPivotColumnTotal } from '../layout-manager/src/isPivotColumnTotal';
10
10
  import { isPivotAggTotalColumn } from '../layout-manager/src/isPivotAggTotalColumn';
11
+ import { isWeightedAverageAggFuncName } from '../AdaptableState/Common/AggregationColumns';
11
12
  // AG GRID obfuscates its internals, this is (currently) the best way to get hold of its internal services
12
13
  const DANGER_AG_GRID_BEANS_MAP = {};
13
14
  const getColumnApiModule = () => ColumnApiModule;
@@ -608,9 +609,10 @@ export class AgGridAdapter {
608
609
  return false;
609
610
  }
610
611
  getColumnAggregationFunctions(colDef) {
611
- const result = colDef.allowedAggFuncs || ['sum', 'min', 'max', 'count', 'avg', 'first', 'last']; // those are the default fns aggrid supports out-of-the-box
612
+ let result = [].concat(colDef.allowedAggFuncs || ['sum', 'min', 'max', 'count', 'avg', 'first', 'last']); // those are the default fns aggrid supports out-of-the-box
612
613
  const gridOptionsAggFuncs = this.adaptableApi.agGridApi.getGridOption('aggFuncs') || {};
613
614
  result.push(...Object.keys(gridOptionsAggFuncs));
615
+ result = result.filter((func) => !isWeightedAverageAggFuncName(func));
614
616
  return [...new Set(result)];
615
617
  }
616
618
  isTreeColumn(isGeneratedRowGroupColumn) {
@@ -17,6 +17,7 @@ import { AdaptableFilterHandler } from './AdaptableFilterHandler';
17
17
  import { AgGridFilterAdapterFactory } from './AgGridFilterAdapter';
18
18
  import { AgGridFloatingFilterAdapterFactory } from './AgGridFloatingFilterAdapter';
19
19
  import { errorOnce } from './AdaptableLogger';
20
+ import { isWeightedAverageAggFuncName } from '../AdaptableState/Common/AggregationColumns';
20
21
  export function getEditorForColumnDataType(columnDataType, variant) {
21
22
  if (columnDataType === 'number') {
22
23
  return variant === 'react' ? AdaptableReactNumberEditor : AdaptableNumberEditor;
@@ -516,7 +517,10 @@ export class AgGridColumnAdapter {
516
517
  }
517
518
  setupColumnAllowedAggFuncs({ col, abColumn }) {
518
519
  this.setColDefProperty(col, 'allowedAggFuncs', () => {
519
- return abColumn.availableAggregationFunctions;
520
+ if (!abColumn.availableAggregationFunctions) {
521
+ return undefined;
522
+ }
523
+ return abColumn.availableAggregationFunctions.filter((func) => !isWeightedAverageAggFuncName(func));
520
524
  });
521
525
  }
522
526
  setupColumnType(columnSetupInfo) {
package/src/env.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export default {
2
2
  NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
3
- PUBLISH_TIMESTAMP: 1761827363149 || Date.now(),
4
- VERSION: "21.0.10" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1762861055223 || Date.now(),
4
+ VERSION: "21.0.12" || '--current-version--',
5
5
  };