Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@projectstorm/react-workspaces-core

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@projectstorm/react-workspaces-core - npm Package Compare versions

Comparing version
4.2.2
to
4.2.3
+1
-1
dist/core-models/WorkspaceCollectionModel.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"WorkspaceCollectionModel.js","sourceRoot":"","sources":["../../src/core-models/WorkspaceCollectionModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { WorkspaceModel, SerializedModel, WorkspaceModelListener } from './WorkspaceModel';\nimport { WorkspaceEngine } from '../core/WorkspaceEngine';\nimport { WorkspaceCollectionInterface } from './WorkspaceCollectionInterface';\nimport { WorkspaceModelFactory } from '../core/WorkspaceModelFactory';\nimport * as _ from 'lodash';\nimport { Alignment } from '../core/tools';\n\nexport interface SerializedCollectionModel extends SerializedModel {\n children: SerializedModel[];\n type: string;\n}\n\nexport interface WorkspaceCollectionModelListener extends WorkspaceModelListener {\n childRemoved?: (node: WorkspaceModel) => any;\n}\n\nexport class WorkspaceCollectionModel<\n S extends SerializedCollectionModel = SerializedCollectionModel,\n L extends WorkspaceCollectionModelListener = WorkspaceCollectionModelListener\n >\n extends WorkspaceModel<S, L>\n implements WorkspaceCollectionInterface\n{\n children: WorkspaceModel[];\n\n constructor(type: string) {\n super(type);\n this.children = [];\n }\n\n fromArray(payload: S, engine: WorkspaceEngine) {\n super.fromArray(payload, engine);\n for (let child of payload.children) {\n let factory: WorkspaceModelFactory;\n try {\n factory = engine.getFactory(child.type);\n } catch (ex) {\n continue;\n }\n\n let model: any = factory.generateModel();\n model.fromArray(child, engine);\n this.addModel(model);\n }\n }\n\n toArray(): S {\n return {\n ...super.toArray(),\n children: this.children.map((child) => {\n return child.toArray();\n })\n } as S;\n }\n\n isFirstModel(model: WorkspaceModel): boolean {\n return this.children[0].id === model.id;\n }\n\n isLastModel(model: WorkspaceModel): boolean {\n return this.children[this.children.length - 1].id === model.id;\n }\n\n flatten() {\n const children = _.flatMap(this.children.map((c) => c.flatten()));\n return super.flatten().concat(children);\n }\n\n getFlattened(): WorkspaceModel[] {\n let children = [];\n for (let child of this.children) {\n if (child instanceof WorkspaceCollectionModel) {\n children = children.concat(child.getFlattened());\n } else {\n children.push(child);\n }\n }\n return children;\n }\n\n replaceModel(oldModel: WorkspaceModel, newModel): this {\n let index = this.children.indexOf(oldModel);\n oldModel.delete();\n this.addModel(newModel, index);\n return this;\n }\n\n getModelBefore(model: WorkspaceModel) {\n const index = this.children.indexOf(model);\n if (index <= 0) {\n return null;\n }\n return this.children[index - 1];\n }\n\n getModelAfter(model: WorkspaceModel) {\n const index = this.children.indexOf(model);\n if (index >= this.children.length - 1) {\n return null;\n }\n return this.children[index + 1];\n }\n\n normalize() {\n if (this.parent && this.parent instanceof WorkspaceCollectionModel) {\n if (this.children.length === 0) {\n this.parent.removeModel(this);\n }\n }\n }\n\n removeModel(model: WorkspaceModel): this {\n let index = this.children.indexOf(model);\n if (index === -1) {\n console.log('could not find model');\n return this;\n }\n this.children.splice(index, 1);\n this.invalidateLayout();\n return this;\n }\n\n addModel(model: WorkspaceModel, position: number = null): this {\n if (this.children.indexOf(model) !== -1) {\n const pos = this.children.indexOf(model);\n this.children.splice(pos, 1);\n if (pos > position) {\n this.children.splice(position, 0, model);\n } else {\n this.children.splice(position - 1, 0, model);\n }\n } else {\n if (model.parent) {\n model.delete();\n }\n model.setParent(this);\n\n // allow a child to remove itself\n const listener = model.registerListener({\n removed: () => {\n listener();\n this.removeModel(model);\n this.iterateListeners((list) => {\n list.childRemoved?.(model);\n });\n },\n layoutInvalidated: () => {\n this.invalidateLayout();\n },\n dimensionsInvalidated: () => {\n this.invalidateDimensions();\n }\n });\n\n if (position === null) {\n this.children.push(model);\n } else {\n this.children.splice(position, 0, model);\n }\n }\n this.invalidateLayout();\n return this;\n }\n\n addModelBefore(relativeModel: WorkspaceModel, model: WorkspaceModel) {\n let index = this.children.indexOf(relativeModel);\n this.addModel(model, index);\n }\n\n addModelAfter(relativeModel: WorkspaceModel, model: WorkspaceModel) {\n let index = this.children.indexOf(relativeModel);\n this.addModel(model, index + 1);\n }\n\n getChildSibling(model: WorkspaceModel, alignment: Alignment): WorkspaceModel {\n return null;\n }\n}\n"]}
{"version":3,"file":"WorkspaceCollectionModel.js","sourceRoot":"","sources":["../../src/core-models/WorkspaceCollectionModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { WorkspaceModel, SerializedModel, WorkspaceModelListener } from './WorkspaceModel';\nimport { WorkspaceEngine } from '../core/WorkspaceEngine';\nimport { WorkspaceCollectionInterface } from './WorkspaceCollectionInterface';\nimport { WorkspaceModelFactory } from '../core/WorkspaceModelFactory';\nimport * as _ from 'lodash';\nimport { Alignment } from '../core/tools';\n\nexport interface SerializedCollectionModel extends SerializedModel {\n children: SerializedModel[];\n type: string;\n}\n\nexport interface WorkspaceCollectionModelListener extends WorkspaceModelListener {\n childRemoved?: (node: WorkspaceModel) => any;\n}\n\nexport class WorkspaceCollectionModel<\n S extends SerializedCollectionModel = SerializedCollectionModel,\n L extends WorkspaceCollectionModelListener = WorkspaceCollectionModelListener\n>\n extends WorkspaceModel<S, L>\n implements WorkspaceCollectionInterface\n{\n children: WorkspaceModel[];\n\n constructor(type: string) {\n super(type);\n this.children = [];\n }\n\n fromArray(payload: S, engine: WorkspaceEngine) {\n super.fromArray(payload, engine);\n for (let child of payload.children) {\n let factory: WorkspaceModelFactory;\n try {\n factory = engine.getFactory(child.type);\n } catch (ex) {\n continue;\n }\n\n let model: any = factory.generateModel();\n model.fromArray(child, engine);\n this.addModel(model);\n }\n }\n\n toArray(): S {\n return {\n ...super.toArray(),\n children: this.children.map((child) => {\n return child.toArray();\n })\n } as S;\n }\n\n isFirstModel(model: WorkspaceModel): boolean {\n return this.children[0].id === model.id;\n }\n\n isLastModel(model: WorkspaceModel): boolean {\n return this.children[this.children.length - 1].id === model.id;\n }\n\n flatten() {\n const children = _.flatMap(this.children.map((c) => c.flatten()));\n return super.flatten().concat(children);\n }\n\n getFlattened(): WorkspaceModel[] {\n let children = [];\n for (let child of this.children) {\n if (child instanceof WorkspaceCollectionModel) {\n children = children.concat(child.getFlattened());\n } else {\n children.push(child);\n }\n }\n return children;\n }\n\n replaceModel(oldModel: WorkspaceModel, newModel): this {\n let index = this.children.indexOf(oldModel);\n oldModel.delete();\n this.addModel(newModel, index);\n return this;\n }\n\n getModelBefore(model: WorkspaceModel) {\n const index = this.children.indexOf(model);\n if (index <= 0) {\n return null;\n }\n return this.children[index - 1];\n }\n\n getModelAfter(model: WorkspaceModel) {\n const index = this.children.indexOf(model);\n if (index >= this.children.length - 1) {\n return null;\n }\n return this.children[index + 1];\n }\n\n normalize() {\n if (this.parent && this.parent instanceof WorkspaceCollectionModel) {\n if (this.children.length === 0) {\n this.parent.removeModel(this);\n }\n }\n }\n\n removeModel(model: WorkspaceModel): this {\n let index = this.children.indexOf(model);\n if (index === -1) {\n console.log('could not find model');\n return this;\n }\n this.children.splice(index, 1);\n this.invalidateLayout();\n return this;\n }\n\n addModel(model: WorkspaceModel, position: number = null): this {\n if (this.children.indexOf(model) !== -1) {\n const pos = this.children.indexOf(model);\n this.children.splice(pos, 1);\n if (pos > position) {\n this.children.splice(position, 0, model);\n } else {\n this.children.splice(position - 1, 0, model);\n }\n } else {\n if (model.parent) {\n model.delete();\n }\n model.setParent(this);\n\n // allow a child to remove itself\n const listener = model.registerListener({\n removed: () => {\n listener();\n this.removeModel(model);\n this.iterateListeners((list) => {\n list.childRemoved?.(model);\n });\n },\n layoutInvalidated: () => {\n this.invalidateLayout();\n },\n dimensionsInvalidated: () => {\n this.invalidateDimensions();\n }\n });\n\n if (position === null) {\n this.children.push(model);\n } else {\n this.children.splice(position, 0, model);\n }\n }\n this.invalidateLayout();\n return this;\n }\n\n addModelBefore(relativeModel: WorkspaceModel, model: WorkspaceModel) {\n let index = this.children.indexOf(relativeModel);\n this.addModel(model, index);\n }\n\n addModelAfter(relativeModel: WorkspaceModel, model: WorkspaceModel) {\n let index = this.children.indexOf(relativeModel);\n this.addModel(model, index + 1);\n }\n\n getChildSibling(model: WorkspaceModel, alignment: Alignment): WorkspaceModel {\n return null;\n }\n}\n"]}

@@ -51,3 +51,3 @@ import * as React from 'react';

