@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.
Files changed (159) hide show
  1. package/CHANGELOG.md +6 -76
  2. package/esm/package.json +3 -0
  3. package/lib/block-tags.js +2 -3
  4. package/lib/block-tags.js.map +1 -1
  5. package/lib/constants.js +3 -6
  6. package/lib/constants.js.map +1 -1
  7. package/lib/editor.js +350 -481
  8. package/lib/editor.js.map +1 -1
  9. package/lib/index.js +18 -79
  10. package/lib/index.js.map +1 -1
  11. package/lib/parse-html.js +7 -7
  12. package/lib/parse-html.js.map +1 -1
  13. package/lib/plugins/characters/custom-popper.js +28 -44
  14. package/lib/plugins/characters/custom-popper.js.map +1 -1
  15. package/lib/plugins/characters/index.js +23 -63
  16. package/lib/plugins/characters/index.js.map +1 -1
  17. package/lib/plugins/characters/utils.js +3 -6
  18. package/lib/plugins/characters/utils.js.map +1 -1
  19. package/lib/plugins/css/icons/index.js +13 -25
  20. package/lib/plugins/css/icons/index.js.map +1 -1
  21. package/lib/plugins/css/index.js +34 -93
  22. package/lib/plugins/css/index.js.map +1 -1
  23. package/lib/plugins/customPlugin/index.js +10 -26
  24. package/lib/plugins/customPlugin/index.js.map +1 -1
  25. package/lib/plugins/html/icons/index.js +17 -25
  26. package/lib/plugins/html/icons/index.js.map +1 -1
  27. package/lib/plugins/html/index.js +4 -13
  28. package/lib/plugins/html/index.js.map +1 -1
  29. package/lib/plugins/image/alt-dialog.js +20 -49
  30. package/lib/plugins/image/alt-dialog.js.map +1 -1
  31. package/lib/plugins/image/component.js +118 -194
  32. package/lib/plugins/image/component.js.map +1 -1
  33. package/lib/plugins/image/image-toolbar.js +48 -88
  34. package/lib/plugins/image/image-toolbar.js.map +1 -1
  35. package/lib/plugins/image/index.js +6 -46
  36. package/lib/plugins/image/index.js.map +1 -1
  37. package/lib/plugins/image/insert-image-handler.js +10 -31
  38. package/lib/plugins/image/insert-image-handler.js.map +1 -1
  39. package/lib/plugins/index.js +46 -106
  40. package/lib/plugins/index.js.map +1 -1
  41. package/lib/plugins/list/index.js +27 -73
  42. package/lib/plugins/list/index.js.map +1 -1
  43. package/lib/plugins/math/index.js +64 -116
  44. package/lib/plugins/math/index.js.map +1 -1
  45. package/lib/plugins/media/index.js +27 -84
  46. package/lib/plugins/media/index.js.map +1 -1
  47. package/lib/plugins/media/media-dialog.js +192 -307
  48. package/lib/plugins/media/media-dialog.js.map +1 -1
  49. package/lib/plugins/media/media-toolbar.js +40 -65
  50. package/lib/plugins/media/media-toolbar.js.map +1 -1
  51. package/lib/plugins/media/media-wrapper.js +20 -49
  52. package/lib/plugins/media/media-wrapper.js.map +1 -1
  53. package/lib/plugins/rendering/index.js +5 -15
  54. package/lib/plugins/rendering/index.js.map +1 -1
  55. package/lib/plugins/respArea/drag-in-the-blank/choice.js +233 -251
  56. package/lib/plugins/respArea/drag-in-the-blank/choice.js.map +1 -1
  57. package/lib/plugins/respArea/drag-in-the-blank/index.js +17 -59
  58. package/lib/plugins/respArea/drag-in-the-blank/index.js.map +1 -1
  59. package/lib/plugins/respArea/drag-in-the-blank/utils.js +38 -0
  60. package/lib/plugins/respArea/drag-in-the-blank/utils.js.map +1 -0
  61. package/lib/plugins/respArea/explicit-constructed-response/index.js +3 -10
  62. package/lib/plugins/respArea/explicit-constructed-response/index.js.map +1 -1
  63. package/lib/plugins/respArea/icons/index.js +22 -45
  64. package/lib/plugins/respArea/icons/index.js.map +1 -1
  65. package/lib/plugins/respArea/index.js +5 -59
  66. package/lib/plugins/respArea/index.js.map +1 -1
  67. package/lib/plugins/respArea/inline-dropdown/index.js +2 -10
  68. package/lib/plugins/respArea/inline-dropdown/index.js.map +1 -1
  69. package/lib/plugins/respArea/math-templated/index.js +91 -109
  70. package/lib/plugins/respArea/math-templated/index.js.map +1 -1
  71. package/lib/plugins/respArea/utils.js +12 -42
  72. package/lib/plugins/respArea/utils.js.map +1 -1
  73. package/lib/plugins/table/CustomTablePlugin.js +24 -41
  74. package/lib/plugins/table/CustomTablePlugin.js.map +1 -1
  75. package/lib/plugins/table/icons/index.js +21 -35
  76. package/lib/plugins/table/icons/index.js.map +1 -1
  77. package/lib/plugins/table/index.js +48 -118
  78. package/lib/plugins/table/index.js.map +1 -1
  79. package/lib/plugins/table/table-toolbar.js +37 -86
  80. package/lib/plugins/table/table-toolbar.js.map +1 -1
  81. package/lib/plugins/textAlign/icons/index.js +25 -64
  82. package/lib/plugins/textAlign/icons/index.js.map +1 -1
  83. package/lib/plugins/textAlign/index.js +0 -8
  84. package/lib/plugins/textAlign/index.js.map +1 -1
  85. package/lib/plugins/toolbar/default-toolbar.js +30 -79
  86. package/lib/plugins/toolbar/default-toolbar.js.map +1 -1
  87. package/lib/plugins/toolbar/done-button.js +16 -34
  88. package/lib/plugins/toolbar/done-button.js.map +1 -1
  89. package/lib/plugins/toolbar/editor-and-toolbar.js +174 -202
  90. package/lib/plugins/toolbar/editor-and-toolbar.js.map +1 -1
  91. package/lib/plugins/toolbar/index.js +0 -5
  92. package/lib/plugins/toolbar/index.js.map +1 -1
  93. package/lib/plugins/toolbar/toolbar-buttons.js +59 -108
  94. package/lib/plugins/toolbar/toolbar-buttons.js.map +1 -1
  95. package/lib/plugins/toolbar/toolbar.js +93 -162
  96. package/lib/plugins/toolbar/toolbar.js.map +1 -1
  97. package/lib/plugins/utils.js +5 -25
  98. package/lib/plugins/utils.js.map +1 -1
  99. package/lib/serialization.js +47 -153
  100. package/lib/serialization.js.map +1 -1
  101. package/lib/shared/alert-dialog.js +35 -42
  102. package/lib/theme.js +1 -2
  103. package/lib/theme.js.map +1 -1
  104. package/package.json +26 -14
  105. package/src/__tests__/editor-utils.test.js +162 -0
  106. package/src/__tests__/utils.js +1 -1
  107. package/src/editor.jsx +175 -153
  108. package/src/index.jsx +0 -3
  109. package/src/plugins/characters/custom-popper.js +25 -25
  110. package/src/plugins/characters/index.jsx +15 -5
  111. package/src/plugins/css/icons/index.jsx +11 -13
  112. package/src/plugins/css/index.jsx +16 -11
  113. package/src/plugins/html/icons/index.jsx +17 -14
  114. package/src/plugins/image/__tests__/component.test.jsx +61 -29
  115. package/src/plugins/image/__tests__/image-toolbar-logic.test.jsx +69 -17
  116. package/src/plugins/image/__tests__/image-toolbar.test.jsx +6 -4
  117. package/src/plugins/image/alt-dialog.jsx +9 -8
  118. package/src/plugins/image/component.jsx +68 -92
  119. package/src/plugins/image/image-toolbar.jsx +31 -28
  120. package/src/plugins/image/index.jsx +1 -1
  121. package/src/plugins/index.jsx +12 -10
  122. package/src/plugins/math/__tests__/index.test.jsx +45 -26
  123. package/src/plugins/math/index.jsx +1 -1
  124. package/src/plugins/media/index.jsx +6 -5
  125. package/src/plugins/media/media-dialog.js +65 -76
  126. package/src/plugins/media/media-toolbar.jsx +32 -33
  127. package/src/plugins/media/media-wrapper.jsx +10 -13
  128. package/src/plugins/respArea/drag-in-the-blank/choice.jsx +240 -167
  129. package/src/plugins/respArea/drag-in-the-blank/index.jsx +27 -56
  130. package/src/plugins/respArea/drag-in-the-blank/utils.js +14 -0
  131. package/src/plugins/respArea/icons/index.jsx +16 -16
  132. package/src/plugins/respArea/math-templated/index.jsx +88 -89
  133. package/src/plugins/respArea/utils.jsx +5 -3
  134. package/src/plugins/table/__tests__/table-toolbar.test.jsx +40 -7
  135. package/src/plugins/table/icons/index.jsx +16 -16
  136. package/src/plugins/table/index.jsx +35 -19
  137. package/src/plugins/table/table-toolbar.jsx +18 -19
  138. package/src/plugins/textAlign/icons/index.jsx +13 -4
  139. package/src/plugins/textAlign/index.jsx +0 -3
  140. package/src/plugins/toolbar/__tests__/default-toolbar.test.jsx +102 -69
  141. package/src/plugins/toolbar/__tests__/editor-and-toolbar.test.jsx +14 -11
  142. package/src/plugins/toolbar/__tests__/toolbar-buttons.test.jsx +81 -35
  143. package/src/plugins/toolbar/__tests__/toolbar.test.jsx +44 -38
  144. package/src/plugins/toolbar/default-toolbar.jsx +18 -21
  145. package/src/plugins/toolbar/done-button.jsx +16 -22
  146. package/src/plugins/toolbar/editor-and-toolbar.jsx +134 -158
  147. package/src/plugins/toolbar/toolbar-buttons.jsx +30 -46
  148. package/src/plugins/toolbar/toolbar.jsx +57 -79
  149. package/src/serialization.jsx +3 -3
  150. package/src/__tests__/editor.test.jsx +0 -363
  151. package/src/plugins/image/__tests__/__snapshots__/component.test.jsx.snap +0 -51
  152. package/src/plugins/image/__tests__/__snapshots__/image-toolbar-logic.test.jsx.snap +0 -27
  153. package/src/plugins/image/__tests__/__snapshots__/image-toolbar.test.jsx.snap +0 -44
  154. package/src/plugins/math/__tests__/__snapshots__/index.test.jsx.snap +0 -48
  155. package/src/plugins/table/__tests__/__snapshots__/table-toolbar.test.jsx.snap +0 -44
  156. package/src/plugins/toolbar/__tests__/__snapshots__/default-toolbar.test.jsx.snap +0 -923
  157. package/src/plugins/toolbar/__tests__/__snapshots__/editor-and-toolbar.test.jsx.snap +0 -20
  158. package/src/plugins/toolbar/__tests__/__snapshots__/toolbar-buttons.test.jsx.snap +0 -36
  159. 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
