@adaptabletools/adaptable 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 +13 -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 +13 -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 +1 -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 +20 -0
  39. package/src/Redux/ActionsReducers/SystemRedux.d.ts +5 -0
  40. package/src/Redux/ActionsReducers/SystemRedux.js +13 -1
  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 +4 -0
  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 +29 -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 +201 -91
  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 +4 -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.esm.tsbuildinfo +1 -1
  87. package/src/View/Components/ScopeComponent.d.ts +0 -24
  88. package/src/View/Components/ScopeComponent.js +0 -133
  89. package/src/View/Export/Wizard/ReportScopeWizard.d.ts +0 -17
  90. package/src/View/Export/Wizard/ReportScopeWizard.js +0 -47
@@ -8,7 +8,7 @@ import Emitter from '../Utilities/Emitter';
8
8
  import { applyDefaultAdaptableOptions } from './defaultAdaptableOptions';
9
9
  import { AgGridAdapter } from './AgGridAdapter';
10
10
  import * as GeneralConstants from '../Utilities/Constants/GeneralConstants';
11
- import { AB_FDC3_COLUMN, AB_SPECIAL_COLUMN, AUTOGENERATED_PK_COLUMN, BLANK_DISTINCT_COLUMN_VALUE, DARK_THEME, DEFAULT_LAYOUT, GROUP_PATH_SEPARATOR, HALF_SECOND, LIGHT_THEME, } from '../Utilities/Constants/GeneralConstants';
11
+ import { AB_FDC3_COLUMN, AB_SPECIAL_COLUMN, ADAPTABLE_ROW_ACTION_BUTTONS, AUTOGENERATED_PK_COLUMN, BLANK_DISTINCT_COLUMN_VALUE, DARK_THEME, DEFAULT_LAYOUT, GROUP_PATH_SEPARATOR, HALF_SECOND, LIGHT_THEME, } from '../Utilities/Constants/GeneralConstants';
12
12
  import { DataService } from '../Utilities/Services/DataService';
13
13
  import { AdaptableStore } from '../Redux/Store/AdaptableStore';
14
14
  import { AdaptableApiImpl } from '../Api/Implementation/AdaptableApiImpl';
@@ -95,6 +95,7 @@ import { AdaptableUpgradeHelper } from '../migration/AdaptableUpgradeHelper';
95
95
  import { ensurePortalElement } from '../components/Modal';
96
96
  import { AdaptableLoadingScreen } from '../View/Components/Popups/AdaptableLoadingScreen';
97
97
  import { createElement } from 'react';
98
+ import { SummaryService } from '../Utilities/Services/SummaryService';
98
99
  const RowNodeProto = RowNode.prototype;
99
100
  const RowNode_dispatchLocalEvent = RowNodeProto.dispatchLocalEvent;
100
101
  /**
@@ -138,6 +139,11 @@ const adaptableInstances = {};
138
139
  const publishTimestamp = Number(ADAPTABLE_PUBLISH_TIMESTAMP);
139
140
  export class AdaptableAgGrid {
140
141
  constructor() {
142
+ /**
143
+ * once layouts are properly handled with the new aggrid methods & events
144
+ * we can remove this hack
145
+ */
146
+ this.previousAgGridColumnState = '';
141
147
  this.columnMinMaxValuesCache = {};
142
148
  this.renderReactRoot = (node, container) => defaultRenderReactRoot(node, container);
