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