@adaptabletools/adaptable 10.0.1 → 10.0.4-canary.1

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 (191) hide show
  1. package/base.css +68 -26
  2. package/index.css +80 -28
  3. package/package.json +1 -1
  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/FilterOptions.d.ts +14 -7
  8. package/src/AdaptableOptions/LayoutOptions.d.ts +1 -1
  9. package/src/AdaptableOptions/NotificationsOptions.d.ts +3 -1
  10. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +107 -5
  11. package/src/Api/AlertApi.d.ts +1 -1
  12. package/src/Api/CalculatedColumnApi.d.ts +15 -0
  13. package/src/Api/ColumnApi.d.ts +39 -0
  14. package/src/Api/ConfigApi.d.ts +8 -0
  15. package/src/Api/Events/AdaptableReady.d.ts +2 -6
  16. package/src/Api/Events/AdaptableStateChanged.d.ts +2 -1
  17. package/src/Api/Events/AlertFired.d.ts +2 -1
  18. package/src/Api/Events/BaseEventInfo.d.ts +10 -0
  19. package/src/{Utilities/Interface/ProgressIndicator.js → Api/Events/BaseEventInfo.js} +0 -0
  20. package/src/Api/Events/CellChanged.d.ts +2 -1
  21. package/src/Api/Events/ChexboxColumnClicked.d.ts +2 -1
  22. package/src/Api/Events/CustomToolbarConfigured.d.ts +2 -1
  23. package/src/Api/Events/DashboardChanged.d.ts +2 -1
  24. package/src/Api/Events/FlashingAlertFired.d.ts +2 -1
  25. package/src/Api/Events/GridDataChanged.d.ts +2 -1
  26. package/src/Api/Events/LayoutChanged.d.ts +2 -1
  27. package/src/Api/Events/LiveDataChanged.d.ts +2 -1
  28. package/src/Api/Events/SearchChanged.d.ts +2 -1
  29. package/src/Api/Events/SelectionChanged.d.ts +2 -1
  30. package/src/Api/Events/SystemStatusMessageDisplayed.d.ts +2 -1
  31. package/src/Api/Events/TeamSharingEntityChanged.d.ts +2 -1
  32. package/src/Api/Events/ThemeChanged.d.ts +2 -1
  33. package/src/Api/GridApi.d.ts +34 -8
  34. package/src/Api/Implementation/AlertApiImpl.d.ts +1 -1
  35. package/src/Api/Implementation/AlertApiImpl.js +22 -15
  36. package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +3 -0
  37. package/src/Api/Implementation/CalculatedColumnApiImpl.js +23 -0
  38. package/src/Api/Implementation/ColumnApiImpl.d.ts +8 -0
  39. package/src/Api/Implementation/ColumnApiImpl.js +69 -36
  40. package/src/Api/Implementation/ConfigApiImpl.d.ts +1 -1
  41. package/src/Api/Implementation/ConfigApiImpl.js +28 -17
  42. package/src/Api/Implementation/DashboardApiImpl.js +2 -1
  43. package/src/Api/Implementation/ExportApiImpl.js +4 -4
  44. package/src/Api/Implementation/FormatColumnApiImpl.js +2 -1
  45. package/src/Api/Implementation/FreeTextColumnApiImpl.js +9 -3
  46. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  47. package/src/Api/Implementation/GridApiImpl.js +28 -10
  48. package/src/Api/Implementation/InternalApiImpl.d.ts +3 -1
  49. package/src/Api/Implementation/InternalApiImpl.js +20 -4
  50. package/src/Api/Implementation/LayoutApiImpl.js +4 -3
  51. package/src/Api/Implementation/ScopeApiImpl.js +11 -11
  52. package/src/Api/Implementation/SystemStatusApiImpl.js +1 -0
  53. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  54. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  55. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +12 -8
  56. package/src/Api/Implementation/UserInterfaceApiImpl.js +69 -87
  57. package/src/Api/InternalApi.d.ts +3 -1
  58. package/src/Api/UserInterfaceApi.d.ts +16 -6
  59. package/src/PredefinedConfig/AlertState.d.ts +4 -0
  60. package/src/PredefinedConfig/CalculatedColumnState.d.ts +4 -37
  61. package/src/PredefinedConfig/Common/AdaptableButton.d.ts +1 -1
  62. package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +33 -33
  63. package/src/PredefinedConfig/Common/AdaptableColumn.js +5 -5
  64. package/src/PredefinedConfig/Common/AdaptablePredicate.js +19 -18
  65. package/src/PredefinedConfig/Common/DataChangedInfo.d.ts +3 -2
  66. package/src/PredefinedConfig/Common/DataUpdateConfig.d.ts +5 -1
  67. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +49 -0
  68. package/src/PredefinedConfig/Common/SpecialColumnSettings.js +2 -0
  69. package/src/PredefinedConfig/FilterState.d.ts +1 -1
  70. package/src/PredefinedConfig/FreeTextColumnState.d.ts +10 -0
  71. package/src/PredefinedConfig/Selection/GridCell.d.ts +2 -1
  72. package/src/PredefinedConfig/Selection/GridRow.d.ts +12 -4
  73. package/src/PredefinedConfig/SystemState.d.ts +4 -1
  74. package/src/Redux/ActionsReducers/SystemRedux.js +1 -1
  75. package/src/Redux/Store/AdaptableStore.js +7 -3
  76. package/src/Strategy/AdaptableModuleBase.js +8 -8
  77. package/src/Strategy/AlertModule.js +12 -11
  78. package/src/Strategy/BulkUpdateModule.js +5 -5
  79. package/src/Strategy/CalculatedColumnModule.js +1 -1
  80. package/src/Strategy/CellSummaryModule.js +3 -3
  81. package/src/Strategy/ConditionalStyleModule.js +3 -3
  82. package/src/Strategy/CustomSortModule.js +2 -2
  83. package/src/Strategy/ExportModule.d.ts +0 -2
  84. package/src/Strategy/ExportModule.js +59 -62
  85. package/src/Strategy/FilterModule.js +4 -4
  86. package/src/Strategy/FormatColumnModule.js +5 -5
  87. package/src/Strategy/FreeTextColumnModule.js +1 -1
  88. package/src/Strategy/LayoutModule.js +3 -3
  89. package/src/Strategy/PlusMinusModule.js +8 -9
  90. package/src/Strategy/SmartEditModule.js +6 -6
  91. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
  92. package/src/Utilities/ExpressionFunctions/booleanExpressionFunctions.js +1 -1
  93. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +2 -2
  94. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -2
  95. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +1 -1
  96. package/src/Utilities/Helpers/DateHelper.d.ts +2 -2
  97. package/src/Utilities/Helpers/DateHelper.js +30 -20
  98. package/src/Utilities/Helpers/PreviewHelper.js +2 -2
  99. package/src/Utilities/ObjectFactory.d.ts +1 -1
  100. package/src/Utilities/ObjectFactory.js +14 -2
  101. package/src/Utilities/Services/DataService.js +5 -5
  102. package/src/Utilities/Services/ReportService.js +13 -12
  103. package/src/Utilities/Services/ValidationService.js +4 -5
  104. package/src/Utilities/runIfNotResolvedIn.d.ts +8 -0
  105. package/src/Utilities/runIfNotResolvedIn.js +23 -0
  106. package/src/View/AdaptableView.js +1 -1
  107. package/src/View/Alert/AlertPopup.js +1 -1
  108. package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +19 -5
  109. package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +1 -1
  110. package/src/View/BulkUpdate/BulkUpdatePopup.d.ts +2 -0
  111. package/src/View/BulkUpdate/BulkUpdatePopup.js +6 -4
  112. package/src/View/BulkUpdate/BulkUpdateViewPanel.d.ts +2 -0
  113. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +3 -1
  114. package/src/View/CalculatedColumn/CalculatedColumnPopup.js +1 -1
  115. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +1 -1
  116. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +1 -1
  117. package/src/View/Components/ColumnSelector/index.js +2 -2
  118. package/src/View/Components/FilterForm/FilterForm.d.ts +3 -51
  119. package/src/View/Components/FilterForm/FilterForm.js +53 -32
  120. package/src/View/Components/FilterForm/ListBoxFilterForm.d.ts +3 -0
  121. package/src/View/Components/FilterForm/ListBoxFilterForm.js +14 -5
  122. package/src/View/Components/FilterForm/QuickFilterForm.d.ts +3 -43
  123. package/src/View/Components/FilterForm/QuickFilterForm.js +72 -31
  124. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +3 -0
  125. package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.js +8 -0
  126. package/src/View/Components/NewScopeComponent.js +1 -1
  127. package/src/View/Components/Popups/AdaptablePopup.d.ts +1 -1
  128. package/src/View/Components/Popups/AdaptablePopupAlert.js +1 -1
  129. package/src/View/Components/PreviewResultsPanel.js +1 -1
  130. package/src/View/Components/RangesComponent.js +2 -2
  131. package/src/View/Components/Selectors/ColumnSelector.js +5 -5
  132. package/src/View/Components/Selectors/ColumnValueSelector.d.ts +10 -2
  133. package/src/View/Components/Selectors/ColumnValueSelector.js +47 -15
  134. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +7 -7
  135. package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -1
  136. package/src/View/ConditionalStyle/ConditionalStylePopup.js +1 -1
  137. package/src/View/ConditionalStyle/ConditionalStyleSummary.js +1 -1
  138. package/src/View/CustomSort/CustomSortEntityRow.js +2 -2
  139. package/src/View/CustomSort/CustomSortPopup.js +1 -1
  140. package/src/View/CustomSort/CustomSortSummary.js +3 -3
  141. package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +3 -3
  142. package/src/View/CustomSort/Wizard/CustomSortValuesWizardSection.js +24 -6
  143. package/src/View/Dashboard/CustomToolbarWrapper.js +2 -1
  144. package/src/View/Dashboard/Dashboard.js +2 -3
  145. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +5 -5
  146. package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +4 -1
  147. package/src/View/Export/ExportCustomDestinationDialog.js +1 -1
  148. package/src/View/Filter/FilterSummary.js +2 -2
  149. package/src/View/FormatColumn/FormatColumnPopup.js +1 -1
  150. package/src/View/FormatColumn/FormatColumnSummary.js +1 -1
  151. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  152. package/src/View/FreeTextColumn/FreeTextColumnPopup.js +4 -2
  153. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +5 -3
  154. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +1 -1
  155. package/src/View/GridInfo/ColumnInfoComponent.js +16 -16
  156. package/src/View/GridInfo/GridInfoPopup.js +4 -1
  157. package/src/View/Layout/Wizard/LayoutEditor/ColumnList.js +6 -6
  158. package/src/View/Layout/Wizard/LayoutEditor/ColumnSortList.js +1 -1
  159. package/src/View/Layout/Wizard/LayoutEditor/PivotList.js +1 -1
  160. package/src/View/Layout/Wizard/LayoutEditor/RowGroupsList.js +1 -1
  161. package/src/View/Layout/Wizard/LayoutEditor/getItemStyle.js +2 -2
  162. package/src/View/Layout/Wizard/LayoutEditor/index.js +41 -41
  163. package/src/View/PlusMinus/PlusMinusPopup.js +1 -1
  164. package/src/View/PlusMinus/PlusMinusSummary.js +1 -1
  165. package/src/View/Query/QueryViewPanel.js +2 -2
  166. package/src/View/UIHelper.d.ts +2 -0
  167. package/src/View/UIHelper.js +10 -1
  168. package/src/agGrid/ActionColumnRenderer.d.ts +2 -1
  169. package/src/agGrid/ActionColumnRenderer.js +21 -4
  170. package/src/agGrid/Adaptable.d.ts +20 -4
  171. package/src/agGrid/Adaptable.js +249 -102
  172. package/src/agGrid/agGridHelper.js +33 -32
  173. package/src/agGrid/agGridMenuHelper.js +2 -2
  174. package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +3 -3
  175. package/src/components/Dashboard/Dashboard.js +1 -1
  176. package/src/components/DropdownButton/index.js +1 -1
  177. package/src/components/ExpressionEditor/index.js +7 -7
  178. package/src/components/Loader/Loader.d.ts +7 -0
  179. package/src/components/Loader/Loader.js +13 -0
  180. package/src/components/Loader/index.d.ts +2 -0
  181. package/src/components/Loader/index.js +7 -0
  182. package/src/components/ProgressIndicator/ProgressIndicator.d.ts +2 -0
  183. package/src/components/ProgressIndicator/ProgressIndicator.js +54 -0
  184. package/src/metamodel/adaptable.metamodel.d.ts +125 -16
  185. package/src/metamodel/adaptable.metamodel.js +403 -106
  186. package/src/types.d.ts +4 -3
  187. package/version.d.ts +1 -1
  188. package/version.js +1 -1
  189. package/src/Utilities/Interface/ProgressIndicator.d.ts +0 -4
  190. package/src/View/Export/ProgressIndicator.d.ts +0 -6
  191. package/src/View/Export/ProgressIndicator.js +0 -25
