@pie-lib/editable-html 9.3.1-next.34 → 9.3.1-next.53
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/editor.js +120 -248
- package/lib/editor.js.map +1 -1
- package/lib/index.js +5 -51
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js +6 -5
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +2 -12
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +3 -50
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js +0 -26
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +29 -82
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +7 -45
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +2 -41
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +2 -22
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +13 -34
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +13 -42
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +30 -75
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +18 -75
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +100 -188
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +4 -24
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +5 -29
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +10 -50
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +4 -18
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/explicit-constructed-response/index.js +2 -8
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +1 -18
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +1 -47
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +1 -8
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +0 -22
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/icons/index.js +0 -7
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +15 -94
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +11 -43
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +8 -30
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +1 -9
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +18 -48
- package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/index.js +0 -5
- package/lib/plugins/toolbar/index.js.map +1 -1
- package/lib/plugins/toolbar/toolbar-buttons.js +8 -39
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +19 -67
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +0 -15
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +8 -69
- package/lib/serialization.js.map +1 -1
- package/lib/theme.js.map +1 -1
- package/package.json +4 -4
- package/src/editor.jsx +4 -3
- package/src/plugins/media/index.jsx +0 -1
|
@@ -1,26 +1,17 @@
|
|
|
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.onValueChange = exports.onRemoveResponse = exports["default"] = void 0;
|
|
9
|
-
|
|
10
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
-
|
|
14
10
|
var _react = _interopRequireDefault(require("react"));
|
|
15
|
-
|
|
16
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
17
|
-
|
|
18
12
|
var _choice = _interopRequireDefault(require("./choice"));
|
|
19
|
-
|
|
20
13
|
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; }
|
|
21
|
-
|
|
22
14
|
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; }
|
|
23
|
-
|
|
24
15
|
var onValueChange = function onValueChange(nodeProps, n, value) {
|
|
25
16
|
var val = nodeProps.editor.value;
|
|
26
17
|
var change = val.change();
|
|
@@ -33,9 +24,7 @@ var onValueChange = function onValueChange(nodeProps, n, value) {
|
|
|
33
24
|
nodeProps.editor.props.onEditingDone();
|
|
34
25
|
});
|
|
35
26
|
};
|
|
36
|
-
|
|
37
27
|
exports.onValueChange = onValueChange;
|
|
38
|
-
|
|
39
28
|
var onRemoveResponse = function onRemoveResponse(nodeProps, value) {
|
|
40
29
|
var val = nodeProps.editor.value;
|
|
41
30
|
var change = val.change();
|
|
@@ -51,15 +40,13 @@ var onRemoveResponse = function onRemoveResponse(nodeProps, value) {
|
|
|
51
40
|
nodeProps.editor.props.onEditingDone();
|
|
52
41
|
});
|
|
53
42
|
};
|
|
54
|
-
|
|
55
43
|
exports.onRemoveResponse = onRemoveResponse;
|
|
56
|
-
|
|
57
44
|
var DragDrop = function DragDrop(props) {
|
|
58
45
|
var attributes = props.attributes,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
46
|
+
data = props.data,
|
|
47
|
+
n = props.n,
|
|
48
|
+
nodeProps = props.nodeProps,
|
|
49
|
+
opts = props.opts;
|
|
63
50
|
var inTable = data.inTable;
|
|
64
51
|
return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
|
|
65
52
|
style: {
|
|
@@ -84,7 +71,6 @@ var DragDrop = function DragDrop(props) {
|
|
|
84
71
|
}
|
|
85
72
|
}, nodeProps.children));
|
|
86
73
|
};
|
|
87
|
-
|
|
88
74
|
DragDrop.propTypes = {
|
|
89
75
|
attributes: _propTypes["default"].object,
|
|
90
76
|
data: _propTypes["default"].object,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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.data && n.data.get('index') === value.index);\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,17 @@
|
|
|
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
11
|
var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
|
|
17
12
|
var attributes = props.attributes,
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
value = props.value,
|
|
14
|
+
error = props.error;
|
|
20
15
|
return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
|
|
21
16
|
style: {
|
|
22
17
|
display: 'inline-flex',
|
|
@@ -44,7 +39,6 @@ var ExplicitConstructedResponse = function ExplicitConstructedResponse(props) {
|
|
|
44
39
|
}
|
|
45
40
|
}));
|
|
46
41
|
};
|
|
47
|
-
|
|
48
42
|
ExplicitConstructedResponse.propTypes = {
|
|
49
43
|
attributes: _propTypes["default"].object,
|
|
50
44
|
value: _propTypes["default"].string
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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> </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,2BAA2B,CAAIC,KAAK,EAAK;EAC7C,IAAQC,UAAU,GAAmBD,KAAK,CAAlCC,UAAU;IAAEC,KAAK,GAAYF,KAAK,CAAtBE,KAAK;IAAEC,KAAK,GAAKH,KAAK,CAAfG,KAAK;EAEhC,oBACE,sEACMF,UAAU;IACd,KAAK,EAAE;MACLG,OAAO,EAAE,aAAa;MACtBC,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAAE,OAAO;MACjBC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE;IACV;EAAE,iBAEF;IACE,KAAK,EAAE;MACLL,OAAO,EAAE,aAAa;MACtBE,QAAQ,EAAE,OAAO;MACjBD,SAAS,EAAE,MAAM;MACjBK,MAAM,EAAE,MAAM;MACdC,UAAU,EAAE,MAAM;MAClBC,MAAM,sBAAeT,KAAK,GAAG,KAAK,GAAG,SAAS,CAAE;MAChDU,SAAS,EAAE,YAAY;MACvBC,YAAY,EAAE,KAAK;MACnBC,QAAQ,EAAE,QAAQ;MAClBC,OAAO,EAAE;IACX,CAAE;IACF,uBAAuB,EAAE;MACvBC,MAAM,EAAEf,KAAK,IAAI;IACnB;EAAE,EACF,CACG;AAEX,CAAC;AAEDH,2BAA2B,CAACmB,SAAS,GAAG;EACtCjB,UAAU,EAAEkB,qBAAS,CAACC,MAAM;EAC5BlB,KAAK,EAAEiB,qBAAS,CAACE;AACnB,CAAC;AAAC,eAEatB,2BAA2B;AAAA"}
|
|
@@ -1,47 +1,33 @@
|
|
|
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.ToolbarIcon = exports.GripIcon = exports.Chevron = void 0;
|
|
9
|
-
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
11
|
var _ChevronRight = _interopRequireDefault(require("@material-ui/icons/ChevronRight"));
|
|
17
|
-
|
|
18
12
|
var _MoreVert = _interopRequireDefault(require("@material-ui/icons/MoreVert"));
|
|
19
|
-
|
|
20
13
|
var _styles = require("@material-ui/core/styles");
|
|
21
|
-
|
|
22
14
|
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
|
-
|
|
24
15
|
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
|
-
|
|
26
16
|
var getRotate = function getRotate(direction) {
|
|
27
17
|
switch (direction) {
|
|
28
18
|
case 'down':
|
|
29
19
|
return 90;
|
|
30
|
-
|
|
31
20
|
case 'up':
|
|
32
21
|
return -90;
|
|
33
|
-
|
|
34
22
|
case 'left':
|
|
35
23
|
return 180;
|
|
36
|
-
|
|
37
24
|
default:
|
|
38
25
|
return 0;
|
|
39
26
|
}
|
|
40
27
|
};
|
|
41
|
-
|
|
42
28
|
var Chevron = function Chevron(props) {
|
|
43
29
|
var direction = props.direction,
|
|
44
|
-
|
|
30
|
+
style = props.style;
|
|
45
31
|
var rotate = getRotate(direction);
|
|
46
32
|
return /*#__PURE__*/_react["default"].createElement(_ChevronRight["default"], {
|
|
47
33
|
style: _objectSpread({
|
|
@@ -49,13 +35,11 @@ var Chevron = function Chevron(props) {
|
|
|
49
35
|
}, style)
|
|
50
36
|
});
|
|
51
37
|
};
|
|
52
|
-
|
|
53
38
|
exports.Chevron = Chevron;
|
|
54
39
|
Chevron.propTypes = {
|
|
55
40
|
direction: _propTypes["default"].string,
|
|
56
41
|
style: _propTypes["default"].object
|
|
57
42
|
};
|
|
58
|
-
|
|
59
43
|
var GripIcon = function GripIcon(_ref) {
|
|
60
44
|
var style = _ref.style;
|
|
61
45
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
@@ -66,7 +50,6 @@ var GripIcon = function GripIcon(_ref) {
|
|
|
66
50
|
}
|
|
67
51
|
}), /*#__PURE__*/_react["default"].createElement(_MoreVert["default"], null));
|
|
68
52
|
};
|
|
69
|
-
|
|
70
53
|
exports.GripIcon = GripIcon;
|
|
71
54
|
GripIcon.propTypes = {
|
|
72
55
|
style: _propTypes["default"].object
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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;AAAsD;AAAA;AAEtD,IAAMA,SAAS,GAAG,SAAZA,SAAS,CAAIC,SAAS,EAAK;EAC/B,QAAQA,SAAS;IACf,KAAK,MAAM;MACT,OAAO,EAAE;IACX,KAAK,IAAI;MACP,OAAO,CAAC,EAAE;IACZ,KAAK,MAAM;MACT,OAAO,GAAG;IACZ;MACE,OAAO,CAAC;EAAC;AAEf,CAAC;AAEM,IAAMC,OAAO,GAAG,SAAVA,OAAO,CAAIC,KAAK,EAAK;EAChC,IAAQF,SAAS,GAAYE,KAAK,CAA1BF,SAAS;IAAEG,KAAK,GAAKD,KAAK,CAAfC,KAAK;EACxB,IAAMC,MAAM,GAAGL,SAAS,CAACC,SAAS,CAAC;EAEnC,oBACE,gCAAC,wBAAY;IACX,KAAK;MACHK,SAAS,mBAAYD,MAAM;IAAM,GAC9BD,KAAK;EACR,EACF;AAEN,CAAC;AAAC;AAEFF,OAAO,CAACK,SAAS,GAAG;EAClBN,SAAS,EAAEO,qBAAS,CAACC,MAAM;EAC3BL,KAAK,EAAEI,qBAAS,CAACE;AACnB,CAAC;AAEM,IAAMC,QAAQ,GAAG,SAAXA,QAAQ,OAAkB;EAAA,IAAZP,KAAK,QAALA,KAAK;EAC9B,oBACE;IAAM,KAAK,EAAEA;EAAM,gBACjB,gCAAC,oBAAQ;IACP,KAAK,EAAE;MACLQ,MAAM,EAAE;IACV;EAAE,EACF,eACF,gCAAC,oBAAQ,OAAG,CACP;AAEX,CAAC;AAAC;AAEFD,QAAQ,CAACJ,SAAS,GAAG;EACnBH,KAAK,EAAEI,qBAAS,CAACE;AACnB,CAAC;AAEM,IAAMG,WAAW,GAAG,IAAAC,kBAAU,EAAC;EACpCC,IAAI,EAAE;IACJC,UAAU,EAAE,yBAAyB;IACrCC,QAAQ,EAAE,MAAM;IAChBC,UAAU,EAAE,MAAM;IAClBC,UAAU,EAAE,MAAM;IAClBC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,KAAK;IACVC,KAAK,EAAE,OAAO;IACdC,MAAM,EAAE,MAAM;IACdC,UAAU,EAAE;EACd;AACF,CAAC,CAAC,CAAC;EAAA,IAAGC,OAAO,SAAPA,OAAO;EAAA,oBAAO;IAAK,SAAS,EAAEA,OAAO,CAACV;EAAK,GAAC,iBAAe,CAAM;AAAA,EAAC;AAAC"}
|
|
@@ -1,29 +1,19 @@
|
|
|
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"] = ResponseAreaPlugin;
|
|
9
8
|
exports.serialization = void 0;
|
|
10
|
-
|
|
11
9
|
var _react = _interopRequireDefault(require("react"));
|
|
12
|
-
|
|
13
10
|
var _debug = _interopRequireDefault(require("debug"));
|
|
14
|
-
|
|
15
11
|
var _isUndefined = _interopRequireDefault(require("lodash/isUndefined"));
|
|
16
|
-
|
|
17
12
|
var _inlineDropdown = _interopRequireDefault(require("./inline-dropdown"));
|
|
18
|
-
|
|
19
13
|
var _dragInTheBlank = _interopRequireDefault(require("./drag-in-the-blank"));
|
|
20
|
-
|
|
21
14
|
var _explicitConstructedResponse = _interopRequireDefault(require("./explicit-constructed-response"));
|
|
22
|
-
|
|
23
15
|
var _utils = require("./utils");
|
|
24
|
-
|
|
25
16
|
var _icons = require("./icons");
|
|
26
|
-
|
|
27
17
|
var log = (0, _debug["default"])('@pie-lib:editable-html:plugins:respArea');
|
|
28
18
|
var lastIndexMap = {};
|
|
29
19
|
var elTypesMap = {
|
|
@@ -32,12 +22,10 @@ var elTypesMap = {
|
|
|
32
22
|
'drag-in-the-blank': 'drag_in_the_blank'
|
|
33
23
|
};
|
|
34
24
|
var elTypesArray = Object.values(elTypesMap);
|
|
35
|
-
|
|
36
25
|
function ResponseAreaPlugin(opts) {
|
|
37
26
|
var isOfCurrentType = function isOfCurrentType(d) {
|
|
38
27
|
return d.type === opts.type || d.type === elTypesMap[opts.type];
|
|
39
28
|
};
|
|
40
|
-
|
|
41
29
|
var toolbar = {
|
|
42
30
|
icon: /*#__PURE__*/_react["default"].createElement(_icons.ToolbarIcon, null),
|
|
43
31
|
buttonStyles: {
|
|
@@ -47,45 +35,36 @@ function ResponseAreaPlugin(opts) {
|
|
|
47
35
|
log('[toolbar] onClick');
|
|
48
36
|
var change = value.change();
|
|
49
37
|
var currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);
|
|
50
|
-
|
|
51
38
|
if (currentRespAreaList.size >= opts.maxResponseAreas) {
|
|
52
39
|
return;
|
|
53
40
|
}
|
|
54
|
-
|
|
55
41
|
var type = opts.type.replace(/-/g, '_');
|
|
56
42
|
var prevIndex = lastIndexMap[type];
|
|
57
43
|
var newIndex = prevIndex === 0 ? prevIndex : prevIndex + 1;
|
|
58
44
|
var newInline = (0, _utils.getDefaultElement)(opts, newIndex);
|
|
59
45
|
lastIndexMap[type] += 1;
|
|
60
|
-
|
|
61
46
|
if (newInline) {
|
|
62
47
|
if (change.value.selection.startKey || change.value.selection.endKey) {
|
|
63
48
|
change.insertInline(newInline);
|
|
64
49
|
} else {
|
|
65
50
|
// If the markup is empty and there's no focus
|
|
66
51
|
var lastText = value.document.getLastText();
|
|
67
|
-
|
|
68
52
|
if (!lastText) {
|
|
69
53
|
return;
|
|
70
54
|
}
|
|
71
|
-
|
|
72
55
|
var parentNode = value.document.getParent(lastText.key);
|
|
73
|
-
|
|
74
56
|
if (parentNode) {
|
|
75
57
|
var index = parentNode.nodes.indexOf(lastText.key);
|
|
76
58
|
if (parentNode.isVoid) return;
|
|
77
59
|
change.insertNodeByKey(parentNode.key, index + 1, newInline);
|
|
78
60
|
}
|
|
79
61
|
}
|
|
80
|
-
|
|
81
62
|
if (newInline.type === 'drag_in_the_blank') {
|
|
82
63
|
var nextText = change.value.document.getNextText(newInline.key);
|
|
83
|
-
|
|
84
64
|
if (nextText) {
|
|
85
65
|
change.moveFocusTo(nextText.key, 0).moveAnchorTo(nextText.key, 0);
|
|
86
66
|
}
|
|
87
67
|
}
|
|
88
|
-
|
|
89
68
|
onChange(change);
|
|
90
69
|
}
|
|
91
70
|
},
|
|
@@ -102,7 +81,6 @@ function ResponseAreaPlugin(opts) {
|
|
|
102
81
|
if (node.type === 'explicit_constructed_response' || node.type === 'drag_in_the_blank') {
|
|
103
82
|
return [];
|
|
104
83
|
}
|
|
105
|
-
|
|
106
84
|
return plugins.filter(function (p) {
|
|
107
85
|
return p.name !== 'response_area';
|
|
108
86
|
});
|
|
@@ -114,26 +92,21 @@ function ResponseAreaPlugin(opts) {
|
|
|
114
92
|
},
|
|
115
93
|
renderNode: function renderNode(props) {
|
|
116
94
|
var attributes = props.attributes,
|
|
117
|
-
|
|
118
|
-
|
|
95
|
+
n = props.node;
|
|
119
96
|
if (n.type === 'explicit_constructed_response') {
|
|
120
97
|
var data = n.data.toJSON();
|
|
121
98
|
var error;
|
|
122
|
-
|
|
123
99
|
if (opts.error) {
|
|
124
100
|
error = opts.error();
|
|
125
101
|
}
|
|
126
|
-
|
|
127
102
|
return /*#__PURE__*/_react["default"].createElement(_explicitConstructedResponse["default"], {
|
|
128
103
|
attributes: attributes,
|
|
129
104
|
value: data.value,
|
|
130
105
|
error: error && error[data.index] && error[data.index][0]
|
|
131
106
|
});
|
|
132
107
|
}
|
|
133
|
-
|
|
134
108
|
if (n.type === 'drag_in_the_blank') {
|
|
135
109
|
var _data = n.data.toJSON();
|
|
136
|
-
|
|
137
110
|
return /*#__PURE__*/_react["default"].createElement(_dragInTheBlank["default"], {
|
|
138
111
|
attributes: attributes,
|
|
139
112
|
data: _data,
|
|
@@ -142,10 +115,8 @@ function ResponseAreaPlugin(opts) {
|
|
|
142
115
|
opts: opts
|
|
143
116
|
});
|
|
144
117
|
}
|
|
145
|
-
|
|
146
118
|
if (n.type === 'inline_dropdown') {
|
|
147
119
|
var _data2 = n.data.toJSON();
|
|
148
|
-
|
|
149
120
|
return /*#__PURE__*/_react["default"].createElement(_inlineDropdown["default"], {
|
|
150
121
|
attributes: attributes,
|
|
151
122
|
selectedItem: _data2.value
|
|
@@ -154,33 +125,27 @@ function ResponseAreaPlugin(opts) {
|
|
|
154
125
|
},
|
|
155
126
|
onChange: function onChange(change, editor) {
|
|
156
127
|
var type = opts.type.replace(/-/g, '_');
|
|
157
|
-
|
|
158
128
|
if ((0, _isUndefined["default"])(lastIndexMap[type])) {
|
|
159
129
|
lastIndexMap[type] = 0;
|
|
160
130
|
change.value.document.forEachDescendant(function (d) {
|
|
161
131
|
if (d.type === type) {
|
|
162
132
|
var newIndex = parseInt(d.data.get('index'), 10);
|
|
163
|
-
|
|
164
133
|
if (newIndex > lastIndexMap[type]) {
|
|
165
134
|
lastIndexMap[type] = newIndex;
|
|
166
135
|
}
|
|
167
136
|
}
|
|
168
137
|
});
|
|
169
138
|
}
|
|
170
|
-
|
|
171
139
|
if (!editor.value) {
|
|
172
140
|
return;
|
|
173
141
|
}
|
|
174
|
-
|
|
175
142
|
var currentRespAreaList = change.value.document.filterDescendants(isOfCurrentType);
|
|
176
143
|
var oldRespAreaList = editor.value.document.filterDescendants(isOfCurrentType);
|
|
177
|
-
|
|
178
144
|
if (currentRespAreaList.size >= opts.maxResponseAreas) {
|
|
179
145
|
toolbar.disabled = true;
|
|
180
146
|
} else {
|
|
181
147
|
toolbar.disabled = false;
|
|
182
148
|
}
|
|
183
|
-
|
|
184
149
|
var arrayToFilter = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;
|
|
185
150
|
var arrayToUseForFilter = arrayToFilter === oldRespAreaList ? currentRespAreaList : oldRespAreaList;
|
|
186
151
|
var elementsWithChangedStatus = arrayToFilter.filter(function (d) {
|
|
@@ -188,7 +153,6 @@ function ResponseAreaPlugin(opts) {
|
|
|
188
153
|
return e.data.get('index') === d.data.get('index');
|
|
189
154
|
});
|
|
190
155
|
});
|
|
191
|
-
|
|
192
156
|
if (elementsWithChangedStatus.size && oldRespAreaList.size > currentRespAreaList.size) {
|
|
193
157
|
opts.onHandleAreaChange(elementsWithChangedStatus);
|
|
194
158
|
}
|
|
@@ -198,18 +162,15 @@ function ResponseAreaPlugin(opts) {
|
|
|
198
162
|
var inline = editor.value.document.findDescendant(function (d) {
|
|
199
163
|
return d.key === closestEl.dataset.key;
|
|
200
164
|
});
|
|
201
|
-
|
|
202
165
|
if (inline.type === 'drag_in_the_blank') {
|
|
203
166
|
return false;
|
|
204
167
|
}
|
|
205
168
|
}
|
|
206
169
|
};
|
|
207
170
|
}
|
|
208
|
-
|
|
209
171
|
var serialization = {
|
|
210
172
|
deserialize: function deserialize(el) {
|
|
211
173
|
var type = el.dataset && el.dataset.type;
|
|
212
|
-
|
|
213
174
|
switch (type) {
|
|
214
175
|
case 'inline_dropdown':
|
|
215
176
|
return {
|
|
@@ -221,7 +182,6 @@ var serialization = {
|
|
|
221
182
|
value: el.dataset.value
|
|
222
183
|
}
|
|
223
184
|
};
|
|
224
|
-
|
|
225
185
|
case 'explicit_constructed_response':
|
|
226
186
|
return {
|
|
227
187
|
object: 'inline',
|
|
@@ -232,7 +192,6 @@ var serialization = {
|
|
|
232
192
|
value: el.dataset.value
|
|
233
193
|
}
|
|
234
194
|
};
|
|
235
|
-
|
|
236
195
|
case 'drag_in_the_blank':
|
|
237
196
|
return {
|
|
238
197
|
object: 'inline',
|
|
@@ -251,7 +210,6 @@ var serialization = {
|
|
|
251
210
|
if (object.object !== 'inline') {
|
|
252
211
|
return;
|
|
253
212
|
}
|
|
254
|
-
|
|
255
213
|
switch (object.type) {
|
|
256
214
|
case 'inline_dropdown':
|
|
257
215
|
{
|
|
@@ -262,22 +220,18 @@ var serialization = {
|
|
|
262
220
|
"data-value": data.value
|
|
263
221
|
});
|
|
264
222
|
}
|
|
265
|
-
|
|
266
223
|
case 'explicit_constructed_response':
|
|
267
224
|
{
|
|
268
225
|
var _data3 = object.data.toJSON();
|
|
269
|
-
|
|
270
226
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
271
227
|
"data-type": "explicit_constructed_response",
|
|
272
228
|
"data-index": _data3.index,
|
|
273
229
|
"data-value": _data3.value
|
|
274
230
|
});
|
|
275
231
|
}
|
|
276
|
-
|
|
277
232
|
case 'drag_in_the_blank':
|
|
278
233
|
{
|
|
279
234
|
var _data4 = object.data.toJSON();
|
|
280
|
-
|
|
281
235
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
282
236
|
"data-type": "drag_in_the_blank",
|
|
283
237
|
"data-index": _data4.index,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/plugins/respArea/index.jsx"],"names":["log","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","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","forEachDescendant","parseInt","get","oldRespAreaList","disabled","arrayToFilter","arrayToUseForFilter","elementsWithChangedStatus","find","onHandleAreaChange","onDrop","event","closestEl","target","closest","inline","findDescendant","dataset","serialization","deserialize","el","id","inTable","serialize"],"mappings":"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","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 <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />;\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 = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;\n const arrayToUseForFilter = 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 <span data-type=\"explicit_constructed_response\" data-index={data.index} data-value={data.value} />;\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 <DragInTheBlank attributes={attributes} data={data} n={n} nodeProps={props} opts={opts} />;\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 = oldRespAreaList.size > currentRespAreaList.size ? oldRespAreaList : currentRespAreaList;\n const arrayToUseForFilter = 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 <span data-type=\"explicit_constructed_response\" data-index={data.index} data-value={data.value} />;\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":"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"}
|
|
@@ -1,23 +1,17 @@
|
|
|
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
11
|
var _icons = require("../icons");
|
|
17
|
-
|
|
18
12
|
var InlineDropdown = function InlineDropdown(_ref) {
|
|
19
13
|
var attributes = _ref.attributes,
|
|
20
|
-
|
|
14
|
+
selectedItem = _ref.selectedItem;
|
|
21
15
|
// TODO: Investigate
|
|
22
16
|
// Needed because items with values inside have different positioning for some reason
|
|
23
17
|
var html = selectedItem || '<div> </div>';
|
|
@@ -60,7 +54,6 @@ var InlineDropdown = function InlineDropdown(_ref) {
|
|
|
60
54
|
}
|
|
61
55
|
})));
|
|
62
56
|
};
|
|
63
|
-
|
|
64
57
|
InlineDropdown.propTypes = {
|
|
65
58
|
attributes: _propTypes["default"].object,
|
|
66
59
|
selectedItem: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].object])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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> </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,cAAc,OAAqC;EAAA,IAA/BC,UAAU,QAAVA,UAAU;IAAEC,YAAY,QAAZA,YAAY;EAChD;EACA;EACA,IAAMC,IAAI,GAAGD,YAAY,IAAI,kBAAkB;EAE/C,oBACE,sEACMD,UAAU;IACd,KAAK,EAAE;MACLG,OAAO,EAAE,aAAa;MACtBC,MAAM,EAAE,MAAM;MACdC,MAAM,EAAE,OAAO;MACfC,MAAM,EAAE;IACV;EAAE,iBAEF;IACE,KAAK,EAAE;MACLH,OAAO,EAAE,aAAa;MACtBI,QAAQ,EAAE,OAAO;MACjBH,MAAM,EAAE,MAAM;MACdI,UAAU,EAAE,MAAM;MAClBC,MAAM,EAAE,mBAAmB;MAC3BC,SAAS,EAAE,YAAY;MACvBC,YAAY,EAAE,KAAK;MACnBC,QAAQ,EAAE;IACZ;EAAE,gBAEF;IACE,KAAK,EAAE;MACLC,IAAI,EAAE,CAAC;MACPC,QAAQ,EAAE,QAAQ;MAClBC,OAAO,EAAE,cAAc;MACvBC,UAAU,EAAE,QAAQ;MACpBC,YAAY,EAAE,UAAU;MACxBC,UAAU,EAAE;IACd,CAAE;IACF,uBAAuB,EAAE;MACvBC,MAAM,EAAEjB;IACV;EAAE,EACF,eACF,gCAAC,cAAO;IACN,SAAS,EAAC,MAAM;IAChB,KAAK,EAAE;MACLU,QAAQ,EAAE,UAAU;MACpBQ,GAAG,EAAE,KAAK;MACVC,KAAK,EAAE;IACT;EAAE,EACF,CACE,CACD;AAEX,CAAC;AAEDtB,cAAc,CAACuB,SAAS,GAAG;EACzBtB,UAAU,EAAEuB,qBAAS,CAACC,MAAM;EAC5BvB,YAAY,EAAEsB,qBAAS,CAACE,SAAS,CAAC,CAACF,qBAAS,CAACG,MAAM,EAAEH,qBAAS,CAACC,MAAM,CAAC;AACxE,CAAC;AAAC,eAEazB,cAAc;AAAA"}
|