@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.
Files changed (80) hide show
  1. package/CHANGELOG.json +1 -871
  2. package/CHANGELOG.md +296 -2
  3. package/LICENSE.md +5 -0
  4. package/NEXT.CHANGELOG.json +1 -0
  5. package/lib/__tests__/drag-in-the-blank.test.js +129 -0
  6. package/lib/__tests__/index.test.js +42 -0
  7. package/lib/__tests__/mask.test.js +163 -0
  8. package/lib/__tests__/serialization.test.js +44 -0
  9. package/lib/__tests__/utils.js +14 -0
  10. package/lib/__tests__/with-mask.test.js +110 -0
  11. package/lib/choices/__tests__/index.test.js +101 -0
  12. package/lib/choices/choice.js +100 -119
  13. package/lib/choices/choice.js.map +1 -1
  14. package/lib/choices/index.js +24 -20
  15. package/lib/choices/index.js.map +1 -1
  16. package/lib/componentize.js +2 -3
  17. package/lib/componentize.js.map +1 -1
  18. package/lib/components/__tests__/blank.test.js +189 -0
  19. package/lib/components/__tests__/correct-input.test.js +132 -0
  20. package/lib/components/__tests__/dropdown.test.js +134 -0
  21. package/lib/components/__tests__/input.test.js +129 -0
  22. package/lib/components/blank.js +316 -222
  23. package/lib/components/blank.js.map +1 -1
  24. package/lib/components/correct-input.js +40 -43
  25. package/lib/components/correct-input.js.map +1 -1
  26. package/lib/components/dropdown.js +394 -125
  27. package/lib/components/dropdown.js.map +1 -1
  28. package/lib/components/input.js +2 -3
  29. package/lib/components/input.js.map +1 -1
  30. package/lib/constructed-response.js +83 -27
  31. package/lib/constructed-response.js.map +1 -1
  32. package/lib/customizable.js +44 -0
  33. package/lib/customizable.js.map +1 -0
  34. package/lib/drag-in-the-blank.js +155 -62
  35. package/lib/drag-in-the-blank.js.map +1 -1
  36. package/lib/index.js +8 -1
  37. package/lib/index.js.map +1 -1
  38. package/lib/inline-dropdown.js +5 -4
  39. package/lib/inline-dropdown.js.map +1 -1
  40. package/lib/mask.js +90 -57
  41. package/lib/mask.js.map +1 -1
  42. package/lib/serialization.js +31 -43
  43. package/lib/serialization.js.map +1 -1
  44. package/lib/with-mask.js +49 -21
  45. package/lib/with-mask.js.map +1 -1
  46. package/package.json +18 -15
  47. package/src/__tests__/drag-in-the-blank.test.js +111 -0
  48. package/src/__tests__/index.test.js +39 -0
  49. package/src/__tests__/mask.test.js +187 -0
  50. package/src/__tests__/serialization.test.js +54 -0
  51. package/src/__tests__/utils.js +1 -0
  52. package/src/__tests__/with-mask.test.js +76 -0
  53. package/src/choices/__tests__/index.test.js +75 -0
  54. package/src/choices/choice.jsx +83 -96
  55. package/src/choices/index.jsx +11 -5
  56. package/src/components/__tests__/blank.test.js +138 -0
  57. package/src/components/__tests__/correct-input.test.js +90 -0
  58. package/src/components/__tests__/dropdown.test.js +93 -0
  59. package/src/components/__tests__/input.test.js +102 -0
  60. package/src/components/blank.jsx +316 -204
  61. package/src/components/correct-input.jsx +37 -38
  62. package/src/components/dropdown.jsx +371 -125
  63. package/src/constructed-response.jsx +71 -18
  64. package/src/customizable.jsx +35 -0
  65. package/src/drag-in-the-blank.jsx +152 -40
  66. package/src/index.js +10 -1
  67. package/src/inline-dropdown.jsx +2 -0
  68. package/src/mask.jsx +71 -25
  69. package/src/serialization.js +22 -34
  70. package/src/with-mask.jsx +43 -3
  71. package/README.md +0 -14
  72. package/lib/new-serialization.js +0 -267
  73. package/lib/new-serialization.js.map +0 -1
  74. package/lib/parse-html.js +0 -17
  75. package/lib/parse-html.js.map +0 -1
  76. package/lib/test-serializer.js +0 -164
  77. package/lib/test-serializer.js.map +0 -1
  78. package/src/new-serialization.jsx +0 -291
  79. package/src/parse-html.js +0 -8
  80. 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 _slate = require("slate");