143
149
  /**
@@ -245,81 +251,13 @@ export class AdaptableAgGrid {
245
251
  return doInit(adaptableInstance);
246
252
  }
247
253
  }
248
- normaliseLayoutState(state, config) {
249
- var _a, _b, _c;
250
- if (this.shouldCreateDefaultLayout(state, this.adaptableOptions)) {
251
- const defaultLayout = this.createDefaultLayout(state, config.gridOptions.columnDefs);
252
- const layoutState = state.Layout || {};
253
- const availableLayouts = layoutState.Layouts || [];
254
- availableLayouts.push(defaultLayout);
255
- layoutState.Layouts = availableLayouts;
256
- layoutState.CurrentLayout = defaultLayout.Name;
257
- state.Layout = layoutState;
258
- }
259
- else {
260
- const layoutState = state.Layout;
261
- // ensure CurrentLayout is valid
262
- if (!layoutState.CurrentLayout ||
263
- !layoutState.Layouts.find((l) => l.Name === layoutState.CurrentLayout)) {
264
- layoutState.CurrentLayout = (_b = (_a = layoutState.Layouts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Name;
265
- }
266
- }
267
- // for the initial state, we need to dynamically add the ActionRowColumn (if necessary)
268
- // for subsequent layout changes, the `Adaptable.setLayout()` method handles this
269
- // this is a serious code smell, hopefully we will delete `setLayout()` at some point
270
- const actionRowColDefs = this.api.actionRowApi.internalApi.getColDefsForActionRowColumns();
271
- actionRowColDefs.forEach((actionRowColDef) => {
272
- const currentLayout = state.Layout.Layouts.find((l) => l.Name === state.Layout.CurrentLayout);
273
- if (currentLayout && !currentLayout.Columns.includes(actionRowColDef.colId)) {
274
- currentLayout.Columns.push(actionRowColDef.colId);
275
- currentLayout.PinnedColumnsMap = currentLayout.PinnedColumnsMap || {};
276
- currentLayout.PinnedColumnsMap[actionRowColDef.colId] = actionRowColDef.pinned;
277
- }
278
- });
279
- /**
280
- * Viewport mode does not support a few
281
- * features instead of complicating the
282
- * logic where layout is applied, it is easier and
283
- * less error prone to just remove it.
284
- */
285
- if (config.gridOptions.rowModelType === 'viewport') {
286
- (_c = state.Layout.Layouts) === null || _c === void 0 ? void 0 : _c.forEach((layout) => {
287
- if (layout.RowGroupedColumns) {
288
- delete layout.RowGroupedColumns;
289
- }
290
- if (layout.AggregationColumns) {
291
- delete layout.AggregationColumns;
292
- }
293
- if (layout.PivotColumns) {
294
- delete layout.PivotColumns;
295
- delete layout.EnablePivot;
296
- }
297
- });
298
- }
299
- return state;
300
- }
301
- normaliseToolPanelState(state) {
302
- var _a, _b, _c;
303
- if ((_a = state === null || state === void 0 ? void 0 : state.ToolPanel) === null || _a === void 0 ? void 0 : _a.ToolPanels) {
304
- return state;
305
- }
306
- // no predefined config provided, we will display all the panels collapsed (custom & module)
307
- const defaultToolPanels = [];
308
- (_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 }));
309
- ALL_TOOL_PANELS.forEach((moduleToolPanel) => defaultToolPanels.push({ Name: moduleToolPanel }));
310
- const toolPanelState = state.ToolPanel || {};
311
- toolPanelState.ToolPanels = defaultToolPanels;
312
- state.ToolPanel = toolPanelState;
313
- return state;
314
- }
315
254
  async _initAdaptableAgGrid(config) {
316
255
  var _a, _b;
317
256
  // Phase 1: Preprocess Adaptable Options
318
257
  this.lifecycleState = 'preprocessOptions';
319
258
  this._rawAdaptableOptions = config.adaptableOptions;
320
259
  if (StringExtensions.IsNullOrEmptyOrWhiteSpace(this._rawAdaptableOptions.adaptableId)) {
321
- AdaptableLogger.consoleErrorBase(`'AdaptableOptions.adaptableId' is a required property and cannot be empty or null`);
322
- this._rawAdaptableOptions.adaptableId = `AdapTable_${Date.now()}`;
260
+ this._rawAdaptableOptions.adaptableId = `adaptable_id_${Date.now()}`;
323
261
  }
324
262
  this.logger = (_a = this.logger) !== null && _a !== void 0 ? _a : new AdaptableLogger(this._rawAdaptableOptions.adaptableId);
325
263
  const perfInitAdaptableAgGrid = this.logger.beginPerf(`Adaptable._initAdaptableAgGrid()`);
@@ -386,6 +324,8 @@ export class AdaptableAgGrid {
386
324
  }
387
325
  this.forPlugins((plugin) => plugin.afterInitServices(this));
388
326
  this.forPlugins((plugin) => plugin.afterInitModules(this, this.adaptableModules));
327
+ // do this now so it sets module entitlements
328
+ this.EntitlementService.setModulesEntitlements();
389
329
  /**
390
330
  * At this point it's mandatory to have the ALL the Adaptable blocks initialized:
391
331
  * Store, APIs, Services, Modules
@@ -427,8 +367,6 @@ export class AdaptableAgGrid {
427
367
  this.temporaryAdaptableStateUpdates();
428
368
  this.redrawBody();
429
369
  this.refreshHeader();
430
- // do this now so it sets module entitlements
431
- this.EntitlementService.setModulesEntitlements();
432
370
  // create the module menu (for use in the dashboard and the toolpanel)
433
371
  // TODO see #create-create-module-menu - make sure it's the same here and there
434
372
  this.ModuleService.createModuleMenus();
@@ -449,15 +387,90 @@ export class AdaptableAgGrid {
449
387
  perfInitAdaptableAgGrid.end();
450
388
  return Promise.resolve(this.api);
451
389
  }
452
- applyColumnFiltering() {
453
- if (this.api.columnFilterApi.isQuickFilterAvailable()) {
454
- if (this.api.columnFilterApi.isQuickFilterVisible()) {
455
- this.showQuickFilter();
390
+ normaliseLayoutState(state, config) {
391
+ var _a, _b, _c, _d, _e, _f;
392
+ if (this.shouldCreateDefaultLayout(state, this.adaptableOptions)) {
393
+ const defaultLayout = this.createDefaultLayout(state, config.gridOptions.columnDefs);
394
+ const layoutState = state.Layout || {};
395
+ const availableLayouts = layoutState.Layouts || [];
396
+ availableLayouts.push(defaultLayout);
397
+ layoutState.Layouts = availableLayouts;
398
+ layoutState.CurrentLayout = defaultLayout.Name;
399
+ state.Layout = layoutState;
400
+ }
401
+ else {
402
+ const layoutState = state.Layout;
403
+ // ensure CurrentLayout is valid
404
+ if (!layoutState.CurrentLayout ||
405
+ !layoutState.Layouts.find((l) => l.Name === layoutState.CurrentLayout)) {
406
+ layoutState.CurrentLayout = (_b = (_a = layoutState.Layouts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.Name;
456
407
  }
457
- else {
458
- this.hideQuickFilter();
408
+ }
409
+ // for the initial state, we need to dynamically add the ActionRowColumn (if necessary)
410
+ // for subsequent layout changes, the `Adaptable.setLayout()` method handles this
411
+ // this is a serious code smell, hopefully we will delete `setLayout()` at some point
412
+ const hasActionRowButtons = !!((_c = this.adaptableOptions.actionRowOptions) === null || _c === void 0 ? void 0 : _c.actionRowButtons);
413
+ if (hasActionRowButtons) {
414
+ const currentLayout = state.Layout.Layouts.find((l) => l.Name === state.Layout.CurrentLayout);
415
+ if (currentLayout && !currentLayout.Columns.includes(ADAPTABLE_ROW_ACTION_BUTTONS)) {
416
+ currentLayout.Columns.push(ADAPTABLE_ROW_ACTION_BUTTONS);
417
+ const columnPosition = (_e = (_d = this.adaptableOptions.actionRowOptions) === null || _d === void 0 ? void 0 : _d.actionRowButtonOptions) === null || _e === void 0 ? void 0 : _e.position;
418
+ currentLayout.PinnedColumnsMap = currentLayout.PinnedColumnsMap || {};
419
+ currentLayout.PinnedColumnsMap[ADAPTABLE_ROW_ACTION_BUTTONS] =
420
+ columnPosition === 'pinnedRight' ? 'right' : 'left';
459
421
  }
460
422
  }
423
+ /**
424
+ * Viewport mode does not support a few
425
+ * features instead of complicating the
426
+ * logic where layout is applied, it is easier and
427
+ * less error prone to just remove it.
428
+ */
429
+ if (config.gridOptions.rowModelType === 'viewport') {
430
+ (_f = state.Layout.Layouts) === null || _f === void 0 ? void 0 : _f.forEach((layout) => {
431
+ if (layout.RowGroupedColumns) {
432
+ delete layout.RowGroupedColumns;
433
+ }
434
+ if (layout.AggregationColumns) {
435
+ delete layout.AggregationColumns;
436
+ }
437
+ if (layout.PivotColumns) {
438
+ delete layout.PivotColumns;
439
+ delete layout.EnablePivot;
440
+ }
441
+ });
442
+ }
443
+ return state;
444
+ }
445
+ normaliseToolPanelState(state) {
446
+ var _a, _b, _c;
447
+ if ((_a = state === null || state === void 0 ? void 0 : state.ToolPanel) === null || _a === void 0 ? void 0 : _a.ToolPanels) {
448
+ return state;
449
+ }
450
+ // no predefined config provided, we will display all the panels collapsed (custom & module)
451
+ const defaultToolPanels = [];
452
+ (_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 }));
453
+ ALL_TOOL_PANELS.forEach((moduleToolPanel) => defaultToolPanels.push({ Name: moduleToolPanel }));
454
+ const toolPanelState = state.ToolPanel || {};
455
+ toolPanelState.ToolPanels = defaultToolPanels;
456
+ state.ToolPanel = toolPanelState;
457
+ return state;
458
+ }
459
+ refreshQuickFilter() {
460
+ const isQuickFilterVisible = this.api.internalApi.getSystemState().IsQuickFilterVisible;
461
+ const isQuickFilterAvailable = this.isQuickFilterAvailable();
462
+ if (isQuickFilterVisible === isQuickFilterAvailable) {
463
+ return;
464
+ }
465
+ if (isQuickFilterAvailable) {
466
+ this.api.columnFilterApi.showQuickFilterBar();
467
+ }
468
+ else {
469
+ this.api.columnFilterApi.hideQuickFilterBar();
470
+ }
471
+ }
472
+ applyColumnFiltering() {
473
+ this.refreshQuickFilter();
461
474
  this.applyGridFiltering();
462
475
  this.agGridAdapter.updateColumnFilterActiveState();
463
476
  }
