@progress/kendo-react-editor 5.15.0-dev.202307180734 → 5.15.0-dev.202307181521
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/dist/cdn/js/kendo-react-editor.js +1 -1
- package/dist/es/Editor.js +7 -0
- package/dist/es/messages/index.d.ts +162 -0
- package/dist/es/messages/index.js +487 -1
- package/dist/es/package-metadata.js +1 -1
- package/dist/es/tools/insertTable/tool.js +3 -2
- package/dist/es/tools/main.d.ts +20 -0
- package/dist/es/tools/main.js +12 -0
- package/dist/es/tools/table-wizard/tableCellProperties.d.ts +35 -0
- package/dist/es/tools/table-wizard/tableCellProperties.js +471 -0
- package/dist/es/tools/table-wizard/tableProperties.d.ts +11 -0
- package/dist/es/tools/table-wizard/tableProperties.js +701 -0
- package/dist/es/tools/table-wizard/utils.d.ts +25 -0
- package/dist/es/tools/table-wizard/utils.js +90 -0
- package/dist/es/tools/tableEdit.d.ts +9 -0
- package/dist/es/tools/tableEdit.js +2 -2
- package/dist/es/tools/utils.d.ts +30 -1
- package/dist/es/tools/utils.js +39 -1
- package/dist/npm/Editor.js +7 -0
- package/dist/npm/messages/index.d.ts +162 -0
- package/dist/npm/messages/index.js +487 -1
- package/dist/npm/package-metadata.js +1 -1
- package/dist/npm/tools/insertTable/tool.js +2 -1
- package/dist/npm/tools/main.d.ts +20 -0
- package/dist/npm/tools/main.js +12 -0
- package/dist/npm/tools/table-wizard/tableCellProperties.d.ts +35 -0
- package/dist/npm/tools/table-wizard/tableCellProperties.js +479 -0
- package/dist/npm/tools/table-wizard/tableProperties.d.ts +11 -0
- package/dist/npm/tools/table-wizard/tableProperties.js +705 -0
- package/dist/npm/tools/table-wizard/utils.d.ts +25 -0
- package/dist/npm/tools/table-wizard/utils.js +97 -0
- package/dist/npm/tools/tableEdit.d.ts +9 -0
- package/dist/npm/tools/tableEdit.js +5 -3
- package/dist/npm/tools/utils.d.ts +30 -1
- package/dist/npm/tools/utils.js +43 -1
- package/dist/systemjs/kendo-react-editor.js +1 -1
- package/package.json +13 -13
|
@@ -37,7 +37,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
37
37
|
};
|
|
38
38
|
import * as React from 'react';
|
|
39
39
|
import { Button } from '@progress/kendo-react-buttons';
|
|
40
|
-
import { onDownPreventDefault } from './../utils';
|
|
40
|
+
import { onDownPreventDefault, parentNode } from './../utils';
|
|
41
41
|
import { registerForLocalization, provideLocalizationService } from '@progress/kendo-react-intl';
|
|
42
42
|
import { messages } from './../../messages';
|
|
43
43
|
import { InsertTablePopupNS } from './popup';
|
|
@@ -93,7 +93,8 @@ export var InsertTableToolNS;
|
|
|
93
93
|
var _b = settings.messages, createTableMsgKey = _b.createTable, createTableHint = _b.createTableHint;
|
|
94
94
|
var createTableMsg = localization.toLanguageString(createTableMsgKey, messages[createTableMsgKey]);
|
|
95
95
|
var createTableHintMsg = localization.toLanguageString(createTableHint, messages[createTableHint]);
|
|
96
|
-
var disabled = !state || !canInsert(state, state.schema.nodes.table)
|
|
96
|
+
var disabled = Boolean(!state || !canInsert(state, state.schema.nodes.table) ||
|
|
97
|
+
parentNode(state.selection.$from, function (node) { return node.type.name === 'table_caption_external'; }));
|
|
97
98
|
var rendering = [(React.createElement(Button, __assign({ onClick: disabled ? undefined : this.togglePopup, "aria-disabled": disabled ? true : undefined, ref: function (e) { return _this.button = e && e.element; }, key: "InsertTable" }, onDownPreventDefault, { title: createTableMsg }, settings.props, props, { className: classNames(props.className, settings.props.className, { 'k-disabled': disabled }) }))), (view && !disabled && (React.createElement(InsertTablePopupNS.InsertTablePopup, { key: "insertTablePopup", createTableMessage: createTableMsg, createTableHintMessage: createTableHintMsg, dir: props.dir, anchor: this.button, show: this.state.openedPopup, onClose: this.closePopup, onTableInsert: this.onTableInsert })) || null)];
|
|
98
99
|
return render ? render.call(undefined, rendering, { view: view }) : rendering;
|
|
99
100
|
};
|
package/dist/es/tools/main.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ import { SelectAllProps as SelectAllToolProps } from './selectAll';
|
|
|
19
19
|
import { CleanFormattingProps as CleanFormattingToolProps } from './cleanFormatting';
|
|
20
20
|
import { FindAndReplace as FindAndReplaceTool, FindAndReplaceProps as FindAndReplaceToolProps } from './findReplace';
|
|
21
21
|
import { ButtonProps } from '@progress/kendo-react-buttons';
|
|
22
|
+
import { TableCellPropertiesProps as TableCellPropertiesToolProps } from './table-wizard/tableCellProperties';
|
|
23
|
+
import { TablePropertiesProps as TablePropertiesToolProps } from './table-wizard/tableProperties';
|
|
22
24
|
/**
|
|
23
25
|
* Represents a wrapping namespace for the tool components, props, and functions of the Editor.
|
|
24
26
|
*/
|
|
@@ -395,6 +397,24 @@ export declare namespace EditorTools {
|
|
|
395
397
|
* Will render a SplitButton which applies `<ul>` HTML element with predefined styles - upper-roman, lower-roman, upper-latin and lower-latin.
|
|
396
398
|
*/
|
|
397
399
|
export const NumberedList: (props: any) => JSX.Element;
|
|
400
|
+
/**
|
|
401
|
+
* The TableCellProperties tool component.
|
|
402
|
+
*/
|
|
403
|
+
export const TableCellProperties: React.FunctionComponent<TableCellPropertiesToolProps>;
|
|
404
|
+
/**
|
|
405
|
+
* The props for the TableCellProperties tool component of the Editor.
|
|
406
|
+
*/
|
|
407
|
+
export interface TableCellPropertiesProps extends TableCellPropertiesToolProps {
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* The TableProperties tool component.
|
|
411
|
+
*/
|
|
412
|
+
export const TableProperties: React.FunctionComponent<TablePropertiesToolProps>;
|
|
413
|
+
/**
|
|
414
|
+
* The props for the TableProperties tool component of the Editor.
|
|
415
|
+
*/
|
|
416
|
+
export interface TablePropertiesProps extends TablePropertiesToolProps {
|
|
417
|
+
}
|
|
398
418
|
/**
|
|
399
419
|
* The props for the Outdent tool component of the Editor.
|
|
400
420
|
*/
|
package/dist/es/tools/main.js
CHANGED
|
@@ -48,6 +48,8 @@ import { CleanFormatting as CleanFormattingTool } from './cleanFormatting';
|
|
|
48
48
|
import { FindAndReplace as FindAndReplaceTool } from './findReplace';
|
|
49
49
|
import { ListTool } from './lists-styled';
|
|
50
50
|
import { listLatinBigIcon, listLatinSmallIcon, listOrderedIcon, listRomanLowerIcon, listRomanUpperIcon, listUnorderedIcon, listUnorderedOutlineIcon, listUnorderedSquareIcon } from '@progress/kendo-svg-icons';
|
|
51
|
+
import { TableCellProperties as TableCellPropertiesTool } from './table-wizard/tableCellProperties';
|
|
52
|
+
import { TableProperties as TablePropertiesTool } from './table-wizard/tableProperties';
|
|
51
53
|
/**
|
|
52
54
|
* Represents a wrapping namespace for the tool components, props, and functions of the Editor.
|
|
53
55
|
*/
|
|
@@ -435,6 +437,16 @@ export var EditorTools;
|
|
|
435
437
|
];
|
|
436
438
|
return (React.createElement(ListTool, __assign({ listType: EditorToolsSettings.orderedList.listType, items: olItems, icon: "list-ordered", svgIcon: listOrderedIcon, titleKey: EditorToolsSettings.orderedList.messages.title }, props)));
|
|
437
439
|
};
|
|
440
|
+
/**
|
|
441
|
+
* The TableCellProperties tool component.
|
|
442
|
+
*/
|
|
443
|
+
EditorTools.TableCellProperties = TableCellPropertiesTool;
|
|
444
|
+
;
|
|
445
|
+
/**
|
|
446
|
+
* The TableProperties tool component.
|
|
447
|
+
*/
|
|
448
|
+
EditorTools.TableProperties = TablePropertiesTool;
|
|
449
|
+
;
|
|
438
450
|
/**
|
|
439
451
|
* Creates the Outdent tool component of the Editor.
|
|
440
452
|
*
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ListItemProps } from '@progress/kendo-react-dropdowns';
|
|
3
|
+
import { ToolProps } from '../ToolProps';
|
|
4
|
+
import { EditorState, Node } from '@progress/kendo-editor-common';
|
|
5
|
+
/**
|
|
6
|
+
* @hidden
|
|
7
|
+
*/
|
|
8
|
+
export declare const selectedCells: (state: EditorState) => Array<{
|
|
9
|
+
node: Node;
|
|
10
|
+
pos: number;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* @hidden
|
|
14
|
+
*/
|
|
15
|
+
export declare const tableCells: (state: EditorState) => Array<{
|
|
16
|
+
node: Node;
|
|
17
|
+
pos: number;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
export interface TableCellPropertiesProps extends ToolProps {
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @hidden
|
|
26
|
+
*/
|
|
27
|
+
export declare const TableCellProperties: React.FunctionComponent<TableCellPropertiesProps>;
|
|
28
|
+
/**
|
|
29
|
+
* @hidden
|
|
30
|
+
*/
|
|
31
|
+
export declare const valueRenderWithIcon: (element: React.ReactElement<HTMLSpanElement>, value: any) => JSX.Element;
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
export declare const itemRenderWithIcon: (li: React.ReactElement<any>, itemProps: ListItemProps) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
|
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
var __assign = (this && this.__assign) || function () {
|
|
2
|
+
__assign = Object.assign || function(t) {
|
|
3
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
+
s = arguments[i];
|
|
5
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
+
t[p] = s[p];
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
return __assign.apply(this, arguments);
|
|
11
|
+
};
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
24
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
25
|
+
if (ar || !(i in from)) {
|
|
26
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
27
|
+
ar[i] = from[i];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
31
|
+
};
|
|
32
|
+
import * as React from 'react';
|
|
33
|
+
import { Button } from '@progress/kendo-react-buttons';
|
|
34
|
+
import { Checkbox, ColorPicker, InputPrefix, NumericTextBox, TextBox } from '@progress/kendo-react-inputs';
|
|
35
|
+
import { AutoComplete, DropDownList } from '@progress/kendo-react-dropdowns';
|
|
36
|
+
import { Window, WindowActionsBar } from '@progress/kendo-react-dialogs';
|
|
37
|
+
import { tableAlignBottomCenterIcon, tableAlignBottomLeftIcon, tableAlignBottomRightIcon, tableAlignMiddleCenterIcon, tableAlignMiddleLeftIcon, tableAlignMiddleRightIcon, tableAlignTopCenterIcon, tableAlignTopLeftIcon, tableAlignTopRightIcon, tableAlignRemoveIcon, tableCellPropertiesIcon, textWrapIcon, parameterStringIcon } from '@progress/kendo-svg-icons';
|
|
38
|
+
import { borderStyles as borderStylesData, onDownPreventDefault, popupSettings, units, parentNode } from '../utils';
|
|
39
|
+
import { TableMap, htmlToFragment } from '@progress/kendo-editor-common';
|
|
40
|
+
import { getUnit, parseStyle, setNodeStyle } from './utils';
|
|
41
|
+
import { IconWrap } from '@progress/kendo-react-common';
|
|
42
|
+
import { useLocalization } from '@progress/kendo-react-intl';
|
|
43
|
+
import { messages, keys } from './../../messages';
|
|
44
|
+
var colgroupAttr = 'k-colgroup-data';
|
|
45
|
+
var getCells = function (state) {
|
|
46
|
+
var doc = state.doc, selection = state.selection;
|
|
47
|
+
var result = [];
|
|
48
|
+
selection.ranges.forEach(function (range) {
|
|
49
|
+
var from = range.$from.pos;
|
|
50
|
+
var to = range.$to.pos;
|
|
51
|
+
doc.nodesBetween(from, to, function (node, pos, _parent, _index) {
|
|
52
|
+
if (node.type.name === 'table_cell' || node.type.name === 'table_header') {
|
|
53
|
+
result.push({ node: node, pos: pos });
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
return result;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* @hidden
|
|
61
|
+
*/
|
|
62
|
+
export var selectedCells = function (state) {
|
|
63
|
+
var startNodeTable = parentNode(state.selection.$from, function (n) { return n.type.name === 'table'; });
|
|
64
|
+
var endNodeTable = parentNode(state.selection.$to, function (n) { return n.type.name === 'table'; });
|
|
65
|
+
if (startNodeTable && endNodeTable && startNodeTable.depth === endNodeTable.depth && startNodeTable.node.eq(endNodeTable.node)) {
|
|
66
|
+
var cells = getCells(state).filter(function (_a) {
|
|
67
|
+
var pos = _a.pos;
|
|
68
|
+
var parentTable = parentNode(state.doc.resolve(pos), function (n) { return n.type.name === 'table'; });
|
|
69
|
+
return parentTable && parentTable.depth === startNodeTable.depth && startNodeTable.node.eq(parentTable.node);
|
|
70
|
+
});
|
|
71
|
+
return cells;
|
|
72
|
+
}
|
|
73
|
+
return [];
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* @hidden
|
|
77
|
+
*/
|
|
78
|
+
export var tableCells = function (state) {
|
|
79
|
+
var cells = [];
|
|
80
|
+
if (selectedCells(state).length) {
|
|
81
|
+
var $pos = state.selection.$from;
|
|
82
|
+
var parentTable = parentNode($pos, function (n) { return n.type.spec.tableRole === 'table'; });
|
|
83
|
+
if (parentTable === null) {
|
|
84
|
+
return cells;
|
|
85
|
+
}
|
|
86
|
+
var tablePos_1 = $pos.start(parentTable.depth);
|
|
87
|
+
var tableNode = parentTable.node;
|
|
88
|
+
var map = TableMap.get(tableNode);
|
|
89
|
+
var doc_1 = state.doc;
|
|
90
|
+
map.map.forEach(function (m) {
|
|
91
|
+
var pos = m + tablePos_1;
|
|
92
|
+
cells.push({ pos: pos, node: doc_1.nodeAt(pos) });
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return cells;
|
|
96
|
+
};
|
|
97
|
+
var setCellWidth = function (tr, pos, width) {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
var $cell = tr.doc.resolve(pos);
|
|
100
|
+
var row = $cell.parent;
|
|
101
|
+
var cellIndex = $cell.index();
|
|
102
|
+
var colSpan = 0;
|
|
103
|
+
for (var i = 0; i <= cellIndex; i++) {
|
|
104
|
+
colSpan += row.child(i).attrs.colspan;
|
|
105
|
+
}
|
|
106
|
+
var tableNode = $cell.node($cell.depth - 1);
|
|
107
|
+
var tablePos = $cell.posAtIndex(0, $cell.depth - 1) - 1;
|
|
108
|
+
var attrs = tableNode.attrs;
|
|
109
|
+
var col;
|
|
110
|
+
if (attrs && attrs[colgroupAttr]) {
|
|
111
|
+
// const colgroup = parseStrColgroup(tableNode.attrs[colgroupAttr]);
|
|
112
|
+
var colgroup = htmlToFragment(attrs[colgroupAttr]).firstChild;
|
|
113
|
+
col = colgroup.children[colSpan - 1];
|
|
114
|
+
col.style.width = width;
|
|
115
|
+
attrs = __assign(__assign({}, attrs), (_a = {}, _a[colgroupAttr] = colgroup.outerHTML, _a));
|
|
116
|
+
tr.setNodeMarkup(tablePos, null, attrs);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
var total = 0;
|
|
120
|
+
for (var i = 0; i < row.childCount; i++) {
|
|
121
|
+
total += row.child(i).attrs.colspan;
|
|
122
|
+
}
|
|
123
|
+
var colgroup = document.createElement('colgroup');
|
|
124
|
+
var cols = new Array(total);
|
|
125
|
+
for (var i = 0; i < total; i++) {
|
|
126
|
+
cols[i] = document.createElement('col');
|
|
127
|
+
colgroup.appendChild(cols[i]);
|
|
128
|
+
}
|
|
129
|
+
col = cols[cellIndex];
|
|
130
|
+
col.style.width = width;
|
|
131
|
+
attrs = __assign(__assign({}, attrs), (_b = {}, _b[colgroupAttr] = '<colgroup>' + cols.reduce(function (acc, cur) { return acc + cur.outerHTML; }, '') + '</colgroup>', _b));
|
|
132
|
+
tr.setNodeMarkup(tablePos, null, attrs);
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
var setCellHeight = function (tr, pos, height) {
|
|
136
|
+
var $cell = tr.doc.resolve(pos);
|
|
137
|
+
var row = $cell.parent;
|
|
138
|
+
var rowPos = $cell.posAtIndex(0) - 1;
|
|
139
|
+
tr.setNodeMarkup(rowPos, null, setNodeStyle(row.attrs, 'height', height));
|
|
140
|
+
};
|
|
141
|
+
var applyOnCell = function (tr, data, cells) {
|
|
142
|
+
cells.forEach(function (_a) {
|
|
143
|
+
var _b, _c, _d;
|
|
144
|
+
var node = _a.node, pos = _a.pos;
|
|
145
|
+
var attrs = __assign({}, node.attrs);
|
|
146
|
+
attrs = setNodeStyle(attrs, 'border-color', data.borderColor || '');
|
|
147
|
+
attrs = setNodeStyle(attrs, 'border-style', ((_b = data.borderStyle) === null || _b === void 0 ? void 0 : _b.value) || '');
|
|
148
|
+
attrs = setNodeStyle(attrs, 'border-width', typeof data.borderWidth === 'number' ? data.borderWidth + 'px' : '');
|
|
149
|
+
attrs = setNodeStyle(attrs, 'padding', typeof data.cellPadding === 'number' ? data.cellPadding + 'px' : '');
|
|
150
|
+
attrs = setNodeStyle(attrs, 'background-color', data.backgroundColor || '');
|
|
151
|
+
attrs = setNodeStyle(attrs, 'text-align', ((_c = data.alignment) === null || _c === void 0 ? void 0 : _c.value.x) || '');
|
|
152
|
+
attrs = setNodeStyle(attrs, 'vertical-align', ((_d = data.alignment) === null || _d === void 0 ? void 0 : _d.value.y) || '');
|
|
153
|
+
attrs = setNodeStyle(attrs, 'white-space', data.textControl || '');
|
|
154
|
+
attrs.id = data.id || null;
|
|
155
|
+
attrs.class = data.className || null;
|
|
156
|
+
tr.setNodeMarkup(pos, null, attrs);
|
|
157
|
+
if (typeof data.cellWidth === 'number') {
|
|
158
|
+
setCellWidth(tr, pos, data.cellWidth + (data.widthUnit || 'px'));
|
|
159
|
+
}
|
|
160
|
+
if (typeof data.cellHeight === 'number') {
|
|
161
|
+
setCellHeight(tr, pos, data.cellHeight + (data.heightUnit || 'px'));
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* @hidden
|
|
167
|
+
*/
|
|
168
|
+
export var TableCellProperties = function (props) {
|
|
169
|
+
var view = props.view, buttonProps = __rest(props, ["view"]);
|
|
170
|
+
var _a = React.useState(false), showDialog = _a[0], setShowDialog = _a[1];
|
|
171
|
+
var loc = useLocalization();
|
|
172
|
+
var inTable = Boolean(view && parentNode(view.state.selection.$from, function (n) { return n.type.spec.tableRole === 'table'; }));
|
|
173
|
+
var onClick = React.useCallback(function () {
|
|
174
|
+
setShowDialog(true);
|
|
175
|
+
}, []);
|
|
176
|
+
var onSave = React.useCallback(function (data) {
|
|
177
|
+
if (view && data) {
|
|
178
|
+
var tr = view.state.tr;
|
|
179
|
+
var cells = data.applyToAll ? tableCells(view.state) : selectedCells(view.state);
|
|
180
|
+
applyOnCell(tr, data, cells);
|
|
181
|
+
if (tr.docChanged) {
|
|
182
|
+
view.dispatch(tr);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
setShowDialog(false);
|
|
186
|
+
}, [view]);
|
|
187
|
+
var onCancel = React.useCallback(function () {
|
|
188
|
+
setShowDialog(false);
|
|
189
|
+
}, []);
|
|
190
|
+
return (React.createElement(React.Fragment, null,
|
|
191
|
+
React.createElement(Button, __assign({ type: "button", title: loc.toLanguageString(keys.cellProperties, messages[keys.cellProperties]), icon: 'table-cell-properties', svgIcon: tableCellPropertiesIcon, onClick: onClick, disabled: !inTable }, onDownPreventDefault, buttonProps)),
|
|
192
|
+
showDialog && view && React.createElement(TableCellPropertiesDialog, { view: view, onCancel: onCancel, onSave: onSave })));
|
|
193
|
+
};
|
|
194
|
+
var alignData = [
|
|
195
|
+
{ textKey: keys.cellPropertiesLeftTop, text: messages[keys.cellPropertiesLeftTop],
|
|
196
|
+
icon: 'table-align-top-left', svgIcon: tableAlignTopLeftIcon, value: { x: 'left', y: 'top' } },
|
|
197
|
+
{ textKey: keys.cellPropertiesCenterTop, text: messages[keys.cellPropertiesCenterTop],
|
|
198
|
+
icon: 'table-align-top-center', svgIcon: tableAlignTopCenterIcon, value: { x: 'center', y: 'top' } },
|
|
199
|
+
{ textKey: keys.cellPropertiesRightTop, text: messages[keys.cellPropertiesRightTop],
|
|
200
|
+
icon: 'table-align-top-right', svgIcon: tableAlignTopRightIcon, value: { x: 'right', y: 'top' } },
|
|
201
|
+
{ textKey: keys.cellPropertiesLeftMiddle, text: messages[keys.cellPropertiesLeftMiddle],
|
|
202
|
+
icon: 'table-align-middle-left', svgIcon: tableAlignMiddleLeftIcon, value: { x: 'left', y: 'middle' } },
|
|
203
|
+
{ textKey: keys.cellPropertiesCenterMiddle, text: messages[keys.cellPropertiesCenterMiddle],
|
|
204
|
+
icon: 'table-align-middle-center', svgIcon: tableAlignMiddleCenterIcon, value: { x: 'center', y: 'middle' } },
|
|
205
|
+
{ textKey: keys.cellPropertiesRightMiddle, text: messages[keys.cellPropertiesRightMiddle],
|
|
206
|
+
icon: 'table-align-middle-right', svgIcon: tableAlignMiddleRightIcon, value: { x: 'right', y: 'middle' } },
|
|
207
|
+
{ textKey: keys.cellPropertiesLeftBottom, text: messages[keys.cellPropertiesLeftBottom],
|
|
208
|
+
icon: 'table-align-bottom-left', svgIcon: tableAlignBottomLeftIcon, value: { x: 'left', y: 'bottom' } },
|
|
209
|
+
{ textKey: keys.cellPropertiesCenterBottom, text: messages[keys.cellPropertiesCenterBottom],
|
|
210
|
+
icon: 'table-align-bottom-center', svgIcon: tableAlignBottomCenterIcon, value: { x: 'center', y: 'bottom' } },
|
|
211
|
+
{ textKey: keys.cellPropertiesRightBottom, text: messages[keys.cellPropertiesRightBottom],
|
|
212
|
+
icon: 'table-align-bottom-right', svgIcon: tableAlignBottomRightIcon, value: { x: 'right', y: 'bottom' } },
|
|
213
|
+
{ textKey: keys.cellPropertiesNoAlignment, text: messages[keys.cellPropertiesNoAlignment],
|
|
214
|
+
icon: 'align-remove', svgIcon: tableAlignRemoveIcon, value: { x: '', y: '' } }
|
|
215
|
+
];
|
|
216
|
+
var textControlData = [
|
|
217
|
+
{ textKey: keys.cellPropertiesWrap, text: messages[keys.cellPropertiesWrap],
|
|
218
|
+
value: '', icon: 'text-wrap', svgIcon: textWrapIcon },
|
|
219
|
+
{ textKey: keys.cellPropertiesFitToCell, text: messages[keys.cellPropertiesFitToCell],
|
|
220
|
+
value: 'nowrap', icon: 'parameter-string', svgIcon: parameterStringIcon }
|
|
221
|
+
];
|
|
222
|
+
var cellsWidth = function (cells, table, $pos) {
|
|
223
|
+
var result = {
|
|
224
|
+
cellWidth: null,
|
|
225
|
+
widthUnit: null
|
|
226
|
+
};
|
|
227
|
+
var tableNode = table.node;
|
|
228
|
+
var tablePos = $pos.start(table.depth);
|
|
229
|
+
if (!tableNode.attrs[colgroupAttr]) {
|
|
230
|
+
return result;
|
|
231
|
+
}
|
|
232
|
+
var width = new Set();
|
|
233
|
+
var value = '';
|
|
234
|
+
var colgroup = htmlToFragment(tableNode.attrs[colgroupAttr]).firstChild;
|
|
235
|
+
cells.forEach(function (cell) {
|
|
236
|
+
var $cell = tableNode.resolve(cell.pos - tablePos);
|
|
237
|
+
var row = $cell.parent;
|
|
238
|
+
var cellIndex = $cell.index();
|
|
239
|
+
var colSpan = 0;
|
|
240
|
+
for (var i = 0; i <= cellIndex; i++) {
|
|
241
|
+
colSpan += row.child(i).attrs.colspan;
|
|
242
|
+
}
|
|
243
|
+
var col = colgroup.children[colSpan - 1];
|
|
244
|
+
if (col) {
|
|
245
|
+
value = col.style.width;
|
|
246
|
+
width.add(value);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
if (width.size === 1 && value) {
|
|
250
|
+
result.cellWidth = parseFloat(value) || null;
|
|
251
|
+
result.widthUnit = getUnit(value);
|
|
252
|
+
}
|
|
253
|
+
return result;
|
|
254
|
+
};
|
|
255
|
+
var cellsHeight = function (cells, table, $pos) {
|
|
256
|
+
var result = {
|
|
257
|
+
cellHeight: null,
|
|
258
|
+
heightUnit: null
|
|
259
|
+
};
|
|
260
|
+
var tableNode = table.node;
|
|
261
|
+
var tablePos = $pos.start(table.depth);
|
|
262
|
+
var height = new Set();
|
|
263
|
+
var value = '';
|
|
264
|
+
cells.forEach(function (cell) {
|
|
265
|
+
var _a;
|
|
266
|
+
var $cell = tableNode.resolve(cell.pos - tablePos);
|
|
267
|
+
var row = $cell.parent;
|
|
268
|
+
value = parseStyle(((_a = row.attrs) === null || _a === void 0 ? void 0 : _a.style) || '').height || '';
|
|
269
|
+
height.add(value);
|
|
270
|
+
});
|
|
271
|
+
if (height.size === 1 && value) {
|
|
272
|
+
result.cellHeight = parseFloat(value) || null;
|
|
273
|
+
result.heightUnit = getUnit(value);
|
|
274
|
+
}
|
|
275
|
+
return result;
|
|
276
|
+
};
|
|
277
|
+
var cellsStyle = function (cells, style) {
|
|
278
|
+
var values = new Set();
|
|
279
|
+
var value = '';
|
|
280
|
+
cells.forEach(function (cell) {
|
|
281
|
+
var _a;
|
|
282
|
+
value = parseStyle(((_a = cell.node.attrs) === null || _a === void 0 ? void 0 : _a.style) || '')[style] || '';
|
|
283
|
+
values.add(value);
|
|
284
|
+
});
|
|
285
|
+
if (values.size === 1 && value) {
|
|
286
|
+
return value;
|
|
287
|
+
}
|
|
288
|
+
return '';
|
|
289
|
+
};
|
|
290
|
+
var cellsProp = function (cells, prop) {
|
|
291
|
+
var values = new Set();
|
|
292
|
+
var value = '';
|
|
293
|
+
cells.forEach(function (cell) {
|
|
294
|
+
value = (cell.node.attrs || {})[prop] || '';
|
|
295
|
+
values.add(value);
|
|
296
|
+
});
|
|
297
|
+
if (values.size === 1 && value) {
|
|
298
|
+
return value;
|
|
299
|
+
}
|
|
300
|
+
return '';
|
|
301
|
+
};
|
|
302
|
+
var initialData = {
|
|
303
|
+
applyToAll: false,
|
|
304
|
+
cellWidth: null,
|
|
305
|
+
widthUnit: null,
|
|
306
|
+
cellHeight: null,
|
|
307
|
+
heightUnit: null,
|
|
308
|
+
alignment: { x: '', y: '' },
|
|
309
|
+
textControl: '',
|
|
310
|
+
backgroundColor: null,
|
|
311
|
+
cellPadding: '',
|
|
312
|
+
borderWidth: null,
|
|
313
|
+
borderColor: null,
|
|
314
|
+
borderStyle: '',
|
|
315
|
+
id: '',
|
|
316
|
+
class: ''
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* @hidden
|
|
320
|
+
*/
|
|
321
|
+
export var valueRenderWithIcon = function (element, value) {
|
|
322
|
+
if (!value) {
|
|
323
|
+
return element;
|
|
324
|
+
}
|
|
325
|
+
return (React.createElement(React.Fragment, null,
|
|
326
|
+
React.createElement(InputPrefix, null,
|
|
327
|
+
React.createElement(IconWrap, { icon: value.svgIcon, name: value.icon })),
|
|
328
|
+
element));
|
|
329
|
+
};
|
|
330
|
+
/**
|
|
331
|
+
* @hidden
|
|
332
|
+
*/
|
|
333
|
+
export var itemRenderWithIcon = function (li, itemProps) {
|
|
334
|
+
var itemChildren = (React.createElement(React.Fragment, null,
|
|
335
|
+
React.createElement(InputPrefix, null,
|
|
336
|
+
React.createElement(IconWrap, { icon: itemProps.dataItem.svgIcon, name: itemProps.dataItem.icon })),
|
|
337
|
+
li.props.children));
|
|
338
|
+
return React.cloneElement(li, li.props, itemChildren);
|
|
339
|
+
};
|
|
340
|
+
var TableCellPropertiesDialog = function (props) {
|
|
341
|
+
var defaults = React.useMemo(function () {
|
|
342
|
+
var cells = selectedCells(props.view.state);
|
|
343
|
+
var $pos = props.view.state.selection.$from;
|
|
344
|
+
var table = cells.length ? parentNode($pos, function (n) { return n.type.spec.tableRole === 'table'; }) : null;
|
|
345
|
+
if (!table) {
|
|
346
|
+
return initialData;
|
|
347
|
+
}
|
|
348
|
+
return __assign(__assign(__assign(__assign({}, initialData), cellsWidth(cells, table, $pos)), cellsHeight(cells, table, $pos)), { alignment: { x: cellsStyle(cells, 'text-align'), y: cellsStyle(cells, 'vertical-align') }, textControl: cellsStyle(cells, 'white-space'), backgroundColor: cellsStyle(cells, 'background-color') || undefined, cellPadding: parseFloat(cellsStyle(cells, 'padding')) || null, borderWidth: parseFloat(cellsStyle(cells, 'border-width')) || null, borderColor: cellsStyle(cells, 'border-color') || undefined, borderStyle: cellsStyle(cells, 'border-style'), id: cellsProp(cells, 'id'), className: cellsProp(cells, 'class') });
|
|
349
|
+
}, [props.view]);
|
|
350
|
+
var loc = useLocalization();
|
|
351
|
+
var applyToAll = React.useRef(null);
|
|
352
|
+
var applyToAllDef = defaults.applyToAll;
|
|
353
|
+
var cellWidth = React.useRef(null);
|
|
354
|
+
var cellWidthDef = defaults.cellWidth;
|
|
355
|
+
var widthUnit = React.useRef(null);
|
|
356
|
+
if (defaults.widthUnit && !units.includes(defaults.widthUnit)) {
|
|
357
|
+
units.push(defaults.widthUnit);
|
|
358
|
+
}
|
|
359
|
+
var widthUnitDef = defaults.widthUnit || '';
|
|
360
|
+
var cellHeight = React.useRef(null);
|
|
361
|
+
var cellHeightDef = defaults.cellHeight;
|
|
362
|
+
var heightUnit = React.useRef(null);
|
|
363
|
+
if (defaults.heightUnit && !units.includes(defaults.heightUnit)) {
|
|
364
|
+
units.push(defaults.heightUnit);
|
|
365
|
+
}
|
|
366
|
+
var heightUnitDef = defaults.heightUnit || '';
|
|
367
|
+
var alignment = React.useRef(null);
|
|
368
|
+
var alignmentDef = alignData.find(function (al) { return al.value.x !== undefined && al.value.x === defaults.alignment.x && al.value.y === defaults.alignment.y; }) || null;
|
|
369
|
+
var textControl = React.useRef(null);
|
|
370
|
+
var textControlDef = textControlData.find(function (d) { return d.value === defaults.textControl; });
|
|
371
|
+
var backgroundColor = React.useRef(null);
|
|
372
|
+
var backgroundColorDef = defaults.backgroundColor;
|
|
373
|
+
var cellPadding = React.useRef(null);
|
|
374
|
+
var cellPaddingDef = defaults.cellPadding;
|
|
375
|
+
var borderWidth = React.useRef(null);
|
|
376
|
+
var borderWidthDef = defaults.borderWidth;
|
|
377
|
+
var borderColor = React.useRef(null);
|
|
378
|
+
var borderColorDef = defaults.borderColor;
|
|
379
|
+
var borderStyle = React.useRef(null);
|
|
380
|
+
var borderStyleDef = defaults.borderStyle;
|
|
381
|
+
var id = React.useRef(null);
|
|
382
|
+
var idDef = defaults.id;
|
|
383
|
+
var className = React.useRef(null);
|
|
384
|
+
var classNameDef = defaults.className;
|
|
385
|
+
var onSave = React.useCallback(function () {
|
|
386
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
387
|
+
var data = {
|
|
388
|
+
applyToAll: (_b = (_a = applyToAll.current) === null || _a === void 0 ? void 0 : _a.element) === null || _b === void 0 ? void 0 : _b.checked,
|
|
389
|
+
cellWidth: (_c = cellWidth.current) === null || _c === void 0 ? void 0 : _c.value,
|
|
390
|
+
widthUnit: (_d = widthUnit.current) === null || _d === void 0 ? void 0 : _d.value,
|
|
391
|
+
cellHeight: (_e = cellHeight.current) === null || _e === void 0 ? void 0 : _e.value,
|
|
392
|
+
heightUnit: (_f = heightUnit.current) === null || _f === void 0 ? void 0 : _f.value,
|
|
393
|
+
alignment: (_g = alignment.current) === null || _g === void 0 ? void 0 : _g.value,
|
|
394
|
+
textControl: (_j = (_h = textControl.current) === null || _h === void 0 ? void 0 : _h.value) === null || _j === void 0 ? void 0 : _j.value,
|
|
395
|
+
backgroundColor: (_k = backgroundColor.current) === null || _k === void 0 ? void 0 : _k.value,
|
|
396
|
+
cellPadding: (_l = cellPadding.current) === null || _l === void 0 ? void 0 : _l.value,
|
|
397
|
+
borderWidth: (_m = borderWidth.current) === null || _m === void 0 ? void 0 : _m.value,
|
|
398
|
+
borderColor: (_o = borderColor.current) === null || _o === void 0 ? void 0 : _o.value,
|
|
399
|
+
borderStyle: (_p = borderStyle.current) === null || _p === void 0 ? void 0 : _p.value,
|
|
400
|
+
id: (_q = id.current) === null || _q === void 0 ? void 0 : _q.value,
|
|
401
|
+
className: (_r = className.current) === null || _r === void 0 ? void 0 : _r.value
|
|
402
|
+
};
|
|
403
|
+
props.onSave.call(undefined, data);
|
|
404
|
+
}, [props.onSave]);
|
|
405
|
+
var content = (React.createElement("div", { className: "k-form k-form-md" },
|
|
406
|
+
React.createElement("fieldset", { className: "k-form-fieldset" },
|
|
407
|
+
React.createElement("div", { className: "k-form-layout k-d-grid k-grid-cols-4 k-gap-x-4" },
|
|
408
|
+
React.createElement("div", { className: "k-form-field k-col-span-full" },
|
|
409
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
410
|
+
React.createElement("span", { className: "k-checkbox-wrap" },
|
|
411
|
+
React.createElement(Checkbox, { ref: applyToAll, defaultChecked: applyToAllDef })),
|
|
412
|
+
React.createElement("label", { className: "k-checkbox-label" }, loc.toLanguageString(keys.cellPropertiesApplyToAllCells, messages[keys.cellPropertiesApplyToAllCells])))),
|
|
413
|
+
React.createElement("div", { className: "k-form-field k-col-span-1" },
|
|
414
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesWidth, messages[keys.cellPropertiesWidth])),
|
|
415
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
416
|
+
React.createElement(NumericTextBox, { ref: cellWidth, defaultValue: cellWidthDef, min: 0, placeholder: loc.toLanguageString(keys.sizeAuto, messages[keys.sizeAuto]) }),
|
|
417
|
+
React.createElement("div", { className: "k-form-hint" }, loc.toLanguageString(keys.cellPropertiesApplyToColumn, messages[keys.cellPropertiesApplyToColumn])))),
|
|
418
|
+
React.createElement("div", { className: "k-form-field k-col-span-1" },
|
|
419
|
+
React.createElement("label", { className: "k-label k-form-label" }, "\u00A0"),
|
|
420
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
421
|
+
React.createElement(AutoComplete, { ref: widthUnit, defaultValue: widthUnitDef, data: units, popupSettings: popupSettings }))),
|
|
422
|
+
React.createElement("div", { className: "k-form-field k-col-span-1" },
|
|
423
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesHeight, messages[keys.cellPropertiesHeight])),
|
|
424
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
425
|
+
React.createElement(NumericTextBox, { ref: cellHeight, defaultValue: cellHeightDef, min: 0, placeholder: loc.toLanguageString(keys.sizeAuto, messages[keys.sizeAuto]) }),
|
|
426
|
+
React.createElement("div", { className: "k-form-hint" }, loc.toLanguageString(keys.cellPropertiesApplyToRow, messages[keys.cellPropertiesApplyToRow])))),
|
|
427
|
+
React.createElement("div", { className: "k-form-field k-col-span-1" },
|
|
428
|
+
React.createElement("label", { className: "k-label k-form-label" }, "\u00A0"),
|
|
429
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
430
|
+
React.createElement(AutoComplete, { ref: heightUnit, defaultValue: heightUnitDef, data: units, popupSettings: popupSettings }))),
|
|
431
|
+
React.createElement("div", { className: "k-form-field k-col-span-2" },
|
|
432
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesAlignment, messages[keys.cellPropertiesAlignment])),
|
|
433
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
434
|
+
React.createElement(DropDownList, { ref: alignment, defaultValue: alignmentDef, data: alignData.map(function (i) { return (__assign(__assign({}, i), { text: loc.toLanguageString(i.textKey, i.text) })); }), textField: 'text', dataItemKey: 'text', popupSettings: popupSettings, valueRender: valueRenderWithIcon, itemRender: itemRenderWithIcon }))),
|
|
435
|
+
React.createElement("div", { className: "k-form-field k-col-span-2" },
|
|
436
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesTextControl, messages[keys.cellPropertiesTextControl])),
|
|
437
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
438
|
+
React.createElement(DropDownList, { ref: textControl, defaultValue: textControlDef, data: textControlData.map(function (i) { return (__assign(__assign({}, i), { text: loc.toLanguageString(i.textKey, i.text) })); }), textField: 'text', dataItemKey: 'value', popupSettings: popupSettings, valueRender: valueRenderWithIcon, itemRender: itemRenderWithIcon }))),
|
|
439
|
+
React.createElement("div", { className: "k-form-field k-col-span-2" },
|
|
440
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesCellPadding, messages[keys.cellPropertiesCellPadding])),
|
|
441
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
442
|
+
React.createElement(NumericTextBox, { ref: cellPadding, defaultValue: cellPaddingDef, min: 0 }))),
|
|
443
|
+
React.createElement("div", { className: "k-form-field k-col-span-2" },
|
|
444
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesBackground, messages[keys.cellPropertiesBackground])),
|
|
445
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
446
|
+
React.createElement(ColorPicker, { ref: backgroundColor, defaultValue: backgroundColorDef }))),
|
|
447
|
+
React.createElement("div", { className: "k-form-field k-col-span-1" },
|
|
448
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesBorderWidth, messages[keys.cellPropertiesBorderWidth])),
|
|
449
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
450
|
+
React.createElement(NumericTextBox, { ref: borderWidth, defaultValue: borderWidthDef, min: 0 }))),
|
|
451
|
+
React.createElement("div", { className: "k-form-field k-col-span-1" },
|
|
452
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesBorderColor, messages[keys.cellPropertiesBorderColor])),
|
|
453
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
454
|
+
React.createElement(ColorPicker, { ref: borderColor, defaultValue: borderColorDef }))),
|
|
455
|
+
React.createElement("div", { className: "k-form-field k-col-span-2" },
|
|
456
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesBorderStyle, messages[keys.cellPropertiesBorderStyle])),
|
|
457
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
458
|
+
React.createElement(DropDownList, { ref: borderStyle, defaultValue: borderStyleDef, popupSettings: popupSettings, data: borderStylesData, textField: 'text', dataItemKey: 'value' }))),
|
|
459
|
+
React.createElement("div", { className: "k-form-field k-col-span-full" },
|
|
460
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesId, messages[keys.cellPropertiesId])),
|
|
461
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
462
|
+
React.createElement(TextBox, { ref: id, defaultValue: idDef }))),
|
|
463
|
+
React.createElement("div", { className: "k-form-field k-col-span-full" },
|
|
464
|
+
React.createElement("label", { className: "k-label k-form-label" }, loc.toLanguageString(keys.cellPropertiesCssClass, messages[keys.cellPropertiesCssClass])),
|
|
465
|
+
React.createElement("div", { className: "k-form-field-wrap" },
|
|
466
|
+
React.createElement(TextBox, { ref: className, defaultValue: classNameDef })))))));
|
|
467
|
+
var actionButtons = [(React.createElement(Button, { themeColor: 'primary', key: "save", onClick: onSave }, loc.toLanguageString(keys.cellPropertiesSave, messages[keys.cellPropertiesSave]))), (React.createElement(Button, { onClick: props.onCancel, key: "cancel" }, loc.toLanguageString(keys.cellPropertiesCancel, messages[keys.cellPropertiesCancel])))];
|
|
468
|
+
return (React.createElement(Window, { className: 'k-editor-window k-editor-table-wizard-window', title: loc.toLanguageString(keys.cellProperties, messages[keys.cellProperties]), onClose: props.onCancel, key: "dialog", style: { userSelect: 'none' }, width: 408, height: 587, modal: true, minimizeButton: function () { return null; }, maximizeButton: function () { return null; }, resizable: false },
|
|
469
|
+
content,
|
|
470
|
+
React.createElement.apply(React, __spreadArray([WindowActionsBar, { layout: 'start' }], actionButtons, false))));
|
|
471
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { ToolProps } from './../ToolProps';
|
|
3
|
+
/**
|
|
4
|
+
* @hidden
|
|
5
|
+
*/
|
|
6
|
+
export interface TablePropertiesProps extends ToolProps {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export declare const TableProperties: React.FunctionComponent<TablePropertiesProps>;
|