@realsee/dnalogel 2.20.5 → 2.21.0-dev.2
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/dist/GuideLinePlugin/Controller.d.ts +3 -5
- package/dist/GuideLinePlugin/GuideLineItem.d.ts +1 -1
- package/dist/GuideLinePlugin/GuideLineModeItem.d.ts +0 -17
- package/dist/GuideLinePlugin/utils/createLineGeometry.d.ts +0 -7
- package/dist/PanoMeasurePlugin/Components/Common/CircleButton.svelte.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Components/Common/Exit.svelte.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Components/Common/Switcher0.svelte.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Components/Common/Switcher1.svelte.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Components/Controller0.svelte.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Components/Controller1.svelte.d.ts +1 -0
- package/dist/PanoMeasurePlugin/Controller/BaseController.d.ts +12 -4
- package/dist/PanoMeasurePlugin/Controller/EditController.d.ts +13 -5
- package/dist/PanoMeasurePlugin/Controller/WatchController.d.ts +9 -2
- package/dist/PanoMeasurePlugin/Controller/index.d.ts +22 -9
- package/dist/PanoMeasurePlugin/Model/area.d.ts +62 -0
- package/dist/PanoMeasurePlugin/Model/index.d.ts +9 -0
- package/dist/PanoMeasurePlugin/Model/line.d.ts +4 -1
- package/dist/PanoMeasurePlugin/Model/polygon.d.ts +10 -0
- package/dist/PanoMeasurePlugin/Model/polyline.d.ts +4 -0
- package/dist/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +1 -1
- package/dist/PanoMeasurePlugin/Modules/FiveHelper.d.ts +2 -1
- package/dist/PanoMeasurePlugin/Modules/GuideController.d.ts +1 -1
- package/dist/PanoMeasurePlugin/Modules/Magnifier.d.ts +1 -1
- package/dist/PanoMeasurePlugin/Modules/UIController/index.d.ts +5 -3
- package/dist/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +1 -1
- package/dist/PanoMeasurePlugin/typings/data.d.ts +23 -0
- package/dist/PanoMeasurePlugin/typings/event.type.d.ts +10 -3
- package/dist/PanoMeasurePlugin/typings/index.d.ts +1 -1
- package/dist/PanoMeasurePlugin/utils/dom/areaDom.d.ts +22 -0
- package/dist/PanoMeasurePlugin/utils/dom/base.d.ts +25 -0
- package/dist/PanoMeasurePlugin/utils/dom/distanceItem.d.ts +27 -0
- package/dist/PanoMeasurePlugin/utils/generatePolygonGeometry.d.ts +6 -0
- package/dist/PanoMeasurePlugin/utils/geometryUtil.d.ts +7 -0
- package/dist/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +1 -1
- package/dist/PanoMeasurePlugin/utils/isIntersecting.d.ts +15 -0
- package/dist/PanoMeasurePlugin/utils/line.d.ts +2 -1
- package/dist/index.cjs.js +64 -64
- package/dist/index.js +9427 -8244
- package/dist/index.umd.js +57 -57
- package/dist/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +3 -7
- package/dist/shared-utils/isTouchDevice.d.ts +1 -0
- package/dist/shared-utils/safeObj.d.ts +1 -0
- package/dist/shared-utils/three/IObject3D.d.ts +7 -0
- package/dist/shared-utils/three/Magnifier.d.ts +3 -0
- package/dist/shared-utils/three/PointSelector.d.ts +32 -0
- package/dist/shared-utils/three/PointSelectorHelper.d.ts +50 -0
- package/dist/shared-utils/three/index.d.ts +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/CSS3DRender.html +32 -31
- package/docs/classes/CruisePluginController.html +27 -26
- package/docs/classes/GuideLineItem.GuideLineItem.html +21 -20
- package/docs/classes/GuideLineModeItem.GuideLineModeItem.html +33 -87
- package/docs/classes/Magnifier.html +21 -20
- package/docs/classes/ModelRoomLabelController.html +12 -11
- package/docs/classes/Object3DHelperController.html +26 -25
- package/docs/classes/PaintBrush.html +16 -15
- package/docs/classes/PanoMeasurePluginLine.html +52 -106
- package/docs/classes/PanoMeasurePluginModel.html +67 -24
- package/docs/classes/PanoMeasurePluginPoint.html +15 -14
- package/docs/classes/PanoMeasurePluginPolyline.html +39 -26
- package/docs/classes/PanoTagPluginController.html +48 -47
- package/docs/classes/Util.BetterTween.html +10 -9
- package/docs/classes/Util.Interval.html +13 -12
- package/docs/classes/Util.Magnifier.html +31 -17
- package/docs/classes/Util.PointDomHelper.html +12 -11
- package/docs/classes/Util.PointHelper.html +12 -11
- package/docs/classes/{Util.FivePointSelector.html → Util.PointSelectorHelper.html} +96 -26
- package/docs/classes/Util.Rectangle.html +14 -13
- package/docs/enums/CameraMovementEffect.html +8 -7
- package/docs/enums/ContentType.html +21 -20
- package/docs/enums/DIRECTION.html +10 -9
- package/docs/enums/DISPLAY_STRATEGY_TYPE.html +10 -9
- package/docs/enums/DimensionType.html +8 -7
- package/docs/enums/FLOOR_PLAN_ATTACHED_TO.html +9 -8
- package/docs/enums/ITEM_LABEL_PLUGIN_DISPLAY_STRATEGY_TYPE.html +10 -9
- package/docs/enums/PaintBrushTypeEnum.html +9 -8
- package/docs/enums/PointType.html +8 -7
- package/docs/enums/Rotation.html +9 -8
- package/docs/functions/CSS3DRenderPlugin.html +6 -5
- package/docs/functions/CameraMovementPlugin.html +6 -5
- package/docs/functions/CruisePlugin.html +6 -5
- package/docs/functions/GuideLinePlugin.html +6 -5
- package/docs/functions/ItemLabelPlugin.html +6 -5
- package/docs/functions/MapviewFloorplanPlugin.html +6 -5
- package/docs/functions/ModelChassisCompassPlugin.html +6 -5
- package/docs/functions/ModelEntryDoorGuidePlugin.html +6 -5
- package/docs/functions/ModelFloorplanPlugin.html +6 -5
- package/docs/functions/ModelItemLabelPlugin.html +6 -5
- package/docs/functions/ModelRoomLabelPlugin.html +6 -5
- package/docs/functions/ModelTVVideoPlugin.html +6 -5
- package/docs/functions/ModelViewPlugin.html +6 -5
- package/docs/functions/Object3DHelperPlugin.html +6 -5
- package/docs/functions/PanoCompassPlugin.html +6 -5
- package/docs/functions/PanoCursorRaycasterPlugin.html +6 -5
- package/docs/functions/PanoDoorLabelPlugin.html +6 -5
- package/docs/functions/PanoFloorplanRadarPlugin.html +6 -5
- package/docs/functions/PanoMeasurePlugin.html +6 -5
- package/docs/functions/PanoRulerPlugin.html +6 -5
- package/docs/functions/PanoRulerProPlugin.html +6 -5
- package/docs/functions/PanoSpatialTagPlugin.html +6 -5
- package/docs/functions/PanoTagPlugin.html +6 -5
- package/docs/functions/PanoVideoPlugin.html +6 -5
- package/docs/functions/TopviewFloorplanPlugin.html +6 -5
- package/docs/functions/Util.getCoordsFromClient.html +6 -5
- package/docs/functions/Util.getCoordsFromElement.html +6 -5
- package/docs/functions/Util.getFrameTime.html +6 -5
- package/docs/functions/Util.getIntersectFromRelativePosition.html +6 -5
- package/docs/functions/Util.getRaycasterFromFivePointer.html +6 -5
- package/docs/functions/Util.isAbsoluteURL.html +6 -5
- package/docs/functions/Util.isModelLike.html +6 -5
- package/docs/functions/Util.isNil.html +6 -5
- package/docs/functions/Util.isPanoramaLike.html +6 -5
- package/docs/functions/Util.nextFrame.html +6 -5
- package/docs/functions/Util.notNil.html +6 -5
- package/docs/functions/Util.requestAnimationFrameInterval.html +6 -5
- package/docs/functions/Util.tweenProgress.html +6 -5
- package/docs/functions/Util.uuid.html +6 -5
- package/docs/functions/pluginFlag.html +6 -5
- package/docs/index.html +6 -5
- package/docs/interfaces/AddTagConfig.html +7 -6
- package/docs/interfaces/CSS3DRenderPluginEventMap.html +12 -11
- package/docs/interfaces/CSS3DRenderPluginState.html +9 -8
- package/docs/interfaces/CameraMovementPluginExportType.html +8 -7
- package/docs/interfaces/CruisePluginTypes.Config.html +9 -8
- package/docs/interfaces/CruisePluginTypes.CruiseKeyframe.html +13 -12
- package/docs/interfaces/CruisePluginTypes.EventMap.html +21 -20
- package/docs/interfaces/CruisePluginTypes.MoveAction.html +13 -12
- package/docs/interfaces/CruisePluginTypes.MoveWithKeyframesAction.html +15 -14
- package/docs/interfaces/CruisePluginTypes.MoveWithPanoIndexAction.html +15 -14
- package/docs/interfaces/CruisePluginTypes.PluginData.html +10 -9
- package/docs/interfaces/CruisePluginTypes.PluginServerData.html +8 -7
- package/docs/interfaces/CruisePluginTypes.PluginState.html +12 -11
- package/docs/interfaces/EventMap.html +16 -15
- package/docs/interfaces/FloorplanBounding.html +9 -8
- package/docs/interfaces/FloorplanData.html +11 -10
- package/docs/interfaces/FloorplanEntrance.html +12 -11
- package/docs/interfaces/FloorplanExtraObject.html +11 -10
- package/docs/interfaces/FloorplanExtraObject3D.html +9 -8
- package/docs/interfaces/FloorplanFloorData.html +10 -9
- package/docs/interfaces/FloorplanImagePosition.html +8 -7
- package/docs/interfaces/FloorplanObserver.html +10 -9
- package/docs/interfaces/FloorplanOutlineItem.html +10 -9
- package/docs/interfaces/FloorplanPosition.html +8 -7
- package/docs/interfaces/FloorplanRoomItem.html +14 -13
- package/docs/interfaces/FloorplanRoomLabelItem.html +8 -7
- package/docs/interfaces/FloorplanServerBounding.html +9 -8
- package/docs/interfaces/FloorplanServerComputedData.html +11 -10
- package/docs/interfaces/FloorplanServerData.html +8 -7
- package/docs/interfaces/FloorplanServerDoorItem.html +11 -10
- package/docs/interfaces/FloorplanServerDoorPosition.html +9 -8
- package/docs/interfaces/FloorplanServerEntrance.html +12 -11
- package/docs/interfaces/FloorplanServerFloorData.html +10 -9
- package/docs/interfaces/FloorplanServerImagePosition.html +8 -7
- package/docs/interfaces/FloorplanServerObserver.html +10 -9
- package/docs/interfaces/FloorplanServerOutlineItem.html +10 -9
- package/docs/interfaces/FloorplanServerPosition.html +8 -7
- package/docs/interfaces/FloorplanServerRoomItem.html +15 -14
- package/docs/interfaces/FloorplanServerRoomLabelItem.html +8 -7
- package/docs/interfaces/GuideLineModeItem.GuideLineTagContainer.html +9 -8
- package/docs/interfaces/GuideLinePluginType.CatmullRomCurve3.html +11 -10
- package/docs/interfaces/GuideLinePluginType.EventMap.html +14 -13
- package/docs/interfaces/GuideLinePluginType.GuideLineGeometryStyle.html +9 -8
- package/docs/interfaces/GuideLinePluginType.GuideLineItemContainer.html +7 -6
- package/docs/interfaces/GuideLinePluginType.GuideLineMaterialStyle.html +14 -13
- package/docs/interfaces/GuideLinePluginType.LineGeometriesConfig.html +9 -8
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineStyle.html +19 -18
- package/docs/interfaces/GuideLinePluginType.ModelGuideLineTagData.html +8 -7
- package/docs/interfaces/GuideLinePluginType.PanoramaGuideLineStyle.html +19 -18
- package/docs/interfaces/GuideLinePluginType.PluginDataV2.html +6 -5
- package/docs/interfaces/GuideLinePluginType.PluginServerData.html +8 -7
- package/docs/interfaces/GuideLinePluginType.PluginState.html +9 -8
- package/docs/interfaces/GuideLinePluginType.Route.html +12 -11
- package/docs/interfaces/GuideLinePluginType.RouteConfig.html +10 -9
- package/docs/interfaces/HelperOffset.html +9 -8
- package/docs/interfaces/ImagePlaneGroup.html +7 -6
- package/docs/interfaces/ItemLabelPluginData.html +7 -6
- package/docs/interfaces/ItemLabelPluginExportReturnsType.html +12 -11
- package/docs/interfaces/ItemLabelPluginParametersType.html +10 -9
- package/docs/interfaces/MinMax.html +8 -7
- package/docs/interfaces/ModelChassisCompassPluginData.html +8 -7
- package/docs/interfaces/ModelChassisCompassPluginExportType.html +9 -8
- package/docs/interfaces/ModelChassisCompassPluginParameterType.html +8 -7
- package/docs/interfaces/ModelEntryDoorGuidePluginData.html +9 -8
- package/docs/interfaces/ModelEntryDoorGuidePluginExportType.html +9 -8
- package/docs/interfaces/ModelItemLabelPluginData.html +7 -6
- package/docs/interfaces/ModelItemLabelPluginExportReturnsType.html +12 -11
- package/docs/interfaces/ModelItemLabelPluginParametersType.html +8 -7
- package/docs/interfaces/ModelRoomLabelPluginData.html +7 -6
- package/docs/interfaces/ModelTVVideoPluginData.html +10 -9
- package/docs/interfaces/ModelTVVideoPluginExportType.html +9 -8
- package/docs/interfaces/ModelTVVideoPluginParameterType.html +7 -6
- package/docs/interfaces/ModelViewPluginExportType.html +12 -11
- package/docs/interfaces/Object3DHelperState.html +9 -8
- package/docs/interfaces/ObjectHelperControllers.html +10 -9
- package/docs/interfaces/PaintBrushAction.html +13 -12
- package/docs/interfaces/PaintBrushConfigs.html +13 -12
- package/docs/interfaces/PaintBrushState.html +11 -10
- package/docs/interfaces/PanoCursorRaycasterPluginExportType.html +11 -10
- package/docs/interfaces/PanoCursorRaycasterPluginParameterType.html +6 -5
- package/docs/interfaces/PanoMeasureParameterType.html +23 -15
- package/docs/interfaces/PanoMeasurePluginLineJson.html +9 -8
- package/docs/interfaces/PanoMeasurePluginOpenParameter.html +8 -7
- package/docs/interfaces/PanoMeasurePluginPointJson.html +8 -7
- package/docs/interfaces/PanoMeasurePluginPolylineJson.html +9 -8
- package/docs/interfaces/PanoRulerPluginExportType.html +11 -10
- package/docs/interfaces/PanoRulerPluginOptions.html +8 -7
- package/docs/interfaces/PanoRulerPluginParameterType.html +9 -8
- package/docs/interfaces/PanoRulerProPluginExportType.html +10 -9
- package/docs/interfaces/PanoRulerProPluginOptions.html +8 -7
- package/docs/interfaces/PanoRulerProPluginParameterType.html +8 -7
- package/docs/interfaces/PanoRulerProPluginState.html +9 -8
- package/docs/interfaces/PanoSpatialTagPluginContentEvent.html +6 -5
- package/docs/interfaces/PanoSpatialTagPluginContentReplacement.html +6 -5
- package/docs/interfaces/PanoSpatialTagPluginData.html +12 -11
- package/docs/interfaces/PanoSpatialTagPluginDataElement.html +11 -10
- package/docs/interfaces/PanoSpatialTagPluginExportType.html +14 -13
- package/docs/interfaces/PanoSpatialTagPluginOriginElement.html +11 -10
- package/docs/interfaces/PanoSpatialTagPluginParameterType.html +14 -13
- package/docs/interfaces/PanoSpatialTagPluginPointElement.html +12 -11
- package/docs/interfaces/PanoSpatialTagPluginTagElement.html +11 -10
- package/docs/interfaces/PanoVideoPluginType.LoadParams.html +7 -6
- package/docs/interfaces/PanoVideoPluginType.PanoVideoItem.html +9 -8
- package/docs/interfaces/PanoVideoPluginType.PluginData.html +7 -6
- package/docs/interfaces/PanoVideoPluginType.PluginEventMap.html +10 -9
- package/docs/interfaces/PanoVideoPluginType.PluginState.html +7 -6
- package/docs/interfaces/PanoVideoPluginType.VideoItem.html +9 -8
- package/docs/interfaces/PanoVideoPluginType.VideoMeshParams.html +11 -10
- package/docs/interfaces/Point.html +9 -8
- package/docs/interfaces/Room.html +10 -9
- package/docs/interfaces/RoomInfo.html +8 -7
- package/docs/interfaces/RoomLabel.html +15 -14
- package/docs/interfaces/RoomRules.html +6 -5
- package/docs/interfaces/Rooms.html +6 -5
- package/docs/interfaces/Scissor.html +10 -9
- package/docs/interfaces/State.html +9 -8
- package/docs/interfaces/TagCacheInterface.html +13 -12
- package/docs/interfaces/TagConfig.html +14 -13
- package/docs/interfaces/TagGLTFObjectGroup.html +7 -6
- package/docs/interfaces/TagIconUrl.html +13 -12
- package/docs/interfaces/TagObjectGroup.html +7 -6
- package/docs/interfaces/TagStyle.html +7 -6
- package/docs/interfaces/Tags.html +10 -9
- package/docs/interfaces/TemporaryState.html +7 -6
- package/docs/interfaces/Util.MagnifierParameter.html +12 -11
- package/docs/interfaces/Util.MouseGroupParameter.html +9 -8
- package/docs/interfaces/Util.PointIntersection.html +407 -0
- package/docs/modules/CruisePluginTypes.html +6 -5
- package/docs/modules/GuideLineItem.html +6 -5
- package/docs/modules/GuideLineModeItem.html +6 -5
- package/docs/modules/GuideLinePluginType.html +6 -5
- package/docs/modules/PanoVideoPluginType.html +6 -5
- package/docs/modules/Util.html +8 -6
- package/docs/modules.html +6 -5
- package/docs/types/ArrayPosition.html +6 -5
- package/docs/types/AudioAppearance.html +6 -5
- package/docs/types/AudioTagTypeConfigKey.html +6 -5
- package/docs/types/CSS3DRenderExportType.html +6 -5
- package/docs/types/CSS3DRenderPluginExportType.html +6 -5
- package/docs/types/CSS3DRenderPluginParameterType.html +6 -5
- package/docs/types/ClassFunctionParameters.html +6 -5
- package/docs/types/Color.html +6 -5
- package/docs/types/ContentTypeConfigKey.html +6 -5
- package/docs/types/ContentTypeConfigKeySplit.html +6 -5
- package/docs/types/ContentTypeMap.html +6 -5
- package/docs/types/Create3DDomContainerReturnType.html +6 -5
- package/docs/types/Create3DElementReturnType.html +6 -5
- package/docs/types/CruisePluginExportType.html +6 -5
- package/docs/types/CruisePluginTypes.CruiseData.html +6 -5
- package/docs/types/CruisePluginTypes.MoveEffect.html +6 -5
- package/docs/types/DeprecatedMediaPlaneProperty.html +6 -5
- package/docs/types/DeprecatedTagProperty.html +6 -5
- package/docs/types/Direction-1.html +6 -5
- package/docs/types/Direction4.html +6 -5
- package/docs/types/ElementRenderer.html +6 -5
- package/docs/types/FloorplanRuleLabels.html +6 -5
- package/docs/types/FloorplanServerRuleLabels.html +6 -5
- package/docs/types/GuideLinePluginExportType.html +6 -5
- package/docs/types/GuideLinePluginType.GuideLineItem.html +6 -5
- package/docs/types/GuideLinePluginType.GuideLineItemEventMap.html +6 -5
- package/docs/types/GuideLinePluginType.GuideLineModeItemMode.html +6 -5
- package/docs/types/GuideLinePluginType.GuideLineStyle.html +6 -5
- package/docs/types/GuideLinePluginType.ModelGuideLineTag.html +6 -5
- package/docs/types/GuideLinePluginType.PathItem.html +6 -5
- package/docs/types/GuideLinePluginType.PluginData.html +6 -5
- package/docs/types/HelperEventMap.html +6 -5
- package/docs/types/LoadTagConfig.html +6 -5
- package/docs/types/MapviewFloorplanPluginParameterType.html +6 -5
- package/docs/types/MapviewFloorplanPluginReturnType.html +6 -5
- package/docs/types/MediaData.html +6 -5
- package/docs/types/MediaStore.html +6 -5
- package/docs/types/ModelEntryDoorGuidePluginParameterType.html +6 -5
- package/docs/types/ModelFloorplanPluginParameterType.html +6 -5
- package/docs/types/ModelFloorplanPluginReturnType.html +6 -5
- package/docs/types/ModelRoomLabelPluginParameters.html +6 -5
- package/docs/types/ModelRoomLabelPluginReturnType.html +6 -5
- package/docs/types/MoveArgs.html +6 -5
- package/docs/types/MoveOpts.html +6 -5
- package/docs/types/Object3DHelperEventMap.html +6 -5
- package/docs/types/ObjectFit.html +6 -5
- package/docs/types/PaintBrushEventMap.html +6 -5
- package/docs/types/PanoCompassPluginData.html +6 -5
- package/docs/types/PanoCompassPluginExportType.html +6 -5
- package/docs/types/PanoCompassPluginParameterType.html +6 -5
- package/docs/types/PanoFloorplanRadarPluginParameterType.html +6 -5
- package/docs/types/PanoFloorplanRadarPluginReturnType.html +6 -5
- package/docs/types/PanoIndex.html +6 -5
- package/docs/types/PanoMeasurePluginEvent.html +6 -5
- package/docs/types/PanoMeasureReturnType.html +6 -5
- package/docs/types/PanoSpatialTagPluginId.html +6 -5
- package/docs/types/PanoTagPluginExportInterface.html +6 -5
- package/docs/types/PanoTagPluginParamsInterface.html +6 -5
- package/docs/types/PanoVideoPluginParameterType.html +6 -5
- package/docs/types/PanoVideoPluginReturnType.html +6 -5
- package/docs/types/PartialObjectDeep.html +6 -5
- package/docs/types/PickTagContentTypeInContentTypeConfigKey.html +6 -5
- package/docs/types/PlaneTag.html +6 -5
- package/docs/types/Point2DTag.html +6 -5
- package/docs/types/Point3DTag.html +6 -5
- package/docs/types/PointTag.html +6 -5
- package/docs/types/PointTagInstance.html +6 -5
- package/docs/types/Position.html +6 -5
- package/docs/types/RotateArgs.html +6 -5
- package/docs/types/RotateOpts.html +6 -5
- package/docs/types/RuleLabelsKey.html +6 -5
- package/docs/types/RuleLabelsValue.html +6 -5
- package/docs/types/StickType.html +6 -5
- package/docs/types/Tag.html +6 -5
- package/docs/types/Tag2D.html +6 -5
- package/docs/types/Tag3D.html +6 -5
- package/docs/types/TagContentType.html +6 -5
- package/docs/types/TagDimensionType.html +6 -5
- package/docs/types/TagElement.html +6 -5
- package/docs/types/TagEvents.html +6 -5
- package/docs/types/TagGLTFObject.html +6 -5
- package/docs/types/TagHooks.html +6 -5
- package/docs/types/TagId.html +6 -5
- package/docs/types/TagInstance.html +6 -5
- package/docs/types/TagPointType.html +6 -5
- package/docs/types/TagRendererMap.html +6 -5
- package/docs/types/TopviewFloorplanPluginParameterType.html +6 -5
- package/docs/types/TopviewFloorplanPluginReturnType.html +6 -5
- package/docs/types/WorkCode.html +6 -5
- package/docs/variables/FLOOR_TYPE_MAP.html +6 -5
- package/docs/variables/PLUGIN.html +6 -5
- package/docs/variables/ROOM_FETILE_TYPE_MAP.html +6 -5
- package/docs/variables/ROOM_TYPE_MAP.html +6 -5
- package/docs/variables/itemLabelPluginServerParams.html +6 -5
- package/docs/variables/modelItemLabelPluginServerParams.html +6 -5
- package/docs/variables/modelRoomLabelPluginServerParams.html +6 -5
- package/libs/GuideLinePlugin/Components/Tag.js +41 -134
- package/libs/GuideLinePlugin/Controller.d.ts +3 -5
- package/libs/GuideLinePlugin/Controller.js +44 -48
- package/libs/GuideLinePlugin/GuideLineItem/index.js +1 -1
- package/libs/GuideLinePlugin/GuideLineItem.d.ts +1 -1
- package/libs/GuideLinePlugin/GuideLineModeItem/index.js +113 -150
- package/libs/GuideLinePlugin/GuideLineModeItem.d.ts +0 -17
- package/libs/GuideLinePlugin/utils/createLineGeometry.d.ts +0 -7
- package/libs/GuideLinePlugin/utils/createLineGeometry.js +17 -19
- package/libs/ModelRoomLabelPlugin/RoomLabelItems.js +77 -77
- package/libs/Object3DHelperPlugin/Controller.js +3 -2
- package/libs/Object3DHelperPlugin/index.js +6 -5
- package/libs/PanoMeasurePlugin/Components/Common/CircleButton.js +57 -0
- package/libs/PanoMeasurePlugin/Components/Common/CircleButton.svelte.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Components/Common/Exit.js +42 -0
- package/libs/PanoMeasurePlugin/Components/Common/Exit.svelte.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Components/Common/Switcher0.js +250 -0
- package/libs/PanoMeasurePlugin/Components/Common/Switcher0.svelte.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Components/Common/Switcher1.js +211 -0
- package/libs/PanoMeasurePlugin/Components/Common/Switcher1.svelte.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Components/Controller0.js +130 -0
- package/libs/PanoMeasurePlugin/Components/Controller0.svelte.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Components/Controller1.js +255 -0
- package/libs/PanoMeasurePlugin/Components/Controller1.svelte.d.ts +1 -0
- package/libs/PanoMeasurePlugin/Controller/BaseController.d.ts +12 -4
- package/libs/PanoMeasurePlugin/Controller/BaseController.js +28 -21
- package/libs/PanoMeasurePlugin/Controller/EditController.d.ts +13 -5
- package/libs/PanoMeasurePlugin/Controller/EditController.js +184 -75
- package/libs/PanoMeasurePlugin/Controller/MixedController.js +26 -25
- package/libs/PanoMeasurePlugin/Controller/ViewController.js +5 -4
- package/libs/PanoMeasurePlugin/Controller/WatchController.d.ts +9 -2
- package/libs/PanoMeasurePlugin/Controller/WatchController.js +99 -53
- package/libs/PanoMeasurePlugin/Controller/index.d.ts +22 -9
- package/libs/PanoMeasurePlugin/Controller/index.js +127 -73
- package/libs/PanoMeasurePlugin/Model/area.d.ts +62 -0
- package/libs/PanoMeasurePlugin/Model/area.js +98 -0
- package/libs/PanoMeasurePlugin/Model/index.d.ts +9 -0
- package/libs/PanoMeasurePlugin/Model/index.js +27 -12
- package/libs/PanoMeasurePlugin/Model/line.d.ts +4 -1
- package/libs/PanoMeasurePlugin/Model/line.js +15 -8
- package/libs/PanoMeasurePlugin/Model/point.js +17 -12
- package/libs/PanoMeasurePlugin/Model/polygon.d.ts +10 -0
- package/libs/PanoMeasurePlugin/Model/polygon.js +39 -0
- package/libs/PanoMeasurePlugin/Model/polyline.d.ts +4 -0
- package/libs/PanoMeasurePlugin/Model/polyline.js +10 -3
- package/libs/PanoMeasurePlugin/Modules/DeleteDom/index.d.ts +1 -1
- package/libs/PanoMeasurePlugin/Modules/DeleteDom/index.js +27 -25
- package/libs/PanoMeasurePlugin/Modules/FiveHelper.d.ts +2 -1
- package/libs/PanoMeasurePlugin/Modules/FiveHelper.js +3 -3
- package/libs/PanoMeasurePlugin/Modules/GuideController.d.ts +1 -1
- package/libs/PanoMeasurePlugin/Modules/Magnifier.d.ts +1 -1
- package/libs/PanoMeasurePlugin/Modules/UIController/index.d.ts +5 -3
- package/libs/PanoMeasurePlugin/Modules/UIController/index.js +112 -35
- package/libs/PanoMeasurePlugin/Modules/rangePiece/index.d.ts +1 -1
- package/libs/PanoMeasurePlugin/index.js +61 -17
- package/libs/PanoMeasurePlugin/typings/data.d.ts +23 -0
- package/libs/PanoMeasurePlugin/typings/event.type.d.ts +10 -3
- package/libs/PanoMeasurePlugin/typings/index.d.ts +1 -1
- package/libs/PanoMeasurePlugin/utils/dom/areaDom.d.ts +22 -0
- package/libs/PanoMeasurePlugin/utils/dom/areaDom.js +29 -0
- package/libs/PanoMeasurePlugin/utils/dom/base.d.ts +25 -0
- package/libs/PanoMeasurePlugin/utils/dom/base.js +72 -0
- package/libs/PanoMeasurePlugin/utils/dom/distanceItem.d.ts +27 -0
- package/libs/PanoMeasurePlugin/utils/dom/distanceItem.js +47 -0
- package/libs/PanoMeasurePlugin/utils/generatePolygonGeometry.d.ts +6 -0
- package/libs/PanoMeasurePlugin/utils/generatePolygonGeometry.js +13 -0
- package/libs/PanoMeasurePlugin/utils/geometryUtil.d.ts +7 -0
- package/libs/PanoMeasurePlugin/utils/geometryUtil.js +37 -0
- package/libs/PanoMeasurePlugin/utils/getIntersectionFromEvent.d.ts +1 -1
- package/libs/PanoMeasurePlugin/utils/isIntersecting.d.ts +15 -0
- package/libs/PanoMeasurePlugin/utils/isIntersecting.js +25 -0
- package/libs/PanoMeasurePlugin/utils/line.d.ts +2 -1
- package/libs/PanoTagPlugin/controller/TagRender.js +1 -1
- package/libs/base/BasePlugin.js +1 -1
- package/libs/floorplan/Components/RoomHighlight/Room.js +54 -54
- package/libs/floorplan/Components/RoomHighlight/RoomHighlight.js +8 -8
- package/libs/floorplan/PanoFloorplanRadarPlugin/Components/CurrentFloor/CurrentFloor.js +28 -30
- package/libs/index.js +134 -116
- package/libs/shared-utils/Object3DHelper/Base/BaseHelper.d.ts +3 -7
- package/libs/shared-utils/Object3DHelper/Base/BaseHelper.js +29 -49
- package/libs/shared-utils/index.js +6 -6
- package/libs/shared-utils/isTouchDevice.d.ts +1 -0
- package/libs/shared-utils/isTouchDevice.js +4 -0
- package/libs/shared-utils/logger.js +2 -2
- package/libs/shared-utils/safeObj.d.ts +1 -0
- package/libs/shared-utils/safeObj.js +6 -0
- package/libs/shared-utils/three/IObject3D.d.ts +7 -0
- package/libs/shared-utils/three/IObject3D.js +25 -0
- package/libs/shared-utils/three/Magnifier.d.ts +3 -0
- package/libs/shared-utils/three/Magnifier.js +11 -9
- package/libs/shared-utils/three/PointSelector.d.ts +32 -0
- package/libs/shared-utils/three/PointSelector.js +68 -0
- package/libs/shared-utils/three/PointSelectorHelper.d.ts +50 -0
- package/libs/shared-utils/three/PointSelectorHelper.js +100 -0
- package/libs/shared-utils/three/centerPoint.js +1 -3
- package/libs/shared-utils/three/index.d.ts +1 -1
- package/package.json +4 -2
- package/dist/PanoMeasurePlugin/utils/distanceDom.d.ts +0 -30
- package/dist/shared-utils/three/FivePointSelector.d.ts +0 -36
- package/libs/PanoMeasurePlugin/utils/distanceDom.d.ts +0 -30
- package/libs/PanoMeasurePlugin/utils/distanceDom.js +0 -83
- package/libs/shared-utils/three/FivePointSelector.d.ts +0 -36
- package/libs/shared-utils/three/FivePointSelector.js +0 -49
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import type MeasureController from '../../Controller';
|
|
2
|
+
export type UIMode = 'pc' | 'mobile';
|
|
2
3
|
export interface UIControllerParams {
|
|
3
|
-
container
|
|
4
|
-
mode?:
|
|
4
|
+
container?: Element;
|
|
5
|
+
mode?: UIMode;
|
|
6
|
+
useNewUI?: boolean;
|
|
5
7
|
startButtonText?: string;
|
|
6
8
|
endButtonText?: string;
|
|
7
9
|
revokeButtonText?: string;
|
|
8
10
|
exitButtonText?: string;
|
|
9
11
|
}
|
|
10
|
-
export type UIMode = 'pc' | 'mobile';
|
|
11
12
|
export declare class UIController {
|
|
12
13
|
private revoke?;
|
|
13
14
|
private container;
|
|
@@ -15,6 +16,7 @@ export declare class UIController {
|
|
|
15
16
|
private disposers;
|
|
16
17
|
private measureController;
|
|
17
18
|
private mode;
|
|
19
|
+
private svelteDom?;
|
|
18
20
|
private _params;
|
|
19
21
|
constructor(measureController: MeasureController, params: UIControllerParams);
|
|
20
22
|
dispose(): void;
|
|
@@ -1,53 +1,130 @@
|
|
|
1
1
|
var c = Object.defineProperty;
|
|
2
|
-
var h = (i,
|
|
3
|
-
var
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import { controllerBackgroundStyle as
|
|
2
|
+
var h = (i, e, t) => e in i ? c(i, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : i[e] = t;
|
|
3
|
+
var o = (i, e, t) => (h(i, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
import d from "./HTML.js";
|
|
5
|
+
import u from "./mobileHTML.js";
|
|
6
|
+
import { controllerBackgroundStyle as y, operatingSpaceStyle as f, uiWrapperStyle as v, textStyle as C, exitItemStyle as b, exitIconStyle as g } from "./style.js";
|
|
7
7
|
import { MainBtnController as _ } from "./MainBtnController.js";
|
|
8
|
-
import { MobileMainBtnController as
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
8
|
+
import { MobileMainBtnController as E } from "./mobileMainBtnController.js";
|
|
9
|
+
import S from "./Revoke/index.js";
|
|
10
|
+
import x from "../../Components/Controller0.js";
|
|
11
|
+
import k from "../../Components/Controller1.js";
|
|
12
|
+
import "../../../vendor/svelte/internal/index.js";
|
|
13
|
+
import "../../Components/Common/Switcher0.js";
|
|
14
|
+
import "../../Components/Common/Exit.js";
|
|
15
|
+
import "../../Components/Common/Switcher1.js";
|
|
16
|
+
import "../../Components/Common/CircleButton.js";
|
|
17
|
+
import "../../Controller/EditController.js";
|
|
18
|
+
import "hammerjs";
|
|
19
|
+
import "../../Model/line.js";
|
|
20
|
+
import "../../../shared-utils/uuid.js";
|
|
21
|
+
import "../../utils/line.js";
|
|
22
|
+
import "@realsee/five/line";
|
|
23
|
+
import "../../utils/constants.js";
|
|
24
|
+
import "three";
|
|
25
|
+
import "@realsee/five";
|
|
26
|
+
import "../../utils/dom/distanceItem.js";
|
|
27
|
+
import "../../utils/dom/base.js";
|
|
28
|
+
import "../../utils/isNDCPointInScreen.js";
|
|
29
|
+
import "../../Model/point.js";
|
|
30
|
+
import "../../../shared-utils/removeArrayItem.js";
|
|
31
|
+
import "../../../shared-utils/throttle.js";
|
|
32
|
+
import "../../Controller/BaseController.js";
|
|
33
|
+
import "../../utils/ironbox.js";
|
|
34
|
+
import "../../utils/getIntersectionFromEvent.js";
|
|
35
|
+
import "../../utils/getPointFromHammerEvent.js";
|
|
36
|
+
import "../../Model/polyline.js";
|
|
37
|
+
import "../../Model/area.js";
|
|
38
|
+
import "../../Model/polygon.js";
|
|
39
|
+
import "../../../shared-utils/three/IObject3D.js";
|
|
40
|
+
import "../../utils/generatePolygonGeometry.js";
|
|
41
|
+
import "earcut";
|
|
42
|
+
import "../../utils/dom/areaDom.js";
|
|
43
|
+
import "../../utils/geometryUtil.js";
|
|
44
|
+
import "../../../shared-utils/three/centerPoint.js";
|
|
45
|
+
import "../../utils/isIntersecting.js";
|
|
46
|
+
import "../../../shared-utils/three/PointSelector.js";
|
|
47
|
+
import "../../../shared-utils/three/PointSelectorHelper.js";
|
|
48
|
+
import "../../../shared-utils/three/Magnifier.js";
|
|
49
|
+
import "../../../shared-utils/three/getIntersect.js";
|
|
50
|
+
import "../../../shared-utils/three/PointHelper.js";
|
|
51
|
+
import "../../../shared-utils/three/Assets/index.js";
|
|
52
|
+
import "../../../shared-utils/three/PointDomHelper.js";
|
|
53
|
+
import "../../../vendor/@tweenjs/tween/dist/tween.esm.js.js";
|
|
54
|
+
import "../rangePiece/html.js";
|
|
55
|
+
import "../../../CSS3DRenderPlugin/index.js";
|
|
56
|
+
import "../../../CSS3DRenderPlugin/Controller.js";
|
|
57
|
+
import "../../../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
|
|
58
|
+
import "../../../CSS3DRenderPlugin/utils/three/CSS3DRenderer.js";
|
|
59
|
+
import "three/examples/jsm/renderers/CSS3DRenderer";
|
|
60
|
+
import "../../../CSS3DRenderPlugin/utils/getAllCSS3DObject.js";
|
|
61
|
+
import "../../../CSS3DRenderPlugin/utils/createResizeObserver.js";
|
|
62
|
+
import "../../../CSS3DRenderPlugin/utils/even.js";
|
|
63
|
+
import "../../../shared-utils/Subscribe.js";
|
|
64
|
+
import "../../../CSS3DRenderPlugin/utils/positionToVector3.js";
|
|
65
|
+
import "../../../CSS3DRenderPlugin/utils/three/CSS3DObject.js";
|
|
66
|
+
import "../../../CSS3DRenderPlugin/utils/three/OpacityMesh.js";
|
|
67
|
+
import "../../../CSS3DRenderPlugin/utils/three/CSS3DScene.js";
|
|
68
|
+
import "../../../CSS3DRenderPlugin/utils/three/CSS3DGroup.js";
|
|
69
|
+
import "../../../CSS3DRenderPlugin/utils/waitFiveModelLoaded.js";
|
|
70
|
+
import "../../../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
|
|
71
|
+
import "../../../shared-utils/isAbsoluteURL.js";
|
|
72
|
+
import "../../../shared-utils/animationFrame/BetterTween.js";
|
|
73
|
+
import "../../../shared-utils/animationFrame/index.js";
|
|
74
|
+
import "../../../shared-utils/isTouchDevice.js";
|
|
75
|
+
class Ft {
|
|
76
|
+
constructor(e, t) {
|
|
77
|
+
o(this, "revoke");
|
|
78
|
+
o(this, "container");
|
|
79
|
+
o(this, "mainController");
|
|
80
|
+
o(this, "disposers", []);
|
|
81
|
+
o(this, "measureController");
|
|
82
|
+
o(this, "mode");
|
|
83
|
+
o(this, "svelteDom");
|
|
84
|
+
o(this, "_params");
|
|
85
|
+
o(this, "handleExit", () => {
|
|
86
|
+
const e = this.container.querySelector(".fpm__exit-icon"), t = this.container.querySelector(".fpm__exit");
|
|
87
|
+
if (!t || !e)
|
|
22
88
|
throw new Error("cannot find dom");
|
|
23
|
-
this.mode === "pc" && (Object.assign(
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
},
|
|
27
|
-
|
|
89
|
+
this.mode === "pc" && (Object.assign(t.style, b), Object.assign(e == null ? void 0 : e.style, g));
|
|
90
|
+
const r = () => {
|
|
91
|
+
t.style.opacity = "1";
|
|
92
|
+
}, s = () => {
|
|
93
|
+
t.style.opacity = "0.85";
|
|
28
94
|
}, n = () => {
|
|
29
95
|
this.measureController.disable();
|
|
30
96
|
};
|
|
31
|
-
return
|
|
32
|
-
|
|
97
|
+
return t.addEventListener("click", n), t.addEventListener("mouseenter", r), t.addEventListener("mouseleave", s), () => {
|
|
98
|
+
t.removeEventListener("click", n), t.removeEventListener("mouseenter", r), t.removeEventListener("mouseleave", s);
|
|
33
99
|
};
|
|
34
100
|
});
|
|
35
|
-
var
|
|
36
|
-
this._params =
|
|
37
|
-
const
|
|
38
|
-
|
|
101
|
+
var s, n;
|
|
102
|
+
this._params = t, this.measureController = e, this.mode = (s = t.mode) != null ? s : "pc", this.container = document.createElement("div"), this.container.innerHTML = this.mode === "mobile" ? u : d, this.container.classList.add("fpm__ui-controller", this.mode), this.container.style.background = "rgba(0, 0, 0, 0.15)";
|
|
103
|
+
const r = (n = t.useNewUI) != null ? n : !1;
|
|
104
|
+
if (r && (this.mode === "pc" ? this.svelteDom = new x({
|
|
105
|
+
target: t.container,
|
|
106
|
+
props: { measureController: this.measureController }
|
|
107
|
+
}) : this.mode === "mobile" && (this.svelteDom = new k({
|
|
108
|
+
target: t.container,
|
|
109
|
+
props: { measureController: this.measureController }
|
|
110
|
+
}))), !r) {
|
|
111
|
+
t.container.appendChild(this.container);
|
|
112
|
+
const l = this.container.querySelectorAll(".fpm__text"), m = this.container.querySelector(".fpm_ui-bg"), p = this.container.querySelector(".fpm_operating-space");
|
|
113
|
+
Object.assign(m == null ? void 0 : m.style, y), Object.assign(p == null ? void 0 : p.style, f), Object.assign(this.container.style, v), l.forEach((a) => Object.assign(a.style, C));
|
|
114
|
+
}
|
|
39
115
|
}
|
|
40
116
|
dispose() {
|
|
41
|
-
|
|
117
|
+
var e;
|
|
118
|
+
this.hide(), (e = this.svelteDom) == null || e.$destroy(), this.container.remove();
|
|
42
119
|
}
|
|
43
120
|
show() {
|
|
44
|
-
return this.container.style.display = "block", this.container.style.opacity = "1", this.container.style.transform = "translate(0, 0)", this.mode === "pc" ? (this.revoke = new
|
|
121
|
+
return this.container.style.display = "block", this.container.style.opacity = "1", this.container.style.transform = "translate(0, 0)", this.mode === "pc" ? (this.revoke = new S(this.measureController, this.container), this.mainController = new _(this.measureController, this.container, this._params)) : this.mainController = new E(this.measureController, this.container, this._params), this.disposers.push(this.handleExit()), this;
|
|
45
122
|
}
|
|
46
123
|
hide() {
|
|
47
|
-
var
|
|
48
|
-
return this.container.style.display = "none", this.container.style.opacity = "0", this.container.style.transform = "translate(0, 10px)", this.mode === "pc" && ((
|
|
124
|
+
var e, t;
|
|
125
|
+
return this.container.style.display = "none", this.container.style.opacity = "0", this.container.style.transform = "translate(0, 10px)", this.mode === "pc" && ((e = this.revoke) == null || e.dispose()), (t = this.mainController) == null || t.dispose(), this.disposers.forEach((r) => r()), this.disposers = [], this;
|
|
49
126
|
}
|
|
50
127
|
}
|
|
51
128
|
export {
|
|
52
|
-
|
|
129
|
+
Ft as UIController
|
|
53
130
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Five, Subscribe } from '@realsee/five';
|
|
2
|
-
import { Group } from 'three';
|
|
2
|
+
import type { Group } from 'three';
|
|
3
3
|
import type { Model } from '../../Model';
|
|
4
4
|
import type { PanoMeasurePluginEvent } from '../../typings/event.type';
|
|
5
5
|
import type FiveHelper from '../FiveHelper';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import t from "./Controller/index.js";
|
|
2
|
-
import { default as
|
|
3
|
-
import { Model as
|
|
4
|
-
import { default as
|
|
5
|
-
import { default as
|
|
6
|
-
import { Polyline as
|
|
2
|
+
import { default as To } from "./Modules/Magnifier.js";
|
|
3
|
+
import { Model as Vo } from "./Model/index.js";
|
|
4
|
+
import { default as Xo } from "./Model/point.js";
|
|
5
|
+
import { default as Zo } from "./Model/line.js";
|
|
6
|
+
import { Polyline as $o } from "./Model/polyline.js";
|
|
7
7
|
import "./Modules/FiveHelper.js";
|
|
8
8
|
import "three";
|
|
9
9
|
import "./Controller/EditController.js";
|
|
@@ -16,11 +16,50 @@ import "./utils/line.js";
|
|
|
16
16
|
import "@realsee/five/line";
|
|
17
17
|
import "./utils/constants.js";
|
|
18
18
|
import "@realsee/five";
|
|
19
|
-
import "./utils/
|
|
19
|
+
import "./utils/dom/distanceItem.js";
|
|
20
|
+
import "./utils/dom/base.js";
|
|
20
21
|
import "./utils/isNDCPointInScreen.js";
|
|
21
22
|
import "../shared-utils/removeArrayItem.js";
|
|
22
23
|
import "./utils/getIntersectionFromEvent.js";
|
|
23
24
|
import "./utils/getPointFromHammerEvent.js";
|
|
25
|
+
import "./Model/area.js";
|
|
26
|
+
import "./Model/polygon.js";
|
|
27
|
+
import "../shared-utils/three/IObject3D.js";
|
|
28
|
+
import "./utils/generatePolygonGeometry.js";
|
|
29
|
+
import "earcut";
|
|
30
|
+
import "./utils/dom/areaDom.js";
|
|
31
|
+
import "./utils/geometryUtil.js";
|
|
32
|
+
import "../shared-utils/three/centerPoint.js";
|
|
33
|
+
import "./utils/isIntersecting.js";
|
|
34
|
+
import "../shared-utils/three/PointSelector.js";
|
|
35
|
+
import "../shared-utils/three/PointSelectorHelper.js";
|
|
36
|
+
import "../shared-utils/three/Magnifier.js";
|
|
37
|
+
import "../shared-utils/three/getIntersect.js";
|
|
38
|
+
import "../shared-utils/three/PointHelper.js";
|
|
39
|
+
import "../shared-utils/three/Assets/index.js";
|
|
40
|
+
import "../shared-utils/three/PointDomHelper.js";
|
|
41
|
+
import "../vendor/@tweenjs/tween/dist/tween.esm.js.js";
|
|
42
|
+
import "./Modules/rangePiece/html.js";
|
|
43
|
+
import "../CSS3DRenderPlugin/index.js";
|
|
44
|
+
import "../CSS3DRenderPlugin/Controller.js";
|
|
45
|
+
import "../CSS3DRenderPlugin/utils/three/CSS3DRender.js";
|
|
46
|
+
import "../CSS3DRenderPlugin/utils/three/CSS3DRenderer.js";
|
|
47
|
+
import "three/examples/jsm/renderers/CSS3DRenderer";
|
|
48
|
+
import "../CSS3DRenderPlugin/utils/getAllCSS3DObject.js";
|
|
49
|
+
import "../CSS3DRenderPlugin/utils/createResizeObserver.js";
|
|
50
|
+
import "../CSS3DRenderPlugin/utils/even.js";
|
|
51
|
+
import "../shared-utils/Subscribe.js";
|
|
52
|
+
import "../CSS3DRenderPlugin/utils/positionToVector3.js";
|
|
53
|
+
import "../CSS3DRenderPlugin/utils/three/CSS3DObject.js";
|
|
54
|
+
import "../CSS3DRenderPlugin/utils/three/OpacityMesh.js";
|
|
55
|
+
import "../CSS3DRenderPlugin/utils/three/CSS3DScene.js";
|
|
56
|
+
import "../CSS3DRenderPlugin/utils/three/CSS3DGroup.js";
|
|
57
|
+
import "../CSS3DRenderPlugin/utils/waitFiveModelLoaded.js";
|
|
58
|
+
import "../CSS3DRenderPlugin/utils/generateBehindFiveElement.js";
|
|
59
|
+
import "../shared-utils/isAbsoluteURL.js";
|
|
60
|
+
import "../shared-utils/animationFrame/BetterTween.js";
|
|
61
|
+
import "../shared-utils/animationFrame/index.js";
|
|
62
|
+
import "../shared-utils/isTouchDevice.js";
|
|
24
63
|
import "./Controller/ViewController.js";
|
|
25
64
|
import "./Controller/WatchController.js";
|
|
26
65
|
import "./Modules/DeleteDom/index.js";
|
|
@@ -33,9 +72,6 @@ import "./utils/ndc2Screen.js";
|
|
|
33
72
|
import "./utils/findAssociatedLines.js";
|
|
34
73
|
import "./Controller/MixedController.js";
|
|
35
74
|
import "./Modules/rangePiece/index.js";
|
|
36
|
-
import "../vendor/@tweenjs/tween/dist/tween.esm.js.js";
|
|
37
|
-
import "./Modules/rangePiece/html.js";
|
|
38
|
-
import "../shared-utils/animationFrame/index.js";
|
|
39
75
|
import "../shared-utils/noop.js";
|
|
40
76
|
import "./utils/calculateThreeMouse.js";
|
|
41
77
|
import "./utils/mouseGroup.js";
|
|
@@ -48,17 +84,25 @@ import "./Modules/UIController/style.js";
|
|
|
48
84
|
import "./Modules/UIController/MainBtnController.js";
|
|
49
85
|
import "./Modules/UIController/mobileMainBtnController.js";
|
|
50
86
|
import "./Modules/UIController/Revoke/index.js";
|
|
87
|
+
import "./Components/Controller0.js";
|
|
88
|
+
import "../vendor/svelte/internal/index.js";
|
|
89
|
+
import "./Components/Common/Switcher0.js";
|
|
90
|
+
import "./Components/Common/Exit.js";
|
|
91
|
+
import "./Components/Controller1.js";
|
|
92
|
+
import "./Components/Common/Switcher1.js";
|
|
93
|
+
import "./Components/Common/CircleButton.js";
|
|
51
94
|
import "./Modules/GuideController.js";
|
|
52
95
|
import "./Controller/ShortcutKeyController.js";
|
|
53
|
-
|
|
96
|
+
import "../shared-utils/safeObj.js";
|
|
97
|
+
const Qo = function(o, r) {
|
|
54
98
|
return new t(o, r);
|
|
55
99
|
};
|
|
56
100
|
export {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
101
|
+
To as Magnifier,
|
|
102
|
+
Qo as PanoMeasurePlugin,
|
|
103
|
+
Zo as PanoMeasurePluginLine,
|
|
104
|
+
Vo as PanoMeasurePluginModel,
|
|
105
|
+
Xo as PanoMeasurePluginPoint,
|
|
106
|
+
$o as PanoMeasurePluginPolyline,
|
|
107
|
+
Qo as default
|
|
64
108
|
};
|
|
@@ -21,6 +21,29 @@ export interface OpenParameter {
|
|
|
21
21
|
isMobile?: boolean;
|
|
22
22
|
crossHairParameter?: CrossHairParameter;
|
|
23
23
|
}
|
|
24
|
+
/** 长度达到一定值时,自动结束线段,null 的话不自动结束 */
|
|
25
|
+
export interface autoEndConfig {
|
|
26
|
+
line?: number | null;
|
|
27
|
+
area?: number | null;
|
|
28
|
+
}
|
|
29
|
+
export type MeasureType = 'line' | 'area';
|
|
30
|
+
export interface EditParameter {
|
|
31
|
+
/**
|
|
32
|
+
* @description 选择测量插件的模式
|
|
33
|
+
* @default ['line']
|
|
34
|
+
* @example
|
|
35
|
+
* ['line']: 传统的测距
|
|
36
|
+
* ['area']: 新增的测面积功能
|
|
37
|
+
* ['line', 'area']: 同时开启测距和测面积功能
|
|
38
|
+
*/
|
|
39
|
+
allowMeasureType?: Array<MeasureType>;
|
|
40
|
+
/**
|
|
41
|
+
* @description: 选点的两种模式, 'fixed' 为固定选点为屏幕中心点,拖动five画布来选点,'mouse' 为跟随鼠标移动
|
|
42
|
+
* @default: 'fixed'
|
|
43
|
+
*/
|
|
44
|
+
pointSelectorMode?: 'fixed' | 'cursor';
|
|
45
|
+
autoEndConfig?: autoEndConfig;
|
|
46
|
+
}
|
|
24
47
|
export interface CrossHairParameter {
|
|
25
48
|
useNormalVector?: boolean;
|
|
26
49
|
ballColor?: number;
|
|
@@ -4,6 +4,7 @@ import type { State } from '../Controller/MixedController';
|
|
|
4
4
|
import type Line from '../Model/line';
|
|
5
5
|
import type Point from '../Model/point';
|
|
6
6
|
import type { Polyline } from '../Model/polyline';
|
|
7
|
+
import type { MeasureType } from './data';
|
|
7
8
|
type ControllerEvent = {
|
|
8
9
|
enable: (userAction: boolean) => void;
|
|
9
10
|
disable: (userAction: boolean) => void;
|
|
@@ -16,13 +17,19 @@ type WatchEvent = {
|
|
|
16
17
|
selectedChange: (lines: Line[]) => void;
|
|
17
18
|
};
|
|
18
19
|
type EditEvent = {
|
|
19
|
-
/**
|
|
20
|
-
* 编辑线条变更
|
|
21
|
-
*/
|
|
20
|
+
/** 编辑线条变更 */
|
|
22
21
|
editedPolylineChange: (polyline: Polyline) => void;
|
|
23
22
|
/** 编辑中的虚线变更 */
|
|
24
23
|
editedDashedLineChange: (line: Line | null) => void;
|
|
25
24
|
anchorChange: (anchor: Vector3 | null) => void;
|
|
25
|
+
/** 测量类型变更 */
|
|
26
|
+
measureTypeChange: (measureTpe: MeasureType) => void;
|
|
27
|
+
/** 差最后一次打点就可以完成完成 */
|
|
28
|
+
readyComplete: () => void;
|
|
29
|
+
/** 一条线段或者一个面积编辑完成 */
|
|
30
|
+
complete: () => void;
|
|
31
|
+
/** 测量面积时,是否可以打点的状态是会一直变的 */
|
|
32
|
+
allowAddPointStateChange: (state: 'allow' | 'forbid') => void;
|
|
26
33
|
};
|
|
27
34
|
type DragEvent = {
|
|
28
35
|
wantsDragLine: (event: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Config as BaseConfig } from '../../base/BasePlugin';
|
|
2
|
-
import type { UserDistanceItem } from '../utils/
|
|
2
|
+
import type { UserDistanceItem } from '../utils/dom/distanceItem';
|
|
3
3
|
export interface Config extends BaseConfig {
|
|
4
4
|
userDistanceItemCreator?: undefined | (() => UserDistanceItem);
|
|
5
5
|
/** 展示 distance DOM 时,使用的转换函数
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { ItemDomParams } from './base';
|
|
2
|
+
import { ItemDom } from './base';
|
|
3
|
+
import type { Five } from '@realsee/five';
|
|
4
|
+
import type { BufferGeometry } from 'three';
|
|
5
|
+
import type Area from '../../Model/area';
|
|
6
|
+
interface AreaItemParams extends ItemDomParams {
|
|
7
|
+
area: Area;
|
|
8
|
+
}
|
|
9
|
+
export declare class AreaItem extends ItemDom {
|
|
10
|
+
protected params: AreaItemParams;
|
|
11
|
+
private area;
|
|
12
|
+
constructor(params: AreaItemParams);
|
|
13
|
+
/**
|
|
14
|
+
* @description: dom 依赖的多边形的顶点的位置更新时,更新 dom 的位置和面积
|
|
15
|
+
*/
|
|
16
|
+
updateArea(five: Five, _geometry?: BufferGeometry): void;
|
|
17
|
+
updateAreaText(area: number, config?: {
|
|
18
|
+
unit?: string;
|
|
19
|
+
fix?: number;
|
|
20
|
+
}): void;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var m = Object.defineProperty;
|
|
2
|
+
var p = (r, e, t) => e in r ? m(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
|
3
|
+
var s = (r, e, t) => (p(r, typeof e != "symbol" ? e + "" : e, t), t);
|
|
4
|
+
import { ItemDom as h } from "./base.js";
|
|
5
|
+
import { getGeometryInfo as d } from "../geometryUtil.js";
|
|
6
|
+
import "../isNDCPointInScreen.js";
|
|
7
|
+
import "three";
|
|
8
|
+
import "../../../shared-utils/three/centerPoint.js";
|
|
9
|
+
class I extends h {
|
|
10
|
+
constructor(t) {
|
|
11
|
+
super(t);
|
|
12
|
+
s(this, "area");
|
|
13
|
+
this.params = t, this.area = t.area, this.containerDom.appendChild(this.contentDom);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @description: dom 依赖的多边形的顶点的位置更新时,更新 dom 的位置和面积
|
|
17
|
+
*/
|
|
18
|
+
updateArea(t, o) {
|
|
19
|
+
const i = o != null ? o : this.area.polygon.geometry, { area: a, center: n } = d(i);
|
|
20
|
+
this.ndcPosition = n, this.updateDomPosition(t), this.updateAreaText(a);
|
|
21
|
+
}
|
|
22
|
+
updateAreaText(t, o) {
|
|
23
|
+
const { unit: i = "m²", fix: a = 2 } = o != null ? o : {};
|
|
24
|
+
this.contentDom.innerText = `${t.toFixed(a)}${i}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
I as AreaItem
|
|
29
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Vector3 } from 'three';
|
|
2
|
+
import type { Five } from '@realsee/five';
|
|
3
|
+
export interface ItemDomParams {
|
|
4
|
+
clickCallback?: (event: MouseEvent, item: ItemDom) => unknown;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class ItemDom {
|
|
7
|
+
ndcPosition: Vector3 | null;
|
|
8
|
+
protected contentDom: HTMLElement;
|
|
9
|
+
protected containerDom: HTMLElement;
|
|
10
|
+
protected params: ItemDomParams;
|
|
11
|
+
protected canSelected: boolean;
|
|
12
|
+
constructor(params: ItemDomParams);
|
|
13
|
+
handleClick: (e: MouseEvent) => void;
|
|
14
|
+
setCanSelect(canSelect: boolean): void;
|
|
15
|
+
highlight(): void;
|
|
16
|
+
unHighlight(): void;
|
|
17
|
+
appendTo(container: Element): void;
|
|
18
|
+
remove(): void;
|
|
19
|
+
show(): void;
|
|
20
|
+
hide(): void;
|
|
21
|
+
/**
|
|
22
|
+
* @description: camera update 的时候,更新dom的位置
|
|
23
|
+
*/
|
|
24
|
+
updateDomPosition(five: Five): void;
|
|
25
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
var a = Object.defineProperty;
|
|
2
|
+
var h = (e, t, n) => t in e ? a(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
3
|
+
var i = (e, t, n) => (h(e, typeof t != "symbol" ? t + "" : t, n), n);
|
|
4
|
+
import { isNDCPointInFront as d } from "../isNDCPointInScreen.js";
|
|
5
|
+
function m() {
|
|
6
|
+
const e = document.createElement("div");
|
|
7
|
+
return e.setAttribute(
|
|
8
|
+
"style",
|
|
9
|
+
"backdrop-filter: blur(4px);-webkit-backdrop-filter: blur(4px);-webkit-tap-highlight-color: rgba(0,0,0,0);"
|
|
10
|
+
), e.style.width = "max-content", e.style.padding = "3px 6px", e.style.lineHeight = "1", e.style.textAlign = "center", e.style.transform = "translate(-50%, -50%)", e.style.borderRadius = "100px", e.style.fontSize = "14px", e.style.color = "#fff", e.style.background = "rgba(195,195,195,0.70)", e.style.border = "0.5px solid rgba(255,255,255,0.6)", e.style.cursor = "pointer", e;
|
|
11
|
+
}
|
|
12
|
+
function y(e) {
|
|
13
|
+
const t = document.createElement("div");
|
|
14
|
+
return e != null && e.id && (t.id = e == null ? void 0 : e.id), t.classList.add("five-plugin-measure__distance"), t.style.opacity = "0", t.style.position = "absolute", t.style.left = "0", t.style.top = "0", t.style.width = "0", t.style.height = "0", t.style.transform = "translate3d(0, 0, 0)", t.style.transformOrigin = "left top", t;
|
|
15
|
+
}
|
|
16
|
+
class g {
|
|
17
|
+
constructor(t) {
|
|
18
|
+
i(this, "ndcPosition");
|
|
19
|
+
i(this, "contentDom");
|
|
20
|
+
i(this, "containerDom");
|
|
21
|
+
i(this, "params");
|
|
22
|
+
i(this, "canSelected");
|
|
23
|
+
i(this, "handleClick", (t) => {
|
|
24
|
+
var n, o;
|
|
25
|
+
(o = (n = this.params).clickCallback) == null || o.call(n, t, this);
|
|
26
|
+
});
|
|
27
|
+
this.params = t, this.contentDom = m(), this.containerDom = y(), this.setCanSelect(!0);
|
|
28
|
+
}
|
|
29
|
+
setCanSelect(t) {
|
|
30
|
+
this.canSelected = t, this.containerDom.style.pointerEvents = t ? "all" : "none";
|
|
31
|
+
}
|
|
32
|
+
highlight() {
|
|
33
|
+
this.contentDom.style.border = "0.5px solid #95AEFF", this.contentDom.style.background = "linear-gradient(90deg, #95AEFF 0%, #6386FF 100%)";
|
|
34
|
+
}
|
|
35
|
+
unHighlight() {
|
|
36
|
+
this.contentDom.style.border = "0.5px solid rgba(255,255,255,0.6)", this.contentDom.style.background = "rgba(195,195,195,0.70)";
|
|
37
|
+
}
|
|
38
|
+
appendTo(t) {
|
|
39
|
+
t.appendChild(this.containerDom), this.containerDom.addEventListener("click", this.handleClick);
|
|
40
|
+
}
|
|
41
|
+
remove() {
|
|
42
|
+
this.contentDom.removeEventListener("click", this.handleClick), this.containerDom.remove();
|
|
43
|
+
}
|
|
44
|
+
show() {
|
|
45
|
+
this.containerDom.style.opacity = "1", this.containerDom.style.pointerEvents = this.canSelected ? "auto" : "none";
|
|
46
|
+
}
|
|
47
|
+
hide() {
|
|
48
|
+
this.containerDom.style.opacity = "0", this.containerDom.style.pointerEvents = "none";
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @description: camera update 的时候,更新dom的位置
|
|
52
|
+
*/
|
|
53
|
+
updateDomPosition(t) {
|
|
54
|
+
if (!this.ndcPosition) {
|
|
55
|
+
this.hide();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const n = t.getElement();
|
|
59
|
+
if (!n)
|
|
60
|
+
return;
|
|
61
|
+
const o = n.clientWidth, r = n.clientHeight, s = this.ndcPosition.project(t.camera);
|
|
62
|
+
if (!d(s)) {
|
|
63
|
+
this.hide();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const c = (s.x + 1) / 2 * o, l = -(s.y - 1) / 2 * r;
|
|
67
|
+
this.containerDom.style.transform = `translate(${c}px, ${l}px)`, this.show();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export {
|
|
71
|
+
g as ItemDom
|
|
72
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ItemDomParams } from './base';
|
|
2
|
+
import { ItemDom } from './base';
|
|
3
|
+
import type Line from '../../Model/line';
|
|
4
|
+
import type { Five } from '@realsee/five';
|
|
5
|
+
import type { Polyline } from '../../Model/polyline';
|
|
6
|
+
export interface UserDistanceItem {
|
|
7
|
+
element: Element;
|
|
8
|
+
highlight: () => void;
|
|
9
|
+
unHighlight: () => void;
|
|
10
|
+
update: (params: {
|
|
11
|
+
line: Line;
|
|
12
|
+
polyline: Polyline;
|
|
13
|
+
}) => void;
|
|
14
|
+
}
|
|
15
|
+
interface DistanceItemParams extends ItemDomParams {
|
|
16
|
+
line: Line;
|
|
17
|
+
userDistanceItem?: UserDistanceItem;
|
|
18
|
+
}
|
|
19
|
+
export declare class DistanceItem extends ItemDom {
|
|
20
|
+
protected params: DistanceItemParams;
|
|
21
|
+
private line;
|
|
22
|
+
constructor(params: DistanceItemParams);
|
|
23
|
+
update(five: Five): void;
|
|
24
|
+
/** 获取内容文本 */
|
|
25
|
+
getCurrentContent(): string;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
var S = Object.defineProperty;
|
|
2
|
+
var M = (o, n, t) => n in o ? S(o, n, { enumerable: !0, configurable: !0, writable: !0, value: t }) : o[n] = t;
|
|
3
|
+
var x = (o, n, t) => (M(o, typeof n != "symbol" ? n + "" : n, t), t);
|
|
4
|
+
import { ItemDom as T } from "./base.js";
|
|
5
|
+
import { Vector2 as P } from "three";
|
|
6
|
+
import { isNDCPointInFront as u } from "../isNDCPointInScreen.js";
|
|
7
|
+
class z extends T {
|
|
8
|
+
constructor(t) {
|
|
9
|
+
var i;
|
|
10
|
+
super(t);
|
|
11
|
+
x(this, "line");
|
|
12
|
+
this.params = t, this.line = t.line, (i = this.params.userDistanceItem) != null && i.element ? this.containerDom.appendChild(this.params.userDistanceItem.element) : this.containerDom.appendChild(this.contentDom);
|
|
13
|
+
}
|
|
14
|
+
update(t) {
|
|
15
|
+
var D;
|
|
16
|
+
if (this.line.mesh.visible === !1) {
|
|
17
|
+
this.hide();
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const i = t.getElement();
|
|
21
|
+
if (!i)
|
|
22
|
+
return;
|
|
23
|
+
const a = i.clientWidth, r = i.clientHeight, l = a / 2, c = r / 2;
|
|
24
|
+
if (this.line.points.length < 2)
|
|
25
|
+
return;
|
|
26
|
+
const [h, m] = this.line.points, e = h.position.clone().project(t.camera), s = m.position.clone().project(t.camera), d = e.clone().lerp(s, 0.5), p = new P(e.x * l, e.y * c), f = new P(s.x * l, s.y * c), g = p.distanceTo(f);
|
|
27
|
+
if ((() => !(Math.abs(e.z) > 1 || Math.abs(s.z) > 1 || !u(e) && !u(s) || !u(d) || g === 0))() === !1) {
|
|
28
|
+
this.hide();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const y = (d.x + 1) / 2 * a, C = -(d.y - 1) / 2 * r, I = -(Math.atan((p.y - f.y) / (p.x - f.x)) * 180) / Math.PI, b = this.containerDom.parentElement && this.contentDom.clientWidth > g ? -20 : 0;
|
|
32
|
+
this.containerDom.style.transform = `translate(${y}px, ${C}px) rotate(${I}deg) translateY(${b}px)`, this.show(), (D = this.params.userDistanceItem) == null || D.update({ line: this.line, polyline: this.line.getPolyline() });
|
|
33
|
+
const E = this.getCurrentContent();
|
|
34
|
+
this.contentDom.innerText = E;
|
|
35
|
+
}
|
|
36
|
+
/** 获取内容文本 */
|
|
37
|
+
getCurrentContent() {
|
|
38
|
+
var h, m, e, s;
|
|
39
|
+
if (this.line.points.length < 2)
|
|
40
|
+
return "";
|
|
41
|
+
const [t, i] = this.line.points, a = t.position.clone().distanceTo(i.position), r = (m = this.line.text) != null ? m : (h = this.line.model.config) == null ? void 0 : h.defaultText, l = (s = (e = this.line.model.config) == null ? void 0 : e.getDistanceText) == null ? void 0 : s.call(e, a), c = r != null ? r : l;
|
|
42
|
+
return c != null ? c : a.toFixed(2) + "m";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export {
|
|
46
|
+
z as DistanceItem
|
|
47
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as n from "three";
|
|
2
|
+
import u from "earcut";
|
|
3
|
+
function m(i) {
|
|
4
|
+
const t = i.slice();
|
|
5
|
+
if (t.length < 3)
|
|
6
|
+
return;
|
|
7
|
+
t.at(-1).equals(t[0]) || t.push(t[0]);
|
|
8
|
+
const r = t.flatMap((o) => [o.x, o.y, o.z]), s = new n.Float32BufferAttribute(r, 3), a = u(r, void 0, 3), e = new n.BufferGeometry();
|
|
9
|
+
return e.setAttribute("position", s), e.setIndex(a), e.name = "PolygonGeometry", e;
|
|
10
|
+
}
|
|
11
|
+
export {
|
|
12
|
+
m as default
|
|
13
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as THREE from 'three';
|
|
2
|
+
import { Vector3 } from 'three';
|
|
3
|
+
export declare function getGeometryArea(geometry: THREE.BufferGeometry): number;
|
|
4
|
+
export declare function getGeometryInfo(geometry: THREE.BufferGeometry): {
|
|
5
|
+
center: Vector3;
|
|
6
|
+
area: number;
|
|
7
|
+
};
|