@adaptabletools/adaptable-cjs 18.0.0-canary.7 → 18.0.0-canary.9

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 (90) hide show
  1. package/base.css +7 -2
  2. package/base.css.map +1 -1
  3. package/index.css +9 -2
  4. package/index.css.map +1 -1
  5. package/package.json +2 -2
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +8 -1
  7. package/src/AdaptableOptions/AdaptableOptions.d.ts +1 -1
  8. package/src/Api/ConfigApi.d.ts +1 -1
  9. package/src/Api/GridApi.d.ts +4 -0
  10. package/src/Api/Implementation/CommentsApiImpl.d.ts +4 -0
  11. package/src/Api/Implementation/CommentsApiImpl.js +5 -0
  12. package/src/Api/Implementation/ConfigApiImpl.js +6 -3
  13. package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
  14. package/src/Api/Implementation/GridApiImpl.js +13 -0
  15. package/src/Api/Implementation/LayoutApiImpl.d.ts +2 -4
  16. package/src/Api/Implementation/LayoutApiImpl.js +15 -14
  17. package/src/Api/Implementation/NotesApiImpl.d.ts +4 -0
  18. package/src/Api/Implementation/NotesApiImpl.js +5 -0
  19. package/src/Api/Implementation/ScopeApiImpl.d.ts +2 -0
  20. package/src/Api/Implementation/ScopeApiImpl.js +20 -7
  21. package/src/Api/Internal/CalculatedColumnInternalApi.js +1 -1
  22. package/src/Api/Internal/CommentsInternalApi.d.ts +4 -0
  23. package/src/Api/Internal/CommentsInternalApi.js +17 -0
  24. package/src/Api/Internal/FormatColumnInternalApi.js +3 -2
  25. package/src/Api/Internal/FreeTextColumnInternalApi.js +1 -1
  26. package/src/Api/Internal/NotesInternalApi.d.ts +4 -0
  27. package/src/Api/Internal/NotesInternalApi.js +17 -0
  28. package/src/Api/LayoutApi.d.ts +11 -8
  29. package/src/Api/ScopeApi.d.ts +10 -0
  30. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +4 -0
  31. package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
  32. package/src/PredefinedConfig/Common/AdaptableScope.d.ts +4 -1
  33. package/src/PredefinedConfig/Common/RowSummary.d.ts +7 -0
  34. package/src/PredefinedConfig/Common/RowSummary.js +4 -0
  35. package/src/PredefinedConfig/LayoutState.d.ts +5 -0
  36. package/src/PredefinedConfig/SystemState.d.ts +7 -0
  37. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +9 -0
  38. package/src/Redux/ActionsReducers/LayoutRedux.js +22 -1
  39. package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
  40. package/src/Redux/ActionsReducers/SystemRedux.js +16 -3
  41. package/src/Redux/Store/AdaptableStore.js +11 -0
  42. package/src/Redux/Store/Interface/IAdaptableStore.d.ts +2 -2
  43. package/src/Strategy/CellSummaryModule.d.ts +1 -0
  44. package/src/Strategy/CellSummaryModule.js +50 -21
  45. package/src/Strategy/CommentsModule.js +3 -0
  46. package/src/Strategy/LayoutModule.d.ts +7 -0
  47. package/src/Strategy/LayoutModule.js +102 -3
  48. package/src/Strategy/NotesModule.js +3 -4
  49. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +2 -1
  50. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +294 -0
  51. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +1 -1
  52. package/src/Utilities/Extensions/ArrayExtensions.d.ts +2 -0
  53. package/src/Utilities/Extensions/ArrayExtensions.js +6 -1
  54. package/src/Utilities/ObjectFactory.js +6 -6
  55. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +3 -2
  56. package/src/Utilities/Services/AggregatedScalarLiveValue.js +11 -8
  57. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +1 -1
  58. package/src/Utilities/Services/LicenseService/index.js +10 -5
  59. package/src/Utilities/Services/QueryLanguageService.d.ts +1 -1
  60. package/src/Utilities/Services/QueryLanguageService.js +2 -1
  61. package/src/Utilities/Services/SummaryService.d.ts +19 -0
  62. package/src/Utilities/Services/SummaryService.js +33 -0
  63. package/src/View/AdaptableView.js +1 -1
  64. package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
  65. package/src/View/Components/NewScopeComponent.js +32 -1
  66. package/src/View/Components/Popups/AdaptableToaster.js +1 -1
  67. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +7 -7
  68. package/src/View/Layout/TransposedPopup.js +7 -6
  69. package/src/agGrid/ActionColumnRenderer.js +3 -2
  70. package/src/agGrid/AdaptableAgGrid.d.ts +16 -2
  71. package/src/agGrid/AdaptableAgGrid.js +200 -90
  72. package/src/agGrid/AgGridAdapter.d.ts +1 -0
  73. package/src/agGrid/AgGridAdapter.js +8 -0
  74. package/src/agGrid/AgGridColumnAdapter.js +14 -3
  75. package/src/components/ColorPicker/ColorPicker.d.ts +1 -1
  76. package/src/components/Datepicker/index.d.ts +1 -1
  77. package/src/components/Input/index.d.ts +1 -1
  78. package/src/components/List/ListGroupItem/index.d.ts +1 -1
  79. package/src/components/icons/index.js +2 -0
  80. package/src/components/icons/rows.d.ts +3 -0
  81. package/src/components/icons/rows.js +7 -0
  82. package/src/env.js +2 -2
  83. package/src/metamodel/adaptable.metamodel.d.ts +8 -0
  84. package/src/metamodel/adaptable.metamodel.js +18 -0
  85. package/src/parser/src/types.d.ts +5 -0
  86. package/tsconfig.cjs.tsbuildinfo +1 -1
  87. package/src/View/Components/ScopeComponent.d.ts +0 -24
  88. package/src/View/Components/ScopeComponent.js +0 -138
  89. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  90. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -52