- responseBox: {
46
- background: theme.palette.grey['A100'],
47
- color: theme.palette.grey['A700'],
48
- display: 'inline-flex',
49
- borderRight: '2px solid #C0C3CF',
50
- boxSizing: 'border-box',
51
- overflow: 'hidden',
52
- fontSize: '12px',
53
- minHeight: '36px',
54
- height: '100%',
55
- alignItems: 'center',
56
- fontFamily: 'Symbola, Times New Roman, serif',
57
- padding: '0 2px'
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
- spanContainer: {
60
- display: 'inline-flex',
61
- border: '1px solid #C0C3CF',
62
- margin: '1px 5px',
63
- cursor: 'pointer',
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
- mathBlock: {
71
- flex: 8,
72
- color: 'var(--pie-text, black)',
73
- padding: '4px !important',
74
- display: 'flex',
75
- alignItems: 'center',
76
- justifyContent: 'center',
77
- backgroundColor: 'var(--pie-background, rgba(255, 255, 255, 0))',
78
- '& > .mq-math-mode sup.mq-nthroot': {
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
- '& .mq-overarrow.mq-arrow-right': {
112
- '&:before': {
113
- top: '-0.4em',
114
- right: '-1px'
115
- }
71
+ '&:before': {
72
+ top: '-0.4em',
73
+ left: '-1px'
116
74
  },
117
- '& .mq-overarrow-inner-right': {
118
- display: 'none !important'
75
+ '&:after': {
76
+ top: '0px !important',
77
+ position: 'absolute !important',
78
+ right: '-2px'
119
79
  },
120
- '& .mq-overarrow-inner-left': {
121
- display: 'none !important'
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
- var _default = (0, _styles.withStyles)(styles)(MathTemplated);
128
-
129
- exports["default"] = _default;
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,"sources":["../../../../src/plugins/respArea/math-templated/index.jsx"],"names":["MathTemplated","attributes","value","classes","keyToDisplay","spanContainer","responseBox","mathBlock","propTypes","PropTypes","object","isRequired","string","styles","theme","background","palette","grey","color","display","borderRight","boxSizing","overflow","fontSize","minHeight","height","alignItems","fontFamily","padding","border","margin","cursor","justifyContent","minWidth","flex","backgroundColor","verticalAlign","borderTop","marginLeft","marginTop","paddingTop","lineHeight","top","left","position","right"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { mq } from '@pie-lib/math-input';\n\nconst MathTemplated = ({ attributes, value, classes, keyToDisplay }) => (\n <span {...attributes} className={classes.spanContainer}>\n <div className={classes.responseBox}>{keyToDisplay}</div>\n <div className={classes.mathBlock}>\n <mq.Static latex={value} />\n </div>\n </span>\n);\n\nMathTemplated.propTypes = {\n attributes: PropTypes.object,\n classes: PropTypes.object.isRequired,\n value: PropTypes.string,\n keyToDisplay: PropTypes.string,\n};\n\nconst styles = (theme) => ({\n responseBox: {\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 spanContainer: {\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 mathBlock: {\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});\n\nexport default withStyles(styles)(MathTemplated);\n"],"file":"index.js"}
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 _Snackbar = _interopRequireDefault(require("@material-ui/core/Snackbar"));
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
- _reactDom["default"].render(el, newEl);
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,"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","defaultMT","defaultDIB","opts","duplicates","options","value","defaultIDD","object","getDefaultElement"],"mappings":"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","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 });\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"],"file":"utils.js"}
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
- endBlock = value.endBlock,
26
- selection = value.selection,
27
- document = value.document;
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 ? void 0 : (_startCell$nodes = startCell.nodes) === null || _startCell$nodes === void 0 ? void 0 : _startCell$nodes.findIndex(function (block) {
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
- }); // If a cursor is collapsed at the start of the first block, do nothing
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
- } // If "normal" deletion, we continue
43
-
34
+ }
44
35
 
36
+ // If "normal" deletion, we continue
45
37
  if (startCell === endCell) {
46
38
  return undefined;
47
- } // If cursor is between multiple blocks,
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; // Get all cells that contains the selection
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(); // If the cursor is at the very end of the first cell, ignore it.
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
- } // Clear all the selection
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
- }); // Update the selection properly, and avoid reset of selection
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
- } // Build arguments list
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,"sources":["../../../src/plugins/table/CustomTablePlugin.js"],"names":["onBackspace","event","change","editor","opts","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","updatedStartCell","getDescendant","collapseToStartOf","KEY_ENTER","KEY_TAB","KEY_BACKSPACE","KEY_DOWN","KEY_UP","onKeyDown","args","metaKey","exitBlockType","onModEnter","onEnter","onTab","onUpDown","core","tableOpts","TableOptions","bind"],"mappings":"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","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"],"file":"CustomTablePlugin.js"}
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":[]}