@adaptabletools/adaptable 12.1.5 → 12.1.8-canary.0

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 (214) hide show
  1. package/base.css +11 -49
  2. package/bundle.cjs.js +106 -106
  3. package/index.css +13 -60
  4. package/package.json +1 -1
  5. package/publishTimestamp.d.ts +1 -1
  6. package/publishTimestamp.js +1 -1
  7. package/src/AdaptableInterfaces/IAdaptable.d.ts +12 -4
  8. package/src/AdaptableOptions/ColumnOptions.d.ts +2 -4
  9. package/src/AdaptableOptions/FilterOptions.d.ts +19 -0
  10. package/src/AdaptableOptions/FinancePluginOptions.d.ts +22 -1
  11. package/src/AdaptableOptions/StateOptions.d.ts +25 -12
  12. package/src/AdaptableOptions/UserInterfaceOptions.d.ts +31 -24
  13. package/src/Api/ColumnApi.d.ts +6 -1
  14. package/src/Api/ExportApi.d.ts +5 -0
  15. package/src/Api/FilterApi.d.ts +29 -0
  16. package/src/Api/FlashingCellApi.d.ts +8 -0
  17. package/src/Api/GridApi.d.ts +1 -0
  18. package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -1
  19. package/src/Api/Implementation/ColumnApiImpl.js +7 -2
  20. package/src/Api/Implementation/DataSetApiImpl.js +1 -1
  21. package/src/Api/Implementation/ExportApiImpl.d.ts +3 -1
  22. package/src/Api/Implementation/ExportApiImpl.js +19 -3
  23. package/src/Api/Implementation/FilterApiImpl.d.ts +6 -0
  24. package/src/Api/Implementation/FilterApiImpl.js +42 -4
  25. package/src/Api/Implementation/FlashingCellApiImpl.d.ts +1 -0
  26. package/src/Api/Implementation/FlashingCellApiImpl.js +4 -0
  27. package/src/Api/Implementation/GridApiImpl.d.ts +1 -0
  28. package/src/Api/Implementation/GridApiImpl.js +4 -4
  29. package/src/Api/Implementation/InternalApiImpl.d.ts +0 -1
  30. package/src/Api/Implementation/InternalApiImpl.js +0 -3
  31. package/src/Api/Implementation/LayoutApiImpl.d.ts +1 -1
  32. package/src/Api/Implementation/LayoutApiImpl.js +4 -3
  33. package/src/Api/Implementation/PredicateApiImpl.js +4 -0
  34. package/src/Api/Implementation/QueryApiImpl.js +1 -1
  35. package/src/Api/Implementation/QueryLanguageApiImpl.js +9 -1
  36. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -1
  37. package/src/Api/InternalApi.d.ts +0 -1
  38. package/src/Api/LayoutApi.d.ts +1 -1
  39. package/src/Api/SystemStatusApi.d.ts +1 -1
  40. package/src/Api/ToolPanelApi.d.ts +1 -1
  41. package/src/PredefinedConfig/CalculatedColumnState.d.ts +2 -2
  42. package/src/PredefinedConfig/Common/AdaptableColumn.js +3 -2
  43. package/src/PredefinedConfig/Common/AdaptablePredicate.js +30 -10
  44. package/src/PredefinedConfig/Common/AdaptableQuery.js +1 -1
  45. package/src/PredefinedConfig/Common/AggregationColumns.d.ts +6 -0
  46. package/src/PredefinedConfig/Common/AggregationColumns.js +4 -0
  47. package/src/PredefinedConfig/Common/ColumnFilter.d.ts +2 -2
  48. package/src/PredefinedConfig/Common/Enums.d.ts +0 -15
  49. package/src/PredefinedConfig/Common/Enums.js +1 -18
  50. package/src/PredefinedConfig/Common/SpecialColumnSettings.d.ts +6 -6
  51. package/src/PredefinedConfig/ExportState.d.ts +12 -4
  52. package/src/PredefinedConfig/LayoutState.d.ts +2 -1
  53. package/src/PredefinedConfig/PopupState.d.ts +1 -2
  54. package/src/Redux/ActionsReducers/AlertRedux.d.ts +1 -1
  55. package/src/Redux/ActionsReducers/AlertRedux.js +1 -1
  56. package/src/Redux/ActionsReducers/ConditionalStyleRedux.d.ts +1 -1
  57. package/src/Redux/ActionsReducers/ConditionalStyleRedux.js +1 -1
  58. package/src/Redux/ActionsReducers/CustomSortRedux.d.ts +1 -1
  59. package/src/Redux/ActionsReducers/CustomSortRedux.js +1 -1
  60. package/src/Redux/ActionsReducers/FlashingCellRedux.d.ts +1 -1
  61. package/src/Redux/ActionsReducers/FlashingCellRedux.js +1 -1
  62. package/src/Redux/ActionsReducers/FormatColumnRedux.d.ts +1 -1
  63. package/src/Redux/ActionsReducers/FormatColumnRedux.js +1 -1
  64. package/src/Redux/ActionsReducers/LayoutRedux.d.ts +28 -0
  65. package/src/Redux/ActionsReducers/LayoutRedux.js +80 -2
  66. package/src/Redux/ActionsReducers/PlusMinusRedux.d.ts +1 -1
  67. package/src/Redux/ActionsReducers/PlusMinusRedux.js +1 -1
  68. package/src/Redux/ActionsReducers/PopupRedux.d.ts +0 -2
  69. package/src/Redux/ActionsReducers/PopupRedux.js +1 -28
  70. package/src/Redux/ActionsReducers/ScheduleRedux.d.ts +5 -5
  71. package/src/Redux/ActionsReducers/ScheduleRedux.js +5 -5
  72. package/src/Redux/ActionsReducers/ShortcutRedux.d.ts +1 -1
  73. package/src/Redux/ActionsReducers/ShortcutRedux.js +1 -1
  74. package/src/Redux/ActionsReducers/SystemRedux.d.ts +1 -2
  75. package/src/Redux/ActionsReducers/SystemRedux.js +1 -2
  76. package/src/Redux/Store/AdaptableStore.js +30 -16
  77. package/src/Strategy/AlertModule.d.ts +1 -0
  78. package/src/Strategy/AlertModule.js +20 -0
  79. package/src/Strategy/CalculatedColumnModule.js +2 -2
  80. package/src/Strategy/ExportModule.d.ts +0 -1
  81. package/src/Strategy/ExportModule.js +0 -16
  82. package/src/Strategy/FilterModule.js +6 -0
  83. package/src/Strategy/FlashingCellModule.js +2 -2
  84. package/src/Strategy/Interface/IModule.d.ts +4 -0
  85. package/src/Strategy/LayoutModule.js +20 -20
  86. package/src/Strategy/Utilities/FormatColumn/getFormatColumnStyleViewItems.js +16 -1
  87. package/src/Strategy/Utilities/Layout/getLayoutFilterViewItems.js +15 -11
  88. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +1 -0
  89. package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -1
  90. package/src/Utilities/Defaults/DefaultAdaptableOptions.js +3 -0
  91. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +12 -2
  92. package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +30 -66
  93. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +22 -6
  94. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +423 -220
  95. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.d.ts +7 -1
  96. package/src/Utilities/ExpressionFunctions/expressionFunctionUtils.js +23 -7
  97. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.d.ts +0 -1
  98. package/src/Utilities/ExpressionFunctions/scalarAggregationHelper.js +6 -54
  99. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +17 -5
  100. package/src/Utilities/Extensions/ArrayExtensions.js +6 -0
  101. package/src/Utilities/Helpers/CalendarHelper.js +10 -7
  102. package/src/Utilities/Helpers/DateHelper.d.ts +0 -26
  103. package/src/Utilities/Helpers/DateHelper.js +2 -32
  104. package/src/Utilities/Interface/MessagePopups.d.ts +0 -4
  105. package/src/Utilities/ObjectFactory.d.ts +6 -4
  106. package/src/Utilities/ObjectFactory.js +30 -17
  107. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +25 -0
  108. package/src/Utilities/Services/AggregatedScalarLiveValue.js +103 -0
  109. package/src/Utilities/Services/AlertService.d.ts +0 -1
  110. package/src/Utilities/Services/AlertService.js +5 -17
  111. package/src/Utilities/Services/CalculatedColumnExpressionService.d.ts +4 -4
  112. package/src/Utilities/Services/CalculatedColumnExpressionService.js +29 -154
  113. package/src/Utilities/Services/Interface/ICalculatedColumnExpressionService.d.ts +2 -2
  114. package/src/Utilities/Services/Interface/IQueryLanguageService.d.ts +6 -3
  115. package/src/Utilities/Services/QueryLanguageService.d.ts +6 -3
  116. package/src/Utilities/Services/QueryLanguageService.js +23 -6
  117. package/src/Utilities/Services/ReportService.js +47 -46
  118. package/src/View/AdaptableView.js +1 -2
  119. package/src/View/CalculatedColumn/Utilities/getCalculatedColumnSettingsTags.d.ts +2 -0
  120. package/src/View/CalculatedColumn/Utilities/{getCalculatedColumnSettingTags.js → getCalculatedColumnSettingsTags.js} +5 -3
  121. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.d.ts +10 -0
  122. package/src/View/CalculatedColumn/Wizard/CalculatedColumnDefinitionWizardSection.js +80 -0
  123. package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +21 -15
  124. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.d.ts +1 -2
  125. package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +10 -53
  126. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +14 -3
  127. package/src/View/Components/AdaptableDateInput/index.js +1 -1
  128. package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +42 -6
  129. package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -1
  130. package/src/View/Components/EntityRulesEditor/index.js +26 -5
  131. package/src/View/Components/FilterForm/FilterForm.js +10 -5
  132. package/src/View/Components/FilterForm/ListBoxFilterForm.js +1 -0
  133. package/src/View/Components/FilterForm/QuickFilterForm.js +12 -7
  134. package/src/View/Components/PermittedValuesSelector/PermitedValuesSelector.d.ts +9 -0
  135. package/src/View/Components/PermittedValuesSelector/PermitedValuesSelector.js +28 -0
  136. package/src/View/Components/PermittedValuesSelector/index.d.ts +1 -0
  137. package/src/View/Components/PermittedValuesSelector/index.js +5 -0
  138. package/src/View/Components/Popups/AdaptablePopup/Navigation.js +2 -2
  139. package/src/View/Components/Popups/AdaptableToaster.js +2 -7
  140. package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +0 -1
  141. package/src/View/Components/Popups/WindowPopups/windowFactory.js +1 -4
  142. package/src/View/Export/ExportViewPanel.d.ts +1 -2
  143. package/src/View/Export/ExportViewPanel.js +2 -6
  144. package/src/View/Export/Wizard/ReportColumnTypeWizard.d.ts +1 -2
  145. package/src/View/Export/Wizard/ReportColumnTypeWizard.js +11 -12
  146. package/src/View/Export/Wizard/ReportRowTypeWizard.d.ts +1 -2
  147. package/src/View/Export/Wizard/ReportRowTypeWizard.js +12 -13
  148. package/src/View/Export/Wizard/ReportSettingsWizard.js +1 -2
  149. package/src/View/Filter/FilterViewPanel.js +20 -4
  150. package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
  151. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -2
  152. package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.d.ts +1 -1
  153. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +1 -1
  154. package/src/View/Layout/Wizard/{LayoutEditor → Components}/ColumnLabels.d.ts +0 -0
  155. package/src/View/Layout/Wizard/{LayoutEditor → Components}/ColumnLabels.js +0 -0
  156. package/src/View/Layout/Wizard/LayoutWizard.js +1 -0
  157. package/src/View/Layout/Wizard/sections/AggregationsSection.d.ts +1 -0
  158. package/src/View/Layout/Wizard/sections/AggregationsSection.js +69 -8
  159. package/src/View/Layout/Wizard/sections/ColumnsSection.js +1 -1
  160. package/src/View/Query/QueryViewPanel.js +1 -1
  161. package/src/agGrid/Adaptable.d.ts +12 -3
  162. package/src/agGrid/Adaptable.js +225 -152
  163. package/src/agGrid/agGridHelper.d.ts +1 -0
  164. package/src/agGrid/agGridHelper.js +5 -3
  165. package/src/agGrid/agGridMenuHelper.d.ts +1 -0
  166. package/src/agGrid/agGridMenuHelper.js +4 -2
  167. package/src/agGrid/weightedAverage.d.ts +6 -0
  168. package/src/agGrid/weightedAverage.js +66 -0
  169. package/src/components/ExpressionEditor/BaseEditorInput.d.ts +1 -0
  170. package/src/components/ExpressionEditor/BaseEditorInput.js +2 -3
  171. package/src/components/ExpressionEditor/EditorInput.d.ts +1 -1
  172. package/src/components/ExpressionEditor/EditorInput.js +24 -4
  173. package/src/components/ExpressionEditor/{EditorInputReactive.d.ts → EditorInputWithWhereClause.d.ts} +3 -3
  174. package/src/components/ExpressionEditor/{EditorInputReactive.js → EditorInputWithWhereClause.js} +6 -5
  175. package/src/components/ExpressionEditor/editorButtonsAggregatedBoolean.d.ts +2 -0
  176. package/src/components/ExpressionEditor/{editorButtonsReactive.js → editorButtonsAggregatedBoolean.js} +22 -37
  177. package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -10
  178. package/src/components/ExpressionEditor/editorButtonsCumulativeAggregatedScalar.d.ts +2 -0
  179. package/src/components/ExpressionEditor/editorButtonsCumulativeAggregatedScalar.js +50 -0
  180. package/src/components/ExpressionEditor/editorButtonsObservable.d.ts +2 -0
  181. package/src/components/ExpressionEditor/editorButtonsObservable.js +40 -0
  182. package/src/components/ExpressionEditor/index.d.ts +1 -1
  183. package/src/components/ExpressionEditor/index.js +26 -5
  184. package/src/components/ProgressIndicator/ProgressIndicator.js +10 -12
  185. package/src/metamodel/adaptable.metamodel.d.ts +129 -7
  186. package/src/metamodel/adaptable.metamodel.js +1 -1
  187. package/src/parser/src/types.d.ts +1 -1
  188. package/src/types.d.ts +4 -4
  189. package/version.d.ts +1 -1
  190. package/version.js +1 -1
  191. package/src/View/CalculatedColumn/Utilities/getCalculatedColumnSettingTags.d.ts +0 -2
  192. package/src/View/Layout/LayoutEditorStandalonePopup.d.ts +0 -3
  193. package/src/View/Layout/LayoutEditorStandalonePopup.js +0 -78
  194. package/src/View/Layout/Wizard/LayoutEditor/ColumnList.d.ts +0 -27
  195. package/src/View/Layout/Wizard/LayoutEditor/ColumnList.js +0 -86
  196. package/src/View/Layout/Wizard/LayoutEditor/ColumnSortList.d.ts +0 -16
  197. package/src/View/Layout/Wizard/LayoutEditor/ColumnSortList.js +0 -89
  198. package/src/View/Layout/Wizard/LayoutEditor/PivotList.d.ts +0 -15
  199. package/src/View/Layout/Wizard/LayoutEditor/PivotList.js +0 -70
  200. package/src/View/Layout/Wizard/LayoutEditor/RowGroupsList.d.ts +0 -15
  201. package/src/View/Layout/Wizard/LayoutEditor/RowGroupsList.js +0 -70
  202. package/src/View/Layout/Wizard/LayoutEditor/droppableIds.d.ts +0 -7
  203. package/src/View/Layout/Wizard/LayoutEditor/droppableIds.js +0 -11
  204. package/src/View/Layout/Wizard/LayoutEditor/getItemStyle.d.ts +0 -6
  205. package/src/View/Layout/Wizard/LayoutEditor/getItemStyle.js +0 -26
  206. package/src/View/Layout/Wizard/LayoutEditor/index.d.ts +0 -9
  207. package/src/View/Layout/Wizard/LayoutEditor/index.js +0 -367
  208. package/src/View/Layout/Wizard/LayoutEditor/reducer.d.ts +0 -28
  209. package/src/View/Layout/Wizard/LayoutEditor/reducer.js +0 -46
  210. package/src/View/Layout/Wizard/LayoutEditor/utils.d.ts +0 -10
  211. package/src/View/Layout/Wizard/LayoutEditor/utils.js +0 -14
  212. package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +0 -30
  213. package/src/View/Layout/Wizard/LayoutEditorWizard.js +0 -132
  214. package/src/components/ExpressionEditor/editorButtonsReactive.d.ts +0 -2
