@operato/scene-visualizer 1.2.88 → 1.2.91

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 (64) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/db.sqlite +0 -0
  3. package/dist/banner.d.ts +1 -0
  4. package/dist/banner.js.map +1 -1
  5. package/dist/camera.d.ts +1 -0
  6. package/dist/camera.js.map +1 -1
  7. package/dist/cube.d.ts +1 -0
  8. package/dist/cylinder.d.ts +1 -0
  9. package/dist/desk.d.ts +1 -0
  10. package/dist/desk.js.map +1 -1
  11. package/dist/editors/property-editor-gltf-info.d.ts +1 -0
  12. package/dist/editors/property-editor-gltf-info.js.map +1 -1
  13. package/dist/editors/property-editor-location-increase-pattern.js.map +1 -1
  14. package/dist/gltf-object.d.ts +1 -0
  15. package/dist/gltf-object.js.map +1 -1
  16. package/dist/light.d.ts +1 -0
  17. package/dist/light.js.map +1 -1
  18. package/dist/polygon.js.map +1 -1
  19. package/dist/rack-table-cell.d.ts +1 -0
  20. package/dist/rack-table-cell.js.map +1 -1
  21. package/dist/rack-table.js.map +1 -1
  22. package/dist/rack.js.map +1 -1
  23. package/dist/rect.js.map +1 -1
  24. package/dist/scene/component.js.map +1 -1
  25. package/dist/sphere.d.ts +1 -0
  26. package/dist/sprite.d.ts +1 -0
  27. package/dist/stock.d.ts +1 -0
  28. package/dist/stock.js.map +1 -1
  29. package/dist/three-container-editor.js.map +1 -1
  30. package/dist/three-container.js.map +1 -1
  31. package/dist/three-controls.d.ts +1 -0
  32. package/dist/three-controls.js.map +1 -1
  33. package/dist/three-layout.d.ts +1 -0
  34. package/dist/three-space.js.map +1 -1
  35. package/dist/threed/common.js.map +1 -1
  36. package/dist/threed/floor/floor.d.ts +1 -0
  37. package/dist/threed/floor/floor.js.map +1 -1
  38. package/dist/threed/real-object-camera-meshed.js.map +1 -1
  39. package/dist/threed/real-object-extrude.js.map +1 -1
  40. package/dist/threed/real-object-gltf.d.ts +1 -0
  41. package/dist/threed/real-object-gltf.js.map +1 -1
  42. package/dist/threed/real-object-mesh.js.map +1 -1
  43. package/dist/threed/real-object-scene.js.map +1 -1
  44. package/dist/threed/real-object-sprite-2d.js.map +1 -1
  45. package/dist/threed/real-object-sprite.js.map +1 -1
  46. package/dist/threed/real-object-text.js.map +1 -1
  47. package/dist/threed/real-object.d.ts +1 -0
  48. package/dist/threed/real-object.js.map +1 -1
  49. package/dist/threed/texture/canvas-texture.d.ts +1 -0
  50. package/dist/threed/texture/canvas-texture.js.map +1 -1
  51. package/dist/threed/texture/text-texture.js.map +1 -1
  52. package/dist/threed/three-dimensional-container.d.ts +1 -0
  53. package/dist/threed/utils/bound-uv-generator.js.map +1 -1
  54. package/dist/visualizer.d.ts +1 -0
  55. package/dist/visualizer.js.map +1 -1
  56. package/dist/wall.d.ts +1 -0
  57. package/logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json +3 -3
  58. package/logs/.5e5d741d8b7784a2fbad65eedc0fd46946aaf6f2-audit.json +5 -0
  59. package/logs/application-2023-11-26-10.log +6 -0
  60. package/logs/connections-2023-11-26-10.log +41 -0
  61. package/package.json +2 -2
  62. package/schema.graphql +73 -0
  63. package/tsconfig.tsbuildinfo +1 -1
  64. package/logs/application-2023-11-12-12.log +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"text-texture.js","sourceRoot":"","sources":["../../../src/threed/texture/text-texture.ts"],"names":[],"mappings":"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","sourcesContent":["import * as THREE from 'three'\n\nimport { createCanvas } from '../html/elements'\n\nexport function fontStyle(bold: boolean, italic: boolean, fontSize: number, fontFamily: string): string {\n return [\n ['bold', bold],\n ['italic', italic],\n [fontSize + 'px', true],\n [fontFamily, true]\n ]\n .filter(p => p[1])\n .map(p => p[0])\n .join(' ')\n}\n\nfunction nextPowerOf2(n: number) {\n var count = 0\n\n if (n && !(n & (n - 1))) {\n return n\n }\n\n while (n != 0) {\n n >>= 1\n count += 1\n }\n\n return 1 << count\n}\n\nexport function drawTextTexture(canvas: HTMLCanvasElement, text: string, textStyle: any) {\n var { bold = false, italic = false, fontFamily = 'Serif', fontSize = 10, fontColor = 'black' } = textStyle || {}\n\n var ctx = canvas.getContext('2d')\n ctx!.imageSmoothingEnabled = false\n\n ctx!.fillStyle = fontColor\n ctx!.strokeStyle = fontColor\n ctx!.font = fontStyle(bold, italic, fontSize, fontFamily)\n ctx!.textBaseline = 'top'\n ctx!.textAlign = 'left'\n ctx!.fillText(String(text), 0, 0)\n\n /* TODO multiline 시 검토 */\n // var lineText = String(text).split('\\n')\n // lineText.forEach((t, i) => {\n // ctx.fillText(t, 0, Number(i) * lineHeight)\n // ctx.strokeText(t, 0, Number(i) * lineHeight)\n // })\n}\n\nexport function textTexture(text: string, width: number, height: number, textStyle: any) {\n // TODO component.text의 heavy한 로직을 반복적으로 실행하지 않도록, 캐싱하자.\n var poweredWidth = nextPowerOf2(width)\n var poweredHeight = nextPowerOf2(height)\n\n let canvas = createCanvas(poweredWidth, poweredHeight)\n\n drawTextTexture(canvas, text, textStyle)\n\n var texture = new THREE.CanvasTexture(canvas)\n\n texture.needsUpdate = true\n texture.wrapS = THREE.RepeatWrapping\n texture.wrapT = THREE.RepeatWrapping\n texture.offset.set(0, 1 - height / poweredHeight)\n texture.repeat.set(width / poweredWidth, height / poweredHeight)\n texture.minFilter = THREE.LinearFilter\n\n return texture\n}\n\nexport function textBounds(text: string, textStyle: any): { width: number; height: number } {\n let { bold = false, italic = false, fontFamily = 'Serif', fontSize = 10, lineHeight = 'normal' } = textStyle || {}\n\n if (text === undefined || text == '') {\n text = ' '\n } else {\n text = String(text)\n }\n\n let span = document.createElement('span')\n span.style.font = fontStyle(bold, italic, fontSize, fontFamily)\n span.style.lineHeight = String(lineHeight)\n span.style.whiteSpace = 'pre'\n span.style.position = 'absolute'\n span.textContent = text\n\n document.body.appendChild(span)\n\n let textBounds = span.getBoundingClientRect()\n\n document.body.removeChild(span)\n\n return {\n width: textBounds.width,\n height: textBounds.height\n }\n}\n"]}
