@pie-element/extended-text-entry 13.4.1-next.3 → 14.0.0-beta.0

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 (45) hide show
  1. package/configure/lib/defaults.js +2 -3
  2. package/configure/lib/defaults.js.map +1 -1
  3. package/configure/lib/index.js +97 -151
  4. package/configure/lib/index.js.map +1 -1
  5. package/configure/lib/main.js +222 -297
  6. package/configure/lib/main.js.map +1 -1
  7. package/configure/package.json +9 -6
  8. package/controller/lib/defaults.js +2 -3
  9. package/controller/lib/defaults.js.map +1 -1
  10. package/controller/lib/index.js +73 -170
  11. package/controller/lib/index.js.map +1 -1
  12. package/controller/package.json +2 -2
  13. package/lib/annotation/annotation-editor.js +492 -565
  14. package/lib/annotation/annotation-editor.js.map +1 -1
  15. package/lib/annotation/annotation-menu.js +131 -190
  16. package/lib/annotation/annotation-menu.js.map +1 -1
  17. package/lib/annotation/annotation-utils.js +77 -121
  18. package/lib/annotation/annotation-utils.js.map +1 -1
  19. package/lib/annotation/freeform-editor.js +202 -227
  20. package/lib/annotation/freeform-editor.js.map +1 -1
  21. package/lib/index.js +77 -131
  22. package/lib/index.js.map +1 -1
  23. package/lib/main.js +178 -242
  24. package/lib/main.js.map +1 -1
  25. package/lib/print.js +45 -87
  26. package/lib/print.js.map +1 -1
  27. package/package.json +13 -19
  28. package/esm/configure.js +0 -9412
  29. package/esm/configure.js.map +0 -1
  30. package/esm/controller.js +0 -905
  31. package/esm/controller.js.map +0 -1
  32. package/esm/element.js +0 -21631
  33. package/esm/element.js.map +0 -1
  34. package/esm/package.json +0 -3
  35. package/esm/print.js +0 -21600
  36. package/esm/print.js.map +0 -1
  37. package/module/configure.js +0 -1
  38. package/module/controller.js +0 -139
  39. package/module/demo.js +0 -38
  40. package/module/element.js +0 -1
  41. package/module/index.html +0 -21
  42. package/module/manifest.json +0 -22
  43. package/module/print-demo.js +0 -76
  44. package/module/print.html +0 -18
  45. package/module/print.js +0 -1
package/lib/index.js CHANGED
@@ -1,162 +1,108 @@
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
- exports["default"] = void 0;
7
+ exports.default = void 0;
9
8
  exports.isComplete = isComplete;
10
9
  exports.textContent = textContent;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
24
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
25
-
26
10
  var _main = _interopRequireDefault(require("./main"));
27
-
28
11
  var _react = _interopRequireDefault(require("react"));
29
-
30
- var _reactDom = _interopRequireDefault(require("react-dom"));
31
-
12
+ var _client = require("react-dom/client");
32
13
  var _debug = _interopRequireDefault(require("debug"));
33
-
34
14
  var _mathRendering = require("@pie-lib/math-rendering");
35
-
36
15
  var _piePlayerEvents = require("@pie-framework/pie-player-events");
