@pie-element/extended-text-entry 16.1.0 → 16.1.1-next.20261016161500
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/dist/browser/author/index.js +1 -1
- package/dist/browser/controller/index.js +1 -1
- package/dist/browser/delivery/index.js +2 -2
- package/dist/browser/editor-runtime/author/index.js +1 -1
- package/dist/browser/editor-runtime/controller/index.js +1 -1
- package/dist/browser/editor-runtime/delivery/index.js +2 -2
- package/dist/browser/editor-runtime/{main-CaTO455C.js → main-CzUVBN7Z.js} +53 -44
- package/dist/browser/editor-runtime/main-CzUVBN7Z.js.map +1 -0
- package/dist/browser/editor-runtime/print/index.js +2 -2
- package/dist/browser/{main-CyfTLXxG.js → main-DUBwjJQH.js} +53 -44
- package/dist/browser/main-DUBwjJQH.js.map +1 -0
- package/dist/browser/print/index.js +2 -2
- package/dist/delivery/annotation/annotation-editor.d.ts +2 -0
- package/dist/delivery/annotation/annotation-editor.js +13 -4
- package/dist/index.iife.js +110 -110
- package/dist/schemas/configuration.schema.json +1 -1
- package/dist/schemas/model.schema.json +1 -1
- package/dist/schemas/session.schema.json +1 -1
- package/module/print.js +39 -30
- package/module/print.js.map +1 -1
- package/package.json +13 -13
- package/dist/browser/editor-runtime/main-CaTO455C.js.map +0 -1
- package/dist/browser/main-CyfTLXxG.js.map +0 -1
|
@@ -2616,7 +2616,7 @@ var mr = class extends V.Component {
|
|
|
2616
2616
|
}
|
|
2617
2617
|
}, Br = Object.freeze({
|
|
2618
2618
|
name: "@pie-element/extended-text-entry",
|
|
2619
|
-
version: "16.1.
|
|
2619
|
+
version: "16.1.1-next.20261016161500"
|
|
2620
2620
|
});
|
|
2621
2621
|
//#endregion
|
|
2622
2622
|
export { zr as default, Br as piePackage };
|
|
@@ -182,7 +182,7 @@ var u = (e) => (e || "").replace(/(<(?!img|iframe|source)([^>]+)>)/gi, ""), d =
|
|
|
182
182
|
}), n;
|
|
183
183
|
}, f = Object.freeze({
|
|
184
184
|
name: "@pie-element/extended-text-entry",
|
|
185
|
-
version: "16.1.
|
|
185
|
+
version: "16.1.1-next.20261016161500"
|
|
186
186
|
});
|
|
187
187
|
//#endregion
|
|
188
188
|
export { o as createDefaultModel, c as model, s as normalize, l as outcome, f as piePackage, d as validate };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as e } from "../rolldown-runtime-CWhphoD1.js";
|
|
2
2
|
import { L as t, b as n, y as r } from "../dist-Bl70Zanm.js";
|
|
3
3
|
import { t as i } from "../browser-CcvjX8VA.js";
|
|
4
|
-
import { t as a } from "../main-
|
|
4
|
+
import { t as a } from "../main-DUBwjJQH.js";
|
|
5
5
|
import o from "react";
|
|
6
6
|
import { createRoot as s } from "react-dom/client";
|
|
7
7
|
//#region ../../shared/player-events/dist/index.js
|
|
@@ -291,7 +291,7 @@ var R = class extends HTMLElement {
|
|
|
291
291
|
}
|
|
292
292
|
}, z = Object.freeze({
|
|
293
293
|
name: "@pie-element/extended-text-entry",
|
|
294
|
-
version: "16.1.
|
|
294
|
+
version: "16.1.1-next.20261016161500"
|
|
295
295
|
});
|
|
296
296
|
//#endregion
|
|
297
297
|
export { R as default, L as isComplete, z as piePackage, I as textContent };
|
|
@@ -2616,7 +2616,7 @@ var mr = class extends V.Component {
|
|
|
2616
2616
|
}
|
|
2617
2617
|
}, Br = Object.freeze({
|
|
2618
2618
|
name: "@pie-element/extended-text-entry",
|
|
2619
|
-
version: "16.1.
|
|
2619
|
+
version: "16.1.1-next.20261016161500"
|
|
2620
2620
|
});
|
|
2621
2621
|
//#endregion
|
|
2622
2622
|
export { zr as default, Br as piePackage };
|
|
@@ -182,7 +182,7 @@ var u = (e) => (e || "").replace(/(<(?!img|iframe|source)([^>]+)>)/gi, ""), d =
|
|
|
182
182
|
}), n;
|
|
183
183
|
}, f = Object.freeze({
|
|
184
184
|
name: "@pie-element/extended-text-entry",
|
|
185
|
-
version: "16.1.
|
|
185
|
+
version: "16.1.1-next.20261016161500"
|
|
186
186
|
});
|
|
187
187
|
//#endregion
|
|
188
188
|
export { o as createDefaultModel, c as model, s as normalize, l as outcome, f as piePackage, d as validate };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as e } from "../rolldown-runtime-CHQKHQ89.js";
|
|
2
2
|
import { L as t, b as n, y as r } from "../dist-DUB8o_9Z.js";
|
|
3
3
|
import { t as i } from "../browser-BfhCkXup.js";
|
|
4
|
-
import { t as a } from "../main-
|
|
4
|
+
import { t as a } from "../main-CzUVBN7Z.js";
|
|
5
5
|
import o from "react";
|
|
6
6
|
import { createRoot as s } from "react-dom/client";
|
|
7
7
|
//#region ../../shared/player-events/dist/index.js
|
|
@@ -291,7 +291,7 @@ var R = class extends HTMLElement {
|
|
|
291
291
|
}
|
|
292
292
|
}, z = Object.freeze({
|
|
293
293
|
name: "@pie-element/extended-text-entry",
|
|
294
|
-
version: "16.1.
|
|
294
|
+
version: "16.1.1-next.20261016161500"
|
|
295
295
|
});
|
|
296
296
|
//#endregion
|
|
297
297
|
export { R as default, L as isComplete, z as piePackage, I as textContent };
|
|
@@ -134,7 +134,7 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
134
134
|
backgroundColor: "rgb(255, 204, 238) !important",
|
|
135
135
|
color: e.palette.text.primary
|
|
136
136
|
} }
|
|
137
|
-
})),
|
|
137
|
+
})), te = class extends v.Component {
|
|
138
138
|
static propTypes = {
|
|
139
139
|
anchorEl: x.default.object,
|
|
140
140
|
open: x.default.bool,
|
|
@@ -220,7 +220,7 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
220
220
|
})
|
|
221
221
|
});
|
|
222
222
|
}
|
|
223
|
-
},
|
|
223
|
+
}, ne = a(i)({ "& .MuiPaper-root": {
|
|
224
224
|
overflowX: "unset",
|
|
225
225
|
overflowY: "unset",
|
|
226
226
|
marginTop: "-16px",
|
|
@@ -235,21 +235,21 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
235
235
|
borderWidth: "7px",
|
|
236
236
|
borderTopColor: n.borderDark()
|
|
237
237
|
}
|
|
238
|
-
} }),
|
|
238
|
+
} }), re = a("div")(({ theme: e }) => ({
|
|
239
239
|
width: "300px",
|
|
240
240
|
overflow: "hidden",
|
|
241
241
|
borderRadius: "4px",
|
|
242
242
|
backgroundColor: n.v("pie")("background", n.defaults.WHITE),
|
|
243
243
|
color: n.v("pie")("text", e.palette.text.primary),
|
|
244
244
|
border: `2px solid ${n.borderDark()}`
|
|
245
|
-
})),
|
|
245
|
+
})), ie = a("div")({
|
|
246
246
|
display: "flex",
|
|
247
247
|
flexWrap: "wrap"
|
|
248
|
-
}),
|
|
248
|
+
}), ae = a("div")(() => ({
|
|
249
249
|
display: "flex",
|
|
250
250
|
flexWrap: "wrap",
|
|
251
251
|
borderTop: `2px solid ${n.border()}`
|
|
252
|
-
})),
|
|
252
|
+
})), L = a("div")(({ theme: e, variant: t }) => ({
|
|
253
253
|
width: "22%",
|
|
254
254
|
textAlign: "center",
|
|
255
255
|
padding: "4px",
|
|
@@ -268,7 +268,7 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
268
268
|
color: e.palette.text.primary,
|
|
269
269
|
"&:hover": { filter: "brightness(85%)" }
|
|
270
270
|
}
|
|
271
|
-
})),
|
|
271
|
+
})), oe = class extends v.Component {
|
|
272
272
|
static propTypes = {
|
|
273
273
|
anchorEl: x.default.object,
|
|
274
274
|
open: x.default.bool,
|
|
@@ -282,7 +282,7 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
282
282
|
};
|
|
283
283
|
render() {
|
|
284
284
|
let { anchorEl: e, annotations: t, isNewAnnotation: n, onAnnotate: r, onClose: i, onEdit: a, onDelete: o, onWrite: s, open: c } = this.props;
|
|
285
|
-
return /* @__PURE__ */ y(
|
|
285
|
+
return /* @__PURE__ */ y(ne, {
|
|
286
286
|
anchorEl: e,
|
|
287
287
|
open: c,
|
|
288
288
|
onClose: i,
|
|
@@ -299,35 +299,35 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
299
299
|
vertical: "bottom",
|
|
300
300
|
horizontal: "center"
|
|
301
301
|
},
|
|
302
|
-
children: /* @__PURE__ */ b(
|
|
302
|
+
children: /* @__PURE__ */ b(re, { children: [/* @__PURE__ */ y(ie, { children: t.map((e, t) => /* @__PURE__ */ y(L, {
|
|
303
303
|
variant: e.type,
|
|
304
304
|
onClick: () => r(e),
|
|
305
305
|
children: e.label
|
|
306
|
-
}, `annotation-${t}`)) }), /* @__PURE__ */ b(
|
|
307
|
-
/* @__PURE__ */ y(
|
|
306
|
+
}, `annotation-${t}`)) }), /* @__PURE__ */ b(ae, { children: [
|
|
307
|
+
/* @__PURE__ */ y(L, {
|
|
308
308
|
onClick: i,
|
|
309
309
|
children: "Cancel"
|
|
310
310
|
}),
|
|
311
|
-
/* @__PURE__ */ y(
|
|
312
|
-
n ? /* @__PURE__ */ b(v.Fragment, { children: [/* @__PURE__ */ y(
|
|
311
|
+
/* @__PURE__ */ y(L, { style: { pointerEvents: "none" } }),
|
|
312
|
+
n ? /* @__PURE__ */ b(v.Fragment, { children: [/* @__PURE__ */ y(L, {
|
|
313
313
|
variant: "positive",
|
|
314
314
|
onClick: () => s("positive"),
|
|
315
315
|
children: "Write"
|
|
316
|
-
}), /* @__PURE__ */ y(
|
|
316
|
+
}), /* @__PURE__ */ y(L, {
|
|
317
317
|
variant: "negative",
|
|
318
318
|
onClick: () => s("negative"),
|
|
319
319
|
children: "Write"
|
|
320
|
-
})] }) : /* @__PURE__ */ b(v.Fragment, { children: [/* @__PURE__ */ y(
|
|
320
|
+
})] }) : /* @__PURE__ */ b(v.Fragment, { children: [/* @__PURE__ */ y(L, {
|
|
321
321
|
onClick: o,
|
|
322
322
|
children: "Delete"
|
|
323
|
-
}), /* @__PURE__ */ y(
|
|
323
|
+
}), /* @__PURE__ */ y(L, {
|
|
324
324
|
onClick: a,
|
|
325
325
|
children: "Edit"
|
|
326
326
|
})] })
|
|
327
327
|
] })] })
|
|
328
328
|
});
|
|
329
329
|
}
|
|
330
|
-
}, { translator:
|
|
330
|
+
}, { translator: R } = h, z = a("div")({
|
|
331
331
|
padding: "10px 120px 10px 16px",
|
|
332
332
|
backgroundColor: "rgba(0, 0, 0, 0.06)",
|
|
333
333
|
border: "1px solid #ccc",
|
|
@@ -343,21 +343,21 @@ var x = /* @__PURE__ */ e(t(), 1), S = /* @__PURE__ */ e(_(), 1), C = (e, t, n)
|
|
|
343
343
|
"-moz-user-select": "none",
|
|
344
344
|
"-ms-user-select": "none"
|
|
345
345
|
}
|
|
346
|
-
}),
|
|
346
|
+
}), B = a("div")({ width: "230px" }), V = a("div")({
|
|
347
347
|
position: "relative",
|
|
348
348
|
overflowX: "hidden",
|
|
349
349
|
display: "flex"
|
|
350
|
-
}),
|
|
350
|
+
}), H = a(d)(({ theme: e }) => ({
|
|
351
351
|
paddingTop: e.spacing(2),
|
|
352
352
|
marginBottom: e.spacing(2),
|
|
353
353
|
marginTop: e.spacing(2),
|
|
354
354
|
width: "100%"
|
|
355
|
-
})),
|
|
355
|
+
})), U = "\n .sideAnnotation:before {\n position: absolute;\n right: var(--before-right, 100%);\n top: var(--before-top, 5px);\n border: solid transparent;\n content: \"\";\n height: 0;\n width: 0;\n pointer-events: none;\n border-width: var(--before-border-width, 7px);\n border-right-color: var(--before-border-color, rgb(153, 255, 153));\n }\n";
|
|
356
356
|
if (!document.getElementById("annotation-editor-styles")) {
|
|
357
357
|
let e = document.createElement("style");
|
|
358
|
-
e.id = "annotation-editor-styles", e.textContent =
|
|
358
|
+
e.id = "annotation-editor-styles", e.textContent = U, document.head.appendChild(e);
|
|
359
359
|
}
|
|
360
|
-
var G = class extends v.Component {
|
|
360
|
+
var W = 300, G = class extends v.Component {
|
|
361
361
|
static propTypes = {
|
|
362
362
|
text: x.default.string,
|
|
363
363
|
comment: x.default.string,
|
|
@@ -396,7 +396,7 @@ var G = class extends v.Component {
|
|
|
396
396
|
let i = D(r);
|
|
397
397
|
this.createDOMAnnotation(i, e);
|
|
398
398
|
}
|
|
399
|
-
}), this.textRef && (this.adjustAnnotationsPosition(), this.textRef.addEventListener("scroll", this.adjustAnnotationsPosition));
|
|
399
|
+
}), this.textRef && (this.adjustAnnotationsPosition(), this.textRef.addEventListener("scroll", this.adjustAnnotationsPosition)), document.addEventListener("selectionchange", this.handleSelectionChange);
|
|
400
400
|
}
|
|
401
401
|
adjustAnnotationsPosition = () => {
|
|
402
402
|
if (this.textRef && this.labelsRef) {
|
|
@@ -466,6 +466,14 @@ var G = class extends v.Component {
|
|
|
466
466
|
}
|
|
467
467
|
}
|
|
468
468
|
};
|
|
469
|
+
handleSelectionChange = () => {
|
|
470
|
+
this.props.disabled || this.pointerType === "mouse" || (clearTimeout(this.selectionTimer), this.selectionTimer = setTimeout(() => {
|
|
471
|
+
!this.state.openedMenu && !this.state.openedEditor && this.handleSelection({ detail: 0 });
|
|
472
|
+
}, W));
|
|
473
|
+
};
|
|
474
|
+
handlePointerDown = (e) => {
|
|
475
|
+
this.pointerType = e.pointerType;
|
|
476
|
+
};
|
|
469
477
|
deleteAnnotation = () => {
|
|
470
478
|
let { annotations: e, onChange: t } = this.props, { selectedElems: n, labelElem: r, annotationIndex: i, annotation: a } = this.state;
|
|
471
479
|
(j(a.label) ? this.labelsRef : n[0]).removeChild(r), k(n, this.textRef), e.splice(i, 1), t(e), this.handleClose();
|
|
@@ -549,23 +557,24 @@ var G = class extends v.Component {
|
|
|
549
557
|
this.updateLabel(e, a), n.splice(i, 1, a), r(n);
|
|
550
558
|
};
|
|
551
559
|
componentWillUnmount() {
|
|
552
|
-
this.textRef.removeEventListener("scroll", this.adjustAnnotationsPosition);
|
|
560
|
+
this.textRef.removeEventListener("scroll", this.adjustAnnotationsPosition), document.removeEventListener("selectionchange", this.handleSelectionChange), clearTimeout(this.selectionTimer);
|
|
553
561
|
}
|
|
554
562
|
render() {
|
|
555
|
-
let { comment: e, customKeys: t, disabled: n, disabledMath: r, keypadMode: i, height: a, language: o, width: s, maxHeight: l, onCommentChange: d, predefinedAnnotations: f, text: p } = this.props, { anchorEl: m, annotation: h, openedMenu: g, openedEditor: _, selectionDetails: v } = this.state, x = m && (m.offsetTop ? m.offsetTop : m.offsetParent.offsetTop), S = this.textRef && x ? x - this.textRef.scrollTop - 8 : 0, C =
|
|
563
|
+
let { comment: e, customKeys: t, disabled: n, disabledMath: r, keypadMode: i, height: a, language: o, width: s, maxHeight: l, onCommentChange: d, predefinedAnnotations: f, text: p } = this.props, { anchorEl: m, annotation: h, openedMenu: g, openedEditor: _, selectionDetails: v } = this.state, x = m && (m.offsetTop ? m.offsetTop : m.offsetParent.offsetTop), S = this.textRef && x ? x - this.textRef.scrollTop - 8 : 0, C = R.t("extendedTextEntry.comment", { lng: o });
|
|
556
564
|
return /* @__PURE__ */ b("div", { children: [
|
|
557
|
-
/* @__PURE__ */ b(
|
|
565
|
+
/* @__PURE__ */ b(V, { children: [/* @__PURE__ */ y(z, {
|
|
558
566
|
style: {
|
|
559
567
|
width: s - 34,
|
|
560
568
|
minHeight: a,
|
|
561
569
|
maxHeight: l
|
|
562
570
|
},
|
|
563
571
|
ref: (e) => this.textRef = e,
|
|
572
|
+
onPointerDown: this.handlePointerDown,
|
|
564
573
|
onMouseDown: n ? () => {} : A,
|
|
565
574
|
onMouseUp: n ? () => {} : this.handleSelection,
|
|
566
575
|
dangerouslySetInnerHTML: { __html: c(p) }
|
|
567
|
-
}), /* @__PURE__ */ y(
|
|
568
|
-
/* @__PURE__ */ y(
|
|
576
|
+
}), /* @__PURE__ */ y(B, { ref: (e) => this.labelsRef = e })] }),
|
|
577
|
+
/* @__PURE__ */ y(H, {
|
|
569
578
|
label: C,
|
|
570
579
|
children: /* @__PURE__ */ y(u, {
|
|
571
580
|
className: "prompt",
|
|
@@ -589,7 +598,7 @@ var G = class extends v.Component {
|
|
|
589
598
|
}
|
|
590
599
|
})
|
|
591
600
|
}),
|
|
592
|
-
/* @__PURE__ */ y(
|
|
601
|
+
/* @__PURE__ */ y(oe, {
|
|
593
602
|
anchorEl: m,
|
|
594
603
|
open: g && !n,
|
|
595
604
|
annotations: f,
|
|
@@ -600,7 +609,7 @@ var G = class extends v.Component {
|
|
|
600
609
|
onWrite: this.addAnnotation,
|
|
601
610
|
onAnnotate: this.handleMenuClick
|
|
602
611
|
}),
|
|
603
|
-
/* @__PURE__ */ y(
|
|
612
|
+
/* @__PURE__ */ y(te, {
|
|
604
613
|
anchorEl: this.textRef,
|
|
605
614
|
open: _ && !n,
|
|
606
615
|
offset: S,
|
|
@@ -622,26 +631,26 @@ function K(e) {
|
|
|
622
631
|
function q(e, t) {
|
|
623
632
|
return !e || K(e) ? e : K(e.default) ? e.default : t && K(e[t]) ? e[t] : t && K(e[t]?.default) ? e[t].default : e;
|
|
624
633
|
}
|
|
625
|
-
var J = l, Y = J.default, X = Y && typeof Y == "object" ? Y : J,
|
|
634
|
+
var J = l, Y = J.default, X = Y && typeof Y == "object" ? Y : J, se = q(s, "UiLayout") || q(X.UiLayout, "UiLayout"), Z = q(f, "PreviewPrompt") || q(X.PreviewPrompt, "PreviewPrompt"), ce = q(p, "Collapsible") || q(X.Collapsible, "Collapsible"), le = q(r, "Feedback") || q(X.Feedback, "Feedback"), { translator: Q } = h, $ = (0, S.default)("@pie-ui:extended-text-entry"), ue = a(se)({
|
|
626
635
|
backgroundColor: n.background(),
|
|
627
636
|
color: n.text()
|
|
628
|
-
}),
|
|
637
|
+
}), de = a(g)(({ theme: e }) => ({
|
|
629
638
|
width: "100%",
|
|
630
639
|
color: n.text(),
|
|
631
640
|
marginBottom: e.spacing(2),
|
|
632
641
|
fontSize: "inherit",
|
|
633
642
|
display: "block"
|
|
634
|
-
})),
|
|
643
|
+
})), fe = a("div")(({ theme: e }) => ({ marginBottom: e.spacing(2) })), pe = a(u)(({ theme: e }) => ({
|
|
635
644
|
marginBottom: e.spacing(2),
|
|
636
645
|
borderRadius: "4px"
|
|
637
|
-
})),
|
|
646
|
+
})), me = a("h2")({
|
|
638
647
|
position: "absolute",
|
|
639
648
|
left: "-10000px",
|
|
640
649
|
top: "auto",
|
|
641
650
|
width: "1px",
|
|
642
651
|
height: "1px",
|
|
643
652
|
overflow: "hidden"
|
|
644
|
-
}),
|
|
653
|
+
}), he = class extends v.Component {
|
|
645
654
|
static propTypes = {
|
|
646
655
|
onValueChange: x.default.func.isRequired,
|
|
647
656
|
onAnnotationsChange: x.default.func.isRequired,
|
|
@@ -657,26 +666,26 @@ var J = l, Y = J.default, X = Y && typeof Y == "object" ? Y : J, oe = q(s, "UiLa
|
|
|
657
666
|
promptId = `ete-prompt-${Math.random().toString(36).slice(2, 10)}`;
|
|
658
667
|
render() {
|
|
659
668
|
let { model: e, session: t, idleSaveDelay: n, onAnnotationsChange: r, onCommentChange: i, onValueChange: a } = this.props, { animationsDisabled: o, annotatorMode: s, customKeys: c, dimensions: l, disabled: u, disabledAnnotator: d, equationEditor: f, extraCSSRules: p, feedback: m, mathInput: h, pasteFormattingDisabled: g, playersToolbarPosition: _, predefinedAnnotations: v, prompt: x, spanishInput: S, specialInput: C, spellCheckEnabled: w, teacherInstructions: T } = e, { annotations: E, comment: D, value: O } = t, { width: k, height: A } = l || {}, j = "40vh", M = { position: _ === "top" ? "top" : "bottom" };
|
|
660
|
-
|
|
669
|
+
$("[render] disabled? ", u);
|
|
661
670
|
let N = /* @__PURE__ */ y(Z, {
|
|
662
671
|
defaultClassName: "teacher-instructions",
|
|
663
672
|
prompt: T
|
|
664
673
|
}), P = [];
|
|
665
|
-
return S && P.push({ language: "spanish" }), C && P.push({ language: "special" }), /* @__PURE__ */ b(
|
|
674
|
+
return S && P.push({ language: "spanish" }), C && P.push({ language: "special" }), /* @__PURE__ */ b(ue, {
|
|
666
675
|
extraCSSRules: p,
|
|
667
676
|
ref: (e) => {
|
|
668
677
|
this.containerRef = e;
|
|
669
678
|
},
|
|
670
679
|
children: [
|
|
671
|
-
/* @__PURE__ */ y(
|
|
672
|
-
T && /* @__PURE__ */ y(
|
|
680
|
+
/* @__PURE__ */ y(me, { children: Q.t("extendedTextEntry.constructedResponseQuestion", { lng: e.language }) }),
|
|
681
|
+
T && /* @__PURE__ */ y(fe, { children: o ? N : /* @__PURE__ */ y(ce, {
|
|
673
682
|
labels: {
|
|
674
683
|
hidden: Q.t("common:showTeacherInstructions", { lng: e.language }),
|
|
675
684
|
visible: Q.t("common:hideTeacherInstructions", { lng: e.language })
|
|
676
685
|
},
|
|
677
686
|
children: N
|
|
678
687
|
}) }),
|
|
679
|
-
x && /* @__PURE__ */ y(
|
|
688
|
+
x && /* @__PURE__ */ y(de, {
|
|
680
689
|
component: "span",
|
|
681
690
|
id: this.promptId,
|
|
682
691
|
children: /* @__PURE__ */ y(Z, {
|
|
@@ -699,7 +708,7 @@ var J = l, Y = J.default, X = Y && typeof Y == "object" ? Y : J, oe = q(s, "UiLa
|
|
|
699
708
|
customKeys: c,
|
|
700
709
|
keypadMode: f,
|
|
701
710
|
language: e.language
|
|
702
|
-
}) : /* @__PURE__ */ y(
|
|
711
|
+
}) : /* @__PURE__ */ y(pe, {
|
|
703
712
|
className: "response-area-editor",
|
|
704
713
|
onChange: a,
|
|
705
714
|
idleSaveDelay: n,
|
|
@@ -736,7 +745,7 @@ var J = l, Y = J.default, X = Y && typeof Y == "object" ? Y : J, oe = q(s, "UiLa
|
|
|
736
745
|
ariaLabel: Q.t("extendedTextEntry.response", { lng: e.language }),
|
|
737
746
|
language: e.language
|
|
738
747
|
}),
|
|
739
|
-
m && /* @__PURE__ */ y(
|
|
748
|
+
m && /* @__PURE__ */ y(le, {
|
|
740
749
|
correctness: "correct",
|
|
741
750
|
feedback: m
|
|
742
751
|
})
|
|
@@ -745,6 +754,6 @@ var J = l, Y = J.default, X = Y && typeof Y == "object" ? Y : J, oe = q(s, "UiLa
|
|
|
745
754
|
}
|
|
746
755
|
};
|
|
747
756
|
//#endregion
|
|
748
|
-
export {
|
|
757
|
+
export { he as t };
|
|
749
758
|
|
|
750
|
-
//# sourceMappingURL=main-
|
|
759
|
+
//# sourceMappingURL=main-CzUVBN7Z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-CzUVBN7Z.js","names":[],"sources":["../../../src/delivery/annotation/annotation-utils.ts","../../../src/delivery/annotation/freeform-editor.tsx","../../../src/delivery/annotation/annotation-menu.tsx","../../../src/delivery/annotation/annotation-editor.tsx","../../../src/delivery/main.tsx"],"sourcesContent":["// @ts-nocheck\n\n// returns DOM Nodes before the stopOffset\nconst getAllTextNodesBeforePosition = (node, stopOffset, nodeArray) => {\n const nodes = nodeArray ? nodeArray : [];\n const offset = nodes.reduce((acc, node) => acc + node.textContent.length, 0);\n let keepWalking = true;\n\n if (offset > stopOffset) {\n return false;\n }\n\n if (node) {\n // 3 = HTML DOM node value for text nodes\n if (node.nodeType === 3 && node.parentNode && !node.parentNode.hasAttribute('data-ann-id')) {\n nodes.push(node);\n }\n\n node = node.firstChild;\n }\n\n while (node && keepWalking) {\n keepWalking = getAllTextNodesBeforePosition(node, stopOffset, nodes);\n node = node.nextSibling;\n }\n\n return nodes;\n};\n\n// returns DOM Nodes that overlap the start or end position\nexport const getDOMNodes = (startOffset, endOffset, rootNode) => {\n const textNodesToEnd = getAllTextNodesBeforePosition(rootNode, endOffset);\n const domNodes = [];\n let start = 0;\n\n textNodesToEnd.forEach((node) => {\n const end = start + node.textContent.length;\n\n [startOffset, endOffset].forEach((offset) => {\n if (start <= offset && offset < end) {\n domNodes.push({\n node,\n offset: offset - start,\n });\n }\n });\n\n start = end;\n });\n\n return domNodes;\n};\n\n// returns [ textNodes, text ]\n// textNodes = DOM Text Nodes between start range and end range node\n// text = plain text in range\nconst getTextNodesBetween = (range) => {\n const {\n commonAncestorContainer: rootNode,\n startContainer: startNode,\n endContainer: endNode,\n startOffset,\n endOffset,\n } = range;\n const textNodes = [];\n let pastStartNode = false;\n let reachedEndNode = false;\n let text = '';\n\n const getTextNodes = (node) => {\n const { nodeValue: value, childNodes } = node;\n\n if (node === startNode && node === endNode) {\n if (value) {\n text += value.substring(startOffset, endOffset);\n }\n\n pastStartNode = reachedEndNode = true;\n } else if (node === startNode) {\n if (value) {\n text += value.substring(startOffset);\n }\n\n pastStartNode = true;\n } else if (node === endNode) {\n if (value) {\n text += value.substring(0, endOffset);\n }\n\n reachedEndNode = true;\n } else if (node && node.nodeType === 3 && node.parentNode && !node.parentNode.hasAttribute('data-ann-id')) {\n // 3 = HTML DOM node value for text nodes\n if (value && pastStartNode && !reachedEndNode) {\n text += value;\n textNodes.push(node);\n }\n }\n\n childNodes.forEach((childNode) => {\n if (!reachedEndNode) {\n getTextNodes(childNode);\n } else {\n return;\n }\n });\n };\n\n getTextNodes(rootNode);\n\n return [textNodes, text];\n};\n\nconst surroundContent = (range) => {\n const wrapper = document.createElement('SPAN');\n\n range.surroundContents(wrapper);\n\n return wrapper;\n};\n\n// wrap each DOM Text Node in range into a span\nexport const wrapRange = (range) => {\n if (range.startContainer === range.endContainer) {\n return [surroundContent(range)];\n }\n\n const [nodesBetween] = getTextNodesBetween(range);\n\n // wrap the start node\n const startRange = document.createRange();\n\n startRange.selectNodeContents(range.startContainer);\n startRange.setStart(range.startContainer, range.startOffset);\n\n const startWrapper = surroundContent(startRange);\n\n // wrap the end node\n const endRange = document.createRange();\n\n endRange.selectNode(range.endContainer);\n endRange.setEnd(range.endContainer, range.endOffset);\n\n const endWrapper = surroundContent(endRange);\n\n // wrap the nodes between start and end nodes, if any\n const centerWrappers = nodesBetween.map((node) => {\n const wrapper = document.createElement('SPAN');\n\n node.parentNode.insertBefore(wrapper, node);\n wrapper.appendChild(node);\n\n return wrapper;\n });\n\n return [startWrapper, ...centerWrappers, endWrapper];\n};\n\n// returns text in range with start and end position in rootNode\nexport const getRangeDetails = (range, rootNode) => {\n const rangeBefore = document.createRange();\n\n rangeBefore.setStart(rootNode, 0);\n rangeBefore.setEnd(range.startContainer, range.startOffset);\n\n const [, text] = getTextNodesBetween(rangeBefore);\n const [, textSelected] = getTextNodesBetween(range);\n const start = text.length;\n const end = start + textSelected.length;\n\n return {\n quote: textSelected,\n start,\n end,\n };\n};\n\n// removes the annotation spans without changing the content inside\nexport const removeElemsWrapping = (elems, container) => {\n (elems || []).forEach((elem) => {\n const parent = elem.parentNode;\n const childNodes = elem.childNodes;\n const childNodesLength = childNodes.length;\n\n if (childNodesLength > 0) {\n for (let i = 0; i < childNodesLength; i++) {\n parent.insertBefore(childNodes[0], elem);\n }\n } else {\n parent.insertBefore(document.createTextNode(elem.textContent), elem);\n }\n\n parent.removeChild(elem);\n });\n\n container.normalize();\n};\n\n// also used in select-text\nexport const clearSelection = () => {\n if (document.getSelection) {\n // for all new browsers (IE9+, Chrome, Firefox)\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(document.createRange());\n } else if (window.getSelection) {\n // equals with the document.getSelection (MSDN info)\n if (window.getSelection().removeAllRanges) {\n // for all new browsers (IE9+, Chrome, Firefox)\n window.getSelection().removeAllRanges();\n window.getSelection().addRange(document.createRange());\n } else if (window.getSelection().empty) {\n // Chrome supports this as well\n window.getSelection().empty();\n }\n } else if (document.selection) {\n // IE8-\n document.selection.empty();\n }\n};\n\n// check if annotation label contains line breaks or its length >= 20 characters\nexport const isSideLabel = (text) => text.length >= 20 || text.search(/\\n|\\r|\\r\\n/) !== -1;\n\nexport const getAnnotationElements = (id) => Array.from(document.querySelectorAll(`[data-id='${id}']`));\n\nexport const getLabelElement = (id) => document.querySelector(`[data-ann-id='${id}']`);\n\n/*\n * The rings either side of the freeform editor's type band. The band's colour is the\n * annotation's type, information with no text label, so it needs 3:1 against what bounds it\n * (WCAG 1.4.11). The rings meet the fixed annotation fills as well as the themed surface, so they\n * are a literal: under the dark preset `--pie-border-dark` is #9E9E9E, 2.18:1 against the green.\n * #757575 clears 3:1 against both fills, white, and the dark preset's background. It stays fixed\n * until the annotation colours themselves follow the theme.\n */\nexport const ANNOTATION_STROKE = '#757575';\n","// @ts-nocheck\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Popover, TextField } from '@mui/material';\nimport { styled } from '@mui/material/styles';\nimport { color, createUniqueId } from '@pie-lib/render-ui';\nimport { ANNOTATION_STROKE } from './annotation-utils.js';\n\nconst StyledPopover: any = styled(Popover)(({ 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: color.border(),\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\n// See annotation-menu: surface and text follow the theme together, and the text field takes\n// the same text colour as the buttons. The type colour is as light as the white fill, so a\n// 1px ANNOTATION_STROKE ring runs along both of its edges; the inner ring is drawn over the\n// content so a hovered button cannot cover it.\nconst Wrapper: any = styled('div')(({ theme, annotationType }) => ({\n width: '200px',\n overflow: 'hidden',\n borderRadius: '4px',\n backgroundColor: color.v('pie')('background', color.defaults.WHITE),\n color: color.v('pie')('text', theme.palette.text.primary),\n border: `4px solid ${color.border()}`,\n '& .MuiInputBase-root': {\n color: 'inherit',\n },\n ...((annotationType === 'negative' || annotationType === 'positive') && {\n position: 'relative',\n boxShadow: `0 0 0 1px ${ANNOTATION_STROKE}`,\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n border: `1px solid ${ANNOTATION_STROKE}`,\n pointerEvents: 'none',\n },\n }),\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: any = styled('div')(() => ({\n display: 'flex',\n flexWrap: 'wrap',\n borderTop: `2px solid ${color.border()}`,\n}));\n\n// The annotation fills stay light in every scheme, so text on them keeps the paper's dark text.\nconst Button: any = 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 ${color.border()}`,\n },\n '&:hover': {\n backgroundColor: color.backgroundDark(),\n },\n ...(variant === 'positive' && {\n backgroundColor: 'rgb(153, 255, 153) !important',\n color: theme.palette.text.primary,\n '&:hover': {\n filter: 'brightness(85%)',\n },\n }),\n ...(variant === 'negative' && {\n backgroundColor: 'rgb(255, 204, 238) !important',\n color: theme.palette.text.primary,\n '&:hover': {\n filter: 'brightness(85%)',\n },\n }),\n ...(variant === 'typeChange' && annotationType === 'negative' && {\n '&:hover': {\n backgroundColor: 'rgb(153, 255, 153) !important',\n color: theme.palette.text.primary,\n },\n }),\n ...(variant === 'typeChange' && annotationType === 'positive' && {\n '&:hover': {\n backgroundColor: 'rgb(255, 204, 238) !important',\n color: theme.palette.text.primary,\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 this.editorId = createUniqueId('annotation-editor');\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: any = () => {\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: any = () => {\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={this.editorId}\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","// @ts-nocheck\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { Popover } from '@mui/material';\nimport { color } from '@pie-lib/render-ui';\n\nconst StyledPopover: any = styled(Popover)({\n '& .MuiPaper-root': {\n overflowX: 'unset',\n overflowY: 'unset',\n marginTop: '-16px',\n '&::after': {\n position: 'absolute',\n left: 'calc(50% - 7px)',\n border: 'solid transparent',\n content: '\"\"',\n height: 0,\n width: 0,\n pointerEvents: 'none',\n borderWidth: '7px',\n borderTopColor: color.borderDark(),\n },\n },\n});\n\n/*\n * Surface and text move together. `--pie-background` and `--pie-text` follow both the colour\n * schemes and the dark theme; `--pie-white` stays white under the dark theme, and the popover\n * paper's own text stays near-black in every scheme. Without a theme the fallbacks are the\n * white and the paper text the menu has always had. The outline and pointer bound the menu\n * against its surface and the page, so they follow the theme's `--pie-border-dark`, which clears\n * 3:1 against both in every scheme. The cells are text-labelled buttons, so WCAG 1.4.11 needs no\n * contrasting boundary between the outline and the annotation fills.\n */\nconst MainWrapper: any = styled('div')(({ theme }) => ({\n width: '300px',\n overflow: 'hidden',\n borderRadius: '4px',\n backgroundColor: color.v('pie')('background', color.defaults.WHITE),\n color: color.v('pie')('text', theme.palette.text.primary),\n border: `2px solid ${color.borderDark()}`,\n}));\n\nconst AnnotationsWrapper: any = styled('div')({\n display: 'flex',\n flexWrap: 'wrap',\n});\n\nconst ControlsWrapper: any = styled('div')(() => ({\n display: 'flex',\n flexWrap: 'wrap',\n borderTop: `2px solid ${color.border()}`,\n}));\n\n// The annotation fills stay light in every scheme, so their labels keep the paper's dark text.\nconst Button: any = styled('div')(({ theme, variant }) => ({\n width: '22%',\n textAlign: 'center',\n padding: '4px',\n cursor: 'pointer',\n borderBottom: `1px solid ${color.border()}`,\n '&:not(:nth-child(4n))': {\n borderRight: `1px solid ${color.border()}`,\n },\n '&:nth-child(4n)': {\n flexGrow: 1,\n },\n '&:hover': {\n backgroundColor: color.backgroundDark(),\n },\n ...(variant === 'positive' && {\n backgroundColor: 'rgb(153, 255, 153) !important',\n color: theme.palette.text.primary,\n '&:hover': {\n filter: 'brightness(85%)',\n },\n }),\n ...(variant === 'negative' && {\n backgroundColor: 'rgb(255, 204, 238) !important',\n color: theme.palette.text.primary,\n '&:hover': {\n filter: 'brightness(85%)',\n },\n }),\n}));\n\nclass AnnotationMenu extends React.Component {\n static propTypes = {\n anchorEl: PropTypes.object,\n open: PropTypes.bool,\n annotations: PropTypes.array,\n isNewAnnotation: PropTypes.bool,\n onClose: PropTypes.func,\n onDelete: PropTypes.func,\n onEdit: PropTypes.func,\n onWrite: PropTypes.func,\n onAnnotate: PropTypes.func,\n };\n\n render() {\n const { anchorEl, annotations, isNewAnnotation, onAnnotate, onClose, onEdit, onDelete, onWrite, open } =\n this.props;\n\n return (\n <StyledPopover\n anchorEl={anchorEl}\n open={open}\n onClose={onClose}\n elevation={5}\n transitionDuration={{ enter: 225, exit: 195 }}\n anchorOrigin={{\n vertical: 'top',\n horizontal: 'center',\n }}\n transformOrigin={{\n vertical: 'bottom',\n horizontal: 'center',\n }}\n >\n <MainWrapper>\n <AnnotationsWrapper>\n {annotations.map((annotation, index) => (\n <Button\n key={`annotation-${index}`}\n variant={annotation.type}\n onClick={() => onAnnotate(annotation)}\n >\n {annotation.label}\n </Button>\n ))}\n </AnnotationsWrapper>\n <ControlsWrapper>\n <Button onClick={onClose}>\n Cancel\n </Button>\n <Button style={{ pointerEvents: 'none' }} />\n {isNewAnnotation ? (\n <React.Fragment>\n <Button variant=\"positive\" onClick={() => onWrite('positive')}>\n Write\n </Button>\n <Button variant=\"negative\" onClick={() => onWrite('negative')}>\n Write\n </Button>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <Button onClick={onDelete}>\n Delete\n </Button>\n <Button onClick={onEdit}>\n Edit\n </Button>\n </React.Fragment>\n )}\n </ControlsWrapper>\n </MainWrapper>\n </StyledPopover>\n );\n }\n}\n\nexport default AnnotationMenu;\n","// @ts-nocheck\n\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\n\nimport {\n clearSelection,\n isSideLabel,\n getAnnotationElements,\n getDOMNodes,\n getLabelElement,\n getRangeDetails,\n removeElemsWrapping,\n wrapRange,\n} from './annotation-utils.js';\nimport FreeformEditor from './freeform-editor.js';\nimport AnnotationMenu from './annotation-menu.js';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport Translator from '@pie-lib/translator';\nimport { sanitizeModelHtml } from '@pie-element/shared-utils';\n\nconst { translator } = Translator;\n\nconst TextContainer: any = styled('div')({\n padding: '10px 120px 10px 16px',\n backgroundColor: 'rgba(0, 0, 0, 0.06)',\n border: '1px solid #ccc',\n borderRadius: '4px',\n overflowY: 'scroll',\n lineHeight: '36px',\n whiteSpace: 'pre-wrap',\n overflowWrap: 'break-word',\n '& p': {\n margin: 0,\n },\n '& span[data-latex]': {\n userSelect: 'none',\n '-webkit-user-select': 'none',\n '-moz-user-select': 'none',\n '-ms-user-select': 'none',\n },\n});\n\nconst LabelsContainer: any = styled('div')({\n width: '230px',\n});\n\nconst Wrapper: any = styled('div')({\n position: 'relative',\n overflowX: 'hidden',\n display: 'flex',\n});\n\nconst CommentContainer: any = styled(InputContainer)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n width: '100%',\n}));\n\n// Global styles for pseudo-elements that can't be applied inline\nconst globalStyles = `\n .sideAnnotation:before {\n position: absolute;\n right: var(--before-right, 100%);\n top: var(--before-top, 5px);\n border: solid transparent;\n content: \"\";\n height: 0;\n width: 0;\n pointer-events: none;\n border-width: var(--before-border-width, 7px);\n border-right-color: var(--before-border-color, rgb(153, 255, 153));\n }\n`;\n\n// Inject styles if not already injected\nif (!document.getElementById('annotation-editor-styles')) {\n const styleElement = document.createElement('style');\n styleElement.id = 'annotation-editor-styles';\n styleElement.textContent = globalStyles;\n document.head.appendChild(styleElement);\n}\n\nconst SELECTION_SETTLE_MS = 300;\n\nclass AnnotationEditor extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n comment: PropTypes.string,\n annotations: PropTypes.array,\n predefinedAnnotations: PropTypes.array,\n onChange: PropTypes.func.isRequired,\n onCommentChange: PropTypes.func.isRequired,\n width: PropTypes.number,\n height: PropTypes.number,\n maxHeight: PropTypes.string,\n disabled: PropTypes.bool,\n disabledMath: PropTypes.bool,\n customKeys: PropTypes.array,\n keypadMode: PropTypes.string,\n language: PropTypes.string,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotation: null,\n annotationIndex: null,\n };\n }\n\n componentDidMount() {\n const { annotations, text } = this.props;\n\n if (text) {\n annotations.forEach((annotation) => {\n const [domStart, domEnd] = getDOMNodes(annotation.start, annotation.end, this.textRef);\n\n if (domStart && domEnd) {\n const range = document.createRange();\n\n range.setStart(domStart.node, domStart.offset);\n range.setEnd(domEnd.node, domEnd.offset);\n\n const spans = wrapRange(range);\n\n this.createDOMAnnotation(spans, annotation);\n }\n });\n }\n\n if (this.textRef) {\n this.adjustAnnotationsPosition();\n this.textRef.addEventListener('scroll', this.adjustAnnotationsPosition);\n }\n\n document.addEventListener('selectionchange', this.handleSelectionChange);\n }\n\n adjustAnnotationsPosition: any = () => {\n if (this.textRef && this.labelsRef) {\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n Array.from(this.labelsRef.children).forEach((label) => {\n const spans = getAnnotationElements(label.dataset.annId);\n const spanOffset = spans[0].offsetTop ? spans[0].offsetTop : spans[0].offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop - 6;\n\n label.style.top = `${top}px`;\n label.style.left = `${left}px`;\n });\n }\n };\n\n handleClick: any = (event) => {\n const { annotations } = this.props;\n const { selectionDetails } = this.state;\n\n if (selectionDetails) {\n // new selection was made inside another annotation and should not update that annotation\n return;\n }\n\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const annotationIndex = annotations.findIndex((annotation) => annotation.id === annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n if (isSideLabel) {\n labelElem.style.zIndex = '10';\n }\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: !!id || (!!annId && !isSideLabel), // true if the annotation or the label was clicked\n openedEditor: !!annId && isSideLabel, // true if the side label was clicked\n selectedElems,\n labelElem,\n annotationIndex,\n annotation: annotations[annotationIndex],\n selectionDetails: null,\n });\n };\n\n handleHover: any = (event) => {\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => {\n elem.style.zIndex = '20';\n if (elem.classList.contains('positive')) {\n elem.style.backgroundColor = 'rgb(51, 255, 51, 0.7)';\n } else if (elem.classList.contains('negative')) {\n elem.style.backgroundColor = 'rgba(255, 102, 204, 0.55)';\n }\n });\n\n if (isSideLabel) {\n labelElem.style.zIndex = '20';\n if (labelElem.classList.contains('positive')) {\n labelElem.style.backgroundColor = 'rgb(128, 255, 128)';\n labelElem.style.setProperty('--before-border-color', 'rgb(153, 255, 153)');\n } else if (labelElem.classList.contains('negative')) {\n labelElem.style.backgroundColor = 'rgb(255, 179, 230)';\n labelElem.style.setProperty('--before-border-color', 'rgb(255, 179, 230)');\n }\n } else {\n labelElem.style.zIndex = '20';\n if (labelElem.classList.contains('positive')) {\n labelElem.style.color = 'rgb(0, 77, 0)';\n } else if (labelElem.classList.contains('negative')) {\n labelElem.style.color = 'rgb(153, 0, 102)';\n }\n }\n };\n\n handleCancelHover: any = (event) => {\n const { id, annId } = event.target.dataset;\n const annotationId = id || annId;\n const selectedElems = getAnnotationElements(annotationId);\n const labelElem = getLabelElement(annotationId);\n const isSideLabel = labelElem.hasAttribute('data-freeform');\n\n selectedElems.forEach((elem) => {\n elem.style.zIndex = '';\n if (elem.classList.contains('positive')) {\n elem.style.backgroundColor = 'rgb(51, 255, 51, 0.5)';\n } else if (elem.classList.contains('negative')) {\n elem.style.backgroundColor = 'rgba(255, 102, 204, 0.4)';\n }\n });\n\n if (isSideLabel) {\n labelElem.style.zIndex = '';\n if (labelElem.classList.contains('positive')) {\n labelElem.style.backgroundColor = 'rgb(153, 255, 153)';\n labelElem.style.removeProperty('--before-border-color');\n } else if (labelElem.classList.contains('negative')) {\n labelElem.style.backgroundColor = 'rgb(255, 204, 238)';\n labelElem.style.removeProperty('--before-border-color');\n }\n } else {\n labelElem.style.zIndex = '';\n if (labelElem.classList.contains('positive')) {\n labelElem.style.color = 'rgb(0, 128, 0)';\n } else if (labelElem.classList.contains('negative')) {\n labelElem.style.color = 'rgb(204, 0, 136)';\n }\n }\n };\n\n handleClose: any = (event) => {\n const { selectedElems, labelElem } = this.state;\n\n if (selectedElems.length && !selectedElems[0].hasAttribute('data-id')) {\n removeElemsWrapping(selectedElems, this.textRef);\n }\n\n if (labelElem) {\n labelElem.style.zIndex = '';\n }\n\n this.setState({\n anchorEl: null,\n openedMenu: false,\n openedEditor: false,\n selectedElems: [],\n labelElem: null,\n selectionDetails: null,\n annotationIndex: null,\n annotation: null,\n });\n\n clearSelection();\n };\n\n handleSelection: any = (event) => {\n const selection = window.getSelection();\n\n // prevent unwanted selections\n if (event.detail > 2) {\n clearSelection();\n return;\n }\n\n if (selection && selection.rangeCount > 0) {\n const selectedRange = selection.getRangeAt(0);\n const selectedText = selectedRange.toString();\n const isSelectionInside = this.textRef.contains(selectedRange.commonAncestorContainer);\n\n if (!selection.isCollapsed && selectedText !== '' && isSelectionInside) {\n const selectionDetails = getRangeDetails(selectedRange, this.textRef);\n const selectedElems = wrapRange(selectedRange);\n\n this.setState({\n anchorEl: selectedElems[0],\n openedMenu: true,\n selectedElems,\n selectionDetails,\n });\n }\n }\n };\n\n // A touch selection (long-press, then the selection handles) is a moved touch, which gets no\n // compatibility mouse events, so `onMouseUp` never runs. Read the selection once it settles instead.\n handleSelectionChange: any = () => {\n if (this.props.disabled || this.pointerType === 'mouse') {\n return;\n }\n\n clearTimeout(this.selectionTimer);\n this.selectionTimer = setTimeout(() => {\n if (!this.state.openedMenu && !this.state.openedEditor) {\n this.handleSelection({ detail: 0 });\n }\n }, SELECTION_SETTLE_MS);\n };\n\n handlePointerDown: any = (event) => {\n this.pointerType = event.pointerType;\n };\n\n deleteAnnotation: any = () => {\n const { annotations, onChange } = this.props;\n const { selectedElems, labelElem, annotationIndex, annotation } = this.state;\n const parentRef = isSideLabel(annotation.label) ? this.labelsRef : selectedElems[0];\n\n parentRef.removeChild(labelElem);\n removeElemsWrapping(selectedElems, this.textRef);\n annotations.splice(annotationIndex, 1);\n\n onChange(annotations);\n this.handleClose();\n };\n\n createDOMAnnotation: any = (elems, annotation) => {\n const { disabled } = this.props;\n const { id, label, type } = annotation;\n\n (elems || []).forEach((elem) => {\n elem.dataset.id = id;\n elem.className = `annotation ${type}`;\n // Apply annotation styles directly\n elem.style.position = 'relative';\n elem.style.cursor = 'pointer';\n if (type === 'positive') {\n elem.style.backgroundColor = 'rgb(51, 255, 51, 0.5)';\n } else if (type === 'negative') {\n elem.style.backgroundColor = 'rgba(255, 102, 204, 0.4)';\n }\n elem.onclick = !disabled && this.handleClick;\n elem.onmouseover = this.handleHover;\n elem.onmouseout = this.handleCancelHover;\n });\n\n const firstSpan = (elems && elems[0]) || {};\n const labelElem = document.createElement('SPAN');\n\n labelElem.dataset.annId = id;\n labelElem.innerHTML = sanitizeModelHtml(label);\n labelElem.onclick = !disabled && this.handleClick;\n labelElem.onmouseover = this.handleHover;\n labelElem.onmouseout = this.handleCancelHover;\n\n if (isSideLabel(label)) {\n const spanOffset = firstSpan.offsetTop ? firstSpan.offsetTop : firstSpan.offsetParent.offsetTop;\n const top = spanOffset - this.textRef.scrollTop;\n const left = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;\n\n labelElem.dataset.freeform = true;\n labelElem.className = `sideAnnotation ${type}`;\n \n // Apply side annotation styles directly\n labelElem.style.position = 'absolute';\n labelElem.style.padding = '4px';\n labelElem.style.borderRadius = '4px';\n labelElem.style.marginLeft = '8px';\n labelElem.style.width = '180px';\n labelElem.style.whiteSpace = 'pre-wrap';\n labelElem.style.wordBreak = 'break-word';\n labelElem.style.border = '2px solid #ffffff';\n labelElem.style.fontSize = '14px';\n labelElem.style.fontStyle = 'normal';\n labelElem.style.fontWeight = 'normal';\n labelElem.style.top = `${top}px`;\n labelElem.style.left = `${left}px`;\n \n if (type === 'negative') {\n labelElem.style.backgroundColor = 'rgb(255, 204, 238)';\n } else if (type === 'positive') {\n labelElem.style.backgroundColor = 'rgb(153, 255, 153)';\n }\n \n // Add pseudo-element styles via CSS\n labelElem.style.setProperty('--before-border-width', '7px');\n labelElem.style.setProperty('--before-top', '5px');\n labelElem.style.setProperty('--before-right', '100%');\n if (type === 'negative') {\n labelElem.style.setProperty('--before-border-color', 'rgb(255, 204, 238)');\n } else if (type === 'positive') {\n labelElem.style.setProperty('--before-border-color', 'rgb(153, 255, 153)');\n }\n\n this.labelsRef.appendChild(labelElem);\n } else {\n labelElem.className = `annotationLabel ${type}`;\n \n // Apply annotation label styles directly\n labelElem.style.backgroundColor = 'rgb(242, 242, 242)';\n labelElem.style.padding = '2px';\n labelElem.style.position = 'absolute';\n labelElem.style.userSelect = 'none';\n labelElem.style.whiteSpace = 'nowrap';\n labelElem.style.top = '-10px';\n labelElem.style.left = '-2px';\n labelElem.style.fontSize = '12px';\n labelElem.style.fontStyle = 'normal';\n labelElem.style.fontWeight = 'normal';\n labelElem.style.lineHeight = '6px';\n labelElem.style.webkitUserSelect = 'none';\n labelElem.style.mozUserSelect = 'none';\n labelElem.style.msUserSelect = 'none';\n \n if (type === 'positive') {\n labelElem.style.color = 'rgb(0, 128, 0)';\n } else if (type === 'negative') {\n labelElem.style.color = 'rgb(204, 0, 136)';\n }\n \n firstSpan.appendChild(labelElem);\n }\n };\n\n createNewAnnotation: any = (label, type) => {\n const { selectedElems, selectionDetails } = this.state;\n const annotation = {\n id: [selectionDetails.start, selectionDetails.end, new Date().getTime()].join('-'),\n label,\n type,\n ...selectionDetails,\n };\n\n this.createDOMAnnotation(selectedElems, annotation);\n\n return annotation;\n };\n\n handleMenuClick: any = (newAnnotation) => {\n const { annotations, onChange } = this.props;\n const { annotation, annotationIndex } = this.state;\n const { type, text: label } = newAnnotation;\n\n if (annotation) {\n const updatedAnnotation = { ...annotation, label, type };\n const { type: oldType, label: oldLabel } = annotation;\n\n this.updateLabel(oldLabel, updatedAnnotation, type !== oldType && oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n } else {\n const newAnnotation = this.createNewAnnotation(label, type);\n\n annotations.push(newAnnotation);\n }\n\n onChange(annotations);\n this.handleClose();\n };\n\n editAnnotation: any = () => {\n this.setState({\n openedMenu: false,\n openedEditor: true,\n });\n };\n\n addAnnotation: any = (type) => {\n const { annotations, onChange } = this.props;\n const annotation = this.createNewAnnotation('', type);\n const labelElem = getLabelElement(annotation.id);\n\n annotations.push(annotation);\n\n this.setState({\n openedMenu: false,\n openedEditor: true,\n annotationIndex: annotations.length - 1,\n annotation,\n labelElem,\n });\n\n onChange(annotations);\n };\n\n updateLabel: any = (oldLabel, annotation, oldType) => {\n const { selectedElems, labelElem } = this.state;\n const { label, type } = annotation;\n\n if ((isSideLabel(label) && isSideLabel(oldLabel)) || (!isSideLabel(label) && !isSideLabel(oldLabel))) {\n labelElem.innerHTML = sanitizeModelHtml(label);\n\n if (oldType) {\n labelElem.classList.remove(oldType);\n labelElem.classList.add(type);\n\n selectedElems.forEach((elem) => {\n elem.classList.remove(oldType);\n elem.classList.add(type);\n });\n }\n } else if (isSideLabel(label) && !isSideLabel(oldLabel)) {\n selectedElems[0].removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n } else if (!isSideLabel(label) && isSideLabel(oldLabel)) {\n this.labelsRef.removeChild(labelElem);\n this.createDOMAnnotation(selectedElems, annotation);\n }\n };\n\n changeAnnotationType: any = (newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex, selectedElems } = this.state;\n const { type: oldType, label: oldLabel } = annotations[annotationIndex];\n const type = oldType === 'positive' ? 'negative' : 'positive';\n const updatedAnnotation = { ...annotations[annotationIndex], type, label: newLabel };\n\n selectedElems.forEach((span) => {\n span.classList.remove(oldType);\n span.classList.add(type);\n });\n\n this.updateLabel(oldLabel, updatedAnnotation, oldType);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n this.handleClose();\n };\n\n updateAnnotation: any = (oldLabel, newLabel) => {\n const { annotations, onChange } = this.props;\n const { annotationIndex } = this.state;\n const updatedAnnotation = { ...annotations[annotationIndex], label: newLabel };\n\n this.updateLabel(oldLabel, updatedAnnotation);\n annotations.splice(annotationIndex, 1, updatedAnnotation);\n\n onChange(annotations);\n };\n\n componentWillUnmount() {\n this.textRef.removeEventListener('scroll', this.adjustAnnotationsPosition);\n document.removeEventListener('selectionchange', this.handleSelectionChange);\n clearTimeout(this.selectionTimer);\n }\n\n render() {\n const {\n comment,\n customKeys,\n disabled,\n disabledMath,\n keypadMode,\n height,\n language,\n width,\n maxHeight,\n onCommentChange,\n predefinedAnnotations,\n text,\n } = this.props;\n const { anchorEl, annotation, openedMenu, openedEditor, selectionDetails } = this.state;\n\n const anchorOffset = anchorEl && (anchorEl.offsetTop ? anchorEl.offsetTop : anchorEl.offsetParent.offsetTop);\n const topOffset = this.textRef && anchorOffset ? anchorOffset - this.textRef.scrollTop - 8 : 0;\n const commentLabel = translator.t('extendedTextEntry.comment', { lng: language });\n\n return (\n <div>\n <Wrapper>\n <TextContainer\n style={{ width: width - 34, minHeight: height, maxHeight: maxHeight }}\n ref={(r) => (this.textRef = r)}\n onPointerDown={this.handlePointerDown}\n onMouseDown={!disabled ? clearSelection : () => {}}\n onMouseUp={!disabled ? this.handleSelection : () => {}}\n dangerouslySetInnerHTML={{ __html: sanitizeModelHtml(text) }}\n />\n <LabelsContainer ref={(r) => (this.labelsRef = r)} />\n </Wrapper>\n\n <CommentContainer label={commentLabel}>\n <EditableHtml\n className=\"prompt\"\n markup={comment || ''}\n onChange={onCommentChange}\n width={width && (width + 104).toString()}\n disabled={disabled}\n ariaLabel={commentLabel}\n language={language}\n pluginProps={{\n math: {\n disabled: disabledMath,\n customKeys: customKeys,\n keypadMode: keypadMode,\n controlledKeypadMode: false,\n },\n video: {\n disabled: true,\n },\n audio: {\n disabled: true,\n },\n textAlign: {\n disabled: true,\n },\n h3: {\n disabled: true,\n },\n }}\n />\n </CommentContainer>\n\n <AnnotationMenu\n anchorEl={anchorEl}\n open={openedMenu && !disabled}\n annotations={predefinedAnnotations}\n isNewAnnotation={!!selectionDetails}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onEdit={this.editAnnotation}\n onWrite={this.addAnnotation}\n onAnnotate={this.handleMenuClick}\n />\n\n <FreeformEditor\n anchorEl={this.textRef}\n open={openedEditor && !disabled}\n offset={topOffset}\n value={(annotation && annotation.label) || ''}\n type={annotation && annotation.type}\n onClose={this.handleClose}\n onDelete={this.deleteAnnotation}\n onSave={this.updateAnnotation}\n onTypeChange={this.changeAnnotationType}\n />\n </div>\n );\n }\n}\n\nexport default AnnotationEditor;\n","// @ts-nocheck\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\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 as FeedbackImport, Collapsible as CollapsibleImport, PreviewPrompt as PreviewPromptImport, UiLayout as UiLayoutImport } from '@pie-lib/render-ui';\n\nfunction isRenderableReactInteropType(value: any) {\n return (\n typeof value === 'function' ||\n (typeof value === 'object' && value !== null && typeof value.$$typeof === 'symbol')\n );\n}\n\nfunction unwrapReactInteropSymbol(maybeSymbol: any, namedExport?: string) {\n if (!maybeSymbol) return maybeSymbol;\n if (isRenderableReactInteropType(maybeSymbol)) return maybeSymbol;\n if (isRenderableReactInteropType(maybeSymbol.default)) return maybeSymbol.default;\n if (namedExport && isRenderableReactInteropType(maybeSymbol[namedExport])) {\n return maybeSymbol[namedExport];\n }\n if (namedExport && isRenderableReactInteropType(maybeSymbol[namedExport]?.default)) {\n return maybeSymbol[namedExport].default;\n }\n return maybeSymbol;\n}\nimport * as RenderUiNamespace from '@pie-lib/render-ui';\nconst renderUiNamespaceAny = RenderUiNamespace as any;\nconst renderUiDefaultMaybe = renderUiNamespaceAny['default'];\nconst renderUi =\n renderUiDefaultMaybe && typeof renderUiDefaultMaybe === 'object'\n ? renderUiDefaultMaybe\n : renderUiNamespaceAny;\nconst UiLayout = unwrapReactInteropSymbol(UiLayoutImport, 'UiLayout') || unwrapReactInteropSymbol(renderUi.UiLayout, 'UiLayout');\nconst PreviewPrompt = unwrapReactInteropSymbol(PreviewPromptImport, 'PreviewPrompt') || unwrapReactInteropSymbol(renderUi.PreviewPrompt, 'PreviewPrompt');\nconst Collapsible = unwrapReactInteropSymbol(CollapsibleImport, 'Collapsible') || unwrapReactInteropSymbol(renderUi.Collapsible, 'Collapsible');\nconst Feedback = unwrapReactInteropSymbol(FeedbackImport, 'Feedback') || unwrapReactInteropSymbol(renderUi.Feedback, 'Feedback');\nimport Translator from '@pie-lib/translator';\nimport AnnotationEditor from './annotation/annotation-editor.js';\n\nconst { translator } = Translator;\n\nconst log = debug('@pie-ui:extended-text-entry');\n\nconst MainContainer: any = styled(UiLayout)({\n backgroundColor: color.background(),\n color: color.text(),\n});\n\nconst StyledPrompt: any = styled(Typography)(({ theme }) => ({\n width: '100%',\n color: color.text(),\n marginBottom: theme.spacing(2),\n fontSize: 'inherit',\n display: 'block',\n}));\n\nconst TeacherInstructions: any = styled('div')(({ theme }) => ({\n marginBottom: theme.spacing(2),\n}));\n\nconst Editor: any = styled(EditableHtml)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n borderRadius: '4px',\n}));\n\nconst SrOnly: any = 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 idleSaveDelay: PropTypes.number,\n session: PropTypes.shape({\n value: PropTypes.string,\n annotations: PropTypes.array,\n comment: PropTypes.string,\n }).isRequired,\n };\n\n // Random rather than a counter: two versions of this element on one page would each count from 1.\n promptId = `ete-prompt-${Math.random().toString(36).slice(2, 10)}`;\n\n // The editor calls back on commit points (blur, `done` transactions, an idle pause), and the\n // custom element writes the session synchronously and defers only its\n // `session-changed` dispatch. Coalescing belongs on that dispatch, where a\n // teardown can flush it; holding the value here instead left `.session` stale\n // and unreadable by any other layer, so the callbacks pass straight through.\n render() {\n const { model, session, idleSaveDelay, onAnnotationsChange, onCommentChange, onValueChange } = 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 pasteFormattingDisabled,\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>{translator.t('extendedTextEntry.constructedResponseQuestion', { lng: model.language })}</SrOnly>\n\n {teacherInstructions && (\n <TeacherInstructions>\n {!animationsDisabled ? (\n <Collapsible\n labels={{ hidden: translator.t('common:showTeacherInstructions', { lng: model.language }), visible: translator.t('common:hideTeacherInstructions', { lng: model.language }) }}\n >\n {teacherInstructionsDiv}\n </Collapsible>\n ) : (\n teacherInstructionsDiv\n )}\n </TeacherInstructions>\n )}\n\n {prompt && (\n <StyledPrompt component={'span'} id={this.promptId}>\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={onCommentChange}\n width={width}\n height={height}\n maxHeight={maxHeight}\n disabled={disabledAnnotator}\n disabledMath={!mathInput}\n customKeys={customKeys}\n keypadMode={equationEditor}\n language={model.language}\n />\n ) : (\n <Editor\n className=\"response-area-editor\"\n onChange={onValueChange}\n idleSaveDelay={idleSaveDelay}\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 pasteFormatting: { disabled: pasteFormattingDisabled === true },\n }}\n languageCharactersProps={languageCharactersProps}\n // The prompt names the response; the generic name covers no prompt, or one with no text.\n ariaLabelledBy={prompt ? this.promptId : undefined}\n ariaLabel={translator.t('extendedTextEntry.response', { lng: model.language })}\n language={model.language}\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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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as e } from "../rolldown-runtime-CHQKHQ89.js";
|
|
2
2
|
import { I as t, N as n, b as r } from "../dist-DUB8o_9Z.js";
|
|
3
3
|
import { t as i } from "../browser-BfhCkXup.js";
|
|
4
|
-
import { t as a } from "../main-
|
|
4
|
+
import { t as a } from "../main-CzUVBN7Z.js";
|
|
5
5
|
import o from "react";
|
|
6
6
|
import { createRoot as s } from "react-dom/client";
|
|
7
7
|
var c = (0, (/* @__PURE__ */ e(i(), 1)).default)("pie-element:extended-text-entry:print"), l = (e, n) => {
|
|
@@ -46,7 +46,7 @@ var c = (0, (/* @__PURE__ */ e(i(), 1)).default)("pie-element:extended-text-entr
|
|
|
46
46
|
}
|
|
47
47
|
}, d = Object.freeze({
|
|
48
48
|
name: "@pie-element/extended-text-entry",
|
|
49
|
-
version: "16.1.
|
|
49
|
+
version: "16.1.1-next.20261016161500"
|
|
50
50
|
});
|
|
51
51
|
//#endregion
|
|
52
52
|
export { u as default, d as piePackage };
|