@awesome-flow/noise 0.3.0 → 0.5.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.
Files changed (105) hide show
  1. package/dist/abstract/index.cjs +1403 -2079
  2. package/dist/abstract/index.d.cts +23 -25
  3. package/dist/abstract/index.d.ts +23 -25
  4. package/dist/abstract/index.js +1319 -1998
  5. package/dist/index-BungWYrh.d.cts +49 -0
  6. package/dist/index-DsQSjZC5.d.ts +49 -0
  7. package/dist/modules/index.cjs +0 -1
  8. package/dist/modules/index.js +0 -1
  9. package/dist/{node-props-CeZ8Oshz.d.ts → node-props-BbqbXDXn.d.cts} +2 -22
  10. package/dist/{node-props-hKW-_KOU.d.cts → node-props-BbqbXDXn.d.ts} +2 -22
  11. package/dist/nodes/generators/index.cjs +130 -381
  12. package/dist/nodes/generators/index.d.cts +2 -8
  13. package/dist/nodes/generators/index.d.ts +2 -8
  14. package/dist/nodes/generators/index.js +112 -361
  15. package/dist/nodes/groups/index.cjs +27 -18
  16. package/dist/nodes/groups/index.js +34 -20
  17. package/dist/nodes/index.cjs +1652 -989
  18. package/dist/nodes/index.d.cts +3 -5
  19. package/dist/nodes/index.d.ts +3 -5
  20. package/dist/nodes/index.js +1629 -965
  21. package/dist/nodes/modifiers/index.cjs +17 -120
  22. package/dist/nodes/modifiers/index.d.cts +2 -6
  23. package/dist/nodes/modifiers/index.d.ts +2 -6
  24. package/dist/nodes/modifiers/index.js +16 -125
  25. package/dist/nodes/output/index.cjs +1270 -90
  26. package/dist/nodes/output/index.js +1318 -93
  27. package/dist/nodes/selectors/index.cjs +1295 -59
  28. package/dist/nodes/selectors/index.d.cts +1 -3
  29. package/dist/nodes/selectors/index.d.ts +1 -3
  30. package/dist/nodes/selectors/index.js +1343 -66
  31. package/dist/nodes/transformers/index.cjs +67 -207
  32. package/dist/nodes/transformers/index.d.cts +3 -5
  33. package/dist/nodes/transformers/index.d.ts +3 -5
  34. package/dist/nodes/transformers/index.js +54 -194
  35. package/dist/templates/generators/index.cjs +838 -1279
  36. package/dist/templates/generators/index.d.cts +13 -50
  37. package/dist/templates/generators/index.d.ts +13 -50
  38. package/dist/templates/generators/index.js +840 -1281
  39. package/dist/templates/groups/index.cjs +836 -1273
  40. package/dist/templates/groups/index.d.cts +1 -5
  41. package/dist/templates/groups/index.d.ts +1 -5
  42. package/dist/templates/groups/index.js +839 -1278
  43. package/dist/templates/index.cjs +838 -1281
  44. package/dist/templates/index.d.cts +4 -7
  45. package/dist/templates/index.d.ts +4 -7
  46. package/dist/templates/index.js +840 -1282
  47. package/dist/templates/modifiers/index.cjs +840 -1279
  48. package/dist/templates/modifiers/index.d.cts +11 -38
  49. package/dist/templates/modifiers/index.d.ts +11 -38
  50. package/dist/templates/modifiers/index.js +842 -1282
  51. package/dist/templates/output/index.cjs +838 -1275
  52. package/dist/templates/output/index.d.cts +4 -14
  53. package/dist/templates/output/index.d.ts +4 -14
  54. package/dist/templates/output/index.js +841 -1280
  55. package/dist/templates/selectors/index.cjs +838 -1275
  56. package/dist/templates/selectors/index.d.cts +3 -9
  57. package/dist/templates/selectors/index.d.ts +3 -9
  58. package/dist/templates/selectors/index.js +841 -1280
  59. package/dist/templates/transformers/index.cjs +838 -1275
  60. package/dist/templates/transformers/index.d.cts +3 -36
  61. package/dist/templates/transformers/index.d.ts +3 -36
  62. package/dist/templates/transformers/index.js +841 -1280
  63. package/package.json +3 -3
  64. package/dist/abstract/index.cjs.map +0 -1
  65. package/dist/abstract/index.js.map +0 -1
  66. package/dist/handle-types-D-v5S53h.d.cts +0 -22
  67. package/dist/handle-types-D-v5S53h.d.ts +0 -22
  68. package/dist/layout/index.cjs +0 -164
  69. package/dist/layout/index.cjs.map +0 -1
  70. package/dist/layout/index.d.cts +0 -26
  71. package/dist/layout/index.d.ts +0 -26
  72. package/dist/layout/index.js +0 -136
  73. package/dist/layout/index.js.map +0 -1
  74. package/dist/modules/index.cjs.map +0 -1
  75. package/dist/modules/index.js.map +0 -1
  76. package/dist/nodes/generators/index.cjs.map +0 -1
  77. package/dist/nodes/generators/index.js.map +0 -1
  78. package/dist/nodes/groups/index.cjs.map +0 -1
  79. package/dist/nodes/groups/index.js.map +0 -1
  80. package/dist/nodes/index.cjs.map +0 -1
  81. package/dist/nodes/index.js.map +0 -1
  82. package/dist/nodes/modifiers/index.cjs.map +0 -1
  83. package/dist/nodes/modifiers/index.js.map +0 -1
  84. package/dist/nodes/output/index.cjs.map +0 -1
  85. package/dist/nodes/output/index.js.map +0 -1
  86. package/dist/nodes/selectors/index.cjs.map +0 -1
  87. package/dist/nodes/selectors/index.js.map +0 -1
  88. package/dist/nodes/transformers/index.cjs.map +0 -1
  89. package/dist/nodes/transformers/index.js.map +0 -1
  90. package/dist/properties-BxwtU6i9.d.cts +0 -9
  91. package/dist/properties-BxwtU6i9.d.ts +0 -9
  92. package/dist/templates/generators/index.cjs.map +0 -1
  93. package/dist/templates/generators/index.js.map +0 -1
  94. package/dist/templates/groups/index.cjs.map +0 -1
  95. package/dist/templates/groups/index.js.map +0 -1
  96. package/dist/templates/index.cjs.map +0 -1
  97. package/dist/templates/index.js.map +0 -1
  98. package/dist/templates/modifiers/index.cjs.map +0 -1
  99. package/dist/templates/modifiers/index.js.map +0 -1
  100. package/dist/templates/output/index.cjs.map +0 -1
  101. package/dist/templates/output/index.js.map +0 -1
  102. package/dist/templates/selectors/index.cjs.map +0 -1
  103. package/dist/templates/selectors/index.js.map +0 -1
  104. package/dist/templates/transformers/index.cjs.map +0 -1
  105. package/dist/templates/transformers/index.js.map +0 -1
