@pie-lib/mask-markup 1.33.3-next.2 → 1.33.4-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 (72) hide show
  1. package/CHANGELOG.md +6 -76
  2. package/lib/__tests__/drag-in-the-blank.test.js +129 -0
  3. package/lib/__tests__/index.test.js +42 -0
  4. package/lib/__tests__/mask.test.js +163 -0
  5. package/lib/__tests__/serialization.test.js +44 -0
  6. package/lib/__tests__/utils.js +14 -0
  7. package/lib/__tests__/with-mask.test.js +110 -0
  8. package/lib/choices/__tests__/index.test.js +101 -0
  9. package/lib/choices/choice.js +99 -204
  10. package/lib/choices/choice.js.map +1 -1
  11. package/lib/choices/index.js +22 -54
  12. package/lib/choices/index.js.map +1 -1
  13. package/lib/componentize.js +2 -6
  14. package/lib/componentize.js.map +1 -1
  15. package/lib/components/__tests__/blank.test.js +189 -0
  16. package/lib/components/__tests__/correct-input.test.js +132 -0
  17. package/lib/components/__tests__/dropdown.test.js +134 -0
  18. package/lib/components/__tests__/input.test.js +129 -0
  19. package/lib/components/blank.js +304 -362
  20. package/lib/components/blank.js.map +1 -1
  21. package/lib/components/correct-input.js +42 -66
  22. package/lib/components/correct-input.js.map +1 -1
  23. package/lib/components/dropdown.js +219 -258
  24. package/lib/components/dropdown.js.map +1 -1
  25. package/lib/components/input.js +11 -18
  26. package/lib/components/input.js.map +1 -1
  27. package/lib/constructed-response.js +39 -53
  28. package/lib/constructed-response.js.map +1 -1
  29. package/lib/customizable.js +6 -10
  30. package/lib/customizable.js.map +1 -1
  31. package/lib/drag-in-the-blank.js +141 -106
  32. package/lib/drag-in-the-blank.js.map +1 -1
  33. package/lib/index.js +1 -8
  34. package/lib/index.js.map +1 -1
  35. package/lib/inline-dropdown.js +5 -13
  36. package/lib/inline-dropdown.js.map +1 -1
  37. package/lib/mask.js +61 -119
  38. package/lib/mask.js.map +1 -1
  39. package/lib/serialization.js +9 -49
  40. package/lib/serialization.js.map +1 -1
  41. package/lib/with-mask.js +31 -59
  42. package/lib/with-mask.js.map +1 -1
  43. package/package.json +12 -20
  44. package/src/__tests__/drag-in-the-blank.test.js +66 -26
  45. package/src/__tests__/mask.test.js +147 -112
  46. package/src/__tests__/with-mask.test.js +44 -19
  47. package/src/choices/__tests__/index.test.js +38 -25
  48. package/src/choices/choice.jsx +86 -153
  49. package/src/choices/index.jsx +9 -3
  50. package/src/components/__tests__/blank.test.js +92 -156
  51. package/src/components/__tests__/correct-input.test.js +60 -19
  52. package/src/components/__tests__/dropdown.test.js +61 -19
  53. package/src/components/__tests__/input.test.js +72 -20
  54. package/src/components/blank.jsx +273 -272
  55. package/src/components/correct-input.jsx +33 -39
  56. package/src/components/dropdown.jsx +173 -161
  57. package/src/constructed-response.jsx +22 -18
  58. package/src/drag-in-the-blank.jsx +131 -42
  59. package/src/mask.jsx +38 -29
  60. package/src/with-mask.jsx +7 -4
  61. package/esm/index.css +0 -847
  62. package/esm/index.js +0 -195939
  63. package/esm/index.js.map +0 -1
  64. package/esm/package.json +0 -3
  65. package/src/__tests__/__snapshots__/drag-in-the-blank.test.js.snap +0 -316
  66. package/src/__tests__/__snapshots__/mask.test.js.snap +0 -55
  67. package/src/__tests__/__snapshots__/with-mask.test.js.snap +0 -62
  68. package/src/choices/__tests__/__snapshots__/index.test.js.snap +0 -209
  69. package/src/components/__tests__/__snapshots__/blank.test.js.snap +0 -111
  70. package/src/components/__tests__/__snapshots__/correct-input.test.js.snap +0 -64
  71. package/src/components/__tests__/__snapshots__/dropdown.test.js.snap +0 -136
  72. package/src/components/__tests__/__snapshots__/input.test.js.snap +0 -34
package/lib/mask.js CHANGED
@@ -1,131 +1,86 @@
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 _styles = require("@material-ui/core/styles");
33
-
18
+ var _styles = require("@mui/material/styles");
19
+ var _mathRendering = require("@pie-lib/math-rendering");
34
20
  var _serialization = require("./serialization");
