@operato/scene-visualizer 9.0.0-beta.1 → 9.0.0-beta.14

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 (131) hide show
  1. package/dist/banner.d.ts +1 -1
  2. package/dist/banner.js +1 -1
  3. package/dist/banner.js.map +1 -1
  4. package/dist/camera.d.ts +1 -1
  5. package/dist/camera.js +1 -1
  6. package/dist/camera.js.map +1 -1
  7. package/dist/cube.d.ts +2 -2
  8. package/dist/cube.js +4 -2
  9. package/dist/cube.js.map +1 -1
  10. package/dist/cylinder.d.ts +2 -2
  11. package/dist/cylinder.js +5 -3
  12. package/dist/cylinder.js.map +1 -1
  13. package/dist/desk.d.ts +1 -1
  14. package/dist/desk.js +1 -1
  15. package/dist/desk.js.map +1 -1
  16. package/dist/editors/index.d.ts +2 -2
  17. package/dist/editors/index.js +2 -2
  18. package/dist/editors/index.js.map +1 -1
  19. package/dist/editors/property-editor-gltf-info.js +1 -1
  20. package/dist/editors/property-editor-gltf-info.js.map +1 -1
  21. package/dist/editors/property-editor-location-increase-pattern.js +39 -36
  22. package/dist/editors/property-editor-location-increase-pattern.js.map +1 -1
  23. package/dist/ellipse.d.ts +1 -1
  24. package/dist/ellipse.js +1 -1
  25. package/dist/ellipse.js.map +1 -1
  26. package/dist/gltf-object.d.ts +1 -1
  27. package/dist/gltf-object.js +1 -1
  28. package/dist/gltf-object.js.map +1 -1
  29. package/dist/html-overlay-element.js +1 -1
  30. package/dist/html-overlay-element.js.map +1 -1
  31. package/dist/index.d.ts +22 -22
  32. package/dist/index.js +22 -22
  33. package/dist/index.js.map +1 -1
  34. package/dist/light.d.ts +1 -1
  35. package/dist/light.js +1 -1
  36. package/dist/light.js.map +1 -1
  37. package/dist/polygon.d.ts +1 -1
  38. package/dist/polygon.js +1 -1
  39. package/dist/polygon.js.map +1 -1
  40. package/dist/rack-table-cell.d.ts +1 -1
  41. package/dist/rack-table-cell.js +1 -1
  42. package/dist/rack-table-cell.js.map +1 -1
  43. package/dist/rack-table.d.ts +4 -4
  44. package/dist/rack-table.js +2 -2
  45. package/dist/rack-table.js.map +1 -1
  46. package/dist/rack.d.ts +3 -3
  47. package/dist/rack.js +2 -2
  48. package/dist/rack.js.map +1 -1
  49. package/dist/rect.d.ts +1 -1
  50. package/dist/rect.js +1 -1
  51. package/dist/rect.js.map +1 -1
  52. package/dist/scene/component.js +1 -1
  53. package/dist/scene/component.js.map +1 -1
  54. package/dist/sphere.d.ts +2 -2
  55. package/dist/sphere.js +5 -3
  56. package/dist/sphere.js.map +1 -1
  57. package/dist/sprite.d.ts +1 -1
  58. package/dist/sprite.js +1 -1
  59. package/dist/sprite.js.map +1 -1
  60. package/dist/stock.d.ts +2 -2
  61. package/dist/stock.js +1 -1
  62. package/dist/stock.js.map +1 -1
  63. package/dist/templates/index.js +13 -13
  64. package/dist/templates/index.js.map +1 -1
  65. package/dist/text.js +1 -1
  66. package/dist/text.js.map +1 -1
  67. package/dist/three-container.d.ts +4 -4
  68. package/dist/three-container.js +4 -4
  69. package/dist/three-container.js.map +1 -1
  70. package/dist/three-space.d.ts +4 -4
  71. package/dist/three-space.js +4 -4
  72. package/dist/three-space.js.map +1 -1
  73. package/dist/threed/floor/floor.js +1 -1
  74. package/dist/threed/floor/floor.js.map +1 -1
  75. package/dist/threed/index.d.ts +15 -15
  76. package/dist/threed/index.js +15 -15
  77. package/dist/threed/index.js.map +1 -1
  78. package/dist/threed/real-object-camera-meshed.d.ts +1 -1
  79. package/dist/threed/real-object-camera-meshed.js +2 -2
  80. package/dist/threed/real-object-camera-meshed.js.map +1 -1
  81. package/dist/threed/real-object-camera.d.ts +1 -1
  82. package/dist/threed/real-object-camera.js +1 -1
  83. package/dist/threed/real-object-camera.js.map +1 -1
  84. package/dist/threed/real-object-dom-element.d.ts +1 -1
  85. package/dist/threed/real-object-dom-element.js +1 -1
  86. package/dist/threed/real-object-dom-element.js.map +1 -1
  87. package/dist/threed/real-object-dummy.d.ts +1 -1
  88. package/dist/threed/real-object-dummy.js +1 -1
  89. package/dist/threed/real-object-dummy.js.map +1 -1
  90. package/dist/threed/real-object-extrude.d.ts +3 -2
  91. package/dist/threed/real-object-extrude.js +18 -4
  92. package/dist/threed/real-object-extrude.js.map +1 -1
  93. package/dist/threed/real-object-gltf.d.ts +1 -1
  94. package/dist/threed/real-object-gltf.js +3 -3
  95. package/dist/threed/real-object-gltf.js.map +1 -1
  96. package/dist/threed/real-object-group.d.ts +1 -1
  97. package/dist/threed/real-object-group.js +1 -1
  98. package/dist/threed/real-object-group.js.map +1 -1
  99. package/dist/threed/real-object-mesh.d.ts +2 -1
  100. package/dist/threed/real-object-mesh.js +17 -2
  101. package/dist/threed/real-object-mesh.js.map +1 -1
  102. package/dist/threed/real-object-plane.d.ts +1 -1
  103. package/dist/threed/real-object-plane.js +1 -1
  104. package/dist/threed/real-object-plane.js.map +1 -1
  105. package/dist/threed/real-object-scene.d.ts +1 -1
  106. package/dist/threed/real-object-scene.js +2 -2
  107. package/dist/threed/real-object-scene.js.map +1 -1
  108. package/dist/threed/real-object-sprite-2d.d.ts +1 -1
  109. package/dist/threed/real-object-sprite-2d.js +2 -2
  110. package/dist/threed/real-object-sprite-2d.js.map +1 -1
  111. package/dist/threed/real-object-sprite.d.ts +1 -1
  112. package/dist/threed/real-object-sprite.js +2 -2
  113. package/dist/threed/real-object-sprite.js.map +1 -1
  114. package/dist/threed/real-object-text.d.ts +1 -1
  115. package/dist/threed/real-object-text.js +3 -3
  116. package/dist/threed/real-object-text.js.map +1 -1
  117. package/dist/threed/real-object.d.ts +1 -1
  118. package/dist/threed/real-object.js +1 -1
  119. package/dist/threed/real-object.js.map +1 -1
  120. package/dist/threed/texture/canvas-texture.js +1 -1
  121. package/dist/threed/texture/canvas-texture.js.map +1 -1
  122. package/dist/threed/texture/text-texture.js +1 -1
  123. package/dist/threed/texture/text-texture.js.map +1 -1
  124. package/dist/visualizer.d.ts +3 -3
  125. package/dist/visualizer.js +3 -3
  126. package/dist/visualizer.js.map +1 -1
  127. package/dist/wall.d.ts +2 -3
  128. package/dist/wall.js +5 -6
  129. package/dist/wall.js.map +1 -1
  130. package/package.json +6 -5
  131. package/things-scene.config.js +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"gltf-object.js","sourceRoot":"","sources":["../src/gltf-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAA4B,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAG7F,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE1D,MAAM,cAAc,GAAG,WAAW,CAAA;AAElC,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,cAAc;gBAC5B,cAAc,EAAE,UAAU;gBAC1B,cAAc,EAAE;oBACd,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,OAAO;yBACf;qBACF;iBACF;gBACD,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,aAAa;aACxB;YACD,OAAO,EAAE,UAA6B,GAAW;gBAC/C,MAAM,IAAI,GAAQ,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;gBACnE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YAChB,CAAC;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE;gBACR,MAAM,EAAE,CAAC,SAAqB,EAAE,OAAY,EAAE,EAAE;oBAC9C,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACxB,CAAC;aACF;YACD,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;aAChB;SACF;KACF;IACD,gBAAgB,EAAE,QAAQ;IAC1B,IAAI,EAAE,6BAA6B;CACpC,CAAA;AAED,MAAM,OAAO,UAAW,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAG7C,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,KAAK;QACd,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,UAAU,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;YAC/B,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QACvF,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACrE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,SAAS,CAAC,SAA2D;;QACvE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,SAAS,CAAA;QACtD,IAAI,CAAC,QAAQ,CAAC;YACZ,KAAK;YACL,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QAEF,MAAA,IAAI,CAAC,UAAU,0CAAE,eAAe,EAAE,CAAA;IACpC,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, Control, RectPath, Shape } from '@hatiolab/things-scene'\nimport { RealObject } from './threed/real-object'\n\nimport { RealObjectGLTF } from './threed/real-object-gltf'\n\nconst BASE_URL_ALIAS = '$base_url'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'gltf-selector',\n label: 'url',\n name: 'src',\n property: {\n displayField: 'id',\n displayFullUrl: true,\n baseUrlAlias: BASE_URL_ALIAS,\n defaultStorage: '3d-model',\n storageFilters: {\n type: Array,\n value: [\n {\n name: 'category',\n value: 'image'\n }\n ]\n },\n useUpload: true,\n category: 'application'\n },\n observe: function (this: HTMLElement, src: string) {\n const info: any = this.parentNode!.querySelector('[name=gltfInfo]')\n info.src = src\n }\n },\n {\n type: 'gltf-info',\n label: '',\n name: 'gltfInfo',\n readonly: true,\n property: {\n action: (component: GLTFObject, options: any) => {\n component.set(options)\n }\n },\n editor: {\n fullwidth: true\n }\n }\n ],\n 'value-property': 'source',\n help: 'scene/component/gltf-object'\n}\n\nexport class GLTFObject extends RectPath(Shape) {\n static _image: HTMLImageElement\n\n is3dish() {\n return true\n }\n\n static get image() {\n if (!GLTFObject._image) {\n GLTFObject._image = new Image()\n GLTFObject._image.src = new URL('../icons/canvasicon-gltf.png', import.meta.url).href\n }\n\n return GLTFObject._image\n }\n\n get controls(): Array<Control> | undefined {\n return []\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, GLTFObject.image, left, top, width, height)\n }\n\n buildRealObject(): RealObject | undefined {\n return new RealObjectGLTF(this)\n }\n\n get nature() {\n return NATURE\n }\n\n get source() {\n return this.getState('src')\n }\n\n set source(source) {\n this.setState('src', source)\n }\n\n set dimension(dimension: { width: number; height: number; depth: number }) {\n const { width = 1, height = 1, depth = 1 } = dimension\n this.setState({\n width,\n height,\n depth\n })\n\n this.realObject?.updateDimension()\n }\n}\n\nComponent.register('gltf-object', GLTFObject)\n"]}