package/index.css CHANGED
@@ -2598,66 +2598,6 @@ template {
2598
2598
  --ab-cmp-toolpanelpanel_body__background: var(--ab-cmp-dashboardpanel_body__background);
2599
2599
  --ab-cmp-toolpanelpanel_body__padding: var(--ab-cmp-dashboardpanel_body__padding); }
2600
2600
 
2601
- .ab-LayoutEditor {
2602
- overflow: auto;
2603
- display: grid;
2604
- padding: var(--ab-space-2);
2605
- flex: 1 1 0;
2606
- min-height: 0;
2607
- grid-template-columns: 28rem 1fr;
2608
- grid-template-rows: repeat(3, 1fr);
2609
- grid-column-gap: 0px;
2610
- grid-row-gap: 0px;
2611
- row-gap: var(--ab-space-2);
2612
- column-gap: var(--ab-space-2);
2613
- grid-gap: var(--ab-space-2); }
2614
-
2615
- .ab-LayoutEditor,
2616
- .ab-LayoutEditor * {
2617
- box-sizing: border-box; }
2618
-
2619
- .ab-LayoutEditor__ColumnList {
2620
- overflow: auto; }
2621
-
2622
- .ab-LayoutEditor__ColumnListPanel {
2623
- grid-area: 1 / 1 / 4 / 2; }
2624
-
2625
- .ab-LayoutEditor__ColumnSortListPanel {
2626
- grid-area: 1 / 2 / 2 / 3; }
2627
-
2628
- .ab-LayoutEditor__RowGroupsListPanel {
2629
- grid-area: 2 / 2 / 3 / 3; }
2630
-
2631
- .ab-LayoutEditor__PivotListPanel {
2632
- grid-area: 3 / 2 / 4 / 3; }
2633
-
2634
- .ab-LayoutEditor__PivotList--empty,
2635
- .ab-LayoutEditor__RowGroupsList--empty,
2636
- .ab-LayoutEditor__ColumnSortList--empty {
2637
- display: flex;
2638
- flex-flow: column;
2639
- align-items: center;
2640
- justify-content: center; }
2641
-
2642
- .ab-LayoutEditor__PivotList,
2643
- .ab-LayoutEditor__RowGroupsList,
2644
- .ab-LayoutEditor__ColumnSortList {
2645
- padding-top: var(--ab-space-2); }
2646
-
2647
- .ab-LayoutEditor__PivotList__column,
2648
- .ab-LayoutEditor__RowGroupsList__column,
2649
- .ab-LayoutEditor__ColumnSortList__column,
2650
- .ab-LayoutEditor__ColumnList__column {
2651
- background: var(--ab-color-primary);
2652
- color: var(--ab-color-text-on-primary);
2653
- margin: 0 0 var(--ab-space-2) 0; }
2654
-
2655
- .ab-LayoutEditor__PivotList__column,
2656
- .ab-LayoutEditor__RowGroupsList__column,
2657
- .ab-LayoutEditor__ColumnSortList__column {
2658
- padding-top: var(--ab-space-2);
2659
- padding-bottom: var(--ab-space-2); }
2660
-
2661
2601
  :root {
2662
2602
  --ab-cmp-popover__border-radius: var(--ab__border-radius);
2663
2603
  --ab-cmp-popover__background: var(--ab-color-defaultbackground);
@@ -2798,6 +2738,13 @@ template {
2798
2738
  --ab-cmp-adaptable-layout-wizard-column-input__max-width: 200px;
2799
2739
  --ab-cmp-adaptable-layout-wizard-column-input__width: 100%; }
2800
2740
 
2741
+ .ab-PermitedValuesSelector__PopupContent {
2742
+ z-index: 1000;
2743
+ font-size: var(--ab-cmp-adaptable-permitted-values-selector__font-size);
2744
+ border: 1px solid var(--ab-cmp-adaptable-permitted-values-selector__border);
2745
+ background-color: var(--ab-cmp-adaptable-permitted-values-selector__background-color);
2746
+ padding: var(--ab-cmp-adaptable-permitted-values-selector__padding); }
2747
+
2801
2748
  .ab-Radio-input:focus + svg rect {
2802
2749
  stroke: var(--ab-color-accent);
2803
2750
  stroke-width: 2; }
@@ -4258,6 +4205,12 @@ button.ab-StatusBar__SubPanel:hover {
4258
4205
  max-width: var(--ab-cmp-adaptable-layout-wizard-column-input__max-width);
4259
4206
  width: var(--ab-cmp-adaptable-layout-wizard-column-input__width); }
4260
4207
 
4208
+ :root {
4209
+ --ab-cmp-adaptable-permitted-values-selector__font-size: var(--ab-font-size-2);
4210
+ --ab-cmp-adaptable-permitted-values-selector__border: 1px solid var(--ab-color-primarydark);
4211
+ --ab-cmp-adaptable-permitted-values-selector__background-color: var(--ab-color-defaultbackground);
4212
+ --ab-cmp-adaptable-permitted-values-selector__padding: var(--ab-space-1); }
4213
+
4261
4214
  .ab-alert--error {
4262
4215
  background: var(--ab-color-error); }
4263
4216
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adaptabletools/adaptable",
3
- "version": "12.1.5",
3
+ "version": "12.1.8-canary.0",
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
  "keywords": [
6
6
  "web-components",
@@ -1,2 +1,2 @@
1
- declare const _default: 1659522068928;
1
+ declare const _default: 1661370166897;
2
2
  export default _default;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = 1659522068928;
3
+ exports.default = 1661370166897;
@@ -49,14 +49,20 @@ export interface IAdaptable {
49
49
  * Avoid unnecessary store calls and rendering
50
50
  */
51
51
  isInitialised: boolean;
52
- /**
53
- * TRUE if the Adaptable custom tool panel (side-bar) is displayed
54
- */
55
- hasAdaptableToolPanel: boolean;
56
52
  /**
57
53
  * Set to true when adaptable is destroyed.
58
54
  */
59
55
  isDestroyed: boolean;
56
+ /**
57
+ * TRUE iff:
58
+ * 1. isInitialised = TRUE
59
+ * 2. isDestroyed = FALSE
60
+ */
61
+ isLive: boolean;
62
+ /**
63
+ * TRUE if the Adaptable custom tool panel (side-bar) is displayed
64
+ */
65
+ hasAdaptableToolPanel: boolean;
60
66
  /**
61
67
  * Adaptable contains a number of 'Services' which are created at Startup
62
68
  *
@@ -113,6 +119,7 @@ export interface IAdaptable {
113
119
  _emitSync(eventName: 'CreateAdaptableContextMenuItems', data?: any): Promise<any>;
114
120
  prepareGrid(): void;
115
121
  redrawBody(): void;
122
+ redrawRenderedRows(): void;
116
123
  redrawHeader(): void;
117
124
  redrawRow(rowNode: RowNode): void;
118
125
  redrawRows(rowNodes: RowNode[]): void;
@@ -181,6 +188,7 @@ export interface IAdaptable {
181
188
  getVisibleRowNodes(): RowNode[];
182
189
  getAllRowNodes(config?: {
183
190
  includeGroupRows?: boolean;
191
+ filterFn?: (rowNode: RowNode) => boolean;
184
192
  }): RowNode[];
185
193
  getRowsInViewport(): RowNode[];
186
194
  isGroupRowNode(rowNode: RowNode): boolean;
@@ -5,14 +5,12 @@ import { Column } from '@ag-grid-community/all-modules';
5
5
  export interface ColumnOptions {
6
6
  /**
7
7
  * Provide an alternative Friendly Name for a Column
8
- *
9
8
  * @defaultValue undefined
10
9
  */
11
10
  columnFriendlyName?: (columnFriendlyNameContext: ColumnFriendlyNameContext) => string | undefined;
12
11
  /**
13
- * Optional list of Column Types - used primarily for Special Columns
14
- *
15
- * @defaultValue []
12
+ * Optional list of Column Types - used primarily for Calculated and FreeText Columns
13
+ * @defaultValue undefined
16
14
  */
17
15
  columnTypes?: string[];
18
16
  /**
@@ -150,4 +150,23 @@ export interface FilterOptions {
150
150
  * @defaultValue true
151
151
  */
152
152
  showQuickFilter?: boolean;
153
+ /**
154
+ * Display only currently filtered distinct values in Filter controls
155
+ *
156
+ * @defaultValue false
157
+ * @gridInfoItem
158
+ */
159
+ showDistinctFilteredValuesOnly?: boolean;
160
+ /**
161
+ * Display Clear Filter button in Toolbar and Toolpanel
162
+ * @defaultValue false
163
+ * @gridInfoItem
164
+ */
165
+ showClearFilterButton?: boolean;
166
+ /**
167
+ * Display Suspend / Unsuspend Button in Toolbar and Toolpanel
168
+ * @defaultValue false
169
+ * @gridInfoItem
170
+ */
171
+ showSuspendFilterButton?: boolean;
153
172
  }
@@ -1,4 +1,4 @@
1
- import { AdaptableIcon, ContextMenuContext, GridCell } from '../../types';
1
+ import { AdaptableApi, AdaptableIcon, ContextMenuContext, FDC3Context, GridCell } from '../../types';
2
2
  import { CustomFDC3Context } from '../PredefinedConfig/Common/FDC3Context';
3
3
  /**
4
4
  * Options required for when using the Finance plugin
@@ -41,6 +41,18 @@ export interface FinancePluginOptions {
41
41
  * Columns to use a Weighted Average aggregation
42
42
  */
43
43
  weightedAverageColumns?: WeightedAverageColumn[];
44
+ /**
45
+ * Intents to which to subscribe.
46
+ */
47
+ availableFDC3Intents?: (FDC3Intent | CustomFDC3Intent)[];
48
+ /**
49
+ * Called when an intent from `availableIntents` is raised.
50
+ */
51
+ onFDC3Intent?: (intent: FDC3Intent | CustomFDC3Intent, context: FDC3Context, adaptableApi: AdaptableApi) => void;
52
+ /**
53
+ * Called when a context changes.
54
+ */
55
+ onFDC3Context?: (context: FDC3Context, adaptableApi: AdaptableApi) => void;
44
56
  }
45
57
  /**
46
58
  * An Column which contains a Weighted Average aggregation
@@ -265,3 +277,12 @@ export interface RaiseFDC3IntentContext extends ContextMenuContext {
265
277
  */
266
278
  intent: FDC3Intent | CustomFDC3Intent;
267
279
  }
