@realsee/dnalogel 2.0.0-alpha.7 → 2.0.0-beta.36

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 (605) hide show
  1. package/README.md +78 -28
  2. package/components/index.js +1450 -0
  3. package/dist/CSS3DRenderPlugin/Plugin.d.ts +49 -0
  4. package/dist/CSS3DRenderPlugin/index.d.ts +4 -0
  5. package/dist/CSS3DRenderPlugin/index.js +234 -0
  6. package/dist/CSS3DRenderPlugin/utils/createResizeObserver.d.ts +7 -0
  7. package/dist/CameraMovementPlugin/CameraMovementPlugin.d.ts +7 -0
  8. package/dist/CameraMovementPlugin/index.d.ts +5 -0
  9. package/dist/CameraMovementPlugin/index.js +302 -0
  10. package/dist/CameraMovementPlugin/typing.d.ts +68 -0
  11. package/dist/ItemLabelPlugin/Plugin.d.ts +4 -0
  12. package/dist/ItemLabelPlugin/events.type.d.ts +9 -0
  13. package/dist/ItemLabelPlugin/index.d.ts +9 -0
  14. package/dist/ItemLabelPlugin/index.js +941 -0
  15. package/dist/ItemLabelPlugin/typings.d.ts +59 -0
  16. package/dist/ItemLabelPlugin/utils/getLabelTransform.d.ts +1 -0
  17. package/dist/ItemLabelPlugin/utils/getStrokeLength.d.ts +5 -0
  18. package/dist/ItemLabelPlugin/utils/isImpacted.d.ts +6 -0
  19. package/dist/ItemLabelPlugin/utils/parseData.d.ts +3 -0
  20. package/dist/ItemLabelPlugin/utils/transform2RenderData.d.ts +3 -0
  21. package/dist/ModelChassisCompassPlugin/Plugin.d.ts +19 -0
  22. package/dist/ModelChassisCompassPlugin/index.d.ts +4 -0
  23. package/dist/ModelChassisCompassPlugin/index.js +145 -0
  24. package/dist/ModelEntryDoorGuidePlugin/Plugin.d.ts +26 -0
  25. package/dist/ModelEntryDoorGuidePlugin/index.d.ts +4 -0
  26. package/dist/ModelEntryDoorGuidePlugin/index.js +196 -0
  27. package/dist/ModelItemLabelPlugin/ModelItemLabelPlugin.d.ts +4 -0
  28. package/dist/ModelItemLabelPlugin/events.type.d.ts +9 -0
  29. package/dist/ModelItemLabelPlugin/index.d.ts +9 -0
  30. package/dist/ModelItemLabelPlugin/index.js +674 -0
  31. package/dist/ModelItemLabelPlugin/typings.d.ts +56 -0
  32. package/dist/ModelItemLabelPlugin/utils/parseData.d.ts +3 -0
  33. package/dist/ModelRoomLabelPlugin/Assets/roomLabelBg.d.ts +1 -0
  34. package/dist/ModelRoomLabelPlugin/Controller.d.ts +36 -0
  35. package/dist/ModelRoomLabelPlugin/index.d.ts +12 -0
  36. package/dist/ModelRoomLabelPlugin/index.js +541 -0
  37. package/dist/ModelRoomLabelPlugin/typings.d.ts +35 -0
  38. package/dist/ModelRoomLabelPlugin/utils/parseData.d.ts +3 -0
  39. package/dist/ModelTVVideoPlugin/Plugin.d.ts +4 -0
  40. package/dist/ModelTVVideoPlugin/index.d.ts +5 -0
  41. package/dist/ModelTVVideoPlugin/index.js +301 -0
  42. package/dist/ModelTVVideoPlugin/typings.d.ts +25 -0
  43. package/dist/ModelTVVideoPlugin/utils/parseData.d.ts +2 -0
  44. package/dist/ModelViewPlugin/Plugin.d.ts +17 -0
  45. package/dist/ModelViewPlugin/index.d.ts +4 -0
  46. package/dist/ModelViewPlugin/index.js +187 -0
  47. package/dist/PanoCompassPlugin/Assets/roomInfoIcon.d.ts +1 -0
  48. package/dist/PanoCompassPlugin/Plugin.d.ts +47 -0
  49. package/dist/PanoCompassPlugin/getRoomInfoInstance.d.ts +8 -0
  50. package/dist/PanoCompassPlugin/index.d.ts +8 -0
  51. package/dist/PanoCompassPlugin/index.js +636 -0
  52. package/dist/PanoCursorRaycasterPlugin/index.d.ts +48 -0
  53. package/dist/PanoCursorRaycasterPlugin/index.js +90 -0
  54. package/dist/PanoMeasurePlugin/Controller/BaseController.d.ts +39 -0
  55. package/dist/PanoMeasurePlugin/Controller/EditController.d.ts +52 -0
  56. package/dist/PanoMeasurePlugin/Controller/MixedController.d.ts +44 -0
  57. package/dist/PanoMeasurePlugin/Controller/ShortcutKeyController.d.ts +12 -0
  58. package/dist/PanoMeasurePlugin/Controller/WatchController.d.ts +26 -0
  59. package/dist/PanoMeasurePlugin/Controller/index.d.ts +70 -0
  60. package/dist/PanoMeasurePlugin/Model/index.d.ts +38 -0
  61. package/dist/PanoMeasurePlugin/Model/line.d.ts +30 -0
  62. package/dist/PanoMeasurePlugin/Model/point.d.ts +16 -0
  63. package/dist/PanoMeasurePlugin/Model/polyline.d.ts +16 -0
  64. package/dist/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.d.ts +2 -0
  65. package/dist/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.d.ts +2 -0
  66. package/dist/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.d.ts +2 -0
  67. package/dist/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +25 -0
  68. package/dist/PanoMeasurePlugin/Modules/FiveHelper.d.ts +11 -0
  69. package/dist/PanoMeasurePlugin/Modules/GuideController.d.ts +18 -0
  70. package/dist/PanoMeasurePlugin/Modules/Magnifier.d.ts +59 -0
  71. package/dist/PanoMeasurePlugin/Modules/UIController/HTML.d.ts +6 -0
  72. package/dist/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +18 -0
  73. package/dist/PanoMeasurePlugin/Modules/UIController/NewMainBtnController.d.ts +12 -0
  74. package/dist/PanoMeasurePlugin/Modules/UIController/Revoke/index.d.ts +13 -0
  75. package/dist/PanoMeasurePlugin/Modules/UIController/index.d.ts +20 -0
  76. package/dist/PanoMeasurePlugin/Modules/UIController/mobileHTML.d.ts +2 -0
  77. package/dist/PanoMeasurePlugin/Modules/UIController/style.d.ts +19 -0
  78. package/dist/PanoMeasurePlugin/Modules/rangePiece/html.d.ts +4 -0
  79. package/dist/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +42 -0
  80. package/dist/PanoMeasurePlugin/index.d.ts +10 -0
  81. package/dist/PanoMeasurePlugin/index.js +3996 -0
  82. package/dist/PanoMeasurePlugin/typings/data.d.ts +32 -0
  83. package/dist/PanoMeasurePlugin/typings/event.type.d.ts +37 -0
  84. package/dist/PanoMeasurePlugin/typings/utils.type.d.ts +1 -0
  85. package/dist/PanoMeasurePlugin/utils/calculateThreeMouse.d.ts +10 -0
  86. package/dist/PanoMeasurePlugin/utils/clearGroup.d.ts +2 -0
  87. package/dist/PanoMeasurePlugin/utils/constants.d.ts +4 -0
  88. package/dist/PanoMeasurePlugin/utils/distanceDom.d.ts +28 -0
  89. package/dist/PanoMeasurePlugin/utils/findAssociatedLines.d.ts +2 -0
  90. package/dist/PanoMeasurePlugin/utils/findClosestPoint.d.ts +10 -0
  91. package/dist/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +4 -0
  92. package/dist/PanoMeasurePlugin/utils/getPointFromHammerEvent.d.ts +10 -0
  93. package/dist/PanoMeasurePlugin/utils/ironbox.d.ts +1 -0
  94. package/dist/PanoMeasurePlugin/utils/isNDCPointInScreen.d.ts +2 -0
  95. package/dist/PanoMeasurePlugin/utils/line.d.ts +17 -0
  96. package/dist/PanoMeasurePlugin/utils/math.d.ts +17 -0
  97. package/dist/PanoMeasurePlugin/utils/mouseGroup.d.ts +2 -0
  98. package/dist/PanoMeasurePlugin/utils/ndc2Screen.d.ts +5 -0
  99. package/dist/PanoRulerPlugin/Plugin.d.ts +31 -0
  100. package/dist/PanoRulerPlugin/index.d.ts +5 -0
  101. package/dist/PanoRulerPlugin/index.js +610 -0
  102. package/dist/PanoRulerPlugin/style.d.ts +2 -0
  103. package/dist/PanoRulerPlugin/typings.d.ts +21 -0
  104. package/dist/PanoSpatialTagPlugin/Plugin.d.ts +35 -0
  105. package/dist/PanoSpatialTagPlugin/index.d.ts +5 -0
  106. package/dist/PanoSpatialTagPlugin/index.js +1307 -0
  107. package/dist/PanoSpatialTagPlugin/store.d.ts +1 -0
  108. package/dist/PanoSpatialTagPlugin/style.d.ts +1 -0
  109. package/dist/PanoSpatialTagPlugin/typings.d.ts +40 -0
  110. package/dist/base/BasePlugin.d.ts +100 -0
  111. package/dist/base/BasePluginWithData.d.ts +34 -0
  112. package/dist/components/PaintBrush/Controller.d.ts +43 -0
  113. package/dist/components/PaintBrush/Subscribe.d.ts +76 -0
  114. package/dist/components/PaintBrush/index.d.ts +27 -0
  115. package/dist/components/PaintBrush/style.d.ts +2 -0
  116. package/dist/components/PaintBrush/tween.d.ts +62 -0
  117. package/dist/components/PaintBrush/typings.d.ts +58 -0
  118. package/dist/components/PaintBrush/utils.d.ts +26 -0
  119. package/dist/components/index.d.ts +2 -0
  120. package/dist/floorplan/Assets/camera.d.ts +1 -0
  121. package/dist/floorplan/Assets/compass.d.ts +1 -0
  122. package/dist/floorplan/Assets/floorplanExtraObject.d.ts +1 -0
  123. package/dist/floorplan/ModelFloorplanPlugin/Controller.d.ts +97 -0
  124. package/dist/floorplan/ModelFloorplanPlugin/index.d.ts +7 -0
  125. package/dist/floorplan/ModelFloorplanPlugin/index.js +4526 -0
  126. package/dist/floorplan/ModelFloorplanPlugin/typing.d.ts +107 -0
  127. package/dist/floorplan/ModelFloorplanPlugin/typings/events.type.d.ts +23 -0
  128. package/dist/floorplan/ModelFloorplanPlugin/utils/constant.d.ts +15 -0
  129. package/dist/floorplan/ModelFloorplanPlugin/utils/correctFiveState.d.ts +14 -0
  130. package/dist/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +36 -0
  131. package/dist/floorplan/PanoFloorplanRadarPlugin/index.d.ts +7 -0
  132. package/dist/floorplan/PanoFloorplanRadarPlugin/index.js +2008 -0
  133. package/dist/floorplan/PanoFloorplanRadarPlugin/typing.d.ts +52 -0
  134. package/dist/floorplan/TopviewFloorplanPlugin/Controller.d.ts +67 -0
  135. package/dist/floorplan/TopviewFloorplanPlugin/index.d.ts +7 -0
  136. package/dist/floorplan/TopviewFloorplanPlugin/index.js +4236 -0
  137. package/dist/floorplan/TopviewFloorplanPlugin/style.d.ts +1 -0
  138. package/dist/floorplan/TopviewFloorplanPlugin/typing.d.ts +86 -0
  139. package/dist/floorplan/constant.d.ts +5 -0
  140. package/dist/floorplan/index.d.ts +6 -0
  141. package/dist/floorplan/typings/floorplanData.d.ts +137 -0
  142. package/dist/floorplan/typings/floorplanServerData.d.ts +131 -0
  143. package/dist/floorplan/typings/utility.d.ts +2 -0
  144. package/dist/floorplan/utils/constant.d.ts +22 -0
  145. package/dist/floorplan/utils/correctFiveState.d.ts +15 -0
  146. package/dist/floorplan/utils/formatData.d.ts +5 -0
  147. package/dist/floorplan/utils/formatPosition.d.ts +36 -0
  148. package/dist/index.d.ts +15 -0
  149. package/dist/index.es.js +15436 -0
  150. package/dist/index.js +15488 -0
  151. package/dist/index.umd.js +15480 -0
  152. package/dist/shared-utils/Preloader.d.ts +6 -0
  153. package/dist/shared-utils/Subscribe.d.ts +45 -0
  154. package/dist/shared-utils/animationFrame/BetterTween.d.ts +11 -0
  155. package/dist/shared-utils/animationFrame/calculateProgress.d.ts +8 -0
  156. package/dist/shared-utils/animationFrame/formatRad.d.ts +15 -0
  157. package/dist/shared-utils/animationFrame/index.d.ts +15 -0
  158. package/dist/shared-utils/animationFrame/tween.d.ts +75 -0
  159. package/dist/shared-utils/changeModelCanvasOpacity.d.ts +2 -0
  160. package/dist/shared-utils/createCanvasTextTexture.d.ts +8 -0
  161. package/dist/shared-utils/createLine/index.d.ts +3 -0
  162. package/dist/shared-utils/debounce.d.ts +6 -0
  163. package/dist/shared-utils/equal.d.ts +11 -0
  164. package/dist/shared-utils/filter.d.ts +27 -0
  165. package/dist/shared-utils/five/changeMode.d.ts +5 -0
  166. package/dist/shared-utils/formatRad.d.ts +7 -0
  167. package/dist/shared-utils/getPxmm.d.ts +19 -0
  168. package/dist/shared-utils/getRandomColor.d.ts +1 -0
  169. package/dist/shared-utils/index.d.ts +1 -0
  170. package/dist/shared-utils/isNil.d.ts +10 -0
  171. package/dist/shared-utils/isTruelyObject.d.ts +18 -0
  172. package/dist/shared-utils/math/Interval.d.ts +13 -0
  173. package/dist/shared-utils/math/Rectangle.d.ts +27 -0
  174. package/dist/shared-utils/math/evenNumber.d.ts +3 -0
  175. package/dist/shared-utils/math/index.d.ts +2 -0
  176. package/dist/shared-utils/math/planimetry.d.ts +116 -0
  177. package/dist/shared-utils/math/rad2Deg.d.ts +1 -0
  178. package/dist/shared-utils/nearlyEqual.d.ts +7 -0
  179. package/dist/shared-utils/nextFrame.d.ts +1 -0
  180. package/dist/shared-utils/noop.d.ts +5 -0
  181. package/dist/shared-utils/object3d2LocalMatrix.d.ts +12 -0
  182. package/dist/shared-utils/px2rem.d.ts +1 -0
  183. package/dist/shared-utils/removeArrayItem.d.ts +7 -0
  184. package/dist/shared-utils/tap.d.ts +8 -0
  185. package/dist/shared-utils/three/centerPoint.d.ts +2 -0
  186. package/dist/shared-utils/three/getExtraModelLoader.d.ts +6 -0
  187. package/dist/shared-utils/three/getNormal.d.ts +2 -0
  188. package/dist/shared-utils/three/getTextureLoader.d.ts +6 -0
  189. package/dist/shared-utils/three/loadFbxObj.d.ts +2 -0
  190. package/dist/shared-utils/three/loadTexture.d.ts +2 -0
  191. package/dist/shared-utils/three/transformPositionToVector3.d.ts +7 -0
  192. package/dist/shared-utils/three/transfromToMeshBasicMaterial.d.ts +2 -0
  193. package/dist/shared-utils/throttle.d.ts +7 -0
  194. package/dist/shared-utils/tinyEJSrender.d.ts +5 -0
  195. package/dist/shared-utils/to.d.ts +8 -0
  196. package/dist/shared-utils/uuid.d.ts +5 -0
  197. package/dist/shared-utils/vectorTocoordinates.d.ts +7 -0
  198. package/dist/typings/math.type.d.ts +44 -0
  199. package/dist/typings/utils.type.d.ts +2 -0
  200. package/docs/.nojekyll +1 -0
  201. package/docs/assets/highlight.css +78 -0
  202. package/docs/assets/icons.css +1043 -0
  203. package/docs/assets/icons.png +0 -0
  204. package/docs/assets/icons@2x.png +0 -0
  205. package/docs/assets/main.js +52 -0
  206. package/docs/assets/search.js +1 -0
  207. package/docs/assets/style.css +1413 -0
  208. package/docs/assets/widgets.png +0 -0
  209. package/docs/assets/widgets@2x.png +0 -0
  210. package/docs/classes/Magnifier.html +9 -0
  211. package/docs/classes/ModelRoomLabelController.html +17 -0
  212. package/docs/enums/CameraMovementEffect.html +3 -0
  213. package/docs/enums/DIRECTION.html +1 -0
  214. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +1 -0
  215. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -0
  216. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +1 -0
  217. package/docs/enums/Rotation.html +3 -0
  218. package/docs/index.html +88 -0
  219. package/docs/interfaces/CSS3DRenderPluginExportType.html +4 -0
  220. package/docs/interfaces/CameraMovementPluginExportType.html +17 -0
  221. package/docs/interfaces/FloorplanBounding.html +10 -0
  222. package/docs/interfaces/FloorplanData.html +3 -0
  223. package/docs/interfaces/FloorplanEntrance.html +15 -0
  224. package/docs/interfaces/FloorplanExtraObject.html +7 -0
  225. package/docs/interfaces/FloorplanExtraObject3D.html +3 -0
  226. package/docs/interfaces/FloorplanFloorData.html +3 -0
  227. package/docs/interfaces/FloorplanImagePosition.html +3 -0
  228. package/docs/interfaces/FloorplanObserver.html +5 -0
  229. package/docs/interfaces/FloorplanOutlineItem.html +3 -0
  230. package/docs/interfaces/FloorplanPosition.html +3 -0
  231. package/docs/interfaces/FloorplanRoomItem.html +17 -0
  232. package/docs/interfaces/FloorplanRoomLabelItem.html +7 -0
  233. package/docs/interfaces/FloorplanServerBounding.html +10 -0
  234. package/docs/interfaces/FloorplanServerComputedData.html +1 -0
  235. package/docs/interfaces/FloorplanServerData.html +3 -0
  236. package/docs/interfaces/FloorplanServerEntrance.html +15 -0
  237. package/docs/interfaces/FloorplanServerFloorData.html +3 -0
  238. package/docs/interfaces/FloorplanServerImagePosition.html +3 -0
  239. package/docs/interfaces/FloorplanServerObserver.html +5 -0
  240. package/docs/interfaces/FloorplanServerOutlineItem.html +3 -0
  241. package/docs/interfaces/FloorplanServerPosition.html +3 -0
  242. package/docs/interfaces/FloorplanServerRoomItem.html +20 -0
  243. package/docs/interfaces/FloorplanServerRoomLabelItem.html +7 -0
  244. package/docs/interfaces/ItemLabelPluginData.html +1 -0
  245. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +1 -0
  246. package/docs/interfaces/ItemLabelPluginParametersType.html +1 -0
  247. package/docs/interfaces/LineJson.html +1 -0
  248. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -0
  249. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -0
  250. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -0
  251. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -0
  252. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -0
  253. package/docs/interfaces/ModelItemLabelPluginData.html +1 -0
  254. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +1 -0
  255. package/docs/interfaces/ModelItemLabelPluginParametersType.html +1 -0
  256. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -0
  257. package/docs/interfaces/ModelTVVideoPluginData.html +1 -0
  258. package/docs/interfaces/ModelTVVideoPluginExportType.html +1 -0
  259. package/docs/interfaces/ModelTVVideoPluginParameterType.html +1 -0
  260. package/docs/interfaces/ModelViewPluginExportType.html +1 -0
  261. package/docs/interfaces/OpenParameter.html +3 -0
  262. package/docs/interfaces/PanoCompassPluginData.html +1 -0
  263. package/docs/interfaces/PanoCompassPluginParameterType.html +1 -0
  264. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +11 -0
  265. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -0
  266. package/docs/interfaces/PanoMeasureParameterType.html +1 -0
  267. package/docs/interfaces/PanoRulerPluginExportType.html +1 -0
  268. package/docs/interfaces/PanoRulerPluginOptions.html +1 -0
  269. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -0
  270. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -0
  271. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -0
  272. package/docs/interfaces/PanoSpatialTagPluginData.html +1 -0
  273. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +1 -0
  274. package/docs/interfaces/PanoSpatialTagPluginExportType.html +1 -0
  275. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +1 -0
  276. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +1 -0
  277. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +1 -0
  278. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +1 -0
  279. package/docs/interfaces/Point.html +1 -0
  280. package/docs/interfaces/PointJson.html +1 -0
  281. package/docs/interfaces/Room.html +1 -0
  282. package/docs/interfaces/RoomInfo.html +1 -0
  283. package/docs/interfaces/RoomLabel.html +13 -0
  284. package/docs/interfaces/RoomRules.html +1 -0
  285. package/docs/interfaces/Rooms.html +1 -0
  286. package/docs/modules.html +34 -0
  287. package/libs/CSS3DRenderPlugin/Plugin.d.ts +49 -0
  288. package/libs/CSS3DRenderPlugin/Plugin.js +182 -0
  289. package/libs/CSS3DRenderPlugin/index.d.ts +3 -48
  290. package/libs/CSS3DRenderPlugin/index.js +2 -180
  291. package/libs/CameraMovementPlugin/CameraMovementPlugin.d.ts +7 -0
  292. package/libs/CameraMovementPlugin/CameraMovementPlugin.js +159 -0
  293. package/libs/CameraMovementPlugin/index.d.ts +4 -6
  294. package/libs/CameraMovementPlugin/index.js +3 -158
  295. package/libs/CameraMovementPlugin/typing.d.ts +1 -1
  296. package/libs/ItemLabelPlugin/ItemLabelComponent.js +577 -0
  297. package/libs/ItemLabelPlugin/ItemLabelItem.js +227 -0
  298. package/libs/ItemLabelPlugin/Plugin.d.ts +4 -0
  299. package/libs/ItemLabelPlugin/Plugin.js +120 -0
  300. package/libs/ItemLabelPlugin/events.type.d.ts +9 -0
  301. package/libs/ItemLabelPlugin/events.type.js +1 -0
  302. package/libs/ItemLabelPlugin/index.d.ts +9 -0
  303. package/libs/ItemLabelPlugin/index.js +8 -0
  304. package/libs/ItemLabelPlugin/typings.d.ts +59 -0
  305. package/libs/ItemLabelPlugin/typings.js +7 -0
  306. package/libs/ItemLabelPlugin/utils/getLabelTransform.d.ts +1 -0
  307. package/libs/ItemLabelPlugin/utils/getLabelTransform.js +3 -0
  308. package/libs/ItemLabelPlugin/utils/getStrokeLength.d.ts +5 -0
  309. package/libs/ItemLabelPlugin/utils/getStrokeLength.js +16 -0
  310. package/libs/ItemLabelPlugin/utils/isImpacted.d.ts +6 -0
  311. package/libs/ItemLabelPlugin/utils/isImpacted.js +13 -0
  312. package/libs/ItemLabelPlugin/utils/parseData.d.ts +3 -0
  313. package/libs/ItemLabelPlugin/utils/parseData.js +4 -0
  314. package/libs/ItemLabelPlugin/utils/transform2RenderData.d.ts +3 -0
  315. package/libs/ItemLabelPlugin/utils/transform2RenderData.js +4 -0
  316. package/libs/ModelChassisCompassPlugin/Plugin.d.ts +19 -0
  317. package/libs/ModelChassisCompassPlugin/Plugin.js +77 -0
  318. package/libs/ModelChassisCompassPlugin/index.d.ts +3 -18
  319. package/libs/ModelChassisCompassPlugin/index.js +2 -74
  320. package/libs/ModelEntryDoorGuidePlugin/Plugin.d.ts +26 -0
  321. package/libs/ModelEntryDoorGuidePlugin/Plugin.js +140 -0
  322. package/libs/ModelEntryDoorGuidePlugin/index.d.ts +3 -25
  323. package/libs/ModelEntryDoorGuidePlugin/index.js +2 -135
  324. package/libs/ModelItemLabelPlugin/ItemLabelComponent.js +409 -0
  325. package/libs/ModelItemLabelPlugin/ItemLabelItem.js +133 -0
  326. package/libs/ModelItemLabelPlugin/ModelItemLabelPlugin.d.ts +4 -0
  327. package/libs/ModelItemLabelPlugin/ModelItemLabelPlugin.js +120 -0
  328. package/libs/ModelItemLabelPlugin/events.type.d.ts +9 -0
  329. package/libs/ModelItemLabelPlugin/events.type.js +1 -0
  330. package/libs/ModelItemLabelPlugin/index.d.ts +9 -0
  331. package/libs/ModelItemLabelPlugin/index.js +8 -0
  332. package/libs/ModelItemLabelPlugin/typings.d.ts +56 -0
  333. package/libs/ModelItemLabelPlugin/typings.js +7 -0
  334. package/libs/ModelItemLabelPlugin/utils/parseData.d.ts +3 -0
  335. package/libs/ModelItemLabelPlugin/utils/parseData.js +4 -0
  336. package/libs/ModelRoomLabelPlugin/Controller.js +67 -25
  337. package/libs/ModelRoomLabelPlugin/RoomLabelItem.js +121 -0
  338. package/libs/ModelRoomLabelPlugin/RoomLabelItems.js +291 -0
  339. package/libs/ModelRoomLabelPlugin/utils/parseData.d.ts +1 -1
  340. package/libs/ModelSimulationPlugin/index.d.ts +33 -0
  341. package/libs/ModelSimulationPlugin/index.js +166 -0
  342. package/libs/ModelSimulationPlugin/shaders/fragment.d.ts +2 -0
  343. package/libs/ModelSimulationPlugin/shaders/fragment.js +96 -0
  344. package/libs/ModelSimulationPlugin/shaders/vertex.d.ts +2 -0
  345. package/libs/ModelSimulationPlugin/shaders/vertex.js +23 -0
  346. package/libs/ModelTVVideoPlugin/Plugin.d.ts +4 -0
  347. package/libs/ModelTVVideoPlugin/Plugin.js +254 -0
  348. package/libs/ModelTVVideoPlugin/index.d.ts +5 -0
  349. package/libs/ModelTVVideoPlugin/index.js +4 -0
  350. package/libs/ModelTVVideoPlugin/typings.d.ts +25 -0
  351. package/libs/ModelTVVideoPlugin/typings.js +8 -0
  352. package/libs/ModelTVVideoPlugin/utils/parseData.d.ts +2 -0
  353. package/libs/ModelTVVideoPlugin/utils/parseData.js +13 -0
  354. package/libs/ModelViewPlugin/Plugin.d.ts +17 -0
  355. package/libs/ModelViewPlugin/Plugin.js +160 -0
  356. package/libs/ModelViewPlugin/index.d.ts +3 -16
  357. package/libs/ModelViewPlugin/index.js +2 -159
  358. package/libs/PanoCompassPlugin/Plugin.d.ts +47 -0
  359. package/libs/PanoCompassPlugin/Plugin.js +249 -0
  360. package/libs/PanoCompassPlugin/index.d.ts +4 -47
  361. package/libs/PanoCompassPlugin/index.js +3 -167
  362. package/libs/PanoCursorRaycasterPlugin/index.d.ts +1 -1
  363. package/libs/PanoCursorRaycasterPlugin/index.js +5 -3
  364. package/libs/PanoMeasurePlugin/Controller/BaseController.d.ts +12 -9
  365. package/libs/PanoMeasurePlugin/Controller/BaseController.js +77 -14
  366. package/libs/PanoMeasurePlugin/Controller/EditController.d.ts +1 -1
  367. package/libs/PanoMeasurePlugin/Controller/EditController.js +267 -154
  368. package/libs/PanoMeasurePlugin/Controller/MixedController.d.ts +44 -0
  369. package/libs/PanoMeasurePlugin/Controller/MixedController.js +337 -0
  370. package/libs/PanoMeasurePlugin/Controller/ShortcutKeyController.d.ts +2 -2
  371. package/libs/PanoMeasurePlugin/Controller/ShortcutKeyController.js +40 -20
  372. package/libs/PanoMeasurePlugin/Controller/WatchController.d.ts +2 -1
  373. package/libs/PanoMeasurePlugin/Controller/WatchController.js +246 -153
  374. package/libs/PanoMeasurePlugin/Controller/index.d.ts +18 -9
  375. package/libs/PanoMeasurePlugin/Controller/index.js +182 -54
  376. package/libs/PanoMeasurePlugin/Model/index.d.ts +2 -2
  377. package/libs/PanoMeasurePlugin/Model/index.js +30 -5
  378. package/libs/PanoMeasurePlugin/Model/line.d.ts +5 -5
  379. package/libs/PanoMeasurePlugin/Model/line.js +61 -11
  380. package/libs/PanoMeasurePlugin/Model/point.d.ts +2 -2
  381. package/libs/PanoMeasurePlugin/Model/point.js +24 -4
  382. package/libs/PanoMeasurePlugin/Model/polyline.d.ts +3 -3
  383. package/libs/PanoMeasurePlugin/Model/polyline.js +20 -3
  384. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.d.ts +1 -1
  385. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete.svg.js +11 -14
  386. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.d.ts +1 -1
  387. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_bg.png.js +1 -1
  388. package/libs/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +5 -2
  389. package/libs/PanoMeasurePlugin/Modules/DeleteDom/index.js +107 -25
  390. package/libs/PanoMeasurePlugin/Modules/FiveHelper.d.ts +1 -1
  391. package/libs/PanoMeasurePlugin/Modules/FiveHelper.js +23 -8
  392. package/libs/PanoMeasurePlugin/Modules/GuideController.d.ts +1 -1
  393. package/libs/PanoMeasurePlugin/Modules/GuideController.js +61 -26
  394. package/libs/PanoMeasurePlugin/Modules/Magnifier.d.ts +50 -15
  395. package/libs/PanoMeasurePlugin/Modules/Magnifier.js +234 -59
  396. package/libs/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +1 -1
  397. package/libs/PanoMeasurePlugin/Modules/UIController/MainBtnController.js +84 -38
  398. package/libs/PanoMeasurePlugin/Modules/UIController/NewMainBtnController.d.ts +12 -0
  399. package/libs/PanoMeasurePlugin/Modules/UIController/NewMainBtnController.js +98 -0
  400. package/libs/PanoMeasurePlugin/Modules/UIController/Revoke/index.d.ts +2 -1
  401. package/libs/PanoMeasurePlugin/Modules/UIController/Revoke/index.js +52 -17
  402. package/libs/PanoMeasurePlugin/Modules/UIController/index.d.ts +5 -1
  403. package/libs/PanoMeasurePlugin/Modules/UIController/index.js +84 -34
  404. package/libs/PanoMeasurePlugin/Modules/UIController/mobileHTML.d.ts +2 -0
  405. package/libs/PanoMeasurePlugin/Modules/UIController/mobileHTML.js +80 -0
  406. package/libs/PanoMeasurePlugin/Modules/UIController/style.d.ts +2 -0
  407. package/libs/PanoMeasurePlugin/Modules/UIController/style.js +11 -1
  408. package/libs/PanoMeasurePlugin/Modules/rangePiece/html.d.ts +4 -0
  409. package/libs/PanoMeasurePlugin/Modules/rangePiece/html.js +64 -0
  410. package/libs/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +42 -0
  411. package/libs/PanoMeasurePlugin/Modules/rangePiece/index.js +265 -0
  412. package/libs/PanoMeasurePlugin/index.d.ts +9 -6
  413. package/libs/PanoMeasurePlugin/index.js +3 -1
  414. package/libs/PanoMeasurePlugin/typings/data.d.ts +4 -0
  415. package/libs/PanoMeasurePlugin/typings/event.type.d.ts +14 -5
  416. package/libs/PanoMeasurePlugin/utils/calculateThreeMouse.d.ts +10 -0
  417. package/libs/PanoMeasurePlugin/utils/calculateThreeMouse.js +15 -0
  418. package/libs/PanoMeasurePlugin/utils/clearGroup.d.ts +1 -1
  419. package/libs/PanoMeasurePlugin/utils/constants.d.ts +1 -1
  420. package/libs/PanoMeasurePlugin/utils/constants.js +7 -7
  421. package/libs/PanoMeasurePlugin/utils/distanceDom.d.ts +3 -3
  422. package/libs/PanoMeasurePlugin/utils/distanceDom.js +22 -16
  423. package/libs/PanoMeasurePlugin/utils/findAssociatedLines.d.ts +1 -1
  424. package/libs/PanoMeasurePlugin/utils/findClosestPoint.d.ts +3 -3
  425. package/libs/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +2 -2
  426. package/libs/PanoMeasurePlugin/utils/getPointFromHammerEvent.d.ts +1 -1
  427. package/libs/PanoMeasurePlugin/utils/isNDCPointInScreen.d.ts +1 -1
  428. package/libs/PanoMeasurePlugin/utils/line.d.ts +1 -1
  429. package/libs/PanoMeasurePlugin/utils/line.js +8 -7
  430. package/libs/PanoMeasurePlugin/utils/mouseGroup.d.ts +2 -2
  431. package/libs/PanoMeasurePlugin/utils/mouseGroup.js +5 -5
  432. package/libs/PanoRulerPlugin/Plugin.d.ts +31 -0
  433. package/libs/PanoRulerPlugin/Plugin.js +403 -0
  434. package/libs/PanoRulerPlugin/index.d.ts +4 -30
  435. package/libs/PanoRulerPlugin/index.js +2 -397
  436. package/libs/PanoSpatialTagPlugin/Components/origins.js +168 -0
  437. package/libs/PanoSpatialTagPlugin/Components/tag.js +302 -0
  438. package/libs/PanoSpatialTagPlugin/Plugin.d.ts +35 -0
  439. package/libs/PanoSpatialTagPlugin/Plugin.js +426 -0
  440. package/libs/PanoSpatialTagPlugin/index.d.ts +5 -0
  441. package/libs/PanoSpatialTagPlugin/index.js +5 -0
  442. package/libs/PanoSpatialTagPlugin/store.d.ts +1 -0
  443. package/libs/PanoSpatialTagPlugin/store.js +2 -0
  444. package/libs/PanoSpatialTagPlugin/style.d.ts +1 -0
  445. package/libs/PanoSpatialTagPlugin/style.js +8 -0
  446. package/libs/PanoSpatialTagPlugin/typings.d.ts +40 -0
  447. package/libs/PanoSpatialTagPlugin/typings.js +1 -0
  448. package/libs/base/BasePlugin.d.ts +100 -0
  449. package/libs/base/BasePlugin.js +31 -0
  450. package/libs/base/BasePluginWithData.d.ts +34 -0
  451. package/libs/base/BasePluginWithData.js +4 -0
  452. package/libs/components/PaintBrush/Controller.d.ts +43 -0
  453. package/libs/components/PaintBrush/Controller.js +575 -0
  454. package/libs/components/PaintBrush/Subscribe.d.ts +76 -0
  455. package/libs/components/PaintBrush/Subscribe.js +121 -0
  456. package/libs/components/PaintBrush/index.d.ts +27 -0
  457. package/libs/components/PaintBrush/index.js +57 -0
  458. package/libs/components/PaintBrush/style.d.ts +2 -0
  459. package/libs/components/PaintBrush/style.js +102 -0
  460. package/libs/components/PaintBrush/tween.d.ts +62 -0
  461. package/libs/components/PaintBrush/tween.js +15 -0
  462. package/libs/components/PaintBrush/typings.d.ts +58 -0
  463. package/libs/components/PaintBrush/typings.js +6 -0
  464. package/libs/components/PaintBrush/utils.d.ts +26 -0
  465. package/libs/components/PaintBrush/utils.js +51 -0
  466. package/libs/components/index.d.ts +2 -0
  467. package/libs/components/index.js +3 -0
  468. package/libs/floorplan/Assets/compass.d.ts +1 -0
  469. package/libs/floorplan/Assets/compass.js +1 -0
  470. package/libs/floorplan/Components/BaseImage.js +222 -0
  471. package/libs/floorplan/Components/Camera.js +120 -0
  472. package/libs/floorplan/Components/Compass.js +120 -0
  473. package/libs/floorplan/Components/CurrentFloor.js +469 -0
  474. package/libs/floorplan/Components/Main.js +470 -0
  475. package/libs/floorplan/Components/Normalmage.js +63 -0
  476. package/libs/floorplan/Components/RoomHighlight/Room.js +107 -0
  477. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.js +216 -0
  478. package/libs/floorplan/Components/RoomLabels/RoomLabel.js +322 -0
  479. package/libs/floorplan/Components/RoomLabels/RoomLabels.js +309 -0
  480. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.js +331 -0
  481. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.js +64 -0
  482. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.js +104 -0
  483. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.js +142 -0
  484. package/libs/floorplan/Components/RuleLabels/RuleItem.js +284 -0
  485. package/libs/floorplan/Components/RuleLabels/RuleLabels.js +269 -0
  486. package/libs/floorplan/Components/SvgImage.js +83 -0
  487. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.js +120 -0
  488. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.js +106 -0
  489. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.js +463 -0
  490. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.js +375 -0
  491. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.js +171 -0
  492. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.js +265 -0
  493. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.js +301 -0
  494. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.js +219 -0
  495. package/libs/floorplan/ModelFloorplanPlugin/Controller.d.ts +70 -77
  496. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +661 -326
  497. package/libs/floorplan/ModelFloorplanPlugin/index.d.ts +5 -7
  498. package/libs/floorplan/ModelFloorplanPlugin/index.js +2 -2
  499. package/libs/floorplan/ModelFloorplanPlugin/typing.d.ts +107 -0
  500. package/libs/floorplan/ModelFloorplanPlugin/typing.js +1 -0
  501. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.js +168 -0
  502. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.js +250 -0
  503. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.js +154 -0
  504. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.js +373 -0
  505. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +24 -16
  506. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +195 -43
  507. package/libs/floorplan/PanoFloorplanRadarPlugin/index.d.ts +5 -6
  508. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +2 -2
  509. package/libs/floorplan/PanoFloorplanRadarPlugin/typing.d.ts +52 -0
  510. package/libs/floorplan/PanoFloorplanRadarPlugin/typing.js +1 -0
  511. package/libs/floorplan/TopviewFloorplanPlugin/Controller.d.ts +53 -47
  512. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +450 -154
  513. package/libs/floorplan/TopviewFloorplanPlugin/index.d.ts +6 -4
  514. package/libs/floorplan/TopviewFloorplanPlugin/index.js +2 -2
  515. package/libs/floorplan/TopviewFloorplanPlugin/style.js +1 -1
  516. package/libs/floorplan/TopviewFloorplanPlugin/typing.d.ts +86 -0
  517. package/libs/floorplan/TopviewFloorplanPlugin/typing.js +1 -0
  518. package/libs/floorplan/index.d.ts +6 -0
  519. package/libs/floorplan/index.js +7 -0
  520. package/libs/floorplan/utils/constant.d.ts +22 -0
  521. package/libs/floorplan/utils/constant.js +23 -0
  522. package/libs/floorplan/utils/correctFiveState.d.ts +15 -0
  523. package/libs/floorplan/utils/correctFiveState.js +46 -0
  524. package/libs/floorplan/utils/formatPosition.d.ts +1 -1
  525. package/libs/floorplan/utils/formatPosition.js +3 -3
  526. package/libs/index.d.ts +15 -24
  527. package/libs/index.js +25 -14
  528. package/libs/shared-utils/Subscribe.js +8 -1
  529. package/libs/shared-utils/animationFrame/BetterTween.js +47 -18
  530. package/libs/shared-utils/createCanvasTextTexture.js +6 -5
  531. package/libs/shared-utils/five/changeMode.d.ts +4 -1
  532. package/libs/shared-utils/five/changeMode.js +34 -13
  533. package/libs/shared-utils/getPxmm.d.ts +8 -0
  534. package/libs/shared-utils/getPxmm.js +25 -20
  535. package/libs/shared-utils/index.d.ts +1 -0
  536. package/libs/shared-utils/index.js +1 -0
  537. package/libs/shared-utils/math/Interval.d.ts +13 -0
  538. package/libs/shared-utils/math/Interval.js +40 -0
  539. package/libs/shared-utils/math/Rectangle.d.ts +27 -0
  540. package/libs/shared-utils/math/Rectangle.js +50 -0
  541. package/libs/shared-utils/math/evenNumber.js +1 -1
  542. package/libs/shared-utils/math/index.d.ts +2 -0
  543. package/libs/shared-utils/math/index.js +2 -0
  544. package/libs/shared-utils/three/getExtraModelLoader.d.ts +1 -1
  545. package/libs/shared-utils/three/getNormal.d.ts +1 -1
  546. package/libs/shared-utils/three/getTextureLoader.d.ts +1 -1
  547. package/libs/shared-utils/three/loadFbxObj.d.ts +1 -1
  548. package/libs/shared-utils/three/transfromToMeshBasicMaterial.js +2 -1
  549. package/libs/shared-utils/tinyEJSrender.d.ts +5 -0
  550. package/libs/shared-utils/tinyEJSrender.js +210 -0
  551. package/libs/shared-utils/uuid.d.ts +1 -0
  552. package/libs/shared-utils/uuid.js +1 -0
  553. package/libs/shared-utils/vectorTocoordinates.d.ts +1 -1
  554. package/package.json +29 -14
  555. package/CHANGELOG.md +0 -21
  556. package/dist/dnalogel.cjs.js +0 -7
  557. package/dist/dnalogel.es.js +0 -41280
  558. package/dist/dnalogel.umd.js +0 -7
  559. package/dist/style.css +0 -1
  560. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte +0 -63
  561. package/libs/ModelRoomLabelPlugin/RoomLabelItem.svelte.map +0 -1
  562. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte +0 -80
  563. package/libs/ModelRoomLabelPlugin/RoomLabelItems.svelte.map +0 -1
  564. package/libs/floorplan/Components/BaseImage.svelte +0 -25
  565. package/libs/floorplan/Components/BaseImage.svelte.map +0 -1
  566. package/libs/floorplan/Components/Normalmage.svelte +0 -11
  567. package/libs/floorplan/Components/Normalmage.svelte.map +0 -1
  568. package/libs/floorplan/Components/RoomHighlight/Room.svelte +0 -21
  569. package/libs/floorplan/Components/RoomHighlight/Room.svelte.map +0 -1
  570. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte +0 -60
  571. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.svelte.map +0 -1
  572. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte +0 -35
  573. package/libs/floorplan/Components/RoomMaterials/RoomMaterial.svelte.map +0 -1
  574. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte +0 -7
  575. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_0.svelte.map +0 -1
  576. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte +0 -16
  577. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.svelte.map +0 -1
  578. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte +0 -17
  579. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.svelte.map +0 -1
  580. package/libs/floorplan/Components/SvgImage.svelte +0 -25
  581. package/libs/floorplan/Components/SvgImage.svelte.map +0 -1
  582. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte +0 -46
  583. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.svelte.map +0 -1
  584. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.svelte +0 -48
  585. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.svelte.map +0 -1
  586. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.svelte +0 -37
  587. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.svelte.map +0 -1
  588. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.svelte +0 -50
  589. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.svelte.map +0 -1
  590. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.svelte +0 -41
  591. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.svelte.map +0 -1
  592. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.svelte +0 -25
  593. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.svelte.map +0 -1
  594. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.svelte +0 -148
  595. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.svelte.map +0 -1
  596. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.svelte +0 -15
  597. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.svelte.map +0 -1
  598. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte +0 -84
  599. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.svelte.map +0 -1
  600. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte +0 -18
  601. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.svelte.map +0 -1
  602. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte +0 -40
  603. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/ExtraObjects.svelte.map +0 -1
  604. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte +0 -61
  605. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.svelte.map +0 -1