1
+ {"version":3,"file":"gltf-object.js","sourceRoot":"","sources":["../src/gltf-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAA4B,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAG7F,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D,MAAM,cAAc,GAAG,WAAW,CAAA;AAElC,MAAM,MAAM,GAAoB;IAC9B,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,SAAS,EAAE,IAAI;IACf,UAAU,EAAE;QACV;YACE,IAAI,EAAE,eAAe;YACrB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI;gBAClB,cAAc,EAAE,IAAI;gBACpB,YAAY,EAAE,cAAc;gBAC5B,cAAc,EAAE,UAAU;gBAC1B,cAAc,EAAE;oBACd,IAAI,EAAE,KAAK;oBACX,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,OAAO;yBACf;qBACF;iBACF;gBACD,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,aAAa;aACxB;YACD,OAAO,EAAE,UAA6B,GAAW;gBAC/C,MAAM,IAAI,GAAQ,IAAI,CAAC,UAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;gBACnE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;YAChB,CAAC;SACF;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE;gBACR,MAAM,EAAE,CAAC,SAAqB,EAAE,OAAY,EAAE,EAAE;oBAC9C,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBACxB,CAAC;aACF;YACD,MAAM,EAAE;gBACN,SAAS,EAAE,IAAI;aAChB;SACF;KACF;IACD,gBAAgB,EAAE,QAAQ;IAC1B,IAAI,EAAE,6BAA6B;CACpC,CAAA;AAED,MAAM,OAAO,UAAW,SAAQ,QAAQ,CAAC,KAAK,CAAC;IAG7C,OAAO;QACL,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,KAAK,KAAK;QACd,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,UAAU,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAA;YAC/B,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;QACvF,CAAC;QAED,OAAO,UAAU,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IACrE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,SAAS,CAAC,SAA2D;;QACvE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,SAAS,CAAA;QACtD,IAAI,CAAC,QAAQ,CAAC;YACZ,KAAK;YACL,MAAM;YACN,KAAK;SACN,CAAC,CAAA;QAEF,MAAA,IAAI,CAAC,UAAU,0CAAE,eAAe,EAAE,CAAA;IACpC,CAAC;CACF;AAED,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, Control, RectPath, Shape } from '@hatiolab/things-scene'\nimport { RealObject } from './threed/real-object.js'\n\nimport { RealObjectGLTF } from './threed/real-object-gltf.js'\n\nconst BASE_URL_ALIAS = '$base_url'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'gltf-selector',\n label: 'url',\n name: 'src',\n property: {\n displayField: 'id',\n displayFullUrl: true,\n baseUrlAlias: BASE_URL_ALIAS,\n defaultStorage: '3d-model',\n storageFilters: {\n type: Array,\n value: [\n {\n name: 'category',\n value: 'image'\n }\n ]\n },\n useUpload: true,\n category: 'application'\n },\n observe: function (this: HTMLElement, src: string) {\n const info: any = this.parentNode!.querySelector('[name=gltfInfo]')\n info.src = src\n }\n },\n {\n type: 'gltf-info',\n label: '',\n name: 'gltfInfo',\n readonly: true,\n property: {\n action: (component: GLTFObject, options: any) => {\n component.set(options)\n }\n },\n editor: {\n fullwidth: true\n }\n }\n ],\n 'value-property': 'source',\n help: 'scene/component/gltf-object'\n}\n\nexport class GLTFObject extends RectPath(Shape) {\n static _image: HTMLImageElement\n\n is3dish() {\n return true\n }\n\n static get image() {\n if (!GLTFObject._image) {\n GLTFObject._image = new Image()\n GLTFObject._image.src = new URL('../icons/canvasicon-gltf.png', import.meta.url).href\n }\n\n return GLTFObject._image\n }\n\n get controls(): Array<Control> | undefined {\n return []\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.beginPath()\n this.drawImage(context, GLTFObject.image, left, top, width, height)\n }\n\n buildRealObject(): RealObject | undefined {\n return new RealObjectGLTF(this)\n }\n\n get nature() {\n return NATURE\n }\n\n get source() {\n return this.getState('src')\n }\n\n set source(source) {\n this.setState('src', source)\n }\n\n set dimension(dimension: { width: number; height: number; depth: number }) {\n const { width = 1, height = 1, depth = 1 } = dimension\n this.setState({\n width,\n height,\n depth\n })\n\n this.realObject?.updateDimension()\n }\n}\n\nComponent.register('gltf-object', GLTFObject)\n"]}
@@ -2,7 +2,7 @@
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
4
  import { HTMLOverlayContainer, HTMLOverlayElement } from '@hatiolab/things-scene';
