1 |
- {"ast":null,"code":"import { __decorate } from \"../tslib.es6.js\";\nimport { serialize, serializeAsMeshReference } from \"../Misc/decorators.js\";\nimport { Tools } from \"../Misc/tools.js\";\nimport { TargetCamera } from \"./targetCamera.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { Node } from \"../node.js\";\nimport { FollowCameraInputsManager } from \"./followCameraInputsManager.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nNode.AddNodeConstructor(\"FollowCamera\", (name, scene) => {\n return () => new FollowCamera(name, Vector3.Zero(), scene);\n});\nNode.AddNodeConstructor(\"ArcFollowCamera\", (name, scene) => {\n return () => new ArcFollowCamera(name, 0, 0, 1.0, null, scene);\n});\n/**\n * A follow camera takes a mesh as a target and follows it as it moves. Both a free camera version followCamera and\n * an arc rotate version arcFollowCamera are available.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n */\nexport class FollowCamera extends TargetCamera {\n /**\n * Instantiates the follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera in the scene\n * @param position Define the position of the camera\n * @param scene Define the scene the camera belong to\n * @param lockedTarget Define the target of the camera\n */\n constructor(name, position, scene, lockedTarget = null) {\n super(name, position, scene);\n /**\n * Distance the follow camera should follow an object at\n */\n this.radius = 12;\n /**\n * Minimum allowed distance of the camera to the axis of rotation\n * (The camera can not get closer).\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerRadiusLimit = null;\n /**\n * Maximum allowed distance of the camera to the axis of rotation\n * (The camera can not get further).\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperRadiusLimit = null;\n /**\n * Define a rotation offset between the camera and the object it follows\n */\n this.rotationOffset = 0;\n /**\n * Minimum allowed angle to camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerRotationOffsetLimit = null;\n /**\n * Maximum allowed angle to camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperRotationOffsetLimit = null;\n /**\n * Define a height offset between the camera and the object it follows.\n * It can help following an object from the top (like a car chasing a plane)\n */\n this.heightOffset = 4;\n /**\n * Minimum allowed height of camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerHeightOffsetLimit = null;\n /**\n * Maximum allowed height of camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperHeightOffsetLimit = null;\n /**\n * Define how fast the camera can accelerate to follow it s target.\n */\n this.cameraAcceleration = 0.05;\n /**\n * Define the speed limit of the camera following an object.\n */\n this.maxCameraSpeed = 20;\n this.lockedTarget = lockedTarget;\n this.inputs = new FollowCameraInputsManager(this);\n this.inputs.addKeyboard().addMouseWheel().addPointers();\n // Uncomment the following line when the relevant handlers have been implemented.\n // this.inputs.addKeyboard().addMouseWheel().addPointers().addVRDeviceOrientation();\n }\n _follow(cameraTarget) {\n if (!cameraTarget) {\n return;\n }\n const rotMatrix = TmpVectors.Matrix[0];\n cameraTarget.absoluteRotationQuaternion.toRotationMatrix(rotMatrix);\n const yRotation = Math.atan2(rotMatrix.m[8], rotMatrix.m[10]);\n const radians = Tools.ToRadians(this.rotationOffset) + yRotation;\n const targetPosition = cameraTarget.getAbsolutePosition();\n const targetX = targetPosition.x + Math.sin(radians) * this.radius;\n const targetZ = targetPosition.z + Math.cos(radians) * this.radius;\n const dx = targetX - this.position.x;\n const dy = targetPosition.y + this.heightOffset - this.position.y;\n const dz = targetZ - this.position.z;\n let vx = dx * this.cameraAcceleration * 2; //this is set to .05\n let vy = dy * this.cameraAcceleration;\n let vz = dz * this.cameraAcceleration * 2;\n if (vx > this.maxCameraSpeed || vx < -this.maxCameraSpeed) {\n vx = vx < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n if (vy > this.maxCameraSpeed || vy < -this.maxCameraSpeed) {\n vy = vy < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n if (vz > this.maxCameraSpeed || vz < -this.maxCameraSpeed) {\n vz = vz < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n this.position = new Vector3(this.position.x + vx, this.position.y + vy, this.position.z + vz);\n this.setTarget(targetPosition);\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(ignored, noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this.inputs.attachElement(noPreventDefault);\n this._reset = () => {};\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.inputs.detachElement();\n if (this._reset) {\n this._reset();\n }\n }\n /** @internal */\n _checkInputs() {\n this.inputs.checkInputs();\n this._checkLimits();\n super._checkInputs();\n if (this.lockedTarget) {\n this._follow(this.lockedTarget);\n }\n }\n _checkLimits() {\n if (this.lowerRadiusLimit !== null && this.radius < this.lowerRadiusLimit) {\n this.radius = this.lowerRadiusLimit;\n }\n if (this.upperRadiusLimit !== null && this.radius > this.upperRadiusLimit) {\n this.radius = this.upperRadiusLimit;\n }\n if (this.lowerHeightOffsetLimit !== null && this.heightOffset < this.lowerHeightOffsetLimit) {\n this.heightOffset = this.lowerHeightOffsetLimit;\n }\n if (this.upperHeightOffsetLimit !== null && this.heightOffset > this.upperHeightOffsetLimit) {\n this.heightOffset = this.upperHeightOffsetLimit;\n }\n if (this.lowerRotationOffsetLimit !== null && this.rotationOffset < this.lowerRotationOffsetLimit) {\n this.rotationOffset = this.lowerRotationOffsetLimit;\n }\n if (this.upperRotationOffsetLimit !== null && this.rotationOffset > this.upperRotationOffsetLimit) {\n this.rotationOffset = this.upperRotationOffsetLimit;\n }\n }\n /**\n * Gets the camera class name.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCamera\";\n }\n}\n__decorate([serialize()], FollowCamera.prototype, \"radius\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"lowerRadiusLimit\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"upperRadiusLimit\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"rotationOffset\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"lowerRotationOffsetLimit\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"upperRotationOffsetLimit\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"heightOffset\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"lowerHeightOffsetLimit\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"upperHeightOffsetLimit\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"cameraAcceleration\", void 0);\n__decorate([serialize()], FollowCamera.prototype, \"maxCameraSpeed\", void 0);\n__decorate([serializeAsMeshReference(\"lockedTargetId\")], FollowCamera.prototype, \"lockedTarget\", void 0);\n/**\n * Arc Rotate version of the follow camera.\n * It still follows a Defined mesh but in an Arc Rotate Camera fashion.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n */\nexport class ArcFollowCamera extends TargetCamera {\n /**\n * Instantiates a new ArcFollowCamera\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera\n * @param alpha Define the rotation angle of the camera around the longitudinal axis\n * @param beta Define the rotation angle of the camera around the elevation axis\n * @param radius Define the radius of the camera from its target point\n * @param target Define the target of the camera\n * @param scene Define the scene the camera belongs to\n */\n constructor(name, /** The longitudinal angle of the camera */\n alpha, /** The latitudinal angle of the camera */\n beta, /** The radius of the camera from its target */\n radius, /** Define the camera target (the mesh it should follow) */\n target, scene) {\n super(name, Vector3.Zero(), scene);\n this.alpha = alpha;\n this.beta = beta;\n this.radius = radius;\n this._cartesianCoordinates = Vector3.Zero();\n this.setMeshTarget(target);\n }\n /**\n * Sets the mesh to follow with this camera.\n * @param target the target to follow\n */\n setMeshTarget(target) {\n this._meshTarget = target;\n this._follow();\n }\n _follow() {\n if (!this._meshTarget) {\n return;\n }\n this._cartesianCoordinates.x = this.radius * Math.cos(this.alpha) * Math.cos(this.beta);\n this._cartesianCoordinates.y = this.radius * Math.sin(this.beta);\n this._cartesianCoordinates.z = this.radius * Math.sin(this.alpha) * Math.cos(this.beta);\n const targetPosition = this._meshTarget.getAbsolutePosition();\n this.position = targetPosition.add(this._cartesianCoordinates);\n this.setTarget(targetPosition);\n }\n /** @internal */\n _checkInputs() {\n super._checkInputs();\n this._follow();\n }\n /**\n * Returns the class name of the object.\n * It is mostly used internally for serialization purposes.\n * @returns the class name\n */\n getClassName() {\n return \"ArcFollowCamera\";\n }\n}\n// Register Class Name\nRegisterClass(\"BABYLON.FollowCamera\", FollowCamera);\nRegisterClass(\"BABYLON.ArcFollowCamera\", ArcFollowCamera);","map":{"version":3,"names":["__decorate","serialize","serializeAsMeshReference","Tools","TargetCamera","TmpVectors","Vector3","Node","FollowCameraInputsManager","RegisterClass","AddNodeConstructor","name","scene","FollowCamera","Zero","ArcFollowCamera","constructor","position","lockedTarget","radius","lowerRadiusLimit","upperRadiusLimit","rotationOffset","lowerRotationOffsetLimit","upperRotationOffsetLimit","heightOffset","lowerHeightOffsetLimit","upperHeightOffsetLimit","cameraAcceleration","maxCameraSpeed","inputs","addKeyboard","addMouseWheel","addPointers","_follow","cameraTarget","rotMatrix","Matrix","absoluteRotationQuaternion","toRotationMatrix","yRotation","Math","atan2","m","radians","ToRadians","targetPosition","getAbsolutePosition","targetX","x","sin","targetZ","z","cos","dx","dy","y","dz","vx","vy","vz","setTarget","attachControl","ignored","noPreventDefault","BackCompatCameraNoPreventDefault","arguments","attachElement","_reset","detachControl","detachElement","_checkInputs","checkInputs","_checkLimits","getClassName","prototype","alpha","beta","target","_cartesianCoordinates","setMeshTarget","_meshTarget","add"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Cameras/followCamera.js"],"sourcesContent":["import { __decorate } from \"../tslib.es6.js\";\nimport { serialize, serializeAsMeshReference } from \"../Misc/decorators.js\";\nimport { Tools } from \"../Misc/tools.js\";\nimport { TargetCamera } from \"./targetCamera.js\";\nimport { TmpVectors, Vector3 } from \"../Maths/math.vector.js\";\nimport { Node } from \"../node.js\";\nimport { FollowCameraInputsManager } from \"./followCameraInputsManager.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\nNode.AddNodeConstructor(\"FollowCamera\", (name, scene) => {\n return () => new FollowCamera(name, Vector3.Zero(), scene);\n});\nNode.AddNodeConstructor(\"ArcFollowCamera\", (name, scene) => {\n return () => new ArcFollowCamera(name, 0, 0, 1.0, null, scene);\n});\n/**\n * A follow camera takes a mesh as a target and follows it as it moves. Both a free camera version followCamera and\n * an arc rotate version arcFollowCamera are available.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n */\nexport class FollowCamera extends TargetCamera {\n /**\n * Instantiates the follow camera.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera in the scene\n * @param position Define the position of the camera\n * @param scene Define the scene the camera belong to\n * @param lockedTarget Define the target of the camera\n */\n constructor(name, position, scene, lockedTarget = null) {\n super(name, position, scene);\n /**\n * Distance the follow camera should follow an object at\n */\n this.radius = 12;\n /**\n * Minimum allowed distance of the camera to the axis of rotation\n * (The camera can not get closer).\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerRadiusLimit = null;\n /**\n * Maximum allowed distance of the camera to the axis of rotation\n * (The camera can not get further).\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperRadiusLimit = null;\n /**\n * Define a rotation offset between the camera and the object it follows\n */\n this.rotationOffset = 0;\n /**\n * Minimum allowed angle to camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerRotationOffsetLimit = null;\n /**\n * Maximum allowed angle to camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperRotationOffsetLimit = null;\n /**\n * Define a height offset between the camera and the object it follows.\n * It can help following an object from the top (like a car chasing a plane)\n */\n this.heightOffset = 4;\n /**\n * Minimum allowed height of camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.lowerHeightOffsetLimit = null;\n /**\n * Maximum allowed height of camera position relative to target object.\n * This can help limiting how the Camera is able to move in the scene.\n */\n this.upperHeightOffsetLimit = null;\n /**\n * Define how fast the camera can accelerate to follow it s target.\n */\n this.cameraAcceleration = 0.05;\n /**\n * Define the speed limit of the camera following an object.\n */\n this.maxCameraSpeed = 20;\n this.lockedTarget = lockedTarget;\n this.inputs = new FollowCameraInputsManager(this);\n this.inputs.addKeyboard().addMouseWheel().addPointers();\n // Uncomment the following line when the relevant handlers have been implemented.\n // this.inputs.addKeyboard().addMouseWheel().addPointers().addVRDeviceOrientation();\n }\n _follow(cameraTarget) {\n if (!cameraTarget) {\n return;\n }\n const rotMatrix = TmpVectors.Matrix[0];\n cameraTarget.absoluteRotationQuaternion.toRotationMatrix(rotMatrix);\n const yRotation = Math.atan2(rotMatrix.m[8], rotMatrix.m[10]);\n const radians = Tools.ToRadians(this.rotationOffset) + yRotation;\n const targetPosition = cameraTarget.getAbsolutePosition();\n const targetX = targetPosition.x + Math.sin(radians) * this.radius;\n const targetZ = targetPosition.z + Math.cos(radians) * this.radius;\n const dx = targetX - this.position.x;\n const dy = targetPosition.y + this.heightOffset - this.position.y;\n const dz = targetZ - this.position.z;\n let vx = dx * this.cameraAcceleration * 2; //this is set to .05\n let vy = dy * this.cameraAcceleration;\n let vz = dz * this.cameraAcceleration * 2;\n if (vx > this.maxCameraSpeed || vx < -this.maxCameraSpeed) {\n vx = vx < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n if (vy > this.maxCameraSpeed || vy < -this.maxCameraSpeed) {\n vy = vy < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n if (vz > this.maxCameraSpeed || vz < -this.maxCameraSpeed) {\n vz = vz < 1 ? -this.maxCameraSpeed : this.maxCameraSpeed;\n }\n this.position = new Vector3(this.position.x + vx, this.position.y + vy, this.position.z + vz);\n this.setTarget(targetPosition);\n }\n /**\n * Attached controls to the current camera.\n * @param ignored defines an ignored parameter kept for backward compatibility.\n * @param noPreventDefault Defines whether event caught by the controls should call preventdefault() (https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\n */\n attachControl(ignored, noPreventDefault) {\n // eslint-disable-next-line prefer-rest-params\n noPreventDefault = Tools.BackCompatCameraNoPreventDefault(arguments);\n this.inputs.attachElement(noPreventDefault);\n this._reset = () => { };\n }\n /**\n * Detach the current controls from the specified dom element.\n */\n detachControl() {\n this.inputs.detachElement();\n if (this._reset) {\n this._reset();\n }\n }\n /** @internal */\n _checkInputs() {\n this.inputs.checkInputs();\n this._checkLimits();\n super._checkInputs();\n if (this.lockedTarget) {\n this._follow(this.lockedTarget);\n }\n }\n _checkLimits() {\n if (this.lowerRadiusLimit !== null && this.radius < this.lowerRadiusLimit) {\n this.radius = this.lowerRadiusLimit;\n }\n if (this.upperRadiusLimit !== null && this.radius > this.upperRadiusLimit) {\n this.radius = this.upperRadiusLimit;\n }\n if (this.lowerHeightOffsetLimit !== null && this.heightOffset < this.lowerHeightOffsetLimit) {\n this.heightOffset = this.lowerHeightOffsetLimit;\n }\n if (this.upperHeightOffsetLimit !== null && this.heightOffset > this.upperHeightOffsetLimit) {\n this.heightOffset = this.upperHeightOffsetLimit;\n }\n if (this.lowerRotationOffsetLimit !== null && this.rotationOffset < this.lowerRotationOffsetLimit) {\n this.rotationOffset = this.lowerRotationOffsetLimit;\n }\n if (this.upperRotationOffsetLimit !== null && this.rotationOffset > this.upperRotationOffsetLimit) {\n this.rotationOffset = this.upperRotationOffsetLimit;\n }\n }\n /**\n * Gets the camera class name.\n * @returns the class name\n */\n getClassName() {\n return \"FollowCamera\";\n }\n}\n__decorate([\n serialize()\n], FollowCamera.prototype, \"radius\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"lowerRadiusLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"upperRadiusLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"rotationOffset\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"lowerRotationOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"upperRotationOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"heightOffset\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"lowerHeightOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"upperHeightOffsetLimit\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"cameraAcceleration\", void 0);\n__decorate([\n serialize()\n], FollowCamera.prototype, \"maxCameraSpeed\", void 0);\n__decorate([\n serializeAsMeshReference(\"lockedTargetId\")\n], FollowCamera.prototype, \"lockedTarget\", void 0);\n/**\n * Arc Rotate version of the follow camera.\n * It still follows a Defined mesh but in an Arc Rotate Camera fashion.\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n */\nexport class ArcFollowCamera extends TargetCamera {\n /**\n * Instantiates a new ArcFollowCamera\n * @see https://doc.babylonjs.com/features/featuresDeepDive/cameras/camera_introduction#followcamera\n * @param name Define the name of the camera\n * @param alpha Define the rotation angle of the camera around the longitudinal axis\n * @param beta Define the rotation angle of the camera around the elevation axis\n * @param radius Define the radius of the camera from its target point\n * @param target Define the target of the camera\n * @param scene Define the scene the camera belongs to\n */\n constructor(name, \n /** The longitudinal angle of the camera */\n alpha, \n /** The latitudinal angle of the camera */\n beta, \n /** The radius of the camera from its target */\n radius, \n /** Define the camera target (the mesh it should follow) */\n target, scene) {\n super(name, Vector3.Zero(), scene);\n this.alpha = alpha;\n this.beta = beta;\n this.radius = radius;\n this._cartesianCoordinates = Vector3.Zero();\n this.setMeshTarget(target);\n }\n /**\n * Sets the mesh to follow with this camera.\n * @param target the target to follow\n */\n setMeshTarget(target) {\n this._meshTarget = target;\n this._follow();\n }\n _follow() {\n if (!this._meshTarget) {\n return;\n }\n this._cartesianCoordinates.x = this.radius * Math.cos(this.alpha) * Math.cos(this.beta);\n this._cartesianCoordinates.y = this.radius * Math.sin(this.beta);\n this._cartesianCoordinates.z = this.radius * Math.sin(this.alpha) * Math.cos(this.beta);\n const targetPosition = this._meshTarget.getAbsolutePosition();\n this.position = targetPosition.add(this._cartesianCoordinates);\n this.setTarget(targetPosition);\n }\n /** @internal */\n _checkInputs() {\n super._checkInputs();\n this._follow();\n }\n /**\n * Returns the class name of the object.\n * It is mostly used internally for serialization purposes.\n * @returns the class name\n */\n getClassName() {\n return \"ArcFollowCamera\";\n }\n}\n// Register Class Name\nRegisterClass(\"BABYLON.FollowCamera\", FollowCamera);\nRegisterClass(\"BABYLON.ArcFollowCamera\", ArcFollowCamera);\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,SAAS,EAAEC,wBAAwB,QAAQ,uBAAuB;AAC3E,SAASC,KAAK,QAAQ,kBAAkB;AACxC,SAASC,YAAY,QAAQ,mBAAmB;AAChD,SAASC,UAAU,EAAEC,OAAO,QAAQ,yBAAyB;AAC7D,SAASC,IAAI,QAAQ,YAAY;AACjC,SAASC,yBAAyB,QAAQ,gCAAgC;AAC1E,SAASC,aAAa,QAAQ,sBAAsB;AACpDF,IAAI,CAACG,kBAAkB,CAAC,cAAc,EAAE,CAACC,IAAI,EAAEC,KAAK,KAAK;EACrD,OAAO,MAAM,IAAIC,YAAY,CAACF,IAAI,EAAEL,OAAO,CAACQ,IAAI,CAAC,CAAC,EAAEF,KAAK,CAAC;AAC9D,CAAC,CAAC;AACFL,IAAI,CAACG,kBAAkB,CAAC,iBAAiB,EAAE,CAACC,IAAI,EAAEC,KAAK,KAAK;EACxD,OAAO,MAAM,IAAIG,eAAe,CAACJ,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAEC,KAAK,CAAC;AAClE,CAAC,CAAC;AACF;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,YAAY,SAAST,YAAY,CAAC;EAC3C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIY,WAAWA,CAACL,IAAI,EAAEM,QAAQ,EAAEL,KAAK,EAAEM,YAAY,GAAG,IAAI,EAAE;IACpD,KAAK,CAACP,IAAI,EAAEM,QAAQ,EAAEL,KAAK,CAAC;IAC5B;AACR;AACA;IACQ,IAAI,CAACO,MAAM,GAAG,EAAE;IAChB;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACR;AACA;AACA;AACA;IACQ,IAAI,CAACC,gBAAgB,GAAG,IAAI;IAC5B;AACR;AACA;IACQ,IAAI,CAACC,cAAc,GAAG,CAAC;IACvB;AACR;AACA;AACA;IACQ,IAAI,CAACC,wBAAwB,GAAG,IAAI;IACpC;AACR;AACA;AACA;IACQ,IAAI,CAACC,wBAAwB,GAAG,IAAI;IACpC;AACR;AACA;AACA;IACQ,IAAI,CAACC,YAAY,GAAG,CAAC;IACrB;AACR;AACA;AACA;IACQ,IAAI,CAACC,sBAAsB,GAAG,IAAI;IAClC;AACR;AACA;AACA;IACQ,IAAI,CAACC,sBAAsB,GAAG,IAAI;IAClC;AACR;AACA;IACQ,IAAI,CAACC,kBAAkB,GAAG,IAAI;IAC9B;AACR;AACA;IACQ,IAAI,CAACC,cAAc,GAAG,EAAE;IACxB,IAAI,CAACX,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACY,MAAM,GAAG,IAAItB,yBAAyB,CAAC,IAAI,CAAC;IACjD,IAAI,CAACsB,MAAM,CAACC,WAAW,CAAC,CAAC,CAACC,aAAa,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;IACvD;IACA;EACJ;EACAC,OAAOA,CAACC,YAAY,EAAE;IAClB,IAAI,CAACA,YAAY,EAAE;MACf;IACJ;IACA,MAAMC,SAAS,GAAG/B,UAAU,CAACgC,MAAM,CAAC,CAAC,CAAC;IACtCF,YAAY,CAACG,0BAA0B,CAACC,gBAAgB,CAACH,SAAS,CAAC;IACnE,MAAMI,SAAS,GAAGC,IAAI,CAACC,KAAK,CAACN,SAAS,CAACO,CAAC,CAAC,CAAC,CAAC,EAAEP,SAAS,CAACO,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,MAAMC,OAAO,GAAGzC,KAAK,CAAC0C,SAAS,CAAC,IAAI,CAACvB,cAAc,CAAC,GAAGkB,SAAS;IAChE,MAAMM,cAAc,GAAGX,YAAY,CAACY,mBAAmB,CAAC,CAAC;IACzD,MAAMC,OAAO,GAAGF,cAAc,CAACG,CAAC,GAAGR,IAAI,CAACS,GAAG,CAACN,OAAO,CAAC,GAAG,IAAI,CAACzB,MAAM;IAClE,MAAMgC,OAAO,GAAGL,cAAc,CAACM,CAAC,GAAGX,IAAI,CAACY,GAAG,CAACT,OAAO,CAAC,GAAG,IAAI,CAACzB,MAAM;IAClE,MAAMmC,EAAE,GAAGN,OAAO,GAAG,IAAI,CAAC/B,QAAQ,CAACgC,CAAC;IACpC,MAAMM,EAAE,GAAGT,cAAc,CAACU,CAAC,GAAG,IAAI,CAAC/B,YAAY,GAAG,IAAI,CAACR,QAAQ,CAACuC,CAAC;IACjE,MAAMC,EAAE,GAAGN,OAAO,GAAG,IAAI,CAAClC,QAAQ,CAACmC,CAAC;IACpC,IAAIM,EAAE,GAAGJ,EAAE,GAAG,IAAI,CAAC1B,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI+B,EAAE,GAAGJ,EAAE,GAAG,IAAI,CAAC3B,kBAAkB;IACrC,IAAIgC,EAAE,GAAGH,EAAE,GAAG,IAAI,CAAC7B,kBAAkB,GAAG,CAAC;IACzC,IAAI8B,EAAE,GAAG,IAAI,CAAC7B,cAAc,IAAI6B,EAAE,GAAG,CAAC,IAAI,CAAC7B,cAAc,EAAE;MACvD6B,EAAE,GAAGA,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC7B,cAAc,GAAG,IAAI,CAACA,cAAc;IAC5D;IACA,IAAI8B,EAAE,GAAG,IAAI,CAAC9B,cAAc,IAAI8B,EAAE,GAAG,CAAC,IAAI,CAAC9B,cAAc,EAAE;MACvD8B,EAAE,GAAGA,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC9B,cAAc,GAAG,IAAI,CAACA,cAAc;IAC5D;IACA,IAAI+B,EAAE,GAAG,IAAI,CAAC/B,cAAc,IAAI+B,EAAE,GAAG,CAAC,IAAI,CAAC/B,cAAc,EAAE;MACvD+B,EAAE,GAAGA,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC/B,cAAc,GAAG,IAAI,CAACA,cAAc;IAC5D;IACA,IAAI,CAACZ,QAAQ,GAAG,IAAIX,OAAO,CAAC,IAAI,CAACW,QAAQ,CAACgC,CAAC,GAAGS,EAAE,EAAE,IAAI,CAACzC,QAAQ,CAACuC,CAAC,GAAGG,EAAE,EAAE,IAAI,CAAC1C,QAAQ,CAACmC,CAAC,GAAGQ,EAAE,CAAC;IAC7F,IAAI,CAACC,SAAS,CAACf,cAAc,CAAC;EAClC;EACA;AACJ;AACA;AACA;AACA;EACIgB,aAAaA,CAACC,OAAO,EAAEC,gBAAgB,EAAE;IACrC;IACAA,gBAAgB,GAAG7D,KAAK,CAAC8D,gCAAgC,CAACC,SAAS,CAAC;IACpE,IAAI,CAACpC,MAAM,CAACqC,aAAa,CAACH,gBAAgB,CAAC;IAC3C,IAAI,CAACI,MAAM,GAAG,MAAM,CAAE,CAAC;EAC3B;EACA;AACJ;AACA;EACIC,aAAaA,CAAA,EAAG;IACZ,IAAI,CAACvC,MAAM,CAACwC,aAAa,CAAC,CAAC;IAC3B,IAAI,IAAI,CAACF,MAAM,EAAE;MACb,IAAI,CAACA,MAAM,CAAC,CAAC;IACjB;EACJ;EACA;EACAG,YAAYA,CAAA,EAAG;IACX,IAAI,CAACzC,MAAM,CAAC0C,WAAW,CAAC,CAAC;IACzB,IAAI,CAACC,YAAY,CAAC,CAAC;IACnB,KAAK,CAACF,YAAY,CAAC,CAAC;IACpB,IAAI,IAAI,CAACrD,YAAY,EAAE;MACnB,IAAI,CAACgB,OAAO,CAAC,IAAI,CAAChB,YAAY,CAAC;IACnC;EACJ;EACAuD,YAAYA,CAAA,EAAG;IACX,IAAI,IAAI,CAACrD,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAACD,MAAM,GAAG,IAAI,CAACC,gBAAgB,EAAE;MACvE,IAAI,CAACD,MAAM,GAAG,IAAI,CAACC,gBAAgB;IACvC;IACA,IAAI,IAAI,CAACC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAACF,MAAM,GAAG,IAAI,CAACE,gBAAgB,EAAE;MACvE,IAAI,CAACF,MAAM,GAAG,IAAI,CAACE,gBAAgB;IACvC;IACA,IAAI,IAAI,CAACK,sBAAsB,KAAK,IAAI,IAAI,IAAI,CAACD,YAAY,GAAG,IAAI,CAACC,sBAAsB,EAAE;MACzF,IAAI,CAACD,YAAY,GAAG,IAAI,CAACC,sBAAsB;IACnD;IACA,IAAI,IAAI,CAACC,sBAAsB,KAAK,IAAI,IAAI,IAAI,CAACF,YAAY,GAAG,IAAI,CAACE,sBAAsB,EAAE;MACzF,IAAI,CAACF,YAAY,GAAG,IAAI,CAACE,sBAAsB;IACnD;IACA,IAAI,IAAI,CAACJ,wBAAwB,KAAK,IAAI,IAAI,IAAI,CAACD,cAAc,GAAG,IAAI,CAACC,wBAAwB,EAAE;MAC/F,IAAI,CAACD,cAAc,GAAG,IAAI,CAACC,wBAAwB;IACvD;IACA,IAAI,IAAI,CAACC,wBAAwB,KAAK,IAAI,IAAI,IAAI,CAACF,cAAc,GAAG,IAAI,CAACE,wBAAwB,EAAE;MAC/F,IAAI,CAACF,cAAc,GAAG,IAAI,CAACE,wBAAwB;IACvD;EACJ;EACA;AACJ;AACA;AACA;EACIkD,YAAYA,CAAA,EAAG;IACX,OAAO,cAAc;EACzB;AACJ;AACA1E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAC5C3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACtD3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACtD3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACpD3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAC9D3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,0BAA0B,EAAE,KAAK,CAAC,CAAC;AAC9D3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAClD3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAC5D3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,wBAAwB,EAAE,KAAK,CAAC,CAAC;AAC5D3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;AACxD3E,UAAU,CAAC,CACPC,SAAS,CAAC,CAAC,CACd,EAAEY,YAAY,CAAC8D,SAAS,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;AACpD3E,UAAU,CAAC,CACPE,wBAAwB,CAAC,gBAAgB,CAAC,CAC7C,EAAEW,YAAY,CAAC8D,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAM5D,eAAe,SAASX,YAAY,CAAC;EAC9C;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIY,WAAWA,CAACL,IAAI,EAChB;EACAiE,KAAK,EACL;EACAC,IAAI,EACJ;EACA1D,MAAM,EACN;EACA2D,MAAM,EAAElE,KAAK,EAAE;IACX,KAAK,CAACD,IAAI,EAAEL,OAAO,CAACQ,IAAI,CAAC,CAAC,EAAEF,KAAK,CAAC;IAClC,IAAI,CAACgE,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAAC1D,MAAM,GAAGA,MAAM;IACpB,IAAI,CAAC4D,qBAAqB,GAAGzE,OAAO,CAACQ,IAAI,CAAC,CAAC;IAC3C,IAAI,CAACkE,aAAa,CAACF,MAAM,CAAC;EAC9B;EACA;AACJ;AACA;AACA;EACIE,aAAaA,CAACF,MAAM,EAAE;IAClB,IAAI,CAACG,WAAW,GAAGH,MAAM;IACzB,IAAI,CAAC5C,OAAO,CAAC,CAAC;EAClB;EACAA,OAAOA,CAAA,EAAG;IACN,IAAI,CAAC,IAAI,CAAC+C,WAAW,EAAE;MACnB;IACJ;IACA,IAAI,CAACF,qBAAqB,CAAC9B,CAAC,GAAG,IAAI,CAAC9B,MAAM,GAAGsB,IAAI,CAACY,GAAG,CAAC,IAAI,CAACuB,KAAK,CAAC,GAAGnC,IAAI,CAACY,GAAG,CAAC,IAAI,CAACwB,IAAI,CAAC;IACvF,IAAI,CAACE,qBAAqB,CAACvB,CAAC,GAAG,IAAI,CAACrC,MAAM,GAAGsB,IAAI,CAACS,GAAG,CAAC,IAAI,CAAC2B,IAAI,CAAC;IAChE,IAAI,CAACE,qBAAqB,CAAC3B,CAAC,GAAG,IAAI,CAACjC,MAAM,GAAGsB,IAAI,CAACS,GAAG,CAAC,IAAI,CAAC0B,KAAK,CAAC,GAAGnC,IAAI,CAACY,GAAG,CAAC,IAAI,CAACwB,IAAI,CAAC;IACvF,MAAM/B,cAAc,GAAG,IAAI,CAACmC,WAAW,CAAClC,mBAAmB,CAAC,CAAC;IAC7D,IAAI,CAAC9B,QAAQ,GAAG6B,cAAc,CAACoC,GAAG,CAAC,IAAI,CAACH,qBAAqB,CAAC;IAC9D,IAAI,CAAClB,SAAS,CAACf,cAAc,CAAC;EAClC;EACA;EACAyB,YAAYA,CAAA,EAAG;IACX,KAAK,CAACA,YAAY,CAAC,CAAC;IACpB,IAAI,CAACrC,OAAO,CAAC,CAAC;EAClB;EACA;AACJ;AACA;AACA;AACA;EACIwC,YAAYA,CAAA,EAAG;IACX,OAAO,iBAAiB;EAC5B;AACJ;AACA;AACAjE,aAAa,CAAC,sBAAsB,EAAEI,YAAY,CAAC;AACnDJ,aAAa,CAAC,yBAAyB,EAAEM,eAAe,CAAC","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|