@plurid/plurid-react 0.0.0-31 → 0.0.0-32

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.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@plurid/plurid-data"),t=require("@plurid/plurid-engine"),a=require("@plurid/plurid-pubsub"),n=require("react"),r=require("react-redux"),o=require("@reduxjs/toolkit"),i=require("@plurid/plurid-functions"),l=require("@plurid/plurid-themes"),s=require("styled-components"),c=require("@plurid/plurid-functions-react"),u=require("@plurid/plurid-icons-react"),d=require("@plurid/plurid-ui-components-react"),f=require("react-dom"),p=require("cross-fetch"),m=require("@plurid/elementql-client-react"),g=require("hammerjs");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var T=h(e),E=h(t),v=h(a),S=h(n),P=h(r),b=h(o),R=h(i),I=h(l),C=h(s),w=h(c),O=h(u),y=h(d),_=h(f),L=h(p),A=h(m),U=h(g);var D={};!function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=T.default,a=E.default,n=v.default,r=S.default,o=P.default,i=b.default,l=R.default,s=I.default,c=C.default,u=w.default,d=O.default,f=y.default,p=_.default,m=L.default,g=A.default;function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var D=h(n),x=h(r),N=h(s),M=h(c),k=h(m);const F=x.default.createContext(void 0),B=Object.assign({},t.defaultConfiguration),Y=i.createSlice({name:"configuration",initialState:B,reducers:{setConfiguration:(e,t)=>{e=Object.assign(Object.assign({},e),t.payload)},setConfigurationMicro:e=>{e.elements.toolbar.show=!1,e.elements.plane.controls.show=!1,e.elements.viewcube.show=!1},setConfigurationPlaneControls:(e,t)=>{e.elements.plane.controls.show=t.payload},setConfigurationPlaneOpacity:(e,t)=>{e.elements.plane.opacity=t.payload},setConfigurationThemeGeneral:(e,t)=>{const a={general:t.payload,interaction:"object"==typeof e.global.theme?e.global.theme.interaction:"plurid"};e.global.theme=a},setConfigurationThemeInteraction:(e,t)=>{const a={general:"object"==typeof e.global.theme?e.global.theme.general:"plurid",interaction:t.payload};e.global.theme=a},setConfigurationLanguage:(e,t)=>{e.global.language=t.payload},toggleConfigurationViewcubeHide:(e,t)=>{e.elements.viewcube.show=t.payload},toggleConfigurationViewcubeButtons:(e,t)=>{e.elements.viewcube.buttons=t.payload},toggleConfigurationViewcubeOpaque:(e,t)=>{e.elements.viewcube.opaque=t.payload},toggleConfigurationViewcubeConceal:e=>{const{conceal:t}=e.elements.viewcube;e.elements.viewcube.conceal=!t},toggleConfigurationToolbarConceal:e=>{const{conceal:t}=e.elements.toolbar;e.elements.toolbar.conceal=!t},toggleConfigurationToolbarTransformIcons:e=>{const{transformIcons:t}=e.elements.toolbar;e.elements.toolbar.transformIcons=!t},toggleConfigurationToolbarTransformButtons:e=>{const{transformButtons:t}=e.elements.toolbar;e.elements.toolbar.transformButtons=!t},toggleConfigurationShowTransformOrigin:e=>{const{show:t}=e.space.transformOrigin;e.space.transformOrigin.show=!t},toggleConfigurationToolbarOpaque:e=>{const{opaque:t}=e.elements.toolbar;e.elements.toolbar.opaque=!t},toggleConfigurationSpaceTransparentUI:e=>{e.global.transparentUI=!e.global.transparentUI},setConfigurationSpaceTransformOriginSize:(e,t)=>{e.space.transformOrigin.size=t.payload},setConfigurationSpaceTransformMode:(e,a)=>{e.space.transformMode!==a.payload?e.space.transformMode=a.payload:e.space.transformMode=t.TRANSFORM_MODES.ALL},toggleConfigurationSpaceTransformMultimode:(e,t)=>{e.space.transformMultimode=t.payload},setConfigurationSpaceTransformTouch:(e,t)=>{e.space.transformTouch=t.payload},toggleConfigurationSpaceFirstPerson:e=>{const{firstPerson:t}=e.space;e.space.firstPerson=!t},toggleConfigurationToolbarToggleDrawer:(e,t)=>{const{toggledDrawers:a}=e.elements.toolbar;if(a.includes(t.payload)){const n=a.filter((e=>e!==t.payload));e.elements.toolbar.toggledDrawers=[...n]}else e.elements.toolbar.toggledDrawers=[...a,t.payload]},setConfigurationSpaceTransformLocks:(e,t)=>{const{transformLocks:a}=e.space,n=Object.assign({},a);n[t.payload]=!a[t.payload],e.space.transformLocks=Object.assign({},n)},setConfigurationSpaceLayout:(e,a)=>{const n={type:t.LAYOUT_TYPES[a.payload]};e.space.layout=Object.assign({},n)},setConfigurationSpaceCullingDistance:(e,t)=>{e.space.cullingDistance=t.payload}}}),$=Y.actions,X=e=>e.configuration,V={getConfiguration:X},z=Y.reducer;var K=Object.freeze({__proto__:null,configuration:Y,actions:$,getConfiguration:X,selectors:V,reducer:z});const Z=i.createSlice({name:"general",initialState:{},reducers:{}}),j=Z.actions,G=e=>e.general,W={getGeneral:G},H=Z.reducer;var q=Object.freeze({__proto__:null,general:Z,actions:j,getGeneral:G,selectors:W,reducer:H});const J=i.createSlice({name:"shortcuts",initialState:{global:!0},reducers:{setGlobalShortcuts:(e,t)=>{e.global=t.payload}}}),Q=J.actions,ee=e=>e.shortcuts.global,te={getGlobal:ee},ae=J.reducer;var ne=Object.freeze({__proto__:null,shortcuts:J,actions:Q,getGlobal:ee,selectors:te,reducer:ae});const{registerPlanes:re,getRegisteredPlanes:oe,getPlanesRegistrar:ie,getPluridPlaneIDByData:le,getRegisteredPlane:se,resolvePluridRoutePlaneData:ce,resolvePluridPlaneData:ue,Registrar:de}=a.planes,{IsoMatcher:fe,resolveRoute:pe,computePlaneAddress:me}=a.routing,{quaternion:ge,matrix:he}=a.interaction,{degToRad:Te}=ge,{matrixArrayToCSSMatrix:Ee,rotateMatrix:ve,multiplyArrayOfMatrices:Se,scaleMatrix:Pe,translateMatrix:be}=he,Re=e=>{const{translationX:t,translationY:a,translationZ:n,rotationX:r,rotationY:o,scale:i}=e,l=-1*t+("undefined"==typeof window?720:window.innerWidth/2),s=-1*a+("undefined"==typeof window?400:window.innerHeight/2),c=-1*n,u=ve(Te(-r),Te(-o)),d=be(t,a,n),f=Pe(i),p=Se([d,be(l,s,c),u,be(-l,-s,-c),f]);return Ee(p)};var Ie=Object.freeze({__proto__:null,getSpace:e=>e.space,getLoading:e=>e.space.loading,getResolvedLayout:e=>e.space.resolvedLayout,getTransformMatrix:e=>e.space.transform,getAnimatedTransform:e=>e.space.animatedTransform,getTransformTime:e=>e.space.transformTime,getRotationX:e=>e.space.rotationX,getRotationY:e=>e.space.rotationY,getTranslationX:e=>e.space.translationX,getTranslationY:e=>e.space.translationY,getTranslationZ:e=>e.space.translationZ,getScale:e=>e.space.scale,getTree:e=>e.space.tree,getTransform:e=>({rotationX:e.space.rotationX,rotationY:e.space.rotationY,translationX:e.space.translationX,translationY:e.space.translationY,translationZ:e.space.translationZ,scale:e.space.scale}),getActiveUniverseID:e=>e.space.activeUniverseID,getView:e=>e.space.view,getViewSize:e=>e.space.viewSize,getCulledView:e=>e.space.culledView,getActivePlaneID:e=>e.space.activePlaneID,getIsolatePlane:e=>e.space.isolatePlane,getLastClosedPlane:e=>e.space.lastClosedPlane});const{toRadians:Ce}=l.mathematics.geometry,we={loading:!0,resolvedLayout:!1,transform:"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)",animatedTransform:!1,transformTime:450,scale:1,rotationX:0,rotationY:0,translationX:0,translationY:0,translationZ:0,tree:[],activeUniverseID:"",camera:{x:0,y:0,z:0},viewSize:{width:"undefined"==typeof window?1440:window.innerWidth,height:"undefined"==typeof window?821:window.innerHeight},spaceSize:{width:"undefined"==typeof window?1440:window.innerWidth,height:"undefined"==typeof window?821:window.innerHeight,depth:0,topCorner:{x:0,y:0,z:0}},view:[],culledView:[],activePlaneID:"",isolatePlane:"",lastClosedPlane:""},Oe="space",ye=i.createSlice({name:Oe,initialState:we,reducers:{setSpaceField:(e,t)=>{const{field:a,value:n}=t.payload;e[a]=n},setSpaceLoading:(e,t)=>{e.loading=t.payload},changeTransform:(e,t)=>{},setTransform:(e,t)=>{const{translationX:a,translationY:n,translationZ:r,rotationX:o,rotationY:i,scale:l}=t.payload,s=null!=a?a:e.translationX,c=null!=n?n:e.translationY,u=null!=r?r:e.translationZ,d=null!=o?o:e.rotationX,f=null!=i?i:e.rotationY,p=null!=l?l:e.scale;e.translationX=s,e.translationY=c,e.translationZ=u,e.rotationX=d,e.rotationY=f,e.scale=p},setAnimatedTransform:(e,t)=>{e.animatedTransform=t.payload},setTransformTime:(e,t)=>{e.transformTime=t.payload},setSpaceLocation:(e,t)=>{const a=Object.assign(Object.assign({},e),t.payload),n=Re(a);return Object.assign(Object.assign({},a),{transform:n})},viewCameraMoveForward:e=>{e.translationZ=e.translationZ+6*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX+6*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},viewCameraMoveBackward:e=>{e.translationZ=e.translationZ-6*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX-6*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},viewCameraMoveLeft:e=>{e.translationX=e.translationX+3*t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ+3*t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},viewCameraMoveRight:e=>{e.translationX=e.translationX-3*t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ-3*t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},viewCameraMoveUp:e=>{e.translationY=e.translationY+3*t.TRANSLATION_STEP,e.transform=Re(e)},viewCameraMoveDown:e=>{e.translationY=e.translationY-3*t.TRANSLATION_STEP,e.transform=Re(e)},viewCameraTurnUp:e=>{e.rotationX=(e.rotationX+t.ROTATION_STEP)%360,e.transform=Re(e)},viewCameraTurnDown:e=>{e.rotationX=(e.rotationX-t.ROTATION_STEP)%360,e.transform=Re(e)},viewCameraTurnLeft:e=>{e.rotationY=(e.rotationY-t.ROTATION_STEP)%360,e.transform=Re(e)},viewCameraTurnRight:e=>{e.rotationY=(e.rotationY+t.ROTATION_STEP)%360,e.transform=Re(e)},rotateUp:e=>{e.rotationX=(e.rotationX+t.ROTATION_STEP)%360,e.transform=Re(e)},rotateDown:e=>{e.rotationX=(e.rotationX-t.ROTATION_STEP)%360,e.transform=Re(e)},rotateX:(e,t)=>{e.rotationX=t.payload,e.transform=Re(e)},rotateXWith:(e,t)=>{e.rotationX=e.rotationX+t.payload,e.transform=Re(e)},rotateLeft:e=>{e.rotationY=(e.rotationY+t.ROTATION_STEP)%360,e.transform=Re(e)},rotateRight:e=>{e.rotationY=(e.rotationY-t.ROTATION_STEP)%360,e.transform=Re(e)},rotateY:(e,t)=>{e.rotationY=t.payload,e.transform=Re(e)},rotateYWith:(e,t)=>{e.rotationY=e.rotationY+t.payload,e.transform=Re(e)},translateUp:e=>{e.translationY=e.translationY-t.TRANSLATION_STEP,e.transform=Re(e)},translateDown:e=>{e.translationY=e.translationY+t.TRANSLATION_STEP,e.transform=Re(e)},translateLeft:e=>{e.translationX=e.translationX-t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ-t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},translateRight:e=>{e.translationX=e.translationX+t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ+t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},translateIn:e=>{e.translationZ=e.translationZ-3*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX-3*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},translateOut:e=>{e.translationZ=e.translationZ+3*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX+3*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},translateXWith:(e,t)=>{e.translationX=e.translationX+t.payload*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ+t.payload*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},translateYWith:(e,t)=>{e.translationY=e.translationY+t.payload,e.transform=Re(e)},translateZWith:(e,t)=>{e.translationZ=e.translationZ+t.payload,e.transform=Re(e)},scaleUp:e=>{const a=e.scale+t.SCALE_STEP,n=a<t.SCALE_UPPER_LIMIT?a:t.SCALE_UPPER_LIMIT;e.scale=n,e.transform=Re(e)},scaleDown:e=>{const a=e.scale-t.SCALE_STEP,n=a>t.SCALE_LOWER_LIMIT?a:t.SCALE_LOWER_LIMIT;e.scale=n,e.transform=Re(e)},scaleUpWith:(e,a)=>{const n=e.scale+Math.abs(a.payload),r=n<t.SCALE_UPPER_LIMIT?n:t.SCALE_UPPER_LIMIT;e.scale=r,e.transform=Re(e)},scaleDownWith:(e,a)=>{const n=e.scale-Math.abs(a.payload),r=n>t.SCALE_LOWER_LIMIT?n:t.SCALE_LOWER_LIMIT;e.scale=r,e.transform=Re(e)},setTree:(e,t)=>{e.tree=[...t.payload]},setActiveUniverse:(e,t)=>{e.activeUniverseID=t.payload},spaceResetTransform:e=>{e.scale=1,e.rotationX=0,e.rotationY=0,e.translationX=0,e.translationY=0,e.translationZ=0,e.transform=Re(e)},setViewSize:(e,t)=>{e.viewSize=t.payload},setSpaceSize:(e,t)=>{e.spaceSize=t.payload},updateSpaceTreePlane:(e,t)=>{const n=a.general.tree.updateTreePlane(e.tree,t.payload);e.tree=n},updateSpaceLinkCoordinates:(e,t)=>{const{planeID:n,linkCoordinates:r}=t.payload,o=a.general.tree.updateTreeByPlaneIDWithLinkCoordinates(e.tree,n,r);e.tree=o},spaceSetView:(e,t)=>{e.view=t.payload},spaceSetCulledView:(e,t)=>{e.culledView=t.payload}}}),_e=ye.actions,Le=ye.reducer;var Ae=Object.freeze({__proto__:null,name:Oe,space:ye,actions:_e,selectors:Ie,reducer:Le});const Ue={general:s.plurid,interaction:s.plurid},De=i.createSlice({name:"themes",initialState:Ue,reducers:{setGeneralTheme:(e,t)=>{e.general=t.payload},setInteractionTheme:(e,t)=>{e.interaction=t.payload}}}),xe=De.actions,Ne=e=>e.themes.general,Me=e=>e.themes.general,ke={getGeneralTheme:Ne,getInteractionTheme:Me},Fe=De.reducer;var Be=Object.freeze({__proto__:null,themes:De,actions:xe,getGeneralTheme:Ne,getInteractionTheme:Me,selectors:ke,reducer:Fe});const Ye=i.createSlice({name:"ui",initialState:{toolbarScrollPosition:0},reducers:{setUIToolbarScrollPosition:(e,t)=>{e.toolbarScrollPosition=t.payload}}}),$e=Ye.actions,Xe=e=>e.ui.toolbarScrollPosition,Ve={getToolbarScrollPosition:Xe},ze=Ye.reducer;var Ke={configuration:K,general:q,shortcuts:ne,space:Ae,themes:Be,ui:Object.freeze({__proto__:null,ui:Ye,actions:$e,getToolbarScrollPosition:Xe,selectors:Ve,reducer:ze})};const Ze=i.combineReducers({configuration:Ke.configuration.reducer,general:Ke.general.reducer,shortcuts:Ke.shortcuts.reducer,space:Ke.space.reducer,themes:Ke.themes.reducer,ui:Ke.ui.reducer}),je=e=>i.configureStore({preloadedState:e,reducer:Ze,devTools:!1}),Ge=x.default.createContext({});function We(e,t,a,n){return new(a||(a=Promise))((function(r,o){function i(e){try{s(n.next(e))}catch(e){o(e)}}function l(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(i,l)}s((n=n.apply(e,t||[])).next())}))}const He=x.default.createContext(null);var qe={configuration:Ke.configuration.actions,general:Ke.general.actions,shortcuts:Ke.shortcuts.actions,space:Ke.space.actions,themes:Ke.themes.actions,ui:Ke.ui.actions};const{quaternion:Je,transform:Qe,matrix:et}=a.interaction,{degToRad:tt,radToDeg:at}=Je,{multiplyMatricesArray:nt,translateMatrix:rt,rotateYMatrix:ot,matrixToCSSMatrix:it,arrayToMatrix:lt,inverseMatrix:st}=Qe.general,{getTransformRotate:ct,getTransformTranslate:ut,getTransformScale:dt}=Qe.matrix3d,{rotateMatrix:ft,translateMatrix:pt,scaleMatrix:mt,multiplyArrayOfMatrices:gt}=et,ht=(e,t,n,r="origin")=>{const o=a.general.configuration.merge(t),i=n||[],l=[];for(const e of i)if("string"==typeof e){const t=a.routing.resolveRoute(e);if(!t)continue;l.push(t.route)}const s=new de(e,r).getAll();return{computedTree:new a.space.tree.Tree({planes:s,configuration:o,view:l},r).compute(),appConfiguration:o}},Tt=(()=>{let e;return a=>{const n=e=>a(qe.space.setAnimatedTransform(e));n(!0),e&&clearTimeout(e),e=setTimeout((()=>{n(!1)}),t.PLURID_DEFAULT_ANIMATED_TRANSFORM_TIMEOUT)}})(),Et=(e,a,n,r=!0)=>{if(n&&(n.ctrlKey||n.metaKey))return;if(!a)return;const o=t=>e(qe.space.setSpaceField(t)),{matrix3d:i,transform:l}=(e=>{const{location:t}=e,{translateX:a,translateY:n,translateZ:r,rotateY:o}=t;return{transform:(()=>{const e="undefined"==typeof window?720:window.innerWidth/2,t="undefined"==typeof window?400:window.innerHeight/2,i=-1*a+e,l=-1*n+t,s=-1*r,c=ft(0,tt(o)),u=pt(a,n,r),d=mt(1),f=gt([u,pt(i,l,s),c,pt(-i,-l,-s),d]),p=st(lt(f)),m=it(p),g=ct(m),h=ut(m),T=dt(m);return{translationX:h.translateX,translationY:h.translateY,translationZ:h.translateZ,rotationX:at(g.rotateX),rotationY:at(g.rotateY),scale:T.scale}})(),matrix3d:(()=>{const t=o<100?1:-1,i=o<100?-1:1,l=o<100&&e.parentPlaneID?200:0,s=nt([rt(-a,-n,t*r),ot(tt(o)),rt(a,n,i*r),rt(-(a+l),-n,t*r)]);return it(s)})()}})(a);var s;Tt(e),o({field:"transform",value:i}),s=Object.assign({},l),e(qe.space.setTransform(s)),r&&o({field:"isolatePlane",value:""}),setTimeout((()=>{(e=>{const a=`[id='${e+t.FOCUS_ANCHOR_SUFFIX}']`,n=document.querySelector(a);n&&n.focus()})(a.planeID),o({field:"activePlaneID",value:a.planeID})}),t.PLURID_DEFAULT_ANIMATED_TRANSFORM_TIMEOUT)},vt=e=>{const{activePlaneID:t,tree:n}=e.space;if(!t)return;return a.space.tree.logic.getTreePlaneByID(n,t)},St=(e,t,a)=>{for(const[n,r]of e.entries()){if(r.planeID===t)return null!=a?a:n;if(r.children){const e=St(r.children,t,n);if("number"==typeof e)return e}}},Pt=(e,t,a)=>{const{activePlaneID:n,tree:r}=t.space,o=St(r,n);if("number"!=typeof o)return;let i=r["previous"===a?o-1||0:o+1];(i||(i="previous"===a?r[r.length-1]:r[0],i))&&Et(e,i,void 0,!0)},bt=(e,t)=>{Pt(e,t,"previous")},Rt=(e,t)=>{Pt(e,t,"next")},It=(e,t,a)=>{const{tree:n}=t.space,r=n[a];r&&Et(e,r,void 0,!0)},Ct=(e,n,r,o,i,s)=>{if(o.defaultPrevented)return;if(l.dom.verifyPathInputElement(l.dom.getEventPath(o)))return;const c=!(o.shiftKey||o.altKey||o.ctrlKey||o.metaKey),u=()=>{o.preventDefault()};if("KeyF"===o.code&&c)return u(),e(qe.configuration.toggleConfigurationSpaceFirstPerson());if(i){if("KeyW"===o.code&&c&&s.translationZ)return u(),e(qe.space.viewCameraMoveForward());if("KeyS"===o.code&&c&&s.translationZ)return u(),e(qe.space.viewCameraMoveBackward());if("KeyA"===o.code&&c&&s.translationX)return u(),e(qe.space.viewCameraMoveLeft());if("KeyA"===o.code&&o.shiftKey&&s.rotationY)return u(),e(qe.space.viewCameraTurnLeft());if("KeyD"===o.code&&c&&s.translationX)return u(),e(qe.space.viewCameraMoveRight());if("KeyD"===o.code&&o.shiftKey&&s.rotationY)return u(),e(qe.space.viewCameraTurnRight());if("KeyQ"===o.code&&c&&s.rotationX)return u(),e(qe.space.viewCameraTurnUp());if("KeyZ"===o.code&&c&&s.rotationX)return u(),e(qe.space.viewCameraTurnDown());if("KeyE"===o.code&&c&&s.translationY)return u(),e(qe.space.viewCameraMoveUp());if("KeyC"===o.code&&c&&s.translationY)return u(),e(qe.space.viewCameraMoveDown())}if("KeyR"===o.code&&c)return u(),e(qe.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.ROTATION));if("KeyT"===o.code&&c)return u(),e(qe.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.TRANSLATION));if("KeyS"===o.code&&c&&!i)return u(),e(qe.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.SCALE));if("ArrowRight"===o.key){if(o.shiftKey&&s.rotationY)return u(),e(qe.space.rotateLeft());if(o.altKey&&s.translationX)return u(),e(qe.space.translateRight())}if("ArrowLeft"===o.key){if(o.shiftKey&&s.rotationY)return u(),e(qe.space.rotateRight());if(o.altKey&&s.translationX)return u(),e(qe.space.translateLeft())}if("ArrowUp"===o.key){if(o.shiftKey&&o.altKey&&s.translationZ)return u(),e(qe.space.translateIn());if(o.shiftKey&&!o.altKey&&s.rotationX)return u(),e(qe.space.rotateUp());if(o.altKey&&!o.shiftKey&&s.translationY)return u(),e(qe.space.translateUp());if(o.metaKey||o.ctrlKey&&s.scale)return u(),e(qe.space.scaleUp())}if("ArrowDown"===o.key){if(o.shiftKey&&o.altKey&&s.translationZ)return u(),e(qe.space.translateOut());if(o.shiftKey&&!o.altKey&&s.rotationX)return u(),e(qe.space.rotateDown());if(o.altKey&&!o.shiftKey&&s.translationY)return u(),e(qe.space.translateDown());if(o.metaKey||o.ctrlKey&&s.scale)return u(),e(qe.space.scaleDown())}if(o.altKey&&"KeyF"===o.code)return u(),void((e,t)=>{const a=vt(t);if(!a)return;Et(e,a,void 0,!1)})(e,n);if(o.altKey&&"KeyB"===o.code)return u(),void((e,t)=>{const n=vt(t);if(!n||!n.parentPlaneID)return;const r=a.space.tree.logic.getTreePlaneByID(t.space.tree,n.parentPlaneID);r&&Et(e,r)})(e,n);if(o.altKey&&"KeyR"===o.code)return u(),void((e,a)=>{const{activePlaneID:n}=e.space;n&&a.publish({topic:t.PLURID_PUBSUB_TOPIC.REFRESH_PLANE,data:{id:n}})})(n,r);if(o.altKey&&"KeyE"===o.code)return u(),void((e,a)=>{const{activePlaneID:n,isolatePlane:r}=e.space;r?a.publish({topic:t.PLURID_PUBSUB_TOPIC.ISOLATE_PLANE,data:{id:""}}):n&&a.publish({topic:t.PLURID_PUBSUB_TOPIC.ISOLATE_PLANE,data:{id:n}})})(n,r);if(o.altKey&&o.shiftKey&&"KeyT"===o.code)return u(),void(e=>{e.publish({topic:t.PLURID_PUBSUB_TOPIC.OPEN_CLOSED_PLANE})})(r);if(o.altKey&&"KeyW"===o.code)return u(),void((e,a)=>{const{activePlaneID:n}=e.space;n&&a.publish({topic:t.PLURID_PUBSUB_TOPIC.CLOSE_PLANE,data:{id:n}})})(n,r);if(o.altKey&&"KeyA"===o.code)return u(),void bt(e,n);if(o.altKey&&"KeyD"===o.code)return u(),void Rt(e,n);if(o.altKey&&"Tab"===o.code)return u(),void(o.shiftKey?bt(e,n):Rt(e,n));if(o.altKey&&o.code.startsWith("Digit")){u();const t=parseInt(o.code.replace("Digit",""))-1;It(e,n,t)}else;},wt=()=>We(void 0,void 0,void 0,(function*(){return yield Promise.resolve().then((function(){return function(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}(U.default)}))}));var Ot={configuration:Ke.configuration.selectors,general:Ke.general.selectors,shortcuts:Ke.shortcuts.selectors,space:Ke.space.selectors,themes:Ke.themes.selectors,ui:Ke.ui.selectors};const yt=c.createGlobalStyle`
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@plurid/plurid-data"),t=require("@plurid/plurid-engine"),a=require("@plurid/plurid-pubsub"),n=require("react"),r=require("react-redux"),o=require("@reduxjs/toolkit"),i=require("@plurid/plurid-functions"),l=require("@plurid/plurid-themes"),s=require("styled-components"),c=require("@plurid/plurid-functions-react"),u=require("@plurid/plurid-icons-react"),d=require("@plurid/plurid-ui-components-react"),f=require("react-dom"),p=require("cross-fetch"),m=require("@plurid/elementql-client-react"),g=require("hammerjs");function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var T=h(e),E=h(t),v=h(a),S=h(n),P=h(r),b=h(o),R=h(i),I=h(l),C=h(s),w=h(c),O=h(u),y=h(d),_=h(f),L=h(p),A=h(m),U=h(g);var D={};!function(e){Object.defineProperty(e,"__esModule",{value:!0});var t=T.default,a=E.default,n=v.default,r=S.default,o=P.default,i=b.default,l=R.default,s=I.default,c=C.default,u=w.default,d=O.default,f=y.default,p=_.default,m=L.default,g=A.default;function h(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var D=h(n),x=h(r),N=h(s),M=h(c),k=h(m);const F=x.default.createContext(void 0),B=Object.assign({},t.defaultConfiguration),Y=i.createSlice({name:"configuration",initialState:B,reducers:{setConfiguration:(e,t)=>{e=Object.assign(Object.assign({},e),t.payload)},setConfigurationMicro:e=>{e.elements.toolbar.show=!1,e.elements.plane.controls.show=!1,e.elements.viewcube.show=!1},setConfigurationPlaneControls:(e,t)=>{e.elements.plane.controls.show=t.payload},setConfigurationPlaneOpacity:(e,t)=>{e.elements.plane.opacity=t.payload},setConfigurationThemeGeneral:(e,t)=>{const a={general:t.payload,interaction:"object"==typeof e.global.theme?e.global.theme.interaction:"plurid"};e.global.theme=a},setConfigurationThemeInteraction:(e,t)=>{const a={general:"object"==typeof e.global.theme?e.global.theme.general:"plurid",interaction:t.payload};e.global.theme=a},setConfigurationLanguage:(e,t)=>{e.global.language=t.payload},toggleConfigurationViewcubeHide:(e,t)=>{e.elements.viewcube.show=t.payload},toggleConfigurationViewcubeButtons:(e,t)=>{e.elements.viewcube.buttons=t.payload},toggleConfigurationViewcubeOpaque:(e,t)=>{e.elements.viewcube.opaque=t.payload},toggleConfigurationViewcubeConceal:e=>{const{conceal:t}=e.elements.viewcube;e.elements.viewcube.conceal=!t},toggleConfigurationToolbarConceal:e=>{const{conceal:t}=e.elements.toolbar;e.elements.toolbar.conceal=!t},toggleConfigurationToolbarTransformIcons:e=>{const{transformIcons:t}=e.elements.toolbar;e.elements.toolbar.transformIcons=!t},toggleConfigurationToolbarTransformButtons:e=>{const{transformButtons:t}=e.elements.toolbar;e.elements.toolbar.transformButtons=!t},toggleConfigurationShowTransformOrigin:e=>{const{show:t}=e.space.transformOrigin;e.space.transformOrigin.show=!t},toggleConfigurationToolbarOpaque:e=>{const{opaque:t}=e.elements.toolbar;e.elements.toolbar.opaque=!t},toggleConfigurationSpaceTransparentUI:e=>{e.global.transparentUI=!e.global.transparentUI},setConfigurationSpaceTransformOriginSize:(e,t)=>{e.space.transformOrigin.size=t.payload},setConfigurationSpaceTransformMode:(e,a)=>{e.space.transformMode!==a.payload?e.space.transformMode=a.payload:e.space.transformMode=t.TRANSFORM_MODES.ALL},toggleConfigurationSpaceTransformMultimode:(e,t)=>{e.space.transformMultimode=t.payload},setConfigurationSpaceTransformTouch:(e,t)=>{e.space.transformTouch=t.payload},toggleConfigurationSpaceFirstPerson:e=>{const{firstPerson:t}=e.space;e.space.firstPerson=!t},toggleConfigurationToolbarToggleDrawer:(e,t)=>{const{toggledDrawers:a}=e.elements.toolbar;if(a.includes(t.payload)){const n=a.filter((e=>e!==t.payload));e.elements.toolbar.toggledDrawers=[...n]}else e.elements.toolbar.toggledDrawers=[...a,t.payload]},setConfigurationSpaceTransformLocks:(e,t)=>{const{transformLocks:a}=e.space,n=Object.assign({},a);n[t.payload]=!a[t.payload],e.space.transformLocks=Object.assign({},n)},setConfigurationSpaceLayout:(e,a)=>{const n={type:t.LAYOUT_TYPES[a.payload]};e.space.layout=Object.assign({},n)},setConfigurationSpaceCullingDistance:(e,t)=>{e.space.cullingDistance=t.payload}}}),$=Y.actions,X=e=>e.configuration,V={getConfiguration:X},z=Y.reducer;var K=Object.freeze({__proto__:null,configuration:Y,actions:$,getConfiguration:X,selectors:V,reducer:z});const Z=i.createSlice({name:"general",initialState:{},reducers:{}}),j=Z.actions,G=e=>e.general,W={getGeneral:G},H=Z.reducer;var q=Object.freeze({__proto__:null,general:Z,actions:j,getGeneral:G,selectors:W,reducer:H});const J=i.createSlice({name:"shortcuts",initialState:{global:!0},reducers:{setGlobalShortcuts:(e,t)=>{e.global=t.payload}}}),Q=J.actions,ee=e=>e.shortcuts.global,te={getGlobal:ee},ae=J.reducer;var ne=Object.freeze({__proto__:null,shortcuts:J,actions:Q,getGlobal:ee,selectors:te,reducer:ae});const{registerPlanes:re,getRegisteredPlanes:oe,getPlanesRegistrar:ie,getPluridPlaneIDByData:le,getRegisteredPlane:se,resolvePluridRoutePlaneData:ce,resolvePluridPlaneData:ue,Registrar:de}=a.planes,{IsoMatcher:fe,resolveRoute:pe,computePlaneAddress:me}=a.routing,{quaternion:ge,matrix:he}=a.interaction,{degToRad:Te}=ge,{matrixArrayToCSSMatrix:Ee,rotateMatrix:ve,multiplyArrayOfMatrices:Se,scaleMatrix:Pe,translateMatrix:be}=he,Re=e=>{const{translationX:t,translationY:a,translationZ:n,rotationX:r,rotationY:o,scale:i}=e,l=-1*t+("undefined"==typeof window?720:window.innerWidth/2),s=-1*a+("undefined"==typeof window?400:window.innerHeight/2),c=-1*n,u=ve(Te(-r),Te(-o)),d=be(t,a,n),f=Pe(i),p=Se([d,be(l,s,c),u,be(-l,-s,-c),f]);return Ee(p)};var Ie=Object.freeze({__proto__:null,getSpace:e=>e.space,getLoading:e=>e.space.loading,getResolvedLayout:e=>e.space.resolvedLayout,getTransformMatrix:e=>e.space.transform,getAnimatedTransform:e=>e.space.animatedTransform,getTransformTime:e=>e.space.transformTime,getRotationX:e=>e.space.rotationX,getRotationY:e=>e.space.rotationY,getTranslationX:e=>e.space.translationX,getTranslationY:e=>e.space.translationY,getTranslationZ:e=>e.space.translationZ,getScale:e=>e.space.scale,getTree:e=>e.space.tree,getTransform:e=>({rotationX:e.space.rotationX,rotationY:e.space.rotationY,translationX:e.space.translationX,translationY:e.space.translationY,translationZ:e.space.translationZ,scale:e.space.scale}),getActiveUniverseID:e=>e.space.activeUniverseID,getView:e=>e.space.view,getViewSize:e=>e.space.viewSize,getCulledView:e=>e.space.culledView,getActivePlaneID:e=>e.space.activePlaneID,getIsolatePlane:e=>e.space.isolatePlane,getLastClosedPlane:e=>e.space.lastClosedPlane});const{toRadians:Ce}=l.mathematics.geometry,we={loading:!0,resolvedLayout:!1,transform:"matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)",animatedTransform:!1,transformTime:450,scale:1,rotationX:0,rotationY:0,translationX:0,translationY:0,translationZ:0,tree:[],activeUniverseID:"",camera:{x:0,y:0,z:0},viewSize:{width:"undefined"==typeof window?1440:window.innerWidth,height:"undefined"==typeof window?821:window.innerHeight},spaceSize:{width:"undefined"==typeof window?1440:window.innerWidth,height:"undefined"==typeof window?821:window.innerHeight,depth:0,topCorner:{x:0,y:0,z:0}},view:[],culledView:[],activePlaneID:"",isolatePlane:"",lastClosedPlane:""},Oe="space",ye=i.createSlice({name:Oe,initialState:we,reducers:{setSpaceField:(e,t)=>{const{field:a,value:n}=t.payload;e[a]=n},setSpaceLoading:(e,t)=>{e.loading=t.payload},changeTransform:(e,t)=>{},setTransform:(e,t)=>{const{translationX:a,translationY:n,translationZ:r,rotationX:o,rotationY:i,scale:l}=t.payload,s=null!=a?a:e.translationX,c=null!=n?n:e.translationY,u=null!=r?r:e.translationZ,d=null!=o?o:e.rotationX,f=null!=i?i:e.rotationY,p=null!=l?l:e.scale;e.translationX=s,e.translationY=c,e.translationZ=u,e.rotationX=d,e.rotationY=f,e.scale=p},setAnimatedTransform:(e,t)=>{e.animatedTransform=t.payload},setTransformTime:(e,t)=>{e.transformTime=t.payload},setSpaceLocation:(e,t)=>{const a=Object.assign(Object.assign({},e),t.payload),n=Re(a);return Object.assign(Object.assign({},a),{transform:n})},viewCameraMoveForward:e=>{e.translationZ=e.translationZ+6*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX+6*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},viewCameraMoveBackward:e=>{e.translationZ=e.translationZ-6*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX-6*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},viewCameraMoveLeft:e=>{e.translationX=e.translationX+3*t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ+3*t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},viewCameraMoveRight:e=>{e.translationX=e.translationX-3*t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ-3*t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},viewCameraMoveUp:e=>{e.translationY=e.translationY+3*t.TRANSLATION_STEP,e.transform=Re(e)},viewCameraMoveDown:e=>{e.translationY=e.translationY-3*t.TRANSLATION_STEP,e.transform=Re(e)},viewCameraTurnUp:e=>{e.rotationX=(e.rotationX+t.ROTATION_STEP)%360,e.transform=Re(e)},viewCameraTurnDown:e=>{e.rotationX=(e.rotationX-t.ROTATION_STEP)%360,e.transform=Re(e)},viewCameraTurnLeft:e=>{e.rotationY=(e.rotationY-t.ROTATION_STEP)%360,e.transform=Re(e)},viewCameraTurnRight:e=>{e.rotationY=(e.rotationY+t.ROTATION_STEP)%360,e.transform=Re(e)},rotateUp:e=>{e.rotationX=(e.rotationX+t.ROTATION_STEP)%360,e.transform=Re(e)},rotateDown:e=>{e.rotationX=(e.rotationX-t.ROTATION_STEP)%360,e.transform=Re(e)},rotateX:(e,t)=>{e.rotationX=t.payload,e.transform=Re(e)},rotateXWith:(e,t)=>{e.rotationX=e.rotationX+t.payload,e.transform=Re(e)},rotateLeft:e=>{e.rotationY=(e.rotationY+t.ROTATION_STEP)%360,e.transform=Re(e)},rotateRight:e=>{e.rotationY=(e.rotationY-t.ROTATION_STEP)%360,e.transform=Re(e)},rotateY:(e,t)=>{e.rotationY=t.payload,e.transform=Re(e)},rotateYWith:(e,t)=>{e.rotationY=e.rotationY+t.payload,e.transform=Re(e)},translateUp:e=>{e.translationY=e.translationY-t.TRANSLATION_STEP,e.transform=Re(e)},translateDown:e=>{e.translationY=e.translationY+t.TRANSLATION_STEP,e.transform=Re(e)},translateLeft:e=>{e.translationX=e.translationX-t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ-t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},translateRight:e=>{e.translationX=e.translationX+t.TRANSLATION_STEP*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ+t.TRANSLATION_STEP*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},translateIn:e=>{e.translationZ=e.translationZ-3*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX-3*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},translateOut:e=>{e.translationZ=e.translationZ+3*t.TRANSLATION_STEP*Math.cos(Ce(-e.rotationY)),e.translationX=e.translationX+3*t.TRANSLATION_STEP*Math.sin(Ce(-e.rotationY)),e.transform=Re(e)},translateXWith:(e,t)=>{e.translationX=e.translationX+t.payload*Math.cos(Ce(e.rotationY)),e.translationZ=e.translationZ+t.payload*Math.sin(Ce(e.rotationY)),e.transform=Re(e)},translateYWith:(e,t)=>{e.translationY=e.translationY+t.payload,e.transform=Re(e)},translateZWith:(e,t)=>{e.translationZ=e.translationZ+t.payload,e.transform=Re(e)},scaleUp:e=>{const a=e.scale+t.SCALE_STEP,n=a<t.SCALE_UPPER_LIMIT?a:t.SCALE_UPPER_LIMIT;e.scale=n,e.transform=Re(e)},scaleDown:e=>{const a=e.scale-t.SCALE_STEP,n=a>t.SCALE_LOWER_LIMIT?a:t.SCALE_LOWER_LIMIT;e.scale=n,e.transform=Re(e)},scaleUpWith:(e,a)=>{const n=e.scale+Math.abs(a.payload),r=n<t.SCALE_UPPER_LIMIT?n:t.SCALE_UPPER_LIMIT;e.scale=r,e.transform=Re(e)},scaleDownWith:(e,a)=>{const n=e.scale-Math.abs(a.payload),r=n>t.SCALE_LOWER_LIMIT?n:t.SCALE_LOWER_LIMIT;e.scale=r,e.transform=Re(e)},setTree:(e,t)=>{e.tree=[...t.payload]},setActiveUniverse:(e,t)=>{e.activeUniverseID=t.payload},spaceResetTransform:e=>{e.scale=1,e.rotationX=0,e.rotationY=0,e.translationX=0,e.translationY=0,e.translationZ=0,e.transform=Re(e)},setViewSize:(e,t)=>{e.viewSize=t.payload},setSpaceSize:(e,t)=>{e.spaceSize=t.payload},updateSpaceTreePlane:(e,t)=>{const n=a.general.tree.updateTreePlane(e.tree,t.payload);e.tree=n},updateSpaceLinkCoordinates:(e,t)=>{const{planeID:n,linkCoordinates:r}=t.payload,o=a.general.tree.updateTreeByPlaneIDWithLinkCoordinates(e.tree,n,r);e.tree=o},spaceSetView:(e,t)=>{e.view=t.payload},spaceSetCulledView:(e,t)=>{e.culledView=t.payload},removePlane:(e,t)=>{const n=a.space.tree.logic.removePlaneFromTree(l.objects.clone(e.tree),t.payload);e.tree=n}}}),_e=ye.actions,Le=ye.reducer;var Ae=Object.freeze({__proto__:null,name:Oe,space:ye,actions:_e,selectors:Ie,reducer:Le});const Ue={general:s.plurid,interaction:s.plurid},De=i.createSlice({name:"themes",initialState:Ue,reducers:{setGeneralTheme:(e,t)=>{e.general=t.payload},setInteractionTheme:(e,t)=>{e.interaction=t.payload}}}),xe=De.actions,Ne=e=>e.themes.general,Me=e=>e.themes.general,ke={getGeneralTheme:Ne,getInteractionTheme:Me},Fe=De.reducer;var Be=Object.freeze({__proto__:null,themes:De,actions:xe,getGeneralTheme:Ne,getInteractionTheme:Me,selectors:ke,reducer:Fe});const Ye=i.createSlice({name:"ui",initialState:{toolbarScrollPosition:0},reducers:{setUIToolbarScrollPosition:(e,t)=>{e.toolbarScrollPosition=t.payload}}}),$e=Ye.actions,Xe=e=>e.ui.toolbarScrollPosition,Ve={getToolbarScrollPosition:Xe},ze=Ye.reducer;var Ke={configuration:K,general:q,shortcuts:ne,space:Ae,themes:Be,ui:Object.freeze({__proto__:null,ui:Ye,actions:$e,getToolbarScrollPosition:Xe,selectors:Ve,reducer:ze})};const Ze=i.combineReducers({configuration:Ke.configuration.reducer,general:Ke.general.reducer,shortcuts:Ke.shortcuts.reducer,space:Ke.space.reducer,themes:Ke.themes.reducer,ui:Ke.ui.reducer}),je=e=>i.configureStore({preloadedState:e,reducer:Ze,devTools:!1}),Ge=x.default.createContext({});function We(e,t,a,n){return new(a||(a=Promise))((function(r,o){function i(e){try{s(n.next(e))}catch(e){o(e)}}function l(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a((function(e){e(t)}))).then(i,l)}s((n=n.apply(e,t||[])).next())}))}const He=x.default.createContext(null);var qe={configuration:Ke.configuration.actions,general:Ke.general.actions,shortcuts:Ke.shortcuts.actions,space:Ke.space.actions,themes:Ke.themes.actions,ui:Ke.ui.actions};const{quaternion:Je,transform:Qe,matrix:et}=a.interaction,{degToRad:tt,radToDeg:at}=Je,{multiplyMatricesArray:nt,translateMatrix:rt,rotateYMatrix:ot,matrixToCSSMatrix:it,arrayToMatrix:lt,inverseMatrix:st}=Qe.general,{getTransformRotate:ct,getTransformTranslate:ut,getTransformScale:dt}=Qe.matrix3d,{rotateMatrix:ft,translateMatrix:pt,scaleMatrix:mt,multiplyArrayOfMatrices:gt}=et,ht=(e,t,n,r="origin")=>{const o=a.general.configuration.merge(t),i=n||[],l=[];for(const e of i)if("string"==typeof e){const t=a.routing.resolveRoute(e);if(!t)continue;l.push(t.route)}const s=new de(e,r).getAll();return{computedTree:new a.space.tree.Tree({planes:s,configuration:o,view:l},r).compute(),appConfiguration:o}},Tt=(()=>{let e;return a=>{const n=e=>a(qe.space.setAnimatedTransform(e));n(!0),e&&clearTimeout(e),e=setTimeout((()=>{n(!1)}),t.PLURID_DEFAULT_ANIMATED_TRANSFORM_TIMEOUT)}})(),Et=(e,a,n,r=!0)=>{if(n&&(n.ctrlKey||n.metaKey))return;if(!a)return;const o=t=>e(qe.space.setSpaceField(t)),{matrix3d:i,transform:l}=(e=>{const{location:t}=e,{translateX:a,translateY:n,translateZ:r,rotateY:o}=t;return{transform:(()=>{const e="undefined"==typeof window?720:window.innerWidth/2,t="undefined"==typeof window?400:window.innerHeight/2,i=-1*a+e,l=-1*n+t,s=-1*r,c=ft(0,tt(o)),u=pt(a,n,r),d=mt(1),f=gt([u,pt(i,l,s),c,pt(-i,-l,-s),d]),p=st(lt(f)),m=it(p),g=ct(m),h=ut(m),T=dt(m);return{translationX:h.translateX,translationY:h.translateY,translationZ:h.translateZ,rotationX:at(g.rotateX),rotationY:at(g.rotateY),scale:T.scale}})(),matrix3d:(()=>{const t=o<100?1:-1,i=o<100?-1:1,l=o<100&&e.parentPlaneID?200:0,s=nt([rt(-a,-n,t*r),ot(tt(o)),rt(a,n,i*r),rt(-(a+l),-n,t*r)]);return it(s)})()}})(a);var s;Tt(e),o({field:"transform",value:i}),s=Object.assign({},l),e(qe.space.setTransform(s)),r&&o({field:"isolatePlane",value:""}),setTimeout((()=>{(e=>{const a=`[id='${e+t.FOCUS_ANCHOR_SUFFIX}']`,n=document.querySelector(a);n&&n.focus()})(a.planeID),o({field:"activePlaneID",value:a.planeID})}),t.PLURID_DEFAULT_ANIMATED_TRANSFORM_TIMEOUT)},vt=e=>{const{activePlaneID:t,tree:n}=e.space;if(!t)return;return a.space.tree.logic.getTreePlaneByID(n,t)},St=(e,t,a)=>{for(const[n,r]of e.entries()){if(r.planeID===t)return null!=a?a:n;if(r.children){const e=St(r.children,t,n);if("number"==typeof e)return e}}},Pt=(e,t,a)=>{const{activePlaneID:n,tree:r}=t.space,o=St(r,n);if("number"!=typeof o)return;let i=r["previous"===a?o-1||0:o+1];(i||(i="previous"===a?r[r.length-1]:r[0],i))&&Et(e,i,void 0,!0)},bt=(e,t)=>{Pt(e,t,"previous")},Rt=(e,t)=>{Pt(e,t,"next")},It=(e,t,a)=>{const{tree:n}=t.space,r=n[a];r&&Et(e,r,void 0,!0)},Ct=(e,n,r,o,i,s)=>{if(o.defaultPrevented)return;if(l.dom.verifyPathInputElement(l.dom.getEventPath(o)))return;const c=!(o.shiftKey||o.altKey||o.ctrlKey||o.metaKey),u=()=>{o.preventDefault()};if("KeyF"===o.code&&c)return u(),e(qe.configuration.toggleConfigurationSpaceFirstPerson());if(i){if("KeyW"===o.code&&c&&s.translationZ)return u(),e(qe.space.viewCameraMoveForward());if("KeyS"===o.code&&c&&s.translationZ)return u(),e(qe.space.viewCameraMoveBackward());if("KeyA"===o.code&&c&&s.translationX)return u(),e(qe.space.viewCameraMoveLeft());if("KeyA"===o.code&&o.shiftKey&&s.rotationY)return u(),e(qe.space.viewCameraTurnLeft());if("KeyD"===o.code&&c&&s.translationX)return u(),e(qe.space.viewCameraMoveRight());if("KeyD"===o.code&&o.shiftKey&&s.rotationY)return u(),e(qe.space.viewCameraTurnRight());if("KeyQ"===o.code&&c&&s.rotationX)return u(),e(qe.space.viewCameraTurnUp());if("KeyZ"===o.code&&c&&s.rotationX)return u(),e(qe.space.viewCameraTurnDown());if("KeyE"===o.code&&c&&s.translationY)return u(),e(qe.space.viewCameraMoveUp());if("KeyC"===o.code&&c&&s.translationY)return u(),e(qe.space.viewCameraMoveDown())}if("KeyR"===o.code&&c)return u(),e(qe.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.ROTATION));if("KeyT"===o.code&&c)return u(),e(qe.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.TRANSLATION));if("KeyS"===o.code&&c&&!i)return u(),e(qe.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.SCALE));if("ArrowRight"===o.key){if(o.shiftKey&&s.rotationY)return u(),e(qe.space.rotateLeft());if(o.altKey&&s.translationX)return u(),e(qe.space.translateRight())}if("ArrowLeft"===o.key){if(o.shiftKey&&s.rotationY)return u(),e(qe.space.rotateRight());if(o.altKey&&s.translationX)return u(),e(qe.space.translateLeft())}if("ArrowUp"===o.key){if(o.shiftKey&&o.altKey&&s.translationZ)return u(),e(qe.space.translateIn());if(o.shiftKey&&!o.altKey&&s.rotationX)return u(),e(qe.space.rotateUp());if(o.altKey&&!o.shiftKey&&s.translationY)return u(),e(qe.space.translateUp());if(o.metaKey||o.ctrlKey&&s.scale)return u(),e(qe.space.scaleUp())}if("ArrowDown"===o.key){if(o.shiftKey&&o.altKey&&s.translationZ)return u(),e(qe.space.translateOut());if(o.shiftKey&&!o.altKey&&s.rotationX)return u(),e(qe.space.rotateDown());if(o.altKey&&!o.shiftKey&&s.translationY)return u(),e(qe.space.translateDown());if(o.metaKey||o.ctrlKey&&s.scale)return u(),e(qe.space.scaleDown())}if(o.altKey&&"KeyF"===o.code)return u(),void((e,t)=>{const a=vt(t);if(!a)return;Et(e,a,void 0,!1)})(e,n);if(o.altKey&&"KeyB"===o.code)return u(),void((e,t)=>{const n=vt(t);if(!n||!n.parentPlaneID)return;const r=a.space.tree.logic.getTreePlaneByID(t.space.tree,n.parentPlaneID);r&&Et(e,r)})(e,n);if(o.altKey&&"KeyR"===o.code)return u(),void((e,a)=>{const{activePlaneID:n}=e.space;n&&a.publish({topic:t.PLURID_PUBSUB_TOPIC.REFRESH_PLANE,data:{id:n}})})(n,r);if(o.altKey&&"KeyE"===o.code)return u(),void((e,a)=>{const{activePlaneID:n,isolatePlane:r}=e.space;r?a.publish({topic:t.PLURID_PUBSUB_TOPIC.ISOLATE_PLANE,data:{id:""}}):n&&a.publish({topic:t.PLURID_PUBSUB_TOPIC.ISOLATE_PLANE,data:{id:n}})})(n,r);if(o.altKey&&o.shiftKey&&"KeyT"===o.code)return u(),void(e=>{e.publish({topic:t.PLURID_PUBSUB_TOPIC.OPEN_CLOSED_PLANE})})(r);if(o.altKey&&"KeyW"===o.code)return u(),void((e,a)=>{const{activePlaneID:n}=e.space;n&&a.publish({topic:t.PLURID_PUBSUB_TOPIC.CLOSE_PLANE,data:{id:n}})})(n,r);if(o.altKey&&"KeyA"===o.code)return u(),void bt(e,n);if(o.altKey&&"KeyD"===o.code)return u(),void Rt(e,n);if(o.altKey&&"Tab"===o.code)return u(),void(o.shiftKey?bt(e,n):Rt(e,n));if(o.altKey&&o.code.startsWith("Digit")){u();const t=parseInt(o.code.replace("Digit",""))-1;It(e,n,t)}else;},wt=()=>We(void 0,void 0,void 0,(function*(){return yield Promise.resolve().then((function(){return function(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(a){if("default"!==a){var n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:function(){return e[a]}})}})),t.default=e,Object.freeze(t)}(U.default)}))}));var Ot={configuration:Ke.configuration.selectors,general:Ke.general.selectors,shortcuts:Ke.shortcuts.selectors,space:Ke.space.selectors,themes:Ke.themes.selectors,ui:Ke.ui.selectors};const yt=c.createGlobalStyle`
2
2
  *,