@@ -99,6 +99,7 @@ const AdaptableUpgradeHelper_1 = require("../migration/AdaptableUpgradeHelper");
99
99
  const Modal_1 = require("../components/Modal");
100
100
  const AdaptableLoadingScreen_1 = require("../View/Components/Popups/AdaptableLoadingScreen");
101
101
  const react_1 = require("react");
102
+ const SummaryService_1 = require("../Utilities/Services/SummaryService");
102
103
  const RowNodeProto = core_1.RowNode.prototype;
103
104
  const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
104
105
  /**
@@ -142,6 +143,11 @@ const adaptableInstances = {};
142
143
  const publishTimestamp = Number(EnvVars_1.ADAPTABLE_PUBLISH_TIMESTAMP);
143
144
  class AdaptableAgGrid {
144
145
  constructor() {
146
+ /**
147
+ * once layouts are properly handled with the new aggrid methods & events
148
+ * we can remove this hack
149
+ */
150
+ this.previousAgGridColumnState = '';
145
151
  this.columnMinMaxValuesCache = {};
146
152
  this.renderReactRoot = (node, container) => (0, renderReactRoot_1.renderReactRoot)(node, container);
147
153
  /**
@@ -249,81 +255,13 @@ class AdaptableAgGrid {
249
255
  return doInit(adaptableInstance);
250
256
  }
251
257
  }
252
- normaliseLayoutState(state, config) {
253
- var _a, _b, _c;
254
- if (this.shouldCreateDefaultLayout(state, this.adaptableOptions)) {
255
- const defaultLayout = this.createDefaultLayout(state, config.gridOptions.columnDefs);
256
- const layoutState = state.Layout || {};
257
- const availableLayouts = layoutState.Layouts || [];
258
- availableLayouts.push(defaultLayout);
259
- layoutState.Layouts = availableLayouts;
260
- layoutState.CurrentLayout = defaultLayout.Name;
261
- state.Layout = layoutState;
262
- }
263
- else {
264
- const layoutState = state.Layout;
265
- // ensure CurrentLayout is valid
266
- if (!layoutState.CurrentLayout ||
267
- !layoutState.Layouts.find((l) => l.Name === layoutState.CurrentLayout)) {
268
- layoutState.CurrentLayout = (_b = (_a = layoutState.Layouts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Name;
269
- }
270
- }
271
- // for the initial state, we need to dynamically add the ActionRowColumn (if necessary)
272
- // for subsequent layout changes, the `Adaptable.setLayout()` method handles this
273
- // this is a serious code smell, hopefully we will delete `setLayout()` at some point
274
- const actionRowColDefs = this.api.actionRowApi.internalApi.getColDefsForActionRowColumns();
275
- actionRowColDefs.forEach((actionRowColDef) => {
276
- const currentLayout = state.Layout.Layouts.find((l) => l.Name === state.Layout.CurrentLayout);
277
- if (currentLayout && !currentLayout.Columns.includes(actionRowColDef.colId)) {
278
- currentLayout.Columns.push(actionRowColDef.colId);
279
- currentLayout.PinnedColumnsMap = currentLayout.PinnedColumnsMap || {};
280
- currentLayout.PinnedColumnsMap[actionRowColDef.colId] = actionRowColDef.pinned;
281
- }
282
- });
283
- /**
284
- * Viewport mode does not support a few
285
- * features instead of complicating the
286
- * logic where layout is applied, it is easier and
287
- * less error prone to just remove it.
288
- */
289
- if (config.gridOptions.rowModelType === 'viewport') {
290
- (_c = state.Layout.Layouts) === null || _c === void 0 ? void 0 : _c.forEach((layout) => {
291
- if (layout.RowGroupedColumns) {
292
- delete layout.RowGroupedColumns;
293
- }
294
- if (layout.AggregationColumns) {
295
- delete layout.AggregationColumns;
296
- }
297
- if (layout.PivotColumns) {
298
- delete layout.PivotColumns;
299
- delete layout.EnablePivot;
300
- }
301
- });
302
- }
303
- return state;
304
- }
305
- normaliseToolPanelState(state) {
306
- var _a, _b, _c;
307
- if ((_a = state === null || state === void 0 ? void 0 : state.ToolPanel) === null || _a === void 0 ? void 0 : _a.ToolPanels) {
308
- return state;
309
- }
310
- // no predefined config provided, we will display all the panels collapsed (custom & module)
311
- const defaultToolPanels = [];
312
- (_c = (_b = this.adaptableOptions.toolPanelOptions) === null || _b === void 0 ? void 0 : _b.customToolPanels) === null || _c === void 0 ? void 0 : _c.forEach((customToolPanel) => defaultToolPanels.push({ Name: customToolPanel.name }));
313
- Types_1.ALL_TOOL_PANELS.forEach((moduleToolPanel) => defaultToolPanels.push({ Name: moduleToolPanel }));
314
- const toolPanelState = state.ToolPanel || {};
315
- toolPanelState.ToolPanels = defaultToolPanels;
316
- state.ToolPanel = toolPanelState;
317
- return state;
318
- }
319
258
  async _initAdaptableAgGrid(config) {
320
259
  var _a, _b;
321
260
  // Phase 1: Preprocess Adaptable Options
322
261
  this.lifecycleState = 'preprocessOptions';
323
262
  this._rawAdaptableOptions = config.adaptableOptions;
324
263
  if (StringExtensions_1.default.IsNullOrEmptyOrWhiteSpace(this._rawAdaptableOptions.adaptableId)) {
325
- AdaptableLogger_1.AdaptableLogger.consoleErrorBase(`'AdaptableOptions.adaptableId' is a required property and cannot be empty or null`);
326
- this._rawAdaptableOptions.adaptableId = `AdapTable_${Date.now()}`;
264
+ this._rawAdaptableOptions.adaptableId = `adaptable_id_${Date.now()}`;
327
265
  }
328
266
  this.logger = (_a = this.logger) !== null && _a !== void 0 ? _a : new AdaptableLogger_1.AdaptableLogger(this._rawAdaptableOptions.adaptableId);
329
267
  const perfInitAdaptableAgGrid = this.logger.beginPerf(`Adaptable._initAdaptableAgGrid()`);
@@ -390,6 +328,8 @@ class AdaptableAgGrid {
390
328
  }
391
329
  this.forPlugins((plugin) => plugin.afterInitServices(this));
392
330
  this.forPlugins((plugin) => plugin.afterInitModules(this, this.adaptableModules));
331
+ // do this now so it sets module entitlements
332
+ this.EntitlementService.setModulesEntitlements();
393
333
  /**
394
334
  * At this point it's mandatory to have the ALL the Adaptable blocks initialized:
395
335
  * Store, APIs, Services, Modules
@@ -431,8 +371,6 @@ class AdaptableAgGrid {
431
371
  this.temporaryAdaptableStateUpdates();
432
372
  this.redrawBody();
433
373
  this.refreshHeader();
434
- // do this now so it sets module entitlements
435
- this.EntitlementService.setModulesEntitlements();
436
374
  // create the module menu (for use in the dashboard and the toolpanel)
437
375
  // TODO see #create-create-module-menu - make sure it's the same here and there
438
376
  this.ModuleService.createModuleMenus();
@@ -453,15 +391,90 @@ class AdaptableAgGrid {
453
391
  perfInitAdaptableAgGrid.end();
454
392
  return Promise.resolve(this.api);
455
393
  }
456
- applyColumnFiltering() {
457
- if (this.api.columnFilterApi.isQuickFilterAvailable()) {
458
- if (this.api.columnFilterApi.isQuickFilterVisible()) {
459
- this.showQuickFilter();
394
+ normaliseLayoutState(state, config) {
395
+ var _a, _b, _c, _d, _e, _f;
396
+ if (this.shouldCreateDefaultLayout(state, this.adaptableOptions)) {
397
+ const defaultLayout = this.createDefaultLayout(state, config.gridOptions.columnDefs);
398
+ const layoutState = state.Layout || {};
399
+ const availableLayouts = layoutState.Layouts || [];
400
+ availableLayouts.push(defaultLayout);
401
+ layoutState.Layouts = availableLayouts;
402
+ layoutState.CurrentLayout = defaultLayout.Name;
403
+ state.Layout = layoutState;
404
+ }
405
+ else {
406
+ const layoutState = state.Layout;
407
+ // ensure CurrentLayout is valid
408
+ if (!layoutState.CurrentLayout ||
409
+ !layoutState.Layouts.find((l) => l.Name === layoutState.CurrentLayout)) {
410
+ layoutState.CurrentLayout = (_b = (_a = layoutState.Layouts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Name;
460
411
  }
461
- else {
462
- this.hideQuickFilter();
412
+ }
413
+ // for the initial state, we need to dynamically add the ActionRowColumn (if necessary)
414
+ // for subsequent layout changes, the `Adaptable.setLayout()` method handles this
415
+ // this is a serious code smell, hopefully we will delete `setLayout()` at some point
416
+ const hasActionRowButtons = !!((_c = this.adaptableOptions.actionRowOptions) === null || _c === void 0 ? void 0 : _c.actionRowButtons);
417
+ if (hasActionRowButtons) {
418
+ const currentLayout = state.Layout.Layouts.find((l) => l.Name === state.Layout.CurrentLayout);
419
+ if (currentLayout && !currentLayout.Columns.includes(GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS)) {
420
+ currentLayout.Columns.push(GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS);
421
+ const columnPosition = (_e = (_d = this.adaptableOptions.actionRowOptions) === null || _d === void 0 ? void 0 : _d.actionRowButtonOptions) === null || _e === void 0 ? void 0 : _e.position;
422
+ currentLayout.PinnedColumnsMap = currentLayout.PinnedColumnsMap || {};
423
+ currentLayout.PinnedColumnsMap[GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS] =
424
+ columnPosition === 'pinnedRight' ? 'right' : 'left';
463
425
  }
464
426
  }
427
+ /**
428
+ * Viewport mode does not support a few
429
+ * features instead of complicating the
430
+ * logic where layout is applied, it is easier and
431
+ * less error prone to just remove it.
432
+ */
433
+ if (config.gridOptions.rowModelType === 'viewport') {
434
+ (_f = state.Layout.Layouts) === null || _f === void 0 ? void 0 : _f.forEach((layout) => {
435
+ if (layout.RowGroupedColumns) {
436
+ delete layout.RowGroupedColumns;
437
+ }
438
+ if (layout.AggregationColumns) {
439
+ delete layout.AggregationColumns;
440
+ }
441
+ if (layout.PivotColumns) {
442
+ delete layout.PivotColumns;
443
+ delete layout.EnablePivot;
444
+ }
445
+ });
446
+ }
447
+ return state;
448
+ }
449
+ normaliseToolPanelState(state) {
450
+ var _a, _b, _c;
451
+ if ((_a = state === null || state === void 0 ? void 0 : state.ToolPanel) === null || _a === void 0 ? void 0 : _a.ToolPanels) {
452
+ return state;
453
+ }
454
+ // no predefined config provided, we will display all the panels collapsed (custom & module)
455
+ const defaultToolPanels = [];
456
+ (_c = (_b = this.adaptableOptions.toolPanelOptions) === null || _b === void 0 ? void 0 : _b.customToolPanels) === null || _c === void 0 ? void 0 : _c.forEach((customToolPanel) => defaultToolPanels.push({ Name: customToolPanel.name }));
457
+ Types_1.ALL_TOOL_PANELS.forEach((moduleToolPanel) => defaultToolPanels.push({ Name: moduleToolPanel }));
458
+ const toolPanelState = state.ToolPanel || {};
459
+ toolPanelState.ToolPanels = defaultToolPanels;
460
+ state.ToolPanel = toolPanelState;
461
+ return state;
462
+ }
463
+ refreshQuickFilter() {
464
+ const isQuickFilterVisible = this.api.internalApi.getSystemState().IsQuickFilterVisible;
465
+ const isQuickFilterAvailable = this.isQuickFilterAvailable();
466
+ if (isQuickFilterVisible === isQuickFilterAvailable) {
467
+ return;
468
+ }
469
+ if (isQuickFilterAvailable) {
470
+ this.api.columnFilterApi.showQuickFilterBar();
471
+ }
472
+ else {
473
+ this.api.columnFilterApi.hideQuickFilterBar();
474
+ }
475
+ }
476
+ applyColumnFiltering() {
477
+ this.refreshQuickFilter();
465
478
  this.applyGridFiltering();
466
479
  this.agGridAdapter.updateColumnFilterActiveState();
467
480
  }
