@capytale/iframe-react 1.1.13 → 1.1.14
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 +2 -0
- package/dist/index.es.js +86 -81
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("react/jsx-runtime"),v=require("react");const X=Symbol("Comlink.proxy"),ge=Symbol("Comlink.endpoint"),pe=Symbol("Comlink.releaseProxy"),N=Symbol("Comlink.finalizer"),D=Symbol("Comlink.thrown"),Z=e=>typeof e=="object"&&e!==null||typeof e=="function",me={canHandle:e=>Z(e)&&e[X],serialize(e){const{port1:t,port2:n}=new MessageChannel;return z(e,t),[n,[n]]},deserialize(e){return e.start(),ne(e)}},ye={canHandle:e=>Z(e)&&D in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},ee=new Map([["proxy",me],["throw",ye]]);function ve(e,t){for(const n of e)if(t===n||n==="*"||n instanceof RegExp&&n.test(t))return!0;return!1}function z(e,t=globalThis,n=["*"]){t.addEventListener("message",function s(o){if(!o||!o.data)return;if(!ve(n,o.origin)){console.warn(`Invalid origin '${o.origin}' for comlink proxy`);return}const{id:r,type:g,path:c}=Object.assign({path:[]},o.data),f=(o.data.argumentList||[]).map(k);let d;try{const u=c.slice(0,-1).reduce((y,S)=>y[S],e),p=c.reduce((y,S)=>y[S],e);switch(g){case"GET":d=p;break;case"SET":u[c.slice(-1)[0]]=k(o.data.value),d=!0;break;case"APPLY":d=p.apply(u,f);break;case"CONSTRUCT":{const y=new p(...f);d=se(y)}break;case"ENDPOINT":{const{port1:y,port2:S}=new MessageChannel;z(e,S),d=he(y,[y])}break;case"RELEASE":d=void 0;break;default:return}}catch(u){d={value:u,[D]:0}}Promise.resolve(d).catch(u=>({value:u,[D]:0})).then(u=>{const[p,y]=$(u);t.postMessage(Object.assign(Object.assign({},p),{id:r}),y),g==="RELEASE"&&(t.removeEventListener("message",s),te(t),N in e&&typeof e[N]=="function"&&e[N]())}).catch(u=>{const[p,y]=$({value:new TypeError("Unserializable return value"),[D]:0});t.postMessage(Object.assign(Object.assign({},p),{id:r}),y)})}),t.start&&t.start()}function Ce(e){return e.constructor.name==="MessagePort"}function te(e){Ce(e)&&e.close()}function ne(e,t){const n=new Map;return e.addEventListener("message",function(o){const{data:r}=o;if(!r||!r.id)return;const g=n.get(r.id);if(g)try{g(r)}finally{n.delete(r.id)}}),H(e,n,[],t)}function P(e){if(e)throw new Error("Proxy has been released and is not useable")}function oe(e){return x(e,new Map,{type:"RELEASE"}).then(()=>{te(e)})}const I=new WeakMap,j="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{const t=(I.get(e)||0)-1;I.set(e,t),t===0&&oe(e)});function Se(e,t){const n=(I.get(t)||0)+1;I.set(t,n),j&&j.register(e,t,e)}function we(e){j&&j.unregister(e)}function H(e,t,n=[],s=function(){}){let o=!1;const r=new Proxy(s,{get(g,c){if(P(o),c===pe)return()=>{we(r),oe(e),t.clear(),o=!0};if(c==="then"){if(n.length===0)return{then:()=>r};const f=x(e,t,{type:"GET",path:n.map(d=>d.toString())}).then(k);return f.then.bind(f)}return H(e,t,[...n,c])},set(g,c,f){P(o);const[d,u]=$(f);return x(e,t,{type:"SET",path:[...n,c].map(p=>p.toString()),value:d},u).then(k)},apply(g,c,f){P(o);const d=n[n.length-1];if(d===ge)return x(e,t,{type:"ENDPOINT"}).then(k);if(d==="bind")return H(e,t,n.slice(0,-1));const[u,p]=U(f);return x(e,t,{type:"APPLY",path:n.map(y=>y.toString()),argumentList:u},p).then(k)},construct(g,c){P(o);const[f,d]=U(c);return x(e,t,{type:"CONSTRUCT",path:n.map(u=>u.toString()),argumentList:f},d).then(k)}});return Se(r,e),r}function Ae(e){return Array.prototype.concat.apply([],e)}function U(e){const t=e.map($);return[t.map(n=>n[0]),Ae(t.map(n=>n[1]))]}const re=new WeakMap;function he(e,t){return re.set(e,t),e}function se(e){return Object.assign(e,{[X]:!0})}function be(e,t=globalThis,n="*"){return{postMessage:(s,o)=>e.postMessage(s,n,o),addEventListener:t.addEventListener.bind(t),removeEventListener:t.removeEventListener.bind(t)}}function $(e){for(const[t,n]of ee)if(n.canHandle(e)){const[s,o]=n.serialize(e);return[{type:"HANDLER",name:t,value:s},o]}return[{type:"RAW",value:e},re.get(e)||[]]}function k(e){switch(e.type){case"HANDLER":return ee.get(e.name).deserialize(e.value);case"RAW":return e.value}}function x(e,t,n,s){return new Promise(o=>{const r=Ee();t.set(r,o),e.start&&e.start(),e.postMessage(Object.assign({id:r},n),s)})}function Ee(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function Je(e,t){return e.length===0?t:`[${e}] ${t}`}function ke(e,t){let n=!1,s,o,r;function g(u){return Je(e,u)}let c,f=!1;if(window.parent===window)console.warn(g("Contract link is not supported in standalone mode")),c={ready(){return Promise.resolve()},declare(){return Promise.resolve()},done(){return Promise.resolve()},provide(u,p,y){return Promise.resolve()}};else{const u=be(window.parent,void 0,t);z({declare(p){if(s==null)throw new Error(g("No handler for declare"));s(p)},done(){if(o==null)throw new Error(g("No handler for done"));o()},provide(p,y,S){if(r==null)throw new Error(g("No handler for provide"));r(p,y,S)}},u),c=ne(u),f=!0}const d=()=>{if(!n){if(s==null||o==null||r==null)return;n=!0,c.ready()}};return{declare:u=>c.declare(u),done:()=>c.done(),provide:(u,p,y)=>c.provide(u,p,se(y)),get name(){return e},get isReady(){return f},set onDeclare(u){s=u,d()},set onDone(u){o=u,d()},set onProvide(u){r=u,d()}}}function Fe(e){return function(t){let n,s=!1,o=!1,r,g,c=!1,f=!1,d,u,p,y;function S(){if(r!=null&&r!==0&&g!=null)return g}function E(a){if(r!=null&&g!=null&&!(a>r))return g}function h(){return p??(f?p=Promise.resolve():p=new Promise((a,l)=>{y=a}))}function F(){return d===void 0&&(d={get name(){return t},get version(){return r},get i(){return S()},v:a=>E(a)}),d}function R(){return u===void 0&&(u={get name(){return t},get version(){return f?r:void 0},get i(){return f?S():void 0},v:a=>f?E(a):void 0,get promise(){return r===0?Promise.reject(e("Remote interface not provided")):h().then(()=>{if(r===0)throw new Error(e("Remote interface not provided"));return F()})}}),u}function J(){y!=null&&(y(),y=void 0)}return{get name(){return t},get localVersion(){if(n!=null)return n},set localVersion(a){if(n!=null&&n!==a)throw new Error(e("A different local version is already set"));n=a},get localVersionSent(){return s},set localVersionSent(a){if(!a&&s)throw new Error(e("Local version already notified"));s=a,a&&n===0&&(o=!0)},get localInterfaceSent(){return o},set localInterfaceSent(a){if(n==null)throw new Error(e("Local version not set"));if(!a&&o)throw new Error(e("Local interface already sent."));o=a},get remoteVersion(){if(r!=null)return r},set remoteVersion(a){if(r!=null&&r!==a)throw new Error(e("A different remote version is already set for "+t+`(${r} -> ${a})`));r=a,a===0&&(c=!0)},get remoteVersionReceived(){return r!=null},setRemoteInterface:a=>{if(r==null)throw new Error(e("Remote version not set"));if(r===0){console.warn(e("Remote version is 0, remote interface is ignored."));return}if(c)throw new Error(e("Interface already provided."));g=a,c=!0},get remoteInterfaceReceived(){return c},depGroup:void 0,get isActivable(){return c&&o},get isActivated(){return f},activate(){if(!f){if(!c)throw new Error(e("Remote interface not provided."));if(!o)throw new Error(e("Local interface not sent"));f=!0,J()}},getRemote:()=>F(),getLazyRemote:()=>R(),get activationPromise(){return h()}}}}function Te(e){return function(t,n,s,o){let r=s,g=!1,c=!1;function f(){return t.every(d=>d.remoteVersionReceived&&d.localVersionSent)&&n.every(d=>d.remoteVersionReceived)}return{get isDeclared(){return c},set isDeclared(d){if(!d&&c)throw new Error(e("Factory already declared"));c=d},get isReady(){return f()},get isDone(){return g},get args(){return t},get deps(){return n},invoke(){if(g)throw new Error(e("Factory already invoked"));if(!f())throw new Error(e("Factory is not ready"));let d;o?d=t.map(y=>y.getRemote()):d=t[0].getRemote();let u;const p=n.length>0?n.map(y=>y.getRemote()):null;try{u=p==null?r(d):r(d,p)}catch(y){throw new Error(e("error in factory:"),{cause:y})}if(o||(u=[u]),u.length!=t.length)throw new Error(e("Invalid factory result"));return g=!0,r=null,u}}}}function xe(e){return function(t,n,s,o){let r=n,g=!1;function c(){return t.every(f=>f.isActivated)}return{get isReady(){return c()},get isDone(){return g},get args(){return t},invoke(){if(g||!c()){const u=new Error(e(g?"callback already invoked":"callback parameters are not ready"));throw o?.[1](u),u}const f=s?t.map(u=>u.getRemote()):t[0].getRemote();let d;try{d=r(f)}catch(u){o==null?console.error(e("error in callback:"),u):o[1](u)}finally{g=!0}o?.[0](d)}}}}function ae(e,t){return e==null||e.length===0?t:`[${e}] ${t}`}function Re(e){function t(a){return ae(e.name,a)}const n=xe(t),s=Fe(t),o=Te(t),r={},g=[];let c=[],f;const d=()=>(f==null?f=0:f++,f);function u(a){let l=r[a];return l==null&&(l=s(a),l.localVersion==null&&(h&&(l.localVersion=0),F&&(l.localVersionSent=!0)),l.remoteVersion==null&&R&&(l.remoteVersion=0),r[a]=l),l}function p(a){return a.map(u)}function y(...a){const l=d(),m=Array(l).fill(!1);a.forEach(C=>{C.forEach(w=>{w.depGroup!=null&&(m[w.depGroup]=!0),w.depGroup=l})}),Object.values(r).forEach(C=>{C.depGroup!=null&&C.depGroup!==l&&m[C.depGroup]&&(C.depGroup=l)})}e.onDeclare=a=>{const l=p(a.map(m=>m.name));for(let m=0;m<a.length;m++)a[m].version!=null&&(l[m].remoteVersion=a[m].version);y(l),J()},e.onDone=()=>{R||(R=!0,Object.values(r).forEach(a=>{a.remoteVersion==null&&(a.remoteVersion=0)}),J())},e.onProvide=(a,l,m)=>{let C=r[a];if(C==null)throw new Error(t(`Contract not declared : ${a}`));if(C.remoteVersion!=l)throw new Error(t(`Remote declared version ${C.remoteVersion} of contract "${a}" but provided version ${l}.`));if(C.remoteInterfaceReceived)throw new Error(t(`Remote contract "${a}" is already provided.`));C.setRemoteInterface(m),J()};let S=!1,E=!1,h=!1,F=!1,R=!1;async function J(){if(E=!0,!S){for(S=!0;E;){if(E=!1,e.isReady){const a=g.filter(l=>!l.isDeclared);if(a.length>0)for(const l of a){const m=Array(l.args.length+l.deps.length);l.args.forEach((C,w)=>m[w]=C),l.deps.forEach((C,w)=>m[w+l.args.length]=C),await e.declare(m.map(C=>({name:C.name,version:C.localVersion}))),m.forEach(C=>{C.localVersion!=null&&(C.localVersionSent=!0)}),l.isDeclared=!0}}if(e.isReady&&h&&g.every(a=>a.isDeclared)){const a=Object.values(r).filter(l=>!l.localVersionSent&&l.localVersion!=null);if(a.length>0)for(const l of a)await e.declare([{name:l.name,version:l.localVersion}]),l.localVersionSent=!0;F||(F=!0,await e.done())}if(e.isReady){const a=g.filter(l=>!l.isDone&&l.isReady);if(a.length>0)for(const l of a){const m=l.invoke();for(let C=0;C<l.args.length;C++){const w=l.args[C];await e.provide(w.name,w.localVersion,m[C]),w.localInterfaceSent=!0}}}if(f!=null){const a=Array(f+1).fill(null);for(const l in r){const m=r[l];m.depGroup!=null&&(m.isActivable?a[m.depGroup]==null&&!m.isActivated&&(a[m.depGroup]=!0):a[m.depGroup]=!1)}if(a.some(l=>l===!0))for(const l in r){const m=r[l];m.depGroup!=null&&a[m.depGroup]&&m.activate()}}if(e.isReady){const a=c;c=[];const l=[];for(const m of a)!m.isDone&&m.isReady?m.invoke():l.push(m);l.push(...c),c=l}}S=!1}}return{get(a){return u(a)},declareFactory:(a,l,m,C)=>{if(h)throw new Error(t("Cannot declare a factory after done has been set to true."));const w=p(a.map(b=>b.name));{const b=w.filter(O=>O.localVersion!=null);if(b.length>0)throw new Error(t("Cannot declare a factory for already implemented contracts : "+b.map(O=>O.name).join(", ")))}for(let b=0;b<a.length;b++)w[b].localVersion=a[b].version;const T=p(l);y(w,T);const fe=o(w,T,m,C);g.push(fe),J()},declareCallback(a,l,m,C){const w=p(a),T=n(w,l,m,C);!S&&c.length===0&&T.isReady?T.invoke():(c.push(T),J())},get done(){return h},set done(a){if(h){if(!a)throw new Error(t("Cannot set done to false after it has been set to true."))}else a&&(h=!0,Object.values(r).forEach(l=>{l.localVersion==null&&(l.localVersion=0)}),J())}}}const Le=/^\d+$/;function Pe(e){const[t,n,s]=e.split(":",3);if(n==null||s!=null||!Le.test(n))return null;const o=parseInt(n);return isNaN(o)||o===0?null:{name:t,version:o}}function Me(e){const t=Re(e);function n(s){return ae(e.name,s)}return{plug(s,o,r=void 0){if(t.done)throw new Error(n("Cannot plug after plugsDone."));r==null&&(r=o,o=[]);let g=!0;Array.isArray(s)||(s=[s],g=!1);const c=s.map(f=>{const d=Pe(f);if(d==null)throw new Error(n("Invalid contract id : "+f));return d});t.declareFactory(c,o,r,g)},plugsDone(){t.done=!0},use(s,o){let r=!0;Array.isArray(s)||(s=[s],r=!1),t.declareCallback(s,o,r)},exec(s,o){let r=!0;return Array.isArray(s)||(s=[s],r=!1),new Promise((...g)=>{t.declareCallback(s,o,r,g)})},get(s){return s.map(o=>t.get(o).getLazyRemote())}}}const ie="app-agent";let q;function Ve(e){return q!=null||(q=Me(ke(ie,e))),q}console.log(`[${ie}@1.0.12] loaded`);const Q=e=>{let t;const n=new Set,s=(d,u)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const y=t;t=u??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(S=>S(t,y))}},o=()=>t,c={setState:s,getState:o,getInitialState:()=>f,subscribe:d=>(n.add(d),()=>n.delete(d))},f=t=e(s,o,c);return c},Ge=e=>e?Q(e):Q,De=e=>e;function Ie(e,t=De){const n=v.useSyncExternalStore(e.subscribe,v.useCallback(()=>t(e.getState()),[e,t]),v.useCallback(()=>t(e.getInitialState()),[e,t]));return v.useDebugValue(n),n}const _=e=>{const t=Ge(e),n=s=>Ie(t,s);return Object.assign(n,t),n},ce=e=>e?_(e):_,je=e=>(t,n,s)=>{const o=s.subscribe;return s.subscribe=(g,c,f)=>{let d=g;if(c){const u=f?.equalityFn||Object.is;let p=g(s.getState());d=y=>{const S=g(y);if(!u(p,S)){const E=p;c(p=S,E)}},f?.fireImmediately&&c(p,p)}return o(d)},e(t,n,s)},$e=je,i=ce()($e(e=>({ready:!1,workflow:"current",mode:"assignment",theme:"light",saveCount:0,canSave:!1,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:{},activitySettingsCallback:null,setGetTextContentFunction:t=>{e({getTextContentFunction:t})},setGetJsonContentFunction:t=>{e({getJsonContentFunction:t})},setGetJsonActivityContentFunction:t=>{e({getJsonActivityContentFunction:t})},setGetJsonAssignmentContentFunction:t=>{e({getJsonAssignmentContentFunction:t})},setGetJsonActivitySplitContentFunction:t=>{e({getJsonActivitySplitContentFunction:t})},setGetJsonAssignmentSplitContentFunction:t=>{e({getJsonAssignmentSplitContentFunction:t})},setSidebarActions:t=>{e({sidebarActions:t})},setQuickActions:t=>{e({quickActions:t})},setActivitySettingsCallback:t=>{e({activitySettingsCallback:t})},incSaveCount:()=>e(t=>({saveCount:t.saveCount+1})),incDirtyCount:()=>e(t=>({isDirtyCount:t.isDirtyCount+1}))})));let Y=!1;const Oe=["meta-player-events:1","meta-player-ui:1","mode:1","reload:1","theme:1","workflow:1","trigger-save: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"],K={"mode:1":{setMode:e=>{i.setState({mode:e})}},"reload:1":{reloaded:e=>{console.log("Reloaded with state:",e),console.error("Not implemented yet")}},"theme:1":{setTheme:e=>{if(e===null){i.setState({theme:null});return}if(e!=="light"&&e!=="dark"){console.warn(`Invalid theme: ${e}. Expected 'light' or 'dark'.`),i.setState({theme:null});return}i.setState({theme:e})}},"workflow:1":{setWorkflow:e=>{i.setState({workflow:e})}},"trigger-save:1":{setCanSave(e){i.setState({canSave:e})}},"simple-content(text):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})}},"simple-content(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getJsonContentFunction(),loadContent:e=>{i.setState({loadedJsonContent:e})}},"simple-binary-data(text):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})}},"simple-content-eval(text):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"simple-content-eval(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getJsonContentFunction(),loadContent:e=>{i.setState({loadedJsonContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(json):2":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getJsonContentFunction(),loadContent:e=>{i.setState({loadedJsonContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(text):2":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"separate-contents(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},loadContent:(e,t)=>{i.setState({loadedJsonActivityContent:e,loadedJsonAssignmentContent:t})},getActivityContent:()=>i.getState().getJsonActivityContentFunction(),getAssignmentContent:()=>i.getState().getJsonAssignmentContentFunction()},"separate-dual-contents(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},loadContent:({activityContent:e,assignmentContent:t,activityBinaryData:n,assignmentBinaryData:s})=>{i.setState({loadedJsonActivityContent:e,loadedJsonAssignmentContent:t,loadedJsonActivityBinaryData:n,loadedJsonAssignmentBinaryData:s})},getActivityContentAndData:()=>(console.log("Getting activity content and data"),i.getState().getJsonActivitySplitContentFunction()),getAssignmentContentAndData:()=>(console.log("Getting assignment content and data"),i.getState().getJsonAssignmentSplitContentFunction())},"meta-player-anti-cheat:1":{lock:()=>{},unlock:()=>{}},"meta-player-ui:1":{executeAction(e){if(console.log("Executing action:",e),e.startsWith("qa")){const n=i.getState().quickActions[e];n?n():console.error(`Quick action not found: ${e}`)}else{const n=i.getState().sidebarActions[e];n?n():console.error(`Sidebar action not found: ${e}`)}},executeFileUpload(e,t){if(e.startsWith("qa")){const s=i.getState().quickActions[e];s?s(t):console.error(`Quick action not found: ${e}`)}else{const s=i.getState().sidebarActions[e];s?s(t):console.error(`Sidebar action not found: ${e}`)}},updateSettings(e){const t=i.getState().activitySettingsCallback;t?t(e):console.warn("activitySettingsCallback is not set. Changes:",e)}},"meta-player-events:1":{handleEvent(e){e==="all-loaded"&&i.setState({ready:!0})}}},A=Ve();function Ne(e){if(console.log("Contracts to plug:",e),Y){console.warn("Contracts have already been plugged. Skipping.");return}Y=!0;for(const t of e){if(!Oe.includes(t)){console.warn(`Contract ${t} is not implemented in Capytale. Skipping plug.`);continue}if(!(t in K)){console.warn(`Contract handler for ${t} is not defined. Skipping plug.`);continue}const n=K[t];A.plug([t],([])=>(console.log(`Contract ${t} plugged.`),[n]))}A.plugsDone();for(const t 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","separate-contents(json):1","separate-dual-contents(json):1"])if(console.log(`Contract ${t} is being subscribed to content changes.`),e.includes(t)){console.log(`Subscribing to content changes for contract ${t}`);const n=t.split(":")[0];A.use([n],([s])=>{i.subscribe(o=>o.isDirtyCount,()=>{s.i?.contentChanged(),console.log(`Content changed for contract ${n}`)})})}}const qe=()=>i(e=>{if(e.mode===null)throw new Error("Mode is not set. Have you used contract 'mode'?");return e.mode}),Be=()=>i(e=>{if(e.workflow===null)throw new Error("Workflow is not set. Have you used contract 'workflow'?");return e.workflow}),We=()=>i(e=>{if(e.theme===null)throw new Error("Theme is not set. Have you used contract 'theme'?");return e.theme}),He=()=>i(e=>e.incSaveCount),ze=()=>i(e=>e.incDirtyCount),Ue=()=>i(e=>e.loadedTextContent),Qe=()=>i(e=>e.loadedJsonContent),_e=()=>i(e=>e.loadedJsonActivityContent),Ye=()=>i(e=>e.loadedJsonAssignmentContent),Ke=()=>i(e=>e.loadedJsonActivityBinaryData),Xe=()=>i(e=>e.loadedJsonAssignmentBinaryData),Ze=()=>v.useCallback(()=>i.getState().loadedTextContent,[]),et=()=>v.useCallback(()=>i.getState().loadedJsonContent,[]),tt=()=>v.useCallback(()=>i.getState().loadedJsonActivityContent,[]),nt=()=>v.useCallback(()=>i.getState().loadedJsonAssignmentContent,[]),ot=()=>v.useCallback(()=>({content:i.getState().loadedJsonActivityContent,binaryData:i.getState().loadedJsonActivityBinaryData}),[]),rt=()=>v.useCallback(()=>({content:i.getState().loadedJsonAssignmentContent,binaryData:i.getState().loadedJsonAssignmentBinaryData}),[]),st=e=>{const t=i(n=>n.setGetTextContentFunction);v.useEffect(()=>{t(e)},[e,t])},at=e=>{const t=i(n=>n.setGetJsonContentFunction);v.useEffect(()=>{t(e)},[e,t])},it=e=>{const t=i(n=>n.setGetJsonActivityContentFunction);v.useEffect(()=>{t(e)},[e,t])},ct=e=>{const t=i(n=>n.setGetJsonAssignmentContentFunction);v.useEffect(()=>{t(e)},[e,t])},lt=e=>{const t=i(n=>n.setGetJsonActivitySplitContentFunction);v.useEffect(()=>{t(e)},[e,t])},ut=e=>{const t=i(n=>n.setGetJsonAssignmentSplitContentFunction);v.useEffect(()=>{t(e)},[e,t])},dt=e=>{const t=i(n=>n.afterSaveCount);v.useEffect(()=>{t>0&&e()},[t])},ft=()=>(e,t)=>{A.use(["meta-player-ui"],([n])=>{if(n.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}n.i?.previewTextFile(e,t)})},gt=()=>(e,t)=>{A.use(["meta-player-ui"],([n])=>{if(n.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}n.i?.previewImageFile(e,t)})};let M=0,B=0;const pt=(e,t)=>{const n=v.useMemo(e,t),s=i(o=>o.setSidebarActions);v.useEffect(()=>(M++,M>1&&console.error("Capytale iframe React: Multiple sidebar actions registered: ",M),()=>{M--}),[]),v.useEffect(()=>(A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}B++;const r=n.map((c,f)=>({type:c.type,title:c.title,icon:c.icon,id:`sa-${B}-${f}`,...c.type==="file-upload"?{accept:c.accept}:{}})),g={};n.forEach((c,f)=>{g[`sa-${B}-${f}`]=c.action}),o.i?.setSidebarActionButtons(r),s(g)}),()=>{s({}),A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}o.i?.setSidebarActionButtons([])})}),[n])};let V=0,W=0;const mt=(e,t)=>{const n=v.useMemo(e,t),s=i(o=>o.setQuickActions);v.useEffect(()=>(V++,V>1&&console.error("Capytale iframe React: Multiple quick actions registered: ",V),()=>{V--}),[]),v.useEffect(()=>(A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}W++;const r=n.map((c,f)=>({type:c.type,title:c.title,icon:c.icon,id:`qa-${W}-${f}`,...c.type==="file-upload"?{accept:c.accept}:{}})),g={};n.forEach((c,f)=>{g[`qa-${W}-${f}`]=c.action}),o.i?.setQuickActionButtons(r),s(g)}),()=>{s({}),A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}o.i?.setQuickActionButtons([])})}),[n])};let G=0;const le=(e,t,n)=>{const s=v.useMemo(e,n),o=i(r=>r.setActivitySettingsCallback);v.useEffect(()=>(console.log("Mounting useSettings"),G++,G>1&&console.error("Capytale iframe React: Multiple settings registered: ",G),()=>{console.log("Unmounting useSettings"),G--}),[]),v.useEffect(()=>(A.use(["meta-player-ui"],([r])=>{if(r.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}console.log("Updating settings UI in MetaPlayer",s),r.i?.setSettingsUI(s)}),o(t),()=>{o(null)}),[s])},ue=()=>v.useCallback(t=>A.exec(["meta-player-ui"],([n])=>{if(n.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui"),new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return n.i?.showToast(t)}),[]),de=()=>v.useCallback(t=>A.exec(["meta-player-ui"],([n])=>{if(n.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui"),new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return n.i?.clearToast(t)}),[]),yt=()=>v.useCallback(()=>A.exec(["meta-player-ui"],([t])=>{if(t.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui"),new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return t.i?.clearToasts()}),[]),vt=()=>v.useCallback(()=>A.exec(["trigger-save"],([t])=>{if(t.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat trigger-save"),new Error("Le MétaPlayer ne supporte pas le contrat trigger-save");return t.i?.triggerSave()}),[]),Ct=()=>i(e=>e.canSave);function St(e){const t={};for(const n of e.fields)t[n.name]=n.defaultValue;return t}function wt(e){return{[e.name]:e.defaultValues}}function At(e){return{[e.name]:e.defaultValue}}function ht(e){switch(e.type){case"form":return St(e);case"checkboxes":case"switches":return wt(e);case"radio":return At(e);default:return{}}}function bt(e){const t={};for(const n of e)Object.assign(t,ht(n));return t}function Et(e){const n=ce()(s=>({...bt(e)}));return n.activitySettings=e,n}function Jt(e){le(()=>e.activitySettings,t=>{e.setState(t)},[])}function kt({store:e}){return Jt(e),null}const Ft=["meta-player-events:1","meta-player-ui:1","mode:1","workflow:1"];function Tt({children:e,contracts:t,loadOnlyWhenReady:n=!0,activitySettingsStore:s}){const o=i(r=>r.ready);return v.useEffect(()=>{const r=[...t];for(const g of Ft)r.includes(g)||r.push(g);Ne(r)},[]),n&&!o?L.jsx("div",{className:"capy-loading-container",children:"Chargement en cours..."}):L.jsxs(L.Fragment,{children:[s&&L.jsx(kt,{store:s}),e]})}function xt({message:e}){const t=ue(),n=de();return v.useEffect(()=>{const s=t(e);return()=>{s.then(o=>{o!=null&&n(o)})}},[e,t,n]),null}exports.Capytale=Tt;exports.TemporaryToast=xt;exports.createActivitySettingsStore=Et;exports.useAfterSaveAction=dt;exports.useCanSave=Ct;exports.useClearToast=de;exports.useClearToasts=yt;exports.useGetLoadedJsonActivityContent=tt;exports.useGetLoadedJsonActivitySplitContent=ot;exports.useGetLoadedJsonAssignmentContent=nt;exports.useGetLoadedJsonAssignmentSplitContent=rt;exports.useGetLoadedJsonContent=et;exports.useGetLoadedTextContent=Ze;exports.useJsonActivityContentSaveFunction=it;exports.useJsonActivitySplitContentSaveFunction=lt;exports.useJsonAssignmentContentSaveFunction=ct;exports.useJsonAssignmentSplitContentSaveFunction=ut;exports.useJsonContentSaveFunction=at;exports.useLoadedJsonActivityBinaryData=Ke;exports.useLoadedJsonActivityContent=_e;exports.useLoadedJsonAssignmentBinaryData=Xe;exports.useLoadedJsonAssignmentContent=Ye;exports.useLoadedJsonContent=Qe;exports.useLoadedTextContent=Ue;exports.useMode=qe;exports.useNotifyIsDirty=ze;exports.usePreviewImageFile=gt;exports.usePreviewTextFile=ft;exports.useQuickActions=mt;exports.useRequestSave=He;exports.useSettings=le;exports.useShowToast=ue;exports.useSidebarActions=pt;exports.useTextContentSaveFunction=st;exports.useTheme=We;exports.useTriggerSave=vt;exports.useWorkflow=Be;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("react/jsx-runtime"),v=require("react");const X=Symbol("Comlink.proxy"),pe=Symbol("Comlink.endpoint"),me=Symbol("Comlink.releaseProxy"),N=Symbol("Comlink.finalizer"),D=Symbol("Comlink.thrown"),Z=e=>typeof e=="object"&&e!==null||typeof e=="function",ye={canHandle:e=>Z(e)&&e[X],serialize(e){const{port1:t,port2:n}=new MessageChannel;return z(e,t),[n,[n]]},deserialize(e){return e.start(),ne(e)}},ve={canHandle:e=>Z(e)&&D in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},ee=new Map([["proxy",ye],["throw",ve]]);function Ce(e,t){for(const n of e)if(t===n||n==="*"||n instanceof RegExp&&n.test(t))return!0;return!1}function z(e,t=globalThis,n=["*"]){t.addEventListener("message",function s(o){if(!o||!o.data)return;if(!Ce(n,o.origin)){console.warn(`Invalid origin '${o.origin}' for comlink proxy`);return}const{id:r,type:g,path:c}=Object.assign({path:[]},o.data),f=(o.data.argumentList||[]).map(k);let d;try{const u=c.slice(0,-1).reduce((y,S)=>y[S],e),p=c.reduce((y,S)=>y[S],e);switch(g){case"GET":d=p;break;case"SET":u[c.slice(-1)[0]]=k(o.data.value),d=!0;break;case"APPLY":d=p.apply(u,f);break;case"CONSTRUCT":{const y=new p(...f);d=se(y)}break;case"ENDPOINT":{const{port1:y,port2:S}=new MessageChannel;z(e,S),d=be(y,[y])}break;case"RELEASE":d=void 0;break;default:return}}catch(u){d={value:u,[D]:0}}Promise.resolve(d).catch(u=>({value:u,[D]:0})).then(u=>{const[p,y]=$(u);t.postMessage(Object.assign(Object.assign({},p),{id:r}),y),g==="RELEASE"&&(t.removeEventListener("message",s),te(t),N in e&&typeof e[N]=="function"&&e[N]())}).catch(u=>{const[p,y]=$({value:new TypeError("Unserializable return value"),[D]:0});t.postMessage(Object.assign(Object.assign({},p),{id:r}),y)})}),t.start&&t.start()}function Se(e){return e.constructor.name==="MessagePort"}function te(e){Se(e)&&e.close()}function ne(e,t){const n=new Map;return e.addEventListener("message",function(o){const{data:r}=o;if(!r||!r.id)return;const g=n.get(r.id);if(g)try{g(r)}finally{n.delete(r.id)}}),H(e,n,[],t)}function P(e){if(e)throw new Error("Proxy has been released and is not useable")}function oe(e){return x(e,new Map,{type:"RELEASE"}).then(()=>{te(e)})}const I=new WeakMap,j="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{const t=(I.get(e)||0)-1;I.set(e,t),t===0&&oe(e)});function we(e,t){const n=(I.get(t)||0)+1;I.set(t,n),j&&j.register(e,t,e)}function Ae(e){j&&j.unregister(e)}function H(e,t,n=[],s=function(){}){let o=!1;const r=new Proxy(s,{get(g,c){if(P(o),c===me)return()=>{Ae(r),oe(e),t.clear(),o=!0};if(c==="then"){if(n.length===0)return{then:()=>r};const f=x(e,t,{type:"GET",path:n.map(d=>d.toString())}).then(k);return f.then.bind(f)}return H(e,t,[...n,c])},set(g,c,f){P(o);const[d,u]=$(f);return x(e,t,{type:"SET",path:[...n,c].map(p=>p.toString()),value:d},u).then(k)},apply(g,c,f){P(o);const d=n[n.length-1];if(d===pe)return x(e,t,{type:"ENDPOINT"}).then(k);if(d==="bind")return H(e,t,n.slice(0,-1));const[u,p]=U(f);return x(e,t,{type:"APPLY",path:n.map(y=>y.toString()),argumentList:u},p).then(k)},construct(g,c){P(o);const[f,d]=U(c);return x(e,t,{type:"CONSTRUCT",path:n.map(u=>u.toString()),argumentList:f},d).then(k)}});return we(r,e),r}function he(e){return Array.prototype.concat.apply([],e)}function U(e){const t=e.map($);return[t.map(n=>n[0]),he(t.map(n=>n[1]))]}const re=new WeakMap;function be(e,t){return re.set(e,t),e}function se(e){return Object.assign(e,{[X]:!0})}function Ee(e,t=globalThis,n="*"){return{postMessage:(s,o)=>e.postMessage(s,n,o),addEventListener:t.addEventListener.bind(t),removeEventListener:t.removeEventListener.bind(t)}}function $(e){for(const[t,n]of ee)if(n.canHandle(e)){const[s,o]=n.serialize(e);return[{type:"HANDLER",name:t,value:s},o]}return[{type:"RAW",value:e},re.get(e)||[]]}function k(e){switch(e.type){case"HANDLER":return ee.get(e.name).deserialize(e.value);case"RAW":return e.value}}function x(e,t,n,s){return new Promise(o=>{const r=Je();t.set(r,o),e.start&&e.start(),e.postMessage(Object.assign({id:r},n),s)})}function Je(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function ke(e,t){return e.length===0?t:`[${e}] ${t}`}function Fe(e,t){let n=!1,s,o,r;function g(u){return ke(e,u)}let c,f=!1;if(window.parent===window)console.warn(g("Contract link is not supported in standalone mode")),c={ready(){return Promise.resolve()},declare(){return Promise.resolve()},done(){return Promise.resolve()},provide(u,p,y){return Promise.resolve()}};else{const u=Ee(window.parent,void 0,t);z({declare(p){if(s==null)throw new Error(g("No handler for declare"));s(p)},done(){if(o==null)throw new Error(g("No handler for done"));o()},provide(p,y,S){if(r==null)throw new Error(g("No handler for provide"));r(p,y,S)}},u),c=ne(u),f=!0}const d=()=>{if(!n){if(s==null||o==null||r==null)return;n=!0,c.ready()}};return{declare:u=>c.declare(u),done:()=>c.done(),provide:(u,p,y)=>c.provide(u,p,se(y)),get name(){return e},get isReady(){return f},set onDeclare(u){s=u,d()},set onDone(u){o=u,d()},set onProvide(u){r=u,d()}}}function Te(e){return function(t){let n,s=!1,o=!1,r,g,c=!1,f=!1,d,u,p,y;function S(){if(r!=null&&r!==0&&g!=null)return g}function E(a){if(r!=null&&g!=null&&!(a>r))return g}function h(){return p??(f?p=Promise.resolve():p=new Promise((a,l)=>{y=a}))}function F(){return d===void 0&&(d={get name(){return t},get version(){return r},get i(){return S()},v:a=>E(a)}),d}function R(){return u===void 0&&(u={get name(){return t},get version(){return f?r:void 0},get i(){return f?S():void 0},v:a=>f?E(a):void 0,get promise(){return r===0?Promise.reject(e("Remote interface not provided")):h().then(()=>{if(r===0)throw new Error(e("Remote interface not provided"));return F()})}}),u}function J(){y!=null&&(y(),y=void 0)}return{get name(){return t},get localVersion(){if(n!=null)return n},set localVersion(a){if(n!=null&&n!==a)throw new Error(e("A different local version is already set"));n=a},get localVersionSent(){return s},set localVersionSent(a){if(!a&&s)throw new Error(e("Local version already notified"));s=a,a&&n===0&&(o=!0)},get localInterfaceSent(){return o},set localInterfaceSent(a){if(n==null)throw new Error(e("Local version not set"));if(!a&&o)throw new Error(e("Local interface already sent."));o=a},get remoteVersion(){if(r!=null)return r},set remoteVersion(a){if(r!=null&&r!==a)throw new Error(e("A different remote version is already set for "+t+`(${r} -> ${a})`));r=a,a===0&&(c=!0)},get remoteVersionReceived(){return r!=null},setRemoteInterface:a=>{if(r==null)throw new Error(e("Remote version not set"));if(r===0){console.warn(e("Remote version is 0, remote interface is ignored."));return}if(c)throw new Error(e("Interface already provided."));g=a,c=!0},get remoteInterfaceReceived(){return c},depGroup:void 0,get isActivable(){return c&&o},get isActivated(){return f},activate(){if(!f){if(!c)throw new Error(e("Remote interface not provided."));if(!o)throw new Error(e("Local interface not sent"));f=!0,J()}},getRemote:()=>F(),getLazyRemote:()=>R(),get activationPromise(){return h()}}}}function xe(e){return function(t,n,s,o){let r=s,g=!1,c=!1;function f(){return t.every(d=>d.remoteVersionReceived&&d.localVersionSent)&&n.every(d=>d.remoteVersionReceived)}return{get isDeclared(){return c},set isDeclared(d){if(!d&&c)throw new Error(e("Factory already declared"));c=d},get isReady(){return f()},get isDone(){return g},get args(){return t},get deps(){return n},invoke(){if(g)throw new Error(e("Factory already invoked"));if(!f())throw new Error(e("Factory is not ready"));let d;o?d=t.map(y=>y.getRemote()):d=t[0].getRemote();let u;const p=n.length>0?n.map(y=>y.getRemote()):null;try{u=p==null?r(d):r(d,p)}catch(y){throw new Error(e("error in factory:"),{cause:y})}if(o||(u=[u]),u.length!=t.length)throw new Error(e("Invalid factory result"));return g=!0,r=null,u}}}}function Re(e){return function(t,n,s,o){let r=n,g=!1;function c(){return t.every(f=>f.isActivated)}return{get isReady(){return c()},get isDone(){return g},get args(){return t},invoke(){if(g||!c()){const u=new Error(e(g?"callback already invoked":"callback parameters are not ready"));throw o?.[1](u),u}const f=s?t.map(u=>u.getRemote()):t[0].getRemote();let d;try{d=r(f)}catch(u){o==null?console.error(e("error in callback:"),u):o[1](u)}finally{g=!0}o?.[0](d)}}}}function ae(e,t){return e==null||e.length===0?t:`[${e}] ${t}`}function Le(e){function t(a){return ae(e.name,a)}const n=Re(t),s=Te(t),o=xe(t),r={},g=[];let c=[],f;const d=()=>(f==null?f=0:f++,f);function u(a){let l=r[a];return l==null&&(l=s(a),l.localVersion==null&&(h&&(l.localVersion=0),F&&(l.localVersionSent=!0)),l.remoteVersion==null&&R&&(l.remoteVersion=0),r[a]=l),l}function p(a){return a.map(u)}function y(...a){const l=d(),m=Array(l).fill(!1);a.forEach(C=>{C.forEach(w=>{w.depGroup!=null&&(m[w.depGroup]=!0),w.depGroup=l})}),Object.values(r).forEach(C=>{C.depGroup!=null&&C.depGroup!==l&&m[C.depGroup]&&(C.depGroup=l)})}e.onDeclare=a=>{const l=p(a.map(m=>m.name));for(let m=0;m<a.length;m++)a[m].version!=null&&(l[m].remoteVersion=a[m].version);y(l),J()},e.onDone=()=>{R||(R=!0,Object.values(r).forEach(a=>{a.remoteVersion==null&&(a.remoteVersion=0)}),J())},e.onProvide=(a,l,m)=>{let C=r[a];if(C==null)throw new Error(t(`Contract not declared : ${a}`));if(C.remoteVersion!=l)throw new Error(t(`Remote declared version ${C.remoteVersion} of contract "${a}" but provided version ${l}.`));if(C.remoteInterfaceReceived)throw new Error(t(`Remote contract "${a}" is already provided.`));C.setRemoteInterface(m),J()};let S=!1,E=!1,h=!1,F=!1,R=!1;async function J(){if(E=!0,!S){for(S=!0;E;){if(E=!1,e.isReady){const a=g.filter(l=>!l.isDeclared);if(a.length>0)for(const l of a){const m=Array(l.args.length+l.deps.length);l.args.forEach((C,w)=>m[w]=C),l.deps.forEach((C,w)=>m[w+l.args.length]=C),await e.declare(m.map(C=>({name:C.name,version:C.localVersion}))),m.forEach(C=>{C.localVersion!=null&&(C.localVersionSent=!0)}),l.isDeclared=!0}}if(e.isReady&&h&&g.every(a=>a.isDeclared)){const a=Object.values(r).filter(l=>!l.localVersionSent&&l.localVersion!=null);if(a.length>0)for(const l of a)await e.declare([{name:l.name,version:l.localVersion}]),l.localVersionSent=!0;F||(F=!0,await e.done())}if(e.isReady){const a=g.filter(l=>!l.isDone&&l.isReady);if(a.length>0)for(const l of a){const m=l.invoke();for(let C=0;C<l.args.length;C++){const w=l.args[C];await e.provide(w.name,w.localVersion,m[C]),w.localInterfaceSent=!0}}}if(f!=null){const a=Array(f+1).fill(null);for(const l in r){const m=r[l];m.depGroup!=null&&(m.isActivable?a[m.depGroup]==null&&!m.isActivated&&(a[m.depGroup]=!0):a[m.depGroup]=!1)}if(a.some(l=>l===!0))for(const l in r){const m=r[l];m.depGroup!=null&&a[m.depGroup]&&m.activate()}}if(e.isReady){const a=c;c=[];const l=[];for(const m of a)!m.isDone&&m.isReady?m.invoke():l.push(m);l.push(...c),c=l}}S=!1}}return{get(a){return u(a)},declareFactory:(a,l,m,C)=>{if(h)throw new Error(t("Cannot declare a factory after done has been set to true."));const w=p(a.map(b=>b.name));{const b=w.filter(O=>O.localVersion!=null);if(b.length>0)throw new Error(t("Cannot declare a factory for already implemented contracts : "+b.map(O=>O.name).join(", ")))}for(let b=0;b<a.length;b++)w[b].localVersion=a[b].version;const T=p(l);y(w,T);const ge=o(w,T,m,C);g.push(ge),J()},declareCallback(a,l,m,C){const w=p(a),T=n(w,l,m,C);!S&&c.length===0&&T.isReady?T.invoke():(c.push(T),J())},get done(){return h},set done(a){if(h){if(!a)throw new Error(t("Cannot set done to false after it has been set to true."))}else a&&(h=!0,Object.values(r).forEach(l=>{l.localVersion==null&&(l.localVersion=0)}),J())}}}const Pe=/^\d+$/;function Me(e){const[t,n,s]=e.split(":",3);if(n==null||s!=null||!Pe.test(n))return null;const o=parseInt(n);return isNaN(o)||o===0?null:{name:t,version:o}}function Ve(e){const t=Le(e);function n(s){return ae(e.name,s)}return{plug(s,o,r=void 0){if(t.done)throw new Error(n("Cannot plug after plugsDone."));r==null&&(r=o,o=[]);let g=!0;Array.isArray(s)||(s=[s],g=!1);const c=s.map(f=>{const d=Me(f);if(d==null)throw new Error(n("Invalid contract id : "+f));return d});t.declareFactory(c,o,r,g)},plugsDone(){t.done=!0},use(s,o){let r=!0;Array.isArray(s)||(s=[s],r=!1),t.declareCallback(s,o,r)},exec(s,o){let r=!0;return Array.isArray(s)||(s=[s],r=!1),new Promise((...g)=>{t.declareCallback(s,o,r,g)})},get(s){return s.map(o=>t.get(o).getLazyRemote())}}}const ie="app-agent";let q;function Ge(e){return q!=null||(q=Ve(Fe(ie,e))),q}console.log(`[${ie}@1.0.12] loaded`);const Q=e=>{let t;const n=new Set,s=(d,u)=>{const p=typeof d=="function"?d(t):d;if(!Object.is(p,t)){const y=t;t=u??(typeof p!="object"||p===null)?p:Object.assign({},t,p),n.forEach(S=>S(t,y))}},o=()=>t,c={setState:s,getState:o,getInitialState:()=>f,subscribe:d=>(n.add(d),()=>n.delete(d))},f=t=e(s,o,c);return c},De=e=>e?Q(e):Q,Ie=e=>e;function je(e,t=Ie){const n=v.useSyncExternalStore(e.subscribe,v.useCallback(()=>t(e.getState()),[e,t]),v.useCallback(()=>t(e.getInitialState()),[e,t]));return v.useDebugValue(n),n}const _=e=>{const t=De(e),n=s=>je(t,s);return Object.assign(n,t),n},ce=e=>e?_(e):_,$e=e=>(t,n,s)=>{const o=s.subscribe;return s.subscribe=(g,c,f)=>{let d=g;if(c){const u=f?.equalityFn||Object.is;let p=g(s.getState());d=y=>{const S=g(y);if(!u(p,S)){const E=p;c(p=S,E)}},f?.fireImmediately&&c(p,p)}return o(d)},e(t,n,s)},Oe=$e,i=ce()(Oe(e=>({ready:!1,workflow:"current",mode:"assignment",theme:"light",saveCount:0,canSave:!1,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:{},activitySettingsCallback:null,setGetTextContentFunction:t=>{e({getTextContentFunction:t})},setGetJsonContentFunction:t=>{e({getJsonContentFunction:t})},setGetJsonActivityContentFunction:t=>{e({getJsonActivityContentFunction:t})},setGetJsonAssignmentContentFunction:t=>{e({getJsonAssignmentContentFunction:t})},setGetJsonActivitySplitContentFunction:t=>{e({getJsonActivitySplitContentFunction:t})},setGetJsonAssignmentSplitContentFunction:t=>{e({getJsonAssignmentSplitContentFunction:t})},setSidebarActions:t=>{e({sidebarActions:t})},setQuickActions:t=>{e({quickActions:t})},setActivitySettingsCallback:t=>{e({activitySettingsCallback:t})},incSaveCount:()=>e(t=>({saveCount:t.saveCount+1})),incDirtyCount:()=>e(t=>({isDirtyCount:t.isDirtyCount+1}))})));let Y=!1;const Ne=["meta-player-events:1","meta-player-ui:1","mode:1","reload:1","theme:1","workflow:1","trigger-save: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"],K={"mode:1":{setMode:e=>{i.setState({mode:e})}},"reload:1":{reloaded:e=>{console.log("Reloaded with state:",e),console.error("Not implemented yet")}},"theme:1":{setTheme:e=>{if(e===null){i.setState({theme:null});return}if(e!=="light"&&e!=="dark"){console.warn(`Invalid theme: ${e}. Expected 'light' or 'dark'.`),i.setState({theme:null});return}i.setState({theme:e})}},"workflow:1":{setWorkflow:e=>{i.setState({workflow:e})}},"trigger-save:1":{setCanSave(e){i.setState({canSave:e})}},"simple-content(text):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})}},"simple-content(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getJsonContentFunction(),loadContent:e=>{i.setState({loadedJsonContent:e})}},"simple-binary-data(text):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})}},"simple-content-eval(text):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"simple-content-eval(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getJsonContentFunction(),loadContent:e=>{i.setState({loadedJsonContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(json):2":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getJsonContentFunction(),loadContent:e=>{i.setState({loadedJsonContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(json)")}},"simple-content-eval(text):2":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},getContent:()=>i.getState().getTextContentFunction(),loadContent:e=>{i.setState({loadedTextContent:e})},getAssignmentContent:()=>{throw new Error("getAssignmentContent is not implemented for simple-content-eval(text)")}},"separate-contents(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},loadContent:(e,t)=>{i.setState({loadedJsonActivityContent:e,loadedJsonAssignmentContent:t})},getActivityContent:()=>i.getState().getJsonActivityContentFunction(),getAssignmentContent:()=>i.getState().getJsonAssignmentContentFunction()},"separate-dual-contents(json):1":{contentSaved:()=>{i.setState(e=>({afterSaveCount:e.afterSaveCount+1}))},loadContent:({activityContent:e,assignmentContent:t,activityBinaryData:n,assignmentBinaryData:s})=>{i.setState({loadedJsonActivityContent:e,loadedJsonAssignmentContent:t,loadedJsonActivityBinaryData:n,loadedJsonAssignmentBinaryData:s})},getActivityContentAndData:()=>(console.log("Getting activity content and data"),i.getState().getJsonActivitySplitContentFunction()),getAssignmentContentAndData:()=>(console.log("Getting assignment content and data"),i.getState().getJsonAssignmentSplitContentFunction())},"meta-player-anti-cheat:1":{lock:()=>{},unlock:()=>{}},"meta-player-ui:1":{executeAction(e){if(console.log("Executing action:",e),e.startsWith("qa")){const n=i.getState().quickActions[e];n?n():console.error(`Quick action not found: ${e}`)}else{const n=i.getState().sidebarActions[e];n?n():console.error(`Sidebar action not found: ${e}`)}},executeFileUpload(e,t){if(e.startsWith("qa")){const s=i.getState().quickActions[e];s?s(t):console.error(`Quick action not found: ${e}`)}else{const s=i.getState().sidebarActions[e];s?s(t):console.error(`Sidebar action not found: ${e}`)}},updateSettings(e){const t=i.getState().activitySettingsCallback;t?t(e):console.warn("activitySettingsCallback is not set. Changes:",e)}},"meta-player-events:1":{handleEvent(e){e==="all-loaded"&&i.setState({ready:!0})}}},A=Ge();function qe(e){if(console.log("Contracts to plug:",e),Y){console.warn("Contracts have already been plugged. Skipping.");return}Y=!0;for(const t of e){if(!Ne.includes(t)){console.warn(`Contract ${t} is not implemented in Capytale. Skipping plug.`);continue}if(!(t in K)){console.warn(`Contract handler for ${t} is not defined. Skipping plug.`);continue}const n=K[t];A.plug([t],([])=>(console.log(`Contract ${t} plugged.`),[n]))}A.plugsDone();for(const t 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","separate-contents(json):1","separate-dual-contents(json):1"])if(console.log(`Contract ${t} is being subscribed to content changes.`),e.includes(t)){console.log(`Subscribing to content changes for contract ${t}`);const n=t.split(":")[0];A.use([n],([s])=>{i.subscribe(o=>o.isDirtyCount,()=>{s.i?.contentChanged(),console.log(`Content changed for contract ${n}`)})})}}const Be=()=>i(e=>{if(e.mode===null)throw new Error("Mode is not set. Have you used contract 'mode'?");return e.mode}),We=()=>i(e=>{if(e.workflow===null)throw new Error("Workflow is not set. Have you used contract 'workflow'?");return e.workflow}),He=()=>i(e=>{if(e.theme===null)throw new Error("Theme is not set. Have you used contract 'theme'?");return e.theme}),ze=()=>i(e=>e.incSaveCount),Ue=()=>i(e=>e.incDirtyCount),Qe=()=>i(e=>e.loadedTextContent),_e=()=>i(e=>e.loadedJsonContent),Ye=()=>i(e=>e.loadedJsonActivityContent),Ke=()=>i(e=>e.loadedJsonAssignmentContent),Xe=()=>i(e=>e.loadedJsonActivityBinaryData),Ze=()=>i(e=>e.loadedJsonAssignmentBinaryData),et=()=>v.useCallback(()=>i.getState().loadedTextContent,[]),tt=()=>v.useCallback(()=>i.getState().loadedJsonContent,[]),nt=()=>v.useCallback(()=>i.getState().loadedJsonActivityContent,[]),ot=()=>v.useCallback(()=>i.getState().loadedJsonAssignmentContent,[]),rt=()=>v.useCallback(()=>({content:i.getState().loadedJsonActivityContent,binaryData:i.getState().loadedJsonActivityBinaryData}),[]),st=()=>v.useCallback(()=>({content:i.getState().loadedJsonAssignmentContent,binaryData:i.getState().loadedJsonAssignmentBinaryData}),[]),at=e=>{const t=i(n=>n.setGetTextContentFunction);v.useEffect(()=>{t(e)},[e,t])},it=e=>{const t=i(n=>n.setGetJsonContentFunction);v.useEffect(()=>{t(e)},[e,t])},ct=e=>{const t=i(n=>n.setGetJsonActivityContentFunction);v.useEffect(()=>{t(e)},[e,t])},lt=e=>{const t=i(n=>n.setGetJsonAssignmentContentFunction);v.useEffect(()=>{t(e)},[e,t])},ut=e=>{const t=i(n=>n.setGetJsonActivitySplitContentFunction);v.useEffect(()=>{t(e)},[e,t])},dt=e=>{const t=i(n=>n.setGetJsonAssignmentSplitContentFunction);v.useEffect(()=>{t(e)},[e,t])},ft=e=>{const t=i(n=>n.afterSaveCount);v.useEffect(()=>{t>0&&e()},[t])},gt=()=>(e,t)=>{A.use(["meta-player-ui"],([n])=>{if(n.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}n.i?.previewTextFile(e,t)})},pt=()=>(e,t)=>{A.use(["meta-player-ui"],([n])=>{if(n.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}n.i?.previewImageFile(e,t)})};let M=0,B=0;const mt=(e,t)=>{const n=v.useMemo(e,t),s=i(o=>o.setSidebarActions);v.useEffect(()=>(M++,M>1&&console.error("Capytale iframe React: Multiple sidebar actions registered: ",M),()=>{M--}),[]),v.useEffect(()=>(A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}B++;const r=n.map((c,f)=>({type:c.type,title:c.title,icon:c.icon,id:`sa-${B}-${f}`,...c.type==="file-upload"?{accept:c.accept}:{}})),g={};n.forEach((c,f)=>{g[`sa-${B}-${f}`]=c.action}),o.i?.setSidebarActionButtons(r),s(g)}),()=>{s({}),A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}o.i?.setSidebarActionButtons([])})}),[n])};let V=0,W=0;const yt=(e,t)=>{const n=v.useMemo(e,t),s=i(o=>o.setQuickActions);v.useEffect(()=>(V++,V>1&&console.error("Capytale iframe React: Multiple quick actions registered: ",V),()=>{V--}),[]),v.useEffect(()=>(A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}W++;const r=n.map((c,f)=>({type:c.type,title:c.title,icon:c.icon,id:`qa-${W}-${f}`,...c.type==="file-upload"?{accept:c.accept}:{}})),g={};n.forEach((c,f)=>{g[`qa-${W}-${f}`]=c.action}),o.i?.setQuickActionButtons(r),s(g)}),()=>{s({}),A.use(["meta-player-ui"],([o])=>{if(o.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}o.i?.setQuickActionButtons([])})}),[n])};let G=0;const le=(e,t,n)=>{const s=v.useMemo(e,n),o=i(r=>r.setActivitySettingsCallback);v.useEffect(()=>(console.log("Mounting useSettings"),G++,G>1&&console.error("Capytale iframe React: Multiple settings registered: ",G),()=>{console.log("Unmounting useSettings"),G--}),[]),v.useEffect(()=>(A.use(["meta-player-ui"],([r])=>{if(r.version===0){console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return}console.log("Updating settings UI in MetaPlayer",s),r.i?.setSettingsUI(s)}),o(t),()=>{o(null)}),[s])},ue=()=>v.useCallback(t=>A.exec(["meta-player-ui"],([n])=>{if(n.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui"),new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return n.i?.showToast(t)}),[]),de=()=>v.useCallback(t=>A.exec(["meta-player-ui"],([n])=>{if(n.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui"),new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return n.i?.clearToast(t)}),[]),vt=()=>v.useCallback(()=>A.exec(["meta-player-ui"],([t])=>{if(t.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat meta-player-ui"),new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");return t.i?.clearToasts()}),[]),fe=(e,t)=>{const n=ue(),s=de();return v.useEffect(()=>{if(e==null)return;const o=n(e);return()=>{o.then(r=>{r!=null&&s(r)})}},[n,s,...t]),null},Ct=()=>v.useCallback(()=>A.exec(["trigger-save"],([t])=>{if(t.version===0)throw console.error("Le MétaPlayer ne supporte pas le contrat trigger-save"),new Error("Le MétaPlayer ne supporte pas le contrat trigger-save");return t.i?.triggerSave()}),[]),St=()=>i(e=>e.canSave);function wt(e){const t={};for(const n of e.fields)t[n.name]=n.defaultValue;return t}function At(e){return{[e.name]:e.defaultValues}}function ht(e){return{[e.name]:e.defaultValue}}function bt(e){switch(e.type){case"form":return wt(e);case"checkboxes":case"switches":return At(e);case"radio":return ht(e);default:return{}}}function Et(e){const t={};for(const n of e)Object.assign(t,bt(n));return t}function Jt(e){const n=ce()(s=>({...Et(e)}));return n.activitySettings=e,n}function kt(e){le(()=>e.activitySettings,t=>{e.setState(t)},[])}function Ft({store:e}){return kt(e),null}const Tt=["meta-player-events:1","meta-player-ui:1","mode:1","workflow:1"];function xt({children:e,contracts:t,loadOnlyWhenReady:n=!0,activitySettingsStore:s}){const o=i(r=>r.ready);return v.useEffect(()=>{const r=[...t];for(const g of Tt)r.includes(g)||r.push(g);qe(r)},[]),n&&!o?L.jsx("div",{className:"capy-loading-container",children:"Chargement en cours..."}):L.jsxs(L.Fragment,{children:[s&&L.jsx(Ft,{store:s}),e]})}function Rt({message:e}){return fe(e,[e]),null}exports.Capytale=xt;exports.TemporaryToast=Rt;exports.createActivitySettingsStore=Jt;exports.useAfterSaveAction=ft;exports.useCanSave=St;exports.useClearToast=de;exports.useClearToasts=vt;exports.useGetLoadedJsonActivityContent=nt;exports.useGetLoadedJsonActivitySplitContent=rt;exports.useGetLoadedJsonAssignmentContent=ot;exports.useGetLoadedJsonAssignmentSplitContent=st;exports.useGetLoadedJsonContent=tt;exports.useGetLoadedTextContent=et;exports.useJsonActivityContentSaveFunction=ct;exports.useJsonActivitySplitContentSaveFunction=ut;exports.useJsonAssignmentContentSaveFunction=lt;exports.useJsonAssignmentSplitContentSaveFunction=dt;exports.useJsonContentSaveFunction=it;exports.useLoadedJsonActivityBinaryData=Xe;exports.useLoadedJsonActivityContent=Ye;exports.useLoadedJsonAssignmentBinaryData=Ze;exports.useLoadedJsonAssignmentContent=Ke;exports.useLoadedJsonContent=_e;exports.useLoadedTextContent=Qe;exports.useMode=Be;exports.useNotifyIsDirty=Ue;exports.usePreviewImageFile=pt;exports.usePreviewTextFile=gt;exports.useQuickActions=yt;exports.useRequestSave=ze;exports.useSettings=le;exports.useShowToast=ue;exports.useSidebarActions=mt;exports.useTextContentSaveFunction=at;exports.useTheme=He;exports.useToast=fe;exports.useTriggerSave=Ct;exports.useWorkflow=We;
|
package/dist/index.d.ts
CHANGED
|
@@ -342,6 +342,8 @@ export declare const useTextContentSaveFunction: (fn: () => string | null | Prom
|
|
|
342
342
|
|
|
343
343
|
export declare const useTheme: () => "light" | "dark";
|
|
344
344
|
|
|
345
|
+
export declare const useToast: (message: MPToastMessage | null, deps: readonly unknown[]) => null;
|
|
346
|
+
|
|
345
347
|
export declare const useTriggerSave: () => () => Promise<boolean>;
|
|
346
348
|
|
|
347
349
|
export declare const useWorkflow: () => "current" | "finished" | "corrected";
|
package/dist/index.es.js
CHANGED
|
@@ -1094,80 +1094,80 @@ function Bt(t) {
|
|
|
1094
1094
|
});
|
|
1095
1095
|
}
|
|
1096
1096
|
}
|
|
1097
|
-
const
|
|
1097
|
+
const re = () => i((t) => {
|
|
1098
1098
|
if (t.mode === null)
|
|
1099
1099
|
throw new Error("Mode is not set. Have you used contract 'mode'?");
|
|
1100
1100
|
return t.mode;
|
|
1101
|
-
}),
|
|
1101
|
+
}), se = () => i((t) => {
|
|
1102
1102
|
if (t.workflow === null)
|
|
1103
1103
|
throw new Error(
|
|
1104
1104
|
"Workflow is not set. Have you used contract 'workflow'?"
|
|
1105
1105
|
);
|
|
1106
1106
|
return t.workflow;
|
|
1107
|
-
}),
|
|
1107
|
+
}), ae = () => i((t) => {
|
|
1108
1108
|
if (t.theme === null)
|
|
1109
1109
|
throw new Error("Theme is not set. Have you used contract 'theme'?");
|
|
1110
1110
|
return t.theme;
|
|
1111
|
-
}),
|
|
1111
|
+
}), ie = () => i((t) => t.incSaveCount), ce = () => i((t) => t.incDirtyCount), le = () => i((t) => t.loadedTextContent), ue = () => i((t) => t.loadedJsonContent), de = () => i((t) => t.loadedJsonActivityContent), fe = () => i((t) => t.loadedJsonAssignmentContent), ge = () => i((t) => t.loadedJsonActivityBinaryData), pe = () => i((t) => t.loadedJsonAssignmentBinaryData), me = () => A(() => i.getState().loadedTextContent, []), ye = () => A(() => i.getState().loadedJsonContent, []), ve = () => A(() => i.getState().loadedJsonActivityContent, []), Ce = () => A(() => i.getState().loadedJsonAssignmentContent, []), Se = () => A(
|
|
1112
1112
|
() => ({
|
|
1113
1113
|
content: i.getState().loadedJsonActivityContent,
|
|
1114
1114
|
binaryData: i.getState().loadedJsonActivityBinaryData
|
|
1115
1115
|
}),
|
|
1116
1116
|
[]
|
|
1117
|
-
),
|
|
1117
|
+
), we = () => A(
|
|
1118
1118
|
() => ({
|
|
1119
1119
|
content: i.getState().loadedJsonAssignmentContent,
|
|
1120
1120
|
binaryData: i.getState().loadedJsonAssignmentBinaryData
|
|
1121
1121
|
}),
|
|
1122
1122
|
[]
|
|
1123
|
-
),
|
|
1123
|
+
), he = (t) => {
|
|
1124
1124
|
const e = i(
|
|
1125
1125
|
(n) => n.setGetTextContentFunction
|
|
1126
1126
|
);
|
|
1127
1127
|
w(() => {
|
|
1128
1128
|
e(t);
|
|
1129
1129
|
}, [t, e]);
|
|
1130
|
-
},
|
|
1130
|
+
}, Ae = (t) => {
|
|
1131
1131
|
const e = i(
|
|
1132
1132
|
(n) => n.setGetJsonContentFunction
|
|
1133
1133
|
);
|
|
1134
1134
|
w(() => {
|
|
1135
1135
|
e(t);
|
|
1136
1136
|
}, [t, e]);
|
|
1137
|
-
},
|
|
1137
|
+
}, be = (t) => {
|
|
1138
1138
|
const e = i(
|
|
1139
1139
|
(n) => n.setGetJsonActivityContentFunction
|
|
1140
1140
|
);
|
|
1141
1141
|
w(() => {
|
|
1142
1142
|
e(t);
|
|
1143
1143
|
}, [t, e]);
|
|
1144
|
-
},
|
|
1144
|
+
}, Ee = (t) => {
|
|
1145
1145
|
const e = i(
|
|
1146
1146
|
(n) => n.setGetJsonAssignmentContentFunction
|
|
1147
1147
|
);
|
|
1148
1148
|
w(() => {
|
|
1149
1149
|
e(t);
|
|
1150
1150
|
}, [t, e]);
|
|
1151
|
-
},
|
|
1151
|
+
}, ke = (t) => {
|
|
1152
1152
|
const e = i(
|
|
1153
1153
|
(n) => n.setGetJsonActivitySplitContentFunction
|
|
1154
1154
|
);
|
|
1155
1155
|
w(() => {
|
|
1156
1156
|
e(t);
|
|
1157
1157
|
}, [t, e]);
|
|
1158
|
-
},
|
|
1158
|
+
}, Je = (t) => {
|
|
1159
1159
|
const e = i(
|
|
1160
1160
|
(n) => n.setGetJsonAssignmentSplitContentFunction
|
|
1161
1161
|
);
|
|
1162
1162
|
w(() => {
|
|
1163
1163
|
e(t);
|
|
1164
1164
|
}, [t, e]);
|
|
1165
|
-
},
|
|
1165
|
+
}, Fe = (t) => {
|
|
1166
1166
|
const e = i((n) => n.afterSaveCount);
|
|
1167
1167
|
w(() => {
|
|
1168
1168
|
e > 0 && t();
|
|
1169
1169
|
}, [e]);
|
|
1170
|
-
},
|
|
1170
|
+
}, xe = () => (t, e) => {
|
|
1171
1171
|
h.use(["meta-player-ui"], ([n]) => {
|
|
1172
1172
|
if (n.version === 0) {
|
|
1173
1173
|
console.error(
|
|
@@ -1177,7 +1177,7 @@ const oe = () => i((t) => {
|
|
|
1177
1177
|
}
|
|
1178
1178
|
n.i?.previewTextFile(t, e);
|
|
1179
1179
|
});
|
|
1180
|
-
},
|
|
1180
|
+
}, Te = () => (t, e) => {
|
|
1181
1181
|
h.use(["meta-player-ui"], ([n]) => {
|
|
1182
1182
|
if (n.version === 0) {
|
|
1183
1183
|
console.error(
|
|
@@ -1189,7 +1189,7 @@ const oe = () => i((t) => {
|
|
|
1189
1189
|
});
|
|
1190
1190
|
};
|
|
1191
1191
|
let D = 0, W = 0;
|
|
1192
|
-
const
|
|
1192
|
+
const Re = (t, e) => {
|
|
1193
1193
|
const n = U(t, e), s = i((o) => o.setSidebarActions);
|
|
1194
1194
|
w(() => (D++, D > 1 && console.error(
|
|
1195
1195
|
"Capytale iframe React: Multiple sidebar actions registered: ",
|
|
@@ -1227,7 +1227,7 @@ const Te = (t, e) => {
|
|
|
1227
1227
|
}), [n]);
|
|
1228
1228
|
};
|
|
1229
1229
|
let L = 0, H = 0;
|
|
1230
|
-
const
|
|
1230
|
+
const Pe = (t, e) => {
|
|
1231
1231
|
const n = U(t, e), s = i((o) => o.setQuickActions);
|
|
1232
1232
|
w(() => (L++, L > 1 && console.error(
|
|
1233
1233
|
"Capytale iframe React: Multiple quick actions registered: ",
|
|
@@ -1299,57 +1299,69 @@ const Wt = (t, e, n) => {
|
|
|
1299
1299
|
"Le MétaPlayer ne supporte pas le contrat meta-player-ui"
|
|
1300
1300
|
), new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");
|
|
1301
1301
|
return n.i?.clearToast(e);
|
|
1302
|
-
}), []),
|
|
1302
|
+
}), []), Ve = () => A(() => h.exec(["meta-player-ui"], ([e]) => {
|
|
1303
1303
|
if (e.version === 0)
|
|
1304
1304
|
throw console.error(
|
|
1305
1305
|
"Le MétaPlayer ne supporte pas le contrat meta-player-ui"
|
|
1306
1306
|
), new Error("Le MétaPlayer ne supporte pas le contrat meta-player-ui");
|
|
1307
1307
|
return e.i?.clearToasts();
|
|
1308
|
-
}), []),
|
|
1308
|
+
}), []), Ut = (t, e) => {
|
|
1309
|
+
const n = Ht(), s = zt();
|
|
1310
|
+
return w(() => {
|
|
1311
|
+
if (t == null)
|
|
1312
|
+
return;
|
|
1313
|
+
const o = n(t);
|
|
1314
|
+
return () => {
|
|
1315
|
+
o.then((r) => {
|
|
1316
|
+
r != null && s(r);
|
|
1317
|
+
});
|
|
1318
|
+
};
|
|
1319
|
+
}, [n, s, ...e]), null;
|
|
1320
|
+
}, Me = () => A(() => h.exec(["trigger-save"], ([e]) => {
|
|
1309
1321
|
if (e.version === 0)
|
|
1310
1322
|
throw console.error(
|
|
1311
1323
|
"Le MétaPlayer ne supporte pas le contrat trigger-save"
|
|
1312
1324
|
), new Error("Le MétaPlayer ne supporte pas le contrat trigger-save");
|
|
1313
1325
|
return e.i?.triggerSave();
|
|
1314
|
-
}), []),
|
|
1315
|
-
function
|
|
1326
|
+
}), []), De = () => i((t) => t.canSave);
|
|
1327
|
+
function _t(t) {
|
|
1316
1328
|
const e = {};
|
|
1317
1329
|
for (const n of t.fields)
|
|
1318
1330
|
e[n.name] = n.defaultValue;
|
|
1319
1331
|
return e;
|
|
1320
1332
|
}
|
|
1321
|
-
function
|
|
1333
|
+
function Qt(t) {
|
|
1322
1334
|
return { [t.name]: t.defaultValues };
|
|
1323
1335
|
}
|
|
1324
|
-
function
|
|
1336
|
+
function Yt(t) {
|
|
1325
1337
|
return { [t.name]: t.defaultValue };
|
|
1326
1338
|
}
|
|
1327
|
-
function
|
|
1339
|
+
function Kt(t) {
|
|
1328
1340
|
switch (t.type) {
|
|
1329
1341
|
case "form":
|
|
1330
|
-
return
|
|
1342
|
+
return _t(t);
|
|
1331
1343
|
case "checkboxes":
|
|
1332
1344
|
case "switches":
|
|
1333
|
-
return _t(t);
|
|
1334
|
-
case "radio":
|
|
1335
1345
|
return Qt(t);
|
|
1346
|
+
case "radio":
|
|
1347
|
+
return Yt(t);
|
|
1336
1348
|
default:
|
|
1337
1349
|
return {};
|
|
1338
1350
|
}
|
|
1339
1351
|
}
|
|
1340
|
-
function
|
|
1352
|
+
function Xt(t) {
|
|
1341
1353
|
const e = {};
|
|
1342
1354
|
for (const n of t)
|
|
1343
|
-
Object.assign(e,
|
|
1355
|
+
Object.assign(e, Kt(n));
|
|
1344
1356
|
return e;
|
|
1345
1357
|
}
|
|
1346
|
-
function
|
|
1358
|
+
function Le(t) {
|
|
1347
1359
|
const n = dt()((s) => ({
|
|
1348
|
-
...
|
|
1360
|
+
...Xt(t)
|
|
1349
1361
|
}));
|
|
1350
1362
|
return n.activitySettings = t, n;
|
|
1351
1363
|
}
|
|
1352
|
-
function
|
|
1364
|
+
function Zt(t) {
|
|
1353
1365
|
Wt(
|
|
1354
1366
|
() => t.activitySettings,
|
|
1355
1367
|
(e) => {
|
|
@@ -1358,18 +1370,18 @@ function Xt(t) {
|
|
|
1358
1370
|
[]
|
|
1359
1371
|
);
|
|
1360
1372
|
}
|
|
1361
|
-
function
|
|
1373
|
+
function te({
|
|
1362
1374
|
store: t
|
|
1363
1375
|
}) {
|
|
1364
|
-
return
|
|
1376
|
+
return Zt(t), null;
|
|
1365
1377
|
}
|
|
1366
|
-
const
|
|
1378
|
+
const ee = [
|
|
1367
1379
|
"meta-player-events:1",
|
|
1368
1380
|
"meta-player-ui:1",
|
|
1369
1381
|
"mode:1",
|
|
1370
1382
|
"workflow:1"
|
|
1371
1383
|
];
|
|
1372
|
-
function
|
|
1384
|
+
function Ge({
|
|
1373
1385
|
children: t,
|
|
1374
1386
|
contracts: e,
|
|
1375
1387
|
loadOnlyWhenReady: n = !0,
|
|
@@ -1378,61 +1390,54 @@ function Le({
|
|
|
1378
1390
|
const o = i((r) => r.ready);
|
|
1379
1391
|
return w(() => {
|
|
1380
1392
|
const r = [...e];
|
|
1381
|
-
for (const g of
|
|
1393
|
+
for (const g of ee)
|
|
1382
1394
|
r.includes(g) || r.push(g);
|
|
1383
1395
|
Bt(r);
|
|
1384
1396
|
}, []), n && !o ? /* @__PURE__ */ Q("div", { className: "capy-loading-container", children: "Chargement en cours..." }) : /* @__PURE__ */ gt(pt, { children: [
|
|
1385
|
-
s && /* @__PURE__ */ Q(
|
|
1397
|
+
s && /* @__PURE__ */ Q(te, { store: s }),
|
|
1386
1398
|
t
|
|
1387
1399
|
] });
|
|
1388
1400
|
}
|
|
1389
|
-
function
|
|
1390
|
-
|
|
1391
|
-
return w(() => {
|
|
1392
|
-
const s = e(t);
|
|
1393
|
-
return () => {
|
|
1394
|
-
s.then((o) => {
|
|
1395
|
-
o != null && n(o);
|
|
1396
|
-
});
|
|
1397
|
-
};
|
|
1398
|
-
}, [t, e, n]), null;
|
|
1401
|
+
function Ie({ message: t }) {
|
|
1402
|
+
return Ut(t, [t]), null;
|
|
1399
1403
|
}
|
|
1400
1404
|
export {
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1405
|
+
Ge as Capytale,
|
|
1406
|
+
Ie as TemporaryToast,
|
|
1407
|
+
Le as createActivitySettingsStore,
|
|
1408
|
+
Fe as useAfterSaveAction,
|
|
1409
|
+
De as useCanSave,
|
|
1406
1410
|
zt as useClearToast,
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1411
|
+
Ve as useClearToasts,
|
|
1412
|
+
ve as useGetLoadedJsonActivityContent,
|
|
1413
|
+
Se as useGetLoadedJsonActivitySplitContent,
|
|
1414
|
+
Ce as useGetLoadedJsonAssignmentContent,
|
|
1415
|
+
we as useGetLoadedJsonAssignmentSplitContent,
|
|
1416
|
+
ye as useGetLoadedJsonContent,
|
|
1417
|
+
me as useGetLoadedTextContent,
|
|
1418
|
+
be as useJsonActivityContentSaveFunction,
|
|
1419
|
+
ke as useJsonActivitySplitContentSaveFunction,
|
|
1420
|
+
Ee as useJsonAssignmentContentSaveFunction,
|
|
1421
|
+
Je as useJsonAssignmentSplitContentSaveFunction,
|
|
1422
|
+
Ae as useJsonContentSaveFunction,
|
|
1423
|
+
ge as useLoadedJsonActivityBinaryData,
|
|
1424
|
+
de as useLoadedJsonActivityContent,
|
|
1425
|
+
pe as useLoadedJsonAssignmentBinaryData,
|
|
1426
|
+
fe as useLoadedJsonAssignmentContent,
|
|
1427
|
+
ue as useLoadedJsonContent,
|
|
1428
|
+
le as useLoadedTextContent,
|
|
1429
|
+
re as useMode,
|
|
1430
|
+
ce as useNotifyIsDirty,
|
|
1431
|
+
Te as usePreviewImageFile,
|
|
1432
|
+
xe as usePreviewTextFile,
|
|
1433
|
+
Pe as useQuickActions,
|
|
1434
|
+
ie as useRequestSave,
|
|
1431
1435
|
Wt as useSettings,
|
|
1432
1436
|
Ht as useShowToast,
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1437
|
+
Re as useSidebarActions,
|
|
1438
|
+
he as useTextContentSaveFunction,
|
|
1439
|
+
ae as useTheme,
|
|
1440
|
+
Ut as useToast,
|
|
1441
|
+
Me as useTriggerSave,
|
|
1442
|
+
se as useWorkflow
|
|
1438
1443
|
};
|