@pie-lib/mask-markup 2.0.0-beta.2 → 2.1.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -871
- package/CHANGELOG.md +296 -2
- package/LICENSE.md +5 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/__tests__/drag-in-the-blank.test.js +129 -0
- package/lib/__tests__/index.test.js +42 -0
- package/lib/__tests__/mask.test.js +163 -0
- package/lib/__tests__/serialization.test.js +44 -0
- package/lib/__tests__/utils.js +14 -0
- package/lib/__tests__/with-mask.test.js +110 -0
- package/lib/choices/__tests__/index.test.js +101 -0
- package/lib/choices/choice.js +100 -119
- package/lib/choices/choice.js.map +1 -1
- package/lib/choices/index.js +24 -20
- package/lib/choices/index.js.map +1 -1
- package/lib/componentize.js +2 -3
- package/lib/componentize.js.map +1 -1
- package/lib/components/__tests__/blank.test.js +189 -0
- package/lib/components/__tests__/correct-input.test.js +132 -0
- package/lib/components/__tests__/dropdown.test.js +134 -0
- package/lib/components/__tests__/input.test.js +129 -0
- package/lib/components/blank.js +316 -222
- package/lib/components/blank.js.map +1 -1
- package/lib/components/correct-input.js +40 -43
- package/lib/components/correct-input.js.map +1 -1
- package/lib/components/dropdown.js +394 -125
- package/lib/components/dropdown.js.map +1 -1
- package/lib/components/input.js +2 -3
- package/lib/components/input.js.map +1 -1
- package/lib/constructed-response.js +83 -27
- package/lib/constructed-response.js.map +1 -1
- package/lib/customizable.js +44 -0
- package/lib/customizable.js.map +1 -0
- package/lib/drag-in-the-blank.js +155 -62
- package/lib/drag-in-the-blank.js.map +1 -1
- package/lib/index.js +8 -1
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +5 -4
- package/lib/inline-dropdown.js.map +1 -1
- package/lib/mask.js +90 -57
- package/lib/mask.js.map +1 -1
- package/lib/serialization.js +31 -43
- package/lib/serialization.js.map +1 -1
- package/lib/with-mask.js +49 -21
- package/lib/with-mask.js.map +1 -1
- package/package.json +18 -15
- package/src/__tests__/drag-in-the-blank.test.js +111 -0
- package/src/__tests__/index.test.js +39 -0
- package/src/__tests__/mask.test.js +187 -0
- package/src/__tests__/serialization.test.js +54 -0
- package/src/__tests__/utils.js +1 -0
- package/src/__tests__/with-mask.test.js +76 -0
- package/src/choices/__tests__/index.test.js +75 -0
- package/src/choices/choice.jsx +83 -96
- package/src/choices/index.jsx +11 -5
- package/src/components/__tests__/blank.test.js +138 -0
- package/src/components/__tests__/correct-input.test.js +90 -0
- package/src/components/__tests__/dropdown.test.js +93 -0
- package/src/components/__tests__/input.test.js +102 -0
- package/src/components/blank.jsx +316 -204
- package/src/components/correct-input.jsx +37 -38
- package/src/components/dropdown.jsx +371 -125
- package/src/constructed-response.jsx +71 -18
- package/src/customizable.jsx +35 -0
- package/src/drag-in-the-blank.jsx +152 -40
- package/src/index.js +10 -1
- package/src/inline-dropdown.jsx +2 -0
- package/src/mask.jsx +71 -25
- package/src/serialization.js +22 -34
- package/src/with-mask.jsx +43 -3
- package/README.md +0 -14
- package/lib/new-serialization.js +0 -267
- package/lib/new-serialization.js.map +0 -1
- package/lib/parse-html.js +0 -17
- package/lib/parse-html.js.map +0 -1
- package/lib/test-serializer.js +0 -164
- package/lib/test-serializer.js.map +0 -1
- package/src/new-serialization.jsx +0 -291
- package/src/parse-html.js +0 -8
- package/src/test-serializer.js +0 -163
package/lib/mask.js
CHANGED
|
@@ -7,32 +7,33 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.renderChildren = exports["default"] = void 0;
|
|
8
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
11
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
12
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
14
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
16
15
|
var _react = _interopRequireDefault(require("react"));
|
|
17
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
18
|
-
var
|
|
19
|
-
var _styles = require("@material
|
|
17
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
18
|
+
var _styles = require("@mui/material/styles");
|
|
19
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
20
20
|
var _serialization = require("./serialization");
|
|
21
|
-
function ownKeys(
|
|
22
|
-
function _objectSpread(
|
|
23
|
-
function
|
|
24
|
-
function _isNativeReflectConstruct() {
|
|
25
|
-
var Paragraph = (0, _styles.
|
|
21
|
+
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; }
|
|
22
|
+
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; }
|
|
23
|
+
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)); }
|
|
24
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
25
|
+
var Paragraph = (0, _styles.styled)('div')(function (_ref) {
|
|
26
|
+
var theme = _ref.theme;
|
|
26
27
|
return {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
paddingTop: theme.spacing(2),
|
|
29
|
+
paddingBottom: theme.spacing(2)
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
var Spacer = (0, _styles.styled)('span')(function () {
|
|
33
|
+
return {
|
|
34
|
+
display: 'inline-block',
|
|
35
|
+
width: '.75em'
|
|
31
36
|
};
|
|
32
|
-
})(function (props) {
|
|
33
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
34
|
-
className: props.classes.para
|
|
35
|
-
}, props.children);
|
|
36
37
|
});
|
|
37
38
|
var restrictWhitespaceTypes = ['tbody', 'tr'];
|
|
38
39
|
var addText = function addText(parentNode, text) {
|
|
@@ -45,20 +46,25 @@ var addText = function addText(parentNode, text) {
|
|
|
45
46
|
}
|
|
46
47
|
};
|
|
47
48
|
var getMark = function getMark(n) {
|
|
48
|
-
var
|
|
49
|
-
|
|
49
|
+
var mark = n.leaves.find(function (leave) {
|
|
50
|
+
return (0, _get["default"])(leave, 'marks', []).length;
|
|
51
|
+
});
|
|
52
|
+
if (mark) {
|
|
53
|
+
return mark.marks[0];
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
50
56
|
};
|
|
51
|
-
var renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode) {
|
|
57
|
+
var _renderChildren = exports.renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode, elementType) {
|
|
52
58
|
if (!value) {
|
|
53
59
|
return null;
|
|
54
60
|
}
|
|
55
61
|
var children = [];
|
|
56
|
-
(layout.
|
|
57
|
-
var key = "".concat(n.type, "-").concat(index);
|
|
62
|
+
(layout.nodes || []).forEach(function (n, index) {
|
|
63
|
+
var key = n.type ? "".concat(n.type, "-").concat(index) : "".concat(index);
|
|
58
64
|
if (n.isMath) {
|
|
59
|
-
children.push(
|
|
65
|
+
children.push(/*#__PURE__*/_react["default"].createElement("span", {
|
|
60
66
|
dangerouslySetInnerHTML: {
|
|
61
|
-
__html: "<math displaystyle=\"true\">".concat(n.
|
|
67
|
+
__html: "<math displaystyle=\"true\">".concat(n.nodes[0].innerHTML, "</math>")
|
|
62
68
|
}
|
|
63
69
|
}));
|
|
64
70
|
return children;
|
|
@@ -67,18 +73,27 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
|
|
|
67
73
|
var c = rootRenderChildren(n, value, onChange);
|
|
68
74
|
if (c) {
|
|
69
75
|
children.push(c);
|
|
76
|
+
if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== 'td' && elementType === 'drag-in-the-blank') {
|
|
77
|
+
children.push(/*#__PURE__*/_react["default"].createElement(Spacer, {
|
|
78
|
+
key: "spacer-".concat(index)
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
70
81
|
return;
|
|
71
82
|
}
|
|
72
83
|
}
|
|
73
|
-
if (
|
|
74
|
-
var content = n.
|
|
84
|
+
if (n.object === 'text') {
|
|
85
|
+
var content = n.leaves.reduce(function (acc, l) {
|
|
86
|
+
var t = l.text;
|
|
87
|
+
var extraText = addText(parentNode, t);
|
|
88
|
+
return extraText ? acc + extraText : acc;
|
|
89
|
+
}, '');
|
|
75
90
|
var mark = getMark(n);
|
|
76
91
|
if (mark) {
|
|
77
92
|
var markKey;
|
|
78
93
|
for (markKey in _serialization.MARK_TAGS) {
|
|
79
94
|
if (_serialization.MARK_TAGS[markKey] === mark.type) {
|
|
80
95
|
var Tag = markKey;
|
|
81
|
-
children.push(
|
|
96
|
+
children.push(/*#__PURE__*/_react["default"].createElement(Tag, {
|
|
82
97
|
key: key
|
|
83
98
|
}, content));
|
|
84
99
|
break;
|
|
@@ -86,21 +101,26 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
|
|
|
86
101
|
}
|
|
87
102
|
} else if (content.length > 0) {
|
|
88
103
|
children.push(content);
|
|
104
|
+
if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== 'td' && elementType === 'drag-in-the-blank') {
|
|
105
|
+
children.push(/*#__PURE__*/_react["default"].createElement(Spacer, {
|
|
106
|
+
key: "spacer-".concat(index)
|
|
107
|
+
}));
|
|
108
|
+
}
|
|
89
109
|
}
|
|
90
110
|
} else {
|
|
91
|
-
var subNodes =
|
|
111
|
+
var subNodes = _renderChildren(n, value, onChange, rootRenderChildren, n, elementType);
|
|
92
112
|
if (n.type === 'p' || n.type === 'paragraph') {
|
|
93
|
-
children.push(
|
|
113
|
+
children.push(/*#__PURE__*/_react["default"].createElement(Paragraph, {
|
|
94
114
|
key: key
|
|
95
115
|
}, subNodes));
|
|
96
116
|
} else {
|
|
97
117
|
var _Tag = n.type;
|
|
98
|
-
if (
|
|
99
|
-
children.push(
|
|
118
|
+
if (n.nodes && n.nodes.length > 0) {
|
|
119
|
+
children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
100
120
|
key: key
|
|
101
121
|
}, n.data.attributes), subNodes));
|
|
102
122
|
} else {
|
|
103
|
-
children.push(
|
|
123
|
+
children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
104
124
|
key: key
|
|
105
125
|
}, n.data.attributes)));
|
|
106
126
|
}
|
|
@@ -109,55 +129,68 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
|
|
|
109
129
|
});
|
|
110
130
|
return children;
|
|
111
131
|
};
|
|
112
|
-
|
|
113
|
-
var MaskContainer = (0, _styles.withStyles)(function () {
|
|
132
|
+
var MaskContainer = (0, _styles.styled)('div')(function () {
|
|
114
133
|
return {
|
|
115
|
-
|
|
116
|
-
|
|
134
|
+
display: 'initial',
|
|
135
|
+
'&:not(.MathJax) table': {
|
|
136
|
+
borderCollapse: 'collapse'
|
|
137
|
+
},
|
|
138
|
+
// align table content to left as per STAR requirement PD-3687
|
|
139
|
+
'&:not(.MathJax) table td, &:not(.MathJax) table th': {
|
|
140
|
+
padding: '8px 12px',
|
|
141
|
+
textAlign: 'left'
|
|
117
142
|
}
|
|
118
143
|
};
|
|
119
|
-
})(function (props) {
|
|
120
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
121
|
-
className: props.classes.main
|
|
122
|
-
}, props.children);
|
|
123
144
|
});
|
|
124
145
|
|
|
125
146
|
/**
|
|
126
147
|
* Renders a layout that uses the slate.js Value model structure.
|
|
127
148
|
*/
|
|
128
|
-
var Mask = /*#__PURE__*/function (_React$Component) {
|
|
129
|
-
(
|
|
130
|
-
var _super = _createSuper(Mask);
|
|
131
|
-
function Mask() {
|
|
149
|
+
var Mask = exports["default"] = /*#__PURE__*/function (_React$Component) {
|
|
150
|
+
function Mask(props) {
|
|
132
151
|
var _this;
|
|
133
152
|
(0, _classCallCheck2["default"])(this, Mask);
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
138
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleChange", function (id, value) {
|
|
153
|
+
_this = _callSuper(this, Mask, [props]);
|
|
154
|
+
(0, _defineProperty2["default"])(_this, "handleChange", function (id, value) {
|
|
139
155
|
var data = _objectSpread(_objectSpread({}, _this.props.value), {}, (0, _defineProperty2["default"])({}, id, value));
|
|
140
156
|
_this.props.onChange(data);
|
|
141
157
|
});
|
|
158
|
+
_this.internalContainerRef = /*#__PURE__*/_react["default"].createRef();
|
|
142
159
|
return _this;
|
|
143
160
|
}
|
|
144
|
-
(0,
|
|
161
|
+
(0, _inherits2["default"])(Mask, _React$Component);
|
|
162
|
+
return (0, _createClass2["default"])(Mask, [{
|
|
163
|
+
key: "componentDidMount",
|
|
164
|
+
value: function componentDidMount() {
|
|
165
|
+
var containerRef = this.props.containerRef || this.internalContainerRef;
|
|
166
|
+
if (containerRef.current && typeof _mathRendering.renderMath === 'function') {
|
|
167
|
+
(0, _mathRendering.renderMath)(containerRef.current);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}, {
|
|
145
171
|
key: "render",
|
|
146
172
|
value: function render() {
|
|
147
173
|
var _this$props = this.props,
|
|
148
174
|
value = _this$props.value,
|
|
149
|
-
layout = _this$props.layout
|
|
150
|
-
|
|
151
|
-
|
|
175
|
+
layout = _this$props.layout,
|
|
176
|
+
elementType = _this$props.elementType,
|
|
177
|
+
containerRef = _this$props.containerRef;
|
|
178
|
+
var children = _renderChildren(layout, value, this.handleChange, this.props.renderChildren, null, elementType);
|
|
179
|
+
var ref = containerRef || this.internalContainerRef;
|
|
180
|
+
return /*#__PURE__*/_react["default"].createElement(MaskContainer, {
|
|
181
|
+
ref: ref
|
|
182
|
+
}, children);
|
|
152
183
|
}
|
|
153
184
|
}]);
|
|
154
|
-
return Mask;
|
|
155
185
|
}(_react["default"].Component);
|
|
156
|
-
exports["default"] = Mask;
|
|
157
186
|
(0, _defineProperty2["default"])(Mask, "propTypes", {
|
|
158
187
|
renderChildren: _propTypes["default"].func,
|
|
159
188
|
layout: _propTypes["default"].object,
|
|
160
189
|
value: _propTypes["default"].object,
|
|
161
|
-
onChange: _propTypes["default"].func
|
|
190
|
+
onChange: _propTypes["default"].func,
|
|
191
|
+
elementType: _propTypes["default"].string,
|
|
192
|
+
containerRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].shape({
|
|
193
|
+
current: _propTypes["default"].instanceOf(Element)
|
|
194
|
+
})])
|
|
162
195
|
});
|
|
163
|
-
//# sourceMappingURL=mask.js.map
|
|
196
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wcm9wVHlwZXMiLCJfZ2V0IiwiX3N0eWxlcyIsIl9tYXRoUmVuZGVyaW5nIiwiX3NlcmlhbGl6YXRpb24iLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIlBhcmFncmFwaCIsInN0eWxlZCIsIl9yZWYiLCJ0aGVtZSIsInBhZGRpbmdUb3AiLCJzcGFjaW5nIiwicGFkZGluZ0JvdHRvbSIsIlNwYWNlciIsImRpc3BsYXkiLCJ3aWR0aCIsInJlc3RyaWN0V2hpdGVzcGFjZVR5cGVzIiwiYWRkVGV4dCIsInBhcmVudE5vZGUiLCJ0ZXh0IiwiaXNXaGl0ZXNwYWNlIiwidHJpbSIsInBhcmVudFR5cGUiLCJ0eXBlIiwiaW5jbHVkZXMiLCJ1bmRlZmluZWQiLCJnZXRNYXJrIiwibiIsIm1hcmsiLCJsZWF2ZXMiLCJmaW5kIiwibGVhdmUiLCJnZXQiLCJtYXJrcyIsInJlbmRlckNoaWxkcmVuIiwiZXhwb3J0cyIsImxheW91dCIsInZhbHVlIiwib25DaGFuZ2UiLCJyb290UmVuZGVyQ2hpbGRyZW4iLCJlbGVtZW50VHlwZSIsImNoaWxkcmVuIiwibm9kZXMiLCJpbmRleCIsImtleSIsImNvbmNhdCIsImlzTWF0aCIsImNyZWF0ZUVsZW1lbnQiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImlubmVySFRNTCIsImMiLCJvYmplY3QiLCJjb250ZW50IiwicmVkdWNlIiwiYWNjIiwibCIsImV4dHJhVGV4dCIsIm1hcmtLZXkiLCJNQVJLX1RBR1MiLCJUYWciLCJzdWJOb2RlcyIsIl9UYWciLCJfZXh0ZW5kczIiLCJkYXRhIiwiYXR0cmlidXRlcyIsIk1hc2tDb250YWluZXIiLCJib3JkZXJDb2xsYXBzZSIsInBhZGRpbmciLCJ0ZXh0QWxpZ24iLCJNYXNrIiwiX1JlYWN0JENvbXBvbmVudCIsInByb3BzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiaWQiLCJpbnRlcm5hbENvbnRhaW5lclJlZiIsIlJlYWN0IiwiY3JlYXRlUmVmIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJjb21wb25lbnREaWRNb3VudCIsImNvbnRhaW5lclJlZiIsImN1cnJlbnQiLCJyZW5kZXJNYXRoIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJoYW5kbGVDaGFuZ2UiLCJyZWYiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJmdW5jIiwic3RyaW5nIiwib25lT2ZUeXBlIiwic2hhcGUiLCJpbnN0YW5jZU9mIiwiRWxlbWVudCJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXNrLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgeyBzdHlsZWQgfSBmcm9tICdAbXVpL21hdGVyaWFsL3N0eWxlcyc7XG5pbXBvcnQgeyByZW5kZXJNYXRoIH0gZnJvbSAnQHBpZS1saWIvbWF0aC1yZW5kZXJpbmcnO1xuaW1wb3J0IHsgTUFSS19UQUdTIH0gZnJvbSAnLi9zZXJpYWxpemF0aW9uJztcblxuY29uc3QgUGFyYWdyYXBoID0gc3R5bGVkKCdkaXYnKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBwYWRkaW5nVG9wOiB0aGVtZS5zcGFjaW5nKDIpLFxuICBwYWRkaW5nQm90dG9tOiB0aGVtZS5zcGFjaW5nKDIpLFxufSkpO1xuXG5jb25zdCBTcGFjZXIgPSBzdHlsZWQoJ3NwYW4nKSgoKSA9PiAoe1xuICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgd2lkdGg6ICcuNzVlbScsXG59KSk7XG5cbmNvbnN0IHJlc3RyaWN0V2hpdGVzcGFjZVR5cGVzID0gWyd0Ym9keScsICd0ciddO1xuXG5jb25zdCBhZGRUZXh0ID0gKHBhcmVudE5vZGUsIHRleHQpID0+IHtcbiAgY29uc3QgaXNXaGl0ZXNwYWNlID0gdGV4dC50cmltKCkgPT09ICcnO1xuICBjb25zdCBwYXJlbnRUeXBlID0gcGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLnR5cGU7XG5cbiAgaWYgKGlzV2hpdGVzcGFjZSAmJiByZXN0cmljdFdoaXRlc3BhY2VUeXBlcy5pbmNsdWRlcyhwYXJlbnRUeXBlKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbn07XG5cbmNvbnN0IGdldE1hcmsgPSAobikgPT4ge1xuICBjb25zdCBtYXJrID0gbi5sZWF2ZXMuZmluZCgobGVhdmUpID0+IGdldChsZWF2ZSwgJ21hcmtzJywgW10pLmxlbmd0aCk7XG5cbiAgaWYgKG1hcmspIHtcbiAgICByZXR1cm4gbWFyay5tYXJrc1swXTtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlbmRlckNoaWxkcmVuID0gKGxheW91dCwgdmFsdWUsIG9uQ2hhbmdlLCByb290UmVuZGVyQ2hpbGRyZW4sIHBhcmVudE5vZGUsIGVsZW1lbnRUeXBlKSA9PiB7XG4gIGlmICghdmFsdWUpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNoaWxkcmVuID0gW107XG5cbiAgKGxheW91dC5ub2RlcyB8fCBbXSkuZm9yRWFjaCgobiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCBrZXkgPSBuLnR5cGUgPyBgJHtuLnR5cGV9LSR7aW5kZXh9YCA6IGAke2luZGV4fWA7XG5cbiAgICBpZiAobi5pc01hdGgpIHtcbiAgICAgIGNoaWxkcmVuLnB1c2goXG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogYDxtYXRoIGRpc3BsYXlzdHlsZT1cInRydWVcIj4ke24ubm9kZXNbMF0uaW5uZXJIVE1MfTwvbWF0aD5gLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+LFxuICAgICAgKTtcbiAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICB9XG5cbiAgICBpZiAocm9vdFJlbmRlckNoaWxkcmVuKSB7XG4gICAgICBjb25zdCBjID0gcm9vdFJlbmRlckNoaWxkcmVuKG4sIHZhbHVlLCBvbkNoYW5nZSk7XG4gICAgICBpZiAoYykge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKGMpO1xuICAgICAgICBpZiAocGFyZW50Tm9kZT8udHlwZSAhPT0gJ3RkJyAmJiBlbGVtZW50VHlwZSA9PT0gJ2RyYWctaW4tdGhlLWJsYW5rJykge1xuICAgICAgICAgIGNoaWxkcmVuLnB1c2goPFNwYWNlciBrZXk9e2BzcGFjZXItJHtpbmRleH1gfSAvPik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChuLm9iamVjdCA9PT0gJ3RleHQnKSB7XG4gICAgICBjb25zdCBjb250ZW50ID0gbi5sZWF2ZXMucmVkdWNlKChhY2MsIGwpID0+IHtcbiAgICAgICAgY29uc3QgdCA9IGwudGV4dDtcbiAgICAgICAgY29uc3QgZXh0cmFUZXh0ID0gYWRkVGV4dChwYXJlbnROb2RlLCB0KTtcbiAgICAgICAgcmV0dXJuIGV4dHJhVGV4dCA/IGFjYyArIGV4dHJhVGV4dCA6IGFjYztcbiAgICAgIH0sICcnKTtcbiAgICAgIGNvbnN0IG1hcmsgPSBnZXRNYXJrKG4pO1xuXG4gICAgICBpZiAobWFyaykge1xuICAgICAgICBsZXQgbWFya0tleTtcblxuICAgICAgICBmb3IgKG1hcmtLZXkgaW4gTUFSS19UQUdTKSB7XG4gICAgICAgICAgaWYgKE1BUktfVEFHU1ttYXJrS2V5XSA9PT0gbWFyay50eXBlKSB7XG4gICAgICAgICAgICBjb25zdCBUYWcgPSBtYXJrS2V5O1xuXG4gICAgICAgICAgICBjaGlsZHJlbi5wdXNoKDxUYWcga2V5PXtrZXl9Pntjb250ZW50fTwvVGFnPik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY29udGVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goY29udGVudCk7XG4gICAgICAgIGlmIChwYXJlbnROb2RlPy50eXBlICE9PSAndGQnICYmIGVsZW1lbnRUeXBlID09PSAnZHJhZy1pbi10aGUtYmxhbmsnKSB7XG4gICAgICAgICAgY2hpbGRyZW4ucHVzaCg8U3BhY2VyIGtleT17YHNwYWNlci0ke2luZGV4fWB9IC8+KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzdWJOb2RlcyA9IHJlbmRlckNoaWxkcmVuKG4sIHZhbHVlLCBvbkNoYW5nZSwgcm9vdFJlbmRlckNoaWxkcmVuLCBuLCBlbGVtZW50VHlwZSk7XG4gICAgICBpZiAobi50eXBlID09PSAncCcgfHwgbi50eXBlID09PSAncGFyYWdyYXBoJykge1xuICAgICAgICBjaGlsZHJlbi5wdXNoKDxQYXJhZ3JhcGgga2V5PXtrZXl9PntzdWJOb2Rlc308L1BhcmFncmFwaD4pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgVGFnID0gbi50eXBlO1xuICAgICAgICBpZiAobi5ub2RlcyAmJiBuLm5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjaGlsZHJlbi5wdXNoKFxuICAgICAgICAgICAgPFRhZyBrZXk9e2tleX0gey4uLm4uZGF0YS5hdHRyaWJ1dGVzfT5cbiAgICAgICAgICAgICAge3N1Yk5vZGVzfVxuICAgICAgICAgICAgPC9UYWc+LFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hpbGRyZW4ucHVzaCg8VGFnIGtleT17a2V5fSB7Li4ubi5kYXRhLmF0dHJpYnV0ZXN9IC8+KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjaGlsZHJlbjtcbn07XG5cbmNvbnN0IE1hc2tDb250YWluZXIgPSBzdHlsZWQoJ2RpdicpKCgpID0+ICh7XG4gIGRpc3BsYXk6ICdpbml0aWFsJyxcbiAgJyY6bm90KC5NYXRoSmF4KSB0YWJsZSc6IHtcbiAgICBib3JkZXJDb2xsYXBzZTogJ2NvbGxhcHNlJyxcbiAgfSxcbiAgLy8gYWxpZ24gdGFibGUgY29udGVudCB0byBsZWZ0IGFzIHBlciBTVEFSIHJlcXVpcmVtZW50IFBELTM2ODdcbiAgJyY6bm90KC5NYXRoSmF4KSB0YWJsZSB0ZCwgJjpub3QoLk1hdGhKYXgpIHRhYmxlIHRoJzoge1xuICAgIHBhZGRpbmc6ICc4cHggMTJweCcsXG4gICAgdGV4dEFsaWduOiAnbGVmdCcsXG4gIH0sXG59KSk7XG5cbi8qKlxuICogUmVuZGVycyBhIGxheW91dCB0aGF0IHVzZXMgdGhlIHNsYXRlLmpzIFZhbHVlIG1vZGVsIHN0cnVjdHVyZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWFzayBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgICAgIHRoaXMuaW50ZXJuYWxDb250YWluZXJSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgfVxuXG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgcmVuZGVyQ2hpbGRyZW46IFByb3BUeXBlcy5mdW5jLFxuICAgIGxheW91dDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICB2YWx1ZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZWxlbWVudFR5cGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgY29udGFpbmVyUmVmOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5mdW5jLFxuICAgICAgUHJvcFR5cGVzLnNoYXBlKHsgY3VycmVudDogUHJvcFR5cGVzLmluc3RhbmNlT2YoRWxlbWVudCkgfSksXG4gICAgXSksXG4gIH07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdGhpcy5wcm9wcy5jb250YWluZXJSZWYgfHwgdGhpcy5pbnRlcm5hbENvbnRhaW5lclJlZjtcbiAgICBpZiAoY29udGFpbmVyUmVmLmN1cnJlbnQgJiYgdHlwZW9mIHJlbmRlck1hdGggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJlbmRlck1hdGgoY29udGFpbmVyUmVmLmN1cnJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZUNoYW5nZSA9IChpZCwgdmFsdWUpID0+IHtcbiAgICBjb25zdCBkYXRhID0geyAuLi50aGlzLnByb3BzLnZhbHVlLCBbaWRdOiB2YWx1ZSB9O1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZGF0YSk7XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgdmFsdWUsIGxheW91dCwgZWxlbWVudFR5cGUsIGNvbnRhaW5lclJlZiB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBjaGlsZHJlbiA9IHJlbmRlckNoaWxkcmVuKGxheW91dCwgdmFsdWUsIHRoaXMuaGFuZGxlQ2hhbmdlLCB0aGlzLnByb3BzLnJlbmRlckNoaWxkcmVuLCBudWxsLCBlbGVtZW50VHlwZSk7XG4gICAgY29uc3QgcmVmID0gY29udGFpbmVyUmVmIHx8IHRoaXMuaW50ZXJuYWxDb250YWluZXJSZWY7XG5cbiAgICByZXR1cm4gPE1hc2tDb250YWluZXIgcmVmPXtyZWZ9PntjaGlsZHJlbn08L01hc2tDb250YWluZXI+O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsSUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksY0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBTCxPQUFBO0FBQTRDLFNBQUFNLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1BQUEsRUFBQWIsQ0FBQSxVQUFBQyxDQUFBLFdBQUFXLFNBQUEsQ0FBQVosQ0FBQSxJQUFBWSxTQUFBLENBQUFaLENBQUEsUUFBQUEsQ0FBQSxPQUFBRixPQUFBLENBQUFJLE1BQUEsQ0FBQUQsQ0FBQSxPQUFBYSxPQUFBLFdBQUFkLENBQUEsUUFBQWUsZ0JBQUEsYUFBQWhCLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLENB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
|
package/lib/mask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.js","names":["_react","_interopRequireDefault","require","_propTypes","_slate","_styles","_serialization","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","Paragraph","withStyles","theme","para","paddingTop","spacing","unit","paddingBottom","props","createElement","className","classes","children","restrictWhitespaceTypes","addText","parentNode","text","isWhitespace","trim","parentType","type","includes","undefined","getMark","n","markTags","values","MARK_TAGS","renderChildren","layout","value","onChange","rootRenderChildren","index","concat","isMath","dangerouslySetInnerHTML","__html","innerHTML","c","Text","isText","content","mark","markKey","Tag","subNodes","_Tag","_extends2","data","attributes","exports","MaskContainer","main","display","Mask","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","_assertThisInitialized2","id","_createClass2","render","_this$props","handleChange","React","Component","PropTypes","func"],"sources":["../src/mask.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Text } from 'slate';\nimport { withStyles } from '@material-ui/core/styles';\nimport { MARK_TAGS } from './serialization';\n\nconst Paragraph = withStyles((theme) => ({\n para: {\n paddingTop: 2 * theme.spacing.unit,\n paddingBottom: 2 * theme.spacing.unit,\n },\n}))((props) => <div className={props.classes.para}>{props.children}</div>);\n\nconst restrictWhitespaceTypes = ['tbody', 'tr'];\n\nconst addText = (parentNode, text) => {\n const isWhitespace = text.trim() === '';\n const parentType = parentNode && parentNode.type;\n\n if (isWhitespace && restrictWhitespaceTypes.includes(parentType)) {\n return undefined;\n } else {\n return text;\n }\n};\n\nconst getMark = (n) => {\n const markTags = Object.values(MARK_TAGS);\n\n return markTags.includes(n.type);\n};\n\nexport const renderChildren = (layout, value, onChange, rootRenderChildren, parentNode) => {\n if (!value) {\n return null;\n }\n\n const children = [];\n\n (layout.children || []).forEach((n, index) => {\n const key = `${n.type}-${index}`;\n\n if (n.isMath) {\n children.push(\n <span dangerouslySetInnerHTML={{ __html: `<math displaystyle=\"true\">${n.children[0].innerHTML}</math>` }} />,\n );\n return children;\n }\n\n if (rootRenderChildren) {\n const c = rootRenderChildren(n, value, onChange);\n if (c) {\n children.push(c);\n return;\n }\n }\n\n if (Text.isText(n)) {\n const content = n.text;\n const mark = getMark(n);\n\n if (mark) {\n let markKey;\n\n for (markKey in MARK_TAGS) {\n if (MARK_TAGS[markKey] === mark.type) {\n const Tag = markKey;\n\n children.push(<Tag key={key}>{content}</Tag>);\n break;\n }\n }\n } else if (content.length > 0) {\n children.push(content);\n }\n } else {\n const subNodes = renderChildren(n, value, onChange, rootRenderChildren, n);\n if (n.type === 'p' || n.type === 'paragraph') {\n children.push(<Paragraph key={key}>{subNodes}</Paragraph>);\n } else {\n const Tag = n.type;\n if (Tag !== 'source' && n.children && n.children.length > 0) {\n children.push(\n <Tag key={key} {...n.data.attributes}>\n {subNodes}\n </Tag>,\n );\n } else {\n children.push(<Tag key={key} {...n.data.attributes} />);\n }\n }\n }\n });\n return children;\n};\n\nconst MaskContainer = withStyles(() => ({\n main: {\n display: 'initial',\n },\n}))((props) => <div className={props.classes.main}>{props.children}</div>);\n\n/**\n * Renders a layout that uses the slate.js Value model structure.\n */\nexport default class Mask extends React.Component {\n static propTypes = {\n renderChildren: PropTypes.func,\n layout: PropTypes.object,\n value: PropTypes.object,\n onChange: PropTypes.func,\n };\n\n handleChange = (id, value) => {\n const data = { ...this.props.value, [id]: value };\n this.props.onChange(data);\n };\n\n render() {\n const { value, layout } = this.props;\n const children = renderChildren(layout, value, this.handleChange, this.props.renderChildren);\n\n return <MaskContainer>{children}</MaskContainer>;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mask.js","names":["_react","_interopRequireDefault","require","_propTypes","_get","_styles","_mathRendering","_serialization","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","Paragraph","styled","_ref","theme","paddingTop","spacing","paddingBottom","Spacer","display","width","restrictWhitespaceTypes","addText","parentNode","text","isWhitespace","trim","parentType","type","includes","undefined","getMark","n","mark","leaves","find","leave","get","marks","renderChildren","exports","layout","value","onChange","rootRenderChildren","elementType","children","nodes","index","key","concat","isMath","createElement","dangerouslySetInnerHTML","__html","innerHTML","c","object","content","reduce","acc","l","extraText","markKey","MARK_TAGS","Tag","subNodes","_Tag","_extends2","data","attributes","MaskContainer","borderCollapse","padding","textAlign","Mask","_React$Component","props","_this","_classCallCheck2","id","internalContainerRef","React","createRef","_inherits2","_createClass2","componentDidMount","containerRef","current","renderMath","render","_this$props","handleChange","ref","Component","PropTypes","func","string","oneOfType","shape","instanceOf","Element"],"sources":["../src/mask.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\nimport { styled } from '@mui/material/styles';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { MARK_TAGS } from './serialization';\n\nconst Paragraph = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(2),\n paddingBottom: theme.spacing(2),\n}));\n\nconst Spacer = styled('span')(() => ({\n display: 'inline-block',\n width: '.75em',\n}));\n\nconst restrictWhitespaceTypes = ['tbody', 'tr'];\n\nconst addText = (parentNode, text) => {\n const isWhitespace = text.trim() === '';\n const parentType = parentNode && parentNode.type;\n\n if (isWhitespace && restrictWhitespaceTypes.includes(parentType)) {\n return undefined;\n } else {\n return text;\n }\n};\n\nconst getMark = (n) => {\n const mark = n.leaves.find((leave) => get(leave, 'marks', []).length);\n\n if (mark) {\n return mark.marks[0];\n }\n\n return null;\n};\n\nexport const renderChildren = (layout, value, onChange, rootRenderChildren, parentNode, elementType) => {\n if (!value) {\n return null;\n }\n\n const children = [];\n\n (layout.nodes || []).forEach((n, index) => {\n const key = n.type ? `${n.type}-${index}` : `${index}`;\n\n if (n.isMath) {\n children.push(\n <span\n dangerouslySetInnerHTML={{\n __html: `<math displaystyle=\"true\">${n.nodes[0].innerHTML}</math>`,\n }}\n />,\n );\n return children;\n }\n\n if (rootRenderChildren) {\n const c = rootRenderChildren(n, value, onChange);\n if (c) {\n children.push(c);\n if (parentNode?.type !== 'td' && elementType === 'drag-in-the-blank') {\n children.push(<Spacer key={`spacer-${index}`} />);\n }\n return;\n }\n }\n\n if (n.object === 'text') {\n const content = n.leaves.reduce((acc, l) => {\n const t = l.text;\n const extraText = addText(parentNode, t);\n return extraText ? acc + extraText : acc;\n }, '');\n const mark = getMark(n);\n\n if (mark) {\n let markKey;\n\n for (markKey in MARK_TAGS) {\n if (MARK_TAGS[markKey] === mark.type) {\n const Tag = markKey;\n\n children.push(<Tag key={key}>{content}</Tag>);\n break;\n }\n }\n } else if (content.length > 0) {\n children.push(content);\n if (parentNode?.type !== 'td' && elementType === 'drag-in-the-blank') {\n children.push(<Spacer key={`spacer-${index}`} />);\n }\n }\n } else {\n const subNodes = renderChildren(n, value, onChange, rootRenderChildren, n, elementType);\n if (n.type === 'p' || n.type === 'paragraph') {\n children.push(<Paragraph key={key}>{subNodes}</Paragraph>);\n } else {\n const Tag = n.type;\n if (n.nodes && n.nodes.length > 0) {\n children.push(\n <Tag key={key} {...n.data.attributes}>\n {subNodes}\n </Tag>,\n );\n } else {\n children.push(<Tag key={key} {...n.data.attributes} />);\n }\n }\n }\n });\n return children;\n};\n\nconst MaskContainer = styled('div')(() => ({\n display: 'initial',\n '&:not(.MathJax) table': {\n borderCollapse: 'collapse',\n },\n // align table content to left as per STAR requirement PD-3687\n '&:not(.MathJax) table td, &:not(.MathJax) table th': {\n padding: '8px 12px',\n textAlign: 'left',\n },\n}));\n\n/**\n * Renders a layout that uses the slate.js Value model structure.\n */\nexport default class Mask extends React.Component {\n constructor(props) {\n super(props);\n this.internalContainerRef = React.createRef();\n }\n\n static propTypes = {\n renderChildren: PropTypes.func,\n layout: PropTypes.object,\n value: PropTypes.object,\n onChange: PropTypes.func,\n elementType: PropTypes.string,\n containerRef: PropTypes.oneOfType([\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.instanceOf(Element) }),\n ]),\n };\n\n componentDidMount() {\n const containerRef = this.props.containerRef || this.internalContainerRef;\n if (containerRef.current && typeof renderMath === 'function') {\n renderMath(containerRef.current);\n }\n }\n\n handleChange = (id, value) => {\n const data = { ...this.props.value, [id]: value };\n this.props.onChange(data);\n };\n\n render() {\n const { value, layout, elementType, containerRef } = this.props;\n const children = renderChildren(layout, value, this.handleChange, this.props.renderChildren, null, elementType);\n const ref = containerRef || this.internalContainerRef;\n\n return <MaskContainer ref={ref}>{children}</MaskContainer>;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,IAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AAA4C,SAAAM,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAAA,SAAAoB,WAAAlB,CAAA,EAAAI,CAAA,EAAAN,CAAA,WAAAM,CAAA,OAAAe,gBAAA,aAAAf,CAAA,OAAAgB,2BAAA,aAAApB,CAAA,EAAAqB,yBAAA,KAAAC,OAAA,CAAAC,SAAA,CAAAnB,CAAA,EAAAN,CAAA,YAAAqB,gBAAA,aAAAnB,CAAA,EAAAwB,WAAA,IAAApB,CAAA,CAAAK,KAAA,CAAAT,CAAA,EAAAF,CAAA;AAAA,SAAAuB,0BAAA,cAAArB,CAAA,IAAAyB,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAN,OAAA,CAAAC,SAAA,CAAAE,OAAA,iCAAAzB,CAAA,aAAAqB,yBAAA,YAAAA,0BAAA,aAAArB,CAAA;AAE5C,IAAM6B,SAAS,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,UAAAC,IAAA;EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,OAAQ;IAC9CC,UAAU,EAAED,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;IAC5BC,aAAa,EAAEH,KAAK,CAACE,OAAO,CAAC,CAAC;EAChC,CAAC;AAAA,CAAC,CAAC;AAEH,IAAME,MAAM,GAAG,IAAAN,cAAM,EAAC,MAAM,CAAC,CAAC;EAAA,OAAO;IACnCO,OAAO,EAAE,cAAc;IACvBC,KAAK,EAAE;EACT,CAAC;AAAA,CAAC,CAAC;AAEH,IAAMC,uBAAuB,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC;AAE/C,IAAMC,OAAO,GAAG,SAAVA,OAAOA,CAAIC,UAAU,EAAEC,IAAI,EAAK;EACpC,IAAMC,YAAY,GAAGD,IAAI,CAACE,IAAI,CAAC,CAAC,KAAK,EAAE;EACvC,IAAMC,UAAU,GAAGJ,UAAU,IAAIA,UAAU,CAACK,IAAI;EAEhD,IAAIH,YAAY,IAAIJ,uBAAuB,CAACQ,QAAQ,CAACF,UAAU,CAAC,EAAE;IAChE,OAAOG,SAAS;EAClB,CAAC,MAAM;IACL,OAAON,IAAI;EACb;AACF,CAAC;AAED,IAAMO,OAAO,GAAG,SAAVA,OAAOA,CAAIC,CAAC,EAAK;EACrB,IAAMC,IAAI,GAAGD,CAAC,CAACE,MAAM,CAACC,IAAI,CAAC,UAACC,KAAK;IAAA,OAAK,IAAAC,eAAG,EAACD,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC1C,MAAM;EAAA,EAAC;EAErE,IAAIuC,IAAI,EAAE;IACR,OAAOA,IAAI,CAACK,KAAK,CAAC,CAAC,CAAC;EACtB;EAEA,OAAO,IAAI;AACb,CAAC;AAEM,IAAMC,eAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,SAAjBA,cAAcA,CAAIE,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,kBAAkB,EAAErB,UAAU,EAAEsB,WAAW,EAAK;EACtG,IAAI,CAACH,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,IAAMI,QAAQ,GAAG,EAAE;EAEnB,CAACL,MAAM,CAACM,KAAK,IAAI,EAAE,EAAEpD,OAAO,CAAC,UAACqC,CAAC,EAAEgB,KAAK,EAAK;IACzC,IAAMC,GAAG,GAAGjB,CAAC,CAACJ,IAAI,MAAAsB,MAAA,CAAMlB,CAAC,CAACJ,IAAI,OAAAsB,MAAA,CAAIF,KAAK,OAAAE,MAAA,CAAQF,KAAK,CAAE;IAEtD,IAAIhB,CAAC,CAACmB,MAAM,EAAE;MACZL,QAAQ,CAACxD,IAAI,cACXnB,MAAA,YAAAiF,aAAA;QACEC,uBAAuB,EAAE;UACvBC,MAAM,iCAAAJ,MAAA,CAA+BlB,CAAC,CAACe,KAAK,CAAC,CAAC,CAAC,CAACQ,SAAS;QAC3D;MAAE,CACH,CACH,CAAC;MACD,OAAOT,QAAQ;IACjB;IAEA,IAAIF,kBAAkB,EAAE;MACtB,IAAMY,CAAC,GAAGZ,kBAAkB,CAACZ,CAAC,EAAEU,KAAK,EAAEC,QAAQ,CAAC;MAChD,IAAIa,CAAC,EAAE;QACLV,QAAQ,CAACxD,IAAI,CAACkE,CAAC,CAAC;QAChB,IAAI,CAAAjC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,IAAI,MAAK,IAAI,IAAIiB,WAAW,KAAK,mBAAmB,EAAE;UACpEC,QAAQ,CAACxD,IAAI,cAACnB,MAAA,YAAAiF,aAAA,CAAClC,MAAM;YAAC+B,GAAG,YAAAC,MAAA,CAAYF,KAAK;UAAG,CAAE,CAAC,CAAC;QACnD;QACA;MACF;IACF;IAEA,IAAIhB,CAAC,CAACyB,MAAM,KAAK,MAAM,EAAE;MACvB,IAAMC,OAAO,GAAG1B,CAAC,CAACE,MAAM,CAACyB,MAAM,CAAC,UAACC,GAAG,EAAEC,CAAC,EAAK;QAC1C,IAAM/E,CAAC,GAAG+E,CAAC,CAACrC,IAAI;QAChB,IAAMsC,SAAS,GAAGxC,OAAO,CAACC,UAAU,EAAEzC,CAAC,CAAC;QACxC,OAAOgF,SAAS,GAAGF,GAAG,GAAGE,SAAS,GAAGF,GAAG;MAC1C,CAAC,EAAE,EAAE,CAAC;MACN,IAAM3B,IAAI,GAAGF,OAAO,CAACC,CAAC,CAAC;MAEvB,IAAIC,IAAI,EAAE;QACR,IAAI8B,OAAO;QAEX,KAAKA,OAAO,IAAIC,wBAAS,EAAE;UACzB,IAAIA,wBAAS,CAACD,OAAO,CAAC,KAAK9B,IAAI,CAACL,IAAI,EAAE;YACpC,IAAMqC,GAAG,GAAGF,OAAO;YAEnBjB,QAAQ,CAACxD,IAAI,cAACnB,MAAA,YAAAiF,aAAA,CAACa,GAAG;cAAChB,GAAG,EAAEA;YAAI,GAAES,OAAa,CAAC,CAAC;YAC7C;UACF;QACF;MACF,CAAC,MAAM,IAAIA,OAAO,CAAChE,MAAM,GAAG,CAAC,EAAE;QAC7BoD,QAAQ,CAACxD,IAAI,CAACoE,OAAO,CAAC;QACtB,IAAI,CAAAnC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,IAAI,MAAK,IAAI,IAAIiB,WAAW,KAAK,mBAAmB,EAAE;UACpEC,QAAQ,CAACxD,IAAI,cAACnB,MAAA,YAAAiF,aAAA,CAAClC,MAAM;YAAC+B,GAAG,YAAAC,MAAA,CAAYF,KAAK;UAAG,CAAE,CAAC,CAAC;QACnD;MACF;IACF,CAAC,MAAM;MACL,IAAMkB,QAAQ,GAAG3B,eAAc,CAACP,CAAC,EAAEU,KAAK,EAAEC,QAAQ,EAAEC,kBAAkB,EAAEZ,CAAC,EAAEa,WAAW,CAAC;MACvF,IAAIb,CAAC,CAACJ,IAAI,KAAK,GAAG,IAAII,CAAC,CAACJ,IAAI,KAAK,WAAW,EAAE;QAC5CkB,QAAQ,CAACxD,IAAI,cAACnB,MAAA,YAAAiF,aAAA,CAACzC,SAAS;UAACsC,GAAG,EAAEA;QAAI,GAAEiB,QAAoB,CAAC,CAAC;MAC5D,CAAC,MAAM;QACL,IAAMD,IAAG,GAAGjC,CAAC,CAACJ,IAAI;QAClB,IAAII,CAAC,CAACe,KAAK,IAAIf,CAAC,CAACe,KAAK,CAACrD,MAAM,GAAG,CAAC,EAAE;UACjCoD,QAAQ,CAACxD,IAAI,cACXnB,MAAA,YAAAiF,aAAA,CAACe,IAAG,MAAAC,SAAA;YAACnB,GAAG,EAAEA;UAAI,GAAKjB,CAAC,CAACqC,IAAI,CAACC,UAAU,GACjCJ,QACE,CACP,CAAC;QACH,CAAC,MAAM;UACLpB,QAAQ,CAACxD,IAAI,cAACnB,MAAA,YAAAiF,aAAA,CAACe,IAAG,MAAAC,SAAA;YAACnB,GAAG,EAAEA;UAAI,GAAKjB,CAAC,CAACqC,IAAI,CAACC,UAAU,CAAG,CAAC,CAAC;QACzD;MACF;IACF;EACF,CAAC,CAAC;EACF,OAAOxB,QAAQ;AACjB,CAAC;AAED,IAAMyB,aAAa,GAAG,IAAA3D,cAAM,EAAC,KAAK,CAAC,CAAC;EAAA,OAAO;IACzCO,OAAO,EAAE,SAAS;IAClB,uBAAuB,EAAE;MACvBqD,cAAc,EAAE;IAClB,CAAC;IACD;IACA,oDAAoD,EAAE;MACpDC,OAAO,EAAE,UAAU;MACnBC,SAAS,EAAE;IACb;EACF,CAAC;AAAA,CAAC,CAAC;;AAEH;AACA;AACA;AAFA,IAGqBC,IAAI,GAAAnC,OAAA,qCAAAoC,gBAAA;EACvB,SAAAD,KAAYE,KAAK,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,mBAAAJ,IAAA;IACjBG,KAAA,GAAA9E,UAAA,OAAA2E,IAAA,GAAME,KAAK;IAAE,IAAAjF,gBAAA,aAAAkF,KAAA,kBAuBA,UAACE,EAAE,EAAEtC,KAAK,EAAK;MAC5B,IAAM2B,IAAI,GAAA7E,aAAA,CAAAA,aAAA,KAAQsF,KAAA,CAAKD,KAAK,CAACnC,KAAK,WAAA9C,gBAAA,iBAAGoF,EAAE,EAAGtC,KAAK,EAAE;MACjDoC,KAAA,CAAKD,KAAK,CAAClC,QAAQ,CAAC0B,IAAI,CAAC;IAC3B,CAAC;IAzBIS,KAAA,CAAKG,oBAAoB,gBAAGC,iBAAK,CAACC,SAAS,CAAC,CAAC;IAAC,OAAAL,KAAA;EACnD;EAAC,IAAAM,UAAA,aAAAT,IAAA,EAAAC,gBAAA;EAAA,WAAAS,aAAA,aAAAV,IAAA;IAAA1B,GAAA;IAAAP,KAAA,EAcD,SAAA4C,iBAAiBA,CAAA,EAAG;MAClB,IAAMC,YAAY,GAAG,IAAI,CAACV,KAAK,CAACU,YAAY,IAAI,IAAI,CAACN,oBAAoB;MACzE,IAAIM,YAAY,CAACC,OAAO,IAAI,OAAOC,yBAAU,KAAK,UAAU,EAAE;QAC5D,IAAAA,yBAAU,EAACF,YAAY,CAACC,OAAO,CAAC;MAClC;IACF;EAAC;IAAAvC,GAAA;IAAAP,KAAA,EAOD,SAAAgD,MAAMA,CAAA,EAAG;MACP,IAAAC,WAAA,GAAqD,IAAI,CAACd,KAAK;QAAvDnC,KAAK,GAAAiD,WAAA,CAALjD,KAAK;QAAED,MAAM,GAAAkD,WAAA,CAANlD,MAAM;QAAEI,WAAW,GAAA8C,WAAA,CAAX9C,WAAW;QAAE0C,YAAY,GAAAI,WAAA,CAAZJ,YAAY;MAChD,IAAMzC,QAAQ,GAAGP,eAAc,CAACE,MAAM,EAAEC,KAAK,EAAE,IAAI,CAACkD,YAAY,EAAE,IAAI,CAACf,KAAK,CAACtC,cAAc,EAAE,IAAI,EAAEM,WAAW,CAAC;MAC/G,IAAMgD,GAAG,GAAGN,YAAY,IAAI,IAAI,CAACN,oBAAoB;MAErD,oBAAO9G,MAAA,YAAAiF,aAAA,CAACmB,aAAa;QAACsB,GAAG,EAAEA;MAAI,GAAE/C,QAAwB,CAAC;IAC5D;EAAC;AAAA,EApC+BoC,iBAAK,CAACY,SAAS;AAAA,IAAAlG,gBAAA,aAA5B+E,IAAI,eAMJ;EACjBpC,cAAc,EAAEwD,qBAAS,CAACC,IAAI;EAC9BvD,MAAM,EAAEsD,qBAAS,CAACtC,MAAM;EACxBf,KAAK,EAAEqD,qBAAS,CAACtC,MAAM;EACvBd,QAAQ,EAAEoD,qBAAS,CAACC,IAAI;EACxBnD,WAAW,EAAEkD,qBAAS,CAACE,MAAM;EAC7BV,YAAY,EAAEQ,qBAAS,CAACG,SAAS,CAAC,CAChCH,qBAAS,CAACC,IAAI,EACdD,qBAAS,CAACI,KAAK,CAAC;IAAEX,OAAO,EAAEO,qBAAS,CAACK,UAAU,CAACC,OAAO;EAAE,CAAC,CAAC,CAC5D;AACH,CAAC","ignoreList":[]}
|
package/lib/serialization.js
CHANGED
|
@@ -6,13 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.reactAttributes = exports.parseStyleString = exports.deserialize = exports.MARK_TAGS = void 0;
|
|
8
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
9
|
-
var
|
|
10
|
-
var _slateHyperscript = require("slate-hyperscript");
|
|
9
|
+
var _slateHtmlSerializer = _interopRequireDefault(require("slate-html-serializer"));
|
|
11
10
|
var _toStyle = require("to-style");
|
|
12
11
|
var _debug = _interopRequireDefault(require("debug"));
|
|
13
|
-
var
|
|
14
|
-
function
|
|
15
|
-
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; }
|
|
12
|
+
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; }
|
|
13
|
+
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; }
|
|
16
14
|
var log = (0, _debug["default"])('@pie-lib:mask-markup:serialization');
|
|
17
15
|
var INLINE = ['span'];
|
|
18
16
|
var MARK = ['em', 'strong', 'u'];
|
|
@@ -38,7 +36,7 @@ var getObject = function getObject(type) {
|
|
|
38
36
|
}
|
|
39
37
|
return 'block';
|
|
40
38
|
};
|
|
41
|
-
var parseStyleString = function parseStyleString(s) {
|
|
39
|
+
var parseStyleString = exports.parseStyleString = function parseStyleString(s) {
|
|
42
40
|
var regex = /([\w-]*)\s*:\s*([^;]*)/g;
|
|
43
41
|
var match;
|
|
44
42
|
var result = {};
|
|
@@ -47,14 +45,12 @@ var parseStyleString = function parseStyleString(s) {
|
|
|
47
45
|
}
|
|
48
46
|
return result;
|
|
49
47
|
};
|
|
50
|
-
exports.
|
|
51
|
-
var reactAttributes = function reactAttributes(o) {
|
|
48
|
+
var reactAttributes = exports.reactAttributes = function reactAttributes(o) {
|
|
52
49
|
return (0, _toStyle.object)(o, {
|
|
53
50
|
camelize: true,
|
|
54
51
|
addUnits: false
|
|
55
52
|
});
|
|
56
53
|
};
|
|
57
|
-
exports.reactAttributes = reactAttributes;
|
|
58
54
|
var handleStyles = function handleStyles(el, attribute) {
|
|
59
55
|
var styleString = el.getAttribute(attribute);
|
|
60
56
|
return reactAttributes(parseStyleString(styleString));
|
|
@@ -94,7 +90,7 @@ var attributes = ['border', 'class', 'style'];
|
|
|
94
90
|
* @type {Object}
|
|
95
91
|
*/
|
|
96
92
|
|
|
97
|
-
var MARK_TAGS = {
|
|
93
|
+
var MARK_TAGS = exports.MARK_TAGS = {
|
|
98
94
|
b: 'bold',
|
|
99
95
|
em: 'italic',
|
|
100
96
|
u: 'underline',
|
|
@@ -102,17 +98,16 @@ var MARK_TAGS = {
|
|
|
102
98
|
code: 'code',
|
|
103
99
|
strong: 'strong'
|
|
104
100
|
};
|
|
105
|
-
exports.MARK_TAGS = MARK_TAGS;
|
|
106
101
|
var marks = {
|
|
107
102
|
deserialize: function deserialize(el, next) {
|
|
108
103
|
var mark = MARK_TAGS[el.tagName.toLowerCase()];
|
|
109
|
-
if (!mark)
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
104
|
+
if (!mark) return;
|
|
112
105
|
log('[deserialize] mark: ', mark);
|
|
113
|
-
return
|
|
114
|
-
|
|
115
|
-
|
|
106
|
+
return {
|
|
107
|
+
object: 'mark',
|
|
108
|
+
type: mark,
|
|
109
|
+
nodes: next(el.childNodes)
|
|
110
|
+
};
|
|
116
111
|
}
|
|
117
112
|
};
|
|
118
113
|
var rules = [marks, {
|
|
@@ -124,7 +119,12 @@ var rules = [marks, {
|
|
|
124
119
|
return undefined;
|
|
125
120
|
}
|
|
126
121
|
if (el.nodeType === TEXT_NODE) {
|
|
127
|
-
return
|
|
122
|
+
return {
|
|
123
|
+
object: 'text',
|
|
124
|
+
leaves: [{
|
|
125
|
+
text: el.textContent
|
|
126
|
+
}]
|
|
127
|
+
};
|
|
128
128
|
}
|
|
129
129
|
var type = el.tagName.toLowerCase();
|
|
130
130
|
var normalAttrs = attr(el) || {};
|
|
@@ -132,33 +132,22 @@ var rules = [marks, {
|
|
|
132
132
|
normalAttrs.controls = true;
|
|
133
133
|
}
|
|
134
134
|
var allAttrs = attributes.reduce(attributesToMap(el), _objectSpread({}, normalAttrs));
|
|
135
|
+
var object = getObject(type);
|
|
135
136
|
if (el.tagName.toLowerCase() === 'math') {
|
|
136
|
-
return
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
}
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
// return {
|
|
144
|
-
// isMath: true,
|
|
145
|
-
// nodes: [el]
|
|
146
|
-
// };
|
|
137
|
+
return {
|
|
138
|
+
isMath: true,
|
|
139
|
+
nodes: [el]
|
|
140
|
+
};
|
|
147
141
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return (0, _slateHyperscript.jsx)('element', {
|
|
151
|
-
type: type,
|
|
152
|
-
data: {}
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
return (0, _slateHyperscript.jsx)('element', {
|
|
142
|
+
return {
|
|
143
|
+
object: object,
|
|
156
144
|
type: type,
|
|
157
145
|
data: {
|
|
158
146
|
dataset: _objectSpread({}, el.dataset),
|
|
159
147
|
attributes: _objectSpread({}, allAttrs)
|
|
160
|
-
}
|
|
161
|
-
|
|
148
|
+
},
|
|
149
|
+
nodes: next(el.childNodes)
|
|
150
|
+
};
|
|
162
151
|
}
|
|
163
152
|
}];
|
|
164
153
|
|
|
@@ -166,14 +155,13 @@ var rules = [marks, {
|
|
|
166
155
|
* Create a new serializer instance with our `rules` from above.
|
|
167
156
|
* Having a default div block will just put every div on it's own line, which is not ideal.
|
|
168
157
|
*/
|
|
169
|
-
var html = new
|
|
158
|
+
var html = new _slateHtmlSerializer["default"]({
|
|
170
159
|
rules: rules,
|
|
171
160
|
defaultBlock: 'span'
|
|
172
161
|
});
|
|
173
|
-
var deserialize = function deserialize(s) {
|
|
162
|
+
var deserialize = exports.deserialize = function deserialize(s) {
|
|
174
163
|
return html.deserialize(s, {
|
|
175
164
|
toJSON: true
|
|
176
165
|
});
|
|
177
166
|
};
|
|
178
|
-
exports.deserialize = deserialize;
|
|
179
|
-
//# sourceMappingURL=serialization.js.map
|
|
167
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGVIdG1sU2VyaWFsaXplciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RvU3R5bGUiLCJfZGVidWciLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImxvZyIsImRlYnVnIiwiSU5MSU5FIiwiTUFSSyIsIlRFWFRfTk9ERSIsIkNPTU1FTlRfTk9ERSIsImF0dHIiLCJlbCIsImF0dHJpYnV0ZXMiLCJ1bmRlZmluZWQiLCJvdXQiLCJpIiwiYSIsIm5hbWUiLCJ2YWx1ZSIsImdldE9iamVjdCIsInR5cGUiLCJpbmNsdWRlcyIsInBhcnNlU3R5bGVTdHJpbmciLCJleHBvcnRzIiwicyIsInJlZ2V4IiwibWF0Y2giLCJyZXN1bHQiLCJleGVjIiwidHJpbSIsInJlYWN0QXR0cmlidXRlcyIsInRvU3R5bGVPYmplY3QiLCJjYW1lbGl6ZSIsImFkZFVuaXRzIiwiaGFuZGxlU3R5bGVzIiwiYXR0cmlidXRlIiwic3R5bGVTdHJpbmciLCJnZXRBdHRyaWJ1dGUiLCJoYW5kbGVDbGFzcyIsImFjYyIsImNsYXNzTmFtZXMiLCJhdHRyaWJ1dGVzVG9NYXAiLCJzdHlsZSIsImNsYXNzTmFtZSIsIk1BUktfVEFHUyIsImIiLCJlbSIsInUiLCJjb2RlIiwic3Ryb25nIiwibWFya3MiLCJkZXNlcmlhbGl6ZSIsIm5leHQiLCJtYXJrIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwib2JqZWN0Iiwibm9kZXMiLCJjaGlsZE5vZGVzIiwicnVsZXMiLCJub2RlVHlwZSIsImxlYXZlcyIsInRleHQiLCJ0ZXh0Q29udGVudCIsIm5vcm1hbEF0dHJzIiwiY29udHJvbHMiLCJhbGxBdHRycyIsInJlZHVjZSIsImlzTWF0aCIsImRhdGEiLCJkYXRhc2V0IiwiaHRtbCIsIkh0bWwiLCJkZWZhdWx0QmxvY2siLCJ0b0pTT04iXSwic291cmNlcyI6WyIuLi9zcmMvc2VyaWFsaXphdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSHRtbCBmcm9tICdzbGF0ZS1odG1sLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgb2JqZWN0IGFzIHRvU3R5bGVPYmplY3QgfSBmcm9tICd0by1zdHlsZSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6bWFzay1tYXJrdXA6c2VyaWFsaXphdGlvbicpO1xuXG5jb25zdCBJTkxJTkUgPSBbJ3NwYW4nXTtcbmNvbnN0IE1BUksgPSBbJ2VtJywgJ3N0cm9uZycsICd1J107XG5jb25zdCBURVhUX05PREUgPSAzO1xuY29uc3QgQ09NTUVOVF9OT0RFID0gODtcblxuY29uc3QgYXR0ciA9IChlbCkgPT4ge1xuICBpZiAoIWVsLmF0dHJpYnV0ZXMgfHwgZWwuYXR0cmlidXRlcy5sZW5ndGggPD0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBvdXQgPSB7fTtcbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IGVsLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBhID0gZWwuYXR0cmlidXRlc1tpXTtcblxuICAgIG91dFthLm5hbWVdID0gYS52YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59O1xuXG5jb25zdCBnZXRPYmplY3QgPSAodHlwZSkgPT4ge1xuICBpZiAoSU5MSU5FLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgcmV0dXJuICdpbmxpbmUnO1xuICB9IGVsc2UgaWYgKE1BUksuaW5jbHVkZXModHlwZSkpIHtcbiAgICByZXR1cm4gJ21hcmsnO1xuICB9XG4gIHJldHVybiAnYmxvY2snO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlU3R5bGVTdHJpbmcgPSAocykgPT4ge1xuICBjb25zdCByZWdleCA9IC8oW1xcdy1dKilcXHMqOlxccyooW147XSopL2c7XG4gIGxldCBtYXRjaDtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIHdoaWxlICgobWF0Y2ggPSByZWdleC5leGVjKHMpKSkge1xuICAgIHJlc3VsdFttYXRjaFsxXV0gPSBtYXRjaFsyXS50cmltKCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZWFjdEF0dHJpYnV0ZXMgPSAobykgPT4gdG9TdHlsZU9iamVjdChvLCB7IGNhbWVsaXplOiB0cnVlLCBhZGRVbml0czogZmFsc2UgfSk7XG5cbmNvbnN0IGhhbmRsZVN0eWxlcyA9IChlbCwgYXR0cmlidXRlKSA9PiB7XG4gIGNvbnN0IHN0eWxlU3RyaW5nID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cbiAgcmV0dXJuIHJlYWN0QXR0cmlidXRlcyhwYXJzZVN0eWxlU3RyaW5nKHN0eWxlU3RyaW5nKSk7XG59O1xuXG5jb25zdCBoYW5kbGVDbGFzcyA9IChlbCwgYWNjLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3QgY2xhc3NOYW1lcyA9IGVsLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXG4gIGRlbGV0ZSBhY2MuY2xhc3M7XG5cbiAgcmV0dXJuIGNsYXNzTmFtZXM7XG59O1xuXG5jb25zdCBhdHRyaWJ1dGVzVG9NYXAgPSAoZWwpID0+IChhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBpZiAoIWVsLmdldEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXG4gIGlmICh2YWx1ZSkge1xuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XG4gICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgIGFjYy5zdHlsZSA9IGhhbmRsZVN0eWxlcyhlbCwgYXR0cmlidXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGFjYy5jbGFzc05hbWUgPSBoYW5kbGVDbGFzcyhlbCwgYWNjLCBhdHRyaWJ1dGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFjY1thdHRyaWJ1dGVdID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhY2M7XG59O1xuXG5jb25zdCBhdHRyaWJ1dGVzID0gWydib3JkZXInLCAnY2xhc3MnLCAnc3R5bGUnXTtcblxuLyoqXG4gKiBUYWdzIHRvIG1hcmtzLlxuICpcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblxuZXhwb3J0IGNvbnN0IE1BUktfVEFHUyA9IHtcbiAgYjogJ2JvbGQnLFxuICBlbTogJ2l0YWxpYycsXG4gIHU6ICd1bmRlcmxpbmUnLFxuICBzOiAnc3RyaWtldGhyb3VnaCcsXG4gIGNvZGU6ICdjb2RlJyxcbiAgc3Ryb25nOiAnc3Ryb25nJyxcbn07XG5cbmNvbnN0IG1hcmtzID0ge1xuICBkZXNlcmlhbGl6ZShlbCwgbmV4dCkge1xuICAgIGNvbnN0IG1hcmsgPSBNQVJLX1RBR1NbZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgICBpZiAoIW1hcmspIHJldHVybjtcbiAgICBsb2coJ1tkZXNlcmlhbGl6ZV0gbWFyazogJywgbWFyayk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgdHlwZTogbWFyayxcbiAgICAgIG5vZGVzOiBuZXh0KGVsLmNoaWxkTm9kZXMpLFxuICAgIH07XG4gIH0sXG59O1xuXG5jb25zdCBydWxlcyA9IFtcbiAgbWFya3MsXG4gIHtcbiAgICAvKipcbiAgICAgKiBkZXNlcmlhbGl6ZSBldmVyeXRoaW5nLCB3ZSdyZSBub3QgZnVzc3kgYWJvdXQgdGhlIGRvbSBzdHJ1Y3R1cmUgZm9yIG5vdy5cbiAgICAgKi9cbiAgICBkZXNlcmlhbGl6ZTogKGVsLCBuZXh0KSA9PiB7XG4gICAgICBpZiAoZWwubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWwubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgIGxlYXZlczogW3sgdGV4dDogZWwudGV4dENvbnRlbnQgfV0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IG5vcm1hbEF0dHJzID0gYXR0cihlbCkgfHwge307XG5cbiAgICAgIGlmICh0eXBlID09ICdhdWRpbycgJiYgbm9ybWFsQXR0cnMuY29udHJvbHMgPT0gJycpIHtcbiAgICAgICAgbm9ybWFsQXR0cnMuY29udHJvbHMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhbGxBdHRycyA9IGF0dHJpYnV0ZXMucmVkdWNlKGF0dHJpYnV0ZXNUb01hcChlbCksIHsgLi4ubm9ybWFsQXR0cnMgfSk7XG4gICAgICBjb25zdCBvYmplY3QgPSBnZXRPYmplY3QodHlwZSk7XG5cbiAgICAgIGlmIChlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdtYXRoJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlzTWF0aDogdHJ1ZSxcbiAgICAgICAgICBub2RlczogW2VsXSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb2JqZWN0LFxuICAgICAgICB0eXBlLFxuICAgICAgICBkYXRhOiB7IGRhdGFzZXQ6IHsgLi4uZWwuZGF0YXNldCB9LCBhdHRyaWJ1dGVzOiB7IC4uLmFsbEF0dHJzIH0gfSxcbiAgICAgICAgbm9kZXM6IG5leHQoZWwuY2hpbGROb2RlcyksXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG5dO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBzZXJpYWxpemVyIGluc3RhbmNlIHdpdGggb3VyIGBydWxlc2AgZnJvbSBhYm92ZS5cbiAqIEhhdmluZyBhIGRlZmF1bHQgZGl2IGJsb2NrIHdpbGwganVzdCBwdXQgZXZlcnkgZGl2IG9uIGl0J3Mgb3duIGxpbmUsIHdoaWNoIGlzIG5vdCBpZGVhbC5cbiAqL1xuY29uc3QgaHRtbCA9IG5ldyBIdG1sKHsgcnVsZXMsIGRlZmF1bHRCbG9jazogJ3NwYW4nIH0pO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemUgPSAocykgPT4gaHRtbC5kZXNlcmlhbGl6ZShzLCB7IHRvSlNPTjogdHJ1ZSB9KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1B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LElBQUksRUFBRW5ELEVBQUUsQ0FBQ29EO1FBQVksQ0FBQztNQUNuQyxDQUFDO0lBQ0g7SUFFQSxJQUFNM0MsSUFBSSxHQUFHVCxFQUFFLENBQUMyQyxPQUFPLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLElBQU1TLFdBQVcsR0FBR3RELElBQUksQ0FBQ0MsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxDLElBQUlTLElBQUksSUFBSSxPQUFPLElBQUk0QyxXQUFXLENBQUNDLFFBQVEsSUFBSSxFQUFFLEVBQUU7TUFDakRELFdBQVcsQ0FBQ0MsUUFBUSxHQUFHLElBQUk7SUFDN0I7SUFFQSxJQUFNQyxRQUFRLEdBQUd0RCxVQUFVLENBQUN1RCxNQUFNLENBQUMxQixlQUFlLENBQUM5QixFQUFFLENBQUMsRUFBQWYsYUFBQSxLQUFPb0UsV0FBVyxDQUFFLENBQUM7SUFDM0UsSUFBTVIsTUFBTSxHQUFHckMsU0FBUyxDQUFDQyxJQUFJLENBQUM7SUFFOUIsSUFBSVQsRUFBRSxDQUFDMkMsT0FBTyxDQUFDQyxXQUFXLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRTtNQUN2QyxPQUFPO1FBQ0xhLE1BQU0sRUFBRSxJQUFJO1FBQ1pYLEtBQUssRUFBRSxDQUFDOUMsRUFBRTtNQUNaLENBQUM7SUFDSDtJQUVBLE9BQU87TUFDTDZDLE1BQU0sRUFBTkEsTUFBTTtNQUNOcEMsSUFBSSxFQUFKQSxJQUFJO01BQ0ppRCxJQUFJLEVBQUU7UUFBRUMsT0FBTyxFQUFBMUUsYUFBQSxLQUFPZSxFQUFFLENBQUMyRCxPQUFPLENBQUU7UUFBRTFELFVBQVUsRUFBQWhCLGFBQUEsS0FBT3NFLFFBQVE7TUFBRyxDQUFDO01BQ2pFVCxLQUFLLEVBQUVMLElBQUksQ0FBQ3pDLEVBQUUsQ0FBQytDLFVBQVU7SUFDM0IsQ0FBQztFQUNIO0FBQ0YsQ0FBQyxDQUNGOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTWEsSUFBSSxHQUFHLElBQUlDLCtCQUFJLENBQUM7RUFBRWIsS0FBSyxFQUFMQSxLQUFLO0VBQUVjLFlBQVksRUFBRTtBQUFPLENBQUMsQ0FBQztBQUUvQyxJQUFNdEIsV0FBVyxHQUFBNUIsT0FBQSxDQUFBNEIsV0FBQSxHQUFHLFNBQWRBLFdBQVdBLENBQUkzQixDQUFDO0VBQUEsT0FBSytDLElBQUksQ0FBQ3BCLFdBQVcsQ0FBQzNCLENBQUMsRUFBRTtJQUFFa0QsTUFBTSxFQUFFO0VBQUssQ0FBQyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/lib/serialization.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.js","names":["_react","_interopRequireDefault","require","_slateHyperscript","_toStyle","_debug","_testSerializer","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","INLINE","MARK","TEXT_NODE","COMMENT_NODE","attr","el","attributes","undefined","out","a","name","value","getObject","type","includes","parseStyleString","s","regex","match","result","exec","trim","exports","reactAttributes","o","toStyleObject","camelize","addUnits","handleStyles","attribute","styleString","getAttribute","handleClass","acc","classNames","attributesToMap","style","className","MARK_TAGS","b","em","u","code","strong","marks","deserialize","next","mark","tagName","toLowerCase","jsx","childNodes","rules","nodeType","textContent","normalAttrs","controls","allAttrs","reduce","data","html","innerHTML","dataset","Html","defaultBlock","toJSON"],"sources":["../src/serialization.js"],"sourcesContent":["import React from 'react';\nimport { jsx } from 'slate-hyperscript';\nimport { object as toStyleObject } from 'to-style';\nimport debug from 'debug';\n\nimport Html from './test-serializer';\n\nconst log = debug('@pie-lib:mask-markup:serialization');\n\nconst INLINE = ['span'];\nconst MARK = ['em', 'strong', 'u'];\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\n\nconst attr = (el) => {\n if (!el.attributes || el.attributes.length <= 0) {\n return undefined;\n }\n\n const out = {};\n let i;\n\n for (i = 0; i < el.attributes.length; i++) {\n const a = el.attributes[i];\n\n out[a.name] = a.value;\n }\n\n return out;\n};\n\nconst getObject = (type) => {\n if (INLINE.includes(type)) {\n return 'inline';\n } else if (MARK.includes(type)) {\n return 'mark';\n }\n return 'block';\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 handleStyles = (el, attribute) => {\n const styleString = el.getAttribute(attribute);\n\n return reactAttributes(parseStyleString(styleString));\n};\n\nconst handleClass = (el, acc, attribute) => {\n const classNames = el.getAttribute(attribute);\n\n delete acc.class;\n\n return classNames;\n};\n\nconst attributesToMap = (el) => (acc, attribute) => {\n if (!el.getAttribute) {\n return acc;\n }\n\n const value = el.getAttribute(attribute);\n\n if (value) {\n switch (attribute) {\n case 'style':\n acc.style = handleStyles(el, attribute);\n break;\n case 'class':\n acc.className = handleClass(el, acc, attribute);\n break;\n default:\n acc[attribute] = el.getAttribute(attribute);\n break;\n }\n }\n\n return acc;\n};\n\nconst attributes = ['border', 'class', 'style'];\n\n/**\n * Tags to marks.\n *\n * @type {Object}\n */\n\nexport const MARK_TAGS = {\n b: 'bold',\n em: 'italic',\n u: 'underline',\n s: 'strikethrough',\n code: 'code',\n strong: 'strong',\n};\n\nconst marks = {\n deserialize(el, next) {\n const mark = MARK_TAGS[el.tagName.toLowerCase()];\n\n if (!mark) {\n return;\n }\n\n log('[deserialize] mark: ', mark);\n return jsx('text', { type: mark }, next(el.childNodes));\n },\n};\n\nconst rules = [\n marks,\n {\n /**\n * deserialize everything, we're not fussy about the dom structure for now.\n */\n deserialize: (el, next) => {\n if (el.nodeType === COMMENT_NODE) {\n return undefined;\n }\n\n if (el.nodeType === TEXT_NODE) {\n return jsx('text', el.textContent);\n }\n\n const type = el.tagName.toLowerCase();\n\n const normalAttrs = attr(el) || {};\n\n if (type == 'audio' && normalAttrs.controls == '') {\n normalAttrs.controls = true;\n }\n\n const allAttrs = attributes.reduce(attributesToMap(el), { ...normalAttrs });\n\n if (el.tagName.toLowerCase() === 'math') {\n return jsx('element', {\n type: 'mathml',\n data: {\n html: el.innerHTML,\n },\n });\n\n // return {\n // isMath: true,\n // nodes: [el]\n // };\n }\n\n if (el.tagName.toLowerCase() === 'br') {\n return jsx('element', { type, data: {} });\n }\n\n return jsx(\n 'element',\n {\n type,\n data: { dataset: { ...el.dataset }, attributes: { ...allAttrs } },\n },\n next(el.childNodes),\n );\n },\n },\n];\n\n/**\n * Create a new serializer instance with our `rules` from above.\n * Having a default div block will just put every div on it's own line, which is not ideal.\n */\nconst html = new Html({ rules, defaultBlock: 'span' });\n\nexport const deserialize = (s) => html.deserialize(s, { toJSON: true });\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"serialization.js","names":["_slateHtmlSerializer","_interopRequireDefault","require","_toStyle","_debug","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","log","debug","INLINE","MARK","TEXT_NODE","COMMENT_NODE","attr","el","attributes","undefined","out","i","a","name","value","getObject","type","includes","parseStyleString","exports","s","regex","match","result","exec","trim","reactAttributes","toStyleObject","camelize","addUnits","handleStyles","attribute","styleString","getAttribute","handleClass","acc","classNames","attributesToMap","style","className","MARK_TAGS","b","em","u","code","strong","marks","deserialize","next","mark","tagName","toLowerCase","object","nodes","childNodes","rules","nodeType","leaves","text","textContent","normalAttrs","controls","allAttrs","reduce","isMath","data","dataset","html","Html","defaultBlock","toJSON"],"sources":["../src/serialization.js"],"sourcesContent":["import Html from 'slate-html-serializer';\nimport { object as toStyleObject } from 'to-style';\nimport debug from 'debug';\n\nconst log = debug('@pie-lib:mask-markup:serialization');\n\nconst INLINE = ['span'];\nconst MARK = ['em', 'strong', 'u'];\nconst TEXT_NODE = 3;\nconst COMMENT_NODE = 8;\n\nconst attr = (el) => {\n if (!el.attributes || el.attributes.length <= 0) {\n return undefined;\n }\n\n const out = {};\n let i;\n\n for (i = 0; i < el.attributes.length; i++) {\n const a = el.attributes[i];\n\n out[a.name] = a.value;\n }\n\n return out;\n};\n\nconst getObject = (type) => {\n if (INLINE.includes(type)) {\n return 'inline';\n } else if (MARK.includes(type)) {\n return 'mark';\n }\n return 'block';\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 handleStyles = (el, attribute) => {\n const styleString = el.getAttribute(attribute);\n\n return reactAttributes(parseStyleString(styleString));\n};\n\nconst handleClass = (el, acc, attribute) => {\n const classNames = el.getAttribute(attribute);\n\n delete acc.class;\n\n return classNames;\n};\n\nconst attributesToMap = (el) => (acc, attribute) => {\n if (!el.getAttribute) {\n return acc;\n }\n\n const value = el.getAttribute(attribute);\n\n if (value) {\n switch (attribute) {\n case 'style':\n acc.style = handleStyles(el, attribute);\n break;\n case 'class':\n acc.className = handleClass(el, acc, attribute);\n break;\n default:\n acc[attribute] = el.getAttribute(attribute);\n break;\n }\n }\n\n return acc;\n};\n\nconst attributes = ['border', 'class', 'style'];\n\n/**\n * Tags to marks.\n *\n * @type {Object}\n */\n\nexport const MARK_TAGS = {\n b: 'bold',\n em: 'italic',\n u: 'underline',\n s: 'strikethrough',\n code: 'code',\n strong: 'strong',\n};\n\nconst marks = {\n deserialize(el, next) {\n const mark = MARK_TAGS[el.tagName.toLowerCase()];\n if (!mark) return;\n log('[deserialize] mark: ', mark);\n return {\n object: 'mark',\n type: mark,\n nodes: next(el.childNodes),\n };\n },\n};\n\nconst rules = [\n marks,\n {\n /**\n * deserialize everything, we're not fussy about the dom structure for now.\n */\n deserialize: (el, next) => {\n if (el.nodeType === COMMENT_NODE) {\n return undefined;\n }\n\n if (el.nodeType === TEXT_NODE) {\n return {\n object: 'text',\n leaves: [{ text: el.textContent }],\n };\n }\n\n const type = el.tagName.toLowerCase();\n\n const normalAttrs = attr(el) || {};\n\n if (type == 'audio' && normalAttrs.controls == '') {\n normalAttrs.controls = true;\n }\n\n const allAttrs = attributes.reduce(attributesToMap(el), { ...normalAttrs });\n const object = getObject(type);\n\n if (el.tagName.toLowerCase() === 'math') {\n return {\n isMath: true,\n nodes: [el],\n };\n }\n\n return {\n object,\n type,\n data: { dataset: { ...el.dataset }, attributes: { ...allAttrs } },\n nodes: next(el.childNodes),\n };\n },\n },\n];\n\n/**\n * Create a new serializer instance with our `rules` from above.\n * Having a default div block will just put every div on it's own line, which is not ideal.\n */\nconst html = new Html({ rules, defaultBlock: 'span' });\n\nexport const deserialize = (s) => html.deserialize(s, { toJSON: true });\n"],"mappings":"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","ignoreList":[]}
|