@pie-lib/editable-html 7.17.4-next.53 → 7.17.4-next.556

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 (98) hide show
  1. package/CHANGELOG.json +150 -0
  2. package/CHANGELOG.md +421 -0
  3. package/lib/editor.js +390 -172
  4. package/lib/editor.js.map +1 -1
  5. package/lib/index.js +66 -53
  6. package/lib/index.js.map +1 -1
  7. package/lib/parse-html.js.map +1 -1
  8. package/lib/plugins/characters/custom-popper.js +73 -0
  9. package/lib/plugins/characters/custom-popper.js.map +1 -0
  10. package/lib/plugins/characters/index.js +285 -0
  11. package/lib/plugins/characters/index.js.map +1 -0
  12. package/lib/plugins/characters/utils.js +381 -0
  13. package/lib/plugins/characters/utils.js.map +1 -0
  14. package/lib/plugins/image/alt-dialog.js +119 -0
  15. package/lib/plugins/image/alt-dialog.js.map +1 -0
  16. package/lib/plugins/image/component.js +253 -77
  17. package/lib/plugins/image/component.js.map +1 -1
  18. package/lib/plugins/image/image-toolbar.js +95 -61
  19. package/lib/plugins/image/image-toolbar.js.map +1 -1
  20. package/lib/plugins/image/index.js +62 -20
  21. package/lib/plugins/image/index.js.map +1 -1
  22. package/lib/plugins/image/insert-image-handler.js +9 -15
  23. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  24. package/lib/plugins/index.js +20 -12
  25. package/lib/plugins/index.js.map +1 -1
  26. package/lib/plugins/list/index.js +82 -14
  27. package/lib/plugins/list/index.js.map +1 -1
  28. package/lib/plugins/math/index.js +50 -55
  29. package/lib/plugins/math/index.js.map +1 -1
  30. package/lib/plugins/media/index.js +71 -27
  31. package/lib/plugins/media/index.js.map +1 -1
  32. package/lib/plugins/media/media-dialog.js +248 -72
  33. package/lib/plugins/media/media-dialog.js.map +1 -1
  34. package/lib/plugins/media/media-toolbar.js +24 -30
  35. package/lib/plugins/media/media-toolbar.js.map +1 -1
  36. package/lib/plugins/media/media-wrapper.js +28 -35
  37. package/lib/plugins/media/media-wrapper.js.map +1 -1
  38. package/lib/plugins/respArea/drag-in-the-blank/choice.js +68 -46
  39. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  40. package/lib/plugins/respArea/drag-in-the-blank/index.js +12 -12
  41. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  42. package/lib/plugins/respArea/explicit-constructed-response/index.js +10 -9
  43. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  44. package/lib/plugins/respArea/icons/index.js +11 -11
  45. package/lib/plugins/respArea/icons/index.js.map +1 -1
  46. package/lib/plugins/respArea/index.js +58 -42
  47. package/lib/plugins/respArea/index.js.map +1 -1
  48. package/lib/plugins/respArea/inline-dropdown/index.js +8 -8
  49. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  50. package/lib/plugins/respArea/utils.js +5 -5
  51. package/lib/plugins/respArea/utils.js.map +1 -1
  52. package/lib/plugins/table/icons/index.js +12 -12
  53. package/lib/plugins/table/icons/index.js.map +1 -1
  54. package/lib/plugins/table/index.js +83 -27
  55. package/lib/plugins/table/index.js.map +1 -1
  56. package/lib/plugins/table/table-toolbar.js +41 -50
  57. package/lib/plugins/table/table-toolbar.js.map +1 -1
  58. package/lib/plugins/toolbar/default-toolbar.js +19 -13
  59. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  60. package/lib/plugins/toolbar/done-button.js +5 -5
  61. package/lib/plugins/toolbar/done-button.js.map +1 -1
  62. package/lib/plugins/toolbar/editor-and-toolbar.js +51 -44
  63. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  64. package/lib/plugins/toolbar/index.js +5 -5
  65. package/lib/plugins/toolbar/index.js.map +1 -1
  66. package/lib/plugins/toolbar/toolbar-buttons.js +49 -52
  67. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  68. package/lib/plugins/toolbar/toolbar.js +64 -62
  69. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  70. package/lib/plugins/utils.js +1 -1
  71. package/lib/plugins/utils.js.map +1 -1
  72. package/lib/serialization.js +32 -9
  73. package/lib/serialization.js.map +1 -1
  74. package/lib/theme.js.map +1 -1
  75. package/package.json +7 -6
  76. package/src/editor.jsx +224 -26
  77. package/src/index.jsx +22 -5
  78. package/src/plugins/characters/custom-popper.js +48 -0
  79. package/src/plugins/characters/index.jsx +268 -0
  80. package/src/plugins/characters/utils.js +447 -0
  81. package/src/plugins/image/alt-dialog.jsx +69 -0
  82. package/src/plugins/image/component.jsx +204 -21
  83. package/src/plugins/image/image-toolbar.jsx +68 -22
  84. package/src/plugins/image/index.jsx +47 -9
  85. package/src/plugins/index.jsx +4 -1
  86. package/src/plugins/list/index.jsx +67 -5
  87. package/src/plugins/math/index.jsx +31 -37
  88. package/src/plugins/media/index.jsx +49 -6
  89. package/src/plugins/media/media-dialog.js +261 -89
  90. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +28 -1
  91. package/src/plugins/respArea/explicit-constructed-response/index.jsx +3 -3
  92. package/src/plugins/respArea/index.jsx +50 -31
  93. package/src/plugins/table/index.jsx +63 -14
  94. package/src/plugins/toolbar/default-toolbar.jsx +20 -2
  95. package/src/plugins/toolbar/editor-and-toolbar.jsx +35 -4
  96. package/src/plugins/toolbar/toolbar-buttons.jsx +13 -2
  97. package/src/plugins/toolbar/toolbar.jsx +18 -3
  98. package/src/serialization.jsx +19 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/drag-in-the-blank/index.jsx"],"names":["onValueChange","nodeProps","n","value","val","editor","change","setNodeByKey","key","data","index","get","props","onChange","onEditingDone","onRemoveResponse","dragInTheBlank","document","findDescendant","DragDrop","attributes","opts","inTable","display","minHeight","minWidth","position","margin","cursor","options","duplicates","children","propTypes","PropTypes","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport DragDropTile from './choice';\n\nexport const onValueChange = (nodeProps, n, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n\n change.setNodeByKey(n.key, {\n data: {\n ...value,\n index: n.data.get('index')\n }\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nexport const onRemoveResponse = (nodeProps, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n const dragInTheBlank = val.document.findDescendant(\n n => n.data && n.data.get('index') === value.index\n );\n\n change.setNodeByKey(dragInTheBlank.key, {\n data: {\n index: dragInTheBlank.data.get('index')\n }\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nconst DragDrop = props => {\n const { attributes, data, n, nodeProps, opts } = props;\n const { inTable } = data;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: inTable ? '10px' : '0 10px',\n cursor: 'pointer'\n }}\n >\n <DragDropTile\n n={n}\n dragKey={n.key}\n targetId=\"0\"\n value={data}\n duplicates={opts.options.duplicates}\n onChange={value => onValueChange(nodeProps, n, value)}\n removeResponse={value => onRemoveResponse(nodeProps, value)}\n >\n {nodeProps.children}\n </DragDropTile>\n </span>\n );\n};\n\nDragDrop.propTypes = {\n attributes: PropTypes.object,\n data: PropTypes.object,\n n: PropTypes.object,\n nodeProps: PropTypes.object,\n opts: PropTypes.object\n};\n\nexport default DragDrop;\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["onValueChange","nodeProps","n","value","val","editor","change","setNodeByKey","key","data","index","get","props","onChange","onEditingDone","onRemoveResponse","dragInTheBlank","document","findDescendant","DragDrop","attributes","opts","inTable","display","minHeight","minWidth","position","margin","cursor","options","duplicates","children","propTypes","PropTypes","object"],"sources":["../../../../src/plugins/respArea/drag-in-the-blank/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport DragDropTile from './choice';\n\nexport const onValueChange = (nodeProps, n, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n\n change.setNodeByKey(n.key, {\n data: {\n ...value,\n index: n.data.get('index')\n }\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nexport const onRemoveResponse = (nodeProps, value) => {\n const val = nodeProps.editor.value;\n const change = val.change();\n const dragInTheBlank = val.document.findDescendant(\n n => n.data && n.data.get('index') === value.index\n );\n\n change.setNodeByKey(dragInTheBlank.key, {\n data: {\n index: dragInTheBlank.data.get('index')\n }\n });\n\n nodeProps.editor.props.onChange(change, () => {\n nodeProps.editor.props.onEditingDone();\n });\n};\n\nconst DragDrop = props => {\n const { attributes, data, n, nodeProps, opts } = props;\n const { inTable } = data;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: inTable ? '10px' : '0 10px',\n cursor: 'pointer'\n }}\n >\n <DragDropTile\n n={n}\n dragKey={n.key}\n targetId=\"0\"\n value={data}\n duplicates={opts.options.duplicates}\n onChange={value => onValueChange(nodeProps, n, value)}\n removeResponse={value => onRemoveResponse(nodeProps, value)}\n >\n {nodeProps.children}\n </DragDropTile>\n </span>\n );\n};\n\nDragDrop.propTypes = {\n attributes: PropTypes.object,\n data: PropTypes.object,\n n: PropTypes.object,\n nodeProps: PropTypes.object,\n opts: PropTypes.object\n};\n\nexport default DragDrop;\n"],"mappings":"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"}
@@ -1,22 +1,23 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
8
12
  var _react = _interopRequireDefault(require("react"));
9
13
 
10
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
15
 
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13
-
14
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15
-
16
16
  var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
17
17
  var attributes = props.attributes,
18
- value = props.value;
19
- return _react["default"].createElement("span", _extends({}, attributes, {
18
+ value = props.value,
19
+ error = props.error;
20
+ return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
20
21
  style: {
21
22
  display: 'inline-flex',
22
23
  minHeight: '50px',
@@ -25,14 +26,14 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
25
26
  margin: '0 5px',
26
27
  cursor: 'pointer'
27
28
  }
28
- }), _react["default"].createElement("div", {
29
+ }), /*#__PURE__*/_react["default"].createElement("div", {
29
30
  style: {
30
31
  display: 'inline-flex',
31
32
  minWidth: '178px',
32
33
  minHeight: '36px',
33
34
  height: '36px',
34
35
  background: '#FFF',
35
- border: '1px solid #C0C3CF',
36
+ border: "1px solid ".concat(error ? 'red' : '#C0C3CF'),
36
37
  boxSizing: 'border-box',
37
38
  borderRadius: '3px',
38
39
  overflow: 'hidden',
@@ -46,7 +47,7 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
46
47
 
47
48
  ExplicitConstructedResponse.propTypes = {
48
49
  attributes: _propTypes["default"].object,
49
- value: _propTypes["default"].object
50
+ value: _propTypes["default"].string
50
51
  };
51
52
  var _default = ExplicitConstructedResponse;
52
53
  exports["default"] = _default;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/explicit-constructed-response/index.jsx"],"names":["ExplicitConstructedResponse","props","attributes","value","display","minHeight","minWidth","position","margin","cursor","height","background","border","boxSizing","borderRadius","overflow","padding","__html","propTypes","PropTypes","object"],"mappings":";;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAAC,KAAK,EAAI;AAAA,MACnCC,UADmC,GACbD,KADa,CACnCC,UADmC;AAAA,MACvBC,KADuB,GACbF,KADa,CACvBE,KADuB;AAG3C,SACE,qDACMD,UADN;AAEE,IAAA,KAAK,EAAE;AACLE,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,SAAS,EAAE,MAFN;AAGLC,MAAAA,QAAQ,EAAE,OAHL;AAILC,MAAAA,QAAQ,EAAE,UAJL;AAKLC,MAAAA,MAAM,EAAE,OALH;AAMLC,MAAAA,MAAM,EAAE;AANH;AAFT,MAWE;AACE,IAAA,KAAK,EAAE;AACLL,MAAAA,OAAO,EAAE,aADJ;AAELE,MAAAA,QAAQ,EAAE,OAFL;AAGLD,MAAAA,SAAS,EAAE,MAHN;AAILK,MAAAA,MAAM,EAAE,MAJH;AAKLC,MAAAA,UAAU,EAAE,MALP;AAMLC,MAAAA,MAAM,EAAE,mBANH;AAOLC,MAAAA,SAAS,EAAE,YAPN;AAQLC,MAAAA,YAAY,EAAE,KART;AASLC,MAAAA,QAAQ,EAAE,QATL;AAULC,MAAAA,OAAO,EAAE;AAVJ,KADT;AAaE,IAAA,uBAAuB,EAAE;AACvBC,MAAAA,MAAM,EAAEd,KAAK,IAAI;AADM;AAb3B,IAXF,CADF;AA+BD,CAlCD;;AAoCAH,2BAA2B,CAACkB,SAA5B,GAAwC;AACtChB,EAAAA,UAAU,EAAEiB,sBAAUC,MADgB;AAEtCjB,EAAAA,KAAK,EAAEgB,sBAAUC;AAFqB,CAAxC;eAKepB,2B","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = props => {\n const { attributes, value } = props;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n padding: '8px'\n }}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>'\n }}\n />\n </span>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.object\n};\n\nexport default ExplicitConstructedResponse;\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["ExplicitConstructedResponse","props","attributes","value","error","display","minHeight","minWidth","position","margin","cursor","height","background","border","boxSizing","borderRadius","overflow","padding","__html","propTypes","PropTypes","object","string"],"sources":["../../../../src/plugins/respArea/explicit-constructed-response/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ExplicitConstructedResponse = props => {\n const { attributes, value, error } = props;\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n minHeight: '50px',\n minWidth: '178px',\n position: 'relative',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n minHeight: '36px',\n height: '36px',\n background: '#FFF',\n border: `1px solid ${error ? 'red' : '#C0C3CF'}`,\n boxSizing: 'border-box',\n borderRadius: '3px',\n overflow: 'hidden',\n padding: '8px'\n }}\n dangerouslySetInnerHTML={{\n __html: value || '<div>&nbsp;</div>'\n }}\n />\n </span>\n );\n};\n\nExplicitConstructedResponse.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.string\n};\n\nexport default ExplicitConstructedResponse;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA8B,CAAAC,KAAK,EAAI;EAC3C,IAAQC,UAAR,GAAqCD,KAArC,CAAQC,UAAR;EAAA,IAAoBC,KAApB,GAAqCF,KAArC,CAAoBE,KAApB;EAAA,IAA2BC,KAA3B,GAAqCH,KAArC,CAA2BG,KAA3B;EAEA,oBACE,sEACMF,UADN;IAEE,KAAK,EAAE;MACLG,OAAO,EAAE,aADJ;MAELC,SAAS,EAAE,MAFN;MAGLC,QAAQ,EAAE,OAHL;MAILC,QAAQ,EAAE,UAJL;MAKLC,MAAM,EAAE,OALH;MAMLC,MAAM,EAAE;IANH;EAFT,iBAWE;IACE,KAAK,EAAE;MACLL,OAAO,EAAE,aADJ;MAELE,QAAQ,EAAE,OAFL;MAGLD,SAAS,EAAE,MAHN;MAILK,MAAM,EAAE,MAJH;MAKLC,UAAU,EAAE,MALP;MAMLC,MAAM,sBAAeT,KAAK,GAAG,KAAH,GAAW,SAA/B,CAND;MAOLU,SAAS,EAAE,YAPN;MAQLC,YAAY,EAAE,KART;MASLC,QAAQ,EAAE,QATL;MAULC,OAAO,EAAE;IAVJ,CADT;IAaE,uBAAuB,EAAE;MACvBC,MAAM,EAAEf,KAAK,IAAI;IADM;EAb3B,EAXF,CADF;AA+BD,CAlCD;;AAoCAH,2BAA2B,CAACmB,SAA5B,GAAwC;EACtCjB,UAAU,EAAEkB,qBAAA,CAAUC,MADgB;EAEtClB,KAAK,EAAEiB,qBAAA,CAAUE;AAFqB,CAAxC;eAKetB,2B"}
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.ToolbarIcon = exports.GripIcon = exports.Chevron = void 0;
7
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
8
12
  var _react = _interopRequireDefault(require("react"));
9
13
 
10
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -15,13 +19,9 @@ var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
15
19
 
16
20
  var _styles = require("@material-ui/core/styles");
17
21
 
18
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
-
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
21
-
22
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
22
+ 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; }
23
23
 
24
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
24
+ 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; }
25
25
 
26
26
  var getRotate = function getRotate(direction) {
27
27
  switch (direction) {
@@ -43,7 +43,7 @@ var Chevron = function Chevron(props) {
43
43
  var direction = props.direction,
44
44
  style = props.style;
45
45
  var rotate = getRotate(direction);
46
- return _react["default"].createElement(_ChevronRight["default"], {
46
+ return /*#__PURE__*/_react["default"].createElement(_ChevronRight["default"], {
47
47
  style: _objectSpread({
48
48
  transform: "rotate(".concat(rotate, "deg)")
49
49
  }, style)
@@ -58,13 +58,13 @@ Chevron.propTypes = {
58
58
 
59
59
  var GripIcon = function GripIcon(_ref) {
60
60
  var style = _ref.style;
61
- return _react["default"].createElement("span", {
61
+ return /*#__PURE__*/_react["default"].createElement("span", {
62
62
  style: style
63
- }, _react["default"].createElement(_MoreVert["default"], {
63
+ }, /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], {
64
64
  style: {
65
65
  margin: '0 -16px'
66
66
  }
67
- }), _react["default"].createElement(_MoreVert["default"], null));
67
+ }), /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], null));
68
68
  };
69
69
 
70
70
  exports.GripIcon = GripIcon;
@@ -85,7 +85,7 @@ var ToolbarIcon = (0, _styles.withStyles)({
85
85
  }
86
86
  })(function (_ref2) {
87
87
  var classes = _ref2.classes;
88
- return _react["default"].createElement("div", {
88
+ return /*#__PURE__*/_react["default"].createElement("div", {
89
89
  className: classes.icon
90
90
  }, "+ Response Area");
91
91
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/icons/index.jsx"],"names":["getRotate","direction","Chevron","props","style","rotate","transform","propTypes","PropTypes","string","object","GripIcon","margin","ToolbarIcon","icon","fontFamily","fontSize","fontWeight","lineHeight","position","top","width","height","whiteSpace","classes"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAAAC,SAAS,EAAI;AAC7B,UAAQA,SAAR;AACE,SAAK,MAAL;AACE,aAAO,EAAP;;AACF,SAAK,IAAL;AACE,aAAO,CAAC,EAAR;;AACF,SAAK,MAAL;AACE,aAAO,GAAP;;AACF;AACE,aAAO,CAAP;AARJ;AAUD,CAXD;;AAaO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;AAAA,MACtBF,SADsB,GACDE,KADC,CACtBF,SADsB;AAAA,MACXG,KADW,GACDD,KADC,CACXC,KADW;AAE9B,MAAMC,MAAM,GAAGL,SAAS,CAACC,SAAD,CAAxB;AAEA,SACE,gCAAC,wBAAD;AACE,IAAA,KAAK;AACHK,MAAAA,SAAS,mBAAYD,MAAZ;AADN,OAEAD,KAFA;AADP,IADF;AAQD,CAZM;;;AAcPF,OAAO,CAACK,SAAR,GAAoB;AAClBN,EAAAA,SAAS,EAAEO,sBAAUC,MADH;AAElBL,EAAAA,KAAK,EAAEI,sBAAUE;AAFC,CAApB;;AAKO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAAe;AAAA,MAAZP,KAAY,QAAZA,KAAY;AACrC,SACE;AAAM,IAAA,KAAK,EAAEA;AAAb,KACE,gCAAC,oBAAD;AACE,IAAA,KAAK,EAAE;AACLQ,MAAAA,MAAM,EAAE;AADH;AADT,IADF,EAME,gCAAC,oBAAD,OANF,CADF;AAUD,CAXM;;;AAaPD,QAAQ,CAACJ,SAAT,GAAqB;AACnBH,EAAAA,KAAK,EAAEI,sBAAUE;AADE,CAArB;AAIO,IAAMG,WAAW,GAAG,wBAAW;AACpCC,EAAAA,IAAI,EAAE;AACJC,IAAAA,UAAU,EAAE,yBADR;AAEJC,IAAAA,QAAQ,EAAE,MAFN;AAGJC,IAAAA,UAAU,EAAE,MAHR;AAIJC,IAAAA,UAAU,EAAE,MAJR;AAKJC,IAAAA,QAAQ,EAAE,UALN;AAMJC,IAAAA,GAAG,EAAE,KAND;AAOJC,IAAAA,KAAK,EAAE,OAPH;AAQJC,IAAAA,MAAM,EAAE,MARJ;AASJC,IAAAA,UAAU,EAAE;AATR;AAD8B,CAAX,EAYxB;AAAA,MAAGC,OAAH,SAAGA,OAAH;AAAA,SAAiB;AAAK,IAAA,SAAS,EAAEA,OAAO,CAACV;AAAxB,uBAAjB;AAAA,CAZwB,CAApB","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChevronRight from '@material-ui/icons/ChevronRight';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst getRotate = direction => {\n switch (direction) {\n case 'down':\n return 90;\n case 'up':\n return -90;\n case 'left':\n return 180;\n default:\n return 0;\n }\n};\n\nexport const Chevron = props => {\n const { direction, style } = props;\n const rotate = getRotate(direction);\n\n return (\n <ChevronRight\n style={{\n transform: `rotate(${rotate}deg)`,\n ...style\n }}\n />\n );\n};\n\nChevron.propTypes = {\n direction: PropTypes.string,\n style: PropTypes.object\n};\n\nexport const GripIcon = ({ style }) => {\n return (\n <span style={style}>\n <MoreVert\n style={{\n margin: '0 -16px'\n }}\n />\n <MoreVert />\n </span>\n );\n};\n\nGripIcon.propTypes = {\n style: PropTypes.object\n};\n\nexport const ToolbarIcon = withStyles({\n icon: {\n fontFamily: 'Cerebri Sans !important',\n fontSize: '14px',\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n top: '7px',\n width: '110px',\n height: '28px',\n whiteSpace: 'nowrap'\n }\n})(({ classes }) => <div className={classes.icon}>+ Response Area</div>);\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["getRotate","direction","Chevron","props","style","rotate","transform","propTypes","PropTypes","string","object","GripIcon","margin","ToolbarIcon","withStyles","icon","fontFamily","fontSize","fontWeight","lineHeight","position","top","width","height","whiteSpace","classes"],"sources":["../../../../src/plugins/respArea/icons/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport ChevronRight from '@material-ui/icons/ChevronRight';\nimport MoreVert from '@material-ui/icons/MoreVert';\nimport { withStyles } from '@material-ui/core/styles';\n\nconst getRotate = direction => {\n switch (direction) {\n case 'down':\n return 90;\n case 'up':\n return -90;\n case 'left':\n return 180;\n default:\n return 0;\n }\n};\n\nexport const Chevron = props => {\n const { direction, style } = props;\n const rotate = getRotate(direction);\n\n return (\n <ChevronRight\n style={{\n transform: `rotate(${rotate}deg)`,\n ...style\n }}\n />\n );\n};\n\nChevron.propTypes = {\n direction: PropTypes.string,\n style: PropTypes.object\n};\n\nexport const GripIcon = ({ style }) => {\n return (\n <span style={style}>\n <MoreVert\n style={{\n margin: '0 -16px'\n }}\n />\n <MoreVert />\n </span>\n );\n};\n\nGripIcon.propTypes = {\n style: PropTypes.object\n};\n\nexport const ToolbarIcon = withStyles({\n icon: {\n fontFamily: 'Cerebri Sans !important',\n fontSize: '14px',\n fontWeight: 'bold',\n lineHeight: '14px',\n position: 'relative',\n top: '7px',\n width: '110px',\n height: '28px',\n whiteSpace: 'nowrap'\n }\n})(({ classes }) => <div className={classes.icon}>+ Response Area</div>);\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;AAEA,IAAMA,SAAS,GAAG,SAAZA,SAAY,CAAAC,SAAS,EAAI;EAC7B,QAAQA,SAAR;IACE,KAAK,MAAL;MACE,OAAO,EAAP;;IACF,KAAK,IAAL;MACE,OAAO,CAAC,EAAR;;IACF,KAAK,MAAL;MACE,OAAO,GAAP;;IACF;MACE,OAAO,CAAP;EARJ;AAUD,CAXD;;AAaO,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAAAC,KAAK,EAAI;EAC9B,IAAQF,SAAR,GAA6BE,KAA7B,CAAQF,SAAR;EAAA,IAAmBG,KAAnB,GAA6BD,KAA7B,CAAmBC,KAAnB;EACA,IAAMC,MAAM,GAAGL,SAAS,CAACC,SAAD,CAAxB;EAEA,oBACE,gCAAC,wBAAD;IACE,KAAK;MACHK,SAAS,mBAAYD,MAAZ;IADN,GAEAD,KAFA;EADP,EADF;AAQD,CAZM;;;AAcPF,OAAO,CAACK,SAAR,GAAoB;EAClBN,SAAS,EAAEO,qBAAA,CAAUC,MADH;EAElBL,KAAK,EAAEI,qBAAA,CAAUE;AAFC,CAApB;;AAKO,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAAe;EAAA,IAAZP,KAAY,QAAZA,KAAY;EACrC,oBACE;IAAM,KAAK,EAAEA;EAAb,gBACE,gCAAC,oBAAD;IACE,KAAK,EAAE;MACLQ,MAAM,EAAE;IADH;EADT,EADF,eAME,gCAAC,oBAAD,OANF,CADF;AAUD,CAXM;;;AAaPD,QAAQ,CAACJ,SAAT,GAAqB;EACnBH,KAAK,EAAEI,qBAAA,CAAUE;AADE,CAArB;AAIO,IAAMG,WAAW,GAAG,IAAAC,kBAAA,EAAW;EACpCC,IAAI,EAAE;IACJC,UAAU,EAAE,yBADR;IAEJC,QAAQ,EAAE,MAFN;IAGJC,UAAU,EAAE,MAHR;IAIJC,UAAU,EAAE,MAJR;IAKJC,QAAQ,EAAE,UALN;IAMJC,GAAG,EAAE,KAND;IAOJC,KAAK,EAAE,OAPH;IAQJC,MAAM,EAAE,MARJ;IASJC,UAAU,EAAE;EATR;AAD8B,CAAX,EAYxB;EAAA,IAAGC,OAAH,SAAGA,OAAH;EAAA,oBAAiB;IAAK,SAAS,EAAEA,OAAO,CAACV;EAAxB,qBAAjB;AAAA,CAZwB,CAApB"}
@@ -1,5 +1,7 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
@@ -22,21 +24,34 @@ var _utils = require("./utils");
22
24
 
23
25
  var _icons = require("./icons");
24
26
 
25
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
26
-
27
27
  var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:respArea');
28
28
  var lastIndexMap = {};
29
- var elTypesArray = ['inline_dropdown', 'explicit_constructed_response', 'drag_in_the_blank'];
29
+ var elTypesMap = {
30
+ 'inline-dropdown': 'inline_dropdown',
31
+ 'explicit-constructed-response': 'explicit_constructed_response',
32
+ 'drag-in-the-blank': 'drag_in_the_blank'
33
+ };
34
+ var elTypesArray = Object.values(elTypesMap);
30
35
 
31
36
  function ResponseAreaPlugin(opts) {
37
+ var isOfCurrentType = function isOfCurrentType(d) {
38
+ return d.type === opts.type || d.type === elTypesMap[opts.type];
39
+ };
40
+
32
41
  var toolbar = {
33
- icon: _react["default"].createElement(_icons.ToolbarIcon, null),
42
+ icon: /*#__PURE__*/_react["default"].createElement(_icons.ToolbarIcon, null),
34
43
  buttonStyles: {
35
44
  margin: '0 20px 0 auto'
36
45
  },
37
46
  onClick: function onClick(value, onChange) {
38
47
  log('[toolbar] onClick');
39
48
  var change = value.change();
49
+ var currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);
50
+
51
+ if (currentRespAreaList.size >= opts.maxResponseAreas) {
52
+ return;
53
+ }
54
+
40
55
  var type = opts.type.replace(/-/g, '_');
41
56
  var prevIndex = lastIndexMap[type];
42
57
  var newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;
@@ -49,6 +64,11 @@ function ResponseAreaPlugin(opts) {
49
64
  } else {
50
65
  // If the markup is empty and there's no focus
51
66
  var lastText = value.document.getLastText();
67
+
68
+ if (!lastText) {
69
+ return;
70
+ }
71
+
52
72
  var parentNode = value.document.getParent(lastText.key);
53
73
 
54
74
  if (parentNode) {
@@ -79,7 +99,7 @@ function ResponseAreaPlugin(opts) {
79
99
  name: 'response_area',
80
100
  toolbar: toolbar,
81
101
  filterPlugins: function filterPlugins(node, plugins) {
82
- if (node.type === 'explicit_constructed_response') {
102
+ if (node.type === 'explicit_constructed_response' || node.type === 'drag_in_the_blank') {
83
103
  return [];
84
104
  }
85
105
 
@@ -98,16 +118,23 @@ function ResponseAreaPlugin(opts) {
98
118
 
99
119
  if (n.type === 'explicit_constructed_response') {
100
120
  var data = n.data.toJSON();
101
- return _react["default"].createElement(_explicitConstructedResponse["default"], {
121
+ var error;
122
+
123
+ if (opts.error) {
124
+ error = opts.error();
125
+ }
126
+
127
+ return /*#__PURE__*/_react["default"].createElement(_explicitConstructedResponse["default"], {
102
128
  attributes: attributes,
103
- value: data.value
129
+ value: data.value,
130
+ error: error && error[data.index] && error[data.index][0]
104
131
  });
105
132
  }
106
133
 
107
134
  if (n.type === 'drag_in_the_blank') {
108
135
  var _data = n.data.toJSON();
109
136
 
110
- return _react["default"].createElement(_dragInTheBlank["default"], {
137
+ return /*#__PURE__*/_react["default"].createElement(_dragInTheBlank["default"], {
111
138
  attributes: attributes,
112
139
  data: _data,
113
140
  n: n,
@@ -119,13 +146,13 @@ function ResponseAreaPlugin(opts) {
119
146
  if (n.type === 'inline_dropdown') {
120
147
  var _data2 = n.data.toJSON();
121
148
 
122
- return _react["default"].createElement(_inlineDropdown["default"], {
149
+ return /*#__PURE__*/_react["default"].createElement(_inlineDropdown["default"], {
123
150
  attributes: attributes,
124
151
  selectedItem: _data2.value
125
152
  });
126
153
  }
127
154
  },
128
- onChange: function onChange(change) {
155
+ onChange: function onChange(change, editor) {
129
156
  var type = opts.type.replace(/-/g, '_');
130
157
 
131
158
  if ((0, _isUndefined["default"])(lastIndexMap[type])) {
@@ -140,42 +167,31 @@ function ResponseAreaPlugin(opts) {
140
167
  }
141
168
  });
142
169
  }
143
- },
144
- normalizeNode: function normalizeNode(node) {
145
- if (node.object !== 'document') {
170
+
171
+ if (!editor.value) {
146
172
  return;
147
173
  }
148
174
 
149
- var addSpacesArray = [];
150
- var allElements = node.filterDescendants(function (d) {
151
- return elTypesArray.indexOf(d.type) >= 0;
152
- });
153
- allElements.forEach(function (el) {
154
- var prevText = node.getPreviousText(el.key);
155
- var lastCharIsNewLine = prevText.text[prevText.text.length - 1] === '\n';
156
-
157
- if (prevText.text.length === 0 || lastCharIsNewLine) {
158
- addSpacesArray.push({
159
- nr: lastCharIsNewLine ? 1 : 2,
160
- key: prevText.key
161
- });
162
- }
163
- });
175
+ var currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);
176
+ var oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);
164
177
 
165
- if (!addSpacesArray.length) {
166
- return;
178
+ if (currentRespAreaList.size >= opts.maxResponseAreas) {
179
+ toolbar.disabled = true;
180
+ } else {
181
+ toolbar.disabled = false;
167
182
  }
168
183
 
169
- return function (change) {
170
- change.withoutNormalization(function () {
171
- addSpacesArray.forEach(function (_ref) {
172
- var key = _ref.key,
173
- nr = _ref.nr;
174
- var node = change.value.document.getNode(key);
175
- change.insertTextByKey(key, node.text.length, "\xA0".repeat(nr));
176
- });
184
+ var arrayToFilter = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;
185
+ var arrayToUseForFilter = arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;
186
+ var elementsWithChangedStatus = arrayToFilter.filter(function (d) {
187
+ return !arrayToUseForFilter.find(function (e) {
188
+ return e.data.get('index') === d.data.get('index');
177
189
  });
178
- };
190
+ });
191
+
192
+ if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {
193
+ opts.onHandleAreaChange(elementsWithChangedStatus);
194
+ }
179
195
  },
180
196
  onDrop: function onDrop(event, change, editor) {
181
197
  var closestEl = event.target.closest('[data-key]');
@@ -240,7 +256,7 @@ var serialization = {
240
256
  case 'inline_dropdown':
241
257
  {
242
258
  var data = object.data.toJSON();
243
- return _react["default"].createElement("span", {
259
+ return /*#__PURE__*/_react["default"].createElement("span", {
244
260
  "data-type": "inline_dropdown",
245
261
  "data-index": data.index,
246
262
  "data-value": data.value
@@ -251,7 +267,7 @@ var serialization = {
251
267
  {
252
268
  var _data3 = object.data.toJSON();
253
269
 
254
- return _react["default"].createElement("span", {
270
+ return /*#__PURE__*/_react["default"].createElement("span", {
255
271
  "data-type": "explicit_constructed_response",
256
272
  "data-index": _data3.index,
257
273
  "data-value": _data3.value
@@ -262,7 +278,7 @@ var serialization = {
262
278
  {
263
279
  var _data4 = object.data.toJSON();
264
280
 
265
- return _react["default"].createElement("span", {
281
+ return /*#__PURE__*/_react["default"].createElement("span", {
266
282
  "data-type": "drag_in_the_blank",
267
283
  "data-index": _data4.index,
268
284
  "data-id": _data4.id,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/respArea/index.jsx"],"names":["log","lastIndexMap","elTypesArray","ResponseAreaPlugin","opts","toolbar","icon","buttonStyles","margin","onClick","value","onChange","change","type","replace","prevIndex","newIndex","newInline","selection","startKey","endKey","insertInline","lastText","document","getLastText","parentNode","getParent","key","index","nodes","indexOf","isVoid","insertNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","customToolbar","respAreaToolbar","supports","node","object","showDone","name","filterPlugins","plugins","filter","p","deleteNode","e","preventDefault","removeNodeByKey","renderNode","props","attributes","n","data","toJSON","forEachDescendant","d","parseInt","get","normalizeNode","addSpacesArray","allElements","filterDescendants","forEach","el","prevText","getPreviousText","lastCharIsNewLine","text","length","push","nr","withoutNormalization","getNode","insertTextByKey","repeat","onDrop","event","editor","closestEl","target","closest","inline","findDescendant","dataset","serialization","deserialize","id","inTable","serialize"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,GAAG,GAAG,uBAAM,yCAAN,CAAZ;AAEA,IAAMC,YAAY,GAAG,EAArB;AACA,IAAMC,YAAY,GAAG,CAAC,iBAAD,EAAoB,+BAApB,EAAqD,mBAArD,CAArB;;AAEe,SAASC,kBAAT,CAA4BC,IAA5B,EAAkC;AAC/C,MAAMC,OAAO,GAAG;AACdC,IAAAA,IAAI,EAAE,gCAAC,kBAAD,OADQ;AAEdC,IAAAA,YAAY,EAAE;AACZC,MAAAA,MAAM,EAAE;AADI,KAFA;AAKdC,IAAAA,OAAO,EAAE,iBAACC,KAAD,EAAQC,QAAR,EAAqB;AAC5BX,MAAAA,GAAG,CAAC,mBAAD,CAAH;AACA,UAAMY,MAAM,GAAGF,KAAK,CAACE,MAAN,EAAf;AACA,UAAMC,IAAI,GAAGT,IAAI,CAACS,IAAL,CAAUC,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAb;AACA,UAAMC,SAAS,GAAGd,YAAY,CAACY,IAAD,CAA9B;AACA,UAAMG,QAAQ,GAAGD,SAAS,KAAK,CAAd,GAAkBA,SAAlB,GAA8BA,SAAS,GAAG,CAA3D;AACA,UAAME,SAAS,GAAG,8BAAkBb,IAAlB,EAAwBY,QAAxB,CAAlB;AAEAf,MAAAA,YAAY,CAACY,IAAD,CAAZ,IAAsB,CAAtB;;AAEA,UAAII,SAAJ,EAAe;AACb,YAAIL,MAAM,CAACF,KAAP,CAAaQ,SAAb,CAAuBC,QAAvB,IAAmCP,MAAM,CAACF,KAAP,CAAaQ,SAAb,CAAuBE,MAA9D,EAAsE;AACpER,UAAAA,MAAM,CAACS,YAAP,CAAoBJ,SAApB;AACD,SAFD,MAEO;AACL;AACA,cAAMK,QAAQ,GAAGZ,KAAK,CAACa,QAAN,CAAeC,WAAf,EAAjB;AACA,cAAMC,UAAU,GAAGf,KAAK,CAACa,QAAN,CAAeG,SAAf,CAAyBJ,QAAQ,CAACK,GAAlC,CAAnB;;AAEA,cAAIF,UAAJ,EAAgB;AACd,gBAAMG,KAAK,GAAGH,UAAU,CAACI,KAAX,CAAiBC,OAAjB,CAAyBR,QAAQ,CAACK,GAAlC,CAAd;AAEA,gBAAIF,UAAU,CAACM,MAAf,EAAuB;AAEvBnB,YAAAA,MAAM,CAACoB,eAAP,CAAuBP,UAAU,CAACE,GAAlC,EAAuCC,KAAK,GAAG,CAA/C,EAAkDX,SAAlD;AACD;AACF;;AAED,YAAIA,SAAS,CAACJ,IAAV,KAAmB,mBAAvB,EAA4C;AAC1C,cAAMoB,QAAQ,GAAGrB,MAAM,CAACF,KAAP,CAAaa,QAAb,CAAsBW,WAAtB,CAAkCjB,SAAS,CAACU,GAA5C,CAAjB;;AAEA,cAAIM,QAAJ,EAAc;AACZrB,YAAAA,MAAM,CAACuB,WAAP,CAAmBF,QAAQ,CAACN,GAA5B,EAAiC,CAAjC,EAAoCS,YAApC,CAAiDH,QAAQ,CAACN,GAA1D,EAA+D,CAA/D;AACD;AACF;;AAEDhB,QAAAA,QAAQ,CAACC,MAAD,CAAR;AACD;AACF,KA1Ca;AA2CdyB,IAAAA,aAAa,EAAEjC,IAAI,CAACkC,eA3CN;AA4CdC,IAAAA,QAAQ,EAAE,kBAAAC,IAAI;AAAA,aAAIA,IAAI,CAACC,MAAL,KAAgB,QAAhB,IAA4BvC,YAAY,CAAC4B,OAAb,CAAqBU,IAAI,CAAC3B,IAA1B,KAAmC,CAAnE;AAAA,KA5CA;AA6Cd6B,IAAAA,QAAQ,EAAE;AA7CI,GAAhB;AAgDA,SAAO;AACLC,IAAAA,IAAI,EAAE,eADD;AAELtC,IAAAA,OAAO,EAAPA,OAFK;AAGLuC,IAAAA,aAAa,EAAE,uBAACJ,IAAD,EAAOK,OAAP,EAAmB;AAChC,UAAIL,IAAI,CAAC3B,IAAL,KAAc,+BAAlB,EAAmD;AACjD,eAAO,EAAP;AACD;;AAED,aAAOgC,OAAO,CAACC,MAAR,CAAe,UAAAC,CAAC;AAAA,eAAIA,CAAC,CAACJ,IAAF,KAAW,eAAf;AAAA,OAAhB,CAAP;AACD,KATI;AAULK,IAAAA,UAAU,EAAE,oBAACC,CAAD,EAAIT,IAAJ,EAAU9B,KAAV,EAAiBC,QAAjB,EAA8B;AACxCsC,MAAAA,CAAC,CAACC,cAAF;AAEA,UAAMtC,MAAM,GAAGF,KAAK,CAACE,MAAN,GAAeuC,eAAf,CAA+BX,IAAI,CAACb,GAApC,CAAf;AAEAhB,MAAAA,QAAQ,CAACC,MAAD,CAAR;AACD,KAhBI;AAiBLwC,IAAAA,UAjBK,sBAiBMC,KAjBN,EAiBa;AAAA,UACRC,UADQ,GACgBD,KADhB,CACRC,UADQ;AAAA,UACUC,CADV,GACgBF,KADhB,CACIb,IADJ;;AAGhB,UAAIe,CAAC,CAAC1C,IAAF,KAAW,+BAAf,EAAgD;AAC9C,YAAM2C,IAAI,GAAGD,CAAC,CAACC,IAAF,CAAOC,MAAP,EAAb;AAEA,eAAO,gCAAC,uCAAD;AAA6B,UAAA,UAAU,EAAEH,UAAzC;AAAqD,UAAA,KAAK,EAAEE,IAAI,CAAC9C;AAAjE,UAAP;AACD;;AAED,UAAI6C,CAAC,CAAC1C,IAAF,KAAW,mBAAf,EAAoC;AAClC,YAAM2C,KAAI,GAAGD,CAAC,CAACC,IAAF,CAAOC,MAAP,EAAb;;AAEA,eACE,gCAAC,0BAAD;AAAgB,UAAA,UAAU,EAAEH,UAA5B;AAAwC,UAAA,IAAI,EAAEE,KAA9C;AAAoD,UAAA,CAAC,EAAED,CAAvD;AAA0D,UAAA,SAAS,EAAEF,KAArE;AAA4E,UAAA,IAAI,EAAEjD;AAAlF,UADF;AAGD;;AAED,UAAImD,CAAC,CAAC1C,IAAF,KAAW,iBAAf,EAAkC;AAChC,YAAM2C,MAAI,GAAGD,CAAC,CAACC,IAAF,CAAOC,MAAP,EAAb;;AAEA,eAAO,gCAAC,0BAAD;AAAgB,UAAA,UAAU,EAAEH,UAA5B;AAAwC,UAAA,YAAY,EAAEE,MAAI,CAAC9C;AAA3D,UAAP;AACD;AACF,KAvCI;AAwCLC,IAAAA,QAxCK,oBAwCIC,MAxCJ,EAwCY;AACf,UAAMC,IAAI,GAAGT,IAAI,CAACS,IAAL,CAAUC,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAb;;AAEA,UAAI,6BAAYb,YAAY,CAACY,IAAD,CAAxB,CAAJ,EAAqC;AACnCZ,QAAAA,YAAY,CAACY,IAAD,CAAZ,GAAqB,CAArB;AAEAD,QAAAA,MAAM,CAACF,KAAP,CAAaa,QAAb,CAAsBmC,iBAAtB,CAAwC,UAAAC,CAAC,EAAI;AAC3C,cAAIA,CAAC,CAAC9C,IAAF,KAAWA,IAAf,EAAqB;AACnB,gBAAMG,QAAQ,GAAG4C,QAAQ,CAACD,CAAC,CAACH,IAAF,CAAOK,GAAP,CAAW,OAAX,CAAD,EAAsB,EAAtB,CAAzB;;AAEA,gBAAI7C,QAAQ,GAAGf,YAAY,CAACY,IAAD,CAA3B,EAAmC;AACjCZ,cAAAA,YAAY,CAACY,IAAD,CAAZ,GAAqBG,QAArB;AACD;AACF;AACF,SARD;AASD;AACF,KAxDI;AAyDL8C,IAAAA,aAAa,EAAE,uBAAAtB,IAAI,EAAI;AACrB,UAAIA,IAAI,CAACC,MAAL,KAAgB,UAApB,EAAgC;AAC9B;AACD;;AAED,UAAMsB,cAAc,GAAG,EAAvB;AAEA,UAAMC,WAAW,GAAGxB,IAAI,CAACyB,iBAAL,CAAuB,UAAAN,CAAC;AAAA,eAAIzD,YAAY,CAAC4B,OAAb,CAAqB6B,CAAC,CAAC9C,IAAvB,KAAgC,CAApC;AAAA,OAAxB,CAApB;AAEAmD,MAAAA,WAAW,CAACE,OAAZ,CAAoB,UAAAC,EAAE,EAAI;AACxB,YAAMC,QAAQ,GAAG5B,IAAI,CAAC6B,eAAL,CAAqBF,EAAE,CAACxC,GAAxB,CAAjB;AACA,YAAM2C,iBAAiB,GAAGF,QAAQ,CAACG,IAAT,CAAcH,QAAQ,CAACG,IAAT,CAAcC,MAAd,GAAuB,CAArC,MAA4C,IAAtE;;AAEA,YAAIJ,QAAQ,CAACG,IAAT,CAAcC,MAAd,KAAyB,CAAzB,IAA8BF,iBAAlC,EAAqD;AACnDP,UAAAA,cAAc,CAACU,IAAf,CAAoB;AAClBC,YAAAA,EAAE,EAAEJ,iBAAiB,GAAG,CAAH,GAAO,CADV;AAElB3C,YAAAA,GAAG,EAAEyC,QAAQ,CAACzC;AAFI,WAApB;AAID;AACF,OAVD;;AAYA,UAAI,CAACoC,cAAc,CAACS,MAApB,EAA4B;AAC1B;AACD;;AAED,aAAO,UAAA5D,MAAM,EAAI;AACfA,QAAAA,MAAM,CAAC+D,oBAAP,CAA4B,YAAM;AAChCZ,UAAAA,cAAc,CAACG,OAAf,CAAuB,gBAAiB;AAAA,gBAAdvC,GAAc,QAAdA,GAAc;AAAA,gBAAT+C,EAAS,QAATA,EAAS;AACtC,gBAAMlC,IAAI,GAAG5B,MAAM,CAACF,KAAP,CAAaa,QAAb,CAAsBqD,OAAtB,CAA8BjD,GAA9B,CAAb;AAEAf,YAAAA,MAAM,CAACiE,eAAP,CAAuBlD,GAAvB,EAA4Ba,IAAI,CAAC+B,IAAL,CAAUC,MAAtC,EAA8C,OAASM,MAAT,CAAgBJ,EAAhB,CAA9C;AACD,WAJD;AAKD,SAND;AAOD,OARD;AASD,KA3FI;AA4FLK,IAAAA,MA5FK,kBA4FEC,KA5FF,EA4FSpE,MA5FT,EA4FiBqE,MA5FjB,EA4FyB;AAC5B,UAAMC,SAAS,GAAGF,KAAK,CAACG,MAAN,CAAaC,OAAb,CAAqB,YAArB,CAAlB;AACA,UAAMC,MAAM,GAAGJ,MAAM,CAACvE,KAAP,CAAaa,QAAb,CAAsB+D,cAAtB,CAAqC,UAAA3B,CAAC;AAAA,eAAIA,CAAC,CAAChC,GAAF,KAAUuD,SAAS,CAACK,OAAV,CAAkB5D,GAAhC;AAAA,OAAtC,CAAf;;AAEA,UAAI0D,MAAM,CAACxE,IAAP,KAAgB,mBAApB,EAAyC;AACvC,eAAO,KAAP;AACD;AACF;AAnGI,GAAP;AAqGD;;AAEM,IAAM2E,aAAa,GAAG;AAC3BC,EAAAA,WAD2B,uBACftB,EADe,EACX;AACd,QAAMtD,IAAI,GAAGsD,EAAE,CAACoB,OAAH,IAAcpB,EAAE,CAACoB,OAAH,CAAW1E,IAAtC;;AAEA,YAAQA,IAAR;AACE,WAAK,iBAAL;AACE,eAAO;AACL4B,UAAAA,MAAM,EAAE,QADH;AAEL5B,UAAAA,IAAI,EAAE,iBAFD;AAGLkB,UAAAA,MAAM,EAAE,IAHH;AAILyB,UAAAA,IAAI,EAAE;AACJ5B,YAAAA,KAAK,EAAEuC,EAAE,CAACoB,OAAH,CAAW3D,KADd;AAEJlB,YAAAA,KAAK,EAAEyD,EAAE,CAACoB,OAAH,CAAW7E;AAFd;AAJD,SAAP;;AASF,WAAK,+BAAL;AACE,eAAO;AACL+B,UAAAA,MAAM,EAAE,QADH;AAEL5B,UAAAA,IAAI,EAAE,+BAFD;AAGLkB,UAAAA,MAAM,EAAE,IAHH;AAILyB,UAAAA,IAAI,EAAE;AACJ5B,YAAAA,KAAK,EAAEuC,EAAE,CAACoB,OAAH,CAAW3D,KADd;AAEJlB,YAAAA,KAAK,EAAEyD,EAAE,CAACoB,OAAH,CAAW7E;AAFd;AAJD,SAAP;;AASF,WAAK,mBAAL;AACE,eAAO;AACL+B,UAAAA,MAAM,EAAE,QADH;AAEL5B,UAAAA,IAAI,EAAE,mBAFD;AAGLkB,UAAAA,MAAM,EAAE,IAHH;AAILyB,UAAAA,IAAI,EAAE;AACJ5B,YAAAA,KAAK,EAAEuC,EAAE,CAACoB,OAAH,CAAW3D,KADd;AAEJ8D,YAAAA,EAAE,EAAEvB,EAAE,CAACoB,OAAH,CAAWG,EAFX;AAGJhF,YAAAA,KAAK,EAAEyD,EAAE,CAACoB,OAAH,CAAW7E,KAHd;AAIJiF,YAAAA,OAAO,EAAExB,EAAE,CAACoB,OAAH,CAAWI;AAJhB;AAJD,SAAP;AAtBJ;AAkCD,GAtC0B;AAuC3BC,EAAAA,SAvC2B,qBAuCjBnD,MAvCiB,EAuCT;AAChB,QAAIA,MAAM,CAACA,MAAP,KAAkB,QAAtB,EAAgC;AAC9B;AACD;;AAED,YAAQA,MAAM,CAAC5B,IAAf;AACE,WAAK,iBAAL;AAAwB;AACtB,cAAM2C,IAAI,GAAGf,MAAM,CAACe,IAAP,CAAYC,MAAZ,EAAb;AAEA,iBAAO;AAAM,yBAAU,iBAAhB;AAAkC,0BAAYD,IAAI,CAAC5B,KAAnD;AAA0D,0BAAY4B,IAAI,CAAC9C;AAA3E,YAAP;AACD;;AACD,WAAK,+BAAL;AAAsC;AACpC,cAAM8C,MAAI,GAAGf,MAAM,CAACe,IAAP,CAAYC,MAAZ,EAAb;;AAEA,iBACE;AACE,yBAAU,+BADZ;AAEE,0BAAYD,MAAI,CAAC5B,KAFnB;AAGE,0BAAY4B,MAAI,CAAC9C;AAHnB,YADF;AAOD;;AACD,WAAK,mBAAL;AAA0B;AACxB,cAAM8C,MAAI,GAAGf,MAAM,CAACe,IAAP,CAAYC,MAAZ,EAAb;;AAEA,iBACE;AACE,yBAAU,mBADZ;AAEE,0BAAYD,MAAI,CAAC5B,KAFnB;AAGE,uBAAS4B,MAAI,CAACkC,EAHhB;AAIE,0BAAYlC,MAAI,CAAC9C,KAJnB;AAKE,6BAAe8C,MAAI,CAACmC;AALtB,YADF;AASD;AA7BH;AA+BD;AA3E0B,CAAtB","sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport isUndefined from 'lodash/isUndefined';\n\nimport InlineDropdown from './inline-dropdown';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ExplicitConstructedResponse from './explicit-constructed-response';\nimport { getDefaultElement } from './utils';\nimport { ToolbarIcon } from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:respArea');\n\nconst lastIndexMap = {};\nconst elTypesArray = ['inline_dropdown', 'explicit_constructed_response', 'drag_in_the_blank'];\n\nexport default function ResponseAreaPlugin(opts) {\n const toolbar = {\n icon: <ToolbarIcon />,\n buttonStyles: {\n margin: '0 20px 0 auto'\n },\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const change = value.change();\n const type = opts.type.replace(/-/g, '_');\n const prevIndex = lastIndexMap[type];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n const newInline = getDefaultElement(opts, newIndex);\n\n lastIndexMap[type] += 1;\n\n if (newInline) {\n if (change.value.selection.startKey || change.value.selection.endKey) {\n change.insertInline(newInline);\n } else {\n // If the markup is empty and there's no focus\n const lastText = value.document.getLastText();\n const parentNode = value.document.getParent(lastText.key);\n\n if (parentNode) {\n const index = parentNode.nodes.indexOf(lastText.key);\n\n if (parentNode.isVoid) return;\n\n change.insertNodeByKey(parentNode.key, index + 1, newInline);\n }\n }\n\n if (newInline.type === 'drag_in_the_blank') {\n const nextText = change.value.document.getNextText(newInline.key);\n\n if (nextText) {\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n }\n }\n\n onChange(change);\n }\n },\n customToolbar: opts.respAreaToolbar,\n supports: node => node.object === 'inline' && elTypesArray.indexOf(node.type) >= 0,\n showDone: false\n };\n\n return {\n name: 'response_area',\n toolbar,\n filterPlugins: (node, plugins) => {\n if (node.type === 'explicit_constructed_response') {\n return [];\n }\n\n return plugins.filter(p => p.name !== 'response_area');\n },\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n const { attributes, node: n } = props;\n\n if (n.type === 'explicit_constructed_response') {\n const data = n.data.toJSON();\n\n return <ExplicitConstructedResponse attributes={attributes} value={data.value} />;\n }\n\n if (n.type === 'drag_in_the_blank') {\n const data = n.data.toJSON();\n\n return (\n <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />\n );\n }\n\n if (n.type === 'inline_dropdown') {\n const data = n.data.toJSON();\n\n return <InlineDropdown attributes={attributes} selectedItem={data.value} />;\n }\n },\n onChange(change) {\n const type = opts.type.replace(/-/g, '_');\n\n if (isUndefined(lastIndexMap[type])) {\n lastIndexMap[type] = 0;\n\n change.value.document.forEachDescendant(d => {\n if (d.type === type) {\n const newIndex = parseInt(d.data.get('index'), 10);\n\n if (newIndex > lastIndexMap[type]) {\n lastIndexMap[type] = newIndex;\n }\n }\n });\n }\n },\n normalizeNode: node => {\n if (node.object !== 'document') {\n return;\n }\n\n const addSpacesArray = [];\n\n const allElements = node.filterDescendants(d => elTypesArray.indexOf(d.type) >= 0);\n\n allElements.forEach(el => {\n const prevText = node.getPreviousText(el.key);\n const lastCharIsNewLine = prevText.text[prevText.text.length - 1] === '\\n';\n\n if (prevText.text.length === 0 || lastCharIsNewLine) {\n addSpacesArray.push({\n nr: lastCharIsNewLine ? 1 : 2,\n key: prevText.key\n });\n }\n });\n\n if (!addSpacesArray.length) {\n return;\n }\n\n return change => {\n change.withoutNormalization(() => {\n addSpacesArray.forEach(({ key, nr }) => {\n const node = change.value.document.getNode(key);\n\n change.insertTextByKey(key, node.text.length, '\\u00A0'.repeat(nr));\n });\n });\n };\n },\n onDrop(event, change, editor) {\n const closestEl = event.target.closest('[data-key]');\n const inline = editor.value.document.findDescendant(d => d.key === closestEl.dataset.key);\n\n if (inline.type === 'drag_in_the_blank') {\n return false;\n }\n }\n };\n}\n\nexport const serialization = {\n deserialize(el) {\n const type = el.dataset && el.dataset.type;\n\n switch (type) {\n case 'inline_dropdown':\n return {\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value\n }\n };\n case 'explicit_constructed_response':\n return {\n object: 'inline',\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value\n }\n };\n case 'drag_in_the_blank':\n return {\n object: 'inline',\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable\n }\n };\n }\n },\n serialize(object) {\n if (object.object !== 'inline') {\n return;\n }\n\n switch (object.type) {\n case 'inline_dropdown': {\n const data = object.data.toJSON();\n\n return <span data-type=\"inline_dropdown\" data-index={data.index} data-value={data.value} />;\n }\n case 'explicit_constructed_response': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"explicit_constructed_response\"\n data-index={data.index}\n data-value={data.value}\n />\n );\n }\n case 'drag_in_the_blank': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"drag_in_the_blank\"\n data-index={data.index}\n data-id={data.id}\n data-value={data.value}\n data-in-table={data.inTable}\n />\n );\n }\n }\n }\n};\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["log","debug","lastIndexMap","elTypesMap","elTypesArray","Object","values","ResponseAreaPlugin","opts","isOfCurrentType","d","type","toolbar","icon","buttonStyles","margin","onClick","value","onChange","change","currentRespAreaList","document","filterDescendants","size","maxResponseAreas","replace","prevIndex","newIndex","newInline","getDefaultElement","selection","startKey","endKey","insertInline","lastText","getLastText","parentNode","getParent","key","index","nodes","indexOf","isVoid","insertNodeByKey","nextText","getNextText","moveFocusTo","moveAnchorTo","customToolbar","respAreaToolbar","supports","node","object","showDone","name","filterPlugins","plugins","filter","p","deleteNode","e","preventDefault","removeNodeByKey","renderNode","props","attributes","n","data","toJSON","error","editor","isUndefined","forEachDescendant","parseInt","get","oldRespAreaList","disabled","arrayToFilter","arrayToUseForFilter","elementsWithChangedStatus","find","onHandleAreaChange","onDrop","event","closestEl","target","closest","inline","findDescendant","dataset","serialization","deserialize","el","id","inTable","serialize"],"sources":["../../../src/plugins/respArea/index.jsx"],"sourcesContent":["import React from 'react';\nimport debug from 'debug';\nimport isUndefined from 'lodash/isUndefined';\n\nimport InlineDropdown from './inline-dropdown';\nimport DragInTheBlank from './drag-in-the-blank';\nimport ExplicitConstructedResponse from './explicit-constructed-response';\nimport { getDefaultElement } from './utils';\nimport { ToolbarIcon } from './icons';\n\nconst log = debug('@pie-lib:editable-html:plugins:respArea');\n\nconst lastIndexMap = {};\nconst elTypesMap = {\n 'inline-dropdown': 'inline_dropdown',\n 'explicit-constructed-response': 'explicit_constructed_response',\n 'drag-in-the-blank': 'drag_in_the_blank'\n};\nconst elTypesArray = Object.values(elTypesMap);\n\nexport default function ResponseAreaPlugin(opts) {\n const isOfCurrentType = d => d.type === opts.type || d.type === elTypesMap[opts.type];\n\n const toolbar = {\n icon: <ToolbarIcon />,\n buttonStyles: {\n margin: '0 20px 0 auto'\n },\n onClick: (value, onChange) => {\n log('[toolbar] onClick');\n const change = value.change();\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n return;\n }\n\n const type = opts.type.replace(/-/g, '_');\n const prevIndex = lastIndexMap[type];\n const newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;\n const newInline = getDefaultElement(opts, newIndex);\n\n lastIndexMap[type] += 1;\n\n if (newInline) {\n if (change.value.selection.startKey || change.value.selection.endKey) {\n change.insertInline(newInline);\n } else {\n // If the markup is empty and there's no focus\n const lastText = value.document.getLastText();\n\n if (!lastText) {\n return;\n }\n const parentNode = value.document.getParent(lastText.key);\n\n if (parentNode) {\n const index = parentNode.nodes.indexOf(lastText.key);\n\n if (parentNode.isVoid) return;\n\n change.insertNodeByKey(parentNode.key, index + 1, newInline);\n }\n }\n\n if (newInline.type === 'drag_in_the_blank') {\n const nextText = change.value.document.getNextText(newInline.key);\n\n if (nextText) {\n change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);\n }\n }\n\n onChange(change);\n }\n },\n customToolbar: opts.respAreaToolbar,\n supports: node => node.object === 'inline' && elTypesArray.indexOf(node.type) >= 0,\n showDone: false\n };\n\n return {\n name: 'response_area',\n toolbar,\n filterPlugins: (node, plugins) => {\n if (node.type === 'explicit_constructed_response' || node.type === 'drag_in_the_blank') {\n return [];\n }\n\n return plugins.filter(p => p.name !== 'response_area');\n },\n deleteNode: (e, node, value, onChange) => {\n e.preventDefault();\n\n const change = value.change().removeNodeByKey(node.key);\n\n onChange(change);\n },\n renderNode(props) {\n const { attributes, node: n } = props;\n\n if (n.type === 'explicit_constructed_response') {\n const data = n.data.toJSON();\n let error;\n\n if (opts.error) {\n error = opts.error();\n }\n\n return (\n <ExplicitConstructedResponse\n attributes={attributes}\n value={data.value}\n error={error && error[data.index] && error[data.index][0]}\n />\n );\n }\n\n if (n.type === 'drag_in_the_blank') {\n const data = n.data.toJSON();\n\n return (\n <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />\n );\n }\n\n if (n.type === 'inline_dropdown') {\n const data = n.data.toJSON();\n\n return <InlineDropdown attributes={attributes} selectedItem={data.value} />;\n }\n },\n onChange(change, editor) {\n const type = opts.type.replace(/-/g, '_');\n\n if (isUndefined(lastIndexMap[type])) {\n lastIndexMap[type] = 0;\n\n change.value.document.forEachDescendant(d => {\n if (d.type === type) {\n const newIndex = parseInt(d.data.get('index'), 10);\n\n if (newIndex > lastIndexMap[type]) {\n lastIndexMap[type] = newIndex;\n }\n }\n });\n }\n\n if (!editor.value) {\n return;\n }\n\n const currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);\n const oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);\n\n if (currentRespAreaList.size >= opts.maxResponseAreas) {\n toolbar.disabled = true;\n } else {\n toolbar.disabled = false;\n }\n\n const arrayToFilter =\n oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;\n const arrayToUseForFilter =\n arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;\n\n const elementsWithChangedStatus = arrayToFilter.filter(\n d => !arrayToUseForFilter.find(e => e.data.get('index') === d.data.get('index'))\n );\n\n if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {\n opts.onHandleAreaChange(elementsWithChangedStatus);\n }\n },\n onDrop(event, change, editor) {\n const closestEl = event.target.closest('[data-key]');\n const inline = editor.value.document.findDescendant(d => d.key === closestEl.dataset.key);\n\n if (inline.type === 'drag_in_the_blank') {\n return false;\n }\n }\n };\n}\n\nexport const serialization = {\n deserialize(el) {\n const type = el.dataset && el.dataset.type;\n\n switch (type) {\n case 'inline_dropdown':\n return {\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value\n }\n };\n case 'explicit_constructed_response':\n return {\n object: 'inline',\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index: el.dataset.index,\n value: el.dataset.value\n }\n };\n case 'drag_in_the_blank':\n return {\n object: 'inline',\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index: el.dataset.index,\n id: el.dataset.id,\n value: el.dataset.value,\n inTable: el.dataset.inTable\n }\n };\n }\n },\n serialize(object) {\n if (object.object !== 'inline') {\n return;\n }\n\n switch (object.type) {\n case 'inline_dropdown': {\n const data = object.data.toJSON();\n\n return <span data-type=\"inline_dropdown\" data-index={data.index} data-value={data.value} />;\n }\n case 'explicit_constructed_response': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"explicit_constructed_response\"\n data-index={data.index}\n data-value={data.value}\n />\n );\n }\n case 'drag_in_the_blank': {\n const data = object.data.toJSON();\n\n return (\n <span\n data-type=\"drag_in_the_blank\"\n data-index={data.index}\n data-id={data.id}\n data-value={data.value}\n data-in-table={data.inTable}\n />\n );\n }\n }\n }\n};\n"],"mappings":";;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AAEA,IAAMA,GAAG,GAAG,IAAAC,iBAAA,EAAM,yCAAN,CAAZ;AAEA,IAAMC,YAAY,GAAG,EAArB;AACA,IAAMC,UAAU,GAAG;EACjB,mBAAmB,iBADF;EAEjB,iCAAiC,+BAFhB;EAGjB,qBAAqB;AAHJ,CAAnB;AAKA,IAAMC,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAcH,UAAd,CAArB;;AAEe,SAASI,kBAAT,CAA4BC,IAA5B,EAAkC;EAC/C,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,CAAC;IAAA,OAAIA,CAAC,CAACC,IAAF,KAAWH,IAAI,CAACG,IAAhB,IAAwBD,CAAC,CAACC,IAAF,KAAWR,UAAU,CAACK,IAAI,CAACG,IAAN,CAAjD;EAAA,CAAzB;;EAEA,IAAMC,OAAO,GAAG;IACdC,IAAI,eAAE,gCAAC,kBAAD,OADQ;IAEdC,YAAY,EAAE;MACZC,MAAM,EAAE;IADI,CAFA;IAKdC,OAAO,EAAE,iBAACC,KAAD,EAAQC,QAAR,EAAqB;MAC5BlB,GAAG,CAAC,mBAAD,CAAH;MACA,IAAMmB,MAAM,GAAGF,KAAK,CAACE,MAAN,EAAf;MACA,IAAMC,mBAAmB,GAAGD,MAAM,CAACF,KAAP,CAAaI,QAAb,CAAsBC,iBAAtB,CAAwCb,eAAxC,CAA5B;;MAEA,IAAIW,mBAAmB,CAACG,IAApB,IAA4Bf,IAAI,CAACgB,gBAArC,EAAuD;QACrD;MACD;;MAED,IAAMb,IAAI,GAAGH,IAAI,CAACG,IAAL,CAAUc,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAb;MACA,IAAMC,SAAS,GAAGxB,YAAY,CAACS,IAAD,CAA9B;MACA,IAAMgB,QAAQ,GAAGD,SAAS,KAAK,CAAd,GAAkBA,SAAlB,GAA8BA,SAAS,GAAG,CAA3D;MACA,IAAME,SAAS,GAAG,IAAAC,wBAAA,EAAkBrB,IAAlB,EAAwBmB,QAAxB,CAAlB;MAEAzB,YAAY,CAACS,IAAD,CAAZ,IAAsB,CAAtB;;MAEA,IAAIiB,SAAJ,EAAe;QACb,IAAIT,MAAM,CAACF,KAAP,CAAaa,SAAb,CAAuBC,QAAvB,IAAmCZ,MAAM,CAACF,KAAP,CAAaa,SAAb,CAAuBE,MAA9D,EAAsE;UACpEb,MAAM,CAACc,YAAP,CAAoBL,SAApB;QACD,CAFD,MAEO;UACL;UACA,IAAMM,QAAQ,GAAGjB,KAAK,CAACI,QAAN,CAAec,WAAf,EAAjB;;UAEA,IAAI,CAACD,QAAL,EAAe;YACb;UACD;;UACD,IAAME,UAAU,GAAGnB,KAAK,CAACI,QAAN,CAAegB,SAAf,CAAyBH,QAAQ,CAACI,GAAlC,CAAnB;;UAEA,IAAIF,UAAJ,EAAgB;YACd,IAAMG,KAAK,GAAGH,UAAU,CAACI,KAAX,CAAiBC,OAAjB,CAAyBP,QAAQ,CAACI,GAAlC,CAAd;YAEA,IAAIF,UAAU,CAACM,MAAf,EAAuB;YAEvBvB,MAAM,CAACwB,eAAP,CAAuBP,UAAU,CAACE,GAAlC,EAAuCC,KAAK,GAAG,CAA/C,EAAkDX,SAAlD;UACD;QACF;;QAED,IAAIA,SAAS,CAACjB,IAAV,KAAmB,mBAAvB,EAA4C;UAC1C,IAAMiC,QAAQ,GAAGzB,MAAM,CAACF,KAAP,CAAaI,QAAb,CAAsBwB,WAAtB,CAAkCjB,SAAS,CAACU,GAA5C,CAAjB;;UAEA,IAAIM,QAAJ,EAAc;YACZzB,MAAM,CAAC2B,WAAP,CAAmBF,QAAQ,CAACN,GAA5B,EAAiC,CAAjC,EAAoCS,YAApC,CAAiDH,QAAQ,CAACN,GAA1D,EAA+D,CAA/D;UACD;QACF;;QAEDpB,QAAQ,CAACC,MAAD,CAAR;MACD;IACF,CApDa;IAqDd6B,aAAa,EAAExC,IAAI,CAACyC,eArDN;IAsDdC,QAAQ,EAAE,kBAAAC,IAAI;MAAA,OAAIA,IAAI,CAACC,MAAL,KAAgB,QAAhB,IAA4BhD,YAAY,CAACqC,OAAb,CAAqBU,IAAI,CAACxC,IAA1B,KAAmC,CAAnE;IAAA,CAtDA;IAuDd0C,QAAQ,EAAE;EAvDI,CAAhB;EA0DA,OAAO;IACLC,IAAI,EAAE,eADD;IAEL1C,OAAO,EAAPA,OAFK;IAGL2C,aAAa,EAAE,uBAACJ,IAAD,EAAOK,OAAP,EAAmB;MAChC,IAAIL,IAAI,CAACxC,IAAL,KAAc,+BAAd,IAAiDwC,IAAI,CAACxC,IAAL,KAAc,mBAAnE,EAAwF;QACtF,OAAO,EAAP;MACD;;MAED,OAAO6C,OAAO,CAACC,MAAR,CAAe,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACJ,IAAF,KAAW,eAAf;MAAA,CAAhB,CAAP;IACD,CATI;IAULK,UAAU,EAAE,oBAACC,CAAD,EAAIT,IAAJ,EAAUlC,KAAV,EAAiBC,QAAjB,EAA8B;MACxC0C,CAAC,CAACC,cAAF;MAEA,IAAM1C,MAAM,GAAGF,KAAK,CAACE,MAAN,GAAe2C,eAAf,CAA+BX,IAAI,CAACb,GAApC,CAAf;MAEApB,QAAQ,CAACC,MAAD,CAAR;IACD,CAhBI;IAiBL4C,UAjBK,sBAiBMC,KAjBN,EAiBa;MAChB,IAAQC,UAAR,GAAgCD,KAAhC,CAAQC,UAAR;MAAA,IAA0BC,CAA1B,GAAgCF,KAAhC,CAAoBb,IAApB;;MAEA,IAAIe,CAAC,CAACvD,IAAF,KAAW,+BAAf,EAAgD;QAC9C,IAAMwD,IAAI,GAAGD,CAAC,CAACC,IAAF,CAAOC,MAAP,EAAb;QACA,IAAIC,KAAJ;;QAEA,IAAI7D,IAAI,CAAC6D,KAAT,EAAgB;UACdA,KAAK,GAAG7D,IAAI,CAAC6D,KAAL,EAAR;QACD;;QAED,oBACE,gCAAC,uCAAD;UACE,UAAU,EAAEJ,UADd;UAEE,KAAK,EAAEE,IAAI,CAAClD,KAFd;UAGE,KAAK,EAAEoD,KAAK,IAAIA,KAAK,CAACF,IAAI,CAAC5B,KAAN,CAAd,IAA8B8B,KAAK,CAACF,IAAI,CAAC5B,KAAN,CAAL,CAAkB,CAAlB;QAHvC,EADF;MAOD;;MAED,IAAI2B,CAAC,CAACvD,IAAF,KAAW,mBAAf,EAAoC;QAClC,IAAMwD,KAAI,GAAGD,CAAC,CAACC,IAAF,CAAOC,MAAP,EAAb;;QAEA,oBACE,gCAAC,0BAAD;UAAgB,UAAU,EAAEH,UAA5B;UAAwC,IAAI,EAAEE,KAA9C;UAAoD,CAAC,EAAED,CAAvD;UAA0D,SAAS,EAAEF,KAArE;UAA4E,IAAI,EAAExD;QAAlF,EADF;MAGD;;MAED,IAAI0D,CAAC,CAACvD,IAAF,KAAW,iBAAf,EAAkC;QAChC,IAAMwD,MAAI,GAAGD,CAAC,CAACC,IAAF,CAAOC,MAAP,EAAb;;QAEA,oBAAO,gCAAC,0BAAD;UAAgB,UAAU,EAAEH,UAA5B;UAAwC,YAAY,EAAEE,MAAI,CAAClD;QAA3D,EAAP;MACD;IACF,CAlDI;IAmDLC,QAnDK,oBAmDIC,MAnDJ,EAmDYmD,MAnDZ,EAmDoB;MACvB,IAAM3D,IAAI,GAAGH,IAAI,CAACG,IAAL,CAAUc,OAAV,CAAkB,IAAlB,EAAwB,GAAxB,CAAb;;MAEA,IAAI,IAAA8C,uBAAA,EAAYrE,YAAY,CAACS,IAAD,CAAxB,CAAJ,EAAqC;QACnCT,YAAY,CAACS,IAAD,CAAZ,GAAqB,CAArB;QAEAQ,MAAM,CAACF,KAAP,CAAaI,QAAb,CAAsBmD,iBAAtB,CAAwC,UAAA9D,CAAC,EAAI;UAC3C,IAAIA,CAAC,CAACC,IAAF,KAAWA,IAAf,EAAqB;YACnB,IAAMgB,QAAQ,GAAG8C,QAAQ,CAAC/D,CAAC,CAACyD,IAAF,CAAOO,GAAP,CAAW,OAAX,CAAD,EAAsB,EAAtB,CAAzB;;YAEA,IAAI/C,QAAQ,GAAGzB,YAAY,CAACS,IAAD,CAA3B,EAAmC;cACjCT,YAAY,CAACS,IAAD,CAAZ,GAAqBgB,QAArB;YACD;UACF;QACF,CARD;MASD;;MAED,IAAI,CAAC2C,MAAM,CAACrD,KAAZ,EAAmB;QACjB;MACD;;MAED,IAAMG,mBAAmB,GAAGD,MAAM,CAACF,KAAP,CAAaI,QAAb,CAAsBC,iBAAtB,CAAwCb,eAAxC,CAA5B;MACA,IAAMkE,eAAe,GAAGL,MAAM,CAACrD,KAAP,CAAaI,QAAb,CAAsBC,iBAAtB,CAAwCb,eAAxC,CAAxB;;MAEA,IAAIW,mBAAmB,CAACG,IAApB,IAA4Bf,IAAI,CAACgB,gBAArC,EAAuD;QACrDZ,OAAO,CAACgE,QAAR,GAAmB,IAAnB;MACD,CAFD,MAEO;QACLhE,OAAO,CAACgE,QAAR,GAAmB,KAAnB;MACD;;MAED,IAAMC,aAAa,GACjBF,eAAe,CAACpD,IAAhB,GAAuBH,mBAAmB,CAACG,IAA3C,GAAkDoD,eAAlD,GAAoEvD,mBADtE;MAEA,IAAM0D,mBAAmB,GACvBD,aAAa,KAAKF,eAAlB,GAAoCvD,mBAApC,GAA0DuD,eAD5D;MAGA,IAAMI,yBAAyB,GAAGF,aAAa,CAACpB,MAAd,CAChC,UAAA/C,CAAC;QAAA,OAAI,CAACoE,mBAAmB,CAACE,IAApB,CAAyB,UAAApB,CAAC;UAAA,OAAIA,CAAC,CAACO,IAAF,CAAOO,GAAP,CAAW,OAAX,MAAwBhE,CAAC,CAACyD,IAAF,CAAOO,GAAP,CAAW,OAAX,CAA5B;QAAA,CAA1B,CAAL;MAAA,CAD+B,CAAlC;;MAIA,IAAIK,yBAAyB,CAACxD,IAA1B,IAAkCoD,eAAe,CAACpD,IAAhB,GAAuBH,mBAAmB,CAACG,IAAjF,EAAuF;QACrFf,IAAI,CAACyE,kBAAL,CAAwBF,yBAAxB;MACD;IACF,CA7FI;IA8FLG,MA9FK,kBA8FEC,KA9FF,EA8FShE,MA9FT,EA8FiBmD,MA9FjB,EA8FyB;MAC5B,IAAMc,SAAS,GAAGD,KAAK,CAACE,MAAN,CAAaC,OAAb,CAAqB,YAArB,CAAlB;MACA,IAAMC,MAAM,GAAGjB,MAAM,CAACrD,KAAP,CAAaI,QAAb,CAAsBmE,cAAtB,CAAqC,UAAA9E,CAAC;QAAA,OAAIA,CAAC,CAAC4B,GAAF,KAAU8C,SAAS,CAACK,OAAV,CAAkBnD,GAAhC;MAAA,CAAtC,CAAf;;MAEA,IAAIiD,MAAM,CAAC5E,IAAP,KAAgB,mBAApB,EAAyC;QACvC,OAAO,KAAP;MACD;IACF;EArGI,CAAP;AAuGD;;AAEM,IAAM+E,aAAa,GAAG;EAC3BC,WAD2B,uBACfC,EADe,EACX;IACd,IAAMjF,IAAI,GAAGiF,EAAE,CAACH,OAAH,IAAcG,EAAE,CAACH,OAAH,CAAW9E,IAAtC;;IAEA,QAAQA,IAAR;MACE,KAAK,iBAAL;QACE,OAAO;UACLyC,MAAM,EAAE,QADH;UAELzC,IAAI,EAAE,iBAFD;UAGL+B,MAAM,EAAE,IAHH;UAILyB,IAAI,EAAE;YACJ5B,KAAK,EAAEqD,EAAE,CAACH,OAAH,CAAWlD,KADd;YAEJtB,KAAK,EAAE2E,EAAE,CAACH,OAAH,CAAWxE;UAFd;QAJD,CAAP;;MASF,KAAK,+BAAL;QACE,OAAO;UACLmC,MAAM,EAAE,QADH;UAELzC,IAAI,EAAE,+BAFD;UAGL+B,MAAM,EAAE,IAHH;UAILyB,IAAI,EAAE;YACJ5B,KAAK,EAAEqD,EAAE,CAACH,OAAH,CAAWlD,KADd;YAEJtB,KAAK,EAAE2E,EAAE,CAACH,OAAH,CAAWxE;UAFd;QAJD,CAAP;;MASF,KAAK,mBAAL;QACE,OAAO;UACLmC,MAAM,EAAE,QADH;UAELzC,IAAI,EAAE,mBAFD;UAGL+B,MAAM,EAAE,IAHH;UAILyB,IAAI,EAAE;YACJ5B,KAAK,EAAEqD,EAAE,CAACH,OAAH,CAAWlD,KADd;YAEJsD,EAAE,EAAED,EAAE,CAACH,OAAH,CAAWI,EAFX;YAGJ5E,KAAK,EAAE2E,EAAE,CAACH,OAAH,CAAWxE,KAHd;YAIJ6E,OAAO,EAAEF,EAAE,CAACH,OAAH,CAAWK;UAJhB;QAJD,CAAP;IAtBJ;EAkCD,CAtC0B;EAuC3BC,SAvC2B,qBAuCjB3C,MAvCiB,EAuCT;IAChB,IAAIA,MAAM,CAACA,MAAP,KAAkB,QAAtB,EAAgC;MAC9B;IACD;;IAED,QAAQA,MAAM,CAACzC,IAAf;MACE,KAAK,iBAAL;QAAwB;UACtB,IAAMwD,IAAI,GAAGf,MAAM,CAACe,IAAP,CAAYC,MAAZ,EAAb;UAEA,oBAAO;YAAM,aAAU,iBAAhB;YAAkC,cAAYD,IAAI,CAAC5B,KAAnD;YAA0D,cAAY4B,IAAI,CAAClD;UAA3E,EAAP;QACD;;MACD,KAAK,+BAAL;QAAsC;UACpC,IAAMkD,MAAI,GAAGf,MAAM,CAACe,IAAP,CAAYC,MAAZ,EAAb;;UAEA,oBACE;YACE,aAAU,+BADZ;YAEE,cAAYD,MAAI,CAAC5B,KAFnB;YAGE,cAAY4B,MAAI,CAAClD;UAHnB,EADF;QAOD;;MACD,KAAK,mBAAL;QAA0B;UACxB,IAAMkD,MAAI,GAAGf,MAAM,CAACe,IAAP,CAAYC,MAAZ,EAAb;;UAEA,oBACE;YACE,aAAU,mBADZ;YAEE,cAAYD,MAAI,CAAC5B,KAFnB;YAGE,WAAS4B,MAAI,CAAC0B,EAHhB;YAIE,cAAY1B,MAAI,CAAClD,KAJnB;YAKE,iBAAekD,MAAI,CAAC2B;UALtB,EADF;QASD;IA7BH;EA+BD;AA3E0B,CAAtB"}
@@ -1,34 +1,34 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports["default"] = void 0;
7
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
8
12
  var _react = _interopRequireDefault(require("react"));
9
13
 
10
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
15
 
12
16
  var _icons = require("../icons");
13
17
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
-
16
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
17
-
18
18
  var InlineDropdown = function InlineDropdown(_ref) {
19
19
  var attributes = _ref.attributes,
20
20
  selectedItem = _ref.selectedItem;
21
21
  // TODO: Investigate
22
22
  // Needed because items with values inside have different positioning for some reason
23
23
  var html = selectedItem || '<div>&nbsp</div>';
24
- return _react["default"].createElement("span", _extends({}, attributes, {
24
+ return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
25
25
  style: {
26
26
  display: 'inline-flex',
27
27
  height: '50px',
28
28
  margin: '0 5px',
29
29
  cursor: 'pointer'
30
30
  }
31
- }), _react["default"].createElement("div", {
31
+ }), /*#__PURE__*/_react["default"].createElement("div", {
32
32
  style: {
33
33
  display: 'inline-flex',
34
34
  minWidth: '178px',
@@ -39,7 +39,7 @@ var InlineDropdown = function InlineDropdown(_ref) {
39
39
  borderRadius: '3px',
40
40
  position: 'relative'
41
41
  }
42
- }, _react["default"].createElement("div", {
42
+ }, /*#__PURE__*/_react["default"].createElement("div", {
43
43
  style: {
44
44
  flex: 1,
45
45
  overflow: 'hidden',
@@ -51,7 +51,7 @@ var InlineDropdown = function InlineDropdown(_ref) {
51
51
  dangerouslySetInnerHTML: {
52
52
  __html: html
53
53
  }
54
- }), _react["default"].createElement(_icons.Chevron, {
54
+ }), /*#__PURE__*/_react["default"].createElement(_icons.Chevron, {
55
55
  direction: "down",
56
56
  style: {
57
57
  position: 'absolute',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/plugins/respArea/inline-dropdown/index.jsx"],"names":["InlineDropdown","attributes","selectedItem","html","display","height","margin","cursor","minWidth","background","border","boxSizing","borderRadius","position","flex","overflow","padding","whiteSpace","textOverflow","lineHeight","__html","top","right","propTypes","PropTypes","object","oneOfType","string"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkC;AAAA,MAA/BC,UAA+B,QAA/BA,UAA+B;AAAA,MAAnBC,YAAmB,QAAnBA,YAAmB;AACvD;AACA;AACA,MAAMC,IAAI,GAAGD,YAAY,IAAI,kBAA7B;AAEA,SACE,qDACMD,UADN;AAEE,IAAA,KAAK,EAAE;AACLG,MAAAA,OAAO,EAAE,aADJ;AAELC,MAAAA,MAAM,EAAE,MAFH;AAGLC,MAAAA,MAAM,EAAE,OAHH;AAILC,MAAAA,MAAM,EAAE;AAJH;AAFT,MASE;AACE,IAAA,KAAK,EAAE;AACLH,MAAAA,OAAO,EAAE,aADJ;AAELI,MAAAA,QAAQ,EAAE,OAFL;AAGLH,MAAAA,MAAM,EAAE,MAHH;AAILI,MAAAA,UAAU,EAAE,MAJP;AAKLC,MAAAA,MAAM,EAAE,mBALH;AAMLC,MAAAA,SAAS,EAAE,YANN;AAOLC,MAAAA,YAAY,EAAE,KAPT;AAQLC,MAAAA,QAAQ,EAAE;AARL;AADT,KAYE;AACE,IAAA,KAAK,EAAE;AACLC,MAAAA,IAAI,EAAE,CADD;AAELC,MAAAA,QAAQ,EAAE,QAFL;AAGLC,MAAAA,OAAO,EAAE,cAHJ;AAILC,MAAAA,UAAU,EAAE,QAJP;AAKLC,MAAAA,YAAY,EAAE,UALT;AAMLC,MAAAA,UAAU,EAAE;AANP,KADT;AASE,IAAA,uBAAuB,EAAE;AACvBC,MAAAA,MAAM,EAAEjB;AADe;AAT3B,IAZF,EAyBE,gCAAC,cAAD;AACE,IAAA,SAAS,EAAC,MADZ;AAEE,IAAA,KAAK,EAAE;AACLU,MAAAA,QAAQ,EAAE,UADL;AAELQ,MAAAA,GAAG,EAAE,KAFA;AAGLC,MAAAA,KAAK,EAAE;AAHF;AAFT,IAzBF,CATF,CADF;AA8CD,CAnDD;;AAqDAtB,cAAc,CAACuB,SAAf,GAA2B;AACzBtB,EAAAA,UAAU,EAAEuB,sBAAUC,MADG;AAEzBvB,EAAAA,YAAY,EAAEsB,sBAAUE,SAAV,CAAoB,CAACF,sBAAUG,MAAX,EAAmBH,sBAAUC,MAA7B,CAApB;AAFW,CAA3B;eAKezB,c","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../icons';\n\nconst InlineDropdown = ({ attributes, selectedItem }) => {\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = selectedItem || '<div>&nbsp</div>';\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n position: 'relative'\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n lineHeight: '35px'\n }}\n dangerouslySetInnerHTML={{\n __html: html\n }}\n />\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px'\n }}\n />\n </div>\n </span>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\n\nexport default InlineDropdown;\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["InlineDropdown","attributes","selectedItem","html","display","height","margin","cursor","minWidth","background","border","boxSizing","borderRadius","position","flex","overflow","padding","whiteSpace","textOverflow","lineHeight","__html","top","right","propTypes","PropTypes","object","oneOfType","string"],"sources":["../../../../src/plugins/respArea/inline-dropdown/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Chevron } from '../icons';\n\nconst InlineDropdown = ({ attributes, selectedItem }) => {\n // TODO: Investigate\n // Needed because items with values inside have different positioning for some reason\n const html = selectedItem || '<div>&nbsp</div>';\n\n return (\n <span\n {...attributes}\n style={{\n display: 'inline-flex',\n height: '50px',\n margin: '0 5px',\n cursor: 'pointer'\n }}\n >\n <div\n style={{\n display: 'inline-flex',\n minWidth: '178px',\n height: '36px',\n background: '#FFF',\n border: '1px solid #C0C3CF',\n boxSizing: 'border-box',\n borderRadius: '3px',\n position: 'relative'\n }}\n >\n <div\n style={{\n flex: 1,\n overflow: 'hidden',\n padding: '0 25px 0 8px',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n lineHeight: '35px'\n }}\n dangerouslySetInnerHTML={{\n __html: html\n }}\n />\n <Chevron\n direction=\"down\"\n style={{\n position: 'absolute',\n top: '5px',\n right: '5px'\n }}\n />\n </div>\n </span>\n );\n};\n\nInlineDropdown.propTypes = {\n attributes: PropTypes.object,\n selectedItem: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n};\n\nexport default InlineDropdown;\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,OAAkC;EAAA,IAA/BC,UAA+B,QAA/BA,UAA+B;EAAA,IAAnBC,YAAmB,QAAnBA,YAAmB;EACvD;EACA;EACA,IAAMC,IAAI,GAAGD,YAAY,IAAI,kBAA7B;EAEA,oBACE,sEACMD,UADN;IAEE,KAAK,EAAE;MACLG,OAAO,EAAE,aADJ;MAELC,MAAM,EAAE,MAFH;MAGLC,MAAM,EAAE,OAHH;MAILC,MAAM,EAAE;IAJH;EAFT,iBASE;IACE,KAAK,EAAE;MACLH,OAAO,EAAE,aADJ;MAELI,QAAQ,EAAE,OAFL;MAGLH,MAAM,EAAE,MAHH;MAILI,UAAU,EAAE,MAJP;MAKLC,MAAM,EAAE,mBALH;MAMLC,SAAS,EAAE,YANN;MAOLC,YAAY,EAAE,KAPT;MAQLC,QAAQ,EAAE;IARL;EADT,gBAYE;IACE,KAAK,EAAE;MACLC,IAAI,EAAE,CADD;MAELC,QAAQ,EAAE,QAFL;MAGLC,OAAO,EAAE,cAHJ;MAILC,UAAU,EAAE,QAJP;MAKLC,YAAY,EAAE,UALT;MAMLC,UAAU,EAAE;IANP,CADT;IASE,uBAAuB,EAAE;MACvBC,MAAM,EAAEjB;IADe;EAT3B,EAZF,eAyBE,gCAAC,cAAD;IACE,SAAS,EAAC,MADZ;IAEE,KAAK,EAAE;MACLU,QAAQ,EAAE,UADL;MAELQ,GAAG,EAAE,KAFA;MAGLC,KAAK,EAAE;IAHF;EAFT,EAzBF,CATF,CADF;AA8CD,CAnDD;;AAqDAtB,cAAc,CAACuB,SAAf,GAA2B;EACzBtB,UAAU,EAAEuB,qBAAA,CAAUC,MADG;EAEzBvB,YAAY,EAAEsB,qBAAA,CAAUE,SAAV,CAAoB,CAACF,qBAAA,CAAUG,MAAX,EAAmBH,qBAAA,CAAUC,MAA7B,CAApB;AAFW,CAA3B;eAKezB,c"}
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
- exports.getDefaultElement = exports.defaultIDD = exports.defaultDIB = exports.defaultECR = exports.insertSnackBar = exports.isNumber = void 0;
8
+ exports.isNumber = exports.insertSnackBar = exports.getDefaultElement = exports.defaultIDD = exports.defaultECR = exports.defaultDIB = void 0;
7
9
 
8
10
  var _react = _interopRequireDefault(require("react"));
9
11
 
@@ -13,8 +15,6 @@ var _slate = require("slate");
13
15
 
14
16
  var _Snackbar = _interopRequireDefault(require("@material-ui/core/Snackbar"));
15
17
 
16
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17
-
18
18
  var isNumber = function isNumber(val) {
19
19
  return !isNaN(parseFloat(val)) && isFinite(val);
20
20
  };
@@ -29,7 +29,7 @@ var insertSnackBar = function insertSnackBar(message) {
29
29
  var newEl = document.createElement('div');
30
30
  newEl.className = 'response-area-alert';
31
31
 
32
- var el = _react["default"].createElement(_Snackbar["default"], {
32
+ var el = /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
33
33
  anchorOrigin: {
34
34
  vertical: 'top',
35
35
  horizontal: 'center'
@@ -38,7 +38,7 @@ var insertSnackBar = function insertSnackBar(message) {
38
38
  ContentProps: {
39
39
  'aria-describedby': 'message-id'
40
40
  },
41
- message: _react["default"].createElement("span", {
41
+ message: /*#__PURE__*/_react["default"].createElement("span", {
42
42
  id: "message-id"
43
43
  }, message)
44
44
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/plugins/respArea/utils.jsx"],"names":["isNumber","val","isNaN","parseFloat","isFinite","insertSnackBar","message","prevSnacks","document","querySelectorAll","forEach","s","remove","newEl","createElement","className","el","vertical","horizontal","ReactDOM","render","body","appendChild","setTimeout","defaultECR","index","Inline","create","type","isVoid","data","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAAAC,GAAG;AAAA,SAAI,CAACC,KAAK,CAACC,UAAU,CAACF,GAAD,CAAX,CAAN,IAA2BG,QAAQ,CAACH,GAAD,CAAvC;AAAA,CAApB;;;;AAEA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,OAAO,EAAI;AACvC,MAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAAnB;AAEAF,EAAAA,UAAU,CAACG,OAAX,CAAmB,UAAAC,CAAC;AAAA,WAAIA,CAAC,CAACC,MAAF,EAAJ;AAAA,GAApB;AAEA,MAAMC,KAAK,GAAGL,QAAQ,CAACM,aAAT,CAAuB,KAAvB,CAAd;AAEAD,EAAAA,KAAK,CAACE,SAAN,GAAkB,qBAAlB;;AAEA,MAAMC,EAAE,GACN,gCAAC,oBAAD;AACE,IAAA,YAAY,EAAE;AAAEC,MAAAA,QAAQ,EAAE,KAAZ;AAAmBC,MAAAA,UAAU,EAAE;AAA/B,KADhB;AAEE,IAAA,IAAI,EAAE,IAFR;AAGE,IAAA,YAAY,EAAE;AACZ,0BAAoB;AADR,KAHhB;AAME,IAAA,OAAO,EAAE;AAAM,MAAA,EAAE,EAAC;AAAT,OAAuBZ,OAAvB;AANX,IADF;;AAWAa,uBAASC,MAAT,CAAgBJ,EAAhB,EAAoBH,KAApB;;AAEAL,EAAAA,QAAQ,CAACa,IAAT,CAAcC,WAAd,CAA0BT,KAA1B;AAEAU,EAAAA,UAAU,CAAC,YAAM;AACfV,IAAAA,KAAK,CAACD,MAAN;AACD,GAFS,EAEP,IAFO,CAAV;AAGD,CA3BM;;;;AA6BA,IAAMY,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK;AAAA,SAC7BC,cAAOC,MAAP,CAAc;AACZC,IAAAA,IAAI,EAAE,+BADM;AAEZC,IAAAA,MAAM,EAAE,IAFI;AAGZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA;AADI;AAHM,GAAd,CAD6B;AAAA,CAAxB;;;;AASA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAOP,KAAP;AAAA,SACxBC,cAAOC,MAAP,CAAc;AACZC,IAAAA,IAAI,EAAE,mBADM;AAEZC,IAAAA,MAAM,EAAE,IAFI;AAGZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA,KADI;AAEJQ,MAAAA,UAAU,EAAED,IAAI,CAACE,OAAL,CAAaD,UAFrB;AAGJE,MAAAA,KAAK,EAAE;AAHH;AAHM,GAAd,CADwB;AAAA,CAAnB;;;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAX,KAAK;AAAA,SAC7BC,cAAOC,MAAP,CAAc;AACZU,IAAAA,MAAM,EAAE,QADI;AAEZT,IAAAA,IAAI,EAAE,iBAFM;AAGZC,IAAAA,MAAM,EAAE,IAHI;AAIZC,IAAAA,IAAI,EAAE;AACJL,MAAAA,KAAK,EAALA;AADI;AAJM,GAAd,CAD6B;AAAA,CAAxB;;;;AAUA,IAAMa,iBAAiB,GAAG,SAApBA,iBAAoB,CAACN,IAAD,EAAOP,KAAP,EAAiB;AAChD,UAAQO,IAAI,CAACJ,IAAb;AACE,SAAK,+BAAL;AACE,aAAOJ,UAAU,CAACC,KAAD,CAAjB;;AACF,SAAK,mBAAL;AACE,aAAOM,UAAU,CAACC,IAAD,EAAOP,KAAP,CAAjB;;AACF;AACE;AACA,aAAOW,UAAU,CAACX,KAAD,CAAjB;AAPJ;AASD,CAVM","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nexport const isNumber = val => !isNaN(parseFloat(val)) && isFinite(val);\n\nexport const insertSnackBar = message => {\n const prevSnacks = document.querySelectorAll('.response-area-alert');\n\n prevSnacks.forEach(s => s.remove());\n\n const newEl = document.createElement('div');\n\n newEl.className = 'response-area-alert';\n\n const el = (\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={true}\n ContentProps={{\n 'aria-describedby': 'message-id'\n }}\n message={<span id=\"message-id\">{message}</span>}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n newEl.remove();\n }, 2000);\n};\n\nexport const defaultECR = index =>\n Inline.create({\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const defaultDIB = (opts, index) =>\n Inline.create({\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index,\n duplicates: opts.options.duplicates,\n value: null\n }\n });\n\nexport const defaultIDD = index =>\n Inline.create({\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const getDefaultElement = (opts, index) => {\n switch (opts.type) {\n case 'explicit-constructed-response':\n return defaultECR(index);\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n"],"file":"utils.js"}
1
+ {"version":3,"file":"utils.js","names":["isNumber","val","isNaN","parseFloat","isFinite","insertSnackBar","message","prevSnacks","document","querySelectorAll","forEach","s","remove","newEl","createElement","className","el","vertical","horizontal","ReactDOM","render","body","appendChild","setTimeout","defaultECR","index","Inline","create","type","isVoid","data","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"sources":["../../../src/plugins/respArea/utils.jsx"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Inline } from 'slate';\nimport Snackbar from '@material-ui/core/Snackbar';\n\nexport const isNumber = val => !isNaN(parseFloat(val)) && isFinite(val);\n\nexport const insertSnackBar = message => {\n const prevSnacks = document.querySelectorAll('.response-area-alert');\n\n prevSnacks.forEach(s => s.remove());\n\n const newEl = document.createElement('div');\n\n newEl.className = 'response-area-alert';\n\n const el = (\n <Snackbar\n anchorOrigin={{ vertical: 'top', horizontal: 'center' }}\n open={true}\n ContentProps={{\n 'aria-describedby': 'message-id'\n }}\n message={<span id=\"message-id\">{message}</span>}\n />\n );\n\n ReactDOM.render(el, newEl);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n newEl.remove();\n }, 2000);\n};\n\nexport const defaultECR = index =>\n Inline.create({\n type: 'explicit_constructed_response',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const defaultDIB = (opts, index) =>\n Inline.create({\n type: 'drag_in_the_blank',\n isVoid: true,\n data: {\n index,\n duplicates: opts.options.duplicates,\n value: null\n }\n });\n\nexport const defaultIDD = index =>\n Inline.create({\n object: 'inline',\n type: 'inline_dropdown',\n isVoid: true,\n data: {\n index\n }\n });\n\nexport const getDefaultElement = (opts, index) => {\n switch (opts.type) {\n case 'explicit-constructed-response':\n return defaultECR(index);\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEO,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAAAC,GAAG;EAAA,OAAI,CAACC,KAAK,CAACC,UAAU,CAACF,GAAD,CAAX,CAAN,IAA2BG,QAAQ,CAACH,GAAD,CAAvC;AAAA,CAApB;;;;AAEA,IAAMI,cAAc,GAAG,SAAjBA,cAAiB,CAAAC,OAAO,EAAI;EACvC,IAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAT,CAA0B,sBAA1B,CAAnB;EAEAF,UAAU,CAACG,OAAX,CAAmB,UAAAC,CAAC;IAAA,OAAIA,CAAC,CAACC,MAAF,EAAJ;EAAA,CAApB;EAEA,IAAMC,KAAK,GAAGL,QAAQ,CAACM,aAAT,CAAuB,KAAvB,CAAd;EAEAD,KAAK,CAACE,SAAN,GAAkB,qBAAlB;;EAEA,IAAMC,EAAE,gBACN,gCAAC,oBAAD;IACE,YAAY,EAAE;MAAEC,QAAQ,EAAE,KAAZ;MAAmBC,UAAU,EAAE;IAA/B,CADhB;IAEE,IAAI,EAAE,IAFR;IAGE,YAAY,EAAE;MACZ,oBAAoB;IADR,CAHhB;IAME,OAAO,eAAE;MAAM,EAAE,EAAC;IAAT,GAAuBZ,OAAvB;EANX,EADF;;EAWAa,oBAAA,CAASC,MAAT,CAAgBJ,EAAhB,EAAoBH,KAApB;;EAEAL,QAAQ,CAACa,IAAT,CAAcC,WAAd,CAA0BT,KAA1B;EAEAU,UAAU,CAAC,YAAM;IACfV,KAAK,CAACD,MAAN;EACD,CAFS,EAEP,IAFO,CAAV;AAGD,CA3BM;;;;AA6BA,IAAMY,UAAU,GAAG,SAAbA,UAAa,CAAAC,KAAK;EAAA,OAC7BC,aAAA,CAAOC,MAAP,CAAc;IACZC,IAAI,EAAE,+BADM;IAEZC,MAAM,EAAE,IAFI;IAGZC,IAAI,EAAE;MACJL,KAAK,EAALA;IADI;EAHM,CAAd,CAD6B;AAAA,CAAxB;;;;AASA,IAAMM,UAAU,GAAG,SAAbA,UAAa,CAACC,IAAD,EAAOP,KAAP;EAAA,OACxBC,aAAA,CAAOC,MAAP,CAAc;IACZC,IAAI,EAAE,mBADM;IAEZC,MAAM,EAAE,IAFI;IAGZC,IAAI,EAAE;MACJL,KAAK,EAALA,KADI;MAEJQ,UAAU,EAAED,IAAI,CAACE,OAAL,CAAaD,UAFrB;MAGJE,KAAK,EAAE;IAHH;EAHM,CAAd,CADwB;AAAA,CAAnB;;;;AAWA,IAAMC,UAAU,GAAG,SAAbA,UAAa,CAAAX,KAAK;EAAA,OAC7BC,aAAA,CAAOC,MAAP,CAAc;IACZU,MAAM,EAAE,QADI;IAEZT,IAAI,EAAE,iBAFM;IAGZC,MAAM,EAAE,IAHI;IAIZC,IAAI,EAAE;MACJL,KAAK,EAALA;IADI;EAJM,CAAd,CAD6B;AAAA,CAAxB;;;;AAUA,IAAMa,iBAAiB,GAAG,SAApBA,iBAAoB,CAACN,IAAD,EAAOP,KAAP,EAAiB;EAChD,QAAQO,IAAI,CAACJ,IAAb;IACE,KAAK,+BAAL;MACE,OAAOJ,UAAU,CAACC,KAAD,CAAjB;;IACF,KAAK,mBAAL;MACE,OAAOM,UAAU,CAACC,IAAD,EAAOP,KAAP,CAAjB;;IACF;MACE;MACA,OAAOW,UAAU,CAACX,KAAD,CAAjB;EAPJ;AASD,CAVM"}