@adaptabletools/adaptable 22.0.0-canary.2 → 22.0.0-canary.4
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 +64 -26
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +2 -2
- package/src/AdaptableOptions/ActionColumnOptions.d.ts +2 -2
- package/src/AdaptableOptions/CustomSortOptions.d.ts +5 -0
- package/src/AdaptableOptions/DashboardOptions.d.ts +1 -2
- package/src/AdaptableOptions/ToolPanelOptions.d.ts +1 -2
- package/src/AdaptableState/AlertState.d.ts +2 -2
- package/src/AdaptableState/ChartingState.d.ts +3 -3
- package/src/AdaptableState/Common/AdaptableAlert.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableButton.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableFlashingCell.d.ts +2 -2
- package/src/AdaptableState/Common/AdaptableObject.d.ts +25 -2
- package/src/AdaptableState/Common/AdaptableStyle.d.ts +8 -0
- package/src/AdaptableState/Common/RowSummary.d.ts +1 -1
- package/src/AdaptableState/Common/Schedule.d.ts +3 -4
- package/src/AdaptableState/Common/SystemStatusMessageInfo.d.ts +2 -2
- package/src/AdaptableState/CustomSortState.d.ts +2 -2
- package/src/AdaptableState/DashboardState.d.ts +2 -2
- package/src/AdaptableState/ExportState.d.ts +2 -2
- package/src/AdaptableState/FlashingCellState.d.ts +2 -2
- package/src/AdaptableState/FormatColumnState.d.ts +2 -10
- package/src/AdaptableState/LayoutState.d.ts +8 -3
- package/src/AdaptableState/NamedQueryState.d.ts +2 -2
- package/src/AdaptableState/PlusMinusState.d.ts +2 -2
- package/src/AdaptableState/ShortcutState.d.ts +2 -2
- package/src/AdaptableState/StyledColumnState.d.ts +1 -1
- package/src/AdaptableState/ThemeState.d.ts +2 -2
- package/src/Api/CustomSortApi.d.ts +6 -3
- package/src/Api/DataSetApi.d.ts +1 -1
- package/src/Api/GridApi.d.ts +3 -3
- package/src/Api/Implementation/CustomSortApiImpl.d.ts +5 -1
- package/src/Api/Implementation/CustomSortApiImpl.js +2 -2
- package/src/Api/Implementation/GridApiImpl.d.ts +9 -9
- package/src/Api/Implementation/GridApiImpl.js +16 -16
- package/src/Api/Implementation/LayoutHelpers.js +7 -0
- package/src/Api/Implementation/ScheduleApiImpl.js +1 -0
- package/src/Api/Internal/ColumnInternalApi.js +1 -1
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +0 -10
- package/src/Api/Internal/FormatColumnInternalApi.js +1 -19
- package/src/Redux/ActionsReducers/LayoutRedux.d.ts +1 -1
- package/src/Redux/ActionsReducers/NoteRedux.js +1 -1
- package/src/Strategy/AlertModule.js +4 -0
- package/src/Strategy/CustomSortModule.js +4 -0
- package/src/Strategy/FlashingCellModule.js +5 -0
- package/src/Strategy/FormatColumnModule.js +4 -0
- package/src/Strategy/LayoutModule.js +4 -4
- package/src/Strategy/PlusMinusModule.js +4 -0
- package/src/Strategy/ScheduleModule.js +4 -0
- package/src/Strategy/ShortcutModule.js +4 -0
- package/src/Strategy/Utilities/FormatColumn/getFormatColumnSettingsViewItems.js +0 -3
- package/src/Utilities/Constants/DocumentationLinkConstants.d.ts +2 -2
- package/src/Utilities/Constants/DocumentationLinkConstants.js +2 -2
- package/src/Utilities/ExpressionFunctions/scalarExpressionFunctions.js +3 -3
- package/src/Utilities/Extensions/StringExtensions.d.ts +2 -0
- package/src/Utilities/Extensions/StringExtensions.js +16 -0
- package/src/Utilities/Helpers/FormatHelper.js +9 -2
- package/src/Utilities/Helpers/StyleHelper.js +14 -0
- package/src/Utilities/ObjectFactory.js +16 -3
- package/src/Utilities/Services/AnnotationsService.js +1 -1
- package/src/Utilities/Services/ModuleService.js +3 -3
- package/src/View/AdaptablePopover/index.d.ts +1 -0
- package/src/View/AdaptablePopover/index.js +1 -1
- package/src/View/Alert/ActiveAlertsPanel.js +8 -0
- package/src/View/Alert/AlertViewPanel.js +13 -9
- package/src/View/Alert/Utilities/getAlertButtonStyle.d.ts +1 -0
- package/src/View/Alert/Utilities/getAlertButtonStyle.js +8 -0
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +2 -1
- package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +5 -2
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +47 -12
- package/src/View/Alert/Wizard/AlertWizard.js +14 -10
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +23 -11
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnExpressionWizardSection.js +2 -2
- package/src/View/CellSummary/CellSummaryViewPanel.js +15 -17
- package/src/View/Components/AdaptableDateInput/index.js +1 -1
- package/src/View/Components/Buttons/ButtonApply.js +1 -1
- package/src/View/Components/Buttons/ButtonClear.d.ts +1 -0
- package/src/View/Components/Buttons/EntityListActionButtons.d.ts +1 -2
- package/src/View/Components/Buttons/SuspendToggleButton/SuspendToggleButton.d.ts +1 -2
- package/src/View/Components/Selectors/BulkUpdateValueSelector.js +19 -18
- package/src/View/Components/StyleComponent.js +20 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.d.ts +2 -1
- package/src/View/CustomSort/Wizard/CustomSortColumnWizardSection.js +40 -14
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +4 -4
- package/src/View/Dashboard/DashboardPopup.js +4 -5
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +1 -0
- package/src/View/Export/ExportDestinationPicker.js +1 -1
- package/src/View/Export/ExportStatusBar.js +4 -2
- package/src/View/Export/ExportViewPanel.js +25 -18
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.d.ts +2 -1
- package/src/View/FlashingCell/Wizard/FlashingCellSettingsWizardSection.js +34 -14
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +14 -10
- package/src/View/FormatColumn/Wizard/FormatColumnSettingsWizardSection.js +46 -51
- package/src/View/FormatColumn/Wizard/FormatColumnStyleWizardSection.js +2 -2
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +20 -9
- package/src/View/GridInfo/GridInfoPopup/GridInfoPopup.js +57 -65
- package/src/View/Layout/Wizard/sections/PivotColumnsSection.js +8 -0
- package/src/View/PlusMinus/Wizard/PlusMinusSettingsWizardSection.js +32 -9
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +20 -15
- package/src/View/QuickSearch/QuickSearchPopup.js +4 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsIPushPull.js +12 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsOpenFin.js +12 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReminder.js +14 -4
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/ScheduleSettingsReport.js +12 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.d.ts +2 -1
- package/src/View/Schedule/Wizard/ScheduleSettingsWizard/isSettingsValid.js +10 -1
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.d.ts +2 -1
- package/src/View/Shortcut/Wizard/ShortcutSettingsWizard.js +25 -4
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +18 -14
- package/src/View/UIHelper.d.ts +2 -0
- package/src/View/UIHelper.js +15 -0
- package/src/agGrid/AdaptableAgGrid.d.ts +2 -2
- package/src/agGrid/AdaptableAgGrid.js +5 -5
- package/src/agGrid/AgGridColumnAdapter.js +3 -18
- package/src/components/Dashboard/DashboardToolbar.js +1 -1
- package/src/components/ExpressionEditor/EditorInput.js +19 -3
- package/src/components/Tree/TreeDropdown/index.js +1 -1
- package/src/env.js +2 -2
- package/src/layout-manager/src/LayoutManagerModel.d.ts +1 -0
- package/src/layout-manager/src/index.js +25 -7
- package/src/layout-manager/src/normalizeLayoutModel.js +3 -0
- package/src/metamodel/adaptable.metamodel.d.ts +39 -7
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/migration/AdaptableUpgradeHelper.js +3 -1
- package/src/migration/VersionUpgrade22.d.ts +21 -0
- package/src/migration/VersionUpgrade22.js +187 -0
- package/src/types.d.ts +2 -3
- package/tsconfig.esm.tsbuildinfo +1 -1
- package/src/AdaptableState/Common/SuspendableObject.d.ts +0 -10
- package/src/AdaptableState/Common/SuspendableObject.js +0 -1
|
@@ -41,15 +41,6 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
41
41
|
.getFormatColumns(config)
|
|
42
42
|
.filter((fc) => fc.Style);
|
|
43
43
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Retrieves all Format Columns in Adaptable State with the `Style` or the `CellAlignment` property set
|
|
46
|
-
* @returns format columns
|
|
47
|
-
*/
|
|
48
|
-
getAllFormatColumnWithStyleAndCellAlignment(config) {
|
|
49
|
-
return this.getFormatColumnApi()
|
|
50
|
-
.getFormatColumns(config)
|
|
51
|
-
.filter((fc) => fc.Style || fc.CellAlignment);
|
|
52
|
-
}
|
|
53
44
|
/**
|
|
54
45
|
* Retrieves all Format Columns in Adaptable State with `DisplayFormat` property set
|
|
55
46
|
* @returns format columns
|
|
@@ -59,15 +50,6 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
59
50
|
.getFormatColumns(config)
|
|
60
51
|
.filter((fc) => fc.DisplayFormat);
|
|
61
52
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Retrieves all Format Columns in Adaptable State with `CellAlignment` property set
|
|
64
|
-
* @returns format columns
|
|
65
|
-
*/
|
|
66
|
-
getAllFormatColumnWithCellAlignment(config) {
|
|
67
|
-
return this.getFormatColumnApi()
|
|
68
|
-
.getFormatColumns(config)
|
|
69
|
-
.filter((fc) => fc.CellAlignment);
|
|
70
|
-
}
|
|
71
53
|
/**
|
|
72
54
|
* Get all FormatColumns which are defined for this column and have a custom AdaptableStyle
|
|
73
55
|
* @param column
|
|
@@ -75,7 +57,7 @@ export class FormatColumnInternalApi extends ApiBase {
|
|
|
75
57
|
* @returns list of FormatColumn
|
|
76
58
|
*/
|
|
77
59
|
getFormatColumnsWithStyleForColumn(column, config) {
|
|
78
|
-
const formatColumns = this.
|
|
60
|
+
const formatColumns = this.getAllFormatColumnWithStyle()
|
|
79
61
|
.filter((formatColumn) => {
|
|
80
62
|
// FormatColumn default target is 'cell', so if no target is specified, we assume 'cell'
|
|
81
63
|
const fcTarget = formatColumn.Target ?? 'cell';
|
|
@@ -168,11 +168,11 @@ export declare const getColumnFilterSelector: (state: AdaptableState, columnId:
|
|
|
168
168
|
Predicates: import("../../types").ColumnFilterPredicate[];
|
|
169
169
|
PredicatesOperator?: import("../../types").PredicatesOperator;
|
|
170
170
|
IsSuspended?: boolean;
|
|
171
|
-
Uuid?: import("../../AdaptableState/Uuid").TypeUuid;
|
|
172
171
|
Source?: "InitialState" | "User";
|
|
173
172
|
AdaptableVersion?: import("../../types").AdaptableVersion;
|
|
174
173
|
IsReadOnly?: boolean;
|
|
175
174
|
Tags?: import("../../types").AdaptableObjectTag[];
|
|
176
175
|
Metadata?: any;
|
|
176
|
+
Uuid?: import("../../AdaptableState/Uuid").TypeUuid;
|
|
177
177
|
};
|
|
178
178
|
export declare const LayoutReducer: Redux.Reducer<LayoutState>;
|
|
@@ -42,7 +42,7 @@ export const GetNoteSelector = (state, address) => {
|
|
|
42
42
|
// happy check
|
|
43
43
|
return true;
|
|
44
44
|
}
|
|
45
|
-
// Primary keys
|
|
45
|
+
// Primary keys retrieved from the grid dom are always strings, so we must also consider them strings
|
|
46
46
|
if ((typeof address.PrimaryKeyValue === 'number' && typeof note.PrimaryKeyValue === 'string') ||
|
|
47
47
|
(typeof address.PrimaryKeyValue === 'string' && typeof note.PrimaryKeyValue === 'number')) {
|
|
48
48
|
return (note.PrimaryKeyValue.toString() === address.PrimaryKeyValue.toString() &&
|
|
@@ -183,6 +183,10 @@ export class AlertModule extends AdaptableModuleBase {
|
|
|
183
183
|
const alertType = getAlertType(alert);
|
|
184
184
|
return {
|
|
185
185
|
items: [
|
|
186
|
+
{
|
|
187
|
+
name: 'Name',
|
|
188
|
+
values: [alert.Name],
|
|
189
|
+
},
|
|
186
190
|
getAlertTypeViewItems(alert),
|
|
187
191
|
alertType === 'DataChange' && {
|
|
188
192
|
...getScopeViewItems(alert.Scope, this.api),
|
|
@@ -47,6 +47,10 @@ export class CustomSortModule extends AdaptableModuleBase {
|
|
|
47
47
|
toView(customSort) {
|
|
48
48
|
return {
|
|
49
49
|
items: [
|
|
50
|
+
{
|
|
51
|
+
name: 'Name',
|
|
52
|
+
values: [customSort.Name],
|
|
53
|
+
},
|
|
50
54
|
getCustomSortColumnViewItems(customSort, this.api),
|
|
51
55
|
getCustomSortSortOrderViewItems(customSort),
|
|
52
56
|
getObjectTagsViewItems(customSort, this.api),
|
|
@@ -182,6 +182,7 @@ export class FlashingCellModule extends AdaptableModuleBase {
|
|
|
182
182
|
}
|
|
183
183
|
return [
|
|
184
184
|
this.createMenuItemReduxAction('flashing-cell-add', 'Add Flashing Cell', this.moduleInfo.Glyph, FlashingCellRedux.FlashingCellDefinitionAdd({
|
|
185
|
+
Name: `Any Change [${column.columnId}]`,
|
|
185
186
|
Scope: {
|
|
186
187
|
ColumnIds: [column.columnId],
|
|
187
188
|
},
|
|
@@ -247,6 +248,10 @@ export class FlashingCellModule extends AdaptableModuleBase {
|
|
|
247
248
|
toView(flashingCell) {
|
|
248
249
|
return {
|
|
249
250
|
items: [
|
|
251
|
+
{
|
|
252
|
+
name: 'Name',
|
|
253
|
+
values: [flashingCell.Name],
|
|
254
|
+
},
|
|
250
255
|
{ ...getScopeViewItems(flashingCell.Scope, this.api), label: 'Trigger' },
|
|
251
256
|
{
|
|
252
257
|
...getRuleViewItems(flashingCell.Rule, this.api),
|
|
@@ -82,6 +82,10 @@ export class FormatColumnModule extends AdaptableModuleBase {
|
|
|
82
82
|
return {
|
|
83
83
|
abObject: formatColumn,
|
|
84
84
|
items: [
|
|
85
|
+
{
|
|
86
|
+
name: 'Name',
|
|
87
|
+
values: [formatColumn.Name],
|
|
88
|
+
},
|
|
85
89
|
getScopeViewItems(formatColumn.Scope, this.api),
|
|
86
90
|
getFormatColumnSettingsTargetItems(formatColumn),
|
|
87
91
|
formatColumn.Rule && getRuleViewItems(formatColumn.Rule, this.api),
|
|
@@ -299,14 +299,14 @@ export class LayoutModule extends AdaptableModuleBase {
|
|
|
299
299
|
}
|
|
300
300
|
return {
|
|
301
301
|
items: [
|
|
302
|
-
{
|
|
303
|
-
name: 'Grid Type',
|
|
304
|
-
values: [isPivotLayout(layout) ? 'Pivot' : 'Table'],
|
|
305
|
-
},
|
|
306
302
|
{
|
|
307
303
|
name: 'Name',
|
|
308
304
|
values: [layout.Name],
|
|
309
305
|
},
|
|
306
|
+
{
|
|
307
|
+
name: 'Grid Type',
|
|
308
|
+
values: [isPivotLayout(layout) ? 'Pivot' : 'Table'],
|
|
309
|
+
},
|
|
310
310
|
/**
|
|
311
311
|
* Hide pivot columns.
|
|
312
312
|
*
|
|
@@ -200,6 +200,10 @@ export class PlusMinusModule extends AdaptableModuleBase {
|
|
|
200
200
|
return {
|
|
201
201
|
abObject: plusMinus,
|
|
202
202
|
items: [
|
|
203
|
+
{
|
|
204
|
+
name: 'Name',
|
|
205
|
+
values: [plusMinus.Name],
|
|
206
|
+
},
|
|
203
207
|
{
|
|
204
208
|
name: 'Target',
|
|
205
209
|
...getScopeViewItems(plusMinus.Scope, this.api),
|
|
@@ -132,6 +132,10 @@ export class ScheduleModule extends AdaptableModuleBase {
|
|
|
132
132
|
return {
|
|
133
133
|
abObject: schedule,
|
|
134
134
|
items: [
|
|
135
|
+
{
|
|
136
|
+
name: 'Name',
|
|
137
|
+
values: [schedule.Name],
|
|
138
|
+
},
|
|
135
139
|
{
|
|
136
140
|
name: 'Settings',
|
|
137
141
|
values: getScheduleSettingsValues(schedule).map((description) => `${description.label}: ${description.value}`),
|
|
@@ -82,6 +82,10 @@ export class ShortcutModule extends AdaptableModuleBase {
|
|
|
82
82
|
return {
|
|
83
83
|
abObject: shortcut,
|
|
84
84
|
items: [
|
|
85
|
+
{
|
|
86
|
+
name: 'Name',
|
|
87
|
+
values: [shortcut.Name],
|
|
88
|
+
},
|
|
85
89
|
getScopeViewItems(shortcut.Scope, this.api),
|
|
86
90
|
getShortcutSettingsViewItems(shortcut),
|
|
87
91
|
getObjectTagsViewItems(shortcut, this.api),
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
export const getFormatColumnSettingsViewItems = (formatColumn) => {
|
|
2
2
|
let values = [];
|
|
3
|
-
if (formatColumn.CellAlignment) {
|
|
4
|
-
values.push(`Cell Alignment: ${formatColumn.CellAlignment}`);
|
|
5
|
-
}
|
|
6
3
|
if (formatColumn.RowScope) {
|
|
7
4
|
if (formatColumn.RowScope.ExcludeDataRows) {
|
|
8
5
|
values.push('Exclude Data Rows');
|
|
@@ -12,7 +12,7 @@ export declare const PredicateDocsLink = "https://www.adaptabletools.com/docs/ad
|
|
|
12
12
|
export declare const PrimaryKeyDocsLink = "https://www.adaptabletools.com/docs/getting-started-primary-key";
|
|
13
13
|
export declare const LicenseDocsLink = "https://www.adaptabletools.com/buy/buying-adaptable-licensing";
|
|
14
14
|
export declare const AdaptableOptionsDocsLink = "https://www.adaptabletools.com/docs/technical-reference-adaptable-options";
|
|
15
|
-
export declare const AgGridModulesDocsLink = "https://www.adaptabletools.com/docs/
|
|
15
|
+
export declare const AgGridModulesDocsLink = "https://www.adaptabletools.com/docs/getting-started-aggrid-modules";
|
|
16
16
|
export declare const AlertMessageDocsLink = "https://www.adaptabletools.com/docs/handbook-alerting-message";
|
|
17
17
|
export declare const FormatColumnPlaceholderDocsLink = "https://www.adaptabletools.com/docs/handbook-column-formatting-display-format-placeholder";
|
|
18
|
-
export declare const AgGridRequiredModulesDocsLink = "https://www.adaptabletools.com/docs/
|
|
18
|
+
export declare const AgGridRequiredModulesDocsLink = "https://www.adaptabletools.com/docs/getting-started-aggrid-modules#mandatory-modules";
|
|
@@ -13,7 +13,7 @@ export const PredicateDocsLink = `${HOST_URL_DOCS}/adaptable-predicate`;
|
|
|
13
13
|
export const PrimaryKeyDocsLink = `${HOST_URL_DOCS}/getting-started-primary-key`;
|
|
14
14
|
export const LicenseDocsLink = `${HOST_URL_ROOT}/buy/buying-adaptable-licensing`;
|
|
15
15
|
export const AdaptableOptionsDocsLink = `${HOST_URL_DOCS}/technical-reference-adaptable-options`;
|
|
16
|
-
export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/
|
|
16
|
+
export const AgGridModulesDocsLink = `${HOST_URL_DOCS}/getting-started-aggrid-modules`;
|
|
17
17
|
export const AlertMessageDocsLink = `${HOST_URL_DOCS}/handbook-alerting-message`;
|
|
18
18
|
export const FormatColumnPlaceholderDocsLink = `${HOST_URL_DOCS}/handbook-column-formatting-display-format-placeholder`;
|
|
19
|
-
export const AgGridRequiredModulesDocsLink = `${HOST_URL_DOCS}/
|
|
19
|
+
export const AgGridRequiredModulesDocsLink = `${HOST_URL_DOCS}/getting-started-aggrid-modules#mandatory-modules`;
|
|
@@ -639,7 +639,7 @@ export const scalarExpressionFunctions = {
|
|
|
639
639
|
}
|
|
640
640
|
return result;
|
|
641
641
|
},
|
|
642
|
-
description: "Returns
|
|
642
|
+
description: "Returns percentage difference between a cell's current value and previous value",
|
|
643
643
|
signatures: [
|
|
644
644
|
'PERCENT_CHANGE( [colName], <INCREASE|DECREASE> )',
|
|
645
645
|
'PERCENT_CHANGE( COL(name: string), <INCREASE|DECREASE> )',
|
|
@@ -684,7 +684,7 @@ export const scalarExpressionFunctions = {
|
|
|
684
684
|
}
|
|
685
685
|
return result;
|
|
686
686
|
},
|
|
687
|
-
description: "Returns
|
|
687
|
+
description: "Returns absolute difference between a cell's current value and previous value",
|
|
688
688
|
signatures: [
|
|
689
689
|
'ABSOLUTE_CHANGE( [colName] )',
|
|
690
690
|
'ABSOLUTE_CHANGE( COL(name: string) )',
|
|
@@ -716,7 +716,7 @@ export const scalarExpressionFunctions = {
|
|
|
716
716
|
const previousValue = context.dataChangedEvent.oldValue;
|
|
717
717
|
return currentColumnValue !== previousValue;
|
|
718
718
|
},
|
|
719
|
-
description: "Returns true if
|
|
719
|
+
description: "Returns true if cell's current value is different from previous value, otherwise false; if no column is provided, it checks if any value has changed",
|
|
720
720
|
signatures: ['ANY_CHANGE( [colName] )', 'ANY_CHANGE()'],
|
|
721
721
|
examples: ['ANY_CHANGE([col1])', 'ANY_CHANGE()'],
|
|
722
722
|
category: 'changes',
|
|
@@ -17,6 +17,7 @@ export declare function Humanize(str: string): string;
|
|
|
17
17
|
export declare function ReplaceEmptySpacesWithUnderscore(str?: string): string;
|
|
18
18
|
export declare function IsNumeric(str: string): boolean;
|
|
19
19
|
export declare function UnescapeHtmlEntities(str: string): string;
|
|
20
|
+
export declare function ReplaceAllOccurencesExceptLastOne(str: string, searchTerm: string, replacement: string): string;
|
|
20
21
|
export declare const StringExtensions: {
|
|
21
22
|
IsNull: typeof IsNull;
|
|
22
23
|
IsNotNull: typeof IsNotNull;
|
|
@@ -37,5 +38,6 @@ export declare const StringExtensions: {
|
|
|
37
38
|
ReplaceEmptySpacesWithUnderscore: typeof ReplaceEmptySpacesWithUnderscore;
|
|
38
39
|
IsNumeric: typeof IsNumeric;
|
|
39
40
|
UnescapeHtmlEntities: typeof UnescapeHtmlEntities;
|
|
41
|
+
ReplaceAllOccurencesExceptLastOne: typeof ReplaceAllOccurencesExceptLastOne;
|
|
40
42
|
};
|
|
41
43
|
export default StringExtensions;
|
|
@@ -92,6 +92,21 @@ export function UnescapeHtmlEntities(str) {
|
|
|
92
92
|
}
|
|
93
93
|
return preparedStr;
|
|
94
94
|
}
|
|
95
|
+
export function ReplaceAllOccurencesExceptLastOne(str, searchTerm, replacement) {
|
|
96
|
+
// Find the index of the last occurrence of the search string
|
|
97
|
+
const lastIndex = str.lastIndexOf(searchTerm);
|
|
98
|
+
// If the string is not found, return the original string
|
|
99
|
+
if (lastIndex === -1) {
|
|
100
|
+
return str;
|
|
101
|
+
}
|
|
102
|
+
// Slice the string into two parts: before and after the last occurrence
|
|
103
|
+
const partBeforeLast = str.slice(0, lastIndex);
|
|
104
|
+
const partAfterLast = str.slice(lastIndex);
|
|
105
|
+
// Replace all occurrences in the first part
|
|
106
|
+
const replacedPart = partBeforeLast.replaceAll(searchTerm, replacement);
|
|
107
|
+
// Recombine the modified first part with the untouched second part
|
|
108
|
+
return replacedPart + partAfterLast;
|
|
109
|
+
}
|
|
95
110
|
export const StringExtensions = {
|
|
96
111
|
IsNull,
|
|
97
112
|
IsNotNull,
|
|
@@ -112,5 +127,6 @@ export const StringExtensions = {
|
|
|
112
127
|
ReplaceEmptySpacesWithUnderscore,
|
|
113
128
|
IsNumeric,
|
|
114
129
|
UnescapeHtmlEntities,
|
|
130
|
+
ReplaceAllOccurencesExceptLastOne,
|
|
115
131
|
};
|
|
116
132
|
export default StringExtensions;
|
|
@@ -28,7 +28,6 @@ export function NumberFormatter(input, options = {}, rowNode, column, api) {
|
|
|
28
28
|
if (isNaN(n)) {
|
|
29
29
|
return preparedInput.toString();
|
|
30
30
|
}
|
|
31
|
-
const fractionsSepatator = options.FractionSeparator ? options.FractionSeparator : '.';
|
|
32
31
|
let multiplier = options.Multiplier ? options.Multiplier : 1;
|
|
33
32
|
if (options.Multiplier !== undefined) {
|
|
34
33
|
n *= multiplier;
|
|
@@ -65,6 +64,7 @@ export function NumberFormatter(input, options = {}, rowNode, column, api) {
|
|
|
65
64
|
}
|
|
66
65
|
let s;
|
|
67
66
|
let digitsToUse;
|
|
67
|
+
const fractionsSepatator = options.FractionSeparator ?? '.';
|
|
68
68
|
if (options.Truncate || options.Ceiling || options.Round || options.Floor) {
|
|
69
69
|
digitsToUse = 0;
|
|
70
70
|
}
|
|
@@ -84,7 +84,14 @@ export function NumberFormatter(input, options = {}, rowNode, column, api) {
|
|
|
84
84
|
s = s.replace(/\./g, options.FractionSeparator);
|
|
85
85
|
}
|
|
86
86
|
if (options.IntegerSeparator !== undefined) {
|
|
87
|
-
|
|
87
|
+
// if fraction separator is not a comma then simply replace all instances
|
|
88
|
+
if (options.FractionSeparator !== ',') {
|
|
89
|
+
s = s.replace(/\,/g, options.IntegerSeparator);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// otherwise don't replace the last instance
|
|
93
|
+
s = StringExtensions.ReplaceAllOccurencesExceptLastOne(s, ',', options.IntegerSeparator);
|
|
94
|
+
}
|
|
88
95
|
}
|
|
89
96
|
s = (options.Prefix || '') + s + (options.Suffix || '');
|
|
90
97
|
if (options.Parentheses === true && preparedInput < 0) {
|
|
@@ -80,6 +80,20 @@ export const convertAdaptableStyleToCSS = (style) => {
|
|
|
80
80
|
break;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
|
+
if (style.Alignment) {
|
|
84
|
+
switch (style.Alignment) {
|
|
85
|
+
case 'Default':
|
|
86
|
+
case 'Left':
|
|
87
|
+
result.textAlign = 'left';
|
|
88
|
+
break;
|
|
89
|
+
case 'Right':
|
|
90
|
+
result.textAlign = 'right';
|
|
91
|
+
break;
|
|
92
|
+
case 'Center':
|
|
93
|
+
result.textAlign = 'center';
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
83
97
|
// assertion added to comply with the ag-Grid types
|
|
84
98
|
return result;
|
|
85
99
|
};
|
|
@@ -6,7 +6,7 @@ import { Bounce, Flip, Slide, Zoom } from '../components/Toastify';
|
|
|
6
6
|
import { BLACK, getHexForName, LIGHT_GRAY } from '../View/UIHelper';
|
|
7
7
|
import { isPivotLayout } from '../Api/Implementation/LayoutHelpers';
|
|
8
8
|
export function CreateEmptyCustomSort() {
|
|
9
|
-
return { Uuid: createUuid(), ColumnId: EMPTY_STRING, SortedValues: [] };
|
|
9
|
+
return { Uuid: createUuid(), Name: EMPTY_STRING, ColumnId: EMPTY_STRING, SortedValues: [] };
|
|
10
10
|
}
|
|
11
11
|
export function CreateAdaptableComment(text, api) {
|
|
12
12
|
const comment = {
|
|
@@ -44,6 +44,7 @@ export function CreateEmptyNamedQuery(expression) {
|
|
|
44
44
|
export function CreateEmptyPlusMinusNudge() {
|
|
45
45
|
return {
|
|
46
46
|
Uuid: createUuid(),
|
|
47
|
+
Name: EMPTY_STRING,
|
|
47
48
|
Scope: undefined,
|
|
48
49
|
Rule: undefined,
|
|
49
50
|
NudgeValue: PLUS_MINUS_DEFAULT_NUDGE_VALUE,
|
|
@@ -81,6 +82,7 @@ export function CreateRowChangedAlert(alertHeader, alertMessage, alertDefinition
|
|
|
81
82
|
export function CreateEmptyAlertDefinition() {
|
|
82
83
|
return {
|
|
83
84
|
Uuid: createUuid(),
|
|
85
|
+
Name: EMPTY_STRING,
|
|
84
86
|
Scope: { All: true },
|
|
85
87
|
Rule: {
|
|
86
88
|
Predicates: [],
|
|
@@ -92,6 +94,7 @@ export function CreateEmptyAlertDefinition() {
|
|
|
92
94
|
export function CreateEmptyFlashingCellDefinition() {
|
|
93
95
|
return {
|
|
94
96
|
Uuid: createUuid(),
|
|
97
|
+
Name: EMPTY_STRING,
|
|
95
98
|
Scope: { ColumnIds: [] },
|
|
96
99
|
Rule: {
|
|
97
100
|
Predicates: [
|
|
@@ -108,6 +111,7 @@ export function CreateInternalAlertDefinitionForMessages(messageType, alertPrope
|
|
|
108
111
|
};
|
|
109
112
|
return {
|
|
110
113
|
Uuid: createUuid(),
|
|
114
|
+
Name: EMPTY_STRING,
|
|
111
115
|
Scope: undefined,
|
|
112
116
|
Rule: {
|
|
113
117
|
Predicates: [],
|
|
@@ -129,6 +133,7 @@ export function CreateEmptyReport() {
|
|
|
129
133
|
export function CreateEmptyBaseSchedule(scheduleType) {
|
|
130
134
|
return {
|
|
131
135
|
Uuid: createUuid(),
|
|
136
|
+
Name: EMPTY_STRING,
|
|
132
137
|
ScheduleType: scheduleType,
|
|
133
138
|
Schedule: CreateEmptySchedule(),
|
|
134
139
|
};
|
|
@@ -136,6 +141,7 @@ export function CreateEmptyBaseSchedule(scheduleType) {
|
|
|
136
141
|
export function CreateEmptyReminderSchedule() {
|
|
137
142
|
return {
|
|
138
143
|
Uuid: createUuid(),
|
|
144
|
+
Name: EMPTY_STRING,
|
|
139
145
|
ScheduleType: ScheduleType.Reminder,
|
|
140
146
|
Schedule: CreateEmptySchedule(),
|
|
141
147
|
Header: EMPTY_STRING,
|
|
@@ -148,6 +154,7 @@ export function CreateEmptyReminderSchedule() {
|
|
|
148
154
|
export function CreateEmptyReportSchedule() {
|
|
149
155
|
return {
|
|
150
156
|
Uuid: createUuid(),
|
|
157
|
+
Name: EMPTY_STRING,
|
|
151
158
|
ScheduleType: ScheduleType.Report,
|
|
152
159
|
Schedule: CreateEmptySchedule(),
|
|
153
160
|
ReportName: EMPTY_STRING,
|
|
@@ -172,6 +179,7 @@ export function CreateEmptyOpenFinReport() {
|
|
|
172
179
|
export function CreateEmptyIPushPullSchedule() {
|
|
173
180
|
return {
|
|
174
181
|
Uuid: createUuid(),
|
|
182
|
+
Name: EMPTY_STRING,
|
|
175
183
|
ScheduleType: ScheduleType.ipushpull,
|
|
176
184
|
Schedule: CreateEmptySchedule(),
|
|
177
185
|
IPushPullReport: CreateEmptyIPushPullReport(),
|
|
@@ -181,6 +189,7 @@ export function CreateEmptyIPushPullSchedule() {
|
|
|
181
189
|
export function CreateEmptyOpenFinSchedule() {
|
|
182
190
|
return {
|
|
183
191
|
Uuid: createUuid(),
|
|
192
|
+
Name: EMPTY_STRING,
|
|
184
193
|
ScheduleType: ScheduleType.OpenFin,
|
|
185
194
|
Schedule: CreateEmptySchedule(),
|
|
186
195
|
OpenFinReport: CreateEmptyOpenFinReport(),
|
|
@@ -190,6 +199,7 @@ export function CreateEmptyOpenFinSchedule() {
|
|
|
190
199
|
export function CreateIPushPullSchedule(iPushPullReport) {
|
|
191
200
|
return {
|
|
192
201
|
Uuid: createUuid(),
|
|
202
|
+
Name: EMPTY_STRING,
|
|
193
203
|
ScheduleType: ScheduleType.ipushpull,
|
|
194
204
|
Schedule: CreateEmptySchedule(),
|
|
195
205
|
IPushPullReport: iPushPullReport,
|
|
@@ -199,6 +209,7 @@ export function CreateIPushPullSchedule(iPushPullReport) {
|
|
|
199
209
|
export function CreateReportSchedule(reportName, reportFormat) {
|
|
200
210
|
return {
|
|
201
211
|
Uuid: createUuid(),
|
|
212
|
+
Name: EMPTY_STRING,
|
|
202
213
|
ScheduleType: ScheduleType.Report,
|
|
203
214
|
Schedule: CreateEmptySchedule(),
|
|
204
215
|
ReportName: reportName,
|
|
@@ -207,7 +218,6 @@ export function CreateReportSchedule(reportName, reportFormat) {
|
|
|
207
218
|
}
|
|
208
219
|
export function CreateEmptySchedule() {
|
|
209
220
|
return {
|
|
210
|
-
Uuid: createUuid(),
|
|
211
221
|
OneOffDate: undefined,
|
|
212
222
|
DaysOfWeek: [],
|
|
213
223
|
Hour: 0,
|
|
@@ -217,6 +227,7 @@ export function CreateEmptySchedule() {
|
|
|
217
227
|
export function CreateEmptyShortcut() {
|
|
218
228
|
return {
|
|
219
229
|
Uuid: createUuid(),
|
|
230
|
+
Name: EMPTY_STRING,
|
|
220
231
|
Scope: undefined,
|
|
221
232
|
ShortcutKey: EMPTY_STRING,
|
|
222
233
|
ShortcutValue: undefined,
|
|
@@ -225,10 +236,11 @@ export function CreateEmptyShortcut() {
|
|
|
225
236
|
}
|
|
226
237
|
export function CreateEmptyFormatColumn() {
|
|
227
238
|
return {
|
|
239
|
+
Uuid: createUuid(),
|
|
240
|
+
Name: EMPTY_STRING,
|
|
228
241
|
Scope: undefined,
|
|
229
242
|
Style: CreateEmptyStyle(),
|
|
230
243
|
DisplayFormat: undefined,
|
|
231
|
-
CellAlignment: undefined,
|
|
232
244
|
RowScope: undefined,
|
|
233
245
|
Target: 'cell',
|
|
234
246
|
};
|
|
@@ -292,6 +304,7 @@ export function CreateEmptyStyle() {
|
|
|
292
304
|
FontStyle: undefined,
|
|
293
305
|
FontSize: undefined,
|
|
294
306
|
ClassName: undefined,
|
|
307
|
+
Alignment: undefined,
|
|
295
308
|
};
|
|
296
309
|
}
|
|
297
310
|
export function CreateSystemStatusMessageInfo(message, type, furtherInfo) {
|
|
@@ -28,7 +28,7 @@ export class AnnotationsService {
|
|
|
28
28
|
if (a?.ColumnId === b?.ColumnId && a?.PrimaryKeyValue === b?.PrimaryKeyValue) {
|
|
29
29
|
return true;
|
|
30
30
|
}
|
|
31
|
-
// Primary keys
|
|
31
|
+
// Primary keys retrieved from the grid dom are always strings, so we must also consider them strings
|
|
32
32
|
if ((typeof a.PrimaryKeyValue === 'number' && typeof b.PrimaryKeyValue === 'string') ||
|
|
33
33
|
(typeof b.PrimaryKeyValue === 'string' && typeof a.PrimaryKeyValue === 'number')) {
|
|
34
34
|
return (a.PrimaryKeyValue.toString() === b.PrimaryKeyValue.toString() && a.ColumnId === b.ColumnId);
|
|
@@ -114,13 +114,13 @@ export class ModuleService {
|
|
|
114
114
|
case 'CalculatedColumn':
|
|
115
115
|
return url + 'handbook-calculated-column';
|
|
116
116
|
case 'CellSummary':
|
|
117
|
-
return url + 'handbook-summarising';
|
|
117
|
+
return url + 'handbook-summarising-cells';
|
|
118
118
|
case 'Charting':
|
|
119
119
|
return url + 'handbook-charts';
|
|
120
120
|
case 'ColumnFilter':
|
|
121
121
|
return url + 'handbook-column-filter';
|
|
122
122
|
case 'ColumnInfo':
|
|
123
|
-
return url + 'dev-guide-
|
|
123
|
+
return url + 'dev-guide-columns-column-info';
|
|
124
124
|
case 'Comment':
|
|
125
125
|
return url + 'handbook-comments';
|
|
126
126
|
case 'CustomSort':
|
|
@@ -146,7 +146,7 @@ export class ModuleService {
|
|
|
146
146
|
case 'GridFilter':
|
|
147
147
|
return url + 'handbook-grid-filter';
|
|
148
148
|
case 'GridInfo':
|
|
149
|
-
return url + 'dev-guide-
|
|
149
|
+
return url + 'dev-guide-support-monitoring';
|
|
150
150
|
case 'Layout':
|
|
151
151
|
return url + 'handbook-layouts';
|
|
152
152
|
case 'NamedQuery':
|
|
@@ -17,6 +17,7 @@ export interface AdaptablePopoverProps extends React.ClassAttributes<React.Props
|
|
|
17
17
|
popupPadding?: 0 | 2;
|
|
18
18
|
alignPosition?: OverlayShowParams['alignPosition'];
|
|
19
19
|
visible?: boolean;
|
|
20
|
+
disabled?: boolean;
|
|
20
21
|
}
|
|
21
22
|
export declare class AdaptablePopover extends React.Component<React.PropsWithChildren<AdaptablePopoverProps>, {}> {
|
|
22
23
|
render(): React.JSX.Element;
|
|
@@ -35,7 +35,7 @@ export class AdaptablePopover extends React.Component {
|
|
|
35
35
|
// showTriangle
|
|
36
36
|
visible: this.props.visible, render: () => popoverClickRootClose, showEvent: (this.props.showEvent || 'mouseenter'), hideEvent: (this.props.hideEvent || 'mouseleave'), style: {
|
|
37
37
|
overflow: 'visible',
|
|
38
|
-
}, alignPosition: this.props.alignPosition }, useButton ? (React.createElement(ButtonInfo, { style: iconStyle, variant: "text", onClick: () => null, icon: showIcon && icon, tooltip: this.props.tooltipText }, this.props.children)) : (React.createElement("div", { title: this.props.tooltipText, tabIndex: 0, style: { cursor: 'pointer', display: 'inline-block' } },
|
|
38
|
+
}, alignPosition: this.props.alignPosition }, useButton ? (React.createElement(ButtonInfo, { style: iconStyle, variant: "text", onClick: () => null, icon: showIcon && icon, tooltip: this.props.tooltipText, disabled: this.props.disabled }, this.props.children)) : (React.createElement("div", { title: this.props.tooltipText, tabIndex: 0, style: { cursor: 'pointer', display: 'inline-block' } },
|
|
39
39
|
this.props.children,
|
|
40
40
|
showIcon && React.createElement(Icon, { name: icon, style: iconStyle }))))));
|
|
41
41
|
}
|
|
@@ -7,5 +7,13 @@ export const ActiveAlertsPanel = () => {
|
|
|
7
7
|
const adaptable = useAdaptable();
|
|
8
8
|
const filterModule = adaptable.ModuleService.getModuleById(ModuleConstants.AlertModuleId);
|
|
9
9
|
const alerts = useSelector((state) => state.Internal.AdaptableAlerts);
|
|
10
|
+
// map the suspended property from the underlying AlertDefinitions
|
|
11
|
+
alerts.forEach((alert) => {
|
|
12
|
+
const liveAlertDef = adaptable.api.alertApi.getAlertDefinitionById(alert.alertDefinition.Uuid);
|
|
13
|
+
if (liveAlertDef) {
|
|
14
|
+
// @ts-ignore theoretically AdaptableAlert is not Suspendable; practically <AdaptableObjectCompactList> expects it
|
|
15
|
+
alert.IsSuspended = liveAlertDef.IsSuspended;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
10
18
|
return React.createElement(AdaptableObjectCompactList, { abObjects: alerts, module: filterModule });
|
|
11
19
|
};
|
|
@@ -2,10 +2,11 @@ import * as React from 'react';
|
|
|
2
2
|
import { connect } from 'react-redux';
|
|
3
3
|
import * as InternalRedux from '../../Redux/ActionsReducers/InternalRedux';
|
|
4
4
|
import { AdaptablePopover } from '../AdaptablePopover';
|
|
5
|
-
import UIHelper from '../UIHelper';
|
|
6
5
|
import { getAlertButtonStyle } from './Utilities/getAlertButtonStyle';
|
|
7
6
|
import { ActiveAlertsPanel } from './ActiveAlertsPanel';
|
|
8
7
|
import { Flex } from '../../components/Flex';
|
|
8
|
+
import { ButtonClear } from '../Components/Buttons/ButtonClear';
|
|
9
|
+
import clsx from 'clsx';
|
|
9
10
|
class AlertViewPanelComponent extends React.Component {
|
|
10
11
|
constructor(props) {
|
|
11
12
|
super(props);
|
|
@@ -20,7 +21,6 @@ class AlertViewPanelComponent extends React.Component {
|
|
|
20
21
|
}
|
|
21
22
|
}
|
|
22
23
|
render() {
|
|
23
|
-
const messageType = UIHelper.getMessageTypeFromAdaptableAlerts(this.props.AdaptableAlerts);
|
|
24
24
|
const { color: buttonTextColor, background: buttonBackground } = getAlertButtonStyle(this.props.AdaptableAlerts);
|
|
25
25
|
const collapsedText = this.props.AdaptableAlerts.length == 0
|
|
26
26
|
? '0 Alerts'
|
|
@@ -28,13 +28,17 @@ class AlertViewPanelComponent extends React.Component {
|
|
|
28
28
|
? '1 Alert'
|
|
29
29
|
: this.props.AdaptableAlerts.length + ' Alerts';
|
|
30
30
|
const alertsPanel = React.createElement(ActiveAlertsPanel, null);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
const isToolbar = this.props.viewType === 'Toolbar';
|
|
32
|
+
const elementType = isToolbar ? 'DashboardToolbar' : 'ToolPanel';
|
|
33
|
+
return (React.createElement(Flex, { alignItems: "stretch", className: clsx(`ab-${elementType}__Alert__wrap twa:gap-1`, {
|
|
34
|
+
'twa:min-w-[140px] twa:w-[140px]': isToolbar,
|
|
35
|
+
[`twa:flex-1`]: !isToolbar,
|
|
36
|
+
}) },
|
|
37
|
+
React.createElement(Flex, { key: `${buttonTextColor}_${buttonBackground}_${collapsedText}`, className: `ab-${elementType}__Alert__text twa:flex-1 twa:rounded-standard twa:p-2 text-2 twa:items-center twa:justify-center twa:min-h-input`, style: { color: buttonTextColor, backgroundColor: buttonBackground } }, collapsedText),
|
|
38
|
+
this.props.AdaptableAlerts.length > 0 && (React.createElement(Flex, { className: 'twa:gap-1' },
|
|
39
|
+
React.createElement(Flex, { className: "twa:flex twa:box-border" },
|
|
40
|
+
React.createElement(ButtonClear, { "aria-label": 'Clear All Alerts', variant: 'outlined', className: `ab-${elementType}__Alert__clear`, onClick: () => this.props.onDeleteAllAlert(this.state.Alerts), tooltip: "Clear All Alerts", showText: this.props.viewType === 'ToolPanel' }, 'Clear Alerts')),
|
|
41
|
+
React.createElement(AdaptablePopover, { className: `ab-${elementType}__Alert__info`, headerText: "Alerts Details", bodyText: [alertsPanel], MessageType: 'Info', useButton: true, showEvent: 'focus', hideEvent: "blur", popoverMinWidth: 400 })))));
|
|
38
42
|
}
|
|
39
43
|
}
|
|
40
44
|
function mapStateToProps(state, ownProps) {
|
|
@@ -4,8 +4,16 @@ export const getAlertButtonStyle = (alerts) => {
|
|
|
4
4
|
const messageTypeColor = UIHelper.getColorByMessageType(messageType);
|
|
5
5
|
const buttonBackground = UIHelper.getButtonColourForAdaptableAlerts(alerts, messageTypeColor);
|
|
6
6
|
const buttonTextColor = UIHelper.getButtonTextColourForArrayandMessageType(alerts, messageType);
|
|
7
|
+
let cssClasses = '';
|
|
8
|
+
if (alerts?.length) {
|
|
9
|
+
const cssMessageType = UIHelper.getCSSColorByMessageType(messageType);
|
|
10
|
+
cssClasses = cssMessageType
|
|
11
|
+
? `twa:bg-${cssMessageType} twa:text-text-on-${cssMessageType}`
|
|
12
|
+
: '';
|
|
13
|
+
}
|
|
7
14
|
return {
|
|
8
15
|
color: buttonTextColor,
|
|
9
16
|
background: buttonBackground,
|
|
17
|
+
cssClasses,
|
|
10
18
|
};
|
|
11
19
|
};
|
|
@@ -13,10 +13,11 @@ export declare const getDefaultAlertDefinition: (alertDefinition: AlertDefinitio
|
|
|
13
13
|
MessageText?: string;
|
|
14
14
|
AlertProperties?: import("../../../types").AlertProperties;
|
|
15
15
|
AlertForm?: string | import("../../../types").AlertButtonForm;
|
|
16
|
-
|
|
16
|
+
Name: string;
|
|
17
17
|
Source?: "InitialState" | "User";
|
|
18
18
|
AdaptableVersion?: import("../../../types").AdaptableVersion;
|
|
19
19
|
IsReadOnly?: boolean;
|
|
20
20
|
Tags?: import("../../../types").AdaptableObjectTag[];
|
|
21
21
|
Metadata?: any;
|
|
22
|
+
IsSuspended?: boolean;
|
|
22
23
|
};
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { AlertType } from '../Utilities/getAlertType';
|
|
3
|
+
import { AdaptableApi, AlertDefinition } from '../../../types';
|
|
4
|
+
export declare const isSettingsValid: (data: AlertDefinition, api: AdaptableApi) => true | "Name is required" | "An Alert already exists with that name";
|
|
3
5
|
export declare const renderAlertTypeSummary: (alertType: AlertType) => React.JSX.Element;
|
|
4
|
-
type
|
|
6
|
+
type AlertTypeWizardSectionProps = {
|
|
5
7
|
onAlertTypeChange: (alertType: AlertType) => void;
|
|
6
8
|
alertType: AlertType | null;
|
|
9
|
+
onChange: (data: AlertDefinition) => void;
|
|
7
10
|
};
|
|
8
|
-
export declare const AlertTypeWizardSection: (props:
|
|
11
|
+
export declare const AlertTypeWizardSection: (props: AlertTypeWizardSectionProps) => React.JSX.Element;
|
|
9
12
|
export {};
|