@adaptabletools/adaptable 21.0.9 → 21.0.11

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.9",
3
+ "version": "21.0.11",
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
  }
@@ -576,7 +576,7 @@ export class AgGridColumnAdapter {
576
576
  if (this.adaptableApi.gridApi.isTreeDataGrid()) {
577
577
  this.setColDefProperty(col, 'filter', (original_filter) => {
578
578
  const autoGroupColumnDef = this.agGridApi.getGridOption('autoGroupColumnDef');
579
- if (autoGroupColumnDef.filter != undefined) {
579
+ if (autoGroupColumnDef?.filter != undefined) {
580
580
  // we plan to provide a TreeListColumnFilter
581
581
  // until then, it's the user's responsibility to explicitly set the filter in the provided `autoGroupColumnDef`
582
582
  return original_filter;
@@ -14,6 +14,7 @@ import { isBrowserDocumentAvailable } from '../../View/UIHelper';
14
14
  import { useOverlay } from '../InfiniteTable';
15
15
  import { useAdaptable } from '../../View/AdaptableContext';
16
16
  import { OVERLAY_BASE_Z_INDEX } from '../overlayBaseZIndex';
17
+ const DATA_NAME_OVERLAY_TRIGGER = 'OverlayTrigger';
17
18
  export const getConstrainElement = (target, constrainTo) => {
18
19
  let el = null;
19
20
  if (typeof constrainTo === 'string') {
@@ -58,6 +59,7 @@ const defaultProps = {
58
59
  };
59
60
  const OverlayTrigger = React.forwardRef((givenProps, ref) => {
60
61
  const props = { ...defaultProps, ...givenProps };
62
+ ensurePortalElement();
61
63
  const adaptable = useAdaptable();
62
64
  let { visible: _, showTriangle, showEvent, hideEvent, render, targetOffset, preventPortalEventPropagation = false, anchor, hideDelay = 0, opacityTransitionDuration, onVisibleChange, alignPosition = [
63
65
  // overlay - target
@@ -106,7 +108,6 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
106
108
  doSetVisible(true);
107
109
  }, 50), []);
108
110
  const prevVisible = usePrevious(visible, false);
109
- ensurePortalElement();
110
111
  const onShow = React.useCallback((event) => {
111
112
  const target = targetRef.current;
112
113
  if (event && preventPortalEventPropagation && !contains(target, event.target)) {
@@ -141,6 +142,9 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
141
142
  }, [ref]);
142
143
  useEffect(() => {
143
144
  let target = domRef.current.previousSibling;
145
+ while (target && target.dataset.name === DATA_NAME_OVERLAY_TRIGGER) {
146
+ target = target.previousSibling;
147
+ }
144
148
  if (targetProp) {
145
149
  target = targetProp(target);
146
150
  }
@@ -211,7 +215,7 @@ const OverlayTrigger = React.forwardRef((givenProps, ref) => {
211
215
  const agGridClassName = useAgGridClassName([visible]);
212
216
  return (React.createElement(React.Fragment, null,
213
217
  React.Children.only(props.children),
214
- React.createElement("div", { "data-name": "OverlayTrigger", "data-visible": visible, ref: domRef, style: {
218
+ React.createElement("div", { "data-name": DATA_NAME_OVERLAY_TRIGGER, "data-visible": visible, ref: domRef, style: {
215
219
  visibility: 'hidden',
216
220
  flex: 'none',
217
221
  width: 0,
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: 1761300024312 || Date.now(),
4
- VERSION: "21.0.9" || '--current-version--',
3
+ PUBLISH_TIMESTAMP: 1761929176914 || Date.now(),
4
+ VERSION: "21.0.11" || '--current-version--',
5
5
  };
@@ -378,6 +378,7 @@ export class LayoutManager extends LMEmitter {
378
378
  Ignore_RowSummaries: layout.Ignore_RowSummaries,
379
379
  Ignore_IsReadOnly: layout.Ignore_IsReadOnly,
380
380
  Ignore_Tags: layout.Ignore_Tags,
381
+ Ignore_Metadata: layout.Ignore_Metadata,
381
382
  Ignore_Source: layout.Ignore_Source,
382
383
  Ignore_AdaptableVersion: layout.Ignore_AdaptableVersion,
383
384
  Ignore_Uuid: layout.Ignore_Uuid,
@@ -706,6 +707,7 @@ export class LayoutManager extends LMEmitter {
706
707
  Ignore_RowSummaries: this.currentLayout?.Ignore_RowSummaries,
707
708
  Ignore_IsReadOnly: this.currentLayout?.Ignore_IsReadOnly,
708
709
  Ignore_Tags: this.currentLayout?.Ignore_Tags,
710
+ Ignore_Metadata: this.currentLayout?.Ignore_Metadata,
709
711
  Ignore_Source: this.currentLayout?.Ignore_Source,
710
712
  Ignore_AdaptableVersion: this.currentLayout?.Ignore_AdaptableVersion,
711
713
  Ignore_Uuid: this.currentLayout?.Ignore_Uuid,
@@ -55,6 +55,7 @@ function clearIgnoredProperties(layout) {
55
55
  delete layout.Ignore_IsReadOnly;
56
56
  delete layout.Ignore_Tags;
57
57
  delete layout.Ignore_Source;
58
+ delete layout.Ignore_Metadata;
58
59
  delete layout.Ignore_AdaptableVersion;
59
60
  delete layout.Ignore_Uuid;
60
61
  }