@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.
Files changed (37) hide show
  1. package/CHANGELOG.json +1 -871
  2. package/CHANGELOG.md +115 -20
  3. package/package.json +8 -5
  4. package/src/choices/choice.jsx +1 -1
  5. package/src/components/__tests__/__snapshots__/dropdown.test.js.snap +15 -12
  6. package/src/components/__tests__/blank.test.js +1 -1
  7. package/src/components/blank.jsx +1 -1
  8. package/src/components/correct-input.jsx +1 -1
  9. package/src/components/dropdown.jsx +118 -23
  10. package/src/constructed-response.jsx +1 -1
  11. package/src/serialization.js +1 -1
  12. package/lib/__tests__/drag-in-the-blank.test.js +0 -71
  13. package/lib/__tests__/index.test.js +0 -50
  14. package/lib/__tests__/mask.test.js +0 -149
  15. package/lib/__tests__/serialization.test.js +0 -45
  16. package/lib/__tests__/utils.js +0 -17
  17. package/lib/__tests__/with-mask.test.js +0 -65
  18. package/lib/choices/__tests__/index.test.js +0 -85
  19. package/lib/choices/choice.js +0 -221
  20. package/lib/choices/index.js +0 -135
  21. package/lib/componentize.js +0 -25
  22. package/lib/components/__tests__/blank.test.js +0 -234
  23. package/lib/components/__tests__/correct-input.test.js +0 -63
  24. package/lib/components/__tests__/dropdown.test.js +0 -70
  25. package/lib/components/__tests__/input.test.js +0 -64
  26. package/lib/components/blank.js +0 -415
  27. package/lib/components/correct-input.js +0 -118
  28. package/lib/components/dropdown.js +0 -349
  29. package/lib/components/input.js +0 -57
  30. package/lib/constructed-response.js +0 -116
  31. package/lib/customizable.js +0 -48
  32. package/lib/drag-in-the-blank.js +0 -217
  33. package/lib/index.js +0 -62
  34. package/lib/inline-dropdown.js +0 -48
  35. package/lib/mask.js +0 -254
  36. package/lib/serialization.js +0 -207
  37. package/lib/with-mask.js +0 -125
@@ -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==