@capytale/iframe-react 1.1.0 → 1.1.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.
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react/jsx-runtime"),c=require("react"),k=require("@capytale/app-agent"),b=t=>{let e;const o=new Set,s=(l,S)=>{const g=typeof l=="function"?l(e):l;if(!Object.is(g,e)){const p=e;e=S??(typeof g!="object"||g===null)?g:Object.assign({},e,g),o.forEach(y=>y(e,p))}},i=()=>e,d={setState:s,getState:i,getInitialState:()=>a,subscribe:l=>(o.add(l),()=>o.delete(l))},a=e=t(s,i,d);return d},T=t=>t?b(t):b,B=t=>t;function E(t,e=B){const o=c.useSyncExternalStore(t.subscribe,c.useCallback(()=>e(t.getState()),[t,e]),c.useCallback(()=>e(t.getInitialState()),[t,e]));return c.useDebugValue(o),o}const w=t=>{const e=T(t),o=s=>E(e,s);return Object.assign(o,e),o},M=t=>t?w(t):w,j=t=>(e,o,s)=>{const i=s.subscribe;return s.subscribe=(u,d,a)=>{let l=u;if(d){const S=(a==null?void 0:a.equalityFn)||Object.is;let g=u(s.getState());l=p=>{const y=u(p);if(!S(g,y)){const D=g;d(g=y,D)}},a!=null&&a.fireImmediately&&d(g,g)}return i(l)},t(e,o,s)},q=j,n=M()(q(t=>({ready:!1,workflow:"current",mode:"assignment",theme:"light",saveCount:0,afterSaveCount:0,isDirtyCount:0,loadedTextContent:null,loadedJsonContent:null,loadedJsonActivityContent:null,loadedJsonAssignmentContent:null,loadedJsonActivityBinaryData:null,loadedJsonAssignmentBinaryData:null,getTextContentFunction:()=>(console.error("getTextContentFunction is not set"),null),getJsonContentFunction:()=>(console.error("getJsonContentFunction is not set"),null),getJsonActivityContentFunction:()=>(console.error("getJsonActivityContentFunction is not set"),null),getJsonAssignmentContentFunction:()=>(console.error("getJsonAssignmentContentFunction is not set"),null),getJsonActivityBinaryDataFunction:()=>(console.error("getJsonActivityBinaryDataFunction is not set"),null),getJsonAssignmentBinaryDataFunction:()=>(console.error("getJsonAssignmentBinaryDataFunction is not set"),null),sidebarActions:{},quickActions:{},activitySettings:null,setGetTextContentFunction:e=>{t({getTextContentFunction:e})},setGetJsonContentFunction:e=>{t({getJsonContentFunction:e})},setGetJsonActivityContentFunction:e=>{t({getJsonActivityContentFunction:e})},setGetJsonAssignmentContentFunction:e=>{t({getJsonAssignmentContentFunction:e})},setGetJsonActivityBinaryDataFunction:e=>{t({getJsonActivityBinaryDataFunction:e})},setGetJsonAssignmentBinaryDataFunction:e=>{t({getJsonAssignmentBinaryDataFunction:e})},setSidebarActions:e=>{t({sidebarActions:e})},setQuickActions:e=>{t({quickActions:e})},setActivitySettings:e=>{t({activitySettings:e})},incSaveCount:()=>t(e=>({saveCount:e.saveCount+1})),incDirtyCount:()=>t(e=>({isDirtyCount:e.isDirtyCount+1}))})));let h=!1;const L=["meta-player-events:1","meta-player-ui:1","mode:1","reload:1","theme:1","workflow:1","simple-content(text):1","simple-content(json):1","simple-binary-data(text):1","simple-content-eval(text):1","simple-content-eval(json):1"],x={"mode:1":{setMode:t=>{n.setState({mode:t})}},"reload:1":{reloaded:t=>{console.log("Reloaded with state:",t),console.error("Not implemented yet")}},"theme:1":{setTheme:t=>{if(t===null){n.setState({theme:null});return}if(t!=="light"&&t!=="dark"){console.warn(`Invalid theme: ${t}. Expected 'light' or 'dark'.`),n.setState({theme:null});return}n.setState({theme:t})}},"workflow:1":{setWorkflow:t=>{n.setState({workflow:t})}},"simple-content(text):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})}},"simple-content(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getJsonContentFunction(),loadContent:t=>{n.setState({loadedJsonContent:t})}},"simple-binary-data(text):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})}},"simple-content-eval(text):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"simple-content-eval(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getJsonContentFunction(),loadContent:t=>{n.setState({loadedJsonContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(json):2":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getJsonContentFunction(),loadContent:t=>{n.setState({loadedJsonContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(text):2":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"separate-contents(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},loadContent:(t,e)=>{n.setState({loadedJsonActivityContent:t,loadedJsonAssignmentContent:e})},getActivityContent:()=>n.getState().getJsonActivityContentFunction(),getAssignmentContent:()=>n.getState().getJsonAssignmentContentFunction()},"separate-dual-contents(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},loadContent:({activityContent:t,assignmentContent:e,activityBinaryData:o,assignmentBinaryData:s})=>{n.setState({loadedJsonActivityContent:t,loadedJsonAssignmentContent:e,loadedJsonActivityBinaryData:o,loadedJsonAssignmentBinaryData:s})},getActivityContentAndData:()=>({content:n.getState().getJsonActivityContentFunction(),binaryData:n.getState().getJsonActivityBinaryDataFunction()}),getAssignmentContentAndData:()=>({content:n.getState().getJsonAssignmentContentFunction(),binaryData:n.getState().getJsonAssignmentBinaryDataFunction()})},"meta-player-anti-cheat:1":{lock:()=>{},unlock:()=>{}},"meta-player-ui:1":{executeAction(t){if(t.startsWith("qa")){const o=n.getState().quickActions[t];o?o():console.error(`Quick action not found: ${t}`)}else{const o=n.getState().sidebarActions[t];o?o():console.error(`Sidebar action not found: ${t}`)}},executeFileUpload(t,e){if(t.startsWith("qa")){const s=n.getState().quickActions[t];s?s(e):console.error(`Quick action not found: ${t}`)}else{const s=n.getState().sidebarActions[t];s?s(e):console.error(`Sidebar action not found: ${t}`)}},updateSettings(t){n.setState({activitySettings:t})}},"meta-player-events:1":{handleEvent(t){t==="all-loaded"&&n.setState({ready:!0})}}},C=k.getSocket();function G(t){if(h){console.warn("Contracts have already been plugged. Skipping.");return}h=!0;for(const e of t){if(!L.includes(e)){console.warn(`Contract ${e} is not implemented in Capytale. Skipping plug.`);continue}if(!(e in x)){console.warn(`Contract handler for ${e} is not defined. Skipping plug.`);continue}const o=x[e];C.plug([e],([])=>[o])}C.plugsDone();for(const e of["simple-content(text):1","simple-content(json):1","simple-binary-data(text):1","simple-content-eval(text):1","simple-content-eval(json):1","simple-content-eval(json):2","simple-content-eval(text):2"])if(console.log(`Contract ${e} is being subscribed to content changes.`),t.includes(e)){console.log(`Subscribing to content changes for contract ${e}`);const o=e.split(":")[0];C.use([o],([s])=>{n.subscribe(i=>i.isDirtyCount,()=>{var i;(i=s.i)==null||i.contentChanged(),console.log(`Content changed for contract ${o}`)})})}}const I=["meta-player-events:1","mode:1","workflow:1"];function $({children:t,contracts:e,loadOnlyWhenReady:o=!0}){const s=n(i=>i.ready);return c.useEffect(()=>{const i=[...e];for(const r of I)i.includes(r)||i.push(r);G(i)},[]),o&&!s?F.jsx("div",{className:"container",children:"Chargement en cours..."}):F.jsx("div",{className:"container",children:t})}const P=()=>n(t=>{if(t.mode===null)throw new Error("Mode is not set. Have you used contract 'mode'?");return t.mode}),R=()=>n(t=>{if(t.workflow===null)throw new Error("Workflow is not set. Have you used contract 'workflow'?");return t.workflow}),Q=()=>n(t=>{if(t.theme===null)throw new Error("Theme is not set. Have you used contract 'theme'?");return t.theme}),W=()=>n(t=>t.incSaveCount),N=()=>n(t=>t.incDirtyCount),O=()=>n(t=>t.loadedTextContent),H=()=>n(t=>t.loadedJsonContent),U=()=>n(t=>t.loadedJsonActivityContent),V=()=>n(t=>t.loadedJsonAssignmentContent),_=()=>n(t=>t.loadedJsonActivityBinaryData),z=()=>n(t=>t.loadedJsonAssignmentBinaryData),K=t=>{const e=n(o=>o.setGetTextContentFunction);c.useEffect(()=>{e(t)},[t,e])},X=t=>{const e=n(o=>o.setGetJsonContentFunction);c.useEffect(()=>{e(t)},[t,e])},Y=t=>{const e=n(o=>o.setGetJsonActivityContentFunction);c.useEffect(()=>{e(t)},[t,e])},Z=t=>{const e=n(o=>o.setGetJsonAssignmentContentFunction);c.useEffect(()=>{e(t)},[t,e])},tt=t=>{const e=n(o=>o.setGetJsonActivityBinaryDataFunction);c.useEffect(()=>{e(t)},[t,e])},et=t=>{const e=n(o=>o.setGetJsonAssignmentBinaryDataFunction);c.useEffect(()=>{e(t)},[t,e])},nt=t=>{const e=n(o=>o.afterSaveCount);c.useEffect(()=>{e>0&&t()},[e])},ot=()=>(t,e)=>{C.use(["meta-player-ui"],([o])=>{var s;if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(s=o.i)==null||s.previewTextFile(t,e)})},st=()=>(t,e)=>{C.use(["meta-player-ui"],([o])=>{var s;if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(s=o.i)==null||s.previewImageFile(t,e)})};let v=0,A=0;const it=(t,e)=>{const o=c.useMemo(t,e),s=n(i=>i.setSidebarActions);c.useEffect(()=>(v++,v>1&&console.error("Capytale iframe React: Multiple sidebar actions registered: ",v),()=>{v--}),[]),c.useEffect(()=>(C.use(["meta-player-ui"],([i])=>{var d;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}A++;const r=o.map((a,l)=>({type:a.type,title:a.title,icon:a.icon,id:`sa-${A}-${l}`,...a.type==="file-upload"?{accept:a.accept}:{}})),u={};o.forEach((a,l)=>{u[`sa-${A}-${l}`]=a.action}),(d=i.i)==null||d.setSidebarActionButtons(r),s(u)}),()=>{s({}),C.use(["meta-player-ui"],([i])=>{var r;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(r=i.i)==null||r.setSidebarActionButtons([])})}),[o])};let f=0,J=0;const at=(t,e)=>{const o=c.useMemo(t,e),s=n(i=>i.setQuickActions);c.useEffect(()=>(f++,f>1&&console.error("Capytale iframe React: Multiple quick actions registered: ",f),()=>{f--}),[]),c.useEffect(()=>(C.use(["meta-player-ui"],([i])=>{var d;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}J++;const r=o.map((a,l)=>({type:a.type,title:a.title,icon:a.icon,id:`qa-${J}-${l}`,...a.type==="file-upload"?{accept:a.accept}:{}})),u={};o.forEach((a,l)=>{u[`qa-${J}-${l}`]=a.action}),(d=i.i)==null||d.setQuickActionButtons(r),s(u)}),()=>{s({}),C.use(["meta-player-ui"],([i])=>{var r;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(r=i.i)==null||r.setQuickActionButtons([])})}),[o])};let m=0;const ct=(t,e)=>{const o=c.useMemo(t,e),s=n(u=>u.setActivitySettings),i=n(u=>u.activitySettings),r=c.useRef("");return c.useEffect(()=>(console.log("Mounting useSettings"),m++,m>1&&console.error("Capytale iframe React: Multiple settings registered: ",m),()=>{m--}),[]),c.useEffect(()=>{const u=JSON.stringify(o);if(u!==r.current)return r.current=u,C.use(["meta-player-ui"],([d])=>{var a;if(d.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}console.log("Updating settings UI in MetaPlayer",o),(a=d.i)==null||a.setSettingsUI(o)}),()=>{s(null)}},[o]),i},rt=()=>e=>{C.use(["meta-player-ui"],([o])=>{var s;if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(s=o.i)==null||s.showToast(e)})};exports.Capytale=$;exports.useAfterSaveAction=nt;exports.useJsonActivityBinaryDataSaveFunction=tt;exports.useJsonActivityContentSaveFunction=Y;exports.useJsonAssignmentBinaryDataSaveFunction=et;exports.useJsonAssignmentContentSaveFunction=Z;exports.useJsonContentSaveFunction=X;exports.useLoadedJsonActivityBinaryData=_;exports.useLoadedJsonActivityContent=U;exports.useLoadedJsonAssignmentBinaryData=z;exports.useLoadedJsonAssignmentContent=V;exports.useLoadedJsonContent=H;exports.useLoadedTextContent=O;exports.useMode=P;exports.useNotifyIsDirty=N;exports.usePreviewImageFile=st;exports.usePreviewTextFile=ot;exports.useQuickActions=at;exports.useRequestSave=W;exports.useSettings=ct;exports.useShowToast=rt;exports.useSidebarActions=it;exports.useTextContentSaveFunction=K;exports.useTheme=Q;exports.useWorkflow=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const F=require("react/jsx-runtime"),c=require("react"),T=require("@capytale/app-agent"),b=t=>{let e;const o=new Set,s=(l,S)=>{const g=typeof l=="function"?l(e):l;if(!Object.is(g,e)){const A=e;e=S??(typeof g!="object"||g===null)?g:Object.assign({},e,g),o.forEach(p=>p(e,A))}},i=()=>e,d={setState:s,getState:i,getInitialState:()=>a,subscribe:l=>(o.add(l),()=>o.delete(l))},a=e=t(s,i,d);return d},E=t=>t?b(t):b,L=t=>t;function G(t,e=L){const o=c.useSyncExternalStore(t.subscribe,c.useCallback(()=>e(t.getState()),[t,e]),c.useCallback(()=>e(t.getInitialState()),[t,e]));return c.useDebugValue(o),o}const w=t=>{const e=E(t),o=s=>G(e,s);return Object.assign(o,e),o},D=t=>t?w(t):w,M=t=>(e,o,s)=>{const i=s.subscribe;return s.subscribe=(u,d,a)=>{let l=u;if(d){const S=(a==null?void 0:a.equalityFn)||Object.is;let g=u(s.getState());l=A=>{const p=u(A);if(!S(g,p)){const k=g;d(g=p,k)}},a!=null&&a.fireImmediately&&d(g,g)}return i(l)},t(e,o,s)},j=M,n=D()(j(t=>({ready:!1,workflow:"current",mode:"assignment",theme:"light",saveCount:0,afterSaveCount:0,isDirtyCount:0,loadedTextContent:null,loadedJsonContent:null,loadedJsonActivityContent:null,loadedJsonAssignmentContent:null,loadedJsonActivityBinaryData:null,loadedJsonAssignmentBinaryData:null,getTextContentFunction:()=>{throw console.error("getTextContentFunction is not set"),new Error("getTextContentFunction is not set")},getJsonContentFunction:()=>{throw console.error("getJsonContentFunction is not set"),new Error("getJsonContentFunction is not set")},getJsonActivityContentFunction:()=>{throw console.error("getJsonActivityContentFunction is not set"),new Error("getJsonActivityContentFunction is not set")},getJsonAssignmentContentFunction:()=>{throw console.error("getJsonAssignmentContentFunction is not set"),new Error("getJsonAssignmentContentFunction is not set")},getJsonActivitySplitContentFunction:()=>{throw console.error("getJsonActivitySplitContentFunction is not set"),new Error("getJsonActivitySplitContentFunction is not set")},getJsonAssignmentSplitContentFunction:()=>{throw console.error("getJsonAssignmentSplitContentFunction is not set"),new Error("getJsonAssignmentSplitContentFunction is not set")},sidebarActions:{},quickActions:{},activitySettings:null,setGetTextContentFunction:e=>{t({getTextContentFunction:e})},setGetJsonContentFunction:e=>{t({getJsonContentFunction:e})},setGetJsonActivityContentFunction:e=>{t({getJsonActivityContentFunction:e})},setGetJsonAssignmentContentFunction:e=>{t({getJsonAssignmentContentFunction:e})},setGetJsonActivitySplitContentFunction:e=>{t({getJsonActivitySplitContentFunction:e})},setGetJsonAssignmentSplitContentFunction:e=>{t({getJsonAssignmentSplitContentFunction:e})},setSidebarActions:e=>{t({sidebarActions:e})},setQuickActions:e=>{t({quickActions:e})},setActivitySettings:e=>{t({activitySettings:e})},incSaveCount:()=>t(e=>({saveCount:e.saveCount+1})),incDirtyCount:()=>t(e=>({isDirtyCount:e.isDirtyCount+1}))})));let h=!1;const q=["meta-player-events:1","meta-player-ui:1","mode:1","reload:1","theme:1","workflow:1","simple-content(text):1","simple-content(json):1","simple-binary-data(text):1","simple-content-eval(text):1","simple-content-eval(json):1","separate-contents(json):1","separate-dual-contents(json):1"],x={"mode:1":{setMode:t=>{n.setState({mode:t})}},"reload:1":{reloaded:t=>{console.log("Reloaded with state:",t),console.error("Not implemented yet")}},"theme:1":{setTheme:t=>{if(t===null){n.setState({theme:null});return}if(t!=="light"&&t!=="dark"){console.warn(`Invalid theme: ${t}. Expected 'light' or 'dark'.`),n.setState({theme:null});return}n.setState({theme:t})}},"workflow:1":{setWorkflow:t=>{n.setState({workflow:t})}},"simple-content(text):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})}},"simple-content(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getJsonContentFunction(),loadContent:t=>{n.setState({loadedJsonContent:t})}},"simple-binary-data(text):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})}},"simple-content-eval(text):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"simple-content-eval(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getJsonContentFunction(),loadContent:t=>{n.setState({loadedJsonContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(json):2":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getJsonContentFunction(),loadContent:t=>{n.setState({loadedJsonContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(text):2":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},getContent:()=>n.getState().getTextContentFunction(),loadContent:t=>{n.setState({loadedTextContent:t})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"separate-contents(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},loadContent:(t,e)=>{n.setState({loadedJsonActivityContent:t,loadedJsonAssignmentContent:e})},getActivityContent:()=>n.getState().getJsonActivityContentFunction(),getAssignmentContent:()=>n.getState().getJsonAssignmentContentFunction()},"separate-dual-contents(json):1":{contentSaved:()=>{n.setState(t=>({afterSaveCount:t.afterSaveCount+1}))},loadContent:({activityContent:t,assignmentContent:e,activityBinaryData:o,assignmentBinaryData:s})=>{n.setState({loadedJsonActivityContent:t,loadedJsonAssignmentContent:e,loadedJsonActivityBinaryData:o,loadedJsonAssignmentBinaryData:s})},getActivityContentAndData:()=>n.getState().getJsonActivitySplitContentFunction(),getAssignmentContentAndData:()=>n.getState().getJsonAssignmentSplitContentFunction()},"meta-player-anti-cheat:1":{lock:()=>{},unlock:()=>{}},"meta-player-ui:1":{executeAction(t){if(t.startsWith("qa")){const o=n.getState().quickActions[t];o?o():console.error(`Quick action not found: ${t}`)}else{const o=n.getState().sidebarActions[t];o?o():console.error(`Sidebar action not found: ${t}`)}},executeFileUpload(t,e){if(t.startsWith("qa")){const s=n.getState().quickActions[t];s?s(e):console.error(`Quick action not found: ${t}`)}else{const s=n.getState().sidebarActions[t];s?s(e):console.error(`Sidebar action not found: ${t}`)}},updateSettings(t){n.setState({activitySettings:t})}},"meta-player-events:1":{handleEvent(t){t==="all-loaded"&&n.setState({ready:!0})}}},C=T.getSocket();function I(t){if(h){console.warn("Contracts have already been plugged. Skipping.");return}h=!0;for(const e of t){if(!q.includes(e)){console.warn(`Contract ${e} is not implemented in Capytale. Skipping plug.`);continue}if(!(e in x)){console.warn(`Contract handler for ${e} is not defined. Skipping plug.`);continue}const o=x[e];C.plug([e],([])=>[o])}C.plugsDone();for(const e of["simple-content(text):1","simple-content(json):1","simple-binary-data(text):1","simple-content-eval(text):1","simple-content-eval(json):1","simple-content-eval(json):2","simple-content-eval(text):2"])if(console.log(`Contract ${e} is being subscribed to content changes.`),t.includes(e)){console.log(`Subscribing to content changes for contract ${e}`);const o=e.split(":")[0];C.use([o],([s])=>{n.subscribe(i=>i.isDirtyCount,()=>{var i;(i=s.i)==null||i.contentChanged(),console.log(`Content changed for contract ${o}`)})})}}const $=["meta-player-events:1","mode:1","workflow:1"];function B({children:t,contracts:e,loadOnlyWhenReady:o=!0}){const s=n(i=>i.ready);return c.useEffect(()=>{const i=[...e];for(const r of $)i.includes(r)||i.push(r);I(i)},[]),o&&!s?F.jsx("div",{className:"container",children:"Chargement en cours..."}):F.jsx("div",{className:"container",children:t})}const P=()=>n(t=>{if(t.mode===null)throw new Error("Mode is not set. Have you used contract 'mode'?");return t.mode}),R=()=>n(t=>{if(t.workflow===null)throw new Error("Workflow is not set. Have you used contract 'workflow'?");return t.workflow}),Q=()=>n(t=>{if(t.theme===null)throw new Error("Theme is not set. Have you used contract 'theme'?");return t.theme}),W=()=>n(t=>t.incSaveCount),N=()=>n(t=>t.incDirtyCount),O=()=>n(t=>t.loadedTextContent),H=()=>n(t=>t.loadedJsonContent),U=()=>n(t=>t.loadedJsonActivityContent),V=()=>n(t=>t.loadedJsonAssignmentContent),_=()=>n(t=>t.loadedJsonActivityBinaryData),z=()=>n(t=>t.loadedJsonAssignmentBinaryData),K=()=>n.getState().loadedTextContent,X=()=>n.getState().loadedJsonContent,Y=()=>n.getState().loadedJsonActivityContent,Z=()=>n.getState().loadedJsonAssignmentContent,tt=()=>({content:n.getState().loadedJsonActivityContent,binaryData:n.getState().loadedJsonActivityBinaryData}),et=()=>({content:n.getState().loadedJsonAssignmentContent,binaryData:n.getState().loadedJsonAssignmentBinaryData}),nt=t=>{const e=n(o=>o.setGetTextContentFunction);c.useEffect(()=>{e(t)},[t,e])},ot=t=>{const e=n(o=>o.setGetJsonContentFunction);c.useEffect(()=>{e(t)},[t,e])},st=t=>{const e=n(o=>o.setGetJsonActivityContentFunction);c.useEffect(()=>{e(t)},[t,e])},it=t=>{const e=n(o=>o.setGetJsonAssignmentContentFunction);c.useEffect(()=>{e(t)},[t,e])},at=t=>{const e=n(o=>o.setGetJsonActivitySplitContentFunction);c.useEffect(()=>{e(t)},[t,e])},ct=t=>{const e=n(o=>o.setGetJsonAssignmentSplitContentFunction);c.useEffect(()=>{e(t)},[t,e])},rt=t=>{const e=n(o=>o.afterSaveCount);c.useEffect(()=>{e>0&&t()},[e])},ut=()=>(t,e)=>{C.use(["meta-player-ui"],([o])=>{var s;if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(s=o.i)==null||s.previewTextFile(t,e)})},lt=()=>(t,e)=>{C.use(["meta-player-ui"],([o])=>{var s;if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(s=o.i)==null||s.previewImageFile(t,e)})};let v=0,f=0;const dt=(t,e)=>{const o=c.useMemo(t,e),s=n(i=>i.setSidebarActions);c.useEffect(()=>(v++,v>1&&console.error("Capytale iframe React: Multiple sidebar actions registered: ",v),()=>{v--}),[]),c.useEffect(()=>(C.use(["meta-player-ui"],([i])=>{var d;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}f++;const r=o.map((a,l)=>({type:a.type,title:a.title,icon:a.icon,id:`sa-${f}-${l}`,...a.type==="file-upload"?{accept:a.accept}:{}})),u={};o.forEach((a,l)=>{u[`sa-${f}-${l}`]=a.action}),(d=i.i)==null||d.setSidebarActionButtons(r),s(u)}),()=>{s({}),C.use(["meta-player-ui"],([i])=>{var r;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(r=i.i)==null||r.setSidebarActionButtons([])})}),[o])};let y=0,J=0;const gt=(t,e)=>{const o=c.useMemo(t,e),s=n(i=>i.setQuickActions);c.useEffect(()=>(y++,y>1&&console.error("Capytale iframe React: Multiple quick actions registered: ",y),()=>{y--}),[]),c.useEffect(()=>(C.use(["meta-player-ui"],([i])=>{var d;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}J++;const r=o.map((a,l)=>({type:a.type,title:a.title,icon:a.icon,id:`qa-${J}-${l}`,...a.type==="file-upload"?{accept:a.accept}:{}})),u={};o.forEach((a,l)=>{u[`qa-${J}-${l}`]=a.action}),(d=i.i)==null||d.setQuickActionButtons(r),s(u)}),()=>{s({}),C.use(["meta-player-ui"],([i])=>{var r;if(i.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(r=i.i)==null||r.setQuickActionButtons([])})}),[o])};let m=0;const Ct=(t,e)=>{const o=c.useMemo(t,e),s=n(u=>u.setActivitySettings),i=n(u=>u.activitySettings),r=c.useRef("");return c.useEffect(()=>(console.log("Mounting useSettings"),m++,m>1&&console.error("Capytale iframe React: Multiple settings registered: ",m),()=>{m--}),[]),c.useEffect(()=>{const u=JSON.stringify(o);if(u!==r.current)return r.current=u,C.use(["meta-player-ui"],([d])=>{var a;if(d.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}console.log("Updating settings UI in MetaPlayer",o),(a=d.i)==null||a.setSettingsUI(o)}),()=>{s(null)}},[o]),i},St=()=>e=>{C.use(["meta-player-ui"],([o])=>{var s;if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}(s=o.i)==null||s.showToast(e)})};exports.Capytale=B;exports.useAfterSaveAction=rt;exports.useGetLoadedJsonActivityContent=Y;exports.useGetLoadedJsonActivitySplitContent=tt;exports.useGetLoadedJsonAssignmentContent=Z;exports.useGetLoadedJsonAssignmentSplitContent=et;exports.useGetLoadedJsonContent=X;exports.useGetLoadedTextContent=K;exports.useJsonActivityContentSaveFunction=st;exports.useJsonActivitySplitContentSaveFunction=at;exports.useJsonAssignmentContentSaveFunction=it;exports.useJsonAssignmentSplitContentSaveFunction=ct;exports.useJsonContentSaveFunction=ot;exports.useLoadedJsonActivityBinaryData=_;exports.useLoadedJsonActivityContent=U;exports.useLoadedJsonAssignmentBinaryData=z;exports.useLoadedJsonAssignmentContent=V;exports.useLoadedJsonContent=H;exports.useLoadedTextContent=O;exports.useMode=P;exports.useNotifyIsDirty=N;exports.usePreviewImageFile=lt;exports.usePreviewTextFile=ut;exports.useQuickActions=gt;exports.useRequestSave=W;exports.useSettings=Ct;exports.useShowToast=St;exports.useSidebarActions=dt;exports.useTextContentSaveFunction=nt;exports.useTheme=Q;exports.useWorkflow=R;
package/dist/index.d.ts CHANGED
@@ -209,14 +209,32 @@ declare type MPToastMessage = {
209
209
 
210
210
  export declare const useAfterSaveAction: (fn: () => any) => void;
211
211
 
212
- export declare const useJsonActivityBinaryDataSaveFunction: (fn: () => any) => void;
212
+ export declare const useGetLoadedJsonActivityContent: () => any;
213
+
214
+ export declare const useGetLoadedJsonActivitySplitContent: () => {
215
+ content: any;
216
+ binaryData: any;
217
+ };
218
+
219
+ export declare const useGetLoadedJsonAssignmentContent: () => any;
220
+
221
+ export declare const useGetLoadedJsonAssignmentSplitContent: () => {
222
+ content: any;
223
+ binaryData: any;
224
+ };
225
+
226
+ export declare const useGetLoadedJsonContent: () => any;
227
+
228
+ export declare const useGetLoadedTextContent: () => string | null;
213
229
 
214
230
  export declare const useJsonActivityContentSaveFunction: (fn: () => any) => void;
215
231
 
216
- export declare const useJsonAssignmentBinaryDataSaveFunction: (fn: () => any) => void;
232
+ export declare const useJsonActivitySplitContentSaveFunction: (fn: () => any) => void;
217
233
 
218
234
  export declare const useJsonAssignmentContentSaveFunction: (fn: () => any) => void;
219
235
 
236
+ export declare const useJsonAssignmentSplitContentSaveFunction: (fn: () => any) => void;
237
+
220
238
  export declare const useJsonContentSaveFunction: (fn: () => any) => void;
221
239
 
222
240
  export declare const useLoadedJsonActivityBinaryData: () => any;
package/dist/index.es.js CHANGED
@@ -1,18 +1,18 @@
1
1
  import { jsx as w } from "react/jsx-runtime";
2
- import m, { useEffect as d, useMemo as b, useRef as B } from "react";
3
- import { getSocket as M } from "@capytale/app-agent";
2
+ import m, { useEffect as d, useMemo as b, useRef as E } from "react";
3
+ import { getSocket as G } from "@capytale/app-agent";
4
4
  const h = (t) => {
5
5
  let e;
6
- const o = /* @__PURE__ */ new Set(), s = (u, S) => {
7
- const g = typeof u == "function" ? u(e) : u;
6
+ const o = /* @__PURE__ */ new Set(), s = (l, S) => {
7
+ const g = typeof l == "function" ? l(e) : l;
8
8
  if (!Object.is(g, e)) {
9
- const A = e;
10
- e = S ?? (typeof g != "object" || g === null) ? g : Object.assign({}, e, g), o.forEach((y) => y(e, A));
9
+ const f = e;
10
+ e = S ?? (typeof g != "object" || g === null) ? g : Object.assign({}, e, g), o.forEach((p) => p(e, f));
11
11
  }
12
- }, i = () => e, l = { setState: s, getState: i, getInitialState: () => a, subscribe: (u) => (o.add(u), () => o.delete(u)) }, a = e = t(s, i, l);
13
- return l;
14
- }, j = (t) => t ? h(t) : h, E = (t) => t;
15
- function G(t, e = E) {
12
+ }, i = () => e, u = { setState: s, getState: i, getInitialState: () => a, subscribe: (l) => (o.add(l), () => o.delete(l)) }, a = e = t(s, i, u);
13
+ return u;
14
+ }, j = (t) => t ? h(t) : h, M = (t) => t;
15
+ function L(t, e = M) {
16
16
  const o = m.useSyncExternalStore(
17
17
  t.subscribe,
18
18
  m.useCallback(() => e(t.getState()), [t, e]),
@@ -21,24 +21,24 @@ function G(t, e = E) {
21
21
  return m.useDebugValue(o), o;
22
22
  }
23
23
  const x = (t) => {
24
- const e = j(t), o = (s) => G(e, s);
24
+ const e = j(t), o = (s) => L(e, s);
25
25
  return Object.assign(o, e), o;
26
26
  }, $ = (t) => t ? x(t) : x, q = (t) => (e, o, s) => {
27
27
  const i = s.subscribe;
28
- return s.subscribe = (r, l, a) => {
29
- let u = r;
30
- if (l) {
28
+ return s.subscribe = (r, u, a) => {
29
+ let l = r;
30
+ if (u) {
31
31
  const S = (a == null ? void 0 : a.equalityFn) || Object.is;
32
32
  let g = r(s.getState());
33
- u = (A) => {
34
- const y = r(A);
35
- if (!S(g, y)) {
36
- const T = g;
37
- l(g = y, T);
33
+ l = (f) => {
34
+ const p = r(f);
35
+ if (!S(g, p)) {
36
+ const D = g;
37
+ u(g = p, D);
38
38
  }
39
- }, a != null && a.fireImmediately && l(g, g);
39
+ }, a != null && a.fireImmediately && u(g, g);
40
40
  }
41
- return i(u);
41
+ return i(l);
42
42
  }, t(e, o, s);
43
43
  }, I = q, n = $()(
44
44
  I((t) => ({
@@ -55,12 +55,24 @@ const x = (t) => {
55
55
  loadedJsonAssignmentContent: null,
56
56
  loadedJsonActivityBinaryData: null,
57
57
  loadedJsonAssignmentBinaryData: null,
58
- getTextContentFunction: () => (console.error("getTextContentFunction is not set"), null),
59
- getJsonContentFunction: () => (console.error("getJsonContentFunction is not set"), null),
60
- getJsonActivityContentFunction: () => (console.error("getJsonActivityContentFunction is not set"), null),
61
- getJsonAssignmentContentFunction: () => (console.error("getJsonAssignmentContentFunction is not set"), null),
62
- getJsonActivityBinaryDataFunction: () => (console.error("getJsonActivityBinaryDataFunction is not set"), null),
63
- getJsonAssignmentBinaryDataFunction: () => (console.error("getJsonAssignmentBinaryDataFunction is not set"), null),
58
+ getTextContentFunction: () => {
59
+ throw console.error("getTextContentFunction is not set"), new Error("getTextContentFunction is not set");
60
+ },
61
+ getJsonContentFunction: () => {
62
+ throw console.error("getJsonContentFunction is not set"), new Error("getJsonContentFunction is not set");
63
+ },
64
+ getJsonActivityContentFunction: () => {
65
+ throw console.error("getJsonActivityContentFunction is not set"), new Error("getJsonActivityContentFunction is not set");
66
+ },
67
+ getJsonAssignmentContentFunction: () => {
68
+ throw console.error("getJsonAssignmentContentFunction is not set"), new Error("getJsonAssignmentContentFunction is not set");
69
+ },
70
+ getJsonActivitySplitContentFunction: () => {
71
+ throw console.error("getJsonActivitySplitContentFunction is not set"), new Error("getJsonActivitySplitContentFunction is not set");
72
+ },
73
+ getJsonAssignmentSplitContentFunction: () => {
74
+ throw console.error("getJsonAssignmentSplitContentFunction is not set"), new Error("getJsonAssignmentSplitContentFunction is not set");
75
+ },
64
76
  sidebarActions: {},
65
77
  quickActions: {},
66
78
  activitySettings: null,
@@ -76,11 +88,11 @@ const x = (t) => {
76
88
  setGetJsonAssignmentContentFunction: (e) => {
77
89
  t({ getJsonAssignmentContentFunction: e });
78
90
  },
79
- setGetJsonActivityBinaryDataFunction: (e) => {
80
- t({ getJsonActivityBinaryDataFunction: e });
91
+ setGetJsonActivitySplitContentFunction: (e) => {
92
+ t({ getJsonActivitySplitContentFunction: e });
81
93
  },
82
- setGetJsonAssignmentBinaryDataFunction: (e) => {
83
- t({ getJsonAssignmentBinaryDataFunction: e });
94
+ setGetJsonAssignmentSplitContentFunction: (e) => {
95
+ t({ getJsonAssignmentSplitContentFunction: e });
84
96
  },
85
97
  setSidebarActions: (e) => {
86
98
  t({ sidebarActions: e });
@@ -98,7 +110,7 @@ const x = (t) => {
98
110
  }))
99
111
  );
100
112
  let k = !1;
101
- const L = [
113
+ const B = [
102
114
  "meta-player-events:1",
103
115
  "meta-player-ui:1",
104
116
  "mode:1",
@@ -109,8 +121,10 @@ const L = [
109
121
  "simple-content(json):1",
110
122
  "simple-binary-data(text):1",
111
123
  "simple-content-eval(text):1",
112
- "simple-content-eval(json):1"
113
- ], D = {
124
+ "simple-content-eval(json):1",
125
+ "separate-contents(json):1",
126
+ "separate-dual-contents(json):1"
127
+ ], T = {
114
128
  "mode:1": {
115
129
  setMode: (t) => {
116
130
  n.setState({ mode: t });
@@ -270,14 +284,8 @@ const L = [
270
284
  loadedJsonAssignmentBinaryData: s
271
285
  });
272
286
  },
273
- getActivityContentAndData: () => ({
274
- content: n.getState().getJsonActivityContentFunction(),
275
- binaryData: n.getState().getJsonActivityBinaryDataFunction()
276
- }),
277
- getAssignmentContentAndData: () => ({
278
- content: n.getState().getJsonAssignmentContentFunction(),
279
- binaryData: n.getState().getJsonAssignmentBinaryDataFunction()
280
- })
287
+ getActivityContentAndData: () => n.getState().getJsonActivitySplitContentFunction(),
288
+ getAssignmentContentAndData: () => n.getState().getJsonAssignmentSplitContentFunction()
281
289
  },
282
290
  "meta-player-anti-cheat:1": {
283
291
  lock: () => {
@@ -313,7 +321,7 @@ const L = [
313
321
  t === "all-loaded" && n.setState({ ready: !0 });
314
322
  }
315
323
  }
316
- }, C = M();
324
+ }, C = G();
317
325
  function P(t) {
318
326
  if (k) {
319
327
  console.warn("Contracts have already been plugged. Skipping.");
@@ -321,19 +329,19 @@ function P(t) {
321
329
  }
322
330
  k = !0;
323
331
  for (const e of t) {
324
- if (!L.includes(e)) {
332
+ if (!B.includes(e)) {
325
333
  console.warn(
326
334
  `Contract ${e} is not implemented in Capytale. Skipping plug.`
327
335
  );
328
336
  continue;
329
337
  }
330
- if (!(e in D)) {
338
+ if (!(e in T)) {
331
339
  console.warn(
332
340
  `Contract handler for ${e} is not defined. Skipping plug.`
333
341
  );
334
342
  continue;
335
343
  }
336
- const o = D[e];
344
+ const o = T[e];
337
345
  C.plug([e], ([]) => [o]);
338
346
  }
339
347
  C.plugsDone();
@@ -392,54 +400,60 @@ const H = () => n((t) => {
392
400
  if (t.theme === null)
393
401
  throw new Error("Theme is not set. Have you used contract 'theme'?");
394
402
  return t.theme;
395
- }), _ = () => n((t) => t.incSaveCount), z = () => n((t) => t.incDirtyCount), K = () => n((t) => t.loadedTextContent), X = () => n((t) => t.loadedJsonContent), Y = () => n((t) => t.loadedJsonActivityContent), Z = () => n((t) => t.loadedJsonAssignmentContent), tt = () => n((t) => t.loadedJsonActivityBinaryData), et = () => n((t) => t.loadedJsonAssignmentBinaryData), nt = (t) => {
403
+ }), _ = () => n((t) => t.incSaveCount), z = () => n((t) => t.incDirtyCount), K = () => n((t) => t.loadedTextContent), X = () => n((t) => t.loadedJsonContent), Y = () => n((t) => t.loadedJsonActivityContent), Z = () => n((t) => t.loadedJsonAssignmentContent), tt = () => n((t) => t.loadedJsonActivityBinaryData), et = () => n((t) => t.loadedJsonAssignmentBinaryData), nt = () => n.getState().loadedTextContent, ot = () => n.getState().loadedJsonContent, st = () => n.getState().loadedJsonActivityContent, it = () => n.getState().loadedJsonAssignmentContent, at = () => ({
404
+ content: n.getState().loadedJsonActivityContent,
405
+ binaryData: n.getState().loadedJsonActivityBinaryData
406
+ }), ct = () => ({
407
+ content: n.getState().loadedJsonAssignmentContent,
408
+ binaryData: n.getState().loadedJsonAssignmentBinaryData
409
+ }), rt = (t) => {
396
410
  const e = n(
397
411
  (o) => o.setGetTextContentFunction
398
412
  );
399
413
  d(() => {
400
414
  e(t);
401
415
  }, [t, e]);
402
- }, ot = (t) => {
416
+ }, lt = (t) => {
403
417
  const e = n(
404
418
  (o) => o.setGetJsonContentFunction
405
419
  );
406
420
  d(() => {
407
421
  e(t);
408
422
  }, [t, e]);
409
- }, st = (t) => {
423
+ }, ut = (t) => {
410
424
  const e = n(
411
425
  (o) => o.setGetJsonActivityContentFunction
412
426
  );
413
427
  d(() => {
414
428
  e(t);
415
429
  }, [t, e]);
416
- }, it = (t) => {
430
+ }, dt = (t) => {
417
431
  const e = n(
418
432
  (o) => o.setGetJsonAssignmentContentFunction
419
433
  );
420
434
  d(() => {
421
435
  e(t);
422
436
  }, [t, e]);
423
- }, at = (t) => {
437
+ }, gt = (t) => {
424
438
  const e = n(
425
- (o) => o.setGetJsonActivityBinaryDataFunction
439
+ (o) => o.setGetJsonActivitySplitContentFunction
426
440
  );
427
441
  d(() => {
428
442
  e(t);
429
443
  }, [t, e]);
430
- }, ct = (t) => {
444
+ }, Ct = (t) => {
431
445
  const e = n(
432
- (o) => o.setGetJsonAssignmentBinaryDataFunction
446
+ (o) => o.setGetJsonAssignmentSplitContentFunction
433
447
  );
434
448
  d(() => {
435
449
  e(t);
436
450
  }, [t, e]);
437
- }, rt = (t) => {
451
+ }, St = (t) => {
438
452
  const e = n((o) => o.afterSaveCount);
439
453
  d(() => {
440
454
  e > 0 && t();
441
455
  }, [e]);
442
- }, ut = () => (t, e) => {
456
+ }, pt = () => (t, e) => {
443
457
  C.use(["meta-player-ui"], ([o]) => {
444
458
  var s;
445
459
  if (o.version === 0) {
@@ -448,7 +462,7 @@ const H = () => n((t) => {
448
462
  }
449
463
  (s = o.i) == null || s.previewTextFile(t, e);
450
464
  });
451
- }, lt = () => (t, e) => {
465
+ }, mt = () => (t, e) => {
452
466
  C.use(["meta-player-ui"], ([o]) => {
453
467
  var s;
454
468
  if (o.version === 0) {
@@ -459,27 +473,27 @@ const H = () => n((t) => {
459
473
  });
460
474
  };
461
475
  let v = 0, J = 0;
462
- const dt = (t, e) => {
476
+ const vt = (t, e) => {
463
477
  const o = b(t, e), s = n((i) => i.setSidebarActions);
464
478
  d(() => (v++, v > 1 && console.error("Capytale iframe React: Multiple sidebar actions registered: ", v), () => {
465
479
  v--;
466
480
  }), []), d(() => (C.use(["meta-player-ui"], ([i]) => {
467
- var l;
481
+ var u;
468
482
  if (i.version === 0) {
469
483
  console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");
470
484
  return;
471
485
  }
472
486
  J++;
473
- const c = o.map((a, u) => ({
487
+ const c = o.map((a, l) => ({
474
488
  type: a.type,
475
489
  title: a.title,
476
490
  icon: a.icon,
477
- id: `sa-${J}-${u}`,
491
+ id: `sa-${J}-${l}`,
478
492
  ...a.type === "file-upload" ? { accept: a.accept } : {}
479
493
  })), r = {};
480
- o.forEach((a, u) => {
481
- r[`sa-${J}-${u}`] = a.action;
482
- }), (l = i.i) == null || l.setSidebarActionButtons(c), s(r);
494
+ o.forEach((a, l) => {
495
+ r[`sa-${J}-${l}`] = a.action;
496
+ }), (u = i.i) == null || u.setSidebarActionButtons(c), s(r);
483
497
  }), () => {
484
498
  s({}), C.use(["meta-player-ui"], ([i]) => {
485
499
  var c;
@@ -491,28 +505,28 @@ const dt = (t, e) => {
491
505
  });
492
506
  }), [o]);
493
507
  };
494
- let p = 0, F = 0;
495
- const gt = (t, e) => {
508
+ let y = 0, F = 0;
509
+ const yt = (t, e) => {
496
510
  const o = b(t, e), s = n((i) => i.setQuickActions);
497
- d(() => (p++, p > 1 && console.error("Capytale iframe React: Multiple quick actions registered: ", p), () => {
498
- p--;
511
+ d(() => (y++, y > 1 && console.error("Capytale iframe React: Multiple quick actions registered: ", y), () => {
512
+ y--;
499
513
  }), []), d(() => (C.use(["meta-player-ui"], ([i]) => {
500
- var l;
514
+ var u;
501
515
  if (i.version === 0) {
502
516
  console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");
503
517
  return;
504
518
  }
505
519
  F++;
506
- const c = o.map((a, u) => ({
520
+ const c = o.map((a, l) => ({
507
521
  type: a.type,
508
522
  title: a.title,
509
523
  icon: a.icon,
510
- id: `qa-${F}-${u}`,
524
+ id: `qa-${F}-${l}`,
511
525
  ...a.type === "file-upload" ? { accept: a.accept } : {}
512
526
  })), r = {};
513
- o.forEach((a, u) => {
514
- r[`qa-${F}-${u}`] = a.action;
515
- }), (l = i.i) == null || l.setQuickActionButtons(c), s(r);
527
+ o.forEach((a, l) => {
528
+ r[`qa-${F}-${l}`] = a.action;
529
+ }), (u = i.i) == null || u.setQuickActionButtons(c), s(r);
516
530
  }), () => {
517
531
  s({}), C.use(["meta-player-ui"], ([i]) => {
518
532
  var c;
@@ -524,26 +538,26 @@ const gt = (t, e) => {
524
538
  });
525
539
  }), [o]);
526
540
  };
527
- let f = 0;
528
- const Ct = (t, e) => {
529
- const o = b(t, e), s = n((r) => r.setActivitySettings), i = n((r) => r.activitySettings), c = B("");
530
- return d(() => (console.log("Mounting useSettings"), f++, f > 1 && console.error("Capytale iframe React: Multiple settings registered: ", f), () => {
531
- f--;
541
+ let A = 0;
542
+ const At = (t, e) => {
543
+ const o = b(t, e), s = n((r) => r.setActivitySettings), i = n((r) => r.activitySettings), c = E("");
544
+ return d(() => (console.log("Mounting useSettings"), A++, A > 1 && console.error("Capytale iframe React: Multiple settings registered: ", A), () => {
545
+ A--;
532
546
  }), []), d(() => {
533
547
  const r = JSON.stringify(o);
534
548
  if (r !== c.current)
535
- return c.current = r, C.use(["meta-player-ui"], ([l]) => {
549
+ return c.current = r, C.use(["meta-player-ui"], ([u]) => {
536
550
  var a;
537
- if (l.version === 0) {
551
+ if (u.version === 0) {
538
552
  console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");
539
553
  return;
540
554
  }
541
- console.log("Updating settings UI in MetaPlayer", o), (a = l.i) == null || a.setSettingsUI(o);
555
+ console.log("Updating settings UI in MetaPlayer", o), (a = u.i) == null || a.setSettingsUI(o);
542
556
  }), () => {
543
557
  s(null);
544
558
  };
545
559
  }, [o]), i;
546
- }, St = () => (e) => {
560
+ }, ft = () => (e) => {
547
561
  C.use(["meta-player-ui"], ([o]) => {
548
562
  var s;
549
563
  if (o.version === 0) {
@@ -555,12 +569,18 @@ const Ct = (t, e) => {
555
569
  };
556
570
  export {
557
571
  O as Capytale,
558
- rt as useAfterSaveAction,
559
- at as useJsonActivityBinaryDataSaveFunction,
560
- st as useJsonActivityContentSaveFunction,
561
- ct as useJsonAssignmentBinaryDataSaveFunction,
562
- it as useJsonAssignmentContentSaveFunction,
563
- ot as useJsonContentSaveFunction,
572
+ St as useAfterSaveAction,
573
+ st as useGetLoadedJsonActivityContent,
574
+ at as useGetLoadedJsonActivitySplitContent,
575
+ it as useGetLoadedJsonAssignmentContent,
576
+ ct as useGetLoadedJsonAssignmentSplitContent,
577
+ ot as useGetLoadedJsonContent,
578
+ nt as useGetLoadedTextContent,
579
+ ut as useJsonActivityContentSaveFunction,
580
+ gt as useJsonActivitySplitContentSaveFunction,
581
+ dt as useJsonAssignmentContentSaveFunction,
582
+ Ct as useJsonAssignmentSplitContentSaveFunction,
583
+ lt as useJsonContentSaveFunction,
564
584
  tt as useLoadedJsonActivityBinaryData,
565
585
  Y as useLoadedJsonActivityContent,
566
586
  et as useLoadedJsonAssignmentBinaryData,
@@ -569,14 +589,14 @@ export {
569
589
  K as useLoadedTextContent,
570
590
  H as useMode,
571
591
  z as useNotifyIsDirty,
572
- lt as usePreviewImageFile,
573
- ut as usePreviewTextFile,
574
- gt as useQuickActions,
592
+ mt as usePreviewImageFile,
593
+ pt as usePreviewTextFile,
594
+ yt as useQuickActions,
575
595
  _ as useRequestSave,
576
- Ct as useSettings,
577
- St as useShowToast,
578
- dt as useSidebarActions,
579
- nt as useTextContentSaveFunction,
596
+ At as useSettings,
597
+ ft as useShowToast,
598
+ vt as useSidebarActions,
599
+ rt as useTextContentSaveFunction,
580
600
  V as useTheme,
581
601
  U as useWorkflow
582
602
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capytale/iframe-react",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite",