@adaptabletools/adaptable 10.0.0-canary.3 → 10.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/base.css +77 -29
  2. package/index.css +89 -31
  3. package/package.json +1 -5
  4. package/publishTimestamp.d.ts +1 -1
  5. package/publishTimestamp.js +1 -1
  6. package/src/AdaptableInterfaces/IAdaptable.d.ts +12 -2
  7. package/src/AdaptableOptions/AdaptableOptions.d.ts +1 -1
  8. package/src/AdaptableOptions/FilterOptions.d.ts +14 -7
  9. package/src/AdaptableOptions/GeneralOptions.d.ts +0 -7
  10. package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
  11. package/src/AdaptableOptions/QueryLanguageOptions.d.ts +7 -0
  12. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +89 -4
  13. package/src/Api/AlertApi.d.ts +1 -1
  14. package/src/Api/ColumnApi.d.ts +33 -0
  15. package/src/Api/ConfigApi.d.ts +8 -0
  16. package/src/Api/DataChangeHistoryApi.d.ts +10 -4
  17. package/src/Api/GridApi.d.ts +34 -8
  18. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -1
  19. package/src/Api/Implementation/AlertApiImpl.js +11 -4
  20. package/src/Api/Implementation/ColumnApiImpl.d.ts +7 -0
  21. package/src/Api/Implementation/ColumnApiImpl.js +37 -1
  22. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
  23. package/src/Api/Implementation/ConfigApiImpl.js +28 -17
  24. package/src/Api/Implementation/DataChangeHistoryApiImpl.d.ts +1 -0
  25. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +3 -0
  26. package/src/Api/Implementation/FreeTextColumnApiImpl.js +2 -1
  27. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  28. package/src/Api/Implementation/GridApiImpl.js +17 -1
  29. package/src/Api/Implementation/InternalApiImpl.d.ts +2 -0
  30. package/src/Api/Implementation/InternalApiImpl.js +16 -0
  31. package/src/Api/Implementation/QueryLanguageApiImpl.d.ts +2 -0
  32. package/src/Api/Implementation/QueryLanguageApiImpl.js +3 -0
  33. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +11 -8
  34. package/src/Api/Implementation/UserInterfaceApiImpl.js +57 -80
  35. package/src/Api/InternalApi.d.ts +2 -0
  36. package/src/Api/QueryLanguageApi.d.ts +5 -0
  37. package/src/Api/UserInterfaceApi.d.ts +14 -5
  38. package/src/PredefinedConfig/AlertState.d.ts +10 -0
  39. package/src/PredefinedConfig/CalculatedColumnState.d.ts +4 -37
  40. package/src/PredefinedConfig/Common/AdaptablePredicate.js +16 -15
  41. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +5 -1
  42. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +49 -0
  43. package/src/{AdaptableOptions/DataChangeTrackingOptions.js → PredefinedConfig/Common/SpecialColumnSettings.js} +0 -0
  44. package/src/PredefinedConfig/FilterState.d.ts +1 -1
  45. package/src/PredefinedConfig/FreeTextColumnState.d.ts +10 -0
  46. package/src/PredefinedConfig/Selection/GridRow.d.ts +12 -4
  47. package/src/PredefinedConfig/SystemState.d.ts +4 -1
  48. package/src/Redux/ActionsReducers/SystemRedux.d.ts +6 -6
  49. package/src/Redux/ActionsReducers/SystemRedux.js +11 -11
  50. package/src/Redux/Store/AdaptableReduxMerger.js +7 -1
  51. package/src/Redux/Store/AdaptableStore.js +12 -0
  52. package/src/Strategy/AlertModule.js +1 -1
  53. package/src/Strategy/DataChangeHistoryModule.js +1 -1
  54. package/src/Strategy/ExportModule.d.ts +0 -2
  55. package/src/Strategy/ExportModule.js +58 -61
  56. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +2 -4
  57. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +11 -5
  58. package/src/Utilities/Helpers/DateHelper.d.ts +8 -2
  59. package/src/Utilities/Helpers/DateHelper.js +42 -20
  60. package/src/Utilities/ObjectFactory.d.ts +1 -1
  61. package/src/Utilities/ObjectFactory.js +13 -1
  62. package/src/Utilities/Services/AlertService.d.ts +1 -0
  63. package/src/Utilities/Services/AlertService.js +5 -0
  64. package/src/Utilities/Services/DataService.d.ts +0 -4
  65. package/src/Utilities/Services/DataService.js +2 -18
  66. package/src/Utilities/Services/Interface/IAlertService.d.ts +2 -1
  67. package/src/Utilities/Services/Interface/IDataService.d.ts +0 -2
  68. package/src/Utilities/Services/Interface/ILicenseService.d.ts +2 -1
  69. package/src/Utilities/Services/LicenseService.d.ts +2 -2
  70. package/src/Utilities/Services/MetamodelService.js +1 -0
  71. package/src/Utilities/Services/ModuleService.js +31 -24
  72. package/src/Utilities/Services/ReportService.js +1 -1
  73. package/src/Utilities/Services/TeamSharingService.d.ts +1 -0
  74. package/src/Utilities/Services/TeamSharingService.js +4 -2
  75. package/src/Utilities/runIfNotResolvedIn.d.ts +8 -0
  76. package/src/Utilities/runIfNotResolvedIn.js +23 -0
  77. package/src/View/AdaptableView.js +1 -1
  78. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +19 -5
  79. package/src/View/BulkUpdate/BulkUpdatePopup.d.ts +2 -0
  80. package/src/View/BulkUpdate/BulkUpdatePopup.js +4 -2
  81. package/src/View/BulkUpdate/BulkUpdateViewPanel.d.ts +2 -0
  82. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +3 -1
  83. package/src/View/Components/FilterForm/FilterForm.d.ts +3 -51
  84. package/src/View/Components/FilterForm/FilterForm.js +44 -23
  85. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -0
  86. package/src/View/Components/FilterForm/ListBoxFilterForm.js +14 -5
  87. package/src/View/Components/FilterForm/QuickFilterForm.d.ts +3 -43
  88. package/src/View/Components/FilterForm/QuickFilterForm.js +64 -23
  89. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +3 -0
  90. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.js +8 -0
  91. package/src/View/Components/Popups/AdaptablePopup.d.ts +1 -1
  92. package/src/View/Components/Selectors/ColumnValueSelector.d.ts +10 -2
  93. package/src/View/Components/Selectors/ColumnValueSelector.js +45 -13
  94. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +24 -6
  95. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +42 -32
  96. package/src/View/DataChangeHistory/DataChangeHistoryPopup.d.ts +5 -1
  97. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +8 -5
  98. package/src/View/FreeTextColumn/FreeTextColumnPopup.js +3 -1
  99. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +3 -1
  100. package/src/View/GridInfo/GridInfoPopup.js +4 -1
  101. package/src/View/Query/QueryViewPanel.js +1 -1
  102. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.d.ts +1 -1
  103. package/src/View/Schedule/Wizard/ScheduleScheduleWizard.js +6 -8
  104. package/src/View/UIHelper.d.ts +2 -0
  105. package/src/View/UIHelper.js +10 -1
  106. package/src/agGrid/ActionColumnRenderer.d.ts +2 -1
  107. package/src/agGrid/ActionColumnRenderer.js +20 -3
  108. package/src/agGrid/Adaptable.d.ts +20 -4
  109. package/src/agGrid/Adaptable.js +186 -55
  110. package/src/components/Dashboard/Dashboard.js +1 -1
  111. package/src/components/DropdownButton/index.js +1 -1
  112. package/src/components/ExpressionEditor/index.js +2 -1
  113. package/src/components/Loader/Loader.d.ts +7 -0
  114. package/src/components/Loader/Loader.js +13 -0
  115. package/src/components/Loader/index.d.ts +2 -0
  116. package/src/components/Loader/index.js +7 -0
  117. package/src/components/ProgressIndicator/ProgressIndicator.d.ts +2 -0
  118. package/src/components/ProgressIndicator/ProgressIndicator.js +54 -0
  119. package/src/metamodel/adaptable.metamodel.d.ts +74 -34
  120. package/src/metamodel/adaptable.metamodel.js +346 -116
  121. package/src/parser/src/types.d.ts +11 -11
  122. package/src/types.d.ts +4 -4
  123. package/version.d.ts +1 -1
  124. package/version.js +1 -1
  125. package/src/AdaptableOptions/DataChangeTrackingOptions.d.ts +0 -16
  126. package/src/Utilities/Interface/ProgressIndicator.d.ts +0 -4
  127. package/src/Utilities/Interface/ProgressIndicator.js +0 -2
  128. package/src/View/Export/ProgressIndicator.d.ts +0 -6
  129. package/src/View/Export/ProgressIndicator.js +0 -25
