@awesome-flow/noise 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/abstract/index.cjs +4234 -0
- package/dist/abstract/index.cjs.map +1 -0
- package/dist/abstract/index.d.cts +137 -0
- package/dist/abstract/index.d.ts +137 -0
- package/dist/abstract/index.js +4271 -0
- package/dist/abstract/index.js.map +1 -0
- package/dist/handle-types-D-v5S53h.d.cts +22 -0
- package/dist/handle-types-D-v5S53h.d.ts +22 -0
- package/dist/layout/index.cjs +164 -0
- package/dist/layout/index.cjs.map +1 -0
- package/dist/layout/index.d.cts +26 -0
- package/dist/layout/index.d.ts +26 -0
- package/dist/layout/index.js +136 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/modules/index.cjs +71 -0
- package/dist/modules/index.cjs.map +1 -0
- package/dist/modules/index.d.cts +18 -0
- package/dist/modules/index.d.ts +18 -0
- package/dist/modules/index.js +34 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/node-props-CeZ8Oshz.d.ts +161 -0
- package/dist/node-props-hKW-_KOU.d.cts +161 -0
- package/dist/nodes/generators/index.cjs +640 -0
- package/dist/nodes/generators/index.cjs.map +1 -0
- package/dist/nodes/generators/index.d.cts +38 -0
- package/dist/nodes/generators/index.d.ts +38 -0
- package/dist/nodes/generators/index.js +592 -0
- package/dist/nodes/generators/index.js.map +1 -0
- package/dist/nodes/groups/index.cjs +104 -0
- package/dist/nodes/groups/index.cjs.map +1 -0
- package/dist/nodes/groups/index.d.cts +7 -0
- package/dist/nodes/groups/index.d.ts +7 -0
- package/dist/nodes/groups/index.js +78 -0
- package/dist/nodes/groups/index.js.map +1 -0
- package/dist/nodes/index.cjs +2830 -0
- package/dist/nodes/index.cjs.map +1 -0
- package/dist/nodes/index.d.cts +16 -0
- package/dist/nodes/index.d.ts +16 -0
- package/dist/nodes/index.js +2840 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/modifiers/index.cjs +1593 -0
- package/dist/nodes/modifiers/index.cjs.map +1 -0
- package/dist/nodes/modifiers/index.d.cts +32 -0
- package/dist/nodes/modifiers/index.d.ts +32 -0
- package/dist/nodes/modifiers/index.js +1612 -0
- package/dist/nodes/modifiers/index.js.map +1 -0
- package/dist/nodes/output/index.cjs +210 -0
- package/dist/nodes/output/index.cjs.map +1 -0
- package/dist/nodes/output/index.d.cts +13 -0
- package/dist/nodes/output/index.d.ts +13 -0
- package/dist/nodes/output/index.js +181 -0
- package/dist/nodes/output/index.js.map +1 -0
- package/dist/nodes/selectors/index.cjs +136 -0
- package/dist/nodes/selectors/index.cjs.map +1 -0
- package/dist/nodes/selectors/index.d.cts +16 -0
- package/dist/nodes/selectors/index.d.ts +16 -0
- package/dist/nodes/selectors/index.js +113 -0
- package/dist/nodes/selectors/index.js.map +1 -0
- package/dist/nodes/transformers/index.cjs +477 -0
- package/dist/nodes/transformers/index.cjs.map +1 -0
- package/dist/nodes/transformers/index.d.cts +22 -0
- package/dist/nodes/transformers/index.d.ts +22 -0
- package/dist/nodes/transformers/index.js +459 -0
- package/dist/nodes/transformers/index.js.map +1 -0
- package/dist/properties-BxwtU6i9.d.cts +9 -0
- package/dist/properties-BxwtU6i9.d.ts +9 -0
- package/dist/templates/generators/index.cjs +1714 -0
- package/dist/templates/generators/index.cjs.map +1 -0
- package/dist/templates/generators/index.d.cts +89 -0
- package/dist/templates/generators/index.d.ts +89 -0
- package/dist/templates/generators/index.js +1723 -0
- package/dist/templates/generators/index.js.map +1 -0
- package/dist/templates/groups/index.cjs +1690 -0
- package/dist/templates/groups/index.cjs.map +1 -0
- package/dist/templates/groups/index.d.cts +11 -0
- package/dist/templates/groups/index.d.ts +11 -0
- package/dist/templates/groups/index.js +1711 -0
- package/dist/templates/groups/index.js.map +1 -0
- package/dist/templates/index.cjs +1758 -0
- package/dist/templates/index.cjs.map +1 -0
- package/dist/templates/index.d.cts +15 -0
- package/dist/templates/index.d.ts +15 -0
- package/dist/templates/index.js +1745 -0
- package/dist/templates/index.js.map +1 -0
- package/dist/templates/modifiers/index.cjs +1708 -0
- package/dist/templates/modifiers/index.cjs.map +1 -0
- package/dist/templates/modifiers/index.d.cts +71 -0
- package/dist/templates/modifiers/index.d.ts +71 -0
- package/dist/templates/modifiers/index.js +1720 -0
- package/dist/templates/modifiers/index.js.map +1 -0
- package/dist/templates/output/index.cjs +1696 -0
- package/dist/templates/output/index.cjs.map +1 -0
- package/dist/templates/output/index.d.cts +29 -0
- package/dist/templates/output/index.d.ts +29 -0
- package/dist/templates/output/index.js +1714 -0
- package/dist/templates/output/index.js.map +1 -0
- package/dist/templates/selectors/index.cjs +1692 -0
- package/dist/templates/selectors/index.cjs.map +1 -0
- package/dist/templates/selectors/index.d.cts +22 -0
- package/dist/templates/selectors/index.d.ts +22 -0
- package/dist/templates/selectors/index.js +1712 -0
- package/dist/templates/selectors/index.js.map +1 -0
- package/dist/templates/transformers/index.cjs +1698 -0
- package/dist/templates/transformers/index.cjs.map +1 -0
- package/dist/templates/transformers/index.d.cts +40 -0
- package/dist/templates/transformers/index.d.ts +40 -0
- package/dist/templates/transformers/index.js +1715 -0
- package/dist/templates/transformers/index.js.map +1 -0
- package/package.json +111 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/nodes/generators/noise-billow-node.tsx","../../../src/layout/node-property-variables.tsx","../../../src/layout/node-value-input.tsx","../../../src/layout/node-property-input.tsx","../../../src/nodes/generators/noise-checkerboard-node.tsx","../../../src/nodes/generators/noise-const-node.tsx","../../../src/nodes/generators/noise-cylinders-node.tsx","../../../src/nodes/generators/noise-perlin-node.tsx","../../../src/nodes/generators/noise-ridgedmulti-node.tsx","../../../src/nodes/generators/noise-simplex-node.tsx","../../../src/modules/simplex-module.ts","../../../src/nodes/generators/noise-spheres-node.tsx","../../../src/nodes/generators/noise-voronoi-node.tsx","../../../src/nodes/generators/position-const-node.tsx","../../../src/nodes/generators/position-grid-node.tsx","../../../src/nodes/generators/variable-property-node.tsx","../../../src/nodes/generators/variable-value-node.tsx"],"sourcesContent":["import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useMemo } from 'react';\nimport { Billow } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { nodeDataPropertyExcept } from '@awesome-flow/core/abstract';\nimport { PropertyValue } from '../../abstract/properties';\nimport NodePropertyVariables from '../../layout/node-property-variables';\nimport { ComputedModuleData, NodeFBMNoiseData } from '../../abstract/node-props';\n\nfunction NoiseBillowNode({ id, selected, data, type }: NodeProps<Node<NodeFBMNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const module = useMemo(() => new Billow(), []);\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n Object.keys(properties).forEach((k) => {\n module[k] = properties[k].value;\n });\n\n updateComputedData(id, { module });\n },\n [id, module, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertyVariables\n data={data}\n except={nodeDataPropertyExcept}\n nodeId={id}\n onPropertiesChange={onPropertiesChange}\n />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"target\" />\n </NodeContainer>\n );\n}\n\nexport default NoiseBillowNode;\n","import { useIncomingNodeData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Group, Stack } from '@mantine/core';\nimport { getObjectKeys } from '@awesome-flow/core/utils';\nimport { nodeDataPropertyExcept } from '@awesome-flow/core/abstract';\nimport { NodeVariablePropertyData } from '../abstract/node-props';\nimport { PropertyValue, ValueType } from '../abstract/properties';\nimport NodePropertyInput from './node-property-input';\n\nexport type NodeTrackVariablesProps = {\n nodeId: string;\n data: Record<string, any>;\n except?: Set<string>;\n onPropertiesChange?: (properties: Record<string, PropertyValue>) => void;\n};\n\nfunction NodePropertyVariables({\n data,\n nodeId,\n onPropertiesChange,\n except = nodeDataPropertyExcept,\n}: Readonly<NodeTrackVariablesProps>) {\n const [properties, setProperties] = useState<Record<string, PropertyValue>>(() => {\n const keys = getObjectKeys(data, except);\n\n const dataProps = {};\n\n for (const key of keys) {\n dataProps[key] = {\n name: key,\n value: data[key],\n } satisfies PropertyValue;\n }\n\n return dataProps;\n });\n\n const updateNodeData = useUpdateNodeData();\n const incoming = useIncomingNodeData<NodeVariablePropertyData>(nodeId);\n\n const resetAllDisabled = useCallback(() => {\n const keys = Object.keys(properties);\n\n keys.forEach((k) => {\n properties[k].disabled = false;\n });\n\n setProperties(properties);\n }, []);\n\n const updatePropertyValue = useCallback((name: string, value: ValueType, disabled?: boolean) => {\n let property = properties[name];\n\n if (property) {\n property.value = value;\n } else {\n property = {\n name,\n value,\n };\n }\n\n property.disabled = disabled;\n\n setProperties({ ...properties, [name]: property });\n updateNodeData(nodeId, { [name]: value });\n }, []);\n\n useEffect(() => {\n resetAllDisabled();\n\n if (incoming?.length) {\n for (const connection of incoming) {\n if (connection.property && properties[connection.property.name] !== undefined) {\n updatePropertyValue(connection.property.name, connection.property.value, true);\n }\n }\n }\n }, [incoming]);\n\n useEffect(() => {\n if (onPropertiesChange) {\n onPropertiesChange(properties);\n }\n }, [onPropertiesChange, properties]);\n\n const nodes = useMemo(() => {\n return Object.keys(properties).map((key) => {\n const property = properties[key];\n\n return (\n <Group key={key}>\n {property.name}:<NodePropertyInput property={property} onChange={updatePropertyValue} />\n </Group>\n );\n });\n }, [properties, updatePropertyValue]);\n\n return <Stack>{nodes}</Stack>;\n}\n\nexport default NodePropertyVariables;\n","import { Input, NumberInput, Switch } from '@mantine/core';\nimport { ValueType } from '../abstract/properties';\n\nexport type NodeValueInputProps = {\n value: ValueType;\n disabled?: boolean;\n step?: number;\n onChange: (value: ValueType) => void;\n};\n\nfunction NodeValueInput({ value, disabled, step, onChange }: Readonly<NodeValueInputProps>) {\n if (value === undefined || value === null) {\n return <></>;\n }\n\n switch (typeof value) {\n case 'boolean': {\n return (\n <Switch\n checked={value}\n disabled={disabled}\n onChange={(e) => onChange(e.currentTarget.checked)}\n />\n );\n }\n\n case 'number': {\n return (\n <NumberInput value={value} disabled={disabled} step={step} onChange={(e) => onChange(e)} />\n );\n }\n\n case 'string': {\n return (\n <Input\n value={value}\n disabled={disabled}\n onChange={(e) => onChange(e.currentTarget.value)}\n />\n );\n }\n\n default:\n throw new Error(`Unknown input node for value of type: ${typeof value} (${value})`);\n }\n}\n\nexport default NodeValueInput;\n","import { ValueType, PropertyValue } from '../abstract/properties';\nimport NodeValueInput from './node-value-input';\n\nexport type NodePropertyInputProps = {\n property: PropertyValue;\n onChange: (name: string, value: ValueType) => void;\n};\n\nfunction NodePropertyInput({ property, onChange }: Readonly<NodePropertyInputProps>) {\n if (!property) {\n return <></>;\n }\n\n return (\n <NodeValueInput\n value={property.value}\n disabled={property.disabled}\n step={property.step}\n onChange={(value) => onChange(property.name, value)}\n />\n );\n}\n\nexport default NodePropertyInput;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useMemo } from 'react';\nimport { Checkerboard } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { ComputedModuleData } from '../../abstract/node-props';\n\nfunction NoiseCheckerboardNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n const module = useMemo(() => new Checkerboard(), []);\n\n useEffect(() => {\n updateComputedData(id, { module });\n }, [id, module, updateComputedData]);\n\n return <NodeContainer id={id} selected={selected} data={data} type={type} />;\n}\n\nexport default NoiseCheckerboardNode;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { Const } from 'libnoise-ts/module/generator';\nimport { ComputedModuleData, NodeConstNoiseData } from '../../abstract/node-props';\n\nfunction NoiseConstNode({ id, selected, data, type }: NodeProps<Node<NodeConstNoiseData>>) {\n const [min, setMin] = useState(data.min);\n const [max, setMax] = useState(data.max);\n const [noise, setNoise] = useState(data.noise);\n\n const updateNodeData = useUpdateNodeData<NodeConstNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const module = useMemo(() => new Const(), []);\n\n useEffect(() => {\n module.value = noise;\n\n updateNodeData(id, { noise, min, max });\n updateComputedData(id, { module });\n }, [noise, min, max, module, updateNodeData, id, updateComputedData]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n <NumberInput size=\"xs\" w={100} value={min} onChange={(e) => setMin(Number(e))} />\n <NumberInput size=\"xs\" w={100} value={max} onChange={(e) => setMax(Number(e))} />\n </Group>\n <Group>\n noise:\n <NumberInput\n size=\"xs\"\n value={noise}\n onChange={(e) => setNoise(Number(e))}\n max={max}\n min={min}\n step={0.1}\n />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseConstNode;\n","import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useMemo } from 'react';\nimport { Cylinders } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { ComputedModuleData, NodeCylindersNoiseData } from '../../abstract/node-props';\nimport { PropertyValue } from '../../abstract/properties';\nimport NodePropertyVariables from '../../layout/node-property-variables';\n\nfunction NoiseCylindersNode({ id, selected, data, type }: NodeProps<Node<NodeCylindersNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const module = useMemo(() => new Cylinders(), []);\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n Object.keys(properties).forEach((k) => {\n module[k] = properties[k].value;\n });\n updateComputedData(id, { module });\n },\n\n [id, module, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertyVariables data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"target\" />\n </NodeContainer>\n );\n}\n\nexport default NoiseCylindersNode;\n","import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useMemo } from 'react';\nimport { Perlin } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { ComputedModuleData, NodeFBMNoiseData } from '../../abstract/node-props';\nimport { PropertyValue } from '../../abstract/properties';\nimport NodePropertyVariables from '../../layout/node-property-variables';\n\nfunction NoisePerlinNode({ id, selected, data, type }: NodeProps<Node<NodeFBMNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const module = useMemo(() => new Perlin(), []);\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n Object.keys(properties).forEach((k) => {\n module[k] = properties[k].value;\n });\n\n updateComputedData(id, { module });\n },\n [id, module, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertyVariables data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"target\" />\n </NodeContainer>\n );\n}\n\nexport default NoisePerlinNode;\n","import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useMemo } from 'react';\nimport { RidgedMulti } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { ComputedModuleData, NodeRidgedNoiseData } from '../../abstract/node-props';\nimport { PropertyValue } from '../../abstract/properties';\nimport NodePropertyVariables from '../../layout/node-property-variables';\n\nfunction NoiseRidgedMultiNode({ id, selected, data, type }: NodeProps<Node<NodeRidgedNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n const module = useMemo(() => new RidgedMulti(), []);\n\n const onPropertiesChange = useCallback((properties: Record<string, PropertyValue>) => {\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n updateComputedData(id, { module });\n }, []);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertyVariables data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"target\" />\n </NodeContainer>\n );\n}\n\nexport default NoiseRidgedMultiNode;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useMemo } from 'react';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { ComputedModuleData } from '../../abstract/node-props';\nimport { SimplexModule } from '../../modules/simplex-module';\n\nfunction NoiseSimplexNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const module = useMemo(() => new SimplexModule(), []);\n\n useEffect(() => {\n updateComputedData(id, { module });\n }, []);\n\n return <NodeContainer id={id} selected={selected} data={data} type={type} />;\n}\n\nexport default NoiseSimplexNode;\n","import Module from 'libnoise-ts/module/Module';\nimport { NoiseFunction3D, RandomFn, createNoise3D } from 'simplex-noise';\n\nexport class SimplexModule extends Module {\n private noise: NoiseFunction3D;\n\n constructor(random?: RandomFn) {\n super();\n this.noise = createNoise3D(random);\n }\n\n getValue(x: number, y: number, z: number): number {\n return this.noise(x, y, z);\n }\n}\n","import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useMemo } from 'react';\nimport { Spheres } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { ComputedModuleData, NodeSpheresNoiseData } from '../../abstract/node-props';\nimport { PropertyValue } from '../../abstract/properties';\nimport NodePropertyVariables from '../../layout/node-property-variables';\n\nfunction NoiseSpheresNode({ id, selected, data, type }: NodeProps<Node<NodeSpheresNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n const module = useMemo(() => new Spheres(), []);\n\n const onPropertiesChange = useCallback((properties: Record<string, PropertyValue>) => {\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n updateComputedData(id, { module });\n }, []);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertyVariables data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"target\" />\n </NodeContainer>\n );\n}\n\nexport default NoiseSpheresNode;\n","import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback } from 'react';\nimport { Voronoi } from 'libnoise-ts/module/generator';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { ComputedModuleData, NodeVoronoiNoiseData } from '../../abstract/node-props';\nimport { PropertyValue } from '../../abstract/properties';\nimport NodePropertyVariables from '../../layout/node-property-variables';\n\nfunction NoiseVoronoiNode({ id, selected, data, type }: NodeProps<Node<NodeVoronoiNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue<number & boolean>>) => {\n const module = new Voronoi(\n properties.frequency.value,\n properties.displacement.value,\n properties.distance.value,\n properties.seed.value\n );\n\n updateComputedData(id, { module });\n },\n []\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertyVariables data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"target\" />\n </NodeContainer>\n );\n}\n\nexport default NoiseVoronoiNode;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useState } from 'react';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { ComputedPositionsData, NodePositionData } from '../../abstract/node-props';\n\nfunction PositionConstNode({ id, selected, data, type }: NodeProps<Node<NodePositionData>>) {\n const position = data.position ?? { x: 0, y: 0, z: 0 };\n\n const [x, setX] = useState(position.x);\n const [y, setY] = useState(position.y);\n const [z, setZ] = useState(position.z);\n\n const updateNodeData = useUpdateNodeData<NodePositionData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedPositionsData>();\n\n useEffect(() => {\n const position = { x, y, z };\n\n updateNodeData(id, {\n position,\n });\n\n updateComputedData(id, {\n positions: [position],\n });\n }, [x, y, z]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n x: <NumberInput size=\"xs\" w={100} value={x} onChange={(e) => setX(Number(e))} />\n </Group>\n <Group>\n y: <NumberInput size=\"xs\" w={100} value={y} onChange={(e) => setY(Number(e))} />\n </Group>\n <Group>\n z: <NumberInput size=\"xs\" w={100} value={z} onChange={(e) => setZ(Number(e))} />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default PositionConstNode;\n","import { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useState } from 'react';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { ComputedPositionsData, NodeGridData, Position } from '../../abstract/node-props';\n\nfunction PositionGridNode({ id, selected, data, type }: NodeProps<Node<NodeGridData>>) {\n const [x, setX] = useState(data.center?.x);\n const [y, setY] = useState(data.center?.y);\n const [z, setZ] = useState(data.center?.z);\n\n const [radius, setRadius] = useState(data.radius);\n\n const updateNodeData = useUpdateNodeData<NodeGridData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedPositionsData>();\n\n useEffect(() => {\n updateNodeData(id, {\n center: { x, y, z },\n });\n }, [x, y, z]);\n\n useEffect(() => {\n updateNodeData(id, {\n radius,\n });\n }, [radius]);\n\n useEffect(() => {\n const positions: Position[] = [];\n\n for (let i = -radius; i < radius; i++) {\n for (let j = -radius; j < radius; j++) {\n positions.push({ x: x + i, y: y + j, z });\n }\n }\n\n updateComputedData(id, {\n positions,\n });\n }, [x, y, z, radius]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n x: <NumberInput size=\"xs\" w={100} value={x} onChange={(e) => setX(Number(e))} />\n </Group>\n <Group>\n y: <NumberInput size=\"xs\" w={100} value={y} onChange={(e) => setY(Number(e))} />\n </Group>\n <Group>\n z: <NumberInput size=\"xs\" w={100} value={z} onChange={(e) => setZ(Number(e))} />\n </Group>\n <Group>\n r: <NumberInput size=\"xs\" w={100} value={radius} onChange={(e) => setRadius(Number(e))} />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default PositionGridNode;\n","import { NodeCombobox, NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useEffect, useState } from 'react';\nimport { Stack } from '@mantine/core';\nimport { useIncomingNodeData, useOutgoingNodes, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { getObjectPropertyMap } from '@awesome-flow/core/utils';\nimport { nodeDataPropertyExcept } from '@awesome-flow/core/abstract';\nimport { NodeVariablePropertyData, NodeVariableValueData } from '../../abstract/node-props';\nimport { PropertyValue, ValueType } from '../../abstract/properties';\nimport NodePropertyInput from '../../layout/node-property-input';\n\nfunction VariablePropertyNode({\n id,\n selected,\n data,\n type,\n}: NodeProps<Node<NodeVariablePropertyData>>) {\n const [options, setOptions] = useState<Record<string, number>>({});\n const [selectedProperty, setSelectedProperty] = useState<PropertyValue>(data.property);\n\n const updateNodeData = useUpdateNodeData<NodeVariablePropertyData>();\n const outgoing = useOutgoingNodes<NodeVariablePropertyData>(id);\n const incoming = useIncomingNodeData<NodeVariableValueData>(id);\n\n useEffect(() => {\n if (outgoing?.length) {\n // todo: only show common properties from all outgoing connections\n const { data } = outgoing[0];\n const properties = getObjectPropertyMap(data, nodeDataPropertyExcept);\n\n setOptions(properties);\n\n if (!selectedProperty) {\n const keys = Object.keys(properties);\n\n if (keys.length) {\n setSelectedProperty({\n name: keys[0],\n value: properties[keys[0]],\n });\n }\n }\n } else {\n setSelectedProperty(null);\n }\n }, [outgoing]);\n\n useEffect(() => {\n if (!incoming?.length && selectedProperty?.disabled) {\n setSelectedProperty({ ...selectedProperty, disabled: false });\n } else if (incoming?.length && selectedProperty) {\n const incomingValue = incoming[0].value;\n\n if (incomingValue !== undefined && incomingValue !== null) {\n setSelectedProperty({\n name: selectedProperty.name,\n value: incomingValue,\n disabled: true,\n });\n }\n }\n }, [incoming]);\n\n useEffect(() => {\n if (selectedProperty) {\n updateNodeData(id, { property: selectedProperty });\n }\n }, [selectedProperty]);\n\n const onPropertyChange = useCallback(\n (selected: string) => {\n setSelectedProperty({\n name: selected,\n value: options[selected],\n });\n },\n [options]\n );\n\n const onValueChange = useCallback((name: string, value: ValueType) => {\n setSelectedProperty({\n name,\n value,\n });\n }, []);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack align=\"center\">\n <NodeCombobox\n options={options}\n onChange={onPropertyChange}\n selected={selectedProperty?.name}\n hideListValues\n />\n <NodePropertyInput property={selectedProperty} onChange={onValueChange} />\n </Stack>\n <NodeTrackConnections handles={data.handles} nodeId={id} />\n </NodeContainer>\n );\n}\n\nexport default VariablePropertyNode;\n","import { NodeContainer, NodeTrackConnections } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useState } from 'react';\nimport { useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { NodeVariableValueData } from '../../abstract/node-props';\nimport { ValueType } from '../../abstract/properties';\nimport NodeValueInput from '../../layout/node-value-input';\n\nfunction VariableValueNode({ id, selected, data, type }: NodeProps<Node<NodeVariableValueData>>) {\n const [value, setValue] = useState<ValueType>(data.value || 0.0);\n const updateNodeData = useUpdateNodeData<NodeVariableValueData>();\n\n const onValueChange = useCallback((newValue: ValueType) => {\n updateNodeData(id, { value: newValue });\n setValue(newValue);\n }, []);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodeValueInput value={value} onChange={onValueChange} />\n <NodeTrackConnections handles={data.handles} nodeId={id} type=\"source\" />\n </NodeContainer>\n );\n}\n\nexport default VariableValueNode;\n"],"mappings":"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","names":["useCallback","useMemo","nodeDataPropertyExcept","Fragment","jsx","jsx","jsx","jsxs","useMemo","useCallback","nodeDataPropertyExcept","NodeContainer","useEffect","useMemo","useUpdateNodeComputedData","jsx","NodeContainer","useEffect","useMemo","useState","Group","NumberInput","Stack","useUpdateNodeComputedData","useUpdateNodeData","jsx","jsxs","NodeContainer","NodeTrackConnections","useCallback","useMemo","useUpdateNodeComputedData","jsx","jsxs","useUpdateNodeComputedData","useMemo","useCallback","NodeContainer","NodeTrackConnections","NodeContainer","NodeTrackConnections","useCallback","useMemo","useUpdateNodeComputedData","jsx","jsxs","useUpdateNodeComputedData","useMemo","useCallback","NodeContainer","NodeTrackConnections","NodeContainer","NodeTrackConnections","useCallback","useMemo","useUpdateNodeComputedData","jsx","jsxs","useUpdateNodeComputedData","useMemo","useCallback","NodeContainer","NodeTrackConnections","NodeContainer","useEffect","useMemo","useUpdateNodeComputedData","jsx","useUpdateNodeComputedData","useMemo","useEffect","NodeContainer","NodeContainer","NodeTrackConnections","useCallback","useMemo","useUpdateNodeComputedData","jsx","jsxs","useUpdateNodeComputedData","useMemo","useCallback","NodeContainer","NodeTrackConnections","NodeContainer","NodeTrackConnections","useCallback","useUpdateNodeComputedData","jsx","jsxs","useUpdateNodeComputedData","useCallback","NodeContainer","NodeTrackConnections","NodeContainer","useEffect","useState","Group","NumberInput","Stack","useUpdateNodeComputedData","useUpdateNodeData","jsx","jsxs","position","NodeContainer","useEffect","useState","Group","NumberInput","Stack","useUpdateNodeComputedData","useUpdateNodeData","jsx","jsxs","NodeContainer","NodeTrackConnections","useCallback","useEffect","useState","Stack","useIncomingNodeData","useUpdateNodeData","nodeDataPropertyExcept","jsx","jsxs","useState","useUpdateNodeData","useIncomingNodeData","useEffect","data","nodeDataPropertyExcept","useCallback","selected","NodeContainer","Stack","NodeTrackConnections","NodeContainer","NodeTrackConnections","useCallback","useState","useUpdateNodeData","jsx","jsxs","useState","useUpdateNodeData","useCallback","NodeContainer","NodeTrackConnections"]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/nodes/groups/index.ts
|
|
20
|
+
var groups_exports = {};
|
|
21
|
+
__export(groups_exports, {
|
|
22
|
+
ModuleGroupNode: () => node_module_group_default
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(groups_exports);
|
|
25
|
+
|
|
26
|
+
// src/nodes/groups/node-module-group.tsx
|
|
27
|
+
var import_layout = require("@awesome-flow/core/layout");
|
|
28
|
+
var import_react = require("@xyflow/react");
|
|
29
|
+
var import_abstract = require("@awesome-flow/core/abstract");
|
|
30
|
+
var import_react2 = require("react");
|
|
31
|
+
var import_shallow = require("zustand/shallow");
|
|
32
|
+
var import_core = require("@mantine/core");
|
|
33
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
34
|
+
function ModuleGroupNode({
|
|
35
|
+
id,
|
|
36
|
+
selected,
|
|
37
|
+
data,
|
|
38
|
+
type,
|
|
39
|
+
width,
|
|
40
|
+
height
|
|
41
|
+
}) {
|
|
42
|
+
const context = (0, import_react2.useContext)(import_abstract.FlowContext);
|
|
43
|
+
const updateNodeInternals = (0, import_react.useUpdateNodeInternals)();
|
|
44
|
+
const triggerNodeChanges = (0, import_react.useStore)((s) => s.triggerNodeChanges);
|
|
45
|
+
const { groupNodes, setGroupCollapsed } = context.useFlowStore(
|
|
46
|
+
(0, import_react2.useCallback)(
|
|
47
|
+
(state) => ({ groupNodes: state.groups[id], setGroupCollapsed: state.setGroupCollapsed }),
|
|
48
|
+
[]
|
|
49
|
+
)
|
|
50
|
+
);
|
|
51
|
+
const intersectingNode = context.useInteractivityStore(
|
|
52
|
+
(0, import_react2.useCallback)((state) => state.nodeIntersectionTargets[id], [id]),
|
|
53
|
+
import_shallow.shallow
|
|
54
|
+
);
|
|
55
|
+
(0, import_react2.useEffect)(() => {
|
|
56
|
+
updateNodeInternals(id);
|
|
57
|
+
}, [width, height]);
|
|
58
|
+
(0, import_react2.useEffect)(() => {
|
|
59
|
+
triggerNodeChanges([
|
|
60
|
+
{
|
|
61
|
+
id,
|
|
62
|
+
type: "select",
|
|
63
|
+
selected: !!intersectingNode
|
|
64
|
+
}
|
|
65
|
+
]);
|
|
66
|
+
}, [intersectingNode]);
|
|
67
|
+
const onCollapsed = (0, import_react2.useCallback)((collapsed) => {
|
|
68
|
+
setGroupCollapsed(id, collapsed);
|
|
69
|
+
}, []);
|
|
70
|
+
const size = (0, import_react2.useMemo)(() => {
|
|
71
|
+
return {
|
|
72
|
+
width: data.initialSize?.width || 100,
|
|
73
|
+
height: data.initialSize?.height || 50
|
|
74
|
+
};
|
|
75
|
+
}, [data.initialSize]);
|
|
76
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
77
|
+
import_layout.NodeContainer,
|
|
78
|
+
{
|
|
79
|
+
id,
|
|
80
|
+
selected,
|
|
81
|
+
data,
|
|
82
|
+
title: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Group, { justify: "space-between", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_core.Group, { gap: "xs", children: [
|
|
83
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.Badge, { size: "xs", variant: "outline", radius: "xs", color: "gray", children: groupNodes?.length || 0 }),
|
|
84
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_layout.NodeCollapse, { nodeId: id, isCollapsed: data.isCollapsed, onCollapsed })
|
|
85
|
+
] }) }),
|
|
86
|
+
type,
|
|
87
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
88
|
+
import_react.NodeResizer,
|
|
89
|
+
{
|
|
90
|
+
nodeId: id,
|
|
91
|
+
minWidth: size.width,
|
|
92
|
+
minHeight: size.height,
|
|
93
|
+
isVisible: selected && !data.isCollapsed
|
|
94
|
+
}
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
var node_module_group_default = ModuleGroupNode;
|
|
100
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
101
|
+
0 && (module.exports = {
|
|
102
|
+
ModuleGroupNode
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/nodes/groups/index.ts","../../../src/nodes/groups/node-module-group.tsx"],"sourcesContent":["export { default as ModuleGroupNode } from './node-module-group';\n","import { NodeContainer, NodeCollapse } from '@awesome-flow/core/layout';\nimport { Node, NodeProps, NodeResizer, useStore, useUpdateNodeInternals } from '@xyflow/react';\nimport { BasicNodeData, FlowContext } from '@awesome-flow/core/abstract';\nimport { useCallback, useContext, useEffect, useMemo } from 'react';\nimport { shallow } from 'zustand/shallow';\nimport { Badge, Group } from '@mantine/core';\n\nfunction ModuleGroupNode({\n id,\n selected,\n data,\n type,\n width,\n height,\n}: NodeProps<Node<BasicNodeData>>) {\n const context = useContext(FlowContext);\n const updateNodeInternals = useUpdateNodeInternals();\n const triggerNodeChanges = useStore((s) => s.triggerNodeChanges);\n\n const { groupNodes, setGroupCollapsed } = context.useFlowStore(\n useCallback(\n (state) => ({ groupNodes: state.groups[id], setGroupCollapsed: state.setGroupCollapsed }),\n []\n )\n );\n\n const intersectingNode = context.useInteractivityStore(\n useCallback((state) => state.nodeIntersectionTargets[id], [id]),\n shallow\n );\n\n useEffect(() => {\n updateNodeInternals(id);\n }, [width, height]);\n\n useEffect(() => {\n triggerNodeChanges([\n {\n id,\n type: 'select',\n selected: !!intersectingNode,\n },\n ]);\n }, [intersectingNode]);\n\n const onCollapsed = useCallback((collapsed: boolean) => {\n setGroupCollapsed(id, collapsed);\n }, []);\n\n const size = useMemo(() => {\n return {\n width: data.initialSize?.width || 100,\n height: data.initialSize?.height || 50,\n };\n }, [data.initialSize]);\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Group justify=\"space-between\">\n <Group gap=\"xs\">\n <Badge size=\"xs\" variant=\"outline\" radius=\"xs\" color=\"gray\">\n {groupNodes?.length || 0}\n </Badge>\n <NodeCollapse nodeId={id} isCollapsed={data.isCollapsed} onCollapsed={onCollapsed} />\n </Group>\n </Group>\n }\n type={type}\n >\n <NodeResizer\n nodeId={id}\n minWidth={size.width}\n minHeight={size.height}\n isVisible={selected && !data.isCollapsed}\n />\n </NodeContainer>\n );\n}\n\nexport default ModuleGroupNode;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,oBAA4C;AAC5C,mBAA+E;AAC/E,sBAA2C;AAC3C,IAAAA,gBAA4D;AAC5D,qBAAwB;AACxB,kBAA6B;AA0DnB;AAxDV,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmC;AACjC,QAAM,cAAU,0BAAW,2BAAW;AACtC,QAAM,0BAAsB,qCAAuB;AACnD,QAAM,yBAAqB,uBAAS,CAAC,MAAM,EAAE,kBAAkB;AAE/D,QAAM,EAAE,YAAY,kBAAkB,IAAI,QAAQ;AAAA,QAChD;AAAA,MACE,CAAC,WAAW,EAAE,YAAY,MAAM,OAAO,EAAE,GAAG,mBAAmB,MAAM,kBAAkB;AAAA,MACvF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,mBAAmB,QAAQ;AAAA,QAC/B,2BAAY,CAAC,UAAU,MAAM,wBAAwB,EAAE,GAAG,CAAC,EAAE,CAAC;AAAA,IAC9D;AAAA,EACF;AAEA,+BAAU,MAAM;AACd,wBAAoB,EAAE;AAAA,EACxB,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,+BAAU,MAAM;AACd,uBAAmB;AAAA,MACjB;AAAA,QACE;AAAA,QACA,MAAM;AAAA,QACN,UAAU,CAAC,CAAC;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,kBAAc,2BAAY,CAAC,cAAuB;AACtD,sBAAkB,IAAI,SAAS;AAAA,EACjC,GAAG,CAAC,CAAC;AAEL,QAAM,WAAO,uBAAQ,MAAM;AACzB,WAAO;AAAA,MACL,OAAO,KAAK,aAAa,SAAS;AAAA,MAClC,QAAQ,KAAK,aAAa,UAAU;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,KAAK,WAAW,CAAC;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,OACE,4CAAC,qBAAM,SAAQ,iBACb,uDAAC,qBAAM,KAAI,MACT;AAAA,oDAAC,qBAAM,MAAK,MAAK,SAAQ,WAAU,QAAO,MAAK,OAAM,QAClD,sBAAY,UAAU,GACzB;AAAA,QACA,4CAAC,8BAAa,QAAQ,IAAI,aAAa,KAAK,aAAa,aAA0B;AAAA,SACrF,GACF;AAAA,MAEF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ;AAAA,UACR,UAAU,KAAK;AAAA,UACf,WAAW,KAAK;AAAA,UAChB,WAAW,YAAY,CAAC,KAAK;AAAA;AAAA,MAC/B;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;","names":["import_react"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { NodeProps, Node } from '@xyflow/react';
|
|
3
|
+
import { BasicNodeData } from '@awesome-flow/core/abstract';
|
|
4
|
+
|
|
5
|
+
declare function ModuleGroupNode({ id, selected, data, type, width, height, }: NodeProps<Node<BasicNodeData>>): react_jsx_runtime.JSX.Element;
|
|
6
|
+
|
|
7
|
+
export { ModuleGroupNode };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import { NodeProps, Node } from '@xyflow/react';
|
|
3
|
+
import { BasicNodeData } from '@awesome-flow/core/abstract';
|
|
4
|
+
|
|
5
|
+
declare function ModuleGroupNode({ id, selected, data, type, width, height, }: NodeProps<Node<BasicNodeData>>): react_jsx_runtime.JSX.Element;
|
|
6
|
+
|
|
7
|
+
export { ModuleGroupNode };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// src/nodes/groups/node-module-group.tsx
|
|
2
|
+
import { NodeContainer, NodeCollapse } from "@awesome-flow/core/layout";
|
|
3
|
+
import { NodeResizer, useStore, useUpdateNodeInternals } from "@xyflow/react";
|
|
4
|
+
import { FlowContext } from "@awesome-flow/core/abstract";
|
|
5
|
+
import { useCallback, useContext, useEffect, useMemo } from "react";
|
|
6
|
+
import { shallow } from "zustand/shallow";
|
|
7
|
+
import { Badge, Group } from "@mantine/core";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
function ModuleGroupNode({
|
|
10
|
+
id,
|
|
11
|
+
selected,
|
|
12
|
+
data,
|
|
13
|
+
type,
|
|
14
|
+
width,
|
|
15
|
+
height
|
|
16
|
+
}) {
|
|
17
|
+
const context = useContext(FlowContext);
|
|
18
|
+
const updateNodeInternals = useUpdateNodeInternals();
|
|
19
|
+
const triggerNodeChanges = useStore((s) => s.triggerNodeChanges);
|
|
20
|
+
const { groupNodes, setGroupCollapsed } = context.useFlowStore(
|
|
21
|
+
useCallback(
|
|
22
|
+
(state) => ({ groupNodes: state.groups[id], setGroupCollapsed: state.setGroupCollapsed }),
|
|
23
|
+
[]
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
const intersectingNode = context.useInteractivityStore(
|
|
27
|
+
useCallback((state) => state.nodeIntersectionTargets[id], [id]),
|
|
28
|
+
shallow
|
|
29
|
+
);
|
|
30
|
+
useEffect(() => {
|
|
31
|
+
updateNodeInternals(id);
|
|
32
|
+
}, [width, height]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
triggerNodeChanges([
|
|
35
|
+
{
|
|
36
|
+
id,
|
|
37
|
+
type: "select",
|
|
38
|
+
selected: !!intersectingNode
|
|
39
|
+
}
|
|
40
|
+
]);
|
|
41
|
+
}, [intersectingNode]);
|
|
42
|
+
const onCollapsed = useCallback((collapsed) => {
|
|
43
|
+
setGroupCollapsed(id, collapsed);
|
|
44
|
+
}, []);
|
|
45
|
+
const size = useMemo(() => {
|
|
46
|
+
return {
|
|
47
|
+
width: data.initialSize?.width || 100,
|
|
48
|
+
height: data.initialSize?.height || 50
|
|
49
|
+
};
|
|
50
|
+
}, [data.initialSize]);
|
|
51
|
+
return /* @__PURE__ */ jsx(
|
|
52
|
+
NodeContainer,
|
|
53
|
+
{
|
|
54
|
+
id,
|
|
55
|
+
selected,
|
|
56
|
+
data,
|
|
57
|
+
title: /* @__PURE__ */ jsx(Group, { justify: "space-between", children: /* @__PURE__ */ jsxs(Group, { gap: "xs", children: [
|
|
58
|
+
/* @__PURE__ */ jsx(Badge, { size: "xs", variant: "outline", radius: "xs", color: "gray", children: groupNodes?.length || 0 }),
|
|
59
|
+
/* @__PURE__ */ jsx(NodeCollapse, { nodeId: id, isCollapsed: data.isCollapsed, onCollapsed })
|
|
60
|
+
] }) }),
|
|
61
|
+
type,
|
|
62
|
+
children: /* @__PURE__ */ jsx(
|
|
63
|
+
NodeResizer,
|
|
64
|
+
{
|
|
65
|
+
nodeId: id,
|
|
66
|
+
minWidth: size.width,
|
|
67
|
+
minHeight: size.height,
|
|
68
|
+
isVisible: selected && !data.isCollapsed
|
|
69
|
+
}
|
|
70
|
+
)
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
var node_module_group_default = ModuleGroupNode;
|
|
75
|
+
export {
|
|
76
|
+
node_module_group_default as ModuleGroupNode
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/nodes/groups/node-module-group.tsx"],"sourcesContent":["import { NodeContainer, NodeCollapse } from '@awesome-flow/core/layout';\nimport { Node, NodeProps, NodeResizer, useStore, useUpdateNodeInternals } from '@xyflow/react';\nimport { BasicNodeData, FlowContext } from '@awesome-flow/core/abstract';\nimport { useCallback, useContext, useEffect, useMemo } from 'react';\nimport { shallow } from 'zustand/shallow';\nimport { Badge, Group } from '@mantine/core';\n\nfunction ModuleGroupNode({\n id,\n selected,\n data,\n type,\n width,\n height,\n}: NodeProps<Node<BasicNodeData>>) {\n const context = useContext(FlowContext);\n const updateNodeInternals = useUpdateNodeInternals();\n const triggerNodeChanges = useStore((s) => s.triggerNodeChanges);\n\n const { groupNodes, setGroupCollapsed } = context.useFlowStore(\n useCallback(\n (state) => ({ groupNodes: state.groups[id], setGroupCollapsed: state.setGroupCollapsed }),\n []\n )\n );\n\n const intersectingNode = context.useInteractivityStore(\n useCallback((state) => state.nodeIntersectionTargets[id], [id]),\n shallow\n );\n\n useEffect(() => {\n updateNodeInternals(id);\n }, [width, height]);\n\n useEffect(() => {\n triggerNodeChanges([\n {\n id,\n type: 'select',\n selected: !!intersectingNode,\n },\n ]);\n }, [intersectingNode]);\n\n const onCollapsed = useCallback((collapsed: boolean) => {\n setGroupCollapsed(id, collapsed);\n }, []);\n\n const size = useMemo(() => {\n return {\n width: data.initialSize?.width || 100,\n height: data.initialSize?.height || 50,\n };\n }, [data.initialSize]);\n\n return (\n <NodeContainer\n id={id}\n selected={selected}\n data={data}\n title={\n <Group justify=\"space-between\">\n <Group gap=\"xs\">\n <Badge size=\"xs\" variant=\"outline\" radius=\"xs\" color=\"gray\">\n {groupNodes?.length || 0}\n </Badge>\n <NodeCollapse nodeId={id} isCollapsed={data.isCollapsed} onCollapsed={onCollapsed} />\n </Group>\n </Group>\n }\n type={type}\n >\n <NodeResizer\n nodeId={id}\n minWidth={size.width}\n minHeight={size.height}\n isVisible={selected && !data.isCollapsed}\n />\n </NodeContainer>\n );\n}\n\nexport default ModuleGroupNode;\n"],"mappings":";AAAA,SAAS,eAAe,oBAAoB;AAC5C,SAA0B,aAAa,UAAU,8BAA8B;AAC/E,SAAwB,mBAAmB;AAC3C,SAAS,aAAa,YAAY,WAAW,eAAe;AAC5D,SAAS,eAAe;AACxB,SAAS,OAAO,aAAa;AA0DnB,SACE,KADF;AAxDV,SAAS,gBAAgB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAmC;AACjC,QAAM,UAAU,WAAW,WAAW;AACtC,QAAM,sBAAsB,uBAAuB;AACnD,QAAM,qBAAqB,SAAS,CAAC,MAAM,EAAE,kBAAkB;AAE/D,QAAM,EAAE,YAAY,kBAAkB,IAAI,QAAQ;AAAA,IAChD;AAAA,MACE,CAAC,WAAW,EAAE,YAAY,MAAM,OAAO,EAAE,GAAG,mBAAmB,MAAM,kBAAkB;AAAA,MACvF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,QAAM,mBAAmB,QAAQ;AAAA,IAC/B,YAAY,CAAC,UAAU,MAAM,wBAAwB,EAAE,GAAG,CAAC,EAAE,CAAC;AAAA,IAC9D;AAAA,EACF;AAEA,YAAU,MAAM;AACd,wBAAoB,EAAE;AAAA,EACxB,GAAG,CAAC,OAAO,MAAM,CAAC;AAElB,YAAU,MAAM;AACd,uBAAmB;AAAA,MACjB;AAAA,QACE;AAAA,QACA,MAAM;AAAA,QACN,UAAU,CAAC,CAAC;AAAA,MACd;AAAA,IACF,CAAC;AAAA,EACH,GAAG,CAAC,gBAAgB,CAAC;AAErB,QAAM,cAAc,YAAY,CAAC,cAAuB;AACtD,sBAAkB,IAAI,SAAS;AAAA,EACjC,GAAG,CAAC,CAAC;AAEL,QAAM,OAAO,QAAQ,MAAM;AACzB,WAAO;AAAA,MACL,OAAO,KAAK,aAAa,SAAS;AAAA,MAClC,QAAQ,KAAK,aAAa,UAAU;AAAA,IACtC;AAAA,EACF,GAAG,CAAC,KAAK,WAAW,CAAC;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,OACE,oBAAC,SAAM,SAAQ,iBACb,+BAAC,SAAM,KAAI,MACT;AAAA,4BAAC,SAAM,MAAK,MAAK,SAAQ,WAAU,QAAO,MAAK,OAAM,QAClD,sBAAY,UAAU,GACzB;AAAA,QACA,oBAAC,gBAAa,QAAQ,IAAI,aAAa,KAAK,aAAa,aAA0B;AAAA,SACrF,GACF;AAAA,MAEF;AAAA,MAEA;AAAA,QAAC;AAAA;AAAA,UACC,QAAQ;AAAA,UACR,UAAU,KAAK;AAAA,UACf,WAAW,KAAK;AAAA,UAChB,WAAW,YAAY,CAAC,KAAK;AAAA;AAAA,MAC/B;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,4BAAQ;","names":[]}
|