280
+ export declare type FDC3ContextHandler = (context: FDC3Context) => void;
281
+ export interface FDC3DesktopAgent {
282
+ raiseIntent: (intent: FDC3Intent, context: FDC3Context) => void;
283
+ broadcast: (context: FDC3Context) => void;
284
+ addIntentListener: (intent: FDC3Intent | CustomFDC3Intent, listener: (context: FDC3Context) => void) => void;
285
+ addContextListener: (contextType: string | null, handler: FDC3ContextHandler) => {
286
+ unsubscribe: () => void;
287
+ };
288
+ }
@@ -4,7 +4,7 @@ import { AdaptableState } from '../PredefinedConfig/AdaptableState';
4
4
  */
5
5
  export interface StateOptions {
6
6
  /**
7
- * Allows the customization of Adaptable State loading
7
+ * Allows customization of Adaptable State loading
8
8
  */
9
9
  loadState?: AdaptableLoadStateFunction;
10
10
  /**
@@ -12,11 +12,11 @@ export interface StateOptions {
12
12
  */
13
13
  applyState?: (state: any) => any;
14
14
  /**
15
- * Allows the customization of the Adaptable State that is going to be persisted
15
+ * Allows customization of Adaptable State about to be persisted
16
16
  */
17
17
  saveState?: AdaptableSaveStateFunction;
18
18
  /**
19
- * Allows the customization of Adaptable State persistence
19
+ * Allows customization of Adaptable State persistence
20
20
  */
21
21
  persistState?: AdaptablePersistStateFunction;
22
22
  /**
@@ -34,39 +34,52 @@ export interface StateOptions {
34
34
  */
35
35
  debounceStateDelay?: number;
36
36
  }