@@ -1,359 +1,694 @@
1
- import Main from './Components/Main.svelte';
2
1
  import to from '../../shared-utils/to';
3
- import formatData from '../utils/formatData';
4
2
  import equal from '../../shared-utils/equal';
3
+ import Main from '../Components/Main';
4
+ import formatData from '../utils/formatData';
5
+ import { CAMERA_IMAGE } from '../Assets/camera';
6
+ import { omit } from '../../shared-utils/filter';
5
7
  import getPxmm from '../../shared-utils/getPxmm';
6
- import correctFiveState, { checkShowState } from './utils/correctFiveState';
8
+ import { FLOOR_PLAN_ATTACHED_TO } from '../constant';
9
+ import * as BasePlugin from '../../base/BasePluginWithData';
10
+ import correctFiveState, { checkShowState } from '../utils/correctFiveState';
7
11
  import changeModelCanvasOpacity from '../../shared-utils/changeModelCanvasOpacity';
8
- import { omit } from '../../shared-utils/filter';
9
- import { Subscribe } from '@realsee/five';
10
- import { FloorplanErrorType, FIVE_CAMERA_DEFAULT_FOV, SHOW_ANIME_DURATION } from './utils/constant';
11
- export const MODEL_FLOORPLAN_PLUGIN_NAME = 'modelFloorplanPlugin';
12
- export default class ModelFloorplanPluginController {
13
- name = MODEL_FLOORPLAN_PLUGIN_NAME;
14
- /** 用于绑定事件钩子 */
15
- hooks;
16
- /** 展示状态 */
17
- visible = false;
18
- /** 户型图大小 */
19
- size = { width: 0, height: 0 };
20
- app = undefined;
21
- pxmm = 0;
22
- five;
23
- panoIndex = 0;
24
- floorIndex = 0;
25
- configs = {};
26
- lastPanoramaLongitude = 0;
27
- selector;
28
- floorplanData;
29
- wrapper;
30
- container = document.createElement('div');
31
- showState;
32
- /** 记录上次 show 的参数,如果不一致,需要 reject 掉正在进行的 showPromise */
33
- ModelFloorplanPluginsShowOpts;
34
- showPromise;
35
- showRejection;
12
+ import { FloorplanErrorType, FIVE_CAMERA_DEFAULT_FOV, SHOW_ANIME_DURATION } from '../utils/constant';
13
+ /** 当前 five 的相机视角是否满足户型图自动隐藏条件
14
+ *
15
+ * @description 水平旋转角大于正负 5 度 || 俯仰角度大于 5 度
16
+ *
17
+ */
18
+ function shouldFloorplanHideWithPose(pose) {
19
+ const { latitude, longitude } = pose;
20
+ const latitudeHide = Math.abs(latitude - Math.PI / 2) > (5 * Math.PI) / 180;
21
+ const longitudeHide = longitude > 5 * (Math.PI / 180) && longitude < 355 * (Math.PI / 180);
22
+ return latitudeHide || longitudeHide;
23
+ }
24
+ /** 当前 five 的相机视角是否满足户型图自动展示隐藏条件
25
+ *
26
+ * @description 水平旋转角正负 30 度 && 俯仰角度小于 10 度
27
+ *
28
+ */
29
+ function shouldFloorplanShowWithPose(pose) {
30
+ const { latitude, longitude } = pose;
31
+ const latitudeVisible = Math.abs(latitude - Math.PI / 2) < (10 * Math.PI) / 180;
32
+ const longitudeVisible = longitude < 30 * (Math.PI / 180) || longitude > 330 * (Math.PI / 180);
33
+ return latitudeVisible && longitudeVisible;
34
+ }
35
+ export class Controller extends BasePlugin.Controller {
36
36
  constructor(five, params) {
37
- this.five = five;
38
- this.hooks = new Subscribe();
39
- this.selector = params.selector;
40
- this.configs = omit(params, ['selector']);
41
- this.showState = { longitude: 0, latitude: Math.PI / 2, fov: FIVE_CAMERA_DEFAULT_FOV / (params?.scale ?? 1) };
42
- // 设置 container 样式
43
- this.container.classList.add('floorplan-plugin');
44
- Object.assign(this.container.style, {
45
- position: 'absolute',
46
- left: '50%',
47
- top: '50%',
48
- transform: 'translate(-50%, -50%)',
49
- pointerEvents: 'none',
50
- zIndex: 10,
37
+ var _a;
38
+ super(five);
39
+ // =============== public properties =================
40
+ Object.defineProperty(this, "name", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: 'modelFloorplanPlugin'
45
+ });
46
+ Object.defineProperty(this, "state", {
47
+ enumerable: true,
48
+ configurable: true,
49
+ writable: true,
50
+ value: void 0
51
+ });
52
+ // =============== private properties =================
53
+ Object.defineProperty(this, "data", {
54
+ enumerable: true,
55
+ configurable: true,
56
+ writable: true,
57
+ value: void 0
58
+ });
59
+ /** 展示户型图时,需要正确的状态 */
60
+ Object.defineProperty(this, "showState", {
61
+ enumerable: true,
62
+ configurable: true,
63
+ writable: true,
64
+ value: void 0
65
+ });
66
+ /** show 动画的公共 Promise */
67
+ Object.defineProperty(this, "showPromise", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: void 0
72
+ });
73
+ Object.defineProperty(this, "app", {
74
+ enumerable: true,
75
+ configurable: true,
76
+ writable: true,
77
+ value: undefined
78
+ });
79
+ Object.defineProperty(this, "panoIndex", {
80
+ enumerable: true,
81
+ configurable: true,
82
+ writable: true,
83
+ value: 0
84
+ });
85
+ Object.defineProperty(this, "floorIndex", {
86
+ enumerable: true,
87
+ configurable: true,
88
+ writable: true,
89
+ value: 0
90
+ });
91
+ Object.defineProperty(this, "selector", {
92
+ enumerable: true,
93
+ configurable: true,
94
+ writable: true,
95
+ value: void 0
96
+ });
97
+ /** 公共 Promise 的 reject 方法 */
98
+ Object.defineProperty(this, "showRejection", {
99
+ enumerable: true,
100
+ configurable: true,
101
+ writable: true,
102
+ value: void 0
103
+ });
104
+ /** 户型图父容器 */
105
+ Object.defineProperty(this, "wrapper", {
106
+ enumerable: true,
107
+ configurable: true,
108
+ writable: true,
109
+ value: void 0
110
+ });
111
+ /** 户型图主容器 */
112
+ Object.defineProperty(this, "container", {
113
+ enumerable: true,
114
+ configurable: true,
115
+ writable: true,
116
+ value: document.createElement('div')
117
+ });
118
+ /** 展示户型图图前,Five 的 Panorama Longitude */
119
+ Object.defineProperty(this, "lastPanoramaLongitude", {
120
+ enumerable: true,
121
+ configurable: true,
122
+ writable: true,
123
+ value: 0
124
+ });
125
+ /** 户型图大小 */
126
+ Object.defineProperty(this, "size", {
127
+ enumerable: true,
128
+ configurable: true,
129
+ writable: true,
130
+ value: { width: 0, height: 0 }
131
+ });
132
+ /** 是否已经执行过事件监听 */
133
+ Object.defineProperty(this, "hasAddedEventListener", {
134
+ enumerable: true,
135
+ configurable: true,
136
+ writable: true,
137
+ value: false
138
+ });
139
+ /** 上一次隐藏是否是用户调用了 hide 导致的 */
140
+ Object.defineProperty(this, "isHiddenByHideFunc", {
141
+ enumerable: true,
142
+ configurable: true,
143
+ writable: true,
144
+ value: false
145
+ });
146
+ /** 销毁插件 */
147
+ Object.defineProperty(this, "dispose", {
148
+ enumerable: true,
149
+ configurable: true,
150
+ writable: true,
151
+ value: () => {
152
+ var _a, _b;
153
+ this.removeEventListener();
154
+ (_a = this.app) === null || _a === void 0 ? void 0 : _a.$destroy();
155
+ this.app = undefined;
156
+ (_b = this.container) === null || _b === void 0 ? void 0 : _b.remove();
157
+ this.data = undefined;
158
+ this.wrapper = undefined;
159
+ this.selector = undefined;
160
+ this.hooks.emit('dispose');
161
+ }
162
+ });
163
+ /** 展示户型图
164
+ * 1. show 函数大部分情况下需要耗时
165
+ * 2. 如果当前已经在展示中,将不会触发任何事件
166
+ * 3. 如果展示过程被中断,将抛出错误
167
+ * 4. 多次调用 show 方法,只会触发一次 showAnimationEnded 事件,但是展示结果会取决于最后一次调用参数
168
+ * 5. 如果多次调用 show 方法,参数与上次参数不一致时,上次 show Promise 会被 reject
169
+ * @param opts.floorIndex 楼层
170
+ * @param opts.modelOpacity 模型透明度
171
+ * @param opts.immediately 是否立即展示
172
+ * @param opts.isAutoShow 是否是自动展示
173
+ * @param opts.userAction 是否是用户行为
174
+ */
175
+ Object.defineProperty(this, "show", {
176
+ enumerable: true,
177
+ configurable: true,
178
+ writable: true,
179
+ value: async (options = {}) => {
180
+ if (!this.state.enabled)
181
+ return;
182
+ // 已经展示完成了,不做任何操作
183
+ if (!this.showPromise && this.state.visible)
184
+ return;
185
+ const userAction = options.userAction !== undefined ? options.userAction : true;
186
+ this.updateState({ visible: true }, userAction);
187
+ this._show(options);
188
+ }
189
+ });
190
+ /** 隐藏户型图 */
191
+ Object.defineProperty(this, "hide", {
192
+ enumerable: true,
193
+ configurable: true,
194
+ writable: true,
195
+ value: async (options = {}) => {
196
+ if (!this.state.enabled)
197
+ return;
198
+ this.isHiddenByHideFunc = true;
199
+ if (this.state.visible === false)
200
+ return;
201
+ this.updateState({ visible: false }, options.userAction || true);
202
+ this._hide(options);
203
+ }
204
+ });
205
+ /** 更新户型图大小 */
206
+ Object.defineProperty(this, "updateSize", {
207
+ enumerable: true,
208
+ configurable: true,
209
+ writable: true,
210
+ value: () => {
211
+ if (!this.data)
212
+ return;
213
+ if (!checkShowState(this.five, this.showState))
214
+ return;
215
+ if (!this.container || !this.wrapper)
216
+ return;
217
+ // 计算户型图展示大小
218
+ const { min, max } = this.data.bounding;
219
+ const width = max.x - min.x;
220
+ const height = max.y - min.y;
221
+ // 每毫米对应的 px 值
222
+ const options = this.state.config.attachedTo ? { attachedTo: this.state.config.attachedTo } : undefined;
223
+ const pxmm = getPxmm(this.five, this.wrapper, this.floorIndex, options);
224
+ const _width = Math.ceil(width * pxmm);
225
+ const _height = Math.ceil(height * pxmm);
226
+ if (this.size.width === _width && this.size.height === _height)
227
+ return;
228
+ this.container.style.width = _width + 'px';
229
+ this.container.style.height = _height + 'px';
230
+ this.size = { width: _width, height: _height };
231
+ }
232
+ });
233
+ Object.defineProperty(this, "_disable", {
234
+ enumerable: true,
235
+ configurable: true,
236
+ writable: true,
237
+ value: (options) => {
238
+ var _a, _b, _c;
239
+ const { userAction } = options;
240
+ this.hooks.emit('disable', { userAction });
241
+ // ===== 处理展示过程中 disable =====
242
+ (_a = this.showRejection) === null || _a === void 0 ? void 0 : _a.call(this, FloorplanErrorType.BreakOffByDisable);
243
+ this.showPromise = undefined;
244
+ (_b = this.app) === null || _b === void 0 ? void 0 : _b.$destroy();
245
+ this.app = undefined;
246
+ (_c = this.container) === null || _c === void 0 ? void 0 : _c.remove();
247
+ this.removeEventListener();
248
+ }
249
+ });
250
+ Object.defineProperty(this, "_enable", {
251
+ enumerable: true,
252
+ configurable: true,
253
+ writable: true,
254
+ value: (options) => {
255
+ const { userAction } = options;
256
+ this.addEventListener();
257
+ if (!this.wrapper)
258
+ return;
259
+ this.wrapper.append(this.container);
260
+ this.hooks.emit('enable', { userAction });
261
+ if (this.state.visible)
262
+ this._show({ userAction });
263
+ }
264
+ });
265
+ Object.defineProperty(this, "_show", {
266
+ enumerable: true,
267
+ configurable: true,
268
+ writable: true,
269
+ value: async (options) => {
270
+ var _a;
271
+ if (!this.state.enabled)
272
+ return;
273
+ if (!((_a = this.five.model) === null || _a === void 0 ? void 0 : _a.loaded))
274
+ throw new Error(FloorplanErrorType.ModelNotLoaded);
275
+ if (!this.data)
276
+ throw new Error(FloorplanErrorType.DataNotLoaded);
277
+ this.isHiddenByHideFunc = false;
278
+ // ===== 参数合并 =====
279
+ const baseShowOpts = {
280
+ floorIndex: this.floorIndex,
281
+ modelOpacity: this.state.config.modelOpacity,
282
+ immediately: false,
283
+ isAutoShow: false,
284
+ userAction: true,
285
+ };
286
+ const mergedOptions = Object.assign(Object.assign({}, baseShowOpts), options);
287
+ const getShowPromise = async () => {
288
+ this.hooks.emit('show', { userAction: mergedOptions.userAction, auto: mergedOptions.isAutoShow });
289
+ let hasRejected = false;
290
+ let externalErrorMsg;
291
+ this.showRejection = (errorMsg) => {
292
+ hasRejected = true;
293
+ externalErrorMsg = errorMsg;
294
+ };
295
+ const [correctError] = await to(correctFiveState(this.five, this.showState, mergedOptions.userAction));
296
+ if (correctError)
297
+ throw correctError;
298
+ // 异步结束要判断当前是不是被中断了
299
+ if (hasRejected)
300
+ throw externalErrorMsg ? new Error(externalErrorMsg) : new Error(FloorplanErrorType.UnknownError);
301
+ // 更新户型图大小
302
+ this.updateSize();
303
+ // 高亮当前楼层,有两个目的
304
+ // 1. 点击模型时,可以跳转到当前楼层的点位上
305
+ // 2. 当前楼层比较小时,户型图也比较小,如果展示全部楼层,会展示户型图外有一圈模型
306
+ this.floorIndex = mergedOptions.floorIndex;
307
+ this.five.model.show(this.floorIndex);
308
+ // 模型消失, 渲染户型图
309
+ const modelOpacity = mergedOptions.modelOpacity;
310
+ const renderDuration = mergedOptions.immediately ? 0 : SHOW_ANIME_DURATION;
311
+ changeModelCanvasOpacity(this.five, modelOpacity, renderDuration);
312
+ this.render(renderDuration);
313
+ };
314
+ this.showPromise = getShowPromise()
315
+ .then(() => {
316
+ this.hooks.emit('showAnimationEnded', {
317
+ auto: mergedOptions.isAutoShow,
318
+ userAction: mergedOptions.userAction,
319
+ });
320
+ })
321
+ .catch((error) => {
322
+ this.updateState({ visible: false }, mergedOptions.userAction);
323
+ // 自动展示的报错内部处理
324
+ if (mergedOptions.isAutoShow)
325
+ return;
326
+ // 非自动展示的报错继续向外抛出
327
+ if (error instanceof Error)
328
+ throw error;
329
+ })
330
+ .finally(() => {
331
+ this.showPromise = undefined;
332
+ this.showRejection = undefined;
333
+ });
334
+ return this.showPromise;
335
+ }
336
+ });
337
+ Object.defineProperty(this, "_hide", {
338
+ enumerable: true,
339
+ configurable: true,
340
+ writable: true,
341
+ value: (options) => {
342
+ var _a;
343
+ // ===== 处理展示过程中 hide =====
344
+ (_a = this.showRejection) === null || _a === void 0 ? void 0 : _a.call(this, FloorplanErrorType.BreakOffByHide);
345
+ this.showPromise = undefined;
346
+ // ===== 合并参数 =====
347
+ const baseOptions = {
348
+ userAction: true,
349
+ isAutoHide: false,
350
+ };
351
+ const mergedOptions = Object.assign(Object.assign({}, baseOptions), options);
352
+ changeModelCanvasOpacity(this.five, 1, 0);
353
+ this.hooks.emit('hide', { auto: mergedOptions.isAutoHide, userAction: mergedOptions.userAction });
354
+ this.render();
355
+ }
356
+ });
357
+ Object.defineProperty(this, "handleClick", {
358
+ enumerable: true,
359
+ configurable: true,
360
+ writable: true,
361
+ value: () => {
362
+ if (!this.state.visible)
363
+ return;
364
+ const preventDefault = this.hooks.emit('click');
365
+ if (preventDefault)
366
+ return false;
367
+ }
368
+ });
369
+ /** modelLoaded 之后自动执行 append container 操作 */
370
+ Object.defineProperty(this, "onFiveModelLoaded", {
371
+ enumerable: true,
372
+ configurable: true,
373
+ writable: true,
374
+ value: () => {
375
+ if (this.state.enabled === false)
376
+ return;
377
+ if (this.wrapper)
378
+ return;
379
+ if (!this.selector)
380
+ return;
381
+ const wrapper = this.selector instanceof Element ? this.selector : document.querySelector(this.selector);
382
+ if (!wrapper)
383
+ throw new Error('不正确的父容器选择器');
384
+ this.wrapper = wrapper;
385
+ wrapper.append(this.container);
386
+ }
387
+ });
388
+ /** 更改模型时,自动隐藏户型图 */
389
+ Object.defineProperty(this, "onFiveModeChange", {
390
+ enumerable: true,
391
+ configurable: true,
392
+ writable: true,
393
+ value: (mode) => {
394
+ // 目前 Five modeChange 事件没有暴露 userAction,先拿 false 苟着
395
+ if (mode !== this.showState.mode) {
396
+ this.updateState({ visible: false }, false);
397
+ this._hide({ userAction: false });
398
+ }
399
+ }
400
+ });
401
+ /** 惯性结束后,判断能否自动展示户型图 */
402
+ Object.defineProperty(this, "onFiveInteriaPan", {
403
+ enumerable: true,
404
+ configurable: true,
405
+ writable: true,
406
+ value: (_, isFinal) => {
407
+ if (!isFinal)
408
+ return;
409
+ if (this.state.config.autoShowEnable === false)
410
+ return;
411
+ // 如果用户调用 hide 方法手动隐藏户型图,则不允许自动展示
412
+ if (this.isHiddenByHideFunc)
413
+ return;
414
+ const fiveCurrentState = this.five.getCurrentState();
415
+ if (fiveCurrentState.mode !== 'Floorplan')
416
+ return;
417
+ if (this.state.visible)
418
+ return;
419
+ if (shouldFloorplanShowWithPose(fiveCurrentState)) {
420
+ this.updateState({ visible: true }, true);
421
+ this._show({ isAutoShow: true });
422
+ }
423
+ }
424
+ });
425
+ /** panoIndex 改变时,更新 floorIndex */
426
+ Object.defineProperty(this, "onFivePanoArrived", {
427
+ enumerable: true,
428
+ configurable: true,
429
+ writable: true,
430
+ value: (index) => {
431
+ var _a;
432
+ if (!((_a = this.five) === null || _a === void 0 ? void 0 : _a.work))
433
+ return;
434
+ this.panoIndex = index;
435
+ this.floorIndex = this.five.work.observers[index].floorIndex;
436
+ }
437
+ });
438
+ /** cameraUpdate 时判断户型图是否应该自动隐藏 */
439
+ Object.defineProperty(this, "onFiveCameraUpdate", {
440
+ enumerable: true,
441
+ configurable: true,
442
+ writable: true,
443
+ value: (_, userAction) => {
444
+ if (!this.state.visible)
445
+ return;
446
+ // 展示过程中不处理自动隐藏逻辑
447
+ if (this.showPromise)
448
+ return;
449
+ const fiveCurrentState = this.five.getCurrentState();
450
+ if (shouldFloorplanHideWithPose(fiveCurrentState)) {
451
+ this.updateState({ visible: false }, userAction);
452
+ this._hide({ userAction });
453
+ }
454
+ }
51
455
  });
456
+ /** 在户型图展示时阻止多指操作, 阻止鼠标放大 */
457
+ Object.defineProperty(this, "onFiveWantsGesture", {
458
+ enumerable: true,
459
+ configurable: true,
460
+ writable: true,
461
+ value: (type, pointers) => {
462
+ if (!this.state.visible)
463
+ return;
464
+ // 阻止多指操作
465
+ if (pointers.length > 1)
466
+ return false;
467
+ // 阻止鼠标滚轮行为
468
+ if (type === 'mouseWheel')
469
+ return false;
470
+ }
471
+ });
472
+ /** 户型图展示中,转动三维模型,结束时应该自动修复模型状态 */
473
+ Object.defineProperty(this, "onFiveWantsPanGesture", {
474
+ enumerable: true,
475
+ configurable: true,
476
+ writable: true,
477
+ value: (_, isFinal) => {
478
+ if (this.five.getCurrentState().mode !== 'Floorplan')
479
+ return;
480
+ if (this.state.config.autoShowEnable === false)
481
+ return;
482
+ if (isFinal && this.state.visible) {
483
+ this.five.updateCamera(this.showState, 0);
484
+ // 禁用掉 isFinal 的 panGesture 行为
485
+ // 因为 panGesture 中包含对相机的处理,会跟回调事件中的处理逻辑冲突
486
+ // 此行为也会禁用 pan 结束后的惯性处理
487
+ return false;
488
+ }
489
+ }
490
+ });
491
+ /** 阻止点击分间走点 */
492
+ Object.defineProperty(this, "onFiveWantsTapGesture", {
493
+ enumerable: true,
494
+ configurable: true,
495
+ writable: true,
496
+ value: () => this.handleClick()
497
+ });
498
+ /** 从 Panorama 切换到其他模态时,记录当前的相机水平视角 */
499
+ Object.defineProperty(this, "onFiveWantsChangeMode", {
500
+ enumerable: true,
501
+ configurable: true,
502
+ writable: true,
503
+ value: (mode, prevMode) => {
504
+ if (prevMode === 'Panorama' && mode === 'Floorplan') {
505
+ this.lastPanoramaLongitude = this.five.getCurrentState().longitude;
506
+ }
507
+ // if (mode !== 'Floorplan') this.hide()
508
+ }
509
+ });
510
+ /** 模型楼层高亮改变时,自动进行楼层切换 */
511
+ Object.defineProperty(this, "onModelShownFloorChange", {
512
+ enumerable: true,
513
+ configurable: true,
514
+ writable: true,
515
+ value: (shownFloor) => {
516
+ if (this.floorIndex === shownFloor)
517
+ return;
518
+ if (shownFloor === null) {
519
+ const panoIndex = this.five.getCurrentState().panoIndex;
520
+ this.floorIndex = this.five.work.observers[panoIndex].floorIndex;
521
+ return;
522
+ }
523
+ this.floorIndex = shownFloor;
524
+ this.updateSize();
525
+ this.render();
526
+ }
527
+ });
528
+ if (params === null || params === void 0 ? void 0 : params.selector) {
529
+ this.selector = params.selector;
530
+ console.warn('不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法');
531
+ }
532
+ // =============== init Show State ===============
533
+ this.showState = {
534
+ mode: 'Floorplan',
535
+ longitude: 0,
536
+ latitude: Math.PI / 2,
537
+ fov: FIVE_CAMERA_DEFAULT_FOV / ((_a = params === null || params === void 0 ? void 0 : params.scale) !== null && _a !== void 0 ? _a : 1),
538
+ };
539
+ // =============== init State ===============
540
+ const baseConfig = {
541
+ northDesc: '北',
542
+ modelOpacity: 1,
543
+ hoverEnable: true,
544
+ compassEnable: true,
545
+ autoShowEnable: true,
546
+ ruleLabelsEnable: true,
547
+ roomLabelsEnable: true,
548
+ cameraImageUrl: CAMERA_IMAGE,
549
+ attachedTo: FLOOR_PLAN_ATTACHED_TO.BOUNDING_CENTER,
550
+ getLabelElement: undefined,
551
+ adaptiveRoomLabelVisibleEnable: true,
552
+ };
553
+ const paramsConfig = params ? omit(params, ['selector', 'scale']) : {};
554
+ const config = Object.assign(Object.assign({}, baseConfig), paramsConfig);
555
+ this.state = {
556
+ enabled: true,
557
+ visible: false,
558
+ config,
559
+ };
560
+ // =============== init Container ===============
561
+ this.initContainer();
562
+ // =============== init Listener ===============
563
+ // 注意插件声明周期内只监听一次的事件不放在 addEventListener 里面
52
564
  // 如果初始化的时候模型已经加载完毕了,就不用再等 modelLoaded
53
- this.five.model.loaded ? this.handleModelLoaded() : five.once('modelLoaded', this.handleModelLoaded);
565
+ five.model.loaded ? this.onFiveModelLoaded() : five.once('modelLoaded', this.onFiveModelLoaded);
54
566
  five.once('dispose', this.dispose);
55
- five.on('modeChange', this.handleModeChange);
56
- five.on('panGesture', this.handlePanGesture);
57
- five.on('panoArrived', this.handlePanoArrived);
58
- five.on('wantsChangeMode', this.handleWantsChangeMode);
59
- five.on('wantsInteriaPan', this.handleWantsInteriaPan);
60
- five.on('modelShownFloorChange', this.onModelShownFloorChange);
567
+ this.addEventListener();
61
568
  }
62
- dispose = () => {
63
- const five = this.five;
64
- this.hide();
65
- this.app?.$destroy();
66
- this.container?.remove();
67
- five.off('modelLoaded', this.handleModelLoaded);
68
- five.off('modeChange', this.handleModeChange);
69
- five.off('panGesture', this.handlePanGesture);
70
- five.off('panoArrived', this.handlePanoArrived);
71
- five.off('wantsChangeMode', this.handleWantsChangeMode);
72
- five.off('wantsInteriaPan', this.handleWantsInteriaPan);
73
- five.off('wantsTapGesture', this.handleWantsTapGesture);
74
- five.off('modelShownFloorChange', this.onModelShownFloorChange);
75
- };
76
- /** 加载户型图数据 */
77
- async load(data) {
78
- const copyData = JSON.parse(JSON.stringify(data));
79
- this.floorplanData = await formatData(copyData);
569
+ async load(serverData, state, userAction = true) {
570
+ function isPluginServerData(serverData) {
571
+ return Object.prototype.hasOwnProperty.apply(serverData, ['version']);
572
+ }
573
+ const _data = serverData;
574
+ if (_data && !_data.version)
575
+ console.warn('传入 serverData.data 的方式后续可能不再支持,请把 serverData 整体传入 load 函数');
576
+ const copyData = JSON.parse(JSON.stringify(serverData));
577
+ const _serverData = isPluginServerData(copyData) ? copyData.data : copyData;
578
+ const prevData = this.data;
579
+ this.data = await formatData(_serverData);
580
+ this.hooks.emit('dataLoaded', this.data);
581
+ this.hooks.emit('dataChange', this.data, prevData);
582
+ if (state)
583
+ this.updateState(state, userAction);
80
584
  this.render();
81
585
  }
82
586
  /** 把插件的渲染DOM插入到对应的容器中去 */
83
587
  appendTo(wrapper) {
84
588
  this.wrapper = wrapper;
589
+ // 插件 disabled 时,只是不执行副作用,但是 wrapper 还是要赋值的,不然 enable 的时候找不到父容器
590
+ if (!this.state.enabled)
591
+ return;
85
592
  wrapper.appendChild(this.container);
593
+ this.render();
86
594
  return this;
87
595
  }
88
- /** 更新户型图大小 */
89
- updateSize = () => {
90
- if (!this.floorplanData)
91
- return;
92
- if (!checkShowState(this.five, this.showState))
596
+ /** 启用插件 */
597
+ enable(options = {}) {
598
+ if (this.state.enabled)
93
599
  return;
94
- if (!this.container || !this.wrapper)
95
- return;
96
- // 计算户型图展示大小
97
- const { min, max } = this.floorplanData.bounding;
98
- const width = max.x - min.x;
99
- const height = max.y - min.y;
100
- // 每毫米对应的 px 值
101
- const options = this.configs.attachedTo ? { attachedTo: this.configs.attachedTo } : undefined;
102
- const pxmm = getPxmm(this.five, this.wrapper, this.floorIndex, options);
103
- const _width = Math.ceil(width * pxmm);
104
- const _height = Math.ceil(height * pxmm);
105
- if (this.size.width === _width && this.size.height === _height)
106
- return;
107
- this.pxmm = pxmm;
108
- this.size = { width: _width, height: _height };
109
- this.container.style.width = _width + 'px';
110
- this.container.style.height = _height + 'px';
111
- };
112
- /** 展示户型图
113
- * 1. show 函数大部分情况下需要耗时
114
- * 2. 如果当前已经在展示中,将不会触发任何事件
115
- * 3. 如果展示过程被中断,将抛出错误
116
- * 4. 多次调用 show 方法,只会触发一次 showAnimationEnded 事件,但是展示结果会取决于最后一次调用参数
117
- * 5. 如果多次调用 show 方法,参数与上次参数不一致时,上次 show Promise 会被 reject
118
- * @param opts.floorIndex 楼层
119
- * @param opts.modelOpacity 模型透明度
120
- * @param opts.immediately 是否立即展示
121
- * @param opts.isAutoShow 是否是自动展示
122
- */
123
- show = async (opts) => {
124
- // 已经在展示中了
125
- if (!this.showPromise && this.visible)
126
- return true;
127
- if (!this.five.model?.loaded)
128
- throw new Error(FloorplanErrorType.ModelNotLoaded);
129
- if (!this.floorplanData)
130
- throw new Error(FloorplanErrorType.DataNotLoaded);
131
- this.visible = true;
132
- if (this.showPromise) {
133
- const sameWithLastOpts = equal(opts, this.ModelFloorplanPluginsShowOpts, { deep: false });
134
- if (!!this.showPromise && sameWithLastOpts)
135
- return this.showPromise;
136
- if (!!this.showPromise && !sameWithLastOpts)
137
- this.showRejection?.(FloorplanErrorType.DifferentShowParams);
138
- }
139
- this.ModelFloorplanPluginsShowOpts = opts;
140
- const getShowPromise = async () => {
141
- let hasRejected = false;
142
- let externalErrorMsg;
143
- this.showRejection = (errorMsg) => {
144
- hasRejected = true;
145
- externalErrorMsg = errorMsg;
146
- };
147
- const [correctError] = await to(correctFiveState(this.five, this.showState, opts?.userAction));
148
- if (correctError)
149
- throw correctError;
150
- // 异步结束要判断当前是不是被中断了,是不是调用了隐藏
151
- if (hasRejected)
152
- throw externalErrorMsg ? new Error(externalErrorMsg) : new Error(FloorplanErrorType.UnknownError);
153
- if (!this.visible)
154
- throw new Error(FloorplanErrorType.UnknownError);
155
- // 更新户型图状态
156
- this.visible = true;
157
- // 更新户型图大小
158
- this.updateSize();
159
- // 高亮当前楼层,有两个目的
160
- // 1. 点击模型时,可以跳转到当前楼层的点位上
161
- // 2. 当前楼层比较小时,户型图也比较小,如果展示全部楼层,会展示户型图外有一圈模型
162
- if (opts?.floorIndex)
163
- this.floorIndex = opts.floorIndex;
164
- this.five.model.show(this.floorIndex);
165
- // 模型消失, 渲染户型图
166
- const modelOpacity = opts?.modelOpacity ?? this.configs.modelOpacity ?? 1;
167
- const renderDuration = opts?.immediately ? 0 : SHOW_ANIME_DURATION;
168
- changeModelCanvasOpacity(this.five, modelOpacity, renderDuration);
169
- this.render(renderDuration);
170
- // 展示之后的事件监听
171
- this.five.on('wantsGesture', this.handleWantsGesture);
172
- this.five.on('wantsTapGesture', this.handleWantsTapGesture);
173
- return true;
174
- };
175
- const showPromise = getShowPromise()
176
- .then(() => {
177
- this.hooks.emit('showAnimationEnded', { auto: !!opts?.isAutoShow, userAction: opts?.userAction ?? true });
178
- return true;
179
- })
180
- .catch((error) => {
181
- // 自动展示的报错内部处理
182
- if (opts?.isAutoShow)
183
- return false;
184
- if (!(error instanceof Error))
185
- return false;
186
- // 非自动展示的报错继续向外抛出
187
- throw error;
188
- })
189
- .finally(() => {
190
- this.showPromise = undefined;
191
- this.showRejection = undefined;
192
- });
193
- this.showPromise = showPromise;
194
- return showPromise;
195
- };
196
- /** 隐藏户型图 */
197
- hide = (options) => {
198
- if (this.size.width === 0)
199
- return true;
200
- if (this.visible === false)
201
- return true;
202
- const isAutoHide = !!options?.isAutoHide;
203
- this.five.off('wantsGesture', this.handleWantsGesture);
204
- this.five.off('wantsTapGesture', this.handleWantsTapGesture);
205
- this.visible = false;
206
- this.showRejection?.(FloorplanErrorType.BreakOffByHide);
207
- changeModelCanvasOpacity(this.five, 1, 0);
208
- this.render();
209
- this.hooks.emit('hide', { auto: isAutoHide, userAction: options?.userAction ?? true });
210
- return true;
211
- };
212
- /** 更改户型图楼层 */
213
- changeFloor(floorIndex) {
214
- this.five.model.show(floorIndex);
215
- this.floorIndex = floorIndex;
216
- this.render();
600
+ const userAction = options.userAction !== undefined ? options.userAction : true;
601
+ this.updateState({ enabled: true }, options.userAction || userAction);
602
+ this._enable({ userAction });
217
603
  }
218
- changeConfigs(params) {
219
- Object.assign(this.configs, params);
220
- if (!this.container)
604
+ /** 禁用插件 */
605
+ disable(options = {}) {
606
+ if (!this.state.enabled)
221
607
  return;
222
- this.render();
608
+ const userAction = options.userAction !== undefined ? options.userAction : true;
609
+ this.updateState({ enabled: false }, options.userAction || userAction);
610
+ this._disable({ userAction });
223
611
  }
224
- /** 模型楼层高亮改变时,自动进行楼层切换 */
225
- onModelShownFloorChange = (shownFloor) => {
226
- if (shownFloor === null)
227
- return;
228
- this.floorIndex = shownFloor;
229
- this.updateSize();
230
- this.render();
231
- };
232
- handleModelLoaded = () => {
233
- if (this.wrapper)
234
- return;
235
- if (!this.selector)
236
- return;
237
- const wrapper = this.selector instanceof Element ? this.selector : document.querySelector(this.selector);
238
- if (!wrapper)
239
- throw new Error('不正确的父容器选择器');
240
- this.wrapper = wrapper;
241
- wrapper.append(this.container);
242
- };
243
- handleClick = () => {
244
- if (!this.visible)
245
- return;
246
- const prevented = this.hooks.emit('click');
247
- if (prevented)
248
- return false;
249
- };
250
- handleWantsTapGesture = () => this.handleClick();
251
- /** 从 Panorama 切换到其他模态时,记录当前的相机水平视角 */
252
- handleWantsChangeMode = (mode) => {
253
- if (mode !== 'Panorama') {
254
- this.lastPanoramaLongitude = this.five.getCurrentState().longitude;
255
- }
256
- if (mode !== 'Floorplan')
257
- this.hide();
258
- };
259
- /** 监听模型态变化,只有在模型态才进行手势动作监听 */
260
- handleModeChange = (mode) => {
261
- if (mode === 'Floorplan') {
262
- this.five.on('panGesture', this.handlePanGesture);
612
+ /** 更改插件 State */
613
+ setState(state, options = {}) {
614
+ const prevState = this.state;
615
+ const userAction = options.userAction !== undefined ? options.userAction : true;
616
+ this.updateState(state, userAction);
617
+ if (state.enabled !== undefined && prevState.enabled !== state.enabled) {
618
+ state.enabled ? this._enable({ userAction }) : this._disable({ userAction });
263
619
  }
264
- else {
265
- this.hide();
266
- this.five.off('panGesture', this.handlePanGesture);
620
+ if (state.visible !== undefined && prevState.visible !== state.visible) {
621
+ const options = { userAction };
622
+ state.visible ? this._show(options) : this._hide(options);
267
623
  }
268
- };
269
- /** panoIndex 改变时,更新 floorIndex */
270
- handlePanoArrived = (index) => {
271
- if (!this.five?.work)
272
- return;
273
- this.panoIndex = index;
274
- this.floorIndex = this.five.work.observers[index].floorIndex;
275
- };
276
- /** 当户型图正在展示中的时候禁用惯性 */
277
- handleWantsInteriaPan = () => {
278
- if (this.visible)
279
- return false;
280
- };
281
- /** 在户型图展示时阻止多指操作, 阻止鼠标放大 */
282
- handleWantsGesture = (type, pointers) => {
283
- if (!this.visible)
624
+ }
625
+ async formatData(serverData) {
626
+ return await formatData(serverData.data);
627
+ }
628
+ updateState(state, userAction) {
629
+ const prevState = this.state;
630
+ this.state = Object.assign(Object.assign({}, this.state), state);
631
+ if (equal(this.state, prevState, { deep: true }))
284
632
  return;
285
- if (pointers.length > 1)
286
- return false;
287
- if (type === 'mouseWheel')
288
- return false;
289
- };
290
- /** 监听三维模型滑动
291
- * 1. 在三维模型转动结束时,如果达到设置的阈值,会自动切换到户型图
292
- * 2. 如何户型图已经展示,滑动时关闭户型图
633
+ this.hooks.emit('stateChange', { state: this.state, prevState, userAction });
634
+ }
635
+ /** 如果用户是通过 selector 设置父容器,需要在 modelLoaded 之后把 container 自动放到父容器里
636
+ *
637
+ * - TODO: 等 selector 功能下掉之后删除这个逻辑
293
638
  */
294
- handlePanGesture = async ({ latitude, longitude }, isFinal) => {
295
- if (this.configs.autoShowEnable === false)
296
- return;
297
- // 如果操作结束后,户型图还在展示中,初始化模型状态
298
- if (isFinal && this.visible)
299
- return this.five.setState(this.showState, true);
300
- // 满足消失的条件:
301
- // 水平旋转角大于正负 5 度 || 俯仰角度大于 5 度
302
- const latitudeHide = Math.abs(latitude - Math.PI / 2) > (5 * Math.PI) / 180;
303
- const longitudeHide = longitude > 5 * (Math.PI / 180) && longitude < 355 * (Math.PI / 180);
304
- const canHide = latitudeHide || longitudeHide;
305
- if (this.visible && canHide)
306
- return this.hide({ isAutoHide: true });
307
- if (this.five.camera.fov / FIVE_CAMERA_DEFAULT_FOV < 0.8)
639
+ initContainer() {
640
+ this.container.classList.add('floorplan-plugin');
641
+ Object.assign(this.container.style, {
642
+ position: 'absolute',
643
+ left: '50%',
644
+ top: '50%',
645
+ transform: 'translate(-50%, -50%)',
646
+ zIndex: 10,
647
+ pointerEvents: 'none',
648
+ });
649
+ this.five.addExtraElement(this.container);
650
+ }
651
+ addEventListener() {
652
+ if (!this.state.enabled)
308
653
  return;
309
- // 户型图展示条件:
310
- // 水平旋转角正负 30 度 && 俯仰角度小于 10 度
311
- const latitudeVisible = Math.abs(latitude - Math.PI / 2) < (10 * Math.PI) / 180;
312
- const longitudeVisible = longitude < 30 * (Math.PI / 180) || longitude > 330 * (Math.PI / 180);
313
- if (isFinal && !this.visible && latitudeVisible && longitudeVisible) {
314
- // 当手指离开时需要等惯性结束之后在进行判断
315
- const handleInteriaPan = async (any, isFinal) => {
316
- if (!isFinal)
317
- return;
318
- this.five.off('interiaPan', handleInteriaPan);
319
- await this.show({ isAutoShow: true });
320
- };
321
- this.five.on('interiaPan', handleInteriaPan);
654
+ if (this.hasAddedEventListener)
322
655
  return;
323
- }
324
- };
656
+ const five = this.five;
657
+ five.on('modeChange', this.onFiveModeChange);
658
+ five.on('interiaPan', this.onFiveInteriaPan);
659
+ five.on('panoArrived', this.onFivePanoArrived);
660
+ five.on('cameraUpdate', this.onFiveCameraUpdate);
661
+ five.on('wantsGesture', this.onFiveWantsGesture);
662
+ five.on('wantsPanGesture', this.onFiveWantsPanGesture);
663
+ five.on('wantsTapGesture', this.onFiveWantsTapGesture);
664
+ five.on('wantsChangeMode', this.onFiveWantsChangeMode);
665
+ five.on('modelShownFloorChange', this.onModelShownFloorChange);
666
+ }
667
+ removeEventListener() {
668
+ const five = this.five;
669
+ this.hasAddedEventListener = false;
670
+ // 注意这里并没有消除 dispose 的监听
671
+ five.off('modelLoaded', this.onFiveModelLoaded);
672
+ five.off('modeChange', this.onFiveModeChange);
673
+ five.off('interiaPan', this.onFiveInteriaPan);
674
+ five.off('panoArrived', this.onFivePanoArrived);
675
+ five.off('cameraUpdate', this.onFiveCameraUpdate);
676
+ five.off('wantsGesture', this.onFiveWantsGesture);
677
+ five.off('wantsPanGesture', this.onFiveWantsPanGesture);
678
+ five.off('wantsTapGesture', this.onFiveWantsTapGesture);
679
+ five.off('wantsChangeMode', this.onFiveWantsChangeMode);
680
+ five.off('modelShownFloorChange', this.onModelShownFloorChange);
681
+ }
325
682
  render(duration) {
326
- if (!this.container || !this.floorplanData)
683
+ if (!this.state.enabled)
684
+ return;
685
+ if (!this.container || !this.data)
327
686
  return;
328
687
  if (this.size.width === 0)
329
688
  return;
330
- const { hoverEnable, cameraImageUrl, getLabelElement, roomLabelsEnable, compassEnable, ruleLabelsEnable } = this.configs;
331
- const props = {
332
- five: this.five,
333
- pxmm: this.pxmm,
334
- cameraImageUrl,
335
- visible: this.visible,
336
- duration: duration ?? 0,
337
- panoIndex: this.panoIndex,
338
- floorIndex: this.floorIndex,
339
- floorplanData: this.floorplanData,
340
- hoverEnable: hoverEnable ?? false,
341
- compassEnable: compassEnable ?? true,
342
- ruleLabelsEnable: ruleLabelsEnable ?? true,
343
- roomLabelsEnable: roomLabelsEnable ?? true,
344
- lastPanoramaLongitude: this.lastPanoramaLongitude,
345
- getLabelElement,
346
- onRoomHeightClick: this.handleClick,
347
- };
348
- if (!this.app) {
349
- this.app = new Main({
350
- target: this.container,
351
- intro: true,
352
- props,
353
- });
354
- }
355
- else {
356
- this.app.$set(props);
357
- }
689
+ const props = Object.assign(Object.assign({}, this.state.config), { visible: this.state.visible, duration: duration !== null && duration !== void 0 ? duration : 0, panoIndex: this.panoIndex, floorIndex: this.floorIndex, floorplanData: this.data, lastPanoramaLongitude: this.lastPanoramaLongitude });
690
+ if (this.app)
691
+ return this.app.$set(props);
692
+ this.app = new Main({ target: this.container, intro: true, props });
358
693
  }
359
694
  }