@babylonjs/shared-ui-components 7.53.3 → 7.54.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.
@@ -4,4 +4,14 @@ import type { NodeLink } from "./nodeLink";
4
4
  import type { FramePortData } from "./types/framePortData";
5
5
  export declare const IsFramePortData: (variableToCheck: any) => variableToCheck is FramePortData;
6
6
  export declare const RefreshNode: (node: GraphNode, visitedNodes?: Set<GraphNode>, visitedLinks?: Set<NodeLink>, canvas?: GraphCanvasComponent) => void;
7
- export declare const BuildFloatUI: (container: HTMLDivElement, document: Document, displayName: string, isInteger: boolean, source: any, propertyName: string, onChange: () => void, min?: number, max?: number, visualPropertiesRefresh?: Array<() => void>) => void;
7
+ export declare const BuildFloatUI: (container: HTMLDivElement, document: Document, displayName: string, isInteger: boolean, source: any, propertyName: string, onChange: () => void, min?: number, max?: number, visualPropertiesRefresh?: Array<() => void>, additionalClassName?: string) => void;
8
+ export declare function GetListOfAcceptedTypes<T extends Record<string, string | number>>(types: T, allValue: number, autoDetectValue: number, port: {
9
+ acceptedConnectionPointTypes: number[];
10
+ excludedConnectionPointTypes: number[];
11
+ type: number;
12
+ }, skips?: number[]): string[];
13
+ export declare function GetConnectionErrorMessage<T extends Record<string, string | number>>(sourceType: number, types: T, allValue: number, autoDetectValue: number, port: {
14
+ acceptedConnectionPointTypes: number[];
15
+ excludedConnectionPointTypes: number[];
16
+ type: number;
17
+ }, skips?: number[]): string;
@@ -49,13 +49,16 @@ export const RefreshNode = (node, visitedNodes, visitedLinks, canvas) => {
49
49
  });
50
50
  };
51
51
  let idGenerator = 0;
