@pie-element/multi-trait-rubric 8.1.4 → 8.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/configure/CHANGELOG.md +14 -0
- package/configure/lib/index.js +4 -0
- package/configure/lib/index.js.map +1 -1
- package/configure/package.json +5 -5
- package/lib/index.js +45 -3
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [8.1.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/multi-trait-rubric@8.1.5...@pie-element/multi-trait-rubric@8.1.6) (2026-07-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump shared modules and libs PIE-695, PIE-697, PIE-699, PIE-680, PIE-714, PIE-665, PIE-656 ([4b76ae7](https://github.com/pie-framework/pie-elements/commit/4b76ae75d1c5ea6d55f7c6fb53f299dfcbda2b1f))
|
|
11
|
+
- sync libs versions ([48b5be9](https://github.com/pie-framework/pie-elements/commit/48b5be9559eb5b5235ca05f51c5f0161032a7041))
|
|
12
|
+
|
|
13
|
+
## [8.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/multi-trait-rubric@8.1.4...@pie-element/multi-trait-rubric@8.1.5) (2026-06-22)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- bump shared modules and libs PIE-674, PIE-662, PIE-705, PIE-674, PIE-963 ([78a3f64](https://github.com/pie-framework/pie-elements/commit/78a3f64652c9581c61bd4159f3210fc1e32d8bcf))
|
|
18
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
19
|
+
- **rubric/math-observer:** implement math rendering observer for improved sync PIE-671 ([aeb4e0c](https://github.com/pie-framework/pie-elements/commit/aeb4e0c9e2c67e5915ef0c435ea4065447a7c1b1))
|
|
20
|
+
|
|
6
21
|
## [8.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/multi-trait-rubric@8.1.3...@pie-element/multi-trait-rubric@8.1.4) (2026-06-17)
|
|
7
22
|
|
|
8
23
|
### Bug Fixes
|
package/configure/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [7.1.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/multi-trait-rubric-configure@7.1.5...@pie-element/multi-trait-rubric-configure@7.1.6) (2026-07-02)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- bump shared modules and libs PIE-695, PIE-697, PIE-699, PIE-680, PIE-714, PIE-665, PIE-656 ([4b76ae7](https://github.com/pie-framework/pie-elements/commit/4b76ae75d1c5ea6d55f7c6fb53f299dfcbda2b1f))
|
|
11
|
+
- sync libs versions ([48b5be9](https://github.com/pie-framework/pie-elements/commit/48b5be9559eb5b5235ca05f51c5f0161032a7041))
|
|
12
|
+
|
|
13
|
+
## [7.1.5](https://github.com/pie-framework/pie-elements/compare/@pie-element/multi-trait-rubric-configure@7.1.4...@pie-element/multi-trait-rubric-configure@7.1.5) (2026-06-22)
|
|
14
|
+
|
|
15
|
+
### Bug Fixes
|
|
16
|
+
|
|
17
|
+
- bump shared modules and libs PIE-674, PIE-662, PIE-705, PIE-674, PIE-963 ([78a3f64](https://github.com/pie-framework/pie-elements/commit/78a3f64652c9581c61bd4159f3210fc1e32d8bcf))
|
|
18
|
+
- handle webcomponent lifecycle on every element that misses it PIE-703 ([9d5923f](https://github.com/pie-framework/pie-elements/commit/9d5923f973f0471e1e8f69ad4309cfc63d980d93))
|
|
19
|
+
|
|
6
20
|
## [7.1.4](https://github.com/pie-framework/pie-elements/compare/@pie-element/multi-trait-rubric-configure@7.1.3...@pie-element/multi-trait-rubric-configure@7.1.4) (2026-06-17)
|
|
7
21
|
|
|
8
22
|
### Bug Fixes
|
package/configure/lib/index.js
CHANGED
|
@@ -147,9 +147,13 @@ class MultiTraitRubricElement extends HTMLElement {
|
|
|
147
147
|
this._root.render(element);
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
|
+
connectedCallback() {
|
|
151
|
+
this._render();
|
|
152
|
+
}
|
|
150
153
|
disconnectedCallback() {
|
|
151
154
|
if (this._root) {
|
|
152
155
|
this._root.unmount();
|
|
156
|
+
this._root = null;
|
|
153
157
|
}
|
|
154
158
|
}
|
|
155
159
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_react","_interopRequireDefault","_client","_main","_defaults","_utils","_modals","modelWithDefaults","m","defaults","model","configurationWithDefaults","c","configuration","MultiTraitRubricElement","HTMLElement","constructor","_defineProperty2","default","currentModel","_model","validatedModel","scales","excludeZero","forEach","scale","scorePointsLabels","traits","maxPoints","howManyScorePointLabelsShouldHave","howManyScorePointLabelsItHas","length","i","push","slice","trait","scorePointsDescriptors","howManyScorePointDescriptorsItHas","shouldAddColumn0","some","addOrRemoveScaleColumn","excludeZeroTypes","add0","updateModelAccordingToReceivedProps","_render","dispatchEvent","ModelUpdatedEvent","_configuration","_root","insertSound","handler","InsertSoundEvent","onDeleteSound","src","done","DeleteSoundEvent","insertImage","InsertImageEvent","onDeleteImage","DeleteImageEvent","element","React","createElement","Main","onModelChanged","onConfigurationChanged","uploadSoundSupport","add","bind","delete","imageSupport","createRoot","render","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import {\n ModelUpdatedEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n InsertImageEvent,\n DeleteImageEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport Main from './main';\nimport defaults from './defaults';\nimport { addOrRemoveScaleColumn } from './utils';\nimport { excludeZeroTypes } from './modals';\n\nconst modelWithDefaults = (m) => ({ ...defaults.model, ...m });\nconst configurationWithDefaults = (c) => ({ ...defaults.configuration, ...c });\n\nexport default class MultiTraitRubricElement extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._model = modelWithDefaults();\n this._configuration = configurationWithDefaults();\n }\n\n updateModelAccordingToReceivedProps = (m) => {\n const currentModel = { ...this._model };\n\n if (!m) {\n return currentModel;\n }\n\n const validatedModel = { ...m };\n const { scales, excludeZero } = validatedModel || {};\n\n (scales || []).forEach((scale) => {\n if (!scale) {\n scale = { scorePointsLabels: [], traits: [] };\n }\n\n const { maxPoints } = scale || {};\n\n scale.scorePointsLabels = [...(scale.scorePointsLabels || [])];\n scale.traits = [...(scale.traits || [])];\n\n const howManyScorePointLabelsShouldHave = excludeZero ? maxPoints : maxPoints + 1;\n const howManyScorePointLabelsItHas = scale.scorePointsLabels.length;\n\n if (howManyScorePointLabelsItHas !== howManyScorePointLabelsShouldHave) {\n if (howManyScorePointLabelsItHas < howManyScorePointLabelsShouldHave) {\n for (let i = 0; i < howManyScorePointLabelsShouldHave - howManyScorePointLabelsItHas; i++) {\n scale.scorePointsLabels.push('');\n }\n } else {\n scale.scorePointsLabels = scale.scorePointsLabels.slice(0, howManyScorePointLabelsShouldHave);\n }\n }\n\n (scale.traits || []).forEach((trait) => {\n if (!trait) {\n trait = { scorePointsDescriptors: [] };\n }\n\n trait.scorePointsDescriptors = [...(trait.scorePointsDescriptors || [])];\n\n const howManyScorePointDescriptorsItHas = trait.scorePointsDescriptors.length;\n\n if (howManyScorePointDescriptorsItHas !== howManyScorePointLabelsShouldHave) {\n if (howManyScorePointDescriptorsItHas < howManyScorePointLabelsShouldHave) {\n for (let i = 0; i < howManyScorePointLabelsShouldHave - howManyScorePointDescriptorsItHas; i++) {\n trait.scorePointsDescriptors.push('');\n }\n } else {\n trait.scorePointsDescriptors = trait.scorePointsDescriptors.slice(0, howManyScorePointLabelsShouldHave);\n }\n }\n });\n });\n\n if (validatedModel.excludeZero) {\n // check if any scale has maxPoints set to 1\n const shouldAddColumn0 = validatedModel.scales.some((scale) => scale.maxPoints === 1);\n\n if (shouldAddColumn0) {\n // excludeZero should be false and disabled when maxPoints is 1\n validatedModel.excludeZero = false;\n // add column 0 for all scales\n validatedModel.scales = addOrRemoveScaleColumn(scales, excludeZeroTypes.add0);\n }\n }\n\n return validatedModel;\n };\n\n set model(m) {\n this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));\n this._render();\n }\n\n set configuration(c) {\n this._configuration = configurationWithDefaults(c);\n this._render();\n }\n\n onModelChanged = (m) => {\n this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n };\n\n onConfigurationChanged = (c) => {\n this._configuration = configurationWithDefaults(c);\n\n this._render();\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_pieConfigureEvents","require","_react","_interopRequireDefault","_client","_main","_defaults","_utils","_modals","modelWithDefaults","m","defaults","model","configurationWithDefaults","c","configuration","MultiTraitRubricElement","HTMLElement","constructor","_defineProperty2","default","currentModel","_model","validatedModel","scales","excludeZero","forEach","scale","scorePointsLabels","traits","maxPoints","howManyScorePointLabelsShouldHave","howManyScorePointLabelsItHas","length","i","push","slice","trait","scorePointsDescriptors","howManyScorePointDescriptorsItHas","shouldAddColumn0","some","addOrRemoveScaleColumn","excludeZeroTypes","add0","updateModelAccordingToReceivedProps","_render","dispatchEvent","ModelUpdatedEvent","_configuration","_root","insertSound","handler","InsertSoundEvent","onDeleteSound","src","done","DeleteSoundEvent","insertImage","InsertImageEvent","onDeleteImage","DeleteImageEvent","element","React","createElement","Main","onModelChanged","onConfigurationChanged","uploadSoundSupport","add","bind","delete","imageSupport","createRoot","render","connectedCallback","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import {\n ModelUpdatedEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n InsertImageEvent,\n DeleteImageEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport Main from './main';\nimport defaults from './defaults';\nimport { addOrRemoveScaleColumn } from './utils';\nimport { excludeZeroTypes } from './modals';\n\nconst modelWithDefaults = (m) => ({ ...defaults.model, ...m });\nconst configurationWithDefaults = (c) => ({ ...defaults.configuration, ...c });\n\nexport default class MultiTraitRubricElement extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._model = modelWithDefaults();\n this._configuration = configurationWithDefaults();\n }\n\n updateModelAccordingToReceivedProps = (m) => {\n const currentModel = { ...this._model };\n\n if (!m) {\n return currentModel;\n }\n\n const validatedModel = { ...m };\n const { scales, excludeZero } = validatedModel || {};\n\n (scales || []).forEach((scale) => {\n if (!scale) {\n scale = { scorePointsLabels: [], traits: [] };\n }\n\n const { maxPoints } = scale || {};\n\n scale.scorePointsLabels = [...(scale.scorePointsLabels || [])];\n scale.traits = [...(scale.traits || [])];\n\n const howManyScorePointLabelsShouldHave = excludeZero ? maxPoints : maxPoints + 1;\n const howManyScorePointLabelsItHas = scale.scorePointsLabels.length;\n\n if (howManyScorePointLabelsItHas !== howManyScorePointLabelsShouldHave) {\n if (howManyScorePointLabelsItHas < howManyScorePointLabelsShouldHave) {\n for (let i = 0; i < howManyScorePointLabelsShouldHave - howManyScorePointLabelsItHas; i++) {\n scale.scorePointsLabels.push('');\n }\n } else {\n scale.scorePointsLabels = scale.scorePointsLabels.slice(0, howManyScorePointLabelsShouldHave);\n }\n }\n\n (scale.traits || []).forEach((trait) => {\n if (!trait) {\n trait = { scorePointsDescriptors: [] };\n }\n\n trait.scorePointsDescriptors = [...(trait.scorePointsDescriptors || [])];\n\n const howManyScorePointDescriptorsItHas = trait.scorePointsDescriptors.length;\n\n if (howManyScorePointDescriptorsItHas !== howManyScorePointLabelsShouldHave) {\n if (howManyScorePointDescriptorsItHas < howManyScorePointLabelsShouldHave) {\n for (let i = 0; i < howManyScorePointLabelsShouldHave - howManyScorePointDescriptorsItHas; i++) {\n trait.scorePointsDescriptors.push('');\n }\n } else {\n trait.scorePointsDescriptors = trait.scorePointsDescriptors.slice(0, howManyScorePointLabelsShouldHave);\n }\n }\n });\n });\n\n if (validatedModel.excludeZero) {\n // check if any scale has maxPoints set to 1\n const shouldAddColumn0 = validatedModel.scales.some((scale) => scale.maxPoints === 1);\n\n if (shouldAddColumn0) {\n // excludeZero should be false and disabled when maxPoints is 1\n validatedModel.excludeZero = false;\n // add column 0 for all scales\n validatedModel.scales = addOrRemoveScaleColumn(scales, excludeZeroTypes.add0);\n }\n }\n\n return validatedModel;\n };\n\n set model(m) {\n this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));\n this._render();\n }\n\n set configuration(c) {\n this._configuration = configurationWithDefaults(c);\n this._render();\n }\n\n onModelChanged = (m) => {\n this._model = this.updateModelAccordingToReceivedProps(modelWithDefaults(m));\n this._render();\n this.dispatchEvent(new ModelUpdatedEvent(this._model, false));\n };\n\n onConfigurationChanged = (c) => {\n this._configuration = configurationWithDefaults(c);\n\n this._render();\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n let element = React.createElement(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n connectedCallback() {\n this._render();\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/configure/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/multi-trait-rubric-configure",
|
|
3
|
-
"version": "7.1.
|
|
3
|
+
"version": "7.1.6",
|
|
4
4
|
"private": true,
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.js",
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
"@mui/icons-material": "^7.3.4",
|
|
12
12
|
"@mui/material": "^7.3.4",
|
|
13
13
|
"@pie-framework/pie-configure-events": "^1.3.0",
|
|
14
|
-
"@pie-lib/config-ui": "13.0.
|
|
15
|
-
"@pie-lib/drag": "4.0.
|
|
16
|
-
"@pie-lib/editable-html-tip-tap": "2.1.
|
|
17
|
-
"@pie-lib/render-ui": "6.1.
|
|
14
|
+
"@pie-lib/config-ui": "13.0.11",
|
|
15
|
+
"@pie-lib/drag": "4.0.6",
|
|
16
|
+
"@pie-lib/editable-html-tip-tap": "2.1.9",
|
|
17
|
+
"@pie-lib/render-ui": "6.1.3",
|
|
18
18
|
"debug": "^4.1.1",
|
|
19
19
|
"lodash-es": "^4.17.23",
|
|
20
20
|
"prop-types": "^15.8.1",
|
package/lib/index.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
8
9
|
var _react = _interopRequireDefault(require("react"));
|
|
9
10
|
var _client = require("react-dom/client");
|
|
10
11
|
var _piePlayerEvents = require("@pie-framework/pie-player-events");
|
|
@@ -13,9 +14,49 @@ var _mathRendering = require("@pie-lib/math-rendering");
|
|
|
13
14
|
class MultiTraitRubric extends HTMLElement {
|
|
14
15
|
constructor() {
|
|
15
16
|
super();
|
|
17
|
+
// React commits asynchronously, so a queueMicrotask(renderMath) can run before
|
|
18
|
+
// the LaTeX spans are in the DOM and leave raw LaTeX on first render — this is
|
|
19
|
+
// especially visible when this element is mounted inside complex-rubric, which
|
|
20
|
+
// swaps its innerHTML and re-defines the inner element. Observing the DOM and
|
|
21
|
+
// typesetting after each commit keeps math in sync regardless of timing.
|
|
22
|
+
(0, _defineProperty2.default)(this, "_scheduleMathRender", () => {
|
|
23
|
+
if (this._mathRenderPending) return;
|
|
24
|
+
this._mathRenderPending = true;
|
|
25
|
+
requestAnimationFrame(() => {
|
|
26
|
+
if (this._mathObserver) {
|
|
27
|
+
this._mathObserver.disconnect();
|
|
28
|
+
}
|
|
29
|
+
(0, _mathRendering.renderMath)(this);
|
|
30
|
+
this._mathRenderPending = false;
|
|
31
|
+
setTimeout(() => {
|
|
32
|
+
if (this._mathObserver) {
|
|
33
|
+
this._mathObserver.observe(this, {
|
|
34
|
+
childList: true,
|
|
35
|
+
subtree: true
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}, 50);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
16
41
|
this._model = {};
|
|
17
42
|
this._session = null;
|
|
18
43
|
this._root = null;
|
|
44
|
+
this._mathObserver = null;
|
|
45
|
+
this._mathRenderPending = false;
|
|
46
|
+
}
|
|
47
|
+
_initMathObserver() {
|
|
48
|
+
if (this._mathObserver) return;
|
|
49
|
+
this._mathObserver = new MutationObserver(this._scheduleMathRender);
|
|
50
|
+
this._mathObserver.observe(this, {
|
|
51
|
+
childList: true,
|
|
52
|
+
subtree: true
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
_disconnectMathObserver() {
|
|
56
|
+
if (this._mathObserver) {
|
|
57
|
+
this._mathObserver.disconnect();
|
|
58
|
+
this._mathObserver = null;
|
|
59
|
+
}
|
|
19
60
|
}
|
|
20
61
|
set model(s) {
|
|
21
62
|
this._model = s;
|
|
@@ -29,9 +70,11 @@ class MultiTraitRubric extends HTMLElement {
|
|
|
29
70
|
return this._session;
|
|
30
71
|
}
|
|
31
72
|
connectedCallback() {
|
|
73
|
+
this._initMathObserver();
|
|
32
74
|
this._render();
|
|
33
75
|
}
|
|
34
76
|
_render() {
|
|
77
|
+
this._initMathObserver();
|
|
35
78
|
const el = /*#__PURE__*/_react.default.createElement(_main.default, {
|
|
36
79
|
model: this._model,
|
|
37
80
|
session: this._session
|
|
@@ -40,13 +83,12 @@ class MultiTraitRubric extends HTMLElement {
|
|
|
40
83
|
this._root = (0, _client.createRoot)(this);
|
|
41
84
|
}
|
|
42
85
|
this._root.render(el);
|
|
43
|
-
queueMicrotask(() => {
|
|
44
|
-
(0, _mathRendering.renderMath)(this);
|
|
45
|
-
});
|
|
46
86
|
}
|
|
47
87
|
disconnectedCallback() {
|
|
88
|
+
this._disconnectMathObserver();
|
|
48
89
|
if (this._root) {
|
|
49
90
|
this._root.unmount();
|
|
91
|
+
this._root = null;
|
|
50
92
|
}
|
|
51
93
|
}
|
|
52
94
|
}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_mathRendering","MultiTraitRubric","HTMLElement","constructor","_model","_session","_root","model","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","session","connectedCallback","el","React","createElement","Main","createRoot","render","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_mathRendering","MultiTraitRubric","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","_session","_root","_initMathObserver","MutationObserver","_scheduleMathRender","_disconnectMathObserver","model","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","session","connectedCallback","el","React","createElement","Main","createRoot","render","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { ModelSetEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport default class MultiTraitRubric extends HTMLElement {\n constructor() {\n super();\n this._model = {};\n this._session = null;\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n }\n\n // React commits asynchronously, so a queueMicrotask(renderMath) can run before\n // the LaTeX spans are in the DOM and leave raw LaTeX on first render — this is\n // especially visible when this element is mounted inside complex-rubric, which\n // swaps its innerHTML and re-defines the inner element. Observing the DOM and\n // typesetting after each commit keeps math in sync regardless of timing.\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n set model(s) {\n this._model = s;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n }\n\n get session() {\n return this._session;\n }\n\n connectedCallback() {\n this._initMathObserver();\n this._render();\n }\n\n _render() {\n this._initMathObserver();\n\n const el = React.createElement(Main, { model: this._model, session: this._session });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEe,MAAMK,gBAAgB,SAASC,WAAW,CAAC;EACxDC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAQT;IACA;IACA;IACA;IACA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,+BACsB,MAAM;MAC1B,IAAI,IAAI,CAACC,kBAAkB,EAAE;MAC7B,IAAI,CAACA,kBAAkB,GAAG,IAAI;MAE9BC,qBAAqB,CAAC,MAAM;QAC1B,IAAI,IAAI,CAACC,aAAa,EAAE;UACtB,IAAI,CAACA,aAAa,CAACC,UAAU,CAAC,CAAC;QACjC;QACA,IAAAC,yBAAU,EAAC,IAAI,CAAC;QAChB,IAAI,CAACJ,kBAAkB,GAAG,KAAK;QAC/BK,UAAU,CAAC,MAAM;UACf,IAAI,IAAI,CAACH,aAAa,EAAE;YACtB,IAAI,CAACA,aAAa,CAACI,OAAO,CAAC,IAAI,EAAE;cAAEC,SAAS,EAAE,IAAI;cAAEC,OAAO,EAAE;YAAK,CAAC,CAAC;UACtE;QACF,CAAC,EAAE,EAAE,CAAC;MACR,CAAC,CAAC;IACJ,CAAC;IA5BC,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;IAChB,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACT,aAAa,GAAG,IAAI;IACzB,IAAI,CAACF,kBAAkB,GAAG,KAAK;EACjC;EAyBAY,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACV,aAAa,EAAE;IACxB,IAAI,CAACA,aAAa,GAAG,IAAIW,gBAAgB,CAAC,IAAI,CAACC,mBAAmB,CAAC;IACnE,IAAI,CAACZ,aAAa,CAACI,OAAO,CAAC,IAAI,EAAE;MAAEC,SAAS,EAAE,IAAI;MAAEC,OAAO,EAAE;IAAK,CAAC,CAAC;EACtE;EAEAO,uBAAuBA,CAAA,EAAG;IACxB,IAAI,IAAI,CAACb,aAAa,EAAE;MACtB,IAAI,CAACA,aAAa,CAACC,UAAU,CAAC,CAAC;MAC/B,IAAI,CAACD,aAAa,GAAG,IAAI;IAC3B;EACF;EAEA,IAAIc,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACR,MAAM,GAAGQ,CAAC;IACf,IAAI,CAACC,aAAa,CAAC,IAAIC,8BAAa,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACX,QAAQ,EAAE,CAAC,CAAC,IAAI,CAACD,MAAM,CAAC,CAAC;IAE/F,IAAI,CAACa,OAAO,CAAC,CAAC;EAChB;EAEA,IAAIC,OAAOA,CAACN,CAAC,EAAE;IACb,IAAI,CAACP,QAAQ,GAAGO,CAAC;EACnB;EAEA,IAAIM,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACb,QAAQ;EACtB;EAEAc,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACZ,iBAAiB,CAAC,CAAC;IACxB,IAAI,CAACU,OAAO,CAAC,CAAC;EAChB;EAEAA,OAAOA,CAAA,EAAG;IACR,IAAI,CAACV,iBAAiB,CAAC,CAAC;IAExB,MAAMa,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;MAAEZ,KAAK,EAAE,IAAI,CAACP,MAAM;MAAEc,OAAO,EAAE,IAAI,CAACb;IAAS,CAAC,CAAC;IAEpF,IAAI,CAAC,IAAI,CAACC,KAAK,EAAE;MACf,IAAI,CAACA,KAAK,GAAG,IAAAkB,kBAAU,EAAC,IAAI,CAAC;IAC/B;IACA,IAAI,CAAClB,KAAK,CAACmB,MAAM,CAACL,EAAE,CAAC;EACvB;EAEAM,oBAAoBA,CAAA,EAAG;IACrB,IAAI,CAAChB,uBAAuB,CAAC,CAAC;IAC9B,IAAI,IAAI,CAACJ,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACqB,OAAO,CAAC,CAAC;MACpB,IAAI,CAACrB,KAAK,GAAG,IAAI;IACnB;EACF;AACF;AAACsB,OAAA,CAAAlC,OAAA,GAAAJ,gBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-element/multi-trait-rubric",
|
|
3
3
|
"repository": "pie-framework/pie-elements",
|
|
4
|
-
"version": "8.1.
|
|
4
|
+
"version": "8.1.6",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"@mui/icons-material": "^7.3.4",
|
|
12
12
|
"@mui/material": "^7.3.4",
|
|
13
13
|
"@pie-framework/pie-player-events": "^0.1.0",
|
|
14
|
-
"@pie-lib/math-rendering": "5.0
|
|
15
|
-
"@pie-lib/render-ui": "6.1.
|
|
14
|
+
"@pie-lib/math-rendering": "5.1.0",
|
|
15
|
+
"@pie-lib/render-ui": "6.1.3",
|
|
16
16
|
"clsx": "^1.1.1",
|
|
17
17
|
"prop-types": "^15.8.1",
|
|
18
18
|
"react": "18.3.1",
|
|
19
19
|
"react-dom": "18.3.1"
|
|
20
20
|
},
|
|
21
|
-
"gitHead": "
|
|
21
|
+
"gitHead": "c022c438107df16842a810eefc9a0fe52664be49",
|
|
22
22
|
"scripts": {
|
|
23
23
|
"postpublish": "../../scripts/postpublish"
|
|
24
24
|
},
|