package/base.css CHANGED
@@ -1339,6 +1339,7 @@
1339
1339
  --ab-cmp-file-droppable--drag-over__outline: 2px dashed var(--ab-cmp-file-droppable--drag-over__color); }
1340
1340
  :root {
1341
1341
  --ab-dashboard__background: var(--ab-color-primary);
1342
+ --ab-dashboard__font-family: var(--ab__font-family);
1342
1343
  --ab-dashboard-wrap: nowrap;
1343
1344
  --ab-dashboard-gap-size: 3px;
1344
1345
  --ab-dashboard-gap__background: var(--ab-color-primarylight);
@@ -1361,6 +1362,19 @@
1361
1362
  --ab-cmp-datepicker__font-size: var(--ab-font-size-2);
1362
1363
  --ab-cmp-datepicker__font-family: var(--ab__font-family);
1363
1364
  --ab-cmp-datepicker__cell-size: 30px; }
1365
+ :root {
1366
+ --ab-cmp-loader__background: var(--ab-color-primarydark);
1367
+ --ab-cmp-loader__border: var(--ab-color-text-on-primary);
1368
+ --ab-cmp-loader__font-size: var(--ab-font-size-2); }
1369
+ :root {
1370
+ --ab-cmp-progress-indicator__delay: 1s;
1371
+ --ab-cmp-progress-indicator__z-index: 9999;
1372
+ --ab-cmp-progress-indicator__font-size: var(--ab-font-size-4);
1373
+ --ab-cmp-progress-indicator__font-style: italic;
1374
+ --ab-cmp-progress-indicator__font-family: var(--ab__font-family);
1375
+ --ab-cmp-progress-indicator__padding: var(--ab-space-3);
1376
+ --ab-cmp-progress-indicator__background: var(--ab-color-primary);
1377
+ --ab-cmp-progress-indicator__color: var(--ab-color-text-on-primary); }
1364
1378
  :root {
1365
1379
  --ab-cmp-wizard__padding: var(--ab-space-5);
1366
1380
  --ab-cmp-wizard__margin: var(--ab-space-1);
@@ -1467,7 +1481,11 @@
1467
1481
  --ab-cmp-toolpanel__width: 200px;
1468
1482
  --ab-cmp-toolpanel-header__background: var(--ab-dashboard-header__background);
1469
1483
  --ab-cmp-toolpanel-header__color: var(--ab-dashboard-header__color);
1470
- --ab-cmp-toolpanel-header__grid-gap: 3px; }
1484
+ --ab-cmp-toolpanel-header__grid-gap: 3px;
1485
+ --ab-cmp-toolpanel__color: var(--ab-dashboard__color);
1486
+ --ab-cmp-toolpanel__font-family: var(--ab__font-family); }
1487
+ :root {
1488
+ --ab-cmp-custom-sort-wizard-loader__font-size: var(--ab-font-size-4); }
1471
1489
  .ab-Radio-input:focus + svg rect {
1472
1490
  stroke: var(--ab-color-accent);
1473
1491
  stroke-width: 2; }