@@ -704,6 +717,20 @@ class AdaptableAgGrid {
704
717
  return nodeA.key < nodeB.key ? -1 : 1;
705
718
  };
706
719
  });
720
+ /**
721
+ * `autoSizeStrategy`
722
+ *
723
+ * This is needed here, even if we do auto sizing on FIRST_DATA_RENDERED.
724
+ * Sometimes FIRST_DATA_RENDERED is triggered too early and autoSizing doesn't work initially
725
+ * so we need this block
726
+ */
727
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'autoSizeStrategy', (original_autoSizeStrategy) => {
728
+ return this.shouldAutoSizeLayout()
729
+ ? {
730
+ type: 'fitCellContents',
731
+ }
732
+ : original_autoSizeStrategy;
733
+ });
707
734
  }
708
735
  /**
709
736
  * `components`
@@ -852,6 +879,16 @@ class AdaptableAgGrid {
852
879
  return (returnValue === null || returnValue === void 0 ? void 0 : returnValue.length) ? returnValue : undefined;
853
880
  };
854
881
  });
882
+ /**
883
+ * `floatingFiltersHeight`
884
+ */
885
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'floatingFiltersHeight', (original_floatingFiltersHeight) => {
886
+ if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
887
+ // if the default layout is a pivot on, hide the floating filters from the beginning, otherwise we get an annoying flicker
888
+ return 0;
889
+ }
890
+ return original_floatingFiltersHeight;
891
+ });
855
892
  /**
856
893
  * `columnTypes`
857
894
  */
