@pie-lib/mask-markup 1.15.0-beta.0 → 1.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +1 -871
- package/CHANGELOG.md +115 -20
- package/package.json +8 -5
- package/src/choices/choice.jsx +1 -1
- package/src/components/__tests__/__snapshots__/dropdown.test.js.snap +15 -12
- package/src/components/__tests__/blank.test.js +1 -1
- package/src/components/blank.jsx +1 -1
- package/src/components/correct-input.jsx +1 -1
- package/src/components/dropdown.jsx +118 -23
- package/src/constructed-response.jsx +1 -1
- package/src/serialization.js +1 -1
- package/lib/__tests__/drag-in-the-blank.test.js +0 -71
- package/lib/__tests__/index.test.js +0 -50
- package/lib/__tests__/mask.test.js +0 -149
- package/lib/__tests__/serialization.test.js +0 -45
- package/lib/__tests__/utils.js +0 -17
- package/lib/__tests__/with-mask.test.js +0 -65
- package/lib/choices/__tests__/index.test.js +0 -85
- package/lib/choices/choice.js +0 -221
- package/lib/choices/index.js +0 -135
- package/lib/componentize.js +0 -25
- package/lib/components/__tests__/blank.test.js +0 -234
- package/lib/components/__tests__/correct-input.test.js +0 -63
- package/lib/components/__tests__/dropdown.test.js +0 -70
- package/lib/components/__tests__/input.test.js +0 -64
- package/lib/components/blank.js +0 -415
- package/lib/components/correct-input.js +0 -118
- package/lib/components/dropdown.js +0 -349
- package/lib/components/input.js +0 -57
- package/lib/constructed-response.js +0 -116
- package/lib/customizable.js +0 -48
- package/lib/drag-in-the-blank.js +0 -217
- package/lib/index.js +0 -62
- package/lib/inline-dropdown.js +0 -48
- package/lib/mask.js +0 -254
- package/lib/serialization.js +0 -207
- package/lib/with-mask.js +0 -125
package/lib/serialization.js
DELETED
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.reactAttributes = exports.parseStyleString = exports.deserialize = exports.MARK_TAGS = void 0;
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _slateHtmlSerializer = _interopRequireDefault(require("slate-html-serializer"));
|
|
13
|
-
|
|
14
|
-
var _toStyle = require("to-style");
|
|
15
|
-
|
|
16
|
-
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
|
-
|
|
22
|
-
var log = (0, _debug["default"])('@pie-lib:mask-markup:serialization');
|
|
23
|
-
var INLINE = ['span'];
|
|
24
|
-
var MARK = ['em', 'strong', 'u'];
|
|
25
|
-
var TEXT_NODE = 3;
|
|
26
|
-
var COMMENT_NODE = 8;
|
|
27
|
-
|
|
28
|
-
var attr = function attr(el) {
|
|
29
|
-
if (!el.attributes || el.attributes.length <= 0) {
|
|
30
|
-
return undefined;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
var out = {};
|
|
34
|
-
var i;
|
|
35
|
-
|
|
36
|
-
for (i = 0; i < el.attributes.length; i++) {
|
|
37
|
-
var a = el.attributes[i];
|
|
38
|
-
out[a.name] = a.value;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return out;
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
var getObject = function getObject(type) {
|
|
45
|
-
if (INLINE.includes(type)) {
|
|
46
|
-
return 'inline';
|
|
47
|
-
} else if (MARK.includes(type)) {
|
|
48
|
-
return 'mark';
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return 'block';
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
var parseStyleString = function parseStyleString(s) {
|
|
55
|
-
var regex = /([\w-]*)\s*:\s*([^;]*)/g;
|
|
56
|
-
var match;
|
|
57
|
-
var result = {};
|
|
58
|
-
|
|
59
|
-
while (match = regex.exec(s)) {
|
|
60
|
-
result[match[1]] = match[2].trim();
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return result;
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
exports.parseStyleString = parseStyleString;
|
|
67
|
-
|
|
68
|
-
var reactAttributes = function reactAttributes(o) {
|
|
69
|
-
return (0, _toStyle.object)(o, {
|
|
70
|
-
camelize: true,
|
|
71
|
-
addUnits: false
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
exports.reactAttributes = reactAttributes;
|
|
76
|
-
|
|
77
|
-
var handleStyles = function handleStyles(el, attribute) {
|
|
78
|
-
var styleString = el.getAttribute(attribute);
|
|
79
|
-
return reactAttributes(parseStyleString(styleString));
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
var handleClass = function handleClass(el, acc, attribute) {
|
|
83
|
-
var classNames = el.getAttribute(attribute);
|
|
84
|
-
delete acc["class"];
|
|
85
|
-
return classNames;
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
var attributesToMap = function attributesToMap(el) {
|
|
89
|
-
return function (acc, attribute) {
|
|
90
|
-
if (!el.getAttribute) {
|
|
91
|
-
return acc;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
var value = el.getAttribute(attribute);
|
|
95
|
-
|
|
96
|
-
if (value) {
|
|
97
|
-
switch (attribute) {
|
|
98
|
-
case 'style':
|
|
99
|
-
acc.style = handleStyles(el, attribute);
|
|
100
|
-
break;
|
|
101
|
-
|
|
102
|
-
case 'class':
|
|
103
|
-
acc.className = handleClass(el, acc, attribute);
|
|
104
|
-
break;
|
|
105
|
-
|
|
106
|
-
default:
|
|
107
|
-
acc[attribute] = el.getAttribute(attribute);
|
|
108
|
-
break;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return acc;
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
|
|
116
|
-
var attributes = ['border', 'class', 'style'];
|
|
117
|
-
/**
|
|
118
|
-
* Tags to marks.
|
|
119
|
-
*
|
|
120
|
-
* @type {Object}
|
|
121
|
-
*/
|
|
122
|
-
|
|
123
|
-
var MARK_TAGS = {
|
|
124
|
-
b: 'bold',
|
|
125
|
-
em: 'italic',
|
|
126
|
-
u: 'underline',
|
|
127
|
-
s: 'strikethrough',
|
|
128
|
-
code: 'code',
|
|
129
|
-
strong: 'strong'
|
|
130
|
-
};
|
|
131
|
-
exports.MARK_TAGS = MARK_TAGS;
|
|
132
|
-
var marks = {
|
|
133
|
-
deserialize: function deserialize(el, next) {
|
|
134
|
-
var mark = MARK_TAGS[el.tagName.toLowerCase()];
|
|
135
|
-
if (!mark) return;
|
|
136
|
-
log('[deserialize] mark: ', mark);
|
|
137
|
-
return {
|
|
138
|
-
object: 'mark',
|
|
139
|
-
type: mark,
|
|
140
|
-
nodes: next(el.childNodes)
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
};
|
|
144
|
-
var rules = [marks, {
|
|
145
|
-
/**
|
|
146
|
-
* deserialize everything, we're not fussy about the dom structure for now.
|
|
147
|
-
*/
|
|
148
|
-
deserialize: function deserialize(el, next) {
|
|
149
|
-
if (el.nodeType === COMMENT_NODE) {
|
|
150
|
-
return undefined;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
if (el.nodeType === TEXT_NODE) {
|
|
154
|
-
return {
|
|
155
|
-
object: 'text',
|
|
156
|
-
leaves: [{
|
|
157
|
-
text: el.textContent
|
|
158
|
-
}]
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
var type = el.tagName.toLowerCase();
|
|
163
|
-
var normalAttrs = attr(el) || {};
|
|
164
|
-
|
|
165
|
-
if (type == 'audio' && normalAttrs.controls == '') {
|
|
166
|
-
normalAttrs.controls = true;
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
var allAttrs = attributes.reduce(attributesToMap(el), _objectSpread({}, normalAttrs));
|
|
170
|
-
var object = getObject(type);
|
|
171
|
-
|
|
172
|
-
if (el.tagName.toLowerCase() === 'math') {
|
|
173
|
-
return {
|
|
174
|
-
isMath: true,
|
|
175
|
-
nodes: [el]
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return {
|
|
180
|
-
object: object,
|
|
181
|
-
type: type,
|
|
182
|
-
data: {
|
|
183
|
-
dataset: _objectSpread({}, el.dataset),
|
|
184
|
-
attributes: _objectSpread({}, allAttrs)
|
|
185
|
-
},
|
|
186
|
-
nodes: next(el.childNodes)
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
|
-
}];
|
|
190
|
-
/**
|
|
191
|
-
* Create a new serializer instance with our `rules` from above.
|
|
192
|
-
* Having a default div block will just put every div on it's own line, which is not ideal.
|
|
193
|
-
*/
|
|
194
|
-
|
|
195
|
-
var html = new _slateHtmlSerializer["default"]({
|
|
196
|
-
rules: rules,
|
|
197
|
-
defaultBlock: 'span'
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
var deserialize = function deserialize(s) {
|
|
201
|
-
return html.deserialize(s, {
|
|
202
|
-
toJSON: true
|
|
203
|
-
});
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
exports.deserialize = deserialize;
|
|
207
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zZXJpYWxpemF0aW9uLmpzIl0sIm5hbWVzIjpbImxvZyIsIklOTElORSIsIk1BUksiLCJURVhUX05PREUiLCJDT01NRU5UX05PREUiLCJhdHRyIiwiZWwiLCJhdHRyaWJ1dGVzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwib3V0IiwiaSIsImEiLCJuYW1lIiwidmFsdWUiLCJnZXRPYmplY3QiLCJ0eXBlIiwiaW5jbHVkZXMiLCJwYXJzZVN0eWxlU3RyaW5nIiwicyIsInJlZ2V4IiwibWF0Y2giLCJyZXN1bHQiLCJleGVjIiwidHJpbSIsInJlYWN0QXR0cmlidXRlcyIsIm8iLCJjYW1lbGl6ZSIsImFkZFVuaXRzIiwiaGFuZGxlU3R5bGVzIiwiYXR0cmlidXRlIiwic3R5bGVTdHJpbmciLCJnZXRBdHRyaWJ1dGUiLCJoYW5kbGVDbGFzcyIsImFjYyIsImNsYXNzTmFtZXMiLCJhdHRyaWJ1dGVzVG9NYXAiLCJzdHlsZSIsImNsYXNzTmFtZSIsIk1BUktfVEFHUyIsImIiLCJlbSIsInUiLCJjb2RlIiwic3Ryb25nIiwibWFya3MiLCJkZXNlcmlhbGl6ZSIsIm5leHQiLCJtYXJrIiwidGFnTmFtZSIsInRvTG93ZXJDYXNlIiwib2JqZWN0Iiwibm9kZXMiLCJjaGlsZE5vZGVzIiwicnVsZXMiLCJub2RlVHlwZSIsImxlYXZlcyIsInRleHQiLCJ0ZXh0Q29udGVudCIsIm5vcm1hbEF0dHJzIiwiY29udHJvbHMiLCJhbGxBdHRycyIsInJlZHVjZSIsImlzTWF0aCIsImRhdGEiLCJkYXRhc2V0IiwiaHRtbCIsIkh0bWwiLCJkZWZhdWx0QmxvY2siLCJ0b0pTT04iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUVBLElBQU1BLEdBQUcsR0FBRyx1QkFBTSxvQ0FBTixDQUFaO0FBRUEsSUFBTUMsTUFBTSxHQUFHLENBQUMsTUFBRCxDQUFmO0FBQ0EsSUFBTUMsSUFBSSxHQUFHLENBQUMsSUFBRCxFQUFPLFFBQVAsRUFB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QSxNQUFNLEVBQUUsSUFESDtBQUVMWCxRQUFBQSxLQUFLLEVBQUUsQ0FBQzlDLEVBQUQ7QUFGRixPQUFQO0FBSUQ7O0FBRUQsV0FBTztBQUNMNkMsTUFBQUEsTUFBTSxFQUFOQSxNQURLO0FBRUxuQyxNQUFBQSxJQUFJLEVBQUpBLElBRks7QUFHTGdELE1BQUFBLElBQUksRUFBRTtBQUFFQyxRQUFBQSxPQUFPLG9CQUFPM0QsRUFBRSxDQUFDMkQsT0FBVixDQUFUO0FBQThCMUQsUUFBQUEsVUFBVSxvQkFBT3NELFFBQVA7QUFBeEMsT0FIRDtBQUlMVCxNQUFBQSxLQUFLLEVBQUVMLElBQUksQ0FBQ3pDLEVBQUUsQ0FBQytDLFVBQUo7QUFKTixLQUFQO0FBTUQ7QUF4Q0gsQ0FGWSxDQUFkO0FBOENBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLElBQU1hLElBQUksR0FBRyxJQUFJQywrQkFBSixDQUFTO0FBQUViLEVBQUFBLEtBQUssRUFBTEEsS0FBRjtBQUFTYyxFQUFBQSxZQUFZLEVBQUU7QUFBdkIsQ0FBVCxDQUFiOztBQUVPLElBQU10QixXQUFXLEdBQUcsU0FBZEEsV0FBYyxDQUFDM0IsQ0FBRDtBQUFBLFNBQU8rQyxJQUFJLENBQUNwQixXQUFMLENBQWlCM0IsQ0FBakIsRUFBb0I7QUFBRWtELElBQUFBLE1BQU0sRUFBRTtBQUFWLEdBQXBCLENBQVA7QUFBQSxDQUFwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBIdG1sIGZyb20gJ3NsYXRlLWh0bWwtc2VyaWFsaXplcic7XG5pbXBvcnQgeyBvYmplY3QgYXMgdG9TdHlsZU9iamVjdCB9IGZyb20gJ3RvLXN0eWxlJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5cbmNvbnN0IGxvZyA9IGRlYnVnKCdAcGllLWxpYjptYXNrLW1hcmt1cDpzZXJpYWxpemF0aW9uJyk7XG5cbmNvbnN0IElOTElORSA9IFsnc3BhbiddO1xuY29uc3QgTUFSSyA9IFsnZW0nLCAnc3Ryb25nJywgJ3UnXTtcbmNvbnN0IFRFWFRfTk9ERSA9IDM7XG5jb25zdCBDT01NRU5UX05PREUgPSA4O1xuXG5jb25zdCBhdHRyID0gKGVsKSA9PiB7XG4gIGlmICghZWwuYXR0cmlidXRlcyB8fCBlbC5hdHRyaWJ1dGVzLmxlbmd0aCA8PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IG91dCA9IHt9O1xuICBsZXQgaTtcblxuICBmb3IgKGkgPSAwOyBpIDwgZWwuYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGEgPSBlbC5hdHRyaWJ1dGVzW2ldO1xuXG4gICAgb3V0W2EubmFtZV0gPSBhLnZhbHVlO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn07XG5cbmNvbnN0IGdldE9iamVjdCA9ICh0eXBlKSA9PiB7XG4gIGlmIChJTkxJTkUuaW5jbHVkZXModHlwZSkpIHtcbiAgICByZXR1cm4gJ2lubGluZSc7XG4gIH0gZWxzZSBpZiAoTUFSSy5pbmNsdWRlcyh0eXBlKSkge1xuICAgIHJldHVybiAnbWFyayc7XG4gIH1cbiAgcmV0dXJuICdibG9jayc7XG59O1xuXG5leHBvcnQgY29uc3QgcGFyc2VTdHlsZVN0cmluZyA9IChzKSA9PiB7XG4gIGNvbnN0IHJlZ2V4ID0gLyhbXFx3LV0qKVxccyo6XFxzKihbXjtdKikvZztcbiAgbGV0IG1hdGNoO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMocykpKSB7XG4gICAgcmVzdWx0W21hdGNoWzFdXSA9IG1hdGNoWzJdLnRyaW0oKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlYWN0QXR0cmlidXRlcyA9IChvKSA9PiB0b1N0eWxlT2JqZWN0KG8sIHsgY2FtZWxpemU6IHRydWUsIGFkZFVuaXRzOiBmYWxzZSB9KTtcblxuY29uc3QgaGFuZGxlU3R5bGVzID0gKGVsLCBhdHRyaWJ1dGUpID0+IHtcbiAgY29uc3Qgc3R5bGVTdHJpbmcgPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcblxuICByZXR1cm4gcmVhY3RBdHRyaWJ1dGVzKHBhcnNlU3R5bGVTdHJpbmcoc3R5bGVTdHJpbmcpKTtcbn07XG5cbmNvbnN0IGhhbmRsZUNsYXNzID0gKGVsLCBhY2MsIGF0dHJpYnV0ZSkgPT4ge1xuICBjb25zdCBjbGFzc05hbWVzID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cbiAgZGVsZXRlIGFjYy5jbGFzcztcblxuICByZXR1cm4gY2xhc3NOYW1lcztcbn07XG5cbmNvbnN0IGF0dHJpYnV0ZXNUb01hcCA9IChlbCkgPT4gKGFjYywgYXR0cmlidXRlKSA9PiB7XG4gIGlmICghZWwuZ2V0QXR0cmlidXRlKSB7XG4gICAgcmV0dXJuIGFjYztcbiAgfVxuXG4gIGNvbnN0IHZhbHVlID0gZWwuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSk7XG5cbiAgaWYgKHZhbHVlKSB7XG4gICAgc3dpdGNoIChhdHRyaWJ1dGUpIHtcbiAgICAgIGNhc2UgJ3N0eWxlJzpcbiAgICAgICAgYWNjLnN0eWxlID0gaGFuZGxlU3R5bGVzKGVsLCBhdHRyaWJ1dGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2NsYXNzJzpcbiAgICAgICAgYWNjLmNsYXNzTmFtZSA9IGhhbmRsZUNsYXNzKGVsLCBhY2MsIGF0dHJpYnV0ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgYWNjW2F0dHJpYnV0ZV0gPSBlbC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGFjYztcbn07XG5cbmNvbnN0IGF0dHJpYnV0ZXMgPSBbJ2JvcmRlcicsICdjbGFzcycsICdzdHlsZSddO1xuXG4vKipcbiAqIFRhZ3MgdG8gbWFya3MuXG4gKlxuICogQHR5cGUge09iamVjdH1cbiAqL1xuXG5leHBvcnQgY29uc3QgTUFSS19UQUdTID0ge1xuICBiOiAnYm9sZCcsXG4gIGVtOiAnaXRhbGljJyxcbiAgdTogJ3VuZGVybGluZScsXG4gIHM6ICdzdHJpa2V0aHJvdWdoJyxcbiAgY29kZTogJ2NvZGUnLFxuICBzdHJvbmc6ICdzdHJvbmcnLFxufTtcblxuY29uc3QgbWFya3MgPSB7XG4gIGRlc2VyaWFsaXplKGVsLCBuZXh0KSB7XG4gICAgY29uc3QgbWFyayA9IE1BUktfVEFHU1tlbC50YWdOYW1lLnRvTG93ZXJDYXNlKCldO1xuICAgIGlmICghbWFyaykgcmV0dXJuO1xuICAgIGxvZygnW2Rlc2VyaWFsaXplXSBtYXJrOiAnLCBtYXJrKTtcbiAgICByZXR1cm4ge1xuICAgICAgb2JqZWN0OiAnbWFyaycsXG4gICAgICB0eXBlOiBtYXJrLFxuICAgICAgbm9kZXM6IG5leHQoZWwuY2hpbGROb2RlcyksXG4gICAgfTtcbiAgfSxcbn07XG5cbmNvbnN0IHJ1bGVzID0gW1xuICBtYXJrcyxcbiAge1xuICAgIC8qKlxuICAgICAqIGRlc2VyaWFsaXplIGV2ZXJ5dGhpbmcsIHdlJ3JlIG5vdCBmdXNzeSBhYm91dCB0aGUgZG9tIHN0cnVjdHVyZSBmb3Igbm93LlxuICAgICAqL1xuICAgIGRlc2VyaWFsaXplOiAoZWwsIG5leHQpID0+IHtcbiAgICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gQ09NTUVOVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG5cbiAgICAgIGlmIChlbC5ub2RlVHlwZSA9PT0gVEVYVF9OT0RFKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgb2JqZWN0OiAndGV4dCcsXG4gICAgICAgICAgbGVhdmVzOiBbeyB0ZXh0OiBlbC50ZXh0Q29udGVudCB9XSxcbiAgICAgICAgfTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHlwZSA9IGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgICAgY29uc3Qgbm9ybWFsQXR0cnMgPSBhdHRyKGVsKSB8fCB7fTtcblxuICAgICAgaWYgKHR5cGUgPT0gJ2F1ZGlvJyAmJiBub3JtYWxBdHRycy5jb250cm9scyA9PSAnJykge1xuICAgICAgICBub3JtYWxBdHRycy5jb250cm9scyA9IHRydWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFsbEF0dHJzID0gYXR0cmlidXRlcy5yZWR1Y2UoYXR0cmlidXRlc1RvTWFwKGVsKSwgeyAuLi5ub3JtYWxBdHRycyB9KTtcbiAgICAgIGNvbnN0IG9iamVjdCA9IGdldE9iamVjdCh0eXBlKTtcblxuICAgICAgaWYgKGVsLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ21hdGgnKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaXNNYXRoOiB0cnVlLFxuICAgICAgICAgIG5vZGVzOiBbZWxdLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBvYmplY3QsXG4gICAgICAgIHR5cGUsXG4gICAgICAgIGRhdGE6IHsgZGF0YXNldDogeyAuLi5lbC5kYXRhc2V0IH0sIGF0dHJpYnV0ZXM6IHsgLi4uYWxsQXR0cnMgfSB9LFxuICAgICAgICBub2RlczogbmV4dChlbC5jaGlsZE5vZGVzKSxcbiAgICAgIH07XG4gICAgfSxcbiAgfSxcbl07XG5cbi8qKlxuICogQ3JlYXRlIGEgbmV3IHNlcmlhbGl6ZXIgaW5zdGFuY2Ugd2l0aCBvdXIgYHJ1bGVzYCBmcm9tIGFib3ZlLlxuICogSGF2aW5nIGEgZGVmYXVsdCBkaXYgYmxvY2sgd2lsbCBqdXN0IHB1dCBldmVyeSBkaXYgb24gaXQncyBvd24gbGluZSwgd2hpY2ggaXMgbm90IGlkZWFsLlxuICovXG5jb25zdCBodG1sID0gbmV3IEh0bWwoeyBydWxlcywgZGVmYXVsdEJsb2NrOiAnc3BhbicgfSk7XG5cbmV4cG9ydCBjb25zdCBkZXNlcmlhbGl6ZSA9IChzKSA9PiBodG1sLmRlc2VyaWFsaXplKHMsIHsgdG9KU09OOiB0cnVlIH0pOyJdfQ==
|
package/lib/with-mask.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.withMask = exports.buildLayoutFromMarkup = void 0;
|
|
9
|
-
|
|
10
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
|
|
16
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
-
|
|
18
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
-
|
|
20
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
21
|
-
|
|
22
|
-
var _react = _interopRequireDefault(require("react"));
|
|
23
|
-
|
|
24
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
25
|
-
|
|
26
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
27
|
-
|
|
28
|
-
var _mask = _interopRequireDefault(require("./mask"));
|
|
29
|
-
|
|
30
|
-
var _componentize2 = _interopRequireDefault(require("./componentize"));
|
|
31
|
-
|
|
32
|
-
var _serialization = require("./serialization");
|
|
33
|
-
|
|
34
|
-
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); }; }
|
|
35
|
-
|
|
36
|
-
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; } }
|
|
37
|
-
|
|
38
|
-
var buildLayoutFromMarkup = function buildLayoutFromMarkup(markup, type) {
|
|
39
|
-
var _componentize = (0, _componentize2["default"])(markup, type),
|
|
40
|
-
processed = _componentize.markup;
|
|
41
|
-
|
|
42
|
-
var value = (0, _serialization.deserialize)(processed);
|
|
43
|
-
return value.document;
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
exports.buildLayoutFromMarkup = buildLayoutFromMarkup;
|
|
47
|
-
|
|
48
|
-
var withMask = function withMask(type, renderChildren) {
|
|
49
|
-
var _class;
|
|
50
|
-
|
|
51
|
-
return _class = /*#__PURE__*/function (_React$Component) {
|
|
52
|
-
(0, _inherits2["default"])(WithMask, _React$Component);
|
|
53
|
-
|
|
54
|
-
var _super = _createSuper(WithMask);
|
|
55
|
-
|
|
56
|
-
function WithMask() {
|
|
57
|
-
(0, _classCallCheck2["default"])(this, WithMask);
|
|
58
|
-
return _super.apply(this, arguments);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
(0, _createClass2["default"])(WithMask, [{
|
|
62
|
-
key: "componentDidUpdate",
|
|
63
|
-
value: function componentDidUpdate(prevProps) {
|
|
64
|
-
if (this.props.markup !== prevProps.markup) {
|
|
65
|
-
// eslint-disable-next-line
|
|
66
|
-
var domNode = _reactDom["default"].findDOMNode(this); // Query all elements that may contain outdated MathJax renderings
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var mathElements = domNode && domNode.querySelectorAll('[data-latex][data-math-handled="true"]'); // Clean up for fresh MathJax processing
|
|
70
|
-
|
|
71
|
-
(mathElements || []).forEach(function (el) {
|
|
72
|
-
// Remove the MathJax container to allow for clean updates
|
|
73
|
-
var mjxContainer = el.querySelector('mjx-container');
|
|
74
|
-
|
|
75
|
-
if (mjxContainer) {
|
|
76
|
-
el.removeChild(mjxContainer);
|
|
77
|
-
} // Update the innerHTML to match the raw LaTeX data, ensuring it is reprocessed correctly
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
var latexCode = el.getAttribute('data-raw');
|
|
81
|
-
el.innerHTML = latexCode; // Remove the attribute to signal that MathJax should reprocess this element
|
|
82
|
-
|
|
83
|
-
el.removeAttribute('data-math-handled');
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}, {
|
|
88
|
-
key: "render",
|
|
89
|
-
value: function render() {
|
|
90
|
-
var _this$props = this.props,
|
|
91
|
-
markup = _this$props.markup,
|
|
92
|
-
layout = _this$props.layout,
|
|
93
|
-
value = _this$props.value,
|
|
94
|
-
onChange = _this$props.onChange,
|
|
95
|
-
elementType = _this$props.elementType;
|
|
96
|
-
var maskLayout = layout ? layout : buildLayoutFromMarkup(markup, type);
|
|
97
|
-
return /*#__PURE__*/_react["default"].createElement(_mask["default"], {
|
|
98
|
-
elementType: elementType,
|
|
99
|
-
layout: maskLayout,
|
|
100
|
-
value: value,
|
|
101
|
-
onChange: onChange,
|
|
102
|
-
renderChildren: renderChildren(this.props)
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
}]);
|
|
106
|
-
return WithMask;
|
|
107
|
-
}(_react["default"].Component), (0, _defineProperty2["default"])(_class, "propTypes", {
|
|
108
|
-
/**
|
|
109
|
-
* At the start we'll probably work with markup
|
|
110
|
-
*/
|
|
111
|
-
markup: _propTypes["default"].string,
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Once we start authoring, it may make sense for use to us layout, which will be a simple js object that maps to `slate.Value`.
|
|
115
|
-
*/
|
|
116
|
-
layout: _propTypes["default"].object,
|
|
117
|
-
value: _propTypes["default"].object,
|
|
118
|
-
onChange: _propTypes["default"].func,
|
|
119
|
-
customMarkMarkupComponent: _propTypes["default"].func,
|
|
120
|
-
elementType: _propTypes["default"].string
|
|
121
|
-
}), _class;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
exports.withMask = withMask;
|
|
125
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy93aXRoLW1hc2suanN4Il0sIm5hbWVzIjpbImJ1aWxkTGF5b3V0RnJvbU1hcmt1cCIsIm1hcmt1cCIsInR5cGUiLCJwcm9jZXNzZWQiLCJ2YWx1ZSIsImRvY3VtZW50Iiwid2l0aE1hc2siLCJyZW5kZXJDaGlsZHJlbiIsInByZXZQcm9wcyIsInByb3BzIiwiZG9tTm9kZSIsIlJlYWN0RE9NIiwiZmluZERPTU5vZGUiLCJtYXRoRWxlbWVudHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsImVsIiwibWp4Q29udGFpbmVyIiwicXVlcnlTZWxlY3RvciIsInJlbW92ZUNoaWxkIiwibGF0ZXhDb2RlIiwiZ2V0QXR0cmlidXRlIiwiaW5uZXJIVE1MIiwicmVtb3ZlQXR0cmlidXRlIiwibGF5b3V0Iiwib25DaGFuZ2UiLCJlbGVtZW50VHlwZSIsIm1hc2tMYXlvdXQiLCJSZWFjdCIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsInN0cmluZyIsIm9iamVjdCIsImZ1bmMiLCJjdXN0b21NYXJrTWFya3VwQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7O0FBRU8sSUFBTUEscUJBQXFCLEdBQUcsU0FBeEJBLHFCQUF3QixDQUFDQyxNQUFELEVBQVNDLElBQVQsRUFBa0I7QUFDckQsc0JBQThCLCtCQUFhRCxNQUFiLEVBQXFCQyxJQUFyQixDQUE5QjtBQUFBLE1BQWdCQyxTQUFoQixpQkFBUUYsTUFBUjs7QUFDQSxNQUFNRyxLQUFLLEdBQUcsZ0NBQVlELFNBQVosQ0FBZDtBQUNBLFNBQU9DLEtBQUssQ0FBQ0MsUUFBYjtBQUNELENBSk07Ozs7QUFNQSxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVyxDQUFDSixJQUFELEVBQU9LLGNBQVAsRUFBMEI7QUFBQTs7QUFDaEQ7QUFBQTs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUEsYUFnQkUsNEJBQW1CQyxTQUFuQixFQUE4QjtBQUM1QixZQUFJLEtBQUtDLEtBQUwsQ0FBV1IsTUFBWCxLQUFzQk8sU0FBUyxDQUFDUCxNQUFwQyxFQUE0QztBQUMxQztBQUNBLGNBQU1TLE9BQU8sR0FBR0MscUJBQVNDLFdBQVQsQ0FBcUIsSUFBckIsQ0FBaEIsQ0FGMEMsQ0FHMUM7OztBQUNBLGNBQU1DLFlBQVksR0FBR0gsT0FBTyxJQUFJQSxPQUFPLENBQUNJLGdCQUFSLENBQXlCLHdDQUF6QixDQUFoQyxDQUowQyxDQU0xQzs7QUFDQSxXQUFDRCxZQUFZLElBQUksRUFBakIsRUFBcUJFLE9BQXJCLENBQTZCLFVBQUNDLEVBQUQsRUFBUTtBQUNuQztBQUNBLGdCQUFNQyxZQUFZLEdBQUdELEVBQUUsQ0FBQ0UsYUFBSCxDQUFpQixlQUFqQixDQUFyQjs7QUFFQSxnQkFBSUQsWUFBSixFQUFrQjtBQUNoQkQsY0FBQUEsRUFBRSxDQUFDRyxXQUFILENBQWVGLFlBQWY7QUFDRCxhQU5rQyxDQVFuQzs7O0FBQ0EsZ0JBQU1HLFNBQVMsR0FBR0osRUFBRSxDQUFDSyxZQUFILENBQWdCLFVBQWhCLENBQWxCO0FBQ0FMLFlBQUFBLEVBQUUsQ0FBQ00sU0FBSCxHQUFlRixTQUFmLENBVm1DLENBWW5DOztBQUNBSixZQUFBQSxFQUFFLENBQUNPLGVBQUgsQ0FBbUIsbUJBQW5CO0FBQ0QsV0FkRDtBQWVEO0FBQ0Y7QUF4Q0g7QUFBQTtBQUFBLGFBMENFLGtCQUFTO0FBQ1AsMEJBQXlELEtBQUtkLEtBQTlEO0FBQUEsWUFBUVIsTUFBUixlQUFRQSxNQUFSO0FBQUEsWUFBZ0J1QixNQUFoQixlQUFnQkEsTUFBaEI7QUFBQSxZQUF3QnBCLEtBQXhCLGVBQXdCQSxLQUF4QjtBQUFBLFlBQStCcUIsUUFBL0IsZUFBK0JBLFFBQS9CO0FBQUEsWUFBeUNDLFdBQXpDLGVBQXlDQSxXQUF6QztBQUVBLFlBQU1DLFVBQVUsR0FBR0gsTUFBTSxHQUFHQSxNQUFILEdBQVl4QixxQkFBcUIsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULENBQTFEO0FBQ0EsNEJBQ0UsZ0NBQUMsZ0JBQUQ7QUFDRSxVQUFBLFdBQVcsRUFBRXdCLFdBRGY7QUFFRSxVQUFBLE1BQU0sRUFBRUMsVUFGVjtBQUdFLFVBQUEsS0FBSyxFQUFFdkIsS0FIVDtBQUlFLFVBQUEsUUFBUSxFQUFFcUIsUUFKWjtBQUtFLFVBQUEsY0FBYyxFQUFFbEIsY0FBYyxDQUFDLEtBQUtFLEtBQU47QUFMaEMsVUFERjtBQVNEO0FBdkRIO0FBQUE7QUFBQSxJQUE4Qm1CLGtCQUFNQyxTQUFwQyx5REFDcUI7QUFDakI7QUFDTjtBQUNBO0FBQ001QixJQUFBQSxNQUFNLEVBQUU2QixzQkFBVUMsTUFKRDs7QUFLakI7QUFDTjtBQUNBO0FBQ01QLElBQUFBLE1BQU0sRUFBRU0sc0JBQVVFLE1BUkQ7QUFTakI1QixJQUFBQSxLQUFLLEVBQUUwQixzQkFBVUUsTUFUQTtBQVVqQlAsSUFBQUEsUUFBUSxFQUFFSyxzQkFBVUcsSUFWSDtBQVdqQkMsSUFBQUEseUJBQXlCLEVBQUVKLHNCQUFVRyxJQVhwQjtBQVlqQlAsSUFBQUEsV0FBVyxFQUFFSSxzQkFBVUM7QUFaTixHQURyQjtBQXlERCxDQTFETSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RET00gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgTWFzayBmcm9tICcuL21hc2snO1xuaW1wb3J0IGNvbXBvbmVudGl6ZSBmcm9tICcuL2NvbXBvbmVudGl6ZSc7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZSB9IGZyb20gJy4vc2VyaWFsaXphdGlvbic7XG5cbmV4cG9ydCBjb25zdCBidWlsZExheW91dEZyb21NYXJrdXAgPSAobWFya3VwLCB0eXBlKSA9PiB7XG4gIGNvbnN0IHsgbWFya3VwOiBwcm9jZXNzZWQgfSA9IGNvbXBvbmVudGl6ZShtYXJrdXAsIHR5cGUpO1xuICBjb25zdCB2YWx1ZSA9IGRlc2VyaWFsaXplKHByb2Nlc3NlZCk7XG4gIHJldHVybiB2YWx1ZS5kb2N1bWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCB3aXRoTWFzayA9ICh0eXBlLCByZW5kZXJDaGlsZHJlbikgPT4ge1xuICByZXR1cm4gY2xhc3MgV2l0aE1hc2sgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICAvKipcbiAgICAgICAqIEF0IHRoZSBzdGFydCB3ZSdsbCBwcm9iYWJseSB3b3JrIHdpdGggbWFya3VwXG4gICAgICAgKi9cbiAgICAgIG1hcmt1cDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAgIC8qKlxuICAgICAgICogT25jZSB3ZSBzdGFydCBhdXRob3JpbmcsIGl0IG1heSBtYWtlIHNlbnNlIGZvciB1c2UgdG8gdXMgbGF5b3V0LCB3aGljaCB3aWxsIGJlIGEgc2ltcGxlIGpzIG9iamVjdCB0aGF0IG1hcHMgdG8gYHNsYXRlLlZhbHVlYC5cbiAgICAgICAqL1xuICAgICAgbGF5b3V0OiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgdmFsdWU6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgICBvbkNoYW5nZTogUHJvcFR5cGVzLmZ1bmMsXG4gICAgICBjdXN0b21NYXJrTWFya3VwQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAgIGVsZW1lbnRUeXBlOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIH07XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5tYXJrdXAgIT09IHByZXZQcm9wcy5tYXJrdXApIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgICAgIGNvbnN0IGRvbU5vZGUgPSBSZWFjdERPTS5maW5kRE9NTm9kZSh0aGlzKTtcbiAgICAgICAgLy8gUXVlcnkgYWxsIGVsZW1lbnRzIHRoYXQgbWF5IGNvbnRhaW4gb3V0ZGF0ZWQgTWF0aEpheCByZW5kZXJpbmdzXG4gICAgICAgIGNvbnN0IG1hdGhFbGVtZW50cyA9IGRvbU5vZGUgJiYgZG9tTm9kZS5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1sYXRleF1bZGF0YS1tYXRoLWhhbmRsZWQ9XCJ0cnVlXCJdJyk7XG5cbiAgICAgICAgLy8gQ2xlYW4gdXAgZm9yIGZyZXNoIE1hdGhKYXggcHJvY2Vzc2luZ1xuICAgICAgICAobWF0aEVsZW1lbnRzIHx8IFtdKS5mb3JFYWNoKChlbCkgPT4ge1xuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgTWF0aEpheCBjb250YWluZXIgdG8gYWxsb3cgZm9yIGNsZWFuIHVwZGF0ZXNcbiAgICAgICAgICBjb25zdCBtanhDb250YWluZXIgPSBlbC5xdWVyeVNlbGVjdG9yKCdtangtY29udGFpbmVyJyk7XG5cbiAgICAgICAgICBpZiAobWp4Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBlbC5yZW1vdmVDaGlsZChtanhDb250YWluZXIpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgaW5uZXJIVE1MIHRvIG1hdGNoIHRoZSByYXcgTGFUZVggZGF0YSwgZW5zdXJpbmcgaXQgaXMgcmVwcm9jZXNzZWQgY29ycmVjdGx5XG4gICAgICAgICAgY29uc3QgbGF0ZXhDb2RlID0gZWwuZ2V0QXR0cmlidXRlKCdkYXRhLXJhdycpO1xuICAgICAgICAgIGVsLmlubmVySFRNTCA9IGxhdGV4Q29kZTtcblxuICAgICAgICAgIC8vIFJlbW92ZSB0aGUgYXR0cmlidXRlIHRvIHNpZ25hbCB0aGF0IE1hdGhKYXggc2hvdWxkIHJlcHJvY2VzcyB0aGlzIGVsZW1lbnRcbiAgICAgICAgICBlbC5yZW1vdmVBdHRyaWJ1dGUoJ2RhdGEtbWF0aC1oYW5kbGVkJyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgbWFya3VwLCBsYXlvdXQsIHZhbHVlLCBvbkNoYW5nZSwgZWxlbWVudFR5cGUgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGNvbnN0IG1hc2tMYXlvdXQgPSBsYXlvdXQgPyBsYXlvdXQgOiBidWlsZExheW91dEZyb21NYXJrdXAobWFya3VwLCB0eXBlKTtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNYXNrXG4gICAgICAgICAgZWxlbWVudFR5cGU9e2VsZW1lbnRUeXBlfVxuICAgICAgICAgIGxheW91dD17bWFza0xheW91dH1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIHJlbmRlckNoaWxkcmVuPXtyZW5kZXJDaGlsZHJlbih0aGlzLnByb3BzKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuICB9O1xufTtcbiJdfQ==
|