@pie-lib/editable-html 7.17.4-next.45 → 7.17.4-next.454
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.json +165 -0
- package/CHANGELOG.md +286 -0
- package/lib/editor.js +373 -178
- package/lib/editor.js.map +1 -1
- package/lib/index.js +66 -53
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popover.js +70 -0
- package/lib/plugins/characters/custom-popover.js.map +1 -0
- package/lib/plugins/characters/index.js +266 -0
- package/lib/plugins/characters/index.js.map +1 -0
- package/lib/plugins/characters/utils.js +382 -0
- package/lib/plugins/characters/utils.js.map +1 -0
- package/lib/plugins/image/alt-dialog.js +119 -0
- package/lib/plugins/image/alt-dialog.js.map +1 -0
- package/lib/plugins/image/component.js +253 -77
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +95 -61
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +62 -20
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +9 -15
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +20 -12
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +82 -14
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +50 -55
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +26 -25
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +45 -56
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +24 -30
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +28 -35
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +11 -11
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +58 -42
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +5 -5
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +12 -12
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +83 -27
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +41 -50
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +14 -11
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +5 -5
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +43 -43
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +5 -5
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +60 -64
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +1 -1
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +32 -9
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +7 -6
- package/src/editor.jsx +196 -31
- package/src/index.jsx +22 -5
- package/src/plugins/characters/custom-popover.js +45 -0
- package/src/plugins/characters/index.jsx +244 -0
- package/src/plugins/characters/utils.js +448 -0
- package/src/plugins/image/alt-dialog.jsx +69 -0
- package/src/plugins/image/component.jsx +204 -21
- package/src/plugins/image/image-toolbar.jsx +68 -22
- package/src/plugins/image/index.jsx +47 -9
- package/src/plugins/index.jsx +4 -1
- package/src/plugins/list/index.jsx +67 -5
- package/src/plugins/math/index.jsx +31 -37
- package/src/plugins/media/index.jsx +3 -0
- package/src/plugins/media/media-dialog.js +1 -1
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
- package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
- package/src/plugins/respArea/index.jsx +50 -31
- package/src/plugins/table/index.jsx +63 -14
- package/src/plugins/toolbar/default-toolbar.jsx +8 -0
- package/src/plugins/toolbar/editor-and-toolbar.jsx +12 -4
- package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
- package/src/plugins/toolbar/toolbar.jsx +14 -4
- package/src/serialization.jsx +19 -3
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports["default"] = void 0;
|
|
7
9
|
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
8
12
|
var _react = _interopRequireDefault(require("react"));
|
|
9
13
|
|
|
10
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
15
|
|
|
12
16
|
var _icons = require("../icons");
|
|
13
17
|
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
|
|
16
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
17
|
-
|
|
18
18
|
var InlineDropdown = function InlineDropdown(_ref) {
|
|
19
19
|
var attributes = _ref.attributes,
|
|
20
20
|
selectedItem = _ref.selectedItem;
|
|
21
21
|
// TODO: Investigate
|
|
22
22
|
// Needed because items with values inside have different positioning for some reason
|
|
23
23
|
var html = selectedItem || '<div> </div>';
|
|
24
|
-
return _react["default"].createElement("span",
|
|
24
|
+
return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
|
|
25
25
|
style: {
|
|
26
26
|
display: 'inline-flex',
|
|
27
27
|
height: '50px',
|
|
28
28
|
margin: '0 5px',
|
|
29
29
|
cursor: 'pointer'
|
|
30
30
|
}
|
|
31
|
-
}), _react["default"].createElement("div", {
|
|
31
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
32
32
|
style: {
|
|
33
33
|
display: 'inline-flex',
|
|
34
34
|
minWidth: '178px',
|
|
@@ -39,7 +39,7 @@ var InlineDropdown = function InlineDropdown(_ref) {
|
|
|
39
39
|
borderRadius: '3px',
|
|
40
40
|
position: 'relative'
|
|
41
41
|
}
|
|
42
|
-
}, _react["default"].createElement("div", {
|
|
42
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
43
43
|
style: {
|
|
44
44
|
flex: 1,
|
|
45
45
|
overflow: 'hidden',
|
|
@@ -51,7 +51,7 @@ var InlineDropdown = function InlineDropdown(_ref) {
|
|
|
51
51
|
dangerouslySetInnerHTML: {
|
|
52
52
|
__html: html
|
|
53
53
|
}
|
|
54
|
-
}), _react["default"].createElement(_icons.Chevron, {
|
|
54
|
+
}), /*#__PURE__*/_react["default"].createElement(_icons.Chevron, {
|
|
55
55
|
direction: "down",
|
|
56
56
|
style: {
|
|
57
57
|
position: 'absolute',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["InlineDropdown","attributes","selectedItem","html","display","height","margin","cursor","minWidth","background","border","boxSizing","borderRadius","position","flex","overflow","padding","whiteSpace","textOverflow","lineHeight","__html","top","right","propTypes","PropTypes","object","oneOfType","string"],"sources":["../../../../src/plugins/respArea/inline-dropdown/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../icons';\n\nconst InlineDropdown = ({ attributes, selectedItem }) => {\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = selectedItem || '<div> </div>';\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n position: 'relative'\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n lineHeight: '35px'\n }}\n dangerouslySetInnerHTML={{\n __html: html\n }}\n />\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px'\n }}\n />\n </div>\n </span>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\n\nexport default InlineDropdown;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkC;EAAA,IAA/BC,UAA+B,QAA/BA,UAA+B;EAAA,IAAnBC,YAAmB,QAAnBA,YAAmB;EACvD;EACA;EACA,IAAMC,IAAI,GAAGD,YAAY,IAAI,kBAA7B;EAEA,oBACE,sEACMD,UADN;IAEE,KAAK,EAAE;MACLG,OAAO,EAAE,aADJ;MAELC,MAAM,EAAE,MAFH;MAGLC,MAAM,EAAE,OAHH;MAILC,MAAM,EAAE;IAJH;EAFT,iBASE;IACE,KAAK,EAAE;MACLH,OAAO,EAAE,aADJ;MAELI,QAAQ,EAAE,OAFL;MAGLH,MAAM,EAAE,MAHH;MAILI,UAAU,EAAE,MAJP;MAKLC,MAAM,EAAE,mBALH;MAMLC,SAAS,EAAE,YANN;MAOLC,YAAY,EAAE,KAPT;MAQLC,QAAQ,EAAE;IARL;EADT,gBAYE;IACE,KAAK,EAAE;MACLC,IAAI,EAAE,CADD;MAELC,QAAQ,EAAE,QAFL;MAGLC,OAAO,EAAE,cAHJ;MAILC,UAAU,EAAE,QAJP;MAKLC,YAAY,EAAE,UALT;MAMLC,UAAU,EAAE;IANP,CADT;IASE,uBAAuB,EAAE;MACvBC,MAAM,EAAEjB;IADe;EAT3B,EAZF,eAyBE,gCAAC,cAAD;IACE,SAAS,EAAC,MADZ;IAEE,KAAK,EAAE;MACLU,QAAQ,EAAE,UADL;MAELQ,GAAG,EAAE,KAFA;MAGLC,KAAK,EAAE;IAHF;EAFT,EAzBF,CATF,CADF;AA8CD,CAnDD;;AAqDAtB,cAAc,CAACuB,SAAf,GAA2B;EACzBtB,UAAU,EAAEuB,qBAAA,CAAUC,MADG;EAEzBvB,YAAY,EAAEsB,qBAAA,CAAUE,SAAV,CAAoB,CAACF,qBAAA,CAAUG,MAAX,EAAmBH,qBAAA,CAAUC,MAA7B,CAApB;AAFW,CAA3B;eAKezB,c"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.
|
|
8
|
+
exports.isNumber = exports.insertSnackBar = exports.getDefaultElement = exports.defaultIDD = exports.defaultECR = exports.defaultDIB = void 0;
|
|
7
9
|
|
|
8
10
|
var _react = _interopRequireDefault(require("react"));
|
|
9
11
|
|
|
@@ -13,8 +15,6 @@ var _slate = require("slate");
|
|
|
13
15
|
|
|
14
16
|
var _Snackbar = _interopRequireDefault(require("@material-ui/core/Snackbar"));
|
|
15
17
|
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
|
-
|
|
18
18
|
var isNumber = function isNumber(val) {
|
|
19
19
|
return !isNaN(parseFloat(val)) && isFinite(val);
|
|
20
20
|
};
|
|
@@ -29,7 +29,7 @@ var insertSnackBar = function insertSnackBar(message) {
|
|
|
29
29
|
var newEl = document.createElement('div');
|
|
30
30
|
newEl.className = 'response-area-alert';
|
|
31
31
|
|
|
32
|
-
var el = _react["default"].createElement(_Snackbar["default"], {
|
|
32
|
+
var el = /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
|
|
33
33
|
anchorOrigin: {
|
|
34
34
|
vertical: 'top',
|
|
35
35
|
horizontal: 'center'
|
|
@@ -38,7 +38,7 @@ var insertSnackBar = function insertSnackBar(message) {
|
|
|
38
38
|
ContentProps: {
|
|
39
39
|
'aria-describedby': 'message-id'
|
|
40
40
|
},
|
|
41
|
-
message: _react["default"].createElement("span", {
|
|
41
|
+
message: /*#__PURE__*/_react["default"].createElement("span", {
|
|
42
42
|
id: "message-id"
|
|
43
43
|
}, message)
|
|
44
44
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils.js","names":["isNumber","val","isNaN","parseFloat","isFinite","insertSnackBar","message","prevSnacks","document","querySelectorAll","forEach","s","remove","newEl","createElement","className","el","vertical","horizontal","ReactDOM","render","body","appendChild","setTimeout","defaultECR","index","Inline","create","type","isVoid","data","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"sources":["../../../src/plugins/respArea/utils.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nexport const isNumber = val => !isNaN(parseFloat(val)) && isFinite(val);\n\nexport const insertSnackBar = message => {\n const prevSnacks = document.querySelectorAll('.response-area-alert');\n\n prevSnacks.forEach(s => s.remove());\n\n const newEl = document.createElement('div');\n\n newEl.className = 'response-area-alert';\n\n const el = (\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={true}\n ContentProps={{\n 'aria-describedby': 'message-id'\n }}\n message={<span id=\"message-id\">{message}</span>}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n newEl.remove();\n }, 2000);\n};\n\nexport const defaultECR = index =>\n Inline.create({\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const defaultDIB = (opts, index) =>\n Inline.create({\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index,\n duplicates: opts.options.duplicates,\n value: null\n }\n });\n\nexport const defaultIDD = index =>\n Inline.create({\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const getDefaultElement = (opts, index) => {\n switch (opts.type) {\n case 'explicit-constructed-response':\n return defaultECR(index);\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAAAC,GAAG;EAAA,OAAI,CAACC,KAAK,CAACC,UAAU,CAACF,GAAD,CAAX,CAAN,IAA2BG,QAAQ,CAACH,GAAD,CAAvC;AAAA,CAApB;;;;AAEA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,OAAO,EAAI;EACvC,IAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAAnB;EAEAF,UAAU,CAACG,OAAX,CAAmB,UAAAC,CAAC;IAAA,OAAIA,CAAC,CAACC,MAAF,EAAJ;EAAA,CAApB;EAEA,IAAMC,KAAK,GAAGL,QAAQ,CAACM,aAAT,CAAuB,KAAvB,CAAd;EAEAD,KAAK,CAACE,SAAN,GAAkB,qBAAlB;;EAEA,IAAMC,EAAE,gBACN,gCAAC,oBAAD;IACE,YAAY,EAAE;MAAEC,QAAQ,EAAE,KAAZ;MAAmBC,UAAU,EAAE;IAA/B,CADhB;IAEE,IAAI,EAAE,IAFR;IAGE,YAAY,EAAE;MACZ,oBAAoB;IADR,CAHhB;IAME,OAAO,eAAE;MAAM,EAAE,EAAC;IAAT,GAAuBZ,OAAvB;EANX,EADF;;EAWAa,oBAAA,CAASC,MAAT,CAAgBJ,EAAhB,EAAoBH,KAApB;;EAEAL,QAAQ,CAACa,IAAT,CAAcC,WAAd,CAA0BT,KAA1B;EAEAU,UAAU,CAAC,YAAM;IACfV,KAAK,CAACD,MAAN;EACD,CAFS,EAEP,IAFO,CAAV;AAGD,CA3BM;;;;AA6BA,IAAMY,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK;EAAA,OAC7BC,aAAA,CAAOC,MAAP,CAAc;IACZC,IAAI,EAAE,+BADM;IAEZC,MAAM,EAAE,IAFI;IAGZC,IAAI,EAAE;MACJL,KAAK,EAALA;IADI;EAHM,CAAd,CAD6B;AAAA,CAAxB;;;;AASA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAOP,KAAP;EAAA,OACxBC,aAAA,CAAOC,MAAP,CAAc;IACZC,IAAI,EAAE,mBADM;IAEZC,MAAM,EAAE,IAFI;IAGZC,IAAI,EAAE;MACJL,KAAK,EAALA,KADI;MAEJQ,UAAU,EAAED,IAAI,CAACE,OAAL,CAAaD,UAFrB;MAGJE,KAAK,EAAE;IAHH;EAHM,CAAd,CADwB;AAAA,CAAnB;;;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAX,KAAK;EAAA,OAC7BC,aAAA,CAAOC,MAAP,CAAc;IACZU,MAAM,EAAE,QADI;IAEZT,IAAI,EAAE,iBAFM;IAGZC,MAAM,EAAE,IAHI;IAIZC,IAAI,EAAE;MACJL,KAAK,EAALA;IADI;EAJM,CAAd,CAD6B;AAAA,CAAxB;;;;AAUA,IAAMa,iBAAiB,GAAG,SAApBA,iBAAoB,CAACN,IAAD,EAAOP,KAAP,EAAiB;EAChD,QAAQO,IAAI,CAACJ,IAAb;IACE,KAAK,+BAAL;MACE,OAAOJ,UAAU,CAACC,KAAD,CAAjB;;IACF,KAAK,mBAAL;MACE,OAAOM,UAAU,CAACC,IAAD,EAAOP,KAAP,CAAjB;;IACF;MACE;MACA,OAAOW,UAAU,CAACX,KAAD,CAAjB;EAPJ;AASD,CAVM"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.RemoveTable = exports.
|
|
8
|
+
exports.RemoveTable = exports.RemoveRow = exports.RemoveColumn = exports.AddRow = exports.AddColumn = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
11
|
|
|
8
12
|
var _react = _interopRequireDefault(require("react"));
|
|
9
13
|
|
|
10
14
|
var _styles = require("@material-ui/core/styles");
|
|
11
15
|
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
13
|
-
|
|
14
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
-
|
|
16
16
|
var styles = {
|
|
17
17
|
icon: {
|
|
18
18
|
fill: 'grey',
|
|
@@ -24,44 +24,44 @@ var styles = {
|
|
|
24
24
|
|
|
25
25
|
var SvgIcon = function SvgIcon(Component) {
|
|
26
26
|
return (0, _styles.withStyles)(styles)(function (props) {
|
|
27
|
-
return _react["default"].createElement("svg", {
|
|
27
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
28
28
|
xmlns: "http://www.w3.org/2000/svg",
|
|
29
29
|
version: "1.1",
|
|
30
30
|
width: "24",
|
|
31
31
|
height: "24",
|
|
32
32
|
viewBox: "0 0 24 24"
|
|
33
|
-
}, _react["default"].createElement(Component, {
|
|
33
|
+
}, /*#__PURE__*/_react["default"].createElement(Component, {
|
|
34
34
|
className: props.classes.icon
|
|
35
35
|
}));
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
var AddRow = SvgIcon(function (props) {
|
|
40
|
-
return _react["default"].createElement("path",
|
|
40
|
+
return /*#__PURE__*/_react["default"].createElement("path", (0, _extends2["default"])({}, props, {
|
|
41
41
|
d: "M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z"
|
|
42
42
|
}));
|
|
43
43
|
});
|
|
44
44
|
exports.AddRow = AddRow;
|
|
45
45
|
var RemoveRow = SvgIcon(function (props) {
|
|
46
|
-
return _react["default"].createElement("path",
|
|
46
|
+
return /*#__PURE__*/_react["default"].createElement("path", (0, _extends2["default"])({}, props, {
|
|
47
47
|
d: "M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z"
|
|
48
48
|
}));
|
|
49
49
|
});
|
|
50
50
|
exports.RemoveRow = RemoveRow;
|
|
51
51
|
var AddColumn = SvgIcon(function (props) {
|
|
52
|
-
return _react["default"].createElement("path",
|
|
52
|
+
return /*#__PURE__*/_react["default"].createElement("path", (0, _extends2["default"])({}, props, {
|
|
53
53
|
d: "M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z"
|
|
54
54
|
}));
|
|
55
55
|
});
|
|
56
56
|
exports.AddColumn = AddColumn;
|
|
57
57
|
var RemoveColumn = SvgIcon(function (props) {
|
|
58
|
-
return _react["default"].createElement("path",
|
|
58
|
+
return /*#__PURE__*/_react["default"].createElement("path", (0, _extends2["default"])({}, props, {
|
|
59
59
|
d: "M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z"
|
|
60
60
|
}));
|
|
61
61
|
});
|
|
62
62
|
exports.RemoveColumn = RemoveColumn;
|
|
63
63
|
var RemoveTable = SvgIcon(function (props) {
|
|
64
|
-
return _react["default"].createElement("path",
|
|
64
|
+
return /*#__PURE__*/_react["default"].createElement("path", (0, _extends2["default"])({}, props, {
|
|
65
65
|
d: "M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z"
|
|
66
66
|
}));
|
|
67
67
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["styles","icon","fill","SvgIcon","Component","withStyles","props","classes","AddRow","RemoveRow","AddColumn","RemoveColumn","RemoveTable"],"sources":["../../../../src/plugins/table/icons/index.jsx"],"sourcesContent":["import React from 'react';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst styles = {\n icon: {\n fill: 'grey',\n '&:hover': {\n fill: 'black'\n }\n }\n};\n\nconst SvgIcon = Component => {\n return withStyles(styles)(props => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n version=\"1.1\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <Component className={props.classes.icon} />\n </svg>\n ));\n};\nexport const AddRow = SvgIcon(props => (\n <path\n {...props}\n d=\"M22,10A2,2 0 0,1 20,12H4A2,2 0 0,1 2,10V3H4V5H8V3H10V5H14V3H16V5H20V3H22V10M4,10H8V7H4V10M10,10H14V7H10V10M20,10V7H16V10H20M11,14H13V17H16V19H13V22H11V19H8V17H11V14Z\"\n />\n));\n\nexport const RemoveRow = SvgIcon(props => (\n <path\n {...props}\n d=\"M9.41,13L12,15.59L14.59,13L16,14.41L13.41,17L16,19.59L14.59,21L12,18.41L9.41,21L8,19.59L10.59,17L8,14.41L9.41,13M22,9A2,2 0 0,1 20,11H4A2,2 0 0,1 2,9V6A2,2 0 0,1 4,4H20A2,2 0 0,1 22,6V9M4,9H8V6H4V9M10,9H14V6H10V9M16,9H20V6H16V9Z\"\n />\n));\n\nexport const AddColumn = SvgIcon(props => (\n <path\n {...props}\n d=\"M11,2A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H2V2H11M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M15,11H18V8H20V11H23V13H20V16H18V13H15V11Z\"\n />\n));\n\nexport const RemoveColumn = SvgIcon(props => (\n <path\n {...props}\n d=\"M4,2H11A2,2 0 0,1 13,4V20A2,2 0 0,1 11,22H4A2,2 0 0,1 2,20V4A2,2 0 0,1 4,2M4,10V14H11V10H4M4,16V20H11V16H4M4,4V8H11V4H4M17.59,12L15,9.41L16.41,8L19,10.59L21.59,8L23,9.41L20.41,12L23,14.59L21.59,16L19,13.41L16.41,16L15,14.59L17.59,12Z\"\n />\n));\n\nexport const RemoveTable = SvgIcon(props => (\n <path\n {...props}\n d=\"M15.46,15.88L16.88,14.46L19,16.59L21.12,14.46L22.54,15.88L20.41,18L22.54,20.12L21.12,21.54L19,19.41L16.88,21.54L15.46,20.12L17.59,18L15.46,15.88M4,3H18A2,2 0 0,1 20,5V12.08C18.45,11.82 16.92,12.18 15.68,13H12V17H13.08C12.97,17.68 12.97,18.35 13.08,19H4A2,2 0 0,1 2,17V5A2,2 0 0,1 4,3M4,7V11H10V7H4M12,7V11H18V7H12M4,13V17H10V13H4Z\"\n />\n));\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,MAAM,GAAG;EACbC,IAAI,EAAE;IACJC,IAAI,EAAE,MADF;IAEJ,WAAW;MACTA,IAAI,EAAE;IADG;EAFP;AADO,CAAf;;AASA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,SAAS,EAAI;EAC3B,OAAO,IAAAC,kBAAA,EAAWL,MAAX,EAAmB,UAAAM,KAAK;IAAA,oBAC7B;MACE,KAAK,EAAC,4BADR;MAEE,OAAO,EAAC,KAFV;MAGE,KAAK,EAAC,IAHR;MAIE,MAAM,EAAC,IAJT;MAKE,OAAO,EAAC;IALV,gBAOE,gCAAC,SAAD;MAAW,SAAS,EAAEA,KAAK,CAACC,OAAN,CAAcN;IAApC,EAPF,CAD6B;EAAA,CAAxB,CAAP;AAWD,CAZD;;AAaO,IAAMO,MAAM,GAAGL,OAAO,CAAC,UAAAG,KAAK;EAAA,oBACjC,sEACMA,KADN;IAEE,CAAC,EAAC;EAFJ,GADiC;AAAA,CAAN,CAAtB;;AAOA,IAAMG,SAAS,GAAGN,OAAO,CAAC,UAAAG,KAAK;EAAA,oBACpC,sEACMA,KADN;IAEE,CAAC,EAAC;EAFJ,GADoC;AAAA,CAAN,CAAzB;;AAOA,IAAMI,SAAS,GAAGP,OAAO,CAAC,UAAAG,KAAK;EAAA,oBACpC,sEACMA,KADN;IAEE,CAAC,EAAC;EAFJ,GADoC;AAAA,CAAN,CAAzB;;AAOA,IAAMK,YAAY,GAAGR,OAAO,CAAC,UAAAG,KAAK;EAAA,oBACvC,sEACMA,KADN;IAEE,CAAC,EAAC;EAFJ,GADuC;AAAA,CAAN,CAA5B;;AAOA,IAAMM,WAAW,GAAGT,OAAO,CAAC,UAAAG,KAAK;EAAA,oBACtC,sEACMA,KADN;IAEE,CAAC,EAAC;EAFJ,GADsC;AAAA,CAAN,CAA3B"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
|
-
exports.serialization = exports.reactAttributes = exports.parseStyleString = exports["default"] = void 0;
|
|
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"));
|
|
7
13
|
|
|
8
14
|
var _react = _interopRequireDefault(require("react"));
|
|
9
15
|
|
|
@@ -27,9 +33,9 @@ var _reactAttrConverter = _interopRequireDefault(require("react-attr-converter")
|
|
|
27
33
|
|
|
28
34
|
var _toStyle = require("to-style");
|
|
29
35
|
|
|
30
|
-
function
|
|
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; }
|
|
31
37
|
|
|
32
|
-
function
|
|
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; }
|
|
33
39
|
|
|
34
40
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:table');
|
|
35
41
|
var Table = (0, _styles.withStyles)(function () {
|
|
@@ -38,12 +44,12 @@ var Table = (0, _styles.withStyles)(function () {
|
|
|
38
44
|
};
|
|
39
45
|
})(function (props) {
|
|
40
46
|
var nodeAttributes = dataToAttributes(props.node.data);
|
|
41
|
-
return _react["default"].createElement("table",
|
|
47
|
+
return /*#__PURE__*/_react["default"].createElement("table", (0, _extends2["default"])({
|
|
42
48
|
className: props.classes.table
|
|
43
49
|
}, props.attributes, nodeAttributes, {
|
|
44
50
|
onFocus: props.onFocus,
|
|
45
51
|
onBlur: props.onBlur
|
|
46
|
-
}), _react["default"].createElement("tbody", null, props.children));
|
|
52
|
+
}), /*#__PURE__*/_react["default"].createElement("tbody", null, props.children));
|
|
47
53
|
});
|
|
48
54
|
Table.propTypes = {
|
|
49
55
|
attributes: _propTypes["default"].object,
|
|
@@ -54,7 +60,7 @@ Table.propTypes = {
|
|
|
54
60
|
};
|
|
55
61
|
|
|
56
62
|
var TableRow = function TableRow(props) {
|
|
57
|
-
return _react["default"].createElement("tr", props.attributes, props.children);
|
|
63
|
+
return /*#__PURE__*/_react["default"].createElement("tr", props.attributes, props.children);
|
|
58
64
|
};
|
|
59
65
|
|
|
60
66
|
TableRow.propTypes = {
|
|
@@ -73,7 +79,7 @@ var TableCell = (0, _styles.withStyles)(function () {
|
|
|
73
79
|
var Tag = props.node.data.get('header') ? 'th' : 'td';
|
|
74
80
|
var nodeAttributes = dataToAttributes(props.node.data);
|
|
75
81
|
delete nodeAttributes.header;
|
|
76
|
-
return _react["default"].createElement(Tag,
|
|
82
|
+
return /*#__PURE__*/_react["default"].createElement(Tag, (0, _extends2["default"])({}, props.attributes, nodeAttributes, {
|
|
77
83
|
colSpan: props.node.data.get('colspan'),
|
|
78
84
|
className: props.classes[Tag],
|
|
79
85
|
onFocus: props.onFocus,
|
|
@@ -87,6 +93,24 @@ TableCell.propTypes = {
|
|
|
87
93
|
children: _propTypes["default"].oneOfType([_propTypes["default"].arrayOf(_propTypes["default"].node), _propTypes["default"].node]).isRequired
|
|
88
94
|
};
|
|
89
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
|
+
|
|
90
114
|
var _default = function _default(opts, toolbarPlugins
|
|
91
115
|
/* : {toolbar: {}}[] */
|
|
92
116
|
) {
|
|
@@ -130,12 +154,28 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
130
154
|
});
|
|
131
155
|
};
|
|
132
156
|
|
|
157
|
+
core.utils.createTableWithOptions = function (row, columns, extra) {
|
|
158
|
+
var createdTable = core.utils.createTable(row, columns);
|
|
159
|
+
|
|
160
|
+
var newTable = _slate.Block.create(_objectSpread(_objectSpread({}, createdTable.toJSON()), extra));
|
|
161
|
+
|
|
162
|
+
return newTable;
|
|
163
|
+
};
|
|
164
|
+
|
|
133
165
|
core.toolbar = {
|
|
134
|
-
icon: _react["default"].createElement(_GridOn["default"], null),
|
|
166
|
+
icon: /*#__PURE__*/_react["default"].createElement(_GridOn["default"], null),
|
|
135
167
|
onClick: function onClick(value, onChange) {
|
|
136
168
|
log('insert table');
|
|
137
|
-
var
|
|
138
|
-
|
|
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);
|
|
139
179
|
},
|
|
140
180
|
supports: function supports(node, value) {
|
|
141
181
|
return node && node.object === 'block' && core.utils.isSelectionInTable(value);
|
|
@@ -146,7 +186,7 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
146
186
|
*/
|
|
147
187
|
customToolbar: function customToolbar(node, value, onToolbarDone) {
|
|
148
188
|
log('[customToolbar] node.data: ', node.data);
|
|
149
|
-
var tableBlock = core.utils.getTableBlock(value.document, node.key);
|
|
189
|
+
var tableBlock = core.utils.getTableBlock(value.document, node === null || node === void 0 ? void 0 : node.key);
|
|
150
190
|
log('[customToolbar] tableBlock: ', tableBlock);
|
|
151
191
|
|
|
152
192
|
var hasBorder = function hasBorder() {
|
|
@@ -194,7 +234,7 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
194
234
|
};
|
|
195
235
|
|
|
196
236
|
var Tb = function Tb() {
|
|
197
|
-
return _react["default"].createElement(_tableToolbar["default"], {
|
|
237
|
+
return /*#__PURE__*/_react["default"].createElement(_tableToolbar["default"], {
|
|
198
238
|
plugins: toolbarPlugins,
|
|
199
239
|
onChange: function onChange(c) {
|
|
200
240
|
return onToolbarDone(c, false);
|
|
@@ -218,16 +258,16 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
218
258
|
var Node = function Node(props) {
|
|
219
259
|
switch (props.node.type) {
|
|
220
260
|
case 'table':
|
|
221
|
-
return _react["default"].createElement(Table,
|
|
261
|
+
return /*#__PURE__*/_react["default"].createElement(Table, (0, _extends2["default"])({}, props, {
|
|
222
262
|
onFocus: opts.onFocus,
|
|
223
263
|
onBlur: opts.onBlur
|
|
224
264
|
}));
|
|
225
265
|
|
|
226
266
|
case 'table_row':
|
|
227
|
-
return _react["default"].createElement(TableRow, props);
|
|
267
|
+
return /*#__PURE__*/_react["default"].createElement(TableRow, props);
|
|
228
268
|
|
|
229
269
|
case 'table_cell':
|
|
230
|
-
return _react["default"].createElement(TableCell,
|
|
270
|
+
return /*#__PURE__*/_react["default"].createElement(TableCell, (0, _extends2["default"])({}, props, {
|
|
231
271
|
onFocus: opts.onFocus,
|
|
232
272
|
onBlur: opts.onBlur
|
|
233
273
|
}));
|
|
@@ -246,9 +286,18 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
246
286
|
return;
|
|
247
287
|
}
|
|
248
288
|
|
|
289
|
+
var tableAdded = node.findDescendant(function (d) {
|
|
290
|
+
return d.data && d.data.get('newTable');
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
if (!tableAdded) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
var nodeToSearch = node.getParent(tableAdded.key) || node;
|
|
249
298
|
var shouldAddTextAfterNode = false;
|
|
250
|
-
var indexToNotHaveTableOn =
|
|
251
|
-
var indexOfLastTable =
|
|
299
|
+
var indexToNotHaveTableOn = nodeToSearch.nodes.size - 1;
|
|
300
|
+
var indexOfLastTable = nodeToSearch.nodes.findLastIndex(function (d) {
|
|
252
301
|
return d.type === 'table';
|
|
253
302
|
}); // if the last table in the document is of type table, we need to do the change
|
|
254
303
|
|
|
@@ -260,13 +309,12 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
260
309
|
return;
|
|
261
310
|
}
|
|
262
311
|
|
|
263
|
-
var tableNode = node.nodes.get(indexOfLastTable);
|
|
264
312
|
return function (change) {
|
|
265
313
|
if (shouldAddTextAfterNode) {
|
|
266
|
-
var tableJSON =
|
|
314
|
+
var tableJSON = tableAdded.toJSON(); // we remove the table node because otherwise we can't add the empty block after it
|
|
267
315
|
// we need a block that contains text in order to do it
|
|
268
316
|
|
|
269
|
-
change.removeNodeByKey(
|
|
317
|
+
change.removeNodeByKey(tableAdded.key);
|
|
270
318
|
|
|
271
319
|
var newBlock = _slate.Block.create({
|
|
272
320
|
object: 'block',
|
|
@@ -282,12 +330,19 @@ var _default = function _default(opts, toolbarPlugins
|
|
|
282
330
|
var prevText = change.value.document.getPreviousText(newBlock.key);
|
|
283
331
|
|
|
284
332
|
if (prevText) {
|
|
333
|
+
var _prevText$text, _prevText$text2;
|
|
334
|
+
|
|
285
335
|
// we move focus to the previous text
|
|
286
|
-
change.moveFocusTo(prevText.key, prevText.text.length).moveAnchorTo(prevText.key, prevText.text.length);
|
|
336
|
+
change.moveFocusTo(prevText.key, (_prevText$text = prevText.text) === null || _prevText$text === void 0 ? void 0 : _prevText$text.length).moveAnchorTo(prevText.key, (_prevText$text2 = prevText.text) === null || _prevText$text2 === void 0 ? void 0 : _prevText$text2.length);
|
|
287
337
|
} // we insert the table block between the first block with text and the last block with text
|
|
288
338
|
|
|
289
339
|
|
|
290
|
-
change.insertBlock(tableJSON)
|
|
340
|
+
change.insertBlock(_objectSpread(_objectSpread({}, tableJSON), {}, {
|
|
341
|
+
data: _objectSpread(_objectSpread({}, tableJSON.data), {}, {
|
|
342
|
+
newTable: true
|
|
343
|
+
})
|
|
344
|
+
}));
|
|
345
|
+
moveFocusToBeginningOfTable(change);
|
|
291
346
|
});
|
|
292
347
|
}
|
|
293
348
|
};
|
|
@@ -315,7 +370,8 @@ exports.parseStyleString = parseStyleString;
|
|
|
315
370
|
|
|
316
371
|
var reactAttributes = function reactAttributes(o) {
|
|
317
372
|
return (0, _toStyle.object)(o, {
|
|
318
|
-
camelize: true
|
|
373
|
+
camelize: true,
|
|
374
|
+
addUnits: false
|
|
319
375
|
});
|
|
320
376
|
};
|
|
321
377
|
|
|
@@ -416,12 +472,12 @@ var serialization = {
|
|
|
416
472
|
{
|
|
417
473
|
var _attributes = dataToAttributes(object.data);
|
|
418
474
|
|
|
419
|
-
return _react["default"].createElement("table", _attributes, _react["default"].createElement("tbody", null, children));
|
|
475
|
+
return /*#__PURE__*/_react["default"].createElement("table", _attributes, /*#__PURE__*/_react["default"].createElement("tbody", null, children));
|
|
420
476
|
}
|
|
421
477
|
|
|
422
478
|
case 'table_row':
|
|
423
479
|
{
|
|
424
|
-
return _react["default"].createElement("tr", null, children);
|
|
480
|
+
return /*#__PURE__*/_react["default"].createElement("tr", null, children);
|
|
425
481
|
}
|
|
426
482
|
|
|
427
483
|
case 'table_cell':
|
|
@@ -431,9 +487,9 @@ var serialization = {
|
|
|
431
487
|
delete _attributes2.header;
|
|
432
488
|
|
|
433
489
|
if (object.data.get('header')) {
|
|
434
|
-
return _react["default"].createElement("th", _attributes2, children);
|
|
490
|
+
return /*#__PURE__*/_react["default"].createElement("th", _attributes2, children);
|
|
435
491
|
} else {
|
|
436
|
-
return _react["default"].createElement("td", _attributes2, children);
|
|
492
|
+
return /*#__PURE__*/_react["default"].createElement("td", _attributes2, children);
|
|
437
493
|
}
|
|
438
494
|
}
|
|
439
495
|
}
|
|
@@ -1 +1 @@
|
|
|
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","opts","toolbarPlugins","core","typeContent","schema","blocks","Object","keys","forEach","key","block","parent","nodes","types","type","objects","utils","getTableBlock","containerNode","getDescendant","ancestors","getAncestors","push","findLast","p","toolbar","icon","onClick","value","onChange","c","changes","insertTable","change","supports","isSelectionInTable","customToolbar","onToolbarDone","tableBlock","document","hasBorder","addRow","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","update","set","setNodeByKey","onDone","Tb","Node","normalizeNode","shouldAddTextAfterNode","indexToNotHaveTableOn","size","indexOfLastTable","findLastIndex","d","tableNode","tableJSON","toJSON","removeNodeByKey","newBlock","Block","create","insertBlock","withoutNormalization","prevText","getPreviousText","moveFocusTo","text","length","moveAnchorTo","renderNode","parseStyleString","s","regex","match","result","exec","trim","reactAttributes","o","camelize","attributesToMap","el","acc","attribute","getAttribute","styleString","reactStyleObject","reduce","v","name","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","Array","from","childNodes","serialize"],"mappings":"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","sourcesContent":["import React from 'react';\nimport EditTable from 'slate-edit-table';\nimport { Block, Inline } 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';\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 default (opts, toolbarPlugins /* : {toolbar: {}}[] */) => {\n const core = EditTable({\n typeContent: 'div'\n });\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.toolbar = {\n icon: <GridOn />,\n onClick: (value, onChange) => {\n log('insert table');\n const c = core.changes.insertTable(value.change(), 2, 2);\n onChange(c);\n },\n supports: (node, value) =>\n 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) => {\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 = () =>\n 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 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 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 if (node.object !== 'document') {\n return;\n }\n\n let shouldAddTextAfterNode = false;\n const indexToNotHaveTableOn = node.nodes.size - 1;\n const indexOfLastTable = node.nodes.findLastIndex(d => d.type === 'table');\n\n // if the last table in the document is of type table, we need to do the change\n if (indexOfLastTable === indexToNotHaveTableOn) {\n shouldAddTextAfterNode = true;\n }\n\n if (!shouldAddTextAfterNode) {\n return;\n }\n\n const tableNode = node.nodes.get(indexOfLastTable);\n\n return change => {\n if (shouldAddTextAfterNode) {\n const tableJSON = tableNode.toJSON();\n\n // we remove the table node because otherwise we can't add the empty block after it\n // we need a block that contains text in order to do it\n change.removeNodeByKey(tableNode.key);\n\n const newBlock = Block.create({\n object: 'block',\n type: 'div'\n });\n\n // we add an empty block but that it's going to be normalized\n // because it will add the empty text to it like it should\n change.insertBlock(newBlock);\n\n change.withoutNormalization(() => {\n // we do these changes without normalization\n\n // we get the text previous to the new block added\n const prevText = change.value.document.getPreviousText(newBlock.key);\n\n if (prevText) {\n // we move focus to the previous text\n change\n .moveFocusTo(prevText.key, prevText.text.length)\n .moveAnchorTo(prevText.key, prevText.text.length);\n }\n\n // we insert the table block between the first block with text and the last block with text\n change.insertBlock(tableJSON);\n });\n }\n };\n };\n\n core.renderNode = Node;\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 });\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 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 case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children))\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 return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["log","debug","Table","withStyles","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","EditTable","typeContent","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","onClick","onChange","border","insertBlock","supports","isSelectionInTable","customToolbar","onToolbarDone","tableBlock","hasBorder","addRow","changes","insertRow","addColumn","insertColumn","removeRow","removeColumn","removeTable","toggleBorder","set","onDone","Tb","c","Node","normalizeNode","tableAdded","nodeToSearch","getParent","shouldAddTextAfterNode","indexToNotHaveTableOn","size","indexOfLastTable","findLastIndex","tableJSON","removeNodeByKey","newBlock","withoutNormalization","prevText","getPreviousText","moveFocusTo","text","length","moveAnchorTo","renderNode","parseStyleString","s","regex","match","result","exec","trim","reactAttributes","o","toStyleObject","camelize","addUnits","attributesToMap","el","acc","attribute","getAttribute","styleString","reactStyleObject","reduce","v","name","convert","cellAttributes","serialization","deserialize","next","tag","tagName","toLowerCase","Array","from","childNodes","serialize"],"sources":["../../../src/plugins/table/index.jsx"],"sourcesContent":["import React from 'react';\nimport EditTable from 'slate-edit-table';\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';\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(\n d => !!d.data && !!d.data.get('newTable')\n );\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 = EditTable({\n typeContent: 'div'\n });\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 icon: <GridOn />,\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) =>\n 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) => {\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 = () =>\n 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 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 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 if (node.object !== 'document') {\n return;\n }\n\n const tableAdded = node.findDescendant(d => d.data && d.data.get('newTable'));\n\n if (!tableAdded) {\n return;\n }\n\n const nodeToSearch = node.getParent(tableAdded.key) || node;\n let shouldAddTextAfterNode = false;\n const indexToNotHaveTableOn = nodeToSearch.nodes.size - 1;\n const indexOfLastTable = nodeToSearch.nodes.findLastIndex(d => d.type === 'table');\n\n // if the last table in the document is of type table, we need to do the change\n if (indexOfLastTable === indexToNotHaveTableOn) {\n shouldAddTextAfterNode = true;\n }\n\n if (!shouldAddTextAfterNode) {\n return;\n }\n\n return change => {\n if (shouldAddTextAfterNode) {\n const tableJSON = tableAdded.toJSON();\n\n // we remove the table node because otherwise we can't add the empty block after it\n // we need a block that contains text in order to do it\n change.removeNodeByKey(tableAdded.key);\n\n const newBlock = Block.create({\n object: 'block',\n type: 'div'\n });\n\n // we add an empty block but that it's going to be normalized\n // because it will add the empty text to it like it should\n change.insertBlock(newBlock);\n\n change.withoutNormalization(() => {\n // we do these changes without normalization\n\n // we get the text previous to the new block added\n const prevText = change.value.document.getPreviousText(newBlock.key);\n\n if (prevText) {\n // we move focus to the previous text\n change\n .moveFocusTo(prevText.key, prevText.text?.length)\n .moveAnchorTo(prevText.key, prevText.text?.length);\n }\n\n // we insert the table block between the first block with text and the last block with text\n change.insertBlock({\n ...tableJSON,\n data: {\n ...tableJSON.data,\n newTable: true\n }\n });\n\n moveFocusToBeginningOfTable(change);\n });\n }\n };\n };\n\n core.renderNode = Node;\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 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 case 'tr': {\n return {\n object: 'block',\n type: 'table_row',\n nodes: next(Array.from(el.children))\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 return (\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n );\n }\n case 'table_row': {\n return <tr>{children}</tr>;\n }\n case 'table_cell': {\n const attributes = dataToAttributes(object.data);\n delete attributes.header;\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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"}
|