@@ -700,6 +713,20 @@ export class AdaptableAgGrid {
700
713
  return nodeA.key < nodeB.key ? -1 : 1;
701
714
  };
702
715
  });
716
+ /**
717
+ * `autoSizeStrategy`
718
+ *
719
+ * This is needed here, even if we do auto sizing on FIRST_DATA_RENDERED.
720
+ * Sometimes FIRST_DATA_RENDERED is triggered too early and autoSizing doesn't work initially
721
+ * so we need this block
722
+ */
723
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'autoSizeStrategy', (original_autoSizeStrategy) => {
724
+ return this.shouldAutoSizeLayout()
725
+ ? {
726
+ type: 'fitCellContents',
727
+ }
728
+ : original_autoSizeStrategy;
729
+ });
703
730
  }
704
731
  /**
705
732
  * `components`
@@ -848,6 +875,16 @@ export class AdaptableAgGrid {
848
875
  return (returnValue === null || returnValue === void 0 ? void 0 : returnValue.length) ? returnValue : undefined;
849
876
  };
850
877
  });
878
+ /**
879
+ * `floatingFiltersHeight`
880
+ */
881
+ this.agGridOptionsService.setGridOptionsProperty(gridOptions, 'floatingFiltersHeight', (original_floatingFiltersHeight) => {
882
+ if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
883
+ // if the default layout is a pivot on, hide the floating filters from the beginning, otherwise we get an annoying flicker
884
+ return 0;
885
+ }
886
+ return original_floatingFiltersHeight;
887
+ });
851
888
  /**
852
889
  * `columnTypes`
853
890
  */
