@pie-lib/mask-markup 2.0.0-beta.1 → 2.0.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 +434 -32
- package/LICENSE.md +5 -0
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/choices/choice.js +101 -129
- package/lib/choices/choice.js.map +1 -1
- package/lib/choices/index.js +28 -48
- package/lib/choices/index.js.map +1 -1
- package/lib/componentize.js +2 -6
- package/lib/componentize.js.map +1 -1
- package/lib/components/blank.js +315 -246
- package/lib/components/blank.js.map +1 -1
- package/lib/components/correct-input.js +47 -66
- package/lib/components/correct-input.js.map +1 -1
- package/lib/components/dropdown.js +399 -156
- package/lib/components/dropdown.js.map +1 -1
- package/lib/components/input.js +15 -19
- package/lib/components/input.js.map +1 -1
- package/lib/constructed-response.js +81 -28
- 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 +160 -96
- package/lib/drag-in-the-blank.js.map +1 -1
- package/lib/index.js +8 -7
- package/lib/index.js.map +1 -1
- package/lib/inline-dropdown.js +10 -14
- package/lib/inline-dropdown.js.map +1 -1
- package/lib/mask.js +93 -101
- package/lib/mask.js.map +1 -1
- package/lib/serialization.js +36 -81
- package/lib/serialization.js.map +1 -1
- package/lib/with-mask.js +53 -49
- package/lib/with-mask.js.map +1 -1
- package/package.json +26 -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 +84 -83
- package/src/choices/index.jsx +25 -15
- 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 +319 -195
- package/src/components/correct-input.jsx +45 -46
- package/src/components/dropdown.jsx +374 -139
- package/src/components/input.jsx +6 -3
- package/src/constructed-response.jsx +81 -18
- package/src/customizable.jsx +35 -0
- package/src/drag-in-the-blank.jsx +159 -47
- package/src/index.js +3 -1
- package/src/inline-dropdown.jsx +6 -3
- package/src/mask.jsx +75 -30
- package/src/serialization.js +37 -44
- package/src/with-mask.jsx +36 -3
- package/README.md +0 -14
- package/lib/new-serialization.js +0 -320
- package/lib/parse-html.js +0 -16
- package/lib/test-serializer.js +0 -215
- 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
|
@@ -1,138 +1,126 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.renderChildren = exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
22
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
25
|
-
|
|
26
15
|
var _react = _interopRequireDefault(require("react"));
|
|
27
|
-
|
|
28
16
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
29
|
-
|
|
30
17
|
var _get = _interopRequireDefault(require("lodash/get"));
|
|
31
|
-
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var _styles = require("@material-ui/core/styles");
|
|
35
|
-
|
|
18
|
+
var _styles = require("@mui/material/styles");
|
|
19
|
+
var _mathRendering = require("@pie-lib/math-rendering");
|
|
36
20
|
var _serialization = require("./serialization");
|
|
37
|
-
|
|
38
|
-
function
|
|
39
|
-
|
|
40
|
-
function
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
45
|
-
|
|
46
|
-
var Paragraph = (0, _styles.withStyles)(function (theme) {
|
|
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;
|
|
47
27
|
return {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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'
|
|
52
36
|
};
|
|
53
|
-
})(function (props) {
|
|
54
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
55
|
-
className: props.classes.para
|
|
56
|
-
}, props.children);
|
|
57
37
|
});
|
|
58
38
|
var restrictWhitespaceTypes = ['tbody', 'tr'];
|
|
59
|
-
|
|
60
39
|
var addText = function addText(parentNode, text) {
|
|
61
40
|
var isWhitespace = text.trim() === '';
|
|
62
41
|
var parentType = parentNode && parentNode.type;
|
|
63
|
-
|
|
64
42
|
if (isWhitespace && restrictWhitespaceTypes.includes(parentType)) {
|
|
65
43
|
return undefined;
|
|
66
44
|
} else {
|
|
67
45
|
return text;
|
|
68
46
|
}
|
|
69
47
|
};
|
|
70
|
-
|
|
71
48
|
var getMark = function getMark(n) {
|
|
72
|
-
var
|
|
73
|
-
|
|
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;
|
|
74
56
|
};
|
|
75
|
-
|
|
76
|
-
var renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode) {
|
|
57
|
+
var _renderChildren = exports.renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode, elementType) {
|
|
77
58
|
if (!value) {
|
|
78
59
|
return null;
|
|
79
60
|
}
|
|
80
|
-
|
|
81
61
|
var children = [];
|
|
82
|
-
(layout.
|
|
83
|
-
var key = "".concat(n.type, "-").concat(index);
|
|
84
|
-
|
|
62
|
+
(layout.nodes || []).forEach(function (n, index) {
|
|
63
|
+
var key = n.type ? "".concat(n.type, "-").concat(index) : "".concat(index);
|
|
85
64
|
if (n.isMath) {
|
|
86
|
-
children.push(
|
|
65
|
+
children.push(/*#__PURE__*/_react["default"].createElement("span", {
|
|
87
66
|
dangerouslySetInnerHTML: {
|
|
88
|
-
__html: "<math displaystyle=\"true\">".concat(n.
|
|
67
|
+
__html: "<math displaystyle=\"true\">".concat(n.nodes[0].innerHTML, "</math>")
|
|
89
68
|
}
|
|
90
69
|
}));
|
|
91
70
|
return children;
|
|
92
71
|
}
|
|
93
|
-
|
|
94
72
|
if (rootRenderChildren) {
|
|
95
73
|
var c = rootRenderChildren(n, value, onChange);
|
|
96
|
-
|
|
97
74
|
if (c) {
|
|
98
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
|
+
}
|
|
99
81
|
return;
|
|
100
82
|
}
|
|
101
83
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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
|
+
}, '');
|
|
105
90
|
var mark = getMark(n);
|
|
106
|
-
|
|
107
91
|
if (mark) {
|
|
108
92
|
var markKey;
|
|
109
|
-
|
|
110
93
|
for (markKey in _serialization.MARK_TAGS) {
|
|
111
94
|
if (_serialization.MARK_TAGS[markKey] === mark.type) {
|
|
112
95
|
var Tag = markKey;
|
|
113
|
-
children.push(
|
|
96
|
+
children.push(/*#__PURE__*/_react["default"].createElement(Tag, {
|
|
97
|
+
key: key
|
|
98
|
+
}, content));
|
|
114
99
|
break;
|
|
115
100
|
}
|
|
116
101
|
}
|
|
117
102
|
} else if (content.length > 0) {
|
|
118
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
|
+
}
|
|
119
109
|
}
|
|
120
110
|
} else {
|
|
121
|
-
var subNodes =
|
|
122
|
-
|
|
111
|
+
var subNodes = _renderChildren(n, value, onChange, rootRenderChildren, n, elementType);
|
|
123
112
|
if (n.type === 'p' || n.type === 'paragraph') {
|
|
124
|
-
children.push(
|
|
113
|
+
children.push(/*#__PURE__*/_react["default"].createElement(Paragraph, {
|
|
125
114
|
key: key
|
|
126
115
|
}, subNodes));
|
|
127
116
|
} else {
|
|
128
117
|
var _Tag = n.type;
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
children.push( /*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
118
|
+
if (n.nodes && n.nodes.length > 0) {
|
|
119
|
+
children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
132
120
|
key: key
|
|
133
121
|
}, n.data.attributes), subNodes));
|
|
134
122
|
} else {
|
|
135
|
-
children.push(
|
|
123
|
+
children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
|
|
136
124
|
key: key
|
|
137
125
|
}, n.data.attributes)));
|
|
138
126
|
}
|
|
@@ -141,64 +129,68 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
|
|
|
141
129
|
});
|
|
142
130
|
return children;
|
|
143
131
|
};
|
|
144
|
-
|
|
145
|
-
exports.renderChildren = renderChildren;
|
|
146
|
-
var MaskContainer = (0, _styles.withStyles)(function () {
|
|
132
|
+
var MaskContainer = (0, _styles.styled)('div')(function () {
|
|
147
133
|
return {
|
|
148
|
-
|
|
149
|
-
|
|
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'
|
|
150
142
|
}
|
|
151
143
|
};
|
|
152
|
-
})(function (props) {
|
|
153
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
154
|
-
className: props.classes.main
|
|
155
|
-
}, props.children);
|
|
156
144
|
});
|
|
145
|
+
|
|
157
146
|
/**
|
|
158
147
|
* Renders a layout that uses the slate.js Value model structure.
|
|
159
148
|
*/
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
(0, _inherits2["default"])(Mask, _React$Component);
|
|
163
|
-
|
|
164
|
-
var _super = _createSuper(Mask);
|
|
165
|
-
|
|
166
|
-
function Mask() {
|
|
149
|
+
var Mask = exports["default"] = /*#__PURE__*/function (_React$Component) {
|
|
150
|
+
function Mask(props) {
|
|
167
151
|
var _this;
|
|
168
|
-
|
|
169
152
|
(0, _classCallCheck2["default"])(this, Mask);
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
args[_key] = arguments[_key];
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
_this = _super.call.apply(_super, [this].concat(args));
|
|
176
|
-
(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) {
|
|
177
155
|
var data = _objectSpread(_objectSpread({}, _this.props.value), {}, (0, _defineProperty2["default"])({}, id, value));
|
|
178
|
-
|
|
179
156
|
_this.props.onChange(data);
|
|
180
157
|
});
|
|
158
|
+
_this.internalContainerRef = /*#__PURE__*/_react["default"].createRef();
|
|
181
159
|
return _this;
|
|
182
160
|
}
|
|
183
|
-
|
|
184
|
-
(0, _createClass2["default"])(Mask, [{
|
|
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
|
+
}, {
|
|
185
171
|
key: "render",
|
|
186
172
|
value: function render() {
|
|
187
173
|
var _this$props = this.props,
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
174
|
+
value = _this$props.value,
|
|
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);
|
|
192
183
|
}
|
|
193
184
|
}]);
|
|
194
|
-
return Mask;
|
|
195
185
|
}(_react["default"].Component);
|
|
196
|
-
|
|
197
|
-
exports["default"] = Mask;
|
|
198
186
|
(0, _defineProperty2["default"])(Mask, "propTypes", {
|
|
199
187
|
renderChildren: _propTypes["default"].func,
|
|
200
188
|
layout: _propTypes["default"].object,
|
|
201
189
|
value: _propTypes["default"].object,
|
|
202
|
-
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
|
+
})])
|
|
203
195
|
});
|
|
204
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJhZ3JhcGgiLCJ3aXRoU3R5bGVzIiwidGhlbWUiLCJwYXJhIiwicGFkZGluZ1RvcCIsInNwYWNpbmciLCJ1bml0IiwicGFkZGluZ0JvdHRvbSIsInByb3BzIiwiY2xhc3NlcyIsImNoaWxkcmVuIiwicmVzdHJpY3RXaGl0ZXNwYWNlVHlwZXMiLCJhZGRUZXh0IiwicGFyZW50Tm9kZSIsInRleHQiLCJpc1doaXRlc3BhY2UiLCJ0cmltIiwicGFyZW50VHlwZSIsInR5cGUiLCJpbmNsdWRlcyIsInVuZGVmaW5lZCIsImdldE1hcmsiLCJuIiwibWFya1RhZ3MiLCJPYmplY3QiLCJ2YWx1ZXMiLCJNQVJLX1RBR1MiLCJyZW5kZXJDaGlsZHJlbiIsImxheW91dCIsInZhbHVlIiwib25DaGFuZ2UiLCJyb290UmVuZGVyQ2hpbGRyZW4iLCJmb3JFYWNoIiwiaW5kZXgiLCJrZXkiLCJpc01hdGgiLCJwdXNoIiwiX19odG1sIiwiaW5uZXJIVE1MIiwiYyIsIlRleHQiLCJpc1RleHQiLCJjb250ZW50IiwibWFyayIsIm1hcmtLZXkiLCJUYWciLCJsZW5ndGgiLCJzdWJOb2RlcyIsImRhdGEiLCJhdHRyaWJ1dGVzIiwiTWFza0NvbnRhaW5lciIsIm1haW4iLCJkaXNwbGF5IiwiTWFzayIsImlkIiwiaGFuZGxlQ2hhbmdlIiwiUmVhY3QiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJmdW5jIiwib2JqZWN0Il0sInNvdXJjZXMiOlsiLi4vc3JjL21hc2suanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcbmltcG9ydCB7IFRleHQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyB3aXRoU3R5bGVzIH0gZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvc3R5bGVzJztcbmltcG9ydCB7IE1BUktfVEFHUyB9IGZyb20gJy4vc2VyaWFsaXphdGlvbic7XG5cbmNvbnN0IFBhcmFncmFwaCA9IHdpdGhTdHlsZXModGhlbWUgPT4gKHtcbiAgcGFyYToge1xuICAgIHBhZGRpbmdUb3A6IDIgKiB0aGVtZS5zcGFjaW5nLnVuaXQsXG4gICAgcGFkZGluZ0JvdHRvbTogMiAqIHRoZW1lLnNwYWNpbmcudW5pdFxuICB9XG59KSkocHJvcHMgPT4gPGRpdiBjbGFzc05hbWU9e3Byb3BzLmNsYXNzZXMucGFyYX0+e3Byb3BzLmNoaWxkcmVufTwvZGl2Pik7XG5cbmNvbnN0IHJlc3RyaWN0V2hpdGVzcGFjZVR5cGVzID0gWyd0Ym9keScsICd0ciddO1xuXG5jb25zdCBhZGRUZXh0ID0gKHBhcmVudE5vZGUsIHRleHQpID0+IHtcbiAgY29uc3QgaXNXaGl0ZXNwYWNlID0gdGV4dC50cmltKCkgPT09ICcnO1xuICBjb25zdCBwYXJlbnRUeXBlID0gcGFyZW50Tm9kZSAmJiBwYXJlbnROb2RlLnR5cGU7XG5cbiAgaWYgKGlzV2hpdGVzcGFjZSAmJiByZXN0cmljdFdoaXRlc3BhY2VUeXBlcy5pbmNsdWRlcyhwYXJlbnRUeXBlKSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHRleHQ7XG4gIH1cbn07XG5cbmNvbnN0IGdldE1hcmsgPSBuID0+IHtcbiAgY29uc3QgbWFya1RhZ3MgPSBPYmplY3QudmFsdWVzKE1BUktfVEFHUyk7XG5cbiAgcmV0dXJuIG1hcmtUYWdzLmluY2x1ZGVzKG4udHlwZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVuZGVyQ2hpbGRyZW4gPSAobGF5b3V0LCB2YWx1ZSwgb25DaGFuZ2UsIHJvb3RSZW5kZXJDaGlsZHJlbiwgcGFyZW50Tm9kZSkgPT4ge1xuICBpZiAoIXZhbHVlKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaGlsZHJlbiA9IFtdO1xuXG4gIChsYXlvdXQuY2hpbGRyZW4gfHwgW10pLmZvckVhY2goKG4sIGluZGV4KSA9PiB7XG4gICAgY29uc3Qga2V5ID0gYCR7bi50eXBlfS0ke2luZGV4fWA7XG5cbiAgICBpZiAobi5pc01hdGgpIHtcbiAgICAgIGNoaWxkcmVuLnB1c2goXG4gICAgICAgIDxzcGFuIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7IF9faHRtbDogYDxtYXRoIGRpc3BsYXlzdHlsZT1cInRydWVcIj4ke24uY2hpbGRyZW5bMF0uaW5uZXJIVE1MfTwvbWF0aD5gIH19IC8+XG4gICAgICApO1xuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cblxuICAgIGlmIChyb290UmVuZGVyQ2hpbGRyZW4pIHtcbiAgICAgIGNvbnN0IGMgPSByb290UmVuZGVyQ2hpbGRyZW4obiwgdmFsdWUsIG9uQ2hhbmdlKTtcbiAgICAgIGlmIChjKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goYyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoVGV4dC5pc1RleHQobikpIHtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBuLnRleHQ7XG4gICAgICBjb25zdCBtYXJrID0gZ2V0TWFyayhuKTtcblxuICAgICAgaWYgKG1hcmspIHtcbiAgICAgICAgbGV0IG1hcmtLZXk7XG5cbiAgICAgICAgZm9yIChtYXJrS2V5IGluIE1BUktfVEFHUykge1xuICAgICAgICAgIGlmIChNQVJLX1RBR1NbbWFya0tleV0gPT09IG1hcmsudHlwZSkge1xuICAgICAgICAgICAgY29uc3QgVGFnID0gbWFya0tleTtcblxuICAgICAgICAgICAgY2hpbGRyZW4ucHVzaCg8VGFnPntjb250ZW50fTwvVGFnPik7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY29udGVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoaWxkcmVuLnB1c2goY29udGVudCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHN1Yk5vZGVzID0gcmVuZGVyQ2hpbGRyZW4obiwgdmFsdWUsIG9uQ2hhbmdlLCByb290UmVuZGVyQ2hpbGRyZW4sIG4pO1xuICAgICAgaWYgKG4udHlwZSA9PT0gJ3AnIHx8IG4udHlwZSA9PT0gJ3BhcmFncmFwaCcpIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaCg8UGFyYWdyYXBoIGtleT17a2V5fT57c3ViTm9kZXN9PC9QYXJhZ3JhcGg+KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IFRhZyA9IG4udHlwZTtcbiAgICAgICAgaWYgKG4uY2hpbGRyZW4gJiYgbi5jaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY2hpbGRyZW4ucHVzaChcbiAgICAgICAgICAgIDxUYWcga2V5PXtrZXl9IHsuLi5uLmRhdGEuYXR0cmlidXRlc30+XG4gICAgICAgICAgICAgIHtzdWJOb2Rlc31cbiAgICAgICAgICAgIDwvVGFnPlxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hpbGRyZW4ucHVzaCg8VGFnIGtleT17a2V5fSB7Li4ubi5kYXRhLmF0dHJpYnV0ZXN9IC8+KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHJldHVybiBjaGlsZHJlbjtcbn07XG5cbmNvbnN0IE1hc2tDb250YWluZXIgPSB3aXRoU3R5bGVzKCgpID0+ICh7XG4gIG1haW46IHtcbiAgICBkaXNwbGF5OiAnaW5pdGlhbCdcbiAgfVxufSkpKHByb3BzID0+IDxkaXYgY2xhc3NOYW1lPXtwcm9wcy5jbGFzc2VzLm1haW59Pntwcm9wcy5jaGlsZHJlbn08L2Rpdj4pO1xuXG4vKipcbiAqIFJlbmRlcnMgYSBsYXlvdXQgdGhhdCB1c2VzIHRoZSBzbGF0ZS5qcyBWYWx1ZSBtb2RlbCBzdHJ1Y3R1cmUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1hc2sgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIHJlbmRlckNoaWxkcmVuOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBsYXlvdXQ6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgdmFsdWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jXG4gIH07XG5cbiAgaGFuZGxlQ2hhbmdlID0gKGlkLCB2YWx1ZSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSB7IC4uLnRoaXMucHJvcHMudmFsdWUsIFtpZF06IHZhbHVlIH07XG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShkYXRhKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgeyB2YWx1ZSwgbGF5b3V0IH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGNoaWxkcmVuID0gcmVuZGVyQ2hpbGRyZW4obGF5b3V0LCB2YWx1ZSwgdGhpcy5oYW5kbGVDaGFuZ2UsIHRoaXMucHJvcHMucmVuZGVyQ2hpbGRyZW4pO1xuXG4gICAgcmV0dXJuIDxNYXNrQ29udGFpbmVyPntjaGlsZHJlbn08L01hc2tDb250YWluZXI+O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7OztBQUVBLElBQU1BLFNBQVMsR0FBRyxJQUFBQyxrQkFBQSxFQUFXLFVBQUFDLEtBQUs7RUFBQSxPQUFLO0lBQ3JDQyxJQUFJLEVBQUU7TUFDSkMsVUFBVSxFQUFFLElBQUlGLEtBQUssQ0FBQ0csT0FBTixDQUFjQyxJQUQxQjtNQUVKQyxhQUFhLEVBQUUsSUFBSUwsS0FBSyxDQUFDRyxPQUFOLENBQWNDO0lBRjdCO0VBRCtCLENBQUw7QUFBQSxDQUFoQixFQUtkLFVBQUFFLEtBQUs7RUFBQSxvQkFBSTtJQUFLLFNBQVMsRUFBRUEsS0FBSyxDQUFDQyxPQUFOLENBQWNOO0VBQTlCLEdBQXFDSyxLQUFLLENBQUNFLFFBQTNDLENBQUo7QUFBQSxDQUxTLENBQWxCO0FBT0EsSUFBTUMsdUJBQXVCLEdBQUcsQ0FBQyxPQUFELEVBQVUsSUFBVixDQUFoQzs7QUFF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
|
|
196
|
+
//# sourceMappingURL=mask.js.map
|
package/lib/mask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mask.js","names":["Paragraph","withStyles","theme","para","paddingTop","spacing","unit","paddingBottom","props","classes","children","restrictWhitespaceTypes","addText","parentNode","text","isWhitespace","trim","parentType","type","includes","undefined","getMark","n","mark","leaves","find","leave","get","length","marks","renderChildren","layout","value","onChange","rootRenderChildren","nodes","forEach","index","key","isMath","push","__html","innerHTML","c","object","content","reduce","acc","l","t","extraText","markKey","MARK_TAGS","Tag","subNodes","data","attributes","MaskContainer","main","display","Mask","id","handleChange","React","Component","PropTypes","func"],"sources":["../src/mask.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport get from 'lodash/get';\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 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) => {\n if (!value) {\n return null;\n }\n\n const children = [];\n\n (layout.nodes || []).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.nodes[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 (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>{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 (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 = 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":"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","ignoreList":[]}
|
package/lib/serialization.js
CHANGED
|
@@ -1,130 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.reactAttributes = exports.parseStyleString = exports.deserialize = exports.MARK_TAGS = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
|
-
var _slateHyperscript = require("slate-hyperscript");
|
|
15
|
-
|
|
9
|
+
var _slateHtmlSerializer = _interopRequireDefault(require("slate-html-serializer"));
|
|
16
10
|
var _toStyle = require("to-style");
|
|
17
|
-
|
|
18
11
|
var _debug = _interopRequireDefault(require("debug"));
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
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; }
|
|
23
|
-
|
|
24
|
-
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; }
|
|
25
|
-
|
|
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; }
|
|
26
14
|
var log = (0, _debug["default"])('@pie-lib:mask-markup:serialization');
|
|
27
15
|
var INLINE = ['span'];
|
|
28
16
|
var MARK = ['em', 'strong', 'u'];
|
|
29
17
|
var TEXT_NODE = 3;
|
|
30
18
|
var COMMENT_NODE = 8;
|
|
31
|
-
|
|
32
19
|
var attr = function attr(el) {
|
|
33
20
|
if (!el.attributes || el.attributes.length <= 0) {
|
|
34
21
|
return undefined;
|
|
35
22
|
}
|
|
36
|
-
|
|
37
23
|
var out = {};
|
|
38
24
|
var i;
|
|
39
|
-
|
|
40
25
|
for (i = 0; i < el.attributes.length; i++) {
|
|
41
26
|
var a = el.attributes[i];
|
|
42
27
|
out[a.name] = a.value;
|
|
43
28
|
}
|
|
44
|
-
|
|
45
29
|
return out;
|
|
46
30
|
};
|
|
47
|
-
|
|
48
31
|
var getObject = function getObject(type) {
|
|
49
32
|
if (INLINE.includes(type)) {
|
|
50
33
|
return 'inline';
|
|
51
34
|
} else if (MARK.includes(type)) {
|
|
52
35
|
return 'mark';
|
|
53
36
|
}
|
|
54
|
-
|
|
55
37
|
return 'block';
|
|
56
38
|
};
|
|
57
|
-
|
|
58
|
-
var parseStyleString = function parseStyleString(s) {
|
|
39
|
+
var parseStyleString = exports.parseStyleString = function parseStyleString(s) {
|
|
59
40
|
var regex = /([\w-]*)\s*:\s*([^;]*)/g;
|
|
60
41
|
var match;
|
|
61
42
|
var result = {};
|
|
62
|
-
|
|
63
43
|
while (match = regex.exec(s)) {
|
|
64
44
|
result[match[1]] = match[2].trim();
|
|
65
45
|
}
|
|
66
|
-
|
|
67
46
|
return result;
|
|
68
47
|
};
|
|
69
|
-
|
|
70
|
-
exports.parseStyleString = parseStyleString;
|
|
71
|
-
|
|
72
|
-
var reactAttributes = function reactAttributes(o) {
|
|
48
|
+
var reactAttributes = exports.reactAttributes = function reactAttributes(o) {
|
|
73
49
|
return (0, _toStyle.object)(o, {
|
|
74
50
|
camelize: true,
|
|
75
51
|
addUnits: false
|
|
76
52
|
});
|
|
77
53
|
};
|
|
78
|
-
|
|
79
|
-
exports.reactAttributes = reactAttributes;
|
|
80
|
-
|
|
81
54
|
var handleStyles = function handleStyles(el, attribute) {
|
|
82
55
|
var styleString = el.getAttribute(attribute);
|
|
83
56
|
return reactAttributes(parseStyleString(styleString));
|
|
84
57
|
};
|
|
85
|
-
|
|
86
58
|
var handleClass = function handleClass(el, acc, attribute) {
|
|
87
59
|
var classNames = el.getAttribute(attribute);
|
|
88
60
|
delete acc["class"];
|
|
89
61
|
return classNames;
|
|
90
62
|
};
|
|
91
|
-
|
|
92
63
|
var attributesToMap = function attributesToMap(el) {
|
|
93
64
|
return function (acc, attribute) {
|
|
94
65
|
if (!el.getAttribute) {
|
|
95
66
|
return acc;
|
|
96
67
|
}
|
|
97
|
-
|
|
98
68
|
var value = el.getAttribute(attribute);
|
|
99
|
-
|
|
100
69
|
if (value) {
|
|
101
70
|
switch (attribute) {
|
|
102
71
|
case 'style':
|
|
103
72
|
acc.style = handleStyles(el, attribute);
|
|
104
73
|
break;
|
|
105
|
-
|
|
106
74
|
case 'class':
|
|
107
75
|
acc.className = handleClass(el, acc, attribute);
|
|
108
76
|
break;
|
|
109
|
-
|
|
110
77
|
default:
|
|
111
78
|
acc[attribute] = el.getAttribute(attribute);
|
|
112
79
|
break;
|
|
113
80
|
}
|
|
114
81
|
}
|
|
115
|
-
|
|
116
82
|
return acc;
|
|
117
83
|
};
|
|
118
84
|
};
|
|
119
|
-
|
|
120
85
|
var attributes = ['border', 'class', 'style'];
|
|
86
|
+
|
|
121
87
|
/**
|
|
122
88
|
* Tags to marks.
|
|
123
89
|
*
|
|
124
90
|
* @type {Object}
|
|
125
91
|
*/
|
|
126
92
|
|
|
127
|
-
var MARK_TAGS = {
|
|
93
|
+
var MARK_TAGS = exports.MARK_TAGS = {
|
|
128
94
|
b: 'bold',
|
|
129
95
|
em: 'italic',
|
|
130
96
|
u: 'underline',
|
|
@@ -132,19 +98,16 @@ var MARK_TAGS = {
|
|
|
132
98
|
code: 'code',
|
|
133
99
|
strong: 'strong'
|
|
134
100
|
};
|
|
135
|
-
exports.MARK_TAGS = MARK_TAGS;
|
|
136
101
|
var marks = {
|
|
137
102
|
deserialize: function deserialize(el, next) {
|
|
138
103
|
var mark = MARK_TAGS[el.tagName.toLowerCase()];
|
|
139
|
-
|
|
140
|
-
if (!mark) {
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
|
|
104
|
+
if (!mark) return;
|
|
144
105
|
log('[deserialize] mark: ', mark);
|
|
145
|
-
return
|
|
146
|
-
|
|
147
|
-
|
|
106
|
+
return {
|
|
107
|
+
object: 'mark',
|
|
108
|
+
type: mark,
|
|
109
|
+
nodes: next(el.childNodes)
|
|
110
|
+
};
|
|
148
111
|
}
|
|
149
112
|
};
|
|
150
113
|
var rules = [marks, {
|
|
@@ -155,58 +118,50 @@ var rules = [marks, {
|
|
|
155
118
|
if (el.nodeType === COMMENT_NODE) {
|
|
156
119
|
return undefined;
|
|
157
120
|
}
|
|
158
|
-
|
|
159
121
|
if (el.nodeType === TEXT_NODE) {
|
|
160
|
-
return
|
|
122
|
+
return {
|
|
123
|
+
object: 'text',
|
|
124
|
+
leaves: [{
|
|
125
|
+
text: el.textContent
|
|
126
|
+
}]
|
|
127
|
+
};
|
|
161
128
|
}
|
|
162
|
-
|
|
163
129
|
var type = el.tagName.toLowerCase();
|
|
164
130
|
var normalAttrs = attr(el) || {};
|
|
131
|
+
if (type == 'audio' && normalAttrs.controls == '') {
|
|
132
|
+
normalAttrs.controls = true;
|
|
133
|
+
}
|
|
165
134
|
var allAttrs = attributes.reduce(attributesToMap(el), _objectSpread({}, normalAttrs));
|
|
166
|
-
|
|
135
|
+
var object = getObject(type);
|
|
167
136
|
if (el.tagName.toLowerCase() === 'math') {
|
|
168
|
-
return
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
}); // return {
|
|
174
|
-
// isMath: true,
|
|
175
|
-
// nodes: [el]
|
|
176
|
-
// };
|
|
137
|
+
return {
|
|
138
|
+
isMath: true,
|
|
139
|
+
nodes: [el]
|
|
140
|
+
};
|
|
177
141
|
}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
return (0, _slateHyperscript.jsx)('element', {
|
|
181
|
-
type: type,
|
|
182
|
-
data: {}
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
return (0, _slateHyperscript.jsx)('element', {
|
|
142
|
+
return {
|
|
143
|
+
object: object,
|
|
187
144
|
type: type,
|
|
188
145
|
data: {
|
|
189
146
|
dataset: _objectSpread({}, el.dataset),
|
|
190
147
|
attributes: _objectSpread({}, allAttrs)
|
|
191
|
-
}
|
|
192
|
-
|
|
148
|
+
},
|
|
149
|
+
nodes: next(el.childNodes)
|
|
150
|
+
};
|
|
193
151
|
}
|
|
194
152
|
}];
|
|
153
|
+
|
|
195
154
|
/**
|
|
196
155
|
* Create a new serializer instance with our `rules` from above.
|
|
197
156
|
* Having a default div block will just put every div on it's own line, which is not ideal.
|
|
198
157
|
*/
|
|
199
|
-
|
|
200
|
-
var html = new _testSerializer["default"]({
|
|
158
|
+
var html = new _slateHtmlSerializer["default"]({
|
|
201
159
|
rules: rules,
|
|
202
160
|
defaultBlock: 'span'
|
|
203
161
|
});
|
|
204
|
-
|
|
205
|
-
var deserialize = function deserialize(s) {
|
|
162
|
+
var deserialize = exports.deserialize = function deserialize(s) {
|
|
206
163
|
return html.deserialize(s, {
|
|
207
164
|
toJSON: true
|
|
208
165
|
});
|
|
209
166
|
};
|
|
210
|
-
|
|
211
|
-
exports.deserialize = deserialize;
|
|
212
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJkZWJ1ZyIsIklOTElORSIsIk1BUksiLCJURVhUX05PREUiLCJDT01NRU5UX05PREUiLCJhdHRyIiwiZWwiLCJhdHRyaWJ1dGVzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwib3V0IiwiaSIsImEiLCJuYW1lIiwidmFsdWUiLCJnZXRPYmplY3QiLCJ0eXBlIiwiaW5jbHVkZXMiLCJwYXJzZVN0eWxlU3RyaW5nIiwicyIsInJlZ2V4IiwibWF0Y2giLCJyZXN1bHQiLCJleGVjIiwidHJpbSIsInJlYWN0QXR0cmlidXRlcyIsIm8iLCJ0b1N0eWxlT2JqZWN0IiwiY2FtZWxpemUiLCJhZGRVbml0cyIsImhhbmRsZVN0eWxlcyIsImF0dHJpYnV0ZSIsInN0eWxlU3RyaW5nIiwiZ2V0QXR0cmlidXRlIiwiaGFuZGxlQ2xhc3MiLCJhY2MiLCJjbGFzc05hbWVzIiwiYXR0cmlidXRlc1RvTWFwIiwic3R5bGUiLCJjbGFzc05hbWUiLCJNQVJLX1RBR1MiLCJiIiwiZW0iLCJ1IiwiY29kZSIsInN0cm9uZyIsIm1hcmtzIiwiZGVzZXJpYWxpemUiLCJuZXh0IiwibWFyayIsInRhZ05hbWUiLCJ0b0xvd2VyQ2FzZSIsImpzeCIsImNoaWxkTm9kZXMiLCJydWxlcyIsIm5vZGVUeXBlIiwidGV4dENvbnRlbnQiLCJub3JtYWxBdHRycyIsImFsbEF0dHJzIiwicmVkdWNlIiwiZGF0YSIsImh0bWwiLCJpbm5lckhUTUwiLCJkYXRhc2V0IiwiSHRtbCIsImRlZmF1bHRCbG9jayIsInRvSlNPTiJdLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJpYWxpemF0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdzbGF0ZS1oeXBlcnNjcmlwdCc7XG5pbXBvcnQgeyBvYmplY3QgYXMgdG9TdHlsZU9iamVjdCB9IGZyb20gJ3RvLXN0eWxlJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmltcG9ydCBIdG1sIGZyb20gJy4vdGVzdC1zZXJpYWxpemVyJztcblxuY29uc3QgbG9nID0gZGVidWcoJ0BwaWUtbGliOm1hc2stbWFya3VwOnNlcmlhbGl6YXRpb24nKTtcblxuY29uc3QgSU5MSU5FID0gWydzcGFuJ107XG5jb25zdCBNQVJLID0gWydlbScsICdzdHJvbmcnLCAndSddO1xuY29uc3QgVEVYVF9OT0RFID0gMztcbmNvbnN0IENPTU1FTlRfTk9ERSA9IDg7XG5cbmNvbnN0IGF0dHIgPSBlbCA9PiB7XG4gIGlmICghZWwuYXR0cmlidXRlcyB8fCBlbC5hdHRyaWJ1dGVzLmxlbmd0aCA8PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG91dCA9IHt9O1xuICBsZXQgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgZWwuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGEgPSBlbC5hdHRyaWJ1dGVzW2ldO1xuXG4gICAgb3V0W2EubmFtZV0gPSBhLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmNvbnN0IGdldE9iamVjdCA9IHR5cGUgPT4ge1xuICBpZiAoSU5MSU5FLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgcmV0dXJuICdpbmxpbmUnO1xuICB9IGVsc2UgaWYgKE1BUksuaW5jbHVkZXModHlwZSkpIHtcbiAgICByZXR1cm4gJ21hcmsnO1xuICB9XG4gIHJldHVybiAnYmxvY2snO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlU3R5bGVTdHJpbmcgPSBzID0+IHtcbiAgY29uc3QgcmVnZXggPSAvKFtcXHctXSopXFxzKjpcXHMqKFteO10qKS9nO1xuICBsZXQgbWF0Y2g7XG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICB3aGlsZSAoKG1hdGNoID0gcmVnZXguZXhlYyhzKSkpIHtcbiAgICByZXN1bHRbbWF0Y2hbMV1dID0gbWF0Y2hbMl0udHJpbSgpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgcmVhY3RBdHRyaWJ1dGVzID0gbyA9PiB0b1N0eWxlT2JqZWN0KG8sIHsgY2FtZWxpemU6IHRydWUsIGFkZFVuaXRzOiBmYWxzZSB9KTtcblxuY29uc3QgaGFuZGxlU3R5bGVzID0gKGVsLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3Qgc3R5bGVTdHJpbmcgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcblxuICByZXR1cm4gcmVhY3RBdHRyaWJ1dGVzKHBhcnNlU3R5bGVTdHJpbmcoc3R5bGVTdHJpbmcpKTtcbn07XG5cbmNvbnN0IGhhbmRsZUNsYXNzID0gKGVsLCBhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBjb25zdCBjbGFzc05hbWVzID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cbiAgZGVsZXRlIGFjYy5jbGFzcztcblxuICByZXR1cm4gY2xhc3NOYW1lcztcbn07XG5cbmNvbnN0IGF0dHJpYnV0ZXNUb01hcCA9IGVsID0+IChhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBpZiAoIWVsLmdldEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXG4gIGlmICh2YWx1ZSkge1xuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XG4gICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgIGFjYy5zdHlsZSA9IGhhbmRsZVN0eWxlcyhlbCwgYXR0cmlidXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGFjYy5jbGFzc05hbWUgPSBoYW5kbGVDbGFzcyhlbCwgYWNjLCBhdHRyaWJ1dGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFjY1thdHRyaWJ1dGVdID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhY2M7XG59O1xuXG5jb25zdCBhdHRyaWJ1dGVzID0gWydib3JkZXInLCAnY2xhc3MnLCAnc3R5bGUnXTtcblxuLyoqXG4gKiBUYWdzIHRvIG1hcmtzLlxuICpcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblxuZXhwb3J0IGNvbnN0IE1BUktfVEFHUyA9IHtcbiAgYjogJ2JvbGQnLFxuICBlbTogJ2l0YWxpYycsXG4gIHU6ICd1bmRlcmxpbmUnLFxuICBzOiAnc3RyaWtldGhyb3VnaCcsXG4gIGNvZGU6ICdjb2RlJyxcbiAgc3Ryb25nOiAnc3Ryb25nJ1xufTtcblxuY29uc3QgbWFya3MgPSB7XG4gIGRlc2VyaWFsaXplKGVsLCBuZXh0KSB7XG4gICAgY29uc3QgbWFyayA9IE1BUktfVEFHU1tlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgaWYgKCFtYXJrKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbG9nKCdbZGVzZXJpYWxpemVdIG1hcms6ICcsIG1hcmspO1xuICAgIHJldHVybiBqc3goJ3RleHQnLCB7IHR5cGU6IG1hcmsgfSwgbmV4dChlbC5jaGlsZE5vZGVzKSk7XG4gIH1cbn07XG5cbmNvbnN0IHJ1bGVzID0gW1xuICBtYXJrcyxcbiAge1xuICAgIC8qKlxuICAgICAqIGRlc2VyaWFsaXplIGV2ZXJ5dGhpbmcsIHdlJ3JlIG5vdCBmdXNzeSBhYm91dCB0aGUgZG9tIHN0cnVjdHVyZSBmb3Igbm93LlxuICAgICAqL1xuICAgIGRlc2VyaWFsaXplOiAoZWwsIG5leHQpID0+IHtcbiAgICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiBqc3goJ3RleHQnLCBlbC50ZXh0Q29udGVudCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IG5vcm1hbEF0dHJzID0gYXR0cihlbCkgfHwge307XG4gICAgICBjb25zdCBhbGxBdHRycyA9IGF0dHJpYnV0ZXMucmVkdWNlKGF0dHJpYnV0ZXNUb01hcChlbCksIHsgLi4ubm9ybWFsQXR0cnMgfSk7XG5cbiAgICAgIGlmIChlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdtYXRoJykge1xuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50Jywge1xuICAgICAgICAgIHR5cGU6ICdtYXRobWwnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGh0bWw6IGVsLmlubmVySFRNTFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gcmV0dXJuIHtcbiAgICAgICAgLy8gICBpc01hdGg6IHRydWUsXG4gICAgICAgIC8vICAgbm9kZXM6IFtlbF1cbiAgICAgICAgLy8gfTtcbiAgICAgIH1cblxuICAgICAgaWYgKGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2JyJykge1xuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlLCBkYXRhOiB7fSB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGpzeChcbiAgICAgICAgJ2VsZW1lbnQnLFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBkYXRhOiB7IGRhdGFzZXQ6IHsgLi4uZWwuZGF0YXNldCB9LCBhdHRyaWJ1dGVzOiB7IC4uLmFsbEF0dHJzIH0gfVxuICAgICAgICB9LFxuICAgICAgICBuZXh0KGVsLmNoaWxkTm9kZXMpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXTtcblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgc2VyaWFsaXplciBpbnN0YW5jZSB3aXRoIG91ciBgcnVsZXNgIGZyb20gYWJvdmUuXG4gKiBIYXZpbmcgYSBkZWZhdWx0IGRpdiBibG9jayB3aWxsIGp1c3QgcHV0IGV2ZXJ5IGRpdiBvbiBpdCdzIG93biBsaW5lLCB3aGljaCBpcyBub3QgaWRlYWwuXG4gKi9cbmNvbnN0IGh0bWwgPSBuZXcgSHRtbCh7IHJ1bGVzLCBkZWZhdWx0QmxvY2s6ICdzcGFuJyB9KTtcblxuZXhwb3J0IGNvbnN0IGRlc2VyaWFsaXplID0gcyA9PiBodG1sLmRlc2VyaWFsaXplKHMsIHsgdG9KU09OOiB0cnVlIH0pO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7QUFFQSxJQUFNQSxHQUFHLEdBQUcsSUFBQUMsaUJBQUEsRUFBTSxvQ0FBTixDQUFaO0FBRUEsSUFBTUMsTUFBTSxHQUFHLENBQUMsTUFBRCxDQUFmO0FBQ0EsSUFBTUMsSUFBSSxHQUFHLENBQUMsSUFBRCxFQUFPLFFBQVAsRUFBaUIsR0FBakIsQ0FBYjtBQUNBLElBQU1DLFNBQVMsR0FBRyxDQUFsQjtBQUNBLElBQU1DLFlBQVksR0FBRyxDQUFyQjs7QUFFQSxJQUFNQyxJQUFJLEdBQUcsU0FBUEEsSUFBTyxDQUFBQyxFQUFFLEVBQUk7RUFDakIsSUFBSSxDQUFDQSxFQUFFLENBQUNDLFVBQUosSUFBa0JELEVBQUUsQ0FBQ0MsVUFBSCxDQUFjQyxNQUFkLElBQXdCLENBQTlDLEVBQWlEO0lBQy9DLE9BQU9DLFNBQVA7RUFDRDs7RUFFRCxJQUFNQyxHQUFHLEdBQUcsRUFBWjtFQUNBLElBQUlDLENBQUo7O0VBRUEsS0FBS0EsQ0FBQyxHQUFHLENBQVQsRUFBWUEsQ0FBQyxHQUFHTCxFQUFFLENBQUNDLFVBQUgsQ0FBY0MsTUFBOUIsRUFBc0NHLENBQUMsRUFBdkMsRUFBMkM7SUFDekMsSUFBTUMsQ0FBQyxHQUFHTixFQUFFLENBQUNDLFVBQUgsQ0FBY0ksQ0FBZCxDQUFWO0lBRUFELEdBQUcsQ0FBQ0UsQ0FBQyxDQUFDQyxJQUFILENBQUgsR0FBY0QsQ0FBQyxDQUFDRSxLQUFoQjtFQUNEOztFQUVELE9BQU9KLEdBQVA7QUFDRCxDQWZEOztBQWlCQSxJQUFNSyxTQUFTLEdBQUcsU0FBWkEsU0FBWSxDQUFBQyxJQUFJLEVBQUk7RUFDeEIsSUFBSWYsTUFBTSxDQUFDZ0Is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
|
|
167
|
+
//# sourceMappingURL=serialization.js.map
|