@adaptabletools/adaptable 22.0.0-canary.0 → 22.0.0-canary.2

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 (138) hide show
  1. package/README.md +4 -6
  2. package/index.css +3 -14
  3. package/index.css.map +1 -1
  4. package/package.json +1 -1
  5. package/src/AdaptableInterfaces/IAdaptable.d.ts +9 -0
  6. package/src/AdaptableOptions/AdaptablePlugin.js +6 -1
  7. package/src/AdaptableOptions/ExportOptions.d.ts +1 -2
  8. package/src/AdaptableOptions/FilterOptions.d.ts +3 -0
  9. package/src/AdaptableState/Common/AdaptableColumn.d.ts +6 -0
  10. package/src/AdaptableState/Common/RowDataChangedInfo.d.ts +3 -0
  11. package/src/AdaptableState/InitialState.d.ts +1 -1
  12. package/src/AdaptableState/Selection/GridCell.d.ts +9 -0
  13. package/src/Api/GridApi.d.ts +14 -0
  14. package/src/Api/Implementation/ActionColumnApiImpl.js +1 -0
  15. package/src/Api/Implementation/AdaptableApiImpl.js +52 -0
  16. package/src/Api/Implementation/AlertApiImpl.js +1 -0
  17. package/src/Api/Implementation/ApiBase.js +1 -0
  18. package/src/Api/Implementation/CalculatedColumnApiImpl.js +1 -0
  19. package/src/Api/Implementation/ChartingApiImpl.js +4 -0
  20. package/src/Api/Implementation/ColumnApiImpl.js +1 -0
  21. package/src/Api/Implementation/ColumnFilterApiImpl.js +1 -0
  22. package/src/Api/Implementation/CommentsApiImpl.js +1 -0
  23. package/src/Api/Implementation/CustomSortApiImpl.js +1 -0
  24. package/src/Api/Implementation/DashboardApiImpl.js +1 -0
  25. package/src/Api/Implementation/DataChangeHistoryApiImpl.js +12 -15
  26. package/src/Api/Implementation/DataImportApiImpl.js +1 -0
  27. package/src/Api/Implementation/DataSetApiImpl.js +1 -0
  28. package/src/Api/Implementation/EntitlementApiImpl.js +1 -0
  29. package/src/Api/Implementation/EventApiImpl.js +16 -14
  30. package/src/Api/Implementation/ExportApiImpl.js +1 -0
  31. package/src/Api/Implementation/ExpressionApiImpl.js +1 -0
  32. package/src/Api/Implementation/Fdc3ApiImpl.js +1 -0
  33. package/src/Api/Implementation/FilterApiImpl.js +3 -0
  34. package/src/Api/Implementation/FlashingCellApiImpl.js +1 -0
  35. package/src/Api/Implementation/FormatColumnApiImpl.js +1 -0
  36. package/src/Api/Implementation/FreeTextColumnApiImpl.js +1 -0
  37. package/src/Api/Implementation/GridApiImpl.d.ts +9 -0
  38. package/src/Api/Implementation/GridApiImpl.js +17 -0
  39. package/src/Api/Implementation/GridFilterApiImpl.js +1 -0
  40. package/src/Api/Implementation/LayoutApiImpl.js +1 -0
  41. package/src/Api/Implementation/NamedQueryApiImpl.js +1 -0
  42. package/src/Api/Implementation/NoteApiImpl.js +1 -0
  43. package/src/Api/Implementation/PredicateApiImpl.js +1 -0
  44. package/src/Api/Implementation/RowFormApiImpl.js +1 -0
  45. package/src/Api/Implementation/StyledColumnApiImpl.js +1 -0
  46. package/src/Api/Implementation/SystemStatusApiImpl.js +2 -0
  47. package/src/Api/Implementation/TeamSharingApiImpl.js +1 -0
  48. package/src/Api/Implementation/ThemeApiImpl.js +1 -0
  49. package/src/Api/Implementation/UserInterfaceApiImpl.js +2 -1
  50. package/src/Redux/Store/AdaptableReduxLocalStorageEngine.js +6 -0
  51. package/src/Redux/Store/AdaptableStore.js +57 -50
  52. package/src/Strategy/AdaptableModuleBase.js +4 -0
  53. package/src/Strategy/AlertModule.js +1 -0
  54. package/src/Strategy/CalculatedColumnModule.js +1 -0
  55. package/src/Strategy/CellSummaryModule.js +1 -1
  56. package/src/Strategy/DataChangeHistoryModule.js +1 -0
  57. package/src/Strategy/FlashingCellModule.js +1 -0
  58. package/src/Strategy/FreeTextColumnModule.js +1 -0
  59. package/src/Strategy/LayoutModule.js +2 -1
  60. package/src/Strategy/PlusMinusModule.js +2 -0
  61. package/src/Strategy/ScheduleModule.js +1 -0
  62. package/src/Strategy/ShortcutModule.js +2 -0
  63. package/src/Strategy/TeamSharingModule.js +10 -10
  64. package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +18 -17
  65. package/src/Utilities/Constants/DocumentationLinkConstants.js +18 -17
  66. package/src/Utilities/ExpressionFunctions/deepMap.js +31 -31
  67. package/src/Utilities/MenuItem.js +18 -0
  68. package/src/Utilities/Services/AggregatedScalarLiveValue.js +8 -0
  69. package/src/Utilities/Services/AlertService.js +6 -4
  70. package/src/Utilities/Services/AnnotationsService.js +3 -0
  71. package/src/Utilities/Services/CalculatedColumnExpressionService.js +2 -1
  72. package/src/Utilities/Services/ChartingService.js +1 -0
  73. package/src/Utilities/Services/DataService.js +10 -2
  74. package/src/Utilities/Services/Fdc3Service.js +5 -3
  75. package/src/Utilities/Services/FlashingCellService.js +5 -0
  76. package/src/Utilities/Services/LicenseService/index.js +1 -1
  77. package/src/Utilities/Services/MetamodelService.js +2 -2
  78. package/src/Utilities/Services/ModuleService.js +38 -38
  79. package/src/Utilities/Services/QueryLanguageService.js +6 -5
  80. package/src/Utilities/Services/RowFormService.js +1 -0
  81. package/src/Utilities/Services/RowSummaryService.js +10 -7
  82. package/src/Utilities/Services/TeamSharingService.js +3 -1
  83. package/src/Utilities/Services/ThemeService.js +11 -9
  84. package/src/Utilities/Services/ValidationService.js +1 -0
  85. package/src/Utilities/createAgStatusPanelComponent.js +3 -0
  86. package/src/View/BulkUpdate/BulkUpdateViewPanel.js +1 -0
  87. package/src/View/CalculatedColumn/CalculatedColumnSummary.js +8 -8
  88. package/src/View/CellSummary/CellSummaryViewPanel.js +1 -0
  89. package/src/View/Components/Buttons/ButtonBase/index.js +9 -9
  90. package/src/View/Components/Buttons/EntityListActionButtons.js +18 -18
  91. package/src/View/Components/ColumnFilter/components/FloatingFilterValues.js +1 -1
  92. package/src/View/Components/ExpressionWizard.js +5 -5
  93. package/src/View/Components/Panels/PanelDashboard/index.js +8 -8
  94. package/src/View/Components/Panels/PanelToolPanel/index.js +7 -7
  95. package/src/View/Components/ToolPanel/AdaptableToolPanel.js +2 -0
  96. package/src/View/CustomSort/CustomSortSummary.js +13 -13
  97. package/src/View/FormatColumn/FormatColumnSummary.js +13 -13
  98. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +13 -13
  99. package/src/View/SmartEdit/SmartEditViewPanel.js +1 -0
  100. package/src/View/Theme/ThemePopup.js +13 -16
  101. package/src/agGrid/Adaptable.js +4 -0
  102. package/src/agGrid/AdaptableAgGrid.d.ts +9 -0
  103. package/src/agGrid/AdaptableAgGrid.js +160 -37
  104. package/src/agGrid/AdaptableFilterHandler.js +4 -0
  105. package/src/agGrid/AdaptableLogger.d.ts +3 -0
  106. package/src/agGrid/AdaptableLogger.js +10 -0
  107. package/src/agGrid/AgGridAdapter.js +11 -1
  108. package/src/agGrid/AgGridColumnAdapter.js +2 -0
  109. package/src/agGrid/AgGridExportAdapter.js +10 -9
  110. package/src/agGrid/AgGridFilterAdapter.js +4 -0
  111. package/src/agGrid/AgGridFloatingFilterAdapter.js +3 -0
  112. package/src/agGrid/AgGridMenuAdapter.js +1 -0
  113. package/src/agGrid/AgGridModulesAdapter.js +2 -1
  114. package/src/agGrid/AgGridOptionsService.js +3 -0
  115. package/src/agGrid/AgGridThemeAdapter.js +2 -0
  116. package/src/agGrid/cellRenderers/ActionColumnRenderer.js +5 -0
  117. package/src/agGrid/cellRenderers/BadgeRenderer.js +2 -0
  118. package/src/agGrid/cellRenderers/PercentBarRenderer.js +1 -0
  119. package/src/agGrid/editors/AdaptableDateEditor/index.js +6 -3
  120. package/src/agGrid/editors/AdaptableNumberEditor/index.js +16 -12
  121. package/src/agGrid/editors/AdaptablePercentageEditor/index.js +17 -13
  122. package/src/agGrid/index.d.ts +6 -0
  123. package/src/agGrid/index.js +6 -0
  124. package/src/components/Datepicker/index.js +1 -1
  125. package/src/components/overlayBaseZIndex.js +1 -1
  126. package/src/components/utils/useContainerScrollObserver/index.js +17 -14
  127. package/src/devTools/index.js +54 -53
  128. package/src/env.js +2 -2
  129. package/src/layout-manager/src/LMEmitter.js +11 -11
  130. package/src/layout-manager/src/LMLogger.js +7 -0
  131. package/src/layout-manager/src/index.js +56 -51
  132. package/src/metamodel/adaptable.metamodel.d.ts +57 -0
  133. package/src/metamodel/adaptable.metamodel.js +1 -1
  134. package/src/migration/AdaptableUpgradeHelper.js +3 -0
  135. package/src/migration/VersionUpgrade.js +1 -0
  136. package/src/migration/VersionUpgrade17.js +1 -2
  137. package/src/parser/src/ExpressionEvaluationError.js +1 -0
  138. package/tsconfig.esm.tsbuildinfo +1 -1
