@adaptabletools/adaptable-cjs 21.0.11 → 21.1.0-canary.0

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 (63) hide show
  1. package/base.css +1811 -2336
  2. package/base.css.map +1 -1
  3. package/index.css +1768 -1413
  4. package/index.css.map +1 -1
  5. package/package.json +3 -3
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -1
  7. package/src/AdaptableOptions/FilterOptions.d.ts +7 -0
  8. package/src/AdaptableOptions/PredicateOptions.d.ts +4 -3
  9. package/src/AdaptableState/Common/AdaptableColumn.d.ts +1 -1
  10. package/src/AdaptableState/Common/AdaptablePredicate.d.ts +12 -0
  11. package/src/AdaptableState/Common/AdaptablePredicate.js +132 -18
  12. package/src/AdaptableState/Selection/GridCell.d.ts +10 -0
  13. package/src/Api/Implementation/ExportApiImpl.js +1 -7
  14. package/src/Api/Implementation/PredicateApiImpl.d.ts +3 -1
  15. package/src/Api/Implementation/PredicateApiImpl.js +27 -3
  16. package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -1
  17. package/src/Api/Internal/AdaptableInternalApi.js +6 -0
  18. package/src/Api/Internal/PredicateInternalApi.d.ts +3 -1
  19. package/src/Api/Internal/PredicateInternalApi.js +14 -0
  20. package/src/Api/PredicateApi.d.ts +1 -1
  21. package/src/Redux/Store/AdaptableStore.js +111 -3
  22. package/src/Utilities/Helpers/Helper.js +26 -2
  23. package/src/Utilities/Hooks/index.d.ts +4 -0
  24. package/src/Utilities/Hooks/index.js +9 -0
  25. package/src/Utilities/Hooks/useAdaptableColumn.d.ts +2 -0
  26. package/src/Utilities/Hooks/useAdaptableColumn.js +10 -0
  27. package/src/Utilities/Hooks/useAdaptableOptions.d.ts +2 -0
  28. package/src/Utilities/Hooks/useAdaptableOptions.js +9 -0
  29. package/src/Utilities/Hooks/useAdaptableState.d.ts +3 -0
  30. package/src/Utilities/Hooks/useAdaptableState.js +43 -0
  31. package/src/Utilities/adaptableQlUtils.js +3 -0
  32. package/src/View/AdaptableComputedCSSVarsContext.d.ts +12 -0
  33. package/src/View/AdaptableComputedCSSVarsContext.js +32 -0
  34. package/src/View/Components/AdaptableInput/AdaptableDateInlineInput.d.ts +1 -1
  35. package/src/View/Components/ColumnFilter/FloatingFilter.js +5 -1
  36. package/src/View/Components/ColumnFilter/components/FloatingFilterInputList.js +1 -1
  37. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +34 -9
  38. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +1 -0
  39. package/src/View/Components/FilterForm/ListBoxFilterForm.js +93 -16
  40. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  41. package/src/View/renderWithAdaptableContext.js +3 -1
  42. package/src/agGrid/AdaptableAgGrid.d.ts +3 -1
  43. package/src/agGrid/AdaptableAgGrid.js +360 -23
  44. package/src/agGrid/AdaptableFilterHandler.d.ts +3 -1
  45. package/src/agGrid/AdaptableFilterHandler.js +16 -12
  46. package/src/agGrid/AgGridAdapter.js +12 -6
  47. package/src/agGrid/AgGridColumnAdapter.js +19 -13
  48. package/src/components/OverlayTrigger/index.js +1 -1
  49. package/src/components/Select/Select.js +21 -21
  50. package/src/components/Tree/TreeDropdown/index.d.ts +27 -0
  51. package/src/components/Tree/TreeDropdown/index.js +256 -0
  52. package/src/components/Tree/TreeList/index.d.ts +25 -0
  53. package/src/components/Tree/TreeList/index.js +40 -0
  54. package/src/devTools/DevToolsTracks.d.ts +31 -0
  55. package/src/devTools/DevToolsTracks.js +34 -0
  56. package/src/devTools/PerfMarker.d.ts +12 -0
  57. package/src/devTools/PerfMarker.js +2 -0
  58. package/src/devTools/index.d.ts +102 -0
  59. package/src/devTools/index.js +165 -0
  60. package/src/env.js +2 -2
  61. package/src/layout-manager/src/index.d.ts +2 -0
  62. package/src/layout-manager/src/index.js +24 -0
  63. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -0,0 +1,12 @@
