@pie-lib/mask-markup 2.0.0-beta.1 → 2.0.0-beta.2

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 (52) hide show
  1. package/CHANGELOG.md +143 -35
  2. package/lib/choices/choice.js +22 -31
  3. package/lib/choices/choice.js.map +1 -1
  4. package/lib/choices/index.js +9 -33
  5. package/lib/choices/index.js.map +1 -1
  6. package/lib/componentize.js +1 -4
  7. package/lib/componentize.js.map +1 -1
  8. package/lib/components/blank.js +61 -86
  9. package/lib/components/blank.js.map +1 -1
  10. package/lib/components/correct-input.js +9 -25
  11. package/lib/components/correct-input.js.map +1 -1
  12. package/lib/components/dropdown.js +11 -37
  13. package/lib/components/dropdown.js.map +1 -1
  14. package/lib/components/input.js +14 -17
  15. package/lib/components/input.js.map +1 -1
  16. package/lib/constructed-response.js +11 -14
  17. package/lib/constructed-response.js.map +1 -1
  18. package/lib/drag-in-the-blank.js +21 -50
  19. package/lib/drag-in-the-blank.js.map +1 -1
  20. package/lib/index.js +1 -7
  21. package/lib/index.js.map +1 -1
  22. package/lib/inline-dropdown.js +6 -11
  23. package/lib/inline-dropdown.js.map +1 -1
  24. package/lib/mask.js +8 -49
  25. package/lib/mask.js.map +1 -1
  26. package/lib/new-serialization.js +6 -59
  27. package/lib/new-serialization.js.map +1 -0
  28. package/lib/parse-html.js +7 -6
  29. package/lib/parse-html.js.map +1 -0
  30. package/lib/serialization.js +9 -42
  31. package/lib/serialization.js.map +1 -1
  32. package/lib/test-serializer.js +4 -55
  33. package/lib/test-serializer.js.map +1 -0
  34. package/lib/with-mask.js +6 -30
  35. package/lib/with-mask.js.map +1 -1
  36. package/package.json +7 -7
  37. package/src/choices/choice.jsx +27 -13
  38. package/src/choices/index.jsx +17 -13
  39. package/src/components/blank.jsx +43 -31
  40. package/src/components/correct-input.jsx +18 -18
  41. package/src/components/dropdown.jsx +27 -38
  42. package/src/components/input.jsx +6 -3
  43. package/src/constructed-response.jsx +5 -4
  44. package/src/drag-in-the-blank.jsx +12 -12
  45. package/src/index.js +1 -8
  46. package/src/inline-dropdown.jsx +4 -3
  47. package/src/mask.jsx +13 -14
  48. package/src/new-serialization.jsx +19 -19
  49. package/src/parse-html.js +1 -1
  50. package/src/serialization.js +19 -14
  51. package/src/test-serializer.js +9 -9
  52. package/src/with-mask.jsx +2 -9
@@ -1,207 +1,156 @@
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["default"] = void 0;
9
-
10
8
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
11
  var _react = _interopRequireDefault(require("react"));
17
-
18
12
  var _server = _interopRequireDefault(require("react-dom/server"));
19
-
20
13
  var _escapeHtml = _interopRequireDefault(require("escape-html"));
21
-
22
14
  var _slate = require("slate");
23
-
24
15
  var _slateHyperscript = require("slate-hyperscript");
25
-
26
16
  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; }
27
-
28
17
  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; }
29
-
30
18
  function allWhitespace(node) {
31
19
  // Use ECMA-262 Edition 3 String and RegExp features
32
20
  return !/[^\t\n\r ]/.test(node.textContent);
33
21
  }
34
-
35
22
  function defaultParseHtml(html) {
36
23
  if (typeof DOMParser === 'undefined') {
37
24
  throw new Error('The native `DOMParser` global which the `Html` serializer uses by default is not present in this environment. You must supply the `options.parseHtml` function instead.');
38
25
  }
39
-
40
26
  var parsed = new DOMParser().parseFromString(html, 'text/html');
41
27
  var body = parsed.body;
42
28
  var textNodes = document.createTreeWalker(body, NodeFilter.SHOW_TEXT, null, null);
43
29
  var n = textNodes.nextNode();
44
-
45
30
  while (n) {
46
31
  if (allWhitespace(n) || n.nodeValue === "\u200B") {
47
32
  n.parentNode.removeChild(n);
48
33
  }
49
-
50
34
  n = textNodes.nextNode();
51
35
  }
52
-
53
36
  return body;
54
37
  }