3
3
  *:after,
4
4
  *:before {
@@ -534,7 +534,7 @@
534
534
  ::after {
535
535
  content: "${({devisible:e,suffix:t})=>e?"":t||"'"}";
536
536
  }
537
- `,Xn=o.connect((e=>({stateTree:Ot.space.getTree(e),stateLastClosedPlane:Ot.space.getLastClosedPlane(e),stateGeneralTheme:Ot.themes.getGeneralTheme(e),stateConfiguration:Ot.configuration.getConfiguration(e),stateViewSize:Ot.space.getViewSize(e)})),(e=>({dispatch:e,dispatchSetTree:t=>e(qe.space.setTree(t)),dispatchSetSpaceField:t=>e(qe.space.setSpaceField(t)),dispatchUpdateSpaceLinkCoordinates:t=>e(qe.space.updateSpaceLinkCoordinates(t))})),null,{context:Ge})((e=>{const n=r.useContext(He);if(!n)return x.default.createElement(x.default.Fragment,null,e.children);const{hostname:o,planesRegistrar:i,defaultPubSub:s}=n,c=ie(i);if(!c)return x.default.createElement(x.default.Fragment,null,e.children);const{children:d,route:f,devisible:p,suffix:m,atClick:g,style:h,className:T,preview:E,previewComponent:v,previewFadeIn:S,previewFadeOut:P,previewOffsetX:b,previewOffsetY:R,stateTree:I,stateLastClosedPlane:C,stateGeneralTheme:w,stateConfiguration:O,stateViewSize:y,dispatch:_,dispatchSetTree:L,dispatchSetSpaceField:A,dispatchUpdateSpaceLinkCoordinates:U}=e,D=O.elements.plane.controls.show,N=S||t.PLURID_DEFAULT_CONFIGURATION_LINK_PREVIEW_FADE_IN,M=P||t.PLURID_DEFAULT_CONFIGURATION_LINK_PREVIEW_FADE_OUT,k=me(f),F=pe(k,O.network.protocol,o||O.network.host),B=null!=m?m:t.PLURID_DEFAULT_CONFIGURATION_LINK_SUFFIX,Y=null!=p&&p,$=r.useRef(null),X=r.useRef(null),V=r.useRef(null),z=r.useRef(),[K,Z]=r.useState(!1),[j,G]=r.useState(!1),[W,H]=r.useState(!1),[q,J]=r.useState(""),[Q,ee]=r.useState(le($.current)),[te,ae]=r.useState(kn),ne=()=>{const e=$.current;if(!e)return Object.assign({},kn);let t=0,a=0,n=!1,r=e,o=!0,i=0,l=0;for(;o;)if("static"!==window.getComputedStyle(r).position||n||(t+=r.offsetTop,a+=r.offsetLeft,n=!0),"relative"===window.getComputedStyle(r).position&&(i+=t,l+=a,t=0,a=0,n=!1),r.scrollLeft&&(l+=-r.scrollLeft),r.scrollTop&&(i+=-r.scrollTop),r.parentElement){"PluridPlane"===r.parentElement.dataset.pluridEntity&&(o=!1),r=r.parentElement}else o=!1;const s=D?56:0;return{x:l+e.offsetWidth,y:i+s}},re=u.useDebouncedCallback((()=>{(()=>{const e=ne();U({planeID:q,linkCoordinates:e});const t=a.space.tree.logic.updatePlaneLocation(l.objects.clone(I),Q,q,l.objects.clone(e));L(t)})()}),t.PLURID_DEFAULT_RESIZE_DEBOUNCE_TIME),oe=e=>{const{updatedTree:t,updatedPlane:n}=a.space.tree.logic.togglePlaneFromTree(l.objects.clone(I),q,e);return L(t),H((e=>!e)),G(!1),{updatedPlane:n}},se=(e,t)=>{t&&(W||(A({field:"isolatePlane",value:""}),Et(_,t,e)))},ce=e=>{if(e.altKey&&W&&q){const t=a.space.tree.logic.getTreePlaneByID(I,q);Et(_,t,e)}else W||q?(e=>{const{updatedPlane:t}=oe();se(e,t)})(e):(e=>{if(!Q||!F)return;const{route:t}=F,n=ne(),{pluridPlaneID:r,updatedTree:i,updatedTreePlane:s}=a.space.tree.logic.updateTreeWithNewPlane(t,Q,n,l.objects.clone(I),c.getAll(),O,o);r&&(se(e,s),L(i),H(!0),J(r))})(e)},ue=()=>{$.current&&$.current.blur()},de=r.useCallback((e=>{e.preventDefault(),void 0!==g&&g(e),ce(e),ue()}),[Q,JSON.stringify(I),$.current]);return r.useEffect((()=>{const e=le($.current);ee(e);const t=ne();ae(t);((e,t)=>{if(e&&e.children)for(const a of e.children)a.linkCoordinates&&(a.linkCoordinates.x!==t.x&&a.linkCoordinates.y!==t.y||(H(!0),J(a.planeID)))})(a.space.tree.logic.getTreePlaneByID(I,e),t)}),[]),r.useEffect((()=>{W&&re()}),[W,JSON.stringify(y),JSON.stringify(I)]),r.useEffect((()=>{if(E)return K&&V.current&&(X.current=setTimeout((()=>{G(!0)}),N),clearTimeout(V.current)),K||(V.current=setTimeout((()=>{G(!1),X.current&&clearTimeout(X.current)}),M)),()=>{V.current&&clearTimeout(V.current),X.current&&clearTimeout(X.current)}}),[E,K]),r.useEffect((()=>{}),[]),r.useEffect((()=>{const e=s.subscribe({topic:t.PLURID_PUBSUB_TOPIC.OPEN_CLOSED_PLANE,callback:()=>{C===q&&(oe(),A({field:"lastClosedPlane",value:""}))}});return()=>{s.unsubscribe(e)}}),[W,q,JSON.stringify(I)]),r.useEffect((()=>{const e=s.subscribe({topic:t.PLURID_PUBSUB_TOPIC.CLOSE_PLANE,callback:e=>{const{id:t}=e;if(t===q&&W){oe(!1),A({field:"lastClosedPlane",value:t})}}});return()=>{s.unsubscribe(e)}}),[W,q,JSON.stringify(I)]),r.useEffect((()=>{const e=a.space.tree.logic.getTreePlaneByID(I,q);return z.current=e,()=>{setTimeout((()=>{var e;W&&null===$.current&&!1===(null===(e=z.current)||void 0===e?void 0:e.show)&&(()=>{const e=a.space.tree.logic.removePlaneFromTree(l.objects.clone(I),q);L(e),H((e=>!e)),G(!1)})()}),10)}}),[W,j,q,Q,JSON.stringify(I)]),x.default.createElement($n,{ref:$,onClick:e=>de(e),onMouseEnter:()=>Z(!0),onMouseLeave:()=>Z(!1),onKeyUp:e=>(e=>{if("Enter"===e.code)return de(e),void ue()})(e),theme:w,suffix:B,devisible:Y,style:Object.assign({},h),className:T,"data-plurid-entity":t.PLURID_ENTITY_LINK,tabIndex:0},d,j&&!W&&x.default.createElement(Fn,{elementID:`preview-${Q}`,rootID:Q},x.default.createElement(Yn,{planeRoute:k,linkCoordinates:te,previewComponent:v,previewOffsetX:b,previewOffsetY:R})))})),Vn=c.css`
537
+ `,Xn=o.connect((e=>({stateTree:Ot.space.getTree(e),stateLastClosedPlane:Ot.space.getLastClosedPlane(e),stateGeneralTheme:Ot.themes.getGeneralTheme(e),stateConfiguration:Ot.configuration.getConfiguration(e),stateViewSize:Ot.space.getViewSize(e)})),(e=>({dispatch:e,dispatchSetTree:t=>e(qe.space.setTree(t)),dispatchSetSpaceField:t=>e(qe.space.setSpaceField(t)),dispatchUpdateSpaceLinkCoordinates:t=>e(qe.space.updateSpaceLinkCoordinates(t)),dispatchRemovePlane:t=>e(qe.space.removePlane(t))})),null,{context:Ge})((e=>{const n=r.useContext(He);if(!n)return x.default.createElement(x.default.Fragment,null,e.children);const{hostname:o,planesRegistrar:i,defaultPubSub:s}=n,c=ie(i);if(!c)return x.default.createElement(x.default.Fragment,null,e.children);const{children:d,route:f,devisible:p,suffix:m,atClick:g,style:h,className:T,preview:E,previewComponent:v,previewFadeIn:S,previewFadeOut:P,previewOffsetX:b,previewOffsetY:R,stateTree:I,stateLastClosedPlane:C,stateGeneralTheme:w,stateConfiguration:O,stateViewSize:y,dispatch:_,dispatchSetTree:L,dispatchSetSpaceField:A,dispatchUpdateSpaceLinkCoordinates:U,dispatchRemovePlane:D}=e,N=O.elements.plane.controls.show,M=S||t.PLURID_DEFAULT_CONFIGURATION_LINK_PREVIEW_FADE_IN,k=P||t.PLURID_DEFAULT_CONFIGURATION_LINK_PREVIEW_FADE_OUT,F=me(f),B=pe(F,O.network.protocol,o||O.network.host),Y=null!=m?m:t.PLURID_DEFAULT_CONFIGURATION_LINK_SUFFIX,$=null!=p&&p,X=r.useRef(null),V=r.useRef(null),z=r.useRef(null),[K,Z]=r.useState(!1),[j,G]=r.useState(!1),[W,H]=r.useState(!1),[q,J]=r.useState(""),[Q,ee]=r.useState(le(X.current)),[te,ae]=r.useState(kn),ne=()=>{const e=X.current;if(!e)return Object.assign({},kn);let t=0,a=0,n=!1,r=e,o=!0,i=0,l=0;for(;o;)if("static"!==window.getComputedStyle(r).position||n||(t+=r.offsetTop,a+=r.offsetLeft,n=!0),"relative"===window.getComputedStyle(r).position&&(i+=t,l+=a,t=0,a=0,n=!1),r.scrollLeft&&(l+=-r.scrollLeft),r.scrollTop&&(i+=-r.scrollTop),r.parentElement){"PluridPlane"===r.parentElement.dataset.pluridEntity&&(o=!1),r=r.parentElement}else o=!1;const s=N?56:0;return{x:l+e.offsetWidth,y:i+s}},re=u.useDebouncedCallback((()=>{(()=>{const e=ne();U({planeID:q,linkCoordinates:e});const t=a.space.tree.logic.updatePlaneLocation(l.objects.clone(I),Q,q,l.objects.clone(e));L(t)})()}),t.PLURID_DEFAULT_RESIZE_DEBOUNCE_TIME),oe=e=>{const{updatedTree:t,updatedPlane:n}=a.space.tree.logic.togglePlaneFromTree(l.objects.clone(I),q,e);return L(t),H((e=>!e)),G(!1),{updatedPlane:n}},se=(e,t)=>{t&&(W||(A({field:"isolatePlane",value:""}),Et(_,t,e)))},ce=e=>{if(e.altKey&&W&&q){const t=a.space.tree.logic.getTreePlaneByID(I,q);Et(_,t,e)}else W||q?(e=>{const{updatedPlane:t}=oe();se(e,t)})(e):(e=>{if(!Q||!B)return;const{route:t}=B,n=ne(),{pluridPlaneID:r,updatedTree:i,updatedTreePlane:s}=a.space.tree.logic.updateTreeWithNewPlane(t,Q,n,l.objects.clone(I),c.getAll(),O,o);r&&(se(e,s),L(i),H(!0),J(r))})(e)},ue=()=>{X.current&&X.current.blur()},de=r.useCallback((e=>{e.preventDefault(),void 0!==g&&g(e),ce(e),ue()}),[Q,JSON.stringify(I),X.current]);return r.useEffect((()=>{const e=le(X.current);ee(e);const t=ne();ae(t);((e,t)=>{if(e&&e.children)for(const a of e.children)if(a.linkCoordinates&&(a.linkCoordinates.x===t.x||a.linkCoordinates.y===t.y)){if(q===a.planeID)continue;H(!0),J(a.planeID)}})(a.space.tree.logic.getTreePlaneByID(I,e),t)}),[]),r.useEffect((()=>{W&&re()}),[W,JSON.stringify(y),JSON.stringify(I)]),r.useEffect((()=>{if(E)return K&&z.current&&(V.current=setTimeout((()=>{G(!0)}),M),clearTimeout(z.current)),K||(z.current=setTimeout((()=>{G(!1),V.current&&clearTimeout(V.current)}),k)),()=>{z.current&&clearTimeout(z.current),V.current&&clearTimeout(V.current)}}),[E,K]),r.useEffect((()=>{const e=s.subscribe({topic:t.PLURID_PUBSUB_TOPIC.OPEN_CLOSED_PLANE,callback:()=>{C===q&&(oe(),A({field:"lastClosedPlane",value:""}))}});return()=>{s.unsubscribe(e)}}),[W,q,JSON.stringify(I)]),r.useEffect((()=>{const e=s.subscribe({topic:t.PLURID_PUBSUB_TOPIC.CLOSE_PLANE,callback:e=>{const{id:t}=e;if(t===q&&W){oe(!1),A({field:"lastClosedPlane",value:t})}}});return()=>{s.unsubscribe(e)}}),[W,q,JSON.stringify(I)]),r.useEffect((()=>()=>{setTimeout((()=>{q&&W&&null===X.current&&document.getElementById(q)&&(D(q),H(!1),G(!1))}),10)}),[W,j,q,Q,JSON.stringify(I)]),x.default.createElement($n,{ref:X,onClick:e=>de(e),onMouseEnter:()=>Z(!0),onMouseLeave:()=>Z(!1),onKeyUp:e=>(e=>{if("Enter"===e.code)return de(e),void ue()})(e),theme:w,suffix:Y,devisible:$,style:Object.assign({},h),className:T,"data-plurid-entity":t.PLURID_ENTITY_LINK,tabIndex:0},d,j&&!W&&x.default.createElement(Fn,{elementID:`preview-${Q}`,rootID:Q},x.default.createElement(Yn,{planeRoute:F,linkCoordinates:te,previewComponent:v,previewOffsetX:b,previewOffsetY:R})))})),Vn=c.css`
538
538
  color: ${({theme:e})=>e.colorTertiary};
539
539
 
540
540
  @media (hover:hover) {