@adaptabletools/adaptable-cjs 22.0.0-canary.1 → 22.0.0-canary.3

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 (177) hide show
  1. package/index.css +55 -37
  2. package/index.css.map +1 -1
  3. package/package.json +1 -1
  4. package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -2
  5. package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
  6. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  7. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  8. package/src/AdaptableState/Common/AdaptableColumn.d.ts +6 -0
  9. package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
  10. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  11. package/src/AdaptableState/FormatColumnState.d.ts +0 -8
  12. package/src/AdaptableState/InitialState.d.ts +1 -1
  13. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  14. package/src/Api/DataSetApi.d.ts +1 -1
  15. package/src/Api/GridApi.d.ts +3 -3
  16. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  17. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  18. package/src/Api/Implementation/AlertApiImpl.js +1 -0
  19. package/src/Api/Implementation/ApiBase.js +1 -0
  20. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  21. package/src/Api/Implementation/ChartingApiImpl.js +4 -0
  22. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  23. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  24. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  25. package/src/Api/Implementation/CustomSortApiImpl.js +1 -0
  26. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  27. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  28. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  29. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  30. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  31. package/src/Api/Implementation/EventApiImpl.js +16 -14
  32. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  33. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  34. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  35. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  36. package/src/Api/Implementation/FlashingCellApiImpl.js +1 -0
  37. package/src/Api/Implementation/FormatColumnApiImpl.js +1 -0
  38. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  39. package/src/Api/Implementation/GridApiImpl.d.ts +9 -9
  40. package/src/Api/Implementation/GridApiImpl.js +17 -16
  41. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  42. package/src/Api/Implementation/LayoutApiImpl.js +1 -0
  43. package/src/Api/Implementation/NamedQueryApiImpl.js +1 -0
  44. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  45. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  46. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  47. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  48. package/src/Api/Implementation/SystemStatusApiImpl.js +2 -0
  49. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  50. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  51. package/src/Api/Implementation/UserInterfaceApiImpl.js +2 -1
  52. package/src/Api/Internal/ColumnInternalApi.js +1 -1
  53. package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
  54. package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
  55. package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
  56. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  57. package/src/Redux/Store/AdaptableStore.js +49 -43
  58. package/src/Strategy/AdaptableModuleBase.js +4 -0
  59. package/src/Strategy/AlertModule.js +1 -0
  60. package/src/Strategy/CalculatedColumnModule.js +1 -0
  61. package/src/Strategy/CellSummaryModule.js +1 -1
  62. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  63. package/src/Strategy/FlashingCellModule.js +1 -0
  64. package/src/Strategy/FreeTextColumnModule.js +1 -0
  65. package/src/Strategy/LayoutModule.js +2 -1
  66. package/src/Strategy/PlusMinusModule.js +2 -0
  67. package/src/Strategy/ScheduleModule.js +1 -0
  68. package/src/Strategy/ShortcutModule.js +2 -0
  69. package/src/Strategy/TeamSharingModule.js +10 -10
  70. package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
  71. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +3 -3
  72. package/src/Utilities/Constants/DocumentationLinkConstants.js +3 -3
  73. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  74. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
  75. package/src/Utilities/Helpers/StyleHelper.js +14 -0
  76. package/src/Utilities/MenuItem.js +18 -0
  77. package/src/Utilities/ObjectFactory.js +1 -1
  78. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  79. package/src/Utilities/Services/AlertService.js +6 -4
  80. package/src/Utilities/Services/AnnotationsService.js +4 -1
  81. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  82. package/src/Utilities/Services/ChartingService.js +1 -0
  83. package/src/Utilities/Services/DataService.js +10 -2
  84. package/src/Utilities/Services/Fdc3Service.js +5 -3
  85. package/src/Utilities/Services/FlashingCellService.js +5 -0
  86. package/src/Utilities/Services/LicenseService/index.js +1 -1
  87. package/src/Utilities/Services/MetamodelService.js +2 -2
  88. package/src/Utilities/Services/ModuleService.js +4 -3
  89. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  90. package/src/Utilities/Services/RowFormService.js +1 -0
  91. package/src/Utilities/Services/RowSummaryService.js +10 -7
  92. package/src/Utilities/Services/TeamSharingService.js +3 -1
  93. package/src/Utilities/Services/ThemeService.js +11 -9
  94. package/src/Utilities/Services/ValidationService.js +1 -0
  95. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  96. package/src/View/AdaptablePopover/index.d.ts +1 -0
  97. package/src/View/AdaptablePopover/index.js +1 -1
  98. package/src/View/Alert/ActiveAlertsPanel.js +8 -0
  99. package/src/View/Alert/AlertViewPanel.js +13 -9
  100. package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
  101. package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
  102. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +24 -11
  103. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +8 -8
  104. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
  105. package/src/View/CellSummary/CellSummaryViewPanel.js +16 -17
  106. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  107. package/src/View/Components/Buttons/ButtonApply.js +1 -1
  108. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  109. package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
  110. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  111. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  112. package/src/View/Components/ExpressionWizard.js +5 -5
  113. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  114. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  115. package/src/View/Components/Selectors/BulkUpdateValueSelector.js +18 -17
  116. package/src/View/Components/StyleComponent.js +20 -1
  117. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  118. package/src/View/CustomSort/CustomSortSummary.js +13 -13
  119. package/src/View/Dashboard/DashboardPopup.js +4 -5
  120. package/src/View/Export/ExportDestinationPicker.js +1 -1
  121. package/src/View/Export/ExportStatusBar.js +4 -2
  122. package/src/View/Export/ExportViewPanel.js +25 -18
  123. package/src/View/FormatColumn/FormatColumnSummary.js +13 -13
  124. package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +0 -23
  125. package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
  126. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +13 -13
  127. package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
  128. package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
  129. package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +2 -2
  130. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  131. package/src/View/Theme/ThemePopup.js +13 -16
  132. package/src/View/UIHelper.d.ts +2 -0
  133. package/src/View/UIHelper.js +16 -0
  134. package/src/agGrid/Adaptable.js +4 -0
  135. package/src/agGrid/AdaptableAgGrid.d.ts +2 -2
  136. package/src/agGrid/AdaptableAgGrid.js +104 -38
  137. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  138. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  139. package/src/agGrid/AdaptableLogger.js +10 -0
  140. package/src/agGrid/AgGridAdapter.js +11 -1
  141. package/src/agGrid/AgGridColumnAdapter.js +5 -18
  142. package/src/agGrid/AgGridExportAdapter.js +10 -9
  143. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  144. package/src/agGrid/AgGridFloatingFilterAdapter.js +3 -0
  145. package/src/agGrid/AgGridMenuAdapter.js +1 -0
  146. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  147. package/src/agGrid/AgGridOptionsService.js +3 -0
  148. package/src/agGrid/AgGridThemeAdapter.js +2 -0
  149. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  150. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  151. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  152. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  153. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  154. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  155. package/src/agGrid/index.d.ts +6 -0
  156. package/src/agGrid/index.js +6 -0
  157. package/src/components/Dashboard/DashboardToolbar.js +1 -1
  158. package/src/components/Datepicker/index.js +1 -1
  159. package/src/components/ExpressionEditor/EditorInput.js +19 -3
  160. package/src/components/Tree/TreeDropdown/index.js +1 -1
  161. package/src/components/overlayBaseZIndex.js +1 -1
  162. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  163. package/src/devTools/index.js +54 -53
  164. package/src/env.js +2 -2
  165. package/src/layout-manager/src/LMEmitter.js +11 -11
  166. package/src/layout-manager/src/LMLogger.js +7 -0
  167. package/src/layout-manager/src/index.js +56 -51
  168. package/src/metamodel/adaptable.metamodel.d.ts +66 -7
  169. package/src/metamodel/adaptable.metamodel.js +1 -1
  170. package/src/migration/AdaptableUpgradeHelper.js +5 -0
  171. package/src/migration/VersionUpgrade.js +1 -0
  172. package/src/migration/VersionUpgrade17.js +1 -2
  173. package/src/migration/VersionUpgrade22.d.ts +6 -0
  174. package/src/migration/VersionUpgrade22.js +31 -0
  175. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  176. package/src/types.d.ts +1 -1
  177. package/tsconfig.cjs.tsbuildinfo +1 -1
