@adaptabletools/adaptable-cjs 18.0.0-canary.11 → 18.0.0-canary.13

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 (146) hide show
  1. package/base.css +5 -1
  2. package/base.css.map +1 -1
  3. package/index.css +7 -1
  4. package/index.css.map +1 -1
  5. package/package.json +1 -1
  6. package/src/AdaptableOptions/AdaptableOptions.d.ts +2 -2
  7. package/src/AdaptableOptions/ColumnOptions.d.ts +7 -4
  8. package/src/AdaptableOptions/CommentOptions.d.ts +9 -7
  9. package/src/AdaptableOptions/MenuOptions.d.ts +1 -53
  10. package/src/AdaptableOptions/MenuOptions.js +3 -3
  11. package/src/AdaptableOptions/NoteOptions.d.ts +4 -1
  12. package/src/Api/AdaptableApi.d.ts +4 -4
  13. package/src/Api/ColumnApi.d.ts +4 -0
  14. package/src/Api/CommentApi.d.ts +11 -12
  15. package/src/Api/ConfigApi.d.ts +3 -4
  16. package/src/Api/EventApi.d.ts +7 -9
  17. package/src/Api/Events/CommentChanged.d.ts +11 -0
  18. package/src/Api/GridApi.d.ts +6 -1
  19. package/src/Api/Implementation/ActionColumnApiImpl.js +3 -6
  20. package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
  21. package/src/Api/Implementation/AdaptableApiImpl.js +2 -2
  22. package/src/Api/Implementation/ApiBase.d.ts +2 -2
  23. package/src/Api/Implementation/ApiBase.js +1 -1
  24. package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
  25. package/src/Api/Implementation/ColumnApiImpl.js +10 -0
  26. package/src/Api/Implementation/CommentsApiImpl.d.ts +1 -2
  27. package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -2
  28. package/src/Api/Implementation/ConfigApiImpl.js +8 -8
  29. package/src/Api/Implementation/GridApiImpl.d.ts +3 -1
  30. package/src/Api/Implementation/GridApiImpl.js +17 -1
  31. package/src/Api/Implementation/{NotesApiImpl.d.ts → NoteApiImpl.d.ts} +8 -8
  32. package/src/Api/Implementation/{NotesApiImpl.js → NoteApiImpl.js} +14 -14
  33. package/src/Api/Implementation/OptionsApiImpl.d.ts +4 -5
  34. package/src/Api/Implementation/OptionsApiImpl.js +2 -12
  35. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
  36. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
  37. package/src/Api/Internal/ActionRowInternalApi.js +1 -1
  38. package/src/Api/Internal/AdaptableInternalApi.d.ts +3 -3
  39. package/src/Api/Internal/AdaptableInternalApi.js +11 -11
  40. package/src/Api/Internal/CalculatedColumnInternalApi.js +3 -2
  41. package/src/Api/Internal/ExportInternalApi.d.ts +2 -1
  42. package/src/Api/Internal/ExportInternalApi.js +4 -1
  43. package/src/Api/Internal/Fdc3InternalApi.js +2 -2
  44. package/src/Api/Internal/FreeTextColumnInternalApi.js +3 -2
  45. package/src/Api/Internal/GridInternalApi.d.ts +2 -0
  46. package/src/Api/Internal/GridInternalApi.js +15 -0
  47. package/src/Api/Internal/{NotesInternalApi.d.ts → NoteInternalApi.d.ts} +1 -1
  48. package/src/Api/Internal/{NotesInternalApi.js → NoteInternalApi.js} +3 -3
  49. package/src/Api/NoteApi.d.ts +48 -0
  50. package/src/Api/OptionsApi.d.ts +8 -12
  51. package/src/Api/UserInterfaceApi.d.ts +0 -11
  52. package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
  53. package/src/PredefinedConfig/CommentState.d.ts +27 -23
  54. package/src/PredefinedConfig/Common/RowSummary.d.ts +6 -0
  55. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +6 -0
  56. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  57. package/src/PredefinedConfig/Common/Types.js +4 -1
  58. package/src/PredefinedConfig/{NotesState.d.ts → NoteState.d.ts} +3 -3
  59. package/src/PredefinedConfig/{CellAddress.js → NoteState.js} +0 -3
  60. package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -2
  61. package/src/PredefinedConfig/Selection/GridCell.d.ts +13 -0
  62. package/src/PredefinedConfig/SystemState.d.ts +2 -3
  63. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  64. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +27 -27
  65. package/src/Redux/ActionsReducers/SystemRedux.d.ts +1 -1
  66. package/src/Redux/ActionsReducers/SystemRedux.js +3 -3
  67. package/src/Redux/Store/AdaptableStore.js +10 -16
  68. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +1 -5
  69. package/src/Strategy/{CommentsModule.js → CommentModule.js} +11 -12
  70. package/src/Strategy/LayoutModule.d.ts +1 -0
  71. package/src/Strategy/LayoutModule.js +17 -1
  72. package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
  73. package/src/Strategy/{NotesModule.js → NoteModule.js} +13 -9
  74. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  75. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  76. package/src/Utilities/Constants/ModuleConstants.js +7 -7
  77. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
  78. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +10 -0
  79. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  80. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  81. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  82. package/src/Utilities/ObjectFactory.d.ts +3 -3
  83. package/src/Utilities/ObjectFactory.js +4 -24
  84. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +1 -0
  85. package/src/Utilities/Services/AggregatedScalarLiveValue.js +12 -10
  86. package/src/Utilities/Services/CellPopupService.js +2 -2
  87. package/src/Utilities/Services/Interface/IReportService.d.ts +1 -4
  88. package/src/Utilities/Services/ModuleService.js +4 -0
  89. package/src/Utilities/Services/QueryLanguageService.js +2 -2
  90. package/src/Utilities/Services/ReportService.d.ts +7 -5
  91. package/src/Utilities/Services/ReportService.js +238 -22
  92. package/src/Utilities/Services/SummaryService.d.ts +1 -1
  93. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  94. package/src/Utilities/adaptableQlUtils.js +18 -0
  95. package/src/View/AdaptableViewFactory.js +2 -2
  96. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  97. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +1 -1
  98. package/src/View/Comments/CommentsEditor.js +1 -1
  99. package/src/View/Comments/CommentsPopup.js +8 -4
  100. package/src/View/Components/NewScopeComponent.js +2 -2
  101. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +6 -6
  102. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  103. package/src/View/Components/ValueSelector/index.js +1 -1
  104. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -1
  105. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  106. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  107. package/src/View/Layout/LayoutViewPanel.js +2 -1
  108. package/src/View/Layout/TransposedPopup.js +19 -18
  109. package/src/View/Layout/Wizard/LayoutWizard.js +11 -2
  110. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +8 -0
  111. package/src/View/Layout/Wizard/sections/RowSummarySection.js +146 -0
  112. package/src/View/Note/NotePopup.d.ts +2 -0
  113. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +8 -8
  114. package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
  115. package/src/agGrid/AdaptableAgGrid.d.ts +2 -0
  116. package/src/agGrid/AdaptableAgGrid.js +97 -58
  117. package/src/agGrid/AgGridAdapter.d.ts +2 -0
  118. package/src/agGrid/AgGridAdapter.js +8 -0
  119. package/src/agGrid/AgGridColumnAdapter.d.ts +1 -1
  120. package/src/agGrid/AgGridColumnAdapter.js +4 -4
  121. package/src/agGrid/AgGridOptionsService.d.ts +4 -1
  122. package/src/agGrid/AgGridOptionsService.js +22 -0
  123. package/src/agGrid/defaultAdaptableOptions.js +0 -7
  124. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  125. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  126. package/src/components/ExpressionEditor/QueryBuilder/utils.js +3 -17
  127. package/src/components/icons/note.js +2 -2
  128. package/src/env.js +2 -2
  129. package/src/metamodel/adaptable.metamodel.d.ts +77 -14
  130. package/src/metamodel/adaptable.metamodel.js +1 -1
  131. package/src/parser/src/parser.js +117 -1257
  132. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  133. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
  134. package/src/parser/src/types.d.ts +2 -2
  135. package/src/types.d.ts +23 -20
  136. package/tsconfig.cjs.tsbuildinfo +1 -1
  137. package/src/Api/Events/CommentsChangedInfo.d.ts +0 -5
  138. package/src/Api/NotesApi.d.ts +0 -48
  139. package/src/PredefinedConfig/CellAddress.d.ts +0 -13
  140. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  141. package/src/View/Notes/NotesPopup.d.ts +0 -2
  142. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  143. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  144. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  145. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  146. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -1,21 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotesModule = void 0;