@@ -1237,7 +1274,9 @@ class AdaptableAgGrid {
1237
1274
  if (this.initWithLazyData) {
1238
1275
  this.updateColumnModelAndRefreshGrid();
1239
1276
  this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
1277
+ this._emit('FirstDataRendered');
1240
1278
  }
1279
+ this.autoSizeLayoutIfNeeded();
1241
1280
  }));
1242
1281
  /**
1243
1282
  * Use Case: Entered or Left Pivot Mode
@@ -1439,6 +1478,25 @@ class AdaptableAgGrid {
1439
1478
  },
1440
1479
  };
1441
1480
  }
1481
+ shouldAutoSizeLayout() {
1482
+ const { layoutApi } = this.api;
1483
+ const { layoutOptions } = this.adaptableOptions;
1484
+ const currentLayout = layoutApi.getCurrentLayout();
1485
+ if (currentLayout.ColumnWidthMap && Object.keys(currentLayout.ColumnWidthMap).length > 0) {
1486
+ return;
1487
+ }
1488
+ const autoSize = currentLayout.EnablePivot
1489
+ ? layoutOptions.autoSizeColumnsInPivotLayout
1490
+ : layoutOptions.autoSizeColumnsInLayout;
1491
+ return autoSize;
1492
+ }
1493
+ autoSizeLayoutIfNeeded() {
1494
+ if (this.shouldAutoSizeLayout()) {
1495
+ requestAnimationFrame(() => {
1496
+ this.autoSizeAllColumns();
1497
+ });
1498
+ }
1499
+ }
1442
1500
  performAudit(action, oldState, newState) {
1443
1501
  if (this.isReady) {
1444
1502
  const adaptableStateChangedInfo = {
@@ -1494,6 +1552,7 @@ class AdaptableAgGrid {
1494
1552
  this.AlertService = new AlertService_1.AlertService(this.api);
1495
1553
  this.TeamSharingService = new TeamSharingService_1.TeamSharingService(this.api);
1496
1554
  this.Fdc3Service = new Fdc3Service_1.Fdc3Service(this.api);
1555
+ this.SummaryService = new SummaryService_1.SummaryService(this.api);
1497
1556
  this.CellPopupService = new CellPopupService_1.CellPopupService(this.api);
1498
1557
  this.RowEditService = new RowEditService_1.RowEditService(this.api);
1499
1558
  this.MetamodelService = new MetamodelService_1.MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
@@ -1754,7 +1813,10 @@ class AdaptableAgGrid {
1754
1813
  }
1755
1814
  return rawValue;
1756
1815
  }
1757
- updateColumnModelAndRefreshGrid() {
1816
+ updateColumnModelAndRefreshGrid(config) {
1817
+ if (!(config === null || config === void 0 ? void 0 : config.skipColDefsRefresh)) {
1818
+ this.refreshColDefs();
1819
+ }
1758
1820
  this.deriveAdaptableColumnStateFromAgGrid();
1759
1821
  this.agGridColumnAdapter.setupColumns();
1760
1822
  this.redrawBody();
@@ -2867,6 +2929,7 @@ class AdaptableAgGrid {
2867
2929
  else {
2868
2930
  (_b = this.agGridAdapter.getAgGridApi()) === null || _b === void 0 ? void 0 : _b.destroy();
2869
2931
  }
2932
+ this.previousAgGridColumnState = '';
2870
2933
  const gridContainerElement = this.getAgGridContainerElement();
2871
2934
  if (gridContainerElement) {
2872
2935
  gridContainerElement.removeEventListener('keydown', this.agGridListenerKeydown);
@@ -3032,6 +3095,10 @@ class AdaptableAgGrid {
3032
3095
  // });
3033
3096
  }
3034
3097
  isQuickFilterAvailable() {
3098
+ if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
3099
+ // hide completely the quick filter if pivot is enabled
3100
+ return false;
3101
+ }
3035
3102
  return this.hasFloatingFilterOnAtLeastOneColumn(this.agGridAdapter.getAgGridApi().getColumnDefs());
3036
3103
  }
3037
3104
  hasFloatingFilterOnAtLeastOneColumn(columnDefs) {
@@ -3256,18 +3323,20 @@ class AdaptableAgGrid {
3256
3323
  requestAnimationFrame(() => {
3257
3324
  this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3258
3325
  });
3259
- //but if it's also the first time the grid is loading
3260
- //it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
3261
- setTimeout(() => {
3262
- this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3263
- setTimeout(() => {
3264
- this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3265
- }, 200);
3266
- }, 100);
3326
+ // //but if it's also the first time the grid is loading
3327
+ // //it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
3328
+ // setTimeout(() => {
3329
+ // this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3330
+ // setTimeout(() => {
3331
+ // this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3332
+ // }, 200);
3333
+ // }, 100);
3267
3334
  }
3268
- else if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
3269
- colsToAutoSizeArray.length) {
3270
- this.agGridAdapter.getAgGridApi().autoSizeColumns(colsToAutoSizeArray);
3335
+ else {
3336
+ if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
3337
+ colsToAutoSizeArray.length) {
3338
+ this.agGridAdapter.getAgGridApi().autoSizeColumns(colsToAutoSizeArray);
3339
+ }
3271
3340
  }
3272
3341
  this.forPlugins((plugin) => {
3273
3342
  if (plugin.afterSetLayout) {
@@ -3616,6 +3685,21 @@ class AdaptableAgGrid {
3616
3685
  */
