@adaptabletools/adaptable 23.0.0-canary.2 → 23.0.0-canary.4

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 (105) hide show
  1. package/index.css +68 -73
  2. package/package.json +1 -1
  3. package/src/AdaptableOptions/DefaultAdaptableOptions.js +0 -4
  4. package/src/AdaptableOptions/FilterOptions.d.ts +0 -7
  5. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +1 -3
  6. package/src/AdaptableState/Common/AdaptableForm.d.ts +18 -1
  7. package/src/AdaptableState/Common/AdaptableForm.js +31 -0
  8. package/src/AdaptableState/Common/AdaptableFormat.d.ts +1 -1
  9. package/src/AdaptableState/Common/CellDataChangedInfo.d.ts +3 -2
  10. package/src/AdaptableState/Common/Enums.d.ts +0 -5
  11. package/src/AdaptableState/Common/Enums.js +0 -6
  12. package/src/Api/EventApi.d.ts +1 -1
  13. package/src/Api/Events/ReportScheduleRan.d.ts +4 -0
  14. package/src/Api/Implementation/LayoutHelpers.js +12 -0
  15. package/src/Api/Internal/EventInternalApi.js +2 -1
  16. package/src/Strategy/CalculatedColumnModule.js +3 -1
  17. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +1 -0
  18. package/src/Utilities/Services/CalculatedColumnExpressionService.js +7 -0
  19. package/src/Utilities/Services/CalculatedColumnSyntheticChange.d.ts +4 -0
  20. package/src/Utilities/Services/CalculatedColumnSyntheticChange.js +115 -0
  21. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +1 -0
  22. package/src/View/AdaptablePopover/index.js +1 -1
  23. package/src/View/Charting/ChartingWizard/AgChargingWizard/SettingsSection.js +8 -16
  24. package/src/View/Components/Buttons/ButtonInfo.d.ts +1 -1
  25. package/src/View/Components/Buttons/ButtonInfo.js +4 -3
  26. package/src/View/Components/ColumnFilter/AdaptableColumnFilter.js +1 -1
  27. package/src/View/Components/ColumnFilter/ColumnFilter.js +15 -5
  28. package/src/View/Components/ColumnFilter/ColumnFilterWindow.js +1 -1
  29. package/src/View/Components/ColumnFilter/FloatingFilter.js +58 -60
  30. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -1
  31. package/src/View/Components/Forms/AdaptableFormControlTextClear.js +2 -1
  32. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopup.js +1 -1
  33. package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +2 -2
  34. package/src/View/Components/Selectors/ColumnSelector.js +5 -0
  35. package/src/View/Components/ValueSelector/index.js +1 -1
  36. package/src/View/FlashingCell/Wizard/FlashingCellScopeWizardSection.js +3 -1
  37. package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +3 -8
  38. package/src/View/GridFilter/GridFilterViewPanel.js +1 -1
  39. package/src/View/Layout/LayoutViewPanel.js +23 -21
  40. package/src/View/Layout/Wizard/sections/ColumnsSection.js +3 -3
  41. package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +1 -1
  42. package/src/View/Layout/Wizard/sections/RowSelectionSection.js +1 -1
  43. package/src/View/Layout/Wizard/sections/SettingsSection.js +1 -1
  44. package/src/View/License/LicenseWatermark.js +1 -1
  45. package/src/View/StyledColumn/Wizard/StyledColumnWizardScopeSection.js +1 -1
  46. package/src/View/Wizard/OnePageWizards.js +1 -1
  47. package/src/View/renderWithAdaptableContext.js +2 -3
  48. package/src/agGrid/AdaptableAgGrid.d.ts +0 -1
  49. package/src/agGrid/AdaptableAgGrid.js +3 -18
  50. package/src/agGrid/AgGridColumnAdapter.js +1 -4
  51. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +11 -6
  52. package/src/components/Card/index.js +1 -1
  53. package/src/components/Combobox/VirtualizedList.js +5 -5
  54. package/src/components/Combobox/comboboxUtils.d.ts +4 -1
  55. package/src/components/Combobox/comboboxUtils.js +2 -0
  56. package/src/components/Combobox/index.d.ts +1 -0
  57. package/src/components/Combobox/index.js +38 -12
  58. package/src/components/Datepicker/index.js +2 -2
  59. package/src/components/Dialog/index.js +1 -1
  60. package/src/components/DragAndDropContext/TabList.js +1 -1
  61. package/src/components/Dropdown/Arrows.js +0 -1
  62. package/src/components/ExpressionEditor/BaseEditorInput.js +1 -1
  63. package/src/components/ExpressionEditor/index.js +1 -1
  64. package/src/components/Input/index.js +1 -1
  65. package/src/components/NewDropdownButton/index.d.ts +1 -0
  66. package/src/components/NewDropdownButton/index.js +2 -2
  67. package/src/components/NewSelect/index.d.ts +2 -0
  68. package/src/components/NewSelect/index.js +10 -7
  69. package/src/components/Panel/index.js +1 -1
  70. package/src/components/SimpleButton/index.js +1 -1
  71. package/src/components/Tabs/index.js +1 -1
  72. package/src/components/Tree/TreeDropdown/index.js +6 -14
  73. package/src/components/ui/button.d.ts +5 -2
  74. package/src/components/ui/button.js +5 -4
  75. package/src/components/ui/combobox.d.ts +16 -16
  76. package/src/components/ui/combobox.js +37 -37
  77. package/src/components/ui/input-group.d.ts +10 -9
  78. package/src/components/ui/input-group.js +13 -12
  79. package/src/components/ui/input.d.ts +2 -2
  80. package/src/components/ui/input.js +5 -4
  81. package/src/components/ui/popover.d.ts +5 -5
  82. package/src/components/ui/popover.js +7 -7
  83. package/src/components/ui/select.d.ts +7 -6
  84. package/src/components/ui/select.js +13 -12
  85. package/src/components/ui/textarea.d.ts +2 -2
  86. package/src/components/ui/textarea.js +4 -3
  87. package/src/components/ui/tooltip.d.ts +6 -5
  88. package/src/components/ui/tooltip.js +8 -7
  89. package/src/env.js +2 -2
  90. package/src/layout-manager/src/LayoutManagerModel.d.ts +5 -1
  91. package/src/lib/utils.d.ts +20 -0
  92. package/src/lib/utils.js +45 -0
  93. package/src/metamodel/adaptable.metamodel.d.ts +7 -19
  94. package/src/metamodel/adaptable.metamodel.js +1 -1
  95. package/src/migration/VersionUpgrade23.d.ts +2 -3
  96. package/src/migration/VersionUpgrade23.js +4 -16
  97. package/src/types.d.ts +0 -1
  98. package/themes/dark.css +7 -17
  99. package/tsconfig.esm.tsbuildinfo +1 -1
  100. package/src/AdaptableState/Common/FilterActionOnDataChange.d.ts +0 -17
  101. package/src/AdaptableState/Common/FilterActionOnDataChange.js +0 -4
  102. package/src/View/AdaptableComputedCSSVarsContext.d.ts +0 -12
  103. package/src/View/AdaptableComputedCSSVarsContext.js +0 -29
  104. package/src/components/Select/CSSNumericVariableWatch.d.ts +0 -11
  105. package/src/components/Select/CSSNumericVariableWatch.js +0 -45