37
- export declare type AdaptableStateFunctionConfig = {
37
+ /**
38
+ * State Function Config object passed into all State Options functions (except 'applyState')
39
+ */
40
+ export interface AdaptableStateFunctionConfig {
41
+ /**
42
+ * Id of current Adaptable instance
43
+ */
38
44
  adaptableId: string;
45
+ /**
46
+ * State Key being used
47
+ */
39
48
  adaptableStateKey: string;
49
+ /**
50
+ * current Adaptable user
51
+ */
40
52
  userName: string;
53
+ /**
54
+ * optional url
55
+ */
41
56
  url?: string;
42
- };
57
+ }
43
58
  /**
44
59
  * Allows customization of state persistence - used `persistState` function in StateOptions
45
60
  *
46
61
  * @example
47
62
  * ```
48
- * persistState = (state, {adaptableId, adaptableStateKey}) => {
49
- * localStorage.setItem(adaptableStateKey, JSON.stringify(state))
63
+ * persistState = (state, stateFunctionConfig) => {
64
+ * localStorage.setItem(stateFunctionConfig.adaptableStateKey, JSON.stringify(state))
50
65
  * }
51
66
  * ```
52
67
  */
53
68
  export interface AdaptablePersistStateFunction {
54
- (state: any, { adaptableId, adaptableStateKey, userName, url }: AdaptableStateFunctionConfig): Promise<any>;
69
+ (state: any, adaptableStateFunctionConfig: AdaptableStateFunctionConfig): Promise<any>;
55
70
  }
