@sqlrooms/layout 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC","sourcesContent":["export * from './mosaic';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicLayout.js","sourceRoot":"","sources":["../../src/mosaic/MosaicLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAK,WAAW,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,MAAM,EAA0B,MAAM,wBAAwB,CAAC;AACvE,OAAO,mDAAmD,CAAC;AAC3D,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG;;;;;;;CAO1B,CAAC;AAEF,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,EAAE;IACtD,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAC,GAAG,KAAK,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAgC,EAAE,EAAE;QACnC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,OAAkC,EAAE,EAAE;QACrC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,2BAA2B,aACxC,0BAAQ,kBAAkB,GAAS,EACnC,KAAC,MAAM,OACD,KAAK,EACT,SAAS,EAAC,EAAE,CAAC,oCAAoC,EACjD,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,GAC7B,CACH,GACD,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"MosaicLayout.js","sourceRoot":"","sources":["../../src/mosaic/MosaicLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAK,WAAW,EAAC,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAC,MAAM,EAA0B,MAAM,wBAAwB,CAAC;AACvE,OAAO,mDAAmD,CAAC;AAC3D,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,2DAA2D;AAC3D,MAAM,kBAAkB,GAAG;;;;;;;CAO1B,CAAC;AAEF,MAAM,YAAY,GAA4B,CAAC,KAAK,EAAE,EAAE;IACtD,MAAM,EAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAC,GAAG,KAAK,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAgC,EAAE,EAAE;QACnC,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IACF,MAAM,mBAAmB,GAAG,WAAW,CACrC,CAAC,OAAkC,EAAE,EAAE;QACrC,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,2BAA2B,aACxC,0BAAQ,kBAAkB,GAAS,EACnC,KAAC,MAAM,OACD,KAAK,EACT,SAAS,EAAC,EAAE,CAAC,oCAAoC,EACjD,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAE,mBAAmB,EAC9B,UAAU,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CACxB,KAAC,UAAU,IACT,EAAE,EAAE,EAAE,EACN,SAAS,EAAC,iBAAiB,EAC3B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,GAC7B,CACH,GACD,IACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import React, {FC, useCallback} from 'react';\nimport {Mosaic, MosaicNode, MosaicProps} from 'react-mosaic-component';\nimport 'react-mosaic-component/react-mosaic-component.css';\nimport MosaicTile from './MosaicTile';\n\n// Add custom styles for the mosaic split line hover effect\nconst customMosaicStyles = `\n .mosaic-split {\n background-color: hsl(var(--border) / 0.2);\n }\n .mosaic-split:hover {\n background-color: hsl(var(--primary) / 0.4);\n }\n`;\n\nconst MosaicLayout: FC<MosaicProps<string>> = (props) => {\n const {onChange, onRelease, renderTile} = props;\n const [isDragging, setDragging] = React.useState(false);\n const handleLayoutChange = useCallback(\n (nodes: MosaicNode<string> | null) => {\n setDragging(true);\n onChange?.(nodes);\n },\n [onChange],\n );\n const handleLayoutRelease = useCallback(\n (newNode: MosaicNode<string> | null) => {\n setDragging(false);\n onRelease?.(newNode);\n },\n [onRelease],\n );\n\n return (\n <div className=\"relative w-full h-full bg\">\n <style>{customMosaicStyles}</style>\n <Mosaic<string>\n {...props}\n className=\"\" /* to avoid using blueprint theme */\n onChange={handleLayoutChange}\n onRelease={handleLayoutRelease}\n renderTile={(id, path) => (\n <MosaicTile\n id={id}\n className=\"bg-secondary/10\"\n path={path}\n isDragging={isDragging}\n content={renderTile(id, path)}\n />\n )}\n />\n </div>\n );\n};\n\nexport default MosaicLayout;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"MosaicTile.js","sourceRoot":"","sources":["../../src/mosaic/MosaicTile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAEhC,OAAO,EAAe,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAElE,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,MAAM,UAAU,GAMX,CAAC,KAAK,EAAE,EAAE;IACb,MAAM,EAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IACzD,MAAM,IAAI,GAAG,CACX,cACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,EACT,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CACxC,YAEA,OAAO,GACJ,CACP,CAAC;IACF,IAAI,CAAC,uBAAuB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,EAAE;QACT,uBAAuB;QACvB,IAAI;QACJ,qCAAqC;QACrC,IAAI,EAAE,IAAI;QACV,8DAA8D;QAC9D,oEAAoE;QACpE,aAAa,EAAE,GAAG,EAAE,CAClB,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CACjB,eAAO,CACR,CAAC,CAAC,CAAC,CACF,cAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GAEtD,CACP,YAGF,IAAI,GACQ,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"MosaicTile.js","sourceRoot":"","sources":["../../src/mosaic/MosaicTile.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAC,EAAE,EAAC,MAAM,cAAc,CAAC;AAEhC,OAAO,EAAe,YAAY,EAAC,MAAM,wBAAwB,CAAC;AAElE,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAEtC,MAAM,UAAU,GAMX,CAAC,KAAK,EAAE,EAAE;IACb,MAAM,EAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAC,GAAG,KAAK,CAAC;IACzD,MAAM,IAAI,GAAG,CACX,cACE,SAAS,EAAE,EAAE,CACX,uDAAuD,EACvD,SAAS,EACT,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CACxC,YAEA,OAAO,GACJ,CACP,CAAC;IACF,IAAI,CAAC,uBAAuB,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,KAAC,YAAY,IACX,KAAK,EAAE,EAAE;QACT,uBAAuB;QACvB,IAAI;QACJ,qCAAqC;QACrC,IAAI,EAAE,IAAI;QACV,8DAA8D;QAC9D,oEAAoE;QACpE,aAAa,EAAE,GAAG,EAAE,CAClB,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CACjB,eAAO,CACR,CAAC,CAAC,CAAC,CACF,cAAK,KAAK,EAAE,EAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAC,GAEtD,CACP,YAGF,IAAI,GACQ,CAChB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import {MAIN_VIEW} from '@sqlrooms/project-config';\nimport {cn} from '@sqlrooms/ui';\nimport {FC} from 'react';\nimport {MosaicBranch, MosaicWindow} from 'react-mosaic-component';\n\nconst ENABLE_LAYOUT_REARRANGE = false;\n\nconst MosaicTile: FC<{\n id: string;\n path: MosaicBranch[];\n content: React.ReactNode;\n isDragging: boolean;\n className?: string;\n}> = (props) => {\n const {id, content, path, isDragging, className} = props;\n const body = (\n <div\n className={cn(\n 'flex-1 h-full p-2 flex-col rounded-md overflow-hidden',\n className,\n isDragging ? 'pointer-events-none' : '',\n )}\n >\n {content}\n </div>\n );\n if (!ENABLE_LAYOUT_REARRANGE || id === MAIN_VIEW) {\n return body;\n }\n return (\n <MosaicWindow<string>\n title={id}\n // additionalControls={\n // }\n // createNode={() => genRandomStr(6)}\n path={path}\n // onDragStart={() => console.log('MosaicWindow.onDragStart')}\n // onDragEnd={(type) => console.log('MosaicWindow.onDragEnd', type)}\n renderToolbar={() =>\n id === MAIN_VIEW ? (\n <div />\n ) : (\n <div style={{display: 'flex', width: '100%', height: '100%'}}>\n {/* <ProjectBuilderPanelHeader panelKey={id as ProjectPanelTypes} /> */}\n </div>\n )\n }\n >\n {body}\n </MosaicWindow>\n );\n};\n\nexport default MosaicTile;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mosaic/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mosaic/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAC,OAAO,IAAI,YAAY,EAAC,MAAM,gBAAgB,CAAC","sourcesContent":["export * from './mosaic-utils';\nexport {default as MosaicLayout} from './MosaicLayout';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"mosaic-utils.js","sourceRoot":"","sources":["../../src/mosaic/mosaic-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mosaic-utils.js","sourceRoot":"","sources":["../../src/mosaic/mosaic-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DEFAULT_MOSAIC_LAYOUT,\n isMosaicLayoutParent,\n MosaicLayoutNode,\n} from '@sqlrooms/project-config';\nimport {\n createRemoveUpdate,\n MosaicDirection,\n MosaicNode,\n MosaicPath,\n updateTree,\n} from 'react-mosaic-component';\n\nexport function makeMosaicStack(\n direction: MosaicDirection,\n children: {node: string | MosaicNode<string> | null; weight: number}[],\n): MosaicNode<string> | null {\n const childrenWithoutEmpty = children.filter(({node}) => node !== null) as {\n node: string | MosaicNode<string>;\n weight: number;\n }[];\n if (!childrenWithoutEmpty?.length) {\n return null;\n }\n if (childrenWithoutEmpty.length === 1) {\n return childrenWithoutEmpty[0]?.node ?? null;\n }\n\n let stack = childrenWithoutEmpty[0]?.node;\n if (!stack) return null;\n let accumulatedWeight = childrenWithoutEmpty[0]?.weight ?? 0;\n for (let i = 1; i < childrenWithoutEmpty.length; i++) {\n const child = childrenWithoutEmpty[i];\n if (!child) continue;\n const {node, weight} = child;\n const splitPercentage =\n (accumulatedWeight * 100) / (accumulatedWeight + weight);\n accumulatedWeight += weight;\n stack = {\n direction,\n first: stack,\n second: node,\n splitPercentage: Math.round(splitPercentage),\n };\n }\n return stack;\n}\n\nexport function visitMosaicLeafNodes<T = void>(\n root: MosaicLayoutNode | undefined | null,\n visitor: (node: string, path: MosaicPath) => T, // return a truthy value to stop visiting\n path: MosaicPath = [],\n): T | undefined {\n if (!root) return undefined;\n if (isMosaicLayoutParent(root)) {\n if (root.direction) {\n const rv: T | undefined =\n visitMosaicLeafNodes(root.first, visitor, [...path, 'first']) ||\n visitMosaicLeafNodes(root.second, visitor, [...path, 'second']);\n if (rv) return rv;\n }\n return undefined;\n } else {\n return visitor(root, path);\n }\n}\n\nexport function getVisibleMosaicLayoutPanels(\n root = DEFAULT_MOSAIC_LAYOUT.nodes,\n): string[] {\n const visiblePanels: string[] = [];\n if (root) {\n visitMosaicLeafNodes(root, (node) => {\n visiblePanels.push(node);\n });\n }\n return visiblePanels;\n}\n\nexport function findMosaicNodePathByKey(\n root: MosaicLayoutNode | undefined | null,\n key: string,\n): MosaicPath | undefined {\n return visitMosaicLeafNodes<MosaicPath | undefined>(root, (node, path) => {\n if (node === key) {\n return path;\n }\n });\n}\n\nexport function removeMosaicNodeByKey(\n root: MosaicLayoutNode | undefined | null,\n key: string,\n): {success: true; nextTree: MosaicLayoutNode} | {success: false} {\n const path = findMosaicNodePathByKey(root, key);\n if (!root || !path) return {success: false};\n try {\n return {\n success: true,\n nextTree: updateTree<string>(root, [\n createRemoveUpdate<string>(root, path),\n ]),\n };\n } catch (err) {\n console.error(err);\n // might happen when removing main view\n return {success: false};\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sqlrooms/layout",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "module": "dist/index.js",
@@ -19,8 +19,8 @@
19
19
  "access": "public"
20
20
  },
21
21
  "dependencies": {
22
- "@sqlrooms/project-config": "0.5.0",
23
- "@sqlrooms/ui": "0.5.0"
22
+ "@sqlrooms/project-config": "0.5.1",
23
+ "@sqlrooms/ui": "0.5.1"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "react": "*",
@@ -32,5 +32,5 @@
32
32
  "lint": "eslint .",
33
33
  "typedoc": "typedoc"
34
34
  },
35
- "gitHead": "2a27ef8a774f934c8150dce57aac22699fb6d22f"
35
+ "gitHead": "5e41362f1552ee1f8a661c487fe7cdb606cc6d23"
36
36
  }