35
-
36
- var _classnames = _interopRequireDefault(require("classnames"));
37
-
38
- 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; }
39
-
40
- 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; }
41
-
42
- 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); }; }
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
- para: {
49
- paddingTop: 2 * theme.spacing.unit,
50
- paddingBottom: 2 * theme.spacing.unit
51
- }
28
+ paddingTop: theme.spacing(2),
29
+ paddingBottom: theme.spacing(2)
52
30
  };
53
- })(function (props) {
54
- return /*#__PURE__*/_react["default"].createElement("div", {
55
- className: props.classes.para
56
- }, props.children);
57
31
  });
58
- var Spacer = (0, _styles.withStyles)(function () {
32
+ var Spacer = (0, _styles.styled)('span')(function () {
59
33
  return {
60
- spacer: {
61
- display: 'inline-block',
62
- width: '.75em'
63
- }
34
+ display: 'inline-block',
35
+ width: '.75em'
64
36
  };
65
- })(function (props) {
66
- return /*#__PURE__*/_react["default"].createElement("span", {
67
- className: props.classes.spacer
68
- });
69
37
  });
70
38
  var restrictWhitespaceTypes = ['tbody', 'tr'];
71
-
72
39
  var addText = function addText(parentNode, text) {
73
40
  var isWhitespace = text.trim() === '';
74
41
  var parentType = parentNode && parentNode.type;
75
-
76
42
  if (isWhitespace && restrictWhitespaceTypes.includes(parentType)) {
77
43
  return undefined;
78
44
  } else {
79
45
  return text;
80
46
  }
81
47
  };
82
-
83
48
  var getMark = function getMark(n) {
84
49
  var mark = n.leaves.find(function (leave) {
85
50
  return (0, _get["default"])(leave, 'marks', []).length;
86
51
  });
87
-
88
52
  if (mark) {
89
53
  return mark.marks[0];
90
54
  }
91
-
92
55
  return null;
93
56
  };
94
-
95
- var renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode, elementType) {
57
+ var _renderChildren = exports.renderChildren = function renderChildren(layout, value, onChange, rootRenderChildren, parentNode, elementType) {
96
58
  if (!value) {
97
59
  return null;
98
60
  }
99
-
100
61
  var children = [];
101
62
  (layout.nodes || []).forEach(function (n, index) {
102
63
  var key = n.type ? "".concat(n.type, "-").concat(index) : "".concat(index);
103
-
104
64
  if (n.isMath) {
105
- children.push( /*#__PURE__*/_react["default"].createElement("span", {
65
+ children.push(/*#__PURE__*/_react["default"].createElement("span", {
106
66
  dangerouslySetInnerHTML: {
107
67
  __html: "<math displaystyle=\"true\">".concat(n.nodes[0].innerHTML, "</math>")
108
68
  }
109
69
  }));
110
70
  return children;
111
71
  }
112
-
113
72
  if (rootRenderChildren) {
114
73
  var c = rootRenderChildren(n, value, onChange);
115
-
116
74
  if (c) {
117
75
  children.push(c);
118
-
119
76
  if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== 'td' && elementType === 'drag-in-the-blank') {
120
- children.push( /*#__PURE__*/_react["default"].createElement(Spacer, {
77
+ children.push(/*#__PURE__*/_react["default"].createElement(Spacer, {
121
78
  key: "spacer-".concat(index)
122
79
  }));
123
80
  }
124
-
125
81
  return;
126
82
  }
127
83
  }
128
-
129
84
  if (n.object === 'text') {
130
85
  var content = n.leaves.reduce(function (acc, l) {
131
86
  var t = l.text;
@@ -133,14 +88,12 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
133
88
  return extraText ? acc + extraText : acc;
134
89
  }, '');
135
90
  var mark = getMark(n);
136
-
137
91
  if (mark) {
138
92
  var markKey;
139
-
140
93
  for (markKey in _serialization.MARK_TAGS) {
141
94
  if (_serialization.MARK_TAGS[markKey] === mark.type) {
142
95
  var Tag = markKey;
143
- children.push( /*#__PURE__*/_react["default"].createElement(Tag, {
96
+ children.push(/*#__PURE__*/_react["default"].createElement(Tag, {
144
97
  key: key
145
98
  }, content));
146
99
  break;
@@ -148,29 +101,26 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
148
101
  }
149
102
  } else if (content.length > 0) {
150
103
  children.push(content);
151
-
152
104
  if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.type) !== 'td' && elementType === 'drag-in-the-blank') {
153
- children.push( /*#__PURE__*/_react["default"].createElement(Spacer, {
105
+ children.push(/*#__PURE__*/_react["default"].createElement(Spacer, {
154
106
  key: "spacer-".concat(index)
155
107
  }));
156
108
  }
157
109
  }
158
110
  } else {
159
- var subNodes = renderChildren(n, value, onChange, rootRenderChildren, n, elementType);
160
-
111
+ var subNodes = _renderChildren(n, value, onChange, rootRenderChildren, n, elementType);
161
112
  if (n.type === 'p' || n.type === 'paragraph') {
162
- children.push( /*#__PURE__*/_react["default"].createElement(Paragraph, {
113
+ children.push(/*#__PURE__*/_react["default"].createElement(Paragraph, {
163
114
  key: key
164
115
  }, subNodes));
165
116
  } else {
166
117
  var _Tag = n.type;
167
-
168
118
  if (n.nodes && n.nodes.length > 0) {
169
- children.push( /*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
119
+ children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
170
120
  key: key
171
121
  }, n.data.attributes), subNodes));
172
122
  } else {
173
- children.push( /*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
123
+ children.push(/*#__PURE__*/_react["default"].createElement(_Tag, (0, _extends2["default"])({
174
124
  key: key
175
125
  }, n.data.attributes)));
176
126
  }
@@ -179,76 +129,68 @@ var renderChildren = function renderChildren(layout, value, onChange, rootRender
179
129
  });
180
130
  return children;
181
131
  };
182
-
183
- exports.renderChildren = renderChildren;
184
- var MaskContainer = (0, _styles.withStyles)(function () {
132
+ var MaskContainer = (0, _styles.styled)('div')(function () {
185
133
  return {
186
- main: {
187
- display: 'initial'
134
+ display: 'initial',
135
+ '&:not(.MathJax) table': {
136
+ borderCollapse: 'collapse'
188
137
  },
189
- tableStyle: {
190
- '&:not(.MathJax) table': {
191
- borderCollapse: 'collapse'
192
- },
193
- // align table content to left as per STAR requirement PD-3687
194
- '&:not(.MathJax) table td, &:not(.MathJax) table th': {
195
- padding: '8px 12px',
196
- textAlign: 'left'
197
- }
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'
198
142
  }
199
143
  };
200
- })(function (props) {
201
- return /*#__PURE__*/_react["default"].createElement("div", {
202
- className: (0, _classnames["default"])(props.classes.main, props.classes.tableStyle)
203
- }, props.children);
204
144
  });
145
+
205
146
  /**
206
147
  * Renders a layout that uses the slate.js Value model structure.
207
148
  */
208
-
209
- var Mask = /*#__PURE__*/function (_React$Component) {
210
- (0, _inherits2["default"])(Mask, _React$Component);
211
-
212
- var _super = _createSuper(Mask);
213
-
214
- function Mask() {
149
+ var Mask = exports["default"] = /*#__PURE__*/function (_React$Component) {
150
+ function Mask(props) {
215
151
  var _this;
216
-
217
152
  (0, _classCallCheck2["default"])(this, Mask);
218
-
219
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
220
- args[_key] = arguments[_key];
221
- }
222
-
223
- _this = _super.call.apply(_super, [this].concat(args));
224
- (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) {
225
155
  var data = _objectSpread(_objectSpread({}, _this.props.value), {}, (0, _defineProperty2["default"])({}, id, value));
226
-
227
156
  _this.props.onChange(data);
228
157
  });
158
+ _this.internalContainerRef = /*#__PURE__*/_react["default"].createRef();
229
159
  return _this;
230
160
  }
231
-
232
- (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
+ }, {
233
171
  key: "render",
234
172
  value: function render() {
235
173
  var _this$props = this.props,
236
- value = _this$props.value,
237
- layout = _this$props.layout,
238
- elementType = _this$props.elementType;
239
- var children = renderChildren(layout, value, this.handleChange, this.props.renderChildren, null, elementType);
240
- return /*#__PURE__*/_react["default"].createElement(MaskContainer, null, children);
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);
241
183
  }
242
184
  }]);
243
- return Mask;
244
185
  }(_react["default"].Component);
245
-
246
- exports["default"] = Mask;
247
186
  (0, _defineProperty2["default"])(Mask, "propTypes", {
248
187
  renderChildren: _propTypes["default"].func,
249
188
  layout: _propTypes["default"].object,
250
189
  value: _propTypes["default"].object,
251
190
  onChange: _propTypes["default"].func,
252
- elementType: _propTypes["default"].string
191
+ elementType: _propTypes["default"].string,
192
+ containerRef: _propTypes["default"].oneOfType([_propTypes["default"].func, _propTypes["default"].shape({
193
+ current: _propTypes["default"].instanceOf(Element)
194
+ })])
253
195
  });
254
- //# 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,"sources":["../src/mask.jsx"],"names":["Paragraph","theme","para","paddingTop","spacing","unit","paddingBottom","props","classes","children","Spacer","spacer","display","width","restrictWhitespaceTypes","addText","parentNode","text","isWhitespace","trim","parentType","type","includes","undefined","getMark","n","mark","leaves","find","leave","length","marks","renderChildren","layout","value","onChange","rootRenderChildren","elementType","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","tableStyle","borderCollapse","padding","textAlign","Mask","id","handleChange","React","Component","PropTypes","func","string"],"mappings":"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","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';\nimport cx from 'classnames';\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 Spacer = withStyles(() => ({\n spacer: {\n display: 'inline-block',\n width: '.75em',\n },\n}))((props) => <span className={props.classes.spacer} />);\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 = withStyles(() => ({\n main: {\n display: 'initial',\n },\n tableStyle: {\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}))((props) => <div className={cx(props.classes.main, props.classes.tableStyle)}>{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 elementType: PropTypes.string,\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 } = this.props;\n const children = renderChildren(layout, value, this.handleChange, this.props.renderChildren, null, elementType);\n\n return <MaskContainer>{children}</MaskContainer>;\n }\n}\n"],"file":"mask.js"}
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":[]}
@@ -1,126 +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
9
  var _slateHtmlSerializer = _interopRequireDefault(require("slate-html-serializer"));
13
-
14
10
  var _toStyle = require("to-style");
15
-
16
11
  var _debug = _interopRequireDefault(require("debug"));
17
-
18
- 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; }
19
-
20
- 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; }
21
-
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; }
22
14
  var log = (0, _debug["default"])('@pie-lib:mask-markup:serialization');
23
15
  var INLINE = ['span'];
24
16
  var MARK = ['em', 'strong', 'u'];
25
17
  var TEXT_NODE = 3;
26
18
  var COMMENT_NODE = 8;
27
-
28
19
  var attr = function attr(el) {
29
20
  if (!el.attributes || el.attributes.length <= 0) {
30
21
  return undefined;
31
22
  }
32
-
33
23
  var out = {};
34
24
  var i;
35
-
36
25
  for (i = 0; i < el.attributes.length; i++) {
37
26
  var a = el.attributes[i];
38
27
  out[a.name] = a.value;
39
28
  }
40
-
41
29
  return out;
42
30
  };
43
-
44
31
  var getObject = function getObject(type) {
45
32
  if (INLINE.includes(type)) {
46
33
  return 'inline';
47
34
  } else if (MARK.includes(type)) {
48
35
  return 'mark';
49
36
  }
50
-
51
37
  return 'block';
52
38
  };
53
-
54
- var parseStyleString = function parseStyleString(s) {
39
+ var parseStyleString = exports.parseStyleString = function parseStyleString(s) {
55
40
  var regex = /([\w-]*)\s*:\s*([^;]*)/g;
56
41
  var match;
57
42
  var result = {};
58
-
59
43
  while (match = regex.exec(s)) {
60
44
  result[match[1]] = match[2].trim();
61
45
  }
62
-
63
46
  return result;
64
47
  };
65
-
66
- exports.parseStyleString = parseStyleString;
67
-
68
- var reactAttributes = function reactAttributes(o) {
48
+ var reactAttributes = exports.reactAttributes = function reactAttributes(o) {
69
49
  return (0, _toStyle.object)(o, {
70
50
  camelize: true,
71
51
  addUnits: false
72
52
  });
73
53
  };
74
-
75
- exports.reactAttributes = reactAttributes;
76
-
77
54
  var handleStyles = function handleStyles(el, attribute) {
78
55
  var styleString = el.getAttribute(attribute);
79
56
  return reactAttributes(parseStyleString(styleString));
80
57
  };
81
-
82
58
  var handleClass = function handleClass(el, acc, attribute) {
83
59
  var classNames = el.getAttribute(attribute);
84
60
  delete acc["class"];
85
61
  return classNames;
86
62
  };
87
-
88
63
  var attributesToMap = function attributesToMap(el) {
89
64
  return function (acc, attribute) {
90
65
  if (!el.getAttribute) {
91
66
  return acc;
92
67
  }
93
-
94
68
  var value = el.getAttribute(attribute);
95
-
96
69
  if (value) {
97
70
  switch (attribute) {
98
71
  case 'style':
99
72
  acc.style = handleStyles(el, attribute);
100
73
  break;
101
-
102
74
  case 'class':
103
75
  acc.className = handleClass(el, acc, attribute);
104
76
  break;
105
-
106
77
  default:
107
78
  acc[attribute] = el.getAttribute(attribute);
108
79
  break;
109
80
  }
110
81
  }
111
-
112
82
  return acc;
113
83
  };
114
84
  };
115
-
116
85
  var attributes = ['border', 'class', 'style'];
86
+
117
87
  /**
118
88
  * Tags to marks.
119
89
  *
120
90
  * @type {Object}
121
91
  */
122
92
 
123
- var MARK_TAGS = {
93
+ var MARK_TAGS = exports.MARK_TAGS = {
124
94
  b: 'bold',
125
95
  em: 'italic',
126
96
  u: 'underline',
@@ -128,7 +98,6 @@ var MARK_TAGS = {
128
98
  code: 'code',
129
99
  strong: 'strong'
130
100
  };
131
- exports.MARK_TAGS = MARK_TAGS;
132
101
  var marks = {
133
102
  deserialize: function deserialize(el, next) {
134
103
  var mark = MARK_TAGS[el.tagName.toLowerCase()];
@@ -149,7 +118,6 @@ var rules = [marks, {
149
118
  if (el.nodeType === COMMENT_NODE) {
150
119
  return undefined;
151
120
  }
152
-
153
121
  if (el.nodeType === TEXT_NODE) {
154
122
  return {
155
123
  object: 'text',
@@ -158,24 +126,19 @@ var rules = [marks, {
158
126
  }]
159
127
  };
160
128
  }
161
-
162
129
  var type = el.tagName.toLowerCase();
163
130
  var normalAttrs = attr(el) || {};
164
-
165
131
  if (type == 'audio' && normalAttrs.controls == '') {
166
132
  normalAttrs.controls = true;
167
133
  }
168
-
169
134
  var allAttrs = attributes.reduce(attributesToMap(el), _objectSpread({}, normalAttrs));
170
135
  var object = getObject(type);
171
-
172
136
  if (el.tagName.toLowerCase() === 'math') {
173
137
  return {
174
138
  isMath: true,
175
139
  nodes: [el]
176
140
  };
177
141
  }
178
-
179
142
  return {
180
143
  object: object,
181
144
  type: type,
@@ -187,21 +150,18 @@ var rules = [marks, {
187
150
  };
188
151
  }
189
152
  }];
153
+
190
154
  /**
191
155
  * Create a new serializer instance with our `rules` from above.
192
156
  * Having a default div block will just put every div on it's own line, which is not ideal.
193
157
  */
194
-
195
158
  var html = new _slateHtmlSerializer["default"]({
196
159
  rules: rules,
197
160
  defaultBlock: 'span'
198
161
  });
199
-
200
- var deserialize = function deserialize(s) {
162
+ var deserialize = exports.deserialize = function deserialize(s) {
201
163
  return html.deserialize(s, {
202
164
  toJSON: true
203
165
  });
204
166
  };
205
-
206
- exports.deserialize = deserialize;
207
- //# sourceMappingURL=serialization.js.map
167
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc2xhdGVIdG1sU2VyaWFsaXplciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3RvU3R5bGUiLCJfZGVidWciLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsImxvZyIsImRlYnVnIiwiSU5MSU5FIiwiTUFSSyIsIlRFWFRfTk9ERSIsIkNPTU1FTlRfTk9ERSIsImF0dHIiLCJlbCIsImF0dHJpYnV0ZXMiLCJ1bmRlZmluZWQiLCJvdXQiLCJpIiwiYSIsIm5hbWUiLCJ2YWx1ZSIsImdldE9iamVjdCIsInR5cGUiLCJpbmNsdWRlcyIsInBhcnNlU3R5bGVTdHJpbmciLCJleHBvcnRzIiwicyIsInJlZ2V4IiwibWF0Y2giLCJyZXN1bHQiLCJleGVjIiwidHJpbSIsInJlYWN0QXR0cmlidXRlcyIsInRvU3R5bGVPYmplY3QiLCJjYW1lbGl6ZSIsImFkZFVuaXRzIiwiaGFuZGxlU3R5bGVzIiwiYXR0cmlidXRlIiwic3R5bGVTdHJpbmciLCJnZXRBdHRyaWJ1dGUiLCJoYW5kbGVDbGFzcyIsImFjYyIsImNsYXNzTmFtZXMiLCJhdHRyaWJ1dGVzVG9NYXAiLCJzdHlsZSIsImNsYXNzTmFtZSIsIk1BUktfVEFHUyIsImIiLCJlbSIsInUiLCJjb2RlIiwic3Ryb25nIiwibWFya3MiLCJkZXNlcmlhbGl6ZSIsIm5leHQiLCJtYXJrIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwib2JqZWN0Iiwibm9kZXMiLCJjaGlsZE5vZGVzIiwicnVsZXMiLCJub2RlVHlwZSIsImxlYXZlcyIsInRleHQiLCJ0ZXh0Q29udGVudCIsIm5vcm1hbEF0dHJzIiwiY29udHJvbHMiLCJhbGxBdHRycyIsInJlZHVjZSIsImlzTWF0aCIsImRhdGEiLCJkYXRhc2V0IiwiaHRtbCIsIkh0bWwiLCJkZWZhdWx0QmxvY2siLCJ0b0pTT04iXSwic291cmNlcyI6WyIuLi9zcmMvc2VyaWFsaXphdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgSHRtbCBmcm9tICdzbGF0ZS1odG1sLXNlcmlhbGl6ZXInO1xuaW1wb3J0IHsgb2JqZWN0IGFzIHRvU3R5bGVPYmplY3QgfSBmcm9tICd0by1zdHlsZSc7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuXG5jb25zdCBsb2cgPSBkZWJ1ZygnQHBpZS1saWI6bWFzay1tYXJrdXA6c2VyaWFsaXphdGlvbicpO1xuXG5jb25zdCBJTkxJTkUgPSBbJ3NwYW4nXTtcbmNvbnN0IE1BUksgPSBbJ2VtJywgJ3N0cm9uZycsICd1J107XG5jb25zdCBURVhUX05PREUgPSAzO1xuY29uc3QgQ09NTUVOVF9OT0RFID0gODtcblxuY29uc3QgYXR0ciA9IChlbCkgPT4ge1xuICBpZiAoIWVsLmF0dHJpYnV0ZXMgfHwgZWwuYXR0cmlidXRlcy5sZW5ndGggPD0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBvdXQgPSB7fTtcbiAgbGV0IGk7XG5cbiAgZm9yIChpID0gMDsgaSA8IGVsLmF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBhID0gZWwuYXR0cmlidXRlc1tpXTtcblxuICAgIG91dFthLm5hbWVdID0gYS52YWx1ZTtcbiAgfVxuXG4gIHJldHVybiBvdXQ7XG59O1xuXG5jb25zdCBnZXRPYmplY3QgPSAodHlwZSkgPT4ge1xuICBpZiAoSU5MSU5FLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgcmV0dXJuICdpbmxpbmUnO1xuICB9IGVsc2UgaWYgKE1BUksuaW5jbHVkZXModHlwZSkpIHtcbiAgICByZXR1cm4gJ21hcmsnO1xuICB9XG4gIHJldHVybiAnYmxvY2snO1xufTtcblxuZXhwb3J0IGNvbnN0IHBhcnNlU3R5bGVTdHJpbmcgPSAocykgPT4ge1xuICBjb25zdCByZWdleCA9IC8oW1xcdy1dKilcXHMqOlxccyooW147XSopL2c7XG4gIGxldCBtYXRjaDtcbiAgY29uc3QgcmVzdWx0ID0ge307XG4gIHdoaWxlICgobWF0Y2ggPSByZWdleC5leGVjKHMpKSkge1xuICAgIHJlc3VsdFttYXRjaFsxXV0gPSBtYXRjaFsyXS50cmltKCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbmV4cG9ydCBjb25zdCByZWFjdEF0dHJpYnV0ZXMgPSAobykgPT4gdG9TdHlsZU9iamVjdChvLCB7IGNhbWVsaXplOiB0cnVlLCBhZGRVbml0czogZmFsc2UgfSk7XG5cbmNvbnN0IGhhbmRsZVN0eWxlcyA9IChlbCwgYXR0cmlidXRlKSA9PiB7XG4gIGNvbnN0IHN0eWxlU3RyaW5nID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cbiAgcmV0dXJuIHJlYWN0QXR0cmlidXRlcyhwYXJzZVN0eWxlU3RyaW5nKHN0eWxlU3RyaW5nKSk7XG59O1xuXG5jb25zdCBoYW5kbGVDbGFzcyA9IChlbCwgYWNjLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3QgY2xhc3NOYW1lcyA9IGVsLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXG4gIGRlbGV0ZSBhY2MuY2xhc3M7XG5cbiAgcmV0dXJuIGNsYXNzTmFtZXM7XG59O1xuXG5jb25zdCBhdHRyaWJ1dGVzVG9NYXAgPSAoZWwpID0+IChhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBpZiAoIWVsLmdldEF0dHJpYnV0ZSkge1xuICAgIHJldHVybiBhY2M7XG4gIH1cblxuICBjb25zdCB2YWx1ZSA9IGVsLmdldEF0dHJpYnV0ZShhdHRyaWJ1dGUpO1xuXG4gIGlmICh2YWx1ZSkge1xuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XG4gICAgICBjYXNlICdzdHlsZSc6XG4gICAgICAgIGFjYy5zdHlsZSA9IGhhbmRsZVN0eWxlcyhlbCwgYXR0cmlidXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjbGFzcyc6XG4gICAgICAgIGFjYy5jbGFzc05hbWUgPSBoYW5kbGVDbGFzcyhlbCwgYWNjLCBhdHRyaWJ1dGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGFjY1thdHRyaWJ1dGVdID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhY2M7XG59O1xuXG5jb25zdCBhdHRyaWJ1dGVzID0gWydib3JkZXInLCAnY2xhc3MnLCAnc3R5bGUnXTtcblxuLyoqXG4gKiBUYWdzIHRvIG1hcmtzLlxuICpcbiAqIEB0eXBlIHtPYmplY3R9XG4gKi9cblxuZXhwb3J0IGNvbnN0IE1BUktfVEFHUyA9IHtcbiAgYjogJ2JvbGQnLFxuICBlbTogJ2l0YWxpYycsXG4gIHU6ICd1bmRlcmxpbmUnLFxuICBzOiAnc3RyaWtldGhyb3VnaCcsXG4gIGNvZGU6ICdjb2RlJyxcbiAgc3Ryb25nOiAnc3Ryb25nJyxcbn07XG5cbmNvbnN0IG1hcmtzID0ge1xuICBkZXNlcmlhbGl6ZShlbCwgbmV4dCkge1xuICAgIGNvbnN0IG1hcmsgPSBNQVJLX1RBR1NbZWwudGFnTmFtZS50b0xvd2VyQ2FzZSgpXTtcbiAgICBpZiAoIW1hcmspIHJldHVybjtcbiAgICBsb2coJ1tkZXNlcmlhbGl6ZV0gbWFyazogJywgbWFyayk7XG4gICAgcmV0dXJuIHtcbiAgICAgIG9iamVjdDogJ21hcmsnLFxuICAgICAgdHlwZTogbWFyayxcbiAgICAgIG5vZGVzOiBuZXh0KGVsLmNoaWxkTm9kZXMpLFxuICAgIH07XG4gIH0sXG59O1xuXG5jb25zdCBydWxlcyA9IFtcbiAgbWFya3MsXG4gIHtcbiAgICAvKipcbiAgICAgKiBkZXNlcmlhbGl6ZSBldmVyeXRoaW5nLCB3ZSdyZSBub3QgZnVzc3kgYWJvdXQgdGhlIGRvbSBzdHJ1Y3R1cmUgZm9yIG5vdy5cbiAgICAgKi9cbiAgICBkZXNlcmlhbGl6ZTogKGVsLCBuZXh0KSA9PiB7XG4gICAgICBpZiAoZWwubm9kZVR5cGUgPT09IENPTU1FTlRfTk9ERSkge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoZWwubm9kZVR5cGUgPT09IFRFWFRfTk9ERSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG9iamVjdDogJ3RleHQnLFxuICAgICAgICAgIGxlYXZlczogW3sgdGV4dDogZWwudGV4dENvbnRlbnQgfV0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGUgPSBlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgIGNvbnN0IG5vcm1hbEF0dHJzID0gYXR0cihlbCkgfHwge307XG5cbiAgICAgIGlmICh0eXBlID09ICdhdWRpbycgJiYgbm9ybWFsQXR0cnMuY29udHJvbHMgPT0gJycpIHtcbiAgICAgICAgbm9ybWFsQXR0cnMuY29udHJvbHMgPSB0cnVlO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBhbGxBdHRycyA9IGF0dHJpYnV0ZXMucmVkdWNlKGF0dHJpYnV0ZXNUb01hcChlbCksIHsgLi4ubm9ybWFsQXR0cnMgfSk7XG4gICAgICBjb25zdCBvYmplY3QgPSBnZXRPYmplY3QodHlwZSk7XG5cbiAgICAgIGlmIChlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCkgPT09ICdtYXRoJykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGlzTWF0aDogdHJ1ZSxcbiAgICAgICAgICBub2RlczogW2VsXSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgb2JqZWN0LFxuICAgICAgICB0eXBlLFxuICAgICAgICBkYXRhOiB7IGRhdGFzZXQ6IHsgLi4uZWwuZGF0YXNldCB9LCBhdHRyaWJ1dGVzOiB7IC4uLmFsbEF0dHJzIH0gfSxcbiAgICAgICAgbm9kZXM6IG5leHQoZWwuY2hpbGROb2RlcyksXG4gICAgICB9O1xuICAgIH0sXG4gIH0sXG5dO1xuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBzZXJpYWxpemVyIGluc3RhbmNlIHdpdGggb3VyIGBydWxlc2AgZnJvbSBhYm92ZS5cbiAqIEhhdmluZyBhIGRlZmF1bHQgZGl2IGJsb2NrIHdpbGwganVzdCBwdXQgZXZlcnkgZGl2IG9uIGl0J3Mgb3duIGxpbmUsIHdoaWNoIGlzIG5vdCBpZGVhbC5cbiAqL1xuY29uc3QgaHRtbCA9IG5ldyBIdG1sKHsgcnVsZXMsIGRlZmF1bHRCbG9jazogJ3NwYW4nIH0pO1xuXG5leHBvcnQgY29uc3QgZGVzZXJpYWxpemUgPSAocykgPT4gaHRtbC5kZXNlcmlhbGl6ZShzLCB7IHRvSlNPTjogdHJ1ZSB9KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxvQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBCLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIsQ0FBQSxFQUFBQyxDQUFBLEVBQUFRLFVBQUEsT0FBQVAsQ0FBQSxDQUFBUSxJQUFBLENBQUFDLEtBQUEsQ0FBQVQsQ0FBQSxFQUFBSSxDQUFBLFlBQUFKLENBQUE7QUFBQSxTQUFBVSxjQUFBWixDQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBWSxTQUFBLENBQUFDLE1B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LElBQUksRUFBRW5ELEVBQUUsQ0FBQ29EO1FBQVksQ0FBQztNQUNuQyxDQUFDO0lBQ0g7SUFFQSxJQUFNM0MsSUFBSSxHQUFHVCxFQUFFLENBQUMyQyxPQUFPLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0lBRXJDLElBQU1TLFdBQVcsR0FBR3RELElBQUksQ0FBQ0MsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWxDLElBQUlTLElBQUksSUFBSSxPQUFPLElBQUk0QyxXQUFXLENBQUNDLFFBQVEsSUFBSSxFQUFFLEVBQUU7TUFDakRELFdBQVcsQ0FBQ0MsUUFBUSxHQUFHLElBQUk7SUFDN0I7SUFFQSxJQUFNQyxRQUFRLEdBQUd0RCxVQUFVLENBQUN1RCxNQUFNLENBQUMxQixlQUFlLENBQUM5QixFQUFFLENBQUMsRUFBQWYsYUFBQSxLQUFPb0UsV0FBVyxDQUFFLENBQUM7SUFDM0UsSUFBTVIsTUFBTSxHQUFHckMsU0FBUyxDQUFDQyxJQUFJLENBQUM7SUFFOUIsSUFBSVQsRUFBRSxDQUFDMkMsT0FBTyxDQUFDQyxXQUFXLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRTtNQUN2QyxPQUFPO1FBQ0xhLE1BQU0sRUFBRSxJQUFJO1FBQ1pYLEtBQUssRUFBRSxDQUFDOUMsRUFBRTtNQUNaLENBQUM7SUFDSDtJQUVBLE9BQU87TUFDTDZDLE1BQU0sRUFBTkEsTUFBTTtNQUNOcEMsSUFBSSxFQUFKQSxJQUFJO01BQ0ppRCxJQUFJLEVBQUU7UUFBRUMsT0FBTyxFQUFBMUUsYUFBQSxLQUFPZSxFQUFFLENBQUMyRCxPQUFPLENBQUU7UUFBRTFELFVBQVUsRUFBQWhCLGFBQUEsS0FBT3NFLFFBQVE7TUFBRyxDQUFDO01BQ2pFVCxLQUFLLEVBQUVMLElBQUksQ0FBQ3pDLEVBQUUsQ0FBQytDLFVBQVU7SUFDM0IsQ0FBQztFQUNIO0FBQ0YsQ0FBQyxDQUNGOztBQUVEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTWEsSUFBSSxHQUFHLElBQUlDLCtCQUFJLENBQUM7RUFBRWIsS0FBSyxFQUFMQSxLQUFLO0VBQUVjLFlBQVksRUFBRTtBQUFPLENBQUMsQ0FBQztBQUUvQyxJQUFNdEIsV0FBVyxHQUFBNUIsT0FBQSxDQUFBNEIsV0FBQSxHQUFHLFNBQWRBLFdBQVdBLENBQUkzQixDQUFDO0VBQUEsT0FBSytDLElBQUksQ0FBQ3BCLFdBQVcsQ0FBQzNCLENBQUMsRUFBRTtJQUFFa0QsTUFBTSxFQUFFO0VBQUssQ0FBQyxDQUFDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=