@adaptabletools/adaptable 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 (147) 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} +12 -12
  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} +1 -1
  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/NoteState.js +1 -0
  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} +21 -21
  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 +11 -17
  68. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +1 -5
  69. package/src/Strategy/{CommentsModule.js → CommentModule.js} +9 -10
  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} +11 -7
  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 +6 -6
  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 +14 -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 +140 -0
  112. package/src/View/Note/NotePopup.d.ts +2 -0
  113. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +6 -6
  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 +1 -14
  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.esm.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/PredefinedConfig/CellAddress.js +0 -4
  141. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  142. package/src/View/Notes/NotesPopup.d.ts +0 -2
  143. /package/src/Api/Events/{CommentsChangedInfo.js → CommentChanged.js} +0 -0
  144. /package/src/Api/{NotesApi.js → NoteApi.js} +0 -0
  145. /package/src/PredefinedConfig/{NotesState.js → Common/TransposeConfig.js} +0 -0
  146. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  147. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -1,19 +1,33 @@
1
- import { AdaptableObject } from '../types';
2
- import { ConfigState } from './ConfigState';
1
+ import { CellAddress } from '../types';
2
+ import { InternalState } from './InternalState';
3
+ import { TypeUuid } from './Uuid';
3
4
  /**
4
- * Note that can be applied to a Cell in AdapTable
5
+ * Internal State used for Comments Module
5
6
  */