package/base.css CHANGED
@@ -1362,6 +1362,19 @@
1362
1362
  --ab-cmp-datepicker__font-size: var(--ab-font-size-2);
1363
1363
  --ab-cmp-datepicker__font-family: var(--ab__font-family);
1364
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); }
1365
1378
  :root {
1366
1379
  --ab-cmp-wizard__padding: var(--ab-space-5);
1367
1380
  --ab-cmp-wizard__margin: var(--ab-space-1);
@@ -1471,6 +1484,8 @@
1471
1484
  --ab-cmp-toolpanel-header__grid-gap: 3px;
1472
1485
  --ab-cmp-toolpanel__color: var(--ab-dashboard__color);
1473
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); }
1474
1489
  .ab-Radio-input:focus + svg rect {
1475
1490
  stroke: var(--ab-color-accent);
1476
1491
  stroke-width: 2; }
@@ -2255,6 +2270,55 @@ input[type="number"].ab-Input:hover::-webkit-inner-spin-button:active {
2255
2270
  box-shadow: var(--ab-focus__box-shadow); }
2256
2271
  .ab-ToggleButton__input:disabled + .ab-ToggleButton__slider {
2257
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); }
2258
2322
  .ab-ObjectCollection__list > * {
2259
2323
  background: var(--ab-cmp-listgroupitem__background);
2260
2324
  color: var(--ab-cmp-listgroupitem__color); }