@@ -1233,7 +1270,9 @@ export class AdaptableAgGrid {
1233
1270
  if (this.initWithLazyData) {
1234
1271
  this.updateColumnModelAndRefreshGrid();
1235
1272
  this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
1273
+ this._emit('FirstDataRendered');
1236
1274
  }
1275
+ this.autoSizeLayoutIfNeeded();
1237
1276
  }));
1238
1277
  /**
1239
1278
  * Use Case: Entered or Left Pivot Mode
@@ -1435,6 +1474,25 @@ export class AdaptableAgGrid {
1435
1474
  },
1436
1475
  };
1437
1476
  }
1477
+ shouldAutoSizeLayout() {
1478
+ const { layoutApi } = this.api;
1479
+ const { layoutOptions } = this.adaptableOptions;
1480
+ const currentLayout = layoutApi.getCurrentLayout();
1481
+ if (currentLayout.ColumnWidthMap && Object.keys(currentLayout.ColumnWidthMap).length > 0) {
1482
+ return;
1483
+ }
1484
+ const autoSize = currentLayout.EnablePivot
1485
+ ? layoutOptions.autoSizeColumnsInPivotLayout
1486
+ : layoutOptions.autoSizeColumnsInLayout;
1487
+ return autoSize;
1488
+ }
1489
+ autoSizeLayoutIfNeeded() {
1490
+ if (this.shouldAutoSizeLayout()) {
1491
+ requestAnimationFrame(() => {
1492
+ this.autoSizeAllColumns();
1493
+ });
1494
+ }
1495
+ }
1438
1496
  performAudit(action, oldState, newState) {
1439
1497
  if (this.isReady) {
1440
1498
  const adaptableStateChangedInfo = {
@@ -1490,6 +1548,7 @@ export class AdaptableAgGrid {
1490
1548
  this.AlertService = new AlertService(this.api);
1491
1549
  this.TeamSharingService = new TeamSharingService(this.api);
1492
1550
  this.Fdc3Service = new Fdc3Service(this.api);
1551
+ this.SummaryService = new SummaryService(this.api);
1493
1552
  this.CellPopupService = new CellPopupService(this.api);
1494
1553
  this.RowEditService = new RowEditService(this.api);
1495
1554
  this.MetamodelService = new MetamodelService(() => this.api.optionsApi.getAdaptableOptions(), true);
@@ -1750,7 +1809,10 @@ export class AdaptableAgGrid {
1750
1809
  }
1751
1810
  return rawValue;
1752
1811
  }
1753
- updateColumnModelAndRefreshGrid() {
1812
+ updateColumnModelAndRefreshGrid(config) {
1813
+ if (!(config === null || config === void 0 ? void 0 : config.skipColDefsRefresh)) {
1814
+ this.refreshColDefs();
1815
+ }
1754
1816
  this.deriveAdaptableColumnStateFromAgGrid();
1755
1817
  this.agGridColumnAdapter.setupColumns();
1756
1818
  this.redrawBody();
@@ -2863,6 +2925,7 @@ export class AdaptableAgGrid {
2863
2925
  else {
2864
2926
  (_b = this.agGridAdapter.getAgGridApi()) === null || _b === void 0 ? void 0 : _b.destroy();
2865
2927
  }
2928
+ this.previousAgGridColumnState = '';
2866
2929
  const gridContainerElement = this.getAgGridContainerElement();
2867
2930
  if (gridContainerElement) {
2868
2931
  gridContainerElement.removeEventListener('keydown', this.agGridListenerKeydown);
@@ -3028,6 +3091,10 @@ export class AdaptableAgGrid {
3028
3091
  // });
3029
3092
  }
3030
3093
  isQuickFilterAvailable() {
3094
+ if (this.api.layoutApi.getCurrentLayout().EnablePivot) {
3095
+ // hide completely the quick filter if pivot is enabled
3096
+ return false;
3097
+ }
3031
3098
  return this.hasFloatingFilterOnAtLeastOneColumn(this.agGridAdapter.getAgGridApi().getColumnDefs());
3032
3099
  }
3033
3100
  hasFloatingFilterOnAtLeastOneColumn(columnDefs) {
@@ -3252,18 +3319,20 @@ export class AdaptableAgGrid {
3252
3319
  requestAnimationFrame(() => {
3253
3320
  this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3254
3321
  });
3255
- //but if it's also the first time the grid is loading
3256
- //it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
3257
- setTimeout(() => {
3258
- this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3259
- setTimeout(() => {
3260
- this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3261
- }, 200);
3262
- }, 100);
3322
+ // //but if it's also the first time the grid is loading
3323
+ // //it's not timely enough the above call, so we keep trying... I know it's ugly, we need to find a better way
3324
+ // setTimeout(() => {
3325
+ // this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3326
+ // setTimeout(() => {
3327
+ // this.agGridAdapter.getAgGridApi().autoSizeAllColumns();
3328
+ // }, 200);
3329
+ // }, 100);
3263
3330
  }
3264
- else if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
3265
- colsToAutoSizeArray.length) {
3266
- this.agGridAdapter.getAgGridApi().autoSizeColumns(colsToAutoSizeArray);
3331
+ else {
3332
+ if (((_f = (_e = this.adaptableOptions) === null || _e === void 0 ? void 0 : _e.layoutOptions) === null || _f === void 0 ? void 0 : _f.autoSizeColumnsInLayout) &&
3333
+ colsToAutoSizeArray.length) {
3334
+ this.agGridAdapter.getAgGridApi().autoSizeColumns(colsToAutoSizeArray);
3335
+ }
3267
3336
  }
3268
3337
  this.forPlugins((plugin) => {
3269
3338
  if (plugin.afterSetLayout) {
@@ -3612,6 +3681,21 @@ export class AdaptableAgGrid {
3612
3681
  */