@@ -2060,7 +2078,8 @@ input[type="number"].ab-Input:hover::-webkit-inner-spin-button:active {
2060
2078
  z-index: 1000;
2061
2079
  user-select: none;
2062
2080
  background: var(--ab-dashboard-gap__background);
2063
- color: var(--ab-dashboard__color); }
2081
+ color: var(--ab-dashboard__color);
2082
+ font-family: var(--ab-dashboard__font-family); }
2064
2083
  .ab-Dashboard--inline:not(.ab-Dashboard--collapsed) {
2065
2084
  display: flex; }
2066
2085
  .ab-Dashboard__header {
@@ -2251,6 +2270,55 @@ input[type="number"].ab-Input:hover::-webkit-inner-spin-button:active {
2251
2270
  box-shadow: var(--ab-focus__box-shadow); }
2252
2271
  .ab-ToggleButton__input:disabled + .ab-ToggleButton__slider {
2253
2272
  opacity: 0.5; }
2273
+ .ab-Loader {
2274
+ font-size: var(--ab-cmp-loader__font-size);
2275
+ margin-top: 8px;
2276
+ font-style: italic; }
2277
+ .ab-Loader__text, .ab-Loader__Spinner {
2278
+ vertical-align: middle; }
2279
+ .ab-Loader .ab-Loader__Spinner {
2280
+ margin-right: 5px; }
2281
+ .ab-Loader__Spinner {
2282
+ display: inline-block;
2283
+ border-radius: 50%;
2284
+ border: 2px solid var(--ab-cmp-loader__background);
2285
+ border-top: 2px solid var(--ab-cmp-loader__border);
2286
+ width: 10px;
2287
+ height: 10px;
2288
+ bottom: 0;
2289
+ animation: spin 1.5s linear infinite; }
2290
+ @keyframes spin {
2291
+ 0% {
2292
+ transform: rotate(0deg); }
2293
+ 100% {
2294
+ transform: rotate(360deg); } }
2295
+ .ab-progress-indicator-wrapper {
2296
+ align-items: center;
2297
+ display: flex;
2298
+ justify-content: center;
2299
+ position: fixed;
2300
+ top: 0;
2301
+ left: 0;
2302
+ height: 0;
2303
+ width: 0;
2304
+ z-index: var(--ab-cmp-progress-indicator__z-index);
2305
+ opacity: 0;
2306
+ transition-delay: var(--ab-cmp-progress-indicator__delay);
2307
+ transition-property: opacity;
2308
+ transition-duration: 0.3s; }
2309
+ .ab-progress-indicator-wrapper--visible {
2310
+ opacity: 1; }
2311
+ .ab-progress-indicator-wrapper .ab-progress-indicator-body {
2312
+ padding: var(--ab-cmp-progress-indicator__padding);
2313
+ background: var(--ab-cmp-progress-indicator__background);
2314
+ color: var(--ab-cmp-progress-indicator__color);
2315
+ border-style: none;
2316
+ border-width: 0px;
2317
+ border-radius: var(--ab__border-radius);
2318
+ box-shadow: var(--ab-focus__box-shadow);
2319
+ font-size: var(--ab-cmp-progress-indicator__font-size);
2320
+ font-style: var(--ab-cmp-progress-indicator__font-style);
2321
+ font-family: var(--ab-cmp-progress-indicator__font-family); }
2254
2322
  .ab-ObjectCollection__list > * {
2255
2323
  background: var(--ab-cmp-listgroupitem__background);
2256
2324
  color: var(--ab-cmp-listgroupitem__color); }
@@ -2347,7 +2415,9 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
2347
2415
  .ab-Dashboard__application-icon {
2348
2416
  margin-right: var(--ab-space-2); }
2349
2417
  .ab-ToolPanel {
2350
- min-width: calc(var(--ab-cmp-toolpanel__width) - 1px); }
2418
+ min-width: calc(var(--ab-cmp-toolpanel__width) - 1px);
2419
+ color: var(--ab-cmp-toolpanel__color);
2420
+ font-family: var(--ab-cmp-toolpanel__font-family); }
2351
2421
  .ab-ToolPanel .ab-ToolPanel__header {
2352
2422
  background: var(--ab-cmp-toolpanel-header__background);
2353
2423
  color: var(--ab-cmp-toolpanel-header__color); }
