@adaptabletools/adaptable 16.0.0-canary.8 → 16.0.0-canary.9
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 +24 -0
- package/base.css.map +1 -1
- package/bundle.cjs.js +204 -177
- package/index.css +32 -0
- package/index.css.map +1 -1
- package/package.json +1 -1
- package/publishTimestamp.d.ts +1 -1
- package/publishTimestamp.js +1 -1
- package/src/AdaptableInterfaces/IAdaptable.d.ts +3 -0
- package/src/AdaptableOptions/UserInterfaceOptions.d.ts +17 -0
- package/src/Api/AdaptableApi.d.ts +5 -0
- package/src/Api/CommentsApi.d.ts +50 -0
- package/src/Api/CommentsApi.js +2 -0
- package/src/Api/EntitlementApi.d.ts +1 -1
- package/src/Api/Fdc3Api.d.ts +1 -1
- package/src/Api/GridApi.d.ts +0 -7
- package/src/Api/Implementation/AdaptableApiImpl.d.ts +2 -0
- package/src/Api/Implementation/AdaptableApiImpl.js +2 -0
- package/src/Api/Implementation/CommentsApiImpl.d.ts +20 -0
- package/src/Api/Implementation/CommentsApiImpl.js +59 -0
- package/src/Api/Implementation/GridApiImpl.d.ts +0 -3
- package/src/Api/Implementation/GridApiImpl.js +0 -3
- package/src/PredefinedConfig/AdaptableState.d.ts +2 -2
- package/src/PredefinedConfig/CommentsState.d.ts +29 -0
- package/src/PredefinedConfig/CommentsState.js +2 -0
- package/src/PredefinedConfig/Common/AdaptableObject.d.ts +2 -2
- package/src/PredefinedConfig/Common/FDC3Context_DEPR.d.ts +3 -3
- package/src/PredefinedConfig/Common/Types.d.ts +2 -2
- package/src/PredefinedConfig/Common/Types.js +1 -0
- package/src/PredefinedConfig/PredefinedConfig.d.ts +2 -0
- package/src/PredefinedConfig/SystemState.d.ts +5 -0
- package/src/Redux/ActionsReducers/CommentsRedux.d.ts +31 -0
- package/src/Redux/ActionsReducers/CommentsRedux.js +83 -0
- package/src/Redux/ActionsReducers/SystemRedux.d.ts +13 -1
- package/src/Redux/ActionsReducers/SystemRedux.js +37 -2
- package/src/Redux/Store/AdaptableStore.js +20 -6
- package/src/Strategy/CommentsModule.d.ts +23 -0
- package/src/Strategy/CommentsModule.js +141 -0
- package/src/Strategy/FormatColumnModule.d.ts +0 -1
- package/src/Strategy/FormatColumnModule.js +4 -28
- package/src/Utilities/Constants/ModuleConstants.d.ts +3 -0
- package/src/Utilities/Constants/ModuleConstants.js +5 -2
- package/src/Utilities/Defaults/DefaultSettingsPanel.js +1 -0
- package/src/Utilities/Helpers/AdaptableHelper.d.ts +2 -2
- package/src/Utilities/Helpers/AdaptableHelper.js +4 -4
- package/src/View/AdaptableView.js +2 -0
- package/src/View/AdaptableViewFactory.js +2 -0
- package/src/View/Comments/CommentListing.d.ts +2 -0
- package/src/View/Comments/CommentListing.js +89 -0
- package/src/View/Comments/CommentPopup.d.ts +2 -0
- package/src/View/Comments/CommentPopup.js +65 -0
- package/src/View/Components/CellPopup/index.d.ts +12 -0
- package/src/View/Components/CellPopup/index.js +69 -0
- package/src/agGrid/Adaptable.d.ts +3 -0
- package/src/agGrid/Adaptable.js +45 -10
- package/src/agGrid/agGridHelper.js +2 -0
- package/src/components/OverlayTrigger/utils.d.ts +1 -1
- package/src/metamodel/adaptable.metamodel.d.ts +27 -0
- package/src/metamodel/adaptable.metamodel.js +1 -1
- package/src/types.d.ts +4 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
|
@@ -44,7 +44,6 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
44
44
|
return this.api.queryApi.internalApi.getReferencedNamedQueryNames(queryExpression);
|
|
45
45
|
}
|
|
46
46
|
updateOldConfig() {
|
|
47
|
-
this.updateConditionalStylesColumnsOldConfig();
|
|
48
47
|
this.updateFormatColumnSingleToMultiplePredicates();
|
|
49
48
|
// update ConditionalStyle StatusBarPanel
|
|
50
49
|
const oldStatusBars = this.api.internalApi.getState().StatusBar.StatusBars;
|
|
@@ -89,31 +88,6 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
89
88
|
}
|
|
90
89
|
});
|
|
91
90
|
}
|
|
92
|
-
updateConditionalStylesColumnsOldConfig() {
|
|
93
|
-
var _a;
|
|
94
|
-
const oldConditionalStyles = (_a = this.api.internalApi.getState().ConditionalStyle) === null || _a === void 0 ? void 0 : _a.ConditionalStyles;
|
|
95
|
-
if (!(oldConditionalStyles === null || oldConditionalStyles === void 0 ? void 0 : oldConditionalStyles.length)) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
this.api.logWarn(`DEPRECATED: Conditional Styles have been merged into 'Format Columns'`);
|
|
99
|
-
// remove conditional styles
|
|
100
|
-
this.api.internalApi.deleteConditionalStyles(oldConditionalStyles);
|
|
101
|
-
const transformedFormatColumns = oldConditionalStyles.map((conditionalStyle) => {
|
|
102
|
-
const formatColumn = {
|
|
103
|
-
Scope: conditionalStyle.Scope,
|
|
104
|
-
Style: conditionalStyle.Style,
|
|
105
|
-
IncludeGroupedRows: conditionalStyle.IncludeGroupedRows,
|
|
106
|
-
};
|
|
107
|
-
if ('Rule' in conditionalStyle && conditionalStyle.Rule.Predicate) {
|
|
108
|
-
formatColumn.Rule = {
|
|
109
|
-
Predicates: [conditionalStyle.Rule.Predicate],
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
return formatColumn;
|
|
113
|
-
});
|
|
114
|
-
// add as format column
|
|
115
|
-
this.api.formatColumnApi.addFormatColumns(transformedFormatColumns);
|
|
116
|
-
}
|
|
117
91
|
addColumnMenuItems(column) {
|
|
118
92
|
let returnColumnMenuItems = [];
|
|
119
93
|
if (column && this.isModuleEditable() && !column.isSparkline) {
|
|
@@ -146,11 +120,13 @@ class FormatColumnModule extends AdaptableModuleBase_1.AdaptableModuleBase {
|
|
|
146
120
|
subItems: [createFormatColumnMenuItem, editFormatColumnMenuItem],
|
|
147
121
|
});
|
|
148
122
|
// if more than one then display a Create and a Show
|
|
149
|
-
// we should probably do the Show better - perhaps use Column Info in some way?
|
|
123
|
+
// we should probably do the Show better - perhaps use Column Info in some way?
|
|
150
124
|
// or to filter the format columns ?
|
|
151
125
|
}
|
|
152
126
|
else {
|
|
153
|
-
const moduleInfo = this.api.internalApi
|
|
127
|
+
const moduleInfo = this.api.internalApi
|
|
128
|
+
.getModuleService()
|
|
129
|
+
.getModuleInfoByModule('FormatColumn');
|
|
154
130
|
const editFormatColumnMenuItem = this.createColumnMenuItemReduxAction('Show Current', this.moduleInfo.Glyph, PopupRedux.PopupShowScreen('FormatColumn', moduleInfo.Popup));
|
|
155
131
|
returnColumnMenuItems.push({
|
|
156
132
|
label: 'Format Column',
|
|
@@ -33,6 +33,8 @@ export declare const Glue42ModuleId: ModuleConstants;
|
|
|
33
33
|
export declare const Glue42FriendlyName = "Glue42";
|
|
34
34
|
export declare const GridInfoModuleId: ModuleConstants;
|
|
35
35
|
export declare const GridInfoFriendlyName = "Grid Info";
|
|
36
|
+
export declare const CommentsModuleId: ModuleConstants;
|
|
37
|
+
export declare const CommentsFriendlyName = "Comments";
|
|
36
38
|
export declare const IPushPullModuleId: ModuleConstants;
|
|
37
39
|
export declare const IPushPullFriendlyName = "IPushPull";
|
|
38
40
|
export declare const LayoutModuleId: ModuleConstants;
|
|
@@ -102,4 +104,5 @@ export declare const ADAPTABLE_MODULE_MAP: {
|
|
|
102
104
|
ToolPanel: string;
|
|
103
105
|
SettingsPanel: string;
|
|
104
106
|
StatusBar: string;
|
|
107
|
+
Comments: string;
|
|
105
108
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.ADAPTABLE_MODULE_MAP = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.StyledColumnFriendlyName = exports.StyledColumnModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = void 0;
|
|
3
|
+
exports.ScheduleFriendlyName = exports.ScheduleModuleId = exports.QuickSearchFriendlyName = exports.QuickSearchModuleId = exports.QueryFriendlyName = exports.QueryModuleId = exports.PlusMinusFriendlyName = exports.PlusMinusModuleId = exports.OpenFinFriendlyName = exports.OpenFinModuleId = exports.LayoutFriendlyName = exports.LayoutModuleId = exports.IPushPullFriendlyName = exports.IPushPullModuleId = exports.CommentsFriendlyName = exports.CommentsModuleId = exports.GridInfoFriendlyName = exports.GridInfoModuleId = exports.Glue42FriendlyName = exports.Glue42ModuleId = exports.FreeTextColumnFriendlyName = exports.FreeTextColumnModuleId = exports.FormatColumnFriendlyName = exports.FormatColumnModuleId = exports.FilterFriendlyName = exports.FilterModuleId = exports.Fdc3FriendlyName = exports.Fdc3ModuleId = exports.ExportFriendlyName = exports.ExportModuleId = exports.DataSetFriendlyName = exports.DataSetModuleId = exports.DataChangeHistoryFriendlyName = exports.DataChangeHistoryModuleId = exports.DashboardFriendlyName = exports.DashboardModuleId = exports.CustomSortFriendlyName = exports.CustomSortModuleId = exports.ChartingFriendlyName = exports.ChartingModuleId = exports.CellSummaryFriendlyName = exports.CellSummaryModuleId = exports.CalculatedColumnFriendlyName = exports.CalculatedColumnModuleId = exports.BulkUpdateFriendlyName = exports.BulkUpdateModuleId = exports.FlashingCellFriendlyName = exports.FlashingCellModuleId = exports.AlertModuleFriendlyName = exports.AlertModuleId = void 0;
|
|
4
|
+
exports.ADAPTABLE_MODULE_MAP = exports.StatusBarFriendlyName = exports.StatusBarModuleId = exports.SettingsPanelFriendlyName = exports.SettingsPanelModuleId = exports.ToolPanelFriendlyName = exports.ToolPanelModuleId = exports.ThemeFriendlyName = exports.ThemeModuleId = exports.TeamSharingFriendlyName = exports.TeamSharingModuleId = exports.SystemStatusFriendlyName = exports.SystemStatusModuleId = exports.StateManagementFriendlyName = exports.StateManagementModuleId = exports.StyledColumnFriendlyName = exports.StyledColumnModuleId = exports.SmartEditFriendlyName = exports.SmartEditModuleId = exports.ShortcutFriendlyName = exports.ShortcutModuleId = void 0;
|
|
5
5
|
exports.AlertModuleId = 'Alert';
|
|
6
6
|
exports.AlertModuleFriendlyName = 'Alert';
|
|
7
7
|
exports.FlashingCellModuleId = 'FlashingCell';
|
|
@@ -36,6 +36,8 @@ exports.Glue42ModuleId = 'Glue42';
|
|
|
36
36
|
exports.Glue42FriendlyName = 'Glue42';
|
|
37
37
|
exports.GridInfoModuleId = 'GridInfo';
|
|
38
38
|
exports.GridInfoFriendlyName = 'Grid Info';
|
|
39
|
+
exports.CommentsModuleId = 'Comments';
|
|
40
|
+
exports.CommentsFriendlyName = 'Comments';
|
|
39
41
|
exports.IPushPullModuleId = 'IPushPull';
|
|
40
42
|
exports.IPushPullFriendlyName = 'IPushPull';
|
|
41
43
|
exports.LayoutModuleId = 'Layout';
|
|
@@ -105,4 +107,5 @@ exports.ADAPTABLE_MODULE_MAP = {
|
|
|
105
107
|
[exports.ToolPanelModuleId]: exports.ToolPanelFriendlyName,
|
|
106
108
|
[exports.SettingsPanelModuleId]: exports.SettingsPanelFriendlyName,
|
|
107
109
|
[exports.StatusBarModuleId]: exports.StatusBarFriendlyName,
|
|
110
|
+
[exports.CommentsModuleId]: exports.CommentsFriendlyName,
|
|
108
111
|
};
|
|
@@ -10,7 +10,7 @@ export declare function checkValidPrimaryKey(adaptable: IAdaptable): boolean;
|
|
|
10
10
|
export declare function AdaptableObjectExistsInState(array: AdaptableObject[], itemToCheck: AdaptableObject): boolean;
|
|
11
11
|
export declare function getAppropriateAccessLevel(adaptableObject: AdaptableObject, moduleAccessLevel: AccessLevel): AccessLevel;
|
|
12
12
|
export declare function runAdaptableComparerFunction(columnId: string, columnValues: any[], adaptable: IAdaptable): AdaptableComparerFunction;
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function addUuidAndSource(adaptableObject: AdaptableObject): AdaptableObject;
|
|
14
14
|
export declare const AdaptableHelper: {
|
|
15
15
|
assignAdaptableOptions: typeof assignAdaptableOptions;
|
|
16
16
|
initPredefinedConfigWithUuids: typeof initPredefinedConfigWithUuids;
|
|
@@ -18,6 +18,6 @@ export declare const AdaptableHelper: {
|
|
|
18
18
|
AdaptableObjectExistsInState: typeof AdaptableObjectExistsInState;
|
|
19
19
|
runAdaptableComparerFunction: typeof runAdaptableComparerFunction;
|
|
20
20
|
getAppropriateAccessLevel: typeof getAppropriateAccessLevel;
|
|
21
|
-
addUuidAndSource: typeof
|
|
21
|
+
addUuidAndSource: typeof addUuidAndSource;
|
|
22
22
|
};
|
|
23
23
|
export default AdaptableHelper;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AdaptableHelper = exports.
|
|
3
|
+
exports.AdaptableHelper = exports.addUuidAndSource = exports.runAdaptableComparerFunction = exports.getAppropriateAccessLevel = exports.AdaptableObjectExistsInState = exports.checkValidPrimaryKey = exports.initPredefinedConfigWithUuids = exports.assignAdaptableOptions = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const cloneDeepWith_1 = tslib_1.__importDefault(require("lodash/cloneDeepWith"));
|
|
6
6
|
const isPlainObject_1 = tslib_1.__importDefault(require("lodash/isPlainObject"));
|
|
@@ -140,14 +140,14 @@ function runAdaptableComparerFunction(columnId, columnValues, adaptable) {
|
|
|
140
140
|
};
|
|
141
141
|
}
|
|
142
142
|
exports.runAdaptableComparerFunction = runAdaptableComparerFunction;
|
|
143
|
-
function
|
|
143
|
+
function addUuidAndSource(adaptableObject) {
|
|
144
144
|
if (!adaptableObject.Uuid) {
|
|
145
145
|
adaptableObject.Uuid = (0, Uuid_1.createUuid)();
|
|
146
146
|
}
|
|
147
147
|
adaptableObject.Source = 'User';
|
|
148
148
|
return adaptableObject;
|
|
149
149
|
}
|
|
150
|
-
exports.
|
|
150
|
+
exports.addUuidAndSource = addUuidAndSource;
|
|
151
151
|
exports.AdaptableHelper = {
|
|
152
152
|
assignAdaptableOptions,
|
|
153
153
|
initPredefinedConfigWithUuids,
|
|
@@ -155,6 +155,6 @@ exports.AdaptableHelper = {
|
|
|
155
155
|
AdaptableObjectExistsInState,
|
|
156
156
|
runAdaptableComparerFunction,
|
|
157
157
|
getAppropriateAccessLevel,
|
|
158
|
-
addUuidAndSource
|
|
158
|
+
addUuidAndSource,
|
|
159
159
|
};
|
|
160
160
|
exports.default = exports.AdaptableHelper;
|
|
@@ -7,6 +7,7 @@ const react_redux_1 = require("react-redux");
|
|
|
7
7
|
const ProgressIndicator_1 = require("../components/ProgressIndicator/ProgressIndicator");
|
|
8
8
|
const Toastify_1 = require("../components/Toastify");
|
|
9
9
|
const PopupRedux = tslib_1.__importStar(require("../Redux/ActionsReducers/PopupRedux"));
|
|
10
|
+
const CommentPopup_1 = require("./Comments/CommentPopup");
|
|
10
11
|
const AdaptableLoadingScreen_1 = require("./Components/Popups/AdaptableLoadingScreen");
|
|
11
12
|
const AdaptablePopup_1 = require("./Components/Popups/AdaptablePopup");
|
|
12
13
|
const AdaptablePopupConfirmation_1 = require("./Components/Popups/AdaptablePopupConfirmation");
|
|
@@ -23,6 +24,7 @@ class AdaptableView extends React.Component {
|
|
|
23
24
|
const watermark = (_d = (_c = (_b = (_a = this.props.AdaptableApi) === null || _a === void 0 ? void 0 : _a.internalApi) === null || _b === void 0 ? void 0 : _b.getSystemState()) === null || _c === void 0 ? void 0 : _c.License) === null || _d === void 0 ? void 0 : _d.watermark;
|
|
24
25
|
const adaptableOptions = this.props.AdaptableApi.optionsApi.getAdaptableOptions();
|
|
25
26
|
return (React.createElement("div", null,
|
|
27
|
+
React.createElement(CommentPopup_1.CommentPopup, null),
|
|
26
28
|
React.createElement(FloatingQuickSearch_1.QuickSearchDrawer, null),
|
|
27
29
|
this.props.AdaptableApi.internalApi.getModuleService().isModuleAvailable('Dashboard') && (React.createElement(Dashboard_1.Dashboard, { api: this.props.AdaptableApi })),
|
|
28
30
|
React.createElement(AdaptableLoadingScreen_1.AdaptableLoadingScreen, { onClose: this.props.onCloseLoadingPopup, showLoadingScreen: this.props.PopupState.LoadingPopup.ShowLoadingPopup }),
|
|
@@ -31,6 +31,7 @@ const DataChangeHistoryViewPanel_1 = require("./DataChangeHistory/DataChangeHist
|
|
|
31
31
|
const StateManagementViewPanel_1 = require("./StateManagement/StateManagementViewPanel");
|
|
32
32
|
const StatusBarPopup_1 = require("./StatusBar/StatusBarPopup");
|
|
33
33
|
const ChartingViewPanel_1 = require("./Charting/ChartingViewPanel");
|
|
34
|
+
const CommentListing_1 = require("./Comments/CommentListing");
|
|
34
35
|
exports.AdaptableViewFactory = {
|
|
35
36
|
BulkUpdatePopup: BulkUpdatePopup_1.BulkUpdatePopup,
|
|
36
37
|
DashboardPopup: DashboardPopup_1.DashboardPopup,
|
|
@@ -44,6 +45,7 @@ exports.AdaptableViewFactory = {
|
|
|
44
45
|
ToolPanelPopup: ToolPanelPopup_1.ToolPanelPopup,
|
|
45
46
|
SystemStatusPopup: SystemStatusPopup_1.SystemStatusPopup,
|
|
46
47
|
DataChangeHistoryPopup: DataChangeHistoryPopup_1.DataChangeHistoryPopup,
|
|
48
|
+
CommentsPopup: CommentListing_1.CommentsListing,
|
|
47
49
|
};
|
|
48
50
|
exports.AdaptableViewPanelFactory = new Map([
|
|
49
51
|
[ModuleConstants.AlertModuleId, AlertViewPanel_1.AlertViewPanelControl],
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommentsListing = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const React = tslib_1.__importStar(require("react"));
|
|
6
|
+
const react_redux_1 = require("react-redux");
|
|
7
|
+
const rebass_1 = require("rebass");
|
|
8
|
+
const InfiniteTable_1 = require("../../components/InfiniteTable");
|
|
9
|
+
const CommentsRedux_1 = require("../../Redux/ActionsReducers/CommentsRedux");
|
|
10
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
11
|
+
const AdaptableButton_1 = require("../Components/AdaptableButton");
|
|
12
|
+
const tableDOMProps = {
|
|
13
|
+
style: {
|
|
14
|
+
height: '100%',
|
|
15
|
+
minWidth: '10rem',
|
|
16
|
+
minHeight: 600,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const CommentsListing = () => {
|
|
20
|
+
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
21
|
+
const primaryKeyHeader = adaptable.api.columnApi.getFriendlyNameForColumnId(adaptable.api.columnApi.getPrimaryKeyColumn().columnId);
|
|
22
|
+
const columnHeader = adaptable.api.columnApi.getFriendlyNameForColumnId(adaptable.api.columnApi.getPrimaryKeyColumn().columnId);
|
|
23
|
+
const allComments = (0, react_redux_1.useSelector)((state) => (0, CommentsRedux_1.GetCommentsSelector)(state.Comments));
|
|
24
|
+
const columnsMap = React.useMemo(() => {
|
|
25
|
+
const columns = {
|
|
26
|
+
primaryKey: {
|
|
27
|
+
field: 'PrimaryKeyValue',
|
|
28
|
+
header: primaryKeyHeader,
|
|
29
|
+
},
|
|
30
|
+
column: {
|
|
31
|
+
field: 'ColumnId',
|
|
32
|
+
valueGetter: (params) => {
|
|
33
|
+
return adaptable.api.columnApi.getFriendlyNameForColumnId(params.data.ColumnId);
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
comment: {
|
|
37
|
+
field: 'Value',
|
|
38
|
+
header: 'Comment',
|
|
39
|
+
defaultEditable: true,
|
|
40
|
+
defaultFlex: 3,
|
|
41
|
+
},
|
|
42
|
+
timestamp: {
|
|
43
|
+
field: 'Timestamp',
|
|
44
|
+
valueGetter: (params) => {
|
|
45
|
+
return new Date(params.data.Timestamp).toDateString();
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
author: {
|
|
49
|
+
header: 'Author',
|
|
50
|
+
valueGetter: (params) => params.data.Author.UserName,
|
|
51
|
+
},
|
|
52
|
+
delete: {
|
|
53
|
+
defaultWidth: 50,
|
|
54
|
+
render: (params) => {
|
|
55
|
+
return (React.createElement(AdaptableButton_1.AdaptableButtonComponent, { variant: "text", icon: "delete", onClick: () => {
|
|
56
|
+
const comment = adaptable.api.commentsApi.getCommentByUuid(params.data.Uuid);
|
|
57
|
+
adaptable.api.commentsApi.deleteComment(comment);
|
|
58
|
+
} }));
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
return columns;
|
|
63
|
+
}, []);
|
|
64
|
+
return (React.createElement(rebass_1.Box, { p: 2, style: { height: '100%', width: '100%' } },
|
|
65
|
+
React.createElement(InfiniteTable_1.DataSource, { data: allComments, primaryKey: "Uuid", onDataMutations: (params) => {
|
|
66
|
+
for (const mutation of params.mutations) {
|
|
67
|
+
const [uuid, changes] = mutation;
|
|
68
|
+
for (const change of changes) {
|
|
69
|
+
if (change.type === 'update') {
|
|
70
|
+
const data = change.data;
|
|
71
|
+
const prevComment = allComments.find((x) => x.Uuid === uuid);
|
|
72
|
+
if (prevComment.Value !== data.Value) {
|
|
73
|
+
adaptable.api.commentsApi.updateCommentText(data.Value, prevComment);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
} },
|
|
79
|
+
React.createElement(InfiniteTable_1.InfiniteTable, { columnTypes: {
|
|
80
|
+
default: {
|
|
81
|
+
align: 'start',
|
|
82
|
+
defaultFlex: 1,
|
|
83
|
+
sortable: false,
|
|
84
|
+
},
|
|
85
|
+
}, headerOptions: {
|
|
86
|
+
alwaysReserveSpaceForSortIcon: false,
|
|
87
|
+
}, rowHeight: 40, columnHeaderHeight: 65, domProps: tableDOMProps, columns: columnsMap }))));
|
|
88
|
+
};
|
|
89
|
+
exports.CommentsListing = CommentsListing;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommentPopup = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const lodash_1 = require("lodash");
|
|
6
|
+
const React = tslib_1.__importStar(require("react"));
|
|
7
|
+
const react_redux_1 = require("react-redux");
|
|
8
|
+
const rebass_1 = require("rebass");
|
|
9
|
+
const Textarea_1 = tslib_1.__importDefault(require("../../components/Textarea"));
|
|
10
|
+
const CommentsRedux_1 = require("../../Redux/ActionsReducers/CommentsRedux");
|
|
11
|
+
const SystemRedux_1 = require("../../Redux/ActionsReducers/SystemRedux");
|
|
12
|
+
const AdaptableContext_1 = require("../AdaptableContext");
|
|
13
|
+
const CellPopup_1 = require("../Components/CellPopup");
|
|
14
|
+
const CommentEditor = ({ comment, onCommentChange, onClose, editMode, isReadonly }) => {
|
|
15
|
+
const textAreaRef = React.useRef(null);
|
|
16
|
+
const [liveValue, setLiveValue] = React.useState(comment || '');
|
|
17
|
+
const throttledOnChange = React.useMemo(() => {
|
|
18
|
+
const throttled = (0, lodash_1.throttle)((value) => onCommentChange(value), 300);
|
|
19
|
+
return (value) => {
|
|
20
|
+
setLiveValue(value);
|
|
21
|
+
throttled(value);
|
|
22
|
+
};
|
|
23
|
+
}, []);
|
|
24
|
+
React.useEffect(() => {
|
|
25
|
+
var _a;
|
|
26
|
+
if (editMode) {
|
|
27
|
+
(_a = textAreaRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
28
|
+
}
|
|
29
|
+
}, [editMode]);
|
|
30
|
+
return (React.createElement(Textarea_1.default, { readOnly: isReadonly, ref: textAreaRef, width: "100%", minWidth: 180, minHeight: 120, value: liveValue, onBlur: () => onClose(), onKeyDown: (event) => {
|
|
31
|
+
if (event.key === 'Escape') {
|
|
32
|
+
onClose();
|
|
33
|
+
}
|
|
34
|
+
}, onChange: (event) => throttledOnChange(event.target.value) }));
|
|
35
|
+
};
|
|
36
|
+
const CommentPopup = () => {
|
|
37
|
+
var _a;
|
|
38
|
+
const { api } = (0, AdaptableContext_1.useAdaptable)();
|
|
39
|
+
const cellPopupRef = React.useRef(null);
|
|
40
|
+
const editMode = (0, react_redux_1.useSelector)((state) => (0, SystemRedux_1.SystemCommentsEditModeSelector)(state.System));
|
|
41
|
+
const commentPosition = (0, react_redux_1.useSelector)((state) => (0, SystemRedux_1.SystemCommentsSelector)(state.System));
|
|
42
|
+
const [
|
|
43
|
+
// Only handle first comment for now
|
|
44
|
+
// Later we can handle multiple comments
|
|
45
|
+
comment,] = (0, react_redux_1.useSelector)((state) => {
|
|
46
|
+
return commentPosition ? (0, CommentsRedux_1.GetCommentsSelector)(state.Comments, commentPosition) : [];
|
|
47
|
+
});
|
|
48
|
+
const handleCommentChange = (value) => {
|
|
49
|
+
api.commentsApi.updateCommentText(value, comment);
|
|
50
|
+
};
|
|
51
|
+
const isReadonly = api.entitlementApi.isModuleReadOnlyEntitlement('Comments');
|
|
52
|
+
const enableEditMode = () => {
|
|
53
|
+
if (!editMode) {
|
|
54
|
+
api.commentsApi.showComment(commentPosition, true);
|
|
55
|
+
cellPopupRef === null || cellPopupRef === void 0 ? void 0 : cellPopupRef.current.refreshContent();
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
if (!commentPosition) {
|
|
59
|
+
return React.createElement(React.Fragment, null);
|
|
60
|
+
}
|
|
61
|
+
return (React.createElement(CellPopup_1.CellPopup, { ref: cellPopupRef, key: `${commentPosition.PrimaryKeyValue}-${commentPosition.ColumnId}`, isOpen: true, primaryKeyValue: commentPosition.PrimaryKeyValue, columnId: commentPosition.ColumnId },
|
|
62
|
+
React.createElement(rebass_1.Flex, { onClick: () => enableEditMode(), flexDirection: "column", className: "ab-CommentPopup" },
|
|
63
|
+
React.createElement(CommentEditor, { isReadonly: isReadonly, editMode: editMode, key: comment === null || comment === void 0 ? void 0 : comment.Uuid, onClose: () => api.commentsApi.hideComment(), comment: (_a = comment === null || comment === void 0 ? void 0 : comment.Value) !== null && _a !== void 0 ? _a : '', onCommentChange: (value) => handleCommentChange(value) }))));
|
|
64
|
+
};
|
|
65
|
+
exports.CommentPopup = CommentPopup;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export interface CellPopupProps {
|
|
3
|
+
isOpen: boolean;
|
|
4
|
+
columnId: string;
|
|
5
|
+
primaryKeyValue: number | string;
|
|
6
|
+
}
|
|
7
|
+
export declare type CellPopupHandle = {
|
|
8
|
+
refreshContent: () => void;
|
|
9
|
+
};
|
|
10
|
+
export declare const CellPopup: React.ForwardRefExoticComponent<CellPopupProps & {
|
|
11
|
+
children?: React.ReactNode;
|
|
12
|
+
} & React.RefAttributes<CellPopupHandle>>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CellPopup = 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 utils_1 = require("../../../components/OverlayTrigger/utils");
|
|
8
|
+
const AdaptableContext_1 = require("../../AdaptableContext");
|
|
9
|
+
const UIHelper_1 = require("../../UIHelper");
|
|
10
|
+
let portalElement;
|
|
11
|
+
const ensurePortalElement = () => {
|
|
12
|
+
if (!(0, UIHelper_1.isBrowserDocumentAvailable)()) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (portalElement) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
portalElement = document.createElement('div');
|
|
19
|
+
portalElement.style.position = 'absolute';
|
|
20
|
+
portalElement.style.zIndex = '999999';
|
|
21
|
+
portalElement.style.top = '0px';
|
|
22
|
+
portalElement.style.left = '0px';
|
|
23
|
+
document.body.appendChild(portalElement);
|
|
24
|
+
};
|
|
25
|
+
exports.CellPopup = React.forwardRef((props, ref) => {
|
|
26
|
+
ensurePortalElement();
|
|
27
|
+
const adaptable = (0, AdaptableContext_1.useAdaptable)();
|
|
28
|
+
const { showOverlay, clearAll: clearAllOverlays, hideOverlay, portal, } = (0, InfiniteTable_1.useOverlay)({
|
|
29
|
+
portalContainer: portalElement,
|
|
30
|
+
});
|
|
31
|
+
const OVERLAY_ID = 'cell-overlay';
|
|
32
|
+
const showCellPopupContent = () => {
|
|
33
|
+
var _a;
|
|
34
|
+
const cellSelector = `[row-id="${props.primaryKeyValue}"] [col-id="${props.columnId}"]`;
|
|
35
|
+
const alignTo = document.querySelector(cellSelector);
|
|
36
|
+
if (!alignTo) {
|
|
37
|
+
adaptable.logger.consoleError(`Could not find cell with selector ${cellSelector} to show popup`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const showOverlayOptions = {
|
|
41
|
+
id: OVERLAY_ID,
|
|
42
|
+
alignPosition: [
|
|
43
|
+
// overlay - target
|
|
44
|
+
['TopLeft', 'TopRight'],
|
|
45
|
+
['TopRight', 'TopLeft'],
|
|
46
|
+
['TopCenter', 'BottomCenter'],
|
|
47
|
+
['BottomCenter', 'TopCenter'],
|
|
48
|
+
],
|
|
49
|
+
constrainTo: (_a = adaptable.getAgGridContainerElement()) !== null && _a !== void 0 ? _a : true,
|
|
50
|
+
alignTo: (0, utils_1.getRect)(alignTo),
|
|
51
|
+
};
|
|
52
|
+
showOverlay(() => props.children, showOverlayOptions);
|
|
53
|
+
};
|
|
54
|
+
React.useEffect(() => {
|
|
55
|
+
if (props.isOpen) {
|
|
56
|
+
showCellPopupContent();
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
clearAllOverlays();
|
|
60
|
+
hideOverlay(OVERLAY_ID);
|
|
61
|
+
}
|
|
62
|
+
}, [props.isOpen]);
|
|
63
|
+
React.useImperativeHandle(ref, () => {
|
|
64
|
+
return {
|
|
65
|
+
refreshContent: () => showCellPopupContent(),
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
return React.createElement(React.Fragment, null, portal);
|
|
69
|
+
});
|
|
@@ -99,6 +99,8 @@ export declare class Adaptable implements IAdaptable {
|
|
|
99
99
|
private _adaptableReady;
|
|
100
100
|
isDestroyed: boolean;
|
|
101
101
|
private listenerKeydown;
|
|
102
|
+
private listenerMouseEnter;
|
|
103
|
+
private listenerMouseLeave;
|
|
102
104
|
supressReact18RenderWarning: boolean;
|
|
103
105
|
renderReactRoot: RenderReactRootFn;
|
|
104
106
|
private listenerFirstDataRendered;
|
|
@@ -181,6 +183,7 @@ export declare class Adaptable implements IAdaptable {
|
|
|
181
183
|
private getAlertRowClass;
|
|
182
184
|
private getAlertRowStyle;
|
|
183
185
|
private getFlashingCellStyle;
|
|
186
|
+
private getCommentCellClassName;
|
|
184
187
|
private getFlashingCellClass;
|
|
185
188
|
private getCellHighlightStyle;
|
|
186
189
|
private getRowHighlightStyle;
|
package/src/agGrid/Adaptable.js
CHANGED
|
@@ -320,14 +320,21 @@ class Adaptable {
|
|
|
320
320
|
// }
|
|
321
321
|
// because this await for of introduces too much delay
|
|
322
322
|
}
|
|
323
|
-
const doInit = (ab) =>
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
}
|
|
329
|
-
return api
|
|
330
|
-
|
|
323
|
+
const doInit = (ab) => {
|
|
324
|
+
// required for NoCode
|
|
325
|
+
// it should go away with https://github.com/AdaptableTools/adaptable/issues/2278
|
|
326
|
+
if (adaptableOptions._gridOptions) {
|
|
327
|
+
runtimeConfig.gridOptions = adaptableOptions._gridOptions;
|
|
328
|
+
}
|
|
329
|
+
return ab.init(adaptableOptions, runtimeConfig, true).then((api) => {
|
|
330
|
+
if (Array.isArray(adaptableOptions.plugins)) {
|
|
331
|
+
adaptableOptions.plugins.forEach((plugin) => {
|
|
332
|
+
plugin.afterInit(ab);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
return api;
|
|
336
|
+
});
|
|
337
|
+
};
|
|
331
338
|
if (promise && promise.then) {
|
|
332
339
|
return promise.then(() => {
|
|
333
340
|
const ab = new Adaptable();
|
|
@@ -1148,6 +1155,20 @@ class Adaptable {
|
|
|
1148
1155
|
? flashingCell.flashingCellDefinition.DownChangeStyle
|
|
1149
1156
|
: flashingCell.flashingCellDefinition.NeutralChangeStyle)) !== null && _a !== void 0 ? _a : {});
|
|
1150
1157
|
}
|
|
1158
|
+
getCommentCellClassName(col, params) {
|
|
1159
|
+
if (!this.api.internalApi.getModuleService().isModuleAvailable('Comments')) {
|
|
1160
|
+
return;
|
|
1161
|
+
}
|
|
1162
|
+
const cellPosition = {
|
|
1163
|
+
PrimaryKeyValue: this.getPrimaryKeyValueFromRowNode(params.node),
|
|
1164
|
+
ColumnId: col.columnId,
|
|
1165
|
+
};
|
|
1166
|
+
const cellComments = this.api.commentsApi.getCellComments(cellPosition);
|
|
1167
|
+
if (!(cellComments === null || cellComments === void 0 ? void 0 : cellComments.length)) {
|
|
1168
|
+
return undefined;
|
|
1169
|
+
}
|
|
1170
|
+
return 'ab-Cell-Comment';
|
|
1171
|
+
}
|
|
1151
1172
|
getFlashingCellClass(col, params) {
|
|
1152
1173
|
var _a, _b, _c;
|
|
1153
1174
|
const primaryKey = params.node.aggData
|
|
@@ -2753,7 +2774,11 @@ class Adaptable {
|
|
|
2753
2774
|
const gridContainerElement = this.getAgGridContainerElement();
|
|
2754
2775
|
if (gridContainerElement) {
|
|
2755
2776
|
gridContainerElement.removeEventListener('keydown', this.listenerKeydown);
|
|
2777
|
+
gridContainerElement.removeEventListener('mouseenter', this.listenerMouseEnter);
|
|
2778
|
+
gridContainerElement.removeEventListener('mouseleave', this.listenerMouseLeave);
|
|
2756
2779
|
this.listenerKeydown = null;
|
|
2780
|
+
this.listenerMouseEnter = null;
|
|
2781
|
+
this.listenerMouseLeave = null;
|
|
2757
2782
|
}
|
|
2758
2783
|
this.api.internalDestroySelf();
|
|
2759
2784
|
this.colDefPropertyCache = null;
|
|
@@ -2902,6 +2927,10 @@ class Adaptable {
|
|
|
2902
2927
|
// This is needed to be able to prevent the editor to be opened
|
|
2903
2928
|
// in bubling phase the opening is not prevented with ag-grid v30
|
|
2904
2929
|
true);
|
|
2930
|
+
gridContainerElement.addEventListener('mouseenter', (this.listenerMouseEnter = (event) => {
|
|
2931
|
+
this._emit('MouseEnter', event);
|
|
2932
|
+
}), true);
|
|
2933
|
+
gridContainerElement.addEventListener('mouseleave', (this.listenerMouseLeave = (event) => this._emit('MouseLeave', event)));
|
|
2905
2934
|
}
|
|
2906
2935
|
/*********************
|
|
2907
2936
|
* AG Grid EVENTS
|
|
@@ -3064,6 +3093,7 @@ class Adaptable {
|
|
|
3064
3093
|
this.gridOptions.api.addEventListener(core_1.Events.EVENT_SORT_CHANGED, (this.listenerSortChanged = () => {
|
|
3065
3094
|
this.onSortChanged();
|
|
3066
3095
|
this.debouncedSetSelectedCells();
|
|
3096
|
+
this._emit('SortChanged');
|
|
3067
3097
|
}));
|
|
3068
3098
|
const showGroupingTotalsAsHeader = this.adaptableOptions.groupingOptions.showGroupingTotalsAsHeader;
|
|
3069
3099
|
/**
|
|
@@ -3404,6 +3434,7 @@ class Adaptable {
|
|
|
3404
3434
|
const flashingClassName = this.getFlashingCellClass(abColumn, params);
|
|
3405
3435
|
const styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(colId);
|
|
3406
3436
|
const hasStyledColumn = !!styledColumn && !styledColumn.IsSuspended;
|
|
3437
|
+
const commentClassName = this.getCommentCellClassName(abColumn, params);
|
|
3407
3438
|
const returnValue = [
|
|
3408
3439
|
typeof userCellClass === 'function' ? userCellClass(params) : userCellClass,
|
|
3409
3440
|
!hasStyledColumn && formatColumns.length
|
|
@@ -3414,6 +3445,7 @@ class Adaptable {
|
|
|
3414
3445
|
readonlyClassName,
|
|
3415
3446
|
highlightAlertClassName,
|
|
3416
3447
|
flashingClassName,
|
|
3448
|
+
commentClassName,
|
|
3417
3449
|
]
|
|
3418
3450
|
// we flatten the array because some rules ('userCellClass' etc) might return a string[]
|
|
3419
3451
|
.flat()
|
|
@@ -3495,12 +3527,14 @@ class Adaptable {
|
|
|
3495
3527
|
});
|
|
3496
3528
|
}
|
|
3497
3529
|
setupColumnTooltipValueGetter({ col, colId, abColumn }) {
|
|
3530
|
+
let hasTooptip = false;
|
|
3498
3531
|
this.setColDefProperty(col, 'tooltipValueGetter', () => {
|
|
3499
3532
|
const styledColumn = this.api.styledColumnApi.getStyledColumnForColumnId(colId);
|
|
3500
3533
|
if (styledColumn &&
|
|
3501
3534
|
!styledColumn.IsSuspended &&
|
|
3502
3535
|
styledColumn.PercentBarStyle &&
|
|
3503
3536
|
styledColumn.PercentBarStyle.ToolTipText) {
|
|
3537
|
+
hasTooptip = true;
|
|
3504
3538
|
if (styledColumn === null || styledColumn === void 0 ? void 0 : styledColumn.PercentBarStyle) {
|
|
3505
3539
|
return (params) => {
|
|
3506
3540
|
const min = this.api.styledColumnApi.internalApi.getNumericStyleMinValue(styledColumn, abColumn, params.node, params.value);
|
|
@@ -5213,12 +5247,13 @@ class AdaptableNoCodeWizard {
|
|
|
5213
5247
|
// this allows people to customize the wizard dimensions & styling
|
|
5214
5248
|
// when it's visible
|
|
5215
5249
|
container.classList.add('adaptable--in-wizard');
|
|
5216
|
-
const unmount = (0, renderReactRoot_1.renderReactRoot)(React.createElement(AdaptableWizardView_1.default, Object.assign(Object.assign({ adaptableOptions: this.adaptableOptions }, this.extraOptions), { onInit: (adaptableOptions) => {
|
|
5250
|
+
const unmount = (0, renderReactRoot_1.renderReactRoot)(React.createElement(AdaptableWizardView_1.default, Object.assign(Object.assign({ adaptableOptions: this.adaptableOptions }, this.extraOptions), { onInit: (adaptableOptions, gridOptions) => {
|
|
5217
5251
|
container.classList.remove('adaptable--in-wizard');
|
|
5218
5252
|
unmount();
|
|
5253
|
+
adaptableOptions._gridOptions = gridOptions;
|
|
5219
5254
|
this.init({
|
|
5220
5255
|
adaptableOptions,
|
|
5221
|
-
gridOptions:
|
|
5256
|
+
gridOptions: gridOptions,
|
|
5222
5257
|
agGridModules: [...this.agGridModules],
|
|
5223
5258
|
});
|
|
5224
5259
|
} })), container, true);
|
|
@@ -35,6 +35,7 @@ const DataChangeHistoryModule_1 = require("../Strategy/DataChangeHistoryModule")
|
|
|
35
35
|
const FlashingCellModule_1 = require("../Strategy/FlashingCellModule");
|
|
36
36
|
const SettingsPanelModule_1 = require("../Strategy/SettingsPanelModule");
|
|
37
37
|
const ChartingModule_1 = require("../Strategy/ChartingModule");
|
|
38
|
+
const CommentsModule_1 = require("../Strategy/CommentsModule");
|
|
38
39
|
const PercentBarRenderer_1 = require("./PercentBarRenderer");
|
|
39
40
|
const BadgeRenderer_1 = require("./BadgeRenderer");
|
|
40
41
|
const Helper_1 = require("../Utilities/Helpers/Helper");
|
|
@@ -104,6 +105,7 @@ class agGridHelper {
|
|
|
104
105
|
modules.set(ModuleConstants.SettingsPanelModuleId, new SettingsPanelModule_1.SettingsPanelModule(api));
|
|
105
106
|
modules.set(ModuleConstants.StatusBarModuleId, new StatusBarModule_1.StatusBarModule(api));
|
|
106
107
|
modules.set(ModuleConstants.ChartingModuleId, new ChartingModule_1.ChartingModule(api));
|
|
108
|
+
modules.set(ModuleConstants.CommentsModuleId, new CommentsModule_1.CommentsModule(api));
|
|
107
109
|
modules.set(ModuleConstants.StyledColumnModuleId, new StyledColumnModule_1.StyledColumnModule(api));
|
|
108
110
|
modules.set(ModuleConstants.Fdc3ModuleId, new Fdc3Module_1.Fdc3Module(api));
|
|
109
111
|
return modules;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { BoundingClientRect } from '../utils/getAvailableSizeInfo';
|
|
2
|
-
export declare const getRect: (node:
|
|
2
|
+
export declare const getRect: (node: Element, offset?: number) => BoundingClientRect;
|
|
3
3
|
export declare const getDocRect: () => BoundingClientRect;
|
|
4
4
|
export declare const getIntersection: (rect1: BoundingClientRect, rect2: BoundingClientRect) => BoundingClientRect;
|
|
@@ -312,6 +312,11 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
312
312
|
kind: string;
|
|
313
313
|
desc: string;
|
|
314
314
|
};
|
|
315
|
+
AdaptableComment: {
|
|
316
|
+
name: string;
|
|
317
|
+
kind: string;
|
|
318
|
+
desc: string;
|
|
319
|
+
};
|
|
315
320
|
AdaptableComparerFunction: {
|
|
316
321
|
name: string;
|
|
317
322
|
kind: string;
|
|
@@ -1698,6 +1703,28 @@ export declare const ADAPTABLE_METAMODEL: {
|
|
|
1698
1703
|
ref: string;
|
|
1699
1704
|
})[];
|
|
1700
1705
|
};
|
|
1706
|
+
CommentsState: {
|
|
1707
|
+
name: string;
|
|
1708
|
+
kind: string;
|
|
1709
|
+
desc: string;
|
|
1710
|
+
props: {
|
|
1711
|
+
name: string;
|
|
1712
|
+
kind: string;
|
|
1713
|
+
desc: string;
|
|
1714
|
+
isOpt: boolean;
|
|
1715
|
+
ref: string;
|
|
1716
|
+
}[];
|
|
1717
|
+
};
|
|
1718
|
+
CommmentableCellContext: {
|
|
1719
|
+
name: string;
|
|
1720
|
+
kind: string;
|
|
1721
|
+
desc: string;
|
|
1722
|
+
props: {
|
|
1723
|
+
name: string;
|
|
1724
|
+
kind: string;
|
|
1725
|
+
desc: string;
|
|
1726
|
+
}[];
|
|
1727
|
+
};
|
|
1701
1728
|
CompatibleContext: {
|
|
1702
1729
|
name: string;
|
|
1703
1730
|
kind: string;
|