@adaptabletools/adaptable 22.0.3 → 22.0.5-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.css +1 -1
- package/package.json +1 -1
- package/src/AdaptableState/InitialState.d.ts +0 -94
- package/src/Api/AdaptableApi.d.ts +1 -1
- package/src/Api/Implementation/RowFormApiImpl.d.ts +3 -3
- package/src/Api/Implementation/RowFormApiImpl.js +8 -6
- package/src/Api/Implementation/StateApiImpl.d.ts +0 -3
- package/src/Api/Implementation/StateApiImpl.js +0 -8
- package/src/Api/Internal/GridInternalApi.d.ts +1 -1
- package/src/Api/Internal/RowFormInternalApi.d.ts +2 -2
- package/src/Api/Internal/RowFormInternalApi.js +23 -19
- package/src/Api/RowFormApi.d.ts +3 -3
- package/src/Api/StateApi.d.ts +1 -9
- package/src/Strategy/AdaptableModuleBase.js +7 -12
- package/src/agGrid/AdaptableAgGrid.d.ts +1 -0
- package/src/agGrid/AdaptableAgGrid.js +7 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/index.js +14 -2
- package/src/metamodel/adaptable.metamodel.d.ts +27 -18
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +1 -1
- package/tsconfig.esm.tsbuildinfo +1 -1
package/index.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! tailwindcss v4.2.
|
|
1
|
+
/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
|
|
2
2
|
@layer properties;
|
|
3
3
|
@layer adaptable.reset, adaptable.theming, adaptable.components, adaptable.utilities, adaptable.theme;
|
|
4
4
|
@layer adaptable.reset {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable",
|
|
3
|
-
"version": "22.0.
|
|
3
|
+
"version": "22.0.5-canary.0",
|
|
4
4
|
"description": "Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web-components",
|
|
@@ -113,97 +113,3 @@ export interface InitialState {
|
|
|
113
113
|
*/
|
|
114
114
|
UserInterface?: UserInterfaceState;
|
|
115
115
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Deprecated initial state object (now replaced by InitialState)
|
|
118
|
-
* @deprecated Use `InitialState` instead - it has the same structure but is more accurately named
|
|
119
|
-
*/
|
|
120
|
-
export interface PredefinedConfig {
|
|
121
|
-
/**
|
|
122
|
-
* Collection of `AlertDefinitions` which will fire Alerts when the rule is met
|
|
123
|
-
*/
|
|
124
|
-
Alert?: AlertState;
|
|
125
|
-
/**
|
|
126
|
-
* Empty state section (only populated at Design Time) available for User to store their own data with the rest of AdapTable state.
|
|
127
|
-
*/
|
|
128
|
-
Application?: ApplicationState;
|
|
129
|
-
/**
|
|
130
|
-
* Collection of *CalculatedColumn* objects that will display a value based on other cells in the row (using a Calculated Column Expression)
|
|
131
|
-
*/
|
|
132
|
-
CalculatedColumn?: CalculatedColumnState;
|
|
133
|
-
/**
|
|
134
|
-
* Named Charts (wrapping Chart models)
|
|
135
|
-
*/
|
|
136
|
-
Charting?: ChartingState;
|
|
137
|
-
/**
|
|
138
|
-
* Collection of *Custom Sort* objects to allow some columns to be sorted in non-standard (e.g. non alphabetical) ways
|
|
139
|
-
*/
|
|
140
|
-
CustomSort?: CustomSortState;
|
|
141
|
-
/**
|
|
142
|
-
* Large series of properties to give users full control over the look and feel of the *Dashboard* - the section (typically above the grid) with toolbars and buttons
|
|
143
|
-
*/
|
|
144
|
-
Dashboard?: DashboardState;
|
|
145
|
-
/**
|
|
146
|
-
* Collection of *Report* objects, together with name of the Current Report, as part of AdapTable export Module
|
|
147
|
-
*/
|
|
148
|
-
Export?: ExportState;
|
|
149
|
-
/***
|
|
150
|
-
* Objects which define which cells flash in response to data changes
|
|
151
|
-
*/
|
|
152
|
-
FlashingCell?: FlashingCellState;
|
|
153
|
-
/**
|
|
154
|
-
* Collection of *FormatColumn* objects that will style an entire column either fully or using a Condition
|
|
155
|
-
*/
|
|
156
|
-
FormatColumn?: FormatColumnState;
|
|
157
|
-
/**
|
|
158
|
-
* Collection of *FreeText* objects so users can make their own notes in bespoke columns that will get stored with their state (and not with the DataSource). Useful if needing a 'Comments' column.
|
|
159
|
-
*/
|
|
160
|
-
FreeTextColumn?: FreeTextColumnState;
|
|
161
|
-
/**
|
|
162
|
-
* Collection of *Layouts* to name (and manage) sets of column visibility, order, grouping, sorts, aggregations, filters etc.
|
|
163
|
-
*/
|
|
164
|
-
Layout: LayoutState;
|
|
165
|
-
/**
|
|
166
|
-
* Named Queries available for use across multiple AdapTable Modules
|
|
167
|
-
*/
|
|
168
|
-
NamedQuery?: NamedQueryState;
|
|
169
|
-
/**
|
|
170
|
-
* Collection of personal Notes that are edited at Cell level
|
|
171
|
-
*/
|
|
172
|
-
Note?: NoteState;
|
|
173
|
-
/**
|
|
174
|
-
* Collection of *PlusMinus* rule objects to stipulate what happens when the user clicks '+' or '-' in a numeric cell
|
|
175
|
-
*/
|
|
176
|
-
PlusMinus?: PlusMinusState;
|
|
177
|
-
/**
|
|
178
|
-
* Configues how Quick Search will run i.e. how and whether to highlight matching cells and to filter out non-matching rows
|
|
179
|
-
*/
|
|
180
|
-
QuickSearch?: QuickSearchState;
|
|
181
|
-
/**
|
|
182
|
-
* Collection of *Schedule* objects
|
|
183
|
-
*/
|
|
184
|
-
Schedule?: ScheduleState;
|
|
185
|
-
/**
|
|
186
|
-
* Collection of *Shortcut* objects to aid data entry and prevent 'fat finger' issues
|
|
187
|
-
*/
|
|
188
|
-
Shortcut?: ShortcutState;
|
|
189
|
-
/**
|
|
190
|
-
* Configures the Adaptable Status Bar
|
|
191
|
-
*/
|
|
192
|
-
StatusBar?: StatusBarState;
|
|
193
|
-
/**
|
|
194
|
-
* Collection of Special Column Styles
|
|
195
|
-
*/
|
|
196
|
-
StyledColumn?: StyledColumnState;
|
|
197
|
-
/**
|
|
198
|
-
* Specifies the current Theme and lists the User and System themes available for selection.
|
|
199
|
-
*/
|
|
200
|
-
Theme?: ThemeState;
|
|
201
|
-
/**
|
|
202
|
-
* Sets the order and visibility of the Tool Panel controls in the AdapTable ToolPanel (on right of grid)
|
|
203
|
-
*/
|
|
204
|
-
ToolPanel?: ToolPanelState;
|
|
205
|
-
/**
|
|
206
|
-
* Controls AdapTable UI including visibility of AdapTable components
|
|
207
|
-
*/
|
|
208
|
-
UserInterface?: UserInterfaceState;
|
|
209
|
-
}
|
|
@@ -133,7 +133,7 @@ export interface AdaptableApi {
|
|
|
133
133
|
*/
|
|
134
134
|
entitlementApi: EntitlementApi;
|
|
135
135
|
/**
|
|
136
|
-
* Used for
|
|
136
|
+
* Used for listening / subscribing to the Events published by AdapTable
|
|
137
137
|
*/
|
|
138
138
|
eventApi: EventApi;
|
|
139
139
|
/**
|
|
@@ -5,8 +5,8 @@ import { RowFormInternalApi } from '../Internal/RowFormInternalApi';
|
|
|
5
5
|
export declare class RowFormApiImpl extends ApiBase implements RowFormApi {
|
|
6
6
|
internalApi: RowFormInternalApi;
|
|
7
7
|
constructor(_adaptable: IAdaptable);
|
|
8
|
-
displayEditRowForm(primaryKey: any): void
|
|
9
|
-
displayCreateRowForm(): void
|
|
10
|
-
displayCloneRowForm(primaryKey?: any): void
|
|
8
|
+
displayEditRowForm(primaryKey: any): Promise<void>;
|
|
9
|
+
displayCreateRowForm(): Promise<void>;
|
|
10
|
+
displayCloneRowForm(primaryKey?: any): Promise<void>;
|
|
11
11
|
displayDeleteRowForm(primaryKey?: any): void;
|
|
12
12
|
}
|
|
@@ -7,12 +7,13 @@ export class RowFormApiImpl extends ApiBase {
|
|
|
7
7
|
super(_adaptable);
|
|
8
8
|
this.internalApi = new RowFormInternalApi(_adaptable);
|
|
9
9
|
}
|
|
10
|
-
displayEditRowForm(primaryKey) {
|
|
10
|
+
async displayEditRowForm(primaryKey) {
|
|
11
11
|
const rowNode = this.getGridApi().getRowNodeForPrimaryKey(primaryKey);
|
|
12
12
|
if (!rowNode) {
|
|
13
13
|
this.logWarn(`Cannot edit row: rowNode not found for primaryKey ${primaryKey}`);
|
|
14
|
+
return;
|
|
14
15
|
}
|
|
15
|
-
const editForm = this.internalApi.buildRowEditForm(rowNode);
|
|
16
|
+
const editForm = await this.internalApi.buildRowEditForm(rowNode);
|
|
16
17
|
this.dispatchAction(PopupShowForm({
|
|
17
18
|
Id: 'edit_row_form',
|
|
18
19
|
Form: editForm,
|
|
@@ -22,19 +23,20 @@ export class RowFormApiImpl extends ApiBase {
|
|
|
22
23
|
},
|
|
23
24
|
}));
|
|
24
25
|
}
|
|
25
|
-
displayCreateRowForm() {
|
|
26
|
-
const createForm = this.internalApi.buildRowCreateForm();
|
|
26
|
+
async displayCreateRowForm() {
|
|
27
|
+
const createForm = await this.internalApi.buildRowCreateForm();
|
|
27
28
|
this.dispatchAction(PopupShowForm({
|
|
28
29
|
Id: 'create_row_form',
|
|
29
30
|
Form: createForm,
|
|
30
31
|
}));
|
|
31
32
|
}
|
|
32
|
-
displayCloneRowForm(primaryKey) {
|
|
33
|
+
async displayCloneRowForm(primaryKey) {
|
|
33
34
|
const rowNode = this.getGridApi().getRowNodeForPrimaryKey(primaryKey);
|
|
34
35
|
if (!rowNode) {
|
|
35
36
|
this.logWarn(`Can NOT clone row: rowNode not found for primaryKey ${primaryKey}`);
|
|
37
|
+
return;
|
|
36
38
|
}
|
|
37
|
-
const createForm = this.internalApi.buildRowCreateForm(rowNode);
|
|
39
|
+
const createForm = await this.internalApi.buildRowCreateForm(rowNode);
|
|
38
40
|
this.dispatchAction(PopupShowForm({
|
|
39
41
|
Id: 'create_row_form',
|
|
40
42
|
Form: createForm,
|
|
@@ -18,16 +18,13 @@ import { ToolPanelState } from '../../AdaptableState/ToolPanelState';
|
|
|
18
18
|
import { StateApi } from '../StateApi';
|
|
19
19
|
import { AdaptableModule, AdaptableStateKey } from '../../AdaptableState/Common/Types';
|
|
20
20
|
import { AdaptableFilterState, AdaptableSortState, FlashingCellState, InitialState, NamedQueryState, ScheduleState, StatusBarState, StyledColumnState } from '../../types';
|
|
21
|
-
import { PredefinedConfig } from '../../AdaptableState/InitialState';
|
|
22
21
|
import { ChartingState } from '../../AdaptableState/ChartingState';
|
|
23
22
|
import { NoteState } from '../../AdaptableState/NoteState';
|
|
24
23
|
export declare class StateApiImpl extends ApiBase implements StateApi {
|
|
25
24
|
configInit(): void;
|
|
26
25
|
copyAllStateToClipboard(): void;
|
|
27
26
|
copyUserStateToClipboard(): void;
|
|
28
|
-
getPredefinedConfig(): PredefinedConfig | any;
|
|
29
27
|
getInitialState(): InitialState | any;
|
|
30
|
-
reloadPredefinedConfig(newPredefinedConfig?: PredefinedConfig): void;
|
|
31
28
|
reloadInitialState(newInitialState?: InitialState): void;
|
|
32
29
|
getAllState(): AdaptableState;
|
|
33
30
|
getPersistedState(): AdaptablePersistentState;
|
|
@@ -40,17 +40,9 @@ export class StateApiImpl extends ApiBase {
|
|
|
40
40
|
let stringifiedState = JSON.stringify(state);
|
|
41
41
|
Helper.copyToClipboard(stringifiedState);
|
|
42
42
|
}
|
|
43
|
-
getPredefinedConfig() {
|
|
44
|
-
logDeprecation(this.getAdatableLogger(), 'StateApi', 'getPredefinedConfig', 'getInitialState');
|
|
45
|
-
return this.getInitialState();
|
|
46
|
-
}
|
|
47
43
|
getInitialState() {
|
|
48
44
|
return this._adaptable.adaptableOptions.initialState;
|
|
49
45
|
}
|
|
50
|
-
reloadPredefinedConfig(newPredefinedConfig) {
|
|
51
|
-
logDeprecation(this.getAdatableLogger(), 'StateApi', 'reloadPredefinedConfig', 'reloadInitialState');
|
|
52
|
-
this.reloadInitialState(newPredefinedConfig);
|
|
53
|
-
}
|
|
54
46
|
reloadInitialState(newInitialState) {
|
|
55
47
|
const adaptableOptions = this.getOptions();
|
|
56
48
|
const oldState = this.getPersistentState();
|
|
@@ -34,7 +34,7 @@ export declare class GridInternalApi extends ApiBase {
|
|
|
34
34
|
getDistinctValuesForColumn(columnId: string): Promise<GridCell[]> | undefined;
|
|
35
35
|
getDistinctEditDisplayValuesForColumn(options: {
|
|
36
36
|
columnId: string;
|
|
37
|
-
gridCell
|
|
37
|
+
gridCell?: GridCell;
|
|
38
38
|
currentSearchValue: string;
|
|
39
39
|
}): Promise<EditColumnValueInfo[]> | undefined;
|
|
40
40
|
/**
|
|
@@ -2,8 +2,8 @@ import { IRowNode } from 'ag-grid-enterprise';
|
|
|
2
2
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
3
3
|
import { AdaptableForm, EditRowFormContext, CreateRowFormContext } from '../../types';
|
|
4
4
|
export declare class RowFormInternalApi extends ApiBase {
|
|
5
|
-
buildRowEditForm(rowNode: IRowNode): AdaptableForm<EditRowFormContext
|
|
6
|
-
buildRowCreateForm(clonedRowNode?: IRowNode): AdaptableForm<CreateRowFormContext
|
|
5
|
+
buildRowEditForm(rowNode: IRowNode): Promise<AdaptableForm<EditRowFormContext>>;
|
|
6
|
+
buildRowCreateForm(clonedRowNode?: IRowNode): Promise<AdaptableForm<CreateRowFormContext>>;
|
|
7
7
|
private buildRowForm;
|
|
8
8
|
private getFormTitle;
|
|
9
9
|
private buildFormParamContext;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { ApiBase } from '../Implementation/ApiBase';
|
|
2
2
|
export class RowFormInternalApi extends ApiBase {
|
|
3
3
|
// Row Form Methods
|
|
4
|
-
buildRowEditForm(rowNode) {
|
|
4
|
+
async buildRowEditForm(rowNode) {
|
|
5
5
|
return this.buildRowForm('rowEdited', rowNode);
|
|
6
6
|
}
|
|
7
|
-
buildRowCreateForm(clonedRowNode) {
|
|
7
|
+
async buildRowCreateForm(clonedRowNode) {
|
|
8
8
|
return this.buildRowForm('rowCreated', clonedRowNode);
|
|
9
9
|
}
|
|
10
|
-
buildRowForm(type, rowNode) {
|
|
11
|
-
const formFields = this.buildRowFormFields(type, rowNode);
|
|
10
|
+
async buildRowForm(type, rowNode) {
|
|
11
|
+
const formFields = await this.buildRowFormFields(type, rowNode);
|
|
12
12
|
const formButtons = this.buidRowFormButtons(type, rowNode, formFields);
|
|
13
13
|
const formTitle = this.getFormTitle(type, rowNode);
|
|
14
14
|
const formDescription = this.getFormDescription(type, rowNode);
|
|
@@ -104,7 +104,7 @@ export class RowFormInternalApi extends ApiBase {
|
|
|
104
104
|
dataToSave[this.getOptions().primaryKey] = pkValue;
|
|
105
105
|
return dataToSave;
|
|
106
106
|
}
|
|
107
|
-
buildRowFormFields(rowFormType, rowNode) {
|
|
107
|
+
async buildRowFormFields(rowFormType, rowNode) {
|
|
108
108
|
const relevantColumns = this.getColumnApi()
|
|
109
109
|
.getUIAvailableColumns()
|
|
110
110
|
.filter((column) => {
|
|
@@ -112,7 +112,7 @@ export class RowFormInternalApi extends ApiBase {
|
|
|
112
112
|
return !!rowNode || this.isCellEditable(column, rowNode);
|
|
113
113
|
})
|
|
114
114
|
.filter((column) => this.showColumnInRowForm(column, rowFormType));
|
|
115
|
-
return relevantColumns.map((column) => this.buildRowFormField(rowFormType, column, rowNode));
|
|
115
|
+
return Promise.all(relevantColumns.map((column) => this.buildRowFormField(rowFormType, column, rowNode)));
|
|
116
116
|
}
|
|
117
117
|
showColumnInRowForm(adaptableColumn, rowFormType) {
|
|
118
118
|
if (adaptableColumn.isActionColumn) {
|
|
@@ -135,9 +135,9 @@ export class RowFormInternalApi extends ApiBase {
|
|
|
135
135
|
const gridCell = this.getGridApi().getGridCellFromRowNode(rowNode, column.columnId);
|
|
136
136
|
return this.getGridApi().isCellEditable(gridCell);
|
|
137
137
|
}
|
|
138
|
-
buildRowFormField(type, column, rowNode) {
|
|
138
|
+
async buildRowFormField(type, column, rowNode) {
|
|
139
139
|
const isCellEditable = this.isCellEditable(column, rowNode);
|
|
140
|
-
const fieldValueOptions = this.getFieldValueOptions(column, rowNode);
|
|
140
|
+
const fieldValueOptions = await this.getFieldValueOptions(column, rowNode);
|
|
141
141
|
const fieldType = isCellEditable
|
|
142
142
|
? !!fieldValueOptions?.length
|
|
143
143
|
? 'select'
|
|
@@ -183,21 +183,25 @@ export class RowFormInternalApi extends ApiBase {
|
|
|
183
183
|
return 'text';
|
|
184
184
|
}
|
|
185
185
|
}
|
|
186
|
-
getFieldValueOptions(column, rowNode) {
|
|
186
|
+
async getFieldValueOptions(column, rowNode) {
|
|
187
187
|
const shouldShowSelectCellEditor = this.getUserInterfaceApi().internalApi.shouldShowSelectCellEditor(column);
|
|
188
188
|
if (!shouldShowSelectCellEditor) {
|
|
189
189
|
return;
|
|
190
190
|
}
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
191
|
+
const gridCell = rowNode
|
|
192
|
+
? this.getGridApi().getGridCellFromRowNode(rowNode, column.columnId)
|
|
193
|
+
: undefined;
|
|
194
|
+
const valueOptions = await this.getGridApi().internalApi.getDistinctEditDisplayValuesForColumn({
|
|
195
|
+
columnId: column.columnId,
|
|
196
|
+
gridCell,
|
|
197
|
+
currentSearchValue: '',
|
|
198
|
+
});
|
|
199
|
+
if (!valueOptions?.length) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
return valueOptions.map((opt) => ({
|
|
203
|
+
value: opt.value,
|
|
204
|
+
label: opt.label ?? String(opt.value),
|
|
201
205
|
}));
|
|
202
206
|
}
|
|
203
207
|
}
|
package/src/Api/RowFormApi.d.ts
CHANGED
|
@@ -6,16 +6,16 @@ export interface RowFormApi {
|
|
|
6
6
|
* Open edit dialog for row with the given primary key value
|
|
7
7
|
* @param primaryKey - the primary key of the edited row
|
|
8
8
|
*/
|
|
9
|
-
displayEditRowForm(primaryKey: any): void
|
|
9
|
+
displayEditRowForm(primaryKey: any): Promise<void>;
|
|
10
10
|
/**
|
|
11
11
|
* Open create dialog for a new row
|
|
12
12
|
*/
|
|
13
|
-
displayCreateRowForm(): void
|
|
13
|
+
displayCreateRowForm(): Promise<void>;
|
|
14
14
|
/**
|
|
15
15
|
* Open create dialog for cloning an existing row
|
|
16
16
|
* @param primaryKey - Primary Key of the duplicated row
|
|
17
17
|
*/
|
|
18
|
-
displayCloneRowForm(primaryKey?: any): void
|
|
18
|
+
displayCloneRowForm(primaryKey?: any): Promise<void>;
|
|
19
19
|
/**
|
|
20
20
|
* Deletes row from grid (with event fired) - note: no visible Row Form is displayed
|
|
21
21
|
* @param primaryKey - Primary Key of the deleted row
|
package/src/Api/StateApi.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ import { AdaptablePersistentState, AdaptableState } from '../AdaptableState/Adap
|
|
|
15
15
|
import { FreeTextColumnState } from '../AdaptableState/FreeTextColumnState';
|
|
16
16
|
import { ToolPanelState } from '../AdaptableState/ToolPanelState';
|
|
17
17
|
import { AdaptableModule, AdaptableStateKey } from '../AdaptableState/Common/Types';
|
|
18
|
-
import { AdaptableFilterState, AdaptableSortState, ChartingState, FlashingCellState, InitialState, NamedQueryState, NoteState,
|
|
18
|
+
import { AdaptableFilterState, AdaptableSortState, ChartingState, FlashingCellState, InitialState, NamedQueryState, NoteState, ScheduleState, StatusBarState, StyledColumnState } from '../types';
|
|
19
19
|
/**
|
|
20
20
|
* Range of functions to access Initial and Full Adaptable State
|
|
21
21
|
*/
|
|
@@ -33,18 +33,10 @@ export interface StateApi {
|
|
|
33
33
|
flushCurrentState?: boolean;
|
|
34
34
|
progressIndicatorLabel?: string;
|
|
35
35
|
}): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* @deprecated use `getInitialState()` instead
|
|
38
|
-
*/
|
|
39
|
-
getPredefinedConfig(): PredefinedConfig | any;
|
|
40
36
|
/**
|
|
41
37
|
* Returns the Initial Adaptable State
|
|
42
38
|
*/
|
|
43
39
|
getInitialState(): InitialState | any;
|
|
44
|
-
/**
|
|
45
|
-
* @deprecated use `reloadInitialState()` instead
|
|
46
|
-
*/
|
|
47
|
-
reloadPredefinedConfig(newPredefinedConfig?: PredefinedConfig): void;
|
|
48
40
|
/**
|
|
49
41
|
* Reloads existing (or supplied) Initial State; clears persistent state by calling `StateOptions.clearState`
|
|
50
42
|
* @param newInitialState optional new InitialState to load
|
|
@@ -7,7 +7,9 @@ export class AdaptableModuleBase {
|
|
|
7
7
|
api;
|
|
8
8
|
moduleInfo;
|
|
9
9
|
AccessLevel;
|
|
10
|
-
agGridModuleDepsInfo
|
|
10
|
+
agGridModuleDepsInfo = {
|
|
11
|
+
hasRequiredAgGridModuleDependencies: true,
|
|
12
|
+
};
|
|
11
13
|
constructor(module, friendlyName, glyph, popup, description, api) {
|
|
12
14
|
this.api = api;
|
|
13
15
|
this.moduleInfo = {
|
|
@@ -59,17 +61,10 @@ export class AdaptableModuleBase {
|
|
|
59
61
|
setAgGridDepsInfo() {
|
|
60
62
|
const agGridModulesAdapter = this.api.internalApi.getAgGridModulesAdapter();
|
|
61
63
|
const missingAgGridModuleDependencies = this.getAgGridModuleDependencies().filter((agGridModule) => !agGridModulesAdapter.isAgGridModuleRegistered(agGridModule));
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
this.agGridModuleDepsInfo = {
|
|
70
|
-
hasRequiredAgGridModuleDependencies: true,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
64
|
+
this.agGridModuleDepsInfo = {
|
|
65
|
+
hasRequiredAgGridModuleDependencies: missingAgGridModuleDependencies.length === 0,
|
|
66
|
+
missingAgGridModuleDependencies,
|
|
67
|
+
};
|
|
73
68
|
}
|
|
74
69
|
logMissingAgGridDepsInfos() {
|
|
75
70
|
if (this.isModuleEnabled() &&
|
|
@@ -219,6 +219,7 @@ export declare class AdaptableAgGrid implements IAdaptable {
|
|
|
219
219
|
private getCleanValue;
|
|
220
220
|
getNormalisedValueFromRawValue(rawValue: any, column: AdaptableColumn): string | number | boolean | Date | unknown;
|
|
221
221
|
private __updateColumnModelAndRefreshGrid_already_called;
|
|
222
|
+
private __forceUpdateColumnModel;
|
|
222
223
|
updateColumnModelAndRefreshGrid(): void;
|
|
223
224
|
_updateColumnModelAndRefreshGridNow(): void;
|
|
224
225
|
redrawBody(): void;
|
|
@@ -2229,10 +2229,12 @@ export class AdaptableAgGrid {
|
|
|
2229
2229
|
return rawValue;
|
|
2230
2230
|
}
|
|
2231
2231
|
__updateColumnModelAndRefreshGrid_already_called = false;
|
|
2232
|
+
__forceUpdateColumnModel = false;
|
|
2232
2233
|
updateColumnModelAndRefreshGrid() {
|
|
2233
|
-
if (this.__updateColumnModelAndRefreshGrid_already_called) {
|
|
2234
|
+
if (this.__updateColumnModelAndRefreshGrid_already_called && !this.__forceUpdateColumnModel) {
|
|
2234
2235
|
return;
|
|
2235
2236
|
}
|
|
2237
|
+
this.__forceUpdateColumnModel = false;
|
|
2236
2238
|
try {
|
|
2237
2239
|
this._updateColumnModelAndRefreshGridNow();
|
|
2238
2240
|
this.__updateColumnModelAndRefreshGrid_already_called = true;
|
|
@@ -4281,6 +4283,10 @@ export class AdaptableAgGrid {
|
|
|
4281
4283
|
// this setGridOption call will also trigger layout.onColumnDefsChanged()
|
|
4282
4284
|
// which will in turn call updateColumnModelAndRefreshGrid
|
|
4283
4285
|
this.agGridAdapter.setGridOption('columnDefs', columnDefs);
|
|
4286
|
+
// the setGridOption call above already triggered updateColumnModelAndRefreshGrid,
|
|
4287
|
+
// setting the dedup guard. We force the next call so that the column model
|
|
4288
|
+
// is re-derived after the layout store has been updated.
|
|
4289
|
+
this.__forceUpdateColumnModel = true;
|
|
4284
4290
|
// this is needed here for when we call setAdaptableStateKey
|
|
4285
4291
|
// and pass a new config
|
|
4286
4292
|
this.updateLayoutInManagerAfterStoreHasChanged();
|
package/src/env.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default {
|
|
2
2
|
NEXT_PUBLIC_INFINITE_TABLE_LICENSE_KEY: "StartDate=2021-06-29|EndDate=2030-01-01|Owner=Adaptable|Type=distribution|TS=1624971462479|C=137829811,1004007071,2756196225,1839832928,3994409405,636616862" || '',
|
|
3
|
-
PUBLISH_TIMESTAMP:
|
|
4
|
-
VERSION: "22.0.
|
|
3
|
+
PUBLISH_TIMESTAMP: 1773920918326 || Date.now(),
|
|
4
|
+
VERSION: "22.0.5-canary.0" || '--current-version--',
|
|
5
5
|
};
|
|
@@ -1279,10 +1279,22 @@ export class LayoutManager extends LMEmitter {
|
|
|
1279
1279
|
this.computeColumnSorts(layout, columnState);
|
|
1280
1280
|
this.computePinnedColumns(layout, columnState);
|
|
1281
1281
|
this.computePivotAggregations(layout, columnState);
|
|
1282
|
-
// Add pivot result columns to the state for ordering (will be applied with applyOrder: true later)
|
|
1282
|
+
// Add pivot result columns to the state for ordering (will be applied with applyOrder: true later).
|
|
1283
|
+
// Some pivot result columns may already be in the state (e.g. added by computeColumnSorts),
|
|
1284
|
+
// so remove them first and re-add all pivot result columns in the persisted order,
|
|
1285
|
+
// merging any existing state (like sort info) back in.
|
|
1283
1286
|
if (Array.isArray(layout.PivotResultColumnsOrder)) {
|
|
1287
|
+
const pivotResultColumnsOrderSet = new Set(layout.PivotResultColumnsOrder);
|
|
1288
|
+
const existingPivotResultState = {};
|
|
1289
|
+
columnState.state = columnState.state.filter((colState) => {
|
|
1290
|
+
if (pivotResultColumnsOrderSet.has(colState.colId)) {
|
|
1291
|
+
existingPivotResultState[colState.colId] = colState;
|
|
1292
|
+
return false;
|
|
1293
|
+
}
|
|
1294
|
+
return true;
|
|
1295
|
+
});
|
|
1284
1296
|
layout.PivotResultColumnsOrder.forEach((colId) => {
|
|
1285
|
-
columnState.state.push({ colId });
|
|
1297
|
+
columnState.state.push(existingPivotResultState[colId] || { colId });
|
|
1286
1298
|
});
|
|
1287
1299
|
}
|
|
1288
1300
|
return columnState;
|
|
@@ -4239,6 +4239,24 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
4239
4239
|
defVal: string;
|
|
4240
4240
|
}[];
|
|
4241
4241
|
};
|
|
4242
|
+
IPushPullConfig: {
|
|
4243
|
+
name: string;
|
|
4244
|
+
kind: string;
|
|
4245
|
+
desc: string;
|
|
4246
|
+
props: ({
|
|
4247
|
+
name: string;
|
|
4248
|
+
kind: string;
|
|
4249
|
+
desc: string;
|
|
4250
|
+
isOpt?: undefined;
|
|
4251
|
+
defVal?: undefined;
|
|
4252
|
+
} | {
|
|
4253
|
+
name: string;
|
|
4254
|
+
kind: string;
|
|
4255
|
+
desc: string;
|
|
4256
|
+
isOpt: boolean;
|
|
4257
|
+
defVal: string;
|
|
4258
|
+
})[];
|
|
4259
|
+
};
|
|
4242
4260
|
IPushPullDomain: {
|
|
4243
4261
|
name: string;
|
|
4244
4262
|
kind: string;
|
|
@@ -4259,12 +4277,21 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
4259
4277
|
desc: string;
|
|
4260
4278
|
isOpt: boolean;
|
|
4261
4279
|
defVal: string;
|
|
4280
|
+
ref?: undefined;
|
|
4262
4281
|
} | {
|
|
4263
4282
|
name: string;
|
|
4264
4283
|
kind: string;
|
|
4265
4284
|
desc: string;
|
|
4266
4285
|
isOpt: boolean;
|
|
4286
|
+
ref: string;
|
|
4267
4287
|
defVal?: undefined;
|
|
4288
|
+
} | {
|
|
4289
|
+
name: string;
|
|
4290
|
+
kind: string;
|
|
4291
|
+
desc: string;
|
|
4292
|
+
isOpt: boolean;
|
|
4293
|
+
defVal?: undefined;
|
|
4294
|
+
ref?: undefined;
|
|
4268
4295
|
})[];
|
|
4269
4296
|
};
|
|
4270
4297
|
IPushPullReport: {
|
|
@@ -4904,24 +4931,6 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
4904
4931
|
kind: string;
|
|
4905
4932
|
desc: string;
|
|
4906
4933
|
};
|
|
4907
|
-
PredefinedConfig: {
|
|
4908
|
-
name: string;
|
|
4909
|
-
kind: string;
|
|
4910
|
-
desc: string;
|
|
4911
|
-
props: ({
|
|
4912
|
-
name: string;
|
|
4913
|
-
kind: string;
|
|
4914
|
-
desc: string;
|
|
4915
|
-
isOpt: boolean;
|
|
4916
|
-
ref: string;
|
|
4917
|
-
} | {
|
|
4918
|
-
name: string;
|
|
4919
|
-
kind: string;
|
|
4920
|
-
desc: string;
|
|
4921
|
-
ref: string;
|
|
4922
|
-
isOpt?: undefined;
|
|
4923
|
-
})[];
|
|
4924
|
-
};
|
|
4925
4934
|
PredicateDefHandlerContext: {
|
|
4926
4935
|
name: string;
|
|
4927
4936
|
kind: string;
|