1
+ export type PerfMarkerDetails = {
2
+ name: string;
3
+ value: string | number | boolean;
4
+ }[];
5
+ export interface PerfMarker {
6
+ start(options?: {
7
+ details?: PerfMarkerDetails;
8
+ }): PerfMarker;
9
+ end(options?: {
10
+ details?: PerfMarkerDetails;
11
+ }): PerfMarker;
12
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,102 @@
1
+ import { PerfMarker, PerfMarkerDetails } from './PerfMarker';
2
+ declare const AVAILABLE_COLORS: readonly ["primary", "primary-light", "primary-dark", "secondary", "secondary-light", "secondary-dark", "tertiary", "tertiary-light", "tertiary-dark"];
3
+ type DevToolsColor = (typeof AVAILABLE_COLORS)[number];
4
+ export type DevToolsMarkerDetails = {
5
+ label: string;
6
+ track: string;
7
+ trackGroup?: string;
8
+ color?: DevToolsColor;
9
+ details?: PerfMarkerDetails;
10
+ tooltip?: string;
11
+ startTs?: DOMHighResTimeStamp;
12
+ endTs?: DOMHighResTimeStamp;
13
+ };
14
+ type HasRequiredProps<T> = T extends Record<string, never> ? false : {
15
+ [K in keyof T]-?: {} extends Pick<T, K> ? never : K;
16
+ }[keyof T] extends never ? false : true;
17
+ type EndMethod<T extends Omit<DevToolsMarkerDetails, 'track' | 'label'>> = HasRequiredProps<T> extends true ? (markerDetails: T) => DevToolsMarker : (markerDetails?: T) => DevToolsMarker;
18
+ export declare class DevToolsMarker implements PerfMarker {
19
+ readonly adaptableId: string;
20
+ static create(adaptableId: string): DevToolsMarker;
21
+ private markerDetails;
22
+ private stopped;
23
+ private constructor();
24
+ start: (startDetails?: {
25
+ details?: DevToolsMarkerDetails['details'];
26
+ }) => this;
27
+ get startTimestamp(): number;
28
+ get track(): {
29
+ readonly Init: {
30
+ start: DevToolsMarker['start'];
31
+ end: (markerDetails: Omit<DevToolsMarkerDetails, "track"> & {
32
+ label: "Init" | "InitStore" | "LoadStore" | "InitAGGrid";
33
+ }) => DevToolsMarker;
34
+ label: {
35
+ readonly Init: {
36
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
37
+ start: DevToolsMarker['start'];
38
+ };
39
+ readonly InitStore: {
40
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
41
+ start: DevToolsMarker['start'];
42
+ };
43
+ readonly LoadStore: {
44
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
45
+ start: DevToolsMarker['start'];
46
+ };
47
+ readonly InitAGGrid: {
48
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
49
+ start: DevToolsMarker['start'];
50
+ };
51
+ };
52
+ };
53
+ readonly LayoutManager: {
54
+ start: DevToolsMarker['start'];
55
+ end: (markerDetails: Omit<DevToolsMarkerDetails, "track"> & {
56
+ label: "SetLayout" | "ApplyPivotLayout" | "ApplyTableLayout";
57
+ }) => DevToolsMarker;
58
+ label: {
59
+ readonly SetLayout: {
60
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
61
+ start: DevToolsMarker['start'];
62
+ };
63
+ readonly ApplyPivotLayout: {
64
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
65
+ start: DevToolsMarker['start'];
66
+ };
67
+ readonly ApplyTableLayout: {
68
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
69
+ start: DevToolsMarker['start'];
70
+ };
71
+ };
72
+ };
73
+ readonly Runtime: {
74
+ start: DevToolsMarker['start'];
75
+ end: (markerDetails: Omit<DevToolsMarkerDetails, "track"> & {
76
+ label: "SetLayout";
77
+ }) => DevToolsMarker;
78
+ label: {
79
+ readonly SetLayout: {
80
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
81
+ start: DevToolsMarker['start'];
82
+ };
83
+ };
84
+ };
85
+ readonly Redux: {
86
+ start: DevToolsMarker['start'];
87
+ end: (markerDetails: Omit<DevToolsMarkerDetails, "track"> & {
88
+ label: "Action";
89
+ }) => DevToolsMarker;
90
+ label: {
91
+ readonly Action: {
92
+ end: EndMethod<Omit<DevToolsMarkerDetails, 'track' | 'label'>>;
93
+ start: DevToolsMarker['start'];
94
+ };
95
+ };
96
+ };
97
+ };
98
+ end: (markerDetails?: Partial<DevToolsMarkerDetails>) => this;
99
+ }
100
+ export declare function areAdaptableProfileTracksEnabled(adaptableId: string | undefined): boolean;
101
+ export declare function getMarker(adaptableId: string): DevToolsMarker;
102
+ export type { PerfMarker };
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarker = exports.areAdaptableProfileTracksEnabled = exports.DevToolsMarker = void 0;
4
+ const infinite_react_1 = require("@infinite-table/infinite-react");
5
+ const DevToolsTracks_1 = require("./DevToolsTracks");
6
+ const AVAILABLE_COLORS = [
7
+ 'primary',
8
+ 'primary-light',
9
+ 'primary-dark',
10
+ 'secondary',
11
+ 'secondary-light',
12
+ 'secondary-dark',
13
+ 'tertiary',
14
+ 'tertiary-light',
15
+ 'tertiary-dark',
16
+ // 'error',
17
+ ];
18
+ const colorMap = new Map();
19
+ function getColor(identifier) {
20
+ if (colorMap.has(identifier)) {
21
+ return colorMap.get(identifier);
22
+ }
23
+ const color = AVAILABLE_COLORS[colorMap.size % AVAILABLE_COLORS.length];
24
+ colorMap.set(identifier, color);
25
+ return color;
26
+ }
27
+ class DevToolsMarker {
28
+ static create(adaptableId) {
29
+ return new DevToolsMarker(adaptableId);
30
+ }
31
+ constructor(adaptableId) {
32
+ this.adaptableId = adaptableId;
33
+ this.markerDetails = {
34
+ label: '',
35
+ track: '',
36
+ trackGroup: undefined,
37
+ color: undefined,
38
+ details: [],
39
+ tooltip: undefined,
40
+ };
41
+ this.stopped = false;
42
+ this.start = (startDetails) => {
43
+ if (this.markerDetails.startTs) {
44
+ return this;
45
+ }
46
+ const start = performance.now();
47
+ this.markerDetails.details = startDetails?.details ?? [];
48
+ this.markerDetails.startTs = start;
49
+ return this;
50
+ };
51
+ this.end = (markerDetails = {}) => {
52
+ if (this.stopped) {
53
+ return this;
54
+ }
55
+ this.stopped = true;
56
+ const start = markerDetails.startTs ?? this.markerDetails.startTs;
57
+ const end = markerDetails.endTs ?? this.markerDetails.endTs ?? performance.now();
58
+ let color = markerDetails.color || this.markerDetails.color || '';
59
+ const trackGroup = markerDetails.trackGroup ||
60
+ this.markerDetails.trackGroup ||
61
+ `AdapTable (${this.adaptableId})`;
62
+ const details = [...(this.markerDetails.details || []), ...(markerDetails.details || [])];
63
+ const tooltip = markerDetails.tooltip || this.markerDetails.tooltip;
64
+ const label = markerDetails.label || this.markerDetails.label || 'Unknown';
65
+ const track = markerDetails.track || this.markerDetails.track || 'Unknown';
66
+ if (!color) {
67
+ const identifier = `${trackGroup}:${track}:${label}`;
68
+ color = getColor(identifier);
69
+ }
70
+ performance.measure(label, {
71
+ start,
72
+ end,
73
+ detail: {
74
+ devtools: {
75
+ dataType: 'track-entry',
76
+ trackGroup,
77
+ track,
78
+ color: color || 'primary',
79
+ properties: details.length > 0 ? details.map((detail) => [detail.name, detail.value]) : undefined,
80
+ tooltipText: tooltip,
81
+ },
82
+ },
83
+ });
84
+ return this;
85
+ };
86
+ this.adaptableId = adaptableId;
87
+ }
88
+ get startTimestamp() {
89
+ return this.markerDetails.startTs;
90
+ }
91
+ get track() {
92
+ const self = this;
93
+ return Object.keys(DevToolsTracks_1.DevToolsTracks).reduce((acc, track) => {
94
+ const trackObj = {
95
+ start: self.start,
96
+ end: (markerDetails) => {
97
+ return self.end({
98
+ ...markerDetails,
99
+ track: DevToolsTracks_1.DevToolsTracks[track].track,
100
+ label: markerDetails.label,
101
+ });
102
+ },
103
+ get label() {
104
+ const currentTrack = DevToolsTracks_1.DevToolsTracks[track];
105
+ return Object.keys(currentTrack.labels).reduce((labelAcc, label) => {
106
+ const labelObj = {
107
+ start: self.start,
108
+ end: (markerDetails) => {
109
+ return self.end({
110
+ ...markerDetails,
111
+ track: currentTrack.track,
112
+ label: currentTrack.labels[label],
113
+ });
114
+ },
115
+ };
116
+ Object.defineProperty(labelAcc, label, {
117
+ get: () => {
118
+ self.markerDetails.label =
119
+ currentTrack.labels[label];
120
+ return labelObj;
121
+ },
122
+ });
123
+ return labelAcc;
124
+ }, {});
125
+ },
126
+ };
127
+ Object.defineProperty(acc, track, {
128
+ get: () => {
129
+ const currentTrack = DevToolsTracks_1.DevToolsTracks[track];
130
+ self.markerDetails.track = currentTrack.track;
131
+ return trackObj;
132
+ },
133
+ });
134
+ return acc;
135
+ }, {});
136
+ }
137
+ }
138
+ exports.DevToolsMarker = DevToolsMarker;
139
+ function areAdaptableProfileTracksEnabled(adaptableId) {
140
+ const trakcsSupported = typeof performance !== 'undefined' &&
141
+ typeof performance.now === 'function' &&
142
+ typeof performance.measure === 'function';
143
+ if (!trakcsSupported) {
144
+ return false;
145
+ }
146
+ if (typeof localStorage !== 'undefined' &&
147
+ infinite_react_1.debug.isChannelEnabled(adaptableId ? `Adaptable:${adaptableId}:perf` : 'Adaptable:*:perf', typeof localStorage !== 'undefined' ? localStorage.debug || '' : '')) {
148
+ return true;
149
+ }
150
+ if (typeof localStorage !== 'undefined' && localStorage.adaptableProfileTracks == 'true') {
151
+ return true;
152
+ }
153
+ return false;
154
+ }
155
+ exports.areAdaptableProfileTracksEnabled = areAdaptableProfileTracksEnabled;
156
+ function getMarker(adaptableId) {
157
+ const enabled = areAdaptableProfileTracksEnabled(adaptableId);
158
+ const marker = DevToolsMarker.create(adaptableId);
159
+ if (!enabled) {
160
+ marker.start = () => marker;
161
+ marker.end = () => marker;
162
+ }
163
+ return marker;
164
+ }
165
+ exports.getMarker = getMarker;
package/src/env.js CHANGED
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  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" || '',
5
- PUBLISH_TIMESTAMP: 1761929207492 || Date.now(),
6
- VERSION: "21.0.11" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1762955203347 || Date.now(),
6
+ VERSION: "21.1.0-canary.0" || '--current-version--',
7
7
  };