6
- export interface AdaptableComment extends AdaptableObject {
7
+ export interface CommentState extends InternalState {
7
8
  /**
8
- * When Note was made
9
+ * Collection of AdapTable Comments
10
+ */
11
+ CommentThreads?: CommentThread[];
12
+ }
13
+ /**
14
+ * Comment that can be applied to a Cell in AdapTable
15
+ */
16
+ export interface AdaptableComment {
17
+ /**
18
+ * Unique identifier for the Comment
19
+ */
20
+ Uuid?: TypeUuid;
21
+ /**
22
+ * When Comment was made
9
23
  */
10
24
  Timestamp: number;
11
25
  /**
12
- * Value of the Note
26
+ * Content of the Comment
13
27
  */
14
28
  Value: string;
15
29
  /**
16
- * Author of the Note
30
+ * Author of the Comment
17
31
  */
18
32
  Author?: {
19
33
  UserName: string;
@@ -23,26 +37,16 @@ export interface AdaptableComment extends AdaptableObject {
23
37
  */
24
38
  AdaptableId?: string;
25
39
  }
26
- export interface CommentThread extends AdaptableObject {
27
- /**
28
- * Value in Primary Key Column
29
- */
30
- PrimaryKeyValue: string | number;
40
+ /**
41
+ * Thread of Comments for an Adaptable Cell
42
+ */
43
+ export interface CommentThread extends CellAddress {
31
44
  /**
32
- * Id of Column containing the Note
45
+ * Unique identifier for Comment
33
46
  */
34
- ColumnId: string;
47
+ Uuid?: TypeUuid;
35
48
  /**
36
49
  * Collection of Comments for this Cell
37
50
  */
38
51
  Comments: AdaptableComment[];
39
52
  }
40
- /**
41
- * Predefined Configuration for Notes Module
42
- */
43
- export interface CommentState extends ConfigState {
44
- /**
45
- * Collection of AdapTable Notes
46
- */
47
- CommentThreads?: CommentThread[];
48
- }
@@ -1,6 +1,12 @@
1
1
  import { SummarySupportedExpression } from '../../Utilities/Services/SummaryService';
2
2
  export declare const ROW_SUMMARY_ROW_ID = "__ROW_SUMMARY_ROW_ID";
3
+ /**
4
+ * Position of Row Summary - 'Top' or 'Bottom'
5
+ */
3
6
  export type RowSummaryPosition = 'Top' | 'Bottom';
7
+ /**
8
+ * Defines a Row Summary used in a Layout
9
+ */
4
10
  export interface RowSummary {
5
11
  Position?: RowSummaryPosition;
6
12
  ColumnsMap: Record<string, SummarySupportedExpression>;
@@ -0,0 +1,6 @@
1
+ export interface TransposeConfig {
2
+ transposedColumnId?: string;
3
+ hideTransposedColumn?: boolean;
4
+ visibleColumns?: boolean;
5
+ visibleRows?: boolean;
6
+ }
@@ -11,7 +11,7 @@ export declare const ALL_TOOLBARS: AdaptableDashboardToolbar[];
11
11
  /**
12
12
  * Modules which can appear in the AdapTable Status Bar
13
13
  */
14
- export type AdaptableStatusBarPanel = 'Alert' | 'CalculatedColumn' | 'BulkUpdate' | 'CellSummary' | 'Charting' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataImport' | 'DataSet' | 'Export' | 'ColumnFilter' | 'GridFilter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'SmartEdit' | 'Shortcut' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
14
+ export type AdaptableStatusBarPanel = 'Alert' | 'CalculatedColumn' | 'BulkUpdate' | 'CellSummary' | 'Charting' | 'Comment' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataImport' | 'DataSet' | 'Export' | 'ColumnFilter' | 'GridFilter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'Note' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'SmartEdit' | 'Shortcut' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel';
15
15
  export declare const ALL_STATUS_SUB_PANELS: AdaptableStatusBarPanel[];
16
16
  export type AdaptableToolPanels = AdaptableToolPanel[];
17
17
  /**
@@ -28,18 +28,18 @@ export type AdaptableModuleButtons = AdaptableModuleButton[];
28
28
  /**
29
29
  * List of all the Module buttons Adaptable provides - each Module has a popup for which this is a shortcut button
30
30
  */
31
- export type AdaptableModuleButton = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataImport' | 'DataSet' | 'Export' | 'ColumnFilter' | 'GridFilter' | 'NamedQuery' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme';
31
+ export type AdaptableModuleButton = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Comment' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataImport' | 'DataSet' | 'Export' | 'ColumnFilter' | 'GridFilter' | 'NamedQuery' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'Layout' | 'Note' | 'OpenFin' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme';
32
32
  export type AdaptableStateKeys = AdaptableStateKey[];
33
33
  export type AdaptableStateKey = keyof AdaptablePersistentState | 'OpenFin' | 'IPushPull';
34
34
  /**
35
35
  * Modules provided by AdapTable, subject to Entitlements and usually have Predefined Config
36
36
  */
37
- export type AdaptableModule = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Charting' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Fdc3' | 'ColumnFilter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'ColumnInfo' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel' | 'Notes' | 'DataImport' | 'GridFilter' | 'NamedQuery' | 'Comments';
37
+ export type AdaptableModule = 'Alert' | 'BulkUpdate' | 'CalculatedColumn' | 'CellSummary' | 'Charting' | 'Comment' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'Fdc3' | 'ColumnFilter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'ColumnInfo' | 'IPushPull' | 'Layout' | 'OpenFin' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'SettingsPanel' | 'Shortcut' | 'SmartEdit' | 'StyledColumn' | 'StateManagement' | 'StatusBar' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel' | 'Note' | 'DataImport' | 'GridFilter' | 'NamedQuery';
38
38
  export declare const ALL_MODULES: AdaptableModule[];
39
39
  /**
40
40
  * Modules which can appear in the Settings Panel
41
41
  */
42
- export type AdaptableSettingsPanel = 'Alert' | 'CalculatedColumn' | 'Charting' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'ColumnFilter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'ColumnInfo' | 'Layout' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'Shortcut' | 'StateManagement' | 'StatusBar' | 'StyledColumn' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel' | 'Notes' | 'DataImport' | 'GridFilter' | 'NamedQuery' | 'Comments';
42
+ export type AdaptableSettingsPanel = 'Alert' | 'CalculatedColumn' | 'Charting' | 'CustomSort' | 'Dashboard' | 'DataChangeHistory' | 'DataSet' | 'Export' | 'ColumnFilter' | 'FlashingCell' | 'FormatColumn' | 'FreeTextColumn' | 'GridInfo' | 'ColumnInfo' | 'Layout' | 'PlusMinus' | 'QuickSearch' | 'Schedule' | 'Shortcut' | 'StateManagement' | 'StatusBar' | 'StyledColumn' | 'SystemStatus' | 'TeamSharing' | 'Theme' | 'ToolPanel' | 'Note' | 'DataImport' | 'GridFilter' | 'NamedQuery' | 'Comment';
43
43
  export type TypeHint<Base, Literals> = (Base & {
44
44
  __subType?: true;
45
45
  }) | Literals;
@@ -26,6 +26,7 @@ export const ALL_STATUS_SUB_PANELS = [
26
26
  'BulkUpdate',
27
27
  'CalculatedColumn',
28
28
  'CellSummary',
29
+ 'Comment',
29
30
  'CustomSort',
30
31
  'Charting',
31
32
  'Dashboard',
@@ -40,6 +41,7 @@ export const ALL_STATUS_SUB_PANELS = [
40
41
  'FreeTextColumn',
41
42
  'GridInfo',
42
43
  'Layout',
44
+ 'Note',
43
45
  'PlusMinus',
44
46
  'QuickSearch',
45
47
  'Schedule',
@@ -77,7 +79,8 @@ export const ALL_MODULES = [
77
79
  ModuleConstants.BulkUpdateModuleId,
78
80
  ModuleConstants.CalculatedColumnModuleId,
79
81
  ModuleConstants.CellSummaryModuleId,
80
- ModuleConstants.NotesModuleId,
82
+ ModuleConstants.NoteModuleId,
83
+ ModuleConstants.CommentModuleId,
81
84
  ModuleConstants.ChartingModuleId,
82
85
  ModuleConstants.CustomSortModuleId,
83
86
  ModuleConstants.DashboardModuleId,
@@ -1,9 +1,9 @@
1
1
  import { AdaptableObject } from '../types';
2
2
  import { ConfigState } from './ConfigState';
3
3
  /**
4
- * Predefined Configuration for Notes Module
4
+ * Predefined Configuration for Note Module
5
5
  */
6
- export interface NotesState extends ConfigState {
6
+ export interface NoteState extends ConfigState {
7
7
  /**
8
8
  * Collection of AdapTable Notes
9
9
  */
@@ -18,7 +18,7 @@ export interface AdaptableNote extends AdaptableObject {
18
18
  */
19
19
  Timestamp: number;
20
20
  /**
21
- * Value of the Note
21
+ * Content of the Note
22
22
  */
23
23
  Text: string;
24
24
  /**
@@ -0,0 +1 @@
1
+ export {};
@@ -17,7 +17,7 @@ import { ToolPanelState } from './ToolPanelState';
17
17
  import { StatusBarState } from './StatusBarState';
18
18
  import { ChartingState } from './ChartingState';
19
19
  import { StyledColumnState } from './StyledColumnState';
20
- import { NotesState } from './NotesState';
20
+ import { NoteState } from './NoteState';
21
21
  import { NamedQueryState } from '../types';
22
22
  /**
23
23
  * This is the main Predefined Config interface which developers will populate at design-time
@@ -46,7 +46,7 @@ export interface PredefinedConfig {
46
46
  /**
47
47
  * Collection of personal Notes that are edited at Cell level
48
48
  */
49
- Notes?: NotesState;
49
+ Note?: NoteState;
50
50
  /**
51
51
  * Large series of properties to give users full control over the look and feel of the *Dashboard* - the section above the grid with toolbars and buttons
52
52
  */
@@ -1,5 +1,18 @@
1
1
  import { IRowNode } from '@ag-grid-community/core';
2
2
  import { AdaptableColumn } from '../Common/AdaptableColumn';
3
+ /**
4
+ * Very lightweight object to define an AdapTable Cell
5
+ */
6
+ export type CellAddress = {
7
+ /**
8
+ * Value in Primary Key Column
9
+ */
10
+ PrimaryKeyValue: string | number;
11
+ /**
12
+ * Id of Column containing the Note
13
+ */
14
+ ColumnId: string;
15
+ };
3
16
  /**
4
17
  * Defines a Cell in Adaptable - every cell is an intersection of a Column Id and a Primary Key Value
5
18
  */
@@ -1,7 +1,7 @@
1
1
  import { PreviewInfo } from '../Utilities/Interface/Preview';
2
2
  import { InternalState } from './InternalState';
3
3
  import { BulkUpdateValidationResult } from '../Strategy/Interface/IBulkUpdateModule';
4
- import { CellDataChangedInfo, GridCell, SmartEditOperation } from '../types';
4
+ import { CellAddress, CellDataChangedInfo, GridCell, SmartEditOperation } from '../types';
5
5
  import type { IPushPullState, IPushPullReport, IPushPullDomain } from './IPushPullState';
6
6
  import { OpenFinState, OpenFinReport } from './OpenFinState';
7
7
  import { AdaptableAlert } from './Common/AdaptableAlert';
@@ -12,7 +12,6 @@ import { AdaptableFlashingCell } from './Common/AdaptableFlashingCell';
12
12
  import { TypeUuid } from './Uuid';
13
13
  import { SummaryOperation } from './Common/Enums';
14
14
  import { ChartModel } from '@ag-grid-community/core';
15
- import { CellAddress } from './CellAddress';
16
15
  import { ExternalChartDefinition } from './ChartingState';
17
16
  import { CachedQuery } from './NamedQueryState';
18
17
  export type { IPushPullReport, IPushPullDomain };
@@ -97,7 +96,7 @@ export interface SystemState extends InternalState, IPushPullState, OpenFinState
97
96
  */
98
97
  DisableDeleteConfirmation: boolean;
99
98
  Export: {
100
- inProgressVisualData: boolean;
99
+ visualDataExportInProgress: boolean;
101
100
  };
102
101
  QuickSearch?: {
103
102
  floatingVisible?: boolean;
@@ -0,0 +1,38 @@
1
+ import * as Redux from 'redux';
2
+ import { AdaptableNote, NoteState } from '../../PredefinedConfig/NoteState';
3
+ import { CellAddress } from '../../types';
4
+ /**
5
+ * @ReduxAction A Note has been added
6
+ */
7
+ export declare const NOTE_ADD = "NOTE_ADD";
8
+ /**
9
+ * @ReduxAction A Note has been edited
10
+ */
11
+ export declare const NOTE_EDIT = "NOTE_EDIT";
12
+ /**
13
+ * @ReduxAction A Note has been deleted
14
+ */
15
+ export declare const NOTE_DELETE = "NOTE_DELETE";
16
+ /**
17
+ * @ReduxAction Note Module is ready
18
+ */
19
+ export declare const NOTE_READY = "NOTE_READY";
20
+ export interface AdaptableNoteAction extends Redux.Action {
21
+ adaptableNote: AdaptableNote;
22
+ }
23
+ export interface AdaptableNoteAddAction extends AdaptableNoteAction {
24
+ }
25
+ export interface AdaptableNoteEditAction extends AdaptableNoteAction {
26
+ }
27
+ export interface AdaptableNoteDeleteAction extends AdaptableNoteAction {
28
+ }
29
+ export interface NoteReadyAction extends Redux.Action {
30
+ noteState: NoteState;
31
+ }
32
+ export declare const NoteAdd: (note: AdaptableNote) => AdaptableNoteAddAction;
33
+ export declare const NoteEdit: (note: AdaptableNote) => AdaptableNoteEditAction;
34
+ export declare const NoteDelete: (note: AdaptableNote) => AdaptableNoteDeleteAction;
35
+ export declare const NoteReady: (note: NoteState) => NoteReadyAction;
36
+ export declare const GetAllNotesSelector: (state: NoteState) => AdaptableNote[];
37
+ export declare const GetNotesSelector: (state: NoteState, address: CellAddress) => AdaptableNote[];
38
+ export declare const NoteReducer: Redux.Reducer<NoteState>;
@@ -1,36 +1,36 @@
1
1
  import AdaptableHelper from '../../Utilities/Helpers/AdaptableHelper';
2
2
  import { EMPTY_ARRAY } from '../../Utilities/Constants/GeneralConstants';
3
3
  /**
4
- * @ReduxAction A Notes has been added
4
+ * @ReduxAction A Note has been added
5
5
  */
6
- export const NOTES_ADD = 'NOTES_ADD';
6
+ export const NOTE_ADD = 'NOTE_ADD';
7
7
  /**
8
- * @ReduxAction A Notes has been edited
8
+ * @ReduxAction A Note has been edited
9
9
  */
10
- export const NOTES_EDIT = 'NOTES_EDIT';
10
+ export const NOTE_EDIT = 'NOTE_EDIT';
11
11
  /**
12
- * @ReduxAction A Notes has been deleted
12
+ * @ReduxAction A Note has been deleted
13
13
  */
14
- export const NOTES_DELETE = 'NOTES_DELETE';
14
+ export const NOTE_DELETE = 'NOTE_DELETE';
15
15
  /**
16
- * @ReduxAction Notes Module is ready
16
+ * @ReduxAction Note Module is ready
17
17
  */
18
- export const NOTES_READY = 'NOTES_READY';
19
- export const NotesAdd = (note) => ({
20
- type: NOTES_ADD,
18
+ export const NOTE_READY = 'NOTE_READY';
19
+ export const NoteAdd = (note) => ({
20
+ type: NOTE_ADD,
21
21
  adaptableNote: note,
22
22
  });
23
- export const NotesEdit = (note) => ({
24
- type: NOTES_EDIT,
23
+ export const NoteEdit = (note) => ({
24
+ type: NOTE_EDIT,
25
25
  adaptableNote: note,
26
26
  });
27
- export const NotesDelete = (note) => ({
28
- type: NOTES_DELETE,
27
+ export const NoteDelete = (note) => ({
28
+ type: NOTE_DELETE,
29
29
  adaptableNote: note,
30
30
  });
31
- export const NotesReady = (note) => ({
32
- type: NOTES_READY,
33
- notesState: note,
31
+ export const NoteReady = (note) => ({
32
+ type: NOTE_READY,
33
+ noteState: note,
34
34
  });
35
35
  export const GetAllNotesSelector = (state) => state.Notes;
36
36
  export const GetNotesSelector = (state, address) => {
@@ -55,20 +55,20 @@ export const GetNotesSelector = (state, address) => {
55
55
  const initialState = {
56
56
  Notes: EMPTY_ARRAY,
57
57
  };
58
- export const NotesReducer = (state = initialState, action) => {
58
+ export const NoteReducer = (state = initialState, action) => {
59
59
  let adaptableNotes;
60
60
  switch (action.type) {
61
- case NOTES_ADD: {
61
+ case NOTE_ADD: {
62
62
  const note = action.adaptableNote;
63
63
  AdaptableHelper.addUuidAndSource(note);
64
64
  adaptableNotes = [...state.Notes, note];
65
65
  return Object.assign(Object.assign({}, state), { Notes: adaptableNotes });
66
66
  }
67
- case NOTES_EDIT: {
67
+ case NOTE_EDIT: {
68
68
  const note = action.adaptableNote;
69
69
  return Object.assign(Object.assign({}, state), { Notes: state.Notes.map((abObject) => (abObject.Uuid === note.Uuid ? note : abObject)) });
70
70
  }
71
- case NOTES_DELETE: {
71
+ case NOTE_DELETE: {
72
72
  const note = action.adaptableNote;
73
73
  return Object.assign(Object.assign({}, state), { Notes: state.Notes.filter((abObject) => abObject.Uuid !== note.Uuid) });
74
74
  }
@@ -339,6 +339,6 @@ export declare const SystemPreviousGroupedColumnsSelector: (state: SystemState)
339
339
  export declare const SystemQuickSearchFloatingVisibilitySelector: (state: SystemState) => boolean;
340
340
  export declare const SystemCommentsAndNotesSelector: (state: SystemState) => CellAddress;
341
341
  export declare const SystemCommentsAndNotesEditModeSelector: (state: SystemState) => boolean;
342
- export declare const SystemCommentsAndNotesFocusedEntitySelector: (state: SystemState) => "Note" | "Comment";
342
+ export declare const SystemCommentsAndNotesFocusedEntitySelector: (state: SystemState) => "Comment" | "Note";
343
343
  export declare const DataImportCompleted: (dataImportedInfo: DataImportedInfo) => DataImportCompletedAction;
344
344
  export declare const SystemReducer: Redux.Reducer<SystemState>;
@@ -395,7 +395,7 @@ const initialState = {
395
395
  },
396
396
  DisableDeleteConfirmation: false,
397
397
  Export: {
398
- inProgressVisualData: false,
398
+ visualDataExportInProgress: false,
399
399
  },
400
400
  };
401
401
  export const SystemReducer = (state = initialState, action) => {
@@ -728,12 +728,12 @@ export const SystemReducer = (state = initialState, action) => {
728
728
  }
729
729
  case SYSTEM_VISUAL_EXPORT_BEGIN: {
730
730
  return Object.assign(Object.assign({}, state), { Export: {
731
- inProgressVisualData: true,
731
+ visualDataExportInProgress: true,
732
732
  } });
733
733
  }
734
734
  case SYSTEM_VISUAL_EXPORT_END: {
735
735
  return Object.assign(Object.assign({}, state), { Export: {
736
- inProgressVisualData: false,
736
+ visualDataExportInProgress: false,
737
737
  } });
738
738
  }
739
739
  case SYSTEM_SET_QUICK_SEARCH_FLOATING_VISIBILITY: {
@@ -29,7 +29,7 @@ import * as FreeTextColumnRedux from '../ActionsReducers/FreeTextColumnRedux';
29
29
  import * as GridRedux from '../ActionsReducers/GridRedux';
30
30
  import * as LayoutRedux from '../ActionsReducers/LayoutRedux';
31
31
  import * as NamedQueryRedux from '../ActionsReducers/NamedQueryRedux';
32
- import * as NotesRedux from '../ActionsReducers/NotesRedux';
32
+ import * as NoteRedux from '../ActionsReducers/NoteRedux';
33
33
  import * as PlusMinusRedux from '../ActionsReducers/PlusMinusRedux';
34
34
  import * as QueryRedux from '../ActionsReducers/QueryRedux';
35
35
  import * as QuickSearchRedux from '../ActionsReducers/QuickSearchRedux';
@@ -39,7 +39,7 @@ import * as SmartEditRedux from '../ActionsReducers/SmartEditRedux';
39
39
  import * as StatusBarRedux from '../ActionsReducers/StatusBarRedux';
40
40
  import * as StyledColumnRedux from '../ActionsReducers/StyledColumnRedux';
41
41
  import * as SystemRedux from '../ActionsReducers/SystemRedux';
42
- import { SYSTEM_PROGRESS_INDICATOR_HIDE, SYSTEM_PROGRESS_INDICATOR_SHOW, SYSTEM_VISUAL_EXPORT_BEGIN, SYSTEM_VISUAL_EXPORT_END, } from '../ActionsReducers/SystemRedux';
42
+ import { SYSTEM_PROGRESS_INDICATOR_HIDE, SYSTEM_PROGRESS_INDICATOR_SHOW, } from '../ActionsReducers/SystemRedux';
43
43
  import * as TeamSharingRedux from '../ActionsReducers/TeamSharingRedux';
44
44
  import * as ThemeRedux from '../ActionsReducers/ThemeRedux';
45
45
  import * as ToolPanelRedux from '../ActionsReducers/ToolPanelRedux';
@@ -121,6 +121,7 @@ export class AdaptableStore {
121
121
  Popup: PopupRedux.PopupReducer,
122
122
  System: SystemRedux.SystemReducer,
123
123
  Plugins: PluginsRedux.PluginsReducer,
124
+ Comment: CommentsRedux.CommentsReducer,
124
125
  // Reducers for Persisted State
125
126
  Alert: AlertRedux.AlertReducer,
126
127
  FlashingCell: FlashingCellRedux.FlashingCellReducer,
@@ -142,8 +143,7 @@ export class AdaptableStore {
142
143
  ToolPanel: ToolPanelRedux.ToolPanelReducer,
143
144
  Charting: ChartingRedux.ChartingReducer,
144
145
  StyledColumn: StyledColumnRedux.StyledColumnReducer,
145
- Notes: NotesRedux.NotesReducer,
146
- Comment: CommentsRedux.CommentsReducer,
146
+ Note: NoteRedux.NoteReducer,
147
147
  Query: QueryRedux.QueryReducer,
148
148
  NamedQuery: NamedQueryRedux.NamedQueryReducer,
149
149
  };
@@ -861,12 +861,12 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
861
861
  * Note ACTIONS
862
862
  *******************/
863
863
  /**
864
- * Use Case: Notes has been edited/deleted/added
864
+ * Use Case: Note has been edited/deleted/added
865
865
  * Action: Triangle can be removed/added
866
866
  */
867
- case NotesRedux.NOTES_ADD:
868
- case NotesRedux.NOTES_EDIT:
869
- case NotesRedux.NOTES_DELETE: {
867
+ case NoteRedux.NOTE_ADD:
868
+ case NoteRedux.NOTE_EDIT:
869
+ case NoteRedux.NOTE_DELETE: {
870
870
  let returnAction = next(action);
871
871
  const node = adaptable.api.gridApi.getRowNodeForPrimaryKey(returnAction.adaptableNote.PrimaryKeyValue);
872
872
  adaptable.refreshCells([node], [returnAction.adaptableNote.ColumnId], true);
@@ -900,9 +900,9 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
900
900
  requestAnimationFrame(() => {
901
901
  var _a, _b;
902
902
  const commentThreads = adaptable.api.commentApi.getCommentThreads();
903
- adaptable.api.eventApi.emit('CommentsChanged', adaptable.api.commentApi.getCommentThreads());
903
+ adaptable.api.eventApi.emit('CommentChanged', adaptable.api.commentApi.getCommentThreads());
904
904
  (_b = (_a = adaptable.api.optionsApi
905
- .getCommentsOptions()) === null || _a === void 0 ? void 0 : _a.persistCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, commentThreads);
905
+ .getCommentOptions()) === null || _a === void 0 ? void 0 : _a.persistCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, commentThreads);
906
906
  });
907
907
  }
908
908
  return returnAction;
@@ -927,7 +927,7 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
927
927
  }
928
928
  }
929
929
  // This cannot be called because it would trigger an infinite loop
930
- // adaptable.api.eventApi.emit('CommentsChanged', commentThreads);
930
+ // adaptable.api.eventApi.emit('CommentChanged', commentThreads);
931
931
  // refresh all comments cells to show or hide the triangle
932
932
  [...addedCommentThreads, ...deletedCommentThreads].forEach((commentThread) => {
933
933
  const node = adaptable.api.gridApi.getRowNodeForPrimaryKey(commentThread.PrimaryKeyValue);
@@ -1266,12 +1266,6 @@ const adaptableMiddleware = (adaptable) => (function(middlewareAPI) {
1266
1266
  }
1267
1267
  return next(action);
1268
1268
  }
1269
- case SYSTEM_VISUAL_EXPORT_BEGIN:
1270
- case SYSTEM_VISUAL_EXPORT_END: {
1271
- let returnAction = next(action);
1272
- adaptable.ReportService.resetExcelStyleMemoization();
1273
- return returnAction;
1274
- }
1275
1269
  /*******************
1276
1270
  * CHARTING ACTIONS
1277
1271
  *******************/
@@ -2,11 +2,7 @@ import { AdaptableApi } from '../Api/AdaptableApi';
2
2
  import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
4
  import { IModule } from './Interface/IModule';
5
- /**
6
- * In the first iteration a cell can have only one note, the
7
- * notes is a list to allow further development.
8
- */
9
- export declare class CommentsModule extends AdaptableModuleBase implements IModule {
5
+ export declare class CommentModule extends AdaptableModuleBase implements IModule {
10
6
  private adaptable;
11
7
  constructor(api: AdaptableApi);
12
8
  onAdaptableReady(): void;
@@ -1,29 +1,28 @@
1
1
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
2
2
  import { createBaseContext } from '../Utilities/ObjectFactory';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
- /**
5
- * In the first iteration a cell can have only one note, the
6
- * notes is a list to allow further development.
7
- */
8
- export class CommentsModule extends AdaptableModuleBase {
4
+ export class CommentModule extends AdaptableModuleBase {
9
5
  constructor(api) {
10
- super(ModuleConstants.CommentsModuleId, ModuleConstants.CommentsFriendlyName, 'comments', 'CommentsPopup', 'comments', api);
6
+ super(ModuleConstants.CommentModuleId, ModuleConstants.CommentFriendlyName, 'comments', 'CommentsPopup', 'comments', api);
11
7
  this.adaptable = api.internalApi.getAdaptableInstance();
12
8
  }
13
9
  onAdaptableReady() {
14
10
  this.loadComments();
15
11
  }
16
12
  isModuleAvailable() {
17
- const options = this.adaptable.api.optionsApi.getCommentsOptions();
13
+ const options = this.adaptable.api.optionsApi.getCommentOptions();
18
14
  if (!options || !options.persistCommentThreads || !options.loadCommentThreads) {
19
15
  return false;
20
16
  }
17
+ if (this.api.optionsApi.getAutogeneratePrimaryKey()) {
18
+ return false;
19
+ }
21
20
  return super.isModuleAvailable();
22
21
  }
23
22
  async loadComments() {
24
23
  var _a, _b;
25
24
  const commentThreads = await ((_b = (_a = this.api.optionsApi
26
- .getCommentsOptions()) === null || _a === void 0 ? void 0 : _a.loadCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, createBaseContext(this.adaptable.api)));
25
+ .getCommentOptions()) === null || _a === void 0 ? void 0 : _a.loadCommentThreads) === null || _b === void 0 ? void 0 : _b.call(_a, createBaseContext(this.adaptable.api)));
27
26
  this.api.commentApi.loadCommentThreads(commentThreads);
28
27
  }
29
28
  addContextMenuItems(menuContext) {
@@ -32,11 +31,11 @@ export class CommentsModule extends AdaptableModuleBase {
32
31
  return undefined;
33
32
  }
34
33
  const items = [];
35
- const isCellCommentable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getCommentsOptions()) === null || _b === void 0 ? void 0 : _b.isCellCommentable;
34
+ const isCellCommentable = (_b = (_a = this.adaptable.api.optionsApi) === null || _a === void 0 ? void 0 : _a.getCommentOptions()) === null || _b === void 0 ? void 0 : _b.isCellCommentable;
36
35
  if (!isCellCommentable ||
37
36
  isCellCommentable({
38
37
  adaptableApi: this.adaptable.api,
39
- address: {
38
+ cellAddress: {
40
39
  PrimaryKeyValue: menuContext.primaryKeyValue,
41
40
  ColumnId: menuContext.adaptableColumn.columnId,
42
41
  },
@@ -13,6 +13,7 @@ export declare class LayoutModule extends AdaptableModuleBase implements IModule
13
13
  protected LayoutState: LayoutState;
14
14
  constructor(api: AdaptableApi);
15
15
  onAdaptableReady(): void;
16
+ rowSummariesSubscribtions(): void;
16
17
  getModuleAdaptableObjects(): AdaptableObject[];
17
18
  getExplicitlyReferencedColumnIds(layout: Layout): string[];
18
19
  getTeamSharingReferences(adaptableObject: AdaptableObject): TeamSharingReferences;
@@ -35,6 +35,10 @@ export class LayoutModule extends AdaptableModuleBase {
35
35
  requestAnimationFrame(() => {
36
36
  this.api.layoutApi.internalApi.fireLayoutChangedEvent('ADAPTABLE_READY', null, this.api.layoutApi.getLayoutState());
37
37
  });
38
+ this.rowSummariesSubscribtions();
39
+ }
40
+ rowSummariesSubscribtions() {
41
+ // ROW SUMMARY
38
42
  this.evaluateRowSummary();
39
43
  this.api.eventApi.on('AdaptableStateReloaded', () => {
40
44
  this.evaluateRowSummary();
@@ -49,9 +53,21 @@ export class LayoutModule extends AdaptableModuleBase {
49
53
  });
50
54
  });
51
55
  this.api.eventApi.on('LayoutChanged', (event) => {
52
- this.evaluateRowSummary();
56
+ // exclude filter events, those are handled in another event
57
+ if (event.actionName.includes('FILTER')) {
58
+ return;
59
+ }
60
+ setTimeout(() => {
61
+ // the timeout is added so the grid has time to repond to the layout changed
62
+ this.evaluateRowSummary();
63
+ }, 16);
53
64
  });
54
65
  const adaptable = this.api.internalApi.getAdaptableInstance();
66
+ adaptable._on('AdapTableFiltersApplied', () => {
67
+ // we need to use this instead of layout changed
68
+ // so the rows have time to update
69
+ this.evaluateRowSummary();
70
+ });
55
71
  adaptable._on('FirstDataRendered', () => {
56
72
  this.evaluateRowSummary();
57
73
  });
@@ -2,9 +2,10 @@ import { AdaptableApi } from '../Api/AdaptableApi';
2
2
  import { AdaptableMenuItem, ContextMenuContext } from '../PredefinedConfig/Common/Menu';
3
3
  import { AdaptableModuleBase } from './AdaptableModuleBase';
4
4
  import { IModule } from './Interface/IModule';
5
- export declare class NotesModule extends AdaptableModuleBase implements IModule {
5
+ export declare class NoteModule extends AdaptableModuleBase implements IModule {
6
6
  private adaptable;
7
7
  constructor(api: AdaptableApi);
8
+ isModuleAvailable(): boolean;
8
9
  addContextMenuItems(menuContext: ContextMenuContext): AdaptableMenuItem[] | undefined;
9
10
  private getAddRemoveNoteMenuItems;
10
11
  }