package/index.css CHANGED
@@ -1265,6 +1265,9 @@
1265
1265
  .twa\:gap-8 {
1266
1266
  gap: calc(var(--ab-base-space) * 8);
1267
1267
  }
1268
+ .twa\:self-center {
1269
+ align-self: center;
1270
+ }
1268
1271
  .twa\:self-end {
1269
1272
  align-self: flex-end;
1270
1273
  }
@@ -1426,6 +1429,9 @@
1426
1429
  border-color: color-mix(in oklab, var(--ab-color-primarydark) 30%, transparent);
1427
1430
  }
1428
1431
  }
1432
+ .twa\:border-primarylight {
1433
+ border-color: var(--ab-color-primarylight);
1434
+ }
1429
1435
  .twa\:border-ring {
1430
1436
  border-color: var(--ab-color-ring);
1431
1437
  }
@@ -1443,20 +1449,9 @@
1443
1449
  border-bottom-color: color-mix(in oklab, var(--ab-color-foreground) 20%, transparent);
1444
1450
  }
1445
1451
  }
1446
- .twa\:border-b-text-on-defaultbackground\/20 {
1447
- border-bottom-color: var(--ab-color-text-on-defaultbackground);
1448
- }
1449
- @supports (color: color-mix(in lab, red, red)) {
1450
- .twa\:border-b-text-on-defaultbackground\/20 {
1451
- border-bottom-color: color-mix(in oklab, var(--ab-color-text-on-defaultbackground) 20%, transparent);
1452
- }
1453
- }
1454
1452
  .twa\:bg-\(--ab-cmp-input--disabled__background\) {
1455
1453
  background-color: var(--ab-cmp-input--disabled__background);
1456
1454
  }
1457
- .twa\:bg-\(--ab-cmp-input__background\) {
1458
- background-color: var(--ab-cmp-input__background);
1459
- }
1460
1455
  .twa\:bg-\(--ab-cmp-modal-backdrop__background\) {
1461
1456
  background-color: var(--ab-cmp-modal-backdrop__background);
1462
1457
  }
@@ -1516,9 +1511,6 @@
1516
1511
  .twa\:bg-current {
1517
1512
  background-color: currentcolor;
1518
1513
  }
1519
- .twa\:bg-defaultbackground {
1520
- background-color: var(--ab-color-defaultbackground);
1521
- }
1522
1514
  .twa\:bg-destructive\/10 {
1523
1515
  background-color: var(--ab-color-destructive);
1524
1516
  }
@@ -1686,6 +1678,9 @@
1686
1678
  .twa\:pt-0 {
1687
1679
  padding-top: calc(var(--ab-base-space) * 0);
1688
1680
  }
1681
+ .twa\:pt-0\.5 {
1682
+ padding-top: calc(var(--ab-base-space) * 0.5);
1683
+ }
1689
1684
  .twa\:pt-1 {
1690
1685
  padding-top: calc(var(--ab-base-space) * 1);
1691
1686
  }
@@ -1940,9 +1935,6 @@
1940
1935
  .twa\:text-text-on-primary {
1941
1936
  color: var(--ab-color-text-on-primary);
1942
1937
  }
1943
- .twa\:text-text-on-primarydark {
1944
- color: var(--ab-color-text-on-primarydark);
1945
- }
1946
1938
  .twa\:text-text-on-share {
1947
1939
  color: var(--ab-color-text-on-share);
1948
1940
  }
@@ -3209,14 +3201,6 @@
3209
3201
  background-color: color-mix(in oklab, var(--ab-color-destructive) 20%, transparent);
3210
3202
  }
3211
3203
  }
3212
- .twa\:dark\:bg-input\/30:is(.ab--theme-dark *) {
3213
- background-color: var(--ab-color-input-border);
3214
- }
3215
- @supports (color: color-mix(in lab, red, red)) {
3216
- .twa\:dark\:bg-input\/30:is(.ab--theme-dark *) {
3217
- background-color: color-mix(in oklab, var(--ab-color-input-border) 30%, transparent);
3218
- }
3219
- }
3220
3204
  .twa\:dark\:bg-transparent:is(.ab--theme-dark *) {
3221
3205
  background-color: transparent;
3222
3206
  }
@@ -3335,6 +3319,9 @@
3335
3319
  border-top-left-radius: var(--ab-border-radius);
3336
3320
  border-bottom-left-radius: var(--ab-border-radius);
3337
3321
  }
