@adaptabletools/adaptable 14.0.3 → 14.0.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/base.css +7 -1
- package/base.css.map +1 -1
- package/bundle.cjs.js +170 -169
- package/index.css +76 -62
- package/index.css.map +1 -1
- package/package.json +2 -2
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableOptions/ActionOptions.d.ts +3 -0
- package/src/AdaptableOptions/AdaptablePlugin.d.ts +3 -0
- package/src/AdaptableOptions/AdaptablePlugin.js +3 -0
- package/src/AdaptableOptions/ChartingOptions.d.ts +1 -1
- package/src/AdaptableOptions/DataChangeHistoryOptions.d.ts +26 -26
- package/src/AdaptableOptions/ExportOptions.d.ts +17 -3
- package/src/Api/CalculatedColumnApi.d.ts +9 -0
- package/src/Api/ChartingApi.d.ts +41 -14
- package/src/Api/ColumnApi.d.ts +4 -0
- package/src/Api/DataSetApi.d.ts +2 -2
- package/src/Api/EventApi.d.ts +15 -1
- package/src/Api/Events/ChartStateChangeInfo.d.ts +5 -0
- package/src/Api/Events/ChartStateChangeInfo.js +2 -0
- package/src/Api/ExportApi.d.ts +5 -0
- package/src/Api/Implementation/CalculatedColumnApiImpl.d.ts +2 -0
- package/src/Api/Implementation/CalculatedColumnApiImpl.js +24 -0
- package/src/Api/Implementation/ChartingApiImpl.d.ts +16 -2
- package/src/Api/Implementation/ChartingApiImpl.js +54 -2
- package/src/Api/Implementation/ColumnApiImpl.d.ts +1 -0
- package/src/Api/Implementation/ColumnApiImpl.js +3 -0
- package/src/Api/Implementation/ExportApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ExportApiImpl.js +10 -0
- package/src/Api/Implementation/PredicateApiImpl.d.ts +6 -4
- package/src/Api/Implementation/PredicateApiImpl.js +20 -1
- package/src/Api/Implementation/QueryApiImpl.js +8 -2
- package/src/Api/Internal/AdaptableInternalApi.d.ts +7 -1
- package/src/Api/Internal/AdaptableInternalApi.js +2 -1
- package/src/Api/Internal/AlertInternalApi.js +1 -1
- package/src/Api/Internal/CalculatedColumnInternalApi.d.ts +2 -0
- package/src/Api/Internal/CalculatedColumnInternalApi.js +9 -0
- package/src/Api/Internal/ChartingInternalApi.d.ts +6 -0
- package/src/Api/Internal/ChartingInternalApi.js +24 -0
- package/src/Api/Internal/FormatColumnInternalApi.d.ts +5 -0
- package/src/Api/Internal/FormatColumnInternalApi.js +25 -1
- package/src/Api/PredicateApi.d.ts +17 -1
- package/src/PredefinedConfig/AlertState.d.ts +5 -2
- package/src/PredefinedConfig/Common/AdaptableAlert.d.ts +6 -0
- package/src/PredefinedConfig/Common/AdaptableColumn.d.ts +15 -11
- package/src/PredefinedConfig/Common/AdaptableForm.d.ts +6 -0
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +1 -1
- package/src/PredefinedConfig/Common/AdaptablePredicate.d.ts +6 -0
- package/src/PredefinedConfig/Common/AdaptableQuery.d.ts +15 -0
- package/src/PredefinedConfig/Common/Enums.d.ts +2 -1
- package/src/PredefinedConfig/Common/Enums.js +1 -0
- package/src/PredefinedConfig/Common/FDC3Context.d.ts +3 -0
- package/src/PredefinedConfig/Common/Types.d.ts +21 -6
- package/src/PredefinedConfig/Common/Types.js +1 -3
- package/src/PredefinedConfig/FlashingCellState.d.ts +2 -2
- package/src/PredefinedConfig/FormatColumnState.d.ts +3 -2
- package/src/PredefinedConfig/FreeTextColumnState.d.ts +1 -1
- package/src/PredefinedConfig/PredefinedConfig.d.ts +4 -4
- package/src/PredefinedConfig/ThemeState.d.ts +0 -4
- package/src/Redux/ActionsReducers/PopupRedux.d.ts +2 -0
- package/src/Redux/ActionsReducers/PopupRedux.js +2 -0
- package/src/Redux/ActionsReducers/StatusBarRedux.d.ts +2 -2
- package/src/Redux/ActionsReducers/StatusBarRedux.js +4 -4
- package/src/Redux/Store/AdaptableStore.js +1 -11
- package/src/Strategy/AlertModule.js +7 -3
- package/src/Strategy/ChartingModule.js +5 -3
- package/src/Strategy/ExportModule.d.ts +1 -0
- package/src/Strategy/ExportModule.js +43 -0
- package/src/Strategy/FlashingCellModule.js +1 -1
- package/src/Strategy/FormatColumnModule.js +7 -2
- package/src/Strategy/Interface/IModule.d.ts +1 -1
- package/src/Strategy/LayoutModule.js +8 -1
- package/src/Strategy/StyledColumnModule.js +5 -0
- package/src/Strategy/ThemeModule.js +8 -2
- package/src/Strategy/Utilities/Alert/getAlertPreviewViewItems.js +2 -2
- package/src/Strategy/Utilities/Alert/getAlertTypeViewItems.d.ts +5 -0
- package/src/Strategy/Utilities/Alert/getAlertTypeViewItems.js +13 -0
- package/src/Strategy/Utilities/getObjectTagsViewItems.js +3 -3
- package/src/Utilities/Constants/ModuleConstants.d.ts +0 -3
- package/src/Utilities/Constants/ModuleConstants.js +2 -5
- package/src/Utilities/Defaults/DefaultAdaptableOptions.js +1 -0
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/aggregatedBooleanExpressionFunctions.js +3 -1
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.d.ts +1 -1
- package/src/Utilities/ExpressionFunctions/aggregatedScalarExpressionFunctions.js +64 -3
- package/src/Utilities/Interface/MessagePopups.d.ts +1 -0
- package/src/Utilities/Services/AggregatedScalarLiveValue.js +13 -0
- package/src/Utilities/Services/ChartingService.d.ts +8 -0
- package/src/Utilities/Services/ChartingService.js +15 -0
- package/src/Utilities/Services/ReportService.js +1 -1
- package/src/View/AdaptableViewFactory.js +1 -1
- package/src/View/AdaptableWizardView/AdaptableConfigurationDialog/ConfigurationWizard.js +3 -2
- package/src/View/Alert/Utilities/getAlertType.d.ts +15 -0
- package/src/View/Alert/Utilities/getAlertType.js +58 -0
- package/src/View/Alert/Utilities/getAvailablePredicates.d.ts +3 -0
- package/src/View/Alert/Utilities/getAvailablePredicates.js +19 -0
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.d.ts +37 -0
- package/src/View/Alert/Utilities/getDefaultAlertDefinition.js +32 -0
- package/src/View/Alert/Utilities/mapAlertDefinition.d.ts +2 -0
- package/src/View/Alert/Utilities/mapAlertDefinition.js +38 -0
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.d.ts +4 -2
- package/src/View/Alert/Wizard/AlertBehaviourWizardSection.js +18 -11
- package/src/View/Alert/Wizard/AlertButtonsEditor.d.ts +2 -0
- package/src/View/Alert/Wizard/AlertButtonsEditor.js +15 -6
- package/src/View/Alert/Wizard/AlertMessageWizardSection.d.ts +10 -0
- package/src/View/Alert/Wizard/AlertMessageWizardSection.js +57 -0
- package/src/View/Alert/Wizard/{AlertDisplayWizardSection.d.ts → AlertNotificationWizardSection.d.ts} +7 -5
- package/src/View/Alert/Wizard/{AlertDisplayWizardSection.js → AlertNotificationWizardSection.js} +12 -50
- package/src/View/Alert/Wizard/AlertRulesWizardSection.d.ts +7 -4
- package/src/View/Alert/Wizard/AlertRulesWizardSection.js +66 -6
- package/src/View/Alert/Wizard/AlertScopeWizardSection.d.ts +2 -0
- package/src/View/Alert/Wizard/AlertScopeWizardSection.js +41 -2
- package/src/View/Alert/Wizard/AlertTypeWizardSection.d.ts +9 -0
- package/src/View/Alert/Wizard/AlertTypeWizardSection.js +27 -0
- package/src/View/Alert/Wizard/AlertWizard.js +53 -98
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.d.ts +1 -6
- package/src/View/Alert/Wizard/BaseAlertScopeWizardSection.js +4 -39
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnWizard.js +1 -1
- package/src/View/{Components/Charting → Charting}/ChartingStatusBarPopover.d.ts +0 -0
- package/src/View/{Components/Charting → Charting}/ChartingStatusBarPopover.js +2 -2
- package/src/View/{Components/Charting → Charting}/ChartingViewPanel.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/ChartingViewPanel.js +0 -0
- package/src/View/{Components/Charting → Charting}/ChartingWizard/ChartingWizard.d.ts +2 -2
- package/src/View/{Components/Charting → Charting}/ChartingWizard/ChartingWizard.js +12 -2
- package/src/View/{Components/Charting → Charting}/ChartingWizard/PreviewChartSection.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/ChartingWizard/PreviewChartSection.js +2 -2
- package/src/View/{Components/Charting → Charting}/ChartingWizard/SettingsSection.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/ChartingWizard/SettingsSection.js +4 -4
- package/src/View/{Components/Charting → Charting}/DeleteChartButton.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/DeleteChartButton.js +3 -3
- package/src/View/{Components/Charting → Charting}/EditChartButton.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/EditChartButton.js +3 -3
- package/src/View/{Components/Charting → Charting}/ShowChartButton.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/ShowChartButton.js +5 -5
- package/src/View/{Components/Charting → Charting}/useChartState.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/useChartState.js +5 -5
- package/src/View/{Components/Charting → Charting}/useChartingElements.d.ts +1 -1
- package/src/View/{Components/Charting → Charting}/useChartingElements.js +6 -6
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.d.ts +12 -0
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicateEditor.js +85 -0
- package/src/View/Components/EntityRulesEditor/{PredicatesEditor.d.ts → EntityRulePredicatesEditor/EntityRulePredicatesEditor.d.ts} +6 -4
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/EntityRulePredicatesEditor.js +87 -0
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/index.d.ts +1 -0
- package/src/View/Components/EntityRulesEditor/EntityRulePredicatesEditor/index.js +5 -0
- package/src/View/Components/EntityRulesEditor/Utilities.js +7 -1
- package/src/View/Components/EntityRulesEditor/index.d.ts +4 -2
- package/src/View/Components/EntityRulesEditor/index.js +27 -10
- package/src/View/Components/NewScopeComponent.d.ts +9 -5
- package/src/View/Components/NewScopeComponent.js +19 -10
- package/src/View/Components/Popups/WindowPopups/WindowPopups.js +2 -2
- package/src/View/Components/Popups/WindowPopups/windowFactory.d.ts +1 -0
- package/src/View/Components/Popups/WindowPopups/windowFactory.js +4 -1
- package/src/View/Components/PredicateEditor/PredicateEditor.js +16 -5
- package/src/View/Components/PreviewResultsPanel.js +30 -3
- package/src/View/CustomSort/Wizard/CustomSortWizard.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryGrid.js +3 -0
- package/src/View/DataChangeHistory/DataChangeHistoryPopup.js +1 -1
- package/src/View/DataChangeHistory/DataChangeHistoryViewPanel.js +1 -1
- package/src/View/Export/ExportTablePopup.d.ts +3 -0
- package/src/View/Export/ExportTablePopup.js +59 -0
- package/src/View/Export/Wizard/NewReportWizard.js +1 -1
- package/src/View/Export/Wizard/ReportColumnsWizardSection.js +1 -1
- package/src/View/FlashingCell/Wizard/FlashingCellRulesWizardSection.js +1 -1
- package/src/View/FlashingCell/Wizard/FlashingCellWizard.js +2 -2
- package/src/View/FormatColumn/Wizard/FormatColumnRuleWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnScopeWizardSection.js +1 -1
- package/src/View/FormatColumn/Wizard/FormatColumnWizard.js +1 -1
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnWizard.js +1 -1
- package/src/View/GridInfo/GridInfoPopup.js +1 -1
- package/src/View/PlusMinus/Wizard/PlusMinusWizard.js +1 -1
- package/src/View/Query/Wizard/NamedQueryWizard.js +1 -1
- package/src/View/Schedule/Wizard/ScheduleWizard.js +1 -1
- package/src/View/Shortcut/Wizard/ShortcutWizard.js +1 -1
- package/src/View/StatusBar/StatusBarPanel.d.ts +3 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizard.js +7 -4
- package/src/View/StyledColumn/Wizard/StyledColumnWizardTypeSection.js +5 -5
- package/src/View/TeamSharing/TeamSharingApplyButton.js +1 -1
- package/src/View/Theme/ThemeStatusPanelPopover.js +10 -2
- package/src/View/Wizard/TypeRadio.d.ts +7 -0
- package/src/View/Wizard/TypeRadio.js +12 -0
- package/src/agGrid/Adaptable.d.ts +3 -1
- package/src/agGrid/Adaptable.js +28 -4
- package/src/agGrid/agGridHelper.d.ts +1 -0
- package/src/agGrid/agGridHelper.js +15 -0
- package/src/components/ExpressionEditor/EditorInputWithWhereClause.js +4 -0
- package/src/components/ExpressionEditor/editorButtonsAggregatedBoolean.js +5 -0
- package/src/components/ExpressionEditor/editorButtonsAggregatedScalar.js +5 -0
- package/src/components/icons/index.js +4 -0
- package/src/components/icons/visibility-off.d.ts +3 -0
- package/src/components/icons/visibility-off.js +7 -0
- package/src/components/icons/visibility.d.ts +3 -0
- package/src/components/icons/visibility.js +8 -0
- package/src/metamodel/adaptable.metamodel.d.ts +124 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +4 -4
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.d.ts +0 -9
- package/src/View/Alert/Wizard/BaseAlertRulesWizardSection.js +0 -30
- package/src/View/Components/EntityRulesEditor/PredicatesEditor.js +0 -86
|
@@ -109,6 +109,9 @@ const buildAdaptableOptions = (mainAdaptableInstance, gridOptions, adaptableCont
|
|
|
109
109
|
entitlementOptions: {
|
|
110
110
|
defaultAccessLevel: 'Hidden',
|
|
111
111
|
},
|
|
112
|
+
filterOptions: {
|
|
113
|
+
quickFilterTrigger: 'click',
|
|
114
|
+
},
|
|
112
115
|
layoutOptions: {
|
|
113
116
|
createDefaultLayout: false,
|
|
114
117
|
autoSizeColumnsInLayout: true,
|
|
@@ -27,7 +27,7 @@ class DataChangeHistoryPopupComponent extends React.Component {
|
|
|
27
27
|
const disabled = changeHistoryMode === 'INACTIVE';
|
|
28
28
|
const suspended = changeHistoryMode === 'SUSPENDED';
|
|
29
29
|
const buttonPanel = (React.createElement(rebass_1.Flex, { className: "ab-DataChangeHistoryPopup--button-panel", padding: 2, style: { gap: 'var(--ab-space-1)' } },
|
|
30
|
-
disabled && (React.createElement(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-activate", "data-name": 'data-change-history--button-activate"', variant: 'raised', tone: 'accent', tooltip: '', onClick: () => onChangeHistoryEnable() }, "Activate
|
|
30
|
+
disabled && (React.createElement(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-activate", "data-name": 'data-change-history--button-activate"', variant: 'raised', tone: 'accent', tooltip: '', onClick: () => onChangeHistoryEnable() }, "Activate")),
|
|
31
31
|
suspended && (React.createElement(ButtonPlay_1.ButtonPlay, { className: "ab-DataChangeHistoryPopup--button-resume", "data-name": 'data-change-history--button-resume', variant: 'outlined', tooltip: 'Resume tracking data changes', onClick: () => onChangeHistoryResume() }, "Resume")),
|
|
32
32
|
enabled && (React.createElement(ButtonPause_1.ButtonPause, { className: "ab-DataChangeHistoryPopup--button-suspend", "data-name": 'data-change-history--button-suspend', variant: 'outlined', tooltip: 'Suspend tracking data changes', onClick: () => onChangeHistorySuspend() }, "Suspend")),
|
|
33
33
|
(enabled || suspended) && (React.createElement(ButtonStop_1.ButtonStop, { className: "ab-DataChangeHistoryPopup--button-deactivate", "data-name": 'data-change-history--button-deactivate', variant: 'outlined', tooltip: 'Deactivate data change tracking', onClick: () => onChangeHistoryDisable() }, "Deactivate"))));
|
|
@@ -46,7 +46,7 @@ const DataChangeHistoryViewPanelControl = (props) => {
|
|
|
46
46
|
React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-active", fontSize: 2, style: { color: 'var(--ab-color-success)' } }, "Active"))),
|
|
47
47
|
suspended && (React.createElement(Tooltip_1.default, { label: !!suspensionTime && `since ${(0, FormatHelper_1.DateFormatter)(suspensionTime, { Pattern: dateFormat })}` },
|
|
48
48
|
React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-suspended", fontSize: 2, style: { color: 'var(--ab-color-warn)' } }, "Suspended"))),
|
|
49
|
-
disabled && (React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-disabled", fontSize: 2 }, "Activate
|
|
49
|
+
disabled && (React.createElement(rebass_1.Text, { className: "ab-DataChangeHistoryPanel--status-disabled", fontSize: 2 }, "Activate Data Tracking"))));
|
|
50
50
|
return (React.createElement(rebass_1.Flex, { flexDirection: 'row' },
|
|
51
51
|
buttonPanel,
|
|
52
52
|
statusPanel,
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExportTablePopup = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const InfiniteTable_1 = require("../../components/InfiniteTable");
|
|
7
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
8
|
+
const tableDOMProps = {
|
|
9
|
+
style: {
|
|
10
|
+
height: '100%',
|
|
11
|
+
minWidth: '10rem',
|
|
12
|
+
minHeight: 300,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
const ExportTablePopup = (props) => {
|
|
16
|
+
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
17
|
+
const adaptableApi = adaptable.api;
|
|
18
|
+
const primaryKey = adaptableApi.optionsApi.getPrimaryKey();
|
|
19
|
+
const { reportData, } = props.popupProps;
|
|
20
|
+
const data = reportData.rows;
|
|
21
|
+
const columns = React.useMemo(() => {
|
|
22
|
+
const getFriendlyName = (columnId) => adaptableApi.columnApi.getFriendlyNameForColumnId(columnId);
|
|
23
|
+
const columns = {
|
|
24
|
+
[primaryKey]: { field: primaryKey, header: getFriendlyName(primaryKey) },
|
|
25
|
+
};
|
|
26
|
+
for (let column of reportData.columns) {
|
|
27
|
+
columns[column.columnId] = {
|
|
28
|
+
field: column.columnId,
|
|
29
|
+
header: getFriendlyName(column.columnId),
|
|
30
|
+
dataType: column.dataType,
|
|
31
|
+
};
|
|
32
|
+
if (column.dataType === 'Date') {
|
|
33
|
+
columns[column.columnId].valueFormatter = (params) => {
|
|
34
|
+
var _a;
|
|
35
|
+
if (typeof params.value === 'string') {
|
|
36
|
+
return params.value;
|
|
37
|
+
}
|
|
38
|
+
return ((_a = params.value) === null || _a === void 0 ? void 0 : _a.toString) ? params.value.toString() : '';
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
if (column.dataType === 'Boolean') {
|
|
42
|
+
columns[column.columnId].valueFormatter = (params) => {
|
|
43
|
+
if (typeof params.value === 'boolean') {
|
|
44
|
+
return params.value ? 'true' : 'false';
|
|
45
|
+
}
|
|
46
|
+
return '';
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return columns;
|
|
51
|
+
}, [props.popupProps]);
|
|
52
|
+
return (React.createElement(InfiniteTable_1.DataSource, { data: data, primaryKey: primaryKey },
|
|
53
|
+
React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
|
|
54
|
+
default: {
|
|
55
|
+
defaultFlex: 1,
|
|
56
|
+
},
|
|
57
|
+
}, domProps: tableDOMProps, columns: columns })));
|
|
58
|
+
};
|
|
59
|
+
exports.ExportTablePopup = ExportTablePopup;
|
|
@@ -62,7 +62,7 @@ const NewReportWizard = (props) => {
|
|
|
62
62
|
React.createElement(ReportNameWizardSection_1.ReportNameWizardSection, { onChange: setReport }))),
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
|
-
details: 'Select Report
|
|
65
|
+
details: 'Select Report Tags',
|
|
66
66
|
title: 'Tags',
|
|
67
67
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
68
68
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -62,7 +62,7 @@ const ReportColumnsWizardSection = (props) => {
|
|
|
62
62
|
React.createElement(Tabs_1.Tabs.Content, { value: "BespokeColumns" },
|
|
63
63
|
React.createElement(rebass_1.Text, { fontSize: 2, padding: 2 }, "Only selected Columns (which you will choose in the next step) will be exported - whether visible or not"))),
|
|
64
64
|
data.ReportColumnScope === 'ScopeColumns' ? (React.createElement(rebass_1.Box, { padding: 2, flex: 1, style: { overflow: 'auto' } },
|
|
65
|
-
React.createElement(NewScopeComponent_1.NewScopeComponent, { hideWholeRow: true, descriptions: {
|
|
65
|
+
React.createElement(NewScopeComponent_1.NewScopeComponent, { hideWholeRow: true, isColumnAvailable: (column) => Boolean(column.exportable), descriptions: {
|
|
66
66
|
rowScope: 'Apply Scope for: Row, or one or more Columns, or one or more Data Types',
|
|
67
67
|
columnScope: 'Selected columns will be included in the report',
|
|
68
68
|
}, scope: data.Scope, updateScope: (Scope) => {
|
|
@@ -31,7 +31,7 @@ exports.renderFlashingAlertRulesSummary = renderFlashingAlertRulesSummary;
|
|
|
31
31
|
const FlashingAlertRulesWizardSection = (props) => {
|
|
32
32
|
const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
33
33
|
const predicateDefs = api.flashingCellApi.getFlashingCellPredicateDefsForScope(data.Scope);
|
|
34
|
-
return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: "Any", data: data, predicateDefs: predicateDefs, onChange: props.onChange, showAggregation: false, showObservable: false, showBoolean: true, showPredicate: true, descriptions: {
|
|
34
|
+
return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: "Any", data: data, predicateDefs: predicateDefs, getPredicateDefsForColId: (colId) => api.flashingCellApi.getFlashingCellPredicateDefsForScope({ ColumnIds: [colId] }), onChange: props.onChange, showAggregation: false, showObservable: false, showBoolean: true, showPredicate: true, descriptions: {
|
|
35
35
|
selectPredicate: 'Select an Flashing Cell Rule - to be applied when data changes',
|
|
36
36
|
useBooleanQuery: (React.createElement(React.Fragment, null,
|
|
37
37
|
"Use an BooleanQuery if ",
|
|
@@ -61,7 +61,7 @@ const FlashingCellWizard = (props) => {
|
|
|
61
61
|
details: 'Specify which data changes should trigger Cell Flashing',
|
|
62
62
|
isValid: NewScopeComponent_1.isScopeValid,
|
|
63
63
|
render: () => React.createElement(FlashingCellScopeWizardSection_1.FlashingAlertScopeWizardSection, { onChange: setFlashingCell }),
|
|
64
|
-
renderSummary: BaseAlertScopeWizardSection_1.
|
|
64
|
+
renderSummary: BaseAlertScopeWizardSection_1.renderScopeSummary,
|
|
65
65
|
title: 'Scope',
|
|
66
66
|
},
|
|
67
67
|
{
|
|
@@ -88,7 +88,7 @@ const FlashingCellWizard = (props) => {
|
|
|
88
88
|
title: 'Flash Styles',
|
|
89
89
|
},
|
|
90
90
|
{
|
|
91
|
-
details: 'Select Flashing Cell
|
|
91
|
+
details: 'Select Flashing Cell Tags',
|
|
92
92
|
title: 'Tags',
|
|
93
93
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
94
94
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -9,7 +9,7 @@ function FormatColumnRuleWizardSection(props) {
|
|
|
9
9
|
const { data, api, moduleInfo } = (0, OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext)();
|
|
10
10
|
return (React.createElement(EntityRulesEditor_1.EntityRulesEditor, { module: moduleInfo.ModuleName, defaultPredicateId: props.defaultPredicateId,
|
|
11
11
|
// TODO see what is this
|
|
12
|
-
predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showPredicate: !api.scopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
|
|
12
|
+
predicateDefs: api.formatColumnApi.internalApi.getFormatColumnDefsForScope(data.Scope), getPredicateDefsForColId: (colId) => api.formatColumnApi.internalApi.getFormatColumnDefsForScope({ ColumnIds: [colId] }), showNoRule: true, showBoolean: true, showAggregation: false, showObservable: false, showPredicate: !api.scopeApi.scopeIsAll(data.Scope), data: data, onChange: (formatColumn) => props.onChange(formatColumn), descriptions: {
|
|
13
13
|
selectPredicate: 'Create a Format Column Rule - to be applied when data changes',
|
|
14
14
|
useBooleanQuery: (React.createElement(React.Fragment, null,
|
|
15
15
|
"Use an BooleanQuery if ",
|
|
@@ -10,7 +10,7 @@ const renderFormatColumnScopeSummary = (data) => {
|
|
|
10
10
|
return (0, NewScopeComponent_1.renderScopeSummary)(data.Scope, {
|
|
11
11
|
scopeWholeRow: 'Matching rows will be formatted',
|
|
12
12
|
scopeColumns: 'Cells in selected columns will be formatted',
|
|
13
|
-
scopeDataTypes: 'Cells in columns
|
|
13
|
+
scopeDataTypes: 'Cells in columns with these Data Types will be formatted',
|
|
14
14
|
});
|
|
15
15
|
};
|
|
16
16
|
exports.renderFormatColumnScopeSummary = renderFormatColumnScopeSummary;
|
|
@@ -134,7 +134,7 @@ function FormatColumnWizard(props) {
|
|
|
134
134
|
},
|
|
135
135
|
},
|
|
136
136
|
{
|
|
137
|
-
details: 'Select Format Column
|
|
137
|
+
details: 'Select Format Column Tags',
|
|
138
138
|
title: 'Tags',
|
|
139
139
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
140
140
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -47,7 +47,7 @@ const FreeTextColumnWizard = (props) => {
|
|
|
47
47
|
},
|
|
48
48
|
},
|
|
49
49
|
{
|
|
50
|
-
details: 'Select Free Text Column
|
|
50
|
+
details: 'Select Free Text Column Tags',
|
|
51
51
|
title: 'Tags',
|
|
52
52
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
53
53
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -23,7 +23,7 @@ const GridInfoPopup = (props) => {
|
|
|
23
23
|
const showColumnInfo = entitlementService.isGridInfoSectionVisible('ColumnInfo');
|
|
24
24
|
/**
|
|
25
25
|
* Because it is not associated with a module yet, setting this flag to true.
|
|
26
|
-
* Needed for the logic
|
|
26
|
+
* Needed for the logic whether to show radio buttons (buttons.length >= 2)
|
|
27
27
|
*/
|
|
28
28
|
const showAdaptableObjects = entitlementService.isGridInfoSectionVisible('AdaptableObjects');
|
|
29
29
|
const [state, setState] = React.useState({
|
|
@@ -69,7 +69,7 @@ const PlusMinusWizard = (props) => {
|
|
|
69
69
|
render: () => (React.createElement(PlusMinusSettingsWizardSection_1.PlusMinusSettingsWizardSection, { hasCondition: hasCondition, onConditionChange: setHasCondition, onChange: setPlusMinus })),
|
|
70
70
|
},
|
|
71
71
|
{
|
|
72
|
-
details: 'Select Plus/Minus
|
|
72
|
+
details: 'Select Plus/Minus Tags',
|
|
73
73
|
title: 'Tags',
|
|
74
74
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
75
75
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -49,7 +49,7 @@ function NamedQueryWizard(props) {
|
|
|
49
49
|
},
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
|
-
details: 'Select Query
|
|
52
|
+
details: 'Select Query Tags',
|
|
53
53
|
title: 'Tags',
|
|
54
54
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
55
55
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -103,7 +103,7 @@ const ScheduleWizard = (props) => {
|
|
|
103
103
|
React.createElement(ScheduleScheduleWizard_1.ScheduleScheduleWizard, { isOneOff: isOneOff, onSetIsOneOff: setIsOneOff, onChange: setSchedule }))),
|
|
104
104
|
},
|
|
105
105
|
{
|
|
106
|
-
details: 'Select Schedule
|
|
106
|
+
details: 'Select Schedule Tags',
|
|
107
107
|
title: 'Tags',
|
|
108
108
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
109
109
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -73,7 +73,7 @@ const ShortcutWizard = (props) => {
|
|
|
73
73
|
},
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
|
-
details: 'Select Shortcut
|
|
76
|
+
details: 'Select Shortcut Tags',
|
|
77
77
|
title: 'Tags',
|
|
78
78
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
79
79
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -17,17 +17,16 @@ export interface StatusBarPanelProps extends Omit<FlexProps, 'content'> {
|
|
|
17
17
|
icon?: string;
|
|
18
18
|
content?: React.ReactNode | React.FunctionComponent<React.PropsWithChildren<unknown>>;
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
* Whether to trigger onAction when Wrapper is clicked
|
|
21
21
|
*/
|
|
22
22
|
triggerActionOnWrapperClick?: boolean;
|
|
23
23
|
/**
|
|
24
|
-
*
|
|
25
|
-
* is clicked.
|
|
24
|
+
* If specified this content will be rendered when text is clicked
|
|
26
25
|
*/
|
|
27
26
|
popover?: React.ReactNode | React.FunctionComponent<React.PropsWithChildren<unknown>>;
|
|
28
27
|
popoverMinWidth?: number;
|
|
29
28
|
/**
|
|
30
|
-
*
|
|
29
|
+
* Can render custom content
|
|
31
30
|
*/
|
|
32
31
|
view?: React.FunctionComponent<React.PropsWithChildren<unknown>>;
|
|
33
32
|
onAction?: () => void;
|
|
@@ -17,8 +17,10 @@ const StyledColumnWizardSettingsSection_1 = require("./StyledColumnWizardSetting
|
|
|
17
17
|
const StyledColumnSparklineSettingsSection_1 = require("./StyledColumnSparklineSettingsSection");
|
|
18
18
|
const ObjectTagsWizardSection_1 = require("../../Wizard/ObjectTagsWizardSection");
|
|
19
19
|
const StyledColumnWizard = (props) => {
|
|
20
|
-
var _a, _b;
|
|
20
|
+
var _a, _b, _c, _d, _e, _f;
|
|
21
21
|
const data = (_a = props.data) !== null && _a !== void 0 ? _a : (_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.value;
|
|
22
|
+
const popupDefaultCurrentSectionName = (_e = (_d = (_c = props === null || props === void 0 ? void 0 : props.popupParams) === null || _c === void 0 ? void 0 : _c.config) === null || _d === void 0 ? void 0 : _d.defaultCurrentSectionName) !== null && _e !== void 0 ? _e : undefined;
|
|
23
|
+
const defaultCurrentSectionName = (_f = props.defaultCurrentSectionName) !== null && _f !== void 0 ? _f : popupDefaultCurrentSectionName;
|
|
22
24
|
const [styledColumn, setStyledColumn] = (0, react_1.useState)(() => {
|
|
23
25
|
if (data) {
|
|
24
26
|
return (0, Helper_1.cloneObject)(data);
|
|
@@ -29,7 +31,8 @@ const StyledColumnWizard = (props) => {
|
|
|
29
31
|
});
|
|
30
32
|
const dispatch = (0, react_redux_1.useDispatch)();
|
|
31
33
|
const handleFinish = () => {
|
|
32
|
-
|
|
34
|
+
var _a;
|
|
35
|
+
if (((_a = props === null || props === void 0 ? void 0 : props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'New' || !data) {
|
|
33
36
|
dispatch(StyledColumnRedux.StyledColumnAdd(styledColumn));
|
|
34
37
|
}
|
|
35
38
|
else {
|
|
@@ -64,7 +67,7 @@ const StyledColumnWizard = (props) => {
|
|
|
64
67
|
React.createElement(StyledColumnSparklineSettingsSection_1.StyledColumnSparklineSettingsSection, { onChange: setStyledColumn }))),
|
|
65
68
|
},
|
|
66
69
|
];
|
|
67
|
-
return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName:
|
|
70
|
+
return (React.createElement(OnePageAdaptableWizard_1.OnePageAdaptableWizard, { defaultCurrentSectionName: defaultCurrentSectionName, moduleInfo: props.moduleInfo, data: styledColumn, onFinish: handleFinish, onHide: props.onCloseWizard, sections: [
|
|
68
71
|
{
|
|
69
72
|
details: 'Select a Styled Column type',
|
|
70
73
|
renderSummary: StyledColumnWizardTypeSection_1.renderStyledColumnTypeSummary,
|
|
@@ -86,7 +89,7 @@ const StyledColumnWizard = (props) => {
|
|
|
86
89
|
},
|
|
87
90
|
...(styledColumn.SparkLineStyle ? sparklineSteps : checkboxGrandientPercentSteps),
|
|
88
91
|
{
|
|
89
|
-
details: 'Select Format Column
|
|
92
|
+
details: 'Select Format Column Tags',
|
|
90
93
|
title: 'Tags',
|
|
91
94
|
isVisible: (_, api) => api.internalApi.shouldDisplayTagSections(),
|
|
92
95
|
render: () => (React.createElement(rebass_1.Box, { padding: 2 },
|
|
@@ -4,11 +4,11 @@ exports.StyledColumnWizardTypeSection = exports.renderStyledColumnTypeSummary =
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
6
|
const rebass_1 = require("rebass");
|
|
7
|
-
const Radio_1 = tslib_1.__importDefault(require("../../../components/Radio"));
|
|
8
7
|
const Tabs_1 = require("../../../components/Tabs");
|
|
9
8
|
const Tag_1 = require("../../../components/Tag");
|
|
10
9
|
const AdaptableContext_1 = require("../../AdaptableContext");
|
|
11
10
|
const OnePageAdaptableWizard_1 = require("../../Wizard/OnePageAdaptableWizard");
|
|
11
|
+
const TypeRadio_1 = require("../../Wizard/TypeRadio");
|
|
12
12
|
const renderStyledColumnTypeSummary = (data) => {
|
|
13
13
|
let type = null;
|
|
14
14
|
if (data.GradientStyle) {
|
|
@@ -62,9 +62,9 @@ const StyledColumnWizardTypeSection = (props) => {
|
|
|
62
62
|
React.createElement(Tabs_1.Tabs, { autoFocus: false, padding: 2 },
|
|
63
63
|
React.createElement(Tabs_1.Tabs.Tab, null, "Type"),
|
|
64
64
|
React.createElement(Tabs_1.Tabs.Content, null,
|
|
65
|
-
React.createElement(
|
|
66
|
-
React.createElement(
|
|
67
|
-
React.createElement(
|
|
68
|
-
adaptable.api.styledColumnApi.canDisplaySparklines() && (React.createElement(
|
|
65
|
+
React.createElement(TypeRadio_1.TypeRadio, { text: "Gradient Column", description: "Colour each cell in a numeric column using a gradient value", checked: Boolean(data.GradientStyle), onClick: () => handleTypeChange('gradient') }),
|
|
66
|
+
React.createElement(TypeRadio_1.TypeRadio, { text: "Percent Bar", description: "Display a coloured bar where the width is based on the cell", checked: Boolean(data.PercentBarStyle), onClick: () => handleTypeChange('percent') }),
|
|
67
|
+
React.createElement(TypeRadio_1.TypeRadio, { text: "Check Box", description: "Display a checkbox (in a Boolean column)", checked: Boolean(data.CheckBoxStyle), onClick: () => handleTypeChange('checkbox') }),
|
|
68
|
+
adaptable.api.styledColumnApi.canDisplaySparklines() && (React.createElement(TypeRadio_1.TypeRadio, { text: "Sparkline", description: "Render the column as a Sparkline", checked: Boolean(data.SparkLineStyle), onClick: () => handleTypeChange('sparkline') }))))));
|
|
69
69
|
};
|
|
70
70
|
exports.StyledColumnWizardTypeSection = StyledColumnWizardTypeSection;
|
|
@@ -10,6 +10,6 @@ const TeamSharingApplyButton = (props) => {
|
|
|
10
10
|
const handleImport = React.useCallback(() => {
|
|
11
11
|
adaptable.api.teamSharingApi.importSharedEntry(props.data);
|
|
12
12
|
}, []);
|
|
13
|
-
return (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-apply-button", onClick: handleImport, variant: "text", tooltip: "Apply
|
|
13
|
+
return (React.createElement(SimpleButton_1.default, { "data-name": "shared-entity-apply-button", onClick: handleImport, variant: "text", tooltip: "Apply", icon: "import-export" }));
|
|
14
14
|
};
|
|
15
15
|
exports.TeamSharingApplyButton = TeamSharingApplyButton;
|
|
@@ -9,9 +9,17 @@ const ThemeStatusPanelPopover = () => {
|
|
|
9
9
|
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
10
10
|
const themes = adaptable.api.themeApi.getThemes();
|
|
11
11
|
const handleThemeChange = React.useCallback((option) => {
|
|
12
|
-
adaptable.api.themeApi.loadTheme(option.
|
|
12
|
+
adaptable.api.themeApi.loadTheme(option.value);
|
|
13
|
+
}, []);
|
|
14
|
+
const options = React.useMemo(() => {
|
|
15
|
+
return themes.map((theme) => {
|
|
16
|
+
var _a;
|
|
17
|
+
return ({
|
|
18
|
+
label: (_a = theme.Description) !== null && _a !== void 0 ? _a : theme.Name,
|
|
19
|
+
value: theme.Name,
|
|
20
|
+
});
|
|
21
|
+
});
|
|
13
22
|
}, []);
|
|
14
|
-
const options = themes.map((theme) => ({ label: theme.Name, value: theme.Uuid }));
|
|
15
23
|
return React.createElement(SelectList_1.SelectList, { options: options, onChange: handleThemeChange });
|
|
16
24
|
};
|
|
17
25
|
exports.ThemeStatusPanelPopover = ThemeStatusPanelPopover;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeRadio = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const rebass_1 = require("rebass");
|
|
7
|
+
const Radio_1 = tslib_1.__importDefault(require("../../components/Radio"));
|
|
8
|
+
const TypeRadio = (props) => (React.createElement(Radio_1.default, { onClick: () => props.onClick(), checked: props.checked },
|
|
9
|
+
React.createElement(rebass_1.Flex, { flexDirection: "column" },
|
|
10
|
+
React.createElement(rebass_1.Text, null, props.text),
|
|
11
|
+
React.createElement(rebass_1.Text, { fontSize: 2, marginTop: 1 }, props.description))));
|
|
12
|
+
exports.TypeRadio = TypeRadio;
|
|
@@ -307,7 +307,9 @@ export declare class Adaptable implements IAdaptable {
|
|
|
307
307
|
* There are a few things that we need to do AFTER we edit a cell and it makes sense to put them in one place
|
|
308
308
|
*/
|
|
309
309
|
private performPostEditChecks;
|
|
310
|
-
private
|
|
310
|
+
private refreshCellsBasedOnCellDataChange;
|
|
311
|
+
private getFormatColumnExpressionStylesChanges;
|
|
312
|
+
private getFormatColumnPredicateStyleChanges;
|
|
311
313
|
private getStyledColumnComparisonChanges;
|
|
312
314
|
private checkChangedCellCurrentlySelected;
|
|
313
315
|
refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos: CellDataChangedInfo[]): void;
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -2415,7 +2415,7 @@ class Adaptable {
|
|
|
2415
2415
|
}
|
|
2416
2416
|
});
|
|
2417
2417
|
};
|
|
2418
|
-
|
|
2418
|
+
let resultColDefs = mapColDefs(allColDefs);
|
|
2419
2419
|
// check if there are any special colDefs that were not processed
|
|
2420
2420
|
// in that case, add them to the end of the colDefs
|
|
2421
2421
|
specialColDefs.forEach((specialColDef) => {
|
|
@@ -2423,6 +2423,14 @@ class Adaptable {
|
|
|
2423
2423
|
resultColDefs.push(specialColDef);
|
|
2424
2424
|
}
|
|
2425
2425
|
});
|
|
2426
|
+
// remove special column that are no longer defined
|
|
2427
|
+
resultColDefs = resultColDefs.filter((colDef) => {
|
|
2428
|
+
if (isSpecialColDef(colDef)) {
|
|
2429
|
+
// must be in specialColDefs
|
|
2430
|
+
return specialColDefs.some((specialColDef) => specialColDef.colId === colDef.colId);
|
|
2431
|
+
}
|
|
2432
|
+
return true;
|
|
2433
|
+
});
|
|
2426
2434
|
this.safeSetColDefs(resultColDefs);
|
|
2427
2435
|
this.setLayout();
|
|
2428
2436
|
}
|
|
@@ -2759,6 +2767,7 @@ class Adaptable {
|
|
|
2759
2767
|
*/
|
|
2760
2768
|
this.gridOptions.api.addEventListener(core_1.Events.EVENT_FIRST_DATA_RENDERED, (this.listenerFirstDataRendered = () => {
|
|
2761
2769
|
this.checkColumnsDataTypeSet();
|
|
2770
|
+
this.api.calculatedColumnApi.refreshAggregatedCalculatedColumns();
|
|
2762
2771
|
this.setLayout();
|
|
2763
2772
|
}));
|
|
2764
2773
|
/**
|
|
@@ -3712,6 +3721,11 @@ class Adaptable {
|
|
|
3712
3721
|
this.DataService.CreateDataChangedEvent(cellDataChangedInfo);
|
|
3713
3722
|
this.resetMinMaxCachedValueForColumn(cellDataChangedInfo.column);
|
|
3714
3723
|
});
|
|
3724
|
+
this.refreshCellsBasedOnCellDataChange(cellDataChangedInfos);
|
|
3725
|
+
firstInfo.trigger == 'tick' ? this.filterOnTickingDataChange() : this.filterOnEditDataChange();
|
|
3726
|
+
}
|
|
3727
|
+
refreshCellsBasedOnCellDataChange(cellDataChangedInfos) {
|
|
3728
|
+
const [firstInfo] = cellDataChangedInfos;
|
|
3715
3729
|
// if node is visible then check if need to refresh other columns / whole row if the updating column is:
|
|
3716
3730
|
// 1. referenced in Format Column Styles that have Expressions (refreshing whole row if Scope is All)
|
|
3717
3731
|
// 2. referenced in Format Column styles that use Column Comparisons (which might also be calculated columns)
|
|
@@ -3720,7 +3734,10 @@ class Adaptable {
|
|
|
3720
3734
|
wholeRow: false,
|
|
3721
3735
|
columnIds: new Set(),
|
|
3722
3736
|
};
|
|
3723
|
-
this.
|
|
3737
|
+
this.getFormatColumnExpressionStylesChanges(dataChangedScope, cellDataChangedInfos);
|
|
3738
|
+
if (dataChangedScope.wholeRow === false) {
|
|
3739
|
+
this.getFormatColumnPredicateStyleChanges(dataChangedScope, cellDataChangedInfos);
|
|
3740
|
+
}
|
|
3724
3741
|
if (dataChangedScope.wholeRow) {
|
|
3725
3742
|
this.redrawRow(firstInfo.rowNode);
|
|
3726
3743
|
}
|
|
@@ -3732,9 +3749,8 @@ class Adaptable {
|
|
|
3732
3749
|
}
|
|
3733
3750
|
}
|
|
3734
3751
|
this.refreshColumnForRelativeRangeStyledColumns(cellDataChangedInfos);
|
|
3735
|
-
firstInfo.trigger == 'tick' ? this.filterOnTickingDataChange() : this.filterOnEditDataChange();
|
|
3736
3752
|
}
|
|
3737
|
-
|
|
3753
|
+
getFormatColumnExpressionStylesChanges(dataChangedScope, cellDataChangedInfos) {
|
|
3738
3754
|
const formatColumnsWithExpression = [];
|
|
3739
3755
|
formatColumnsWithExpression.push(...this.api.formatColumnApi.internalApi.getFormatColumnsWithExpression());
|
|
3740
3756
|
if (ArrayExtensions_1.ArrayExtensions.IsNullOrEmpty(formatColumnsWithExpression)) {
|
|
@@ -3764,6 +3780,14 @@ class Adaptable {
|
|
|
3764
3780
|
}
|
|
3765
3781
|
});
|
|
3766
3782
|
}
|
|
3783
|
+
getFormatColumnPredicateStyleChanges(dataChangedScope, cellDataChangedInfos) {
|
|
3784
|
+
cellDataChangedInfos.forEach((cellDataChangeInfo) => {
|
|
3785
|
+
const dependentColumns = this.api.formatColumnApi.internalApi.getFormatColumnColumnsDependentOnColumnChange(cellDataChangeInfo.column);
|
|
3786
|
+
for (let colId of dependentColumns) {
|
|
3787
|
+
dataChangedScope.columnIds.add(colId);
|
|
3788
|
+
}
|
|
3789
|
+
});
|
|
3790
|
+
}
|
|
3767
3791
|
getStyledColumnComparisonChanges(dataChangedScope, cellDataChangedInfos) {
|
|
3768
3792
|
this.api.styledColumnApi.getStyledColumns().forEach((sc) => {
|
|
3769
3793
|
let columnComparison = this.api.styledColumnApi.internalApi.getColumnComparisonForStyledColumn(sc);
|
|
@@ -39,6 +39,7 @@ export declare class agGridHelper {
|
|
|
39
39
|
private getColumnAggregationFunctions;
|
|
40
40
|
private isColumnMoveable;
|
|
41
41
|
private isColumnQueryable;
|
|
42
|
+
private isColumnExportable;
|
|
42
43
|
private isColumnHideable;
|
|
43
44
|
private isColumnFilterable;
|
|
44
45
|
private getColumnPinnedPosition;
|
|
@@ -207,6 +207,7 @@ class agGridHelper {
|
|
|
207
207
|
moveable: this.isColumnMoveable(colDef),
|
|
208
208
|
hideable: this.isColumnHideable(colDef),
|
|
209
209
|
queryable: this.isColumnQueryable(colDef, ColumnId, friendlyName, dataType),
|
|
210
|
+
exportable: this.isColumnExportable(colDef, ColumnId, friendlyName, dataType),
|
|
210
211
|
isGrouped: this.isColumnGrouped(colDef),
|
|
211
212
|
isFixed: this.isColumnFixed(colDef),
|
|
212
213
|
pinned: this.getColumnPinnedPosition(colDef),
|
|
@@ -334,6 +335,20 @@ class agGridHelper {
|
|
|
334
335
|
};
|
|
335
336
|
return this.adaptable.api.queryLanguageApi.isColumnQueryable(abColumnBase);
|
|
336
337
|
}
|
|
338
|
+
isColumnExportable(colDef, columnId, friendlyName, datatype) {
|
|
339
|
+
if (!colDef) {
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
if (colDef.colId === GeneralConstants_1.ADAPTABLE_ROW_ACTION_BUTTONS) {
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
const abColumnBase = {
|
|
346
|
+
columnId,
|
|
347
|
+
friendlyName,
|
|
348
|
+
dataType: datatype,
|
|
349
|
+
};
|
|
350
|
+
return this.adaptable.api.exportApi.isColumnExportable(abColumnBase);
|
|
351
|
+
}
|
|
337
352
|
isColumnHideable(colDef) {
|
|
338
353
|
if (!colDef) {
|
|
339
354
|
return false;
|
|
@@ -47,6 +47,10 @@ function EditorInputWithWhereClause(props) {
|
|
|
47
47
|
const queryName = `${(0, StringExtensions_1.CapitaliseFirstLetter)(props.type)}Query`;
|
|
48
48
|
return (React.createElement(rebass_1.Flex, { flexDirection: "column", alignItems: "start" },
|
|
49
49
|
React.createElement(BaseEditorInput_1.BaseEditorInput, { type: 'main', value: reactiveValue || '', placeholder: `Create ${queryName}`, onChange: updateReactiveValue, onSelectedFunctionChange: setSelectedFunction, expressionFunctions: reactiveExpressionFns, editorButtons: props.type === 'observable' ? editorButtonsObservable_1.editorButtonsObservable : editorButtonsAggregatedBoolean_1.editorButtonsAggregatedBoolean, testData: props.testData, isFullExpression: true, hideResultPreview: true, api: props.api, style: { height: '75px' } }),
|
|
50
|
+
React.createElement(rebass_1.Text, { fontSize: 2, marginTop: 2, pl: 3 },
|
|
51
|
+
"Add a ",
|
|
52
|
+
React.createElement("i", null, "WHERE"),
|
|
53
|
+
" Clause to narrow the scope of the Query"),
|
|
50
54
|
React.createElement(CheckBox_1.CheckBox, { disabled: (0, StringExtensions_1.IsNullOrEmptyOrWhiteSpace)(reactiveValue), checked: showWhereClause, style: { alignItems: 'center' }, onChange: (checked) => {
|
|
51
55
|
setShowWhereClause(checked);
|
|
52
56
|
if (!checked) {
|
|
@@ -138,6 +138,8 @@ const quote_1 = tslib_1.__importDefault(require("./quote"));
|
|
|
138
138
|
const news_1 = tslib_1.__importDefault(require("./news"));
|
|
139
139
|
const instrument_1 = tslib_1.__importDefault(require("./instrument"));
|
|
140
140
|
const analysis_1 = tslib_1.__importDefault(require("./analysis"));
|
|
141
|
+
const visibility_1 = tslib_1.__importDefault(require("./visibility"));
|
|
142
|
+
const visibility_off_1 = tslib_1.__importDefault(require("./visibility-off"));
|
|
141
143
|
const AdaptableIconComponent_1 = require("../AdaptableIconComponent");
|
|
142
144
|
const allIcons = {
|
|
143
145
|
// toolbars
|
|
@@ -280,6 +282,8 @@ const allIcons = {
|
|
|
280
282
|
menu: menu_1.default,
|
|
281
283
|
statusbar: statusbar_1.default,
|
|
282
284
|
'add-row': add_row_1.default,
|
|
285
|
+
visibility: visibility_1.default,
|
|
286
|
+
'visibility-off': visibility_off_1.default,
|
|
283
287
|
};
|
|
284
288
|
Object.keys(allIcons).forEach((name) => {
|
|
285
289
|
const ReactCmp = allIcons[name];
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const React = tslib_1.__importStar(require("react"));
|
|
5
|
+
const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
|
|
6
|
+
exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props),
|
|
7
|
+
React.createElement("path", { d: "m16.1 13.3-1.45-1.45q.225-1.175-.675-2.2-.9-1.025-2.325-.8L10.2 7.4q.425-.2.862-.3Q11.5 7 12 7q1.875 0 3.188 1.312Q16.5 9.625 16.5 11.5q0 .5-.1.938-.1.437-.3.862Zm3.2 3.15-1.45-1.4q.95-.725 1.688-1.588.737-.862 1.262-1.962-1.25-2.525-3.588-4.013Q14.875 6 12 6q-.725 0-1.425.1-.7.1-1.375.3L7.65 4.85q1.025-.425 2.1-.638Q10.825 4 12 4q3.775 0 6.725 2.087Q21.675 8.175 23 11.5q-.575 1.475-1.512 2.738Q20.55 15.5 19.3 16.45Zm.5 6.15-4.2-4.15q-.875.275-1.762.413Q12.95 19 12 19q-3.775 0-6.725-2.087Q2.325 14.825 1 11.5q.525-1.325 1.325-2.463Q3.125 7.9 4.15 7L1.4 4.2l1.4-1.4 18.4 18.4ZM5.55 8.4q-.725.65-1.325 1.425T3.2 11.5q1.25 2.525 3.587 4.012Q9.125 17 12 17q.5 0 .975-.062.475-.063.975-.138l-.9-.95q-.275.075-.525.112Q12.275 16 12 16q-1.875 0-3.188-1.312Q7.5 13.375 7.5 11.5q0-.275.037-.525.038-.25.113-.525Zm7.975 2.325ZM9.75 12.6Z" })));
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const React = tslib_1.__importStar(require("react"));
|
|
5
|
+
const DefaultIcon_1 = tslib_1.__importDefault(require("./DefaultIcon"));
|
|
6
|
+
exports.default = (props) => (React.createElement(DefaultIcon_1.default, Object.assign({}, props),
|
|
7
|
+
React.createElement("path", { d: "M12 16q1.875 0 3.188-1.312Q16.5 13.375 16.5 11.5q0-1.875-1.312-3.188Q13.875 7 12 7q-1.875 0-3.188 1.312Q7.5 9.625 7.5 11.5q0 1.875 1.312 3.188Q10.125 16 12 16Zm0-1.8q-1.125 0-1.912-.788Q9.3 12.625 9.3 11.5t.788-1.913Q10.875 8.8 12 8.8t1.913.787q.787.788.787 1.913t-.787 1.912q-.788.788-1.913.788Zm0 4.8q-3.65 0-6.65-2.038-3-2.037-4.35-5.462 1.35-3.425 4.35-5.463Q8.35 4 12 4q3.65 0 6.65 2.037 3 2.038 4.35 5.463-1.35 3.425-4.35 5.462Q15.65 19 12 19Zm0-7.5Zm0 5.5q2.825 0 5.188-1.488Q19.55 14.025 20.8 11.5q-1.25-2.525-3.612-4.013Q14.825 6 12 6 9.175 6 6.812 7.487 4.45 8.975 3.2 11.5q1.25 2.525 3.612 4.012Q9.175 17 12 17Z" }),
|
|
8
|
+
' '));
|