@@ -2358,6 +2428,8 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
2358
2428
  flex-direction: row;
2359
2429
  flex-wrap: wrap;
2360
2430
  grid-gap: var(--ab-cmp-toolpanel-header__grid-gap); }
2431
+ .ab-CustomSortWizard__SortOrder .ab-Loader__text {
2432
+ font-size: var(--ab-cmp-custom-sort-wizard-loader__font-size); }
2361
2433
  .ab-alert--error {
2362
2434
  background: var(--ab-color-error); }
2363
2435
  .ab-alert--success {
@@ -2482,31 +2554,7 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
2482
2554
  flex-flow: column; }
2483
2555
  .ag-details-row .ag-details-grid {
2484
2556
  flex: 1; }
2485
- div.ab-progress-indicator-wrapper {
2486
- align-items: center;
2487
- display: flex;
2488
- height: 100vh;
2489
- justify-content: center;
2490
- left: 0;
2491
- position: fixed;
2492
- top: 0;
2493
- width: 100%;
2494
- z-index: 9999;
2495
- opacity: 0;
2496
- transition-delay: 0.5s;
2497
- transition-property: opacity;
2498
- transition-duration: 0.3s; }
2499
- div.ab-progress-indicator-wrapper--visible {
2500
- opacity: 1; }
2501
- div.ab-progress-indicator-wrapper .ab-progress-indicator-text {
2502
- padding: var(--ab-space-3);
2503
- background: var(--ab-color-primary);
2504
- color: var(--ab-color-text-on-primary);
2505
- border-style: none;
2506
- border-width: 0px;
2507
- border-radius: var(--ab__border-radius);
2508
- box-shadow: var(--ab-focus__box-shadow);
2509
- font-size: var(--ab-font-size-3);
2510
- font-family: var(--ab__font-family); }
2557
+ .ab-wait-for-progress-indicator.ab-Grid {
2558
+ pointer-events: none; }
2511
2559
 
2512
2560
  /*# sourceMappingURL=base.css.map */