52
- export const BuildFloatUI = (container, document, displayName, isInteger, source, propertyName, onChange, min, max, visualPropertiesRefresh) => {
52
+ export const BuildFloatUI = (container, document, displayName, isInteger, source, propertyName, onChange, min, max, visualPropertiesRefresh, additionalClassName) => {
53
53
  const cantDisplaySlider = min === undefined || max === undefined || isNaN(min) || isNaN(max) || min === max;
54
54
  if (cantDisplaySlider) {
55
55
  container.classList.add(localStyles.floatContainer);
56
56
  const numberInput = document.createElement("input");
57
57
  numberInput.type = "number";
58
58
  numberInput.id = `number-${idGenerator++}`;
59
+ if (additionalClassName) {
60
+ numberInput.classList.add(additionalClassName);
61
+ }
59
62
  if (visualPropertiesRefresh) {
60
63
  visualPropertiesRefresh.push(() => {
61
64
  numberInput.value = source[propertyName];
@@ -74,6 +77,9 @@ export const BuildFloatUI = (container, document, displayName, isInteger, source
74
77
  container.appendChild(numberInput);
75
78
  const label = document.createElement("div");
76
79
  label.innerText = displayName;
80
+ if (additionalClassName) {
81
+ label.classList.add(additionalClassName);
82
+ }
77
83
  container.appendChild(label);
78
84
  let shouldCapture = false;
79
85
  numberInput.onpointerdown = (evt) => {
@@ -136,4 +142,39 @@ export const BuildFloatUI = (container, document, displayName, isInteger, source
136
142
  };
137
143
  }
138
144
  };
145
+ export function GetListOfAcceptedTypes(types, allValue, autoDetectValue, port, skips = []) {
146
+ let acceptedTypes = [];
147
+ if (port.type !== autoDetectValue) {
148
+ acceptedTypes = [types[port.type]];
149
+ }
150
+ if (port.acceptedConnectionPointTypes.length !== 0) {
151
+ acceptedTypes = port.acceptedConnectionPointTypes.filter((t) => t && t !== port.type).map((t) => types[t]);
152
+ }
153
+ if (skips.indexOf(autoDetectValue) === -1) {
154
+ skips.push(autoDetectValue);
155
+ }
156
+ if (port.excludedConnectionPointTypes.length !== 0) {
157
+ let bitmask = 0;
158
+ let val = 2 ** bitmask;
159
+ const candidates = [];
160
+ while (val < allValue) {
161
+ if (port.excludedConnectionPointTypes.indexOf(val) === -1 && skips.indexOf(val) === -1) {
162
+ if (candidates.indexOf(val) === -1) {
163
+ candidates.push(val);
164
+ }
165
+ }
166
+ bitmask++;
167
+ val = 2 ** bitmask;
168
+ }
169
+ acceptedTypes = Object.values(types)
170
+ .filter((t) => candidates.indexOf(t) !== -1 && t !== port.type)
171
+ .map((t) => types[t])
172
+ .filter((t) => t);
173
+ }
174
+ return acceptedTypes;
175
+ }
176
+ export function GetConnectionErrorMessage(sourceType, types, allValue, autoDetectValue, port, skips = []) {
177
+ const list = GetListOfAcceptedTypes(types, allValue, autoDetectValue, port, skips).join(", ");
178
+ return `Cannot connect two different connection types:\nSource is ${types[sourceType]} but destination only accepts ${list}`;
179
+ }
139
180
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../dev/sharedUiComponents/src/nodeGraphSystem/tools.ts"],"names":[],"mappings":"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","sourcesContent":["import type { GraphCanvasComponent } from \"./graphCanvas\";\r\nimport type { GraphNode } from \"./graphNode\";\r\nimport type { NodeLink } from \"./nodeLink\";\r\nimport type { FramePortData } from \"./types/framePortData\";\r\nimport * as localStyles from \"./graphNode.module.scss\";\r\n\r\nexport const IsFramePortData = (variableToCheck: any): variableToCheck is FramePortData => {\r\n if (variableToCheck) {\r\n return (variableToCheck as FramePortData).port !== undefined;\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const RefreshNode = (node: GraphNode, visitedNodes?: Set<GraphNode>, visitedLinks?: Set<NodeLink>, canvas?: GraphCanvasComponent) => {\r\n node.refresh();\r\n\r\n const links = node.links;\r\n\r\n if (visitedNodes) {\r\n // refresh first the nodes so that the right types are assigned to the auto-detect ports\r\n links.forEach((link) => {\r\n const nodeA = link.nodeA,\r\n nodeB = link.nodeB;\r\n\r\n if (!visitedNodes.has(nodeA)) {\r\n visitedNodes.add(nodeA);\r\n RefreshNode(nodeA, visitedNodes, visitedLinks);\r\n }\r\n\r\n if (nodeB && !visitedNodes.has(nodeB)) {\r\n visitedNodes.add(nodeB);\r\n RefreshNode(nodeB, visitedNodes, visitedLinks);\r\n }\r\n });\r\n }\r\n\r\n // Invisible endpoints (for teleport nodes)\r\n const invisibleEndpoints = node.content.invisibleEndpoints;\r\n if (invisibleEndpoints && invisibleEndpoints.length) {\r\n for (const endpoint of invisibleEndpoints) {\r\n const graphNode = canvas?.findNodeFromData(endpoint);\r\n if (graphNode) {\r\n if (visitedNodes) {\r\n visitedNodes.add(graphNode);\r\n }\r\n RefreshNode(graphNode, visitedNodes, visitedLinks);\r\n }\r\n }\r\n }\r\n\r\n if (!visitedLinks) {\r\n return;\r\n }\r\n\r\n // then refresh the links to display the right color between ports\r\n links.forEach((link) => {\r\n if (!visitedLinks.has(link)) {\r\n visitedLinks.add(link);\r\n link.update();\r\n }\r\n });\r\n};\r\n\r\nlet idGenerator = 0;\r\nexport const BuildFloatUI = (\r\n container: HTMLDivElement,\r\n document: Document,\r\n displayName: string,\r\n isInteger: boolean,\r\n source: any,\r\n propertyName: string,\r\n onChange: () => void,\r\n min?: number,\r\n max?: number,\r\n visualPropertiesRefresh?: Array<() => void>\r\n) => {\r\n const cantDisplaySlider = min === undefined || max === undefined || isNaN(min) || isNaN(max) || min === max;\r\n if (cantDisplaySlider) {\r\n container.classList.add(localStyles.floatContainer);\r\n const numberInput = document.createElement(\"input\");\r\n numberInput.type = \"number\";\r\n numberInput.id = `number-${idGenerator++}`;\r\n\r\n if (visualPropertiesRefresh) {\r\n visualPropertiesRefresh.push(() => {\r\n numberInput.value = source[propertyName];\r\n });\r\n } else {\r\n numberInput.value = source[propertyName];\r\n }\r\n numberInput.onchange = () => {\r\n source[propertyName] = parseFloat(numberInput.value);\r\n onChange();\r\n };\r\n\r\n if (isInteger) {\r\n numberInput.step = \"1\";\r\n }\r\n\r\n container.appendChild(numberInput);\r\n const label = document.createElement(\"div\");\r\n label.innerText = displayName;\r\n container.appendChild(label);\r\n\r\n let shouldCapture = false;\r\n numberInput.onpointerdown = (evt) => {\r\n shouldCapture = true;\r\n evt.preventDefault();\r\n };\r\n numberInput.onpointerup = (evt) => {\r\n if (numberInput.hasPointerCapture(evt.pointerId)) {\r\n numberInput.releasePointerCapture(evt.pointerId);\r\n shouldCapture = false;\r\n evt.preventDefault();\r\n } else {\r\n numberInput.focus();\r\n numberInput.select();\r\n }\r\n };\r\n numberInput.onpointermove = (evt) => {\r\n if (shouldCapture) {\r\n numberInput.setPointerCapture(evt.pointerId);\r\n }\r\n\r\n if (numberInput.hasPointerCapture(evt.pointerId)) {\r\n const delta = isInteger ? Math.sign(evt.movementX) : evt.movementX * 0.01;\r\n numberInput.value = (parseFloat(numberInput.value) + delta).toFixed(isInteger ? 0 : 2);\r\n\r\n source[propertyName] = isInteger ? parseInt(numberInput.value) : parseFloat(numberInput.value);\r\n onChange();\r\n evt.preventDefault();\r\n }\r\n };\r\n } else {\r\n container.classList.add(localStyles.sliderContainer);\r\n const label = document.createElement(\"label\");\r\n container.appendChild(label);\r\n const value = document.createElement(\"div\");\r\n container.appendChild(value);\r\n const slider = document.createElement(\"input\");\r\n slider.type = \"range\";\r\n slider.id = `slider-${idGenerator++}`;\r\n slider.step = isInteger ? \"1\" : (Math.abs(max - min) / 100.0).toString();\r\n slider.min = min.toString();\r\n slider.max = max.toString();\r\n container.appendChild(slider);\r\n label.innerText = displayName;\r\n label.htmlFor = slider.id;\r\n if (visualPropertiesRefresh) {\r\n visualPropertiesRefresh.push(() => {\r\n slider.value = source[propertyName];\r\n value.innerText = source[propertyName];\r\n });\r\n } else {\r\n slider.value = source[propertyName];\r\n value.innerText = source[propertyName];\r\n }\r\n slider.oninput = () => {\r\n source[propertyName] = parseFloat(slider.value);\r\n value.innerText = source[propertyName];\r\n onChange();\r\n };\r\n }\r\n};\r\n"]}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../dev/sharedUiComponents/src/nodeGraphSystem/tools.ts"],"names":[],"mappings":"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","sourcesContent":["import type { GraphCanvasComponent } from \"./graphCanvas\";\r\nimport type { GraphNode } from \"./graphNode\";\r\nimport type { NodeLink } from \"./nodeLink\";\r\nimport type { FramePortData } from \"./types/framePortData\";\r\nimport * as localStyles from \"./graphNode.module.scss\";\r\n\r\nexport const IsFramePortData = (variableToCheck: any): variableToCheck is FramePortData => {\r\n if (variableToCheck) {\r\n return (variableToCheck as FramePortData).port !== undefined;\r\n } else {\r\n return false;\r\n }\r\n};\r\n\r\nexport const RefreshNode = (node: GraphNode, visitedNodes?: Set<GraphNode>, visitedLinks?: Set<NodeLink>, canvas?: GraphCanvasComponent) => {\r\n node.refresh();\r\n\r\n const links = node.links;\r\n\r\n if (visitedNodes) {\r\n // refresh first the nodes so that the right types are assigned to the auto-detect ports\r\n links.forEach((link) => {\r\n const nodeA = link.nodeA,\r\n nodeB = link.nodeB;\r\n\r\n if (!visitedNodes.has(nodeA)) {\r\n visitedNodes.add(nodeA);\r\n RefreshNode(nodeA, visitedNodes, visitedLinks);\r\n }\r\n\r\n if (nodeB && !visitedNodes.has(nodeB)) {\r\n visitedNodes.add(nodeB);\r\n RefreshNode(nodeB, visitedNodes, visitedLinks);\r\n }\r\n });\r\n }\r\n\r\n // Invisible endpoints (for teleport nodes)\r\n const invisibleEndpoints = node.content.invisibleEndpoints;\r\n if (invisibleEndpoints && invisibleEndpoints.length) {\r\n for (const endpoint of invisibleEndpoints) {\r\n const graphNode = canvas?.findNodeFromData(endpoint);\r\n if (graphNode) {\r\n if (visitedNodes) {\r\n visitedNodes.add(graphNode);\r\n }\r\n RefreshNode(graphNode, visitedNodes, visitedLinks);\r\n }\r\n }\r\n }\r\n\r\n if (!visitedLinks) {\r\n return;\r\n }\r\n\r\n // then refresh the links to display the right color between ports\r\n links.forEach((link) => {\r\n if (!visitedLinks.has(link)) {\r\n visitedLinks.add(link);\r\n link.update();\r\n }\r\n });\r\n};\r\n\r\nlet idGenerator = 0;\r\nexport const BuildFloatUI = (\r\n container: HTMLDivElement,\r\n document: Document,\r\n displayName: string,\r\n isInteger: boolean,\r\n source: any,\r\n propertyName: string,\r\n onChange: () => void,\r\n min?: number,\r\n max?: number,\r\n visualPropertiesRefresh?: Array<() => void>,\r\n additionalClassName?: string\r\n) => {\r\n const cantDisplaySlider = min === undefined || max === undefined || isNaN(min) || isNaN(max) || min === max;\r\n if (cantDisplaySlider) {\r\n container.classList.add(localStyles.floatContainer);\r\n const numberInput = document.createElement(\"input\");\r\n numberInput.type = \"number\";\r\n numberInput.id = `number-${idGenerator++}`;\r\n if (additionalClassName) {\r\n numberInput.classList.add(additionalClassName);\r\n }\r\n\r\n if (visualPropertiesRefresh) {\r\n visualPropertiesRefresh.push(() => {\r\n numberInput.value = source[propertyName];\r\n });\r\n } else {\r\n numberInput.value = source[propertyName];\r\n }\r\n numberInput.onchange = () => {\r\n source[propertyName] = parseFloat(numberInput.value);\r\n onChange();\r\n };\r\n\r\n if (isInteger) {\r\n numberInput.step = \"1\";\r\n }\r\n\r\n container.appendChild(numberInput);\r\n const label = document.createElement(\"div\");\r\n label.innerText = displayName;\r\n if (additionalClassName) {\r\n label.classList.add(additionalClassName);\r\n }\r\n container.appendChild(label);\r\n\r\n let shouldCapture = false;\r\n numberInput.onpointerdown = (evt) => {\r\n shouldCapture = true;\r\n evt.preventDefault();\r\n };\r\n numberInput.onpointerup = (evt) => {\r\n if (numberInput.hasPointerCapture(evt.pointerId)) {\r\n numberInput.releasePointerCapture(evt.pointerId);\r\n shouldCapture = false;\r\n evt.preventDefault();\r\n } else {\r\n numberInput.focus();\r\n numberInput.select();\r\n }\r\n };\r\n numberInput.onpointermove = (evt) => {\r\n if (shouldCapture) {\r\n numberInput.setPointerCapture(evt.pointerId);\r\n }\r\n\r\n if (numberInput.hasPointerCapture(evt.pointerId)) {\r\n const delta = isInteger ? Math.sign(evt.movementX) : evt.movementX * 0.01;\r\n numberInput.value = (parseFloat(numberInput.value) + delta).toFixed(isInteger ? 0 : 2);\r\n\r\n source[propertyName] = isInteger ? parseInt(numberInput.value) : parseFloat(numberInput.value);\r\n onChange();\r\n evt.preventDefault();\r\n }\r\n };\r\n } else {\r\n container.classList.add(localStyles.sliderContainer);\r\n const label = document.createElement(\"label\");\r\n container.appendChild(label);\r\n const value = document.createElement(\"div\");\r\n container.appendChild(value);\r\n const slider = document.createElement(\"input\");\r\n slider.type = \"range\";\r\n slider.id = `slider-${idGenerator++}`;\r\n slider.step = isInteger ? \"1\" : (Math.abs(max - min) / 100.0).toString();\r\n slider.min = min.toString();\r\n slider.max = max.toString();\r\n container.appendChild(slider);\r\n label.innerText = displayName;\r\n label.htmlFor = slider.id;\r\n if (visualPropertiesRefresh) {\r\n visualPropertiesRefresh.push(() => {\r\n slider.value = source[propertyName];\r\n value.innerText = source[propertyName];\r\n });\r\n } else {\r\n slider.value = source[propertyName];\r\n value.innerText = source[propertyName];\r\n }\r\n slider.oninput = () => {\r\n source[propertyName] = parseFloat(slider.value);\r\n value.innerText = source[propertyName];\r\n onChange();\r\n };\r\n }\r\n};\r\n\r\nexport function GetListOfAcceptedTypes<T extends Record<string, string | number>>(\r\n types: T,\r\n allValue: number,\r\n autoDetectValue: number,\r\n port: { acceptedConnectionPointTypes: number[]; excludedConnectionPointTypes: number[]; type: number },\r\n skips: number[] = []\r\n) {\r\n let acceptedTypes: string[] = [];\r\n\r\n if (port.type !== autoDetectValue) {\r\n acceptedTypes = [types[port.type] as string];\r\n }\r\n\r\n if (port.acceptedConnectionPointTypes.length !== 0) {\r\n acceptedTypes = port.acceptedConnectionPointTypes.filter((t) => t && t !== port.type).map((t) => types[t as number] as string);\r\n }\r\n\r\n if (skips.indexOf(autoDetectValue) === -1) {\r\n skips.push(autoDetectValue);\r\n }\r\n\r\n if (port.excludedConnectionPointTypes.length !== 0) {\r\n let bitmask = 0;\r\n let val = 2 ** bitmask;\r\n const candidates: number[] = [];\r\n while (val < allValue) {\r\n if (port.excludedConnectionPointTypes.indexOf(val) === -1 && skips.indexOf(val) === -1) {\r\n if (candidates.indexOf(val) === -1) {\r\n candidates.push(val);\r\n }\r\n }\r\n bitmask++;\r\n val = 2 ** bitmask;\r\n }\r\n acceptedTypes = (Object.values(types) as T[keyof T][])\r\n .filter((t) => candidates.indexOf(t as number) !== -1 && t !== port.type)\r\n .map((t) => types[t as number] as string)\r\n .filter((t) => t);\r\n }\r\n return acceptedTypes;\r\n}\r\n\r\nexport function GetConnectionErrorMessage<T extends Record<string, string | number>>(\r\n sourceType: number,\r\n types: T,\r\n allValue: number,\r\n autoDetectValue: number,\r\n port: { acceptedConnectionPointTypes: number[]; excludedConnectionPointTypes: number[]; type: number },\r\n skips: number[] = []\r\n) {\r\n const list = GetListOfAcceptedTypes(types, allValue, autoDetectValue, port, skips).join(\", \");\r\n\r\n return `Cannot connect two different connection types:\\nSource is ${types[sourceType]} but destination only accepts ${list}`;\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/shared-ui-components",
3
- "version": "7.53.3",
3
+ "version": "7.54.0",
4
4
  "main": "index.js",
5
5
  "module": "index.js",
6
6
  "types": "index.d.ts",