@@ -25,6 +25,7 @@ export declare class LayoutManager<DATA_TYPE = any> extends LMEmitter {
25
25
  private setGridOption_default;
26
26
  private suppressGlobalAgGridEventListener;
27
27
  private supressGlobalAgGridEventTimeoutId;
28
+ private layoutManagerDebugId;
28
29
  constructor(options: LayoutManagerOptions);
29
30
  destroy(): void;
30
31
  private setupEvents;
@@ -65,6 +66,7 @@ export declare class LayoutManager<DATA_TYPE = any> extends LMEmitter {
65
66
  private suspendAgGridListener;
66
67
  private resumeAgGridListener;
67
68
  private applyLayout;
69
+ private getLayoutDetailsAsString;
68
70
  applyColumnDefsChanges(layout: TableLayoutModel | PivotLayoutModel): boolean;
69
71
  private applyColumnSizingColumnDefsChanges;
70
72
  private applyTableLayout;
@@ -12,6 +12,7 @@ const destructurePivotColumnId_1 = require("./destructurePivotColumnId");
12
12
  const isPivotAggTotalColumn_1 = require("./isPivotAggTotalColumn");
13
13
  const isPivotGrandTotal_1 = require("./isPivotGrandTotal");
14
14
  const isPivotColumnTotal_1 = require("./isPivotColumnTotal");
15
+ const devTools_1 = require("../../devTools");
15
16
  exports.PIVOT_ANY_TOTAL_COL_TYPE = 'pivotAnyTotal';
16
17
  exports.PIVOT_GRAND_TOTAL_COL_TYPE = 'pivotGrandTotal';
17
18
  exports.PIVOT_COLUMN_TOTAL_COL_TYPE = 'pivotColumnTotal';
@@ -327,6 +328,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
327
328
  }
328
329
  setOptions(options) {
329
330
  this.gridApi = options.gridApi;
331
+ this.layoutManagerDebugId = options.debugId;
330
332
  }
331
333
  getLayoutModelFromGrid() {
332
334
  return this.isInPivotMode()
@@ -725,6 +727,7 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
725
727
  ColumnGroupValues,
726
728
  GrandTotalRow: this.gridApi.getGridOption('grandTotalRow'),
727
729
  SuppressAggFuncInHeader: this.gridApi.getGridOption('suppressAggFuncInHeader'),
730
+ RowGroupDisplayType: this.gridApi.getGridOption('groupDisplayType') === 'multipleColumns' ? 'multi' : 'single',
728
731
  });