37
-
38
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
39
-
40
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
-
42
- var log = (0, _debug["default"])('@pie-elements:extended-text-entry');
43
- var domParser = (typeof window === "undefined" ? "undefined" : (0, _typeof2["default"])(window)) !== undefined ? new DOMParser() : {
44
- parseFromString: function parseFromString(v) {
45
- return v;
46
- }
16
+ const log = (0, _debug.default)('@pie-elements:extended-text-entry');
17
+ const domParser = typeof window !== undefined ? new DOMParser() : {
18
+ parseFromString: v => v
47
19
  };
48
-
49
20
  function textContent(value) {
50
21
  if (typeof value !== 'string') {
51
22
  return undefined;
52
23
  }
53
-
54
24
  try {
55
- var document = domParser.parseFromString(value, 'text/html');
56
- var _textContent = document.body.textContent;
57
- return _textContent;
25
+ const document = domParser.parseFromString(value, 'text/html');
26
+ const textContent = document.body.textContent;
27
+ return textContent;
58
28
  } catch (err) {
59
29
  log('tried to parse as dom and failed', value);
60
30
  return value;
61
31
  }
62
32
  }
63
-
64
33
  function isComplete(value) {
65
- var tc = textContent(value);
66
- var out = tc !== undefined && tc.length > 0;
34
+ const tc = textContent(value);
35
+ const out = tc !== undefined && tc.length > 0;
67
36
  return out;
68
37
  }
69
-
70
- var RootExtendedTextEntry = /*#__PURE__*/function (_HTMLElement) {
71
- (0, _inherits2["default"])(RootExtendedTextEntry, _HTMLElement);
72
-
73
- var _super = _createSuper(RootExtendedTextEntry);
74
-
75
- function RootExtendedTextEntry() {
76
- var _this;
77
-
78
- (0, _classCallCheck2["default"])(this, RootExtendedTextEntry);
79
- _this = _super.call(this);
80
- _this._model = null;
81
- _this._session = null;
82
- return _this;
38
+ class RootExtendedTextEntry extends HTMLElement {
39
+ constructor() {
40
+ super();
41
+ this._model = null;
42
+ this._session = null;
43
+ this._root = null;
83
44
  }
84
-
85
- (0, _createClass2["default"])(RootExtendedTextEntry, [{
86
- key: "setLangAttribute",
87
- value: function setLangAttribute() {
88
- var language = this._model && (0, _typeof2["default"])(this._model.language) ? this._model.language : '';
89
- var lang = language ? language.slice(0, 2) : 'en';
90
- this.setAttribute('lang', lang);
91
- }
92
- }, {
93
- key: "model",
94
- set: function set(m) {
95
- this._model = m;
96
- this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), false, !!this._model));
97
- this.render();
98
- }
99
- }, {
100
- key: "session",
101
- get: function get() {
102
- return this._session;
103
- },
104
- set: function set(s) {
105
- this._session = s;
106
- this.render();
107
- }
108
- }, {
109
- key: "valueChange",
110
- value: function valueChange(value) {
111
- this._session.value = value;
112
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), isComplete(value)));
113
- this.render();
114
- }
115
- }, {
116
- key: "annotationsChange",
117
- value: function annotationsChange(annotations) {
118
- this._session.annotations = annotations;
119
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), true));
120
- this.render();
121
- }
122
- }, {
123
- key: "commentChange",
124
- value: function commentChange(comment) {
125
- this._session.comment = comment;
126
- this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), isComplete(comment)));
127
- this.render();
128
- }
129
- }, {
130
- key: "connectedCallback",
131
- value: function connectedCallback() {
132
- this.setAttribute('aria-label', 'Written Response Question');
133
- this.setAttribute('role', 'region');
134
- this.render();
135
- }
136
- }, {
137
- key: "render",
138
- value: function render() {
139
- var _this2 = this;
140
-
141
- if (this._model && this._session) {
142
- var elem = /*#__PURE__*/_react["default"].createElement(_main["default"], {
143
- model: this._model,
144
- session: this._session,
145
- onValueChange: this.valueChange.bind(this),
146
- onAnnotationsChange: this.annotationsChange.bind(this),
147
- onCommentChange: this.commentChange.bind(this)
148
- });
149
-
150
- this.setLangAttribute();
151
-
152
- _reactDom["default"].render(elem, this, function () {
153
- (0, _mathRendering.renderMath)(_this2);
154
- });
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);
155
94
  }
95
+ this._root.render(elem);
96
+ queueMicrotask(() => {
97
+ (0, _mathRendering.renderMath)(this);
98
+ });
156
99
  }
157
- }]);
158
- return RootExtendedTextEntry;
159
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
160
-
161
- exports["default"] = RootExtendedTextEntry;
100
+ }
101
+ disconnectedCallback() {
102
+ if (this._root) {
103
+ this._root.unmount();
104
+ }
105
+ }
106
+ }
107
+ exports.default = RootExtendedTextEntry;
162
108
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","domParser","window","undefined","DOMParser","parseFromString","v","textContent","value","document","body","err","isComplete","tc","out","length","RootExtendedTextEntry","_model","_session","language","lang","slice","setAttribute","m","dispatchEvent","ModelSetEvent","tagName","toLowerCase","render","s","SessionChangedEvent","annotations","comment","elem","React","createElement","Main","model","session","onValueChange","valueChange","bind","onAnnotationsChange","annotationsChange","onCommentChange","commentChange","setLangAttribute","ReactDOM","HTMLElement"],"mappings":"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","sourcesContent":["import Main from './main';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\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 }\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 ReactDOM.render(elem, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"file":"index.js"}
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":[]}