@adaptabletools/adaptable 11.3.0 → 12.0.0-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/base.css +22 -4
- package/bundle.cjs.js +108 -108
- package/index.css +26 -4
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -1
- package/src/AdaptableOptions/ActionOptions.d.ts +1 -0
- package/src/AdaptableOptions/{FormatColumnOptions.js → ActionOptions.js} +0 -0
- package/src/AdaptableOptions/AdaptableFrameworkComponent.d.ts +5 -0
- package/src/AdaptableOptions/AdaptableOptions.d.ts +3 -10
- package/src/AdaptableOptions/AdaptableQLOptions.d.ts +5 -0
- package/src/AdaptableOptions/AlertOptions.d.ts +14 -1
- package/src/AdaptableOptions/ColumnOptions.d.ts +49 -0
- package/src/AdaptableOptions/{MasterDetailAgGridPluginOptions.js → ColumnOptions.js} +0 -0
- package/src/AdaptableOptions/DashboardOptions.d.ts +2 -7
- package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +19 -0
- package/src/AdaptableOptions/EditOptions.d.ts +2 -2
- package/src/AdaptableOptions/EntitlementOptions.d.ts +7 -1
- package/src/AdaptableOptions/ExportOptions.d.ts +5 -1
- package/src/AdaptableOptions/FilterOptions.d.ts +6 -1
- package/src/AdaptableOptions/GeneralOptions.d.ts +22 -23
- package/src/AdaptableOptions/{MasterDetailAgGridPluginOptions.d.ts → MasterDetailPluginOptions.d.ts} +2 -4
- package/src/{Api/DataSourceApi.js → AdaptableOptions/MasterDetailPluginOptions.js} +0 -0
- package/src/AdaptableOptions/SettingsPanelOptions.d.ts +3 -6
- package/src/AdaptableOptions/ToolPanelOptions.d.ts +2 -49
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +75 -62
- package/src/Api/AdaptableApi.d.ts +6 -3
- package/src/Api/ColumnApi.d.ts +2 -2
- package/src/Api/ConditionalStyleApi.d.ts +10 -0
- package/src/Api/ConfigApi.d.ts +0 -12
- package/src/Api/DashboardApi.d.ts +6 -19
- package/src/Api/DataSetApi.d.ts +40 -0
- package/src/{PredefinedConfig/DataSourceState.js → Api/DataSetApi.js} +0 -0
- package/src/Api/EventApi.d.ts +15 -1
- package/src/Api/Events/DataSetChanged.d.ts +5 -0
- package/src/{PredefinedConfig/FilterState.js → Api/Events/DataSetChanged.js} +0 -0
- package/src/Api/Events/SearchChanged.d.ts +3 -4
- package/src/Api/FilterApi.d.ts +1 -77
- package/src/Api/GridApi.d.ts +1 -1
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -2
- package/src/Api/Implementation/AdaptableApiImpl.js +3 -3
- package/src/Api/Implementation/AlertApiImpl.js +5 -1
- package/src/Api/Implementation/ApiBase.d.ts +3 -0
- package/src/Api/Implementation/ApiBase.js +6 -0
- package/src/Api/Implementation/ColumnApiImpl.d.ts +2 -2
- package/src/Api/Implementation/ColumnApiImpl.js +2 -2
- package/src/Api/Implementation/ConditionalStyleApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ConditionalStyleApiImpl.js +8 -0
- package/src/Api/Implementation/ConfigApiImpl.d.ts +0 -4
- package/src/Api/Implementation/ConfigApiImpl.js +2 -24
- package/src/Api/Implementation/DashboardApiImpl.d.ts +3 -6
- package/src/Api/Implementation/DashboardApiImpl.js +5 -29
- package/src/Api/Implementation/DataSetApiImpl.d.ts +12 -0
- package/src/Api/Implementation/DataSetApiImpl.js +42 -0
- package/src/Api/Implementation/EventApiImpl.js +1 -0
- package/src/Api/Implementation/FilterApiImpl.d.ts +1 -16
- package/src/Api/Implementation/FilterApiImpl.js +5 -159
- package/src/Api/Implementation/FormatColumnApiImpl.js +1 -1
- package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
- package/src/Api/Implementation/GridApiImpl.js +1 -1
- package/src/Api/Implementation/InternalApiImpl.d.ts +3 -2
- package/src/Api/Implementation/InternalApiImpl.js +14 -3
- package/src/Api/Implementation/LayoutApiImpl.d.ts +18 -1
- package/src/Api/Implementation/LayoutApiImpl.js +172 -0
- package/src/Api/Implementation/PredicateApiImpl.js +1 -1
- package/src/Api/Implementation/SmartEditApiImpl.d.ts +3 -1
- package/src/Api/Implementation/SmartEditApiImpl.js +6 -0
- package/src/Api/Implementation/TeamSharingApiImpl.d.ts +5 -3
- package/src/Api/Implementation/TeamSharingApiImpl.js +28 -10
- package/src/Api/Implementation/UserInterfaceApiImpl.d.ts +1 -1
- package/src/Api/Implementation/UserInterfaceApiImpl.js +4 -4
- package/src/Api/InternalApi.d.ts +3 -2
- package/src/Api/LayoutApi.d.ts +88 -1
- package/src/Api/SmartEditApi.d.ts +8 -2
- package/src/Api/TeamSharingApi.d.ts +18 -5
- package/src/Api/UserInterfaceApi.d.ts +4 -4
- package/src/PredefinedConfig/AdaptableState.d.ts +0 -4
- package/src/PredefinedConfig/Common/AdaptableButton.d.ts +3 -3
- package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +5 -1
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +18 -1
- package/src/PredefinedConfig/{FilterState.d.ts → Common/ColumnFilter.d.ts} +2 -33
- package/src/PredefinedConfig/Common/ColumnFilter.js +2 -0
- package/src/PredefinedConfig/Common/Enums.d.ts +2 -2
- package/src/PredefinedConfig/Common/Enums.js +1 -1
- package/src/PredefinedConfig/Common/Types.d.ts +6 -5
- package/src/PredefinedConfig/Common/Types.js +2 -3
- package/src/PredefinedConfig/LayoutState.d.ts +5 -0
- package/src/PredefinedConfig/PredefinedConfig.d.ts +0 -10
- package/src/PredefinedConfig/StatusBarState.d.ts +1 -2
- package/src/PredefinedConfig/SystemState.d.ts +3 -0
- package/src/Redux/ActionsReducers/LayoutRedux.d.ts +47 -0
- package/src/Redux/ActionsReducers/LayoutRedux.js +135 -1
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +22 -0
- package/src/Redux/ActionsReducers/SystemRedux.js +39 -1
- package/src/Redux/Store/AdaptableStore.js +37 -39
- package/src/Strategy/AlertModule.d.ts +11 -0
- package/src/Strategy/AlertModule.js +14 -0
- package/src/Strategy/CellSummaryModule.d.ts +3 -0
- package/src/Strategy/CellSummaryModule.js +28 -14
- package/src/Strategy/DataSetModule.d.ts +25 -0
- package/src/Strategy/DataSetModule.js +65 -0
- package/src/Strategy/ExportModule.js +6 -1
- package/src/Strategy/FilterModule.d.ts +7 -11
- package/src/Strategy/FilterModule.js +24 -15
- package/src/Strategy/FlashingCellModule.d.ts +1 -1
- package/src/Strategy/FlashingCellModule.js +2 -2
- package/src/Strategy/Interface/IModule.d.ts +3 -1
- package/src/Strategy/LayoutModule.js +24 -2
- package/src/Strategy/SmartEditModule.js +1 -1
- package/src/Strategy/StatusBarModule.js +1 -3
- package/src/Strategy/TeamSharingModule.js +1 -1
- package/src/Strategy/ToolPanelModule.js +1 -4
- package/src/Utilities/Constants/GeneralConstants.d.ts +6 -2
- package/src/Utilities/Constants/GeneralConstants.js +6 -2
- package/src/Utilities/Constants/ModuleConstants.d.ts +1 -1
- package/src/Utilities/Constants/ModuleConstants.js +2 -2
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +15 -15
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -1
- package/src/Utilities/Helpers/AdaptableHelper.js +3 -1
- package/src/Utilities/ObjectFactory.d.ts +3 -6
- package/src/Utilities/ObjectFactory.js +3 -7
- package/src/Utilities/Services/EntitlementService.js +7 -1
- package/src/Utilities/Services/ModuleService.js +1 -1
- package/src/Utilities/Services/ReportService.js +2 -3
- package/src/Utilities/Services/TeamSharingService.js +4 -4
- package/src/View/AdaptablePopover/index.d.ts +1 -0
- package/src/View/AdaptablePopover/index.js +5 -6
- package/src/View/AdaptableView.js +1 -1
- package/src/View/AdaptableViewFactory.js +2 -2
- package/src/View/Alert/ActiveAlertsPanel.d.ts +2 -0
- package/src/View/Alert/ActiveAlertsPanel.js +15 -0
- package/src/View/Alert/AlertStatusSubPanel.js +3 -8
- package/src/View/Alert/AlertViewPanel.js +2 -2
- package/src/View/Alert/Wizard/AlertDisplayWizardSection.js +1 -1
- package/src/View/BulkUpdate/BulkUpdateViewPanel.js +1 -1
- package/src/View/CellSummary/CellSummaryDetails.js +2 -2
- package/src/View/CellSummary/CellSummaryPopover.d.ts +2 -4
- package/src/View/CellSummary/CellSummaryPopover.js +3 -6
- package/src/View/CellSummary/CellSummaryPopup.js +8 -0
- package/src/View/CellSummary/CellSummaryStatusBarSubPanelPopover.js +1 -1
- package/src/View/CellSummary/CellSummaryStatusPanel.js +2 -2
- package/src/View/CellSummary/CellSummaryViewPanel.js +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +18 -8
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +1 -2
- package/src/View/Components/ExternalRenderer.d.ts +3 -6
- package/src/View/Components/ExternalRenderer.js +5 -5
- package/src/View/Components/FilterForm/FilterForm.d.ts +1 -1
- package/src/View/Components/FilterForm/FilterForm.js +9 -7
- package/src/View/Components/FilterForm/QuickFilterForm.d.ts +1 -1
- package/src/View/Components/FilterForm/QuickFilterForm.js +6 -5
- package/src/View/Components/FilterForm/getDefaultColumnFilterPredicate.d.ts +1 -1
- package/src/View/Components/Popups/AdaptablePopupAlert.d.ts +0 -2
- package/src/View/Components/Popups/AdaptablePopupAlert.js +13 -11
- package/src/View/Components/Popups/AdaptableToaster.js +29 -9
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +3 -2
- package/src/View/Components/ToolPanel/CustomToolPanelContent.js +11 -9
- package/src/View/Dashboard/CustomDashboardButton.d.ts +11 -0
- package/src/View/Dashboard/CustomDashboardButton.js +47 -0
- package/src/View/Dashboard/CustomToolbarWrapper.d.ts +1 -0
- package/src/View/Dashboard/CustomToolbarWrapper.js +30 -11
- package/src/View/Dashboard/Dashboard.d.ts +1 -0
- package/src/View/Dashboard/Dashboard.js +8 -34
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +19 -36
- package/src/View/DataChangeHistory/buildActionColumnButton.d.ts +3 -0
- package/src/View/DataChangeHistory/buildActionColumnButton.js +70 -0
- package/src/View/DataSet/DataSetSelector.d.ts +7 -0
- package/src/View/DataSet/DataSetSelector.js +18 -0
- package/src/View/DataSet/DataSetStatusPanelPopover.d.ts +2 -0
- package/src/View/DataSet/DataSetStatusPanelPopover.js +19 -0
- package/src/View/DataSet/DataSetViewPanel.d.ts +19 -0
- package/src/View/DataSet/DataSetViewPanel.js +58 -0
- package/src/View/Filter/ActiveFiltersPanel.js +1 -1
- package/src/View/Filter/FilterSummary.d.ts +5 -5
- package/src/View/Filter/FilterSummary.js +6 -5
- package/src/View/Filter/FilterViewPanel.d.ts +4 -4
- package/src/View/Filter/FilterViewPanel.js +11 -14
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +1 -1
- package/src/View/GridInfo/GridInfoPopup.js +1 -1
- package/src/View/Layout/LayoutStatusBarSubPanelPopover.js +6 -24
- package/src/View/Layout/Wizard/LayoutEditor/index.js +1 -1
- package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +1 -0
- package/src/View/SmartEdit/SmartEditPopup.js +2 -2
- package/src/View/SmartEdit/SmartEditViewPanel.js +2 -2
- package/src/View/SpecialColumnSettingsWizardStep.js +1 -1
- package/src/View/StatusBar/AdaptableStatusBar.js +1 -1
- package/src/View/StatusBar/StatusBarPanel.d.ts +1 -0
- package/src/View/StatusBar/StatusBarPanel.js +5 -4
- package/src/View/Theme/ThemeStatusPanelPopover.js +5 -25
- package/src/View/UIHelper.d.ts +4 -4
- package/src/View/UIHelper.js +4 -4
- package/src/agGrid/ActionColumnRenderer.js +3 -2
- package/src/agGrid/Adaptable.d.ts +4 -2
- package/src/agGrid/Adaptable.js +79 -52
- package/src/agGrid/FilterWrapper.js +1 -1
- package/src/agGrid/agGridHelper.d.ts +6 -6
- package/src/agGrid/agGridHelper.js +34 -56
- package/src/agGrid/agGridMenuHelper.js +4 -1
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +3 -2
- package/src/components/Dashboard/DashboardToolbar.js +2 -2
- package/src/components/SelectList.d.ts +10 -0
- package/src/components/SelectList.js +9 -0
- package/src/components/icons/{data-source.d.ts → data-set.d.ts} +0 -0
- package/src/components/icons/{data-source.js → data-set.js} +0 -0
- package/src/components/icons/index.js +2 -2
- package/src/metamodel/adaptable.metamodel.d.ts +162 -77
- package/src/metamodel/adaptable.metamodel.js +422 -375
- package/src/types.d.ts +15 -12
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/AdaptableOptions/FormatColumnOptions.d.ts +0 -10
- package/src/Api/DataSourceApi.d.ts +0 -58
- package/src/Api/Implementation/DataSourceApiImpl.d.ts +0 -15
- package/src/Api/Implementation/DataSourceApiImpl.js +0 -51
- package/src/PredefinedConfig/DataSourceState.d.ts +0 -34
- package/src/Redux/ActionsReducers/DataSourceRedux.d.ts +0 -42
- package/src/Redux/ActionsReducers/DataSourceRedux.js +0 -76
- package/src/Redux/ActionsReducers/FilterRedux.d.ts +0 -70
- package/src/Redux/ActionsReducers/FilterRedux.js +0 -126
- package/src/Strategy/DataSourceModule.d.ts +0 -20
- package/src/Strategy/DataSourceModule.js +0 -56
- package/src/View/DataSource/DataSourceViewPanel.d.ts +0 -19
- package/src/View/DataSource/DataSourceViewPanel.js +0 -69
- package/src/View/DataSource/Wizard/DataSourceSettingsSummary.d.ts +0 -2
- package/src/View/DataSource/Wizard/DataSourceSettingsSummary.js +0 -17
- package/src/View/DataSource/Wizard/DataSourceSettingsWizard.d.ts +0 -8
- package/src/View/DataSource/Wizard/DataSourceSettingsWizard.js +0 -42
- package/src/View/DataSource/Wizard/DataSourceWizard.d.ts +0 -8
- package/src/View/DataSource/Wizard/DataSourceWizard.js +0 -53
|
@@ -21,6 +21,26 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
+
/*
|
|
25
|
+
// commenting this out as it doesnt make sense we dont know which filters should be applied to which layout
|
|
26
|
+
// for this we will jsut say they need to reapply them
|
|
27
|
+
updateOldConfig() {
|
|
28
|
+
// @ts-ignore ignore reading deprecated state
|
|
29
|
+
const oldColumnFilters = this.api.filterApi.getFilterState().ColumnFilters;
|
|
30
|
+
if (ArrayExtensions.IsNotNullOrEmpty(oldColumnFilters)) {
|
|
31
|
+
ConsoleLogWarning(
|
|
32
|
+
`DEPRECATED: The 'Filter.ColumnFilters' property is deprecated; use 'Layout.ColumnFilters' instead'!`
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
this.api.internalApi.clearColumnFilterState();
|
|
36
|
+
const currentLayout = this.api.layoutApi.getCurrentLayout();
|
|
37
|
+
|
|
38
|
+
if (ArrayExtensions.IsNullOrEmpty(currentLayout.ColumnFilters)) {
|
|
39
|
+
this.api.layoutApi.setColumnFilter(oldColumnFilters);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
*/
|
|
24
44
|
getModuleAdaptableObjects() {
|
|
25
45
|
return this.api.layoutApi.getAllLayout();
|
|
26
46
|
}
|
|
@@ -152,11 +172,13 @@ class LayoutModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
152
172
|
if (columns.length >
|
|
153
173
|
maxColumnsToDisplay + 1 /* +1 is to show tag only beginning with 2, 'other 2' */) {
|
|
154
174
|
const extraColumns = columns.length - maxColumnsToDisplay;
|
|
155
|
-
const firstNColumns = columns
|
|
175
|
+
const firstNColumns = columns
|
|
176
|
+
.slice(0, maxColumnsToDisplay)
|
|
177
|
+
.map((column) => columnIdToFriendlyName(column));
|
|
156
178
|
columns = [...firstNColumns, `and other ${extraColumns}`];
|
|
157
179
|
}
|
|
158
180
|
else {
|
|
159
|
-
columns = columns.map((column) =>
|
|
181
|
+
columns = columns.map((column) => columnIdToFriendlyName(column));
|
|
160
182
|
}
|
|
161
183
|
return {
|
|
162
184
|
items: [
|
|
@@ -128,7 +128,7 @@ class SmartEditModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
128
128
|
currentCell: selectedCell,
|
|
129
129
|
adaptableApi: this.api,
|
|
130
130
|
};
|
|
131
|
-
newValue = smartEditOperation.
|
|
131
|
+
newValue = smartEditOperation.operation(context);
|
|
132
132
|
}
|
|
133
133
|
else {
|
|
134
134
|
switch (smartEditOperation) {
|
|
@@ -30,9 +30,7 @@ class StatusBarModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
30
30
|
this.api.statusBarApi.setStatusPanels(newStatusPanelsState);
|
|
31
31
|
}
|
|
32
32
|
isModuleAvailable() {
|
|
33
|
-
return
|
|
34
|
-
// TODO: replace with this like when we release Status Bar properly
|
|
35
|
-
// return super.isModuleAvailable() && this.api.statusBarApi.getAgGridStatusPanels().length > 0;
|
|
33
|
+
return super.isModuleAvailable() && this.api.statusBarApi.getAgGridStatusPanels().length > 0;
|
|
36
34
|
}
|
|
37
35
|
}
|
|
38
36
|
exports.StatusBarModule = StatusBarModule;
|
|
@@ -49,7 +49,7 @@ class TeamSharingModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
// check if the changed adaptable object is active in TeamSharing
|
|
52
|
-
const activeSharedEntity = this.api.
|
|
52
|
+
const activeSharedEntity = this.api.internalApi.getState().TeamSharing.ActiveSharedEntityMap[changedAdaptableObject.Uuid];
|
|
53
53
|
if (!activeSharedEntity) {
|
|
54
54
|
return;
|
|
55
55
|
}
|
|
@@ -15,10 +15,7 @@ class ToolPanelModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
15
15
|
if (!super.isModuleAvailable()) {
|
|
16
16
|
return false;
|
|
17
17
|
}
|
|
18
|
-
|
|
19
|
-
return (toolPanelOptions &&
|
|
20
|
-
toolPanelOptions.showAdaptableToolPanel &&
|
|
21
|
-
toolPanelOptions.showAdaptableToolPanel == true);
|
|
18
|
+
return this.api.internalApi.getAdaptableInstance().hasAdaptableToolPanel;
|
|
22
19
|
}
|
|
23
20
|
updateOldConfig() {
|
|
24
21
|
const deprecatedToolPanelConfigs = this.api.toolPanelApi.getToolPanelState().VisibleToolPanels;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SummaryOperation } from '../../PredefinedConfig/Common/Enums';
|
|
2
2
|
import { AdaptableTheme } from '../../PredefinedConfig/ThemeState';
|
|
3
3
|
import { AdaptableMessageType } from '../../PredefinedConfig/Common/AdaptableMessageType';
|
|
4
|
+
import { AdaptableColumnType } from '../../PredefinedConfig/Common/Types';
|
|
4
5
|
export declare const AUTOGENERATED_PK_COLUMN: string;
|
|
5
6
|
export declare const MISSING_COLUMN: string;
|
|
6
7
|
export declare const DEFAULT_LAYOUT: string;
|
|
@@ -9,6 +10,10 @@ export declare const DARK_THEME: string;
|
|
|
9
10
|
export declare const USER_NAME: string;
|
|
10
11
|
export declare const ADAPTABLE_ID: string;
|
|
11
12
|
export declare const ADAPTABLE: string;
|
|
13
|
+
export declare const ADAPTABLE_TOOLPANEL_ID: string;
|
|
14
|
+
export declare const ADAPTABLE_TOOLPANEL_COMPONENT: string;
|
|
15
|
+
export declare const AGGRID_TOOLPANEL_FILTERS: string;
|
|
16
|
+
export declare const AGGRID_TOOLPANEL_COLUMNS: string;
|
|
12
17
|
export declare const MENU_PREFIX: string;
|
|
13
18
|
export declare const READ_ONLY_STYLE: string;
|
|
14
19
|
export declare const ALL_COLUMN_VALUES: string;
|
|
@@ -17,7 +22,7 @@ export declare const FILTER_NEVER: 'Always' | 'Never' | 'Throttle';
|
|
|
17
22
|
export declare const FILTER_THROTTLE: 'Always' | 'Never' | 'Throttle';
|
|
18
23
|
export declare const EMPTY_STRING: string;
|
|
19
24
|
export declare const EMPTY_ARRAY: any[];
|
|
20
|
-
export declare const AB_SPECIAL_COLUMN
|
|
25
|
+
export declare const AB_SPECIAL_COLUMN: AdaptableColumnType;
|
|
21
26
|
export declare const HALF_SECOND: number;
|
|
22
27
|
export declare const AG_GRID_GROUPED_COLUMN: string;
|
|
23
28
|
export declare const AG_GRID_PIVOT_COLUMN: string;
|
|
@@ -40,7 +45,6 @@ export declare const ALERT_DEFAULT_SHOW_POPUP: boolean;
|
|
|
40
45
|
*/
|
|
41
46
|
export declare const SUMMARY_OPERATION_STATE_PROPERTY: string;
|
|
42
47
|
export declare const CURRENT_LAYOUT_STATE_PROPERTY: string;
|
|
43
|
-
export declare const CURRENT_DATA_SOURCE_STATE_PROPERTY: string;
|
|
44
48
|
export declare const CURRENT_REPORT_STATE_PROPERTY: string;
|
|
45
49
|
export declare const FLASHING_CELL_DEFAULT_UP_COLOR_STATE_PROPERTY: string;
|
|
46
50
|
export declare const FLASHING_CELL_DEFAULT_DOWN_COLOR_STATE_PROPERTY: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.THEME_STYLE = exports.SELECTED_ROWS_REPORT = exports.SELECTED_CELLS_REPORT = exports.CURRENT_DATA_REPORT = exports.ALL_DATA_REPORT = exports.VISUAL_DATA_REPORT = exports.SYSTEM_THEMES = exports.SMART_EDIT_MATH_OPERATION_STATE_PROPERTY = exports.SMART_EDIT_VALUE_STATE_PROPERTY = exports.QUICK_SEARCH_STYLE_STATE_PROPERTY = exports.QUICK_SEARCH_TEXT_STATE_PROPERTY = exports.CURRENT_THEME_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DURATION_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DOWN_COLOR_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_UP_COLOR_STATE_PROPERTY = exports.CURRENT_REPORT_STATE_PROPERTY = exports.
|
|
3
|
+
exports.THEME_STYLE = exports.SELECTED_ROWS_REPORT = exports.SELECTED_CELLS_REPORT = exports.CURRENT_DATA_REPORT = exports.ALL_DATA_REPORT = exports.VISUAL_DATA_REPORT = exports.SYSTEM_THEMES = exports.SMART_EDIT_MATH_OPERATION_STATE_PROPERTY = exports.SMART_EDIT_VALUE_STATE_PROPERTY = exports.QUICK_SEARCH_STYLE_STATE_PROPERTY = exports.QUICK_SEARCH_TEXT_STATE_PROPERTY = exports.CURRENT_THEME_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DURATION_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_DOWN_COLOR_STATE_PROPERTY = exports.FLASHING_CELL_DEFAULT_UP_COLOR_STATE_PROPERTY = exports.CURRENT_REPORT_STATE_PROPERTY = exports.CURRENT_LAYOUT_STATE_PROPERTY = exports.SUMMARY_OPERATION_STATE_PROPERTY = exports.ALERT_DEFAULT_SHOW_POPUP = exports.ALERT_DEFAULT_MESSAGE_TYPE = exports.PLUS_MINUS_DEFAULT_NUDGE_VALUE = exports.DEFAULT_LIVE_REPORT_THROTTLE_TIME = exports.THEME_DEFAULT_CURRENT_THEME = exports.SYSTEM_DEFAULT_SYSTEM_STATUS_TYPE = exports.CELL_SUMMARY_DEFAULT_OPERATION = exports.QUICK_SEARCH_DEBOUNCE_TIME = exports.QUICK_SEARCH_DEFAULT_FORE_COLOR = exports.QUICK_SEARCH_DEFAULT_BACK_COLOR = exports.SYSTEM_STATUS_DEFAULT_MAX_MESSAGES_IN_STORE = exports.AG_GRID_PIVOT_COLUMN = exports.AG_GRID_GROUPED_COLUMN = exports.HALF_SECOND = exports.AB_SPECIAL_COLUMN = exports.EMPTY_ARRAY = exports.EMPTY_STRING = exports.FILTER_THROTTLE = exports.FILTER_NEVER = exports.FILTER_ALWAYS = exports.ALL_COLUMN_VALUES = exports.READ_ONLY_STYLE = exports.MENU_PREFIX = exports.AGGRID_TOOLPANEL_COLUMNS = exports.AGGRID_TOOLPANEL_FILTERS = exports.ADAPTABLE_TOOLPANEL_COMPONENT = exports.ADAPTABLE_TOOLPANEL_ID = exports.ADAPTABLE = exports.ADAPTABLE_ID = exports.USER_NAME = exports.DARK_THEME = exports.LIGHT_THEME = exports.DEFAULT_LAYOUT = exports.MISSING_COLUMN = exports.AUTOGENERATED_PK_COLUMN = void 0;
|
|
4
4
|
const Enums_1 = require("../../PredefinedConfig/Common/Enums");
|
|
5
5
|
const UIHelper_1 = require("../../View/UIHelper");
|
|
6
6
|
exports.AUTOGENERATED_PK_COLUMN = '__ADAPTABLE_PK__';
|
|
@@ -11,6 +11,11 @@ exports.DARK_THEME = 'dark';
|
|
|
11
11
|
exports.USER_NAME = 'anonymous';
|
|
12
12
|
exports.ADAPTABLE_ID = 'adaptable_id';
|
|
13
13
|
exports.ADAPTABLE = 'AdapTable';
|
|
14
|
+
exports.ADAPTABLE_TOOLPANEL_ID = 'adaptable';
|
|
15
|
+
exports.ADAPTABLE_TOOLPANEL_COMPONENT = 'AdaptableToolPanel';
|
|
16
|
+
// from https://www.ag-grid.com/javascript-data-grid/side-bar/#string-configuration
|
|
17
|
+
exports.AGGRID_TOOLPANEL_FILTERS = 'filters';
|
|
18
|
+
exports.AGGRID_TOOLPANEL_COLUMNS = 'columns';
|
|
14
19
|
exports.MENU_PREFIX = 'ab_';
|
|
15
20
|
exports.READ_ONLY_STYLE = 'ab_readonly';
|
|
16
21
|
exports.ALL_COLUMN_VALUES = 'ALL_COLUMN_VALUES';
|
|
@@ -54,7 +59,6 @@ exports.ALERT_DEFAULT_SHOW_POPUP = true;
|
|
|
54
59
|
*/
|
|
55
60
|
exports.SUMMARY_OPERATION_STATE_PROPERTY = 'SummaryOperation';
|
|
56
61
|
exports.CURRENT_LAYOUT_STATE_PROPERTY = 'CurrentLayout';
|
|
57
|
-
exports.CURRENT_DATA_SOURCE_STATE_PROPERTY = 'CurrentDataSource';
|
|
58
62
|
exports.CURRENT_REPORT_STATE_PROPERTY = 'CurrentReport';
|
|
59
63
|
exports.FLASHING_CELL_DEFAULT_UP_COLOR_STATE_PROPERTY = 'DefaultUpColor';
|
|
60
64
|
exports.FLASHING_CELL_DEFAULT_DOWN_COLOR_STATE_PROPERTY = 'DefautDownColor';
|
|
@@ -9,7 +9,7 @@ export declare const ConditionalStyleModuleId: ModuleConstants;
|
|
|
9
9
|
export declare const CustomSortModuleId: ModuleConstants;
|
|
10
10
|
export declare const DashboardModuleId: ModuleConstants;
|
|
11
11
|
export declare const DataChangeHistoryModuleId: ModuleConstants;
|
|
12
|
-
export declare const
|
|
12
|
+
export declare const DataSetModuleId: ModuleConstants;
|
|
13
13
|
export declare const ExportModuleId: ModuleConstants;
|
|
14
14
|
export declare const FilterModuleId: ModuleConstants;
|
|
15
15
|
export declare const FormatColumnModuleId: ModuleConstants;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StatusBarModuleId = exports.SettingsPanelModuleId = exports.ToolPanelModuleId = exports.ThemeModuleId = exports.TeamSharingModuleId = exports.SystemStatusModuleId = exports.StateManagementModuleId = exports.SmartEditModuleId = exports.ShortcutModuleId = exports.ScheduleModuleId = exports.QuickSearchModuleId = exports.QueryModuleId = exports.PlusMinusModuleId = exports.OpenFinModuleId = exports.LayoutModuleId = exports.IPushPullModuleId = exports.GridInfoModuleId = exports.Glue42ModuleId = exports.FreeTextColumnModuleId = exports.FormatColumnModuleId = exports.FilterModuleId = exports.ExportModuleId = exports.
|
|
3
|
+
exports.StatusBarModuleId = exports.SettingsPanelModuleId = exports.ToolPanelModuleId = exports.ThemeModuleId = exports.TeamSharingModuleId = exports.SystemStatusModuleId = exports.StateManagementModuleId = exports.SmartEditModuleId = exports.ShortcutModuleId = exports.ScheduleModuleId = exports.QuickSearchModuleId = exports.QueryModuleId = exports.PlusMinusModuleId = exports.OpenFinModuleId = exports.LayoutModuleId = exports.IPushPullModuleId = exports.GridInfoModuleId = exports.Glue42ModuleId = exports.FreeTextColumnModuleId = exports.FormatColumnModuleId = exports.FilterModuleId = exports.ExportModuleId = exports.DataSetModuleId = exports.DataChangeHistoryModuleId = exports.DashboardModuleId = exports.CustomSortModuleId = exports.ConditionalStyleModuleId = exports.ChartingModuleId = exports.CellSummaryModuleId = exports.CalculatedColumnModuleId = exports.BulkUpdateModuleId = exports.FlashingCellModuleId = exports.AlertModuleId = void 0;
|
|
4
4
|
exports.AlertModuleId = 'Alert';
|
|
5
5
|
exports.FlashingCellModuleId = 'FlashingCell';
|
|
6
6
|
exports.BulkUpdateModuleId = 'BulkUpdate';
|
|
@@ -11,7 +11,7 @@ exports.ConditionalStyleModuleId = 'ConditionalStyle';
|
|
|
11
11
|
exports.CustomSortModuleId = 'CustomSort';
|
|
12
12
|
exports.DashboardModuleId = 'Dashboard';
|
|
13
13
|
exports.DataChangeHistoryModuleId = 'DataChangeHistory';
|
|
14
|
-
exports.
|
|
14
|
+
exports.DataSetModuleId = 'DataSet';
|
|
15
15
|
exports.ExportModuleId = 'Export';
|
|
16
16
|
exports.FilterModuleId = 'Filter';
|
|
17
17
|
exports.FormatColumnModuleId = 'FormatColumn';
|
|
@@ -58,6 +58,7 @@ exports.DefaultAdaptableOptions = {
|
|
|
58
58
|
adaptableQLOptions: {
|
|
59
59
|
caseSensitiveTextComparisons: false,
|
|
60
60
|
externallyEvaluatedModules: [],
|
|
61
|
+
customPredicateDefs: [],
|
|
61
62
|
expressionOptions: {
|
|
62
63
|
defaultBooleanFunctions: booleanExpressionFunctions_1.booleanExpressionFunctions,
|
|
63
64
|
defaultScalarFunctions: scalarExpressionFunctions_1.scalarExpressionFunctions,
|
|
@@ -78,6 +79,12 @@ exports.DefaultAdaptableOptions = {
|
|
|
78
79
|
systemStatusContainer: undefined,
|
|
79
80
|
alertContainer: undefined,
|
|
80
81
|
},
|
|
82
|
+
columnOptions: {
|
|
83
|
+
columnTypes: GeneralConstants_1.EMPTY_ARRAY,
|
|
84
|
+
showMissingColumnsWarning: true,
|
|
85
|
+
autoOrderGroupedColumns: true,
|
|
86
|
+
hideColumnWhenGrouped: false,
|
|
87
|
+
},
|
|
81
88
|
dashboardOptions: {
|
|
82
89
|
canFloat: true,
|
|
83
90
|
showQuickSearchInHeader: true,
|
|
@@ -124,10 +131,8 @@ exports.DefaultAdaptableOptions = {
|
|
|
124
131
|
generalOptions: {
|
|
125
132
|
hideEmptyGroupRows: false,
|
|
126
133
|
showMissingPrimaryKeyAlert: false,
|
|
127
|
-
|
|
134
|
+
dataSets: GeneralConstants_1.EMPTY_ARRAY,
|
|
128
135
|
showGroupingTotalsAsHeader: false,
|
|
129
|
-
hideColumnWhenGrouped: false,
|
|
130
|
-
autoOrderGroupedColumns: true,
|
|
131
136
|
alternativeModuleNames: undefined,
|
|
132
137
|
currentCalendar: 'United Kingdom',
|
|
133
138
|
cellSummaryOperations: undefined,
|
|
@@ -185,6 +190,7 @@ exports.DefaultAdaptableOptions = {
|
|
|
185
190
|
enableFilterOnSpecialColumns: true,
|
|
186
191
|
maxFilterValuesToDisplay: 2000,
|
|
187
192
|
systemFilters: AdaptablePredicate_1.SystemFilterPredicateIds,
|
|
193
|
+
showQuickFilter: true,
|
|
188
194
|
},
|
|
189
195
|
searchOptions: {
|
|
190
196
|
excludeColumnFromQuickSearch: undefined,
|
|
@@ -217,37 +223,31 @@ exports.DefaultAdaptableOptions = {
|
|
|
217
223
|
showOutsideDays: true,
|
|
218
224
|
datepickerButtons: ['close', 'today'],
|
|
219
225
|
},
|
|
226
|
+
actionOptions: {
|
|
227
|
+
actionColumns: undefined,
|
|
228
|
+
actionRowButtons: undefined,
|
|
229
|
+
actionRowButtonsPosition: 'pinnedLeft',
|
|
230
|
+
},
|
|
220
231
|
colorPalette: UIHelper_1.default.getDefaultColors(),
|
|
221
232
|
editableCellStyle: undefined,
|
|
222
233
|
readOnlyCellStyle: undefined,
|
|
223
234
|
styleClassNames: GeneralConstants_1.EMPTY_ARRAY,
|
|
224
|
-
columnTypes: GeneralConstants_1.EMPTY_ARRAY,
|
|
225
235
|
permittedValues: undefined,
|
|
226
236
|
editLookUpItems: undefined,
|
|
227
|
-
|
|
237
|
+
customDisplayFormatters: undefined,
|
|
228
238
|
showDocumentationLinks: true,
|
|
229
239
|
gridInfoSections: ['GridSummary', 'AdaptableOptions', 'ColumnInfo'],
|
|
230
240
|
showAdapTableVersion: true,
|
|
231
|
-
rowActionButtons: undefined,
|
|
232
|
-
rowActionButtonsPosition: 'pinnedLeft',
|
|
233
241
|
},
|
|
234
242
|
toolPanelOptions: {
|
|
235
|
-
showAdaptableToolPanel: true,
|
|
236
|
-
adaptableToolPanelTitle: GeneralConstants.ADAPTABLE,
|
|
237
243
|
showToolPanelsDropdown: true,
|
|
238
244
|
customButtons: undefined,
|
|
239
245
|
customToolPanels: undefined,
|
|
240
|
-
iconKey: 'menu',
|
|
241
|
-
width: UIHelper_1.default.getAdaptableToolPanelWidth(),
|
|
242
|
-
minWidth: UIHelper_1.default.getAdaptableToolPanelWidth(),
|
|
243
|
-
maxWidth: undefined,
|
|
244
|
-
toolPanelOrder: ['filters', 'columns', 'adaptable'],
|
|
245
246
|
},
|
|
246
247
|
dataChangeHistoryOptions: {
|
|
247
248
|
activeByDefault: false,
|
|
248
249
|
showDataChange: undefined,
|
|
249
250
|
},
|
|
250
|
-
customPredicateDefs: [],
|
|
251
251
|
settingsPanelOptions: {
|
|
252
252
|
popupType: 'window',
|
|
253
253
|
title: 'Settings Panel',
|
|
@@ -12,6 +12,7 @@ function assignAdaptableOptions(adaptableOptions) {
|
|
|
12
12
|
const returnedAdaptableOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions, adaptableOptions);
|
|
13
13
|
returnedAdaptableOptions.adaptableStateKey = (_a = returnedAdaptableOptions.adaptableStateKey) !== null && _a !== void 0 ? _a : returnedAdaptableOptions.adaptableId;
|
|
14
14
|
returnedAdaptableOptions.adaptableQLOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.adaptableQLOptions, adaptableOptions.adaptableQLOptions);
|
|
15
|
+
returnedAdaptableOptions.columnOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.columnOptions, adaptableOptions.columnOptions);
|
|
15
16
|
returnedAdaptableOptions.adaptableQLOptions.expressionOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.adaptableQLOptions.expressionOptions, returnedAdaptableOptions.adaptableQLOptions.expressionOptions);
|
|
16
17
|
returnedAdaptableOptions.layoutOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.layoutOptions, adaptableOptions.layoutOptions);
|
|
17
18
|
returnedAdaptableOptions.notificationsOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.notificationsOptions, adaptableOptions.notificationsOptions);
|
|
@@ -26,6 +27,7 @@ function assignAdaptableOptions(adaptableOptions) {
|
|
|
26
27
|
returnedAdaptableOptions.searchOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.searchOptions, adaptableOptions.searchOptions);
|
|
27
28
|
returnedAdaptableOptions.filterOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.filterOptions, adaptableOptions.filterOptions);
|
|
28
29
|
returnedAdaptableOptions.userInterfaceOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.userInterfaceOptions, adaptableOptions.userInterfaceOptions);
|
|
30
|
+
returnedAdaptableOptions.userInterfaceOptions.actionOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.userInterfaceOptions.actionOptions, returnedAdaptableOptions.userInterfaceOptions.actionOptions);
|
|
29
31
|
returnedAdaptableOptions.userInterfaceOptions.dateInputOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.userInterfaceOptions.dateInputOptions, returnedAdaptableOptions.userInterfaceOptions.dateInputOptions);
|
|
30
32
|
returnedAdaptableOptions.menuOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.menuOptions, adaptableOptions.menuOptions);
|
|
31
33
|
returnedAdaptableOptions.stateOptions = Object.assign({}, DefaultAdaptableOptions_1.DefaultAdaptableOptions.stateOptions, adaptableOptions.stateOptions);
|
|
@@ -67,7 +69,7 @@ function checkValidPrimaryKey(adaptable) {
|
|
|
67
69
|
adaptable.api.alertApi.showAlertError('No Primary Key', errorMessage);
|
|
68
70
|
}
|
|
69
71
|
else {
|
|
70
|
-
if (adaptable.adaptableOptions.
|
|
72
|
+
if (adaptable.adaptableOptions.columnOptions.showMissingColumnsWarning == true) {
|
|
71
73
|
LoggingHelper_1.ConsoleLogError(errorMessage);
|
|
72
74
|
}
|
|
73
75
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ScheduleType } from '../PredefinedConfig/Common/Enums';
|
|
2
2
|
import { CustomSort } from '../PredefinedConfig/CustomSortState';
|
|
3
|
-
import { DataSource } from '../PredefinedConfig/DataSourceState';
|
|
4
3
|
import { CalculatedColumn } from '../PredefinedConfig/CalculatedColumnState';
|
|
5
4
|
import { PlusMinusNudge } from '../PredefinedConfig/PlusMinusState';
|
|
6
5
|
import { AlertDefinition, AlertProperties } from '../PredefinedConfig/AlertState';
|
|
@@ -19,17 +18,15 @@ import { IPushPullReport } from '../PredefinedConfig/SystemState';
|
|
|
19
18
|
import { IPushPullSchedule } from '../PredefinedConfig/IPushPullState';
|
|
20
19
|
import { OpenFinSchedule, OpenFinReport } from '../PredefinedConfig/OpenFinState';
|
|
21
20
|
import { NamedQuery } from '../PredefinedConfig/QueryState';
|
|
22
|
-
import { ColumnFilter, SystemFilterPredicateId } from '../PredefinedConfig/FilterState';
|
|
23
21
|
import { ReminderSchedule } from '../PredefinedConfig/ScheduleState';
|
|
24
22
|
import { AdaptableCellChangedAlert, AdaptableGenericAlert, AdaptableRowChangedAlert } from '../PredefinedConfig/Common/AdaptableAlert';
|
|
25
23
|
import { AdaptableMessageType } from '../PredefinedConfig/Common/AdaptableMessageType';
|
|
26
24
|
import { SystemStatusMessageInfo } from '../PredefinedConfig/Common/SystemStatusMessageInfo';
|
|
27
25
|
import { NotificationsOptions } from '../AdaptableOptions/NotificationsOptions';
|
|
28
26
|
import { CellSummmary } from '../PredefinedConfig/Common/CellSummary';
|
|
29
|
-
import { FlashingCellDefinition, GridDataChangedInfo } from '../types';
|
|
27
|
+
import { ColumnFilter, FlashingCellDefinition, GridDataChangedInfo, SystemFilterPredicateId } from '../types';
|
|
30
28
|
import { ToastOptions } from 'react-toastify';
|
|
31
29
|
export declare function CreateEmptyCustomSort(): CustomSort;
|
|
32
|
-
export declare function CreateEmptyDataSource(): DataSource;
|
|
33
30
|
export declare function CreateEmptyCalculatedColumn(isFilterable: boolean): CalculatedColumn;
|
|
34
31
|
export declare function CreateEmptyNamedQuery(expression?: string): NamedQuery;
|
|
35
32
|
export declare function CreateEmptyPlusMinusNudge(): PlusMinusNudge;
|
|
@@ -64,12 +61,12 @@ export declare function CreateEmptyStyle(): AdaptableStyle;
|
|
|
64
61
|
export declare function CreateSystemStatusMessageInfo(message: string, type: AdaptableMessageType, furtherInfo?: string): SystemStatusMessageInfo;
|
|
65
62
|
export declare function CreateEmptyCellSummmary(): CellSummmary;
|
|
66
63
|
export declare function CreateColumnFilter(ColumnId: string, PredicateId: SystemFilterPredicateId, Inputs: any[]): ColumnFilter;
|
|
67
|
-
export declare function CreateToastOptions(notificationsOptions: NotificationsOptions, { onClose }
|
|
64
|
+
export declare function CreateToastOptions(notificationsOptions: NotificationsOptions, { onClose, containerId }: {
|
|
68
65
|
onClose?: VoidFunction;
|
|
66
|
+
containerId: string;
|
|
69
67
|
}): ToastOptions;
|
|
70
68
|
export declare const ObjectFactory: {
|
|
71
69
|
CreateEmptyCustomSort: typeof CreateEmptyCustomSort;
|
|
72
|
-
CreateEmptyDataSource: typeof CreateEmptyDataSource;
|
|
73
70
|
CreateEmptyCalculatedColumn: typeof CreateEmptyCalculatedColumn;
|
|
74
71
|
CreateEmptyNamedQuery: typeof CreateEmptyNamedQuery;
|
|
75
72
|
CreateEmptyPlusMinusNudge: typeof CreateEmptyPlusMinusNudge;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ObjectFactory = exports.CreateToastOptions = exports.CreateColumnFilter = exports.CreateEmptyCellSummmary = exports.CreateSystemStatusMessageInfo = exports.CreateEmptyStyle = exports.CreateEmptyLayout = exports.CreateEmptyFreeTextColumn = exports.CreateEmptyFormatColumn = exports.CreateEmptyConditionalStyle = exports.CreateEmptyShortcut = exports.CreateEmptySchedule = exports.CreateReportSchedule = exports.CreateGlue42Schedule = exports.CreateIPushPullSchedule = exports.CreateEmptyOpenFinSchedule = exports.CreateEmptyGlue42Schedule = exports.CreateEmptyIPushPullSchedule = exports.CreateEmptyOpenFinReport = exports.CreateEmptyGlue42Report = exports.CreateEmptyIPushPullReport = exports.CreateEmptyReportSchedule = exports.CreateEmptyReminderSchedule = exports.CreateEmptyBaseSchedule = exports.CreateEmptyReport = exports.CreateInternalAlertDefinitionForMessages = exports.CreateEmptyFlashingCellDefinition = exports.CreateEmptyAlertDefinition = exports.CreateRowChangedAlert = exports.CreateCellChangedAlert = exports.CreateGenericAlert = exports.CreateEmptyPlusMinusNudge = exports.CreateEmptyNamedQuery = exports.CreateEmptyCalculatedColumn = exports.
|
|
3
|
+
exports.ObjectFactory = exports.CreateToastOptions = exports.CreateColumnFilter = exports.CreateEmptyCellSummmary = exports.CreateSystemStatusMessageInfo = exports.CreateEmptyStyle = exports.CreateEmptyLayout = exports.CreateEmptyFreeTextColumn = exports.CreateEmptyFormatColumn = exports.CreateEmptyConditionalStyle = exports.CreateEmptyShortcut = exports.CreateEmptySchedule = exports.CreateReportSchedule = exports.CreateGlue42Schedule = exports.CreateIPushPullSchedule = exports.CreateEmptyOpenFinSchedule = exports.CreateEmptyGlue42Schedule = exports.CreateEmptyIPushPullSchedule = exports.CreateEmptyOpenFinReport = exports.CreateEmptyGlue42Report = exports.CreateEmptyIPushPullReport = exports.CreateEmptyReportSchedule = exports.CreateEmptyReminderSchedule = exports.CreateEmptyBaseSchedule = exports.CreateEmptyReport = exports.CreateInternalAlertDefinitionForMessages = exports.CreateEmptyFlashingCellDefinition = exports.CreateEmptyAlertDefinition = exports.CreateRowChangedAlert = exports.CreateCellChangedAlert = exports.CreateGenericAlert = exports.CreateEmptyPlusMinusNudge = exports.CreateEmptyNamedQuery = exports.CreateEmptyCalculatedColumn = exports.CreateEmptyCustomSort = void 0;
|
|
4
4
|
const Enums_1 = require("../PredefinedConfig/Common/Enums");
|
|
5
5
|
const GeneralConstants_1 = require("./Constants/GeneralConstants");
|
|
6
6
|
const Uuid_1 = require("../PredefinedConfig/Uuid");
|
|
@@ -9,10 +9,6 @@ function CreateEmptyCustomSort() {
|
|
|
9
9
|
return { Uuid: Uuid_1.createUuid(), ColumnId: GeneralConstants_1.EMPTY_STRING, SortedValues: [] };
|
|
10
10
|
}
|
|
11
11
|
exports.CreateEmptyCustomSort = CreateEmptyCustomSort;
|
|
12
|
-
function CreateEmptyDataSource() {
|
|
13
|
-
return { Uuid: Uuid_1.createUuid(), Name: GeneralConstants_1.EMPTY_STRING, Description: GeneralConstants_1.EMPTY_STRING };
|
|
14
|
-
}
|
|
15
|
-
exports.CreateEmptyDataSource = CreateEmptyDataSource;
|
|
16
12
|
function CreateEmptyCalculatedColumn(isFilterable) {
|
|
17
13
|
return {
|
|
18
14
|
Uuid: Uuid_1.createUuid(),
|
|
@@ -359,7 +355,7 @@ function CreateColumnFilter(ColumnId, PredicateId, Inputs) {
|
|
|
359
355
|
};
|
|
360
356
|
}
|
|
361
357
|
exports.CreateColumnFilter = CreateColumnFilter;
|
|
362
|
-
function CreateToastOptions(notificationsOptions, { onClose
|
|
358
|
+
function CreateToastOptions(notificationsOptions, { onClose, containerId }) {
|
|
363
359
|
const adaptableToastPosition = notificationsOptions.position;
|
|
364
360
|
const position = getToastPosition(adaptableToastPosition);
|
|
365
361
|
const duration = notificationsOptions.duration;
|
|
@@ -369,6 +365,7 @@ function CreateToastOptions(notificationsOptions, { onClose } = {}) {
|
|
|
369
365
|
const isDraggable = notificationsOptions.isDraggable;
|
|
370
366
|
const transition = getToastTransition(notificationsOptions.transition);
|
|
371
367
|
const toastProps = {
|
|
368
|
+
containerId,
|
|
372
369
|
position,
|
|
373
370
|
autoClose: duration == 'always' ? false : duration,
|
|
374
371
|
hideProgressBar: !showProgressBar,
|
|
@@ -412,7 +409,6 @@ function getToastTransition(transition) {
|
|
|
412
409
|
}
|
|
413
410
|
exports.ObjectFactory = {
|
|
414
411
|
CreateEmptyCustomSort,
|
|
415
|
-
CreateEmptyDataSource,
|
|
416
412
|
CreateEmptyCalculatedColumn,
|
|
417
413
|
CreateEmptyNamedQuery,
|
|
418
414
|
CreateEmptyPlusMinusNudge,
|
|
@@ -33,7 +33,13 @@ class EntitlementService {
|
|
|
33
33
|
const moduleEntitlements = entitlementOptions.moduleEntitlements;
|
|
34
34
|
if (moduleEntitlements) {
|
|
35
35
|
if (typeof moduleEntitlements === 'function') {
|
|
36
|
-
const
|
|
36
|
+
const entitlementContext = {
|
|
37
|
+
adaptableModule,
|
|
38
|
+
userName: adaptableOptions.userName,
|
|
39
|
+
adaptableId: adaptableOptions.adaptableId,
|
|
40
|
+
defaultAccessLevel,
|
|
41
|
+
};
|
|
42
|
+
const dynamicModuleEntitlement = moduleEntitlements(entitlementContext);
|
|
37
43
|
return dynamicModuleEntitlement !== null && dynamicModuleEntitlement !== void 0 ? dynamicModuleEntitlement : defaultAccessLevel;
|
|
38
44
|
}
|
|
39
45
|
else {
|
|
@@ -93,7 +93,7 @@ class ModuleService {
|
|
|
93
93
|
return learnUrl + 'handbook-sorting';
|
|
94
94
|
case 'Dashboard':
|
|
95
95
|
return learnUrl + 'ui-dashboard';
|
|
96
|
-
case '
|
|
96
|
+
case 'DataSet':
|
|
97
97
|
return learnUrl + 'handbook-data-sources';
|
|
98
98
|
case 'DataChangeHistory':
|
|
99
99
|
return learnUrl + 'handbook-monitoring#data-change-history';
|
|
@@ -341,18 +341,17 @@ class ReportService {
|
|
|
341
341
|
: // type === formattedValue
|
|
342
342
|
this.adaptableApi.gridApi.getFormattedValueFromRawValue(columnId, cellRawValue);
|
|
343
343
|
}
|
|
344
|
-
computeCellExportValueFormat(
|
|
344
|
+
computeCellExportValueFormat(columnDataType) {
|
|
345
345
|
const exportOptions = this.adaptableApi.internalApi.getAdaptableOptions().exportOptions;
|
|
346
346
|
if (exportOptions.exportFormatType === 'rawValue' ||
|
|
347
347
|
exportOptions.exportFormatType === 'formattedValue') {
|
|
348
348
|
return exportOptions.exportFormatType;
|
|
349
349
|
}
|
|
350
350
|
// format is customized based on column data type
|
|
351
|
-
switch (
|
|
351
|
+
switch (columnDataType) {
|
|
352
352
|
case 'String':
|
|
353
353
|
return exportOptions.exportFormatType.string;
|
|
354
354
|
case 'Number':
|
|
355
|
-
case 'NumberArray':
|
|
356
355
|
return exportOptions.exportFormatType.number;
|
|
357
356
|
case 'Date':
|
|
358
357
|
return exportOptions.exportFormatType.date;
|
|
@@ -74,7 +74,7 @@ class TeamSharingService {
|
|
|
74
74
|
return importInfo === null || importInfo === void 0 ? void 0 : importInfo.AddAction(Entity);
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
|
-
const existingSharedEntities = this.adaptableApi.
|
|
77
|
+
const existingSharedEntities = this.adaptableApi.internalApi.getLocalTeamSharingEntities();
|
|
78
78
|
const sharedEntityDependencyTree = this.getSharedEntityDependencyTree(importedSharedEntity, existingSharedEntities);
|
|
79
79
|
const importSteps = sharedEntityDependencyTree.map((sharedEntity) => ({
|
|
80
80
|
sharedEntity,
|
|
@@ -84,13 +84,13 @@ class TeamSharingService {
|
|
|
84
84
|
}
|
|
85
85
|
getSharedEntityLocalAndRemoteRevisions(changedAdaptableObjectId, remoteSharedEntities) {
|
|
86
86
|
var _a, _b, _c, _d;
|
|
87
|
-
const localRevision = (_b = (_a = this.adaptableApi.
|
|
87
|
+
const localRevision = (_b = (_a = this.adaptableApi.internalApi.getState().TeamSharing.ActiveSharedEntityMap[changedAdaptableObjectId]) === null || _a === void 0 ? void 0 : _a.Revision) !== null && _b !== void 0 ? _b : -1;
|
|
88
88
|
const remoteRevision = (_d = (_c = remoteSharedEntities.find((sharedEntity) => sharedEntity.Entity.Uuid === changedAdaptableObjectId)) === null || _c === void 0 ? void 0 : _c.Revision) !== null && _d !== void 0 ? _d : -1;
|
|
89
89
|
return [localRevision, remoteRevision];
|
|
90
90
|
}
|
|
91
91
|
getStaleActiveSharedEntities() {
|
|
92
|
-
const sharedEntities = this.adaptableApi.
|
|
93
|
-
const activeEntities = this.adaptableApi.
|
|
92
|
+
const sharedEntities = this.adaptableApi.internalApi.getLocalTeamSharingEntities();
|
|
93
|
+
const activeEntities = this.adaptableApi.internalApi.getState().TeamSharing.ActiveSharedEntityMap;
|
|
94
94
|
const result = {};
|
|
95
95
|
sharedEntities
|
|
96
96
|
.filter((sharedEntity) => sharedEntity.Type === 'Active')
|
|
@@ -12,6 +12,7 @@ export interface AdaptablePopoverProps extends React.ClassAttributes<AdaptablePo
|
|
|
12
12
|
useButton?: boolean;
|
|
13
13
|
tooltipText?: string;
|
|
14
14
|
popoverMinWidth?: number;
|
|
15
|
+
popoverMaxWidth?: number;
|
|
15
16
|
popupPadding?: number;
|
|
16
17
|
}
|
|
17
18
|
export declare class AdaptablePopover extends React.Component<AdaptablePopoverProps, {}> {
|
|
@@ -11,7 +11,7 @@ const OverlayTrigger_1 = tslib_1.__importDefault(require("../../components/Overl
|
|
|
11
11
|
const rebass_1 = require("rebass");
|
|
12
12
|
class AdaptablePopover extends React.Component {
|
|
13
13
|
render() {
|
|
14
|
-
var _a, _b;
|
|
14
|
+
var _a, _b, _c;
|
|
15
15
|
let messageType = this.props.MessageType != null ? this.props.MessageType : 'Info';
|
|
16
16
|
const showIcon = (_a = this.props.showIcon) !== null && _a !== void 0 ? _a : true;
|
|
17
17
|
let useButton = this.props.useButton != null ? this.props.useButton : false;
|
|
@@ -23,11 +23,10 @@ class AdaptablePopover extends React.Component {
|
|
|
23
23
|
margin: '0px',
|
|
24
24
|
padding: '0px',
|
|
25
25
|
minWidth: popoverMinWidth,
|
|
26
|
-
maxWidth: 300,
|
|
26
|
+
maxWidth: (_b = this.props.popoverMaxWidth) !== null && _b !== void 0 ? _b : 300,
|
|
27
27
|
} },
|
|
28
|
-
title ? (React.createElement(rebass_1.Text, { fontSize:
|
|
29
|
-
|
|
30
|
-
React.createElement(rebass_1.Box, { className: "ab-Popover__body", padding: (_b = this.props.popupPadding) !== null && _b !== void 0 ? _b : 2 }, this.props.bodyText.map((textOrHTML, index) => (React.createElement("span", { key: index }, textOrHTML))))));
|
|
28
|
+
title ? (React.createElement(rebass_1.Text, { fontSize: 4, padding: 2 }, title)) : null,
|
|
29
|
+
React.createElement(rebass_1.Box, { className: "ab-Popover__body", padding: (_c = this.props.popupPadding) !== null && _c !== void 0 ? _c : 2 }, this.props.bodyText.map((textOrHTML, index) => (React.createElement("span", { key: index }, textOrHTML))))));
|
|
31
30
|
const icon = 'info'; // - think this is wrong - UIHelper.getGlyphByMessageType(messageType);
|
|
32
31
|
const color = UIHelper_1.UIHelper.getColorByMessageType(messageType);
|
|
33
32
|
const iconStyle = {
|
|
@@ -37,7 +36,7 @@ class AdaptablePopover extends React.Component {
|
|
|
37
36
|
return (React.createElement(rebass_1.Flex, { alignItems: "center", className: this.props.className },
|
|
38
37
|
React.createElement(OverlayTrigger_1.default, { showTriangle: true, render: () => popoverClickRootClose, showEvent: (this.props.showEvent || 'mouseenter'), hideEvent: (this.props.hideEvent || 'mouseleave'), style: {
|
|
39
38
|
overflow: 'visible',
|
|
40
|
-
}, defaultZIndex: 100000 }, useButton ? (React.createElement(ButtonInfo_1.ButtonInfo, { style: iconStyle, onClick: () => null, icon: showIcon && icon, tooltip: this.props.tooltipText }, this.props.children)) : (React.createElement("div", { tabIndex: 0, style: { cursor: 'pointer', display: 'inline-block' } },
|
|
39
|
+
}, defaultZIndex: 100000 }, useButton ? (React.createElement(ButtonInfo_1.ButtonInfo, { style: iconStyle, 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' } },
|
|
41
40
|
this.props.children,
|
|
42
41
|
showIcon && React.createElement(icons_1.Icon, { name: icon }))))));
|
|
43
42
|
}
|
|
@@ -33,7 +33,7 @@ class AdaptableView extends React.Component {
|
|
|
33
33
|
, {
|
|
34
34
|
// we NEEEEED!!!! this containerId, otherwise, toastify will have memory leaks when the adaptable
|
|
35
35
|
// instance is destroyed and re-created many times
|
|
36
|
-
containerId: adaptableOptions.adaptableId, limit: adaptableOptions.notificationsOptions.maxNotifications, closeButton: false, icon: false, theme: "colored" }),
|
|
36
|
+
containerId: adaptableOptions.adaptableId, enableMultiContainer: true, limit: adaptableOptions.notificationsOptions.maxNotifications, closeButton: false, icon: false, theme: "colored" }),
|
|
37
37
|
(watermark === null || watermark === void 0 ? void 0 : watermark.show) && React.createElement(License_1.LicenseWatermark, null, watermark === null || watermark === void 0 ? void 0 : watermark.text),
|
|
38
38
|
React.createElement(WindowPopups_1.WindowPopups, null),
|
|
39
39
|
React.createElement(FormPopups_1.FormPopups, null),
|
|
@@ -26,7 +26,7 @@ const QuickSearchViewPanel_1 = require("./QuickSearch/QuickSearchViewPanel");
|
|
|
26
26
|
const SmartEditViewPanel_1 = require("./SmartEdit/SmartEditViewPanel");
|
|
27
27
|
const SystemStatusViewPanel_1 = require("./SystemStatus/SystemStatusViewPanel");
|
|
28
28
|
const ThemeViewPanel_1 = require("./Theme/ThemeViewPanel");
|
|
29
|
-
const
|
|
29
|
+
const DataSetViewPanel_1 = require("./DataSet/DataSetViewPanel");
|
|
30
30
|
const DataChangeHistoryPopup_1 = require("./DataChangeHistory/DataChangeHistoryPopup");
|
|
31
31
|
const DataChangeHistoryViewPanel_1 = require("./DataChangeHistory/DataChangeHistoryViewPanel");
|
|
32
32
|
const StateManagementViewPanel_1 = require("./StateManagement/StateManagementViewPanel");
|
|
@@ -59,7 +59,7 @@ exports.AdaptableViewPanelFactory = new Map([
|
|
|
59
59
|
[ModuleConstants.SmartEditModuleId, SmartEditViewPanel_1.SmartEditViewPanelControl],
|
|
60
60
|
[ModuleConstants.SystemStatusModuleId, SystemStatusViewPanel_1.SystemStatusViewPanel],
|
|
61
61
|
[ModuleConstants.ThemeModuleId, ThemeViewPanel_1.ThemeViewPanelControl],
|
|
62
|
-
[ModuleConstants.
|
|
62
|
+
[ModuleConstants.DataSetModuleId, DataSetViewPanel_1.DataSetViewPanelControl],
|
|
63
63
|
[ModuleConstants.DataChangeHistoryModuleId, DataChangeHistoryViewPanel_1.DataChangeHistoryViewPanelControl],
|
|
64
64
|
[ModuleConstants.StateManagementModuleId, StateManagementViewPanel_1.StateManagementViewPanel],
|
|
65
65
|
]);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActiveAlertsPanel = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
7
|
+
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
8
|
+
const AdaptableObjectCompactList_1 = require("../Components/AdaptableObjectList/AdaptableObjectCompactList");
|
|
9
|
+
const react_redux_1 = require("react-redux");
|
|
10
|
+
exports.ActiveAlertsPanel = () => {
|
|
11
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
12
|
+
const filterModule = adaptable.ModuleService.getModuleById(ModuleConstants.AlertModuleId);
|
|
13
|
+
const alerts = react_redux_1.useSelector((state) => state.System.AdaptableAlerts);
|
|
14
|
+
return React.createElement(AdaptableObjectCompactList_1.AdaptableObjectCompactList, { abObjects: alerts, module: filterModule });
|
|
15
|
+
};
|
|
@@ -5,16 +5,14 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const react_redux_1 = require("react-redux");
|
|
7
7
|
const AdaptableContext_1 = require("../AdaptableContext");
|
|
8
|
-
const AlertsPanel_1 = require("./AlertsPanel");
|
|
9
8
|
const getAlertButtonStyle_1 = require("./Utilities/getAlertButtonStyle");
|
|
10
9
|
const StatusBarPanel_1 = require("../StatusBar/StatusBarPanel");
|
|
11
|
-
const SystemRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/SystemRedux"));
|
|
12
10
|
const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants"));
|
|
11
|
+
const ActiveAlertsPanel_1 = require("./ActiveAlertsPanel");
|
|
13
12
|
const initialStyle = { color: '', background: '' };
|
|
14
13
|
exports.AlertStatusPanel = () => {
|
|
15
14
|
const adaptable = AdaptableContext_1.useAdaptable();
|
|
16
15
|
const [style, setStyle] = React.useState(initialStyle);
|
|
17
|
-
const dispatch = react_redux_1.useDispatch();
|
|
18
16
|
const module = adaptable.ModuleService.getModuleById(ModuleConstants.AlertModuleId);
|
|
19
17
|
const statusbarHighlightDuration = adaptable.adaptableOptions.alertOptions.statusbarHighlightDuration;
|
|
20
18
|
/**
|
|
@@ -49,9 +47,6 @@ exports.AlertStatusPanel = () => {
|
|
|
49
47
|
setStyle(initialStyle);
|
|
50
48
|
}, statusbarHighlightDuration);
|
|
51
49
|
}, [alerts]);
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
const handleDeleteAllAlerts = React.useCallback((alerts) => dispatch(SystemRedux.SystemAlertDeleteAll(alerts)), []);
|
|
55
|
-
let alertsPanel = (React.createElement(AlertsPanel_1.AlertsPanel, { Alerts: alerts, ShowPanel: true, ShowHeader: false, onClearAlert: handleDeleteAlert, onClearAllAlerts: handleDeleteAllAlerts }));
|
|
56
|
-
return (React.createElement(StatusBarPanel_1.StatusBarPanel, { "data-name": module.moduleInfo.ModuleName, color: style.color, backgroundColor: style.background, onAction: handleAction, icon: module.moduleInfo.Glyph, popover: alerts.length ? alertsPanel : null, content: text }));
|
|
50
|
+
let alertsPanel = React.createElement(ActiveAlertsPanel_1.ActiveAlertsPanel, null);
|
|
51
|
+
return (React.createElement(StatusBarPanel_1.StatusBarPanel, { tooltip: module.moduleInfo.ModuleName, "data-name": module.moduleInfo.ModuleName, color: style.color, backgroundColor: style.background, onAction: handleAction, icon: module.moduleInfo.Glyph, popover: alerts.length ? alertsPanel : null, content: text }));
|
|
57
52
|
};
|
|
@@ -6,10 +6,10 @@ const React = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const react_redux_1 = require("react-redux");
|
|
7
7
|
const SystemRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/SystemRedux"));
|
|
8
8
|
const AdaptablePopover_1 = require("../AdaptablePopover");
|
|
9
|
-
const AlertsPanel_1 = require("./AlertsPanel");
|
|
10
9
|
const rebass_1 = require("rebass");
|
|
11
10
|
const UIHelper_1 = tslib_1.__importDefault(require("../UIHelper"));
|
|
12
11
|
const getAlertButtonStyle_1 = require("./Utilities/getAlertButtonStyle");
|
|
12
|
+
const ActiveAlertsPanel_1 = require("./ActiveAlertsPanel");
|
|
13
13
|
class AlertViewPanelComponent extends React.Component {
|
|
14
14
|
constructor(props) {
|
|
15
15
|
super(props);
|
|
@@ -31,7 +31,7 @@ class AlertViewPanelComponent extends React.Component {
|
|
|
31
31
|
: this.props.AdaptableAlerts.length == 1
|
|
32
32
|
? '1 Alert'
|
|
33
33
|
: this.props.AdaptableAlerts.length + ' Alerts';
|
|
34
|
-
const alertsPanel =
|
|
34
|
+
const alertsPanel = React.createElement(ActiveAlertsPanel_1.ActiveAlertsPanel, null);
|
|
35
35
|
const elementType = this.props.viewType === 'Toolbar' ? 'DashboardToolbar' : 'ToolPanel';
|
|
36
36
|
return (React.createElement(rebass_1.Flex, { alignItems: "stretch", className: `ab-${elementType}__Alert__wrap` },
|
|
37
37
|
React.createElement(rebass_1.Flex, { style: { borderRadius: 'var(--ab__border-radius)' }, className: `ab-${elementType}__Alert__text`, marginRight: 2, padding: 2, color: buttonTextColor, backgroundColor: buttonBackground, fontSize: 'var( --ab-font-size-2)', alignItems: "center" }, collapsedText),
|