@adaptabletools/adaptable 18.0.0-canary.12 → 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 (106) hide show
  1. package/base.css +1 -1
  2. package/base.css.map +1 -1
  3. package/index.css +1 -1
  4. package/index.css.map +1 -1
  5. package/package.json +1 -1
  6. package/src/AdaptableOptions/MenuOptions.d.ts +1 -53
  7. package/src/AdaptableOptions/MenuOptions.js +3 -3
  8. package/src/Api/AdaptableApi.d.ts +2 -2
  9. package/src/Api/ConfigApi.d.ts +2 -3
  10. package/src/Api/GridApi.d.ts +2 -1
  11. package/src/Api/Implementation/ActionColumnApiImpl.js +3 -6
  12. package/src/Api/Implementation/ConfigApiImpl.js +7 -7
  13. package/src/Api/Implementation/GridApiImpl.d.ts +2 -1
  14. package/src/Api/Implementation/GridApiImpl.js +8 -1
  15. package/src/Api/Implementation/NoteApiImpl.d.ts +2 -2
  16. package/src/Api/Implementation/NoteApiImpl.js +8 -8
  17. package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +0 -3
  18. package/src/Api/Implementation/UserInterfaceApiImpl.js +0 -8
  19. package/src/Api/Internal/ActionRowInternalApi.js +1 -1
  20. package/src/Api/Internal/AdaptableInternalApi.d.ts +2 -2
  21. package/src/Api/Internal/AdaptableInternalApi.js +11 -11
  22. package/src/Api/Internal/CalculatedColumnInternalApi.js +3 -2
  23. package/src/Api/Internal/Fdc3InternalApi.js +2 -2
  24. package/src/Api/Internal/FreeTextColumnInternalApi.js +3 -2
  25. package/src/Api/Internal/GridInternalApi.d.ts +2 -0
  26. package/src/Api/Internal/GridInternalApi.js +15 -0
  27. package/src/Api/NoteApi.d.ts +5 -5
  28. package/src/Api/OptionsApi.d.ts +2 -2
  29. package/src/Api/UserInterfaceApi.d.ts +0 -11
  30. package/src/PredefinedConfig/AdaptableState.d.ts +1 -1
  31. package/src/PredefinedConfig/CommentState.d.ts +16 -12
  32. package/src/PredefinedConfig/Common/TransposeConfig.d.ts +6 -0
  33. package/src/PredefinedConfig/Common/TransposeConfig.js +1 -0
  34. package/src/PredefinedConfig/Common/Types.d.ts +4 -4
  35. package/src/PredefinedConfig/Common/Types.js +4 -1
  36. package/src/PredefinedConfig/NoteState.d.ts +1 -1
  37. package/src/PredefinedConfig/PredefinedConfig.d.ts +1 -1
  38. package/src/Redux/ActionsReducers/NoteRedux.d.ts +38 -0
  39. package/src/Redux/ActionsReducers/{NotesRedux.js → NoteRedux.js} +20 -20
  40. package/src/Redux/ActionsReducers/SystemRedux.d.ts +1 -1
  41. package/src/Redux/Store/AdaptableStore.js +7 -7
  42. package/src/Strategy/{CommentsModule.d.ts → CommentModule.d.ts} +1 -5
  43. package/src/Strategy/{CommentsModule.js → CommentModule.js} +5 -6
  44. package/src/Strategy/LayoutModule.d.ts +1 -0
  45. package/src/Strategy/LayoutModule.js +17 -1
  46. package/src/Strategy/{NotesModule.d.ts → NoteModule.d.ts} +2 -1
  47. package/src/Strategy/{NotesModule.js → NoteModule.js} +7 -3
  48. package/src/Strategy/Utilities/getScopeViewItems.js +3 -0
  49. package/src/Utilities/Constants/ModuleConstants.d.ts +6 -6
  50. package/src/Utilities/Constants/ModuleConstants.js +6 -6
  51. package/src/Utilities/Defaults/DefaultSettingsPanel.js +2 -2
  52. package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +10 -0
  53. package/src/Utilities/ExpressionFunctions/observableExpressionFunctions.js +3 -3
  54. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.d.ts +1 -1
  55. package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +15 -0
  56. package/src/Utilities/ObjectFactory.d.ts +3 -3
  57. package/src/Utilities/ObjectFactory.js +4 -24
  58. package/src/Utilities/Services/AggregatedScalarLiveValue.d.ts +1 -0
  59. package/src/Utilities/Services/AggregatedScalarLiveValue.js +12 -10
  60. package/src/Utilities/Services/CellPopupService.js +2 -2
  61. package/src/Utilities/Services/ModuleService.js +4 -0
  62. package/src/Utilities/Services/QueryLanguageService.js +2 -2
  63. package/src/Utilities/Services/SummaryService.d.ts +1 -1
  64. package/src/Utilities/adaptableQlUtils.d.ts +2 -0
  65. package/src/Utilities/adaptableQlUtils.js +14 -0
  66. package/src/View/AdaptableViewFactory.js +2 -2
  67. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.d.ts +1 -1
  68. package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +1 -1
  69. package/src/View/Comments/CommentsEditor.js +1 -1
  70. package/src/View/Comments/CommentsPopup.js +8 -4
  71. package/src/View/Components/Popups/GridCellPopup/GridCellPopup.js +5 -5
  72. package/src/View/Components/ValueSelector/index.d.ts +1 -0
  73. package/src/View/Components/ValueSelector/index.js +1 -1
  74. package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +0 -1
  75. package/src/View/FreeTextColumn/FreeTextColumnSummary.js +1 -1
  76. package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +3 -1
  77. package/src/View/Layout/TransposedPopup.js +19 -18
  78. package/src/View/Layout/Wizard/LayoutWizard.js +8 -0
  79. package/src/View/Layout/Wizard/sections/RowSummarySection.d.ts +8 -0
  80. package/src/View/Layout/Wizard/sections/RowSummarySection.js +140 -0
  81. package/src/View/Note/NotePopup.d.ts +2 -0
  82. package/src/View/{Notes/NotesPopup.js → Note/NotePopup.js} +3 -3
  83. package/src/agGrid/AdaptableAgGrid.js +4 -4
  84. package/src/agGrid/AgGridAdapter.d.ts +1 -0
  85. package/src/agGrid/AgGridAdapter.js +5 -0
  86. package/src/agGrid/AgGridColumnAdapter.js +3 -3
  87. package/src/agGrid/defaultAdaptableOptions.js +0 -7
  88. package/src/components/ExpressionEditor/QueryBuilder/QueryPredicateBuilder.js +2 -1
  89. package/src/components/ExpressionEditor/QueryBuilder/utils.d.ts +0 -1
  90. package/src/components/ExpressionEditor/QueryBuilder/utils.js +1 -14
  91. package/src/components/icons/note.js +2 -2
  92. package/src/env.js +2 -2
  93. package/src/metamodel/adaptable.metamodel.d.ts +36 -11
  94. package/src/metamodel/adaptable.metamodel.js +1 -1
  95. package/src/parser/src/parser.js +117 -1257
  96. package/src/parser/src/predicate/mapExpressionToQlPredicate.js +1 -1
  97. package/src/parser/src/predicate/mapQlPredicateToExpression.js +2 -1
  98. package/src/parser/src/types.d.ts +2 -2
  99. package/src/types.d.ts +1 -0
  100. package/tsconfig.esm.tsbuildinfo +1 -1
  101. package/src/Redux/ActionsReducers/NotesRedux.d.ts +0 -38
  102. package/src/View/Notes/NotesPopup.d.ts +0 -2
  103. /package/src/Api/Internal/{NotesInternalApi.d.ts → NoteInternalApi.d.ts} +0 -0
  104. /package/src/Api/Internal/{NotesInternalApi.js → NoteInternalApi.js} +0 -0
  105. /package/src/View/{Notes → Note}/NoteEditor.d.ts +0 -0
  106. /package/src/View/{Notes → Note}/NoteEditor.js +0 -0