@@ -18,6 +18,10 @@ const AgGridFilterAdapterFactory = (adaptable) => {
18
18
  return 'filter_' + colId + '_' + adaptable.adaptableOptions.adaptableId;
19
19
  }
20
20
  return class AgGridFilterAdapter {
21
+ params;
22
+ filterContainer;
23
+ column;
24
+ unmountReactRoot;
21
25
  init(params) {
22
26
  this.params = params;
23
27
  this.column = params.column;
@@ -62,6 +62,9 @@ const AgGridFloatingFilterAdapterFactory = (adaptable) => {
62
62
  }
63
63
  }
64
64
  return class AgGridFloatingFilterAdapter {
65
+ colId;
66
+ filterContainer;
67
+ unmountReactRoot;
65
68
  init(params) {
66
69
  const colId = params.column.getColId();
67
70
  this.colId = colId;
@@ -7,6 +7,7 @@ const icons_1 = require("../components/icons");
7
7
  const ArrayExtensions_1 = tslib_1.__importDefault(require("../Utilities/Extensions/ArrayExtensions"));
8
8
  const GeneralConstants_1 = require("../Utilities/Constants/GeneralConstants");
9
9
  class AgGridMenuAdapter {
10
+ _adaptableInstance;
10
11
  constructor(_adaptableInstance) {
11
12
  this._adaptableInstance = _adaptableInstance;
12
13
  }
@@ -5,9 +5,10 @@ const _1 = require(".");
5
5
  const ag_grid_enterprise_1 = require("ag-grid-enterprise");
6
6
  exports.AG_GRID_VERSION = ag_grid_enterprise_1.AllEnterpriseModule.version;
7
7
  class AgGridModulesAdapter {
8
+ adaptableInstance;
9
+ allAgGridModules = new Set();
8
10
  constructor(adaptableInstance) {
9
11
  this.adaptableInstance = adaptableInstance;
10
- this.allAgGridModules = new Set();
11
12
  this.allAgGridModules = this.extractAgGridModuleNames(ag_grid_enterprise_1.AllEnterpriseModule);
12
13
  }
13
14
  destroy() {
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AgGridOptionsService = void 0;
4
4
  class AgGridOptionsService {
5
+ adaptableInstance;
6
+ gridOptionsPropertyCache;
7
+ colDefPropertyCache;
5
8
  constructor(adaptableInstance) {
6
9
  this.adaptableInstance = adaptableInstance;
7
10
  this.gridOptionsPropertyCache = new Map();
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AgGridThemeAdapter = void 0;
4
4
  const GeneralConstants_1 = require("../Utilities/Constants/GeneralConstants");
5
5
  class AgGridThemeAdapter {
6
+ _adaptableInstance;
7
+ agGridThemeMode;
6
8
  constructor(_adaptableInstance) {
7
9
  this._adaptableInstance = _adaptableInstance;
8
10
  }
@@ -102,6 +102,11 @@ const ReactActionColumnRenderer = (props) => {
102
102
  };
103
103
  exports.ReactActionColumnRenderer = ReactActionColumnRenderer;
104
104
  class ActionColumnRenderer {
105
+ eGui;
106
+ eventListener;
107
+ unmountReactRoot;
108
+ layoutSwitchUnsubscribe;
109
+ actionButtons;
105
110
  // gets called once before the renderer is used
106
111
  init(params) {
107
112
  const adaptable = params.context.__adaptable;
@@ -7,6 +7,8 @@ const renderWithAdaptableContext_1 = require("../../View/renderWithAdaptableCont
7
7
  const React = tslib_1.__importStar(require("react"));
8
8
  const getBadgeRendererForColumn = (badgeStyle, abColumn, api) => {
9
9
  return class BadgetRenderer {
10
+ eGui;
11
+ unmountReactRoot;
10
12
  getAdaptableInstance(params) {
11
13
  const adaptable = params.context.__adaptable;
12
14
  return adaptable;
@@ -9,6 +9,7 @@ const getPercentBarRendererForColumn = (styledColumn, abColumn, api) => {
9
9
  return;
10
10
  }
11
11
  return class PercentBarRenderer {
12
+ eGui;
12
13
  init(params) {
13
14
  const min = api.styledColumnApi.internalApi.getNumericStyleMinValue(styledColumn, abColumn, params.node, params.value);
14
15
  const max = api.styledColumnApi.internalApi.getNumericStyleMaxValue(styledColumn, abColumn, params.node, params.value);
@@ -98,9 +98,12 @@ exports.AdaptableReactDateEditor = (0, react_1.forwardRef)((props, ref) => {
98
98
  * We strongly recommend you specify a `colDef.valueParser` function
99
99
  */
100
100
  class AdaptableDateEditor {
101
- constructor() {
102
- this.valueParser = defaultDateValueParser;
103
- }
101
+ value;
102
+ el;
103
+ params;
104
+ editor;
105
+ unmountReactRoot;
106
+ valueParser = defaultDateValueParser;
104
107
  init(params) {
105
108
  this.value = getStartValue(params);
106
109
  const { valueParser } = params.column.getColDef();
@@ -86,18 +86,13 @@ exports.AdaptableReactNumberEditor.displayName = 'AdaptableReactNumberEditor';
86
86
  * Number Editor provided by AdapTable and used by default for all `number` columns
87
87
  */
88
88
  class AdaptableNumberEditor {
89
- constructor() {
90
- this.valueParser = defaultValueParser;
91
- this.onValueChange = (value) => {
92
- this.value = this.valueParser
93
- ? this.valueParser({
94
- ...this.params,
95
- oldValue: this.params.value,
96
- newValue: value,
97
- })
98
- : value;
99
- };
100
- }
89
+ value;
90
+ columnId;
91
+ el;
92
+ params;
93
+ editor;
94
+ valueParser = defaultValueParser;
95
+ unmountReactRoot;
101
96
  init(params) {
102
97
  this.value = getStartValue(params);
103
98
  this.params = params;
@@ -148,5 +143,14 @@ class AdaptableNumberEditor {
148
143
  destroy() {
149
144
  this.unmountReactRoot?.();
150
145
  }
146
+ onValueChange = (value) => {
147
+ this.value = this.valueParser
148
+ ? this.valueParser({
149
+ ...this.params,
150
+ oldValue: this.params.value,
151
+ newValue: value,
152
+ })
153
+ : value;
154
+ };
151
155
  }
152
156
  exports.AdaptableNumberEditor = AdaptableNumberEditor;
@@ -69,19 +69,13 @@ exports.AdaptableReactPercentageEditor.displayName = 'AdaptableReactPercentageEd
69
69
  * Used to edit percentage columns as percentages (similar to how its done in Excel)
70
70
  */
71
71
  class AdaptablePercentageEditor {
72
- constructor() {
73
- this.valueParser = defaultValueParser;
74
- this.onValueChange = (value) => {
75
- const newValue = this.valueParser
76
- ? this.valueParser({
77
- ...this.params,
78
- oldValue: this.params.value,
79
- newValue: value,
80
- })
81
- : value;
82
- this.value = NumberExtensions_1.default.divideBy100(newValue);
83
- };
84
- }
72
+ value;
73
+ columnId;
74
+ el;
75
+ params;
76
+ editor;
77
+ valueParser = defaultValueParser;
78
+ unmountReactRoot;
85
79
  init(params) {
86
80
  this.value = (0, AdaptableNumberEditor_1.getStartValue)(params);
87
81
  this.params = params;
@@ -132,5 +126,15 @@ class AdaptablePercentageEditor {
132
126
  destroy() {
133
127
  this.unmountReactRoot?.();
134
128
  }
129
+ onValueChange = (value) => {
130
+ const newValue = this.valueParser
131
+ ? this.valueParser({
132
+ ...this.params,
133
+ oldValue: this.params.value,
134
+ newValue: value,
135
+ })
136
+ : value;
137
+ this.value = NumberExtensions_1.default.divideBy100(newValue);
138
+ };
135
139
  }
136
140
  exports.AdaptablePercentageEditor = AdaptablePercentageEditor;
@@ -2,5 +2,11 @@ import { Adaptable, AdaptableNoCodeWizard as ABWizard } from './Adaptable';
2
2
  import { AdaptableLogger as ABLogger } from './AdaptableLogger';
3
3
  export { default as AdaptableWizardView } from '../View/AdaptableWizardView';
4
4
  export default Adaptable;
5
+ /**
6
+ * AdapTable's No Code Wizard
7
+ */
5
8
  export declare const AdaptableNoCodeWizard: typeof ABWizard;
9
+ /**
10
+ * AdapTable's Logger
11
+ */
6
12
  export declare const AdaptableLogger: typeof ABLogger;
@@ -7,5 +7,11 @@ const AdaptableLogger_1 = require("./AdaptableLogger");
7
7
  var AdaptableWizardView_1 = require("../View/AdaptableWizardView");
8
8
  Object.defineProperty(exports, "AdaptableWizardView", { enumerable: true, get: function () { return tslib_1.__importDefault(AdaptableWizardView_1).default; } });
9
9
  exports.default = Adaptable_1.Adaptable;
10
+ /**
11
+ * AdapTable's No Code Wizard
12
+ */
10
13
  exports.AdaptableNoCodeWizard = Adaptable_1.AdaptableNoCodeWizard;
14
+ /**
15
+ * AdapTable's Logger
16
+ */
11
17
  exports.AdaptableLogger = AdaptableLogger_1.AdaptableLogger;
@@ -12,5 +12,5 @@ function DashboardToolbar(props) {
12
12
  React.createElement(Flex_1.Flex, { className: "ab-Dashboard__toolbar-title twa:items-center twa:justify-center twa:px-2 twa:pb-1 twa:opacity-70", flexDirection: "row" },
13
13
  React.createElement("span", { className: "twa:text-2" }, props.title),
14
14
  props.showConfigure && (React.createElement(SimpleButton_1.default, { "aria-label": `Configure ${props.title}`, icon: "spanner", variant: "text", tone: "none", "data-name": "configure", iconSize: 16, className: "twa:ml-1", tooltip: props.tooltip || `Configure ${props.title}`, onClick: () => props.onConfigure() })),
15
- props.showClose && (React.createElement(SimpleButton_1.default, { "aria-label": `Close ${props.title}`, style: { alignSelf: 'flex-end' }, disabled: props.accessLevel == 'ReadOnly', "data-name": "close", icon: "close", variant: "text", tone: "none", iconSize: 16, className: "twa:ml-1", tooltip: props.tooltip || `Close ${props.title} Toolbar`, onClick: () => props.onClose() })))));
15
+ props.showClose && (React.createElement(SimpleButton_1.default, { "aria-label": `Close ${props.title}`, style: { alignSelf: 'flex-end' }, disabled: props.accessLevel == 'ReadOnly', "data-name": "close", icon: "close", variant: "text", tone: "none", iconSize: 16, className: "twa:ml-1", tooltip: props.tooltip || `Close ${props.title} Toolbar`, onClick: () => props.onClose?.() })))));
16
16
  }
@@ -116,7 +116,7 @@ exports.Datepicker = React.forwardRef((props, ref) => {
116
116
  }, accessLevel: 'Full' })) : null;
117
117
  const calendarButton = (React.createElement(SimpleButton_1.default, { disabled: disabled, variant: "text", icon: "calendar", tooltip: "Date", iconSize: 20, className: "twa:p-0", onClick: () => setVisible(true) }));
118
118
  const overlayDOMRef = (0, react_1.useRef)(null);
119
- return (React.createElement(Flex_1.Flex, null,
119
+ return (React.createElement(Flex_1.Flex, { className: "twa:flex-1" },
120
120
  React.createElement(OverlayTrigger_1.default, { visible: visible, render: () => (React.createElement(DatepickerOverlay, { overlayDOMRef: overlayDOMRef, onMouseDown: props.onMouseDown, onHide: () => setVisible(false), onKeyDown: (e) => {
121
121
  if (e.key === 'Escape' || e.key === 'Enter') {
122
122
  setVisible(false, e.key);
@@ -6,7 +6,6 @@ const react_1 = require("react");
6
6
  const BaseEditorInput_1 = require("./BaseEditorInput");
7
7
  const editorButtonsSearch_1 = require("./editorButtonsSearch");
8
8
  const EditorContext_1 = require("./EditorContext");
9
- const StringExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/StringExtensions"));
10
9
  const editorButtonsAggregatedScalar_1 = require("./editorButtonsAggregatedScalar");
11
10
  const aggregatedScalarExpressionFunctions_1 = require("../../Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions");
12
11
  const editorButtonsCumulativeAggregatedScalar_1 = require("./editorButtonsCumulativeAggregatedScalar");
@@ -52,8 +51,25 @@ function EditorInput(props) {
52
51
  };
53
52
  }, [props.type]);
54
53
  const { setSelectedFunction } = (0, EditorContext_1.useExpressionEditor)();
55
- const queryName = `${StringExtensions_1.default.CapitaliseFirstLetter(props.type)}Query`;
56
- return (React.createElement(BaseEditorInput_1.BaseEditorInput, { type: 'main', value: props.value, placeholder: `Create ${queryName}`, onChange: props.onChange, onSelectedFunctionChange: setSelectedFunction, expressionFunctions: expressionFunctions, editorButtons: props.type === 'aggregatedScalar'
54
+ let queryName;
55
+ switch (props.type) {
56
+ case 'boolean':
57
+ queryName = 'Create an Expression that returns true / false';
58
+ break;
59
+ case 'scalar':
60
+ queryName = "Create an Expression that returns a single value of any type";
61
+ break;
62
+ case 'aggregatedScalar':
63
+ queryName = "Create an Expression that evaluates multiple rows and returns a value of any type";
64
+ break;
65
+ case 'cumulativeAggregatedScalar':
66
+ queryName = "Create a Cumulative Expression";
67
+ break;
68
+ case 'quantileAggregatedScalar':
69
+ queryName = "Create a Quantile Expression";
70
+ break;
71
+ }
72
+ return (React.createElement(BaseEditorInput_1.BaseEditorInput, { type: 'main', value: props.value, placeholder: queryName, onChange: props.onChange, onSelectedFunctionChange: setSelectedFunction, expressionFunctions: expressionFunctions, editorButtons: props.type === 'aggregatedScalar'
57
73
  ? editorButtonsAggregatedScalar_1.editorButtonsAggregatedScalar
58
74
  : props.type === 'cumulativeAggregatedScalar'
59
75
  ? editorButtonsCumulativeAggregatedScalar_1.editorButtonsCumulativeAggregatedScalar
@@ -254,7 +254,7 @@ function TreeDropdown(props) {
254
254
  } }, children));
255
255
  } },
256
256
  React.createElement(FieldWrap_1.default, { style: props.fieldStyle, className: "twa:w-full" },
257
- React.createElement(Input_1.default, { type: "text", readOnly: true, "data-name": "Select Values", placeholder: props.placeholder ?? 'Select a value', className: `twa:w-full ${props.clearable ? 'twa:pr-0' : ''}`, value: props.toDisplayValue ? props.toDisplayValue(value) : toDisplayValueDefault(value), onFocus: () => {
257
+ React.createElement(Input_1.default, { type: "text", readOnly: true, "data-name": "Select Values", "aria-expanded": visible, placeholder: props.placeholder ?? 'Select a value', className: `twa:w-full ${props.clearable ? 'twa:pr-0' : ''}`, value: props.toDisplayValue ? props.toDisplayValue(value) : toDisplayValueDefault(value), onFocus: () => {
258
258
  if (!visible) {
259
259
  setVisible(true);
260
260
  }
@@ -1,4 +1,4 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OVERLAY_BASE_Z_INDEX = void 0;
4
- exports.OVERLAY_BASE_Z_INDEX = 9999999;
4
+ exports.OVERLAY_BASE_Z_INDEX = 9_999_999;
@@ -3,21 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useContainerScrollObserver = void 0;
4
4
  const react_1 = require("react");
5
5
  class SectionSelector {
6
+ scrollTop = 0;
7
+ node;
8
+ boxHeight;
9
+ childrenHeights = [];
10
+ maxScrollTop;
6
11
  constructor(node) {
7
- this.scrollTop = 0;
8
- this.childrenHeights = [];
9
- this.select = (scrollTop) => {
10
- this.refreshFromDOM();
11
- const relativeCurrentHeight = (scrollTop * this.boxHeight) / this.maxScrollTop;
12
- let heightSum = 0;
13
- for (let i = 0, len = this.childrenHeights.length; i < len; i++) {
14
- heightSum += this.childrenHeights[i];
15
- if (heightSum > relativeCurrentHeight) {
16
- return i;
17
- }
18
- }
19
- return this.childrenHeights.length - 1;
20
- };
21
12
  this.node = node;
22
13
  this.refreshFromDOM();
23
14
  }
@@ -36,6 +27,18 @@ class SectionSelector {
36
27
  height,
37
28
  };
38
29
  }
30
+ select = (scrollTop) => {
31
+ this.refreshFromDOM();
32
+ const relativeCurrentHeight = (scrollTop * this.boxHeight) / this.maxScrollTop;
33
+ let heightSum = 0;
34
+ for (let i = 0, len = this.childrenHeights.length; i < len; i++) {
35
+ heightSum += this.childrenHeights[i];
36
+ if (heightSum > relativeCurrentHeight) {
37
+ return i;
38
+ }
39
+ }
40
+ return this.childrenHeights.length - 1;
41
+ };
39
42
  }
40
43
  const useContainerScrollObserver = (callback) => {
41
44
  const containerNodeRef = (0, react_1.useRef)(null);
@@ -27,66 +27,32 @@ function getColor(identifier) {
27
27
  return color;
28
28
  }
29
29
  class DevToolsMarker {
30
+ adaptableId;
30
31
  static create(adaptableId) {
31
32
  return new DevToolsMarker(adaptableId);
32
33
  }
34
+ markerDetails = {
35
+ label: '',
36
+ track: '',
37
+ trackGroup: undefined,
38
+ color: undefined,
39
+ details: [],
40
+ tooltip: undefined,
41
+ };
42
+ stopped = false;
33
43
  constructor(adaptableId) {
34
44
  this.adaptableId = adaptableId;
35
- this.markerDetails = {
36
- label: '',
37
- track: '',
38
- trackGroup: undefined,
39
- color: undefined,
40
- details: [],
41
- tooltip: undefined,
42
- };
43
- this.stopped = false;
44
- this.start = (startDetails) => {
45
- if (this.markerDetails.startTs) {
46
- return this;
47
- }
48
- const start = performance.now();
49
- this.markerDetails.details = startDetails?.details ?? [];
50
- this.markerDetails.startTs = start;
51
- return this;
52
- };
53
- this.end = (markerDetails = {}) => {
54
- if (this.stopped) {
55
- return this;
56
- }
57
- this.stopped = true;
58
- const start = markerDetails.startTs ?? this.markerDetails.startTs;
59
- const end = markerDetails.endTs ?? this.markerDetails.endTs ?? performance.now();
60
- let color = markerDetails.color || this.markerDetails.color || '';
61
- const trackGroup = markerDetails.trackGroup ||
62
- this.markerDetails.trackGroup ||
63
- `AdapTable (${this.adaptableId})`;
64
- const details = [...(this.markerDetails.details || []), ...(markerDetails.details || [])];
65
- const tooltip = markerDetails.tooltip || this.markerDetails.tooltip;
66
- const label = markerDetails.label || this.markerDetails.label || 'Unknown';
67
- const track = markerDetails.track || this.markerDetails.track || 'Unknown';
68
- if (!color) {
69
- const identifier = `${trackGroup}:${track}:${label}`;
70
- color = getColor(identifier);
71
- }
72
- performance.measure(label, {
73
- start,
74
- end,
75
- detail: {
76
- devtools: {
77
- dataType: 'track-entry',
78
- trackGroup,
79
- track,
80
- color: color || 'primary',
81
- properties: details.length > 0 ? details.map((detail) => [detail.name, detail.value]) : undefined,
82
- tooltipText: tooltip,
83
- },
84
- },
85
- });
86
- return this;
87
- };
88
45
  this.adaptableId = adaptableId;
89
46
  }
47
+ start = (startDetails) => {
48
+ if (this.markerDetails.startTs) {
49
+ return this;
50
+ }
51
+ const start = performance.now();
52
+ this.markerDetails.details = startDetails?.details ?? [];
53
+ this.markerDetails.startTs = start;
54
+ return this;
55
+ };
90
56
  get startTimestamp() {
91
57
  return this.markerDetails.startTs;
92
58
  }
@@ -136,6 +102,41 @@ class DevToolsMarker {
136
102
  return acc;
137
103
  }, {});
138
104
  }
105
+ end = (markerDetails = {}) => {
106
+ if (this.stopped) {
107
+ return this;
108
+ }
109
+ this.stopped = true;
110
+ const start = markerDetails.startTs ?? this.markerDetails.startTs;
111
+ const end = markerDetails.endTs ?? this.markerDetails.endTs ?? performance.now();
112
+ let color = markerDetails.color || this.markerDetails.color || '';
113
+ const trackGroup = markerDetails.trackGroup ||
114
+ this.markerDetails.trackGroup ||
115
+ `AdapTable (${this.adaptableId})`;
116
+ const details = [...(this.markerDetails.details || []), ...(markerDetails.details || [])];
117
+ const tooltip = markerDetails.tooltip || this.markerDetails.tooltip;
118
+ const label = markerDetails.label || this.markerDetails.label || 'Unknown';
119
+ const track = markerDetails.track || this.markerDetails.track || 'Unknown';
120
+ if (!color) {
121
+ const identifier = `${trackGroup}:${track}:${label}`;
122
+ color = getColor(identifier);
123
+ }
124
+ performance.measure(label, {
125
+ start,
126
+ end,
127
+ detail: {
128
+ devtools: {
129
+ dataType: 'track-entry',
130
+ trackGroup,
131
+ track,
132
+ color: color || 'primary',
133
+ properties: details.length > 0 ? details.map((detail) => [detail.name, detail.value]) : undefined,
134
+ tooltipText: tooltip,
135
+ },
136
+ },
137
+ });
138
+ return this;
139
+ };
139
140
  }
140
141
  exports.DevToolsMarker = DevToolsMarker;
141
142
  function areAdaptableProfileTracksEnabled(adaptableId) {
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: 1769179439939 || Date.now(),
6
- VERSION: "22.0.0-canary.1" || '--current-version--',
5
+ PUBLISH_TIMESTAMP: 1770107080647 || Date.now(),
6
+ VERSION: "22.0.0-canary.3" || '--current-version--',
7
7
  };
@@ -5,20 +5,20 @@ const LMLogger_1 = require("./LMLogger");
5
5
  function x(a, b) { }
6
6
  const xtype = [1, '2'];
7
7
  class LMEmitter extends LMLogger_1.LMLogger {
8
+ destroyed = false;
9
+ suspended = false;
8
10
  constructor(options) {
9
11
  super(options);
10
- this.destroyed = false;
11
- this.suspended = false;
12
- /**
13
- * For each supported event, we have a Set that holds all the callbacks that should be executed
14
- * when the event is triggered.
15
- */
16
- this.eventSets = {
17
- gridLayoutChanged: new Set(),
18
- columnDefsChanged: new Set(),
19
- rowModelUpdated: new Set(),
20
- };
21
12
  }
13
+ /**
14
+ * For each supported event, we have a Set that holds all the callbacks that should be executed
15
+ * when the event is triggered.
16
+ */
17
+ eventSets = {
18
+ gridLayoutChanged: new Set(),
19
+ columnDefsChanged: new Set(),
20
+ rowModelUpdated: new Set(),
21
+ };
22
22
  on(event, callback) {
23
23
  this.eventSets[event].add(callback);
24
24
  return () => {
@@ -7,6 +7,13 @@ const performanceTime = (previousTime) => {
7
7
  return Math.round(previousTime ? now - previousTime : now);
8
8
  };
9
9
  class LMLogger {
10
+ debugger;
11
+ infoLogger;
12
+ successLogger;
13
+ warnLogger;
14
+ errorLogger;
15
+ perfLogger;
16
+ debugId;
10
17
  constructor(options) {
11
18
  this.debugId = options.debugId;
12
19
  this.debugger = (0, infinite_react_1.debug)(this.debugId ? `LayoutManager:${this.debugId}` : 'LayoutManager');
@@ -142,59 +142,20 @@ function getDefaultColumnSizeStateForColDef(colId, colDef, options) {
142
142
  return undefined;
143
143
  }
144
144
  class LayoutManager extends LMEmitter_1.LMEmitter {
145
+ gridApi;
146
+ fieldsToIds = {};
147
+ idsToFields = {};
148
+ idsToColDefs = {};
149
+ initialColumnWidths = {};
150
+ currentLayout = null;
151
+ layoutChangeDebounce;
152
+ _prevFiredLayout;
153
+ setGridOption_default;
154
+ suppressGlobalAgGridEventListener = false;
155
+ supressGlobalAgGridEventTimeoutId = null;
156
+ layoutManagerDebugId;
145
157
  constructor(options) {
146
158
  super({ debugId: options.debugId });
147
- this.fieldsToIds = {};
148
- this.idsToFields = {};
149
- this.idsToColDefs = {};
150
- this.initialColumnWidths = {};
151
- this.currentLayout = null;
152
- this.suppressGlobalAgGridEventListener = false;
153
- this.supressGlobalAgGridEventTimeoutId = null;
154
- this.globalAgGridEventListener = (type, event) => {
155
- if (this.destroyed || this.suppressGlobalAgGridEventListener) {
156
- return;
157
- }
158
- if (type in COLUMN_EVENTS_THAT_TRIGGERS_AUTO_LAYOUT_SAVE) {
159
- if (type === 'columnResized' && !event.finished) {
160
- return;
161
- }
162
- // called while dragging a column from the sidebar, to the row groups panel
163
- if (type === 'displayedColumnsChanged' && event.source === 'uiColumnDragged') {
164
- return;
165
- }
166
- this.warn(`globalAgGridEventListener-${type}`, event);
167
- if (!this.currentLayout) {
168
- const gridLayout = this.getLayoutModelFromGrid();
169
- // if there's no layout set currently in AG Grid
170
- // then emit the gridLayoutChanged event directly
171
- // as we don't have a current layout to compare to
172
- this.onGridLayoutChanged(gridLayout);
173
- return;
174
- }
175
- const gridLayout = this.getLayoutModelFromGrid();
176
- // but if we do have a current layout set
177
- // then only emit the event if the layout has changed
178
- if (!isGridLayoutSame({
179
- layoutFromGrid: gridLayout,
180
- layoutFromModel: this.currentLayout,
181
- })) {
182
- this.onGridLayoutChanged(gridLayout);
183
- return;
184
- }
185
- }
186
- };
187
- this.columnDefsChanged = (colDefs) => {
188
- if (this.suppressGlobalAgGridEventListener) {
189
- return;
190
- }
191
- this.warn('onColumnDefsChanged');
192
- this.indexColumns();
193
- if (this.currentLayout) {
194
- this.applyLayout(this.currentLayout);
195
- }
196
- this.emitSync('columnDefsChanged', colDefs);
197
- };
198
159
  this.layoutChangeDebounce = options.layoutChangeDebounce ?? 0;
199
160
  if (this.layoutChangeDebounce) {
200
161
  this.onGridLayoutChanged = (0, infinite_react_1.debounce)(this.onGridLayoutChanged, {
@@ -249,6 +210,50 @@ class LayoutManager extends LMEmitter_1.LMEmitter {
249
210
  };
250
211
  this.gridApi.setGridOption = setGridOption;
251
212
  }
213
+ globalAgGridEventListener = (type, event) => {
214
+ if (this.destroyed || this.suppressGlobalAgGridEventListener) {
215
+ return;
216
+ }
217
+ if (type in COLUMN_EVENTS_THAT_TRIGGERS_AUTO_LAYOUT_SAVE) {
218
+ if (type === 'columnResized' && !event.finished) {
219
+ return;
220
+ }
221
+ // called while dragging a column from the sidebar, to the row groups panel
222
+ if (type === 'displayedColumnsChanged' && event.source === 'uiColumnDragged') {
223
+ return;
224
+ }
225
+ this.warn(`globalAgGridEventListener-${type}`, event);
226
+ if (!this.currentLayout) {
227
+ const gridLayout = this.getLayoutModelFromGrid();
228
+ // if there's no layout set currently in AG Grid
229
+ // then emit the gridLayoutChanged event directly
230
+ // as we don't have a current layout to compare to
231
+ this.onGridLayoutChanged(gridLayout);
232
+ return;
233
+ }
234
+ const gridLayout = this.getLayoutModelFromGrid();
235
+ // but if we do have a current layout set
236
+ // then only emit the event if the layout has changed
237
+ if (!isGridLayoutSame({
238
+ layoutFromGrid: gridLayout,
239
+ layoutFromModel: this.currentLayout,
240
+ })) {
241
+ this.onGridLayoutChanged(gridLayout);
242
+ return;
243
+ }
244
+ }
245
+ };
246
+ columnDefsChanged = (colDefs) => {
247
+ if (this.suppressGlobalAgGridEventListener) {
248
+ return;
249
+ }
250
+ this.warn('onColumnDefsChanged');
251
+ this.indexColumns();
252
+ if (this.currentLayout) {
253
+ this.applyLayout(this.currentLayout);
254
+ }
255
+ this.emitSync('columnDefsChanged', colDefs);
256
+ };
252
257
  indexColumns() {
253
258
  const colDefs = this.gridApi.getColumnDefs();
254
259
  this.fieldsToIds = {};