@capytale/iframe-react 1.1.0 → 1.1.2
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 +1 -1
- package/dist/index.d.ts +20 -2
- package/dist/index.es.js +116 -96
- package/package.json +1 -1
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
|
|
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
|
|
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
|
|
3
|
-
import { getSocket as
|
|
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 = (
|
|
7
|
-
const g = typeof
|
|
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
|
|
10
|
-
e = S ?? (typeof g != "object" || g === null) ? g : Object.assign({}, e, g), o.forEach((
|
|
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,
|
|
13
|
-
return
|
|
14
|
-
}, j = (t) => t ? h(t) : h,
|
|
15
|
-
function
|
|
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) =>
|
|
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,
|
|
29
|
-
let
|
|
30
|
-
if (
|
|
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
|
-
|
|
34
|
-
const
|
|
35
|
-
if (!S(g,
|
|
36
|
-
const
|
|
37
|
-
|
|
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 &&
|
|
39
|
+
}, a != null && a.fireImmediately && u(g, g);
|
|
40
40
|
}
|
|
41
|
-
return i(
|
|
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: () =>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
80
|
-
t({
|
|
91
|
+
setGetJsonActivitySplitContentFunction: (e) => {
|
|
92
|
+
t({ getJsonActivitySplitContentFunction: e });
|
|
81
93
|
},
|
|
82
|
-
|
|
83
|
-
t({
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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 (!
|
|
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
|
|
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 =
|
|
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 = (
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
437
|
+
}, gt = (t) => {
|
|
424
438
|
const e = n(
|
|
425
|
-
(o) => o.
|
|
439
|
+
(o) => o.setGetJsonActivitySplitContentFunction
|
|
426
440
|
);
|
|
427
441
|
d(() => {
|
|
428
442
|
e(t);
|
|
429
443
|
}, [t, e]);
|
|
430
|
-
},
|
|
444
|
+
}, Ct = (t) => {
|
|
431
445
|
const e = n(
|
|
432
|
-
(o) => o.
|
|
446
|
+
(o) => o.setGetJsonAssignmentSplitContentFunction
|
|
433
447
|
);
|
|
434
448
|
d(() => {
|
|
435
449
|
e(t);
|
|
436
450
|
}, [t, e]);
|
|
437
|
-
},
|
|
451
|
+
}, St = (t) => {
|
|
438
452
|
const e = n((o) => o.afterSaveCount);
|
|
439
453
|
d(() => {
|
|
440
454
|
e > 0 && t();
|
|
441
455
|
}, [e]);
|
|
442
|
-
},
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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,
|
|
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}-${
|
|
491
|
+
id: `sa-${J}-${l}`,
|
|
478
492
|
...a.type === "file-upload" ? { accept: a.accept } : {}
|
|
479
493
|
})), r = {};
|
|
480
|
-
o.forEach((a,
|
|
481
|
-
r[`sa-${J}-${
|
|
482
|
-
}), (
|
|
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
|
|
495
|
-
const
|
|
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(() => (
|
|
498
|
-
|
|
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
|
|
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,
|
|
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}-${
|
|
524
|
+
id: `qa-${F}-${l}`,
|
|
511
525
|
...a.type === "file-upload" ? { accept: a.accept } : {}
|
|
512
526
|
})), r = {};
|
|
513
|
-
o.forEach((a,
|
|
514
|
-
r[`qa-${F}-${
|
|
515
|
-
}), (
|
|
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
|
|
528
|
-
const
|
|
529
|
-
const o = b(t, e), s = n((r) => r.setActivitySettings), i = n((r) => r.activitySettings), c =
|
|
530
|
-
return d(() => (console.log("Mounting useSettings"),
|
|
531
|
-
|
|
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"], ([
|
|
549
|
+
return c.current = r, C.use(["meta-player-ui"], ([u]) => {
|
|
536
550
|
var a;
|
|
537
|
-
if (
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
ot as
|
|
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
|
-
|
|
573
|
-
|
|
574
|
-
|
|
592
|
+
mt as usePreviewImageFile,
|
|
593
|
+
pt as usePreviewTextFile,
|
|
594
|
+
yt as useQuickActions,
|
|
575
595
|
_ as useRequestSave,
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
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
|
};
|