56
71
  /**
57
72
  * Allows clearing state when a custom persistState is used.
58
73
  * Only called by configApi.reloadPredefinedConfig
59
- *
60
- * @example
61
74
  */
62
75
  export interface AdaptableClearStateFunction {
63
- ({ adaptableId, adaptableStateKey, userName, url }: AdaptableStateFunctionConfig): Promise<any>;
76
+ (adaptablestatefunctionconfig: AdaptableStateFunctionConfig): Promise<any>;
64
77
  }
65
78
  /**
66
79
  * Allows the customization state persistence - used by `saveState` function in StateOptions
67
80
  */
68
81
  export interface AdaptableSaveStateFunction {
69
- (state: AdaptableState, { adaptableId, adaptableStateKey, userName, url }: AdaptableStateFunctionConfig): any;
82
+ (state: AdaptableState, adaptablestatefunctionconfig: AdaptableStateFunctionConfig): any;
70
83
  }
71
84
  /**
72
85
  * Allows customization of state loading - used by `loadState` function in StateOptions
@@ -105,7 +105,7 @@ export interface BasePermittedValues {
105
105
  */
106
106
  export interface PermittedValues extends BasePermittedValues {
107
107
  /**
108
- * Values to display: either hardcoded list or a function
108
+ * Values to display: either hardcoded list or a function that returns a list
109
109
  */
110
110
  values?: any[] | ((context: PermittedValuesContext) => any[]);
111
111
  }
