@inditextech/weave-react 0.1.1 → 0.2.0

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/react.cjs CHANGED
@@ -1,22 +1,334 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("react"),O=require("@inditextech/weave-sdk");var Ye={exports:{}},oe={};/**
2
- * @license React
3
- * react-jsx-runtime.development.js
4
- *
5
- * Copyright (c) Facebook, Inc. and its affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */(function(){var c=w,o=Symbol.for("react.element"),n=Symbol.for("react.portal"),m=Symbol.for("react.fragment"),j=Symbol.for("react.strict_mode"),Y=Symbol.for("react.profiler"),N=Symbol.for("react.provider"),D=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),_=Symbol.for("react.suspense_list"),y=Symbol.for("react.memo"),W=Symbol.for("react.lazy"),V=Symbol.for("react.offscreen"),K=Symbol.iterator,ie="@@iterator";function se(e){if(e===null||typeof e!="object")return null;var r=K&&e[K]||e[ie];return typeof r=="function"?r:null}var I=c.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function g(e){{for(var r=arguments.length,t=new Array(r>1?r-1:0),i=1;i<r;i++)t[i-1]=arguments[i];ue("error",e,t)}}function ue(e,r,t){{var i=I.ReactDebugCurrentFrame,l=i.getStackAddendum();l!==""&&(r+="%s",t=t.concat([l]));var f=t.map(function(u){return String(u)});f.unshift("Warning: "+r),Function.prototype.apply.call(console[e],console,f)}}var ce=!1,le=!1,fe=!1,G=!1,de=!1,$;$=Symbol.for("react.module.reference");function z(e){return!!(typeof e=="string"||typeof e=="function"||e===m||e===Y||de||e===j||e===E||e===_||G||e===V||ce||le||fe||typeof e=="object"&&e!==null&&(e.$$typeof===W||e.$$typeof===y||e.$$typeof===N||e.$$typeof===D||e.$$typeof===A||e.$$typeof===$||e.getModuleId!==void 0))}function B(e,r,t){var i=e.displayName;if(i)return i;var l=r.displayName||r.name||"";return l!==""?t+"("+l+")":t}function L(e){return e.displayName||"Context"}function S(e){if(e==null)return null;if(typeof e.tag=="number"&&g("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case m:return"Fragment";case n:return"Portal";case Y:return"Profiler";case j:return"StrictMode";case E:return"Suspense";case _:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case D:var r=e;return L(r)+".Consumer";case N:var t=e;return L(t._context)+".Provider";case A:return B(e,e.render,"ForwardRef");case y:var i=e.displayName||null;return i!==null?i:S(e.type)||"Memo";case W:{var l=e,f=l._payload,u=l._init;try{return S(u(f))}catch{return null}}}return null}var k=Object.assign,F=0,X,q,J,Q,ee,a,x;function P(){}P.__reactDisabledLog=!0;function R(){{if(F===0){X=console.log,q=console.info,J=console.warn,Q=console.error,ee=console.group,a=console.groupCollapsed,x=console.groupEnd;var e={configurable:!0,enumerable:!0,value:P,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}F++}}function T(){{if(F--,F===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:k({},e,{value:X}),info:k({},e,{value:q}),warn:k({},e,{value:J}),error:k({},e,{value:Q}),group:k({},e,{value:ee}),groupCollapsed:k({},e,{value:a}),groupEnd:k({},e,{value:x})})}F<0&&g("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var ve=I.ReactCurrentDispatcher,ge;function re(e,r,t){{if(ge===void 0)try{throw Error()}catch(l){var i=l.stack.trim().match(/\n( *(at )?)/);ge=i&&i[1]||""}return`
10
- `+ge+e}}var pe=!1,te;{var $e=typeof WeakMap=="function"?WeakMap:Map;te=new $e}function Ee(e,r){if(!e||pe)return"";{var t=te.get(e);if(t!==void 0)return t}var i;pe=!0;var l=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var f;f=ve.current,ve.current=null,R();try{if(r){var u=function(){throw Error()};if(Object.defineProperty(u.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(u,[])}catch(b){i=b}Reflect.construct(e,[],u)}else{try{u.call()}catch(b){i=b}e.call(u.prototype)}}else{try{throw Error()}catch(b){i=b}e()}}catch(b){if(b&&i&&typeof b.stack=="string"){for(var s=b.stack.split(`
11
- `),p=i.stack.split(`
12
- `),d=s.length-1,v=p.length-1;d>=1&&v>=0&&s[d]!==p[v];)v--;for(;d>=1&&v>=0;d--,v--)if(s[d]!==p[v]){if(d!==1||v!==1)do if(d--,v--,v<0||s[d]!==p[v]){var C=`
13
- `+s[d].replace(" at new "," at ");return e.displayName&&C.includes("<anonymous>")&&(C=C.replace("<anonymous>",e.displayName)),typeof e=="function"&&te.set(e,C),C}while(d>=1&&v>=0);break}}}finally{pe=!1,ve.current=f,T(),Error.prepareStackTrace=l}var Z=e?e.displayName||e.name:"",U=Z?re(Z):"";return typeof e=="function"&&te.set(e,U),U}function Le(e,r,t){return Ee(e,!1)}function Me(e){var r=e.prototype;return!!(r&&r.isReactComponent)}function ne(e,r,t){if(e==null)return"";if(typeof e=="function")return Ee(e,Me(e));if(typeof e=="string")return re(e);switch(e){case E:return re("Suspense");case _:return re("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case A:return Le(e.render);case y:return ne(e.type,r,t);case W:{var i=e,l=i._payload,f=i._init;try{return ne(f(l),r,t)}catch{}}}return""}var H=Object.prototype.hasOwnProperty,Se={},Ce=I.ReactDebugCurrentFrame;function ae(e){if(e){var r=e._owner,t=ne(e.type,e._source,r?r.type:null);Ce.setExtraStackFrame(t)}else Ce.setExtraStackFrame(null)}function Ze(e,r,t,i,l){{var f=Function.call.bind(H);for(var u in e)if(f(e,u)){var s=void 0;try{if(typeof e[u]!="function"){var p=Error((i||"React class")+": "+t+" type `"+u+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof e[u]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw p.name="Invariant Violation",p}s=e[u](r,u,i,t,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(d){s=d}s&&!(s instanceof Error)&&(ae(l),g("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",i||"React class",t,u,typeof s),ae(null)),s instanceof Error&&!(s.message in Se)&&(Se[s.message]=!0,ae(l),g("Failed %s type: %s",t,s.message),ae(null))}}}var Ne=Array.isArray;function he(e){return Ne(e)}function Ve(e){{var r=typeof Symbol=="function"&&Symbol.toStringTag,t=r&&e[Symbol.toStringTag]||e.constructor.name||"Object";return t}}function ze(e){try{return _e(e),!1}catch{return!0}}function _e(e){return""+e}function Pe(e){if(ze(e))return g("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",Ve(e)),_e(e)}var Te=I.ReactCurrentOwner,Be={key:!0,ref:!0,__self:!0,__source:!0},we,Oe;function He(e){if(H.call(e,"ref")){var r=Object.getOwnPropertyDescriptor(e,"ref").get;if(r&&r.isReactWarning)return!1}return e.ref!==void 0}function Ke(e){if(H.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function Ge(e,r){typeof e.ref=="string"&&Te.current}function Xe(e,r){{var t=function(){we||(we=!0,g("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"key",{get:t,configurable:!0})}}function qe(e,r){{var t=function(){Oe||(Oe=!0,g("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",r))};t.isReactWarning=!0,Object.defineProperty(e,"ref",{get:t,configurable:!0})}}var Je=function(e,r,t,i,l,f,u){var s={$$typeof:o,type:e,key:r,ref:t,props:u,_owner:f};return s._store={},Object.defineProperty(s._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(s,"_self",{configurable:!1,enumerable:!1,writable:!1,value:i}),Object.defineProperty(s,"_source",{configurable:!1,enumerable:!1,writable:!1,value:l}),Object.freeze&&(Object.freeze(s.props),Object.freeze(s)),s};function Qe(e,r,t,i,l){{var f,u={},s=null,p=null;t!==void 0&&(Pe(t),s=""+t),Ke(r)&&(Pe(r.key),s=""+r.key),He(r)&&(p=r.ref,Ge(r,l));for(f in r)H.call(r,f)&&!Be.hasOwnProperty(f)&&(u[f]=r[f]);if(e&&e.defaultProps){var d=e.defaultProps;for(f in d)u[f]===void 0&&(u[f]=d[f])}if(s||p){var v=typeof e=="function"?e.displayName||e.name||"Unknown":e;s&&Xe(u,v),p&&qe(u,v)}return Je(e,s,p,l,i,Te.current,u)}}var be=I.ReactCurrentOwner,je=I.ReactDebugCurrentFrame;function M(e){if(e){var r=e._owner,t=ne(e.type,e._source,r?r.type:null);je.setExtraStackFrame(t)}else je.setExtraStackFrame(null)}var me;me=!1;function ye(e){return typeof e=="object"&&e!==null&&e.$$typeof===o}function ke(){{if(be.current){var e=S(be.current.type);if(e)return`
1
+ "use strict";
2
+ //#region rolldown:runtime
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
+ get: ((k) => from[k]).bind(null, key),
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
20
+ value: mod,
21
+ enumerable: true
22
+ }) : target, mod));
14
23
 
15
- Check the render method of \``+e+"`."}return""}}function er(e){return""}var xe={};function rr(e){{var r=ke();if(!r){var t=typeof e=="string"?e:e.displayName||e.name;t&&(r=`
24
+ //#endregion
25
+ const react = __toESM(require("react"));
26
+ const __inditextech_weave_sdk = __toESM(require("@inditextech/weave-sdk"));
27
+ require("konva");
16
28
 
17
- Check the top-level render call using <`+t+">.")}return r}}function Ae(e,r){{if(!e._store||e._store.validated||e.key!=null)return;e._store.validated=!0;var t=rr(r);if(xe[t])return;xe[t]=!0;var i="";e&&e._owner&&e._owner!==be.current&&(i=" It was passed a child from "+S(e._owner.type)+"."),M(e),g('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',t,i),M(null)}}function Ie(e,r){{if(typeof e!="object")return;if(he(e))for(var t=0;t<e.length;t++){var i=e[t];ye(i)&&Ae(i,r)}else if(ye(e))e._store&&(e._store.validated=!0);else if(e){var l=se(e);if(typeof l=="function"&&l!==e.entries)for(var f=l.call(e),u;!(u=f.next()).done;)ye(u.value)&&Ae(u.value,r)}}}function tr(e){{var r=e.type;if(r==null||typeof r=="string")return;var t;if(typeof r=="function")t=r.propTypes;else if(typeof r=="object"&&(r.$$typeof===A||r.$$typeof===y))t=r.propTypes;else return;if(t){var i=S(r);Ze(t,e.props,"prop",i,e)}else if(r.PropTypes!==void 0&&!me){me=!0;var l=S(r);g("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",l||"Unknown")}typeof r.getDefaultProps=="function"&&!r.getDefaultProps.isReactClassApproved&&g("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function nr(e){{for(var r=Object.keys(e.props),t=0;t<r.length;t++){var i=r[t];if(i!=="children"&&i!=="key"){M(e),g("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",i),M(null);break}}e.ref!==null&&(M(e),g("Invalid attribute `ref` supplied to `React.Fragment`."),M(null))}}var De={};function We(e,r,t,i,l,f){{var u=z(e);if(!u){var s="";(e===void 0||typeof e=="object"&&e!==null&&Object.keys(e).length===0)&&(s+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.");var p=er();p?s+=p:s+=ke();var d;e===null?d="null":he(e)?d="array":e!==void 0&&e.$$typeof===o?(d="<"+(S(e.type)||"Unknown")+" />",s=" Did you accidentally export a JSX literal instead of a component?"):d=typeof e,g("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",d,s)}var v=Qe(e,r,t,l,f);if(v==null)return v;if(u){var C=r.children;if(C!==void 0)if(i)if(he(C)){for(var Z=0;Z<C.length;Z++)Ie(C[Z],e);Object.freeze&&Object.freeze(C)}else g("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else Ie(C,e)}if(H.call(r,"key")){var U=S(e),b=Object.keys(r).filter(function(cr){return cr!=="key"}),Re=b.length>0?"{key: someKey, "+b.join(": ..., ")+": ...}":"{key: someKey}";if(!De[U+Re]){var ur=b.length>0?"{"+b.join(": ..., ")+": ...}":"{}";g(`A props object containing a "key" prop is being spread into JSX:
18
- let props = %s;
19
- <%s {...props} />
20
- React keys must be passed directly to JSX without using spread:
21
- let props = %s;
22
- <%s key={someKey} {...props} />`,Re,U,ur,U),De[U+Re]=!0}}return e===m?nr(v):tr(v),v}}function ar(e,r,t){return We(e,r,t,!0)}function or(e,r,t){return We(e,r,t,!1)}var ir=or,sr=ar;oe.Fragment=m,oe.jsx=ir,oe.jsxs=sr})();Ye.exports=oe;var Fe=Ye.exports;const lr={IDLE:"idle"},Ue=c=>{let o;const n=new Set,m=(E,_)=>{const y=typeof E=="function"?E(o):E;if(!Object.is(y,o)){const W=o;o=_??(typeof y!="object"||y===null)?y:Object.assign({},o,y),n.forEach(V=>V(o,W))}},j=()=>o,D={setState:m,getState:j,getInitialState:()=>A,subscribe:E=>(n.add(E),()=>n.delete(E))},A=o=c(m,j,D);return D},fr=c=>c?Ue(c):Ue,dr=c=>c;function vr(c,o=dr){const n=w.useSyncExternalStore(c.subscribe,()=>o(c.getState()),()=>o(c.getInitialState()));return w.useDebugValue(n),n}const gr=c=>{const o=fr(c),n=m=>vr(o,m);return Object.assign(n,o),n},pr=c=>gr,h=pr()(c=>({instance:null,appState:{weave:{}},status:lr.IDLE,room:{loaded:!1},connection:{status:"disconnected"},users:{},undoRedo:{canUndo:!1,canRedo:!1},zoom:{value:1,canZoomIn:!1,canZoomOut:!1},contextMenu:{show:!1,position:{x:0,y:0},options:[]},selection:{nodes:[],node:void 0},actions:{active:!1,actual:void 0},setInstance:o=>c(n=>({...n,instance:o})),setStatus:o=>c(n=>({...n,status:o})),setAppState:o=>c(n=>({...n,appState:o})),setConnectionStatus:o=>c(n=>({...n,connection:{...n.connection,status:o}})),setRoomLoaded:o=>c(n=>({...n,room:{...n.room,loaded:o}})),setUsers:o=>c(n=>({...n,users:o})),setCanUndo:o=>c(n=>({...n,undoRedo:{...n.undoRedo,canUndo:o}})),setCanRedo:o=>c(n=>({...n,undoRedo:{...n.undoRedo,canRedo:o}})),setZoom:o=>c(n=>({...n,zoom:{...n.zoom,value:o}})),setCanZoomIn:o=>c(n=>({...n,zoom:{...n.zoom,canZoomIn:o}})),setCanZoomOut:o=>c(n=>({...n,zoom:{...n.zoom,canZoomOut:o}})),setSelectedNodes:o=>c(n=>({...n,selection:{...n.selection,nodes:o}})),setNode:o=>c(n=>({...n,selection:{...n.selection,node:o}})),setActualAction:o=>c(n=>({...n,actions:{...n.actions,active:typeof o<"u",actual:o}}))})),hr=({containerId:c,getUser:o,store:n,nodes:m=[],actions:j=[],plugins:Y=[],customPlugins:N=[],fonts:D=[],callbacks:A={},children:E})=>{const _=w.useRef(null),y=h(a=>a.selection.nodes),W=h(a=>a.setInstance),V=h(a=>a.setAppState),K=h(a=>a.setStatus),ie=h(a=>a.setRoomLoaded),se=h(a=>a.setUsers),I=h(a=>a.setCanUndo),g=h(a=>a.setCanRedo),ue=h(a=>a.setZoom),ce=h(a=>a.setCanZoomIn),le=h(a=>a.setCanZoomOut),fe=h(a=>a.setSelectedNodes),G=h(a=>a.setNode),de=h(a=>a.setActualAction),{onInstanceStatus:$,onRoomLoaded:z,onStateChange:B,onUndoManagerStatusChange:L,onActiveActionChange:S,...k}=A,F=w.useCallback(a=>{K(a),$==null||$(a)},[]),X=w.useCallback(a=>{ie(a),z==null||z(a)},[]),q=w.useCallback(a=>{V(a),B==null||B(a)},[y]),J=w.useCallback(a=>{const{canUndo:x,canRedo:P}=a;I(x),g(P),L==null||L(a)},[]),Q=w.useCallback(a=>{de(a),S==null||S(status)},[y]),ee=w.useCallback(a=>{a.length===1&&G(a[0].node),a.length!==1&&G(void 0),fe(a)},[]);return w.useEffect(()=>{async function a(){const x=document.getElementById(c),P=x==null?void 0:x.getBoundingClientRect();if(x&&!_.current){if(m.length>0)for(const T of m);if(j.length>0)for(const T of j);const R=[];if(Y.length>0)for(const T of Y)R.push(T);else R.push(new O.WeaveStageGridPlugin({})),R.push(new O.WeaveStagePanningPlugin),R.push(new O.WeaveStageResizePlugin),R.push(new O.WeaveStageZoomPlugin({onZoomChange:T=>{ue(T.scale),ce(T.canZoomIn),le(T.canZoomOut)}})),R.push(new O.WeaveNodesSelectionPlugin({onNodesChange:ee})),R.push(new O.WeaveStageDropAreaPlugin({})),R.push(new O.WeaveConnectedUsersPlugin({onConnectedUsersChanged:T=>{se(T)},getUser:o})),R.push(new O.WeaveUsersPointersPlugin({getUser:o})),R.push(new O.WeaveCopyPasteNodesPlugin({}));_.current=new O.Weave({store:n,nodes:m,actions:j,plugins:[...R,...N],fonts:D,callbacks:{...k,onInstanceStatus:F,onRoomLoaded:X,onStateChange:q,onUndoManagerStatusChange:J,onActiveActionChange:Q},logger:{level:"info"}},{container:c,width:(P==null?void 0:P.width)??1920,height:(P==null?void 0:P.height)??1080}),W(_.current),_.current.start()}}a()},[]),Fe.jsx(Fe.Fragment,{children:E})};exports.WeaveProvider=hr;exports.useWeave=h;
29
+ //#region ../types/dist/types.js
30
+ const WEAVE_INSTANCE_STATUS = {
31
+ ["IDLE"]: "idle",
32
+ ["STARTING"]: "starting",
33
+ ["LOADING_FONTS"]: "loadingFonts",
34
+ ["RUNNING"]: "running"
35
+ };
36
+
37
+ //#endregion
38
+ //#region ../../node_modules/zustand/esm/vanilla.mjs
39
+ const createStoreImpl = (createState) => {
40
+ let state;
41
+ const listeners = /* @__PURE__ */ new Set();
42
+ const setState = (partial, replace) => {
43
+ const nextState = typeof partial === "function" ? partial(state) : partial;
44
+ if (!Object.is(nextState, state)) {
45
+ const previousState = state;
46
+ state = (replace != null ? replace : typeof nextState !== "object" || nextState === null) ? nextState : Object.assign({}, state, nextState);
47
+ listeners.forEach((listener) => listener(state, previousState));
48
+ }
49
+ };
50
+ const getState = () => state;
51
+ const getInitialState = () => initialState;
52
+ const subscribe = (listener) => {
53
+ listeners.add(listener);
54
+ return () => listeners.delete(listener);
55
+ };
56
+ const api = {
57
+ setState,
58
+ getState,
59
+ getInitialState,
60
+ subscribe
61
+ };
62
+ const initialState = state = createState(setState, getState, api);
63
+ return api;
64
+ };
65
+ const createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;
66
+
67
+ //#endregion
68
+ //#region ../../node_modules/zustand/esm/react.mjs
69
+ const identity = (arg) => arg;
70
+ function useStore(api, selector = identity) {
71
+ const slice = react.default.useSyncExternalStore(api.subscribe, () => selector(api.getState()), () => selector(api.getInitialState()));
72
+ react.default.useDebugValue(slice);
73
+ return slice;
74
+ }
75
+ const createImpl = (createState) => {
76
+ const api = createStore(createState);
77
+ const useBoundStore = (selector) => useStore(api, selector);
78
+ Object.assign(useBoundStore, api);
79
+ return useBoundStore;
80
+ };
81
+ const create = (createState) => createState ? createImpl(createState) : createImpl;
82
+
83
+ //#endregion
84
+ //#region src/components/store.tsx
85
+ const useWeave = create()((set) => ({
86
+ instance: null,
87
+ appState: { weave: {} },
88
+ status: WEAVE_INSTANCE_STATUS.IDLE,
89
+ room: { loaded: false },
90
+ connection: { status: "disconnected" },
91
+ users: {},
92
+ undoRedo: {
93
+ canUndo: false,
94
+ canRedo: false
95
+ },
96
+ zoom: {
97
+ value: 1,
98
+ canZoomIn: false,
99
+ canZoomOut: false
100
+ },
101
+ contextMenu: {
102
+ show: false,
103
+ position: {
104
+ x: 0,
105
+ y: 0
106
+ },
107
+ options: []
108
+ },
109
+ selection: {
110
+ nodes: [],
111
+ node: void 0
112
+ },
113
+ actions: {
114
+ active: false,
115
+ actual: void 0
116
+ },
117
+ setInstance: (newInstance) => set((state) => ({
118
+ ...state,
119
+ instance: newInstance
120
+ })),
121
+ setStatus: (newStatus) => set((state) => ({
122
+ ...state,
123
+ status: newStatus
124
+ })),
125
+ setAppState: (newAppState) => set((state) => ({
126
+ ...state,
127
+ appState: newAppState
128
+ })),
129
+ setConnectionStatus: (newConnectionStatus) => set((state) => ({
130
+ ...state,
131
+ connection: {
132
+ ...state.connection,
133
+ status: newConnectionStatus
134
+ }
135
+ })),
136
+ setRoomLoaded: (newStatus) => set((state) => ({
137
+ ...state,
138
+ room: {
139
+ ...state.room,
140
+ loaded: newStatus
141
+ }
142
+ })),
143
+ setUsers: (newUsers) => set((state) => ({
144
+ ...state,
145
+ users: newUsers
146
+ })),
147
+ setCanUndo: (newCanUndo) => set((state) => ({
148
+ ...state,
149
+ undoRedo: {
150
+ ...state.undoRedo,
151
+ canUndo: newCanUndo
152
+ }
153
+ })),
154
+ setCanRedo: (newCanRedo) => set((state) => ({
155
+ ...state,
156
+ undoRedo: {
157
+ ...state.undoRedo,
158
+ canRedo: newCanRedo
159
+ }
160
+ })),
161
+ setZoom: (newZoom) => set((state) => ({
162
+ ...state,
163
+ zoom: {
164
+ ...state.zoom,
165
+ value: newZoom
166
+ }
167
+ })),
168
+ setCanZoomIn: (newCanZoomIn) => set((state) => ({
169
+ ...state,
170
+ zoom: {
171
+ ...state.zoom,
172
+ canZoomIn: newCanZoomIn
173
+ }
174
+ })),
175
+ setCanZoomOut: (newCanZoomOut) => set((state) => ({
176
+ ...state,
177
+ zoom: {
178
+ ...state.zoom,
179
+ canZoomOut: newCanZoomOut
180
+ }
181
+ })),
182
+ setSelectedNodes: (newSelectedNodes) => set((state) => ({
183
+ ...state,
184
+ selection: {
185
+ ...state.selection,
186
+ nodes: newSelectedNodes
187
+ }
188
+ })),
189
+ setNode: (newNode) => set((state) => ({
190
+ ...state,
191
+ selection: {
192
+ ...state.selection,
193
+ node: newNode
194
+ }
195
+ })),
196
+ setActualAction: (newActualAction) => set((state) => ({
197
+ ...state,
198
+ actions: {
199
+ ...state.actions,
200
+ active: typeof newActualAction !== "undefined",
201
+ actual: newActualAction
202
+ }
203
+ }))
204
+ }));
205
+
206
+ //#endregion
207
+ //#region src/components/provider.tsx
208
+ const WeaveProvider = ({ containerId, getUser, store, nodes = [], actions = [], plugins = [], customPlugins = [], fonts = [], callbacks = {}, children }) => {
209
+ const weaveInstanceRef = react.default.useRef(null);
210
+ const selectedNodes = useWeave((state) => state.selection.nodes);
211
+ const setInstance = useWeave((state) => state.setInstance);
212
+ const setAppState = useWeave((state) => state.setAppState);
213
+ const setStatus = useWeave((state) => state.setStatus);
214
+ const setRoomLoaded = useWeave((state) => state.setRoomLoaded);
215
+ const setUsers = useWeave((state) => state.setUsers);
216
+ const setCanUndo = useWeave((state) => state.setCanUndo);
217
+ const setCanRedo = useWeave((state) => state.setCanRedo);
218
+ const setZoom = useWeave((state) => state.setZoom);
219
+ const setCanZoomIn = useWeave((state) => state.setCanZoomIn);
220
+ const setCanZoomOut = useWeave((state) => state.setCanZoomOut);
221
+ const setSelectedNodes = useWeave((state) => state.setSelectedNodes);
222
+ const setNode = useWeave((state) => state.setNode);
223
+ const setActualAction = useWeave((state) => state.setActualAction);
224
+ const { onInstanceStatus, onRoomLoaded, onStateChange, onUndoManagerStatusChange, onActiveActionChange,...restCallbacks } = callbacks;
225
+ const onInstanceStatusHandler = react.default.useCallback(
226
+ (status$1) => {
227
+ setStatus(status$1);
228
+ onInstanceStatus?.(status$1);
229
+ },
230
+ // eslint-disable-next-line react-hooks/exhaustive-deps
231
+ []
232
+ );
233
+ const onRoomLoadedHandler = react.default.useCallback(
234
+ (status$1) => {
235
+ setRoomLoaded(status$1);
236
+ onRoomLoaded?.(status$1);
237
+ },
238
+ // eslint-disable-next-line react-hooks/exhaustive-deps
239
+ []
240
+ );
241
+ const onStateChangeHandler = react.default.useCallback(
242
+ (state) => {
243
+ setAppState(state);
244
+ onStateChange?.(state);
245
+ },
246
+ // eslint-disable-next-line react-hooks/exhaustive-deps
247
+ [selectedNodes]
248
+ );
249
+ const onUndoManagerStatusChangeHandler = react.default.useCallback(
250
+ (undoManagerStatus) => {
251
+ const { canUndo, canRedo } = undoManagerStatus;
252
+ setCanUndo(canUndo);
253
+ setCanRedo(canRedo);
254
+ onUndoManagerStatusChange?.(undoManagerStatus);
255
+ },
256
+ // eslint-disable-next-line react-hooks/exhaustive-deps
257
+ []
258
+ );
259
+ const onActiveActionChangeHandler = react.default.useCallback(
260
+ (actionName) => {
261
+ setActualAction(actionName);
262
+ onActiveActionChange?.(status);
263
+ },
264
+ // eslint-disable-next-line react-hooks/exhaustive-deps
265
+ [selectedNodes]
266
+ );
267
+ const onNodesChange = react.default.useCallback((nodes$1) => {
268
+ if (nodes$1.length === 1) setNode(nodes$1[0].node);
269
+ if (nodes$1.length !== 1) setNode(void 0);
270
+ setSelectedNodes(nodes$1);
271
+ }, []);
272
+ react.default.useEffect(() => {
273
+ async function initWeave() {
274
+ const weaveEle = document.getElementById(containerId);
275
+ const weaveEleClientRect = weaveEle?.getBoundingClientRect();
276
+ if (weaveEle && !weaveInstanceRef.current) {
277
+ const instanceNodes = [];
278
+ if (nodes.length > 0) for (const node of nodes) instanceNodes.push(node);
279
+ const instanceActions = [];
280
+ if (actions.length > 0) for (const action of actions) instanceActions.push(action);
281
+ const instancePlugins = [];
282
+ if (plugins.length > 0) for (const plugin of plugins) instancePlugins.push(plugin);
283
+ else {
284
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveStageGridPlugin({}));
285
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveStagePanningPlugin());
286
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveStageResizePlugin());
287
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveStageZoomPlugin({ onZoomChange: (zoomInfo) => {
288
+ setZoom(zoomInfo.scale);
289
+ setCanZoomIn(zoomInfo.canZoomIn);
290
+ setCanZoomOut(zoomInfo.canZoomOut);
291
+ } }));
292
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveNodesSelectionPlugin({ onNodesChange }));
293
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveStageDropAreaPlugin({}));
294
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveConnectedUsersPlugin({
295
+ onConnectedUsersChanged: (users) => {
296
+ setUsers(users);
297
+ },
298
+ getUser
299
+ }));
300
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveUsersPointersPlugin({ getUser }));
301
+ instancePlugins.push(new __inditextech_weave_sdk.WeaveCopyPasteNodesPlugin({}));
302
+ }
303
+ weaveInstanceRef.current = new __inditextech_weave_sdk.Weave({
304
+ store,
305
+ nodes,
306
+ actions,
307
+ plugins: [...instancePlugins, ...customPlugins],
308
+ fonts,
309
+ callbacks: {
310
+ ...restCallbacks,
311
+ onInstanceStatus: onInstanceStatusHandler,
312
+ onRoomLoaded: onRoomLoadedHandler,
313
+ onStateChange: onStateChangeHandler,
314
+ onUndoManagerStatusChange: onUndoManagerStatusChangeHandler,
315
+ onActiveActionChange: onActiveActionChangeHandler
316
+ },
317
+ logger: { level: "info" }
318
+ }, {
319
+ container: containerId,
320
+ width: weaveEleClientRect?.width ?? 1920,
321
+ height: weaveEleClientRect?.height ?? 1080
322
+ });
323
+ setInstance(weaveInstanceRef.current);
324
+ weaveInstanceRef.current.start();
325
+ }
326
+ }
327
+ initWeave();
328
+ }, []);
329
+ return /* @__PURE__ */ react.default.createElement(react.default.Fragment, null, children);
330
+ };
331
+
332
+ //#endregion
333
+ exports.WeaveProvider = WeaveProvider
334
+ exports.useWeave = useWeave