55
-
56
38
  var Html = /*#__PURE__*/(0, _createClass2["default"])(function Html(props) {
57
39
  var _this = this;
58
-
59
40
  (0, _classCallCheck2["default"])(this, Html);
60
41
  (0, _defineProperty2["default"])(this, "serializeEls", function (node) {
61
42
  if (_slate.Text.isText(node)) {
62
43
  var string = (0, _escapeHtml["default"])(node.text);
63
-
64
44
  if (node.bold) {
65
45
  string = /*#__PURE__*/_react["default"].createElement("strong", null, string);
66
46
  }
67
-
68
47
  return string;
69
48
  }
70
-
71
49
  var children = (node.children || []).map(function (n) {
72
50
  return _this.serializeEls(n);
73
51
  });
74
-
75
52
  var correctRule = _this.rules.reduce(function (res, rule) {
76
53
  return res || rule.serialize(node, children);
77
54
  }, null);
78
-
79
55
  if (correctRule) {
80
56
  return correctRule;
81
57
  }
82
-
83
58
  switch (node.type) {
84
59
  case 'quote':
85
60
  return /*#__PURE__*/_react["default"].createElement("blockquote", null, /*#__PURE__*/_react["default"].createElement("p", null, children));
86
-
87
61
  case 'paragraph':
88
62
  return /*#__PURE__*/_react["default"].createElement("p", null, children);
89
-
90
63
  case 'link':
91
64
  return /*#__PURE__*/_react["default"].createElement("a", {
92
65
  href: (0, _escapeHtml["default"])(node.url)
93
66
  }, children);
94
-
95
67
  default:
96
68
  return children;
97
69
  }
98
70
  });
99
71
  (0, _defineProperty2["default"])(this, "serialize", function (node) {
100
72
  var deserialized = _this.serializeEls(node);
101
-
102
73
  var html = _server["default"].renderToStaticMarkup( /*#__PURE__*/_react["default"].createElement('body', null, deserialized));
103
-
104
74
  var inner = html.slice(6, -7);
105
75
  return inner;
106
76
  });
107
77
  (0, _defineProperty2["default"])(this, "deserialize", function (html) {
108
78
  var body = _this.parseHtml(html);
109
-
110
79
  if (body.firstChild && body.firstChild.nodeType === Node.TEXT_NODE) {
111
- body = _this.parseHtml("<p>".concat(html, "</p>"));
80
+ body = _this.parseHtml("<span>".concat(html, "</span>"));
112
81
  }
113
-
114
82
  return _this.deserializeEls(body);
115
83
  });
116
84
  (0, _defineProperty2["default"])(this, "deserializeEls", function (element) {
117
85
  var markAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
118
-
119
86
  if (element.nodeType === Node.TEXT_NODE) {
120
87
  return (0, _slateHyperscript.jsx)('text', markAttributes, element.textContent);
121
88
  } else if (element.nodeType !== Node.ELEMENT_NODE) {
122
89
  return null;
123
90
  }
91
+ var nodeAttributes = _objectSpread({}, markAttributes);
124
92
 
125
- var nodeAttributes = _objectSpread({}, markAttributes); // define attributes for text nodes
126
-
127
-
93
+ // define attributes for text nodes
128
94
  if (element.nodeName === 'STRONG') {
129
95
  nodeAttributes.bold = true;
130
96
  }
131
-
132
97
  var nextFn = function nextFn(nodes) {
133
98
  var childNodes = Array.from(nodes);
134
99
  var children = Array.from(childNodes).map(function (node) {
135
100
  return _this.deserializeEls(node, nodeAttributes);
136
101
  }).flat();
137
-
138
102
  if (children.length === 0) {
139
103
  children.push((0, _slateHyperscript.jsx)('text', nodeAttributes, ''));
140
104
  }
141
-
142
105
  return children;
143
106
  };
144
-
145
107
  var correctRule = _this.rules.reduce(function (res, rule) {
146
108
  return res || rule.deserialize(element, nextFn);
147
109
  }, null);
148
-
149
110
  if (correctRule) {
150
111
  return correctRule;
151
112
  }
152
-
153
113
  var childNodes = Array.from(element.childNodes);
154
114
  var children = Array.from(childNodes).map(function (node) {
155
115
  return _this.deserializeEls(node, nodeAttributes);
156
116
  }).flat();
157
-
158
117
  if (children.length === 0) {
159
118
  children.push((0, _slateHyperscript.jsx)('text', nodeAttributes, ''));
160
119
  }
161
-
162
120
  switch (element.nodeName) {
163
121
  case 'TABLE':
164
122
  return (0, _slateHyperscript.jsx)('element', {
165
123
  type: 'table'
166
124
  }, children);
167
-
168
125
  case 'TBODY':
169
126
  return (0, _slateHyperscript.jsx)('element', {
170
127
  type: 'tbody'
171
128
  }, children);
172
-
173
129
  case 'TR':
174
130
  return (0, _slateHyperscript.jsx)('element', {
175
131
  type: 'tr'
176
132
  }, children);
177
-
178
133
  case 'TD':
179
134
  return (0, _slateHyperscript.jsx)('element', {
180
135
  type: 'td'
181
136
  }, children);
182
-
183
137
  case 'BODY':
184
138
  return (0, _slateHyperscript.jsx)('fragment', {}, children);
185
-
186
139
  case 'BR':
187
140
  return '\n';
188
-
189
141
  case 'BLOCKQUOTE':
190
142
  return (0, _slateHyperscript.jsx)('element', {
191
143
  type: 'quote'
192
144
  }, children);
193
-
194
145
  case 'P':
195
146
  return (0, _slateHyperscript.jsx)('element', {
196
147
  type: 'paragraph'
197
148
  }, children);
198
-
199
149
  case 'A':
200
150
  return (0, _slateHyperscript.jsx)('element', {
201
151
  type: 'link',
202
152
  url: element.getAttribute('href')
203
153
  }, children);
204
-
205
154
  default:
206
155
  return children;
207
156
  }
@@ -212,4 +161,4 @@ var Html = /*#__PURE__*/(0, _createClass2["default"])(function Html(props) {
212
161
  });
213
162
  var _default = Html;
214
163
  exports["default"] = _default;
215
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhbGxXaGl0ZXNwYWNlIiwibm9kZSIsInRlc3QiLCJ0ZXh0Q29udGVudCIsImRlZmF1bHRQYXJzZUh0bWwiLCJodG1sIiwiRE9NUGFyc2VyIiwiRXJyb3IiLCJwYXJzZWQiLCJwYXJzZUZyb21TdHJpbmciLCJib2R5IiwidGV4dE5vZGVzIiwiZG9jdW1lbnQiLCJjcmVhdGVUcmVlV2Fsa2VyIiwiTm9kZUZpbHRlciIsIlNIT1dfVEVYVCIsIm4iLCJuZXh0Tm9kZSIsIm5vZGVWYWx1ZSIsInBhcmVudE5vZGUiLCJyZW1vdmVDaGlsZCIsIkh0bWwiLCJwcm9wcyIsIlRleHQiLCJpc1RleHQiLCJzdHJpbmciLCJlc2NhcGVIdG1sIiwidGV4dCIsImJvbGQiLCJjaGlsZHJlbiIsIm1hcCIsInNlcmlhbGl6ZUVscyIsImNvcnJlY3RSdWxlIiwicnVsZXMiLCJyZWR1Y2UiLCJyZXMiLCJydWxlIiwic2VyaWFsaXplIiwidHlwZSIsInVybCIsImRlc2VyaWFsaXplZCIsIlJlYWN0U2VydmVyIiwicmVuZGVyVG9TdGF0aWNNYXJrdXAiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJpbm5lciIsInNsaWNlIiwicGFyc2VIdG1sIiwiZmlyc3RDaGlsZCIsIm5vZGVUeXBlIiwiTm9kZSIsIlRFWFRfTk9ERSIsImRlc2VyaWFsaXplRWxzIiwiZWxlbWVudCIsIm1hcmtBdHRyaWJ1dGVzIiwianN4IiwiRUxFTUVOVF9OT0RFIiwibm9kZUF0dHJpYnV0ZXMiLCJub2RlTmFtZSIsIm5leHRGbiIsIm5vZGVzIiwiY2hpbGROb2RlcyIsIkFycmF5IiwiZnJvbSIsImZsYXQiLCJsZW5ndGgiLCJwdXNoIiwiZGVzZXJpYWxpemUiLCJnZXRBdHRyaWJ1dGUiLCJkZWZhdWx0QmxvY2siXSwic291cmNlcyI6WyIuLi9zcmMvdGVzdC1zZXJpYWxpemVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUmVhY3RTZXJ2ZXIgZnJvbSAncmVhY3QtZG9tL3NlcnZlcic7XG5pbXBvcnQgZXNjYXBlSHRtbCBmcm9tICdlc2NhcGUtaHRtbCc7XG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnc2xhdGUtaHlwZXJzY3JpcHQnO1xuXG5mdW5jdGlvbiBhbGxXaGl0ZXNwYWNlKG5vZGUpIHtcbiAgLy8gVXNlIEVDTUEtMjYyIEVkaXRpb24gMyBTdHJpbmcgYW5kIFJlZ0V4cCBmZWF0dXJlc1xuICByZXR1cm4gIS9bXlxcdFxcblxcciBdLy50ZXN0KG5vZGUudGV4dENvbnRlbnQpO1xufVxuXG5mdW5jdGlvbiBkZWZhdWx0UGFyc2VIdG1sKGh0bWwpIHtcbiAgaWYgKHR5cGVvZiBET01QYXJzZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ1RoZSBuYXRpdmUgYERPTVBhcnNlcmAgZ2xvYmFsIHdoaWNoIHRoZSBgSHRtbGAgc2VyaWFsaXplciB1c2VzIGJ5IGRlZmF1bHQgaXMgbm90IHByZXNlbnQgaW4gdGhpcyBlbnZpcm9ubWVudC4gWW91IG11c3Qgc3VwcGx5IHRoZSBgb3B0aW9ucy5wYXJzZUh0bWxgIGZ1bmN0aW9uIGluc3RlYWQuJ1xuICAgICk7XG4gIH1cblxuICBjb25zdCBwYXJzZWQgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKGh0bWwsICd0ZXh0L2h0bWwnKTtcblxuICBjb25zdCB7IGJvZHkgfSA9IHBhcnNlZDtcbiAgY29uc3QgdGV4dE5vZGVzID0gZG9jdW1lbnQuY3JlYXRlVHJlZVdhbGtlcihib2R5LCBOb2RlRmlsdGVyLlNIT1dfVEVYVCwgbnVsbCwgbnVsbCk7XG4gIGxldCBuID0gdGV4dE5vZGVzLm5leHROb2RlKCk7XG5cbiAgd2hpbGUgKG4pIHtcbiAgICBpZiAoYWxsV2hpdGVzcGFjZShuKSB8fCBuLm5vZGVWYWx1ZSA9PT0gJ1xcdTIwMEInKSB7XG4gICAgICBuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobik7XG4gICAgfVxuICAgIG4gPSB0ZXh0Tm9kZXMubmV4dE5vZGUoKTtcbiAgfVxuXG4gIHJldHVybiBib2R5O1xufVxuXG5jbGFzcyBIdG1sIHtcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcbiAgICB0aGlzLmRlZmF1bHRCbG9jayA9IHByb3BzLmRlZmF1bHRCbG9jaztcbiAgICB0aGlzLnBhcnNlSHRtbCA9IGRlZmF1bHRQYXJzZUh0bWw7XG4gICAgdGhpcy5ydWxlcyA9IHByb3BzLnJ1bGVzO1xuICB9XG5cbiAgc2VyaWFsaXplRWxzID0gbm9kZSA9PiB7XG4gICAgaWYgKFRleHQuaXNUZXh0KG5vZGUpKSB7XG4gICAgICBsZXQgc3RyaW5nID0gZXNjYXBlSHRtbChub2RlLnRleHQpO1xuICAgICAgaWYgKG5vZGUuYm9sZCkge1xuICAgICAgICBzdHJpbmcgPSA8c3Ryb25nPntzdHJpbmd9PC9zdHJvbmc+O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG5cbiAgICBsZXQgY2hpbGRyZW4gPSAobm9kZS5jaGlsZHJlbiB8fCBbXSkubWFwKG4gPT4gdGhpcy5zZXJpYWxpemVFbHMobikpO1xuXG4gICAgY29uc3QgY29ycmVjdFJ1bGUgPSB0aGlzLnJ1bGVzLnJlZHVjZSgocmVzLCBydWxlKSA9PiB7XG4gICAgICByZXR1cm4gcmVzIHx8IHJ1bGUuc2VyaWFsaXplKG5vZGUsIGNoaWxkcmVuKTtcbiAgICB9LCBudWxsKTtcblxuICAgIGlmIChjb3JyZWN0UnVsZSkge1xuICAgICAgcmV0dXJuIGNvcnJlY3RSdWxlO1xuICAgIH1cblxuICAgIHN3aXRjaCAobm9kZS50eXBlKSB7XG4gICAgICBjYXNlICdxdW90ZSc6XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPGJsb2NrcXVvdGU+XG4gICAgICAgICAgICA8cD57Y2hpbGRyZW59PC9wPlxuICAgICAgICAgIDwvYmxvY2txdW90ZT5cbiAgICAgICAgKTtcbiAgICAgIGNhc2UgJ3BhcmFncmFwaCc6XG4gICAgICAgIHJldHVybiA8cD57Y2hpbGRyZW59PC9wPjtcbiAgICAgIGNhc2UgJ2xpbmsnOlxuICAgICAgICByZXR1cm4gPGEgaHJlZj17ZXNjYXBlSHRtbChub2RlLnVybCl9PntjaGlsZHJlbn08L2E+O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH1cbiAgfTtcblxuICBzZXJpYWxpemUgPSBub2RlID0+IHtcbiAgICBjb25zdCBkZXNlcmlhbGl6ZWQgPSB0aGlzLnNlcmlhbGl6ZUVscyhub2RlKTtcbiAgICBjb25zdCBodG1sID0gUmVhY3RTZXJ2ZXIucmVuZGVyVG9TdGF0aWNNYXJrdXAoUmVhY3QuY3JlYXRlRWxlbWVudChcbiAgICAgICdib2R5JyxcbiAgICAgIG51bGwsXG4gICAgICBkZXNlcmlhbGl6ZWRcbiAgICApKTtcbiAgICBjb25zdCBpbm5lciA9IGh0bWwuc2xpY2UoNiwgLTcpO1xuICAgIHJldHVybiBpbm5lcjtcbiAgfTtcblxuICBkZXNlcmlhbGl6ZSA9IGh0bWwgPT4ge1xuICAgIGxldCBib2R5ID0gdGhpcy5wYXJzZUh0bWwoaHRtbCk7XG5cbiAgICBpZiAoYm9keS5maXJzdENoaWxkICYmIGJvZHkuZmlyc3RDaGlsZC5ub2RlVHlwZSA9PT0gTm9kZS5URVhUX05PREUpIHtcbiAgICAgIGJvZHkgPSB0aGlzLnBhcnNlSHRtbChgPHA+JHtodG1sfTwvcD5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5kZXNlcmlhbGl6ZUVscyhib2R5KTtcbiAgfTtcblxuICBkZXNlcmlhbGl6ZUVscyA9IChlbGVtZW50LCBtYXJrQXR0cmlidXRlcyA9IHt9KSA9PiB7XG4gICAgaWYgKGVsZW1lbnQubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFKSB7XG4gICAgICByZXR1cm4ganN4KCd0ZXh0JywgbWFya0F0dHJpYnV0ZXMsIGVsZW1lbnQudGV4dENvbnRlbnQpO1xuICAgIH0gZWxzZSBpZiAoZWxlbWVudC5ub2RlVHlwZSAhPT0gTm9kZS5FTEVNRU5UX05PREUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IG5vZGVBdHRyaWJ1dGVzID0geyAuLi5tYXJrQXR0cmlidXRlcyB9O1xuXG4gICAgLy8gZGVmaW5lIGF0dHJpYnV0ZXMgZm9yIHRleHQgbm9kZXNcbiAgICBpZiAoZWxlbWVudC5ub2RlTmFtZSA9PT0gJ1NUUk9ORycpIHtcbiAgICAgIG5vZGVBdHRyaWJ1dGVzLmJvbGQgPSB0cnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHRGbiA9IG5vZGVzID0+IHtcbiAgICAgIGNvbnN0IGNoaWxkTm9kZXMgPSBBcnJheS5mcm9tKG5vZGVzKTtcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gQXJyYXkuZnJvbShjaGlsZE5vZGVzKVxuICAgICAgICAubWFwKG5vZGUgPT4gdGhpcy5kZXNlcmlhbGl6ZUVscyhub2RlLCBub2RlQXR0cmlidXRlcykpXG4gICAgICAgIC5mbGF0KCk7XG5cbiAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY2hpbGRyZW4ucHVzaChqc3goJ3RleHQnLCBub2RlQXR0cmlidXRlcywgJycpKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgIH07XG5cbiAgICBjb25zdCBjb3JyZWN0UnVsZSA9IHRoaXMucnVsZXMucmVkdWNlKChyZXMsIHJ1bGUpID0+IHtcbiAgICAgIHJldHVybiByZXMgfHwgcnVsZS5kZXNlcmlhbGl6ZShlbGVtZW50LCBuZXh0Rm4pO1xuICAgIH0sIG51bGwpO1xuXG4gICAgaWYgKGNvcnJlY3RSdWxlKSB7XG4gICAgICByZXR1cm4gY29ycmVjdFJ1bGU7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGROb2RlcyA9IEFycmF5LmZyb20oZWxlbWVudC5jaGlsZE5vZGVzKTtcbiAgICBjb25zdCBjaGlsZHJlbiA9IEFycmF5LmZyb20oY2hpbGROb2RlcylcbiAgICAgIC5tYXAobm9kZSA9PiB0aGlzLmRlc2VyaWFsaXplRWxzKG5vZGUsIG5vZGVBdHRyaWJ1dGVzKSlcbiAgICAgIC5mbGF0KCk7XG5cbiAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICBjaGlsZHJlbi5wdXNoKGpzeCgndGV4dCcsIG5vZGVBdHRyaWJ1dGVzLCAnJykpO1xuICAgIH1cblxuICAgIHN3aXRjaCAoZWxlbWVudC5ub2RlTmFtZSkge1xuICAgICAgY2FzZSAnVEFCTEUnOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlOiAndGFibGUnIH0sIGNoaWxkcmVuKTtcbiAgICAgIGNhc2UgJ1RCT0RZJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogJ3Rib2R5JyB9LCBjaGlsZHJlbik7XG4gICAgICBjYXNlICdUUic6XG4gICAgICAgIHJldHVybiBqc3goJ2VsZW1lbnQnLCB7IHR5cGU6ICd0cicgfSwgY2hpbGRyZW4pO1xuICAgICAgY2FzZSAnVEQnOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlOiAndGQnIH0sIGNoaWxkcmVuKTtcbiAgICAgIGNhc2UgJ0JPRFknOlxuICAgICAgICByZXR1cm4ganN4KCdmcmFnbWVudCcsIHt9LCBjaGlsZHJlbik7XG4gICAgICBjYXNlICdCUic6XG4gICAgICAgIHJldHVybiAnXFxuJztcbiAgICAgIGNhc2UgJ0JMT0NLUVVPVEUnOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlOiAncXVvdGUnIH0sIGNoaWxkcmVuKTtcbiAgICAgIGNhc2UgJ1AnOlxuICAgICAgICByZXR1cm4ganN4KCdlbGVtZW50JywgeyB0eXBlOiAncGFyYWdyYXBoJyB9LCBjaGlsZHJlbik7XG4gICAgICBjYXNlICdBJzpcbiAgICAgICAgcmV0dXJuIGpzeCgnZWxlbWVudCcsIHsgdHlwZTogJ2xpbmsnLCB1cmw6IGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdocmVmJykgfSwgY2hpbGRyZW4pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJu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
164
+ //# sourceMappingURL=test-serializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-serializer.js","names":["_react","_interopRequireDefault","require","_server","_escapeHtml","_slate","_slateHyperscript","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","allWhitespace","node","test","textContent","defaultParseHtml","html","DOMParser","Error","parsed","parseFromString","body","textNodes","document","createTreeWalker","NodeFilter","SHOW_TEXT","n","nextNode","nodeValue","parentNode","removeChild","Html","_createClass2","props","_this","_classCallCheck2","Text","isText","string","escapeHtml","text","bold","createElement","children","map","serializeEls","correctRule","rules","reduce","res","rule","serialize","type","href","url","deserialized","ReactServer","renderToStaticMarkup","React","inner","slice","parseHtml","firstChild","nodeType","Node","TEXT_NODE","concat","deserializeEls","element","markAttributes","undefined","jsx","ELEMENT_NODE","nodeAttributes","nodeName","nextFn","nodes","childNodes","Array","from","flat","deserialize","getAttribute","defaultBlock","_default","exports"],"sources":["../src/test-serializer.js"],"sourcesContent":["import React from 'react';\nimport ReactServer from 'react-dom/server';\nimport escapeHtml from 'escape-html';\nimport { Text } from 'slate';\nimport { jsx } from 'slate-hyperscript';\n\nfunction allWhitespace(node) {\n // Use ECMA-262 Edition 3 String and RegExp features\n return !/[^\\t\\n\\r ]/.test(node.textContent);\n}\n\nfunction defaultParseHtml(html) {\n if (typeof DOMParser === 'undefined') {\n throw new Error(\n 'The native `DOMParser` global which the `Html` serializer uses by default is not present in this environment. You must supply the `options.parseHtml` function instead.',\n );\n }\n\n const parsed = new DOMParser().parseFromString(html, 'text/html');\n\n const { body } = parsed;\n const textNodes = document.createTreeWalker(body, NodeFilter.SHOW_TEXT, null, null);\n let n = textNodes.nextNode();\n\n while (n) {\n if (allWhitespace(n) || n.nodeValue === '\\u200B') {\n n.parentNode.removeChild(n);\n }\n n = textNodes.nextNode();\n }\n\n return body;\n}\n\nclass Html {\n constructor(props) {\n this.defaultBlock = props.defaultBlock;\n this.parseHtml = defaultParseHtml;\n this.rules = props.rules;\n }\n\n serializeEls = (node) => {\n if (Text.isText(node)) {\n let string = escapeHtml(node.text);\n if (node.bold) {\n string = <strong>{string}</strong>;\n }\n return string;\n }\n\n let children = (node.children || []).map((n) => this.serializeEls(n));\n\n const correctRule = this.rules.reduce((res, rule) => {\n return res || rule.serialize(node, children);\n }, null);\n\n if (correctRule) {\n return correctRule;\n }\n\n switch (node.type) {\n case 'quote':\n return (\n <blockquote>\n <p>{children}</p>\n </blockquote>\n );\n case 'paragraph':\n return <p>{children}</p>;\n case 'link':\n return <a href={escapeHtml(node.url)}>{children}</a>;\n default:\n return children;\n }\n };\n\n serialize = (node) => {\n const deserialized = this.serializeEls(node);\n const html = ReactServer.renderToStaticMarkup(React.createElement('body', null, deserialized));\n const inner = html.slice(6, -7);\n return inner;\n };\n\n deserialize = (html) => {\n let body = this.parseHtml(html);\n\n if (body.firstChild && body.firstChild.nodeType === Node.TEXT_NODE) {\n body = this.parseHtml(`<span>${html}</span>`);\n }\n\n return this.deserializeEls(body);\n };\n\n deserializeEls = (element, markAttributes = {}) => {\n if (element.nodeType === Node.TEXT_NODE) {\n return jsx('text', markAttributes, element.textContent);\n } else if (element.nodeType !== Node.ELEMENT_NODE) {\n return null;\n }\n\n const nodeAttributes = { ...markAttributes };\n\n // define attributes for text nodes\n if (element.nodeName === 'STRONG') {\n nodeAttributes.bold = true;\n }\n\n const nextFn = (nodes) => {\n const childNodes = Array.from(nodes);\n const children = Array.from(childNodes)\n .map((node) => this.deserializeEls(node, nodeAttributes))\n .flat();\n\n if (children.length === 0) {\n children.push(jsx('text', nodeAttributes, ''));\n }\n\n return children;\n };\n\n const correctRule = this.rules.reduce((res, rule) => {\n return res || rule.deserialize(element, nextFn);\n }, null);\n\n if (correctRule) {\n return correctRule;\n }\n\n const childNodes = Array.from(element.childNodes);\n const children = Array.from(childNodes)\n .map((node) => this.deserializeEls(node, nodeAttributes))\n .flat();\n\n if (children.length === 0) {\n children.push(jsx('text', nodeAttributes, ''));\n }\n\n switch (element.nodeName) {\n case 'TABLE':\n return jsx('element', { type: 'table' }, children);\n case 'TBODY':\n return jsx('element', { type: 'tbody' }, children);\n case 'TR':\n return jsx('element', { type: 'tr' }, children);\n case 'TD':\n return jsx('element', { type: 'td' }, children);\n case 'BODY':\n return jsx('fragment', {}, children);\n case 'BR':\n return '\\n';\n case 'BLOCKQUOTE':\n return jsx('element', { type: 'quote' }, children);\n case 'P':\n return jsx('element', { type: 'paragraph' }, children);\n case 'A':\n return jsx('element', { type: 'link', url: element.getAttribute('href') }, children);\n default:\n return children;\n }\n };\n}\n\nexport default Html;\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AAAwC,SAAAK,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,aAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAExC,SAASW,aAAaA,CAACC,IAAI,EAAE;EAC3B;EACA,OAAO,CAAC,YAAY,CAACC,IAAI,CAACD,IAAI,CAACE,WAAW,CAAC;AAC7C;AAEA,SAASC,gBAAgBA,CAACC,IAAI,EAAE;EAC9B,IAAI,OAAOC,SAAS,KAAK,WAAW,EAAE;IACpC,MAAM,IAAIC,KAAK,CACb,yKACF,CAAC;EACH;EAEA,IAAMC,MAAM,GAAG,IAAIF,SAAS,CAAC,CAAC,CAACG,eAAe,CAACJ,IAAI,EAAE,WAAW,CAAC;EAEjE,IAAQK,IAAI,GAAKF,MAAM,CAAfE,IAAI;EACZ,IAAMC,SAAS,GAAGC,QAAQ,CAACC,gBAAgB,CAACH,IAAI,EAAEI,UAAU,CAACC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;EACnF,IAAIC,CAAC,GAAGL,SAAS,CAACM,QAAQ,CAAC,CAAC;EAE5B,OAAOD,CAAC,EAAE;IACR,IAAIhB,aAAa,CAACgB,CAAC,CAAC,IAAIA,CAAC,CAACE,SAAS,KAAK,QAAQ,EAAE;MAChDF,CAAC,CAACG,UAAU,CAACC,WAAW,CAACJ,CAAC,CAAC;IAC7B;IACAA,CAAC,GAAGL,SAAS,CAACM,QAAQ,CAAC,CAAC;EAC1B;EAEA,OAAOP,IAAI;AACb;AAAC,IAEKW,IAAI,oBAAAC,aAAA,aACR,SAAAD,KAAYE,KAAK,EAAE;EAAA,IAAAC,KAAA;EAAA,IAAAC,gBAAA,mBAAAJ,IAAA;EAAA,IAAAzB,gBAAA,mCAMJ,UAACK,IAAI,EAAK;IACvB,IAAIyB,WAAI,CAACC,MAAM,CAAC1B,IAAI,CAAC,EAAE;MACrB,IAAI2B,MAAM,GAAG,IAAAC,sBAAU,EAAC5B,IAAI,CAAC6B,IAAI,CAAC;MAClC,IAAI7B,IAAI,CAAC8B,IAAI,EAAE;QACbH,MAAM,gBAAG5D,MAAA,YAAAgE,aAAA,iBAASJ,MAAe,CAAC;MACpC;MACA,OAAOA,MAAM;IACf;IAEA,IAAIK,QAAQ,GAAG,CAAChC,IAAI,CAACgC,QAAQ,IAAI,EAAE,EAAEC,GAAG,CAAC,UAAClB,CAAC;MAAA,OAAKQ,KAAI,CAACW,YAAY,CAACnB,CAAC,CAAC;IAAA,EAAC;IAErE,IAAMoB,WAAW,GAAGZ,KAAI,CAACa,KAAK,CAACC,MAAM,CAAC,UAACC,GAAG,EAAEC,IAAI,EAAK;MACnD,OAAOD,GAAG,IAAIC,IAAI,CAACC,SAAS,CAACxC,IAAI,EAAEgC,QAAQ,CAAC;IAC9C,CAAC,EAAE,IAAI,CAAC;IAER,IAAIG,WAAW,EAAE;MACf,OAAOA,WAAW;IACpB;IAEA,QAAQnC,IAAI,CAACyC,IAAI;MACf,KAAK,OAAO;QACV,oBACE1E,MAAA,YAAAgE,aAAA,kCACEhE,MAAA,YAAAgE,aAAA,YAAIC,QAAY,CACN,CAAC;MAEjB,KAAK,WAAW;QACd,oBAAOjE,MAAA,YAAAgE,aAAA,YAAIC,QAAY,CAAC;MAC1B,KAAK,MAAM;QACT,oBAAOjE,MAAA,YAAAgE,aAAA;UAAGW,IAAI,EAAE,IAAAd,sBAAU,EAAC5B,IAAI,CAAC2C,GAAG;QAAE,GAAEX,QAAY,CAAC;MACtD;QACE,OAAOA,QAAQ;IACnB;EACF,CAAC;EAAA,IAAArC,gBAAA,gCAEW,UAACK,IAAI,EAAK;IACpB,IAAM4C,YAAY,GAAGrB,KAAI,CAACW,YAAY,CAAClC,IAAI,CAAC;IAC5C,IAAMI,IAAI,GAAGyC,kBAAW,CAACC,oBAAoB,eAACC,iBAAK,CAAChB,aAAa,CAAC,MAAM,EAAE,IAAI,EAAEa,YAAY,CAAC,CAAC;IAC9F,IAAMI,KAAK,GAAG5C,IAAI,CAAC6C,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,OAAOD,KAAK;EACd,CAAC;EAAA,IAAArD,gBAAA,kCAEa,UAACS,IAAI,EAAK;IACtB,IAAIK,IAAI,GAAGc,KAAI,CAAC2B,SAAS,CAAC9C,IAAI,CAAC;IAE/B,IAAIK,IAAI,CAAC0C,UAAU,IAAI1C,IAAI,CAAC0C,UAAU,CAACC,QAAQ,KAAKC,IAAI,CAACC,SAAS,EAAE;MAClE7C,IAAI,GAAGc,KAAI,CAAC2B,SAAS,UAAAK,MAAA,CAAUnD,IAAI,YAAS,CAAC;IAC/C;IAEA,OAAOmB,KAAI,CAACiC,cAAc,CAAC/C,IAAI,CAAC;EAClC,CAAC;EAAA,IAAAd,gBAAA,qCAEgB,UAAC8D,OAAO,EAA0B;IAAA,IAAxBC,cAAc,GAAApE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAqE,SAAA,GAAArE,SAAA,MAAG,CAAC,CAAC;IAC5C,IAAImE,OAAO,CAACL,QAAQ,KAAKC,IAAI,CAACC,SAAS,EAAE;MACvC,OAAO,IAAAM,qBAAG,EAAC,MAAM,EAAEF,cAAc,EAAED,OAAO,CAACvD,WAAW,CAAC;IACzD,CAAC,MAAM,IAAIuD,OAAO,CAACL,QAAQ,KAAKC,IAAI,CAACQ,YAAY,EAAE;MACjD,OAAO,IAAI;IACb;IAEA,IAAMC,cAAc,GAAA3E,aAAA,KAAQuE,cAAc,CAAE;;IAE5C;IACA,IAAID,OAAO,CAACM,QAAQ,KAAK,QAAQ,EAAE;MACjCD,cAAc,CAAChC,IAAI,GAAG,IAAI;IAC5B;IAEA,IAAMkC,MAAM,GAAG,SAATA,MAAMA,CAAIC,KAAK,EAAK;MACxB,IAAMC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACH,KAAK,CAAC;MACpC,IAAMjC,QAAQ,GAAGmC,KAAK,CAACC,IAAI,CAACF,UAAU,CAAC,CACpCjC,GAAG,CAAC,UAACjC,IAAI;QAAA,OAAKuB,KAAI,CAACiC,cAAc,CAACxD,IAAI,EAAE8D,cAAc,CAAC;MAAA,EAAC,CACxDO,IAAI,CAAC,CAAC;MAET,IAAIrC,QAAQ,CAACzC,MAAM,KAAK,CAAC,EAAE;QACzByC,QAAQ,CAAC/C,IAAI,CAAC,IAAA2E,qBAAG,EAAC,MAAM,EAAEE,cAAc,EAAE,EAAE,CAAC,CAAC;MAChD;MAEA,OAAO9B,QAAQ;IACjB,CAAC;IAED,IAAMG,WAAW,GAAGZ,KAAI,CAACa,KAAK,CAACC,MAAM,CAAC,UAACC,GAAG,EAAEC,IAAI,EAAK;MACnD,OAAOD,GAAG,IAAIC,IAAI,CAAC+B,WAAW,CAACb,OAAO,EAAEO,MAAM,CAAC;IACjD,CAAC,EAAE,IAAI,CAAC;IAER,IAAI7B,WAAW,EAAE;MACf,OAAOA,WAAW;IACpB;IAEA,IAAM+B,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACX,OAAO,CAACS,UAAU,CAAC;IACjD,IAAMlC,QAAQ,GAAGmC,KAAK,CAACC,IAAI,CAACF,UAAU,CAAC,CACpCjC,GAAG,CAAC,UAACjC,IAAI;MAAA,OAAKuB,KAAI,CAACiC,cAAc,CAACxD,IAAI,EAAE8D,cAAc,CAAC;IAAA,EAAC,CACxDO,IAAI,CAAC,CAAC;IAET,IAAIrC,QAAQ,CAACzC,MAAM,KAAK,CAAC,EAAE;MACzByC,QAAQ,CAAC/C,IAAI,CAAC,IAAA2E,qBAAG,EAAC,MAAM,EAAEE,cAAc,EAAE,EAAE,CAAC,CAAC;IAChD;IAEA,QAAQL,OAAO,CAACM,QAAQ;MACtB,KAAK,OAAO;QACV,OAAO,IAAAH,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAQ,CAAC,EAAET,QAAQ,CAAC;MACpD,KAAK,OAAO;QACV,OAAO,IAAA4B,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAQ,CAAC,EAAET,QAAQ,CAAC;MACpD,KAAK,IAAI;QACP,OAAO,IAAA4B,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAK,CAAC,EAAET,QAAQ,CAAC;MACjD,KAAK,IAAI;QACP,OAAO,IAAA4B,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAK,CAAC,EAAET,QAAQ,CAAC;MACjD,KAAK,MAAM;QACT,OAAO,IAAA4B,qBAAG,EAAC,UAAU,EAAE,CAAC,CAAC,EAAE5B,QAAQ,CAAC;MACtC,KAAK,IAAI;QACP,OAAO,IAAI;MACb,KAAK,YAAY;QACf,OAAO,IAAA4B,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAQ,CAAC,EAAET,QAAQ,CAAC;MACpD,KAAK,GAAG;QACN,OAAO,IAAA4B,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE;QAAY,CAAC,EAAET,QAAQ,CAAC;MACxD,KAAK,GAAG;QACN,OAAO,IAAA4B,qBAAG,EAAC,SAAS,EAAE;UAAEnB,IAAI,EAAE,MAAM;UAAEE,GAAG,EAAEc,OAAO,CAACc,YAAY,CAAC,MAAM;QAAE,CAAC,EAAEvC,QAAQ,CAAC;MACtF;QACE,OAAOA,QAAQ;IACnB;EACF,CAAC;EA3HC,IAAI,CAACwC,YAAY,GAAGlD,KAAK,CAACkD,YAAY;EACtC,IAAI,CAACtB,SAAS,GAAG/C,gBAAgB;EACjC,IAAI,CAACiC,KAAK,GAAGd,KAAK,CAACc,KAAK;AAC1B,CAAC;AAAA,IAAAqC,QAAA,GA2HYrD,IAAI;AAAAsD,OAAA,cAAAD,QAAA"}
package/lib/with-mask.js CHANGED
@@ -1,69 +1,47 @@
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.withMask = exports.buildLayoutFromMarkup = 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
10
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
-
16
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
-
18
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
-
20
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
14
  var _react = _interopRequireDefault(require("react"));
23
-
24
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
16
  var _mask = _interopRequireDefault(require("./mask"));
27
-
28
17
  var _componentize2 = _interopRequireDefault(require("./componentize"));
29
-
30
18
  var _serialization = require("./serialization");
31
-
32
19
  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); }; }
33
-
34
20
  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; } }