3613
3682
  updateLayoutFromGrid() {
3614
3683
  var _a, _b;
3684
+ const agGridApi = this.agGridAdapter.getAgGridApi();
3685
+ const columnState = agGridApi.getColumnState();
3686
+ try {
3687
+ const stringifiedState = JSON.stringify(columnState);
3688
+ if (stringifiedState === this.previousAgGridColumnState) {
3689
+ // same grid column state as a previous,
3690
+ // so no need to update, as the layout has already been updated
3691
+ // for this grid column state
3692
+ return;
3693
+ }
3694
+ this.previousAgGridColumnState = stringifiedState;
3695
+ }
3696
+ catch (ex) {
3697
+ this.logger.consoleError('Error stringifying column state', ex);
3698
+ }
3615
3699
  const currentLayout = this.api.layoutApi.getCurrentLayout();
3616
3700
  if (currentLayout.IsReadOnly) {
3617
3701
  // reaply the layout so the grid is reverted
@@ -3623,7 +3707,6 @@ export class AdaptableAgGrid {
3623
3707
  const columnFlexes = {};
3624
3708
  const pinnedColumns = {};
3625
3709
  const columnSorts = [];
3626
- const columnState = this.agGridAdapter.getAgGridApi().getColumnState();
3627
3710
  let groupedColumns = [...new Array(columnState.length)];
3628
3711
  let pivotedColumns = [...new Array(columnState.length)];
3629
3712
  const pivotColumns = [];
@@ -3816,4 +3899,31 @@ export class AdaptableAgGrid {
3816
3899
  };
3817
3900
  });
3818
3901
  }
