@gamelearn/arcade-components 3.36.0 → 3.36.1

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.
@@ -249,7 +249,7 @@ For more info see: https://github.com/konvajs/react-konva/issues/256
249
249
  `,Z_INDEX_WARNING=`ReactKonva: You are using "zIndex" attribute for a Konva node.
250
250
  react-konva may get confused with ordering. Just define correct order of elements in your render function of a component.
251
251
  For more info see: https://github.com/konvajs/react-konva/issues/194
252
- `,EMPTY_PROPS={};function applyNodeProps(l,e,n=EMPTY_PROPS){if(!zIndexWarningShowed&&"zIndex"in e&&(console.warn(Z_INDEX_WARNING),zIndexWarningShowed=!0),!dragWarningShowed&&e.draggable){var t=e.x!==void 0||e.y!==void 0,s=e.onDragEnd||e.onDragMove;t&&!s&&(console.warn(DRAGGABLE_WARNING),dragWarningShowed=!0)}for(var o in n)if(!propsToSkip[o]){var d=o.slice(0,2)==="on",h=n[o]!==e[o];if(d&&h){var f=o.substr(2).toLowerCase();f.substr(0,7)==="content"&&(f="content"+f.substr(7,1).toUpperCase()+f.substr(8)),l.off(f,n[o])}var u=!e.hasOwnProperty(o);u&&l.setAttr(o,void 0)}var p=e._useStrictMode,_={},R=!1;const y={};for(var o in e)if(!propsToSkip[o]){var d=o.slice(0,2)==="on",S=n[o]!==e[o];if(d&&S){var f=o.substr(2).toLowerCase();f.substr(0,7)==="content"&&(f="content"+f.substr(7,1).toUpperCase()+f.substr(8)),e[o]&&(y[f]=e[o])}!d&&(e[o]!==n[o]||p&&e[o]!==l.getAttr(o))&&(R=!0,_[o]=e[o])}R&&(l.setAttrs(_),updatePicture(l));for(var f in y)l.on(f+EVENTS_NAMESPACE,y[f])}function updatePicture(l){if(!Global.Konva.autoDrawEnabled){var e=l.getLayer()||l.getStage();e&&e.batchDraw()}}var schedulerExports=requireScheduler();const NO_CONTEXT={},UPDATE_SIGNAL={};Konva.Node.prototype._applyProps=applyNodeProps;function appendInitialChild(l,e){if(typeof e=="string"){console.error(`Do not use plain text as child of Konva.Node. You are using text: ${e}`);return}l.add(e),updatePicture(l)}function createInstance(l,e,n){let t=Konva[l];t||(console.error(`Konva has no node with the type ${l}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${l}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),t=Konva.Group);const s={},o={};for(var d in e){var h=d.slice(0,2)==="on";h?o[d]=e[d]:s[d]=e[d]}const f=new t(s);return applyNodeProps(f,o),f}function createTextInstance(l,e,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${l}"`)}function finalizeInitialChildren(l,e,n){return!1}function getPublicInstance(l){return l}function prepareForCommit(){return null}function preparePortalMount(){return null}function prepareUpdate(l,e,n,t){return UPDATE_SIGNAL}function resetAfterCommit(){}function resetTextContent(l){}function shouldDeprioritizeSubtree(l,e){return!1}function getRootHostContext(){return NO_CONTEXT}function getChildHostContext(){return NO_CONTEXT}const scheduleTimeout=setTimeout,cancelTimeout=clearTimeout,noTimeout=-1;function shouldSetTextContent(l,e){return!1}const isPrimaryRenderer=!1,warnsIfNotActing=!0,supportsMutation=!0;function appendChild(l,e){e.parent===l?e.moveToTop():l.add(e),updatePicture(l)}function appendChildToContainer(l,e){e.parent===l?e.moveToTop():l.add(e),updatePicture(l)}function insertBefore(l,e,n){e._remove(),l.add(e),e.setZIndex(n.getZIndex()),updatePicture(l)}function insertInContainerBefore(l,e,n){insertBefore(l,e,n)}function removeChild(l,e){e.destroy(),e.off(EVENTS_NAMESPACE),updatePicture(l)}function removeChildFromContainer(l,e){e.destroy(),e.off(EVENTS_NAMESPACE),updatePicture(l)}function commitTextUpdate(l,e,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function commitMount(l,e,n){}function commitUpdate(l,e,n,t,s){applyNodeProps(l,s,t)}function hideInstance(l){l.hide(),updatePicture(l)}function hideTextInstance(l){}function unhideInstance(l,e){(e.visible==null||e.visible)&&l.show()}function unhideTextInstance(l,e){}function clearContainer(l){}function detachDeletedInstance(){}const getCurrentEventPriority=()=>constantsExports.DefaultEventPriority,HostConfig=Object.freeze(Object.defineProperty({__proto__:null,appendChild,appendChildToContainer,appendInitialChild,cancelTimeout,clearContainer,commitMount,commitTextUpdate,commitUpdate,createInstance,createTextInstance,detachDeletedInstance,finalizeInitialChildren,getChildHostContext,getCurrentEventPriority,getPublicInstance,getRootHostContext,hideInstance,hideTextInstance,idlePriority:schedulerExports.unstable_IdlePriority,insertBefore,insertInContainerBefore,isPrimaryRenderer,noTimeout,now:schedulerExports.unstable_now,prepareForCommit,preparePortalMount,prepareUpdate,removeChild,removeChildFromContainer,resetAfterCommit,resetTextContent,run:schedulerExports.unstable_runWithPriority,scheduleTimeout,shouldDeprioritizeSubtree,shouldSetTextContent,supportsMutation,unhideInstance,unhideTextInstance,warnsIfNotActing},Symbol.toStringTag,{value:"Module"}));var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,e,n)=>e in l?__defProp(l,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[e]=n,__spreadValues=(l,e)=>{for(var n in e||(e={}))__hasOwnProp.call(e,n)&&__defNormalProp(l,n,e[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(e))__propIsEnum.call(e,n)&&__defNormalProp(l,n,e[n]);return l},__spreadProps=(l,e)=>__defProps(l,__getOwnPropDescs(e));function traverseFiber(l,e,n){if(!l)return;if(n(l)===!0)return l;let t=e?l.return:l.child;for(;t;){const s=traverseFiber(t,e,n);if(s)return s;t=e?null:t.sibling}}function wrapContext(l){try{return Object.defineProperties(l,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return l}}const FiberContext=wrapContext(React__namespace.createContext(null));class FiberProvider extends React__namespace.Component{render(){return React__namespace.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=React__namespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const l=React__namespace.useContext(FiberContext);if(l===null)throw new Error("its-fine: useFiber must be called within a <FiberProvider />!");const e=React__namespace.useId();return React__namespace.useMemo(()=>{for(const t of[ReactCurrentOwner==null?void 0:ReactCurrentOwner.current,l,l==null?void 0:l.alternate]){if(!t)continue;const s=traverseFiber(t,!1,o=>{let d=o.memoizedState;for(;d;){if(d.memoizedState===e)return!0;d=d.next}});if(s)return s}},[l,e])}function useContextMap(){var l,e;const n=useFiber(),[t]=React__namespace.useState(()=>new Map);t.clear();let s=n;for(;s;){const o=(l=s.type)==null?void 0:l._context;o&&o!==FiberContext&&!t.has(o)&&t.set(o,(e=ReactCurrentDispatcher==null?void 0:ReactCurrentDispatcher.current)==null?void 0:e.readContext(wrapContext(o))),s=s.return}return t}function useContextBridge(){const l=useContextMap();return React__namespace.useMemo(()=>Array.from(l.keys()).reduce((e,n)=>t=>React__namespace.createElement(e,null,React__namespace.createElement(n.Provider,__spreadProps(__spreadValues({},t),{value:l.get(n)}))),e=>React__namespace.createElement(FiberProvider,__spreadValues({},e))),[l])}function usePrevious(l){const e=React$2.useRef({});return React$2.useLayoutEffect(()=>{e.current=l}),React$2.useLayoutEffect(()=>()=>{e.current={}},[]),e.current}const StageWrap=l=>{const e=React$2.useRef(),n=React$2.useRef(),t=React$2.useRef(),s=usePrevious(l),o=useContextBridge(),d=h=>{const{forwardedRef:f}=l;f&&(typeof f=="function"?f(h):f.current=h)};return React$2.useLayoutEffect(()=>(n.current=new Konva.Stage({width:l.width,height:l.height,container:e.current}),d(n.current),t.current=KonvaRenderer.createContainer(n.current,constantsExports.LegacyRoot,!1,null),KonvaRenderer.updateContainer(React$2.createElement(o,{},l.children),t.current),()=>{Konva.isBrowser&&(d(null),KonvaRenderer.updateContainer(null,t.current,null),n.current.destroy())}),[]),React$2.useLayoutEffect(()=>{d(n.current),applyNodeProps(n.current,l,s),KonvaRenderer.updateContainer(React$2.createElement(o,{},l.children),t.current,null)}),React$2.createElement("div",{ref:e,id:l.id,accessKey:l.accessKey,className:l.className,role:l.role,style:l.style,tabIndex:l.tabIndex,title:l.title})},Layer="Layer",Group="Group",Rect="Rect",Line="Line",Image$2="Image",Text="Text",KonvaRenderer=ReactFiberReconciler(HostConfig);KonvaRenderer.injectIntoDevTools({findHostInstanceByFiber:()=>null,bundleType:process.env.NODE_ENV!=="production"?1:0,version:React$2.version,rendererPackageName:"react-konva"});const Stage=React$2.forwardRef((l,e)=>React$2.createElement(FiberProvider,{},React$2.createElement(StageWrap,{...l,forwardedRef:e})));var client={},m=require$$0;if(process.env.NODE_ENV==="production")client.createRoot=m.createRoot,client.hydrateRoot=m.hydrateRoot;else{var i=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;client.createRoot=function(l,e){i.usingClientEntryPoint=!0;try{return m.createRoot(l,e)}finally{i.usingClientEntryPoint=!1}},client.hydrateRoot=function(l,e,n){i.usingClientEntryPoint=!0;try{return m.hydrateRoot(l,e,n)}finally{i.usingClientEntryPoint=!1}}}var __rest=function(l,e){var n={};for(var t in l)Object.prototype.hasOwnProperty.call(l,t)&&e.indexOf(t)<0&&(n[t]=l[t]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,t=Object.getOwnPropertySymbols(l);s<t.length;s++)e.indexOf(t[s])<0&&Object.prototype.propertyIsEnumerable.call(l,t[s])&&(n[t[s]]=l[t[s]]);return n};const needForceStyle=l=>{const e=window.getComputedStyle(l).position;return!(e==="absolute"||e==="relative")};function useEvent(l=()=>{}){const e=React$2.useRef(l);return e.current=l,React$2.useCallback((...n)=>e.current.apply(null,n),[])}const Html=({children:l,groupProps:e,divProps:n,transform:t,transformFunc:s})=>{const o=React$2.useRef(null);React$2.useRef();const[d]=React$2.useState(()=>document.createElement("div")),h=React$2.useMemo(()=>client.createRoot(d),[d]),f=t??!0,u=useEvent(()=>{if(f&&o.current){let S=o.current.getAbsoluteTransform().decompose();s&&(S=s(S)),d.style.position="absolute",d.style.zIndex="10",d.style.top="0px",d.style.left="0px",d.style.transform=`translate(${S.x}px, ${S.y}px) rotate(${S.rotation}deg) scaleX(${S.scaleX}) scaleY(${S.scaleY})`,d.style.transformOrigin="top left"}else d.style.position="",d.style.zIndex="",d.style.top="",d.style.left="",d.style.transform="",d.style.transformOrigin="";const p=n||{},{style:_}=p,R=__rest(p,["style"]);Object.assign(d.style,_),Object.assign(d,R)});return React$2.useLayoutEffect(()=>{var p;const _=o.current;if(!_)return;const R=(p=_.getStage())===null||p===void 0?void 0:p.container();if(R)return R.appendChild(d),f&&needForceStyle(R)&&(R.style.position="relative"),_.on("absoluteTransformChange",u),u(),()=>{var y;_.off("absoluteTransformChange",u),(y=d.parentNode)===null||y===void 0||y.removeChild(d)}},[f]),React$2.useLayoutEffect(()=>{u()},[n,s]),React$2.useLayoutEffect(()=>{h.render(l)}),React$2.useLayoutEffect(()=>()=>{setTimeout(()=>{h.unmount()})},[]),React$2.createElement(Group,Object.assign({ref:o},e))};function Area({area:l,finished:e,isClicked:n,isBad:t,hasHighlights:s,completed:o,onClick:d,onClickOutside:h}){const f=React$2.useRef(),[u,p]=React$2.useState(),_=t?"rgba(255, 99, 77, 0.32)":"rgba(75, 215, 169, 0.32)",R=t?"#ff634d":"#4bd7a9",y=DeviceDetection(),S=()=>{var v,w,C;s&&!o&&!n&&((v=f.current)==null||v.setAttr("fill","rgba(130, 134, 142, 0.4)"),(w=f.current)==null||w.setAttr("stroke","rgba(255, 255, 255, 0.3)"),(C=f.current)==null||C.to({duration:.25,opacity:1}))},g=()=>{var v;s&&!o&&!n&&((v=f.current)==null||v.to({duration:.25,opacity:0}))};React$2.useEffect(()=>{var v,w,C;o&&!e&&(t?(C=f.current)==null||C.to({duration:.25,opacity:0}):((v=f.current)==null||v.to({duration:.25,opacity:1}),(w=f.current)==null||w.globalCompositeOperation("destination-out")))},[o,e,t]);const x=()=>{var v,w;o||(t?h(l):d(l),(v=f.current)==null||v.setAttr("fill",_),(w=f.current)==null||w.setAttr("stroke",R))},b=l.scaleX?l.scaleX:1,T=l.scaleY?l.scaleY:1;return React$2.useLayoutEffect(()=>{const v=f.current.getStage();v.on("stage-loaded",()=>{const w=f.current.getClientRect({relativeTo:f.current.getParent()});p({x:w.x+w.width/2,y:w.y+w.height/2}),v.batchDraw()})},[l]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[u?jsxRuntimeExports.jsx(Html,{transform:!0,groupProps:{id:"projection",...u},divProps:{style:{pointerEvents:"none"}},children:jsxRuntimeExports.jsx("div",{style:{width:"50px",height:"50px",pointerEvents:"none"},id:l.id})}):null,jsxRuntimeExports.jsx(Line,{name:l.id,ref:f,onFocus:()=>S(),onMouseOver:()=>S(),onMouseLeave:g,onClick:()=>x(),onTap:()=>x(),x:l.x,y:l.y,scale:{x:b,y:T},skew:{x:l.skewX,y:l.skewY},rotation:l.rotation,points:l.points,shape:"poly",fill:e?"":_,stroke:e||n?R:"",strokeWidth:y?10:4,opacity:e||n?1:0,closed:!0})]})}Area.defaultProps={finished:!1,isBad:!1,isClicked:!1,hasHighlights:!1,completed:!1,onClick:()=>{},onClickOutside:()=>{}};const useWindowSize=()=>{const[l,e]=React$2.useState([0,0]);return React$2.useLayoutEffect(()=>{function n(){const t=document.querySelector("#root");e([t.clientWidth,t.clientHeight])}return window.addEventListener("resize",n),n(),()=>window.removeEventListener("resize",n)},[]),l};function KonvaMapper({areas:l,badAreas:e,imageUrl:n,completed:t,onClick:s,onClickOutside:o,hasHighlights:d,clickedZones:h}){const f=React$2.useRef(),u=React$2.useRef(),p=React$2.useRef(),_=React$2.useRef(),R=React$2.useRef(),y=React$2.useRef(),S=React$2.useRef(),[g,x]=React$2.useState(new window.Image),[b,T]=useWindowSize(),v=e.find(D=>D.id==="AllArea")||!1,w=e.filter(D=>D.id!=="AllArea");React$2.useEffect(()=>{S.current&&u.current&&t&&(S.current.to({duration:.25,opacity:.5}),u.current.setAttr("visible",!0))},[t]);const C=D=>{v&&!D.target.attrs.shape&&o(v)};return React$2.useEffect(()=>{g.src=n,g.addEventListener("load",()=>{if(f.current){const D={x:b/2,y:T/2,width:g.width,height:g.height,offsetX:g.width/2,offsetY:g.height/2,scale:{x:Math.min(b/g.width,T/g.height),y:Math.min(b/g.width,T/g.height)}};_.current&&_.current.setAttrs(D),R.current&&R.current.setAttrs(D),u.current&&u.current.setAttrs(D),p.current&&p.current.setAttrs(D),y.current&&y.current.setAttrs(D),f.current.batchDraw(),x(g),f.current.fire("stage-loaded")}})},[g,T,n,b]),jsxRuntimeExports.jsxs(Stage,{ref:f,width:b,height:T,onClick:C,onTouchEnd:C,children:[jsxRuntimeExports.jsx(Layer,{children:jsxRuntimeExports.jsx(Image$2,{ref:y,image:g})}),jsxRuntimeExports.jsxs(Layer,{children:[jsxRuntimeExports.jsx(Rect,{ref:S,width:b,height:T,fill:"black",opacity:0}),jsxRuntimeExports.jsx(Group,{ref:R,children:w.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,isBad:!0},D.name+"_"+N))}),jsxRuntimeExports.jsx(Group,{ref:_,children:l.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,isClicked:h.some(P=>P.index===D.index)},D.name+"_"+N))}),jsxRuntimeExports.jsx(Group,{ref:p,visible:!1,children:w.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,isBad:!0,finished:!0},D.name+"_"+N))}),jsxRuntimeExports.jsx(Group,{ref:u,visible:!1,children:l.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,finished:!0},D.name+"_"+N))})]})]})}KonvaMapper.defaultProps={hasHighlights:!1,onClick:()=>{},completed:!1,onClickOutside:()=>{}};function TimerDialog({retry:l,translate:e,onInit:n}){return jsxRuntimeExports.jsx("div",{className:"timer-dialog",children:jsxRuntimeExports.jsxs("div",{className:"timer-dialog__container",children:[jsxRuntimeExports.jsx("div",{className:"timer-dialog__title",children:e("storylines.misc.ready")}),jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary",onClick:n,children:jsxRuntimeExports.jsx("span",{children:e(l?"storylines.misc.start":"storylines.misc.retry")})})]})})}function CountDown({time:l}){const e=Math.floor(l/60),n=l%60;return jsxRuntimeExports.jsx("div",{className:`count-down count-down--in-puzzle-frame ${l<10?"count-down--finalseconds":""}`,children:jsxRuntimeExports.jsxs("div",{children:[e<10?`0${e}`:e," : ",n<10?`0${Math.floor(n)}`:Math.floor(n)]})})}const defaultImg="https://min.gamelearn.io/css-resources/gamelearn/resources/puzzle-login-low.png";function ImageReview(){return jsxRuntimeExports.jsx("div",{className:"puzzle--image__preview",children:jsxRuntimeExports.jsx("img",{alt:"img",src:"https://min.gamelearn.io/css-resources/gamelearn/resources/image-click.jpg"})})}function ImageClickWrapperComponent(l){var Ge,Ne,Re;const{soundActions:e,emitEvent:n,getEvent:t,handleClick:s,disableExit:o,setResolveAction:d,info:h,image:f,areas:u,badAreas:p,hasClickOrder:_,timer:R,hasClickOnce:y,hasHighlights:S,hasImageReview:g,defaultCompleted:x,className:b,emitFinish:T,emitResolve:v,translateFromParent:w,specificFeedbacks:C,slideNumber:D,emitResetPuzzle:N,firstTryForFrame:P,puzzlesAutoCompleted:k,emitOpenPopupCounterInfo:F,pause:M,keyboardControl:j}=l,[U,B]=React$2.useState([]),[X,re]=React$2.useState(!1),[se,Z]=React$2.useState(!1),[K,te]=React$2.useState({show:!1,success:!1,text:"",rewards:[]}),ue=React$2.useRef(!1),[me,J]=React$2.useState(!0),[H,W]=React$2.useState(!1),V=React$2.useRef(null),z=React$2.useRef(null),Y=React$2.useRef(null),ie=React$2.useRef(null),le=React$2.useRef(null),fe=React$2.useRef(null),ce=React$2.useRef(null),ge=React$2.useRef(null),Se=React$2.useRef(null),[Ae,Fe]=React$2.useState(R),De=_e=>w?w(_e):t({type:"translate",payload:_e}),[Je]=e,{solution:ut}=h,et=((Ge=f==null?void 0:f.img)==null?void 0:Ge.url)||defaultImg,xt=u.map((_e,Oe)=>({index:Oe,shape:"poly",..._e})),Ve=p.map((_e,Oe)=>({index:Oe,shape:"poly",..._e})),Me=React$2.useCallback(()=>{if(!me){const _e=setInterval(()=>{Fe(Oe=>Oe>1?Oe-1:0)},1e3);Se.current=_e}},[me]),Le=React$2.useCallback((_e,Oe)=>{T?T(_e,Oe):n({type:"addPoints",payload:_e})},[n,T]);React$2.useEffect(()=>{X&&o(!0)},[X,o]),React$2.useEffect(()=>{re(x)},[x]);const Ye=React$2.useCallback(()=>{clearInterval(Y.current)},[]),ke=React$2.useCallback(()=>{clearInterval(Se.current)},[]),Qe=React$2.useCallback(_e=>{le.current=Date.now(),ie.current?(ce.current=ie.current-le.current,Ye()):(ce.current=le.current-(le.current-_e*1e3),Ye())},[Ye]),bt=React$2.useCallback(()=>{te(()=>{var _e,Oe;return{show:!0,success:!1,text:(_e=h==null?void 0:h.timerFeedback)!=null&&_e.desc?h.timerFeedback.desc:"",rewards:(Oe=h==null?void 0:h.timerFeedback)==null?void 0:Oe.rewards}}),W(!0),ke(),Ye()},[ke,Ye,(Ne=h.timerFeedback)==null?void 0:Ne.desc,(Re=h.timerFeedback)==null?void 0:Re.rewards]),qe=React$2.useCallback(()=>{clearInterval(Y.current),Y.current=setInterval(()=>{z.current=Date.now(),z.current>ie.current&&bt()},250)},[bt]);React$2.useEffect(()=>{var _e;if((u.length===U.length||y&&U.length>0)&&!X){re(!0);const Oe=U[U.length-1],Ke=C==null?void 0:C.correctFeedbacks.find(Ft=>Ft.id===Oe.id);(!((_e=C==null?void 0:C.correctFeedbacks)!=null&&_e.length)||C!=null&&C.correctFeedbacks.some(Ft=>!Ft.desc)||y)&&(te(Ft=>({...Ft,show:!0,success:!0,text:Ke?Ke.desc:h.solution.right.desc,rewards:Ke?Ke.rewards:h.solution.right.rewards})),R&&(ke(),Qe()))}},[U,u.length,C,y,X,h.solution.right,Qe,R,ke]),React$2.useEffect(()=>{d(_e=>{R&&(ke(),J(!1),K.show?te(Oe=>({...Oe,show:!1,success:!1,text:"",rewards:[]})):Ye()),re(!0),Z(!0),setTimeout(()=>{v?v(_e):_e()},4e3)})},[d,v,Je,R,K.show,Ye,ke]),React$2.useEffect(()=>{se&&o(!0)},[se,o]);const ct=(_e,Oe=!1)=>{var Ke,Ft;if(!X){const{rewards:Nt,desc:je}=ut.wrong;let vt=je,Pt=Nt;const lt=(Ke=C==null?void 0:C.wrongFeedbacks)==null?void 0:Ke.find(ze=>ze.id===_e.id);lt&&(vt=lt.desc,Pt=lt.rewards),_&&(B([]),Oe&&(Ft=h==null?void 0:h.orderFeedback)!=null&&Ft.desc&&(vt=h.orderFeedback.desc,Pt=h.orderFeedback.rewards)),R&&(ke(),Qe()),te(ze=>({...ze,show:!0,success:!1,text:vt,rewards:Pt})),Je("fail")}},Be=React$2.useCallback(()=>{fe.current=Date.now();const _e=fe.current+ce.current;z.current=null,ie.current=_e,(R||H)&&(K.success?u.length===U.length||y&&U.length>0?ke():(Fe(ce.current*.001),Me(),qe()):(B([]),J(!0),N())),Le(K.rewards,K.success),Je("click-ui"),te(Oe=>({...Oe,show:!1,success:!1,text:"",rewards:[]}))},[R,H,Le,K.rewards,K.success,Je,u.length,U.length,y,N,ke,Me,qe]),ot=_e=>{var Oe,Ke;if(!U.some(Ft=>Ft.index===_e.index)&&!K.show&&!X){Je("click-ui");let Ft=ut.right.desc,{rewards:Nt}=ut.right;const je=[...U,_e];if(_&&_e.index===U.length||!_){if(R&&Qe(Ae),s(),(Oe=C==null?void 0:C.correctFeedbacks)!=null&&Oe.length){const vt=(Ke=C.correctFeedbacks)==null?void 0:Ke.find(Pt=>Pt.id===_e.id);vt&&(Ft=vt.desc,Nt=vt.rewards),!Ft&&u.length>je.length&&!y?Le(Nt,!0):Ft&&!y&&(te(Pt=>({...Pt,show:!0,success:!0,text:Ft,rewards:Nt})),R&&ke())}B(je)}else ct(_e,!0)}},ft=React$2.useCallback(()=>{ke(),Fe(R),Me(),!ue.current&&P&&F(),J(!1),V.current=Date.now(),ie.current=V.current+R*1e3,qe()},[ke,R,Me,P,qe,F]);return React$2.useEffect(()=>{R&&D>0&&!ge.current&&(P&&Object.keys(k).length&&k[D-1]?(J(!0),ge.current=!0):J(!1))},[x,P,k,D,R]),React$2.useEffect(()=>{R&&Ae===0&&bt()},[Ae,bt,R]),React$2.useEffect(()=>{R&&(M?(ke(),Qe()):Me())},[ke,qe,M,Qe,Me,R]),jsxRuntimeExports.jsxs("div",{className:b,children:[K.show?jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:Je,text:K.text,success:K.success,translate:De,hasTimeout:!K.text,delay:R?1e3:2e3,functionOnClose:Be,timeExpired:H,keyboardControl:j}):null,jsxRuntimeExports.jsx(KonvaMapper,{completed:X,imageUrl:et,areas:y&&U.length?[U[0]]:xt,badAreas:Ve,clickedZones:U,onClick:ot,onClickOutside:ct,hasHighlights:S,emitEvent:n}),g?jsxRuntimeExports.jsx(ImageReview,{}):null,R&&me?jsxRuntimeExports.jsx(TimerDialog,{retry:P||k[D-1],translate:De,onInit:ft}):null,R?jsxRuntimeExports.jsx(CountDown,{time:Ae}):null]})}ImageClickWrapperComponent.defaultProps={info:{instructions:"",resolve:{},solution:{},hint:{},title:""},badAreas:[],className:"puzzle--image__click",hasClickOrder:!1,hasClickOnce:!1,hasHighlights:!1,hasImageReview:!1,defaultCompleted:!1,hideContinue:!1,emitAreaClick:()=>{},handleClick:()=>{},getEvent:()=>{}};function ImageClickPuzzleComponent(l){const e=(n,t)=>{t?(l.emitEvent({type:"addPoints",complex:!0,finish:!0,payload:n}),l.emitEvent({type:"passPuzzle"})):(l.emitEvent({type:"addPoints",payload:n,finish:!1}),l.emitEvent({type:"failPuzzle"}))};return jsxRuntimeExports.jsx(ImageClickWrapperComponent,{...l,emitFinish:e,name:"image-click-puzzle"})}const GREEN="#44d7ab",ORANGE="#FFB34B",RED="#FF634D",getDistance=(l,e)=>Math.max(Math.abs(l[0]-e[0]),Math.abs(l[1]-e[1])),generatePasswordPositions=(l,e,n,t)=>{const s=[],o=l;for(const d of e.toLowerCase()){const h=Math.floor(Math.random()*n),f=Math.floor(Math.random()*t);o[h][f].value=d,s.push({char:d,position:[h,f]})}return[o,s]},paintedGridPassword=(l,e,n,t)=>{const s=l;for(let o=0;o<e;o+=1)for(let d=0;d<n;d+=1)switch(t.reduce((f,u)=>{const p=[o,d],_=getDistance(u.position,p);return _<f?_:f},9999)){case 0:s[o][d].hiddenColor=GREEN;break;case 1:s[o][d].hiddenColor=ORANGE;break;case 2:s[o][d].hiddenColor=RED;break}return s},resetColors=(l,e,n)=>{const t=n;for(let s=0;s<l;s+=1)for(let o=0;o<e;o+=1)t[s][o].color="",t[s][o].hiddenColor=RED;return t},repaintGridPassword=(l,e,n,t)=>{const s=resetColors(n,t,l),[o,d]=generatePasswordPositions(s,e,n,t);return paintedGridPassword(o,n,t,d)},prepareAcceptedChars=(l,e)=>e.split("").filter(n=>!l.includes(n)).join(""),generateBasicGrid=(l,e,n)=>{const t=[];for(let s=0;s<l;s+=1){const o=[];for(let d=0;d<e;d+=1){const h={color:"",hiddenColor:RED,value:n[Math.floor(Math.random()*n.length)]};o.push(h)}t.push(o)}return t},makeSomeNoise=({numberOfColumns:l,numberOfRows:e,password:n})=>{const t=LangIsRtl()?"٠١٢٣٤٥٦٧٨٩شزذيثبلاهتنمورخحضقسفعدصطغظ":"0123456789abcdefghijklmnopqrstuvwxyz",s=prepareAcceptedChars(n,t),o=generateBasicGrid(e,l,s),[d,h]=generatePasswordPositions(o,n,e,l);return paintedGridPassword(d,e,l,h)};function DrawItem({item:l,rowIndex:e,columnIndex:n,setCursorPosition:t,cursorPosition:s}){const o=Math.abs(e-s[0])<3&&Math.abs(n-s[1])<3;return jsxRuntimeExports.jsx("span",{className:"puzzle--cracker__item",style:{backgroundColor:`${o?l.hiddenColor:l.color}`,flexGrow:1,textAlign:"center"},onMouseOver:()=>{t([e,n])},onFocus:()=>{t([e,n])},children:l.value})}DrawItem.defaultProps={setCursorPosition:()=>{}};DrawItem.propTypes={item:PropTypes.shape({color:PropTypes.string,hiddenColor:PropTypes.string,value:PropTypes.string}).isRequired,rowIndex:PropTypes.number.isRequired,columnIndex:PropTypes.number.isRequired,cursorPosition:PropTypes.arrayOf(PropTypes.number).isRequired,setCursorPosition:PropTypes.func};function DrawRow({row:l,rowIndex:e,setCursorPosition:n,cursorPosition:t}){return l.length?jsxRuntimeExports.jsx("div",{className:"puzzle--cracker",children:l.map((s,o)=>jsxRuntimeExports.jsx(DrawItem,{item:s,rowIndex:e,columnIndex:o,setCursorPosition:n,cursorPosition:t},o))}):null}DrawRow.defaultProps={row:[]};DrawRow.propTypes={row:PropTypes.arrayOf(PropTypes.shape({})),rowIndex:PropTypes.number.isRequired,setCursorPosition:PropTypes.func.isRequired,cursorPosition:PropTypes.arrayOf(PropTypes.number).isRequired};function DrawGrid({grid:l,cursorPosition:e,setCursorPosition:n}){return jsxRuntimeExports.jsx("div",{className:"puzzle--cracker__canvas",children:l.map((t,s)=>jsxRuntimeExports.jsx(DrawRow,{row:t,rowIndex:s,cursorPosition:e,setCursorPosition:n},s))})}DrawGrid.defaultProps={setCursorPosition:()=>{}};const VELOCITY_MAP={slow:2,fast:5,fastest:10},DIFFICULTY_MAP={easy:{visibleRows:"auto",visibleColumns:40,totalRows:25},medium:{visibleRows:"auto",visibleColumns:40,totalRows:40},hard:{visibleRows:"auto",visibleColumns:40,totalRows:80}};function CrackerPuzzleComponent({emitEvent:l,soundActions:e,info:n,velocity:t,password:s,disableExit:o,difficulty:d,setResolveAction:h,getEvent:f}){const[u]=e,p=J=>f({type:"translate",payload:J}),_=React$2.useRef(),R=React$2.useRef(),{solution:y}=n,[S,g]=React$2.useState(s.toLowerCase()),[x,b]=React$2.useState(),[T,v]=React$2.useState(Array(s.toLowerCase().length).fill("")),[w,C]=React$2.useState(!1),[D,N]=React$2.useState([0,0]),P=p("puzzle.cracker.crackedPassword"),k=n.solution.right.desc&&n.solution.right.desc!==""?n.solution.right.desc:"",F=p("puzzle.cracker.congratulations"),[M,j]=React$2.useState([[]]),{visibleRows:U,visibleColumns:B}=DIFFICULTY_MAP[d];let X=U==="auto"?Math.ceil(window.innerHeight*.025):U;X=X>=20?X:20,React$2.useEffect(()=>{w&&o(!0)},[w,o]),React$2.useEffect(()=>{h(J=>{u("score"),C(!0),setTimeout(()=>{l({type:"hidePuzzleButtons",payload:!1}),J()},0)})},[h,u]);const re=()=>{u("click-ui");const{rewards:J}=y.right;l({type:"addPoints",complex:!0,finish:!0,payload:J}),l({type:"passPuzzle"})},se=()=>s.toLowerCase().split("").map((H,W)=>({char:H,index:W,used:!1})),Z=J=>J.filter(H=>H.used===!1).map(H=>H.char).join(""),K=J=>{if(J[0].length>0&&!w){const H=[...J];return H.push(H.shift()),H}return J};let te=0;const ue=J=>{if(R.current!==void 0){const H=J-R.current;te+=H,te>1e3/VELOCITY_MAP[t]&&(j(K),te=0)}R.current=J,_.current=requestAnimationFrame(ue)};React$2.useEffect(()=>{g(s.toLowerCase());const J=makeSomeNoise({numberOfColumns:B,numberOfRows:X,password:s.toLowerCase()});return j(J),b(se()),_.current=requestAnimationFrame(ue),()=>cancelAnimationFrame(_.current)},[]);const me=()=>{if(M.length<=1)return;const[J,H]=D,W=M[J][H];if(W.hiddenColor===GREEN){const V=x.filter(z=>z.char===W.value.toLowerCase()&&z.used===!1)[0];if(V){const{index:z}=V;u("score");const Y=x;Y[z].used=!0,b(Y);const ie=[...T];ie[z]=W.value;const le=Z(Y);g(le);const fe=repaintGridPassword(M,le,X,B);j(fe),v(ie)}}S<=0&&(u("score"),C(!0))};return React$2.useEffect(()=>{w||me()},[D]),jsxRuntimeExports.jsxs("div",{className:"puzzle--cracker__container",children:[jsxRuntimeExports.jsxs("div",{className:"puzzle--cracker__header",children:[jsxRuntimeExports.jsx("span",{className:"title",children:"Dcoder.exe"}),jsxRuntimeExports.jsx("div",{className:"puzzle--pieces",children:T.map((J,H)=>jsxRuntimeExports.jsx("span",{className:"puzzle--pieces__item",children:J&&jsxRuntimeExports.jsx("span",{className:"character success-transition-animation","data-testid":`solution${H}`,children:J})},`${J+H}`))})]}),jsxRuntimeExports.jsx(DrawGrid,{grid:w?[[]]:M,cursorPosition:D,setCursorPosition:N}),w&&P&&F&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Typist,{avgTypingDelay:110,cursor:{hideWhenDone:!0},className:"puzzle--cracker__result",children:[jsxRuntimeExports.jsx(Typist.Delay,{ms:300}),jsxRuntimeExports.jsxs("span",{children:[`${P} ${s.toLowerCase()}`," "]}),jsxRuntimeExports.jsxs("span",{children:[F," "]}),k!==""&&jsxRuntimeExports.jsx("span",{children:k})]}),jsxRuntimeExports.jsx("div",{className:"position--absolute bottom center",children:jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary gat--btn__cracker",onClick:re,children:p("screens.continue")})})]})]})}CrackerPuzzleComponent.defaultProps={velocity:"slow",difficulty:"easy",context:{},info:{}};const ARABIC=/[\u0600-\u06FF]/,restrictCharacters=(l,e)=>{let n=!1;return e==="or"&&(n=l===""||l===" "||l===","||l==="."||l==="/"),e==="and"&&(n=l&&l!==" "&&l!==","&&l!=="."&&l!==""&&l!=="/"),n},sortChar=(l,e)=>l.char>e.char?1:l.char<e.char?-1:0,analyzeChars=l=>{const e={anyArabic:!1,anyNumber:!1,anyWestern:!1};for(let n=0;n<l.length;n+=1){const t=l[n].charCodeAt(0);t>=65&&t<=90?e.anyWestern=!0:t>=48&&t<=57?e.anyNumber=!0:ARABIC.test(l[n])&&(e.anyArabic=!0)}return e},makeChar=l=>{const e="شزذيثبلاهتنمورخحضثقسفعدصطغظ",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",t="0123456789";let s="";return l.anyWestern&&(s+=n),l.anyNumber&&(s+=t),l.anyArabic&&(s+=e),s.charAt(Math.floor(Math.random()*s.length))},MAX_POOL_LETTERS=26,MAX_EXTRA_LETTERS=8,AnswerPanel=({answer:l,flickerPosition:e,show:n=!1,showCorrectSolution:t})=>{const s=[];let o=0;return l.forEach(d=>{s[o]||(s[o]=[]),s[o]=[...s[o],d],d.char===" "&&(o+=1),t||(d.positionInitial=d.index)}),s.map((d,h)=>jsxRuntimeExports.jsx("div",{dir:"auto",className:"puzzle--hanged__word","data-testid":`result-${h}`,children:n?d.map((f,u)=>jsxRuntimeExports.jsx("span",{className:"puzzle--hanged__letter active",children:f},`${f+u}`)):d.filter(({char:f})=>f!==" ").map(({char:f,fixed:u},p)=>jsxRuntimeExports.jsx("span",{className:`puzzle--hanged__letter ${u?"":"active"} ${d[p].positionInitial===e?"fakeFocus":""}`,children:f},`${f+p}`))},`${d+h}`))},defaultImage="https://min.gamelearn.io/css-resources/gamelearn/resources/partenon.jpg";function HangedPuzzleComponent({soundActions:l,emitEvent:e,getEvent:n,disableExit:t,question:s,image:o,info:d,answer:h,hintUsed:f,setResolveAction:u,setHintAction:p,keyboardControl:_}){var fe;const[R]=l,y=((fe=o.img)==null?void 0:fe.url)||defaultImage,[S,g]=React$2.useState(0),[x,b]=React$2.useState(!1),[T,v]=React$2.useState([]),[w,C]=React$2.useState(!1),[D,N]=React$2.useState([]),[P,k]=React$2.useState(""),[F,M]=React$2.useState(!1),[j,U]=React$2.useState([]),[B,X]=React$2.useState(!1),re=h.toUpperCase().split(""),se=re.filter(ce=>restrictCharacters(ce,"and")),Z=ce=>n({type:"translate",payload:ce}),K=React$2.useCallback(()=>{const ce=se.map(Ae=>({char:Ae}));let ge=[];const Se=analyzeChars(se);for(;ge.length<MAX_EXTRA_LETTERS;){const Ae=makeChar(Se);ge=[...ge,{char:Ae}]}return[...ce,...ge]},[se]),te=h.toUpperCase().split("").map((ce,ge)=>restrictCharacters(ce,"or")?{index:ge,letter:ce,char:ce,fixed:!0}:{index:ge,letter:ce,char:""}),ue=React$2.useCallback(()=>{let ce=K();for(;ce.length>MAX_POOL_LETTERS;){const ge=Math.trunc(Math.random()*(ce.length-1))+1,Se=ce[ge],Ae=te.find((Fe,De)=>Se.char===Fe.letter&&!te[De].fixed);Ae&&(ce.splice(ge,1),te[Ae.index]={...Ae,char:Ae.letter,fixed:!0})}f&&(ce=[],te.forEach(({letter:ge})=>{ge!==" "&&ce.push({char:ge})})),N(te),v(ce)},[te,f,K]),me=(ce,ge)=>T.map((Ae,Fe)=>Fe===ge?{...Ae,deleted:!0}:{...Ae}),J=(ce,ge,Se)=>{const Ae=ge.map((De,Je)=>Se.find(et=>et.poolIndex===Je)?{char:De.char}:De);v(Ae),N(ce);const Fe=ce.find(De=>De.char==="");g(Fe.index)},H=(ce,ge)=>{R("click-ui");let Se=!1;const Ae=D.map(Je=>!Je.char&&!Se?(Se=!0,{...Je,char:ce,poolIndex:ge}):Je),Fe=me(ce,ge),De=Ae.filter(Je=>Je.char).length;v(Fe),N(Ae),W(),De===D.length&&ie(Ae,Fe)},W=()=>{var ce;if(x){const ge=D.find(Se=>Se.index!==S&&Se.letter!==" "&&Se.char===""&&Se.poolIndex===!1);ge&&g(ge.index)}else{const ge=D.find(Se=>Se.char==="");g(ge.index+1),((ce=D[ge.index+1])==null?void 0:ce.letter)===" "&&g(ge.index+2)}},V=()=>{R("click-ui");const ce=D.map((ge,Se)=>D[D.length-1-Se]).find(ge=>ge.char&&!ge.fixed);if(ce){const ge=D.map(Fe=>Fe.index===ce.index?{...ce,char:""}:Fe);let Se=!1;const Ae=T.map((Fe,De)=>De===ce.poolIndex&&(Fe.deleted||!Se)?(Se=!0,{char:Fe.char}):Fe);v(Ae),N(ge),g(ce.index)}},z=()=>{t(!0),k("");const ce=[...j,...d.solution.right.rewards];R("score"),e({type:"hidePuzzleButtons",payload:!1}),e({type:"addPoints",complex:!0,finish:!0,payload:ce}),e({type:"passPuzzle"})},Y=()=>{R("fail"),e({type:"hidePuzzleButtons",payload:!1}),U([...j,...d.solution.wrong.rewards]),k(""),M(!1),e({type:"failPuzzle"}),b(!0)},ie=(ce,ge)=>{let Se=[];M(!0);const Ae=ce.map((De,Je)=>re[Je]===De.char?{...De,fixed:!0}:(Se=[...Se,De],{...De,poolIndex:!1,char:""})),Fe=Ae.filter(De=>De.fixed).length;e({type:"hidePuzzleButtons",payload:!0}),Fe===re.length?(k("success"),d.solution.right.desc===""&&setTimeout(()=>{z()},2e3)):(k("failed"),J(Ae,ge,Se),d.solution.wrong.desc===""&&setTimeout(()=>{Y()},2e3))},le=()=>{if(P==="success")z();else{Y();const ce=D.find(ge=>ge.char==="");g(ce.index)}};return React$2.useEffect(()=>{w||(C(!0),ue()),u(ce=>{X(!0),setTimeout(()=>{e({type:"hidePuzzleButtons",payload:!1}),ce()},2e3)}),p(ce=>{const ge=[];te.forEach(({letter:Se})=>{Se!==" "&&ge.push({char:Se})}),v(ge),ce()})},[ue,w,h,u,e,j,d.resolve.rewards,te,p]),jsxRuntimeExports.jsxs("div",{className:"puzzle--hanged",style:{backgroundImage:`url("${y}")`},children:[P?jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:R,text:d.solution[P==="success"?"right":"wrong"].desc,success:P==="success",translate:Z,functionOnClose:le,keyboardControl:_}):null,jsxRuntimeExports.jsx("div",{className:"puzzle--hanged__content",children:jsxRuntimeExports.jsxs("div",{className:"puzzle--hanged__controls",children:[jsxRuntimeExports.jsx("div",{dir:"auto",className:"puzzle--hanged__header",children:s}),jsxRuntimeExports.jsx("div",{dir:"auto",className:`puzzle--hanged__solution ${P}`,"data-testid":`${P}`,children:B?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(AnswerPanel,{showCorrectSolution:B,answer:h.split(""),show:!0})}):jsxRuntimeExports.jsx(AnswerPanel,{showCorrectSolution:B,flickerPosition:S,answer:D})}),jsxRuntimeExports.jsxs("div",{className:"puzzle--hanged__keyboard",children:[T.sort((ce,ge)=>sortChar(ce,ge)).map((ce,ge)=>jsxRuntimeExports.jsx("button",{"data-testid":`key-${ce.char}`,type:"button",onClick:()=>{!ce.deleted&&!P&&!F&&(H(ce.char,ge),R("click-ui"))},className:`puzzle--hanged__keyboard--item ${ce.deleted||F?"disabled":""}`,children:ce.char},`${ce+ge}`)),jsxRuntimeExports.jsx("button",{onClick:F?null:()=>V(),type:"button",disabled:F?"disabled":null,"aria-label":Z("puzzles.hanged-puzzle.deleteButton"),className:`puzzle--hanged__keyboard--item delete ${F?"disabled":""}`,children:jsxRuntimeExports.jsx("span",{className:"icon-delete-keyboard"})})]})]})})]})}HangedPuzzleComponent.defaultProps={question:"",answer:"",image:{},hintBought:!1,info:{description:"",instructions:"",resolve:{},solution:{},hintBought:{}}};function CurrentImageClickPuzzle({list:l,description:e,nodeId:n,setInfo:t,emitEvent:s,getEvent:o,disableExit:d,setResolveAction:h,soundActions:f,setSelected:u,selected:p,pause:_,loadPuzzleStatus:R,index:y,setIndex:S,slidesCompleted:g,setSlidesCompleted:x,keyboardControl:b,totalCorrects:T}){const v=React$2.useRef([]),w=React$2.useRef(0),C=React$2.useRef(0),D=`chained-image-click-puzzle_${y}_${n}`,[N]=f,P=K=>{v.current=[...v.current,...K]},k=React$2.useCallback(K=>{N("score"),s({type:"hidePuzzleButtons",payload:!1}),s({type:"addPoints",complex:!0,finish:!0,payload:[...v.current,...K]}),s({type:"passPuzzle"})},[N,s]),[F,M]=React$2.useState(!1),j=l[y],{info:U,specificFeedbacks:B}=j;U.description=e,React$2.useEffect(()=>{w.current=0,C.current=0,M(!1)},[y]);const X=React$2.useCallback((K,te=!1)=>{var me;let ue={...g};if(te){if((me=B==null?void 0:B.correctFeedbacks)!=null&&me.length&&!j.hasClickOnce){const J=B.correctFeedbacks.length;F&&J?(w.current>0?u(p+(J-w.current)):u(p+J),w.current=J):w.current+=1}else{let J=p;C.current&&(J-=C.current),w.current=j.areas.length,u(J+w.current)}w.current===j.areas.length&&(y+1>=l.length?k(K):S(y+1),ue={...ue,[y]:!0},x(ue)),P(K)}else s({type:"addPoints",payload:K,finish:!1}),s({type:"failPuzzle"}),j.hasClickOrder&&(u(p-w.current),w.current===0&&Object.entries(g).length===0?u(0):w.current=0),Object.entries(g).length===0&&j.hasClickOrder&&!p&&u(0)},[g,B,j.hasClickOnce,j.areas.length,j.hasClickOrder,F,u,p,y,l.length,x,k,S,s]),re=()=>{for(let K=0;K<v.current.length;K=K+1)if(v.current[K].points>0)return!0;return!1},se=()=>{M(!0),y>=l.length-1&&u(T),N("score"),y+1>=l.length&&re()?(U.resolve.rewards.forEach(K=>{v.current.forEach(te=>{te.id===K.id&&(K.points=K.points+te.points)})}),s({type:"puzzleAction",action:"resolve",payload:{element:D,rewards:U.resolve.rewards,finish:!0}})):s({type:"puzzleAction",action:"resolve",payload:{element:D,rewards:U.resolve.rewards,finish:y+1>=l.length}})};React$2.useEffect(()=>{t({...U,hintId:D})},[U,D,t]),React$2.useEffect(()=>{R&&y!==l.length-1&&X([],!0)},[y,l.length,R,X]);const Z=()=>{const K=j.hasClickOnce?j.areas.length:1;C.current+=K,u(p+K)};return jsxRuntimeExports.jsx(ImageClickWrapperComponent,{...j,puzzle:{name:D,component:"chained-image-click-puzzle"},specificFeedbacks:B,emitFinish:X,emitError:P,emitResolve:se,isLast:y+1===l.length,defaultCompleted:g[y]||!!R,hideContinue:y+1!==l.length,handleClick:Z,emitEvent:s,getEvent:o,disableExit:d,soundActions:f,setResolveAction:h,pause:_,keyboardControl:b},y)}function ChainedImageClickPuzzleComponent(l){const{setInfo:e,emitEvent:n,nodeId:t,list:s,description:o,soundActions:d,showFrames:h,disableExit:f,setResolveAction:u,pause:p,keyboardControl:_,getEvent:R}=l,[y,S]=React$2.useState(0),[g,x]=React$2.useState(0),[b,T]=React$2.useState({}),v=`chained-image-click-puzzle_${g}_${t}`,w=React$2.useMemo(()=>R({type:"loadObjectStatus",payload:v}),[R,v]),C=s.reduce((N,P)=>N+P.areas.length,0),D={list:s,description:o,nodeId:t,disableExit:f,setResolveAction:u,emitEvent:n,soundActions:d,setInfo:e,setSelected:S,selected:y,index:g,setIndex:x,slidesCompleted:b,setSlidesCompleted:T,loadPuzzleStatus:w,pause:p,keyboardControl:_,totalCorrects:C};return jsxRuntimeExports.jsxs("div",{className:"puzzle--image__click",children:[h?jsxRuntimeExports.jsxs("div",{className:"puzzle-image__info",children:[jsxRuntimeExports.jsx("span",{className:"info-circle"}),jsxRuntimeExports.jsxs("span",{children:[y," / ",C]})]}):null,jsxRuntimeExports.jsx(CurrentImageClickPuzzle,{...D})]})}function CurrentFramePuzzle({list:l,index:e,puzzlesCompiledRef:n,framesCompleted:t,handleFinish:s,accRewards:o,setRewards:d,setIndex:h,setFramesCompleted:f,loadPuzzleStatus:u,soundActions:p,setResolveAction:_,disableExit:R,description:y,translateFromParent:S,setInfo:g,emitEvent:x,nodeId:b,setSelected:T,selected:v,emitResetPuzzle:w,firstTryForFrame:C,setPuzzlesAutoCompleted:D,puzzlesAutoCompleted:N,emitOpenPopupCounterInfo:P,resetValues:k,setResetValues:F,pause:M,keyboardControl:j,totalCorrects:U,getEvent:B}){var ie;const[X]=p,[re,se]=React$2.useState(!1),Z=l[e],{info:K,specificFeedbacks:te}=Z;K.description=y;const ue=React$2.useRef(0),me=React$2.useRef(0),J=`frame-image-click-puzzle_${e}_${b}`;React$2.useEffect(()=>{n.current+=1},[n]),React$2.useEffect(()=>{g({...K,hintId:J})},[g,K,J]),React$2.useEffect(()=>{k&&(me.current=0,ue.current=0,T(0),F(!1))},[k,F,T]),React$2.useEffect(()=>{me.current=0,ue.current=0,se(!1)},[e]);const H=React$2.useCallback((le,fe=!1)=>{var ge;let ce={...t};if(fe){if((ge=te==null?void 0:te.correctFeedbacks)!=null&&ge.length&&!Z.hasClickOnce){const Se=te.correctFeedbacks.length;re&&Se?(me.current>0?T(v+(Se-me.current)):T(v+Se),me.current=Se):me.current+=1}else{let Se=v;ue.current&&(Se-=ue.current),me.current=Z.areas.length,N[0]&&Object.entries(t).length===0?T(me.current):T(Se+me.current)}me.current===Z.areas.length&&(e+1>=l.length&&s(le),ce={...ce,[e]:!0},f(ce),h(e+1>l.length-1?0:e+1)),d(le)}else x({type:"addPoints",payload:le,finish:!1}),x({type:"failPuzzle"}),Z.hasClickOrder&&(T(v-me.current),me.current=0)},[t,(ie=te==null?void 0:te.correctFeedbacks)==null?void 0:ie.length,Z.hasClickOnce,Z.areas.length,Z.hasClickOrder,d,re,T,v,N,e,l.length,f,h,s,x]),W=React$2.useCallback(()=>{for(let le=0;le<o.current.length;le=le+1)if(o.current[le].points>0)return!0;return!1},[o]),V=React$2.useCallback(()=>{se(!0),e>=l.length-1&&T(U),X("score"),x({type:"hidePuzzleButtons",payload:!1}),D(le=>({...le,[e]:!0})),e+1>=l.length&&W()?(K.resolve.rewards.forEach(le=>{o.current.forEach(fe=>{fe.id===le.id&&(le.points=le.points+fe.points)})}),x({type:"puzzleAction",action:"resolve",payload:{element:J,rewards:K.resolve.rewards,finish:!0}})):x({type:"puzzleAction",action:"resolve",payload:{element:J,rewards:K.resolve.rewards,finish:e+1>=l.length}})},[e,l.length,X,x,D,W,T,U,K.resolve.rewards,J,o]),z=React$2.useCallback(()=>{f({}),me.current=0,ue.current=0,w()},[w,f]);React$2.useEffect(()=>{u&&e!==l.length-1&&H([],!0)},[t,e,l.length,u,H]);const Y=()=>{const le=Z.hasClickOnce?Z.areas.length:1;ue.current+=le,T(v+le)};return jsxRuntimeExports.jsx(ImageClickWrapperComponent,{...Z,className:"puzzle-frame__canvas",puzzle:{name:"",component:"frame-click-puzzle"},specificFeedbacks:te,emitFinish:H,emitResolve:V,hideContinue:!0,disableInfo:n.current>1,defaultCompleted:t[e]||!!u,soundActions:p,setResolveAction:_,disableExit:R,translateFromParent:S,emitEvent:x,getEvent:B,slideNumber:e,handleClick:Y,emitResetPuzzle:z,firstTryForFrame:C,puzzlesAutoCompleted:N,emitOpenPopupCounterInfo:P,pause:M,keyboardControl:j},e)}function Tooltip({getEvent:l}){const e=n=>l({type:"translate",payload:n});return jsxRuntimeExports.jsx("div",{dir:"auto",className:"puzzle-frame__info--tooltip",children:e("puzzles.counterTooltip")})}function Counter({current:l,total:e,tooltip:n,getEvent:t}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[n?jsxRuntimeExports.jsx(Tooltip,{getEvent:t}):null,jsxRuntimeExports.jsxs("div",{className:"puzzle-frame__info--frames",children:[jsxRuntimeExports.jsx("span",{className:"info-circle"}),jsxRuntimeExports.jsxs("span",{children:[l," / ",e]})]})]})}function FrameImageClickComponent({emitEvent:l,nodeId:e,list:n,description:t,showFrames:s,soundActions:o,disableExit:d,setResolveAction:h,setInfo:f,getEvent:u,pause:p,keyboardControl:_}){const[R,y]=React$2.useState({}),S=React$2.useRef([]),[g,x]=React$2.useState(0),[b,T]=React$2.useState({}),[v,w]=React$2.useState(0),C=React$2.useRef(0),[D,N]=React$2.useState(!0),[P,k]=React$2.useState(!0),[F,M]=React$2.useState(!1),j=n.reduce((me,J)=>me+J.areas.length,0),U=me=>{S.current=[...S.current,...me]},B=`frame-image-click-puzzle_${g}_${e}`,X=React$2.useMemo(()=>u({type:"loadObjectStatus",payload:B}),[u,B]),re=React$2.useCallback(me=>{l({type:"addPoints",complex:!0,finish:!0,payload:[...S.current,...me]}),l({type:"passPuzzle"})},[l]),se=React$2.useCallback(()=>{k(!1),S.current=[],w(0),x(0),T({}),N(!0),M(!0)},[]),Z=me=>u({type:"translate",payload:me}),K=()=>{N(!0)},ue={firstTryForFrame:P,list:n,description:t,index:g,puzzlesCompiledRef:C,framesCompleted:b,handleFinish:re,setRewards:U,accRewards:S,setSelected:w,selected:v,setIndex:x,setFramesCompleted:T,loadPuzzleStatus:X,soundActions:o,setResolveAction:h,disableExit:d,translateFromParent:Z,setInfo:f,emitEvent:l,nodeId:e,emitResetPuzzle:se,resetValues:F,setResetValues:M,setPuzzlesAutoCompleted:y,puzzlesAutoCompleted:R,emitOpenPopupCounterInfo:()=>{g===0&&N(!1)},pause:p,keyboardControl:_,totalCorrects:j,getEvent:u};return jsxRuntimeExports.jsxs("div",{className:"puzzle-frame",children:[jsxRuntimeExports.jsx(CurrentFramePuzzle,{...ue}),jsxRuntimeExports.jsxs("div",{className:"puzzle-frame__content",children:[jsxRuntimeExports.jsx("div",{className:"puzzle-frame__controls",children:jsxRuntimeExports.jsx("div",{className:"puzzle-frame__progress",children:jsxRuntimeExports.jsx("div",{"data-testid":"puzzle-frame-progress",style:{width:`${v/j*100}%`},className:"puzzle-frame__progress--handle"})})}),s?jsxRuntimeExports.jsx("button",{"data-testid":"puzzle-frame-counter-button",disabled:D,"aria-hidden":D,type:"button",className:"puzzle-frame__info",onClick:K,children:jsxRuntimeExports.jsx(Counter,{current:v,total:j,tooltip:!D,getEvent:u})}):null]})]})}FrameImageClickComponent.defaultProps={description:"",context:{},nodeId:0,showFrames:!1};function EditButton({action:l,className:e}){return jsxRuntimeExports.jsx("div",{role:"button",tabIndex:0,"aria-label":`${l} edit button`,onKeyUp:()=>{},className:`puzzle--webBuilder__edit ${e}`,onClick:l,children:jsxRuntimeExports.jsx("span",{className:"icon-fb-edit"})})}EditButton.defaultProps={action:()=>{},className:""};const path="https://min.gamelearn.io/css-resources/gamelearn/resources/",imagesOptions=[{name:"webbuilder.imageOptions.image1",src:"Amor.jpg"},{name:"webbuilder.imageOptions.image2",src:"Bancorp.svg"},{name:"webbuilder.imageOptions.image3",src:"Amanda.jpg"},{name:"webbuilder.imageOptions.image4",src:"keyboard.jpg"},{name:"webbuilder.imageOptions.image5",src:"Melanie.jpg"},{name:"webbuilder.imageOptions.image6",src:"Sharon.jpg"},{name:"webbuilder.imageOptions.image7",src:"Bankex.svg"},{name:"webbuilder.imageOptions.image8",src:"Futbol.jpg"},{name:"webbuilder.imageOptions.image9",src:"GBL.svg"},{name:"webbuilder.imageOptions.image10",src:"Fooder.jpg"},{name:"webbuilder.imageOptions.image11",src:"Corporate.jpg"},{name:"webbuilder.imageOptions.image12",src:"Bank of Zamunda.svg"},{name:"webbuilder.imageOptions.image13",src:"mindfullness.jpg"},{name:"webbuilder.imageOptions.image14",src:"Nature.jpg"},{name:"webbuilder.imageOptions.image15",src:"Shopper.jpg"},{name:"webbuilder.imageOptions.image16",src:"Lab.jpg"}],colorOptions=["#c66a46","#3c9dc0","#6236ff","#21254f"],colorOptions2=["#39b7b9","#25a1d4","#f5a623","#080269"],titleOptions=[{title:"webbuilder.bank.titleOptions.title1.text",desc:"webbuilder.bank.titleOptions.title1.description"},{title:"webbuilder.bank.titleOptions.title2.text",desc:"webbuilder.bank.titleOptions.title2.description"},{title:"webbuilder.bank.titleOptions.title3.text",desc:"webbuilder.bank.titleOptions.title3.description"},{title:"webbuilder.bank.titleOptions.title4.text",desc:"webbuilder.bank.titleOptions.title4.description"},{title:"webbuilder.bank.titleOptions.title5.text",desc:"webbuilder.bank.titleOptions.title5.description"}],bankProps={backgroundImage:imagesOptions[10].src,backgroundLogo:imagesOptions[11].src,backgroundColor:"#21254f",btnColor:"#25a1d4"},BankTemplate={header:{color:bankProps.backgroundColor,logo:bankProps.backgroundLogo},body:{bankTitle:titleOptions[0].title,bankDesc:titleOptions[0].desc,bgImage:bankProps.backgroundImage,btnColor:bankProps.btnColor}};function BankHeader({showingReference:l,usingTemplate:e,openPopup:n,onSave:t,header:s,translate:o}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[l?jsxRuntimeExports.jsx("div",{className:"bank--edit__logo",children:jsxRuntimeExports.jsx("img",{src:path+e.header.logo,alt:"",title:""})}):jsxRuntimeExports.jsxs("div",{className:"bank--edit__logo",children:[s.logo?jsxRuntimeExports.jsx("img",{src:path+s.logo,alt:"",title:""}):jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("b",{children:o("webbuilder.bank.header.title")}),jsxRuntimeExports.jsx("b",{children:o("webbuilder.bank.header.logo")})]}),jsxRuntimeExports.jsx(EditButton,{action:()=>n("PopupImageComponent",{text:"Documents",images:imagesOptions,onSave:d=>t({logo:d})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsxs("ul",{className:"bank--navigation",children:[jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.account")}),jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.invest")}),jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.loans")}),jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.mortgage")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>n("PopupColorComponent",{colors:colorOptions,onSave:d=>t({color:d})})})]})]})}BankHeader.defaultProps={showingReference:!1,usingTemplate:{},openPopup:()=>{},onSave:()=>{},header:{}};BankHeader.propTypes={showingReference:PropTypes.bool,usingTemplate:PropTypes.shape({}),openPopup:PropTypes.func,onSave:PropTypes.func,header:PropTypes.shape({})};function FacebookHeader({showingReference:l,usingTemplate:e,header:n,translate:t}){const s=l?e.header.userImage:n.userImage,o=l?e.header.username:n.username;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:"facebook--header__logo",children:jsxRuntimeExports.jsx("span",{className:"icon-fb-logo"})}),jsxRuntimeExports.jsxs("span",{className:"facebook--header__user",children:[jsxRuntimeExports.jsx("span",{className:"facebook--header__user--circle",style:{backgroundImage:`url(${path+s})`}}),jsxRuntimeExports.jsx("span",{className:"facebook--header__user--text",children:t(o||"webbuilder.facebook.header.userName")})]})]})}FacebookHeader.defaultProps={showingReference:!1,usingTemplate:{},header:{}};function WebBuilderHeader(l){const{isFacebook:e,header:n,showingReference:t,usingTemplate:s}=l,o=t?s.header.color:n.color;return jsxRuntimeExports.jsx("div",{className:`puzzle--webBuilder__header ${e?"":"bank"}`,style:e?{}:{backgroundColor:`${o}`},children:jsxRuntimeExports.jsx("div",{className:`${e?"facebook":"bank"}--header`,children:e?jsxRuntimeExports.jsx(FacebookHeader,{...l}):jsxRuntimeExports.jsx(BankHeader,{...l})})})}WebBuilderHeader.defaultProps={isFacebook:!1,showingReference:!1,usingTemplate:{},header:{}};WebBuilderHeader.propTypes={isFacebook:PropTypes.bool,showingReference:PropTypes.bool,usingTemplate:PropTypes.shape({}),header:PropTypes.shape({})};const facebookProps={backgroundImage:imagesOptions[12].src,backgroundUser:imagesOptions[5].src},userOptions=["webbuilder.userOptions.user1","webbuilder.userOptions.user2","webbuilder.userOptions.user3"],workOptions=["webbuilder.workOptions.work1","webbuilder.workOptions.work2","webbuilder.workOptions.work3"],studiesOptions=["webbuilder.studiesOptions.study1","webbuilder.studiesOptions.study2","webbuilder.studiesOptions.study3"],mailOptions=["webbuilder.mailOptions.mail1","webbuilder.mailOptions.mail2","webbuilder.mailOptions.mail3"],homeOptions=["webbuilder.homeOptions.home1","webbuilder.homeOptions.home2","webbuilder.homeOptions.home3"],FacebookTemplate={header:{username:userOptions[1],userImage:facebookProps.backgroundUser,bgImage:facebookProps.backgroundImage},body:{work:workOptions[2],home:homeOptions[1],studies:studiesOptions[0],mail:mailOptions[0]}};function WebBuilderFront({showingReference:l,usingTemplate:e,header:n,onSave:t,translate:s,openPopup:o}){const d=l?e.header.userImage:n.userImage,h=l?e.header.username:n.username,f=l?e.header.bgImage:n.bgImage;return jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__front",style:{backgroundImage:`url(${path+f})`},children:[jsxRuntimeExports.jsxs("div",{className:"facebook--user",children:[jsxRuntimeExports.jsx("span",{className:"facebook--user__circle",style:{backgroundImage:`url(${path+d})`},children:l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{o("PopupImageComponent",{images:imagesOptions,onSave:u=>t({userImage:u})})}})}),jsxRuntimeExports.jsx("span",{className:"facebook--user__text",children:s(h||"webbuilder.facebook.header.userName")}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{o("PopupTextComponent",{options:userOptions,onSave:u=>t({username:u})})}})]}),l?null:jsxRuntimeExports.jsx(EditButton,{className:"position--absolute right top",action:()=>{o("PopupImageComponent",{images:imagesOptions,onSave:u=>t({bgImage:u})})}})]})}WebBuilderFront.defaultProps={showingReference:!1,usingTemplate:{},openPopup:()=>{},onSave:()=>{},header:{}};WebBuilderFront.propTypes={showingReference:PropTypes.bool,usingTemplate:PropTypes.shape({}),openPopup:PropTypes.func,onSave:PropTypes.func,header:PropTypes.shape({})};function FacebookBody({showingReference:l,usingTemplate:e,body:n,onSave:t,openPopup:s,translate:o}){const d=l?e.body.work:n.work,h=l?e.body.studies:n.studies,f=l?e.body.home:n.home,u=l?e.body.mail:n.mail;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("ul",{className:"facebook--sidebar",dir:"auto",children:[jsxRuntimeExports.jsxs("li",{className:`facebook--sidebar__item ${d||l?"selected":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-work"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(d||"webbuilder.facebook.body.work")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:workOptions,onSave:p=>t({work:p})})}})]}),jsxRuntimeExports.jsxs("li",{className:`facebook--sidebar__item ${h||l?"selected":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-education"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(h||"webbuilder.facebook.body.studies")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:studiesOptions,onSave:p=>t({studies:p})})}})]}),jsxRuntimeExports.jsxs("li",{className:`facebook--sidebar__item ${f||l?"selected":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-home"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(f||"webbuilder.facebook.body.home")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:homeOptions,onSave:p=>t({home:p})})}})]})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--board",children:[jsxRuntimeExports.jsx("div",{className:"facebook--mail__label",children:"E-mail"}),jsxRuntimeExports.jsxs("div",{className:`facebook--mail__box ${u||l?"active":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-mail"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(u||"webbuilder.facebook.body.email")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:mailOptions,onSave:p=>t({mail:p})})}})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs",children:[jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-edit"}),o("webbuilder.facebook.body.editPost")]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-photo"}),o("webbuilder.facebook.body.editPhoto")]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-video"}),o("webbuilder.facebook.body.liveVideo")]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-events"}),o("webbuilder.facebook.body.facebookEvent")]})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--thinking",children:[jsxRuntimeExports.jsxs("div",{className:"facebook--textarea",children:[jsxRuntimeExports.jsx("div",{className:"facebook--textarea__circle"}),jsxRuntimeExports.jsx("div",{className:"facebook--textarea__placeholder",children:o("webbuilder.facebook.body.think")})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--chips",children:[jsxRuntimeExports.jsx("span",{className:"facebook--chips__item",children:o("webbuilder.facebook.body.photo")}),jsxRuntimeExports.jsx("span",{className:"facebook--chips__item",children:o("webbuilder.facebook.body.label")}),jsxRuntimeExports.jsx("span",{className:"facebook--chips__item",children:o("webbuilder.facebook.body.feeling")})]})]})]})]})}FacebookBody.defaultProps={showingReference:!1,usingTemplate:{},openPopup:()=>{},onSave:()=>{},body:{}};function BankBody({showingReference:l,usingTemplate:e,body:n,onSave:t,openPopup:s,translate:o}){const d=l?e.body.bgImage:n.bgImage,h=l?e.body.btnColor:n.btnColor,f=o(l?e.body.bankTitle:"webbuilder.bank.body.image.title"),u=o(l?e.body.bankDesc:"webbuilder.bank.body.image.description");return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"bank--image__front",style:{backgroundImage:`url(${path+d})`},children:jsxRuntimeExports.jsxs("div",{className:"bank--image__text",children:[jsxRuntimeExports.jsx("span",{className:"title",children:n.bankTitle&&!l?o(n.bankTitle):f}),jsxRuntimeExports.jsx("span",{children:n.bankDesc&&!l?o(n.bankDesc):u}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:titleOptions,onSave:p=>t({bankTitle:p.title,bankDesc:p.desc})})}}),l?null:jsxRuntimeExports.jsx(EditButton,{className:"position--absolute top right",action:()=>{s("PopupImageComponent",{images:imagesOptions,onSave:p=>t({bgImage:p})})}})]})}),jsxRuntimeExports.jsx("div",{dir:"auto",className:"bank--sidebar",children:jsxRuntimeExports.jsxs("div",{className:"bank--form",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__title",children:o("webbuilder.bank.body.password.title")}),jsxRuntimeExports.jsxs("div",{className:"bank--form__group",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__label",children:o("webbuilder.bank.body.password.current")}),jsxRuntimeExports.jsx("input",{disabled:!0,className:"bank--form__input",type:"password",placeholder:"********"}),jsxRuntimeExports.jsx("span",{className:"icon-circle-check"})]}),jsxRuntimeExports.jsxs("div",{className:"bank--form__group",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__label",children:o("webbuilder.bank.body.password.new")}),jsxRuntimeExports.jsx("input",{disabled:!0,className:"bank--form__input",type:"password",placeholder:"********"}),jsxRuntimeExports.jsx("span",{className:"icon-circle-check"})]}),jsxRuntimeExports.jsxs("div",{className:"bank--form__group",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__label",children:o("webbuilder.bank.body.password.confirm")}),jsxRuntimeExports.jsx("input",{disabled:!0,className:"bank--form__input",type:"password",placeholder:"********"}),jsxRuntimeExports.jsx("span",{className:"icon-circle-check"})]}),jsxRuntimeExports.jsxs("div",{className:"bank--form__buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"bank--form__btn",style:{backgroundColor:`${h}`},children:o("webbuilder.save")}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupColorComponent",{colors:colorOptions2,onSave:p=>t({btnColor:p})})}})]})]})})]})}function WebBuilderBody(l){const{isFacebook:e}=l;return jsxRuntimeExports.jsx("div",{className:`puzzle--webBuilder__body ${e?"":"bank"}`,children:e?jsxRuntimeExports.jsx(FacebookBody,{...l}):jsxRuntimeExports.jsx(BankBody,{...l})})}WebBuilderBody.defaultProps={isFacebook:!1};WebBuilderBody.propTypes={isFacebook:PropTypes.bool};function CurrentButton({translate:l,backActive:e,action:n}){return jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__topbar--buttons",children:jsxRuntimeExports.jsx("button",{type:"button",className:"puzzle--webBuilder__topbar--buttons__item",onClick:n,children:l(`webbuilder.${e?"return":"showReference"}`)})})}function WebBuilderTopBar({backActive:l,displayButton:e,clickAction:n,translate:t}){return jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__topbar",children:[e?jsxRuntimeExports.jsx(CurrentButton,{backActive:l,action:n,translate:t}):null,jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__title",children:"web builder 3.0"})]})}function FeedbackResult({onNext:l,success:e,showButton:n,translate:t}){const s=t(e?"webbuilder.feedback.successTitle":"webbuilder.feedback.failTitle"),o=t(e?"webbuilder.feedback.success":"webbuilder.feedback.fail");return jsxRuntimeExports.jsxs("div",{dir:"auto",className:`puzzle--webBuilder__feedback bottom ${e?"success":"failed"}`,style:e?{zIndex:"11"}:{},children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"title",children:s}),jsxRuntimeExports.jsx("div",{className:"description",children:o})]}),n?jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__secondary ${e?"green":"red"}`,onClick:l,style:{marginRight:"64px"},children:t("webbuilder.continue")}):null]})}FeedbackResult.defaultProps={onNext:()=>{},success:!1,showButton:!0};function PublishButton({onPublish:l,translate:e}){return jsxRuntimeExports.jsx("div",{role:"button",tabIndex:0,onKeyUp:()=>{},"aria-label":"publish",className:"position--absolute bottom center",onClick:l,children:jsxRuntimeExports.jsxs("div",{className:"gat--btn gat--btn__primary",children:[jsxRuntimeExports.jsx("span",{className:"icon-download-cloud"}),e("webbuilder.publish")]})})}PublishButton.defaultProps={onPublish:()=>{}};function PopupColorComponent({colors:l,onSave:e,closingAction:n,translate:t,soundActions:s}){const[o]=s,[d,h]=React$2.useState(),f=d===null;return jsxRuntimeExports.jsx("div",{className:"popup--layer",children:jsxRuntimeExports.jsxs("div",{className:"popup",children:[jsxRuntimeExports.jsx("div",{className:"popup--info",children:jsxRuntimeExports.jsx("span",{className:"popup--info__item",children:jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__colors",children:[jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__colors--title",children:jsxRuntimeExports.jsx("span",{children:t("webbuilder.colorSelect.title")})}),jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__colors--items",children:l.map(u=>jsxRuntimeExports.jsx("div",{className:`puzzle--webBuilder__color--select ${d===u?"selected":""}`,style:{borderColor:`${u}`},onClick:()=>h(u),children:jsxRuntimeExports.jsx("span",{style:{backgroundColor:`${u}`}})},u+Date.now()))})]})})}),jsxRuntimeExports.jsxs("div",{className:"popup--buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary",onClick:n,children:jsxRuntimeExports.jsx("span",{children:t("webbuilder.cancel")})}),jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__primary ${f?"disabled":""}`,onClick:f?null:()=>{o("click-ui"),e(d)},children:t("webbuilder.save")})]})]})})}PopupColorComponent.defaultProps={closingAction:()=>{},onSave:()=>{},colors:{}};PopupColorComponent.propTypes={closingAction:PropTypes.func,onSave:PropTypes.func,colors:PropTypes.arrayOf(PropTypes.string)};function PopupImageComponent({images:l,onSave:e,closingAction:n,translate:t,soundActions:s}){const[o]=s,[d,h]=React$2.useState(),f=!d;return jsxRuntimeExports.jsx("div",{className:"folder-popup",children:jsxRuntimeExports.jsxs("div",{className:"folder-popup__content",children:[jsxRuntimeExports.jsxs("div",{className:"folder-popup__header",children:[jsxRuntimeExports.jsx("div",{}),jsxRuntimeExports.jsxs("div",{className:"folder-popup__title",children:[jsxRuntimeExports.jsx("span",{className:"folder-popup__icon-header icon-fb-search"}),jsxRuntimeExports.jsx("span",{children:t("webbuilder.imageSelect.title")})]}),jsxRuntimeExports.jsx("button",{onClick:n,className:"folder-popup__close",type:"button",children:jsxRuntimeExports.jsx("span",{className:"icon-close-fit"})})]}),jsxRuntimeExports.jsxs("div",{className:"folder-popup__body",children:[jsxRuntimeExports.jsx("div",{className:"folder-popup__scroll",children:jsxRuntimeExports.jsx("ul",{className:"folder-popup__list",children:l.map(u=>jsxRuntimeExports.jsxs("li",{className:"folder-item-file",children:[jsxRuntimeExports.jsx("div",{className:"folder-item-file__imagewrap",onClick:()=>h(u),onKeyUp:()=>{},role:"button",tabIndex:0,children:jsxRuntimeExports.jsx("img",{alt:u.src,src:path+u.src})}),jsxRuntimeExports.jsx("div",{className:"folder-item-file__title",title:u.src,children:u.src})]},u.src+Date.now()))})}),jsxRuntimeExports.jsxs("div",{className:"folder-popup__buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary",onClick:n,children:t("webbuilder.cancel")}),jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__primary ${f?"disabled":""}`,onClick:f?null:()=>{o("click-ui"),e(d.src)},children:t("webbuilder.open")})]})]})]})})}PopupImageComponent.defaultProps={closingAction:()=>{},onSave:()=>{},images:[]};function Selected({item:l,translate:e}){return l instanceof Object?e(l.title.toString()):jsxRuntimeExports.jsx("span",{children:e(l||"webbuilder.textSelect.title")})}function PopupTextComponent({closingAction:l,onSave:e,options:n,translate:t,soundActions:s}){const[o]=s,[d,h]=React$2.useState(""),f=d==="",[u,p]=React$2.useState(!1),_=u?"puzzle--webBuilder__select--item open":"puzzle--webBuilder__select--item",R=()=>{p(!u)};return jsxRuntimeExports.jsx("div",{className:"popup--layer",children:jsxRuntimeExports.jsxs("div",{className:"popup",children:[jsxRuntimeExports.jsx("div",{className:"popup--info",children:jsxRuntimeExports.jsx("span",{className:"popup--info__item",children:jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__select",children:[jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__select--label",children:jsxRuntimeExports.jsx("div",{dir:"auto",children:t("webbuilder.textSelect.title")})}),jsxRuntimeExports.jsxs("div",{dir:"auto",className:_,onClick:()=>R(),role:"presentation",children:[jsxRuntimeExports.jsx(Selected,{item:d,translate:t}),jsxRuntimeExports.jsx("span",{className:"icon-down-arrow"}),jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__dropdown",children:n.map(y=>y instanceof Object?jsxRuntimeExports.jsxs("span",{role:"button",tabIndex:0,onKeyUp:()=>{},className:"puzzle--webBuilder__dropdown--option",onClick:()=>{h(y)},children:[jsxRuntimeExports.jsx("span",{children:t(y.title)}),jsxRuntimeExports.jsx("span",{className:"subtitle",children:t(y.desc)})]},y.title):jsxRuntimeExports.jsx("span",{role:"button",tabIndex:0,onKeyUp:()=>{},className:"puzzle--webBuilder__dropdown--option",onClick:()=>{h(y)},children:t(y)},y))})]})]})})}),jsxRuntimeExports.jsxs("div",{className:"popup--buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary",onClick:l,children:t("webbuilder.cancel")}),jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__primary ${f?"disabled":""}`,disabled:f,onClick:()=>{o("click-ui"),e(d)},children:t("webbuilder.save")})]})]})})}const POPUPS=Object.freeze(Object.defineProperty({__proto__:null,PopupColorComponent,PopupImageComponent,PopupTextComponent},Symbol.toStringTag,{value:"Module"})),defaultHeader={username:null,logo:null,userImage:null,bgImage:null,color:""},defaultBody={bankTitle:null,color:"",btnColor:"",work:null,home:null,mail:null,studies:null,bgImage:null};function PopupComponent({type:l,close:e,translate:n,soundActions:t,...s}){const o=POPUPS[l];return o?jsxRuntimeExports.jsx(o,{type:l,...s.props,closingAction:e,translate:n,soundActions:t}):null}function DisplayingFeedback({feed:l,resolved:e,translate:n,onNext:t}){return l==="success"?jsxRuntimeExports.jsx(FeedbackResult,{success:!0,showButton:!e,onNext:t,translate:n}):l==="failed"?jsxRuntimeExports.jsx(FeedbackResult,{onNext:t,translate:n}):null}function WebBuilderPuzzleComponent({type:l,info:e,emitEvent:n,getEvent:t,setResolveAction:s,soundActions:o,disableExit:d,keyboardControl:h}){const[f,u]=React$2.useState(!1),[p,_]=React$2.useState(!1),[R,y]=React$2.useState(!1),[S,g]=React$2.useState(!1),[x,b]=React$2.useState(!1),[T,v]=React$2.useState(null),w=l==="facebook",C=w?FacebookTemplate:BankTemplate,[D,N]=React$2.useState({type:"",props:{}}),[P,k]=React$2.useState(defaultHeader),[F,M]=React$2.useState(defaultBody),[j]=o,U=W=>t({type:"translate",payload:W}),B=()=>{N({type:"",props:{}})},X=(W,V={})=>{N({type:W,props:V})},re=()=>{if(e.solution){const{rewards:W}=e.solution.right,{rewards:V}=e.solution.wrong;j(R?"fail":"score"),n({type:"addPoints",complex:!0,finish:!0,payload:R?V:W}),n({type:"passPuzzle"})}},se=h({disabled:T!=="success",forward:re,escape:re});React$2.useEffect(()=>se(),[se]);const Z=(W,V)=>{const z=Object.keys(W),Y={existing:0,equal:0};return z.forEach(ie=>{V[ie]!==null&&V[ie]!==""&&(Y.existing+=1),W[ie]===V[ie]&&(Y.equal+=1)}),Y},K=(W,V)=>{const z=Object.keys(C.header).length,Y=Object.keys(C.body).length,ie=Z(C.header,W),le=Z(C.body,V),fe=le.existing+ie.existing===z+Y,ce=le.equal+ie.equal===z+Y;return{exist:fe,equal:ce}},te=()=>{j("click-ui");const{exist:W,equal:V}=K(P,F);n({type:"hidePuzzleButtons",payload:!0}),W&&!V?(x&&b(!1),v("failed"),y(!0),n({type:"failPuzzle"})):W&&V&&(x&&(d(!1),b(!1)),g(!0),v("success"))},ue=W=>{if(Object.keys(W).length>0){const V={...P,...W};k(V),B();const{exist:z}=K(V,F);b(!!z)}},me=W=>{if(Object.keys(W).length>0){const V={...F,...W};M(V),B();const{exist:z}=K(P,V);b(!!z)}};React$2.useEffect(()=>{s(W=>{_(!0),v("success"),u(!1),setTimeout(()=>{v(""),W()},4e3)}),d(!0)},[s,d,e.resolve.rewards,n]);const J={showingReference:f||p,isFacebook:w,openPopup:X,usingTemplate:C,translate:U},H=()=>{T==="failed"?(v(null),n({type:"hidePuzzleButtons",payload:!1})):T==="success"&&re()};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(PopupComponent,{type:D.type,...D,close:B,soundActions:o,translate:U}),jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder",children:[jsxRuntimeExports.jsx(WebBuilderTopBar,{backActive:f,displayButton:!p&&!S,translate:U,clickAction:()=>{j("click-ui"),u(!f)}}),jsxRuntimeExports.jsx(WebBuilderHeader,{...J,header:P,onSave:ue}),w?jsxRuntimeExports.jsx(WebBuilderFront,{...J,header:P,onSave:ue}):null,jsxRuntimeExports.jsx(WebBuilderBody,{...J,body:F,onSave:me})]}),!x&&!f?jsxRuntimeExports.jsx(DisplayingFeedback,{feed:T,onNext:H,resolved:p,translate:U}):null,x&&!f?jsxRuntimeExports.jsx(PublishButton,{onPublish:te,translate:U}):null]})}function CardImage({img:l}){const n=(l||{}).url;return jsxRuntimeExports.jsx("img",{src:n,alt:""})}function CardText({text:l,hasImage:e}){return l?jsxRuntimeExports.jsx("div",{className:`card-selector-item__textbox ${e?"":"card-selector-item__textbox--noimage"}`,children:jsxRuntimeExports.jsx("div",{className:"card-selector-item__text",children:HTMLReactParser$1(l)})}):null}function CardNumber({order:l}){return l?jsxRuntimeExports.jsx("div",{className:"card-selector-item__order",children:jsxRuntimeExports.jsx("div",{children:l})}):null}function CardSuccess({order:l}){return jsxRuntimeExports.jsxs("div",{className:"card-selector-item__feedback card-selector-item__feedback--success ",children:[jsxRuntimeExports.jsx(CardNumber,{order:l}),jsxRuntimeExports.jsx("div",{className:"card-selector-item__feedbackicon",children:jsxRuntimeExports.jsx("div",{className:"icon-check-circle-black"})})]})}function CardFail(){return jsxRuntimeExports.jsx("div",{className:"card-selector-item__feedback card-selector-item__feedback--error",children:jsxRuntimeExports.jsx("div",{className:"card-selector-item__feedbackicon",children:jsxRuntimeExports.jsx("div",{className:"icon-error-circle-black"})})})}function CardContainer({flipped:l,correct:e,order:n,wrongOrder:t,isEmpty:s}){return!s&&l&&e&&!t?jsxRuntimeExports.jsx(CardSuccess,{order:n}):!s&&l?jsxRuntimeExports.jsx(CardFail,{}):null}function Card({card:l,handleClick:e,flipped:n,cardIndex:t,wrongOrder:s}){const o=()=>!(l.img||l.text),d=()=>!!(n&&!l.correct||!n);return jsxRuntimeExports.jsxs("button",{"data-testid":`card-${t}`,type:"button",order:l.order,onClick:()=>{!o()&&d()&&e(t)},className:["unset-button card-selector-item",o()&&"card-selector-item--empty",(l.textWithBackground||l.textWithBackground===void 0)&&"card-selector-item--text-with-background",l.verticalAlignmentText&&`card-selector-item--with-text-at-${l.verticalAlignmentText}`].filter(Boolean).join(" "),"aria-label":l.text?l.text:null,children:[l.img&&jsxRuntimeExports.jsx(CardImage,{img:l.img}),l.text&&jsxRuntimeExports.jsx(CardText,{text:l.text,hasImage:!!l.img}),jsxRuntimeExports.jsx(CardContainer,{isEmpty:o(),flipped:n,wrongOrder:s,order:l.order,correct:l.correct})]})}Card.defaultProps={handleClick:()=>{},documentsDict:{},card:{},flipped:!1,wrongOrder:!1,cardIndex:0};Card.propTypes={wrongOrder:PropTypes.bool,handleClick:PropTypes.func,cardIndex:PropTypes.number,flipped:PropTypes.bool,documentsDict:PropTypes.shape({}),card:PropTypes.shape({correct:PropTypes.bool,order:PropTypes.number,text:PropTypes.string,imgId:PropTypes.string,status:PropTypes.string})};function Board({cards:l,currentOrder:e,setCurrentOrder:n,handleError:t,feedbackIsShown:s,resolvePuzzle:o,soundActions:d,onFinish:h,handleSuccess:f,resolveWithAnyCard:u}){const[p,_]=React$2.useState(Array(l.length).fill(!1)),[R,y]=React$2.useState(Array(l.length).fill(!1)),[S,g]=React$2.useState(0),[x,b]=React$2.useState(!1),[T]=d,v=l.filter(M=>M.correct===!0).length,w=l.filter(M=>M.order).length>0,C=React$2.useCallback(()=>{_(Array(l.length).fill(!1)),y(Array(l.length).fill(!1)),g(0),n(1)},[l.length,n]),D=()=>{setTimeout(()=>{C()},1e3)};function N(M,j=M){const U=Array.from(p);U[M]=j,_(U)}const P=React$2.useCallback(()=>{const M=[];l.forEach((j,U)=>{j.correct===!0&&M.push(U)}),_(M)},[l]);React$2.useEffect(()=>{o&&P()},[P,o]),React$2.useEffect(()=>{(u&&S||S===v&&v>0)&&(h(),b(!0),g(0))},[S,h,v,u]);const k=M=>{N(M),f(l[M].id||null),g(S+1)},F=M=>{var j,U;if(!x&&!s)if(T("click-ui"),l[M].correct&&!w)k(M);else if(w){if(l[M].order===e)n(e+1),k(M);else if(N(M),l[M].order!==e){const B=Array.from(R);B[M]=M,y(B),t(((j=l[M])==null?void 0:j.id)||null,l[M].correct),D()}}else t(((U=l[M])==null?void 0:U.id)||null),N(M),setTimeout(()=>{N(M,!1)},1e3)};return jsxRuntimeExports.jsx("div",{className:`cards-selector__content cards-selector__content-${l.length}`,children:l&&l.map((M,j)=>jsxRuntimeExports.jsx(Card,{setCurrentOrder:n,card:M,handleClick:()=>F(j),flipped:p.includes(j),wrongOrder:R.includes(j),cardIndex:j},`cardPuzzle ${l.indexOf(M)}`))})}Board.defaultProps={setCurrentOrder:()=>{},handleError:()=>{},onFinish:()=>{},handleSuccess:()=>{},documentsDict:{},cards:[],currentOrder:1,resolvePuzzle:!1,feedbackIsShown:!1,resolveWithAnyCard:!1};function CardsSelectorPuzzleComponent({emitEvent:l,getEvent:e,info:n,cards:t,resolveWithAnyCard:s,specificFeedbacks:o,disableExit:d,setResolveAction:h,soundActions:f,backgroundImage:u,nodeId:p,keyboardControl:_,hideBackgroundImageTheme:R=!1}){var H,W;const[y,S]=React$2.useState(!1),[g,x]=React$2.useState(1),[b,T]=React$2.useState(!1),[v,w]=React$2.useState(!1),[C,D]=React$2.useState(!1),[N,P]=React$2.useState([]),[k,F]=React$2.useState(!1),[M,j]=React$2.useState(""),[U]=f,B=V=>e({type:"translate",payload:V}),X=`cards-selector-puzzle_${p}`,re=React$2.useCallback(V=>{T(!1),D(!1),l({type:"hidePuzzleButtons",payload:!1}),l({type:"addPoints",complex:!0,finish:!0,payload:V}),l({type:"passPuzzle"})},[l]),se=React$2.useCallback(()=>{var ie,le;l({type:"hidePuzzleButtons",payload:!0}),T(!0);const{rewards:V}=((ie=n==null?void 0:n.solution)==null?void 0:ie.right)||{},z=((le=o==null?void 0:o.correctFeedbacks)==null?void 0:le.map(fe=>fe.rewards).flat())||[],Y=[...N,...V,...z];U("score"),re(Y)},[N,re,l,(H=n==null?void 0:n.solution)==null?void 0:H.right,U,o==null?void 0:o.correctFeedbacks]),Z=()=>{S(!0),n.solution.right.desc&&!(o!=null&&o.specificCorrectFeedbacks)&&j(n.solution.right.desc),D(!0)},K=()=>{b||y?se():(T(!1),d(!1),D(!1),l({type:"hidePuzzleButtons",payload:!1})),j("")},te=V=>{if(w(!0),o!=null&&o.specificCorrectFeedbacks){const z=o.correctFeedbacks.find(Y=>Y.id===V);z!=null&&z.desc&&(j(z.desc),D(!0))}U("score"),l({type:"hidePuzzleButtons",payload:!0})},ue=(V,z=!1)=>{var Y,ie;if(w(!1),z)j((Y=n.orderFeedback)==null?void 0:Y.desc),D(!0),P([...N,...((ie=n.orderFeedback)==null?void 0:ie.rewards)||[]]);else if(o!=null&&o.specificWrongFeedbacks){const le=o.wrongFeedbacks.find(fe=>fe.id===V);le!=null&&le.desc?(j(le.desc),D(!0)):(D(!0),setTimeout(()=>{K(),l({type:"hidePuzzleButtons",payload:!1})},2e3)),P([...N,...(le==null?void 0:le.rewards)||[]])}else n.solution.wrong.desc?(j(n.solution.wrong.desc),D(!0)):(D(!0),setTimeout(()=>{K(),l({type:"hidePuzzleButtons",payload:!1})},3e3));d(!0),!(o!=null&&o.specificWrongFeedbacks)&&!z&&P([...N,...n.solution.wrong.rewards]),U("fail"),l({type:"hidePuzzleButtons",payload:!0}),l({type:"failPuzzle"})};React$2.useEffect(()=>{y&&d(!0)},[d,y]),React$2.useEffect(()=>{h(()=>{var z;l({type:"hidePuzzleButtons",payload:!0}),F(!0);const V=[...N,...((z=n==null?void 0:n.resolve)==null?void 0:z.rewards)||{}];setTimeout(()=>{T(!1),D(!1),l({type:"hidePuzzleButtons",payload:!1}),l({type:"puzzleAction",action:"resolve",payload:{element:X,rewards:V,finish:!0}})},2e3)})},[h,d,N,(W=n==null?void 0:n.resolve)==null?void 0:W.rewards,l,X]);const me=React$2.useMemo(()=>{let V="";return V="cards-selector",u!=null&&u.url&&(V+=" cards-selector--with-custom-bg"),R&&(V+=" disable-background-image"),V},[u==null?void 0:u.url,R]),J={backgroundImage:u!=null&&u.url?`url('${u.url}')`:""};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:me,style:J,children:jsxRuntimeExports.jsx(Board,{setCurrentOrder:x,currentOrder:g,cards:t,onFinish:Z,resolveWithAnyCard:s,handleError:ue,feedbackIsShown:C,resolvePuzzle:k,soundActions:f,handleSuccess:te})}),C&&jsxRuntimeExports.jsx(FeedbackComponent$1,{success:b||v,text:M,hasTimeout:!M,translate:B,functionOnClose:K,keyboardControl:_})]})}CardsSelectorPuzzleComponent.defaultProps={cards:[],info:{},resolveWithAnyCard:!1,backgroundImage:{url:""}};function Fakecursor(){return jsxRuntimeExports.jsx("span",{className:"fakecursor",children:"|"})}function FixedComponent({delay:l,index:e,length:n,textToPrint:t,setDoneTyping:s,nextParagraphType:o,isWriting:d}){const[h,f]=React$2.useState(!0),[u,p]=React$2.useState(""),[_,R]=React$2.useState(!1);React$2.useEffect(()=>{R(e===n-1)},[e,n]);const y=b=>{if(!b||!b.length)return"";const T=b.replace(/<script.*?>.*?<\/script>/gim,""),v=document.createElement("DIV");return v.innerHTML=T,v.textContent||v.innerText||""};React$2.useEffect(()=>{const b=()=>{const v=t.trim().split(" ");return T(v,v.length-1).join(" ")},T=(v,w)=>{if(w<0)return[""];const C=[...v];if(y(v[w]).length!==0){const D=v[w];return C[w]=`<span class="lastWord" >${D}</span>`,C}return T(v,w-1)};o==="election"?p(b()):setTimeout(()=>{p(t)},200)},[o,t]);const S=()=>{s(!0),f(!1)},g=t.split("<p>");g.shift();const x=g.length>1;return h&&t!==""&&u!==""?jsxRuntimeExports.jsx("span",{className:`writer-inline ${x?"multiple":""} ${_?"Typist":""}`,"data-testid":`result-${e}`,children:jsxRuntimeExports.jsx(Typist,{startDelay:300,avgTypingDelay:l,stdTypingDelay:10,onCharacterTyped:d,onTypingDone:S,cursor:{hideWhenDone:!0,hideWhenDoneDelay:200},blink:!0,children:HTMLReactParser$1(t)})}):jsxRuntimeExports.jsxs("span",{className:`writer-inline ${x?"multiple":""} ${_?"Typist":""}`,"data-testid":`result-${e}`,children:[HTMLReactParser$1(u),o==="election"&&_&&jsxRuntimeExports.jsx(Fakecursor,{})]})}FixedComponent.defaultProps={delay:0,textToPrint:"",setDoneTyping:()=>{},nextParagraphType:"",isWriting:()=>{}};function SingleElection({option:l,decisionInspected:e,setCurrentDecisionSelected:n,index:t,setCurrentDecisionInspected:s,soundActions:o}){const[d]=o,h=R=>R.previewText!==""?HTMLReactParser$1(R.previewText):HTMLReactParser$1(R.fullText),f=R=>R.previewText!==""?e===t?"icon-eye inspected":"icon-eye":"",u=()=>{d("click-ui"),n(t)},p=R=>{R.keyCode===13&&_(R)},_=R=>{R.preventDefault(),R.stopPropagation(),e===t?(R.target.style.background="",s("")):s(t)};return jsxRuntimeExports.jsxs("div",{className:"single-election",children:[jsxRuntimeExports.jsxs("button",{className:"single-election__cta",type:"button",onClick:()=>u(),children:[jsxRuntimeExports.jsx("div",{className:"single-election__btn",children:jsxRuntimeExports.jsx("span",{children:h(l)})}),jsxRuntimeExports.jsx("div",{onClick:_,onKeyDown:p,className:f(l),"aria-label":"Inspect",role:"button",tabIndex:0})]}),e===t&&jsxRuntimeExports.jsx("div",{className:"single-election__complete",children:jsxRuntimeExports.jsx("div",{children:HTMLReactParser$1(l.fullText)})})]})}SingleElection.defaultProps={setCurrentDecisionSelected:()=>{},setCurrentDecisionInspected:()=>{},option:{},index:0};function SingleElectionRender({decisionInspected:l,opt:e,index:n,setCurrentDecisionSelected:t,setCurrentDecisionInspected:s,soundActions:o}){return e&&e.fullText&&e.fullText!==""?jsxRuntimeExports.jsx(SingleElection,{decisionInspected:l,setCurrentDecisionSelected:t,setCurrentDecisionInspected:s,option:e,soundActions:o,index:n}):null}function ElectionComponent({textWithOpts:l,setCurrentDecisionSelected:e,printed:n,soundActions:t}){const[s,o]=React$2.useState("");return React$2.useEffect(()=>{n()},[n]),jsxRuntimeExports.jsx("div",{className:`elections-box pos${s+1}-${l.filter(d=>!!d.fullText).length}`,children:l&&l.map((d,h)=>jsxRuntimeExports.jsx(SingleElectionRender,{opt:d,soundActions:t,index:h,setCurrentDecisionSelected:e,setCurrentDecisionInspected:o,decisionInspected:s},h))})}ElectionComponent.defaultProps={textWithOpts:[],setCurrentDecisionSelected:()=>{},printed:()=>{}};function FeedbackElement({decision:l}){const{title:e,body:n}=l.feedback;return jsxRuntimeExports.jsx("div",{children:n!==""&&jsxRuntimeExports.jsxs("div",{className:"writer-feedback-decision-item",children:[e&&jsxRuntimeExports.jsxs("div",{dir:"auto",className:"writer-feedback-decision-item__title",children:[e," "]}),n&&jsxRuntimeExports.jsxs("div",{dir:"auto",className:"writer-feedback-decision-item__message",children:[l.correct?jsxRuntimeExports.jsx("span",{className:"icon-check-circle-black color--success"}):jsxRuntimeExports.jsx("span",{className:"icon-error-circle-black color--error"}),jsxRuntimeExports.jsx("span",{children:n})]})]})})}FeedbackElement.defaultProps={decision:{}};function FeedbackComponent({getEvent:l,closingAction:e,feedbackIsDone:n,decisionsList:t,texts:s,retryAction:o,retry:d,skip:h,checkCorrect:f,rewardsStack:u,setFailed:p,soundActions:_}){const[R]=_,y=g=>l({type:"translate",payload:g}),S=()=>{R("click-ui"),e(),p(),n()};return jsxRuntimeExports.jsxs("div",{className:`writer-feedback ${u.length?"":"start"}`,children:[jsxRuntimeExports.jsx("div",{className:"writer-feedback__title",children:y("puzzles.feedback")}),jsxRuntimeExports.jsx("div",{className:"writer-feedback__decisions",children:t.map(g=>s[g.currenTextParagraph].electionTexts[g.index].feedback.body?jsxRuntimeExports.jsx(FeedbackElement,{decision:s[g.currenTextParagraph].electionTexts[g.index]},g.index):null)}),jsxRuntimeExports.jsxs("div",{className:"writer-feedback__btns",children:[h&&jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary writer-feedback__btn-mobile",onClick:()=>{S()},children:y("puzzles.skip")}),d&&jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary writer-feedback__btn-mobile",onClick:()=>{f()?S():(R("click-ui"),o())},children:y(f()?"puzzles.continue":"puzzles.retry")}),!d&&jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary writer-feedback__btn-mobile",onClick:()=>S(),children:y("puzzles.continue")})]})]})}FeedbackComponent.defaultProps={emitEvent:()=>{},closingAction:()=>{},feedbackIsDone:()=>{},decisionsList:[],texts:[],retryAction:()=>{},retry:!1,skip:!1,checkCorrect:()=>{},nodeId:"0"};function FinishedTextComponent({textToPrint:l,correct:e}){const n=l.split("<p>");n.shift();const t=n.length>1;return jsxRuntimeExports.jsx("span",{className:`writer-inline ${t?"multiple":""} ${e}`,children:HTMLReactParser$1(l)})}FinishedTextComponent.defaultProps={correct:"",textToPrint:""};function WriterPuzzleComponent({emitEvent:l,getEvent:e,styles:n,nodeId:t,retry:s,skip:o,type:d,info:h,setResolveAction:f,documentTitle:u,documentTitle_labelId:p,texts:_,soundActions:R,backgroundImage:y,hideBackgroundImageTheme:S=!1}){const g=qe=>e({type:"translate",payload:qe}),x=React$2.useRef(),[b,T]=React$2.useState(!1),[v,w]=React$2.useState(!1),[C,D]=React$2.useState(0),[N,P]=React$2.useState({[`text_${C}`]:{..._[C],id:`text_${C}`,correct:""}}),[k,F]=React$2.useState(!1),[M,j]=React$2.useState([]),[U,B]=React$2.useState(!1),[X,re]=React$2.useState(!1),[se,Z]=React$2.useState(!1),[K,te]=React$2.useState(!0),[ue,me]=React$2.useState([]),[J,H]=React$2.useState(!0),[W]=R,V=React$2.useRef({}),z=qe=>{let ct;return qe.electionTexts.forEach((Be,ot)=>{Be.correct&&(ct=ot)}),ct},Y=React$2.useCallback(qe=>M.filter(Be=>Be.currenTextParagraph===qe)[0].fullText_labelId,[M]),ie=React$2.useCallback(()=>_.map((qe,ct)=>{if(qe.type==="fixed")return qe.fullText_labelId??qe.fullText;if(qe.type==="election"){const Be=z(qe);return Be>=0?qe.electionTexts[Be].fullText_labelId:Y(ct)}return""}),[Y,_]),le=12,fe=()=>{if(M){const qe=M.length;let ct=0;for(let Be=0;Be<qe;Be+=1)M[Be].isCorrect==="none"&&(ct+=1);return ct===qe}return!0},ce=React$2.useCallback(()=>{if(M){const qe=M.length;let ct=0;for(let Be=0;Be<qe;Be+=1)M[Be].isCorrect==="green"&&(ct+=1);return ct===qe}return!0},[M]),ge=()=>!!(M&&M.length),Se=()=>M.find(qe=>{const{feedback:ct}=_[qe.currenTextParagraph].electionTexts[qe.index];return ct.body!==""}),Ae=React$2.useCallback(()=>{const qe=ie();l({type:"finishMedia",payload:{name:p,text:qe,documentType:d,type:"text"}})},[ie,p,l,d]),Fe=React$2.useCallback(qe=>{const ct=ce();W(v?"fail":ct?"score":"fail"),l({type:"addPoints",complex:!0,finish:!0,payload:qe||ue,onFinish:d!=="view"?Ae:null}),l({type:"passPuzzle"})},[ce,l,v,Ae,W,ue,d]);React$2.useEffect(()=>{b&&H(!1),f(()=>{Fe(h.resolve.rewards)})},[l,Fe,b,Ae,h.resolve.rewards,f,d]);const De=()=>{T(!1),D(0),j([]),me([]),w(!1),Z(!1),F(!1),re(!1),B(!1),P({text_0:{..._[0],id:"text_0",correct:""}}),te(!0),l({type:"addPoints",complex:!0,finish:!1,payload:ue}),l({type:"failPuzzle"})},Je=()=>{ge()?fe()&&(B(!0),Fe()):(B(!0),Z(!0),Fe()),U?(te(!1),se&&!X?re(!0):(X||!se&&!X)&&(!se&&!X&&s?ce()?Fe():De():Fe())):(B(!0),Se()&&Z(!0))},ut=()=>{const qe=_[C].electionTexts.filter(Be=>Be.correct).length,ct=_[C].electionTexts;return qe===0||qe===ct},et=qe=>{const ct=_[C].electionTexts[qe],Be=ct.feedback.rewards;Be&&Be[0]&&Be[0].points&&(V.current[`t${C}_e${qe}`]||(ct.correct&&(V.current[`t${C}_e${qe}`]=!0),me([...ue,...Be])));const ot=()=>ut()?"none":ct.correct?"green":"red",ft={currenTextParagraph:C,fullText:ct.fullText,index:qe,isCorrect:ot()};P({...N,[`text_${C}`]:{type:"fixed",fullText:ct.fullText,correct:ft.isCorrect}}),j([...M,ft])},xt=()=>{x.current.scrollTop=x.current.scrollHeight+100},Ve=()=>{if(x.current.querySelector(".wrapfixed").offsetHeight>x.current.offsetHeight){const qe=x.current.querySelector(".wrapfixed").offsetHeight;x.current.scrollTo({top:qe,behavior:"smooth"})}},Me=(qe,ct,Be)=>{const ot=qe.fullText,ft=_[Be+1]?_[Be+1].type:"",Ge=N[`text_${Be+1}`]&&N[`text_${Be+1}`].type?N[`text_${Be+1}`].type:ft;return jsxRuntimeExports.jsx(FixedComponent,{length:ct,doneTyping:k,index:Be,delay:le,setDoneTyping:F,nextParagraphType:Ge,isWriting:Ve,textToPrint:ot},Be.toString())},Le=(qe,ct)=>{const Be=qe.fullText;return jsxRuntimeExports.jsx(FinishedTextComponent,{textToPrint:Be,correct:qe.correct},ct)},Ye=qe=>jsxRuntimeExports.jsx(ElectionComponent,{soundActions:R,textWithOpts:qe.electionTexts,setCurrentDecisionSelected:et,printed:xt,disableExit:J},qe.electionTexts),ke=(qe,ct,Be)=>qe.type==="fixed"?Me(qe,ct,Be):Ye(qe);React$2.useEffect(()=>{k===!0&&(()=>{_[C+1]?(P({...N,[`text_${C+1}`]:{..._[C+1],id:`text_${C+1}`,correct:""}}),D(C+1),F(!1)):T(!0)})()},[k,C,N,_]);const Qe=React$2.useMemo(()=>{let qe=`writer-puzzle writer-puzzle--${n}`;return S&&(qe+=" disable-background-image"),qe},[S,n]),bt={backgroundImage:y!=null&&y.url?`url('${y.url}')`:""};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("div",{className:Qe,style:bt,children:jsxRuntimeExports.jsxs("div",{className:"writer-puzzle__overlay",children:[X&&jsxRuntimeExports.jsx(FeedbackComponent,{getEvent:e,texts:_,setFailed:()=>w(!0),decisionsList:M,closingAction:Je,retry:s,skip:o,checkCorrect:ce,retryAction:De,rewardsStack:ue,nodeId:t,soundActions:R}),!X&&jsxRuntimeExports.jsxs("div",{className:"writer-puzzle__container",children:[jsxRuntimeExports.jsx("div",{dir:"auto",className:"writer-puzzle__title",children:u!==""&&u}),jsxRuntimeExports.jsx("div",{className:"writer-puzzle__body",dir:LangIsRtl()?"rtl":"auto",children:jsxRuntimeExports.jsxs("div",{className:"writer-puzzle__scroll",tabIndex:0,style:{overflowX:"hidden",padding:"0 0 20px 0",height:"95%"},ref:x,children:[jsxRuntimeExports.jsx("div",{className:"wrapfixed",children:K&&!U&&Object.values(N).map((qe,ct)=>ke(qe,Object.values(N).length-1,ct))}),U&&Object.values(N).map((qe,ct)=>Le(qe,ct))]})}),b&&jsxRuntimeExports.jsx("div",{className:"writer-puzzle__footer",children:jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary",onClick:Je,children:g("screens.continue")})})]})]})})})}WriterPuzzleComponent.defaultProps={emitEvent:()=>{},info:{},styles:"",nodeId:"0",retry:!1,skip:!1,type:"",documentTitle:"",texts:[]};function Image$1({document:l,name:e,isWallpaper:n}){const t=(l==null?void 0:l.url)||null;return jsxRuntimeExports.jsx("div",{className:`puzzle--terminal__image ${n?"puzzle--terminal__image--wallpaper":""}`,children:t?jsxRuntimeExports.jsx("img",{src:t,alt:e||""}):null})}const ICONS$1={image:"image-icon",video:"video-icon",embedded_video:"video-icon",pdf:"pdf-icon",terminal:"console-icon",cracker:"cracker-icon",folder:"folder-icon",world:"world-icon"};function Visor({file:l,solution:e,showContinue:n,info:t,resolvePuzzle:s,backFile:o,translate:d,soundActions:h,keyboardControl:f}){var T;const{fileId:u}=l,p=((T=l.document)==null?void 0:T.url)||"",[_]=h,R={image:{component:Image$1,props:{...l,url:p,soundActions:h}},video:{component:VideoVisor,props:{...l,url:p,endVideo:s,soundActions:h,translate:d}},embedded_video:{component:VideoVisor,props:{...l,url:p,soundActions:h}},pdf:{component:PdfVisor,props:{...l,url:p,translate:d,soundActions:h,emitNumberOfPages:()=>{},endPdf:()=>{},keyboardControl:f}},application:{component:PdfVisor,props:{...l,url:p,translate:d,soundActions:h,emitNumberOfPages:()=>{},keyboardControl:f,endPdf:()=>{}}}};if(!R[l.type])return null;const y=R[l.type].component,S=R[l.type].props,x=l.name.replace(/.jpg|.png|.pdf|.mp4/gi,""),b=e.fileId;return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{className:"puzzle--terminal__visor",children:[jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:_,shortText:!0,success:u===b,text:u===b?t.solution.right.desc:t.solution.wrong.desc,functionOnClose:u===b?s:o,additionalStyle:ICONS$1[l.type],secondText:x,translate:d,puzzleHeaderClass:"puzzle--terminal__visor--message",keyboardControl:f}),jsxRuntimeExports.jsx("div",{className:"puzzle--terminal__visor--body",children:jsxRuntimeExports.jsx(y,{...S})}),jsxRuntimeExports.jsx("div",{className:"puzzle--terminal__button",children:u===b&&n?jsxRuntimeExports.jsx("button",{className:"gat--btn gat--btn__primary green",type:"button",onClick:s,children:d("screens.continue")}):null})]})})}const ICONS={image:"image-icon",video:"video-icon",embedded_video:"video-icon",pdf:"pdf-icon",terminal:"console-icon",cracker:"cracker-icon",folder:"folder-icon",application:"pdf-icon",world:"world-icon"};function Item({item:l,selectItem:e}){const n=l.name;return jsxRuntimeExports.jsx("li",{className:"puzzle--terminal__folder__list--item",children:jsxRuntimeExports.jsxs("button",{type:"button",title:n,className:`unset-button puzzle--terminal__item id-${l.id}`,onClick:()=>l.fixed?null:e(l),children:[jsxRuntimeExports.jsx("span",{className:`puzzle--terminal__icon ${ICONS[l.type]}`}),jsxRuntimeExports.jsx("span",{children:n})]})})}function FilesGroup({initFile:l,backFile:e,file:n,closeFolder:t,selectItem:s}){return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:n.id==="init"?jsxRuntimeExports.jsx("ul",{className:"puzzle--terminal__folder__list desktop",children:n.children.map((o,d)=>jsxRuntimeExports.jsx(Item,{selectItem:s,item:o},`${`${d}${o.id}`}`))}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("ul",{className:"puzzle--terminal__folder__list desktop",children:l.children.map((o,d)=>jsxRuntimeExports.jsx(Item,{selectItem:s,item:o},`${d+o.id}`))}),jsxRuntimeExports.jsxs("div",{className:"puzzle--terminal__folder",children:[jsxRuntimeExports.jsxs("div",{className:"puzzle--terminal__folder--head",children:[jsxRuntimeExports.jsx("span",{role:"button",onKeyUp:()=>{},"aria-label":"back file",tabIndex:0,onClick:()=>e(),className:"puzzle--terminal__folder--back",children:jsxRuntimeExports.jsx("span",{className:"icon-back"})}),jsxRuntimeExports.jsx("span",{className:`puzzle--terminal__folder--head__icon ${ICONS[n.type]}`}),jsxRuntimeExports.jsx("span",{className:"text",children:n.name}),jsxRuntimeExports.jsx("span",{role:"button",tabIndex:0,"aria-label":"close folder",onKeyUp:()=>{},onClick:()=>t(),className:"puzzle--terminal__folder--close",children:jsxRuntimeExports.jsx("span",{className:"icon-close"})})]}),jsxRuntimeExports.jsx("div",{className:"puzzle--terminal__folder--body",children:jsxRuntimeExports.jsx("ul",{className:"puzzle--terminal__folder__list",children:n.children.map((o,d)=>jsxRuntimeExports.jsx(Item,{selectItem:s,item:o},`${d+o.id}`))})})]})]})})}const DEFAULT_IMG="https://min.gamelearn.io/css-resources/gamelearn/resources/cosmos-bg-min.jpg",FIXED_ITEMS=[{fileId:"ids1",type:"world",fixed:!0,name:"Web builder 3.0"},{fileId:"ids2",type:"cracker",fixed:!0,name:"Decoder.exe"},{fileId:"ids3",type:"terminal",fixed:!0,name:"terminal"}];function TerminalPuzzleComponent({emitEvent:l,getEvent:e,items:n,backgroundImage:t,solution:s,info:o,disableExit:d,soundActions:h,setResolveAction:f,nodeId:u,keyboardControl:p}){const[_,R]=React$2.useState({}),[y]=React$2.useState(!1),[S,g]=React$2.useState([]),x=React$2.useRef([]),[b]=h,T=F=>e({type:"translate",payload:F}),v=`terminal-puzzle_${u}`,w=React$2.useMemo(()=>({name:"init",children:[...FIXED_ITEMS,...n],id:"init"}),[n]),C=React$2.useCallback(F=>{b("click-ui"),R(F),g([...S,F]),F.type!=="folder"&&(l({type:"hidePuzzleButtons",payload:!0}),d(!0))},[S,d,l,b]);React$2.useEffect(()=>{R(w),g([w])},[w]),React$2.useEffect(()=>{f(()=>{x.current=[...x.current,...o.resolve.rewards];const F=x.current.map(M=>{var se;const{name:j,points:U,type:B,id:X}=M,re={name:j,points:U,type:B,id:X};return(se=M==null?void 0:M.document)!=null&&se.resourceId&&(re.id=M.document.resourceId),re});l({type:"hidePuzzleButtons",payload:!1}),l({type:"puzzleAction",action:"resolve",payload:{element:v,rewards:F,finish:!0}})})},[f,o.resolve.rewards,l,v]);const D=()=>{x.current=[...x.current,...o.solution.wrong.rewards];const F=S.length-1,M=S.filter((j,U)=>F>U);R(S[F-1]),g(M),d(!1),l({type:"hidePuzzleButtons",payload:!1})},N=()=>{b("click-ui");const F=S[0];R(F),g([F])},P=()=>{x.current=[...x.current,...o.solution.right.rewards];const F=x.current.map(M=>{var se;const{name:j,points:U,type:B,id:X}=M,re={name:j,points:U,type:B,id:X};return(se=M==null?void 0:M.document)!=null&&se.resourceId&&(re.id=M.document.resourceId),re});l({type:"hidePuzzleButtons",payload:!1}),b("score"),l({type:"addPoints",complex:!0,finish:!0,payload:F}),l({type:"passPuzzle"})},k=(t==null?void 0:t.url)||DEFAULT_IMG;return jsxRuntimeExports.jsx("div",{className:"puzzle--terminal",children:_.children?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Image$1,{isWallpaper:!0,document:{url:k}}),jsxRuntimeExports.jsx(FilesGroup,{backFile:D,initFile:w,selectItem:C,breadcrumb:S,closeFolder:N,file:_,translate:T})]}):jsxRuntimeExports.jsx(Visor,{soundActions:h,backFile:D,resolvePuzzle:P,info:o,showContinue:!y,solution:s,file:_,translate:T,keyboardControl:p})})}function DragItemPuzzleComponent({area:l,image:e,resolveObject:n,info:t,hasHighlights:s,getEvent:o,consume:d,disableExit:h,emitEvent:f,soundActions:u,keyboardControl:p}){const{solution:_}=t,R=React$2.useRef(),y=React$2.useRef(),S=React$2.useRef(),g=React$2.useRef(),x=React$2.useRef({}),[b,T]=React$2.useState(""),[v,w]=React$2.useState(!1),[C,D]=React$2.useState(),[N]=React$2.useState(new window.Image),P=React$2.useRef([]),[k]=u,F=J=>o({type:"translate",payload:J});React$2.useEffect(()=>{h(b!=="")},[b,h]);const M=(J,H)=>(J.x+J.width>H.x&&J.x+J.width<=H.x+H.width||H.x+H.width>J.x&&H.x+H.width<=J.x+J.width)&&(J.y+J.height>H.y&&J.y+J.height<=H.y+H.height||H.y+H.height>J.y&&H.y+H.height<=J.y+J.height),j=()=>{R&&s&&(R.current.to({duration:.25,opacity:.75}),y.current.to({duration:.25,opacity:.4}))},U=()=>{R&&s&&(R.current.to({duration:.25,opacity:0}),y.current.to({duration:.25,opacity:0}))},B=React$2.useCallback(J=>{let H=!1;if(J){const W=S.current;W.setPointersPositions(J);const V=W.getPointerPosition(),z=R.current.getClientRect({relativeTo:W});H=M({...V,width:1,height:1},z)}return H},[]),X=React$2.useCallback(J=>J&&n.uid===JSON.parse(J).uid,[n.uid]),re=React$2.useCallback(()=>{T(""),f({type:"hidePuzzleButtons",payload:!1}),f({type:"addPoints",complex:!0,finish:!0,payload:P.current}),f({type:"passPuzzle"}),d&&f({type:"consumeItem",payload:{uid:n.uid,targetId:n.uid,name:n.name}})},[d,f,n.name,n.uid]),se=React$2.useCallback(()=>{T("success"),f({type:"hidePuzzleButtons",payload:!0}),P.current=[...P.current,..._.right.rewards],t.solution.right.desc===""?setTimeout(()=>{re()},2e3):re()},[f,re,t.solution.right.desc,_.right.rewards]),Z=React$2.useCallback(()=>{T(""),f({type:"hidePuzzleButtons",payload:!1}),f({type:"failPuzzle"}),P.current=[...P.current,..._.wrong.rewards]},[f,_.wrong.rewards]),K=React$2.useCallback(J=>{const H=J.dataTransfer.getData("item");S.current.setPointersPositions(J);const W=B(J);f({type:"hidePuzzleButtons",payload:!0}),W&&X(H)?(T("success"),t.solution.right.desc===""&&se()):(T("failed"),t.solution.wrong.desc===""&&setTimeout(()=>{Z()},2e3))},[B,X,f,se,Z,t.solution.right.desc,t.solution.wrong.desc]),te=()=>{b==="success"?se():Z()};React$2.useEffect(()=>{const J=e.img.url||"";N.src=J,N.onload=()=>{g.current&&(x.current={x:g.current.clientWidth/2,y:g.current.clientHeight/2,width:N.width,height:N.height,offsetX:N.width/2,offsetY:N.height/2,scale:{x:Math.min(g.current.clientWidth/N.width,g.current.clientHeight/N.height),y:Math.min(g.current.clientWidth/N.width,g.current.clientHeight/N.height)}},w(!0))}},[N,e.img.url]);const ue=J=>{J!==null&&(R.current=J)},me=J=>{if(J!==null&&(y.current=J,R.current)){const{x:H,y:W,width:V,height:z}=R.current.getClientRect();J.setAttr("x",H),J.setAttr("y",W),J.setAttr("height",z),J.setAttr("width",V)}};return React$2.useLayoutEffect(()=>{if(R.current&&v){const J=R.current.getClientRect({relativeTo:R.current.getParent()});D({x:J.x+J.width/2,y:J.y+J.height/2})}},[v]),jsxRuntimeExports.jsxs("div",{className:"puzzle--drag__mask100",onDrop:K,onDragOver:J=>{J.preventDefault()},children:[jsxRuntimeExports.jsx("div",{className:"puzzle--drag__mask",children:jsxRuntimeExports.jsx("div",{ref:g,"data-testid":"mask_canvas",className:"puzzle--drag__mask--canvas",children:v?jsxRuntimeExports.jsx(Stage,{ref:S,width:g.current.clientWidth,height:g.current.clientHeight,children:jsxRuntimeExports.jsxs(Layer,{children:[jsxRuntimeExports.jsx(Image$2,{image:N,...x.current}),jsxRuntimeExports.jsxs(Group,{...x.current,children:[C?jsxRuntimeExports.jsx(Html,{transform:!0,groupProps:{id:"projection",...C},divProps:{style:{pointerEvents:"none"}},children:jsxRuntimeExports.jsx("div",{style:{width:"50px",height:"50px",pointerEvents:"none"},id:"object-area-projection"})}):null,jsxRuntimeExports.jsx(Line,{onMouseEnter:j,onMouseLeave:U,ref:ue,...l,shape:"poly",fill:"#262a31d9",stroke:"white",strokeWidth:1,opacity:0,dash:[3,2],closed:!0,draggable:!1})]}),jsxRuntimeExports.jsx(Text,{onMouseEnter:j,onMouseLeave:U,ref:me,text:F("puzzle.drag.dropzone"),fontSize:12,align:"center",verticalAlign:"middle",fill:"#ffffff",opacity:0})]})}):null})}),b!==""?jsxRuntimeExports.jsx(FeedbackComponent$1,{text:t.solution[b==="success"?"right":"wrong"].desc,success:b==="success",translate:F,playSound:k,functionOnClose:te,keyboardControl:p}):null]})}const LABELS_INDEX$1=["A","B","C","D","E","F","G","H","I","J"];function Questions({disabled:l,answered:e,question:n,updateForm:t,result:s,correctQuestions:o,translate:d}){const[h,f]=React$2.useState(!1),u=n.answers.filter(g=>g.text),p=g=>{let x=!1;return s[n.id].find(b=>b.id===g)&&(x=!0),x},_=g=>{let x="";return h?(e&&p(g.id)&&(x="selected"),l&&p(g.id)&&o.includes(g.id)&&(x="success"),l&&p(g.id)&&!o.includes(g.id)&&(x="failed")):(e&&g.id===s[n.id][0].id&&(x="selected"),l&&g.id===s[n.id][0].id&&(x=s[n.id][0].isCorrect?"success":"failed")),x},R=g=>{const x=_(g);return x==="selected"?"icon-check-circle-black color--selected":x==="success"?"icon-check-circle-black color--success":x==="failed"?"icon-error-circle-black color--error":""},y=n.answers.filter(g=>g.isCorrect),S=g=>l&&g.feedback&&(_(g)==="failed"||_(g)==="success")&&(h&&p(g.id)||g.id===s[n.id][0].id);return React$2.useEffect(()=>{y.length===1?f(!1):f(!0)},[y.length,h,n.answers]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--questions__item",children:jsxRuntimeExports.jsx("span",{children:n.text})}),h&&!l?jsxRuntimeExports.jsx("div",{className:"test--questions__intertitle test--questions__intertitle--multiresponse",children:d("tests.chooseMoreOneAnswer")}):null,u.map((g,x)=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"test--response__fakeinput",children:[h?jsxRuntimeExports.jsx("input",{checked:e&&p(g.id),disabled:l&&!p(g.id),readOnly:l,type:"checkbox",id:g.id,onChange:()=>l?null:t(g,n.id,x,"isCheckbox",g.id)}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("input",{checked:e&&g.id===s[n.id][0].id,disabled:l&&!_(g),type:"radio",name:"name",id:g.id,onChange:()=>l?null:t(g,n.id,x,"isRadio")})}),jsxRuntimeExports.jsxs("label",{htmlFor:g.id,className:`test--response__item ${_(g)}`,children:[jsxRuntimeExports.jsx("div",{className:"test--response__index",children:LABELS_INDEX$1[x]}),jsxRuntimeExports.jsx("div",{className:"test--response__text",children:jsxRuntimeExports.jsx("span",{children:g.text})}),jsxRuntimeExports.jsx("div",{className:`test--response__icon ${R(g)}`})]})]},g.text),S(g)&&jsxRuntimeExports.jsxs("div",{className:"test--feedback",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("b",{children:jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx("span",{children:d("test.feedback")})})})}),jsxRuntimeExports.jsx("span",{children:g.feedback})]})]}))]})}const LABELS_INDEX=["A","B","C","D","E","F","G","H","I","J"];function FeedbackItem({selectedAnswers:l,correctQuestions:e,question:n,translate:t}){const s=h=>e.includes(h),o=(h,f)=>h.index<f.index?-1:h.index>f.index?1:0,d=l.sort(o);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--questions__item",children:jsxRuntimeExports.jsx("span",{children:n})}),d.map(h=>jsxRuntimeExports.jsxs("div",{className:"test--response__itemwrap",children:[jsxRuntimeExports.jsxs("div",{className:`test--response__item ${s(h.id)?"success":"failed"}`,children:[jsxRuntimeExports.jsx("div",{className:"test--response__index",children:LABELS_INDEX[h.index]}),jsxRuntimeExports.jsx("div",{className:"test--response__text",children:jsxRuntimeExports.jsx("span",{children:h.text})}),jsxRuntimeExports.jsx("div",{className:`test--response__icon ${s(h.id)?"icon-check-circle-black color--success":"icon-error-circle-black color--error"}`})]}),jsxRuntimeExports.jsxs("div",{className:"test--feedback",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("b",{children:jsxRuntimeExports.jsxs("span",{children:[t("test.feedback")," ",l.length>1?LABELS_INDEX[h.index]:""]})})}),jsxRuntimeExports.jsx("span",{children:h.feedback})]})]},h.text))]})}function Container({questions:l,setTime:e,saveInterval:n,result:t,setTries:s,tries:o,time:d,showResults:h,answered:f,answerPage:u,updateForm:p,disabled:_,translate:R,soundActions:y,paused:S,view:g,correctQuestions:x,feedbacksOnlyWhenReview:b}){const T=document.querySelector(".test--container"),[v,w]=React$2.useState(0),[C,D]=React$2.useState(),N=l[v].id,[P]=y;React$2.useEffect(()=>{if(d>=0&&!_&&!S){const re=setInterval(()=>{C||e(se=>se-1)},1e3);return n(re),()=>{clearInterval(re)}}},[_,C,S,n,e,d]);const k=()=>{T.scrollTo(0,0),P("click-ui"),f&&(t[N][0].feedback&&!_&&!b?D(!0):(u(!1),w(v+1)))},F=()=>{P("click-ui"),w(v-1)},M=()=>{T.scrollTo(0,0),l[v+1]?(D(!1),u(!1),w(v+1)):h()},j=()=>{T.scrollTo(0,0),s(o+1),t[N][0].feedback&&!_&&!b?D(!0):h()},U=Math.floor(d/60),B=d%60;React$2.useEffect(()=>{if(g==="review"){const re=t[`q${v}`][0].id,se=document.querySelector(`#${re}`);T.scrollTo(0,se.offsetTop)}},[v,T,t,g]);const X=()=>{if(f){const re=x[l[v].id.substring(1)].answers,se=t[N],Z=se.find(te=>te.isCorrect===!1);let K=0;return se.forEach(te=>{re.includes(te.id)&&(K+=1)}),!Z&&K===re.length}return!1};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[g==="review"||C?jsxRuntimeExports.jsx("div",{"data-testid":"feedbackWrapper",className:`test-feedback-header ${X()?"success":"failed"}`,children:jsxRuntimeExports.jsxs("h2",{children:[jsxRuntimeExports.jsx("span",{className:`${X()?"icon-correct-thumb":"icon-incorrect-thumb"}`}),jsxRuntimeExports.jsx("span",{className:"test-feedback-header__title",children:X()?R("tests.resolvedQuestion"):R("tests.notResolvedQuestion")})]})}):null,jsxRuntimeExports.jsxs("div",{className:"test--questions",children:[jsxRuntimeExports.jsx("div",{className:"test--questions__container",children:C?jsxRuntimeExports.jsx(FeedbackItem,{selectedAnswers:t[N],correctQuestions:x[l[v].id.substring(1)].answers,question:l[v].text,translate:R}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"test--questions__intertitle",children:[jsxRuntimeExports.jsx("div",{children:LangIsRtl()?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[v+1,"/",l.length," ",jsxRuntimeExports.jsx("span",{children:R("tests.question")})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:R("tests.question")})," ",v+1,"/",l.length]})}),g!=="review"&&d>=0?jsxRuntimeExports.jsx("div",{dir:"ltr",className:`count-down ${d<10?"count-down--finalseconds":""}`,children:jsxRuntimeExports.jsxs("div",{id:"test-time",children:[U<10?`0${U}`:U," : ",B<10?`0${B}`:B]})}):null]}),jsxRuntimeExports.jsx(Questions,{result:t,disabled:_,answered:f,updateForm:p,question:l[v],correctQuestions:_?x[l[v].id.substring(1)].answers:[],translate:R},l[v].id)]})}),jsxRuntimeExports.jsxs("div",{className:`test--buttons ${g==="review"?"reviewmode":"next"}`,children:[g==="review"?jsxRuntimeExports.jsx("button",{disabled:v===0,id:"back-button",onClick:()=>F(),type:"button",className:`gat--btn__navigation ${v===0?"disabled":""}`,"aria-label":LangIsRtl()?R("survey.next"):R("survey.previous"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-next":"icon-back"})}):null,!C&&l[v+1]?jsxRuntimeExports.jsx("button",{disabled:!f,id:"next-button","data-testid":"nextButton",onClick:()=>k(),type:"button",className:`gat--btn__navigation ${f?"":"disabled"}`,"aria-label":LangIsRtl()?R("survey.previous"):R("survey.next"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null,C?jsxRuntimeExports.jsx("button",{id:"next-button","data-testid":"nextFeedbackButton",onClick:()=>M(),type:"button",className:"gat--btn__navigation",children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null,!C&&l[v].id.substring(1)===(l.length-1).toString()?jsxRuntimeExports.jsx("button",{disabled:!f,id:"continue-button","data-testid":"continueButton",onClick:()=>{P("click-ui"),f&&j()},type:"button",className:`gat--btn__navigation ${f?"":"disabled"}`,"aria-label":LangIsRtl()?R("survey.previous"):R("survey.next"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null]})]})]})}function ResultsComponent({result:l,time:e,mandatory:n,correctQuestions:t,isFirst:s,reviewTest:o,finishTest:d,restartTest:h,timeOver:f,timeOverText:u,getEvent:p,minimumPercentage:_}){const R=React$2.useRef(),[y,S]=React$2.useState(0),[g,x]=React$2.useState(),[b,T]=React$2.useState([]),[v,w]=React$2.useState([]),[C,D]=React$2.useState(),N=React$2.useCallback(()=>{const K=[];return t.forEach(te=>K.push(te.answers)),K},[t]),P=React$2.useCallback(()=>{const K=[];return Object.values(l).forEach(te=>{if(te.length>1){const ue=te.find(J=>J.isCorrect===!1),me=[];ue?K.push([]):(te.forEach(J=>{J.isCorrect&&me.push(J.id)}),K.push(me))}else te[0].isCorrect?K.push([te[0].id]):te[0].isCorrect===!1&&K.push("")}),K},[l]),k=React$2.useCallback(()=>{let K=0;if(v.length>0)return b.forEach((te,ue)=>{te.length>1?te.every(me=>{var J;return(J=v[ue])==null?void 0:J.includes(me)})&&(K+=1):te.length===1&&v[ue]&&te[0]===v[ue][0]&&(K+=1)}),K},[b,v]);React$2.useEffect(()=>{C===void 0&&(T(N),w(P),D(k))},[N,P,k,C]);const F=t.length,M=k()===F,j=C<_,U=C>=_,B=!n||U,X=Math.trunc(y/F*100),re=(K,te)=>p({type:"translate",payload:K,values:te}),se={"--chart-color":"var(--color-error)"};React$2.useEffect(()=>{if(y<C){const K=setInterval(()=>{S(te=>te+1)},100);return x(K),()=>{clearInterval(K)}}},[C,y]),React$2.useEffect(()=>{y>=C&&clearInterval(g)},[C,g,y]);const Z=()=>{R.current=!0,d()};return jsxRuntimeExports.jsxs("div",{"data-testid":"resultsWrapper",className:`test--results ${j||f?"test--results--failed":""}`,children:[s&&M?jsxRuntimeExports.jsxs("div",{"data-testid":"fireworks",className:"fireworks",children:[jsxRuntimeExports.jsx("div",{className:"before"}),jsxRuntimeExports.jsx("div",{className:"after"})]}):null,!f&&j?jsxRuntimeExports.jsx("div",{className:"test--results__title",children:jsxRuntimeExports.jsx("span",{children:re("tests.NotFinishedSuccessfully")})}):null,!f&&U||M?jsxRuntimeExports.jsx("div",{className:"test--results__title",children:jsxRuntimeExports.jsx("span",{children:re("tests.finishedSuccessfully")})}):null,f?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--results__title",children:jsxRuntimeExports.jsx("span",{children:u})}),jsxRuntimeExports.jsx("div",{className:"test--results__time",id:"results-time",children:jsxRuntimeExports.jsx("span",{children:re("tests.time",e)})})]}):null,jsxRuntimeExports.jsxs("div",{className:`chart center chart${X}`,children:[jsxRuntimeExports.jsxs("div",{className:"chart-slice",children:[jsxRuntimeExports.jsx("div",{className:"chart-bar",style:j||f?se:{}}),jsxRuntimeExports.jsx("div",{className:"chart-fill",style:j||f?se:{}})]}),jsxRuntimeExports.jsxs("span",{className:"chart-value",children:[jsxRuntimeExports.jsxs("div",{className:"test--results__chart",children:[jsxRuntimeExports.jsx("span",{"data-testid":"correctPoints",children:y}),jsxRuntimeExports.jsxs("span",{"data-testid":"totalCorrectAnswers",children:["/",F]})]}),jsxRuntimeExports.jsx("div",{className:"test--results__chart--label",children:jsxRuntimeExports.jsx("span",{children:re("tests.success")})})]})]}),jsxRuntimeExports.jsxs("div",{className:"test--results__minimum",children:[jsxRuntimeExports.jsx("div",{className:"icon-bell"}),jsxRuntimeExports.jsx("div",{children:re("tests.minimumQuestionsMessage",{minimumPercentage:_})})]}),jsxRuntimeExports.jsxs("div",{className:"test--results__buttons",children:[f?null:jsxRuntimeExports.jsx("button",{className:"gat--btn gat--btn__secondary",id:"review-button",onClick:()=>o(),type:"button",children:jsxRuntimeExports.jsx("span",{children:re("tests.review")})}),B?null:jsxRuntimeExports.jsx("button",{className:"gat--btn gat--btn__primary","data-testid":"restartButton",id:"restart-button",onClick:()=>h(),type:"button",children:jsxRuntimeExports.jsx("span",{children:re("tests.restart")})}),B?jsxRuntimeExports.jsx("button",{disabled:R.current===!0,className:`gat--btn gat--btn__primary ${R.current===!0&&"disabled"}`,"data-testid":"finishButton",id:"finish-button",onClick:()=>Z(),type:"button",children:jsxRuntimeExports.jsx("span",{children:re("tests.continue")})}):null]})]})}function TestComponent({test:l,countdown:e={},emitEvent:n,getEvent:t,soundActions:s,audio:o,required:d,pause:h,minimumPercentage:f=100,feedbacksOnlyWhenReview:u}){const{questions:p}=l,[_,R]=React$2.useState({}),[y,S]=React$2.useState(),[g,x]=React$2.useState(0),[b,T]=React$2.useState([]),[v,w]=React$2.useState(e.time),[C,D]=React$2.useState(!1),[N,P]=React$2.useState("test"),[k,F]=React$2.useState(!0),[M,j]=React$2.useState({}),[U,B]=React$2.useState({}),[X,re]=React$2.useState(!1),se=d||l.required||!1,Z=React$2.useRef({}),[K,te]=React$2.useState(),[ue,me]=s,J=(ie,le,fe,ce,ge)=>{const Se={...ie,index:fe};if(g>0&&(Se.rewards=Se.rewards.filter(Fe=>!U[ie.id]||Fe.points<0)),_[le]){const Fe=_[le].find(De=>De.id===ge);if(Fe){if(Fe.id===ie.id){const De=_[le].find(ut=>ut.id===ge),Je=_[le].indexOf(De);if(_[le].splice(Je,1),_[le].length===0){D(!1);return}}}else _[le].push(Se)}else _[le]=[Se];let Ae;ce==="isRadio"?Ae={..._,[le]:[Se]}:Ae={..._},R(Ae),j(Ae),B({...U,[ie.id]:{...ie}}),D(!0)};React$2.useEffect(()=>{o!=null&&o.url&&ue(o.url,"tts")},[ue,o]);const H=p.map(ie=>{const le=ie.answers.filter(ce=>ce.isCorrect),fe=[];return le.forEach(ce=>{fe.push(ce.id)}),{question:ie.id,answers:fe}});React$2.useEffect(()=>{b.length===0&&T(H)},[b.length,H]),React$2.useEffect(()=>{if(f){const ie=Math.ceil(p.length*f/100);te(ie)}},[p.length,f]),React$2.useEffect(()=>{v===0&&(clearInterval(y),D(!1),re(!0),P("results"),me("tts"))},[y,me,v]);const W=()=>{clearInterval(y),D(!1),P("results");const ie={...M};j(ie),me("tts")},V=()=>{const ie={correctQuestions:b.length,result:_,status:"resolved"};Object.keys(_).forEach(fe=>{_[fe].forEach(ce=>{Z.current[ce.id]&&(ce.rewards=[])})}),n({type:"saveTest",payload:ie})},z=()=>{const ie=()=>{j({}),B({}),P("test"),R({}),w(e.time),re(!1),o!=null&&o.url&&ue(o.url,"tts")},le=Object.values(_);le.forEach(ce=>{ce.forEach(ge=>{ge.isCorrect&&(Z.current[ge.id]?ge.rewards=[]:Z.current[ge.id]=!0)})});let fe=le.reduce((ce,ge)=>{const Se=[];return ge.forEach(Ae=>{Se.push(Ae.rewards)}),[...ce,...Se.flat()]},[]);X&&e.rewards&&(fe=[...fe,...e.rewards]),n({type:"addPoints",payload:fe,complex:!0,finish:!1,onFinish:ie()}),n({type:"failTest"})},Y=(ie,le)=>t({type:"translate",payload:ie,values:le});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--container__overlay"}),jsxRuntimeExports.jsx("div",{"data-testid":"wrapperTest",className:"test--container",dir:"auto",children:N!=="results"?jsxRuntimeExports.jsx(Container,{result:_,time:v,setTries:x,tries:g,answerPage:D,setTime:w,paused:h,saveInterval:S,disabled:N!=="test",answered:C||N!=="test",questions:p,updateForm:J,showResults:W,translate:Y,soundActions:s,view:N,correctQuestions:b,feedbacksOnlyWhenReview:u}):jsxRuntimeExports.jsx(ResultsComponent,{reviewTest:()=>{F(!1),P("review")},isFirst:k,finishTest:V,time:v,mandatory:se,restartTest:z,result:_,correctQuestions:b,timeOver:X,timeOverText:e.text,emitEvent:n,getEvent:t,soundActions:s,minimumPercentage:K})})]})}const OPTIONS=["yes","no"],LETTERS=["A","B"];function ApplicableBox({setSurveyData:l,survey:e,id:n,translate:t}){const s=o=>{l({...e,[n]:o})};return jsxRuntimeExports.jsx("div",{className:"survey--page__item",children:OPTIONS.map((o,d)=>jsxRuntimeExports.jsxs("button",{"data-testid":`applicablebox-${OPTIONS[d]}`,type:"button",onClick:()=>s(o),className:`unset-button survey--response__item ${e[n]===o?"selected":""}`,children:[jsxRuntimeExports.jsx("div",{className:"survey--response__index",children:LETTERS[d]}),jsxRuntimeExports.jsx("div",{className:"survey--response__text",children:t(`survey.${o}`)})]},o))})}const OPINION_OPTIONS=[0,1,2,3,4,5,6,7,8,9,10];function OpinionBox({setSurveyData:l,survey:e,id:n,translate:t}){const s=o=>{l({...e,[n]:o})};return jsxRuntimeExports.jsxs("div",{className:"survey--page__item","aria-label":"opinion box",children:[jsxRuntimeExports.jsx("div",{className:"survey--points",children:OPINION_OPTIONS.map(o=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>s(o),className:`unset-button survey--points__item survey--points__item--colorized ${e[n]===o?"selected":""}`,children:o},o))}),jsxRuntimeExports.jsxs("div",{className:"survey--points__labels",children:[jsxRuntimeExports.jsx("span",{children:t("survey.bad")}),jsxRuntimeExports.jsx("span",{children:t("survey.excellent")})]})]})}function TextBox({setSurveyData:l,survey:e,id:n,literalLabel:t}){const s=o=>{l({...e,[n]:o})};return jsxRuntimeExports.jsx("div",{className:"survey--page__item",children:jsxRuntimeExports.jsx("textarea",{ref:o=>{o&&o.focus()},className:"survey--textarea",id:t,value:e[n],onChange:o=>s(o.target.value)})})}const INIT_SURVEY={applicable:"",opinion:"",comments:"",suggestions:""},PAGES=[{component:ApplicableBox,id:"applicable"},{component:OpinionBox,id:"opinion"},{component:TextBox,id:"comments"},{component:TextBox,id:"suggestions"}];function SurveyComponent({emitEvent:l,getEvent:e,soundActions:n}){const[t,s]=React$2.useState(INIT_SURVEY),[o,d]=React$2.useState(0),[h,f]=React$2.useState(!1),[u]=n,p=(y,S)=>e({type:"translate",payload:y,values:S}),_=(y=!1)=>{if(u("click-ui"),!y&&o+1>=PAGES.length)f(!0);else{y&&f(!1);const S=y?o-1:o+1;d(S)}},R=PAGES[o].component;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"survey--container__overlay"}),jsxRuntimeExports.jsx("div",{className:"survey--container",dir:"auto",children:jsxRuntimeExports.jsxs("div",{className:"survey--questions",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__container",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__intertitle",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{children:p("survey.numQuestion",{init:o+1,page:PAGES.length})})}),jsxRuntimeExports.jsx("div",{children:p("auto-evaluation.allQuestionsMandatory")})]}),jsxRuntimeExports.jsx("label",{className:"survey--questions__item","data-testid":`survey.question${o+1}`,htmlFor:p(`survey.question${o+1}`,{ordinal:o+1}),children:p(`survey.question${o+1}`,{ordinal:o+1})}),jsxRuntimeExports.jsx(R,{setSurveyData:s,id:PAGES[o].id,survey:t,translate:p,literalLabel:p(`survey.question${o+1}`,{ordinal:o+1})})]}),jsxRuntimeExports.jsxs("div",{className:"test--buttons next",children:[jsxRuntimeExports.jsx("button",{"data-testid":"backButton",id:"survey-button-back",type:"button",disabled:o===0,onClick:()=>_(!0),className:`gat--btn__navigation ${o===0?"disabled":""}`,"aria-label":LangIsRtl()?p("survey.next"):p("survey.previous"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-next":"icon-back"})}),h&&o===PAGES.length-1?jsxRuntimeExports.jsx("button",{"data-testid":"survey.finish",id:"survey-button",type:"button",disabled:!t[PAGES[o].id],onClick:()=>{u("click-ui"),l({type:"saveSurvey",payload:t})},className:`gat--btn gat--btn__primary ${t[PAGES[o].id]?"":"disabled"} not-transition`,children:p("survey.finish")}):null,!h&&o!==PAGES.length?jsxRuntimeExports.jsx("button",{"data-testid":"nextButton",id:"survey-button",type:"button",disabled:!t[PAGES[o].id],onClick:()=>_(!1),className:`gat--btn__navigation ${t[PAGES[o].id]?"":"disabled"}`,"aria-label":LangIsRtl()?p("survey.previous"):p("survey.next"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null]})]})})]})}function EndScreen({onFinish:l,translate:e}){return React$2.useEffect(()=>{let n;return l&&(n=setTimeout(()=>{l()},2e3)),()=>{n&&clearTimeout(n)}},[l]),jsxRuntimeExports.jsx("div",{"data-testid":"endScreen",className:"auto-evaluation__endscreen","aria-label":"auto evaluation endscreen",children:jsxRuntimeExports.jsxs("div",{className:"auto-evaluation__finishband","aria-label":"auto evaluation finishband",children:[jsxRuntimeExports.jsx("span",{className:"icon-check-laptop auto-evaluation__iconendscreen","aria-label":"icon-check",role:"img"}),jsxRuntimeExports.jsx("span",{className:"auto-evaluation__thanks","aria-label":"auto evaluation thanks",role:"contentinfo",children:e("auto-evaluation.thanks")})]})})}function StartScreen({onNext:l,description:e,translate:n}){return jsxRuntimeExports.jsxs("div",{className:"auto-evaluation__startscreen",role:"alertdialog","aria-modal":"true","aria-label":"ae start screen",children:[jsxRuntimeExports.jsx("span",{className:"icon-happy-laptop auto-evaluation__starticon","aria-label":"icon laptop",role:"img"}),jsxRuntimeExports.jsx("div",{className:"auto-evaluation__starttext","aria-label":"desciption",children:jsxRuntimeExports.jsx("span",{children:e})}),jsxRuntimeExports.jsx("button",{"data-testid":"auto-start-button",type:"button",className:"gat--btn gat--btn__primary auto-evaluation__button auto-evaluation__button--start",onClick:l,children:jsxRuntimeExports.jsx("span",{children:n("auto-evaluation.start")})})]})}function AutoEvaluation({description:l,questions:e,type:n,emitEvent:t,getEvent:s,soundActions:o}){var C,D,N;const[d,h]=React$2.useState(null),[f,u]=React$2.useState("start"),[p,_]=React$2.useState(!1),[R,y]=React$2.useState(0),[S,g]=React$2.useState({current:{questions:[],type:n}}),[x]=o,b=P=>s({type:"translate",payload:P}),T=P=>{P.code==="Enter"&&P.target.blur()},v=()=>{x("click-ui"),t({type:"saveSurveyPrePos",payload:S.current})};React$2.useEffect(()=>{!e.length&&f==="questions"&&u("end")},[e,f]);const w=(P,k=!1)=>{var M;const F=P!==null?P:(M=S.current.questions.find(j=>j.id===e[R].id))==null?void 0:M.answer;if(x("click-ui"),k)y(R-1),_(!1);else{const j=S.current.questions.findIndex(B=>B.id===e[R].id),U=[...S.current.questions];j>-1?U.splice(j,1,{id:e[R].id,answer:F}):U.push({id:e[R].id,answer:F}),g({...S,current:{...S.current,questions:U}}),R===e.length-1?_(!0):(y(R+1),_(!1))}};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--container__overlay","aria-label":"test container overlay"}),jsxRuntimeExports.jsxs("div",{className:"test--container",dir:"auto","aria-label":"test container",children:[f==="start"&&jsxRuntimeExports.jsx(StartScreen,{description:l,onNext:()=>{u("questions"),x("click-ui")},translate:b}),f==="questions"&&jsxRuntimeExports.jsxs("div",{"data-testid":"survey--questions",className:"survey--questions","aria-label":"survey questions",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__container","aria-label":"survey questions container",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__intertitle",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("span",{children:[b("auto-evaluation.question")," ",R+1," ",b("storylines.misc.of")," ",e.length]})}),jsxRuntimeExports.jsx("div",{children:b("auto-evaluation.allQuestionsMandatory")})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"survey--questions__item","aria-label":"survey questions item",children:(C=e[R])==null?void 0:C.text}),jsxRuntimeExports.jsx("div",{className:"survey--page__item","aria-label":"survey page item",children:jsxRuntimeExports.jsx("div",{className:"survey--points","aria-label":"survey points",children:Array(11).fill(0).map((P,k)=>{var F;return jsxRuntimeExports.jsx("button",{"data-testid":`button-option-${0+k}`,type:"button",onTouchStart:()=>{h(k)},onTouchEnd:()=>{h(null)},onKeyUp:M=>{T(M)},onClick:()=>{w(k,!1)},className:`survey--points__item survey--points__item--simple ${((F=S.current.questions[R])==null?void 0:F.answer)===k||d===k?"selected":""}`,children:k},`${0+k}`)})})})]},`${e[R]}`)]}),jsxRuntimeExports.jsxs("div",{className:"test--buttons next","aria-label":"test buttons",children:[jsxRuntimeExports.jsx("button",{"data-testid":"back-button",type:"button",disabled:R===0,onClick:()=>w(null,!0),"aria-label":LangIsRtl()?b("survey.next"):b("survey.previous"),className:`gat--btn__navigation ${R===0?"disabled":""}`,children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-next":"icon-back","aria-label":"icon button"})}),p?jsxRuntimeExports.jsx("button",{"data-testid":"finish-button",type:"button",onClick:()=>{u("end"),x("click-ui")},className:`gat--btn gat--btn__primary auto-evaluation__button not-transition
252
+ `,EMPTY_PROPS={};function applyNodeProps(l,e,n=EMPTY_PROPS){if(!zIndexWarningShowed&&"zIndex"in e&&(console.warn(Z_INDEX_WARNING),zIndexWarningShowed=!0),!dragWarningShowed&&e.draggable){var t=e.x!==void 0||e.y!==void 0,s=e.onDragEnd||e.onDragMove;t&&!s&&(console.warn(DRAGGABLE_WARNING),dragWarningShowed=!0)}for(var o in n)if(!propsToSkip[o]){var d=o.slice(0,2)==="on",h=n[o]!==e[o];if(d&&h){var f=o.substr(2).toLowerCase();f.substr(0,7)==="content"&&(f="content"+f.substr(7,1).toUpperCase()+f.substr(8)),l.off(f,n[o])}var u=!e.hasOwnProperty(o);u&&l.setAttr(o,void 0)}var p=e._useStrictMode,_={},R=!1;const y={};for(var o in e)if(!propsToSkip[o]){var d=o.slice(0,2)==="on",S=n[o]!==e[o];if(d&&S){var f=o.substr(2).toLowerCase();f.substr(0,7)==="content"&&(f="content"+f.substr(7,1).toUpperCase()+f.substr(8)),e[o]&&(y[f]=e[o])}!d&&(e[o]!==n[o]||p&&e[o]!==l.getAttr(o))&&(R=!0,_[o]=e[o])}R&&(l.setAttrs(_),updatePicture(l));for(var f in y)l.on(f+EVENTS_NAMESPACE,y[f])}function updatePicture(l){if(!Global.Konva.autoDrawEnabled){var e=l.getLayer()||l.getStage();e&&e.batchDraw()}}var schedulerExports=requireScheduler();const NO_CONTEXT={},UPDATE_SIGNAL={};Konva.Node.prototype._applyProps=applyNodeProps;function appendInitialChild(l,e){if(typeof e=="string"){console.error(`Do not use plain text as child of Konva.Node. You are using text: ${e}`);return}l.add(e),updatePicture(l)}function createInstance(l,e,n){let t=Konva[l];t||(console.error(`Konva has no node with the type ${l}. Group will be used instead. If you use minimal version of react-konva, just import required nodes into Konva: "import "konva/lib/shapes/${l}" If you want to render DOM elements as part of canvas tree take a look into this demo: https://konvajs.github.io/docs/react/DOM_Portal.html`),t=Konva.Group);const s={},o={};for(var d in e){var h=d.slice(0,2)==="on";h?o[d]=e[d]:s[d]=e[d]}const f=new t(s);return applyNodeProps(f,o),f}function createTextInstance(l,e,n){console.error(`Text components are not supported for now in ReactKonva. Your text is: "${l}"`)}function finalizeInitialChildren(l,e,n){return!1}function getPublicInstance(l){return l}function prepareForCommit(){return null}function preparePortalMount(){return null}function prepareUpdate(l,e,n,t){return UPDATE_SIGNAL}function resetAfterCommit(){}function resetTextContent(l){}function shouldDeprioritizeSubtree(l,e){return!1}function getRootHostContext(){return NO_CONTEXT}function getChildHostContext(){return NO_CONTEXT}const scheduleTimeout=setTimeout,cancelTimeout=clearTimeout,noTimeout=-1;function shouldSetTextContent(l,e){return!1}const isPrimaryRenderer=!1,warnsIfNotActing=!0,supportsMutation=!0;function appendChild(l,e){e.parent===l?e.moveToTop():l.add(e),updatePicture(l)}function appendChildToContainer(l,e){e.parent===l?e.moveToTop():l.add(e),updatePicture(l)}function insertBefore(l,e,n){e._remove(),l.add(e),e.setZIndex(n.getZIndex()),updatePicture(l)}function insertInContainerBefore(l,e,n){insertBefore(l,e,n)}function removeChild(l,e){e.destroy(),e.off(EVENTS_NAMESPACE),updatePicture(l)}function removeChildFromContainer(l,e){e.destroy(),e.off(EVENTS_NAMESPACE),updatePicture(l)}function commitTextUpdate(l,e,n){console.error(`Text components are not yet supported in ReactKonva. You text is: "${n}"`)}function commitMount(l,e,n){}function commitUpdate(l,e,n,t,s){applyNodeProps(l,s,t)}function hideInstance(l){l.hide(),updatePicture(l)}function hideTextInstance(l){}function unhideInstance(l,e){(e.visible==null||e.visible)&&l.show()}function unhideTextInstance(l,e){}function clearContainer(l){}function detachDeletedInstance(){}const getCurrentEventPriority=()=>constantsExports.DefaultEventPriority,HostConfig=Object.freeze(Object.defineProperty({__proto__:null,appendChild,appendChildToContainer,appendInitialChild,cancelTimeout,clearContainer,commitMount,commitTextUpdate,commitUpdate,createInstance,createTextInstance,detachDeletedInstance,finalizeInitialChildren,getChildHostContext,getCurrentEventPriority,getPublicInstance,getRootHostContext,hideInstance,hideTextInstance,idlePriority:schedulerExports.unstable_IdlePriority,insertBefore,insertInContainerBefore,isPrimaryRenderer,noTimeout,now:schedulerExports.unstable_now,prepareForCommit,preparePortalMount,prepareUpdate,removeChild,removeChildFromContainer,resetAfterCommit,resetTextContent,run:schedulerExports.unstable_runWithPriority,scheduleTimeout,shouldDeprioritizeSubtree,shouldSetTextContent,supportsMutation,unhideInstance,unhideTextInstance,warnsIfNotActing},Symbol.toStringTag,{value:"Module"}));var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(l,e,n)=>e in l?__defProp(l,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):l[e]=n,__spreadValues=(l,e)=>{for(var n in e||(e={}))__hasOwnProp.call(e,n)&&__defNormalProp(l,n,e[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(e))__propIsEnum.call(e,n)&&__defNormalProp(l,n,e[n]);return l},__spreadProps=(l,e)=>__defProps(l,__getOwnPropDescs(e));function traverseFiber(l,e,n){if(!l)return;if(n(l)===!0)return l;let t=e?l.return:l.child;for(;t;){const s=traverseFiber(t,e,n);if(s)return s;t=e?null:t.sibling}}function wrapContext(l){try{return Object.defineProperties(l,{_currentRenderer:{get(){return null},set(){}},_currentRenderer2:{get(){return null},set(){}}})}catch{return l}}const FiberContext=wrapContext(React__namespace.createContext(null));class FiberProvider extends React__namespace.Component{render(){return React__namespace.createElement(FiberContext.Provider,{value:this._reactInternals},this.props.children)}}const{ReactCurrentOwner,ReactCurrentDispatcher}=React__namespace.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function useFiber(){const l=React__namespace.useContext(FiberContext);if(l===null)throw new Error("its-fine: useFiber must be called within a <FiberProvider />!");const e=React__namespace.useId();return React__namespace.useMemo(()=>{for(const t of[ReactCurrentOwner==null?void 0:ReactCurrentOwner.current,l,l==null?void 0:l.alternate]){if(!t)continue;const s=traverseFiber(t,!1,o=>{let d=o.memoizedState;for(;d;){if(d.memoizedState===e)return!0;d=d.next}});if(s)return s}},[l,e])}function useContextMap(){var l,e;const n=useFiber(),[t]=React__namespace.useState(()=>new Map);t.clear();let s=n;for(;s;){const o=(l=s.type)==null?void 0:l._context;o&&o!==FiberContext&&!t.has(o)&&t.set(o,(e=ReactCurrentDispatcher==null?void 0:ReactCurrentDispatcher.current)==null?void 0:e.readContext(wrapContext(o))),s=s.return}return t}function useContextBridge(){const l=useContextMap();return React__namespace.useMemo(()=>Array.from(l.keys()).reduce((e,n)=>t=>React__namespace.createElement(e,null,React__namespace.createElement(n.Provider,__spreadProps(__spreadValues({},t),{value:l.get(n)}))),e=>React__namespace.createElement(FiberProvider,__spreadValues({},e))),[l])}function usePrevious(l){const e=React$2.useRef({});return React$2.useLayoutEffect(()=>{e.current=l}),React$2.useLayoutEffect(()=>()=>{e.current={}},[]),e.current}const StageWrap=l=>{const e=React$2.useRef(),n=React$2.useRef(),t=React$2.useRef(),s=usePrevious(l),o=useContextBridge(),d=h=>{const{forwardedRef:f}=l;f&&(typeof f=="function"?f(h):f.current=h)};return React$2.useLayoutEffect(()=>(n.current=new Konva.Stage({width:l.width,height:l.height,container:e.current}),d(n.current),t.current=KonvaRenderer.createContainer(n.current,constantsExports.LegacyRoot,!1,null),KonvaRenderer.updateContainer(React$2.createElement(o,{},l.children),t.current),()=>{Konva.isBrowser&&(d(null),KonvaRenderer.updateContainer(null,t.current,null),n.current.destroy())}),[]),React$2.useLayoutEffect(()=>{d(n.current),applyNodeProps(n.current,l,s),KonvaRenderer.updateContainer(React$2.createElement(o,{},l.children),t.current,null)}),React$2.createElement("div",{ref:e,id:l.id,accessKey:l.accessKey,className:l.className,role:l.role,style:l.style,tabIndex:l.tabIndex,title:l.title})},Layer="Layer",Group="Group",Rect="Rect",Line="Line",Image$2="Image",Text="Text",KonvaRenderer=ReactFiberReconciler(HostConfig);KonvaRenderer.injectIntoDevTools({findHostInstanceByFiber:()=>null,bundleType:process.env.NODE_ENV!=="production"?1:0,version:React$2.version,rendererPackageName:"react-konva"});const Stage=React$2.forwardRef((l,e)=>React$2.createElement(FiberProvider,{},React$2.createElement(StageWrap,{...l,forwardedRef:e})));var client={},m=require$$0;if(process.env.NODE_ENV==="production")client.createRoot=m.createRoot,client.hydrateRoot=m.hydrateRoot;else{var i=m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;client.createRoot=function(l,e){i.usingClientEntryPoint=!0;try{return m.createRoot(l,e)}finally{i.usingClientEntryPoint=!1}},client.hydrateRoot=function(l,e,n){i.usingClientEntryPoint=!0;try{return m.hydrateRoot(l,e,n)}finally{i.usingClientEntryPoint=!1}}}var __rest=function(l,e){var n={};for(var t in l)Object.prototype.hasOwnProperty.call(l,t)&&e.indexOf(t)<0&&(n[t]=l[t]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,t=Object.getOwnPropertySymbols(l);s<t.length;s++)e.indexOf(t[s])<0&&Object.prototype.propertyIsEnumerable.call(l,t[s])&&(n[t[s]]=l[t[s]]);return n};const needForceStyle=l=>{const e=window.getComputedStyle(l).position;return!(e==="absolute"||e==="relative")};function useEvent(l=()=>{}){const e=React$2.useRef(l);return e.current=l,React$2.useCallback((...n)=>e.current.apply(null,n),[])}const Html=({children:l,groupProps:e,divProps:n,transform:t,transformFunc:s})=>{const o=React$2.useRef(null);React$2.useRef();const[d]=React$2.useState(()=>document.createElement("div")),h=React$2.useMemo(()=>client.createRoot(d),[d]),f=t??!0,u=useEvent(()=>{if(f&&o.current){let S=o.current.getAbsoluteTransform().decompose();s&&(S=s(S)),d.style.position="absolute",d.style.zIndex="10",d.style.top="0px",d.style.left="0px",d.style.transform=`translate(${S.x}px, ${S.y}px) rotate(${S.rotation}deg) scaleX(${S.scaleX}) scaleY(${S.scaleY})`,d.style.transformOrigin="top left"}else d.style.position="",d.style.zIndex="",d.style.top="",d.style.left="",d.style.transform="",d.style.transformOrigin="";const p=n||{},{style:_}=p,R=__rest(p,["style"]);Object.assign(d.style,_),Object.assign(d,R)});return React$2.useLayoutEffect(()=>{var p;const _=o.current;if(!_)return;const R=(p=_.getStage())===null||p===void 0?void 0:p.container();if(R)return R.appendChild(d),f&&needForceStyle(R)&&(R.style.position="relative"),_.on("absoluteTransformChange",u),u(),()=>{var y;_.off("absoluteTransformChange",u),(y=d.parentNode)===null||y===void 0||y.removeChild(d)}},[f]),React$2.useLayoutEffect(()=>{u()},[n,s]),React$2.useLayoutEffect(()=>{h.render(l)}),React$2.useLayoutEffect(()=>()=>{setTimeout(()=>{h.unmount()})},[]),React$2.createElement(Group,Object.assign({ref:o},e))};function Area({area:l,finished:e,isClicked:n,isBad:t,hasHighlights:s,completed:o,onClick:d,onClickOutside:h}){const f=React$2.useRef(),[u,p]=React$2.useState(),_=t?"rgba(255, 99, 77, 0.32)":"rgba(75, 215, 169, 0.32)",R=t?"#ff634d":"#4bd7a9",y=DeviceDetection(),S=()=>{var v,w,C;s&&!o&&!n&&((v=f.current)==null||v.setAttr("fill","rgba(130, 134, 142, 0.4)"),(w=f.current)==null||w.setAttr("stroke","rgba(255, 255, 255, 0.3)"),(C=f.current)==null||C.to({duration:.25,opacity:1}))},g=()=>{var v;s&&!o&&!n&&((v=f.current)==null||v.to({duration:.25,opacity:0}))};React$2.useEffect(()=>{var v,w,C;o&&!e&&(t?(C=f.current)==null||C.to({duration:.25,opacity:0}):((v=f.current)==null||v.to({duration:.25,opacity:1}),(w=f.current)==null||w.globalCompositeOperation("destination-out")))},[o,e,t]);const x=()=>{var v,w;o||(t?h(l):d(l),(v=f.current)==null||v.setAttr("fill",_),(w=f.current)==null||w.setAttr("stroke",R))},b=l.scaleX?l.scaleX:1,T=l.scaleY?l.scaleY:1;return React$2.useLayoutEffect(()=>{const v=f.current.getStage();v.on("stage-loaded",()=>{const w=f.current.getClientRect({relativeTo:f.current.getParent()});p({x:w.x+w.width/2,y:w.y+w.height/2}),v.batchDraw()})},[l]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[u?jsxRuntimeExports.jsx(Html,{transform:!0,groupProps:{id:"projection",...u},divProps:{style:{pointerEvents:"none"}},children:jsxRuntimeExports.jsx("div",{style:{width:"50px",height:"50px",pointerEvents:"none"},id:l.id})}):null,jsxRuntimeExports.jsx(Line,{name:l.id,ref:f,onFocus:()=>S(),onMouseOver:()=>S(),onMouseLeave:g,onClick:()=>x(),onTap:()=>x(),x:l.x,y:l.y,scale:{x:b,y:T},skew:{x:l.skewX,y:l.skewY},rotation:l.rotation,points:l.points,shape:"poly",fill:e?"":_,stroke:e||n?R:"",strokeWidth:y?10:4,opacity:e||n?1:0,closed:!0})]})}Area.defaultProps={finished:!1,isBad:!1,isClicked:!1,hasHighlights:!1,completed:!1,onClick:()=>{},onClickOutside:()=>{}};const useWindowSize=()=>{const[l,e]=React$2.useState([0,0]);return React$2.useLayoutEffect(()=>{function n(){const t=document.querySelector("#root");e([t.clientWidth,t.clientHeight])}return window.addEventListener("resize",n),n(),()=>window.removeEventListener("resize",n)},[]),l};function KonvaMapper({areas:l,badAreas:e,imageUrl:n,completed:t,onClick:s,onClickOutside:o,hasHighlights:d,clickedZones:h}){const f=React$2.useRef(),u=React$2.useRef(),p=React$2.useRef(),_=React$2.useRef(),R=React$2.useRef(),y=React$2.useRef(),S=React$2.useRef(),[g,x]=React$2.useState(new window.Image),[b,T]=useWindowSize(),v=e.find(D=>D.id==="AllArea")||!1,w=e.filter(D=>D.id!=="AllArea");React$2.useEffect(()=>{S.current&&u.current&&t&&(S.current.to({duration:.25,opacity:.5}),u.current.setAttr("visible",!0))},[t]);const C=D=>{v&&!D.target.attrs.shape&&o(v)};return React$2.useEffect(()=>{g.src=n,g.addEventListener("load",()=>{if(f.current){const D={x:b/2,y:T/2,width:g.width,height:g.height,offsetX:g.width/2,offsetY:g.height/2,scale:{x:Math.min(b/g.width,T/g.height),y:Math.min(b/g.width,T/g.height)}};_.current&&_.current.setAttrs(D),R.current&&R.current.setAttrs(D),u.current&&u.current.setAttrs(D),p.current&&p.current.setAttrs(D),y.current&&y.current.setAttrs(D),f.current.batchDraw(),x(g),f.current.fire("stage-loaded")}})},[g,T,n,b]),jsxRuntimeExports.jsxs(Stage,{ref:f,width:b,height:T,onClick:C,onTouchEnd:C,children:[jsxRuntimeExports.jsx(Layer,{children:jsxRuntimeExports.jsx(Image$2,{ref:y,image:g})}),jsxRuntimeExports.jsxs(Layer,{children:[jsxRuntimeExports.jsx(Rect,{ref:S,width:b,height:T,fill:"black",opacity:0}),jsxRuntimeExports.jsx(Group,{ref:R,children:w.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,isBad:!0},D.name+"_"+N))}),jsxRuntimeExports.jsx(Group,{ref:_,children:l.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,isClicked:h.some(P=>P.index===D.index)},D.name+"_"+N))}),jsxRuntimeExports.jsx(Group,{ref:p,visible:!1,children:w.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,isBad:!0,finished:!0},D.name+"_"+N))}),jsxRuntimeExports.jsx(Group,{ref:u,visible:!1,children:l.map((D,N)=>jsxRuntimeExports.jsx(Area,{hasHighlights:d,completed:t,onClick:s,onClickOutside:o,area:D,finished:!0},D.name+"_"+N))})]})]})}KonvaMapper.defaultProps={hasHighlights:!1,onClick:()=>{},completed:!1,onClickOutside:()=>{}};function TimerDialog({retry:l,translate:e,onInit:n}){return jsxRuntimeExports.jsx("div",{className:"timer-dialog",children:jsxRuntimeExports.jsxs("div",{className:"timer-dialog__container",children:[jsxRuntimeExports.jsx("div",{className:"timer-dialog__title",children:e("storylines.misc.ready")}),jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary",onClick:n,children:jsxRuntimeExports.jsx("span",{children:e(l?"storylines.misc.start":"storylines.misc.retry")})})]})})}function CountDown({time:l}){const e=Math.floor(l/60),n=l%60;return jsxRuntimeExports.jsx("div",{className:`count-down count-down--in-puzzle-frame ${l<10?"count-down--finalseconds":""}`,children:jsxRuntimeExports.jsxs("div",{children:[e<10?`0${e}`:e," : ",n<10?`0${Math.floor(n)}`:Math.floor(n)]})})}const defaultImg="https://min.gamelearn.io/css-resources/gamelearn/resources/puzzle-login-low.png";function ImageReview(){return jsxRuntimeExports.jsx("div",{className:"puzzle--image__preview",children:jsxRuntimeExports.jsx("img",{alt:"img",src:"https://min.gamelearn.io/css-resources/gamelearn/resources/image-click.jpg"})})}function ImageClickWrapperComponent(l){var Ge,Ne,Re;const{soundActions:e,emitEvent:n,getEvent:t,handleClick:s,disableExit:o,setResolveAction:d,info:h,image:f,areas:u,badAreas:p,hasClickOrder:_,timer:R,hasClickOnce:y,hasHighlights:S,hasImageReview:g,defaultCompleted:x,className:b,emitFinish:T,emitResolve:v,translateFromParent:w,specificFeedbacks:C,slideNumber:D,emitResetPuzzle:N,firstTryForFrame:P,puzzlesAutoCompleted:k,emitOpenPopupCounterInfo:F,pause:M,keyboardControl:j}=l,[U,B]=React$2.useState([]),[X,re]=React$2.useState(!1),[se,Z]=React$2.useState(!1),[K,te]=React$2.useState({show:!1,success:!1,text:"",rewards:[]}),ue=React$2.useRef(!1),[me,J]=React$2.useState(!0),[H,W]=React$2.useState(!1),V=React$2.useRef(null),z=React$2.useRef(null),Y=React$2.useRef(null),ie=React$2.useRef(null),le=React$2.useRef(null),fe=React$2.useRef(null),ce=React$2.useRef(null),ge=React$2.useRef(null),Se=React$2.useRef(null),[Ae,Fe]=React$2.useState(R),De=_e=>w?w(_e):t({type:"translate",payload:_e}),[Je]=e,{solution:ut}=h,et=((Ge=f==null?void 0:f.img)==null?void 0:Ge.url)||defaultImg,xt=u.map((_e,Oe)=>({index:Oe,shape:"poly",..._e})),Ve=p.map((_e,Oe)=>({index:Oe,shape:"poly",..._e})),Me=React$2.useCallback(()=>{if(!me){const _e=setInterval(()=>{Fe(Oe=>Oe>1?Oe-1:0)},1e3);Se.current=_e}},[me]),Le=React$2.useCallback((_e,Oe)=>{T?T(_e,Oe):n({type:"addPoints",payload:_e})},[n,T]);React$2.useEffect(()=>{X&&o(!0)},[X,o]),React$2.useEffect(()=>{re(x)},[x]);const Ye=React$2.useCallback(()=>{clearInterval(Y.current)},[]),ke=React$2.useCallback(()=>{clearInterval(Se.current)},[]),Qe=React$2.useCallback(_e=>{le.current=Date.now(),ie.current?(ce.current=ie.current-le.current,Ye()):(ce.current=le.current-(le.current-_e*1e3),Ye())},[Ye]),bt=React$2.useCallback(()=>{te(()=>{var _e,Oe;return{show:!0,success:!1,text:(_e=h==null?void 0:h.timerFeedback)!=null&&_e.desc?h.timerFeedback.desc:"",rewards:(Oe=h==null?void 0:h.timerFeedback)==null?void 0:Oe.rewards}}),W(!0),ke(),Ye()},[ke,Ye,(Ne=h.timerFeedback)==null?void 0:Ne.desc,(Re=h.timerFeedback)==null?void 0:Re.rewards]),qe=React$2.useCallback(()=>{clearInterval(Y.current),Y.current=setInterval(()=>{z.current=Date.now(),z.current>ie.current&&bt()},250)},[bt]);React$2.useEffect(()=>{var _e;if((u.length===U.length||y&&U.length>0)&&!X){re(!0);const Oe=U[U.length-1],Ke=C==null?void 0:C.correctFeedbacks.find(Ft=>Ft.id===Oe.id);(!((_e=C==null?void 0:C.correctFeedbacks)!=null&&_e.length)||C!=null&&C.correctFeedbacks.some(Ft=>!Ft.desc)||y)&&(te(Ft=>({...Ft,show:!0,success:!0,text:Ke?Ke.desc:h.solution.right.desc,rewards:Ke?Ke.rewards:h.solution.right.rewards})),R&&(ke(),Qe()))}},[U,u.length,C,y,X,h.solution.right,Qe,R,ke]),React$2.useEffect(()=>{d(_e=>{R&&(ke(),J(!1),K.show?te(Oe=>({...Oe,show:!1,success:!1,text:"",rewards:[]})):Ye()),re(!0),Z(!0),setTimeout(()=>{v?v(_e):_e()},4e3)})},[d,v,Je,R,K.show,Ye,ke]),React$2.useEffect(()=>{se&&o(!0)},[se,o]);const ct=(_e,Oe=!1)=>{var Ke,Ft;if(!X){const{rewards:Nt,desc:je}=ut.wrong;let vt=je,Pt=Nt;const lt=(Ke=C==null?void 0:C.wrongFeedbacks)==null?void 0:Ke.find(ze=>ze.id===_e.id);lt&&(vt=lt.desc,Pt=lt.rewards),_&&(B([]),Oe&&(Ft=h==null?void 0:h.orderFeedback)!=null&&Ft.desc&&(vt=h.orderFeedback.desc,Pt=h.orderFeedback.rewards)),R&&(ke(),Qe()),te(ze=>({...ze,show:!0,success:!1,text:vt,rewards:Pt})),Je("fail")}},Be=React$2.useCallback(()=>{fe.current=Date.now();const _e=fe.current+ce.current;z.current=null,ie.current=_e,(R||H)&&(K.success?u.length===U.length||y&&U.length>0?ke():(Fe(ce.current*.001),Me(),qe()):(B([]),J(!0),N())),Le(K.rewards,K.success),Je("click-ui"),te(Oe=>({...Oe,show:!1,success:!1,text:"",rewards:[]}))},[R,H,Le,K.rewards,K.success,Je,u.length,U.length,y,N,ke,Me,qe]),ot=_e=>{var Oe,Ke;if(!U.some(Ft=>Ft.index===_e.index)&&!K.show&&!X){Je("click-ui");let Ft=ut.right.desc,{rewards:Nt}=ut.right;const je=[...U,_e];if(_&&_e.index===U.length||!_){if(R&&Qe(Ae),s(),(Oe=C==null?void 0:C.correctFeedbacks)!=null&&Oe.length){const vt=(Ke=C.correctFeedbacks)==null?void 0:Ke.find(Pt=>Pt.id===_e.id);vt&&(Ft=vt.desc,Nt=vt.rewards),!Ft&&u.length>je.length&&!y?Le(Nt,!0):Ft&&!y&&(te(Pt=>({...Pt,show:!0,success:!0,text:Ft,rewards:Nt})),R&&ke())}B(je)}else ct(_e,!0)}},ft=React$2.useCallback(()=>{ke(),Fe(R),Me(),!ue.current&&P&&F(),J(!1),V.current=Date.now(),ie.current=V.current+R*1e3,qe()},[ke,R,Me,P,qe,F]);return React$2.useEffect(()=>{R&&D>0&&!ge.current&&(P&&Object.keys(k).length&&k[D-1]?(J(!0),ge.current=!0):J(!1))},[x,P,k,D,R]),React$2.useEffect(()=>{R&&Ae===0&&bt()},[Ae,bt,R]),React$2.useEffect(()=>{R&&(M?(ke(),Qe()):Me())},[ke,qe,M,Qe,Me,R]),jsxRuntimeExports.jsxs("div",{className:b,children:[K.show?jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:Je,text:K.text,success:K.success,translate:De,hasTimeout:!K.text,delay:R?1e3:2e3,functionOnClose:Be,timeExpired:H,keyboardControl:j}):null,jsxRuntimeExports.jsx(KonvaMapper,{completed:X,imageUrl:et,areas:y&&U.length?[U[0]]:xt,badAreas:Ve,clickedZones:U,onClick:ot,onClickOutside:ct,hasHighlights:S,emitEvent:n}),g?jsxRuntimeExports.jsx(ImageReview,{}):null,R&&me?jsxRuntimeExports.jsx(TimerDialog,{retry:P||k[D-1],translate:De,onInit:ft}):null,R?jsxRuntimeExports.jsx(CountDown,{time:Ae}):null]})}ImageClickWrapperComponent.defaultProps={info:{instructions:"",resolve:{},solution:{},hint:{},title:""},badAreas:[],className:"puzzle--image__click",hasClickOrder:!1,hasClickOnce:!1,hasHighlights:!1,hasImageReview:!1,defaultCompleted:!1,hideContinue:!1,emitAreaClick:()=>{},handleClick:()=>{},getEvent:()=>{}};function ImageClickPuzzleComponent(l){const e=(n,t)=>{t?(l.emitEvent({type:"addPoints",complex:!0,finish:!0,payload:n}),l.emitEvent({type:"passPuzzle"})):(l.emitEvent({type:"addPoints",payload:n,finish:!1}),l.emitEvent({type:"failPuzzle"}))};return jsxRuntimeExports.jsx(ImageClickWrapperComponent,{...l,emitFinish:e,name:"image-click-puzzle"})}const GREEN="#44d7ab",ORANGE="#FFB34B",RED="#FF634D",getDistance=(l,e)=>Math.max(Math.abs(l[0]-e[0]),Math.abs(l[1]-e[1])),generatePasswordPositions=(l,e,n,t)=>{const s=[],o=l;for(const d of e.toLowerCase()){const h=Math.floor(Math.random()*n),f=Math.floor(Math.random()*t);o[h][f].value=d,s.push({char:d,position:[h,f]})}return[o,s]},paintedGridPassword=(l,e,n,t)=>{const s=l;for(let o=0;o<e;o+=1)for(let d=0;d<n;d+=1)switch(t.reduce((f,u)=>{const p=[o,d],_=getDistance(u.position,p);return _<f?_:f},9999)){case 0:s[o][d].hiddenColor=GREEN;break;case 1:s[o][d].hiddenColor=ORANGE;break;case 2:s[o][d].hiddenColor=RED;break}return s},resetColors=(l,e,n)=>{const t=n;for(let s=0;s<l;s+=1)for(let o=0;o<e;o+=1)t[s][o].color="",t[s][o].hiddenColor=RED;return t},repaintGridPassword=(l,e,n,t)=>{const s=resetColors(n,t,l),[o,d]=generatePasswordPositions(s,e,n,t);return paintedGridPassword(o,n,t,d)},prepareAcceptedChars=(l,e)=>e.split("").filter(n=>!l.includes(n)).join(""),generateBasicGrid=(l,e,n)=>{const t=[];for(let s=0;s<l;s+=1){const o=[];for(let d=0;d<e;d+=1){const h={color:"",hiddenColor:RED,value:n[Math.floor(Math.random()*n.length)]};o.push(h)}t.push(o)}return t},makeSomeNoise=({numberOfColumns:l,numberOfRows:e,password:n})=>{const t=LangIsRtl()?"٠١٢٣٤٥٦٧٨٩شزذيثبلاهتنمورخحضقسفعدصطغظ":"0123456789abcdefghijklmnopqrstuvwxyz",s=prepareAcceptedChars(n,t),o=generateBasicGrid(e,l,s),[d,h]=generatePasswordPositions(o,n,e,l);return paintedGridPassword(d,e,l,h)};function DrawItem({item:l,rowIndex:e,columnIndex:n,setCursorPosition:t,cursorPosition:s}){const o=Math.abs(e-s[0])<3&&Math.abs(n-s[1])<3;return jsxRuntimeExports.jsx("span",{className:"puzzle--cracker__item",style:{backgroundColor:`${o?l.hiddenColor:l.color}`,flexGrow:1,textAlign:"center"},onMouseOver:()=>{t([e,n])},onFocus:()=>{t([e,n])},children:l.value})}DrawItem.defaultProps={setCursorPosition:()=>{}};DrawItem.propTypes={item:PropTypes.shape({color:PropTypes.string,hiddenColor:PropTypes.string,value:PropTypes.string}).isRequired,rowIndex:PropTypes.number.isRequired,columnIndex:PropTypes.number.isRequired,cursorPosition:PropTypes.arrayOf(PropTypes.number).isRequired,setCursorPosition:PropTypes.func};function DrawRow({row:l,rowIndex:e,setCursorPosition:n,cursorPosition:t}){return l.length?jsxRuntimeExports.jsx("div",{className:"puzzle--cracker",children:l.map((s,o)=>jsxRuntimeExports.jsx(DrawItem,{item:s,rowIndex:e,columnIndex:o,setCursorPosition:n,cursorPosition:t},o))}):null}DrawRow.defaultProps={row:[]};DrawRow.propTypes={row:PropTypes.arrayOf(PropTypes.shape({})),rowIndex:PropTypes.number.isRequired,setCursorPosition:PropTypes.func.isRequired,cursorPosition:PropTypes.arrayOf(PropTypes.number).isRequired};function DrawGrid({grid:l,cursorPosition:e,setCursorPosition:n}){return jsxRuntimeExports.jsx("div",{className:"puzzle--cracker__canvas",children:l.map((t,s)=>jsxRuntimeExports.jsx(DrawRow,{row:t,rowIndex:s,cursorPosition:e,setCursorPosition:n},s))})}DrawGrid.defaultProps={setCursorPosition:()=>{}};const VELOCITY_MAP={slow:2,fast:5,fastest:10},DIFFICULTY_MAP={easy:{visibleRows:"auto",visibleColumns:40,totalRows:25},medium:{visibleRows:"auto",visibleColumns:40,totalRows:40},hard:{visibleRows:"auto",visibleColumns:40,totalRows:80}};function CrackerPuzzleComponent({emitEvent:l,soundActions:e,info:n,velocity:t,password:s,disableExit:o,difficulty:d,setResolveAction:h,getEvent:f}){const[u]=e,p=J=>f({type:"translate",payload:J}),_=React$2.useRef(),R=React$2.useRef(),{solution:y}=n,[S,g]=React$2.useState(s.toLowerCase()),[x,b]=React$2.useState(),[T,v]=React$2.useState(Array(s.toLowerCase().length).fill("")),[w,C]=React$2.useState(!1),[D,N]=React$2.useState([0,0]),P=p("puzzle.cracker.crackedPassword"),k=n.solution.right.desc&&n.solution.right.desc!==""?n.solution.right.desc:"",F=p("puzzle.cracker.congratulations"),[M,j]=React$2.useState([[]]),{visibleRows:U,visibleColumns:B}=DIFFICULTY_MAP[d];let X=U==="auto"?Math.ceil(window.innerHeight*.025):U;X=X>=20?X:20,React$2.useEffect(()=>{w&&o(!0)},[w,o]),React$2.useEffect(()=>{h(J=>{u("score"),C(!0),setTimeout(()=>{l({type:"hidePuzzleButtons",payload:!1}),J()},0)})},[h,u]);const re=()=>{u("click-ui");const{rewards:J}=y.right;l({type:"addPoints",complex:!0,finish:!0,payload:J}),l({type:"passPuzzle"})},se=()=>s.toLowerCase().split("").map((H,W)=>({char:H,index:W,used:!1})),Z=J=>J.filter(H=>H.used===!1).map(H=>H.char).join(""),K=J=>{if(J[0].length>0&&!w){const H=[...J];return H.push(H.shift()),H}return J};let te=0;const ue=J=>{if(R.current!==void 0){const H=J-R.current;te+=H,te>1e3/VELOCITY_MAP[t]&&(j(K),te=0)}R.current=J,_.current=requestAnimationFrame(ue)};React$2.useEffect(()=>{g(s.toLowerCase());const J=makeSomeNoise({numberOfColumns:B,numberOfRows:X,password:s.toLowerCase()});return j(J),b(se()),_.current=requestAnimationFrame(ue),()=>cancelAnimationFrame(_.current)},[]);const me=()=>{if(M.length<=1)return;const[J,H]=D,W=M[J][H];if(W.hiddenColor===GREEN){const V=x.filter(z=>z.char===W.value.toLowerCase()&&z.used===!1)[0];if(V){const{index:z}=V;u("score");const Y=x;Y[z].used=!0,b(Y);const ie=[...T];ie[z]=W.value;const le=Z(Y);g(le);const fe=repaintGridPassword(M,le,X,B);j(fe),v(ie)}}S<=0&&(u("score"),C(!0))};return React$2.useEffect(()=>{w||me()},[D]),jsxRuntimeExports.jsxs("div",{className:"puzzle--cracker__container",children:[jsxRuntimeExports.jsxs("div",{className:"puzzle--cracker__header",children:[jsxRuntimeExports.jsx("span",{className:"title",children:"Dcoder.exe"}),jsxRuntimeExports.jsx("div",{className:"puzzle--pieces",children:T.map((J,H)=>jsxRuntimeExports.jsx("span",{className:"puzzle--pieces__item",children:J&&jsxRuntimeExports.jsx("span",{className:"character success-transition-animation","data-testid":`solution${H}`,children:J})},`${J+H}`))})]}),jsxRuntimeExports.jsx(DrawGrid,{grid:w?[[]]:M,cursorPosition:D,setCursorPosition:N}),w&&P&&F&&jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs(Typist,{avgTypingDelay:110,cursor:{hideWhenDone:!0},className:"puzzle--cracker__result",children:[jsxRuntimeExports.jsx(Typist.Delay,{ms:300}),jsxRuntimeExports.jsxs("span",{children:[`${P} ${s.toLowerCase()}`," "]}),jsxRuntimeExports.jsxs("span",{children:[F," "]}),k!==""&&jsxRuntimeExports.jsx("span",{children:k})]}),jsxRuntimeExports.jsx("div",{className:"position--absolute bottom center",children:jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary gat--btn__cracker",onClick:re,children:p("screens.continue")})})]})]})}CrackerPuzzleComponent.defaultProps={velocity:"slow",difficulty:"easy",context:{},info:{}};const ARABIC=/[\u0600-\u06FF]/,restrictCharacters=(l,e)=>{let n=!1;return e==="or"&&(n=l===""||l===" "||l===","||l==="."||l==="/"),e==="and"&&(n=l&&l!==" "&&l!==","&&l!=="."&&l!==""&&l!=="/"),n},sortChar=(l,e)=>l.char>e.char?1:l.char<e.char?-1:0,analyzeChars=l=>{const e={anyArabic:!1,anyNumber:!1,anyWestern:!1};for(let n=0;n<l.length;n+=1){const t=l[n].charCodeAt(0);t>=65&&t<=90?e.anyWestern=!0:t>=48&&t<=57?e.anyNumber=!0:ARABIC.test(l[n])&&(e.anyArabic=!0)}return e},makeChar=l=>{const e="شزذيثبلاهتنمورخحضثقسفعدصطغظ",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",t="0123456789";let s="";return l.anyWestern&&(s+=n),l.anyNumber&&(s+=t),l.anyArabic&&(s+=e),s.charAt(Math.floor(Math.random()*s.length))},MAX_POOL_LETTERS=26,MAX_EXTRA_LETTERS=8,AnswerPanel=({answer:l,flickerPosition:e,show:n=!1,showCorrectSolution:t})=>{const s=[];let o=0;return l.forEach(d=>{s[o]||(s[o]=[]),s[o]=[...s[o],d],d.char===" "&&(o+=1),t||(d.positionInitial=d.index)}),s.map((d,h)=>jsxRuntimeExports.jsx("div",{dir:"auto",className:"puzzle--hanged__word","data-testid":`result-${h}`,children:n?d.map((f,u)=>jsxRuntimeExports.jsx("span",{className:"puzzle--hanged__letter active",children:f},`${f+u}`)):d.filter(({char:f})=>f!==" ").map(({char:f,fixed:u},p)=>jsxRuntimeExports.jsx("span",{className:`puzzle--hanged__letter ${u?"":"active"} ${d[p].positionInitial===e?"fakeFocus":""}`,children:f},`${f+p}`))},`${d+h}`))},defaultImage="https://min.gamelearn.io/css-resources/gamelearn/resources/partenon.jpg";function HangedPuzzleComponent({soundActions:l,emitEvent:e,getEvent:n,disableExit:t,question:s,image:o,info:d,answer:h,hintUsed:f,setResolveAction:u,setHintAction:p,keyboardControl:_}){var fe;const[R]=l,y=((fe=o.img)==null?void 0:fe.url)||defaultImage,[S,g]=React$2.useState(0),[x,b]=React$2.useState(!1),[T,v]=React$2.useState([]),[w,C]=React$2.useState(!1),[D,N]=React$2.useState([]),[P,k]=React$2.useState(""),[F,M]=React$2.useState(!1),[j,U]=React$2.useState([]),[B,X]=React$2.useState(!1),re=h.toUpperCase().split(""),se=re.filter(ce=>restrictCharacters(ce,"and")),Z=ce=>n({type:"translate",payload:ce}),K=React$2.useCallback(()=>{const ce=se.map(Ae=>({char:Ae}));let ge=[];const Se=analyzeChars(se);for(;ge.length<MAX_EXTRA_LETTERS;){const Ae=makeChar(Se);ge=[...ge,{char:Ae}]}return[...ce,...ge]},[se]),te=h.toUpperCase().split("").map((ce,ge)=>restrictCharacters(ce,"or")?{index:ge,letter:ce,char:ce,fixed:!0}:{index:ge,letter:ce,char:""}),ue=React$2.useCallback(()=>{let ce=K();for(;ce.length>MAX_POOL_LETTERS;){const ge=Math.trunc(Math.random()*(ce.length-1))+1,Se=ce[ge],Ae=te.find((Fe,De)=>Se.char===Fe.letter&&!te[De].fixed);Ae&&(ce.splice(ge,1),te[Ae.index]={...Ae,char:Ae.letter,fixed:!0})}f&&(ce=[],te.forEach(({letter:ge})=>{ge!==" "&&ce.push({char:ge})})),N(te),v(ce)},[te,f,K]),me=(ce,ge)=>T.map((Ae,Fe)=>Fe===ge?{...Ae,deleted:!0}:{...Ae}),J=(ce,ge,Se)=>{const Ae=ge.map((De,Je)=>Se.find(et=>et.poolIndex===Je)?{char:De.char}:De);v(Ae),N(ce);const Fe=ce.find(De=>De.char==="");g(Fe.index)},H=(ce,ge)=>{R("click-ui");let Se=!1;const Ae=D.map(Je=>!Je.char&&!Se?(Se=!0,{...Je,char:ce,poolIndex:ge}):Je),Fe=me(ce,ge),De=Ae.filter(Je=>Je.char).length;v(Fe),N(Ae),W(),De===D.length&&ie(Ae,Fe)},W=()=>{var ce;if(x){const ge=D.find(Se=>Se.index!==S&&Se.letter!==" "&&Se.char===""&&Se.poolIndex===!1);ge&&g(ge.index)}else{const ge=D.find(Se=>Se.char==="");g(ge.index+1),((ce=D[ge.index+1])==null?void 0:ce.letter)===" "&&g(ge.index+2)}},V=()=>{R("click-ui");const ce=D.map((ge,Se)=>D[D.length-1-Se]).find(ge=>ge.char&&!ge.fixed);if(ce){const ge=D.map(Fe=>Fe.index===ce.index?{...ce,char:""}:Fe);let Se=!1;const Ae=T.map((Fe,De)=>De===ce.poolIndex&&(Fe.deleted||!Se)?(Se=!0,{char:Fe.char}):Fe);v(Ae),N(ge),g(ce.index)}},z=()=>{t(!0),k("");const ce=[...j,...d.solution.right.rewards];R("score"),e({type:"hidePuzzleButtons",payload:!1}),e({type:"addPoints",complex:!0,finish:!0,payload:ce}),e({type:"passPuzzle"})},Y=()=>{R("fail"),e({type:"hidePuzzleButtons",payload:!1}),U([...j,...d.solution.wrong.rewards]),k(""),M(!1),e({type:"failPuzzle"}),b(!0)},ie=(ce,ge)=>{let Se=[];M(!0);const Ae=ce.map((De,Je)=>re[Je]===De.char?{...De,fixed:!0}:(Se=[...Se,De],{...De,poolIndex:!1,char:""})),Fe=Ae.filter(De=>De.fixed).length;e({type:"hidePuzzleButtons",payload:!0}),Fe===re.length?(k("success"),d.solution.right.desc===""&&setTimeout(()=>{z()},2e3)):(k("failed"),J(Ae,ge,Se),d.solution.wrong.desc===""&&setTimeout(()=>{Y()},2e3))},le=()=>{if(P==="success")z();else{Y();const ce=D.find(ge=>ge.char==="");g(ce.index)}};return React$2.useEffect(()=>{w||(C(!0),ue()),u(ce=>{X(!0),setTimeout(()=>{e({type:"hidePuzzleButtons",payload:!1}),ce()},2e3)}),p(ce=>{const ge=[];te.forEach(({letter:Se})=>{Se!==" "&&ge.push({char:Se})}),v(ge),ce()})},[ue,w,h,u,e,j,d.resolve.rewards,te,p]),jsxRuntimeExports.jsxs("div",{className:"puzzle--hanged",style:{backgroundImage:`url("${y}")`},children:[P?jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:R,text:d.solution[P==="success"?"right":"wrong"].desc,success:P==="success",translate:Z,functionOnClose:le,keyboardControl:_}):null,jsxRuntimeExports.jsx("div",{className:"puzzle--hanged__content",children:jsxRuntimeExports.jsxs("div",{className:"puzzle--hanged__controls",children:[jsxRuntimeExports.jsx("div",{dir:"auto",className:"puzzle--hanged__header",children:s}),jsxRuntimeExports.jsx("div",{dir:"auto",className:`puzzle--hanged__solution ${P}`,"data-testid":`${P}`,children:B?jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx(AnswerPanel,{showCorrectSolution:B,answer:h.split(""),show:!0})}):jsxRuntimeExports.jsx(AnswerPanel,{showCorrectSolution:B,flickerPosition:S,answer:D})}),jsxRuntimeExports.jsxs("div",{className:"puzzle--hanged__keyboard",children:[T.sort((ce,ge)=>sortChar(ce,ge)).map((ce,ge)=>jsxRuntimeExports.jsx("button",{"data-testid":`key-${ce.char}`,type:"button",onClick:()=>{!ce.deleted&&!P&&!F&&(H(ce.char,ge),R("click-ui"))},className:`puzzle--hanged__keyboard--item ${ce.deleted||F?"disabled":""}`,children:ce.char},`${ce+ge}`)),jsxRuntimeExports.jsx("button",{onClick:F?null:()=>V(),type:"button",disabled:F?"disabled":null,"aria-label":Z("puzzles.hanged-puzzle.deleteButton"),className:`puzzle--hanged__keyboard--item delete ${F?"disabled":""}`,children:jsxRuntimeExports.jsx("span",{className:"icon-delete-keyboard"})})]})]})})]})}HangedPuzzleComponent.defaultProps={question:"",answer:"",image:{},hintBought:!1,info:{description:"",instructions:"",resolve:{},solution:{},hintBought:{}}};function CurrentImageClickPuzzle({list:l,description:e,nodeId:n,setInfo:t,emitEvent:s,getEvent:o,disableExit:d,setResolveAction:h,soundActions:f,setSelected:u,selected:p,pause:_,loadPuzzleStatus:R,index:y,setIndex:S,slidesCompleted:g,setSlidesCompleted:x,keyboardControl:b,totalCorrects:T}){const v=React$2.useRef([]),w=React$2.useRef(0),C=React$2.useRef(0),D=`chained-image-click-puzzle_${y}_${n}`,[N]=f,P=K=>{v.current=[...v.current,...K]},k=React$2.useCallback(K=>{N("score"),s({type:"hidePuzzleButtons",payload:!1}),s({type:"addPoints",complex:!0,finish:!0,payload:[...v.current,...K]}),s({type:"passPuzzle"})},[N,s]),[F,M]=React$2.useState(!1),j=l[y],{info:U,specificFeedbacks:B}=j;U.description=e,React$2.useEffect(()=>{w.current=0,C.current=0,M(!1)},[y]);const X=React$2.useCallback((K,te=!1)=>{var me;let ue={...g};if(te){if((me=B==null?void 0:B.correctFeedbacks)!=null&&me.length&&!j.hasClickOnce){const J=B.correctFeedbacks.length;F&&J?(w.current>0?u(p+(J-w.current)):u(p+J),w.current=J):w.current+=1}else{let J=p;C.current&&(J-=C.current),w.current=j.areas.length,u(J+w.current)}w.current===j.areas.length&&(y+1>=l.length?k(K):S(y+1),ue={...ue,[y]:!0},x(ue)),P(K)}else s({type:"addPoints",payload:K,finish:!1}),s({type:"failPuzzle"}),j.hasClickOrder&&(u(p-w.current),w.current===0&&Object.entries(g).length===0?u(0):w.current=0),Object.entries(g).length===0&&j.hasClickOrder&&!p&&u(0)},[g,B,j.hasClickOnce,j.areas.length,j.hasClickOrder,F,u,p,y,l.length,x,k,S,s]),re=()=>{for(let K=0;K<v.current.length;K=K+1)if(v.current[K].points>0)return!0;return!1},se=()=>{M(!0),y>=l.length-1&&u(T),N("score"),y+1>=l.length&&re()?(U.resolve.rewards.forEach(K=>{v.current.forEach(te=>{te.id===K.id&&(K.points=K.points+te.points)})}),s({type:"puzzleAction",action:"resolve",payload:{element:D,rewards:U.resolve.rewards,finish:!0}})):s({type:"puzzleAction",action:"resolve",payload:{element:D,rewards:U.resolve.rewards,finish:y+1>=l.length}})};React$2.useEffect(()=>{t({...U,hintId:D})},[U,D,t]),React$2.useEffect(()=>{R&&y!==l.length-1&&X([],!0)},[y,l.length,R,X]);const Z=()=>{const K=j.hasClickOnce?j.areas.length:1;C.current+=K,u(p+K)};return jsxRuntimeExports.jsx(ImageClickWrapperComponent,{...j,puzzle:{name:D,component:"chained-image-click-puzzle"},specificFeedbacks:B,emitFinish:X,emitError:P,emitResolve:se,isLast:y+1===l.length,defaultCompleted:g[y]||!!R,hideContinue:y+1!==l.length,handleClick:Z,emitEvent:s,getEvent:o,disableExit:d,soundActions:f,setResolveAction:h,pause:_,keyboardControl:b},y)}function ChainedImageClickPuzzleComponent(l){const{setInfo:e,emitEvent:n,nodeId:t,list:s,description:o,soundActions:d,showFrames:h,disableExit:f,setResolveAction:u,pause:p,keyboardControl:_,getEvent:R}=l,[y,S]=React$2.useState(0),[g,x]=React$2.useState(0),[b,T]=React$2.useState({}),v=`chained-image-click-puzzle_${g}_${t}`,w=React$2.useMemo(()=>R({type:"loadObjectStatus",payload:v}),[R,v]),C=s.reduce((N,P)=>N+P.areas.length,0),D={list:s,description:o,nodeId:t,disableExit:f,setResolveAction:u,emitEvent:n,soundActions:d,setInfo:e,setSelected:S,selected:y,index:g,setIndex:x,slidesCompleted:b,setSlidesCompleted:T,loadPuzzleStatus:w,pause:p,keyboardControl:_,totalCorrects:C};return jsxRuntimeExports.jsxs("div",{className:"puzzle--image__click",children:[h?jsxRuntimeExports.jsxs("div",{className:"puzzle-image__info",children:[jsxRuntimeExports.jsx("span",{className:"info-circle"}),jsxRuntimeExports.jsxs("span",{children:[y," / ",C]})]}):null,jsxRuntimeExports.jsx(CurrentImageClickPuzzle,{...D})]})}function CurrentFramePuzzle({list:l,index:e,puzzlesCompiledRef:n,framesCompleted:t,handleFinish:s,accRewards:o,setRewards:d,setIndex:h,setFramesCompleted:f,loadPuzzleStatus:u,soundActions:p,setResolveAction:_,disableExit:R,description:y,translateFromParent:S,setInfo:g,emitEvent:x,nodeId:b,setSelected:T,selected:v,emitResetPuzzle:w,firstTryForFrame:C,setPuzzlesAutoCompleted:D,puzzlesAutoCompleted:N,emitOpenPopupCounterInfo:P,resetValues:k,setResetValues:F,pause:M,keyboardControl:j,totalCorrects:U,getEvent:B}){var ie;const[X]=p,[re,se]=React$2.useState(!1),Z=l[e],{info:K,specificFeedbacks:te}=Z;K.description=y;const ue=React$2.useRef(0),me=React$2.useRef(0),J=`frame-image-click-puzzle_${e}_${b}`;React$2.useEffect(()=>{n.current+=1},[n]),React$2.useEffect(()=>{g({...K,hintId:J})},[g,K,J]),React$2.useEffect(()=>{k&&(me.current=0,ue.current=0,T(0),F(!1))},[k,F,T]),React$2.useEffect(()=>{me.current=0,ue.current=0,se(!1)},[e]);const H=React$2.useCallback((le,fe=!1)=>{var ge;let ce={...t};if(fe){if((ge=te==null?void 0:te.correctFeedbacks)!=null&&ge.length&&!Z.hasClickOnce){const Se=te.correctFeedbacks.length;re&&Se?(me.current>0?T(v+(Se-me.current)):T(v+Se),me.current=Se):me.current+=1}else{let Se=v;ue.current&&(Se-=ue.current),me.current=Z.areas.length,N[0]&&Object.entries(t).length===0?T(me.current):T(Se+me.current)}me.current===Z.areas.length&&(e+1>=l.length&&s(le),ce={...ce,[e]:!0},f(ce),h(e+1>l.length-1?0:e+1)),d(le)}else x({type:"addPoints",payload:le,finish:!1}),x({type:"failPuzzle"}),Z.hasClickOrder&&(T(v-me.current),me.current=0)},[t,(ie=te==null?void 0:te.correctFeedbacks)==null?void 0:ie.length,Z.hasClickOnce,Z.areas.length,Z.hasClickOrder,d,re,T,v,N,e,l.length,f,h,s,x]),W=React$2.useCallback(()=>{for(let le=0;le<o.current.length;le=le+1)if(o.current[le].points>0)return!0;return!1},[o]),V=React$2.useCallback(()=>{se(!0),e>=l.length-1&&T(U),X("score"),x({type:"hidePuzzleButtons",payload:!1}),D(le=>({...le,[e]:!0})),e+1>=l.length&&W()?(K.resolve.rewards.forEach(le=>{o.current.forEach(fe=>{fe.id===le.id&&(le.points=le.points+fe.points)})}),x({type:"puzzleAction",action:"resolve",payload:{element:J,rewards:K.resolve.rewards,finish:!0}})):x({type:"puzzleAction",action:"resolve",payload:{element:J,rewards:K.resolve.rewards,finish:e+1>=l.length}})},[e,l.length,X,x,D,W,T,U,K.resolve.rewards,J,o]),z=React$2.useCallback(()=>{f({}),me.current=0,ue.current=0,w()},[w,f]);React$2.useEffect(()=>{u&&e!==l.length-1&&H([],!0)},[t,e,l.length,u,H]);const Y=()=>{const le=Z.hasClickOnce?Z.areas.length:1;ue.current+=le,T(v+le)};return jsxRuntimeExports.jsx(ImageClickWrapperComponent,{...Z,className:"puzzle-frame__canvas",puzzle:{name:"",component:"frame-click-puzzle"},specificFeedbacks:te,emitFinish:H,emitResolve:V,hideContinue:!0,disableInfo:n.current>1,defaultCompleted:t[e]||!!u,soundActions:p,setResolveAction:_,disableExit:R,translateFromParent:S,emitEvent:x,getEvent:B,slideNumber:e,handleClick:Y,emitResetPuzzle:z,firstTryForFrame:C,puzzlesAutoCompleted:N,emitOpenPopupCounterInfo:P,pause:M,keyboardControl:j},e)}function Tooltip({getEvent:l}){const e=n=>l({type:"translate",payload:n});return jsxRuntimeExports.jsx("div",{dir:"auto",className:"puzzle-frame__info--tooltip",children:e("puzzles.counterTooltip")})}function Counter({current:l,total:e,tooltip:n,getEvent:t}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[n?jsxRuntimeExports.jsx(Tooltip,{getEvent:t}):null,jsxRuntimeExports.jsxs("div",{className:"puzzle-frame__info--frames",children:[jsxRuntimeExports.jsx("span",{className:"info-circle"}),jsxRuntimeExports.jsxs("span",{children:[l," / ",e]})]})]})}function FrameImageClickComponent({emitEvent:l,nodeId:e,list:n,description:t,showFrames:s,soundActions:o,disableExit:d,setResolveAction:h,setInfo:f,getEvent:u,pause:p,keyboardControl:_}){const[R,y]=React$2.useState({}),S=React$2.useRef([]),[g,x]=React$2.useState(0),[b,T]=React$2.useState({}),[v,w]=React$2.useState(0),C=React$2.useRef(0),[D,N]=React$2.useState(!0),[P,k]=React$2.useState(!0),[F,M]=React$2.useState(!1),j=n.reduce((me,J)=>me+J.areas.length,0),U=me=>{S.current=[...S.current,...me]},B=`frame-image-click-puzzle_${g}_${e}`,X=React$2.useMemo(()=>u({type:"loadObjectStatus",payload:B}),[u,B]),re=React$2.useCallback(me=>{l({type:"addPoints",complex:!0,finish:!0,payload:[...S.current,...me]}),l({type:"passPuzzle"})},[l]),se=React$2.useCallback(()=>{k(!1),S.current=[],w(0),x(0),T({}),N(!0),M(!0)},[]),Z=me=>u({type:"translate",payload:me}),K=()=>{N(!0)},ue={firstTryForFrame:P,list:n,description:t,index:g,puzzlesCompiledRef:C,framesCompleted:b,handleFinish:re,setRewards:U,accRewards:S,setSelected:w,selected:v,setIndex:x,setFramesCompleted:T,loadPuzzleStatus:X,soundActions:o,setResolveAction:h,disableExit:d,translateFromParent:Z,setInfo:f,emitEvent:l,nodeId:e,emitResetPuzzle:se,resetValues:F,setResetValues:M,setPuzzlesAutoCompleted:y,puzzlesAutoCompleted:R,emitOpenPopupCounterInfo:()=>{g===0&&N(!1)},pause:p,keyboardControl:_,totalCorrects:j,getEvent:u};return jsxRuntimeExports.jsxs("div",{className:"puzzle-frame",children:[jsxRuntimeExports.jsx(CurrentFramePuzzle,{...ue}),jsxRuntimeExports.jsxs("div",{className:"puzzle-frame__content",children:[jsxRuntimeExports.jsx("div",{className:"puzzle-frame__controls",children:jsxRuntimeExports.jsx("div",{className:"puzzle-frame__progress",children:jsxRuntimeExports.jsx("div",{"data-testid":"puzzle-frame-progress",style:{width:`${v/j*100}%`},className:"puzzle-frame__progress--handle"})})}),s?jsxRuntimeExports.jsx("button",{"data-testid":"puzzle-frame-counter-button",disabled:D,"aria-hidden":D,type:"button",className:"puzzle-frame__info",onClick:K,children:jsxRuntimeExports.jsx(Counter,{current:v,total:j,tooltip:!D,getEvent:u})}):null]})]})}FrameImageClickComponent.defaultProps={description:"",context:{},nodeId:0,showFrames:!1};function EditButton({action:l,className:e}){return jsxRuntimeExports.jsx("div",{role:"button",tabIndex:0,"aria-label":`${l} edit button`,onKeyUp:()=>{},className:`puzzle--webBuilder__edit ${e}`,onClick:l,children:jsxRuntimeExports.jsx("span",{className:"icon-fb-edit"})})}EditButton.defaultProps={action:()=>{},className:""};const path="https://min.gamelearn.io/css-resources/gamelearn/resources/",imagesOptions=[{name:"webbuilder.imageOptions.image1",src:"Amor.jpg"},{name:"webbuilder.imageOptions.image2",src:"Bancorp.svg"},{name:"webbuilder.imageOptions.image3",src:"Amanda.jpg"},{name:"webbuilder.imageOptions.image4",src:"keyboard.jpg"},{name:"webbuilder.imageOptions.image5",src:"Melanie.jpg"},{name:"webbuilder.imageOptions.image6",src:"Sharon.jpg"},{name:"webbuilder.imageOptions.image7",src:"Bankex.svg"},{name:"webbuilder.imageOptions.image8",src:"Futbol.jpg"},{name:"webbuilder.imageOptions.image9",src:"GBL.svg"},{name:"webbuilder.imageOptions.image10",src:"Fooder.jpg"},{name:"webbuilder.imageOptions.image11",src:"Corporate.jpg"},{name:"webbuilder.imageOptions.image12",src:"Bank of Zamunda.svg"},{name:"webbuilder.imageOptions.image13",src:"mindfullness.jpg"},{name:"webbuilder.imageOptions.image14",src:"Nature.jpg"},{name:"webbuilder.imageOptions.image15",src:"Shopper.jpg"},{name:"webbuilder.imageOptions.image16",src:"Lab.jpg"}],colorOptions=["#c66a46","#3c9dc0","#6236ff","#21254f"],colorOptions2=["#39b7b9","#25a1d4","#f5a623","#080269"],titleOptions=[{title:"webbuilder.bank.titleOptions.title1.text",desc:"webbuilder.bank.titleOptions.title1.description"},{title:"webbuilder.bank.titleOptions.title2.text",desc:"webbuilder.bank.titleOptions.title2.description"},{title:"webbuilder.bank.titleOptions.title3.text",desc:"webbuilder.bank.titleOptions.title3.description"},{title:"webbuilder.bank.titleOptions.title4.text",desc:"webbuilder.bank.titleOptions.title4.description"},{title:"webbuilder.bank.titleOptions.title5.text",desc:"webbuilder.bank.titleOptions.title5.description"}],bankProps={backgroundImage:imagesOptions[10].src,backgroundLogo:imagesOptions[11].src,backgroundColor:"#21254f",btnColor:"#25a1d4"},BankTemplate={header:{color:bankProps.backgroundColor,logo:bankProps.backgroundLogo},body:{bankTitle:titleOptions[0].title,bankDesc:titleOptions[0].desc,bgImage:bankProps.backgroundImage,btnColor:bankProps.btnColor}};function BankHeader({showingReference:l,usingTemplate:e,openPopup:n,onSave:t,header:s,translate:o}){return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[l?jsxRuntimeExports.jsx("div",{className:"bank--edit__logo",children:jsxRuntimeExports.jsx("img",{src:path+e.header.logo,alt:"",title:""})}):jsxRuntimeExports.jsxs("div",{className:"bank--edit__logo",children:[s.logo?jsxRuntimeExports.jsx("img",{src:path+s.logo,alt:"",title:""}):jsxRuntimeExports.jsxs("span",{children:[jsxRuntimeExports.jsx("b",{children:o("webbuilder.bank.header.title")}),jsxRuntimeExports.jsx("b",{children:o("webbuilder.bank.header.logo")})]}),jsxRuntimeExports.jsx(EditButton,{action:()=>n("PopupImageComponent",{text:"Documents",images:imagesOptions,onSave:d=>t({logo:d})})})]}),jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsxs("ul",{className:"bank--navigation",children:[jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.account")}),jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.invest")}),jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.loans")}),jsxRuntimeExports.jsx("li",{className:"bank-navigation__item",children:o("webbuilder.bank.header.mortgage")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>n("PopupColorComponent",{colors:colorOptions,onSave:d=>t({color:d})})})]})]})}BankHeader.defaultProps={showingReference:!1,usingTemplate:{},openPopup:()=>{},onSave:()=>{},header:{}};BankHeader.propTypes={showingReference:PropTypes.bool,usingTemplate:PropTypes.shape({}),openPopup:PropTypes.func,onSave:PropTypes.func,header:PropTypes.shape({})};function FacebookHeader({showingReference:l,usingTemplate:e,header:n,translate:t}){const s=l?e.header.userImage:n.userImage,o=l?e.header.username:n.username;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{className:"facebook--header__logo",children:jsxRuntimeExports.jsx("span",{className:"icon-fb-logo"})}),jsxRuntimeExports.jsxs("span",{className:"facebook--header__user",children:[jsxRuntimeExports.jsx("span",{className:"facebook--header__user--circle",style:{backgroundImage:`url(${path+s})`}}),jsxRuntimeExports.jsx("span",{className:"facebook--header__user--text",children:t(o||"webbuilder.facebook.header.userName")})]})]})}FacebookHeader.defaultProps={showingReference:!1,usingTemplate:{},header:{}};function WebBuilderHeader(l){const{isFacebook:e,header:n,showingReference:t,usingTemplate:s}=l,o=t?s.header.color:n.color;return jsxRuntimeExports.jsx("div",{className:`puzzle--webBuilder__header ${e?"":"bank"}`,style:e?{}:{backgroundColor:`${o}`},children:jsxRuntimeExports.jsx("div",{className:`${e?"facebook":"bank"}--header`,children:e?jsxRuntimeExports.jsx(FacebookHeader,{...l}):jsxRuntimeExports.jsx(BankHeader,{...l})})})}WebBuilderHeader.defaultProps={isFacebook:!1,showingReference:!1,usingTemplate:{},header:{}};WebBuilderHeader.propTypes={isFacebook:PropTypes.bool,showingReference:PropTypes.bool,usingTemplate:PropTypes.shape({}),header:PropTypes.shape({})};const facebookProps={backgroundImage:imagesOptions[12].src,backgroundUser:imagesOptions[5].src},userOptions=["webbuilder.userOptions.user1","webbuilder.userOptions.user2","webbuilder.userOptions.user3"],workOptions=["webbuilder.workOptions.work1","webbuilder.workOptions.work2","webbuilder.workOptions.work3"],studiesOptions=["webbuilder.studiesOptions.study1","webbuilder.studiesOptions.study2","webbuilder.studiesOptions.study3"],mailOptions=["webbuilder.mailOptions.mail1","webbuilder.mailOptions.mail2","webbuilder.mailOptions.mail3"],homeOptions=["webbuilder.homeOptions.home1","webbuilder.homeOptions.home2","webbuilder.homeOptions.home3"],FacebookTemplate={header:{username:userOptions[1],userImage:facebookProps.backgroundUser,bgImage:facebookProps.backgroundImage},body:{work:workOptions[2],home:homeOptions[1],studies:studiesOptions[0],mail:mailOptions[0]}};function WebBuilderFront({showingReference:l,usingTemplate:e,header:n,onSave:t,translate:s,openPopup:o}){const d=l?e.header.userImage:n.userImage,h=l?e.header.username:n.username,f=l?e.header.bgImage:n.bgImage;return jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__front",style:{backgroundImage:`url(${path+f})`},children:[jsxRuntimeExports.jsxs("div",{className:"facebook--user",children:[jsxRuntimeExports.jsx("span",{className:"facebook--user__circle",style:{backgroundImage:`url(${path+d})`},children:l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{o("PopupImageComponent",{images:imagesOptions,onSave:u=>t({userImage:u})})}})}),jsxRuntimeExports.jsx("span",{className:"facebook--user__text",children:s(h||"webbuilder.facebook.header.userName")}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{o("PopupTextComponent",{options:userOptions,onSave:u=>t({username:u})})}})]}),l?null:jsxRuntimeExports.jsx(EditButton,{className:"position--absolute right top",action:()=>{o("PopupImageComponent",{images:imagesOptions,onSave:u=>t({bgImage:u})})}})]})}WebBuilderFront.defaultProps={showingReference:!1,usingTemplate:{},openPopup:()=>{},onSave:()=>{},header:{}};WebBuilderFront.propTypes={showingReference:PropTypes.bool,usingTemplate:PropTypes.shape({}),openPopup:PropTypes.func,onSave:PropTypes.func,header:PropTypes.shape({})};function FacebookBody({showingReference:l,usingTemplate:e,body:n,onSave:t,openPopup:s,translate:o}){const d=l?e.body.work:n.work,h=l?e.body.studies:n.studies,f=l?e.body.home:n.home,u=l?e.body.mail:n.mail;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("ul",{className:"facebook--sidebar",dir:"auto",children:[jsxRuntimeExports.jsxs("li",{className:`facebook--sidebar__item ${d||l?"selected":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-work"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(d||"webbuilder.facebook.body.work")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:workOptions,onSave:p=>t({work:p})})}})]}),jsxRuntimeExports.jsxs("li",{className:`facebook--sidebar__item ${h||l?"selected":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-education"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(h||"webbuilder.facebook.body.studies")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:studiesOptions,onSave:p=>t({studies:p})})}})]}),jsxRuntimeExports.jsxs("li",{className:`facebook--sidebar__item ${f||l?"selected":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-home"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(f||"webbuilder.facebook.body.home")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:homeOptions,onSave:p=>t({home:p})})}})]})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--board",children:[jsxRuntimeExports.jsx("div",{className:"facebook--mail__label",children:"E-mail"}),jsxRuntimeExports.jsxs("div",{className:`facebook--mail__box ${u||l?"active":""}`,children:[jsxRuntimeExports.jsxs("div",{className:"flex align-center",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-mail"}),jsxRuntimeExports.jsx("span",{className:"text",children:o(u||"webbuilder.facebook.body.email")})]}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:mailOptions,onSave:p=>t({mail:p})})}})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs",children:[jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-edit"}),o("webbuilder.facebook.body.editPost")]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-photo"}),o("webbuilder.facebook.body.editPhoto")]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-video"}),o("webbuilder.facebook.body.liveVideo")]}),jsxRuntimeExports.jsxs("div",{className:"facebook--tabs__item",children:[jsxRuntimeExports.jsx("span",{className:"icon-fb-events"}),o("webbuilder.facebook.body.facebookEvent")]})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--thinking",children:[jsxRuntimeExports.jsxs("div",{className:"facebook--textarea",children:[jsxRuntimeExports.jsx("div",{className:"facebook--textarea__circle"}),jsxRuntimeExports.jsx("div",{className:"facebook--textarea__placeholder",children:o("webbuilder.facebook.body.think")})]}),jsxRuntimeExports.jsxs("div",{className:"facebook--chips",children:[jsxRuntimeExports.jsx("span",{className:"facebook--chips__item",children:o("webbuilder.facebook.body.photo")}),jsxRuntimeExports.jsx("span",{className:"facebook--chips__item",children:o("webbuilder.facebook.body.label")}),jsxRuntimeExports.jsx("span",{className:"facebook--chips__item",children:o("webbuilder.facebook.body.feeling")})]})]})]})]})}FacebookBody.defaultProps={showingReference:!1,usingTemplate:{},openPopup:()=>{},onSave:()=>{},body:{}};function BankBody({showingReference:l,usingTemplate:e,body:n,onSave:t,openPopup:s,translate:o}){const d=l?e.body.bgImage:n.bgImage,h=l?e.body.btnColor:n.btnColor,f=o(l?e.body.bankTitle:"webbuilder.bank.body.image.title"),u=o(l?e.body.bankDesc:"webbuilder.bank.body.image.description");return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"bank--image__front",style:{backgroundImage:`url(${path+d})`},children:jsxRuntimeExports.jsxs("div",{className:"bank--image__text",children:[jsxRuntimeExports.jsx("span",{className:"title",children:n.bankTitle&&!l?o(n.bankTitle):f}),jsxRuntimeExports.jsx("span",{children:n.bankDesc&&!l?o(n.bankDesc):u}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupTextComponent",{options:titleOptions,onSave:p=>t({bankTitle:p.title,bankDesc:p.desc})})}}),l?null:jsxRuntimeExports.jsx(EditButton,{className:"position--absolute top right",action:()=>{s("PopupImageComponent",{images:imagesOptions,onSave:p=>t({bgImage:p})})}})]})}),jsxRuntimeExports.jsx("div",{dir:"auto",className:"bank--sidebar",children:jsxRuntimeExports.jsxs("div",{className:"bank--form",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__title",children:o("webbuilder.bank.body.password.title")}),jsxRuntimeExports.jsxs("div",{className:"bank--form__group",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__label",children:o("webbuilder.bank.body.password.current")}),jsxRuntimeExports.jsx("input",{disabled:!0,className:"bank--form__input",type:"password",placeholder:"********"}),jsxRuntimeExports.jsx("span",{className:"icon-circle-check"})]}),jsxRuntimeExports.jsxs("div",{className:"bank--form__group",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__label",children:o("webbuilder.bank.body.password.new")}),jsxRuntimeExports.jsx("input",{disabled:!0,className:"bank--form__input",type:"password",placeholder:"********"}),jsxRuntimeExports.jsx("span",{className:"icon-circle-check"})]}),jsxRuntimeExports.jsxs("div",{className:"bank--form__group",children:[jsxRuntimeExports.jsx("div",{className:"bank--form__label",children:o("webbuilder.bank.body.password.confirm")}),jsxRuntimeExports.jsx("input",{disabled:!0,className:"bank--form__input",type:"password",placeholder:"********"}),jsxRuntimeExports.jsx("span",{className:"icon-circle-check"})]}),jsxRuntimeExports.jsxs("div",{className:"bank--form__buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"bank--form__btn",style:{backgroundColor:`${h}`},children:o("webbuilder.save")}),l?null:jsxRuntimeExports.jsx(EditButton,{action:()=>{s("PopupColorComponent",{colors:colorOptions2,onSave:p=>t({btnColor:p})})}})]})]})})]})}function WebBuilderBody(l){const{isFacebook:e}=l;return jsxRuntimeExports.jsx("div",{className:`puzzle--webBuilder__body ${e?"":"bank"}`,children:e?jsxRuntimeExports.jsx(FacebookBody,{...l}):jsxRuntimeExports.jsx(BankBody,{...l})})}WebBuilderBody.defaultProps={isFacebook:!1};WebBuilderBody.propTypes={isFacebook:PropTypes.bool};function CurrentButton({translate:l,backActive:e,action:n}){return jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__topbar--buttons",children:jsxRuntimeExports.jsx("button",{type:"button",className:"puzzle--webBuilder__topbar--buttons__item",onClick:n,children:l(`webbuilder.${e?"return":"showReference"}`)})})}function WebBuilderTopBar({backActive:l,displayButton:e,clickAction:n,translate:t}){return jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__topbar",children:[e?jsxRuntimeExports.jsx(CurrentButton,{backActive:l,action:n,translate:t}):null,jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__title",children:"web builder 3.0"})]})}function FeedbackResult({onNext:l,success:e,showButton:n,translate:t}){const s=t(e?"webbuilder.feedback.successTitle":"webbuilder.feedback.failTitle"),o=t(e?"webbuilder.feedback.success":"webbuilder.feedback.fail");return jsxRuntimeExports.jsxs("div",{dir:"auto",className:`puzzle--webBuilder__feedback bottom ${e?"success":"failed"}`,style:e?{zIndex:"11"}:{},children:[jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"title",children:s}),jsxRuntimeExports.jsx("div",{className:"description",children:o})]}),n?jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__secondary ${e?"green":"red"}`,onClick:l,style:{marginRight:"64px"},children:t("webbuilder.continue")}):null]})}FeedbackResult.defaultProps={onNext:()=>{},success:!1,showButton:!0};function PublishButton({onPublish:l,translate:e}){return jsxRuntimeExports.jsx("div",{role:"button",tabIndex:0,onKeyUp:()=>{},"aria-label":"publish",className:"position--absolute bottom center",onClick:l,children:jsxRuntimeExports.jsxs("div",{className:"gat--btn gat--btn__primary",children:[jsxRuntimeExports.jsx("span",{className:"icon-download-cloud"}),e("webbuilder.publish")]})})}PublishButton.defaultProps={onPublish:()=>{}};function PopupColorComponent({colors:l,onSave:e,closingAction:n,translate:t,soundActions:s}){const[o]=s,[d,h]=React$2.useState(),f=d===null;return jsxRuntimeExports.jsx("div",{className:"popup--layer",children:jsxRuntimeExports.jsxs("div",{className:"popup",children:[jsxRuntimeExports.jsx("div",{className:"popup--info",children:jsxRuntimeExports.jsx("span",{className:"popup--info__item",children:jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__colors",children:[jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__colors--title",children:jsxRuntimeExports.jsx("span",{children:t("webbuilder.colorSelect.title")})}),jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__colors--items",children:l.map(u=>jsxRuntimeExports.jsx("div",{className:`puzzle--webBuilder__color--select ${d===u?"selected":""}`,style:{borderColor:`${u}`},onClick:()=>h(u),children:jsxRuntimeExports.jsx("span",{style:{backgroundColor:`${u}`}})},u+Date.now()))})]})})}),jsxRuntimeExports.jsxs("div",{className:"popup--buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary",onClick:n,children:jsxRuntimeExports.jsx("span",{children:t("webbuilder.cancel")})}),jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__primary ${f?"disabled":""}`,onClick:f?null:()=>{o("click-ui"),e(d)},children:t("webbuilder.save")})]})]})})}PopupColorComponent.defaultProps={closingAction:()=>{},onSave:()=>{},colors:{}};PopupColorComponent.propTypes={closingAction:PropTypes.func,onSave:PropTypes.func,colors:PropTypes.arrayOf(PropTypes.string)};function PopupImageComponent({images:l,onSave:e,closingAction:n,translate:t,soundActions:s}){const[o]=s,[d,h]=React$2.useState(),f=!d;return jsxRuntimeExports.jsx("div",{className:"folder-popup",children:jsxRuntimeExports.jsxs("div",{className:"folder-popup__content",children:[jsxRuntimeExports.jsxs("div",{className:"folder-popup__header",children:[jsxRuntimeExports.jsx("div",{}),jsxRuntimeExports.jsxs("div",{className:"folder-popup__title",children:[jsxRuntimeExports.jsx("span",{className:"folder-popup__icon-header icon-fb-search"}),jsxRuntimeExports.jsx("span",{children:t("webbuilder.imageSelect.title")})]}),jsxRuntimeExports.jsx("button",{onClick:n,className:"folder-popup__close",type:"button",children:jsxRuntimeExports.jsx("span",{className:"icon-close-fit"})})]}),jsxRuntimeExports.jsxs("div",{className:"folder-popup__body",children:[jsxRuntimeExports.jsx("div",{className:"folder-popup__scroll",children:jsxRuntimeExports.jsx("ul",{className:"folder-popup__list",children:l.map(u=>jsxRuntimeExports.jsxs("li",{className:"folder-item-file",children:[jsxRuntimeExports.jsx("div",{className:"folder-item-file__imagewrap",onClick:()=>h(u),onKeyUp:()=>{},role:"button",tabIndex:0,children:jsxRuntimeExports.jsx("img",{alt:u.src,src:path+u.src})}),jsxRuntimeExports.jsx("div",{className:"folder-item-file__title",title:u.src,children:u.src})]},u.src+Date.now()))})}),jsxRuntimeExports.jsxs("div",{className:"folder-popup__buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary",onClick:n,children:t("webbuilder.cancel")}),jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__primary ${f?"disabled":""}`,onClick:f?null:()=>{o("click-ui"),e(d.src)},children:t("webbuilder.open")})]})]})]})})}PopupImageComponent.defaultProps={closingAction:()=>{},onSave:()=>{},images:[]};function Selected({item:l,translate:e}){return l instanceof Object?e(l.title.toString()):jsxRuntimeExports.jsx("span",{children:e(l||"webbuilder.textSelect.title")})}function PopupTextComponent({closingAction:l,onSave:e,options:n,translate:t,soundActions:s}){const[o]=s,[d,h]=React$2.useState(""),f=d==="",[u,p]=React$2.useState(!1),_=u?"puzzle--webBuilder__select--item open":"puzzle--webBuilder__select--item",R=()=>{p(!u)};return jsxRuntimeExports.jsx("div",{className:"popup--layer",children:jsxRuntimeExports.jsxs("div",{className:"popup",children:[jsxRuntimeExports.jsx("div",{className:"popup--info",children:jsxRuntimeExports.jsx("span",{className:"popup--info__item",children:jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder__select",children:[jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__select--label",children:jsxRuntimeExports.jsx("div",{dir:"auto",children:t("webbuilder.textSelect.title")})}),jsxRuntimeExports.jsxs("div",{dir:"auto",className:_,onClick:()=>R(),role:"presentation",children:[jsxRuntimeExports.jsx(Selected,{item:d,translate:t}),jsxRuntimeExports.jsx("span",{className:"icon-down-arrow"}),jsxRuntimeExports.jsx("div",{className:"puzzle--webBuilder__dropdown",children:n.map(y=>y instanceof Object?jsxRuntimeExports.jsxs("span",{role:"button",tabIndex:0,onKeyUp:()=>{},className:"puzzle--webBuilder__dropdown--option",onClick:()=>{h(y)},children:[jsxRuntimeExports.jsx("span",{children:t(y.title)}),jsxRuntimeExports.jsx("span",{className:"subtitle",children:t(y.desc)})]},y.title):jsxRuntimeExports.jsx("span",{role:"button",tabIndex:0,onKeyUp:()=>{},className:"puzzle--webBuilder__dropdown--option",onClick:()=>{h(y)},children:t(y)},y))})]})]})})}),jsxRuntimeExports.jsxs("div",{className:"popup--buttons",children:[jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary",onClick:l,children:t("webbuilder.cancel")}),jsxRuntimeExports.jsx("button",{type:"button",className:`gat--btn gat--btn__primary ${f?"disabled":""}`,disabled:f,onClick:()=>{o("click-ui"),e(d)},children:t("webbuilder.save")})]})]})})}const POPUPS=Object.freeze(Object.defineProperty({__proto__:null,PopupColorComponent,PopupImageComponent,PopupTextComponent},Symbol.toStringTag,{value:"Module"})),defaultHeader={username:null,logo:null,userImage:null,bgImage:null,color:""},defaultBody={bankTitle:null,color:"",btnColor:"",work:null,home:null,mail:null,studies:null,bgImage:null};function PopupComponent({type:l,close:e,translate:n,soundActions:t,...s}){const o=POPUPS[l];return o?jsxRuntimeExports.jsx(o,{type:l,...s.props,closingAction:e,translate:n,soundActions:t}):null}function DisplayingFeedback({feed:l,resolved:e,translate:n,onNext:t}){return l==="success"?jsxRuntimeExports.jsx(FeedbackResult,{success:!0,showButton:!e,onNext:t,translate:n}):l==="failed"?jsxRuntimeExports.jsx(FeedbackResult,{onNext:t,translate:n}):null}function WebBuilderPuzzleComponent({type:l,info:e,emitEvent:n,getEvent:t,setResolveAction:s,soundActions:o,disableExit:d,keyboardControl:h}){const[f,u]=React$2.useState(!1),[p,_]=React$2.useState(!1),[R,y]=React$2.useState(!1),[S,g]=React$2.useState(!1),[x,b]=React$2.useState(!1),[T,v]=React$2.useState(null),w=l==="facebook",C=w?FacebookTemplate:BankTemplate,[D,N]=React$2.useState({type:"",props:{}}),[P,k]=React$2.useState(defaultHeader),[F,M]=React$2.useState(defaultBody),[j]=o,U=W=>t({type:"translate",payload:W}),B=()=>{N({type:"",props:{}})},X=(W,V={})=>{N({type:W,props:V})},re=()=>{if(e.solution){const{rewards:W}=e.solution.right,{rewards:V}=e.solution.wrong;j(R?"fail":"score"),n({type:"addPoints",complex:!0,finish:!0,payload:R?V:W}),n({type:"passPuzzle"})}},se=h({disabled:T!=="success",forward:re,escape:re});React$2.useEffect(()=>se(),[se]);const Z=(W,V)=>{const z=Object.keys(W),Y={existing:0,equal:0};return z.forEach(ie=>{V[ie]!==null&&V[ie]!==""&&(Y.existing+=1),W[ie]===V[ie]&&(Y.equal+=1)}),Y},K=(W,V)=>{const z=Object.keys(C.header).length,Y=Object.keys(C.body).length,ie=Z(C.header,W),le=Z(C.body,V),fe=le.existing+ie.existing===z+Y,ce=le.equal+ie.equal===z+Y;return{exist:fe,equal:ce}},te=()=>{j("click-ui");const{exist:W,equal:V}=K(P,F);n({type:"hidePuzzleButtons",payload:!0}),W&&!V?(x&&b(!1),v("failed"),y(!0),n({type:"failPuzzle"})):W&&V&&(x&&(d(!1),b(!1)),g(!0),v("success"))},ue=W=>{if(Object.keys(W).length>0){const V={...P,...W};k(V),B();const{exist:z}=K(V,F);b(!!z)}},me=W=>{if(Object.keys(W).length>0){const V={...F,...W};M(V),B();const{exist:z}=K(P,V);b(!!z)}};React$2.useEffect(()=>{s(W=>{_(!0),v("success"),u(!1),setTimeout(()=>{v(""),W()},4e3)}),d(!0)},[s,d,e.resolve.rewards,n]);const J={showingReference:f||p,isFacebook:w,openPopup:X,usingTemplate:C,translate:U},H=()=>{T==="failed"?(v(null),n({type:"hidePuzzleButtons",payload:!1})):T==="success"&&re()};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(PopupComponent,{type:D.type,...D,close:B,soundActions:o,translate:U}),jsxRuntimeExports.jsxs("div",{className:"puzzle--webBuilder",children:[jsxRuntimeExports.jsx(WebBuilderTopBar,{backActive:f,displayButton:!p&&!S,translate:U,clickAction:()=>{j("click-ui"),u(!f)}}),jsxRuntimeExports.jsx(WebBuilderHeader,{...J,header:P,onSave:ue}),w?jsxRuntimeExports.jsx(WebBuilderFront,{...J,header:P,onSave:ue}):null,jsxRuntimeExports.jsx(WebBuilderBody,{...J,body:F,onSave:me})]}),!x&&!f?jsxRuntimeExports.jsx(DisplayingFeedback,{feed:T,onNext:H,resolved:p,translate:U}):null,x&&!f?jsxRuntimeExports.jsx(PublishButton,{onPublish:te,translate:U}):null]})}function CardImage({img:l}){const n=(l||{}).url;return jsxRuntimeExports.jsx("img",{src:n,alt:""})}function CardText({text:l,hasImage:e}){return l?jsxRuntimeExports.jsx("div",{className:`card-selector-item__textbox ${e?"":"card-selector-item__textbox--noimage"}`,children:jsxRuntimeExports.jsx("div",{className:"card-selector-item__text",children:HTMLReactParser$1(l)})}):null}function CardNumber({order:l}){return l?jsxRuntimeExports.jsx("div",{className:"card-selector-item__order",children:jsxRuntimeExports.jsx("div",{children:l})}):null}function CardSuccess({order:l}){return jsxRuntimeExports.jsxs("div",{className:"card-selector-item__feedback card-selector-item__feedback--success ",children:[jsxRuntimeExports.jsx(CardNumber,{order:l}),jsxRuntimeExports.jsx("div",{className:"card-selector-item__feedbackicon",children:jsxRuntimeExports.jsx("div",{className:"icon-check-circle-black"})})]})}function CardFail(){return jsxRuntimeExports.jsx("div",{className:"card-selector-item__feedback card-selector-item__feedback--error",children:jsxRuntimeExports.jsx("div",{className:"card-selector-item__feedbackicon",children:jsxRuntimeExports.jsx("div",{className:"icon-error-circle-black"})})})}function CardContainer({flipped:l,correct:e,order:n,wrongOrder:t,isEmpty:s}){return!s&&l&&e&&!t?jsxRuntimeExports.jsx(CardSuccess,{order:n}):!s&&l?jsxRuntimeExports.jsx(CardFail,{}):null}function Card({card:l,handleClick:e,flipped:n,cardIndex:t,wrongOrder:s}){const o=()=>!(l.img||l.text),d=()=>!!(n&&!l.correct||!n);return jsxRuntimeExports.jsxs("button",{"data-testid":`card-${t}`,type:"button",order:l.order,onClick:()=>{!o()&&d()&&e(t)},className:["unset-button card-selector-item",o()&&"card-selector-item--empty",(l.textWithBackground||l.textWithBackground===void 0)&&"card-selector-item--text-with-background",l.verticalAlignmentText&&`card-selector-item--with-text-at-${l.verticalAlignmentText}`].filter(Boolean).join(" "),"aria-label":l.text?l.text:null,children:[l.img&&jsxRuntimeExports.jsx(CardImage,{img:l.img}),l.text&&jsxRuntimeExports.jsx(CardText,{text:l.text,hasImage:!!l.img}),jsxRuntimeExports.jsx(CardContainer,{isEmpty:o(),flipped:n,wrongOrder:s,order:l.order,correct:l.correct})]})}Card.defaultProps={handleClick:()=>{},documentsDict:{},card:{},flipped:!1,wrongOrder:!1,cardIndex:0};Card.propTypes={wrongOrder:PropTypes.bool,handleClick:PropTypes.func,cardIndex:PropTypes.number,flipped:PropTypes.bool,documentsDict:PropTypes.shape({}),card:PropTypes.shape({correct:PropTypes.bool,order:PropTypes.number,text:PropTypes.string,imgId:PropTypes.string,status:PropTypes.string})};function Board({cards:l,currentOrder:e,setCurrentOrder:n,handleError:t,feedbackIsShown:s,resolvePuzzle:o,soundActions:d,onFinish:h,handleSuccess:f,resolveWithAnyCard:u}){const[p,_]=React$2.useState(Array(l.length).fill(!1)),[R,y]=React$2.useState(Array(l.length).fill(!1)),[S,g]=React$2.useState(0),[x,b]=React$2.useState(!1),[T]=d,v=l.filter(M=>M.correct===!0).length,w=l.filter(M=>M.order).length>0,C=React$2.useCallback(()=>{_(Array(l.length).fill(!1)),y(Array(l.length).fill(!1)),g(0),n(1)},[l.length,n]),D=()=>{setTimeout(()=>{C()},1e3)};function N(M,j=M){const U=Array.from(p);U[M]=j,_(U)}const P=React$2.useCallback(()=>{const M=[];l.forEach((j,U)=>{j.correct===!0&&M.push(U)}),_(M)},[l]);React$2.useEffect(()=>{o&&P()},[P,o]),React$2.useEffect(()=>{(u&&S||S===v&&v>0)&&(h(),b(!0),g(0))},[S,h,v,u]);const k=M=>{N(M),f(l[M].id||null),g(S+1)},F=M=>{var j,U;if(!x&&!s)if(T("click-ui"),l[M].correct&&!w)k(M);else if(w){if(l[M].order===e)n(e+1),k(M);else if(N(M),l[M].order!==e){const B=Array.from(R);B[M]=M,y(B),t(((j=l[M])==null?void 0:j.id)||null,l[M].correct),D()}}else t(((U=l[M])==null?void 0:U.id)||null),N(M),setTimeout(()=>{N(M,!1)},1e3)};return jsxRuntimeExports.jsx("div",{className:`cards-selector__content cards-selector__content-${l.length}`,children:l&&l.map((M,j)=>jsxRuntimeExports.jsx(Card,{setCurrentOrder:n,card:M,handleClick:()=>F(j),flipped:p.includes(j),wrongOrder:R.includes(j),cardIndex:j},`cardPuzzle ${l.indexOf(M)}`))})}Board.defaultProps={setCurrentOrder:()=>{},handleError:()=>{},onFinish:()=>{},handleSuccess:()=>{},documentsDict:{},cards:[],currentOrder:1,resolvePuzzle:!1,feedbackIsShown:!1,resolveWithAnyCard:!1};function CardsSelectorPuzzleComponent({emitEvent:l,getEvent:e,info:n,cards:t,resolveWithAnyCard:s,specificFeedbacks:o,disableExit:d,setResolveAction:h,soundActions:f,backgroundImage:u,nodeId:p,keyboardControl:_,hideBackgroundImageTheme:R=!1}){var H,W;const[y,S]=React$2.useState(!1),[g,x]=React$2.useState(1),[b,T]=React$2.useState(!1),[v,w]=React$2.useState(!1),[C,D]=React$2.useState(!1),[N,P]=React$2.useState([]),[k,F]=React$2.useState(!1),[M,j]=React$2.useState(""),[U]=f,B=V=>e({type:"translate",payload:V}),X=`cards-selector-puzzle_${p}`,re=React$2.useCallback(V=>{T(!1),D(!1),l({type:"hidePuzzleButtons",payload:!1}),l({type:"addPoints",complex:!0,finish:!0,payload:V}),l({type:"passPuzzle"})},[l]),se=React$2.useCallback(()=>{var ie,le;l({type:"hidePuzzleButtons",payload:!0}),T(!0);const{rewards:V}=((ie=n==null?void 0:n.solution)==null?void 0:ie.right)||{},z=((le=o==null?void 0:o.correctFeedbacks)==null?void 0:le.map(fe=>fe.rewards).flat())||[],Y=[...N,...V,...z];U("score"),re(Y)},[N,re,l,(H=n==null?void 0:n.solution)==null?void 0:H.right,U,o==null?void 0:o.correctFeedbacks]),Z=()=>{S(!0),n.solution.right.desc&&!(o!=null&&o.specificCorrectFeedbacks)&&j(n.solution.right.desc),D(!0)},K=()=>{b||y?se():(T(!1),d(!1),D(!1),l({type:"hidePuzzleButtons",payload:!1})),j("")},te=V=>{if(w(!0),o!=null&&o.specificCorrectFeedbacks){const z=o.correctFeedbacks.find(Y=>Y.id===V);z!=null&&z.desc&&(j(z.desc),D(!0))}U("score"),l({type:"hidePuzzleButtons",payload:!0})},ue=(V,z=!1)=>{var Y,ie;if(w(!1),z)j((Y=n.orderFeedback)==null?void 0:Y.desc),D(!0),P([...N,...((ie=n.orderFeedback)==null?void 0:ie.rewards)||[]]);else if(o!=null&&o.specificWrongFeedbacks){const le=o.wrongFeedbacks.find(fe=>fe.id===V);le!=null&&le.desc?(j(le.desc),D(!0)):(D(!0),setTimeout(()=>{K(),l({type:"hidePuzzleButtons",payload:!1})},2e3)),P([...N,...(le==null?void 0:le.rewards)||[]])}else n.solution.wrong.desc?(j(n.solution.wrong.desc),D(!0)):(D(!0),setTimeout(()=>{K(),l({type:"hidePuzzleButtons",payload:!1})},3e3));d(!0),!(o!=null&&o.specificWrongFeedbacks)&&!z&&P([...N,...n.solution.wrong.rewards]),U("fail"),l({type:"hidePuzzleButtons",payload:!0}),l({type:"failPuzzle"})};React$2.useEffect(()=>{y&&d(!0)},[d,y]),React$2.useEffect(()=>{h(()=>{var z;l({type:"hidePuzzleButtons",payload:!0}),F(!0);const V=[...N,...((z=n==null?void 0:n.resolve)==null?void 0:z.rewards)||{}];setTimeout(()=>{T(!1),D(!1),l({type:"hidePuzzleButtons",payload:!1}),l({type:"puzzleAction",action:"resolve",payload:{element:X,rewards:V,finish:!0}})},2e3)})},[h,d,N,(W=n==null?void 0:n.resolve)==null?void 0:W.rewards,l,X]);const me=React$2.useMemo(()=>{let V="";return V="cards-selector",u!=null&&u.url&&(V+=" cards-selector--with-custom-bg"),R&&(V+=" disable-background-image"),V},[u==null?void 0:u.url,R]),J={backgroundImage:u!=null&&u.url?`url('${u.url}')`:""};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:me,style:J,children:jsxRuntimeExports.jsx(Board,{setCurrentOrder:x,currentOrder:g,cards:t,onFinish:Z,resolveWithAnyCard:s,handleError:ue,feedbackIsShown:C,resolvePuzzle:k,soundActions:f,handleSuccess:te})}),C&&jsxRuntimeExports.jsx(FeedbackComponent$1,{success:b||v,text:M,hasTimeout:!M,translate:B,functionOnClose:K,keyboardControl:_})]})}CardsSelectorPuzzleComponent.defaultProps={cards:[],info:{},resolveWithAnyCard:!1,backgroundImage:{url:""}};function Fakecursor(){return jsxRuntimeExports.jsx("span",{className:"fakecursor",children:"|"})}function FixedComponent({delay:l,index:e,length:n,textToPrint:t,setDoneTyping:s,nextParagraphType:o,isWriting:d}){const[h,f]=React$2.useState(!0),[u,p]=React$2.useState(""),[_,R]=React$2.useState(!1);React$2.useEffect(()=>{R(e===n-1)},[e,n]);const y=b=>{if(!b||!b.length)return"";const T=b.replace(/<script.*?>.*?<\/script>/gim,""),v=document.createElement("DIV");return v.innerHTML=T,v.textContent||v.innerText||""};React$2.useEffect(()=>{const b=()=>{const v=t.trim().split(" ");return T(v,v.length-1).join(" ")},T=(v,w)=>{if(w<0)return[""];const C=[...v];if(y(v[w]).length!==0){const D=v[w];return C[w]=`<span class="lastWord" >${D}</span>`,C}return T(v,w-1)};o==="election"?p(b()):setTimeout(()=>{p(t)},200)},[o,t]);const S=()=>{s(!0),f(!1)},g=t.split("<p>");g.shift();const x=g.length>1;return h&&t!==""&&u!==""?jsxRuntimeExports.jsx("span",{className:`writer-inline ${x?"multiple":""} ${_?"Typist":""}`,"data-testid":`result-${e}`,children:jsxRuntimeExports.jsx(Typist,{startDelay:300,avgTypingDelay:l,stdTypingDelay:10,onCharacterTyped:d,onTypingDone:S,cursor:{hideWhenDone:!0,hideWhenDoneDelay:200},blink:!0,children:HTMLReactParser$1(t)})}):jsxRuntimeExports.jsxs("span",{className:`writer-inline ${x?"multiple":""} ${_?"Typist":""}`,"data-testid":`result-${e}`,children:[HTMLReactParser$1(u),o==="election"&&_&&jsxRuntimeExports.jsx(Fakecursor,{})]})}FixedComponent.defaultProps={delay:0,textToPrint:"",setDoneTyping:()=>{},nextParagraphType:"",isWriting:()=>{}};function SingleElection({option:l,decisionInspected:e,setCurrentDecisionSelected:n,index:t,setCurrentDecisionInspected:s,soundActions:o}){const[d]=o,h=R=>R.previewText!==""?HTMLReactParser$1(R.previewText):HTMLReactParser$1(R.fullText),f=R=>R.previewText!==""?e===t?"icon-eye inspected":"icon-eye":"",u=()=>{d("click-ui"),n(t)},p=R=>{R.keyCode===13&&_(R)},_=R=>{R.preventDefault(),R.stopPropagation(),e===t?(R.target.style.background="",s("")):s(t)};return jsxRuntimeExports.jsxs("div",{className:"single-election",children:[jsxRuntimeExports.jsxs("button",{className:"single-election__cta",type:"button",onClick:()=>u(),children:[jsxRuntimeExports.jsx("div",{className:"single-election__btn",children:jsxRuntimeExports.jsx("span",{children:h(l)})}),jsxRuntimeExports.jsx("div",{onClick:_,onKeyDown:p,className:f(l),"aria-label":"Inspect",role:"button",tabIndex:0})]}),e===t&&jsxRuntimeExports.jsx("div",{className:"single-election__complete",children:jsxRuntimeExports.jsx("div",{children:HTMLReactParser$1(l.fullText)})})]})}SingleElection.defaultProps={setCurrentDecisionSelected:()=>{},setCurrentDecisionInspected:()=>{},option:{},index:0};function SingleElectionRender({decisionInspected:l,opt:e,index:n,setCurrentDecisionSelected:t,setCurrentDecisionInspected:s,soundActions:o}){return e&&e.fullText&&e.fullText!==""?jsxRuntimeExports.jsx(SingleElection,{decisionInspected:l,setCurrentDecisionSelected:t,setCurrentDecisionInspected:s,option:e,soundActions:o,index:n}):null}function ElectionComponent({textWithOpts:l,setCurrentDecisionSelected:e,printed:n,soundActions:t}){const[s,o]=React$2.useState("");return React$2.useEffect(()=>{n()},[n]),jsxRuntimeExports.jsx("div",{className:`elections-box pos${s+1}-${l.filter(d=>!!d.fullText).length}`,children:l&&l.map((d,h)=>jsxRuntimeExports.jsx(SingleElectionRender,{opt:d,soundActions:t,index:h,setCurrentDecisionSelected:e,setCurrentDecisionInspected:o,decisionInspected:s},h))})}ElectionComponent.defaultProps={textWithOpts:[],setCurrentDecisionSelected:()=>{},printed:()=>{}};function FeedbackElement({decision:l}){const{title:e,body:n}=l.feedback;return jsxRuntimeExports.jsx("div",{children:n!==""&&jsxRuntimeExports.jsxs("div",{className:"writer-feedback-decision-item",children:[e&&jsxRuntimeExports.jsxs("div",{dir:"auto",className:"writer-feedback-decision-item__title",children:[e," "]}),n&&jsxRuntimeExports.jsxs("div",{dir:"auto",className:"writer-feedback-decision-item__message",children:[l.correct?jsxRuntimeExports.jsx("span",{className:"icon-check-circle-black color--success"}):jsxRuntimeExports.jsx("span",{className:"icon-error-circle-black color--error"}),jsxRuntimeExports.jsx("span",{children:n})]})]})})}FeedbackElement.defaultProps={decision:{}};function FeedbackComponent({getEvent:l,closingAction:e,feedbackIsDone:n,decisionsList:t,texts:s,retryAction:o,retry:d,skip:h,checkCorrect:f,rewardsStack:u,setFailed:p,soundActions:_}){const[R]=_,y=g=>l({type:"translate",payload:g}),S=()=>{R("click-ui"),e(),p(),n()};return jsxRuntimeExports.jsxs("div",{className:`writer-feedback ${u.length?"":"start"}`,children:[jsxRuntimeExports.jsx("div",{className:"writer-feedback__title",children:y("puzzles.feedback")}),jsxRuntimeExports.jsx("div",{className:"writer-feedback__decisions",children:t.map(g=>s[g.currenTextParagraph].electionTexts[g.index].feedback.body?jsxRuntimeExports.jsx(FeedbackElement,{decision:s[g.currenTextParagraph].electionTexts[g.index]},g.index):null)}),jsxRuntimeExports.jsxs("div",{className:"writer-feedback__btns",children:[h&&jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__secondary writer-feedback__btn-mobile",onClick:()=>{S()},children:y("puzzles.skip")}),d&&jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary writer-feedback__btn-mobile",onClick:()=>{f()?S():(R("click-ui"),o())},children:y(f()?"puzzles.continue":"puzzles.retry")}),!d&&jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary writer-feedback__btn-mobile",onClick:()=>S(),children:y("puzzles.continue")})]})]})}FeedbackComponent.defaultProps={emitEvent:()=>{},closingAction:()=>{},feedbackIsDone:()=>{},decisionsList:[],texts:[],retryAction:()=>{},retry:!1,skip:!1,checkCorrect:()=>{},nodeId:"0"};function FinishedTextComponent({textToPrint:l,correct:e}){const n=l.split("<p>");n.shift();const t=n.length>1;return jsxRuntimeExports.jsx("span",{className:`writer-inline ${t?"multiple":""} ${e}`,children:HTMLReactParser$1(l)})}FinishedTextComponent.defaultProps={correct:"",textToPrint:""};function WriterPuzzleComponent({emitEvent:l,getEvent:e,styles:n,nodeId:t,retry:s,skip:o,type:d,info:h,setResolveAction:f,documentTitle:u,documentTitle_labelId:p,texts:_,soundActions:R,backgroundImage:y,hideBackgroundImageTheme:S=!1}){const g=qe=>e({type:"translate",payload:qe}),x=React$2.useRef(),[b,T]=React$2.useState(!1),[v,w]=React$2.useState(!1),[C,D]=React$2.useState(0),[N,P]=React$2.useState({[`text_${C}`]:{..._[C],id:`text_${C}`,correct:""}}),[k,F]=React$2.useState(!1),[M,j]=React$2.useState([]),[U,B]=React$2.useState(!1),[X,re]=React$2.useState(!1),[se,Z]=React$2.useState(!1),[K,te]=React$2.useState(!0),[ue,me]=React$2.useState([]),[J,H]=React$2.useState(!0),[W]=R,V=React$2.useRef({}),z=qe=>{let ct;return qe.electionTexts.forEach((Be,ot)=>{Be.correct&&(ct=ot)}),ct},Y=React$2.useCallback(qe=>M.filter(Be=>Be.currenTextParagraph===qe)[0].fullText_labelId,[M]),ie=React$2.useCallback(()=>_.map((qe,ct)=>{if(qe.type==="fixed")return qe.fullText_labelId??qe.fullText;if(qe.type==="election"){const Be=z(qe);return Be>=0?qe.electionTexts[Be].fullText_labelId:Y(ct)}return""}),[Y,_]),le=12,fe=()=>{if(M){const qe=M.length;let ct=0;for(let Be=0;Be<qe;Be+=1)M[Be].isCorrect==="none"&&(ct+=1);return ct===qe}return!0},ce=React$2.useCallback(()=>{if(M){const qe=M.length;let ct=0;for(let Be=0;Be<qe;Be+=1)M[Be].isCorrect==="green"&&(ct+=1);return ct===qe}return!0},[M]),ge=()=>!!(M&&M.length),Se=()=>M.find(qe=>{const{feedback:ct}=_[qe.currenTextParagraph].electionTexts[qe.index];return ct.body!==""}),Ae=React$2.useCallback(()=>{const qe=ie();l({type:"finishMedia",payload:{name:p,text:qe,documentType:d,type:"text"}})},[ie,p,l,d]),Fe=React$2.useCallback(qe=>{const ct=ce();W(v?"fail":ct?"score":"fail"),l({type:"addPoints",complex:!0,finish:!0,payload:qe||ue,onFinish:d!=="view"?Ae:null}),l({type:"passPuzzle"})},[ce,l,v,Ae,W,ue,d]);React$2.useEffect(()=>{b&&H(!1),f(()=>{Fe(h.resolve.rewards)})},[l,Fe,b,Ae,h.resolve.rewards,f,d]);const De=()=>{T(!1),D(0),j([]),me([]),w(!1),Z(!1),F(!1),re(!1),B(!1),P({text_0:{..._[0],id:"text_0",correct:""}}),te(!0),l({type:"addPoints",complex:!0,finish:!1,payload:ue}),l({type:"failPuzzle"})},Je=()=>{ge()?fe()&&(B(!0),Fe()):(B(!0),Z(!0),Fe()),U?(te(!1),se&&!X?re(!0):(X||!se&&!X)&&(!se&&!X&&s?ce()?Fe():De():Fe())):(B(!0),Se()&&Z(!0))},ut=()=>{const qe=_[C].electionTexts.filter(Be=>Be.correct).length,ct=_[C].electionTexts;return qe===0||qe===ct},et=qe=>{const ct=_[C].electionTexts[qe],Be=ct.feedback.rewards;Be&&Be[0]&&Be[0].points&&(V.current[`t${C}_e${qe}`]||(ct.correct&&(V.current[`t${C}_e${qe}`]=!0),me([...ue,...Be])));const ot=()=>ut()?"none":ct.correct?"green":"red",ft={currenTextParagraph:C,fullText:ct.fullText,index:qe,isCorrect:ot()};P({...N,[`text_${C}`]:{type:"fixed",fullText:ct.fullText,correct:ft.isCorrect}}),j([...M,ft])},xt=()=>{x.current.scrollTop=x.current.scrollHeight+100},Ve=()=>{if(x.current.querySelector(".wrapfixed").offsetHeight>x.current.offsetHeight){const qe=x.current.querySelector(".wrapfixed").offsetHeight;x.current.scrollTo({top:qe,behavior:"smooth"})}},Me=(qe,ct,Be)=>{const ot=qe.fullText,ft=_[Be+1]?_[Be+1].type:"",Ge=N[`text_${Be+1}`]&&N[`text_${Be+1}`].type?N[`text_${Be+1}`].type:ft;return jsxRuntimeExports.jsx(FixedComponent,{length:ct,doneTyping:k,index:Be,delay:le,setDoneTyping:F,nextParagraphType:Ge,isWriting:Ve,textToPrint:ot},Be.toString())},Le=(qe,ct)=>{const Be=qe.fullText;return jsxRuntimeExports.jsx(FinishedTextComponent,{textToPrint:Be,correct:qe.correct},ct)},Ye=qe=>jsxRuntimeExports.jsx(ElectionComponent,{soundActions:R,textWithOpts:qe.electionTexts,setCurrentDecisionSelected:et,printed:xt,disableExit:J},qe.electionTexts),ke=(qe,ct,Be)=>qe.type==="fixed"?Me(qe,ct,Be):Ye(qe);React$2.useEffect(()=>{k===!0&&(()=>{_[C+1]?(P({...N,[`text_${C+1}`]:{..._[C+1],id:`text_${C+1}`,correct:""}}),D(C+1),F(!1)):T(!0)})()},[k,C,N,_]);const Qe=React$2.useMemo(()=>{let qe=`writer-puzzle writer-puzzle--${n}`;return S&&(qe+=" disable-background-image"),qe},[S,n]),bt={backgroundImage:y!=null&&y.url?`url('${y.url}')`:""};return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("div",{className:Qe,style:bt,children:jsxRuntimeExports.jsxs("div",{className:"writer-puzzle__overlay",children:[X&&jsxRuntimeExports.jsx(FeedbackComponent,{getEvent:e,texts:_,setFailed:()=>w(!0),decisionsList:M,closingAction:Je,retry:s,skip:o,checkCorrect:ce,retryAction:De,rewardsStack:ue,nodeId:t,soundActions:R}),!X&&jsxRuntimeExports.jsxs("div",{className:"writer-puzzle__container",children:[jsxRuntimeExports.jsx("div",{dir:"auto",className:"writer-puzzle__title",children:u!==""&&u}),jsxRuntimeExports.jsx("div",{className:"writer-puzzle__body",dir:LangIsRtl()?"rtl":"auto",children:jsxRuntimeExports.jsxs("div",{className:"writer-puzzle__scroll",tabIndex:0,style:{overflowX:"hidden",padding:"0 0 20px 0",height:"95%"},ref:x,children:[jsxRuntimeExports.jsx("div",{className:"wrapfixed",children:K&&!U&&Object.values(N).map((qe,ct)=>ke(qe,Object.values(N).length-1,ct))}),U&&Object.values(N).map((qe,ct)=>Le(qe,ct))]})}),b&&jsxRuntimeExports.jsx("div",{className:"writer-puzzle__footer",children:jsxRuntimeExports.jsx("button",{type:"button",className:"gat--btn gat--btn__primary",onClick:Je,children:g("screens.continue")})})]})]})})})}WriterPuzzleComponent.defaultProps={emitEvent:()=>{},info:{},styles:"",nodeId:"0",retry:!1,skip:!1,type:"",documentTitle:"",texts:[]};function Image$1({document:l,name:e,isWallpaper:n}){const t=(l==null?void 0:l.url)||null;return jsxRuntimeExports.jsx("div",{className:`puzzle--terminal__image ${n?"puzzle--terminal__image--wallpaper":""}`,children:t?jsxRuntimeExports.jsx("img",{src:t,alt:e||""}):null})}const ICONS$1={image:"image-icon",video:"video-icon",embedded_video:"video-icon",pdf:"pdf-icon",terminal:"console-icon",cracker:"cracker-icon",folder:"folder-icon",world:"world-icon"};function Visor({file:l,solution:e,showContinue:n,info:t,resolvePuzzle:s,backFile:o,translate:d,soundActions:h,keyboardControl:f}){var T;const{fileId:u}=l,p=((T=l.document)==null?void 0:T.url)||"",[_]=h,R={image:{component:Image$1,props:{...l,url:p,soundActions:h}},video:{component:VideoVisor,props:{...l,url:p,endVideo:s,soundActions:h,translate:d}},embedded_video:{component:VideoVisor,props:{...l,url:p,soundActions:h}},pdf:{component:PdfVisor,props:{...l,url:p,translate:d,soundActions:h,emitNumberOfPages:()=>{},endPdf:()=>{},keyboardControl:f}},application:{component:PdfVisor,props:{...l,url:p,translate:d,soundActions:h,emitNumberOfPages:()=>{},keyboardControl:f,endPdf:()=>{}}}};if(!R[l.type])return null;const y=R[l.type].component,S=R[l.type].props,x=l.name.replace(/.jpg|.png|.pdf|.mp4/gi,""),b=e.fileId;return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsxs("div",{className:"puzzle--terminal__visor",children:[jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:_,shortText:!0,success:u===b,text:u===b?t.solution.right.desc:t.solution.wrong.desc,functionOnClose:u===b?s:o,additionalStyle:ICONS$1[l.type],secondText:x,translate:d,puzzleHeaderClass:"puzzle--terminal__visor--message",keyboardControl:f}),jsxRuntimeExports.jsx("div",{className:"puzzle--terminal__visor--body",children:jsxRuntimeExports.jsx(y,{...S})}),jsxRuntimeExports.jsx("div",{className:"puzzle--terminal__button",children:u===b&&n?jsxRuntimeExports.jsx("button",{className:"gat--btn gat--btn__primary green",type:"button",onClick:s,children:d("screens.continue")}):null})]})})}const ICONS={image:"image-icon",video:"video-icon",embedded_video:"video-icon",pdf:"pdf-icon",terminal:"console-icon",cracker:"cracker-icon",folder:"folder-icon",application:"pdf-icon",world:"world-icon"};function Item({item:l,selectItem:e}){const n=l.name;return jsxRuntimeExports.jsx("li",{className:"puzzle--terminal__folder__list--item",children:jsxRuntimeExports.jsxs("button",{type:"button",title:n,className:`unset-button puzzle--terminal__item id-${l.id}`,onClick:()=>l.fixed?null:e(l),children:[jsxRuntimeExports.jsx("span",{className:`puzzle--terminal__icon ${ICONS[l.type]}`}),jsxRuntimeExports.jsx("span",{children:n})]})})}function FilesGroup({initFile:l,backFile:e,file:n,closeFolder:t,selectItem:s}){return jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:n.id==="init"?jsxRuntimeExports.jsx("ul",{className:"puzzle--terminal__folder__list desktop",children:n.children.map((o,d)=>jsxRuntimeExports.jsx(Item,{selectItem:s,item:o},`${`${d}${o.id}`}`))}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("ul",{className:"puzzle--terminal__folder__list desktop",children:l.children.map((o,d)=>jsxRuntimeExports.jsx(Item,{selectItem:s,item:o},`${d+o.id}`))}),jsxRuntimeExports.jsxs("div",{className:"puzzle--terminal__folder",children:[jsxRuntimeExports.jsxs("div",{className:"puzzle--terminal__folder--head",children:[jsxRuntimeExports.jsx("span",{role:"button",onKeyUp:()=>{},"aria-label":"back file",tabIndex:0,onClick:()=>e(),className:"puzzle--terminal__folder--back",children:jsxRuntimeExports.jsx("span",{className:"icon-back"})}),jsxRuntimeExports.jsx("span",{className:`puzzle--terminal__folder--head__icon ${ICONS[n.type]}`}),jsxRuntimeExports.jsx("span",{className:"text",children:n.name}),jsxRuntimeExports.jsx("span",{role:"button",tabIndex:0,"aria-label":"close folder",onKeyUp:()=>{},onClick:()=>t(),className:"puzzle--terminal__folder--close",children:jsxRuntimeExports.jsx("span",{className:"icon-close"})})]}),jsxRuntimeExports.jsx("div",{className:"puzzle--terminal__folder--body",children:jsxRuntimeExports.jsx("ul",{className:"puzzle--terminal__folder__list",children:n.children.map((o,d)=>jsxRuntimeExports.jsx(Item,{selectItem:s,item:o},`${d+o.id}`))})})]})]})})}const DEFAULT_IMG="https://min.gamelearn.io/css-resources/gamelearn/resources/cosmos-bg-min.jpg",FIXED_ITEMS=[{fileId:"ids1",type:"world",fixed:!0,name:"Web builder 3.0"},{fileId:"ids2",type:"cracker",fixed:!0,name:"Decoder.exe"},{fileId:"ids3",type:"terminal",fixed:!0,name:"terminal"}];function TerminalPuzzleComponent({emitEvent:l,getEvent:e,items:n,backgroundImage:t,solution:s,info:o,disableExit:d,soundActions:h,setResolveAction:f,nodeId:u,keyboardControl:p}){const[_,R]=React$2.useState({}),[y]=React$2.useState(!1),[S,g]=React$2.useState([]),x=React$2.useRef([]),[b]=h,T=F=>e({type:"translate",payload:F}),v=`terminal-puzzle_${u}`,w=React$2.useMemo(()=>({name:"init",children:[...FIXED_ITEMS,...n],id:"init"}),[n]),C=React$2.useCallback(F=>{b("click-ui"),R(F),g([...S,F]),F.type!=="folder"&&(l({type:"hidePuzzleButtons",payload:!0}),d(!0))},[S,d,l,b]);React$2.useEffect(()=>{R(w),g([w])},[w]),React$2.useEffect(()=>{f(()=>{x.current=[...x.current,...o.resolve.rewards];const F=x.current.map(M=>{var se;const{name:j,points:U,type:B,id:X}=M,re={name:j,points:U,type:B,id:X};return(se=M==null?void 0:M.document)!=null&&se.resourceId&&(re.id=M.document.resourceId),re});l({type:"hidePuzzleButtons",payload:!1}),l({type:"puzzleAction",action:"resolve",payload:{element:v,rewards:F,finish:!0}})})},[f,o.resolve.rewards,l,v]);const D=()=>{x.current=[...x.current,...o.solution.wrong.rewards];const F=S.length-1,M=S.filter((j,U)=>F>U);R(S[F-1]),g(M),d(!1),l({type:"hidePuzzleButtons",payload:!1})},N=()=>{b("click-ui");const F=S[0];R(F),g([F])},P=()=>{x.current=[...x.current,...o.solution.right.rewards];const F=x.current.map(M=>{var se;const{name:j,points:U,type:B,id:X}=M,re={name:j,points:U,type:B,id:X};return(se=M==null?void 0:M.document)!=null&&se.resourceId&&(re.id=M.document.resourceId),re});l({type:"hidePuzzleButtons",payload:!1}),b("score"),l({type:"addPoints",complex:!0,finish:!0,payload:F}),l({type:"passPuzzle"})},k=(t==null?void 0:t.url)||DEFAULT_IMG;return jsxRuntimeExports.jsx("div",{className:"puzzle--terminal",children:_.children?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(Image$1,{isWallpaper:!0,document:{url:k}}),jsxRuntimeExports.jsx(FilesGroup,{backFile:D,initFile:w,selectItem:C,breadcrumb:S,closeFolder:N,file:_,translate:T})]}):jsxRuntimeExports.jsx(Visor,{soundActions:h,backFile:D,resolvePuzzle:P,info:o,showContinue:!y,solution:s,file:_,translate:T,keyboardControl:p})})}function DragItemPuzzleComponent({area:l,image:e,resolveObject:n,info:t,hasHighlights:s,getEvent:o,consume:d,disableExit:h,emitEvent:f,soundActions:u,keyboardControl:p}){const{solution:_}=t,R=React$2.useRef(),y=React$2.useRef(),S=React$2.useRef(),g=React$2.useRef(),x=React$2.useRef({}),[b,T]=React$2.useState(""),[v,w]=React$2.useState(!1),[C,D]=React$2.useState(),[N]=React$2.useState(new window.Image),P=React$2.useRef([]),[k]=u,F=J=>o({type:"translate",payload:J});React$2.useEffect(()=>{h(b!=="")},[b,h]);const M=(J,H)=>(J.x+J.width>H.x&&J.x+J.width<=H.x+H.width||H.x+H.width>J.x&&H.x+H.width<=J.x+J.width)&&(J.y+J.height>H.y&&J.y+J.height<=H.y+H.height||H.y+H.height>J.y&&H.y+H.height<=J.y+J.height),j=()=>{R&&s&&(R.current.to({duration:.25,opacity:.75}),y.current.to({duration:.25,opacity:.4}))},U=()=>{R&&s&&(R.current.to({duration:.25,opacity:0}),y.current.to({duration:.25,opacity:0}))},B=React$2.useCallback(J=>{let H=!1;if(J){const W=S.current;W.setPointersPositions(J);const V=W.getPointerPosition(),z=R.current.getClientRect({relativeTo:W});H=M({...V,width:1,height:1},z)}return H},[]),X=React$2.useCallback(J=>J&&n.uid===JSON.parse(J).uid,[n.uid]),re=React$2.useCallback(()=>{T(""),f({type:"hidePuzzleButtons",payload:!1}),f({type:"addPoints",complex:!0,finish:!0,payload:P.current}),f({type:"passPuzzle"}),d&&f({type:"consumeItem",payload:{uid:n.uid,targetId:n.uid,name:n.name}})},[d,f,n.name,n.uid]),se=React$2.useCallback(()=>{T("success"),f({type:"hidePuzzleButtons",payload:!0}),P.current=[...P.current,..._.right.rewards],t.solution.right.desc===""?setTimeout(()=>{re()},2e3):re()},[f,re,t.solution.right.desc,_.right.rewards]),Z=React$2.useCallback(()=>{T(""),f({type:"hidePuzzleButtons",payload:!1}),f({type:"failPuzzle"}),P.current=[...P.current,..._.wrong.rewards]},[f,_.wrong.rewards]),K=React$2.useCallback(J=>{const H=J.dataTransfer.getData("item");S.current.setPointersPositions(J);const W=B(J);f({type:"hidePuzzleButtons",payload:!0}),W&&X(H)?(T("success"),t.solution.right.desc===""&&se()):(T("failed"),t.solution.wrong.desc===""&&setTimeout(()=>{Z()},2e3))},[B,X,f,se,Z,t.solution.right.desc,t.solution.wrong.desc]),te=()=>{b==="success"?se():Z()};React$2.useEffect(()=>{const J=e.img.url||"";N.src=J,N.onload=()=>{g.current&&(x.current={x:g.current.clientWidth/2,y:g.current.clientHeight/2,width:N.width,height:N.height,offsetX:N.width/2,offsetY:N.height/2,scale:{x:Math.min(g.current.clientWidth/N.width,g.current.clientHeight/N.height),y:Math.min(g.current.clientWidth/N.width,g.current.clientHeight/N.height)}},w(!0))}},[N,e.img.url]);const ue=J=>{J!==null&&(R.current=J)},me=J=>{if(J!==null&&(y.current=J,R.current)){const{x:H,y:W,width:V,height:z}=R.current.getClientRect();J.setAttr("x",H),J.setAttr("y",W),J.setAttr("height",z),J.setAttr("width",V)}};return React$2.useLayoutEffect(()=>{if(R.current&&v){const J=R.current.getClientRect({relativeTo:R.current.getParent()});D({x:J.x+J.width/2,y:J.y+J.height/2})}},[v]),jsxRuntimeExports.jsxs("div",{className:"puzzle--drag__mask100",onDrop:K,onDragOver:J=>{J.preventDefault()},children:[jsxRuntimeExports.jsx("div",{className:"puzzle--drag__mask",children:jsxRuntimeExports.jsx("div",{ref:g,"data-testid":"mask_canvas",className:"puzzle--drag__mask--canvas",children:v?jsxRuntimeExports.jsx(Stage,{ref:S,width:g.current.clientWidth,height:g.current.clientHeight,children:jsxRuntimeExports.jsxs(Layer,{children:[jsxRuntimeExports.jsx(Image$2,{image:N,...x.current}),jsxRuntimeExports.jsxs(Group,{...x.current,children:[C?jsxRuntimeExports.jsx(Html,{transform:!0,groupProps:{id:"projection",...C},divProps:{style:{pointerEvents:"none"}},children:jsxRuntimeExports.jsx("div",{style:{width:"50px",height:"50px",pointerEvents:"none"},id:"object-area-projection"})}):null,jsxRuntimeExports.jsx(Line,{onMouseEnter:j,onMouseLeave:U,ref:ue,...l,shape:"poly",fill:"#262a31d9",stroke:"white",strokeWidth:1,opacity:0,dash:[3,2],closed:!0,draggable:!1})]}),jsxRuntimeExports.jsx(Text,{onMouseEnter:j,onMouseLeave:U,ref:me,text:F("puzzle.drag.dropzone"),fontSize:12,align:"center",verticalAlign:"middle",fill:"#ffffff",opacity:0})]})}):null})}),b!==""?jsxRuntimeExports.jsx(FeedbackComponent$1,{text:t.solution[b==="success"?"right":"wrong"].desc,success:b==="success",translate:F,playSound:k,functionOnClose:te,keyboardControl:p}):null]})}const LABELS_INDEX$1=["A","B","C","D","E","F","G","H","I","J"];function Questions({disabled:l,answered:e,question:n,updateForm:t,result:s,correctQuestions:o,translate:d}){const[h,f]=React$2.useState(!1),u=n.answers.filter(g=>g.text),p=g=>{let x=!1;return s[n.id].find(b=>b.id===g)&&(x=!0),x},_=g=>{let x="";return h?(e&&p(g.id)&&(x="selected"),l&&p(g.id)&&o.includes(g.id)&&(x="success"),l&&p(g.id)&&!o.includes(g.id)&&(x="failed")):(e&&g.id===s[n.id][0].id&&(x="selected"),l&&g.id===s[n.id][0].id&&(x=s[n.id][0].isCorrect?"success":"failed")),x},R=g=>{const x=_(g);return x==="selected"?"icon-check-circle-black color--selected":x==="success"?"icon-check-circle-black color--success":x==="failed"?"icon-error-circle-black color--error":""},y=n.answers.filter(g=>g.isCorrect),S=g=>l&&g.feedback&&(_(g)==="failed"||_(g)==="success")&&(h&&p(g.id)||g.id===s[n.id][0].id);return React$2.useEffect(()=>{y.length===1?f(!1):f(!0)},[y.length,h,n.answers]),jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--questions__item",children:jsxRuntimeExports.jsx("span",{children:n.text})}),h&&!l?jsxRuntimeExports.jsx("div",{className:"test--questions__intertitle test--questions__intertitle--multiresponse",children:d("tests.chooseMoreOneAnswer")}):null,u.map((g,x)=>jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"test--response__fakeinput",children:[h?jsxRuntimeExports.jsx("input",{checked:e&&p(g.id),disabled:l&&!p(g.id),readOnly:l,type:"checkbox",id:g.id,onChange:()=>l?null:t(g,n.id,x,"isCheckbox",g.id)}):jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment,{children:jsxRuntimeExports.jsx("input",{checked:e&&g.id===s[n.id][0].id,disabled:l&&!_(g),type:"radio",name:"name",id:g.id,onChange:()=>l?null:t(g,n.id,x,"isRadio")})}),jsxRuntimeExports.jsxs("label",{htmlFor:g.id,className:`test--response__item ${_(g)}`,children:[jsxRuntimeExports.jsx("div",{className:"test--response__index",children:LABELS_INDEX$1[x]}),jsxRuntimeExports.jsx("div",{className:"test--response__text",children:jsxRuntimeExports.jsx("span",{children:g.text})}),jsxRuntimeExports.jsx("div",{className:`test--response__icon ${R(g)}`})]})]},g.text),S(g)&&jsxRuntimeExports.jsxs("div",{className:"test--feedback",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("b",{children:jsxRuntimeExports.jsx("span",{children:jsxRuntimeExports.jsx("span",{children:d("test.feedback")})})})}),jsxRuntimeExports.jsx("span",{children:g.feedback})]})]}))]})}const LABELS_INDEX=["A","B","C","D","E","F","G","H","I","J"];function FeedbackItem({selectedAnswers:l,correctQuestions:e,question:n,translate:t}){const s=h=>e.includes(h),o=(h,f)=>h.index<f.index?-1:h.index>f.index?1:0,d=l.sort(o);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--questions__item",children:jsxRuntimeExports.jsx("span",{children:n})}),d.map(h=>jsxRuntimeExports.jsxs("div",{className:"test--response__itemwrap",children:[jsxRuntimeExports.jsxs("div",{className:`test--response__item ${s(h.id)?"success":"failed"}`,children:[jsxRuntimeExports.jsx("div",{className:"test--response__index",children:LABELS_INDEX[h.index]}),jsxRuntimeExports.jsx("div",{className:"test--response__text",children:jsxRuntimeExports.jsx("span",{children:h.text})}),jsxRuntimeExports.jsx("div",{className:`test--response__icon ${s(h.id)?"icon-check-circle-black color--success":"icon-error-circle-black color--error"}`})]}),jsxRuntimeExports.jsxs("div",{className:"test--feedback",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("b",{children:jsxRuntimeExports.jsxs("span",{children:[t("test.feedback")," ",l.length>1?LABELS_INDEX[h.index]:""]})})}),jsxRuntimeExports.jsx("span",{children:h.feedback})]})]},h.text))]})}function Container({questions:l,setTime:e,saveInterval:n,result:t,setTries:s,tries:o,time:d,showResults:h,answered:f,answerPage:u,updateForm:p,disabled:_,translate:R,soundActions:y,paused:S,view:g,correctQuestions:x,feedbacksOnlyWhenReview:b}){const T=document.querySelector(".test--container"),[v,w]=React$2.useState(0),[C,D]=React$2.useState(),N=l[v].id,[P]=y;React$2.useEffect(()=>{if(d>=0&&!_&&!S){const re=setInterval(()=>{C||e(se=>se-1)},1e3);return n(re),()=>{clearInterval(re)}}},[_,C,S,n,e,d]);const k=()=>{T.scrollTo(0,0),P("click-ui"),f&&(t[N][0].feedback&&!_&&!b?D(!0):(u(!1),w(v+1)))},F=()=>{P("click-ui"),w(v-1)},M=()=>{T.scrollTo(0,0),l[v+1]?(D(!1),u(!1),w(v+1)):h()},j=()=>{T.scrollTo(0,0),s(o+1),t[N][0].feedback&&!_&&!b?D(!0):h()},U=Math.floor(d/60),B=d%60;React$2.useEffect(()=>{if(g==="review"){const re=t[`q${v}`][0].id,se=document.querySelector(`#${re}`);T.scrollTo(0,se.offsetTop)}},[v,T,t,g]);const X=()=>{if(f){const re=x[l[v].id.substring(1)].answers,se=t[N],Z=se.find(te=>te.isCorrect===!1);let K=0;return se.forEach(te=>{re.includes(te.id)&&(K+=1)}),!Z&&K===re.length}return!1};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[g==="review"||C?jsxRuntimeExports.jsx("div",{"data-testid":"feedbackWrapper",className:`test-feedback-header ${X()?"success":"failed"}`,children:jsxRuntimeExports.jsxs("h2",{children:[jsxRuntimeExports.jsx("span",{className:`${X()?"icon-correct-thumb":"icon-incorrect-thumb"}`}),jsxRuntimeExports.jsx("span",{className:"test-feedback-header__title",children:X()?R("tests.resolvedQuestion"):R("tests.notResolvedQuestion")})]})}):null,jsxRuntimeExports.jsxs("div",{className:"test--questions",children:[jsxRuntimeExports.jsx("div",{className:"test--questions__container",children:C?jsxRuntimeExports.jsx(FeedbackItem,{selectedAnswers:t[N],correctQuestions:x[l[v].id.substring(1)].answers,question:l[v].text,translate:R}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{className:"test--questions__intertitle",children:[jsxRuntimeExports.jsx("div",{children:LangIsRtl()?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[v+1,"/",l.length," ",jsxRuntimeExports.jsx("span",{children:R("tests.question")})]}):jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("span",{children:R("tests.question")})," ",v+1,"/",l.length]})}),g!=="review"&&d>=0?jsxRuntimeExports.jsx("div",{dir:"ltr",className:`count-down ${d<10?"count-down--finalseconds":""}`,children:jsxRuntimeExports.jsxs("div",{id:"test-time",children:[U<10?`0${U}`:U," : ",B<10?`0${B}`:B]})}):null]}),jsxRuntimeExports.jsx(Questions,{result:t,disabled:_,answered:f,updateForm:p,question:l[v],correctQuestions:_?x[l[v].id.substring(1)].answers:[],translate:R},l[v].id)]})}),jsxRuntimeExports.jsxs("div",{className:`test--buttons ${g==="review"?"reviewmode":"next"}`,children:[g==="review"?jsxRuntimeExports.jsx("button",{disabled:v===0,id:"back-button",onClick:()=>F(),type:"button",className:`gat--btn__navigation ${v===0?"disabled":""}`,"aria-label":LangIsRtl()?R("survey.next"):R("survey.previous"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-next":"icon-back"})}):null,!C&&l[v+1]?jsxRuntimeExports.jsx("button",{disabled:!f,id:"next-button","data-testid":"nextButton",onClick:()=>k(),type:"button",className:`gat--btn__navigation ${f?"":"disabled"}`,"aria-label":LangIsRtl()?R("survey.previous"):R("survey.next"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null,C?jsxRuntimeExports.jsx("button",{id:"next-button","data-testid":"nextFeedbackButton",onClick:()=>M(),type:"button",className:"gat--btn__navigation",children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null,!C&&l[v].id.substring(1)===(l.length-1).toString()?jsxRuntimeExports.jsx("button",{disabled:!f,id:"continue-button","data-testid":"continueButton",onClick:()=>{P("click-ui"),f&&j()},type:"button",className:`gat--btn__navigation ${f?"":"disabled"}`,"aria-label":LangIsRtl()?R("survey.previous"):R("survey.next"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null]})]})]})}function ResultsComponent({result:l,time:e,mandatory:n,correctQuestions:t,isFirst:s,reviewTest:o,finishTest:d,restartTest:h,timeOver:f,timeOverText:u,getEvent:p,minimumPercentage:_}){const R=React$2.useRef(),[y,S]=React$2.useState(0),[g,x]=React$2.useState(),[b,T]=React$2.useState([]),[v,w]=React$2.useState([]),[C,D]=React$2.useState(),N=React$2.useCallback(()=>{const K=[];return t.forEach(te=>K.push(te.answers)),K},[t]),P=React$2.useCallback(()=>{const K=[];return Object.values(l).forEach(te=>{if(te.length>1){const ue=te.find(J=>J.isCorrect===!1),me=[];ue?K.push([]):(te.forEach(J=>{J.isCorrect&&me.push(J.id)}),K.push(me))}else te[0].isCorrect?K.push([te[0].id]):te[0].isCorrect===!1&&K.push("")}),K},[l]),k=React$2.useCallback(()=>{let K=0;if(v.length>0)return b.forEach((te,ue)=>{te.length>1?te.every(me=>{var J;return(J=v[ue])==null?void 0:J.includes(me)})&&(K+=1):te.length===1&&v[ue]&&te[0]===v[ue][0]&&(K+=1)}),K},[b,v]);React$2.useEffect(()=>{C===void 0&&(T(N),w(P),D(k))},[N,P,k,C]);const F=t.length,M=k()===F,j=C<_,U=C>=_,B=!n||U,X=Math.trunc(y/F*100),re=(K,te)=>p({type:"translate",payload:K,values:te}),se={"--chart-color":"var(--color-error)"};React$2.useEffect(()=>{if(y<C){const K=setInterval(()=>{S(te=>te+1)},100);return x(K),()=>{clearInterval(K)}}},[C,y]),React$2.useEffect(()=>{y>=C&&clearInterval(g)},[C,g,y]);const Z=()=>{R.current=!0,d()};return jsxRuntimeExports.jsxs("div",{"data-testid":"resultsWrapper",className:`test--results ${j||f?"test--results--failed":""}`,children:[s&&M?jsxRuntimeExports.jsxs("div",{"data-testid":"fireworks",className:"fireworks",children:[jsxRuntimeExports.jsx("div",{className:"before"}),jsxRuntimeExports.jsx("div",{className:"after"})]}):null,!f&&j?jsxRuntimeExports.jsx("div",{className:"test--results__title",children:jsxRuntimeExports.jsx("span",{children:re("tests.NotFinishedSuccessfully")})}):null,!f&&U||M?jsxRuntimeExports.jsx("div",{className:"test--results__title",children:jsxRuntimeExports.jsx("span",{children:re("tests.finishedSuccessfully")})}):null,f?jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--results__title",children:jsxRuntimeExports.jsx("span",{children:u})}),jsxRuntimeExports.jsx("div",{className:"test--results__time",id:"results-time",children:jsxRuntimeExports.jsx("span",{children:re("tests.time",e)})})]}):null,jsxRuntimeExports.jsxs("div",{className:`chart center chart${X}`,children:[jsxRuntimeExports.jsxs("div",{className:"chart-slice",children:[jsxRuntimeExports.jsx("div",{className:"chart-bar",style:j||f?se:{}}),jsxRuntimeExports.jsx("div",{className:"chart-fill",style:j||f?se:{}})]}),jsxRuntimeExports.jsxs("span",{className:"chart-value",children:[jsxRuntimeExports.jsxs("div",{className:"test--results__chart",children:[jsxRuntimeExports.jsx("span",{"data-testid":"correctPoints",children:y}),jsxRuntimeExports.jsxs("span",{"data-testid":"totalCorrectAnswers",children:["/",F]})]}),jsxRuntimeExports.jsx("div",{className:"test--results__chart--label",children:jsxRuntimeExports.jsx("span",{children:re("tests.success")})})]})]}),jsxRuntimeExports.jsxs("div",{className:"test--results__minimum",children:[jsxRuntimeExports.jsx("div",{className:"icon-bell"}),jsxRuntimeExports.jsx("div",{children:re("tests.minimumQuestionsMessage",{minimumPercentage:_})})]}),jsxRuntimeExports.jsxs("div",{className:"test--results__buttons",children:[f?null:jsxRuntimeExports.jsx("button",{className:"gat--btn gat--btn__secondary",id:"review-button",onClick:()=>o(),type:"button",children:jsxRuntimeExports.jsx("span",{children:re("tests.review")})}),B?null:jsxRuntimeExports.jsx("button",{className:"gat--btn gat--btn__primary","data-testid":"restartButton",id:"restart-button",onClick:()=>h(),type:"button",children:jsxRuntimeExports.jsx("span",{children:re("tests.restart")})}),B?jsxRuntimeExports.jsx("button",{disabled:R.current===!0,className:`gat--btn gat--btn__primary ${R.current===!0&&"disabled"}`,"data-testid":"finishButton",id:"finish-button",onClick:()=>Z(),type:"button",children:jsxRuntimeExports.jsx("span",{children:re("tests.continue")})}):null]})]})}function TestComponent({test:l,countdown:e={},emitEvent:n,getEvent:t,soundActions:s,audio:o,required:d,pause:h,minimumPercentage:f=100,feedbacksOnlyWhenReview:u}){const{questions:p}=l,[_,R]=React$2.useState({}),[y,S]=React$2.useState(),[g,x]=React$2.useState(0),[b,T]=React$2.useState([]),[v,w]=React$2.useState(e.time),[C,D]=React$2.useState(!1),[N,P]=React$2.useState("test"),[k,F]=React$2.useState(!0),[M,j]=React$2.useState({}),[U,B]=React$2.useState({}),[X,re]=React$2.useState(!1),se=d||l.required||!1,Z=React$2.useRef({}),[K,te]=React$2.useState(),[ue,me]=s,J=(ie,le,fe,ce,ge)=>{const Se={...ie,index:fe};if(g>0&&(Se.rewards=Se.rewards.filter(Fe=>!U[ie.id]||Fe.points<0)),_[le]){const Fe=_[le].find(De=>De.id===ge);if(Fe){if(Fe.id===ie.id){const De=_[le].find(ut=>ut.id===ge),Je=_[le].indexOf(De);if(_[le].splice(Je,1),_[le].length===0){D(!1);return}}}else _[le].push(Se)}else _[le]=[Se];let Ae;ce==="isRadio"?Ae={..._,[le]:[Se]}:Ae={..._},R(Ae),j(Ae),B({...U,[ie.id]:{...ie}}),D(!0)};React$2.useEffect(()=>{o!=null&&o.url&&ue(o.url,"tts")},[ue,o]);const H=p.map(ie=>{const le=ie.answers.filter(ce=>ce.isCorrect),fe=[];return le.forEach(ce=>{fe.push(ce.id)}),{question:ie.id,answers:fe}});React$2.useEffect(()=>{b.length===0&&T(H)},[b.length,H]),React$2.useEffect(()=>{if(f){const ie=Math.ceil(p.length*f/100);te(ie)}},[p.length,f]),React$2.useEffect(()=>{v===0&&(clearInterval(y),D(!1),re(!0),P("results"),me("tts"))},[y,me,v]);const W=()=>{clearInterval(y),D(!1),P("results");const ie={...M};j(ie),me("tts")},V=()=>{const ie={correctQuestions:b.length,result:_,status:"resolved"};Object.keys(_).forEach(fe=>{_[fe].forEach(ce=>{Z.current[ce.id]&&(ce.rewards=[])})}),n({type:"saveTest",payload:ie})},z=()=>{const ie=()=>{j({}),B({}),P("test"),R({}),w(e.time),re(!1),o!=null&&o.url&&ue(o.url,"tts")},le=Object.values(_);le.forEach(ce=>{ce.forEach(ge=>{ge.isCorrect&&(Z.current[ge.id]?ge.rewards=[]:Z.current[ge.id]=!0)})});let fe=le.reduce((ce,ge)=>{const Se=[];return ge.forEach(Ae=>{Se.push(Ae.rewards)}),[...ce,...Se.flat()]},[]);X&&e.rewards&&(fe=[...fe,...e.rewards]),n({type:"addPoints",payload:fe,complex:!0,finish:!1,onFinish:ie()}),n({type:"failTest"})},Y=(ie,le)=>t({type:"translate",payload:ie,values:le});return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--container__overlay"}),jsxRuntimeExports.jsx("div",{"data-testid":"wrapperTest",className:"test--container",dir:"auto",children:N!=="results"?jsxRuntimeExports.jsx(Container,{result:_,time:v,setTries:x,tries:g,answerPage:D,setTime:w,paused:h,saveInterval:S,disabled:N!=="test",answered:C||N!=="test",questions:p,updateForm:J,showResults:W,translate:Y,soundActions:s,view:N,correctQuestions:b,feedbacksOnlyWhenReview:u}):jsxRuntimeExports.jsx(ResultsComponent,{reviewTest:()=>{F(!1),P("review")},isFirst:k,finishTest:V,time:v,mandatory:se,restartTest:z,result:_,correctQuestions:b,timeOver:X,timeOverText:e.text,emitEvent:n,getEvent:t,soundActions:s,minimumPercentage:K})})]})}const OPTIONS=["yes","no"],LETTERS=["A","B"];function ApplicableBox({setSurveyData:l,survey:e,id:n,translate:t}){const s=o=>{l({...e,[n]:o})};return jsxRuntimeExports.jsx("div",{className:"survey--page__item",children:OPTIONS.map((o,d)=>jsxRuntimeExports.jsxs("button",{"data-testid":`applicablebox-${OPTIONS[d]}`,type:"button",onClick:()=>s(o),className:`unset-button survey--response__item ${e[n]===o?"selected":""}`,children:[jsxRuntimeExports.jsx("div",{className:"survey--response__index",children:LETTERS[d]}),jsxRuntimeExports.jsx("div",{className:"survey--response__text",children:t(`survey.${o}`)})]},o))})}const OPINION_OPTIONS=[0,1,2,3,4,5,6,7,8,9,10];function OpinionBox({setSurveyData:l,survey:e,id:n,translate:t}){const s=o=>{l({...e,[n]:o})};return jsxRuntimeExports.jsxs("div",{className:"survey--page__item","aria-label":"opinion box",children:[jsxRuntimeExports.jsx("div",{className:"survey--points",children:OPINION_OPTIONS.map(o=>jsxRuntimeExports.jsx("button",{type:"button",onClick:()=>s(o),className:`unset-button survey--points__item survey--points__item--colorized ${e[n]===o?"selected":""}`,children:o},o))}),jsxRuntimeExports.jsxs("div",{className:"survey--points__labels",children:[jsxRuntimeExports.jsx("span",{children:t("survey.bad")}),jsxRuntimeExports.jsx("span",{children:t("survey.excellent")})]})]})}function TextBox({setSurveyData:l,survey:e,id:n,literalLabel:t}){const s=o=>{l({...e,[n]:o})};return jsxRuntimeExports.jsx("div",{className:"survey--page__item",children:jsxRuntimeExports.jsx("textarea",{ref:o=>{o&&o.focus()},className:"survey--textarea",id:t,value:e[n],onChange:o=>s(o.target.value)})})}const INIT_SURVEY={applicable:"",opinion:"",comments:"",suggestions:""},PAGES=[{component:ApplicableBox,id:"applicable"},{component:OpinionBox,id:"opinion"},{component:TextBox,id:"comments"},{component:TextBox,id:"suggestions"}];function SurveyComponent({emitEvent:l,getEvent:e,soundActions:n}){const[t,s]=React$2.useState(INIT_SURVEY),[o,d]=React$2.useState(0),[h,f]=React$2.useState(!1),[u]=n,p=(y,S)=>e({type:"translate",payload:y,values:S}),_=(y=!1)=>{if(u("click-ui"),!y&&o+1>=PAGES.length)f(!0);else{y&&f(!1);const S=y?o-1:o+1;d(S)}},R=PAGES[o].component;return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"survey--container__overlay"}),jsxRuntimeExports.jsx("div",{className:"survey--container",dir:"auto",children:jsxRuntimeExports.jsxs("div",{className:"survey--questions",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__container",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__intertitle",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsx("span",{children:p("survey.numQuestion",{init:o+1,page:PAGES.length})})}),jsxRuntimeExports.jsx("div",{children:p("auto-evaluation.allQuestionsMandatory")})]}),jsxRuntimeExports.jsx("label",{className:"survey--questions__item","data-testid":`survey.question${o+1}`,htmlFor:p(`survey.question${o+1}`,{ordinal:o+1}),children:p(`survey.question${o+1}`,{ordinal:o+1})}),jsxRuntimeExports.jsx(R,{setSurveyData:s,id:PAGES[o].id,survey:t,translate:p,literalLabel:p(`survey.question${o+1}`,{ordinal:o+1})})]}),jsxRuntimeExports.jsxs("div",{className:"test--buttons next",children:[jsxRuntimeExports.jsx("button",{"data-testid":"backButton",id:"survey-button-back",type:"button",disabled:o===0,onClick:()=>_(!0),className:`gat--btn__navigation ${o===0?"disabled":""}`,"aria-label":LangIsRtl()?p("survey.next"):p("survey.previous"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-next":"icon-back"})}),!h&&o===PAGES.length-1?jsxRuntimeExports.jsx("button",{"data-testid":"survey.finish",id:"survey-button",type:"button",disabled:!t[PAGES[o].id],onClick:()=>{u("click-ui"),l({type:"saveSurvey",payload:t})},className:`gat--btn gat--btn__primary ${t[PAGES[o].id]?"":"disabled"} not-transition`,children:p("survey.finish")}):null,!h&&o!==PAGES.length-1?jsxRuntimeExports.jsx("button",{"data-testid":"nextButton",id:"survey-button",type:"button",disabled:!t[PAGES[o].id],onClick:()=>_(!1),className:`gat--btn__navigation ${t[PAGES[o].id]?"":"disabled"}`,"aria-label":LangIsRtl()?p("survey.previous"):p("survey.next"),children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})}):null]})]})})]})}function EndScreen({onFinish:l,translate:e}){return React$2.useEffect(()=>{let n;return l&&(n=setTimeout(()=>{l()},2e3)),()=>{n&&clearTimeout(n)}},[l]),jsxRuntimeExports.jsx("div",{"data-testid":"endScreen",className:"auto-evaluation__endscreen","aria-label":"auto evaluation endscreen",children:jsxRuntimeExports.jsxs("div",{className:"auto-evaluation__finishband","aria-label":"auto evaluation finishband",children:[jsxRuntimeExports.jsx("span",{className:"icon-check-laptop auto-evaluation__iconendscreen","aria-label":"icon-check",role:"img"}),jsxRuntimeExports.jsx("span",{className:"auto-evaluation__thanks","aria-label":"auto evaluation thanks",role:"contentinfo",children:e("auto-evaluation.thanks")})]})})}function StartScreen({onNext:l,description:e,translate:n}){return jsxRuntimeExports.jsxs("div",{className:"auto-evaluation__startscreen",role:"alertdialog","aria-modal":"true","aria-label":"ae start screen",children:[jsxRuntimeExports.jsx("span",{className:"icon-happy-laptop auto-evaluation__starticon","aria-label":"icon laptop",role:"img"}),jsxRuntimeExports.jsx("div",{className:"auto-evaluation__starttext","aria-label":"desciption",children:jsxRuntimeExports.jsx("span",{children:e})}),jsxRuntimeExports.jsx("button",{"data-testid":"auto-start-button",type:"button",className:"gat--btn gat--btn__primary auto-evaluation__button auto-evaluation__button--start",onClick:l,children:jsxRuntimeExports.jsx("span",{children:n("auto-evaluation.start")})})]})}function AutoEvaluation({description:l,questions:e,type:n,emitEvent:t,getEvent:s,soundActions:o}){var C,D,N;const[d,h]=React$2.useState(null),[f,u]=React$2.useState("start"),[p,_]=React$2.useState(!1),[R,y]=React$2.useState(0),[S,g]=React$2.useState({current:{questions:[],type:n}}),[x]=o,b=P=>s({type:"translate",payload:P}),T=P=>{P.code==="Enter"&&P.target.blur()},v=()=>{x("click-ui"),t({type:"saveSurveyPrePos",payload:S.current})};React$2.useEffect(()=>{!e.length&&f==="questions"&&u("end")},[e,f]);const w=(P,k=!1)=>{var M;const F=P!==null?P:(M=S.current.questions.find(j=>j.id===e[R].id))==null?void 0:M.answer;if(x("click-ui"),k)y(R-1),_(!1);else{const j=S.current.questions.findIndex(B=>B.id===e[R].id),U=[...S.current.questions];j>-1?U.splice(j,1,{id:e[R].id,answer:F}):U.push({id:e[R].id,answer:F}),g({...S,current:{...S.current,questions:U}}),R===e.length-1?_(!0):(y(R+1),_(!1))}};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx("div",{className:"test--container__overlay","aria-label":"test container overlay"}),jsxRuntimeExports.jsxs("div",{className:"test--container",dir:"auto","aria-label":"test container",children:[f==="start"&&jsxRuntimeExports.jsx(StartScreen,{description:l,onNext:()=>{u("questions"),x("click-ui")},translate:b}),f==="questions"&&jsxRuntimeExports.jsxs("div",{"data-testid":"survey--questions",className:"survey--questions","aria-label":"survey questions",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__container","aria-label":"survey questions container",children:[jsxRuntimeExports.jsxs("div",{className:"survey--questions__intertitle",children:[jsxRuntimeExports.jsx("div",{children:jsxRuntimeExports.jsxs("span",{children:[b("auto-evaluation.question")," ",R+1," ",b("storylines.misc.of")," ",e.length]})}),jsxRuntimeExports.jsx("div",{children:b("auto-evaluation.allQuestionsMandatory")})]}),jsxRuntimeExports.jsxs("div",{children:[jsxRuntimeExports.jsx("div",{className:"survey--questions__item","aria-label":"survey questions item",children:(C=e[R])==null?void 0:C.text}),jsxRuntimeExports.jsx("div",{className:"survey--page__item","aria-label":"survey page item",children:jsxRuntimeExports.jsx("div",{className:"survey--points","aria-label":"survey points",children:Array(11).fill(0).map((P,k)=>{var F;return jsxRuntimeExports.jsx("button",{"data-testid":`button-option-${0+k}`,type:"button",onTouchStart:()=>{h(k)},onTouchEnd:()=>{h(null)},onKeyUp:M=>{T(M)},onClick:()=>{w(k,!1)},className:`survey--points__item survey--points__item--simple ${((F=S.current.questions[R])==null?void 0:F.answer)===k||d===k?"selected":""}`,children:k},`${0+k}`)})})})]},`${e[R]}`)]}),jsxRuntimeExports.jsxs("div",{className:"test--buttons next","aria-label":"test buttons",children:[jsxRuntimeExports.jsx("button",{"data-testid":"back-button",type:"button",disabled:R===0,onClick:()=>w(null,!0),"aria-label":LangIsRtl()?b("survey.next"):b("survey.previous"),className:`gat--btn__navigation ${R===0?"disabled":""}`,children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-next":"icon-back","aria-label":"icon button"})}),p?jsxRuntimeExports.jsx("button",{"data-testid":"finish-button",type:"button",onClick:()=>{u("end"),x("click-ui")},className:`gat--btn gat--btn__primary auto-evaluation__button not-transition
253
253
  `,children:jsxRuntimeExports.jsx("span",{children:b("auto-evaluation.end")})}):jsxRuntimeExports.jsx("button",{"data-testid":"forward-button",type:"button",onClick:()=>w(null,!1),disabled:((D=S.current.questions[R])==null?void 0:D.answer)===void 0,"aria-label":LangIsRtl()?b("survey.previous"):b("survey.next"),className:`gat--btn__navigation ${((N=S.current.questions[R])==null?void 0:N.answer)===void 0?"disabled":""}`,children:jsxRuntimeExports.jsx("span",{className:LangIsRtl()?"icon-back":"icon-next"})})]})]}),f==="end"&&jsxRuntimeExports.jsx(EndScreen,{onFinish:v,translate:b})]})]})}function PatternComponent({img:l,name:e,viewed:n,emitEvent:t,getEvent:s,soundActions:o,keyboardControl:d}){const[h]=o,f=R=>s({type:"translate",payload:R}),u=()=>{h("click-ui"),t({type:"savePattern",payload:{imgId:l.resourceId,name:e,viewed:!0,url:_,type:"pattern"}})},p=d({disabled:n,forward:u,escape:u});if(React$2.useEffect(()=>p(),[p]),!l)return null;const _=l.url;return jsxRuntimeExports.jsx("div",{className:n?"notes--results":"readings--container pattern-wrap--overlay",children:jsxRuntimeExports.jsx("div",{className:n?"notes--results__text":"pattern-wrap",children:n?jsxRuntimeExports.jsx("div",{children:_&&jsxRuntimeExports.jsx("img",{src:_,alt:"pattern"})}):jsxRuntimeExports.jsxs("div",{className:"pattern",children:[jsxRuntimeExports.jsxs("div",{className:"pattern__header",children:[jsxRuntimeExports.jsx("div",{className:"pattern__title",children:f("phone.pattern")}),jsxRuntimeExports.jsx("button",{type:"button","aria-label":f("storylines.misc.closePiece"),className:"pattern__close gat--btn__round gat--btn__close",onClick:()=>u(),children:jsxRuntimeExports.jsx("span",{className:"icon-close"})})]}),jsxRuntimeExports.jsx("figure",{className:"pattern__figure",children:_&&jsxRuntimeExports.jsx("img",{src:_,alt:"pattern"})})]})})})}const getRecursiveJSX=(l,e=0,n,t,s)=>{var o,d;if((o=l.props)!=null&&o.children){const h=l.type,{children:f,...u}=l.props;if(l.props["data-text-id"]){if(u.dir="auto",u.onClick=p=>t(p,u["data-text-id"]||-1),n!=null&&n.hasHighlights){const p=[...n.correctTexts,...n.wrongTexts];for(let _=0;_<p.length;_+=1)u["data-text-id"]===p[_].id&&(u.className="text-click__hover-correct")}}else n!=null&&n.allWrong&&!l.props["data-text-id"]&&(u.onClick=p=>t(p,"allWrong"));return Array.isArray(f)?jsxRuntimeExports.jsx(h,{...u,children:f.map((p,_)=>getRecursiveJSX(p,_,n,t))},`${l.type}_${e}`):jsxRuntimeExports.jsx(h,{...u,children:getRecursiveJSX(f,e,n,t)},`${l.type}_${e}`)}return((d=l.props)==null?void 0:d.children)!==null?l.split(" ").filter(h=>h!=="").map(h=>jsxRuntimeExports.jsx("span",{dir:"auto",children:h},h)):null};function TextClickPuzzleComponent({emitEvent:l,getEvent:e,showFrames:n,styles:t,list:s,soundActions:o,description:d,setInfo:h,setResolveAction:f,keyboardControl:u,backgroundImage:p,hideBackgroundImageTheme:_=!1,nodeId:R}){const y=`textclick-puzzle_${R}`,[S,g]=React$2.useState({result:null,show:!1,text:"",timeout:!1}),[x]=o,[b,T]=React$2.useState(0),[v,w]=React$2.useState(0),[C,D]=React$2.useState(0),N=React$2.useRef(0),P=React$2.useRef([]),[k,F]=React$2.useState(0),[M,j]=React$2.useState(),U=React$2.useCallback(z=>e({type:"translate",payload:z}),[e]),B=React$2.useRef(null),X=React$2.useCallback(()=>N.current===s[b].correctTexts.length||s[b].hasClickOnce&&N.current>=1,[b,s]),re=React$2.useCallback((z,Y)=>{z&&l({type:"hidePuzzleButtons",payload:!0}),g(ie=>({...ie,show:z,...Y}))},[l]),se=React$2.useCallback(()=>{if(X())if(g(z=>({...z,result:!1})),N.current=0,C===v){const z=P.current.reduce((Y,ie)=>{const le=Y.findIndex(fe=>fe.id===ie.id);return le>=0?Y[le].points+=ie.points:Y.push({...ie}),Y},[]);l({type:"addPoints",complex:!0,finish:!0,payload:z}),l({type:"passPuzzle"})}else B.current=null,T(b+1),F(0),j(!0),setTimeout(()=>{j(!1)},1200)},[X,C,v,l,b]),Z=React$2.useCallback(()=>{l({type:"hidePuzzleButtons",payload:!1}),se(),g(Y=>({...Y,show:!1,text:""}));const z=document.querySelectorAll(".text-click__failed");z.length>0&&z.forEach(Y=>Y.classList.remove("text-click__failed"))},[l,se]),K=React$2.useCallback((z,Y)=>{var ie,le;z.forEach(fe=>fe.classList.add("text-click__success")),D(C+1),N.current+=1,x("score"),(ie=s[b].info.solution.right)!=null&&ie.desc?X()&&(P.current=[...P.current,...s[b].info.solution.right.rewards],re(!0,{result:!0,text:s[b].info.solution.right.desc,timeout:!1})):s[b].info.solution.right.desc===""&&(Y!=null&&Y.desc)?(P.current=((le=Y==null?void 0:Y.rewards)==null?void 0:le.length)>0?[...P.current,...(Y==null?void 0:Y.rewards)||{}]:[...P.current],re(!0,{result:!0,text:Y.desc,timeout:!1})):s[b].specificFeedbacks.specificCorrectFeedbacks?(P.current=[...P.current,...(Y==null?void 0:Y.rewards)||{}],X()&&re(!0,{result:!0,timeout:!0})):X()&&(P.current=[...P.current,...s[b].info.solution.right.rewards],re(!0,{result:!0,timeout:!0}))},[C,x,s,b,X,re]),te=React$2.useCallback((z,Y)=>{var ie;z.forEach(le=>le.classList.add("text-click__failed")),x("fail"),l({type:"failPuzzle"}),s[b].info.solution.wrong.desc!==""?(P.current=[...P.current,...s[b].info.solution.wrong.rewards],re(!0,{result:!1,text:s[b].info.solution.wrong.desc,timeout:!1})):s[b].info.solution.wrong.desc===""&&(Y!=null&&Y.desc)?(P.current=(ie=Y==null?void 0:Y.rewards)!=null&&ie.length?[...P.current,...(Y==null?void 0:Y.rewards)||{}]:[...P.current],re(!0,{result:!1,text:Y.desc,timeout:!1})):s[b].specificFeedbacks.specificWrongFeedbacks?(P.current=[...P.current,...(Y==null?void 0:Y.rewards)||{}],re(!0,{result:!1,timeout:!0})):(P.current=[...P.current,...s[b].info.solution.wrong.rewards],re(!0,{result:!1,timeout:!0}))},[x,l,s,b,re]),ue=React$2.useCallback((z,Y)=>{var Ae,Fe,De,Je;z.stopPropagation();const ie=document.querySelectorAll(`[data-text-id="${Y}"]`),le=document.querySelectorAll("[data-text-id]"),fe=s[b].correctTexts.find(ut=>ut.id===Y),ce=s[b].wrongTexts.find(ut=>ut.id===Y),ge=(Fe=(Ae=s[b])==null?void 0:Ae.specificFeedbacks)==null?void 0:Fe.correctFeedbacks.find(ut=>ut.id===Y),Se=(Je=(De=s[b])==null?void 0:De.specificFeedbacks)==null?void 0:Je.wrongFeedbacks.find(ut=>ut.id===Y);x("click-ui"),s[b].hasClickOrder?s[b].correctTexts[k].id===Y?(F(k+1),K(ie,ge)):s[b].correctTexts.find(ut=>ut.id===Y)&&s[b].correctTexts[k].id!==Y?(le.forEach(ut=>ut.classList.remove("text-click__success")),F(0),D(0),N.current=0,re(!0,{result:!1,text:s[b].info.orderFeedback.desc||U("puzzles.incorrectOrder"),timeout:!1}),T(0)):te(ie,Se):(fe==null?void 0:fe.id)===Y?K(ie,ge):((ce==null?void 0:ce.id)===Y||Y==="allWrong")&&te(ie,Se)},[s,b,x,k,K,re,U,te]),me=React$2.useCallback(z=>getRecursiveJSX(z,0,s[b],ue),[b,s,ue]),J=React$2.useCallback(()=>{let z=0;for(let Y=0;Y<s.length;Y+=1)if(s[Y].hasClickOnce)z+=1,w(z);else for(let ie=0;ie<s[Y].correctTexts.length;ie+=1)z+=1,w(z)},[s]);React$2.useEffect(()=>{var z;if(s!=null&&s[b]&&h({...s[b].info,description:d}),(z=s[b])!=null&&z.text){const Y=HTMLReactParser$1(s[b].text);B.current=me(Y),J()}else B.current=""},[b,d,J,s,me,h]);const H=()=>{for(let z=0;z<P.current.length;z=z+1)if(P.current[z].points>0)return!0;return!1};React$2.useEffect(()=>{f(()=>{l({type:"hidePuzzleButtons",payload:!0});const z=document.querySelectorAll(".text-click [data-text-id]"),Y=s[b].correctTexts.map(le=>le.id);z.forEach(le=>{Y.includes(le.getAttribute("data-text-id"))&&le.classList.add("text-click__success")});const ie=s[b].info.resolve.rewards;b+1<s.length?(setTimeout(()=>{l({type:"puzzleAction",action:"addPoints",payload:{element:y,rewards:ie,finish:!1,payload:ie}});let le=0;s.forEach((fe,ce)=>{ce<=b&&(le+=fe.correctTexts.length)}),D(le),B.current=null,N.current=0,j(!0),T(b+1)},2e3),setTimeout(()=>{j(!1),l({type:"hidePuzzleButtons",payload:!1})},3200)):b+1>=s.length&&H()?setTimeout(()=>{ie.forEach(le=>{P.current.forEach(fe=>{fe.id===le.id&&(le.points=le.points+fe.points)})}),l({type:"puzzleAction",action:"resolve",payload:{element:y,rewards:ie,finish:!0}})},2e3):setTimeout(()=>{l({type:"puzzleAction",action:"resolve",payload:{element:y,rewards:ie,finish:b+1>=s.length}})},2e3)})},[f,l,s,b,y]);const W=React$2.useMemo(()=>{let z=`text-click text-click--${t}`;return _&&(z+=" disable-background-image"),z},[_,t]),V={pointerEvents:S.show?"none":null,backgroundImage:p!=null&&p.url?`url('${p.url}')`:""};return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsxs("div",{"data-testid":"wrapperDiv",className:W,style:V,children:[jsxRuntimeExports.jsx("div",{className:"text-click__overlay",children:jsxRuntimeExports.jsx("div",{className:`text-click__container ${M?"slideInLeft":""} `,children:jsxRuntimeExports.jsx("div",{className:"text-click__body",children:jsxRuntimeExports.jsx("div",{className:"text-click__scroll",dir:LangIsRtl()?"rtl":"auto",children:B.current})})})}),n&&jsxRuntimeExports.jsxs("div",{className:"text-click__paginator",children:[jsxRuntimeExports.jsx("div",{className:"text-click__icon-check-circle-black",children:jsxRuntimeExports.jsx("span",{className:"icon-check-circle-black"})}),jsxRuntimeExports.jsxs("span",{"data-testid":"slideCounter",className:"text-click__slide",children:[C," / ",v]})]})]}),S.show&&jsxRuntimeExports.jsx(FeedbackComponent$1,{playSound:x,success:S.result,text:S.text,translate:U,functionOnClose:Z,hasTimeout:S.timeout,keyboardControl:u})]})}function _assertThisInitialized(l){if(l===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return l}function _inheritsLoose(l,e){l.prototype=Object.create(e.prototype),l.prototype.constructor=l,l.__proto__=e}/*!
254
254
  * GSAP 3.12.4
255
255
  * https://gsap.com