package/index.css CHANGED
@@ -1915,6 +1915,7 @@ template {
1915
1915
 
1916
1916
  :root {
1917
1917
  --ab-dashboard__background: var(--ab-color-primary);
1918
+ --ab-dashboard__font-family: var(--ab__font-family);
1918
1919
  --ab-dashboard-wrap: nowrap;
1919
1920
  --ab-dashboard-gap-size: 3px;
1920
1921
  --ab-dashboard-gap__background: var(--ab-color-primarylight);
@@ -1940,6 +1941,21 @@ template {
1940
1941
  --ab-cmp-datepicker__font-family: var(--ab__font-family);
1941
1942
  --ab-cmp-datepicker__cell-size: 30px; }
1942
1943
 
1944
+ :root {
1945
+ --ab-cmp-loader__background: var(--ab-color-primarydark);
1946
+ --ab-cmp-loader__border: var(--ab-color-text-on-primary);
1947
+ --ab-cmp-loader__font-size: var(--ab-font-size-2); }
1948
+
1949
+ :root {
1950
+ --ab-cmp-progress-indicator__delay: 1s;
1951
+ --ab-cmp-progress-indicator__z-index: 9999;
1952
+ --ab-cmp-progress-indicator__font-size: var(--ab-font-size-4);
1953
+ --ab-cmp-progress-indicator__font-style: italic;
1954
+ --ab-cmp-progress-indicator__font-family: var(--ab__font-family);
1955
+ --ab-cmp-progress-indicator__padding: var(--ab-space-3);
1956
+ --ab-cmp-progress-indicator__background: var(--ab-color-primary);
1957
+ --ab-cmp-progress-indicator__color: var(--ab-color-text-on-primary); }
1958
+
1943
1959
  :root {
1944
1960
  --ab-cmp-wizard__padding: var(--ab-space-5);
1945
1961
  --ab-cmp-wizard__margin: var(--ab-space-1);
@@ -2067,7 +2083,12 @@ template {
2067
2083
  --ab-cmp-toolpanel__width: 200px;
2068
2084
  --ab-cmp-toolpanel-header__background: var(--ab-dashboard-header__background);
2069
2085
  --ab-cmp-toolpanel-header__color: var(--ab-dashboard-header__color);
2070
- --ab-cmp-toolpanel-header__grid-gap: 3px; }
2086
+ --ab-cmp-toolpanel-header__grid-gap: 3px;
2087
+ --ab-cmp-toolpanel__color: var(--ab-dashboard__color);
2088
+ --ab-cmp-toolpanel__font-family: var(--ab__font-family); }
2089
+
2090
+ :root {
2091
+ --ab-cmp-custom-sort-wizard-loader__font-size: var(--ab-font-size-4); }
2071
2092
 
2072
2093
  .ab-Radio-input:focus + svg rect {
2073
2094
  stroke: var(--ab-color-accent);
@@ -2809,7 +2830,8 @@ input[type="number"].ab-Input:hover::-webkit-inner-spin-button:active {
2809
2830
  z-index: 1000;
2810
2831
  user-select: none;
2811
2832
  background: var(--ab-dashboard-gap__background);
2812
- color: var(--ab-dashboard__color); }
2833
+ color: var(--ab-dashboard__color);
2834
+ font-family: var(--ab-dashboard__font-family); }
2813
2835
 
2814
2836
  .ab-Dashboard--inline:not(.ab-Dashboard--collapsed) {
2815
2837
  display: flex; }
@@ -3049,6 +3071,63 @@ input[type="number"].ab-Input:hover::-webkit-inner-spin-button:active {
3049
3071
  .ab-ToggleButton__input:disabled + .ab-ToggleButton__slider {
3050
3072
  opacity: 0.5; }
3051
3073
 
3074
+ .ab-Loader {
3075
+ font-size: var(--ab-cmp-loader__font-size);
3076
+ margin-top: 8px;
3077
+ font-style: italic; }
3078
+
3079
+ .ab-Loader__text, .ab-Loader__Spinner {
3080
+ vertical-align: middle; }
3081
+
3082
+ .ab-Loader .ab-Loader__Spinner {
3083
+ margin-right: 5px; }
3084
+
3085
+ .ab-Loader__Spinner {
3086
+ display: inline-block;
3087
+ border-radius: 50%;
3088
+ border: 2px solid var(--ab-cmp-loader__background);
3089
+ border-top: 2px solid var(--ab-cmp-loader__border);
3090
+ width: 10px;
3091
+ height: 10px;
3092
+ bottom: 0;
3093
+ animation: spin 1.5s linear infinite; }
3094
+
3095
+ @keyframes spin {
3096
+ 0% {
3097
+ transform: rotate(0deg); }
3098
+ 100% {
3099
+ transform: rotate(360deg); } }
3100
+
3101
+ .ab-progress-indicator-wrapper {
3102
+ align-items: center;
3103
+ display: flex;
3104
+ justify-content: center;
3105
+ position: fixed;
3106
+ top: 0;
3107
+ left: 0;
3108
+ height: 0;
3109
+ width: 0;
3110
+ z-index: var(--ab-cmp-progress-indicator__z-index);
3111
+ opacity: 0;
3112
+ transition-delay: var(--ab-cmp-progress-indicator__delay);
3113
+ transition-property: opacity;
3114
+ transition-duration: 0.3s; }
3115
+
3116
+ .ab-progress-indicator-wrapper--visible {
3117
+ opacity: 1; }
3118
+
3119
+ .ab-progress-indicator-wrapper .ab-progress-indicator-body {
3120
+ padding: var(--ab-cmp-progress-indicator__padding);
3121
+ background: var(--ab-cmp-progress-indicator__background);
3122
+ color: var(--ab-cmp-progress-indicator__color);
3123
+ border-style: none;
3124
+ border-width: 0px;
3125
+ border-radius: var(--ab__border-radius);
3126
+ box-shadow: var(--ab-focus__box-shadow);
3127
+ font-size: var(--ab-cmp-progress-indicator__font-size);
3128
+ font-style: var(--ab-cmp-progress-indicator__font-style);
3129
+ font-family: var(--ab-cmp-progress-indicator__font-family); }
3130
+
3052
3131
  .ab-ObjectCollection__list > * {
3053
3132
  background: var(--ab-cmp-listgroupitem__background);
3054
3133
  color: var(--ab-cmp-listgroupitem__color); }
@@ -3170,7 +3249,9 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
3170
3249
  margin-right: var(--ab-space-2); }
3171
3250
 
3172
3251
  .ab-ToolPanel {
3173
- min-width: calc(var(--ab-cmp-toolpanel__width) - 1px); }
3252
+ min-width: calc(var(--ab-cmp-toolpanel__width) - 1px);
3253
+ color: var(--ab-cmp-toolpanel__color);
3254
+ font-family: var(--ab-cmp-toolpanel__font-family); }
3174
3255
 
3175
3256
  .ab-ToolPanel .ab-ToolPanel__header {
3176
3257
  background: var(--ab-cmp-toolpanel-header__background);
@@ -3185,6 +3266,9 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
3185
3266
  flex-wrap: wrap;
3186
3267
  grid-gap: var(--ab-cmp-toolpanel-header__grid-gap); }
3187
3268
 
3269
+ .ab-CustomSortWizard__SortOrder .ab-Loader__text {
3270
+ font-size: var(--ab-cmp-custom-sort-wizard-loader__font-size); }
3271
+
3188
3272
  .ab-alert--error {
3189
3273
  background: var(--ab-color-error); }
3190
3274
 
@@ -3340,34 +3424,8 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
3340
3424
  .ag-details-row .ag-details-grid {
3341
3425
  flex: 1; }
3342
3426
 
3343
- div.ab-progress-indicator-wrapper {
3344
- align-items: center;
3345
- display: flex;
3346
- height: 100vh;
3347
- justify-content: center;
3348
- left: 0;
3349
- position: fixed;
3350
- top: 0;
3351
- width: 100%;
3352
- z-index: 9999;
3353
- opacity: 0;
3354
- transition-delay: 0.5s;
3355
- transition-property: opacity;
3356
- transition-duration: 0.3s; }
3357
-
3358
- div.ab-progress-indicator-wrapper--visible {
3359
- opacity: 1; }
3360
-
3361
- div.ab-progress-indicator-wrapper .ab-progress-indicator-text {
3362
- padding: var(--ab-space-3);
3363
- background: var(--ab-color-primary);
3364
- color: var(--ab-color-text-on-primary);
3365
- border-style: none;
3366
- border-width: 0px;
3367
- border-radius: var(--ab__border-radius);
3368
- box-shadow: var(--ab-focus__box-shadow);
3369
- font-size: var(--ab-font-size-3);
3370
- font-family: var(--ab__font-family); }
3427
+ .ab-wait-for-progress-indicator.ab-Grid {
3428
+ pointer-events: none; }
3371
3429
 
3372
3430
  html.ab--theme-light {
3373
3431
  --ab-theme-loaded: light; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "10.0.0-canary.3",
3
+ "version": "10.0.3",
4
4
  "description": "Powerful data-agnostic HTML5 datagrid add-on that sits on top of an underlying grid component and provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -60,9 +60,5 @@
60
60
  "email": "jonny.wolfson@adaptabletools.com"
61
61
  },
62
62
  "homepage": "http://www.adaptabletools.com/",
63
- "repository": {
64
- "type": "git",
65
- "url": "git+https://github.com/AdaptableTools/adaptable.git"
66
- },
67
63
  "license": "SEE LICENSE IN LICENSE.md"
68
64
  }
