@realsee/dnalogel 3.57.1 → 3.58.0
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.
- package/CHANGELOG.md +4 -0
- package/dist/PanoTagPlugin/controller/Tag/BaseTag.d.ts +3 -1
- package/dist/PanoTagPlugin/controller/TagUtil.d.ts +1 -1
- package/dist/PanoTagPlugin/typings/tag/TagConfig.d.ts +1 -3
- package/dist/index.cjs.js +29 -29
- package/dist/index.js +624 -605
- package/dist/index.umd.js +29 -29
- package/docs/classes/AreaMakerPluginType.AreaMakerController.html +2 -2
- package/docs/classes/AreaMakerPluginType.AreaMakerItem.html +2 -2
- package/docs/classes/CSS3DRender.html +2 -2
- package/docs/classes/GuideLineItem.GuideLineItem.html +2 -2
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +2 -2
- package/docs/classes/ModelMakerPluginInstance.html +2 -2
- package/docs/classes/ModelRoomLabelController.html +2 -2
- package/docs/classes/MoveController.html +2 -2
- package/docs/classes/Object3DHelperController.html +2 -2
- package/docs/classes/PaintBrush.html +2 -2
- package/docs/classes/PanoMeasurePluginLine.html +2 -2
- package/docs/classes/PanoMeasurePluginModel.html +2 -2
- package/docs/classes/PanoMeasurePluginPoint.html +2 -2
- package/docs/classes/PanoMeasurePluginPolyline.html +2 -2
- package/docs/classes/PanoTagPluginController.html +23 -23
- package/docs/classes/Sculpt.html +2 -2
- package/docs/classes/Util.BetterTween.html +2 -2
- package/docs/classes/Util.FiveDomEvents.html +2 -2
- package/docs/classes/Util.FivePuppet.html +2 -2
- package/docs/classes/Util.Interval.html +2 -2
- package/docs/classes/Util.LightTag.html +2 -2
- package/docs/classes/Util.LineSegments.html +2 -2
- package/docs/classes/Util.Magnifier.html +2 -2
- package/docs/classes/Util.Object3D.html +2 -2
- package/docs/classes/Util.PointHelper.html +2 -2
- package/docs/classes/Util.PointSelector.html +2 -2
- package/docs/classes/Util.PointSelectorHelper.html +2 -2
- package/docs/classes/Util.Rectangle.html +2 -2
- package/docs/classes/Util.sculpt.BaseEditor.html +2 -2
- package/docs/classes/Util.sculpt.BoxMesh.html +2 -2
- package/docs/classes/Util.sculpt.BoxMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.CircleMesh.html +2 -2
- package/docs/classes/Util.sculpt.CircleMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.CircleWithEdgeMesh.html +2 -2
- package/docs/classes/Util.sculpt.CylinderMesh.html +2 -2
- package/docs/classes/Util.sculpt.CylinderMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.LineMesh.html +2 -2
- package/docs/classes/Util.sculpt.PointMesh.html +2 -2
- package/docs/classes/Util.sculpt.PolygonMesh.html +2 -2
- package/docs/classes/Util.sculpt.PrismMesh.html +2 -2
- package/docs/classes/Util.sculpt.PrismMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.RectangleMesh.html +2 -2
- package/docs/classes/Util.sculpt.RectangleMeshEditor.html +2 -2
- package/docs/classes/Util.sculpt.RectangleWithEdgeMesh.html +2 -2
- package/docs/classes/WalkController.html +2 -2
- package/docs/enums/CameraMovementEffect.html +2 -2
- package/docs/enums/ContentType.html +2 -2
- package/docs/enums/DIRECTION.html +2 -2
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +2 -2
- package/docs/enums/DimensionType.html +2 -2
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +2 -2
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +2 -2
- package/docs/enums/PaintBrushTypeEnum.html +2 -2
- package/docs/enums/PointType.html +2 -2
- package/docs/enums/Rotation.html +2 -2
- package/docs/functions/AreaMakerPlugin.html +1 -1
- package/docs/functions/CSS3DRenderPlugin.html +1 -1
- package/docs/functions/CameraMovementPlugin.html +2 -2
- package/docs/functions/CruisePlugin.html +1 -1
- package/docs/functions/CurrentPanoImagePlugin.html +1 -1
- package/docs/functions/GuideLinePlugin.html +1 -1
- package/docs/functions/ItemLabelPlugin.html +1 -1
- package/docs/functions/MapviewFloorplanPlugin.html +1 -1
- package/docs/functions/ModelChassisCompassPlugin.html +2 -2
- package/docs/functions/ModelEntryDoorGuidePlugin.html +2 -2
- package/docs/functions/ModelFloorplanPlugin.html +1 -1
- package/docs/functions/ModelItemLabelPlugin.html +1 -1
- package/docs/functions/ModelMakerPlugin.html +1 -1
- package/docs/functions/ModelRoomLabelPlugin.html +1 -1
- package/docs/functions/ModelTVVideoPlugin.html +1 -1
- package/docs/functions/ModelViewPlugin.html +2 -2
- package/docs/functions/MovePlugin.html +1 -1
- package/docs/functions/Object3DHelperPlugin.html +1 -1
- package/docs/functions/PanoCompassPlugin.html +1 -1
- package/docs/functions/PanoCursorRaycasterPlugin.html +2 -2
- package/docs/functions/PanoDoorLabelPlugin.html +1 -1
- package/docs/functions/PanoFloorplanRadarPlugin.html +1 -1
- package/docs/functions/PanoMeasurePlugin.html +1 -1
- package/docs/functions/PanoRulerPlugin.html +2 -2
- package/docs/functions/PanoRulerProPlugin.html +2 -2
- package/docs/functions/PanoSpatialTagPlugin.html +2 -2
- package/docs/functions/PanoTagPlugin.html +1 -1
- package/docs/functions/PanoVideoPlugin.html +2 -2
- package/docs/functions/PipelinePlugin.html +1 -1
- package/docs/functions/SculptPlugin.html +2 -2
- package/docs/functions/TopviewFloorplanPlugin.html +1 -1
- package/docs/functions/Util.absoluteUrl.html +2 -2
- package/docs/functions/Util.awaitNextFrame.html +1 -1
- package/docs/functions/Util.blink.html +2 -2
- package/docs/functions/Util.bounding.html +1 -1
- package/docs/functions/Util.boundingBox.html +1 -1
- package/docs/functions/Util.boundingSphere.html +1 -1
- package/docs/functions/Util.boxVertex.html +2 -2
- package/docs/functions/Util.boxVertexes.html +1 -1
- package/docs/functions/Util.checkFiveModelLoaded.html +2 -2
- package/docs/functions/Util.convexHull.html +2 -2
- package/docs/functions/Util.equal.html +2 -2
- package/docs/functions/Util.fiveModelIsLoaded.html +2 -2
- package/docs/functions/Util.getCoordsFromClient.html +1 -1
- package/docs/functions/Util.getCoordsFromElement.html +1 -1
- package/docs/functions/Util.getFrameTime.html +2 -2
- package/docs/functions/Util.inside.html +1 -1
- package/docs/functions/Util.isAbsoluteURL.html +1 -1
- package/docs/functions/Util.isModelLike.html +1 -1
- package/docs/functions/Util.isNil.html +2 -2
- package/docs/functions/Util.isPanoramaLike.html +1 -1
- package/docs/functions/Util.lookObject.html +2 -2
- package/docs/functions/Util.lookPoint.html +2 -2
- package/docs/functions/Util.nextFrame.html +1 -1
- package/docs/functions/Util.notNil.html +2 -2
- package/docs/functions/Util.reblink.html +2 -2
- package/docs/functions/Util.requestAnimationFrameInterval.html +2 -2
- package/docs/functions/Util.sculpt.createBox.html +1 -1
- package/docs/functions/Util.sculpt.createCircle.html +1 -1
- package/docs/functions/Util.sculpt.createCylinder.html +1 -1
- package/docs/functions/Util.sculpt.createLine.html +2 -2
- package/docs/functions/Util.sculpt.createPoint.html +1 -1
- package/docs/functions/Util.sculpt.createPolygon.html +1 -1
- package/docs/functions/Util.sculpt.createPrism.html +1 -1
- package/docs/functions/Util.sculpt.createRectangle.html +2 -2
- package/docs/functions/Util.tag.html +1 -1
- package/docs/functions/Util.tweenProgress.html +1 -1
- package/docs/functions/Util.uuid.html +2 -2
- package/docs/functions/Util.waitFiveModelLoaded.html +2 -2
- package/docs/functions/Util.worldBounding.html +1 -1
- package/docs/functions/Util.worldBoundingBox.html +1 -1
- package/docs/functions/Util.worldBoundingSphere.html +1 -1
- package/docs/functions/createPolyline.html +2 -2
- package/docs/functions/pluginFlag.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.AnimeOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.Config.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.EventMap.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.Params.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItem.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerAreaMakerItemV1.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerDataV1.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ServerDataV2.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.ShowHideOptions.html +2 -2
- package/docs/interfaces/AreaMakerPluginType.State.html +2 -2
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +2 -2
- package/docs/interfaces/CSS3DRenderPluginState.html +2 -2
- package/docs/interfaces/CameraMovementPluginExportType.html +2 -2
- package/docs/interfaces/ContentTypeMapInterface.html +2 -2
- package/docs/interfaces/CruisePluginTypes.Config.html +2 -2
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +2 -2
- package/docs/interfaces/CruisePluginTypes.EventMap.html +2 -2
- package/docs/interfaces/CruisePluginTypes.GuildLineConfig.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginData.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +2 -2
- package/docs/interfaces/CruisePluginTypes.PluginState.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.Config.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.EventMap.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.Params.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.ShowHideOptions.html +2 -2
- package/docs/interfaces/CurrentPanoImagePluginType.State.html +2 -2
- package/docs/interfaces/FloorplanBounding.html +2 -2
- package/docs/interfaces/FloorplanData.html +2 -2
- package/docs/interfaces/FloorplanEntrance.html +2 -2
- package/docs/interfaces/FloorplanExtraObject.html +2 -2
- package/docs/interfaces/FloorplanExtraObject3D.html +2 -2
- package/docs/interfaces/FloorplanFloorData.html +2 -2
- package/docs/interfaces/FloorplanImagePosition.html +2 -2
- package/docs/interfaces/FloorplanObserver.html +2 -2
- package/docs/interfaces/FloorplanOutlineItem.html +2 -2
- package/docs/interfaces/FloorplanPosition.html +2 -2
- package/docs/interfaces/FloorplanRoomItem.html +2 -2
- package/docs/interfaces/FloorplanRoomLabelItem.html +2 -2
- package/docs/interfaces/FloorplanServerBounding.html +2 -2
- package/docs/interfaces/FloorplanServerComputedData.html +2 -2
- package/docs/interfaces/FloorplanServerData.html +2 -2
- package/docs/interfaces/FloorplanServerDoorItem.html +2 -2
- package/docs/interfaces/FloorplanServerDoorPosition.html +2 -2
- package/docs/interfaces/FloorplanServerEntrance.html +2 -2
- package/docs/interfaces/FloorplanServerFloorData.html +2 -2
- package/docs/interfaces/FloorplanServerImagePosition.html +2 -2
- package/docs/interfaces/FloorplanServerObserver.html +2 -2
- package/docs/interfaces/FloorplanServerOutlineItem.html +2 -2
- package/docs/interfaces/FloorplanServerPosition.html +2 -2
- package/docs/interfaces/FloorplanServerRoomItem.html +2 -2
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +2 -2
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +2 -2
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +2 -2
- package/docs/interfaces/GuideLinePluginType.EventMap.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.GuideLineMeshStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +1 -1
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +2 -2
- package/docs/interfaces/GuideLinePluginType.PluginState.html +2 -2
- package/docs/interfaces/GuideLinePluginType.Route.html +2 -2
- package/docs/interfaces/GuideLinePluginType.RouteConfig.html +2 -2
- package/docs/interfaces/HelperOffset.html +2 -2
- package/docs/interfaces/ImagePlaneGroup.html +2 -2
- package/docs/interfaces/ItemLabelPluginData.html +2 -2
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +2 -2
- package/docs/interfaces/ItemLabelPluginParametersType.html +2 -2
- package/docs/interfaces/MinMax.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginData.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +2 -2
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +2 -2
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +2 -2
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginData.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +2 -2
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.EventMap.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerBaseItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerBoxItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerData.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerPrismItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.ServerTrianglesItem.html +2 -2
- package/docs/interfaces/ModelMakerPluginType.State.html +2 -2
- package/docs/interfaces/ModelRoomLabelPluginData.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginData.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginExportType.html +2 -2
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +2 -2
- package/docs/interfaces/ModelViewPluginExportType.html +2 -2
- package/docs/interfaces/Object3DHelperState.html +2 -2
- package/docs/interfaces/ObjectHelperControllers.html +2 -2
- package/docs/interfaces/PaintBrushAction.html +2 -2
- package/docs/interfaces/PaintBrushConfigs.html +2 -2
- package/docs/interfaces/PaintBrushState.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +2 -2
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +1 -1
- package/docs/interfaces/PanoMeasureParameterType.html +2 -2
- package/docs/interfaces/PanoMeasurePluginLineJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +2 -2
- package/docs/interfaces/PanoMeasurePluginPointJson.html +2 -2
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +2 -2
- package/docs/interfaces/PanoRulerPluginExportType.html +2 -2
- package/docs/interfaces/PanoRulerPluginOptions.html +2 -2
- package/docs/interfaces/PanoRulerPluginParameterType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginExportType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginOptions.html +2 -2
- package/docs/interfaces/PanoRulerProPluginParameterType.html +2 -2
- package/docs/interfaces/PanoRulerProPluginState.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +1 -1
- package/docs/interfaces/PanoSpatialTagPluginData.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +2 -2
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +2 -2
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +2 -2
- package/docs/interfaces/PluginEventMap.html +2 -2
- package/docs/interfaces/Point.html +2 -2
- package/docs/interfaces/Room.html +2 -2
- package/docs/interfaces/RoomInfo.html +2 -2
- package/docs/interfaces/RoomLabel.html +2 -2
- package/docs/interfaces/RoomRules.html +1 -1
- package/docs/interfaces/Rooms.html +1 -1
- package/docs/interfaces/Scissor.html +2 -2
- package/docs/interfaces/State.html +2 -2
- package/docs/interfaces/TagCacheInterface.html +2 -2
- package/docs/interfaces/TagConfig.html +28 -32
- package/docs/interfaces/TagGLTFObjectGroup.html +2 -2
- package/docs/interfaces/TagIconUrl.html +2 -2
- package/docs/interfaces/TagObjectGroup.html +2 -2
- package/docs/interfaces/TagStyle.html +2 -2
- package/docs/interfaces/Tags.html +2 -2
- package/docs/interfaces/TemporaryState.html +2 -2
- package/docs/interfaces/Util.AnimeInstance.html +2 -2
- package/docs/interfaces/Util.BlinkAnimeOptions.html +2 -2
- package/docs/interfaces/Util.EventHandlerConfig.html +2 -2
- package/docs/interfaces/Util.FiveDomEvent.html +2 -2
- package/docs/interfaces/Util.FiveDomEventMap.html +2 -2
- package/docs/interfaces/Util.MagnifierParameter.html +2 -2
- package/docs/interfaces/Util.MouseGroupParameter.html +2 -2
- package/docs/interfaces/Util.PointIntersection.html +2 -2
- package/docs/interfaces/Util.PointSelectorHelperConfig.html +2 -2
- package/docs/interfaces/Util.ReBlinkAnimeOptions.html +2 -2
- package/docs/modules/AreaMakerPluginType.html +2 -2
- package/docs/modules/CruisePluginTypes.html +2 -2
- package/docs/modules/CurrentPanoImagePluginType.html +2 -2
- package/docs/modules/GuideLineItem.html +2 -2
- package/docs/modules/GuideLineModeItem.html +2 -2
- package/docs/modules/GuideLinePluginType.html +2 -2
- package/docs/modules/ModelMakerPluginType.html +2 -2
- package/docs/modules/PanoVideoPluginType.html +2 -2
- package/docs/modules/SculptData.html +2 -2
- package/docs/modules/Util.html +2 -2
- package/docs/modules/Util.sculpt.html +2 -2
- package/docs/modules.html +2 -2
- package/docs/types/AddObject3DHelperConfig.html +2 -2
- package/docs/types/AreaMakerPluginType.AreaMakerItemEventMap.html +2 -2
- package/docs/types/AreaMakerPluginType.ItemRenderer.html +1 -1
- package/docs/types/AreaMakerPluginType.PluginData.html +2 -2
- package/docs/types/AreaMakerPluginType.ServerData.html +2 -2
- package/docs/types/ArrayPosition.html +1 -1
- package/docs/types/AudioAppearance.html +1 -1
- package/docs/types/CSS3DRenderExportType.html +1 -1
- package/docs/types/CSS3DRenderPluginExportType.html +1 -1
- package/docs/types/CSS3DRenderPluginParameterType.html +1 -1
- package/docs/types/ClassFunctionParameters.html +1 -1
- package/docs/types/Color.html +1 -1
- package/docs/types/ContentTypeConfigKey.html +1 -1
- package/docs/types/ContentTypeConfigKeySplit.html +1 -1
- package/docs/types/ContentTypeMap.html +1 -1
- package/docs/types/Create3DDomContainerReturnType.html +1 -1
- package/docs/types/Create3DElementReturnType.html +1 -1
- package/docs/types/CruisePluginExportType.html +1 -1
- package/docs/types/CruisePluginTypes.CruiseData.html +2 -2
- package/docs/types/CruisePluginTypes.MoveEffect.html +1 -1
- package/docs/types/CurrentPanoImagePluginExportType.html +1 -1
- package/docs/types/DeprecatedMediaPlaneProperty.html +2 -2
- package/docs/types/DeprecatedTagProperty.html +2 -2
- package/docs/types/Direction-1.html +1 -1
- package/docs/types/Direction4.html +1 -1
- package/docs/types/ElementRenderer.html +2 -2
- package/docs/types/FloorplanRuleLabels.html +2 -2
- package/docs/types/FloorplanServerRuleLabels.html +1 -1
- package/docs/types/GuideLinePluginExportType.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineItem.html +2 -2
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +1 -1
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +2 -2
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +2 -2
- package/docs/types/GuideLinePluginType.PathItem.html +2 -2
- package/docs/types/GuideLinePluginType.PluginData.html +2 -2
- package/docs/types/HelperEventMap.html +1 -1
- package/docs/types/InternalHelperEventMap.html +1 -1
- package/docs/types/MapviewFloorplanPluginParameterType.html +1 -1
- package/docs/types/MapviewFloorplanPluginReturnType.html +1 -1
- package/docs/types/MediaData.html +2 -2
- package/docs/types/MediaStore.html +1 -1
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +1 -1
- package/docs/types/ModelFloorplanPluginParameterType.html +1 -1
- package/docs/types/ModelFloorplanPluginReturnType.html +1 -1
- package/docs/types/ModelId.html +1 -1
- package/docs/types/ModelMakerPluginType.ElementRenderer.html +1 -1
- package/docs/types/ModelMakerPluginType.ItemType.html +1 -1
- package/docs/types/ModelRoomLabelPluginParameters.html +1 -1
- package/docs/types/ModelRoomLabelPluginReturnType.html +1 -1
- package/docs/types/MoveArgs.html +2 -2
- package/docs/types/MoveOpts.html +2 -2
- package/docs/types/Object3DHelperEventMap.html +1 -1
- package/docs/types/ObjectFit.html +1 -1
- package/docs/types/PaintBrushEventMap.html +1 -1
- package/docs/types/PanoCompassPluginData.html +1 -1
- package/docs/types/PanoCompassPluginExportType.html +1 -1
- package/docs/types/PanoCompassPluginParameterType.html +1 -1
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +1 -1
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +1 -1
- package/docs/types/PanoIndex.html +1 -1
- package/docs/types/PanoMeasurePluginEvent.html +1 -1
- package/docs/types/PanoMeasureReturnType.html +1 -1
- package/docs/types/PanoSpatialTagPluginId.html +1 -1
- package/docs/types/PanoTagPluginExportInterface.html +1 -1
- package/docs/types/PanoTagPluginParamsInterface.html +1 -1
- package/docs/types/PanoVideoPluginParameterType.html +1 -1
- package/docs/types/PanoVideoPluginReturnType.html +1 -1
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +2 -2
- package/docs/types/PipelinePluginParameterType.html +1 -1
- package/docs/types/PipelinePluginReturnType.html +1 -1
- package/docs/types/PlaneTag.html +2 -2
- package/docs/types/Point2DTag.html +2 -2
- package/docs/types/Point3DTag.html +2 -2
- package/docs/types/PointTagInstance.html +1 -1
- package/docs/types/Position.html +1 -1
- package/docs/types/PositionFrom.html +1 -1
- package/docs/types/RotateArgs.html +2 -2
- package/docs/types/RotateOpts.html +2 -2
- package/docs/types/RuleLabelsKey.html +1 -1
- package/docs/types/RuleLabelsValue.html +1 -1
- package/docs/types/ScaleCallback.html +1 -1
- package/docs/types/ScalePosition.html +2 -2
- package/docs/types/SculptData.BoxData.html +1 -1
- package/docs/types/SculptData.CircleData.html +1 -1
- package/docs/types/SculptData.CylinderData.html +1 -1
- package/docs/types/SculptData.PointData.html +1 -1
- package/docs/types/SculptData.PolygonData.html +1 -1
- package/docs/types/SculptData.PolylineData.html +1 -1
- package/docs/types/SculptData.PrismData.html +1 -1
- package/docs/types/SculptData.RectangleData.html +1 -1
- package/docs/types/StickType.html +1 -1
- package/docs/types/Tag.html +2 -2
- package/docs/types/Tag2D.html +2 -2
- package/docs/types/Tag3D.html +2 -2
- package/docs/types/TagClickParams.html +1 -1
- package/docs/types/TagConfigByKey.html +1 -1
- package/docs/types/TagContentType.html +1 -1
- package/docs/types/TagContentTypeMapping.html +1 -1
- package/docs/types/TagDimensionType.html +1 -1
- package/docs/types/TagElement.html +2 -2
- package/docs/types/TagEvents.html +1 -1
- package/docs/types/TagGLTFObject.html +1 -1
- package/docs/types/TagHooks.html +1 -1
- package/docs/types/TagId.html +1 -1
- package/docs/types/TagInstance.html +1 -1
- package/docs/types/TagPointType.html +2 -2
- package/docs/types/TagRendererMap.html +1 -1
- package/docs/types/TopviewFloorplanPluginParameterType.html +1 -1
- package/docs/types/TopviewFloorplanPluginReturnType.html +1 -1
- package/docs/types/Util.ActionIfNoModelUnderMouse.html +1 -1
- package/docs/types/Util.PointSelectorConfig.html +1 -1
- package/docs/types/WorkCode.html +1 -1
- package/docs/variables/FLOOR_TYPE_MAP.html +2 -2
- package/docs/variables/PLUGIN.html +1 -1
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +2 -2
- package/docs/variables/ROOM_TYPE_MAP.html +2 -2
- package/docs/variables/Util.animeMap.html +1 -1
- package/docs/variables/defaultGlobalConfig.html +1 -1
- package/docs/variables/itemLabelPluginServerParams.html +1 -1
- package/docs/variables/modelItemLabelPluginServerParams.html +1 -1
- package/docs/variables/modelRoomLabelPluginServerParams.html +1 -1
- package/libs/CruisePlugin/Move.js +3 -2
- package/libs/CruisePlugin/Work.js +3 -2
- package/libs/CruisePlugin/index.js +7 -6
- package/libs/GuideLinePlugin/Controller.js +5 -4
- package/libs/GuideLinePlugin/GuideLineItem.js +3 -2
- package/libs/GuideLinePlugin/GuideLineModeItem.js +3 -2
- package/libs/GuideLinePlugin/index.js +7 -6
- package/libs/PanoTagPlugin/Components/Tag/index.js +3 -2
- package/libs/PanoTagPlugin/Components/TagContainer.js +3 -2
- package/libs/PanoTagPlugin/Components/TagItem.js +3 -2
- package/libs/PanoTagPlugin/controller/Tag/BaseTag.d.ts +3 -1
- package/libs/PanoTagPlugin/controller/Tag/BaseTag.js +143 -125
- package/libs/PanoTagPlugin/controller/Tag/ModelTag.js +3 -2
- package/libs/PanoTagPlugin/controller/Tag/PlaneTag.js +13 -12
- package/libs/PanoTagPlugin/controller/Tag/PointTag.js +3 -2
- package/libs/PanoTagPlugin/controller/TagRender.js +3 -2
- package/libs/PanoTagPlugin/controller/TagUtil.d.ts +1 -1
- package/libs/PanoTagPlugin/controller/TagUtil.js +74 -64
- package/libs/PanoTagPlugin/controller/index.js +74 -77
- package/libs/PanoTagPlugin/index.js +12 -11
- package/libs/PanoTagPlugin/tag.config.js +1 -5
- package/libs/PanoTagPlugin/typings/tag/TagConfig.d.ts +1 -3
- package/libs/base/BasePlugin.js +1 -1
- package/libs/index.js +1 -1
- package/libs/shared-utils/logger.js +1 -1
- package/package.json +1 -1
|
@@ -86,6 +86,7 @@ export declare abstract class BaseTag<C extends TagContentType = TagContentType,
|
|
|
86
86
|
cache: Cache;
|
|
87
87
|
entryFromModel?: boolean;
|
|
88
88
|
get sharedCache(): Cache;
|
|
89
|
+
_updating: boolean;
|
|
89
90
|
constructor(plugin: PanoTagPluginController, tagData: TagData);
|
|
90
91
|
/**
|
|
91
92
|
* @description 使 state.visible 生效,但是只是加入渲染队列。等下次渲染时再真正生效
|
|
@@ -97,7 +98,7 @@ export declare abstract class BaseTag<C extends TagContentType = TagContentType,
|
|
|
97
98
|
find(params?: {
|
|
98
99
|
targetMode?: 'Panorama' | 'Mapview';
|
|
99
100
|
pointConfig?: Parameters<typeof lookPoint>[2];
|
|
100
|
-
}): Promise<
|
|
101
|
+
}): Promise<this>;
|
|
101
102
|
/**
|
|
102
103
|
* @description 闪烁
|
|
103
104
|
*/
|
|
@@ -226,6 +227,7 @@ export declare abstract class BaseTag<C extends TagContentType = TagContentType,
|
|
|
226
227
|
reason?: any;
|
|
227
228
|
};
|
|
228
229
|
};
|
|
230
|
+
private ready;
|
|
229
231
|
/**
|
|
230
232
|
* @description 销毁并移除
|
|
231
233
|
*/
|
|
@@ -2,12 +2,12 @@ var G = Object.defineProperty, K = Object.defineProperties;
|
|
|
2
2
|
var Q = Object.getOwnPropertyDescriptors;
|
|
3
3
|
var P = Object.getOwnPropertySymbols;
|
|
4
4
|
var D = Object.prototype.hasOwnProperty, j = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var C = Math.pow,
|
|
5
|
+
var C = Math.pow, M = (c, i, e) => i in c ? G(c, i, { enumerable: !0, configurable: !0, writable: !0, value: e }) : c[i] = e, g = (c, i) => {
|
|
6
6
|
for (var e in i || (i = {}))
|
|
7
|
-
D.call(i, e) &&
|
|
7
|
+
D.call(i, e) && M(c, e, i[e]);
|
|
8
8
|
if (P)
|
|
9
9
|
for (var e of P(i))
|
|
10
|
-
j.call(i, e) &&
|
|
10
|
+
j.call(i, e) && M(c, e, i[e]);
|
|
11
11
|
return c;
|
|
12
12
|
}, w = (c, i) => K(c, Q(i));
|
|
13
13
|
var A = (c, i) => {
|
|
@@ -19,21 +19,21 @@ var A = (c, i) => {
|
|
|
19
19
|
i.indexOf(t) < 0 && j.call(c, t) && (e[t] = c[t]);
|
|
20
20
|
return e;
|
|
21
21
|
};
|
|
22
|
-
var f = (c, i, e) => (
|
|
22
|
+
var f = (c, i, e) => (M(c, typeof i != "symbol" ? i + "" : i, e), e);
|
|
23
23
|
var y = (c, i, e) => new Promise((t, r) => {
|
|
24
|
-
var
|
|
24
|
+
var s = (n) => {
|
|
25
25
|
try {
|
|
26
|
-
o(e.next(
|
|
26
|
+
o(e.next(n));
|
|
27
27
|
} catch (d) {
|
|
28
28
|
r(d);
|
|
29
29
|
}
|
|
30
|
-
}, l = (
|
|
30
|
+
}, l = (n) => {
|
|
31
31
|
try {
|
|
32
|
-
o(e.throw(
|
|
32
|
+
o(e.throw(n));
|
|
33
33
|
} catch (d) {
|
|
34
34
|
r(d);
|
|
35
35
|
}
|
|
36
|
-
}, o = (
|
|
36
|
+
}, o = (n) => n.done ? t(n.value) : Promise.resolve(n.value).then(s, l);
|
|
37
37
|
o((e = e.apply(c, i)).next());
|
|
38
38
|
});
|
|
39
39
|
import { Subscribe as Y } from "../../../shared-utils/Subscribe.js";
|
|
@@ -52,7 +52,7 @@ import "@realsee/five/line";
|
|
|
52
52
|
import { isNil as R, notNil as E } from "../../../shared-utils/isNil.js";
|
|
53
53
|
import "../../../shared-utils/three/core/Five_LineMaterial2.js";
|
|
54
54
|
import "../../../shared-utils/three/core/Sphere.js";
|
|
55
|
-
import { blink as
|
|
55
|
+
import { blink as se, reblink as ne } from "../../../shared-utils/three/blink.js";
|
|
56
56
|
import { vectorToCoordinates as oe } from "../../../shared-utils/vectorToCoordinate.js";
|
|
57
57
|
import { transformPosition as L } from "../../../shared-utils/five/transformPosition.js";
|
|
58
58
|
import { lookPoint as re } from "../../../shared-utils/five/lookPoint.js";
|
|
@@ -68,6 +68,7 @@ import { getFloorIndex as fe } from "../../../shared-utils/five/getFloorIndex.js
|
|
|
68
68
|
import { safeObj as J } from "../../../shared-utils/safeObj.js";
|
|
69
69
|
import { Cache as de } from "../../utils/Cache.js";
|
|
70
70
|
import { _raycaster as S } from "../../../shared-utils/three/temp.js";
|
|
71
|
+
import { withResolvers as ce } from "../../../shared-utils/promise/withResolvers.js";
|
|
71
72
|
import "../../../shared-utils/typescript/entries.js";
|
|
72
73
|
import "../../utils/tag/adaptConfig.js";
|
|
73
74
|
import "../../typings/tag/TagConfig.js";
|
|
@@ -112,7 +113,7 @@ import "../../../shared-utils/five/getPosition.js";
|
|
|
112
113
|
import "../../../shared-utils/five/getRaycasterByNdcPosition.js";
|
|
113
114
|
import "../../../shared-utils/three/PointSelector/utils/contents.js";
|
|
114
115
|
import "../../../shared-utils/formatRad.js";
|
|
115
|
-
class
|
|
116
|
+
class Oi {
|
|
116
117
|
constructor(i, e) {
|
|
117
118
|
f(this, "plugin");
|
|
118
119
|
f(this, "id");
|
|
@@ -142,26 +143,41 @@ class Ai {
|
|
|
142
143
|
f(this, "computedConfig");
|
|
143
144
|
f(this, "cache");
|
|
144
145
|
f(this, "entryFromModel");
|
|
145
|
-
|
|
146
|
+
f(this, "_updating", !1);
|
|
147
|
+
f(this, "ready", () => {
|
|
148
|
+
const { promise: i, resolve: e } = ce();
|
|
149
|
+
if (!this._updating)
|
|
150
|
+
e();
|
|
151
|
+
else {
|
|
152
|
+
const t = setInterval(() => {
|
|
153
|
+
this._updating || (clearInterval(t), e());
|
|
154
|
+
}, 17);
|
|
155
|
+
setTimeout(() => {
|
|
156
|
+
clearInterval(t), e();
|
|
157
|
+
}, 300);
|
|
158
|
+
}
|
|
159
|
+
return i;
|
|
160
|
+
});
|
|
161
|
+
var n, d, p, u;
|
|
146
162
|
this.plugin = i;
|
|
147
163
|
const t = ee(e);
|
|
148
164
|
e.stickType = t;
|
|
149
|
-
const r = JSON.parse(JSON.stringify(e.data)),
|
|
150
|
-
e.initialConfig =
|
|
165
|
+
const r = JSON.parse(JSON.stringify(e.data)), s = (n = e.initialConfig) != null ? n : e.config ? JSON.parse(JSON.stringify(e.config)) : {};
|
|
166
|
+
e.initialConfig = s;
|
|
151
167
|
const l = U(e, i.config), o = this.getConfig(e);
|
|
152
|
-
e.config = o, this.id = (d = e.id) != null ? d : le(), this.enabled = (
|
|
168
|
+
e.config = o, this.id = (d = e.id) != null ? d : le(), this.enabled = (p = e.enabled) != null ? p : !0, this.contentType = e.contentType, this.data = (u = o.initialData) != null && u.important ? b(e.data, r, o.initialData) : b(e.data, o.initialData, r), this.state = g({
|
|
153
169
|
visible: void 0,
|
|
154
170
|
unfolded: !this.can("fold")
|
|
155
171
|
}, o.initialState), this.originPosition = e.position, e.originPosition = this.originPosition, this.position = (() => {
|
|
156
172
|
const a = e.originPosition;
|
|
157
173
|
if (!a)
|
|
158
174
|
return;
|
|
159
|
-
const
|
|
160
|
-
return Array.isArray(a) && a.length === 4 ? a.map(O).map((
|
|
175
|
+
const m = i.workUtil.transform;
|
|
176
|
+
return Array.isArray(a) && a.length === 4 ? a.map(O).map((h) => L(h, m).toArray()) : L(O(a), m).toArray();
|
|
161
177
|
})(), this.matrix = e.matrix ? (() => {
|
|
162
178
|
const a = new B.Matrix4().fromArray(e.matrix);
|
|
163
179
|
return a.premultiply(i.workUtil.transform), a.elements;
|
|
164
|
-
})() : e.matrix, this.initialConfig =
|
|
180
|
+
})() : e.matrix, this.initialConfig = s, this.computedConfig = l, this.stickType = t, this.config = e.config, this.fiveState = e.fiveState, this.normal = e.normal, this.cache = new de(), this.hooks = new Y(), Object.keys(e).forEach((a) => {
|
|
165
181
|
this[a] === void 0 && e[a] !== void 0 && (this[a] = e[a]);
|
|
166
182
|
});
|
|
167
183
|
}
|
|
@@ -179,9 +195,9 @@ class Ai {
|
|
|
179
195
|
return ie(...Array.isArray(i) ? i : [i]);
|
|
180
196
|
}
|
|
181
197
|
get currentConfig() {
|
|
182
|
-
var r,
|
|
198
|
+
var r, s;
|
|
183
199
|
const i = U(this, this.plugin.config, { useCache: !0 }), e = this.five.getCurrentState().mode, t = (r = i.configWithFiveMode) == null ? void 0 : r[e];
|
|
184
|
-
return (
|
|
200
|
+
return (s = t != null ? t : i) != null ? s : {};
|
|
185
201
|
}
|
|
186
202
|
get currentVisible() {
|
|
187
203
|
return !(!this.plugin.state.enabled || !this.plugin.state.visible || !this.enabled || !this.state.visible);
|
|
@@ -203,20 +219,21 @@ class Ai {
|
|
|
203
219
|
var r;
|
|
204
220
|
const e = this.fiveState;
|
|
205
221
|
if (!this.fiveState)
|
|
206
|
-
return;
|
|
222
|
+
return this;
|
|
207
223
|
const t = (r = i == null ? void 0 : i.targetMode) != null ? r : this.five.state.mode;
|
|
208
224
|
if (t === "Panorama") {
|
|
209
|
-
const
|
|
210
|
-
if (R(
|
|
211
|
-
return;
|
|
212
|
-
const l = this.workUtil.getObserverPosition(
|
|
213
|
-
this.five.setState(
|
|
225
|
+
const s = e == null ? void 0 : e.panoIndex;
|
|
226
|
+
if (R(s))
|
|
227
|
+
return this;
|
|
228
|
+
const l = this.workUtil.getObserverPosition(s), o = this.centerPosition.clone().sub(l).normalize();
|
|
229
|
+
this.five.setState(g({
|
|
214
230
|
mode: "Panorama",
|
|
215
231
|
workCode: this.workUtil.workCode,
|
|
216
|
-
panoIndex:
|
|
232
|
+
panoIndex: s
|
|
217
233
|
}, oe(o))), yield this.five.ready();
|
|
218
234
|
} else
|
|
219
235
|
t === "Mapview" && (yield re(this.five, this.centerPosition, i == null ? void 0 : i.pointConfig));
|
|
236
|
+
return this;
|
|
220
237
|
});
|
|
221
238
|
}
|
|
222
239
|
/**
|
|
@@ -224,8 +241,9 @@ class Ai {
|
|
|
224
241
|
*/
|
|
225
242
|
blink(i) {
|
|
226
243
|
return y(this, null, function* () {
|
|
227
|
-
var o,
|
|
228
|
-
|
|
244
|
+
var o, n, d, p;
|
|
245
|
+
yield this.ready();
|
|
246
|
+
const e = (o = this.enabled) != null ? o : !0, t = (n = this.state) == null ? void 0 : n.visible, r = e && t;
|
|
229
247
|
r === !1 && (this.state.visible = !0, this.enabled = !0, this.applyVisible(), this.plugin.render(), this.computeRenderType() !== "Mesh" ? yield new Promise((u) => y(this, null, function* () {
|
|
230
248
|
if (this.dom || this.contentDom) {
|
|
231
249
|
u();
|
|
@@ -234,7 +252,7 @@ class Ai {
|
|
|
234
252
|
const a = setInterval(() => {
|
|
235
253
|
(this.dom || this.contentDom) && (u(), clearInterval(a));
|
|
236
254
|
}, 16.7);
|
|
237
|
-
})) : this.stickType === "Model" && !((d = this.model) != null && d.object) ? yield (
|
|
255
|
+
})) : this.stickType === "Model" && !((d = this.model) != null && d.object) ? yield (p = this.model) == null ? void 0 : p.promise : this.stickType === "Plane" && (yield new Promise((u) => y(this, null, function* () {
|
|
238
256
|
if (this.mediaPlane) {
|
|
239
257
|
u();
|
|
240
258
|
return;
|
|
@@ -243,16 +261,16 @@ class Ai {
|
|
|
243
261
|
this.mediaPlane && (u(), clearInterval(a));
|
|
244
262
|
}, 16.7);
|
|
245
263
|
}))), this.dom && (this.dom.style.visibility = "hidden"), this.contentDom && (this.contentDom.style.visibility = "hidden"));
|
|
246
|
-
const
|
|
247
|
-
var a;
|
|
264
|
+
const s = (() => {
|
|
265
|
+
var a, m, h, v;
|
|
248
266
|
const u = [];
|
|
249
|
-
return u.push(this.dom),
|
|
267
|
+
return u.push(this.dom), u.push((h = (m = (a = this.tag3DContentSvelte) == null ? void 0 : a.css3DInstance) == null ? void 0 : m.css3DObject) == null ? void 0 : h.opacityMesh), u.push((v = this.model) == null ? void 0 : v.object), u.push(this.mediaPlane), u.filter(Boolean);
|
|
250
268
|
})();
|
|
251
|
-
if (!
|
|
269
|
+
if (!s.length) {
|
|
252
270
|
console.warn("tagDom is empty");
|
|
253
271
|
return;
|
|
254
272
|
}
|
|
255
|
-
yield (r ?
|
|
273
|
+
yield (r ? se : ne)(s, g({
|
|
256
274
|
begin: () => {
|
|
257
275
|
r === !1 && (this.dom && (this.dom.style.visibility = ""), this.contentDom && (this.contentDom.style.visibility = ""));
|
|
258
276
|
},
|
|
@@ -306,7 +324,7 @@ class Ai {
|
|
|
306
324
|
* @param deepMerge 是否深度合并 data,默认为 true
|
|
307
325
|
*/
|
|
308
326
|
setData(i, e = !0) {
|
|
309
|
-
e ? this.data = b(this.data, i) : this.data =
|
|
327
|
+
e ? this.data = b(this.data, i) : this.data = g(g({}, this.data), i), this.hooks.emit("dataChanged", this.data);
|
|
310
328
|
}
|
|
311
329
|
/**
|
|
312
330
|
* @description 修改标签位置
|
|
@@ -333,19 +351,19 @@ class Ai {
|
|
|
333
351
|
this.cache.clear();
|
|
334
352
|
}
|
|
335
353
|
updateVisible() {
|
|
336
|
-
this.state.visible = this.getVisible(), this.applyVisible();
|
|
354
|
+
this.state.visible = this.getVisible(), this.applyVisible(), this._updating = !1;
|
|
337
355
|
}
|
|
338
356
|
updateZIndex() {
|
|
339
357
|
const i = this.getSquaredDistance();
|
|
340
358
|
this.zIndex = Math.round((1e4 - (i != null ? i : 0)) * 100);
|
|
341
359
|
}
|
|
342
360
|
getConfig(i, e) {
|
|
343
|
-
var l, o,
|
|
344
|
-
const t = U(i != null ? i : this, this.plugin.config, { useCache: e == null ? void 0 : e.useCache }), r = (l = e == null ? void 0 : e.fiveMode) != null ? l : this.five.getCurrentState().mode,
|
|
345
|
-
return (
|
|
361
|
+
var l, o, n;
|
|
362
|
+
const t = U(i != null ? i : this, this.plugin.config, { useCache: e == null ? void 0 : e.useCache }), r = (l = e == null ? void 0 : e.fiveMode) != null ? l : this.five.getCurrentState().mode, s = (o = t.configWithFiveMode) == null ? void 0 : o[r];
|
|
363
|
+
return (n = s != null ? s : t) != null ? n : {};
|
|
346
364
|
}
|
|
347
365
|
getDistance(i, e = 3) {
|
|
348
|
-
const t =
|
|
366
|
+
const t = g(g({}, this.five.getCurrentState()), i), { panoIndex: r, mode: s } = t, l = s === "Panorama" ? this.workUtil.getObserverPosition(r) : this.five.camera.position, o = this.centerPosition;
|
|
349
367
|
return !l || !o ? -1 : l.distanceTo(o);
|
|
350
368
|
}
|
|
351
369
|
/**
|
|
@@ -359,7 +377,7 @@ class Ai {
|
|
|
359
377
|
getVisible(i) {
|
|
360
378
|
if (!this.enabled || !this.plugin.state.enabled || !this.fiveUtil.model)
|
|
361
379
|
return !1;
|
|
362
|
-
const e =
|
|
380
|
+
const e = g(g({}, this.five.getCurrentState()), i);
|
|
363
381
|
let t = this.cache.getVisible(this, e);
|
|
364
382
|
return R(t) && (t = this.computeVisible(e).value, this.cache.setVisible(this, e, t)), t;
|
|
365
383
|
}
|
|
@@ -379,7 +397,7 @@ class Ai {
|
|
|
379
397
|
if (i === "show" || i === "hide") {
|
|
380
398
|
if (!e.visibleConfig || typeof e.visibleConfig != "object")
|
|
381
399
|
return !0;
|
|
382
|
-
if (i === "show" && e.visibleConfig.keep === "hidden" || i === "hide" &&
|
|
400
|
+
if (i === "show" && e.visibleConfig.keep === "hidden" || i === "hide" && e.visibleConfig.keep === "visible")
|
|
383
401
|
return !1;
|
|
384
402
|
}
|
|
385
403
|
if (i === "fold" || i === "unfold") {
|
|
@@ -415,68 +433,68 @@ class Ai {
|
|
|
415
433
|
return i != null ? i : "Dom";
|
|
416
434
|
}
|
|
417
435
|
computeVisible(i) {
|
|
418
|
-
const e =
|
|
436
|
+
const e = g(g({}, this.five.getCurrentState()), i), { panoIndex: t, mode: r } = e, s = [];
|
|
419
437
|
return (() => {
|
|
420
438
|
var d, u, a;
|
|
421
|
-
const
|
|
422
|
-
if (typeof
|
|
439
|
+
const n = (d = this.getConfig().visibleConfig) != null ? d : {};
|
|
440
|
+
if (typeof n == "function")
|
|
423
441
|
return {
|
|
424
|
-
value:
|
|
425
|
-
checkedList:
|
|
442
|
+
value: n(this.five, { tag: this, distance: this.getDistance(e, void 0) }),
|
|
443
|
+
checkedList: s,
|
|
426
444
|
reason: "config function result"
|
|
427
445
|
};
|
|
428
446
|
{
|
|
429
|
-
if (
|
|
430
|
-
return { value: !1, checkedList:
|
|
431
|
-
if (
|
|
432
|
-
return { value: !0, checkedList:
|
|
433
|
-
const
|
|
434
|
-
if ((
|
|
435
|
-
return
|
|
436
|
-
if (
|
|
437
|
-
const
|
|
438
|
-
if (
|
|
439
|
-
return
|
|
447
|
+
if (n.keep === "hidden")
|
|
448
|
+
return { value: !1, checkedList: s, reason: "config.keep is hidden" };
|
|
449
|
+
if (n.keep === "visible")
|
|
450
|
+
return { value: !0, checkedList: s, reason: "config.keep is visible" };
|
|
451
|
+
const m = this.computeVisibleByFiveMode(n, r);
|
|
452
|
+
if ((m == null ? void 0 : m.value) === !1)
|
|
453
|
+
return m;
|
|
454
|
+
if (n.followModelVisibility === !0 && ["poincare", "aerophoto", "sand"].includes(this.workUtil.fromType) && (r === "Floorplan" || r === "Mapview")) {
|
|
455
|
+
const p = this.computeVisibleByFloorIndex(), { value: h } = p, v = A(p, ["value"]);
|
|
456
|
+
if (h === !1)
|
|
457
|
+
return g({ value: !1, checkedList: s, reason: "followModelVisibility check failed" }, v);
|
|
440
458
|
}
|
|
441
|
-
if (T(r) &&
|
|
442
|
-
if (
|
|
459
|
+
if (T(r) && n.visiblePanoIndex !== void 0 && n.visiblePanoIndex !== "all" && t !== void 0) {
|
|
460
|
+
if (s.push("visiblePanoIndex"), Array.isArray(n.visiblePanoIndex) && !n.visiblePanoIndex.includes(t))
|
|
443
461
|
return {
|
|
444
462
|
value: !1,
|
|
445
|
-
checkedList:
|
|
446
|
-
reason: `current panoIndex is not included in visiblePano. currentPanoIndex: ${t}, visiblePanoIndex: ${
|
|
463
|
+
checkedList: s,
|
|
464
|
+
reason: `current panoIndex is not included in visiblePano. currentPanoIndex: ${t}, visiblePanoIndex: ${n.visiblePanoIndex}`
|
|
447
465
|
};
|
|
448
|
-
if (
|
|
466
|
+
if (n.visiblePanoIndex === "current" && t !== ((u = this.fiveState) == null ? void 0 : u.panoIndex))
|
|
449
467
|
return {
|
|
450
468
|
value: !1,
|
|
451
|
-
checkedList:
|
|
469
|
+
checkedList: s,
|
|
452
470
|
reason: `current panoIndex is not equal to tag.panoIndex. currentPanoIndex: ${t}, tag.panoIndex: ${(a = this.fiveState) == null ? void 0 : a.panoIndex}`
|
|
453
471
|
};
|
|
454
472
|
}
|
|
455
|
-
if (
|
|
456
|
-
const
|
|
457
|
-
if (x(
|
|
473
|
+
if (n.visibleDistance !== void 0 && (s.push("visibleDistance"), n.visibleDistance !== "unLimited")) {
|
|
474
|
+
const h = this.getDistance(e, 1);
|
|
475
|
+
if (x(h, n.visibleDistance) === !1)
|
|
458
476
|
return {
|
|
459
477
|
value: !1,
|
|
460
|
-
checkedList:
|
|
478
|
+
checkedList: s,
|
|
461
479
|
panoIndex: t,
|
|
462
|
-
visibleDistance:
|
|
463
|
-
reason: `distance is not in visibleDistance. distance: ${
|
|
480
|
+
visibleDistance: n.visibleDistance,
|
|
481
|
+
reason: `distance is not in visibleDistance. distance: ${h}, visibleDistance: ${n.visibleDistance.min} - ${n.visibleDistance.max}`
|
|
464
482
|
};
|
|
465
483
|
}
|
|
466
|
-
if (
|
|
467
|
-
if (
|
|
484
|
+
if (n.intersectRaycaster !== !1 && (typeof n.intersectRaycaster != "object" || n.intersectRaycaster.enabled !== !1)) {
|
|
485
|
+
if (s.push("intersectRaycaster"), t === void 0)
|
|
468
486
|
return {
|
|
469
487
|
value: !1,
|
|
470
|
-
checkedList:
|
|
488
|
+
checkedList: s,
|
|
471
489
|
reason: `intersectRaycaster check failed: panoIndex is ${t}`
|
|
472
490
|
};
|
|
473
|
-
const
|
|
474
|
-
if (
|
|
475
|
-
return Object.assign(
|
|
491
|
+
const h = this.computeVisibleByIntersect(t);
|
|
492
|
+
if (h.value === !1)
|
|
493
|
+
return Object.assign(h, { checkedList: s });
|
|
476
494
|
}
|
|
477
495
|
return {
|
|
478
496
|
value: !0,
|
|
479
|
-
checkedList:
|
|
497
|
+
checkedList: s,
|
|
480
498
|
reason: "all check passed"
|
|
481
499
|
};
|
|
482
500
|
}
|
|
@@ -488,27 +506,27 @@ class Ai {
|
|
|
488
506
|
computeVisibleByFiveMode(i, e) {
|
|
489
507
|
const t = () => {
|
|
490
508
|
var l, o;
|
|
491
|
-
let
|
|
492
|
-
if (
|
|
493
|
-
return
|
|
494
|
-
if (
|
|
509
|
+
let s = typeof i.visibleFiveMode == "function" ? i.visibleFiveMode(this) : i.visibleFiveMode;
|
|
510
|
+
if (s || (s = (o = (l = this.fiveState) == null ? void 0 : l.mode) != null ? o : this.workUtil.observers.length ? "Panorama" : "ModelLike"), Array.isArray(s))
|
|
511
|
+
return s.includes(e);
|
|
512
|
+
if (s === "ModelLike")
|
|
495
513
|
return k(e);
|
|
496
|
-
if (
|
|
514
|
+
if (s === "PanoramaLike")
|
|
497
515
|
return !T(e);
|
|
498
|
-
if (
|
|
516
|
+
if (s === "all")
|
|
499
517
|
return !0;
|
|
500
|
-
if (typeof
|
|
501
|
-
return
|
|
518
|
+
if (typeof s == "string")
|
|
519
|
+
return s === e;
|
|
502
520
|
};
|
|
503
521
|
if ((() => {
|
|
504
522
|
var l;
|
|
505
|
-
const
|
|
523
|
+
const s = t();
|
|
506
524
|
if (E((l = this.fiveState) == null ? void 0 : l.panoIndex) && i.entryFromModel) {
|
|
507
|
-
if (k(e) &&
|
|
525
|
+
if (k(e) && s ? this.entryFromModel = !1 : this.entryFromModel = !0, k(e))
|
|
508
526
|
return !0;
|
|
509
527
|
} else
|
|
510
528
|
this.entryFromModel = !1;
|
|
511
|
-
return
|
|
529
|
+
return s;
|
|
512
530
|
})() === !1)
|
|
513
531
|
return {
|
|
514
532
|
value: !1,
|
|
@@ -519,36 +537,36 @@ class Ai {
|
|
|
519
537
|
}
|
|
520
538
|
/** 通过射线检测标签可用性 */
|
|
521
539
|
computeVisibleByIntersect(i) {
|
|
522
|
-
var
|
|
523
|
-
const e = J(J((
|
|
540
|
+
var n, d, p, u;
|
|
541
|
+
const e = J(J((n = this.getConfig().visibleConfig) != null ? n : {}).intersectRaycaster), t = i != null ? i : this.five.getCurrentState().panoIndex, r = T(this.five.getCurrentState().mode) ? this.workUtil.getObserverPosition(t) : this.five.camera.position;
|
|
524
542
|
if (r === void 0)
|
|
525
543
|
return { value: !1, reason: { type: "startPosition is undefined", fivePanoIndex: t } };
|
|
526
|
-
const
|
|
544
|
+
const s = te(
|
|
527
545
|
(() => {
|
|
528
|
-
var
|
|
529
|
-
const a = (
|
|
546
|
+
var m;
|
|
547
|
+
const a = (m = e.checkPoints) != null ? m : "center";
|
|
530
548
|
return a === "center" ? z(this) : a === "corner" ? $(this) : Array.isArray(a) ? a : [];
|
|
531
549
|
})()
|
|
532
550
|
);
|
|
533
551
|
let l = 0, o = 0;
|
|
534
|
-
for (const a of
|
|
535
|
-
const
|
|
536
|
-
let
|
|
537
|
-
S.set(r,
|
|
552
|
+
for (const a of s) {
|
|
553
|
+
const m = new B.Vector3().subVectors(a, r).normalize();
|
|
554
|
+
let h;
|
|
555
|
+
S.set(r, m);
|
|
538
556
|
const [v] = this.fiveUtil.model.intersectRaycaster(S);
|
|
539
|
-
|
|
540
|
-
const
|
|
557
|
+
h = v == null ? void 0 : v.distance;
|
|
558
|
+
const I = (() => {
|
|
541
559
|
if (!V(this))
|
|
542
560
|
return;
|
|
543
|
-
const
|
|
561
|
+
const H = this.plugin.tags.filter(V).map((Z) => {
|
|
544
562
|
var F;
|
|
545
563
|
return (F = Z.model) == null ? void 0 : F.object;
|
|
546
|
-
}).filter(E), [X] = S.intersectObjects(
|
|
564
|
+
}).filter(E), [X] = S.intersectObjects(H, !0);
|
|
547
565
|
return X;
|
|
548
|
-
})(),
|
|
549
|
-
|
|
550
|
-
const
|
|
551
|
-
if (l >=
|
|
566
|
+
})(), _ = r.distanceTo(a), W = (d = e.distanceAccuracy) != null ? d : 0.01;
|
|
567
|
+
h = Math.min(h != null ? h : 1 / 0, (p = I == null ? void 0 : I.distance) != null ? p : 1 / 0), h + W >= _ ? l++ : o++;
|
|
568
|
+
const q = (u = e.needPassed) != null ? u : 1;
|
|
569
|
+
if (l >= q)
|
|
552
570
|
return { value: !0 };
|
|
553
571
|
}
|
|
554
572
|
return o === 0 ? { value: !0 } : {
|
|
@@ -562,12 +580,12 @@ class Ai {
|
|
|
562
580
|
};
|
|
563
581
|
}
|
|
564
582
|
computeVisibleByFloorIndex() {
|
|
565
|
-
var r,
|
|
583
|
+
var r, s, l, o, n, d, p;
|
|
566
584
|
let i = 0;
|
|
567
585
|
const e = (r = this.fiveState) == null ? void 0 : r.panoIndex;
|
|
568
|
-
e !== void 0 ? i = (
|
|
586
|
+
e !== void 0 ? i = (s = this.workUtil.getObserver(e)) == null ? void 0 : s.floorIndex : i = fe(
|
|
569
587
|
this.workUtil.work,
|
|
570
|
-
(
|
|
588
|
+
(p = (d = (o = (l = this.model) == null ? void 0 : l.object) == null ? void 0 : o.position) != null ? d : (n = this.mediaPlane) == null ? void 0 : n.position) != null ? p : z(this)
|
|
571
589
|
);
|
|
572
590
|
const t = this.fiveUtil.model.shownFloor;
|
|
573
591
|
return {
|
|
@@ -612,20 +630,20 @@ class Ai {
|
|
|
612
630
|
return !1;
|
|
613
631
|
}
|
|
614
632
|
if (i.autoUnfold.strategy === "MinimumDistance") {
|
|
615
|
-
const
|
|
616
|
-
const
|
|
617
|
-
if (!
|
|
633
|
+
const s = this.plugin.filterPointTag.filter((o) => o.currentVisible).filter((o) => {
|
|
634
|
+
const n = this.computeTagProject();
|
|
635
|
+
if (!n)
|
|
618
636
|
return !1;
|
|
619
|
-
const { x: d, y:
|
|
620
|
-
return !(Math.abs(u) > 1 || Math.abs(d) > 1 || Math.abs(
|
|
637
|
+
const { x: d, y: p, z: u } = n;
|
|
638
|
+
return !(Math.abs(u) > 1 || Math.abs(d) > 1 || Math.abs(p) > 1);
|
|
621
639
|
}).map((o) => ({ tag: o, id: o.id, tagConfig: o.getConfig().unfoldedConfig })).filter(({ tagConfig: o }) => {
|
|
622
|
-
var
|
|
623
|
-
return !(typeof o == "function" || o.keep || o.autoUnfold === !1 || ((
|
|
624
|
-
}).map((o) => w(
|
|
625
|
-
const d =
|
|
640
|
+
var n, d;
|
|
641
|
+
return !(typeof o == "function" || o.keep || o.autoUnfold === !1 || ((n = o.autoUnfold) == null ? void 0 : n.enable) === !1 || ((d = o.autoUnfold) == null ? void 0 : d.strategy) !== "MinimumDistance");
|
|
642
|
+
}).map((o) => w(g({}, o), { distance: o.tag.getDistance() })).filter(({ distance: o, tagConfig: n }) => {
|
|
643
|
+
const d = n.autoUnfold.distance;
|
|
626
644
|
return !(d && x(o, d) === !1);
|
|
627
|
-
}).sort((o,
|
|
628
|
-
if (
|
|
645
|
+
}).sort((o, n) => o.distance - n.distance).findIndex((o) => o.id === this.id);
|
|
646
|
+
if (s === -1 || s <= ((e = i.autoUnfold.maxNumber) != null ? e : 1) - 1 === !1)
|
|
629
647
|
return !1;
|
|
630
648
|
}
|
|
631
649
|
return i.autoUnfold.strategy !== "FoldWhenMove";
|
|
@@ -643,14 +661,14 @@ class Ai {
|
|
|
643
661
|
if (!e || !this.plugin.domEvents)
|
|
644
662
|
return () => {
|
|
645
663
|
};
|
|
646
|
-
const r = () => !(!i.currentVisible || i.loading),
|
|
664
|
+
const r = () => !(!i.currentVisible || i.loading), s = (l) => {
|
|
647
665
|
if (!r())
|
|
648
666
|
return !1;
|
|
649
667
|
t(l.origDomEvent);
|
|
650
668
|
};
|
|
651
|
-
return this.plugin.domEvents.addEventListener(e, "click",
|
|
669
|
+
return this.plugin.domEvents.addEventListener(e, "click", s), () => {
|
|
652
670
|
var l;
|
|
653
|
-
(l = this.plugin.domEvents) == null || l.removeEventListener(e, "click",
|
|
671
|
+
(l = this.plugin.domEvents) == null || l.removeEventListener(e, "click", s);
|
|
654
672
|
};
|
|
655
673
|
}
|
|
656
674
|
whyHide() {
|
|
@@ -661,7 +679,7 @@ class Ai {
|
|
|
661
679
|
return { reason: `plugin.state.visible is ${this.plugin.state.visible}` };
|
|
662
680
|
if (!this.enabled)
|
|
663
681
|
return { reason: `tag ${this.id} enabled is: ${this.enabled}` };
|
|
664
|
-
const i = w(
|
|
682
|
+
const i = w(g({}, this.computeVisible()), {
|
|
665
683
|
tagInstance: this
|
|
666
684
|
});
|
|
667
685
|
return i.value !== this.state.visible ? { reason: "插件故障,请联系维护人员, err: 0", info: i } : this.state.visible ? { reason: "应该是能看见才对", info: i } : i.value === !0 ? { reason: "插件故障,请联系维护人员, err: 1", info: i } : { reason: (e = i.reason.type) != null ? e : i.reason, info: i };
|
|
@@ -679,5 +697,5 @@ class Ai {
|
|
|
679
697
|
}
|
|
680
698
|
}
|
|
681
699
|
export {
|
|
682
|
-
|
|
700
|
+
Oi as BaseTag
|
|
683
701
|
};
|
|
@@ -107,7 +107,8 @@ import "../../../shared-utils/url/getUrl.js";
|
|
|
107
107
|
import "../../../shared-utils/five/getFloorIndex.js";
|
|
108
108
|
import "../../../shared-utils/safeObj.js";
|
|
109
109
|
import "../../utils/Cache.js";
|
|
110
|
-
|
|
110
|
+
import "../../../shared-utils/promise/withResolvers.js";
|
|
111
|
+
class pi extends D {
|
|
111
112
|
constructor(i, m) {
|
|
112
113
|
super(i, m);
|
|
113
114
|
l(this, "loading", !1);
|
|
@@ -160,5 +161,5 @@ class mi extends D {
|
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
export {
|
|
163
|
-
|
|
164
|
+
pi as ModelTag
|
|
164
165
|
};
|
|
@@ -86,14 +86,15 @@ import "../../../shared-utils/url/getUrl.js";
|
|
|
86
86
|
import "../../../shared-utils/five/getFloorIndex.js";
|
|
87
87
|
import "../../../shared-utils/safeObj.js";
|
|
88
88
|
import "../../utils/Cache.js";
|
|
89
|
+
import "../../../shared-utils/promise/withResolvers.js";
|
|
89
90
|
const P = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map();
|
|
90
|
-
class
|
|
91
|
+
class te extends f {
|
|
91
92
|
constructor(e, t) {
|
|
92
93
|
super(e, t), this.state.unfolded = !0;
|
|
93
94
|
}
|
|
94
95
|
applyVisible() {
|
|
95
|
-
var t, r, o,
|
|
96
|
-
this.computeRenderType() === "Mesh" ? ((r = (t = this.data.mediaData) == null ? void 0 : t[0]) == null ? void 0 : r.type) === "Video" ? this.renderVideoPlane() : ((
|
|
96
|
+
var t, r, o, m, a, i;
|
|
97
|
+
this.computeRenderType() === "Mesh" ? ((r = (t = this.data.mediaData) == null ? void 0 : t[0]) == null ? void 0 : r.type) === "Video" ? this.renderVideoPlane() : ((m = (o = this.data.mediaData) == null ? void 0 : o[0]) == null ? void 0 : m.type) === "Image" && this.renderImagePlane() : (this.tag3DContentSvelte || this.plugin.updateRender3DDomTag(), (a = this.tag3DContentSvelte) == null || a.svelteApp.$set({ tag: this, state: this.plugin.state }), (i = this.tag3DContentSvelte) == null || i.css3DInstance.setVisible(this.currentVisible));
|
|
97
98
|
}
|
|
98
99
|
renderVideoPlane() {
|
|
99
100
|
var i;
|
|
@@ -103,9 +104,9 @@ class _t extends f {
|
|
|
103
104
|
const { url: t } = e;
|
|
104
105
|
if (!t)
|
|
105
106
|
return;
|
|
106
|
-
const r = this.currentVisible, o = (() => !!(this.mediaPlane && !r))(),
|
|
107
|
-
if ((o || a) && this.mediaPlane && (this.plugin.imagePlaneGroup.remove(this.mediaPlane), this.mediaPlane.dispose(), this.mediaPlane.removeFromParent(), this.mediaPlane = void 0),
|
|
108
|
-
const p = this.position.map(d),
|
|
107
|
+
const r = this.currentVisible, o = (() => !!(this.mediaPlane && !r))(), m = (() => !!(!this.mediaPlane && r))(), a = (() => !!(this.mediaPlane && this.mediaPlane.src !== t))();
|
|
108
|
+
if ((o || a) && this.mediaPlane && (this.plugin.imagePlaneGroup.remove(this.mediaPlane), this.mediaPlane.dispose(), this.mediaPlane.removeFromParent(), this.mediaPlane = void 0), m || a) {
|
|
109
|
+
const p = this.position.map(d), n = new u(t, p, {
|
|
109
110
|
videoCoverSrc: e.videoCoverUrl,
|
|
110
111
|
playButton: this.data.playIcon,
|
|
111
112
|
paused: !((i = this.data.autoplayConfig) != null && i.autoplayVideo),
|
|
@@ -114,11 +115,11 @@ class _t extends f {
|
|
|
114
115
|
ImageTextureMap: g,
|
|
115
116
|
domEvents: this.plugin.domEvents
|
|
116
117
|
});
|
|
117
|
-
|
|
118
|
-
s.addEventListener("play", () => this.plugin.mediaStore.set({ currentMediaElement:
|
|
118
|
+
n.onVideoReady = (s) => {
|
|
119
|
+
s.addEventListener("play", () => this.plugin.mediaStore.set({ currentMediaElement: n.videoInstance }));
|
|
119
120
|
};
|
|
120
121
|
const l = (s) => (this.five.on("renderFrame", s), () => this.five.off("renderFrame", s));
|
|
121
|
-
|
|
122
|
+
n.initialRenderHooks(l), this.mediaPlane = n, this.play = () => n.play(), this.pause = () => n.pause(), this.plugin.imagePlaneGroup.add(this.mediaPlane);
|
|
122
123
|
}
|
|
123
124
|
this.five.needsRender = !0;
|
|
124
125
|
}
|
|
@@ -129,8 +130,8 @@ class _t extends f {
|
|
|
129
130
|
const { url: t } = e;
|
|
130
131
|
if (!t)
|
|
131
132
|
return;
|
|
132
|
-
const r = this.position.map(d), o = this.currentVisible,
|
|
133
|
-
(
|
|
133
|
+
const r = this.position.map(d), o = this.currentVisible, m = (() => !!(this.mediaPlane && !o))(), a = (() => !!(!this.mediaPlane && o))(), i = (() => !!(this.mediaPlane && this.mediaPlane.src !== t))();
|
|
134
|
+
(m || i) && this.mediaPlane && (this.plugin.imagePlaneGroup.remove(this.mediaPlane), this.mediaPlane.dispose(), this.mediaPlane.removeFromParent(), this.mediaPlane = void 0), (a || i) && (this.mediaPlane = new c(t, r, { objectFit: this.data.objectFit }), this.getConfig().clickable !== !1 && this.plugin.domEvents.addAutoBindEventListener(
|
|
134
135
|
this.mediaPlane,
|
|
135
136
|
"click",
|
|
136
137
|
(p) => {
|
|
@@ -144,5 +145,5 @@ class _t extends f {
|
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
147
|
export {
|
|
147
|
-
|
|
148
|
+
te as PlaneTag
|
|
148
149
|
};
|