1
+ {"version":3,"file":"text-texture.js","sourceRoot":"","sources":["../../../src/threed/texture/text-texture.ts"],"names":[],"mappings":"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","sourcesContent":["import * as THREE from 'three'\n\nimport { createCanvas } from '../html/elements'\n\nexport function fontStyle(bold: boolean, italic: boolean, fontSize: number, fontFamily: string): string {\n return [\n ['bold', bold],\n ['italic', italic],\n [fontSize + 'px', true],\n [fontFamily, true]\n ]\n .filter(p => p[1])\n .map(p => p[0])\n .join(' ')\n}\n\nfunction nextPowerOf2(n: number) {\n var count = 0\n\n if (n && !(n & (n - 1))) {\n return n\n }\n\n while (n != 0) {\n n >>= 1\n count += 1\n }\n\n return 1 << count\n}\n\nexport function drawTextTexture(canvas: HTMLCanvasElement, text: string, textStyle: any) {\n var { bold = false, italic = false, fontFamily = 'Serif', fontSize = 10, fontColor = 'black' } = textStyle || {}\n\n var ctx = canvas.getContext('2d')\n ctx!.imageSmoothingEnabled = false\n\n ctx!.fillStyle = fontColor\n ctx!.strokeStyle = fontColor\n ctx!.font = fontStyle(bold, italic, fontSize, fontFamily)\n ctx!.textBaseline = 'top'\n ctx!.textAlign = 'left'\n ctx!.fillText(String(text), 0, 0)\n\n /* TODO multiline 시 검토 */\n // var lineText = String(text).split('\\n')\n // lineText.forEach((t, i) => {\n // ctx.fillText(t, 0, Number(i) * lineHeight)\n // ctx.strokeText(t, 0, Number(i) * lineHeight)\n // })\n}\n\nexport function textTexture(text: string, width: number, height: number, textStyle: any) {\n // TODO component.text의 heavy한 로직을 반복적으로 실행하지 않도록, 캐싱하자.\n var poweredWidth = nextPowerOf2(width)\n var poweredHeight = nextPowerOf2(height)\n\n let canvas = createCanvas(poweredWidth, poweredHeight)\n\n drawTextTexture(canvas, text, textStyle)\n\n var texture = new THREE.CanvasTexture(canvas)\n\n texture.needsUpdate = true\n texture.wrapS = THREE.RepeatWrapping\n texture.wrapT = THREE.RepeatWrapping\n texture.offset.set(0, 1 - height / poweredHeight)\n texture.repeat.set(width / poweredWidth, height / poweredHeight)\n texture.minFilter = THREE.LinearFilter\n\n return texture\n}\n\nexport function textBounds(text: string, textStyle: any): { width: number; height: number } {\n let { bold = false, italic = false, fontFamily = 'Serif', fontSize = 10, lineHeight = 'normal' } = textStyle || {}\n\n if (text === undefined || text == '') {\n text = ' '\n } else {\n text = String(text)\n }\n\n let span = document.createElement('span')\n span.style.font = fontStyle(bold, italic, fontSize, fontFamily)\n span.style.lineHeight = String(lineHeight)\n span.style.whiteSpace = 'pre'\n span.style.position = 'absolute'\n span.textContent = text\n\n document.body.appendChild(span)\n\n let textBounds = span.getBoundingClientRect()\n\n document.body.removeChild(span)\n\n return {\n width: textBounds.width,\n height: textBounds.height\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ /// <reference path="../../src/component.d.ts" />
1
2
  import { Component } from '@hatiolab/things-scene';
2
3
  export interface ThreeDimensionalContainer extends Component {
3
4
  is3dContainer(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"bound-uv-generator.js","sourceRoot":"","sources":["../../../src/threed/utils/bound-uv-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import * as THREE from 'three'\n\ntype ExtrudedOptions = {\n depth: number\n}\n\nexport class BoundUVGenerator {\n bb?: THREE.Box2\n extrudedShape?: THREE.Shape\n extrudedOptions?: ExtrudedOptions\n\n setShape({ extrudedShape, extrudedOptions }: { extrudedShape: THREE.Shape; extrudedOptions: ExtrudedOptions }) {\n this.extrudedShape = extrudedShape\n this.bb = new THREE.Box2()\n\n this.bb.setFromPoints(this.extrudedShape?.extractPoints(0).shape)\n this.extrudedOptions = extrudedOptions\n }\n\n generateTopUV(geometry: THREE.BufferGeometry, vertices: number[], indexA: number, indexB: number, indexC: number) {\n const ax = vertices[indexA * 3],\n ay = vertices[indexA * 3 + 1],\n bx = vertices[indexB * 3],\n by = vertices[indexB * 3 + 1],\n cx = vertices[indexC * 3],\n cy = vertices[indexC * 3 + 1],\n bb = this.bb!, //extrudedShape.getBoundingBox(),\n bbx = bb.max.x - bb.min.x,\n bby = bb.max.y - bb.min.y\n\n return [\n new THREE.Vector2((ax - bb.min.x) / bbx, 1.0 - (ay - bb.min.y) / bby),\n new THREE.Vector2((bx - bb.min.x) / bbx, 1.0 - (by - bb.min.y) / bby),\n new THREE.Vector2((cx - bb.min.x) / bbx, 1.0 - (cy - bb.min.y) / bby)\n ]\n }\n\n generateSideWallUV(\n geometry: THREE.BufferGeometry,\n vertices: number[],\n indexA: number,\n indexB: number,\n indexC: number,\n indexD: number\n ) {\n const ax = vertices[indexA * 3],\n ay = vertices[indexA * 3 + 1],\n az = vertices[indexA * 3 + 2],\n bx = vertices[indexB * 3],\n by = vertices[indexB * 3 + 1],\n bz = vertices[indexB * 3 + 2],\n cx = vertices[indexC * 3],\n cy = vertices[indexC * 3 + 1],\n cz = vertices[indexC * 3 + 2],\n dx = vertices[indexD * 3],\n dy = vertices[indexD * 3 + 1],\n dz = vertices[indexD * 3 + 2]\n\n const amt = this.extrudedOptions?.depth || 100,\n bb = this.bb!, //extrudedShape.getBoundingBox(),\n bbx = bb.max.x - bb.min.x,\n bby = bb.max.y - bb.min.y\n\n if (Math.abs(ay - by) < 0.01) {\n return [\n new THREE.Vector2(ax / bbx, 1.0 - az / amt),\n new THREE.Vector2(bx / bbx, 1.0 - bz / amt),\n new THREE.Vector2(cx / bbx, 1.0 - cz / amt),\n new THREE.Vector2(dx / bbx, 1.0 - dz / amt)\n ]\n } else {\n return [\n new THREE.Vector2(ay / bby, 1.0 - az / amt),\n new THREE.Vector2(by / bby, 1.0 - bz / amt),\n new THREE.Vector2(cy / bby, 1.0 - cz / amt),\n new THREE.Vector2(dy / bby, 1.0 - dz / amt)\n ]\n }\n }\n}\n"]}
1
+ {"version":3,"file":"bound-uv-generator.js","sourceRoot":"","sources":["../../../src/threed/utils/bound-uv-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import * as THREE from 'three'\n\ntype ExtrudedOptions = {\n depth: number\n}\n\nexport class BoundUVGenerator {\n bb?: THREE.Box2\n extrudedShape?: THREE.Shape\n extrudedOptions?: ExtrudedOptions\n\n setShape({ extrudedShape, extrudedOptions }: { extrudedShape: THREE.Shape; extrudedOptions: ExtrudedOptions }) {\n this.extrudedShape = extrudedShape\n this.bb = new THREE.Box2()\n\n this.bb.setFromPoints(this.extrudedShape?.extractPoints(0).shape)\n this.extrudedOptions = extrudedOptions\n }\n\n generateTopUV(geometry: THREE.BufferGeometry, vertices: number[], indexA: number, indexB: number, indexC: number) {\n const ax = vertices[indexA * 3],\n ay = vertices[indexA * 3 + 1],\n bx = vertices[indexB * 3],\n by = vertices[indexB * 3 + 1],\n cx = vertices[indexC * 3],\n cy = vertices[indexC * 3 + 1],\n bb = this.bb!, //extrudedShape.getBoundingBox(),\n bbx = bb.max.x - bb.min.x,\n bby = bb.max.y - bb.min.y\n\n return [\n new THREE.Vector2((ax - bb.min.x) / bbx, 1.0 - (ay - bb.min.y) / bby),\n new THREE.Vector2((bx - bb.min.x) / bbx, 1.0 - (by - bb.min.y) / bby),\n new THREE.Vector2((cx - bb.min.x) / bbx, 1.0 - (cy - bb.min.y) / bby)\n ]\n }\n\n generateSideWallUV(\n geometry: THREE.BufferGeometry,\n vertices: number[],\n indexA: number,\n indexB: number,\n indexC: number,\n indexD: number\n ) {\n const ax = vertices[indexA * 3],\n ay = vertices[indexA * 3 + 1],\n az = vertices[indexA * 3 + 2],\n bx = vertices[indexB * 3],\n by = vertices[indexB * 3 + 1],\n bz = vertices[indexB * 3 + 2],\n cx = vertices[indexC * 3],\n cy = vertices[indexC * 3 + 1],\n cz = vertices[indexC * 3 + 2],\n dx = vertices[indexD * 3],\n dy = vertices[indexD * 3 + 1],\n dz = vertices[indexD * 3 + 2]\n\n const amt = this.extrudedOptions?.depth || 100,\n bb = this.bb!, //extrudedShape.getBoundingBox(),\n bbx = bb.max.x - bb.min.x,\n bby = bb.max.y - bb.min.y\n\n if (Math.abs(ay - by) < 0.01) {\n return [\n new THREE.Vector2(ax / bbx, 1.0 - az / amt),\n new THREE.Vector2(bx / bbx, 1.0 - bz / amt),\n new THREE.Vector2(cx / bbx, 1.0 - cz / amt),\n new THREE.Vector2(dx / bbx, 1.0 - dz / amt)\n ]\n } else {\n return [\n new THREE.Vector2(ay / bby, 1.0 - az / amt),\n new THREE.Vector2(by / bby, 1.0 - bz / amt),\n new THREE.Vector2(cy / bby, 1.0 - cz / amt),\n new THREE.Vector2(dy / bby, 1.0 - dz / amt)\n ]\n }\n }\n}\n"]}
@@ -1,3 +1,4 @@
1
+ /// <reference path="../src/component.d.ts" />
1
2
  import { Component, Properties, ComponentNature } from '@hatiolab/things-scene';
2
3
  import * as THREE from 'three';
3
4
  import { RealObject } from './threed/real-object';
@@ -1 +1 @@
1
- {"version":3,"file":"visualizer.js","sourceRoot":"","sources":["../src/visualizer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ScenePopup, Properties, ComponentNature } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nimport { RealObject } from './threed/real-object'\nimport './three-layout'\nimport { ThreeContainer } from './three-container'\nimport { Stock } from './stock'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'fov',\n name: 'fov',\n property: 'fov'\n },\n {\n type: 'number',\n label: 'near',\n name: 'near',\n property: 'near'\n },\n {\n type: 'number',\n label: 'far',\n name: 'far',\n property: 'far'\n },\n {\n type: 'number',\n label: 'zoom',\n name: 'zoom',\n property: 'zoom'\n },\n {\n type: 'number',\n label: 'camera-x',\n name: 'cameraX'\n },\n {\n type: 'number',\n label: 'camera-y',\n name: 'cameraY'\n },\n {\n type: 'number',\n label: 'camera-z',\n name: 'cameraZ'\n },\n {\n type: 'select',\n label: 'precision',\n name: 'precision',\n property: {\n options: [\n {\n display: 'High',\n value: 'highp'\n },\n {\n display: 'Medium',\n value: 'mediump'\n },\n {\n display: 'Low',\n value: 'lowp'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n label: 'anti-alias',\n name: 'antialias',\n property: 'antialias'\n },\n {\n type: 'checkbox',\n label: 'auto-rotate',\n name: 'autoRotate',\n property: 'autoRotate'\n },\n {\n type: 'checkbox',\n label: '3dmode',\n name: 'threed',\n property: 'threed'\n },\n {\n type: 'checkbox',\n label: 'debug',\n name: 'debug',\n property: 'debug'\n },\n {\n type: 'string',\n label: 'location-field',\n name: 'locationField',\n placeHolder: 'location'\n },\n {\n type: 'board-selector',\n label: 'popup-scene',\n name: 'popupScene'\n },\n {\n type: 'id-input',\n label: 'legend-target',\n name: 'legendTarget',\n property: {\n component: 'legend'\n }\n },\n {\n type: 'number',\n label: 'rotation-speed',\n name: 'rotationSpeed'\n },\n {\n type: 'checkbox',\n label: 'hide-empty-stock',\n name: 'hideEmptyStock'\n },\n {\n type: 'select',\n label: 'popup-position',\n name: 'popupPosition',\n property: {\n options: [\n { display: '', value: '' },\n { display: 'CENTER', value: 'center' },\n { display: 'LEFTTOP', value: 'left-top' },\n { display: 'RIGHTTOP', value: 'right-top' },\n { display: 'LEFTBOTTOM', value: 'left-bottom' },\n { display: 'RIGHTBOTTOM', value: 'right-bottom' }\n ]\n }\n }\n ],\n help: 'scene/component/visualizer'\n}\n\nconst WEBGL_NO_SUPPORT_TEXT = 'WebGL no support'\n\nexport class Visualizer extends ThreeContainer {\n _legendTarget?: Component\n\n _objects: { [id: string]: RealObject } = {}\n\n _stock_materials: THREE.Material[] = []\n _default_material?: THREE.Material /* only for Stock */\n _empty_material?: THREE.Material /* only for Stock */\n\n get legendTarget() {\n var { legendTarget } = this.state\n\n if (!this._legendTarget && legendTarget) {\n this._legendTarget = this.root.findById(legendTarget)\n this._legendTarget && this._legendTarget.on('change', this.onLegendTargetChanged, this)\n }\n\n return this._legendTarget\n }\n\n putObject(id: string, object: RealObject) {\n id && (this._objects[id] = object)\n }\n\n getObject(id: string): RealObject {\n return this._objects[id]\n }\n\n /* Container Overides .. */\n\n dispose() {\n this._legendTarget && this._legendTarget.off('change', this.onLegendTargetChanged, this)\n delete this._legendTarget\n\n super.dispose()\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n\n resetMaterials() {\n this._stock_materials.forEach(m => {\n if (m.dispose) m.dispose()\n })\n\n this._stock_materials = []\n }\n\n /* Event Handlers */\n\n onchange(after: Properties, before: Properties) {\n if (before.hasOwnProperty('legendTarget') || after.hasOwnProperty('legendTarget')) {\n this._legendTarget && this._legendTarget.off('change', this.onLegendTargetChanged, this)\n delete this._legendTarget\n this.resetMaterials()\n }\n\n super.onchange(after, before)\n }\n\n onchangeData(): void {\n if (typeof this.data !== 'object') {\n return\n }\n\n var data = this.data\n var locationField = this.getState('locationField') || 'location'\n\n if (data instanceof Array) {\n /**\n * Array type data\n * (e.g. data: [{\n * 'location' : 'A0101-01',\n * 'description': 'description1',\n * ...\n * }, {\n * ...\n * }])\n */\n\n data = data.reduce((acc, value, i, arr) => {\n var location = value[locationField]\n\n if (!location) {\n return acc\n }\n\n // 하나의 로케이션에 여러 레코드 정보가 올 수 있으므로, 하나이 로케이션의 스탁정보를 items 배열에 담는다.\n if (acc[location]) {\n acc[location]['items'].push(value)\n } else {\n acc[location] = { items: [value] }\n }\n\n return acc\n }, {})\n }\n\n /**\n * Object type data\n * (e.g. data: {\n * 'A0101-01': { items: [{ location: 'A0101-01', qty: 10, description: 'description', ... }, {...}] },\n * ...\n * })\n */\n for (var key in data) {\n let id = key\n if (data.hasOwnProperty(id)) {\n let d = data[id]\n let object = this.getObject(id)\n if (object) {\n ;(object as Stock).onchangeStockData(d)\n }\n }\n }\n }\n\n onLegendTargetChanged(after: { [key: string]: any }, before: { [key: string]: any }) {\n if (after.hasOwnProperty('status') && before.hasOwnProperty('status')) this.resetMaterials()\n }\n\n onmouseup(e: MouseEvent) {\n if (this._controls) {\n if (this._lastFocused) {\n ;(this._lastFocused as any)._focused = false\n }\n\n const { popupScene, left, top, width, height } = this.state\n\n var ref = popupScene\n var pointer = this.transcoordC2S(e.offsetX, e.offsetY)\n\n this._mouse!.x = ((pointer.x - left) / width) * 2 - 1\n this._mouse!.y = -((pointer.y - top) / height) * 2 + 1\n\n var object = this.getObjectByRaycast()\n var realObject = object?.userData.context\n\n if (realObject) {\n if (ref && realObject instanceof Stock) {\n ;(realObject as any).onmouseup(e, this, (data: any) => {\n ScenePopup.show(this, ref, {\n data,\n modal: false,\n closable: true,\n output: false,\n location: this.state.popupPosition || 'right-top'\n })\n })\n }\n\n ;(realObject as any)._focused = true\n ;(realObject as any)._focusedAt = performance.now()\n this._lastFocused = realObject\n realObject.component?.trigger('click', e)\n } else {\n ScenePopup.hide(this.root)\n }\n\n this.invalidate()\n\n e.stopPropagation()\n }\n }\n}\n\nComponent.register('visualizer', Visualizer)\n"]}
1
+ {"version":3,"file":"visualizer.js","sourceRoot":"","sources":["../src/visualizer.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ScenePopup, Properties, ComponentNature } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\n\nimport { RealObject } from './threed/real-object'\nimport './three-layout'\nimport { ThreeContainer } from './three-container'\nimport { Stock } from './stock'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'fov',\n name: 'fov',\n property: 'fov'\n },\n {\n type: 'number',\n label: 'near',\n name: 'near',\n property: 'near'\n },\n {\n type: 'number',\n label: 'far',\n name: 'far',\n property: 'far'\n },\n {\n type: 'number',\n label: 'zoom',\n name: 'zoom',\n property: 'zoom'\n },\n {\n type: 'number',\n label: 'camera-x',\n name: 'cameraX'\n },\n {\n type: 'number',\n label: 'camera-y',\n name: 'cameraY'\n },\n {\n type: 'number',\n label: 'camera-z',\n name: 'cameraZ'\n },\n {\n type: 'select',\n label: 'precision',\n name: 'precision',\n property: {\n options: [\n {\n display: 'High',\n value: 'highp'\n },\n {\n display: 'Medium',\n value: 'mediump'\n },\n {\n display: 'Low',\n value: 'lowp'\n }\n ]\n }\n },\n {\n type: 'checkbox',\n label: 'anti-alias',\n name: 'antialias',\n property: 'antialias'\n },\n {\n type: 'checkbox',\n label: 'auto-rotate',\n name: 'autoRotate',\n property: 'autoRotate'\n },\n {\n type: 'checkbox',\n label: '3dmode',\n name: 'threed',\n property: 'threed'\n },\n {\n type: 'checkbox',\n label: 'debug',\n name: 'debug',\n property: 'debug'\n },\n {\n type: 'string',\n label: 'location-field',\n name: 'locationField',\n placeHolder: 'location'\n },\n {\n type: 'board-selector',\n label: 'popup-scene',\n name: 'popupScene'\n },\n {\n type: 'id-input',\n label: 'legend-target',\n name: 'legendTarget',\n property: {\n component: 'legend'\n }\n },\n {\n type: 'number',\n label: 'rotation-speed',\n name: 'rotationSpeed'\n },\n {\n type: 'checkbox',\n label: 'hide-empty-stock',\n name: 'hideEmptyStock'\n },\n {\n type: 'select',\n label: 'popup-position',\n name: 'popupPosition',\n property: {\n options: [\n { display: '', value: '' },\n { display: 'CENTER', value: 'center' },\n { display: 'LEFTTOP', value: 'left-top' },\n { display: 'RIGHTTOP', value: 'right-top' },\n { display: 'LEFTBOTTOM', value: 'left-bottom' },\n { display: 'RIGHTBOTTOM', value: 'right-bottom' }\n ]\n }\n }\n ],\n help: 'scene/component/visualizer'\n}\n\nconst WEBGL_NO_SUPPORT_TEXT = 'WebGL no support'\n\nexport class Visualizer extends ThreeContainer {\n _legendTarget?: Component\n\n _objects: { [id: string]: RealObject } = {}\n\n _stock_materials: THREE.Material[] = []\n _default_material?: THREE.Material /* only for Stock */\n _empty_material?: THREE.Material /* only for Stock */\n\n get legendTarget() {\n var { legendTarget } = this.state\n\n if (!this._legendTarget && legendTarget) {\n this._legendTarget = this.root.findById(legendTarget)\n this._legendTarget && this._legendTarget.on('change', this.onLegendTargetChanged, this)\n }\n\n return this._legendTarget\n }\n\n putObject(id: string, object: RealObject) {\n id && (this._objects[id] = object)\n }\n\n getObject(id: string): RealObject {\n return this._objects[id]\n }\n\n /* Container Overides .. */\n\n dispose() {\n this._legendTarget && this._legendTarget.off('change', this.onLegendTargetChanged, this)\n delete this._legendTarget\n\n super.dispose()\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n\n resetMaterials() {\n this._stock_materials.forEach(m => {\n if (m.dispose) m.dispose()\n })\n\n this._stock_materials = []\n }\n\n /* Event Handlers */\n\n onchange(after: Properties, before: Properties) {\n if (before.hasOwnProperty('legendTarget') || after.hasOwnProperty('legendTarget')) {\n this._legendTarget && this._legendTarget.off('change', this.onLegendTargetChanged, this)\n delete this._legendTarget\n this.resetMaterials()\n }\n\n super.onchange(after, before)\n }\n\n onchangeData(): void {\n if (typeof this.data !== 'object') {\n return\n }\n\n var data = this.data\n var locationField = this.getState('locationField') || 'location'\n\n if (data instanceof Array) {\n /**\n * Array type data\n * (e.g. data: [{\n * 'location' : 'A0101-01',\n * 'description': 'description1',\n * ...\n * }, {\n * ...\n * }])\n */\n\n data = data.reduce((acc, value, i, arr) => {\n var location = value[locationField]\n\n if (!location) {\n return acc\n }\n\n // 하나의 로케이션에 여러 레코드 정보가 올 수 있으므로, 하나이 로케이션의 스탁정보를 items 배열에 담는다.\n if (acc[location]) {\n acc[location]['items'].push(value)\n } else {\n acc[location] = { items: [value] }\n }\n\n return acc\n }, {})\n }\n\n /**\n * Object type data\n * (e.g. data: {\n * 'A0101-01': { items: [{ location: 'A0101-01', qty: 10, description: 'description', ... }, {...}] },\n * ...\n * })\n */\n for (var key in data) {\n let id = key\n if (data.hasOwnProperty(id)) {\n let d = data[id]\n let object = this.getObject(id)\n if (object) {\n ;(object as Stock).onchangeStockData(d)\n }\n }\n }\n }\n\n onLegendTargetChanged(after: { [key: string]: any }, before: { [key: string]: any }) {\n if (after.hasOwnProperty('status') && before.hasOwnProperty('status')) this.resetMaterials()\n }\n\n onmouseup(e: MouseEvent) {\n if (this._controls) {\n if (this._lastFocused) {\n ;(this._lastFocused as any)._focused = false\n }\n\n const { popupScene, left, top, width, height } = this.state\n\n var ref = popupScene\n var pointer = this.transcoordC2S(e.offsetX, e.offsetY)\n\n this._mouse!.x = ((pointer.x - left) / width) * 2 - 1\n this._mouse!.y = -((pointer.y - top) / height) * 2 + 1\n\n var object = this.getObjectByRaycast()\n var realObject = object?.userData.context\n\n if (realObject) {\n if (ref && realObject instanceof Stock) {\n ;(realObject as any).onmouseup(e, this, (data: any) => {\n ScenePopup.show(this, ref, {\n data,\n modal: false,\n closable: true,\n output: false,\n location: this.state.popupPosition || 'right-top'\n })\n })\n }\n\n ;(realObject as any)._focused = true\n ;(realObject as any)._focusedAt = performance.now()\n this._lastFocused = realObject\n realObject.component?.trigger('click', e)\n } else {\n ScenePopup.hide(this.root)\n }\n\n this.invalidate()\n\n e.stopPropagation()\n }\n }\n}\n\nComponent.register('visualizer', Visualizer)\n"]}
package/dist/wall.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /// <reference path="../src/component.d.ts" />
1
2
  import { Shape } from '@hatiolab/things-scene';
2
3
  import { RealObject } from './threed/real-object';
3
4
  import { RealObjectMesh } from './threed/real-object-mesh';
@@ -6,9 +6,9 @@
6
6
  "auditLog": "logs/.08636eb59927f12972f6774f5947c8507b3564c2-audit.json",
7
7
  "files": [
8
8
  {
9
- "date": 1699760153408,
10
- "name": "logs/application-2023-11-12-12.log",
11
- "hash": "d23b0b7f0f281fc54098da2488a02ec691b542b9841cc44508789604d5fbdaf4"
9
+ "date": 1700963931118,
10
+ "name": "logs/application-2023-11-26-10.log",
11
+ "hash": "179138776d139459a51bae17f372b36c5cb8462d9fa44e41afddef985e2d9d59"
12
12
  }
13
13
  ],
14
14
  "hashType": "sha256"
@@ -9,6 +9,11 @@
9
9
  "date": 1699760154924,
10
10
  "name": "logs/connections-2023-11-12-12.log",
11
11
  "hash": "17d6e3e27966d0263b5ac4bbf14df16df48620d1354d794c79da4fc8cceba63f"
12
+ },
13
+ {
14
+ "date": 1700963932882,
15
+ "name": "logs/connections-2023-11-26-10.log",
16
+ "hash": "d867a997b6934fa8d364ea298e6a1b7f297a9145d1083c05c199a86b4d8de4c0"
12
17
  }
13
18
  ],
14
19
  "hashType": "sha256"
@@ -0,0 +1,6 @@
1
+ 2023-11-26T10:58:52+09:00 info: File Storage is Ready.
2
+ 2023-11-26T10:58:53+09:00 error: oracledb module loading failed
3
+ 2023-11-26T10:58:53+09:00 error: oracledb module loading failed
4
+ 2023-11-26T10:58:54+09:00 info: Default DataSource established
5
+ 2023-11-26T10:58:55+09:00 info: 🚀 Server ready at http://0.0.0.0:3000/graphql
6
+ 2023-11-26T10:58:55+09:00 info: 🚀 Subscriptions ready at ws://0.0.0.0:3000/graphql
@@ -0,0 +1,41 @@
1
+ 2023-11-26T10:58:55+09:00 info: Initializing ConnectionManager...
2
+ 2023-11-26T10:58:55+09:00 info: Connector 'echo-back-server' started to ready
3
+ 2023-11-26T10:58:55+09:00 info: Connector 'echo-back' started to ready
4
+ 2023-11-26T10:58:55+09:00 info: Connector 'http-connector' started to ready
5
+ 2023-11-26T10:58:55+09:00 info: Connector 'graphql-connector' started to ready
6
+ 2023-11-26T10:58:55+09:00 info: Connector 'sqlite-connector' started to ready
7
+ 2023-11-26T10:58:55+09:00 info: Connector 'postgresql-connector' started to ready
8
+ 2023-11-26T10:58:55+09:00 info: Connector 'mqtt-connector' started to ready
9
+ 2023-11-26T10:58:55+09:00 info: Connector 'mssql-connector' started to ready
10
+ 2023-11-26T10:58:55+09:00 info: Connector 'oracle-connector' started to ready
11
+ 2023-11-26T10:58:55+09:00 info: Connector 'mysql-connector' started to ready
12
+ 2023-11-26T10:58:55+09:00 info: Connector 'socket-server' started to ready
13
+ 2023-11-26T10:58:55+09:00 info: Connector 'operato-connector' started to ready
14
+ 2023-11-26T10:58:55+09:00 info: Connector 'msgraph-connector' started to ready
15
+ 2023-11-26T10:58:55+09:00 info: echo-back-servers are ready
16
+ 2023-11-26T10:58:55+09:00 info: echo-back connections are ready
17
+ 2023-11-26T10:58:55+09:00 info: http-connector connections are ready
18
+ 2023-11-26T10:58:55+09:00 info: graphql-connector connections are ready
19
+ 2023-11-26T10:58:55+09:00 info: sqlite-connector connections are ready
20
+ 2023-11-26T10:58:55+09:00 info: postgresql-connector connections are ready
21
+ 2023-11-26T10:58:55+09:00 info: mqtt-connector connections are ready
22
+ 2023-11-26T10:58:55+09:00 info: mssql-connector connections are ready
23
+ 2023-11-26T10:58:55+09:00 info: oracle-connector connections are ready
24
+ 2023-11-26T10:58:55+09:00 info: mysql-connector connections are ready
25
+ 2023-11-26T10:58:55+09:00 info: socket servers are ready
26
+ 2023-11-26T10:58:55+09:00 info: graphql-connector connections are ready
27
+ 2023-11-26T10:58:55+09:00 info: msgraph-connector connections are ready
28
+ 2023-11-26T10:58:55+09:00 info: All connector for 'echo-back-server' ready
29
+ 2023-11-26T10:58:55+09:00 info: All connector for 'echo-back' ready
30
+ 2023-11-26T10:58:55+09:00 info: All connector for 'http-connector' ready
31
+ 2023-11-26T10:58:55+09:00 info: All connector for 'graphql-connector' ready
32
+ 2023-11-26T10:58:55+09:00 info: All connector for 'sqlite-connector' ready
33
+ 2023-11-26T10:58:55+09:00 info: All connector for 'postgresql-connector' ready
34
+ 2023-11-26T10:58:55+09:00 info: All connector for 'mqtt-connector' ready
35
+ 2023-11-26T10:58:55+09:00 info: All connector for 'mssql-connector' ready
36
+ 2023-11-26T10:58:55+09:00 info: All connector for 'oracle-connector' ready
37
+ 2023-11-26T10:58:55+09:00 info: All connector for 'mysql-connector' ready
38
+ 2023-11-26T10:58:55+09:00 info: All connector for 'socket-server' ready
39
+ 2023-11-26T10:58:55+09:00 info: All connector for 'operato-connector' ready
40
+ 2023-11-26T10:58:55+09:00 info: All connector for 'msgraph-connector' ready
41
+ 2023-11-26T10:58:55+09:00 info: ConnectionManager initialization done:
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@operato/scene-visualizer",
3
3
  "description": "visualizer component for operato-scene",
4
4
  "author": "heartyoh",
5
- "version": "1.2.88",
5
+ "version": "1.2.91",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
8
8
  "license": "MIT",
@@ -62,5 +62,5 @@
62
62
  "prettier --write"
63
63
  ]