@@ -1,2 +1,2 @@
1
- declare const _default: 1635198008462;
1
+ declare const _default: 1637681957931;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1635198008462;
3
+ exports.default = 1637681957931;
@@ -114,7 +114,10 @@ export interface IAdaptable {
114
114
  jumpToRow(rowNode: RowNode): void;
115
115
  jumpToColumn(columnId: string): void;
116
116
  jumpToCell(columnId: string, rowNode: RowNode): void;
117
+ getGridContainerElement(): HTMLElement | null;
117
118
  setDataSource(dataSource: any): void;
119
+ getGridData(): any[];
120
+ getFilteredData(): any[];
118
121
  loadDataSource(dataSource: any): void;
119
122
  updateRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
120
123
  addRows(dataRows: any[], dataUpdateConfig?: DataUpdateConfig): void;
@@ -136,12 +139,17 @@ export interface IAdaptable {
136
139
  [key: string]: boolean;
137
140
  }): any[];
138
141
  getDistinctValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode): GridCell[];
142
+ getDistinctFilterValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, filter: string, skipRowNode?: RowNode): Promise<{
143
+ gridCells: GridCell[];
144
+ suppressClientSideFilter?: boolean;
145
+ }>;
146
+ getDistinctCustomSortValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, skipRowNode?: RowNode): Promise<GridCell[]>;
147
+ getDistinctBulkUpdateValuesForColumn(column: AdaptableColumn, visibleRowsOnly: boolean, selectedGridCells: GridCell[], skipRowNode?: RowNode): Promise<GridCell[]>;
139
148
  getDisplayValue(id: any, columnId: string): string;
140
149
  getGridCellFromRowNode(rowNode: RowNode, columnId: string): GridCell | undefined;
141
150
  getRawValueFromRowNode(rowNode: RowNode, columnId: string): any;
142
151
  getDisplayValueFromRowNode(rowNode: RowNode, columnId: string): string | undefined;
143
- getFormattedValueFromRawValue(rawValue: any, columnId: string): string | undefined;
144
- getDisplayValueFromRawValue(columnId: string, rawValue: any, skipCellRenderers?: boolean): string | undefined;
152
+ getDisplayValueFromRawValue(columnId: string, rawValue: any): string | undefined;
145
153
  getDataRowFromRowNode(rowNode: RowNode): any;
146
154
  getRowNodesForPrimaryKeys(primaryKeyValues: any[]): RowNode[];
147
155
  getRowNodeForPrimaryKey(primaryKeyValue: any): RowNode;