19
- var _styles = require("@material-ui/core/styles");
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(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; }
22
- 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; }
23
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
24
- 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; } }
25
- 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;
26
27
  return {
27
- para: {
28
- paddingTop: 2 * theme.spacing.unit,
29
- paddingBottom: 2 * theme.spacing.unit
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 markTags = Object.values(_serialization.MARK_TAGS);
49
- return markTags.includes(n.type);
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.children || []).forEach(function (n, index) {
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( /*#__PURE__*/_react["default"].createElement("span", {
65
+ children.push(/*#__PURE__*/_react["default"].createElement("span", {
60
66
  dangerouslySetInnerHTML: {
61
- __html: "<math displaystyle=\"true\">".concat(n.children[0].innerHTML, "</math>")
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 (_slate.Text.isText(n)) {
74
- var content = n.text;
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( /*#__PURE__*/_react["default"].createElement(Tag, {
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 = renderChildren(n, value, onChange, rootRenderChildren, n);
111
+ var subNodes = _renderChildren(n, value, onChange, rootRenderChildren, n, elementType);
92
112
  if (n.type === 'p' || n.type === 'paragraph') {
93
- children.push( /*#__PURE__*/_react["default"].createElement(Paragraph, {
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 (_Tag !== 'source' && n.children && n.children.length > 0) {
99
- 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"])({
100
120
  key: key
101
121
  }, n.data.attributes), subNodes));
102
122
  } else {
103
- children.push( /*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
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
- exports.renderChildren = renderChildren;
113
- var MaskContainer = (0, _styles.withStyles)(function () {
132
+ var MaskContainer = (0, _styles.styled)('div')(function () {
114
133
  return {
115
- main: {
116
- display: 'initial'
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
- (0, _inherits2["default"])(Mask, _React$Component);
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
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
135
- args[_key] = arguments[_key];
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, _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
+ }, {
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
- var children = renderChildren(layout, value, this.handleChange, this.props.renderChildren);
151
- return /*#__PURE__*/_react["default"].createElement(MaskContainer, null, children);
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":"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","ignoreList":[]}
@@ -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 _react = _interopRequireDefault(require("react"));
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 _testSerializer = _interopRequireDefault(require("./test-serializer"));
14
- 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; }
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.parseStyleString = parseStyleString;
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 (0, _slateHyperscript.jsx)('text', {
114
- type: mark
115
- }, next(el.childNodes));
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 (0, _slateHyperscript.jsx)('text', el.textContent);
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 (0, _slateHyperscript.jsx)('element', {
137
- type: 'mathml',
138
- data: {
139
- html: el.innerHTML
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
- if (el.tagName.toLowerCase() === 'br') {
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
- }, next(el.childNodes));
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 _testSerializer["default"]({
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=
@@ -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":";;;;;;;;AAAA,IAAAA,oBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA0B,SAAAG,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;AAE1B,IAAMoB,GAAG,GAAG,IAAAC,iBAAK,EAAC,oCAAoC,CAAC;AAEvD,IAAMC,MAAM,GAAG,CAAC,MAAM,CAAC;AACvB,IAAMC,IAAI,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,CAAC;AAClC,IAAMC,SAAS,GAAG,CAAC;AACnB,IAAMC,YAAY,GAAG,CAAC;AAEtB,IAAMC,IAAI,GAAG,SAAPA,IAAIA,CAAIC,EAAE,EAAK;EACnB,IAAI,CAACA,EAAE,CAACC,UAAU,IAAID,EAAE,CAACC,UAAU,CAACd,MAAM,IAAI,CAAC,EAAE;IAC/C,OAAOe,SAAS;EAClB;EAEA,IAAMC,GAAG,GAAG,CAAC,CAAC;EACd,IAAIC,CAAC;EAEL,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,EAAE,CAACC,UAAU,CAACd,MAAM,EAAEiB,CAAC,EAAE,EAAE;IACzC,IAAMC,CAAC,GAAGL,EAAE,CAACC,UAAU,CAACG,CAAC,CAAC;IAE1BD,GAAG,CAACE,CAAC,CAACC,IAAI,CAAC,GAAGD,CAAC,CAACE,KAAK;EACvB;EAEA,OAAOJ,GAAG;AACZ,CAAC;AAED,IAAMK,SAAS,GAAG,SAAZA,SAASA,CAAIC,IAAI,EAAK;EAC1B,IAAId,MAAM,CAACe,QAAQ,CAACD,IAAI,CAAC,EAAE;IACzB,OAAO,QAAQ;EACjB,CAAC,MAAM,IAAIb,IAAI,CAACc,QAAQ,CAACD,IAAI,CAAC,EAAE;IAC9B,OAAO,MAAM;EACf;EACA,OAAO,OAAO;AAChB,CAAC;AAEM,IAAME,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAIE,CAAC,EAAK;EACrC,IAAMC,KAAK,GAAG,yBAAyB;EACvC,IAAIC,KAAK;EACT,IAAMC,MAAM,GAAG,CAAC,CAAC;EACjB,OAAQD,KAAK,GAAGD,KAAK,CAACG,IAAI,CAACJ,CAAC,CAAC,EAAG;IAC9BG,MAAM,CAACD,KAAK,CAAC,CAAC,CAAC,CAAC,GAAGA,KAAK,CAAC,CAAC,CAAC,CAACG,IAAI,CAAC,CAAC;EACpC;EACA,OAAOF,MAAM;AACf,CAAC;AAEM,IAAMG,eAAe,GAAAP,OAAA,CAAAO,eAAA,GAAG,SAAlBA,eAAeA,CAAIxC,CAAC;EAAA,OAAK,IAAAyC,eAAa,EAACzC,CAAC,EAAE;IAAE0C,QAAQ,EAAE,IAAI;IAAEC,QAAQ,EAAE;EAAM,CAAC,CAAC;AAAA;AAE3F,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIvB,EAAE,EAAEwB,SAAS,EAAK;EACtC,IAAMC,WAAW,GAAGzB,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;EAE9C,OAAOL,eAAe,CAACR,gBAAgB,CAACc,WAAW,CAAC,CAAC;AACvD,CAAC;AAED,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAI3B,EAAE,EAAE4B,GAAG,EAAEJ,SAAS,EAAK;EAC1C,IAAMK,UAAU,GAAG7B,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;EAE7C,OAAOI,GAAG,SAAM;EAEhB,OAAOC,UAAU;AACnB,CAAC;AAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAI9B,EAAE;EAAA,OAAK,UAAC4B,GAAG,EAAEJ,SAAS,EAAK;IAClD,IAAI,CAACxB,EAAE,CAAC0B,YAAY,EAAE;MACpB,OAAOE,GAAG;IACZ;IAEA,IAAMrB,KAAK,GAAGP,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;IAExC,IAAIjB,KAAK,EAAE;MACT,QAAQiB,SAAS;QACf,KAAK,OAAO;UACVI,GAAG,CAACG,KAAK,GAAGR,YAAY,CAACvB,EAAE,EAAEwB,SAAS,CAAC;UACvC;QACF,KAAK,OAAO;UACVI,GAAG,CAACI,SAAS,GAAGL,WAAW,CAAC3B,EAAE,EAAE4B,GAAG,EAAEJ,SAAS,CAAC;UAC/C;QACF;UACEI,GAAG,CAACJ,SAAS,CAAC,GAAGxB,EAAE,CAAC0B,YAAY,CAACF,SAAS,CAAC;UAC3C;MACJ;IACF;IAEA,OAAOI,GAAG;EACZ,CAAC;AAAA;AAED,IAAM3B,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC;;AAE/C;AACA;AACA;AACA;AACA;;AAEO,IAAMgC,SAAS,GAAArB,OAAA,CAAAqB,SAAA,GAAG;EACvBC,CAAC,EAAE,MAAM;EACTC,EAAE,EAAE,QAAQ;EACZC,CAAC,EAAE,WAAW;EACdvB,CAAC,EAAE,eAAe;EAClBwB,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE;AACV,CAAC;AAED,IAAMC,KAAK,GAAG;EACZC,WAAW,WAAXA,WAAWA,CAACxC,EAAE,EAAEyC,IAAI,EAAE;IACpB,IAAMC,IAAI,GAAGT,SAAS,CAACjC,EAAE,CAAC2C,OAAO,CAACC,WAAW,CAAC,CAAC,CAAC;IAChD,IAAI,CAACF,IAAI,EAAE;IACXjD,GAAG,CAAC,sBAAsB,EAAEiD,IAAI,CAAC;IACjC,OAAO;MACLG,MAAM,EAAE,MAAM;MACdpC,IAAI,EAAEiC,IAAI;MACVI,KAAK,EAAEL,IAAI,CAACzC,EAAE,CAAC+C,UAAU;IAC3B,CAAC;EACH;AACF,CAAC;AAED,IAAMC,KAAK,GAAG,CACZT,KAAK,EACL;EACE;AACJ;AACA;EACIC,WAAW,EAAE,SAAbA,WAAWA,CAAGxC,EAAE,EAAEyC,IAAI,EAAK;IACzB,IAAIzC,EAAE,CAACiD,QAAQ,KAAKnD,YAAY,EAAE;MAChC,OAAOI,SAAS;IAClB;IAEA,IAAIF,EAAE,CAACiD,QAAQ,KAAKpD,SAAS,EAAE;MAC7B,OAAO;QACLgD,MAAM,EAAE,MAAM;QACdK,MAAM,EAAE,CAAC;UAAEC,IAAI,EAAEnD,EAAE,CAACoD;QAAY,CAAC;MACnC,CAAC;IACH;IAEA,IAAM3C,IAAI,GAAGT,EAAE,CAAC2C,OAAO,CAACC,WAAW,CAAC,CAAC;IAErC,IAAMS,WAAW,GAAGtD,IAAI,CAACC,EAAE,CAAC,IAAI,CAAC,CAAC;IAElC,IAAIS,IAAI,IAAI,OAAO,IAAI4C,WAAW,CAACC,QAAQ,IAAI,EAAE,EAAE;MACjDD,WAAW,CAACC,QAAQ,GAAG,IAAI;IAC7B;IAEA,IAAMC,QAAQ,GAAGtD,UAAU,CAACuD,MAAM,CAAC1B,eAAe,CAAC9B,EAAE,CAAC,EAAAf,aAAA,KAAOoE,WAAW,CAAE,CAAC;IAC3E,IAAMR,MAAM,GAAGrC,SAAS,CAACC,IAAI,CAAC;IAE9B,IAAIT,EAAE,CAAC2C,OAAO,CAACC,WAAW,CAAC,CAAC,KAAK,MAAM,EAAE;MACvC,OAAO;QACLa,MAAM,EAAE,IAAI;QACZX,KAAK,EAAE,CAAC9C,EAAE;MACZ,CAAC;IACH;IAEA,OAAO;MACL6C,MAAM,EAANA,MAAM;MACNpC,IAAI,EAAJA,IAAI;MACJiD,IAAI,EAAE;QAAEC,OAAO,EAAA1E,aAAA,KAAOe,EAAE,CAAC2D,OAAO,CAAE;QAAE1D,UAAU,EAAAhB,aAAA,KAAOsE,QAAQ;MAAG,CAAC;MACjET,KAAK,EAAEL,IAAI,CAACzC,EAAE,CAAC+C,UAAU;IAC3B,CAAC;EACH;AACF,CAAC,CACF;;AAED;AACA;AACA;AACA;AACA,IAAMa,IAAI,GAAG,IAAIC,+BAAI,CAAC;EAAEb,KAAK,EAALA,KAAK;EAAEc,YAAY,EAAE;AAAO,CAAC,CAAC;AAE/C,IAAMtB,WAAW,GAAA5B,OAAA,CAAA4B,WAAA,GAAG,SAAdA,WAAWA,CAAI3B,CAAC;EAAA,OAAK+C,IAAI,CAACpB,WAAW,CAAC3B,CAAC,EAAE;IAAEkD,MAAM,EAAE;EAAK,CAAC,CAAC;AAAA","ignoreList":[]}