@@ -2364,6 +2428,8 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
2364
2428
  flex-direction: row;
2365
2429
  flex-wrap: wrap;
2366
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); }
2367
2433
  .ab-alert--error {
2368
2434
  background: var(--ab-color-error); }
2369
2435
  .ab-alert--success {
@@ -2488,31 +2554,7 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
2488
2554
  flex-flow: column; }
2489
2555
  .ag-details-row .ag-details-grid {
2490
2556
  flex: 1; }
2491
- div.ab-progress-indicator-wrapper {
2492
- align-items: center;
2493
- display: flex;
2494
- height: 100vh;
2495
- justify-content: center;
2496
- left: 0;
2497
- position: fixed;
2498
- top: 0;
2499
- width: 100%;
2500
- z-index: 9999;
2501
- opacity: 0;
2502
- transition-delay: 0.5s;
2503
- transition-property: opacity;
2504
- transition-duration: 0.3s; }
2505
- div.ab-progress-indicator-wrapper--visible {
2506
- opacity: 1; }
2507
- div.ab-progress-indicator-wrapper .ab-progress-indicator-text {
2508
- padding: var(--ab-space-3);
2509
- background: var(--ab-color-primary);
2510
- color: var(--ab-color-text-on-primary);
2511
- border-style: none;
2512
- border-width: 0px;
2513
- border-radius: var(--ab__border-radius);
2514
- box-shadow: var(--ab-focus__box-shadow);
2515
- font-size: var(--ab-font-size-3);
2516
- font-family: var(--ab__font-family); }
2557
+ .ab-wait-for-progress-indicator.ab-Grid {
2558
+ pointer-events: none; }
2517
2559
 
