@adaptabletools/adaptable 12.0.1-canary.0 → 12.0.1
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 +5 -18
- package/bundle.cjs.js +95 -95
- package/index.css +6 -22
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/Api/FilterApi.d.ts +7 -2
- package/src/Api/Implementation/FilterApiImpl.d.ts +1 -0
- package/src/Api/Implementation/FilterApiImpl.js +5 -0
- package/src/Api/Implementation/TeamSharingApiImpl.d.ts +1 -0
- package/src/Api/Implementation/TeamSharingApiImpl.js +5 -0
- package/src/Api/TeamSharingApi.d.ts +4 -0
- package/src/PredefinedConfig/Common/AdaptableIcon.d.ts +4 -1
- package/src/Redux/ActionsReducers/LayoutRedux.js +3 -0
- package/src/Strategy/AdaptableModuleBase.d.ts +4 -0
- package/src/Strategy/AdaptableModuleBase.js +6 -0
- package/src/Strategy/DashboardModule.js +1 -0
- package/src/Strategy/ExportModule.js +1 -0
- package/src/Strategy/FormatColumnModule.js +3 -3
- package/src/Strategy/GridInfoModule.js +2 -0
- package/src/Strategy/Interface/IModule.d.ts +11 -1
- 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/Services/TeamSharingService.js +0 -2
- package/src/View/AdaptableViewFactory.js +0 -2
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.d.ts +13 -1
- package/src/View/Components/AdaptableObjectList/AdaptableObjectList.js +17 -14
- package/src/View/Components/Buttons/ButtonDelete.js +3 -3
- package/src/View/Components/FilterForm/QuickFilterForm.js +22 -1
- package/src/View/Components/Popups/AdaptablePopup/AdaptablePopupModuleView.js +4 -0
- package/src/View/Components/Popups/AdaptablePopupTeamSharing.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/agGrid/Adaptable.js +0 -1
- package/src/components/icons/index.js +0 -4
- package/src/metamodel/adaptable.metamodel.d.ts +5 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- 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
|
@@ -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);
|
|
@@ -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) {
|
|
@@ -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" },
|
|
@@ -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;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSharedEntityStaleDepsItemView = exports.getSharedEntityActiveStatusObjectView = exports.SharedEntityTypeItemView = 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 Tag_1 = require("../../components/Tag");
|
|
9
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
10
|
+
const AdaptableObjectList_1 = require("../Components/AdaptableObjectList/AdaptableObjectList");
|
|
11
|
+
const SharedEntityTypeItemView = (props) => {
|
|
12
|
+
const [isExpanded, setIsExpanded] = React.useState(false);
|
|
13
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
14
|
+
const moduleName = props.data.Module;
|
|
15
|
+
const module = adaptable.ModuleService.getModuleById(moduleName);
|
|
16
|
+
const sharedObject = props.data.Entity;
|
|
17
|
+
const item = module.toView(sharedObject);
|
|
18
|
+
return (React.createElement(React.Fragment, null,
|
|
19
|
+
React.createElement(rebass_1.Flex, { mb: 2, mt: 2 },
|
|
20
|
+
React.createElement(rebass_1.Flex, { mr: 2, alignItems: "center" },
|
|
21
|
+
React.createElement(Tag_1.Tag, { style: { margin: 0 } }, props.data.Module)),
|
|
22
|
+
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"))),
|
|
23
|
+
isExpanded && (React.createElement(rebass_1.Box, { as: "ul", padding: 0, className: "ab-Shared-Entity-Shared-Object" },
|
|
24
|
+
React.createElement(AdaptableObjectList_1.AdaptableObjectListItem, { hideControls: true, data: item, module: module })))));
|
|
25
|
+
};
|
|
26
|
+
exports.SharedEntityTypeItemView = SharedEntityTypeItemView;
|
|
27
|
+
const getSharedEntityActiveStatusObjectView = (isDependency) => (props) => {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
30
|
+
const activeEntries = adaptable.api.internalApi.getState().TeamSharing.ActiveSharedEntityMap;
|
|
31
|
+
const sharedEntity = props.data;
|
|
32
|
+
const isAdaptableObjectPresentInLocalState = !!adaptable.api.internalApi
|
|
33
|
+
.getModuleService()
|
|
34
|
+
.getModuleById(sharedEntity.Module)
|
|
35
|
+
.getModuleAdaptableObjects()
|
|
36
|
+
.find((adaptableObject) => adaptableObject.Uuid === sharedEntity.Entity.Uuid);
|
|
37
|
+
const isUpToDateAndActive = isAdaptableObjectPresentInLocalState &&
|
|
38
|
+
sharedEntity.Type === 'Active' &&
|
|
39
|
+
((_a = activeEntries[sharedEntity.Entity.Uuid]) === null || _a === void 0 ? void 0 : _a.Revision) === sharedEntity.Revision;
|
|
40
|
+
const staleActiveEntities = adaptable.api.internalApi
|
|
41
|
+
.getTeamSharingService()
|
|
42
|
+
.getStaleActiveSharedEntities();
|
|
43
|
+
const isStaleAndActive = isAdaptableObjectPresentInLocalState && !!staleActiveEntities[sharedEntity.Uuid];
|
|
44
|
+
let activeInfo = null;
|
|
45
|
+
if (isAdaptableObjectPresentInLocalState) {
|
|
46
|
+
const activeRevision = (_b = activeEntries === null || activeEntries === void 0 ? void 0 : activeEntries[sharedEntity.Entity.Uuid]) === null || _b === void 0 ? void 0 : _b.Revision;
|
|
47
|
+
if (sharedEntity.Type === 'Active') {
|
|
48
|
+
const newRevision = sharedEntity.Revision;
|
|
49
|
+
let statusInfo = null;
|
|
50
|
+
if (isUpToDateAndActive) {
|
|
51
|
+
statusInfo = (React.createElement(rebass_1.Box, { ml: 1, style: { color: 'var(--ab-color-success)' } },
|
|
52
|
+
React.createElement("b", null, "up-to-date")));
|
|
53
|
+
}
|
|
54
|
+
if (isStaleAndActive) {
|
|
55
|
+
statusInfo = (React.createElement(rebass_1.Box, { ml: 1, style: { color: 'var(--ab-color-warn)' } }, ` (Rev. ${newRevision} available)`));
|
|
56
|
+
}
|
|
57
|
+
activeInfo = (React.createElement(React.Fragment, null,
|
|
58
|
+
`Imported Rev. ${activeRevision} ${isStaleAndActive ? 'is stale' : ''} `,
|
|
59
|
+
" ",
|
|
60
|
+
statusInfo));
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
// snapshot
|
|
64
|
+
activeInfo = React.createElement(React.Fragment, null, `Imported Rev. ${activeRevision}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
const sharedValue = `by ${sharedEntity.UserName} at ${new Date(sharedEntity.Timestamp).toLocaleString()}`;
|
|
68
|
+
return (React.createElement(React.Fragment, null,
|
|
69
|
+
!isDependency && React.createElement(Tag_1.Tag, null, sharedValue),
|
|
70
|
+
activeInfo && React.createElement(Tag_1.Tag, null, activeInfo)));
|
|
71
|
+
};
|
|
72
|
+
exports.getSharedEntityActiveStatusObjectView = getSharedEntityActiveStatusObjectView;
|
|
73
|
+
const getSharedEntityStaleDepsItemView = (staleDependencies) => () => {
|
|
74
|
+
let staleDepsString = 'Shared entity has';
|
|
75
|
+
if ((staleDependencies === null || staleDependencies === void 0 ? void 0 : staleDependencies.length) === 1) {
|
|
76
|
+
staleDepsString += ` one (${staleDependencies[0].Module}) stale dependency`;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
staleDepsString += ` ${staleDependencies.length} stale dependencies`;
|
|
80
|
+
}
|
|
81
|
+
return (React.createElement(Tag_1.Tag, null,
|
|
82
|
+
React.createElement(rebass_1.Box, { ml: 1, style: { color: 'var(--ab-color-warn)' } }, staleDepsString)));
|
|
83
|
+
};
|
|
84
|
+
exports.getSharedEntityStaleDepsItemView = getSharedEntityStaleDepsItemView;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TeamSharingApplyButton = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const SimpleButton_1 = tslib_1.__importDefault(require("../../components/SimpleButton"));
|
|
7
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
8
|
+
const TeamSharingApplyButton = (props) => {
|
|
9
|
+
const adaptable = AdaptableContext_1.useAdaptable();
|
|
10
|
+
const handleImport = React.useCallback(() => {
|
|
11
|
+
adaptable.api.teamSharingApi.importSharedEntry(props.data);
|
|
12
|
+
}, []);
|
|
13
|
+
return (React.createElement(SimpleButton_1.default, { onClick: handleImport, variant: "text", tooltip: "Apply Adaptable Object", icon: "import-export" }));
|
|
14
|
+
};
|
|
15
|
+
exports.TeamSharingApplyButton = TeamSharingApplyButton;
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -2700,7 +2700,6 @@ class Adaptable {
|
|
|
2700
2700
|
this.gridOptions.api.addGlobalListener((this.listenerGlobalColumnEventsThatTriggerStateChange = (type) => {
|
|
2701
2701
|
if (columnEventsThatTriggersStateChange.indexOf(type) > -1) {
|
|
2702
2702
|
this.debouncedSetColumnIntoStore();
|
|
2703
|
-
this.debouncedFilterGrid();
|
|
2704
2703
|
}
|
|
2705
2704
|
}));
|
|
2706
2705
|
/**
|
|
@@ -52,7 +52,6 @@ const column_chooser_1 = tslib_1.__importDefault(require("./column-chooser"));
|
|
|
52
52
|
const column_add_1 = tslib_1.__importDefault(require("./column-add"));
|
|
53
53
|
const cell_validation_1 = tslib_1.__importDefault(require("./cell-validation"));
|
|
54
54
|
const column_filter_1 = tslib_1.__importDefault(require("./column-filter"));
|
|
55
|
-
const column_info_1 = tslib_1.__importDefault(require("./column-info"));
|
|
56
55
|
const custom_sort_1 = tslib_1.__importDefault(require("./custom-sort"));
|
|
57
56
|
const system_status_1 = tslib_1.__importDefault(require("./system-status"));
|
|
58
57
|
const data_set_1 = tslib_1.__importDefault(require("./data-set"));
|
|
@@ -168,7 +167,6 @@ const allIcons = {
|
|
|
168
167
|
'cell-validation': cell_validation_1.default,
|
|
169
168
|
'conditional-style': conditional_style_1.default,
|
|
170
169
|
chat: chat_1.default,
|
|
171
|
-
'column-info': column_info_1.default,
|
|
172
170
|
'custom-sort': custom_sort_1.default,
|
|
173
171
|
dashboard: dashboard_1.default,
|
|
174
172
|
'flashing-cell': flashing_cell_1.default,
|
|
@@ -191,8 +189,6 @@ const allIcons = {
|
|
|
191
189
|
// others
|
|
192
190
|
edit: edit_1.default,
|
|
193
191
|
'tab-unselected': tab_unselected_1.default,
|
|
194
|
-
'check-box': check_box_1.default,
|
|
195
|
-
'check-box-outline': check_box_outline_1.default,
|
|
196
192
|
unchecked: check_box_outline_1.default,
|
|
197
193
|
checked: check_box_1.default,
|
|
198
194
|
'boolean-list': boolean_list_1.default,
|
|
@@ -466,6 +466,11 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
466
466
|
reference?: undefined;
|
|
467
467
|
})[];
|
|
468
468
|
};
|
|
469
|
+
AdaptableInternalIconName: {
|
|
470
|
+
name: string;
|
|
471
|
+
kind: string;
|
|
472
|
+
description: string;
|
|
473
|
+
};
|
|
469
474
|
AdaptableLoadStateFunction: {
|
|
470
475
|
name: string;
|
|
471
476
|
kind: string;
|