@adaptabletools/adaptable 12.0.0 → 12.0.2
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 +6 -19
- package/bundle.cjs.js +129 -129
- package/index.css +7 -23
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +4 -2
- package/src/AdaptableOptions/ActionOptions.d.ts +1 -1
- package/src/AdaptableOptions/AdaptableQLOptions.d.ts +1 -1
- package/src/AdaptableOptions/StateOptions.d.ts +9 -23
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +34 -1
- package/src/Api/ChartingApi.d.ts +19 -2
- package/src/Api/FilterApi.d.ts +7 -2
- package/src/Api/FormatColumnApi.d.ts +6 -6
- package/src/Api/GridApi.d.ts +1 -1
- package/src/Api/Implementation/ChartingApiImpl.d.ts +6 -0
- package/src/Api/Implementation/ChartingApiImpl.js +17 -0
- package/src/Api/Implementation/ConfigApiImpl.d.ts +2 -0
- package/src/Api/Implementation/ConfigApiImpl.js +11 -0
- package/src/Api/Implementation/FilterApiImpl.d.ts +1 -0
- package/src/Api/Implementation/FilterApiImpl.js +5 -0
- package/src/Api/Implementation/FormatColumnApiImpl.d.ts +3 -3
- package/src/Api/Implementation/FormatColumnApiImpl.js +13 -11
- package/src/Api/Implementation/GridApiImpl.d.ts +1 -1
- package/src/Api/Implementation/GridApiImpl.js +2 -2
- package/src/Api/Implementation/InternalApiImpl.d.ts +4 -1
- package/src/Api/Implementation/InternalApiImpl.js +16 -3
- package/src/Api/Implementation/TeamSharingApiImpl.d.ts +1 -0
- package/src/Api/Implementation/TeamSharingApiImpl.js +5 -0
- package/src/Api/InternalApi.d.ts +4 -1
- package/src/Api/TeamSharingApi.d.ts +4 -0
- package/src/PredefinedConfig/AdaptableState.d.ts +2 -0
- package/src/PredefinedConfig/CalculatedColumnState.d.ts +0 -5
- package/src/PredefinedConfig/ChartingState.d.ts +20 -0
- package/src/PredefinedConfig/ChartingState.js +2 -0
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +27 -6
- package/src/PredefinedConfig/Common/AdaptablePredicate.js +2 -2
- package/src/PredefinedConfig/Common/Types.d.ts +1 -1
- package/src/PredefinedConfig/PredefinedConfig.d.ts +5 -0
- package/src/PredefinedConfig/Selection/GridCellRange.d.ts +19 -0
- package/src/PredefinedConfig/StatusBarState.d.ts +1 -1
- package/src/Redux/ActionsReducers/ChartingRedux.d.ts +23 -0
- package/src/Redux/ActionsReducers/ChartingRedux.js +38 -0
- package/src/Redux/ActionsReducers/LayoutRedux.js +3 -0
- package/src/Redux/Store/AdaptableStore.js +2 -0
- package/src/Strategy/AdaptableModuleBase.d.ts +10 -5
- package/src/Strategy/AdaptableModuleBase.js +6 -0
- package/src/Strategy/AlertModule.d.ts +2 -8
- package/src/Strategy/AlertModule.js +6 -3
- package/src/Strategy/ChartingModule.js +1 -1
- package/src/Strategy/DashboardModule.js +1 -0
- package/src/Strategy/ExportModule.js +1 -0
- package/src/Strategy/FlashingCellModule.js +3 -3
- package/src/Strategy/FormatColumnModule.js +3 -3
- package/src/Strategy/GridInfoModule.js +2 -0
- package/src/Strategy/Interface/IModule.d.ts +16 -4
- package/src/Strategy/LayoutModule.js +2 -0
- package/src/Strategy/TeamSharingModule.d.ts +11 -1
- package/src/Strategy/TeamSharingModule.js +104 -0
- package/src/Utilities/Helpers/FormatHelper.d.ts +1 -1
- package/src/Utilities/Helpers/FormatHelper.js +6 -2
- package/src/Utilities/MenuItem.d.ts +4 -4
- package/src/Utilities/ObjectFactory.d.ts +5 -1
- package/src/Utilities/ObjectFactory.js +11 -1
- package/src/Utilities/Services/Interface/IReportService.d.ts +1 -1
- package/src/Utilities/Services/ReportService.d.ts +1 -1
- package/src/Utilities/Services/ReportService.js +5 -5
- package/src/Utilities/Services/TeamSharingService.js +0 -2
- package/src/View/AdaptableViewFactory.js +0 -2
- package/src/View/Alert/ActiveAlertsPanelItemLabel.d.ts +5 -0
- package/src/View/Alert/ActiveAlertsPanelItemLabel.js +22 -0
- package/src/View/CalculatedColumn/Wizard/CalculatedColumnSettingsWizardSection.js +4 -11
- package/src/View/ColorPicker.d.ts +1 -1
- package/src/View/Components/AdaptableDateInput/index.d.ts +1 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectCompactList.js +8 -4
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +13 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +23 -15
- package/src/View/Components/Buttons/ButtonDelete.js +3 -3
- package/src/View/Components/Buttons/ButtonPause.js +11 -1
- package/src/View/Components/FilterForm/QuickFilterForm.js +23 -2
- package/src/View/Components/Panels/PanelWithButton.d.ts +2 -1
- package/src/View/Components/Panels/PanelWithImage.d.ts +3 -2
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -0
- package/src/View/Components/Popups/AdaptablePopupTeamSharing.js +1 -1
- package/src/View/Components/ToolPanel/AdaptableToolPanel.js +1 -11
- package/src/View/Components/ToolPanel/CustomToolPanelContent.js +1 -11
- package/src/View/Dashboard/CustomDashboardButton.js +2 -15
- package/src/View/Dashboard/CustomToolbarWrapper.js +2 -11
- package/src/View/FormatColumn/Wizard/FormatColumnFormatWizardSection.js +13 -9
- package/src/View/FreeTextColumn/Wizard/FreeTextColumnSettingsWizardSection.js +6 -0
- package/src/View/GridInfo/GridInfoPopup.js +1 -1
- package/src/View/Layout/LayoutEditorStandalonePopup.js +3 -1
- package/src/View/Layout/LayoutPopup.d.ts +1 -1
- package/src/View/Layout/LayoutViewPanel.d.ts +1 -1
- package/src/View/Layout/Wizard/LayoutEditorWizard.d.ts +2 -27
- package/src/View/TeamSharing/SharedEntityDependencies.d.ts +8 -0
- package/src/View/TeamSharing/SharedEntityDependencies.js +27 -0
- package/src/View/TeamSharing/SharedEntityObjectView.d.ts +9 -0
- package/src/View/TeamSharing/SharedEntityObjectView.js +84 -0
- package/src/View/TeamSharing/TeamSharingApplyButton.d.ts +6 -0
- package/src/View/TeamSharing/TeamSharingApplyButton.js +15 -0
- package/src/View/UIHelper.d.ts +2 -2
- package/src/agGrid/ActionColumnRenderer.js +5 -11
- package/src/agGrid/Adaptable.d.ts +5 -27
- package/src/agGrid/Adaptable.js +87 -72
- package/src/agGrid/agGridMenuHelper.d.ts +1 -0
- package/src/agGrid/agGridMenuHelper.js +15 -4
- package/src/components/AdaptableFormComponent/AdaptableFormComponent.js +6 -12
- package/src/components/AdaptableIconComponent/index.d.ts +2 -1
- package/src/components/AdaptableIconComponent/index.js +36 -3
- package/src/components/Datepicker/index.d.ts +1 -1
- package/src/components/Input/index.d.ts +1 -1
- package/src/components/List/ListGroupItem/index.d.ts +1 -1
- package/src/components/PopupWithFooter.d.ts +1 -1
- package/src/components/SimpleButton/index.js +1 -1
- package/src/components/Textarea/index.d.ts +1 -1
- package/src/components/icons/{color-drop.d.ts → ends-with.d.ts} +0 -0
- package/src/components/icons/{format-letter-ends-with.js → ends-with.js} +0 -0
- package/src/components/icons/{filter-outline.d.ts → filter.d.ts} +0 -0
- package/src/components/icons/{filter-outline.js → filter.js} +0 -0
- package/src/components/icons/index.d.ts +5 -7
- package/src/components/icons/index.js +7 -21
- package/src/components/icons/{format-letter-ends-with.d.ts → starts-with.d.ts} +0 -0
- package/src/components/icons/{format-letter-starts-with.js → starts-with.js} +0 -0
- package/src/metamodel/adaptable.metamodel.d.ts +150 -1
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +4 -2
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/src/View/Alert/AlertSharedEntity.d.ts +0 -5
- package/src/View/Alert/AlertSharedEntity.js +0 -19
- package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.d.ts +0 -5
- package/src/View/CalculatedColumn/CalculatedColumnSharedEntity.js +0 -20
- package/src/View/ConditionalStyle/ConditionalStyleSharedEntity.d.ts +0 -5
- package/src/View/ConditionalStyle/ConditionalStyleSharedEntity.js +0 -23
- package/src/View/CustomSort/CustomSortSharedEntity.d.ts +0 -6
- package/src/View/CustomSort/CustomSortSharedEntity.js +0 -24
- package/src/View/Export/ExportSharedEntity.d.ts +0 -5
- package/src/View/Export/ExportSharedEntity.js +0 -16
- package/src/View/Filter/FilterSharedEntity.d.ts +0 -5
- package/src/View/Filter/FilterSharedEntity.js +0 -15
- package/src/View/FormatColumn/FormatColumnSharedEntity.d.ts +0 -5
- package/src/View/FormatColumn/FormatColumnSharedEntity.js +0 -18
- package/src/View/FreeTextColumn/FreeTextColumnSharedEntity.d.ts +0 -5
- package/src/View/FreeTextColumn/FreeTextColumnSharedEntity.js +0 -24
- package/src/View/Layout/LayoutSharedEntity.d.ts +0 -5
- package/src/View/Layout/LayoutSharedEntity.js +0 -15
- package/src/View/PlusMinus/PlusMinusSharedEntity.d.ts +0 -5
- package/src/View/PlusMinus/PlusMinusSharedEntity.js +0 -21
- package/src/View/Query/NamedQuerySharedEntity.d.ts +0 -5
- package/src/View/Query/NamedQuerySharedEntity.js +0 -19
- package/src/View/Shortcut/ShortcutSharedEntity.d.ts +0 -5
- package/src/View/Shortcut/ShortcutSharedEntity.js +0 -19
- package/src/View/TeamSharing/TeamSharingPopup.d.ts +0 -23
- package/src/View/TeamSharing/TeamSharingPopup.js +0 -163
- package/src/agGrid/rowEditIcons.d.ts +0 -5
- package/src/agGrid/rowEditIcons.js +0 -10
- package/src/components/icons/color-drop.js +0 -7
- package/src/components/icons/format-letter-starts-with.d.ts +0 -3
- package/src/components/icons/pause-red.d.ts +0 -3
- package/src/components/icons/pause-red.js +0 -7
|
@@ -15,6 +15,7 @@ const ButtonShare_1 = require("../Buttons/ButtonShare");
|
|
|
15
15
|
const SuspendToggleButton_1 = require("../Buttons/SuspendToggleButton/SuspendToggleButton");
|
|
16
16
|
const ValueSelector_1 = require("../ValueSelector");
|
|
17
17
|
const ICON_SIZE = 26;
|
|
18
|
+
const baseClassName = 'ab-Adaptable-Object-List';
|
|
18
19
|
const AdaptableObjectListItem = (props) => {
|
|
19
20
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
20
21
|
const adaptable = AdaptableContext_1.useAdaptable();
|
|
@@ -24,15 +25,17 @@ const AdaptableObjectListItem = (props) => {
|
|
|
24
25
|
const viewOptions = (_b = (_a = props.module) === null || _a === void 0 ? void 0 : _a.getViewProperties) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
25
26
|
const EditWizard = (_c = viewOptions.getEditWizard) === null || _c === void 0 ? void 0 : _c.call(viewOptions, props.data.abObject);
|
|
26
27
|
const deleteAction = (_d = viewOptions === null || viewOptions === void 0 ? void 0 : viewOptions.getDeleteAction) === null || _d === void 0 ? void 0 : _d.call(viewOptions, props.data.abObject);
|
|
27
|
-
const
|
|
28
|
+
const isObjectShareable = props.module.isModuleObjectsShareable();
|
|
29
|
+
const teamSharingActivated = isObjectShareable &&
|
|
30
|
+
adaptable.api.teamSharingApi.isTeamSharingActivated() &&
|
|
28
31
|
adaptable.api.teamSharingApi.hasTeamSharingFullRights();
|
|
29
32
|
const entityType = props.module.moduleInfo.FriendlyName;
|
|
30
33
|
const moduleAccessLevel = adaptable.api.internalApi
|
|
31
34
|
.getEntitlementService()
|
|
32
35
|
.getEntitlementAccessLevelForModule(props.module.moduleInfo.ModuleName);
|
|
33
36
|
const accessLevel = AdaptableHelper_1.default.getAppropriateAccessLevel(props.data.abObject, moduleAccessLevel);
|
|
34
|
-
const
|
|
35
|
-
const itemClassName = join_1.default(
|
|
37
|
+
const itemBaseClassName = `${baseClassName}__Item`;
|
|
38
|
+
const itemClassName = join_1.default(props.data.className, itemBaseClassName, props.data.abObject.IsSuspended && `${itemBaseClassName}--is-suspended`);
|
|
36
39
|
const handleCloseWizard = React.useCallback(() => {
|
|
37
40
|
setIsEditWizardVisible(false);
|
|
38
41
|
setWizardStepName(null);
|
|
@@ -56,37 +59,42 @@ const AdaptableObjectListItem = (props) => {
|
|
|
56
59
|
});
|
|
57
60
|
});
|
|
58
61
|
const isEditDisabled = !Boolean(EditWizard || viewOptions.onOpenEditPopup);
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
const showActions = !props.hideControls;
|
|
63
|
+
return (React.createElement(rebass_1.Flex, { "data-name": "adaptable-object-list-item", "data-value": props.data.abObject.Uuid, as: "li", mb: 3, className: itemClassName, style: props.data.style },
|
|
64
|
+
React.createElement(rebass_1.Box, { flex: 1, className: `${itemBaseClassName}__rows` }, (_j = (_h = (_g = props.data.items).filter) === null || _h === void 0 ? void 0 : _h.call(_g, Boolean)) === null || _j === void 0 ? void 0 : _j.map((tag, index) => {
|
|
61
65
|
var _a;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
let labelEl = tag.label;
|
|
67
|
+
if (typeof tag.label === 'function') {
|
|
68
|
+
labelEl = React.createElement(tag.label, { data: props.data.abObject });
|
|
69
|
+
}
|
|
70
|
+
labelEl = labelEl !== null && labelEl !== void 0 ? labelEl : tag.name;
|
|
71
|
+
return (React.createElement(rebass_1.Flex, { "data-name": tag.name, key: index, mb: 2, className: `${itemBaseClassName}__row` },
|
|
72
|
+
React.createElement(rebass_1.Box, { className: `${itemBaseClassName}__label`, mr: 3 },
|
|
73
|
+
labelEl,
|
|
74
|
+
EditWizard && (React.createElement(SimpleButton_1.default, { accessLevel: accessLevel, className: `${itemBaseClassName}__edit-property`, ml: 1, icon: "edit", tooltip: "edit", iconSize: 18, variant: "text", onClick: () => {
|
|
66
75
|
handleOnEdit(tag.name);
|
|
67
76
|
} }))),
|
|
68
|
-
React.createElement(rebass_1.Box, { flex: 1, className: `${
|
|
77
|
+
React.createElement(rebass_1.Box, { flex: 1, className: `${itemBaseClassName}__values` },
|
|
69
78
|
tag.view &&
|
|
70
79
|
React.createElement(tag.view, {
|
|
71
80
|
data: props.data.abObject,
|
|
72
81
|
}),
|
|
73
82
|
Boolean((tag === null || tag === void 0 ? void 0 : tag.values) && ((_a = tag === null || tag === void 0 ? void 0 : tag.values) === null || _a === void 0 ? void 0 : _a.length)) && (React.createElement(ValueSelector_1.ValueOptionsTags, { style: { marginRight: 0 }, readOnly: true, options: tag.values, value: tag.values, allowWrap: true, toIdentifier: (c) => c, toLabel: (c) => React.createElement(React.Fragment, null, c) })))));
|
|
74
83
|
})),
|
|
75
|
-
React.createElement(rebass_1.Flex, { flexDirection: "column", className: `${
|
|
84
|
+
showActions && (React.createElement(rebass_1.Flex, { flexDirection: "column", className: `${itemBaseClassName}__buttons` },
|
|
76
85
|
React.createElement(rebass_1.Flex, { justifyContent: "end" },
|
|
77
86
|
actions,
|
|
78
87
|
teamSharingActivated && (React.createElement(ButtonShare_1.ButtonShare, { iconSize: ICON_SIZE, Header: `TeamSharing ${entityType}`, accessLevel: accessLevel, onShare: (config) => adaptable.api.teamSharingApi.shareEntity(props.data.abObject, props.module.moduleInfo.ModuleName, config) })),
|
|
79
|
-
deleteAction && (React.createElement(ButtonDelete_1.ButtonDelete, { iconSize: ICON_SIZE, ConfirmationMsg: `Are you sure you want to delete this ${entityType}?`, ConfirmationTitle: `Delete ${entityType}`, ConfirmAction: deleteAction, accessLevel: accessLevel })),
|
|
88
|
+
deleteAction && (React.createElement(ButtonDelete_1.ButtonDelete, { disabled: props.deleteDisabled, tooltip: props.deleteTooltip, iconSize: ICON_SIZE, ConfirmationMsg: `Are you sure you want to delete this ${entityType}?`, ConfirmationTitle: `Delete ${entityType}`, ConfirmAction: deleteAction, accessLevel: accessLevel })),
|
|
80
89
|
React.createElement(ButtonEdit_1.ButtonEdit, { iconSize: ICON_SIZE, disabled: isEditDisabled, accessLevel: accessLevel, onClick: () => handleOnEdit() })),
|
|
81
90
|
React.createElement(rebass_1.Box, { flex: 1 }),
|
|
82
91
|
hasSuspend && (React.createElement(rebass_1.Flex, { justifyContent: "end" },
|
|
83
|
-
React.createElement(SuspendToggleButton_1.SuspendToggleButton, { onSuspend: () => dispatch(viewOptions.getSuspendAction(props.data.abObject)), onUnSuspend: () => dispatch(viewOptions.getUnSuspendAction(props.data.abObject)), suspendableObject: props.data.abObject, accessLevel: accessLevel })))),
|
|
92
|
+
React.createElement(SuspendToggleButton_1.SuspendToggleButton, { onSuspend: () => dispatch(viewOptions.getSuspendAction(props.data.abObject)), onUnSuspend: () => dispatch(viewOptions.getUnSuspendAction(props.data.abObject)), suspendableObject: props.data.abObject, accessLevel: accessLevel }))))),
|
|
84
93
|
isEditWizardVisible && EditWizard && (React.createElement(EditWizard, { defaultCurrentSectionName: wizardStepName, moduleInfo: props.module.moduleInfo, data: props.data.abObject, configEntities: null, onCloseWizard: handleCloseWizard, onFinishWizard: handleCloseWizard }))));
|
|
85
94
|
};
|
|
86
95
|
exports.AdaptableObjectListItem = AdaptableObjectListItem;
|
|
87
96
|
const AdaptableObjectList = (props) => {
|
|
88
97
|
var _a;
|
|
89
|
-
|
|
90
|
-
return (React.createElement("ul", { className: baseClassName }, (_a = props === null || props === void 0 ? void 0 : props.items) === null || _a === void 0 ? void 0 : _a.map((item) => (React.createElement(exports.AdaptableObjectListItem, { key: item.abObject.Uuid, baseClassName: baseClassName, data: item, module: props.module })))));
|
|
98
|
+
return (React.createElement("ul", { className: baseClassName }, (_a = props === null || props === void 0 ? void 0 : props.items) === null || _a === void 0 ? void 0 : _a.map((item) => (React.createElement(exports.AdaptableObjectListItem, { key: item.abObject.Uuid, data: item, module: props.module })))));
|
|
91
99
|
};
|
|
92
100
|
exports.AdaptableObjectList = AdaptableObjectList;
|
|
@@ -8,9 +8,9 @@ const PopupRedux = tslib_1.__importStar(require("../../../Redux/ActionsReducers/
|
|
|
8
8
|
const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
|
|
9
9
|
class ButtonDeleteComponent extends React.Component {
|
|
10
10
|
render() {
|
|
11
|
-
var _a;
|
|
12
|
-
const
|
|
13
|
-
return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "delete", tooltip:
|
|
11
|
+
var _a, _b;
|
|
12
|
+
const _c = this.props, { onConfirmWarning, ConfirmAction, ConfirmationMsg, ConfirmationTitle, onClickAction } = _c, props = tslib_1.__rest(_c, ["onConfirmWarning", "ConfirmAction", "ConfirmationMsg", "ConfirmationTitle", "onClickAction"]);
|
|
13
|
+
return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "delete", tooltip: (_a = props.tooltip) !== null && _a !== void 0 ? _a : 'Delete', variant: "text", icon: "trash", iconSize: (_b = props.iconSize) !== null && _b !== void 0 ? _b : 24 }, props, { onClick: () => this.onClick() })));
|
|
14
14
|
}
|
|
15
15
|
onClick() {
|
|
16
16
|
if (this.props.ConfirmAction) {
|
|
@@ -6,7 +6,17 @@ const React = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const SimpleButton_1 = tslib_1.__importDefault(require("../../../components/SimpleButton"));
|
|
7
7
|
class ButtonPause extends React.Component {
|
|
8
8
|
render() {
|
|
9
|
-
|
|
9
|
+
const buttonIcon = this.props.fillColor === 'red'
|
|
10
|
+
? {
|
|
11
|
+
name: 'pause',
|
|
12
|
+
style: {
|
|
13
|
+
fill: 'red',
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
: {
|
|
17
|
+
name: 'pause',
|
|
18
|
+
};
|
|
19
|
+
return (React.createElement(SimpleButton_1.default, Object.assign({ "data-name": "pause", tooltip: "Pause", iconSize: 20, icon: buttonIcon, variant: "text" }, this.props)));
|
|
10
20
|
}
|
|
11
21
|
}
|
|
12
22
|
exports.ButtonPause = ButtonPause;
|
|
@@ -44,6 +44,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
44
44
|
};
|
|
45
45
|
this.debouncedAddFilter = debounce_1.default(() => this.props.onAddColumnFilter(this.state.filter), 250);
|
|
46
46
|
this.debouncedEditFilter = debounce_1.default(() => this.props.onEditColumnFilter(this.state.filter), 250);
|
|
47
|
+
this.debouncedLoadPermittedValues = debounce_1.default(() => this.loadPermittedValues(), 500);
|
|
47
48
|
const filter = this.getFilterFromProps();
|
|
48
49
|
this._isMounted = true;
|
|
49
50
|
this.state = {
|
|
@@ -58,9 +59,19 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
58
59
|
if (this.hasValuesPredicate((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate)) {
|
|
59
60
|
this.loadPermittedValues();
|
|
60
61
|
}
|
|
62
|
+
this.unsubscribeOnCellChanged = this.props.api.eventApi.on('CellChanged', (cellChangedInfo) => {
|
|
63
|
+
this.handleGridValueChange(cellChangedInfo.cellChange.column.columnId);
|
|
64
|
+
});
|
|
65
|
+
this.unsubscribeOnGridDataChanged = this.props.api.eventApi.on('GridDataChanged', () => {
|
|
66
|
+
// there is no way to find out if the changed rows are relevant for this filter, so we have to update it every time :/
|
|
67
|
+
this.handleGridValueChange();
|
|
68
|
+
});
|
|
61
69
|
}
|
|
62
70
|
componentWillUnmount() {
|
|
71
|
+
var _a, _b;
|
|
63
72
|
this._isMounted = false;
|
|
73
|
+
(_a = this.unsubscribeOnCellChanged) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
74
|
+
(_b = this.unsubscribeOnGridDataChanged) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
64
75
|
}
|
|
65
76
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
66
77
|
const filter = this.getFilterFromProps(nextProps);
|
|
@@ -153,7 +164,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
153
164
|
}
|
|
154
165
|
renderPredicateIcon(predicateDef) {
|
|
155
166
|
if (!predicateDef || !predicateDef.icon) {
|
|
156
|
-
return React.createElement(icons_1.Icon, { name: "filter
|
|
167
|
+
return React.createElement(icons_1.Icon, { name: "filter" });
|
|
157
168
|
}
|
|
158
169
|
if ('text' in predicateDef.icon) {
|
|
159
170
|
return React.createElement("span", null, predicateDef.icon.text);
|
|
@@ -239,7 +250,7 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
239
250
|
return (React.createElement(rebass_1.Flex, { onMouseEnter: () => {
|
|
240
251
|
var _a;
|
|
241
252
|
if (showEvent === 'click') {
|
|
242
|
-
// For showEvent=
|
|
253
|
+
// For showEvent=mousenter this is not needed.
|
|
243
254
|
// When mouseenter is triggered on the overlay, onShowFn is called, the overlay is no longer hidden.
|
|
244
255
|
// But in this case because the trigger is click, another show is not triggered.
|
|
245
256
|
(_a = this.valuesDropdown) === null || _a === void 0 ? void 0 : _a.show();
|
|
@@ -295,6 +306,16 @@ class QuickFilterFormComponent extends React.Component {
|
|
|
295
306
|
});
|
|
296
307
|
}
|
|
297
308
|
}
|
|
309
|
+
handleGridValueChange(changedColumnId) {
|
|
310
|
+
var _a, _b, _c, _d;
|
|
311
|
+
if (!this.hasValuesPredicate((_b = (_a = this.state) === null || _a === void 0 ? void 0 : _a.filter) === null || _b === void 0 ? void 0 : _b.Predicate)) {
|
|
312
|
+
return;
|
|
313
|
+
}
|
|
314
|
+
if (changedColumnId && changedColumnId !== ((_d = (_c = this.state) === null || _c === void 0 ? void 0 : _c.filter) === null || _d === void 0 ? void 0 : _d.ColumnId)) {
|
|
315
|
+
return;
|
|
316
|
+
}
|
|
317
|
+
this.debouncedLoadPermittedValues();
|
|
318
|
+
}
|
|
298
319
|
updateFilter(filter) {
|
|
299
320
|
this.setState({ filter });
|
|
300
321
|
if (filter.Uuid) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PanelProps } from '../../../components/Panel';
|
|
3
3
|
import { BoxProps } from 'rebass';
|
|
4
|
+
import { AdaptableInternalIconName } from '../../../PredefinedConfig/Common/AdaptableIcon';
|
|
4
5
|
export interface PanelWithButtonProps extends PanelProps {
|
|
5
6
|
buttonContent?: React.ReactNode;
|
|
6
7
|
buttonClick?: () => void;
|
|
@@ -10,7 +11,7 @@ export interface PanelWithButtonProps extends PanelProps {
|
|
|
10
11
|
headerProps?: BoxProps & {
|
|
11
12
|
'data-name': string;
|
|
12
13
|
};
|
|
13
|
-
glyphicon?:
|
|
14
|
+
glyphicon?: AdaptableInternalIconName;
|
|
14
15
|
buttonDisabled?: boolean;
|
|
15
16
|
buttonStyle?: string;
|
|
16
17
|
borderRadius?: string;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PanelProps } from '../../../components/Panel';
|
|
3
3
|
import { BoxProps } from 'rebass';
|
|
4
|
+
import { AdaptableInternalIconName } from '../../../PredefinedConfig/Common/AdaptableIcon';
|
|
4
5
|
export interface PanelWithImageProps extends PanelProps {
|
|
5
|
-
glyphicon?:
|
|
6
|
-
icon?:
|
|
6
|
+
glyphicon?: AdaptableInternalIconName;
|
|
7
|
+
icon?: AdaptableInternalIconName;
|
|
7
8
|
infoLink?: string;
|
|
8
9
|
infoLinkDisabled?: boolean;
|
|
9
10
|
borderRadius?: string;
|
|
@@ -37,6 +37,10 @@ const AdaptablePopupModuleView = (props) => {
|
|
|
37
37
|
moduleViewProperties.onOpenEditPopup();
|
|
38
38
|
}
|
|
39
39
|
}, []);
|
|
40
|
+
React.useEffect(() => {
|
|
41
|
+
var _a;
|
|
42
|
+
(_a = moduleViewProperties === null || moduleViewProperties === void 0 ? void 0 : moduleViewProperties.onMount) === null || _a === void 0 ? void 0 : _a.call(moduleViewProperties);
|
|
43
|
+
}, []);
|
|
40
44
|
React.useEffect(() => {
|
|
41
45
|
var _a, _b;
|
|
42
46
|
if (((_a = props.popupParams) === null || _a === void 0 ? void 0 : _a.action) === 'New' || ((_b = props.popupParams) === null || _b === void 0 ? void 0 : _b.action) === 'Edit') {
|
|
@@ -33,7 +33,7 @@ const AdaptablePopupTeamSharing = (props) => {
|
|
|
33
33
|
React.createElement("strong", null, "Active"),
|
|
34
34
|
": a \"live\" share that is automatically updated with every local change"))),
|
|
35
35
|
React.createElement(FormLayout_1.default, { padding: 2 },
|
|
36
|
-
React.createElement(FormLayout_1.FormRow, { label: "
|
|
36
|
+
React.createElement(FormLayout_1.FormRow, { label: "Name: " },
|
|
37
37
|
React.createElement(Input_1.default, { autoFocus: true, value: config.description, type: "string", width: 300, placeholder: "Enter text", onChange: (e) => setConfig(Object.assign(Object.assign({}, config), { description: e.target.value })) })),
|
|
38
38
|
React.createElement(FormLayout_1.FormRow, { label: "Share: " },
|
|
39
39
|
React.createElement(rebass_1.Flex, { flexDirection: "row" },
|
|
@@ -148,19 +148,11 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
148
148
|
return props.api.toolPanelApi.getCustomToolPanelButtons().map((button) => {
|
|
149
149
|
// TODO: variants of this mapping are present in several places (just search for api.internalApi.getStyleForButton() usages)
|
|
150
150
|
// with the next opportunity we should abstract it
|
|
151
|
-
// the default size of AdapTable SVG ModuleButtons
|
|
152
|
-
const defaultIconProps = {
|
|
153
|
-
style: {
|
|
154
|
-
height: 'var(--ab-cmp-simple-button__height)',
|
|
155
|
-
width: 'var(--ab-cmp-simple-button__width)',
|
|
156
|
-
},
|
|
157
|
-
};
|
|
158
151
|
const toolPanelContext = {
|
|
159
152
|
adaptableApi: props.api,
|
|
160
153
|
toolPanelState: props.api.toolPanelApi.getToolPanelState(),
|
|
161
154
|
};
|
|
162
155
|
const buttonIcon = props.api.internalApi.getIconForButton(button, toolPanelContext);
|
|
163
|
-
const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
|
|
164
156
|
let buttonStyle = props.api.internalApi.getStyleForButton(button, toolPanelContext);
|
|
165
157
|
let buttonLabel = props.api.internalApi.getLabelForButton(button, toolPanelContext);
|
|
166
158
|
let buttonTooltip = props.api.internalApi.getTooltipForButton(button, toolPanelContext);
|
|
@@ -171,9 +163,7 @@ const AdaptableToolPanelComponent = (props) => {
|
|
|
171
163
|
const buttonVariant = buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text';
|
|
172
164
|
const buttonTone = buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none';
|
|
173
165
|
const uniqueKey = buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : uuid_1.createUuid();
|
|
174
|
-
return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' },
|
|
175
|
-
buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
|
|
176
|
-
buttonLabel));
|
|
166
|
+
return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, icon: buttonIcon, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' }, buttonLabel));
|
|
177
167
|
});
|
|
178
168
|
};
|
|
179
169
|
const onSetColumnVisibility = (name) => {
|
|
@@ -44,20 +44,12 @@ const CustomToolPanelContent = (props) => {
|
|
|
44
44
|
((_a = customToolPanel.buttons) === null || _a === void 0 ? void 0 : _a.length) && (React.createElement("div", { id: buttonsDivId, className: `ab-ToolPanel__custom-content__buttons ${buttonsDivId}` }, customToolPanel.buttons.map((button) => {
|
|
45
45
|
// TODO: variants of this mapping are present in several places (just search for api.internalApi.getStyleForButton() usages)
|
|
46
46
|
// with the next opportunity we should abstract it
|
|
47
|
-
// the default size of AdapTable SVG ModuleButtons
|
|
48
|
-
const defaultIconProps = {
|
|
49
|
-
style: {
|
|
50
|
-
height: 'var(--ab-cmp-simple-button__height)',
|
|
51
|
-
width: 'var(--ab-cmp-simple-button__width)',
|
|
52
|
-
},
|
|
53
|
-
};
|
|
54
47
|
const toolPanelContext = {
|
|
55
48
|
adaptableApi: api,
|
|
56
49
|
toolPanelState: api.toolPanelApi.getToolPanelState(),
|
|
57
50
|
customToolPanel: customToolPanel,
|
|
58
51
|
};
|
|
59
52
|
const buttonIcon = api.internalApi.getIconForButton(button, toolPanelContext);
|
|
60
|
-
const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
|
|
61
53
|
let buttonStyle = api.internalApi.getStyleForButton(button, toolPanelContext);
|
|
62
54
|
let buttonLabel = api.internalApi.getLabelForButton(button, toolPanelContext);
|
|
63
55
|
let buttonTooltip = api.internalApi.getTooltipForButton(button, toolPanelContext);
|
|
@@ -68,9 +60,7 @@ const CustomToolPanelContent = (props) => {
|
|
|
68
60
|
const buttonVariant = buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text';
|
|
69
61
|
const buttonTone = buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none';
|
|
70
62
|
const uniqueKey = buttonLabel !== null && buttonLabel !== void 0 ? buttonLabel : uuid_1.createUuid();
|
|
71
|
-
return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' },
|
|
72
|
-
buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
|
|
73
|
-
buttonLabel));
|
|
63
|
+
return (React.createElement(SimpleButton_1.default, { key: uniqueKey, variant: buttonVariant, tone: buttonTone, className: `ab-ToolPanel__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, icon: buttonIcon, disabled: disabled, onClick: () => button.onClick(button, toolPanelContext), accessLevel: 'Full' }, buttonLabel));
|
|
74
64
|
})))));
|
|
75
65
|
};
|
|
76
66
|
exports.CustomToolPanelContent = CustomToolPanelContent;
|
|
@@ -15,18 +15,7 @@ const CustomDashboardButton = (props) => {
|
|
|
15
15
|
adaptableApi: props.api,
|
|
16
16
|
dashboardState: props.api.dashboardApi.getDashboardState(),
|
|
17
17
|
};
|
|
18
|
-
const defaultIconProps = {
|
|
19
|
-
style: {
|
|
20
|
-
height: 'var(--ab-cmp-simple-button__height)',
|
|
21
|
-
width: 'var(--ab-cmp-simple-button__width)',
|
|
22
|
-
},
|
|
23
|
-
};
|
|
24
18
|
const buttonIcon = props.api.internalApi.getIconForButton(button, dashboardContext);
|
|
25
|
-
const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
|
|
26
|
-
// const iconProps: any = button.icon ? { ...button.icon } : null;
|
|
27
|
-
// if (iconProps) {
|
|
28
|
-
// delete iconProps.Uuid;
|
|
29
|
-
// }
|
|
30
19
|
let buttonStyle = props.api.internalApi.getStyleForButton(button, dashboardContext);
|
|
31
20
|
let buttonLabel = props.api.internalApi.getLabelForButton(button, dashboardContext);
|
|
32
21
|
let buttonTooltip = props.api.internalApi.getTooltipForButton(button, dashboardContext);
|
|
@@ -34,15 +23,13 @@ const CustomDashboardButton = (props) => {
|
|
|
34
23
|
return null;
|
|
35
24
|
}
|
|
36
25
|
const disabled = button.disabled && button.disabled(button, dashboardContext);
|
|
37
|
-
return (React.createElement(SimpleButton_1.default, { key: buttonLabel, variant: buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text', tone: buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none', className: `ab-DashboardToolbar__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, disabled: disabled || props.accessLevel == 'ReadOnly', onClick: () => {
|
|
26
|
+
return (React.createElement(SimpleButton_1.default, { key: buttonLabel, variant: buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'text', tone: buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'none', className: `ab-DashboardToolbar__Home__${kebabCase_1.default(buttonLabel)} ${(buttonStyle === null || buttonStyle === void 0 ? void 0 : buttonStyle.className) || ''}`, tooltip: buttonTooltip, icon: buttonIcon, disabled: disabled || props.accessLevel == 'ReadOnly', onClick: () => {
|
|
38
27
|
var _a;
|
|
39
28
|
(_a = button.onClick) === null || _a === void 0 ? void 0 : _a.call(button, button, dashboardContext);
|
|
40
29
|
setTimeout(() => {
|
|
41
30
|
// mutate state to force a re-rendering
|
|
42
31
|
setComponentRevision(componentRevision + 1);
|
|
43
32
|
}, 16);
|
|
44
|
-
}, accessLevel: 'Full' },
|
|
45
|
-
buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
|
|
46
|
-
buttonLabel));
|
|
33
|
+
}, accessLevel: 'Full' }, buttonLabel));
|
|
47
34
|
};
|
|
48
35
|
exports.CustomDashboardButton = CustomDashboardButton;
|
|
@@ -69,14 +69,7 @@ const CustomToolbarWrapper = (props) => {
|
|
|
69
69
|
adaptableApi: api,
|
|
70
70
|
dashboardState: api.dashboardApi.getDashboardState(),
|
|
71
71
|
};
|
|
72
|
-
const defaultIconProps = {
|
|
73
|
-
style: {
|
|
74
|
-
height: 'var(--ab-cmp-simple-button__height)',
|
|
75
|
-
width: 'var(--ab-cmp-simple-button__width)',
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
72
|
const buttonIcon = api.internalApi.getIconForButton(button, dashboardContext);
|
|
79
|
-
const iconProps = buttonIcon && Object.assign({}, defaultIconProps, buttonIcon);
|
|
80
73
|
let buttonStyle = api.internalApi.getStyleForButton(button, dashboardContext);
|
|
81
74
|
let buttonLabel = api.internalApi.getLabelForButton(button, dashboardContext);
|
|
82
75
|
let buttonTooltip = api.internalApi.getTooltipForButton(button, dashboardContext);
|
|
@@ -86,15 +79,13 @@ const CustomToolbarWrapper = (props) => {
|
|
|
86
79
|
const disabled = button.disabled && button.disabled(button, dashboardContext);
|
|
87
80
|
let buttonVariant = buttonStyle && buttonStyle.variant ? buttonStyle.variant : 'outlined';
|
|
88
81
|
let buttonTone = buttonStyle && buttonStyle.tone ? buttonStyle.tone : 'neutral';
|
|
89
|
-
return (React.createElement(SimpleButton_1.default, { style: { marginLeft: index ? 'var(--ab-space-1)' : 0 }, key: index, disabled: disabled, tooltip: buttonTooltip, variant: buttonVariant, tone: buttonTone, onClick: () => {
|
|
82
|
+
return (React.createElement(SimpleButton_1.default, { style: { marginLeft: index ? 'var(--ab-space-1)' : 0 }, key: index, disabled: disabled, tooltip: buttonTooltip, icon: buttonIcon, variant: buttonVariant, tone: buttonTone, onClick: () => {
|
|
90
83
|
button.onClick ? button.onClick(button, dashboardContext) : null;
|
|
91
84
|
setTimeout(() => {
|
|
92
85
|
// mutate state to force a re-rendering
|
|
93
86
|
setComponentRevision(componentRevision + 1);
|
|
94
87
|
}, 16);
|
|
95
|
-
} },
|
|
96
|
-
buttonIcon ? React.createElement("img", Object.assign({}, iconProps)) : null,
|
|
97
|
-
buttonLabel));
|
|
88
|
+
} }, buttonLabel));
|
|
98
89
|
}))));
|
|
99
90
|
};
|
|
100
91
|
exports.CustomToolbarWrapper = CustomToolbarWrapper;
|
|
@@ -18,6 +18,7 @@ const Tabs_1 = require("../../../components/Tabs");
|
|
|
18
18
|
const StringExtensions_1 = tslib_1.__importDefault(require("../../../Utilities/Extensions/StringExtensions"));
|
|
19
19
|
const Tag_1 = require("../../../components/Tag");
|
|
20
20
|
const AdaptableContext_1 = require("../../AdaptableContext");
|
|
21
|
+
const FormatHelper_1 = tslib_1.__importDefault(require("../../../Utilities/Helpers/FormatHelper"));
|
|
21
22
|
const DOLLAR_OPTIONS = {
|
|
22
23
|
FractionDigits: 2,
|
|
23
24
|
FractionSeparator: '.',
|
|
@@ -84,13 +85,16 @@ const getFormatColumnFormatSummaryValue = (data, formattedColumnApi) => {
|
|
|
84
85
|
}
|
|
85
86
|
else {
|
|
86
87
|
if (data.DisplayFormat.Formatter === 'NumberFormatter') {
|
|
87
|
-
content =
|
|
88
|
+
content = FormatHelper_1.default.NumberFormatter(12345.6789, data.DisplayFormat.Options);
|
|
89
|
+
//formattedColumnApi.getNumberFormattedValue(12345.6789, data.DisplayFormat.Options);
|
|
88
90
|
}
|
|
89
91
|
if (data.DisplayFormat.Formatter === 'DateFormatter') {
|
|
90
|
-
content =
|
|
92
|
+
content = FormatHelper_1.default.DateFormatter(new Date(), data.DisplayFormat.Options);
|
|
93
|
+
//formattedColumnApi.getDateFormattedValue(new Date(), data.DisplayFormat.Options);
|
|
91
94
|
}
|
|
92
95
|
if (data.DisplayFormat.Formatter === 'StringFormatter') {
|
|
93
|
-
content =
|
|
96
|
+
content = FormatHelper_1.default.StringFormatter('Hello World ', data.DisplayFormat.Options);
|
|
97
|
+
//formattedColumnApi.getStringFormattedValue('Hello World ', data.DisplayFormat.Options);
|
|
94
98
|
}
|
|
95
99
|
}
|
|
96
100
|
return content;
|
|
@@ -169,7 +173,7 @@ const renderDateFormat = (data, _onChange, setFormatOption, customFormatters, fo
|
|
|
169
173
|
React.createElement(FormLayout_1.default, null,
|
|
170
174
|
React.createElement(FormLayout_1.FormRow, { label: "Pattern" },
|
|
171
175
|
React.createElement(Input_1.default, { value: data.DisplayFormat.Options.Pattern, onChange: (e) => setFormatOption('Pattern', e.currentTarget.value), mr: 2 }),
|
|
172
|
-
React.createElement("span", null,
|
|
176
|
+
React.createElement("span", null, FormatHelper_1.default.DateFormatter(new Date(), data.DisplayFormat.Options))),
|
|
173
177
|
customFormatters.map((formatter) => renderCustomFormatter(data, formatter, setFormatOption))))),
|
|
174
178
|
React.createElement(Tabs_1.Tabs, { marginTop: 2 },
|
|
175
179
|
React.createElement(Tabs_1.Tabs.Tab, null, "Presets"),
|
|
@@ -182,7 +186,7 @@ const renderDateFormat = (data, _onChange, setFormatOption, customFormatters, fo
|
|
|
182
186
|
DateFormatPresets.map((Pattern, index) => (React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: index, colItems: [
|
|
183
187
|
{ Content: Pattern, Size: 1 },
|
|
184
188
|
{
|
|
185
|
-
Content:
|
|
189
|
+
Content: FormatHelper_1.default.DateFormatter(new Date(), { Pattern }),
|
|
186
190
|
Size: 1,
|
|
187
191
|
},
|
|
188
192
|
{
|
|
@@ -299,21 +303,21 @@ const renderNumberFormat = (data, onChange, setFormatOption, customFormatters, f
|
|
|
299
303
|
React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
|
|
300
304
|
{ Content: '12345.6789', Size: 1 },
|
|
301
305
|
{
|
|
302
|
-
Content:
|
|
306
|
+
Content: FormatHelper_1.default.NumberFormatter(12345.6789, data.DisplayFormat.Options),
|
|
303
307
|
Size: 1,
|
|
304
308
|
},
|
|
305
309
|
] }),
|
|
306
310
|
React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
|
|
307
311
|
{ Content: '-12345.6789', Size: 1 },
|
|
308
312
|
{
|
|
309
|
-
Content:
|
|
313
|
+
Content: FormatHelper_1.default.NumberFormatter(-12345.6789, data.DisplayFormat.Options),
|
|
310
314
|
Size: 1,
|
|
311
315
|
},
|
|
312
316
|
] }),
|
|
313
317
|
React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { colItems: [
|
|
314
318
|
{ Content: '0.123', Size: 1 },
|
|
315
319
|
{
|
|
316
|
-
Content:
|
|
320
|
+
Content: FormatHelper_1.default.NumberFormatter(0.123, data.DisplayFormat.Options),
|
|
317
321
|
Size: 1,
|
|
318
322
|
},
|
|
319
323
|
] })))));
|
|
@@ -350,7 +354,7 @@ const renderStringFormat = (data, _onChange, setFormatOption, customFormatters,
|
|
|
350
354
|
{ Content: '"Hello World "', Size: 1 },
|
|
351
355
|
{
|
|
352
356
|
Content: '"' +
|
|
353
|
-
|
|
357
|
+
FormatHelper_1.default.StringFormatter('Hello World ', data.DisplayFormat.Options) +
|
|
354
358
|
'"',
|
|
355
359
|
Size: 1,
|
|
356
360
|
},
|
|
@@ -60,6 +60,7 @@ const isValidFreeTextColumn = (data, api) => {
|
|
|
60
60
|
};
|
|
61
61
|
exports.isValidFreeTextColumn = isValidFreeTextColumn;
|
|
62
62
|
const FreeTextColumnSettingsWizardSection = (props) => {
|
|
63
|
+
var _a;
|
|
63
64
|
const { data, api } = OnePageAdaptableWizard_1.useOnePageAdaptableWizardContext();
|
|
64
65
|
const Pattern = api.internalApi.getAdaptableOptions().userInterfaceOptions.dateInputOptions.dateFormat;
|
|
65
66
|
const [ColumnNameFocused, setColumnNameFocused] = react_1.useState(false);
|
|
@@ -128,6 +129,11 @@ const FreeTextColumnSettingsWizardSection = (props) => {
|
|
|
128
129
|
} })) : (React.createElement(AdaptableInput_1.default, { value: data.DataType === 'Date' && data.DefaultValue
|
|
129
130
|
? DateHelper_1.parseToISO(data.DefaultValue, Pattern) || ''
|
|
130
131
|
: data.DefaultValue || '', style: { width: '100%', maxWidth: 500 }, type: data.DataType === 'Number' ? 'number' : data.DataType === 'Date' ? 'date' : 'text', placeholder: "Default Column Value (not required)", onChange: (e) => handleDefaultValueChange(e) }))),
|
|
132
|
+
React.createElement(FormLayout_1.FormRow, { label: "Header Tooltip" },
|
|
133
|
+
React.createElement(Input_1.default, { "data-name": "header-tooltip", type: "text", style: { width: '100%', maxWidth: 500 }, value: ((_a = data.FreeTextColumnSettings) === null || _a === void 0 ? void 0 : _a.HeaderToolTip) || '', onChange: (e) => handleSpecialColumnSettingsChange({
|
|
134
|
+
HeaderToolTip: e.target.value,
|
|
135
|
+
}) })),
|
|
136
|
+
' ',
|
|
131
137
|
data.DataType == 'String' && (React.createElement(FormLayout_1.FormRow, { label: "Editor Type" },
|
|
132
138
|
React.createElement(Radio_1.default, { value: "Inline", checked: data.TextEditor == 'Inline', onChange: (_, e) => onDynamicSelectChanged(e), marginRight: 2 }, "Inline Editor"),
|
|
133
139
|
React.createElement(Radio_1.default, { value: "Large", checked: data.TextEditor == 'Large', onChange: (_, e) => onDynamicSelectChanged(e) }, "Large Editor")))),
|
|
@@ -102,7 +102,7 @@ const GridInfoPopup = (props) => {
|
|
|
102
102
|
return React.createElement(AdaptableObjectRow_1.AdaptableObjectRow, { key: index, colItems: x });
|
|
103
103
|
});
|
|
104
104
|
const showRadioButtons = [showGridSummary, showAdaptableOptions, showColumnInfo, showAdaptableObjects].filter((item) => item).length > 1;
|
|
105
|
-
return (React.createElement(PopupPanel_1.PopupPanel, { headerText: 'Grid Info', glyphicon: 'info
|
|
105
|
+
return (React.createElement(PopupPanel_1.PopupPanel, { headerText: 'Grid Info', glyphicon: 'info' },
|
|
106
106
|
React.createElement(rebass_1.Flex, { marginBottom: 2, padding: 3 }, showRadioButtons && (React.createElement(React.Fragment, null,
|
|
107
107
|
showGridSummary && (React.createElement(Radio_1.default, { "data-name": "radioButton-GridSummary", marginRight: 3, value: "GridSummary", checked: state.ActiveTab == 'GridSummary', onChange: (_, e) => onShowGridSummaryChanged('GridSummary') }, "Summary")),
|
|
108
108
|
showAdaptableOptions && (React.createElement(Radio_1.default, { "data-name": "radioButton-AdaptableOptions", marginRight: 3, value: "AdaptableOptions", checked: state.ActiveTab == 'AdaptableOptions', onChange: (_, e) => onShowGridSummaryChanged('AdaptableOptions') }, "Options")),
|
|
@@ -70,7 +70,9 @@ const LayoutEditorStandalonePopup = (props) => {
|
|
|
70
70
|
}, []);
|
|
71
71
|
const finishDisabled = !layoutData.Name;
|
|
72
72
|
return (React.createElement(rebass_1.Flex, { height: "100%", flexDirection: "column" },
|
|
73
|
-
React.createElement(LayoutEditorWizard_1.LayoutEditorWizard, { data: layoutData, api: adaptable.api, Layouts: layouts, moduleInfo: layoutModule.moduleInfo, onLayoutChange: setStateLayout,
|
|
73
|
+
React.createElement(LayoutEditorWizard_1.LayoutEditorWizard, { data: layoutData, api: adaptable.api, Layouts: layouts, moduleInfo: layoutModule.moduleInfo, onLayoutChange: setStateLayout,
|
|
74
|
+
// @ts-ignore
|
|
75
|
+
updateGoBackState: () => null }),
|
|
74
76
|
React.createElement(PanelFooter_1.PanelFooter, { acceptDisabled: finishDisabled, onAccept: handleAccept, onCancel: handleCancel })));
|
|
75
77
|
};
|
|
76
78
|
exports.LayoutEditorStandalonePopup = LayoutEditorStandalonePopup;
|
|
@@ -28,5 +28,5 @@ declare class LayoutPopupComponent extends React.Component<LayoutPopupProps, Edi
|
|
|
28
28
|
canFinishWizard(): boolean;
|
|
29
29
|
private getCurrentLayout;
|
|
30
30
|
}
|
|
31
|
-
export declare let LayoutPopup: import("react-redux").ConnectedComponent<typeof LayoutPopupComponent, import("react-redux").Omit<React.ClassAttributes<LayoutPopupComponent> & LayoutPopupProps, "ref" | "key" | "api" | "onSuspend" | "accessLevel" | "popupParams" | "onClearPopupParams" | "teamSharingActivated" | "onClosePopup" | "moduleInfo" | "onUnSuspend" | "modalContainer" | "onShare" | "
|
|
31
|
+
export declare let LayoutPopup: import("react-redux").ConnectedComponent<typeof LayoutPopupComponent, import("react-redux").Omit<React.ClassAttributes<LayoutPopupComponent> & LayoutPopupProps, "ref" | "key" | "api" | "onSuspend" | "accessLevel" | "popupParams" | "onClearPopupParams" | "teamSharingActivated" | "onClosePopup" | "moduleInfo" | "onUnSuspend" | "modalContainer" | "onShare" | "onSelectLayout" | "onSaveLayout" | "Layouts" | "CurrentLayoutName" | "CurrentLayoutDraft" | "onAddLayout">>;
|
|
32
32
|
export {};
|
|
@@ -15,5 +15,5 @@ declare class LayoutViewPanelComponent extends React.Component<LayoutViewPanelCo
|
|
|
15
15
|
render(): any;
|
|
16
16
|
private onSaveLayout;
|
|
17
17
|
}
|
|
18
|
-
export declare let LayoutViewPanelControl: import("react-redux").ConnectedComponent<typeof LayoutViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<LayoutViewPanelComponent> & LayoutViewPanelComponentProps, "api" | "accessLevel" | "moduleInfo" | "viewType" | "
|
|
18
|
+
export declare let LayoutViewPanelControl: import("react-redux").ConnectedComponent<typeof LayoutViewPanelComponent, import("react-redux").Omit<React.ClassAttributes<LayoutViewPanelComponent> & LayoutViewPanelComponentProps, "api" | "accessLevel" | "moduleInfo" | "viewType" | "onSelectLayout" | "onSaveLayout" | "Layouts" | "CurrentDraftLayout" | "CanSave" | "CurrentLayoutName"> & LayoutViewPanelComponentProps>;
|
|
19
19
|
export {};
|
|
@@ -10,7 +10,7 @@ export interface LayoutEditorWizardState {
|
|
|
10
10
|
layout: Layout;
|
|
11
11
|
errorMessage: string;
|
|
12
12
|
}
|
|
13
|
-
export declare class LayoutEditorWizard extends React.Component<
|
|
13
|
+
export declare class LayoutEditorWizard extends React.Component<any, any> implements AdaptableWizardStep {
|
|
14
14
|
constructor(props: LayoutEditorWizardProps);
|
|
15
15
|
render(): any;
|
|
16
16
|
onLayoutNameChange: (event: React.FormEvent<any>) => void;
|
|
@@ -20,32 +20,7 @@ export declare class LayoutEditorWizard extends React.Component<LayoutEditorWiza
|
|
|
20
20
|
}) => string;
|
|
21
21
|
updateLayout: (layout: Partial<Layout>) => void;
|
|
22
22
|
onLayoutChange: (layout: Layout) => void;
|
|
23
|
-
getLayout: () =>
|
|
24
|
-
Name: string;
|
|
25
|
-
Columns: string[];
|
|
26
|
-
ColumnWidthMap?: {
|
|
27
|
-
[columnId: string]: number;
|
|
28
|
-
};
|
|
29
|
-
ColumnSorts?: import("../../../types").ColumnSort[];
|
|
30
|
-
ColumnFilters?: import("../../../types").ColumnFilter[];
|
|
31
|
-
RowGroupedColumns?: string[];
|
|
32
|
-
ExpandedRowGroupValues?: any[];
|
|
33
|
-
AggregationColumns?: Record<string, string | true>;
|
|
34
|
-
EnablePivot?: boolean;
|
|
35
|
-
PivotColumns?: string[];
|
|
36
|
-
PinnedColumnsMap?: {
|
|
37
|
-
[columnId: string]: "left" | "right";
|
|
38
|
-
};
|
|
39
|
-
AutoSave?: boolean;
|
|
40
|
-
ColumnHeadersMap?: {
|
|
41
|
-
[columnId: string]: string;
|
|
42
|
-
};
|
|
43
|
-
SuppressAggFuncInHeader?: boolean;
|
|
44
|
-
Uuid?: string;
|
|
45
|
-
Source?: "Config" | "User";
|
|
46
|
-
IsReadOnly?: boolean;
|
|
47
|
-
Tags?: string[];
|
|
48
|
-
};
|
|
23
|
+
getLayout: () => any;
|
|
49
24
|
canNext(): boolean;
|
|
50
25
|
canBack(): boolean;
|
|
51
26
|
next(): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { SharedEntity } from '../../../types';
|
|
3
|
+
export declare const Dependencies: React.FunctionComponent<{
|
|
4
|
+
sharedEntity: SharedEntity;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const SharedEntityDependencies: React.FunctionComponent<{
|
|
7
|
+
data: SharedEntity;
|
|
8
|
+
}>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SharedEntityDependencies = exports.Dependencies = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const rebass_1 = require("rebass");
|
|
7
|
+
const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
|
|
8
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
9
|
+
const AdaptableObjectList_1 = require("../Components/AdaptableObjectList/AdaptableObjectList");
|
|
10
|
+
const Dependencies = (props) => {
|
|
11
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
12
|
+
const dependencies = adaptable.api.teamSharingApi.getSharedEntryDependencies(props.sharedEntity);
|
|
13
|
+
return (React.createElement(React.Fragment, null, dependencies.map((sharedEntity) => {
|
|
14
|
+
const module = adaptable.ModuleService.getModuleById('TeamSharing');
|
|
15
|
+
const itemView = module.toView(sharedEntity);
|
|
16
|
+
return (React.createElement(rebass_1.Box, { as: "ul", padding: 0, key: sharedEntity.Uuid, className: "ab-Shared-Entity-Shared-Object", mb: 2 },
|
|
17
|
+
React.createElement(AdaptableObjectList_1.AdaptableObjectListItem, { deleteTooltip: 'Cannot delete dependencies.', deleteDisabled: true, module: module, data: itemView })));
|
|
18
|
+
})));
|
|
19
|
+
};
|
|
20
|
+
exports.Dependencies = Dependencies;
|
|
21
|
+
const SharedEntityDependencies = (props) => {
|
|
22
|
+
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
23
|
+
return (React.createElement(React.Fragment, null,
|
|
24
|
+
React.createElement(rebass_1.Box, { mb: 3, mt: 2 }, isExpanded ? (React.createElement(SimpleButton_1.default, { onClick: () => setIsExpanded(false), icon: "arrow-up" }, "Collapse")) : (React.createElement(SimpleButton_1.default, { onClick: () => setIsExpanded(true), icon: "arrow-down" }, "Expand"))),
|
|
25
|
+
isExpanded && React.createElement(exports.Dependencies, { sharedEntity: props.data })));
|
|
26
|
+
};
|
|
27
|
+
exports.SharedEntityDependencies = SharedEntityDependencies;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { SharedEntity } from '../../../types';
|
|
3
|
+
export declare const SharedEntityTypeItemView: React.FunctionComponent<{
|
|
4
|
+
data: SharedEntity;
|
|
5
|
+
}>;
|
|
6
|
+
export declare const getSharedEntityActiveStatusObjectView: (isDependency: boolean) => (props: {
|
|
7
|
+
data: SharedEntity;
|
|
8
|
+
}) => JSX.Element;
|
|
9
|
+
export declare const getSharedEntityStaleDepsItemView: (staleDependencies: SharedEntity[]) => () => JSX.Element;
|