return (<S.Container ref={ref}>
{props.renderer ? (<DraggableWidget model={props.model} engine={props.engine}>
{props.renderer ? (<S.Title model={props.model} engine={props.engine}>
{props.renderer.renderTitleBar({

@@ -57,3 +57,3 @@ engine: props.engine,

})}
</DraggableWidget>) : null}
</S.Title>) : null}
<S.Content>

@@ -71,2 +71,4 @@ {factory.generateContent({

height: 100%;
min-height: 0;
min-width: 0;
width: 100%;

@@ -80,5 +82,12 @@ `;

height: 100%;
min-height: 0;
min-width: 0;
width: 100%;
overflow: hidden;
`;
S.Title = styled(DraggableWidget) `
flex-shrink: 0;
min-height: 0;
min-width: 0;
`;
S.Content = styled.div `

@@ -88,2 +97,4 @@ flex-grow: 1;

max-height: 100%;
min-height: 0;
min-width: 0;
overflow: hidden;

@@ -90,0 +101,0 @@ flex-direction: column;

@@ -1,1 +0,1 @@

{"version":3,"file":"WorkspaceNodeWidget.jsx","sourceRoot":"","sources":["../../../src/entities/node/WorkspaceNodeWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useEffect } from 'react';\nimport styled from '@emotion/styled';\nimport { WorkspaceEngine } from '../../core/WorkspaceEngine';\nimport { WorkspaceNodeFactory, WorkspaceNodePanelRenderer } from './WorkspaceNodeFactory';\nimport { WorkspaceNodeModel } from './WorkspaceNodeModel';\nimport { DraggableWidget } from '../../widgets/primitives/DraggableWidget';\nimport { WorkspaceModel } from '../../core-models/WorkspaceModel';\nimport { useModelElement } from '../../widgets/hooks/useModelElement';\nimport { DirectionalLayoutWidget } from '../../widgets/layouts/DirectionalLayoutWidget';\nimport { ResizeDimensionContainer } from './ResizeDimensionContainer';\n\nexport interface WorkspaceNodeWidgetProps {\n engine: WorkspaceEngine;\n factory: WorkspaceNodeFactory;\n model: WorkspaceNodeModel;\n generateDivider?: (divider: ResizeDimensionContainer) => React.JSX.Element;\n className?: any;\n}\n\nexport const WorkspaceNodeWidget: React.FC<WorkspaceNodeWidgetProps> = (props) => {\n const ref = useModelElement({\n engine: props.engine,\n model: props.model\n });\n useEffect(() => {\n const checkOverConstrain = () => {\n if (props.model.vertical) {\n props.model.setOverConstrained(ref.current.scrollHeight > props.model.r_dimensions.size.height);\n } else {\n props.model.setOverConstrained(ref.current.scrollWidth > props.model.r_dimensions.size.width);\n }\n };\n\n let l1 = props.model.r_dimensions.registerListener({\n updated: () => {\n checkOverConstrain();\n }\n });\n let l2 = props.model.registerListener({\n dimensionsInvalidated: () => {\n checkOverConstrain();\n }\n });\n\n return () => {\n l1();\n l2();\n };\n }, [props.model]);\n return (\n <S.DirectionalLayout\n forwardRef={ref}\n dimensionContainerForDivider={(index: number) => {\n return props.model.r_divisions[index];\n }}\n shouldModelExpand={(model) => {\n return props.model.shouldChildExpand(model);\n }}\n className={props.className}\n data={props.model.children}\n generateDivider={props.generateDivider}\n generateElement={(m) => {\n return (\n <WorkspaceNodePanelWidget model={m} renderer={props.factory.getRendererForModel(m)} engine={props.engine} />\n );\n }}\n vertical={props.model.vertical}\n engine={props.engine}\n />\n );\n};\n\nexport interface WorkspaceNodePanelWidgetProps {\n model: WorkspaceModel;\n renderer: WorkspaceNodePanelRenderer;\n engine: WorkspaceEngine;\n}\n\nexport const WorkspaceNodePanelWidget: React.FC<WorkspaceNodePanelWidgetProps> = (props) => {\n const factory = props.engine.getFactory(props.model);\n\n const ref = useModelElement({\n model: props.model,\n engine: props.engine\n });\n return (\n <S.Container ref={ref}>\n {props.renderer ? (\n <DraggableWidget model={props.model} engine={props.engine}>\n {props.renderer.renderTitleBar({\n engine: props.engine,\n model: props.model\n })}\n </DraggableWidget>\n ) : null}\n <S.Content>\n {factory.generateContent({\n model: props.model,\n engine: props.engine\n })}\n </S.Content>\n </S.Container>\n );\n};\nnamespace S {\n export const DirectionalLayout = styled(DirectionalLayoutWidget)`\n height: 100%;\n width: 100%;\n `;\n\n export const Container = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n max-height: 100%;\n height: 100%;\n width: 100%;\n overflow: hidden;\n `;\n\n export const Content = styled.div`\n flex-grow: 1;\n display: flex;\n max-height: 100%;\n overflow: hidden;\n flex-direction: column;\n `;\n}\n"]}
{"version":3,"file":"WorkspaceNodeWidget.jsx","sourceRoot":"","sources":["../../../src/entities/node/WorkspaceNodeWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useEffect } from 'react';\nimport styled from '@emotion/styled';\nimport { WorkspaceEngine } from '../../core/WorkspaceEngine';\nimport { WorkspaceNodeFactory, WorkspaceNodePanelRenderer } from './WorkspaceNodeFactory';\nimport { WorkspaceNodeModel } from './WorkspaceNodeModel';\nimport { DraggableWidget } from '../../widgets/primitives/DraggableWidget';\nimport { WorkspaceModel } from '../../core-models/WorkspaceModel';\nimport { useModelElement } from '../../widgets/hooks/useModelElement';\nimport { DirectionalLayoutWidget } from '../../widgets/layouts/DirectionalLayoutWidget';\nimport { ResizeDimensionContainer } from './ResizeDimensionContainer';\n\nexport interface WorkspaceNodeWidgetProps {\n engine: WorkspaceEngine;\n factory: WorkspaceNodeFactory;\n model: WorkspaceNodeModel;\n generateDivider?: (divider: ResizeDimensionContainer) => React.JSX.Element;\n className?: any;\n}\n\nexport const WorkspaceNodeWidget: React.FC<WorkspaceNodeWidgetProps> = (props) => {\n const ref = useModelElement({\n engine: props.engine,\n model: props.model\n });\n useEffect(() => {\n const checkOverConstrain = () => {\n if (props.model.vertical) {\n props.model.setOverConstrained(ref.current.scrollHeight > props.model.r_dimensions.size.height);\n } else {\n props.model.setOverConstrained(ref.current.scrollWidth > props.model.r_dimensions.size.width);\n }\n };\n\n let l1 = props.model.r_dimensions.registerListener({\n updated: () => {\n checkOverConstrain();\n }\n });\n let l2 = props.model.registerListener({\n dimensionsInvalidated: () => {\n checkOverConstrain();\n }\n });\n\n return () => {\n l1();\n l2();\n };\n }, [props.model]);\n return (\n <S.DirectionalLayout\n forwardRef={ref}\n dimensionContainerForDivider={(index: number) => {\n return props.model.r_divisions[index];\n }}\n shouldModelExpand={(model) => {\n return props.model.shouldChildExpand(model);\n }}\n className={props.className}\n data={props.model.children}\n generateDivider={props.generateDivider}\n generateElement={(m) => {\n return (\n <WorkspaceNodePanelWidget model={m} renderer={props.factory.getRendererForModel(m)} engine={props.engine} />\n );\n }}\n vertical={props.model.vertical}\n engine={props.engine}\n />\n );\n};\n\nexport interface WorkspaceNodePanelWidgetProps {\n model: WorkspaceModel;\n renderer: WorkspaceNodePanelRenderer;\n engine: WorkspaceEngine;\n}\n\nexport const WorkspaceNodePanelWidget: React.FC<WorkspaceNodePanelWidgetProps> = (props) => {\n const factory = props.engine.getFactory(props.model);\n\n const ref = useModelElement({\n model: props.model,\n engine: props.engine\n });\n return (\n <S.Container ref={ref}>\n {props.renderer ? (\n <S.Title model={props.model} engine={props.engine}>\n {props.renderer.renderTitleBar({\n engine: props.engine,\n model: props.model\n })}\n </S.Title>\n ) : null}\n <S.Content>\n {factory.generateContent({\n model: props.model,\n engine: props.engine\n })}\n </S.Content>\n </S.Container>\n );\n};\nnamespace S {\n export const DirectionalLayout = styled(DirectionalLayoutWidget)`\n height: 100%;\n min-height: 0;\n min-width: 0;\n width: 100%;\n `;\n\n export const Container = styled.div`\n display: flex;\n flex-direction: column;\n position: relative;\n max-height: 100%;\n height: 100%;\n min-height: 0;\n min-width: 0;\n width: 100%;\n overflow: hidden;\n `;\n\n export const Title = styled(DraggableWidget)`\n flex-shrink: 0;\n min-height: 0;\n min-width: 0;\n `;\n\n export const Content = styled.div`\n flex-grow: 1;\n display: flex;\n max-height: 100%;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n flex-direction: column;\n `;\n}\n"]}

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@projectstorm/react-workspaces-core"]=t():e["@projectstorm/react-workspaces-core"]=t()}(self,(()=>(()=>{"use strict";var e={n:t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},d:(t,i)=>{for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{Alignment:()=>p,Corner:()=>y,DebugLayer:()=>he,DebugLayerWidget:()=>ge,DebugPanel:()=>ue,DimensionContainer:()=>l,DimensionTrackingWidget:()=>V,DirectionChildWidget:()=>Ee,DirectionalLayoutWidget:()=>be,DividerWidget:()=>G,DraggableWidget:()=>Y,DropZoneDragContext:()=>_,DropzoneLogicWidget:()=>K,ExpandNodeModel:()=>De,ExpandNodeWidget:()=>Ae,Layer:()=>J,LayerManager:()=>Q,LayerManagerWidget:()=>me,LayerWidget:()=>pe,OrderingWidget:()=>oe,OrderingWidgetZone:()=>se,Position:()=>a,Size:()=>o,SmartOrderingWidget:()=>ae,SubComponentModelFactory:()=>ze,UseMouseDragEventsRootWidget:()=>D,WORKSPACE_MODEL_ID_MIME:()=>W,WORKSPACE_MODEL_MIME:()=>F,WorkspaceCollectionModel:()=>v,WorkspaceEngine:()=>Te,WorkspaceEngineError:()=>_e,WorkspaceModel:()=>u,WorkspaceModelFactory:()=>Oe,WorkspaceModelSize:()=>h,WorkspaceNodeFactory:()=>We,WorkspaceNodeModel:()=>ce,WorkspaceNodePanelWidget:()=>Ie,WorkspaceNodeWidget:()=>ke,WorkspaceWidget:()=>Me,getAlignmentInverted:()=>m,log:()=>w,overConstrainRecomputeBehavior:()=>Ne,regenerateIDs:()=>f,useDimensionLayoutInvalidator:()=>L,useDragOver:()=>I,useDragOverModel:()=>A,useDraggableModel:()=>N,useDroppable:()=>k,useDroppableModel:()=>H,useForceUpdate:()=>M,useModelElement:()=>R,useMouseDragDistance:()=>n,useMouseDragEvents:()=>T,useResizeObserver:()=>b,useScrollObserver:()=>O,useWindowResize:()=>E});const i=require("react"),n=e=>{(0,i.useEffect)((()=>{const t=t=>{var i;if(0!==t.button)return;null===(i=e.startMove)||void 0===i||i.call(e);const n=i=>{e.moved({event:i,distanceX:i.clientX-t.clientX,distanceY:i.clientY-t.clientY})},r=()=>{var t;null===(t=e.endMove)||void 0===t||t.call(e),window.removeEventListener("mouseup",r),window.removeEventListener("mousemove",n)};window.addEventListener("mouseup",r),window.addEventListener("mousemove",n)};return e.forwardRef.current.addEventListener("mousedown",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("mousedown",t)}}),[])},r=require("uuid");class s{constructor(){this.listeners={}}registerListener(e,t){const i=(0,r.v4)();return this.listeners[i]={l:e,meta:t},()=>{delete this.listeners[i]}}iterateListeners(e){for(let t in this.listeners)e(this.listeners[t].l)}}class o extends s{constructor(){super(),this._width=0,this._height=0}get width(){return this._width}get height(){return this._height}set width(e){this.update({width:e})}valid(){return this.getVolume()>0}set height(e){this.update({height:e})}get value(){return{width:this._width,height:this._height}}isPortrait(){return this.height>this.width}getVolume(){return this.width*this.height}trackSize(e){return this.update(e.value),e.registerListener({updated:()=>{this.update(e.value)}})}update(e){let t=!1,i={width:this._width,height:this._height};null!=e.width&&e.width!==this.width&&(this._width=e.width,t=!0),null!=e.height&&e.height!==this.height&&(this._height=e.height,t=!0),t&&this.iterateListeners((e=>{var t;return null===(t=e.updated)||void 0===t?void 0:t.call(e,{prev:i})}))}}class a extends s{constructor(){super(),this._top=0,this._left=0,this._bottom=0,this._right=0}get top(){return this._top}get left(){return this._left}get bottom(){return this._bottom}get right(){return this._right}getRelativeToPosition(e){return{top:this._top-e.top,left:this._left-e.left,right:this._right-e.right,bottom:this._bottom-e.bottom}}getRelativeToMousePosition(e){return{clientX:this._left-e.clientX,clientY:this._top-e.clientY}}update(e){let t=!1;null!=e[p.TOP]&&e[p.TOP]!==this._top&&(this._top=e[p.TOP],t=!0),null!=e[p.LEFT]&&e[p.LEFT]!==this._left&&(this._left=e[p.LEFT],t=!0),null!=e[p.BOTTOM]&&e[p.BOTTOM]!==this._bottom&&(this._bottom=e[p.BOTTOM],t=!0),null!=e[p.RIGHT]&&e[p.RIGHT]!==this._right&&(this._right=e[p.RIGHT],t=!0),t&&this.iterateListeners((e=>{var t;return null===(t=e.updated)||void 0===t?void 0:t.call(e)}))}}var d=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};class l extends s{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};super(),this.fireUpdated=()=>{this.iterateListeners((e=>{var t;return null===(t=e.updated)||void 0===t?void 0:t.call(e)}))},this.id=(0,r.v4)(),this.size=e.size||new o,this.position=e.position||new a,this.size.registerListener({updated:()=>{this.fireUpdated()}}),this.position.registerListener({updated:()=>{this.fireUpdated()}})}waitForSize(){return d(this,void 0,void 0,(function*(){return 0==this.size.getVolume()&&(yield new Promise((e=>{const t=this.registerListener({updated:()=>{this.size.getVolume()>0&&(t(),e())}})}))),this.size}))}get dimensions(){return{top:this.position.top,left:this.position.left,bottom:this.position.bottom,right:this.position.right,width:this.size.width,height:this.size.height}}isPortrait(){return this.size.isPortrait()}getVolume(){return this.size.getVolume()}invalidate(e){this.iterateListeners((t=>{var i;return null===(i=t.invalidate)||void 0===i?void 0:i.call(t,e)}))}update(e){this.size.update(e),this.position.update(e)}getRelativeToPosition(e){return this.position.getRelativeToPosition(e)}getRelativeToMousePosition(e){return this.position.getRelativeToMousePosition(e)}isAligned(e,t){const i=this.getRelativeToPosition(e.position)[t];return t===p.LEFT?i<=e.dimensions.width/2:t===p.RIGHT?i>e.dimensions.width/2:t===p.TOP?i<=e.dimensions.height/2:t===p.BOTTOM?i>e.dimensions.height/2:void 0}}var c=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};class h extends o{constructor(e,t){super(),this.min=e,this.max=t,this.min.registerListener({updated:()=>{this.update(this.value)}}),this.max.registerListener({updated:()=>{this.update(this.value)}})}update(e){null!=e.width&&(e.width<this.min.width?e.width=this.min.width:this.max.width>0&&e.width>this.max.width&&(e.width=this.max.width)),null!=e.height&&(e.height<this.min.height?e.height=this.min.height:this.max.height>0&&e.width>this.max.height&&(e.height=this.max.height)),super.update(e)}}class u extends s{constructor(e){super(),this.type=e,this.id=(0,r.v4)(),this.parent=null,this._expandHorizontal=!0,this._expandVertical=!0,this.minimumSize=new o,this.maximumSize=new o,this.size=new h(this.minimumSize,this.maximumSize),this.r_visible=!1,this.r_dimensions=new l,this.r_dimensions.registerListener({updated:()=>{0===this.size.width&&0===this.size.height&&this.setSize({width:this.r_dimensions.dimensions.width,height:this.r_dimensions.dimensions.height})}}),this.size.registerListener({updated:()=>{this.invalidateDimensions()}})}get expandHorizontal(){return this._expandHorizontal}set expandHorizontal(e){this._expandHorizontal=e}get expandVertical(){return this._expandVertical}set expandVertical(e){this._expandVertical=e}waitForInitialRenderedSize(){return c(this,void 0,void 0,(function*(){return new Promise((e=>{let t,i;t=this.r_dimensions.registerListener({updated:()=>{this.r_dimensions.size.width>0&&(e(this.r_dimensions.dimensions),null==t||t(),null==i||i())}}),i=this.registerListener({visibilityChanged:()=>{this.r_visible&&this.r_dimensions.invalidate(!0)}})}))}))}setWidth(e){this.setSize({width:e})}setHeight(e){this.setSize({height:e})}setSize(e){this.size.update(e)}getAllRenderDimensions(){return[this.r_dimensions]}invalidateDimensions(){this.iterateListeners((e=>{var t;return null===(t=e.dimensionsInvalidated)||void 0===t?void 0:t.call(e)}))}invalidateLayout(){this.iterateListeners((e=>{var t;return null===(t=e.layoutInvalidated)||void 0===t?void 0:t.call(e)}))}setVisible(e){this.r_visible!==e&&(this.r_visible=e,this.iterateListeners((e=>{var t;return null===(t=e.visibilityChanged)||void 0===t?void 0:t.call(e)})))}fireNodeRemoved(){this.iterateListeners((e=>{e.removed&&e.removed()}))}getSibling(e){return this.parent instanceof v?this.parent.getChildSibling(this,e):null}delete(){this.fireNodeRemoved()}hasParentID(e){return this.id===e||!!this.parent&&this.parent.hasParentID(e)}setParent(e){this.parent=e}getRootModel(){return this.parent?this.parent.getRootModel():this}setExpand(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this._expandHorizontal=e,this._expandVertical=t,this}flatten(){return[this]}toArray(){return{id:this.id,type:this.type,expandHorizontal:this._expandHorizontal,expandVertical:this._expandVertical,width:this.size.width,height:this.size.height}}fromArray(e,t){this.id=e.id,this._expandHorizontal=e.expandHorizontal,this._expandVertical=e.expandVertical,this.size.update({width:e.width,height:e.height})}}const g=require("lodash");class v extends u{constructor(e){super(e),this.children=[]}fromArray(e,t){super.fromArray(e,t);for(let i of e.children){let e;try{e=t.getFactory(i.type)}catch(e){continue}let n=e.generateModel();n.fromArray(i,t),this.addModel(n)}}toArray(){return Object.assign(Object.assign({},super.toArray()),{children:this.children.map((e=>e.toArray()))})}isFirstModel(e){return this.children[0].id===e.id}isLastModel(e){return this.children[this.children.length-1].id===e.id}flatten(){const e=g.flatMap(this.children.map((e=>e.flatten())));return super.flatten().concat(e)}getFlattened(){let e=[];for(let t of this.children)t instanceof v?e=e.concat(t.getFlattened()):e.push(t);return e}replaceModel(e,t){let i=this.children.indexOf(e);return e.delete(),this.addModel(t,i),this}getModelBefore(e){const t=this.children.indexOf(e);return t<=0?null:this.children[t-1]}getModelAfter(e){const t=this.children.indexOf(e);return t>=this.children.length-1?null:this.children[t+1]}normalize(){this.parent&&this.parent instanceof v&&0===this.children.length&&this.parent.removeModel(this)}removeModel(e){let t=this.children.indexOf(e);return-1===t?(console.log("could not find model"),this):(this.children.splice(t,1),this.invalidateLayout(),this)}addModel(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(-1!==this.children.indexOf(e)){const i=this.children.indexOf(e);this.children.splice(i,1),i>t?this.children.splice(t,0,e):this.children.splice(t-1,0,e)}else{e.parent&&e.delete(),e.setParent(this);const i=e.registerListener({removed:()=>{i(),this.removeModel(e),this.iterateListeners((t=>{var i;null===(i=t.childRemoved)||void 0===i||i.call(t,e)}))},layoutInvalidated:()=>{this.invalidateLayout()},dimensionsInvalidated:()=>{this.invalidateDimensions()}});null===t?this.children.push(e):this.children.splice(t,0,e)}return this.invalidateLayout(),this}addModelBefore(e,t){let i=this.children.indexOf(e);this.addModel(t,i)}addModelAfter(e,t){let i=this.children.indexOf(e);this.addModel(t,i+1)}getChildSibling(e,t){return null}}const f=e=>{e instanceof v&&e.children.forEach((e=>f(e))),e.id=(0,r.v4)()};var p;!function(e){e.TOP="top",e.LEFT="left",e.BOTTOM="bottom",e.RIGHT="right"}(p||(p={}));const m=e=>({[p.TOP]:p.BOTTOM,[p.BOTTOM]:p.TOP,[p.LEFT]:p.RIGHT,[p.RIGHT]:p.LEFT}[e]);var y;!function(e){e.TOP_LEFT="nw",e.TOP_RIGHT="ne",e.BOTTOM_RIGHT="se",e.BOTTOM_LEFT="sw"}(y||(y={}));const w=function(){for(var e=arguments.length,t=new Array(e),i=0;i<e;i++)t[i]=arguments[i];console.debug("[SRW] ",...t)},E=e=>{(0,i.useEffect)((()=>{const t=()=>{e.resized()};return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}}),[])},x=e=>{const t=(0,i.useCallback)((()=>{var t;if(!e.forwardRef.current)return;let i=e.forwardRef.current.getBoundingClientRect();const n={width:i.width,height:i.height,[p.TOP]:i.top,[p.LEFT]:i.left,[p.BOTTOM]:i.bottom,[p.RIGHT]:i.right};e.dimension.update((null===(t=e.transformer)||void 0===t?void 0:t.call(e,n))||n)}),[e.dimension]),n=(0,i.useCallback)(g.debounce((()=>{t()}),500,{leading:!0}),[e.dimension]),r=(0,i.useCallback)((()=>{e.ignoreDebounce?t():n(),t()}),[e.dimension,e.ignoreDebounce]);(0,i.useEffect)((()=>e.dimension.registerListener({invalidate:e=>{e?t():r()}})),[e.dimension]),E({resized:()=>{r()}}),(0,i.useEffect)((()=>{const t=new IntersectionObserver((()=>{r()}),{root:document.body});return t.observe(e.forwardRef.current),()=>{e.forwardRef.current&&t.unobserve(e.forwardRef.current),t.disconnect()}}),[e.dimension]),(0,i.useEffect)((()=>{r();const t=new ResizeObserver((()=>{r()}));return t.observe(e.forwardRef.current),()=>{e.forwardRef.current&&t.unobserve(e.forwardRef.current),t.disconnect()}}),[e.dimension])},L=e=>{(0,i.useEffect)((()=>{let t=null;const i=e.engine.registerListener({layoutInvalidated:()=>{t=e.engine.registerListener({layoutRepainted:()=>{null==t||t(),t=null,e.dimension.invalidate()}})}});return()=>{i(),null==t||t()}}),[e.dimension])},b=e=>{x(Object.assign(Object.assign({},e),{transformer:t=>Object.assign(Object.assign({},t),{[p.TOP]:t[p.TOP]-e.engine.workspaceContainer.position.top,[p.LEFT]:t[p.LEFT]-e.engine.workspaceContainer.position.left,[p.BOTTOM]:t[p.BOTTOM]-e.engine.workspaceContainer.position.bottom,[p.RIGHT]:t[p.RIGHT]-e.engine.workspaceContainer.position.right})})),L({engine:e.engine,dimension:e.dimension}),(0,i.useEffect)((()=>e.engine.workspaceContainer.registerListener({updated:()=>{e.dimension.invalidate()}})),[])},R=e=>{const t=i.useRef(null);return b({forwardRef:t,dimension:e.model.r_dimensions,engine:e.engine}),(0,i.useEffect)((()=>(e.model.setVisible(!0),()=>{e.model.setVisible(!1)})),[e.model]),t};function M(e){const[t,n]=(0,i.useState)(0);return()=>{if(e)return g.debounce((()=>{n((e=>e+1))}));n((e=>e+1))}}const O=e=>{(0,i.useEffect)((()=>{const t=()=>{e.dimension.invalidate()};return e.forwardRef.current.addEventListener("scroll",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("scroll",t)}}),[])},_=i.createContext(null),T=e=>{const t=(0,i.useContext)(_);(0,i.useEffect)((()=>{const i=i=>{var n;t.increment(),null===(n=e.mouseEnter)||void 0===n||n.call(e)},n=()=>{var i;t.decrement(),null===(i=e.mouseExit)||void 0===i||i.call(e)};return e.forwardRef.current.addEventListener("dragenter",i),e.forwardRef.current.addEventListener("dragleave",n),e.forwardRef.current.addEventListener("drop",n),()=>{var t,r,s;null===(t=e.forwardRef.current)||void 0===t||t.removeEventListener("dragenter",i),null===(r=e.forwardRef.current)||void 0===r||r.removeEventListener("dragleave",n),null===(s=e.forwardRef.current)||void 0===s||s.removeEventListener("drop",n)}}),[])},C=e=>(T({forwardRef:e.forwardRef}),e.children),D=e=>{const t=(0,i.useRef)(0);return i.createElement(_.Provider,{value:{increment:()=>{var i;t.current=t.current+1,t.current>0&&(null===(i=e.mouseEnter)||void 0===i||i.call(e))},decrement:()=>{var i;t.current=t.current-1,0===t.current&&(null===(i=e.mouseExit)||void 0===i||i.call(e))}}},i.createElement(C,e,e.children))};var z=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};const k=e=>{(0,i.useEffect)((()=>{const t=t=>z(void 0,void 0,void 0,(function*(){let i={};for(let e of t.dataTransfer.types){let n=t.dataTransfer.getData(e);try{i[e]=JSON.parse(n)}catch(e){console.warn("Failed to deserialize draggable object",e)}}w("dropped data:",i),e.dropped(i,{position:t,isCopy:"copy"===t.dataTransfer.effectAllowed})}));return e.forwardRef.current.addEventListener("drop",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("drop",t)}}),[e.forwardRef])},I=e=>{(0,i.useEffect)((()=>{const t=t=>{var i;let n=!1;for(let i=0;i<t.dataTransfer.types.length;++i)e.acceptedTypes.some((e=>t.dataTransfer.types[i].startsWith(e)))&&(n=!0);n&&(e.accept&&t.preventDefault(),null===(i=e.dragOver)||void 0===i||i.call(e,t.dataTransfer.types))};return e.forwardRef.current.addEventListener("dragover",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("dragover",t)}}),[e.forwardRef])};var P=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};const S=e=>{(0,i.useEffect)((()=>{const t=t=>{t.stopPropagation();const i=e.encode();if(i){t.dataTransfer.dropEffect="none",t.altKey?(w("dragging as a copy operation"),t.dataTransfer.effectAllowed="copy"):t.dataTransfer.effectAllowed="move";for(let e in i)w(`setting up mime: ${e}`),t.dataTransfer.setData(e,JSON.stringify(i[e]))}},i=t=>P(void 0,void 0,void 0,(function*(){"none"!==t.dataTransfer.dropEffect?e.dragend({copy:"copy"===t.dataTransfer.dropEffect,success:!0}):e.dragend({copy:!1,success:!1})}));return e.forwardRef.current.addEventListener("dragstart",t),e.forwardRef.current.addEventListener("dragend",i),()=>{var n,r;null===(n=e.forwardRef.current)||void 0===n||n.removeEventListener("dragstart",t),null===(r=e.forwardRef.current)||void 0===r||r.removeEventListener("dragend",i)}}),[e.forwardRef])},A=e=>{I({acceptedTypes:[F],accept:e.accept,dragOver:t=>{var i;const n=t.find((e=>e.startsWith(W)));if(!n)return;const r=n.substring(W.length);null===(i=e.dragOver)||void 0===i||i.call(e,{modelID:r})},forwardRef:e.forwardRef})},F="srw/model",W="srw/modelid/",N=e=>{S({encode:()=>({[F]:e.model.toArray(),[W+e.model.id]:e.model.id}),dragend:t=>{let{copy:i,success:n}=t;n&&!i&&(e.engine.draggingID||(e.model.delete(),e.engine.normalize())),e.engine.setDraggingNode(null)},forwardRef:e.forwardRef})},H=e=>{A({dragOver:e.onDragover,forwardRef:e.forwardRef,accept:!0}),k({dropped:(t,i)=>{let n=e.engine.getFactory(t[F].type).generateModel();if(n.fromArray(t[F],e.engine),i.isCopy)w("was a copy operation, regenerating ids"),f(n);else{const t=e.engine.rootModel.flatten().find((e=>e.id===n.id));n=t||n}w("workspace model dropped",n),e.onDrop(n)},forwardRef:e.forwardRef})},j=require("@emotion/styled");var $=e.n(j);const V=e=>{const t=M();return(0,i.useEffect)((()=>(g.defer((()=>{t()})),e.dimension.registerListener({updated:()=>{t()}}))),[e.dimension]),i.createElement(B.Container,{ref:e.forwardRef,className:e.className,d:e.dimension.dimensions,animate:e.animateDuration||0},e.children)};var B;!function(e){e.Container=$().div`
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@projectstorm/react-workspaces-core"]=t():e["@projectstorm/react-workspaces-core"]=t()}(self,(()=>(()=>{"use strict";var e={n:t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},d:(t,i)=>{for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{Alignment:()=>m,Corner:()=>w,DebugLayer:()=>he,DebugLayerWidget:()=>ge,DebugPanel:()=>ue,DimensionContainer:()=>l,DimensionTrackingWidget:()=>V,DirectionChildWidget:()=>Ee,DirectionalLayoutWidget:()=>be,DividerWidget:()=>G,DraggableWidget:()=>Y,DropZoneDragContext:()=>_,DropzoneLogicWidget:()=>K,ExpandNodeModel:()=>De,ExpandNodeWidget:()=>Fe,Layer:()=>J,LayerManager:()=>Q,LayerManagerWidget:()=>pe,LayerWidget:()=>me,OrderingWidget:()=>oe,OrderingWidgetZone:()=>se,Position:()=>a,Size:()=>o,SmartOrderingWidget:()=>ae,SubComponentModelFactory:()=>ze,UseMouseDragEventsRootWidget:()=>D,WORKSPACE_MODEL_ID_MIME:()=>W,WORKSPACE_MODEL_MIME:()=>A,WorkspaceCollectionModel:()=>v,WorkspaceEngine:()=>Te,WorkspaceEngineError:()=>_e,WorkspaceModel:()=>u,WorkspaceModelFactory:()=>Oe,WorkspaceModelSize:()=>h,WorkspaceNodeFactory:()=>We,WorkspaceNodeModel:()=>ce,WorkspaceNodePanelWidget:()=>Ie,WorkspaceNodeWidget:()=>ke,WorkspaceWidget:()=>Me,getAlignmentInverted:()=>p,log:()=>y,overConstrainRecomputeBehavior:()=>Ne,regenerateIDs:()=>f,useDimensionLayoutInvalidator:()=>L,useDragOver:()=>I,useDragOverModel:()=>F,useDraggableModel:()=>N,useDroppable:()=>k,useDroppableModel:()=>H,useForceUpdate:()=>M,useModelElement:()=>R,useMouseDragDistance:()=>n,useMouseDragEvents:()=>T,useResizeObserver:()=>b,useScrollObserver:()=>O,useWindowResize:()=>E});const i=require("react"),n=e=>{(0,i.useEffect)((()=>{const t=t=>{var i;if(0!==t.button)return;null===(i=e.startMove)||void 0===i||i.call(e);const n=i=>{e.moved({event:i,distanceX:i.clientX-t.clientX,distanceY:i.clientY-t.clientY})},r=()=>{var t;null===(t=e.endMove)||void 0===t||t.call(e),window.removeEventListener("mouseup",r),window.removeEventListener("mousemove",n)};window.addEventListener("mouseup",r),window.addEventListener("mousemove",n)};return e.forwardRef.current.addEventListener("mousedown",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("mousedown",t)}}),[])},r=require("uuid");class s{constructor(){this.listeners={}}registerListener(e,t){const i=(0,r.v4)();return this.listeners[i]={l:e,meta:t},()=>{delete this.listeners[i]}}iterateListeners(e){for(let t in this.listeners)e(this.listeners[t].l)}}class o extends s{constructor(){super(),this._width=0,this._height=0}get width(){return this._width}get height(){return this._height}set width(e){this.update({width:e})}valid(){return this.getVolume()>0}set height(e){this.update({height:e})}get value(){return{width:this._width,height:this._height}}isPortrait(){return this.height>this.width}getVolume(){return this.width*this.height}trackSize(e){return this.update(e.value),e.registerListener({updated:()=>{this.update(e.value)}})}update(e){let t=!1,i={width:this._width,height:this._height};null!=e.width&&e.width!==this.width&&(this._width=e.width,t=!0),null!=e.height&&e.height!==this.height&&(this._height=e.height,t=!0),t&&this.iterateListeners((e=>{var t;return null===(t=e.updated)||void 0===t?void 0:t.call(e,{prev:i})}))}}class a extends s{constructor(){super(),this._top=0,this._left=0,this._bottom=0,this._right=0}get top(){return this._top}get left(){return this._left}get bottom(){return this._bottom}get right(){return this._right}getRelativeToPosition(e){return{top:this._top-e.top,left:this._left-e.left,right:this._right-e.right,bottom:this._bottom-e.bottom}}getRelativeToMousePosition(e){return{clientX:this._left-e.clientX,clientY:this._top-e.clientY}}update(e){let t=!1;null!=e[m.TOP]&&e[m.TOP]!==this._top&&(this._top=e[m.TOP],t=!0),null!=e[m.LEFT]&&e[m.LEFT]!==this._left&&(this._left=e[m.LEFT],t=!0),null!=e[m.BOTTOM]&&e[m.BOTTOM]!==this._bottom&&(this._bottom=e[m.BOTTOM],t=!0),null!=e[m.RIGHT]&&e[m.RIGHT]!==this._right&&(this._right=e[m.RIGHT],t=!0),t&&this.iterateListeners((e=>{var t;return null===(t=e.updated)||void 0===t?void 0:t.call(e)}))}}var d=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};class l extends s{constructor(e={}){super(),this.fireUpdated=()=>{this.iterateListeners((e=>{var t;return null===(t=e.updated)||void 0===t?void 0:t.call(e)}))},this.id=(0,r.v4)(),this.size=e.size||new o,this.position=e.position||new a,this.size.registerListener({updated:()=>{this.fireUpdated()}}),this.position.registerListener({updated:()=>{this.fireUpdated()}})}waitForSize(){return d(this,void 0,void 0,(function*(){return 0==this.size.getVolume()&&(yield new Promise((e=>{const t=this.registerListener({updated:()=>{this.size.getVolume()>0&&(t(),e())}})}))),this.size}))}get dimensions(){return{top:this.position.top,left:this.position.left,bottom:this.position.bottom,right:this.position.right,width:this.size.width,height:this.size.height}}isPortrait(){return this.size.isPortrait()}getVolume(){return this.size.getVolume()}invalidate(e){this.iterateListeners((t=>{var i;return null===(i=t.invalidate)||void 0===i?void 0:i.call(t,e)}))}update(e){this.size.update(e),this.position.update(e)}getRelativeToPosition(e){return this.position.getRelativeToPosition(e)}getRelativeToMousePosition(e){return this.position.getRelativeToMousePosition(e)}isAligned(e,t){const i=this.getRelativeToPosition(e.position)[t];return t===m.LEFT?i<=e.dimensions.width/2:t===m.RIGHT?i>e.dimensions.width/2:t===m.TOP?i<=e.dimensions.height/2:t===m.BOTTOM?i>e.dimensions.height/2:void 0}}var c=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};class h extends o{constructor(e,t){super(),this.min=e,this.max=t,this.min.registerListener({updated:()=>{this.update(this.value)}}),this.max.registerListener({updated:()=>{this.update(this.value)}})}update(e){null!=e.width&&(e.width<this.min.width?e.width=this.min.width:this.max.width>0&&e.width>this.max.width&&(e.width=this.max.width)),null!=e.height&&(e.height<this.min.height?e.height=this.min.height:this.max.height>0&&e.width>this.max.height&&(e.height=this.max.height)),super.update(e)}}class u extends s{constructor(e){super(),this.type=e,this.id=(0,r.v4)(),this.parent=null,this._expandHorizontal=!0,this._expandVertical=!0,this.minimumSize=new o,this.maximumSize=new o,this.size=new h(this.minimumSize,this.maximumSize),this.r_visible=!1,this.r_dimensions=new l,this.r_dimensions.registerListener({updated:()=>{0===this.size.width&&0===this.size.height&&this.setSize({width:this.r_dimensions.dimensions.width,height:this.r_dimensions.dimensions.height})}}),this.size.registerListener({updated:()=>{this.invalidateDimensions()}})}get expandHorizontal(){return this._expandHorizontal}set expandHorizontal(e){this._expandHorizontal=e}get expandVertical(){return this._expandVertical}set expandVertical(e){this._expandVertical=e}waitForInitialRenderedSize(){return c(this,void 0,void 0,(function*(){return new Promise((e=>{let t,i;t=this.r_dimensions.registerListener({updated:()=>{this.r_dimensions.size.width>0&&(e(this.r_dimensions.dimensions),null==t||t(),null==i||i())}}),i=this.registerListener({visibilityChanged:()=>{this.r_visible&&this.r_dimensions.invalidate(!0)}})}))}))}setWidth(e){this.setSize({width:e})}setHeight(e){this.setSize({height:e})}setSize(e){this.size.update(e)}getAllRenderDimensions(){return[this.r_dimensions]}invalidateDimensions(){this.iterateListeners((e=>{var t;return null===(t=e.dimensionsInvalidated)||void 0===t?void 0:t.call(e)}))}invalidateLayout(){this.iterateListeners((e=>{var t;return null===(t=e.layoutInvalidated)||void 0===t?void 0:t.call(e)}))}setVisible(e){this.r_visible!==e&&(this.r_visible=e,this.iterateListeners((e=>{var t;return null===(t=e.visibilityChanged)||void 0===t?void 0:t.call(e)})))}fireNodeRemoved(){this.iterateListeners((e=>{e.removed&&e.removed()}))}getSibling(e){return this.parent instanceof v?this.parent.getChildSibling(this,e):null}delete(){this.fireNodeRemoved()}hasParentID(e){return this.id===e||!!this.parent&&this.parent.hasParentID(e)}setParent(e){this.parent=e}getRootModel(){return this.parent?this.parent.getRootModel():this}setExpand(e=!0,t=!0){return this._expandHorizontal=e,this._expandVertical=t,this}flatten(){return[this]}toArray(){return{id:this.id,type:this.type,expandHorizontal:this._expandHorizontal,expandVertical:this._expandVertical,width:this.size.width,height:this.size.height}}fromArray(e,t){this.id=e.id,this._expandHorizontal=e.expandHorizontal,this._expandVertical=e.expandVertical,this.size.update({width:e.width,height:e.height})}}const g=require("lodash");class v extends u{constructor(e){super(e),this.children=[]}fromArray(e,t){super.fromArray(e,t);for(let i of e.children){let e;try{e=t.getFactory(i.type)}catch(e){continue}let n=e.generateModel();n.fromArray(i,t),this.addModel(n)}}toArray(){return Object.assign(Object.assign({},super.toArray()),{children:this.children.map((e=>e.toArray()))})}isFirstModel(e){return this.children[0].id===e.id}isLastModel(e){return this.children[this.children.length-1].id===e.id}flatten(){const e=g.flatMap(this.children.map((e=>e.flatten())));return super.flatten().concat(e)}getFlattened(){let e=[];for(let t of this.children)t instanceof v?e=e.concat(t.getFlattened()):e.push(t);return e}replaceModel(e,t){let i=this.children.indexOf(e);return e.delete(),this.addModel(t,i),this}getModelBefore(e){const t=this.children.indexOf(e);return t<=0?null:this.children[t-1]}getModelAfter(e){const t=this.children.indexOf(e);return t>=this.children.length-1?null:this.children[t+1]}normalize(){this.parent&&this.parent instanceof v&&0===this.children.length&&this.parent.removeModel(this)}removeModel(e){let t=this.children.indexOf(e);return-1===t?(console.log("could not find model"),this):(this.children.splice(t,1),this.invalidateLayout(),this)}addModel(e,t=null){if(-1!==this.children.indexOf(e)){const i=this.children.indexOf(e);this.children.splice(i,1),i>t?this.children.splice(t,0,e):this.children.splice(t-1,0,e)}else{e.parent&&e.delete(),e.setParent(this);const i=e.registerListener({removed:()=>{i(),this.removeModel(e),this.iterateListeners((t=>{var i;null===(i=t.childRemoved)||void 0===i||i.call(t,e)}))},layoutInvalidated:()=>{this.invalidateLayout()},dimensionsInvalidated:()=>{this.invalidateDimensions()}});null===t?this.children.push(e):this.children.splice(t,0,e)}return this.invalidateLayout(),this}addModelBefore(e,t){let i=this.children.indexOf(e);this.addModel(t,i)}addModelAfter(e,t){let i=this.children.indexOf(e);this.addModel(t,i+1)}getChildSibling(e,t){return null}}const f=e=>{e instanceof v&&e.children.forEach((e=>f(e))),e.id=(0,r.v4)()};var m;!function(e){e.TOP="top",e.LEFT="left",e.BOTTOM="bottom",e.RIGHT="right"}(m||(m={}));const p=e=>({[m.TOP]:m.BOTTOM,[m.BOTTOM]:m.TOP,[m.LEFT]:m.RIGHT,[m.RIGHT]:m.LEFT}[e]);var w;!function(e){e.TOP_LEFT="nw",e.TOP_RIGHT="ne",e.BOTTOM_RIGHT="se",e.BOTTOM_LEFT="sw"}(w||(w={}));const y=(...e)=>{console.debug("[SRW] ",...e)},E=e=>{(0,i.useEffect)((()=>{const t=()=>{e.resized()};return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}}),[])},x=e=>{const t=(0,i.useCallback)((()=>{var t;if(!e.forwardRef.current)return;let i=e.forwardRef.current.getBoundingClientRect();const n={width:i.width,height:i.height,[m.TOP]:i.top,[m.LEFT]:i.left,[m.BOTTOM]:i.bottom,[m.RIGHT]:i.right};e.dimension.update((null===(t=e.transformer)||void 0===t?void 0:t.call(e,n))||n)}),[e.dimension]),n=(0,i.useCallback)(g.debounce((()=>{t()}),500,{leading:!0}),[e.dimension]),r=(0,i.useCallback)((()=>{e.ignoreDebounce?t():n(),t()}),[e.dimension,e.ignoreDebounce]);(0,i.useEffect)((()=>e.dimension.registerListener({invalidate:e=>{e?t():r()}})),[e.dimension]),E({resized:()=>{r()}}),(0,i.useEffect)((()=>{const t=new IntersectionObserver((()=>{r()}),{root:document.body});return t.observe(e.forwardRef.current),()=>{e.forwardRef.current&&t.unobserve(e.forwardRef.current),t.disconnect()}}),[e.dimension]),(0,i.useEffect)((()=>{r();const t=new ResizeObserver((()=>{r()}));return t.observe(e.forwardRef.current),()=>{e.forwardRef.current&&t.unobserve(e.forwardRef.current),t.disconnect()}}),[e.dimension])},L=e=>{(0,i.useEffect)((()=>{let t=null;const i=e.engine.registerListener({layoutInvalidated:()=>{t=e.engine.registerListener({layoutRepainted:()=>{null==t||t(),t=null,e.dimension.invalidate()}})}});return()=>{i(),null==t||t()}}),[e.dimension])},b=e=>{x(Object.assign(Object.assign({},e),{transformer:t=>Object.assign(Object.assign({},t),{[m.TOP]:t[m.TOP]-e.engine.workspaceContainer.position.top,[m.LEFT]:t[m.LEFT]-e.engine.workspaceContainer.position.left,[m.BOTTOM]:t[m.BOTTOM]-e.engine.workspaceContainer.position.bottom,[m.RIGHT]:t[m.RIGHT]-e.engine.workspaceContainer.position.right})})),L({engine:e.engine,dimension:e.dimension}),(0,i.useEffect)((()=>e.engine.workspaceContainer.registerListener({updated:()=>{e.dimension.invalidate()}})),[])},R=e=>{const t=i.useRef(null);return b({forwardRef:t,dimension:e.model.r_dimensions,engine:e.engine}),(0,i.useEffect)((()=>(e.model.setVisible(!0),()=>{e.model.setVisible(!1)})),[e.model]),t};function M(e){const[t,n]=(0,i.useState)(0);return()=>{if(e)return g.debounce((()=>{n((e=>e+1))}));n((e=>e+1))}}const O=e=>{(0,i.useEffect)((()=>{const t=()=>{e.dimension.invalidate()};return e.forwardRef.current.addEventListener("scroll",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("scroll",t)}}),[])},_=i.createContext(null),T=e=>{const t=(0,i.useContext)(_);(0,i.useEffect)((()=>{const i=i=>{var n;t.increment(),null===(n=e.mouseEnter)||void 0===n||n.call(e)},n=()=>{var i;t.decrement(),null===(i=e.mouseExit)||void 0===i||i.call(e)};return e.forwardRef.current.addEventListener("dragenter",i),e.forwardRef.current.addEventListener("dragleave",n),e.forwardRef.current.addEventListener("drop",n),()=>{var t,r,s;null===(t=e.forwardRef.current)||void 0===t||t.removeEventListener("dragenter",i),null===(r=e.forwardRef.current)||void 0===r||r.removeEventListener("dragleave",n),null===(s=e.forwardRef.current)||void 0===s||s.removeEventListener("drop",n)}}),[])},C=e=>(T({forwardRef:e.forwardRef}),e.children),D=e=>{const t=(0,i.useRef)(0);return i.createElement(_.Provider,{value:{increment:()=>{var i;t.current=t.current+1,t.current>0&&(null===(i=e.mouseEnter)||void 0===i||i.call(e))},decrement:()=>{var i;t.current=t.current-1,0===t.current&&(null===(i=e.mouseExit)||void 0===i||i.call(e))}}},i.createElement(C,e,e.children))};var z=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};const k=e=>{(0,i.useEffect)((()=>{const t=t=>z(void 0,void 0,void 0,(function*(){let i={};for(let e of t.dataTransfer.types){let n=t.dataTransfer.getData(e);try{i[e]=JSON.parse(n)}catch(e){console.warn("Failed to deserialize draggable object",e)}}y("dropped data:",i),e.dropped(i,{position:t,isCopy:"copy"===t.dataTransfer.effectAllowed})}));return e.forwardRef.current.addEventListener("drop",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("drop",t)}}),[e.forwardRef])},I=e=>{(0,i.useEffect)((()=>{const t=t=>{var i;let n=!1;for(let i=0;i<t.dataTransfer.types.length;++i)e.acceptedTypes.some((e=>t.dataTransfer.types[i].startsWith(e)))&&(n=!0);n&&(e.accept&&t.preventDefault(),null===(i=e.dragOver)||void 0===i||i.call(e,t.dataTransfer.types))};return e.forwardRef.current.addEventListener("dragover",t),()=>{var i;null===(i=e.forwardRef.current)||void 0===i||i.removeEventListener("dragover",t)}}),[e.forwardRef])};var P=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};const S=e=>{(0,i.useEffect)((()=>{const t=t=>{t.stopPropagation();const i=e.encode();if(i){t.dataTransfer.dropEffect="none",t.altKey?(y("dragging as a copy operation"),t.dataTransfer.effectAllowed="copy"):t.dataTransfer.effectAllowed="move";for(let e in i)y(`setting up mime: ${e}`),t.dataTransfer.setData(e,JSON.stringify(i[e]))}},i=t=>P(void 0,void 0,void 0,(function*(){"none"!==t.dataTransfer.dropEffect?e.dragend({copy:"copy"===t.dataTransfer.dropEffect,success:!0}):e.dragend({copy:!1,success:!1})}));return e.forwardRef.current.addEventListener("dragstart",t),e.forwardRef.current.addEventListener("dragend",i),()=>{var n,r;null===(n=e.forwardRef.current)||void 0===n||n.removeEventListener("dragstart",t),null===(r=e.forwardRef.current)||void 0===r||r.removeEventListener("dragend",i)}}),[e.forwardRef])},F=e=>{I({acceptedTypes:[A],accept:e.accept,dragOver:t=>{var i;const n=t.find((e=>e.startsWith(W)));if(!n)return;const r=n.substring(W.length);null===(i=e.dragOver)||void 0===i||i.call(e,{modelID:r})},forwardRef:e.forwardRef})},A="srw/model",W="srw/modelid/",N=e=>{S({encode:()=>({[A]:e.model.toArray(),[W+e.model.id]:e.model.id}),dragend:({copy:t,success:i})=>{i&&!t&&(e.engine.draggingID||(e.model.delete(),e.engine.normalize())),e.engine.setDraggingNode(null)},forwardRef:e.forwardRef})},H=e=>{F({dragOver:e.onDragover,forwardRef:e.forwardRef,accept:!0}),k({dropped:(t,i)=>{let n=e.engine.getFactory(t[A].type).generateModel();if(n.fromArray(t[A],e.engine),i.isCopy)y("was a copy operation, regenerating ids"),f(n);else{const t=e.engine.rootModel.flatten().find((e=>e.id===n.id));n=t||n}y("workspace model dropped",n),e.onDrop(n)},forwardRef:e.forwardRef})},j=require("@emotion/styled");var $=e.n(j);const V=e=>{const t=M();return(0,i.useEffect)((()=>(g.defer((()=>{t()})),e.dimension.registerListener({updated:()=>{t()}}))),[e.dimension]),i.createElement(B.Container,{ref:e.forwardRef,className:e.className,d:e.dimension.dimensions,animate:e.animateDuration||0},e.children)};var B;!function(e){e.Container=$().div`
position: absolute;

@@ -35,3 +35,3 @@ width: ${e=>e.d.width}px;

flex-shrink: 0;
`}(de||(de={}));class le extends l{constructor(){super(),this.hover=!1,this.active=!1}setHover(e){this.hover!==e&&(this.hover=e,this.iterateListeners((e=>{var t;return null===(t=e.hoverChanged)||void 0===t?void 0:t.call(e)})))}setActive(e){this.active!==e&&(this.active=e,this.iterateListeners((e=>{var t;return null===(t=e.activeChanged)||void 0===t?void 0:t.call(e)})))}}class ce extends v{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:ce.NAME),this.vertical=!0,this.r_divisions=[],this.r_overConstrained=!1}normalize(){super.normalize(),this.parent&&this.parent instanceof v&&1===this.children.length&&(this.children[0].size.update(this.size.value),this.parent.replaceModel(this,this.children[0]))}setOverConstrained(e){this.r_overConstrained!==e&&(this.r_overConstrained=e,this.iterateListeners((e=>{var t;return null===(t=e.overConstrainedChanged)||void 0===t?void 0:t.call(e)})))}toArray(){return Object.assign(Object.assign({},super.toArray()),{vertical:this.vertical})}fromArray(e,t){super.fromArray(e,t),this.vertical=e.vertical}getResizeDivisions(){let e=[];for(let t=1;t<this.r_divisions.length-1;t++){if(this.vertical){if(this.children[t-1].expandVertical&&this.children[t].expandVertical)continue}else if(this.children[t-1].expandHorizontal&&this.children[t].expandHorizontal)continue;e.push({before:this.children[t-1],after:this.children[t],dimensions:this.r_divisions[t],vertical:!this.vertical})}return e}shouldChildExpand(e){return this.vertical?e.expandVertical:e.expandHorizontal}getAllRenderDimensions(){return super.getAllRenderDimensions().concat(Array.from(this.r_divisions.values()))}recomputeDivisions(){this.r_divisions=this.children.map((e=>new le)).concat(new le),this.iterateListeners((e=>{var t;return null===(t=e.divisionsRecomputed)||void 0===t?void 0:t.call(e)}))}addModel(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return super.addModel(e,t),this.recomputeDivisions(),this.invalidateLayout(),this}removeModel(e){return super.removeModel(e),this.recomputeDivisions(),this.invalidateLayout(),this}shouldExpand(){return this.vertical?this.expandHorizontal:this.expandVertical}setVertical(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.vertical=e,this}setHorizontal(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.vertical=!e,this}getChildSibling(e,t){return this.vertical&&t===p.TOP?this.getModelBefore(e):this.vertical&&t===p.BOTTOM?this.getModelAfter(e):this.vertical||t!==p.LEFT?this.vertical||t!==p.RIGHT?null:this.getModelAfter(e):this.getModelBefore(e)}}ce.NAME="srw-node";class he extends J{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{panels:!0};super({mouseEvents:!1}),this.debugOptions=e;const t=this.registerListener({removed:()=>{this.l1(),t()}})}setLayerManager(e){super.setLayerManager(e),this.l1=this.layerManager.registerListener({layerAdded:()=>{g.defer((()=>{this.moveToTop()}))}})}updateOptions(e){this.debugOptions=Object.assign(Object.assign({},this.debugOptions),e),this.repaint()}renderLayer(e){return i.createElement(ge,{options:this.debugOptions,engine:e.engine,model:e.model})}}const ue=e=>{const t=M();return(0,i.useEffect)((()=>e.model.registerListener({visibilityChanged:()=>{t()}})),[]),e.model.r_visible?i.createElement(ve.Outline2,{dimension:e.model.r_dimensions},i.createElement(ve.DebugID,null,e.model.id.substring(0,7))):null},ge=e=>{var t,n,r;const s=M(!0);return(0,i.useEffect)((()=>{e.model.registerListener({layoutInvalidated:()=>{s()},dimensionsInvalidated:()=>{s()}})}),[]),i.createElement(i.Fragment,null,(null===(t=e.options)||void 0===t?void 0:t.panels)?e.model.flatten().filter((e=>!(e instanceof v))).map((e=>i.createElement(ue,{model:e,key:e.id}))):[],(null===(n=e.options)||void 0===n?void 0:n.dividers)?e.model.flatten().filter((e=>e instanceof ce)).flatMap((e=>e.r_divisions)).map((e=>i.createElement(ve.Outline,{dimension:e,key:e.id}))):[],(null===(r=e.options)||void 0===r?void 0:r.resizeDividers)?e.model.flatten().filter((e=>e instanceof ce)).flatMap((e=>e.getResizeDivisions())).map((e=>i.createElement(ve.Outline,{dimension:e.dimensions,key:e.dimensions.id}))):[])};var ve;function fe(){return fe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},fe.apply(null,arguments)}!function(e){e.Outline=$()(V)`
`}(de||(de={}));class le extends l{constructor(){super(),this.hover=!1,this.active=!1}setHover(e){this.hover!==e&&(this.hover=e,this.iterateListeners((e=>{var t;return null===(t=e.hoverChanged)||void 0===t?void 0:t.call(e)})))}setActive(e){this.active!==e&&(this.active=e,this.iterateListeners((e=>{var t;return null===(t=e.activeChanged)||void 0===t?void 0:t.call(e)})))}}class ce extends v{constructor(e=ce.NAME){super(e),this.vertical=!0,this.r_divisions=[],this.r_overConstrained=!1}normalize(){super.normalize(),this.parent&&this.parent instanceof v&&1===this.children.length&&(this.children[0].size.update(this.size.value),this.parent.replaceModel(this,this.children[0]))}setOverConstrained(e){this.r_overConstrained!==e&&(this.r_overConstrained=e,this.iterateListeners((e=>{var t;return null===(t=e.overConstrainedChanged)||void 0===t?void 0:t.call(e)})))}toArray(){return Object.assign(Object.assign({},super.toArray()),{vertical:this.vertical})}fromArray(e,t){super.fromArray(e,t),this.vertical=e.vertical}getResizeDivisions(){let e=[];for(let t=1;t<this.r_divisions.length-1;t++){if(this.vertical){if(this.children[t-1].expandVertical&&this.children[t].expandVertical)continue}else if(this.children[t-1].expandHorizontal&&this.children[t].expandHorizontal)continue;e.push({before:this.children[t-1],after:this.children[t],dimensions:this.r_divisions[t],vertical:!this.vertical})}return e}shouldChildExpand(e){return this.vertical?e.expandVertical:e.expandHorizontal}getAllRenderDimensions(){return super.getAllRenderDimensions().concat(Array.from(this.r_divisions.values()))}recomputeDivisions(){this.r_divisions=this.children.map((e=>new le)).concat(new le),this.iterateListeners((e=>{var t;return null===(t=e.divisionsRecomputed)||void 0===t?void 0:t.call(e)}))}addModel(e,t=null){return super.addModel(e,t),this.recomputeDivisions(),this.invalidateLayout(),this}removeModel(e){return super.removeModel(e),this.recomputeDivisions(),this.invalidateLayout(),this}shouldExpand(){return this.vertical?this.expandHorizontal:this.expandVertical}setVertical(e=!0){return this.vertical=e,this}setHorizontal(e=!0){return this.vertical=!e,this}getChildSibling(e,t){return this.vertical&&t===m.TOP?this.getModelBefore(e):this.vertical&&t===m.BOTTOM?this.getModelAfter(e):this.vertical||t!==m.LEFT?this.vertical||t!==m.RIGHT?null:this.getModelAfter(e):this.getModelBefore(e)}}ce.NAME="srw-node";class he extends J{constructor(e={panels:!0}){super({mouseEvents:!1}),this.debugOptions=e;const t=this.registerListener({removed:()=>{this.l1(),t()}})}setLayerManager(e){super.setLayerManager(e),this.l1=this.layerManager.registerListener({layerAdded:()=>{g.defer((()=>{this.moveToTop()}))}})}updateOptions(e){this.debugOptions=Object.assign(Object.assign({},this.debugOptions),e),this.repaint()}renderLayer(e){return i.createElement(ge,{options:this.debugOptions,engine:e.engine,model:e.model})}}const ue=e=>{const t=M();return(0,i.useEffect)((()=>e.model.registerListener({visibilityChanged:()=>{t()}})),[]),e.model.r_visible?i.createElement(ve.Outline2,{dimension:e.model.r_dimensions},i.createElement(ve.DebugID,null,e.model.id.substring(0,7))):null},ge=e=>{var t,n,r;const s=M(!0);return(0,i.useEffect)((()=>{e.model.registerListener({layoutInvalidated:()=>{s()},dimensionsInvalidated:()=>{s()}})}),[]),i.createElement(i.Fragment,null,(null===(t=e.options)||void 0===t?void 0:t.panels)?e.model.flatten().filter((e=>!(e instanceof v))).map((e=>i.createElement(ue,{model:e,key:e.id}))):[],(null===(n=e.options)||void 0===n?void 0:n.dividers)?e.model.flatten().filter((e=>e instanceof ce)).flatMap((e=>e.r_divisions)).map((e=>i.createElement(ve.Outline,{dimension:e,key:e.id}))):[],(null===(r=e.options)||void 0===r?void 0:r.resizeDividers)?e.model.flatten().filter((e=>e instanceof ce)).flatMap((e=>e.getResizeDivisions())).map((e=>i.createElement(ve.Outline,{dimension:e.dimensions,key:e.dimensions.id}))):[])};var ve;function fe(){return fe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},fe.apply(null,arguments)}!function(e){e.Outline=$()(V)`
box-sizing: border-box;

@@ -51,3 +51,3 @@ border: dashed red 1px;

position: absolute;
`}(ve||(ve={}));const pe=e=>{const t=M();return(0,i.useEffect)((()=>e.layer.registerListener({repaint:()=>{t()}})),[]),i.createElement(ye.Layer,{$pointerEvents:e.layer.options.mouseEvents,index:e.index},e.layer.renderLayer({engine:e.engine,model:e.model}))},me=e=>{const t=M();return(0,i.useEffect)((()=>e.layerManager.registerListener({layersChanged:()=>{t()}})),[]),i.createElement(ye.Container,{className:e.className},e.layerManager.layers.map(((t,n)=>i.createElement(pe,fe({},e,{layer:t,index:n+e.layerManager.initialZIndex,key:t.id})))))};var ye,we;!function(e){e.Container=$().div`
`}(ve||(ve={}));const me=e=>{const t=M();return(0,i.useEffect)((()=>e.layer.registerListener({repaint:()=>{t()}})),[]),i.createElement(we.Layer,{$pointerEvents:e.layer.options.mouseEvents,index:e.index},e.layer.renderLayer({engine:e.engine,model:e.model}))},pe=e=>{const t=M();return(0,i.useEffect)((()=>e.layerManager.registerListener({layersChanged:()=>{t()}})),[]),i.createElement(we.Container,{className:e.className},e.layerManager.layers.map(((t,n)=>i.createElement(me,fe({},e,{layer:t,index:n+e.layerManager.initialZIndex,key:t.id})))))};var we,ye;!function(e){e.Container=$().div`
position: absolute;

@@ -61,3 +61,3 @@ pointer-events: none;

position: absolute;
`}(ye||(ye={})),function(e){e.ChildContainer=$().div`
`}(we||(we={})),function(e){e.ChildContainer=$().div`
${e=>e.width?`min-width: ${e.width}px; width: ${e.width}px`:""};

@@ -67,6 +67,9 @@ ${e=>e.height?`min-height: ${e.height}px; height: ${e.height}px`:""};

flex-grow: ${e=>e.expand?1:0};
`}(we||(we={}));const Ee=e=>{let t=null,n=null,r=e.expand;!r&&e.vertical?n=e.model.size.height:r||(t=e.model.size.width);const s=M();return(0,i.useEffect)((()=>{const t=e.model.size.registerListener({updated:()=>{s()}});return()=>{t()}}),[]),i.createElement(we.ChildContainer,{expand:r,width:t,height:n},e.generateElement(e.model))};function xe(){return xe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},xe.apply(null,arguments)}var Le;!function(e){e.Container=$().div`
${e=>e.expand?"min-height: 0; min-width: 0;":""};
`}(ye||(ye={}));const Ee=e=>{let t=null,n=null,r=e.expand;!r&&e.vertical?n=e.model.size.height:r||(t=e.model.size.width);const s=M();return(0,i.useEffect)((()=>{const t=e.model.size.registerListener({updated:()=>{s()}});return()=>{t()}}),[]),i.createElement(ye.ChildContainer,{expand:r,width:t,height:n},e.generateElement(e.model))};function xe(){return xe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},xe.apply(null,arguments)}var Le;!function(e){e.Container=$().div`
display: flex;
flex-grow: 1;
flex-direction: ${e=>e.vertical?"column":"row"};
min-height: 0;
min-width: 0;
max-height: 100%;

@@ -77,7 +80,9 @@ `}(Le||(Le={}));const be=e=>{if(0===e.data.length)return i.createElement(Le.Container,{ref:e.forwardRef,className:e.className,vertical:e.vertical});const t=e.dimensionContainerForDivider(0),n=(0,i.useCallback)((t=>e.generateDivider?e.generateDivider(t):i.createElement(G,{activeColor:"transparent",hoverColor:"transparent",engine:e.engine,dimensionContainer:t})),[]);return i.createElement(Le.Container,{ref:e.forwardRef,className:e.className,vertical:e.vertical},i.createElement(i.Fragment,{key:t.id},n(t)),g.map(e.data,((t,r)=>{const s=e.dimensionContainerForDivider(r+1);return i.createElement(i.Fragment,{key:t.id},i.createElement(Ee,xe({},e,{expand:e.shouldModelExpand(t),model:t})),i.createElement(i.Fragment,{key:s.id},n(s)))})))};var Re;!function(e){e.Container=$().div`

position: relative;
`,e.LayerManager=$()(me)`
`,e.LayerManager=$()(pe)`
width: 100%;
height: 100%;
`}(Re||(Re={}));const Me=e=>{const t=(0,i.useRef)(null),n=(0,i.useRef)(null),r=M();return(0,i.useEffect)((()=>{e.engine.fireRepainted()})),(0,i.useEffect)((()=>{e.engine.setRootModel(e.model)}),[e.model]),x({forwardRef:t,dimension:e.engine.workspaceContainer}),(0,i.useEffect)((()=>{e.engine.registerListener({layoutInvalidated:()=>{r()},repaint:()=>{r()}})}),[]),A({forwardRef:t,accept:!1,dragOver:t=>{let{modelID:i}=t;n.current&&(clearTimeout(n.current),n.current=null),n.current=setTimeout((()=>{e.engine.setDraggingNode(null)}),200),e.engine.draggingID||e.engine.setDraggingNode(i)}}),i.createElement(D,{forwardRef:t},i.createElement(Re.Container,{ref:t},e.engine.getFactory(e.model.getRootModel()).generateContent({engine:e.engine,model:e.model.getRootModel()}),i.createElement(Re.LayerManager,{engine:e.engine,layerManager:e.engine.layerManager,model:e.model.getRootModel()})))};class Oe extends s{constructor(e){super(),this.type=e}setEngine(e){this.engine=e}generateModel(){const e=this._generateModel();return this.iterateListeners((t=>{var i;return null===(i=t.modelGenerated)||void 0===i?void 0:i.call(t,{model:e})})),e}}class _e extends Error{constructor(e){super(e),Object.setPrototypeOf(this,_e.prototype)}}class Te extends s{constructor(){super(),this.invalidateLayoutDebounced=g.debounce((()=>{this.invalidateLayout()}),200),this.invalidateDimensionsDebounced=g.debounce((()=>{this.invalidateDimensions()}),200),this.locked=!1,this.factories={},this.listeners={},this.draggingID=null,this.layerManager=new Q,this.workspaceContainer=new l,this.rootModel=null}setRootModel(e){var t;null===(t=this.rootModelListener)||void 0===t||t.call(this),this.rootModelListener=e.registerListener({layoutInvalidated:()=>{this.invalidateLayoutDebounced()},dimensionsInvalidated:()=>{this.invalidateDimensionsDebounced()}}),this.rootModel=e,this.iterateListeners((e=>{var t;return null===(t=e.modelUpdated)||void 0===t?void 0:t.call(e)})),this.iterateListeners((e=>{var t;return null===(t=e.layoutInvalidated)||void 0===t?void 0:t.call(e)}))}fireRepainted(){this.iterateListeners((e=>{var t;return null===(t=e.layoutRepainted)||void 0===t?void 0:t.call(e)}))}invalidateLayout(){this.iterateListeners((e=>{var t;return null===(t=e.layoutInvalidated)||void 0===t?void 0:t.call(e)}))}invalidateDimensions(){this.rootModel.flatten().flatMap((e=>e.getAllRenderDimensions())).forEach((e=>{e.invalidate()})),this.iterateListeners((e=>{var t;return null===(t=e.dimensionsInvalidated)||void 0===t?void 0:t.call(e)}))}setLocked(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.locked!==e&&(this.locked=e,this.iterateListeners((e=>{var t;return null===(t=e.lockUpdated)||void 0===t?void 0:t.call(e)})))}static namespaceMime(e){return`srw/${e}`}fireRepaintListeners(){this.repainting=!0,this.iterateListeners((e=>{var t;null===(t=e.repaint)||void 0===t||t.call(e)}))}normalize(){this.rootModel.flatten().filter((e=>e instanceof v)).forEach((e=>e.normalize()))}registerFactory(e){this.factories[e.type]=e,e.setEngine(this)}getFactory(e){if("string"!=typeof e&&(e=e.type),!this.factories[e])throw new _e("Cannot find Workspace factory for model with type: ["+e+"]");return this.factories[e]}setDraggingNode(e){this.draggingID!==e?(this.draggingID=e,this.iterateListeners((e=>{var t;return null===(t=e.modelDragStart)||void 0===t?void 0:t.call(e)}))):null===e&&this.iterateListeners((e=>{var t;return null===(t=e.modelDragEnd)||void 0===t?void 0:t.call(e)}))}}var Ce=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};class De extends ce{constructor(){super(),this.busy=!1,this.computed_initial=!1}addModel(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return super.addModel(e,t),this.recomputeSizes(),this}toArray(){return Object.assign(Object.assign({},super.toArray()),{computed_initial:this.computed_initial})}fromArray(e,t){var i;this.computed_initial=null!==(i=e.computed_initial)&&void 0!==i&&i,this.computed_initial&&(this.busy=!0),super.fromArray(e,t),this.busy=!1}recomputeSizes(){return Ce(this,void 0,void 0,(function*(){if(this.busy)return;this.busy=!0;let e=yield this.r_dimensions.waitForSize().then((e=>this.vertical?e.height:e.width));const t=this.getExpandNodes();if(t.length<=1)return this.busy=!1,this.computed_initial=!0,void this.iterateListeners((e=>{var t;return null===(t=e.recomputed)||void 0===t?void 0:t.call(e)}));e=this.vertical?this.r_dimensions.size.height:this.r_dimensions.size.width;let i=yield Promise.all(this.children.filter((e=>!t.includes(e))).map((e=>e.r_dimensions.waitForSize().then((e=>this.vertical?e.height:e.width)))));const n=g.sum(this.r_divisions.map((e=>this.vertical?e.size.height:e.size.width)).concat(i));if(e>n){let i=Math.round((e-n)/t.length);for(let e=0;e<t.length-1;e++)this.vertical?t[e].setHeight(i):t[e].setWidth(i)}this.busy=!1,this.computed_initial=!0,this.iterateListeners((e=>{var t;return null===(t=e.recomputed)||void 0===t?void 0:t.call(e)}))}))}getResizeDivisions(){let e=[];for(let t=1;t<this.r_divisions.length-1;t++)e.push({before:this.children[t-1],after:this.children[t],dimensions:this.r_divisions[t],vertical:!this.vertical});return e}getExpandNodes(){return this.children.filter((e=>this.vertical?e.expandVertical:e.expandHorizontal))}shouldChildExpand(e){const t=this.getExpandNodes();return 0===t.length&&this.children.indexOf(e)===this.children.length-1||(t.length>1?t.indexOf(e)===t.length-1:super.shouldChildExpand(e))}}class ze extends Oe{constructor(e){super(e),this.renderers=new Set}addRenderer(e){this.renderers.add(e)}getRendererForModel(e){for(let t of this.renderers.values())if(t.matchModel(e))return t}}const ke=e=>{const t=R({engine:e.engine,model:e.model});return(0,i.useEffect)((()=>{const i=()=>{e.model.vertical?e.model.setOverConstrained(t.current.scrollHeight>e.model.r_dimensions.size.height):e.model.setOverConstrained(t.current.scrollWidth>e.model.r_dimensions.size.width)};let n=e.model.r_dimensions.registerListener({updated:()=>{i()}}),r=e.model.registerListener({dimensionsInvalidated:()=>{i()}});return()=>{n(),r()}}),[e.model]),i.createElement(Pe.DirectionalLayout,{forwardRef:t,dimensionContainerForDivider:t=>e.model.r_divisions[t],shouldModelExpand:t=>e.model.shouldChildExpand(t),className:e.className,data:e.model.children,generateDivider:e.generateDivider,generateElement:t=>i.createElement(Ie,{model:t,renderer:e.factory.getRendererForModel(t),engine:e.engine}),vertical:e.model.vertical,engine:e.engine})},Ie=e=>{const t=e.engine.getFactory(e.model),n=R({model:e.model,engine:e.engine});return i.createElement(Pe.Container,{ref:n},e.renderer?i.createElement(Y,{model:e.model,engine:e.engine},e.renderer.renderTitleBar({engine:e.engine,model:e.model})):null,i.createElement(Pe.Content,null,t.generateContent({model:e.model,engine:e.engine})))};var Pe;function Se(){return Se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},Se.apply(null,arguments)}!function(e){e.DirectionalLayout=$()(be)`
`}(Re||(Re={}));const Me=e=>{const t=(0,i.useRef)(null),n=(0,i.useRef)(null),r=M();return(0,i.useEffect)((()=>{e.engine.fireRepainted()})),(0,i.useEffect)((()=>{e.engine.setRootModel(e.model)}),[e.model]),x({forwardRef:t,dimension:e.engine.workspaceContainer}),(0,i.useEffect)((()=>{e.engine.registerListener({layoutInvalidated:()=>{r()},repaint:()=>{r()}})}),[]),F({forwardRef:t,accept:!1,dragOver:({modelID:t})=>{n.current&&(clearTimeout(n.current),n.current=null),n.current=setTimeout((()=>{e.engine.setDraggingNode(null)}),200),e.engine.draggingID||e.engine.setDraggingNode(t)}}),i.createElement(D,{forwardRef:t},i.createElement(Re.Container,{ref:t},e.engine.getFactory(e.model.getRootModel()).generateContent({engine:e.engine,model:e.model.getRootModel()}),i.createElement(Re.LayerManager,{engine:e.engine,layerManager:e.engine.layerManager,model:e.model.getRootModel()})))};class Oe extends s{constructor(e){super(),this.type=e}setEngine(e){this.engine=e}generateModel(){const e=this._generateModel();return this.iterateListeners((t=>{var i;return null===(i=t.modelGenerated)||void 0===i?void 0:i.call(t,{model:e})})),e}}class _e extends Error{constructor(e){super(e),Object.setPrototypeOf(this,_e.prototype)}}class Te extends s{constructor(){super(),this.invalidateLayoutDebounced=g.debounce((()=>{this.invalidateLayout()}),200),this.invalidateDimensionsDebounced=g.debounce((()=>{this.invalidateDimensions()}),200),this.locked=!1,this.factories={},this.listeners={},this.draggingID=null,this.layerManager=new Q,this.workspaceContainer=new l,this.rootModel=null}setRootModel(e){var t;null===(t=this.rootModelListener)||void 0===t||t.call(this),this.rootModelListener=e.registerListener({layoutInvalidated:()=>{this.invalidateLayoutDebounced()},dimensionsInvalidated:()=>{this.invalidateDimensionsDebounced()}}),this.rootModel=e,this.iterateListeners((e=>{var t;return null===(t=e.modelUpdated)||void 0===t?void 0:t.call(e)})),this.iterateListeners((e=>{var t;return null===(t=e.layoutInvalidated)||void 0===t?void 0:t.call(e)}))}fireRepainted(){this.iterateListeners((e=>{var t;return null===(t=e.layoutRepainted)||void 0===t?void 0:t.call(e)}))}invalidateLayout(){this.iterateListeners((e=>{var t;return null===(t=e.layoutInvalidated)||void 0===t?void 0:t.call(e)}))}invalidateDimensions(){this.rootModel.flatten().flatMap((e=>e.getAllRenderDimensions())).forEach((e=>{e.invalidate()})),this.iterateListeners((e=>{var t;return null===(t=e.dimensionsInvalidated)||void 0===t?void 0:t.call(e)}))}setLocked(e=!0){this.locked!==e&&(this.locked=e,this.iterateListeners((e=>{var t;return null===(t=e.lockUpdated)||void 0===t?void 0:t.call(e)})))}static namespaceMime(e){return`srw/${e}`}fireRepaintListeners(){this.repainting=!0,this.iterateListeners((e=>{var t;null===(t=e.repaint)||void 0===t||t.call(e)}))}normalize(){this.rootModel.flatten().filter((e=>e instanceof v)).forEach((e=>e.normalize()))}registerFactory(e){this.factories[e.type]=e,e.setEngine(this)}getFactory(e){if("string"!=typeof e&&(e=e.type),!this.factories[e])throw new _e("Cannot find Workspace factory for model with type: ["+e+"]");return this.factories[e]}setDraggingNode(e){this.draggingID!==e?(this.draggingID=e,this.iterateListeners((e=>{var t;return null===(t=e.modelDragStart)||void 0===t?void 0:t.call(e)}))):null===e&&this.iterateListeners((e=>{var t;return null===(t=e.modelDragEnd)||void 0===t?void 0:t.call(e)}))}}var Ce=function(e,t,i,n){return new(i||(i=Promise))((function(r,s){function o(e){try{d(n.next(e))}catch(e){s(e)}}function a(e){try{d(n.throw(e))}catch(e){s(e)}}function d(e){var t;e.done?r(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(o,a)}d((n=n.apply(e,t||[])).next())}))};class De extends ce{constructor(){super(),this.busy=!1,this.computed_initial=!1}addModel(e,t=null){return super.addModel(e,t),this.recomputeSizes(),this}toArray(){return Object.assign(Object.assign({},super.toArray()),{computed_initial:this.computed_initial})}fromArray(e,t){var i;this.computed_initial=null!==(i=e.computed_initial)&&void 0!==i&&i,this.computed_initial&&(this.busy=!0),super.fromArray(e,t),this.busy=!1}recomputeSizes(){return Ce(this,void 0,void 0,(function*(){if(this.busy)return;this.busy=!0;let e=yield this.r_dimensions.waitForSize().then((e=>this.vertical?e.height:e.width));const t=this.getExpandNodes();if(t.length<=1)return this.busy=!1,this.computed_initial=!0,void this.iterateListeners((e=>{var t;return null===(t=e.recomputed)||void 0===t?void 0:t.call(e)}));e=this.vertical?this.r_dimensions.size.height:this.r_dimensions.size.width;let i=yield Promise.all(this.children.filter((e=>!t.includes(e))).map((e=>e.r_dimensions.waitForSize().then((e=>this.vertical?e.height:e.width)))));const n=g.sum(this.r_divisions.map((e=>this.vertical?e.size.height:e.size.width)).concat(i));if(e>n){let i=Math.round((e-n)/t.length);for(let e=0;e<t.length-1;e++)this.vertical?t[e].setHeight(i):t[e].setWidth(i)}this.busy=!1,this.computed_initial=!0,this.iterateListeners((e=>{var t;return null===(t=e.recomputed)||void 0===t?void 0:t.call(e)}))}))}getResizeDivisions(){let e=[];for(let t=1;t<this.r_divisions.length-1;t++)e.push({before:this.children[t-1],after:this.children[t],dimensions:this.r_divisions[t],vertical:!this.vertical});return e}getExpandNodes(){return this.children.filter((e=>this.vertical?e.expandVertical:e.expandHorizontal))}shouldChildExpand(e){const t=this.getExpandNodes();return 0===t.length&&this.children.indexOf(e)===this.children.length-1||(t.length>1?t.indexOf(e)===t.length-1:super.shouldChildExpand(e))}}class ze extends Oe{constructor(e){super(e),this.renderers=new Set}addRenderer(e){this.renderers.add(e)}getRendererForModel(e){for(let t of this.renderers.values())if(t.matchModel(e))return t}}const ke=e=>{const t=R({engine:e.engine,model:e.model});return(0,i.useEffect)((()=>{const i=()=>{e.model.vertical?e.model.setOverConstrained(t.current.scrollHeight>e.model.r_dimensions.size.height):e.model.setOverConstrained(t.current.scrollWidth>e.model.r_dimensions.size.width)};let n=e.model.r_dimensions.registerListener({updated:()=>{i()}}),r=e.model.registerListener({dimensionsInvalidated:()=>{i()}});return()=>{n(),r()}}),[e.model]),i.createElement(Pe.DirectionalLayout,{forwardRef:t,dimensionContainerForDivider:t=>e.model.r_divisions[t],shouldModelExpand:t=>e.model.shouldChildExpand(t),className:e.className,data:e.model.children,generateDivider:e.generateDivider,generateElement:t=>i.createElement(Ie,{model:t,renderer:e.factory.getRendererForModel(t),engine:e.engine}),vertical:e.model.vertical,engine:e.engine})},Ie=e=>{const t=e.engine.getFactory(e.model),n=R({model:e.model,engine:e.engine});return i.createElement(Pe.Container,{ref:n},e.renderer?i.createElement(Pe.Title,{model:e.model,engine:e.engine},e.renderer.renderTitleBar({engine:e.engine,model:e.model})):null,i.createElement(Pe.Content,null,t.generateContent({model:e.model,engine:e.engine})))};var Pe;function Se(){return Se=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var n in i)({}).hasOwnProperty.call(i,n)&&(e[n]=i[n])}return e},Se.apply(null,arguments)}!function(e){e.DirectionalLayout=$()(be)`
height: 100%;
min-height: 0;
min-width: 0;
width: 100%;

@@ -90,4 +95,10 @@ `,e.Container=$().div`

height: 100%;
min-height: 0;
min-width: 0;
width: 100%;
overflow: hidden;
`,e.Title=$()(Y)`
flex-shrink: 0;
min-height: 0;
min-width: 0;
`,e.Content=$().div`

@@ -97,7 +108,9 @@ flex-grow: 1;

max-height: 100%;
min-height: 0;
min-width: 0;
overflow: hidden;
flex-direction: column;
`}(Pe||(Pe={}));const Ae=e=>{const t=M();return(0,i.useEffect)((()=>e.model.registerListener({recomputed:()=>{t()}})),[e.model]),i.createElement(Fe.WorkspaceNode,Se({},e,{computed_initial:e.model.computed_initial}))};var Fe;!function(e){e.WorkspaceNode=$()(ke)`
`}(Pe||(Pe={}));const Fe=e=>{const t=M();return(0,i.useEffect)((()=>e.model.registerListener({recomputed:()=>{t()}})),[e.model]),i.createElement(Ae.WorkspaceNode,Se({},e,{computed_initial:e.model.computed_initial}))};var Ae;!function(e){e.WorkspaceNode=$()(ke)`
opacity: ${e=>e.computed_initial?1:0};
`}(Fe||(Fe={}));class We extends ze{constructor(){super(arguments.length>0&&void 0!==arguments[0]?arguments[0]:ce.NAME)}generateContent(e){return e.model instanceof De?i.createElement(Ae,{model:e.model,engine:e.engine,factory:this}):i.createElement(ke,{model:e.model,engine:e.engine,factory:this})}_generateModel(){return new ce}}const Ne=e=>{const{engine:t}=e;let i,n=t.registerListener({layoutInvalidated:()=>{null==i||i();let e=t.rootModel.flatten().filter((e=>e instanceof De)).map((e=>e.registerListener({overConstrainedChanged:()=>{e.r_overConstrained&&e.recomputeSizes()}})));i=()=>{e.forEach((e=>e()))}}});return()=>{null==i||i(),n()}};return t})()));
`}(Ae||(Ae={}));class We extends ze{constructor(e=ce.NAME){super(e)}generateContent(e){return e.model instanceof De?i.createElement(Fe,{model:e.model,engine:e.engine,factory:this}):i.createElement(ke,{model:e.model,engine:e.engine,factory:this})}_generateModel(){return new ce}}const Ne=e=>{const{engine:t}=e;let i,n=t.registerListener({layoutInvalidated:()=>{null==i||i();let e=t.rootModel.flatten().filter((e=>e instanceof De)).map((e=>e.registerListener({overConstrainedChanged:()=>{e.r_overConstrained&&e.recomputeSizes()}})));i=()=>{e.forEach((e=>e()))}}});return()=>{null==i||i(),n()}};return t})()));
//# sourceMappingURL=index.umd.js.map

