@pie-lib/editable-html 11.21.2 → 11.21.3-next.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -76
- package/esm/package.json +3 -0
- package/lib/block-tags.js +2 -3
- package/lib/block-tags.js.map +1 -1
- package/lib/constants.js +3 -6
- package/lib/constants.js.map +1 -1
- package/lib/editor.js +350 -481
- package/lib/editor.js.map +1 -1
- package/lib/index.js +18 -79
- package/lib/index.js.map +1 -1
- package/lib/parse-html.js +7 -7
- package/lib/parse-html.js.map +1 -1
- package/lib/plugins/characters/custom-popper.js +28 -44
- package/lib/plugins/characters/custom-popper.js.map +1 -1
- package/lib/plugins/characters/index.js +23 -63
- package/lib/plugins/characters/index.js.map +1 -1
- package/lib/plugins/characters/utils.js +3 -6
- package/lib/plugins/characters/utils.js.map +1 -1
- package/lib/plugins/css/icons/index.js +13 -25
- package/lib/plugins/css/icons/index.js.map +1 -1
- package/lib/plugins/css/index.js +34 -93
- package/lib/plugins/css/index.js.map +1 -1
- package/lib/plugins/customPlugin/index.js +10 -26
- package/lib/plugins/customPlugin/index.js.map +1 -1
- package/lib/plugins/html/icons/index.js +17 -25
- package/lib/plugins/html/icons/index.js.map +1 -1
- package/lib/plugins/html/index.js +4 -13
- package/lib/plugins/html/index.js.map +1 -1
- package/lib/plugins/image/alt-dialog.js +20 -49
- package/lib/plugins/image/alt-dialog.js.map +1 -1
- package/lib/plugins/image/component.js +118 -194
- package/lib/plugins/image/component.js.map +1 -1
- package/lib/plugins/image/image-toolbar.js +48 -88
- package/lib/plugins/image/image-toolbar.js.map +1 -1
- package/lib/plugins/image/index.js +6 -46
- package/lib/plugins/image/index.js.map +1 -1
- package/lib/plugins/image/insert-image-handler.js +10 -31
- package/lib/plugins/image/insert-image-handler.js.map +1 -1
- package/lib/plugins/index.js +46 -106
- package/lib/plugins/index.js.map +1 -1
- package/lib/plugins/list/index.js +27 -73
- package/lib/plugins/list/index.js.map +1 -1
- package/lib/plugins/math/index.js +64 -116
- package/lib/plugins/math/index.js.map +1 -1
- package/lib/plugins/media/index.js +27 -84
- package/lib/plugins/media/index.js.map +1 -1
- package/lib/plugins/media/media-dialog.js +192 -307
- package/lib/plugins/media/media-dialog.js.map +1 -1
- package/lib/plugins/media/media-toolbar.js +40 -65
- package/lib/plugins/media/media-toolbar.js.map +1 -1
- package/lib/plugins/media/media-wrapper.js +20 -49
- package/lib/plugins/media/media-wrapper.js.map +1 -1
- package/lib/plugins/rendering/index.js +5 -15
- package/lib/plugins/rendering/index.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/choice.js +233 -251
- package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/index.js +17 -59
- package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
- package/lib/plugins/respArea/drag-in-the-blank/utils.js +38 -0
- package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -0
- package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -10
- package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
- package/lib/plugins/respArea/icons/index.js +22 -45
- package/lib/plugins/respArea/icons/index.js.map +1 -1
- package/lib/plugins/respArea/index.js +5 -59
- package/lib/plugins/respArea/index.js.map +1 -1
- package/lib/plugins/respArea/inline-dropdown/index.js +2 -10
- package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
- package/lib/plugins/respArea/math-templated/index.js +91 -109
- package/lib/plugins/respArea/math-templated/index.js.map +1 -1
- package/lib/plugins/respArea/utils.js +12 -42
- package/lib/plugins/respArea/utils.js.map +1 -1
- package/lib/plugins/table/CustomTablePlugin.js +24 -41
- package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
- package/lib/plugins/table/icons/index.js +21 -35
- package/lib/plugins/table/icons/index.js.map +1 -1
- package/lib/plugins/table/index.js +48 -118
- package/lib/plugins/table/index.js.map +1 -1
- package/lib/plugins/table/table-toolbar.js +37 -86
- package/lib/plugins/table/table-toolbar.js.map +1 -1
- package/lib/plugins/textAlign/icons/index.js +25 -64
- package/lib/plugins/textAlign/icons/index.js.map +1 -1
- package/lib/plugins/textAlign/index.js +0 -8
- package/lib/plugins/textAlign/index.js.map +1 -1
- package/lib/plugins/toolbar/default-toolbar.js +30 -79
- package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
- package/lib/plugins/toolbar/done-button.js +16 -34
- package/lib/plugins/toolbar/done-button.js.map +1 -1
- package/lib/plugins/toolbar/editor-and-toolbar.js +174 -202
- 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 +59 -108
- package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
- package/lib/plugins/toolbar/toolbar.js +93 -162
- package/lib/plugins/toolbar/toolbar.js.map +1 -1
- package/lib/plugins/utils.js +5 -25
- package/lib/plugins/utils.js.map +1 -1
- package/lib/serialization.js +47 -153
- package/lib/serialization.js.map +1 -1
- package/lib/shared/alert-dialog.js +35 -42
- package/lib/theme.js +1 -2
- package/lib/theme.js.map +1 -1
- package/package.json +26 -14
- package/src/__tests__/editor-utils.test.js +162 -0
- package/src/__tests__/utils.js +1 -1
- package/src/editor.jsx +175 -153
- package/src/index.jsx +0 -3
- package/src/plugins/characters/custom-popper.js +25 -25
- package/src/plugins/characters/index.jsx +15 -5
- package/src/plugins/css/icons/index.jsx +11 -13
- package/src/plugins/css/index.jsx +16 -11
- package/src/plugins/html/icons/index.jsx +17 -14
- package/src/plugins/image/__tests__/component.test.jsx +61 -29
- package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +69 -17
- package/src/plugins/image/__tests__/image-toolbar.test.jsx +6 -4
- package/src/plugins/image/alt-dialog.jsx +9 -8
- package/src/plugins/image/component.jsx +68 -92
- package/src/plugins/image/image-toolbar.jsx +31 -28
- package/src/plugins/image/index.jsx +1 -1
- package/src/plugins/index.jsx +12 -10
- package/src/plugins/math/__tests__/index.test.jsx +45 -26
- package/src/plugins/math/index.jsx +1 -1
- package/src/plugins/media/index.jsx +6 -5
- package/src/plugins/media/media-dialog.js +65 -76
- package/src/plugins/media/media-toolbar.jsx +32 -33
- package/src/plugins/media/media-wrapper.jsx +10 -13
- package/src/plugins/respArea/drag-in-the-blank/choice.jsx +240 -167
- package/src/plugins/respArea/drag-in-the-blank/index.jsx +27 -56
- package/src/plugins/respArea/drag-in-the-blank/utils.js +14 -0
- package/src/plugins/respArea/icons/index.jsx +16 -16
- package/src/plugins/respArea/math-templated/index.jsx +88 -89
- package/src/plugins/respArea/utils.jsx +5 -3
- package/src/plugins/table/__tests__/table-toolbar.test.jsx +40 -7
- package/src/plugins/table/icons/index.jsx +16 -16
- package/src/plugins/table/index.jsx +35 -19
- package/src/plugins/table/table-toolbar.jsx +18 -19
- package/src/plugins/textAlign/icons/index.jsx +13 -4
- package/src/plugins/textAlign/index.jsx +0 -3
- package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +102 -69
- package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +14 -11
- package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +81 -35
- package/src/plugins/toolbar/__tests__/toolbar.test.jsx +44 -38
- package/src/plugins/toolbar/default-toolbar.jsx +18 -21
- package/src/plugins/toolbar/done-button.jsx +16 -22
- package/src/plugins/toolbar/editor-and-toolbar.jsx +134 -158
- package/src/plugins/toolbar/toolbar-buttons.jsx +30 -46
- package/src/plugins/toolbar/toolbar.jsx +57 -79
- package/src/serialization.jsx +3 -3
- package/src/__tests__/editor.test.jsx +0 -363
- package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
- package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
- package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
- package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
- package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
- package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
- package/src/plugins/toolbar/__tests__/__snapshots__/toolbar.test.jsx.snap +0 -46
|
@@ -1,130 +1,112 @@
|
|
|
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
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
|
|
12
8
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
|
-
var _styles = require("@material-ui/core/styles");
|
|
17
|
-
|
|
10
|
+
var _styles = require("@mui/material/styles");
|
|
18
11
|
var _mathInput = require("@pie-lib/math-input");
|
|
19
|
-
|
|
20
|
-
var MathTemplated = function MathTemplated(_ref) {
|
|
21
|
-
var attributes = _ref.attributes,
|
|
22
|
-
value = _ref.value,
|
|
23
|
-
classes = _ref.classes,
|
|
24
|
-
keyToDisplay = _ref.keyToDisplay;
|
|
25
|
-
return /*#__PURE__*/_react["default"].createElement("span", (0, _extends2["default"])({}, attributes, {
|
|
26
|
-
className: classes.spanContainer
|
|
27
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
28
|
-
className: classes.responseBox
|
|
29
|
-
}, keyToDisplay), /*#__PURE__*/_react["default"].createElement("div", {
|
|
30
|
-
className: classes.mathBlock
|
|
31
|
-
}, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
|
|
32
|
-
latex: value
|
|
33
|
-
})));
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
MathTemplated.propTypes = {
|
|
37
|
-
attributes: _propTypes["default"].object,
|
|
38
|
-
classes: _propTypes["default"].object.isRequired,
|
|
39
|
-
value: _propTypes["default"].string,
|
|
40
|
-
keyToDisplay: _propTypes["default"].string
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
var styles = function styles(theme) {
|
|
12
|
+
var StyledSpanContainer = (0, _styles.styled)('span')(function () {
|
|
44
13
|
return {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
14
|
+
display: 'inline-flex',
|
|
15
|
+
border: '1px solid #C0C3CF',
|
|
16
|
+
margin: '1px 5px',
|
|
17
|
+
cursor: 'pointer',
|
|
18
|
+
alignItems: 'center',
|
|
19
|
+
justifyContent: 'center',
|
|
20
|
+
minWidth: '50px',
|
|
21
|
+
minHeight: '36px',
|
|
22
|
+
height: 'fit-content'
|
|
23
|
+
};
|
|
24
|
+
});
|
|
25
|
+
var StyledResponseBox = (0, _styles.styled)('div')(function (_ref) {
|
|
26
|
+
var theme = _ref.theme;
|
|
27
|
+
return {
|
|
28
|
+
background: theme.palette.grey['A100'],
|
|
29
|
+
color: theme.palette.grey['A700'],
|
|
30
|
+
display: 'inline-flex',
|
|
31
|
+
borderRight: '2px solid #C0C3CF',
|
|
32
|
+
boxSizing: 'border-box',
|
|
33
|
+
overflow: 'hidden',
|
|
34
|
+
fontSize: '12px',
|
|
35
|
+
minHeight: '36px',
|
|
36
|
+
height: '100%',
|
|
37
|
+
alignItems: 'center',
|
|
38
|
+
fontFamily: 'Symbola, Times New Roman, serif',
|
|
39
|
+
padding: '0 2px'
|
|
40
|
+
};
|
|
41
|
+
});
|
|
42
|
+
var StyledMathBlock = (0, _styles.styled)('div')(function () {
|
|
43
|
+
return {
|
|
44
|
+
flex: 8,
|
|
45
|
+
color: 'var(--pie-text, black)',
|
|
46
|
+
padding: '4px !important',
|
|
47
|
+
display: 'flex',
|
|
48
|
+
alignItems: 'center',
|
|
49
|
+
justifyContent: 'center',
|
|
50
|
+
backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',
|
|
51
|
+
'& > .mq-math-mode sup.mq-nthroot': {
|
|
52
|
+
fontSize: '70% !important',
|
|
53
|
+
verticalAlign: '1em !important'
|
|
58
54
|
},
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
alignItems: 'center',
|
|
65
|
-
justifyContent: 'center',
|
|
66
|
-
minWidth: '50px',
|
|
67
|
-
minHeight: '36px',
|
|
68
|
-
height: 'fit-content'
|
|
55
|
+
'& > .mq-math-mode .mq-sqrt-stem': {
|
|
56
|
+
borderTop: '0.07em solid',
|
|
57
|
+
marginLeft: '-1.5px',
|
|
58
|
+
marginTop: '-2px !important',
|
|
59
|
+
paddingTop: '5px !important'
|
|
69
60
|
},
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
fontSize: '70% !important',
|
|
80
|
-
verticalAlign: '1em !important'
|
|
81
|
-
},
|
|
82
|
-
'& > .mq-math-mode .mq-sqrt-stem': {
|
|
83
|
-
borderTop: '0.07em solid',
|
|
84
|
-
marginLeft: '-1.5px',
|
|
85
|
-
marginTop: '-2px !important',
|
|
86
|
-
paddingTop: '5px !important'
|
|
87
|
-
},
|
|
88
|
-
'& .mq-overarrow-inner': {
|
|
89
|
-
paddingTop: '0 !important',
|
|
90
|
-
border: 'none !important'
|
|
91
|
-
},
|
|
92
|
-
'& .mq-overarrow.mq-arrow-both': {
|
|
93
|
-
marginTop: '0px',
|
|
94
|
-
minWidth: '1.23em',
|
|
95
|
-
'& *': {
|
|
96
|
-
lineHeight: '1 !important'
|
|
97
|
-
},
|
|
98
|
-
'&:before': {
|
|
99
|
-
top: '-0.4em',
|
|
100
|
-
left: '-1px'
|
|
101
|
-
},
|
|
102
|
-
'&:after': {
|
|
103
|
-
top: '0px !important',
|
|
104
|
-
position: 'absolute !important',
|
|
105
|
-
right: '-2px'
|
|
106
|
-
},
|
|
107
|
-
'&.mq-empty:after': {
|
|
108
|
-
top: '-0.45em'
|
|
109
|
-
}
|
|
61
|
+
'& .mq-overarrow-inner': {
|
|
62
|
+
paddingTop: '0 !important',
|
|
63
|
+
border: 'none !important'
|
|
64
|
+
},
|
|
65
|
+
'& .mq-overarrow.mq-arrow-both': {
|
|
66
|
+
marginTop: '0px',
|
|
67
|
+
minWidth: '1.23em',
|
|
68
|
+
'& *': {
|
|
69
|
+
lineHeight: '1 !important'
|
|
110
70
|
},
|
|
111
|
-
'
|
|
112
|
-
'
|
|
113
|
-
|
|
114
|
-
right: '-1px'
|
|
115
|
-
}
|
|
71
|
+
'&:before': {
|
|
72
|
+
top: '-0.4em',
|
|
73
|
+
left: '-1px'
|
|
116
74
|
},
|
|
117
|
-
'
|
|
118
|
-
|
|
75
|
+
'&:after': {
|
|
76
|
+
top: '0px !important',
|
|
77
|
+
position: 'absolute !important',
|
|
78
|
+
right: '-2px'
|
|
119
79
|
},
|
|
120
|
-
'
|
|
121
|
-
|
|
80
|
+
'&.mq-empty:after': {
|
|
81
|
+
top: '-0.45em'
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
'& .mq-overarrow.mq-arrow-right': {
|
|
85
|
+
'&:before': {
|
|
86
|
+
top: '-0.4em',
|
|
87
|
+
right: '-1px'
|
|
122
88
|
}
|
|
89
|
+
},
|
|
90
|
+
'& .mq-overarrow-inner-right': {
|
|
91
|
+
display: 'none !important'
|
|
92
|
+
},
|
|
93
|
+
'& .mq-overarrow-inner-left': {
|
|
94
|
+
display: 'none !important'
|
|
123
95
|
}
|
|
124
96
|
};
|
|
97
|
+
});
|
|
98
|
+
var MathTemplated = function MathTemplated(_ref2) {
|
|
99
|
+
var attributes = _ref2.attributes,
|
|
100
|
+
value = _ref2.value,
|
|
101
|
+
keyToDisplay = _ref2.keyToDisplay;
|
|
102
|
+
return /*#__PURE__*/_react["default"].createElement(StyledSpanContainer, attributes, /*#__PURE__*/_react["default"].createElement(StyledResponseBox, null, keyToDisplay), /*#__PURE__*/_react["default"].createElement(StyledMathBlock, null, /*#__PURE__*/_react["default"].createElement(_mathInput.mq.Static, {
|
|
103
|
+
latex: value
|
|
104
|
+
})));
|
|
125
105
|
};
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
106
|
+
MathTemplated.propTypes = {
|
|
107
|
+
attributes: _propTypes["default"].object,
|
|
108
|
+
value: _propTypes["default"].string,
|
|
109
|
+
keyToDisplay: _propTypes["default"].string
|
|
110
|
+
};
|
|
111
|
+
var _default = exports["default"] = MathTemplated;
|
|
130
112
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_mathInput","StyledSpanContainer","styled","display","border","margin","cursor","alignItems","justifyContent","minWidth","minHeight","height","StyledResponseBox","_ref","theme","background","palette","grey","color","borderRight","boxSizing","overflow","fontSize","fontFamily","padding","StyledMathBlock","flex","backgroundColor","verticalAlign","borderTop","marginLeft","marginTop","paddingTop","lineHeight","top","left","position","right","MathTemplated","_ref2","attributes","value","keyToDisplay","createElement","mq","Static","latex","propTypes","PropTypes","object","string","_default","exports"],"sources":["../../../../src/plugins/respArea/math-templated/index.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { mq } from '@pie-lib/math-input';\n\nconst StyledSpanContainer = styled('span')(() => ({\n display: 'inline-flex',\n border: '1px solid #C0C3CF',\n margin: '1px 5px',\n cursor: 'pointer',\n alignItems: 'center',\n justifyContent: 'center',\n minWidth: '50px',\n minHeight: '36px',\n height: 'fit-content',\n}));\n\nconst StyledResponseBox = styled('div')(({ theme }) => ({\n background: theme.palette.grey['A100'],\n color: theme.palette.grey['A700'],\n display: 'inline-flex',\n borderRight: '2px solid #C0C3CF',\n boxSizing: 'border-box',\n overflow: 'hidden',\n fontSize: '12px',\n minHeight: '36px',\n height: '100%',\n alignItems: 'center',\n fontFamily: 'Symbola, Times New Roman, serif',\n padding: '0 2px',\n}));\n\nconst StyledMathBlock = styled('div')(() => ({\n flex: 8,\n color: 'var(--pie-text, black)',\n padding: '4px !important',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',\n '& > .mq-math-mode sup.mq-nthroot': {\n fontSize: '70% !important',\n verticalAlign: '1em !important',\n },\n '& > .mq-math-mode .mq-sqrt-stem': {\n borderTop: '0.07em solid',\n marginLeft: '-1.5px',\n marginTop: '-2px !important',\n paddingTop: '5px !important',\n },\n '& .mq-overarrow-inner': {\n paddingTop: '0 !important',\n border: 'none !important',\n },\n '& .mq-overarrow.mq-arrow-both': {\n marginTop: '0px',\n minWidth: '1.23em',\n '& *': {\n lineHeight: '1 !important',\n },\n '&:before': {\n top: '-0.4em',\n left: '-1px',\n },\n '&:after': {\n top: '0px !important',\n position: 'absolute !important',\n right: '-2px',\n },\n '&.mq-empty:after': {\n top: '-0.45em',\n },\n },\n '& .mq-overarrow.mq-arrow-right': {\n '&:before': {\n top: '-0.4em',\n right: '-1px',\n },\n },\n '& .mq-overarrow-inner-right': {\n display: 'none !important',\n },\n '& .mq-overarrow-inner-left': {\n display: 'none !important',\n },\n}));\n\nconst MathTemplated = ({ attributes, value, keyToDisplay }) => (\n <StyledSpanContainer {...attributes}>\n <StyledResponseBox>{keyToDisplay}</StyledResponseBox>\n <StyledMathBlock>\n <mq.Static latex={value} />\n </StyledMathBlock>\n </StyledSpanContainer>\n);\n\nMathTemplated.propTypes = {\n attributes: PropTypes.object,\n value: PropTypes.string,\n keyToDisplay: PropTypes.string,\n};\n\nexport default MathTemplated;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,34 +1,24 @@
|
|
|
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.isNumber = exports.insertSnackBar = exports.getDefaultElement = exports.defaultMT = exports.defaultIDD = exports.defaultECR = exports.defaultDIB = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
|
-
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
13
|
-
|
|
9
|
+
var _client = require("react-dom/client");
|
|
14
10
|
var _slate = require("slate");
|
|
15
|
-
|
|
16
|
-
var
|
|
17
|
-
|
|
18
|
-
var isNumber = function isNumber(val) {
|
|
11
|
+
var _Snackbar = _interopRequireDefault(require("@mui/material/Snackbar"));
|
|
12
|
+
var isNumber = exports.isNumber = function isNumber(val) {
|
|
19
13
|
return !isNaN(parseFloat(val)) && isFinite(val);
|
|
20
14
|
};
|
|
21
|
-
|
|
22
|
-
exports.isNumber = isNumber;
|
|
23
|
-
|
|
24
|
-
var insertSnackBar = function insertSnackBar(message) {
|
|
15
|
+
var insertSnackBar = exports.insertSnackBar = function insertSnackBar(message) {
|
|
25
16
|
var prevSnacks = document.querySelectorAll('.response-area-alert');
|
|
26
17
|
prevSnacks.forEach(function (s) {
|
|
27
18
|
return s.remove();
|
|
28
19
|
});
|
|
29
20
|
var newEl = document.createElement('div');
|
|
30
21
|
newEl.className = 'response-area-alert';
|
|
31
|
-
|
|
32
22
|
var el = /*#__PURE__*/_react["default"].createElement(_Snackbar["default"], {
|
|
33
23
|
anchorOrigin: {
|
|
34
24
|
vertical: 'top',
|
|
@@ -42,18 +32,15 @@ var insertSnackBar = function insertSnackBar(message) {
|
|
|
42
32
|
id: "message-id"
|
|
43
33
|
}, message)
|
|
44
34
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
35
|
+
var snackbarRoot = (0, _client.createRoot)(newEl);
|
|
36
|
+
snackbarRoot.render(el);
|
|
48
37
|
document.body.appendChild(newEl);
|
|
49
38
|
setTimeout(function () {
|
|
39
|
+
snackbarRoot.unmount();
|
|
50
40
|
newEl.remove();
|
|
51
41
|
}, 2000);
|
|
52
42
|
};
|
|
53
|
-
|
|
54
|
-
exports.insertSnackBar = insertSnackBar;
|
|
55
|
-
|
|
56
|
-
var defaultECR = function defaultECR(index) {
|
|
43
|
+
var defaultECR = exports.defaultECR = function defaultECR(index) {
|
|
57
44
|
return _slate.Inline.create({
|
|
58
45
|
type: 'explicit_constructed_response',
|
|
59
46
|
isVoid: true,
|
|
@@ -62,10 +49,7 @@ var defaultECR = function defaultECR(index) {
|
|
|
62
49
|
}
|
|
63
50
|
});
|
|
64
51
|
};
|
|
65
|
-
|
|
66
|
-
exports.defaultECR = defaultECR;
|
|
67
|
-
|
|
68
|
-
var defaultMT = function defaultMT(index) {
|
|
52
|
+
var defaultMT = exports.defaultMT = function defaultMT(index) {
|
|
69
53
|
return _slate.Inline.create({
|
|
70
54
|
type: 'math_templated',
|
|
71
55
|
isVoid: true,
|
|
@@ -74,10 +58,7 @@ var defaultMT = function defaultMT(index) {
|
|
|
74
58
|
}
|
|
75
59
|
});
|
|
76
60
|
};
|
|
77
|
-
|
|
78
|
-
exports.defaultMT = defaultMT;
|
|
79
|
-
|
|
80
|
-
var defaultDIB = function defaultDIB(opts, index) {
|
|
61
|
+
var defaultDIB = exports.defaultDIB = function defaultDIB(opts, index) {
|
|
81
62
|
return _slate.Inline.create({
|
|
82
63
|
type: 'drag_in_the_blank',
|
|
83
64
|
isVoid: true,
|
|
@@ -88,10 +69,7 @@ var defaultDIB = function defaultDIB(opts, index) {
|
|
|
88
69
|
}
|
|
89
70
|
});
|
|
90
71
|
};
|
|
91
|
-
|
|
92
|
-
exports.defaultDIB = defaultDIB;
|
|
93
|
-
|
|
94
|
-
var defaultIDD = function defaultIDD(index) {
|
|
72
|
+
var defaultIDD = exports.defaultIDD = function defaultIDD(index) {
|
|
95
73
|
return _slate.Inline.create({
|
|
96
74
|
object: 'inline',
|
|
97
75
|
type: 'inline_dropdown',
|
|
@@ -101,25 +79,17 @@ var defaultIDD = function defaultIDD(index) {
|
|
|
101
79
|
}
|
|
102
80
|
});
|
|
103
81
|
};
|
|
104
|
-
|
|
105
|
-
exports.defaultIDD = defaultIDD;
|
|
106
|
-
|
|
107
|
-
var getDefaultElement = function getDefaultElement(opts, index) {
|
|
82
|
+
var getDefaultElement = exports.getDefaultElement = function getDefaultElement(opts, index) {
|
|
108
83
|
switch (opts.type) {
|
|
109
84
|
case 'explicit-constructed-response':
|
|
110
85
|
return defaultECR(index);
|
|
111
|
-
|
|
112
86
|
case 'math-templated':
|
|
113
87
|
return defaultMT(index);
|
|
114
|
-
|
|
115
88
|
case 'drag-in-the-blank':
|
|
116
89
|
return defaultDIB(opts, index);
|
|
117
|
-
|
|
118
90
|
default:
|
|
119
91
|
// inline-dropdown
|
|
120
92
|
return defaultIDD(index);
|
|
121
93
|
}
|
|
122
94
|
};
|
|
123
|
-
|
|
124
|
-
exports.getDefaultElement = getDefaultElement;
|
|
125
95
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_react","_interopRequireDefault","require","_client","_slate","_Snackbar","isNumber","exports","val","isNaN","parseFloat","isFinite","insertSnackBar","message","prevSnacks","document","querySelectorAll","forEach","s","remove","newEl","createElement","className","el","anchorOrigin","vertical","horizontal","open","ContentProps","id","snackbarRoot","createRoot","render","body","appendChild","setTimeout","unmount","defaultECR","index","Inline","create","type","isVoid","data","defaultMT","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"sources":["../../../src/plugins/respArea/utils.jsx"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { Inline } from 'slate';\nimport Snackbar from '@mui/material/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 const snackbarRoot = createRoot(newEl);\n snackbarRoot.render(el);\n\n document.body.appendChild(newEl);\n\n setTimeout(() => {\n snackbarRoot.unmount();\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 });\nexport const defaultMT = (index) =>\n Inline.create({\n type: 'math_templated',\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\n case 'math-templated':\n return defaultMT(index);\n\n case 'drag-in-the-blank':\n return defaultDIB(opts, index);\n\n default:\n // inline-dropdown\n return defaultIDD(index);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,133 +1,116 @@
|
|
|
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 _slateEditTable = _interopRequireDefault(require("slate-edit-table"));
|
|
11
|
-
|
|
12
9
|
var _utils = require("slate-edit-table/dist/utils");
|
|
13
|
-
|
|
14
10
|
var _handlers = require("slate-edit-table/dist/handlers");
|
|
15
|
-
|
|
16
11
|
var _options = _interopRequireDefault(require("slate-edit-table/dist/options"));
|
|
17
|
-
|
|
18
12
|
var _changes = require("slate-edit-table/dist/changes");
|
|
19
|
-
|
|
20
13
|
function onBackspace(event, change, editor, opts) {
|
|
21
14
|
var _startCell$nodes;
|
|
22
|
-
|
|
23
15
|
var value = change.value;
|
|
24
16
|
var startBlock = value.startBlock,
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
17
|
+
endBlock = value.endBlock,
|
|
18
|
+
selection = value.selection,
|
|
19
|
+
document = value.document;
|
|
28
20
|
var startCell = document.getClosest(startBlock.key, opts.isCell);
|
|
29
21
|
var endCell = document.getClosest(endBlock.key, opts.isCell);
|
|
30
|
-
var startBlockIndex = startCell === null || startCell === void 0
|
|
22
|
+
var startBlockIndex = startCell === null || startCell === void 0 || (_startCell$nodes = startCell.nodes) === null || _startCell$nodes === void 0 ? void 0 : _startCell$nodes.findIndex(function (block) {
|
|
31
23
|
return block.key == startBlock.key;
|
|
32
|
-
});
|
|
24
|
+
});
|
|
33
25
|
|
|
26
|
+
// If a cursor is collapsed at the start of the first block, do nothing
|
|
34
27
|
if (startBlockIndex === 0 && selection.isAtStartOf(startBlock)) {
|
|
35
28
|
if (startBlock.isVoid) {
|
|
36
29
|
// Delete the block normally if it is a void block
|
|
37
30
|
return undefined;
|
|
38
31
|
}
|
|
39
|
-
|
|
40
32
|
event.preventDefault();
|
|
41
33
|
return change;
|
|
42
|
-
}
|
|
43
|
-
|
|
34
|
+
}
|
|
44
35
|
|
|
36
|
+
// If "normal" deletion, we continue
|
|
45
37
|
if (startCell === endCell) {
|
|
46
38
|
return undefined;
|
|
47
|
-
}
|
|
48
|
-
// we clear the content of the cells.
|
|
49
|
-
|
|
39
|
+
}
|
|
50
40
|
|
|
41
|
+
// If cursor is between multiple blocks,
|
|
42
|
+
// we clear the content of the cells.
|
|
51
43
|
event.preventDefault();
|
|
52
|
-
var blocks = value.blocks;
|
|
44
|
+
var blocks = value.blocks;
|
|
53
45
|
|
|
46
|
+
// Get all cells that contains the selection
|
|
54
47
|
var cells = blocks.map(function (node) {
|
|
55
48
|
return node.type === opts.typeCell ? node : document.getClosest(node.key, function (a) {
|
|
56
49
|
return a.type === opts.typeCell;
|
|
57
50
|
});
|
|
58
|
-
}).toSet();
|
|
51
|
+
}).toSet();
|
|
52
|
+
|
|
53
|
+
// If the cursor is at the very end of the first cell, ignore it.
|
|
59
54
|
// If the cursor is at the very start of the last cell, ignore it.
|
|
60
55
|
// This behavior is to compensate hanging selection behaviors:
|
|
61
56
|
// https://github.com/ianstormtaylor/slate/pull/1605
|
|
62
|
-
|
|
63
57
|
var ignoreFirstCell = value.selection.collapseToStart().isAtEndOf(cells.first());
|
|
64
58
|
var ignoreLastCell = value.selection.collapseToEnd().isAtStartOf(cells.last());
|
|
65
59
|
var cellsToClear = cells;
|
|
66
|
-
|
|
67
60
|
if (ignoreFirstCell) {
|
|
68
61
|
cellsToClear = cellsToClear.rest();
|
|
69
62
|
}
|
|
70
|
-
|
|
71
63
|
if (ignoreLastCell) {
|
|
72
64
|
cellsToClear = cellsToClear.butLast();
|
|
73
|
-
}
|
|
74
|
-
|
|
65
|
+
}
|
|
75
66
|
|
|
67
|
+
// Clear all the selection
|
|
76
68
|
cellsToClear.forEach(function (cell) {
|
|
77
69
|
return (0, _changes.clearCell)(opts, change, cell);
|
|
78
|
-
});
|
|
70
|
+
});
|
|
79
71
|
|
|
72
|
+
// Update the selection properly, and avoid reset of selection
|
|
80
73
|
var updatedStartCell = change.value.document.getDescendant(cellsToClear.first().key);
|
|
81
74
|
return change.collapseToStartOf(updatedStartCell);
|
|
82
75
|
}
|
|
83
|
-
|
|
84
76
|
var KEY_ENTER = 'Enter';
|
|
85
77
|
var KEY_TAB = 'Tab';
|
|
86
78
|
var KEY_BACKSPACE = 'Backspace';
|
|
87
79
|
var KEY_DOWN = 'ArrowDown';
|
|
88
80
|
var KEY_UP = 'ArrowUp';
|
|
81
|
+
|
|
89
82
|
/**
|
|
90
83
|
* User is pressing a key in the editor
|
|
91
84
|
*/
|
|
92
|
-
|
|
93
85
|
function onKeyDown(opts, event, change, editor) {
|
|
94
86
|
// Only handle events in cells
|
|
95
87
|
if (!(0, _utils.isSelectionInTable)(opts, change.value)) {
|
|
96
88
|
return undefined;
|
|
97
|
-
}
|
|
98
|
-
|
|
89
|
+
}
|
|
99
90
|
|
|
91
|
+
// Build arguments list
|
|
100
92
|
var args = [event, change, editor, opts];
|
|
101
|
-
|
|
102
93
|
switch (event.key) {
|
|
103
94
|
case KEY_ENTER:
|
|
104
95
|
if (event.metaKey && opts.exitBlockType) {
|
|
105
96
|
return _handlers.onModEnter.apply(void 0, args);
|
|
106
97
|
}
|
|
107
|
-
|
|
108
98
|
return _handlers.onEnter.apply(void 0, args);
|
|
109
|
-
|
|
110
99
|
case KEY_TAB:
|
|
111
100
|
return _handlers.onTab.apply(void 0, args);
|
|
112
|
-
|
|
113
101
|
case KEY_BACKSPACE:
|
|
114
102
|
return onBackspace.apply(void 0, args);
|
|
115
|
-
|
|
116
103
|
case KEY_DOWN:
|
|
117
104
|
case KEY_UP:
|
|
118
105
|
return _handlers.onUpDown.apply(void 0, args);
|
|
119
|
-
|
|
120
106
|
default:
|
|
121
107
|
return undefined;
|
|
122
108
|
}
|
|
123
109
|
}
|
|
124
|
-
|
|
125
|
-
var _default = function _default(opts) {
|
|
110
|
+
var _default = exports["default"] = function _default(opts) {
|
|
126
111
|
var core = (0, _slateEditTable["default"])(opts);
|
|
127
112
|
var tableOpts = new _options["default"](opts);
|
|
128
113
|
core.onKeyDown = onKeyDown.bind(null, tableOpts);
|
|
129
114
|
return core;
|
|
130
115
|
};
|
|
131
|
-
|
|
132
|
-
exports["default"] = _default;
|
|
133
116
|
//# sourceMappingURL=CustomTablePlugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"CustomTablePlugin.js","names":["_slateEditTable","_interopRequireDefault","require","_utils","_handlers","_options","_changes","onBackspace","event","change","editor","opts","_startCell$nodes","value","startBlock","endBlock","selection","document","startCell","getClosest","key","isCell","endCell","startBlockIndex","nodes","findIndex","block","isAtStartOf","isVoid","undefined","preventDefault","blocks","cells","map","node","type","typeCell","a","toSet","ignoreFirstCell","collapseToStart","isAtEndOf","first","ignoreLastCell","collapseToEnd","last","cellsToClear","rest","butLast","forEach","cell","clearCell","updatedStartCell","getDescendant","collapseToStartOf","KEY_ENTER","KEY_TAB","KEY_BACKSPACE","KEY_DOWN","KEY_UP","onKeyDown","isSelectionInTable","args","metaKey","exitBlockType","onModEnter","apply","onEnter","onTab","onUpDown","_default","exports","core","EditTable","tableOpts","TableOptions","bind"],"sources":["../../../src/plugins/table/CustomTablePlugin.js"],"sourcesContent":["import EditTable from 'slate-edit-table';\nimport { isSelectionInTable } from 'slate-edit-table/dist/utils';\nimport { onEnter, onModEnter, onTab, onUpDown } from 'slate-edit-table/dist/handlers';\nimport TableOptions from 'slate-edit-table/dist/options';\nimport { clearCell } from 'slate-edit-table/dist/changes';\n\nfunction onBackspace(event, change, editor, opts) {\n const { value } = change;\n const { startBlock, endBlock, selection, document } = value;\n\n const startCell = document.getClosest(startBlock.key, opts.isCell);\n const endCell = document.getClosest(endBlock.key, opts.isCell);\n\n const startBlockIndex = startCell?.nodes?.findIndex((block) => block.key == startBlock.key);\n\n // If a cursor is collapsed at the start of the first block, do nothing\n if (startBlockIndex === 0 && selection.isAtStartOf(startBlock)) {\n if (startBlock.isVoid) {\n // Delete the block normally if it is a void block\n return undefined;\n }\n\n event.preventDefault();\n return change;\n }\n\n // If \"normal\" deletion, we continue\n if (startCell === endCell) {\n return undefined;\n }\n\n // If cursor is between multiple blocks,\n // we clear the content of the cells.\n event.preventDefault();\n\n const { blocks } = value;\n\n // Get all cells that contains the selection\n const cells = blocks\n .map((node) =>\n node.type === opts.typeCell ? node : document.getClosest(node.key, (a) => a.type === opts.typeCell),\n )\n .toSet();\n\n // If the cursor is at the very end of the first cell, ignore it.\n // If the cursor is at the very start of the last cell, ignore it.\n // This behavior is to compensate hanging selection behaviors:\n // https://github.com/ianstormtaylor/slate/pull/1605\n const ignoreFirstCell = value.selection.collapseToStart().isAtEndOf(cells.first());\n const ignoreLastCell = value.selection.collapseToEnd().isAtStartOf(cells.last());\n\n let cellsToClear = cells;\n if (ignoreFirstCell) {\n cellsToClear = cellsToClear.rest();\n }\n if (ignoreLastCell) {\n cellsToClear = cellsToClear.butLast();\n }\n\n // Clear all the selection\n cellsToClear.forEach((cell) => clearCell(opts, change, cell));\n\n // Update the selection properly, and avoid reset of selection\n const updatedStartCell = change.value.document.getDescendant(cellsToClear.first().key);\n return change.collapseToStartOf(updatedStartCell);\n}\n\nconst KEY_ENTER = 'Enter';\nconst KEY_TAB = 'Tab';\nconst KEY_BACKSPACE = 'Backspace';\nconst KEY_DOWN = 'ArrowDown';\nconst KEY_UP = 'ArrowUp';\n\n/**\n * User is pressing a key in the editor\n */\nfunction onKeyDown(opts, event, change, editor) {\n // Only handle events in cells\n if (!isSelectionInTable(opts, change.value)) {\n return undefined;\n }\n\n // Build arguments list\n const args = [event, change, editor, opts];\n\n switch (event.key) {\n case KEY_ENTER:\n if (event.metaKey && opts.exitBlockType) {\n return onModEnter(...args);\n }\n return onEnter(...args);\n\n case KEY_TAB:\n return onTab(...args);\n case KEY_BACKSPACE:\n return onBackspace(...args);\n case KEY_DOWN:\n case KEY_UP:\n return onUpDown(...args);\n default:\n return undefined;\n }\n}\n\nexport default (opts) => {\n const core = EditTable(opts);\n\n const tableOpts = new TableOptions(opts);\n\n core.onKeyDown = onKeyDown.bind(null, tableOpts);\n\n return core;\n};\n"],"mappings":"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","ignoreList":[]}
|