@@ -205,6 +213,8 @@ export interface IAdaptable {
205
213
  closeAllRowGroups(): void;
206
214
  expandRowGroupsForValues(columnValues: any[]): void;
207
215
  getExpandRowGroupsKeys(): any[];
216
+ getAdaptableContainerElement(): HTMLElement | null;
217
+ getGridContainerElement(): HTMLElement | null;
208
218
  buildStandaloneColumnHeader(adaptableColumn: AdaptableColumn): AdaptableMenuItem[];
209
219
  setupColumns(): void;
210
220
  updateColDefsForSpecialColumns({ skipSetupColumns }?: {
@@ -167,7 +167,7 @@ export interface AdaptableOptions {
167
167
  */
168
168
  queryLanguageOptions?: QueryLanguageOptions;
169
169
  /**
170
- * Options to manage the 'Data Change History Module', which provides an overview of all previous changes, giving the possibility to undo specific changes
170
+ * Options to manage Data Change History Module which provides an overview of all data changes
171
171
  *
172
172
  * @gridInfoContainer
173
173
  */
@@ -58,6 +58,13 @@ export interface FilterOptions {
58
58
  * @gridInfoItem
59
59
  */
60
60
  quickFilterTrigger?: 'mouseenter' | 'click';
61
+ /**
62
+ * Whether to open Quick Filter Values dropdown with mouse hover or click
63
+ *
64
+ * @defaultValue 'mouseenter'
65
+ * @gridInfoItem
66
+ */
67
+ quickFilterValuesTrigger?: 'mouseenter' | 'click';
61
68
  /**
62
69
  * When to re-filter grid after user edits data: 'Always', 'Never' or 'Throttle' (which requires a 'ThrottleDelay')
63
70
  *
@@ -92,26 +99,26 @@ export interface FilterOptions {
92
99
  */
93
100
  sortColumnValuesInFilter?: boolean;
94
101
  /**
95
- * Default filter type for numeric Columns in Quick Filter
102
+ * Default filter type for numeric Columns
96
103
  *
97
104
  * @defaultValue Equals
98
105
  * @gridInfoItem
99
106
  */
100
- defaultNumericColumnFilter?: 'GreaterThan' | 'LessThan' | 'Equals' | 'NotEquals';
107
+ defaultNumericColumnFilter?: 'GreaterThan' | 'LessThan' | 'Equals' | 'NotEquals' | ((column: AdaptableColumn) => 'GreaterThan' | 'LessThan' | 'Equals' | 'NotEquals');
101
108
  /**
102
- * Default filter type for string Columns in Quick Filter
109
+ * Default filter type for string Columns
103
110
  *
104
111
  * @defaultValue Contains
105
112
  * @gridInfoItem
106
113
  */
107
- defaultStringColumnFilter?: 'Is' | 'IsNot' | 'Contains' | 'NotContains' | 'StartsWith' | 'EndsWith' | 'Regex';
114
+ defaultStringColumnFilter?: 'Is' | 'IsNot' | 'Contains' | 'NotContains' | 'StartsWith' | 'EndsWith' | 'Regex' | ((column: AdaptableColumn) => 'Is' | 'IsNot' | 'Contains' | 'NotContains' | 'StartsWith' | 'EndsWith' | 'Regex');
108
115
  /**
109
- * Default filter type for date Columns in Quick Filter
116
+ * Default filter type for date Columns
110
117
  *
111
118
  * @defaultValue On
112
119
  * @gridInfoItem
113
120
  */
114
- defaultDateColumnFilter?: 'After' | 'Before' | 'On' | 'NotOn';
121
+ defaultDateColumnFilter?: 'After' | 'Before' | 'On' | 'NotOn' | ((column: AdaptableColumn) => 'After' | 'Before' | 'On' | 'NotOn');
115
122
  /**
116
123
  * Whether to open the Filter Form on the Values or Predicates tab
117
124
  *
@@ -120,7 +127,7 @@ export interface FilterOptions {
120
127
  */
121
128
  defaultFilterFormTab?: 'Values' | 'Predicates';
122
129
  /**
123
- * Allows filtering on Calculated, Action & FreeText columns
130
+ * Allows filtering on Calculated & FreeText columns
124
131
  *
125
132
  * @defaultValue true
126
133
  * @gridInfoItem
@@ -1,7 +1,6 @@
1
1
  import { AdaptableComparerFunction } from '../PredefinedConfig/Common/AdaptableComparerFunction';
2
2
  import { AlternativeModuleName } from '../PredefinedConfig/Common/AlternativeModuleName';
3
3
  import { CellSummaryOperation } from '../PredefinedConfig/Common/CellSummary';
4
- import { DataChangeTrackingOptions } from './DataChangeTrackingOptions';
5
4
  /**
6
5
  * General options for configuring AdapTable including managing Primary Keys.
7
6
  */
@@ -55,12 +54,6 @@ export interface GeneralOptions {
55
54
  * @defaultValue null
56
55
  */
57
56
  alternativeModuleNames?: AlternativeModuleName[];
58
- /**
59
- * Settings for tracking data changes which are consumed in reactive expressions (Observable or Aggregation)
60
- *
61
- * @defaultValue 'When Required', FrameSize: 2880000
62
- */
63
- dataChangeTrackingOptions?: DataChangeTrackingOptions;
64
57
  /**
65
58
  * Calendar to use for calculating Holidays & Working Days
66
59
  *
@@ -32,7 +32,7 @@ export interface LayoutOptions {
32
32
  */
33
33
  autoSizeColumnsInPivotLayout?: boolean;
34
34
  /**
35
- * Whether a "Default Layout" will be created in addition to Layouts in Config (if none there, Default Layout is always created)
35
+ * Whether a "Default Layout" will be created in addition to Layouts provided in Config
36
36
  *
37
37
  * @defaultValue false
38
38
  * @gridInfoItem
@@ -59,6 +59,13 @@ export interface QueryLanguageOptions {
59
59
  * @gridInfoItem
60
60
  */
61
61
  performExpressionValidation?: boolean;
62
+ /**
63
+ * Maximum time (in milliseconds) to hold a Data Change event in a trailing timeframe (see observableExpressionFunctions); value is capped at 86400000 (~24 hours) for performance reasons
64
+ *
65
+ * @defaultValue 28800000 (~8 hours)
66
+ * @gridInfoItem
67
+ */
68
+ maxTimeframeSize?: number;
62
69
  }
63
70
  /**
64
71
  * Module specific Expression Functions
@@ -6,6 +6,7 @@ import { AdaptableButton, ButtonContext } from '../PredefinedConfig/Common/Adapt
6
6
  import { RowNode } from '@ag-grid-community/all-modules';
7
7
  import { AdaptableObject } from '../PredefinedConfig/Common/AdaptableObject';
8
8
  import { AdaptableStyle } from '../PredefinedConfig/Common/AdaptableStyle';
9
+ import { GridCell } from '../../types';
9
10
  /**
10
11
  * Options for managing the User Interface of AdapTable
11
12
  */
@@ -30,11 +31,27 @@ export interface UserInterfaceOptions {
30
31
  /**
31
32
  * List of values which are permitted (e.g. to show in filter)
32
33
  */
33
- permittedValues?: CellValuesList[];
34
+ permittedValues?: PermittedValues[];
34
35
  /**
35
- * Dropdown values displayed when column is being edited
36
+ * Dropdown values displayed when column is being edited.
37
+ * When not defined it defaults to permittedValues.
36
38
  */
37
- editLookUpItems?: CellValuesList[];
39
+ editLookUpItems?: EditLookUpPermittedValues[];
40
+ /**
41
+ * Dropdown values for filter options inside floating and header filter.
42
+ * When not defined it defaults to permittedValues.
43
+ */
44
+ filterPermittedValues?: FilterPermittedValues[];
45
+ /**
46
+ * Custom column values for defining custom sort.
47
+ * When not defined it defaults to permittedValues.
48
+ */
49
+ customSortPermittedValues?: CustomSortPermittedValues[];
50
+ /**
51
+ * Custom column values for editing via bulk-update.
52
+ * When not defined it defaults to permittedValues.
53
+ */
54
+ bulkUpdatePermittedValues?: BulkUpdatePermittedValues[];
38
55
  /**
39
56
  * Colours to display in Colour Picker (in place of AdapTable's default set)
40
57
  */
@@ -65,16 +82,56 @@ export interface UserInterfaceOptions {
65
82
  */
66
83
  showDocumentationLinks?: boolean;
67
84
  }
68
- export interface CellValuesList {
85
+ export interface BasePermittedValues {
69
86
  /**
70
87
  * Scope where Values will appear (Mandatory property)
71
88
  */
72
89
  scope: AdaptableScope;
90
+ }
91
+ /**
92
+ * Permitted/possible values, when column values can be selected (e.g. sort, bulk-update)
93
+ */
94
+ export interface PermittedValues extends BasePermittedValues {
73
95
  /**
74
96
  * Values to display: either hardcoded list or a function
75
97
  */
76
98
  values?: any[] | ((column: AdaptableColumn) => any[]);
77
99
  }
100
+ /**
101
+ * Used to define permitted values for inline column editor
102
+ */
103
+ export interface EditLookUpPermittedValues extends BasePermittedValues {
104
+ values?: any[] | ((column: AdaptableColumn, rowData: any) => any[]);
105
+ }
106
+ /**
107
+ * Used to define values inside the floating filter and floating filter (quick filter)
108
+ */
109
+ export interface FilterPermittedValues extends BasePermittedValues {
110
+ /**
111
+ * Prevents adaptable from filtering the list of values client-side.
112
+ * When true, values is called each time filtering is done, via the search bar.
113
+ * @default false
114
+ */
115
+ suppressClientSideFiltering?: boolean;
116
+ values: (column: AdaptableColumn, filter: string) => any[] | Promise<any[]>;
117
+ }
118
+ /**
119
+ * Custom column values for custom sort.
120
+ */
121
+ export interface CustomSortPermittedValues extends BasePermittedValues {
122
+ values: (column: AdaptableColumn) => any[] | Promise<any[]>;
123
+ }
124
+ /**
125
+ * User to define permitted values for when updating cells via bulk update
126
+ */
127
+ export interface BulkUpdatePermittedValues extends BasePermittedValues {
128
+ values: (column: AdaptableColumn, selectedGridCells: GridCell[]) => any[] | Promise<any[]>;
129
+ }
130
+ /**
131
+ * Use PermittedValues instead
132
+ * @deprecated
133
+ */
134
+ export declare type CellValuesList = PermittedValues;
78
135
  /**
79
136
  * A Special Column that wraps an AdapTable Button
80
137
  */
@@ -95,6 +152,10 @@ export interface ActionColumn extends AdaptableObject {
95
152
  * Shows Action Column also in grouped rows
96
153
  */
97
154
  includeGroupedRows?: boolean;
155
+ /**
156
+ * Additional optional properties for Column (e.g. filterable, resizable)
157
+ */
158
+ actionColumnSettings?: ActionColumnSettings;
98
159
  }
99
160
  /**
100
161
  * Context required by functions when using an Action Column Button
@@ -113,3 +174,27 @@ export interface ActionColumnButtonContext extends ButtonContext {
113
174
  */
114
175
  rowNode: RowNode;
115
176
  }
177
+ /**
178
+ * Set of optional properties that define an Action Columns behaviour
179
+ */
180
+ export interface ActionColumnSettings {
181
+ /**
182
+ * Preferred width (in pixels) for Column; if unset, calculated dynamically by underlying Grid
183
+ */
184
+ width?: number;
185
+ /**
186
+ * Whether Column can be resized (by dragging column header edges)
187
+ * @defaultValue true
188
+ */
189
+ resizable?: boolean;
190
+ /**
191
+ * Whether no menu should be shown for this Column header.
192
+ * @defaultValue false
193
+ */
194
+ suppressMenu?: boolean;
195
+ /**
196
+ * Whether if this Column should be movable via dragging
197
+ * @defaultValue false
198
+ */
199
+ suppressMovable?: boolean;
200
+ }
@@ -241,7 +241,7 @@ export interface AlertApi {
241
241
  * Returns a description of an Alert Definition
242
242
  * @param alertDefinition Alert Definition to use
243
243
  */
244
- getAlertDescription(alertDefinition: AlertDefinition): string;
244
+ getAlertDescription(alertDefinition: AlertDefinition, dataChangedInfo?: DataChangedInfo): string;
245
245
  /**
246
246
  * Returns a description of an Alert Definition's Rule
247
247
  * @param alertDefinition Alert Definition to use