3902
+ setPinnedRows(pinnedRows, location) {
3903
+ const gridApi = this.agGridAdapter.getAgGridApi();
3904
+ switch (location) {
3905
+ case 'top':
3906
+ gridApi.setGridOption('pinnedTopRowData', pinnedRows);
3907
+ break;
3908
+ case 'bottom':
3909
+ gridApi.setGridOption('pinnedBottomRowData', pinnedRows);
3910
+ break;
3911
+ }
3912
+ }
3913
+ setupRowSummaries() {
3914
+ var _a;
3915
+ const rowSummaries = (_a = this.api.internalApi.getAdaptableState().System.RowSummary.rowSummaries) !== null && _a !== void 0 ? _a : [];
3916
+ const { top, bottom } = rowSummaries.reduce((acc, summaryRow) => {
3917
+ const row = summaryRow.RowData;
3918
+ if (summaryRow.Position === 'Bottom' || !summaryRow.Position) {
3919
+ acc.bottom.push(row);
3920
+ }
3921
+ else {
3922
+ acc.top.push(row);
3923
+ }
3924
+ return acc;
3925
+ }, { top: [], bottom: [] });
3926
+ this.setPinnedRows(top, 'top');
3927
+ this.setPinnedRows(bottom, 'bottom');
3928
+ }
3819
3929
  }
