@pie-element/extended-text-entry 15.1.2-next.2 → 15.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/CHANGELOG.json +1282 -0
  2. package/CHANGELOG.md +2270 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +922 -0
  6. package/configure/CHANGELOG.md +1959 -0
  7. package/configure/lib/defaults.js +224 -0
  8. package/configure/lib/defaults.js.map +1 -0
  9. package/configure/lib/index.js +125 -0
  10. package/configure/lib/index.js.map +1 -0
  11. package/configure/lib/main.js +247 -0
  12. package/configure/lib/main.js.map +1 -0
  13. package/configure/package.json +23 -0
  14. package/controller/CHANGELOG.json +362 -0
  15. package/controller/CHANGELOG.md +1183 -0
  16. package/controller/lib/defaults.js +91 -0
  17. package/controller/lib/defaults.js.map +1 -0
  18. package/controller/lib/index.js +101 -0
  19. package/controller/lib/index.js.map +1 -0
  20. package/controller/package.json +16 -0
  21. package/docs/config-schema.json +1782 -0
  22. package/docs/config-schema.json.md +1333 -0
  23. package/docs/demo/config.js +7 -0
  24. package/docs/demo/generate.js +14 -0
  25. package/docs/demo/index.html +3 -0
  26. package/docs/demo/session.js +7 -0
  27. package/docs/pie-schema.json +954 -0
  28. package/docs/pie-schema.json.md +717 -0
  29. package/lib/annotation/annotation-editor.js +636 -0
  30. package/lib/annotation/annotation-editor.js.map +1 -0
  31. package/lib/annotation/annotation-menu.js +147 -0
  32. package/lib/annotation/annotation-menu.js.map +1 -0
  33. package/lib/annotation/annotation-utils.js +205 -0
  34. package/lib/annotation/annotation-utils.js.map +1 -0
  35. package/lib/annotation/freeform-editor.js +241 -0
  36. package/lib/annotation/freeform-editor.js.map +1 -0
  37. package/lib/index.js +108 -0
  38. package/lib/index.js.map +1 -0
  39. package/lib/main.js +205 -0
  40. package/lib/main.js.map +1 -0
  41. package/lib/print.js +86 -0
  42. package/lib/print.js.map +1 -0
  43. package/module/configure.js +1 -0
  44. package/module/controller.js +139 -0
  45. package/module/demo.js +38 -0
  46. package/module/element.js +1 -0
  47. package/module/index.html +21 -0
  48. package/module/manifest.json +22 -0
  49. package/module/print-demo.js +76 -0
  50. package/module/print.html +18 -0
  51. package/module/print.js +1 -0
  52. package/package.json +22 -87
  53. package/configure.js +0 -2
  54. package/controller.js +0 -1
  55. package/dist/author/defaults.d.ts +0 -166
  56. package/dist/author/defaults.js +0 -209
  57. package/dist/author/index.d.ts +0 -52
  58. package/dist/author/index.js +0 -74
  59. package/dist/author/main.d.ts +0 -26
  60. package/dist/author/main.js +0 -166
  61. package/dist/browser/author/index.js +0 -495
  62. package/dist/browser/author/index.js.map +0 -1
  63. package/dist/browser/browser-kkT1XVKw.js +0 -219
  64. package/dist/browser/browser-kkT1XVKw.js.map +0 -1
  65. package/dist/browser/controller/index.js +0 -184
  66. package/dist/browser/controller/index.js.map +0 -1
  67. package/dist/browser/delivery/index.js +0 -98
  68. package/dist/browser/delivery/index.js.map +0 -1
  69. package/dist/browser/dist-BCJzhghM.js +0 -47879
  70. package/dist/browser/dist-BCJzhghM.js.map +0 -1
  71. package/dist/browser/extended-text-entry.css +0 -2
  72. package/dist/browser/main-VcQEFn-b.js +0 -714
  73. package/dist/browser/main-VcQEFn-b.js.map +0 -1
  74. package/dist/browser/print/index.js +0 -48
  75. package/dist/browser/print/index.js.map +0 -1
  76. package/dist/controller/defaults.d.ts +0 -33
  77. package/dist/controller/defaults.js +0 -104
  78. package/dist/controller/index.d.ts +0 -59
  79. package/dist/controller/index.js +0 -72
  80. package/dist/delivery/annotation/annotation-editor.d.ts +0 -47
  81. package/dist/delivery/annotation/annotation-editor.js +0 -296
  82. package/dist/delivery/annotation/annotation-menu.d.ts +0 -25
  83. package/dist/delivery/annotation/annotation-menu.js +0 -113
  84. package/dist/delivery/annotation/annotation-utils.d.ts +0 -20
  85. package/dist/delivery/annotation/annotation-utils.js +0 -65
  86. package/dist/delivery/annotation/freeform-editor.d.ts +0 -30
  87. package/dist/delivery/annotation/freeform-editor.js +0 -143
  88. package/dist/delivery/index.d.ts +0 -23
  89. package/dist/delivery/index.js +0 -68
  90. package/dist/delivery/main.d.ts +0 -27
  91. package/dist/delivery/main.js +0 -134
  92. package/dist/extended-text-entry.css +0 -2
  93. package/dist/index.d.ts +0 -1
  94. package/dist/index.iife.d.ts +0 -8
  95. package/dist/index.iife.js +0 -403
  96. package/dist/index.js +0 -2
  97. package/dist/print/index.d.ts +0 -15
  98. package/dist/print/index.js +0 -48
  99. package/dist/runtime-support.d.ts +0 -12
  100. package/dist/runtime-support.js +0 -12
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _material = require("@mui/material");
12
+ var _styles = require("@mui/material/styles");
13
+ const StyledPopover = (0, _styles.styled)(_material.Popover)(({
14
+ theme,
15
+ annotationType
16
+ }) => ({
17
+ '& .MuiPaper-root': {
18
+ overflowX: 'unset',
19
+ overflowY: 'unset',
20
+ marginLeft: '16px',
21
+ '&::before': {
22
+ position: 'absolute',
23
+ right: '100%',
24
+ top: '13px',
25
+ border: 'solid transparent',
26
+ content: '""',
27
+ height: 0,
28
+ width: 0,
29
+ pointerEvents: 'none',
30
+ borderWidth: '7px',
31
+ borderRightColor: theme.palette.grey[100]
32
+ },
33
+ ...(annotationType === 'negative' && {
34
+ '&::before': {
35
+ borderRightColor: 'rgb(255, 204, 238) !important'
36
+ }
37
+ }),
38
+ ...(annotationType === 'positive' && {
39
+ '&::before': {
40
+ borderRightColor: 'rgb(153, 255, 153) !important'
41
+ }
42
+ })
43
+ }
44
+ }));
45
+ const Wrapper = (0, _styles.styled)('div')(({
46
+ theme,
47
+ annotationType
48
+ }) => ({
49
+ width: '200px',
50
+ overflow: 'hidden',
51
+ borderRadius: '4px',
52
+ backgroundColor: '#ffffff',
53
+ border: `4px solid ${theme.palette.grey[100]}`,
54
+ ...(annotationType === 'negative' && {
55
+ borderColor: 'rgb(255, 204, 238) !important'
56
+ }),
57
+ ...(annotationType === 'positive' && {
58
+ borderColor: 'rgb(153, 255, 153) !important'
59
+ })
60
+ }));
61
+ const Holder = (0, _styles.styled)('div')(({
62
+ theme
63
+ }) => ({
64
+ display: 'flex',
65
+ flexWrap: 'wrap',
66
+ borderTop: `2px solid ${theme.palette.grey[100]}`
67
+ }));
68
+ const Button = (0, _styles.styled)('div')(({
69
+ theme,
70
+ variant,
71
+ annotationType
72
+ }) => ({
73
+ flexGrow: 1,
74
+ width: '28%',
75
+ textAlign: 'center',
76
+ padding: '4px',
77
+ cursor: 'pointer',
78
+ '&:not(:nth-child(3n))': {
79
+ borderRight: `1px solid ${theme.palette.grey[100]}`
80
+ },
81
+ '&:hover': {
82
+ backgroundColor: theme.palette.grey[100]
83
+ },
84
+ ...(variant === 'positive' && {
85
+ backgroundColor: 'rgb(153, 255, 153) !important',
86
+ '&:hover': {
87
+ filter: 'brightness(85%)'
88
+ }
89
+ }),
90
+ ...(variant === 'negative' && {
91
+ backgroundColor: 'rgb(255, 204, 238) !important',
92
+ '&:hover': {
93
+ filter: 'brightness(85%)'
94
+ }
95
+ }),
96
+ ...(variant === 'typeChange' && annotationType === 'negative' && {
97
+ '&:hover': {
98
+ backgroundColor: 'rgb(153, 255, 153) !important'
99
+ }
100
+ }),
101
+ ...(variant === 'typeChange' && annotationType === 'positive' && {
102
+ '&:hover': {
103
+ backgroundColor: 'rgb(255, 204, 238) !important'
104
+ }
105
+ })
106
+ }));
107
+ class FreeformEditor extends _react.default.Component {
108
+ constructor(props) {
109
+ super(props);
110
+ (0, _defineProperty2.default)(this, "onValueChange", event => this.setState({
111
+ value: event.target.value
112
+ }));
113
+ (0, _defineProperty2.default)(this, "handleSave", () => {
114
+ const {
115
+ value: oldValue,
116
+ onSave,
117
+ onClose,
118
+ onDelete
119
+ } = this.props;
120
+ const {
121
+ value
122
+ } = this.state;
123
+ if (value === '') {
124
+ onDelete();
125
+ }
126
+ if (oldValue !== value) {
127
+ onSave(oldValue, value);
128
+ }
129
+ this.setState({
130
+ value: ''
131
+ });
132
+ onClose();
133
+ });
134
+ (0, _defineProperty2.default)(this, "handleTypeChange", () => {
135
+ const {
136
+ onTypeChange,
137
+ onDelete
138
+ } = this.props;
139
+ const {
140
+ value
141
+ } = this.state;
142
+ if (value === '') {
143
+ onDelete();
144
+ } else {
145
+ onTypeChange(value);
146
+ }
147
+ this.setState({
148
+ value: ''
149
+ });
150
+ });
151
+ this.state = {
152
+ value: props.value
153
+ };
154
+ }
155
+ UNSAFE_componentWillReceiveProps(nextProps) {
156
+ const {
157
+ value
158
+ } = nextProps;
159
+ const {
160
+ value: propsValue
161
+ } = this.props;
162
+ if (value !== propsValue) {
163
+ this.setState({
164
+ value
165
+ });
166
+ }
167
+ }
168
+ render() {
169
+ const {
170
+ anchorEl,
171
+ offset,
172
+ onDelete,
173
+ open,
174
+ type
175
+ } = this.props;
176
+ const {
177
+ value
178
+ } = this.state;
179
+ return /*#__PURE__*/_react.default.createElement(StyledPopover, {
180
+ anchorEl: anchorEl,
181
+ elevation: 2,
182
+ open: open,
183
+ onClose: this.handleSave,
184
+ annotationType: type,
185
+ style: {
186
+ marginTop: `${offset}px`,
187
+ transition: 'margin-top 2s ease-out'
188
+ },
189
+ transitionDuration: {
190
+ enter: 225,
191
+ exit: 195
192
+ },
193
+ anchorOrigin: {
194
+ vertical: 'top',
195
+ horizontal: 'right'
196
+ },
197
+ transformOrigin: {
198
+ vertical: 'top',
199
+ horizontal: 'left'
200
+ }
201
+ }, /*#__PURE__*/_react.default.createElement(Wrapper, {
202
+ annotationType: type
203
+ }, /*#__PURE__*/_react.default.createElement(_material.TextField, {
204
+ id: "annotation-editor",
205
+ style: {
206
+ padding: '2px 5px',
207
+ width: '95%'
208
+ },
209
+ autoFocus: true,
210
+ multiline: true,
211
+ rows: 1,
212
+ maxRows: 4,
213
+ value: value,
214
+ onChange: this.onValueChange,
215
+ InputProps: {
216
+ disableUnderline: true
217
+ }
218
+ }), /*#__PURE__*/_react.default.createElement(Holder, null, /*#__PURE__*/_react.default.createElement(Button, {
219
+ onClick: onDelete
220
+ }, "Delete"), /*#__PURE__*/_react.default.createElement(Button, {
221
+ variant: "typeChange",
222
+ annotationType: type,
223
+ onClick: this.handleTypeChange
224
+ }, type === 'negative' ? 'Green' : 'Pink'), /*#__PURE__*/_react.default.createElement(Button, {
225
+ onClick: this.handleSave
226
+ }, "Save"))));
227
+ }
228
+ }
229
+ (0, _defineProperty2.default)(FreeformEditor, "propTypes", {
230
+ anchorEl: _propTypes.default.object,
231
+ open: _propTypes.default.bool,
232
+ offset: _propTypes.default.number,
233
+ value: _propTypes.default.string,
234
+ type: _propTypes.default.string,
235
+ onClose: _propTypes.default.func,
236
+ onDelete: _propTypes.default.func,
237
+ onSave: _propTypes.default.func,
238
+ onTypeChange: _propTypes.default.func
239
+ });
240
+ var _default = exports.default = FreeformEditor;
241
+ //# sourceMappingURL=freeform-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"freeform-editor.js","names":["_react","_interopRequireDefault","require","_propTypes","_material","_styles","StyledPopover","styled","Popover","theme","annotationType","overflowX","overflowY","marginLeft","position","right","top","border","content","height","width","pointerEvents","borderWidth","borderRightColor","palette","grey","Wrapper","overflow","borderRadius","backgroundColor","borderColor","Holder","display","flexWrap","borderTop","Button","variant","flexGrow","textAlign","padding","cursor","borderRight","filter","FreeformEditor","React","Component","constructor","props","_defineProperty2","default","event","setState","value","target","oldValue","onSave","onClose","onDelete","state","onTypeChange","UNSAFE_componentWillReceiveProps","nextProps","propsValue","render","anchorEl","offset","open","type","createElement","elevation","handleSave","style","marginTop","transition","transitionDuration","enter","exit","anchorOrigin","vertical","horizontal","transformOrigin","TextField","id","autoFocus","multiline","rows","maxRows","onChange","onValueChange","InputProps","disableUnderline","onClick","handleTypeChange","PropTypes","object","bool","number","string","func","_default","exports"],"sources":["../../src/annotation/freeform-editor.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Popover, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\n\nconst StyledPopover = styled(Popover)(({ theme, annotationType }) => ({\n '& .MuiPaper-root': {\n overflowX: 'unset',\n overflowY: 'unset',\n marginLeft: '16px',\n '&::before': {\n position: 'absolute',\n right: '100%',\n top: '13px',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n borderRightColor: theme.palette.grey[100],\n },\n ...(annotationType === 'negative' && {\n '&::before': {\n borderRightColor: 'rgb(255, 204, 238) !important',\n },\n }),\n ...(annotationType === 'positive' && {\n '&::before': {\n borderRightColor: 'rgb(153, 255, 153) !important',\n },\n }),\n },\n}));\n\nconst Wrapper = styled('div')(({ theme, annotationType }) => ({\n width: '200px',\n overflow: 'hidden',\n borderRadius: '4px',\n backgroundColor: '#ffffff',\n border: `4px solid ${theme.palette.grey[100]}`,\n ...(annotationType === 'negative' && {\n borderColor: 'rgb(255, 204, 238) !important',\n }),\n ...(annotationType === 'positive' && {\n borderColor: 'rgb(153, 255, 153) !important',\n }),\n}));\n\nconst Holder = styled('div')(({ theme }) => ({\n display: 'flex',\n flexWrap: 'wrap',\n borderTop: `2px solid ${theme.palette.grey[100]}`,\n}));\n\nconst Button = styled('div')(({ theme, variant, annotationType }) => ({\n flexGrow: 1,\n width: '28%',\n textAlign: 'center',\n padding: '4px',\n cursor: 'pointer',\n '&:not(:nth-child(3n))': {\n borderRight: `1px solid ${theme.palette.grey[100]}`,\n },\n '&:hover': {\n backgroundColor: theme.palette.grey[100],\n },\n ...(variant === 'positive' && {\n backgroundColor: 'rgb(153, 255, 153) !important',\n '&:hover': {\n filter: 'brightness(85%)',\n },\n }),\n ...(variant === 'negative' && {\n backgroundColor: 'rgb(255, 204, 238) !important',\n '&:hover': {\n filter: 'brightness(85%)',\n },\n }),\n ...(variant === 'typeChange' && annotationType === 'negative' && {\n '&:hover': {\n backgroundColor: 'rgb(153, 255, 153) !important',\n },\n }),\n ...(variant === 'typeChange' && annotationType === 'positive' && {\n '&:hover': {\n backgroundColor: 'rgb(255, 204, 238) !important',\n },\n }),\n}));\n\nclass FreeformEditor extends React.Component {\n static propTypes = {\n anchorEl: PropTypes.object,\n open: PropTypes.bool,\n offset: PropTypes.number,\n value: PropTypes.string,\n type: PropTypes.string,\n onClose: PropTypes.func,\n onDelete: PropTypes.func,\n onSave: PropTypes.func,\n onTypeChange: PropTypes.func,\n };\n\n constructor(props) {\n super(props);\n this.state = { value: props.value };\n }\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { value } = nextProps;\n const { value: propsValue } = this.props;\n\n if (value !== propsValue) {\n this.setState({ value });\n }\n }\n\n onValueChange = (event) => this.setState({ value: event.target.value });\n\n handleSave = () => {\n const { value: oldValue, onSave, onClose, onDelete } = this.props;\n const { value } = this.state;\n\n if (value === '') {\n onDelete();\n }\n\n if (oldValue !== value) {\n onSave(oldValue, value);\n }\n\n this.setState({ value: '' });\n onClose();\n };\n\n handleTypeChange = () => {\n const { onTypeChange, onDelete } = this.props;\n const { value } = this.state;\n\n if (value === '') {\n onDelete();\n } else {\n onTypeChange(value);\n }\n\n this.setState({ value: '' });\n };\n\n render() {\n const { anchorEl, offset, onDelete, open, type } = this.props;\n const { value } = this.state;\n\n return (\n <StyledPopover\n anchorEl={anchorEl}\n elevation={2}\n open={open}\n onClose={this.handleSave}\n annotationType={type}\n style={{ marginTop: `${offset}px`, transition: 'margin-top 2s ease-out' }}\n transitionDuration={{ enter: 225, exit: 195 }}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'right',\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'left',\n }}\n >\n <Wrapper annotationType={type}>\n <TextField\n id=\"annotation-editor\"\n style={{\n padding: '2px 5px',\n width: '95%',\n }}\n autoFocus\n multiline\n rows={1}\n maxRows={4}\n value={value}\n onChange={this.onValueChange}\n InputProps={{ disableUnderline: true }}\n />\n <Holder>\n <Button onClick={onDelete}>\n Delete\n </Button>\n <Button variant=\"typeChange\" annotationType={type} onClick={this.handleTypeChange}>\n {type === 'negative' ? 'Green' : 'Pink'}\n </Button>\n <Button onClick={this.handleSave}>\n Save\n </Button>\n </Holder>\n </Wrapper>\n </StyledPopover>\n );\n }\n}\n\nexport default FreeformEditor;\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js ADDED
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ exports.isComplete = isComplete;
9
+ exports.textContent = textContent;
10
+ var _main = _interopRequireDefault(require("./main"));
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _client = require("react-dom/client");
13
+ var _debug = _interopRequireDefault(require("debug"));
14
+ var _mathRendering = require("@pie-lib/math-rendering");
15
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
16
+ const log = (0, _debug.default)('@pie-elements:extended-text-entry');
17
+ const domParser = typeof window !== undefined ? new DOMParser() : {
18
+ parseFromString: v => v
19
+ };
20
+ function textContent(value) {
21
+ if (typeof value !== 'string') {
22
+ return undefined;
23
+ }
24
+ try {
25
+ const document = domParser.parseFromString(value, 'text/html');
26
+ const textContent = document.body.textContent;
27
+ return textContent;
28
+ } catch (err) {
29
+ log('tried to parse as dom and failed', value);
30
+ return value;
31
+ }
32
+ }
33
+ function isComplete(value) {
34
+ const tc = textContent(value);
35
+ const out = tc !== undefined && tc.length > 0;
36
+ return out;
37
+ }
38
+ class RootExtendedTextEntry extends HTMLElement {
39
+ constructor() {
40
+ super();
41
+ this._model = null;
42
+ this._session = null;
43
+ this._root = null;
44
+ }
45
+ setLangAttribute() {
46
+ const language = this._model && typeof this._model.language ? this._model.language : '';
47
+ const lang = language ? language.slice(0, 2) : 'en';
48
+ this.setAttribute('lang', lang);
49
+ }
50
+ set model(m) {
51
+ this._model = m;
52
+ this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));
53
+ this.render();
54
+ }
55
+ set session(s) {
56
+ this._session = s;
57
+ this.render();
58
+ }
59
+ get session() {
60
+ return this._session;
61
+ }
62
+ valueChange(value) {
63
+ this._session.value = value;
64
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));
65
+ this.render();
66
+ }
67
+ annotationsChange(annotations) {
68
+ this._session.annotations = annotations;
69
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), true));
70
+ this.render();
71
+ }
72
+ commentChange(comment) {
73
+ this._session.comment = comment;
74
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), isComplete(comment)));
75
+ this.render();
76
+ }
77
+ connectedCallback() {
78
+ this.setAttribute('aria-label', 'Written Response Question');
79
+ this.setAttribute('role', 'region');
80
+ this.render();
81
+ }
82
+ render() {
83
+ if (this._model && this._session) {
84
+ let elem = /*#__PURE__*/_react.default.createElement(_main.default, {
85
+ model: this._model,
86
+ session: this._session,
87
+ onValueChange: this.valueChange.bind(this),
88
+ onAnnotationsChange: this.annotationsChange.bind(this),
89
+ onCommentChange: this.commentChange.bind(this)
90
+ });
91
+ this.setLangAttribute();
92
+ if (!this._root) {
93
+ this._root = (0, _client.createRoot)(this);
94
+ }
95
+ this._root.render(elem);
96
+ queueMicrotask(() => {
97
+ (0, _mathRendering.renderMath)(this);
98
+ });
99
+ }
100
+ }
101
+ disconnectedCallback() {
102
+ if (this._root) {
103
+ this._root.unmount();
104
+ }
105
+ }
106
+ }
107
+ exports.default = RootExtendedTextEntry;
108
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_main","_interopRequireDefault","require","_react","_client","_debug","_mathRendering","_piePlayerEvents","log","debug","domParser","window","undefined","DOMParser","parseFromString","v","textContent","value","document","body","err","isComplete","tc","out","length","RootExtendedTextEntry","HTMLElement","constructor","_model","_session","_root","setLangAttribute","language","lang","slice","setAttribute","model","m","dispatchEvent","ModelSetEvent","tagName","toLowerCase","render","session","s","valueChange","SessionChangedEvent","annotationsChange","annotations","commentChange","comment","connectedCallback","elem","React","createElement","Main","onValueChange","bind","onAnnotationsChange","onCommentChange","createRoot","queueMicrotask","renderMath","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import Main from './main';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\n\nimport { renderMath } from '@pie-lib/math-rendering';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-framework/pie-player-events';\n\nconst log = debug('@pie-elements:extended-text-entry');\n\nconst domParser = typeof window !== undefined ? new DOMParser() : { parseFromString: (v) => v };\n\nexport function textContent(value) {\n if (typeof value !== 'string') {\n return undefined;\n }\n\n try {\n const document = domParser.parseFromString(value, 'text/html');\n const textContent = document.body.textContent;\n\n return textContent;\n } catch (err) {\n log('tried to parse as dom and failed', value);\n return value;\n }\n}\n\nexport function isComplete(value) {\n const tc = textContent(value);\n const out = tc !== undefined && tc.length > 0;\n\n return out;\n}\n\nexport default class RootExtendedTextEntry extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._root = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));\n\n this.render();\n }\n\n set session(s) {\n this._session = s;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n valueChange(value) {\n this._session.value = value;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));\n\n this.render();\n }\n\n annotationsChange(annotations) {\n this._session.annotations = annotations;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n\n this.render();\n }\n\n commentChange(comment) {\n this._session.comment = comment;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), isComplete(comment)));\n\n this.render();\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Written Response Question');\n this.setAttribute('role', 'region');\n\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onValueChange: this.valueChange.bind(this),\n onAnnotationsChange: this.annotationsChange.bind(this),\n onCommentChange: this.commentChange.bind(this),\n });\n\n this.setLangAttribute();\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/main.js ADDED
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.Main = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _lodashEs = require("lodash-es");
12
+ var _debug = _interopRequireDefault(require("debug"));
13
+ var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
16
+ var _renderUi = require("@pie-lib/render-ui");
17
+ var _annotationEditor = _interopRequireDefault(require("./annotation/annotation-editor"));
18
+ const log = (0, _debug.default)('@pie-ui:extended-text-entry');
19
+ const MainContainer = (0, _styles.styled)(_renderUi.UiLayout)({
20
+ backgroundColor: _renderUi.color.background(),
21
+ color: _renderUi.color.text()
22
+ });
23
+ const StyledPrompt = (0, _styles.styled)(_Typography.default)(({
24
+ theme
25
+ }) => ({
26
+ width: '100%',
27
+ color: _renderUi.color.text(),
28
+ marginBottom: theme.spacing(2),
29
+ fontSize: 'inherit'
30
+ }));
31
+ const TeacherInstructions = (0, _styles.styled)('div')(({
32
+ theme
33
+ }) => ({
34
+ marginBottom: theme.spacing(2)
35
+ }));
36
+ const Editor = (0, _styles.styled)(_editableHtmlTipTap.default)(({
37
+ theme
38
+ }) => ({
39
+ marginBottom: theme.spacing(2),
40
+ borderRadius: '4px'
41
+ }));
42
+ const SrOnly = (0, _styles.styled)('h2')({
43
+ position: 'absolute',
44
+ left: '-10000px',
45
+ top: 'auto',
46
+ width: '1px',
47
+ height: '1px',
48
+ overflow: 'hidden'
49
+ });
50
+ class Main extends _react.default.Component {
51
+ constructor(...args) {
52
+ super(...args);
53
+ (0, _defineProperty2.default)(this, "changeSessionValue", (0, _lodashEs.debounce)(this.props.onValueChange, 1500));
54
+ (0, _defineProperty2.default)(this, "changeSessionComment", (0, _lodashEs.debounce)(this.props.onCommentChange, 1500));
55
+ }
56
+ render() {
57
+ const {
58
+ model,
59
+ session,
60
+ onAnnotationsChange
61
+ } = this.props;
62
+ const {
63
+ animationsDisabled,
64
+ annotatorMode,
65
+ customKeys,
66
+ dimensions,
67
+ disabled,
68
+ disabledAnnotator,
69
+ equationEditor,
70
+ extraCSSRules,
71
+ feedback,
72
+ mathInput,
73
+ playersToolbarPosition,
74
+ predefinedAnnotations,
75
+ prompt,
76
+ spanishInput,
77
+ specialInput,
78
+ spellCheckEnabled,
79
+ teacherInstructions
80
+ } = model;
81
+ const {
82
+ annotations,
83
+ comment,
84
+ value
85
+ } = session;
86
+ const {
87
+ width,
88
+ height
89
+ } = dimensions || {};
90
+ const maxHeight = '40vh';
91
+ const toolbarOpts = {
92
+ position: playersToolbarPosition === 'top' ? 'top' : 'bottom'
93
+ };
94
+ log('[render] disabled? ', disabled);
95
+ const teacherInstructionsDiv = /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
96
+ defaultClassName: "teacher-instructions",
97
+ prompt: teacherInstructions
98
+ });
99
+ const languageCharactersProps = [];
100
+ if (spanishInput) {
101
+ languageCharactersProps.push({
102
+ language: 'spanish'
103
+ });
104
+ }
105
+ if (specialInput) {
106
+ languageCharactersProps.push({
107
+ language: 'special'
108
+ });
109
+ }
110
+ return /*#__PURE__*/_react.default.createElement(MainContainer, {
111
+ extraCSSRules: extraCSSRules,
112
+ ref: ref => {
113
+ this.containerRef = ref;
114
+ }
115
+ }, /*#__PURE__*/_react.default.createElement(SrOnly, null, "Constructed Response Question"), teacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, null, !animationsDisabled ? /*#__PURE__*/_react.default.createElement(_renderUi.Collapsible, {
116
+ labels: {
117
+ hidden: 'Show Teacher Instructions',
118
+ visible: 'Hide Teacher Instructions'
119
+ }
120
+ }, teacherInstructionsDiv) : teacherInstructionsDiv), prompt && /*#__PURE__*/_react.default.createElement(StyledPrompt, {
121
+ component: 'span'
122
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
123
+ defaultClassName: "prompt",
124
+ prompt: model.prompt
125
+ })), annotatorMode ? /*#__PURE__*/_react.default.createElement(_annotationEditor.default, {
126
+ text: value || '',
127
+ annotations: annotations || [],
128
+ comment: comment || '',
129
+ predefinedAnnotations: predefinedAnnotations || [],
130
+ onChange: onAnnotationsChange,
131
+ onCommentChange: this.changeSessionComment,
132
+ width: width,
133
+ height: height,
134
+ maxHeight: maxHeight,
135
+ disabled: disabledAnnotator,
136
+ disabledMath: !mathInput,
137
+ customKeys: customKeys,
138
+ keypadMode: equationEditor
139
+ }) : /*#__PURE__*/_react.default.createElement(Editor, {
140
+ className: "response-area-editor",
141
+ onChange: this.changeSessionValue,
142
+ markup: value || '',
143
+ maxWidth: width && width.toString(),
144
+ minWidth: '100px',
145
+ minHeight: height && height.toString(),
146
+ maxHeight: maxHeight,
147
+ disabled: disabled,
148
+ highlightShape: true,
149
+ toolbarOpts: toolbarOpts,
150
+ spellCheck: spellCheckEnabled,
151
+ charactersLimit: 50000,
152
+ autoWidthToolbar: true,
153
+ pluginProps: {
154
+ math: {
155
+ disabled: !mathInput,
156
+ customKeys: this.props.model.customKeys,
157
+ keypadMode: this.props.model.equationEditor,
158
+ controlledKeypadMode: false
159
+ },
160
+ video: {
161
+ disabled: true
162
+ },
163
+ audio: {
164
+ disabled: true
165
+ },
166
+ table: {
167
+ disabled: true
168
+ },
169
+ textAlign: {
170
+ disabled: true
171
+ },
172
+ h3: {
173
+ disabled: true
174
+ },
175
+ separateParagraphs: {
176
+ disabled: false
177
+ },
178
+ ul_list: {
179
+ disabled: true
180
+ },
181
+ ol_list: {
182
+ disabled: true
183
+ }
184
+ },
185
+ languageCharactersProps: languageCharactersProps
186
+ }), feedback && /*#__PURE__*/_react.default.createElement(_renderUi.Feedback, {
187
+ correctness: "correct",
188
+ feedback: feedback
189
+ }));
190
+ }
191
+ }
192
+ exports.Main = Main;
193
+ (0, _defineProperty2.default)(Main, "propTypes", {
194
+ onValueChange: _propTypes.default.func.isRequired,
195
+ onAnnotationsChange: _propTypes.default.func.isRequired,
196
+ onCommentChange: _propTypes.default.func.isRequired,
197
+ model: _propTypes.default.object,
198
+ session: _propTypes.default.shape({
199
+ value: _propTypes.default.string,
200
+ annotations: _propTypes.default.array,
201
+ comment: _propTypes.default.string
202
+ }).isRequired
203
+ });
204
+ var _default = exports.default = Main;
205
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_lodashEs","_debug","_Typography","_styles","_editableHtmlTipTap","_renderUi","_annotationEditor","log","debug","MainContainer","styled","UiLayout","backgroundColor","color","background","text","StyledPrompt","Typography","theme","width","marginBottom","spacing","fontSize","TeacherInstructions","Editor","EditableHtml","borderRadius","SrOnly","position","left","top","height","overflow","Main","React","Component","constructor","args","_defineProperty2","default","debounce","props","onValueChange","onCommentChange","render","model","session","onAnnotationsChange","animationsDisabled","annotatorMode","customKeys","dimensions","disabled","disabledAnnotator","equationEditor","extraCSSRules","feedback","mathInput","playersToolbarPosition","predefinedAnnotations","prompt","spanishInput","specialInput","spellCheckEnabled","teacherInstructions","annotations","comment","value","maxHeight","toolbarOpts","teacherInstructionsDiv","createElement","PreviewPrompt","defaultClassName","languageCharactersProps","push","language","ref","containerRef","Collapsible","labels","hidden","visible","component","onChange","changeSessionComment","disabledMath","keypadMode","className","changeSessionValue","markup","maxWidth","toString","minWidth","minHeight","highlightShape","spellCheck","charactersLimit","autoWidthToolbar","pluginProps","math","controlledKeypadMode","video","audio","table","textAlign","h3","separateParagraphs","ul_list","ol_list","Feedback","correctness","exports","PropTypes","func","isRequired","object","shape","string","array","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { debounce } from 'lodash-es';\nimport debug from 'debug';\n\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\n\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { color, Feedback, Collapsible, PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\n\nimport AnnotationEditor from './annotation/annotation-editor';\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst MainContainer = styled(UiLayout)({\n backgroundColor: color.background(),\n color: color.text(),\n});\n\nconst StyledPrompt = styled(Typography)(({ theme }) => ({\n width: '100%',\n color: color.text(),\n marginBottom: theme.spacing(2),\n fontSize: 'inherit',\n}));\n\nconst TeacherInstructions = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Editor = styled(EditableHtml)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n borderRadius: '4px',\n}));\n\nconst SrOnly = styled('h2')({\n position: 'absolute',\n left: '-10000px',\n top: 'auto',\n width: '1px',\n height: '1px',\n overflow: 'hidden',\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n onValueChange: PropTypes.func.isRequired,\n onAnnotationsChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n model: PropTypes.object,\n session: PropTypes.shape({\n value: PropTypes.string,\n annotations: PropTypes.array,\n comment: PropTypes.string,\n }).isRequired,\n };\n\n changeSessionValue = debounce(this.props.onValueChange, 1500);\n\n changeSessionComment = debounce(this.props.onCommentChange, 1500);\n\n render() {\n const { model, session, onAnnotationsChange } = this.props;\n const {\n animationsDisabled,\n annotatorMode,\n customKeys,\n dimensions,\n disabled,\n disabledAnnotator,\n equationEditor,\n extraCSSRules,\n feedback,\n mathInput,\n playersToolbarPosition,\n predefinedAnnotations,\n prompt,\n spanishInput,\n specialInput,\n spellCheckEnabled,\n teacherInstructions,\n } = model;\n const { annotations, comment, value } = session;\n const { width, height } = dimensions || {};\n const maxHeight = '40vh';\n const toolbarOpts = { position: playersToolbarPosition === 'top' ? 'top' : 'bottom' };\n\n log('[render] disabled? ', disabled);\n\n const teacherInstructionsDiv = (\n <PreviewPrompt defaultClassName=\"teacher-instructions\" prompt={teacherInstructions} />\n );\n\n const languageCharactersProps = [];\n\n if (spanishInput) {\n languageCharactersProps.push({ language: 'spanish' });\n }\n\n if (specialInput) {\n languageCharactersProps.push({ language: 'special' });\n }\n\n return (\n <MainContainer\n extraCSSRules={extraCSSRules}\n ref={(ref) => {\n this.containerRef = ref;\n }}\n >\n <SrOnly>Constructed Response Question</SrOnly>\n\n {teacherInstructions && (\n <TeacherInstructions>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </TeacherInstructions>\n )}\n\n {prompt && (\n <StyledPrompt component={'span'}>\n <PreviewPrompt defaultClassName=\"prompt\" prompt={model.prompt} />\n </StyledPrompt>\n )}\n\n {annotatorMode ? (\n <AnnotationEditor\n text={value || ''}\n annotations={annotations || []}\n comment={comment || ''}\n predefinedAnnotations={predefinedAnnotations || []}\n onChange={onAnnotationsChange}\n onCommentChange={this.changeSessionComment}\n width={width}\n height={height}\n maxHeight={maxHeight}\n disabled={disabledAnnotator}\n disabledMath={!mathInput}\n customKeys={customKeys}\n keypadMode={equationEditor}\n />\n ) : (\n <Editor\n className=\"response-area-editor\"\n onChange={this.changeSessionValue}\n markup={value || ''}\n maxWidth={width && width.toString()}\n minWidth={'100px'}\n minHeight={height && height.toString()}\n maxHeight={maxHeight}\n disabled={disabled}\n highlightShape={true}\n toolbarOpts={toolbarOpts}\n spellCheck={spellCheckEnabled}\n charactersLimit={50000}\n autoWidthToolbar\n pluginProps={{\n math: {\n disabled: !mathInput,\n customKeys: this.props.model.customKeys,\n keypadMode: this.props.model.equationEditor,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n table: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n },\n h3: {\n disabled: true,\n },\n separateParagraphs: { disabled: false },\n ul_list: { disabled: true },\n ol_list: { disabled: true },\n }}\n languageCharactersProps={languageCharactersProps}\n />\n )}\n\n {feedback && <Feedback correctness=\"correct\" feedback={feedback} />}\n </MainContainer>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}