@@ -12,2 +12,3 @@ import * as React from 'react';

flex-grow: ${(p) => (p.expand ? 1 : 0)};
${(p) => (p.expand ? 'min-height: 0; min-width: 0;' : '')};
`;

@@ -14,0 +15,0 @@ })(S || (S = {}));

@@ -1,1 +0,1 @@

{"version":3,"file":"DirectionalChildWidget.jsx","sourceRoot":"","sources":["../../../src/widgets/layouts/DirectionalChildWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,IAAU,CAAC,CAOV;AAPD,WAAU,CAAC;IACI,gBAAc,GAAG,MAAM,CAAC,GAAG,CAAoD;MACxF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;MACtE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;mBAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GACvC,CAAC;AACJ,CAAC,EAPS,CAAC,KAAD,CAAC,QAOV;AASD,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,KAAK,EAAE,EAAE;IACjF,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE1B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC3C,OAAO,EAAE,GAAG,EAAE;gBACZ,WAAW,EAAE,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,EAAE,EAAE,CAAC;QACP,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7D;MAAA,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CACrC;IAAA,EAAE,CAAC,CAAC,cAAc,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { useEffect } from 'react';\nimport { WorkspaceModel } from '../../core-models/WorkspaceModel';\nimport styled from '@emotion/styled';\nimport { useForceUpdate } from '../../widgets/hooks/useForceUpdate';\n\nnamespace S {\n export const ChildContainer = styled.div<{ width: number; height: number; expand: boolean }>`\n ${(p) => (p.width ? `min-width: ${p.width}px; width: ${p.width}px` : '')};\n ${(p) => (p.height ? `min-height: ${p.height}px; height: ${p.height}px` : '')};\n flex-shrink: ${(p) => (p.expand ? 1 : 0)};\n flex-grow: ${(p) => (p.expand ? 1 : 0)};\n `;\n}\n\nexport interface DirectionChildWidgetProps {\n vertical: boolean;\n model: WorkspaceModel;\n expand: boolean;\n generateElement: (model: WorkspaceModel) => React.JSX.Element;\n}\n\nexport const DirectionChildWidget: React.FC<DirectionChildWidgetProps> = (props) => {\n let width = null;\n let height = null;\n let expand = props.expand;\n\n if (!expand && props.vertical) {\n height = props.model.size.height;\n } else if (!expand) {\n width = props.model.size.width;\n }\n\n const forceUpdate = useForceUpdate();\n useEffect(() => {\n const l1 = props.model.size.registerListener({\n updated: () => {\n forceUpdate();\n }\n });\n\n return () => {\n l1();\n };\n }, []);\n\n return (\n <S.ChildContainer expand={expand} width={width} height={height}>\n {props.generateElement(props.model)}\n </S.ChildContainer>\n );\n};\n"]}
{"version":3,"file":"DirectionalChildWidget.jsx","sourceRoot":"","sources":["../../../src/widgets/layouts/DirectionalChildWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,IAAU,CAAC,CAQV;AARD,WAAU,CAAC;IACI,gBAAc,GAAG,MAAM,CAAC,GAAG,CAAoD;MACxF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;MACtE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,MAAM,eAAe,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;mBAC9D,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;MACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,EAAE,CAAC;GAC1D,CAAC;AACJ,CAAC,EARS,CAAC,KAAD,CAAC,QAQV;AASD,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,KAAK,EAAE,EAAE;IACjF,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAE1B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACjC,CAAC;IAED,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC3C,OAAO,EAAE,GAAG,EAAE;gBACZ,WAAW,EAAE,CAAC;YAChB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,GAAG,EAAE;YACV,EAAE,EAAE,CAAC;QACP,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAC7D;MAAA,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CACrC;IAAA,EAAE,CAAC,CAAC,cAAc,CAAC,CACpB,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import * as React from 'react';\nimport { useEffect } from 'react';\nimport { WorkspaceModel } from '../../core-models/WorkspaceModel';\nimport styled from '@emotion/styled';\nimport { useForceUpdate } from '../../widgets/hooks/useForceUpdate';\n\nnamespace S {\n export const ChildContainer = styled.div<{ width: number; height: number; expand: boolean }>`\n ${(p) => (p.width ? `min-width: ${p.width}px; width: ${p.width}px` : '')};\n ${(p) => (p.height ? `min-height: ${p.height}px; height: ${p.height}px` : '')};\n flex-shrink: ${(p) => (p.expand ? 1 : 0)};\n flex-grow: ${(p) => (p.expand ? 1 : 0)};\n ${(p) => (p.expand ? 'min-height: 0; min-width: 0;' : '')};\n `;\n}\n\nexport interface DirectionChildWidgetProps {\n vertical: boolean;\n model: WorkspaceModel;\n expand: boolean;\n generateElement: (model: WorkspaceModel) => React.JSX.Element;\n}\n\nexport const DirectionChildWidget: React.FC<DirectionChildWidgetProps> = (props) => {\n let width = null;\n let height = null;\n let expand = props.expand;\n\n if (!expand && props.vertical) {\n height = props.model.size.height;\n } else if (!expand) {\n width = props.model.size.width;\n }\n\n const forceUpdate = useForceUpdate();\n useEffect(() => {\n const l1 = props.model.size.registerListener({\n updated: () => {\n forceUpdate();\n }\n });\n\n return () => {\n l1();\n };\n }, []);\n\n return (\n <S.ChildContainer expand={expand} width={width} height={height}>\n {props.generateElement(props.model)}\n </S.ChildContainer>\n );\n};\n"]}

@@ -13,2 +13,4 @@ import * as React from 'react';

flex-direction: ${(p) => (p.vertical ? 'column' : 'row')};
min-height: 0;
min-width: 0;
max-height: 100%;

@@ -15,0 +17,0 @@ `;

