@pie-element/math-templated 6.0.0-beta.1 → 6.0.0-next.43

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/module/demo.js ADDED
@@ -0,0 +1,67 @@
1
+ import Configure from './configure.js';
2
+ import Element from './element.js';
3
+ import * as controller from './controller.js';
4
+
5
+ var generate = {};
6
+
7
+ generate.model = (id, element) => ({
8
+ id,
9
+ element,
10
+ rationale: 'Rationale',
11
+ partialScoring: true,
12
+ prompt: 'There are 24 students in the class. They had the choice to buy supplies from two different stores, Store A and B. Each of them bought 2 binders and 5 notebooks. The students have a total of $420 to spend.',
13
+ scoringType: 'auto',
14
+ feedbackEnabled: false,
15
+ promptEnabled: true,
16
+ rationaleEnabled: true,
17
+ teacherInstructionsEnabled: true,
18
+ studentInstructionsEnabled: true,
19
+ toolbarEditorPosition: 'bottom',
20
+ validationDefault: 'literal',
21
+ ignoreOrderDefault: false,
22
+ allowTrailingZerosDefault: false,
23
+ teacherInstructions: 'These are teacher instructions',
24
+ customKeys: [], // these have effect on player only?
25
+ equationEditor: 'geometry',
26
+ markup: `
27
+ <p>If the unit price of a notebook in Store A is $1.50, what is the unit price of a binder? \${{0}}</p>
28
+ <p>If the unit price of a binder in Store B is $2.80, what is the unit price of a notebook? \${{1}}</p>
29
+ `,
30
+ responses: {
31
+ 0: {
32
+ allowTrailingZeros: false,
33
+ answer: '5',
34
+ id: '1',
35
+ validation: 'symbolic',
36
+ ignoreOrder: false,
37
+ alternates: {}
38
+ },
39
+ 1: {
40
+ allowTrailingZeros: false,
41
+ answer: '2.38',
42
+ id: '1',
43
+ validation: 'literal',
44
+ ignoreOrder: false,
45
+ alternates: {}
46
+ }
47
+ }
48
+ });
49
+
50
+ const { model } = generate;
51
+
52
+ var config = {
53
+ elements: {
54
+ 'math-templated': '../..',
55
+ },
56
+ models: [model('1', 'math-templated')],
57
+ };
58
+
59
+ //Note: demo-el is a custom element loaded in the markup.
60
+ customElements.whenDefined("demo-el").then(() => {
61
+ config.models.forEach((m) => {
62
+ const de = document.createElement("demo-el");
63
+ document.body.appendChild(de);
64
+ de.def = { tagName: m.element, Element, Configure, controller };
65
+ de.model = m;
66
+ });
67
+ });
@@ -0,0 +1 @@
1
+ import{_dll_react_dom as e,_dll_debug as t,_dll_react as n,_dll_prop_types as r,_dll_mui__material_styles as o,_dll_lodash as i,_dll_mui__material as a,_dll_pie_lib__render_ui as s,_dll_classnames as l,_dll_mui__icons_material as c,_dll_pie_lib__correct_answer_toggle as d}from"../../../@pie-lib/shared-module@^3.0.5/module/index.js";import{_dll_pie_lib__math_input as u,_dll_pie_framework__mathquill as p}from"../../../@pie-lib/math-edit-module@^3.0.5/module/index.js";import{_dll_pie_lib__math_rendering as h}from"../../../@pie-lib/math-rendering-module@^4.0.5/module/index.js";import{_dll_pie_lib__drag as g}from"../../../@pie-lib/drag-module@^3.0.5/module/index.js";var f,m=e;f=m.createRoot,m.hydrateRoot;var v={};Object.defineProperty(v,"__esModule",{value:!0});class b extends CustomEvent{constructor(e,t,n){super(b.TYPE,{bubbles:!0,composed:!0,detail:{complete:t,component:e,hasModel:n}}),this.component=e,this.complete=t}}b.TYPE="model-set";var y=v.ModelSetEvent=b;class w extends CustomEvent{constructor(e,t){super(w.TYPE,{bubbles:!0,composed:!0,detail:{complete:t,component:e}}),this.component=e,this.complete=t}}w.TYPE="session-changed";var x,C,E,k=v.SessionChangedEvent=w,S={"border-radius":1,"border-top-left-radius":1,"border-top-right-radius":1,"border-bottom-left-radius":1,"border-bottom-right-radius":1,"box-shadow":1,order:1,flex:function(e,t){return[t+"box-flex"]},"box-flex":1,"box-align":1,animation:1,"animation-duration":1,"animation-name":1,transition:1,"transition-duration":1,transform:1,"transform-style":1,"transform-origin":1,"backface-visibility":1,perspective:1,"box-pack":1},R={animation:1,"column-count":1,columns:1,"font-weight":1,opacity:1,"order ":1,"z-index":1,zoom:1,flex:1,"box-flex":1,transform:1,perspective:1,"box-pack":1,"box-align":1,colspan:1,rowspan:1},A=function(e){return e.length?e.charAt(0).toUpperCase()+e.substring(1):e},_=A,D=/^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/,T="undefined"==typeof document?{}:document.documentElement.style,M=(x=function(){for(var e in T)if(D.test(e))return e.match(D)[0];return"WebkitOpacity"in T?"Webkit":"KhtmlOpacity"in T?"Khtml":""}(),C=x.toLowerCase(),{style:x,css:"-"+C+"-",dom:{Webkit:"WebKit",ms:"MS",o:"WebKit"}[x]||_(x)}),O=function(e,t){return t?t.toUpperCase():""},N=/[-\s]+(.)?/g,I=function(e){return e?e.replace(N,O):""},$=/::/g,L=/([A-Z]+)([A-Z][a-z])/g,j=/([a-z\d])([A-Z])/g,W=/_/g,P=function(e,t){return e?e.replace($,"/").replace(L,"$1_$2").replace(j,"$1_$2").replace(W,t||"-"):""},B=function(e){return P(e).toLowerCase()},H=I,z=B,F=function(e){return e.length?e.charAt(0).toLowerCase()+e.substring(1):e},q=A,U=M,K=S,Y="undefined"==typeof document?{}:document.documentElement.style,V=function(e,t){t=t||{};var n=F(H(e)),r=z(e),o=E?n:r,i=U.style?E?U.style:U.css:"";if(n in Y)return t.asString?o:[o];var a=o,s=K[r],l=[];if(E&&(a=q(o)),"function"==typeof s){var c=s(o,i)||[];c&&!Array.isArray(c)&&(c=[c]),c.length&&(c=c.map(function(e){return E?F(H(e)):z(e)})),l=l.concat(c)}return i&&l.push(i+a),l.push(o),t.asString||1==l.length?l[0]:l},X=Object.prototype.hasOwnProperty,J=function(e,t){return X.call(e,t)},Q=Object.prototype.toString,Z=Object.prototype.toString,G=V,ee=B,te=I,ne=J,re=function(e){return!!e&&"[object Object]"===Q.call(e)},oe=function(e){return"[object Function]"===Z.apply(e)},ie=function(e,t,n,r){G(t).forEach(function(t){e[r?r(t):t]=n})},ae={cssUnitless:R},se=function(e,t,n,r){"string"==typeof e&&(e=function(e){e=(e||"").split(";");var t={};return e.forEach(function(e){var n=e.split(":");2==n.length&&(t[n[0].trim()]=n[1].trim())}),t}(e)),(t=t||ae).cssUnitless=t.cssUnitless||ae.cssUnitless,r=r||{};var o,i,a,s,l,c,d,u,p=t.scope||{},h=null!=t.addUnits?t.addUnits:!p||null==p.addUnits||p.addUnits,g=(null!=t.cssUnitless?t.cssUnitless:p?p.cssUnitless:null)||{},f=(t.cssUnit||p?p.cssUnit:null)||"px",m=t.prefixProperties||(p?p.prefixProperties:null)||{},v=t.camelize?te:ee;for(a in e)if(ne(e,a)){if(s=e[a],i=ee(n?n+a:a),o=!1,u=!1,oe(s)&&(d=s.call(p||e,s,a,i,e),re(d)&&null!=d.value?(s=d.value,u=d.prefix,i=d.name?ee(d.name):i):s=d),c="number"==(l=typeof s)||"string"==l&&""!=s&&1*s==s,null==s||null==i||""===i)continue;if((c||"string"==l)&&(o=!0),!o&&null!=s.value&&s.prefix&&(o=!0,u=s.prefix,s=s.value),o){if(u=u||!!m[i],c&&(s=h&&!(i in g)?s+f:s+""),"border"!=i&&(i.indexOf("border")||~i.indexOf("radius")||~i.indexOf("width"))||!c||(i+="-width"),!i.indexOf("border-radius-")&&(i.replace(/border(-radius)(-(.*))/,function(e,t,n){var r={"-top":["-top-left","-top-right"],"-left":["-top-left","-bottom-left"],"-right":["-top-right","-bottom-right"],"-bottom":["-bottom-left","-bottom-right"]};n in r?(i=[],r[n].forEach(function(e){i.push("border"+e+t)})):i="border"+n+t}),Array.isArray(i))){i.forEach(function(e){u?ie(r,e,s,v):r[v(e)]=s});continue}u?ie(r,i,s,v):r[v(i)]=s}else se(s,t,i+"-",r)}return r},le=se,ce=J,de={prefixProperties:S,cssUnitless:R,object:se,string:function(e,t){e=le(e,t);var n,r=[];for(n in e)ce(e,n)&&r.push(n+": "+e[n]);return r.join("; ")}};const ue=t("@pie-lib:mask-markup:serialization"),pe=["span"],he=["em","strong","u"],ge=(e,t)=>{const n=e.getAttribute(t);return r=(e=>{const t=/([\w-]*)\s*:\s*([^;]*)/g;let n;const r={};for(;n=t.exec(e);)r[n[1]]=n[2].trim();return r})(n),de.object(r,{camelize:!0,addUnits:!1});var r},fe=["border","class","style"],me={b:"bold",em:"italic",u:"underline",s:"strikethrough",code:"code",strong:"strong"},ve=(e,t=[])=>{if(8===e.nodeType)return null;if(3===e.nodeType){const n={text:e.textContent};return t.length>0&&(n.marks=t.map(e=>({type:e,data:void 0}))),{object:"text",leaves:[n]}}if(1===e.nodeType){const r=e.tagName.toLowerCase(),o=me[r];if(o){ue("[deserialize] mark: ",o);return{_flatten:!0,nodes:be(e.childNodes,[...t,o])}}if("math"===r)return{isMath:!0,nodes:[e]};const i=(e=>{if(!e.attributes||e.attributes.length<=0)return;const t={};let n;for(n=0;n<e.attributes.length;n++){const r=e.attributes[n];t[r.name]=r.value}return t})(e)||{};"audio"===r&&""===i.controls&&(i.controls=!0);const a=fe.reduce((n=e,(e,t)=>{if(!n.getAttribute)return e;if(n.getAttribute(t))switch(t){case"style":e.style=ge(n,t);break;case"class":e.className=((e,t,n)=>{const r=e.getAttribute(n);return delete t.class,r})(n,e,t);break;default:e[t]=n.getAttribute(t)}return e}),{...i}),s=(e=>pe.includes(e)?"inline":he.includes(e)?"mark":"block")(r),l=be(e.childNodes,t);return{object:s,type:r,data:{dataset:{...e.dataset},attributes:{...a}},nodes:l}}var n;return null},be=(e,t=[])=>{const n=[];for(let r=0;r<e.length;r++){const o=ve(e[r],t);null!==o&&(o._flatten&&o.nodes?n.push(...o.nodes):n.push(o))}return n},ye=n,we=r,{get:xe}=i,{styled:Ce}=o,{renderMath:Ee}=h;function ke(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],i=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=i(n)):"call"!==o&&"optionalCall"!==o||(n=i((...e)=>n.call(t,...e)),t=void 0)}return n}const Se=Ce("div")(({theme:e})=>({paddingTop:e.spacing(2),paddingBottom:e.spacing(2)})),Re=Ce("span")(()=>({display:"inline-block",width:".75em"})),Ae=["tbody","tr"],_e=(e,t,n,r,o,i)=>{if(!t)return null;const a=[];return(e.nodes||[]).forEach((e,s)=>{const l=e.type?`${e.type}-${s}`:`${s}`;if(e.isMath)return a.push(ye.createElement("span",{dangerouslySetInnerHTML:{__html:`<math displaystyle="true">${e.nodes[0].innerHTML}</math>`}})),a;if(r){const l=r(e,t,n);if(l)return a.push(l),void("td"!==ke([o,"optionalAccess",e=>e.type])&&"drag-in-the-blank"===i&&a.push(ye.createElement(Re,{key:`spacer-${s}`})))}if("text"===e.object){const t=e.leaves.reduce((e,t)=>{const n=t.text,r=((e,t)=>{const n=""===t.trim(),r=e&&e.type;return n&&Ae.includes(r)?void 0:t})(o,n);return r?e+r:e},""),n=(e=>{const t=e.leaves.find(e=>xe(e,"marks",[]).length);return t?t.marks[0]:null})(e);if(n){let e;for(e in me)if(me[e]===n.type){const n=e;a.push(ye.createElement(n,{key:l},t));break}}else t.length>0&&(a.push(t),"td"!==ke([o,"optionalAccess",e=>e.type])&&"drag-in-the-blank"===i&&a.push(ye.createElement(Re,{key:`spacer-${s}`})))}else{const o=_e(e,t,n,r,e,i);if("p"===e.type||"paragraph"===e.type)a.push(ye.createElement(Se,{key:l},o));else{const t=e.type;e.nodes&&e.nodes.length>0?a.push(ye.createElement(t,{key:l,...e.data.attributes},o)):a.push(ye.createElement(t,{key:l,...e.data.attributes}))}}}),a},De=Ce("div")(()=>({display:"initial","&:not(.MathJax) table":{borderCollapse:"collapse"},"&:not(.MathJax) table td, &:not(.MathJax) table th":{padding:"8px 12px",textAlign:"left"}}));class Te extends ye.Component{constructor(e){super(e),Te.prototype.__init.call(this),this.internalContainerRef=ye.createRef()}static __initStatic(){this.propTypes={renderChildren:we.func,layout:we.object,value:we.object,onChange:we.func,elementType:we.string,containerRef:we.oneOfType([we.func,we.shape({current:we.instanceOf(Element)})])}}componentDidMount(){const e=this.props.containerRef||this.internalContainerRef;e.current&&"function"==typeof Ee&&Ee(e.current)}__init(){this.handleChange=(e,t)=>{const n={...this.props.value,[e]:t};this.props.onChange(n)}}render(){const{value:e,layout:t,elementType:n,containerRef:r}=this.props,o=_e(t,e,this.handleChange,this.props.renderChildren,null,n),i=r||this.internalContainerRef;return ye.createElement(De,{ref:i},o)}}Te.__initStatic();const Me=/\{\{(\d+)\}\}/g;const Oe=n,Ne=r;var Ie;const $e=(e,t)=>{const{markup:n}=(o=t,(r=e)?{markup:r.replace(Me,(e,t)=>`<span data-component="${o}" data-id="${t}"></span>`)}:{markup:""});var r,o;return(e=>{if(!e||!e.trim())return{object:"value",document:{object:"document",data:{},nodes:[{object:"block",type:"span",data:{},isVoid:!1,nodes:[]}]}};const t=(new DOMParser).parseFromString(e,"text/html");let n=be(t.body.childNodes);return!n.some(e=>"block"===e.object||"inline"===e.object)&&n.length>0&&(n=[{object:"block",type:"span",data:{},isVoid:!1,nodes:n}]),0===n.length&&(n=[{object:"block",type:"span",data:{},isVoid:!1,nodes:[]}]),{object:"value",document:{object:"document",data:{},nodes:n}}})(n).document},Le=(e,t)=>((Ie=class extends Oe.Component{static __initStatic(){this.propTypes={markup:Ne.string,layout:Ne.object,value:Ne.object,onChange:Ne.func,customMarkMarkupComponent:Ne.func,elementType:Ne.string}}constructor(e){super(e),this.containerRef=Oe.createRef()}componentDidUpdate(e){if(this.props.markup!==e.markup){const e=this.containerRef.current;(e&&e.querySelectorAll('[data-latex][data-math-handled="true"]')||[]).forEach(e=>{const t=e.querySelector("mjx-container");t&&e.removeChild(t);const n=e.getAttribute("data-raw");e.innerHTML=n,e.removeAttribute("data-math-handled")})}}render(){const{markup:n,layout:r,value:o,onChange:i,elementType:a}=this.props,s=r||$e(n,e);return Oe.createElement(Te,{containerRef:this.containerRef,elementType:a,layout:s,value:o,onChange:i,renderChildren:t(this.props)})}}).__initStatic(),Ie),{useMemo:je}=n,{useLayoutEffect:We}=n,{useEffect:Pe}=n,{useRef:Be}=n,{useCallback:He}=n,ze="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement;function Fe(e){const t=Object.prototype.toString.call(e);return"[object Window]"===t||"[object global]"===t}function qe(e){return"nodeType"in e}function Ue(e){var t,n;return e?Fe(e)?e:qe(e)&&null!=(t=null==(n=e.ownerDocument)?void 0:n.defaultView)?t:window:window}function Ke(e){const{Document:t}=Ue(e);return e instanceof t}function Ye(e){return!Fe(e)&&e instanceof Ue(e).HTMLElement}function Ve(e){return e instanceof Ue(e).SVGElement}function Xe(e){return e?Fe(e)?e.document:qe(e)?Ke(e)?e:Ye(e)||Ve(e)?e.ownerDocument:document:document:document}const Je=ze?We:Pe;function Qe(e){const t=Be(e);return Je(()=>{t.current=e}),He(function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return null==t.current?void 0:t.current(...n)},[])}function Ze(e,t){void 0===t&&(t=[e]);const n=Be(e);return Je(()=>{n.current!==e&&(n.current=e)},t),n}function Ge(e,t){const n=Be();return je(()=>{const t=e(n.current);return n.current=t,t},[...t])}function et(e){const t=Qe(e),n=Be(null),r=He(e=>{e!==n.current&&(null==t||t(e,n.current)),n.current=e},[]);return[n,r]}function tt(e){const t=Be();return Pe(()=>{t.current=e},[e]),t.current}let nt={};function rt(e,t){return je(()=>{if(t)return t;const n=null==nt[e]?0:nt[e]+1;return nt[e]=n,e+"-"+n},[e,t])}function ot(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((t,n)=>{const r=Object.entries(n);for(const[n,o]of r){const r=t[n];null!=r&&(t[n]=r+e*o)}return t},{...t})}}const it=ot(1),at=ot(-1);function st(e){if(!e)return!1;const{KeyboardEvent:t}=Ue(e.target);return t&&e instanceof t}function lt(e){if(function(e){if(!e)return!1;const{TouchEvent:t}=Ue(e.target);return t&&e instanceof t}(e)){if(e.touches&&e.touches.length){const{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){const{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return function(e){return"clientX"in e&&"clientY"in e}(e)?{x:e.clientX,y:e.clientY}:null}const ct=Object.freeze({Translate:{toString(e){if(!e)return;const{x:t,y:n}=e;return"translate3d("+(t?Math.round(t):0)+"px, "+(n?Math.round(n):0)+"px, 0)"}},Scale:{toString(e){if(!e)return;const{scaleX:t,scaleY:n}=e;return"scaleX("+t+") scaleY("+n+")"}},Transform:{toString(e){if(e)return[ct.Translate.toString(e),ct.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),dt="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function ut(e){return e.matches(dt)?e:e.querySelector(dt)}const pt=n,{useState:ht}=n,{useCallback:gt}=n,ft={display:"none"};function mt(e){let{id:t,value:n}=e;return pt.createElement("div",{id:t,style:ft},n)}function vt(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;return pt.createElement("div",{id:t,style:{position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"},role:"status","aria-live":r,"aria-atomic":!0},n)}const bt=n,{createContext:yt}=n,{useContext:wt}=n,{useEffect:xt}=n,{useState:Ct}=n,{useCallback:Et}=n,{useMemo:kt}=n,{useRef:St}=n,{memo:Rt}=n,{useReducer:At}=n,{cloneElement:_t}=n,{forwardRef:Dt}=n,{createPortal:Tt}=e,{unstable_batchedUpdates:Mt}=e,Ot=yt(null);const Nt={draggable:"\n To pick up a draggable item, press the space bar.\n While dragging, use the arrow keys to move the item.\n Press space again to drop the item in its new position, or press escape to cancel.\n "},It={onDragStart(e){let{active:t}=e;return"Picked up draggable item "+t.id+"."},onDragOver(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was moved over droppable area "+n.id+".":"Draggable item "+t.id+" is no longer over a droppable area."},onDragEnd(e){let{active:t,over:n}=e;return n?"Draggable item "+t.id+" was dropped over droppable area "+n.id:"Draggable item "+t.id+" was dropped."},onDragCancel(e){let{active:t}=e;return"Dragging was cancelled. Draggable item "+t.id+" was dropped."}};function $t(e){let{announcements:t=It,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=Nt}=e;const{announce:i,announcement:a}=function(){const[e,t]=ht("");return{announce:gt(e=>{null!=e&&t(e)},[]),announcement:e}}(),s=rt("DndLiveRegion"),[l,c]=Ct(!1);if(xt(()=>{c(!0)},[]),function(e){const t=wt(Ot);xt(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}(kt(()=>({onDragStart(e){let{active:n}=e;i(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&i(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;i(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;i(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;i(t.onDragCancel({active:n,over:r}))}}),[i,t])),!l)return null;const d=bt.createElement(bt.Fragment,null,bt.createElement(mt,{id:r,value:o.draggable}),bt.createElement(vt,{id:s,announcement:a}));return n?Tt(d,n):d}var Lt;function jt(){}!function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"}(Lt||(Lt={}));const Wt=Object.freeze({x:0,y:0});function Pt(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function Bt(e,t){const n=lt(e);if(!n)return"0 0";return(n.x-t.left)/t.width*100+"% "+(n.y-t.top)/t.height*100+"%"}function Ht(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function zt(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function Ft(e,t,n){return void 0===t&&(t=e.left),void 0===n&&(n=e.top),{x:t+.5*e.width,y:n+.5*e.height}}const qt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=Ft(t,t.left,t.top),i=[];for(const e of r){const{id:t}=e,r=n.get(t);if(r){const n=Pt(Ft(r),o);i.push({id:t,data:{droppableContainer:e,value:n}})}}return i.sort(Ht)};function Ut(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=o-r,s=i-n;if(r<o&&n<i){const n=t.width*t.height,r=e.width*e.height,o=a*s;return Number((o/(n+r-o)).toFixed(4))}return 0}const Kt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const e of r){const{id:r}=e,i=n.get(r);if(i){const n=Ut(i,t);n>0&&o.push({id:r,data:{droppableContainer:e,value:n}})}}return o.sort(zt)};function Yt(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:Wt}const Vt=(Xt=1,function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return n.reduce((e,t)=>({...e,top:e.top+Xt*t.y,bottom:e.bottom+Xt*t.y,left:e.left+Xt*t.x,right:e.right+Xt*t.x}),{...e})});var Xt;function Jt(e){if(e.startsWith("matrix3d(")){const t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith("matrix(")){const t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}const Qt={ignoreTransform:!1};function Zt(e,t){void 0===t&&(t=Qt);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:t,transformOrigin:r}=Ue(e).getComputedStyle(e);t&&(n=function(e,t,n){const r=Jt(t);if(!r)return e;const{scaleX:o,scaleY:i,x:a,y:s}=r,l=e.left-a-(1-o)*parseFloat(n),c=e.top-s-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),d=o?e.width/o:e.width,u=i?e.height/i:e.height;return{width:d,height:u,top:c,right:l+d,bottom:c+u,left:l}}(n,t,r))}const{top:r,left:o,width:i,height:a,bottom:s,right:l}=n;return{top:r,left:o,width:i,height:a,bottom:s,right:l}}function Gt(e){return Zt(e,{ignoreTransform:!0})}function en(e,t){const n=[];return e?function r(o){if(null!=t&&n.length>=t)return n;if(!o)return n;if(Ke(o)&&null!=o.scrollingElement&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!Ye(o)||Ve(o))return n;if(n.includes(o))return n;const i=Ue(e).getComputedStyle(o);return o!==e&&function(e,t){void 0===t&&(t=Ue(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(e=>{const r=t[e];return"string"==typeof r&&n.test(r)})}(o,i)&&n.push(o),function(e,t){return void 0===t&&(t=Ue(e).getComputedStyle(e)),"fixed"===t.position}(o,i)?n:r(o.parentNode)}(e):n}function tn(e){const[t]=en(e,1);return null!=t?t:null}function nn(e){return ze&&e?Fe(e)?e:qe(e)?Ke(e)||e===Xe(e).scrollingElement?window:Ye(e)?e:null:null:null}function rn(e){return Fe(e)?e.scrollX:e.scrollLeft}function on(e){return Fe(e)?e.scrollY:e.scrollTop}function an(e){return{x:rn(e),y:on(e)}}var sn;function ln(e){return!(!ze||!e)&&e===document.scrollingElement}function cn(e){const t={x:0,y:0},n=ln(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}!function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"}(sn||(sn={}));const dn={x:.2,y:.2};function un(e,t,n,r,o){let{top:i,left:a,right:s,bottom:l}=n;void 0===r&&(r=10),void 0===o&&(o=dn);const{isTop:c,isBottom:d,isLeft:u,isRight:p}=cn(e),h={x:0,y:0},g={x:0,y:0},f=t.height*o.y,m=t.width*o.x;return!c&&i<=t.top+f?(h.y=sn.Backward,g.y=r*Math.abs((t.top+f-i)/f)):!d&&l>=t.bottom-f&&(h.y=sn.Forward,g.y=r*Math.abs((t.bottom-f-l)/f)),!p&&s>=t.right-m?(h.x=sn.Forward,g.x=r*Math.abs((t.right-m-s)/m)):!u&&a<=t.left+m&&(h.x=sn.Backward,g.x=r*Math.abs((t.left+m-a)/m)),{direction:h,speed:g}}function pn(e){if(e===document.scrollingElement){const{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function hn(e){return e.reduce((e,t)=>it(e,an(t)),Wt)}function gn(e,t){if(void 0===t&&(t=Zt),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);tn(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const fn=[["x",["left","right"],function(e){return e.reduce((e,t)=>e+rn(t),0)}],["y",["top","bottom"],function(e){return e.reduce((e,t)=>e+on(t),0)}]];class mn{constructor(e,t){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const n=en(t),r=hn(n);this.rect={...e},this.width=e.width,this.height=e.height;for(const[e,t,o]of fn)for(const i of t)Object.defineProperty(this,i,{get:()=>{const t=o(n),a=r[e]-t;return this.rect[i]+a},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class vn{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>{var t;return null==(t=this.target)?void 0:t.removeEventListener(...e)})},this.target=e}add(e,t,n){var r;null==(r=this.target)||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}}function bn(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return"number"==typeof t?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t&&r>t.y}var yn,wn;function xn(e){e.preventDefault()}function Cn(e){e.stopPropagation()}!function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"}(yn||(yn={})),function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter",e.Tab="Tab"}(wn||(wn={}));const En={start:[wn.Space,wn.Enter],cancel:[wn.Esc],end:[wn.Space,wn.Enter,wn.Tab]},kn=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case wn.Right:return{...n,x:n.x+25};case wn.Left:return{...n,x:n.x-25};case wn.Down:return{...n,y:n.y+25};case wn.Up:return{...n,y:n.y-25}}};class Sn{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;const{event:{target:t}}=e;this.props=e,this.listeners=new vn(Xe(t)),this.windowListeners=new vn(Ue(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(yn.Resize,this.handleCancel),this.windowListeners.add(yn.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(yn.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&gn(n),t(Wt)}handleKeyDown(e){if(st(e)){const{active:t,context:n,options:r}=this.props,{keyboardCodes:o=En,coordinateGetter:i=kn,scrollBehavior:a="smooth"}=r,{code:s}=e;if(o.end.includes(s))return void this.handleEnd(e);if(o.cancel.includes(s))return void this.handleCancel(e);const{collisionRect:l}=n.current,c=l?{x:l.left,y:l.top}:Wt;this.referenceCoordinates||(this.referenceCoordinates=c);const d=i(e,{active:t,context:n.current,currentCoordinates:c});if(d){const t=at(d,c),r={x:0,y:0},{scrollableAncestors:o}=n.current;for(const n of o){const o=e.code,{isTop:i,isRight:s,isLeft:l,isBottom:c,maxScroll:u,minScroll:p}=cn(n),h=pn(n),g={x:Math.min(o===wn.Right?h.right-h.width/2:h.right,Math.max(o===wn.Right?h.left:h.left+h.width/2,d.x)),y:Math.min(o===wn.Down?h.bottom-h.height/2:h.bottom,Math.max(o===wn.Down?h.top:h.top+h.height/2,d.y))},f=o===wn.Right&&!s||o===wn.Left&&!l,m=o===wn.Down&&!c||o===wn.Up&&!i;if(f&&g.x!==d.x){const e=n.scrollLeft+t.x,i=o===wn.Right&&e<=u.x||o===wn.Left&&e>=p.x;if(i&&!t.y)return void n.scrollTo({left:e,behavior:a});r.x=i?n.scrollLeft-e:o===wn.Right?n.scrollLeft-u.x:n.scrollLeft-p.x,r.x&&n.scrollBy({left:-r.x,behavior:a});break}if(m&&g.y!==d.y){const e=n.scrollTop+t.y,i=o===wn.Down&&e<=u.y||o===wn.Up&&e>=p.y;if(i&&!t.x)return void n.scrollTo({top:e,behavior:a});r.y=i?n.scrollTop-e:o===wn.Down?n.scrollTop-u.y:n.scrollTop-p.y,r.y&&n.scrollBy({top:-r.y,behavior:a});break}}this.handleMove(e,it(at(d,this.referenceCoordinates),r))}}}handleMove(e,t){const{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){const{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){const{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}function Rn(e){return Boolean(e&&"distance"in e)}function An(e){return Boolean(e&&"delay"in e)}Sn.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=En,onActivation:o}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const t=i.activatorNode.current;return(!t||e.target===t)&&(e.preventDefault(),null==o||o({event:e.nativeEvent}),!0)}return!1}}];class _n{constructor(e,t,n){var r;void 0===n&&(n=function(e){const{EventTarget:t}=Ue(e);return e instanceof t?e:Xe(e)}(e.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=e,this.events=t;const{event:o}=e,{target:i}=o;this.props=e,this.events=t,this.document=Xe(i),this.documentListeners=new vn(this.document),this.listeners=new vn(n),this.windowListeners=new vn(Ue(i)),this.initialCoordinates=null!=(r=lt(o))?r:Wt,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(yn.Resize,this.handleCancel),this.windowListeners.add(yn.DragStart,xn),this.windowListeners.add(yn.VisibilityChange,this.handleCancel),this.windowListeners.add(yn.ContextMenu,xn),this.documentListeners.add(yn.Keydown,this.handleKeydown),t){if(null!=n&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(An(t))return this.timeoutId=setTimeout(this.handleStart,t.delay),void this.handlePending(t);if(Rn(t))return void this.handlePending(t)}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),null!==this.timeoutId&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(e,t){const{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){const{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(yn.Click,Cn,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(yn.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){var t;const{activated:n,initialCoordinates:r,props:o}=this,{onMove:i,options:{activationConstraint:a}}=o;if(!r)return;const s=null!=(t=lt(e))?t:Wt,l=at(r,s);if(!n&&a){if(Rn(a)){if(null!=a.tolerance&&bn(l,a.tolerance))return this.handleCancel();if(bn(l,a.distance))return this.handleStart()}return An(a)&&bn(l,a.tolerance)?this.handleCancel():void this.handlePending(a,l)}e.cancelable&&e.preventDefault(),i(s)}handleEnd(){const{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){const{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===wn.Esc&&this.handleCancel()}removeTextSelection(){var e;null==(e=this.document.getSelection())||e.removeAllRanges()}}const Dn={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Tn extends _n{constructor(e){const{event:t}=e,n=Xe(t.target);super(e,Dn,n)}}Tn.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!(!n.isPrimary||0!==n.button)&&(null==r||r({event:n}),!0)}}];const Mn={move:{name:"mousemove"},end:{name:"mouseup"}};var On;!function(e){e[e.RightClick=2]="RightClick"}(On||(On={}));(class extends _n{constructor(e){super(e,Mn,Xe(e.event.target))}}).activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==On.RightClick&&(null==r||r({event:n}),!0)}}];const Nn={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};var In,$n;function Ln(e){let{acceleration:t,activator:n=In.Pointer,canScroll:r,draggingRect:o,enabled:i,interval:a=5,order:s=$n.TreeOrder,pointerCoordinates:l,scrollableAncestors:c,scrollableAncestorRects:d,delta:u,threshold:p}=e;const h=function(e){let{delta:t,disabled:n}=e;const r=tt(t);return Ge(e=>{if(n||!r||!e)return jn;const o={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[sn.Backward]:e.x[sn.Backward]||-1===o.x,[sn.Forward]:e.x[sn.Forward]||1===o.x},y:{[sn.Backward]:e.y[sn.Backward]||-1===o.y,[sn.Forward]:e.y[sn.Forward]||1===o.y}}},[n,t,r])}({delta:u,disabled:!i}),[g,f]=function(){const e=Be(null);return[He((t,n)=>{e.current=setInterval(t,n)},[]),He(()=>{null!==e.current&&(clearInterval(e.current),e.current=null)},[])]}(),m=St({x:0,y:0}),v=St({x:0,y:0}),b=kt(()=>{switch(n){case In.Pointer:return l?{top:l.y,bottom:l.y,left:l.x,right:l.x}:null;case In.DraggableRect:return o}},[n,o,l]),y=St(null),w=Et(()=>{const e=y.current;if(!e)return;const t=m.current.x*v.current.x,n=m.current.y*v.current.y;e.scrollBy(t,n)},[]),x=kt(()=>s===$n.TreeOrder?[...c].reverse():c,[s,c]);xt(()=>{if(i&&c.length&&b){for(const e of x){if(!1===(null==r?void 0:r(e)))continue;const n=c.indexOf(e),o=d[n];if(!o)continue;const{direction:i,speed:s}=un(e,o,b,t,p);for(const e of["x","y"])h[e][i[e]]||(s[e]=0,i[e]=0);if(s.x>0||s.y>0)return f(),y.current=e,g(w,a),m.current=s,void(v.current=i)}m.current={x:0,y:0},v.current={x:0,y:0},f()}else f()},[t,w,r,f,i,a,JSON.stringify(b),JSON.stringify(h),g,c,x,d,JSON.stringify(p)])}(class extends _n{constructor(e){super(e,Nn)}static setup(){return window.addEventListener(Nn.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Nn.move.name,e)};function e(){}}}).activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return!(o.length>1)&&(null==r||r({event:n}),!0)}}],function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"}(In||(In={})),function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"}($n||($n={}));const jn={x:{[sn.Backward]:!1,[sn.Forward]:!1},y:{[sn.Backward]:!1,[sn.Forward]:!1}};var Wn,Pn;!function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"}(Wn||(Wn={})),function(e){e.Optimized="optimized"}(Pn||(Pn={}));const Bn=new Map;function Hn(e,t){return Ge(n=>e?n||("function"==typeof t?t(e):e):null,[t,e])}function zn(e){let{callback:t,disabled:n}=e;const r=Qe(t),o=kt(()=>{if(n||"undefined"==typeof window||void 0===window.ResizeObserver)return;const{ResizeObserver:e}=window;return new e(r)},[n]);return xt(()=>()=>null==o?void 0:o.disconnect(),[o]),o}function Fn(e){return new mn(Zt(e),e)}function qn(e,t,n){void 0===t&&(t=Fn);const[r,o]=Ct(null);function i(){o(r=>{if(!e)return null;var o;if(!1===e.isConnected)return null!=(o=null!=r?r:n)?o:null;const i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}const a=function(e){let{callback:t,disabled:n}=e;const r=Qe(t),o=kt(()=>{if(n||"undefined"==typeof window||void 0===window.MutationObserver)return;const{MutationObserver:e}=window;return new e(r)},[r,n]);return xt(()=>()=>null==o?void 0:o.disconnect(),[o]),o}({callback(t){if(e)for(const n of t){const{type:t,target:r}=n;if("childList"===t&&r instanceof HTMLElement&&r.contains(e)){i();break}}}}),s=zn({callback:i});return Je(()=>{i(),e?(null==s||s.observe(e),null==a||a.observe(document.body,{childList:!0,subtree:!0})):(null==s||s.disconnect(),null==a||a.disconnect())},[e]),r}const Un=[];function Kn(e,t){void 0===t&&(t=[]);const n=St(null);return xt(()=>{n.current=null},t),xt(()=>{const t=e!==Wt;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?at(e,n.current):Wt}function Yn(e){return kt(()=>e?function(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}(e):null,[e])}const Vn=[];function Xn(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Ye(t)?t:e}const Jn=[{sensor:Tn,options:{}},{sensor:Sn,options:{}}],Qn={current:{}},Zn={draggable:{measure:Gt},droppable:{measure:Gt,strategy:Wn.WhileDragging,frequency:Pn.Optimized},dragOverlay:{measure:Zt}};class Gn extends Map{get(e){var t;return null!=e&&null!=(t=super.get(e))?t:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){var t,n;return null!=(t=null==(n=this.get(e))?void 0:n.node.current)?t:void 0}}const er={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Gn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:jt},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Zn,measureDroppableContainers:jt,windowRect:null,measuringScheduled:!1},tr={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:jt,draggableNodes:new Map,over:null,measureDroppableContainers:jt},nr=yt(tr),rr=yt(er);function or(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Gn}}}function ir(e,t){switch(t.type){case Lt.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Lt.DragMove:return null==e.draggable.active?e:{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}};case Lt.DragEnd:case Lt.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Lt.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Gn(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case Lt.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Gn(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case Lt.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Gn(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function ar(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=wt(nr),i=tt(r),a=tt(null==n?void 0:n.id);return xt(()=>{if(!t&&!r&&i&&null!=a){if(!st(i))return;if(document.activeElement===i.target)return;const e=o.get(a);if(!e)return;const{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(const e of[t.current,n.current]){if(!e)continue;const t=ut(e);if(t){t.focus();break}}})}},[r,t,o,a,i]),null}function sr(e,t){let{transform:n,...r}=t;return null!=e&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}const lr=yt({...Wt,scaleX:1,scaleY:1});var cr;!function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"}(cr||(cr={})),Rt(function(e){var t,n,r,o;let{id:i,accessibility:a,autoScroll:s=!0,children:l,sensors:c=Jn,collisionDetection:d=Kt,measuring:u,modifiers:p,...h}=e;const g=At(ir,void 0,or),[f,m]=g,[v,b]=function(){const[e]=Ct(()=>new Set),t=Et(t=>(e.add(t),()=>e.delete(t)),[e]);return[Et(t=>{let{type:n,event:r}=t;e.forEach(e=>{var t;return null==(t=e[n])?void 0:t.call(e,r)})},[e]),t]}(),[y,w]=Ct(cr.Uninitialized),x=y===cr.Initialized,{draggable:{active:C,nodes:E,translate:k},droppable:{containers:S}}=f,R=null!=C?E.get(C):null,A=St({initial:null,translated:null}),_=kt(()=>{var e;return null!=C?{id:C,data:null!=(e=null==R?void 0:R.data)?e:Qn,rect:A}:null},[C,R]),D=St(null),[T,M]=Ct(null),[O,N]=Ct(null),I=Ze(h,Object.values(h)),$=rt("DndDescribedBy",i),L=kt(()=>S.getEnabled(),[S]),j=kt(()=>({draggable:{...Zn.draggable,...null==W?void 0:W.draggable},droppable:{...Zn.droppable,...null==W?void 0:W.droppable},dragOverlay:{...Zn.dragOverlay,...null==W?void 0:W.dragOverlay}}),[null==(W=u)?void 0:W.draggable,null==W?void 0:W.droppable,null==W?void 0:W.dragOverlay]);var W;const{droppableRects:P,measureDroppableContainers:B,measuringScheduled:H}=function(e,t){let{dragging:n,dependencies:r,config:o}=t;const[i,a]=Ct(null),{frequency:s,measure:l,strategy:c}=o,d=St(e),u=function(){switch(c){case Wn.Always:return!1;case Wn.BeforeDragging:return n;default:return!n}}(),p=Ze(u),h=Et(function(e){void 0===e&&(e=[]),p.current||a(t=>null===t?e:t.concat(e.filter(e=>!t.includes(e))))},[p]),g=St(null),f=Ge(t=>{if(u&&!n)return Bn;if(!t||t===Bn||d.current!==e||null!=i){const t=new Map;for(let n of e){if(!n)continue;if(i&&i.length>0&&!i.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}const e=n.node.current,r=e?new mn(l(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,i,n,u,l]);return xt(()=>{d.current=e},[e]),xt(()=>{u||h()},[n,u]),xt(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),xt(()=>{u||"number"!=typeof s||null!==g.current||(g.current=setTimeout(()=>{h(),g.current=null},s))},[s,u,h,...r]),{droppableRects:f,measureDroppableContainers:h,measuringScheduled:null!=i}}(L,{dragging:x,dependencies:[k.x,k.y],config:j.droppable}),z=function(e,t){const n=null!=t?e.get(t):void 0,r=n?n.node.current:null;return Ge(e=>{var n;return null==t?null:null!=(n=null!=r?r:e)?n:null},[r,t])}(E,C),F=kt(()=>O?lt(O):null,[O]),q=function(){const e=!1===(null==T?void 0:T.autoScrollEnabled),t="object"==typeof s?!1===s.enabled:!1===s,n=x&&!e&&!t;if("object"==typeof s)return{...s,enabled:n};return{enabled:n}}(),U=function(e,t){return Hn(e,t)}(z,j.draggable.measure);!function(e){let{activeNode:t,measure:n,initialRect:r,config:o=!0}=e;const i=St(!1),{x:a,y:s}="boolean"==typeof o?{x:o,y:o}:o;Je(()=>{if(!a&&!s||!t)return void(i.current=!1);if(i.current||!r)return;const e=null==t?void 0:t.node.current;if(!e||!1===e.isConnected)return;const o=Yt(n(e),r);if(a||(o.x=0),s||(o.y=0),i.current=!0,Math.abs(o.x)>0||Math.abs(o.y)>0){const t=tn(e);t&&t.scrollBy({top:o.y,left:o.x})}},[t,a,s,r,n])}({activeNode:null!=C?E.get(C):null,config:q.layoutShiftCompensation,initialRect:U,measure:j.draggable.measure});const K=qn(z,j.draggable.measure,U),Y=qn(z?z.parentElement:null),V=St({activatorEvent:null,active:null,activeNode:z,collisionRect:null,collisions:null,droppableRects:P,draggableNodes:E,draggingNode:null,draggingNodeRect:null,droppableContainers:S,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),X=S.getNodeFor(null==(t=V.current.over)?void 0:t.id),J=function(e){let{measure:t}=e;const[n,r]=Ct(null),o=zn({callback:Et(e=>{for(const{target:n}of e)if(Ye(n)){r(e=>{const r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),i=Et(e=>{const n=Xn(e);null==o||o.disconnect(),n&&(null==o||o.observe(n)),r(n?t(n):null)},[t,o]),[a,s]=et(i);return kt(()=>({nodeRef:a,rect:n,setRef:s}),[n,a,s])}({measure:j.dragOverlay.measure}),Q=null!=(n=J.nodeRef.current)?n:z,Z=x?null!=(r=J.rect)?r:K:null,G=Boolean(J.nodeRef.current&&J.rect),ee=Yt(te=G?null:K,Hn(te));var te;const ne=Yn(Q?Ue(Q):null),re=function(e){const t=St(e),n=Ge(n=>e?n&&n!==Un&&e&&t.current&&e.parentNode===t.current.parentNode?n:en(e):Un,[e]);return xt(()=>{t.current=e},[e]),n}(x?null!=X?X:z:null),oe=function(e,t){void 0===t&&(t=Zt);const[n]=e,r=Yn(n?Ue(n):null),[o,i]=Ct(Vn);function a(){i(()=>e.length?e.map(e=>ln(e)?r:new mn(t(e),e)):Vn)}const s=zn({callback:a});return Je(()=>{null==s||s.disconnect(),a(),e.forEach(e=>null==s?void 0:s.observe(e))},[e]),o}(re),ie=sr(p,{transform:{x:k.x-ee.x,y:k.y-ee.y,scaleX:1,scaleY:1},activatorEvent:O,active:_,activeNodeRect:K,containerNodeRect:Y,draggingNodeRect:Z,over:V.current.over,overlayNodeRect:J.rect,scrollableAncestors:re,scrollableAncestorRects:oe,windowRect:ne}),ae=F?it(F,k):null,se=function(e){const[t,n]=Ct(null),r=St(e),o=Et(e=>{const t=nn(e.target);t&&n(e=>e?(e.set(t,an(t)),new Map(e)):null)},[]);return xt(()=>{const t=r.current;if(e!==t){i(t);const a=e.map(e=>{const t=nn(e);return t?(t.addEventListener("scroll",o,{passive:!0}),[t,an(t)]):null}).filter(e=>null!=e);n(a.length?new Map(a):null),r.current=e}return()=>{i(e),i(t)};function i(e){e.forEach(e=>{const t=nn(e);null==t||t.removeEventListener("scroll",o)})}},[o,e]),kt(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>it(e,t),Wt):hn(e):Wt,[e,t])}(re),le=Kn(se),ce=Kn(se,[K]),de=it(ie,le),ue=Z?Vt(Z,ie):null,pe=_&&ue?d({active:_,collisionRect:ue,droppableRects:P,droppableContainers:L,pointerCoordinates:ae}):null,he=function(e,t){if(!e||0===e.length)return null;const[n]=e;return t?n[t]:n}(pe,"id"),[ge,fe]=Ct(null),me=function(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}(G?ie:it(ie,ce),null!=(o=null==ge?void 0:ge.rect)?o:null,K),ve=St(null),be=Et((e,t)=>{let{sensor:n,options:r}=t;if(null==D.current)return;const o=E.get(D.current);if(!o)return;const i=e.nativeEvent,a=new n({active:D.current,activeNode:o,event:i,options:r,context:V,onAbort(e){if(!E.get(e))return;const{onDragAbort:t}=I.current,n={id:e};null==t||t(n),v({type:"onDragAbort",event:n})},onPending(e,t,n,r){if(!E.get(e))return;const{onDragPending:o}=I.current,i={id:e,constraint:t,initialCoordinates:n,offset:r};null==o||o(i),v({type:"onDragPending",event:i})},onStart(e){const t=D.current;if(null==t)return;const n=E.get(t);if(!n)return;const{onDragStart:r}=I.current,o={activatorEvent:i,active:{id:t,data:n.data,rect:A}};Mt(()=>{null==r||r(o),w(cr.Initializing),m({type:Lt.DragStart,initialCoordinates:e,active:t}),v({type:"onDragStart",event:o}),M(ve.current),N(i)})},onMove(e){m({type:Lt.DragMove,coordinates:e})},onEnd:s(Lt.DragEnd),onCancel:s(Lt.DragCancel)});function s(e){return async function(){const{active:t,collisions:n,over:r,scrollAdjustedTranslate:o}=V.current;let a=null;if(t&&o){const{cancelDrop:s}=I.current;if(a={activatorEvent:i,active:t,collisions:n,delta:o,over:r},e===Lt.DragEnd&&"function"==typeof s){await Promise.resolve(s(a))&&(e=Lt.DragCancel)}}D.current=null,Mt(()=>{m({type:e}),w(cr.Uninitialized),fe(null),M(null),N(null),ve.current=null;const t=e===Lt.DragEnd?"onDragEnd":"onDragCancel";if(a){const e=I.current[t];null==e||e(a),v({type:t,event:a})}})}}ve.current=a},[E]),ye=Et((e,t)=>(n,r)=>{const o=n.nativeEvent,i=E.get(r);if(null!==D.current||!i||o.dndKit||o.defaultPrevented)return;const a={active:i};!0===e(n,t.options,a)&&(o.dndKit={capturedBy:t.sensor},D.current=r,be(n,t))},[E,be]),we=function(e,t){return kt(()=>e.reduce((e,n)=>{const{sensor:r}=n;return[...e,...r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}))]},[]),[e,t])}(c,ye);!function(e){xt(()=>{if(!ze)return;const t=e.map(e=>{let{sensor:t}=e;return null==t.setup?void 0:t.setup()});return()=>{for(const e of t)null==e||e()}},e.map(e=>{let{sensor:t}=e;return t}))}(c),Je(()=>{K&&y===cr.Initializing&&w(cr.Initialized)},[K,y]),xt(()=>{const{onDragMove:e}=I.current,{active:t,activatorEvent:n,collisions:r,over:o}=V.current;if(!t||!n)return;const i={active:t,activatorEvent:n,collisions:r,delta:{x:de.x,y:de.y},over:o};Mt(()=>{null==e||e(i),v({type:"onDragMove",event:i})})},[de.x,de.y]),xt(()=>{const{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:o}=V.current;if(!e||null==D.current||!t||!o)return;const{onDragOver:i}=I.current,a=r.get(he),s=a&&a.rect.current?{id:a.id,rect:a.rect.current,data:a.data,disabled:a.disabled}:null,l={active:e,activatorEvent:t,collisions:n,delta:{x:o.x,y:o.y},over:s};Mt(()=>{fe(s),null==i||i(l),v({type:"onDragOver",event:l})})},[he]),Je(()=>{V.current={activatorEvent:O,active:_,activeNode:z,collisionRect:ue,collisions:pe,droppableRects:P,draggableNodes:E,draggingNode:Q,draggingNodeRect:Z,droppableContainers:S,over:ge,scrollableAncestors:re,scrollAdjustedTranslate:de},A.current={initial:Z,translated:ue}},[_,z,pe,ue,E,Q,Z,P,S,ge,re,de]),Ln({...q,delta:k,draggingRect:ue,pointerCoordinates:ae,scrollableAncestors:re,scrollableAncestorRects:oe});const xe=kt(()=>({active:_,activeNode:z,activeNodeRect:K,activatorEvent:O,collisions:pe,containerNodeRect:Y,dragOverlay:J,draggableNodes:E,droppableContainers:S,droppableRects:P,over:ge,measureDroppableContainers:B,scrollableAncestors:re,scrollableAncestorRects:oe,measuringConfiguration:j,measuringScheduled:H,windowRect:ne}),[_,z,K,O,pe,Y,J,E,S,P,ge,B,re,oe,j,H,ne]),Ce=kt(()=>({activatorEvent:O,activators:we,active:_,activeNodeRect:K,ariaDescribedById:{draggable:$},dispatch:m,draggableNodes:E,over:ge,measureDroppableContainers:B}),[O,we,_,K,m,$,E,ge,B]);return bt.createElement(Ot.Provider,{value:b},bt.createElement(nr.Provider,{value:Ce},bt.createElement(rr.Provider,{value:xe},bt.createElement(lr.Provider,{value:me},l)),bt.createElement(ar,{disabled:!1===(null==a?void 0:a.restoreFocus)})),bt.createElement($t,{...a,hiddenTextDescribedById:$}))});const dr=yt(null),ur="button";function pr(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const i=rt("Draggable"),{activators:a,activatorEvent:s,active:l,activeNodeRect:c,ariaDescribedById:d,draggableNodes:u,over:p}=wt(nr),{role:h=ur,roleDescription:g="draggable",tabIndex:f=0}=null!=o?o:{},m=(null==l?void 0:l.id)===t,v=wt(m?lr:dr),[b,y]=et(),[w,x]=et(),C=function(e,t){return kt(()=>e.reduce((e,n)=>{let{eventName:r,handler:o}=n;return e[r]=e=>{o(e,t)},e},{}),[e,t])}(a,t),E=Ze(n);Je(()=>(u.set(t,{id:t,key:i,node:b,activatorNode:w,data:E}),()=>{const e=u.get(t);e&&e.key===i&&u.delete(t)}),[u,t]);return{active:l,activatorEvent:s,activeNodeRect:c,attributes:kt(()=>({role:h,tabIndex:f,"aria-disabled":r,"aria-pressed":!(!m||h!==ur)||void 0,"aria-roledescription":g,"aria-describedby":d.draggable}),[r,h,f,m,g,d.draggable]),isDragging:m,listeners:r?void 0:C,node:b,over:p,setNodeRef:y,setActivatorNodeRef:x,transform:v}}const hr={timeout:25};function gr(e){let{animation:t,children:n}=e;const[r,o]=Ct(null),[i,a]=Ct(null),s=tt(n);return n||r||!s||o(s),Je(()=>{if(!i)return;const e=null==r?void 0:r.key,n=null==r?void 0:r.props.id;null!=e&&null!=n?Promise.resolve(t(n,i)).then(()=>{o(null)}):o(null)},[t,r,i]),bt.createElement(bt.Fragment,null,n,r?_t(r,{ref:a}):null)}const fr={x:0,y:0,scaleX:1,scaleY:1};function mr(e){let{children:t}=e;return bt.createElement(nr.Provider,{value:tr},bt.createElement(lr.Provider,{value:fr},t))}const vr={position:"fixed",touchAction:"none"},br=e=>st(e)?"transform 250ms ease":void 0,yr=Dt((e,t)=>{let{as:n,activatorEvent:r,adjustScale:o,children:i,className:a,rect:s,style:l,transform:c,transition:d=br}=e;if(!s)return null;const u=o?c:{...c,scaleX:1,scaleY:1},p={...vr,width:s.width,height:s.height,top:s.top,left:s.left,transform:ct.Transform.toString(u),transformOrigin:o&&r?Bt(r,s):void 0,transition:"function"==typeof d?d(r):d,...l};return bt.createElement(n,{className:a,style:p,ref:t},i)}),wr={duration:250,easing:"ease",keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:ct.Transform.toString(t)},{transform:ct.Transform.toString(n)}]},sideEffects:(xr={styles:{active:{opacity:"0"}}},e=>{let{active:t,dragOverlay:n}=e;const r={},{styles:o,className:i}=xr;if(null!=o&&o.active)for(const[e,n]of Object.entries(o.active))void 0!==n&&(r[e]=t.node.style.getPropertyValue(e),t.node.style.setProperty(e,n));if(null!=o&&o.dragOverlay)for(const[e,t]of Object.entries(o.dragOverlay))void 0!==t&&n.node.style.setProperty(e,t);return null!=i&&i.active&&t.node.classList.add(i.active),null!=i&&i.dragOverlay&&n.node.classList.add(i.dragOverlay),function(){for(const[e,n]of Object.entries(r))t.node.style.setProperty(e,n);null!=i&&i.active&&t.node.classList.remove(i.active)}})};var xr;function Cr(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:o}=e;return Qe((e,i)=>{if(null===t)return;const a=n.get(e);if(!a)return;const s=a.node.current;if(!s)return;const l=Xn(i);if(!l)return;const{transform:c}=Ue(i).getComputedStyle(i),d=Jt(c);if(!d)return;const u="function"==typeof t?t:function(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...wr,...e};return e=>{let{active:i,dragOverlay:a,transform:s,...l}=e;if(!t)return;const c={x:a.rect.left-i.rect.left,y:a.rect.top-i.rect.top},d={scaleX:1!==s.scaleX?i.rect.width*s.scaleX/a.rect.width:1,scaleY:1!==s.scaleY?i.rect.height*s.scaleY/a.rect.height:1},u={x:s.x-c.x,y:s.y-c.y,...d},p=o({...l,active:i,dragOverlay:a,transform:{initial:s,final:u}}),[h]=p,g=p[p.length-1];if(JSON.stringify(h)===JSON.stringify(g))return;const f=null==r?void 0:r({active:i,dragOverlay:a,...l}),m=a.node.animate(p,{duration:t,easing:n,fill:"forwards"});return new Promise(e=>{m.onfinish=()=>{null==f||f(),e()}})}}(t);return gn(s,o.draggable.measure),u({active:{id:e,data:a.data,node:s,rect:o.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:i,rect:o.dragOverlay.measure(l)},droppableContainers:r,measuringConfiguration:o,transform:d})})}let Er=0;function kr(e){return kt(()=>{if(null!=e)return Er++,Er},[e])}const Sr=bt.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:o,transition:i,modifiers:a,wrapperElement:s="div",className:l,zIndex:c=999}=e;const{activatorEvent:d,active:u,activeNodeRect:p,containerNodeRect:h,draggableNodes:g,droppableContainers:f,dragOverlay:m,over:v,measuringConfiguration:b,scrollableAncestors:y,scrollableAncestorRects:w,windowRect:x}=wt(rr),C=wt(lr),E=kr(null==u?void 0:u.id),k=sr(a,{activatorEvent:d,active:u,activeNodeRect:p,containerNodeRect:h,draggingNodeRect:m.rect,over:v,overlayNodeRect:m.rect,scrollableAncestors:y,scrollableAncestorRects:w,transform:C,windowRect:x}),S=Hn(p),R=Cr({config:r,draggableNodes:g,droppableContainers:f,measuringConfiguration:b}),A=S?m.setRef:void 0;return bt.createElement(mr,null,bt.createElement(gr,{animation:R},u&&E?bt.createElement(yr,{key:E,id:u.id,ref:A,as:s,activatorEvent:d,adjustScale:t,className:l,transition:i,rect:S,style:{zIndex:c,...o},transform:k},n):null))}),Rr=n,{useEffect:Ar}=n,{useRef:_r}=n,Dr=r,{styled:Tr}=o,{Chip:Mr}=a,{color:Or}=s,{renderMath:Nr}=h;function Ir(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],i=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=i(n)):"call"!==o&&"optionalCall"!==o||(n=i((...e)=>n.call(t,...e)),t=void 0)}return n}const $r=Tr("span")(({theme:e,disabled:t})=>({border:`solid 0px ${e.palette.primary.main}`,borderRadius:e.spacing(2),margin:e.spacing(.5),transform:"translate(0, 0)",display:"inline-flex",...t&&{}})),Lr=Tr(Mr)(()=>({backgroundColor:Or.white(),border:`1px solid ${Or.text()}`,color:Or.text(),alignItems:"center",display:"inline-flex",height:"initial",minHeight:"32px",fontSize:"inherit",whiteSpace:"pre-wrap",maxWidth:"374px",pointerEvents:"none",borderRadius:"3px",paddingTop:"12px",paddingBottom:"12px","&.Mui-disabled":{opacity:1}})),jr=Tr("span")(()=>({whiteSpace:"normal","& img":{display:"block",padding:"2px 0"},"& mjx-frac":{fontSize:"120% !important"}}));function Wr({choice:e,disabled:t,instanceId:n}){const r=_r(null),{attributes:o,listeners:i,setNodeRef:a,isDragging:s}=pr({id:`choice-${e.id}`,data:{choice:e,instanceId:n,fromChoice:!0,type:"MaskBlank"},disabled:t});return Ar(()=>{Nr(r.current)},[e.value]),Rr.createElement($r,{ref:a,style:s?{width:Ir([r,"access",e=>e.current,"optionalAccess",e=>e.offsetWidth]),height:Ir([r,"access",e=>e.current,"optionalAccess",e=>e.offsetHeight])}:{},disabled:t,...i,...o},Rr.createElement(Lr,{clickable:!1,disabled:t,ref:r,label:Rr.createElement(jr,{dangerouslySetInnerHTML:{__html:e.value}})}))}Wr.propTypes={choice:Dr.object.isRequired,disabled:Dr.bool,instanceId:Dr.oneOfType([Dr.string,Dr.number])};const Pr=n,Br=r,{findKey:Hr}=i,{DragDroppablePlaceholder:zr}=g;class Fr extends Pr.Component{constructor(...e){super(...e),Fr.prototype.__init.call(this)}static __initStatic(){this.propTypes={disabled:Br.bool,duplicates:Br.bool,choices:Br.arrayOf(Br.shape({label:Br.string,value:Br.string})),value:Br.object,choicePosition:Br.string.isRequired,instanceId:Br.string}}__init(){this.getStyleForWrapper=()=>{const{choicePosition:e}=this.props;switch(e){case"above":return{margin:"0 0 40px 0"};case"below":return{margin:"40px 0 0 0"};case"right":return{margin:"0 0 0 40px"};default:return{margin:"0 40px 0 0"}}}}render(){const{disabled:e,duplicates:t,choices:n,value:r,instanceId:o}=this.props,i=n.filter(e=>{if(!0===t)return!0;return void 0===Hr(r,t=>t===e.id)}),a={...this.getStyleForWrapper(),minWidth:"100px"};return Pr.createElement("div",{style:a},Pr.createElement(zr,{disabled:e,instanceId:o},i.map((t,n)=>Pr.createElement(Wr,{key:`${t.value}-${n}`,disabled:e,choice:t,instanceId:o}))))}}Fr.__initStatic();var qr={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};const Ur=n,{useRef:Kr}=n,{useState:Yr}=n,{useEffect:Vr}=n,Xr=r,Jr=t,{styled:Qr}=o,{Chip:Zr}=a,Gr=l,{color:eo}=s,{renderMath:to}=h;function no(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],i=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=i(n)):"call"!==o&&"optionalCall"!==o||(n=i((...e)=>n.call(t,...e)),t=void 0)}return n}Jr("pie-lib:mask-markup:blank");const ro=Qr("span")(({dragged:e,over:t})=>({border:`solid 0px ${eo.primary()}`,minWidth:"200px",touchAction:"none",overflow:"hidden",whiteSpace:"nowrap",opacity:1,...t&&{whiteSpace:"nowrap",overflow:"hidden"},...e&&{opacity:.5}})),oo=Qr(Zr)(()=>({backgroundColor:eo.background(),border:`2px dashed ${eo.text()}`,color:eo.text(),fontSize:"inherit",maxWidth:"374px",position:"relative",borderRadius:"3px","&.over":{whiteSpace:"nowrap",overflow:"hidden"},"&.parentOver":{border:`1px solid ${qr[500]}`,backgroundColor:`${qr[300]}`},"&.correct":{border:`solid 1px ${eo.correct()}`},"&.incorrect":{border:`solid 1px ${eo.incorrect()}`},"&.Mui-disabled":{opacity:1}})),io=Qr("span")(()=>({whiteSpace:"normal",pointerEvents:"none","& img":{display:"block",padding:"2px 0"},"& p":{marginTop:"0",marginBottom:"0"},"& mjx-frac":{fontSize:"120% !important"},"&.over":{whiteSpace:"nowrap",overflow:"hidden"},"&.hidden":{color:"transparent",opacity:0},"&.dragged":{position:"absolute",left:16,maxWidth:"60px"}}));function ao({disabled:e,choice:t,isOver:n,isDragging:r,dragItem:o,correct:i,emptyResponseAreaWidth:a,emptyResponseAreaHeight:s}){const l=Kr(null),c=Kr(null),d=Kr(null),[u,p]=Yr({height:0,width:0}),h=()=>{f()},g=()=>{const e=no([c,"access",e=>e.current,"optionalAccess",e=>e.querySelector,"call",e=>e("img")]);e?e.onload=h:setTimeout(()=>{f()},300)},f=()=>{if(c.current&&l.current){l.current.style.width="auto";const e=(c.current.offsetWidth||0)+24,t=(c.current.offsetHeight||0)+24,n=parseFloat(a)||0,r=parseFloat(s)||0,o=e<=n?n:e,i=t<=r?r:t;p(e=>({width:o>n?o:e.width,height:i>r?i:e.height})),l.current.style.width=`${o}px`,l.current.style.height=`${i}px`}};Vr(()=>{g()},[]),Vr(()=>{l.current&&to(l.current)},[n,no([o,"optionalAccess",e=>e.choice,"optionalAccess",e=>e.value])]),Vr(()=>{t?g():p({height:0,width:0})},[t]),Vr(()=>{n||r||(d.current={width:l.current.offsetWidth,height:l.current.offsetHeight})},[t,n,r]);const m=o&&n&&o.choice&&o.choice.value,v=t&&t.value,b=n||r?{width:no([d,"access",e=>e.current,"optionalAccess",e=>e.width]),height:no([d,"access",e=>e.current,"optionalAccess",e=>e.height])}:(()=>{const e=isNaN(parseFloat(a))?0:parseFloat(a),t=isNaN(parseFloat(s))?0:parseFloat(s);return{...{height:u.height||t,width:u.width||e},...e?{}:{minWidth:90},...t?{}:{minHeight:32}}})();return Ur.createElement(oo,{clickable:!1,disabled:e,ref:l,component:"span",label:Ur.createElement(Ur.Fragment,null,Ur.createElement(io,{ref:c,draggable:!0,className:Gr({over:n,hidden:m}),dangerouslySetInnerHTML:{__html:v||""}}),m&&Ur.createElement(io,{draggable:!0,className:Gr({over:n,dragged:!0}),dangerouslySetInnerHTML:{__html:m||""}})),className:Gr({over:n,parentOver:n,correct:void 0!==i&&i,incorrect:void 0!==i&&!i}),variant:e?"outlined":void 0,style:b})}function so({id:e,disabled:t,duplicates:n,choice:r,correct:o,onChange:i,emptyResponseAreaWidth:a,emptyResponseAreaHeight:s,instanceId:l}){const{attributes:c,listeners:d,setNodeRef:u,transform:p,isDragging:h}=pr({id:`mask-blank-drag-${e}`,disabled:t||!r,data:{id:e,choice:r,instanceId:l,fromChoice:!1,type:"MaskBlank"}}),{setNodeRef:g,isOver:f,active:m}=function(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const i=rt("Droppable"),{active:a,dispatch:s,over:l,measureDroppableContainers:c}=wt(nr),d=St({disabled:n}),u=St(!1),p=St(null),h=St(null),{disabled:g,updateMeasurementsFor:f,timeout:m}={...hr,...o},v=Ze(null!=f?f:r),b=zn({callback:Et(()=>{u.current?(null!=h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{c(Array.isArray(v.current)?v.current:[v.current]),h.current=null},m)):u.current=!0},[m]),disabled:g||!a}),y=Et((e,t)=>{b&&(t&&(b.unobserve(t),u.current=!1),e&&b.observe(e))},[b]),[w,x]=et(y),C=Ze(t);return xt(()=>{b&&w.current&&(b.disconnect(),u.current=!1,b.observe(w.current))},[w,b]),xt(()=>(s({type:Lt.RegisterDroppable,element:{id:r,key:i,disabled:n,node:w,rect:p,data:C}}),()=>s({type:Lt.UnregisterDroppable,key:i,id:r})),[r]),xt(()=>{n!==d.current.disabled&&(s({type:Lt.SetDroppableDisabled,id:r,key:i,disabled:n}),d.current.disabled=n)},[r,i,n,s]),{active:a,rect:p,isOver:(null==l?void 0:l.id)===r,node:w,over:l,setNodeRef:x}}({id:`mask-blank-drop-${e}`,data:{id:e,accepts:["MaskBlank"],instanceId:l}}),v={transform:ct.Translate.toString(p)};return Ur.createElement(ro,{ref:e=>{u(e),g(e)},style:v,dragged:h,over:f,...c,...d},Ur.createElement(ao,{id:e,disabled:t,duplicates:n,choice:r,isOver:f,dragItem:no([m,"optionalAccess",e=>e.data,"optionalAccess",e=>e.current]),correct:o,onChange:i,emptyResponseAreaWidth:a,emptyResponseAreaHeight:s,instanceId:l}))}ao.defaultProps={emptyResponseAreaWidth:0,emptyResponseAreaHeight:0},ao.propTypes={id:Xr.oneOfType([Xr.string,Xr.number]),disabled:Xr.bool,duplicates:Xr.bool,choice:Xr.object,isOver:Xr.bool,dragItem:Xr.object,correct:Xr.bool,onChange:Xr.func,emptyResponseAreaWidth:Xr.oneOfType([Xr.string,Xr.number]),emptyResponseAreaHeight:Xr.oneOfType([Xr.string,Xr.number]),instanceId:Xr.string},so.defaultProps={emptyResponseAreaWidth:0,emptyResponseAreaHeight:0},so.propTypes={id:Xr.oneOfType([Xr.string,Xr.number]),disabled:Xr.bool,duplicates:Xr.bool,choice:Xr.object,correct:Xr.bool,onChange:Xr.func,emptyResponseAreaWidth:Xr.oneOfType([Xr.string,Xr.number]),emptyResponseAreaHeight:Xr.oneOfType([Xr.string,Xr.number]),instanceId:Xr.string};const lo=n,co=r,{DragProvider:uo}=g;function po(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],i=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=i(n)):"call"!==o&&"optionalCall"!==o||(n=i((...e)=>n.call(t,...e)),t=void 0)}return n}const ho=Le("blank",e=>(t,n,r)=>{const o=po([t,"access",e=>e.data,"optionalAccess",e=>e.dataset])||{};if("blank"===o.component){const{disabled:i,duplicates:a,correctResponse:s,feedback:l,showCorrectAnswer:c,emptyResponseAreaWidth:d,emptyResponseAreaHeight:u,instanceId:p,isDragging:h}=e,g=c?s[o.id]:n[o.id],f=g&&e.choices.find(e=>e.id===g);return lo.createElement(so,{key:`${t.type}-${o.id}`,correct:c||l&&l[o.id],disabled:i,duplicates:a,choice:f,id:o.id,emptyResponseAreaWidth:d,emptyResponseAreaHeight:u,onChange:(e,t)=>{const o={...n};void 0===t?delete o[e]:o[e]=t,r(o)},instanceId:p,isDragging:h})}});class go extends lo.Component{constructor(e){super(e),go.prototype.__init.call(this),go.prototype.__init2.call(this),go.prototype.__init3.call(this),go.prototype.__init4.call(this),this.state={activeDragItem:null}}static __initStatic(){this.propTypes={markup:co.string,layout:co.object,choicesPosition:co.string,choices:co.array,value:co.object,onChange:co.func,duplicates:co.bool,disabled:co.bool,feedback:co.object,correctResponse:co.object,showCorrectAnswer:co.bool,emptyResponseAreaWidth:co.oneOfType([co.string,co.number]),emptyResponseAreaHeight:co.oneOfType([co.string,co.number]),instanceId:co.string}}static __initStatic2(){this.defaultProps={instanceId:"drag-in-the-blank"}}__init(){this.handleDragStart=e=>{const{active:t}=e;po([t,"optionalAccess",e=>e.data,"optionalAccess",e=>e.current])&&this.setState({activeDragItem:t.data.current})}}__init2(){this.renderDragOverlay=()=>{const{activeDragItem:e}=this.state;return e&&"MaskBlank"===e.type?lo.createElement(Wr,{disabled:e.disabled,choice:e.choice,instanceId:e.instanceId}):null}}__init3(){this.handleDragEnd=e=>{const{active:t,over:n}=e,{onChange:r,value:o}=this.props;if(this.setState({activeDragItem:null}),!n||!t||!r)return;const i=t.data.current,a=n.data.current;if("MaskBlank"===po([i,"optionalAccess",e=>e.type])&&po([a,"optionalAccess",e=>e.accepts,"optionalAccess",e=>e.includes,"call",e=>e("MaskBlank")])){const e=i,t=a.id;if(!0===a.toChoiceBoard){if(!e.fromChoice&&e.id){const t={...o};delete t[e.id],r(t)}}else if(!0===e.fromChoice){if(t&&"drag-in-the-blank-droppable"!==t){const n={...o};n[t]=e.choice.id,r(n)}}else if(e.id&&e.id!==t){const n={...o};n[t]=e.choice.id,delete n[e.id],r(n)}}}}__init4(){this.getPositionDirection=e=>{let t,n,r;switch(e){case"left":t="row",r="center";break;case"right":t="row-reverse",n="flex-end",r="center";break;case"below":t="column-reverse";break;default:t="column"}return{flexDirection:t,justifyContent:n,alignItems:r}}}render(){const{markup:e,duplicates:t,value:n,onChange:r,choicesPosition:o,choices:i,correctResponse:a,disabled:s,feedback:l,showCorrectAnswer:c,emptyResponseAreaWidth:d,emptyResponseAreaHeight:u,layout:p,instanceId:h}=this.props,g=o||"below",f={display:"flex",minWidth:"100px",...this.getPositionDirection(g)};return lo.createElement(uo,{onDragStart:this.handleDragStart,onDragEnd:this.handleDragEnd,collisionDetection:qt},lo.createElement("div",{ref:e=>this.rootRef=e,style:f},lo.createElement(Fr,{choicePosition:g,choices:i,value:n,duplicates:t,disabled:s,instanceId:h}),lo.createElement(ho,{elementType:"drag-in-the-blank",markup:e,layout:p,value:n,choices:i,onChange:r,disabled:s,duplicates:t,feedback:l,correctResponse:a,showCorrectAnswer:c,emptyResponseAreaWidth:d,emptyResponseAreaHeight:u,instanceId:h,isDragging:!!this.state.activeDragItem}),lo.createElement(Sr,{style:{pointerEvents:"none"}},this.renderDragOverlay())))}}go.__initStatic(),go.__initStatic2();const fo=n,{styled:mo}=o,vo=l,{color:bo}=s;function yo(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],i=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=i(n)):"call"!==o&&"optionalCall"!==o||(n=i((...e)=>n.call(t,...e)),t=void 0)}return n}let wo,xo;"undefined"!=typeof window&&(wo=require("@pie-lib/editable-html-tip-tap").default,xo=mo(wo)(()=>({display:"inline-block",verticalAlign:"middle",margin:"4px",borderRadius:"4px",border:`1px solid ${bo.black()}`,"&.correct":{border:`1px solid ${bo.correct()}`},"&.incorrect":{border:`1px solid ${bo.incorrect()}`}})));Le("input",e=>(t,n)=>{const{adjustedLimit:r,disabled:o,feedback:i,showCorrectAnswer:a,maxLength:s,spellCheck:l,pluginProps:c,onChange:d}=e,u=yo([t,"access",e=>e.data,"optionalAccess",e=>e.dataset])||{};if("input"===u.component){const p=(e.choices&&u&&e.choices[u.id]||[])[0],h=a?p&&p.label:n[u.id]||"",g=s&&s[u.id],f=i&&i[u.id],m=a||"correct"===f,v=!a&&"incorrect"===f,b=e=>{const t={...n,[u.id]:e};d(t)},y=e=>{if("Enter"===e.key||13===e.keyCode)return!0};return fo.createElement(xo,{id:u.id,key:`${t.type}-input-${u.id}`,disabled:a||o,disableUnderline:!0,onChange:b,markup:h||"",charactersLimit:r?g:25,activePlugins:["languageCharacters"],pluginProps:c,languageCharactersProps:[{language:"spanish"}],spellCheck:l,width:`calc(${g}em + 32px)`,onKeyDown:y,autoWidthToolbar:!0,toolbarOpts:{minWidth:"auto",noBorder:!0,isHidden:!!yo([c,"optionalAccess",e=>e.characters,"optionalAccess",e=>e.disabled])},className:vo({correct:m,incorrect:v})})}});var Co=Le("input",e=>(t,n,r)=>{const o=t.data&&t.data.dataset||{};if("input"===o.component)return e.customMarkMarkupComponent(o.id)});const Eo=n,ko=r,{Button:So}=a,{InputLabel:Ro}=a,{Menu:Ao}=a,{MenuItem:_o}=a,{ArrowDropDown:Do}=c,{ArrowDropUp:To}=c,{Close:Mo}=c,{Check:Oo}=c,{styled:No}=o,{color:Io}=s,{renderMath:$o}=h,Lo=No(So)(()=>({color:Io.text(),border:`1px solid ${Io.borderGray()}`,borderRadius:"4px",justifyContent:"space-between",backgroundColor:Io.background(),position:"relative",height:"45px",width:"fit-content",margin:"2px",textTransform:"none","& span":{paddingRight:"5px"},"& svg":{position:"absolute",right:0,top:"calc(50% - 12px)",pointerEvents:"none",color:Io.text(),marginLeft:"5px"},"&.Mui-focused":{outline:`3px solid ${Io.tertiary()}`,outlineOffset:"2px",borderWidth:"3px"},"&.disabledCorrect":{borderWidth:"2px",borderColor:Io.correct(),color:`${Io.text()} !important`},"&.disabledIncorrect":{borderWidth:"2px",borderColor:Io.incorrectWithIcon(),color:`${Io.text()} !important`}})),jo=No(Ao)(()=>({backgroundColor:Io.background(),border:`1px solid ${Io.correct()} !important`,"&:hover":{border:`1px solid ${Io.text()} `,borderColor:"initial"},"&:focus":{border:`1px solid ${Io.text()}`,borderColor:"initial"},"& .MuiList-root":{padding:0}})),Wo=No(_o)(()=>({color:Io.text(),backgroundColor:Io.background(),"&.Mui-focused":{outline:`3px solid ${Io.tertiary()}`,outlineOffset:"-1px",color:Io.text(),backgroundColor:Io.background()},"&:hover":{color:Io.text(),backgroundColor:Io.dropdownBackground()},boxSizing:"border-box",padding:"25px",borderRadius:"4px","&.selected":{color:`${Io.text()} !important`,backgroundColor:`${Io.background()} !important`,"&:hover":{color:Io.text(),backgroundColor:`${Io.dropdownBackground()} !important`}}})),Po=No("span")(()=>({fontSize:"max(1rem, 14px)"})),Bo=No("span")(()=>({fontSize:"max(1rem, 14px)",position:"absolute",right:"10px"})),Ho=No(Ro)(()=>({position:"absolute",left:"-10000px",top:"auto",width:"1px",height:"1px",overflow:"hidden"})),zo=No(Oo)(()=>({color:`${Io.white()} !important`,position:"absolute",top:"-8px !important",left:"-8px",marginLeft:"0 !important",borderRadius:"50%",fontSize:"16px",padding:"2px","&.correct":{backgroundColor:Io.correct()},"&.incorrect":{backgroundColor:Io.incorrectWithIcon()}})),Fo=No(Mo)(()=>({color:`${Io.white()} !important`,position:"absolute",top:"-8px !important",left:"-8px",marginLeft:"0 !important",borderRadius:"50%",fontSize:"16px",padding:"2px","&.correct":{backgroundColor:Io.correct()},"&.incorrect":{backgroundColor:Io.incorrectWithIcon()}}));class qo extends Eo.Component{static __initStatic(){this.propTypes={id:ko.string,value:ko.string,disabled:ko.bool,onChange:ko.func,correct:ko.bool,choices:ko.arrayOf(ko.shape({value:ko.string,label:ko.string})),showCorrectAnswer:ko.bool,singleQuery:ko.bool,correctValue:ko.string}}constructor(e){super(e),qo.prototype.__init.call(this),qo.prototype.__init2.call(this),qo.prototype.__init3.call(this),qo.prototype.__init4.call(this),qo.prototype.__init5.call(this),this.state={anchorEl:null,highlightedOptionId:null,menuWidth:null,previewValue:null},this.hiddenRef=Eo.createRef(),this.buttonRef=Eo.createRef(),this.previewRef=Eo.createRef(),this.elementRefs=[]}componentDidMount(){this.hiddenRef.current&&null===this.state.menuWidth&&this.setState({menuWidth:this.hiddenRef.current.clientWidth})}componentDidUpdate(e,t){const n=this.hiddenRef.current;if(!t.anchorEl&&this.state.anchorEl&&this.elementRefs.forEach(e=>{if(!e)return;const t=e.querySelector("[data-latex], [data-raw]"),n=e.querySelector("mjx-container"),r=e.querySelector('[data-math-handled="true"]');!t||r&&n||$o(e)}),n){const e=n.clientWidth;e!==this.state.menuWidth&&(this.elementRefs.forEach(e=>{e&&$o(e)}),$o(n),this.setState({menuWidth:e}))}}__init(){this.handleClick=e=>this.setState({anchorEl:e.currentTarget})}__init2(){this.handleClose=()=>{const{value:e}=this.props;this.setState({anchorEl:null,previewValue:null,highlightedOptionId:null}),!e&&this.previewRef.current&&(this.previewRef.current.innerHTML="")}}__init3(){this.handleHighlight=e=>{const t={highlightedOptionId:`dropdown-option-${this.props.id}-${e}`};this.props.value||(t.previewValue=this.props.choices[e].value),this.setState(t)}}__init4(){this.handleSelect=(e,t)=>{this.props.onChange(this.props.id,e),this.handleHighlight(t),this.handleClose()}}__init5(){this.handleHover=e=>{if(this.props.value)return;const t=`dropdown-option-${this.props.id}-${e}`,n=this.state.previewValue;this.setState({highlightedOptionId:t,previewValue:n},()=>{const t=this.elementRefs[e],n=this.previewRef.current;t&&n&&(n.innerHTML=t.innerHTML)})}}getLabel(e,t){const n=(e||[]).find(e=>e.value===t);return n?n.label.trim():void 0}render(){const{id:e,correct:t,disabled:n,value:r,choices:o,showCorrectAnswer:i,singleQuery:a,correctValue:s}=this.props,{anchorEl:l}=this.state,c=Boolean(l),d=`dropdown-button-${e}`,u=`dropdown-menu-${e}`,p=`dropdown-value-${e}`;let h;this.elementRefs=[],n&&void 0!==t&&(h=t||i?"disabledCorrect":"disabledIncorrect");const g=parseInt(e,10)+1,f=a?"Query-label":`Query-label-${g}`,m=a?"Query":`Query ${g}`;let v=null;return n&&void 0!==t&&(v=t||i?Eo.createElement(zo,{className:"correct"}):Eo.createElement(Fo,{className:"incorrect"})),Eo.createElement(Eo.Fragment,null,Eo.createElement("div",{ref:this.hiddenRef,style:{position:"absolute",visibility:"hidden",top:0,left:0},tabIndex:-1,"aria-hidden":"true"},(o||[]).map((e,t)=>Eo.createElement(Wo,{key:t,tabIndex:-1,"aria-hidden":"true"},Eo.createElement(Po,{dangerouslySetInnerHTML:{__html:e.label}})))),Eo.createElement(Ho,{id:f,tabIndex:-1,"aria-hidden":"true"},m),Eo.createElement(Lo,{ref:this.buttonRef,style:{...this.state.menuWidth&&{minWidth:`calc(${this.state.menuWidth}px + 8px)`},borderWidth:c?"2px":"1px",transition:"border-width 0.2s ease-in-out"},"aria-controls":c?u:void 0,"aria-haspopup":"listbox","aria-expanded":c?"true":void 0,"aria-activedescendant":this.state.highlightedOptionId,onClick:this.handleClick,className:h,disabled:n,id:d,role:"combobox","aria-label":`Select an option for ${m}`,"aria-labelledby":p},v,Eo.createElement(Po,{id:p,ref:this.previewRef,dangerouslySetInnerHTML:{__html:s||(c&&this.state.previewValue?this.getLabel(o,this.state.previewValue):this.getLabel(o,r)||"")}}),c?Eo.createElement(To,null):Eo.createElement(Do,null)),Eo.createElement(jo,{id:u,anchorEl:l,keepMounted:!0,open:c,onClose:this.handleClose,getContentAnchorEl:null,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},transitionDuration:{enter:225,exit:195},slotProps:{paper:this.state.menuWidth?{style:{minWidth:this.state.menuWidth,padding:"4px"}}:void 0,list:{"aria-labelledby":d,role:"listbox",disablePadding:!0}}},(o||[]).map((t,n)=>{const o=`dropdown-option-${e}-${n}`;return Eo.createElement(Wo,{id:o,className:t.value===r?"selected":"",key:`${t.label}-${n}`,value:t.value,onClick:()=>this.handleSelect(t.value,n),role:"option","aria-selected":this.state.highlightedOptionId===o?"true":void 0,onMouseOver:()=>this.handleHover(n)},Eo.createElement(Po,{ref:e=>this.elementRefs[n]=e,dangerouslySetInnerHTML:{__html:t.label}}),Eo.createElement(Bo,{dangerouslySetInnerHTML:{__html:t.value===r?" &check;":""}}))})))}}qo.__initStatic();const Uo=n;Le("dropdown",e=>(t,n,r)=>{const o=t.data&&t.data.dataset||{};if("dropdown"===o.component){const{choices:i,disabled:a,feedback:s,showCorrectAnswer:l}=e,c=i&&i[o.id]&&i[o.id].find(e=>e.correct),d=l?c&&c.value:n[o.id];return Uo.createElement(qo,{key:`${t.type}-dropdown-${o.id}`,correct:s&&s[o.id]&&"correct"===s[o.id],disabled:a||l,value:d,correctValue:l?c&&c.label:void 0,id:o.id,onChange:r,choices:i[o.id],showCorrectAnswer:l,singleQuery:1==Object.keys(i).length})}});const Ko=n,Yo=r,{isEqual:Vo}=i,{isEmpty:Xo}=i,{styled:Jo}=o,{Tooltip:Qo}=a,{color:Zo}=s,{Collapsible:Go}=s,{Readable:ei}=s,{hasText:ti}=s,{hasMedia:ni}=s,{PreviewPrompt:ri}=s,{UiLayout:oi}=s,ii=d,ai=e,{mq:si}=u,{HorizontalKeypad:li}=u,{updateSpans:ci}=u,di=p,{renderMath:ui}=h;function pi(e){let t,n=e[0],r=1;for(;r<e.length;){const o=e[r],i=e[r+1];if(r+=2,("optionalAccess"===o||"optionalCall"===o)&&null==n)return;"access"===o||"optionalAccess"===o?(t=n,n=i(n)):"call"!==o&&"optionalCall"!==o||(n=i((...e)=>n.call(t,...e)),t=void 0)}return n}const hi=Jo(oi)({color:Zo.text(),backgroundColor:Zo.background(),display:"inline-block"}),gi=Jo("div")({width:"100%",position:"relative",backgroundColor:Zo.background(),color:Zo.text()}),fi=Jo("div")(({theme:e})=>({marginBottom:e.spacing(2)})),mi=Jo("div")(({theme:e})=>({marginBottom:e.spacing(2)})),vi=Jo("div")({position:"relative","& > div > div":{display:"flex",alignItems:"baseline",flexWrap:"wrap"},"& .mq-overarrow-inner":{border:"none !important",padding:"0 !important"},"& .mq-overarrow-inner-right":{display:"none !important"},"& .mq-overarrow-inner-left":{display:"none !important"},"& .mq-overarrow.mq-arrow-both":{minWidth:"1.23em","& *":{lineHeight:"1 !important"},"&:before":{top:"-0.4em",left:"-1px"},"&:after":{top:"-2.4em",right:"-1px"},"&.mq-empty:after":{top:"-0.45em"}},"& .mq-overarrow.mq-arrow-right":{"&:before":{top:"-0.4em",right:"-1px"}},"& .mq-longdiv-inner":{borderTop:"1px solid !important",paddingTop:"1.5px !important"},"& .mq-parallelogram":{lineHeight:.85}}),bi=Jo("div")(({theme:e,$incorrect:t,$correct:n,$showCorrectness:r,$correctAnswerShown:o})=>({maxWidth:"fit-content",...t&&{borderColor:`${Zo.incorrect()} !important`},...n&&{borderColor:`${Zo.correct()} !important`},...r&&{border:"2px solid"},...o&&{padding:e.spacing(1),letterSpacing:"0.5px"},"& > .mq-math-mode":{"& > .mq-root-block":{"& > .mq-editable-field":{minWidth:"10px",padding:e.spacing(.25)}},"& sup":{top:0}}})),yi=Jo(si.Static)({"& > .mq-root-block":{"& > .mq-editable-field":{borderColor:Zo.text()}}}),wi=Jo("div")(({theme:e})=>({zIndex:10,minWidth:"400px",marginTop:e.spacing(2)})),xi=Jo("div")(({theme:e})=>({marginBottom:e.spacing(1),pointerEvents:"none"})),Ci=Jo("h2")({position:"absolute",left:"-10000px",top:"auto",width:"1px",height:"1px",overflow:"hidden"}),Ei=Jo("div")(({theme:e})=>({marginBottom:e.spacing(2)})),ki=Jo(ii)(({theme:e})=>({color:Zo.text(),marginBottom:e.spacing(2)}));if("undefined"!=typeof document){const e="math-templated-main-styles";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent=`\n .block-container {\n margin: 8px !important;\n display: inline-flex;\n border: 2px solid grey !important;\n }\n .block-response {\n flex: 2;\n color: grey;\n background: rgba(0, 0, 0, 0.04);\n font-size: 0.8rem !important;\n padding: 4px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n border-right: 2px solid #bdbdbd !important;\n }\n .block-math {\n color: ${Zo.text()};\n background-color: ${Zo.background()};\n padding: 4px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 8;\n }\n .block-math > .mq-math-mode > .mq-hasCursor > .mq-cursor {\n display: none;\n }\n .correct {\n border-color: ${Zo.correct()} !important;\n }\n .incorrect {\n border-color: ${Zo.incorrect()} !important;\n }\n `,document.head.appendChild(t)}}let Si=!1;const Ri=/(\{\{\d+\}\})/gm,Ai=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);function _i(e=[],t){return 30*Math.floor(e.length/5)+("miscellaneous"===t?600:500)}function Di(e,t){const{responses:n,disabled:r,markup:o,printMode:i,alwaysShowCorrect:a}=e||{};if(o){if(t.showCorrect)return Object.keys(n||{}).reduce((e,t)=>(e[t]=pi([n,"optionalAccess",e=>e[t],"optionalAccess",e=>e.answer]),e),{});return o.split(Ri).filter(e=>e).reduce((e,n)=>{if(n.match(Ri)){const o=Ti.getResponseKey(n),s=t.session.answers[`r${o}`];if(i&&!a){const t="\\ \\ ".repeat(30)+"\\embed{newLine}[] ";return{...e,[o]:`\\MathQuillMathField[r${o}]{${t.repeat(3)}}`}}return r?{...e,[o]:`\\embed{answerBlock}[r${o}]`}:{...e,[o]:`\\MathQuillMathField[r${o}]{${s&&s.value||""}}`}}return e},{})}}class Ti extends Ko.Component{static __initStatic(){this.getResponseKey=e=>(e||"").replaceAll("{{","").replaceAll("}}","")}static __initStatic2(){this.propTypes={session:Yo.object.isRequired,onSessionChange:Yo.func,model:Yo.object.isRequired}}constructor(e){super(e),Ti.prototype.__init.call(this),Ti.prototype.__init2.call(this),Ti.prototype.__init3.call(this),Ti.prototype.__init4.call(this),Ti.prototype.__init5.call(this),Ti.prototype.__init6.call(this),Ti.prototype.__init7.call(this),Ti.prototype.__init8.call(this),Ti.prototype.__init9.call(this),Ti.prototype.__init10.call(this),Ti.prototype.__init11.call(this),Ti.prototype.__init12.call(this),Ti.prototype.__init13.call(this);const t={},{model:n,session:r}=e||{},{markup:o,alwaysShowCorrect:i}=n||{},{answers:a}=r||{};o&&(o||"").replace(Ri,e=>{const n=Ti.getResponseKey(e),r=a&&a[`r${n}`];t[`r${n}`]={value:pi([r,"optionalAccess",e=>e.value])||""}}),this.state={session:{...e.session,answers:t},activeAnswerBlock:"",showCorrect:i||!1,tooltipContainerRef:Ko.createRef()}}UNSAFE_componentWillMount(){if("undefined"!=typeof window){let e=di.getInterface(2);Si||(e.registerEmbed("answerBlock",e=>({htmlString:`<div class="block-container">\n <div class="block-response" id="${e}Index">R</div>\n <div class="block-math">\n <span id="${e}"></span>\n </div>\n </div>`,text:()=>"text",latex:()=>`\\embed{answerBlock}[${e}]`})),Si=!0)}}__init(){this.handleAnswerBlockDomUpdate=()=>{const{model:e}=this.props,{session:t,showCorrect:n}=this.state,r=t.answers;this.root&&e.disabled&&!n&&Object.keys(r).forEach(t=>{const n=this.root.querySelector(`#${t}`),o=this.root.querySelector(`#${t}Index`);if(n){let i=di.getInterface(2);const a=r[t];n.textContent=a&&a.value||"",e.view&&(n.parentElement.parentElement.classList.remove("correct"),n.parentElement.parentElement.classList.remove("incorrect")),i.StaticMath(n),o.textContent="R"}}),ui(this.root)}}UNSAFE_componentWillReceiveProps(e){const{model:t}=this.props,{model:n={}}=e||{},{markup:r="",env:o={}}=t||{},{markup:i="",env:a={},alwaysShowCorrect:s=!1}=n,l=e=>e&&"evaluate"===e.mode;l(o)&&l(a)||this.setState(e=>({...e.session,showCorrect:!1})),s&&this.setState({showCorrect:!0});const c=r.match(Ri),d=i.match(Ri);if(!Vo(c,d)){const e={},t=this.state.session.answers;(d||[]).forEach(n=>{const r=Ti.getResponseKey(n),o=t&&t[`r${r}`];e[`r${r}`]={value:pi([o,"optionalAccess",e=>e.value])||""}}),this.setState(t=>({session:{...t.session,answers:e}}),()=>{this.props.onSessionChange(this.state.session),this.handleAnswerBlockDomUpdate()})}}shouldComponentUpdate(e,t){const n=Vo(this.props.model,e.model),r=Vo(this.state,t);return!n||!r}componentDidMount(){this.handleAnswerBlockDomUpdate(),setTimeout(()=>ui(this.root),100)}componentDidUpdate(){this.handleAnswerBlockDomUpdate()}__init2(){this.onSubFieldFocus=e=>{this.setState({activeAnswerBlock:e})}}__init3(){this.toNodeData=e=>{if(!e)return;const{type:t,value:n}=e;return"command"===t||"cursor"===t?e:"answer"===t?{type:"answer",...e}:"clear"===n?{type:"clear"}:{type:"write",value:n}}}__init4(){this.setInput=e=>{this.input=e}}__init5(){this.onClick=e=>{const t=this.toNodeData(e);"clear"===t.type?this.input.clear():"command"===t.type?Array.isArray(t.value)?t.value.forEach(e=>{this.input.cmd(e)}):this.input.cmd(t.value):"cursor"===t.type?this.input.keystroke(t.value):this.input.write(t.value),this.input.focus()}}__init6(){this.callOnSessionChange=()=>{const{onSessionChange:e}=this.props;e&&e(this.state.session)}}__init7(){this.toggleShowCorrect=e=>{this.setState({showCorrect:e},this.handleAnswerBlockDomUpdate)}}__init8(){this.subFieldChanged=(e,t)=>{ci(),e&&this.setState(n=>({session:{...n.session,answers:{...n.session.answers,[e]:{value:t}}}}),this.callOnSessionChange)}}__init9(){this.getFieldName=(e,t)=>{const{answers:n}=this.state.session;if(Object.keys(n||{}).length){return Object.keys(n).find(n=>{const r=t[n];return r&&r.id==e.id})}}}__init10(){this.onBlur=e=>{const{relatedTarget:t,currentTarget:n}=e||{};const r=function e(t,n=0){if(!t||n>=16)return null;const r=t.offsetParent;return r?"tooltip"===r.getAttribute("role")?r:e(r,n+1):null}(t),o=r?function e(t,n=0){if(!t||n>=4)return null;const r=pi([t,"optionalAccess",e=>e.children,"optionalAccess",e=>e[0]]);return r?r.attributes&&r.attributes["data-keypad"]?r:e(r,n+1):null}(r):null;t&&n&&pi([o,"optionalAccess",e=>e.attributes,"access",e=>e["data-keypad"]])||this.setState({activeAnswerBlock:""})}}setTooltipRef(e){setTimeout(()=>{if(e&&Ai){const e=document.querySelector("[role='tooltip']");if(e){e.firstChild.setAttribute("tabindex","-1")}}},1)}__init11(){this.renderTeacherInstructions=()=>{const{model:e}=this.props,{teacherInstructions:t,animationsDisabled:n}=e||{},r=t&&(ti(t)||ni(t)),o=Ko.createElement(ri,{defaultClassName:"teacher-instructions",prompt:t});return r&&Ko.createElement(mi,null,n?o:Ko.createElement(Go,{labels:{hidden:"Show Teacher Instructions",visible:"Hide Teacher Instructions"}},o))}}__init12(){this.renderRationale=()=>{const{model:e}=this.props,{rationale:t,animationsDisabled:n}=e||{},r=Ko.createElement(ri,{prompt:t});return t&&(ti(t)||ni(t))&&Ko.createElement(mi,null,n?r:Ko.createElement(Go,{labels:{hidden:"Show Rationale",visible:"Hide Rationale"}},r))}}__init13(){this.renderPlayerContent=()=>{const{model:e}=this.props,{activeAnswerBlock:t,showCorrect:n,session:r,tooltipContainerRef:o}=this.state,{correctness:i,disabled:a,view:s,responses:l,equationEditor:c,customKeys:d,feedback:u,env:{mode:p}={},printMode:h,alwaysShowCorrect:g}=e||{},f=Xo(l),m=function(e=[]){return e.map(e=>({name:e,latex:e,write:e,label:e}))}(d),v=Di(e,this.state)||"",b=h&&!g;return Ko.createElement(vi,null,Ko.createElement(Co,{disabled:a,markup:e.markup,value:{},customMarkMarkupComponent:e=>{const l="evaluate"===p&&u&&u[e],d=Ko.createElement(yi,{ref:e=>{this.mqStatic=e||this.mqStatic},latex:v[e],onSubFieldChange:this.subFieldChanged,getFieldName:this.getFieldName,setInput:this.setInput,onSubFieldFocus:this.onSubFieldFocus,onBlur:this.onBlur});return Ko.createElement(bi,{ref:o,$incorrect:!f&&!l&&!n,$correct:!f&&(l||n),$showCorrectness:!f&&a&&i&&!s,$correctAnswerShown:n},Ko.createElement(Qo,{ref:e=>this.setTooltipRef(e),enterTouchDelay:0,interactive:!0,open:t===`r${e}`,slotProps:{popper:{container:pi([o,"optionalAccess",e=>e.current])||void 0,placement:"bottom-end",sx:{backgroundColor:"transparent",width:"650px",opacity:1,"& .MuiTooltip-arrow":{display:"none"}},modifiers:{preventOverflow:{enabled:!0,boundariesElement:"body"},flip:{enabled:!1}}},tooltip:{sx:{fontSize:"initial",backgroundColor:"transparent",width:"600px",marginTop:0,paddingTop:0,boxShadow:"none"}}},title:Object.keys(r.answers).map(e=>e===t&&!(n||a)&&Ko.createElement(wi,{"data-keypad":!0,key:e,style:{width:_i(m,c)}},Ko.createElement(li,{additionalKeys:m,mode:c||6,onClick:this.onClick}))||null)},b?Ko.createElement(xi,null,d):Ko.createElement("div",null,d)))}}))}}render(){const{model:e}=this.props,{showCorrect:t}=this.state,{prompt:n,env:{mode:r,role:o}={},extraCSSRules:i,correctness:a,responses:s,language:l,showNote:c,note:d}=e||{},u=!Xo(s)&&a&&"correct"!==a.correctness,p=(t||"view"===r&&"instructor"===o)&&c&&d;return Ko.createElement(hi,{extraCSSRules:i,ref:e=>{const t=ai.findDOMNode(e);this.root=t||this.root}},Ko.createElement(gi,null,"gather"===r&&Ko.createElement(Ci,null,"Math Equation Response Question"),Ko.createElement(gi,null,u&&Ko.createElement(ki,{language:l,show:!0,toggled:t,onToggle:this.toggleShowCorrect})),this.renderTeacherInstructions(),n&&Ko.createElement(fi,null,Ko.createElement(ri,{prompt:n})),Ko.createElement(ei,{false:!0},this.renderPlayerContent()),p&&Ko.createElement(Ei,{className:"note",dangerouslySetInnerHTML:{__html:d}}),this.renderRationale()))}}Ti.__initStatic(),Ti.__initStatic2();const Mi=n,Oi=i;class Ni extends HTMLElement{constructor(){super(),this._root=null,this.sessionChangedEventCaller=Oi.debounce(()=>{this.dispatchEvent(new k(this.tagName.toLowerCase(),!0))},1e3)}set model(e){this._model=e,this.render(),this.dispatchEvent(new y(this.tagName.toLowerCase(),this.isSessionComplete(),void 0!==this._model))}get model(){return this._model}set session(e){this._session=e,this.render()}get session(){return this._session}isSessionComplete(){return!0}onSessionChange(e){Object.keys(e).map(t=>{this._session[t]=e[t]}),this.sessionChangedEventCaller(),this.render()}connectedCallback(){this.render()}render(){if(this._model&&this._session&&this._model&&this._session){const e=Mi.createElement(Ti,{model:this._model,session:this._session,onSessionChange:this.onSessionChange.bind(this)});this._root||(this._root=f(this)),this._root.render(e)}}disconnectedCallback(){this._root&&this._root.unmount()}}export{Ni as default};
@@ -0,0 +1,21 @@
1
+
2
+ <!doctype html>
3
+ <html>
4
+ <head>
5
+ <title>@pie-element/math-templated@6.0.0-beta.1</title>
6
+ <script
7
+ type="module"
8
+ src="https://cdn.jsdelivr.net/npm/@pslb/demo-el@^1.0.0/dist/demo-el/demo-el.esm.js"></script>
9
+
10
+ <link
11
+ href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
12
+ rel="stylesheet"
13
+ />
14
+ <style>
15
+ html, body {
16
+ font-family: 'Roboto', sans-serif;
17
+ }
18
+ </style>
19
+ <script type="module" src="./demo.js"></script>
20
+ </head>
21
+ </html>
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "@pie-element/math-templated",
3
+ "version": "6.0.0-beta.1",
4
+ "modules": [
5
+ {
6
+ "name": "@pie-lib/shared-module",
7
+ "version": "^3.0.5"
8
+ },
9
+ {
10
+ "name": "@pie-lib/math-rendering-module",
11
+ "version": "^4.0.5"
12
+ },
13
+ {
14
+ "name": "@pie-lib/math-edit-module",
15
+ "version": "^3.0.5"
16
+ },
17
+ {
18
+ "name": "@pie-lib/drag-module",
19
+ "version": "^3.0.5"
20
+ }
21
+ ]
22
+ }
@@ -0,0 +1,105 @@
1
+ import PrintElement from './print.js';
2
+
3
+ var generate = {};
4
+
5
+ generate.model = (id, element) => ({
6
+ id,
7
+ element,
8
+ rationale: 'Rationale',
9
+ partialScoring: true,
10
+ prompt: 'There are 24 students in the class. They had the choice to buy supplies from two different stores, Store A and B. Each of them bought 2 binders and 5 notebooks. The students have a total of $420 to spend.',
11
+ scoringType: 'auto',
12
+ feedbackEnabled: false,
13
+ promptEnabled: true,
14
+ rationaleEnabled: true,
15
+ teacherInstructionsEnabled: true,
16
+ studentInstructionsEnabled: true,
17
+ toolbarEditorPosition: 'bottom',
18
+ validationDefault: 'literal',
19
+ ignoreOrderDefault: false,
20
+ allowTrailingZerosDefault: false,
21
+ teacherInstructions: 'These are teacher instructions',
22
+ customKeys: [], // these have effect on player only?
23
+ equationEditor: 'geometry',
24
+ markup: `
25
+ <p>If the unit price of a notebook in Store A is $1.50, what is the unit price of a binder? \${{0}}</p>
26
+ <p>If the unit price of a binder in Store B is $2.80, what is the unit price of a notebook? \${{1}}</p>
27
+ `,
28
+ responses: {
29
+ 0: {
30
+ allowTrailingZeros: false,
31
+ answer: '5',
32
+ id: '1',
33
+ validation: 'symbolic',
34
+ ignoreOrder: false,
35
+ alternates: {}
36
+ },
37
+ 1: {
38
+ allowTrailingZeros: false,
39
+ answer: '2.38',
40
+ id: '1',
41
+ validation: 'literal',
42
+ ignoreOrder: false,
43
+ alternates: {}
44
+ }
45
+ }
46
+ });
47
+
48
+ const { model } = generate;
49
+
50
+ var config = {
51
+ elements: {
52
+ 'math-templated': '../..',
53
+ },
54
+ models: [model('1', 'math-templated')],
55
+ };
56
+
57
+ // new init - just shows off print!
58
+
59
+ const init = async () => {
60
+ console.log('define the element...');
61
+ await Promise.all(
62
+ config.models.map(async (m) => {
63
+ try {
64
+ const printTag = `${m.element}-print`;
65
+ if (customElements.get(printTag)) {
66
+ return true;
67
+ } else {
68
+ customElements.define(printTag, PrintElement);
69
+ await customElements.whenDefined(printTag);
70
+ return true;
71
+ }
72
+ } catch (e) {
73
+ return false;
74
+ }
75
+ })
76
+ );
77
+
78
+ console.log('now apply the model...');
79
+ config.models.forEach((m) => {
80
+ const printTag = `${m.element}-print`;
81
+ const h3s = document.createElement('h3');
82
+ h3s.textContent = 'student mode';
83
+ document.body.appendChild(h3s);
84
+ const de = document.createElement(printTag);
85
+ document.body.appendChild(de);
86
+ de.options = {};
87
+ de.model = m;
88
+
89
+ const h3 = document.createElement('h3');
90
+ h3.textContent = 'instructor mode';
91
+ document.body.appendChild(h3);
92
+ const instr = document.createElement(printTag);
93
+ document.body.appendChild(instr);
94
+ instr.options = { mode: 'instructor' };
95
+ instr.model = JSON.parse(JSON.stringify(m));
96
+ });
97
+ };
98
+
99
+ init()
100
+ .then(() => {
101
+ console.log('ready');
102
+ })
103
+ .catch((e) => {
104
+ console.error(e);
105
+ });
@@ -0,0 +1,18 @@
1
+
2
+ <!doctype html>
3
+ <html>
4
+ <head>
5
+ <title>@pie-element/math-templated@6.0.0-beta.1</title>
6
+ <link
7
+ href="https://fonts.googleapis.com/css?family=Roboto&display=swap"
8
+ rel="stylesheet"
9
+ />
10
+ <style>
11
+ html, body {
12
+ font-family: 'Roboto', sans-serif;
13
+ }
14
+ </style>
15
+ <script type="module" src="./print-demo.js"></script>
16
+ </head>
17
+ <body></body>
18
+ </html>