@realsee/dnalogel 2.16.0-alpha.2 → 2.16.0-alpha.3

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 (261) hide show
  1. package/dist/index.cjs.js +3 -3
  2. package/dist/index.js +7 -3
  3. package/dist/index.umd.js +3 -3
  4. package/docs/classes/CSS3DRender.html +4 -4
  5. package/docs/classes/CruisePluginController.html +4 -4
  6. package/docs/classes/Magnifier.html +4 -4
  7. package/docs/classes/ModelRoomLabelController.html +4 -4
  8. package/docs/classes/Object3DHelperController.html +4 -4
  9. package/docs/classes/PaintBrush.html +4 -4
  10. package/docs/classes/PanoMeasurePluginLine.html +4 -4
  11. package/docs/classes/PanoMeasurePluginModel.html +4 -4
  12. package/docs/classes/PanoMeasurePluginPoint.html +4 -4
  13. package/docs/classes/PanoMeasurePluginPolyline.html +4 -4
  14. package/docs/classes/PanoTagPluginController.html +4 -4
  15. package/docs/classes/Util.BetterTween.html +4 -4
  16. package/docs/classes/Util.FivePointSelector.html +4 -4
  17. package/docs/classes/Util.Interval.html +4 -4
  18. package/docs/classes/Util.Magnifier.html +4 -4
  19. package/docs/classes/Util.PointDomHelper.html +4 -4
  20. package/docs/classes/Util.PointHelper.html +4 -4
  21. package/docs/classes/Util.Rectangle.html +4 -4
  22. package/docs/enums/CameraMovementEffect.html +4 -4
  23. package/docs/enums/ContentType.html +4 -4
  24. package/docs/enums/DIRECTION.html +4 -4
  25. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +4 -4
  26. package/docs/enums/DimensionType.html +4 -4
  27. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +4 -4
  28. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +4 -4
  29. package/docs/enums/PaintBrushTypeEnum.html +4 -4
  30. package/docs/enums/Rotation.html +4 -4
  31. package/docs/functions/CSS3DRenderPlugin.html +4 -4
  32. package/docs/functions/CameraMovementPlugin.html +4 -4
  33. package/docs/functions/CruisePlugin.html +4 -4
  34. package/docs/functions/GuideLinePlugin.html +4 -4
  35. package/docs/functions/ItemLabelPlugin.html +4 -4
  36. package/docs/functions/MapviewFloorplanPlugin.html +4 -4
  37. package/docs/functions/ModelChassisCompassPlugin.html +4 -4
  38. package/docs/functions/ModelEntryDoorGuidePlugin.html +4 -4
  39. package/docs/functions/ModelFloorplanPlugin.html +4 -4
  40. package/docs/functions/ModelItemLabelPlugin.html +4 -4
  41. package/docs/functions/ModelRoomLabelPlugin.html +4 -4
  42. package/docs/functions/ModelTVVideoPlugin.html +4 -4
  43. package/docs/functions/ModelViewPlugin.html +4 -4
  44. package/docs/functions/Object3DHelperPlugin.html +4 -4
  45. package/docs/functions/PanoCompassPlugin.html +4 -4
  46. package/docs/functions/PanoCursorRaycasterPlugin.html +4 -4
  47. package/docs/functions/PanoDoorLabelPlugin.html +4 -4
  48. package/docs/functions/PanoFloorplanRadarPlugin.html +4 -4
  49. package/docs/functions/PanoMeasurePlugin.html +4 -4
  50. package/docs/functions/PanoRulerPlugin.html +4 -4
  51. package/docs/functions/PanoRulerProPlugin.html +4 -4
  52. package/docs/functions/PanoSpatialTagPlugin.html +4 -4
  53. package/docs/functions/PanoTagPlugin.html +4 -4
  54. package/docs/functions/PanoVideoPlugin.html +4 -4
  55. package/docs/functions/TopviewFloorplanPlugin.html +4 -4
  56. package/docs/functions/Util.getCoordsFromClient.html +4 -4
  57. package/docs/functions/Util.getCoordsFromElement.html +4 -4
  58. package/docs/functions/Util.getFrameTime.html +4 -4
  59. package/docs/functions/Util.getIntersectFromRelativePosition.html +4 -4
  60. package/docs/functions/Util.getRaycasterFromFivePointer.html +4 -4
  61. package/docs/functions/Util.isNil.html +4 -4
  62. package/docs/functions/Util.nextFrame.html +4 -4
  63. package/docs/functions/Util.notNil.html +4 -4
  64. package/docs/functions/Util.requestAnimationFrameInterval.html +4 -4
  65. package/docs/functions/Util.tweenProgress.html +4 -4
  66. package/docs/functions/pluginFlag.html +4 -4
  67. package/docs/index.html +4 -4
  68. package/docs/interfaces/AddTagConfig.html +4 -4
  69. package/docs/interfaces/CSS3DRenderPluginEventMap.html +4 -4
  70. package/docs/interfaces/CSS3DRenderPluginState.html +4 -4
  71. package/docs/interfaces/CameraMovementPluginExportType.html +4 -4
  72. package/docs/interfaces/EventMap.html +4 -4
  73. package/docs/interfaces/FloorplanBounding.html +4 -4
  74. package/docs/interfaces/FloorplanData.html +4 -4
  75. package/docs/interfaces/FloorplanEntrance.html +4 -4
  76. package/docs/interfaces/FloorplanExtraObject.html +4 -4
  77. package/docs/interfaces/FloorplanExtraObject3D.html +4 -4
  78. package/docs/interfaces/FloorplanFloorData.html +4 -4
  79. package/docs/interfaces/FloorplanImagePosition.html +4 -4
  80. package/docs/interfaces/FloorplanObserver.html +4 -4
  81. package/docs/interfaces/FloorplanOutlineItem.html +4 -4
  82. package/docs/interfaces/FloorplanPosition.html +4 -4
  83. package/docs/interfaces/FloorplanRoomItem.html +4 -4
  84. package/docs/interfaces/FloorplanRoomLabelItem.html +4 -4
  85. package/docs/interfaces/FloorplanServerBounding.html +4 -4
  86. package/docs/interfaces/FloorplanServerComputedData.html +4 -4
  87. package/docs/interfaces/FloorplanServerData.html +4 -4
  88. package/docs/interfaces/FloorplanServerDoorItem.html +4 -4
  89. package/docs/interfaces/FloorplanServerDoorPosition.html +4 -4
  90. package/docs/interfaces/FloorplanServerEntrance.html +4 -4
  91. package/docs/interfaces/FloorplanServerFloorData.html +4 -4
  92. package/docs/interfaces/FloorplanServerImagePosition.html +4 -4
  93. package/docs/interfaces/FloorplanServerObserver.html +4 -4
  94. package/docs/interfaces/FloorplanServerOutlineItem.html +4 -4
  95. package/docs/interfaces/FloorplanServerPosition.html +4 -4
  96. package/docs/interfaces/FloorplanServerRoomItem.html +4 -4
  97. package/docs/interfaces/FloorplanServerRoomLabelItem.html +4 -4
  98. package/docs/interfaces/HelperOffset.html +4 -4
  99. package/docs/interfaces/ImagePlaneGroup.html +4 -4
  100. package/docs/interfaces/ItemLabelPluginData.html +4 -4
  101. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +4 -4
  102. package/docs/interfaces/ItemLabelPluginParametersType.html +4 -4
  103. package/docs/interfaces/MinMax.html +4 -4
  104. package/docs/interfaces/ModelChassisCompassPluginData.html +4 -4
  105. package/docs/interfaces/ModelChassisCompassPluginExportType.html +4 -4
  106. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +4 -4
  107. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +4 -4
  108. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +4 -4
  109. package/docs/interfaces/ModelItemLabelPluginData.html +4 -4
  110. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +4 -4
  111. package/docs/interfaces/ModelItemLabelPluginParametersType.html +4 -4
  112. package/docs/interfaces/ModelRoomLabelPluginData.html +4 -4
  113. package/docs/interfaces/ModelTVVideoPluginData.html +4 -4
  114. package/docs/interfaces/ModelTVVideoPluginExportType.html +4 -4
  115. package/docs/interfaces/ModelTVVideoPluginParameterType.html +4 -4
  116. package/docs/interfaces/ModelViewPluginExportType.html +4 -4
  117. package/docs/interfaces/Object3DHelperState.html +4 -4
  118. package/docs/interfaces/ObjectHelperControllers.html +4 -4
  119. package/docs/interfaces/PaintBrushAction.html +4 -4
  120. package/docs/interfaces/PaintBrushConfigs.html +4 -4
  121. package/docs/interfaces/PaintBrushState.html +4 -4
  122. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +4 -4
  123. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +4 -4
  124. package/docs/interfaces/PanoMeasureParameterType.html +4 -4
  125. package/docs/interfaces/PanoMeasurePluginLineJson.html +4 -4
  126. package/docs/interfaces/PanoMeasurePluginOpenParameter.html +4 -4
  127. package/docs/interfaces/PanoMeasurePluginPointJson.html +4 -4
  128. package/docs/interfaces/PanoMeasurePluginPolylineJson.html +4 -4
  129. package/docs/interfaces/PanoRulerPluginExportType.html +4 -4
  130. package/docs/interfaces/PanoRulerPluginOptions.html +4 -4
  131. package/docs/interfaces/PanoRulerPluginParameterType.html +4 -4
  132. package/docs/interfaces/PanoRulerProPluginExportType.html +4 -4
  133. package/docs/interfaces/PanoRulerProPluginOptions.html +4 -4
  134. package/docs/interfaces/PanoRulerProPluginParameterType.html +4 -4
  135. package/docs/interfaces/PanoRulerProPluginState.html +4 -4
  136. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +4 -4
  137. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +4 -4
  138. package/docs/interfaces/PanoSpatialTagPluginData.html +4 -4
  139. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +4 -4
  140. package/docs/interfaces/PanoSpatialTagPluginExportType.html +4 -4
  141. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +4 -4
  142. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +4 -4
  143. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +4 -4
  144. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +4 -4
  145. package/docs/interfaces/PanoVideoPluginType.LoadParams.html +4 -4
  146. package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +4 -4
  147. package/docs/interfaces/PanoVideoPluginType.PluginData.html +4 -4
  148. package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +4 -4
  149. package/docs/interfaces/PanoVideoPluginType.PluginState.html +4 -4
  150. package/docs/interfaces/PanoVideoPluginType.VideoItem.html +4 -4
  151. package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +4 -4
  152. package/docs/interfaces/Point.html +4 -4
  153. package/docs/interfaces/Room.html +4 -4
  154. package/docs/interfaces/RoomInfo.html +4 -4
  155. package/docs/interfaces/RoomLabel.html +4 -4
  156. package/docs/interfaces/RoomRules.html +4 -4
  157. package/docs/interfaces/Rooms.html +4 -4
  158. package/docs/interfaces/Scissor.html +4 -4
  159. package/docs/interfaces/State.html +4 -4
  160. package/docs/interfaces/TagCacheInterface.html +4 -4
  161. package/docs/interfaces/TagConfig.html +4 -4
  162. package/docs/interfaces/TagGLTFObjectGroup.html +4 -4
  163. package/docs/interfaces/TagIconUrl.html +4 -4
  164. package/docs/interfaces/TagObjectGroup.html +4 -4
  165. package/docs/interfaces/TagStyle.html +4 -4
  166. package/docs/interfaces/Tags.html +4 -4
  167. package/docs/interfaces/TemporaryState.html +4 -4
  168. package/docs/interfaces/Util.MagnifierParameter.html +4 -4
  169. package/docs/interfaces/Util.MouseGroupParameter.html +4 -4
  170. package/docs/modules/PanoVideoPluginType.html +4 -4
  171. package/docs/modules/Util.html +4 -4
  172. package/docs/modules.html +4 -4
  173. package/docs/types/ArrayPosition.html +4 -4
  174. package/docs/types/AudioAppearance.html +4 -4
  175. package/docs/types/AudioTagTypeConfigKey.html +4 -4
  176. package/docs/types/CSS3DRenderExportType.html +4 -4
  177. package/docs/types/CSS3DRenderPluginExportType.html +4 -4
  178. package/docs/types/CSS3DRenderPluginParameterType.html +4 -4
  179. package/docs/types/ClassFunctionParameters.html +4 -4
  180. package/docs/types/Color.html +4 -4
  181. package/docs/types/ContentTypeConfigKey.html +4 -4
  182. package/docs/types/ContentTypeConfigKeySplit.html +4 -4
  183. package/docs/types/ContentTypeMap.html +4 -4
  184. package/docs/types/Create3DDomContainerReturnType.html +4 -4
  185. package/docs/types/Create3DElementReturnType.html +4 -4
  186. package/docs/types/CruisePluginExportType.html +4 -4
  187. package/docs/types/Direction-1.html +4 -4
  188. package/docs/types/Direction4.html +4 -4
  189. package/docs/types/ElementRenderer.html +4 -4
  190. package/docs/types/FloorplanRuleLabels.html +4 -4
  191. package/docs/types/FloorplanServerRuleLabels.html +4 -4
  192. package/docs/types/GuideLinePluginExportType.html +4 -4
  193. package/docs/types/HelperEventMap.html +4 -4
  194. package/docs/types/LoadTagConfig.html +4 -4
  195. package/docs/types/MapviewFloorplanPluginParameterType.html +4 -4
  196. package/docs/types/MapviewFloorplanPluginReturnType.html +4 -4
  197. package/docs/types/MediaData.html +4 -4
  198. package/docs/types/MediaStore.html +4 -4
  199. package/docs/types/ModelElement.html +4 -4
  200. package/docs/types/ModelEntryDoorGuidePluginParameterType.html +4 -4
  201. package/docs/types/ModelFloorplanPluginParameterType.html +4 -4
  202. package/docs/types/ModelFloorplanPluginReturnType.html +4 -4
  203. package/docs/types/ModelRoomLabelPluginParameters.html +4 -4
  204. package/docs/types/ModelRoomLabelPluginReturnType.html +4 -4
  205. package/docs/types/MoveArgs.html +4 -4
  206. package/docs/types/MoveOpts.html +4 -4
  207. package/docs/types/Object3DHelperEventMap.html +4 -4
  208. package/docs/types/ObjectFit.html +4 -4
  209. package/docs/types/PaintBrushEventMap.html +4 -4
  210. package/docs/types/PanoCompassPluginData.html +4 -4
  211. package/docs/types/PanoCompassPluginExportType.html +4 -4
  212. package/docs/types/PanoCompassPluginParameterType.html +4 -4
  213. package/docs/types/PanoFloorplanRadarPluginParameterType.html +4 -4
  214. package/docs/types/PanoFloorplanRadarPluginReturnType.html +4 -4
  215. package/docs/types/PanoIndex.html +4 -4
  216. package/docs/types/PanoMeasurePluginEvent.html +4 -4
  217. package/docs/types/PanoMeasureReturnType.html +4 -4
  218. package/docs/types/PanoSpatialTagPluginId.html +4 -4
  219. package/docs/types/PanoTagPluginExportInterface.html +4 -4
  220. package/docs/types/PanoTagPluginParamsInterface.html +4 -4
  221. package/docs/types/PanoVideoPluginParameterType.html +4 -4
  222. package/docs/types/PanoVideoPluginReturnType.html +4 -4
  223. package/docs/types/PlaneTag.html +4 -4
  224. package/docs/types/PlaneTagElement.html +4 -4
  225. package/docs/types/Point2DElement.html +4 -4
  226. package/docs/types/Point2DTag.html +4 -4
  227. package/docs/types/Point3DElement.html +4 -4
  228. package/docs/types/Point3DTag.html +4 -4
  229. package/docs/types/PointTag.html +4 -4
  230. package/docs/types/PointTagElement.html +4 -4
  231. package/docs/types/Position.html +4 -4
  232. package/docs/types/RotateArgs.html +4 -4
  233. package/docs/types/RotateOpts.html +4 -4
  234. package/docs/types/RuleLabelsKey.html +4 -4
  235. package/docs/types/RuleLabelsValue.html +4 -4
  236. package/docs/types/StickType.html +4 -4
  237. package/docs/types/Tag.html +4 -4
  238. package/docs/types/Tag2D.html +4 -4
  239. package/docs/types/Tag3D.html +4 -4
  240. package/docs/types/TagContentType.html +4 -4
  241. package/docs/types/TagDimensionType.html +4 -4
  242. package/docs/types/TagElement.html +4 -4
  243. package/docs/types/TagEvents.html +4 -4
  244. package/docs/types/TagGLTFObject.html +4 -4
  245. package/docs/types/TagHooks.html +4 -4
  246. package/docs/types/TagIconSize.html +4 -4
  247. package/docs/types/TagId.html +4 -4
  248. package/docs/types/TopviewFloorplanPluginParameterType.html +4 -4
  249. package/docs/types/TopviewFloorplanPluginReturnType.html +4 -4
  250. package/docs/types/WorkCode.html +4 -4
  251. package/docs/variables/FLOOR_TYPE_MAP.html +4 -4
  252. package/docs/variables/PLUGIN.html +4 -4
  253. package/docs/variables/ROOM_FETILE_TYPE_MAP.html +4 -4
  254. package/docs/variables/ROOM_TYPE_MAP.html +4 -4
  255. package/docs/variables/itemLabelPluginServerParams.html +4 -4
  256. package/docs/variables/modelItemLabelPluginServerParams.html +4 -4
  257. package/docs/variables/modelRoomLabelPluginServerParams.html +4 -4
  258. package/libs/PanoTagPlugin/utils/model/mediaPlane.js +23 -19
  259. package/libs/base/BasePlugin.js +1 -1
  260. package/libs/shared-utils/logger.js +1 -1
  261. package/package.json +1 -1
package/dist/index.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var uc=Object.defineProperty,dc=Object.defineProperties;var hc=Object.getOwnPropertyDescriptors;var Vo=Object.getOwnPropertySymbols;var fc=Object.prototype.hasOwnProperty,mc=Object.prototype.propertyIsEnumerable;var Di=(i,t,e)=>t in i?uc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Q=(i,t)=>{for(var e in t||(t={}))fc.call(t,e)&&Di(i,e,t[e]);if(Vo)for(var e of Vo(t))mc.call(t,e)&&Di(i,e,t[e]);return i},fe=(i,t)=>dc(i,hc(t));var f=(i,t,e)=>(Di(i,typeof t!="symbol"?t+"":t,e),e);var H=(i,t,e)=>new Promise((n,o)=>{var s=l=>{try{a(e.next(l))}catch(c){o(c)}},r=l=>{try{a(e.throw(l))}catch(c){o(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,r);a((e=e.apply(i,t)).next())});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const $n=require("@tweenjs/tween.js"),Ee=require("@realsee/five"),j=require("three"),ei=require("three/examples/jsm/renderers/CSS3DRenderer"),Aa=require("@realsee/five/line"),ba=require("three/examples/jsm/loaders/FBXLoader"),pc=require("hammerjs"),gc=require("classnames"),vc=require("polyline-normals"),Ac=require("object-assign-deep"),bc=require("@realsee/five/gltf-loader"),yc=require("animejs"),wc=require("lodash.get"),Ec=require("lodash.clonedeep"),Pc=require("lodash.isequal"),dt=i=>i&&typeof i=="object"&&"default"in i?i:{default:i};function ya(i){if(i&&i.__esModule)return i;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const e in i)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:()=>i[e]})}}return t.default=i,Object.freeze(t)}const yn=dt($n),mi=ya($n),E=ya(j),kn=dt(pc),Oe=dt(gc),Cc=dt(vc),mt=dt(Ac),jo=dt(yc),Sn=dt(wc),Ic=dt(Ec),kc=dt(Pc);function xc(){console.info("%c %c@realsee/dnalogel %cv2.16.0-alpha.2",["background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')","background-repeat: no-repeat","background-position: 0 center","padding-left: 8px"].join(";"),"","background-color: #12ce9b;color:black;padding:0 6px;border-radius: 3px")}function Dc(){const i=typeof OffscreenCanvas!="undefined",t=i&&new OffscreenCanvas(1,1).getContext("webgl")!==null;i&&!t&&Object.assign(window,{OffscreenCanvas:function(e,n){const o=document.createElement("canvas");return o.width=e,o.height=n,o}})}function wa(){}const Oo=()=>Promise.resolve(),Ro={__queue:Promise.resolve()};function Mc(i=Oo){Ro.__queue=Ro.__queue.then(i).catch(Oo)}function Tn(i,t,e){const n=i.x,o=i.y,s=Math.floor(n/t*1e4)/1e4,r=Math.floor(o/e*1e4)/1e4;return{x:s,y:r}}function Mi(i,t,e){const{x:n,y:o}=i,s=n*t,r=o*e;return{x:s,y:r}}function zn(i){if(i.length<2)return{};const t=i.slice(-2),e=t[0],n={x:(t[0].x+t[1].x)/2,y:(t[0].y+t[1].y)/2};return{control:e,end:n}}function Lc(i,t,e=wa){new Promise(n=>{setTimeout(()=>{e(),n(!0)},t*i)})}const Sc=window,Qo=window.requestAnimationFrame||Sc.webkitRequestAnimationFrame||(i=>setTimeout(i,16));function qn(i,t=0){t<=0?Qo(i):Qo(()=>qn(i,t-1))}function Tc(i,t,e,n=$n.Easing.Linear.None){const o=new $n.Tween(i).to(t,e).easing(n).start();function s(r){!o.update(r)||requestAnimationFrame(s)}return requestAnimationFrame(s),o}var rt=(i=>(i.Drawline="Drawline",i.Undo="Undo",i.Exit="Exit",i))(rt||{});const gn=Symbol("$$PAINT_BRUSH_EVENT$$");function Bn(i){return i[gn]||(i[gn]={}),i[gn]}function zc(i){i[gn]||delete i[gn]}class Bc{hasListener(t){const e=Bn(this);return e&&e[t]&&e[t].length>0}on(t,e,n){const o=Bn(this);return o[t]||(o[t]=[]),o[t].push([e,n||!1]),()=>this.off(t,e)}once(t,e){return this.on(t,e,!0)}off(t,e){if(t===void 0){zc(this);return}const n=Bn(this);if(n[t]||(n[t]=[]),e===void 0){n[t].length=0;return}let o=0;for(;o<n[t].length&&n[t][o][0]!==e;o++);o<n[t].length&&n[t].splice(o,1)}emit(t,...e){let n=!1;const s=Bn(this)[t]||[];for(let r of s.slice()){const[a,l=!1]=r,c=a(...e);l&&this.off(t,a),c===!1&&(n=!0)}return n}}function ht(){return((1+Math.random())*65536|0).toString(16).substring(1)}function We(){return(ht()+ht()+"-"+ht()+"-4"+ht().substr(0,3)+"-"+ht()+"-"+ht()+ht()+ht()).toLowerCase()}const Vc=`
1
+ "use strict";var uc=Object.defineProperty,dc=Object.defineProperties;var hc=Object.getOwnPropertyDescriptors;var Vo=Object.getOwnPropertySymbols;var fc=Object.prototype.hasOwnProperty,mc=Object.prototype.propertyIsEnumerable;var Di=(i,t,e)=>t in i?uc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Q=(i,t)=>{for(var e in t||(t={}))fc.call(t,e)&&Di(i,e,t[e]);if(Vo)for(var e of Vo(t))mc.call(t,e)&&Di(i,e,t[e]);return i},fe=(i,t)=>dc(i,hc(t));var f=(i,t,e)=>(Di(i,typeof t!="symbol"?t+"":t,e),e);var H=(i,t,e)=>new Promise((n,o)=>{var s=l=>{try{a(e.next(l))}catch(c){o(c)}},r=l=>{try{a(e.throw(l))}catch(c){o(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,r);a((e=e.apply(i,t)).next())});Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const $n=require("@tweenjs/tween.js"),Ee=require("@realsee/five"),j=require("three"),ei=require("three/examples/jsm/renderers/CSS3DRenderer"),Aa=require("@realsee/five/line"),ba=require("three/examples/jsm/loaders/FBXLoader"),pc=require("hammerjs"),gc=require("classnames"),vc=require("polyline-normals"),Ac=require("object-assign-deep"),bc=require("@realsee/five/gltf-loader"),yc=require("animejs"),wc=require("lodash.get"),Ec=require("lodash.clonedeep"),Pc=require("lodash.isequal"),dt=i=>i&&typeof i=="object"&&"default"in i?i:{default:i};function ya(i){if(i&&i.__esModule)return i;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(i){for(const e in i)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(i,e);Object.defineProperty(t,e,n.get?n:{enumerable:!0,get:()=>i[e]})}}return t.default=i,Object.freeze(t)}const yn=dt($n),mi=ya($n),E=ya(j),kn=dt(pc),Oe=dt(gc),Cc=dt(vc),mt=dt(Ac),jo=dt(yc),Sn=dt(wc),Ic=dt(Ec),kc=dt(Pc);function xc(){console.info("%c %c@realsee/dnalogel %cv2.16.0-alpha.3",["background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAMCAMAAACHgmeRAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABLFBMVEUAAAAapPoap/oaqvkbrfkbr/gZnfwZoPsaqfnD4v/E4/8Ylv0clPm93/+/4P/B4f8Yj/683/8Wif+33P8Uhv+x2f8ShP+s1v8Pgf+n0/8Nf/+h0f8Lff8Lff8Nf/9dl/+czv8KfP8KfP+Lxf+Uyv+Xy/+Hwv+Jw/+Mxf+Oxv+RyP8aovsapfoap/oZmfwZm/wZnvsYnPsYkf4YlP0NePsDYfgYcfi43f+63v8Xiv8Xjf4EWfwCV/sWZ/qz2v+02/8Vh/8WiP8EUf8CTf4WXv2u1/+v2P8Thf8Thv8ETf8CR/8VV/+o1f+q1f8Qgv8Rg/8DSv8BRf8UVP+j0v+k0v8OgP8Pgf8DR/8DQv9Nhf+dzv+fz/+Kv/+Vyv+Xy/+azf+Oxv+Qx/+SyP////8MUhLdAAAAK3RSTlMACEWQ2bd98uQECPXxqO7c+Pb49vj2+Pb49vj23Oul8fMHA+TwerXXjEIG2P+bHgAAAAFiS0dEY1y+LaoAAAB+SURBVAjXY2BgZGJmYWVgYGBgY9fW0eVg4ORi4NbTNzDk4eXjZxAwMjYxNTO3EGQQsrSytrG1sxdmEHFwdHJ2cXUTZRBz9/D08vbxFWeQ8PMPCAwKDpFkkAoNC4+IjIqWZpCRlZOPiY2LV2BQVGJQTkhMUlEFWaOmrqGpxQAAyg0S9Dq+VPYAAAAASUVORK5CYII=')","background-repeat: no-repeat","background-position: 0 center","padding-left: 8px"].join(";"),"","background-color: #12ce9b;color:black;padding:0 6px;border-radius: 3px")}function Dc(){const i=typeof OffscreenCanvas!="undefined",t=i&&new OffscreenCanvas(1,1).getContext("webgl")!==null;i&&!t&&Object.assign(window,{OffscreenCanvas:function(e,n){const o=document.createElement("canvas");return o.width=e,o.height=n,o}})}function wa(){}const Oo=()=>Promise.resolve(),Ro={__queue:Promise.resolve()};function Mc(i=Oo){Ro.__queue=Ro.__queue.then(i).catch(Oo)}function Tn(i,t,e){const n=i.x,o=i.y,s=Math.floor(n/t*1e4)/1e4,r=Math.floor(o/e*1e4)/1e4;return{x:s,y:r}}function Mi(i,t,e){const{x:n,y:o}=i,s=n*t,r=o*e;return{x:s,y:r}}function zn(i){if(i.length<2)return{};const t=i.slice(-2),e=t[0],n={x:(t[0].x+t[1].x)/2,y:(t[0].y+t[1].y)/2};return{control:e,end:n}}function Lc(i,t,e=wa){new Promise(n=>{setTimeout(()=>{e(),n(!0)},t*i)})}const Sc=window,Qo=window.requestAnimationFrame||Sc.webkitRequestAnimationFrame||(i=>setTimeout(i,16));function qn(i,t=0){t<=0?Qo(i):Qo(()=>qn(i,t-1))}function Tc(i,t,e,n=$n.Easing.Linear.None){const o=new $n.Tween(i).to(t,e).easing(n).start();function s(r){!o.update(r)||requestAnimationFrame(s)}return requestAnimationFrame(s),o}var rt=(i=>(i.Drawline="Drawline",i.Undo="Undo",i.Exit="Exit",i))(rt||{});const gn=Symbol("$$PAINT_BRUSH_EVENT$$");function Bn(i){return i[gn]||(i[gn]={}),i[gn]}function zc(i){i[gn]||delete i[gn]}class Bc{hasListener(t){const e=Bn(this);return e&&e[t]&&e[t].length>0}on(t,e,n){const o=Bn(this);return o[t]||(o[t]=[]),o[t].push([e,n||!1]),()=>this.off(t,e)}once(t,e){return this.on(t,e,!0)}off(t,e){if(t===void 0){zc(this);return}const n=Bn(this);if(n[t]||(n[t]=[]),e===void 0){n[t].length=0;return}let o=0;for(;o<n[t].length&&n[t][o][0]!==e;o++);o<n[t].length&&n[t].splice(o,1)}emit(t,...e){let n=!1;const s=Bn(this)[t]||[];for(let r of s.slice()){const[a,l=!1]=r,c=a(...e);l&&this.off(t,a),c===!1&&(n=!0)}return n}}function ht(){return((1+Math.random())*65536|0).toString(16).substring(1)}function We(){return(ht()+ht()+"-"+ht()+"-4"+ht().substr(0,3)+"-"+ht()+"-"+ht()+ht()+ht()).toLowerCase()}const Vc=`
2
2
  <style type="text/css">
3
3
 
4
4
  #_gl_paintBrush {
@@ -112,7 +112,7 @@ transition: all 500ms;
112
112
  svg [type='lineItemGroup'] g g g g {
113
113
  stroke: #ffffff;
114
114
  }</style>
115
- `;return i.$$set=s=>{"content"in s&&e(0,n=s.content)},[n,o]}class pd extends oe{constructor(t){super(),ie(this,t,md,fd,ne,{content:0},hd)}}function gd(i){le(i,"svelte-ozpg4a",".floorplan-plugin__base-image.svelte-ozpg4a{position:absolute;z-index:10;width:100%;height:100%;pointer-events:none}")}function vd(i){let t,e;return t=new dd({props:{url:i[1].url}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&2&&(s.url=n[1].url),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function Ad(i){let t,e;return t=new pd({props:{content:i[0]}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.content=n[0]),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function bd(i){let t,e,n,o;const s=[Ad,vd],r=[];function a(l,c){return l[0]?0:l[1]?1:-1}return~(e=a(i))&&(n=r[e]=s[e](i)),{c(){t=B("div"),n&&n.c(),y(t,"class","floorplan-plugin__base-image svelte-ozpg4a")},m(l,c){T(l,t,c),~e&&r[e].m(t,null),o=!0},p(l,[c]){let u=e;e=a(l),e===u?~e&&r[e].p(l,c):(n&&(se(),D(r[u],1,1,()=>{r[u]=null}),re()),~e?(n=r[e],n?n.p(l,c):(n=r[e]=s[e](l),n.c()),C(n,1),n.m(t,null)):n=null)},i(l){o||(C(n),o=!0)},o(l){D(n),o=!1},d(l){l&&L(t),~e&&r[e].d()}}}function yd(i,t,e){let n,o,{floorIndex:s}=t,{floorplanData:r}=t;return i.$$set=a=>{"floorIndex"in a&&e(2,s=a.floorIndex),"floorplanData"in a&&e(3,r=a.floorplanData)},i.$$.update=()=>{var a,l;i.$$.dirty&12&&e(1,n=r.outlines[s]),i.$$.dirty&12&&e(0,o=(l=(a=r.outlines)==null?void 0:a[s])==null?void 0:l.svgContent)},[o,n,s,r]}class el extends oe{constructor(t){super(),ie(this,t,yd,bd,ne,{floorIndex:2,floorplanData:3},gd)}}function wd(i){le(i,"svelte-12pzct5",".floorplan-plugin__room-label-item.svelte-12pzct5{position:absolute;display:flex;flex-flow:column;align-items:center;line-height:1;color:#fff;transform:translate(-50%, -50%);white-space:nowrap;will-change:opacity;transition:opacity 300ms}.floorplan-plugin__room-size.svelte-12pzct5{opacity:0.45}")}function Ed(i){let t,e=i[8].outerHTML+"",n;return{c(){t=new ni(!1),n=pe(),t.a=n},m(o,s){t.m(e,o,s),T(o,n,s)},p(o,s){s&256&&e!==(e=o[8].outerHTML+"")&&t.p(e)},d(o){o&&L(n),o&&t.d()}}}function Pd(i){let t,e,n=i[1]&&Uo(i),o=i[0]&&qo(i);return{c(){n&&n.c(),t=$(),o&&o.c(),e=pe()},m(s,r){n&&n.m(s,r),T(s,t,r),o&&o.m(s,r),T(s,e,r)},p(s,r){s[1]?n?n.p(s,r):(n=Uo(s),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null),s[0]?o?o.p(s,r):(o=qo(s),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(s){n&&n.d(s),s&&L(t),o&&o.d(s),s&&L(e)}}}function Uo(i){let t,e=i[2].name+"",n;return{c(){t=B("span"),n=xe(e),y(t,"class","floorplan-plugin__room-name")},m(o,s){T(o,t,s),V(t,n)},p(o,s){s&4&&e!==(e=o[2].name+"")&&Se(n,e)},d(o){o&&L(t)}}}function qo(i){let t,e;return{c(){t=B("span"),e=xe(i[7]),y(t,"class","floorplan-plugin__room-size svelte-12pzct5")},m(n,o){T(n,t,o),V(t,e)},p(n,o){o&128&&Se(e,n[7])},d(n){n&&L(t)}}}function Cd(i){let t,e,n;function o(a,l){if(a[3]===void 0)return Pd;if(a[8])return Ed}let s=o(i),r=s&&s(i);return{c(){t=B("div"),r&&r.c(),y(t,"class","floorplan-plugin__room-label-item svelte-12pzct5"),z(t,"left",i[9]),z(t,"top",i[10]),z(t,"font-size",i[11]),z(t,"opacity",i[6]?"1":"0")},m(a,l){T(a,t,l),r&&r.m(t,null),e||(n=[ct(ln.call(null,t)),me(t,"clientWidth",i[19]),me(t,"clientHeight",i[20])],e=!0)},p(a,[l]){s===(s=o(a))&&r?r.p(a,l):(r&&r.d(1),r=s&&s(a),r&&(r.c(),r.m(t,null))),l&64&&z(t,"opacity",a[6]?"1":"0")},i:X,o:X,d(a){a&&L(t),r&&r.d(),e=!1,Ge(n)}}}function Id(i,t){const e=i[0],n=i[1];let o=!1;for(let s=0,r=t.length-1;s<t.length;r=s++){const a=t[s][0],l=t[s][1],c=t[r][0],u=t[r][1];l>n!=u>n&&e<(c-a)*(n-l)/(u-l)+a&&(o=!o)}return o}function kd(i,t,e){let n,o,s,r,a,{pxmm:l}=t,{roomAreaEnable:c}=t,{roomNameEnable:u}=t,{room:d}=t,{hoveredRoom:h}=t,{getRoomAreaText:m}=t,{getLabelElement:g}=t,{adaptiveRoomLabelVisibleEnable:p}=t;function A(S,O){if(O.width===0||O.height===0)return()=>!1;const G=S.path.map(({x:de,y:ge})=>[de,ge]),W=S.roomLabel.position,{x:Y,y:_}=W,{width:ee,height:U}=O,ae=ee/2,he=U/2;return function(ge){const Ce=Y*ge,ke=_*ge,Te=G.map(([ve,Pe])=>[ve*ge,Pe*ge]);return[[Ce+ae,ke-he],[Ce-ae,ke-he],[Ce-ae,ke+he],[Ce+ae,ke+he]].every(ve=>Id(ve,Te))}}const v=document.body.clientWidth,b=document.body.clientHeight,w=d.roomLabel,k=w.positionInImage.x*100+"%",I=w.positionInImage.y*100+"%",P=(v<500||b<500?10:14)+"px";let M=0,x=0,F=!1;h.subscribe(function(O){e(16,F=!!O&&O.id===d.id)});const N=S=>{e(4,M=S.detail)},R=S=>{e(5,x=S.detail)};return i.$$set=S=>{"pxmm"in S&&e(12,l=S.pxmm),"roomAreaEnable"in S&&e(0,c=S.roomAreaEnable),"roomNameEnable"in S&&e(1,u=S.roomNameEnable),"room"in S&&e(2,d=S.room),"hoveredRoom"in S&&e(13,h=S.hoveredRoom),"getRoomAreaText"in S&&e(14,m=S.getRoomAreaText),"getLabelElement"in S&&e(3,g=S.getLabelElement),"adaptiveRoomLabelVisibleEnable"in S&&e(15,p=S.adaptiveRoomLabelVisibleEnable)},i.$$.update=()=>{i.$$.dirty&12&&e(8,n=g==null?void 0:g(d)),i.$$.dirty&16388&&e(7,o=d.size?m(d.size):""),i.$$.dirty&48&&e(18,s={width:M,height:x}),i.$$.dirty&262148&&e(17,r=s?A(d,s):void 0),i.$$.dirty&233472&&e(6,a=p?F?!0:!!(r!=null&&r(l)):!0)},[c,u,d,g,M,x,a,o,n,k,I,P,l,h,m,p,F,r,s,N,R]}class xd extends oe{constructor(t){super(),ie(this,t,kd,Cd,ne,{pxmm:12,roomAreaEnable:0,roomNameEnable:1,room:2,hoveredRoom:13,getRoomAreaText:14,getLabelElement:3,adaptiveRoomLabelVisibleEnable:15},wd)}}function Dd(i){le(i,"svelte-13xux0b",".floorplan-plugin__room-labels.svelte-13xux0b{width:100%;height:100%;position:absolute;left:0;top:0;z-index:20;pointer-events:none}")}function Jo(i,t,e){const n=i.slice();return n[12]=t[e],n}function Zo(i){let t,e=[],n=new Map,o,s,r,a=i[8];const l=c=>c[12].id;for(let c=0;c<a.length;c+=1){let u=Jo(i,a,c),d=l(u);n.set(d,e[c]=Ko(d,u))}return{c(){t=B("div");for(let c=0;c<e.length;c+=1)e[c].c();y(t,"class","floorplan-plugin__room-labels svelte-13xux0b")},m(c,u){T(c,t,u);for(let d=0;d<e.length;d+=1)e[d].m(t,null);o=!0,s||(r=[ct(ln.call(null,t)),me(t,"clientWidth",i[11])],s=!0)},p(c,u){u&447&&(a=c[8],se(),e=Ke(e,u,l,1,c,a,n,t,kt,Ko,null,Jo),re())},i(c){if(!o){for(let u=0;u<a.length;u+=1)C(e[u]);o=!0}},o(c){for(let u=0;u<e.length;u+=1)D(e[u]);o=!1},d(c){c&&L(t);for(let u=0;u<e.length;u+=1)e[u].d();s=!1,Ge(r)}}}function Ko(i,t){let e,n,o;const s=[{pxmm:t[7],room:t[12],hoveredRoom:t[2],roomAreaEnable:t[0],roomNameEnable:t[1],getLabelElement:t[4],getRoomAreaText:t[3],adaptiveRoomLabelVisibleEnable:t[5]}];let r={};for(let a=0;a<s.length;a+=1)r=Be(r,s[a]);return n=new xd({props:r}),{key:i,first:null,c(){e=pe(),K(n.$$.fragment),this.first=e},m(a,l){T(a,e,l),J(n,a,l),o=!0},p(a,l){t=a;const c=l&447?Fe(s,[{pxmm:t[7],room:t[12],hoveredRoom:t[2],roomAreaEnable:t[0],roomNameEnable:t[1],getLabelElement:t[4],getRoomAreaText:t[3],adaptiveRoomLabelVisibleEnable:t[5]}]):{};n.$set(c)},i(a){o||(C(n.$$.fragment,a),o=!0)},o(a){D(n.$$.fragment,a),o=!1},d(a){a&&L(e),Z(n,a)}}}function Md(i){let t,e,n=i[8]&&Zo(i);return{c(){n&&n.c(),t=pe()},m(o,s){n&&n.m(o,s),T(o,t,s),e=!0},p(o,[s]){o[8]?n?(n.p(o,s),s&256&&C(n,1)):(n=Zo(o),n.c(),C(n,1),n.m(t.parentNode,t)):n&&(se(),D(n,1,1,()=>{n=null}),re())},i(o){e||(C(n),e=!0)},o(o){D(n),e=!1},d(o){n&&n.d(o),o&&L(t)}}}function Ld(i,t,e){let n,{floorIndex:o}=t,{roomAreaEnable:s}=t,{roomNameEnable:r}=t,{floorplanData:a}=t,{hoveredRoom:l}=t,{getRoomAreaText:c}=t,{getLabelElement:u}=t,{adaptiveRoomLabelVisibleEnable:d}=t,h=0,m=0;const g=p=>{e(6,h=p.detail)};return i.$$set=p=>{"floorIndex"in p&&e(9,o=p.floorIndex),"roomAreaEnable"in p&&e(0,s=p.roomAreaEnable),"roomNameEnable"in p&&e(1,r=p.roomNameEnable),"floorplanData"in p&&e(10,a=p.floorplanData),"hoveredRoom"in p&&e(2,l=p.hoveredRoom),"getRoomAreaText"in p&&e(3,c=p.getRoomAreaText),"getLabelElement"in p&&e(4,u=p.getLabelElement),"adaptiveRoomLabelVisibleEnable"in p&&e(5,d=p.adaptiveRoomLabelVisibleEnable)},i.$$.update=()=>{if(i.$$.dirty&1536&&e(8,n=a.floorDatas[o].rooms),i.$$.dirty&1088){const{max:p,min:A}=a.bounding,v=p.x-A.x;e(7,m=h/v)}},[s,r,l,c,u,d,h,m,n,o,a,g]}class Sd extends oe{constructor(t){super(),ie(this,t,Ld,Md,ne,{floorIndex:9,roomAreaEnable:0,roomNameEnable:1,floorplanData:10,hoveredRoom:2,getRoomAreaText:3,getLabelElement:4,adaptiveRoomLabelVisibleEnable:5},Dd)}}function Td(i){le(i,"svelte-djlmk4",".floorplan-plugin__rule-labels.svelte-djlmk4.svelte-djlmk4{position:absolute;display:flex}.floorplan-plugin__rule-labels--top.svelte-djlmk4.svelte-djlmk4{left:0;top:-1.25rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4.svelte-djlmk4{left:0;bottom:-1.25rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4.svelte-djlmk4{top:0;left:-1.25rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4.svelte-djlmk4{top:0;right:-1.25rem}.floorplan-plugin__rule-line.svelte-djlmk4.svelte-djlmk4{background:#fff;opacity:0.05;width:100%;height:100%}.floorplan-plugin__rule-scale-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute;width:0.3125rem;height:100%;left:50%;top:0;transform:translateX(-50%)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale-wrapper.svelte-djlmk4{width:100%;height:0.3125rem;top:50%;left:0;transform:translateY(-50%)}.floorplan-plugin__rule-scale.svelte-djlmk4.svelte-djlmk4{position:absolute;background:#fff;opacity:0.05;width:100%;height:0.0625rem}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale.svelte-djlmk4{width:0.0625rem;height:100%}.floorplan-plugin__rule-text-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute}.floorplan-plugin__rule-labels--top.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;top:0.625rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;bottom:0.625rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;left:0.625rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;right:0.625rem}.floorplan-plugin__rule-text-item.svelte-djlmk4.svelte-djlmk4{width:0;height:0;position:absolute;transform:rotate(90deg)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-text-item.svelte-djlmk4{transform:rotate(0)}.floorplan-plugin__rule-text.svelte-djlmk4.svelte-djlmk4{width:-moz-max-content;width:max-content;transform:translate(-50%, -50%);font-size:0.625rem;color:#fff;opacity:0.2}")}function $o(i,t,e){const n=i.slice();return n[11]=t[e],n[13]=e,n}function es(i,t,e){const n=i.slice();return n[14]=t[e],n}function ts(i){let t;return{c(){t=B("div"),y(t,"class","floorplan-plugin__rule-scale svelte-djlmk4"),z(t,"left",i[14].left*100+"%"),z(t,"bottom",i[14].bottom*100+"%")},m(e,n){T(e,t,n)},p:X,d(e){e&&L(t)}}}function ns(i,t){let e,n,o=t[1](t[11].distance)+"",s,r;return{key:i,first:null,c(){e=B("div"),n=B("div"),s=xe(o),r=$(),y(n,"class","floorplan-plugin__rule-text svelte-djlmk4"),q(n,"is-row",t[2]),y(e,"class","floorplan-plugin__rule-text-item svelte-djlmk4"),z(e,"left",t[11].left*100+"%"),z(e,"bottom",t[11].bottom*100+"%"),this.first=e},m(a,l){T(a,e,l),V(e,n),V(n,s),V(e,r)},p(a,l){t=a,l&2&&o!==(o=t[1](t[11].distance)+"")&&Se(s,o)},d(a){a&&L(e)}}}function zd(i){let t,e,n,o,s,r,a=[],l=new Map,c,u=i[3],d=[];for(let g=0;g<u.length;g+=1)d[g]=ts(es(i,u,g));let h=i[4];const m=g=>g[13];for(let g=0;g<h.length;g+=1){let p=$o(i,h,g),A=m(p);l.set(A,a[g]=ns(A,p))}return{c(){t=B("div"),e=B("div"),n=$(),o=B("div");for(let g=0;g<d.length;g+=1)d[g].c();s=$(),r=B("div");for(let g=0;g<a.length;g+=1)a[g].c();y(e,"class","floorplan-plugin__rule-line svelte-djlmk4"),y(o,"class","floorplan-plugin__rule-scale-wrapper svelte-djlmk4"),q(o,"is-row",i[2]),y(r,"class","floorplan-plugin__rule-text-wrapper svelte-djlmk4"),y(t,"class",c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+i[0]+" svelte-djlmk4"),q(t,"is-row",i[2]),z(t,"width",i[2]?"100%":1/16+"rem"),z(t,"height",i[2]?1/16+"rem":"100%")},m(g,p){T(g,t,p),V(t,e),V(t,n),V(t,o);for(let A=0;A<d.length;A+=1)d[A].m(o,null);V(t,s),V(t,r);for(let A=0;A<a.length;A+=1)a[A].m(r,null)},p(g,[p]){if(p&8){u=g[3];let A;for(A=0;A<u.length;A+=1){const v=es(g,u,A);d[A]?d[A].p(v,p):(d[A]=ts(v),d[A].c(),d[A].m(o,null))}for(;A<d.length;A+=1)d[A].d(1);d.length=u.length}p&22&&(h=g[4],a=Ke(a,p,m,1,g,h,l,r,vo,ns,null,$o)),p&1&&c!==(c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+g[0]+" svelte-djlmk4")&&y(t,"class",c),p&5&&q(t,"is-row",g[2])},i:X,o:X,d(g){g&&L(t),ut(d,g);for(let p=0;p<a.length;p+=1)a[p].d()}}}const Qt=1e3,Ft=180;function Bd(i,t,e){let{type:n}=t,{data:o}=t,{bounding:s}=t,{getRuleDistanceText:r}=t;const a=n==="top"||n==="bottom",l=s.max.x-s.min.x-(Qt-Ft)*2,c=s.max.y-s.min.y-(Qt-Ft)*2,u=o.map(([g,p])=>a?[g.x,p.x]:[g.y,p.y]).flat().sort().filter((g,p,A)=>p===0?!0:g!==A[p-1]),d=u.map(g=>{const p=a?(g-s.min.x-Qt+Ft)/l:0,A=a?0:(g-s.min.y-Qt+Ft)/c;return{left:p,bottom:A}});d.unshift({left:0,bottom:0}),d.push(a?{left:1,bottom:0}:{left:0,bottom:1});const h=u[u.length-1]-u[0],m=u.map((g,p,A)=>{const v=p===0?0:g-A[p-1],b=p===0?0:(g+A[p-1])/2,w=a?(b-s.min.x-Qt+Ft)/l:0,k=a?0:(b-s.min.y-Qt+Ft)/c;return{left:w,bottom:k,distance:v}}).filter(({distance:g})=>g/h>.1);return i.$$set=g=>{"type"in g&&e(0,n=g.type),"data"in g&&e(5,o=g.data),"bounding"in g&&e(6,s=g.bounding),"getRuleDistanceText"in g&&e(1,r=g.getRuleDistanceText)},[n,r,a,d,m,o,s]}class Vd extends oe{constructor(t){super(),ie(this,t,Bd,zd,ne,{type:0,data:5,bounding:6,getRuleDistanceText:1},Td)}}function jd(i){le(i,"svelte-1mzj9p3",".floorplan-plugin__rule-labels-wrapper.svelte-1mzj9p3{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}")}function is(i,t,e){const n=i.slice();return n[13]=t[e][0],n[14]=t[e][1],n}function os(i,t){let e,n,o;const s=[{type:t[13],data:t[14],bounding:t[1],getRuleDistanceText:t[0]}];let r={};for(let a=0;a<s.length;a+=1)r=Be(r,s[a]);return n=new Vd({props:r}),{key:i,first:null,c(){e=pe(),K(n.$$.fragment),this.first=e},m(a,l){T(a,e,l),J(n,a,l),o=!0},p(a,l){t=a;const c=l&19?Fe(s,[{type:t[13],data:t[14],bounding:t[1],getRuleDistanceText:t[0]}]):{};n.$set(c)},i(a){o||(C(n.$$.fragment,a),o=!0)},o(a){D(n.$$.fragment,a),o=!1},d(a){a&&L(e),Z(n,a)}}}function Od(i){let t,e=[],n=new Map,o,s=i[4];const r=a=>a[13];for(let a=0;a<s.length;a+=1){let l=is(i,s,a),c=r(l);n.set(c,e[a]=os(c,l))}return{c(){t=B("div");for(let a=0;a<e.length;a+=1)e[a].c();y(t,"class","floorplan-plugin__rule-labels-wrapper svelte-1mzj9p3"),z(t,"width",i[3]),z(t,"height",i[2])},m(a,l){T(a,t,l);for(let c=0;c<e.length;c+=1)e[c].m(t,null);o=!0},p(a,[l]){l&19&&(s=a[4],se(),e=Ke(e,l,r,1,a,s,n,t,kt,os,null,is),re()),l&8&&z(t,"width",a[3]),l&4&&z(t,"height",a[2])},i(a){if(!o){for(let l=0;l<s.length;l+=1)C(e[l]);o=!0}},o(a){for(let l=0;l<e.length;l+=1)D(e[l]);o=!1},d(a){a&&L(t);for(let l=0;l<e.length;l+=1)e[l].d()}}}const ss=1e3,rs=180;function Rd(i,t,e){let n,o,s,r,a,l,c,u,d,h,{floorIndex:m}=t,{floorplanData:g}=t,{getRuleDistanceText:p}=t;return i.$$set=A=>{"floorIndex"in A&&e(5,m=A.floorIndex),"floorplanData"in A&&e(6,g=A.floorplanData),"getRuleDistanceText"in A&&e(0,p=A.getRuleDistanceText)},i.$$.update=()=>{i.$$.dirty&64&&e(1,n=g.bounding),i.$$.dirty&96&&e(11,o=g.floorDatas[m].rules),i.$$.dirty&2048&&e(12,s=Object.keys(o)),i.$$.dirty&6144&&e(4,r=s.map(A=>[A,o[A]])),i.$$.dirty&2&&e(9,a=n.max.x-n.min.x),i.$$.dirty&2&&e(7,l=n.max.y-n.min.y),i.$$.dirty&2&&e(10,c=n.max.x-n.min.x-(ss-rs)*2),i.$$.dirty&2&&e(8,u=n.max.y-n.min.y-(ss-rs)*2),i.$$.dirty&1536&&e(3,d=c/a*100+"%"),i.$$.dirty&384&&e(2,h=u/l*100+"%")},[p,n,h,d,r,m,g,l,u,a,c,o,s]}class Qd extends oe{constructor(t){super(),ie(this,t,Rd,Od,ne,{floorIndex:5,floorplanData:6,getRuleDistanceText:0},jd)}}function bi(i,t={}){let e="";const{needZ:n,needA:o}=t;return(n?i.slice().concat(i[0]):i.slice()).forEach((r,a)=>{const{x:l,y:c}=t.format?t.format(r):r,u=l+","+c;return a===0?(e+="M"+u,e):o!=null&&o[a]?(e+="A"+o[a]+","+u,e):(e+="L"+u,e)}),e+(n?"Z":"")}function tl({x:i,y:t},e){const{max:n,min:o}=e;return{x:i-o.x,y:n.y-t}}function Fd(i,t){const e=i.x*1e3+t.bounding.origin.x,n=-i.z*1e3+t.bounding.origin.y;return{x:e,y:n}}function Hd(i,t){const e=t.bounding,n=e.max.x-e.min.x,o=e.max.y-e.min.y;return{x:(i.x-e.min.x)/n,y:(e.max.y-i.y)/o}}function Gd(i,t){return Math.max(...t.work.observers.map(n=>i.z>=n.standingPosition.z?n.floorIndex:0))}function Wd(i){let t;return{c(){t=we("path"),y(t,"d",i[0]),y(t,"fill","#2F313A")},m(e,n){T(e,t,n)},p(e,[n]){n&1&&y(t,"d",e[0])},i:X,o:X,d(e){e&&L(t)}}}function _d(i,t,e){let n,{path:o}=t;return i.$$set=s=>{"path"in s&&e(1,o=s.path)},i.$$.update=()=>{i.$$.dirty&2&&e(0,n=bi(o,{needZ:!0}))},[n,o]}class Nd extends oe{constructor(t){super(),ie(this,t,_d,Wd,ne,{path:1})}}function Xd(i){let t,e,n,o,s,r;return{c(){t=we("defs"),e=we("pattern"),n=we("rect"),o=we("path"),s=$(),r=we("path"),y(n,"x","0"),y(n,"y","0"),y(n,"width",i[1]),y(n,"height",i[1]),y(n,"fill","#323747"),y(o,"d",i[2]),y(o,"stroke","#ffffff"),y(o,"stroke-opacity","0.06"),y(o,"stroke-width","0.5"),y(o,"fill","none"),y(e,"id","fpm-room-pattern-0"),y(e,"x","0"),y(e,"y","0"),y(e,"width",i[1]),y(e,"height",i[1]),y(e,"patternUnits","userSpaceOnUse"),y(e,"patternTransform","scale(50 50)"),y(r,"d",i[0]),y(r,"fill","url(#fpm-room-pattern-0)")},m(a,l){T(a,t,l),V(t,e),V(e,n),V(e,o),T(a,s,l),T(a,r,l)},p(a,[l]){l&1&&y(r,"d",a[0])},i:X,o:X,d(a){a&&L(t),a&&L(s),a&&L(r)}}}const Bi=6;function Yd(i,t,e){let n,{path:o}=t;const s=Bi*2,r=`M0 ${Bi} h ${s} M${Bi} 0 v ${s}`;return i.$$set=a=>{"path"in a&&e(3,o=a.path)},i.$$.update=()=>{i.$$.dirty&8&&e(0,n=bi(o,{needZ:!0}))},[n,s,r,o]}class Ud extends oe{constructor(t){super(),ie(this,t,Yd,Xd,ne,{path:3})}}function qd(i){let t,e,n,o,s,r,a,l,c,u,d;return{c(){t=we("defs"),e=we("pattern"),n=we("rect"),o=we("pattern"),s=we("rect"),r=$(),a=we("path"),l=$(),c=we("path"),u=$(),d=we("path"),y(n,"x","0"),y(n,"y","0"),y(n,"width","6"),y(n,"height","50"),y(n,"fill","none"),y(n,"stroke","#4B4B57"),y(n,"stroke-width","0.5"),y(e,"id","room-material-pattern-1"),y(e,"x","0"),y(e,"y","0"),y(e,"width","12"),y(e,"height","50"),y(e,"patternUnits","userSpaceOnUse"),y(e,"patternTransform","scale(50 50)"),y(s,"x","0"),y(s,"y","0"),y(s,"width","6"),y(s,"height","50"),y(s,"fill","none"),y(s,"stroke","#4B4B57"),y(s,"stroke-width","0.5"),y(o,"id","room-material-pattern-2"),y(o,"x","6"),y(o,"y","25"),y(o,"width","12"),y(o,"height","50"),y(o,"patternUnits","userSpaceOnUse"),y(o,"patternTransform","scale(50 50)"),y(a,"d",i[0]),y(a,"fill","#43434D"),y(c,"d",i[0]),y(c,"fill","url(#room-material-pattern-1)"),y(d,"d",i[0]),y(d,"fill","url(#room-material-pattern-2)")},m(h,m){T(h,t,m),V(t,e),V(e,n),V(t,o),V(o,s),T(h,r,m),T(h,a,m),T(h,l,m),T(h,c,m),T(h,u,m),T(h,d,m)},p(h,[m]){m&1&&y(a,"d",h[0]),m&1&&y(c,"d",h[0]),m&1&&y(d,"d",h[0])},i:X,o:X,d(h){h&&L(t),h&&L(r),h&&L(a),h&&L(l),h&&L(c),h&&L(u),h&&L(d)}}}function Jd(i,t,e){let n,{path:o}=t;return i.$$set=s=>{"path"in s&&e(1,o=s.path)},i.$$.update=()=>{i.$$.dirty&2&&e(0,n=bi(o,{needZ:!0}))},[n,o]}class Zd extends oe{constructor(t){super(),ie(this,t,Jd,qd,ne,{path:1})}}function Kd(i){le(i,"svelte-1dykexu",".floorplan-plugin__room-material.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%}svg.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}")}function as(i,t,e){const n=i.slice();return n[5]=t[e],n}function $d(i){let t,e;return t=new Ud({props:{path:i[5].path}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.path=n[5].path),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function eh(i){let t,e;return t=new Zd({props:{path:i[5].path}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.path=n[5].path),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function th(i){let t,e;return t=new Nd({props:{path:i[5].path}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.path=n[5].path),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function ls(i){let t,e,n,o;const s=[th,eh,$d],r=[];function a(l,c){return l[5].floorType===1?0:l[5].floorType===0?1:2}return e=a(i),n=r[e]=s[e](i),{c(){t=we("svg"),n.c(),y(t,"width","100%"),y(t,"height","100%"),y(t,"viewBox",`0 0 ${i[1]} ${i[2]}`),y(t,"class","svelte-1dykexu")},m(l,c){T(l,t,c),r[e].m(t,null),o=!0},p(l,c){let u=e;e=a(l),e===u?r[e].p(l,c):(se(),D(r[u],1,1,()=>{r[u]=null}),re(),n=r[e],n?n.p(l,c):(n=r[e]=s[e](l),n.c()),C(n,1),n.m(t,null))},i(l){o||(C(n),o=!0)},o(l){D(n),o=!1},d(l){l&&L(t),r[e].d()}}}function nh(i){let t,e,n=i[0],o=[];for(let r=0;r<n.length;r+=1)o[r]=ls(as(i,n,r));const s=r=>D(o[r],1,1,()=>{o[r]=null});return{c(){t=B("div");for(let r=0;r<o.length;r+=1)o[r].c();y(t,"class","floorplan-plugin__room-material svelte-1dykexu")},m(r,a){T(r,t,a);for(let l=0;l<o.length;l+=1)o[l].m(t,null);e=!0},p(r,[a]){if(a&7){n=r[0];let l;for(l=0;l<n.length;l+=1){const c=as(r,n,l);o[l]?(o[l].p(c,a),C(o[l],1)):(o[l]=ls(c),o[l].c(),C(o[l],1),o[l].m(t,null))}for(se(),l=n.length;l<o.length;l+=1)s(l);re()}},i(r){if(!e){for(let a=0;a<n.length;a+=1)C(o[a]);e=!0}},o(r){o=o.filter(Boolean);for(let a=0;a<o.length;a+=1)D(o[a]);e=!1},d(r){r&&L(t),ut(o,r)}}}function ih(i,t,e){let n,{floorIndex:o}=t,{floorplanData:s}=t;const r=s.bounding.max.x-s.bounding.min.x,a=s.bounding.max.y-s.bounding.min.y;return i.$$set=l=>{"floorIndex"in l&&e(3,o=l.floorIndex),"floorplanData"in l&&e(4,s=l.floorplanData)},i.$$.update=()=>{i.$$.dirty&24&&e(0,n=s.floorDatas[o].rooms.map(l=>fe(Q({},l),{path:l.path.map(c=>tl(c,s.bounding))})))},[n,r,a,o,s]}class oh extends oe{constructor(t){super(),ie(this,t,ih,nh,ne,{floorIndex:3,floorplanData:4},Kd)}}function sh(i){le(i,"svelte-qq2273","path.svelte-qq2273{--opacity:0;opacity:var(--opacity)}path.svelte-qq2273:hover{opacity:calc(var(--opacity) + 0.1)}")}function rh(i){let t,e,n,o;return{c(){t=we("path"),y(t,"d",i[5]),y(t,"fill","#fff"),y(t,"style",i[2]),y(t,"id",e=`${i[1]}_${i[0].id}`),y(t,"class","svelte-qq2273")},m(s,r){T(s,t,r),n||(o=[me(t,"mouseenter",i[3]),me(t,"mouseleave",i[4])],n=!0)},p(s,[r]){r&4&&y(t,"style",s[2]),r&3&&e!==(e=`${s[1]}_${s[0].id}`)&&y(t,"id",e)},i:X,o:X,d(s){s&&L(t),n=!1,Ge(o)}}}function ah(i,t,e){let n,o,{room:s}=t,{floorIndex:r}=t,{floorplanData:a}=t,{hoveredRoom:l}=t,{highlightData:c}=t;function u(){l.set(s)}function d(){l.set(void 0)}const{bounding:h}=a,m=bi(s.path,{needZ:!0,format:g=>tl(g,h)});return i.$$set=g=>{"room"in g&&e(0,s=g.room),"floorIndex"in g&&e(1,r=g.floorIndex),"floorplanData"in g&&e(6,a=g.floorplanData),"hoveredRoom"in g&&e(7,l=g.hoveredRoom),"highlightData"in g&&e(8,c=g.highlightData)},i.$$.update=()=>{i.$$.dirty&259&&e(9,n=c[`${r}_${s.id}`]),i.$$.dirty&512&&e(2,o=n?`fill: ${n.color}; --opacity: ${n.opacity}; pointer-events: ${n.disabled?"none":"auto"}`:null)},[s,r,o,u,d,m,a,l,c,n]}class lh extends oe{constructor(t){super(),ie(this,t,ah,rh,ne,{room:0,floorIndex:1,floorplanData:6,hoveredRoom:7,highlightData:8},sh)}}function ch(i){le(i,"svelte-1kqo6e4",".floorplan-plugin__room-highlight.svelte-1kqo6e4{position:absolute;width:100%;height:100%}svg.svelte-1kqo6e4{width:100%;height:100%;overflow:visible}")}function cs(i,t,e){const n=i.slice();return n[6]=t[e],n}function us(i,t){let e,n,o;const s=[{room:t[6],floorplanData:t[1],hoveredRoom:t[2],floorIndex:t[0],highlightData:t[3]}];let r={};for(let a=0;a<s.length;a+=1)r=Be(r,s[a]);return n=new lh({props:r}),{key:i,first:null,c(){e=pe(),K(n.$$.fragment),this.first=e},m(a,l){T(a,e,l),J(n,a,l),o=!0},p(a,l){t=a;const c=l&15?Fe(s,[{room:t[6],floorplanData:t[1],hoveredRoom:t[2],floorIndex:t[0],highlightData:t[3]}]):{};n.$set(c)},i(a){o||(C(n.$$.fragment,a),o=!0)},o(a){D(n.$$.fragment,a),o=!1},d(a){a&&L(e),Z(n,a)}}}function uh(i){let t,e,n=[],o=new Map,s,r=i[1].floorDatas[i[0]].rooms;const a=l=>l[6].id;for(let l=0;l<r.length;l+=1){let c=cs(i,r,l),u=a(c);o.set(u,n[l]=us(u,c))}return{c(){t=B("div"),e=we("svg");for(let l=0;l<n.length;l+=1)n[l].c();y(e,"width","100%"),y(e,"height","100%"),y(e,"viewBox",`0 0 ${i[4]} ${i[5]}`),y(e,"class","svelte-1kqo6e4"),y(t,"class","floorplan-plugin__room-highlight svelte-1kqo6e4")},m(l,c){T(l,t,c),V(t,e);for(let u=0;u<n.length;u+=1)n[u].m(e,null);s=!0},p(l,[c]){c&15&&(r=l[1].floorDatas[l[0]].rooms,se(),n=Ke(n,c,a,1,l,r,o,e,kt,us,null,cs),re())},i(l){if(!s){for(let c=0;c<r.length;c+=1)C(n[c]);s=!0}},o(l){for(let c=0;c<n.length;c+=1)D(n[c]);s=!1},d(l){l&&L(t);for(let c=0;c<n.length;c+=1)n[c].d()}}}function dh(i,t,e){let{floorIndex:n}=t,{floorplanData:o}=t,{hoveredRoom:s}=t,{highlightData:r}=t;const a=o.bounding.max.x-o.bounding.min.x,l=o.bounding.max.y-o.bounding.min.y;return i.$$set=c=>{"floorIndex"in c&&e(0,n=c.floorIndex),"floorplanData"in c&&e(1,o=c.floorplanData),"hoveredRoom"in c&&e(2,s=c.hoveredRoom),"highlightData"in c&&e(3,r=c.highlightData)},[n,o,s,r,a,l]}class nl extends oe{constructor(t){super(),ie(this,t,dh,uh,ne,{floorIndex:0,floorplanData:1,hoveredRoom:2,highlightData:3},ch)}}function hh(i){le(i,"svelte-bl8zrz",".floorplan-plugin__floor.svelte-bl8zrz{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none}.floorplan-plugin__floor--is-current.svelte-bl8zrz{opacity:1;pointer-events:auto}")}function ds(i){let t,e;const n=[{floorIndex:i[1],floorplanData:i[8],hoveredRoom:i[14],highlightData:i[13]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new nl({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&24834?Fe(n,[{floorIndex:s[1],floorplanData:s[8],hoveredRoom:s[14],highlightData:s[13]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function hs(i){let t,e;const n=[{floorplanData:i[8],roomAreaEnable:i[5],roomNameEnable:i[6],floorIndex:i[1],getRoomAreaText:i[9],getLabelElement:i[10],hoveredRoom:i[14],adaptiveRoomLabelVisibleEnable:i[12]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new Sd({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&22370?Fe(n,[{floorplanData:s[8],roomAreaEnable:s[5],roomNameEnable:s[6],floorIndex:s[1],getRoomAreaText:s[9],getLabelElement:s[10],hoveredRoom:s[14],adaptiveRoomLabelVisibleEnable:s[12]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function fs(i){let t,e;const n=[{floorplanData:i[8],floorIndex:i[1],getRuleDistanceText:i[11]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new Qd({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&2306?Fe(n,[{floorplanData:s[8],floorIndex:s[1],getRuleDistanceText:s[11]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function fh(i){let t,e,n,o,s,r,a,l,c;const u=[{floorIndex:i[1],floorplanData:i[8]}];let d={};for(let v=0;v<u.length;v+=1)d=Be(d,u[v]);e=new oh({props:d});let h=(i[2]||i[3])&&ds(i);const m=[{floorplanData:i[8],floorIndex:i[1]}];let g={};for(let v=0;v<m.length;v+=1)g=Be(g,m[v]);s=new el({props:g});let p=i[4]&&hs(i),A=i[7]&&fs(i);return{c(){t=B("div"),K(e.$$.fragment),n=$(),h&&h.c(),o=$(),K(s.$$.fragment),r=$(),p&&p.c(),a=$(),A&&A.c(),y(t,"class",l=Ie(`floorplan-plugin__floor${i[0]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz")},m(v,b){T(v,t,b),J(e,t,null),V(t,n),h&&h.m(t,null),V(t,o),J(s,t,null),V(t,r),p&&p.m(t,null),V(t,a),A&&A.m(t,null),c=!0},p(v,[b]){const w=b&258?Fe(u,[{floorIndex:v[1],floorplanData:v[8]}]):{};e.$set(w),v[2]||v[3]?h?(h.p(v,b),b&12&&C(h,1)):(h=ds(v),h.c(),C(h,1),h.m(t,o)):h&&(se(),D(h,1,1,()=>{h=null}),re());const k=b&258?Fe(m,[{floorplanData:v[8],floorIndex:v[1]}]):{};s.$set(k),v[4]?p?(p.p(v,b),b&16&&C(p,1)):(p=hs(v),p.c(),C(p,1),p.m(t,a)):p&&(se(),D(p,1,1,()=>{p=null}),re()),v[7]?A?(A.p(v,b),b&128&&C(A,1)):(A=fs(v),A.c(),C(A,1),A.m(t,null)):A&&(se(),D(A,1,1,()=>{A=null}),re()),(!c||b&1&&l!==(l=Ie(`floorplan-plugin__floor${v[0]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz"))&&y(t,"class",l)},i(v){c||(C(e.$$.fragment,v),C(h),C(s.$$.fragment,v),C(p),C(A),c=!0)},o(v){D(e.$$.fragment,v),D(h),D(s.$$.fragment,v),D(p),D(A),c=!1},d(v){v&&L(t),Z(e),h&&h.d(),Z(s),p&&p.d(),A&&A.d()}}}function mh(i,t,e){let{isCurrent:n}=t,{floorIndex:o}=t,{highlightEnable:s}=t,{hoverEnable:r}=t,{roomLabelsEnable:a}=t,{roomAreaEnable:l}=t,{roomNameEnable:c}=t,{ruleLabelsEnable:u}=t,{floorplanData:d}=t,{getRoomAreaText:h}=t,{getLabelElement:m}=t,{getRuleDistanceText:g}=t,{adaptiveRoomLabelVisibleEnable:p}=t,{highlightData:A}=t;const v=bo(void 0);return i.$$set=b=>{"isCurrent"in b&&e(0,n=b.isCurrent),"floorIndex"in b&&e(1,o=b.floorIndex),"highlightEnable"in b&&e(2,s=b.highlightEnable),"hoverEnable"in b&&e(3,r=b.hoverEnable),"roomLabelsEnable"in b&&e(4,a=b.roomLabelsEnable),"roomAreaEnable"in b&&e(5,l=b.roomAreaEnable),"roomNameEnable"in b&&e(6,c=b.roomNameEnable),"ruleLabelsEnable"in b&&e(7,u=b.ruleLabelsEnable),"floorplanData"in b&&e(8,d=b.floorplanData),"getRoomAreaText"in b&&e(9,h=b.getRoomAreaText),"getLabelElement"in b&&e(10,m=b.getLabelElement),"getRuleDistanceText"in b&&e(11,g=b.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in b&&e(12,p=b.adaptiveRoomLabelVisibleEnable),"highlightData"in b&&e(13,A=b.highlightData)},[n,o,s,r,a,l,c,u,d,h,m,g,p,A,v]}class ph extends oe{constructor(t){super(),ie(this,t,mh,fh,ne,{isCurrent:0,floorIndex:1,highlightEnable:2,hoverEnable:3,roomLabelsEnable:4,roomAreaEnable:5,roomNameEnable:6,ruleLabelsEnable:7,floorplanData:8,getRoomAreaText:9,getLabelElement:10,getRuleDistanceText:11,adaptiveRoomLabelVisibleEnable:12,highlightData:13},hh)}}function gh(i){le(i,"svelte-86bqav",".floorplan-main.svelte-86bqav{width:100%;height:100%;pointer-events:none}")}function ms(i,t,e){const n=i.slice();return n[21]=t[e],n}function ps(i){let t,e,n,o,s,r=i[13].floorDatas,a=[];for(let d=0;d<r.length;d+=1)a[d]=gs(ms(i,r,d));const l=d=>D(a[d],1,1,()=>{a[d]=null});let c=i[5]&&vs(i),u=i[8]&&As(i);return{c(){t=B("div");for(let d=0;d<a.length;d+=1)a[d].c();e=$(),c&&c.c(),n=$(),u&&u.c(),y(t,"class","floorplan-main svelte-86bqav")},m(d,h){T(d,t,h);for(let m=0;m<a.length;m+=1)a[m].m(t,null);V(t,e),c&&c.m(t,null),V(t,n),u&&u.m(t,null),s=!0},p(d,h){if(i=d,h&2047696){r=i[13].floorDatas;let m;for(m=0;m<r.length;m+=1){const g=ms(i,r,m);a[m]?(a[m].p(g,h),C(a[m],1)):(a[m]=gs(g),a[m].c(),C(a[m],1),a[m].m(t,e))}for(se(),m=r.length;m<a.length;m+=1)l(m);re()}i[5]?c?(c.p(i,h),h&32&&C(c,1)):(c=vs(i),c.c(),C(c,1),c.m(t,n)):c&&(se(),D(c,1,1,()=>{c=null}),re()),i[8]?u?(u.p(i,h),h&256&&C(u,1)):(u=As(i),u.c(),C(u,1),u.m(t,null)):u&&(se(),D(u,1,1,()=>{u=null}),re())},i(d){if(!s){for(let h=0;h<r.length;h+=1)C(a[h]);C(c),C(u),o||Qe(()=>{o=zt(t,Tt,{duration:i[0],easing:At}),o.start()}),s=!0}},o(d){a=a.filter(Boolean);for(let h=0;h<a.length;h+=1)D(a[h]);D(c),D(u),s=!1},d(d){d&&L(t),ut(a,d),c&&c.d(),u&&u.d()}}}function gs(i){let t,e;const n=[{hoverEnable:i[6],highlightEnable:i[7],floorplanData:i[13],getRoomAreaText:i[16],getLabelElement:i[17],getRuleDistanceText:i[18],roomLabelsEnable:i[9],roomAreaEnable:i[10],roomNameEnable:i[11],ruleLabelsEnable:i[12],adaptiveRoomLabelVisibleEnable:i[19],highlightData:i[20]},{floorIndex:i[21].floorIndex},{isCurrent:i[21].floorIndex===i[4]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new ph({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&2047696?Fe(n,[r&2047680&&{hoverEnable:s[6],highlightEnable:s[7],floorplanData:s[13],getRoomAreaText:s[16],getLabelElement:s[17],getRuleDistanceText:s[18],roomLabelsEnable:s[9],roomAreaEnable:s[10],roomNameEnable:s[11],ruleLabelsEnable:s[12],adaptiveRoomLabelVisibleEnable:s[19],highlightData:s[20]},r&8192&&{floorIndex:s[21].floorIndex},r&8208&&{isCurrent:s[21].floorIndex===s[4]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function vs(i){let t,e;const n=[{panoIndex:i[3],floorplanData:i[13],lastPanoramaLongitude:i[14],cameraImageUrl:i[15]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new ed({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&57352?Fe(n,[{panoIndex:s[3],floorplanData:s[13],lastPanoramaLongitude:s[14],cameraImageUrl:s[15]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function As(i){let t,e;return t=new ad({props:{floorplanData:i[13],northDesc:i[2]}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&8192&&(s.floorplanData=n[13]),o&4&&(s.northDesc=n[2]),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function vh(i){let t,e,n=i[1]&&ps(i);return{c(){n&&n.c(),t=pe()},m(o,s){n&&n.m(o,s),T(o,t,s),e=!0},p(o,[s]){o[1]?n?(n.p(o,s),s&2&&C(n,1)):(n=ps(o),n.c(),C(n,1),n.m(t.parentNode,t)):n&&(se(),D(n,1,1,()=>{n=null}),re())},i(o){e||(C(n),e=!0)},o(o){D(n),e=!1},d(o){n&&n.d(o),o&&L(t)}}}function Ah(i,t,e){let{duration:n=0}=t,{visible:o}=t,{northDesc:s}=t,{panoIndex:r}=t,{floorIndex:a}=t,{cameraEnable:l}=t,{hoverEnable:c}=t,{highlightEnable:u}=t,{compassEnable:d}=t,{roomLabelsEnable:h}=t,{roomAreaEnable:m}=t,{roomNameEnable:g}=t,{ruleLabelsEnable:p}=t,{floorplanData:A}=t,{lastPanoramaLongitude:v}=t,{cameraImageUrl:b}=t,{getRoomAreaText:w}=t,{getLabelElement:k}=t,{getRuleDistanceText:I}=t,{adaptiveRoomLabelVisibleEnable:P}=t,{highlightData:M}=t;return i.$$set=x=>{"duration"in x&&e(0,n=x.duration),"visible"in x&&e(1,o=x.visible),"northDesc"in x&&e(2,s=x.northDesc),"panoIndex"in x&&e(3,r=x.panoIndex),"floorIndex"in x&&e(4,a=x.floorIndex),"cameraEnable"in x&&e(5,l=x.cameraEnable),"hoverEnable"in x&&e(6,c=x.hoverEnable),"highlightEnable"in x&&e(7,u=x.highlightEnable),"compassEnable"in x&&e(8,d=x.compassEnable),"roomLabelsEnable"in x&&e(9,h=x.roomLabelsEnable),"roomAreaEnable"in x&&e(10,m=x.roomAreaEnable),"roomNameEnable"in x&&e(11,g=x.roomNameEnable),"ruleLabelsEnable"in x&&e(12,p=x.ruleLabelsEnable),"floorplanData"in x&&e(13,A=x.floorplanData),"lastPanoramaLongitude"in x&&e(14,v=x.lastPanoramaLongitude),"cameraImageUrl"in x&&e(15,b=x.cameraImageUrl),"getRoomAreaText"in x&&e(16,w=x.getRoomAreaText),"getLabelElement"in x&&e(17,k=x.getLabelElement),"getRuleDistanceText"in x&&e(18,I=x.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in x&&e(19,P=x.adaptiveRoomLabelVisibleEnable),"highlightData"in x&&e(20,M=x.highlightData)},[n,o,s,r,a,l,c,u,d,h,m,g,p,A,v,b,w,k,I,P,M]}class yo extends oe{constructor(t){super(),ie(this,t,Ah,vh,ne,{duration:0,visible:1,northDesc:2,panoIndex:3,floorIndex:4,cameraEnable:5,hoverEnable:6,highlightEnable:7,compassEnable:8,roomLabelsEnable:9,roomAreaEnable:10,roomNameEnable:11,ruleLabelsEnable:12,floorplanData:13,lastPanoramaLongitude:14,cameraImageUrl:15,getRoomAreaText:16,getLabelElement:17,getRuleDistanceText:18,adaptiveRoomLabelVisibleEnable:19,highlightData:20},gh)}}const bh="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC";function yh(i){return H(this,null,function*(){const t=new Headers({"Content-Type":"text/plain"}),e=function(o){return H(this,null,function*(){const s={index:o.index,url:o.url,svgUrl:o.svg_url};if(o.svg_url){const r=yield fetch(o.svg_url,{headers:t}).then(a=>a.text());s.svgContent=r}return s})};return yield Promise.all(i.map(e))})}function wh(i){return{id:i.id,size:i.size,name:i.name,path:i.path,roomType:i.room_type,floorType:i.floor_type,roomLabel:{position:i.room_label.position,positionInImage:i.room_label.position_in_image},observerIndexs:i.observer_indexs}}function Eh(i){return{floorName:i.floor_name,floorIndex:i.floor_index,rooms:i.rooms.map(wh),rules:i.rules}}function Ph(i){return{index:i.index,floorIndex:i.floor_index,position:i.position,positionInImage:i.position_in_image}}function Ch(i){return{rad:i.rad,position:i.position,positionInImage:i.position_in_image,northRad:i.north_rad,roomId:i.room_id,floorIndex:i.floor_index}}function wt(i){return H(this,null,function*(){const t=yield yh(i.outlines),e=i.computed_data.bounding,n=i.computed_data.floor_datas.map(Eh),o=i.computed_data.entrance?Ch(i.computed_data.entrance):null;return{outlines:t,entrance:o,bounding:e,floorDatas:n,observers:i.computed_data.observers.map(Ph)}})}function Ih(i,t,e){return i.map(o=>{const s=o.position,r=o.icon?o.icon:{url:bh,width:45,height:48},a=Gd(s,t),l=Fd(s,e),c=Hd(l,e);return{floorIndex:a,icon:r,id:o.id,position:l,positionInImage:c}})}function kh(i,t){return t(i),i}function yi(i,t){return kh({},e=>{for(const n in i)t.indexOf(n)===-1&&(e[n]=i[n])})}function bs(i,t){const e=Math.max(...i.work.observers.map(n=>n.floorIndex));return t>e?i.model.bounding.max.y:Math.max(...i.work.observers.filter(n=>n.floorIndex===t).map(n=>n.standingPosition.y))}function wo(i,t,e=gt.BOUNDING_CENTER){const n=bs(i,t),o=bs(i,t+1);return e===gt.BOUNDING_CENTER?(i.model.bounding.max.y+i.model.bounding.min.y)/2:e===gt.CEILING?o:n}function Eo(i,t,e,n){const o=wo(i,e,n==null?void 0:n.attachedTo),s=new E.Vector3(0,o,0),r=new E.Vector3(1,o,0),a=s.clone().project(i.camera),l=r.clone().project(i.camera);return Math.abs((l.x-a.x)/1e3)*(t.getBoundingClientRect().width/2)}class xn{constructor(t,e){f(this,"VERSION","2.16.0-alpha.2");f(this,"five");f(this,"hooks",new Kt);f(this,"staticPrefix","//vrlab-static.ljcdn.com");this.five=t,e!=null&&e.staticPrefix&&(this.staticPrefix=e.staticPrefix)}getCurrentState(){return this.state}}class Bt extends xn{}var _e=(i=>(i.UnknownError="UnknownError",i.DataNotLoaded="DataNotLoaded",i.BreakOffByHide="BreakOffByHide",i.BreakOffByDisable="BreakOffByDisable",i.ModelNotLoaded="ModelNotLoaded",i.ChangeModeError="ChangeModeError",i.UpdateCameraError="UpdateCameraError",i))(_e||{});const il=500,xh=80;function io(i,t,e=4){return Math.floor(i*Math.pow(10,e))===Math.floor(t*Math.pow(10,e))}function ol(i,t){return H(this,null,function*(){yield new Promise((e,n)=>{i.changeMode(...t).catch(o=>n(o)),i.once("initAnimationEnded",()=>{const o=i.getCurrentState(),s=t[0];o.mode!==s&&n(new Error("mode \u4E0E\u9884\u671F\u4E0D\u7B26")),(()=>{const l=t[1];return l?Object.keys(l).every(c=>{const u=o[c];if(u===void 0)return!0;const d=l[c];return typeof u=="number"&&typeof d=="number"?io(u,d,2):u===d}):!0})()||n(new Error("five pose \u4E0E\u9884\u671F\u4E0D\u7B26")),e()})})})}function Po(i,t){if(i.currentMode!==t.mode)return!1;const{latitude:e,longitude:n,fov:o}=t,{latitude:s,longitude:r}=i.getCurrentState(),a=i.camera.fov;return!(!io(e,s,2)||!io(n,r,2)||o!==a)}function sl(i,t,e=!0){return H(this,null,function*(){if(Po(i,t)===!0)return;const o=i.getCurrentState();if(o.mode!==t.mode){const[u]=yield ci(ol(i,[t.mode,t,void 0,e]));if(u)throw new Error(_e.ChangeModeError);return}const{latitude:s,longitude:r,fov:a}=o,l=Math.min(1e3,Math.max(200,Math.abs(s-Math.PI/2)*1e3,(r>Math.PI?2*Math.PI-r:r)*500,Math.abs(a-t.fov)*10)),[c]=yield ci(i.updateCamera(t,l,e));if(c)throw new Error(_e.UpdateCameraError)})}function qt(i,t,e=300){const n=i.getElement();!n||(n.style.opacity=t+"",n.style.transition=e===0?"none":`opacity ${e}ms linear`,e!==0&&Promise.race([new Promise(o=>n.addEventListener("transitionend",o,{once:!0})),new Promise(o=>setTimeout(o,e))]).then(()=>{n.style.transition="none"}))}function Dh(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)>5*Math.PI/180,o=e>5*(Math.PI/180)&&e<355*(Math.PI/180);return n||o}function Mh(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)<10*Math.PI/180,o=e<30*(Math.PI/180)||e>330*(Math.PI/180);return n&&o}class Lh extends Bt{constructor(e,n){var a;super(e);f(this,"name","modelFloorplanPlugin");f(this,"state");f(this,"data");f(this,"showState");f(this,"showPromise");f(this,"app");f(this,"panoIndex",0);f(this,"floorIndex",0);f(this,"selector");f(this,"showRejection");f(this,"wrapper");f(this,"container",document.createElement("div"));f(this,"lastPanoramaLongitude",0);f(this,"size",{width:0,height:0});f(this,"hasAddedEventListener",!1);f(this,"isHiddenByHideFunc",!1);f(this,"highlightData",{});f(this,"dispose",()=>{var e,n;this.removeEventListener(),(e=this.app)==null||e.$destroy(),this.app=void 0,(n=this.container)==null||n.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});f(this,"show",(...n)=>H(this,[...n],function*(e={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const o=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},o),this._show(e)}));f(this,"hide",(...n)=>H(this,[...n],function*(e={}){!this.state.enabled||(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},e.userAction||!0),this._hide(e)))}));f(this,"updateSize",()=>{if(!this.data||!Po(this.five,this.showState)||!this.container||!this.wrapper)return;const{min:e,max:n}=this.data.bounding,o=n.x-e.x,s=n.y-e.y,r=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Eo(this.five,this.wrapper,this.floorIndex,r),l=Math.ceil(o*a),c=Math.ceil(s*a);this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c})});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o,s,r;const{userAction:n}=e;this.hooks.emit("disable",{userAction:n}),(o=this.showRejection)==null||o.call(this,_e.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(r=this.container)==null||r.remove(),this.removeEventListener()});f(this,"_enable",e=>{const{userAction:n}=e;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n}))});f(this,"_show",e=>H(this,null,function*(){var r;if(!this.state.enabled)return;if(!((r=this.five.model)!=null&&r.loaded))throw new Error(_e.ModelNotLoaded);if(!this.data)throw new Error(_e.DataNotLoaded);this.isHiddenByHideFunc=!1;const n={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},o=Q(Q({},n),e),s=()=>H(this,null,function*(){this.hooks.emit("show",{userAction:o.userAction,auto:o.isAutoShow});let a=!1,l;this.showRejection=h=>{a=!0,l=h};const[c]=yield ci(sl(this.five,this.showState,o.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(_e.UnknownError);this.updateSize(),this.floorIndex=o.floorIndex,this.five.model.show(this.floorIndex);const u=o.modelOpacity,d=o.immediately?0:il;qt(this.five,u,d),this.render(d)});return this.showPromise=s().then(()=>{this.hooks.emit("showAnimationEnded",{auto:o.isAutoShow,userAction:o.userAction})}).catch(a=>{if(this.updateState({visible:!1},o.userAction),!o.isAutoShow&&a instanceof Error)throw a}).finally(()=>{this.showPromise=void 0,this.showRejection=void 0}),this.showPromise}));f(this,"_hide",e=>{var s;(s=this.showRejection)==null||s.call(this,_e.BreakOffByHide),this.showPromise=void 0;const o=Q(Q({},{userAction:!0,isAutoHide:!1}),e);qt(this.five,1,0),this.hooks.emit("hide",{auto:o.isAutoHide,userAction:o.userAction}),this.render()});f(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});f(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const e=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!e)throw new Error("\u4E0D\u6B63\u786E\u7684\u7236\u5BB9\u5668\u9009\u62E9\u5668");this.wrapper=e,e.append(this.container)});f(this,"onFiveModeChange",e=>{e!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});f(this,"onFiveInteriaPan",(e,n)=>{if(!n||this.state.config.autoShowEnable===!1||this.isHiddenByHideFunc)return;const o=this.five.getCurrentState();o.mode==="Floorplan"&&(this.state.visible||Mh(o)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0})))});f(this,"onFivePanoArrived",e=>{var n;!((n=this.five)!=null&&n.work)||(this.panoIndex=e,this.floorIndex=this.five.work.observers[e].floorIndex)});f(this,"onFiveCameraUpdate",(e,n)=>{if(!this.state.visible||this.showPromise)return;const o=this.five.getCurrentState();Dh(o)&&(this.updateState({visible:!1},n),this._hide({userAction:n,isAutoHide:!0}))});f(this,"onFiveWantsGesture",(e,n)=>{if(!!this.state.visible&&(n.length>1||e==="mouseWheel"))return!1});f(this,"onFiveWantsPanGesture",(e,n)=>{if(this.five.getCurrentState().mode==="Floorplan"&&this.state.config.autoShowEnable!==!1&&n&&this.state.visible)return this.five.updateCamera(this.showState,0),!1});f(this,"onFiveWantsTapGesture",()=>this.handleClick());f(this,"onFiveWantsChangeMode",(e,n)=>{n==="Panorama"&&e==="Floorplan"&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});f(this,"onModelShownFloorChange",e=>{if(this.floorIndex!==e){if(e===null){const n=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[n].floorIndex;return}this.floorIndex=e,this.updateSize(),this.render()}});n!=null&&n.selector&&(this.selector=n.selector,console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5")),this.showState={mode:"Floorplan",longitude:0,latitude:Math.PI/2,fov:xh/((a=n==null?void 0:n.scale)!=null?a:1)};const o={northDesc:"\u5317",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,adaptiveRoomLabelVisibleEnable:!0,cameraImageUrl:yt,attachedTo:gt.BOUNDING_CENTER,getLabelElement:void 0,getRoomAreaText:l=>(l/1e6).toFixed(1)+"\u33A1",getRuleDistanceText:l=>l.toString()},s=n?yi(n,["selector","scale"]):{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!1,config:r},this.initContainer(),e.model.loaded?this.onFiveModelLoaded():e.once("modelLoaded",this.onFiveModelLoaded),e.once("dispose",this.dispose),this.addEventListener()}load(e,n,o=!0){return H(this,null,function*(){function s(u){return Object.prototype.hasOwnProperty.apply(u,["version"])}const r=e;r&&!r.version&&console.warn("\u4F20\u5165 serverData.data \u7684\u65B9\u5F0F\u540E\u7EED\u53EF\u80FD\u4E0D\u518D\u652F\u6301\uFF0C\u8BF7\u628A serverData \u6574\u4F53\u4F20\u5165 load \u51FD\u6570");const a=JSON.parse(JSON.stringify(e)),l=s(a)?a.data:a,c=this.data;this.data=yield wt(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),n&&this.updateState(n,o),this.render()})}appendTo(e){if(this.wrapper=e,!!this.state.enabled)return e.appendChild(this.container),this.render(),this}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled&&(e.enabled?this._enable({userAction:s}):this._disable({userAction:s})),e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}this.render()}changeConfigs(e,n=!0){this.updateState({config:e},n),this.render()}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}updateState(e,n){const o=this.state,s=e.config?Q(Q({},o.config),e.config):o.config;this.state=fe(Q(Q({},this.state),e),{config:s}),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const e=this.five;e.on("modeChange",this.onFiveModeChange),e.on("interiaPan",this.onFiveInteriaPan),e.on("panoArrived",this.onFivePanoArrived),e.on("cameraUpdate",this.onFiveCameraUpdate),e.on("wantsGesture",this.onFiveWantsGesture),e.on("wantsPanGesture",this.onFiveWantsPanGesture),e.on("wantsTapGesture",this.onFiveWantsTapGesture),e.on("wantsChangeMode",this.onFiveWantsChangeMode),e.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const e=this.five;this.hasAddedEventListener=!1,e.off("modelLoaded",this.onFiveModelLoaded),e.off("modeChange",this.onFiveModeChange),e.off("interiaPan",this.onFiveInteriaPan),e.off("panoArrived",this.onFivePanoArrived),e.off("cameraUpdate",this.onFiveCameraUpdate),e.off("wantsGesture",this.onFiveWantsGesture),e.off("wantsPanGesture",this.onFiveWantsPanGesture),e.off("wantsTapGesture",this.onFiveWantsTapGesture),e.off("wantsChangeMode",this.onFiveWantsChangeMode),e.off("modelShownFloorChange",this.onModelShownFloorChange)}render(e){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const n=fe(Q({},this.state.config),{visible:this.state.visible,duration:e!=null?e:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(n);this.app=new yo({target:this.container,intro:!0,props:n})}}const Sh=(i,t)=>new Lh(i,t);function Th(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)>5*Math.PI/180,o=e>5*(Math.PI/180)&&e<355*(Math.PI/180);return n||o}function zh(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)<10*Math.PI/180,o=e<30*(Math.PI/180)||e>330*(Math.PI/180);return n&&o}class Bh extends Bt{constructor(e,n){super(e);f(this,"name","modelFloorplanPlugin");f(this,"state");f(this,"data");f(this,"showState");f(this,"showPromise");f(this,"app");f(this,"panoIndex",0);f(this,"floorIndex",0);f(this,"selector");f(this,"showRejection");f(this,"wrapper");f(this,"container",document.createElement("div"));f(this,"lastPanoramaLongitude",0);f(this,"size",{width:0,height:0});f(this,"hasAddedEventListener",!1);f(this,"isHiddenByHideFunc",!1);f(this,"highlightData",{});f(this,"dispose",()=>{var e,n;this.removeEventListener(),(e=this.app)==null||e.$destroy(),this.app=void 0,(n=this.container)==null||n.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});f(this,"show",(...n)=>H(this,[...n],function*(e={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const o=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},o),this._show(e)}));f(this,"hide",(...n)=>H(this,[...n],function*(e={}){!this.state.enabled||(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},e.userAction||!0),this._hide(e)))}));f(this,"updateSize",()=>{if(!this.data||!Po(this.five,this.showState)||!this.container||!this.wrapper)return;const{min:e,max:n}=this.data.bounding,o=n.x-e.x,s=n.y-e.y,r=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Eo(this.five,this.wrapper,this.floorIndex,r),l=Math.ceil(o*a),c=Math.ceil(s*a);this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c})});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o,s,r;const{userAction:n}=e;this.hooks.emit("disable",{userAction:n}),(o=this.showRejection)==null||o.call(this,_e.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(r=this.container)==null||r.remove(),this.removeEventListener()});f(this,"_enable",e=>{const{userAction:n}=e;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n}))});f(this,"_show",e=>H(this,null,function*(){var r;if(!this.state.enabled)return;if(!((r=this.five.model)!=null&&r.loaded))throw new Error(_e.ModelNotLoaded);if(!this.data)throw new Error(_e.DataNotLoaded);this.isHiddenByHideFunc=!1;const n={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},o=Q(Q({},n),e),s=()=>H(this,null,function*(){this.hooks.emit("show",{userAction:o.userAction,auto:o.isAutoShow});let a=!1,l;this.showRejection=h=>{a=!0,l=h};const[c]=yield ci(sl(this.five,this.showState,o.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(_e.UnknownError);this.updateSize(),this.updatePosition(),this.floorIndex=o.floorIndex,this.five.model.show(this.floorIndex);const u=o.modelOpacity,d=o.immediately?0:il;qt(this.five,u,d),this.render(d)});return this.showPromise=s().then(()=>{this.hooks.emit("showAnimationEnded",{auto:o.isAutoShow,userAction:o.userAction})}).catch(a=>{if(this.updateState({visible:!1},o.userAction),!o.isAutoShow&&a instanceof Error)throw a}).finally(()=>{this.showPromise=void 0,this.showRejection=void 0}),this.showPromise}));f(this,"_hide",e=>{var s;(s=this.showRejection)==null||s.call(this,_e.BreakOffByHide),this.showPromise=void 0;const o=Q(Q({},{userAction:!0,isAutoHide:!1}),e);qt(this.five,1,0),this.hooks.emit("hide",{auto:o.isAutoHide,userAction:o.userAction}),this.render()});f(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});f(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const e=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!e)throw new Error("\u4E0D\u6B63\u786E\u7684\u7236\u5BB9\u5668\u9009\u62E9\u5668");this.wrapper=e,e.append(this.container)});f(this,"onFiveModeChange",e=>{e!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});f(this,"onFivePanoArrived",e=>{var n;!((n=this.five)!=null&&n.work)||(this.panoIndex=e,this.floorIndex=this.five.work.observers[e].floorIndex)});f(this,"onFiveCameraUpdate",(e,n)=>{if(!this.state.visible||this.showPromise)return;const o=this.five.getCurrentState();this.updatePosition(),this.updateSize(),Th(o)&&(this.updateState({visible:!1},n),this._hide({userAction:n}))});f(this,"onFiveWantsPanGesture",(e,n)=>{if(this.five.getCurrentState().mode===this.showState.mode&&this.state.config.autoShowEnable!==!1){if(n&&this.state.visible)return this.five.updateCamera(this.showState,0),!1;if(n&&!this.state.visible){if(this.isHiddenByHideFunc)return;const o=this.five.getCurrentState();return o.mode!==this.showState.mode||this.state.visible?void 0:(zh(o)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0})),!1)}}});f(this,"onFiveWantsTapGesture",()=>this.handleClick());f(this,"onFiveWantsChangeMode",(e,n)=>{n==="Panorama"&&e===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});f(this,"onModelShownFloorChange",e=>{if(this.floorIndex!==e){if(e===null){const n=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[n].floorIndex;return}this.floorIndex=e,this.updateSize(),this.render()}});n!=null&&n.selector&&(this.selector=n.selector,console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5")),this.showState={mode:"Mapview",longitude:0,latitude:Math.PI/2,fov:90};const o={northDesc:"\u5317",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,cameraImageUrl:yt,attachedTo:gt.BOUNDING_CENTER,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,getRoomAreaText:a=>(a/1e6).toFixed(1)+"\u33A1",getRuleDistanceText:a=>a.toString()},s=n?yi(n,["selector","scale"]):{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!1,config:r},this.initContainer(),e.model.loaded?this.onFiveModelLoaded():e.once("modelLoaded",this.onFiveModelLoaded),e.once("dispose",this.dispose),this.addEventListener()}load(e,n,o=!0){return H(this,null,function*(){function s(u){return Object.prototype.hasOwnProperty.apply(u,["version"])}const r=e;r&&!r.version&&console.warn("\u4F20\u5165 serverData.data \u7684\u65B9\u5F0F\u540E\u7EED\u53EF\u80FD\u4E0D\u518D\u652F\u6301\uFF0C\u8BF7\u628A serverData \u6574\u4F53\u4F20\u5165 load \u51FD\u6570");const a=JSON.parse(JSON.stringify(e)),l=s(a)?a.data:a,c=this.data;this.data=yield wt(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),n&&this.updateState(n,o),this.render()})}appendTo(e){if(this.wrapper=e,!!this.state.enabled)return e.appendChild(this.container),this.render(),this}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled&&(e.enabled?this._enable({userAction:s}):this._disable({userAction:s})),e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}}changeConfigs(e,n=!0){this.updateState({config:e},n),this.render()}updatePosition(){var a;const e=wo(this.five,this.floorIndex,this.state.config.attachedTo),n=(a=this.five.model)==null?void 0:a.bounding.getCenter(new E.Vector3).setY(e);if(!n)return;const o=n.clone().project(this.five.camera),s=(o.x+1)/2,r=-(o.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=r*100+"%"}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}updateState(e,n){const o=this.state,s=e.config?Q(Q({},o.config),e.config):o.config;this.state=fe(Q(Q({},this.state),e),{config:s}),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const e=this.five;e.on("modeChange",this.onFiveModeChange),e.on("panoArrived",this.onFivePanoArrived),e.on("cameraUpdate",this.onFiveCameraUpdate),e.on("wantsPanGesture",this.onFiveWantsPanGesture),e.on("wantsTapGesture",this.onFiveWantsTapGesture),e.on("wantsChangeMode",this.onFiveWantsChangeMode),e.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const e=this.five;this.hasAddedEventListener=!1,e.off("modelLoaded",this.onFiveModelLoaded),e.off("modeChange",this.onFiveModeChange),e.off("panoArrived",this.onFivePanoArrived),e.off("cameraUpdate",this.onFiveCameraUpdate),e.off("wantsPanGesture",this.onFiveWantsPanGesture),e.off("wantsTapGesture",this.onFiveWantsTapGesture),e.off("wantsChangeMode",this.onFiveWantsChangeMode),e.off("modelShownFloorChange",this.onModelShownFloorChange)}render(e){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const n=fe(Q({},this.state.config),{visible:this.state.visible,duration:e!=null?e:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(n);this.app=new yo({target:this.container,intro:!0,props:n})}}const Vh=(i,t)=>new Bh(i,t);class jh extends Bt{constructor(e,n){super(e);f(this,"name","topviewFloorplanPlugin");f(this,"state");f(this,"data");f(this,"app");f(this,"selector");f(this,"panoIndex",0);f(this,"floorIndex",0);f(this,"wrapper");f(this,"container",document.createElement("div"));f(this,"lastPanoramaLongitude",0);f(this,"size",{width:0,height:0});f(this,"hasAddedEventListener",!1);f(this,"isHiddenByHideFunc",!1);f(this,"highlightData",{});f(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper||this.five.getCurrentState().mode!=="Topview")return;const{min:e,max:n}=this.data.bounding,o=n.x-e.x,s=n.y-e.y,r=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Eo(this.five,this.wrapper,this.floorIndex,r),l=Math.ceil(o*a),c=Math.ceil(s*a);this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c})});f(this,"dispose",()=>{var e,n;this.removeEventListener(),(e=this.app)==null||e.$destroy(),this.app=void 0,(n=this.container)==null||n.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o,s;const{userAction:n}=e;(o=this.app)==null||o.$destroy(),this.app=void 0,(s=this.container)==null||s.remove(),this.removeEventListener(),this.hooks.emit("disable",{userAction:n})});f(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const e=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!e)throw new Error("\u4E0D\u6B63\u786E\u7684\u7236\u5BB9\u5668\u9009\u62E9\u5668");this.wrapper=e,e.append(this.container)});f(this,"onFiveModeChange",(...[e,,,,n])=>{e!=="Topview"&&this.state.visible&&(this.updateState({visible:!1},n),this._hide({userAction:n}))});f(this,"onFivePanoArrived",e=>{var n;!((n=this.five)!=null&&n.work)||(this.panoIndex=e,this.floorIndex=this.five.work.observers[e].floorIndex)});f(this,"onFiveCameraUpdate",(e,n)=>{!this.state.visible||(this.updatePosition(),this.updateSize())});f(this,"onFiveWantsGesture",e=>{if(!(e!=="pan"&&e!=="pinch"&&e!=="mouseWheel")&&this.state.visible&&!this.state.config.gestureEnable)return!1});f(this,"onFiveWantsMoveToPano",()=>{if(this.state.visible&&this.state.config.preventRoomClick)return!1});f(this,"onFiveInitAnimationEnded",(...[,,e])=>{const{mode:n}=this.five.getCurrentState();n==="Topview"&&!this.isHiddenByHideFunc&&!this.state.visible&&this.state.config.autoShowEnable&&(this.updateState({visible:!0},e),this._show({userAction:e}))});f(this,"onModelShownFloorChange",e=>{if(this.floorIndex!==e){if(e===null){const n=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[n].floorIndex;return}this.floorIndex=e,this.updateSize(),this.render()}});n!=null&&n.selector&&(this.selector=n.selector,console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5"));const o={northDesc:"\u5317",modelOpacity:1,cameraEnable:!0,hoverEnable:!0,highlightEnable:!1,compassEnable:!0,gestureEnable:!1,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,cameraImageUrl:yt,attachedTo:gt.BOUNDING_CENTER,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,getRoomAreaText:a=>(a/1e6).toFixed(1)+"\u33A1",getRuleDistanceText:a=>a.toString()},s=n?yi(n,["selector","scale"]):{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!1,config:r},this.initContainer(),e.model.loaded?this.onFiveModelLoaded():e.once("modelLoaded",this.onFiveModelLoaded),e.once("dispose",this.dispose),this.addEventListener()}load(e,n,o=!0){return H(this,null,function*(){function s(u){return Object.prototype.hasOwnProperty.apply(u,["version"])}const r=e;r&&!r.version&&console.warn("\u4F20\u5165 serverData.data \u7684\u65B9\u5F0F\u540E\u7EED\u53EF\u80FD\u4E0D\u518D\u652F\u6301\uFF0C\u8BF7\u628A serverData \u6574\u4F53\u4F20\u5165 load \u51FD\u6570");const a=JSON.parse(JSON.stringify(e)),l=s(a)?a.data:a,c=this.data;this.data=yield wt(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),n&&this.updateState(n,o),this.render()})}updatePosition(){var a;const e=wo(this.five,this.floorIndex,this.state.config.attachedTo),n=(a=this.five.model)==null?void 0:a.bounding.getCenter(new E.Vector3).setY(e);if(!n)return;const o=n.clone().project(this.five.camera),s=(o.x+1)/2,r=-(o.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=r*100+"%"}appendTo(e){if(this.wrapper=e,!!this.state.enabled)return e.appendChild(this.container),this.render(),this}show(){return H(this,arguments,function*(e={}){if(this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},n),this._show({userAction:n})})}hide(){return H(this,arguments,function*(e={}){if(this.isHiddenByHideFunc=!0,!this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!1},n),this._hide({userAction:n})})}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled){const r={userAction:s};e.enabled?this._enable(r):this._disable(r)}if(e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}}changeConfigs(e,n=!0){this.updateState({config:e},n),this.render()}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}_show(e){return H(this,null,function*(){if(!this.state.enabled)return;this.isHiddenByHideFunc=!1;const{userAction:n}=e;this.hooks.emit("show",{userAction:n,auto:!1}),this.five.getCurrentState().mode!=="Topview"&&(yield ol(this.five,["Topview",void 0,void 0,n])),this.five.model.show(this.floorIndex),this.updatePosition(),this.updateSize();const o=500,s=this.state.config.modelOpacity;qt(this.five,s,o),this.hooks.emit("showAnimationEnded",{userAction:n,auto:!1}),this.render()})}_hide(e){return H(this,null,function*(){if(!this.state.enabled)return;const{userAction:n}=e;this.hooks.emit("hide",{userAction:n,auto:!1});const o=1,s=0;qt(this.five,o,s),this.render()})}_enable(e){const{userAction:n}=e;this.addEventListener(),this.wrapper&&this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n})}updateState(e,n){const o=this.state,s=e.config?Q(Q({},o.config),e.config):o.config;this.state=fe(Q(Q({},this.state),e),{config:s}),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const e=this.five;e.on("modeChange",this.onFiveModeChange),e.on("panoArrived",this.onFivePanoArrived),e.on("cameraUpdate",this.onFiveCameraUpdate),e.on("wantsGesture",this.onFiveWantsGesture),e.on("wantsMoveToPano",this.onFiveWantsMoveToPano),e.on("initAnimationEnded",this.onFiveInitAnimationEnded),e.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const e=this.five;this.hasAddedEventListener=!1,e.off("modeChange",this.onFiveModeChange),e.off("panoArrived",this.onFivePanoArrived),e.off("cameraUpdate",this.onFiveCameraUpdate),e.off("wantsGesture",this.onFiveWantsGesture),e.off("wantsMoveToPano",this.onFiveWantsMoveToPano),e.off("initAnimationEnded",this.onFiveInitAnimationEnded),e.off("modelShownFloorChange",this.onModelShownFloorChange)}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate3d(-50%, -50%, 10px)",zIndex:10,pointerEvents:"none","will-change":"width, height"}),this.five.addExtraElement(this.container)}render(e){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const n=fe(Q({},this.state.config),{visible:this.state.visible,duration:e!=null?e:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(n);this.app=new yo({target:this.container,intro:!0,props:n})}}const Oh=(i,t)=>new jh(i,t);function Co(i,t=200){let e;return function(...n){e||(i(...n),e=setTimeout(function(){e=null},t))}}function Rh(i){le(i,"svelte-1nqrlxd",".plugin-radar__camera-wrapper.svelte-1nqrlxd{width:100%;height:100%;position:absolute;pointer-events:none}.plugin-radar__camera-position.svelte-1nqrlxd{position:absolute;left:0;top:0;width:0;height:0;transform:none;pointer-events:none;transition:transform 1s linear}.plugin-radar__camera-rotate.svelte-1nqrlxd{position:absolute;left:-0.9375rem;top:-0.9375rem;width:1.0625rem;height:1.0625rem;transform-origin:0.9375rem 0.9375rem;transform:rotate(45deg);background-repeat:no-repeat;background-size:100%}")}function Qh(i){let t,e,n;return{c(){t=B("div"),e=B("div"),n=B("div"),y(n,"class","plugin-radar__camera-rotate svelte-1nqrlxd"),z(n,"background-image","url("+(i[0]||yt)+")"),z(n,"transform",i[1]),y(e,"class","plugin-radar__camera-position svelte-1nqrlxd"),z(e,"transform",i[2]),y(t,"class","plugin-radar__camera-wrapper svelte-1nqrlxd")},m(o,s){T(o,t,s),V(t,e),V(e,n)},p(o,[s]){s&1&&z(n,"background-image","url("+(o[0]||yt)+")"),s&2&&z(n,"transform",o[1]),s&4&&z(e,"transform",o[2])},i:X,o:X,d(o){o&&L(t)}}}function Fh(i){return`rotate(${Math.floor(i/Math.PI*180)*-1+45}deg)`}function Hh(i,t,e){let n,o,{five:s}=t,{pxmm:r}=t,{floorplanData:a}=t,{cameraImageUrl:l}=t,c=s.getCurrentState().panoIndex,u=s.getCurrentState().longitude;function d(g,p){const A=g.bounding,v=g.observers[p];if(!v)return"";const b=(A.max.x-A.min.x)*r,w=(A.max.y-A.min.y)*r,k=Math.floor(v.positionInImage.x*b),I=Math.floor(v.positionInImage.y*w);return`translate(${k}px, ${I}px)`}function h(g){e(6,c=g)}const m=Co(g=>{e(7,u=g.longitude)},1e3/60);return Ze(()=>(s.on("panoWillArrive",h),s.on("cameraDirectionUpdate",m),function(){s.off("panoWillArrive",h),s.off("cameraDirectionUpdate",m)})),i.$$set=g=>{"five"in g&&e(3,s=g.five),"pxmm"in g&&e(4,r=g.pxmm),"floorplanData"in g&&e(5,a=g.floorplanData),"cameraImageUrl"in g&&e(0,l=g.cameraImageUrl)},i.$$.update=()=>{i.$$.dirty&96&&e(2,n=d(a,c)),i.$$.dirty&128&&e(1,o=Fh(u))},[l,o,n,s,r,a,c,u]}class Gh extends oe{constructor(t){super(),ie(this,t,Hh,Qh,ne,{five:3,pxmm:4,floorplanData:5,cameraImageUrl:0},Rh)}}function Wh(i){le(i,"svelte-1i87fz7",".plugin-pano-floorplan__extra-objects.svelte-1i87fz7{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.plugin-pano-floorplan__extra-object-item--position.svelte-1i87fz7{position:absolute;width:0;height:0}.plugin-pano-floorplan__extra-object-item.svelte-1i87fz7{transform:translate(-50%, -50%)}")}function ys(i,t,e){const n=i.slice();return n[1]=t[e],n}function ws(i,t){let e,n,o=`${t[1].icon.width/16}rem`,s=`${t[1].icon.height/16}rem`,r,a=`${t[1].positionInImage.y*100}%`,l=`${t[1].positionInImage.x*100}%`;return{key:i,first:null,c(){e=B("div"),n=B("div"),r=$(),y(n,"class","plugin-pano-floorplan__extra-object-item svelte-1i87fz7"),z(n,"background-image",`url(${t[1].icon.url})`),z(n,"width",o),z(n,"height",s),y(e,"class","plugin-pano-floorplan__extra-object-item--position svelte-1i87fz7"),z(e,"top",a),z(e,"left",l),this.first=e},m(c,u){T(c,e,u),V(e,n),V(e,r)},p(c,u){t=c,u&1&&z(n,"background-image",`url(${t[1].icon.url})`),u&1&&o!==(o=`${t[1].icon.width/16}rem`)&&z(n,"width",o),u&1&&s!==(s=`${t[1].icon.height/16}rem`)&&z(n,"height",s),u&1&&a!==(a=`${t[1].positionInImage.y*100}%`)&&z(e,"top",a),u&1&&l!==(l=`${t[1].positionInImage.x*100}%`)&&z(e,"left",l)},d(c){c&&L(e)}}}function _h(i){let t,e=[],n=new Map,o=i[0];const s=r=>r[1].id;for(let r=0;r<o.length;r+=1){let a=ys(i,o,r),l=s(a);n.set(l,e[r]=ws(l,a))}return{c(){t=B("div");for(let r=0;r<e.length;r+=1)e[r].c();y(t,"class","plugin-pano-floorplan__extra-objects svelte-1i87fz7")},m(r,a){T(r,t,a);for(let l=0;l<e.length;l+=1)e[l].m(t,null)},p(r,[a]){a&1&&(o=r[0],e=Ke(e,a,s,1,r,o,n,t,vo,ws,null,ys))},i:X,o:X,d(r){r&&L(t);for(let a=0;a<e.length;a+=1)e[a].d()}}}function Nh(i,t,e){let{extraObjects:n=[]}=t;return i.$$set=o=>{"extraObjects"in o&&e(0,n=o.extraObjects)},[n]}class Xh extends oe{constructor(t){super(),ie(this,t,Nh,_h,ne,{extraObjects:0},Wh)}}function Es(i){let t,e;const n=[{five:i[0],pxmm:i[1],floorIndex:i[2],floorplanData:i[4],onRoomHeightClick:i[7],highlightData:i[5]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new nl({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&183?Fe(n,[{five:s[0],pxmm:s[1],floorIndex:s[2],floorplanData:s[4],onRoomHeightClick:s[7],highlightData:s[5]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function Yh(i){let t,e,n,o,s,r;const a=[{floorIndex:i[2],floorplanData:i[4]}];let l={};for(let u=0;u<a.length;u+=1)l=Be(l,a[u]);t=new el({props:l}),n=new Xh({props:{extraObjects:i[6]}});let c=i[3]&&Es(i);return{c(){K(t.$$.fragment),e=$(),K(n.$$.fragment),o=$(),c&&c.c(),s=pe()},m(u,d){J(t,u,d),T(u,e,d),J(n,u,d),T(u,o,d),c&&c.m(u,d),T(u,s,d),r=!0},p(u,[d]){const h=d&20?Fe(a,[{floorIndex:u[2],floorplanData:u[4]}]):{};t.$set(h);const m={};d&64&&(m.extraObjects=u[6]),n.$set(m),u[3]?c?(c.p(u,d),d&8&&C(c,1)):(c=Es(u),c.c(),C(c,1),c.m(s.parentNode,s)):c&&(se(),D(c,1,1,()=>{c=null}),re())},i(u){r||(C(t.$$.fragment,u),C(n.$$.fragment,u),C(c),r=!0)},o(u){D(t.$$.fragment,u),D(n.$$.fragment,u),D(c),r=!1},d(u){Z(t,u),u&&L(e),Z(n,u),u&&L(o),c&&c.d(u),u&&L(s)}}}function Uh(i,t,e){let n,{five:o}=t,{pxmm:s}=t,{floorIndex:r}=t,{hoverEnable:a}=t,{floorplanData:l}=t,{extraObjects:c=[]}=t,{highlightData:u}=t;const d=void 0;return i.$$set=h=>{"five"in h&&e(0,o=h.five),"pxmm"in h&&e(1,s=h.pxmm),"floorIndex"in h&&e(2,r=h.floorIndex),"hoverEnable"in h&&e(3,a=h.hoverEnable),"floorplanData"in h&&e(4,l=h.floorplanData),"extraObjects"in h&&e(8,c=h.extraObjects),"highlightData"in h&&e(5,u=h.highlightData)},i.$$.update=()=>{i.$$.dirty&260&&e(6,n=c==null?void 0:c.filter(h=>h.floorIndex===r))},[o,s,r,a,l,u,n,d,c]}class qh extends oe{constructor(t){super(),ie(this,t,Uh,Yh,ne,{five:0,pxmm:1,floorIndex:2,hoverEnable:3,floorplanData:4,extraObjects:8,highlightData:5})}}function Jh(i){le(i,"svelte-1mvqyqq",".plugin-floorplan-radar.svelte-1mvqyqq{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.plugin-floorplan-radar-container.svelte-1mvqyqq{position:relative}")}function Ps(i){let t,e,n,o,s=i[7]!==0&&Cs(i);return{c(){t=B("div"),s&&s.c(),y(t,"class","plugin-floorplan-radar svelte-1mvqyqq")},m(r,a){T(r,t,a),s&&s.m(t,null),e=!0,n||(o=[ct(ln.call(null,t)),me(t,"clientWidth",i[13]),me(t,"clientHeight",i[14])],n=!0)},p(r,a){r[7]!==0?s?(s.p(r,a),a&128&&C(s,1)):(s=Cs(r),s.c(),C(s,1),s.m(t,null)):s&&(se(),D(s,1,1,()=>{s=null}),re())},i(r){e||(C(s),e=!0)},o(r){D(s),e=!1},d(r){r&&L(t),s&&s.d(),n=!1,Ge(o)}}}function Cs(i){let t,e,n,o,s=`${i[9]}px`,r=`${i[12]}px`,a;const l=[{five:i[0],pxmm:i[10],floorIndex:i[11],floorplanData:i[3],hoverEnable:i[2],extraObjects:i[5],highlightData:i[6]}];let c={};for(let h=0;h<l.length;h+=1)c=Be(c,l[h]);e=new qh({props:c});const u=[{pxmm:i[10],five:i[0],floorplanData:i[3],cameraImageUrl:i[4]}];let d={};for(let h=0;h<u.length;h+=1)d=Be(d,u[h]);return o=new Gh({props:d}),{c(){t=B("div"),K(e.$$.fragment),n=$(),K(o.$$.fragment),y(t,"class","plugin-floorplan-radar-container svelte-1mvqyqq"),z(t,"width",s),z(t,"height",r)},m(h,m){T(h,t,m),J(e,t,null),V(t,n),J(o,t,null),a=!0},p(h,m){const g=m&3181?Fe(l,[{five:h[0],pxmm:h[10],floorIndex:h[11],floorplanData:h[3],hoverEnable:h[2],extraObjects:h[5],highlightData:h[6]}]):{};e.$set(g);const p=m&1049?Fe(u,[{pxmm:h[10],five:h[0],floorplanData:h[3],cameraImageUrl:h[4]}]):{};o.$set(p),m&512&&s!==(s=`${h[9]}px`)&&z(t,"width",s),m&4096&&r!==(r=`${h[12]}px`)&&z(t,"height",r)},i(h){a||(C(e.$$.fragment,h),C(o.$$.fragment,h),a=!0)},o(h){D(e.$$.fragment,h),D(o.$$.fragment,h),a=!1},d(h){h&&L(t),Z(e),Z(o)}}}function Zh(i){let t,e,n=i[1]&&Ps(i);return{c(){n&&n.c(),t=pe()},m(o,s){n&&n.m(o,s),T(o,t,s),e=!0},p(o,[s]){o[1]?n?(n.p(o,s),s&2&&C(n,1)):(n=Ps(o),n.c(),C(n,1),n.m(t.parentNode,t)):n&&(se(),D(n,1,1,()=>{n=null}),re())},i(o){e||(C(n),e=!0)},o(o){D(n),e=!1},d(o){n&&n.d(o),o&&L(t)}}}function Kh(i,t,e){var w,k;let{five:n}=t,{visible:o}=t,{hoverEnable:s}=t,{floorplanData:r}=t,{cameraImageUrl:a}=t,{extraObjects:l=[]}=t,{highlightData:c}=t,u=0,d=(k=(w=n.work.observers[n.getCurrentState().panoIndex])==null?void 0:w.floorIndex)!=null?k:0,h=0,m=0,g=0,p=0;function A(I){e(11,d=n.work.observers[I].floorIndex)}Ze(()=>(n.on("panoArrived",A),()=>{n.off("panoArrived",A)}));const v=I=>{e(7,h=I.detail)},b=I=>{e(8,m=I.detail)};return i.$$set=I=>{"five"in I&&e(0,n=I.five),"visible"in I&&e(1,o=I.visible),"hoverEnable"in I&&e(2,s=I.hoverEnable),"floorplanData"in I&&e(3,r=I.floorplanData),"cameraImageUrl"in I&&e(4,a=I.cameraImageUrl),"extraObjects"in I&&e(5,l=I.extraObjects),"highlightData"in I&&e(6,c=I.highlightData)},i.$$.update=()=>{if(i.$$.dirty&904){const I=Math.min(h,m),{max:P,min:M}=r.bounding,x=P.x-M.x,F=P.y-M.y,N=function(){return x>F?[I,I/x*F]:[I/F*x,I]}();e(9,g=N[0]),e(12,p=N[1]),e(10,u=g/x)}},[n,o,s,r,a,l,c,h,m,g,u,d,p,v,b]}class $h extends oe{constructor(t){super(),ie(this,t,Kh,Zh,ne,{five:0,visible:1,hoverEnable:2,floorplanData:3,cameraImageUrl:4,extraObjects:5,highlightData:6},Jh)}}class ef extends Bt{constructor(e,n){super(e);f(this,"name","panoFloorplanRadarPlugin");f(this,"state");f(this,"data");f(this,"app");f(this,"wrapperSelector","");f(this,"wrapper",null);f(this,"disposed",!1);f(this,"extraObjects",[]);f(this,"highlightData",{});f(this,"dispose",()=>{var e;this.disposed=!0,(e=this.app)==null||e.$destroy(),this.wrapper=null,this.wrapperSelector="",this.hooks.emit("dispose")});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o;const{userAction:n}=e;(o=this.app)==null||o.$destroy(),this.app=void 0,this.hooks.emit("disable",{userAction:n})});this.five=e;const o={hoverEnable:!0,highlightEnable:!0,cameraImageUrl:yt},s=n!=null&&n.configs?n.configs:{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!0,config:r},n!=null&&n.wrapper&&console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5"),typeof(n==null?void 0:n.wrapper)=="string"?this.wrapperSelector=n.wrapper:(n==null?void 0:n.wrapper)instanceof Element&&(this.wrapper=n.wrapper),e.once("dispose",this.dispose)}load(e,n,o=!0){return H(this,null,function*(){function s(c){return Object.prototype.hasOwnProperty.apply(c,["version"])}const r=JSON.parse(JSON.stringify(e)),a=s(r)?r.data:r,l=this.data;this.data=yield wt(a),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,l),n&&this.updateState(n,o),this.render()})}show(){return H(this,arguments,function*(e={}){if(this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},n),this._show({userAction:n})})}hide(){return H(this,arguments,function*(e={}){if(!this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!1},n),this._hide({userAction:n})})}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled){const r={userAction:s};e.enabled?this._enable(r):this._disable(r)}if(e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}}appendTo(e){this.wrapper=e,this.render()}changeConfigs(e,n=!0){this.setState({config:e},{userAction:n}),this.render()}setExtraObjectsWith3DPositions(e){!this.data||(this.extraObjects=Ih(e,this.five,this.data),this.render())}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}_enable(e){const{userAction:n}=e;this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n})}_show(e){if(this.disposed||!this.state.enabled)return;const{userAction:n}=e;this.hooks.emit("show",{userAction:n}),this.render()}_hide(e){if(this.disposed||!this.state.enabled)return;const{userAction:n}=e;this.hooks.emit("hide",{userAction:n}),this.render()}updateState(e,n){const o=this.state;this.state=Q(Q({},this.state),e),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}render(){if(this.disposed||!this.state.enabled)return;if(!this.wrapper&&this.wrapperSelector){const n=document.querySelector(this.wrapperSelector);this.wrapper=n}if(!this.data||!this.wrapper)return;const e=fe(Q({},this.state.config),{five:this.five,floorplanData:this.data,visible:this.state.visible,extraObjects:this.extraObjects,highlightData:this.highlightData});this.app?this.app.$set(e):this.app=new $h({target:this.wrapper,props:e})}}const tf=(i,t)=>new ef(i,t),nf=[{type:0,floorType:1,roomType:"100900000012",name:"\u5176\u4ED6"},{type:1,floorType:1,roomType:"100900000002",name:"\u5BA2\u5385"},{type:2,floorType:1,roomType:"100900000002",name:"\u9910\u5385"},{type:3,floorType:0,roomType:"100900000001",name:"\u5367\u5BA4"},{type:4,floorType:0,roomType:"100900000001",name:"\u4E66\u623F"},{type:5,floorType:3,roomType:"100900000004",name:"\u536B\u751F\u95F4"},{type:6,floorType:3,roomType:"100900000004",name:"\u6DCB\u6D74\u95F4"},{type:7,floorType:3,roomType:"100900000004",name:"\u6D17\u624B\u95F4"},{type:8,floorType:3,roomType:"100900000003",name:"\u53A8\u623F"},{type:9,floorType:1,roomType:"100900000003",name:"\u5F00\u653E\u53A8\u623F",onlySubArea:!0},{type:10,floorType:0,roomType:"100900000001",name:"\u591A\u529F\u80FD\u95F4"},{type:11,floorType:0,roomType:"100900000009",name:"\u4FDD\u59C6\u95F4"},{type:12,floorType:4,roomType:"100900000005",name:"\u9633\u53F0"},{type:13,floorType:4,roomType:"100900000006",name:"\u9732\u53F0"},{type:14,floorType:0,roomType:"100900000008",name:"\u50A8\u7269\u95F4"},{type:15,floorType:0,roomType:"100900000013",name:"\u8863\u5E3D\u95F4"},{type:16,floorType:0,roomType:"100900000011",name:"\u9601\u697C"},{type:17,floorType:2,roomType:"100900000007",name:"\u82B1\u56ED"},{type:18,floorType:5,roomType:"100900000010",name:"\u8F66\u5E93"},{type:19,floorType:1,roomType:"100900000012",name:"\u7535\u68AF"},{type:20,floorType:1,roomType:"100900000012",name:"\u5730\u4E0B\u5BA4"},{type:21,floorType:1,roomType:"100900000012",name:"\u5929\u4E95"},{type:22,floorType:1,roomType:"100900000012",name:"\u9633\u5149\u623F"},{type:23,floorType:1,roomType:"100900000012",name:"\u8FC7\u9053"},{type:24,floorType:1,roomType:"100900000012",name:"\u697C\u68AF\u95F4"},{type:25,floorType:1,roomType:"100900000012",name:"\u95E8\u5385"},{type:26,floorType:2,roomType:"100900000012",name:"\u5165\u6237\u82B1\u56ED"},{type:27,floorType:1,roomType:"100900000012",name:"\u7384\u5173"},{type:28,floorType:1,roomType:"100900000012",name:"\u6311\u7A7A"},{type:29,floorType:4,roomType:"100900000012",name:"\u667E\u6652\u533A"},{type:30,floorType:4,roomType:"100900000012",name:"\u6D17\u8863\u623F"},{type:31,floorType:0,roomType:"100900000012",name:"\u5A31\u4E50\u533A"},{type:32,floorType:0,roomType:"100900000012",name:"\u5065\u8EAB\u533A"},{type:33,floorType:0,roomType:"100900000012",name:"\u63A5\u5F85\u533A"},{type:34,floorType:0,roomType:"100900000012",name:"\u5F71\u97F3\u533A"},{type:35,floorType:1,roomType:"100900000012",name:"\u9910\u996E\u533A"},{type:36,floorType:1,roomType:"100900000012",name:"\u5176\u4ED6",onlySubArea:!0},{type:37,floorType:1,roomType:"100900000002",name:"\u8D77\u5C45\u5BA4"},{type:38,floorType:0,roomType:"100900000001",name:"\u4E3B\u5367"},{type:39,floorType:0,roomType:"100900000001",name:"\u6B21\u5367"},{type:40,floorType:0,roomType:"100900000001",name:"\u4F18\u5316\u95F4"},{type:41,floorType:0,roomType:"100900000001",name:"\u529E\u516C\u5BA4"},{type:42,floorType:0,roomType:"100900000001",name:"\u4F1A\u8BAE\u5BA4"},{type:43,floorType:0,roomType:"100900000001",name:"\u6D3D\u8C08\u95F4"},{type:44,floorType:1,roomType:"100900000002",name:"\u5171\u4EAB\u5927\u5385"},{type:45,floorType:1,roomType:"100900000012",name:"\u6C34\u5427"},{type:46,floorType:0,roomType:"100900000015",name:"\u51FA\u5165\u53E3"},{type:47,floorType:0,roomType:"100900000015",name:"\u5927\u5385"},{type:48,floorType:0,roomType:"100900000015",name:"\u5305\u53A2"},{type:49,floorType:0,roomType:"100900000015",name:"\u5176\u4ED6"},{type:50,floorType:0,roomType:"100900000016",name:"\u51FA\u5165\u53E3"},{type:51,floorType:0,roomType:"100900000016",name:"\u529E\u516C\u533A"},{type:52,floorType:0,roomType:"100900000016",name:"\u8001\u677F\u95F4"},{type:53,floorType:0,roomType:"100900000016",name:"\u4F1A\u8BAE\u5BA4"},{type:54,floorType:0,roomType:"100900000016",name:"\u4F11\u606F\u533A/\u6C34\u5427"},{type:55,floorType:0,roomType:"100900000016",name:"\u5176\u4ED6"},{type:56,floorType:2,roomType:"100900000012",name:"\u7A7A\u4E2D\u82B1\u56ED"},{type:57,floorType:0,roomType:"100900000001",name:"\u6D0B\u5BA4"},{type:58,floorType:0,roomType:"100900000001",name:"\u548C\u5BA4"}],of=[{type:0,description:"\u6728\u8D28\u5730\u677F"},{type:1,description:"\u74F7\u7816\u5730\u9762"},{type:2,description:"\u6237\u5916\u5730\u9762"},{type:3,description:"\u536B\u751F\u95F4\u5730\u9762"},{type:4,description:"\u9633\u53F0\u5730\u9762"},{type:5,description:"\u8F66\u5E93\u5730\u9762"}],sf=[{roomType:"100900000001",description:"\u5BA4"},{roomType:"100900000002",description:"\u5385"},{roomType:"100900000003",description:"\u53A8"},{roomType:"100900000004",description:"\u536B"},{roomType:"100900000005",description:"\u9633\u53F0"},{roomType:"100900000006",description:"\u9732\u53F0"},{roomType:"100900000007",description:"\u82B1\u56ED"},{roomType:"100900000008",description:"\u50A8"},{roomType:"100900000009",description:"\u4FDD\u59C6\u95F4"},{roomType:"100900000010",description:"\u8F66\u5E93"},{roomType:"100900000011",description:"\u9601\u697C"},{roomType:"100900000012",description:"\u5176\u4ED6"},{roomType:"100900000013",description:"\u8863"},{roomType:"100900000015",description:"\u5546\u94FA"},{roomType:"100900000016",description:"\u5199\u5B57\u697C"}],Vi=(i,t,e)=>{const n=new E.Matrix4,o=new E.Euler(i,t,e,"YXZ");return n.makeRotationFromEuler(o),n},rf=(i,{scale:t,rotation:e,position:n})=>{if(t&&i.scale.set(t,t,t),e){const[o,s,r]=e;o&&i.applyMatrix4(Vi(o,0,0)),s&&i.applyMatrix4(Vi(0,s,0)),r&&i.applyMatrix4(Vi(0,0,r))}return n&&i.position.set(n.x,n.y,n.z),i};function rl(i,t){i.traverse(e=>{var n;if(e.type==="Mesh"){const o=e,s=Q({map:o.material.map||{}},t);o.material=new j.MeshBasicMaterial(s),o.renderOrder=1,((n=e.parent)==null?void 0:n.type)==="Mesh"&&(e.renderOrder=e.parent.renderOrder+1)}})}const af=(i,t)=>{var u;const e=t.fbx_url||"//vrlab-image4.ljcdn.com/release/web/dipan2.f38a21cc.FBX",n=(u=t.north_rad)!=null?u:void 0,o={},s=d=>H(exports,null,function*(){var S;const h=(d==null?void 0:d.fbx_url)||e,m=(S=d==null?void 0:d.north_rad)!=null?S:n;if(typeof m!="number")throw new Error('"northRad"\u914D\u7F6E\u53C2\u6570\u7F3A\u5931\uFF1A\u672A\u914D\u7F6E\u6307\u5357\u9488\u6307\u5411\uFF01');const g=i.model.bounding,p=g.max.x-g.min.x,A=g.max.z-g.min.z,v=Math.max(p,A),w=yield new ba.FBXLoader().loadAsync(h);rl(w,{transparent:!0,side:E.DoubleSide,blending:E.AdditiveBlending});const k=[0,m-Math.PI/2,0],{model:{bounding:{max:{x:I,z:P},min:{x:M,y:x,z:F}}}}=i;o.yBase=x;const N={x:(I+M)/2,y:x-1.6,z:(P+F)/2},R=.0045*v;return rf(w,{position:N,rotation:k,scale:R}),o.object=w,!0}),r=({latitude:d})=>{if(!o.object)return;const h=a(d);h&&(o.object.position.y=h)},a=d=>{if(o.yBase===void 0)return;const h=.6;if(d>=Math.PI/4)return o.yBase-(h+1.6);const m=d*(4/Math.PI);return o.yBase-(h*m+1.6)};return{load:s,disable:()=>{!o.object||(i.scene.remove(o.object),i.needsRender=!0,i.off("cameraDirectionUpdate",r))},enable:()=>{if(!o.object)return;const d=a(i.getPose().latitude);d&&(o.object.position.y=d),i.scene.add(o.object),i.needsRender=!0,i.on("cameraDirectionUpdate",r)}}};function lf(i,t){var c,u,d,h,m;const e=(c=t==null?void 0:t.size)!=null?c:512,n=(u=t==null?void 0:t.fontSize)!=null?u:e*(35/256)*1.2,o=(d=t==null?void 0:t.backgroundColor)!=null?d:"rgba(0,0,0,0)",s=(h=t==null?void 0:t.fontColor)!=null?h:"#fff",r=(m=t==null?void 0:t.textAlign)!=null?m:"center",a=document.createElement("canvas");a.setAttribute("width",e+""),a.setAttribute("height",e+"");const l=a.getContext("2d");return l.fillStyle=o,l.fillRect(0,0,e,e),l.font=`${n}px "\u5FAE\u8F6F\u96C5\u9ED1"`,l.textAlign=r,l.fillStyle=s,l.fillText(i,e/2,e*.7),new j.CanvasTexture(a)}const cf=({x:i,y:t,z:e})=>new j.Vector3(i,t,e),uf=(i,t)=>{var p,A,v;const e={},n=(p=t.animationEnabled)!=null?p:!0,o=(A=t.position)!=null?A:void 0,s=(v=t.rad)!=null?v:void 0,r=t.fbx_url||"//vrlab-image4.ljcdn.com/release/web/entryDoorMini/Anim_Door1.fbx",a=[],l=b=>H(exports,null,function*(){var N,R,S,O,G,W,Y,_;const w=(N=b==null?void 0:b.position)!=null?N:o;if(!w)return Promise.reject(new Error("ModelEntryDoorGuidePlugin.load(): position is undefined"));const k=cf(w),I=(R=b==null?void 0:b.rad)!=null?R:s,P=(S=b==null?void 0:b.fbx_url)!=null?S:r;if(e.rad=I,I===void 0)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): rad is ${I}`));const M=yield new ba.FBXLoader().loadAsync(P);M.position.copy(k),M.rotation.z=I,M.scale.set(.8,.8,.8),rl(M,{transparent:!0,side:E.DoubleSide});const x=(Y=(W=(G=(O=M.children)==null?void 0:O[0])==null?void 0:G.children)==null?void 0:W[3])==null?void 0:Y.clone();if(!x)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): textMesh is ${x}`));const F=(_=t.name)!=null?_:"\u5165\u6237\u95E8";return x.material=new j.MeshBasicMaterial({transparent:!0,map:lf(F)}),x.renderOrder=3,M.children[0].add(x),e.object=M,!0}),c=()=>{if(e.animation)return;if(!e.object)return console.error("ModelEntryDoorGuidePlugin.initAnimation(): state.object is ",e.object);const b=1,w=new j.AnimationMixer(e.object);a.push(w);const k=w.clipAction(e.object.animations[0]);k.timeScale=b;let I;const P=()=>{let N=0,R=0;const S=1e3/30,O=G=>{N=requestAnimationFrame(O);const W=G-R;W<S||(R=G,a.forEach(Y=>Y.update(W/1e3)),i.needsRender=!0)};return N=requestAnimationFrame(O),()=>{cancelAnimationFrame(N)}},F={play:()=>{I||(k.play(),I=P(),requestAnimationFrame(()=>{e.object&&e.object.rotation.z!==e.rad&&(e.object.rotation.z=e.rad)}))},stop:()=>{k.stop(),I==null||I(),I=void 0}};e.animation=F},u=b=>{var k;if(!e.object)return console.error("ModelEntryDoorGuidePlugin.enable(): object is ",e.object);((k=b==null?void 0:b.animationEnable)!=null?k:n)&&(e.animation||c(),e.animation.play()),i.scene.add(e.object),i.needsRender=!0},d=()=>{!e.object||(e.animation&&e.animation.stop(),i.scene.remove(e.object),i.needsRender=!0)},h=b=>b==="Floorplan"?u():d();return{load:l,enable:b=>(e.enabled||(e.enabled=!0,h(i.currentMode),i.on("modeChange",h),u(b)),!0),disable:()=>(e.enabled&&(e.enabled=!1,d(),i.off("modeChange",h)),!0)}};class Io extends yn.default.Tween{constructor(){super(...arguments);f(this,"disposeMethods",[]);f(this,"animationFrameDisposer");f(this,"onDispose",e=>(this.disposeMethods.push(e),this));f(this,"play",()=>(this.start(0),this.animationFrameDisposer=Dn(e=>this.update(e)),this));f(this,"dispose",()=>{var e;this.stop(),(e=this.animationFrameDisposer)==null||e.call(this),this.disposeMethods.forEach(n=>n()),this.disposeMethods=[],yn.default.remove(this)})}}function al(i,t=yn.default.Easing.Linear.None){const e=new Io({progress:0}).to({progress:1});return i!==void 0&&e.duration(i),t!==void 0&&e.easing(t),e}const Pn=window.requestAnimationFrame||(i=>setTimeout(i,16)),df=window.cancelAnimationFrame||clearTimeout;function wi(i,t=0){t<=0?Pn(i):Pn(()=>wi(i,t-1))}function Dn(i,t=60){let e=-1,n=0,o=-1;const s=1e3/t;function r(a){o===-1&&(o=a),e=Pn(r),!(a-n<s)&&(n=a,i&&i(a-o))}return e=Pn(r),function(){df(e)}}function hf(){const i=Date.now();return new Promise(t=>{Pn(()=>{t(Date.now()-i)})})}const ff=mi.Easing;function mf(i,t,e,n=ff.Linear.None){const o=new mi.Tween(i).to(t,e).easing(n);wi(()=>o.start(0));const s=Dn(a=>{o.update(a)===!1&&s()}),r=[];return o.onDestroy=a=>(r.push(a),o),o.destroy=function(){this.stop(),Object.assign(o,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallbackL:null});let a;for(;a=r.shift();)a();s()},o}function pf(i,t){return mf({progress:0},{progress:1},i,t)}var ll=(i=>(i.Move="Move",i.Rotate="Rotate",i))(ll||{}),tt=(i=>(i.Clockwise="Clockwise",i.Anticlockwise="Anticlockwise",i.Loop="Loop",i))(tt||{});const Kn=Math.PI*2;function Is(i){return(i%Kn+Kn)%Kn}function ks(i){return i%Kn}function ji(i,t,e){return i+(t-i)*e}const oo=(i,t,e)=>{const n=Math.PI,o=n*2;return i=Is(i),t=Is(t),e===tt.Anticlockwise&&i<t&&(i+=o),e===tt.Clockwise&&t<i&&(t+=o),e===tt.Loop&&t-i>n?oo(i,t,tt.Anticlockwise):e===tt.Loop&&i-t>n?oo(i,t,tt.Clockwise):{from:i,to:t}},gf=i=>{const t={},e=(l,c,...u)=>H(exports,[l,c,...u],function*(s,r,a={preload:!0}){return t.interruptCallback&&t.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),s.mode&&s.mode!==i.currentMode&&(yield i.changeMode(s.mode)),a.preload&&s.panoIndex!==void 0&&s.panoIndex!==i.panoIndex&&(yield i.preloadPano(s.panoIndex)),a.asyncEndCallback&&(yield a.asyncEndCallback()),s.panoIndex===void 0&&s.fov===void 0&&s.latitude===void 0&&s.longitude===void 0?!0:yield new Promise((d,h)=>{const m=s.panoIndex!==void 0?s.panoIndex:i.panoIndex;m!==void 0?i.moveToPano(m,Object.assign({duration:r,moveEndCallback:()=>d(!0),moveCancelCallback:()=>h(!1)},s)):h(!1)})}),n=s=>{const r=i.state,a=ks(r.latitude),l=ks(s.latitude),{from:c,to:u}=oo(r.longitude,s.longitude,s.rotation||tt.Loop),d=r.fov,h=s.fov;return{from:{latitude:a,longitude:c,fov:d},to:{latitude:l,longitude:u,fov:h}}};return{move:e,rotate:(l,c,...u)=>H(exports,[l,c,...u],function*(s,r,a={}){t.interruptCallback&&t.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),i.currentMode!==Ee.Five.Mode.Panorama&&(yield i.changeMode(Ee.Five.Mode.Panorama)),s.panoIndex!==void 0&&s.panoIndex!==i.panoIndex&&(a.preload&&(yield i.preloadPano(s.panoIndex)),yield new Promise((m,g)=>{if(!s.panoIndex){m(!0);return}i.moveToPano(s.panoIndex,{moveEndCallback:()=>m(!0),moveCancelCallback:()=>g(!1)})})),a.asyncEndCallback&&(yield a.asyncEndCallback());const{from:d,to:h}=n(s);return yield new Promise(m=>{const g=({progress:w})=>{const k={};k.longitude=ji(d.longitude,h.longitude,w),k.latitude=ji(d.latitude,h.latitude,w),k.fov=ji(d.fov,h.fov,w),i.setState(k,!0)},p=()=>{m(!0)},A=()=>{m(!1)},v=s.rotateSpeed?Math.ceil(Math.abs(h.longitude-d.longitude)/s.rotateSpeed*1e3):r,b=pf(v,mi.Easing.Linear.None).onUpdate(g).onComplete(p).onDestroy(A);s.rotation===tt.Loop&&b.repeat(1/0).yoyo(!0),t.interruptCallback=(w=!0)=>{b.destroy(),t.interruptCallback=void 0,t.timeoutId&&(clearTimeout(t.timeoutId),t.timeoutId=void 0),m(w)},t.timeoutId=setTimeout(()=>{t.interruptCallback&&t.interruptCallback(!0)},r)})})}};function xs(i,t){return i.x===t.x&&i.y===t.y}function cl(i,t){return Math.abs(i)===1/0&&Math.abs(t)===1/0?!0:Math.abs(i-t)<.001}function hi(i,t){return(t.y-i.y)/(t.x-i.x)}function ul(i,t,e){const n=hi(i[1],i[0]),o=hi(t[1],t[0]);if(isNaN(n)||isNaN(o)||cl(n,o))return!1;if(Qn(i[0],t))return i[0];if(Qn(i[1],t))return i[1];if(Qn(t[0],i))return t[0];if(Qn(t[1],i))return t[1];if(e&&!vf(i,t))return!1;const s=i[0],r=t[0];if(Math.abs(n)===1/0)return{x:s.x,y:t[1].y-(t[1].x-s.x)*o};if(Math.abs(o)===1/0)return{x:r.x,y:i[1].y-(i[1].x-r.x)*n};const a=(r.y-s.y+n*s.x-o*r.x)/(n-o),l=n*a-n*s.x+s.y;return{x:a,y:l}}function Qn(i,t){return xs(i,t[0])||xs(i,t[1])?!0:(t[0].x-i.x)*(i.x-t[1].x)>=0&&(t[0].y-i.y)*(i.y-t[1].y)>=0&&cl(hi(t[0],i),hi(i,t[1]))}function Fn(i,t,e){return(i.x-e.x)*(t.y-e.y)-(t.x-e.x)*(i.y-e.y)}function vf(i,t){return Math.max(i[0].x,i[1].x)>=Math.min(t[0].x,t[1].x)&&Math.max(t[0].x,t[1].x)>=Math.min(i[0].x,i[1].x)&&Math.max(i[0].y,i[1].y)>=Math.min(t[0].y,t[1].y)&&Fn(t[0],i[1],i[0])*Fn(i[1],t[1],i[0])>0&&Fn(i[0],t[1],t[0])*Fn(t[1],i[1],t[0])>0?1:0}function dl(i,t=0){t<=0?requestAnimationFrame(i):requestAnimationFrame(()=>dl(i,t-1))}const Af=`<style type="text/css">
115
+ `;return i.$$set=s=>{"content"in s&&e(0,n=s.content)},[n,o]}class pd extends oe{constructor(t){super(),ie(this,t,md,fd,ne,{content:0},hd)}}function gd(i){le(i,"svelte-ozpg4a",".floorplan-plugin__base-image.svelte-ozpg4a{position:absolute;z-index:10;width:100%;height:100%;pointer-events:none}")}function vd(i){let t,e;return t=new dd({props:{url:i[1].url}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&2&&(s.url=n[1].url),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function Ad(i){let t,e;return t=new pd({props:{content:i[0]}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.content=n[0]),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function bd(i){let t,e,n,o;const s=[Ad,vd],r=[];function a(l,c){return l[0]?0:l[1]?1:-1}return~(e=a(i))&&(n=r[e]=s[e](i)),{c(){t=B("div"),n&&n.c(),y(t,"class","floorplan-plugin__base-image svelte-ozpg4a")},m(l,c){T(l,t,c),~e&&r[e].m(t,null),o=!0},p(l,[c]){let u=e;e=a(l),e===u?~e&&r[e].p(l,c):(n&&(se(),D(r[u],1,1,()=>{r[u]=null}),re()),~e?(n=r[e],n?n.p(l,c):(n=r[e]=s[e](l),n.c()),C(n,1),n.m(t,null)):n=null)},i(l){o||(C(n),o=!0)},o(l){D(n),o=!1},d(l){l&&L(t),~e&&r[e].d()}}}function yd(i,t,e){let n,o,{floorIndex:s}=t,{floorplanData:r}=t;return i.$$set=a=>{"floorIndex"in a&&e(2,s=a.floorIndex),"floorplanData"in a&&e(3,r=a.floorplanData)},i.$$.update=()=>{var a,l;i.$$.dirty&12&&e(1,n=r.outlines[s]),i.$$.dirty&12&&e(0,o=(l=(a=r.outlines)==null?void 0:a[s])==null?void 0:l.svgContent)},[o,n,s,r]}class el extends oe{constructor(t){super(),ie(this,t,yd,bd,ne,{floorIndex:2,floorplanData:3},gd)}}function wd(i){le(i,"svelte-12pzct5",".floorplan-plugin__room-label-item.svelte-12pzct5{position:absolute;display:flex;flex-flow:column;align-items:center;line-height:1;color:#fff;transform:translate(-50%, -50%);white-space:nowrap;will-change:opacity;transition:opacity 300ms}.floorplan-plugin__room-size.svelte-12pzct5{opacity:0.45}")}function Ed(i){let t,e=i[8].outerHTML+"",n;return{c(){t=new ni(!1),n=pe(),t.a=n},m(o,s){t.m(e,o,s),T(o,n,s)},p(o,s){s&256&&e!==(e=o[8].outerHTML+"")&&t.p(e)},d(o){o&&L(n),o&&t.d()}}}function Pd(i){let t,e,n=i[1]&&Uo(i),o=i[0]&&qo(i);return{c(){n&&n.c(),t=$(),o&&o.c(),e=pe()},m(s,r){n&&n.m(s,r),T(s,t,r),o&&o.m(s,r),T(s,e,r)},p(s,r){s[1]?n?n.p(s,r):(n=Uo(s),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null),s[0]?o?o.p(s,r):(o=qo(s),o.c(),o.m(e.parentNode,e)):o&&(o.d(1),o=null)},d(s){n&&n.d(s),s&&L(t),o&&o.d(s),s&&L(e)}}}function Uo(i){let t,e=i[2].name+"",n;return{c(){t=B("span"),n=xe(e),y(t,"class","floorplan-plugin__room-name")},m(o,s){T(o,t,s),V(t,n)},p(o,s){s&4&&e!==(e=o[2].name+"")&&Se(n,e)},d(o){o&&L(t)}}}function qo(i){let t,e;return{c(){t=B("span"),e=xe(i[7]),y(t,"class","floorplan-plugin__room-size svelte-12pzct5")},m(n,o){T(n,t,o),V(t,e)},p(n,o){o&128&&Se(e,n[7])},d(n){n&&L(t)}}}function Cd(i){let t,e,n;function o(a,l){if(a[3]===void 0)return Pd;if(a[8])return Ed}let s=o(i),r=s&&s(i);return{c(){t=B("div"),r&&r.c(),y(t,"class","floorplan-plugin__room-label-item svelte-12pzct5"),z(t,"left",i[9]),z(t,"top",i[10]),z(t,"font-size",i[11]),z(t,"opacity",i[6]?"1":"0")},m(a,l){T(a,t,l),r&&r.m(t,null),e||(n=[ct(ln.call(null,t)),me(t,"clientWidth",i[19]),me(t,"clientHeight",i[20])],e=!0)},p(a,[l]){s===(s=o(a))&&r?r.p(a,l):(r&&r.d(1),r=s&&s(a),r&&(r.c(),r.m(t,null))),l&64&&z(t,"opacity",a[6]?"1":"0")},i:X,o:X,d(a){a&&L(t),r&&r.d(),e=!1,Ge(n)}}}function Id(i,t){const e=i[0],n=i[1];let o=!1;for(let s=0,r=t.length-1;s<t.length;r=s++){const a=t[s][0],l=t[s][1],c=t[r][0],u=t[r][1];l>n!=u>n&&e<(c-a)*(n-l)/(u-l)+a&&(o=!o)}return o}function kd(i,t,e){let n,o,s,r,a,{pxmm:l}=t,{roomAreaEnable:c}=t,{roomNameEnable:u}=t,{room:d}=t,{hoveredRoom:h}=t,{getRoomAreaText:m}=t,{getLabelElement:g}=t,{adaptiveRoomLabelVisibleEnable:p}=t;function A(S,O){if(O.width===0||O.height===0)return()=>!1;const G=S.path.map(({x:de,y:ge})=>[de,ge]),W=S.roomLabel.position,{x:Y,y:_}=W,{width:ee,height:U}=O,ae=ee/2,he=U/2;return function(ge){const Ce=Y*ge,ke=_*ge,Te=G.map(([ve,Pe])=>[ve*ge,Pe*ge]);return[[Ce+ae,ke-he],[Ce-ae,ke-he],[Ce-ae,ke+he],[Ce+ae,ke+he]].every(ve=>Id(ve,Te))}}const v=document.body.clientWidth,b=document.body.clientHeight,w=d.roomLabel,k=w.positionInImage.x*100+"%",I=w.positionInImage.y*100+"%",P=(v<500||b<500?10:14)+"px";let M=0,x=0,F=!1;h.subscribe(function(O){e(16,F=!!O&&O.id===d.id)});const N=S=>{e(4,M=S.detail)},R=S=>{e(5,x=S.detail)};return i.$$set=S=>{"pxmm"in S&&e(12,l=S.pxmm),"roomAreaEnable"in S&&e(0,c=S.roomAreaEnable),"roomNameEnable"in S&&e(1,u=S.roomNameEnable),"room"in S&&e(2,d=S.room),"hoveredRoom"in S&&e(13,h=S.hoveredRoom),"getRoomAreaText"in S&&e(14,m=S.getRoomAreaText),"getLabelElement"in S&&e(3,g=S.getLabelElement),"adaptiveRoomLabelVisibleEnable"in S&&e(15,p=S.adaptiveRoomLabelVisibleEnable)},i.$$.update=()=>{i.$$.dirty&12&&e(8,n=g==null?void 0:g(d)),i.$$.dirty&16388&&e(7,o=d.size?m(d.size):""),i.$$.dirty&48&&e(18,s={width:M,height:x}),i.$$.dirty&262148&&e(17,r=s?A(d,s):void 0),i.$$.dirty&233472&&e(6,a=p?F?!0:!!(r!=null&&r(l)):!0)},[c,u,d,g,M,x,a,o,n,k,I,P,l,h,m,p,F,r,s,N,R]}class xd extends oe{constructor(t){super(),ie(this,t,kd,Cd,ne,{pxmm:12,roomAreaEnable:0,roomNameEnable:1,room:2,hoveredRoom:13,getRoomAreaText:14,getLabelElement:3,adaptiveRoomLabelVisibleEnable:15},wd)}}function Dd(i){le(i,"svelte-13xux0b",".floorplan-plugin__room-labels.svelte-13xux0b{width:100%;height:100%;position:absolute;left:0;top:0;z-index:20;pointer-events:none}")}function Jo(i,t,e){const n=i.slice();return n[12]=t[e],n}function Zo(i){let t,e=[],n=new Map,o,s,r,a=i[8];const l=c=>c[12].id;for(let c=0;c<a.length;c+=1){let u=Jo(i,a,c),d=l(u);n.set(d,e[c]=Ko(d,u))}return{c(){t=B("div");for(let c=0;c<e.length;c+=1)e[c].c();y(t,"class","floorplan-plugin__room-labels svelte-13xux0b")},m(c,u){T(c,t,u);for(let d=0;d<e.length;d+=1)e[d].m(t,null);o=!0,s||(r=[ct(ln.call(null,t)),me(t,"clientWidth",i[11])],s=!0)},p(c,u){u&447&&(a=c[8],se(),e=Ke(e,u,l,1,c,a,n,t,kt,Ko,null,Jo),re())},i(c){if(!o){for(let u=0;u<a.length;u+=1)C(e[u]);o=!0}},o(c){for(let u=0;u<e.length;u+=1)D(e[u]);o=!1},d(c){c&&L(t);for(let u=0;u<e.length;u+=1)e[u].d();s=!1,Ge(r)}}}function Ko(i,t){let e,n,o;const s=[{pxmm:t[7],room:t[12],hoveredRoom:t[2],roomAreaEnable:t[0],roomNameEnable:t[1],getLabelElement:t[4],getRoomAreaText:t[3],adaptiveRoomLabelVisibleEnable:t[5]}];let r={};for(let a=0;a<s.length;a+=1)r=Be(r,s[a]);return n=new xd({props:r}),{key:i,first:null,c(){e=pe(),K(n.$$.fragment),this.first=e},m(a,l){T(a,e,l),J(n,a,l),o=!0},p(a,l){t=a;const c=l&447?Fe(s,[{pxmm:t[7],room:t[12],hoveredRoom:t[2],roomAreaEnable:t[0],roomNameEnable:t[1],getLabelElement:t[4],getRoomAreaText:t[3],adaptiveRoomLabelVisibleEnable:t[5]}]):{};n.$set(c)},i(a){o||(C(n.$$.fragment,a),o=!0)},o(a){D(n.$$.fragment,a),o=!1},d(a){a&&L(e),Z(n,a)}}}function Md(i){let t,e,n=i[8]&&Zo(i);return{c(){n&&n.c(),t=pe()},m(o,s){n&&n.m(o,s),T(o,t,s),e=!0},p(o,[s]){o[8]?n?(n.p(o,s),s&256&&C(n,1)):(n=Zo(o),n.c(),C(n,1),n.m(t.parentNode,t)):n&&(se(),D(n,1,1,()=>{n=null}),re())},i(o){e||(C(n),e=!0)},o(o){D(n),e=!1},d(o){n&&n.d(o),o&&L(t)}}}function Ld(i,t,e){let n,{floorIndex:o}=t,{roomAreaEnable:s}=t,{roomNameEnable:r}=t,{floorplanData:a}=t,{hoveredRoom:l}=t,{getRoomAreaText:c}=t,{getLabelElement:u}=t,{adaptiveRoomLabelVisibleEnable:d}=t,h=0,m=0;const g=p=>{e(6,h=p.detail)};return i.$$set=p=>{"floorIndex"in p&&e(9,o=p.floorIndex),"roomAreaEnable"in p&&e(0,s=p.roomAreaEnable),"roomNameEnable"in p&&e(1,r=p.roomNameEnable),"floorplanData"in p&&e(10,a=p.floorplanData),"hoveredRoom"in p&&e(2,l=p.hoveredRoom),"getRoomAreaText"in p&&e(3,c=p.getRoomAreaText),"getLabelElement"in p&&e(4,u=p.getLabelElement),"adaptiveRoomLabelVisibleEnable"in p&&e(5,d=p.adaptiveRoomLabelVisibleEnable)},i.$$.update=()=>{if(i.$$.dirty&1536&&e(8,n=a.floorDatas[o].rooms),i.$$.dirty&1088){const{max:p,min:A}=a.bounding,v=p.x-A.x;e(7,m=h/v)}},[s,r,l,c,u,d,h,m,n,o,a,g]}class Sd extends oe{constructor(t){super(),ie(this,t,Ld,Md,ne,{floorIndex:9,roomAreaEnable:0,roomNameEnable:1,floorplanData:10,hoveredRoom:2,getRoomAreaText:3,getLabelElement:4,adaptiveRoomLabelVisibleEnable:5},Dd)}}function Td(i){le(i,"svelte-djlmk4",".floorplan-plugin__rule-labels.svelte-djlmk4.svelte-djlmk4{position:absolute;display:flex}.floorplan-plugin__rule-labels--top.svelte-djlmk4.svelte-djlmk4{left:0;top:-1.25rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4.svelte-djlmk4{left:0;bottom:-1.25rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4.svelte-djlmk4{top:0;left:-1.25rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4.svelte-djlmk4{top:0;right:-1.25rem}.floorplan-plugin__rule-line.svelte-djlmk4.svelte-djlmk4{background:#fff;opacity:0.05;width:100%;height:100%}.floorplan-plugin__rule-scale-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute;width:0.3125rem;height:100%;left:50%;top:0;transform:translateX(-50%)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale-wrapper.svelte-djlmk4{width:100%;height:0.3125rem;top:50%;left:0;transform:translateY(-50%)}.floorplan-plugin__rule-scale.svelte-djlmk4.svelte-djlmk4{position:absolute;background:#fff;opacity:0.05;width:100%;height:0.0625rem}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-scale.svelte-djlmk4{width:0.0625rem;height:100%}.floorplan-plugin__rule-text-wrapper.svelte-djlmk4.svelte-djlmk4{position:absolute}.floorplan-plugin__rule-labels--top.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;top:0.625rem}.floorplan-plugin__rule-labels--bottom.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:100%;height:0;bottom:0.625rem}.floorplan-plugin__rule-labels--left.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;left:0.625rem}.floorplan-plugin__rule-labels--right.svelte-djlmk4 .floorplan-plugin__rule-text-wrapper.svelte-djlmk4{width:0;height:100%;right:0.625rem}.floorplan-plugin__rule-text-item.svelte-djlmk4.svelte-djlmk4{width:0;height:0;position:absolute;transform:rotate(90deg)}.floorplan-plugin__rule-labels.is-row.svelte-djlmk4 .floorplan-plugin__rule-text-item.svelte-djlmk4{transform:rotate(0)}.floorplan-plugin__rule-text.svelte-djlmk4.svelte-djlmk4{width:-moz-max-content;width:max-content;transform:translate(-50%, -50%);font-size:0.625rem;color:#fff;opacity:0.2}")}function $o(i,t,e){const n=i.slice();return n[11]=t[e],n[13]=e,n}function es(i,t,e){const n=i.slice();return n[14]=t[e],n}function ts(i){let t;return{c(){t=B("div"),y(t,"class","floorplan-plugin__rule-scale svelte-djlmk4"),z(t,"left",i[14].left*100+"%"),z(t,"bottom",i[14].bottom*100+"%")},m(e,n){T(e,t,n)},p:X,d(e){e&&L(t)}}}function ns(i,t){let e,n,o=t[1](t[11].distance)+"",s,r;return{key:i,first:null,c(){e=B("div"),n=B("div"),s=xe(o),r=$(),y(n,"class","floorplan-plugin__rule-text svelte-djlmk4"),q(n,"is-row",t[2]),y(e,"class","floorplan-plugin__rule-text-item svelte-djlmk4"),z(e,"left",t[11].left*100+"%"),z(e,"bottom",t[11].bottom*100+"%"),this.first=e},m(a,l){T(a,e,l),V(e,n),V(n,s),V(e,r)},p(a,l){t=a,l&2&&o!==(o=t[1](t[11].distance)+"")&&Se(s,o)},d(a){a&&L(e)}}}function zd(i){let t,e,n,o,s,r,a=[],l=new Map,c,u=i[3],d=[];for(let g=0;g<u.length;g+=1)d[g]=ts(es(i,u,g));let h=i[4];const m=g=>g[13];for(let g=0;g<h.length;g+=1){let p=$o(i,h,g),A=m(p);l.set(A,a[g]=ns(A,p))}return{c(){t=B("div"),e=B("div"),n=$(),o=B("div");for(let g=0;g<d.length;g+=1)d[g].c();s=$(),r=B("div");for(let g=0;g<a.length;g+=1)a[g].c();y(e,"class","floorplan-plugin__rule-line svelte-djlmk4"),y(o,"class","floorplan-plugin__rule-scale-wrapper svelte-djlmk4"),q(o,"is-row",i[2]),y(r,"class","floorplan-plugin__rule-text-wrapper svelte-djlmk4"),y(t,"class",c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+i[0]+" svelte-djlmk4"),q(t,"is-row",i[2]),z(t,"width",i[2]?"100%":1/16+"rem"),z(t,"height",i[2]?1/16+"rem":"100%")},m(g,p){T(g,t,p),V(t,e),V(t,n),V(t,o);for(let A=0;A<d.length;A+=1)d[A].m(o,null);V(t,s),V(t,r);for(let A=0;A<a.length;A+=1)a[A].m(r,null)},p(g,[p]){if(p&8){u=g[3];let A;for(A=0;A<u.length;A+=1){const v=es(g,u,A);d[A]?d[A].p(v,p):(d[A]=ts(v),d[A].c(),d[A].m(o,null))}for(;A<d.length;A+=1)d[A].d(1);d.length=u.length}p&22&&(h=g[4],a=Ke(a,p,m,1,g,h,l,r,vo,ns,null,$o)),p&1&&c!==(c="floorplan-plugin__rule-labels floorplan-plugin__rule-labels--"+g[0]+" svelte-djlmk4")&&y(t,"class",c),p&5&&q(t,"is-row",g[2])},i:X,o:X,d(g){g&&L(t),ut(d,g);for(let p=0;p<a.length;p+=1)a[p].d()}}}const Qt=1e3,Ft=180;function Bd(i,t,e){let{type:n}=t,{data:o}=t,{bounding:s}=t,{getRuleDistanceText:r}=t;const a=n==="top"||n==="bottom",l=s.max.x-s.min.x-(Qt-Ft)*2,c=s.max.y-s.min.y-(Qt-Ft)*2,u=o.map(([g,p])=>a?[g.x,p.x]:[g.y,p.y]).flat().sort().filter((g,p,A)=>p===0?!0:g!==A[p-1]),d=u.map(g=>{const p=a?(g-s.min.x-Qt+Ft)/l:0,A=a?0:(g-s.min.y-Qt+Ft)/c;return{left:p,bottom:A}});d.unshift({left:0,bottom:0}),d.push(a?{left:1,bottom:0}:{left:0,bottom:1});const h=u[u.length-1]-u[0],m=u.map((g,p,A)=>{const v=p===0?0:g-A[p-1],b=p===0?0:(g+A[p-1])/2,w=a?(b-s.min.x-Qt+Ft)/l:0,k=a?0:(b-s.min.y-Qt+Ft)/c;return{left:w,bottom:k,distance:v}}).filter(({distance:g})=>g/h>.1);return i.$$set=g=>{"type"in g&&e(0,n=g.type),"data"in g&&e(5,o=g.data),"bounding"in g&&e(6,s=g.bounding),"getRuleDistanceText"in g&&e(1,r=g.getRuleDistanceText)},[n,r,a,d,m,o,s]}class Vd extends oe{constructor(t){super(),ie(this,t,Bd,zd,ne,{type:0,data:5,bounding:6,getRuleDistanceText:1},Td)}}function jd(i){le(i,"svelte-1mzj9p3",".floorplan-plugin__rule-labels-wrapper.svelte-1mzj9p3{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}")}function is(i,t,e){const n=i.slice();return n[13]=t[e][0],n[14]=t[e][1],n}function os(i,t){let e,n,o;const s=[{type:t[13],data:t[14],bounding:t[1],getRuleDistanceText:t[0]}];let r={};for(let a=0;a<s.length;a+=1)r=Be(r,s[a]);return n=new Vd({props:r}),{key:i,first:null,c(){e=pe(),K(n.$$.fragment),this.first=e},m(a,l){T(a,e,l),J(n,a,l),o=!0},p(a,l){t=a;const c=l&19?Fe(s,[{type:t[13],data:t[14],bounding:t[1],getRuleDistanceText:t[0]}]):{};n.$set(c)},i(a){o||(C(n.$$.fragment,a),o=!0)},o(a){D(n.$$.fragment,a),o=!1},d(a){a&&L(e),Z(n,a)}}}function Od(i){let t,e=[],n=new Map,o,s=i[4];const r=a=>a[13];for(let a=0;a<s.length;a+=1){let l=is(i,s,a),c=r(l);n.set(c,e[a]=os(c,l))}return{c(){t=B("div");for(let a=0;a<e.length;a+=1)e[a].c();y(t,"class","floorplan-plugin__rule-labels-wrapper svelte-1mzj9p3"),z(t,"width",i[3]),z(t,"height",i[2])},m(a,l){T(a,t,l);for(let c=0;c<e.length;c+=1)e[c].m(t,null);o=!0},p(a,[l]){l&19&&(s=a[4],se(),e=Ke(e,l,r,1,a,s,n,t,kt,os,null,is),re()),l&8&&z(t,"width",a[3]),l&4&&z(t,"height",a[2])},i(a){if(!o){for(let l=0;l<s.length;l+=1)C(e[l]);o=!0}},o(a){for(let l=0;l<e.length;l+=1)D(e[l]);o=!1},d(a){a&&L(t);for(let l=0;l<e.length;l+=1)e[l].d()}}}const ss=1e3,rs=180;function Rd(i,t,e){let n,o,s,r,a,l,c,u,d,h,{floorIndex:m}=t,{floorplanData:g}=t,{getRuleDistanceText:p}=t;return i.$$set=A=>{"floorIndex"in A&&e(5,m=A.floorIndex),"floorplanData"in A&&e(6,g=A.floorplanData),"getRuleDistanceText"in A&&e(0,p=A.getRuleDistanceText)},i.$$.update=()=>{i.$$.dirty&64&&e(1,n=g.bounding),i.$$.dirty&96&&e(11,o=g.floorDatas[m].rules),i.$$.dirty&2048&&e(12,s=Object.keys(o)),i.$$.dirty&6144&&e(4,r=s.map(A=>[A,o[A]])),i.$$.dirty&2&&e(9,a=n.max.x-n.min.x),i.$$.dirty&2&&e(7,l=n.max.y-n.min.y),i.$$.dirty&2&&e(10,c=n.max.x-n.min.x-(ss-rs)*2),i.$$.dirty&2&&e(8,u=n.max.y-n.min.y-(ss-rs)*2),i.$$.dirty&1536&&e(3,d=c/a*100+"%"),i.$$.dirty&384&&e(2,h=u/l*100+"%")},[p,n,h,d,r,m,g,l,u,a,c,o,s]}class Qd extends oe{constructor(t){super(),ie(this,t,Rd,Od,ne,{floorIndex:5,floorplanData:6,getRuleDistanceText:0},jd)}}function bi(i,t={}){let e="";const{needZ:n,needA:o}=t;return(n?i.slice().concat(i[0]):i.slice()).forEach((r,a)=>{const{x:l,y:c}=t.format?t.format(r):r,u=l+","+c;return a===0?(e+="M"+u,e):o!=null&&o[a]?(e+="A"+o[a]+","+u,e):(e+="L"+u,e)}),e+(n?"Z":"")}function tl({x:i,y:t},e){const{max:n,min:o}=e;return{x:i-o.x,y:n.y-t}}function Fd(i,t){const e=i.x*1e3+t.bounding.origin.x,n=-i.z*1e3+t.bounding.origin.y;return{x:e,y:n}}function Hd(i,t){const e=t.bounding,n=e.max.x-e.min.x,o=e.max.y-e.min.y;return{x:(i.x-e.min.x)/n,y:(e.max.y-i.y)/o}}function Gd(i,t){return Math.max(...t.work.observers.map(n=>i.z>=n.standingPosition.z?n.floorIndex:0))}function Wd(i){let t;return{c(){t=we("path"),y(t,"d",i[0]),y(t,"fill","#2F313A")},m(e,n){T(e,t,n)},p(e,[n]){n&1&&y(t,"d",e[0])},i:X,o:X,d(e){e&&L(t)}}}function _d(i,t,e){let n,{path:o}=t;return i.$$set=s=>{"path"in s&&e(1,o=s.path)},i.$$.update=()=>{i.$$.dirty&2&&e(0,n=bi(o,{needZ:!0}))},[n,o]}class Nd extends oe{constructor(t){super(),ie(this,t,_d,Wd,ne,{path:1})}}function Xd(i){let t,e,n,o,s,r;return{c(){t=we("defs"),e=we("pattern"),n=we("rect"),o=we("path"),s=$(),r=we("path"),y(n,"x","0"),y(n,"y","0"),y(n,"width",i[1]),y(n,"height",i[1]),y(n,"fill","#323747"),y(o,"d",i[2]),y(o,"stroke","#ffffff"),y(o,"stroke-opacity","0.06"),y(o,"stroke-width","0.5"),y(o,"fill","none"),y(e,"id","fpm-room-pattern-0"),y(e,"x","0"),y(e,"y","0"),y(e,"width",i[1]),y(e,"height",i[1]),y(e,"patternUnits","userSpaceOnUse"),y(e,"patternTransform","scale(50 50)"),y(r,"d",i[0]),y(r,"fill","url(#fpm-room-pattern-0)")},m(a,l){T(a,t,l),V(t,e),V(e,n),V(e,o),T(a,s,l),T(a,r,l)},p(a,[l]){l&1&&y(r,"d",a[0])},i:X,o:X,d(a){a&&L(t),a&&L(s),a&&L(r)}}}const Bi=6;function Yd(i,t,e){let n,{path:o}=t;const s=Bi*2,r=`M0 ${Bi} h ${s} M${Bi} 0 v ${s}`;return i.$$set=a=>{"path"in a&&e(3,o=a.path)},i.$$.update=()=>{i.$$.dirty&8&&e(0,n=bi(o,{needZ:!0}))},[n,s,r,o]}class Ud extends oe{constructor(t){super(),ie(this,t,Yd,Xd,ne,{path:3})}}function qd(i){let t,e,n,o,s,r,a,l,c,u,d;return{c(){t=we("defs"),e=we("pattern"),n=we("rect"),o=we("pattern"),s=we("rect"),r=$(),a=we("path"),l=$(),c=we("path"),u=$(),d=we("path"),y(n,"x","0"),y(n,"y","0"),y(n,"width","6"),y(n,"height","50"),y(n,"fill","none"),y(n,"stroke","#4B4B57"),y(n,"stroke-width","0.5"),y(e,"id","room-material-pattern-1"),y(e,"x","0"),y(e,"y","0"),y(e,"width","12"),y(e,"height","50"),y(e,"patternUnits","userSpaceOnUse"),y(e,"patternTransform","scale(50 50)"),y(s,"x","0"),y(s,"y","0"),y(s,"width","6"),y(s,"height","50"),y(s,"fill","none"),y(s,"stroke","#4B4B57"),y(s,"stroke-width","0.5"),y(o,"id","room-material-pattern-2"),y(o,"x","6"),y(o,"y","25"),y(o,"width","12"),y(o,"height","50"),y(o,"patternUnits","userSpaceOnUse"),y(o,"patternTransform","scale(50 50)"),y(a,"d",i[0]),y(a,"fill","#43434D"),y(c,"d",i[0]),y(c,"fill","url(#room-material-pattern-1)"),y(d,"d",i[0]),y(d,"fill","url(#room-material-pattern-2)")},m(h,m){T(h,t,m),V(t,e),V(e,n),V(t,o),V(o,s),T(h,r,m),T(h,a,m),T(h,l,m),T(h,c,m),T(h,u,m),T(h,d,m)},p(h,[m]){m&1&&y(a,"d",h[0]),m&1&&y(c,"d",h[0]),m&1&&y(d,"d",h[0])},i:X,o:X,d(h){h&&L(t),h&&L(r),h&&L(a),h&&L(l),h&&L(c),h&&L(u),h&&L(d)}}}function Jd(i,t,e){let n,{path:o}=t;return i.$$set=s=>{"path"in s&&e(1,o=s.path)},i.$$.update=()=>{i.$$.dirty&2&&e(0,n=bi(o,{needZ:!0}))},[n,o]}class Zd extends oe{constructor(t){super(),ie(this,t,Jd,qd,ne,{path:1})}}function Kd(i){le(i,"svelte-1dykexu",".floorplan-plugin__room-material.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%}svg.svelte-1dykexu{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}")}function as(i,t,e){const n=i.slice();return n[5]=t[e],n}function $d(i){let t,e;return t=new Ud({props:{path:i[5].path}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.path=n[5].path),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function eh(i){let t,e;return t=new Zd({props:{path:i[5].path}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.path=n[5].path),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function th(i){let t,e;return t=new Nd({props:{path:i[5].path}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&1&&(s.path=n[5].path),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function ls(i){let t,e,n,o;const s=[th,eh,$d],r=[];function a(l,c){return l[5].floorType===1?0:l[5].floorType===0?1:2}return e=a(i),n=r[e]=s[e](i),{c(){t=we("svg"),n.c(),y(t,"width","100%"),y(t,"height","100%"),y(t,"viewBox",`0 0 ${i[1]} ${i[2]}`),y(t,"class","svelte-1dykexu")},m(l,c){T(l,t,c),r[e].m(t,null),o=!0},p(l,c){let u=e;e=a(l),e===u?r[e].p(l,c):(se(),D(r[u],1,1,()=>{r[u]=null}),re(),n=r[e],n?n.p(l,c):(n=r[e]=s[e](l),n.c()),C(n,1),n.m(t,null))},i(l){o||(C(n),o=!0)},o(l){D(n),o=!1},d(l){l&&L(t),r[e].d()}}}function nh(i){let t,e,n=i[0],o=[];for(let r=0;r<n.length;r+=1)o[r]=ls(as(i,n,r));const s=r=>D(o[r],1,1,()=>{o[r]=null});return{c(){t=B("div");for(let r=0;r<o.length;r+=1)o[r].c();y(t,"class","floorplan-plugin__room-material svelte-1dykexu")},m(r,a){T(r,t,a);for(let l=0;l<o.length;l+=1)o[l].m(t,null);e=!0},p(r,[a]){if(a&7){n=r[0];let l;for(l=0;l<n.length;l+=1){const c=as(r,n,l);o[l]?(o[l].p(c,a),C(o[l],1)):(o[l]=ls(c),o[l].c(),C(o[l],1),o[l].m(t,null))}for(se(),l=n.length;l<o.length;l+=1)s(l);re()}},i(r){if(!e){for(let a=0;a<n.length;a+=1)C(o[a]);e=!0}},o(r){o=o.filter(Boolean);for(let a=0;a<o.length;a+=1)D(o[a]);e=!1},d(r){r&&L(t),ut(o,r)}}}function ih(i,t,e){let n,{floorIndex:o}=t,{floorplanData:s}=t;const r=s.bounding.max.x-s.bounding.min.x,a=s.bounding.max.y-s.bounding.min.y;return i.$$set=l=>{"floorIndex"in l&&e(3,o=l.floorIndex),"floorplanData"in l&&e(4,s=l.floorplanData)},i.$$.update=()=>{i.$$.dirty&24&&e(0,n=s.floorDatas[o].rooms.map(l=>fe(Q({},l),{path:l.path.map(c=>tl(c,s.bounding))})))},[n,r,a,o,s]}class oh extends oe{constructor(t){super(),ie(this,t,ih,nh,ne,{floorIndex:3,floorplanData:4},Kd)}}function sh(i){le(i,"svelte-qq2273","path.svelte-qq2273{--opacity:0;opacity:var(--opacity)}path.svelte-qq2273:hover{opacity:calc(var(--opacity) + 0.1)}")}function rh(i){let t,e,n,o;return{c(){t=we("path"),y(t,"d",i[5]),y(t,"fill","#fff"),y(t,"style",i[2]),y(t,"id",e=`${i[1]}_${i[0].id}`),y(t,"class","svelte-qq2273")},m(s,r){T(s,t,r),n||(o=[me(t,"mouseenter",i[3]),me(t,"mouseleave",i[4])],n=!0)},p(s,[r]){r&4&&y(t,"style",s[2]),r&3&&e!==(e=`${s[1]}_${s[0].id}`)&&y(t,"id",e)},i:X,o:X,d(s){s&&L(t),n=!1,Ge(o)}}}function ah(i,t,e){let n,o,{room:s}=t,{floorIndex:r}=t,{floorplanData:a}=t,{hoveredRoom:l}=t,{highlightData:c}=t;function u(){l.set(s)}function d(){l.set(void 0)}const{bounding:h}=a,m=bi(s.path,{needZ:!0,format:g=>tl(g,h)});return i.$$set=g=>{"room"in g&&e(0,s=g.room),"floorIndex"in g&&e(1,r=g.floorIndex),"floorplanData"in g&&e(6,a=g.floorplanData),"hoveredRoom"in g&&e(7,l=g.hoveredRoom),"highlightData"in g&&e(8,c=g.highlightData)},i.$$.update=()=>{i.$$.dirty&259&&e(9,n=c[`${r}_${s.id}`]),i.$$.dirty&512&&e(2,o=n?`fill: ${n.color}; --opacity: ${n.opacity}; pointer-events: ${n.disabled?"none":"auto"}`:null)},[s,r,o,u,d,m,a,l,c,n]}class lh extends oe{constructor(t){super(),ie(this,t,ah,rh,ne,{room:0,floorIndex:1,floorplanData:6,hoveredRoom:7,highlightData:8},sh)}}function ch(i){le(i,"svelte-1kqo6e4",".floorplan-plugin__room-highlight.svelte-1kqo6e4{position:absolute;width:100%;height:100%}svg.svelte-1kqo6e4{width:100%;height:100%;overflow:visible}")}function cs(i,t,e){const n=i.slice();return n[6]=t[e],n}function us(i,t){let e,n,o;const s=[{room:t[6],floorplanData:t[1],hoveredRoom:t[2],floorIndex:t[0],highlightData:t[3]}];let r={};for(let a=0;a<s.length;a+=1)r=Be(r,s[a]);return n=new lh({props:r}),{key:i,first:null,c(){e=pe(),K(n.$$.fragment),this.first=e},m(a,l){T(a,e,l),J(n,a,l),o=!0},p(a,l){t=a;const c=l&15?Fe(s,[{room:t[6],floorplanData:t[1],hoveredRoom:t[2],floorIndex:t[0],highlightData:t[3]}]):{};n.$set(c)},i(a){o||(C(n.$$.fragment,a),o=!0)},o(a){D(n.$$.fragment,a),o=!1},d(a){a&&L(e),Z(n,a)}}}function uh(i){let t,e,n=[],o=new Map,s,r=i[1].floorDatas[i[0]].rooms;const a=l=>l[6].id;for(let l=0;l<r.length;l+=1){let c=cs(i,r,l),u=a(c);o.set(u,n[l]=us(u,c))}return{c(){t=B("div"),e=we("svg");for(let l=0;l<n.length;l+=1)n[l].c();y(e,"width","100%"),y(e,"height","100%"),y(e,"viewBox",`0 0 ${i[4]} ${i[5]}`),y(e,"class","svelte-1kqo6e4"),y(t,"class","floorplan-plugin__room-highlight svelte-1kqo6e4")},m(l,c){T(l,t,c),V(t,e);for(let u=0;u<n.length;u+=1)n[u].m(e,null);s=!0},p(l,[c]){c&15&&(r=l[1].floorDatas[l[0]].rooms,se(),n=Ke(n,c,a,1,l,r,o,e,kt,us,null,cs),re())},i(l){if(!s){for(let c=0;c<r.length;c+=1)C(n[c]);s=!0}},o(l){for(let c=0;c<n.length;c+=1)D(n[c]);s=!1},d(l){l&&L(t);for(let c=0;c<n.length;c+=1)n[c].d()}}}function dh(i,t,e){let{floorIndex:n}=t,{floorplanData:o}=t,{hoveredRoom:s}=t,{highlightData:r}=t;const a=o.bounding.max.x-o.bounding.min.x,l=o.bounding.max.y-o.bounding.min.y;return i.$$set=c=>{"floorIndex"in c&&e(0,n=c.floorIndex),"floorplanData"in c&&e(1,o=c.floorplanData),"hoveredRoom"in c&&e(2,s=c.hoveredRoom),"highlightData"in c&&e(3,r=c.highlightData)},[n,o,s,r,a,l]}class nl extends oe{constructor(t){super(),ie(this,t,dh,uh,ne,{floorIndex:0,floorplanData:1,hoveredRoom:2,highlightData:3},ch)}}function hh(i){le(i,"svelte-bl8zrz",".floorplan-plugin__floor.svelte-bl8zrz{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;pointer-events:none}.floorplan-plugin__floor--is-current.svelte-bl8zrz{opacity:1;pointer-events:auto}")}function ds(i){let t,e;const n=[{floorIndex:i[1],floorplanData:i[8],hoveredRoom:i[14],highlightData:i[13]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new nl({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&24834?Fe(n,[{floorIndex:s[1],floorplanData:s[8],hoveredRoom:s[14],highlightData:s[13]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function hs(i){let t,e;const n=[{floorplanData:i[8],roomAreaEnable:i[5],roomNameEnable:i[6],floorIndex:i[1],getRoomAreaText:i[9],getLabelElement:i[10],hoveredRoom:i[14],adaptiveRoomLabelVisibleEnable:i[12]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new Sd({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&22370?Fe(n,[{floorplanData:s[8],roomAreaEnable:s[5],roomNameEnable:s[6],floorIndex:s[1],getRoomAreaText:s[9],getLabelElement:s[10],hoveredRoom:s[14],adaptiveRoomLabelVisibleEnable:s[12]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function fs(i){let t,e;const n=[{floorplanData:i[8],floorIndex:i[1],getRuleDistanceText:i[11]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new Qd({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&2306?Fe(n,[{floorplanData:s[8],floorIndex:s[1],getRuleDistanceText:s[11]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function fh(i){let t,e,n,o,s,r,a,l,c;const u=[{floorIndex:i[1],floorplanData:i[8]}];let d={};for(let v=0;v<u.length;v+=1)d=Be(d,u[v]);e=new oh({props:d});let h=(i[2]||i[3])&&ds(i);const m=[{floorplanData:i[8],floorIndex:i[1]}];let g={};for(let v=0;v<m.length;v+=1)g=Be(g,m[v]);s=new el({props:g});let p=i[4]&&hs(i),A=i[7]&&fs(i);return{c(){t=B("div"),K(e.$$.fragment),n=$(),h&&h.c(),o=$(),K(s.$$.fragment),r=$(),p&&p.c(),a=$(),A&&A.c(),y(t,"class",l=Ie(`floorplan-plugin__floor${i[0]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz")},m(v,b){T(v,t,b),J(e,t,null),V(t,n),h&&h.m(t,null),V(t,o),J(s,t,null),V(t,r),p&&p.m(t,null),V(t,a),A&&A.m(t,null),c=!0},p(v,[b]){const w=b&258?Fe(u,[{floorIndex:v[1],floorplanData:v[8]}]):{};e.$set(w),v[2]||v[3]?h?(h.p(v,b),b&12&&C(h,1)):(h=ds(v),h.c(),C(h,1),h.m(t,o)):h&&(se(),D(h,1,1,()=>{h=null}),re());const k=b&258?Fe(m,[{floorplanData:v[8],floorIndex:v[1]}]):{};s.$set(k),v[4]?p?(p.p(v,b),b&16&&C(p,1)):(p=hs(v),p.c(),C(p,1),p.m(t,a)):p&&(se(),D(p,1,1,()=>{p=null}),re()),v[7]?A?(A.p(v,b),b&128&&C(A,1)):(A=fs(v),A.c(),C(A,1),A.m(t,null)):A&&(se(),D(A,1,1,()=>{A=null}),re()),(!c||b&1&&l!==(l=Ie(`floorplan-plugin__floor${v[0]?" floorplan-plugin__floor--is-current":""}`)+" svelte-bl8zrz"))&&y(t,"class",l)},i(v){c||(C(e.$$.fragment,v),C(h),C(s.$$.fragment,v),C(p),C(A),c=!0)},o(v){D(e.$$.fragment,v),D(h),D(s.$$.fragment,v),D(p),D(A),c=!1},d(v){v&&L(t),Z(e),h&&h.d(),Z(s),p&&p.d(),A&&A.d()}}}function mh(i,t,e){let{isCurrent:n}=t,{floorIndex:o}=t,{highlightEnable:s}=t,{hoverEnable:r}=t,{roomLabelsEnable:a}=t,{roomAreaEnable:l}=t,{roomNameEnable:c}=t,{ruleLabelsEnable:u}=t,{floorplanData:d}=t,{getRoomAreaText:h}=t,{getLabelElement:m}=t,{getRuleDistanceText:g}=t,{adaptiveRoomLabelVisibleEnable:p}=t,{highlightData:A}=t;const v=bo(void 0);return i.$$set=b=>{"isCurrent"in b&&e(0,n=b.isCurrent),"floorIndex"in b&&e(1,o=b.floorIndex),"highlightEnable"in b&&e(2,s=b.highlightEnable),"hoverEnable"in b&&e(3,r=b.hoverEnable),"roomLabelsEnable"in b&&e(4,a=b.roomLabelsEnable),"roomAreaEnable"in b&&e(5,l=b.roomAreaEnable),"roomNameEnable"in b&&e(6,c=b.roomNameEnable),"ruleLabelsEnable"in b&&e(7,u=b.ruleLabelsEnable),"floorplanData"in b&&e(8,d=b.floorplanData),"getRoomAreaText"in b&&e(9,h=b.getRoomAreaText),"getLabelElement"in b&&e(10,m=b.getLabelElement),"getRuleDistanceText"in b&&e(11,g=b.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in b&&e(12,p=b.adaptiveRoomLabelVisibleEnable),"highlightData"in b&&e(13,A=b.highlightData)},[n,o,s,r,a,l,c,u,d,h,m,g,p,A,v]}class ph extends oe{constructor(t){super(),ie(this,t,mh,fh,ne,{isCurrent:0,floorIndex:1,highlightEnable:2,hoverEnable:3,roomLabelsEnable:4,roomAreaEnable:5,roomNameEnable:6,ruleLabelsEnable:7,floorplanData:8,getRoomAreaText:9,getLabelElement:10,getRuleDistanceText:11,adaptiveRoomLabelVisibleEnable:12,highlightData:13},hh)}}function gh(i){le(i,"svelte-86bqav",".floorplan-main.svelte-86bqav{width:100%;height:100%;pointer-events:none}")}function ms(i,t,e){const n=i.slice();return n[21]=t[e],n}function ps(i){let t,e,n,o,s,r=i[13].floorDatas,a=[];for(let d=0;d<r.length;d+=1)a[d]=gs(ms(i,r,d));const l=d=>D(a[d],1,1,()=>{a[d]=null});let c=i[5]&&vs(i),u=i[8]&&As(i);return{c(){t=B("div");for(let d=0;d<a.length;d+=1)a[d].c();e=$(),c&&c.c(),n=$(),u&&u.c(),y(t,"class","floorplan-main svelte-86bqav")},m(d,h){T(d,t,h);for(let m=0;m<a.length;m+=1)a[m].m(t,null);V(t,e),c&&c.m(t,null),V(t,n),u&&u.m(t,null),s=!0},p(d,h){if(i=d,h&2047696){r=i[13].floorDatas;let m;for(m=0;m<r.length;m+=1){const g=ms(i,r,m);a[m]?(a[m].p(g,h),C(a[m],1)):(a[m]=gs(g),a[m].c(),C(a[m],1),a[m].m(t,e))}for(se(),m=r.length;m<a.length;m+=1)l(m);re()}i[5]?c?(c.p(i,h),h&32&&C(c,1)):(c=vs(i),c.c(),C(c,1),c.m(t,n)):c&&(se(),D(c,1,1,()=>{c=null}),re()),i[8]?u?(u.p(i,h),h&256&&C(u,1)):(u=As(i),u.c(),C(u,1),u.m(t,null)):u&&(se(),D(u,1,1,()=>{u=null}),re())},i(d){if(!s){for(let h=0;h<r.length;h+=1)C(a[h]);C(c),C(u),o||Qe(()=>{o=zt(t,Tt,{duration:i[0],easing:At}),o.start()}),s=!0}},o(d){a=a.filter(Boolean);for(let h=0;h<a.length;h+=1)D(a[h]);D(c),D(u),s=!1},d(d){d&&L(t),ut(a,d),c&&c.d(),u&&u.d()}}}function gs(i){let t,e;const n=[{hoverEnable:i[6],highlightEnable:i[7],floorplanData:i[13],getRoomAreaText:i[16],getLabelElement:i[17],getRuleDistanceText:i[18],roomLabelsEnable:i[9],roomAreaEnable:i[10],roomNameEnable:i[11],ruleLabelsEnable:i[12],adaptiveRoomLabelVisibleEnable:i[19],highlightData:i[20]},{floorIndex:i[21].floorIndex},{isCurrent:i[21].floorIndex===i[4]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new ph({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&2047696?Fe(n,[r&2047680&&{hoverEnable:s[6],highlightEnable:s[7],floorplanData:s[13],getRoomAreaText:s[16],getLabelElement:s[17],getRuleDistanceText:s[18],roomLabelsEnable:s[9],roomAreaEnable:s[10],roomNameEnable:s[11],ruleLabelsEnable:s[12],adaptiveRoomLabelVisibleEnable:s[19],highlightData:s[20]},r&8192&&{floorIndex:s[21].floorIndex},r&8208&&{isCurrent:s[21].floorIndex===s[4]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function vs(i){let t,e;const n=[{panoIndex:i[3],floorplanData:i[13],lastPanoramaLongitude:i[14],cameraImageUrl:i[15]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new ed({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&57352?Fe(n,[{panoIndex:s[3],floorplanData:s[13],lastPanoramaLongitude:s[14],cameraImageUrl:s[15]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function As(i){let t,e;return t=new ad({props:{floorplanData:i[13],northDesc:i[2]}}),{c(){K(t.$$.fragment)},m(n,o){J(t,n,o),e=!0},p(n,o){const s={};o&8192&&(s.floorplanData=n[13]),o&4&&(s.northDesc=n[2]),t.$set(s)},i(n){e||(C(t.$$.fragment,n),e=!0)},o(n){D(t.$$.fragment,n),e=!1},d(n){Z(t,n)}}}function vh(i){let t,e,n=i[1]&&ps(i);return{c(){n&&n.c(),t=pe()},m(o,s){n&&n.m(o,s),T(o,t,s),e=!0},p(o,[s]){o[1]?n?(n.p(o,s),s&2&&C(n,1)):(n=ps(o),n.c(),C(n,1),n.m(t.parentNode,t)):n&&(se(),D(n,1,1,()=>{n=null}),re())},i(o){e||(C(n),e=!0)},o(o){D(n),e=!1},d(o){n&&n.d(o),o&&L(t)}}}function Ah(i,t,e){let{duration:n=0}=t,{visible:o}=t,{northDesc:s}=t,{panoIndex:r}=t,{floorIndex:a}=t,{cameraEnable:l}=t,{hoverEnable:c}=t,{highlightEnable:u}=t,{compassEnable:d}=t,{roomLabelsEnable:h}=t,{roomAreaEnable:m}=t,{roomNameEnable:g}=t,{ruleLabelsEnable:p}=t,{floorplanData:A}=t,{lastPanoramaLongitude:v}=t,{cameraImageUrl:b}=t,{getRoomAreaText:w}=t,{getLabelElement:k}=t,{getRuleDistanceText:I}=t,{adaptiveRoomLabelVisibleEnable:P}=t,{highlightData:M}=t;return i.$$set=x=>{"duration"in x&&e(0,n=x.duration),"visible"in x&&e(1,o=x.visible),"northDesc"in x&&e(2,s=x.northDesc),"panoIndex"in x&&e(3,r=x.panoIndex),"floorIndex"in x&&e(4,a=x.floorIndex),"cameraEnable"in x&&e(5,l=x.cameraEnable),"hoverEnable"in x&&e(6,c=x.hoverEnable),"highlightEnable"in x&&e(7,u=x.highlightEnable),"compassEnable"in x&&e(8,d=x.compassEnable),"roomLabelsEnable"in x&&e(9,h=x.roomLabelsEnable),"roomAreaEnable"in x&&e(10,m=x.roomAreaEnable),"roomNameEnable"in x&&e(11,g=x.roomNameEnable),"ruleLabelsEnable"in x&&e(12,p=x.ruleLabelsEnable),"floorplanData"in x&&e(13,A=x.floorplanData),"lastPanoramaLongitude"in x&&e(14,v=x.lastPanoramaLongitude),"cameraImageUrl"in x&&e(15,b=x.cameraImageUrl),"getRoomAreaText"in x&&e(16,w=x.getRoomAreaText),"getLabelElement"in x&&e(17,k=x.getLabelElement),"getRuleDistanceText"in x&&e(18,I=x.getRuleDistanceText),"adaptiveRoomLabelVisibleEnable"in x&&e(19,P=x.adaptiveRoomLabelVisibleEnable),"highlightData"in x&&e(20,M=x.highlightData)},[n,o,s,r,a,l,c,u,d,h,m,g,p,A,v,b,w,k,I,P,M]}class yo extends oe{constructor(t){super(),ie(this,t,Ah,vh,ne,{duration:0,visible:1,northDesc:2,panoIndex:3,floorIndex:4,cameraEnable:5,hoverEnable:6,highlightEnable:7,compassEnable:8,roomLabelsEnable:9,roomAreaEnable:10,roomNameEnable:11,ruleLabelsEnable:12,floorplanData:13,lastPanoramaLongitude:14,cameraImageUrl:15,getRoomAreaText:16,getLabelElement:17,getRuleDistanceText:18,adaptiveRoomLabelVisibleEnable:19,highlightData:20},gh)}}const bh="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAAAwCAYAAACFUvPfAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALaADAAQAAAABAAAAMAAAAADe2FZjAAAEF0lEQVRoBe2WzWskRRiHf13V092TxI2oEzYeVDwITtyDuCiihwiCePGgxIM3vYgHL4J4UIhBRA8i/gPqyUvWg7AiIuIeloDiYUHJLOK6BPwIk9nNODM9Xf1RVe1b3elJRjCZmQ6euqGmuqer33rq4e23GqiOykBloDJQGagMVAYqA5WBykBlYFYD1qwP/tdzaZqOx9zYOLxeX0+L5yzLGp0X/03a25MOnGRcBtx+6Rlo9SL08G4EooFnxa8Yiivox5/h5Ys/4cl7NVorNDRnngX+0MIkVMeMSf23zyKML8J7/Dy8hwF2Buh9CnS+AEQIdLspBuGb+M7/qLW4qJrNpsLapjYhpwVnx3BMfCtNNx3Etc9xywvnMf80wG8HmQainw0RxSGrnmeBp+8k5/j9S0HbvXb5io0Lz880/0wPHV1NlhLd316He+4xOCv5ragF7L9PrH1qBJyB0626x/lC+qrSvH5r/W+n1WpxUM5nMY4GPeH8lHJaPgfeAFQHCL+ntkXT+vnUc3W6pvTIwC0wy3rA4dwLmK2avZ7Eo9uKBuYJfgJscbs8dLCxDMt+EOEPBEZNEWyBYHqTz6bPXrzUnNrSShxHIsYiOL69zrCGLLcLqJP68tB+9w5wj+YhWDafQ2s61wNqxjZhmrQ2pvMFCEvXuCUZ7wqH794ZWs28LJqlTXSUyuksF2M/yOwqgkx2c1ADa4wLAQRk2sAGQQakhN6yFC2hltfz5kSY44NKQeeh+vtI/SSzWhg2CzCgmWISmKUGmaYFBDfCSymnfxJ6/+ospVcWOLLp5DGP/y0P/Rp66O99DQNq7Po3Ds0a0wY+My2QSv2N2mO/OyxR2o6UQk+Lv7yJ06JYSnnolZVU9cUn2O9SmaMWGFBqYXRwbqAJWIi94TX5biotpcGl1DXZ6LnqIbNDTnmUgi52Mv5l5ysMxIcZcGjy2DTK4ZHlcBC14zeSge4qphICjj3bS0A7o9nSp2TOkm7aZ8bGZy/jxhO87V91G0+dfY/Z7BWIIK9KYUi5qy/Hf8YfBG3sqJTHiQWhmTVkbip+wX3x6volVSx+LPAxF+VLXhZ8VQ+iP2Rta/iWe5v42Fngj0BbdnRTXh12ZIcKhTaGbcYjybRwXBU1lu9KlndXp04NM52poKWO0RZsviNaP9a6grkO972+st05pXhE5c1hTEluJy7XUejGUQNLMbAmTdWY1rKBLW3aTJqBZ7nZkb36DhYCreeYHbMUXHvaYi5XDK70EcgulmRjm77wNtenzuXCbmnTRaAx493rbGf3Jr/njMzj920CnKdUaFCjlDioy7NYNvOdGrQJNgI32/L2tkXfFPlxgToqjWVhD6KdLnQRdARf/HHQz2r2X2Gqy8pAZaAyUBmoDFQGKgP/q4F/AJYg9/s0ZoABAAAAAElFTkSuQmCC";function yh(i){return H(this,null,function*(){const t=new Headers({"Content-Type":"text/plain"}),e=function(o){return H(this,null,function*(){const s={index:o.index,url:o.url,svgUrl:o.svg_url};if(o.svg_url){const r=yield fetch(o.svg_url,{headers:t}).then(a=>a.text());s.svgContent=r}return s})};return yield Promise.all(i.map(e))})}function wh(i){return{id:i.id,size:i.size,name:i.name,path:i.path,roomType:i.room_type,floorType:i.floor_type,roomLabel:{position:i.room_label.position,positionInImage:i.room_label.position_in_image},observerIndexs:i.observer_indexs}}function Eh(i){return{floorName:i.floor_name,floorIndex:i.floor_index,rooms:i.rooms.map(wh),rules:i.rules}}function Ph(i){return{index:i.index,floorIndex:i.floor_index,position:i.position,positionInImage:i.position_in_image}}function Ch(i){return{rad:i.rad,position:i.position,positionInImage:i.position_in_image,northRad:i.north_rad,roomId:i.room_id,floorIndex:i.floor_index}}function wt(i){return H(this,null,function*(){const t=yield yh(i.outlines),e=i.computed_data.bounding,n=i.computed_data.floor_datas.map(Eh),o=i.computed_data.entrance?Ch(i.computed_data.entrance):null;return{outlines:t,entrance:o,bounding:e,floorDatas:n,observers:i.computed_data.observers.map(Ph)}})}function Ih(i,t,e){return i.map(o=>{const s=o.position,r=o.icon?o.icon:{url:bh,width:45,height:48},a=Gd(s,t),l=Fd(s,e),c=Hd(l,e);return{floorIndex:a,icon:r,id:o.id,position:l,positionInImage:c}})}function kh(i,t){return t(i),i}function yi(i,t){return kh({},e=>{for(const n in i)t.indexOf(n)===-1&&(e[n]=i[n])})}function bs(i,t){const e=Math.max(...i.work.observers.map(n=>n.floorIndex));return t>e?i.model.bounding.max.y:Math.max(...i.work.observers.filter(n=>n.floorIndex===t).map(n=>n.standingPosition.y))}function wo(i,t,e=gt.BOUNDING_CENTER){const n=bs(i,t),o=bs(i,t+1);return e===gt.BOUNDING_CENTER?(i.model.bounding.max.y+i.model.bounding.min.y)/2:e===gt.CEILING?o:n}function Eo(i,t,e,n){const o=wo(i,e,n==null?void 0:n.attachedTo),s=new E.Vector3(0,o,0),r=new E.Vector3(1,o,0),a=s.clone().project(i.camera),l=r.clone().project(i.camera);return Math.abs((l.x-a.x)/1e3)*(t.getBoundingClientRect().width/2)}class xn{constructor(t,e){f(this,"VERSION","2.16.0-alpha.3");f(this,"five");f(this,"hooks",new Kt);f(this,"staticPrefix","//vrlab-static.ljcdn.com");this.five=t,e!=null&&e.staticPrefix&&(this.staticPrefix=e.staticPrefix)}getCurrentState(){return this.state}}class Bt extends xn{}var _e=(i=>(i.UnknownError="UnknownError",i.DataNotLoaded="DataNotLoaded",i.BreakOffByHide="BreakOffByHide",i.BreakOffByDisable="BreakOffByDisable",i.ModelNotLoaded="ModelNotLoaded",i.ChangeModeError="ChangeModeError",i.UpdateCameraError="UpdateCameraError",i))(_e||{});const il=500,xh=80;function io(i,t,e=4){return Math.floor(i*Math.pow(10,e))===Math.floor(t*Math.pow(10,e))}function ol(i,t){return H(this,null,function*(){yield new Promise((e,n)=>{i.changeMode(...t).catch(o=>n(o)),i.once("initAnimationEnded",()=>{const o=i.getCurrentState(),s=t[0];o.mode!==s&&n(new Error("mode \u4E0E\u9884\u671F\u4E0D\u7B26")),(()=>{const l=t[1];return l?Object.keys(l).every(c=>{const u=o[c];if(u===void 0)return!0;const d=l[c];return typeof u=="number"&&typeof d=="number"?io(u,d,2):u===d}):!0})()||n(new Error("five pose \u4E0E\u9884\u671F\u4E0D\u7B26")),e()})})})}function Po(i,t){if(i.currentMode!==t.mode)return!1;const{latitude:e,longitude:n,fov:o}=t,{latitude:s,longitude:r}=i.getCurrentState(),a=i.camera.fov;return!(!io(e,s,2)||!io(n,r,2)||o!==a)}function sl(i,t,e=!0){return H(this,null,function*(){if(Po(i,t)===!0)return;const o=i.getCurrentState();if(o.mode!==t.mode){const[u]=yield ci(ol(i,[t.mode,t,void 0,e]));if(u)throw new Error(_e.ChangeModeError);return}const{latitude:s,longitude:r,fov:a}=o,l=Math.min(1e3,Math.max(200,Math.abs(s-Math.PI/2)*1e3,(r>Math.PI?2*Math.PI-r:r)*500,Math.abs(a-t.fov)*10)),[c]=yield ci(i.updateCamera(t,l,e));if(c)throw new Error(_e.UpdateCameraError)})}function qt(i,t,e=300){const n=i.getElement();!n||(n.style.opacity=t+"",n.style.transition=e===0?"none":`opacity ${e}ms linear`,e!==0&&Promise.race([new Promise(o=>n.addEventListener("transitionend",o,{once:!0})),new Promise(o=>setTimeout(o,e))]).then(()=>{n.style.transition="none"}))}function Dh(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)>5*Math.PI/180,o=e>5*(Math.PI/180)&&e<355*(Math.PI/180);return n||o}function Mh(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)<10*Math.PI/180,o=e<30*(Math.PI/180)||e>330*(Math.PI/180);return n&&o}class Lh extends Bt{constructor(e,n){var a;super(e);f(this,"name","modelFloorplanPlugin");f(this,"state");f(this,"data");f(this,"showState");f(this,"showPromise");f(this,"app");f(this,"panoIndex",0);f(this,"floorIndex",0);f(this,"selector");f(this,"showRejection");f(this,"wrapper");f(this,"container",document.createElement("div"));f(this,"lastPanoramaLongitude",0);f(this,"size",{width:0,height:0});f(this,"hasAddedEventListener",!1);f(this,"isHiddenByHideFunc",!1);f(this,"highlightData",{});f(this,"dispose",()=>{var e,n;this.removeEventListener(),(e=this.app)==null||e.$destroy(),this.app=void 0,(n=this.container)==null||n.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});f(this,"show",(...n)=>H(this,[...n],function*(e={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const o=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},o),this._show(e)}));f(this,"hide",(...n)=>H(this,[...n],function*(e={}){!this.state.enabled||(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},e.userAction||!0),this._hide(e)))}));f(this,"updateSize",()=>{if(!this.data||!Po(this.five,this.showState)||!this.container||!this.wrapper)return;const{min:e,max:n}=this.data.bounding,o=n.x-e.x,s=n.y-e.y,r=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Eo(this.five,this.wrapper,this.floorIndex,r),l=Math.ceil(o*a),c=Math.ceil(s*a);this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c})});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o,s,r;const{userAction:n}=e;this.hooks.emit("disable",{userAction:n}),(o=this.showRejection)==null||o.call(this,_e.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(r=this.container)==null||r.remove(),this.removeEventListener()});f(this,"_enable",e=>{const{userAction:n}=e;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n}))});f(this,"_show",e=>H(this,null,function*(){var r;if(!this.state.enabled)return;if(!((r=this.five.model)!=null&&r.loaded))throw new Error(_e.ModelNotLoaded);if(!this.data)throw new Error(_e.DataNotLoaded);this.isHiddenByHideFunc=!1;const n={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},o=Q(Q({},n),e),s=()=>H(this,null,function*(){this.hooks.emit("show",{userAction:o.userAction,auto:o.isAutoShow});let a=!1,l;this.showRejection=h=>{a=!0,l=h};const[c]=yield ci(sl(this.five,this.showState,o.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(_e.UnknownError);this.updateSize(),this.floorIndex=o.floorIndex,this.five.model.show(this.floorIndex);const u=o.modelOpacity,d=o.immediately?0:il;qt(this.five,u,d),this.render(d)});return this.showPromise=s().then(()=>{this.hooks.emit("showAnimationEnded",{auto:o.isAutoShow,userAction:o.userAction})}).catch(a=>{if(this.updateState({visible:!1},o.userAction),!o.isAutoShow&&a instanceof Error)throw a}).finally(()=>{this.showPromise=void 0,this.showRejection=void 0}),this.showPromise}));f(this,"_hide",e=>{var s;(s=this.showRejection)==null||s.call(this,_e.BreakOffByHide),this.showPromise=void 0;const o=Q(Q({},{userAction:!0,isAutoHide:!1}),e);qt(this.five,1,0),this.hooks.emit("hide",{auto:o.isAutoHide,userAction:o.userAction}),this.render()});f(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});f(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const e=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!e)throw new Error("\u4E0D\u6B63\u786E\u7684\u7236\u5BB9\u5668\u9009\u62E9\u5668");this.wrapper=e,e.append(this.container)});f(this,"onFiveModeChange",e=>{e!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});f(this,"onFiveInteriaPan",(e,n)=>{if(!n||this.state.config.autoShowEnable===!1||this.isHiddenByHideFunc)return;const o=this.five.getCurrentState();o.mode==="Floorplan"&&(this.state.visible||Mh(o)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0})))});f(this,"onFivePanoArrived",e=>{var n;!((n=this.five)!=null&&n.work)||(this.panoIndex=e,this.floorIndex=this.five.work.observers[e].floorIndex)});f(this,"onFiveCameraUpdate",(e,n)=>{if(!this.state.visible||this.showPromise)return;const o=this.five.getCurrentState();Dh(o)&&(this.updateState({visible:!1},n),this._hide({userAction:n,isAutoHide:!0}))});f(this,"onFiveWantsGesture",(e,n)=>{if(!!this.state.visible&&(n.length>1||e==="mouseWheel"))return!1});f(this,"onFiveWantsPanGesture",(e,n)=>{if(this.five.getCurrentState().mode==="Floorplan"&&this.state.config.autoShowEnable!==!1&&n&&this.state.visible)return this.five.updateCamera(this.showState,0),!1});f(this,"onFiveWantsTapGesture",()=>this.handleClick());f(this,"onFiveWantsChangeMode",(e,n)=>{n==="Panorama"&&e==="Floorplan"&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});f(this,"onModelShownFloorChange",e=>{if(this.floorIndex!==e){if(e===null){const n=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[n].floorIndex;return}this.floorIndex=e,this.updateSize(),this.render()}});n!=null&&n.selector&&(this.selector=n.selector,console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5")),this.showState={mode:"Floorplan",longitude:0,latitude:Math.PI/2,fov:xh/((a=n==null?void 0:n.scale)!=null?a:1)};const o={northDesc:"\u5317",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,adaptiveRoomLabelVisibleEnable:!0,cameraImageUrl:yt,attachedTo:gt.BOUNDING_CENTER,getLabelElement:void 0,getRoomAreaText:l=>(l/1e6).toFixed(1)+"\u33A1",getRuleDistanceText:l=>l.toString()},s=n?yi(n,["selector","scale"]):{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!1,config:r},this.initContainer(),e.model.loaded?this.onFiveModelLoaded():e.once("modelLoaded",this.onFiveModelLoaded),e.once("dispose",this.dispose),this.addEventListener()}load(e,n,o=!0){return H(this,null,function*(){function s(u){return Object.prototype.hasOwnProperty.apply(u,["version"])}const r=e;r&&!r.version&&console.warn("\u4F20\u5165 serverData.data \u7684\u65B9\u5F0F\u540E\u7EED\u53EF\u80FD\u4E0D\u518D\u652F\u6301\uFF0C\u8BF7\u628A serverData \u6574\u4F53\u4F20\u5165 load \u51FD\u6570");const a=JSON.parse(JSON.stringify(e)),l=s(a)?a.data:a,c=this.data;this.data=yield wt(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),n&&this.updateState(n,o),this.render()})}appendTo(e){if(this.wrapper=e,!!this.state.enabled)return e.appendChild(this.container),this.render(),this}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled&&(e.enabled?this._enable({userAction:s}):this._disable({userAction:s})),e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}this.render()}changeConfigs(e,n=!0){this.updateState({config:e},n),this.render()}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}updateState(e,n){const o=this.state,s=e.config?Q(Q({},o.config),e.config):o.config;this.state=fe(Q(Q({},this.state),e),{config:s}),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const e=this.five;e.on("modeChange",this.onFiveModeChange),e.on("interiaPan",this.onFiveInteriaPan),e.on("panoArrived",this.onFivePanoArrived),e.on("cameraUpdate",this.onFiveCameraUpdate),e.on("wantsGesture",this.onFiveWantsGesture),e.on("wantsPanGesture",this.onFiveWantsPanGesture),e.on("wantsTapGesture",this.onFiveWantsTapGesture),e.on("wantsChangeMode",this.onFiveWantsChangeMode),e.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const e=this.five;this.hasAddedEventListener=!1,e.off("modelLoaded",this.onFiveModelLoaded),e.off("modeChange",this.onFiveModeChange),e.off("interiaPan",this.onFiveInteriaPan),e.off("panoArrived",this.onFivePanoArrived),e.off("cameraUpdate",this.onFiveCameraUpdate),e.off("wantsGesture",this.onFiveWantsGesture),e.off("wantsPanGesture",this.onFiveWantsPanGesture),e.off("wantsTapGesture",this.onFiveWantsTapGesture),e.off("wantsChangeMode",this.onFiveWantsChangeMode),e.off("modelShownFloorChange",this.onModelShownFloorChange)}render(e){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const n=fe(Q({},this.state.config),{visible:this.state.visible,duration:e!=null?e:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(n);this.app=new yo({target:this.container,intro:!0,props:n})}}const Sh=(i,t)=>new Lh(i,t);function Th(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)>5*Math.PI/180,o=e>5*(Math.PI/180)&&e<355*(Math.PI/180);return n||o}function zh(i){const{latitude:t,longitude:e}=i,n=Math.abs(t-Math.PI/2)<10*Math.PI/180,o=e<30*(Math.PI/180)||e>330*(Math.PI/180);return n&&o}class Bh extends Bt{constructor(e,n){super(e);f(this,"name","modelFloorplanPlugin");f(this,"state");f(this,"data");f(this,"showState");f(this,"showPromise");f(this,"app");f(this,"panoIndex",0);f(this,"floorIndex",0);f(this,"selector");f(this,"showRejection");f(this,"wrapper");f(this,"container",document.createElement("div"));f(this,"lastPanoramaLongitude",0);f(this,"size",{width:0,height:0});f(this,"hasAddedEventListener",!1);f(this,"isHiddenByHideFunc",!1);f(this,"highlightData",{});f(this,"dispose",()=>{var e,n;this.removeEventListener(),(e=this.app)==null||e.$destroy(),this.app=void 0,(n=this.container)==null||n.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});f(this,"show",(...n)=>H(this,[...n],function*(e={}){if(!this.state.enabled||!this.showPromise&&this.state.visible)return;const o=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},o),this._show(e)}));f(this,"hide",(...n)=>H(this,[...n],function*(e={}){!this.state.enabled||(this.isHiddenByHideFunc=!0,this.state.visible!==!1&&(this.updateState({visible:!1},e.userAction||!0),this._hide(e)))}));f(this,"updateSize",()=>{if(!this.data||!Po(this.five,this.showState)||!this.container||!this.wrapper)return;const{min:e,max:n}=this.data.bounding,o=n.x-e.x,s=n.y-e.y,r=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Eo(this.five,this.wrapper,this.floorIndex,r),l=Math.ceil(o*a),c=Math.ceil(s*a);this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c})});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o,s,r;const{userAction:n}=e;this.hooks.emit("disable",{userAction:n}),(o=this.showRejection)==null||o.call(this,_e.BreakOffByDisable),this.showPromise=void 0,(s=this.app)==null||s.$destroy(),this.app=void 0,(r=this.container)==null||r.remove(),this.removeEventListener()});f(this,"_enable",e=>{const{userAction:n}=e;this.addEventListener(),this.wrapper&&(this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n}))});f(this,"_show",e=>H(this,null,function*(){var r;if(!this.state.enabled)return;if(!((r=this.five.model)!=null&&r.loaded))throw new Error(_e.ModelNotLoaded);if(!this.data)throw new Error(_e.DataNotLoaded);this.isHiddenByHideFunc=!1;const n={floorIndex:this.floorIndex,modelOpacity:this.state.config.modelOpacity,immediately:!1,isAutoShow:!1,userAction:!0},o=Q(Q({},n),e),s=()=>H(this,null,function*(){this.hooks.emit("show",{userAction:o.userAction,auto:o.isAutoShow});let a=!1,l;this.showRejection=h=>{a=!0,l=h};const[c]=yield ci(sl(this.five,this.showState,o.userAction));if(c)throw c;if(a)throw l?new Error(l):new Error(_e.UnknownError);this.updateSize(),this.updatePosition(),this.floorIndex=o.floorIndex,this.five.model.show(this.floorIndex);const u=o.modelOpacity,d=o.immediately?0:il;qt(this.five,u,d),this.render(d)});return this.showPromise=s().then(()=>{this.hooks.emit("showAnimationEnded",{auto:o.isAutoShow,userAction:o.userAction})}).catch(a=>{if(this.updateState({visible:!1},o.userAction),!o.isAutoShow&&a instanceof Error)throw a}).finally(()=>{this.showPromise=void 0,this.showRejection=void 0}),this.showPromise}));f(this,"_hide",e=>{var s;(s=this.showRejection)==null||s.call(this,_e.BreakOffByHide),this.showPromise=void 0;const o=Q(Q({},{userAction:!0,isAutoHide:!1}),e);qt(this.five,1,0),this.hooks.emit("hide",{auto:o.isAutoHide,userAction:o.userAction}),this.render()});f(this,"handleClick",()=>{if(!this.state.visible)return;if(this.hooks.emit("click"))return!1});f(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const e=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!e)throw new Error("\u4E0D\u6B63\u786E\u7684\u7236\u5BB9\u5668\u9009\u62E9\u5668");this.wrapper=e,e.append(this.container)});f(this,"onFiveModeChange",e=>{e!==this.showState.mode&&(this.updateState({visible:!1},!1),this._hide({userAction:!1}))});f(this,"onFivePanoArrived",e=>{var n;!((n=this.five)!=null&&n.work)||(this.panoIndex=e,this.floorIndex=this.five.work.observers[e].floorIndex)});f(this,"onFiveCameraUpdate",(e,n)=>{if(!this.state.visible||this.showPromise)return;const o=this.five.getCurrentState();this.updatePosition(),this.updateSize(),Th(o)&&(this.updateState({visible:!1},n),this._hide({userAction:n}))});f(this,"onFiveWantsPanGesture",(e,n)=>{if(this.five.getCurrentState().mode===this.showState.mode&&this.state.config.autoShowEnable!==!1){if(n&&this.state.visible)return this.five.updateCamera(this.showState,0),!1;if(n&&!this.state.visible){if(this.isHiddenByHideFunc)return;const o=this.five.getCurrentState();return o.mode!==this.showState.mode||this.state.visible?void 0:(zh(o)&&(this.updateState({visible:!0},!0),this._show({isAutoShow:!0})),!1)}}});f(this,"onFiveWantsTapGesture",()=>this.handleClick());f(this,"onFiveWantsChangeMode",(e,n)=>{n==="Panorama"&&e===this.showState.mode&&(this.lastPanoramaLongitude=this.five.getCurrentState().longitude)});f(this,"onModelShownFloorChange",e=>{if(this.floorIndex!==e){if(e===null){const n=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[n].floorIndex;return}this.floorIndex=e,this.updateSize(),this.render()}});n!=null&&n.selector&&(this.selector=n.selector,console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5")),this.showState={mode:"Mapview",longitude:0,latitude:Math.PI/2,fov:90};const o={northDesc:"\u5317",modelOpacity:1,cameraEnable:!0,highlightEnable:!1,hoverEnable:!0,compassEnable:!0,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,cameraImageUrl:yt,attachedTo:gt.BOUNDING_CENTER,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,getRoomAreaText:a=>(a/1e6).toFixed(1)+"\u33A1",getRuleDistanceText:a=>a.toString()},s=n?yi(n,["selector","scale"]):{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!1,config:r},this.initContainer(),e.model.loaded?this.onFiveModelLoaded():e.once("modelLoaded",this.onFiveModelLoaded),e.once("dispose",this.dispose),this.addEventListener()}load(e,n,o=!0){return H(this,null,function*(){function s(u){return Object.prototype.hasOwnProperty.apply(u,["version"])}const r=e;r&&!r.version&&console.warn("\u4F20\u5165 serverData.data \u7684\u65B9\u5F0F\u540E\u7EED\u53EF\u80FD\u4E0D\u518D\u652F\u6301\uFF0C\u8BF7\u628A serverData \u6574\u4F53\u4F20\u5165 load \u51FD\u6570");const a=JSON.parse(JSON.stringify(e)),l=s(a)?a.data:a,c=this.data;this.data=yield wt(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),n&&this.updateState(n,o),this.render()})}appendTo(e){if(this.wrapper=e,!!this.state.enabled)return e.appendChild(this.container),this.render(),this}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled&&(e.enabled?this._enable({userAction:s}):this._disable({userAction:s})),e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}}changeConfigs(e,n=!0){this.updateState({config:e},n),this.render()}updatePosition(){var a;const e=wo(this.five,this.floorIndex,this.state.config.attachedTo),n=(a=this.five.model)==null?void 0:a.bounding.getCenter(new E.Vector3).setY(e);if(!n)return;const o=n.clone().project(this.five.camera),s=(o.x+1)/2,r=-(o.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=r*100+"%"}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}updateState(e,n){const o=this.state,s=e.config?Q(Q({},o.config),e.config):o.config;this.state=fe(Q(Q({},this.state),e),{config:s}),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)",zIndex:10,pointerEvents:"none"}),this.five.addExtraElement(this.container)}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const e=this.five;e.on("modeChange",this.onFiveModeChange),e.on("panoArrived",this.onFivePanoArrived),e.on("cameraUpdate",this.onFiveCameraUpdate),e.on("wantsPanGesture",this.onFiveWantsPanGesture),e.on("wantsTapGesture",this.onFiveWantsTapGesture),e.on("wantsChangeMode",this.onFiveWantsChangeMode),e.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const e=this.five;this.hasAddedEventListener=!1,e.off("modelLoaded",this.onFiveModelLoaded),e.off("modeChange",this.onFiveModeChange),e.off("panoArrived",this.onFivePanoArrived),e.off("cameraUpdate",this.onFiveCameraUpdate),e.off("wantsPanGesture",this.onFiveWantsPanGesture),e.off("wantsTapGesture",this.onFiveWantsTapGesture),e.off("wantsChangeMode",this.onFiveWantsChangeMode),e.off("modelShownFloorChange",this.onModelShownFloorChange)}render(e){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const n=fe(Q({},this.state.config),{visible:this.state.visible,duration:e!=null?e:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(n);this.app=new yo({target:this.container,intro:!0,props:n})}}const Vh=(i,t)=>new Bh(i,t);class jh extends Bt{constructor(e,n){super(e);f(this,"name","topviewFloorplanPlugin");f(this,"state");f(this,"data");f(this,"app");f(this,"selector");f(this,"panoIndex",0);f(this,"floorIndex",0);f(this,"wrapper");f(this,"container",document.createElement("div"));f(this,"lastPanoramaLongitude",0);f(this,"size",{width:0,height:0});f(this,"hasAddedEventListener",!1);f(this,"isHiddenByHideFunc",!1);f(this,"highlightData",{});f(this,"updateSize",()=>{if(!this.data||!this.container||!this.wrapper||this.five.getCurrentState().mode!=="Topview")return;const{min:e,max:n}=this.data.bounding,o=n.x-e.x,s=n.y-e.y,r=this.state.config.attachedTo?{attachedTo:this.state.config.attachedTo}:void 0,a=Eo(this.five,this.wrapper,this.floorIndex,r),l=Math.ceil(o*a),c=Math.ceil(s*a);this.size.width===l&&this.size.height===c||(this.container.style.width=l+"px",this.container.style.height=c+"px",this.size={width:l,height:c})});f(this,"dispose",()=>{var e,n;this.removeEventListener(),(e=this.app)==null||e.$destroy(),this.app=void 0,(n=this.container)==null||n.remove(),this.data=void 0,this.wrapper=void 0,this.selector=void 0,this.hooks.emit("dispose")});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o,s;const{userAction:n}=e;(o=this.app)==null||o.$destroy(),this.app=void 0,(s=this.container)==null||s.remove(),this.removeEventListener(),this.hooks.emit("disable",{userAction:n})});f(this,"onFiveModelLoaded",()=>{if(this.state.enabled===!1||this.wrapper||!this.selector)return;const e=this.selector instanceof Element?this.selector:document.querySelector(this.selector);if(!e)throw new Error("\u4E0D\u6B63\u786E\u7684\u7236\u5BB9\u5668\u9009\u62E9\u5668");this.wrapper=e,e.append(this.container)});f(this,"onFiveModeChange",(...[e,,,,n])=>{e!=="Topview"&&this.state.visible&&(this.updateState({visible:!1},n),this._hide({userAction:n}))});f(this,"onFivePanoArrived",e=>{var n;!((n=this.five)!=null&&n.work)||(this.panoIndex=e,this.floorIndex=this.five.work.observers[e].floorIndex)});f(this,"onFiveCameraUpdate",(e,n)=>{!this.state.visible||(this.updatePosition(),this.updateSize())});f(this,"onFiveWantsGesture",e=>{if(!(e!=="pan"&&e!=="pinch"&&e!=="mouseWheel")&&this.state.visible&&!this.state.config.gestureEnable)return!1});f(this,"onFiveWantsMoveToPano",()=>{if(this.state.visible&&this.state.config.preventRoomClick)return!1});f(this,"onFiveInitAnimationEnded",(...[,,e])=>{const{mode:n}=this.five.getCurrentState();n==="Topview"&&!this.isHiddenByHideFunc&&!this.state.visible&&this.state.config.autoShowEnable&&(this.updateState({visible:!0},e),this._show({userAction:e}))});f(this,"onModelShownFloorChange",e=>{if(this.floorIndex!==e){if(e===null){const n=this.five.getCurrentState().panoIndex;this.floorIndex=this.five.work.observers[n].floorIndex;return}this.floorIndex=e,this.updateSize(),this.render()}});n!=null&&n.selector&&(this.selector=n.selector,console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5"));const o={northDesc:"\u5317",modelOpacity:1,cameraEnable:!0,hoverEnable:!0,highlightEnable:!1,compassEnable:!0,gestureEnable:!1,autoShowEnable:!0,ruleLabelsEnable:!0,roomLabelsEnable:!0,roomAreaEnable:!0,roomNameEnable:!0,cameraImageUrl:yt,attachedTo:gt.BOUNDING_CENTER,getLabelElement:void 0,adaptiveRoomLabelVisibleEnable:!0,getRoomAreaText:a=>(a/1e6).toFixed(1)+"\u33A1",getRuleDistanceText:a=>a.toString()},s=n?yi(n,["selector","scale"]):{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!1,config:r},this.initContainer(),e.model.loaded?this.onFiveModelLoaded():e.once("modelLoaded",this.onFiveModelLoaded),e.once("dispose",this.dispose),this.addEventListener()}load(e,n,o=!0){return H(this,null,function*(){function s(u){return Object.prototype.hasOwnProperty.apply(u,["version"])}const r=e;r&&!r.version&&console.warn("\u4F20\u5165 serverData.data \u7684\u65B9\u5F0F\u540E\u7EED\u53EF\u80FD\u4E0D\u518D\u652F\u6301\uFF0C\u8BF7\u628A serverData \u6574\u4F53\u4F20\u5165 load \u51FD\u6570");const a=JSON.parse(JSON.stringify(e)),l=s(a)?a.data:a,c=this.data;this.data=yield wt(l),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,c),n&&this.updateState(n,o),this.render()})}updatePosition(){var a;const e=wo(this.five,this.floorIndex,this.state.config.attachedTo),n=(a=this.five.model)==null?void 0:a.bounding.getCenter(new E.Vector3).setY(e);if(!n)return;const o=n.clone().project(this.five.camera),s=(o.x+1)/2,r=-(o.y-1)/2;this.container.style.left=s*100+"%",this.container.style.top=r*100+"%"}appendTo(e){if(this.wrapper=e,!!this.state.enabled)return e.appendChild(this.container),this.render(),this}show(){return H(this,arguments,function*(e={}){if(this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},n),this._show({userAction:n})})}hide(){return H(this,arguments,function*(e={}){if(this.isHiddenByHideFunc=!0,!this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!1},n),this._hide({userAction:n})})}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled){const r={userAction:s};e.enabled?this._enable(r):this._disable(r)}if(e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}}changeConfigs(e,n=!0){this.updateState({config:e},n),this.render()}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}_show(e){return H(this,null,function*(){if(!this.state.enabled)return;this.isHiddenByHideFunc=!1;const{userAction:n}=e;this.hooks.emit("show",{userAction:n,auto:!1}),this.five.getCurrentState().mode!=="Topview"&&(yield ol(this.five,["Topview",void 0,void 0,n])),this.five.model.show(this.floorIndex),this.updatePosition(),this.updateSize();const o=500,s=this.state.config.modelOpacity;qt(this.five,s,o),this.hooks.emit("showAnimationEnded",{userAction:n,auto:!1}),this.render()})}_hide(e){return H(this,null,function*(){if(!this.state.enabled)return;const{userAction:n}=e;this.hooks.emit("hide",{userAction:n,auto:!1});const o=1,s=0;qt(this.five,o,s),this.render()})}_enable(e){const{userAction:n}=e;this.addEventListener(),this.wrapper&&this.wrapper.append(this.container),this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n})}updateState(e,n){const o=this.state,s=e.config?Q(Q({},o.config),e.config):o.config;this.state=fe(Q(Q({},this.state),e),{config:s}),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}addEventListener(){if(!this.state.enabled||this.hasAddedEventListener)return;const e=this.five;e.on("modeChange",this.onFiveModeChange),e.on("panoArrived",this.onFivePanoArrived),e.on("cameraUpdate",this.onFiveCameraUpdate),e.on("wantsGesture",this.onFiveWantsGesture),e.on("wantsMoveToPano",this.onFiveWantsMoveToPano),e.on("initAnimationEnded",this.onFiveInitAnimationEnded),e.on("modelShownFloorChange",this.onModelShownFloorChange)}removeEventListener(){const e=this.five;this.hasAddedEventListener=!1,e.off("modeChange",this.onFiveModeChange),e.off("panoArrived",this.onFivePanoArrived),e.off("cameraUpdate",this.onFiveCameraUpdate),e.off("wantsGesture",this.onFiveWantsGesture),e.off("wantsMoveToPano",this.onFiveWantsMoveToPano),e.off("initAnimationEnded",this.onFiveInitAnimationEnded),e.off("modelShownFloorChange",this.onModelShownFloorChange)}initContainer(){this.container.classList.add("floorplan-plugin"),Object.assign(this.container.style,{position:"absolute",left:"50%",top:"50%",transform:"translate3d(-50%, -50%, 10px)",zIndex:10,pointerEvents:"none","will-change":"width, height"}),this.five.addExtraElement(this.container)}render(e){if(!this.state.enabled||!this.container||!this.data||this.size.width===0)return;const n=fe(Q({},this.state.config),{visible:this.state.visible,duration:e!=null?e:0,panoIndex:this.panoIndex,floorIndex:this.floorIndex,floorplanData:this.data,lastPanoramaLongitude:this.lastPanoramaLongitude,highlightData:this.highlightData});if(this.app)return this.app.$set(n);this.app=new yo({target:this.container,intro:!0,props:n})}}const Oh=(i,t)=>new jh(i,t);function Co(i,t=200){let e;return function(...n){e||(i(...n),e=setTimeout(function(){e=null},t))}}function Rh(i){le(i,"svelte-1nqrlxd",".plugin-radar__camera-wrapper.svelte-1nqrlxd{width:100%;height:100%;position:absolute;pointer-events:none}.plugin-radar__camera-position.svelte-1nqrlxd{position:absolute;left:0;top:0;width:0;height:0;transform:none;pointer-events:none;transition:transform 1s linear}.plugin-radar__camera-rotate.svelte-1nqrlxd{position:absolute;left:-0.9375rem;top:-0.9375rem;width:1.0625rem;height:1.0625rem;transform-origin:0.9375rem 0.9375rem;transform:rotate(45deg);background-repeat:no-repeat;background-size:100%}")}function Qh(i){let t,e,n;return{c(){t=B("div"),e=B("div"),n=B("div"),y(n,"class","plugin-radar__camera-rotate svelte-1nqrlxd"),z(n,"background-image","url("+(i[0]||yt)+")"),z(n,"transform",i[1]),y(e,"class","plugin-radar__camera-position svelte-1nqrlxd"),z(e,"transform",i[2]),y(t,"class","plugin-radar__camera-wrapper svelte-1nqrlxd")},m(o,s){T(o,t,s),V(t,e),V(e,n)},p(o,[s]){s&1&&z(n,"background-image","url("+(o[0]||yt)+")"),s&2&&z(n,"transform",o[1]),s&4&&z(e,"transform",o[2])},i:X,o:X,d(o){o&&L(t)}}}function Fh(i){return`rotate(${Math.floor(i/Math.PI*180)*-1+45}deg)`}function Hh(i,t,e){let n,o,{five:s}=t,{pxmm:r}=t,{floorplanData:a}=t,{cameraImageUrl:l}=t,c=s.getCurrentState().panoIndex,u=s.getCurrentState().longitude;function d(g,p){const A=g.bounding,v=g.observers[p];if(!v)return"";const b=(A.max.x-A.min.x)*r,w=(A.max.y-A.min.y)*r,k=Math.floor(v.positionInImage.x*b),I=Math.floor(v.positionInImage.y*w);return`translate(${k}px, ${I}px)`}function h(g){e(6,c=g)}const m=Co(g=>{e(7,u=g.longitude)},1e3/60);return Ze(()=>(s.on("panoWillArrive",h),s.on("cameraDirectionUpdate",m),function(){s.off("panoWillArrive",h),s.off("cameraDirectionUpdate",m)})),i.$$set=g=>{"five"in g&&e(3,s=g.five),"pxmm"in g&&e(4,r=g.pxmm),"floorplanData"in g&&e(5,a=g.floorplanData),"cameraImageUrl"in g&&e(0,l=g.cameraImageUrl)},i.$$.update=()=>{i.$$.dirty&96&&e(2,n=d(a,c)),i.$$.dirty&128&&e(1,o=Fh(u))},[l,o,n,s,r,a,c,u]}class Gh extends oe{constructor(t){super(),ie(this,t,Hh,Qh,ne,{five:3,pxmm:4,floorplanData:5,cameraImageUrl:0},Rh)}}function Wh(i){le(i,"svelte-1i87fz7",".plugin-pano-floorplan__extra-objects.svelte-1i87fz7{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.plugin-pano-floorplan__extra-object-item--position.svelte-1i87fz7{position:absolute;width:0;height:0}.plugin-pano-floorplan__extra-object-item.svelte-1i87fz7{transform:translate(-50%, -50%)}")}function ys(i,t,e){const n=i.slice();return n[1]=t[e],n}function ws(i,t){let e,n,o=`${t[1].icon.width/16}rem`,s=`${t[1].icon.height/16}rem`,r,a=`${t[1].positionInImage.y*100}%`,l=`${t[1].positionInImage.x*100}%`;return{key:i,first:null,c(){e=B("div"),n=B("div"),r=$(),y(n,"class","plugin-pano-floorplan__extra-object-item svelte-1i87fz7"),z(n,"background-image",`url(${t[1].icon.url})`),z(n,"width",o),z(n,"height",s),y(e,"class","plugin-pano-floorplan__extra-object-item--position svelte-1i87fz7"),z(e,"top",a),z(e,"left",l),this.first=e},m(c,u){T(c,e,u),V(e,n),V(e,r)},p(c,u){t=c,u&1&&z(n,"background-image",`url(${t[1].icon.url})`),u&1&&o!==(o=`${t[1].icon.width/16}rem`)&&z(n,"width",o),u&1&&s!==(s=`${t[1].icon.height/16}rem`)&&z(n,"height",s),u&1&&a!==(a=`${t[1].positionInImage.y*100}%`)&&z(e,"top",a),u&1&&l!==(l=`${t[1].positionInImage.x*100}%`)&&z(e,"left",l)},d(c){c&&L(e)}}}function _h(i){let t,e=[],n=new Map,o=i[0];const s=r=>r[1].id;for(let r=0;r<o.length;r+=1){let a=ys(i,o,r),l=s(a);n.set(l,e[r]=ws(l,a))}return{c(){t=B("div");for(let r=0;r<e.length;r+=1)e[r].c();y(t,"class","plugin-pano-floorplan__extra-objects svelte-1i87fz7")},m(r,a){T(r,t,a);for(let l=0;l<e.length;l+=1)e[l].m(t,null)},p(r,[a]){a&1&&(o=r[0],e=Ke(e,a,s,1,r,o,n,t,vo,ws,null,ys))},i:X,o:X,d(r){r&&L(t);for(let a=0;a<e.length;a+=1)e[a].d()}}}function Nh(i,t,e){let{extraObjects:n=[]}=t;return i.$$set=o=>{"extraObjects"in o&&e(0,n=o.extraObjects)},[n]}class Xh extends oe{constructor(t){super(),ie(this,t,Nh,_h,ne,{extraObjects:0},Wh)}}function Es(i){let t,e;const n=[{five:i[0],pxmm:i[1],floorIndex:i[2],floorplanData:i[4],onRoomHeightClick:i[7],highlightData:i[5]}];let o={};for(let s=0;s<n.length;s+=1)o=Be(o,n[s]);return t=new nl({props:o}),{c(){K(t.$$.fragment)},m(s,r){J(t,s,r),e=!0},p(s,r){const a=r&183?Fe(n,[{five:s[0],pxmm:s[1],floorIndex:s[2],floorplanData:s[4],onRoomHeightClick:s[7],highlightData:s[5]}]):{};t.$set(a)},i(s){e||(C(t.$$.fragment,s),e=!0)},o(s){D(t.$$.fragment,s),e=!1},d(s){Z(t,s)}}}function Yh(i){let t,e,n,o,s,r;const a=[{floorIndex:i[2],floorplanData:i[4]}];let l={};for(let u=0;u<a.length;u+=1)l=Be(l,a[u]);t=new el({props:l}),n=new Xh({props:{extraObjects:i[6]}});let c=i[3]&&Es(i);return{c(){K(t.$$.fragment),e=$(),K(n.$$.fragment),o=$(),c&&c.c(),s=pe()},m(u,d){J(t,u,d),T(u,e,d),J(n,u,d),T(u,o,d),c&&c.m(u,d),T(u,s,d),r=!0},p(u,[d]){const h=d&20?Fe(a,[{floorIndex:u[2],floorplanData:u[4]}]):{};t.$set(h);const m={};d&64&&(m.extraObjects=u[6]),n.$set(m),u[3]?c?(c.p(u,d),d&8&&C(c,1)):(c=Es(u),c.c(),C(c,1),c.m(s.parentNode,s)):c&&(se(),D(c,1,1,()=>{c=null}),re())},i(u){r||(C(t.$$.fragment,u),C(n.$$.fragment,u),C(c),r=!0)},o(u){D(t.$$.fragment,u),D(n.$$.fragment,u),D(c),r=!1},d(u){Z(t,u),u&&L(e),Z(n,u),u&&L(o),c&&c.d(u),u&&L(s)}}}function Uh(i,t,e){let n,{five:o}=t,{pxmm:s}=t,{floorIndex:r}=t,{hoverEnable:a}=t,{floorplanData:l}=t,{extraObjects:c=[]}=t,{highlightData:u}=t;const d=void 0;return i.$$set=h=>{"five"in h&&e(0,o=h.five),"pxmm"in h&&e(1,s=h.pxmm),"floorIndex"in h&&e(2,r=h.floorIndex),"hoverEnable"in h&&e(3,a=h.hoverEnable),"floorplanData"in h&&e(4,l=h.floorplanData),"extraObjects"in h&&e(8,c=h.extraObjects),"highlightData"in h&&e(5,u=h.highlightData)},i.$$.update=()=>{i.$$.dirty&260&&e(6,n=c==null?void 0:c.filter(h=>h.floorIndex===r))},[o,s,r,a,l,u,n,d,c]}class qh extends oe{constructor(t){super(),ie(this,t,Uh,Yh,ne,{five:0,pxmm:1,floorIndex:2,hoverEnable:3,floorplanData:4,extraObjects:8,highlightData:5})}}function Jh(i){le(i,"svelte-1mvqyqq",".plugin-floorplan-radar.svelte-1mvqyqq{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.plugin-floorplan-radar-container.svelte-1mvqyqq{position:relative}")}function Ps(i){let t,e,n,o,s=i[7]!==0&&Cs(i);return{c(){t=B("div"),s&&s.c(),y(t,"class","plugin-floorplan-radar svelte-1mvqyqq")},m(r,a){T(r,t,a),s&&s.m(t,null),e=!0,n||(o=[ct(ln.call(null,t)),me(t,"clientWidth",i[13]),me(t,"clientHeight",i[14])],n=!0)},p(r,a){r[7]!==0?s?(s.p(r,a),a&128&&C(s,1)):(s=Cs(r),s.c(),C(s,1),s.m(t,null)):s&&(se(),D(s,1,1,()=>{s=null}),re())},i(r){e||(C(s),e=!0)},o(r){D(s),e=!1},d(r){r&&L(t),s&&s.d(),n=!1,Ge(o)}}}function Cs(i){let t,e,n,o,s=`${i[9]}px`,r=`${i[12]}px`,a;const l=[{five:i[0],pxmm:i[10],floorIndex:i[11],floorplanData:i[3],hoverEnable:i[2],extraObjects:i[5],highlightData:i[6]}];let c={};for(let h=0;h<l.length;h+=1)c=Be(c,l[h]);e=new qh({props:c});const u=[{pxmm:i[10],five:i[0],floorplanData:i[3],cameraImageUrl:i[4]}];let d={};for(let h=0;h<u.length;h+=1)d=Be(d,u[h]);return o=new Gh({props:d}),{c(){t=B("div"),K(e.$$.fragment),n=$(),K(o.$$.fragment),y(t,"class","plugin-floorplan-radar-container svelte-1mvqyqq"),z(t,"width",s),z(t,"height",r)},m(h,m){T(h,t,m),J(e,t,null),V(t,n),J(o,t,null),a=!0},p(h,m){const g=m&3181?Fe(l,[{five:h[0],pxmm:h[10],floorIndex:h[11],floorplanData:h[3],hoverEnable:h[2],extraObjects:h[5],highlightData:h[6]}]):{};e.$set(g);const p=m&1049?Fe(u,[{pxmm:h[10],five:h[0],floorplanData:h[3],cameraImageUrl:h[4]}]):{};o.$set(p),m&512&&s!==(s=`${h[9]}px`)&&z(t,"width",s),m&4096&&r!==(r=`${h[12]}px`)&&z(t,"height",r)},i(h){a||(C(e.$$.fragment,h),C(o.$$.fragment,h),a=!0)},o(h){D(e.$$.fragment,h),D(o.$$.fragment,h),a=!1},d(h){h&&L(t),Z(e),Z(o)}}}function Zh(i){let t,e,n=i[1]&&Ps(i);return{c(){n&&n.c(),t=pe()},m(o,s){n&&n.m(o,s),T(o,t,s),e=!0},p(o,[s]){o[1]?n?(n.p(o,s),s&2&&C(n,1)):(n=Ps(o),n.c(),C(n,1),n.m(t.parentNode,t)):n&&(se(),D(n,1,1,()=>{n=null}),re())},i(o){e||(C(n),e=!0)},o(o){D(n),e=!1},d(o){n&&n.d(o),o&&L(t)}}}function Kh(i,t,e){var w,k;let{five:n}=t,{visible:o}=t,{hoverEnable:s}=t,{floorplanData:r}=t,{cameraImageUrl:a}=t,{extraObjects:l=[]}=t,{highlightData:c}=t,u=0,d=(k=(w=n.work.observers[n.getCurrentState().panoIndex])==null?void 0:w.floorIndex)!=null?k:0,h=0,m=0,g=0,p=0;function A(I){e(11,d=n.work.observers[I].floorIndex)}Ze(()=>(n.on("panoArrived",A),()=>{n.off("panoArrived",A)}));const v=I=>{e(7,h=I.detail)},b=I=>{e(8,m=I.detail)};return i.$$set=I=>{"five"in I&&e(0,n=I.five),"visible"in I&&e(1,o=I.visible),"hoverEnable"in I&&e(2,s=I.hoverEnable),"floorplanData"in I&&e(3,r=I.floorplanData),"cameraImageUrl"in I&&e(4,a=I.cameraImageUrl),"extraObjects"in I&&e(5,l=I.extraObjects),"highlightData"in I&&e(6,c=I.highlightData)},i.$$.update=()=>{if(i.$$.dirty&904){const I=Math.min(h,m),{max:P,min:M}=r.bounding,x=P.x-M.x,F=P.y-M.y,N=function(){return x>F?[I,I/x*F]:[I/F*x,I]}();e(9,g=N[0]),e(12,p=N[1]),e(10,u=g/x)}},[n,o,s,r,a,l,c,h,m,g,u,d,p,v,b]}class $h extends oe{constructor(t){super(),ie(this,t,Kh,Zh,ne,{five:0,visible:1,hoverEnable:2,floorplanData:3,cameraImageUrl:4,extraObjects:5,highlightData:6},Jh)}}class ef extends Bt{constructor(e,n){super(e);f(this,"name","panoFloorplanRadarPlugin");f(this,"state");f(this,"data");f(this,"app");f(this,"wrapperSelector","");f(this,"wrapper",null);f(this,"disposed",!1);f(this,"extraObjects",[]);f(this,"highlightData",{});f(this,"dispose",()=>{var e;this.disposed=!0,(e=this.app)==null||e.$destroy(),this.wrapper=null,this.wrapperSelector="",this.hooks.emit("dispose")});f(this,"highlight",e=>{!this.state.config.highlightEnable||(this.highlightData=e,this.render())});f(this,"unhighlight",()=>{this.highlightData={},this.render()});f(this,"_disable",e=>{var o;const{userAction:n}=e;(o=this.app)==null||o.$destroy(),this.app=void 0,this.hooks.emit("disable",{userAction:n})});this.five=e;const o={hoverEnable:!0,highlightEnable:!0,cameraImageUrl:yt},s=n!=null&&n.configs?n.configs:{},r=Q(Q({},o),s);this.state={enabled:!0,visible:!0,config:r},n!=null&&n.wrapper&&console.warn("\u4E0D\u63A8\u8350\u7EE7\u7EED\u4F7F\u7528 params.selector \u914D\u7F6E\u7236\u5BB9\u5668\uFF0C\u8BF7\u4F7F\u7528 appendTo \u65B9\u6CD5"),typeof(n==null?void 0:n.wrapper)=="string"?this.wrapperSelector=n.wrapper:(n==null?void 0:n.wrapper)instanceof Element&&(this.wrapper=n.wrapper),e.once("dispose",this.dispose)}load(e,n,o=!0){return H(this,null,function*(){function s(c){return Object.prototype.hasOwnProperty.apply(c,["version"])}const r=JSON.parse(JSON.stringify(e)),a=s(r)?r.data:r,l=this.data;this.data=yield wt(a),this.hooks.emit("dataLoaded",this.data),this.hooks.emit("dataChange",this.data,l),n&&this.updateState(n,o),this.render()})}show(){return H(this,arguments,function*(e={}){if(this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!0},n),this._show({userAction:n})})}hide(){return H(this,arguments,function*(e={}){if(!this.state.visible)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({visible:!1},n),this._hide({userAction:n})})}enable(e={}){if(this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!0},e.userAction||n),this._enable({userAction:n})}disable(e={}){if(!this.state.enabled)return;const n=e.userAction!==void 0?e.userAction:!0;this.updateState({enabled:!1},e.userAction||n),this._disable({userAction:n})}setState(e,n={}){const o=this.state,s=n.userAction!==void 0?n.userAction:!0;if(this.updateState(e,s),e.enabled!==void 0&&o.enabled!==e.enabled){const r={userAction:s};e.enabled?this._enable(r):this._disable(r)}if(e.visible!==void 0&&o.visible!==e.visible){const r={userAction:s};e.visible?this._show(r):this._hide(r)}}appendTo(e){this.wrapper=e,this.render()}changeConfigs(e,n=!0){this.setState({config:e},{userAction:n}),this.render()}setExtraObjectsWith3DPositions(e){!this.data||(this.extraObjects=Ih(e,this.five,this.data),this.render())}formatData(e){return H(this,null,function*(){return yield wt(e.data)})}_enable(e){const{userAction:n}=e;this.hooks.emit("enable",{userAction:n}),this.state.visible&&this._show({userAction:n})}_show(e){if(this.disposed||!this.state.enabled)return;const{userAction:n}=e;this.hooks.emit("show",{userAction:n}),this.render()}_hide(e){if(this.disposed||!this.state.enabled)return;const{userAction:n}=e;this.hooks.emit("hide",{userAction:n}),this.render()}updateState(e,n){const o=this.state;this.state=Q(Q({},this.state),e),!nt(this.state,o,{deep:!0})&&this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:n})}render(){if(this.disposed||!this.state.enabled)return;if(!this.wrapper&&this.wrapperSelector){const n=document.querySelector(this.wrapperSelector);this.wrapper=n}if(!this.data||!this.wrapper)return;const e=fe(Q({},this.state.config),{five:this.five,floorplanData:this.data,visible:this.state.visible,extraObjects:this.extraObjects,highlightData:this.highlightData});this.app?this.app.$set(e):this.app=new $h({target:this.wrapper,props:e})}}const tf=(i,t)=>new ef(i,t),nf=[{type:0,floorType:1,roomType:"100900000012",name:"\u5176\u4ED6"},{type:1,floorType:1,roomType:"100900000002",name:"\u5BA2\u5385"},{type:2,floorType:1,roomType:"100900000002",name:"\u9910\u5385"},{type:3,floorType:0,roomType:"100900000001",name:"\u5367\u5BA4"},{type:4,floorType:0,roomType:"100900000001",name:"\u4E66\u623F"},{type:5,floorType:3,roomType:"100900000004",name:"\u536B\u751F\u95F4"},{type:6,floorType:3,roomType:"100900000004",name:"\u6DCB\u6D74\u95F4"},{type:7,floorType:3,roomType:"100900000004",name:"\u6D17\u624B\u95F4"},{type:8,floorType:3,roomType:"100900000003",name:"\u53A8\u623F"},{type:9,floorType:1,roomType:"100900000003",name:"\u5F00\u653E\u53A8\u623F",onlySubArea:!0},{type:10,floorType:0,roomType:"100900000001",name:"\u591A\u529F\u80FD\u95F4"},{type:11,floorType:0,roomType:"100900000009",name:"\u4FDD\u59C6\u95F4"},{type:12,floorType:4,roomType:"100900000005",name:"\u9633\u53F0"},{type:13,floorType:4,roomType:"100900000006",name:"\u9732\u53F0"},{type:14,floorType:0,roomType:"100900000008",name:"\u50A8\u7269\u95F4"},{type:15,floorType:0,roomType:"100900000013",name:"\u8863\u5E3D\u95F4"},{type:16,floorType:0,roomType:"100900000011",name:"\u9601\u697C"},{type:17,floorType:2,roomType:"100900000007",name:"\u82B1\u56ED"},{type:18,floorType:5,roomType:"100900000010",name:"\u8F66\u5E93"},{type:19,floorType:1,roomType:"100900000012",name:"\u7535\u68AF"},{type:20,floorType:1,roomType:"100900000012",name:"\u5730\u4E0B\u5BA4"},{type:21,floorType:1,roomType:"100900000012",name:"\u5929\u4E95"},{type:22,floorType:1,roomType:"100900000012",name:"\u9633\u5149\u623F"},{type:23,floorType:1,roomType:"100900000012",name:"\u8FC7\u9053"},{type:24,floorType:1,roomType:"100900000012",name:"\u697C\u68AF\u95F4"},{type:25,floorType:1,roomType:"100900000012",name:"\u95E8\u5385"},{type:26,floorType:2,roomType:"100900000012",name:"\u5165\u6237\u82B1\u56ED"},{type:27,floorType:1,roomType:"100900000012",name:"\u7384\u5173"},{type:28,floorType:1,roomType:"100900000012",name:"\u6311\u7A7A"},{type:29,floorType:4,roomType:"100900000012",name:"\u667E\u6652\u533A"},{type:30,floorType:4,roomType:"100900000012",name:"\u6D17\u8863\u623F"},{type:31,floorType:0,roomType:"100900000012",name:"\u5A31\u4E50\u533A"},{type:32,floorType:0,roomType:"100900000012",name:"\u5065\u8EAB\u533A"},{type:33,floorType:0,roomType:"100900000012",name:"\u63A5\u5F85\u533A"},{type:34,floorType:0,roomType:"100900000012",name:"\u5F71\u97F3\u533A"},{type:35,floorType:1,roomType:"100900000012",name:"\u9910\u996E\u533A"},{type:36,floorType:1,roomType:"100900000012",name:"\u5176\u4ED6",onlySubArea:!0},{type:37,floorType:1,roomType:"100900000002",name:"\u8D77\u5C45\u5BA4"},{type:38,floorType:0,roomType:"100900000001",name:"\u4E3B\u5367"},{type:39,floorType:0,roomType:"100900000001",name:"\u6B21\u5367"},{type:40,floorType:0,roomType:"100900000001",name:"\u4F18\u5316\u95F4"},{type:41,floorType:0,roomType:"100900000001",name:"\u529E\u516C\u5BA4"},{type:42,floorType:0,roomType:"100900000001",name:"\u4F1A\u8BAE\u5BA4"},{type:43,floorType:0,roomType:"100900000001",name:"\u6D3D\u8C08\u95F4"},{type:44,floorType:1,roomType:"100900000002",name:"\u5171\u4EAB\u5927\u5385"},{type:45,floorType:1,roomType:"100900000012",name:"\u6C34\u5427"},{type:46,floorType:0,roomType:"100900000015",name:"\u51FA\u5165\u53E3"},{type:47,floorType:0,roomType:"100900000015",name:"\u5927\u5385"},{type:48,floorType:0,roomType:"100900000015",name:"\u5305\u53A2"},{type:49,floorType:0,roomType:"100900000015",name:"\u5176\u4ED6"},{type:50,floorType:0,roomType:"100900000016",name:"\u51FA\u5165\u53E3"},{type:51,floorType:0,roomType:"100900000016",name:"\u529E\u516C\u533A"},{type:52,floorType:0,roomType:"100900000016",name:"\u8001\u677F\u95F4"},{type:53,floorType:0,roomType:"100900000016",name:"\u4F1A\u8BAE\u5BA4"},{type:54,floorType:0,roomType:"100900000016",name:"\u4F11\u606F\u533A/\u6C34\u5427"},{type:55,floorType:0,roomType:"100900000016",name:"\u5176\u4ED6"},{type:56,floorType:2,roomType:"100900000012",name:"\u7A7A\u4E2D\u82B1\u56ED"},{type:57,floorType:0,roomType:"100900000001",name:"\u6D0B\u5BA4"},{type:58,floorType:0,roomType:"100900000001",name:"\u548C\u5BA4"}],of=[{type:0,description:"\u6728\u8D28\u5730\u677F"},{type:1,description:"\u74F7\u7816\u5730\u9762"},{type:2,description:"\u6237\u5916\u5730\u9762"},{type:3,description:"\u536B\u751F\u95F4\u5730\u9762"},{type:4,description:"\u9633\u53F0\u5730\u9762"},{type:5,description:"\u8F66\u5E93\u5730\u9762"}],sf=[{roomType:"100900000001",description:"\u5BA4"},{roomType:"100900000002",description:"\u5385"},{roomType:"100900000003",description:"\u53A8"},{roomType:"100900000004",description:"\u536B"},{roomType:"100900000005",description:"\u9633\u53F0"},{roomType:"100900000006",description:"\u9732\u53F0"},{roomType:"100900000007",description:"\u82B1\u56ED"},{roomType:"100900000008",description:"\u50A8"},{roomType:"100900000009",description:"\u4FDD\u59C6\u95F4"},{roomType:"100900000010",description:"\u8F66\u5E93"},{roomType:"100900000011",description:"\u9601\u697C"},{roomType:"100900000012",description:"\u5176\u4ED6"},{roomType:"100900000013",description:"\u8863"},{roomType:"100900000015",description:"\u5546\u94FA"},{roomType:"100900000016",description:"\u5199\u5B57\u697C"}],Vi=(i,t,e)=>{const n=new E.Matrix4,o=new E.Euler(i,t,e,"YXZ");return n.makeRotationFromEuler(o),n},rf=(i,{scale:t,rotation:e,position:n})=>{if(t&&i.scale.set(t,t,t),e){const[o,s,r]=e;o&&i.applyMatrix4(Vi(o,0,0)),s&&i.applyMatrix4(Vi(0,s,0)),r&&i.applyMatrix4(Vi(0,0,r))}return n&&i.position.set(n.x,n.y,n.z),i};function rl(i,t){i.traverse(e=>{var n;if(e.type==="Mesh"){const o=e,s=Q({map:o.material.map||{}},t);o.material=new j.MeshBasicMaterial(s),o.renderOrder=1,((n=e.parent)==null?void 0:n.type)==="Mesh"&&(e.renderOrder=e.parent.renderOrder+1)}})}const af=(i,t)=>{var u;const e=t.fbx_url||"//vrlab-image4.ljcdn.com/release/web/dipan2.f38a21cc.FBX",n=(u=t.north_rad)!=null?u:void 0,o={},s=d=>H(exports,null,function*(){var S;const h=(d==null?void 0:d.fbx_url)||e,m=(S=d==null?void 0:d.north_rad)!=null?S:n;if(typeof m!="number")throw new Error('"northRad"\u914D\u7F6E\u53C2\u6570\u7F3A\u5931\uFF1A\u672A\u914D\u7F6E\u6307\u5357\u9488\u6307\u5411\uFF01');const g=i.model.bounding,p=g.max.x-g.min.x,A=g.max.z-g.min.z,v=Math.max(p,A),w=yield new ba.FBXLoader().loadAsync(h);rl(w,{transparent:!0,side:E.DoubleSide,blending:E.AdditiveBlending});const k=[0,m-Math.PI/2,0],{model:{bounding:{max:{x:I,z:P},min:{x:M,y:x,z:F}}}}=i;o.yBase=x;const N={x:(I+M)/2,y:x-1.6,z:(P+F)/2},R=.0045*v;return rf(w,{position:N,rotation:k,scale:R}),o.object=w,!0}),r=({latitude:d})=>{if(!o.object)return;const h=a(d);h&&(o.object.position.y=h)},a=d=>{if(o.yBase===void 0)return;const h=.6;if(d>=Math.PI/4)return o.yBase-(h+1.6);const m=d*(4/Math.PI);return o.yBase-(h*m+1.6)};return{load:s,disable:()=>{!o.object||(i.scene.remove(o.object),i.needsRender=!0,i.off("cameraDirectionUpdate",r))},enable:()=>{if(!o.object)return;const d=a(i.getPose().latitude);d&&(o.object.position.y=d),i.scene.add(o.object),i.needsRender=!0,i.on("cameraDirectionUpdate",r)}}};function lf(i,t){var c,u,d,h,m;const e=(c=t==null?void 0:t.size)!=null?c:512,n=(u=t==null?void 0:t.fontSize)!=null?u:e*(35/256)*1.2,o=(d=t==null?void 0:t.backgroundColor)!=null?d:"rgba(0,0,0,0)",s=(h=t==null?void 0:t.fontColor)!=null?h:"#fff",r=(m=t==null?void 0:t.textAlign)!=null?m:"center",a=document.createElement("canvas");a.setAttribute("width",e+""),a.setAttribute("height",e+"");const l=a.getContext("2d");return l.fillStyle=o,l.fillRect(0,0,e,e),l.font=`${n}px "\u5FAE\u8F6F\u96C5\u9ED1"`,l.textAlign=r,l.fillStyle=s,l.fillText(i,e/2,e*.7),new j.CanvasTexture(a)}const cf=({x:i,y:t,z:e})=>new j.Vector3(i,t,e),uf=(i,t)=>{var p,A,v;const e={},n=(p=t.animationEnabled)!=null?p:!0,o=(A=t.position)!=null?A:void 0,s=(v=t.rad)!=null?v:void 0,r=t.fbx_url||"//vrlab-image4.ljcdn.com/release/web/entryDoorMini/Anim_Door1.fbx",a=[],l=b=>H(exports,null,function*(){var N,R,S,O,G,W,Y,_;const w=(N=b==null?void 0:b.position)!=null?N:o;if(!w)return Promise.reject(new Error("ModelEntryDoorGuidePlugin.load(): position is undefined"));const k=cf(w),I=(R=b==null?void 0:b.rad)!=null?R:s,P=(S=b==null?void 0:b.fbx_url)!=null?S:r;if(e.rad=I,I===void 0)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): rad is ${I}`));const M=yield new ba.FBXLoader().loadAsync(P);M.position.copy(k),M.rotation.z=I,M.scale.set(.8,.8,.8),rl(M,{transparent:!0,side:E.DoubleSide});const x=(Y=(W=(G=(O=M.children)==null?void 0:O[0])==null?void 0:G.children)==null?void 0:W[3])==null?void 0:Y.clone();if(!x)return Promise.reject(new Error(`ModelEntryDoorGuidePlugin.load(): textMesh is ${x}`));const F=(_=t.name)!=null?_:"\u5165\u6237\u95E8";return x.material=new j.MeshBasicMaterial({transparent:!0,map:lf(F)}),x.renderOrder=3,M.children[0].add(x),e.object=M,!0}),c=()=>{if(e.animation)return;if(!e.object)return console.error("ModelEntryDoorGuidePlugin.initAnimation(): state.object is ",e.object);const b=1,w=new j.AnimationMixer(e.object);a.push(w);const k=w.clipAction(e.object.animations[0]);k.timeScale=b;let I;const P=()=>{let N=0,R=0;const S=1e3/30,O=G=>{N=requestAnimationFrame(O);const W=G-R;W<S||(R=G,a.forEach(Y=>Y.update(W/1e3)),i.needsRender=!0)};return N=requestAnimationFrame(O),()=>{cancelAnimationFrame(N)}},F={play:()=>{I||(k.play(),I=P(),requestAnimationFrame(()=>{e.object&&e.object.rotation.z!==e.rad&&(e.object.rotation.z=e.rad)}))},stop:()=>{k.stop(),I==null||I(),I=void 0}};e.animation=F},u=b=>{var k;if(!e.object)return console.error("ModelEntryDoorGuidePlugin.enable(): object is ",e.object);((k=b==null?void 0:b.animationEnable)!=null?k:n)&&(e.animation||c(),e.animation.play()),i.scene.add(e.object),i.needsRender=!0},d=()=>{!e.object||(e.animation&&e.animation.stop(),i.scene.remove(e.object),i.needsRender=!0)},h=b=>b==="Floorplan"?u():d();return{load:l,enable:b=>(e.enabled||(e.enabled=!0,h(i.currentMode),i.on("modeChange",h),u(b)),!0),disable:()=>(e.enabled&&(e.enabled=!1,d(),i.off("modeChange",h)),!0)}};class Io extends yn.default.Tween{constructor(){super(...arguments);f(this,"disposeMethods",[]);f(this,"animationFrameDisposer");f(this,"onDispose",e=>(this.disposeMethods.push(e),this));f(this,"play",()=>(this.start(0),this.animationFrameDisposer=Dn(e=>this.update(e)),this));f(this,"dispose",()=>{var e;this.stop(),(e=this.animationFrameDisposer)==null||e.call(this),this.disposeMethods.forEach(n=>n()),this.disposeMethods=[],yn.default.remove(this)})}}function al(i,t=yn.default.Easing.Linear.None){const e=new Io({progress:0}).to({progress:1});return i!==void 0&&e.duration(i),t!==void 0&&e.easing(t),e}const Pn=window.requestAnimationFrame||(i=>setTimeout(i,16)),df=window.cancelAnimationFrame||clearTimeout;function wi(i,t=0){t<=0?Pn(i):Pn(()=>wi(i,t-1))}function Dn(i,t=60){let e=-1,n=0,o=-1;const s=1e3/t;function r(a){o===-1&&(o=a),e=Pn(r),!(a-n<s)&&(n=a,i&&i(a-o))}return e=Pn(r),function(){df(e)}}function hf(){const i=Date.now();return new Promise(t=>{Pn(()=>{t(Date.now()-i)})})}const ff=mi.Easing;function mf(i,t,e,n=ff.Linear.None){const o=new mi.Tween(i).to(t,e).easing(n);wi(()=>o.start(0));const s=Dn(a=>{o.update(a)===!1&&s()}),r=[];return o.onDestroy=a=>(r.push(a),o),o.destroy=function(){this.stop(),Object.assign(o,{_onStartCallback:null,_onUpdateCallback:null,_onCompleteCallback:null,_onStopCallbackL:null});let a;for(;a=r.shift();)a();s()},o}function pf(i,t){return mf({progress:0},{progress:1},i,t)}var ll=(i=>(i.Move="Move",i.Rotate="Rotate",i))(ll||{}),tt=(i=>(i.Clockwise="Clockwise",i.Anticlockwise="Anticlockwise",i.Loop="Loop",i))(tt||{});const Kn=Math.PI*2;function Is(i){return(i%Kn+Kn)%Kn}function ks(i){return i%Kn}function ji(i,t,e){return i+(t-i)*e}const oo=(i,t,e)=>{const n=Math.PI,o=n*2;return i=Is(i),t=Is(t),e===tt.Anticlockwise&&i<t&&(i+=o),e===tt.Clockwise&&t<i&&(t+=o),e===tt.Loop&&t-i>n?oo(i,t,tt.Anticlockwise):e===tt.Loop&&i-t>n?oo(i,t,tt.Clockwise):{from:i,to:t}},gf=i=>{const t={},e=(l,c,...u)=>H(exports,[l,c,...u],function*(s,r,a={preload:!0}){return t.interruptCallback&&t.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),s.mode&&s.mode!==i.currentMode&&(yield i.changeMode(s.mode)),a.preload&&s.panoIndex!==void 0&&s.panoIndex!==i.panoIndex&&(yield i.preloadPano(s.panoIndex)),a.asyncEndCallback&&(yield a.asyncEndCallback()),s.panoIndex===void 0&&s.fov===void 0&&s.latitude===void 0&&s.longitude===void 0?!0:yield new Promise((d,h)=>{const m=s.panoIndex!==void 0?s.panoIndex:i.panoIndex;m!==void 0?i.moveToPano(m,Object.assign({duration:r,moveEndCallback:()=>d(!0),moveCancelCallback:()=>h(!1)},s)):h(!1)})}),n=s=>{const r=i.state,a=ks(r.latitude),l=ks(s.latitude),{from:c,to:u}=oo(r.longitude,s.longitude,s.rotation||tt.Loop),d=r.fov,h=s.fov;return{from:{latitude:a,longitude:c,fov:d},to:{latitude:l,longitude:u,fov:h}}};return{move:e,rotate:(l,c,...u)=>H(exports,[l,c,...u],function*(s,r,a={}){t.interruptCallback&&t.interruptCallback(!1),a.asyncStartCallback&&(yield a.asyncStartCallback()),i.currentMode!==Ee.Five.Mode.Panorama&&(yield i.changeMode(Ee.Five.Mode.Panorama)),s.panoIndex!==void 0&&s.panoIndex!==i.panoIndex&&(a.preload&&(yield i.preloadPano(s.panoIndex)),yield new Promise((m,g)=>{if(!s.panoIndex){m(!0);return}i.moveToPano(s.panoIndex,{moveEndCallback:()=>m(!0),moveCancelCallback:()=>g(!1)})})),a.asyncEndCallback&&(yield a.asyncEndCallback());const{from:d,to:h}=n(s);return yield new Promise(m=>{const g=({progress:w})=>{const k={};k.longitude=ji(d.longitude,h.longitude,w),k.latitude=ji(d.latitude,h.latitude,w),k.fov=ji(d.fov,h.fov,w),i.setState(k,!0)},p=()=>{m(!0)},A=()=>{m(!1)},v=s.rotateSpeed?Math.ceil(Math.abs(h.longitude-d.longitude)/s.rotateSpeed*1e3):r,b=pf(v,mi.Easing.Linear.None).onUpdate(g).onComplete(p).onDestroy(A);s.rotation===tt.Loop&&b.repeat(1/0).yoyo(!0),t.interruptCallback=(w=!0)=>{b.destroy(),t.interruptCallback=void 0,t.timeoutId&&(clearTimeout(t.timeoutId),t.timeoutId=void 0),m(w)},t.timeoutId=setTimeout(()=>{t.interruptCallback&&t.interruptCallback(!0)},r)})})}};function xs(i,t){return i.x===t.x&&i.y===t.y}function cl(i,t){return Math.abs(i)===1/0&&Math.abs(t)===1/0?!0:Math.abs(i-t)<.001}function hi(i,t){return(t.y-i.y)/(t.x-i.x)}function ul(i,t,e){const n=hi(i[1],i[0]),o=hi(t[1],t[0]);if(isNaN(n)||isNaN(o)||cl(n,o))return!1;if(Qn(i[0],t))return i[0];if(Qn(i[1],t))return i[1];if(Qn(t[0],i))return t[0];if(Qn(t[1],i))return t[1];if(e&&!vf(i,t))return!1;const s=i[0],r=t[0];if(Math.abs(n)===1/0)return{x:s.x,y:t[1].y-(t[1].x-s.x)*o};if(Math.abs(o)===1/0)return{x:r.x,y:i[1].y-(i[1].x-r.x)*n};const a=(r.y-s.y+n*s.x-o*r.x)/(n-o),l=n*a-n*s.x+s.y;return{x:a,y:l}}function Qn(i,t){return xs(i,t[0])||xs(i,t[1])?!0:(t[0].x-i.x)*(i.x-t[1].x)>=0&&(t[0].y-i.y)*(i.y-t[1].y)>=0&&cl(hi(t[0],i),hi(i,t[1]))}function Fn(i,t,e){return(i.x-e.x)*(t.y-e.y)-(t.x-e.x)*(i.y-e.y)}function vf(i,t){return Math.max(i[0].x,i[1].x)>=Math.min(t[0].x,t[1].x)&&Math.max(t[0].x,t[1].x)>=Math.min(i[0].x,i[1].x)&&Math.max(i[0].y,i[1].y)>=Math.min(t[0].y,t[1].y)&&Fn(t[0],i[1],i[0])*Fn(i[1],t[1],i[0])>0&&Fn(i[0],t[1],t[0])*Fn(t[1],i[1],t[0])>0?1:0}function dl(i,t=0){t<=0?requestAnimationFrame(i):requestAnimationFrame(()=>dl(i,t-1))}const Af=`<style type="text/css">
116
116
  .PanoRulerPlugin-rule-line {
117
117
  position: absolute;
118
118
  transform-origin: left center;
@@ -527,7 +527,7 @@ void main() {
527
527
  width: 100%;
528
528
  height: 100%;
529
529
  z-index: 5;
530
- `,e.container.style.pointerEvents="none";const n=A=>(e.wrapper=A,A.appendChild(e.container),l(),!0),o=A=>{e.itemLabels=Pp(A),l()},s=()=>(e.enabled||(e.enabled=!0,l()),!0),r=()=>(e.enabled&&(e.enabled=!1,l()),!0),a=()=>{u(),e.container.remove()},l=()=>{var A;if(!!e.wrapper){if(!e.enabled||!e.fiveModeEnabled){(A=e.app)==null||A.$destroy(),e.app=void 0;return}e.app?e.app.$set({five:i,itemLabels:e.itemLabels}):e.app=new Ep({target:e.container,props:{five:i,modelOcclusionEnable:e.modelOcclusionEnable,onlyVisibleInPanorama:e.onlyVisibleInPanorama,itemLabels:e.itemLabels,wrapper:e.wrapper,hooks:e.hooks,displayStrategyType:e.displayStrategyType,maxVisibleDistance:e.maxVisibleDistance}})}},c=()=>{i.on("modeChange",d),i.once("dispose",a)},u=()=>{i.off("modeChange",d)},d=A=>{if(A!==Ee.Five.Mode.Panorama){e.fiveModeEnabled=!1,r();return}i.once("initAnimationEnded",()=>{e.fiveModeEnabled=!0,s()})};return c(),{appendTo:n,load:o,enable:s,disable:r,dispose:a,hooks:e.hooks}},kp={name:"ItemLabelPlugin",version:0};class xp extends xn{constructor(e){super(e);f(this,"state");f(this,"container");f(this,"enabled");this.five=e,this.five.once("dispose",this.dispose),this.enabled=!0,this.state=this.initState()}enable(e){this.enabled=!0,this.updateState(fe(Q({},e),{userAction:!0}))}disable(e){this.enabled=!1,this.updateState(fe(Q({},e),{userAction:!0}))}show(e){if(!!this.state.enabled)return this.setState(fe(Q({},this.state),{visible:!0}),e),Promise.resolve()}hide(e){if(!!this.state.enabled)return this.setState(fe(Q({},this.state),{visible:!1}),e),Promise.resolve()}dispose(){this.container.remove()}setState(e,n){if(!this.enabled)return;const o=Q({},this.state);this.state=Q(Q(Q({},this.state),e),n),this.stateChangedCallback(o,n)}get visible(){return this.five.state.mode===Ee.Five.Mode.Panorama}appendTo(e){!this.enabled||(this.container=e,this.render())}updateState(e){this.setState(fe(Q({},this.state),{enabled:this.enabled,visible:this.visible}),e)}}function Dp(i){le(i,"svelte-wpy7pz",'.plugin-DoorLabelPlugin-item.svelte-wpy7pz.svelte-wpy7pz{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;transition:opacity 0.3s ease}.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz{position:absolute;top:50%;left:50%;border-radius:0.125rem;background:rgba(0, 0, 0, 0.35);line-height:0.75rem;padding:0.375rem;white-space:nowrap;font-size:0.75rem;font-style:normal;color:white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform ease 1s, background ease 0.3s, color ease 0.3s}.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz::after{content:"";display:block;position:absolute;top:-0.0625rem;left:-0.0625rem;bottom:-0.0625rem;right:-0.0625rem;border-radius:0.125rem;border:0.0625rem solid rgba(0, 0, 0, 0);-o-border-image:url("//vrlab-image4.ljcdn.com/release/web/highlightCarouseal-border-image.14b51834.png") 4;border-image:url("//vrlab-image4.ljcdn.com/release/web/highlightCarouseal-border-image.14b51834.png") 4;transition:opacity ease 0.3s}.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz:active,.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz:focus{background:rgba(0, 0, 0, 0.5);color:rgba(255, 255, 255, 0.5)}.plugin-DoorLabelPlugin-icon.svelte-wpy7pz.svelte-wpy7pz{background:url("//vrlab-image4.ljcdn.com/release/web/DoorLabel-icon.de1304ae.svg") no-repeat;background-size:100%;display:inline-block;width:0.625rem;height:0.625rem;margin-left:0.25rem;transform-origin:center}.plugin-DoorLabelPlugin-cnt[data-camera-toward=forward].left.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=forward].right.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=forward].right.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt[data-camera-toward=right].forward.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=right].back.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=right].back.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt[data-camera-toward=left].back.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=left].forward.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=left].forward.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt[data-camera-toward=back].right.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=back].left.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=back].left.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz.svelte-wpy7pz{color:#f9eac1}.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{background:url("//vrlab-image4.ljcdn.com/release/web/arrow.6e8ec00e.svg") no-repeat}.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz.svelte-wpy7pz:active,.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz.svelte-wpy7pz:focus{background:rgba(0, 0, 0, 0.5);color:rgba(249, 234, 193, 0.5)}')}function Mp(i){let t,e,n,o,s,r,a,l;return{c(){t=B("div"),e=B("div"),n=B("span"),n.textContent=`${i[8]}`,o=$(),s=B("i"),y(n,"class","plugin-DoorLabelPlugin-txt svelte-wpy7pz"),y(s,"class","plugin-DoorLabelPlugin-icon svelte-wpy7pz"),y(e,"class",r=Ie(Oe.default("plugin-DoorLabelPlugin-cnt",i[0].toward))+" svelte-wpy7pz"),y(e,"style",`transform: ${i[6]||"initial"};pointer-events: ${i[5]?"auto":"none"};opacity: ${i[5]?1:0}`),y(e,"data-camera-toward",i[7]),y(t,"style",`left: ${i[3]||0}%;top: ${i[4]||0}%;opacity: ${i[5]?1:0}`),y(t,"class","plugin-DoorLabelPlugin-item svelte-wpy7pz")},m(c,u){T(c,t,u),V(t,e),V(e,n),V(e,o),V(e,s),i[10](t),a||(l=me(e,"click",i[9]),a=!0)},p(c,[u]){u&1&&r!==(r=Ie(Oe.default("plugin-DoorLabelPlugin-cnt",c[0].toward))+" svelte-wpy7pz")&&y(e,"class",r)},i:X,o:X,d(c){c&&L(t),i[10](null),a=!1,l()}}}function Lp(i,t,e){let{props:n}=t,{onClick:o}=t,s,{left:r,top:a,inSight:l,transform:c,panoIndex:u,cameraToward:d,name:h}=n;const m=()=>{if(!r||!a||!l||!s)return;const A=s.current.clientWidth/window.innerWidth*100,v=s.current.clientHeight/window.innerHeight*100;r<=A/2||r>=100-A/2||a<=v/2||a>=100-v/2},g=A=>{o&&o()};function p(A){Ve[A?"unshift":"push"](()=>{s=A,e(2,s)})}return i.$$set=A=>{"props"in A&&e(0,n=A.props),"onClick"in A&&e(1,o=A.onClick)},m(),[n,o,s,r,a,l,c,d,h,g,p]}class Sp extends oe{constructor(t){super(),ie(this,t,Lp,Mp,ne,{props:0,onClick:1},Dp)}}function Tp(i,t){const e=Math.abs(i.top+i.height/2-t.top-t.height/2),n=Math.abs(i.left+i.width/2-t.left-t.width/2),o=(i.height+t.height)/2,s=(i.width+t.width)/2;return!(e>o&&n>s)}function zp(i){const{camera:t}=i,e=t.getWorldDirection(new j.Vector3);let n=Math.atan(e.z/e.x)*180/Math.PI,o="";return e.x<0&&(n+=180),n<0&&(n+=360),n>315||n<=45?o="right":n>45&&n<=135?o="back":n>135&&n<=225?o="left":n>225&&n<=315&&(o="forward"),o}function Bp(i,t){return Math.sqrt(Math.pow(i.z-t.z,2)+Math.pow(i.x-t.x,2))}function Vp(i){const t=Math.PI/4;return i>-t&&i<=t?"left":i>t*3||i<=-t*3?"right":i>-t*3&&i<=-t?"forward":i>t&&i<=t*3?"back":""}const jp={userAction:!0};class Op extends xp{constructor(e){super(e);f(this,"MinVisibledistance",1.8);f(this,"MaxVisibledistance",5);f(this,"OffsetHeight",-1.3);f(this,"rooms");f(this,"floorplanServerData");f(this,"doorLabelItems");f(this,"visibleLabelMap",new Map);f(this,"labelItems",[]);f(this,"doorLabels");f(this,"roomObservers");f(this,"loadData",(e,n)=>{n&&(this.MaxVisibledistance=n.MaxVisibledistance,this.MinVisibledistance=n.MinVisibledistance,this.OffsetHeight=n.OffsetHeight),this.doorLabelItems&&this.doorLabelItems.length>0&&this.doorLabelItems.forEach(o=>{o.$destroy()}),this.labelItems=[],this.doorLabels=[],this.doorLabelItems=[],this.floorplanServerData=e,typeof this.five.ready=="function"?this.five.ready().then(()=>this.initData()):this.five.once("panoArrived",()=>{this.initData()})});f(this,"initRoomObservers",()=>{var s,r;const e=this.floorplanServerData.computed_data.floor_datas||[],o=(((r=(s=this.five)==null?void 0:s.work)==null?void 0:r.observers)||[]).map(a=>{const l=a.panoIndex,c=a.floorIndex,u=e==null?void 0:e.find(d=>d.floor_index===c);if(u){const d=u.rooms.find(h=>h.observer_indexs.includes(l));if(d)return{panoIndex:l,floorIndex:c,name:d.name}}}).filter(Boolean);this.roomObservers=o});f(this,"hideAllLabels",()=>{this.labelItems.forEach(e=>{e.visible=!1,e.inSight=!1}),this.render()});f(this,"fixDoorVisibleAndPosition",()=>{this.initRoomObservers();const{panoIndex:e}=this.five;if(!this.visible||this.five.model.empty||e===null||!this.roomObservers.find(a=>a.panoIndex===e))return;const n=this.roomObservers.find(a=>a.panoIndex===e),s=this.five.work.observers.find(a=>a.panoIndex===e).position.clone(),r=(()=>{if(this.visibleLabelMap.has(e))return this.visibleLabelMap.get(e);{const a=[];return this.doorLabels.forEach((l,c)=>{if(l.roomName===n.name)return;const u=l.position.clone(),d=u.distanceTo(s);if(d<this.MinVisibledistance||d>this.MaxVisibledistance)return;const h=new j.Raycaster,m=u.clone().sub(s).normalize();h.set(s,m);const[g]=this.five.model.intersectRaycaster(h);g&&g.distance+.1<d||a.push(c)}),this.visibleLabelMap.set(e,a),a}})();this.labelItems.forEach((a,l)=>{a.visible=r.includes(l)}),this.fixDoorPosition()});f(this,"fixDoorPosition",()=>{var u,d,h,m,g,p,A,v,b,w,k,I;const{panoIndex:e,camera:n}=this.five;if(e===null)return;if(this.five.currentMode!=="Panorama")return this.hideAllLabels();const o=this.five.getElement(),s=o.clientWidth,r=o.clientHeight,a=n.getWorldDirection(new j.Vector3),l=[],c=[...this.labelItems];if(c.forEach((P,M)=>{if(P.visible){const x=n.position.distanceTo(P.position),F=P.position.clone().add(new j.Vector3(0,this.OffsetHeight,0)),R=F.clone().sub(n.position).normalize().angleTo(a),S=F.clone().project(n),O=(S.x+1)/2.2*100,G=(-S.y+1)/2.2*100,W=O>=0&&O<=100&&G>=0&&G<=100&&x>this.MinVisibledistance&&x<=this.MaxVisibledistance;P.left=O,P.top=G,P.inSight=W&&R<Math.PI/2,P.cameraToward=zp(this.five),W?l.push({disFromCameraToLabel:x,left:O,top:G,index:M}):P.transform="translate(-50%, -50%)"}else P.inSight=!1}),l.length>1){let P=0;l.sort((M,x)=>x.disFromCameraToLabel-M.disFromCameraToLabel);for(let M=1;M<l.length;M++){const{index:x,left:F,top:N}=l[M-1],{index:R,left:S,top:O}=l[M],G=this.container.children[x],W=this.container.children[R];if(!G||!W)return;const Y={left:s*F/100,top:r*N/100,width:(h=(d=(u=G.children)==null?void 0:u[0])==null?void 0:d.clientWidth)!=null?h:0,height:(p=(g=(m=G.children)==null?void 0:m[0])==null?void 0:g.clientHeight)!=null?p:0},_={left:s*S/100,top:r*O/100,width:(b=(v=(A=W.children)==null?void 0:A[0])==null?void 0:v.clientWidth)!=null?b:0,height:(I=(k=(w=W.children)==null?void 0:w[0])==null?void 0:k.clientHeight)!=null?I:0};Tp(Y,_)&&(P++,c[x].transform=`translate(-50%, ${(P-1)*100-50}%)`,c[R].transform=`translate(-50%, ${P*100-50}%)`)}}this.labelItems=c,this.render()});f(this,"onClick",(e,n)=>{if(!this.roomObservers)return;const{work:o}=this.five;let s,r,a=1/0;for(const l of o.observers)if(this.roomObservers.find(u=>u.panoIndex===l.panoIndex&&u.name===e)){const u=l.standingPosition,d=n.distanceTo(u);d<a&&(s=l.panoIndex,r=u.clone().sub(n).normalize(),a=d)}if(r!==null&&s!==null){const l={};if(a>0){const u=new j.Vector3(0,0,-1),d=r.clone(),h=new j.Quaternion;h.setFromUnitVectors(u,d);const m=new j.Euler;m.setFromQuaternion(h,"YXZ"),l.longitude=m.y}this.five.emit("wantsToMoveToPano",s,{},!0)||this.five.moveToPano(s,{longitude:l.longitude})}});f(this,"initData",()=>{var s;this.doorLabels=[];const e=this.five.panoIndex,n=this.floorplanServerData.computed_data.observers[e].floor_index,o=n!==void 0&&((s=this.floorplanServerData.computed_data.floor_datas[n])==null?void 0:s.rooms);this.rooms=o,this.rooms&&this.rooms.length>0&&this.rooms.forEach(r=>{var c;const a=(c=this.floorplanServerData.computed_data.doors)==null?void 0:c.filter(u=>!!(u&&u.name===r.name)),l=this.five.work.observers.filter((u,d)=>!!r.observer_indexs.find(h=>h===d));a&&a.forEach(u=>{const d=u.position;let h=1/0,m;l.forEach(p=>{const A=p.standingPosition,v={x:A.x,y:A.y,z:A.z},b=Bp(d,v);b<h&&(h=b,m=v)}),m&&(d.y=m.y+.01);const g=new j.Vector3(d.x,d.y,d.z);g.add(new j.Vector3(-.2,1.8,0).applyEuler(new j.Euler(0,u.rad,0))),this.doorLabels.push({roomName:r.name,name:u.name,position:g,toward:Vp(u.rad)})})}),this.labelItems=this.doorLabels.map(r=>fe(Q({},r),{left:0,top:0,visible:!1,inSight:!1,transform:"",cameraToward:""})),this.five.on("wantsToMoveToPano",this.hideAllLabels),this.five.on("modelLoaded",this.fixDoorVisibleAndPosition),this.five.on("panoArrived",this.fixDoorVisibleAndPosition),this.five.on("initAnimationEnded",this.fixDoorPosition),this.five.on("cameraUpdate",this.fixDoorPosition),this.five.on("mouseWheel",this.fixDoorPosition),this.five.on("pinchGesture",this.fixDoorPosition),this.fixDoorVisibleAndPosition()})}stateChangedCallback(e,n){if(this.hooks.hasListener("stateChange")){const o={state:this.state,prevState:e,userAction:n?n.userAction:jp.userAction};this.hooks.emit("stateChange",o)}}render(){if(!this.enabled){this.doorLabelItems&&this.doorLabelItems.length>0&&this.doorLabelItems.forEach(e=>{e==null||e.$destroy()}),this.doorLabels=void 0;return}this.doorLabelItems&&this.doorLabelItems.forEach(e=>{e.$destroy()}),this.doorLabelItems=[],this.labelItems.forEach(e=>{this.doorLabelItems.push(new Sp({target:this.container,props:{props:e,onClick:()=>{this.onClick(e.name,e.position)}}}))})}initState(){return{enabled:!0,visible:!0}}dispose(){this&&this.five&&(this.five.off("wantsToMoveToPano",this.hideAllLabels),this.five.off("modelLoaded",this.fixDoorVisibleAndPosition),this.five.off("panoArrived",this.fixDoorVisibleAndPosition),this.five.off("initAnimationEnded",this.fixDoorPosition),this.five.off("cameraUpdate",this.fixDoorPosition),this.five.off("mouseWheel",this.fixDoorPosition),this.five.off("pinchGesture",this.fixDoorPosition),super.dispose())}}const Rp=i=>new Op(i),Qp=2,Fp=3,Hp=3,Gp=2;function Wp(i,t){var r,a,l;if(i.length<2)return console.warn("positionList length must be greater than 1"),[];const e=(r=t==null?void 0:t.unitWidth)!=null?r:.5,n=(a=t==null?void 0:t.unitHeight)!=null?a:.5,o=(l=t==null?void 0:t.skipPanoIndexMesh)!=null?l:!1,s=new E.CatmullRomCurve3(i,!1,"catmullrom",1);if(o){const c=Math.ceil(s.getLength()/n*1.5),u=s.getPoints(c),d=[];let h=0;const m=i;return m.forEach((g,p)=>{let A=0,v=99999999;u.forEach((P,M)=>{const x=P.distanceTo(g);x<v&&(A=M,v=x)});const b=u[A+1],w=b==null?void 0:b.distanceTo(g),k=u[A-1],I=k==null?void 0:k.distanceTo(g);if(A>h&&A-h>1){let P=A;k!==void 0&&I>.8&&(P=A+1),k!==void 0&&I>.2&&I<.3?P=A:v>.2&&v<.3&&(P=A+1);let M=h;if(b!==void 0&&w>.2&&w<.3?M=h+1:v>.2&&v<.3&&(M=h),u[M]&&u[M+1]){const N=m[p-1];if(N)if(N.equals(u[M]))M+=1;else{const R=new j.Vector3().subVectors(u[M+1],u[M]),S=new j.Vector3().subVectors(N,u[M]);R.angleTo(S)<Math.PI/2&&(M+=1)}}if(P<M||P-M<=1)return;const x=u.slice(M,P),F=er(x,e,n);d.push(F),h=A}}),d}else{const c=Math.ceil(s.getLength()),u=s.getPoints(c);return[er(u,e,n)]}}function er(i,t,e){const n=t/2,o=e/t,s=i.length,r=Cc.default(i.map(v=>[v.x,v.z])),l=(i.length-1)*Qp*Fp,c=2*s,u=c*Hp,d=c*Gp,h=new Uint32Array(l),m=new Float32Array(u),g=new Float32Array(d);i.forEach((v,b)=>{});let p=0;for(let v=0;v<i.length;v++){const[b,w]=r[v][0],k=i[v],{x:I,y:P,z:M}=k,x=new j.Vector3(I+b*n,P+.05,M+w*n);m[v*6+0]=x.x,m[v*6+1]=x.y,m[v*6+2]=x.z;const F=new j.Vector3(I-b*n,P+.05,M-w*n);m[v*6+3]=F.x,m[v*6+4]=F.y,m[v*6+5]=F.z,p+=v>0?i[v-1].clone().sub(i[v]).length():0;const N=p/t/o;g[v*4+0]=0,g[v*4+1]=N,g[v*4+2]=1,g[v*4+3]=N,v!==i.length-1&&(h[v*6+0]=v*2+0,h[v*6+1]=v*2+2,h[v*6+2]=v*2+1,h[v*6+3]=v*2+2,h[v*6+4]=v*2+3,h[v*6+5]=v*2+1)}const A=new E.BufferGeometry;return A.setAttribute("position",new E.BufferAttribute(m,3)),A.setAttribute("uv",new E.BufferAttribute(g,2)),A.setIndex(new E.BufferAttribute(h,1)),A}function _p(i){const t=new E.TextureLoader().load(i.textureUrl);return t.wrapS=t.wrapT=E.RepeatWrapping,t.encoding=E.sRGBEncoding,t.minFilter=E.LinearFilter,new E.MeshBasicMaterial({color:16777215,map:t,transparent:!0,opacity:.8})}function Np(i){return!Et(i)}function Et(i){return i!=null}const Il="v1.1.0",kl="GuideLinePlugin",ao=`${kl}@${Il}`,tr=i=>`${ao}--${i}`;class xl extends Bt{constructor(e,n){super(e,n);f(this,"state",{visible:!1,enabled:!0,disposed:!1});f(this,"data");f(this,"linesGroup");f(this,"disposedErrorLog",()=>{console.error(`${ao} is disposed`)});f(this,"actionWhenEnabled",e=>{if(this.state.enabled)return e()});Object.assign(window,{[`__${kl}_DEBUG__`]:this})}load(e,n,o=!0){return H(this,null,function*(){const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,r=yield this.formatData(e);this.hooks.emit("dataChange",r,s),this.data=r,this.linesGroup&&this.five.scene.remove(this.linesGroup);const a=this.getLinesGroup(r.routes,r.config);!a||(this.linesGroup=a,yield this.waitFiveModelLoaded(),this.five.scene.add(a),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),n&&this.setState(n),this.five.needsRender=!0,this.hooks.emit("dataLoaded",r),console.info(`${ao} loaded`,r))})}formatData(e){return H(this,null,function*(){return typeof e=="object"&&e!==null&&e.version&&e.data?e.data:e})}show(e){return H(this,null,function*(){this.setState({visible:!0},e)})}hide(e){return H(this,null,function*(){this.setState({visible:!1},e)})}enable(e){this.setState({enabled:!0},e)}disable(e){this.setState({enabled:!1},e)}dispose(){this.setState({disposed:!0})}setState(e,n){var s;if(this.state.disposed)return this.disposedErrorLog();const o=Q({},this.state);this.state=Q(Q({},this.state),e),e.disposed!==void 0&&e.disposed!==o.disposed&&e.disposed&&this.handleDispose(),e.visible!==void 0&&e.visible!==o.visible&&this.handleVisible(e.visible,n==null?void 0:n.userAction),e.enabled!==void 0&&e.enabled!==o.enabled&&this.handleEnable(e.enabled,n==null?void 0:n.userAction),nt(o,this.state,{deep:!0})||(this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:(s=n==null?void 0:n.userAction)!=null?s:!0}),this.five.needsRender=!0)}handleEnable(e,n=!0){this.linesGroup&&(e?(this.five.scene.add(this.linesGroup),this.actionWhenEnabled(()=>this.hooks.emit("enable",{userAction:n}))):(this.five.scene.remove(this.linesGroup),this.hooks.emit("disable",{userAction:n})))}handleVisible(e,n=!0){this.linesGroup&&(e?(this.linesGroup.visible=!0,this.actionWhenEnabled(()=>this.hooks.emit("show",{userAction:n}))):(this.linesGroup.visible=!1,this.actionWhenEnabled(()=>this.hooks.emit("hide",{userAction:n}))))}handleDispose(){this.linesGroup&&this.five.scene.remove(this.linesGroup),this.hooks.emit("dispose")}getLinesGroup(e,n){const o=e.map(r=>this.getLine(r,n)).filter(Et),s=new E.Group;if(s.name=tr("route-group"),o.length!==0)return s.add(...o),s}getLine(e,n){var l,c,u,d,h,m,g,p;const o=new E.Group,s=e.panoIndexList.map(A=>{var v;return(v=this.five.work.observers[A])==null?void 0:v.standingPosition}).filter(Et),r=Wp(s,{skipPanoIndexMesh:(c=(l=e.skipPanoIndexMesh)!=null?l:n==null?void 0:n.skipPanoIndexMesh)!=null?c:!0,unitWidth:(d=(u=e.unitWidth)!=null?u:n==null?void 0:n.unitWidth)!=null?d:.6,unitHeight:(m=(h=e.unitHeight)!=null?h:n==null?void 0:n.unitHeight)!=null?m:.4});if(!r)return;const a=_p({textureUrl:(p=(g=e.arrowTextureUrl)!=null?g:n==null?void 0:n.arrowTextureUrl)!=null?p:this.staticPrefix+"/release/web/arrow6.b6ce0c62.png"});return r.forEach(A=>{const v=new E.Mesh(A,a);v.name=tr("route-line-mesh"),o.add(v)}),o}waitFiveModelLoaded(){return H(this,null,function*(){return new Promise(e=>{if(this.five.model.loaded){e();return}this.five.once("modelLoaded",()=>{e()})})})}}f(xl,"lasestVersion",Il);const Dl=(i,t)=>new xl(i,t);function nr(i){const t=Math.abs(Math.cos(i.latitude));return new E.Vector3(-Math.sin(i.longitude)*t,-Math.sin(i.latitude),-Math.cos(i.longitude)*t)}function Xp(i,t){const e=nr(i),n=nr(t);return e.angleTo(n)}const Yp=i=>H(exports,null,function*(){try{i().then(()=>{},()=>{}).catch(()=>{})}catch(t){}}),Nn=Math.PI*2;function Up(i){return i>=0&&i<Nn?i:(i%Nn+Nn)%Nn}function qp(i){return{longitude:Up(-Math.atan2(i.x,-i.z)),latitude:-Math.asin(i.y/1)}}function Jp(i,t,e,n){const o=-i/e,s=i;return o*n+s}function Zp(i){return new Promise(t=>{setTimeout(()=>{t()},i)})}const Ml="v1.0.6",Ll="CruisePlugin",Ii=`${Ll}@${Ml}`,ir=()=>{console.error(`${Ii} is disposed`)},Kp=()=>{console.warn(`${Ii} is disabled`)},$p=()=>{console.error(`${Ii} is disabled`)},Fi=new Map;class ko extends Bt{constructor(e,n){super(e,n);f(this,"state",{visible:!0,enabled:!0,disposed:!1,playing:!1,speed:1,config:{speedConfig:{rotateSpeed:.001,rotateSpeedUnit:"rad/ms",moveSpeed:.002,moveSpeedUnit:"m/ms"}}});f(this,"data");f(this,"config");f(this,"privateState",{playing:!1,currentPlayQueue:[],currentPlayKeyframe:null,broke:!1,disposers:[],modeChanging:!1});f(this,"GuideLine");this.config=n,Object.assign(window,{[`__${Ll}_DEBUG__`]:this});const o=this.setFiveLinearUpdateCamera.bind(this),s=this.setFiveOriginUpdateCamera.bind(this);this.hooks.on("play",o),this.hooks.on("broke",s),this.hooks.on("end",s),this.hooks.on("pause",s),this.privateState.disposers.push(()=>{this.hooks.off("play",o),this.hooks.off("broke",s),this.hooks.off("end",s),this.hooks.off("pause",s)})}load(e,n,o){return H(this,null,function*(){var u,d,h,m,g;if(this.state.disposed)return ir();this.privateState.fiveOriginGetProgress||(d=(u=this.five.controller)==null?void 0:u.cameraMotion)!=null&&d.getProgress||(yield this.waitFiveLoaded(),this.privateState.fiveOriginGetProgress=(m=(h=this.five.controller)==null?void 0:h.cameraMotion)==null?void 0:m.getProgress),this.clear();const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,r=yield this.formatData(e);this.data=r,this.hooks.emit("dataChange",r,s);let a=[],l;const c=this.data.keyframes.filter(p=>p.data.panoIndex!==void 0);c.filter((p,A)=>{var v;return p.data.panoIndex!==((v=c[A-1])==null?void 0:v.data.panoIndex)}).map(p=>p.data.panoIndex).forEach(p=>{var v,b;const A=(v=this.five.work.observers[p])==null?void 0:v.floorIndex;if(A!==void 0)if(l===A){const w=a.length-1;a[w]=[...(b=a[w])!=null?b:[],p]}else{l=A;const w=a.length;a[w]=[p]}}),this.GuideLine||(this.GuideLine=Dl(this.five,this.config)),(g=this.GuideLine)==null||g.load({routes:a.map(p=>({panoIndexList:p})),config:r.guildPluginOptions}),this.setState({playing:!1}),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),this.changePlayState(this.state.playing),this.changeSpeed(this.state.speed),n&&this.setState(n,{userAction:o}),console.info(`${Ii} loaded`,r),this.hooks.emit("dataLoaded",r)})}play(e){this.setState({playing:!0},e)}playFrom(e){const{index:n,id:o,userAction:s}=e;this.state.playing&&this.setState({playing:!1},{userAction:s}),this.setState({playing:!0},{userAction:s,playFromIndex:n,playFromId:o})}playFromStart(e){return this.playFrom(fe(Q({},e),{index:0}))}pause(e){this.setState({playing:!1},e)}show(e){return H(this,null,function*(){this.setState({visible:!0},e)})}hide(e){return H(this,null,function*(){this.setState({visible:!1},e)})}enable(e){this.setState({enabled:!0},e)}disable(e){this.setState({enabled:!1},e)}dispose(){this.setState({disposed:!0})}setState(e,n){var s;if(this.state.disposed)return ir();if(!this.state.enabled&&e.enabled!==!0&&e.disposed!==!0)return $p();const o=Q({},this.state);this.state=Q(Q({},this.state),e),e.disposed!==void 0&&e.disposed!==o.disposed&&e.disposed&&this.handleDispose(),e.visible!==void 0&&e.visible!==o.visible&&this.handleVisible(e.visible,n==null?void 0:n.userAction),e.enabled!==void 0&&e.enabled!==o.enabled&&this.handleEnable(e.enabled,n==null?void 0:n.userAction),e.playing!==void 0&&e.playing!==o.playing&&this.changePlayState(e.playing,n),e.speed!==void 0&&e.speed!==o.speed&&this.changeSpeed(e.speed,n==null?void 0:n.userAction),nt(o,this.state,{deep:!0})||this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:(s=n==null?void 0:n.userAction)!=null?s:!0})}formatData(e){return H(this,null,function*(){this.five.work||(yield this.waitFiveLoaded());const n=this.five.work.observers,o=(()=>{const s=e;return typeof s=="object"&&s!==null&&s.version&&s.data?s.data:s})();if(o.keyframes)return{keyframesId:We(),keyframes:o.keyframes.map((s,r)=>{var c;const a=o.keyframes[r+1],l=(()=>!a||a.start===void 0||s.end===void 0?0:a.start-s.end)();return fe(Q({id:(c=s.uuid)!=null?c:We(),moveIndex:r,stay:l,index:r},s),{guildPluginOptions:o.guildPluginOptions})})};if(o.panoIndexList){let s=[];const{moveEffect:r,moveToFirstPanoEffect:a,moveToFirstPanoDuration:l}=o;return this.privateState.moveToFirstPanoEffect=a,this.privateState.moveToFirstPanoDuration=l,o.panoIndexList.forEach((c,u)=>{const d=(()=>{var A,v,b,w;const h=o.panoIndexList.slice(u).find(k=>k!==c);if(h===void 0)return;const m=(A=n[c])==null?void 0:A.position,g=(v=n[h])==null?void 0:v.position;if(!g||!m||((b=n[c])==null?void 0:b.floorIndex)!==((w=n[h])==null?void 0:w.floorIndex))return;const p=new E.Vector3().subVectors(g,m);return qp(p.normalize())})();o.moveType===void 0||o.moveType==="justMove"?s.push({moveIndex:u,stay:o.stay,data:Q({effect:"Move",panoIndex:c,moveEffect:r},d!=null?d:{})}):o.moveType==="moveAndRotate"&&(s.push({moveIndex:u,stay:o.stay,data:{effect:"Move",panoIndex:c,moveEffect:r}}),d&&s.push({moveIndex:u,stay:o.stay,data:Q({effect:"Rotate",panoIndex:c},d)}))}),{keyframesId:We(),keyframes:s.map((c,u)=>Q({id:We(),index:u},c)),guildPluginOptions:o.guildPluginOptions}}else throw new Error("format error: data no keyframes or no panoIndexList")})}handleEnable(e,n=!0){var o,s;e?((o=this.GuideLine)==null||o.enable(),this.hooks.emit("enable",{userAction:n})):((s=this.GuideLine)==null||s.disable(),this.changePlayState(!1,{userAction:n}),this.hooks.emit("disable",{userAction:n})),this.state.enabled=e}handleVisible(e,n=!0){var o,s;e?((o=this.GuideLine)==null||o.show(),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:n}))):((s=this.GuideLine)==null||s.hide(),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:n}))),this.state.visible=e}changePlayState(e,n){this.actionIfStateIsEnabled(()=>{var o;return this.hooks.emit("playStateChange",e?"playing":"pause",{userAction:(o=n==null?void 0:n.userAction)!=null?o:!0})}),e?this.handlePlay(n):this.handlePause(n),this.state.playing=e}handlePlay(e){return H(this,null,function*(){var m;const{data:n,state:o,privateState:s,hooks:r}=this;if(s.playing||!(n!=null&&n.keyframes)||(n==null?void 0:n.keyframes.length)===0)return;const a=We();s.playId=a,s.playing=!0,s.broke=!1;const l=n.keyframes,c=this.getPauseData();(e==null?void 0:e.notEmitEvent)!==!0&&r.emit("play",{userAction:(m=e==null?void 0:e.userAction)!=null?m:!0});let u=!1;const h=yield(()=>H(this,null,function*(){var g,p;if((e==null?void 0:e.playFromIndex)!==void 0)return e.playFromIndex;if((e==null?void 0:e.playFromId)!==void 0)return(g=this.data)==null?void 0:g.keyframes.findIndex(A=>A.id===e.playFromId);if(c!=null&&c.keyframeId){const A=(p=this.data)==null?void 0:p.keyframes.find(v=>v.id===c.keyframeId);if(c!=null&&c.fiveState&&(yield this.move(c.fiveState,{moveEffect:s.moveToFirstPanoEffect,duration:s.moveToFirstPanoDuration})),A){if(A.data.effect==="Move")return A.index;if(A.data.effect==="Rotate"){const v=c.duration!==void 0?c.duration*(1-c.playedProgress):void 0;return yield this.playKeyframe(A,{duration:v}),u=!0,A.index+1}}}}))();this.clearPauseData();for(const g of l){if(s.broke||!o.playing||!s.playing||a!==s.playId)return;if(!(h!==void 0&&g.index<h))try{r.emit("playIndexChange",g.index,g),yield this.playKeyframe(g,{moveEffect:u===!1?s.moveToFirstPanoEffect:void 0,duration:u===!1&&typeof s.moveToFirstPanoDuration=="number"?s.moveToFirstPanoDuration:void 0}),g.stay&&(yield Zp(g.stay)),u===!1&&(u=!0)}catch(p){return Promise.resolve("broke")}}o.playing&&a===s.playId&&(this.setState({playing:!1},{userAction:!1}),r.emit("end"),this.clearPauseData())})}handlePause(e){var r;const{state:n,privateState:o,hooks:s}=this;n.playing=!1,o.playing!==!1&&(o.playing=!1,this.setPauseData(),o.broke||this.forceInteruptUpdateCamera(),(e==null?void 0:e.notEmitEvent)!==!0&&s.emit("pause",{userAction:(r=e==null?void 0:e.userAction)!=null?r:!0}))}playKeyframe(e,n){return H(this,null,function*(){var s;const{privateState:o}=this;return((s=this.privateState.currentPlayKeyframe)==null?void 0:s.keyframe.id)!==e.id&&(this.privateState.currentPlayKeyframe={keyframe:e}),o.currentPlayQueue.push(this.getPlayPromise(e,n)),this.actionPromiseQueue()})}addInterruptListener(e){const n=()=>{this.privateState.modeChanging||e()},o=e;return this.five.once("gesture",o),this.five.once("wantsChangeMode",n),()=>{this.five.off("gesture",o),this.five.once("wantsChangeMode",n)}}getPlayPromise(o){return H(this,arguments,function*(e,n={}){var r;const s=e.data;if(n.duration=(r=n.duration)!=null?r:e.start!==void 0&&e.end!==void 0?e.end-e.start:void 0,!!s)return new Promise((a,l)=>{let c=!1;this.addInterruptListener(()=>{if(!c)return this.hooks.emit("broke"),this.privateState.broke=!0,this.setState({playing:!1}),c=!0,l(new Error("play is interupted"))});try{if(c)return;const u=()=>{a(),c=!0};switch(s.effect){case"Move":this.move(s,n).then(u);break;case"Rotate":this.rotate(s,n).then(u);break;default:this.rotate(s,n).then(u)}}catch(u){}})})}actionPromiseQueue(){return H(this,null,function*(){const{privateState:e}=this;return new Promise((n,o)=>{if(e.currentPlayQueue.length===0){n();return}const s=e.currentPlayQueue.shift();if(!s){n();return}s.then(n,o)}).then(()=>e.currentPlayQueue.length===0?Promise.resolve():this.actionPromiseQueue())})}move(e,n){return H(this,null,function*(){if(e.mode&&e.mode!==this.five.currentMode)yield this.changeMode(e);else if(e.panoIndex!==this.five.panoIndex)yield this.changePano(e,n);else return Promise.resolve()})}rotate(e,n){return H(this,null,function*(){if(e.mode&&e.mode!==this.five.currentMode)yield this.changeMode({mode:e.mode,panoIndex:e.panoIndex});else if(e.panoIndex&&e.panoIndex!==this.five.panoIndex)return yield this.changePano(e,n);yield this.updateCamera(e,n)})}updateCamera(o){return H(this,arguments,function*(e,n={}){const{five:s,privateState:r,state:a}=this,l=(()=>{var m,g;const d=(m=a.config)==null?void 0:m.speedConfig,h=(g=e.rotateSpeed)!=null?g:d==null?void 0:d.rotateSpeed;if((d==null?void 0:d.rotateSpeedUnit)===void 0)return h;if(h!==void 0)return d.rotateSpeedUnit==="rad/ms"?h:h/1e3})(),c=(()=>{if(n.duration)return n.duration;if(l){const d=this.five.getCurrentState();return Xp(d,e)/l}return 800})();r.currentPlayKeyframe&&(r.currentPlayKeyframe.originDuration=c);const u=this.getSpeededDuration(c);return new Promise(d=>{Yp(()=>s.updateCamera(e,u)),setTimeout(()=>d(),u)})})}changePano(e,n){return H(this,null,function*(){const{five:o,privateState:s,state:r}=this;if(typeof e.panoIndex!="number"||e.panoIndex===o.panoIndex)return;const a=o.getCurrentState().mode!=="Panorama";a&&(this.privateState.modeChanging=!0);const l=(()=>{var h,m;const u=(h=r.config)==null?void 0:h.speedConfig,d=(m=e.moveSpeed)!=null?m:u==null?void 0:u.moveSpeed;if((u==null?void 0:u.moveSpeedUnit)===void 0)return d;if(d!==void 0)return u.moveSpeedUnit==="m/ms"?d:d/1e3})(),c=(()=>{if(n!=null&&n.duration)return n.duration;if(l&&typeof o.panoIndex=="number"&&typeof e.panoIndex=="number"){const u=o.work.observers[o.panoIndex].position,d=o.work.observers[e.panoIndex].position;return u.distanceTo(d)/l}return 800})();s.currentPlayKeyframe&&(s.currentPlayKeyframe.originDuration=c),yield new Promise(u=>{var d,h,m;o.moveToPano(e.panoIndex,{latitude:e.latitude,longitude:e.longitude,fov:e.fov,duration:this.getSpeededDuration(c),effect:(m=(h=n==null?void 0:n.moveEffect)!=null?h:(d=this.state.config)==null?void 0:d.moveEffect)!=null?m:e.moveEffect,moveCancelCallback:()=>u(),moveEndCallback:()=>u()}),a&&o.once("panoArrived",()=>u())}),a&&(this.privateState.modeChanging=!1)})}changeSpeed(e,n=!0){const{state:o,privateState:s,hooks:r}=this,{currentPlayKeyframe:a}=s;if(r.emit("speedChange",e,{userAction:n}),o.playing&&a)try{const l=a.originDuration!==void 0?a.originDuration*(1-this.getProgress()):void 0,c=this.playKeyframe(a.keyframe,{duration:l});s.currentPlayQueue.push(c)}catch(l){}}getSpeededDuration(e){return e/this.state.speed}getProgress(){return this.five.controller.cameraMotion.progress}changeMode(e,n){return H(this,null,function*(){e.mode&&e.mode!==this.five.currentMode&&(this.privateState.modeChanging=!0,yield this.five.changeMode(e.mode,e,n),this.privateState.modeChanging=!1)})}forceInteruptUpdateCamera(){this.five.updateCamera({},0)}getPauseData(){var e,n;if((e=this.data)!=null&&e.keyframesId)return Fi.get((n=this.data)==null?void 0:n.keyframesId)}setPauseData(){var e,n,o,s;if((e=this.data)!=null&&e.keyframesId)return Fi.set((n=this.data)==null?void 0:n.keyframesId,{keyframeId:(o=this.privateState.currentPlayKeyframe)==null?void 0:o.keyframe.id,fiveState:this.five.getCurrentState(),duration:(s=this.privateState.currentPlayKeyframe)==null?void 0:s.originDuration,playedProgress:this.getProgress()})}clearPauseData(){var e,n;if((e=this.data)!=null&&e.keyframesId)return Fi.delete((n=this.data)==null?void 0:n.keyframesId)}clear(){this.clearPauseData(),this.privateState.currentPlayKeyframe=null}handleDispose(){var e,n;this.setState({playing:!1}),this.clearPauseData(),this.clear(),(e=this.GuideLine)==null||e.dispose(),this.GuideLine=void 0,(n=this.privateState.disposers)==null||n.forEach(o=>o==null?void 0:o())}actionIfStateIsEnabled(e,n){if(this.state.enabled)return e();n!=null&&n.warnLog&&Kp()}waitFiveLoaded(){return H(this,null,function*(){return new Promise(e=>{if(this.five.work){e();return}this.five.once("loaded",()=>{e()})})})}setFiveLinearUpdateCamera(){!this.privateState.fiveOriginGetProgress||(this.five.controller.cameraMotion.getProgress=e=>{const n=this.five.controller.cameraMotion,o=e-n.startTime;return o<0?0:o>=n.duration?1:1-Jp(1,n.startVelocity,n.duration,o)})}setFiveOriginUpdateCamera(){!this.privateState.fiveOriginGetProgress||(this.five.controller.cameraMotion.getProgress=this.privateState.fiveOriginGetProgress)}}f(ko,"PluginVersion",Ml);const eg=i=>new ko(i);function tg(i,t){t.forEach(e=>{const n=new E.SphereGeometry(.02,16,16),o=[],s=[new E.MeshBasicMaterial({color:16776960}),new E.MeshBasicMaterial({color:16711935}),new E.MeshBasicMaterial({color:16711680}),new E.MeshBasicMaterial({color:65535})];if(e.position.length===4)e.position.forEach((r,a)=>{const l=s[a],c=new E.Mesh(n,l);c.position.copy(qe(r)),o.push(c)});else{const r=s[0],a=new E.Mesh(n,r);a.position.copy(qe(e.position)),o.push(a)}o.forEach(r=>{r.material.depthTest=!1,i.scene.add(r)})})}const Me=i=>i;function Hi(i){if(i.length<3)return;const t=i.map(wn),e=t[1].clone().sub(t[0]),n=t[2].clone().sub(t[1]);return e.cross(n)}var Sl=(i=>(i.Audio="Audio",i.Text="Text",i.ImageText="ImageText",i.Image="Image",i.Video="Video",i.Link="Link",i.Sticker="Sticker",i.VRLink="VRLink",i.PanoLink="PanoLink",i.Marketing="Marketing",i.MediaPlane="MediaPlane",i.MediaModel="MediaModel",i.Custom="Custom",i.Unknown="Unknown",i))(Sl||{});function ng(i){if(i.length!==4)return!1;const[t,e,n,o]=i,s=t.distanceTo(e),r=e.distanceTo(n),a=n.distanceTo(o),l=o.distanceTo(t),c=t.distanceTo(n),u=e.distanceTo(o);return s===a&&r===l&&c===u}class Gi extends E.BufferGeometry{constructor(e,n){super();f(this,"name","QuadrangleGeometry");f(this,"points");this.points=e;const o=n!=null?n:ng(e)?64:1;if(e.length!==4){console.error("Invalid number of points, it's not a quadrangle");return}const[s,r,a,l]=e,[c,u,d,h]=[new E.Vector2(0,0),new E.Vector2(1,0),new E.Vector2(1,1),new E.Vector2(0,1)],m=[],g=[];m.push(...s.toArray()),g.push(...c.toArray());for(let A=1;A<o;A++)m.push(s.x+(r.x-s.x)*A/o,s.y+(r.y-s.y)*A/o,s.z+(r.z-s.z)*A/o),g.push(c.x+(u.x-c.x)*A/o,c.y+(u.y-c.y)*A/o);m.push(...r.toArray()),g.push(...u.toArray()),m.push(...a.toArray()),g.push(...d.toArray());for(let A=1;A<o;A++)m.push(a.x+(l.x-a.x)*A/o,a.y+(l.y-a.y)*A/o,a.z+(l.z-a.z)*A/o),g.push(d.x+(h.x-d.x)*A/o,d.y+(h.y-d.y)*A/o);m.push(...l.toArray()),g.push(...h.toArray());const p=[];for(let A=0;A<o;A++)p.push(A,A+1,o*2-A,A,o*2-A,o*2+1-A);this.setAttribute("position",new E.BufferAttribute(new Float32Array(m),3)),this.setAttribute("uv",new E.BufferAttribute(new Float32Array(g),2)),this.setIndex(new E.BufferAttribute(new Uint32Array(p),1))}}function ig(i,t){return new Promise((e,n)=>{const o=t!=null?t:document.createElement("video");o.preload="metadata",o.crossOrigin="anonymous",o.muted=!0,o.loop=!0,o.playsInline=!0,o.autoplay=!0,o.src=i;const s=new E.VideoTexture(o);s.minFilter=E.LinearFilter,s.magFilter=E.LinearFilter,s.encoding=E.sRGBEncoding,o.onloadedmetadata=()=>{e(s)}})}const og="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAKqADAAQAAAABAAAAKgAAAADUGqULAAAB0ElEQVRYCe2WSUoEQRBFLVHEiVZU1I03cKW38SSewRt4A5fiTty5cQIFR9pZQWkcUNSe2/Z9yISiSGxRkUAy4BGZSVX168gistraYsQKxArECsQKxApYqkDyU5lmsznMM+ZgAGpQhaUkSRbINgLJCXiCBtSgAkVYtGGIBTKj8AgKSVahDNvQa0IUkUG4Bx91BpLdBTOS/cgUIB3a+gMwI9mFzE3a0I3z5B4r292JzGVA8tSSZILMcUDyzIykthOZvYDk+V9Ktmz4yGzhOhV4/+5YU4N/hzqo0StX3Fg5TcnNlYvgs8bPsM4hkScHoyO46haRnGEYktQVI+4ypUYKyXtxyUu27JCceAMJvjo0HoM5CEZ7cPX7i013q3IWVV5r2aw/2TK+svWbPGU68KQCa6pYeus1V0X99quSfvtVSc39lmfz2mdbz32tg1dAJ0421AVs9E7/FxBSezrMmjI/gm5/nYmMkBq+TqBs7LNgTlZH6EnWlPmORdk+pHQipUNfTxtg7p3NIXWRMvXfoqusmXsNhpC6crIS1Zf9C6yAOdlxpK5BW18CiT7A/G93gE+P0FY/RoO+RWqS62YhB2r4YhlixArECsQKxArECvzjCnwAOr0wF44ggHAAAAAASUVORK5CYII=",Tl="data:image/png;base64,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",lo="data:image/png;base64,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",sg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABcVBMVEUAAAAAAAD////////+/v45OTn////////39/fp6enPz8/7+/vw8PD+/v7x8fHc3NzHx8f////////+/v77+/vr6+v////7+/v5+fn////z8/P////////q6uqgoKD+/v79/f3m5ub+/v7////////////////39/f39/f////z8/P////t7e3s7Oz29vb////5+fn////h4eH////g4ODV1dX////////BwcH///////////+Ojo5zc3MlJSX////////////////////////7+/v////////////v7+/u7u7n5+f////39/f////09PT6+vr09PT+/v76+vr////5+fnv7+/09PTk5OT////////////////Jycn///++vr7///////+0tLT///9TU1P///8SEhL////////+/v76+vr////8/Pz39/ft7e3t7e36+vr////////X19fV1dX///+xsbF9fX1iYmL///////+K8mOEAAAAenRSTlMaAIDy8CD41cWRX9uk7Kl1VVEw6dWT/M/NvKyVkY475eWIgx0Z39rHv7axnZyZmIuKhn56emZjX1FEPTU0Kx4PCAX69fTgxcKkopWL7crJuri2sa6rnIyHhX54bVtZVU9NSUcsJSIcFROno6Hcwp+ekHVxbWhnRC8nDLc9s8oAAAOGSURBVEjHpdd3X9pAGAfwkBBDAoQmBJmWvUWWiIDIHoJb66x7a4d78Op7pBQ1J5DY33987vnyXEIu3CGy/0hvnDthM+l0hj3JScSudDKOdhNPpl1i8Ut624Gi6+trI3zW1tcdqGM7/SIC5/ZRR2SNJEm7JkHt7FAJjR18WIs40P3cAFxIOaIRna6ZOHxGunk+TDR1ukjUkSr0w86bcKShiz1OI4JMP8YAD9+4emM2Gm407IfIhzm0NxrhKNsLH4SvQ+RktyvUfZIMXYcPPsSFCcvY6EYW6ZPsxuiYZaLwAW5bDY70Da5paxjvm8d+UcjAUL/GzPtCnDF/mwFWhJ75Zs68x05gxxFRGQfa+RYXokHVCC4O4yOqYLTwBjNB+ncWEZnsbzrIvOLz4CW9g4jODn0ZPO/iZN0UmhaPp0Omq+Q/nLu6NO0hErJnurjKdTBzEdAhkqILXDAdbFkJ7EnDe4EVy198srpiwhE4X1RKDFOqviBwcNPK6gmPmeWlGDz+VdHqRPEVHo0tLTM8RpcX4G+flLe6kU/Cs1pYRnm8uriQhfoC+0ZDvbMLi6ttfO5fDCDCKFrvooAKAov+c4BZvy8EzaolCHRdIZ+fBThl9G0Ih1RCrBJWbPiMKYAZ409oMSqFWAktzJ9GBuDvRoVGOIQJMSas0CiM39u45v0M9tbaeLc6F5M+7dhcbRfgg+pcU/oNa85VDwDOzBtmpP9UKsN8BuCzeb1P+kPi08+fASyr6fVPUh/PJ72+xj/bZk5PSV0YlJ4z83iC4EipS5LkiAkeHxGcQerLwMARRzyW+QklhUgKpST8nXfYg+fHkjS89MPz0MFnhKdCSWpc8RBnPAZB3RUvLt7i3oob7f5juDzuikY81tjcHlcHg9xabdyUWDvF2ay3slecr1ptimNx9lhhs1bzXQxy5NZa6VMx9pS2Wt1H77cVjFartYvBdlDICDc0cbVa3Twd2NcOyuLwVqo+K1ebjgdcr0k+O1uXwThfl8vlhqm+99kASup5GINsYhhmG8d7UXzcBgo2e21cd9WlUll5/7G958ql8uxu7y0zS5SGSkOGBA51TRiGQAi232Y9v4kVQZGavpt6c6l3tLpNsc38gGOC01IeLg4Xi8NaLz1KkqO0VzvcTrFscYo4oLjiRAsKEXeJPRqxW0bsFWLGLVbiocyZSm5vbW0nU9BsIfyp/AGqAvfOkBaFawAAAABJRU5ErkJggg==";function Wi(i,t,e){if(i==="fill")return t;if(i==="contain"){const[n,o,s,r]=t,a=n.distanceTo(o),l=s.distanceTo(r),c=n.distanceTo(r),u=o.distanceTo(s),d=a,h=c,m=d/h;if(m>e){const p=h*e,A=new E.Vector3().subVectors(o,n).multiplyScalar((a-p)/2/a),v=new E.Vector3().subVectors(s,r).multiplyScalar((l-p)/2/l);return[n.clone().add(A),o.clone().sub(A),s.clone().sub(v),r.clone().add(v)]}else if(m<e){const p=d/e,A=new E.Vector3().subVectors(r,n).multiplyScalar((c-p)/2/c),v=new E.Vector3().subVectors(s,o).multiplyScalar((u-p)/2/u);return[n.clone().add(A),o.clone().add(v),s.clone().sub(v),r.clone().sub(A)]}else return t}else return t}function Ae(i,t){this._camera=i||null,this._domElement=t||document,this._raycaster=new E.Raycaster,this._selected=null,this._boundObjs={};var e=this;this._$onClick=function(){e._onClick.apply(e,arguments)},this._$onDblClick=function(){e._onDblClick.apply(e,arguments)},this._$onMouseMove=function(){e._onMouseMove.apply(e,arguments)},this._$onMouseDown=function(){e._onMouseDown.apply(e,arguments)},this._$onMouseUp=function(){e._onMouseUp.apply(e,arguments)},this._$onTouchMove=function(){e._onTouchMove.apply(e,arguments)},this._$onTouchStart=function(){e._onTouchStart.apply(e,arguments)},this._$onTouchEnd=function(){e._onTouchEnd.apply(e,arguments)},this._$onContextmenu=function(){e._onContextmenu.apply(e,arguments)},this._domElement.addEventListener("click",this._$onClick,!1),this._domElement.addEventListener("dblclick",this._$onDblClick,!1),this._domElement.addEventListener("mousemove",this._$onMouseMove,!1),this._domElement.addEventListener("mousedown",this._$onMouseDown,!1),this._domElement.addEventListener("mouseup",this._$onMouseUp,!1),this._domElement.addEventListener("touchmove",this._$onTouchMove,!1),this._domElement.addEventListener("touchstart",this._$onTouchStart,!1),this._domElement.addEventListener("touchend",this._$onTouchEnd,!1),this._domElement.addEventListener("contextmenu",this._$onContextmenu,!1)}Ae.prototype.destroy=function(){this._domElement.removeEventListener("click",this._$onClick,!1),this._domElement.removeEventListener("dblclick",this._$onDblClick,!1),this._domElement.removeEventListener("mousemove",this._$onMouseMove,!1),this._domElement.removeEventListener("mousedown",this._$onMouseDown,!1),this._domElement.removeEventListener("mouseup",this._$onMouseUp,!1),this._domElement.removeEventListener("touchmove",this._$onTouchMove,!1),this._domElement.removeEventListener("touchstart",this._$onTouchStart,!1),this._domElement.removeEventListener("touchend",this._$onTouchEnd,!1),this._domElement.removeEventListener("contextmenu",this._$onContextmenu,!1)};Ae.eventNames=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu","touchstart","touchend"];Ae.prototype._getRelativeMouseXY=function(i){var t=i.target||i.srcElement;t.nodeType===3&&(t=t.parentNode);var e={x:0,y:0},n=t,o=getComputedStyle(n,null);e.y+=parseInt(o.getPropertyValue("padding-top"),10),e.x+=parseInt(o.getPropertyValue("padding-left"),10);do e.x+=n.offsetLeft,e.y+=n.offsetTop,o=getComputedStyle(n,null),e.x+=parseInt(o.getPropertyValue("border-left-width"),10),e.y+=parseInt(o.getPropertyValue("border-top-width"),10);while(n=n.offsetParent);var s={width:t===window?window.innerWidth:t.offsetWidth,height:t===window?window.innerHeight:t.offsetHeight};return{x:Number((i.pageX-e.x)/s.width)*2-1,y:-((i.pageY-e.y)/s.height)*2+1}};Ae.prototype._objectCtxInit=function(i){i._3xDomEvent={}};Ae.prototype._objectCtxDeinit=function(i){delete i._3xDomEvent};Ae.prototype._objectCtxIsInit=function(i){return!!i._3xDomEvent};Ae.prototype._objectCtxGet=function(i){return i._3xDomEvent};Ae.prototype.camera=function(i){return i&&(this._camera=i),this._camera};Ae.prototype.bind=function(i,t,e,n){console.assert(Ae.eventNames.indexOf(t)!==-1,"not available events:"+t),this._objectCtxIsInit(i)||this._objectCtxInit(i);var o=this._objectCtxGet(i);o[t+"Handlers"]||(o[t+"Handlers"]=[]),o[t+"Handlers"].push({callback:e,useCapture:n}),this._boundObjs[t]===void 0&&(this._boundObjs[t]=[]),this._boundObjs[t].push(i)};Ae.prototype.addEventListener=Ae.prototype.bind;Ae.prototype.unbind=function(i,t,e,n){console.assert(Ae.eventNames.indexOf(t)!==-1,"not available events:"+t),this._objectCtxIsInit(i)||this._objectCtxInit(i);var o=this._objectCtxGet(i);o[t+"Handlers"]||(o[t+"Handlers"]=[]);for(var s=o[t+"Handlers"],r=0;r<s.length;r++){var a=s[r];if(e==a.callback&&n==a.useCapture){s.splice(r,1);break}}var l=this._boundObjs[t].indexOf(i);this._boundObjs[t].splice(l,1)};Ae.prototype.removeEventListener=Ae.prototype.unbind;Ae.prototype._bound=function(i,t){var e=this._objectCtxGet(t);return e?!!e[i+"Handlers"]:!1};Ae.prototype._onMove=function(i,t,e,n){var o=this._boundObjs[i];if(!(o===void 0||o.length===0)){var s=new E.Vector2;s.set(t,e),this._raycaster.setFromCamera(s,this._camera);var r=this._raycaster.intersectObjects(o),a=this._selected;if(r.length>0){var l,c,u,d=r[0],h=d.object;this._selected=h,u=this._bound("mousemove",h),a!=h&&(l=this._bound("mouseover",h),c=a&&this._bound("mouseout",a))}else c=a&&this._bound("mouseout",a),this._selected=null;u&&this._notify("mousemove",h,n,d),l&&this._notify("mouseover",h,n,d),c&&this._notify("mouseout",a,n,d)}};Ae.prototype._onEvent=function(i,t,e,n){var o=this._boundObjs[i];if(!(o===void 0||o.length===0)){var s=new E.Vector2;s.set(t,e),this._raycaster.setFromCamera(s,this._camera);var r=this._raycaster.intersectObjects(o,!0);if(r.length!==0){for(var a=r[0],l=a.object,c=this._objectCtxGet(l),u=l.parent;typeof c=="undefined"&&u;)c=this._objectCtxGet(u),u=u.parent;!c||this._notify(i,l,n,a)}}};Ae.prototype._notify=function(i,t,e,n){var o=this._objectCtxGet(t),s=o?o[i+"Handlers"]:null;if(!o||!s||s.length===0){t.parent&&this._notify(i,t.parent,e,n);return}for(var s=o[i+"Handlers"],r=0;r<s.length;r++){var a=s[r],l=!0;a.callback({type:i,target:t,origDomEvent:e,intersect:n,stopPropagation:function(){l=!1}}),!!l&&a.useCapture===!1&&t.parent&&this._notify(i,t.parent,e,n)}};Ae.prototype._onMouseDown=function(i){return this._onMouseEvent("mousedown",i)};Ae.prototype._onMouseUp=function(i){return this._onMouseEvent("mouseup",i)};Ae.prototype._onMouseEvent=function(i,t){var e=this._getRelativeMouseXY(t);this._onEvent(i,e.x,e.y,t)};Ae.prototype._onMouseMove=function(i){var t=this._getRelativeMouseXY(i);this._onMove("mousemove",t.x,t.y,i),this._onMove("mouseover",t.x,t.y,i),this._onMove("mouseout",t.x,t.y,i)};Ae.prototype._onClick=function(i){this._onMouseEvent("click",i)};Ae.prototype._onDblClick=function(i){this._onMouseEvent("dblclick",i)};Ae.prototype._onContextmenu=function(i){this._onMouseEvent("contextmenu",i)};Ae.prototype._onTouchStart=function(i){return this._onTouchEvent("touchstart",i)};Ae.prototype._onTouchEnd=function(i){return this._onTouchEvent("touchend",i)};Ae.prototype._onTouchMove=function(i){if(i.touches.length==1){var t=Number(i.touches[0].pageX/window.innerWidth)*2-1,e=-(i.touches[0].pageY/window.innerHeight)*2+1;this._onMove("mousemove",t,e,i),this._onMove("mouseover",t,e,i),this._onMove("mouseout",t,e,i)}};Ae.prototype._onTouchEvent=function(i,t){var e=t.touches;if(e.length==0&&(e=t.changedTouches),e.length==1){var n=Number(e[0].pageX/window.innerWidth)*2-1,o=-(e[0].pageY/window.innerHeight)*2+1;this._onEvent(i,n,o,t)}};class rg extends Ae{constructor(e){super(e.camera,e.getElement());f(this,"mouseInfo");f(this,"clickHandlerMap",new Map);const n=()=>this.preventWhenMouseDown();e.on("wantsMoveToPano",n),e.on("wantsTapGesture",n)}addEventListener(e,n,o,s){const r=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;this.mouseInfo={x:d.clientX,y:d.clientY,isDown:!0,mouseDownTimestamp:Date.now()}},a=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;!this.mouseInfo||(this.mouseInfo.isDown&&this.mouseInfo.x===d.clientX&&this.mouseInfo.y===d.clientY&&Date.now()-this.mouseInfo.mouseDownTimestamp<400&&o(d),this.mouseInfo=void 0)},l=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;this.mouseInfo={x:Math.floor(d.touches[0].clientX),y:Math.floor(d.touches[0].clientY),isDown:!0,mouseDownTimestamp:Date.now()}},c=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;!this.mouseInfo||(this.mouseInfo.isDown&&this.mouseInfo.x===Math.floor(d.changedTouches[d.changedTouches.length-1].clientX)&&this.mouseInfo.y===Math.floor(d.changedTouches[d.changedTouches.length-1].clientY)&&Date.now()-this.mouseInfo.mouseDownTimestamp<400&&o(d),this.mouseInfo=void 0)};n==="click"?(super.addEventListener(e,"mousedown",r,s),super.addEventListener(e,"mouseup",a,s),super.addEventListener(e,"touchstart",l,s),super.addEventListener(e,"touchend",c,s),this.clickHandlerMap.set(o,{mousedown:r,mouseup:a,touchstart:l,touchend:c})):super.addEventListener(e,n,o,s)}removeEventListener(e,n,o,s){if(n==="click"){const r=this.clickHandlerMap.get(o);r&&(super.removeEventListener(e,"mousedown",r.mousedown,s),super.removeEventListener(e,"mouseup",r.mouseup,s),super.removeEventListener(e,"touchstart",r.touchstart,s),super.removeEventListener(e,"touchend",r.touchend,s),this.clickHandlerMap.delete(o))}else super.removeEventListener(e,n,o,s)}preventWhenMouseDown(){var e;if((e=this.mouseInfo)!=null&&e.isDown)return!1}}class zl extends E.Mesh{constructor(){super(...arguments);f(this,"name","MediaPlane");f(this,"src")}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}setMatrixByCornerPoints(e){const n=new j.Vector3().subVectors(e[1],e[0]),o=new j.Vector3().subVectors(e[3],e[0]),s=at(...e),r=new j.Vector3().crossVectors(n,o).normalize();this.lookAt(r);const a=this.up.clone().applyQuaternion(this.quaternion),l=o.clone(),c=new j.Vector3().crossVectors(a,l).normalize();this.rotateOnWorldAxis(c,a.angleTo(l)),this.position.copy(s)}}class or extends zl{constructor(e,n){super();f(this,"name","PanoTagPluginImagePlane");this.src=e,Cn(e).then(o=>{const s=o.image.width,r=o.image.height,a=new E.MeshBasicMaterial({map:o,transparent:!0}),l=new E.PlaneGeometry(s,r);this.geometry=l,this.material=a;const c=n[0].distanceTo(n[1]),u=n[1].distanceTo(n[2]);this.scale.set(c/s,u/r,1);const d=s/r,h=c/u;d>h?this.scale.set(c/s,c/s,1):d<h?this.scale.set(u/r,u/r,1):this.scale.set(c/s,u/r,1)}).catch(o=>{console.error({e:o})}),this.setMatrixByCornerPoints(n)}}class co extends zl{constructor(e,n,o){const{videoCoverSrc:s,objectFit:r="contain",playButton:a="withText",videoTextureMap:l,ImageTextureMap:c,videoInstance:u=document.createElement("video")}=o!=null?o:{};super();f(this,"isVideoPlane",!0);f(this,"name","PanoTagPluginImagePlane");f(this,"videoInstance");f(this,"objectFit");f(this,"buttonSrc");f(this,"paused",!0);f(this,"videoCoverSrc");f(this,"domEvents");f(this,"disposers",[]);f(this,"domEventsListenerTemporaryList",[]);f(this,"cornerPoints");f(this,"videoMesh");f(this,"coverMesh");f(this,"buttonMesh");f(this,"videoTextureMap");f(this,"ImageTextureMap");this.cornerPoints=n,this.src=e,this.buttonSrc=(()=>a==="withText"?Tl:a==="withoutText"?lo:typeof a=="string"?a:lo)(),this.videoInstance=u,this.videoCoverSrc=s,this.objectFit=r,this.videoTextureMap=l,this.ImageTextureMap=c,this.position.copy(at(...n)),this.videoCoverSrc?this.addCoverMesh().then(()=>this.addButtonMesh()):this.addVideoMesh().then(()=>this.addButtonMesh()),this.addEventListener("dispose",()=>{var d;this.domEventsListenerTemporaryList=[],(d=this.disposers)==null||d.forEach(h=>h==null?void 0:h())})}play(){return H(this,null,function*(){!this.paused||(this.paused=!1,this.coverMesh&&(this.coverMesh.visible=!1),this.remove(this.buttonMesh),this.videoMesh||(yield this.addVideoMesh()),this.videoMesh.visible=!0,this.videoInstance.play(),this.videoInstance.muted=!1,this.render())})}pause(){this.paused||(this.paused=!0,this.coverMesh&&(this.coverMesh.visible=!0,this.videoMesh&&(this.videoMesh.visible=!1)),this.addButtonMesh(),this.videoInstance.pause(),this.render())}initialDomEvents(e){this.domEvents||(this.domEvents=new rg(e),this.domEventsListenerTemporaryList.forEach(n=>this.addDomEventListener(...n)),this.domEventsListenerTemporaryList=[])}initialRenderHooks(e){const n=()=>{this.videoMesh&&(this.videoInstance.paused||(this.videoMesh.needsRender=!0))};e.on("renderFrame",n),this.disposers.push(()=>e.off("renderFrame",n))}render(){this.videoMesh&&(this.videoMesh.needsRender=!0),this.coverMesh&&(this.coverMesh.needsRender=!0),this.buttonMesh&&(this.buttonMesh.needsRender=!0),this.videoMesh&&(this.videoInstance.paused||(this.videoMesh.needsRender=!0))}addDomEventListener(...e){this.domEvents?(this.domEvents.addEventListener(...e),this.disposers.push(()=>{var n;return(n=this.domEvents)==null?void 0:n.removeEventListener(...e)})):this.domEventsListenerTemporaryList.push(e)}removeDomEventListener(...e){this.domEvents?this.domEvents.removeEventListener(...e):this.domEventsListenerTemporaryList=this.domEventsListenerTemporaryList.filter(n=>n!==e)}addCoverMesh(){return H(this,null,function*(){if(this.children.find(n=>n===this.coverMesh))return;const e=yield this.getCoverMesh();this.add(e)})}addVideoMesh(){return H(this,null,function*(){if(this.children.find(n=>n===this.videoMesh))return;const e=yield this.getVideoMesh();this.add(e)})}addButtonMesh(){return H(this,null,function*(){if(this.children.find(n=>n===this.buttonMesh))return;const e=yield this.getButtonMesh();this.add(e)})}getCoverMesh(){return H(this,null,function*(){if(this.coverMesh)return this.coverMesh;const e=yield this.getCoverTexture(),n=new E.MeshBasicMaterial({transparent:!0,map:e}),o=Wi(this.objectFit,this.cornerPoints,e.image.width/e.image.height),s=at(...o),r=o.map(c=>c.clone().sub(s)),a=new Gi(r,1),l=new E.Mesh(a,n);return l.name="videoCoverMesh",l.position.copy(s.clone().sub(this.position)),this.coverMesh=l,l})}getVideoMesh(){return H(this,null,function*(){if(this.videoMesh)return this.videoMesh;const e=yield this.getVideoTexture(),n=new E.MeshBasicMaterial({transparent:!0,map:e}),o=Wi(this.objectFit,this.cornerPoints,e.image.videoWidth/e.image.videoHeight),s=at(...o),r=o.map(u=>u.clone().sub(s)),a=new Gi(r,1),l=new E.Mesh(a,n);l.name="videoMesh",l.position.copy(s.clone().sub(this.position)),this.addDomEventListener(l,"click",u=>{this.pause()});const c=e.image;return this.videoMesh=l,this.videoInstance=c,l})}getButtonMesh(){return H(this,null,function*(){var A,v,b,w;if(this.buttonMesh)return this.buttonMesh;const e=(v=(A=this.videoMesh)==null?void 0:A.geometry.points[0].distanceTo(this.videoMesh.geometry.points[3]))!=null?v:1/0,n=(w=(b=this.coverMesh)==null?void 0:b.geometry.points[0].distanceTo(this.coverMesh.geometry.points[3]))!=null?w:1/0,o=this.cornerPoints[0].distanceTo(this.cornerPoints[3]),r=Math.min(e,n,o)/o*.3,a=yield this.getButtonTexture(),l=new E.MeshBasicMaterial({transparent:!0,map:a}),c=Wi("contain",this.cornerPoints,a.image.width/a.image.height),u=at(...c),d=c.map(k=>k.clone().sub(u)),h=new Gi(d),m=new E.Mesh(h,l);m.name="buttonMesh",m.scale.set(r,r,r);const g=()=>{this.play()};m.addEventListener("added",()=>{this.addDomEventListener(m,"click",g)}),m.addEventListener("removed",()=>{this.removeDomEventListener(m,"click",g)});const p=new E.Vector3().crossVectors(new E.Vector3().subVectors(c[0],c[1]),new E.Vector3().subVectors(c[0],c[3])).normalize().multiplyScalar(1e-4);return m.position.copy(p),this.buttonMesh=m,m})}getButtonTexture(){return H(this,null,function*(){var n,o;if((n=this.ImageTextureMap)!=null&&n.has(this.buttonSrc))return this.ImageTextureMap.get(this.buttonSrc);const e=yield Cn(this.buttonSrc);return(o=this.ImageTextureMap)==null||o.set(this.buttonSrc,e),e})}getCoverTexture(){return H(this,null,function*(){var n,o;if((n=this.ImageTextureMap)!=null&&n.has(this.videoCoverSrc))return this.ImageTextureMap.get(this.videoCoverSrc);const e=yield Cn(this.videoCoverSrc);return(o=this.ImageTextureMap)==null||o.set(this.videoCoverSrc,e),e})}getVideoTexture(){return H(this,null,function*(){var n,o;if((n=this.videoTextureMap)!=null&&n.has(this.src))return this.videoTextureMap.get(this.src);const e=yield ig(this.src,this.videoInstance);return(o=this.videoTextureMap)==null||o.set(this.src,e),e})}}var Bl=(i=>(i.Two="2D",i.Three="3D",i))(Bl||{});function ag(i){return i.stickType==="Plane"}function lg(i){return i.stickType==="3DPoint"||i.stickType==="Plane"}function Re(i){return i.stickType==="Model"&&i.contentType==="MediaModel"}function cg(i){return i.stickType==="Plane"&&i.contentType==="MediaPlane"}function fi(i){if(!!i)if(Array.isArray(i)&&i.length===4){const e=i.map(wn);return at(e[0],e[2])}else return wn(i)}function ug(i){if(Re(i)&&i.matrix){const t=new j.Matrix4().fromArray(i.matrix),e=i.data.mediaPosition.map(n=>new j.Vector3().fromArray(n).applyMatrix4(t));return at(e[0],e[2])}else return fi(i.position)}function hn(i,t){if(i===void 0)return;const{min:e,max:n}=t!=null?t:{};if(!(e===void 0&&n===void 0))return!(typeof n=="number"&&n<i||typeof e=="number"&&e>i)}function dg(i){return new Promise(t=>{i.model.loaded?t():i.once("modelLoaded",()=>t())})}function hg(i,t,e){const o=new E.Plane().setFromNormalAndCoplanarPoint(e,t),s=t.clone().sub(i).cross(new E.Vector3(0,1,0)).setLength(.01),r=new E.Vector3(0,.01,0);return[t.clone().sub(s).sub(r),t.clone().add(s).sub(r),t.clone().add(s).add(r),t.clone().sub(s).add(r)].map(l=>o.projectPoint(l,new E.Vector3))}const sr=(i,t=1e3/60)=>{let e=null;const n=i;return(...s)=>{e&&clearTimeout(e),e=setTimeout(()=>{n==null||n(...s),e&&clearTimeout(e),e=null},t)}};function fg(i,t=200){let e;return function(...n){e||(i.apply(this,n),e=setTimeout(function(){e=null},t))}}function mg(i,t){const[e,n]=t;if(e>=n||n<=1||e<=1)return-1;const o={},s=r=>(o[r]||(o[r]=i(r)),o[r]);for(let r=e;r<n;r++){const a=s(r),l=s(r-1);if(a<l)return r}return-1}function rr(i,t){if(!t||typeof ResizeObserver=="undefined"||!ResizeObserver)return{observe:()=>window.addEventListener("resize",i),unobserve:()=>window.removeEventListener("resize",i)};{const e=new ResizeObserver(i);return{observe:()=>e.observe(t),unobserve:()=>e.unobserve(t)}}}function pg(i){var t,e,n,o;if(!i.stickType){const s=(()=>i.pointType==="PointTag"&&i.dimensionType==="3D"?"3DPoint":i.pointType==="PlaneTag"?"Plane":"2DPoint")();i.stickType=s}if(i.contentType==="VRLink"||i.contentType==="PanoLink"||i.contentType==="Link"){const s=i;!((e=(t=s.data)==null?void 0:t.icon)!=null&&e.url)&&!((o=(n=s.style)==null?void 0:n.point)!=null&&o.url)&&(s.data.icon={url:"//vrlab-static.ljcdn.com/release/web/test.09dee741.png",steps:28})}return i}const Jt="data:audio/mpeg;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAADAAAGhgBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr///////////////////////////////////////////8AAAA5TEFNRTMuOThyAc0AAAAAAAAAABSAJAiqQgAAgAAABobxtI73AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uQxAACFEII9ACZ/sJZwWEoEb8w/////N//////JcxjHjf+7/v/H2PzCCFAiDtGeyBCIx7bJJ1mmEEMy6g8mm2c8nrGABB4h2Mkmn//4z/73u773R5qHHu/j/w7Kxkzh5lWRWdsifCkNAnY9Zc1HvDAhjhSHdFkHFzLmabt/AQxSg2wwzLhHIJOBnAWwVY4zrhIYhhc2kvhYDfQ4hDi2Gmh5KyFn8EcGIrHAngNgIwVIEMf5bzbAiTRoAD///8z/KVhkkWEle6IX+d/z4fvH3BShK1e5kmjkCMoxVmXhd4ROlTKo3iipasvTilY21q19ta30/v/0/idPX1v8PNxJL6ramnOVsdvMv2akO0iSYIzdJFirtzWXCZicS9vHqvSKyqm5XJBdqBwPxyfJdykhWTZ0G0ZyTZGpLKxsNwwoRhsx3tZfhwmeOBVISm3impAC/IT/8hP/EKEM1KMdVdVKM2rHV4x7HVXZvbVVKN/qq8CiV9VL9jjH/6l6qf7MBCjZmOqsAibjcP+qqqv0oxqpa/NVW286hPo1nz2L/h8+jXt//uSxCmDU2IK/ECN98KKtE5IYzNoCfbw+u9i5r8PoadUMFPKqWL4LK3T/LCraMSHGkW4bpLXR/E6LlHOVQxmslKVJ8IULktMN06N0FKCpHCoYsjC4F+Z0NVqdNFoGSTjSiyjzLdnZ2fNqTi2eHKONONKLMPMKLONKLMPQRJGlFxZRoKcJFAYEeIFiRQkUWUeYfef//Ko04soswso40UJAgMw8wosososy0EalnZyjQUGBRQGIFggOWUacWUeYmuadrZziQKKEgQsQLAhQkUJAgMQDghltLO1onp0cpkNInSFMqlYeSEJ5AHsqFdOwy1DA2sRmRJKxdKRfLhfLw5BzUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7ksRRA8AAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=",An={};var xo=(i=>(i.Default="default",i.GetAudioDuration="getAudioDuration",i.PlayAudio="playAudio",i))(xo||{});function gg(i,t){const e=(t==null?void 0:t.namespace)||"default",n=An[e]||(An[e]=[]);let o=n.find(s=>!s.realSrc||s.realSrc===Jt);return o||(console.warn("\u672A\u627E\u5230\u7F13\u5B58\u97F3\u9891\uFF0C\u5DF2\u65B0\u5EFA",An),o=new Vl(Jt),n.push(o)),i&&(o.src=i),o}function vg(i,t){const e=(t==null?void 0:t.namespace)||"default",n=An[e]||(An[e]=[]),o=i-n.length;if(!(o<=0))for(let s=0;s<o;s++)n.push(new Vl(Jt))}class Vl extends Audio{constructor(e){super(e);f(this,"preload","auto");f(this,"crossOrigin","anonymous");f(this,"realSrc","");f(this,"inited",!1);f(this,"removeDocumentEventListener");this.realSrc=e!=null?e:"",this.muted=!0,super.autoplay=!0,super.addEventListener("ended",()=>{this.src=""});const n=()=>Ag(this);document.addEventListener("click",n),document.addEventListener("touchend",n),this.removeDocumentEventListener=()=>{document.removeEventListener("click",n),document.removeEventListener("touchend",n)}}get isBlankAudio(){return this.realSrc===Jt||!this.realSrc}get src(){return super.src}set src(e){super.src=e,this.realSrc=e,this.removeDocumentEventListener()}get muted(){return super.muted}set muted(e){super.muted=e}clear(){this.currentTime=0,this.src=Jt}}function Ag(i){!i||i.inited||(i.src&&(i.inited=!0,i.removeDocumentEventListener()),i.src===Jt&&i.play())}class uo{constructor(t=0,e=0){f(this,"min");f(this,"max");f(this,"isInterval",!0);this.min=t,this.max=e}fromArray(t){return this.min=t[0],this.max=t[1],this}isOverlap(t){return Math.min(this.max,t.max)<Math.max(this.min,t.min)}contains(t){return this.min<t.min&&this.max>t.max}}class bg{constructor(t,e){f(this,"min");f(this,"max");f(this,"xInterval");f(this,"yInterval");f(this,"isRectangle",!0);this.min=t,this.max=e,this.xInterval=new uo(this.min.x,this.max.x),this.yInterval=new uo(this.min.y,this.max.y)}isOverlapWithRectangle(t){return!this.xInterval.isOverlap(t.xInterval)&&!this.yInterval.isOverlap(t.yInterval)}containsRect(t){return this.xInterval.contains(t.xInterval)&&this.yInterval.contains(t.yInterval)}}function Xn(i,t,e){const n=i[t],o=i[e];!n||!o||(i[t]=o,i[e]=n)}function yg(i,t,e){const n=e/2;for(let o=1;o<=n;o++){const s=e-(o-1);for(let r=1;r<=t;r++){const a=(o-1)*t+r-1,l=(s-1)*t+r-1;Xn(i,a*4+0,l*4+0),Xn(i,a*4+1,l*4+1),Xn(i,a*4+2,l*4+2),Xn(i,a*4+3,l*4+3)}}}class jl{constructor(t,e){f(this,"width");f(this,"height");f(this,"containerDom");f(this,"hooks",new Ee.Subscribe);f(this,"canvas",document.createElement("canvas"));f(this,"five");f(this,"scale");f(this,"config");f(this,"offset",{x:0,y:0});f(this,"context");f(this,"renderCenter",new E.Vector3);f(this,"hammer");f(this,"state",{enabled:!1});f(this,"onPan",t=>{if(!this.containerDom||this.hooks.emit("wantsPanGesture",t))return;const n=this.offset.x+t.deltaX,o=this.offset.y+t.deltaY;this.canvas.style.boxShadow="0 2px 30px 0 rgba(0,0,0,0.20)",this.canvas.style.transform=`translate3d(${n}px, ${o}px, 100px)`});f(this,"onPanEnd",t=>{this.offset={x:this.offset.x+t.deltaX,y:this.offset.y+t.deltaY},this.canvas.style.boxShadow="none"});var o,s,r;if(!t.renderer)throw new Error("Five Render \u672A\u521D\u59CB\u5316");this.five=t,this.scale=(o=e==null?void 0:e.scale)!=null?o:2,this.width=(s=e==null?void 0:e.width)!=null?s:190,this.height=(r=e==null?void 0:e.height)!=null?r:190,this.config={dragEnabled:(e==null?void 0:e.dragEnabled)||!1,autoFixPCPosition:(e==null?void 0:e.autoFixPCPosition)||!1,initialPosition:(e==null?void 0:e.initialPosition)||{left:"0",top:"0"}};const n=this.canvas.getContext("2d");if(!n)throw new Error("CANNOT CREATE CONTEXT2D");this.context=n,this.config.dragEnabled&&(this.hammer=new kn.default(this.canvas),this.hammer.on("pan",this.onPan),this.hammer.on("panend",this.onPanEnd)),this.initStyle()}dispose(){var t;this.clear(),this.disable(),(t=this.hammer)==null||t.destroy()}enable(){var t;if(!this.state.enabled)return this.state.enabled=!0,(t=this.containerDom)==null||t.append(this.canvas),this}disable(){if(!!this.state.enabled)return this.state.enabled=!1,this.canvas.remove(),this}appendTo(t){var e;return this.containerDom&&((e=this.containerDom)==null||e.removeChild(this.canvas)),this.containerDom=t,this.state.enabled&&t.append(this.canvas),this}clear(){return this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this}renderWithPoint(t){!this.containerDom||!this.state.enabled||(this.renderCenter=t,this.render(),this.config.autoFixPCPosition&&this.autoFixPCPosition())}autoFixPCPosition(){if(!this.containerDom)return;const{width:t,height:e}=this,n=this.renderCenter.clone().project(this.five.camera),o=(n.x+1)/2*this.containerDom.clientWidth,s=-(n.x-1)/2*this.containerDom.clientWidth,r=-(n.y-1)/2*this.containerDom.clientHeight;o<183?(this.canvas.style.top=-e/2+"px",this.canvas.style.left=90+"px"):r<183?(this.canvas.style.top=90+"px",this.canvas.style.left=-t/2+"px"):s<183?(this.canvas.style.top=-e/2+"px",this.canvas.style.left=-t-90+"px"):(this.canvas.style.left=-t/2+"px",this.canvas.style.top=-e-90+"px"),this.canvas.style.transform=`translate3d(${o}px, ${r}px, 10px)`,this.offset={x:o,y:r}}render(){if(!this.five.renderer||!this.containerDom)return;const{scale:t,context:e,width:n,height:o}=this,s=this.renderCenter.clone().project(this.five.camera),r=this.five.renderer.getSize(new E.Vector2),a=1,l=n/t,c=o/t,u=a*t,d=(s.x+1)/2*r.x,h=(s.y+1)/2*r.y,m=this.five.getPixels(d-l/2,h-l/2,l,c,u),g=Math.floor(n*a),p=Math.floor(o*a);yg(m,g,p);const A=new ImageData(g,p);A.data.set(m),e.putImageData(A,0,0)}initStyle(){const t=this.canvas;t.classList.add("five-plugin__magnifier"),t.style.position="absolute",t.style.pointerEvents="all",t.style.borderRadius="50%",t.style.zIndex="99";const e=1;t.setAttribute("width",(this.width*e).toString()),t.setAttribute("height",(this.height*e).toString()),t.style.border="2px solid rgba(255,255,255,0.20)",t.style.width=this.width+"px",t.style.height=this.height+"px",t.style.top=this.config.initialPosition.top,t.style.left=this.config.initialPosition.left,t.style.transform="translate(0,0,100px)",this.config.dragEnabled&&(this.canvas.style.cursor="pointer")}}function wg(i,t){const{offsetWidth:e,offsetHeight:n}=t,{top:o,left:s}=t.getBoundingClientRect();return new E.Vector2().set((i.x-s)/e*2-1,-(i.y-o)/n*2+1)}function Ol(i,t){const{offsetWidth:e,offsetHeight:n}=t;return new E.Vector2().set(i.x/e*2-1,-i.y/n*2+1)}function Eg(i,t){const e=i.getElement();if(!e)return;const n=Ol(t,e),o=new E.Raycaster;return o.setFromCamera(n,i.camera),o}function Pg(i,t){const{x:e,y:n}=t,o=e*2-1,s=n*2-1,r=new E.Vector2().fromArray([o,s]),a=new E.Raycaster;return a.setFromCamera(r,i.camera),i.model.intersectRaycaster(a)[0]}const Cg="data:image/png;base64,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",Ig=`
530
+ `,e.container.style.pointerEvents="none";const n=A=>(e.wrapper=A,A.appendChild(e.container),l(),!0),o=A=>{e.itemLabels=Pp(A),l()},s=()=>(e.enabled||(e.enabled=!0,l()),!0),r=()=>(e.enabled&&(e.enabled=!1,l()),!0),a=()=>{u(),e.container.remove()},l=()=>{var A;if(!!e.wrapper){if(!e.enabled||!e.fiveModeEnabled){(A=e.app)==null||A.$destroy(),e.app=void 0;return}e.app?e.app.$set({five:i,itemLabels:e.itemLabels}):e.app=new Ep({target:e.container,props:{five:i,modelOcclusionEnable:e.modelOcclusionEnable,onlyVisibleInPanorama:e.onlyVisibleInPanorama,itemLabels:e.itemLabels,wrapper:e.wrapper,hooks:e.hooks,displayStrategyType:e.displayStrategyType,maxVisibleDistance:e.maxVisibleDistance}})}},c=()=>{i.on("modeChange",d),i.once("dispose",a)},u=()=>{i.off("modeChange",d)},d=A=>{if(A!==Ee.Five.Mode.Panorama){e.fiveModeEnabled=!1,r();return}i.once("initAnimationEnded",()=>{e.fiveModeEnabled=!0,s()})};return c(),{appendTo:n,load:o,enable:s,disable:r,dispose:a,hooks:e.hooks}},kp={name:"ItemLabelPlugin",version:0};class xp extends xn{constructor(e){super(e);f(this,"state");f(this,"container");f(this,"enabled");this.five=e,this.five.once("dispose",this.dispose),this.enabled=!0,this.state=this.initState()}enable(e){this.enabled=!0,this.updateState(fe(Q({},e),{userAction:!0}))}disable(e){this.enabled=!1,this.updateState(fe(Q({},e),{userAction:!0}))}show(e){if(!!this.state.enabled)return this.setState(fe(Q({},this.state),{visible:!0}),e),Promise.resolve()}hide(e){if(!!this.state.enabled)return this.setState(fe(Q({},this.state),{visible:!1}),e),Promise.resolve()}dispose(){this.container.remove()}setState(e,n){if(!this.enabled)return;const o=Q({},this.state);this.state=Q(Q(Q({},this.state),e),n),this.stateChangedCallback(o,n)}get visible(){return this.five.state.mode===Ee.Five.Mode.Panorama}appendTo(e){!this.enabled||(this.container=e,this.render())}updateState(e){this.setState(fe(Q({},this.state),{enabled:this.enabled,visible:this.visible}),e)}}function Dp(i){le(i,"svelte-wpy7pz",'.plugin-DoorLabelPlugin-item.svelte-wpy7pz.svelte-wpy7pz{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;transition:opacity 0.3s ease}.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz{position:absolute;top:50%;left:50%;border-radius:0.125rem;background:rgba(0, 0, 0, 0.35);line-height:0.75rem;padding:0.375rem;white-space:nowrap;font-size:0.75rem;font-style:normal;color:white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform ease 1s, background ease 0.3s, color ease 0.3s}.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz::after{content:"";display:block;position:absolute;top:-0.0625rem;left:-0.0625rem;bottom:-0.0625rem;right:-0.0625rem;border-radius:0.125rem;border:0.0625rem solid rgba(0, 0, 0, 0);-o-border-image:url("//vrlab-image4.ljcdn.com/release/web/highlightCarouseal-border-image.14b51834.png") 4;border-image:url("//vrlab-image4.ljcdn.com/release/web/highlightCarouseal-border-image.14b51834.png") 4;transition:opacity ease 0.3s}.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz:active,.plugin-DoorLabelPlugin-cnt.svelte-wpy7pz.svelte-wpy7pz:focus{background:rgba(0, 0, 0, 0.5);color:rgba(255, 255, 255, 0.5)}.plugin-DoorLabelPlugin-icon.svelte-wpy7pz.svelte-wpy7pz{background:url("//vrlab-image4.ljcdn.com/release/web/DoorLabel-icon.de1304ae.svg") no-repeat;background-size:100%;display:inline-block;width:0.625rem;height:0.625rem;margin-left:0.25rem;transform-origin:center}.plugin-DoorLabelPlugin-cnt[data-camera-toward=forward].left.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=forward].right.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=forward].right.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt[data-camera-toward=right].forward.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=right].back.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=right].back.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt[data-camera-toward=left].back.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=left].forward.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=left].forward.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt[data-camera-toward=back].right.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(90deg)}.plugin-DoorLabelPlugin-cnt[data-camera-toward=back].left.svelte-wpy7pz .plugin-DoorLabelPlugin-txt.svelte-wpy7pz{order:1}.plugin-DoorLabelPlugin-cnt[data-camera-toward=back].left.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{transform:rotate(-90deg);margin-left:0;margin-right:0.25rem;order:0}.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz.svelte-wpy7pz{color:#f9eac1}.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz .plugin-DoorLabelPlugin-icon.svelte-wpy7pz{background:url("//vrlab-image4.ljcdn.com/release/web/arrow.6e8ec00e.svg") no-repeat}.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz.svelte-wpy7pz:active,.plugin-DoorLabelPlugin-cnt--customBrand.svelte-wpy7pz.svelte-wpy7pz:focus{background:rgba(0, 0, 0, 0.5);color:rgba(249, 234, 193, 0.5)}')}function Mp(i){let t,e,n,o,s,r,a,l;return{c(){t=B("div"),e=B("div"),n=B("span"),n.textContent=`${i[8]}`,o=$(),s=B("i"),y(n,"class","plugin-DoorLabelPlugin-txt svelte-wpy7pz"),y(s,"class","plugin-DoorLabelPlugin-icon svelte-wpy7pz"),y(e,"class",r=Ie(Oe.default("plugin-DoorLabelPlugin-cnt",i[0].toward))+" svelte-wpy7pz"),y(e,"style",`transform: ${i[6]||"initial"};pointer-events: ${i[5]?"auto":"none"};opacity: ${i[5]?1:0}`),y(e,"data-camera-toward",i[7]),y(t,"style",`left: ${i[3]||0}%;top: ${i[4]||0}%;opacity: ${i[5]?1:0}`),y(t,"class","plugin-DoorLabelPlugin-item svelte-wpy7pz")},m(c,u){T(c,t,u),V(t,e),V(e,n),V(e,o),V(e,s),i[10](t),a||(l=me(e,"click",i[9]),a=!0)},p(c,[u]){u&1&&r!==(r=Ie(Oe.default("plugin-DoorLabelPlugin-cnt",c[0].toward))+" svelte-wpy7pz")&&y(e,"class",r)},i:X,o:X,d(c){c&&L(t),i[10](null),a=!1,l()}}}function Lp(i,t,e){let{props:n}=t,{onClick:o}=t,s,{left:r,top:a,inSight:l,transform:c,panoIndex:u,cameraToward:d,name:h}=n;const m=()=>{if(!r||!a||!l||!s)return;const A=s.current.clientWidth/window.innerWidth*100,v=s.current.clientHeight/window.innerHeight*100;r<=A/2||r>=100-A/2||a<=v/2||a>=100-v/2},g=A=>{o&&o()};function p(A){Ve[A?"unshift":"push"](()=>{s=A,e(2,s)})}return i.$$set=A=>{"props"in A&&e(0,n=A.props),"onClick"in A&&e(1,o=A.onClick)},m(),[n,o,s,r,a,l,c,d,h,g,p]}class Sp extends oe{constructor(t){super(),ie(this,t,Lp,Mp,ne,{props:0,onClick:1},Dp)}}function Tp(i,t){const e=Math.abs(i.top+i.height/2-t.top-t.height/2),n=Math.abs(i.left+i.width/2-t.left-t.width/2),o=(i.height+t.height)/2,s=(i.width+t.width)/2;return!(e>o&&n>s)}function zp(i){const{camera:t}=i,e=t.getWorldDirection(new j.Vector3);let n=Math.atan(e.z/e.x)*180/Math.PI,o="";return e.x<0&&(n+=180),n<0&&(n+=360),n>315||n<=45?o="right":n>45&&n<=135?o="back":n>135&&n<=225?o="left":n>225&&n<=315&&(o="forward"),o}function Bp(i,t){return Math.sqrt(Math.pow(i.z-t.z,2)+Math.pow(i.x-t.x,2))}function Vp(i){const t=Math.PI/4;return i>-t&&i<=t?"left":i>t*3||i<=-t*3?"right":i>-t*3&&i<=-t?"forward":i>t&&i<=t*3?"back":""}const jp={userAction:!0};class Op extends xp{constructor(e){super(e);f(this,"MinVisibledistance",1.8);f(this,"MaxVisibledistance",5);f(this,"OffsetHeight",-1.3);f(this,"rooms");f(this,"floorplanServerData");f(this,"doorLabelItems");f(this,"visibleLabelMap",new Map);f(this,"labelItems",[]);f(this,"doorLabels");f(this,"roomObservers");f(this,"loadData",(e,n)=>{n&&(this.MaxVisibledistance=n.MaxVisibledistance,this.MinVisibledistance=n.MinVisibledistance,this.OffsetHeight=n.OffsetHeight),this.doorLabelItems&&this.doorLabelItems.length>0&&this.doorLabelItems.forEach(o=>{o.$destroy()}),this.labelItems=[],this.doorLabels=[],this.doorLabelItems=[],this.floorplanServerData=e,typeof this.five.ready=="function"?this.five.ready().then(()=>this.initData()):this.five.once("panoArrived",()=>{this.initData()})});f(this,"initRoomObservers",()=>{var s,r;const e=this.floorplanServerData.computed_data.floor_datas||[],o=(((r=(s=this.five)==null?void 0:s.work)==null?void 0:r.observers)||[]).map(a=>{const l=a.panoIndex,c=a.floorIndex,u=e==null?void 0:e.find(d=>d.floor_index===c);if(u){const d=u.rooms.find(h=>h.observer_indexs.includes(l));if(d)return{panoIndex:l,floorIndex:c,name:d.name}}}).filter(Boolean);this.roomObservers=o});f(this,"hideAllLabels",()=>{this.labelItems.forEach(e=>{e.visible=!1,e.inSight=!1}),this.render()});f(this,"fixDoorVisibleAndPosition",()=>{this.initRoomObservers();const{panoIndex:e}=this.five;if(!this.visible||this.five.model.empty||e===null||!this.roomObservers.find(a=>a.panoIndex===e))return;const n=this.roomObservers.find(a=>a.panoIndex===e),s=this.five.work.observers.find(a=>a.panoIndex===e).position.clone(),r=(()=>{if(this.visibleLabelMap.has(e))return this.visibleLabelMap.get(e);{const a=[];return this.doorLabels.forEach((l,c)=>{if(l.roomName===n.name)return;const u=l.position.clone(),d=u.distanceTo(s);if(d<this.MinVisibledistance||d>this.MaxVisibledistance)return;const h=new j.Raycaster,m=u.clone().sub(s).normalize();h.set(s,m);const[g]=this.five.model.intersectRaycaster(h);g&&g.distance+.1<d||a.push(c)}),this.visibleLabelMap.set(e,a),a}})();this.labelItems.forEach((a,l)=>{a.visible=r.includes(l)}),this.fixDoorPosition()});f(this,"fixDoorPosition",()=>{var u,d,h,m,g,p,A,v,b,w,k,I;const{panoIndex:e,camera:n}=this.five;if(e===null)return;if(this.five.currentMode!=="Panorama")return this.hideAllLabels();const o=this.five.getElement(),s=o.clientWidth,r=o.clientHeight,a=n.getWorldDirection(new j.Vector3),l=[],c=[...this.labelItems];if(c.forEach((P,M)=>{if(P.visible){const x=n.position.distanceTo(P.position),F=P.position.clone().add(new j.Vector3(0,this.OffsetHeight,0)),R=F.clone().sub(n.position).normalize().angleTo(a),S=F.clone().project(n),O=(S.x+1)/2.2*100,G=(-S.y+1)/2.2*100,W=O>=0&&O<=100&&G>=0&&G<=100&&x>this.MinVisibledistance&&x<=this.MaxVisibledistance;P.left=O,P.top=G,P.inSight=W&&R<Math.PI/2,P.cameraToward=zp(this.five),W?l.push({disFromCameraToLabel:x,left:O,top:G,index:M}):P.transform="translate(-50%, -50%)"}else P.inSight=!1}),l.length>1){let P=0;l.sort((M,x)=>x.disFromCameraToLabel-M.disFromCameraToLabel);for(let M=1;M<l.length;M++){const{index:x,left:F,top:N}=l[M-1],{index:R,left:S,top:O}=l[M],G=this.container.children[x],W=this.container.children[R];if(!G||!W)return;const Y={left:s*F/100,top:r*N/100,width:(h=(d=(u=G.children)==null?void 0:u[0])==null?void 0:d.clientWidth)!=null?h:0,height:(p=(g=(m=G.children)==null?void 0:m[0])==null?void 0:g.clientHeight)!=null?p:0},_={left:s*S/100,top:r*O/100,width:(b=(v=(A=W.children)==null?void 0:A[0])==null?void 0:v.clientWidth)!=null?b:0,height:(I=(k=(w=W.children)==null?void 0:w[0])==null?void 0:k.clientHeight)!=null?I:0};Tp(Y,_)&&(P++,c[x].transform=`translate(-50%, ${(P-1)*100-50}%)`,c[R].transform=`translate(-50%, ${P*100-50}%)`)}}this.labelItems=c,this.render()});f(this,"onClick",(e,n)=>{if(!this.roomObservers)return;const{work:o}=this.five;let s,r,a=1/0;for(const l of o.observers)if(this.roomObservers.find(u=>u.panoIndex===l.panoIndex&&u.name===e)){const u=l.standingPosition,d=n.distanceTo(u);d<a&&(s=l.panoIndex,r=u.clone().sub(n).normalize(),a=d)}if(r!==null&&s!==null){const l={};if(a>0){const u=new j.Vector3(0,0,-1),d=r.clone(),h=new j.Quaternion;h.setFromUnitVectors(u,d);const m=new j.Euler;m.setFromQuaternion(h,"YXZ"),l.longitude=m.y}this.five.emit("wantsToMoveToPano",s,{},!0)||this.five.moveToPano(s,{longitude:l.longitude})}});f(this,"initData",()=>{var s;this.doorLabels=[];const e=this.five.panoIndex,n=this.floorplanServerData.computed_data.observers[e].floor_index,o=n!==void 0&&((s=this.floorplanServerData.computed_data.floor_datas[n])==null?void 0:s.rooms);this.rooms=o,this.rooms&&this.rooms.length>0&&this.rooms.forEach(r=>{var c;const a=(c=this.floorplanServerData.computed_data.doors)==null?void 0:c.filter(u=>!!(u&&u.name===r.name)),l=this.five.work.observers.filter((u,d)=>!!r.observer_indexs.find(h=>h===d));a&&a.forEach(u=>{const d=u.position;let h=1/0,m;l.forEach(p=>{const A=p.standingPosition,v={x:A.x,y:A.y,z:A.z},b=Bp(d,v);b<h&&(h=b,m=v)}),m&&(d.y=m.y+.01);const g=new j.Vector3(d.x,d.y,d.z);g.add(new j.Vector3(-.2,1.8,0).applyEuler(new j.Euler(0,u.rad,0))),this.doorLabels.push({roomName:r.name,name:u.name,position:g,toward:Vp(u.rad)})})}),this.labelItems=this.doorLabels.map(r=>fe(Q({},r),{left:0,top:0,visible:!1,inSight:!1,transform:"",cameraToward:""})),this.five.on("wantsToMoveToPano",this.hideAllLabels),this.five.on("modelLoaded",this.fixDoorVisibleAndPosition),this.five.on("panoArrived",this.fixDoorVisibleAndPosition),this.five.on("initAnimationEnded",this.fixDoorPosition),this.five.on("cameraUpdate",this.fixDoorPosition),this.five.on("mouseWheel",this.fixDoorPosition),this.five.on("pinchGesture",this.fixDoorPosition),this.fixDoorVisibleAndPosition()})}stateChangedCallback(e,n){if(this.hooks.hasListener("stateChange")){const o={state:this.state,prevState:e,userAction:n?n.userAction:jp.userAction};this.hooks.emit("stateChange",o)}}render(){if(!this.enabled){this.doorLabelItems&&this.doorLabelItems.length>0&&this.doorLabelItems.forEach(e=>{e==null||e.$destroy()}),this.doorLabels=void 0;return}this.doorLabelItems&&this.doorLabelItems.forEach(e=>{e.$destroy()}),this.doorLabelItems=[],this.labelItems.forEach(e=>{this.doorLabelItems.push(new Sp({target:this.container,props:{props:e,onClick:()=>{this.onClick(e.name,e.position)}}}))})}initState(){return{enabled:!0,visible:!0}}dispose(){this&&this.five&&(this.five.off("wantsToMoveToPano",this.hideAllLabels),this.five.off("modelLoaded",this.fixDoorVisibleAndPosition),this.five.off("panoArrived",this.fixDoorVisibleAndPosition),this.five.off("initAnimationEnded",this.fixDoorPosition),this.five.off("cameraUpdate",this.fixDoorPosition),this.five.off("mouseWheel",this.fixDoorPosition),this.five.off("pinchGesture",this.fixDoorPosition),super.dispose())}}const Rp=i=>new Op(i),Qp=2,Fp=3,Hp=3,Gp=2;function Wp(i,t){var r,a,l;if(i.length<2)return console.warn("positionList length must be greater than 1"),[];const e=(r=t==null?void 0:t.unitWidth)!=null?r:.5,n=(a=t==null?void 0:t.unitHeight)!=null?a:.5,o=(l=t==null?void 0:t.skipPanoIndexMesh)!=null?l:!1,s=new E.CatmullRomCurve3(i,!1,"catmullrom",1);if(o){const c=Math.ceil(s.getLength()/n*1.5),u=s.getPoints(c),d=[];let h=0;const m=i;return m.forEach((g,p)=>{let A=0,v=99999999;u.forEach((P,M)=>{const x=P.distanceTo(g);x<v&&(A=M,v=x)});const b=u[A+1],w=b==null?void 0:b.distanceTo(g),k=u[A-1],I=k==null?void 0:k.distanceTo(g);if(A>h&&A-h>1){let P=A;k!==void 0&&I>.8&&(P=A+1),k!==void 0&&I>.2&&I<.3?P=A:v>.2&&v<.3&&(P=A+1);let M=h;if(b!==void 0&&w>.2&&w<.3?M=h+1:v>.2&&v<.3&&(M=h),u[M]&&u[M+1]){const N=m[p-1];if(N)if(N.equals(u[M]))M+=1;else{const R=new j.Vector3().subVectors(u[M+1],u[M]),S=new j.Vector3().subVectors(N,u[M]);R.angleTo(S)<Math.PI/2&&(M+=1)}}if(P<M||P-M<=1)return;const x=u.slice(M,P),F=er(x,e,n);d.push(F),h=A}}),d}else{const c=Math.ceil(s.getLength()),u=s.getPoints(c);return[er(u,e,n)]}}function er(i,t,e){const n=t/2,o=e/t,s=i.length,r=Cc.default(i.map(v=>[v.x,v.z])),l=(i.length-1)*Qp*Fp,c=2*s,u=c*Hp,d=c*Gp,h=new Uint32Array(l),m=new Float32Array(u),g=new Float32Array(d);i.forEach((v,b)=>{});let p=0;for(let v=0;v<i.length;v++){const[b,w]=r[v][0],k=i[v],{x:I,y:P,z:M}=k,x=new j.Vector3(I+b*n,P+.05,M+w*n);m[v*6+0]=x.x,m[v*6+1]=x.y,m[v*6+2]=x.z;const F=new j.Vector3(I-b*n,P+.05,M-w*n);m[v*6+3]=F.x,m[v*6+4]=F.y,m[v*6+5]=F.z,p+=v>0?i[v-1].clone().sub(i[v]).length():0;const N=p/t/o;g[v*4+0]=0,g[v*4+1]=N,g[v*4+2]=1,g[v*4+3]=N,v!==i.length-1&&(h[v*6+0]=v*2+0,h[v*6+1]=v*2+2,h[v*6+2]=v*2+1,h[v*6+3]=v*2+2,h[v*6+4]=v*2+3,h[v*6+5]=v*2+1)}const A=new E.BufferGeometry;return A.setAttribute("position",new E.BufferAttribute(m,3)),A.setAttribute("uv",new E.BufferAttribute(g,2)),A.setIndex(new E.BufferAttribute(h,1)),A}function _p(i){const t=new E.TextureLoader().load(i.textureUrl);return t.wrapS=t.wrapT=E.RepeatWrapping,t.encoding=E.sRGBEncoding,t.minFilter=E.LinearFilter,new E.MeshBasicMaterial({color:16777215,map:t,transparent:!0,opacity:.8})}function Np(i){return!Et(i)}function Et(i){return i!=null}const Il="v1.1.0",kl="GuideLinePlugin",ao=`${kl}@${Il}`,tr=i=>`${ao}--${i}`;class xl extends Bt{constructor(e,n){super(e,n);f(this,"state",{visible:!1,enabled:!0,disposed:!1});f(this,"data");f(this,"linesGroup");f(this,"disposedErrorLog",()=>{console.error(`${ao} is disposed`)});f(this,"actionWhenEnabled",e=>{if(this.state.enabled)return e()});Object.assign(window,{[`__${kl}_DEBUG__`]:this})}load(e,n,o=!0){return H(this,null,function*(){const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,r=yield this.formatData(e);this.hooks.emit("dataChange",r,s),this.data=r,this.linesGroup&&this.five.scene.remove(this.linesGroup);const a=this.getLinesGroup(r.routes,r.config);!a||(this.linesGroup=a,yield this.waitFiveModelLoaded(),this.five.scene.add(a),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),n&&this.setState(n),this.five.needsRender=!0,this.hooks.emit("dataLoaded",r),console.info(`${ao} loaded`,r))})}formatData(e){return H(this,null,function*(){return typeof e=="object"&&e!==null&&e.version&&e.data?e.data:e})}show(e){return H(this,null,function*(){this.setState({visible:!0},e)})}hide(e){return H(this,null,function*(){this.setState({visible:!1},e)})}enable(e){this.setState({enabled:!0},e)}disable(e){this.setState({enabled:!1},e)}dispose(){this.setState({disposed:!0})}setState(e,n){var s;if(this.state.disposed)return this.disposedErrorLog();const o=Q({},this.state);this.state=Q(Q({},this.state),e),e.disposed!==void 0&&e.disposed!==o.disposed&&e.disposed&&this.handleDispose(),e.visible!==void 0&&e.visible!==o.visible&&this.handleVisible(e.visible,n==null?void 0:n.userAction),e.enabled!==void 0&&e.enabled!==o.enabled&&this.handleEnable(e.enabled,n==null?void 0:n.userAction),nt(o,this.state,{deep:!0})||(this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:(s=n==null?void 0:n.userAction)!=null?s:!0}),this.five.needsRender=!0)}handleEnable(e,n=!0){this.linesGroup&&(e?(this.five.scene.add(this.linesGroup),this.actionWhenEnabled(()=>this.hooks.emit("enable",{userAction:n}))):(this.five.scene.remove(this.linesGroup),this.hooks.emit("disable",{userAction:n})))}handleVisible(e,n=!0){this.linesGroup&&(e?(this.linesGroup.visible=!0,this.actionWhenEnabled(()=>this.hooks.emit("show",{userAction:n}))):(this.linesGroup.visible=!1,this.actionWhenEnabled(()=>this.hooks.emit("hide",{userAction:n}))))}handleDispose(){this.linesGroup&&this.five.scene.remove(this.linesGroup),this.hooks.emit("dispose")}getLinesGroup(e,n){const o=e.map(r=>this.getLine(r,n)).filter(Et),s=new E.Group;if(s.name=tr("route-group"),o.length!==0)return s.add(...o),s}getLine(e,n){var l,c,u,d,h,m,g,p;const o=new E.Group,s=e.panoIndexList.map(A=>{var v;return(v=this.five.work.observers[A])==null?void 0:v.standingPosition}).filter(Et),r=Wp(s,{skipPanoIndexMesh:(c=(l=e.skipPanoIndexMesh)!=null?l:n==null?void 0:n.skipPanoIndexMesh)!=null?c:!0,unitWidth:(d=(u=e.unitWidth)!=null?u:n==null?void 0:n.unitWidth)!=null?d:.6,unitHeight:(m=(h=e.unitHeight)!=null?h:n==null?void 0:n.unitHeight)!=null?m:.4});if(!r)return;const a=_p({textureUrl:(p=(g=e.arrowTextureUrl)!=null?g:n==null?void 0:n.arrowTextureUrl)!=null?p:this.staticPrefix+"/release/web/arrow6.b6ce0c62.png"});return r.forEach(A=>{const v=new E.Mesh(A,a);v.name=tr("route-line-mesh"),o.add(v)}),o}waitFiveModelLoaded(){return H(this,null,function*(){return new Promise(e=>{if(this.five.model.loaded){e();return}this.five.once("modelLoaded",()=>{e()})})})}}f(xl,"lasestVersion",Il);const Dl=(i,t)=>new xl(i,t);function nr(i){const t=Math.abs(Math.cos(i.latitude));return new E.Vector3(-Math.sin(i.longitude)*t,-Math.sin(i.latitude),-Math.cos(i.longitude)*t)}function Xp(i,t){const e=nr(i),n=nr(t);return e.angleTo(n)}const Yp=i=>H(exports,null,function*(){try{i().then(()=>{},()=>{}).catch(()=>{})}catch(t){}}),Nn=Math.PI*2;function Up(i){return i>=0&&i<Nn?i:(i%Nn+Nn)%Nn}function qp(i){return{longitude:Up(-Math.atan2(i.x,-i.z)),latitude:-Math.asin(i.y/1)}}function Jp(i,t,e,n){const o=-i/e,s=i;return o*n+s}function Zp(i){return new Promise(t=>{setTimeout(()=>{t()},i)})}const Ml="v1.0.6",Ll="CruisePlugin",Ii=`${Ll}@${Ml}`,ir=()=>{console.error(`${Ii} is disposed`)},Kp=()=>{console.warn(`${Ii} is disabled`)},$p=()=>{console.error(`${Ii} is disabled`)},Fi=new Map;class ko extends Bt{constructor(e,n){super(e,n);f(this,"state",{visible:!0,enabled:!0,disposed:!1,playing:!1,speed:1,config:{speedConfig:{rotateSpeed:.001,rotateSpeedUnit:"rad/ms",moveSpeed:.002,moveSpeedUnit:"m/ms"}}});f(this,"data");f(this,"config");f(this,"privateState",{playing:!1,currentPlayQueue:[],currentPlayKeyframe:null,broke:!1,disposers:[],modeChanging:!1});f(this,"GuideLine");this.config=n,Object.assign(window,{[`__${Ll}_DEBUG__`]:this});const o=this.setFiveLinearUpdateCamera.bind(this),s=this.setFiveOriginUpdateCamera.bind(this);this.hooks.on("play",o),this.hooks.on("broke",s),this.hooks.on("end",s),this.hooks.on("pause",s),this.privateState.disposers.push(()=>{this.hooks.off("play",o),this.hooks.off("broke",s),this.hooks.off("end",s),this.hooks.off("pause",s)})}load(e,n,o){return H(this,null,function*(){var u,d,h,m,g;if(this.state.disposed)return ir();this.privateState.fiveOriginGetProgress||(d=(u=this.five.controller)==null?void 0:u.cameraMotion)!=null&&d.getProgress||(yield this.waitFiveLoaded(),this.privateState.fiveOriginGetProgress=(m=(h=this.five.controller)==null?void 0:h.cameraMotion)==null?void 0:m.getProgress),this.clear();const s=this.data?JSON.parse(JSON.stringify(this.data)):void 0,r=yield this.formatData(e);this.data=r,this.hooks.emit("dataChange",r,s);let a=[],l;const c=this.data.keyframes.filter(p=>p.data.panoIndex!==void 0);c.filter((p,A)=>{var v;return p.data.panoIndex!==((v=c[A-1])==null?void 0:v.data.panoIndex)}).map(p=>p.data.panoIndex).forEach(p=>{var v,b;const A=(v=this.five.work.observers[p])==null?void 0:v.floorIndex;if(A!==void 0)if(l===A){const w=a.length-1;a[w]=[...(b=a[w])!=null?b:[],p]}else{l=A;const w=a.length;a[w]=[p]}}),this.GuideLine||(this.GuideLine=Dl(this.five,this.config)),(g=this.GuideLine)==null||g.load({routes:a.map(p=>({panoIndexList:p})),config:r.guildPluginOptions}),this.setState({playing:!1}),this.handleVisible(this.state.visible),this.handleEnable(this.state.enabled),this.changePlayState(this.state.playing),this.changeSpeed(this.state.speed),n&&this.setState(n,{userAction:o}),console.info(`${Ii} loaded`,r),this.hooks.emit("dataLoaded",r)})}play(e){this.setState({playing:!0},e)}playFrom(e){const{index:n,id:o,userAction:s}=e;this.state.playing&&this.setState({playing:!1},{userAction:s}),this.setState({playing:!0},{userAction:s,playFromIndex:n,playFromId:o})}playFromStart(e){return this.playFrom(fe(Q({},e),{index:0}))}pause(e){this.setState({playing:!1},e)}show(e){return H(this,null,function*(){this.setState({visible:!0},e)})}hide(e){return H(this,null,function*(){this.setState({visible:!1},e)})}enable(e){this.setState({enabled:!0},e)}disable(e){this.setState({enabled:!1},e)}dispose(){this.setState({disposed:!0})}setState(e,n){var s;if(this.state.disposed)return ir();if(!this.state.enabled&&e.enabled!==!0&&e.disposed!==!0)return $p();const o=Q({},this.state);this.state=Q(Q({},this.state),e),e.disposed!==void 0&&e.disposed!==o.disposed&&e.disposed&&this.handleDispose(),e.visible!==void 0&&e.visible!==o.visible&&this.handleVisible(e.visible,n==null?void 0:n.userAction),e.enabled!==void 0&&e.enabled!==o.enabled&&this.handleEnable(e.enabled,n==null?void 0:n.userAction),e.playing!==void 0&&e.playing!==o.playing&&this.changePlayState(e.playing,n),e.speed!==void 0&&e.speed!==o.speed&&this.changeSpeed(e.speed,n==null?void 0:n.userAction),nt(o,this.state,{deep:!0})||this.hooks.emit("stateChange",{state:this.state,prevState:o,userAction:(s=n==null?void 0:n.userAction)!=null?s:!0})}formatData(e){return H(this,null,function*(){this.five.work||(yield this.waitFiveLoaded());const n=this.five.work.observers,o=(()=>{const s=e;return typeof s=="object"&&s!==null&&s.version&&s.data?s.data:s})();if(o.keyframes)return{keyframesId:We(),keyframes:o.keyframes.map((s,r)=>{var c;const a=o.keyframes[r+1],l=(()=>!a||a.start===void 0||s.end===void 0?0:a.start-s.end)();return fe(Q({id:(c=s.uuid)!=null?c:We(),moveIndex:r,stay:l,index:r},s),{guildPluginOptions:o.guildPluginOptions})})};if(o.panoIndexList){let s=[];const{moveEffect:r,moveToFirstPanoEffect:a,moveToFirstPanoDuration:l}=o;return this.privateState.moveToFirstPanoEffect=a,this.privateState.moveToFirstPanoDuration=l,o.panoIndexList.forEach((c,u)=>{const d=(()=>{var A,v,b,w;const h=o.panoIndexList.slice(u).find(k=>k!==c);if(h===void 0)return;const m=(A=n[c])==null?void 0:A.position,g=(v=n[h])==null?void 0:v.position;if(!g||!m||((b=n[c])==null?void 0:b.floorIndex)!==((w=n[h])==null?void 0:w.floorIndex))return;const p=new E.Vector3().subVectors(g,m);return qp(p.normalize())})();o.moveType===void 0||o.moveType==="justMove"?s.push({moveIndex:u,stay:o.stay,data:Q({effect:"Move",panoIndex:c,moveEffect:r},d!=null?d:{})}):o.moveType==="moveAndRotate"&&(s.push({moveIndex:u,stay:o.stay,data:{effect:"Move",panoIndex:c,moveEffect:r}}),d&&s.push({moveIndex:u,stay:o.stay,data:Q({effect:"Rotate",panoIndex:c},d)}))}),{keyframesId:We(),keyframes:s.map((c,u)=>Q({id:We(),index:u},c)),guildPluginOptions:o.guildPluginOptions}}else throw new Error("format error: data no keyframes or no panoIndexList")})}handleEnable(e,n=!0){var o,s;e?((o=this.GuideLine)==null||o.enable(),this.hooks.emit("enable",{userAction:n})):((s=this.GuideLine)==null||s.disable(),this.changePlayState(!1,{userAction:n}),this.hooks.emit("disable",{userAction:n})),this.state.enabled=e}handleVisible(e,n=!0){var o,s;e?((o=this.GuideLine)==null||o.show(),this.actionIfStateIsEnabled(()=>this.hooks.emit("show",{userAction:n}))):((s=this.GuideLine)==null||s.hide(),this.actionIfStateIsEnabled(()=>this.hooks.emit("hide",{userAction:n}))),this.state.visible=e}changePlayState(e,n){this.actionIfStateIsEnabled(()=>{var o;return this.hooks.emit("playStateChange",e?"playing":"pause",{userAction:(o=n==null?void 0:n.userAction)!=null?o:!0})}),e?this.handlePlay(n):this.handlePause(n),this.state.playing=e}handlePlay(e){return H(this,null,function*(){var m;const{data:n,state:o,privateState:s,hooks:r}=this;if(s.playing||!(n!=null&&n.keyframes)||(n==null?void 0:n.keyframes.length)===0)return;const a=We();s.playId=a,s.playing=!0,s.broke=!1;const l=n.keyframes,c=this.getPauseData();(e==null?void 0:e.notEmitEvent)!==!0&&r.emit("play",{userAction:(m=e==null?void 0:e.userAction)!=null?m:!0});let u=!1;const h=yield(()=>H(this,null,function*(){var g,p;if((e==null?void 0:e.playFromIndex)!==void 0)return e.playFromIndex;if((e==null?void 0:e.playFromId)!==void 0)return(g=this.data)==null?void 0:g.keyframes.findIndex(A=>A.id===e.playFromId);if(c!=null&&c.keyframeId){const A=(p=this.data)==null?void 0:p.keyframes.find(v=>v.id===c.keyframeId);if(c!=null&&c.fiveState&&(yield this.move(c.fiveState,{moveEffect:s.moveToFirstPanoEffect,duration:s.moveToFirstPanoDuration})),A){if(A.data.effect==="Move")return A.index;if(A.data.effect==="Rotate"){const v=c.duration!==void 0?c.duration*(1-c.playedProgress):void 0;return yield this.playKeyframe(A,{duration:v}),u=!0,A.index+1}}}}))();this.clearPauseData();for(const g of l){if(s.broke||!o.playing||!s.playing||a!==s.playId)return;if(!(h!==void 0&&g.index<h))try{r.emit("playIndexChange",g.index,g),yield this.playKeyframe(g,{moveEffect:u===!1?s.moveToFirstPanoEffect:void 0,duration:u===!1&&typeof s.moveToFirstPanoDuration=="number"?s.moveToFirstPanoDuration:void 0}),g.stay&&(yield Zp(g.stay)),u===!1&&(u=!0)}catch(p){return Promise.resolve("broke")}}o.playing&&a===s.playId&&(this.setState({playing:!1},{userAction:!1}),r.emit("end"),this.clearPauseData())})}handlePause(e){var r;const{state:n,privateState:o,hooks:s}=this;n.playing=!1,o.playing!==!1&&(o.playing=!1,this.setPauseData(),o.broke||this.forceInteruptUpdateCamera(),(e==null?void 0:e.notEmitEvent)!==!0&&s.emit("pause",{userAction:(r=e==null?void 0:e.userAction)!=null?r:!0}))}playKeyframe(e,n){return H(this,null,function*(){var s;const{privateState:o}=this;return((s=this.privateState.currentPlayKeyframe)==null?void 0:s.keyframe.id)!==e.id&&(this.privateState.currentPlayKeyframe={keyframe:e}),o.currentPlayQueue.push(this.getPlayPromise(e,n)),this.actionPromiseQueue()})}addInterruptListener(e){const n=()=>{this.privateState.modeChanging||e()},o=e;return this.five.once("gesture",o),this.five.once("wantsChangeMode",n),()=>{this.five.off("gesture",o),this.five.once("wantsChangeMode",n)}}getPlayPromise(o){return H(this,arguments,function*(e,n={}){var r;const s=e.data;if(n.duration=(r=n.duration)!=null?r:e.start!==void 0&&e.end!==void 0?e.end-e.start:void 0,!!s)return new Promise((a,l)=>{let c=!1;this.addInterruptListener(()=>{if(!c)return this.hooks.emit("broke"),this.privateState.broke=!0,this.setState({playing:!1}),c=!0,l(new Error("play is interupted"))});try{if(c)return;const u=()=>{a(),c=!0};switch(s.effect){case"Move":this.move(s,n).then(u);break;case"Rotate":this.rotate(s,n).then(u);break;default:this.rotate(s,n).then(u)}}catch(u){}})})}actionPromiseQueue(){return H(this,null,function*(){const{privateState:e}=this;return new Promise((n,o)=>{if(e.currentPlayQueue.length===0){n();return}const s=e.currentPlayQueue.shift();if(!s){n();return}s.then(n,o)}).then(()=>e.currentPlayQueue.length===0?Promise.resolve():this.actionPromiseQueue())})}move(e,n){return H(this,null,function*(){if(e.mode&&e.mode!==this.five.currentMode)yield this.changeMode(e);else if(e.panoIndex!==this.five.panoIndex)yield this.changePano(e,n);else return Promise.resolve()})}rotate(e,n){return H(this,null,function*(){if(e.mode&&e.mode!==this.five.currentMode)yield this.changeMode({mode:e.mode,panoIndex:e.panoIndex});else if(e.panoIndex&&e.panoIndex!==this.five.panoIndex)return yield this.changePano(e,n);yield this.updateCamera(e,n)})}updateCamera(o){return H(this,arguments,function*(e,n={}){const{five:s,privateState:r,state:a}=this,l=(()=>{var m,g;const d=(m=a.config)==null?void 0:m.speedConfig,h=(g=e.rotateSpeed)!=null?g:d==null?void 0:d.rotateSpeed;if((d==null?void 0:d.rotateSpeedUnit)===void 0)return h;if(h!==void 0)return d.rotateSpeedUnit==="rad/ms"?h:h/1e3})(),c=(()=>{if(n.duration)return n.duration;if(l){const d=this.five.getCurrentState();return Xp(d,e)/l}return 800})();r.currentPlayKeyframe&&(r.currentPlayKeyframe.originDuration=c);const u=this.getSpeededDuration(c);return new Promise(d=>{Yp(()=>s.updateCamera(e,u)),setTimeout(()=>d(),u)})})}changePano(e,n){return H(this,null,function*(){const{five:o,privateState:s,state:r}=this;if(typeof e.panoIndex!="number"||e.panoIndex===o.panoIndex)return;const a=o.getCurrentState().mode!=="Panorama";a&&(this.privateState.modeChanging=!0);const l=(()=>{var h,m;const u=(h=r.config)==null?void 0:h.speedConfig,d=(m=e.moveSpeed)!=null?m:u==null?void 0:u.moveSpeed;if((u==null?void 0:u.moveSpeedUnit)===void 0)return d;if(d!==void 0)return u.moveSpeedUnit==="m/ms"?d:d/1e3})(),c=(()=>{if(n!=null&&n.duration)return n.duration;if(l&&typeof o.panoIndex=="number"&&typeof e.panoIndex=="number"){const u=o.work.observers[o.panoIndex].position,d=o.work.observers[e.panoIndex].position;return u.distanceTo(d)/l}return 800})();s.currentPlayKeyframe&&(s.currentPlayKeyframe.originDuration=c),yield new Promise(u=>{var d,h,m;o.moveToPano(e.panoIndex,{latitude:e.latitude,longitude:e.longitude,fov:e.fov,duration:this.getSpeededDuration(c),effect:(m=(h=n==null?void 0:n.moveEffect)!=null?h:(d=this.state.config)==null?void 0:d.moveEffect)!=null?m:e.moveEffect,moveCancelCallback:()=>u(),moveEndCallback:()=>u()}),a&&o.once("panoArrived",()=>u())}),a&&(this.privateState.modeChanging=!1)})}changeSpeed(e,n=!0){const{state:o,privateState:s,hooks:r}=this,{currentPlayKeyframe:a}=s;if(r.emit("speedChange",e,{userAction:n}),o.playing&&a)try{const l=a.originDuration!==void 0?a.originDuration*(1-this.getProgress()):void 0,c=this.playKeyframe(a.keyframe,{duration:l});s.currentPlayQueue.push(c)}catch(l){}}getSpeededDuration(e){return e/this.state.speed}getProgress(){return this.five.controller.cameraMotion.progress}changeMode(e,n){return H(this,null,function*(){e.mode&&e.mode!==this.five.currentMode&&(this.privateState.modeChanging=!0,yield this.five.changeMode(e.mode,e,n),this.privateState.modeChanging=!1)})}forceInteruptUpdateCamera(){this.five.updateCamera({},0)}getPauseData(){var e,n;if((e=this.data)!=null&&e.keyframesId)return Fi.get((n=this.data)==null?void 0:n.keyframesId)}setPauseData(){var e,n,o,s;if((e=this.data)!=null&&e.keyframesId)return Fi.set((n=this.data)==null?void 0:n.keyframesId,{keyframeId:(o=this.privateState.currentPlayKeyframe)==null?void 0:o.keyframe.id,fiveState:this.five.getCurrentState(),duration:(s=this.privateState.currentPlayKeyframe)==null?void 0:s.originDuration,playedProgress:this.getProgress()})}clearPauseData(){var e,n;if((e=this.data)!=null&&e.keyframesId)return Fi.delete((n=this.data)==null?void 0:n.keyframesId)}clear(){this.clearPauseData(),this.privateState.currentPlayKeyframe=null}handleDispose(){var e,n;this.setState({playing:!1}),this.clearPauseData(),this.clear(),(e=this.GuideLine)==null||e.dispose(),this.GuideLine=void 0,(n=this.privateState.disposers)==null||n.forEach(o=>o==null?void 0:o())}actionIfStateIsEnabled(e,n){if(this.state.enabled)return e();n!=null&&n.warnLog&&Kp()}waitFiveLoaded(){return H(this,null,function*(){return new Promise(e=>{if(this.five.work){e();return}this.five.once("loaded",()=>{e()})})})}setFiveLinearUpdateCamera(){!this.privateState.fiveOriginGetProgress||(this.five.controller.cameraMotion.getProgress=e=>{const n=this.five.controller.cameraMotion,o=e-n.startTime;return o<0?0:o>=n.duration?1:1-Jp(1,n.startVelocity,n.duration,o)})}setFiveOriginUpdateCamera(){!this.privateState.fiveOriginGetProgress||(this.five.controller.cameraMotion.getProgress=this.privateState.fiveOriginGetProgress)}}f(ko,"PluginVersion",Ml);const eg=i=>new ko(i);function tg(i,t){t.forEach(e=>{const n=new E.SphereGeometry(.02,16,16),o=[],s=[new E.MeshBasicMaterial({color:16776960}),new E.MeshBasicMaterial({color:16711935}),new E.MeshBasicMaterial({color:16711680}),new E.MeshBasicMaterial({color:65535})];if(e.position.length===4)e.position.forEach((r,a)=>{const l=s[a],c=new E.Mesh(n,l);c.position.copy(qe(r)),o.push(c)});else{const r=s[0],a=new E.Mesh(n,r);a.position.copy(qe(e.position)),o.push(a)}o.forEach(r=>{r.material.depthTest=!1,i.scene.add(r)})})}const Me=i=>i;function Hi(i){if(i.length<3)return;const t=i.map(wn),e=t[1].clone().sub(t[0]),n=t[2].clone().sub(t[1]);return e.cross(n)}var Sl=(i=>(i.Audio="Audio",i.Text="Text",i.ImageText="ImageText",i.Image="Image",i.Video="Video",i.Link="Link",i.Sticker="Sticker",i.VRLink="VRLink",i.PanoLink="PanoLink",i.Marketing="Marketing",i.MediaPlane="MediaPlane",i.MediaModel="MediaModel",i.Custom="Custom",i.Unknown="Unknown",i))(Sl||{});function ng(i){if(i.length!==4)return!1;const[t,e,n,o]=i,s=t.distanceTo(e),r=e.distanceTo(n),a=n.distanceTo(o),l=o.distanceTo(t),c=t.distanceTo(n),u=e.distanceTo(o);return s===a&&r===l&&c===u}class Gi extends E.BufferGeometry{constructor(e,n){super();f(this,"name","QuadrangleGeometry");f(this,"points");this.points=e;const o=n!=null?n:ng(e)?64:1;if(e.length!==4){console.error("Invalid number of points, it's not a quadrangle");return}const[s,r,a,l]=e,[c,u,d,h]=[new E.Vector2(0,0),new E.Vector2(1,0),new E.Vector2(1,1),new E.Vector2(0,1)],m=[],g=[];m.push(...s.toArray()),g.push(...c.toArray());for(let A=1;A<o;A++)m.push(s.x+(r.x-s.x)*A/o,s.y+(r.y-s.y)*A/o,s.z+(r.z-s.z)*A/o),g.push(c.x+(u.x-c.x)*A/o,c.y+(u.y-c.y)*A/o);m.push(...r.toArray()),g.push(...u.toArray()),m.push(...a.toArray()),g.push(...d.toArray());for(let A=1;A<o;A++)m.push(a.x+(l.x-a.x)*A/o,a.y+(l.y-a.y)*A/o,a.z+(l.z-a.z)*A/o),g.push(d.x+(h.x-d.x)*A/o,d.y+(h.y-d.y)*A/o);m.push(...l.toArray()),g.push(...h.toArray());const p=[];for(let A=0;A<o;A++)p.push(A,A+1,o*2-A,A,o*2-A,o*2+1-A);this.setAttribute("position",new E.BufferAttribute(new Float32Array(m),3)),this.setAttribute("uv",new E.BufferAttribute(new Float32Array(g),2)),this.setIndex(new E.BufferAttribute(new Uint32Array(p),1))}}function ig(i,t){return new Promise((e,n)=>{const o=t!=null?t:document.createElement("video");o.preload="metadata",o.crossOrigin="anonymous",o.muted=!0,o.loop=!0,o.playsInline=!0,o.autoplay=!0,o.src=i;const s=new E.VideoTexture(o);s.minFilter=E.LinearFilter,s.magFilter=E.LinearFilter,s.encoding=E.sRGBEncoding,o.onloadedmetadata=()=>{e(s)}})}const og="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAKqADAAQAAAABAAAAKgAAAADUGqULAAAB0ElEQVRYCe2WSUoEQRBFLVHEiVZU1I03cKW38SSewRt4A5fiTty5cQIFR9pZQWkcUNSe2/Z9yISiSGxRkUAy4BGZSVX168gistraYsQKxArECsQKxApYqkDyU5lmsznMM+ZgAGpQhaUkSRbINgLJCXiCBtSgAkVYtGGIBTKj8AgKSVahDNvQa0IUkUG4Bx91BpLdBTOS/cgUIB3a+gMwI9mFzE3a0I3z5B4r292JzGVA8tSSZILMcUDyzIykthOZvYDk+V9Ktmz4yGzhOhV4/+5YU4N/hzqo0StX3Fg5TcnNlYvgs8bPsM4hkScHoyO46haRnGEYktQVI+4ypUYKyXtxyUu27JCceAMJvjo0HoM5CEZ7cPX7i013q3IWVV5r2aw/2TK+svWbPGU68KQCa6pYeus1V0X99quSfvtVSc39lmfz2mdbz32tg1dAJ0421AVs9E7/FxBSezrMmjI/gm5/nYmMkBq+TqBs7LNgTlZH6EnWlPmORdk+pHQipUNfTxtg7p3NIXWRMvXfoqusmXsNhpC6crIS1Zf9C6yAOdlxpK5BW18CiT7A/G93gE+P0FY/RoO+RWqS62YhB2r4YhlixArECsQKxArECvzjCnwAOr0wF44ggHAAAAAASUVORK5CYII=",Tl="data:image/png;base64,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",lo="data:image/png;base64,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",sg="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABcVBMVEUAAAAAAAD////////+/v45OTn////////39/fp6enPz8/7+/vw8PD+/v7x8fHc3NzHx8f////////+/v77+/vr6+v////7+/v5+fn////z8/P////////q6uqgoKD+/v79/f3m5ub+/v7////////////////39/f39/f////z8/P////t7e3s7Oz29vb////5+fn////h4eH////g4ODV1dX////////BwcH///////////+Ojo5zc3MlJSX////////////////////////7+/v////////////v7+/u7u7n5+f////39/f////09PT6+vr09PT+/v76+vr////5+fnv7+/09PTk5OT////////////////Jycn///++vr7///////+0tLT///9TU1P///8SEhL////////+/v76+vr////8/Pz39/ft7e3t7e36+vr////////X19fV1dX///+xsbF9fX1iYmL///////+K8mOEAAAAenRSTlMaAIDy8CD41cWRX9uk7Kl1VVEw6dWT/M/NvKyVkY475eWIgx0Z39rHv7axnZyZmIuKhn56emZjX1FEPTU0Kx4PCAX69fTgxcKkopWL7crJuri2sa6rnIyHhX54bVtZVU9NSUcsJSIcFROno6Hcwp+ekHVxbWhnRC8nDLc9s8oAAAOGSURBVEjHpdd3X9pAGAfwkBBDAoQmBJmWvUWWiIDIHoJb66x7a4d78Op7pBQ1J5DY33987vnyXEIu3CGy/0hvnDthM+l0hj3JScSudDKOdhNPpl1i8Ut624Gi6+trI3zW1tcdqGM7/SIC5/ZRR2SNJEm7JkHt7FAJjR18WIs40P3cAFxIOaIRna6ZOHxGunk+TDR1ukjUkSr0w86bcKShiz1OI4JMP8YAD9+4emM2Gm407IfIhzm0NxrhKNsLH4SvQ+RktyvUfZIMXYcPPsSFCcvY6EYW6ZPsxuiYZaLwAW5bDY70Da5paxjvm8d+UcjAUL/GzPtCnDF/mwFWhJ75Zs68x05gxxFRGQfa+RYXokHVCC4O4yOqYLTwBjNB+ncWEZnsbzrIvOLz4CW9g4jODn0ZPO/iZN0UmhaPp0Omq+Q/nLu6NO0hErJnurjKdTBzEdAhkqILXDAdbFkJ7EnDe4EVy198srpiwhE4X1RKDFOqviBwcNPK6gmPmeWlGDz+VdHqRPEVHo0tLTM8RpcX4G+flLe6kU/Cs1pYRnm8uriQhfoC+0ZDvbMLi6ttfO5fDCDCKFrvooAKAov+c4BZvy8EzaolCHRdIZ+fBThl9G0Ih1RCrBJWbPiMKYAZ409oMSqFWAktzJ9GBuDvRoVGOIQJMSas0CiM39u45v0M9tbaeLc6F5M+7dhcbRfgg+pcU/oNa85VDwDOzBtmpP9UKsN8BuCzeb1P+kPi08+fASyr6fVPUh/PJ72+xj/bZk5PSV0YlJ4z83iC4EipS5LkiAkeHxGcQerLwMARRzyW+QklhUgKpST8nXfYg+fHkjS89MPz0MFnhKdCSWpc8RBnPAZB3RUvLt7i3oob7f5juDzuikY81tjcHlcHg9xabdyUWDvF2ay3slecr1ptimNx9lhhs1bzXQxy5NZa6VMx9pS2Wt1H77cVjFartYvBdlDICDc0cbVa3Twd2NcOyuLwVqo+K1ebjgdcr0k+O1uXwThfl8vlhqm+99kASup5GINsYhhmG8d7UXzcBgo2e21cd9WlUll5/7G958ql8uxu7y0zS5SGSkOGBA51TRiGQAi232Y9v4kVQZGavpt6c6l3tLpNsc38gGOC01IeLg4Xi8NaLz1KkqO0VzvcTrFscYo4oLjiRAsKEXeJPRqxW0bsFWLGLVbiocyZSm5vbW0nU9BsIfyp/AGqAvfOkBaFawAAAABJRU5ErkJggg==";function Wi(i,t,e){if(i==="fill")return t;if(i==="contain"){const[n,o,s,r]=t,a=n.distanceTo(o),l=s.distanceTo(r),c=n.distanceTo(r),u=o.distanceTo(s),d=a,h=c,m=d/h;if(m>e){const p=h*e,A=new E.Vector3().subVectors(o,n).multiplyScalar((a-p)/2/a),v=new E.Vector3().subVectors(s,r).multiplyScalar((l-p)/2/l);return[n.clone().add(A),o.clone().sub(A),s.clone().sub(v),r.clone().add(v)]}else if(m<e){const p=d/e,A=new E.Vector3().subVectors(r,n).multiplyScalar((c-p)/2/c),v=new E.Vector3().subVectors(s,o).multiplyScalar((u-p)/2/u);return[n.clone().add(A),o.clone().add(v),s.clone().sub(v),r.clone().sub(A)]}else return t}else return t}function Ae(i,t){this._camera=i||null,this._domElement=t||document,this._raycaster=new E.Raycaster,this._selected=null,this._boundObjs={};var e=this;this._$onClick=function(){e._onClick.apply(e,arguments)},this._$onDblClick=function(){e._onDblClick.apply(e,arguments)},this._$onMouseMove=function(){e._onMouseMove.apply(e,arguments)},this._$onMouseDown=function(){e._onMouseDown.apply(e,arguments)},this._$onMouseUp=function(){e._onMouseUp.apply(e,arguments)},this._$onTouchMove=function(){e._onTouchMove.apply(e,arguments)},this._$onTouchStart=function(){e._onTouchStart.apply(e,arguments)},this._$onTouchEnd=function(){e._onTouchEnd.apply(e,arguments)},this._$onContextmenu=function(){e._onContextmenu.apply(e,arguments)},this._domElement.addEventListener("click",this._$onClick,!1),this._domElement.addEventListener("dblclick",this._$onDblClick,!1),this._domElement.addEventListener("mousemove",this._$onMouseMove,!1),this._domElement.addEventListener("mousedown",this._$onMouseDown,!1),this._domElement.addEventListener("mouseup",this._$onMouseUp,!1),this._domElement.addEventListener("touchmove",this._$onTouchMove,!1),this._domElement.addEventListener("touchstart",this._$onTouchStart,!1),this._domElement.addEventListener("touchend",this._$onTouchEnd,!1),this._domElement.addEventListener("contextmenu",this._$onContextmenu,!1)}Ae.prototype.destroy=function(){this._domElement.removeEventListener("click",this._$onClick,!1),this._domElement.removeEventListener("dblclick",this._$onDblClick,!1),this._domElement.removeEventListener("mousemove",this._$onMouseMove,!1),this._domElement.removeEventListener("mousedown",this._$onMouseDown,!1),this._domElement.removeEventListener("mouseup",this._$onMouseUp,!1),this._domElement.removeEventListener("touchmove",this._$onTouchMove,!1),this._domElement.removeEventListener("touchstart",this._$onTouchStart,!1),this._domElement.removeEventListener("touchend",this._$onTouchEnd,!1),this._domElement.removeEventListener("contextmenu",this._$onContextmenu,!1)};Ae.eventNames=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","contextmenu","touchstart","touchend"];Ae.prototype._getRelativeMouseXY=function(i){var t=i.target||i.srcElement;t.nodeType===3&&(t=t.parentNode);var e={x:0,y:0},n=t,o=getComputedStyle(n,null);e.y+=parseInt(o.getPropertyValue("padding-top"),10),e.x+=parseInt(o.getPropertyValue("padding-left"),10);do e.x+=n.offsetLeft,e.y+=n.offsetTop,o=getComputedStyle(n,null),e.x+=parseInt(o.getPropertyValue("border-left-width"),10),e.y+=parseInt(o.getPropertyValue("border-top-width"),10);while(n=n.offsetParent);var s={width:t===window?window.innerWidth:t.offsetWidth,height:t===window?window.innerHeight:t.offsetHeight};return{x:Number((i.pageX-e.x)/s.width)*2-1,y:-((i.pageY-e.y)/s.height)*2+1}};Ae.prototype._objectCtxInit=function(i){i._3xDomEvent={}};Ae.prototype._objectCtxDeinit=function(i){delete i._3xDomEvent};Ae.prototype._objectCtxIsInit=function(i){return!!i._3xDomEvent};Ae.prototype._objectCtxGet=function(i){return i._3xDomEvent};Ae.prototype.camera=function(i){return i&&(this._camera=i),this._camera};Ae.prototype.bind=function(i,t,e,n){console.assert(Ae.eventNames.indexOf(t)!==-1,"not available events:"+t),this._objectCtxIsInit(i)||this._objectCtxInit(i);var o=this._objectCtxGet(i);o[t+"Handlers"]||(o[t+"Handlers"]=[]),o[t+"Handlers"].push({callback:e,useCapture:n}),this._boundObjs[t]===void 0&&(this._boundObjs[t]=[]),this._boundObjs[t].push(i)};Ae.prototype.addEventListener=Ae.prototype.bind;Ae.prototype.unbind=function(i,t,e,n){console.assert(Ae.eventNames.indexOf(t)!==-1,"not available events:"+t),this._objectCtxIsInit(i)||this._objectCtxInit(i);var o=this._objectCtxGet(i);o[t+"Handlers"]||(o[t+"Handlers"]=[]);for(var s=o[t+"Handlers"],r=0;r<s.length;r++){var a=s[r];if(e==a.callback&&n==a.useCapture){s.splice(r,1);break}}var l=this._boundObjs[t].indexOf(i);this._boundObjs[t].splice(l,1)};Ae.prototype.removeEventListener=Ae.prototype.unbind;Ae.prototype._bound=function(i,t){var e=this._objectCtxGet(t);return e?!!e[i+"Handlers"]:!1};Ae.prototype._onMove=function(i,t,e,n){var o=this._boundObjs[i];if(!(o===void 0||o.length===0)){var s=new E.Vector2;s.set(t,e),this._raycaster.setFromCamera(s,this._camera);var r=this._raycaster.intersectObjects(o),a=this._selected;if(r.length>0){var l,c,u,d=r[0],h=d.object;this._selected=h,u=this._bound("mousemove",h),a!=h&&(l=this._bound("mouseover",h),c=a&&this._bound("mouseout",a))}else c=a&&this._bound("mouseout",a),this._selected=null;u&&this._notify("mousemove",h,n,d),l&&this._notify("mouseover",h,n,d),c&&this._notify("mouseout",a,n,d)}};Ae.prototype._onEvent=function(i,t,e,n){var o=this._boundObjs[i];if(!(o===void 0||o.length===0)){var s=new E.Vector2;s.set(t,e),this._raycaster.setFromCamera(s,this._camera);var r=this._raycaster.intersectObjects(o,!0);if(r.length!==0){for(var a=r[0],l=a.object,c=this._objectCtxGet(l),u=l.parent;typeof c=="undefined"&&u;)c=this._objectCtxGet(u),u=u.parent;!c||this._notify(i,l,n,a)}}};Ae.prototype._notify=function(i,t,e,n){var o=this._objectCtxGet(t),s=o?o[i+"Handlers"]:null;if(!o||!s||s.length===0){t.parent&&this._notify(i,t.parent,e,n);return}for(var s=o[i+"Handlers"],r=0;r<s.length;r++){var a=s[r],l=!0;a.callback({type:i,target:t,origDomEvent:e,intersect:n,stopPropagation:function(){l=!1}}),!!l&&a.useCapture===!1&&t.parent&&this._notify(i,t.parent,e,n)}};Ae.prototype._onMouseDown=function(i){return this._onMouseEvent("mousedown",i)};Ae.prototype._onMouseUp=function(i){return this._onMouseEvent("mouseup",i)};Ae.prototype._onMouseEvent=function(i,t){var e=this._getRelativeMouseXY(t);this._onEvent(i,e.x,e.y,t)};Ae.prototype._onMouseMove=function(i){var t=this._getRelativeMouseXY(i);this._onMove("mousemove",t.x,t.y,i),this._onMove("mouseover",t.x,t.y,i),this._onMove("mouseout",t.x,t.y,i)};Ae.prototype._onClick=function(i){this._onMouseEvent("click",i)};Ae.prototype._onDblClick=function(i){this._onMouseEvent("dblclick",i)};Ae.prototype._onContextmenu=function(i){this._onMouseEvent("contextmenu",i)};Ae.prototype._onTouchStart=function(i){return this._onTouchEvent("touchstart",i)};Ae.prototype._onTouchEnd=function(i){return this._onTouchEvent("touchend",i)};Ae.prototype._onTouchMove=function(i){if(i.touches.length==1){var t=Number(i.touches[0].pageX/window.innerWidth)*2-1,e=-(i.touches[0].pageY/window.innerHeight)*2+1;this._onMove("mousemove",t,e,i),this._onMove("mouseover",t,e,i),this._onMove("mouseout",t,e,i)}};Ae.prototype._onTouchEvent=function(i,t){var e=t.touches;if(e.length==0&&(e=t.changedTouches),e.length==1){var n=Number(e[0].pageX/window.innerWidth)*2-1,o=-(e[0].pageY/window.innerHeight)*2+1;this._onEvent(i,n,o,t)}};class rg extends Ae{constructor(e){super(e.camera,e.getElement());f(this,"mouseInfo");f(this,"clickHandlerMap",new Map);const n=()=>this.preventWhenMouseDown();e.on("wantsMoveToPano",n),e.on("wantsTapGesture",n)}addEventListener(e,n,o,s){const r=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;this.mouseInfo={x:d.clientX,y:d.clientY,isDown:!0,mouseDownTimestamp:Date.now()}},a=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;!this.mouseInfo||(this.mouseInfo.isDown&&this.mouseInfo.x===d.clientX&&this.mouseInfo.y===d.clientY&&Date.now()-this.mouseInfo.mouseDownTimestamp<400&&o(d),this.mouseInfo=void 0)},l=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;this.mouseInfo={x:Math.floor(d.touches[0].clientX),y:Math.floor(d.touches[0].clientY),isDown:!0,mouseDownTimestamp:Date.now()}},c=u=>{if(e.visible===!1){this.mouseInfo=void 0;return}const d=u.origDomEvent;!this.mouseInfo||(this.mouseInfo.isDown&&this.mouseInfo.x===Math.floor(d.changedTouches[d.changedTouches.length-1].clientX)&&this.mouseInfo.y===Math.floor(d.changedTouches[d.changedTouches.length-1].clientY)&&Date.now()-this.mouseInfo.mouseDownTimestamp<400&&o(d),this.mouseInfo=void 0)};n==="click"?(super.addEventListener(e,"mousedown",r,s),super.addEventListener(e,"mouseup",a,s),super.addEventListener(e,"touchstart",l,s),super.addEventListener(e,"touchend",c,s),this.clickHandlerMap.set(o,{mousedown:r,mouseup:a,touchstart:l,touchend:c})):super.addEventListener(e,n,o,s)}removeEventListener(e,n,o,s){if(n==="click"){const r=this.clickHandlerMap.get(o);r&&(super.removeEventListener(e,"mousedown",r.mousedown,s),super.removeEventListener(e,"mouseup",r.mouseup,s),super.removeEventListener(e,"touchstart",r.touchstart,s),super.removeEventListener(e,"touchend",r.touchend,s),this.clickHandlerMap.delete(o))}else super.removeEventListener(e,n,o,s)}preventWhenMouseDown(){var e;if((e=this.mouseInfo)!=null&&e.isDown)return!1}}class zl extends E.Mesh{constructor(){super(...arguments);f(this,"name","MediaPlane");f(this,"src")}removeFromParent(){const e=this.parent;return e!==null&&e.remove(this),this}setMatrixByCornerPoints(e){const n=new j.Vector3().subVectors(e[1],e[0]),o=new j.Vector3().subVectors(e[3],e[0]),s=at(...e),r=new j.Vector3().crossVectors(n,o).normalize();this.lookAt(r);const a=this.up.clone().applyQuaternion(this.quaternion),l=o.clone(),c=new j.Vector3().crossVectors(a,l).normalize();this.rotateOnWorldAxis(c,a.angleTo(l)),this.position.copy(s)}}class or extends zl{constructor(e,n){super();f(this,"name","PanoTagPluginImagePlane");this.src=e,Cn(e).then(o=>{const s=o.image.width,r=o.image.height,a=new E.MeshBasicMaterial({map:o,transparent:!0}),l=new E.PlaneGeometry(s,r);this.geometry=l,this.material=a;const c=n[0].distanceTo(n[1]),u=n[1].distanceTo(n[2]);this.scale.set(c/s,u/r,1);const d=s/r,h=c/u;d>h?this.scale.set(c/s,c/s,1):d<h?this.scale.set(u/r,u/r,1):this.scale.set(c/s,u/r,1)}).catch(o=>{console.error({e:o})}),this.setMatrixByCornerPoints(n)}}class co extends zl{constructor(e,n,o){const{videoCoverSrc:s,objectFit:r="contain",playButton:a="withText",videoTextureMap:l,ImageTextureMap:c,videoInstance:u=document.createElement("video")}=o!=null?o:{};super();f(this,"isVideoPlane",!0);f(this,"name","PanoTagPluginImagePlane");f(this,"videoInstance");f(this,"objectFit");f(this,"buttonSrc");f(this,"paused",!0);f(this,"videoCoverSrc");f(this,"domEvents");f(this,"disposers",[]);f(this,"domEventsListenerTemporaryList",[]);f(this,"cornerPoints");f(this,"videoMesh");f(this,"coverMesh");f(this,"buttonMesh");f(this,"videoTextureMap");f(this,"ImageTextureMap");this.cornerPoints=n,this.src=e,this.buttonSrc=(()=>a==="withText"?Tl:a==="withoutText"?lo:typeof a=="string"?a:lo)(),this.videoInstance=u,this.videoCoverSrc=s,this.objectFit=r,this.videoTextureMap=l,this.ImageTextureMap=c,this.position.copy(at(...n)),this.videoCoverSrc?this.addCoverMesh().then(()=>this.addButtonMesh()):this.addVideoMesh().then(()=>this.addButtonMesh()),this.addEventListener("dispose",()=>{var d;this.domEventsListenerTemporaryList=[],(d=this.disposers)==null||d.forEach(h=>h==null?void 0:h())})}play(){return H(this,null,function*(){!this.paused||(this.paused=!1,this.coverMesh&&(this.coverMesh.visible=!1),this.remove(this.buttonMesh),this.videoMesh||(yield this.addVideoMesh()),this.videoMesh.visible=!0,this.videoInstance.play(),this.videoInstance.muted=!1,this.render())})}pause(){this.paused||(this.paused=!0,this.coverMesh&&(this.coverMesh.visible=!0,this.videoMesh&&(this.videoMesh.visible=!1)),this.addButtonMesh(),this.videoInstance.pause(),this.render())}initialDomEvents(e){this.domEvents||(this.domEvents=new rg(e),this.domEventsListenerTemporaryList.forEach(n=>this.addDomEventListener(...n)),this.domEventsListenerTemporaryList=[])}initialRenderHooks(e){const n=()=>{this.videoMesh&&(this.videoInstance.paused||(this.videoMesh.needsRender=!0))};e.on("renderFrame",n),this.disposers.push(()=>e.off("renderFrame",n))}render(){this.videoMesh&&(this.videoMesh.needsRender=!0),this.coverMesh&&(this.coverMesh.needsRender=!0),this.buttonMesh&&(this.buttonMesh.needsRender=!0),this.videoMesh&&(this.videoInstance.paused||(this.videoMesh.needsRender=!0))}addDomEventListener(...e){this.domEvents?(this.domEvents.addEventListener(...e),this.disposers.push(()=>{var n;return(n=this.domEvents)==null?void 0:n.removeEventListener(...e)})):this.domEventsListenerTemporaryList.push(e)}removeDomEventListener(...e){this.domEvents?this.domEvents.removeEventListener(...e):this.domEventsListenerTemporaryList=this.domEventsListenerTemporaryList.filter(n=>n!==e)}addCoverMesh(){return H(this,null,function*(){if(this.children.find(n=>n===this.coverMesh))return;const e=yield this.getCoverMesh();this.add(e)})}addVideoMesh(){return H(this,null,function*(){if(this.children.find(n=>n===this.videoMesh))return;const e=yield this.getVideoMesh();this.add(e)})}addButtonMesh(){return H(this,null,function*(){if(this.children.find(n=>n===this.buttonMesh))return;const e=yield this.getButtonMesh();this.add(e)})}getCoverMesh(){return H(this,null,function*(){if(this.coverMesh)return this.coverMesh;const e=yield this.getCoverTexture(),n=new E.MeshBasicMaterial({transparent:!0,map:e}),o=Wi(this.objectFit,this.cornerPoints,e.image.width/e.image.height),s=at(...o),r=o.map(c=>c.clone().sub(s)),a=new Gi(r,1),l=new E.Mesh(a,n);return l.name="videoCoverMesh",l.position.copy(s.clone().sub(this.position)),this.coverMesh=l,l})}getVideoMesh(){return H(this,null,function*(){if(this.videoMesh)return this.videoMesh;const e=yield this.getVideoTexture(),n=new E.MeshBasicMaterial({transparent:!0,map:e}),o=Wi(this.objectFit,this.cornerPoints,e.image.videoWidth/e.image.videoHeight),s=at(...o),r=o.map(u=>u.clone().sub(s)),a=new Gi(r,1),l=new E.Mesh(a,n);l.name="videoMesh",l.position.copy(s.clone().sub(this.position)),this.addDomEventListener(l,"click",u=>{this.pause()});const c=e.image;return c.addEventListener("playing",()=>{this.coverMesh||this.remove(this.buttonMesh)}),c.addEventListener("pause",()=>{this.coverMesh||this.addButtonMesh()}),this.videoMesh=l,this.videoInstance=c,l})}getButtonMesh(){return H(this,null,function*(){var A,v,b,w;if(this.buttonMesh)return this.buttonMesh;const e=(v=(A=this.videoMesh)==null?void 0:A.geometry.points[0].distanceTo(this.videoMesh.geometry.points[3]))!=null?v:1/0,n=(w=(b=this.coverMesh)==null?void 0:b.geometry.points[0].distanceTo(this.coverMesh.geometry.points[3]))!=null?w:1/0,o=this.cornerPoints[0].distanceTo(this.cornerPoints[3]),r=Math.min(e,n,o)/o*.3,a=yield this.getButtonTexture(),l=new E.MeshBasicMaterial({transparent:!0,map:a}),c=Wi("contain",this.cornerPoints,a.image.width/a.image.height),u=at(...c),d=c.map(k=>k.clone().sub(u)),h=new Gi(d),m=new E.Mesh(h,l);m.name="buttonMesh",m.scale.set(r,r,r);const g=()=>{this.play()};m.addEventListener("added",()=>{this.addDomEventListener(m,"click",g)}),m.addEventListener("removed",()=>{this.removeDomEventListener(m,"click",g)});const p=new E.Vector3().crossVectors(new E.Vector3().subVectors(c[0],c[1]),new E.Vector3().subVectors(c[0],c[3])).normalize().multiplyScalar(1e-4);return m.position.copy(p),this.buttonMesh=m,m})}getButtonTexture(){return H(this,null,function*(){var n,o;if((n=this.ImageTextureMap)!=null&&n.has(this.buttonSrc))return this.ImageTextureMap.get(this.buttonSrc);const e=yield Cn(this.buttonSrc);return(o=this.ImageTextureMap)==null||o.set(this.buttonSrc,e),e})}getCoverTexture(){return H(this,null,function*(){var n,o;if((n=this.ImageTextureMap)!=null&&n.has(this.videoCoverSrc))return this.ImageTextureMap.get(this.videoCoverSrc);const e=yield Cn(this.videoCoverSrc);return(o=this.ImageTextureMap)==null||o.set(this.videoCoverSrc,e),e})}getVideoTexture(){return H(this,null,function*(){var n,o;if((n=this.videoTextureMap)!=null&&n.has(this.src))return this.videoTextureMap.get(this.src);const e=yield ig(this.src,this.videoInstance);return(o=this.videoTextureMap)==null||o.set(this.src,e),e})}}var Bl=(i=>(i.Two="2D",i.Three="3D",i))(Bl||{});function ag(i){return i.stickType==="Plane"}function lg(i){return i.stickType==="3DPoint"||i.stickType==="Plane"}function Re(i){return i.stickType==="Model"&&i.contentType==="MediaModel"}function cg(i){return i.stickType==="Plane"&&i.contentType==="MediaPlane"}function fi(i){if(!!i)if(Array.isArray(i)&&i.length===4){const e=i.map(wn);return at(e[0],e[2])}else return wn(i)}function ug(i){if(Re(i)&&i.matrix){const t=new j.Matrix4().fromArray(i.matrix),e=i.data.mediaPosition.map(n=>new j.Vector3().fromArray(n).applyMatrix4(t));return at(e[0],e[2])}else return fi(i.position)}function hn(i,t){if(i===void 0)return;const{min:e,max:n}=t!=null?t:{};if(!(e===void 0&&n===void 0))return!(typeof n=="number"&&n<i||typeof e=="number"&&e>i)}function dg(i){return new Promise(t=>{i.model.loaded?t():i.once("modelLoaded",()=>t())})}function hg(i,t,e){const o=new E.Plane().setFromNormalAndCoplanarPoint(e,t),s=t.clone().sub(i).cross(new E.Vector3(0,1,0)).setLength(.01),r=new E.Vector3(0,.01,0);return[t.clone().sub(s).sub(r),t.clone().add(s).sub(r),t.clone().add(s).add(r),t.clone().sub(s).add(r)].map(l=>o.projectPoint(l,new E.Vector3))}const sr=(i,t=1e3/60)=>{let e=null;const n=i;return(...s)=>{e&&clearTimeout(e),e=setTimeout(()=>{n==null||n(...s),e&&clearTimeout(e),e=null},t)}};function fg(i,t=200){let e;return function(...n){e||(i.apply(this,n),e=setTimeout(function(){e=null},t))}}function mg(i,t){const[e,n]=t;if(e>=n||n<=1||e<=1)return-1;const o={},s=r=>(o[r]||(o[r]=i(r)),o[r]);for(let r=e;r<n;r++){const a=s(r),l=s(r-1);if(a<l)return r}return-1}function rr(i,t){if(!t||typeof ResizeObserver=="undefined"||!ResizeObserver)return{observe:()=>window.addEventListener("resize",i),unobserve:()=>window.removeEventListener("resize",i)};{const e=new ResizeObserver(i);return{observe:()=>e.observe(t),unobserve:()=>e.unobserve(t)}}}function pg(i){var t,e,n,o;if(!i.stickType){const s=(()=>i.pointType==="PointTag"&&i.dimensionType==="3D"?"3DPoint":i.pointType==="PlaneTag"?"Plane":"2DPoint")();i.stickType=s}if(i.contentType==="VRLink"||i.contentType==="PanoLink"||i.contentType==="Link"){const s=i;!((e=(t=s.data)==null?void 0:t.icon)!=null&&e.url)&&!((o=(n=s.style)==null?void 0:n.point)!=null&&o.url)&&(s.data.icon={url:"//vrlab-static.ljcdn.com/release/web/test.09dee741.png",steps:28})}return i}const Jt="data:audio/mpeg;base64,//uQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAADAAAGhgBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr///////////////////////////////////////////8AAAA5TEFNRTMuOThyAc0AAAAAAAAAABSAJAiqQgAAgAAABobxtI73AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uQxAACFEII9ACZ/sJZwWEoEb8w/////N//////JcxjHjf+7/v/H2PzCCFAiDtGeyBCIx7bJJ1mmEEMy6g8mm2c8nrGABB4h2Mkmn//4z/73u773R5qHHu/j/w7Kxkzh5lWRWdsifCkNAnY9Zc1HvDAhjhSHdFkHFzLmabt/AQxSg2wwzLhHIJOBnAWwVY4zrhIYhhc2kvhYDfQ4hDi2Gmh5KyFn8EcGIrHAngNgIwVIEMf5bzbAiTRoAD///8z/KVhkkWEle6IX+d/z4fvH3BShK1e5kmjkCMoxVmXhd4ROlTKo3iipasvTilY21q19ta30/v/0/idPX1v8PNxJL6ramnOVsdvMv2akO0iSYIzdJFirtzWXCZicS9vHqvSKyqm5XJBdqBwPxyfJdykhWTZ0G0ZyTZGpLKxsNwwoRhsx3tZfhwmeOBVISm3impAC/IT/8hP/EKEM1KMdVdVKM2rHV4x7HVXZvbVVKN/qq8CiV9VL9jjH/6l6qf7MBCjZmOqsAibjcP+qqqv0oxqpa/NVW286hPo1nz2L/h8+jXt//uSxCmDU2IK/ECN98KKtE5IYzNoCfbw+u9i5r8PoadUMFPKqWL4LK3T/LCraMSHGkW4bpLXR/E6LlHOVQxmslKVJ8IULktMN06N0FKCpHCoYsjC4F+Z0NVqdNFoGSTjSiyjzLdnZ2fNqTi2eHKONONKLMPMKLONKLMPQRJGlFxZRoKcJFAYEeIFiRQkUWUeYfef//Ko04soswso40UJAgMw8wosososy0EalnZyjQUGBRQGIFggOWUacWUeYmuadrZziQKKEgQsQLAhQkUJAgMQDghltLO1onp0cpkNInSFMqlYeSEJ5AHsqFdOwy1DA2sRmRJKxdKRfLhfLw5BzUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVUxBTUUzLjk4LjJVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVf/7ksRRA8AAAaQAAAAgAAA0gAAABFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVU=",An={};var xo=(i=>(i.Default="default",i.GetAudioDuration="getAudioDuration",i.PlayAudio="playAudio",i))(xo||{});function gg(i,t){const e=(t==null?void 0:t.namespace)||"default",n=An[e]||(An[e]=[]);let o=n.find(s=>!s.realSrc||s.realSrc===Jt);return o||(console.warn("\u672A\u627E\u5230\u7F13\u5B58\u97F3\u9891\uFF0C\u5DF2\u65B0\u5EFA",An),o=new Vl(Jt),n.push(o)),i&&(o.src=i),o}function vg(i,t){const e=(t==null?void 0:t.namespace)||"default",n=An[e]||(An[e]=[]),o=i-n.length;if(!(o<=0))for(let s=0;s<o;s++)n.push(new Vl(Jt))}class Vl extends Audio{constructor(e){super(e);f(this,"preload","auto");f(this,"crossOrigin","anonymous");f(this,"realSrc","");f(this,"inited",!1);f(this,"removeDocumentEventListener");this.realSrc=e!=null?e:"",this.muted=!0,super.autoplay=!0,super.addEventListener("ended",()=>{this.src=""});const n=()=>Ag(this);document.addEventListener("click",n),document.addEventListener("touchend",n),this.removeDocumentEventListener=()=>{document.removeEventListener("click",n),document.removeEventListener("touchend",n)}}get isBlankAudio(){return this.realSrc===Jt||!this.realSrc}get src(){return super.src}set src(e){super.src=e,this.realSrc=e,this.removeDocumentEventListener()}get muted(){return super.muted}set muted(e){super.muted=e}clear(){this.currentTime=0,this.src=Jt}}function Ag(i){!i||i.inited||(i.src&&(i.inited=!0,i.removeDocumentEventListener()),i.src===Jt&&i.play())}class uo{constructor(t=0,e=0){f(this,"min");f(this,"max");f(this,"isInterval",!0);this.min=t,this.max=e}fromArray(t){return this.min=t[0],this.max=t[1],this}isOverlap(t){return Math.min(this.max,t.max)<Math.max(this.min,t.min)}contains(t){return this.min<t.min&&this.max>t.max}}class bg{constructor(t,e){f(this,"min");f(this,"max");f(this,"xInterval");f(this,"yInterval");f(this,"isRectangle",!0);this.min=t,this.max=e,this.xInterval=new uo(this.min.x,this.max.x),this.yInterval=new uo(this.min.y,this.max.y)}isOverlapWithRectangle(t){return!this.xInterval.isOverlap(t.xInterval)&&!this.yInterval.isOverlap(t.yInterval)}containsRect(t){return this.xInterval.contains(t.xInterval)&&this.yInterval.contains(t.yInterval)}}function Xn(i,t,e){const n=i[t],o=i[e];!n||!o||(i[t]=o,i[e]=n)}function yg(i,t,e){const n=e/2;for(let o=1;o<=n;o++){const s=e-(o-1);for(let r=1;r<=t;r++){const a=(o-1)*t+r-1,l=(s-1)*t+r-1;Xn(i,a*4+0,l*4+0),Xn(i,a*4+1,l*4+1),Xn(i,a*4+2,l*4+2),Xn(i,a*4+3,l*4+3)}}}class jl{constructor(t,e){f(this,"width");f(this,"height");f(this,"containerDom");f(this,"hooks",new Ee.Subscribe);f(this,"canvas",document.createElement("canvas"));f(this,"five");f(this,"scale");f(this,"config");f(this,"offset",{x:0,y:0});f(this,"context");f(this,"renderCenter",new E.Vector3);f(this,"hammer");f(this,"state",{enabled:!1});f(this,"onPan",t=>{if(!this.containerDom||this.hooks.emit("wantsPanGesture",t))return;const n=this.offset.x+t.deltaX,o=this.offset.y+t.deltaY;this.canvas.style.boxShadow="0 2px 30px 0 rgba(0,0,0,0.20)",this.canvas.style.transform=`translate3d(${n}px, ${o}px, 100px)`});f(this,"onPanEnd",t=>{this.offset={x:this.offset.x+t.deltaX,y:this.offset.y+t.deltaY},this.canvas.style.boxShadow="none"});var o,s,r;if(!t.renderer)throw new Error("Five Render \u672A\u521D\u59CB\u5316");this.five=t,this.scale=(o=e==null?void 0:e.scale)!=null?o:2,this.width=(s=e==null?void 0:e.width)!=null?s:190,this.height=(r=e==null?void 0:e.height)!=null?r:190,this.config={dragEnabled:(e==null?void 0:e.dragEnabled)||!1,autoFixPCPosition:(e==null?void 0:e.autoFixPCPosition)||!1,initialPosition:(e==null?void 0:e.initialPosition)||{left:"0",top:"0"}};const n=this.canvas.getContext("2d");if(!n)throw new Error("CANNOT CREATE CONTEXT2D");this.context=n,this.config.dragEnabled&&(this.hammer=new kn.default(this.canvas),this.hammer.on("pan",this.onPan),this.hammer.on("panend",this.onPanEnd)),this.initStyle()}dispose(){var t;this.clear(),this.disable(),(t=this.hammer)==null||t.destroy()}enable(){var t;if(!this.state.enabled)return this.state.enabled=!0,(t=this.containerDom)==null||t.append(this.canvas),this}disable(){if(!!this.state.enabled)return this.state.enabled=!1,this.canvas.remove(),this}appendTo(t){var e;return this.containerDom&&((e=this.containerDom)==null||e.removeChild(this.canvas)),this.containerDom=t,this.state.enabled&&t.append(this.canvas),this}clear(){return this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this}renderWithPoint(t){!this.containerDom||!this.state.enabled||(this.renderCenter=t,this.render(),this.config.autoFixPCPosition&&this.autoFixPCPosition())}autoFixPCPosition(){if(!this.containerDom)return;const{width:t,height:e}=this,n=this.renderCenter.clone().project(this.five.camera),o=(n.x+1)/2*this.containerDom.clientWidth,s=-(n.x-1)/2*this.containerDom.clientWidth,r=-(n.y-1)/2*this.containerDom.clientHeight;o<183?(this.canvas.style.top=-e/2+"px",this.canvas.style.left=90+"px"):r<183?(this.canvas.style.top=90+"px",this.canvas.style.left=-t/2+"px"):s<183?(this.canvas.style.top=-e/2+"px",this.canvas.style.left=-t-90+"px"):(this.canvas.style.left=-t/2+"px",this.canvas.style.top=-e-90+"px"),this.canvas.style.transform=`translate3d(${o}px, ${r}px, 10px)`,this.offset={x:o,y:r}}render(){if(!this.five.renderer||!this.containerDom)return;const{scale:t,context:e,width:n,height:o}=this,s=this.renderCenter.clone().project(this.five.camera),r=this.five.renderer.getSize(new E.Vector2),a=1,l=n/t,c=o/t,u=a*t,d=(s.x+1)/2*r.x,h=(s.y+1)/2*r.y,m=this.five.getPixels(d-l/2,h-l/2,l,c,u),g=Math.floor(n*a),p=Math.floor(o*a);yg(m,g,p);const A=new ImageData(g,p);A.data.set(m),e.putImageData(A,0,0)}initStyle(){const t=this.canvas;t.classList.add("five-plugin__magnifier"),t.style.position="absolute",t.style.pointerEvents="all",t.style.borderRadius="50%",t.style.zIndex="99";const e=1;t.setAttribute("width",(this.width*e).toString()),t.setAttribute("height",(this.height*e).toString()),t.style.border="2px solid rgba(255,255,255,0.20)",t.style.width=this.width+"px",t.style.height=this.height+"px",t.style.top=this.config.initialPosition.top,t.style.left=this.config.initialPosition.left,t.style.transform="translate(0,0,100px)",this.config.dragEnabled&&(this.canvas.style.cursor="pointer")}}function wg(i,t){const{offsetWidth:e,offsetHeight:n}=t,{top:o,left:s}=t.getBoundingClientRect();return new E.Vector2().set((i.x-s)/e*2-1,-(i.y-o)/n*2+1)}function Ol(i,t){const{offsetWidth:e,offsetHeight:n}=t;return new E.Vector2().set(i.x/e*2-1,-i.y/n*2+1)}function Eg(i,t){const e=i.getElement();if(!e)return;const n=Ol(t,e),o=new E.Raycaster;return o.setFromCamera(n,i.camera),o}function Pg(i,t){const{x:e,y:n}=t,o=e*2-1,s=n*2-1,r=new E.Vector2().fromArray([o,s]),a=new E.Raycaster;return a.setFromCamera(r,i.camera),i.model.intersectRaycaster(a)[0]}const Cg="data:image/png;base64,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",Ig=`
531
531
  varying vec2 vUv;
532
532
  void main() {
533
533
  vUv = uv;