@@ -1,1 +0,1 @@

{"version":3,"file":"DirectionalLayoutWidget.jsx","sourceRoot":"","sources":["../../../src/widgets/layouts/DirectionalLayoutWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useCallback } from 'react';\nimport * as _ from 'lodash';\nimport { WorkspaceModel } from '../../core-models/WorkspaceModel';\nimport { WorkspaceEngine } from '../../core/WorkspaceEngine';\nimport styled from '@emotion/styled';\nimport { DividerWidget } from '../../widgets/primitives/DividerWidget';\nimport { DirectionChildWidget } from './DirectionalChildWidget';\nimport { ResizeDimensionContainer } from '../../entities/node/ResizeDimensionContainer';\n\nexport interface DirectionalLayoutWidgetProps {\n vertical: boolean;\n engine: WorkspaceEngine;\n data: WorkspaceModel[];\n shouldModelExpand: (model: WorkspaceModel) => boolean;\n generateElement: (model: WorkspaceModel) => React.JSX.Element;\n generateDivider: (divider: ResizeDimensionContainer) => React.JSX.Element;\n dimensionContainerForDivider: (index: number) => ResizeDimensionContainer;\n forwardRef: React.RefObject<HTMLDivElement>;\n className?: any;\n}\n\nnamespace S {\n export const Container = styled.div<{ vertical: boolean }>`\n display: flex;\n flex-grow: 1;\n flex-direction: ${(p) => (p.vertical ? 'column' : 'row')};\n max-height: 100%;\n `;\n}\n\nexport const DirectionalLayoutWidget: React.FC<DirectionalLayoutWidgetProps> = (props) => {\n if (props.data.length === 0) {\n return <S.Container ref={props.forwardRef} className={props.className} vertical={props.vertical}></S.Container>;\n }\n const firstDivider = props.dimensionContainerForDivider(0);\n const generateDivider = useCallback((dimension: ResizeDimensionContainer) => {\n if (props.generateDivider) {\n return props.generateDivider(dimension);\n }\n return (\n <DividerWidget\n activeColor={'transparent'}\n hoverColor={'transparent'}\n engine={props.engine}\n dimensionContainer={dimension}\n />\n );\n }, []);\n return (\n <S.Container ref={props.forwardRef} className={props.className} vertical={props.vertical}>\n <React.Fragment key={firstDivider.id}>{generateDivider(firstDivider)}</React.Fragment>\n {_.map(props.data, (model: WorkspaceModel, index) => {\n const dimension = props.dimensionContainerForDivider(index + 1);\n return (\n <React.Fragment key={model.id}>\n <DirectionChildWidget {...props} expand={props.shouldModelExpand(model)} model={model} />\n <React.Fragment key={dimension.id}>{generateDivider(dimension)}</React.Fragment>\n </React.Fragment>\n );\n })}\n </S.Container>\n );\n};\n"]}
{"version":3,"file":"DirectionalLayoutWidget.jsx","sourceRoot":"","sources":["../../../src/widgets/layouts/DirectionalLayoutWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { useCallback } from 'react';\nimport * as _ from 'lodash';\nimport { WorkspaceModel } from '../../core-models/WorkspaceModel';\nimport { WorkspaceEngine } from '../../core/WorkspaceEngine';\nimport styled from '@emotion/styled';\nimport { DividerWidget } from '../../widgets/primitives/DividerWidget';\nimport { DirectionChildWidget } from './DirectionalChildWidget';\nimport { ResizeDimensionContainer } from '../../entities/node/ResizeDimensionContainer';\n\nexport interface DirectionalLayoutWidgetProps {\n vertical: boolean;\n engine: WorkspaceEngine;\n data: WorkspaceModel[];\n shouldModelExpand: (model: WorkspaceModel) => boolean;\n generateElement: (model: WorkspaceModel) => React.JSX.Element;\n generateDivider: (divider: ResizeDimensionContainer) => React.JSX.Element;\n dimensionContainerForDivider: (index: number) => ResizeDimensionContainer;\n forwardRef: React.RefObject<HTMLDivElement>;\n className?: any;\n}\n\nnamespace S {\n export const Container = styled.div<{ vertical: boolean }>`\n display: flex;\n flex-grow: 1;\n flex-direction: ${(p) => (p.vertical ? 'column' : 'row')};\n min-height: 0;\n min-width: 0;\n max-height: 100%;\n `;\n}\n\nexport const DirectionalLayoutWidget: React.FC<DirectionalLayoutWidgetProps> = (props) => {\n if (props.data.length === 0) {\n return <S.Container ref={props.forwardRef} className={props.className} vertical={props.vertical}></S.Container>;\n }\n const firstDivider = props.dimensionContainerForDivider(0);\n const generateDivider = useCallback((dimension: ResizeDimensionContainer) => {\n if (props.generateDivider) {\n return props.generateDivider(dimension);\n }\n return (\n <DividerWidget\n activeColor={'transparent'}\n hoverColor={'transparent'}\n engine={props.engine}\n dimensionContainer={dimension}\n />\n );\n }, []);\n return (\n <S.Container ref={props.forwardRef} className={props.className} vertical={props.vertical}>\n <React.Fragment key={firstDivider.id}>{generateDivider(firstDivider)}</React.Fragment>\n {_.map(props.data, (model: WorkspaceModel, index) => {\n const dimension = props.dimensionContainerForDivider(index + 1);\n return (\n <React.Fragment key={model.id}>\n <DirectionChildWidget {...props} expand={props.shouldModelExpand(model)} model={model} />\n <React.Fragment key={dimension.id}>{generateDivider(dimension)}</React.Fragment>\n </React.Fragment>\n );\n })}\n </S.Container>\n );\n};\n"]}
{
"name": "@projectstorm/react-workspaces-core",
"version": "4.2.2",
"version": "4.2.3",
"main": "./dist/index.umd.js",

@@ -11,14 +11,14 @@ "module": "./dist/index.jsx",

"dependencies": {
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"@emotion/styled": "^11.14.1",
"@emotion/react": "^11.14.0",
"lodash": "^4.17.21",
"color": "^5.0.0",
"uuid": "^11.1.0"
"lodash": "^4.17.23",
"color": "^5.0.3",
"uuid": "^13.0.0"
},
"devDependencies": {
"@types/react": "^19.1.9",
"@types/react-dom": "^19.1.7",
"@types/lodash": "^4.17.20",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
"@types/lodash": "^4.17.23",
"@types/uuid": "^10.0.0"

@@ -25,0 +25,0 @@ },

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet