@anov/3d-ability 0.0.142 → 0.0.143
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/business/Animation/motion/index.js +56 -35
- package/dist/business/Animation/motion/index.js.map +1 -1
- package/dist/business/Animation/type.js +2 -2
- package/dist/business/Area/Fence/FenceBase.js +187 -146
- package/dist/business/Area/Fence/FenceBase.js.map +1 -1
- package/dist/business/Area/Fence/fence_base_01.js +112 -120
- package/dist/business/Area/Fence/fence_base_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_feeting_01.js +130 -218
- package/dist/business/Area/Fence/fence_feeting_01.js.map +1 -1
- package/dist/business/Area/Fence/fence_roll_01.js +130 -140
- package/dist/business/Area/Fence/fence_roll_01.js.map +1 -1
- package/dist/business/Area/FillArea/FillAreaBase.js +126 -87
- package/dist/business/Area/FillArea/FillAreaBase.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_face_01.js +98 -72
- package/dist/business/Area/FillArea/fillArea_face_01.js.map +1 -1
- package/dist/business/Area/FillArea/fillArea_line_01.js +94 -66
- package/dist/business/Area/FillArea/fillArea_line_01.js.map +1 -1
- package/dist/business/Area/index.js +483 -267
- package/dist/business/Area/index.js.map +1 -1
- package/dist/business/Area/tool.js +26 -14
- package/dist/business/Area/tool.js.map +1 -1
- package/dist/business/Base/ObjectLayer.js +46 -21
- package/dist/business/Base/ObjectLayer.js.map +1 -1
- package/dist/business/Batch/index.js +234 -189
- package/dist/business/Batch/index.js.map +1 -1
- package/dist/business/Box/index.js +81 -52
- package/dist/business/Box/index.js.map +1 -1
- package/dist/business/Cylinder/index.js +79 -51
- package/dist/business/Cylinder/index.js.map +1 -1
- package/dist/business/Flyline/bubble/CircleBubble.js +9 -1
- package/dist/business/Flyline/bubble/CircleBubble.js.map +1 -1
- package/dist/business/Flyline/bubble/index.js +21 -7
- package/dist/business/Flyline/bubble/index.js.map +1 -1
- package/dist/business/Flyline/index.js +162 -96
- package/dist/business/Flyline/index.js.map +1 -1
- package/dist/business/Flyline/line/ArcLine.js +291 -208
- package/dist/business/Flyline/line/ArcLine.js.map +1 -1
- package/dist/business/Flyline/line/index.js +22 -8
- package/dist/business/Flyline/line/index.js.map +1 -1
- package/dist/business/HeatMap/HeatMap.js +467 -380
- package/dist/business/HeatMap/HeatMap.js.map +1 -1
- package/dist/business/HeatMap/core.js +525 -405
- package/dist/business/HeatMap/core.js.map +1 -1
- package/dist/business/HeatMap/shader.js +3 -69
- package/dist/business/HeatMap/shader.js.map +1 -1
- package/dist/business/InfoPanel/index.js +242 -201
- package/dist/business/InfoPanel/index.js.map +1 -1
- package/dist/business/Line/index.js +88 -55
- package/dist/business/Line/index.js.map +1 -1
- package/dist/business/Mark/KeyframeAnimation.js +176 -145
- package/dist/business/Mark/KeyframeAnimation.js.map +1 -1
- package/dist/business/Mark/index.js +294 -196
- package/dist/business/Mark/index.js.map +1 -1
- package/dist/business/Mark/shader/tanhao.js +3 -36
- package/dist/business/Mark/shader/tanhao.js.map +1 -1
- package/dist/business/Mark/type.js +1 -1
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js +551 -377
- package/dist/business/MaterialSwitch/MaterialSwitchSystem.js.map +1 -1
- package/dist/business/MaterialSwitch/inject.js +58 -92
- package/dist/business/MaterialSwitch/inject.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/finalFade.js +2 -74
- package/dist/business/MaterialSwitch/shader/finalFade.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/ground.js +16 -95
- package/dist/business/MaterialSwitch/shader/ground.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/groundBase64.js +3 -9
- package/dist/business/MaterialSwitch/shader/groundBase64.js.map +1 -1
- package/dist/business/MaterialSwitch/shader/realFade.js +9 -48
- package/dist/business/MaterialSwitch/shader/realFade.js.map +1 -1
- package/dist/business/Plane/index.js +78 -51
- package/dist/business/Plane/index.js.map +1 -1
- package/dist/business/Poi/index.js +336 -248
- package/dist/business/Poi/index.js.map +1 -1
- package/dist/business/Poi/link/Cylinder.js +89 -56
- package/dist/business/Poi/link/Cylinder.js.map +1 -1
- package/dist/business/Poi/link/Pyramid.js +165 -104
- package/dist/business/Poi/link/Pyramid.js.map +1 -1
- package/dist/business/Poi/link/index.js +114 -54
- package/dist/business/Poi/link/index.js.map +1 -1
- package/dist/business/Poi/panel/index.js +373 -315
- package/dist/business/Poi/panel/index.js.map +1 -1
- package/dist/business/Poi/panel/utils.js +10 -5
- package/dist/business/Poi/panel/utils.js.map +1 -1
- package/dist/business/Poi/particle/DoubleCircle.js +107 -71
- package/dist/business/Poi/particle/DoubleCircle.js.map +1 -1
- package/dist/business/Poi/particle/DynamicCircle.js +111 -75
- package/dist/business/Poi/particle/DynamicCircle.js.map +1 -1
- package/dist/business/Poi/particle/SingleCircle.js +98 -62
- package/dist/business/Poi/particle/SingleCircle.js.map +1 -1
- package/dist/business/Poi/particle/index.js +117 -49
- package/dist/business/Poi/particle/index.js.map +1 -1
- package/dist/business/Poi/shader/circle.js +3 -31
- package/dist/business/Poi/shader/circle.js.map +1 -1
- package/dist/business/Poi/shader/cylinder.js +3 -37
- package/dist/business/Poi/shader/cylinder.js.map +1 -1
- package/dist/business/Poi/shader/doubleCircle.js +3 -55
- package/dist/business/Poi/shader/doubleCircle.js.map +1 -1
- package/dist/business/Poi/shader/dynamicCircle.js +3 -67
- package/dist/business/Poi/shader/dynamicCircle.js.map +1 -1
- package/dist/business/Poi/title/Border.js +27 -7
- package/dist/business/Poi/title/Border.js.map +1 -1
- package/dist/business/Poi/title/Ellipse.js +27 -7
- package/dist/business/Poi/title/Ellipse.js.map +1 -1
- package/dist/business/Poi/title/index.js +292 -208
- package/dist/business/Poi/title/index.js.map +1 -1
- package/dist/business/Poi/tools.js +17 -18
- package/dist/business/Poi/tools.js.map +1 -1
- package/dist/business/Sphere/index.js +72 -47
- package/dist/business/Sphere/index.js.map +1 -1
- package/dist/business/Spline/index.js +245 -190
- package/dist/business/Spline/index.js.map +1 -1
- package/dist/business/SplitBuilding/index.js +536 -327
- package/dist/business/SplitBuilding/index.js.map +1 -1
- package/dist/business/SplitBuilding/type.js +2 -2
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js +275 -218
- package/dist/business/TrafficComponents/RealismTraffic/RealismTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js +177 -132
- package/dist/business/TrafficComponents/StreamerTraffic/StreamerTraffic.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js +1 -51
- package/dist/business/TrafficComponents/StreamerTraffic/fragmentShader.js.map +1 -1
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js +1 -6
- package/dist/business/TrafficComponents/StreamerTraffic/vertexShader.js.map +1 -1
- package/dist/business/TrafficComponents/base.js +55 -32
- package/dist/business/TrafficComponents/base.js.map +1 -1
- package/dist/business/TrafficComponents/utils.js +24 -25
- package/dist/business/TrafficComponents/utils.js.map +1 -1
- package/dist/business/Utils/Curve.js +56 -40
- package/dist/business/Utils/Curve.js.map +1 -1
- package/dist/business/Utils/constant.js +1 -1
- package/dist/business/Utils/constant.js.map +1 -1
- package/dist/business/Utils/defineProps.js +14 -13
- package/dist/business/Utils/defineProps.js.map +1 -1
- package/dist/business/Utils/round-curve.js +153 -127
- package/dist/business/Utils/round-curve.js.map +1 -1
- package/dist/business/VideoPanel/index.js +319 -258
- package/dist/business/VideoPanel/index.js.map +1 -1
- package/dist/business/Water/index.js +108 -78
- package/dist/business/Water/index.js.map +1 -1
- package/dist/business/Water/types.js +1 -1
- package/dist/business/Water/types.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js +449 -383
- package/dist/core/Camera/PerspectiveCamera/CameraExpand.js.map +1 -1
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js +142 -107
- package/dist/core/Camera/PerspectiveCamera/FollowOrbitControls.js.map +1 -1
- package/dist/core/Controls/FirstViewControl/index.js +96 -84
- package/dist/core/Controls/FirstViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/action/input.js +98 -77
- package/dist/core/Controls/ThirdViewControl/action/input.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js +1 -1
- package/dist/core/Controls/ThirdViewControl/config/constants.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/index.js +28 -19
- package/dist/core/Controls/ThirdViewControl/index.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/animation.js +155 -126
- package/dist/core/Controls/ThirdViewControl/player/animation.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/camera.js +63 -47
- package/dist/core/Controls/ThirdViewControl/player/camera.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player/control.js +49 -39
- package/dist/core/Controls/ThirdViewControl/player/control.js.map +1 -1
- package/dist/core/Controls/ThirdViewControl/player.js +91 -66
- package/dist/core/Controls/ThirdViewControl/player.js.map +1 -1
- package/dist/core/Controls/base.js +30 -14
- package/dist/core/Controls/base.js.map +1 -1
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js +131 -92
- package/dist/core/Curve/RoundedCornersCurve/RoundedCornersCurve.js.map +1 -1
- package/dist/core/Debug/PerformanceInfo/Performance.js +47 -22
- package/dist/core/Debug/PerformanceInfo/Performance.js.map +1 -1
- package/dist/core/Light/PointLight/PointLightExt.js +21 -4
- package/dist/core/Light/PointLight/PointLightExt.js.map +1 -1
- package/dist/core/Material/FinirMaterial/FinirMaterial.js +57 -37
- package/dist/core/Material/FinirMaterial/FinirMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js +153 -116
- package/dist/core/Material/PristineGridMaterial/PristineGridMaterial.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js +1 -95
- package/dist/core/Material/PristineGridMaterial/shader/fragment.js.map +1 -1
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js +1 -26
- package/dist/core/Material/PristineGridMaterial/shader/vertex.js.map +1 -1
- package/dist/core/Material/SurfaceMaterial/index.js +172 -76
- package/dist/core/Material/SurfaceMaterial/index.js.map +1 -1
- package/dist/core/Material/decorators.js +11 -6
- package/dist/core/Material/decorators.js.map +1 -1
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js +12 -16
- package/dist/core/PostEffects/addACESFilmicToneMappingPass.js.map +1 -1
- package/dist/core/PostEffects/addBrightnessContrastPass.js +13 -17
- package/dist/core/PostEffects/addBrightnessContrastPass.js.map +1 -1
- package/dist/core/PostEffects/bloomPass.js +10 -17
- package/dist/core/PostEffects/bloomPass.js.map +1 -1
- package/dist/core/PostEffects/bloomSelect.js +43 -60
- package/dist/core/PostEffects/bloomSelect.js.map +1 -1
- package/dist/core/PostEffects/colorifyPass.js +13 -17
- package/dist/core/PostEffects/colorifyPass.js.map +1 -1
- package/dist/core/PostEffects/index.js +22 -28
- package/dist/core/PostEffects/index.js.map +1 -1
- package/dist/core/PostEffects/outlinePass.js +50 -37
- package/dist/core/PostEffects/outlinePass.js.map +1 -1
- package/dist/core/PostEffects/postprocessing.js +12 -14
- package/dist/core/PostEffects/postprocessing.js.map +1 -1
- package/dist/core/PostEffects/saoPass.js +10 -15
- package/dist/core/PostEffects/saoPass.js.map +1 -1
- package/dist/core/PostEffects/shader/colorify.js +3 -22
- package/dist/core/PostEffects/shader/colorify.js.map +1 -1
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js +3 -27
- package/dist/core/PostEffects/shader/gammaCorrectionShader.js.map +1 -1
- package/dist/core/PostEffects/shader/mapping.js +3 -66
- package/dist/core/PostEffects/shader/mapping.js.map +1 -1
- package/dist/core/PostEffects/shader/thermalMaging.js +3 -28
- package/dist/core/PostEffects/shader/thermalMaging.js.map +1 -1
- package/dist/core/SceneEffect/grow/grow.js +101 -85
- package/dist/core/SceneEffect/grow/grow.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_down.js +77 -60
- package/dist/core/SceneEffect/grow/style_down.js.map +1 -1
- package/dist/core/SceneEffect/grow/style_up.js +81 -64
- package/dist/core/SceneEffect/grow/style_up.js.map +1 -1
- package/dist/core/SceneEffect/grow/type.js +2 -2
- package/dist/core/SceneEffect/grow/type.js.map +1 -1
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js +76 -51
- package/dist/core/WeatherSystem/DynamicWeatherSystem.js.map +1 -1
- package/dist/core/WeatherSystem/hdr/index.js +105 -69
- package/dist/core/WeatherSystem/hdr/index.js.map +1 -1
- package/dist/core/WeatherSystem/index.js +124 -77
- package/dist/core/WeatherSystem/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/fog/index.js +80 -52
- package/dist/core/WeatherSystem/objects/fog/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/index.js +84 -72
- package/dist/core/WeatherSystem/objects/rain/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/lineRain.js +118 -88
- package/dist/core/WeatherSystem/objects/rain/lineRain.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/plane.js +146 -116
- package/dist/core/WeatherSystem/objects/rain/plane.js.map +1 -1
- package/dist/core/WeatherSystem/objects/rain/point.js +148 -100
- package/dist/core/WeatherSystem/objects/rain/point.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/cloud.js +104 -71
- package/dist/core/WeatherSystem/objects/sky/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/index.js +84 -66
- package/dist/core/WeatherSystem/objects/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/objects/sky/outline.js +45 -25
- package/dist/core/WeatherSystem/objects/sky/outline.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/cloud.js +3 -74
- package/dist/core/WeatherSystem/shaders/cloud.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/fog.js +3 -103
- package/dist/core/WeatherSystem/shaders/fog.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/rain.js +7 -206
- package/dist/core/WeatherSystem/shaders/rain.js.map +1 -1
- package/dist/core/WeatherSystem/shaders/sky.js +3 -87
- package/dist/core/WeatherSystem/shaders/sky.js.map +1 -1
- package/dist/core/WeatherSystem/sky/index.js +135 -104
- package/dist/core/WeatherSystem/sky/index.js.map +1 -1
- package/dist/core/WeatherSystem/utils/constant.js +38 -44
- package/dist/core/WeatherSystem/utils/constant.js.map +1 -1
- package/dist/core/WeatherSystem/utils/math.js +25 -18
- package/dist/core/WeatherSystem/utils/math.js.map +1 -1
- package/dist/core/WeatherSystem/utils/type.js +1 -1
- package/dist/core/WeatherSystem/utils/type.js.map +1 -1
- package/dist/core/WeatherSystem/weather/index.js +141 -96
- package/dist/core/WeatherSystem/weather/index.js.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
var _excluded = ["value"],
|
|
2
2
|
_excluded2 = ["value"];
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
5
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
6
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
7
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
9
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
3
10
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4
11
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
12
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
14
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
15
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
16
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
17
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
18
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
19
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
20
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
21
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
5
22
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" ==
|
|
7
|
-
function _toPrimitive(t, r) { if ("object" !=
|
|
23
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
24
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
25
|
/**
|
|
9
26
|
* @file index.ts
|
|
10
27
|
* @description 信息面板
|
|
@@ -16,7 +33,7 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
|
|
|
16
33
|
import ObjectLayer from "../Base/ObjectLayer";
|
|
17
34
|
import _ from 'lodash';
|
|
18
35
|
import { Group, Vector3, createLabel } from '@anov/3d-core';
|
|
19
|
-
|
|
36
|
+
var DEFAULT_OPTION = {
|
|
20
37
|
position: [0, 0, 0],
|
|
21
38
|
type: 'info',
|
|
22
39
|
title: {
|
|
@@ -34,214 +51,238 @@ const DEFAULT_OPTION = {
|
|
|
34
51
|
closable: true,
|
|
35
52
|
padding: '10px'
|
|
36
53
|
};
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
_defineProperty(
|
|
45
|
-
_defineProperty(
|
|
46
|
-
_defineProperty(
|
|
47
|
-
_defineProperty(
|
|
48
|
-
_defineProperty(
|
|
49
|
-
_defineProperty(
|
|
50
|
-
_defineProperty(
|
|
51
|
-
_defineProperty(
|
|
52
|
-
_defineProperty(
|
|
53
|
-
_defineProperty(
|
|
54
|
-
_defineProperty(
|
|
55
|
-
_defineProperty(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
54
|
+
var InfoPanel = /*#__PURE__*/function (_ObjectLayer) {
|
|
55
|
+
_inherits(InfoPanel, _ObjectLayer);
|
|
56
|
+
var _super = _createSuper(InfoPanel);
|
|
57
|
+
function InfoPanel(option) {
|
|
58
|
+
var _this;
|
|
59
|
+
_classCallCheck(this, InfoPanel);
|
|
60
|
+
_this = _super.call(this);
|
|
61
|
+
_defineProperty(_assertThisInitialized(_this), "_title", void 0);
|
|
62
|
+
_defineProperty(_assertThisInitialized(_this), "_content", void 0);
|
|
63
|
+
_defineProperty(_assertThisInitialized(_this), "_width", void 0);
|
|
64
|
+
_defineProperty(_assertThisInitialized(_this), "_height", void 0);
|
|
65
|
+
_defineProperty(_assertThisInitialized(_this), "_bgColor", void 0);
|
|
66
|
+
_defineProperty(_assertThisInitialized(_this), "_position", void 0);
|
|
67
|
+
_defineProperty(_assertThisInitialized(_this), "_type", void 0);
|
|
68
|
+
_defineProperty(_assertThisInitialized(_this), "_borderRadius", 10);
|
|
69
|
+
_defineProperty(_assertThisInitialized(_this), "_bgUrl", void 0);
|
|
70
|
+
_defineProperty(_assertThisInitialized(_this), "_className", void 0);
|
|
71
|
+
_defineProperty(_assertThisInitialized(_this), "_customStyle", void 0);
|
|
72
|
+
_defineProperty(_assertThisInitialized(_this), "_closeable", void 0);
|
|
73
|
+
_defineProperty(_assertThisInitialized(_this), "_padding", void 0);
|
|
74
|
+
_defineProperty(_assertThisInitialized(_this), "_group", void 0);
|
|
75
|
+
_defineProperty(_assertThisInitialized(_this), "_onClose", void 0);
|
|
76
|
+
_defineProperty(_assertThisInitialized(_this), "visible", false);
|
|
77
|
+
var params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option);
|
|
78
|
+
var _title = params.title,
|
|
79
|
+
_content = params.content,
|
|
80
|
+
_width = params.width,
|
|
81
|
+
_height = params.height,
|
|
82
|
+
_bgColor = params.bgColor,
|
|
83
|
+
_position = params.position,
|
|
84
|
+
_type = params.type,
|
|
85
|
+
_bgUrl = params.bgUrl,
|
|
86
|
+
_className = params.className,
|
|
87
|
+
_customStyle = params.customStyle,
|
|
88
|
+
_borderRadius = params.borderRadius,
|
|
89
|
+
_padding = params.padding,
|
|
90
|
+
_closeable = params.closable,
|
|
91
|
+
_onClose = params.onClose;
|
|
92
|
+
Object.assign(_assertThisInitialized(_this), {
|
|
93
|
+
_title: _title,
|
|
94
|
+
_content: _content,
|
|
95
|
+
_width: _width,
|
|
96
|
+
_height: _height,
|
|
97
|
+
_bgColor: _bgColor,
|
|
98
|
+
_position: _position,
|
|
99
|
+
_type: _type,
|
|
100
|
+
_bgUrl: _bgUrl,
|
|
101
|
+
_className: _className,
|
|
102
|
+
_customStyle: _customStyle,
|
|
103
|
+
_borderRadius: _borderRadius,
|
|
104
|
+
_padding: _padding,
|
|
105
|
+
_closeable: _closeable,
|
|
106
|
+
_onClose: _onClose
|
|
88
107
|
});
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
108
|
+
_this._group = new Group();
|
|
109
|
+
_this._group.visible = _this.visible;
|
|
110
|
+
_this.init();
|
|
111
|
+
return _this;
|
|
92
112
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// 使用 DocumentFragment 减少重排
|
|
98
|
-
// const fragment = document.createDocumentFragment();
|
|
99
|
-
const bgDom = this.createBgDom(); //创建容器盒子
|
|
100
|
-
const headerDom = this.createHeaderDom(); //创建头部盒子
|
|
101
|
-
|
|
102
|
-
// 创建内容
|
|
103
|
-
const contentDom = document.createElement('div');
|
|
104
|
-
contentDom.className = 'panel-content';
|
|
105
|
-
if (typeof this._content.value === 'string') {
|
|
106
|
-
contentDom.textContent = this._content.value;
|
|
107
|
-
} else if (this._content.value instanceof HTMLElement) {
|
|
108
|
-
contentDom.appendChild(this._content.value);
|
|
113
|
+
_createClass(InfoPanel, [{
|
|
114
|
+
key: "init",
|
|
115
|
+
value: function init() {
|
|
116
|
+
this.createBox();
|
|
109
117
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
bgDom.appendChild(headerDom);
|
|
119
|
-
bgDom.appendChild(contentDom);
|
|
120
|
-
const bgObject = createLabel(bgDom);
|
|
121
|
-
bgObject.position.set(0, 0, 0);
|
|
122
|
-
bgObject.center.set(0, 0);
|
|
123
|
-
this._group.add(bgObject);
|
|
124
|
-
this.add(this._group);
|
|
125
|
-
this.applyPosition(); // 初始化自动定位
|
|
126
|
-
}
|
|
127
|
-
/** 创建背景 */
|
|
128
|
-
createBgDom() {
|
|
129
|
-
//创建容器盒子
|
|
130
|
-
const bgDom = document.createElement('div');
|
|
131
|
-
Object.assign(bgDom.style, {
|
|
132
|
-
width: `${this._width}px`,
|
|
133
|
-
height: `${this._height}px`,
|
|
134
|
-
// left: `${this._position[0]}px`,
|
|
135
|
-
// top: `${this._position[1]}px`,
|
|
136
|
-
overflow: 'hidden',
|
|
137
|
-
padding: this._padding,
|
|
138
|
-
borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,
|
|
139
|
-
backgroundColor: this._bgUrl ? '' : this._bgColor,
|
|
140
|
-
backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',
|
|
141
|
-
backgroundSize: this._bgUrl ? 'contain' : '',
|
|
142
|
-
backgroundRepeat: this._bgUrl ? 'no-repeat' : '',
|
|
143
|
-
boxSizing: 'border-box'
|
|
144
|
-
});
|
|
145
|
-
if (this._className) bgDom.className = this._className;
|
|
146
|
-
if (this._customStyle) Object.assign(bgDom.style, this._customStyle);
|
|
147
|
-
return bgDom;
|
|
148
|
-
}
|
|
149
|
-
/** 创建头部 */
|
|
150
|
-
createHeaderDom() {
|
|
151
|
-
const headerDom = document.createElement('div');
|
|
152
|
-
headerDom.className = 'panel-header';
|
|
153
|
-
headerDom.style.display = 'flex';
|
|
154
|
-
headerDom.style.alignItems = 'center';
|
|
155
|
-
// 创建标题
|
|
156
|
-
const titleDom = document.createElement('p');
|
|
157
|
-
titleDom.className = 'panel-title';
|
|
158
|
-
titleDom.style.display = 'flex';
|
|
159
|
-
titleDom.style.flex = '1';
|
|
160
|
-
titleDom.textContent = this._title.value;
|
|
161
|
-
const _this$_title = this._title,
|
|
162
|
-
{
|
|
163
|
-
value: titleValue
|
|
164
|
-
} = _this$_title,
|
|
165
|
-
titleStyle = _objectWithoutProperties(_this$_title, _excluded2);
|
|
166
|
-
// 正确设置样式的方式
|
|
167
|
-
Object.assign(titleDom.style, titleStyle); //待测试
|
|
118
|
+
}, {
|
|
119
|
+
key: "createBox",
|
|
120
|
+
value: function createBox() {
|
|
121
|
+
// 使用 DocumentFragment 减少重排
|
|
122
|
+
// const fragment = document.createDocumentFragment();
|
|
123
|
+
var bgDom = this.createBgDom(); //创建容器盒子
|
|
124
|
+
var headerDom = this.createHeaderDom(); //创建头部盒子
|
|
168
125
|
|
|
169
|
-
|
|
126
|
+
// 创建内容
|
|
127
|
+
var contentDom = document.createElement('div');
|
|
128
|
+
contentDom.className = 'panel-content';
|
|
129
|
+
if (typeof this._content.value === 'string') {
|
|
130
|
+
contentDom.textContent = this._content.value;
|
|
131
|
+
} else if (this._content.value instanceof HTMLElement) {
|
|
132
|
+
contentDom.appendChild(this._content.value);
|
|
133
|
+
}
|
|
134
|
+
var _this$_content = this._content,
|
|
135
|
+
value = _this$_content.value,
|
|
136
|
+
contentStyle = _objectWithoutProperties(_this$_content, _excluded);
|
|
137
|
+
// 正确设置样式的方式
|
|
138
|
+
Object.assign(contentDom.style, contentStyle); //待测试
|
|
170
139
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
closeDom.style.pointerEvents = 'auto';
|
|
180
|
-
closeDom.onclick = () => {
|
|
181
|
-
this.close();
|
|
182
|
-
};
|
|
183
|
-
headerDom.appendChild(closeDom);
|
|
140
|
+
bgDom.appendChild(headerDom);
|
|
141
|
+
bgDom.appendChild(contentDom);
|
|
142
|
+
var bgObject = createLabel(bgDom);
|
|
143
|
+
bgObject.position.set(0, 0, 0);
|
|
144
|
+
bgObject.center.set(0, 0);
|
|
145
|
+
this._group.add(bgObject);
|
|
146
|
+
this.add(this._group);
|
|
147
|
+
this.applyPosition(); // 初始化自动定位
|
|
184
148
|
}
|
|
185
|
-
|
|
186
|
-
}
|
|
149
|
+
/** 创建背景 */
|
|
150
|
+
}, {
|
|
151
|
+
key: "createBgDom",
|
|
152
|
+
value: function createBgDom() {
|
|
153
|
+
//创建容器盒子
|
|
154
|
+
var bgDom = document.createElement('div');
|
|
155
|
+
Object.assign(bgDom.style, {
|
|
156
|
+
width: "".concat(this._width, "px"),
|
|
157
|
+
height: "".concat(this._height, "px"),
|
|
158
|
+
// left: `${this._position[0]}px`,
|
|
159
|
+
// top: `${this._position[1]}px`,
|
|
160
|
+
overflow: 'hidden',
|
|
161
|
+
padding: this._padding,
|
|
162
|
+
borderRadius: this._bgUrl ? '' : "".concat(this._borderRadius, "px"),
|
|
163
|
+
backgroundColor: this._bgUrl ? '' : this._bgColor,
|
|
164
|
+
backgroundImage: this._bgUrl ? "url(".concat(this._bgUrl, ")") : '',
|
|
165
|
+
backgroundSize: this._bgUrl ? 'contain' : '',
|
|
166
|
+
backgroundRepeat: this._bgUrl ? 'no-repeat' : '',
|
|
167
|
+
boxSizing: 'border-box'
|
|
168
|
+
});
|
|
169
|
+
if (this._className) bgDom.className = this._className;
|
|
170
|
+
if (this._customStyle) Object.assign(bgDom.style, this._customStyle);
|
|
171
|
+
return bgDom;
|
|
172
|
+
}
|
|
173
|
+
/** 创建头部 */
|
|
174
|
+
}, {
|
|
175
|
+
key: "createHeaderDom",
|
|
176
|
+
value: function createHeaderDom() {
|
|
177
|
+
var _this2 = this;
|
|
178
|
+
var headerDom = document.createElement('div');
|
|
179
|
+
headerDom.className = 'panel-header';
|
|
180
|
+
headerDom.style.display = 'flex';
|
|
181
|
+
headerDom.style.alignItems = 'center';
|
|
182
|
+
// 创建标题
|
|
183
|
+
var titleDom = document.createElement('p');
|
|
184
|
+
titleDom.className = 'panel-title';
|
|
185
|
+
titleDom.style.display = 'flex';
|
|
186
|
+
titleDom.style.flex = '1';
|
|
187
|
+
titleDom.textContent = this._title.value;
|
|
188
|
+
var _this$_title = this._title,
|
|
189
|
+
titleValue = _this$_title.value,
|
|
190
|
+
titleStyle = _objectWithoutProperties(_this$_title, _excluded2);
|
|
191
|
+
// 正确设置样式的方式
|
|
192
|
+
Object.assign(titleDom.style, titleStyle); //待测试
|
|
187
193
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
+
headerDom.appendChild(titleDom);
|
|
195
|
+
|
|
196
|
+
// 创建关闭按钮
|
|
197
|
+
if (this._closeable) {
|
|
198
|
+
var closeDom = document.createElement('div');
|
|
199
|
+
closeDom.className = 'panel-close';
|
|
200
|
+
closeDom.style.cursor = 'pointer';
|
|
201
|
+
closeDom.style.fontSize = this._title.fontSize;
|
|
202
|
+
closeDom.style.color = this._title.color;
|
|
203
|
+
closeDom.textContent = 'x';
|
|
204
|
+
closeDom.style.pointerEvents = 'auto';
|
|
205
|
+
closeDom.onclick = function () {
|
|
206
|
+
_this2.close();
|
|
207
|
+
};
|
|
208
|
+
headerDom.appendChild(closeDom);
|
|
209
|
+
}
|
|
210
|
+
return headerDom;
|
|
194
211
|
}
|
|
195
|
-
}
|
|
196
|
-
open() {
|
|
197
|
-
this.visible = true;
|
|
198
|
-
this._group.visible = true;
|
|
199
212
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
213
|
+
/** 自动定位面板 */
|
|
214
|
+
}, {
|
|
215
|
+
key: "applyPosition",
|
|
216
|
+
value: function applyPosition() {
|
|
217
|
+
var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Vector3(0, 0, 0);
|
|
218
|
+
if (Array.isArray(this._position)) {
|
|
219
|
+
// 如果是数组 [x, y]
|
|
220
|
+
var _this$_position = _slicedToArray(this._position, 3),
|
|
221
|
+
x = _this$_position[0],
|
|
222
|
+
y = _this$_position[1],
|
|
223
|
+
z = _this$_position[2];
|
|
224
|
+
this._group.position.set(x, y, z); // 注意y轴取反
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}, {
|
|
228
|
+
key: "open",
|
|
229
|
+
value: function open() {
|
|
230
|
+
this.visible = true;
|
|
231
|
+
this._group.visible = true;
|
|
210
232
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
if (this._onClose) {
|
|
218
|
-
this._onClose();
|
|
233
|
+
// 同步 DOM 节点显示
|
|
234
|
+
// this._group.children.forEach((child: any) => {
|
|
235
|
+
// if (child.element) {
|
|
236
|
+
// child.element.style.display = 'block';
|
|
237
|
+
// }
|
|
238
|
+
// });
|
|
219
239
|
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
}
|
|
235
|
-
destroy() {
|
|
236
|
-
this._group.clear();
|
|
237
|
-
this.remove(this._group);
|
|
238
|
-
// 清理DOM引用
|
|
239
|
-
this._group.children.forEach(child => {
|
|
240
|
-
if (child.element && child.element.parentNode) {
|
|
241
|
-
child.element.parentNode.removeChild(child.element);
|
|
240
|
+
}, {
|
|
241
|
+
key: "close",
|
|
242
|
+
value: function close() {
|
|
243
|
+
this.visible = false;
|
|
244
|
+
this._group.visible = false;
|
|
245
|
+
|
|
246
|
+
// 同步 DOM 节点隐藏
|
|
247
|
+
// this._group.children.forEach((child: any) => {
|
|
248
|
+
// if (child.element) {
|
|
249
|
+
// child.element.style.display = 'none';
|
|
250
|
+
// }
|
|
251
|
+
// });
|
|
252
|
+
if (this._onClose) {
|
|
253
|
+
this._onClose();
|
|
242
254
|
}
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
|
|
255
|
+
}
|
|
256
|
+
}, {
|
|
257
|
+
key: "update",
|
|
258
|
+
value: function update(option) {
|
|
259
|
+
var merged = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option);
|
|
260
|
+
this._title = merged.title;
|
|
261
|
+
this._content = merged.content;
|
|
262
|
+
this._width = merged.width;
|
|
263
|
+
this._height = merged.height;
|
|
264
|
+
this._bgColor = merged.bgColor;
|
|
265
|
+
this._borderRadius = merged.borderRadius || 0;
|
|
266
|
+
this._bgUrl = merged.bgUrl;
|
|
267
|
+
this._className = merged.className;
|
|
268
|
+
this._customStyle = merged.style;
|
|
269
|
+
this._group.clear();
|
|
270
|
+
this.init();
|
|
271
|
+
}
|
|
272
|
+
}, {
|
|
273
|
+
key: "destroy",
|
|
274
|
+
value: function destroy() {
|
|
275
|
+
this._group.clear();
|
|
276
|
+
this.remove(this._group);
|
|
277
|
+
// 清理DOM引用
|
|
278
|
+
this._group.children.forEach(function (child) {
|
|
279
|
+
if (child.element && child.element.parentNode) {
|
|
280
|
+
child.element.parentNode.removeChild(child.element);
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
}]);
|
|
285
|
+
return InfoPanel;
|
|
286
|
+
}(ObjectLayer);
|
|
246
287
|
export { InfoPanel };
|
|
247
288
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ObjectLayer","_","Group","Vector3","createLabel","DEFAULT_OPTION","position","type","title","value","fontSize","content","width","height","bgColor","borderRadius","closable","padding","InfoPanel","constructor","option","_defineProperty","params","mergeWith","cloneDeep","_title","_content","_width","_height","_bgColor","_position","_type","bgUrl","_bgUrl","className","_className","customStyle","_customStyle","_borderRadius","_padding","_closeable","onClose","_onClose","Object","assign","_group","visible","init","createBox","bgDom","createBgDom","headerDom","createHeaderDom","contentDom","document","createElement","textContent","HTMLElement","appendChild","_this$_content","contentStyle","_objectWithoutProperties","_excluded","style","bgObject","set","center","add","applyPosition","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","display","alignItems","titleDom","flex","_this$_title","titleValue","titleStyle","_excluded2","closeDom","cursor","color","pointerEvents","onclick","close","offset","Array","isArray","x","y","z","open","update","merged","clear","destroy","remove","children","forEach","child","element","parentNode","removeChild"],"sources":["../../../src/business/InfoPanel/index.ts"],"sourcesContent":["/**\n * @file index.ts\n * @description 信息面板\n * @author xingwei\n * @createTime 2025-08-22\n * @lastEditTime 2025-08-22\n */\n\n\nimport ObjectLayer from \"../Base/ObjectLayer\";\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel, CSS2DRenderer, Mesh, SphereGeometry, MeshBasicMaterial } from '@anov/3d-core'\nimport type {Option, TitleOption, ContentOption, PanelType, PanelPosition} from './type'\nimport { IPanel } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n type: 'info',\n title: {\n value: '面板标题',\n fontSize: '20px',\n },\n content: {\n value: '面板内容',\n fontSize: '16px',\n },\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closable: true,\n padding: '10px'\n}\n\nclass InfoPanel extends ObjectLayer implements IPanel{\n private _title: TitleOption\n private _content: ContentOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\n private _type: PanelType\n private _borderRadius: number = 10\n private _bgUrl: string\n private _className: string\n private _customStyle: any\n private _closeable: boolean\n private _padding: string \n private _group: Group\n private _onClose: Function\n visible: boolean = false;\n\n constructor(option: Option) {\n super();\n const params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n const {\n title: _title,\n content: _content,\n width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n type: _type,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closable: _closeable,\n onClose: _onClose\n } = params;\n\n Object.assign(this, {\n _title, _content, _width, _height, _bgColor, _position, _type,\n _bgUrl, _className, _customStyle, _borderRadius, _padding,_closeable, _onClose\n });\n \n this._group = new Group()\n this._group.visible = this.visible\n this.init()\n }\n private init(){\n this.createBox()\n \n }\n\n\n private createBox(){\n\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() //创建容器盒子\n const headerDom = this.createHeaderDom() //创建头部盒子\n\n\n // 创建内容\n const contentDom = document.createElement('div')\n contentDom.className = 'panel-content'\n if(typeof this._content.value === 'string'){\n contentDom.textContent = this._content.value\n }else if(this._content.value instanceof HTMLElement){\n contentDom.appendChild(this._content.value)\n }\n \n const {value, ...contentStyle} = this._content\n // 正确设置样式的方式\n Object.assign(contentDom.style, contentStyle) //待测试\n\n bgDom.appendChild(headerDom)\n bgDom.appendChild(contentDom)\n\n\n const bgObject = createLabel(bgDom);\n bgObject.position.set(0, 0, 0);\n bgObject.center.set(0, 0);\n\n this._group.add(bgObject);\n\n this.add(this._group)\n this.applyPosition(); // 初始化自动定位\n }\n /** 创建背景 */\n private createBgDom(){\n //创建容器盒子\n const bgDom = document.createElement('div');\n Object.assign(bgDom.style, {\n width: `${this._width}px`,\n height: `${this._height}px`,\n // left: `${this._position[0]}px`,\n // top: `${this._position[1]}px`,\n overflow: 'hidden',\n padding: this._padding,\n borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,\n backgroundColor: this._bgUrl ? '' : this._bgColor,\n backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',\n backgroundSize: this._bgUrl ? 'contain' : '',\n backgroundRepeat: this._bgUrl ? 'no-repeat' : '',\n boxSizing: 'border-box'\n \n });\n if (this._className) bgDom.className = this._className;\n if (this._customStyle) Object.assign(bgDom.style, this._customStyle);\n return bgDom;\n }\n /** 创建头部 */\n private createHeaderDom(){\n const headerDom = document.createElement('div')\n headerDom.className = 'panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n // 创建标题\n const titleDom = document.createElement('p')\n titleDom.className = 'panel-title'\n titleDom.style.display = 'flex'\n titleDom.style.flex = '1'\n titleDom.textContent = this._title.value\n const {value: titleValue, ...titleStyle} = this._title\n // 正确设置样式的方式\n Object.assign(titleDom.style, titleStyle) //待测试\n\n headerDom.appendChild(titleDom)\n\n // 创建关闭按钮\n if(this._closeable){\n const closeDom = document.createElement('div')\n closeDom.className = 'panel-close'\n closeDom.style.cursor = 'pointer'\n closeDom.style.fontSize = this._title.fontSize\n closeDom.style.color = this._title.color\n closeDom.textContent = 'x'\n closeDom.style.pointerEvents = 'auto'\n closeDom.onclick = () => {\n this.close()\n }\n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n\n /** 自动定位面板 */\n private applyPosition(offset: Vector3 = new Vector3(0, 0, 0)) {\n if (Array.isArray(this._position)) {\n // 如果是数组 [x, y]\n const [x, y, z] = this._position;\n this._group.position.set(x, y, z); // 注意y轴取反\n }\n }\n\n public open(){\n this.visible = true\n this._group.visible = true;\n\n // 同步 DOM 节点显示\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'block';\n // }\n // });\n }\n public close(){\n this.visible = false\n this._group.visible = false;\n\n // 同步 DOM 节点隐藏\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'none';\n // }\n // });\n if(this._onClose){\n this._onClose()\n }\n }\n public update(option: Option){\n const merged = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option);\n this._title = merged.title;\n this._content = merged.content;\n this._width = merged.width;\n this._height = merged.height;\n this._bgColor = merged.bgColor;\n this._borderRadius = merged.borderRadius || 0;\n this._bgUrl = merged.bgUrl;\n this._className = merged.className;\n this._customStyle = merged.style;\n\n this._group.clear();\n this.init();\n }\n destroy(): void {\n this._group.clear();\n this.remove(this._group)\n // 清理DOM引用\n this._group.children.forEach((child: any) => {\n if (child.element && child.element.parentNode) {\n child.element.parentNode.removeChild(child.element);\n }\n });\n }\n}\n\nexport {InfoPanel}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["ObjectLayer","_","Group","Vector3","createLabel","DEFAULT_OPTION","position","type","title","value","fontSize","content","width","height","bgColor","borderRadius","closable","padding","InfoPanel","_ObjectLayer","_inherits","_super","_createSuper","option","_this","_classCallCheck","call","_defineProperty","_assertThisInitialized","params","mergeWith","cloneDeep","_title","_content","_width","_height","_bgColor","_position","_type","_bgUrl","bgUrl","_className","className","_customStyle","customStyle","_borderRadius","_padding","_closeable","_onClose","onClose","Object","assign","_group","visible","init","_createClass","key","createBox","bgDom","createBgDom","headerDom","createHeaderDom","contentDom","document","createElement","textContent","HTMLElement","appendChild","_this$_content","contentStyle","_objectWithoutProperties","_excluded","style","bgObject","set","center","add","applyPosition","concat","overflow","backgroundColor","backgroundImage","backgroundSize","backgroundRepeat","boxSizing","_this2","display","alignItems","titleDom","flex","_this$_title","titleValue","titleStyle","_excluded2","closeDom","cursor","color","pointerEvents","onclick","close","offset","arguments","length","undefined","Array","isArray","_this$_position","_slicedToArray","x","y","z","open","update","merged","clear","destroy","remove","children","forEach","child","element","parentNode","removeChild"],"sources":["../../../src/business/InfoPanel/index.ts"],"sourcesContent":["/**\n * @file index.ts\n * @description 信息面板\n * @author xingwei\n * @createTime 2025-08-22\n * @lastEditTime 2025-08-22\n */\n\n\nimport ObjectLayer from \"../Base/ObjectLayer\";\nimport _ from 'lodash'\nimport { Group, Vector3, createLabel, CSS2DRenderer, Mesh, SphereGeometry, MeshBasicMaterial } from '@anov/3d-core'\nimport type {Option, TitleOption, ContentOption, PanelType, PanelPosition} from './type'\nimport { IPanel } from './type'\n\nconst DEFAULT_OPTION = {\n position: [0, 0, 0],\n type: 'info',\n title: {\n value: '面板标题',\n fontSize: '20px',\n },\n content: {\n value: '面板内容',\n fontSize: '16px',\n },\n width: 300,\n height: 200,\n bgColor: '#fff',\n borderRadius: 8,\n closable: true,\n padding: '10px'\n}\n\nclass InfoPanel extends ObjectLayer implements IPanel{\n private _title: TitleOption\n private _content: ContentOption\n private _width: number\n private _height: number\n private _bgColor: string\n private _position: Array<number>\n private _type: PanelType\n private _borderRadius: number = 10\n private _bgUrl: string\n private _className: string\n private _customStyle: any\n private _closeable: boolean\n private _padding: string \n private _group: Group\n private _onClose: Function\n visible: boolean = false;\n\n constructor(option: Option) {\n super();\n const params = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option)\n const {\n title: _title,\n content: _content,\n width: _width,\n height: _height,\n bgColor: _bgColor,\n position: _position,\n type: _type,\n bgUrl: _bgUrl,\n className: _className,\n customStyle: _customStyle,\n borderRadius: _borderRadius,\n padding: _padding,\n closable: _closeable,\n onClose: _onClose\n } = params;\n\n Object.assign(this, {\n _title, _content, _width, _height, _bgColor, _position, _type,\n _bgUrl, _className, _customStyle, _borderRadius, _padding,_closeable, _onClose\n });\n \n this._group = new Group()\n this._group.visible = this.visible\n this.init()\n }\n private init(){\n this.createBox()\n \n }\n\n\n private createBox(){\n\n // 使用 DocumentFragment 减少重排\n // const fragment = document.createDocumentFragment();\n const bgDom = this.createBgDom() //创建容器盒子\n const headerDom = this.createHeaderDom() //创建头部盒子\n\n\n // 创建内容\n const contentDom = document.createElement('div')\n contentDom.className = 'panel-content'\n if(typeof this._content.value === 'string'){\n contentDom.textContent = this._content.value\n }else if(this._content.value instanceof HTMLElement){\n contentDom.appendChild(this._content.value)\n }\n \n const {value, ...contentStyle} = this._content\n // 正确设置样式的方式\n Object.assign(contentDom.style, contentStyle) //待测试\n\n bgDom.appendChild(headerDom)\n bgDom.appendChild(contentDom)\n\n\n const bgObject = createLabel(bgDom);\n bgObject.position.set(0, 0, 0);\n bgObject.center.set(0, 0);\n\n this._group.add(bgObject);\n\n this.add(this._group)\n this.applyPosition(); // 初始化自动定位\n }\n /** 创建背景 */\n private createBgDom(){\n //创建容器盒子\n const bgDom = document.createElement('div');\n Object.assign(bgDom.style, {\n width: `${this._width}px`,\n height: `${this._height}px`,\n // left: `${this._position[0]}px`,\n // top: `${this._position[1]}px`,\n overflow: 'hidden',\n padding: this._padding,\n borderRadius: this._bgUrl ? '' : `${this._borderRadius}px`,\n backgroundColor: this._bgUrl ? '' : this._bgColor,\n backgroundImage: this._bgUrl ? `url(${this._bgUrl})` : '',\n backgroundSize: this._bgUrl ? 'contain' : '',\n backgroundRepeat: this._bgUrl ? 'no-repeat' : '',\n boxSizing: 'border-box'\n \n });\n if (this._className) bgDom.className = this._className;\n if (this._customStyle) Object.assign(bgDom.style, this._customStyle);\n return bgDom;\n }\n /** 创建头部 */\n private createHeaderDom(){\n const headerDom = document.createElement('div')\n headerDom.className = 'panel-header'\n headerDom.style.display = 'flex'\n headerDom.style.alignItems = 'center'\n // 创建标题\n const titleDom = document.createElement('p')\n titleDom.className = 'panel-title'\n titleDom.style.display = 'flex'\n titleDom.style.flex = '1'\n titleDom.textContent = this._title.value\n const {value: titleValue, ...titleStyle} = this._title\n // 正确设置样式的方式\n Object.assign(titleDom.style, titleStyle) //待测试\n\n headerDom.appendChild(titleDom)\n\n // 创建关闭按钮\n if(this._closeable){\n const closeDom = document.createElement('div')\n closeDom.className = 'panel-close'\n closeDom.style.cursor = 'pointer'\n closeDom.style.fontSize = this._title.fontSize\n closeDom.style.color = this._title.color\n closeDom.textContent = 'x'\n closeDom.style.pointerEvents = 'auto'\n closeDom.onclick = () => {\n this.close()\n }\n headerDom.appendChild(closeDom)\n }\n return headerDom\n }\n\n /** 自动定位面板 */\n private applyPosition(offset: Vector3 = new Vector3(0, 0, 0)) {\n if (Array.isArray(this._position)) {\n // 如果是数组 [x, y]\n const [x, y, z] = this._position;\n this._group.position.set(x, y, z); // 注意y轴取反\n }\n }\n\n public open(){\n this.visible = true\n this._group.visible = true;\n\n // 同步 DOM 节点显示\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'block';\n // }\n // });\n }\n public close(){\n this.visible = false\n this._group.visible = false;\n\n // 同步 DOM 节点隐藏\n // this._group.children.forEach((child: any) => {\n // if (child.element) {\n // child.element.style.display = 'none';\n // }\n // });\n if(this._onClose){\n this._onClose()\n }\n }\n public update(option: Option){\n const merged = _.mergeWith(_.cloneDeep(DEFAULT_OPTION), option);\n this._title = merged.title;\n this._content = merged.content;\n this._width = merged.width;\n this._height = merged.height;\n this._bgColor = merged.bgColor;\n this._borderRadius = merged.borderRadius || 0;\n this._bgUrl = merged.bgUrl;\n this._className = merged.className;\n this._customStyle = merged.style;\n\n this._group.clear();\n this.init();\n }\n destroy(): void {\n this._group.clear();\n this.remove(this._group)\n // 清理DOM引用\n this._group.children.forEach((child: any) => {\n if (child.element && child.element.parentNode) {\n child.element.parentNode.removeChild(child.element);\n }\n });\n }\n}\n\nexport {InfoPanel}"],"mappings":"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"}
|