@@ -0,0 +1,6 @@
1
+ export interface TransposeConfig {
2
+ transposedColumnId?: string;
3
+ hideTransposedColumn?: boolean;
4
+ visibleColumns?: boolean;
5
+ visibleRows?: boolean;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -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,7 +1,7 @@
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
6
  export interface NoteState extends ConfigState {
7
7
  /**
@@ -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?: NoteState;
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
  */
@@ -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,35 +1,35 @@
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,
31
+ export const NoteReady = (note) => ({
32
+ type: NOTE_READY,
33
33
  noteState: note,
34
34
  });
35
35
  export const GetAllNotesSelector = (state) => state.Notes;
@@ -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>;
@@ -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';
@@ -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);
@@ -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,13 +1,9 @@
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() {
@@ -18,6 +14,9 @@ export class CommentsModule extends AdaptableModuleBase {
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() {
@@ -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
  }
@@ -1,10 +1,14 @@
1
1
  import * as ModuleConstants from '../Utilities/Constants/ModuleConstants';
2
2
  import { AdaptableModuleBase } from './AdaptableModuleBase';
3
- export class NotesModule extends AdaptableModuleBase {
3
+ export class NoteModule extends AdaptableModuleBase {
4
4
  constructor(api) {
5
- super(ModuleConstants.NotesModuleId, ModuleConstants.NotesFriendlyName, 'note', 'NotesPopup', 'Notes', api);
5
+ super(ModuleConstants.NoteModuleId, ModuleConstants.NoteFriendlyName, 'note', 'NotePopup', 'Notes', api);
6
6
  this.adaptable = api.internalApi.getAdaptableInstance();
7
7
  }
8
+ isModuleAvailable() {
9
+ // Note module doesn't support autogenerated primary keys
10
+ return super.isModuleAvailable() && !this.api.optionsApi.getAutogeneratePrimaryKey();
11
+ }
8
12
  addContextMenuItems(menuContext) {
9
13
  var _a, _b;
10
14
  if (!this.isModuleAvailable()) {
@@ -32,7 +36,7 @@ export class NotesModule extends AdaptableModuleBase {
32
36
  return items;
33
37
  }
34
38
  // does not have note
35
- const [note] = (_a = this.adaptable.api.noteApi.getCellNotes({
39
+ const [note] = (_a = this.adaptable.api.noteApi.getNotesForCell({
36
40
  PrimaryKeyValue: menuContext.primaryKeyValue,
37
41
  ColumnId: menuContext.adaptableColumn.columnId,
38
42
  })) !== null && _a !== void 0 ? _a : [];
@@ -10,6 +10,9 @@ export const getScopeViewItems = (scope, api) => {
10
10
  if ('All' in scope) {
11
11
  values = ['All Columns'];
12
12
  }
13
+ if ('ColumnTypes' in scope) {
14
+ values = scope.ColumnTypes;
15
+ }
13
16
  return {
14
17
  label: 'Target',
15
18
  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
  };
@@ -36,10 +36,10 @@ export const GridInfoModuleId = 'GridInfo';
36
36
  export const GridInfoFriendlyName = 'Grid Info';
37
37
  export const ColumnInfoModuleId = 'ColumnInfo';
38
38
  export const ColumnInfoFriendlyName = 'Column Info';
39
- export const NotesModuleId = 'Notes';
40
- export const NotesFriendlyName = 'Notes';
41
- export const CommentsModuleId = 'Comments';
42
- export const CommentsFriendlyName = 'Comments';
39
+ export const NoteModuleId = 'Note';
40
+ export const NoteFriendlyName = 'Note';
41
+ export const CommentModuleId = 'Comment';
42
+ export const CommentFriendlyName = 'Comment';
43
43
  export const IPushPullModuleId = 'IPushPull';
44
44
  export const IPushPullFriendlyName = 'IPushPull';
45
45
  export const LayoutModuleId = 'Layout';
@@ -107,12 +107,12 @@ export const ADAPTABLE_MODULE_MAP = {
107
107
  [ToolPanelModuleId]: ToolPanelFriendlyName,
108
108
  [SettingsPanelModuleId]: SettingsPanelFriendlyName,
109
109
  [StatusBarModuleId]: StatusBarFriendlyName,
110
- [NotesModuleId]: NotesFriendlyName,
110
+ [NoteModuleId]: NoteFriendlyName,
111
111
  [ColumnInfoModuleId]: ColumnInfoFriendlyName,
112
112
  [DataImportModuleId]: DataImportFriendyName,
113
113
  [NamedQueryModuleId]: NamedQueryFriendlyName,
114
114
  [GridFilterModuleId]: GridFilterFriendlyName,
115
- [CommentsModuleId]: CommentsFriendlyName,
115
+ [CommentModuleId]: CommentFriendlyName,
116
116
  // Remove next version
117
117
  ['Query']: 'Query',
118
118
  ['Filter']: 'Filter',
@@ -41,7 +41,7 @@ export const DEFAULT_SETTINGS_PANEL_NAVIGATION_ITEMS = [
41
41
  'Charting',
42
42
  'Schedule',
43
43
  'TeamSharing',
44
- 'Notes',
45
- 'Comments',
44
+ 'Note',
45
+ 'Comment',
46
46
  'StateManagement',
47
47
  ];
@@ -113,6 +113,7 @@ export const aggregatedScalarExpressionFunctions = {
113
113
  ],
114
114
  examples: ['SUM([colA])', 'SUM([colA], GROUP_BY([colB]))'],
115
115
  category: 'aggregation',
116
+ inputs: ['number'],
116
117
  },
117
118
  PERCENTAGE: {
118
119
  handler(args, context) {
@@ -256,6 +257,7 @@ export const aggregatedScalarExpressionFunctions = {
256
257
  ],
257
258
  examples: ['AVG([colA])', 'AVG([colA], GROUP_BY([colB]))', 'AVG([colA], WEIGHT([colB]))'],
258
259
  category: 'aggregation',
260
+ inputs: ['number'],
259
261
  },
260
262
  MEDIAN: {
261
263
  handler(args, context) {
@@ -320,6 +322,7 @@ export const aggregatedScalarExpressionFunctions = {
320
322
  ],
321
323
  examples: ['MEDIAN([colA])', 'MEDIAN([colA], GROUP_BY([colB]))'],
322
324
  category: 'aggregation',
325
+ inputs: ['number'],
323
326
  },
324
327
  MODE: {
325
328
  handler(args, context) {
@@ -381,6 +384,7 @@ export const aggregatedScalarExpressionFunctions = {
381
384
  ],
382
385
  examples: ['MODE([colA])', 'MODE([colA], GROUP_BY([colB]))'],
383
386
  category: 'aggregation',
387
+ inputs: [['number'], ['text']],
384
388
  },
385
389
  DISTINCT: {
386
390
  handler(args, context) {
@@ -428,6 +432,7 @@ export const aggregatedScalarExpressionFunctions = {
428
432
  ],
429
433
  examples: ['DISTINCT([colA])', 'DISTINCT([colA], GROUP_BY([colB]))'],
430
434
  category: 'aggregation',
435
+ inputs: [['number'], ['text']],
431
436
  },
432
437
  ONLY: {
433
438
  handler(args, context) {
@@ -477,6 +482,7 @@ export const aggregatedScalarExpressionFunctions = {
477
482
  ],
478
483
  examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
479
484
  category: 'aggregation',
485
+ inputs: [['number'], ['text']],
480
486
  },
481
487
  STD_DEVIATION: {
482
488
  handler(args, context) {
@@ -534,6 +540,7 @@ export const aggregatedScalarExpressionFunctions = {
534
540
  ],
535
541
  examples: ['ONLY([colA])', 'ONLY([colA], GROUP_BY([colB]))'],
536
542
  category: 'aggregation',
543
+ inputs: ['number'],
537
544
  },
538
545
  MIN: {
539
546
  handler(args, context) {
@@ -585,6 +592,7 @@ export const aggregatedScalarExpressionFunctions = {
585
592
  ],
586
593
  examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
587
594
  category: 'aggregation',
595
+ inputs: ['number'],
588
596
  },
589
597
  MAX: {
590
598
  handler(args, context) {
@@ -636,6 +644,7 @@ export const aggregatedScalarExpressionFunctions = {
636
644
  ],
637
645
  examples: ['MIN([colA])', 'MIN([colA], GROUP_BY([colB]))'],
638
646
  category: 'aggregation',
647
+ inputs: ['number'],
639
648
  },
640
649
  QUANT: {
641
650
  handler(args, context) {
@@ -834,6 +843,7 @@ export const aggregatedScalarExpressionFunctions = {
834
843
  ],
835
844
  examples: ['COUNT([colA])', 'COUNT([colA], GROUP_BY([colB]))'],
836
845
  category: 'aggregation',
846
+ inputs: [['number'], ['text']],
837
847
  },
838
848
  OVER: {
839
849
  handler(args, context) {
@@ -275,10 +275,10 @@ const isLastElementMinValue = (values) => {
275
275
  };
276
276
  // useful for functions which do NOT have an initial change (ex. GRID_CHANGE NONE)
277
277
  const getDataChangedInfoStub = (context) => {
278
- var _a;
278
+ var _a, _b;
279
279
  let rowNodeStub;
280
280
  if (!context.filterFn) {
281
- rowNodeStub = context.adaptableApi.gridApi.getFirstRowNode();
281
+ rowNodeStub = (_a = context.node) !== null && _a !== void 0 ? _a : context.adaptableApi.gridApi.getFirstRowNode();
282
282
  }
283
283
  else {
284
284
  // if there is a WHERE clause defined, find the first rowNode which satisfies the condition
@@ -293,7 +293,7 @@ const getDataChangedInfoStub = (context) => {
293
293
  const rowNode = rowNodeStub;
294
294
  if (rowNode) {
295
295
  const primaryKeyValue = context.adaptableApi.gridApi.getPrimaryKeyValueForRowNode(rowNode);
296
- const columnId = (_a = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _a === void 0 ? void 0 : _a.columnId;
296
+ const columnId = (_b = context.adaptableApi.columnApi.getQueryableColumns()[0]) === null || _b === void 0 ? void 0 : _b.columnId;
297
297
  const oldValue = context.adaptableApi.gridApi.getCellRawValue(primaryKeyValue, columnId);
298
298
  const column = context.adaptableApi.columnApi.getColumnWithColumnId(columnId);
299
299
  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[];
@@ -68,6 +68,21 @@ export const scalarExpressionFunctions = {
68
68
  category: 'special',
69
69
  returnType: 'any',
70
70
  },
71
+ FIELD: {
72
+ handler(args, context) {
73
+ var _a, _b;
74
+ const fieldName = args[0];
75
+ if (StringExtensions.IsNullOrEmpty(fieldName)) {
76
+ throw new ExpressionEvaluationError('FIELD', 'requires a field name');
77
+ }
78
+ 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);
79
+ },
80
+ 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")',
81
+ signatures: ['FIELD(fieldName:string)'],
82
+ examples: ['FIELD("fieldName")', 'FIELD("nested.fieldName")'],
83
+ category: 'special',
84
+ returnType: 'any',
85
+ },
71
86
  QUERY: {
72
87
  handler(args, context) {
73
88
  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;