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