@@ -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;
@@ -272,6 +272,7 @@ export class AgGridAdapter {
272
272
  isGrouped: this.isColumnRowGrouped(colDef),
273
273
  isFixed: this.isColumnFixed(colDef),
274
274
  pinned: this.getColumnPinnedPosition(colDef),
275
+ columnTypes: this.getColumnTypes(colDef),
275
276
  isExcludedFromQuickSearch: false,
276
277
  isSparkline: this.isColumnSparkline(colDef),
277
278
  };
@@ -490,6 +491,13 @@ export class AgGridAdapter {
490
491
  }
491
492
  return colDef != null && colDef.filter != null && colDef.filter != false;
492
493
  }
494
+ getColumnTypes(colDef) {
495
+ if (!colDef.type) {
496
+ return [];
497
+ }
498
+ const allTypes = typeof colDef.type === 'string' ? [colDef.type] : colDef.type;
499
+ return allTypes;
500
+ }
493
501
  getColumnPinnedPosition(colDef) {
494
502
  return colDef.pinned
495
503
  ? colDef.pinned === 'left' || colDef.pinned === true
@@ -11,6 +11,7 @@ import UIHelper from '../View/UIHelper';
11
11
  import { getPercentBarRendererForColumn } from './PercentBarRenderer';
12
12
  import { getBadgeRendererForColumn } from './BadgeRenderer';
13
13
  import Helper from '../Utilities/Helpers/Helper';
14
+ import { ROW_SUMMARY_ROW_ID } from '../PredefinedConfig/Common/RowSummary';
14
15
  export class AgGridColumnAdapter {
15
16
  constructor(adaptableInstance) {
16
17
  this.adaptableInstance = adaptableInstance;
@@ -413,10 +414,14 @@ export class AgGridColumnAdapter {
413
414
  return userValue;
414
415
  }
415
416
  const cellEditableFn = this.adaptableOptions.editOptions.isCellEditable;
416
- if (!cellEditableFn) {
417
- return userValue;
418
- }
419
417
  const editableCallback = (params) => {
418
+ // Adaptable Row Summarie rows are not editable
419
+ if (params.node.data[ROW_SUMMARY_ROW_ID]) {
420
+ return false;
421
+ }
422
+ if (!cellEditableFn) {
423
+ return typeof userValue === 'function' ? userValue(params) : userValue;
424
+ }
420
425
  const gridCell = this.adaptableInstance.getGridCellFromRowNode(params.node, params.column.getColId());
421
426
  const cellEditableContext = {
422
427
  gridCell,
@@ -601,6 +606,9 @@ export class AgGridColumnAdapter {
601
606
  if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Notes')) {
602
607
  return;
603
608
  }
609
+ if (!this.adaptableApi.notesApi.internalApi.areNotesAvailable()) {
610
+ return;
611
+ }
604
612
  const cellPosition = {
605
613
  PrimaryKeyValue: gridCell.primaryKeyValue,
606
614
  ColumnId: gridCell.column.columnId,
@@ -615,6 +623,9 @@ export class AgGridColumnAdapter {
615
623
  if (!this.adaptableApi.internalApi.getModuleService().isModuleAvailable('Comments')) {
616
624
  return;
617
625
  }
626
+ if (!this.adaptableApi.commentApi.internalApi.areCommentsAvailable()) {
627
+ return;
628
+ }
618
629
  const position = {
619
630
  PrimaryKeyValue: gridCell.primaryKeyValue,
620
631
  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>>;