3
+ exports.NoteModule = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const ModuleConstants = tslib_1.__importStar(require("../Utilities/Constants/ModuleConstants"));
6
6
  const AdaptableModuleBase_1 = require("./AdaptableModuleBase");
7
- class NotesModule extends AdaptableModuleBase_1.AdaptableModuleBase {
7
+ class NoteModule extends AdaptableModuleBase_1.AdaptableModuleBase {
8
8
  constructor(api) {
9
- super(ModuleConstants.NotesModuleId, ModuleConstants.NotesFriendlyName, 'note', 'NotesPopup', 'Notes', api);
9
+ super(ModuleConstants.NoteModuleId, ModuleConstants.NoteFriendlyName, 'note', 'NotePopup', 'Notes', api);
10
10
  this.adaptable = api.internalApi.getAdaptableInstance();
11
11
  }
12
+ isModuleAvailable() {
13
+ // Note module doesn't support autogenerated primary keys
14
+ return super.isModuleAvailable() && !this.api.optionsApi.getAutogeneratePrimaryKey();
15
+ }
12
16
  addContextMenuItems(menuContext) {
13
17
  var _a, _b;
14
18
  if (!this.isModuleAvailable()) {
15
19
  return undefined;
16
20
  }
17
21
  const items = [];
18
- const isCellNotable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getNotesOptions()) === null || _b === void 0 ? void 0 : _b.isCellNotable;
22
+ const isCellNotable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getNoteOptions()) === null || _b === void 0 ? void 0 : _b.isCellNotable;
19
23
  if (!isCellNotable ||
20
24
  isCellNotable({
21
25
  adaptableApi: this.adaptable.api,
@@ -32,23 +36,23 @@ class NotesModule extends AdaptableModuleBase_1.AdaptableModuleBase {
32
36
  getAddRemoveNoteMenuItems(menuContext) {
33
37
  var _a;
34
38
  const items = [];
35
- if (!this.api.notesApi.internalApi.areNotesAvailable()) {
39
+ if (!this.api.noteApi.internalApi.areNotesAvailable()) {
36
40
  return items;
37
41
  }
38
42
  // does not have note
39
- const [note] = (_a = this.adaptable.api.notesApi.getCellNotes({
43
+ const [note] = (_a = this.adaptable.api.noteApi.getNotesForCell({
40
44
  PrimaryKeyValue: menuContext.primaryKeyValue,
41
45
  ColumnId: menuContext.adaptableColumn.columnId,
42
46
  })) !== null && _a !== void 0 ? _a : [];
43
47
  if (note) {
44
48
  items.push(this.createColumnMenuItemClickFunction('Remove Note', this.moduleInfo.Glyph, () => {
45
- this.api.notesApi.deleteNote(note);
49
+ this.api.noteApi.deleteNote(note);
46
50
  }));
47
51
  }
48
52
  else {
49
53
  items.push(this.createColumnMenuItemClickFunction('Add Note', this.moduleInfo.Glyph, () => {
50
54
  // add an empty one
51
- this.api.notesApi.addNote('', menuContext.primaryKeyValue, menuContext.adaptableColumn.columnId);
55
+ this.api.noteApi.addNote('', menuContext.primaryKeyValue, menuContext.adaptableColumn.columnId);
52
56
  this.api.internalApi.getCellPopupService().showPopup({
53
57
  PrimaryKeyValue: menuContext.primaryKeyValue,
54
58
  ColumnId: menuContext.adaptableColumn.columnId,
@@ -58,4 +62,4 @@ class NotesModule extends AdaptableModuleBase_1.AdaptableModuleBase {
58
62
  return items;
59
63
  }
60
64
  }
61
- exports.NotesModule = NotesModule;
65
+ exports.NoteModule = NoteModule;
@@ -13,6 +13,9 @@ const getScopeViewItems = (scope, api) => {
13
13
  if ('All' in scope) {
14
14
  values = ['All Columns'];
15
15
  }
16
+ if ('ColumnTypes' in scope) {
17
+ values = scope.ColumnTypes;
18
+ }
16
19
  return {
17
20
  label: 'Target',
18
21
  name: 'Target',
@@ -37,10 +37,10 @@ export declare const GridInfoModuleId: ModuleConstants;
37
37
  export declare const GridInfoFriendlyName = "Grid Info";
38
38
  export declare const ColumnInfoModuleId: ModuleConstants;
39
39
  export declare const ColumnInfoFriendlyName = "Column Info";
40
- export declare const NotesModuleId: ModuleConstants;
41
- export declare const NotesFriendlyName = "Notes";
42
- export declare const CommentsModuleId: ModuleConstants;
43
- export declare const CommentsFriendlyName = "Comments";
40
+ export declare const NoteModuleId: ModuleConstants;
41
+ export declare const NoteFriendlyName = "Note";
42
+ export declare const CommentModuleId: ModuleConstants;
43
+ export declare const CommentFriendlyName = "Comment";
44
44
  export declare const IPushPullModuleId: ModuleConstants;
45
45
  export declare const IPushPullFriendlyName = "IPushPull";
46
46
  export declare const LayoutModuleId: ModuleConstants;
@@ -108,12 +108,12 @@ export declare const ADAPTABLE_MODULE_MAP: {
108
108
  ToolPanel: string;
109
109
  SettingsPanel: string;
110
110
  StatusBar: string;
111
- Notes: string;
111
+ Note: string;
112
112
  ColumnInfo: string;
113
113
  DataImport: string;
114
114
  NamedQuery: string;
115
115
  GridFilter: string;
116
- Comments: string;
116
+ Comment: string;
117
117
  Query: string;
118
118
  Filter: string;
119
119
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PlusMinusFriendlyName = exports.PlusMinusModuleId = exports.OpenFinFriendlyName = exports.OpenFinModuleId = exports.LayoutFriendlyName = exports.LayoutModuleId = exports.IPushPullFriendlyName = exports.IPushPullModuleId = exports.CommentsFriendlyName = exports.CommentsModuleId = exports.NotesFriendlyName = exports.NotesModuleId = exports.ColumnInfoFriendlyName = exports.ColumnInfoModuleId = exports.GridInfoFriendlyName = exports.GridInfoModuleId = exports.FreeTextColumnFriendlyName = exports.FreeTextColumnModuleId = exports.FormatColumnFriendlyName = exports.FormatColumnModuleId = exports.NamedQueryFriendlyName = exports.NamedQueryModuleId = exports.GridFilterFriendlyName = exports.GridFilterModuleId = exports.ColumnFilterFriendlyName = exports.ColumnFilterModuleId = exports.Fdc3FriendlyName = exports.Fdc3ModuleId = exports.ExportFriendlyName = exports.ExportModuleId = exports.DataSetFriendlyName = exports.DataSetModuleId = exports.DataChangeHistoryFriendlyName = exports.DataChangeHistoryModuleId = exports.DashboardFriendlyName = exports.DashboardModuleId = exports.CustomSortFriendlyName = exports.CustomSortModuleId = exports.ChartingFriendlyName = exports.ChartingModuleId = exports.CellSummaryFriendlyName = exports.CellSummaryModuleId = exports.CalculatedColumnFriendlyName = exports.CalculatedColumnModuleId = exports.BulkUpdateFriendlyName = exports.BulkUpdateModuleId = exports.FlashingCellFriendlyName = exports.FlashingCellModuleId = exports.AlertModuleFriendlyName = exports.AlertModuleId = void 0;
3
+ exports.PlusMinusFriendlyName = exports.PlusMinusModuleId = exports.OpenFinFriendlyName = exports.OpenFinModuleId = exports.LayoutFriendlyName = exports.LayoutModuleId = exports.IPushPullFriendlyName = exports.IPushPullModuleId = exports.CommentFriendlyName = exports.CommentModuleId = exports.NoteFriendlyName = exports.NoteModuleId = exports.ColumnInfoFriendlyName = exports.ColumnInfoModuleId = exports.GridInfoFriendlyName = exports.GridInfoModuleId = exports.FreeTextColumnFriendlyName = exports.FreeTextColumnModuleId = exports.FormatColumnFriendlyName = exports.FormatColumnModuleId = exports.NamedQueryFriendlyName = exports.NamedQueryModuleId = exports.GridFilterFriendlyName = exports.GridFilterModuleId = exports.ColumnFilterFriendlyName = exports.ColumnFilterModuleId = exports.Fdc3FriendlyName = exports.Fdc3ModuleId = exports.ExportFriendlyName = exports.ExportModuleId = exports.DataSetFriendlyName = exports.DataSetModuleId = exports.DataChangeHistoryFriendlyName = exports.DataChangeHistoryModuleId = exports.DashboardFriendlyName = exports.DashboardModuleId = exports.CustomSortFriendlyName = exports.CustomSortModuleId = exports.ChartingFriendlyName = exports.ChartingModuleId = exports.CellSummaryFriendlyName = exports.CellSummaryModuleId = exports.CalculatedColumnFriendlyName = exports.CalculatedColumnModuleId = exports.BulkUpdateFriendlyName = exports.BulkUpdateModuleId = exports.FlashingCellFriendlyName = exports.FlashingCellModuleId = exports.AlertModuleFriendlyName = exports.AlertModuleId = void 0;
4
4
  exports.ADAPTABLE_MODULE_MAP = exports.DataImportFriendyName = exports.DataImportModuleId = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.StyledColumnFriendlyName = exports.StyledColumnModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = exports.ShortcutFriendlyName = exports.ShortcutModuleId = exports.ScheduleFriendlyName = exports.ScheduleModuleId = exports.QuickSearchFriendlyName = exports.QuickSearchModuleId = void 0;
5
5
  exports.AlertModuleId = 'Alert';
6
6
  exports.AlertModuleFriendlyName = 'Alert';
@@ -40,10 +40,10 @@ exports.GridInfoModuleId = 'GridInfo';
40
40
  exports.GridInfoFriendlyName = 'Grid Info';
41
41
  exports.ColumnInfoModuleId = 'ColumnInfo';
42
42
  exports.ColumnInfoFriendlyName = 'Column Info';
43
- exports.NotesModuleId = 'Notes';
44
- exports.NotesFriendlyName = 'Notes';
45
- exports.CommentsModuleId = 'Comments';
46
- exports.CommentsFriendlyName = 'Comments';
43
+ exports.NoteModuleId = 'Note';
44
+ exports.NoteFriendlyName = 'Note';
45
+ exports.CommentModuleId = 'Comment';
46
+ exports.CommentFriendlyName = 'Comment';
47
47
  exports.IPushPullModuleId = 'IPushPull';
48
48
  exports.IPushPullFriendlyName = 'IPushPull';
49
49
  exports.LayoutModuleId = 'Layout';
@@ -111,12 +111,12 @@ exports.ADAPTABLE_MODULE_MAP = {
111
111
  [exports.ToolPanelModuleId]: exports.ToolPanelFriendlyName,
112
112
  [exports.SettingsPanelModuleId]: exports.SettingsPanelFriendlyName,
113
113
  [exports.StatusBarModuleId]: exports.StatusBarFriendlyName,
114
- [exports.NotesModuleId]: exports.NotesFriendlyName,
114
+ [exports.NoteModuleId]: exports.NoteFriendlyName,
115
115
  [exports.ColumnInfoModuleId]: exports.ColumnInfoFriendlyName,
116
116
  [exports.DataImportModuleId]: exports.DataImportFriendyName,
117
117
  [exports.NamedQueryModuleId]: exports.NamedQueryFriendlyName,
118
118
  [exports.GridFilterModuleId]: exports.GridFilterFriendlyName,
119
- [exports.CommentsModuleId]: exports.CommentsFriendlyName,
119
+ [exports.CommentModuleId]: exports.CommentFriendlyName,
120
120
  // Remove next version
121
121
  ['Query']: 'Query',
122
122
  ['Filter']: 'Filter',
@@ -44,7 +44,7 @@ exports.DEFAULT_SETTINGS_PANEL_NAVIGATION_ITEMS = [
44
44
  'Charting',
45
45
  'Schedule',
46
46
  'TeamSharing',
47
- 'Notes',
48
- 'Comments',
47
+ 'Note',
48
+ 'Comment',
49
49
  'StateManagement',
50
50
  ];
@@ -116,6 +116,7 @@ exports.aggregatedScalarExpressionFunctions = {
116
116
  ],
117
117
  examples: ['SUM([colA])', 'SUM([colA], GROUP_BY([colB]))'],
118
118
  category: 'aggregation',
119
+ inputs: ['number'],
119
120
  },
120
121
  PERCENTAGE: {
121
122
  handler(args, context) {
@@ -259,6 +260,7 @@ exports.aggregatedScalarExpressionFunctions = {
259
260
  ],
260
261
  examples: ['AVG([colA])', 'AVG([colA], GROUP_BY([colB]))', 'AVG([colA], WEIGHT([colB]))'],
261
262
  category: 'aggregation',
263
+ inputs: ['number'],
262
264
  },
263
265
  MEDIAN: {
264
266
  handler(args, context) {
@@ -323,6 +325,7 @@ exports.aggregatedScalarExpressionFunctions = {
323
325
  ],
324
326
  examples: ['MEDIAN([colA])', 'MEDIAN([colA], GROUP_BY([colB]))'],
325
327
  category: 'aggregation',
328
+ inputs: ['number'],
326
329
  },
327
330
  MODE: {
328
331
  handler(args, context) {
@@ -384,6 +387,7 @@ exports.aggregatedScalarExpressionFunctions = {
384
387
  ],
385
388
  examples: ['MODE([colA])', 'MODE([colA], GROUP_BY([colB]))'],
386
389
  category: 'aggregation',
390
+ inputs: [['number'], ['text']],
387
391
  },
388
392
  DISTINCT: {
389
393
  handler(args, context) {
@@ -431,6 +435,7 @@ exports.aggregatedScalarExpressionFunctions = {
431
435
  ],
432
436
  examples: ['DISTINCT([colA])', 'DISTINCT([colA], GROUP_BY([colB]))'],
433
437
  category: 'aggregation',
438
+ inputs: [['number'], ['text']],
434
439
  },
435
440
  ONLY: {
436
441
  handler(args, context) {
@@ -480,6 +485,7 @@ exports.aggregatedScalarExpressionFunctions = {
480
485
  ],
481
486
  examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
482
487
  category: 'aggregation',
488
+ inputs: [['number'], ['text']],
483
489
  },
484
490
  STD_DEVIATION: {
485
491
  handler(args, context) {
@@ -537,6 +543,7 @@ exports.aggregatedScalarExpressionFunctions = {
537
543
  ],
538
544
  examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
539
545
  category: 'aggregation',
546
+ inputs: ['number'],
540
547
  },
541
548
  MIN: {
542
549
  handler(args, context) {
@@ -588,6 +595,7 @@ exports.aggregatedScalarExpressionFunctions = {
588
595
  ],
589
596
  examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
590
597
  category: 'aggregation',
598
+ inputs: ['number'],
591
599
  },
592
600
  MAX: {
593
601
  handler(args, context) {
@@ -639,6 +647,7 @@ exports.aggregatedScalarExpressionFunctions = {
639
647
  ],
640
648
  examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
641
649
  category: 'aggregation',
650
+ inputs: ['number'],
642
651
  },
643
652
  QUANT: {
644
653
  handler(args, context) {
@@ -837,6 +846,7 @@ exports.aggregatedScalarExpressionFunctions = {
837
846
  ],
838
847
  examples: ['COUNT([colA])', 'COUNT([colA], GROUP_BY([colB]))'],
839
848
  category: 'aggregation',
849
+ inputs: [['number'], ['text']],
840
850
  },
841
851
  OVER: {
842
852
  handler(args, context) {
@@ -279,10 +279,10 @@ const isLastElementMinValue = (values) => {
279
279
  };
280
280
  // useful for functions which do NOT have an initial change (ex. GRID_CHANGE NONE)
281
281
  const getDataChangedInfoStub = (context) => {
282
- var _a;
282
+ var _a, _b;
283
283
  let rowNodeStub;
284
284
  if (!context.filterFn) {
285
- rowNodeStub = context.adaptableApi.gridApi.getFirstRowNode();
285
+ rowNodeStub = (_a = context.node) !== null && _a !== void 0 ? _a : context.adaptableApi.gridApi.getFirstRowNode();
286
286
  }
287
287
  else {
288
288
  // if there is a WHERE clause defined, find the first rowNode which satisfies the condition
@@ -297,7 +297,7 @@ const getDataChangedInfoStub = (context) => {
297
297
  const rowNode = rowNodeStub;
298
298
  if (rowNode) {
299
299
  const primaryKeyValue = context.adaptableApi.gridApi.getPrimaryKeyValueForRowNode(rowNode);
300
- const columnId = (_a = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _a === void 0 ? void 0 : _a.columnId;
300
+ const columnId = (_b = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _b === void 0 ? void 0 : _b.columnId;
301
301
  const oldValue = context.adaptableApi.gridApi.getCellRawValue(primaryKeyValue, columnId);
302
302
  const column = context.adaptableApi.columnApi.getColumnWithColumnId(columnId);
303
303
  const newValue = oldValue;
@@ -2,6 +2,6 @@ import { ExpressionFunction } from '../../parser/src/types';
2
2
  /**
3
3
  * List of all the Scalar Functions available in AdaptableQL
4
4
  */
5
- export type ScalarFunctionName = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'POW' | 'ABS' | 'CEILING' | 'FLOOR' | 'ROUND' | 'MIN' | 'MAX' | 'AVG' | 'DATE' | 'NOW' | 'CURRENT_DAY' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'ADD_DAYS' | 'ADD_WEEKS' | 'ADD_MONTHS' | 'ADD_YEARS' | 'DIFF_DAYS' | 'DIFF_WEEKS' | 'DIFF_MONTHS' | 'DIFF_YEARS' | 'SUB_STRING' | 'REPLACE' | 'COALESCE' | 'NULL' | 'LEN' | 'UPPER' | 'LOWER' | 'CONCAT' | 'IF' | 'CASE' | 'COL' | 'VAR' | 'TO_ARRAY' | 'QUERY' | 'IS_BLANK' | 'IS_NOT_BLANK';
5
+ export type ScalarFunctionName = 'ADD' | 'SUB' | 'MUL' | 'DIV' | 'MOD' | 'POW' | 'ABS' | 'CEILING' | 'FLOOR' | 'ROUND' | 'MIN' | 'MAX' | 'AVG' | 'DATE' | 'NOW' | 'CURRENT_DAY' | 'DAY' | 'WEEK' | 'MONTH' | 'YEAR' | 'ADD_DAYS' | 'ADD_WEEKS' | 'ADD_MONTHS' | 'ADD_YEARS' | 'DIFF_DAYS' | 'DIFF_WEEKS' | 'DIFF_MONTHS' | 'DIFF_YEARS' | 'SUB_STRING' | 'REPLACE' | 'COALESCE' | 'NULL' | 'LEN' | 'UPPER' | 'LOWER' | 'CONCAT' | 'IF' | 'CASE' | 'COL' | 'FIELD' | 'VAR' | 'TO_ARRAY' | 'QUERY' | 'IS_BLANK' | 'IS_NOT_BLANK';
6
6
  export declare const scalarExpressionFunctions: Record<ScalarFunctionName, ExpressionFunction>;
7
7
  export declare const scalarExpressionFunctionNames: ScalarFunctionName[];
@@ -72,6 +72,21 @@ exports.scalarExpressionFunctions = {
72
72
  category: 'special',
73
73
  returnType: 'any',
74
74
  },
75
+ FIELD: {
76
+ handler(args, context) {
77
+ var _a, _b;
78
+ const fieldName = args[0];
79
+ if (StringExtensions_1.default.IsNullOrEmpty(fieldName)) {
80
+ throw new ExpressionEvaluationError_1.ExpressionEvaluationError('FIELD', 'requires a field name');
81
+ }
82
+ return (_a = context.adaptableApi) === null || _a === void 0 ? void 0 : _a.internalApi.getValueUsingField((_b = context.node) === null || _b === void 0 ? void 0 : _b.data, fieldName);
83
+ },
84
+ description: 'Returns the value of a row field (not necessarily mapped to a column). If the field is nested, use dot notation (e.g. "nested.fieldName")',
85
+ signatures: ['FIELD(fieldName:string)'],
86
+ examples: ['FIELD("fieldName")', 'FIELD("nested.fieldName")'],
87
+ category: 'special',
88
+ returnType: 'any',
89
+ },
75
90
  QUERY: {
76
91
  handler(args, context) {
77
92
  var _a, _b;
@@ -21,14 +21,14 @@ import { Shortcut } from '../PredefinedConfig/ShortcutState';
21
21
  import { IPushPullReport } from '../PredefinedConfig/SystemState';
22
22
  import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
23
23
  import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
24
- import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
24
+ import { AdaptableTheme, BaseContext, ChartDefinition, ColumnFilter, CommentThread, CustomDisplayFormatterContext, FlashingCellDefinition, GridDataChangedInfo, SpecialColumnSettings, SystemFilterPredicateId } from '../types';
25
25
  import { IRowNode } from '@ag-grid-community/core';
26
26
  import { AdaptableApi, AdaptableComment, BadgeStyleDefinition, CellAddress, NamedQuery } from '../../types';
27
27
  import { ToastOptions } from '../components/Toastify';
28
28
  import { StyledColumn } from '../PredefinedConfig/StyledColumnState';
29
29
  export declare function CreateEmptyCustomSort(): CustomSort;
30
30
  export declare function CreateAdaptableComment(text: string, api: AdaptableApi): AdaptableComment;
31
- export declare function CreateEmptyCalculatedColumn(): CalculatedColumn;
31
+ export declare function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): CalculatedColumn;
32
32
  export declare function CreateEmptyNamedQuery(expression?: string): NamedQuery;
33
33
  export declare function CreateEmptyPlusMinusNudge(): PlusMinusNudge;
34
34
  export declare function CreateGenericAlert(alertHeader: string, alertMessage: string, alertDefinition: AlertDefinition): AdaptableGenericAlert;
@@ -51,7 +51,7 @@ export declare function CreateReportSchedule(reportName: string): ReportSchedule
51
51
  export declare function CreateEmptySchedule(): Schedule;
52
52
  export declare function CreateEmptyShortcut(): Shortcut;
53
53
  export declare function CreateEmptyFormatColumn(): FormatColumn;
54
- export declare function CreateEmptyFreeTextColumn(): FreeTextColumn;
54
+ export declare function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings: Partial<SpecialColumnSettings>): FreeTextColumn;
55
55
  export declare function CreateEmptyLayout(layout?: Partial<Layout> & {
56
56
  Name: string;
57
57
  }, adaptableColumns?: AdaptableColumn[]): Layout;
@@ -23,7 +23,7 @@ function CreateAdaptableComment(text, api) {
23
23
  return comment;
24
24
  }
25
25
  exports.CreateAdaptableComment = CreateAdaptableComment;
26
- function CreateEmptyCalculatedColumn() {
26
+ function CreateEmptyCalculatedColumn(defaultSpecialColumnSettings) {
27
27
  return {
28
28
  Uuid: (0, Uuid_1.createUuid)(),
29
29
  ColumnId: GeneralConstants_1.EMPTY_STRING,
@@ -31,17 +31,7 @@ function CreateEmptyCalculatedColumn() {
31
31
  ScalarExpression: GeneralConstants_1.EMPTY_STRING,
32
32
  },
33
33
  // need to create some defaults - which we will change later
34
- CalculatedColumnSettings: {
35
- DataType: undefined,
36
- Filterable: true,
37
- Resizable: true,
38
- Groupable: false,
39
- Sortable: true,
40
- Pivotable: false,
41
- Aggregatable: false,
42
- SuppressMenu: false,
43
- SuppressMovable: false,
44
- },
34
+ CalculatedColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: undefined }),
45
35
  };
46
36
  }
47
37
  exports.CreateEmptyCalculatedColumn = CreateEmptyCalculatedColumn;
@@ -273,24 +263,14 @@ function CreateEmptyFormatColumn() {
273
263
  };
274
264
  }
275
265
  exports.CreateEmptyFormatColumn = CreateEmptyFormatColumn;
276
- function CreateEmptyFreeTextColumn() {
266
+ function CreateEmptyFreeTextColumn(defaultSpecialColumnSettings) {
277
267
  return {
278
268
  Uuid: (0, Uuid_1.createUuid)(),
279
269
  ColumnId: GeneralConstants_1.EMPTY_STRING,
280
270
  DefaultValue: GeneralConstants_1.EMPTY_STRING,
281
271
  FreeTextStoredValues: [],
282
272
  TextEditor: 'Inline',
283
- FreeTextColumnSettings: {
284
- DataType: 'String',
285
- Filterable: true,
286
- Resizable: true,
287
- Groupable: false,
288
- Sortable: true,
289
- Pivotable: false,
290
- Aggregatable: false,
291
- SuppressMenu: false,
292
- SuppressMovable: false,
293
- },
273
+ FreeTextColumnSettings: Object.assign(Object.assign({}, defaultSpecialColumnSettings), { DataType: 'String' }),
294
274
  };
295
275
  }
296
276
  exports.CreateEmptyFreeTextColumn = CreateEmptyFreeTextColumn;
@@ -22,5 +22,6 @@ export declare class AggregatedScalarLiveValue {
22
22
  getAllAggregationValues(): number[];
23
23
  private getAggregationValue;
24
24
  getGlobalAggregatedValue(): any;
25
+ private getRowNodeValueForColumnId;
25
26
  private computeAggregatedValue;
26
27
  }
@@ -63,7 +63,7 @@ class AggregatedScalarLiveValue {
63
63
  var _a, _b;
64
64
  if ((_a = this.expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.length) {
65
65
  const groupColumns = this.expressionEvaluation.aggregationParams.groupBy.map((groupByParam) => groupByParam.field);
66
- const groupKeys = groupColumns.map((groupColumnName) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, groupColumnName));
66
+ const groupKeys = groupColumns.map((groupColumnName) => this.getRowNodeValueForColumnId(rowNode, groupColumnName));
67
67
  return (_b = this.aggregationResult.deepMap.get(groupKeys)) === null || _b === void 0 ? void 0 : _b.reducerResults[this.aggregationReducerName];
68
68
  }
69
69
  return this.getGlobalAggregatedValue();
@@ -71,6 +71,11 @@ class AggregatedScalarLiveValue {
71
71
  getGlobalAggregatedValue() {
72
72
  return this.aggregationResult.reducerResults[this.aggregationReducerName];
73
73
  }
74
+ getRowNodeValueForColumnId(rowNode, columnId) {
75
+ const rawValue = this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
76
+ // we need to convert the Date object to a number, otherwise the grouping will not work (each Date instance is unique)
77
+ return rawValue instanceof Date ? rawValue.getTime() : rawValue;
78
+ }
74
79
  computeAggregatedValue(expressionEvaluation) {
75
80
  var _a;
76
81
  const gridRowNodes = expressionEvaluation.getRowNodes
@@ -80,18 +85,16 @@ class AggregatedScalarLiveValue {
80
85
  });
81
86
  // we iterate over the RowNode list (we need this to handle complex column values (nested values, valueGetters etc)
82
87
  // so we will map the fieldNames to RowNode.data
83
- const mapReducerValueGetter = (fieldName) => {
84
- return (rowNode) => {
85
- return this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
86
- };
88
+ const mapReducerValueGetter = (columnId) => {
89
+ return (rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
87
90
  };
88
91
  Object.values(expressionEvaluation.aggregationParams.reducers).forEach((aggregationReducer) => {
89
92
  aggregationReducer.getter = mapReducerValueGetter(aggregationReducer.field);
90
93
  // nullify the field to force the fallback on the getter fn
91
94
  aggregationReducer.field = null;
92
95
  });
93
- const mapGroupByToKey = (fieldName) => {
94
- return (_unusableProperty, rowNode) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, fieldName);
96
+ const mapGroupByToKey = (columnId) => {
97
+ return (_unusableProperty, rowNode) => this.getRowNodeValueForColumnId(rowNode, columnId);
95
98
  };
96
99
  (_a = expressionEvaluation.aggregationParams.groupBy) === null || _a === void 0 ? void 0 : _a.forEach((groupByDef) => {
97
100
  groupByDef.toKey = mapGroupByToKey(groupByDef.field);
@@ -99,11 +102,10 @@ class AggregatedScalarLiveValue {
99
102
  let aggregatedRowNodes = gridRowNodes;
100
103
  if (expressionEvaluation.sortByColumn) {
101
104
  const sortByColumn = expressionEvaluation.sortByColumn;
102
- const getRowNodeValue = (rowNode, columnId) => this.adaptableApi.gridApi.getRawValueFromRowNode(rowNode, columnId);
103
105
  // currently, we support only ascending sorting
104
106
  aggregatedRowNodes.sort((first, second) => {
105
- const firstValue = getRowNodeValue(first, sortByColumn);
106
- const secondValue = getRowNodeValue(second, sortByColumn);
107
+ const firstValue = this.getRowNodeValueForColumnId(first, sortByColumn);
108
+ const secondValue = this.getRowNodeValueForColumnId(second, sortByColumn);
107
109
  if (firstValue < secondValue) {
108
110
  return -1;
109
111
  }
@@ -78,7 +78,7 @@ class CellPopupService {
78
78
  this.hidePopup();
79
79
  return;
80
80
  }
81
- const cellNotes = this.adaptable.api.notesApi.getCellNotes(cellPosition);
81
+ const cellNotes = this.adaptable.api.noteApi.getNotesForCell(cellPosition);
82
82
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellPosition);
83
83
  const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
84
84
  // call only if it is different
@@ -96,7 +96,7 @@ class CellPopupService {
96
96
  return;
97
97
  }
98
98
  // if open but this has no note, close
99
- const cellNotes = this.adaptable.api.notesApi.getCellNotes(cellAddress);
99
+ const cellNotes = this.adaptable.api.noteApi.getNotesForCell(cellAddress);
100
100
  const cellComments = this.adaptable.api.commentApi.getCommentThread(cellAddress);
101
101
  const hasNotesOrComments = (cellNotes === null || cellNotes === void 0 ? void 0 : cellNotes.length) || cellComments;
102
102
  if (openCellAddress && !hasNotesOrComments) {
@@ -4,11 +4,8 @@ import { IAdaptableService } from './IAdaptableService';
4
4
  import { ExcelStyle, IRowNode } from '@ag-grid-community/core';
5
5
  import { CustomDestination, SystemExportDestination } from '../../../types';
6
6
  export interface IReportService extends IAdaptableService {
7
- resetExcelStyleMemoization(): void;
8
- registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
9
- getRegisteredExcelStyles(): ExcelStyle[];
7
+ buildExcelStylesForVisualReports(): ExcelStyle[];
10
8
  getExcelStyleIdForCellClassKey(cellClassKey: string): string;
11
- registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
12
9
  getExcelStyleWithFormattedDate(cellClassId: string): string;
13
10
  CreateSystemReport(systemReportName: SystemReportName): Report;
14
11
  IsSystemReport(reportName: string): boolean;
@@ -105,6 +105,8 @@ class ModuleService {
105
105
  return learnUrl + 'handbook-exporting';
106
106
  case 'ColumnFilter':
107
107
  return learnUrl + 'handbook-column-filter';
108
+ case 'Comment':
109
+ return learnUrl + 'handbook-comments';
108
110
  case 'GridFilter':
109
111
  return learnUrl + 'handbook-grid-filter';
110
112
  case 'FlashingCell':
@@ -117,6 +119,8 @@ class ModuleService {
117
119
  return learnUrl + 'handbook-monitoring-grid-info';
118
120
  case 'Layout':
119
121
  return learnUrl + 'handbook-layouts';
122
+ case 'Note':
123
+ return learnUrl + 'handbook-notes';
120
124
  case 'PlusMinus':
121
125
  return learnUrl + 'handbook-editing-plus-minus';
122
126
  case 'NamedQuery':
@@ -52,7 +52,7 @@ class QueryLanguageService {
52
52
  const moduleExpressionFunctions = this.getModuleExpressionFunctionsMap(module);
53
53
  const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctions);
54
54
  const reactiveExpression$ = parser.evaluate(reactiveExpression, {
55
- node: reactiveExpression,
55
+ node: this.adaptableApi.gridApi.getFirstRowNode(),
56
56
  adaptableApi: this.adaptableApi,
57
57
  userName: this.adaptableApi.optionsApi.getUserName(),
58
58
  adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
@@ -66,7 +66,7 @@ class QueryLanguageService {
66
66
  const moduleExpressionFunctionsMap = this.getModuleExpressionFunctionsMap(module);
67
67
  const booleanAndScalarFunctions = this.getBooleanAndScalarFunctions(moduleExpressionFunctionsMap);
68
68
  const aggregationEvaluation = parser.evaluate(aggregationExpression, {
69
- node: aggregationExpression,
69
+ node: this.adaptableApi.gridApi.getFirstRowNode(),
70
70
  adaptableApi: this.adaptableApi,
71
71
  userName: this.adaptableApi.optionsApi.getUserName(),
72
72
  adaptableId: this.adaptableApi.optionsApi.getAdaptableId(),
@@ -10,11 +10,8 @@ export declare class ReportService implements IReportService {
10
10
  private cellClassKey2excelStyleIdMap;
11
11
  private excelStylesWithFormattedDate;
12
12
  constructor(adaptableApi: AdaptableApi);
13
- resetExcelStyleMemoization(): void;
14
- registerExcelStyle(excelStyle: Partial<ExcelStyle>, cellClassKey: string): void;
15
- getRegisteredExcelStyles(): ExcelStyle[];
13
+ destroy(): void;
16
14
  getExcelStyleIdForCellClassKey(cellClassKey: string): string;
17
- registerExcelStyleWithFormattedDate(cellClassId: string, isoFormattedValue: string): void;
18
15
  getExcelStyleWithFormattedDate(cellClassId: string): string;
19
16
  CreateSystemReport(systemReportName: SystemReportName): Report;
20
17
  IsSystemReport(reportName: string): boolean;
@@ -33,7 +30,12 @@ export declare class ReportService implements IReportService {
33
30
  getCellExportValueFromRowNode(rowNode: IRowNode, columnId: string): any;
34
31
  getCellExportValueFromRawValue(rowNode: IRowNode, cellRawValue: any, columnId: string): any;
35
32
  getReportFileName(reportName: string, destination: SystemExportDestination | CustomDestination): string;
36
- destroy(): void;
37
33
  private getCustomExportDateFormat;
38
34
  private getCellExportValueFromRawValueByType;
35
+ buildExcelStylesForVisualReports(): ExcelStyle[];
36
+ createExcelStyleMemoization(): void;
37
+ private convertCSSToExcelStyle;
38
+ private resetExcelStyleMemoization;
39
+ private registerExcelStyle;
40
+ private registerExcelStyleWithFormattedDate;
39
41
  }