@plurid/plurid-react 0.0.0-22 → 0.0.0-23

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.
@@ -467,7 +467,7 @@
467
467
  transform-style: preserve-3d;
468
468
  width: 50px;
469
469
  height: 50px;
470
- `,{matrixArrayToCSSMatrix:bo,rotateMatrix:Co,multiplyArrayOfMatrices:Io,scaleMatrix:vo,translateMatrix:Po}=a.interaction.matrix,{degToRad:Lo}=a.interaction.quaternion,yo=o.connect((e=>({stateLanguage:xn.configuration.getConfiguration(e).global.language,spaceRotationX:xn.space.getRotationX(e),spaceRotationY:xn.space.getRotationY(e),stateAnimatedTransform:xn.space.getAnimatedTransform(e),stateTransformTime:xn.space.getTransformTime(e)})),(e=>({})),null,{context:yn})((e=>{const{mouseOver:n,stateLanguage:o,spaceRotationX:i,spaceRotationY:l,stateAnimatedTransform:s,stateTransformTime:c}=e,[u,d]=r.useState(""),[f,p]=r.useState("");r.useEffect((()=>{u||p("")}),[i,l]);const m=(()=>{const e=32,t=23,a=0,n=0,r=0,o=0,s=Co(Lo(-i),Lo(-l)),c=Po(e,t,a),u=vo(1),d=Io([c,Io([Po(n,r,o),s,Po(-n,-r,-o)]),u]);return bo(d)})();return x.default.createElement(So,null,x.default.createElement(Ro,null,x.default.createElement(Ao,{suppressHydrationWarning:!0,style:{transform:m,transition:n||s?`transform ${c}ms ease-in-out`:""},onMouseLeave:()=>{d("")}},x.default.createElement(Oo,{face:"front",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeFront),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"back",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeBack),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"left",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeLeft),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"right",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeRight),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"top",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeTop),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"base",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeBase),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}))))})),Uo=o.connect((e=>({stateConfiguration:xn.configuration.getConfiguration(e),stateInteractionTheme:xn.themes.getInteractionTheme(e),stateTransformTime:xn.space.getTransformTime(e)})),(e=>({dispatchRotateXWith:t=>e(Nn.space.rotateXWith(t)),dispatchRotateYWith:t=>e(Nn.space.rotateYWith(t)),dispatchSetAnimatedTransform:t=>e(Nn.space.setAnimatedTransform(t)),dispatchSpaceResetTransform:()=>e(Nn.space.spaceResetTransform())})),null,{context:yn})((e=>{const{stateConfiguration:a,stateInteractionTheme:n,stateTransformTime:o,dispatchRotateXWith:i,dispatchRotateYWith:l,dispatchSetAnimatedTransform:s,dispatchSpaceResetTransform:c}=e,{elements:u,space:d}=a,{viewcube:p}=u,{buttons:m,conceal:g}=p,{fadeInTime:T}=d,h=p.show,[E,_]=r.useState(!1),[O,S]=r.useState(!1),R=(e,t)=>{switch(s(!0),e){case"rotateX":i(t);break;case"rotateY":l(t)}setTimeout((()=>{s(!1)}),o)};return r.useEffect((()=>{S(!0)}),[]),h?x.default.createElement(ao,{onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1),onMouseMove:()=>E?null:_(!0),conceal:g,mouseOver:E,isMounted:O,fadeInTime:T,"data-plurid-entity":t.PLURID_ENTITY_VIEWCUBE},x.default.createElement(yo,{mouseOver:E}),E&&m&&x.default.createElement(x.default.Fragment,null,x.default.createElement(no,{style:{gridArea:"PVRotateUp"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateX",-90.1)},"▲")),x.default.createElement(no,{theme:n,style:{gridArea:"PVRotateDown"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateX",90.1)},"▼")),x.default.createElement(no,{theme:n,style:{gridArea:"PVRotateLeft"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateY",90.1)},"◀")),x.default.createElement(no,{theme:n,style:{gridArea:"PVRotateRight"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateY",-90.1)},"▶")),x.default.createElement(oo,{onClick:e=>{e.ctrlKey||e.metaKey||(s(!0),c(),setTimeout((()=>{s(!1)}),o))}},x.default.createElement(f.PluridIconGlobal,null)))):x.default.createElement(x.default.Fragment,null)})),wo=o.connect((e=>({})),(e=>({})),null,{context:yn})((e=>x.default.createElement(x.default.Fragment,null,x.default.createElement(sr,null),x.default.createElement(dr,null),x.default.createElement(to,null),x.default.createElement(Uo,null)))),{getRegisteredPlanes:No}=a.planes,Do=o.connect((e=>({stateConfiguration:xn.configuration.getConfiguration(e),stateTransform:xn.space.getTransform(e),stateTree:xn.space.getTree(e),stateSpaceLoading:xn.space.getLoading(e),stateSpaceView:xn.space.getView(e)})),(e=>({dispatch:e,dispatchSetConfiguration:t=>e(Nn.configuration.setConfiguration(t)),dispatchSetConfigurationMicro:()=>e(Nn.configuration.setConfigurationMicro()),dispatchSpaceSetViewSize:t=>e(Nn.space.setViewSize(t)),dispatchSetSpaceLoading:t=>e(Nn.space.setSpaceLoading(t)),dispatchSetAnimatedTransform:t=>e(Nn.space.setAnimatedTransform(t)),dispatchSetTransformTime:t=>e(Nn.space.setTransformTime(t)),dispatchSetSpaceLocation:t=>e(Nn.space.setSpaceLocation(t)),dispatchSetInitialTree:t=>e(Nn.space.setInitialTree(t)),dispatchSetTree:t=>e(Nn.space.setTree(t)),dispatchSetGeneralTheme:t=>e(Nn.themes.setGeneralTheme(t)),dispatchSetInteractionTheme:t=>e(Nn.themes.setInteractionTheme(t)),dispatchRotateX:t=>e(Nn.space.rotateX(t)),dispatchRotateXWith:t=>e(Nn.space.rotateXWith(t)),dispatchRotateY:t=>e(Nn.space.rotateY(t)),dispatchRotateYWith:t=>e(Nn.space.rotateYWith(t)),dispatchTranslateXWith:t=>e(Nn.space.translateXWith(t)),dispatchTranslateYWith:t=>e(Nn.space.translateYWith(t)),dispatchScaleUpWith:t=>e(Nn.space.scaleUpWith(t)),dispatchScaleDownWith:t=>e(Nn.space.scaleDownWith(t)),dispatchSpaceSetView:t=>e(Nn.space.spaceSetView(t))})),null,{context:yn})((e=>{const{planesRegistrar:n,customPlane:o,planeContext:i,planeContextValue:l,pubsub:c,planeNotFound:u,planeRenderError:d,matchedRoute:f,hostname:p,stateConfiguration:m,stateTransform:g,stateSpaceView:T,stateTree:h,dispatch:E,dispatchSetConfiguration:_,dispatchSetGeneralTheme:O,dispatchSetInteractionTheme:S,dispatchSetSpaceLocation:R,dispatchSetAnimatedTransform:A,dispatchSetTransformTime:b,dispatchSetTree:C,dispatchRotateXWith:I,dispatchRotateX:v,dispatchRotateYWith:P,dispatchRotateY:L,dispatchTranslateXWith:y,dispatchTranslateYWith:U,dispatchScaleUpWith:w,dispatchScaleDownWith:N,dispatchSpaceSetViewSize:D,dispatchSpaceSetView:M}=e,F=r.useRef(null),[k,G]=r.useState(c?[c]:[]),Y=r.useCallback((e=>{const{transformLocks:a}=m.space;((e,a,n,r)=>{if(a.defaultPrevented)return;if(s.dom.verifyPathInputElement(a.path))return;const o=!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey);if("KeyF"===a.code&&o)return e(Nn.configuration.toggleConfigurationSpaceFirstPerson());if(n){if("KeyW"===a.code&&o&&r.translationZ)return e(Nn.space.viewCameraMoveForward());if("KeyS"===a.code&&o&&r.translationZ)return e(Nn.space.viewCameraMoveBackward());if("KeyA"===a.code&&o&&r.translationX)return e(Nn.space.viewCameraMoveLeft());if("KeyA"===a.code&&a.shiftKey&&r.rotationY)return e(Nn.space.viewCameraTurnLeft());if("KeyD"===a.code&&o&&r.translationX)return e(Nn.space.viewCameraMoveRight());if("KeyD"===a.code&&a.shiftKey&&r.rotationY)return e(Nn.space.viewCameraTurnRight());if("KeyQ"===a.code&&o&&r.rotationX)return e(Nn.space.viewCameraTurnUp());if("KeyZ"===a.code&&o&&r.rotationX)return e(Nn.space.viewCameraTurnDown());if("KeyE"===a.code&&o&&r.translationY)return e(Nn.space.viewCameraMoveUp());if("KeyC"===a.code&&o&&r.translationY)return e(Nn.space.viewCameraMoveDown())}if("KeyR"===a.code&&o)return e(Nn.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.ROTATION));if("KeyT"===a.code&&o)return e(Nn.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.TRANSLATION));if("KeyS"===a.code&&o&&!n)return e(Nn.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.SCALE));if("ArrowRight"===a.key){if(a.shiftKey&&r.rotationY)return e(Nn.space.rotateLeft());if(a.altKey&&r.translationX)return e(Nn.space.translateRight())}if("ArrowLeft"===a.key){if(a.shiftKey&&r.rotationY)return e(Nn.space.rotateRight());if(a.altKey&&r.translationX)return e(Nn.space.translateLeft())}if("ArrowUp"===a.key){if(a.shiftKey&&a.altKey&&r.translationZ)return e(Nn.space.translateIn());if(a.shiftKey&&!a.altKey&&r.rotationX)return e(Nn.space.rotateUp());if(a.altKey&&!a.shiftKey&&r.translationY)return e(Nn.space.translateUp());if(a.metaKey||a.ctrlKey&&r.scale)return e(Nn.space.scaleUp())}if("ArrowDown"===a.key){if(a.shiftKey&&a.altKey&&r.translationZ)return e(Nn.space.translateOut());if(a.shiftKey&&!a.altKey&&r.rotationX)return e(Nn.space.rotateDown());if(a.altKey&&!a.shiftKey&&r.translationY)return e(Nn.space.translateDown());if(a.metaKey||a.ctrlKey&&r.scale)e(Nn.space.scaleDown())}})(E,e,m.space.firstPerson,a)}),[m.space.firstPerson,m.space.transformLocks,E]),B=r.useCallback((e=>{const{transformMode:a,transformLocks:n}=m.space,r={rotation:a===t.TRANSFORM_MODES.ROTATION,translation:a===t.TRANSFORM_MODES.TRANSLATION,scale:a===t.TRANSFORM_MODES.SCALE};((e,t,a,n)=>{(t.shiftKey||t.metaKey||t.altKey||t.ctrlKey||a.rotation||a.translation||a.scale)&&t.preventDefault();const r={deltaX:t.deltaX,deltaY:t.deltaY},o=Dn.getWheelDirection(r);a.rotation&&("left"===o&&n.rotationY&&e(Nn.space.rotateLeft()),"right"===o&&n.rotationY&&e(Nn.space.rotateRight()),"up"===o&&n.rotationX&&e(Nn.space.rotateUp()),"down"===o&&n.rotationX&&e(Nn.space.rotateDown())),t.shiftKey&&!t.altKey&&("up"===o&&n.rotationX&&e(Nn.space.rotateUp()),"down"===o&&n.rotationX&&e(Nn.space.rotateDown()),"left"===o&&n.rotationY&&e(Nn.space.rotateLeft()),"right"===o&&n.rotationY&&e(Nn.space.rotateRight())),a.translation&&("up"===o&&n.translationY&&e(Nn.space.translateDown()),"down"===o&&n.translationY&&e(Nn.space.translateUp()),"left"===o&&n.translationX&&e(Nn.space.translateRight()),"right"===o&&n.translationX&&e(Nn.space.translateLeft())),t.altKey&&t.shiftKey&&("up"===o&&n.translationZ&&e(Nn.space.translateIn()),"down"===o&&n.translationZ&&e(Nn.space.translateOut())),t.altKey&&!t.shiftKey&&("up"===o&&n.translationY&&e(Nn.space.translateDown()),"down"===o&&n.translationY&&e(Nn.space.translateUp()),"left"===o&&n.translationX&&e(Nn.space.translateRight()),"right"===o&&n.translationX&&e(Nn.space.translateLeft())),a.scale&&("down"===o&&n.scale&&e(Nn.space.scaleUp()),"up"===o&&n.scale&&e(Nn.space.scaleDown())),(t.metaKey||t.ctrlKey)&&("down"===o&&n.scale&&e(Nn.space.scaleUp()),"up"===o&&n.scale&&e(Nn.space.scaleDown()))})(E,e,r,n)}),[E,m.space.transformMode,m.space.transformLocks]),V=(e,t=m)=>{const r=No(n),o=new a.space.tree.Tree({planes:r,configuration:t,view:e},p).compute();for(const e of h)for(const[t,a]of o.entries())e.route===a.route&&e.children&&(o[t].children=e.children);C(o)},X=r.useCallback((()=>{V(T)}),[T,m]),$=e=>{const n=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.CONFIGURATION,callback:e=>{if(e.internal)return;const t=a.general.configuration.merge(e,m);"object"==typeof t.global.theme?("string"==typeof t.global.theme.general?O(j.default[t.global.theme.general]):O(t.global.theme.general),"string"==typeof t.global.theme.interaction?S(j.default[t.global.theme.interaction]):S(t.global.theme.interaction)):"string"==typeof t.global.theme&&(O(j.default[t.global.theme]),S(j.default[t.global.theme])),_(t)}}),r=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSFORM,callback:e=>{const{value:t,internal:a}=e;a||R(t)}}),o=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ANIMATED_TRANSFORM,callback:e=>{const{value:t}=e;A(t.active),t.time?b(t.time):b(450)}}),i=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_WITH,callback:e=>{const{value:t}=e;I(t)}}),l=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_TO,callback:e=>{const{value:t}=e;v(t)}}),s=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_WITH,callback:e=>{const{value:t}=e;P(t)}}),c=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_TO,callback:e=>{const{value:t}=e;L(t)}}),u=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_X_WITH,callback:e=>{const{value:t}=e;y(t)}}),d=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_Y_WITH,callback:e=>{const{value:t}=e;U(t)}}),f=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.VIEW_ADD_PLANE,callback:e=>{const{plane:t}=e,a=[...T,t];M(a),V(a)}}),p=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.VIEW_SET_PLANES,callback:e=>{const{view:t}=e;M([...t]),V(t)}}),g=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.VIEW_REMOVE_PLANE,callback:e=>{const{plane:t}=e,a=T.filter((e=>"string"!=typeof e||e===t));M(a),V(a)}});return()=>{e.unsubscribe(n,t.PLURID_PUBSUB_TOPIC.CONFIGURATION),e.unsubscribe(r,t.PLURID_PUBSUB_TOPIC.SPACE_TRANSFORM),e.unsubscribe(o,t.PLURID_PUBSUB_TOPIC.SPACE_ANIMATED_TRANSFORM),e.unsubscribe(i,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_WITH),e.unsubscribe(l,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_TO),e.unsubscribe(s,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_WITH),e.unsubscribe(c,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_TO),e.unsubscribe(u,t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_X_WITH),e.unsubscribe(d,t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_Y_WITH),e.unsubscribe(f,t.PLURID_PUBSUB_TOPIC.VIEW_ADD_PLANE),e.unsubscribe(p,t.PLURID_PUBSUB_TOPIC.VIEW_SET_PLANES),e.unsubscribe(g,t.PLURID_PUBSUB_TOPIC.VIEW_REMOVE_PLANE)}},W=e=>{const a={value:Object.assign({},g),internal:!0};e.publish({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSFORM,data:a}),e.publish({topic:t.PLURID_PUBSUB_TOPIC.CONFIGURATION,data:Object.assign(Object.assign({},m),{internal:!0})})},z=e=>{const{transformMode:a}=m.space;if(a===t.TRANSFORM_MODES.ALL)return;const{velocity:n,distance:r,direction:o}=e,i=a===t.TRANSFORM_MODES.ROTATION,l=a===t.TRANSFORM_MODES.TRANSLATION,s=a===t.TRANSFORM_MODES.SCALE;switch(A(!0),o){case 2:i&&P(60*n),l&&y(-1*r);break;case 4:i&&P(60*n),l&&y(r);break;case 8:i&&I(60*n),l&&U(-1*r),s&&w(n);break;case 16:i&&I(60*n),l&&U(r),s&&N(n)}setTimeout((()=>{A(!1)}),450)},H=e=>{const{transformMode:a}=m.space;if(a===t.TRANSFORM_MODES.ALL)return;const{velocity:n,distance:r,direction:o}=e,i=a===t.TRANSFORM_MODES.ROTATION,l=a===t.TRANSFORM_MODES.TRANSLATION,s=a===t.TRANSFORM_MODES.SCALE,c=20*n,u=r/5,d=n/4;switch(o){case 2:i&&P(c),l&&y(-1*u);break;case 4:i&&P(c),l&&y(u);break;case 8:i&&I(c),l&&U(-1*u),s&&w(d);break;case 16:i&&I(c),l&&U(u),s&&N(d)}};r.useEffect((()=>(F.current&&(F.current.addEventListener("keydown",Y,{passive:!1}),F.current.addEventListener("wheel",B,{passive:!1})),()=>{F.current&&(F.current.removeEventListener("keydown",Y),F.current.removeEventListener("wheel",B))})),[F.current,m.space.transformMode,m.space.firstPerson]),r.useEffect((()=>{const e=s.meta.debounce((()=>{if(F&&F.current){const e=F.current.offsetWidth,t=F.current.offsetHeight;D({width:e,height:t})}}),150);return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),r.useEffect((()=>(window.addEventListener("resize",X),()=>{window.removeEventListener("resize",X)})),[T,m]),r.useEffect((()=>{if("undefined"==typeof window)return;let e;return Un(void 0,void 0,void 0,(function*(){const a=(yield Mn()).default,{transformTouch:n}=m.space;delete a.defaults.cssProps.userSelect,delete a.defaults.cssProps.userDrag,delete a.defaults.cssProps.tapHighlightColor,delete a.defaults.cssProps.touchSelect,F.current&&(e=new a(F.current),e.get("pan").set({direction:a.DIRECTION_ALL}),e.get("swipe").set({direction:a.DIRECTION_ALL}),n===t.TRANSFORM_TOUCHES.PAN?e.on("pan",H):e.on("swipe",z))})),()=>{if(!e)return;const{transformTouch:a}=m.space;a===t.TRANSFORM_TOUCHES.PAN?e.off("pan",H):e.off("swipe",z)}}),[F.current,m.space.transformTouch,m.space.transformMode]),r.useEffect((()=>{const e=e=>{navigator.getGamepads()[e.gamepad.index]},t=e=>{navigator.getGamepads()[e.gamepad.index]};return window.addEventListener("gamepadconnected",e),window.addEventListener("gamepaddisconnected",t),()=>{window.removeEventListener("gamepadconnected",e),window.removeEventListener("gamepaddisconnected",t)}}),[]),r.useEffect((()=>{const e=[];for(const t of k){const a=$(t);e.push(a)}return()=>{for(const t of e)t()}}),[k.length]),r.useEffect((()=>{for(const e of k)W(e)}),[k.length,m,g]),r.useEffect((()=>{X()}),[]);const Z={planesRegistrar:n,planeContext:i,planeContextValue:l,customPlane:o,planeNotFound:u,planeRenderError:d,matchedRoute:f,registerPubSub:e=>{const t=[...k,e];G(t)}},K=0===T.length?x.default.createElement(x.default.Fragment,null):x.default.createElement(wo,null);return x.default.createElement(jn,{ref:F,tabIndex:0,transformMode:m.space.transformMode,"data-plurid-entity":t.PLURID_ENTITY_VIEW},x.default.createElement(Fn,null),x.default.createElement(wn.Provider,{value:Z},K))})),{registerPlanes:Mo}=a.planes;class xo extends r.Component{constructor(e,t){super(e),this.storeID=e.id||"default",this.context=t;const a=this.computeStore();this.store=Ln(a),this.subscribeStore()}componentDidUpdate(){const e=this.computeStore();this.store.dispatch({type:"SET_STATE",payload:e})}componentWillUnmount(){this.storeUnubscriber&&this.storeUnubscriber()}render(){return x.default.createElement(o.Provider,{store:this.store,context:yn},x.default.createElement(Do,Object.assign({},this.props)))}computeStore(){const{view:e,planes:t,configuration:n,precomputedState:r,planesRegistrar:o,id:i,useLocalStorage:l}=this.props;Mo(t,o);const s=this.store?this.store.getState():void 0,c=a.state.local.load(this.storeID,l),u=i&&this.context&&this.context.states[i]?this.context.states[i]:void 0;return a.state.compute(e,n,o,s,c,r,u)}subscribeStore(){this.store&&"undefined"!=typeof localStorage&&this.props.useLocalStorage&&(this.storeUnubscriber=this.store.subscribe((()=>{const e=this.store.getState(),t=JSON.stringify(e);localStorage.setItem("pluridState-"+this.storeID,t)})))}}xo.contextType=Y;const Fo=k.default.div`
470
+ `,{matrixArrayToCSSMatrix:bo,rotateMatrix:Co,multiplyArrayOfMatrices:Io,scaleMatrix:vo,translateMatrix:Po}=a.interaction.matrix,{degToRad:Lo}=a.interaction.quaternion,yo=o.connect((e=>({stateLanguage:xn.configuration.getConfiguration(e).global.language,spaceRotationX:xn.space.getRotationX(e),spaceRotationY:xn.space.getRotationY(e),stateAnimatedTransform:xn.space.getAnimatedTransform(e),stateTransformTime:xn.space.getTransformTime(e)})),(e=>({})),null,{context:yn})((e=>{const{mouseOver:n,stateLanguage:o,spaceRotationX:i,spaceRotationY:l,stateAnimatedTransform:s,stateTransformTime:c}=e,[u,d]=r.useState(""),[f,p]=r.useState("");r.useEffect((()=>{u||p("")}),[i,l]);const m=(()=>{const e=32,t=23,a=0,n=0,r=0,o=0,s=Co(Lo(-i),Lo(-l)),c=Po(e,t,a),u=vo(1),d=Io([c,Io([Po(n,r,o),s,Po(-n,-r,-o)]),u]);return bo(d)})();return x.default.createElement(So,null,x.default.createElement(Ro,null,x.default.createElement(Ao,{suppressHydrationWarning:!0,style:{transform:m,transition:n||s?`transform ${c}ms ease-in-out`:""},onMouseLeave:()=>{d("")}},x.default.createElement(Oo,{face:"front",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeFront),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"back",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeBack),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"left",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeLeft),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"right",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeRight),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"top",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeTop),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}),x.default.createElement(Oo,{face:"base",faceText:a.internatiolate(o,t.internationalization.fields.viewcubeBase),mouseOver:n,hoveredZone:u,setHoveredZone:d,activeZone:f,setActiveZone:p}))))})),Uo=o.connect((e=>({stateConfiguration:xn.configuration.getConfiguration(e),stateInteractionTheme:xn.themes.getInteractionTheme(e),stateTransformTime:xn.space.getTransformTime(e)})),(e=>({dispatchRotateXWith:t=>e(Nn.space.rotateXWith(t)),dispatchRotateYWith:t=>e(Nn.space.rotateYWith(t)),dispatchSetAnimatedTransform:t=>e(Nn.space.setAnimatedTransform(t)),dispatchSpaceResetTransform:()=>e(Nn.space.spaceResetTransform())})),null,{context:yn})((e=>{const{stateConfiguration:a,stateInteractionTheme:n,stateTransformTime:o,dispatchRotateXWith:i,dispatchRotateYWith:l,dispatchSetAnimatedTransform:s,dispatchSpaceResetTransform:c}=e,{elements:u,space:d}=a,{viewcube:p}=u,{buttons:m,conceal:g}=p,{fadeInTime:T}=d,h=p.show,[E,_]=r.useState(!1),[O,S]=r.useState(!1),R=(e,t)=>{switch(s(!0),e){case"rotateX":i(t);break;case"rotateY":l(t)}setTimeout((()=>{s(!1)}),o)};return r.useEffect((()=>{S(!0)}),[]),h?x.default.createElement(ao,{onMouseEnter:()=>_(!0),onMouseLeave:()=>_(!1),onMouseMove:()=>E?null:_(!0),conceal:g,mouseOver:E,isMounted:O,fadeInTime:T,"data-plurid-entity":t.PLURID_ENTITY_VIEWCUBE},x.default.createElement(yo,{mouseOver:E}),E&&m&&x.default.createElement(x.default.Fragment,null,x.default.createElement(no,{style:{gridArea:"PVRotateUp"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateX",-90.1)},"▲")),x.default.createElement(no,{theme:n,style:{gridArea:"PVRotateDown"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateX",90.1)},"▼")),x.default.createElement(no,{theme:n,style:{gridArea:"PVRotateLeft"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateY",90.1)},"◀")),x.default.createElement(no,{theme:n,style:{gridArea:"PVRotateRight"}},x.default.createElement(ro,{theme:n,onClick:()=>R("rotateY",-90.1)},"▶")),x.default.createElement(oo,{onClick:e=>{e.ctrlKey||e.metaKey||(s(!0),c(),setTimeout((()=>{s(!1)}),o))}},x.default.createElement(f.PluridIconGlobal,null)))):x.default.createElement(x.default.Fragment,null)})),wo=o.connect((e=>({})),(e=>({})),null,{context:yn})((e=>x.default.createElement(x.default.Fragment,null,x.default.createElement(sr,null),x.default.createElement(dr,null),x.default.createElement(to,null),x.default.createElement(Uo,null)))),{getRegisteredPlanes:No}=a.planes,Do=o.connect((e=>({stateConfiguration:xn.configuration.getConfiguration(e),stateTransform:xn.space.getTransform(e),stateTree:xn.space.getTree(e),stateSpaceLoading:xn.space.getLoading(e),stateSpaceView:xn.space.getView(e)})),(e=>({dispatch:e,dispatchSetConfiguration:t=>e(Nn.configuration.setConfiguration(t)),dispatchSetConfigurationMicro:()=>e(Nn.configuration.setConfigurationMicro()),dispatchSpaceSetViewSize:t=>e(Nn.space.setViewSize(t)),dispatchSetSpaceLoading:t=>e(Nn.space.setSpaceLoading(t)),dispatchSetAnimatedTransform:t=>e(Nn.space.setAnimatedTransform(t)),dispatchSetTransformTime:t=>e(Nn.space.setTransformTime(t)),dispatchSetSpaceLocation:t=>e(Nn.space.setSpaceLocation(t)),dispatchSetInitialTree:t=>e(Nn.space.setInitialTree(t)),dispatchSetTree:t=>e(Nn.space.setTree(t)),dispatchSetGeneralTheme:t=>e(Nn.themes.setGeneralTheme(t)),dispatchSetInteractionTheme:t=>e(Nn.themes.setInteractionTheme(t)),dispatchRotateX:t=>e(Nn.space.rotateX(t)),dispatchRotateXWith:t=>e(Nn.space.rotateXWith(t)),dispatchRotateY:t=>e(Nn.space.rotateY(t)),dispatchRotateYWith:t=>e(Nn.space.rotateYWith(t)),dispatchTranslateXWith:t=>e(Nn.space.translateXWith(t)),dispatchTranslateYWith:t=>e(Nn.space.translateYWith(t)),dispatchScaleUpWith:t=>e(Nn.space.scaleUpWith(t)),dispatchScaleDownWith:t=>e(Nn.space.scaleDownWith(t)),dispatchSpaceSetView:t=>e(Nn.space.spaceSetView(t))})),null,{context:yn})((e=>{const{planesRegistrar:n,customPlane:o,planeContext:i,planeContextValue:l,pubsub:c,planeNotFound:u,planeRenderError:d,matchedRoute:f,hostname:p,stateConfiguration:m,stateTransform:g,stateSpaceView:T,stateTree:h,dispatch:E,dispatchSetConfiguration:_,dispatchSetGeneralTheme:O,dispatchSetInteractionTheme:S,dispatchSetSpaceLocation:R,dispatchSetAnimatedTransform:A,dispatchSetTransformTime:b,dispatchSetTree:C,dispatchRotateXWith:I,dispatchRotateX:v,dispatchRotateYWith:P,dispatchRotateY:L,dispatchTranslateXWith:y,dispatchTranslateYWith:U,dispatchScaleUpWith:w,dispatchScaleDownWith:N,dispatchSpaceSetViewSize:D,dispatchSpaceSetView:M}=e,F=r.useRef(null),[k,G]=r.useState(c?[c]:[]),Y=r.useCallback((e=>{const{transformLocks:a}=m.space;((e,a,n,r)=>{if(a.defaultPrevented)return;if(s.dom.verifyPathInputElement(a.path))return;const o=!(a.shiftKey||a.altKey||a.ctrlKey||a.metaKey);if("KeyF"===a.code&&o)return e(Nn.configuration.toggleConfigurationSpaceFirstPerson());if(n){if("KeyW"===a.code&&o&&r.translationZ)return e(Nn.space.viewCameraMoveForward());if("KeyS"===a.code&&o&&r.translationZ)return e(Nn.space.viewCameraMoveBackward());if("KeyA"===a.code&&o&&r.translationX)return e(Nn.space.viewCameraMoveLeft());if("KeyA"===a.code&&a.shiftKey&&r.rotationY)return e(Nn.space.viewCameraTurnLeft());if("KeyD"===a.code&&o&&r.translationX)return e(Nn.space.viewCameraMoveRight());if("KeyD"===a.code&&a.shiftKey&&r.rotationY)return e(Nn.space.viewCameraTurnRight());if("KeyQ"===a.code&&o&&r.rotationX)return e(Nn.space.viewCameraTurnUp());if("KeyZ"===a.code&&o&&r.rotationX)return e(Nn.space.viewCameraTurnDown());if("KeyE"===a.code&&o&&r.translationY)return e(Nn.space.viewCameraMoveUp());if("KeyC"===a.code&&o&&r.translationY)return e(Nn.space.viewCameraMoveDown())}if("KeyR"===a.code&&o)return e(Nn.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.ROTATION));if("KeyT"===a.code&&o)return e(Nn.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.TRANSLATION));if("KeyS"===a.code&&o&&!n)return e(Nn.configuration.setConfigurationSpaceTransformMode(t.TRANSFORM_MODES.SCALE));if("ArrowRight"===a.key){if(a.shiftKey&&r.rotationY)return e(Nn.space.rotateLeft());if(a.altKey&&r.translationX)return e(Nn.space.translateRight())}if("ArrowLeft"===a.key){if(a.shiftKey&&r.rotationY)return e(Nn.space.rotateRight());if(a.altKey&&r.translationX)return e(Nn.space.translateLeft())}if("ArrowUp"===a.key){if(a.shiftKey&&a.altKey&&r.translationZ)return e(Nn.space.translateIn());if(a.shiftKey&&!a.altKey&&r.rotationX)return e(Nn.space.rotateUp());if(a.altKey&&!a.shiftKey&&r.translationY)return e(Nn.space.translateUp());if(a.metaKey||a.ctrlKey&&r.scale)return e(Nn.space.scaleUp())}if("ArrowDown"===a.key){if(a.shiftKey&&a.altKey&&r.translationZ)return e(Nn.space.translateOut());if(a.shiftKey&&!a.altKey&&r.rotationX)return e(Nn.space.rotateDown());if(a.altKey&&!a.shiftKey&&r.translationY)return e(Nn.space.translateDown());if(a.metaKey||a.ctrlKey&&r.scale)e(Nn.space.scaleDown())}})(E,e,m.space.firstPerson,a)}),[m.space.firstPerson,m.space.transformLocks,E]),B=r.useCallback((e=>{const{transformMode:a,transformLocks:n}=m.space,r={rotation:a===t.TRANSFORM_MODES.ROTATION,translation:a===t.TRANSFORM_MODES.TRANSLATION,scale:a===t.TRANSFORM_MODES.SCALE};((e,t,a,n)=>{(t.shiftKey||t.metaKey||t.altKey||t.ctrlKey||a.rotation||a.translation||a.scale)&&t.preventDefault();const r={deltaX:t.deltaX,deltaY:t.deltaY},o=Dn.getWheelDirection(r);a.rotation&&("left"===o&&n.rotationY&&e(Nn.space.rotateLeft()),"right"===o&&n.rotationY&&e(Nn.space.rotateRight()),"up"===o&&n.rotationX&&e(Nn.space.rotateUp()),"down"===o&&n.rotationX&&e(Nn.space.rotateDown())),t.shiftKey&&!t.altKey&&("up"===o&&n.rotationX&&e(Nn.space.rotateUp()),"down"===o&&n.rotationX&&e(Nn.space.rotateDown()),"left"===o&&n.rotationY&&e(Nn.space.rotateLeft()),"right"===o&&n.rotationY&&e(Nn.space.rotateRight())),a.translation&&("up"===o&&n.translationY&&e(Nn.space.translateDown()),"down"===o&&n.translationY&&e(Nn.space.translateUp()),"left"===o&&n.translationX&&e(Nn.space.translateRight()),"right"===o&&n.translationX&&e(Nn.space.translateLeft())),t.altKey&&t.shiftKey&&("up"===o&&n.translationZ&&e(Nn.space.translateIn()),"down"===o&&n.translationZ&&e(Nn.space.translateOut())),t.altKey&&!t.shiftKey&&("up"===o&&n.translationY&&e(Nn.space.translateDown()),"down"===o&&n.translationY&&e(Nn.space.translateUp()),"left"===o&&n.translationX&&e(Nn.space.translateRight()),"right"===o&&n.translationX&&e(Nn.space.translateLeft())),a.scale&&("down"===o&&n.scale&&e(Nn.space.scaleUp()),"up"===o&&n.scale&&e(Nn.space.scaleDown())),(t.metaKey||t.ctrlKey)&&("down"===o&&n.scale&&e(Nn.space.scaleUp()),"up"===o&&n.scale&&e(Nn.space.scaleDown()))})(E,e,r,n)}),[E,m.space.transformMode,m.space.transformLocks]),V=(e,t=m)=>{const r=No(n),o=new a.space.tree.Tree({planes:r,configuration:t,view:e},p).compute();for(const e of h)for(const[t,a]of o.entries())e.route===a.route&&e.children&&(o[t].children=e.children);C(o)},X=r.useCallback((()=>{V(T)}),[T,m]),$=e=>{const n=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.CONFIGURATION,callback:e=>{if(e.internal)return;const t=a.general.configuration.merge(e,m);"object"==typeof t.global.theme?("string"==typeof t.global.theme.general?O(j.default[t.global.theme.general]):O(t.global.theme.general),"string"==typeof t.global.theme.interaction?S(j.default[t.global.theme.interaction]):S(t.global.theme.interaction)):"string"==typeof t.global.theme&&(O(j.default[t.global.theme]),S(j.default[t.global.theme])),_(t)}}),r=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSFORM,callback:e=>{const{value:t,internal:a}=e;a||R(t)}}),o=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ANIMATED_TRANSFORM,callback:e=>{const{value:t}=e;A(t.active),t.time?b(t.time):b(450)}}),i=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_WITH,callback:e=>{const{value:t}=e;I(t)}}),l=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_TO,callback:e=>{const{value:t}=e;v(t)}}),s=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_WITH,callback:e=>{const{value:t}=e;P(t)}}),c=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_TO,callback:e=>{const{value:t}=e;L(t)}}),u=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_X_WITH,callback:e=>{const{value:t}=e;y(t)}}),d=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_Y_WITH,callback:e=>{const{value:t}=e;U(t)}}),f=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.VIEW_ADD_PLANE,callback:e=>{const{plane:t}=e,a=[...T,t];M(a),V(a)}}),p=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.VIEW_SET_PLANES,callback:e=>{const{view:t}=e;M([...t]),V(t)}}),g=e.subscribe({topic:t.PLURID_PUBSUB_TOPIC.VIEW_REMOVE_PLANE,callback:e=>{const{plane:t}=e,a=T.filter((e=>"string"!=typeof e||e===t));M(a),V(a)}});return()=>{e.unsubscribe(n,t.PLURID_PUBSUB_TOPIC.CONFIGURATION),e.unsubscribe(r,t.PLURID_PUBSUB_TOPIC.SPACE_TRANSFORM),e.unsubscribe(o,t.PLURID_PUBSUB_TOPIC.SPACE_ANIMATED_TRANSFORM),e.unsubscribe(i,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_WITH),e.unsubscribe(l,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_X_TO),e.unsubscribe(s,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_WITH),e.unsubscribe(c,t.PLURID_PUBSUB_TOPIC.SPACE_ROTATE_Y_TO),e.unsubscribe(u,t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_X_WITH),e.unsubscribe(d,t.PLURID_PUBSUB_TOPIC.SPACE_TRANSLATE_Y_WITH),e.unsubscribe(f,t.PLURID_PUBSUB_TOPIC.VIEW_ADD_PLANE),e.unsubscribe(p,t.PLURID_PUBSUB_TOPIC.VIEW_SET_PLANES),e.unsubscribe(g,t.PLURID_PUBSUB_TOPIC.VIEW_REMOVE_PLANE)}},W=e=>{const a={value:Object.assign({},g),internal:!0};e.publish({topic:t.PLURID_PUBSUB_TOPIC.SPACE_TRANSFORM,data:a}),e.publish({topic:t.PLURID_PUBSUB_TOPIC.CONFIGURATION,data:Object.assign(Object.assign({},m),{internal:!0})})},z=e=>{const{transformMode:a}=m.space;if(a===t.TRANSFORM_MODES.ALL)return;const{velocity:n,distance:r,direction:o}=e,i=a===t.TRANSFORM_MODES.ROTATION,l=a===t.TRANSFORM_MODES.TRANSLATION,s=a===t.TRANSFORM_MODES.SCALE;switch(A(!0),o){case 2:i&&P(60*n),l&&y(-1*r);break;case 4:i&&P(60*n),l&&y(r);break;case 8:i&&I(60*n),l&&U(-1*r),s&&w(n);break;case 16:i&&I(60*n),l&&U(r),s&&N(n)}setTimeout((()=>{A(!1)}),450)},H=e=>{const{transformMode:a}=m.space;if(a===t.TRANSFORM_MODES.ALL)return;const{velocity:n,distance:r,direction:o}=e,i=a===t.TRANSFORM_MODES.ROTATION,l=a===t.TRANSFORM_MODES.TRANSLATION,s=a===t.TRANSFORM_MODES.SCALE,c=20*n,u=r/5,d=n/4;switch(o){case 2:i&&P(c),l&&y(-1*u);break;case 4:i&&P(c),l&&y(u);break;case 8:i&&I(c),l&&U(-1*u),s&&w(d);break;case 16:i&&I(c),l&&U(u),s&&N(d)}};r.useEffect((()=>(F.current&&(F.current.addEventListener("keydown",Y,{passive:!1}),F.current.addEventListener("wheel",B,{passive:!1})),()=>{F.current&&(F.current.removeEventListener("keydown",Y),F.current.removeEventListener("wheel",B))})),[F.current,m.space.transformMode,m.space.firstPerson]),r.useEffect((()=>{const e=s.meta.debounce((()=>{if(F&&F.current){const e=F.current.offsetWidth,t=F.current.offsetHeight;D({width:e,height:t})}}),150);return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),r.useEffect((()=>(window.addEventListener("resize",X),()=>{window.removeEventListener("resize",X)})),[T,m]),r.useEffect((()=>{if("undefined"==typeof window)return;let e;return Un(void 0,void 0,void 0,(function*(){const a=(yield Mn()).default,{transformTouch:n}=m.space;delete a.defaults.cssProps.userSelect,delete a.defaults.cssProps.userDrag,delete a.defaults.cssProps.tapHighlightColor,delete a.defaults.cssProps.touchSelect,F.current&&(e=new a(F.current),e.get("pan").set({direction:a.DIRECTION_ALL}),e.get("swipe").set({direction:a.DIRECTION_ALL}),n===t.TRANSFORM_TOUCHES.PAN?e.on("pan",H):e.on("swipe",z))})),()=>{if(!e)return;const{transformTouch:a}=m.space;a===t.TRANSFORM_TOUCHES.PAN?e.off("pan",H):e.off("swipe",z)}}),[F.current,m.space.transformTouch,m.space.transformMode]),r.useEffect((()=>{const e=e=>{navigator.getGamepads()[e.gamepad.index]},t=e=>{navigator.getGamepads()[e.gamepad.index]};return window.addEventListener("gamepadconnected",e),window.addEventListener("gamepaddisconnected",t),()=>{window.removeEventListener("gamepadconnected",e),window.removeEventListener("gamepaddisconnected",t)}}),[]),r.useEffect((()=>{const e=[];for(const t of k){const a=$(t);e.push(a)}return()=>{for(const t of e)t()}}),[k.length]),r.useEffect((()=>{for(const e of k)W(e)}),[k.length,m,g]),r.useEffect((()=>{X()}),[]);const Z={planesRegistrar:n,planeContext:i,planeContextValue:l,customPlane:o,planeNotFound:u,planeRenderError:d,matchedRoute:f,registerPubSub:e=>{const t=[...k,e];G(t)}},K=0===T.length?x.default.createElement(x.default.Fragment,null):x.default.createElement(wo,null);return x.default.createElement(jn,{ref:F,tabIndex:0,transformMode:m.space.transformMode,"data-plurid-entity":t.PLURID_ENTITY_VIEW},x.default.createElement(Fn,null),x.default.createElement(wn.Provider,{value:Z},K))})),{registerPlanes:Mo}=a.planes;class xo extends r.Component{constructor(e,t){super(e),this.storeID=e.id||"default",this.context=t;const a=this.computeStore();this.store=Ln(a),this.subscribeStore()}componentDidUpdate(){const e=this.computeStore();this.store.dispatch({type:"SET_STATE",payload:e})}componentWillUnmount(){this.storeUnubscriber&&this.storeUnubscriber()}render(){return x.default.createElement(o.Provider,{store:this.store,context:yn},x.default.createElement(Do,Object.assign({},this.props)))}computeStore(){const{view:e,planes:t,configuration:n,precomputedState:r,planesRegistrar:o,id:i,useLocalStorage:l,hostname:s}=this.props;Mo(t,o);const c=this.store?this.store.getState():void 0,u=a.state.local.load(this.storeID,l),d=i&&this.context&&this.context.states[i]?this.context.states[i]:void 0;return a.state.compute(e,n,o,c,u,r,d,s)}subscribeStore(){this.store&&"undefined"!=typeof localStorage&&this.props.useLocalStorage&&(this.storeUnubscriber=this.store.subscribe((()=>{const e=this.store.getState(),t=JSON.stringify(e);localStorage.setItem("pluridState-"+this.storeID,t)})))}}xo.contextType=Y;const Fo=k.default.div`
471
471
  scroll-snap-type: ${e=>{const{alignment:t,snapType:a}=e;return"none"===a?"none":t+" "+a}};
