@realsee/dnalogel 2.0.0-alpha.35 → 2.0.0-alpha.36

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/dist/ItemLabelPlugin/index.js +21 -41
  2. package/dist/ModelItemLabelPlugin/index.js +16 -36
  3. package/dist/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.d.ts +1 -1
  4. package/dist/PanoMeasurePlugin/Modules/UIController/HTML.d.ts +0 -4
  5. package/dist/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +0 -3
  6. package/dist/PanoMeasurePlugin/Modules/UIController/mobileHTML.d.ts +2 -0
  7. package/dist/PanoMeasurePlugin/Modules/UIController/{NewMainBtnController.d.ts → mobileMainBtnController.d.ts} +1 -1
  8. package/dist/PanoMeasurePlugin/Modules/UIController/style.d.ts +0 -3
  9. package/dist/PanoMeasurePlugin/Modules/rangePiece/html.d.ts +1 -1
  10. package/dist/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +2 -0
  11. package/dist/PanoMeasurePlugin/index.js +298 -331
  12. package/dist/PanoMeasurePlugin/typings/data.d.ts +5 -0
  13. package/dist/PanoMeasurePlugin/utils/mouseGroup.d.ts +6 -1
  14. package/dist/base/BasePlugin.d.ts +100 -0
  15. package/dist/base/BasePluginWithData.d.ts +34 -0
  16. package/dist/floorplan/ModelFloorplanPlugin/Controller.d.ts +70 -78
  17. package/dist/floorplan/ModelFloorplanPlugin/index.d.ts +5 -7
  18. package/dist/floorplan/ModelFloorplanPlugin/index.js +1059 -569
  19. package/dist/floorplan/ModelFloorplanPlugin/typing.d.ts +107 -0
  20. package/dist/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +23 -14
  21. package/dist/floorplan/PanoFloorplanRadarPlugin/index.d.ts +5 -6
  22. package/dist/floorplan/PanoFloorplanRadarPlugin/index.js +489 -129
  23. package/dist/floorplan/PanoFloorplanRadarPlugin/typing.d.ts +52 -0
  24. package/dist/floorplan/TopviewFloorplanPlugin/Controller.d.ts +50 -58
  25. package/dist/floorplan/TopviewFloorplanPlugin/index.d.ts +5 -3
  26. package/dist/floorplan/TopviewFloorplanPlugin/index.js +1031 -443
  27. package/dist/floorplan/TopviewFloorplanPlugin/typing.d.ts +86 -0
  28. package/{libs/floorplan/ModelFloorplanPlugin → dist/floorplan}/utils/constant.d.ts +10 -3
  29. package/{libs/floorplan/ModelFloorplanPlugin → dist/floorplan}/utils/correctFiveState.d.ts +2 -1
  30. package/dist/index.es.js +2184 -1411
  31. package/dist/index.js +2188 -1415
  32. package/dist/index.umd.js +2142 -1369
  33. package/dist/shared-utils/five/changeMode.d.ts +4 -1
  34. package/dist/shared-utils/getPxmm.d.ts +8 -0
  35. package/docs/assets/search.js +1 -1
  36. package/docs/classes/Magnifier.html +4 -4
  37. package/docs/classes/ModelRoomLabelController.html +4 -4
  38. package/docs/enums/CameraMovementEffect.html +2 -2
  39. package/docs/enums/DIRECTION.html +1 -1
  40. package/docs/enums/DISPLAY_STRATEGY_TYPE.html +1 -1
  41. package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +1 -1
  42. package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +1 -1
  43. package/docs/enums/Rotation.html +2 -2
  44. package/docs/index.html +2 -2
  45. package/docs/interfaces/CSS3DRenderPluginExportType.html +2 -2
  46. package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
  47. package/docs/interfaces/FloorplanBounding.html +4 -4
  48. package/docs/interfaces/FloorplanData.html +2 -2
  49. package/docs/interfaces/FloorplanEntrance.html +7 -7
  50. package/docs/interfaces/FloorplanExtraObject.html +3 -3
  51. package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
  52. package/docs/interfaces/FloorplanFloorData.html +2 -2
  53. package/docs/interfaces/FloorplanImagePosition.html +2 -2
  54. package/docs/interfaces/FloorplanObserver.html +2 -2
  55. package/docs/interfaces/FloorplanOutlineItem.html +2 -2
  56. package/docs/interfaces/FloorplanPosition.html +2 -2
  57. package/docs/interfaces/FloorplanRoomItem.html +6 -6
  58. package/docs/interfaces/FloorplanRoomLabelItem.html +3 -3
  59. package/docs/interfaces/FloorplanServerBounding.html +4 -4
  60. package/docs/interfaces/FloorplanServerComputedData.html +1 -1
  61. package/docs/interfaces/FloorplanServerData.html +2 -2
  62. package/docs/interfaces/FloorplanServerEntrance.html +7 -7
  63. package/docs/interfaces/FloorplanServerFloorData.html +2 -2
  64. package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
  65. package/docs/interfaces/FloorplanServerObserver.html +2 -2
  66. package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
  67. package/docs/interfaces/FloorplanServerPosition.html +2 -2
  68. package/docs/interfaces/FloorplanServerRoomItem.html +7 -7
  69. package/docs/interfaces/FloorplanServerRoomLabelItem.html +3 -3
  70. package/docs/interfaces/ItemLabelPluginData.html +1 -1
  71. package/docs/interfaces/ItemLabelPluginExportReturnsType.html +1 -1
  72. package/docs/interfaces/ItemLabelPluginParametersType.html +1 -1
  73. package/docs/interfaces/LineJson.html +1 -1
  74. package/docs/interfaces/ModelChassisCompassPluginData.html +1 -1
  75. package/docs/interfaces/ModelChassisCompassPluginExportType.html +1 -1
  76. package/docs/interfaces/ModelChassisCompassPluginParameterType.html +1 -1
  77. package/docs/interfaces/ModelEntryDoorGuidePluginData.html +1 -1
  78. package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +1 -1
  79. package/docs/interfaces/ModelItemLabelPluginData.html +1 -1
  80. package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +1 -1
  81. package/docs/interfaces/ModelItemLabelPluginParametersType.html +1 -1
  82. package/docs/interfaces/ModelRoomLabelPluginData.html +1 -1
  83. package/docs/interfaces/ModelTVVideoPluginData.html +1 -1
  84. package/docs/interfaces/ModelTVVideoPluginExportType.html +1 -1
  85. package/docs/interfaces/ModelTVVideoPluginParameterType.html +1 -1
  86. package/docs/interfaces/ModelViewPluginExportType.html +1 -1
  87. package/docs/interfaces/OpenParameter.html +2 -2
  88. package/docs/interfaces/PanoCompassPluginData.html +1 -1
  89. package/docs/interfaces/PanoCompassPluginParameterType.html +1 -1
  90. package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +6 -6
  91. package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
  92. package/docs/interfaces/PanoMeasureParameterType.html +1 -1
  93. package/docs/interfaces/PanoRulerPluginExportType.html +1 -1
  94. package/docs/interfaces/PanoRulerPluginOptions.html +1 -1
  95. package/docs/interfaces/PanoRulerPluginParameterType.html +1 -1
  96. package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
  97. package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
  98. package/docs/interfaces/PanoSpatialTagPluginData.html +1 -1
  99. package/docs/interfaces/PanoSpatialTagPluginDataElement.html +1 -1
  100. package/docs/interfaces/PanoSpatialTagPluginExportType.html +1 -1
  101. package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +1 -1
  102. package/docs/interfaces/PanoSpatialTagPluginParameterType.html +1 -1
  103. package/docs/interfaces/PanoSpatialTagPluginPointElement.html +1 -1
  104. package/docs/interfaces/PanoSpatialTagPluginTagElement.html +1 -1
  105. package/docs/interfaces/Point.html +1 -1
  106. package/docs/interfaces/PointJson.html +1 -1
  107. package/docs/interfaces/Room.html +1 -1
  108. package/docs/interfaces/RoomInfo.html +1 -1
  109. package/docs/interfaces/RoomLabel.html +7 -7
  110. package/docs/interfaces/RoomRules.html +1 -1
  111. package/docs/interfaces/Rooms.html +1 -1
  112. package/docs/modules.html +17 -27
  113. package/libs/ItemLabelPlugin/ItemLabelComponent.js +21 -41
  114. package/libs/ModelItemLabelPlugin/ItemLabelComponent.js +16 -36
  115. package/libs/PanoMeasurePlugin/Controller/index.js +4 -2
  116. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.d.ts +1 -1
  117. package/libs/PanoMeasurePlugin/Modules/DeleteDom/_Assets/delete_hover_bg.png.js +1 -1
  118. package/libs/PanoMeasurePlugin/Modules/GuideController.js +2 -2
  119. package/libs/PanoMeasurePlugin/Modules/UIController/HTML.d.ts +0 -4
  120. package/libs/PanoMeasurePlugin/Modules/UIController/HTML.js +66 -55
  121. package/libs/PanoMeasurePlugin/Modules/UIController/MainBtnController.d.ts +0 -3
  122. package/libs/PanoMeasurePlugin/Modules/UIController/MainBtnController.js +51 -73
  123. package/libs/PanoMeasurePlugin/Modules/UIController/Revoke/index.js +7 -4
  124. package/libs/PanoMeasurePlugin/Modules/UIController/index.js +10 -12
  125. package/libs/PanoMeasurePlugin/Modules/UIController/mobileHTML.d.ts +2 -0
  126. package/libs/PanoMeasurePlugin/Modules/UIController/mobileHTML.js +2 -2
  127. package/libs/PanoMeasurePlugin/Modules/UIController/{NewMainBtnController.d.ts → mobileMainBtnController.d.ts} +1 -1
  128. package/libs/PanoMeasurePlugin/Modules/UIController/{NewMainBtnController.js → mobileMainBtnController.js} +4 -4
  129. package/libs/PanoMeasurePlugin/Modules/UIController/style.d.ts +0 -3
  130. package/libs/PanoMeasurePlugin/Modules/UIController/style.js +7 -24
  131. package/libs/PanoMeasurePlugin/Modules/rangePiece/html.d.ts +1 -1
  132. package/libs/PanoMeasurePlugin/Modules/rangePiece/html.js +1 -1
  133. package/libs/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +2 -0
  134. package/libs/PanoMeasurePlugin/Modules/rangePiece/index.js +1 -2
  135. package/libs/PanoMeasurePlugin/typings/data.d.ts +5 -0
  136. package/libs/PanoMeasurePlugin/utils/mouseGroup.d.ts +6 -1
  137. package/libs/PanoMeasurePlugin/utils/mouseGroup.js +55 -7
  138. package/libs/base/BasePlugin.d.ts +100 -0
  139. package/libs/base/BasePlugin.js +31 -0
  140. package/libs/base/BasePluginWithData.d.ts +34 -0
  141. package/libs/base/BasePluginWithData.js +4 -0
  142. package/libs/floorplan/Components/Compass.js +11 -11
  143. package/libs/floorplan/Components/CurrentFloor.js +24 -11
  144. package/libs/floorplan/Components/Main.js +21 -15
  145. package/libs/floorplan/Components/RoomHighlight/Room.js +44 -5
  146. package/libs/floorplan/Components/RoomHighlight/RoomHighlight.js +29 -12
  147. package/libs/floorplan/Components/RoomLabels/RoomLabel.js +164 -15
  148. package/libs/floorplan/Components/RoomLabels/RoomLabels.js +68 -24
  149. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_1.js +1 -0
  150. package/libs/floorplan/Components/RoomMaterials/RoomMaterial_2.js +11 -9
  151. package/libs/floorplan/Components/RuleLabels/RuleItem.js +2 -2
  152. package/libs/floorplan/ModelFloorplanPlugin/Controller.d.ts +70 -78
  153. package/libs/floorplan/ModelFloorplanPlugin/Controller.js +434 -274
  154. package/libs/floorplan/ModelFloorplanPlugin/index.d.ts +5 -7
  155. package/libs/floorplan/ModelFloorplanPlugin/index.js +2 -2
  156. package/libs/floorplan/ModelFloorplanPlugin/typing.d.ts +107 -0
  157. package/libs/floorplan/ModelFloorplanPlugin/{typings/events.type.js → typing.js} +0 -0
  158. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Camera.js +5 -5
  159. package/libs/floorplan/PanoFloorplanRadarPlugin/Components/Main.js +114 -53
  160. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.d.ts +23 -14
  161. package/libs/floorplan/PanoFloorplanRadarPlugin/Controller.js +162 -52
  162. package/libs/floorplan/PanoFloorplanRadarPlugin/index.d.ts +5 -6
  163. package/libs/floorplan/PanoFloorplanRadarPlugin/index.js +2 -2
  164. package/libs/floorplan/PanoFloorplanRadarPlugin/typing.d.ts +52 -0
  165. package/libs/floorplan/PanoFloorplanRadarPlugin/typing.js +1 -0
  166. package/libs/floorplan/TopviewFloorplanPlugin/Controller.d.ts +50 -58
  167. package/libs/floorplan/TopviewFloorplanPlugin/Controller.js +320 -174
  168. package/libs/floorplan/TopviewFloorplanPlugin/index.d.ts +5 -3
  169. package/libs/floorplan/TopviewFloorplanPlugin/index.js +2 -2
  170. package/libs/floorplan/TopviewFloorplanPlugin/style.js +1 -1
  171. package/libs/floorplan/TopviewFloorplanPlugin/typing.d.ts +86 -0
  172. package/libs/floorplan/TopviewFloorplanPlugin/typing.js +1 -0
  173. package/{dist/floorplan/ModelFloorplanPlugin → libs/floorplan}/utils/constant.d.ts +10 -3
  174. package/libs/floorplan/{ModelFloorplanPlugin/utils → utils}/constant.js +9 -2
  175. package/{dist/floorplan/ModelFloorplanPlugin → libs/floorplan}/utils/correctFiveState.d.ts +2 -1
  176. package/libs/floorplan/{ModelFloorplanPlugin/utils → utils}/correctFiveState.js +16 -16
  177. package/libs/shared-utils/five/changeMode.d.ts +4 -1
  178. package/libs/shared-utils/five/changeMode.js +34 -13
  179. package/libs/shared-utils/getPxmm.d.ts +8 -0
  180. package/libs/shared-utils/getPxmm.js +25 -20
  181. package/package.json +2 -2
  182. package/dist/floorplan/ModelFloorplanPlugin/typings/events.type.d.ts +0 -23
  183. package/docs/classes/PanoFloorplanRadarPluginController.html +0 -3
  184. package/docs/enums/ModelFloorplanErrorType.html +0 -1
  185. package/docs/interfaces/ModelFloorplanParameterType.html +0 -1
  186. package/docs/interfaces/ModelFloorplanViewEvent.html +0 -5
  187. package/docs/interfaces/PanoFloorplanRadarPluginControllerParameter.html +0 -1
  188. package/docs/interfaces/TopviewFloorplanPluginParameterType.html +0 -19
  189. package/libs/ModelSimulationPlugin/index.d.ts +0 -33
  190. package/libs/ModelSimulationPlugin/index.js +0 -166
  191. package/libs/ModelSimulationPlugin/shaders/fragment.d.ts +0 -2
  192. package/libs/ModelSimulationPlugin/shaders/fragment.js +0 -96
  193. package/libs/ModelSimulationPlugin/shaders/vertex.d.ts +0 -2
  194. package/libs/ModelSimulationPlugin/shaders/vertex.js +0 -23
  195. package/libs/floorplan/ModelFloorplanPlugin/Assets/compass.d.ts +0 -1
  196. package/libs/floorplan/ModelFloorplanPlugin/Assets/compass.js +0 -1
  197. package/libs/floorplan/ModelFloorplanPlugin/Components/Camera.js +0 -120
  198. package/libs/floorplan/ModelFloorplanPlugin/Components/Compass.js +0 -106
  199. package/libs/floorplan/ModelFloorplanPlugin/Components/CurrentFloor/CurrentFloor.js +0 -463
  200. package/libs/floorplan/ModelFloorplanPlugin/Components/Main.js +0 -375
  201. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabel.js +0 -171
  202. package/libs/floorplan/ModelFloorplanPlugin/Components/RoomLabels/RoomLabels.js +0 -265
  203. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleItem.js +0 -301
  204. package/libs/floorplan/ModelFloorplanPlugin/Components/RuleLabels/RuleLabels.js +0 -219
  205. package/libs/floorplan/ModelFloorplanPlugin/typings/events.type.d.ts +0 -23
  206. package/libs/shared-utils/five/useFivePlugin.d.ts +0 -1
  207. package/libs/shared-utils/five/useFivePlugin.js +0 -8
  208. package/libs/shared-utils/useDebounce.d.ts +0 -8
  209. package/libs/shared-utils/useDebounce.js +0 -22
  210. package/libs/shared-utils/useThrottle.d.ts +0 -8
  211. package/libs/shared-utils/useThrottle.js +0 -25
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var internal = require('svelte/internal');
6
6
  var svelte = require('svelte');
