@pie-element/placement-ordering 14.1.2-next.5 → 14.1.3
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.json +1312 -0
- package/CHANGELOG.md +2444 -0
- package/LICENSE.md +5 -0
- package/README.md +57 -0
- package/configure/CHANGELOG.json +952 -0
- package/configure/CHANGELOG.md +2139 -0
- package/configure/lib/choice-editor.js +252 -0
- package/configure/lib/choice-editor.js.map +1 -0
- package/configure/lib/choice-tile.js +205 -0
- package/configure/lib/choice-tile.js.map +1 -0
- package/configure/lib/defaults.js +211 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/design.js +427 -0
- package/configure/lib/design.js.map +1 -0
- package/configure/lib/help.js +14 -0
- package/configure/lib/help.js.map +1 -0
- package/configure/lib/index.js +155 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/utils.js +108 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +26 -0
- package/controller/CHANGELOG.json +517 -0
- package/controller/CHANGELOG.md +1518 -0
- package/controller/lib/defaults.js +29 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +285 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/scoring.js +109 -0
- package/controller/lib/scoring.js.map +1 -0
- package/controller/package.json +15 -0
- package/docs/config-schema.json +2964 -0
- package/docs/config-schema.json.md +2190 -0
- package/docs/demo/config.js +8 -0
- package/docs/demo/generate.js +50 -0
- package/docs/demo/index.html +1 -0
- package/docs/demo/session.js +7 -0
- package/docs/pie-schema.json +1613 -0
- package/docs/pie-schema.json.md +973 -0
- package/icon.png +0 -0
- package/lib/index.js +122 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +32 -0
- package/lib/main.js.map +1 -0
- package/lib/ordering.js +165 -0
- package/lib/ordering.js.map +1 -0
- package/lib/placement-ordering.js +419 -0
- package/lib/placement-ordering.js.map +1 -0
- package/lib/tile.js +259 -0
- package/lib/tile.js.map +1 -0
- package/lib/tiler.js +165 -0
- package/lib/tiler.js.map +1 -0
- package/lib/utils.js +18 -0
- package/lib/utils.js.map +1 -0
- package/package.json +21 -88
- package/configure.js +0 -2
- package/controller.js +0 -1
- package/dist/author/choice-editor.d.ts +0 -39
- package/dist/author/choice-editor.js +0 -156
- package/dist/author/choice-tile.d.ts +0 -40
- package/dist/author/choice-tile.js +0 -132
- package/dist/author/defaults.d.ts +0 -213
- package/dist/author/defaults.js +0 -159
- package/dist/author/design.d.ts +0 -21
- package/dist/author/design.js +0 -273
- package/dist/author/help.d.ts +0 -11
- package/dist/author/index.d.ts +0 -45
- package/dist/author/index.js +0 -85
- package/dist/author/utils.d.ts +0 -15
- package/dist/author/utils.js +0 -62
- package/dist/browser/author/index.js +0 -46600
- package/dist/browser/author/index.js.map +0 -1
- package/dist/browser/browser-DHPggtaA.js +0 -376
- package/dist/browser/browser-DHPggtaA.js.map +0 -1
- package/dist/browser/controller/index.js +0 -242
- package/dist/browser/controller/index.js.map +0 -1
- package/dist/browser/delivery/index.js +0 -1035
- package/dist/browser/delivery/index.js.map +0 -1
- package/dist/browser/dist-D9ARZhQk.js +0 -1426
- package/dist/browser/dist-D9ARZhQk.js.map +0 -1
- package/dist/browser/drag-provider-C1slTlsc.js +0 -10555
- package/dist/browser/drag-provider-C1slTlsc.js.map +0 -1
- package/dist/browser/placement-ordering.css +0 -2
- package/dist/controller/defaults.d.ts +0 -31
- package/dist/controller/defaults.js +0 -25
- package/dist/controller/index.d.ts +0 -29
- package/dist/controller/index.js +0 -123
- package/dist/controller/scoring.d.ts +0 -27
- package/dist/controller/scoring.js +0 -30
- package/dist/delivery/index.d.ts +0 -26
- package/dist/delivery/index.js +0 -70
- package/dist/delivery/main.d.ts +0 -19
- package/dist/delivery/main.js +0 -22
- package/dist/delivery/ordering.d.ts +0 -18
- package/dist/delivery/ordering.js +0 -93
- package/dist/delivery/placement-ordering.d.ts +0 -28
- package/dist/delivery/placement-ordering.js +0 -213
- package/dist/delivery/tile.d.ts +0 -28
- package/dist/delivery/tile.js +0 -165
- package/dist/delivery/tiler.d.ts +0 -42
- package/dist/delivery/tiler.js +0 -89
- package/dist/delivery/utils.d.ts +0 -9
- package/dist/delivery/utils.js +0 -8
- package/dist/index.d.ts +0 -1
- package/dist/index.iife.d.ts +0 -8
- package/dist/index.iife.js +0 -152
- package/dist/index.js +0 -2
- package/dist/runtime-support.d.ts +0 -12
- package/dist/runtime-support.js +0 -12
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../shared/player-events/dist/index.js","../../../../../lib-react/icons/dist/correct-response-icon.js","../../../../../lib-react/correct-answer-toggle/dist/expander.js","../../../../../lib-react/correct-answer-toggle/dist/index.js","../../../../../lib-react/drag/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js","../../../../../lib-react/drag/dist/placeholder.js","../../../src/delivery/tile.tsx","../../../src/delivery/tiler.tsx","../../../src/delivery/ordering.ts","../../../src/delivery/utils.ts","../../../src/delivery/placement-ordering.tsx","../../../src/delivery/main.tsx","../../../src/delivery/index.ts"],"sourcesContent":["//#region src/index.ts\nvar e = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"model-set\";\n\t}\n\tconstructor(t, n, r) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tcomposed: !0,\n\t\t\tdetail: {\n\t\t\t\tcomplete: n,\n\t\t\t\tcomponent: t,\n\t\t\t\thasModel: r\n\t\t\t}\n\t\t}), this.component = t, this.complete = n;\n\t}\n}, t = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"session-changed\";\n\t}\n\tconstructor(t, n) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tcomposed: !0,\n\t\t\tdetail: {\n\t\t\t\tcomplete: n,\n\t\t\t\tcomponent: t\n\t\t\t}\n\t\t}), this.component = t, this.complete = n;\n\t}\n};\n//#endregion\nexport { e as ModelSetEvent, t as SessionChangedEvent };\n","import \"react\";\nimport e from \"prop-types\";\nimport { jsx as t, jsxs as n } from \"react/jsx-runtime\";\nimport { styled as r } from \"@mui/material/styles\";\n//#region src/correct-response-icon.tsx\nvar i = ({ bgFill: e, fgFill: r }) => /* @__PURE__ */ n(\"svg\", {\n\tpreserveAspectRatio: \"xMinYMin meet\",\n\tversion: \"1.1\",\n\tviewBox: \"-283 359 34 35\",\n\tstyle: { enableBackground: \"new -283 359 34 35\" },\n\tchildren: [\n\t\t/* @__PURE__ */ t(\"circle\", {\n\t\t\tcx: \"-266\",\n\t\t\tcy: \"375.9\",\n\t\t\tr: \"14\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\td: \"M-280.5,375.9c0-8,6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5s-6.5,14.5-14.5,14.5S-280.5,383.9-280.5,375.9z\\n M-279.5,375.9c0,7.4,6.1,13.5,13.5,13.5c7.4,0,13.5-6.1,13.5-13.5s-6.1-13.5-13.5-13.5C-273.4,362.4-279.5,368.5-279.5,375.9z\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"polygon\", {\n\t\t\tpoints: \"-265.4,383.1 -258.6,377.2 -261.2,374.2 -264.3,376.9 -268.9,368.7 -272.4,370.6\",\n\t\t\tfill: r\n\t\t})\n\t]\n});\ni.propTypes = {\n\tbgFill: e.string.isRequired,\n\tfgFill: e.string.isRequired\n};\nvar a = ({ bgFill: e, fgFill: r, borderFill: i }) => /* @__PURE__ */ n(\"svg\", {\n\tpreserveAspectRatio: \"xMinYMin meet\",\n\tversion: \"1.1\",\n\tviewBox: \"-129.5 127 34 35\",\n\tstyle: { enableBackground: \"new -129.5 127 34 35\" },\n\tchildren: [\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\tstyle: {\n\t\t\t\tfill: \"#D0CAC5\",\n\t\t\t\tstroke: \"#E6E3E0\",\n\t\t\t\tstrokeWidth: .75,\n\t\t\t\tstrokeMiterlimit: 10\n\t\t\t},\n\t\t\td: \"M-112.9,160.4c-8.5,0-15.5-6.9-15.5-15.5c0-8.5,6.9-15.5,15.5-15.5s15.5,6.9,15.5,15.5\\n C-97.4,153.5-104.3,160.4-112.9,160.4z\"\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\tstyle: {\n\t\t\t\tfill: \"#B3ABA4\",\n\t\t\t\tstroke: \"#CDC7C2\",\n\t\t\t\tstrokeWidth: .5,\n\t\t\t\tstrokeMiterlimit: 10\n\t\t\t},\n\t\t\td: \"M-113.2,159c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-105.2,159-113.2,159z\"\n\t\t}),\n\t\t/* @__PURE__ */ t(\"circle\", {\n\t\t\tcx: \"-114.2\",\n\t\t\tcy: \"143.5\",\n\t\t\tr: \"14\",\n\t\t\tfill: e\n\t\t}),\n\t\t/* @__PURE__ */ t(\"path\", {\n\t\t\td: \"M-114.2,158c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-106.2,158-114.2,158z\\n M-114.2,130c-7.4,0-13.5,6.1-13.5,13.5s6.1,13.5,13.5,13.5s13.5-6.1,13.5-13.5S-106.8,130-114.2,130z\",\n\t\t\tfill: i\n\t\t}),\n\t\t/* @__PURE__ */ t(\"polygon\", {\n\t\t\tpoints: \"-114.8,150.7 -121.6,144.8 -119,141.8 -115.9,144.5 -111.3,136.3 -107.8,138.2\",\n\t\t\tfill: r\n\t\t})\n\t]\n});\na.propTypes = {\n\tbgFill: e.string.isRequired,\n\tfgFill: e.string.isRequired,\n\tborderFill: e.string.isRequired\n};\nvar o = r(\"div\")(({ size: e }) => ({\n\twidth: e || \"25px\",\n\theight: e || \"25px\"\n})), s = ({ open: e, size: n }) => /* @__PURE__ */ t(o, {\n\tsize: n,\n\tchildren: e ? /* @__PURE__ */ t(i, {\n\t\tbgFill: \"#bce2ff\",\n\t\tfgFill: \"#1a9cff\"\n\t}) : /* @__PURE__ */ t(a, {\n\t\tbgFill: \"white\",\n\t\tfgFill: \"#1a9cff\",\n\t\tborderFill: \"#bce2ff\"\n\t})\n});\ns.propTypes = {\n\topen: e.bool,\n\tsize: e.string\n}, s.defaultProps = { open: !1 };\n//#endregion\nexport { s as default };\n","import { styled as e } from \"@mui/material/styles\";\nimport { CSSTransition as t } from \"react-transition-group\";\nimport { jsx as n } from \"react/jsx-runtime\";\nimport { useRef as r } from \"react\";\nimport i from \"prop-types\";\n//#region src/expander.tsx\nvar a = \"height ease-in 300ms, opacity ease-in 300ms\", o = e(\"div\")(() => ({\n\tposition: \"relative\",\n\theight: 0,\n\toverflow: \"hidden\",\n\tdisplay: \"flex\",\n\tvisibility: \"hidden\",\n\twidth: 0,\n\t\"&.enter\": {\n\t\ttransition: a,\n\t\topacity: 1,\n\t\theight: \"auto\",\n\t\twidth: \"auto\",\n\t\tvisibility: \"visible\",\n\t\tminHeight: \"25px\"\n\t},\n\t\"&.enter-done\": {\n\t\theight: \"auto\",\n\t\tvisibility: \"visible\",\n\t\twidth: \"auto\",\n\t\tminHeight: \"25px\"\n\t},\n\t\"&.exit\": {\n\t\ttransition: a,\n\t\topacity: 0,\n\t\theight: 0,\n\t\tvisibility: \"visible\",\n\t\twidth: 0\n\t},\n\t\"&.exit-done\": {\n\t\topacity: 0,\n\t\tvisibility: \"hidden\",\n\t\theight: 0,\n\t\twidth: 0\n\t}\n})), s = (e) => {\n\tlet { show: i, children: a, className: s } = e, c = r(null);\n\treturn /* @__PURE__ */ n(t, {\n\t\tnodeRef: c,\n\t\tin: i,\n\t\tappear: !0,\n\t\tmountOnEnter: !1,\n\t\ttimeout: 300,\n\t\tclassNames: {\n\t\t\tenter: \"enter\",\n\t\t\tenterDone: \"enter-done\",\n\t\t\texit: \"exit\",\n\t\t\texitDone: \"exit-done\"\n\t\t},\n\t\tchildren: /* @__PURE__ */ n(o, {\n\t\t\tref: c,\n\t\t\tclassName: s,\n\t\t\tchildren: a\n\t\t})\n\t});\n};\ns.propTypes = {\n\tshow: i.bool.isRequired,\n\tclassName: i.string,\n\tchildren: i.oneOfType([i.arrayOf(i.node), i.node]).isRequired\n};\n//#endregion\nexport { s as default };\n","import e from \"./expander.js\";\nimport { styled as t } from \"@mui/material/styles\";\nimport { CSSTransition as n } from \"react-transition-group\";\nimport { CorrectResponse as r } from \"@pie-lib/icons\";\nimport * as i from \"@pie-lib/render-ui\";\nimport { Readable as a, color as o } from \"@pie-lib/render-ui\";\nimport { jsx as s, jsxs as c } from \"react/jsx-runtime\";\nimport l from \"react\";\nimport u from \"prop-types\";\nimport d from \"@pie-lib/translator\";\n//#region src/index.tsx\nfunction f(e) {\n\treturn typeof e == \"function\" || typeof e == \"object\" && !!e && typeof e.$$typeof == \"symbol\";\n}\nfunction p(e, t) {\n\treturn !e || f(e) ? e : f(e.default) ? e.default : t && f(e[t]) ? e[t] : t && f(e[t]?.default) ? e[t].default : e;\n}\nvar m = p(a, \"Readable\") || p(_.Readable, \"Readable\"), h = i, g = h.default, _ = g && typeof g == \"object\" ? g : h, { translator: v } = d, y = {\n\tWebkitTouchCallout: \"none\",\n\tWebkitUserSelect: \"none\",\n\tKhtmlUserSelect: \"none\",\n\tMozUserSelect: \"none\",\n\tmsUserSelect: \"none\",\n\tuserSelect: \"none\"\n}, b = t(\"div\")(() => ({\n\twidth: \"100%\",\n\tcursor: \"pointer\"\n})), x = t(\"div\")(() => ({\n\tmargin: \"0 auto\",\n\ttextAlign: \"center\",\n\tdisplay: \"flex\"\n})), S = t(\"div\")(() => ({\n\twidth: \"fit-content\",\n\tminWidth: \"140px\",\n\talignSelf: \"center\",\n\tverticalAlign: \"middle\",\n\tcolor: `var(--correct-answer-toggle-label-color, ${o.text()})`,\n\tfontWeight: \"normal\",\n\t...y\n})), C = t(\"div\")(() => ({\n\tposition: \"absolute\",\n\twidth: \"25px\",\n\t\"&.enter\": { opacity: \"0\" },\n\t\"&.enter-active\": {\n\t\topacity: \"1\",\n\t\ttransition: \"opacity 0.3s ease-in\"\n\t},\n\t\"&.exit\": { opacity: \"1\" },\n\t\"&.exit-active\": {\n\t\topacity: \"0\",\n\t\ttransition: \"opacity 0.3s ease-in\"\n\t}\n})), w = t(\"div\")(() => ({\n\twidth: \"25px\",\n\tmarginRight: \"5px\",\n\tdisplay: \"flex\",\n\talignItems: \"center\"\n})), T = class t extends l.Component {\n\tstatic propTypes = {\n\t\tonToggle: u.func,\n\t\ttoggled: u.bool,\n\t\tshow: u.bool,\n\t\thideMessage: u.string,\n\t\tshowMessage: u.string,\n\t\tclassName: u.string,\n\t\tlanguage: u.string\n\t};\n\tstatic defaultProps = {\n\t\tshowMessage: \"Show correct answer\",\n\t\thideMessage: \"Hide correct answer\",\n\t\tshow: !1,\n\t\ttoggled: !1\n\t};\n\tconstructor(e) {\n\t\tsuper(e), this.state = { show: e.show }, this.openIconRef = l.createRef(), this.closedIconRef = l.createRef(), t.defaultProps = {\n\t\t\t...t.defaultProps,\n\t\t\tshowMessage: v.t(\"common:showCorrectAnswer\", { lng: e.language }),\n\t\t\thideMessage: v.t(\"common:hideCorrectAnswer\", { lng: e.language })\n\t\t};\n\t}\n\tonClick() {\n\t\tthis.props.onToggle(!this.props.toggled);\n\t}\n\tonTouch(e) {\n\t\te.preventDefault(), this.props.onToggle(!this.props.toggled);\n\t}\n\tUNSAFE_componentWillReceiveProps(e) {\n\t\tthis.setState({ show: e.show }), e.language !== this.props?.language && (t.defaultProps = {\n\t\t\t...t.defaultProps,\n\t\t\tshowMessage: v.t(\"common:showCorrectAnswer\", { lng: e.language }),\n\t\t\thideMessage: v.t(\"common:hideCorrectAnswer\", { lng: e.language })\n\t\t});\n\t}\n\trender() {\n\t\tlet { className: t, toggled: i, hideMessage: a, showMessage: o } = this.props;\n\t\treturn /* @__PURE__ */ s(b, {\n\t\t\tclassName: t,\n\t\t\tchildren: /* @__PURE__ */ s(e, {\n\t\t\t\tshow: this.state.show,\n\t\t\t\tchildren: /* @__PURE__ */ c(x, {\n\t\t\t\t\tonClick: this.onClick.bind(this),\n\t\t\t\t\tonTouchEnd: this.onTouch.bind(this),\n\t\t\t\t\tchildren: [/* @__PURE__ */ c(w, { children: [/* @__PURE__ */ s(n, {\n\t\t\t\t\t\tnodeRef: this.openIconRef,\n\t\t\t\t\t\ttimeout: 400,\n\t\t\t\t\t\tin: i,\n\t\t\t\t\t\texit: !i,\n\t\t\t\t\t\tclassNames: {\n\t\t\t\t\t\t\tenter: \"enter\",\n\t\t\t\t\t\t\tenterActive: \"enter-active\",\n\t\t\t\t\t\t\texit: \"exit\",\n\t\t\t\t\t\t\texitActive: \"exit-active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(C, {\n\t\t\t\t\t\t\tref: this.openIconRef,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ s(r, { open: i }, \"correct-open\")\n\t\t\t\t\t\t})\n\t\t\t\t\t}), /* @__PURE__ */ s(n, {\n\t\t\t\t\t\tnodeRef: this.closedIconRef,\n\t\t\t\t\t\ttimeout: 5e3,\n\t\t\t\t\t\tin: !i,\n\t\t\t\t\t\texit: i,\n\t\t\t\t\t\tclassNames: {\n\t\t\t\t\t\t\tenter: \"enter\",\n\t\t\t\t\t\t\tenterActive: \"enter-active\",\n\t\t\t\t\t\t\texit: \"exit\",\n\t\t\t\t\t\t\texitActive: \"exit-active\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(C, {\n\t\t\t\t\t\t\tref: this.closedIconRef,\n\t\t\t\t\t\t\tchildren: /* @__PURE__ */ s(r, { open: i }, \"correct-closed\")\n\t\t\t\t\t\t})\n\t\t\t\t\t})] }), /* @__PURE__ */ s(m, {\n\t\t\t\t\t\tfalse: !0,\n\t\t\t\t\t\tchildren: /* @__PURE__ */ s(S, {\n\t\t\t\t\t\t\t\"aria-hidden\": !this.state.show,\n\t\t\t\t\t\t\tchildren: i ? a : o\n\t\t\t\t\t\t})\n\t\t\t\t\t})]\n\t\t\t\t})\n\t\t\t})\n\t\t});\n\t}\n};\n//#endregion\nexport { T as CorrectAnswerToggle, T as default };\n","//#region ../../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs\nfunction e(t) {\n\tvar n, r, i = \"\";\n\tif (typeof t == \"string\" || typeof t == \"number\") i += t;\n\telse if (typeof t == \"object\") if (Array.isArray(t)) {\n\t\tvar a = t.length;\n\t\tfor (n = 0; n < a; n++) t[n] && (r = e(t[n])) && (i && (i += \" \"), i += r);\n\t} else for (r in t) t[r] && (i && (i += \" \"), i += r);\n\treturn i;\n}\nfunction t() {\n\tfor (var t, n, r = 0, i = \"\", a = arguments.length; r < a; r++) (t = arguments[r]) && (n = e(t)) && (i && (i += \" \"), i += n);\n\treturn i;\n}\n//#endregion\nexport { t as default };\n","import e from \"./node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js\";\nimport \"react\";\nimport { styled as t } from \"@mui/material/styles\";\nimport n from \"prop-types\";\nimport { color as r } from \"@pie-lib/render-ui\";\nimport { grey as i } from \"@mui/material/colors\";\nimport { jsx as a } from \"react/jsx-runtime\";\n//#region src/placeholder.tsx\nvar o = t(\"div\")(({ theme: e }) => ({\n\t\"&.placeholder\": {\n\t\tWebkitTouchCallout: \"none\",\n\t\tWebkitUserSelect: \"none\",\n\t\tKhtmlUserSelect: \"none\",\n\t\tMozUserSelect: \"none\",\n\t\tMsUserSelect: \"none\",\n\t\tuserSelect: \"none\",\n\t\twidth: \"100%\",\n\t\theight: \"100%\",\n\t\tbackground: r.white(),\n\t\ttransition: \"background-color 200ms linear, border-color 200ms linear\",\n\t\tboxSizing: \"border-box\",\n\t\tdisplay: \"grid\",\n\t\tgridRowGap: e.spacing(1),\n\t\tgridColumnGap: e.spacing(1),\n\t\tpadding: e.spacing(1),\n\t\tborder: `2px dashed ${r.black()}`\n\t},\n\t\"&.disabled\": {\n\t\tboxShadow: \"none\",\n\t\tbackground: e.palette.background.paper\n\t},\n\t\"&.over\": {\n\t\tborder: `1px solid ${i[500]}`,\n\t\tbackgroundColor: `${i[300]}`\n\t},\n\t\"&.board\": {\n\t\tpadding: e.spacing(1),\n\t\tdisplay: \"flex\",\n\t\tflexWrap: \"wrap\",\n\t\talignItems: \"center\",\n\t\tminHeight: \"100px\",\n\t\tjustifyContent: \"center\",\n\t\toverflow: \"hidden\",\n\t\ttouchAction: \"none\",\n\t\tbackgroundColor: r.backgroundDark()\n\t},\n\t\"&.categorizeBoard\": {\n\t\tpadding: e.spacing(.5),\n\t\tdisplay: \"flex\",\n\t\tflexWrap: \"wrap\",\n\t\talignItems: \"center\",\n\t\tminHeight: \"100px\",\n\t\tjustifyContent: \"center\",\n\t\toverflow: \"hidden\",\n\t\ttouchAction: \"none\",\n\t\tbackgroundColor: r.backgroundDark()\n\t},\n\t\"&.verticalPool\": {\n\t\tdisplay: \"flex\",\n\t\tflexFlow: \"column wrap\"\n\t}\n})), s = (t) => {\n\tlet { children: n, className: i, isOver: s, type: c, grid: l, disabled: u, choiceBoard: d, isCategorize: f, isVerticalPool: p, minHeight: m, extraStyles: h } = t, g = e(\"placeholder\", u && \"disabled\", s && \"over\", c, i), _ = {};\n\tif (l && l.columns && (_.gridTemplateColumns = `repeat(${l.columns}, 1fr)`), l && l.rows) {\n\t\tlet e = l.rowsRepeatValue || \"1fr\";\n\t\t_.gridTemplateRows = `repeat(${l.rows}, ${e})`;\n\t}\n\tc === \"choice\" && (_.border = `1px solid ${r.borderLight()}`, _.background = r.backgroundDark());\n\tlet v = f ? \"categorizeBoard\" : \"board\";\n\treturn /* @__PURE__ */ a(o, {\n\t\tstyle: {\n\t\t\t..._,\n\t\t\tminHeight: m,\n\t\t\t...h\n\t\t},\n\t\tclassName: e(d ? v : g, p && \"verticalPool\"),\n\t\tchildren: n\n\t});\n};\ns.propTypes = {\n\tchoiceBoard: n.bool,\n\tgrid: n.shape({\n\t\tcolumns: n.number,\n\t\trows: n.number,\n\t\trowsRepeatValue: n.string\n\t}),\n\tchildren: n.oneOfType([n.arrayOf(n.node), n.node]).isRequired,\n\tclassName: n.string,\n\tisOver: n.bool,\n\tindex: n.number,\n\ttype: n.string,\n\tdisabled: n.bool,\n\tisCategorize: n.bool,\n\tisVerticalPool: n.bool,\n\tminHeight: n.number\n};\n//#endregion\nexport { s as default };\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/tile.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { styled } from '@mui/material/styles';\n\nimport { PlaceHolder } from '@pie-lib/drag';\nimport { color } from '@pie-lib/render-ui';\n\nconst log = debug('pie-elements:placement-ordering:tile');\n\nconst StyledNumberContainer: any = styled('div')(({ theme }) => ({\n width: '100%',\n fontSize: theme.typography.fontSize + 4,\n textAlign: 'center',\n color: `rgba(${theme.palette.common.black}, 0.6)`,\n}));\n\nconst Holder = ({ type, index, isOver, disabled }) => (\n <PlaceHolder type={type} isOver={isOver} disabled={disabled}>\n {type === 'target' && index !== undefined && <StyledNumberContainer>{index}</StyledNumberContainer>}\n </PlaceHolder>\n);\n\nHolder.propTypes = {\n type: PropTypes.string,\n index: PropTypes.number,\n isOver: PropTypes.bool,\n disabled: PropTypes.bool,\n};\n\nconst StyledTileContent: any = styled('div')(({ theme, isDragging, isOver, disabled, outcome, label, type }) => ({\n cursor: disabled ? 'not-allowed' : 'grab',\n width: '100%',\n height: '100%',\n padding: '10px',\n boxSizing: 'border-box',\n overflow: 'hidden',\n border: (type === 'choice' || type === 'target') ? `1px solid ${theme.palette.grey[400]}` : '1px solid transparent',\n backgroundColor: (type === 'choice' || type === 'target') ? color.background() : 'transparent',\n transition: (type === 'choice' || type === 'target') ? 'background-color 150ms ease, border-color 150ms ease, opacity 150ms ease' : 'none',\n pointerEvents: 'none',\n userSelect: 'none',\n\n ...((type === 'choice' || type === 'target') && {\n '&:hover': {\n backgroundColor: disabled ? color.background() : color.secondary(),\n borderColor: disabled ? theme.palette.grey[400] : theme.palette.primary.main,\n transform: disabled ? 'none' : 'scale(1.02)',\n },\n }),\n\n // Apply conditional styles based on props (only if not empty spacing tile)\n ...((type === 'choice' || type === 'target') && isOver && !disabled && {\n opacity: 0.4,\n backgroundColor: color.primaryLight(),\n borderColor: theme.palette.primary.main,\n borderStyle: 'dashed',\n transform: 'scale(1.05)',\n }),\n\n ...((type === 'choice' || type === 'target') && isDragging && !disabled && {\n opacity: 0.6,\n backgroundColor: color.secondaryLight(),\n transform: 'scale(1.05) rotate(2deg)',\n boxShadow: '0 8px 16px rgba(0,0,0,0.2)',\n cursor: 'grabbing',\n }),\n\n ...((type === 'choice' || type === 'target') && disabled && {\n cursor: 'not-allowed',\n '&:hover': {\n backgroundColor: color.background(),\n transform: 'none',\n },\n }),\n\n ...((type === 'choice' || type === 'target') && outcome === 'incorrect' && {\n border: `1px solid ${color.incorrect()}`,\n }),\n\n ...((type === 'choice' || type === 'target') && outcome === 'correct' && {\n border: `1px solid ${color.correct()}`,\n }),\n\n ...(!label && {\n border: 'none',\n '&:hover': {\n backgroundColor: 'unset',\n },\n }),\n}));\n\nconst TileContent = (props) => {\n const { type, isDragging, empty, isOver, label, disabled, outcome, guideIndex } = props;\n\n if (empty) {\n return <Holder type={type} index={guideIndex} isOver={isOver} disabled={disabled} />;\n } else {\n return (\n <StyledTileContent\n type={type}\n isDragging={isDragging}\n isOver={isOver}\n disabled={disabled}\n outcome={outcome}\n label={label}\n dangerouslySetInnerHTML={{ __html: label }}\n />\n );\n }\n};\n\nexport const Tile = (props) => {\n const {\n label,\n type,\n id,\n empty,\n disabled,\n outcome,\n index,\n guideIndex,\n instanceId,\n draggable,\n tileIndex,\n } = props;\n\n // Use type + tileIndex in the IDs to guarantee uniqueness in all modes.\n // In includeTargets mode, a choice (id:'c1', type:'choice') and a target (id:'c1', type:'target')\n // can coexist — the type differentiates them.\n // tileIndex (array position from tiler) ensures empty placeholders are also unique.\n const dragId = `tile-${type}-${id != null ? id : 'empty'}-${tileIndex}-${instanceId}`;\n const dropId = `drop-${type}-${id != null ? id : 'empty'}-${tileIndex}-${instanceId}`;\n\n const {\n attributes,\n listeners,\n setNodeRef: setDragRef,\n transform,\n isDragging,\n } = useDraggable({\n id: dragId,\n data: {\n id,\n type,\n instanceId,\n value: label,\n index\n },\n disabled: !draggable || disabled,\n });\n\n const {\n setNodeRef: setDropRef,\n isOver: dropIsOver,\n } = useDroppable({\n id: dropId,\n data: {\n id,\n type,\n instanceId,\n value: label,\n index\n },\n // Disable droppable on the tile currently being dragged so closestCenter\n // cannot pick it as the drop target (prevents self-collision and wrong matches).\n disabled: isDragging,\n });\n\n const ref = React.useRef(null);\n\n React.useEffect(() => {\n const currentRef = ref.current;\n\n const handleTouchStart = (e) => {\n e.preventDefault(); // Prevent the default touch event behavior\n };\n\n if (currentRef) {\n currentRef.addEventListener('touchstart', handleTouchStart, { passive: false });\n }\n\n return () => {\n if (currentRef) {\n currentRef.removeEventListener('touchstart', handleTouchStart);\n }\n };\n }, []);\n\n const setRefs = (element) => {\n ref.current = element;\n setDragRef(element);\n setDropRef(element);\n };\n\n log('[render], props: ', props);\n\n const style = {\n transform: transform ? `translate3d(${transform.x}px, ${transform.y}px, 0)` : undefined,\n boxSizing: 'border-box',\n overflow: 'visible',\n padding: 0,\n margin: 0,\n textAlign: 'center',\n pointerEvents: 'auto',\n cursor: disabled ? 'not-allowed' : (isDragging ? 'grabbing' : 'grab'),\n zIndex: isDragging ? 1000 : 'auto',\n willChange: isDragging ? 'transform' : 'auto',\n };\n\n return (\n <div\n ref={setRefs}\n style={style}\n {...(draggable && !disabled ? { ...listeners, ...attributes } : {})}\n >\n <TileContent\n label={label}\n id={id}\n empty={empty}\n index={index}\n guideIndex={guideIndex}\n isOver={dropIsOver}\n isDragging={isDragging}\n disabled={disabled}\n outcome={outcome}\n type={type}\n />\n </div>\n );\n};\n\nTile.propTypes = {\n id: PropTypes.any,\n label: PropTypes.string,\n isOver: PropTypes.bool,\n type: PropTypes.string,\n empty: PropTypes.bool,\n disabled: PropTypes.bool,\n outcome: PropTypes.string,\n index: PropTypes.number,\n guideIndex: PropTypes.number,\n instanceId: PropTypes.any,\n draggable: PropTypes.bool,\n tileIndex: PropTypes.number,\n};\n\nexport default Tile;\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/tiler.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport { styled } from '@mui/material/styles';\n\nimport Tile from './tile.js';\n\nconst types = {\n choiceLabel: PropTypes.string,\n targetLabel: PropTypes.string,\n disabled: PropTypes.bool,\n tiles: PropTypes.array.isRequired,\n tileSize: PropTypes.string,\n addGuide: PropTypes.bool,\n};\n\nconst defaults = {\n tileSize: '1fr',\n disabled: false,\n addGuide: false,\n};\n\nconst buildTiles = (props) => {\n const T = (tile, index) => {\n tile.instanceId = props.instanceId;\n tile.disabled = props.disabled;\n tile.guideIndex = props.addGuide ? tile.index + 1 : undefined;\n // unique key for dnd-kit IDs\n tile.tileIndex = index;\n\n if (props.includeTargets) {\n return <Tile {...tile} key={index} />;\n } else {\n return tile.type === 'choice' ? <Tile {...tile} key={index} /> : <Tile {...tile} label=\"\" key={index} />;\n }\n };\n\n T.propTypes = { ...types };\n return T;\n};\n\nconst StyledHTilerContainer: any = styled('div')(({ theme, includeTargets }) => ({\n display: 'grid',\n paddingBottom: theme.spacing(2),\n ...(includeTargets && {\n gridGap: '10px',\n }),\n}));\n\nconst StyledChoiceLabel: any = styled('div')({\n textAlign: 'center',\n});\n\nconst StyledTargetLabel: any = styled('div')({\n textAlign: 'center',\n gridRow: '3/4',\n});\n\nconst StyledVTilerContainer: any = styled('div')(({ includeTargets }) => ({\n gridAutoFlow: 'column',\n display: 'grid',\n ...(includeTargets && {\n gridGap: '10px',\n }),\n}));\n\nconst StyledVChoiceLabel: any = styled('div')({\n gridColumn: '1/2',\n textAlign: 'center',\n});\n\nconst StyledVTargetLabel: any = styled('div')({\n gridColumn: '2/3',\n textAlign: 'center',\n});\n\nexport class HorizontalTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, tileSize } = this.props;\n\n const rows = includeTargets ? `auto ${tileSize} auto ${tileSize}` : `auto ${tileSize} auto`;\n const columns = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: includeTargets\n ? `repeat(${columns}, ${tileSize})`\n : `auto repeat(${Math.floor(columns / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n gridTemplateRows: rows,\n };\n\n const labelStyle = {\n gridColumn: `1/${columns + 1}`,\n };\n\n return (\n <StyledHTilerContainer includeTargets={includeTargets} style={style}>\n <StyledChoiceLabel\n style={labelStyle}\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n {includeTargets && (\n <StyledTargetLabel style={labelStyle} dangerouslySetInnerHTML={{ __html: targetLabel }} />\n )}\n {tiles.map(buildTiles(this.props))}\n </StyledHTilerContainer>\n );\n }\n}\n\nexport class VerticalTiler extends React.Component {\n static propTypes = { ...types };\n static defaultProps = { ...defaults };\n render() {\n const { includeTargets, choiceLabelEnabled, choiceLabel, targetLabel, tiles, tileSize } = this.props;\n\n const columns = includeTargets ? 2 : 1;\n const rows = includeTargets ? tiles.length / 2 : tiles.length;\n\n const style = {\n gridTemplateColumns: `repeat(${columns}, ${tileSize})`,\n gridTemplateRows: includeTargets\n ? `auto repeat(${rows}, ${tileSize})`\n : `auto auto repeat(${Math.floor(rows / 2) - 1}, ${tileSize} 10px) ${tileSize} auto`,\n };\n\n return (\n <StyledVTilerContainer includeTargets={includeTargets} style={style}>\n <StyledVChoiceLabel\n dangerouslySetInnerHTML={{ __html: choiceLabelEnabled ? choiceLabel : '' }}\n />\n\n {includeTargets && <StyledVTargetLabel dangerouslySetInnerHTML={{ __html: targetLabel }} />}\n {tiles.map(buildTiles(this.props))}\n </StyledVTilerContainer>\n );\n }\n}\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/ordering.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport { assign, cloneDeep, isEmpty, map } from '@pie-element/shared-lodash';\nimport debug from 'debug';\n\nconst log = debug('pie-elements:placement-ordering:ordering');\n\nexport const push = (arr, fromIndex, toIndex) => {\n const movedItem = arr.find((item, index) => index === fromIndex);\n const remainingItems = arr.filter((item, index) => index !== fromIndex);\n\n return [...remainingItems.slice(0, toIndex), movedItem, ...remainingItems.slice(toIndex)];\n};\n\nexport const swap = (arr, fromIndex, toIndex) => {\n log('[swap]', arr, fromIndex, toIndex);\n if (!arr || arr.length <= 1 || fromIndex === undefined || toIndex === undefined) {\n throw new Error(`swap requires a non-empty array, fromIndex, toIndex: ${arr}, ${fromIndex} ${toIndex}`);\n }\n const update = cloneDeep(arr);\n const tmp = arr[toIndex];\n update[toIndex] = update[fromIndex];\n update[fromIndex] = tmp;\n return update;\n};\n\nfunction removeResponse(state, targetTile) {\n const update = cloneDeep(state.response);\n\n if (update[targetTile.index] === targetTile.id) {\n update[targetTile.index] = undefined;\n } else {\n throw new Error(\n `Tried to remove from index: ${targetTile.index}, but the id doesn't match: array: ${update}, target: ${targetTile.id}`,\n );\n }\n return update;\n}\n\nfunction updateResponse(state, from, to) {\n const { response, opts } = state;\n const update = cloneDeep(response);\n if (opts.includeTargets) {\n if (from.type === 'choice' && to.type === 'target') {\n update[to.index] = from.id;\n return update;\n } else if (from.type === 'target' && to.type === 'choice') {\n update[from.index] = undefined;\n return update;\n } else if (from.type === 'target' && to.type === 'target') {\n return swap(response, from.index, to.index);\n } else {\n log('do nothing to the response');\n return response;\n }\n } else {\n const fromIndex = state.response.findIndex((r) => r !== undefined && r === from.id);\n const toIndex = state.response.findIndex((r) => r !== undefined && r === to.id);\n log('fromIndex: ', fromIndex, 'toIndex:', toIndex);\n return push(state.response, fromIndex, toIndex);\n }\n}\n\nfunction buildTiles(choices, response, outcomes, opts) {\n if (opts.includeTargets) {\n const targets = [];\n for (let i = 0; i < response.length; i++) {\n const r = response[i];\n\n const choice = choices.find((c) => r !== undefined && r !== null && c.id === r);\n //TODO: index needs to match too!!\n const outcome = outcomes[i];\n\n const out = Object.assign({ type: 'target', index: i, empty: choice === undefined }, choice, outcome, {\n draggable: choice !== undefined,\n });\n\n targets.push(out);\n }\n\n const processedChoices = choices.map((m) => {\n if (response.indexOf(m.id) !== -1 && !opts.allowSameChoiceInTargets) {\n return {\n type: 'choice',\n empty: true,\n droppable: true,\n draggable: false,\n };\n } else {\n return Object.assign({}, m, {\n type: 'choice',\n droppable: false,\n draggable: true,\n });\n }\n });\n\n return processedChoices.concat(targets);\n } else {\n return response.reduce((acc, id, index) => {\n const emptyTile = Object.assign(\n { type: 'empty', draggable: false, droppable: true },\n choices.find((m) => m.id === id),\n outcomes[index],\n );\n const choiceTile = Object.assign(\n { type: 'choice', draggable: true, droppable: true },\n choices.find((m) => m.id === id),\n outcomes[index],\n );\n\n if (index === 0) {\n acc.push(emptyTile);\n }\n\n acc.push(choiceTile, emptyTile);\n\n return acc;\n }, []);\n }\n}\n\nexport function buildState(choices, response, outcomes, opts) {\n opts = assign({ includeTargets: true }, opts);\n\n outcomes = outcomes || [];\n response =\n !response || isEmpty(response)\n ? opts.includeTargets\n ? new Array(choices.length)\n : map(choices, (c) => c.id)\n : response;\n return {\n choices,\n response,\n opts,\n outcomes,\n tiles: buildTiles(choices, response, outcomes, opts),\n };\n}\n\nexport function reducer(action, state) {\n switch (action.type) {\n case 'move': {\n const { from, to } = action;\n const response = updateResponse(state, from, to);\n const tiles = buildTiles(state.choices, response, state.outcomes, state.opts);\n return Object.assign({}, state, { response, tiles });\n }\n case 'remove': {\n const { target } = action;\n const response = removeResponse(state, target);\n const tiles = buildTiles(state.choices, response, state.outcomes, state.opts);\n return Object.assign({}, state, { response, tiles });\n }\n }\n return state;\n}\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/utils.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nexport const haveSameValuesButDifferentOrder = (arr1, arr2) => {\n if (!Array.isArray(arr1) || !Array.isArray(arr2)) return false;\n if (arr1.length !== arr2.length) return false;\n\n const toSortedJson = (arr) =>\n arr\n .map((item) => JSON.stringify(item))\n .sort();\n\n const sortedArr1 = toSortedJson(arr1);\n const sortedArr2 = toSortedJson(arr2);\n\n const hasSameValues = sortedArr1.every((val, i) => val === sortedArr2[i]);\n const hasSameOrder = arr1.every((item, i) =>\n JSON.stringify(item) === JSON.stringify(arr2[i])\n );\n\n return hasSameValues && !hasSameOrder;\n};\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/placement-ordering.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport debug from 'debug';\nimport { difference, isEqual, uniqueId } from '@pie-element/shared-lodash';\nimport { styled } from '@mui/material/styles';\nimport { closestCenter } from '@dnd-kit/core';\n\nimport { Collapsible as CollapsibleImport, color, Feedback as FeedbackImport, hasMedia, hasText, 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}\nconst UiLayout = unwrapReactInteropSymbol(UiLayoutImport, 'UiLayout') || unwrapReactInteropSymbol(renderUi.UiLayout, 'UiLayout');\nconst PreviewPrompt = unwrapReactInteropSymbol(PreviewPromptImport, 'PreviewPrompt') || unwrapReactInteropSymbol(renderUi.PreviewPrompt, 'PreviewPrompt');\nconst Feedback = unwrapReactInteropSymbol(FeedbackImport, 'Feedback') || unwrapReactInteropSymbol(renderUi.Feedback, 'Feedback');\nconst Collapsible = unwrapReactInteropSymbol(CollapsibleImport, 'Collapsible') || unwrapReactInteropSymbol(renderUi.Collapsible, 'Collapsible');\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;\nimport { renderMath } from '@pie-element/shared-math-rendering-mathjax';\nimport Translator from '@pie-lib/translator';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport { DragProvider } from '@pie-lib/drag';\n\nimport { HorizontalTiler, VerticalTiler } from './tiler.js';\nimport { buildState, reducer } from './ordering.js';\nimport { haveSameValuesButDifferentOrder } from './utils.js';\n\nconst { translator } = Translator;\n\nconst log = debug('pie-elements:placement-ordering');\n\nconst PlacementOrderingContainer: any = styled('div')({\n color: color.text(),\n backgroundColor: color.background(),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n boxSizing: 'border-box',\n});\n\nconst StyledPrompt: any = styled('div')(({ theme }) => ({\n paddingBottom: theme.spacing(1),\n}));\n\nconst StyledNote: any = styled('div')(({ theme }) => ({\n paddingBottom: theme.spacing(2),\n}));\n\nconst StyledToggle: any = styled(CorrectAnswerToggle)(({ theme }) => ({\n paddingBottom: theme.spacing(1),\n}));\n\nconst StyledCollapsible: any = styled(Collapsible)(({ theme }) => ({\n marginBottom: theme.spacing(2),\n alignSelf: 'flex-start',\n}));\n\nconst OrderingTiler = (props) => {\n const { tiler: Comp, ordering, onDropChoice, onRemoveChoice, ...compProps } = props;\n\n return (\n <Comp\n {...compProps}\n tiles={ordering.tiles}\n onDropChoice={(t, s) => onDropChoice(t, s, ordering)}\n onRemoveChoice={(t) => onRemoveChoice(t, ordering)}\n />\n );\n};\n\nOrderingTiler.propTypes = {\n tiler: PropTypes.func,\n ordering: PropTypes.any,\n onDropChoice: PropTypes.func,\n onRemoveChoice: PropTypes.func,\n};\n\nexport class PlacementOrdering extends React.Component {\n static propTypes = {\n onSessionChange: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n session: PropTypes.oneOfType([PropTypes.array.isRequired, PropTypes.object.isRequired]),\n };\n\n constructor(props) {\n super(props);\n\n this.instanceId = uniqueId();\n\n const { value, needsReset } = this.validateSession(props);\n\n this.state = {\n showingCorrect: false,\n };\n\n const { model } = props || {};\n const { env } = model || {};\n const { mode } = env || {};\n\n if (needsReset && mode === 'gather') {\n this.props.onSessionChange({\n ...props.session,\n value,\n });\n }\n }\n\n toggleCorrect = (showingCorrect) => this.setState({ showingCorrect });\n\n componentDidUpdate() {\n //eslint-disable-next-line\n const domNode = ReactDOM.findDOMNode(this);\n\n renderMath(domNode);\n }\n\n validateSession: any = ({ model, session }, areChoicesShuffled = false) => {\n const { config, choices } = model || {};\n const { includeTargets } = config || {};\n const choicesIds = choices.map((c) => c.id);\n\n let { value } = session || {};\n let needsReset;\n\n if (!includeTargets) {\n // Use all choice IDs if choices were shuffled or session is missing/invalid\n const sessionMissing = !value || !value.length;\n if (sessionMissing || areChoicesShuffled) {\n // if there's no value on session in No Targets Mode, we need to set an initial session\n value = choicesIds;\n } else {\n // in No Targets Mode, all choice ids need to be used\n const missingChoiceIds = difference(choicesIds, value);\n // this is the case that handles extra choice ids in session\n const extraChoiceIds = difference(value, choicesIds);\n\n if (missingChoiceIds.length || extraChoiceIds.length) {\n value = choicesIds;\n }\n }\n\n needsReset = !isEqual(session.value, value);\n } else {\n // in Targets Area selected, it's important to check the length of session\n const sessionIsMismatched = value && value.length !== choicesIds.length;\n if (sessionIsMismatched) {\n needsReset = true;\n\n // if choices were added, add value in session\n if (value.length < choicesIds.length) {\n value = value.concat(new Array(choicesIds.length - value.length));\n } else {\n // if choices were removed, make sure to remove from session as well\n value = value.filter((cId) => choicesIds.includes(cId));\n }\n }\n }\n\n if (needsReset) {\n // eslint-disable-next-line no-console\n console.warn('This session is not valid anymore. It will be reset.');\n }\n\n return { value, needsReset };\n };\n\n UNSAFE_componentWillReceiveProps(nextProps) {\n const { model: nextModel = {} } = nextProps || {};\n const { model: currentModel = {} } = this.props || {};\n const { correctResponse, config, choices: nextChoices = [], env } = nextModel;\n const { includeTargets } = config || {};\n\n const newState = {};\n\n const isLanguageChanged = currentModel.language && currentModel.language !== nextModel.language;\n const isDefaultNote =\n currentModel.note &&\n currentModel.note === translator.t('common:commonCorrectAnswerWithAlternates', { lng: currentModel.language });\n\n // check if the note is the default one for prev language and change to the default one for new language\n // this check is necessary in order to diferanciate between default and authour defined note\n // and only change between languages for default ones\n if (isLanguageChanged && isDefaultNote) {\n currentModel.note = translator.t('common:commonCorrectAnswerWithAlternates', { lng: nextModel.language });\n }\n\n if (!correctResponse) {\n newState.showingCorrect = false;\n }\n\n //PD-4924\n // show student choices same order as in model when teacher changes student choices order\n // for cases when student view and instructor view are on same page\n const areChoicesShuffled = haveSameValuesButDifferentOrder(nextChoices, currentModel.choices);\n\n const validatedSession = this.validateSession(nextProps, areChoicesShuffled);\n let { value, needsReset } = validatedSession;\n\n const newSession = {\n ...nextProps.session,\n value,\n };\n const includeTargetsChanged = currentModel.config?.includeTargets !== includeTargets;\n\n if (includeTargets && includeTargetsChanged) {\n needsReset = true;\n\n delete newSession.value;\n }\n\n this.setState(newState, () => {\n const { mode } = env || {};\n\n if (needsReset && mode === 'gather') {\n this.props.onSessionChange(newSession);\n }\n });\n }\n\n onDropChoice: any = (target, source, ordering) => {\n const { onSessionChange, session } = this.props;\n const from = ordering.tiles.find((t) => t.id === source.id && t.type === source.type && t.index === source.index);\n const to = target;\n log('[onDropChoice] ', from, to);\n const update = reducer({ type: 'move', from, to }, ordering);\n const sessionUpdate = Object.assign({}, session, {\n value: update.response,\n });\n\n onSessionChange(sessionUpdate);\n };\n\n onRemoveChoice: any = (target, ordering) => {\n const { onSessionChange, session } = this.props;\n log('[onRemoveChoice]', target);\n const update = reducer({ type: 'remove', target }, ordering);\n const sessionUpdate = Object.assign({}, session, {\n value: update.response,\n });\n onSessionChange(sessionUpdate);\n };\n\n createOrdering: any = () => {\n const { model, session } = this.props;\n const { showingCorrect } = this.state;\n const config = model.config || {\n orientation: 'vertical',\n includeTargets: true,\n };\n const { includeTargets } = config;\n\n return showingCorrect\n ? buildState(\n model.choices,\n model.correctResponse,\n model.correctResponse.map((id) => ({ id, outcome: 'correct' })),\n {\n includeTargets,\n allowSameChoiceInTargets: model.config.allowSameChoiceInTargets,\n },\n )\n : buildState(model.choices, session.value, model.outcomes, {\n includeTargets,\n allowSameChoiceInTargets: model.config.allowSameChoiceInTargets,\n });\n };\n\n onDragEnd: any = (event) => {\n const { over, active } = event;\n const ordering = this.createOrdering();\n\n if (over && active) {\n const draggedItem = active.data.current;\n const droppedOnItem = over.data.current;\n\n if (draggedItem && droppedOnItem && droppedOnItem.type === 'target') {\n this.onDropChoice(droppedOnItem, draggedItem, ordering);\n return;\n }\n\n if (draggedItem && droppedOnItem) {\n this.onDropChoice(droppedOnItem, draggedItem, ordering);\n }\n } else if (!over && active) {\n const draggedItem = active.data.current;\n if (draggedItem && draggedItem.type === 'target') {\n this.onRemoveChoice(draggedItem, ordering);\n }\n }\n };\n\n render() {\n const { model } = this.props;\n const {\n correctResponse,\n correctness,\n extraCSSRules,\n prompt,\n rationale,\n feedback,\n config: configs,\n note,\n showNote,\n env,\n disabled,\n teacherInstructions,\n language,\n } = model;\n const showToggle = correctResponse && correctResponse.length > 0;\n const { showingCorrect } = this.state;\n const config = configs || {\n orientation: 'vertical',\n includeTargets: true,\n };\n const { orientation, includeTargets } = config;\n const vertical = orientation === 'vertical';\n const ordering = this.createOrdering();\n const { mode, role } = env || {};\n\n const Tiler = vertical ? VerticalTiler : HorizontalTiler;\n const displayNote = (showingCorrect || (mode === 'view' && role === 'instructor')) && showNote && note;\n const showRationale = rationale && (hasText(rationale) || hasMedia(rationale));\n const showTeacherInstructions =\n teacherInstructions && (hasText(teacherInstructions) || hasMedia(teacherInstructions));\n\n const containerStyle = {\n color: color.text(),\n backgroundColor: color.background(),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n boxSizing: 'border-box',\n };\n\n return (\n <DragProvider onDragStart={() => { }} onDragEnd={this.onDragEnd} collisionDetection={closestCenter}>\n <PlacementOrderingContainer>\n <UiLayout extraCSSRules={extraCSSRules} style={containerStyle}>\n {showTeacherInstructions && (\n <StyledCollapsible\n labels={{ hidden: 'Show Teacher Instructions', visible: 'Hide Teacher Instructions' }}\n className=\"collapsible\"\n >\n <PreviewPrompt prompt={teacherInstructions} />\n </StyledCollapsible>\n )}\n\n <StyledPrompt>\n <PreviewPrompt prompt={prompt} />\n </StyledPrompt>\n\n <StyledToggle\n show={showToggle}\n toggled={showingCorrect}\n onToggle={this.toggleCorrect}\n language={language}\n />\n\n <OrderingTiler\n instanceId={this.instanceId}\n choiceLabel={config.choiceLabel}\n targetLabel={config.targetLabel}\n ordering={ordering}\n tiler={Tiler}\n disabled={disabled}\n addGuide={config.showOrdering}\n tileSize={config.tileSize}\n includeTargets={includeTargets}\n choiceLabelEnabled={model.config && model.config.choiceLabelEnabled}\n />\n\n {displayNote && <StyledNote dangerouslySetInnerHTML={{ __html: note }} />}\n\n {showRationale && (\n <StyledCollapsible\n labels={{ hidden: 'Show Rationale', visible: 'Hide Rationale' }}\n className=\"collapsible\"\n >\n <PreviewPrompt prompt={rationale} />\n </StyledCollapsible>\n )}\n\n {!showingCorrect && <Feedback correctness={correctness} feedback={feedback} />}\n </UiLayout>\n </PlacementOrderingContainer>\n </DragProvider>\n );\n }\n}\n\nexport default PlacementOrdering;\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/main.jsx\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nimport PlacementOrdering from './placement-ordering.js';\n\nclass Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n session: PropTypes.oneOfType([PropTypes.array.isRequired, PropTypes.object.isRequired]),\n onSessionChange: PropTypes.func.isRequired,\n };\n\n render() {\n const { model, session, onSessionChange } = this.props;\n\n return (\n <PlacementOrdering model={model} session={session} onSessionChange={onSessionChange} />\n );\n }\n}\n\nexport default Main;\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/placement-ordering/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { compact } from '@pie-element/shared-lodash';\nimport debug from 'debug';\nimport { renderMath } from '@pie-element/shared-math-rendering-mathjax';\nimport { SessionChangedEvent } from '@pie-element/shared-player-events';\nimport Main from './main.js';\n\nconst log = debug('pie-elements:placement-ordering');\n\nexport const isValidSession = ({ model, session }) => {\n const { config } = model;\n\n const compactSessionValues = (session && compact(session.value)) || [];\n const completeSession = compactSessionValues.length === model.choices.length;\n\n // if it includes targets, it doesn't have to contain all the choices selected (eg: only 2 targets were filled)\n // but if it does not include targets, it's a must to have all choices selected\n return config.includeTargets || completeSession;\n};\n\nexport default class Ordering extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n }\n\n _scheduleMathRender: any = () => {\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 isComplete = (value) => value && compact(value).length === this._model.completeLength;\n\n sessionChange: any = (session) => {\n this._session.value = session.value;\n this.render();\n this.dispatchEvent(\n new SessionChangedEvent(this.tagName.toLowerCase(), this._session && this.isComplete(this._session.value)),\n );\n };\n\n set model(newModel) {\n this._model = newModel;\n\n this.render();\n this.dispatchEvent(\n new CustomEvent('model-set', {\n bubbles: true,\n detail: {\n complete: false,\n },\n }),\n );\n }\n\n set session(newSession) {\n this._session = newSession;\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n render() {\n if (this._model && this._session) {\n log('[render] session: ', this._session.value);\n log('[render] model: ', this._model);\n\n this._initMathObserver();\n\n const element = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.sessionChange,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n }\n }\n\n connectedCallback() {\n this._initMathObserver();\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"x_google_ignoreList":[4],"mappings":"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"}
|