2518
2560
  /*# sourceMappingURL=base.css.map */
package/index.css CHANGED
@@ -1941,6 +1941,21 @@ template {
1941
1941
  --ab-cmp-datepicker__font-family: var(--ab__font-family);
1942
1942
  --ab-cmp-datepicker__cell-size: 30px; }
1943
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
+
1944
1959
  :root {
1945
1960
  --ab-cmp-wizard__padding: var(--ab-space-5);
1946
1961
  --ab-cmp-wizard__margin: var(--ab-space-1);
@@ -2072,6 +2087,9 @@ template {
2072
2087
  --ab-cmp-toolpanel__color: var(--ab-dashboard__color);
2073
2088
  --ab-cmp-toolpanel__font-family: var(--ab__font-family); }
2074
2089
 
2090
+ :root {
2091
+ --ab-cmp-custom-sort-wizard-loader__font-size: var(--ab-font-size-4); }
2092
+
2075
2093
  .ab-Radio-input:focus + svg rect {
2076
2094
  stroke: var(--ab-color-accent);
2077
2095
  stroke-width: 2; }
@@ -3053,6 +3071,63 @@ input[type="number"].ab-Input:hover::-webkit-inner-spin-button:active {
3053
3071
  .ab-ToggleButton__input:disabled + .ab-ToggleButton__slider {
3054
3072
  opacity: 0.5; }
3055
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
+
3056
3131
  .ab-ObjectCollection__list > * {
3057
3132
  background: var(--ab-cmp-listgroupitem__background);
3058
3133
  color: var(--ab-cmp-listgroupitem__color); }
@@ -3191,6 +3266,9 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
3191
3266
  flex-wrap: wrap;
3192
3267
  grid-gap: var(--ab-cmp-toolpanel-header__grid-gap); }
3193
3268
 
3269
+ .ab-CustomSortWizard__SortOrder .ab-Loader__text {
3270
+ font-size: var(--ab-cmp-custom-sort-wizard-loader__font-size); }
3271
+
3194
3272
  .ab-alert--error {
3195
3273
  background: var(--ab-color-error); }
3196
3274
 
@@ -3346,34 +3424,8 @@ html.ab--theme-dark .ab-ListBoxFilterForm--vendor-style {
3346
3424
  .ag-details-row .ag-details-grid {
3347
3425
  flex: 1; }
3348
3426
 
3349
- div.ab-progress-indicator-wrapper {
3350
- align-items: center;
3351
- display: flex;
3352
- height: 100vh;
3353
- justify-content: center;
3354
- left: 0;
3355
- position: fixed;
3356
- top: 0;
3357
- width: 100%;
3358
- z-index: 9999;
3359
- opacity: 0;
3360
- transition-delay: 0.5s;
3361
- transition-property: opacity;
3362
- transition-duration: 0.3s; }
3363
-
3364
- div.ab-progress-indicator-wrapper--visible {
3365
- opacity: 1; }
3366
-
3367
- div.ab-progress-indicator-wrapper .ab-progress-indicator-text {
3368
- padding: var(--ab-space-3);
3369
- background: var(--ab-color-primary);
3370
- color: var(--ab-color-text-on-primary);
3371
- border-style: none;
3372
- border-width: 0px;
3373
- border-radius: var(--ab__border-radius);
3374
- box-shadow: var(--ab-focus__box-shadow);
3375
- font-size: var(--ab-font-size-3);
3376
- font-family: var(--ab__font-family); }
3427
+ .ab-wait-for-progress-indicator.ab-Grid {
3428
+ pointer-events: none; }
3377
3429
 
3378
3430
  html.ab--theme-light {
3379
3431
  --ab-theme-loaded: light; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "10.0.1",
3
+ "version": "10.0.4-canary.1",
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",
@@ -1,2 +1,2 @@
1
- declare const _default: 1635828438945;
1
+ declare const _default: 1637827862614;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1635828438945;
3
+ exports.default = 1637827862614;
@@ -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 }?: {
@@ -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
@@ -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
@@ -1,7 +1,8 @@
1
- import { AlertButton, FlashingAlertProperties } from '../PredefinedConfig/AlertState';
1
+ import { AlertButton, AlertDefinition, FlashingAlertProperties } from '../PredefinedConfig/AlertState';
2
2
  import { AdaptableAlert } from '../PredefinedConfig/Common/AdaptableAlert';
3
3
  import { ButtonContext } from '../PredefinedConfig/Common/AdaptableButton';
4
4
  import { AdaptableForm, AdaptableFormData } from '../PredefinedConfig/Common/AdaptableForm';
5
+ import { DataChangedInfo } from '../types';
5
6
  /**
6
7
  * Options related to Alerts, System Status Messages and Notifications in Adaptable.
7
8
  */
@@ -111,6 +112,7 @@ export interface NotificationsOptions {
111
112
  * @gridInfoItem
112
113
  */
113
114
  maxSystemMessagesInStore?: number;
115
+ alertMessageText?: (alertDefinition: AlertDefinition, dataChangedInfo?: DataChangedInfo) => string | undefined;
114
116
  }
115
117
  /**
116
118
  * Handles a Form Button Action
@@ -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 { AdaptableApi, 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,55 @@ 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
- values?: any[] | ((column: AdaptableColumn) => any[]);
98
+ values?: any[] | ((params: PermittedValuesParams) => any[]);
99
+ }
100
+ /**
101
+ * Used to define permitted values for inline column editor
102
+ */
103
+ export interface EditLookUpPermittedValues extends BasePermittedValues {
104
+ values?: any[] | ((params: EditLookUpParams) => 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; When true, values is called each time the search bar is changed
112
+ * @default false
113
+ */
114
+ suppressClientSideFiltering?: boolean;
115
+ values: (params: FilterPermittedValuesParams) => any[] | Promise<any[]>;
116
+ }
117
+ /**
118
+ * Custom column values for custom sort.
119
+ */
120
+ export interface CustomSortPermittedValues extends BasePermittedValues {
121
+ values: (params: PermittedValuesParams) => any[] | Promise<any[]>;
122
+ }
123
+ /**
124
+ * User to define permitted values when updating cells via bulk update
125
+ */
126
+ export interface BulkUpdatePermittedValues extends BasePermittedValues {
127
+ values: (params: BulkUpdatePermittedValuesParams) => any[] | Promise<any[]>;
77
128
  }
129
+ /**
130
+ * Use PermittedValues instead
131
+ * @deprecated
132
+ */
133
+ export declare type CellValuesList = PermittedValues;
78
134
  /**
79
135
  * A Special Column that wraps an AdapTable Button
80
136
  */
@@ -95,6 +151,10 @@ export interface ActionColumn extends AdaptableObject {
95
151
  * Shows Action Column also in grouped rows
96
152
  */
97
153
  includeGroupedRows?: boolean;
154
+ /**
155
+ * Additional optional properties for Column (e.g. filterable, resizable)
156
+ */
157
+ actionColumnSettings?: ActionColumnSettings;
98
158
  }
99
159
  /**
100
160
  * Context required by functions when using an Action Column Button
@@ -113,3 +173,45 @@ export interface ActionColumnButtonContext extends ButtonContext {
113
173
  */
114
174
  rowNode: RowNode;
115
175
  }
176
+ /**
177
+ * Set of optional properties that define an Action Columns behaviour
178
+ */
179
+ export interface ActionColumnSettings {
180
+ /**
181
+ * Preferred width (in pixels) for Column; if unset, calculated dynamically by underlying Grid
182
+ */
183
+ width?: number;
184
+ /**
185
+ * Whether Column can be resized (by dragging column header edges)
186
+ * @defaultValue true
187
+ */
188
+ resizable?: boolean;
189
+ /**
190
+ * Whether no menu should be shown for this Column header.
191
+ * @defaultValue false
192
+ */
193
+ suppressMenu?: boolean;
194
+ /**
195
+ * Whether if this Column should be movable via dragging
196
+ * @defaultValue false
197
+ */
198
+ suppressMovable?: boolean;
199
+ }
200
+ export interface BaseParams {
201
+ adaptableApi: AdaptableApi;
202
+ }
203
+ export interface EditLookUpParams extends BaseParams {
204
+ column: AdaptableColumn;
205
+ gridCell: GridCell;
206
+ }
207
+ export interface PermittedValuesParams extends BaseParams {
208
+ column: AdaptableColumn;
209
+ }
210
+ export interface FilterPermittedValuesParams extends BaseParams {
211
+ column: AdaptableColumn;
212
+ filter: string;
213
+ }
214
+ export interface BulkUpdatePermittedValuesParams extends BaseParams {
215
+ column: AdaptableColumn;
216
+ gridCells: GridCell[];
217
+ }
@@ -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
@@ -63,4 +63,19 @@ export interface CalculatedColumnApi {
63
63
  * @param calculatedColumn CalculatedColumn to be checked
64
64
  */
65
65
  getCalculatedColumnModuleReferences(calculatedColumn: CalculatedColumn): string[];
66
+ /**
67
+ * Returns all Calculated Columns whose Expression contains the ColumnId
68
+ * @param columnId ColumnId to check
69
+ */
70
+ getCalculatedColumnsReferencingColumnId(columnId: string): CalculatedColumn[];
71
+ /**
72
+ * Gets any ColumnIds referenced in a Calculated Column
73
+ * @param calculatedColumn Calculated Column to check
74
+ */
75
+ getReferencedColumnIdsForCalculatedColumn(calculatedColumn: CalculatedColumn): string[];
76
+ /**
77
+ * Gets any ColumnIds referenced in a Calculated Column
78
+ * @param calculatedColumnId CalculatedColumnId to check
79
+ */
80
+ getReferencedColumnIdsForCalculatedColumnId(calculatedColumnId: string): string[];
66
81
  }
@@ -1,6 +1,7 @@
1
1
  import { AdaptableColumn } from '../PredefinedConfig/Common/AdaptableColumn';
2
2
  import { DataType } from '../PredefinedConfig/Common/Enums';
3
3
  import { RowNode } from '@ag-grid-community/all-modules';
4
+ import { GridCell } from '../../types';
4
5
  /**
5
6
  * A large range of column-related functions in AdapTable
6
7
  */
@@ -131,6 +132,10 @@ export interface ColumnApi {
131
132
  * @param columnId Column to check
132
133
  */
133
134
  isNumericColumn(column: AdaptableColumn): boolean;
135
+ /**
136
+ * Is Column Boolean
137
+ * @param columnId Column to check
138
+ */
134
139
  isBooleanColumn(column: AdaptableColumn): boolean;
135
140
  /**
136
141
  * Is Column a Date
@@ -205,6 +210,26 @@ export interface ColumnApi {
205
210
  * @param columnId Column to check
206
211
  */
207
212
  getDistinctDisplayValuesForColumn(columnId: string): any[];
213
+ /**
214
+ * Gets all distinct display values in for filter column, used for Floating Filter and Column Header filter
215
+ * @param columnId Column to check
216
+ * @param columnFilter Current applied filter
217
+ */
218
+ getDistinctFilterDisplayValuesForColumn(columnId: string, filter: string): Promise<{
219
+ values: any[];
220
+ suppressClientSideFilter: boolean;
221
+ }>;
222
+ /**
223
+ * Gets all distinct column display values in for custom sort.
224
+ * @param columnId Column to check
225
+ */
226
+ getDistinctCustomSortDisplayValuesForColumn(columnId: string): Promise<any[]>;
227
+ /**
228
+ * Gets all distinct column display values for bulk update.
229
+ * @param columnId Column to check
230
+ * @param selectedGridCells Selected grid cells
231
+ */
232
+ getDistinctBulkUpdateDisplayValuesForColumn(columnId: string, selectedGridCells: GridCell[]): Promise<any[]>;
208
233
  /**
209
234
  * Gets all distinct visible display values in the Column
210
235
  * @param columnId Column to check
@@ -234,6 +259,20 @@ export interface ColumnApi {
234
259
  * @param columnId string
235
260
  */
236
261
  getVendorGridColumnFieldForColumn(columnId: string): string;
262
+ /**
263
+ * Does Column use AdapTable's Filter Form
264
+ * @param columnId Column to Check
265
+ */
237
266
  usesAdaptableFilterForm(columnId: string): boolean;
267
+ /**
268
+ * Does Column use AdapTable's Quick Filter
269
+ * @param columnId Column to Check
270
+ */
238
271
  usesAdaptableQuickFilter(columnId: string): boolean;
272
+ /**
273
+ * Checks if a column is referenced in a given Expression
274
+ * @param columnId Column to Check
275
+ * @param expression Expression to Lookup
276
+ */
277
+ isColumnReferencedInExpression(columnId: string, expression: string): boolean;
239
278
  }
@@ -94,6 +94,10 @@ export interface ConfigApi {
94
94
  * @param returnJson whether to return section as JSON or object
95
95
  */
96
96
  getUserStateByStateKey(stateKey: AdaptableStateKey, returnJson: boolean): ConfigState | string;
97
+ /**
98
+ * Adds '1' to current revision number of State element
99
+ * @param stateKey Adaptable State Key to update
100
+ */
97
101
  incrementUerStateRevision(stateKey: AdaptableStateKey): void;
98
102
  /**
99
103
  * Returns Alert section of Adaptable State
@@ -200,5 +204,9 @@ export interface ConfigApi {
200
204
  * @param returnJson return as JSON rather than object
201
205
  */
202
206
  getToolPanelState(returnJson: boolean): ToolPanelState;
207
+ /**
208
+ * Sent by each Module when it is Ready
209
+ * @param module Module which is Ready
210
+ */
203
211
  dispatchStateReadyAction(module: AdaptableModule): void;
204
212
  }