@@ -1,22 +0,0 @@
1
- import { CustomNodeHandleData } from '@awesome-flow/core/abstract';
2
-
3
- declare enum NoiseHandleFlag {
4
- texture = 1,
5
- noise = 2,
6
- position = 4,
7
- module = 8,
8
- variableProperty = 16,
9
- variableValue = 32
10
- }
11
- declare enum DisplacementModule {
12
- sourceModule = "source",
13
- xModule = "x-module",
14
- yModule = "y-module",
15
- zModule = "z-module",
16
- output = "output"
17
- }
18
- type DisplacementModuleHandle = CustomNodeHandleData & {
19
- dataId: DisplacementModule;
20
- };
21
-
22
- export { DisplacementModule as D, NoiseHandleFlag as N, type DisplacementModuleHandle as a };
@@ -1,22 +0,0 @@
1
- import { CustomNodeHandleData } from '@awesome-flow/core/abstract';
2
-
3
- declare enum NoiseHandleFlag {
4
- texture = 1,
5
- noise = 2,
6
- position = 4,
7
- module = 8,
8
- variableProperty = 16,
9
- variableValue = 32
10
- }
11
- declare enum DisplacementModule {
12
- sourceModule = "source",
13
- xModule = "x-module",
14
- yModule = "y-module",
15
- zModule = "z-module",
16
- output = "output"
17
- }
18
- type DisplacementModuleHandle = CustomNodeHandleData & {
19
- dataId: DisplacementModule;
20
- };
21
-
22
- export { DisplacementModule as D, NoiseHandleFlag as N, type DisplacementModuleHandle as a };
@@ -1,164 +0,0 @@
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/layout/index.ts
20
- var layout_exports = {};
21
- __export(layout_exports, {
22
- NodePropertyInput: () => node_property_input_default,
23
- NodePropertyVariables: () => node_property_variables_default,
24
- NodeValueInput: () => node_value_input_default
25
- });
26
- module.exports = __toCommonJS(layout_exports);
27
-
28
- // src/layout/node-value-input.tsx
29
- var import_core = require("@mantine/core");
30
- var import_jsx_runtime = require("react/jsx-runtime");
31
- function NodeValueInput({ value, disabled, step, onChange }) {
32
- if (value === void 0 || value === null) {
33
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {});
34
- }
35
- switch (typeof value) {
36
- case "boolean": {
37
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
38
- import_core.Switch,
39
- {
40
- checked: value,
41
- disabled,
42
- onChange: (e) => onChange(e.currentTarget.checked)
43
- }
44
- );
45
- }
46
- case "number": {
47
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_core.NumberInput, { value, disabled, step, onChange: (e) => onChange(e) });
48
- }
49
- case "string": {
50
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
51
- import_core.Input,
52
- {
53
- value,
54
- disabled,
55
- onChange: (e) => onChange(e.currentTarget.value)
56
- }
57
- );
58
- }
59
- default:
60
- throw new Error(`Unknown input node for value of type: ${typeof value} (${value})`);
61
- }
62
- }
63
- var node_value_input_default = NodeValueInput;
64
-
65
- // src/layout/node-property-input.tsx
66
- var import_jsx_runtime2 = require("react/jsx-runtime");
67
- function NodePropertyInput({ property, onChange }) {
68
- if (!property) {
69
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, {});
70
- }
71
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
72
- node_value_input_default,
73
- {
74
- value: property.value,
75
- disabled: property.disabled,
76
- step: property.step,
77
- onChange: (value) => onChange(property.name, value)
78
- }
79
- );
80
- }
81
- var node_property_input_default = NodePropertyInput;
82
-
83
- // src/layout/node-property-variables.tsx
84
- var import_hooks = require("@awesome-flow/core/hooks");
85
- var import_react = require("react");
86
- var import_core2 = require("@mantine/core");
87
- var import_utils = require("@awesome-flow/core/utils");
88
- var import_abstract = require("@awesome-flow/core/abstract");
89
- var import_jsx_runtime3 = require("react/jsx-runtime");
90
- function NodePropertyVariables({
91
- data,
92
- nodeId,
93
- onPropertiesChange,
94
- except = import_abstract.nodeDataPropertyExcept
95
- }) {
96
- const [properties, setProperties] = (0, import_react.useState)(() => {
97
- const keys = (0, import_utils.getObjectKeys)(data, except);
98
- const dataProps = {};
99
- for (const key of keys) {
100
- dataProps[key] = {
101
- name: key,
102
- value: data[key]
103
- };
104
- }
105
- return dataProps;
106
- });
107
- const updateNodeData = (0, import_hooks.useUpdateNodeData)();
108
- const incoming = (0, import_hooks.useIncomingNodeData)(nodeId);
109
- const resetAllDisabled = (0, import_react.useCallback)(() => {
110
- const keys = Object.keys(properties);
111
- keys.forEach((k) => {
112
- properties[k].disabled = false;
113
- });
114
- setProperties(properties);
115
- }, []);
116
- const updatePropertyValue = (0, import_react.useCallback)((name, value, disabled) => {
117
- let property = properties[name];
118
- if (property) {
119
- property.value = value;
120
- } else {
121
- property = {
122
- name,
123
- value
124
- };
125
- }
126
- property.disabled = disabled;
127
- setProperties({ ...properties, [name]: property });
128
- updateNodeData(nodeId, { [name]: value });
129
- }, []);
130
- (0, import_react.useEffect)(() => {
131
- resetAllDisabled();
132
- if (incoming?.length) {
133
- for (const connection of incoming) {
134
- if (connection.property && properties[connection.property.name] !== void 0) {
135
- updatePropertyValue(connection.property.name, connection.property.value, true);
136
- }
137
- }
138
- }
139
- }, [incoming]);
140
- (0, import_react.useEffect)(() => {
141
- if (onPropertiesChange) {
142
- onPropertiesChange(properties);
143
- }
144
- }, [onPropertiesChange, properties]);
145
- const nodes = (0, import_react.useMemo)(() => {
146
- return Object.keys(properties).map((key) => {
147
- const property = properties[key];
148
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_core2.Group, { children: [
149
- property.name,
150
- ":",
151
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(node_property_input_default, { property, onChange: updatePropertyValue })
152
- ] }, key);
153
- });
154
- }, [properties, updatePropertyValue]);
155
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_core2.Stack, { children: nodes });
156
- }
157
- var node_property_variables_default = NodePropertyVariables;
158
- // Annotate the CommonJS export names for ESM import in node:
159
- 0 && (module.exports = {
160
- NodePropertyInput,
161
- NodePropertyVariables,
162
- NodeValueInput
163
- });
164
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/layout/index.ts","../../src/layout/node-value-input.tsx","../../src/layout/node-property-input.tsx","../../src/layout/node-property-variables.tsx"],"sourcesContent":["export * from './node-property-input';\nexport { default as NodePropertyInput } from './node-property-input';\n\nexport * from './node-property-variables';\nexport { default as NodePropertyVariables } from './node-property-variables';\n\nexport * from './node-value-input';\nexport { default as NodeValueInput } from './node-value-input';\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 { 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"],"mappings":"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","names":["import_jsx_runtime","import_core","import_jsx_runtime"]}
@@ -1,26 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { P as PropertyValue, V as ValueType } from '../properties-BxwtU6i9.cjs';
3
-
4
- type NodePropertyInputProps = {
5
- property: PropertyValue;
6
- onChange: (name: string, value: ValueType) => void;
7
- };
8
- declare function NodePropertyInput({ property, onChange }: Readonly<NodePropertyInputProps>): react_jsx_runtime.JSX.Element;
9
-
10
- type NodeTrackVariablesProps = {
11
- nodeId: string;
12
- data: Record<string, any>;
13
- except?: Set<string>;
14
- onPropertiesChange?: (properties: Record<string, PropertyValue>) => void;
15
- };
16
- declare function NodePropertyVariables({ data, nodeId, onPropertiesChange, except, }: Readonly<NodeTrackVariablesProps>): react_jsx_runtime.JSX.Element;
17
-
18
- type NodeValueInputProps = {
19
- value: ValueType;
20
- disabled?: boolean;
21
- step?: number;
22
- onChange: (value: ValueType) => void;
23
- };
24
- declare function NodeValueInput({ value, disabled, step, onChange }: Readonly<NodeValueInputProps>): react_jsx_runtime.JSX.Element;
25
-
26
- export { NodePropertyInput, type NodePropertyInputProps, NodePropertyVariables, type NodeTrackVariablesProps, NodeValueInput, type NodeValueInputProps };
@@ -1,26 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { P as PropertyValue, V as ValueType } from '../properties-BxwtU6i9.js';
3
-
4
- type NodePropertyInputProps = {
5
- property: PropertyValue;
6
- onChange: (name: string, value: ValueType) => void;
7
- };
8
- declare function NodePropertyInput({ property, onChange }: Readonly<NodePropertyInputProps>): react_jsx_runtime.JSX.Element;
9
-
10
- type NodeTrackVariablesProps = {
11
- nodeId: string;
12
- data: Record<string, any>;
13
- except?: Set<string>;
14
- onPropertiesChange?: (properties: Record<string, PropertyValue>) => void;
15
- };
16
- declare function NodePropertyVariables({ data, nodeId, onPropertiesChange, except, }: Readonly<NodeTrackVariablesProps>): react_jsx_runtime.JSX.Element;
17
-
18
- type NodeValueInputProps = {
19
- value: ValueType;
20
- disabled?: boolean;
21
- step?: number;
22
- onChange: (value: ValueType) => void;
23
- };
24
- declare function NodeValueInput({ value, disabled, step, onChange }: Readonly<NodeValueInputProps>): react_jsx_runtime.JSX.Element;
25
-
26
- export { NodePropertyInput, type NodePropertyInputProps, NodePropertyVariables, type NodeTrackVariablesProps, NodeValueInput, type NodeValueInputProps };
@@ -1,136 +0,0 @@
1
- // src/layout/node-value-input.tsx
2
- import { Input, NumberInput, Switch } from "@mantine/core";
3
- import { Fragment, jsx } from "react/jsx-runtime";
4
- function NodeValueInput({ value, disabled, step, onChange }) {
5
- if (value === void 0 || value === null) {
6
- return /* @__PURE__ */ jsx(Fragment, {});
7
- }
8
- switch (typeof value) {
9
- case "boolean": {
10
- return /* @__PURE__ */ jsx(
11
- Switch,
12
- {
13
- checked: value,
14
- disabled,
15
- onChange: (e) => onChange(e.currentTarget.checked)
16
- }
17
- );
18
- }
19
- case "number": {
20
- return /* @__PURE__ */ jsx(NumberInput, { value, disabled, step, onChange: (e) => onChange(e) });
21
- }
22
- case "string": {
23
- return /* @__PURE__ */ jsx(
24
- Input,
25
- {
26
- value,
27
- disabled,
28
- onChange: (e) => onChange(e.currentTarget.value)
29
- }
30
- );
31
- }
32
- default:
33
- throw new Error(`Unknown input node for value of type: ${typeof value} (${value})`);
34
- }
35
- }
36
- var node_value_input_default = NodeValueInput;
37
-
38
- // src/layout/node-property-input.tsx
39
- import { Fragment as Fragment2, jsx as jsx2 } from "react/jsx-runtime";
40
- function NodePropertyInput({ property, onChange }) {
41
- if (!property) {
42
- return /* @__PURE__ */ jsx2(Fragment2, {});
43
- }
44
- return /* @__PURE__ */ jsx2(
45
- node_value_input_default,
46
- {
47
- value: property.value,
48
- disabled: property.disabled,
49
- step: property.step,
50
- onChange: (value) => onChange(property.name, value)
51
- }
52
- );
53
- }
54
- var node_property_input_default = NodePropertyInput;
55
-
56
- // src/layout/node-property-variables.tsx
57
- import { useIncomingNodeData, useUpdateNodeData } from "@awesome-flow/core/hooks";
58
- import { useCallback, useEffect, useMemo, useState } from "react";
59
- import { Group, Stack } from "@mantine/core";
60
- import { getObjectKeys } from "@awesome-flow/core/utils";
61
- import { nodeDataPropertyExcept } from "@awesome-flow/core/abstract";
62
- import { jsx as jsx3, jsxs } from "react/jsx-runtime";
63
- function NodePropertyVariables({
64
- data,
65
- nodeId,
66
- onPropertiesChange,
67
- except = nodeDataPropertyExcept
68
- }) {
69
- const [properties, setProperties] = useState(() => {
70
- const keys = getObjectKeys(data, except);
71
- const dataProps = {};
72
- for (const key of keys) {
73
- dataProps[key] = {
74
- name: key,
75
- value: data[key]
76
- };
77
- }
78
- return dataProps;
79
- });
80
- const updateNodeData = useUpdateNodeData();
81
- const incoming = useIncomingNodeData(nodeId);
82
- const resetAllDisabled = useCallback(() => {
83
- const keys = Object.keys(properties);
84
- keys.forEach((k) => {
85
- properties[k].disabled = false;
86
- });
87
- setProperties(properties);
88
- }, []);
89
- const updatePropertyValue = useCallback((name, value, disabled) => {
90
- let property = properties[name];
91
- if (property) {
92
- property.value = value;
93
- } else {
94
- property = {
95
- name,
96
- value
97
- };
98
- }
99
- property.disabled = disabled;
100
- setProperties({ ...properties, [name]: property });
101
- updateNodeData(nodeId, { [name]: value });
102
- }, []);
103
- useEffect(() => {
104
- resetAllDisabled();
105
- if (incoming?.length) {
106
- for (const connection of incoming) {
107
- if (connection.property && properties[connection.property.name] !== void 0) {
108
- updatePropertyValue(connection.property.name, connection.property.value, true);
109
- }
110
- }
111
- }
112
- }, [incoming]);
113
- useEffect(() => {
114
- if (onPropertiesChange) {
115
- onPropertiesChange(properties);
116
- }
117
- }, [onPropertiesChange, properties]);
118
- const nodes = useMemo(() => {
119
- return Object.keys(properties).map((key) => {
120
- const property = properties[key];
121
- return /* @__PURE__ */ jsxs(Group, { children: [
122
- property.name,
123
- ":",
124
- /* @__PURE__ */ jsx3(node_property_input_default, { property, onChange: updatePropertyValue })
125
- ] }, key);
126
- });
127
- }, [properties, updatePropertyValue]);
128
- return /* @__PURE__ */ jsx3(Stack, { children: nodes });
129
- }
130
- var node_property_variables_default = NodePropertyVariables;
131
- export {
132
- node_property_input_default as NodePropertyInput,
133
- node_property_variables_default as NodePropertyVariables,
134
- node_value_input_default as NodeValueInput
135
- };
136
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/layout/node-value-input.tsx","../../src/layout/node-property-input.tsx","../../src/layout/node-property-variables.tsx"],"sourcesContent":["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 { 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"],"mappings":"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","names":["Fragment","jsx","jsx"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/index.ts","../../src/modules/normalize-noise-module.ts","../../src/modules/simplex-module.ts"],"sourcesContent":["export * from './normalize-noise-module';\nexport * from './simplex-module';\n","import Module from 'libnoise-ts/module/Module';\nimport ModifierModule from 'libnoise-ts/module/modifier';\n\nexport class NormalizeNoiseModule extends ModifierModule {\n constructor(\n source: Module,\n public lowerBound: number,\n public upperBound: number\n ) {\n super(source);\n }\n\n getValue(x: number, y: number, z: number): number {\n return normalize(this.sourceModule.getValue(x, y, z), this.lowerBound, this.upperBound);\n }\n}\n\nfunction normalize(value: number, min: number, max: number) {\n return (value - min) / (max - min);\n}\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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,sBAA2B;AAEpB,IAAM,uBAAN,cAAmC,gBAAAA,QAAe;AAAA,EACvD,YACE,QACO,YACA,YACP;AACA,UAAM,MAAM;AAHL;AACA;AAAA,EAGT;AAAA,EAEA,SAAS,GAAW,GAAW,GAAmB;AAChD,WAAO,UAAU,KAAK,aAAa,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK,YAAY,KAAK,UAAU;AAAA,EACxF;AACF;AAEA,SAAS,UAAU,OAAe,KAAa,KAAa;AAC1D,UAAQ,QAAQ,QAAQ,MAAM;AAChC;;;ACnBA,oBAAmB;AACnB,2BAAyD;AAElD,IAAM,gBAAN,cAA4B,cAAAC,QAAO;AAAA,EAChC;AAAA,EAER,YAAY,QAAmB;AAC7B,UAAM;AACN,SAAK,YAAQ,oCAAc,MAAM;AAAA,EACnC;AAAA,EAEA,SAAS,GAAW,GAAW,GAAmB;AAChD,WAAO,KAAK,MAAM,GAAG,GAAG,CAAC;AAAA,EAC3B;AACF;","names":["ModifierModule","Module"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/modules/normalize-noise-module.ts","../../src/modules/simplex-module.ts"],"sourcesContent":["import Module from 'libnoise-ts/module/Module';\nimport ModifierModule from 'libnoise-ts/module/modifier';\n\nexport class NormalizeNoiseModule extends ModifierModule {\n constructor(\n source: Module,\n public lowerBound: number,\n public upperBound: number\n ) {\n super(source);\n }\n\n getValue(x: number, y: number, z: number): number {\n return normalize(this.sourceModule.getValue(x, y, z), this.lowerBound, this.upperBound);\n }\n}\n\nfunction normalize(value: number, min: number, max: number) {\n return (value - min) / (max - min);\n}\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"],"mappings":";AACA,OAAO,oBAAoB;AAEpB,IAAM,uBAAN,cAAmC,eAAe;AAAA,EACvD,YACE,QACO,YACA,YACP;AACA,UAAM,MAAM;AAHL;AACA;AAAA,EAGT;AAAA,EAEA,SAAS,GAAW,GAAW,GAAmB;AAChD,WAAO,UAAU,KAAK,aAAa,SAAS,GAAG,GAAG,CAAC,GAAG,KAAK,YAAY,KAAK,UAAU;AAAA,EACxF;AACF;AAEA,SAAS,UAAU,OAAe,KAAa,KAAa;AAC1D,UAAQ,QAAQ,QAAQ,MAAM;AAChC;;;ACnBA,OAAO,YAAY;AACnB,SAAoC,qBAAqB;AAElD,IAAM,gBAAN,cAA4B,OAAO;AAAA,EAChC;AAAA,EAER,YAAY,QAAmB;AAC7B,UAAM;AACN,SAAK,QAAQ,cAAc,MAAM;AAAA,EACnC;AAAA,EAEA,SAAS,GAAW,GAAW,GAAmB;AAChD,WAAO,KAAK,MAAM,GAAG,GAAG,CAAC;AAAA,EAC3B;AACF;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/nodes/generators/index.ts","../../../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":["export { default as NoiseBillowNode } from './noise-billow-node';\nexport { default as NoiseCheckerboardNode } from './noise-checkerboard-node';\nexport { default as NoiseConstNode } from './noise-const-node';\nexport { default as NoiseCylindersNode } from './noise-cylinders-node';\nexport { default as NoisePerlinNode } from './noise-perlin-node';\nexport { default as NoiseRidgedMultiNode } from './noise-ridgedmulti-node';\nexport { default as NoiseSimplexNode } from './noise-simplex-node';\nexport { default as NoiseSpheresNode } from './noise-spheres-node';\nexport { default as NoiseVoronoiNode } from './noise-voronoi-node';\nexport { default as PositionConstNode } from './position-const-node';\nexport { default as PositionGridNode } from './position-grid-node';\nexport { default as VariablePropertyNode } from './variable-property-node';\nexport { default as VariableValueNode } from './variable-value-node';\n","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":["import_react","import_hooks","import_abstract","import_core","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","module","import_layout","import_react","import_generator","import_hooks","import_jsx_runtime","module","import_layout","import_react","import_core","import_hooks","import_generator","import_jsx_runtime","module","import_layout","import_react","import_generator","import_hooks","import_jsx_runtime","module","import_layout","import_react","import_generator","import_hooks","import_jsx_runtime","module","import_layout","import_react","import_generator","import_hooks","import_jsx_runtime","module","import_layout","import_react","import_hooks","Module","import_jsx_runtime","module","import_layout","import_react","import_generator","import_hooks","import_jsx_runtime","module","import_layout","import_react","import_generator","import_hooks","import_jsx_runtime","module","import_layout","import_react","import_core","import_hooks","import_jsx_runtime","position","import_layout","import_react","import_core","import_hooks","import_jsx_runtime","import_layout","import_react","import_core","import_hooks","import_utils","import_abstract","import_jsx_runtime","data","selected","import_layout","import_react","import_hooks","import_jsx_runtime"]}