7
+ var five = require('@realsee/five');
7
8
 
8
9
  const CAMERA_IMAGE = 'data:image/png;base64,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';
9
10
 
@@ -118,11 +119,11 @@ function instance$8($$self, $$props, $$invalidate) {
118
119
  svelte.onMount(() => {
119
120
  five.on('panoWillArrive', onFivePanoWillArrive);
120
121
  five.on('cameraDirectionUpdate', onFiveCameraDirectionUpdate);
121
- });
122
122
 
123
- svelte.onDestroy(() => {
124
- five.off('panoWillArrive', onFivePanoWillArrive);
125
- five.off('cameraDirectionUpdate', onFiveCameraDirectionUpdate);
123
+ return function dispose() {
124
+ five.off('panoWillArrive', onFivePanoWillArrive);
125
+ five.off('cameraDirectionUpdate', onFiveCameraDirectionUpdate);
126
+ };
126
127
  });
127
128
 
128
129
  $$self.$$set = $$props => {
@@ -437,7 +438,7 @@ function add_css$3(target) {
437
438
  }
438
439
 
439
440
  // (13:22)
440
- function create_if_block_1(ctx) {
441
+ function create_if_block_1$1(ctx) {
441
442
  let normalimage;
442
443
  let current;
443
444
  normalimage = new Normalmage({ props: { url: /*imageData*/ ctx[1].url } });
@@ -512,7 +513,7 @@ function create_fragment$4(ctx) {
512
513
  let current_block_type_index;
513
514
  let if_block;
514
515
  let current;
515
- const if_block_creators = [create_if_block$2, create_if_block_1];
516
+ const if_block_creators = [create_if_block$2, create_if_block_1$1];
516
517
  const if_blocks = [];
517
518
 
518
519
  function select_block_type(ctx, dirty) {
@@ -690,22 +691,35 @@ function add_css$2(target) {
690
691
 
691
692
  function create_fragment$3(ctx) {
692
693
  let path;
694
+ let mounted;
695
+ let dispose;
693
696
 
694
697
  return {
695
698
  c() {
696
699
  path = internal.svg_element("path");
697
- internal.attr(path, "d", /*_pathD*/ ctx[0]);
700
+ internal.attr(path, "d", /*_pathD*/ ctx[2]);
698
701
  internal.attr(path, "fill", `#fff`);
699
702
  internal.attr(path, "class", "svelte-19uvvss");
700
703
  },
701
704
  m(target, anchor) {
702
705
  internal.insert(target, path, anchor);
706
+
707
+ if (!mounted) {
708
+ dispose = [
709
+ internal.listen(path, "mouseenter", /*onMouseEnter*/ ctx[0]),
710
+ internal.listen(path, "mouseleave", /*onMouseLeave*/ ctx[1])
711
+ ];
712
+
713
+ mounted = true;
714
+ }
703
715
  },
704
716
  p: internal.noop,
705
717
  i: internal.noop,
706
718
  o: internal.noop,
707
719
  d(detaching) {
708
720
  if (detaching) internal.detach(path);
721
+ mounted = false;
722
+ internal.run_all(dispose);
709
723
  }
710
724
  };
711
725
  }
@@ -713,6 +727,16 @@ function create_fragment$3(ctx) {
713
727
  function instance$3($$self, $$props, $$invalidate) {
714
728
  let { room } = $$props;
715
729
  let { floorplanData } = $$props;
730
+ let { hoveredRoom } = $$props;
731
+
732
+ function onMouseEnter() {
733
+ hoveredRoom.set(room);
734
+ }
735
+
736
+ function onMouseLeave() {
737
+ hoveredRoom.set(undefined);
738
+ }
739
+
716
740
  const { bounding } = floorplanData;
717
741
 
718
742
  const _pathD = pathD(room.path, {
@@ -721,17 +745,31 @@ function instance$3($$self, $$props, $$invalidate) {
721
745
  });
722
746
 
723
747
  $$self.$$set = $$props => {
724
- if ('room' in $$props) $$invalidate(1, room = $$props.room);
725
- if ('floorplanData' in $$props) $$invalidate(2, floorplanData = $$props.floorplanData);
748
+ if ('room' in $$props) $$invalidate(3, room = $$props.room);
749
+ if ('floorplanData' in $$props) $$invalidate(4, floorplanData = $$props.floorplanData);
750
+ if ('hoveredRoom' in $$props) $$invalidate(5, hoveredRoom = $$props.hoveredRoom);
726
751
  };
727
752
 
728
- return [_pathD, room, floorplanData];
753
+ return [onMouseEnter, onMouseLeave, _pathD, room, floorplanData, hoveredRoom];
729
754
  }
730
755
 
731
756
  class Room extends internal.SvelteComponent {
732
757
  constructor(options) {
733
758
  super();
734
- internal.init(this, options, instance$3, create_fragment$3, internal.safe_not_equal, { room: 1, floorplanData: 2 }, add_css$2);
759
+
760
+ internal.init(
761
+ this,
762
+ options,
763
+ instance$3,
764
+ create_fragment$3,
765
+ internal.safe_not_equal,
766
+ {
767
+ room: 3,
768
+ floorplanData: 4,
769
+ hoveredRoom: 5
770
+ },
771
+ add_css$2
772
+ );
735
773
  }
736
774
  }
737
775
 
@@ -743,11 +781,11 @@ function add_css$1(target) {
743
781
 
744
782
  function get_each_context(ctx, list, i) {
745
783
  const child_ctx = ctx.slice();
746
- child_ctx[4] = list[i];
784
+ child_ctx[5] = list[i];
747
785
  return child_ctx;
748
786
  }
749
787
 
750
- // (10:4) {#each floorplanData.floorDatas[floorIndex].rooms as room (room.id)}
788
+ // (11:4) {#each floorplanData.floorDatas[floorIndex].rooms as room (room.id)}
751
789
  function create_each_block(key_1, ctx) {
752
790
  let first;
753
791
  let room;
@@ -755,8 +793,9 @@ function create_each_block(key_1, ctx) {
755
793
 
756
794
  const room_spread_levels = [
757
795
  {
758
- room: /*room*/ ctx[4],
759
- floorplanData: /*floorplanData*/ ctx[1]
796
+ room: /*room*/ ctx[5],
797
+ floorplanData: /*floorplanData*/ ctx[1],
798
+ hoveredRoom: /*hoveredRoom*/ ctx[2]
760
799
  }
761
800
  ];
762
801
 
@@ -784,11 +823,12 @@ function create_each_block(key_1, ctx) {
784
823
  p(new_ctx, dirty) {
785
824
  ctx = new_ctx;
786
825
 
787
- const room_changes = (dirty & /*floorplanData, floorIndex*/ 3)
826
+ const room_changes = (dirty & /*floorplanData, floorIndex, hoveredRoom*/ 7)
788
827
  ? internal.get_spread_update(room_spread_levels, [
789
828
  {
790
- room: /*room*/ ctx[4],
791
- floorplanData: /*floorplanData*/ ctx[1]
829
+ room: /*room*/ ctx[5],
830
+ floorplanData: /*floorplanData*/ ctx[1],
831
+ hoveredRoom: /*hoveredRoom*/ ctx[2]
792
832
  }
793
833
  ])
794
834
  : {};
@@ -818,7 +858,7 @@ function create_fragment$2(ctx) {
818
858
  let each_1_lookup = new Map();
819
859
  let current;
820
860
  let each_value = /*floorplanData*/ ctx[1].floorDatas[/*floorIndex*/ ctx[0]].rooms;
821
- const get_key = ctx => /*room*/ ctx[4].id;
861
+ const get_key = ctx => /*room*/ ctx[5].id;
822
862
 
823
863
  for (let i = 0; i < each_value.length; i += 1) {
824
864
  let child_ctx = get_each_context(ctx, each_value, i);
@@ -837,7 +877,7 @@ function create_fragment$2(ctx) {
837
877
 
838
878
  internal.attr(svg, "width", "100%");
839
879
  internal.attr(svg, "height", "100%");
840
- internal.attr(svg, "viewBox", `0 0 ${/*boundingWidth*/ ctx[2]} ${/*boundingHeight*/ ctx[3]}`);
880
+ internal.attr(svg, "viewBox", `0 0 ${/*boundingWidth*/ ctx[3]} ${/*boundingHeight*/ ctx[4]}`);
841
881
  internal.attr(svg, "class", "svelte-1kqo6e4");
842
882
  internal.attr(div, "class", "floorplan-plugin__room-highlight svelte-1kqo6e4");
843
883
  },
@@ -852,7 +892,7 @@ function create_fragment$2(ctx) {
852
892
  current = true;
853
893
  },
854
894
  p(ctx, [dirty]) {
855
- if (dirty & /*floorplanData, floorIndex*/ 3) {
895
+ if (dirty & /*floorplanData, floorIndex, hoveredRoom*/ 7) {
856
896
  each_value = /*floorplanData*/ ctx[1].floorDatas[/*floorIndex*/ ctx[0]].rooms;
857
897
  internal.group_outros();
858
898
  each_blocks = internal.update_keyed_each(each_blocks, dirty, get_key, 1, ctx, each_value, each_1_lookup, svg, internal.outro_and_destroy_block, create_each_block, null, get_each_context);
@@ -888,21 +928,36 @@ function create_fragment$2(ctx) {
888
928
  function instance$2($$self, $$props, $$invalidate) {
889
929
  let { floorIndex } = $$props;
890
930
  let { floorplanData } = $$props;
931
+ let { hoveredRoom } = $$props;
891
932
  const boundingWidth = floorplanData.bounding.max.x - floorplanData.bounding.min.x;
892
933
  const boundingHeight = floorplanData.bounding.max.y - floorplanData.bounding.min.y;
893
934
 
894
935
  $$self.$$set = $$props => {
895
936
  if ('floorIndex' in $$props) $$invalidate(0, floorIndex = $$props.floorIndex);
896
937
  if ('floorplanData' in $$props) $$invalidate(1, floorplanData = $$props.floorplanData);
938
+ if ('hoveredRoom' in $$props) $$invalidate(2, hoveredRoom = $$props.hoveredRoom);
897
939
  };
898
940
 
899
- return [floorIndex, floorplanData, boundingWidth, boundingHeight];
941
+ return [floorIndex, floorplanData, hoveredRoom, boundingWidth, boundingHeight];
900
942
  }
901
943
 
902
944
  class RoomHighlight extends internal.SvelteComponent {
903
945
  constructor(options) {
904
946
  super();
905
- internal.init(this, options, instance$2, create_fragment$2, internal.safe_not_equal, { floorIndex: 0, floorplanData: 1 }, add_css$1);
947
+
948
+ internal.init(
949
+ this,
950
+ options,
951
+ instance$2,
952
+ create_fragment$2,
953
+ internal.safe_not_equal,
954
+ {
955
+ floorIndex: 0,
956
+ floorplanData: 1,
957
+ hoveredRoom: 2
958
+ },
959
+ add_css$1
960
+ );
906
961
  }
907
962
  }
908
963
 
@@ -1139,24 +1194,85 @@ function add_css(target) {
1139
1194
  internal.append_styles(target, "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}");
1140
1195
  }
1141
1196
 
1142
- // (41:2) {#if clientWidth !== 0}
1197
+ // (41:0) {#if visible}
1143
1198
  function create_if_block(ctx) {
1199
+ let div;
1200
+ let div_resize_listener;
1201
+ let current;
1202
+ let if_block = /*clientWidth*/ ctx[6] !== 0 && create_if_block_1(ctx);
1203
+
1204
+ return {
1205
+ c() {
1206
+ div = internal.element("div");
1207
+ if (if_block) if_block.c();
1208
+ internal.attr(div, "class", "plugin-floorplan-radar svelte-1mvqyqq");
1209
+ internal.add_render_callback(() => /*div_elementresize_handler*/ ctx[12].call(div));
1210
+ },
1211
+ m(target, anchor) {
1212
+ internal.insert(target, div, anchor);
1213
+ if (if_block) if_block.m(div, null);
1214
+ div_resize_listener = internal.add_resize_listener(div, /*div_elementresize_handler*/ ctx[12].bind(div));
1215
+ current = true;
1216
+ },
1217
+ p(ctx, dirty) {
1218
+ if (/*clientWidth*/ ctx[6] !== 0) {
1219
+ if (if_block) {
1220
+ if_block.p(ctx, dirty);
1221
+
1222
+ if (dirty & /*clientWidth*/ 64) {
1223
+ internal.transition_in(if_block, 1);
1224
+ }
1225
+ } else {
1226
+ if_block = create_if_block_1(ctx);
1227
+ if_block.c();
1228
+ internal.transition_in(if_block, 1);
1229
+ if_block.m(div, null);
1230
+ }
1231
+ } else if (if_block) {
1232
+ internal.group_outros();
1233
+
1234
+ internal.transition_out(if_block, 1, 1, () => {
1235
+ if_block = null;
1236
+ });
1237
+
1238
+ internal.check_outros();
1239
+ }
1240
+ },
1241
+ i(local) {
1242
+ if (current) return;
1243
+ internal.transition_in(if_block);
1244
+ current = true;
1245
+ },
1246
+ o(local) {
1247
+ internal.transition_out(if_block);
1248
+ current = false;
1249
+ },
1250
+ d(detaching) {
1251
+ if (detaching) internal.detach(div);
1252
+ if (if_block) if_block.d();
1253
+ div_resize_listener();
1254
+ }
1255
+ };
1256
+ }
1257
+
1258
+ // (43:4) {#if clientWidth !== 0}
1259
+ function create_if_block_1(ctx) {
1144
1260
  let div;
1145
1261
  let currentfloor;
1146
1262
  let t;
1147
1263
  let camera;
1148
- let style_width = `${/*contentWidth*/ ctx[7]}px`;
1149
- let style_height = `${/*contentHeight*/ ctx[10]}px`;
1264
+ let style_width = `${/*contentWidth*/ ctx[8]}px`;
1265
+ let style_height = `${/*contentHeight*/ ctx[11]}px`;
1150
1266
  let current;
1151
1267
 
1152
1268
  const currentfloor_spread_levels = [
1153
1269
  {
1154
1270
  five: /*five*/ ctx[0],
1155
- pxmm: /*pxmm*/ ctx[8],
1156
- floorIndex: /*floorIndex*/ ctx[9],
1157
- floorplanData: /*floorplanData*/ ctx[2],
1158
- hoverEnable: /*hoverEnable*/ ctx[1],
1159
- extraObjects: /*extraObjects*/ ctx[4]
1271
+ pxmm: /*pxmm*/ ctx[9],
1272
+ floorIndex: /*floorIndex*/ ctx[10],
1273
+ floorplanData: /*floorplanData*/ ctx[3],
1274
+ hoverEnable: /*hoverEnable*/ ctx[2],
1275
+ extraObjects: /*extraObjects*/ ctx[5]
1160
1276
  }
1161
1277
  ];
1162
1278
 
@@ -1170,10 +1286,10 @@ function create_if_block(ctx) {
1170
1286
 
1171
1287
  const camera_spread_levels = [
1172
1288
  {
1173
- pxmm: /*pxmm*/ ctx[8],
1289
+ pxmm: /*pxmm*/ ctx[9],
1174
1290
  five: /*five*/ ctx[0],
1175
- floorplanData: /*floorplanData*/ ctx[2],
1176
- cameraImageUrl: /*cameraImageUrl*/ ctx[3]
1291
+ floorplanData: /*floorplanData*/ ctx[3],
1292
+ cameraImageUrl: /*cameraImageUrl*/ ctx[4]
1177
1293
  }
1178
1294
  ];
1179
1295
 
@@ -1203,39 +1319,39 @@ function create_if_block(ctx) {
1203
1319
  current = true;
1204
1320
  },
1205
1321
  p(ctx, dirty) {
1206
- const currentfloor_changes = (dirty & /*five, pxmm, floorIndex, floorplanData, hoverEnable, extraObjects*/ 791)
1322
+ const currentfloor_changes = (dirty & /*five, pxmm, floorIndex, floorplanData, hoverEnable, extraObjects*/ 1581)
1207
1323
  ? internal.get_spread_update(currentfloor_spread_levels, [
1208
1324
  {
1209
1325
  five: /*five*/ ctx[0],
1210
- pxmm: /*pxmm*/ ctx[8],
1211
- floorIndex: /*floorIndex*/ ctx[9],
1212
- floorplanData: /*floorplanData*/ ctx[2],
1213
- hoverEnable: /*hoverEnable*/ ctx[1],
1214
- extraObjects: /*extraObjects*/ ctx[4]
1326
+ pxmm: /*pxmm*/ ctx[9],
1327
+ floorIndex: /*floorIndex*/ ctx[10],
1328
+ floorplanData: /*floorplanData*/ ctx[3],
1329
+ hoverEnable: /*hoverEnable*/ ctx[2],
1330
+ extraObjects: /*extraObjects*/ ctx[5]
1215
1331
  }
1216
1332
  ])
1217
1333
  : {};
1218
1334
 
1219
1335
  currentfloor.$set(currentfloor_changes);
1220
1336
 
1221
- const camera_changes = (dirty & /*pxmm, five, floorplanData, cameraImageUrl*/ 269)
1337
+ const camera_changes = (dirty & /*pxmm, five, floorplanData, cameraImageUrl*/ 537)
1222
1338
  ? internal.get_spread_update(camera_spread_levels, [
1223
1339
  {
1224
- pxmm: /*pxmm*/ ctx[8],
1340
+ pxmm: /*pxmm*/ ctx[9],
1225
1341
  five: /*five*/ ctx[0],
1226
- floorplanData: /*floorplanData*/ ctx[2],
1227
- cameraImageUrl: /*cameraImageUrl*/ ctx[3]
1342
+ floorplanData: /*floorplanData*/ ctx[3],
1343
+ cameraImageUrl: /*cameraImageUrl*/ ctx[4]
1228
1344
  }
1229
1345
  ])
1230
1346
  : {};
1231
1347
 
1232
1348
  camera.$set(camera_changes);
1233
1349
 
1234
- if (dirty & /*contentWidth*/ 128 && style_width !== (style_width = `${/*contentWidth*/ ctx[7]}px`)) {
1350
+ if (dirty & /*contentWidth*/ 256 && style_width !== (style_width = `${/*contentWidth*/ ctx[8]}px`)) {
1235
1351
  internal.set_style(div, "width", style_width, false);
1236
1352
  }
1237
1353
 
1238
- if (dirty & /*contentHeight*/ 1024 && style_height !== (style_height = `${/*contentHeight*/ ctx[10]}px`)) {
1354
+ if (dirty & /*contentHeight*/ 2048 && style_height !== (style_height = `${/*contentHeight*/ ctx[11]}px`)) {
1239
1355
  internal.set_style(div, "height", style_height, false);
1240
1356
  }
1241
1357
  },
@@ -1259,37 +1375,33 @@ function create_if_block(ctx) {
1259
1375
  }
1260
1376
 
1261
1377
  function create_fragment(ctx) {
1262
- let div;
1263
- let div_resize_listener;
1378
+ let if_block_anchor;
1264
1379
  let current;
1265
- let if_block = /*clientWidth*/ ctx[5] !== 0 && create_if_block(ctx);
1380
+ let if_block = /*visible*/ ctx[1] && create_if_block(ctx);
1266
1381
 
1267
1382
  return {
1268
1383
  c() {
1269
- div = internal.element("div");
1270
1384
  if (if_block) if_block.c();
1271
- internal.attr(div, "class", "plugin-floorplan-radar svelte-1mvqyqq");
1272
- internal.add_render_callback(() => /*div_elementresize_handler*/ ctx[11].call(div));
1385
+ if_block_anchor = internal.empty();
1273
1386
  },
1274
1387
  m(target, anchor) {
1275
- internal.insert(target, div, anchor);
1276
- if (if_block) if_block.m(div, null);
1277
- div_resize_listener = internal.add_resize_listener(div, /*div_elementresize_handler*/ ctx[11].bind(div));
1388
+ if (if_block) if_block.m(target, anchor);
1389
+ internal.insert(target, if_block_anchor, anchor);
1278
1390
  current = true;
1279
1391
  },
1280
1392
  p(ctx, [dirty]) {
1281
- if (/*clientWidth*/ ctx[5] !== 0) {
1393
+ if (/*visible*/ ctx[1]) {
1282
1394
  if (if_block) {
1283
1395
  if_block.p(ctx, dirty);
1284
1396
 
1285
- if (dirty & /*clientWidth*/ 32) {
1397
+ if (dirty & /*visible*/ 2) {
1286
1398
  internal.transition_in(if_block, 1);
1287
1399
  }
1288
1400
  } else {
1289
1401
  if_block = create_if_block(ctx);
1290
1402
  if_block.c();
1291
1403
  internal.transition_in(if_block, 1);
1292
- if_block.m(div, null);
1404
+ if_block.m(if_block_anchor.parentNode, if_block_anchor);
1293
1405
  }
1294
1406
  } else if (if_block) {
1295
1407
  internal.group_outros();
@@ -1311,15 +1423,15 @@ function create_fragment(ctx) {
1311
1423
  current = false;
1312
1424
  },
1313
1425
  d(detaching) {
1314
- if (detaching) internal.detach(div);
1315
- if (if_block) if_block.d();
1316
- div_resize_listener();
1426
+ if (if_block) if_block.d(detaching);
1427
+ if (detaching) internal.detach(if_block_anchor);
1317
1428
  }
1318
1429
  };
1319
1430
  }
1320
1431
 
1321
1432
  function instance($$self, $$props, $$invalidate) {
1322
1433
  let { five } = $$props;
1434
+ let { visible } = $$props;
1323
1435
  let { hoverEnable } = $$props;
1324
1436
  let { floorplanData } = $$props;
1325
1437
  let { cameraImageUrl } = $$props;
@@ -1332,7 +1444,7 @@ function instance($$self, $$props, $$invalidate) {
1332
1444
  let contentHeight = 0;
1333
1445
 
1334
1446
  function handlePanoArrived(panoIndex) {
1335
- $$invalidate(9, floorIndex = five.work.observers[panoIndex].floorIndex);
1447
+ $$invalidate(10, floorIndex = five.work.observers[panoIndex].floorIndex);
1336
1448
  }
1337
1449
 
1338
1450
  svelte.onMount(() => {
@@ -1346,20 +1458,21 @@ function instance($$self, $$props, $$invalidate) {
1346
1458
  function div_elementresize_handler() {
1347
1459
  clientWidth = this.clientWidth;
1348
1460
  clientHeight = this.clientHeight;
1349
- $$invalidate(5, clientWidth);
1350
- $$invalidate(6, clientHeight);
1461
+ $$invalidate(6, clientWidth);
1462
+ $$invalidate(7, clientHeight);
1351
1463
  }
1352
1464
 
1353
1465
  $$self.$$set = $$props => {
1354
1466
  if ('five' in $$props) $$invalidate(0, five = $$props.five);
1355
- if ('hoverEnable' in $$props) $$invalidate(1, hoverEnable = $$props.hoverEnable);
1356
- if ('floorplanData' in $$props) $$invalidate(2, floorplanData = $$props.floorplanData);
1357
- if ('cameraImageUrl' in $$props) $$invalidate(3, cameraImageUrl = $$props.cameraImageUrl);
1358
- if ('extraObjects' in $$props) $$invalidate(4, extraObjects = $$props.extraObjects);
1467
+ if ('visible' in $$props) $$invalidate(1, visible = $$props.visible);
1468
+ if ('hoverEnable' in $$props) $$invalidate(2, hoverEnable = $$props.hoverEnable);
1469
+ if ('floorplanData' in $$props) $$invalidate(3, floorplanData = $$props.floorplanData);
1470
+ if ('cameraImageUrl' in $$props) $$invalidate(4, cameraImageUrl = $$props.cameraImageUrl);
1471
+ if ('extraObjects' in $$props) $$invalidate(5, extraObjects = $$props.extraObjects);
1359
1472
  };
1360
1473
 
1361
1474
  $$self.$$.update = () => {
1362
- if ($$self.$$.dirty & /*clientWidth, clientHeight, floorplanData, contentWidth*/ 228) {
1475
+ if ($$self.$$.dirty & /*clientWidth, clientHeight, floorplanData, contentWidth*/ 456) {
1363
1476
  {
1364
1477
  const size = Math.min(clientWidth, clientHeight);
1365
1478
  const { max, min } = floorplanData.bounding;
@@ -1371,15 +1484,16 @@ function instance($$self, $$props, $$invalidate) {
1371
1484
  return [size / boundingHeight * boundingWidth, size];
1372
1485
  })();
1373
1486
 
1374
- $$invalidate(7, contentWidth = contentSize[0]);
1375
- $$invalidate(10, contentHeight = contentSize[1]);
1376
- $$invalidate(8, pxmm = contentWidth / boundingWidth);
1487
+ $$invalidate(8, contentWidth = contentSize[0]);
1488
+ $$invalidate(11, contentHeight = contentSize[1]);
1489
+ $$invalidate(9, pxmm = contentWidth / boundingWidth);
1377
1490
  }
1378
1491
  }
1379
1492
  };
1380
1493
 
1381
1494
  return [
1382
1495
  five,
1496
+ visible,
1383
1497
  hoverEnable,
1384
1498
  floorplanData,
1385
1499
  cameraImageUrl,
@@ -1406,16 +1520,155 @@ class Main extends internal.SvelteComponent {
1406
1520
  internal.safe_not_equal,
1407
1521
  {
1408
1522
  five: 0,
1409
- hoverEnable: 1,
1410
- floorplanData: 2,
1411
- cameraImageUrl: 3,
1412
- extraObjects: 4
1523
+ visible: 1,
1524
+ hoverEnable: 2,
1525
+ floorplanData: 3,
1526
+ cameraImageUrl: 4,
1527
+ extraObjects: 5
1413
1528
  },
1414
1529
  add_css
1415
1530
  );
1416
1531
  }
1417
1532
  }
1418
1533
 
1534
+ /**
1535
+ * 检查一个值是否是狭义上的对象
1536
+ * @param {any} value 要检查的值
1537
+ *
1538
+ * isTruelyObject({})
1539
+ * // => true
1540
+ *
1541
+ * isObjectLike([1, 2, 3])
1542
+ * // => false
1543
+ *
1544
+ * isObjectLike(Function)
1545
+ * // => false
1546
+ *
1547
+ * isObjectLike(null)
1548
+ * // => false
1549
+ *
1550
+ */
1551
+ function isTruelyObject(value) {
1552
+ return Object.prototype.toString.call(value) === '[object Object]';
1553
+ }
1554
+
1555
+ /* eslint-disable @typescript-eslint/no-use-before-define */
1556
+ function baseIsEqual(value, other) {
1557
+ if (value === other)
1558
+ return true;
1559
+ if (typeof value !== typeof other)
1560
+ return false;
1561
+ if (Number.isNaN(value) && Number.isNaN(other))
1562
+ return true;
1563
+ return false;
1564
+ }
1565
+ function objEqualShallow(value, other) {
1566
+ const valueProps = Object.getOwnPropertyNames(value);
1567
+ const otherProps = Object.getOwnPropertyNames(other);
1568
+ if (valueProps.length !== otherProps.length)
1569
+ return false;
1570
+ for (let i = 0, len = valueProps.length; i < len; i++) {
1571
+ const propName = valueProps[i];
1572
+ if (!baseIsEqual(value[propName], other[propName]))
1573
+ return false;
1574
+ }
1575
+ return true;
1576
+ }
1577
+ function arrayEqualShallow(value, other) {
1578
+ if (value.length !== other.length)
1579
+ return false;
1580
+ for (let i = 0, len = value.length; i < len; i++) {
1581
+ if (!baseIsEqual(value[i], other[i]))
1582
+ return false;
1583
+ }
1584
+ return true;
1585
+ }
1586
+ function isShallowEqual(value, other) {
1587
+ if (baseIsEqual(value, other))
1588
+ return true;
1589
+ if (isTruelyObject(value) && isTruelyObject(other))
1590
+ return objEqualShallow(value, other);
1591
+ if (Array.isArray(value) && Array.isArray(other))
1592
+ return arrayEqualShallow(value, other);
1593
+ return false;
1594
+ }
1595
+ function isDeepEqual(value, other) {
1596
+ if (baseIsEqual(value, other))
1597
+ return true;
1598
+ if (isTruelyObject(value) && isTruelyObject(other))
1599
+ return objEqualDeep(value, other);
1600
+ if (Array.isArray(value) && Array.isArray(other))
1601
+ return arrayEqualDeep(value, other);
1602
+ return false;
1603
+ }
1604
+ function arrayEqualDeep(value, other) {
1605
+ if (value.length !== other.length)
1606
+ return false;
1607
+ for (let i = 0, len = value.length; i < len; i++) {
1608
+ if (!isDeepEqual(value[i], other[i]))
1609
+ return false;
1610
+ }
1611
+ return true;
1612
+ }
1613
+ function objEqualDeep(value, other) {
1614
+ const valueProps = Object.getOwnPropertyNames(value);
1615
+ const otherProps = Object.getOwnPropertyNames(other);
1616
+ if (valueProps.length !== otherProps.length)
1617
+ return false;
1618
+ for (let i = 0, len = valueProps.length; i < len; i++) {
1619
+ const propName = valueProps[i];
1620
+ if (!isDeepEqual(value[propName], other[propName]))
1621
+ return false;
1622
+ }
1623
+ return true;
1624
+ }
1625
+ /**
1626
+ * 对象比较
1627
+ * @param {*} value 第一个比较的值
1628
+ * @param {*} other 第二个比较的值
1629
+ * @param {Object} options 可选参数,可选项包括:<br />
1630
+ * deep {Boolean} 是否深比较<br />
1631
+ * @returns {boolean} 是否相等
1632
+ */
1633
+ function equal(value, other, opt = { deep: false }) {
1634
+ if (!opt.deep)
1635
+ return isShallowEqual(value, other);
1636
+ return isDeepEqual(value, other);
1637
+ }
1638
+
1639
+ /**
1640
+ * plugin 的基本控制器
1641
+ */
1642
+ class Controller$2 {
1643
+ constructor(five$1) {
1644
+ Object.defineProperty(this, "five", {
1645
+ enumerable: true,
1646
+ configurable: true,
1647
+ writable: true,
1648
+ value: void 0
1649
+ });
1650
+ /**
1651
+ * 插件事件钩子
1652
+ */
1653
+ Object.defineProperty(this, "hooks", {
1654
+ enumerable: true,
1655
+ configurable: true,
1656
+ writable: true,
1657
+ value: new five.Subscribe()
1658
+ });
1659
+ this.five = five$1;
1660
+ }
1661
+ /**
1662
+ * 获取当前的插件状态,如果当初插件内存在需要通过动画变更的 state 值,则通过此方法可以得到中间状态
1663
+ */
1664
+ getCurrentState() {
1665
+ return this.state;
1666
+ }
1667
+ }
1668
+
1669
+ class Controller$1 extends Controller$2 {
1670
+ }
1671
+
1419
1672
  const FLOORPLAN_EXTRA_OBJECT_IMAGE = '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';
1420
1673
 
1421
1674
  async function formatOutlines(outlines) {
@@ -1511,49 +1764,59 @@ function formatExtraObjects(data, five, floorplanData) {
1511
1764
  return extraObjects;
1512
1765
  }
1513
1766
 
1514
- class PanoFloorplanRadarPluginController {
1767
+ class Controller extends Controller$1 {
1515
1768
  constructor(five, params) {
1516
- Object.defineProperty(this, "app", {
1769
+ super(five);
1770
+ // =============== public properties =================
1771
+ Object.defineProperty(this, "name", {
1517
1772
  enumerable: true,
1518
1773
  configurable: true,
1519
1774
  writable: true,
1520
- value: void 0
1775
+ value: 'panoFloorplanRadarPlugin'
1521
1776
  });
1522
- Object.defineProperty(this, "five", {
1777
+ Object.defineProperty(this, "state", {
1523
1778
  enumerable: true,
1524
1779
  configurable: true,
1525
1780
  writable: true,
1526
1781
  value: void 0
1527
1782
  });
1528
- Object.defineProperty(this, "wrapperSelector", {
1783
+ // =============== protected properties =================
1784
+ Object.defineProperty(this, "data", {
1529
1785
  enumerable: true,
1530
1786
  configurable: true,
1531
1787
  writable: true,
1532
- value: ''
1788
+ value: void 0
1533
1789
  });
1534
- Object.defineProperty(this, "data", {
1790
+ // =============== private properties =================
1791
+ Object.defineProperty(this, "app", {
1535
1792
  enumerable: true,
1536
1793
  configurable: true,
1537
1794
  writable: true,
1538
1795
  value: void 0
1539
1796
  });
1797
+ Object.defineProperty(this, "wrapperSelector", {
1798
+ enumerable: true,
1799
+ configurable: true,
1800
+ writable: true,
1801
+ value: ''
1802
+ });
1540
1803
  Object.defineProperty(this, "wrapper", {
1541
1804
  enumerable: true,
1542
1805
  configurable: true,
1543
1806
  writable: true,
1544
1807
  value: null
1545
1808
  });
1546
- Object.defineProperty(this, "extraObjects", {
1809
+ Object.defineProperty(this, "disposed", {
1547
1810
  enumerable: true,
1548
1811
  configurable: true,
1549
1812
  writable: true,
1550
- value: []
1813
+ value: false
1551
1814
  });
1552
- Object.defineProperty(this, "configs", {
1815
+ Object.defineProperty(this, "extraObjects", {
1553
1816
  enumerable: true,
1554
1817
  configurable: true,
1555
1818
  writable: true,
1556
- value: {}
1819
+ value: []
1557
1820
  });
1558
1821
  Object.defineProperty(this, "dispose", {
1559
1822
  enumerable: true,
@@ -1561,50 +1824,123 @@ class PanoFloorplanRadarPluginController {
1561
1824
  writable: true,
1562
1825
  value: () => {
1563
1826
  var _a;
1827
+ this.disposed = true;
1564
1828
  (_a = this.app) === null || _a === void 0 ? void 0 : _a.$destroy();
1829
+ this.wrapper = null;
1830
+ this.wrapperSelector = '';
1831
+ this.hooks.emit('dispose');
1565
1832
  }
1566
1833
  });
1567
- Object.defineProperty(this, "load", {
1834
+ Object.defineProperty(this, "_disable", {
1568
1835
  enumerable: true,
1569
1836
  configurable: true,
1570
1837
  writable: true,
1571
- value: async (data) => {
1572
- const copyData = JSON.parse(JSON.stringify(data));
1573
- const floorplanData = await formatData(copyData);
1574
- this.data = floorplanData;
1575
- // const loadImage = async () => {
1576
- // const floorIndex = this.five.work.observers[this.five.getCurrentState().panoIndex].floorIndex
1577
- // // 当有 svgString 时,没有加载过程
1578
- // if (floorplanData.outlines[floorIndex]?.svgContent) return
1579
- // // 如果当前楼层图片不存在,不存在加载过程
1580
- // const nowFloorImageSrc = floorplanData.outlines[floorIndex]?.url
1581
- // if (!nowFloorImageSrc) return
1582
- // // 图片加载完成时再 render
1583
- // await new Promise<void>((resolve) => {
1584
- // const nowFloorImage = new Image()
1585
- // nowFloorImage.src = nowFloorImageSrc
1586
- // nowFloorImage.onload = () => resolve()
1587
- // })
1588
- // }
1589
- // await loadImage()
1590
- this.render();
1838
+ value: (options) => {
1839
+ var _a;
1840
+ const { userAction } = options;
1841
+ (_a = this.app) === null || _a === void 0 ? void 0 : _a.$destroy();
1842
+ this.app = undefined;
1843
+ this.hooks.emit('disable', { userAction });
1591
1844
  }
1592
1845
  });
1593
1846
  this.five = five;
1594
- (params === null || params === void 0 ? void 0 : params.configs) && Object.assign(this.configs, params.configs);
1847
+ // =============== init State ===============
1848
+ const baseConfig = {
1849
+ hoverEnable: false,
1850
+ cameraImageUrl: CAMERA_IMAGE,
1851
+ };
1852
+ const paramsConfig = (params === null || params === void 0 ? void 0 : params.configs) ? params.configs : {};
1853
+ const config = Object.assign(Object.assign({}, baseConfig), paramsConfig);
1854
+ this.state = { enabled: true, visible: true, config };
1855
+ // =============== init wrapper ===============
1856
+ if (params === null || params === void 0 ? void 0 : params.wrapper)
1857
+ console.warn('不推荐继续使用 params.selector 配置父容器,请使用 appendTo 方法');
1595
1858
  if (typeof (params === null || params === void 0 ? void 0 : params.wrapper) === 'string')
1596
1859
  this.wrapperSelector = params.wrapper;
1597
1860
  else if ((params === null || params === void 0 ? void 0 : params.wrapper) instanceof Element)
1598
1861
  this.wrapper = params.wrapper;
1862
+ // =============== init Listener ===============
1599
1863
  five.once('dispose', this.dispose);
1600
1864
  }
1865
+ async load(serverData, state, userAction = true) {
1866
+ // const loadImage = async () => {
1867
+ // const floorIndex = this.five.work.observers[this.five.getCurrentState().panoIndex].floorIndex
1868
+ // // 当有 svgString 时,没有加载过程
1869
+ // if (floorplanData.outlines[floorIndex]?.svgContent) return
1870
+ // // 如果当前楼层图片不存在,不存在加载过程
1871
+ // const nowFloorImageSrc = floorplanData.outlines[floorIndex]?.url
1872
+ // if (!nowFloorImageSrc) return
1873
+ // // 图片加载完成时再 render
1874
+ // await new Promise<void>((resolve) => {
1875
+ // const nowFloorImage = new Image()
1876
+ // nowFloorImage.src = nowFloorImageSrc
1877
+ // nowFloorImage.onload = () => resolve()
1878
+ // })
1879
+ // }
1880
+ // await loadImage()
1881
+ function isPluginServerData(serverData) {
1882
+ return Object.prototype.hasOwnProperty.apply(serverData, ['version']);
1883
+ }
1884
+ const copyData = JSON.parse(JSON.stringify(serverData));
1885
+ const _serverData = isPluginServerData(copyData) ? copyData.data : copyData;
1886
+ const prevData = this.data;
1887
+ this.data = await formatData(_serverData);
1888
+ this.hooks.emit('dataLoaded', this.data);
1889
+ this.hooks.emit('dataChange', this.data, prevData);
1890
+ if (state)
1891
+ this.updateState(state, userAction);
1892
+ this.render();
1893
+ }
1894
+ async show(options = {}) {
1895
+ // 已经展示完成了,不做任何操作
1896
+ if (this.state.visible)
1897
+ return;
1898
+ const userAction = options.userAction !== undefined ? options.userAction : true;
1899
+ this.updateState({ visible: true }, userAction);
1900
+ this._show({ userAction });
1901
+ }
1902
+ async hide(options = {}) {
1903
+ if (!this.state.visible)
1904
+ return;
1905
+ const userAction = options.userAction !== undefined ? options.userAction : true;
1906
+ this.updateState({ visible: false }, userAction);
1907
+ this._hide({ userAction });
1908
+ }
1909
+ enable(options = {}) {
1910
+ if (this.state.enabled)
1911
+ return;
1912
+ const userAction = options.userAction !== undefined ? options.userAction : true;
1913
+ this.updateState({ enabled: true }, options.userAction || userAction);
1914
+ this._enable({ userAction });
1915
+ }
1916
+ disable(options = {}) {
1917
+ if (!this.state.enabled)
1918
+ return;
1919
+ const userAction = options.userAction !== undefined ? options.userAction : true;
1920
+ this.updateState({ enabled: false }, options.userAction || userAction);
1921
+ this._disable({ userAction });
1922
+ }
1923
+ /** 更改插件 State */
1924
+ setState(state, options = {}) {
1925
+ const prevState = this.state;
1926
+ const userAction = options.userAction !== undefined ? options.userAction : true;
1927
+ this.updateState(state, userAction);
1928
+ if (state.enabled !== undefined && prevState.enabled !== state.enabled) {
1929
+ const options = { userAction };
1930
+ state.enabled ? this._enable(options) : this._disable(options);
1931
+ }
1932
+ if (state.visible !== undefined && prevState.visible !== state.visible) {
1933
+ const options = { userAction };
1934
+ state.visible ? this._show(options) : this._hide(options);
1935
+ }
1936
+ }
1601
1937
  /** 把插件的渲染DOM插入到对应的容器中去 */
1602
1938
  appendTo(wrapper) {
1603
1939
  this.wrapper = wrapper;
1604
1940
  this.render();
1605
1941
  }
1606
- changeConfigs(configs) {
1607
- Object.assign(this.configs, configs);
1942
+ changeConfigs(config, userAction = true) {
1943
+ this.setState({ config }, { userAction });
1608
1944
  this.render();
1609
1945
  }
1610
1946
  setExtraObjectsWith3DPositions(data) {
@@ -1613,35 +1949,59 @@ class PanoFloorplanRadarPluginController {
1613
1949
  this.extraObjects = formatExtraObjects(data, this.five, this.data);
1614
1950
  this.render();
1615
1951
  }
1952
+ async formatData(serverData) {
1953
+ return await formatData(serverData.data);
1954
+ }
1955
+ _enable(options) {
1956
+ const { userAction } = options;
1957
+ this.hooks.emit('enable', { userAction });
1958
+ if (this.state.visible)
1959
+ this._show({ userAction });
1960
+ }
1961
+ _show(options) {
1962
+ if (this.disposed)
1963
+ return;
1964
+ if (!this.state.enabled)
1965
+ return;
1966
+ const { userAction } = options;
1967
+ this.hooks.emit('show', { userAction });
1968
+ this.render();
1969
+ }
1970
+ _hide(options) {
1971
+ if (this.disposed)
1972
+ return;
1973
+ if (!this.state.enabled)
1974
+ return;
1975
+ const { userAction } = options;
1976
+ this.hooks.emit('hide', { userAction });
1977
+ this.render();
1978
+ }
1979
+ updateState(state, userAction) {
1980
+ const prevState = this.state;
1981
+ this.state = Object.assign(Object.assign({}, this.state), state);
1982
+ if (equal(this.state, prevState, { deep: true }))
1983
+ return;
1984
+ this.hooks.emit('stateChange', { state: this.state, prevState, userAction });
1985
+ }
1616
1986
  render() {
1617
- var _a;
1987
+ if (this.disposed)
1988
+ return;
1989
+ if (!this.state.enabled)
1990
+ return;
1618
1991
  // 处理 wrapper
1619
- if (!this.wrapper) {
1992
+ if (!this.wrapper && this.wrapperSelector) {
1620
1993
  const _wrapper = document.querySelector(this.wrapperSelector);
1621
1994
  this.wrapper = _wrapper;
1622
1995
  }
1623
1996
  if (!this.data || !this.wrapper)
1624
1997
  return;
1625
- const props = {
1626
- five: this.five,
1627
- floorplanData: this.data,
1628
- extraObjects: this.extraObjects,
1629
- cameraImageUrl: this.configs.cameraImageUrl,
1630
- hoverEnable: (_a = this.configs.hoverEnable) !== null && _a !== void 0 ? _a : false,
1631
- };
1632
- if (!this.app) {
1633
- this.app = new Main({
1634
- target: this.wrapper,
1635
- props,
1636
- });
1637
- return;
1638
- }
1639
- this.app.$set(props);
1998
+ const props = Object.assign(Object.assign({}, this.state.config), { five: this.five, floorplanData: this.data, visible: this.state.visible, extraObjects: this.extraObjects });
1999
+ this.app ? this.app.$set(props) : (this.app = new Main({ target: this.wrapper, props }));
1640
2000
  }
1641
2001
  }
1642
2002
 
1643
2003
  const PanoFloorplanRadarPlugin = (five, params) => {
1644
- return new PanoFloorplanRadarPluginController(five, params);
2004
+ return new Controller(five, params);
1645
2005
  };
1646
2006
 
1647
2007
  exports.PanoFloorplanRadarPlugin = PanoFloorplanRadarPlugin;