729
732
  return layout;
730
733
  }
@@ -1084,10 +1087,14 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
1084
1087
  this.applyColumnDefsChanges(layout);
1085
1088
  if ((0, isPivotLayoutModel_1.isPivotLayoutModel)(layout)) {
1086
1089
  try {
1090
+ const marker = (0, devTools_1.getMarker)(this.layoutManagerDebugId).track.LayoutManager.label.ApplyPivotLayout.start();
1087
1091
  const perfApplyPivot = this.beginPerf('applyLayout:pivot');
1088
1092
  this.gridApi.setGridOption('pivotMode', true);
1089
1093
  this.applyPivotLayout(layout, options);
1090
1094
  perfApplyPivot.end();
1095
+ marker.end({
1096
+ details: this.getLayoutDetailsAsString(layout),
1097
+ });
1091
1098
  }
1092
1099
  finally {
1093
1100
  resume();
@@ -1095,17 +1102,34 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
1095
1102
  return;
1096
1103
  }
1097
1104
  try {
1105
+ const marker = (0, devTools_1.getMarker)(this.layoutManagerDebugId).track.LayoutManager.label.ApplyTableLayout.start();
1098
1106
  const perfApplyTable = this.beginPerf('applyLayout:table');
1099
1107
  if (pivotMode) {
1100
1108
  this.gridApi.setGridOption('pivotMode', false);
1101
1109
  }
1102
1110
  this.applyTableLayout(layout, options);
1103
1111
  perfApplyTable.end();
1112
+ marker.end({
1113
+ details: this.getLayoutDetailsAsString(layout),
1114
+ });
1104
1115
  }
1105
1116
  finally {
1106
1117
  resume();
1107
1118
  }
1108
1119
  }
1120
+ getLayoutDetailsAsString(layout) {
1121
+ return Object.keys(layout)
1122
+ .map((key) => {
1123
+ if (key.startsWith('Ignore_')) {
1124
+ return null;
1125
+ }
1126
+ return {
1127
+ name: key,
1128
+ value: JSON.stringify(layout[key], null, 2),
1129
+ };
1130
+ })
1131
+ .filter(Boolean);
1132
+ }
1109
1133
  applyColumnDefsChanges(layout) {
1110
1134
  return this.applyColumnSizingColumnDefsChanges(layout);
1111
1135
  }