64
64
  },
65
- "gitHead": "1925de51ed6887bf2f13b85b1086e380ad2046ea"
65
+ "gitHead": "6c61f6f71601a4369d56c3b0a8ba75f4a4919f1d"
66
66
  }
package/schema.graphql CHANGED
@@ -1614,6 +1614,9 @@ type Mutation {
1614
1614
  """To create new Setting"""
1615
1615
  createSetting(setting: NewSetting!): Setting!
1616
1616
 
1617
+ """To create new StateRegister"""
1618
+ createStateRegister(stateRegister: NewStateRegister!): StateRegister!
1619
+
1617
1620
  """To create new Terminology"""
1618
1621
  createTerminology(terminology: NewTerminology!): Terminology!
1619
1622
 
@@ -1819,6 +1822,12 @@ type Mutation {
1819
1822
  """To delete multiple settings"""
1820
1823
  deleteSettings(names: [String!]!): Boolean!
1821
1824
 
1825
+ """To delete StateRegister"""
1826
+ deleteStateRegister(id: String!): Boolean!
1827
+
1828
+ """To delete multiple StateRegisters"""
1829
+ deleteStateRegisters(ids: [String!]!): Boolean!
1830
+
1822
1831
  """To delete multiple steps"""
1823
1832
  deleteSteps(ids: [String!]!): Boolean!
1824
1833
 
@@ -1912,6 +1921,9 @@ type Mutation {
1912
1921
  """To import multiple scenarios"""
1913
1922
  importScenarios(scenarios: [ScenarioPatch!]!): Boolean!
1914
1923
 
1924
+ """To import multiple StateRegisters"""
1925
+ importStateRegisters(stateRegisters: [StateRegisterPatch!]!): Boolean!
1926
+
1915
1927
  """To import multiple Terminologies"""
1916
1928
  importTerminologies(terminologies: [TerminologyPatch!]!): Boolean!
1917
1929
 
@@ -2133,6 +2145,9 @@ type Mutation {
2133
2145
  """To modify multiple Settings' information"""
2134
2146
  updateMultipleSetting(patches: [SettingPatch!]!): [Setting!]!
2135
2147
 
2148
+ """To modify multiple StateRegisters' information"""
2149
+ updateMultipleStateRegister(patches: [StateRegisterPatch!]!): [StateRegister!]!
2150
+
2136
2151
  """To modify multiple steps' in a scenario"""
2137
2152
  updateMultipleStep(patches: [StepPatch!]!, scenarioId: String!): [Step!]!
2138
2153
 
@@ -2184,6 +2199,12 @@ type Mutation {
2184
2199
  """To modify Setting information"""
2185
2200
  updateSetting(name: String!, patch: SettingPatch!): Setting!
2186
2201
 
2202
+ """To modify StateRegister information"""
2203
+ updateStateRegister(id: String!, patch: StateRegisterPatch!): StateRegister!
2204
+
2205
+ """To update state of StateRegister by name"""
2206
+ updateStateRegisterByName(name: String!, state: Object!): StateRegister!
2207
+
2187
2208
  """To modify Terminology information"""
2188
2209
  updateTerminology(id: String!, patch: TerminologyPatch!): Terminology!
2189
2210
 
@@ -2649,6 +2670,15 @@ input NewSetting {
2649
2670
  value: String
2650
2671
  }
2651
2672
 
2673
+ input NewStateRegister {
2674
+ description: String
2675
+ name: String!
2676
+ refBy: String
2677
+ state: Object
2678
+ ttl: Int
2679
+ type: String
2680
+ }
2681
+
2652
2682
  input NewTerminology {
2653
2683
  category: String!
2654
2684
  description: String
@@ -3474,6 +3504,15 @@ type Query {
3474
3504
  """To fetch multiple Settings"""
3475
3505
  settings(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): SettingList!
3476
3506
 
3507
+ """To fetch a StateRegister"""
3508
+ stateRegister(id: String!): StateRegister
3509
+
3510
+ """To fetch a StateRegister by name"""
3511
+ stateRegisterByName(name: String!): StateRegister
3512
+
3513
+ """To fetch multiple StateRegisters"""
3514
+ stateRegisters(filters: [Filter!], inherited: InheritedValueType, pagination: Pagination, sortings: [Sorting!]): StateRegisterList!
3515
+
3477
3516
  """To fetch a step"""
3478
3517
  step(name: String!): Step!
3479
3518
 
@@ -3691,6 +3730,40 @@ input Sorting {
3691
3730
  name: String!
3692
3731
  }
3693
3732
 
3733
+ """Entity for StateRegister"""
3734
+ type StateRegister {
3735
+ createdAt: DateTimeISO
3736
+ creator: User
3737
+ description: String
3738
+ domain: Domain
3739
+ id: ID!
3740
+ name: String
3741
+ refBy: String
3742
+ state: Object
3743
+ ttl: Int
3744
+ type: String
3745
+ updatedAt: DateTimeISO
3746
+ updater: User
3747
+ writer: User
3748
+ wroteAt: DateTimeISO
3749
+ }
3750
+
3751
+ type StateRegisterList {
3752
+ items: [StateRegister!]!
3753
+ total: Int!
3754
+ }
3755
+
3756
+ input StateRegisterPatch {
3757
+ cuFlag: String
3758
+ description: String
3759
+ id: ID
3760
+ name: String
3761
+ refBy: String
3762
+ state: Object
3763
+ ttl: Int
3764
+ type: String
3765
+ }
3766
+
3694
3767
  type Step {
3695
3768
  connection: String
3696
3769
  createdAt: DateTimeISO