@@ -113,6 +113,9 @@ export interface PermittedValues extends BasePermittedValues {
113
113
  * Used to define permitted values for inline column editor
114
114
  */
115
115
  export interface EditLookUpPermittedValues extends BasePermittedValues {
116
+ /**
117
+ * Values to display in Edit Look Up: either hardcoded list or a function that returns a list
118
+ */
116
119
  values?: any[] | ((context: EditLookUpContext) => any[]);
117
120
  }
118
121
  /**
@@ -124,56 +127,60 @@ export interface FilterPermittedValues extends BasePermittedValues {
124
127
  * @defaultValue false
125
128
  */
126
129
  suppressFilterSearchBar?: boolean;
130
+ /**
131
+ * Values to display in 'IN' Filter: either hardcoded list or a function that returns a list
132
+ */
127
133
  values: (context: FilterPermittedValuesContext) => any[] | Promise<any[]>;
128
134
  }
129
135
  /**
130
- * Custom column values for custom sort.
136
+ * Custom column values for Custom Sort
131
137
  */
132
138
  export interface CustomSortPermittedValues extends BasePermittedValues {
139
+ /**
140
+ * Values to display in Custom Sort Wizard: either hardcoded list or a function that returns a list
141
+ */
133
142
  values: (context: PermittedValuesContext) => any[] | Promise<any[]>;
134
143
  }
135
144
  /**
136
145
  * User to define permitted values when updating cells via bulk update
137
146
  */
138
147
  export interface BulkUpdatePermittedValues extends BasePermittedValues {
148
+ /**
149
+ * Values to display in Bulk Update Wizard: either hardcoded list or a function that returns a list
150
+ */
139
151
  values: (context: BulkUpdatePermittedValuesContext) => any[] | Promise<any[]>;
140
152
  }
141
153
  /**
142
- * Use PermittedValues instead
143
- * @deprecated use PermittedValues instead
154
+ * Context used when getting PermittedValues via a function
144
155
  */
145
- export declare type CellValuesList = PermittedValues;
146
- export interface EditLookUpContext extends BaseContext {
147
- /**
148
- * Column displaying the Edit LookUp
149
- */
150
- column: AdaptableColumn;
151
- /**
152
- * Cell being edited
153
- */
154
- gridCell?: GridCell;
155
- }
156
156
  export interface PermittedValuesContext extends BaseContext {
157
157
  /**
158
158
  * Column whose values are being displayed
159
159
  */
160
160
  column: AdaptableColumn;
161
161
  }