35
-
36
21
  var buildLayoutFromMarkup = function buildLayoutFromMarkup(markup, type) {
37
22
  var _componentize = (0, _componentize2["default"])(markup, type),
38
- processed = _componentize.markup;
39
-
23
+ processed = _componentize.markup;
40
24
  var value = (0, _serialization.deserialize)(processed);
41
25
  return value;
42
26
  };
43
-
44
27
  exports.buildLayoutFromMarkup = buildLayoutFromMarkup;
45
-
46
28
  var withMask = function withMask(type, renderChildren) {
47
29
  var _class;
48
-
49
30
  return _class = /*#__PURE__*/function (_React$Component) {
50
31
  (0, _inherits2["default"])(WithMask, _React$Component);
51
-
52
32
  var _super = _createSuper(WithMask);
53
-
54
33
  function WithMask() {
55
34
  (0, _classCallCheck2["default"])(this, WithMask);
56
35
  return _super.apply(this, arguments);
57
36
  }
58
-
59
37
  (0, _createClass2["default"])(WithMask, [{
60
38
  key: "render",
61
39
  value: function render() {
62
40
  var _this$props = this.props,
63
- markup = _this$props.markup,
64
- layout = _this$props.layout,
65
- value = _this$props.value,
66
- onChange = _this$props.onChange;
41
+ markup = _this$props.markup,
42
+ layout = _this$props.layout,
43
+ value = _this$props.value,
44
+ onChange = _this$props.onChange;
67
45
  var maskLayout = layout ? layout : buildLayoutFromMarkup(markup, type);
68
46
  return /*#__PURE__*/_react["default"].createElement(_mask["default"], {
69
47
  layout: maskLayout,
@@ -79,7 +57,6 @@ var withMask = function withMask(type, renderChildren) {
79
57
  * At the start we'll probably work with markup
80
58
  */
81
59
  markup: _propTypes["default"].string,
82
-
83
60
  /**
84
61
  * 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`.
85
62
  */
@@ -88,6 +65,5 @@ var withMask = function withMask(type, renderChildren) {
88
65
  onChange: _propTypes["default"].func
89
66
  }), _class;
90
67
  };
91
-
92
68
  exports.withMask = withMask;
93
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJidWlsZExheW91dEZyb21NYXJrdXAiLCJtYXJrdXAiLCJ0eXBlIiwiY29tcG9uZW50aXplIiwicHJvY2Vzc2VkIiwidmFsdWUiLCJkZXNlcmlhbGl6ZSIsIndpdGhNYXNrIiwicmVuZGVyQ2hpbGRyZW4iLCJwcm9wcyIsImxheW91dCIsIm9uQ2hhbmdlIiwibWFza0xheW91dCIsIlJlYWN0IiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwic3RyaW5nIiwib2JqZWN0IiwiZnVuYyJdLCJzb3VyY2VzIjpbIi4uL3NyYy93aXRoLW1hc2suanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IE1hc2sgZnJvbSAnLi9tYXNrJztcbmltcG9ydCBjb21wb25lbnRpemUgZnJvbSAnLi9jb21wb25lbnRpemUnO1xuaW1wb3J0IHsgZGVzZXJpYWxpemUgfSBmcm9tICcuL3NlcmlhbGl6YXRpb24nO1xuXG5leHBvcnQgY29uc3QgYnVpbGRMYXlvdXRGcm9tTWFya3VwID0gKG1hcmt1cCwgdHlwZSkgPT4ge1xuICBjb25zdCB7IG1hcmt1cDogcHJvY2Vzc2VkIH0gPSBjb21wb25lbnRpemUobWFya3VwLCB0eXBlKTtcbiAgY29uc3QgdmFsdWUgPSBkZXNlcmlhbGl6ZShwcm9jZXNzZWQpO1xuICByZXR1cm4gdmFsdWU7XG59O1xuXG5leHBvcnQgY29uc3Qgd2l0aE1hc2sgPSAodHlwZSwgcmVuZGVyQ2hpbGRyZW4pID0+IHtcbiAgcmV0dXJuIGNsYXNzIFdpdGhNYXNrIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgLyoqXG4gICAgICAgKiBBdCB0aGUgc3RhcnQgd2UnbGwgcHJvYmFibHkgd29yayB3aXRoIG1hcmt1cFxuICAgICAgICovXG4gICAgICBtYXJrdXA6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICAvKipcbiAgICAgICAqIE9uY2Ugd2Ugc3RhcnQgYXV0aG9yaW5nLCBpdCBtYXkgbWFrZSBzZW5zZSBmb3IgdXNlIHRvIHVzIGxheW91dCwgd2hpY2ggd2lsbCBiZSBhIHNpbXBsZSBqcyBvYmplY3QgdGhhdCBtYXBzIHRvIGBzbGF0ZS5WYWx1ZWAuXG4gICAgICAgKi9cbiAgICAgIGxheW91dDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICAgIHZhbHVlOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jXG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHsgbWFya3VwLCBsYXlvdXQsIHZhbHVlLCBvbkNoYW5nZSB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3QgbWFza0xheW91dCA9IGxheW91dCA/IGxheW91dCA6IGJ1aWxkTGF5b3V0RnJvbU1hcmt1cChtYXJrdXAsIHR5cGUpO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPE1hc2tcbiAgICAgICAgICBsYXlvdXQ9e21hc2tMYXlvdXR9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICByZW5kZXJDaGlsZHJlbj17cmVuZGVyQ2hpbGRyZW4odGhpcy5wcm9wcyl9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cbiAgfTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7QUFFTyxJQUFNQSxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXdCLENBQUNDLE1BQUQsRUFBU0MsSUFBVCxFQUFrQjtFQUNyRCxvQkFBOEIsSUFBQUMseUJBQUEsRUFBYUYsTUFBYixFQUFxQkMsSUFBckIsQ0FBOUI7RUFBQSxJQUFnQkUsU0FBaEIsaUJBQVFILE1BQVI7O0VBQ0EsSUFBTUksS0FBSyxHQUFHLElBQUFDLDBCQUFBLEVBQVlGLFNBQVosQ0FBZDtFQUNBLE9BQU9DLEtBQVA7QUFDRCxDQUpNOzs7O0FBTUEsSUFBTUUsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0wsSUFBRCxFQUFPTSxjQUFQLEVBQTBCO0VBQUE7O0VBQ2hEO0lBQUE7O0lBQUE7O0lBQUE7TUFBQTtNQUFBO0lBQUE7O0lBQUE7TUFBQTtNQUFBLE9BY0Usa0JBQVM7UUFDUCxrQkFBNEMsS0FBS0MsS0FBakQ7UUFBQSxJQUFRUixNQUFSLGVBQVFBLE1BQVI7UUFBQSxJQUFnQlMsTUFBaEIsZUFBZ0JBLE1BQWhCO1FBQUEsSUFBd0JMLEtBQXhCLGVBQXdCQSxLQUF4QjtRQUFBLElBQStCTSxRQUEvQixlQUErQkEsUUFBL0I7UUFFQSxJQUFNQyxVQUFVLEdBQUdGLE1BQU0sR0FBR0EsTUFBSCxHQUFZVixxQkFBcUIsQ0FBQ0MsTUFBRCxFQUFTQyxJQUFULENBQTFEO1FBQ0Esb0JBQ0UsZ0NBQUMsZ0JBQUQ7VUFDRSxNQUFNLEVBQUVVLFVBRFY7VUFFRSxLQUFLLEVBQUVQLEtBRlQ7VUFHRSxRQUFRLEVBQUVNLFFBSFo7VUFJRSxjQUFjLEVBQUVILGNBQWMsQ0FBQyxLQUFLQyxLQUFOO1FBSmhDLEVBREY7TUFRRDtJQTFCSDtJQUFBO0VBQUEsRUFBOEJJLGlCQUFBLENBQU1DLFNBQXBDLHlEQUNxQjtJQUNqQjtBQUNOO0FBQ0E7SUFDTWIsTUFBTSxFQUFFYyxxQkFBQSxDQUFVQyxNQUpEOztJQUtqQjtBQUNOO0FBQ0E7SUFDTU4sTUFBTSxFQUFFSyxxQkFBQSxDQUFVRSxNQVJEO0lBU2pCWixLQUFLLEVBQUVVLHFCQUFBLENBQVVFLE1BVEE7SUFVakJOLFFBQVEsRUFBRUkscUJBQUEsQ0FBVUc7RUFWSCxDQURyQjtBQTRCRCxDQTdCTSJ9
69
+ //# sourceMappingURL=with-mask.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"with-mask.js","names":["buildLayoutFromMarkup","markup","type","componentize","processed","value","deserialize","document","withMask","renderChildren","props","layout","onChange","maskLayout","React","Component","PropTypes","string","object","func"],"sources":["../src/with-mask.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Mask from './mask';\nimport componentize from './componentize';\nimport { deserialize } from './serialization';\n\nexport const buildLayoutFromMarkup = (markup, type) => {\n const { markup: processed } = componentize(markup, type);\n const value = deserialize(processed);\n return value.document;\n};\n\nexport const withMask = (type, renderChildren) => {\n return class WithMask extends React.Component {\n static propTypes = {\n /**\n * At the start we'll probably work with markup\n */\n markup: PropTypes.string,\n /**\n * 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`.\n */\n layout: PropTypes.object,\n value: PropTypes.object,\n onChange: PropTypes.func\n };\n\n render() {\n const { markup, layout, value, onChange } = this.props;\n\n const maskLayout = layout ? layout : buildLayoutFromMarkup(markup, type);\n return (\n <Mask\n layout={maskLayout}\n value={value}\n onChange={onChange}\n renderChildren={renderChildren(this.props)}\n />\n );\n }\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEO,IAAMA,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,MAAD,EAASC,IAAT,EAAkB;EACrD,oBAA8B,IAAAC,yBAAA,EAAaF,MAAb,EAAqBC,IAArB,CAA9B;EAAA,IAAgBE,SAAhB,iBAAQH,MAAR;;EACA,IAAMI,KAAK,GAAG,IAAAC,0BAAA,EAAYF,SAAZ,CAAd;EACA,OAAOC,KAAK,CAACE,QAAb;AACD,CAJM;;;;AAMA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACN,IAAD,EAAOO,cAAP,EAA0B;EAAA;;EAChD;IAAA;;IAAA;;IAAA;MAAA;MAAA;IAAA;;IAAA;MAAA;MAAA,OAcE,kBAAS;QACP,kBAA4C,KAAKC,KAAjD;QAAA,IAAQT,MAAR,eAAQA,MAAR;QAAA,IAAgBU,MAAhB,eAAgBA,MAAhB;QAAA,IAAwBN,KAAxB,eAAwBA,KAAxB;QAAA,IAA+BO,QAA/B,eAA+BA,QAA/B;QAEA,IAAMC,UAAU,GAAGF,MAAM,GAAGA,MAAH,GAAYX,qBAAqB,CAACC,MAAD,EAASC,IAAT,CAA1D;QACA,oBACE,gCAAC,gBAAD;UACE,MAAM,EAAEW,UADV;UAEE,KAAK,EAAER,KAFT;UAGE,QAAQ,EAAEO,QAHZ;UAIE,cAAc,EAAEH,cAAc,CAAC,KAAKC,KAAN;QAJhC,EADF;MAQD;IA1BH;IAAA;EAAA,EAA8BI,iBAAA,CAAMC,SAApC,yDACqB;IACjB;AACN;AACA;IACMd,MAAM,EAAEe,qBAAA,CAAUC,MAJD;;IAKjB;AACN;AACA;IACMN,MAAM,EAAEK,qBAAA,CAAUE,MARD;IASjBb,KAAK,EAAEW,qBAAA,CAAUE,MATA;IAUjBN,QAAQ,EAAEI,qBAAA,CAAUG;EAVH,CADrB;AA4BD,CA7BM"}
1
+ {"version":3,"file":"with-mask.js","names":["_react","_interopRequireDefault","require","_propTypes","_mask","_componentize2","_serialization","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","buildLayoutFromMarkup","markup","type","_componentize","componentize","processed","value","deserialize","exports","withMask","renderChildren","_class","_React$Component","_inherits2","WithMask","_super","_classCallCheck2","_createClass2","key","render","_this$props","props","layout","onChange","maskLayout","createElement","React","Component","_defineProperty2","PropTypes","string","object","func"],"sources":["../src/with-mask.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Mask from './mask';\nimport componentize from './componentize';\nimport { deserialize } from './serialization';\n\nexport const buildLayoutFromMarkup = (markup, type) => {\n const { markup: processed } = componentize(markup, type);\n const value = deserialize(processed);\n return value;\n};\n\nexport const withMask = (type, renderChildren) => {\n return class WithMask extends React.Component {\n static propTypes = {\n /**\n * At the start we'll probably work with markup\n */\n markup: PropTypes.string,\n /**\n * 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`.\n */\n layout: PropTypes.object,\n value: PropTypes.object,\n onChange: PropTypes.func,\n };\n\n render() {\n const { markup, layout, value, onChange } = this.props;\n\n const maskLayout = layout ? layout : buildLayoutFromMarkup(markup, type);\n return <Mask layout={maskLayout} value={value} onChange={onChange} renderChildren={renderChildren(this.props)} />;\n }\n };\n};\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-lib/mask-markup",
3
- "version": "2.0.0-beta.1",
3
+ "version": "2.0.0-beta.2",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "module": "src/index.js",
@@ -9,21 +9,21 @@
9
9
  },
10
10
  "dependencies": {
11
11
  "@material-ui/core": "^3.9.3",
12
- "@pie-lib/drag": "^1.1.52",
13
- "@pie-lib/math-rendering": "^2.5.0",
14
- "@pie-lib/render-ui": "^4.13.4",
12
+ "@pie-lib/drag": "^2.2.1",
13
+ "@pie-lib/math-rendering": "^2.5.17",
14
+ "@pie-lib/render-ui": "^4.14.28",
15
15
  "classnames": "^2.2.6",
16
16
  "debug": "^4.1.1",
17
17
  "escape-html": "^1.0.3",
18
18
  "immutable": ">=3.8.1",
19
19
  "prop-types": "^15.7.2",
20
20
  "react": "^16.8.1",
21
- "react-dnd-html5-backend": "^11.1.3",
22
- "slate": "^0.82.1",
21
+ "react-dnd-html5-backend": "^14.0.2",
22
+ "slate": "^0.94.1",
23
23
  "slate-html-serializer": "^0.8.13",
24
24
  "slate-hyperscript": "^0.77.0",
25
25
  "slate-prop-types": "^0.5.44",
26
- "slate-react": "^0.82.1",
26
+ "slate-react": "^0.97.2",
27
27
  "to-style": "^1.3.3"
28
28
  },
29
29
  "keywords": [],
@@ -6,6 +6,7 @@ import Chip from '@material-ui/core/Chip';
6
6
  import classnames from 'classnames';
7
7
  import ReactDOM from 'react-dom';
8
8
  import { renderMath } from '@pie-lib/math-rendering';
9
+ import { color } from '@pie-lib/render-ui';
9
10
 
10
11
  export const DRAG_TYPE = 'MaskBlank';
11
12
 
@@ -14,7 +15,7 @@ class BlankContentComp extends React.Component {
14
15
  disabled: PropTypes.bool,
15
16
  choice: PropTypes.object,
16
17
  classes: PropTypes.object,
17
- connectDragSource: PropTypes.func
18
+ connectDragSource: PropTypes.func,
18
19
  };
19
20
 
20
21
  componentDidUpdate() {
@@ -24,10 +25,14 @@ class BlankContentComp extends React.Component {
24
25
  render() {
25
26
  const { connectDragSource, choice, classes, disabled } = this.props;
26
27
 
28
+ // TODO the Chip element is causing drag problems on touch devices. Avoid using Chip and consider refactoring the code. Keep in mind that Chip is a span with a button role, which interferes with seamless touch device dragging.
29
+
27
30
  return connectDragSource(
28
31
  <span className={classnames(classes.choice, disabled && classes.disabled)}>
29
32
  <Chip
30
- ref={ref => {
33
+ clickable={false}
34
+ disabled={true}
35
+ ref={(ref) => {
31
36
  //eslint-disable-next-line
32
37
  this.rootRef = ReactDOM.findDOMNode(ref);
33
38
  }}
@@ -35,7 +40,7 @@ class BlankContentComp extends React.Component {
35
40
  label={
36
41
  <span
37
42
  className={classes.chipLabel}
38
- ref={ref => {
43
+ ref={(ref) => {
39
44
  if (ref) {
40
45
  ref.innerHTML = choice.value || ' ';
41
46
  }
@@ -47,16 +52,22 @@ class BlankContentComp extends React.Component {
47
52
  variant={disabled ? 'outlined' : undefined}
48
53
  />
49
54
  </span>,
50
- {}
55
+ {},
51
56
  );
52
57
  }
53
58
  }
54
59
 
55
- export const BlankContent = withStyles(theme => ({
60
+ export const BlankContent = withStyles((theme) => ({
56
61
  choice: {
57
- border: `solid 0px ${theme.palette.primary.main}`
62
+ border: `solid 0px ${theme.palette.primary.main}`,
63
+ borderRadius: theme.spacing.unit * 2,
64
+ margin: theme.spacing.unit / 2,
65
+ transform: 'translate(0, 0)',
58
66
  },
59
67
  chip: {
68
+ backgroundColor: color.background(),
69
+ border: `1px solid ${color.text()}`,
70
+ color: color.text(),
60
71
  alignItems: 'center',
61
72
  display: 'inline-flex',
62
73
  height: 'initial',
@@ -64,16 +75,19 @@ export const BlankContent = withStyles(theme => ({
64
75
  fontSize: 'inherit',
65
76
  whiteSpace: 'pre-wrap',
66
77
  maxWidth: '374px',
67
- margin: '4px'
78
+ // Added for touch devices, for image content.
79
+ // This will prevent the context menu from appearing and not allowing other interactions with the image.
80
+ // If interactions with the image in the token will be requested we should handle only the context Menu.
81
+ pointerEvents: 'none',
68
82
  },
69
83
  chipLabel: {
70
84
  whiteSpace: 'pre-wrap',
71
85
  '& img': {
72
86
  display: 'block',
73
- padding: '2px 0'
74
- }
87
+ padding: '2px 0',
88
+ },
75
89
  },
76
- disabled: {}
90
+ disabled: {},
77
91
  }))(BlankContentComp);
78
92
 
79
93
  const tileSource = {
@@ -83,14 +97,14 @@ const tileSource = {
83
97
  beginDrag(props) {
84
98
  return {
85
99
  choice: props.choice,
86
- instanceId: props.instanceId
100
+ instanceId: props.instanceId,
87
101
  };
88
- }
102
+ },
89
103
  };
90
104
 
91
105
  const DragDropTile = DragSource(DRAG_TYPE, tileSource, (connect, monitor) => ({
92
106
  connectDragSource: connect.dragSource(),
93
- isDragging: monitor.isDragging()
107
+ isDragging: monitor.isDragging(),
94
108
  }))(BlankContent);
95
109
 
96
110
  export default DragDropTile;
@@ -2,16 +2,15 @@ import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import findKey from 'lodash/findKey';
4
4
  import Choice from './choice';
5
+ import DragDroppablePlaceholder from '@pie-lib/drag/lib/drag-in-the-blank-dp';
5
6
 
6
7
  export default class Choices extends React.Component {
7
8
  static propTypes = {
8
9
  disabled: PropTypes.bool,
9
10
  duplicates: PropTypes.bool,
10
- choices: PropTypes.arrayOf(
11
- PropTypes.shape({ label: PropTypes.string, value: PropTypes.string })
12
- ),
11
+ choices: PropTypes.arrayOf(PropTypes.shape({ label: PropTypes.string, value: PropTypes.string })),
13
12
  value: PropTypes.object,
14
- choicePosition: PropTypes.string.isRequired
13
+ choicePosition: PropTypes.string.isRequired,
15
14
  };
16
15
 
17
16
  getStyleForWrapper = () => {
@@ -20,39 +19,44 @@ export default class Choices extends React.Component {
20
19
  switch (choicePosition) {
21
20
  case 'above':
22
21
  return {
23
- margin: '0 0 40px 0'
22
+ margin: '0 0 40px 0',
24
23
  };
24
+
25
25
  case 'below':
26
26
  return {
27
- margin: '40px 0 0 0'
27
+ margin: '40px 0 0 0',
28
28
  };
29
+
29
30
  case 'right':
30
31
  return {
31
- margin: '0 0 0 40px'
32
+ margin: '0 0 0 40px',
32
33
  };
34
+
33
35
  default:
34
36
  return {
35
- margin: '0 40px 0 0'
37
+ margin: '0 40px 0 0',
36
38
  };
37
39
  }
38
40
  };
39
41
 
40
42
  render() {
41
43
  const { disabled, duplicates, choices, value } = this.props;
42
- const filteredChoices = choices.filter(c => {
44
+ const filteredChoices = choices.filter((c) => {
43
45
  if (duplicates === true) {
44
46
  return true;
45
47
  }
46
- const foundChoice = findKey(value, v => v === c.id);
48
+ const foundChoice = findKey(value, (v) => v === c.id);
47
49
  return foundChoice === undefined;
48
50
  });
49
51
  const elementStyle = this.getStyleForWrapper();
50
52
 
51
53
  return (
52
54
  <div style={elementStyle}>
53
- {filteredChoices.map((c, index) => (
54
- <Choice key={`${c.value}-${index}`} disabled={disabled} choice={c} />
55
- ))}
55
+ <DragDroppablePlaceholder disabled={disabled}>
56
+ {filteredChoices.map((c, index) => (
57
+ <Choice key={`${c.value}-${index}`} disabled={disabled} choice={c} />
58
+ ))}
59
+ </DragDroppablePlaceholder>
56
60
  </div>
57
61
  );
58
62
  }