5
- import { RealObjectDomElement } from './threed/real-object-dom-element';
5
+ import { RealObjectDomElement } from './threed/real-object-dom-element.js';
6
6
  HTMLOverlayElement.prototype.buildRealObject = function () {
7
7
  return new RealObjectDomElement(this);
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"html-overlay-element.js","sourceRoot":"","sources":["../src/html-overlay-element.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAA;AAEvE,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG;IAC7C,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,oBAAoB,CAAC,SAAS,CAAC,eAAe,GAAG;IAC/C,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { HTMLOverlayContainer, HTMLOverlayElement } from '@hatiolab/things-scene'\nimport { RealObjectDomElement } from './threed/real-object-dom-element'\n\nHTMLOverlayElement.prototype.buildRealObject = function () {\n return new RealObjectDomElement(this)\n}\n\nHTMLOverlayContainer.prototype.buildRealObject = function () {\n return new RealObjectDomElement(this)\n}\n"]}
1
+ {"version":3,"file":"html-overlay-element.js","sourceRoot":"","sources":["../src/html-overlay-element.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAE1E,kBAAkB,CAAC,SAAS,CAAC,eAAe,GAAG;IAC7C,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA;AAED,oBAAoB,CAAC,SAAS,CAAC,eAAe,GAAG;IAC/C,OAAO,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { HTMLOverlayContainer, HTMLOverlayElement } from '@hatiolab/things-scene'\nimport { RealObjectDomElement } from './threed/real-object-dom-element.js'\n\nHTMLOverlayElement.prototype.buildRealObject = function () {\n return new RealObjectDomElement(this)\n}\n\nHTMLOverlayContainer.prototype.buildRealObject = function () {\n return new RealObjectDomElement(this)\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,22 +1,22 @@
1
- import './scene/component';
2
- import './text';
3
- import './html-overlay-element';
4
- export * from './threed';
5
- export * from './gltf-object';
6
- export * from './camera';
7
- export * from './banner';
8
- export * from './sprite';
9
- export * from './cube';
10
- export * from './cylinder';
11
- export * from './desk';
12
- export * from './ellipse';
13
- export * from './polygon';
14
- export * from './rack';
15
- export * from './rack-table';
16
- export * from './rack-table-cell';
17
- export * from './rect';
18
- export * from './sphere';
19
- export * from './visualizer';
20
- export * from './three-container';
21
- export * from './wall';
22
- export * from './light';
1
+ import './scene/component.js';
2
+ import './text.js';
3
+ import './html-overlay-element.js';
4
+ export * from './threed/index.js';
5
+ export * from './gltf-object.js';
6
+ export * from './camera.js';
7
+ export * from './banner.js';
8
+ export * from './sprite.js';
9
+ export * from './cube.js';
10
+ export * from './cylinder.js';
11
+ export * from './desk.js';
12
+ export * from './ellipse.js';
13
+ export * from './polygon.js';
14
+ export * from './rack.js';
15
+ export * from './rack-table.js';
16
+ export * from './rack-table-cell.js';
17
+ export * from './rect.js';
18
+ export * from './sphere.js';
19
+ export * from './visualizer.js';
20
+ export * from './three-container.js';
21
+ export * from './wall.js';
22
+ export * from './light.js';
package/dist/index.js CHANGED
@@ -1,26 +1,26 @@
1
1
  /*
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
- import './scene/component';
5
- import './text';
6
- import './html-overlay-element';
7
- export * from './threed';
8
- export * from './gltf-object';
9
- export * from './camera';
10
- export * from './banner';
11
- export * from './sprite';
12
- export * from './cube';
13
- export * from './cylinder';
14
- export * from './desk';
15
- export * from './ellipse';
16
- export * from './polygon';
17
- export * from './rack';
18
- export * from './rack-table';
19
- export * from './rack-table-cell';
20
- export * from './rect';
21
- export * from './sphere';
22
- export * from './visualizer';
23
- export * from './three-container';
24
- export * from './wall';
25
- export * from './light';
4
+ import './scene/component.js';
5
+ import './text.js';
6
+ import './html-overlay-element.js';
7
+ export * from './threed/index.js';
8
+ export * from './gltf-object.js';
9
+ export * from './camera.js';
10
+ export * from './banner.js';
11
+ export * from './sprite.js';
12
+ export * from './cube.js';
13
+ export * from './cylinder.js';
14
+ export * from './desk.js';
15
+ export * from './ellipse.js';
16
+ export * from './polygon.js';
17
+ export * from './rack.js';
18
+ export * from './rack-table.js';
19
+ export * from './rack-table-cell.js';
20
+ export * from './rect.js';
21
+ export * from './sphere.js';
22
+ export * from './visualizer.js';
23
+ export * from './three-container.js';
24
+ export * from './wall.js';
25
+ export * from './light.js';
26
26
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,mBAAmB,CAAA;AAE1B,OAAO,QAAQ,CAAA;AACf,OAAO,wBAAwB,CAAA;AAE/B,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAE7B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,QAAQ,CAAA;AACtB,cAAc,YAAY,CAAA;AAC1B,cAAc,QAAQ,CAAA;AACtB,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,QAAQ,CAAA;AACtB,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,mBAAmB,CAAA;AACjC,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './scene/component'\n\nimport './text'\nimport './html-overlay-element'\n\nexport * from './threed'\nexport * from './gltf-object'\n\nexport * from './camera'\nexport * from './banner'\nexport * from './sprite'\nexport * from './cube'\nexport * from './cylinder'\nexport * from './desk'\nexport * from './ellipse'\nexport * from './polygon'\nexport * from './rack'\nexport * from './rack-table'\nexport * from './rack-table-cell'\nexport * from './rect'\nexport * from './sphere'\nexport * from './visualizer'\nexport * from './three-container'\nexport * from './wall'\nexport * from './light'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,sBAAsB,CAAA;AAE7B,OAAO,WAAW,CAAA;AAClB,OAAO,2BAA2B,CAAA;AAElC,cAAc,mBAAmB,CAAA;AAEjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,WAAW,CAAA;AACzB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport './scene/component.js'\n\nimport './text.js'\nimport './html-overlay-element.js'\n\nexport * from './threed/index.js'\n\nexport * from './gltf-object.js'\nexport * from './camera.js'\nexport * from './banner.js'\nexport * from './sprite.js'\nexport * from './cube.js'\nexport * from './cylinder.js'\nexport * from './desk.js'\nexport * from './ellipse.js'\nexport * from './polygon.js'\nexport * from './rack.js'\nexport * from './rack-table.js'\nexport * from './rack-table-cell.js'\nexport * from './rect.js'\nexport * from './sphere.js'\nexport * from './visualizer.js'\nexport * from './three-container.js'\nexport * from './wall.js'\nexport * from './light.js'\n"]}
package/dist/light.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Anchor, ComponentNature, Ellipse } from '@hatiolab/things-scene';
2
2
  import * as THREE from 'three';
3
- import { RealObject } from './threed/real-object';
3
+ import { RealObject } from './threed/real-object.js';
4
4
  export declare class LightObject extends RealObject<THREE.Light> {
5
5
  helper?: THREE.CameraHelper;
6
6
  updatePointLight(): void;
package/dist/light.js CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Component, Ellipse } from '@hatiolab/things-scene';
5
5
  import * as THREE from 'three';
6
- import { RealObject } from './threed/real-object';
6
+ import { RealObject } from './threed/real-object.js';
7
7
  const NATURE = {
8
8
  mutable: false,
9
9
  resizable: true,
package/dist/light.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Anchor, Component, ComponentNature, Ellipse } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'light-type',\n name: 'lightType',\n property: {\n options: ['', 'point', 'directional']\n }\n },\n {\n type: 'number',\n label: 'intensity',\n name: 'intensity'\n },\n {\n type: 'number',\n label: 'distance',\n name: 'distance'\n },\n {\n type: 'number',\n label: 'decay',\n name: 'decay'\n },\n {\n type: 'checkbox',\n label: 'cast-shadow',\n name: 'castShadow'\n },\n {\n type: 'number',\n label: 'near',\n name: 'near',\n placeholder: '0.5'\n },\n {\n type: 'number',\n label: 'far',\n name: 'far',\n placeholder: '1000'\n },\n {\n type: 'number',\n label: 'fov',\n name: 'fov',\n placeholder: '90'\n },\n {\n type: 'number',\n label: 'zoom',\n name: 'zoom',\n placeholder: '1'\n },\n {\n type: 'checkbox',\n label: 'show-helper',\n name: 'showHelper'\n }\n ],\n help: 'scene/component/light'\n}\n\nexport class LightObject extends RealObject<THREE.Light> {\n helper?: THREE.CameraHelper\n\n updatePointLight() {\n var {\n lightType = 'point',\n distance = 0, // unlimited\n intensity = 10,\n decay = 1,\n fillStyle: color = 'white',\n castShadow,\n near = 0.5,\n far = 1000,\n fov = 90,\n zoom = 1,\n showHelper\n } = this.component.state\n\n this.object3d!.color = new THREE.Color(color)\n if (lightType == 'point') {\n ;(this.object3d as THREE.PointLight)!.distance = distance\n ;(this.object3d as THREE.PointLight)!.decay = decay\n }\n this.object3d!.intensity = intensity\n this.object3d!.castShadow = castShadow\n if (castShadow) {\n const camera = this.object3d!.shadow?.camera as THREE.PerspectiveCamera\n camera.far = far\n camera.near = near\n camera.fov = fov\n camera.zoom = zoom\n }\n\n if (showHelper) {\n const camera = this.object3d!.shadow?.camera as THREE.PerspectiveCamera\n\n if (!this.helper) {\n this.helper = new THREE.CameraHelper(camera!)\n this.object3d.add(this.helper)\n }\n } else if (this.helper) {\n this.object3d.remove(this.helper)\n delete this.helper\n }\n }\n\n protected getObject3dInstance(): THREE.Light {\n var { lightType = 'point' } = this.component.state\n\n return lightType == 'point' ? new THREE.PointLight() : new THREE.DirectionalLight()\n }\n\n update() {\n this.clear()\n this.build()\n\n this.updateDimension()\n this.updateHidden()\n\n this.updatePointLight()\n }\n}\n\nexport class PointLight extends Ellipse {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new LightObject(this)\n }\n\n get anchors(): Array<Anchor> {\n return []\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n}\n\nComponent.register('light', PointLight)\n"]}
1
+ {"version":3,"file":"light.js","sourceRoot":"","sources":["../src/light.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Anchor, Component, ComponentNature, Ellipse } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObject } from './threed/real-object.js'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'select',\n label: 'light-type',\n name: 'lightType',\n property: {\n options: ['', 'point', 'directional']\n }\n },\n {\n type: 'number',\n label: 'intensity',\n name: 'intensity'\n },\n {\n type: 'number',\n label: 'distance',\n name: 'distance'\n },\n {\n type: 'number',\n label: 'decay',\n name: 'decay'\n },\n {\n type: 'checkbox',\n label: 'cast-shadow',\n name: 'castShadow'\n },\n {\n type: 'number',\n label: 'near',\n name: 'near',\n placeholder: '0.5'\n },\n {\n type: 'number',\n label: 'far',\n name: 'far',\n placeholder: '1000'\n },\n {\n type: 'number',\n label: 'fov',\n name: 'fov',\n placeholder: '90'\n },\n {\n type: 'number',\n label: 'zoom',\n name: 'zoom',\n placeholder: '1'\n },\n {\n type: 'checkbox',\n label: 'show-helper',\n name: 'showHelper'\n }\n ],\n help: 'scene/component/light'\n}\n\nexport class LightObject extends RealObject<THREE.Light> {\n helper?: THREE.CameraHelper\n\n updatePointLight() {\n var {\n lightType = 'point',\n distance = 0, // unlimited\n intensity = 10,\n decay = 1,\n fillStyle: color = 'white',\n castShadow,\n near = 0.5,\n far = 1000,\n fov = 90,\n zoom = 1,\n showHelper\n } = this.component.state\n\n this.object3d!.color = new THREE.Color(color)\n if (lightType == 'point') {\n ;(this.object3d as THREE.PointLight)!.distance = distance\n ;(this.object3d as THREE.PointLight)!.decay = decay\n }\n this.object3d!.intensity = intensity\n this.object3d!.castShadow = castShadow\n if (castShadow) {\n const camera = this.object3d!.shadow?.camera as THREE.PerspectiveCamera\n camera.far = far\n camera.near = near\n camera.fov = fov\n camera.zoom = zoom\n }\n\n if (showHelper) {\n const camera = this.object3d!.shadow?.camera as THREE.PerspectiveCamera\n\n if (!this.helper) {\n this.helper = new THREE.CameraHelper(camera!)\n this.object3d.add(this.helper)\n }\n } else if (this.helper) {\n this.object3d.remove(this.helper)\n delete this.helper\n }\n }\n\n protected getObject3dInstance(): THREE.Light {\n var { lightType = 'point' } = this.component.state\n\n return lightType == 'point' ? new THREE.PointLight() : new THREE.DirectionalLight()\n }\n\n update() {\n this.clear()\n this.build()\n\n this.updateDimension()\n this.updateHidden()\n\n this.updatePointLight()\n }\n}\n\nexport class PointLight extends Ellipse {\n is3dish() {\n return true\n }\n\n buildRealObject(): RealObject | undefined {\n return new LightObject(this)\n }\n\n get anchors(): Array<Anchor> {\n return []\n }\n\n get nature(): ComponentNature {\n return NATURE\n }\n}\n\nComponent.register('light', PointLight)\n"]}
package/dist/polygon.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as THREE from 'three';
2
- import { RealObjectExtrude } from './threed/real-object-extrude';
2
+ import { RealObjectExtrude } from './threed/real-object-extrude.js';
3
3
  export declare class PolygonExtrude extends RealObjectExtrude {
4
4
  _minMax?: {
5
5
  minX?: number;
package/dist/polygon.js CHANGED
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Polygon } from '@hatiolab/things-scene';
5
5
  import * as THREE from 'three';
6
- import { RealObjectExtrude } from './threed/real-object-extrude';
6
+ import { RealObjectExtrude } from './threed/real-object-extrude.js';
7
7
  export class PolygonExtrude extends RealObjectExtrude {
8
8
  get shape() {
9
9
  var { path = [], round = 0 } = this.component.state;
@@ -1 +1 @@
1
- {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { POINT, Polygon } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObjectExtrude } from './threed/real-object-extrude'\n\nexport class PolygonExtrude extends RealObjectExtrude {\n _minMax?: {\n minX?: number\n minY?: number\n maxX?: number\n maxY?: number\n }\n\n get shape() {\n var { path = [], round = 0 } = this.component.state\n\n var shape = new THREE.Shape()\n\n for (var i = 0; i < path.length; i++) {\n const prev = path[(i - 1 + path.length) % path.length]\n const cursor = path[(i + path.length) % path.length]\n const next = path[(i + 1) % path.length]\n\n if (prev.x === cursor.x && prev.y === cursor.y) {\n continue\n }\n\n var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y))\n var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0\n var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p1 = round > 0 || length !== 0 ? { x, y } : cursor\n\n var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y))\n theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0\n x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p2 = round > 0 || length !== 0 ? { x, y } : cursor\n\n i == 0 ? shape.moveTo(p1.x, p1.y) : shape.lineTo(p1.x, p1.y)\n round > 0 && shape.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y)\n }\n\n return shape\n }\n\n get minMax() {\n if (!this._minMax) {\n var { path } = this.component.state\n\n var minX: number | undefined\n var minY: number | undefined\n var maxX: number | undefined\n var maxY: number | undefined\n\n path.forEach((p: POINT, i: number) => {\n if (i == 0) {\n minX = maxX = p.x\n minY = maxY = p.y\n return\n }\n\n minX = Math.min(minX!, p.x)\n maxX = Math.max(maxX!, p.x)\n minY = Math.min(minY!, p.y)\n maxY = Math.max(maxY!, p.y)\n })\n\n this._minMax = {\n minX,\n minY,\n maxX,\n maxY\n }\n }\n\n return this._minMax\n }\n}\n\nPolygon.prototype.buildRealObject = function () {\n return new PolygonExtrude(this)\n}\n"]}
1
+ {"version":3,"file":"polygon.js","sourceRoot":"","sources":["../src/polygon.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { POINT, Polygon } from '@hatiolab/things-scene'\nimport * as THREE from 'three'\nimport { RealObjectExtrude } from './threed/real-object-extrude.js'\n\nexport class PolygonExtrude extends RealObjectExtrude {\n _minMax?: {\n minX?: number\n minY?: number\n maxX?: number\n maxY?: number\n }\n\n get shape() {\n var { path = [], round = 0 } = this.component.state\n\n var shape = new THREE.Shape()\n\n for (var i = 0; i < path.length; i++) {\n const prev = path[(i - 1 + path.length) % path.length]\n const cursor = path[(i + path.length) % path.length]\n const next = path[(i + 1) % path.length]\n\n if (prev.x === cursor.x && prev.y === cursor.y) {\n continue\n }\n\n var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y))\n var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0\n var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p1 = round > 0 || length !== 0 ? { x, y } : cursor\n\n var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y))\n theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0\n x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p2 = round > 0 || length !== 0 ? { x, y } : cursor\n\n i == 0 ? shape.moveTo(p1.x, p1.y) : shape.lineTo(p1.x, p1.y)\n round > 0 && shape.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y)\n }\n\n return shape\n }\n\n get minMax() {\n if (!this._minMax) {\n var { path } = this.component.state\n\n var minX: number | undefined\n var minY: number | undefined\n var maxX: number | undefined\n var maxY: number | undefined\n\n path.forEach((p: POINT, i: number) => {\n if (i == 0) {\n minX = maxX = p.x\n minY = maxY = p.y\n return\n }\n\n minX = Math.min(minX!, p.x)\n maxX = Math.max(maxX!, p.x)\n minY = Math.min(minY!, p.y)\n maxY = Math.max(maxY!, p.y)\n })\n\n this._minMax = {\n minX,\n minY,\n maxX,\n maxY\n }\n }\n\n return this._minMax\n }\n}\n\nPolygon.prototype.buildRealObject = function () {\n return new PolygonExtrude(this)\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Component, Properties } from '@hatiolab/things-scene';
2
- import { RealObject } from './threed/real-object';
2
+ import { RealObject } from './threed/real-object.js';
3
3
  declare const RackTableCell_base: typeof Component;
4
4
  /**
5
5
  * 1. 스타일을 상속 받아야 함. (cascade-style)
@@ -2,7 +2,7 @@
2
2
  * Copyright © HatioLab Inc. All rights reserved.
3
3
  */
4
4
  import { Component, RectPath } from '@hatiolab/things-scene';
5
- import { Rack } from './rack';
5
+ import { Rack } from './rack.js';
6
6
  const EMPTY_BORDER = {};
7
7
  function isBottomMost(idx, rows, columns) {
8
8
  return idx >= (rows - 1) * columns;
@@ -1 +1 @@
1
- {"version":3,"file":"rack-table-cell.js","sourceRoot":"","sources":["../src/rack-table-cell.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,SAAS,EAAc,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAG7B,MAAM,YAAY,GAAG,EAAE,CAAA;AAEvB,SAAS,YAAY,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;IAC9D,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAA;AACpC,CAAC;AAED,SAAS,WAAW,CAAC,GAAW,EAAE,IAAY,EAAE,OAAe;IAC7D,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAA;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,CAAM,EAAE,GAAG,UAAoB;IACrD,KAAK,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,uBAAuB,GAAG,MAAM,CAAA;AACtC,MAAM,qBAAqB,GAAG,CAAC,CAAA;AAC/B,MAAM,qBAAqB,GAAG,SAAS,CAAA;AAEvC;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,QAAQ,CAAC,SAAS,CAAC;IAAtD;;QACE,aAAQ,GAAY,KAAK,CAAA;IA0V3B,CAAC;IAxVC,IAAI,eAAe;QACjB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,MAAM;QACR,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,IAAI;YACf,SAAS,EAAE,IAAI;YACf,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,SAAS;oBAChB,IAAI,EAAE,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,MAAM;iBACb;gBACD;oBACE,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,iBAAiB;oBACxB,IAAI,EAAE,gBAAgB;oBACtB,WAAW,EAAE,mBAAmB;iBACjC;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,eAAe;oBACtB,IAAI,EAAE,cAAc;oBACpB,WAAW,EAAE,WAAW;iBACzB;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,UAAU;oBACjB,IAAI,EAAE,SAAS;iBAChB;gBACD;oBACE,IAAI,EAAE,2BAA2B;oBACjC,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE;wBACR,KAAK,EAAE;4BACL,2BAA2B,EAAE,CAAC,KAAkB,EAAE,EAAE;gCAClD,IAAI,EAAE,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,MAAM,CAAA;gCAClF,MAAM,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;gCACpC,SAAS,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,CAAC,CAAA;4BACzF,CAAC;yBACF;qBACF;iBACF;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,KAAK,EAAE,EAAE;oBACT,IAAI,EAAE,EAAE;oBACR,QAAQ,EAAE;wBACR,KAAK,EAAE,KAAK;wBACZ,KAAK,EAAE,KAAK;qBACb;iBACF;aACF;SACF,CAAA;IACH,CAAC;IAED,eAAe;QACb,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,CAAA;IACvB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM;QACf,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QAC5B,IAAI,MAAM;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO;QACjB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,OAAO,CAAC,OAAO;QACjB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,YAAY,CAAA;IAC1C,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;IACjC,CAAC;IAED,WAAW,CAAC,OAAiC,EAAE,CAAS,EAAE,CAAS,EAAE,IAAY,EAAE,IAAY,EAAE,KAAU;QACzG,IAAI,KAAK,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpE,OAAO,CAAC,SAAS,EAAE,CAAA;YACnB,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;YACpB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAE1B,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACtC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAiC;QACtC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC9C,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAE5B,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QAExB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAC/B,CAAC;QAED,YAAY;QACZ,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,SAAS,GAAG,CAAC,CAAA;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAEtC,aAAa;QACb,IAAI,MAAM,GAAG,IAAI,CAAC,MAAa,CAAA;QAC/B,IAAI,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzC,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC,CAAA;QACjC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,CAAA;QAE3B,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAA;QACnE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;QACrE,IAAI,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACxF,IAAI,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IAC5F,CAAC;IAED,eAAe,CAAC,OAAiC;QAC/C,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAE9C,OAAO,CAAC,IAAI,EAAE,CAAA;QACd,OAAO,CAAC,SAAS,GAAG,qBAAqB,CAAA;QACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAE1C,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,SAAS,GAAG,qBAAqB,CAAA;QACzC,OAAO,CAAC,WAAW,GAAG,uBAAuB,CAAA;QAE7C,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACzB,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,GAAG,MAAM,CAAC,CAAA;QAC1C,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,GAAG,CAAC,CAAA;QACjC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAAC,CAAA;QAElC,OAAO,CAAC,MAAM,EAAE,CAAA;QAChB,OAAO,CAAC,SAAS,EAAE,CAAA;QACnB,OAAO,CAAC,OAAO,EAAE,CAAA;IACnB,CAAC;IAED,IAAI,OAAO;QACT,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAA;QAC3B,IAAI,EAAE,UAAU,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,CAAA;QAE/C,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;QAEnE,IAAI,cAAc,GAAG,EAAE,CAAA;QACvB,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACnD,cAAc,GAAG,UAAU;iBACxB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;iBACpB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;iBACxC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;QAE1C,OAAO,cAAc,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED,IAAI,KAAK;QACP,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;QACpD,IAAI,WAAW,GAAG,KAAK,GAAG,SAAS,CAAC,OAAO,CAAA;QAE3C,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,MAAM,EAAE,WAAW;SACpB,CAAA;IACH,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA;IACvB,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QAElC,IAAI,WAAW,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAElC,IAAI,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC,CAAA;QAEnF,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,IAAI,SAAS;QACX,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QAElC,IAAI,WAAW,KAAK,SAAS,CAAC,OAAO;YAAE,OAAO,IAAI,CAAA;QAElD,IAAI,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC,CAAA;QAEpF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,SAAS;QACX,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QAElC,IAAI,QAAQ,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAE/B,IAAI,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC,CAAA;QAEtF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,SAAS;QACX,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,IAAI,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAE9C,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;QAC5B,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;QAElC,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE5C,IAAI,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,GAAG,WAAW,CAAC,CAAA;QAEtF,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,OAAO,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,IAAI,WAAW;QACb,IAAI,SAAS,GAAG,IAAI,CAAC,MAAa,CAAA;QAClC,OAAO,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACrD,CAAC;IAED,IAAI,aAAa;QACf,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC9B,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAA;YAE9C,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,aAAa,CAAA;YAElD,SAAS,GAAG,SAAS,CAAC,SAAS,CAAA;QACjC,CAAC;IACH,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;QAEjC,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAEhC,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,SAAS;QACX,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAA;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;YAEtB,IAAI,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;YAEhC,IAAI,IAAI;gBAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE;YAC3C,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAY,EAAE,EAAE;YAC3C,OAAO,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,CAAC,KAAiB,EAAE,MAAkB;QAC5C,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YACrC,QAAQ;YACR,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAED,YAAY;QACV,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC3B,CAAC;IAED,QAAQ,CAAC,CAAS,EAAE,CAAS;QAC3B,IAAI,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,IAAI,CAAC,UAAU,EAAE,CAAA;QACnB,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;CACF;AAED,CAAC;AAAA,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;AAExF,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAA","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Properties, RectPath } from '@hatiolab/things-scene'\nimport { Rack } from './rack'\nimport { RealObject } from './threed/real-object'\n\nconst EMPTY_BORDER = {}\n\nfunction isBottomMost(idx: number, rows: number, columns: number) {\n return idx >= (rows - 1) * columns\n}\n\nfunction isRightMost(idx: number, rows: number, columns: number) {\n return (idx + 1) % columns == 0\n}\n\nfunction hasAnyProperty(o: any, ...properties: string[]) {\n for (let p in properties) {\n if (o.hasOwnProperty(properties[p])) {\n return true\n }\n }\n}\n\nconst EMPTY_CELL_STROKE_STYLE = '#ccc'\nconst EMPTY_CELL_LINE_WIDTH = 1\nconst EMPTY_CELL_FILL_STYLE = '#efefef'\n\n/**\n * 1. 스타일을 상속 받아야 함. (cascade-style)\n * 2. 스타일을 동적처리할 수 있음. (로직처리)\n * 3. 데이타를 받을 수 있음.\n */\nexport class RackTableCell extends RectPath(Component) {\n _focused: boolean = false\n\n get hasTextProperty() {\n return false\n }\n\n get nature() {\n return {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'string',\n label: 'section',\n name: 'section'\n },\n {\n type: 'string',\n label: 'unit',\n name: 'unit'\n },\n {\n type: 'string',\n label: 'shelf-locations',\n name: 'shelfLocations',\n placeholder: '1,2,3,... / ,,,04'\n },\n {\n type: 'textarea',\n label: 'bin-locations',\n name: 'binLocations',\n placeholder: '1,2,3,...'\n },\n {\n type: 'checkbox',\n label: 'is-empty',\n name: 'isEmpty'\n },\n {\n type: 'location-increase-pattern',\n label: '',\n name: '',\n property: {\n event: {\n 'increase-location-pattern': (event: CustomEvent) => {\n var { increasingDirection, skipNumbering, startSection, startUnit } = event.detail\n const rackTable = this.parent as any\n rackTable.increaseLocation(increasingDirection, skipNumbering, startSection, startUnit)\n }\n }\n }\n },\n {\n type: 'editor-table',\n label: '',\n name: '',\n property: {\n merge: false,\n split: false\n }\n }\n ]\n }\n }\n\n buildRealObject(): RealObject | undefined {\n return new Rack(this)\n }\n\n set merged(merged) {\n this.set('merged', !!merged)\n if (merged) this.set('text', '')\n }\n\n get merged() {\n return this.getState('merged')\n }\n\n set rowspan(rowspan) {\n this.set('rowspan', rowspan)\n }\n\n get rowspan() {\n return this.getState('rowspan')\n }\n\n set colspan(colspan) {\n this.set('colspan', colspan)\n }\n\n get colspan() {\n return this.getState('colspan')\n }\n\n get border() {\n return this.state.border || EMPTY_BORDER\n }\n\n get isEmpty() {\n return this.getState('isEmpty')\n }\n\n _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: any) {\n if (style && style.strokeStyle && style.lineWidth && style.lineDash) {\n context.beginPath()\n context.moveTo(x, y)\n context.lineTo(to_x, to_y)\n\n Component.drawStroke(context, style)\n }\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n var { isEmpty } = this.state\n\n var border = this.border\n\n if (!isEmpty) {\n this._draw_rack_cell(context)\n }\n\n // Cell 채우기.\n context.beginPath()\n context.lineWidth = 0\n context.rect(left, top, width, height)\n\n // Border 그리기\n var parent = this.parent as any\n var idx = parent.components.indexOf(this)\n var columns = parent.columns || 1\n var rows = parent.rows || 1\n\n this._drawBorder(context, left, top, left + width, top, border.top)\n this._drawBorder(context, left, top + height, left, top, border.left)\n if (isRightMost(idx, rows, columns))\n this._drawBorder(context, left + width, top, left + width, top + height, border.right)\n if (isBottomMost(idx, rows, columns))\n this._drawBorder(context, left + width, top + height, left, top + height, border.bottom)\n }\n\n _draw_rack_cell(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.save()\n context.fillStyle = EMPTY_CELL_FILL_STYLE\n context.fillRect(left, top, width, height)\n\n context.beginPath()\n context.lineWidth = EMPTY_CELL_LINE_WIDTH\n context.strokeStyle = EMPTY_CELL_STROKE_STYLE\n\n context.moveTo(left, top)\n context.lineTo(left + width, top + height)\n context.moveTo(left + width, top)\n context.lineTo(left, top + height)\n\n context.stroke()\n context.closePath()\n context.restore()\n }\n\n get decotag() {\n var rackTable = this.parent\n var { locPattern, zone = '' } = rackTable.model\n\n locPattern = locPattern.substring(0, locPattern.indexOf('{u}') + 3)\n\n var locationString = ''\n if (this.getState('section') && this.getState('unit'))\n locationString = locPattern\n .replace('{z}', zone)\n .replace('{s}', this.getState('section'))\n .replace('{u}', this.getState('unit'))\n\n return locationString || ''\n }\n\n get index() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = Math.floor(index / rackTable.columns)\n var columnIndex = index % rackTable.columns\n\n return {\n row: rowIndex,\n column: columnIndex\n }\n }\n\n get rowIndex() {\n return this.index.row\n }\n\n get columnIndex() {\n return this.index.column\n }\n\n get leftCell() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (columnIndex === 0) return null\n\n var leftCell = rackTable.components[rowIndex * rackTable.columns + columnIndex - 1]\n\n return leftCell\n }\n\n get rightCell() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (columnIndex === rackTable.columns) return null\n\n var rightCell = rackTable.components[rowIndex * rackTable.columns + columnIndex + 1]\n\n return rightCell\n }\n\n get aboveCell() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (rowIndex === 0) return null\n\n var aboveCell = rackTable.components[(rowIndex - 1) * rackTable.columns + columnIndex]\n\n return aboveCell\n }\n\n get belowCell() {\n var rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (rowIndex === rackTable.rows) return null\n\n var belowCell = rackTable.components[(rowIndex + 1) * rackTable.columns + columnIndex]\n\n return belowCell\n }\n\n get rowCells() {\n var rackTable = this.parent as any\n return rackTable.getCellsByRow(this.rowIndex)\n }\n\n get columnCells() {\n var rackTable = this.parent as any\n return rackTable.getCellsByColumn(this.columnIndex)\n }\n\n get aboveRowCells() {\n var aboveCell = this.aboveCell\n while (1) {\n var aboveRowCells = aboveCell.notEmptyRowCells\n\n if (aboveRowCells.length > 0) return aboveRowCells\n\n aboveCell = aboveCell.aboveCell\n }\n }\n\n get lastUnit() {\n var rowCells = this.aboveRowCells\n\n for (let i = rowCells.length - 1; i > 0; i--) {\n var cell = rowCells[i]\n\n var unit = cell.getState('unit')\n\n if (unit) return Number(unit)\n }\n\n return 0\n }\n\n get firstUnit() {\n var rowCells = this.aboveRowCells\n\n for (let i = 0; i < rowCells.length; i++) {\n var cell = rowCells[i]\n\n var unit = cell.getState('unit')\n\n if (unit) return Number(unit)\n }\n\n return 0\n }\n\n get notEmptyRowCells() {\n return this.rowCells.filter((c: Component) => {\n return !c.getState('isEmpty')\n })\n }\n\n get emptyRowCells() {\n return this.rowCells.filter((c: Component) => {\n return c.getState('isEmpty')\n })\n }\n\n get isAisle() {\n return this.notEmptyRowCells.length === 0\n }\n\n onchange(after: Properties, before: Properties) {\n if (hasAnyProperty(after, 'isEmpty')) {\n // FIXME\n delete this.model.unit\n delete this.model.section\n }\n }\n\n onmouseenter() {\n this.trigger('deco')\n }\n\n onmouseleave() {\n this.trigger('decoreset')\n }\n\n contains(x: number, y: number) {\n var contains = super.contains(x, y)\n if (!contains) {\n this._focused = false\n this.invalidate()\n }\n\n return contains\n }\n}\n\n;['border'].forEach(getter => Component.memoize(RackTableCell.prototype, getter, false))\n\nComponent.register('rack-table-cell', RackTableCell)\n"]}
1
+ {"version":3,"file":"rack-table-cell.js","sourceRoot":"","sources":["../src/rack-table-cell.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, Properties, RectPath } from '@hatiolab/things-scene'\nimport { Rack } from './rack.js'\nimport { RealObject } from './threed/real-object.js'\n\nconst EMPTY_BORDER = {}\n\nfunction isBottomMost(idx: number, rows: number, columns: number) {\n return idx >= (rows - 1) * columns\n}\n\nfunction isRightMost(idx: number, rows: number, columns: number) {\n return (idx + 1) % columns == 0\n}\n\nfunction hasAnyProperty(o: any, ...properties: string[]) {\n for (let p in properties) {\n if (o.hasOwnProperty(properties[p])) {\n return true\n }\n }\n}\n\nconst EMPTY_CELL_STROKE_STYLE = '#ccc'\nconst EMPTY_CELL_LINE_WIDTH = 1\nconst EMPTY_CELL_FILL_STYLE = '#efefef'\n\n/**\n * 1. 스타일을 상속 받아야 함. (cascade-style)\n * 2. 스타일을 동적처리할 수 있음. (로직처리)\n * 3. 데이타를 받을 수 있음.\n */\nexport class RackTableCell extends RectPath(Component) {\n _focused: boolean = false\n\n get hasTextProperty() {\n return false\n }\n\n get nature() {\n return {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'string',\n label: 'section',\n name: 'section'\n },\n {\n type: 'string',\n label: 'unit',\n name: 'unit'\n },\n {\n type: 'string',\n label: 'shelf-locations',\n name: 'shelfLocations',\n placeholder: '1,2,3,... / ,,,04'\n },\n {\n type: 'textarea',\n label: 'bin-locations',\n name: 'binLocations',\n placeholder: '1,2,3,...'\n },\n {\n type: 'checkbox',\n label: 'is-empty',\n name: 'isEmpty'\n },\n {\n type: 'location-increase-pattern',\n label: '',\n name: '',\n property: {\n event: {\n 'increase-location-pattern': (event: CustomEvent) => {\n var { increasingDirection, skipNumbering, startSection, startUnit } = event.detail\n const rackTable = this.parent as any\n rackTable.increaseLocation(increasingDirection, skipNumbering, startSection, startUnit)\n }\n }\n }\n },\n {\n type: 'editor-table',\n label: '',\n name: '',\n property: {\n merge: false,\n split: false\n }\n }\n ]\n }\n }\n\n buildRealObject(): RealObject | undefined {\n return new Rack(this)\n }\n\n set merged(merged) {\n this.set('merged', !!merged)\n if (merged) this.set('text', '')\n }\n\n get merged() {\n return this.getState('merged')\n }\n\n set rowspan(rowspan) {\n this.set('rowspan', rowspan)\n }\n\n get rowspan() {\n return this.getState('rowspan')\n }\n\n set colspan(colspan) {\n this.set('colspan', colspan)\n }\n\n get colspan() {\n return this.getState('colspan')\n }\n\n get border() {\n return this.state.border || EMPTY_BORDER\n }\n\n get isEmpty() {\n return this.getState('isEmpty')\n }\n\n _drawBorder(context: CanvasRenderingContext2D, x: number, y: number, to_x: number, to_y: number, style: any) {\n if (style && style.strokeStyle && style.lineWidth && style.lineDash) {\n context.beginPath()\n context.moveTo(x, y)\n context.lineTo(to_x, to_y)\n\n Component.drawStroke(context, style)\n }\n }\n\n render(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n var { isEmpty } = this.state\n\n var border = this.border\n\n if (!isEmpty) {\n this._draw_rack_cell(context)\n }\n\n // Cell 채우기.\n context.beginPath()\n context.lineWidth = 0\n context.rect(left, top, width, height)\n\n // Border 그리기\n var parent = this.parent as any\n var idx = parent.components.indexOf(this)\n var columns = parent.columns || 1\n var rows = parent.rows || 1\n\n this._drawBorder(context, left, top, left + width, top, border.top)\n this._drawBorder(context, left, top + height, left, top, border.left)\n if (isRightMost(idx, rows, columns))\n this._drawBorder(context, left + width, top, left + width, top + height, border.right)\n if (isBottomMost(idx, rows, columns))\n this._drawBorder(context, left + width, top + height, left, top + height, border.bottom)\n }\n\n _draw_rack_cell(context: CanvasRenderingContext2D) {\n var { left, top, width, height } = this.bounds\n\n context.save()\n context.fillStyle = EMPTY_CELL_FILL_STYLE\n context.fillRect(left, top, width, height)\n\n context.beginPath()\n context.lineWidth = EMPTY_CELL_LINE_WIDTH\n context.strokeStyle = EMPTY_CELL_STROKE_STYLE\n\n context.moveTo(left, top)\n context.lineTo(left + width, top + height)\n context.moveTo(left + width, top)\n context.lineTo(left, top + height)\n\n context.stroke()\n context.closePath()\n context.restore()\n }\n\n get decotag() {\n var rackTable = this.parent\n var { locPattern, zone = '' } = rackTable.model\n\n locPattern = locPattern.substring(0, locPattern.indexOf('{u}') + 3)\n\n var locationString = ''\n if (this.getState('section') && this.getState('unit'))\n locationString = locPattern\n .replace('{z}', zone)\n .replace('{s}', this.getState('section'))\n .replace('{u}', this.getState('unit'))\n\n return locationString || ''\n }\n\n get index() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = Math.floor(index / rackTable.columns)\n var columnIndex = index % rackTable.columns\n\n return {\n row: rowIndex,\n column: columnIndex\n }\n }\n\n get rowIndex() {\n return this.index.row\n }\n\n get columnIndex() {\n return this.index.column\n }\n\n get leftCell() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (columnIndex === 0) return null\n\n var leftCell = rackTable.components[rowIndex * rackTable.columns + columnIndex - 1]\n\n return leftCell\n }\n\n get rightCell() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (columnIndex === rackTable.columns) return null\n\n var rightCell = rackTable.components[rowIndex * rackTable.columns + columnIndex + 1]\n\n return rightCell\n }\n\n get aboveCell() {\n let rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (rowIndex === 0) return null\n\n var aboveCell = rackTable.components[(rowIndex - 1) * rackTable.columns + columnIndex]\n\n return aboveCell\n }\n\n get belowCell() {\n var rackTable = this.parent as any\n var index = rackTable.components.indexOf(this)\n\n var rowIndex = this.rowIndex\n var columnIndex = this.columnIndex\n\n if (rowIndex === rackTable.rows) return null\n\n var belowCell = rackTable.components[(rowIndex + 1) * rackTable.columns + columnIndex]\n\n return belowCell\n }\n\n get rowCells() {\n var rackTable = this.parent as any\n return rackTable.getCellsByRow(this.rowIndex)\n }\n\n get columnCells() {\n var rackTable = this.parent as any\n return rackTable.getCellsByColumn(this.columnIndex)\n }\n\n get aboveRowCells() {\n var aboveCell = this.aboveCell\n while (1) {\n var aboveRowCells = aboveCell.notEmptyRowCells\n\n if (aboveRowCells.length > 0) return aboveRowCells\n\n aboveCell = aboveCell.aboveCell\n }\n }\n\n get lastUnit() {\n var rowCells = this.aboveRowCells\n\n for (let i = rowCells.length - 1; i > 0; i--) {\n var cell = rowCells[i]\n\n var unit = cell.getState('unit')\n\n if (unit) return Number(unit)\n }\n\n return 0\n }\n\n get firstUnit() {\n var rowCells = this.aboveRowCells\n\n for (let i = 0; i < rowCells.length; i++) {\n var cell = rowCells[i]\n\n var unit = cell.getState('unit')\n\n if (unit) return Number(unit)\n }\n\n return 0\n }\n\n get notEmptyRowCells() {\n return this.rowCells.filter((c: Component) => {\n return !c.getState('isEmpty')\n })\n }\n\n get emptyRowCells() {\n return this.rowCells.filter((c: Component) => {\n return c.getState('isEmpty')\n })\n }\n\n get isAisle() {\n return this.notEmptyRowCells.length === 0\n }\n\n onchange(after: Properties, before: Properties) {\n if (hasAnyProperty(after, 'isEmpty')) {\n // FIXME\n delete this.model.unit\n delete this.model.section\n }\n }\n\n onmouseenter() {\n this.trigger('deco')\n }\n\n onmouseleave() {\n this.trigger('decoreset')\n }\n\n contains(x: number, y: number) {\n var contains = super.contains(x, y)\n if (!contains) {\n this._focused = false\n this.invalidate()\n }\n\n return contains\n }\n}\n\n;['border'].forEach(getter => Component.memoize(RackTableCell.prototype, getter, false))\n\nComponent.register('rack-table-cell', RackTableCell)\n"]}
@@ -1,8 +1,8 @@
1
1
  import { Component, ComponentNature, ContainerAbstract, Control, Properties } from '@hatiolab/things-scene';
2
- import { Rack } from './rack';
3
- import { RackTableCell } from './rack-table-cell';
4
- import { RealObjectGroup } from './threed/real-object-group';
5
- import { RealObject } from './threed';
2
+ import { Rack } from './rack.js';
3
+ import { RackTableCell } from './rack-table-cell.js';
4
+ import { RealObjectGroup } from './threed/real-object-group.js';
5
+ import { RealObject } from './threed/real-object.js';
6
6
  export declare class RackTable3d extends RealObjectGroup {
7
7
  build(): void;
8
8
  get position(): {
@@ -4,8 +4,8 @@
4
4
  import * as THREE from 'three';
5
5
  import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
6
6
  import { Component, ContainerAbstract, Layout, Model } from '@hatiolab/things-scene';
7
- import { Rack } from './rack';
8
- import { RealObjectGroup } from './threed/real-object-group';
7
+ import { Rack } from './rack.js';
8
+ import { RealObjectGroup } from './threed/real-object-group.js';
9
9
  const NATURE = {
10
10
  mutable: false,
11
11
  resizable: true,