@pie-lib/editable-html 11.4.0 → 11.6.0
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/CHANGELOG.md +24 -52
- package/package.json +8 -7
- package/src/editor.jsx +2 -2
- package/src/plugins/media/media-dialog.js +1 -1
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +1 -1
- package/src/plugins/toolbar/editor-and-toolbar.jsx +1 -1
- package/lib/block-tags.js +0 -25
- package/lib/block-tags.js.map +0 -1
- package/lib/constants.js +0 -16
- package/lib/constants.js.map +0 -1
- package/lib/editor.js +0 -1355
- package/lib/editor.js.map +0 -1
- package/lib/index.js +0 -269
- package/lib/index.js.map +0 -1
- package/lib/parse-html.js +0 -16
- package/lib/parse-html.js.map +0 -1
- package/lib/plugins/characters/custom-popper.js +0 -73
- package/lib/plugins/characters/custom-popper.js.map +0 -1
- package/lib/plugins/characters/index.js +0 -305
- package/lib/plugins/characters/index.js.map +0 -1
- package/lib/plugins/characters/utils.js +0 -381
- package/lib/plugins/characters/utils.js.map +0 -1
- package/lib/plugins/css/icons/index.js +0 -37
- package/lib/plugins/css/icons/index.js.map +0 -1
- package/lib/plugins/css/index.js +0 -397
- package/lib/plugins/css/index.js.map +0 -1
- package/lib/plugins/customPlugin/index.js +0 -114
- package/lib/plugins/customPlugin/index.js.map +0 -1
- package/lib/plugins/html/icons/index.js +0 -38
- package/lib/plugins/html/icons/index.js.map +0 -1
- package/lib/plugins/html/index.js +0 -80
- package/lib/plugins/html/index.js.map +0 -1
- package/lib/plugins/image/alt-dialog.js +0 -129
- package/lib/plugins/image/alt-dialog.js.map +0 -1
- package/lib/plugins/image/component.js +0 -419
- package/lib/plugins/image/component.js.map +0 -1
- package/lib/plugins/image/image-toolbar.js +0 -177
- package/lib/plugins/image/image-toolbar.js.map +0 -1
- package/lib/plugins/image/index.js +0 -263
- package/lib/plugins/image/index.js.map +0 -1
- package/lib/plugins/image/insert-image-handler.js +0 -161
- package/lib/plugins/image/insert-image-handler.js.map +0 -1
- package/lib/plugins/index.js +0 -402
- package/lib/plugins/index.js.map +0 -1
- package/lib/plugins/list/index.js +0 -334
- package/lib/plugins/list/index.js.map +0 -1
- package/lib/plugins/math/index.js +0 -454
- package/lib/plugins/math/index.js.map +0 -1
- package/lib/plugins/media/index.js +0 -387
- package/lib/plugins/media/index.js.map +0 -1
- package/lib/plugins/media/media-dialog.js +0 -709
- package/lib/plugins/media/media-dialog.js.map +0 -1
- package/lib/plugins/media/media-toolbar.js +0 -101
- package/lib/plugins/media/media-toolbar.js.map +0 -1
- package/lib/plugins/media/media-wrapper.js +0 -93
- package/lib/plugins/media/media-wrapper.js.map +0 -1
- package/lib/plugins/rendering/index.js +0 -46
- package/lib/plugins/rendering/index.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +0 -254
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +0 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +0 -97
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +0 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +0 -57
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +0 -1
- package/lib/plugins/respArea/icons/index.js +0 -95
- package/lib/plugins/respArea/icons/index.js.map +0 -1
- package/lib/plugins/respArea/index.js +0 -341
- package/lib/plugins/respArea/index.js.map +0 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +0 -75
- package/lib/plugins/respArea/inline-dropdown/index.js.map +0 -1
- package/lib/plugins/respArea/math-templated/index.js +0 -130
- package/lib/plugins/respArea/math-templated/index.js.map +0 -1
- package/lib/plugins/respArea/utils.js +0 -125
- package/lib/plugins/respArea/utils.js.map +0 -1
- package/lib/plugins/table/CustomTablePlugin.js +0 -133
- package/lib/plugins/table/CustomTablePlugin.js.map +0 -1
- package/lib/plugins/table/icons/index.js +0 -69
- package/lib/plugins/table/icons/index.js.map +0 -1
- package/lib/plugins/table/index.js +0 -483
- package/lib/plugins/table/index.js.map +0 -1
- package/lib/plugins/table/table-toolbar.js +0 -187
- package/lib/plugins/table/table-toolbar.js.map +0 -1
- package/lib/plugins/textAlign/icons/index.js +0 -226
- package/lib/plugins/textAlign/icons/index.js.map +0 -1
- package/lib/plugins/textAlign/index.js +0 -34
- package/lib/plugins/textAlign/index.js.map +0 -1
- package/lib/plugins/toolbar/default-toolbar.js +0 -229
- package/lib/plugins/toolbar/default-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/done-button.js +0 -53
- package/lib/plugins/toolbar/done-button.js.map +0 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +0 -286
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +0 -1
- package/lib/plugins/toolbar/index.js +0 -34
- package/lib/plugins/toolbar/index.js.map +0 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +0 -194
- package/lib/plugins/toolbar/toolbar-buttons.js.map +0 -1
- package/lib/plugins/toolbar/toolbar.js +0 -376
- package/lib/plugins/toolbar/toolbar.js.map +0 -1
- package/lib/plugins/utils.js +0 -62
- package/lib/plugins/utils.js.map +0 -1
- package/lib/serialization.js +0 -677
- package/lib/serialization.js.map +0 -1
- package/lib/shared/alert-dialog.js +0 -75
- package/lib/shared/index.js +0 -136
- package/lib/theme.js +0 -9
- package/lib/theme.js.map +0 -1
|
@@ -1,483 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.serialization = exports.reactAttributes = exports.parseStyleString = exports.moveFocusToBeginningOfTable = exports["default"] = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
-
|
|
14
|
-
var _react = _interopRequireDefault(require("react"));
|
|
15
|
-
|
|
16
|
-
var _slate = require("slate");
|
|
17
|
-
|
|
18
|
-
var _debug = _interopRequireDefault(require("debug"));
|
|
19
|
-
|
|
20
|
-
var _GridOn = _interopRequireDefault(require("@material-ui/icons/GridOn"));
|
|
21
|
-
|
|
22
|
-
var _tableToolbar = _interopRequireDefault(require("./table-toolbar"));
|
|
23
|
-
|
|
24
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
25
|
-
|
|
26
|
-
var _slatePropTypes = _interopRequireDefault(require("slate-prop-types"));
|
|
27
|
-
|
|
28
|
-
var _styles = require("@material-ui/core/styles");
|
|
29
|
-
|
|
30
|
-
var _reactAttrConverter = _interopRequireDefault(require("react-attr-converter"));
|
|
31
|
-
|
|
32
|
-
var _toStyle = require("to-style");
|
|
33
|
-
|
|
34
|
-
var _CustomTablePlugin = _interopRequireDefault(require("./CustomTablePlugin"));
|
|
35
|
-
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
|
-
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
|
-
|
|
40
|
-
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:table');
|
|
41
|
-
var Table = (0, _styles.withStyles)(function () {
|
|
42
|
-
return {
|
|
43
|
-
table: {}
|
|
44
|
-
};
|
|
45
|
-
})(function (props) {
|
|
46
|
-
var nodeAttributes = dataToAttributes(props.node.data);
|
|
47
|
-
return /*#__PURE__*/_react["default"].createElement("table", (0, _extends2["default"])({
|
|
48
|
-
className: props.classes.table
|
|
49
|
-
}, props.attributes, nodeAttributes, {
|
|
50
|
-
onFocus: props.onFocus,
|
|
51
|
-
onBlur: props.onBlur
|
|
52
|
-
}), /*#__PURE__*/_react["default"].createElement("tbody", null, props.children));
|
|
53
|
-
});
|
|
54
|
-
Table.propTypes = {
|
|
55
|
-
attributes: _propTypes["default"].object,
|
|
56
|
-
onFocus: _propTypes["default"].func,
|
|
57
|
-
onBlur: _propTypes["default"].func,
|
|
58
|
-
node: _slatePropTypes["default"].node,
|
|
59
|
-
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
var TableRow = function TableRow(props) {
|
|
63
|
-
return /*#__PURE__*/_react["default"].createElement("tr", props.attributes, props.children);
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
TableRow.propTypes = {
|
|
67
|
-
attributes: _propTypes["default"].object,
|
|
68
|
-
onFocus: _propTypes["default"].func,
|
|
69
|
-
onBlur: _propTypes["default"].func,
|
|
70
|
-
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired
|
|
71
|
-
};
|
|
72
|
-
var TableCell = (0, _styles.withStyles)(function () {
|
|
73
|
-
return {
|
|
74
|
-
td: {
|
|
75
|
-
minWidth: '25px'
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
})(function (props) {
|
|
79
|
-
var Tag = props.node.data.get('header') ? 'th' : 'td';
|
|
80
|
-
var nodeAttributes = dataToAttributes(props.node.data);
|
|
81
|
-
delete nodeAttributes.header;
|
|
82
|
-
return /*#__PURE__*/_react["default"].createElement(Tag, (0, _extends2["default"])({}, props.attributes, nodeAttributes, {
|
|
83
|
-
colSpan: props.node.data.get('colspan'),
|
|
84
|
-
className: props.classes[Tag],
|
|
85
|
-
onFocus: props.onFocus,
|
|
86
|
-
onBlur: props.onBlur
|
|
87
|
-
}), props.children);
|
|
88
|
-
});
|
|
89
|
-
TableCell.propTypes = {
|
|
90
|
-
attributes: _propTypes["default"].object,
|
|
91
|
-
onFocus: _propTypes["default"].func,
|
|
92
|
-
onBlur: _propTypes["default"].func,
|
|
93
|
-
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
var moveFocusToBeginningOfTable = function moveFocusToBeginningOfTable(change) {
|
|
97
|
-
var addedTable = change.value.document.findDescendant(function (d) {
|
|
98
|
-
return !!d.data && !!d.data.get('newTable');
|
|
99
|
-
});
|
|
100
|
-
|
|
101
|
-
if (!addedTable) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
change.collapseToStartOf(addedTable);
|
|
106
|
-
var update = addedTable.data.remove('newTable');
|
|
107
|
-
change.setNodeByKey(addedTable.key, {
|
|
108
|
-
data: update
|
|
109
|
-
});
|
|
110
|
-
};
|
|
111
|
-
|
|
112
|
-
exports.moveFocusToBeginningOfTable = moveFocusToBeginningOfTable;
|
|
113
|
-
|
|
114
|
-
var _default = function _default(opts, toolbarPlugins
|
|
115
|
-
/* : {toolbar: {}}[] */
|
|
116
|
-
) {
|
|
117
|
-
var core = (0, _CustomTablePlugin["default"])(opts); // fix outdated schema
|
|
118
|
-
|
|
119
|
-
if (core.schema && core.schema.blocks) {
|
|
120
|
-
Object.keys(core.schema.blocks).forEach(function (key) {
|
|
121
|
-
var block = core.schema.blocks[key];
|
|
122
|
-
|
|
123
|
-
if (block.parent) {
|
|
124
|
-
if (block.nodes[0].types) {
|
|
125
|
-
block.nodes[0] = {
|
|
126
|
-
type: block.nodes[0].types[0]
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (block.nodes[0].objects) {
|
|
131
|
-
block.nodes[0] = {
|
|
132
|
-
object: block.nodes[0].objects[0]
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
block.parent = {
|
|
137
|
-
type: block.parent.types[0]
|
|
138
|
-
};
|
|
139
|
-
} else {
|
|
140
|
-
block.nodes[0] = {
|
|
141
|
-
type: block.nodes[0].types[0]
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
core.utils.getTableBlock = function (containerNode, key) {
|
|
148
|
-
var node = containerNode.getDescendant(key);
|
|
149
|
-
var ancestors = containerNode.getAncestors(key).push(node);
|
|
150
|
-
return ancestors.findLast(function (p) {
|
|
151
|
-
return p.type === 'table';
|
|
152
|
-
});
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
core.utils.createTableWithOptions = function (row, columns, extra) {
|
|
156
|
-
var createdTable = core.utils.createTable(row, columns);
|
|
157
|
-
|
|
158
|
-
var newTable = _slate.Block.create(_objectSpread(_objectSpread({}, createdTable.toJSON()), extra));
|
|
159
|
-
|
|
160
|
-
return newTable;
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
core.toolbar = {
|
|
164
|
-
type: 'table',
|
|
165
|
-
icon: /*#__PURE__*/_react["default"].createElement(_GridOn["default"], null),
|
|
166
|
-
ariaLabel: 'Insert Table',
|
|
167
|
-
onClick: function onClick(value, onChange) {
|
|
168
|
-
log('insert table');
|
|
169
|
-
var change = value.change();
|
|
170
|
-
var newTable = core.utils.createTableWithOptions(2, 2, {
|
|
171
|
-
data: {
|
|
172
|
-
border: '1',
|
|
173
|
-
newTable: true
|
|
174
|
-
}
|
|
175
|
-
});
|
|
176
|
-
change.insertBlock(newTable);
|
|
177
|
-
moveFocusToBeginningOfTable(change);
|
|
178
|
-
onChange(change);
|
|
179
|
-
},
|
|
180
|
-
supports: function supports(node, value) {
|
|
181
|
-
return node && node.object === 'block' && core.utils.isSelectionInTable(value);
|
|
182
|
-
},
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Note - the node may not be a table node - it may be a node inside a table.
|
|
186
|
-
*/
|
|
187
|
-
customToolbar: function customToolbar(node, value, onToolbarDone, getFocusedValue) {
|
|
188
|
-
log('[customToolbar] node.data: ', node.data);
|
|
189
|
-
var tableBlock = core.utils.getTableBlock(value.document, node === null || node === void 0 ? void 0 : node.key);
|
|
190
|
-
log('[customToolbar] tableBlock: ', tableBlock);
|
|
191
|
-
|
|
192
|
-
var hasBorder = function hasBorder() {
|
|
193
|
-
return tableBlock.data.get('border') && tableBlock.data.get('border') !== '0';
|
|
194
|
-
};
|
|
195
|
-
|
|
196
|
-
var addRow = function addRow() {
|
|
197
|
-
var change = core.changes.insertRow(value.change());
|
|
198
|
-
onToolbarDone(change, false);
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
var addColumn = function addColumn() {
|
|
202
|
-
var change = core.changes.insertColumn(value.change());
|
|
203
|
-
onToolbarDone(change, false);
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
var removeRow = function removeRow() {
|
|
207
|
-
var change = core.changes.removeRow(value.change());
|
|
208
|
-
onToolbarDone(change, false);
|
|
209
|
-
};
|
|
210
|
-
|
|
211
|
-
var removeColumn = function removeColumn() {
|
|
212
|
-
var change = core.changes.removeColumn(value.change());
|
|
213
|
-
onToolbarDone(change, false);
|
|
214
|
-
};
|
|
215
|
-
|
|
216
|
-
var removeTable = function removeTable() {
|
|
217
|
-
var change = core.changes.removeTable(value.change());
|
|
218
|
-
onToolbarDone(change, false);
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
var toggleBorder = function toggleBorder() {
|
|
222
|
-
var data = tableBlock.data;
|
|
223
|
-
var update = data.set('border', hasBorder() ? '0' : '1');
|
|
224
|
-
log('[toggleBorder] update: ', update);
|
|
225
|
-
var change = value.change().setNodeByKey(tableBlock.key, {
|
|
226
|
-
data: update
|
|
227
|
-
});
|
|
228
|
-
onToolbarDone(change, false);
|
|
229
|
-
};
|
|
230
|
-
|
|
231
|
-
var onDone = function onDone() {
|
|
232
|
-
log('[onDone] call onToolbarDone...');
|
|
233
|
-
onToolbarDone(null, true);
|
|
234
|
-
};
|
|
235
|
-
|
|
236
|
-
var Tb = function Tb() {
|
|
237
|
-
return /*#__PURE__*/_react["default"].createElement(_tableToolbar["default"], {
|
|
238
|
-
getFocusedValue: getFocusedValue,
|
|
239
|
-
plugins: toolbarPlugins,
|
|
240
|
-
onChange: function onChange(c) {
|
|
241
|
-
return onToolbarDone(c, false);
|
|
242
|
-
},
|
|
243
|
-
value: value,
|
|
244
|
-
onAddRow: addRow,
|
|
245
|
-
onRemoveRow: removeRow,
|
|
246
|
-
onAddColumn: addColumn,
|
|
247
|
-
onRemoveColumn: removeColumn,
|
|
248
|
-
onRemoveTable: removeTable,
|
|
249
|
-
hasBorder: hasBorder(),
|
|
250
|
-
onToggleBorder: toggleBorder,
|
|
251
|
-
onDone: onDone
|
|
252
|
-
});
|
|
253
|
-
};
|
|
254
|
-
|
|
255
|
-
return Tb;
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
|
|
259
|
-
var Node = function Node(props) {
|
|
260
|
-
switch (props.node.type) {
|
|
261
|
-
case 'table':
|
|
262
|
-
return /*#__PURE__*/_react["default"].createElement(Table, (0, _extends2["default"])({}, props, {
|
|
263
|
-
onFocus: opts.onFocus,
|
|
264
|
-
onBlur: opts.onBlur
|
|
265
|
-
}));
|
|
266
|
-
|
|
267
|
-
case 'table_row':
|
|
268
|
-
return /*#__PURE__*/_react["default"].createElement(TableRow, props);
|
|
269
|
-
|
|
270
|
-
case 'table_cell':
|
|
271
|
-
return /*#__PURE__*/_react["default"].createElement(TableCell, (0, _extends2["default"])({}, props, {
|
|
272
|
-
onFocus: opts.onFocus,
|
|
273
|
-
onBlur: opts.onBlur
|
|
274
|
-
}));
|
|
275
|
-
|
|
276
|
-
default:
|
|
277
|
-
return null;
|
|
278
|
-
}
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
Node.propTypes = {
|
|
282
|
-
node: _propTypes["default"].object
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
core.normalizeNode = function (node) {
|
|
286
|
-
var addNodeBeforeArray = [];
|
|
287
|
-
if (node.object !== 'document') return;
|
|
288
|
-
node.findDescendant(function (d) {
|
|
289
|
-
if (d.type === 'table') {
|
|
290
|
-
var tablePath = node.getPath(d.key);
|
|
291
|
-
var prevNode = node.getPreviousNode(tablePath);
|
|
292
|
-
var nextNode = node.getNextNode(tablePath);
|
|
293
|
-
|
|
294
|
-
if (!prevNode || !nextNode) {
|
|
295
|
-
addNodeBeforeArray.push({
|
|
296
|
-
node: d,
|
|
297
|
-
prevNode: prevNode,
|
|
298
|
-
nextNode: nextNode
|
|
299
|
-
});
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
if (!addNodeBeforeArray.length) {
|
|
305
|
-
return;
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
return function (change) {
|
|
309
|
-
var newBlock = {
|
|
310
|
-
object: 'block',
|
|
311
|
-
type: 'div'
|
|
312
|
-
};
|
|
313
|
-
addNodeBeforeArray.forEach(function (n) {
|
|
314
|
-
var tablePath = change.value.document.getPath(n.node.key).toJSON(); // removing tableIndex
|
|
315
|
-
|
|
316
|
-
var indexToAdd = tablePath.splice(-1)[0];
|
|
317
|
-
|
|
318
|
-
if (!n.prevNode) {
|
|
319
|
-
// inserting block key before table
|
|
320
|
-
change.insertNodeByPath(tablePath, indexToAdd, newBlock); // this will trigger another normalization, which will figure out if there's not
|
|
321
|
-
// a block after the table and add it, so we exit for now
|
|
322
|
-
|
|
323
|
-
return;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
if (!n.nextNode) {
|
|
327
|
-
// inserting block key after table
|
|
328
|
-
change.insertNodeByPath(tablePath, indexToAdd + 1, newBlock);
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
};
|
|
332
|
-
};
|
|
333
|
-
|
|
334
|
-
core.renderNode = Node;
|
|
335
|
-
core.name = 'table';
|
|
336
|
-
return core;
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
exports["default"] = _default;
|
|
340
|
-
|
|
341
|
-
var parseStyleString = function parseStyleString(s) {
|
|
342
|
-
var regex = /([\w-]*)\s*:\s*([^;]*)/g;
|
|
343
|
-
var match;
|
|
344
|
-
var result = {};
|
|
345
|
-
|
|
346
|
-
while (match = regex.exec(s)) {
|
|
347
|
-
result[match[1]] = match[2].trim();
|
|
348
|
-
}
|
|
349
|
-
|
|
350
|
-
return result;
|
|
351
|
-
};
|
|
352
|
-
|
|
353
|
-
exports.parseStyleString = parseStyleString;
|
|
354
|
-
|
|
355
|
-
var reactAttributes = function reactAttributes(o) {
|
|
356
|
-
return (0, _toStyle.object)(o, {
|
|
357
|
-
camelize: true,
|
|
358
|
-
addUnits: false
|
|
359
|
-
});
|
|
360
|
-
};
|
|
361
|
-
|
|
362
|
-
exports.reactAttributes = reactAttributes;
|
|
363
|
-
|
|
364
|
-
var attributesToMap = function attributesToMap(el) {
|
|
365
|
-
return function (acc, attribute) {
|
|
366
|
-
var value = el.getAttribute(attribute);
|
|
367
|
-
|
|
368
|
-
if (value) {
|
|
369
|
-
if (attribute === 'style') {
|
|
370
|
-
var styleString = el.getAttribute(attribute);
|
|
371
|
-
var reactStyleObject = reactAttributes(parseStyleString(styleString));
|
|
372
|
-
acc['style'] = reactStyleObject;
|
|
373
|
-
} else {
|
|
374
|
-
acc[attribute] = el.getAttribute(attribute);
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
|
|
378
|
-
return acc;
|
|
379
|
-
};
|
|
380
|
-
};
|
|
381
|
-
|
|
382
|
-
var dataToAttributes = function dataToAttributes(data) {
|
|
383
|
-
if (!data || !data.get) {
|
|
384
|
-
return {};
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
return data.reduce(function (acc, v, name) {
|
|
388
|
-
if (v) {
|
|
389
|
-
acc[(0, _reactAttrConverter["default"])(name)] = v;
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
return acc;
|
|
393
|
-
}, {});
|
|
394
|
-
};
|
|
395
|
-
|
|
396
|
-
var attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];
|
|
397
|
-
var cellAttributes = ['colspan', 'rowspan', 'class', 'style'];
|
|
398
|
-
var serialization = {
|
|
399
|
-
deserialize: function deserialize(el, next) {
|
|
400
|
-
var tag = el.tagName.toLowerCase();
|
|
401
|
-
|
|
402
|
-
switch (tag) {
|
|
403
|
-
case 'table':
|
|
404
|
-
{
|
|
405
|
-
var children = el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody' ? el.children[0].children : el.children;
|
|
406
|
-
var c = Array.from(children);
|
|
407
|
-
return {
|
|
408
|
-
object: 'block',
|
|
409
|
-
type: 'table',
|
|
410
|
-
nodes: next(c),
|
|
411
|
-
data: attributes.reduce(attributesToMap(el), {})
|
|
412
|
-
};
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
case 'th':
|
|
416
|
-
{
|
|
417
|
-
return {
|
|
418
|
-
object: 'block',
|
|
419
|
-
type: 'table_cell',
|
|
420
|
-
nodes: next(el.childNodes),
|
|
421
|
-
data: cellAttributes.reduce(attributesToMap(el), {
|
|
422
|
-
header: true
|
|
423
|
-
})
|
|
424
|
-
};
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
case 'tr':
|
|
428
|
-
{
|
|
429
|
-
return {
|
|
430
|
-
object: 'block',
|
|
431
|
-
type: 'table_row',
|
|
432
|
-
nodes: next(Array.from(el.children))
|
|
433
|
-
};
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
case 'td':
|
|
437
|
-
{
|
|
438
|
-
return {
|
|
439
|
-
object: 'block',
|
|
440
|
-
type: 'table_cell',
|
|
441
|
-
nodes: next(Array.from(el.childNodes)),
|
|
442
|
-
data: cellAttributes.reduce(attributesToMap(el), {
|
|
443
|
-
header: false
|
|
444
|
-
})
|
|
445
|
-
};
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
},
|
|
449
|
-
serialize: function serialize(object, children) {
|
|
450
|
-
if (object.object !== 'block') {
|
|
451
|
-
return;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
switch (object.type) {
|
|
455
|
-
case 'table':
|
|
456
|
-
{
|
|
457
|
-
var _attributes = dataToAttributes(object.data);
|
|
458
|
-
|
|
459
|
-
return /*#__PURE__*/_react["default"].createElement("table", _attributes, /*#__PURE__*/_react["default"].createElement("tbody", null, children));
|
|
460
|
-
}
|
|
461
|
-
|
|
462
|
-
case 'table_row':
|
|
463
|
-
{
|
|
464
|
-
return /*#__PURE__*/_react["default"].createElement("tr", null, children);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
case 'table_cell':
|
|
468
|
-
{
|
|
469
|
-
var _attributes2 = dataToAttributes(object.data);
|
|
470
|
-
|
|
471
|
-
delete _attributes2.header;
|
|
472
|
-
|
|
473
|
-
if (object.data.get('header')) {
|
|
474
|
-
return /*#__PURE__*/_react["default"].createElement("th", _attributes2, children);
|
|
475
|
-
} else {
|
|
476
|
-
return /*#__PURE__*/_react["default"].createElement("td", _attributes2, children);
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
}
|
|
480
|
-
}
|
|
481
|
-
};
|
|
482
|
-
exports.serialization = serialization;
|
|
483
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/table/index.jsx"],"names":["log","Table","table","props","nodeAttributes","dataToAttributes","node","data","classes","attributes","onFocus","onBlur","children","propTypes","PropTypes","object","func","SlatePropTypes","oneOfType","arrayOf","isRequired","TableRow","TableCell","td","minWidth","Tag","get","header","moveFocusToBeginningOfTable","change","addedTable","value","document","findDescendant","d","collapseToStartOf","update","remove","setNodeByKey","key","opts","toolbarPlugins","core","schema","blocks","Object","keys","forEach","block","parent","nodes","types","type","objects","utils","getTableBlock","containerNode","getDescendant","ancestors","getAncestors","push","findLast","p","createTableWithOptions","row","columns","extra","createdTable","createTable","newTable","Block","create","toJSON","toolbar","icon","ariaLabel","onClick","onChange","border","insertBlock","supports","isSelectionInTable","customToolbar","onToolbarDone","getFocusedValue","tableBlock","hasBorder","addRow","changes","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","set","onDone","Tb","c","Node","normalizeNode","addNodeBeforeArray","tablePath","getPath","prevNode","getPreviousNode","nextNode","getNextNode","length","newBlock","n","indexToAdd","splice","insertNodeByPath","renderNode","name","parseStyleString","s","regex","match","result","exec","trim","reactAttributes","o","camelize","addUnits","attributesToMap","el","acc","attribute","getAttribute","styleString","reactStyleObject","reduce","v","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","Array","from","childNodes","serialize"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Block } from 'slate';\nimport debug from 'debug';\nimport GridOn from '@material-ui/icons/GridOn';\nimport TableToolbar from './table-toolbar';\nimport PropTypes from 'prop-types';\nimport SlatePropTypes from 'slate-prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport convert from 'react-attr-converter';\nimport { object as toStyleObject } from 'to-style';\nimport CustomTablePlugin from './CustomTablePlugin';\n\nconst log = debug('@pie-lib:editable-html:plugins:table');\n\nconst Table = withStyles(() => ({\n table: {},\n}))((props) => {\n const nodeAttributes = dataToAttributes(props.node.data);\n\n return (\n <table\n className={props.classes.table}\n {...props.attributes}\n {...nodeAttributes}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n <tbody>{props.children}</tbody>\n </table>\n );\n});\n\nTable.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n node: SlatePropTypes.node,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableRow = (props) => <tr {...props.attributes}>{props.children}</tr>;\n\nTableRow.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nconst TableCell = withStyles(() => ({\n td: {\n minWidth: '25px',\n },\n}))((props) => {\n const Tag = props.node.data.get('header') ? 'th' : 'td';\n\n const nodeAttributes = dataToAttributes(props.node.data);\n delete nodeAttributes.header;\n\n return (\n <Tag\n {...props.attributes}\n {...nodeAttributes}\n colSpan={props.node.data.get('colspan')}\n className={props.classes[Tag]}\n onFocus={props.onFocus}\n onBlur={props.onBlur}\n >\n {props.children}\n </Tag>\n );\n});\n\nTableCell.propTypes = {\n attributes: PropTypes.object,\n onFocus: PropTypes.func,\n onBlur: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n};\n\nexport const moveFocusToBeginningOfTable = (change) => {\n const addedTable = change.value.document.findDescendant((d) => !!d.data && !!d.data.get('newTable'));\n\n if (!addedTable) {\n return;\n }\n\n change.collapseToStartOf(addedTable);\n\n const update = addedTable.data.remove('newTable');\n\n change.setNodeByKey(addedTable.key, { data: update });\n};\n\nexport default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = CustomTablePlugin(opts);\n\n // fix outdated schema\n\n if (core.schema && core.schema.blocks) {\n Object.keys(core.schema.blocks).forEach((key) => {\n const block = core.schema.blocks[key];\n\n if (block.parent) {\n if (block.nodes[0].types) {\n block.nodes[0] = {\n type: block.nodes[0].types[0],\n };\n }\n\n if (block.nodes[0].objects) {\n block.nodes[0] = {\n object: block.nodes[0].objects[0],\n };\n }\n\n block.parent = {\n type: block.parent.types[0],\n };\n } else {\n block.nodes[0] = { type: block.nodes[0].types[0] };\n }\n });\n }\n\n core.utils.getTableBlock = (containerNode, key) => {\n const node = containerNode.getDescendant(key);\n const ancestors = containerNode.getAncestors(key).push(node);\n return ancestors.findLast((p) => p.type === 'table');\n };\n\n core.utils.createTableWithOptions = (row, columns, extra) => {\n const createdTable = core.utils.createTable(row, columns);\n const newTable = Block.create({\n ...createdTable.toJSON(),\n ...extra,\n });\n\n return newTable;\n };\n\n core.toolbar = {\n type: 'table',\n icon: <GridOn />,\n ariaLabel: 'Insert Table',\n onClick: (value, onChange) => {\n log('insert table');\n const change = value.change();\n const newTable = core.utils.createTableWithOptions(2, 2, {\n data: {\n border: '1',\n newTable: true,\n },\n });\n\n change.insertBlock(newTable);\n\n moveFocusToBeginningOfTable(change);\n onChange(change);\n },\n supports: (node, value) => node && node.object === 'block' && core.utils.isSelectionInTable(value),\n /**\n * Note - the node may not be a table node - it may be a node inside a table.\n */\n customToolbar: (node, value, onToolbarDone, getFocusedValue) => {\n log('[customToolbar] node.data: ', node.data);\n\n const tableBlock = core.utils.getTableBlock(value.document, node?.key);\n log('[customToolbar] tableBlock: ', tableBlock);\n\n const hasBorder = () => tableBlock.data.get('border') && tableBlock.data.get('border') !== '0';\n const addRow = () => {\n const change = core.changes.insertRow(value.change());\n onToolbarDone(change, false);\n };\n\n const addColumn = () => {\n const change = core.changes.insertColumn(value.change());\n onToolbarDone(change, false);\n };\n\n const removeRow = () => {\n const change = core.changes.removeRow(value.change());\n onToolbarDone(change, false);\n };\n\n const removeColumn = () => {\n const change = core.changes.removeColumn(value.change());\n onToolbarDone(change, false);\n };\n\n const removeTable = () => {\n const change = core.changes.removeTable(value.change());\n onToolbarDone(change, false);\n };\n\n const toggleBorder = () => {\n const { data } = tableBlock;\n const update = data.set('border', hasBorder() ? '0' : '1');\n log('[toggleBorder] update: ', update);\n const change = value.change().setNodeByKey(tableBlock.key, { data: update });\n onToolbarDone(change, false);\n };\n\n const onDone = () => {\n log('[onDone] call onToolbarDone...');\n onToolbarDone(null, true);\n };\n\n const Tb = () => (\n <TableToolbar\n getFocusedValue={getFocusedValue}\n plugins={toolbarPlugins}\n onChange={(c) => onToolbarDone(c, false)}\n value={value}\n onAddRow={addRow}\n onRemoveRow={removeRow}\n onAddColumn={addColumn}\n onRemoveColumn={removeColumn}\n onRemoveTable={removeTable}\n hasBorder={hasBorder()}\n onToggleBorder={toggleBorder}\n onDone={onDone}\n />\n );\n\n return Tb;\n },\n };\n\n const Node = (props) => {\n switch (props.node.type) {\n case 'table':\n return <Table {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n case 'table_row':\n return <TableRow {...props} />;\n case 'table_cell':\n return <TableCell {...props} onFocus={opts.onFocus} onBlur={opts.onBlur} />;\n default:\n return null;\n }\n };\n Node.propTypes = {\n node: PropTypes.object,\n };\n\n core.normalizeNode = (node) => {\n const addNodeBeforeArray = [];\n\n if (node.object !== 'document') return;\n\n node.findDescendant((d) => {\n if (d.type === 'table') {\n const tablePath = node.getPath(d.key);\n const prevNode = node.getPreviousNode(tablePath);\n const nextNode = node.getNextNode(tablePath);\n\n if (!prevNode || !nextNode) {\n addNodeBeforeArray.push({\n node: d,\n prevNode,\n nextNode,\n });\n }\n }\n });\n\n if (!addNodeBeforeArray.length) {\n return;\n }\n\n return (change) => {\n const newBlock = {\n object: 'block',\n type: 'div',\n };\n\n addNodeBeforeArray.forEach((n) => {\n const tablePath = change.value.document.getPath(n.node.key).toJSON();\n // removing tableIndex\n let indexToAdd = tablePath.splice(-1)[0];\n\n if (!n.prevNode) {\n // inserting block key before table\n change.insertNodeByPath(tablePath, indexToAdd, newBlock);\n // this will trigger another normalization, which will figure out if there's not\n // a block after the table and add it, so we exit for now\n return;\n }\n\n if (!n.nextNode) {\n // inserting block key after table\n change.insertNodeByPath(tablePath, indexToAdd + 1, newBlock);\n }\n });\n };\n };\n\n core.renderNode = Node;\n core.name = 'table';\n\n return core;\n};\n\nexport const parseStyleString = (s) => {\n const regex = /([\\w-]*)\\s*:\\s*([^;]*)/g;\n let match;\n const result = {};\n while ((match = regex.exec(s))) {\n result[match[1]] = match[2].trim();\n }\n return result;\n};\n\nexport const reactAttributes = (o) => toStyleObject(o, { camelize: true, addUnits: false });\n\nconst attributesToMap = (el) => (acc, attribute) => {\n const value = el.getAttribute(attribute);\n if (value) {\n if (attribute === 'style') {\n const styleString = el.getAttribute(attribute);\n const reactStyleObject = reactAttributes(parseStyleString(styleString));\n acc['style'] = reactStyleObject;\n } else {\n acc[attribute] = el.getAttribute(attribute);\n }\n }\n return acc;\n};\n\nconst dataToAttributes = (data) => {\n if (!data || !data.get) {\n return {};\n }\n\n return data.reduce((acc, v, name) => {\n if (v) {\n acc[convert(name)] = v;\n }\n return acc;\n }, {});\n};\n\nconst attributes = ['border', 'cellpadding', 'cellspacing', 'class', 'style'];\n\nconst cellAttributes = ['colspan', 'rowspan', 'class', 'style'];\n\nexport const serialization = {\n deserialize(el, next) {\n const tag = el.tagName.toLowerCase();\n\n switch (tag) {\n case 'table': {\n const children =\n el.children.length === 1 && el.children[0].tagName.toLowerCase() === 'tbody'\n ? el.children[0].children\n : el.children;\n const c = Array.from(children);\n\n return {\n object: 'block',\n type: 'table',\n nodes: next(c),\n data: attributes.reduce(attributesToMap(el), {}),\n };\n }\n\n case 'th': {\n return {\n object: 'block',\n type: 'table_cell',\n nodes: next(el.childNodes),\n data: cellAttributes.reduce(attributesToMap(el), { header: true }),\n };\n }\n\n case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children)),\n };\n }\n\n case 'td': {\n return {\n object: 'block',\n type: 'table_cell',\n nodes: next(Array.from(el.childNodes)),\n data: cellAttributes.reduce(attributesToMap(el), { header: false }),\n };\n }\n }\n },\n serialize(object, children) {\n if (object.object !== 'block') {\n return;\n }\n\n switch (object.type) {\n case 'table': {\n const attributes = dataToAttributes(object.data);\n\n return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\n\n if (object.data.get('header')) {\n return <th {...attributes}>{children}</th>;\n } else {\n return <td {...attributes}>{children}</td>;\n }\n }\n }\n },\n};\n"],"file":"index.js"}
|