3322
+ .twa\:\[\.ab-FloatingFilter_\[data-slot\=combobox-trigger\]\]\:py-0:is(.ab-FloatingFilter [data-slot=combobox-trigger]) {
3323
+ padding-block: calc(var(--ab-base-space) * 0);
3324
+ }
3338
3325
  .twa\:\[\.border-b\]\:pb-2:is(.border-b) {
3339
3326
  padding-bottom: calc(var(--ab-base-space) * 2);
3340
3327
  }
@@ -3447,6 +3434,9 @@
3447
3434
  width: calc(var(--ab-base-space) * 4);
3448
3435
  height: calc(var(--ab-base-space) * 4);
3449
3436
  }
3437
+ .ab-FloatingFilter .twa\:\[\.ab-FloatingFilter_\&\]\:\[container-type\:size\] {
3438
+ container-type: size;
3439
+ }
3450
3440
  .ab-FloatingFilter .twa\:\[\.ab-FloatingFilter_\&\]\:absolute {
3451
3441
  position: absolute;
3452
3442
  }
@@ -3463,6 +3453,9 @@
3463
3453
  --tw-border-style: none;
3464
3454
  border-style: none;
3465
3455
  }
3456
+ .ab-FloatingFilter .twa\:\[\.ab-FloatingFilter_\&\]\:\[line-height\:1\] {
3457
+ line-height: 1;
3458
+ }
3466
3459
  .ab-FloatingFilter .twa\:\[\.ab-FloatingFilter_\&\]\:shadow-none {
3467
3460
  --tw-shadow: 0 0 #0000;
3468
3461
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -5433,11 +5426,16 @@
5433
5426
  --ab-border-radius: var(--ab__border-radius, var(--ab-base-space));
5434
5427
  --ab-border-radius-input: var(--ab-border-radius);
5435
5428
  --ab-border-radius-button: var(--ab-border-radius);
5436
- --ab-color-defaultbackground: white;
5437
- --ab-color-text-on-defaultbackground: var(--ab-color-text-on-primary);
5438
5429
  --ab-color-input-border: var(--ab-color-inputborder, var(--ab-color-primarydark));
5439
5430
  --ab-color-input-background: var(--ab-color-background);
5440
- --ab-color-input-foreground: var(--ab-color-inputcolor, var(--ab-color-text-on-primary));
5431
+ }
5432
+ @supports (color: color-mix(in lab, red, red)) {
5433
+ :root {
5434
+ --ab-color-input-background: color-mix(in srgb, var(--ab-color-background) 99%, black);
5435
+ }
5436
+ }
5437
+ :root {
5438
+ --ab-color-input-foreground: var(--ab-color-inputcolor, var(--ab-color-primary-foreground));
5441
5439
  --ab-color-error: #dc3545;
5442
5440
  --ab-color-warn: #eb9316;
5443
5441
  --ab-color-info: #17a2b8;
@@ -5489,28 +5487,27 @@
5489
5487
  --ab-color-text-on-share: white;
5490
5488
  --ab-color-text-on-delete: white;
5491
5489
  --ab-color-text-on-clone: white;
5490
+ --ab-color-text-on-primary: #656565;
5492
5491
  --ab-color-primary: #e9e9e9;
5493
- --ab-color-primary-foreground: #656565;
5492
+ --ab-color-primary-foreground: var(--ab-color-text-on-primary, #656565);
5494
5493
  --ab-color-primarydark: #b7b7b7;
5495
5494
  --ab-color-primarylight: #f5f5f5;
5496
- --ab-color-text-on-primary: var(--ab-color-primary-foreground);
5497
- --ab-color-text-on-primarydark: var(--ab-color-primary-foreground);
5498
5495
  --ab-color-shadow: rgb(0 0 0 / 0.2);
5499
5496
  --ab-shadow-sm: 0 0px 3px 0 var(--ab-color-shadow), 0 1px 2px -1px var(--ab-color-shadow);
5500
5497
  --ab-shadow-md: 0 -2px 6px -1px var(--ab-color-shadow), 0 2px 4px -2px var(--ab-color-shadow);
5501
5498
  --ab-focus__box-shadow: 0 0px 5px 0 var(--ab-color-ring), 0 1px 2px -1px var(--ab-color-ring);
5502
5499
  --ab-focus-light__box-shadow: 0 0px 5px 0 var(--ab-color-accentlight),
5503
5500
  0 1px 2px -1px var(--ab-color-accentlight);
5504
- --ab-focus-within__box-shadow: 0 0 5px 1px var(--ab-color-text-on-primary);
5501
+ --ab-focus-within__box-shadow: 0 0 5px 1px var(--ab-color-primary-foreground);
5505
5502
  --ab-focus__outline: none;
5506
- --ab-color-background: var(--ab-color-defaultbackground, oklch(1 0 0));
5507
- --ab-color-foreground: var(--ab-color-text-on-defaultbackground);
5508
- --ab-color-popover: var(--ab-color-defaultbackground);
5509
- --ab-color-popover-foreground: var(--ab-color-text-on-defaultbackground);
5503
+ --ab-color-background: var(--ab-color-defaultbackground, white);
5504
+ --ab-color-foreground: var(--ab-color-primary-foreground, #656565);
5505
+ --ab-color-popover: var(--ab-color-background);
5506
+ --ab-color-popover-foreground: var(--ab-color-foreground);
5510
5507
  --ab-color-secondary: oklch(0.97 0 0);
5511
5508
  --ab-color-secondary-foreground: oklch(0.205 0 0);
5512
5509
  --ab-color-muted: var(--ab-color-primarylight);
5513
- --ab-color-muted-foreground: var(--ab-color-input-foreground);
5510
+ --ab-color-muted-foreground: var(--ab-color-primary-foreground);
5514
5511
  --ab-color-destructive: oklch(0.577 0.245 27.325);
5515
5512
  --ab-color-destructive-foreground: oklch(0.577 0.245 27.325);
5516
5513
  --ab-color-border: oklch(0.922 0 0);
@@ -5528,13 +5525,13 @@
5528
5525
  .infinite-theme-name--default.infinite-theme-name--default.infinite-theme-name--default.infinite-theme-name--default {
5529
5526
  --infinite-cell-border-radius: 0px;
5530
5527
  --infinite-active-cell-border-width: 0px;
5531
- --infinite-background: var(--ab-color-defaultbackground);
5532
- --infinite-row-background: var(--ab-color-defaultbackground);
5528
+ --infinite-background: var(--ab-color-background);
5529
+ --infinite-row-background: var(--ab-color-background);
5533
5530
  --infinite-row-odd-background: var(--ab-color-primarylight);
5534
5531
  --infinite-row-selected-background: var(--ab-color-primary);
5535
5532
  --infinite-row-selected-hover-background: var(--ab-color-primarydark);
5536
5533
  --infinite-row-hover-background: var(--ab-color-primary);
5537
- --infinite-header-color: var(--ab-color-text-on-primarydark);
5534
+ --infinite-header-color: var(--ab-color-muted-foreground);
5538
5535
  --infinite-header-cell-background: var(--ab-color-primary);
5539
5536
  --infinite-header-cell-hover-background: var(--ab-color-primarylight);
5540
5537
  --infinite-menu-background: var(--infinite-header-cell-background);
@@ -5696,7 +5693,6 @@
5696
5693
  :root {
5697
5694
  --ab-cmp-input__padding: calc(var(--ab-base-space) * 2);
5698
5695
  --ab-cmp-input__color: var(--ab-color-input-foreground);
5699
- --ab-cmp-input__background: var(--ab-color-input-background);
5700
5696
  --ab-cmp-input__border-radius: var(--ab-border-radius);
5701
5697
  --ab-cmp-input__border: 1px solid var(--ab-color-input-border);
5702
5698
  --ab-cmp-input--disabled__background: var(--ab-color-primarylight);
@@ -5710,12 +5706,11 @@
5710
5706
  }
5711
5707
  :root {
5712
5708
  --ab-cmp-tabs__padding: calc(var(--ab-base-space) * 2);
5713
- --ab-cmp-tabs-strip__background: var(--ab-color-defaultbackground);
5709
+ --ab-cmp-tabs-strip__background: transparent;
5714
5710
  --ab-cmp-tabs-active__background: var(--ab-color-primarylight);
5715
5711
  --ab-cmp-tabs__font-weight: 400;
5716
5712
  --ab-cmp-tabs__color: inherit;
5717
5713
  --ab-cmp-tabs-inactive__opacity: 0.72;
5718
- --ab-cmp-tabs-inactive-separator__color: var(--ab-color-primarydark);
5719
5714
  }
5720
5715
  :root {
5721
5716
  --ab-cmp-panel_header__background: var(--ab-color-primary);
@@ -5730,7 +5725,7 @@
5730
5725
  --ab-cmp-panel_header--variant-primary__background: var(--ab-color-accent);
5731
5726
  --ab-cmp-panel_header--variant-primary__color: var(--ab-color-accent-foreground);
5732
5727
  --ab-cmp-panel_header--variant-modern__background: var(--ab-color-primary);
5733
- --ab-cmp-panel_header--variant-minimal__background: var(--ab-color-defaultbackground);
5728
+ --ab-cmp-panel_header--variant-minimal__background: var(--ab-color-background);
5734
5729
  --ab-cmp-panel_header--variant-modern__color: var(--ab-color-text-on-primary);
5735
5730
  }
5736
5731
  :root {
@@ -5784,9 +5779,9 @@
5784
5779
  --ab-dashboard-toolbar-drag__background: lightgreen;
5785
5780
  }
5786
5781
  :root {
5787
- --ab-cmp-datepicker__background: var(--ab-color-defaultbackground);
5782
+ --ab-cmp-datepicker__background: var(--ab-color-background);
5788
5783
  --ab-cmp-datepicker__active-color: var(--ab-color-primarydark);
5789
- --ab-cmp-datepicker__active-text-color: var(--ab-color-text-on-primarydark);
5784
+ --ab-cmp-datepicker__active-text-color: var(--ab-color-muted-foreground);
5790
5785
  --ab-cmp-datepicker__active-border-radius: 100%;
5791
5786
  --ab-cmp-datepicker__active-border: var(--ab-cmp-datepicker__day-border-width) solid
5792
5787
  var(--ab-cmp-datepicker__active-color);
@@ -5841,7 +5836,7 @@
5841
5836
  }
5842
5837
  :root {
5843
5838
  --ab-cmp-icon-selector__popup__color: var(--ab-color-input-foreground);
5844
- --ab-cmp-icon-selector__popup__background: var(--ab-color-defaultbackground);
5839
+ --ab-cmp-icon-selector__popup__background: var(--ab-color-background);
5845
5840
  --ab-cmp-icon-selector__popup__border: 1px solid var(--ab-color-input-border);
5846
5841
  --ab-cmp-icon-selector__popup__padding: calc(var(--ab-base-space) * 2);
5847
5842
  --ab-cmp-icon-selector__popup__border-radius: var(--ab-border-radius);
@@ -5851,7 +5846,7 @@
5851
5846
  --adaptable-quick-search-floating-width: 200px;
5852
5847
  }
5853
5848
  :root {
5854
- --ab-cmp-note-popup-background-color: var(--ab-color-defaultbackground);
5849
+ --ab-cmp-note-popup-background-color: var(--ab-color-background);
5855
5850
  --ab-cmp-note-popup-padding: calc(var(--ab-base-space) * 8);
5856
5851
  --ab-cmp-note-popup-border-radius: calc(var(--ab-base-space) * 2);
5857
5852
  --ab-cmp-note-popup-border: 1px solid var(--ab-color-primarydark);
@@ -5882,7 +5877,7 @@
5882
5877
  --ab-cmp-dashboardpanel_body__background: var(--ab-color-primarylight);
5883
5878
  --ab-cmp-dashboardpanel_header__background: var(--ab-color-primary);
5884
5879
  --ab-cmp-dashboardpanel_header__fill: currentColor;
5885
- --ab-cmp-dashboardpanel_header__color: var(--ab-color-text-on-primarydark);
5880
+ --ab-cmp-dashboardpanel_header__color: var(--ab-color-muted-foreground);
5886
5881
  --ab-cmp-dashboardpanel__fill: var(--ab-color-text-on-primary);
5887
5882
  --ab-cmp-dashboardpanel__color: currentColor;
5888
5883
  --ab-cmp-dashboardpanel_header__padding: 0px;
@@ -5901,11 +5896,9 @@
5901
5896
  --ab-cmp-toolpanelpanel_body__padding: var(--ab-cmp-dashboardpanel_body__padding);
5902
5897
  }
5903
5898
  :root {
5904
- --ab-cmp-popover__border-radius: var(--ab-border-radius);
5905
- --ab-cmp-popover__background: var(--ab-color-defaultbackground);
5899
+ --ab-cmp-popover__background: var(--ab-color-background);
5906
5900
  --ab-cmp-popover__color: var(--ab-color-foreground);
5907
5901
  --ab-cmp-popover__box-shadow: var(--ab-cmp-dropdownbutton-list__box-shadow);
5908
- --ab-cmp-popover__border: 1px solid var(--ab-color-primarydark);
5909
5902
  }
5910
5903
  .ab-OnePageWizard__section {
5911
5904
  background: var(--ab-cmp-one-page-wizard-content__background);
@@ -5949,13 +5942,13 @@
5949
5942
  :root {
5950
5943
  --ab-cmp-adaptable-object-list-tag__margin-right: calc(var(--ab-base-space) * 2);
5951
5944
  --ab-cmp-adaptable-object-list-tag__margin-top: calc(var(--ab-base-space) * 2);
5952
- --ab-cmp-adaptable-object-list-item__background-color: var(--ab-color-defaultbackground);
5945
+ --ab-cmp-adaptable-object-list-item__background-color: var(--ab-color-background);
5953
5946
  --ab-cmp-adaptable-object-list-item__padding: calc(var(--ab-base-space) * 4) calc(var(--ab-base-space) * 4);
5954
5947
  --ab-cmp-adaptable-object-list-item-label__width: 130px;
5955
5948
  --ab-cmp-adaptable-object-list-item-tag__padding: 6px 12px;
5956
5949
  --ab-cmp-adaptable-object-compact-list__background: var(--ab-color-primarylight);
5957
5950
  --ab-cmp-adaptable-object-compact-list__padding: calc(var(--ab-base-space) * 2);
5958
- --ab-cmp-adaptable-object-compact-list-item__background: var(--ab-color-defaultbackground);
5951
+ --ab-cmp-adaptable-object-compact-list-item__background: var(--ab-color-background);
5959
5952
  --ab-cmp-adaptable-object-compact-list-item__padding: var(--ab-base-space);
5960
5953
  --ab-cmp-adaptable-object-compact-list-item__margin-bottom: calc(var(--ab-base-space) * 2);
5961
5954
  --ab-cmp-adaptable-object-compact-list__header__padding: calc(var(--ab-base-space) * 2);
@@ -5967,12 +5960,12 @@
5967
5960
  --ab-cmp-adaptable-object-compact-list-item-name__font-size: var(--ab-font-size-4);
5968
5961
  }
5969
5962
  :root {
5970
- --ab-cmp-adaptable-options__background-color: var(--ab-color-defaultbackground);
5971
- --ab-cmp-grid-options__background-color: var(--ab-color-defaultbackground);
5972
- --ab-cmp-grid-summary__background-color: var(--ab-color-defaultbackground);
5963
+ --ab-cmp-adaptable-options__background-color: var(--ab-color-background);
5964
+ --ab-cmp-grid-options__background-color: var(--ab-color-background);
5965
+ --ab-cmp-grid-summary__background-color: var(--ab-color-background);
5973
5966
  }
5974
5967
  :root {
5975
- --ab-cmp-system-status-list__background-color: var(--ab-color-defaultbackground);
5968
+ --ab-cmp-system-status-list__background-color: var(--ab-color-background);
5976
5969
  --ab-cmp-system-status-list-text__border-radius: var(--ab-border-radius);
5977
5970
  --ab-cmp-system-status-list-text__font-weight: bold;
5978
5971
  --ab-cmp-system-status-list-text__font-size: var(--ab-font-size-2);
@@ -5980,7 +5973,7 @@
5980
5973
  --ab-cmp-system-status-list-text__padding: calc(var(--ab-base-space) * 2);
5981
5974
  }
5982
5975
  :root {
5983
- --ab-cmp-dashboard-module-selector-background: var(--ab-color-defaultbackground);
5976
+ --ab-cmp-dashboard-module-selector-background: var(--ab-color-background);
5984
5977
  --ab-cmp-dashboard-pinned-toolbar-border: 1px solid var(--ab-color-primary);
5985
5978
  }
5986
5979
  html.ab--theme-dark {
@@ -5999,10 +5992,10 @@
5999
5992
  }
6000
5993
  :root {
6001
5994
  --ab-cmp-adaptable-layout-wizard-column-row-title__border-radius: var(--ab-border-radius);
6002
- --ab-cmp-adaptable-layout-wizard-column-row-title__background: var(--ab-color-defaultbackground);
5995
+ --ab-cmp-adaptable-layout-wizard-column-row-title__background: var(--ab-color-background);
6003
5996
  --ab-cmp-adaptable-layout-wizard-column-row-title__color: var(--ab-color-foreground);
6004
5997
  --ab-cmp-adaptable-layout-wizard-column-row-expanded-container__background: var(
6005
- --ab-color-defaultbackground
5998
+ --ab-color-background
6006
5999
  );
6007
6000
  --ab-cmp-adaptable-layout-wizard-column-row-expanded-container__border-radius: var(
6008
6001
  --ab-border-radius
@@ -6010,14 +6003,14 @@
6010
6003
  --ab-cmp-adaptable-layout-wizard-column-input__width: 100%;
6011
6004
  }
6012
6005
  :root {
6013
- --cmp-Badge-Definition-Editor__background: var(--ab-color-defaultbackground);
6014
- --cmp-Badge-Definition-Editor-header__background: var(--ab-color-defaultbackground);
6006
+ --cmp-Badge-Definition-Editor__background: var(--ab-color-background);
6007
+ --cmp-Badge-Definition-Editor-header__background: var(--ab-color-background);
6015
6008
  }
6016
6009
  @supports (color: color-mix(in lab, red, red)) {
6017
6010
  :root {
6018
6011
  --cmp-Badge-Definition-Editor-header__background: color-mix(
6019
6012
  in srgb,
6020
- var(--ab-color-defaultbackground) 92%,
6013
+ var(--ab-color-background) 92%,
6021
6014
  var(--ab-color-foreground)
6022
6015
  );
6023
6016
  }
@@ -6036,10 +6029,10 @@
6036
6029
  :root {
6037
6030
  --ab-cmp-column-filter-input__font-size: var(--ab-font-size-2);
6038
6031
  --ab-cmp-column-filter-input__border: 1px solid var(--ab-color-primarydark);
6039
- --ab-cmp-column-filter-input__background: var(--ab-color-defaultbackground);
6032
+ --ab-cmp-column-filter-input__background: var(--ab-color-background);
6040
6033
  }
6041
6034
  :root {
6042
- --ab-cmp-entity-rules-editor__background-color: var(--ab-color-defaultbackground);
6035
+ --ab-cmp-entity-rules-editor__background-color: var(--ab-color-background);
6043
6036
  }
6044
6037
  .ab-Badge__wrapper {
6045
6038
  display: inline-flex;
@@ -6230,7 +6223,7 @@
6230
6223
  --ab-cmp-query-builder-expression__font-size: var(--ab-font-size-3);
6231
6224
  }
6232
6225
  .ab-Dropdown {
6233
- background: var(--ab-color-defaultbackground);
6226
+ background: var(--ab-color-background);
6234
6227
  border: var(--ab-cmp-dropdown__border);
6235
6228
  border-radius: var(--ab-cmp-dropdown__border-radius);
6236
6229
  position: relative;
@@ -6417,9 +6410,6 @@
6417
6410
  .ab-Tabs__Tab:not(.ab-Tabs__Tab--active) {
6418
6411
  opacity: var(--ab-cmp-tabs-inactive__opacity);
6419
6412
  }
6420
- .ab-Tabs__Tab:not(.ab-Tabs__Tab--active) + .ab-Tabs__Tab:not(.ab-Tabs__Tab--active) {
6421
- box-shadow: inset 1px 0 0 var(--ab-cmp-tabs-inactive-separator__color);
6422
- }
6423
6413
  .ab-Tabs__Tab--active + .ab-Tabs__Filler, .ab-Tabs__Tab--active + .ab-Tabs__Tab {
6424
6414
  border-bottom-left-radius: var(--ab-border-radius);
6425
6415
  }
@@ -7322,8 +7312,6 @@
7322
7312
  font-size: var(--ab-cmp-listgroupitem-cell__font-size);
7323
7313
  }
7324
7314
  .ab-Popover {
7325
- border-radius: var(--ab-cmp-popover__border-radius);
7326
- border: var(--ab-cmp-popover__border);
7327
7315
  background: var(--ab-cmp-popover__background);
7328
7316
  color: var(--ab-cmp-popover__color);
7329
7317
  box-shadow: var(--ab-cmp-popover__box-shadow);
@@ -7365,7 +7353,7 @@
7365
7353
  .ab-NocodeWizardFormBox {
7366
7354
  border: 1px solid var(--ab-color-primarydark);
7367
7355
  border-radius: var(--ab-border-radius);
7368
- background-color: var(--ab-color-defaultbackground);
7356
+ background-color: var(--ab-color-background);
7369
7357
  }
7370
7358
  .ab-Button.ab-Button {
7371
7359
  border-radius: var(--ab-cmp-button-border-radius);
@@ -7660,6 +7648,12 @@
7660
7648
  .ab-FloatingFilter .ab-TreeDropdown .ab-Input {
7661
7649
  font-size: inherit;
7662
7650
  }
7651
+ @container (height < 26px) {
7652
+ .ab-FloatingFilter [data-slot='combobox-toggle'] {
7653
+ width: calc(var(--ab-base-space) * 3) !important;
7654
+ height: calc(var(--ab-base-space) * 3) !important;
7655
+ }
7656
+ }
7663
7657
  .ab-FloatingFilter-label {
7664
7658
  color: var(--ab-color-text-on-primary);
7665
7659
  }
@@ -8413,6 +8407,7 @@
8413
8407
  }
8414
8408
  .ag-floating-filter .ab-FloatingFilter {
8415
8409
  --ab-input-height: 100% !important;
8410
+ --ab-color-input-background: transparent !important;
8416
8411
  }
8417
8412
  .ag-group-floating-filter:has(.ab-FloatingFilter) {
8418
8413
  height: 100% !important;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "23.0.0-canary.2",
3
+ "version": "23.0.0-canary.4",
4
4
  "description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
5
5
  "keywords": [
6
6
  "web-components",
@@ -165,10 +165,6 @@ const DefaultAdaptableOptions = {
165
165
  },
166
166
  },
167
167
  filterOptions: {
168
- filterActionOnDataChange: {
169
- applyFilter: 'Always',
170
- throttleDelay: 0,
171
- },
172
168
  clearFiltersOnStartUp: false,
173
169
  enableFilterOnSpecialColumns: true,
174
170
  useAdaptableFiltering: true,
@@ -1,4 +1,3 @@
1
- import { FilterActionOnDataChange } from '../AdaptableState/Common/FilterActionOnDataChange';
2
1
  import { BaseContext } from '../../types';
3
2
  import { AdaptableColumn } from '../AdaptableState/Common/AdaptableColumn';
4
3
  import { SystemAlertPredicateId, SystemFilterPredicateId } from '../../types';
@@ -30,12 +29,6 @@ export interface FilterOptions<TData = any> {
30
29
  * @returns
31
30
  */
32
31
  customInFilterValues?: (context: CustomInFilterValuesContext<TData>) => Promise<InFilterValueResult> | InFilterValueResult;
33
- /**
34
- * When to re-filter grid after data changes: 'Always', 'Never' or 'Throttle' (with a delay value)
35
- *
36
- * @defaultValue 'Always'
37
- */
38
- filterActionOnDataChange?: FilterActionOnDataChange;
39
32
  /**
40
33
  * Allow filtering on Calculated & FreeText columns
41
34
  *
@@ -29,9 +29,7 @@ export interface UserInterfaceOptions<TData = any> {
29
29
  */
30
30
  dateInputOptions?: DateInputOptions;
31
31
  /**
32
- * @deprecated Override `--ab-color-swatch-*`, `--ab-color-palette-*`, and semantic
33
- * `--ab-color-*` variables in your light or dark theme CSS instead. Will be removed in a
34
- * future major release.
32
+ * @deprecated Override `--ab-color-swatch-*`, `--ab-color-palette-*`, and semantic `--ab-color-*` variables in light/dark theme instead; will be removed in future release
35
33
  */
36
34
  colorPalette?: string[] | ((currentTheme: string) => string[]);
37
35
  /**
@@ -133,8 +133,19 @@ export interface AdaptableFormField {
133
133
  /**
134
134
  * Field Default Value - can be of type string, boolean, number, or for
135
135
  * `select` fields with `multi: true` an array of those.
136
+ *
137
+ * For single `select` fields, this is also the value restored when the user
138
+ * clears the combobox (unless {@link clearToDefault} is `false`).
136
139
  */
137
140
  defaultValue?: string | boolean | number | Array<string | number | boolean>;
141
+ /**
142
+ * For single `select` fields only. When the user clears the combobox,
143
+ * whether to restore {@link defaultValue} instead of leaving the field empty.
144
+ *
145
+ * Defaults to `true` when `defaultValue` is set, otherwise `false`.
146
+ * Set to `false` when an empty selection is a distinct state from the default.
147
+ */
148
+ clearToDefault?: boolean;
138
149
  /**
139
150
  * Items to populate the `select` and `radio` fieldTypes.
140
151
  *
@@ -166,7 +177,10 @@ export interface AdaptableFormField {
166
177
  /**
167
178
  * Placeholder text shown inside `text`, `textarea`, `number`, `date`,
168
179
  * `time` and `datetime` inputs when empty. For `select` fields it is
169
- * rendered as the empty-state label.
180
+ * rendered as the empty-state label when no value is selected.
181
+ *
182
+ * When omitted on a `select` field with a {@link defaultValue}, the label of
183
+ * the matching `options` entry is used as the empty-state label.
170
184
  */
171
185
  placeholder?: string;
172
186
  /**
@@ -310,6 +324,9 @@ export declare function isAdaptableFormFieldGroup(entry: AdaptableFormField | Ad
310
324
  * computing defaults, validation or per-field lookups.
311
325
  */
312
326
  export declare function flattenAdaptableFormFields<T extends BaseContext>(formDef?: AdaptableForm<T, any>): AdaptableFormField[];
327
+ export declare function shouldClearSelectToDefault(field: AdaptableFormField): boolean;
328
+ export declare function resolveSelectValueAfterClear(field: AdaptableFormField, newValue: unknown): unknown;
329
+ export declare function resolveSelectPlaceholder(field: AdaptableFormField, options: AdaptableFormFieldOption[]): string | undefined;
313
330
  export declare function getDefaultAdaptableFormData<T extends BaseContext = BaseContext>(formDef?: AdaptableForm<T, any>): AdaptableFormData;
314
331
  /**
315
332
  * Resolves a field's `options` to the current array of options.
@@ -32,6 +32,37 @@ export function flattenAdaptableFormFields(formDef) {
32
32
  }
33
33
  return out;
34
34
  }
35
+ export function shouldClearSelectToDefault(field) {
36
+ if (field.fieldType !== 'select' || field.multi) {
37
+ return false;
38
+ }
39
+ if (field.clearToDefault === false) {
40
+ return false;
41
+ }
42
+ if (field.clearToDefault === true) {
43
+ return true;
44
+ }
45
+ return (field.defaultValue !== undefined && field.defaultValue !== null && field.defaultValue !== '');
46
+ }
47
+ export function resolveSelectValueAfterClear(field, newValue) {
48
+ if (field.fieldType !== 'select' || field.multi) {
49
+ return newValue;
50
+ }
51
+ const isEmpty = newValue === null || newValue === undefined || newValue === '';
52
+ if (!isEmpty || !shouldClearSelectToDefault(field)) {
53
+ return newValue;
54
+ }
55
+ return field.defaultValue;
56
+ }
57
+ export function resolveSelectPlaceholder(field, options) {
58
+ if (field.placeholder) {
59
+ return field.placeholder;
60
+ }
61
+ if (field.defaultValue === undefined || field.defaultValue === null || field.defaultValue === '') {
62
+ return undefined;
63
+ }
64
+ return options.find((option) => option.value === field.defaultValue)?.label;
65
+ }
35
66
  export function getDefaultAdaptableFormData(formDef) {
36
67
  return flattenAdaptableFormFields(formDef).reduce((data, field) => {
37
68
  if (field.fieldType === 'select' && field.multi) {
@@ -102,7 +102,7 @@ export interface DateFormatterOptions extends BaseFormatterOptions {
102
102
  */
103
103
  export interface StringFormatterOptions extends BaseFormatterOptions {
104
104
  /**
105
- * Sets text to Upper or Lower case
105
+ * Sets text to Upper, Lower or Sentence case
106
106
  */
107
107
  Case?: 'Upper' | 'Lower' | 'Sentence';
108
108
  /**
@@ -33,9 +33,10 @@ export interface CellDataChangedInfo<TData = any> {
33
33
  */
34
34
  rowData?: TData;
35
35
  /**
36
- * What triggered the change - user, background change or a reverted change?
36
+ * What triggered the change - user, background change, a reverted change, or a
37
+ * derived update on a Calculated Column whose source value changed?
37
38
  */
38
- trigger?: 'edit' | 'tick' | 'undo' | 'aggChange';
39
+ trigger?: 'edit' | 'tick' | 'undo' | 'aggChange' | 'calculatedColumnChange';
39
40
  /**
40
41
  * Whether the change was prevented by a validation rule
41
42
  */
@@ -49,11 +49,6 @@ export declare enum SummaryOperation {
49
49
  Only = "Only",
50
50
  Weighted_Average = "Weighted Avg"
51
51
  }
52
- export declare enum FilterOnDataChangeOptions {
53
- Always = "Always",
54
- Never = "Never",
55
- Throttle = "Throttle"
56
- }
57
52
  export declare enum ChangeDirection {
58
53
  Up = "Up",
59
54
  Down = "Down",
@@ -61,12 +61,6 @@ export var SummaryOperation;
61
61
  SummaryOperation["Only"] = "Only";
62
62
  SummaryOperation["Weighted_Average"] = "Weighted Avg";
63
63
  })(SummaryOperation || (SummaryOperation = {}));
64
- export var FilterOnDataChangeOptions;
65
- (function (FilterOnDataChangeOptions) {
66
- FilterOnDataChangeOptions["Always"] = "Always";
67
- FilterOnDataChangeOptions["Never"] = "Never";
68
- FilterOnDataChangeOptions["Throttle"] = "Throttle";
69
- })(FilterOnDataChangeOptions || (FilterOnDataChangeOptions = {}));
70
64
  export var ChangeDirection;
71
65
  (function (ChangeDirection) {
72
66
  ChangeDirection["Up"] = "Up";
@@ -32,7 +32,7 @@ export interface EventApi {
32
32
  /**
33
33
  * Event fired whenever a Schedule is triggered in AdapTable
34
34
  * @param eventName ReportScheduleRan
35
- * @param callback ReportScheduleRan which provides details of the Report Schedule that was triggered
35
+ * @param callback provides the report schedule and `RanAt` (when this run started)
36
36
  */
37
37
  on(eventName: 'ReportScheduleRan', callback: (reportScheduleRanInfo: ReportScheduleRanInfo) => void): VoidFunction;
38
38
  /**
@@ -8,4 +8,8 @@ export interface ReportScheduleRanInfo extends BaseContext {
8
8
  * Report schedule that was triggered (if applicable)
9
9
  */
10
10
  reportSchedule?: ReportSchedule;
11
+ /**
12
+ * ISO datetime when Schedule ran (useful for logging)
13
+ */
14
+ RanAt: string;
11
15
  }
@@ -248,6 +248,9 @@ export const tableLayoutToTableLayoutModel = (tableLayout) => {
248
248
  if (tableLayout.Metadata) {
249
249
  result.Ignore_Metadata = tableLayout.Metadata;
250
250
  }
251
+ if (tableLayout.OpenCharts) {
252
+ result.Ignore_OpenCharts = tableLayout.OpenCharts;
253
+ }
251
254
  if (tableLayout.RowSummaries != null) {
252
255
  result.Ignore_RowSummaries = tableLayout.RowSummaries;
253
256
  }
@@ -327,6 +330,9 @@ export const pivotLayoutToPivotLayoutModel = (pivotLayout) => {
327
330
  if (pivotLayout.Metadata) {
328
331
  result.Ignore_Metadata = pivotLayout.Metadata;
329
332
  }
333
+ if (pivotLayout.OpenCharts) {
334
+ result.Ignore_OpenCharts = pivotLayout.OpenCharts;
335
+ }
330
336
  return result;
331
337
  };
332
338
  function toAggFunc(aggFunc) {
@@ -376,6 +382,9 @@ export const tableLayoutModelToTableLayout = (layoutModel) => {
376
382
  if (layoutModel.Ignore_Metadata) {
377
383
  tableLayout.Metadata = layoutModel.Ignore_Metadata;
378
384
  }
385
+ if (layoutModel.Ignore_OpenCharts) {
386
+ tableLayout.OpenCharts = layoutModel.Ignore_OpenCharts;
387
+ }
379
388
  // if (layoutModel.RowGroupDisplayType) {
380
389
  tableLayout.RowGroupDisplayType = layoutModel.RowGroupDisplayType ?? 'single';
381
390
  // }
@@ -481,6 +490,9 @@ export const pivotLayoutModelToPivotLayout = (layoutModel) => {
481
490
  if (layoutModel.Ignore_Metadata) {
482
491
  pivotLayout.Metadata = layoutModel.Ignore_Metadata;
483
492
  }
493
+ if (layoutModel.Ignore_OpenCharts) {
494
+ pivotLayout.OpenCharts = layoutModel.Ignore_OpenCharts;
495
+ }
484
496
  if (layoutModel.PivotGroupedColumns) {
485
497
  pivotLayout.PivotGroupedColumns = layoutModel.PivotGroupedColumns;
486
498
  }
@@ -99,7 +99,8 @@ export class EventInternalApi extends ApiBase {
99
99
  fireScheduledReportRanEvent(reportSchedule) {
100
100
  const reportScheduleRanInfo = {
101
101
  ...this.getAdaptableInternalApi().buildBaseContext(),
102
- reportSchedule: reportSchedule,
102
+ reportSchedule,
103
+ RanAt: new Date().toISOString(),
103
104
  };
104
105
  this.getEventApi().emit('ReportScheduleRan', reportScheduleRanInfo);
105
106
  }