162
- export interface FilterPermittedValuesContext extends BaseContext {
162
+ /**
163
+ * Context used when getting EditLookUpPermittedValues via a function
164
+ */
165
+ export interface EditLookUpContext extends PermittedValuesContext {
163
166
  /**
164
- * Column hosting the filter form
167
+ * Cell being edited
165
168
  */
166
- column: AdaptableColumn;
169
+ gridCell?: GridCell;
170
+ }
171
+ /**
172
+ * Context used when getting FilterPermittedValues via a function
173
+ */
174
+ export interface FilterPermittedValuesContext extends PermittedValuesContext {
167
175
  /**
168
176
  * A search string
169
177
  */
170
- filter: string;
178
+ searchFilter: string;
171
179
  }
172
- export interface BulkUpdatePermittedValuesContext extends BaseContext {
173
- /**
174
- * Column being edited via Bulk Update
175
- */
176
- column: AdaptableColumn;
180
+ /**
181
+ * Context used when getting BulkUpdatePermittedValues via a function
182
+ */
183
+ export interface BulkUpdatePermittedValuesContext extends PermittedValuesContext {
177
184
  /**
178
185
  * Cells which will be modified in the Bulk Update
179
186
  */
@@ -229,7 +229,7 @@ export interface ColumnApi {
229
229
  * @param columnId Column to check
230
230
  * @param columnFilter Current applied filter
231
231
  */
232
- getDistinctFilterDisplayValuesForColumn(columnId: string, filter: string): Promise<{
232
+ getDistinctFilterDisplayValuesForColumn(columnId: string, filter: string, showFilteredRowsOnly: boolean): Promise<{
233
233
  values: {
234
234
  value: any;
235
235
  label: string;
@@ -308,6 +308,11 @@ export interface ColumnApi {
308
308
  * @param columnId Column to Check
309
309
  */
310
310
  getDefaultAggFunc(columnId: string): string;
311
+ /**
312
+ * Returns the `types` property for a given Column
313
+ * @param columnId Column to Check
314
+ */
315
+ getTypesForColumn(columnId: string): string | string[];
311
316
  getMinValueForNumericColumn(column: AdaptableColumn): number | undefined;
312
317
  getMaxValueForNumericColumn(column: AdaptableColumn): number | undefined;
313
318
  }
@@ -133,6 +133,11 @@ export interface ExportApi {
133
133
  * Exports data currently in grid to Excel as What-You-See-Is-What-You-Get
134
134
  */
135
135
  exportVisualDataToExcel(): void;
136
+ /**
137
+ * Whether a Report is a Custom Report
138
+ * @param customReportName Report to Check
139
+ */
140
+ isCustomReport(report: Report): boolean;
136
141
  /**
137
142
  * Runs the report function of the CustomReport with the given reportName
138
143
  * @param reportName custom report name
@@ -48,6 +48,11 @@ export interface FilterApi {
48
48
  * @returns column filters
49
49
  */
50
50
  getColumnFilters(): ColumnFilter[];
51
+ /**
52
+ * Retrieves all active/no-suspedned Column Filters in currently applied Layout
53
+ * @returns column filters
54
+ */
55
+ getActiveColumnFilters(): ColumnFilter[];
51
56
  /**
52
57
  * Retrieves the Column Filter for the specified Column.
53
58
  * @param columnId Column ID to lookup
@@ -138,4 +143,28 @@ export interface FilterApi {
138
143
  * Fires Filter Applied Event - typically used to enable filtering on the server
139
144
  */
140
145
  fireFilterAppliedEvent(): void;
146
+ /**
147
+ * Compares to sets of Column Filters to see if they are identical
148
+ * @param filters1
149
+ * @param filters2
150
+ */
151
+ areColumnFiltersDifferent(filters1: ColumnFilter[], filters2: ColumnFilter[]): boolean;
152
+ /**
153
+ * Suspends a Column Filter
154
+ * @param columnFilter Column Filter to Suspend
155
+ */
156
+ suspendColumnFilter(columnFilter: ColumnFilter): void;
157
+ /**
158
+ * Unsuspends a Column Filter
159
+ * @param columnFilter Column Filter to UnSuspend
160
+ */
161
+ unSuspendColumnFilter(columnFilter: ColumnFilter): void;
162
+ /**
163
+ * Suspends all Column Filters
164
+ */
165
+ suspendAllColumnFilters(): void;
166
+ /**
167
+ * Unsuspends all Column Filters
168
+ */
169
+ unSuspendAllColumnFilters(): void;
141
170
  }
@@ -60,6 +60,10 @@ export interface FlashingCellApi {
60
60
  * @param flashingCellDefinitions Flashing Cell Definitions to Add to State
61
61
  */
62
62
  setFlashingCellDefinitions(flashingCellDefinitions: FlashingCellDefinition[]): void;
63
+ /**
64
+ * Merges a Flashing Cell Definition with default values
65
+ * @param flashingCellDefinition Flashing Cell Definition to Merge
66
+ */
63
67
  mergeFlashingCellDefinitionWithDefaults(flashingCellDefinition: FlashingCellDefinition): FlashingCellDefinition;
64
68
  /**
65
69
  * Adds provided Flashing cell Definitions
@@ -88,4 +92,8 @@ export interface FlashingCellApi {
88
92
  * @param scope the Scope to check
89
93
  */
90
94
  getFlashingCellPredicateDefsForScope(scope: AdaptableScope): AdaptablePredicateDef[];
95
+ /**
96
+ * Clears all Cells and Rows which have been flashed (primarily used if duration is 'Always')
97
+ */
98
+ clearGridFlashing(): void;
91
99
  }
@@ -206,6 +206,7 @@ export interface GridApi {
206
206
  */
207
207
  getAllRowNodes(config?: {
208
208
  includeGroupRows?: boolean;
209
+ filterFn?: (rowNode: RowNode) => boolean;
209
210
  }): RowNode[];
210
211
  /**
211
212
  * Retrieves Row Nodes that contain given Primary Keys
@@ -53,7 +53,7 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
53
53
  getQueryableColumns(): AdaptableColumn[];
54
54
  private LogMissingColumnWarning;
55
55
  getDistinctDisplayValuesForColumn(columnId: string): any[];
56
- getDistinctFilterDisplayValuesForColumn(columnId: string, filter: string): Promise<{
56
+ getDistinctFilterDisplayValuesForColumn(columnId: string, filter: string, showFilteredRowsOnly: boolean): Promise<{
57
57
  values: any[];
58
58
  suppressClientSideFilter: boolean;
59
59
  }>;
@@ -72,4 +72,5 @@ export declare class ColumnApiImpl extends ApiBase implements ColumnApi {
72
72
  getDefaultAggFunc(columnId: string): string;
73
73
  getMinValueForNumericColumn(column: AdaptableColumn): number | undefined;
74
74
  getMaxValueForNumericColumn(column: AdaptableColumn): number | undefined;
75
+ getTypesForColumn(columnId: string): string | string[] | undefined;
75
76
  }
@@ -289,7 +289,7 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
289
289
  return cv.normalisedValue;
290
290
  });
291
291
  }
292
- async getDistinctFilterDisplayValuesForColumn(columnId, filter) {
292
+ async getDistinctFilterDisplayValuesForColumn(columnId, filter, showFilteredRowsOnly) {
293
293
  const abColumn = this.getColumnFromId(columnId);
294
294
  if (abColumn == undefined) {
295
295
  return {
@@ -297,7 +297,7 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
297
297
  suppressClientSideFilter: false,
298
298
  };
299
299
  }
300
- const { gridCells, suppressClientSideFilter } = await this.adaptable.getDistinctFilterValuesForColumn(abColumn, false, filter);
300
+ const { gridCells, suppressClientSideFilter } = await this.adaptable.getDistinctFilterValuesForColumn(abColumn, showFilteredRowsOnly, filter);
301
301
  return {
302
302
  values: this.sortDistinctValues(gridCells, abColumn).map((cv) => {
303
303
  return {
@@ -434,5 +434,10 @@ class ColumnApiImpl extends ApiBase_1.ApiBase {
434
434
  // can we cache this in some way?
435
435
  return Math.max(...this.getDistinctRawValuesForColumn(column.columnId));
436
436
  }
437
+ getTypesForColumn(columnId) {
438
+ var _a;
439
+ const agGridColumn = this.getAgGridColumnForAdaptableColumn(columnId);
440
+ return (_a = agGridColumn === null || agGridColumn === void 0 ? void 0 : agGridColumn.getColDef()) === null || _a === void 0 ? void 0 : _a.type;
441
+ }
437
442
  }
438
443
  exports.ColumnApiImpl = ColumnApiImpl;
@@ -30,7 +30,7 @@ class DataSetApiImpl extends ApiBase_1.ApiBase {
30
30
  this.showModulePopup(ModuleConstants.DataSetModuleId);
31
31
  }
32
32
  fireDataSetSelectedEvent(dataSet) {
33
- if (this.adaptable.isInitialised) {
33
+ if (this.adaptable.isLive) {
34
34
  const dataSetSelectedInfo = {
35
35
  adaptableApi: this.adaptable.api,
36
36
  dataSet,
@@ -3,7 +3,7 @@ import { ExportState, Report, ReportData, ReportSchedule, SystemReportNames } fr
3
3
  import { ApiBase } from './ApiBase';
4
4
  import { AdaptableForm } from '../../PredefinedConfig/Common/AdaptableForm';
5
5
  import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
6
- import { CustomDestination, ExportFormContext } from '../../AdaptableOptions/ExportOptions';
6
+ import { CustomDestination, CustomReport, ExportFormContext } from '../../AdaptableOptions/ExportOptions';
7
7
  import { ExportDestination } from '../../PredefinedConfig/Common/Enums';
8
8
  export declare class ExportApiImpl extends ApiBase implements ExportApi {
9
9
  getExportState(): ExportState;
@@ -30,6 +30,8 @@ export declare class ExportApiImpl extends ApiBase implements ExportApi {
30
30
  editReports(reports: Report[]): Report[];
31
31
  isDataChangeInReport(cellDataChangedInfo: CellDataChangedInfo, report: Report): boolean;
32
32
  exportVisualDataToExcel(): void;
33
+ getAllCustomReports(): CustomReport[] | undefined;
34
+ isCustomReport(report: Report): boolean;
33
35
  runCustomReport(customReportName: string): ReportData | undefined;
34
36
  getReportDataForReport(reportName: string): ReportData | undefined;
35
37
  }
@@ -7,6 +7,8 @@ const ApiBase_1 = require("./ApiBase");
7
7
  const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
8
8
  const Enums_1 = require("../../PredefinedConfig/Common/Enums");
9
9
  const LoggingHelper_1 = require("../../Utilities/Helpers/LoggingHelper");
10
+ const ObjectFactory_1 = tslib_1.__importDefault(require("../../Utilities/ObjectFactory"));
11
+ const ArrayExtensions_1 = tslib_1.__importDefault(require("../../Utilities/Extensions/ArrayExtensions"));
10
12
  class ExportApiImpl extends ApiBase_1.ApiBase {
11
13
  getExportState() {
12
14
  return this.getAdaptableState().Export;
@@ -56,9 +58,16 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
56
58
  return systemDestinations;
57
59
  }
58
60
  getAllReports() {
59
- return this.getAvailableSystemReports()
61
+ const reports = this.getAvailableSystemReports()
60
62
  .map((s) => this.getReportByName(s))
61
63
  .concat(this.getExportState().Reports);
64
+ const customReports = this.getAllCustomReports();
65
+ if (ArrayExtensions_1.default.IsNotNullOrEmpty(customReports)) {
66
+ reports.push(...customReports.map((c) => {
67
+ return ObjectFactory_1.default.CreateCustomReport(c.name);
68
+ }));
69
+ }
70
+ return reports;
62
71
  }
63
72
  getReportSchedules() {
64
73
  return this.getAdaptableState().Schedule.ReportSchedules;
@@ -111,7 +120,7 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
111
120
  return true;
112
121
  }
113
122
  // if its a Custom Report then the User has to run it so we just ignore completely
114
- if (report.ReportRowScope == 'CustomRows' || report.ReportColumnScope == 'CustomColumns') {
123
+ if (this.isCustomReport(report)) {
115
124
  return false;
116
125
  }
117
126
  // Start with the DataChanged Column and go through all possibilities
@@ -169,9 +178,16 @@ class ExportApiImpl extends ApiBase_1.ApiBase {
169
178
  exportVisualDataToExcel() {
170
179
  this.adaptable.exportVisualDataToExcel();
171
180
  }
181
+ getAllCustomReports() {
182
+ return this.getExportOptions().customReports;
183
+ }
184
+ isCustomReport(report) {
185
+ var _a;
186
+ return ((_a = this.getAllCustomReports()) === null || _a === void 0 ? void 0 : _a.find((cr) => cr.name == report.Name)) != null;
187
+ }
172
188
  runCustomReport(customReportName) {
173
189
  var _a;
174
- const customReport = (_a = this.getExportOptions().customReports) === null || _a === void 0 ? void 0 : _a.find((cr) => cr.name == customReportName);
190
+ const customReport = (_a = this.getAllCustomReports()) === null || _a === void 0 ? void 0 : _a.find((cr) => cr.name == customReportName);
175
191
  if (!customReport) {
176
192
  LoggingHelper_1.LogAdaptableWarning(`Custom Report '${customReportName}' not found!`);
177
193
  return undefined;