3617
3686
  updateLayoutFromGrid() {
3618
3687
  var _a, _b;
3688
+ const agGridApi = this.agGridAdapter.getAgGridApi();
3689
+ const columnState = agGridApi.getColumnState();
3690
+ try {
3691
+ const stringifiedState = JSON.stringify(columnState);
3692
+ if (stringifiedState === this.previousAgGridColumnState) {
3693
+ // same grid column state as a previous,
3694
+ // so no need to update, as the layout has already been updated
3695
+ // for this grid column state
3696
+ return;
3697
+ }
3698
+ this.previousAgGridColumnState = stringifiedState;
3699
+ }
3700
+ catch (ex) {
3701
+ this.logger.consoleError('Error stringifying column state', ex);
3702
+ }
3619
3703
  const currentLayout = this.api.layoutApi.getCurrentLayout();
3620
3704
  if (currentLayout.IsReadOnly) {
3621
3705
  // reaply the layout so the grid is reverted
@@ -3627,7 +3711,6 @@ class AdaptableAgGrid {
3627
3711
  const columnFlexes = {};
3628
3712
  const pinnedColumns = {};
3629
3713
  const columnSorts = [];
3630
- const columnState = this.agGridAdapter.getAgGridApi().getColumnState();
3631
3714
  let groupedColumns = [...new Array(columnState.length)];
3632
3715
  let pivotedColumns = [...new Array(columnState.length)];
3633
3716
  const pivotColumns = [];
@@ -3820,5 +3903,32 @@ class AdaptableAgGrid {
3820
3903
  };
3821
3904
  });
3822
3905
  }