472
472
 
473
473
  flex-direction: ${e=>{const{alignment:t}=e;return"x"===t?"row":"column"}};
@@ -478,7 +478,7 @@
478
478
  height: 100vh;
479
479
  height: -webkit-fill-available;
480
480
  width: 100vw;
481
- `,{resolvePluridRoutePlaneData:jo,Registrar:ko}=a.planes,Go=(e,n,r,o,i="origin")=>{if(o||"RoutePlane"===(null==e?void 0:e.kind)){const t=o||e;if(!t)return()=>()=>x.default.createElement(x.default.Fragment,null);return Yo(t,n)}if(!e){const e=r.match("/not-found","route");if(e&&"Route"===e.kind){return Go(e,n,r)}return()=>()=>x.default.createElement(x.default.Fragment,null)}const{exterior:l,view:c,planes:u,spaces:d,defaultConfiguration:f,slotted:p,resolver:m}=e.data;m&&m(void 0);const g={value:e.match.value,parameters:e.match.parameters,query:e.match.query};let T;return Qn(l)&&(T=l,T&&(T.displayName="PluridRouteExterior")),!l||!T||c||u||d?c?()=>{const t=new M.default,a=x.default.createElement(xo,{view:c,planesRegistrar:n,configuration:f,pubsub:t,matchedRoute:e,hostname:i});return()=>x.default.createElement(x.default.Fragment,null,T&&x.default.createElement(T,{plurid:g,pubsub:t,spaces:p?[a]:void 0}),!p&&x.default.createElement(x.default.Fragment,null,a))}:((e,n="origin")=>{var r,o,i,l,c,u;if("Route"!==e.kind)return()=>()=>x.default.createElement(x.default.Fragment,null);const d="http",f=n,{match:p,data:m}=e,{parameters:g,query:T}=p,h={value:p.value,parameters:g,query:T},{exterior:E,planes:_,spaces:O,slotted:S}=e.data,R=(null===(r=m.multispace)||void 0===r?void 0:r.alignment)||"y",A=(null===(o=m.multispace)||void 0===o?void 0:o.snapType)||"mandatory";let b=()=>x.default.createElement(x.default.Fragment,null);Qn(E)&&(b=E);let C=()=>x.default.createElement(x.default.Fragment,null);const I=[];if(O)for(const e of O){const r=[],o=[];if(e.planes)for(const n of e.planes){const i=jo(n),{component:l}=i,s=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),e.value===t.PLURID_ROUTE_DEFAULT_SPACE_VALUE?t.PLURID_ROUTE_DEFAULT_SPACE:a.utilities.cleanPathElement(e.value),t.PLURID_ROUTE_DEFAULT_UNIVERSE,t.PLURID_ROUTE_DEFAULT_CLUSTER,a.utilities.cleanPathElement(i.value)].join(t.PLURID_ROUTE_SEPARATOR),c={component:l,route:s};r.push(c),o.push(s)}if(e.universes)for(const n of e.universes){if(n.clusters)for(const i of n.clusters)for(const l of i.planes){const s=jo(l),{component:c}=s,u=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),e.value===t.PLURID_ROUTE_DEFAULT_SPACE_VALUE?t.PLURID_ROUTE_DEFAULT_SPACE:a.utilities.cleanPathElement(e.value),n.value===t.PLURID_ROUTE_DEFAULT_UNIVERSE_VALUE?t.PLURID_ROUTE_DEFAULT_UNIVERSE:a.utilities.cleanPathElement(n.value),i.value===t.PLURID_ROUTE_DEFAULT_CLUSTER_VALUE?t.PLURID_ROUTE_DEFAULT_CLUSTER:a.utilities.cleanPathElement(i.value),a.utilities.cleanPathElement(s.value)].join(t.PLURID_ROUTE_SEPARATOR),p={component:c,route:u};r.push(p),m.view?m.view.includes(s.value)&&o.push(u):o.push(u)}if(n.planes)for(const i of n.planes){const l=jo(i),{component:s}=l,c=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),e.value===t.PLURID_ROUTE_DEFAULT_SPACE_VALUE?t.PLURID_ROUTE_DEFAULT_SPACE:a.utilities.cleanPathElement(e.value),n.value===t.PLURID_ROUTE_DEFAULT_UNIVERSE_VALUE?t.PLURID_ROUTE_DEFAULT_UNIVERSE:a.utilities.cleanPathElement(n.value),t.PLURID_ROUTE_DEFAULT_CLUSTER,a.utilities.cleanPathElement(l.value)].join(t.PLURID_ROUTE_SEPARATOR),u={component:s,route:c};r.push(u),o.push(c)}}const i=new ko,l=x.default.createElement(xo,{key:s.uuid.generate(),id:m.value,planes:r,view:o,configuration:e.configuration,planesRegistrar:i,hostname:n});I.push(l)}if(_){const e=[],r=[];for(const n of _){const o=jo(n),{component:i}=o,l=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),t.PLURID_ROUTE_DEFAULT_SPACE,t.PLURID_ROUTE_DEFAULT_UNIVERSE,t.PLURID_ROUTE_DEFAULT_CLUSTER,a.utilities.cleanPathElement(o.value)].join(t.PLURID_ROUTE_SEPARATOR),s={component:i,route:l};e.push(s),m.view?m.view.includes(o.value)&&r.push(l):r.push(l)}const o=x.default.createElement(xo,{key:s.uuid.generate(),id:m.value,planes:e,view:r,configuration:m.defaultConfiguration,hostname:n});I.push(o)}let v,P;return Qn(null===(i=m.multispace)||void 0===i?void 0:i.header)&&(v=null===(l=m.multispace)||void 0===l?void 0:l.header),Qn(null===(c=m.multispace)||void 0===c?void 0:c.footer)&&(P=null===(u=m.multispace)||void 0===u?void 0:u.footer),C=()=>x.default.createElement(Fo,{alignment:R,snapType:A,"data-plurid-entity":t.PLURID_ENTITY_MULTISPACE},v&&x.default.createElement(v,{plurid:h}),I,P&&x.default.createElement(P,{plurid:h})),()=>()=>x.default.createElement(x.default.Fragment,null,E&&x.default.createElement(b,{spaces:S?I:void 0,plurid:h}),(O||_)&&!S&&x.default.createElement(C,null))})(e):()=>()=>x.default.createElement(x.default.Fragment,null,T&&x.default.createElement(T,{plurid:g}))},Yo=(e,t,a="origin")=>{if(e.match.query.flat){const a=e.match.query.flat.toLowerCase();if("true"===a||"1"===a){const a=t.get(e.match.value);if(a){const e=a.component;if("function"!=typeof e)return()=>()=>x.default.createElement(x.default.Fragment,null);return()=>()=>x.default.createElement(x.default.Fragment,null,x.default.createElement(e,null))}}}const{defaultConfiguration:n}=null==e?void 0:e.data;return()=>()=>x.default.createElement(x.default.Fragment,null,x.default.createElement(xo,{view:[e.match.value],planesRegistrar:t,configuration:n,hostname:a}))},{Registrar:Bo}=a.planes,{IsoMatcher:Vo}=a.routing,Xo=e=>{const{routes:a,planes:n,exterior:o,shell:i,hostname:l,static:c,view:u,cleanNavigation:d,notFoundPath:f}=e,m=f||"/not-found",g=((e,t)=>{const a=[];for(const t of e){if(t.planes)for(const e of t.planes){const n=jo(e),r={route:n.link?n.link:n.value.startsWith("/")?n.value:t.value+"/"+n.value,component:n.component};a.push(r)}t.spaces}if(t)for(const e of t){const t=jo(e),n={route:t.value,component:t.component};a.push(n)}return a})(a,n),T=r.useRef(new Bo(g)),h=r.useRef(new Vo({routes:a,routePlanes:n},l)),E=p.useMounted(),[_,O]=r.useState((e=>e?e.path:"undefined"!=typeof window?window.location.pathname+window.location.search:"/")(c)),[S,R]=r.useState(h.current.match(_,"route")),[A,b]=r.useState(Go(S,T.current,h.current,c&&c.directPlane?h.current.match(c.directPlane,"route"):void 0,l)),C=e=>{let t;e&&e.detail&&e.detail.path&&!t&&(t=e.detail.path),d&&u&&!t&&(t=u);const a=window.location.pathname;t||(t=a+window.location.search),O(t)};let I;r.useEffect((()=>(window.addEventListener("popstate",C),window.addEventListener(t.PLURID_ROUTER_LOCATION_CHANGED,C),()=>{window.removeEventListener("popstate",C),window.removeEventListener(t.PLURID_ROUTER_LOCATION_CHANGED,C)})),[]),r.useEffect((()=>{if(!E)return;d||location.pathname!==_&&history.pushState(null,"",_);let e=h.current.match(_,"route");if(e&&"RoutePlane"===e.kind){const t=Yo(e,T.current,l);return R(e),void b(t)}e||(e=h.current.match(m,"route")),R(e),b(Go(e,T.current,h.current,l))}),[E,_]),r.useEffect((()=>{if(!S)return;if("Route"!==S.kind)return;const e=S.match.value;s.storage.saveState(e,t.PLURID_ROUTER_STORAGE);const a=new CustomEvent(t.PLURID_ROUTER_LOCATION_STORED,{detail:{path:e}});window.dispatchEvent(a)}),[d,S]),Qn(o)&&(I=o,I&&(I.displayName="PluridRouterExterior"));let v=({children:e})=>x.default.createElement(x.default.Fragment,null,e);return Qn(i)&&(v=i,v&&(v.displayName="PluridRouterShell")),x.default.createElement(x.default.Fragment,null,I&&x.default.createElement(I,{matchedRoute:S}),x.default.createElement(v,{matchedRoute:S},x.default.createElement(A,null)))},$o=e=>{const{path:t,directPlane:a,routes:n,planes:r,exterior:o,shell:i,protocol:l,hostname:s,gateway:c,gatewayQuery:u,gatewayEndpoint:d}=e,f=l||"http",p=s||"localhost:63000";return x.default.createElement(Xo,{routes:n,planes:r,exterior:o,shell:i,static:{path:t,directPlane:a},protocol:f,hostname:p})};class Wo extends r.Component{constructor(e){super(e),this.properties=e}render(){const{metastate:e,children:t}=this.properties;return x.default.createElement(Y.Provider,{value:e},t)}}Wo.displayName="PluridProvider";const zo={x:0,y:0},Ho=e=>{const{elementID:t,rootID:a,children:n}=e,r=p.usePortal(t,a);return m.createPortal(n,r)},Zo=k.default.div`
481
+ `,{resolvePluridRoutePlaneData:jo,Registrar:ko}=a.planes,Go=(e,n,r,o,i="origin")=>{if(o||"RoutePlane"===(null==e?void 0:e.kind)){const t=o||e;if(!t)return()=>()=>x.default.createElement(x.default.Fragment,null);return Yo(t,n,i)}if(!e){const e=r.match("/not-found","route");if(e&&"Route"===e.kind){return Go(e,n,r,void 0,i)}return()=>()=>x.default.createElement(x.default.Fragment,null)}const{exterior:l,view:c,planes:u,spaces:d,defaultConfiguration:f,slotted:p,resolver:m}=e.data;m&&m(void 0);const g={value:e.match.value,parameters:e.match.parameters,query:e.match.query};let T;return Qn(l)&&(T=l,T&&(T.displayName="PluridRouteExterior")),!l||!T||c||u||d?c?()=>{const t=new M.default,a=x.default.createElement(xo,{view:c,planesRegistrar:n,configuration:f,pubsub:t,matchedRoute:e,hostname:i});return()=>x.default.createElement(x.default.Fragment,null,T&&x.default.createElement(T,{plurid:g,pubsub:t,spaces:p?[a]:void 0}),!p&&x.default.createElement(x.default.Fragment,null,a))}:((e,n="origin")=>{var r,o,i,l,c,u;if("Route"!==e.kind)return()=>()=>x.default.createElement(x.default.Fragment,null);const d="http",f=n,{match:p,data:m}=e,{parameters:g,query:T}=p,h={value:p.value,parameters:g,query:T},{exterior:E,planes:_,spaces:O,slotted:S}=e.data,R=(null===(r=m.multispace)||void 0===r?void 0:r.alignment)||"y",A=(null===(o=m.multispace)||void 0===o?void 0:o.snapType)||"mandatory";let b=()=>x.default.createElement(x.default.Fragment,null);Qn(E)&&(b=E);let C=()=>x.default.createElement(x.default.Fragment,null);const I=[];if(O)for(const e of O){const r=[],o=[];if(e.planes)for(const n of e.planes){const i=jo(n),{component:l}=i,s=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),e.value===t.PLURID_ROUTE_DEFAULT_SPACE_VALUE?t.PLURID_ROUTE_DEFAULT_SPACE:a.utilities.cleanPathElement(e.value),t.PLURID_ROUTE_DEFAULT_UNIVERSE,t.PLURID_ROUTE_DEFAULT_CLUSTER,a.utilities.cleanPathElement(i.value)].join(t.PLURID_ROUTE_SEPARATOR),c={component:l,route:s};r.push(c),o.push(s)}if(e.universes)for(const n of e.universes){if(n.clusters)for(const i of n.clusters)for(const l of i.planes){const s=jo(l),{component:c}=s,u=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),e.value===t.PLURID_ROUTE_DEFAULT_SPACE_VALUE?t.PLURID_ROUTE_DEFAULT_SPACE:a.utilities.cleanPathElement(e.value),n.value===t.PLURID_ROUTE_DEFAULT_UNIVERSE_VALUE?t.PLURID_ROUTE_DEFAULT_UNIVERSE:a.utilities.cleanPathElement(n.value),i.value===t.PLURID_ROUTE_DEFAULT_CLUSTER_VALUE?t.PLURID_ROUTE_DEFAULT_CLUSTER:a.utilities.cleanPathElement(i.value),a.utilities.cleanPathElement(s.value)].join(t.PLURID_ROUTE_SEPARATOR),p={component:c,route:u};r.push(p),m.view?m.view.includes(s.value)&&o.push(u):o.push(u)}if(n.planes)for(const i of n.planes){const l=jo(i),{component:s}=l,c=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),e.value===t.PLURID_ROUTE_DEFAULT_SPACE_VALUE?t.PLURID_ROUTE_DEFAULT_SPACE:a.utilities.cleanPathElement(e.value),n.value===t.PLURID_ROUTE_DEFAULT_UNIVERSE_VALUE?t.PLURID_ROUTE_DEFAULT_UNIVERSE:a.utilities.cleanPathElement(n.value),t.PLURID_ROUTE_DEFAULT_CLUSTER,a.utilities.cleanPathElement(l.value)].join(t.PLURID_ROUTE_SEPARATOR),u={component:s,route:c};r.push(u),o.push(c)}}const i=new ko,l=x.default.createElement(xo,{key:s.uuid.generate(),id:m.value,planes:r,view:o,configuration:e.configuration,planesRegistrar:i,hostname:n});I.push(l)}if(_){const e=[],r=[];for(const n of _){const o=jo(n),{component:i}=o,l=[d,f,m.value===t.PLURID_ROUTE_DEFAULT_PATH_VALUE?t.PLURID_ROUTE_DEFAULT_PATH:a.utilities.cleanPathElement(m.value),t.PLURID_ROUTE_DEFAULT_SPACE,t.PLURID_ROUTE_DEFAULT_UNIVERSE,t.PLURID_ROUTE_DEFAULT_CLUSTER,a.utilities.cleanPathElement(o.value)].join(t.PLURID_ROUTE_SEPARATOR),s={component:i,route:l};e.push(s),m.view?m.view.includes(o.value)&&r.push(l):r.push(l)}const o=x.default.createElement(xo,{key:s.uuid.generate(),id:m.value,planes:e,view:r,configuration:m.defaultConfiguration,hostname:n});I.push(o)}let v,P;return Qn(null===(i=m.multispace)||void 0===i?void 0:i.header)&&(v=null===(l=m.multispace)||void 0===l?void 0:l.header),Qn(null===(c=m.multispace)||void 0===c?void 0:c.footer)&&(P=null===(u=m.multispace)||void 0===u?void 0:u.footer),C=()=>x.default.createElement(Fo,{alignment:R,snapType:A,"data-plurid-entity":t.PLURID_ENTITY_MULTISPACE},v&&x.default.createElement(v,{plurid:h}),I,P&&x.default.createElement(P,{plurid:h})),()=>()=>x.default.createElement(x.default.Fragment,null,E&&x.default.createElement(b,{spaces:S?I:void 0,plurid:h}),(O||_)&&!S&&x.default.createElement(C,null))})(e):()=>()=>x.default.createElement(x.default.Fragment,null,T&&x.default.createElement(T,{plurid:g}))},Yo=(e,t,a="origin")=>{if(e.match.query.flat){const a=e.match.query.flat.toLowerCase();if("true"===a||"1"===a){const a=t.get(e.match.value);if(a){const e=a.component;if("function"!=typeof e)return()=>()=>x.default.createElement(x.default.Fragment,null);return()=>()=>x.default.createElement(x.default.Fragment,null,x.default.createElement(e,null))}}}const{defaultConfiguration:n}=null==e?void 0:e.data;return()=>()=>x.default.createElement(x.default.Fragment,null,x.default.createElement(xo,{view:[e.match.value],planesRegistrar:t,configuration:n,hostname:a}))},{Registrar:Bo}=a.planes,{IsoMatcher:Vo}=a.routing,Xo=e=>{const{routes:a,planes:n,exterior:o,shell:i,hostname:l,static:c,view:u,cleanNavigation:d,notFoundPath:f}=e,m=f||"/not-found",g=((e,t)=>{const a=[];for(const t of e){if(t.planes)for(const e of t.planes){const n=jo(e),r={route:n.link?n.link:n.value.startsWith("/")?n.value:t.value+"/"+n.value,component:n.component};a.push(r)}t.spaces}if(t)for(const e of t){const t=jo(e),n={route:t.value,component:t.component};a.push(n)}return a})(a,n),T=r.useRef(new Bo(g)),h=r.useRef(new Vo({routes:a,routePlanes:n},l)),E=p.useMounted(),[_,O]=r.useState((e=>e?e.path:"undefined"!=typeof window?window.location.pathname+window.location.search:"/")(c)),[S,R]=r.useState(h.current.match(_,"route")),[A,b]=r.useState(Go(S,T.current,h.current,c&&c.directPlane?h.current.match(c.directPlane,"route"):void 0,l)),C=e=>{let t;e&&e.detail&&e.detail.path&&!t&&(t=e.detail.path),d&&u&&!t&&(t=u);const a=window.location.pathname;t||(t=a+window.location.search),O(t)};let I;r.useEffect((()=>(window.addEventListener("popstate",C),window.addEventListener(t.PLURID_ROUTER_LOCATION_CHANGED,C),()=>{window.removeEventListener("popstate",C),window.removeEventListener(t.PLURID_ROUTER_LOCATION_CHANGED,C)})),[]),r.useEffect((()=>{if(!E)return;d||location.pathname!==_&&history.pushState(null,"",_);let e=h.current.match(_,"route");if(e&&"RoutePlane"===e.kind){const t=Yo(e,T.current,l);return R(e),void b(t)}e||(e=h.current.match(m,"route")),R(e),b(Go(e,T.current,h.current,void 0,l))}),[E,_]),r.useEffect((()=>{if(!S)return;if("Route"!==S.kind)return;const e=S.match.value;s.storage.saveState(e,t.PLURID_ROUTER_STORAGE);const a=new CustomEvent(t.PLURID_ROUTER_LOCATION_STORED,{detail:{path:e}});window.dispatchEvent(a)}),[d,S]),Qn(o)&&(I=o,I&&(I.displayName="PluridRouterExterior"));let v=({children:e})=>x.default.createElement(x.default.Fragment,null,e);return Qn(i)&&(v=i,v&&(v.displayName="PluridRouterShell")),x.default.createElement(x.default.Fragment,null,I&&x.default.createElement(I,{matchedRoute:S}),x.default.createElement(v,{matchedRoute:S},x.default.createElement(A,null)))},$o=e=>{const{path:t,directPlane:a,routes:n,planes:r,exterior:o,shell:i,protocol:l,hostname:s,gateway:c,gatewayQuery:u,gatewayEndpoint:d}=e,f=l||"http",p=s||"localhost:63000";return x.default.createElement(Xo,{routes:n,planes:r,exterior:o,shell:i,static:{path:t,directPlane:a},protocol:f,hostname:p})};class Wo extends r.Component{constructor(e){super(e),this.properties=e}render(){const{metastate:e,children:t}=this.properties;return x.default.createElement(Y.Provider,{value:e},t)}}Wo.displayName="PluridProvider";const zo={x:0,y:0},Ho=e=>{const{elementID:t,rootID:a,children:n}=e,r=p.usePortal(t,a);return m.createPortal(n,r)},Zo=k.default.div`
482
482
  position: absolute;
483
483
  min-width: 600px;
484
484
  min-height: 300px;