@progress/kendo-react-editor 5.15.0-dev.202307180734 → 5.15.0-dev.202307181342

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