3906
+ setPinnedRows(pinnedRows, location) {
3907
+ const gridApi = this.agGridAdapter.getAgGridApi();
3908
+ switch (location) {
3909
+ case 'top':
3910
+ gridApi.setGridOption('pinnedTopRowData', pinnedRows);
3911
+ break;
3912
+ case 'bottom':
3913
+ gridApi.setGridOption('pinnedBottomRowData', pinnedRows);
3914
+ break;
3915
+ }
3916
+ }
3917
+ setupRowSummaries() {
3918
+ var _a;
3919
+ const rowSummaries = (_a = this.api.internalApi.getAdaptableState().System.RowSummary.rowSummaries) !== null && _a !== void 0 ? _a : [];
3920
+ const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
3921
+ const row = summaryRow.RowData;
3922
+ if (summaryRow.Position === 'Bottom' || !summaryRow.Position) {
3923
+ acc.bottom.push(row);
3924
+ }
3925
+ else {
3926
+ acc.top.push(row);
3927
+ }
3928
+ return acc;
3929
+ }, { top: [], bottom: [] });
3930
+ this.setPinnedRows(top, 'top');
3931
+ this.setPinnedRows(bottom, 'bottom');
3932
+ }
3823
3933
  }
3824
3934
  exports.AdaptableAgGrid = AdaptableAgGrid;