@@ -16,6 +16,7 @@ import { getAlertBehaviourViewItems } from './Utilities/Alert/getAlertBehaviourV
16
16
  import { getAlertPreviewViewItems } from './Utilities/Alert/getAlertPreviewViewItems';
17
17
  import { getAlertTypeViewItems } from './Utilities/Alert/getAlertTypeViewItems';
18
18
  export class AlertModule extends AdaptableModuleBase {
19
+ isListeningToCellDataChanges;
19
20
  constructor(api) {
20
21
  super(ModuleConstants.AlertModuleId, ModuleConstants.AlertModuleFriendlyName, 'alert', 'AlertPopup', 'Get notified when things happen in Adaptable that you need to know about', api);
21
22
  this.isListeningToCellDataChanges = false;
@@ -7,6 +7,7 @@ import { getCalculatedColumnSettingsTags } from '../View/CalculatedColumn/Utilit
7
7
  import { getExpressionViewItems } from '../Utilities/getExpressionViewItems';
8
8
  import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
9
9
  export class CalculatedColumnModule extends AdaptableModuleBase {
10
+ isListeningToCellDataChanges;
10
11
  constructor(api) {
11
12
  super(ModuleConstants.CalculatedColumnModuleId, ModuleConstants.CalculatedColumnFriendlyName, 'calculated-column', 'CalculatedColumnPopup', 'Create bespoke columns whose cell value is derived dynamically from an Expression', api);
12
13
  this.isListeningToCellDataChanges = false;
@@ -8,9 +8,9 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
8
8
  * Module that provides Cell Summaries on numeric columns
9
9
  */
10
10
  export class CellSummaryModule extends AdaptableModuleBase {
11
+ cachedCellSummary = new WeakMap();
11
12
  constructor(api) {
12
13
  super(ModuleConstants.CellSummaryModuleId, ModuleConstants.CellSummaryFriendlyName, 'cells', 'CellSummaryPopup', 'See summary information on a group of numeric cells using multiple summary operations', api);
13
- this.cachedCellSummary = new WeakMap();
14
14
  }
15
15
  getViewAccessLevel() {
16
16
  return 'Full';
@@ -2,6 +2,7 @@ import { AdaptableModuleBase } from './AdaptableModuleBase';
2
2
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
3
3
  import { DataChangeHistoryStatusBarContent } from '../View/DataChangeHistory/DataChangeHistoryStatusBarContent';
4
4
  export class DataChangeHistoryModule extends AdaptableModuleBase {
5
+ isListeningToCellDataChanges;
5
6
  constructor(api) {
6
7
  super(ModuleConstants.DataChangeHistoryModuleId, ModuleConstants.DataChangeHistoryFriendlyName, 'target', 'DataChangeHistoryPopup', 'Provides an overview of all previous changes, giving the possibility to undo specific changes', api);
7
8
  this.isListeningToCellDataChanges = false;
@@ -12,6 +12,7 @@ import { FlashingCellWizard } from '../View/FlashingCell/Wizard/FlashingCellWiza
12
12
  import { getFlashingCellDurationViewItems } from './Utilities/FlashingCell/getFlashingCellDurationViewItems';
13
13
  import { errorOnce } from '../agGrid/AdaptableLogger';
14
14
  export class FlashingCellModule extends AdaptableModuleBase {
15
+ isListeningToCellDataChanges;
15
16
  constructor(api) {
16
17
  super(ModuleConstants.FlashingCellModuleId, ModuleConstants.FlashingCellFriendlyName, 'lightning', 'FlashingAlert', 'Flash cells when they change', api);
17
18
  this.isListeningToCellDataChanges = false;
@@ -5,6 +5,7 @@ import { FreeTextColumnWizard } from '../View/FreeTextColumn/Wizard/FreeTextColu
5
5
  import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
6
6
  import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
7
7
  export class FreeTextColumnModule extends AdaptableModuleBase {
8
+ isListeningToCellDataChanges;
8
9
  constructor(api) {
9
10
  super(ModuleConstants.FreeTextColumnModuleId, ModuleConstants.FreeTextColumnFriendlyName, 'horizontal-lines', 'FreeTextColumnPopup', 'Dynamic column showing custom content (stored in state and not with grid data)', api);
10
11
  this.isListeningToCellDataChanges = false;
@@ -17,9 +17,10 @@ import { getGridFilterViewItems } from '../View/Layout/Wizard/getGridFilterPrevi
17
17
  import { RowSummaryService } from '../Utilities/Services/RowSummaryService';
18
18
  import { isPivotLayout } from '../Api/Implementation/LayoutHelpers';
19
19
  export class LayoutModule extends AdaptableModuleBase {
20
+ LayoutState;
21
+ rowSummaryService = new RowSummaryService(this.api);
20
22
  constructor(api) {
21
23
  super(ModuleConstants.LayoutModuleId, ModuleConstants.LayoutFriendlyName, 'grid', 'LayoutPopup', 'Named sets of column visibility, order, groupings, aggregation, pivots etc.', api);
22
- this.rowSummaryService = new RowSummaryService(this.api);
23
24
  }
24
25
  onAdaptableReady() {
25
26
  this.rowSummaryService.onAdaptableReady();
@@ -11,6 +11,8 @@ import { MovePlusMinus } from '../View/PlusMinus/MovePlusMinus';
11
11
  import { PlusMinusWizard } from '../View/PlusMinus/Wizard/PlusMinusWizard';
12
12
  import { errorOnce } from '../agGrid/AdaptableLogger';
13
13
  export class PlusMinusModule extends AdaptableModuleBase {
14
+ shouldHandleKeyDown;
15
+ adaptable;
14
16
  constructor(api) {
15
17
  super(ModuleConstants.PlusMinusModuleId, ModuleConstants.PlusMinusFriendlyName, 'add-circle', 'PlusMinusPopup', 'Configure how a cell value will edit when the + or - keys are pressed', api);
16
18
  this.shouldHandleKeyDown = false;
@@ -31,6 +31,7 @@ const NodeSchedule = {
31
31
  },
32
32
  };
33
33
  export class ScheduleModule extends AdaptableModuleBase {
34
+ scheduleJobs;
34
35
  constructor(api) {
35
36
  super(ModuleConstants.ScheduleModuleId, ModuleConstants.ScheduleFriendlyName, 'schedule', 'SchedulePopup', 'Schedule AdapTable functionality to run at times of your choosing (e.g. run reports)', api);
36
37
  this.scheduleJobs = [];
@@ -9,6 +9,8 @@ import { getShortcutSettingsViewItems } from './Utilities/Shortcut/getShortcutSe
9
9
  import { getObjectTagsViewItems } from '../Utilities/getObjectTagsViewItems';
10
10
  import { getScopeViewItems } from '../Utilities/getScopeViewItems';
11
11
  export class ShortcutModule extends AdaptableModuleBase {
12
+ shouldHandleKeyDown;
13
+ adaptable;
12
14
  constructor(api) {
13
15
  super(ModuleConstants.ShortcutModuleId, ModuleConstants.ShortcutFriendlyName, 'link', 'ShortcutPopup', 'Set up rules so cells update mathematically when keys are pressed in numeric cells', api);
14
16
  this.shouldHandleKeyDown = false;
@@ -11,18 +11,18 @@ import ArrayExtensions from '../Utilities/Extensions/ArrayExtensions';
11
11
  import flatten from 'lodash/flatten';
12
12
  import AdaptableHelper from '../Utilities/Helpers/AdaptableHelper';
13
13
  export class TeamSharingModule extends AdaptableModuleBase {
14
+ SKIP_TEAMSHARING_UPDATE_ACTIONS = [
15
+ TEAMSHARING_GET,
16
+ TEAMSHARING_SET,
17
+ TEAMSHARING_SHARE,
18
+ TEAMSHARING_IMPORT_ITEM,
19
+ TEAMSHARING_PROCESS_IMPORT,
20
+ TEAMSHARING_REMOVE_ITEM,
21
+ TEAMSHARING_LINK_ITEM,
22
+ TEAMSHARING_UPDATE_ITEM,
23
+ ];
14
24
  constructor(api) {
15
25
  super(ModuleConstants.TeamSharingModuleId, ModuleConstants.TeamSharingFriendlyName, 'folder-shared', 'TeamSharingPopup', 'Team Sharing allows users to share - at run-time - Adaptable Objects between colleagues.', api);
16
- this.SKIP_TEAMSHARING_UPDATE_ACTIONS = [
17
- TEAMSHARING_GET,
18
- TEAMSHARING_SET,
19
- TEAMSHARING_SHARE,
20
- TEAMSHARING_IMPORT_ITEM,
21
- TEAMSHARING_PROCESS_IMPORT,
22
- TEAMSHARING_REMOVE_ITEM,
23
- TEAMSHARING_LINK_ITEM,
24
- TEAMSHARING_UPDATE_ITEM,
25
- ];
26
26
  }
27
27
  onAdaptableReady() {
28
28
  if (this.api.teamSharingApi.isTeamSharingAvailable()) {
@@ -1,17 +1,18 @@
1
- export declare const HOST_URL_DOCS = "https://docs.adaptabletools.com";
2
- export declare const ExpressionEditorDocsLink = "https://docs.adaptabletools.com/guide/ui-expression-editor";
3
- export declare const BooleanQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-standard";
4
- export declare const ScalarQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-standard";
5
- export declare const ObservableQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-observable";
6
- export declare const AggregatedBooleanQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-aggregation";
7
- export declare const AggregatedScalarQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-aggregation";
8
- export declare const CumulativeAggregatedScalarQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-cumulative";
9
- export declare const QuantileAggregatedScalarQueryDocsLink = "https://docs.adaptabletools.com/guide/adaptable-ql-expression-quantile";
10
- export declare const PredicateDocsLink = "https://docs.adaptabletools.com/guide/adaptable-predicate";
11
- export declare const PrimaryKeyDocsLink = "https://docs.adaptabletools.com/guide/getting-started-primary-key";
12
- export declare const LicenseDocsLink = "https://docs.adaptabletools.com/guide/licensing";
13
- export declare const AdaptableOptionsDocsLink = "https://docs.adaptabletools.com/guide/reference-options-overview";
14
- export declare const AgGridModulesDocsLink = "https://docs.adaptabletools.com/guide/dev-guide-aggrid-modules-overview";
15
- export declare const AlertMessageDocsLink = "https://docs.adaptabletools.com/guide/handbook-alerting-message";
16
- export declare const FormatColumnPlaceholderDocsLink = "https://docs.adaptabletools.com/guide/handbook-column-formatting-display-format-placeholder";
17
- export declare const AgGridRequiredModulesDocsLink = "https://docs.adaptabletools.com/guide/dev-guide-aggrid-modules-overview#mandatory-modules";
1
+ export declare const HOST_URL_ROOT = "https://www.adaptabletools.com";
2
+ export declare const HOST_URL_DOCS = "https://www.adaptabletools.com/docs";
3
+ export declare const ExpressionEditorDocsLink = "https://www.adaptabletools.com/docs/ui-expression-editor";
4
+ export declare const BooleanQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-standard";
5
+ export declare const ScalarQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-standard";
6
+ export declare const ObservableQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-observable";
7
+ export declare const AggregatedBooleanQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-aggregation";
8
+ export declare const AggregatedScalarQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-aggregation";
9
+ export declare const CumulativeAggregatedScalarQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-cumulative";
10
+ export declare const QuantileAggregatedScalarQueryDocsLink = "https://www.adaptabletools.com/docs/adaptable-ql-expression-quantile";
11
+ export declare const PredicateDocsLink = "https://www.adaptabletools.com/docs/adaptable-predicate";
12
+ export declare const PrimaryKeyDocsLink = "https://www.adaptabletools.com/docs/getting-started-primary-key";
13
+ export declare const LicenseDocsLink = "https://www.adaptabletools.com/buy/buying-adaptable-licensing";
14
+ export declare const AdaptableOptionsDocsLink = "https://www.adaptabletools.com/docs/technical-reference-adaptable-options";
15
+ export declare const AgGridModulesDocsLink = "https://www.adaptabletools.com/docs/dev-guide-aggrid-modules-overview";
16
+ export declare const AlertMessageDocsLink = "https://www.adaptabletools.com/docs/handbook-alerting-message";
17
+ export declare const FormatColumnPlaceholderDocsLink = "https://www.adaptabletools.com/docs/handbook-column-formatting-display-format-placeholder";
18
+ export declare const AgGridRequiredModulesDocsLink = "https://www.adaptabletools.com/docs/dev-guide-aggrid-modules-overview#mandatory-modules";
@@ -1,18 +1,19 @@
1
- export const HOST_URL_DOCS = 'https://docs.adaptabletools.com';
1
+ export const HOST_URL_ROOT = 'https://www.adaptabletools.com';
2
+ export const HOST_URL_DOCS = `${HOST_URL_ROOT}/docs`;
2
3
  //export const HOST_URL_DOCS = 'http://localhost:3000';
3
- export const ExpressionEditorDocsLink = `${HOST_URL_DOCS}/guide/ui-expression-editor`;
4
- export const BooleanQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-standard`;
5
- export const ScalarQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-standard`;
6
- export const ObservableQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-observable`;
7
- export const AggregatedBooleanQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-aggregation`;
8
- export const AggregatedScalarQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-aggregation`;
9
- export const CumulativeAggregatedScalarQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-cumulative`;
10
- export const QuantileAggregatedScalarQueryDocsLink = `${HOST_URL_DOCS}/guide/adaptable-ql-expression-quantile`;
11
- export const PredicateDocsLink = `${HOST_URL_DOCS}/guide/adaptable-predicate`;
12
- export const PrimaryKeyDocsLink = `${HOST_URL_DOCS}/guide/getting-started-primary-key`;
13
- export const LicenseDocsLink = `${HOST_URL_DOCS}/guide/licensing`;
14
- export const AdaptableOptionsDocsLink = `${HOST_URL_DOCS}/guide/reference-options-overview`;
15
- export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/guide/dev-guide-aggrid-modules-overview`;
16
- export const AlertMessageDocsLink = `${HOST_URL_DOCS}/guide/handbook-alerting-message`;
17
- export const FormatColumnPlaceholderDocsLink = `${HOST_URL_DOCS}/guide/handbook-column-formatting-display-format-placeholder`;
18
- export const AgGridRequiredModulesDocsLink = `${HOST_URL_DOCS}/guide/dev-guide-aggrid-modules-overview#mandatory-modules`;
4
+ export const ExpressionEditorDocsLink = `${HOST_URL_DOCS}/ui-expression-editor`;
5
+ export const BooleanQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-standard`;
6
+ export const ScalarQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-standard`;
7
+ export const ObservableQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-observable`;
8
+ export const AggregatedBooleanQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-aggregation`;
9
+ export const AggregatedScalarQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-aggregation`;
10
+ export const CumulativeAggregatedScalarQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-cumulative`;
11
+ export const QuantileAggregatedScalarQueryDocsLink = `${HOST_URL_DOCS}/adaptable-ql-expression-quantile`;
12
+ export const PredicateDocsLink = `${HOST_URL_DOCS}/adaptable-predicate`;
13
+ export const PrimaryKeyDocsLink = `${HOST_URL_DOCS}/getting-started-primary-key`;
14
+ export const LicenseDocsLink = `${HOST_URL_ROOT}/buy/buying-adaptable-licensing`;
15
+ export const AdaptableOptionsDocsLink = `${HOST_URL_DOCS}/technical-reference-adaptable-options`;
16
+ export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/dev-guide-aggrid-modules-overview`;
17
+ export const AlertMessageDocsLink = `${HOST_URL_DOCS}/handbook-alerting-message`;
18
+ export const FormatColumnPlaceholderDocsLink = `${HOST_URL_DOCS}/handbook-column-formatting-display-format-placeholder`;
19
+ export const AgGridRequiredModulesDocsLink = `${HOST_URL_DOCS}/dev-guide-aggrid-modules-overview#mandatory-modules`;
@@ -1,5 +1,8 @@
1
1
  const SORT_ASC_REVISION = (p1, p2) => sortAscending(p1.revision, p2.revision);
2
2
  export class DeepMap {
3
+ map = new Map();
4
+ length = 0;
5
+ revision = 0;
3
6
  static clone(map) {
4
7
  const clone = new DeepMap();
5
8
  map.visit((pair, keys) => {
@@ -8,37 +11,6 @@ export class DeepMap {
8
11
  return clone;
9
12
  }
10
13
  constructor(initial) {
11
- this.map = new Map();
12
- this.length = 0;
13
- this.revision = 0;
14
- this.visit = (fn) => {
15
- this.map.forEach((_, k) => this.visitKey(k, this.map, [], fn));
16
- };
17
- this.visitDepthFirst = (fn) => {
18
- this.visitWithNext([], fn);
19
- };
20
- this.visitWithNext = (parentKeys, fn, currentMap = this.map) => {
21
- if (!currentMap) {
22
- return;
23
- }
24
- let i = 0;
25
- currentMap.forEach((_, key) => {
26
- const pair = currentMap.get(key);
27
- if (!pair) {
28
- return;
29
- }
30
- const { map } = pair;
31
- const keys = [...parentKeys, key];
32
- const next = map ? () => this.visitWithNext(keys, fn, map) : undefined;
33
- if (pair.hasOwnProperty('value')) {
34
- fn(pair.value, keys, i, next);
35
- i++;
36
- }
37
- else {
38
- next?.();
39
- }
40
- });
41
- };
42
14
  if (initial) {
43
15
  initial.forEach((entry) => {
44
16
  const [keys, value] = entry;
@@ -222,6 +194,34 @@ export class DeepMap {
222
194
  // if it was called by fn, it won't be called again, as it's once-d
223
195
  next();
224
196
  }
197
+ visit = (fn) => {
198
+ this.map.forEach((_, k) => this.visitKey(k, this.map, [], fn));
199
+ };
200
+ visitDepthFirst = (fn) => {
201
+ this.visitWithNext([], fn);
202
+ };
203
+ visitWithNext = (parentKeys, fn, currentMap = this.map) => {
204
+ if (!currentMap) {
205
+ return;
206
+ }
207
+ let i = 0;
208
+ currentMap.forEach((_, key) => {
209
+ const pair = currentMap.get(key);
210
+ if (!pair) {
211
+ return;
212
+ }
213
+ const { map } = pair;
214
+ const keys = [...parentKeys, key];
215
+ const next = map ? () => this.visitWithNext(keys, fn, map) : undefined;
216
+ if (pair.hasOwnProperty('value')) {
217
+ fn(pair.value, keys, i, next);
218
+ i++;
219
+ }
220
+ else {
221
+ next?.();
222
+ }
223
+ });
224
+ };
225
225
  getArray(fn) {
226
226
  const result = [];
227
227
  this.visit((pair, keys) => {
@@ -11,6 +11,12 @@ export class MenuItemDoReduxAction {
11
11
  };
12
12
  this.reduxAction = reduxAction;
13
13
  }
14
+ name;
15
+ reduxAction;
16
+ label;
17
+ category;
18
+ isVisible;
19
+ icon;
14
20
  }
15
21
  export class MenuItemDoClickFunction {
16
22
  constructor(name, label, module, clickFunction, icon, isVisible) {
@@ -23,6 +29,12 @@ export class MenuItemDoClickFunction {
23
29
  };
24
30
  this.onClick = clickFunction;
25
31
  }
32
+ name;
33
+ onClick;
34
+ label;
35
+ category;
36
+ isVisible;
37
+ icon;
26
38
  }
27
39
  // A menu item which shows a popup screen when it is clieked
28
40
  export class MenuItemShowPopup {
@@ -36,4 +48,10 @@ export class MenuItemShowPopup {
36
48
  };
37
49
  this.reduxAction = PopupRedux.PopupShowScreen(module, componentName, popupParams);
38
50
  }
51
+ name;
52
+ reduxAction;
53
+ label;
54
+ category;
55
+ isVisible;
56
+ icon;
39
57
  }
@@ -8,6 +8,14 @@ const logOnce = (message, loggingFn) => {
8
8
  doOnceFlags[message] = true;
9
9
  };
10
10
  export class AggregatedScalarLiveValue {
11
+ source;
12
+ requestingModule;
13
+ adaptableApi;
14
+ getRowNodes;
15
+ aggregationReducerName;
16
+ aggregatedScalarExpression;
17
+ expressionEvaluation;
18
+ aggregationResult;
11
19
  constructor(source, requestingModule, adaptableApi, getRowNodes) {
12
20
  this.source = source;
13
21
  this.requestingModule = requestingModule;
@@ -3,12 +3,11 @@ import Emitter from '../Emitter';
3
3
  import { combineLatest, of } from 'rxjs';
4
4
  import { AlertModuleId } from '../Constants/ModuleConstants';
5
5
  export class AlertService {
6
+ adaptableApi;
7
+ emitter;
8
+ reactiveAlertsMap = new Map();
6
9
  constructor(adaptableApi) {
7
10
  this.adaptableApi = adaptableApi;
8
- this.reactiveAlertsMap = new Map();
9
- this.onReactiveAlertTriggered = (callback) => {
10
- return this.emitter.on('ReactiveAlertTriggered', callback);
11
- };
12
11
  this.emitter = new Emitter();
13
12
  }
14
13
  destroy() {
@@ -18,6 +17,9 @@ export class AlertService {
18
17
  this.reactiveAlertsMap.clear();
19
18
  this.reactiveAlertsMap = null;
20
19
  }
20
+ onReactiveAlertTriggered = (callback) => {
21
+ return this.emitter.on('ReactiveAlertTriggered', callback);
22
+ };
21
23
  createReactiveAlert(alertDefinition) {
22
24
  // if there is already a reactive alert for this definition, delete it (possible in case of editing definitions),
23
25
  this.deleteReactiveAlert(alertDefinition);
@@ -5,6 +5,9 @@ import ArrayExtensions from '../Extensions/ArrayExtensions';
5
5
  * If there are active Notes or Comments it listens to Cell Selection and Mouse Enter events
6
6
  */
7
7
  export class AnnotationsService {
8
+ api;
9
+ adaptable;
10
+ isListeningToEvents;
8
11
  constructor(api) {
9
12
  this.api = api;
10
13
  this.isListeningToEvents = false;
@@ -1,9 +1,10 @@
1
1
  import { CalculatedColumnModuleId } from '../Constants/ModuleConstants';
2
2
  import { AggregatedScalarLiveValue } from './AggregatedScalarLiveValue';
3
3
  export class CalculatedColumnExpressionService {
4
+ adaptableApi;
5
+ aggregatedScalarLiveValuesMap = new Map();
4
6
  constructor(adaptableApi) {
5
7
  this.adaptableApi = adaptableApi;
6
- this.aggregatedScalarLiveValuesMap = new Map();
7
8
  this.adaptableApi = adaptableApi;
8
9
  }
9
10
  listentoCellDataChange(cellDataChangedInfo) {
@@ -1,6 +1,7 @@
1
1
  import * as InternalRedux from '../../Redux/ActionsReducers/InternalRedux';
2
2
  import ObjectFactory from '../ObjectFactory';
3
3
  export class ChartingService {
4
+ api;
4
5
  constructor(api) {
5
6
  this.api = api;
6
7
  }
@@ -4,10 +4,16 @@ import Helper from '../Helpers/Helper';
4
4
  // ~ 8 hours
5
5
  const MAX_TIMEFRAME_SIZE = 86400000;
6
6
  export class DataService {
7
+ adaptable;
8
+ emitter;
9
+ cellDataChangeLogSubject$;
10
+ cellDataChangeLog$;
11
+ rowDataChangeLogSubject$;
12
+ rowDataChangeLog$;
13
+ undoChangeLog;
14
+ undoChangeTimers;
7
15
  constructor(adaptable) {
8
16
  this.adaptable = adaptable;
9
- this.on = (eventName, callback) => this.emitter.on(eventName, callback);
10
- this.emit = (eventName, data) => this.emitter.emit(eventName, data);
11
17
  this.adaptable = adaptable;
12
18
  this.emitter = new Emitter();
13
19
  this.cellDataChangeLogSubject$ = new Subject();
@@ -31,6 +37,8 @@ export class DataService {
31
37
  this.undoChangeTimers.clear();
32
38
  this.undoChangeTimers = null;
33
39
  }
40
+ on = (eventName, callback) => this.emitter.on(eventName, callback);
41
+ emit = (eventName, data) => this.emitter.emit(eventName, data);
34
42
  CreateCellDataChangedEvent(cellDataChangedInfo) {
35
43
  if (cellDataChangedInfo.newValue != cellDataChangedInfo.oldValue) {
36
44
  this.emitter.emitSync('CellDataChanged', cellDataChangedInfo);
@@ -1,11 +1,13 @@
1
1
  import { ContextConfiguration } from '../../AdaptableState/Common/Fdc3Context';
2
2
  import { Fdc3IntentConfiguration } from '../../AdaptableState/Common/Fdc3Intent';
3
3
  export class Fdc3Service {
4
+ adaptableApi;
5
+ contextHandlerSubscriptions = [];
6
+ intentHandlerSubscriptions = [];
7
+ loggedAgentError = false;
8
+ uiControlsDefaultConfiguration;
4
9
  constructor(adaptableApi) {
5
10
  this.adaptableApi = adaptableApi;
6
- this.contextHandlerSubscriptions = [];
7
- this.intentHandlerSubscriptions = [];
8
- this.loggedAgentError = false;
9
11
  // 1. Subscribe to FDC3 events
10
12
  const adaptableHandleIntentFn = this.getFdc3Options().intents?.handleIntent;
11
13
  const listenForIntents = this.getFdc3Options().intents?.listensFor ?? [];
@@ -3,6 +3,11 @@ export const FLASHING_CELL_ROW_KEY = '__ROW';
3
3
  * This service manages Flashing Cells
4
4
  */
5
5
  export class FlashingCellService {
6
+ api;
7
+ // map of rowPrimaryKey -> ColIdOrRowId -> FlashingCellUuid
8
+ gridCellsCurrentlyFlashing;
9
+ // map of FlashingCellUuid -> FlashingCell
10
+ flashingCellsMapping;
6
11
  constructor(api) {
7
12
  this.api = api;
8
13
  this.gridCellsCurrentlyFlashing = {};
@@ -1 +1 @@
1
- import{LicenseDisablePersistence as e,LicenseShowWatermark as a}from"../../../Redux/ActionsReducers/InternalRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import i from"../../ObjectFactory";import s from"lodash/clamp";import{LicenseDocsLink as o}from"../../Constants/DocumentationLinkConstants";import{decode as n,GENERIC_APP_NAME as r}from"../../license/decode";import{shouldLogThankYouMessage as l}from"./shouldLogThankYouMessage";const c="sales@adaptabletools.com",p=10,d=864e5;export var LicenseValidityType;!function(e){e.INVALID_LICENSE="INVALID_LICENSE",e.NO_LICENSE="NO_LICENSE",e.NON_PRODUCTION_VALID="NON_PRODUCTION_VALID",e.NON_PRODUCTION_EXPIRED_IN_SCOPE="NON_PRODUCTION_EXPIRED_IN_SCOPE",e.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE="NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE",e.COMMERCIAL_VALID="COMMERCIAL_VALID",e.COMMERCIAL_EXPIRED_IN_SCOPE="COMMERCIAL_EXPIRED_IN_SCOPE",e.COMMERCIAL_EXPIRED_OUT_OF_SCOPE="COMMERCIAL_EXPIRED_OUT_OF_SCOPE"}(LicenseValidityType||(LicenseValidityType={}));const h=()=>"undefined"!=typeof window?window.location.origin:"",E=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g.exec(e)||[]);return"https"===t&&"sandpack.codesandbox.io"===i},I=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.csb\.app)/g.exec(e)||[]);return"https"===t&&".csb.app"===i},_=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.adaptabletools\.com)/g.exec(e)||[]);return"https"===t&&".adaptabletools.com"===i};export class LicenseService{constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",()=>{requestAnimationFrame(()=>{this.adaptable.isDestroyed||this.init()})})}init(){let e=null;if(this.licenseKey)try{e=n(this.licenseKey)}catch(a){e=a}E()||I()||_()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return LicenseValidityType.NO_LICENSE;if(e instanceof Error)return LicenseValidityType.INVALID_LICENSE;const t=new Date(a.publishedAt),i=new Date(e.end),s=i<new Date,o=e.trial;let n=null;return n=s?i>t?o?LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE:o?LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?LicenseValidityType.NON_PRODUCTION_VALID:LicenseValidityType.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){const t=new Date;t.setHours(0,0,0,0);let i=0;e instanceof Error||!e?.end||(i=Math.floor((e?.end?.getTime()-t.getTime())/d),i=s(i,0,1/0));let n="",h="";!e||e instanceof Error||!e.appName||e.appName==r||(n=e.appName,h=" for application [APP_NAME]");const E=(e,a=o,t=c,s=i,r=n)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",r).replace("[DAYS]",`${s}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(E("This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("No AdapTable License found."),this.showWatermark("This instance of AdapTable does not have a license, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"INVALID_LICENSE":this.adaptable.logger.consoleLogByMessageType(E("This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("Corrupted AdapTable License found."),this.showWatermark("This instance of AdapTable has a corrupted License, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"NON_PRODUCTION_VALID":this.adaptable.logger.consoleLogByMessageType(E("This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Info");break;case"NON_PRODUCTION_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(E("This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Warning"),this.showWatermark("AdapTable License has expired");break;case"COMMERCIAL_VALID":if(i<=p)this.adaptable.logger.consoleLogByMessageType(E(`This AdapTable license${h} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{l()&&this.adaptable.logger.consoleLogByMessageType(E(`Thank you for using a valid AdapTable license${h}. Your license will expire in [DAYS] days.`),"Info")}catch(e){}break;case"COMMERCIAL_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(E(`This AdapTable license${h} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`),"Warning");break;case"COMMERCIAL_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(E(`This AdapTable license${h} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`),"Error"),this.showNotification("Adaptable License has expired"),this.showWatermark("Adaptable License has expired")}}showNotification(e){this.adaptable.api.internalApi.dispatchReduxAction(t({alertType:"generic",header:"License Error",message:e,alertDefinition:i.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction(a(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction(e())}destroy(){}}
1
+ import{LicenseDisablePersistence as e,LicenseShowWatermark as a}from"../../../Redux/ActionsReducers/InternalRedux";import{PopupShowAlert as t}from"../../../Redux/ActionsReducers/PopupRedux";import i from"../../ObjectFactory";import s from"lodash/clamp";import{LicenseDocsLink as o}from"../../Constants/DocumentationLinkConstants";import{decode as n,GENERIC_APP_NAME as r}from"../../license/decode";import{shouldLogThankYouMessage as l}from"./shouldLogThankYouMessage";const c="sales@adaptabletools.com",p=10,d=864e5;export var LicenseValidityType;!function(e){e.INVALID_LICENSE="INVALID_LICENSE",e.NO_LICENSE="NO_LICENSE",e.NON_PRODUCTION_VALID="NON_PRODUCTION_VALID",e.NON_PRODUCTION_EXPIRED_IN_SCOPE="NON_PRODUCTION_EXPIRED_IN_SCOPE",e.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE="NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE",e.COMMERCIAL_VALID="COMMERCIAL_VALID",e.COMMERCIAL_EXPIRED_IN_SCOPE="COMMERCIAL_EXPIRED_IN_SCOPE",e.COMMERCIAL_EXPIRED_OUT_OF_SCOPE="COMMERCIAL_EXPIRED_OUT_OF_SCOPE"}(LicenseValidityType||(LicenseValidityType={}));const h=()=>"undefined"!=typeof window?window.location.origin:"",E=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\d+\-\d+\-\d+\-(sandpack\.codesandbox\.io)/g.exec(e)||[]);return"https"===t&&"sandpack.codesandbox.io"===i},I=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.csb\.app)/g.exec(e)||[]);return"https"===t&&".csb.app"===i},_=()=>{const e=h(),[a,t,i]=Array.from(/(https):\/\/\S+(\.adaptabletools\.com)/g.exec(e)||[]);return"https"===t&&".adaptabletools.com"===i};export class LicenseService{adaptable;licenseKey;packageDetails;constructor(e,a,t){this.adaptable=e,this.licenseKey=a,this.packageDetails=t,this.adaptable=e,this.adaptable.api.eventApi.on("AdaptableReady",()=>{requestAnimationFrame(()=>{this.adaptable.isDestroyed||this.init()})})}init(){let e=null;if(this.licenseKey)try{e=n(this.licenseKey)}catch(a){e=a}E()||I()||_()||this.handleLicenseValidation(e,this.getValidityType(e,this.packageDetails))}getValidityType(e,a){if(!e)return LicenseValidityType.NO_LICENSE;if(e instanceof Error)return LicenseValidityType.INVALID_LICENSE;const t=new Date(a.publishedAt),i=new Date(e.end),s=i<new Date,o=e.trial;let n=null;return n=s?i>t?o?LicenseValidityType.NON_PRODUCTION_EXPIRED_IN_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_IN_SCOPE:o?LicenseValidityType.NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE:LicenseValidityType.COMMERCIAL_EXPIRED_OUT_OF_SCOPE:o?LicenseValidityType.NON_PRODUCTION_VALID:LicenseValidityType.COMMERCIAL_VALID,n}handleLicenseValidation(e,a){const t=new Date;t.setHours(0,0,0,0);let i=0;e instanceof Error||!e?.end||(i=Math.floor((e?.end?.getTime()-t.getTime())/d),i=s(i,0,1/0));let n="",h="";!e||e instanceof Error||!e.appName||e.appName==r||(n=e.appName,h=" for application [APP_NAME]");const E=(e,a=o,t=c,s=i,r=n)=>e.replace("[LINK]",a).replace("[EMAIL]",t).replace("[APP_NAME]",r).replace("[DAYS]",`${s}`);switch(a){case"NO_LICENSE":case"NON_PRODUCTION_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(E("This instance of AdapTable does not have a license, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("No AdapTable License found."),this.showWatermark("This instance of AdapTable does not have a license, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"INVALID_LICENSE":this.adaptable.logger.consoleLogByMessageType(E("This instance of AdapTable seems to use a corrupted License, and some functionality has therefore been removed. In order to use a fully-featured version of AdapTable, please contact [EMAIL]. You can learn more about the different AdapTable license options at [LINK]."),"Error"),this.showNotification("Corrupted AdapTable License found."),this.showWatermark("This instance of AdapTable has a corrupted License, and some functionality has therefore been removed."),this.disableStatePersistence();break;case"NON_PRODUCTION_VALID":this.adaptable.logger.consoleLogByMessageType(E("This AdapTable trial license expires in [DAYS] days. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Info");break;case"NON_PRODUCTION_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(E("This AdapTable trial license has now expired. Please contact [EMAIL] to upgrade to a commercial version of AdapTable. You can learn more about the different AdapTable license options at [LINK]."),"Warning"),this.showWatermark("AdapTable License has expired");break;case"COMMERCIAL_VALID":if(i<=p)this.adaptable.logger.consoleLogByMessageType(E(`This AdapTable license${h} expires in [DAYS] days. Please contact [EMAIL] to renew (giving you access to Support and Updates)`),"Info");else try{l()&&this.adaptable.logger.consoleLogByMessageType(E(`Thank you for using a valid AdapTable license${h}. Your license will expire in [DAYS] days.`),"Info")}catch(e){}break;case"COMMERCIAL_EXPIRED_IN_SCOPE":this.adaptable.logger.consoleLogByMessageType(E(`This AdapTable license${h} has expired. Please contact [EMAIL] if you wish to renew (giving you access to Support and Updates)`),"Warning");break;case"COMMERCIAL_EXPIRED_OUT_OF_SCOPE":this.adaptable.logger.consoleLogByMessageType(E(`This AdapTable license${h} has expired. Adaptable version was published after the license expired. Please contact [EMAIL] if you wish to renew your license.`),"Error"),this.showNotification("Adaptable License has expired"),this.showWatermark("Adaptable License has expired")}}showNotification(e){this.adaptable.api.internalApi.dispatchReduxAction(t({alertType:"generic",header:"License Error",message:e,alertDefinition:i.CreateInternalAlertDefinitionForMessages("Error")}))}showWatermark(e){this.adaptable.api.internalApi.dispatchReduxAction(a(e))}disableStatePersistence(){this.adaptable.api.internalApi.dispatchReduxAction(e())}destroy(){}}
@@ -5,9 +5,9 @@ import { AdaptableLogger } from '../../agGrid/AdaptableLogger';
5
5
  import { getDefaultAdaptableOptions } from '../../AdaptableOptions/DefaultAdaptableOptions';
6
6
  const supportedMetamodelTypes = ['s', 'n', 'b', 'a', 'f', 'R'];
7
7
  export class MetamodelService {
8
+ gridInfoOptions = new Map();
9
+ getAdaptableOptions = () => null;
8
10
  constructor(getAdaptableOptions, validateOptions) {
9
- this.gridInfoOptions = new Map();
10
- this.getAdaptableOptions = () => null;
11
11
  this.getAdaptableOptions = getAdaptableOptions;
12
12
  this.gridInfoOptions = this.buildGridInfoOptions();
13
13
  if (validateOptions) {