shop-components 0.0.25 → 0.0.26

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 (248) hide show
  1. package/dist/assets/Color-RQJUDNI5-leAiB7jg.js +1 -0
  2. package/dist/assets/Configure-OUhXg2g0.js +173 -0
  3. package/dist/assets/DRACOLoader-FOpiHRUS.js +2 -0
  4. package/dist/assets/DocsRenderer-K4EAMTCU-wTc0yUaa.js +7 -0
  5. package/dist/assets/Header-Yyx952jD.css +1 -0
  6. package/dist/assets/Header.stories-8tnkOwSt.js +31 -0
  7. package/dist/assets/Page-fZ7a-HXz.css +1 -0
  8. package/dist/assets/Page.stories-53Crpe03.js +61 -0
  9. package/dist/assets/RGBELoader-re-MEsjP.js +5 -0
  10. package/dist/assets/SFL-CDD14-9UY62fbR.glb +0 -0
  11. package/dist/assets/WithTooltip-Y7J54OF7-e8Yh5ASp.js +1 -0
  12. package/dist/assets/_commonjsHelpers-4gQjN7DL.js +1 -0
  13. package/dist/assets/accessibility-Fv4dmnDm.png +0 -0
  14. package/dist/assets/addon-library-VlAgJsjc.png +0 -0
  15. package/dist/assets/bg-circle-d8WfpvaX.png +0 -0
  16. package/dist/assets/context-tKiKnkuP.png +0 -0
  17. package/dist/assets/docs-Pvr7BWzI.png +0 -0
  18. package/dist/assets/entry-preview-TptA_luc.js +8 -0
  19. package/dist/assets/entry-preview-docs-AhrJ3R4Z.js +2 -0
  20. package/dist/assets/figma-plugin-h9oRC4jr.png +0 -0
  21. package/dist/assets/formatter-B5HCVTEV-DKi3GmSv.js +58 -0
  22. package/dist/assets/generateMeshBVH.worker-NFSCTTDt.js +5 -0
  23. package/dist/assets/iframe-tlQuLR4E.js +7 -0
  24. package/dist/assets/img-radar-kufDNNXQ.png +0 -0
  25. package/dist/assets/img-radar2-1cPZO_cj.png +0 -0
  26. package/dist/assets/index-CXFn8OGe.js +513 -0
  27. package/dist/assets/index-C_uo8BdM.js +1 -0
  28. package/dist/assets/index-PPLHz8o0.js +6 -0
  29. package/dist/assets/index-jFdhmKfM.js +3 -0
  30. package/dist/assets/index-jtEywAqJ.js +1 -0
  31. package/dist/assets/index-ogXoivrg.js +1 -0
  32. package/dist/assets/index.stories-TVZrSYZv.js +20 -0
  33. package/dist/assets/index.stories-Uq0Yg-kp.js +896 -0
  34. package/dist/assets/index.stories-VJP6Jo4U.js +22 -0
  35. package/dist/assets/index.stories-VoNcNCFd.js +27 -0
  36. package/dist/assets/index.stories-YIFSciWI.js +1174 -0
  37. package/dist/assets/index.stories-iMKoZNyH.js +46 -0
  38. package/dist/assets/lightroom_14b-MJkJLVlP.hdr +0 -0
  39. package/dist/assets/lightroom_14b_512-e_XJNpR6.js +3981 -0
  40. package/dist/assets/lightroom_14b_512-nMVn659Q.hdr +0 -0
  41. package/dist/assets/lit-element-P_wTzRvl.js +19 -0
  42. package/dist/assets/parallelMeshBVH.worker-TP6qJGKX.js +5 -0
  43. package/dist/assets/preview-1q4RDNOi.js +1 -0
  44. package/dist/assets/preview-6iG64ELu.js +20 -0
  45. package/dist/assets/preview-7nNmfNVr.js +7 -0
  46. package/dist/assets/preview-9bpQVOkQ.js +1 -0
  47. package/dist/assets/preview-FnnPJHgu.js +1 -0
  48. package/dist/assets/preview-VI2eoWmp.js +1 -0
  49. package/dist/assets/preview-bEa2SesL.js +7 -0
  50. package/dist/assets/preview-u8M_OEO2.js +396 -0
  51. package/dist/assets/preview-zZA4w0lH.js +1 -0
  52. package/dist/assets/property-EQZXZ3dt.js +5 -0
  53. package/dist/assets/query-7eORIRsG.js +13 -0
  54. package/dist/assets/roller-8Vy8W3X_.glb +0 -0
  55. package/dist/assets/roller-hopper-Heae_wy5.glb +0 -0
  56. package/dist/assets/share-xgPlHEHy.png +0 -0
  57. package/dist/assets/styling-ZOs40c1G.png +0 -0
  58. package/dist/assets/syntaxhighlighter-JOJW2KGS-uBo08tOF.js +1 -0
  59. package/dist/assets/testing-HG80fZfa.png +0 -0
  60. package/dist/assets/theming--liSzaFj.png +0 -0
  61. package/dist/assets/three.module-9MfFqitO.js +3825 -0
  62. package/dist/assets/tiny-invariant-VyoA2Os1.js +1 -0
  63. package/dist/assets/worker-h5IcTUxB.js +1 -0
  64. package/dist/device-viewer/amr.d.ts +75 -0
  65. package/dist/device-viewer/assembly.d.ts +11 -0
  66. package/dist/device-viewer/dimension/index.d.ts +31 -0
  67. package/dist/device-viewer/dimension/line3.d.ts +21 -0
  68. package/dist/device-viewer/dimension/size-box.d.ts +39 -0
  69. package/dist/device-viewer/group-roller.d.ts +20 -0
  70. package/dist/device-viewer/index.d.ts +12 -0
  71. package/dist/device-viewer/mechanism/mechanism.d.ts +29 -0
  72. package/dist/device-viewer/outerline.d.ts +16 -0
  73. package/dist/device-viewer/roller.d.ts +31 -0
  74. package/dist/device-viewer/row.d.ts +18 -0
  75. package/dist/device-viewer/scene.d.ts +14 -28
  76. package/dist/device-viewer/slot.d.ts +10 -2
  77. package/dist/device-viewer/text2.d.ts +4 -0
  78. package/dist/device-viewer/text3.d.ts +4 -0
  79. package/dist/device-viewer/utils/index.d.ts +26 -1
  80. package/dist/favicon.svg +7 -0
  81. package/dist/iframe.html +495 -0
  82. package/dist/index.html +155 -0
  83. package/dist/index.json +1 -0
  84. package/dist/package.json +60 -0
  85. package/dist/project.json +1 -0
  86. package/dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  87. package/dist/sb-addons/essentials-actions-3/manager-bundle.js.LEGAL.txt +0 -0
  88. package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js +12 -0
  89. package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js.LEGAL.txt +0 -0
  90. package/dist/sb-addons/essentials-controls-2/manager-bundle.js +60 -0
  91. package/dist/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +18 -0
  92. package/dist/sb-addons/essentials-measure-7/manager-bundle.js +3 -0
  93. package/dist/sb-addons/essentials-measure-7/manager-bundle.js.LEGAL.txt +0 -0
  94. package/dist/sb-addons/essentials-outline-8/manager-bundle.js +3 -0
  95. package/dist/sb-addons/essentials-outline-8/manager-bundle.js.LEGAL.txt +0 -0
  96. package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js +3 -0
  97. package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js.LEGAL.txt +0 -0
  98. package/dist/sb-addons/essentials-viewport-5/manager-bundle.js +3 -0
  99. package/dist/sb-addons/essentials-viewport-5/manager-bundle.js.LEGAL.txt +0 -0
  100. package/dist/sb-addons/links-1/manager-bundle.js +3 -0
  101. package/dist/sb-addons/links-1/manager-bundle.js.LEGAL.txt +0 -0
  102. package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js +3 -0
  103. package/dist/sb-addons/storybook-core-server-presets-0/common-manager-bundle.js.LEGAL.txt +0 -0
  104. package/dist/sb-common-assets/fonts.css +31 -0
  105. package/dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  106. package/dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  107. package/dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  108. package/dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  109. package/dist/sb-manager/WithTooltip-Y7J54OF7-3AIPQNGM.js +1 -0
  110. package/dist/sb-manager/chunk-I53COLQ6.js +183 -0
  111. package/dist/sb-manager/chunk-L35575BZ.js +234 -0
  112. package/dist/sb-manager/chunk-TZAR34JC.js +6 -0
  113. package/dist/sb-manager/chunk-UOBNU442.js +347 -0
  114. package/dist/sb-manager/chunk-VMGB76WP.js +9 -0
  115. package/dist/sb-manager/chunk-XP3HGWTR.js +1 -0
  116. package/dist/sb-manager/formatter-B5HCVTEV-7DCBOGO6.js +58 -0
  117. package/dist/sb-manager/globals-module-info.js +1 -0
  118. package/dist/sb-manager/globals-runtime.js +1 -0
  119. package/dist/sb-manager/globals.js +1 -0
  120. package/dist/sb-manager/index.js +1 -0
  121. package/dist/sb-manager/runtime.js +1 -0
  122. package/dist/sb-manager/syntaxhighlighter-JOJW2KGS-7BF26SBB.js +1 -0
  123. package/dist/sb-preview/globals.js +1 -0
  124. package/dist/sb-preview/runtime.js +128 -0
  125. package/dist/stories/cropper/index.d.ts +18 -0
  126. package/dist/stories/cropper/index.js +118 -0
  127. package/dist/stories/cropper/index.js.map +1 -0
  128. package/dist/stories/cropper/index.stories.d.ts +11 -0
  129. package/dist/stories/cropper/index.stories.js +14 -0
  130. package/dist/stories/cropper/index.stories.js.map +1 -0
  131. package/dist/stories/device-viewer/amr.d.ts +75 -0
  132. package/dist/stories/device-viewer/amr.js +554 -0
  133. package/dist/stories/device-viewer/amr.js.map +1 -0
  134. package/dist/stories/device-viewer/assembly.d.ts +11 -0
  135. package/dist/stories/device-viewer/assembly.js +47 -0
  136. package/dist/stories/device-viewer/assembly.js.map +1 -0
  137. package/dist/stories/device-viewer/asserts/fonts/type.json +1281 -0
  138. package/dist/stories/device-viewer/dimension/index.d.ts +31 -0
  139. package/dist/stories/device-viewer/dimension/index.js +131 -0
  140. package/dist/stories/device-viewer/dimension/index.js.map +1 -0
  141. package/dist/stories/device-viewer/dimension/line3.d.ts +21 -0
  142. package/dist/stories/device-viewer/dimension/line3.js +98 -0
  143. package/dist/stories/device-viewer/dimension/line3.js.map +1 -0
  144. package/dist/stories/device-viewer/dimension/size-box.d.ts +39 -0
  145. package/dist/stories/device-viewer/dimension/size-box.js +176 -0
  146. package/dist/stories/device-viewer/dimension/size-box.js.map +1 -0
  147. package/dist/stories/device-viewer/group-roller.d.ts +20 -0
  148. package/dist/stories/device-viewer/group-roller.js +65 -0
  149. package/dist/stories/device-viewer/group-roller.js.map +1 -0
  150. package/dist/stories/device-viewer/index.d.ts +47 -0
  151. package/dist/stories/device-viewer/index.js +530 -0
  152. package/dist/stories/device-viewer/index.js.map +1 -0
  153. package/dist/stories/device-viewer/index.stories.d.ts +27 -0
  154. package/dist/stories/device-viewer/index.stories.js +37 -0
  155. package/dist/stories/device-viewer/index.stories.js.map +1 -0
  156. package/dist/stories/device-viewer/lines.d.ts +36 -0
  157. package/dist/stories/device-viewer/lines.js +171 -0
  158. package/dist/stories/device-viewer/lines.js.map +1 -0
  159. package/dist/stories/device-viewer/main.d.ts +1 -0
  160. package/dist/stories/device-viewer/main.js +2 -0
  161. package/dist/stories/device-viewer/main.js.map +1 -0
  162. package/dist/stories/device-viewer/mechanism/mechanism.d.ts +29 -0
  163. package/dist/stories/device-viewer/mechanism/mechanism.js +164 -0
  164. package/dist/stories/device-viewer/mechanism/mechanism.js.map +1 -0
  165. package/dist/stories/device-viewer/outerline.d.ts +16 -0
  166. package/dist/stories/device-viewer/outerline.js +63 -0
  167. package/dist/stories/device-viewer/outerline.js.map +1 -0
  168. package/dist/stories/device-viewer/roller.d.ts +31 -0
  169. package/dist/stories/device-viewer/roller.js +121 -0
  170. package/dist/stories/device-viewer/roller.js.map +1 -0
  171. package/dist/stories/device-viewer/row.d.ts +18 -0
  172. package/dist/stories/device-viewer/row.js +58 -0
  173. package/dist/stories/device-viewer/row.js.map +1 -0
  174. package/dist/stories/device-viewer/scene.d.ts +101 -0
  175. package/dist/stories/device-viewer/scene.js +535 -0
  176. package/dist/stories/device-viewer/scene.js.map +1 -0
  177. package/dist/stories/device-viewer/slot/slot-item.d.ts +20 -0
  178. package/dist/stories/device-viewer/slot/slot-item.js +82 -0
  179. package/dist/stories/device-viewer/slot/slot-item.js.map +1 -0
  180. package/dist/stories/device-viewer/slot.d.ts +71 -0
  181. package/dist/stories/device-viewer/slot.js +272 -0
  182. package/dist/stories/device-viewer/slot.js.map +1 -0
  183. package/dist/stories/device-viewer/sound.d.ts +5 -0
  184. package/dist/stories/device-viewer/sound.js +13 -0
  185. package/dist/stories/device-viewer/sound.js.map +1 -0
  186. package/dist/stories/device-viewer/text2.d.ts +4 -0
  187. package/dist/stories/device-viewer/text2.js +12 -0
  188. package/dist/stories/device-viewer/text2.js.map +1 -0
  189. package/dist/stories/device-viewer/text3.d.ts +4 -0
  190. package/dist/stories/device-viewer/text3.js +14 -0
  191. package/dist/stories/device-viewer/text3.js.map +1 -0
  192. package/dist/stories/device-viewer/utils/index.d.ts +36 -0
  193. package/dist/stories/device-viewer/utils/index.js +166 -0
  194. package/dist/stories/device-viewer/utils/index.js.map +1 -0
  195. package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.d.ts +8 -0
  196. package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.js +88 -0
  197. package/dist/stories/device-viewer/worker/generate-mesh-bvh-worker.js.map +1 -0
  198. package/dist/stories/device-viewer/worker/generateAsync.worker.d.ts +1 -0
  199. package/dist/stories/device-viewer/worker/generateAsync.worker.js +57 -0
  200. package/dist/stories/device-viewer/worker/generateAsync.worker.js.map +1 -0
  201. package/dist/stories/device-viewer/worker/path-tracing-scene-worker.d.ts +16 -0
  202. package/dist/stories/device-viewer/worker/path-tracing-scene-worker.js +29 -0
  203. package/dist/stories/device-viewer/worker/path-tracing-scene-worker.js.map +1 -0
  204. package/dist/stories/main/index.d.ts +1 -0
  205. package/dist/stories/main/index.js +2 -0
  206. package/dist/stories/main/index.js.map +1 -0
  207. package/dist/stories/main.d.ts +4 -0
  208. package/dist/stories/main.js +5 -0
  209. package/dist/stories/main.js.map +1 -0
  210. package/dist/stories/plugin.d.ts +5 -0
  211. package/dist/stories/plugin.js +6 -0
  212. package/dist/stories/plugin.js.map +1 -0
  213. package/dist/stories/plugins/change-slot/index.d.ts +0 -0
  214. package/dist/stories/plugins/change-slot/index.js +2 -0
  215. package/dist/stories/plugins/change-slot/index.js.map +1 -0
  216. package/dist/stories/sglb/index.d.ts +27 -0
  217. package/dist/stories/sglb/index.js +151 -0
  218. package/dist/stories/sglb/index.js.map +1 -0
  219. package/dist/stories/smap-viewer/index.d.ts +14 -0
  220. package/dist/stories/smap-viewer/index.js +59 -0
  221. package/dist/stories/smap-viewer/index.js.map +1 -0
  222. package/dist/stories/smap-viewer/index.stories.d.ts +22 -0
  223. package/dist/stories/smap-viewer/index.stories.js +27 -0
  224. package/dist/stories/smap-viewer/index.stories.js.map +1 -0
  225. package/dist/stories/step-viewer/index.d.ts +17 -0
  226. package/dist/stories/step-viewer/index.js +109 -0
  227. package/dist/stories/step-viewer/index.js.map +1 -0
  228. package/dist/stories/step-viewer/index.stories.d.ts +20 -0
  229. package/dist/stories/step-viewer/index.stories.js +24 -0
  230. package/dist/stories/step-viewer/index.stories.js.map +1 -0
  231. package/dist/stories/test/index.d.ts +25 -0
  232. package/dist/stories/test/index.js +99 -0
  233. package/dist/stories/test/index.js.map +1 -0
  234. package/dist/stories/test/index.stories.d.ts +14 -0
  235. package/dist/stories/test/index.stories.js +16 -0
  236. package/dist/stories/test/index.stories.js.map +1 -0
  237. package/dist/stories/test/scene.d.ts +20 -0
  238. package/dist/stories/test/scene.js +86 -0
  239. package/dist/stories/test/scene.js.map +1 -0
  240. package/dist/stories/utils/index.d.ts +4 -0
  241. package/dist/stories/utils/index.js +28 -0
  242. package/dist/stories/utils/index.js.map +1 -0
  243. package/dist/test/index.d.ts +25 -0
  244. package/dist/test/index.stories.d.ts +14 -0
  245. package/dist/test/scene.d.ts +20 -0
  246. package/package.json +9 -6
  247. package/dist/shop-components.mjs +0 -55938
  248. package/dist/shop-components.umd.js +0 -9232
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot-item.js","sourceRoot":"","sources":["../../../../stories/device-viewer/slot/slot-item.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAe,KAAK,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAClE,OAAO,MAAM,MAAkC,mBAAmB,CAAA;AAClE,OAAO,QAAQ,MAAgC,0BAA0B,CAAA;AAOlE,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;aAM/B,WAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,AAAhB,CAAgB;IAE7B,YAAmB,KAAoB;QACrC,KAAK,EAAE,CAAA;QADU,UAAK,GAAL,KAAK,CAAe;QAL/B,UAAK,GAAG,EAAE,CAAA;QAUlB,aAAQ,GAAG,KAAK,CAAA;QAGhB,aAAQ,GAAG,KAAK,CAAA;QAGhB,eAAU,GAAG,KAAK,CAAA;QAGlB,SAAI,GAAG,KAAK,CAAA;QAGZ,YAAO,GAAG,KAAK,CAAA;QAGf,WAAM,GAAG,KAAK,CAAA;IAlBd,CAAC;IAwBD,OAAO,CAAC,CAAa;QACnB,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,CAAC,CAAC,eAAe,EAAE,CAAA;IACrB,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,EAAE;QACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAES,MAAM;QACd,OAAO,IAAI,CAAA;;;YAGH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;;sBAEjB,UAAU,IAAI,CAAC,KAAK,GAAG,IAAI,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE;;oCAE5C,IAAI,CAAC,OAAO;6BACnB,QAAQ;;cAEvB,IAAI,CAAC,IAAI,EAAE,IAAI;;;;KAIxB,CAAA;IACH,CAAC;;AA7DO;IADP,KAAK,EAAE;uCACU;AAUlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACZ;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACZ;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CACV;AAGlB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;sCAChB;AAGZ;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;yCACb;AAGf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;wCACd;AAId;IAFC,QAAQ,EAAE;sCAEP;AAhCO,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAiEpB"}
@@ -0,0 +1,71 @@
1
+ import { Mesh, Object3D } from 'three';
2
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
3
+ import EventEmitter from 'eventemitter3';
4
+ import { Scene3D } from './scene';
5
+ export interface SlotProps {
6
+ name: string;
7
+ follows: Map<string, {
8
+ scale: number;
9
+ origin: number;
10
+ }>;
11
+ slot: Object3D;
12
+ }
13
+ export interface DeviceInfo {
14
+ name: string;
15
+ id: string;
16
+ url: string;
17
+ logo?: string;
18
+ bracketUrl?: string;
19
+ }
20
+ export declare const SLOT_EVENTS: {
21
+ ON_DROP: string;
22
+ ON_BEFORE_SELECTED: string;
23
+ ON_SELECTED: string;
24
+ ON_DEVICE_SELECTED: string;
25
+ ON_DROP_ERROR: string;
26
+ ON_ERROR_STATE_CHANGE: string;
27
+ };
28
+ export declare class Slot extends CSS2DObject {
29
+ private props;
30
+ private target;
31
+ private _emitter;
32
+ private _slotContainer;
33
+ private _slotUI;
34
+ private _bracketSlots;
35
+ private _hasError;
36
+ useBracket: boolean;
37
+ addEventListener: <T extends string | symbol>(event: T, fn: (...args: any[]) => void, context?: any) => EventEmitter<string | symbol, any>;
38
+ removeEventListener: <T extends string | symbol>(event: T, fn?: ((...args: any[]) => void) | undefined, context?: any, once?: boolean | undefined) => EventEmitter<string | symbol, any>;
39
+ private _canInstall;
40
+ private _loading;
41
+ private _selected;
42
+ private _deviceSelected;
43
+ private _timer;
44
+ get hasDevice(): boolean;
45
+ deviceInfo: DeviceInfo | undefined;
46
+ constructor(props: SlotProps, target: Mesh | undefined);
47
+ shapeKeyChanged(key: string, value: number): void;
48
+ private _tick;
49
+ loadGlb(sglb: string): Promise<Object3D<import("three").Object3DEventMap> | undefined>;
50
+ installBracket(url: string): Promise<void>;
51
+ install(info: DeviceInfo): Promise<void>;
52
+ getWP: (target: import("three").Vector3) => import("three").Vector3;
53
+ get device(): Object3D<import("three").Object3DEventMap> | null;
54
+ changeName(name: string): void;
55
+ clearSlot(): void;
56
+ enable(): void;
57
+ disable(): void;
58
+ hide(): void;
59
+ show(): void;
60
+ get selected(): boolean;
61
+ set selected(s: boolean);
62
+ get deviceSelected(): boolean;
63
+ set deviceSelected(s: boolean);
64
+ get error(): boolean;
65
+ set error(hasError: boolean);
66
+ getCanInstall(): boolean;
67
+ canInstall(c: boolean): void;
68
+ dispose(): void;
69
+ render(app: Scene3D): void;
70
+ clone(recursive?: boolean): this;
71
+ }
@@ -0,0 +1,272 @@
1
+ import { Group, Vector2 } from 'three';
2
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
3
+ import EventEmitter from 'eventemitter3';
4
+ import { clearThreeObjectMesh, generateMorphTargetWithTarget } from './utils';
5
+ import { SGLBLoader } from '../sglb';
6
+ import { SlotItem } from './slot/slot-item';
7
+ export const SLOT_EVENTS = {
8
+ ON_DROP: 'slot-on-drop',
9
+ ON_BEFORE_SELECTED: 'slot-on-before-selected',
10
+ ON_SELECTED: 'slot-on-selected',
11
+ ON_DEVICE_SELECTED: 'slot-on-device-selected',
12
+ ON_DROP_ERROR: 'slot-on-drop-error',
13
+ ON_ERROR_STATE_CHANGE: 'slot-on-error-state-change'
14
+ };
15
+ export class Slot extends CSS2DObject {
16
+ get hasDevice() {
17
+ return this._slotContainer.children.length > 0;
18
+ }
19
+ constructor(props, target) {
20
+ const box = document.createElement('div');
21
+ super(box);
22
+ this.props = props;
23
+ this.target = target;
24
+ this._emitter = new EventEmitter();
25
+ this._slotContainer = new Group();
26
+ this._bracketSlots = [];
27
+ this._hasError = false;
28
+ this.useBracket = false;
29
+ this.addEventListener = this._emitter.addListener.bind(this._emitter);
30
+ this.removeEventListener = this._emitter.removeListener.bind(this._emitter);
31
+ this._canInstall = false;
32
+ this._loading = false;
33
+ this._selected = false;
34
+ this._deviceSelected = false;
35
+ this._timer = 0;
36
+ this._tick = () => {
37
+ this._timer = requestAnimationFrame(this._tick);
38
+ if (this.target) {
39
+ this.props.slot.position.copy(generateMorphTargetWithTarget(this.target));
40
+ }
41
+ };
42
+ this.getWP = this._slotContainer.getWorldPosition.bind(this._slotContainer);
43
+ this.name = props.name;
44
+ this._slotUI = new SlotItem({ name: props.name });
45
+ this._slotUI.slot = this;
46
+ box.append(this._slotUI);
47
+ this.add(this._slotContainer);
48
+ this.props.slot.add(this);
49
+ if (target) {
50
+ this._tick();
51
+ }
52
+ box.addEventListener('click', (e) => {
53
+ e.preventDefault();
54
+ e.stopPropagation();
55
+ this.selected = !this.selected;
56
+ });
57
+ box.addEventListener('dragover', e => {
58
+ e.preventDefault();
59
+ if (!this._canInstall) {
60
+ if (e.dataTransfer) {
61
+ e.dataTransfer.dropEffect = 'none';
62
+ }
63
+ return;
64
+ }
65
+ });
66
+ box.addEventListener('drop', async (e) => {
67
+ e.preventDefault();
68
+ e.stopPropagation();
69
+ if (!this._canInstall)
70
+ return;
71
+ const jsonDataString = e.dataTransfer?.getData('application/json');
72
+ if (jsonDataString) {
73
+ const r = JSON.parse(jsonDataString);
74
+ try {
75
+ await this.install(r);
76
+ this._emitter.emit(SLOT_EVENTS.ON_DROP, this);
77
+ }
78
+ catch (e) {
79
+ this._emitter.emit(SLOT_EVENTS.ON_DROP_ERROR, e);
80
+ }
81
+ }
82
+ else {
83
+ this._emitter.emit(SLOT_EVENTS.ON_DROP_ERROR, new Error('No device info'));
84
+ }
85
+ });
86
+ }
87
+ shapeKeyChanged(key, value) {
88
+ if (this.props.follows.has(key)) {
89
+ const obj = this.props.follows.get(key);
90
+ if (obj) {
91
+ let direction = 'x';
92
+ if (key === 'height') {
93
+ direction = 'y';
94
+ }
95
+ else if (key === 'width') {
96
+ direction = 'z';
97
+ }
98
+ this.position[direction] = (value - obj.origin) * obj.scale;
99
+ }
100
+ }
101
+ }
102
+ async loadGlb(sglb) {
103
+ const sglbLoader = new SGLBLoader({ useCache: true });
104
+ const result = await sglbLoader.loadAsync(sglb);
105
+ if (!result.glb)
106
+ return;
107
+ return result.glb.clone(true);
108
+ }
109
+ async installBracket(url) {
110
+ const sglbLoader = new SGLBLoader({ useCache: true });
111
+ const result = await sglbLoader.loadAsync(url);
112
+ if (!result.glb)
113
+ return;
114
+ const glb = result.glb.clone(true);
115
+ this.useBracket = true;
116
+ this._slotContainer.add(glb);
117
+ }
118
+ async install(info) {
119
+ if (this._loading)
120
+ return;
121
+ this._loading = true;
122
+ try {
123
+ const glb = await this.loadGlb(info.url);
124
+ if (!glb) {
125
+ throw new Error(`Fail to load device from: ${info.url}`);
126
+ }
127
+ if (info.bracketUrl) {
128
+ const bracket = await this.loadGlb(info.bracketUrl);
129
+ if (!bracket) {
130
+ throw new Error(`Fail to load bracket from: ${info.bracketUrl}`);
131
+ }
132
+ else {
133
+ this.clearSlot();
134
+ bracket.traverse(m => {
135
+ if (m.name.startsWith('Slot')) {
136
+ this._bracketSlots.push(m);
137
+ }
138
+ });
139
+ this._slotContainer.add(bracket);
140
+ }
141
+ this._bracketSlots.forEach(b => {
142
+ b.add(glb);
143
+ });
144
+ }
145
+ else {
146
+ this.clearSlot();
147
+ this._slotContainer.add(glb);
148
+ }
149
+ this.deviceInfo = info;
150
+ this._slotUI.filled = true;
151
+ }
152
+ catch (e) {
153
+ throw e;
154
+ }
155
+ finally {
156
+ this._loading = false;
157
+ }
158
+ }
159
+ get device() {
160
+ if (this._slotContainer.children.length) {
161
+ return this._slotContainer.children[0];
162
+ }
163
+ else {
164
+ return null;
165
+ }
166
+ }
167
+ changeName(name) {
168
+ this.name = name;
169
+ this.props.slot.userData.name = name;
170
+ this.props.name = name;
171
+ this.element?.setAttribute('data-name', this.props.name);
172
+ }
173
+ clearSlot() {
174
+ this._bracketSlots = [];
175
+ this._slotContainer.children.forEach(s => {
176
+ s.removeFromParent();
177
+ clearThreeObjectMesh(s);
178
+ });
179
+ this._slotUI.filled = false;
180
+ this.deviceInfo = undefined;
181
+ }
182
+ enable() {
183
+ this._slotUI.disable = false;
184
+ }
185
+ disable() {
186
+ this._slotUI.disable = true;
187
+ }
188
+ hide() {
189
+ this._slotUI.hide = true;
190
+ }
191
+ show() {
192
+ this._slotUI.hide = false;
193
+ }
194
+ get selected() {
195
+ return this._selected;
196
+ }
197
+ set selected(s) {
198
+ if (s) {
199
+ this._emitter.emit(SLOT_EVENTS.ON_BEFORE_SELECTED, s);
200
+ }
201
+ this._selected = s;
202
+ this._slotUI.selected = s;
203
+ this._emitter.emit(SLOT_EVENTS.ON_SELECTED, s);
204
+ }
205
+ get deviceSelected() {
206
+ return this._deviceSelected;
207
+ }
208
+ set deviceSelected(s) {
209
+ this._deviceSelected = s;
210
+ this._emitter.emit(SLOT_EVENTS.ON_DEVICE_SELECTED, s);
211
+ }
212
+ get error() {
213
+ return this._hasError;
214
+ }
215
+ set error(hasError) {
216
+ if (this._loading) {
217
+ setTimeout(() => {
218
+ this.error = hasError;
219
+ }, 100);
220
+ }
221
+ this._hasError = hasError;
222
+ this._slotUI.hasError = hasError;
223
+ this._emitter.emit(SLOT_EVENTS.ON_ERROR_STATE_CHANGE, hasError);
224
+ }
225
+ getCanInstall() {
226
+ return this._canInstall;
227
+ }
228
+ canInstall(c) {
229
+ this._canInstall = c;
230
+ this._slotUI.canInstall = c;
231
+ }
232
+ dispose() {
233
+ cancelAnimationFrame(this._timer);
234
+ this.clearSlot();
235
+ this._emitter.removeAllListeners();
236
+ clearThreeObjectMesh(this._slotContainer);
237
+ this.element.remove();
238
+ }
239
+ render(app) {
240
+ const transform = this.element.style.transform;
241
+ const match = /translate\(-?\d*\.?\d*%?,?\s-?\d*\.?\d*%?\)\s*translate\((-?\d*\.?\d*)px,\s*(-?\d*\.?\d*)px\)/.exec(transform);
242
+ if (!match)
243
+ return;
244
+ const p = new Vector2(parseFloat(match[1]), parseFloat(match[2]));
245
+ const distance = app.mousePos.distanceTo(p);
246
+ let initialSize = 12;
247
+ let max = 24;
248
+ let offset = 30;
249
+ if (this._canInstall) {
250
+ initialSize = 34;
251
+ max = 60;
252
+ offset = 60;
253
+ }
254
+ if (distance < offset) {
255
+ let size = (offset - distance) * 1 + initialSize;
256
+ if (distance < 20) {
257
+ size = max;
258
+ }
259
+ if (size > max) {
260
+ size = max;
261
+ }
262
+ this._slotUI.setSize(size);
263
+ }
264
+ else {
265
+ this._slotUI.setSize(initialSize);
266
+ }
267
+ }
268
+ clone(recursive) {
269
+ return new Group();
270
+ }
271
+ }
272
+ //# sourceMappingURL=slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../stories/device-viewer/slot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare class Sound {
2
+ private sound;
3
+ constructor();
4
+ play(): void;
5
+ }
@@ -0,0 +1,13 @@
1
+ import { Howl } from 'howler';
2
+ import SoundInstall from './asserts/audios/install.mp3';
3
+ export class Sound {
4
+ constructor() {
5
+ this.sound = new Howl({
6
+ src: [SoundInstall]
7
+ });
8
+ }
9
+ play() {
10
+ this.sound.play();
11
+ }
12
+ }
13
+ //# sourceMappingURL=sound.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound.js","sourceRoot":"","sources":["../../../stories/device-viewer/sound.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAU,QAAQ,CAAA;AACjC,OAAO,YAAY,MAAM,8BAA8B,CAAA;AAEvD,MAAM,OAAO,KAAK;IAKhB;QAJQ,UAAK,GAAG,IAAI,IAAI,CAAC;YACvB,GAAG,EAAE,CAAC,YAAY,CAAC;SACpB,CAAC,CAAA;IAGF,CAAC;IAED,IAAI;QACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IACnB,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
2
+ export declare class Text2 extends CSS2DObject {
3
+ constructor(text: string);
4
+ }
@@ -0,0 +1,12 @@
1
+ import { CSS2DObject } from 'three/examples/jsm/renderers/CSS2DRenderer';
2
+ export class Text2 extends CSS2DObject {
3
+ constructor(text) {
4
+ const box = document.createElement('div');
5
+ super(box);
6
+ box.innerText = text;
7
+ box.style.background = 'transparent';
8
+ box.style.fontSize = '10px';
9
+ box.style.color = '#00FF95';
10
+ }
11
+ }
12
+ //# sourceMappingURL=text2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text2.js","sourceRoot":"","sources":["../../../stories/device-viewer/text2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAExE,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QACpB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;QAC3B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAA;IAC7B,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
2
+ export declare class Text3 extends CSS3DObject {
3
+ constructor(text: string);
4
+ }
@@ -0,0 +1,14 @@
1
+ import { CSS3DObject } from 'three/examples/jsm/renderers/CSS3DRenderer';
2
+ export class Text3 extends CSS3DObject {
3
+ constructor(text) {
4
+ const box = document.createElement('div');
5
+ super(box);
6
+ box.innerText = text;
7
+ box.style.background = 'transparent';
8
+ box.style.fontSize = '5px';
9
+ box.style.color = '#fff';
10
+ this.scale.set(0.01, 0.01, 0.01);
11
+ this.rotateY(Math.PI);
12
+ }
13
+ }
14
+ //# sourceMappingURL=text3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text3.js","sourceRoot":"","sources":["../../../stories/device-viewer/text3.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAA;AAExE,MAAM,OAAO,KAAM,SAAQ,WAAW;IACpC,YAAY,IAAY;QACtB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,GAAG,CAAC,SAAS,GAAG,IAAI,CAAA;QACpB,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,aAAa,CAAA;QACpC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAA;QAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAA;QAExB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ import { Box3, Mesh, Object3D, Vector3 } from 'three';
2
+ export declare const clearThreeObjectMesh: (object: Object3D) => void;
3
+ export declare const uuid: () => string;
4
+ export declare function getElementLeftPosition(element: any): {
5
+ x: number;
6
+ y: number;
7
+ };
8
+ export declare function getRelativePosition(child: Element, target: Element): {
9
+ y: number;
10
+ x: number;
11
+ };
12
+ export declare function getVector3FromArray(arr: number[]): Vector3;
13
+ export declare function getLocationPosition(obj: Object3D, wp: Vector3): Vector3;
14
+ export declare function getScaledSettings(): {
15
+ tiles: number;
16
+ renderScale: number;
17
+ };
18
+ export declare function generateMorphTargetWithTarget(target: Mesh): Vector3;
19
+ export declare function generateMorphTarget(originPoint: Vector3, morphPositions: any[], influences: number[]): Vector3;
20
+ export declare function calculateTotalDimensionsUsingVertices(object: Object3D): {
21
+ box: Box3;
22
+ maxRadius: number;
23
+ height: number;
24
+ hasLength: boolean;
25
+ hasWidth: boolean;
26
+ hasHeight: boolean;
27
+ };
28
+ export declare function calculateInscribedCircleRadius(length: number, width: number): number;
29
+ export declare function calculateCircleRadiusByBox3(box: Box3): number;
30
+ export declare function debounce(fn: any, delay: number, scope?: any): () => void;
31
+ export declare class ObjectSize {
32
+ length: number;
33
+ width: number;
34
+ height: number;
35
+ constructor(length: number, width: number, height: number);
36
+ }
@@ -0,0 +1,166 @@
1
+ import { Box3, Mesh, Vector3 } from 'three';
2
+ export const clearThreeObjectMesh = (object) => {
3
+ while (object.children.length > 0) {
4
+ clearThreeObjectMesh(object.children[0]);
5
+ object.children[0]?.removeFromParent();
6
+ }
7
+ if (object instanceof Mesh) {
8
+ try {
9
+ object.geometry?.dispose();
10
+ }
11
+ catch (e) {
12
+ }
13
+ }
14
+ else {
15
+ if (object.dispose) {
16
+ object.dispose();
17
+ }
18
+ }
19
+ };
20
+ export const uuid = () => {
21
+ return URL.createObjectURL(new Blob([])).substr(-36);
22
+ };
23
+ export function getElementLeftPosition(element) {
24
+ var rect = element.getBoundingClientRect();
25
+ var parentRect = element.parentNode ? element.parentNode.getBoundingClientRect() : { left: 0, top: 0 };
26
+ var xPos = rect.left - parentRect.left;
27
+ var yPos = rect.top - parentRect.top + rect.height / 2;
28
+ if (!element.parentNode || element.parentNode === document.body) {
29
+ xPos = rect.left + window.scrollX;
30
+ yPos = rect.top + window.scrollY + rect.height / 2;
31
+ }
32
+ return {
33
+ x: xPos,
34
+ y: yPos
35
+ };
36
+ }
37
+ export function getRelativePosition(child, target) {
38
+ const childRect = child.getBoundingClientRect();
39
+ const targetRect = target.getBoundingClientRect();
40
+ const relativeTop = childRect.top - targetRect.top;
41
+ const relativeLeft = childRect.left - targetRect.left;
42
+ return { y: relativeTop, x: relativeLeft };
43
+ }
44
+ export function getVector3FromArray(arr) {
45
+ return new Vector3(arr[0], arr[1], arr[2]);
46
+ }
47
+ export function getLocationPosition(obj, wp) {
48
+ obj.updateMatrixWorld(true);
49
+ const worldMatrix = obj.matrixWorld.invert();
50
+ return wp.clone().applyMatrix4(worldMatrix);
51
+ }
52
+ export function getScaledSettings() {
53
+ let tiles = 3;
54
+ let renderScale = Math.max(1 / window.devicePixelRatio, 0.5);
55
+ const aspectRatio = window.innerWidth / window.innerHeight;
56
+ if (aspectRatio < 0.65) {
57
+ tiles = 4;
58
+ renderScale = 1 / window.devicePixelRatio;
59
+ }
60
+ return { tiles, renderScale };
61
+ }
62
+ export function generateMorphTargetWithTarget(target) {
63
+ try {
64
+ const originArr = target.geometry.attributes.position.array;
65
+ const originPoint = new Vector3(...originArr);
66
+ return generateMorphTarget(originPoint, target.geometry.morphAttributes.position, target.morphTargetInfluences || []);
67
+ }
68
+ catch (e) {
69
+ return new Vector3();
70
+ }
71
+ }
72
+ export function generateMorphTarget(originPoint, morphPositions, influences) {
73
+ const target = originPoint.clone();
74
+ const displacements = morphPositions.map(morphPosition => {
75
+ const displacement = new Vector3();
76
+ for (let i = 0; i < morphPosition.count; i++) {
77
+ displacement.set(morphPosition.getX(i), morphPosition.getY(i), morphPosition.getZ(i));
78
+ }
79
+ return displacement;
80
+ });
81
+ displacements.forEach((dist, index) => {
82
+ const influence = influences[index] || 0;
83
+ target.add(dist.clone().multiplyScalar(influence));
84
+ });
85
+ return target;
86
+ }
87
+ export function calculateTotalDimensionsUsingVertices(object) {
88
+ let hasLength = false, hasWidth = false, hasHeight = false;
89
+ let minX = Infinity, minY = Infinity, minZ = Infinity;
90
+ let maxX = -Infinity, maxY = -Infinity, maxZ = -Infinity;
91
+ let maxRadius = 0;
92
+ let height = 0;
93
+ object.traverse((child) => {
94
+ if (child.isMesh && child.geometry) {
95
+ const mesh = child;
96
+ mesh.geometry.computeBoundingBox();
97
+ let positionAttribute = mesh.geometry.attributes.position;
98
+ const morphAttributes = mesh.geometry.morphAttributes.position;
99
+ let morphInfluences = mesh.morphTargetInfluences;
100
+ const keys = Object.keys(mesh.morphTargetDictionary || {});
101
+ if (keys.includes('width'))
102
+ hasWidth = true;
103
+ if (keys.includes('length'))
104
+ hasLength = true;
105
+ if (keys.includes('height'))
106
+ hasHeight = true;
107
+ for (let i = 0; i < positionAttribute.count; i++) {
108
+ let x = positionAttribute.getX(i);
109
+ let y = positionAttribute.getY(i);
110
+ let z = positionAttribute.getZ(i);
111
+ height = Math.max(y, height);
112
+ if (morphAttributes && morphInfluences) {
113
+ morphAttributes.forEach((morphAttr, index) => {
114
+ const val = (morphInfluences && morphInfluences[index]) || 0;
115
+ x += morphAttr.getX(i) * val;
116
+ y += morphAttr.getY(i) * val;
117
+ z += morphAttr.getZ(i) * val;
118
+ });
119
+ }
120
+ if (x < minX)
121
+ minX = x;
122
+ if (y < minY)
123
+ minY = y;
124
+ if (z < minZ)
125
+ minZ = z;
126
+ if (x > maxX)
127
+ maxX = x;
128
+ if (y > maxY)
129
+ maxY = y;
130
+ if (z > maxZ)
131
+ maxZ = z;
132
+ const distance = Math.sqrt(x * x + z * z);
133
+ if (distance > maxRadius)
134
+ maxRadius = distance;
135
+ }
136
+ }
137
+ });
138
+ const box = new Box3(new Vector3(minX, minY, minZ), new Vector3(maxX, maxY, maxZ));
139
+ return { box, maxRadius, height, hasWidth, hasLength, hasHeight };
140
+ }
141
+ export function calculateInscribedCircleRadius(length, width) {
142
+ const diagonal = Math.sqrt(length * length + width * width);
143
+ return diagonal / 2;
144
+ }
145
+ export function calculateCircleRadiusByBox3(box) {
146
+ const center = new Vector3();
147
+ return Math.max(center.distanceTo(new Vector3(box.min.x, box.min.y, box.min.z)), center.distanceTo(new Vector3(box.min.x, box.min.y, box.max.z)), center.distanceTo(new Vector3(box.min.x, box.max.y, box.min.z)), center.distanceTo(new Vector3(box.min.x, box.max.y, box.max.z)), center.distanceTo(new Vector3(box.max.x, box.min.y, box.min.z)), center.distanceTo(new Vector3(box.max.x, box.min.y, box.max.z)), center.distanceTo(new Vector3(box.max.x, box.max.y, box.min.z)), center.distanceTo(new Vector3(box.max.x, box.max.y, box.max.z)));
148
+ }
149
+ export function debounce(fn, delay, scope = null) {
150
+ let timer = 0;
151
+ return function () {
152
+ let context = scope || this, args = arguments;
153
+ clearTimeout(timer);
154
+ timer = window.setTimeout(function () {
155
+ fn.apply(context, args);
156
+ }, delay);
157
+ };
158
+ }
159
+ export class ObjectSize {
160
+ constructor(length, width, height) {
161
+ this.length = length;
162
+ this.width = width;
163
+ this.height = height;
164
+ }
165
+ }
166
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../stories/device-viewer/utils/index.ts"],"names":[],"mappings":"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"}