@@ -48,6 +48,7 @@ export declare class AgGridAdapter {
48
48
  private isColumnExportable;
49
49
  private isColumnHideable;
50
50
  private isColumnFilterable;
51
+ private getColumnTypes;
51
52
  private getColumnPinnedPosition;
52
53
  private isColumnFixed;
53
54
  private isColumnRowGrouped;
@@ -276,6 +276,7 @@ class AgGridAdapter {
276
276
  isGrouped: this.isColumnRowGrouped(colDef),
277
277
  isFixed: this.isColumnFixed(colDef),
278
278
  pinned: this.getColumnPinnedPosition(colDef),
279
+ columnTypes: this.getColumnTypes(colDef),
279
280
  isExcludedFromQuickSearch: false,
280
281
  isSparkline: this.isColumnSparkline(colDef),
281
282
  };
@@ -494,6 +495,13 @@ class AgGridAdapter {
494
495
  }
495
496
  return colDef != null && colDef.filter != null && colDef.filter != false;
496
497
  }
498
+ getColumnTypes(colDef) {
499
+ if (!colDef.type) {
500
+ return [];
501
+ }
502
+ const allTypes = typeof colDef.type === 'string' ? [colDef.type] : colDef.type;
503
+ return allTypes;
504
+ }
497
505
  getColumnPinnedPosition(colDef) {
498
506
  return colDef.pinned
499
507
  ? colDef.pinned === 'left' || colDef.pinned === true
@@ -15,6 +15,7 @@ const UIHelper_1 = tslib_1.__importDefault(require("../View/UIHelper"));
15
15
  const PercentBarRenderer_1 = require("./PercentBarRenderer");
16
16
  const BadgeRenderer_1 = require("./BadgeRenderer");
17
17
  const Helper_1 = tslib_1.__importDefault(require("../Utilities/Helpers/Helper"));
18
+ const RowSummary_1 = require("../PredefinedConfig/Common/RowSummary");
18
19
  class AgGridColumnAdapter {
19
20
  constructor(adaptableInstance) {
20
21
  this.adaptableInstance = adaptableInstance;
@@ -417,10 +418,14 @@ class AgGridColumnAdapter {
417
418
  return userValue;
418
419
  }
419
420
  const cellEditableFn = this.adaptableOptions.editOptions.isCellEditable;
420
- if (!cellEditableFn) {
421
- return userValue;
422
- }
423
421
  const editableCallback = (params) => {
422
+ // Adaptable Row Summarie rows are not editable
423
+ if (params.node.data[RowSummary_1.ROW_SUMMARY_ROW_ID]) {
424
+ return false;
425
+ }
426
+ if (!cellEditableFn) {
427
+ return typeof userValue === 'function' ? userValue(params) : userValue;
428
+ }
424
429
  const gridCell = this.adaptableInstance.getGridCellFromRowNode(params.node, params.column.getColId());
425
430
  const cellEditableContext = {
426
431
  gridCell,
@@ -605,6 +610,9 @@ class AgGridColumnAdapter {
605
610
  if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Notes')) {
606
611
  return;
607
612
  }
613
+ if (!this.adaptableApi.notesApi.internalApi.areNotesAvailable()) {
614
+ return;
615
+ }
608
616
  const cellPosition = {
609
617
  PrimaryKeyValue: gridCell.primaryKeyValue,
610
618
  ColumnId: gridCell.column.columnId,
@@ -619,6 +627,9 @@ class AgGridColumnAdapter {
619
627
  if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Comments')) {
620
628
  return;
621
629
  }
630
+ if (!this.adaptableApi.commentApi.internalApi.areCommentsAvailable()) {
631
+ return;
632
+ }
622
633
  const position = {
623
634
  PrimaryKeyValue: gridCell.primaryKeyValue,
624
635
  ColumnId: gridCell.column.columnId,
@@ -8,4 +8,4 @@ export type ColorPickerProps = Omit<HTMLProps<HTMLInputElement>, 'onChange'> & {
8
8
  value: string;
9
9
  includeAlpha?: boolean;
10
10
  } & Omit<BoxProps, 'onChange'>;
11
- export declare const ColorPicker: React.ForwardRefExoticComponent<Pick<ColorPickerProps, "api" | "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode" | "includeAlpha"> & React.RefAttributes<unknown>>;
11
+ export declare const ColorPicker: React.ForwardRefExoticComponent<Pick<ColorPickerProps, "api" | "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode" | "includeAlpha"> & React.RefAttributes<unknown>>;
@@ -15,4 +15,4 @@ export type DatepickerProps = Omit<BoxProps, 'value' | 'onChange' | 'defaultValu
15
15
  showWeekNumber?: boolean;
16
16
  showOutsideDays?: boolean;
17
17
  };
18
- export declare const Datepicker: React.ForwardRefExoticComponent<Pick<DatepickerProps, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode" | "showClearButton" | "onHide" | "datepickerButtons" | "dateProps" | "showWeekNumber" | "showOutsideDays"> & React.RefAttributes<HTMLInputElement>>;
18
+ export declare const Datepicker: React.ForwardRefExoticComponent<Pick<DatepickerProps, "children" | "size" | "name" | "tabIndex" | "color" | "style" | "cite" | "data" | "form" | "label" | "p" | "slot" | "span" | "summary" | "title" | "pattern" | "start" | "hidden" | "content" | "default" | "flex" | "wrap" | "open" | "padding" | "multiple" | "disabled" | "checked" | "download" | "list" | "order" | "target" | "rows" | "src" | "className" | "onTransitionEnd" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEndCapture" | "opacity" | "value" | "key" | "sizes" | "variant" | "tx" | "as" | "css" | "m" | "margin" | "mt" | "marginTop" | "mr" | "marginRight" | "mb" | "marginBottom" | "ml" | "marginLeft" | "mx" | "marginX" | "my" | "marginY" | "pt" | "paddingTop" | "pr" | "paddingRight" | "pb" | "paddingBottom" | "pl" | "paddingLeft" | "px" | "paddingX" | "py" | "paddingY" | "width" | "height" | "minWidth" | "minHeight" | "maxWidth" | "maxHeight" | "display" | "verticalAlign" | "overflow" | "overflowX" | "overflowY" | "fontFamily" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "fontStyle" | "textAlign" | "bg" | "backgroundColor" | "alignItems" | "alignContent" | "justifyItems" | "justifyContent" | "flexWrap" | "flexDirection" | "flexGrow" | "flexShrink" | "flexBasis" | "justifySelf" | "alignSelf" | "sx" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "classID" | "cols" | "colSpan" | "controls" | "coords" | "crossOrigin" | "dateTime" | "defer" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "max" | "maxLength" | "media" | "mediaGroup" | "method" | "min" | "minLength" | "muted" | "nonce" | "noValidate" | "optimum" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "srcDoc" | "srcLang" | "srcSet" | "step" | "type" | "useMap" | "wmode" | "showClearButton" | "onHide" | "datepickerButtons" | "dateProps" | "showWeekNumber" | "showOutsideDays"> & React.RefAttributes<HTMLInputElement>>;