From b7c10decfd295d0e3df0ae1228fa59febd7d6a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=E5=85=88=E7=94=9F?= <1211120248@qq.com> Date: Wed, 15 Jul 2026 08:22:49 +0800 Subject: [PATCH] feat: refine map detail interactions --- ...iTi-14435b65-balabala-1784074877048.woff2} | Bin ...-Bold-6401fd0d-balabala-1784074877048.ttf} | Bin ...Bold-a95023f2-balabala-1784074877048.woff} | Bin ...old-fa4a258d-balabala-1784074877048.woff2} | Bin ...Panel-84703f43-balabala-1784074877048.css} | 0 ...FeatureInfoPanel-8e9f606e-1784074877048.js | 3 + ...FeatureInfoPanel-b2a9b292-1784045078568.js | 3 - ...Panel-7a55b2bc-balabala-1784074877048.css} | 0 ...s => LayerPanel-9c0c5952-1784074877048.js} | 2 +- ...derer-7a3a96b9-balabala-1784074877048.css} | 0 ...rtChartRenderer-aa5ca709-1784074877048.js} | 2 +- ...> TopicSwitcher-3ee7ffcb-1784074877048.js} | 4 +- ...tcher-aa157193-balabala-1784074877048.css} | 2 +- ... area-b57940eb-balabala-1784074877048.png} | Bin ...68.js => assets-34f9bc99-1784074877048.js} | 2 +- ...=> bg-3acb94e3-balabala-1784074877048.png} | Bin ...w-big-180b7071-balabala-1784074877048.svg} | 0 ...small-19304179-balabala-1784074877048.svg} | 0 ...nu-bg-b465793d-balabala-1784074877048.png} | Bin ...u-btn-ee5c8064-balabala-1784074877048.png} | Bin ...hover-df33e514-balabala-1784074877048.png} | Bin ...s => chartTheme-9a56b109-1784074877048.js} | 2 +- ...rLine-1a2cbc0f-balabala-1784074877048.png} | Bin ...arrow-3a8a61f3-balabala-1784074877048.svg} | 0 ...arrow-a3c5270d-balabala-1784074877048.svg} | 0 ...-line-162bc0d5-balabala-1784074877048.svg} | 0 ...8568.js => data-202a0afb-1784074877048.js} | 2 +- ...8568.js => data-35cd5cb4-1784074877048.js} | 2 +- ...8568.js => data-5c83c66b-1784074877048.js} | 0 ...8568.js => data-631f012a-1784074877048.js} | 4 +- ...8568.js => data-c66f5cee-1784074877048.js} | 2 +- ...8568.js => data-d4fc629d-1784074877048.js} | 2 +- ...turePanelLayout-dc118942-1784074877048.js} | 2 +- ...line6-525edf67-balabala-1784074877048.png} | Bin ...us_bg-b6803e2d-balabala-1784074877048.png} | Bin ...ve_bg-cf41417a-balabala-1784074877048.png} | Bin ...js => geoserver-a50e4f20-1784074877048.js} | 2 +- ...er-bg-65b38012-balabala-1784074877048.png} | Bin ...guang-3c5dfda5-balabala-1784074877048.png} | Bin ...icon1-6f7c222f-balabala-1784074877048.png} | Bin ...icon2-4f77ccec-balabala-1784074877048.png} | Bin ...index-026acc61-balabala-1784074877048.css} | 2 +- ...index-089a3dd0-balabala-1784074877048.css} | 0 .../index-11333eca-balabala-1784045078568.css | 1 - ...index-148a2898-balabala-1784074877048.css} | 0 ...784045078568.js => index-1784074877048.js} | 2 +- docs/assets/index-1e2d518b-1784074877048.js | 116 ++++++++++++++++++ ...568.js => index-1f5d6021-1784074877048.js} | 2 +- docs/assets/index-24c07d59-1784045078568.js | 1 - .../index-2bde92c2-balabala-1784074877048.css | 1 + ...568.js => index-2fb6adee-1784074877048.js} | 2 +- docs/assets/index-3536e98d-1784074877048.js | 1 + ...index-41d168c2-balabala-1784074877048.css} | 0 ...568.js => index-514021a4-1784074877048.js} | 4 +- ...index-53046bee-balabala-1784074877048.css} | 2 +- ...index-5afedc21-balabala-1784074877048.css} | 0 ...index-5e7a407c-balabala-1784074877048.css} | 2 +- ...568.js => index-65b45d6f-1784074877048.js} | 4 +- docs/assets/index-6a8ef8cf-1784045078568.js | 16 --- docs/assets/index-6bbec7d3-1784074877048.js | 1 + ...index-6e1f3341-balabala-1784074877048.css} | 0 ...568.js => index-6e825f4c-1784074877048.js} | 2 +- docs/assets/index-7362f308-1784074877048.js | 112 +++++++++++++++++ ...568.js => index-7950c07e-1784074877048.js} | 4 +- ...index-7c335907-balabala-1784074877048.css} | 0 ...index-8d752fbe-balabala-1784074877048.css} | 0 ...index-95e82452-balabala-1784074877048.css} | 2 +- docs/assets/index-b4ec1ae2-1784074877048.js | 2 + docs/assets/index-bc047bb3-1784074877048.js | 16 +++ docs/assets/index-c252ce06-1784045078568.js | 2 - ...index-c36df85d-balabala-1784074877048.css} | 0 .../index-cc777d69-balabala-1784074877048.css | 1 + docs/assets/index-e02d03a3-1784045078568.js | 1 - .../index-e174cf85-balabala-1784045078568.css | 1 - docs/assets/index-e4881302-1784045078568.js | 116 ------------------ ...568.js => index-e9f36657-1784074877048.js} | 0 ...568.js => index-f9f2c8d7-1784074877048.js} | 2 +- docs/assets/index-fe56ccaa-1784045078568.js | 112 ----------------- ...> index.esm.min-469b3f53-1784074877048.js} | 2 +- ...ayout-b708cd9c-balabala-1784074877048.css} | 0 ... leaf-7be9efef-balabala-1784074877048.png} | Bin ...kuang-5d6bd1ae-balabala-1784074877048.svg} | 0 ...=> live-scene-1-69301bfb-1784074877048.js} | 4 +- ...ene-1-786cdd0a-balabala-1784074877048.png} | Bin ...> livestockData-36ec0ae2-1784074877048.js} | 0 ...u-btn-91a961cf-balabala-1784074877048.png} | Bin ...hover-62eba0bb-balabala-1784074877048.png} | Bin ...an-bg-8c848b8f-balabala-1784074877048.png} | Bin ...8.js => openApi-7e2310e1-1784074877048.js} | 2 +- ... park-ee0533e0-balabala-1784074877048.png} | Bin ...Line2-d4134d4b-balabala-1784074877048.png} | Bin ...kuang-b1937caf-balabala-1784074877048.svg} | 0 ...ring2-a1b91808-balabala-1784074877048.png} | Bin ...ring3-fe0f60d7-balabala-1784074877048.png} | Bin ...ring4-f2e324d6-balabala-1784074877048.png} | Bin ...rder1-2ce8e0ef-balabala-1784074877048.png} | Bin ...rder2-7496b968-balabala-1784074877048.png} | Bin ...guang-ccf84a88-balabala-1784074877048.svg} | 0 ...screen2Standard-9c6af3a2-1784074877048.js} | 4 +- ...ndard-cdb21878-balabala-1784074877048.css} | 0 ...stack-7a426057-balabala-1784074877048.png} | Bin ...e-zs1-c15a5ee8-balabala-1784074877048.svg} | 0 ... town-f8c0c9cc-balabala-1784074877048.png} | Bin ...nshipBoundaries-1b068bef-1784074877048.js} | 0 ...-base-03c7f2cb-balabala-1784074877048.png} | Bin ...68.js => yakApi-16bd23bc-1784074877048.js} | 2 +- ...yield-66e9af79-balabala-1784074877048.png} | Bin docs/index.html | 4 +- src/components/CesiumMap/index.vue | 49 +++++--- src/views/ecologicalProtection/index.vue | 11 ++ .../components/FeatureInfoPanel.vue | 91 ++++++++++---- src/views/forestGrassWet/index.vue | 10 ++ src/views/home/index.vue | 10 ++ src/views/pastureManagement/index.vue | 8 +- src/views/yakIndustryChain/index.vue | 2 +- src/views/yakManagement/index.vue | 46 ++++++- 116 files changed, 475 insertions(+), 336 deletions(-) rename docs/assets/{AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2 => AlibabaPuHuiTi-14435b65-balabala-1784074877048.woff2} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf => AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784074877048.ttf} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff => AlimamaShuHeiTi-Bold-a95023f2-balabala-1784074877048.woff} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2 => AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784074877048.woff2} (100%) rename docs/assets/{FeatureInfoPanel-84703f43-balabala-1784045078568.css => FeatureInfoPanel-84703f43-balabala-1784074877048.css} (100%) create mode 100644 docs/assets/FeatureInfoPanel-8e9f606e-1784074877048.js delete mode 100644 docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js rename docs/assets/{LayerPanel-7a55b2bc-balabala-1784045078568.css => LayerPanel-7a55b2bc-balabala-1784074877048.css} (100%) rename docs/assets/{LayerPanel-67768a91-1784045078568.js => LayerPanel-9c0c5952-1784074877048.js} (95%) rename docs/assets/{SmartChartRenderer-7a3a96b9-balabala-1784045078568.css => SmartChartRenderer-7a3a96b9-balabala-1784074877048.css} (100%) rename docs/assets/{SmartChartRenderer-4996c796-1784045078568.js => SmartChartRenderer-aa5ca709-1784074877048.js} (97%) rename docs/assets/{TopicSwitcher-2ffd167b-1784045078568.js => TopicSwitcher-3ee7ffcb-1784074877048.js} (99%) rename docs/assets/{TopicSwitcher-27546cd1-balabala-1784045078568.css => TopicSwitcher-aa157193-balabala-1784074877048.css} (88%) rename docs/assets/{area-b57940eb-balabala-1784045078568.png => area-b57940eb-balabala-1784074877048.png} (100%) rename docs/assets/{assets-4a378a39-1784045078568.js => assets-34f9bc99-1784074877048.js} (85%) rename docs/assets/{bg-3acb94e3-balabala-1784045078568.png => bg-3acb94e3-balabala-1784074877048.png} (100%) rename docs/assets/{bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg => bottom-menu-arrow-big-180b7071-balabala-1784074877048.svg} (100%) rename docs/assets/{bottom-menu-arrow-small-19304179-balabala-1784045078568.svg => bottom-menu-arrow-small-19304179-balabala-1784074877048.svg} (100%) rename docs/assets/{bottom-menu-bg-b465793d-balabala-1784045078568.png => bottom-menu-bg-b465793d-balabala-1784074877048.png} (100%) rename docs/assets/{bottom-menu-btn-ee5c8064-balabala-1784045078568.png => bottom-menu-btn-ee5c8064-balabala-1784074877048.png} (100%) rename docs/assets/{bottom-menu-btn-hover-df33e514-balabala-1784045078568.png => bottom-menu-btn-hover-df33e514-balabala-1784074877048.png} (100%) rename docs/assets/{chartTheme-8c348a2d-1784045078568.js => chartTheme-9a56b109-1784074877048.js} (97%) rename docs/assets/{chinaBlurLine-1a2cbc0f-balabala-1784045078568.png => chinaBlurLine-1a2cbc0f-balabala-1784074877048.png} (100%) rename docs/assets/{content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg => content-bottom-left-arrow-3a8a61f3-balabala-1784074877048.svg} (100%) rename docs/assets/{content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg => content-bottom-right-arrow-a3c5270d-balabala-1784074877048.svg} (100%) rename docs/assets/{content-middle-line-162bc0d5-balabala-1784045078568.svg => content-middle-line-162bc0d5-balabala-1784074877048.svg} (100%) rename docs/assets/{data-156ef419-1784045078568.js => data-202a0afb-1784074877048.js} (98%) rename docs/assets/{data-bfed1662-1784045078568.js => data-35cd5cb4-1784074877048.js} (99%) rename docs/assets/{data-5c83c66b-1784045078568.js => data-5c83c66b-1784074877048.js} (100%) rename docs/assets/{data-12043e21-1784045078568.js => data-631f012a-1784074877048.js} (99%) rename docs/assets/{data-efed6b46-1784045078568.js => data-c66f5cee-1784074877048.js} (99%) rename docs/assets/{data-881b212b-1784045078568.js => data-d4fc629d-1784074877048.js} (97%) rename docs/assets/{featurePanelLayout-5da16b00-1784045078568.js => featurePanelLayout-dc118942-1784074877048.js} (98%) rename docs/assets/{flyline6-525edf67-balabala-1784045078568.png => flyline6-525edf67-balabala-1784074877048.png} (100%) rename docs/assets/{focus_bg-b6803e2d-balabala-1784045078568.png => focus_bg-b6803e2d-balabala-1784074877048.png} (100%) rename docs/assets/{focus_move_bg-cf41417a-balabala-1784045078568.png => focus_move_bg-cf41417a-balabala-1784074877048.png} (100%) rename docs/assets/{geoserver-6ded2e06-1784045078568.js => geoserver-a50e4f20-1784074877048.js} (94%) rename docs/assets/{header-bg-65b38012-balabala-1784045078568.png => header-bg-65b38012-balabala-1784074877048.png} (100%) rename docs/assets/{huiguang-3c5dfda5-balabala-1784045078568.png => huiguang-3c5dfda5-balabala-1784074877048.png} (100%) rename docs/assets/{icon1-6f7c222f-balabala-1784045078568.png => icon1-6f7c222f-balabala-1784074877048.png} (100%) rename docs/assets/{icon2-4f77ccec-balabala-1784045078568.png => icon2-4f77ccec-balabala-1784074877048.png} (100%) rename docs/assets/{index-0ef0ebc0-balabala-1784045078568.css => index-026acc61-balabala-1784074877048.css} (95%) rename docs/assets/{index-089a3dd0-balabala-1784045078568.css => index-089a3dd0-balabala-1784074877048.css} (100%) delete mode 100644 docs/assets/index-11333eca-balabala-1784045078568.css rename docs/assets/{index-148a2898-balabala-1784045078568.css => index-148a2898-balabala-1784074877048.css} (100%) rename docs/assets/{index-1784045078568.js => index-1784074877048.js} (99%) create mode 100644 docs/assets/index-1e2d518b-1784074877048.js rename docs/assets/{index-27149dbd-1784045078568.js => index-1f5d6021-1784074877048.js} (96%) delete mode 100644 docs/assets/index-24c07d59-1784045078568.js create mode 100644 docs/assets/index-2bde92c2-balabala-1784074877048.css rename docs/assets/{index-c45f03eb-1784045078568.js => index-2fb6adee-1784074877048.js} (98%) create mode 100644 docs/assets/index-3536e98d-1784074877048.js rename docs/assets/{index-41d168c2-balabala-1784045078568.css => index-41d168c2-balabala-1784074877048.css} (100%) rename docs/assets/{index-f6dff886-1784045078568.js => index-514021a4-1784074877048.js} (97%) rename docs/assets/{index-86616eb2-balabala-1784045078568.css => index-53046bee-balabala-1784074877048.css} (99%) rename docs/assets/{index-5afedc21-balabala-1784045078568.css => index-5afedc21-balabala-1784074877048.css} (100%) rename docs/assets/{index-a8767fd0-balabala-1784045078568.css => index-5e7a407c-balabala-1784074877048.css} (97%) rename docs/assets/{index-ad1f9dba-1784045078568.js => index-65b45d6f-1784074877048.js} (89%) delete mode 100644 docs/assets/index-6a8ef8cf-1784045078568.js create mode 100644 docs/assets/index-6bbec7d3-1784074877048.js rename docs/assets/{index-6e1f3341-balabala-1784045078568.css => index-6e1f3341-balabala-1784074877048.css} (100%) rename docs/assets/{index-bb5d6c3e-1784045078568.js => index-6e825f4c-1784074877048.js} (96%) create mode 100644 docs/assets/index-7362f308-1784074877048.js rename docs/assets/{index-41e40dbf-1784045078568.js => index-7950c07e-1784074877048.js} (62%) rename docs/assets/{index-7c335907-balabala-1784045078568.css => index-7c335907-balabala-1784074877048.css} (100%) rename docs/assets/{index-8d752fbe-balabala-1784045078568.css => index-8d752fbe-balabala-1784074877048.css} (100%) rename docs/assets/{index-9b7a4b9d-balabala-1784045078568.css => index-95e82452-balabala-1784074877048.css} (97%) create mode 100644 docs/assets/index-b4ec1ae2-1784074877048.js create mode 100644 docs/assets/index-bc047bb3-1784074877048.js delete mode 100644 docs/assets/index-c252ce06-1784045078568.js rename docs/assets/{index-c36df85d-balabala-1784045078568.css => index-c36df85d-balabala-1784074877048.css} (100%) create mode 100644 docs/assets/index-cc777d69-balabala-1784074877048.css delete mode 100644 docs/assets/index-e02d03a3-1784045078568.js delete mode 100644 docs/assets/index-e174cf85-balabala-1784045078568.css delete mode 100644 docs/assets/index-e4881302-1784045078568.js rename docs/assets/{index-e9f36657-1784045078568.js => index-e9f36657-1784074877048.js} (100%) rename docs/assets/{index-2f522628-1784045078568.js => index-f9f2c8d7-1784074877048.js} (96%) delete mode 100644 docs/assets/index-fe56ccaa-1784045078568.js rename docs/assets/{index.esm.min-43166a2f-1784045078568.js => index.esm.min-469b3f53-1784074877048.js} (99%) rename docs/assets/{layout-b708cd9c-balabala-1784045078568.css => layout-b708cd9c-balabala-1784074877048.css} (100%) rename docs/assets/{leaf-7be9efef-balabala-1784045078568.png => leaf-7be9efef-balabala-1784074877048.png} (100%) rename docs/assets/{left-kuang-5d6bd1ae-balabala-1784045078568.svg => left-kuang-5d6bd1ae-balabala-1784074877048.svg} (100%) rename docs/assets/{live-scene-1-7846500b-1784045078568.js => live-scene-1-69301bfb-1784074877048.js} (99%) rename docs/assets/{live-scene-1-786cdd0a-balabala-1784045078568.png => live-scene-1-786cdd0a-balabala-1784074877048.png} (100%) rename docs/assets/{livestockData-36ec0ae2-1784045078568.js => livestockData-36ec0ae2-1784074877048.js} (100%) rename docs/assets/{menu-btn-91a961cf-balabala-1784045078568.png => menu-btn-91a961cf-balabala-1784074877048.png} (100%) rename docs/assets/{menu-btn-hover-62eba0bb-balabala-1784045078568.png => menu-btn-hover-62eba0bb-balabala-1784074877048.png} (100%) rename docs/assets/{ocean-bg-8c848b8f-balabala-1784045078568.png => ocean-bg-8c848b8f-balabala-1784074877048.png} (100%) rename docs/assets/{openApi-528034ce-1784045078568.js => openApi-7e2310e1-1784074877048.js} (99%) rename docs/assets/{park-ee0533e0-balabala-1784045078568.png => park-ee0533e0-balabala-1784074877048.png} (100%) rename docs/assets/{pathLine2-d4134d4b-balabala-1784045078568.png => pathLine2-d4134d4b-balabala-1784074877048.png} (100%) rename docs/assets/{right-kuang-b1937caf-balabala-1784045078568.svg => right-kuang-b1937caf-balabala-1784074877048.svg} (100%) rename docs/assets/{ring2-a1b91808-balabala-1784045078568.png => ring2-a1b91808-balabala-1784074877048.png} (100%) rename docs/assets/{ring3-fe0f60d7-balabala-1784045078568.png => ring3-fe0f60d7-balabala-1784074877048.png} (100%) rename docs/assets/{ring4-f2e324d6-balabala-1784045078568.png => ring4-f2e324d6-balabala-1784074877048.png} (100%) rename docs/assets/{rotationBorder1-2ce8e0ef-balabala-1784045078568.png => rotationBorder1-2ce8e0ef-balabala-1784074877048.png} (100%) rename docs/assets/{rotationBorder2-7496b968-balabala-1784045078568.png => rotationBorder2-7496b968-balabala-1784074877048.png} (100%) rename docs/assets/{saoguang-ccf84a88-balabala-1784045078568.svg => saoguang-ccf84a88-balabala-1784074877048.svg} (100%) rename docs/assets/{screen2Standard-98cd5b6c-1784045078568.js => screen2Standard-9c6af3a2-1784074877048.js} (99%) rename docs/assets/{screen2Standard-cdb21878-balabala-1784045078568.css => screen2Standard-cdb21878-balabala-1784074877048.css} (100%) rename docs/assets/{stack-7a426057-balabala-1784045078568.png => stack-7a426057-balabala-1784074877048.png} (100%) rename docs/assets/{title-zs1-c15a5ee8-balabala-1784045078568.svg => title-zs1-c15a5ee8-balabala-1784074877048.svg} (100%) rename docs/assets/{town-f8c0c9cc-balabala-1784045078568.png => town-f8c0c9cc-balabala-1784074877048.png} (100%) rename docs/assets/{townshipBoundaries-1b068bef-1784045078568.js => townshipBoundaries-1b068bef-1784074877048.js} (100%) rename docs/assets/{xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png => xiangfa-breeding-base-03c7f2cb-balabala-1784074877048.png} (100%) rename docs/assets/{yakApi-9c3a9777-1784045078568.js => yakApi-16bd23bc-1784074877048.js} (98%) rename docs/assets/{yield-66e9af79-balabala-1784045078568.png => yield-66e9af79-balabala-1784074877048.png} (100%) diff --git a/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2 b/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784074877048.woff2 similarity index 100% rename from docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2 rename to docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784074877048.woff2 diff --git a/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf b/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784074877048.ttf similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf rename to docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784074877048.ttf diff --git a/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff b/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784074877048.woff similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff rename to docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784074877048.woff diff --git a/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2 b/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784074877048.woff2 similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2 rename to docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784074877048.woff2 diff --git a/docs/assets/FeatureInfoPanel-84703f43-balabala-1784045078568.css b/docs/assets/FeatureInfoPanel-84703f43-balabala-1784074877048.css similarity index 100% rename from docs/assets/FeatureInfoPanel-84703f43-balabala-1784045078568.css rename to docs/assets/FeatureInfoPanel-84703f43-balabala-1784074877048.css diff --git a/docs/assets/FeatureInfoPanel-8e9f606e-1784074877048.js b/docs/assets/FeatureInfoPanel-8e9f606e-1784074877048.js new file mode 100644 index 0000000..2773a0b --- /dev/null +++ b/docs/assets/FeatureInfoPanel-8e9f606e-1784074877048.js @@ -0,0 +1,3 @@ +var Qn=Object.defineProperty,et=Object.defineProperties;var at=Object.getOwnPropertyDescriptors;var fn=Object.getOwnPropertySymbols;var nt=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var bn=(b,G,p)=>G in b?Qn(b,G,{enumerable:!0,configurable:!0,writable:!0,value:p}):b[G]=p,me=(b,G)=>{for(var p in G||(G={}))nt.call(G,p)&&bn(b,p,G[p]);if(fn)for(var p of fn(G))tt.call(G,p)&&bn(b,p,G[p]);return b},Ye=(b,G)=>et(b,at(G));import{g as _,o as t,c as s,j as N,F as x,y as $,a as r,t as o,J as P,n as M,q as st,h as lt,w as La,C as Je,B as I,x as Ta,f as E,s as xn,H as kn,e as ye,T as rt,d as fe}from"./index-1784074877048.js";import{K as ca,M as ut}from"./screen2Standard-9c6af3a2-1784074877048.js";import{_ as ot}from"./index-1f5d6021-1784074877048.js";import{d as it,e as wn}from"./townshipBoundaries-1b068bef-1784074877048.js";const ct={key:0,class:"business-stat-empty"},dt=["data-chart-tooltip"],_t={class:"business-stat-rank"},vt={class:"business-stat-main"},pt={class:"business-stat-name"},gt={class:"business-stat-bar"},ht={class:"business-stat-value"},yt={key:0},$n={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(b){const G=b,p=_(()=>{const L=G.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...L,1)});function Ie(L){const D=Number(L.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/p.value*100))}function be(L){const D=(L==null?void 0:L.value)===void 0||(L==null?void 0:L.value)===null||(L==null?void 0:L.value)===""?"--":L.value,f=(L==null?void 0:L.unit)||"",S=[`数值:${D}${f}`];return L!=null&&L.extra&&S.push(String(L.extra)),[(L==null?void 0:L.name)||"数据",...S].join(` +`)}return(L,D)=>(t(),s("div",{class:M(["business-stat-list",{"is-compact":b.compact,"is-dense":b.rows.length>10}])},[b.rows.length?N("",!0):(t(),s("div",ct,"暂无业务统计数据")),(t(!0),s(x,null,$(b.rows,(f,S)=>(t(),s("div",{key:f.key||f.name,class:"business-stat-row","data-chart-tooltip":be(f)},[r("div",_t,o(S+1),1),r("div",vt,[r("div",pt,o(f.name),1),r("div",gt,[r("span",{style:P({width:`${Ie(f)}%`})},null,4)])]),r("div",ht,[r("strong",null,o(f.value),1),r("em",null,o(f.unit),1),f.extra?(t(),s("span",yt,o(f.extra),1)):N("",!0)])],8,dt))),128))],2))}};const ft={key:0,class:"business-panel-empty"},bt={key:2,class:"business-metrics"},xt=["data-chart-tooltip"],kt={key:3,class:"business-icon-metrics"},wt=["data-chart-tooltip"],$t={class:"business-icon-metric-copy"},jt={key:0},Mt={key:4,class:"business-spotlight"},Nt=["data-chart-tooltip"],St={class:"business-spotlight-side"},Ct=["data-chart-tooltip"],Lt={key:0},Tt={key:1,class:"business-panel-empty"},Pt={key:0,class:"business-ring-visual"},qt={class:"business-ring-chart",viewBox:"0 0 160 160",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},At=["stroke","stroke-dasharray","stroke-dashoffset","data-chart-tooltip"],zt={class:"business-ring-inner"},Ft={key:1,class:"business-donut-visual"},Vt={class:"business-three-pie-center"},Bt={class:"business-donut-legend"},Rt=["data-chart-tooltip"],mt={key:1,class:"business-panel-empty"},Yt={class:"business-rose-visual"},It={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Gt={class:"business-rose-guides"},Kt=["x1","y1","x2","y2","stroke"],Wt={class:"business-rose-segments"},Dt=["d","fill","stroke","data-chart-tooltip"],Ut={class:"business-rose-labels"},Ot=["x","y","text-anchor"],Ht={class:"business-donut-legend business-rose-legend"},Xt=["data-chart-tooltip"],Et={key:1,class:"business-panel-empty"},Jt={key:7,class:"business-structure"},Zt={class:"business-structure-overview"},Qt={class:"business-structure-band"},es=["title","data-chart-tooltip"],as={class:"business-structure-list"},ns=["data-chart-tooltip"],ts={key:1,class:"business-panel-empty"},ss={key:8,class:"business-capacity"},ls=["data-chart-tooltip"],rs={class:"business-capacity-band"},us=["title","data-chart-tooltip"],os={class:"business-capacity-list"},is=["data-chart-tooltip"],cs=["data-chart-tooltip"],ds={key:1,class:"business-panel-empty"},_s=["data-chart-tooltip"],vs={key:0,class:"business-bar-rank"},ps={class:"business-bar-name"},gs={class:"business-bar-track"},hs={key:0},ys={key:1},fs={key:0,class:"business-column-trend",viewBox:"0 0 320 90",preserveAspectRatio:"none","aria-hidden":"true"},bs=["points"],xs=["points"],ks=["cx","cy"],ws={key:1,class:"business-column-unit"},$s=["data-hover-value","title","data-chart-tooltip"],js={class:"business-column-value"},Ms={key:0},Ns={key:0,class:"business-project-search"},Ss=["placeholder"],Cs={class:"business-project-frame"},Ls=["tabindex","onClick","onKeydown"],Ts=["title"],Ps={key:0},qs={key:0},As=["onClick","onKeydown"],zs={key:2},Fs=["aria-label"],Vs={key:4},Bs={key:0,class:"business-project-empty"},Rs={key:12,class:"business-project-ledger"},ms={class:"business-project-search"},Ys=["placeholder"],Is={class:"business-project-ledger__summary"},Gs={class:"business-project-ledger__summary-main"},Ks={key:0,class:"business-project-ledger__pager"},Ws=["disabled"],Ds=["disabled"],Us=["tabindex","onClick","onKeydown"],Os={class:"business-project-ledger__info"},Hs=["title"],Xs=["title"],Es=["onClick","onKeydown"],Js={key:1,class:"business-project-ledger__unlocated"},Zs={key:0,class:"business-project-empty"},Qs={key:13,class:"business-spec-grid"},el={class:"business-spec-grid__index"},al=["title"],nl={class:"business-spec-grid__count"},tl={key:0},sl={class:"business-spec-grid__specs"},ll=["title"],rl={key:0},ul={key:0,class:"business-support-matrix__note"},ol={class:"business-support-matrix__head"},il={key:0},cl={class:"business-support-matrix__body"},dl=["title"],_l=["title"],vl={class:"business-table-head"},pl={class:"business-table-body"},gl=["data-chart-tooltip"],hl={class:"business-table-name"},yl={class:"business-table-value"},fl={key:0},bl={class:"business-stack-legend"},xl={key:0,class:"business-stack-unit"},kl={class:"business-stack-chart"},wl=["data-hover-value","title","data-chart-tooltip"],$l={key:0,class:"business-stack-total"},jl={key:0},Ml={class:"business-stack-track"},Nl=["data-chart-tooltip"],Sl={key:0,class:"business-column-unit business-peak-unit"},Cl=["data-hover-value","title","data-chart-tooltip"],Ll={key:0},Tl={key:18,class:"business-line"},Pl={viewBox:"0 0 320 86",preserveAspectRatio:"none","aria-hidden":"true"},ql=["points"],Al=["points"],zl=["cx","cy"],Fl=["cx","cy","onMouseenter"],Vl=["onMouseenter"],Bl={key:0},Rl=["data-chart-tooltip"],ml={class:"business-balance-gauge-head"},Yl={class:"business-balance-gauge-ring"},Il={class:"business-balance-gauge-value"},Gl={key:0},Kl={class:"business-balance-gauge-name"},Wl={key:0,class:"business-balance-gauge-extra"},Dl=["data-chart-tooltip"],Ul={class:"business-gauge-visual"},Ol={viewBox:"0 0 152 96",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Hl=["stroke-dasharray"],Xl={class:"business-gauge-value"},El={key:0},Jl={class:"business-gauge-name"},Zl={key:0,class:"business-gauge-extra"},Ql=["data-chart-tooltip"],er={key:0},ar={class:"business-split-band"},nr=["data-chart-tooltip"],tr={class:"business-split-list"},sr=["data-chart-tooltip"],jn=3e3,kr={__name:"BusinessPanelRenderer",props:{panel:{type:Object,default:()=>({rows:[]})},compact:{type:Boolean,default:!1},columnLabelStandard:{type:Boolean,default:!1},visualVersion:{type:String,default:"legacy"}},emits:["row-select"],setup(b,{emit:G}){const p=b,Ie=G,be=[ca.accentCyan,ca.accentMint,ca.accentWater,ca.accentOrange,"#16b6e8","#a8fbff"],L=["#43d9ff","#46e6ad","#f0c35a","#6ba7ff","#a78bfa","#ff8c78"],D=_(()=>p.visualVersion==="v21"?L:be),f=_(()=>{var e;return((e=p.panel)==null?void 0:e.type)||"rank"}),S=_(()=>{var e;return(((e=p.panel)==null?void 0:e.rows)||[]).filter(a=>a==null?void 0:a.name)}),K=_(()=>S.value.map(e=>Ye(me({},e),{value:F(e)})).filter(e=>e.value>0)),Te=_(()=>S.value.map(e=>F(e)).filter(e=>e>0)),Pa=_(()=>Math.max(...Te.value,1)),X=_(()=>Te.value.reduce((e,a)=>e+a,0)),re=_(()=>S.value.filter(e=>F(e)>0)),Ze=_(()=>{var e;return["raceBar","raceBarNoWrap","raceBarRelaxed","degradation"].includes((e=p.panel)==null?void 0:e.variant)}),z=_(()=>f.value==="line"?S.value.filter(e=>(e==null?void 0:e.value)!==void 0&&(e==null?void 0:e.value)!==null&&(e==null?void 0:e.value)!==""):S.value.filter(e=>F(e)>0)),Ge=_(()=>z.value),Pe=_(()=>f.value!=="column"?"":Ia()),Ke=_(()=>f.value!=="peak"?"":Ia()),_e=_(()=>S.value.filter(e=>F(e)>0)),Qe=_(()=>{var e;return z.value.slice(0,((e=p.panel)==null?void 0:e.limit)||8)}),qe=_(()=>{var e;return S.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=p.panel)==null?void 0:e.limit)||6)}),ae=_(()=>{var e;return S.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=p.panel)==null?void 0:e.limit)||3)}),ne=_(()=>{var e;return((e=p.panel)==null?void 0:e.segments)||[]}),ue=_(()=>S.value.filter(e=>{var a;return Me(e)>0||((a=p.panel)==null?void 0:a.showZero)===!0})),oe=_(()=>Math.max(...ue.value.map(e=>Me(e)),1)),ie=fe(""),xe=fe(null),da=[{key:"name",label:"项目名称",field:"name",width:"45%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"13%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"20%",className:"business-project-col-category"},{key:"scale",label:"规模",field:"value",width:"22%",align:"right",strong:!0,unitField:"unit",className:"business-project-col-scale"}],Ae=_(()=>{var a;return(Array.isArray((a=p.panel)==null?void 0:a.columns)&&p.panel.columns.length?p.panel.columns:da).map((l,v)=>({key:l.key||l.field||`column-${v}`,label:l.label||l.title||l.name||"",field:l.field||l.dataIndex||l.key,fields:l.fields||[],width:l.width,align:l.align,strong:!!l.strong,unit:l.unit,unitField:l.unitField,fallback:l.fallback,format:l.format,icon:l.icon,action:l.action,className:l.className}))}),We=_(()=>{var e;return((e=p.panel)==null?void 0:e.rowSelectOnClick)!==!1}),De=_(()=>{var e;return((e=p.panel)==null?void 0:e.searchPlaceholder)||"搜索项目"}),Ue=_(()=>{var e;return((e=p.panel)==null?void 0:e.emptyText)||"无匹配项目"}),_a=_(()=>{var a;const e=Array.isArray((a=p.panel)==null?void 0:a.searchKeys)?p.panel.searchKeys:[];return e.length?e:[...Ae.value.flatMap(l=>[l.field,...l.fields||[]]),"projectName","category","year","measure","townships","metric"].filter(Boolean)}),J=_(()=>{const e=Ea(ie.value);return e?S.value.filter(a=>Ea(An(a)).includes(e)):zn(S.value)}),Q=fe(1),Oe=_(()=>{var e;return Math.max(1,Number((e=p.panel)==null?void 0:e.pageSize)||15)}),ea=_(()=>J.value),ke=_(()=>Math.max(1,Math.ceil(ea.value.length/Oe.value))),ce=_(()=>{const e=Math.min(Q.value,ke.value),a=Math.max(0,e-1)*Oe.value;return ea.value.slice(a,a+Oe.value)}),va=_(()=>Math.max(1,ce.value.length)),pa=_(()=>{var e;return((e=p.panel)==null?void 0:e.summaryValue)||U(S.value.length)}),ze=_(()=>{var e;return((e=p.panel)==null?void 0:e.summaryLabel)||"条建设台账"}),ga=_(()=>S.value.filter(e=>e==null?void 0:e.canLocate).length),ha=_(()=>S.value.filter(e=>e==null?void 0:e.name)),aa=_(()=>S.value.filter(e=>e==null?void 0:e.name)),He=_(()=>{var e;return!!((e=p.panel)!=null&&e.showTotal)}),ve=_(()=>S.value.find(e=>["forage-total","wetland-yield-total"].includes(e.key))||S.value[0]),Fe=_(()=>S.value.filter(e=>["forage-edible","forage-unavailable","wetland-yield-edible","wetland-yield-unavailable"].includes(e.key))),we=_(()=>S.value.find(e=>["forage-top-town","wetland-yield-top-town"].includes(e.key))),$e=fe(0),Z=fe(null),je=fe(null),u=fe(!0),i=fe({visible:!1,x:0,y:0,title:"",lines:[]});let d=null,k=null;const w=_(()=>{var e,a;return`${((e=p.panel)==null?void 0:e.key)||((a=p.panel)==null?void 0:a.title)||"pie"}-${K.value.map(l=>`${l.name}:${l.value}`).join("|")}`}),C=_(()=>{const v=typeof window=="undefined"?1920:window.innerWidth,y=typeof window=="undefined"?1080:window.innerHeight,g=Math.min(v-190-8,i.value.x+14),j=Math.min(y-82-8,i.value.y+14);return{left:`${Math.max(8,g)}px`,top:`${Math.max(8,j)}px`}}),h=_(()=>{const e=m.value;return e?$e.value%e:0}),m=_(()=>{var e;return f.value==="structure"?_e.value.length:f.value==="donut"||f.value==="rose"?K.value.length:f.value==="bar"&&((e=p.panel)==null?void 0:e.variant)==="capacity"?Fe.value.length:f.value==="bar"||f.value==="column"?z.value.length:f.value==="table"?Ge.value.length:f.value==="line"?z.value.length:f.value==="balanceGaugeGrid"?ae.value.length:f.value==="gauge"?qe.value.length:f.value==="stackColumn"?ue.value.length:f.value==="split"?re.value.length:0}),Y=_(()=>K.value[h.value]||K.value[0]);_(()=>_e.value[h.value]||_e.value[0]);const W=_(()=>S.value[0]),pe=_(()=>S.value.slice(0,4).map((e,a)=>Ye(me({},e),{icon:Hn(e,a)}))),Ve=_(()=>_e.value.map((e,a)=>Ye(me({},e),{displayIndex:a}))),ya=_(()=>{var e;return f.value!=="donut"?"standard":((e=p.panel)==null?void 0:e.variant)==="ring"?"ring":"three"}),Mn=_(()=>{const e=K.value,a=e.length;if(!a)return[];const l=52,v=2*Math.PI*l,y=e.reduce((q,V)=>q+F(V),0)||1,g=a>1?Math.min(12,Math.max(7,v*.028)):0;let j=0;return e.map((q,V)=>{const H=F(q)/y*v,ee=a>1?Math.max(5,H-g):v,Ce=j+(a>1?g/2:0);return j+=H,{key:q.key||q.name||V,index:V,item:q,color:R(V),dasharray:`${ee.toFixed(2)} ${v.toFixed(2)}`,dashoffset:`${(-Ce).toFixed(2)}`}})}),fa=_(()=>{const e=K.value,a=e.length;if(!a)return[];const l=Math.max(...e.map(g=>F(g)),1),v=360/a,y=Math.min(8,v*.16);return e.map((g,j)=>{const q=F(g),V=j===h.value,T=36+Math.sqrt(q/l)*31+(V?5:0),H=17,ee=-90+j*v+y/2,Ce=-90+(j+1)*v-y/2,Le=(ee+Ce)/2,ua=Se(75,75,T+3,Le),oa=Se(75,75,T+15,Le),ia=Se(75,75,T+20,Le);return{key:g.key||g.name||j,index:j,item:g,color:R(j),path:On(75,75,H,T,ee,Ce),lineStart:ua,lineEnd:oa,label:ia,anchor:Math.cos(Le*Math.PI/180)>=0?"start":"end"}})});st(()=>{En(),Sa()}),lt(()=>{Jn(),Ca()}),La(()=>{var e;return[(e=p.panel)==null?void 0:e.key,S.value.length]},()=>{$e.value=0,Z.value=null,ie.value="",Q.value=1,xe.value=null,la(),Sa()}),La(ie,()=>{Q.value=1}),La(u,()=>{Sa()});const te=_(()=>{const e=z.value,a=320,l=66,v=10,y=e.length>1?a/(e.length-1):a,g=e.map(T=>F(T)).filter(T=>Number.isFinite(T)&&T>=0),j=g.length?Math.min(...g):0,q=g.length?Math.max(...g):1,V=Math.max(q-j,q*.08,1);return e.map((T,H)=>{const ee=F(T);return{x:Math.round(H*y),y:Math.round(v+l-(ee-j)/V*l),item:T}})}),qa=_(()=>te.value.map(e=>`${e.x},${e.y}`).join(" ")),Nn=_(()=>te.value.length?`0,86 ${qa.value} 320,86`:""),Aa=_(()=>{var e,a;return f.value==="column"&&(((e=p.panel)==null?void 0:e.lineOverlay)===!0||((a=p.panel)==null?void 0:a.variant)==="trendColumn")&&z.value.length>1}),ba=_(()=>{if(!Aa.value)return[];const e=z.value,a=e.map(T=>F(T)).filter(T=>Number.isFinite(T)&&T>=0),l=Math.max(...a,1),v=Math.min(...a,0),y=Math.max(l-v,l*.08,1),g=320,j=9,q=67,V=e.length>1?g/(e.length-1):0;return e.map((T,H)=>{const ee=F(T);return{key:T.key||T.name||H,x:Number((H*V).toFixed(2)),y:Number((j+q-(ee-v)/y*q).toFixed(2))}})}),za=_(()=>ba.value.map(e=>`${e.x},${e.y}`).join(" ")),Sn=_(()=>ba.value.length?`0,82 ${za.value} 320,82`:""),Fa=_(()=>z.value),Va=_(()=>({gridTemplateColumns:`repeat(${Math.max(Fa.value.length,1)}, minmax(0, 1fr))`})),Ba=_(()=>Number.isInteger(Z.value)?te.value[Z.value]:null),Ra=_(()=>te.value.length?Number.isInteger(Z.value)?Z.value:h.value:0),Be=_(()=>Ba.value?Ba.value:te.value[Ra.value]||te.value[0]),Cn=_(()=>{const e=Be.value;if(!e)return{};const a=e.x/320*100;return{left:`${Math.min(84,Math.max(16,a))}%`,top:"6px",transform:"translateX(-50%)"}});function F(e){const a=Number(e==null?void 0:e.value);if(!Number.isNaN(a)&&a>0)return a;const l=Number(e==null?void 0:e.percent);return Number.isNaN(l)?0:l}function Me(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return ne.value.reduce((l,v)=>l+(Number(a[v.key])||0),0)}function ma(e){const a=Me(e),l=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return a?ne.value.map((v,y)=>{var q,V,T;const g=Number(l[v.key])||0,j=((q=p.panel)==null?void 0:q.variant)==="dual"||((V=p.panel)==null?void 0:V.variant)==="parkSlim"||((T=p.panel)==null?void 0:T.sharedScale)===!0?oe.value:a;return Ye(me({},v),{value:g,percent:Math.max(g>0?3:0,g/Math.max(j,1)*100),color:Ya(v,y)})}):[]}function Ya(e,a){var l;return(l=p.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:R(a)}function U(e){const a=Number(e);return Number.isNaN(a)?"--":Number.isInteger(a)?`${a}`:`${Number(a.toFixed(2))}`}function A(e){return(e==null?void 0:e.displayValue)!==void 0&&(e==null?void 0:e.displayValue)!==null&&(e==null?void 0:e.displayValue)!==""?e.displayValue:(e==null?void 0:e.value)===void 0||(e==null?void 0:e.value)===null||(e==null?void 0:e.value)===""?"--":U(e.value)}function ge(e){var v;const a=(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||"";if(!a)return"";const l=String((v=A(e))!=null?v:"");return l&&l.endsWith(String(a))?"":a}function Ia(){const e=[...new Set(z.value.map(a=>(a==null?void 0:a.displayUnit)||(a==null?void 0:a.unit)).filter(Boolean))];return e.length===1?e[0]:""}function Ga(e){const a=ge(e);return a?Pe.value===a?"":a:""}function Ka(e){const a=ge(e);return a?Ke.value===a?"":a:""}function he(e){return String(e||"").trim().replace(/\s+/g,"").replace(/[乡镇]$/u,"")}function Ln(e){return Array.from(he(e)).slice(0,3).join("")}function na(e){var a;return((a=p.panel)==null?void 0:a.labelMode)==="horizontal"?he(e):p.columnLabelStandard?Ln(e):he(e)}function ta(e){const a=he(e==null?void 0:e.name)||"数据",l=ge(e);return`${a}:${A(e)}${l}`}function xa(e,a=[]){return[he(e)||"数据",...a.filter(l=>l!=null&&String(l).trim()!=="").map(l=>String(l))].join(` +`)}function O(e,a=[]){if(!e)return"";const l=ge(e),v=A(e),y=[];return v!=="--"&&y.push(`数值:${v}${l}`),e.extra&&y.push(String(e.extra)),xa(e.name,[...y,...a])}function sa(e){return O(e,[`占比:${Na(e)}`])}function Wa(e){return O(e,[`占比:${ja(e)}`])}function Da(e){return O(e,[`占比:${Ma(e)}`])}function Tn(e){var y;const a=Ne(e),l=ma(e).filter(g=>g.value>0).map(g=>`${g.name}:${g.valuePrefix||""}${U(g.value)}${a}`),v=((y=p.panel)==null?void 0:y.totalLabel)||"合计";return xa(e==null?void 0:e.name,[`${v}:${ka(e)}${U(Me(e))}${a}`,...l])}function Pn(e,a){const l=Ne(e);return xa(`${he(e==null?void 0:e.name)} ${(a==null?void 0:a.name)||""}`,[`数值:${(a==null?void 0:a.valuePrefix)||""}${U((a==null?void 0:a.value)||0)}${l}`])}function Ua(e){return O(e,[`状态:${$a(e)}`])}function Oa(e){const a=X.value?`${U(F(e)/X.value*100)}%`:"--";return O(e,[`占比:${a}`])}function qn(e){var y,g,j;const a=(g=(y=e.target)==null?void 0:y.closest)==null?void 0:g.call(y,"[data-chart-tooltip], [data-hover-value]");if(!a||!((j=je.value)!=null&&j.contains(a))){la();return}const l=a.getAttribute("data-chart-tooltip")||a.getAttribute("data-hover-value")||"",v=String(l).split(/\n+/).map(q=>q.trim()).filter(Boolean);if(!v.length){la();return}i.value={visible:!0,x:e.clientX,y:e.clientY,title:v[0],lines:v.slice(1)}}function la(){i.value.visible&&(i.value={visible:!1,x:0,y:0,title:"",lines:[]})}function Ha(e){const a=he(e==null?void 0:e.name)||"数据",l=Ne(e);return`${a}:${ka(e)}${U(Me(e))}${l}`}function Ne(e){var a;return(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||((a=p.panel)==null?void 0:a.unit)||""}function ka(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return ne.value.some(l=>(l==null?void 0:l.valuePrefix)&&Number(a[l.key])>0)?"≥":""}function Xa(){var e,a,l;return((e=p.panel)==null?void 0:e.showValue)===!0||((a=p.panel)==null?void 0:a.variant)==="dual"||((l=p.panel)==null?void 0:l.variant)==="parkSlim"}function Ea(e){return String(e||"").trim().toLowerCase()}function An(e){const a=_a.value.map(l=>Ja(e,{field:l})).filter(l=>l!=null);return[e==null?void 0:e.searchText,...a].filter(Boolean).join(" ")}function zn(e=[]){var l;const a=Number((l=p.panel)==null?void 0:l.maxRows);return!Number.isFinite(a)||a<=0?e:e.slice(0,a)}function Ja(e,a){const l=[a==null?void 0:a.field,...(a==null?void 0:a.fields)||[]].filter(Boolean);for(const v of l){const y=String(v).split(".").reduce((g,j)=>g==null?void 0:g[j],e);if(y!=null&&y!=="")return y}}function Xe(e,a){const l=Ja(e,a);if((a==null?void 0:a.format)==="townVillage"){const v=String((e==null?void 0:e.town)||"").trim(),y=String((e==null?void 0:e.village)||"").trim();return[v,y].filter(Boolean).join(" / ")||(a==null?void 0:a.fallback)||"--"}return l==null||l===""?(a==null?void 0:a.fallback)||"--":(a==null?void 0:a.format)==="number"?U(l):(a==null?void 0:a.format)==="displayValue"?A({value:l}):String(l)}function Za(e,a){return a!=null&&a.unitField&&(e!=null&&e[a.unitField])?e[a.unitField]:(a==null?void 0:a.unit)||""}function Qa(e){return{"business-project-name":(e==null?void 0:e.key)==="name","business-project-locate":(e==null?void 0:e.key)==="locate","is-right":(e==null?void 0:e.align)==="right","is-center":(e==null?void 0:e.align)==="center","is-strong":e==null?void 0:e.strong}}function wa(e,a={}){(a==null?void 0:a.action)==="locate"&&se(e,!0)}function se(e,a=!1){!a&&!We.value||(e==null?void 0:e.canLocate)!==!1&&(xe.value=(e==null?void 0:e.key)||(e==null?void 0:e.name)||null,Ie("row-select",e))}function en(e=0){const a=Q.value+Number(e||0);Q.value=Math.max(1,Math.min(ke.value,a))}function an(e={}){return e.ledgerName||e.name||"--"}function nn(e={}){return e.ledgerLocation||[e.town,e.village].filter(Boolean).join(" · ")||"--"}function tn(e={},a={}){var v,y,g,j;const l=Number((j=(g=(v=e==null?void 0:e.segments)==null?void 0:v[a.key])!=null?g:(y=e==null?void 0:e.values)==null?void 0:y[a.key])!=null?j:0);return!Number.isFinite(l)||l<=0?"—":`${(a==null?void 0:a.valuePrefix)||""}${U(l)}`}function sn(e={}){const a=ne.value.map(y=>{var g,j,q,V;return Number((V=(q=(g=e==null?void 0:e.segments)==null?void 0:g[y.key])!=null?q:(j=e==null?void 0:e.values)==null?void 0:j[y.key])!=null?V:0)}),l=a.reduce((y,g)=>y+(Number.isFinite(g)&&g>0?g:0),0);return l?`${ne.value.some((y,g)=>(y==null?void 0:y.valuePrefix)&&a[g]>0)?"≥":""}${U(l)}`:"—"}function Fn(e){const a=e==null?void 0:e.currentTarget;if(!a||a.scrollWidth<=a.clientWidth)return;e.preventDefault();const l=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;a.scrollLeft+=l}function Re(e){var g,j;const a=Number(e==null?void 0:e.scaleValue);if(!(f.value==="column"&&((g=p.panel)==null?void 0:g.variant)==="plain")&&!Number.isNaN(a)&&a>0)return Math.max(8,Math.min(100,Math.round(a)));const v=F(e);if(!v)return 8;const y=f.value==="column"&&((j=p.panel)==null?void 0:j.variant)==="plain"?Math.max(...Te.value,v):Pa.value;return Math.max(8,Math.round(v/y*100))}function Vn(e,a){const l=Re(e),v=Math.max(.04,Math.min(.1,l/360));return{"--heat-color":R(a),"--heat-bg":de(R(a),v)}}function le(e){const a=Number(e==null?void 0:e.value);return Number.isFinite(a)?a:0}function Bn(){var l;const e=Number((l=p.panel)==null?void 0:l.max);if(Number.isFinite(e)&&e>0)return e;const a=Math.max(...qe.value.map(v=>le(v)),100);return Math.max(a,100)}function ln(e){const a=le(e),l=Bn();return!l||a<=0?0:Number(Math.min(100,a/l*100).toFixed(1))}function Rn(e){return Number((-180+ln(e)*1.8).toFixed(1))}function mn(e,a){var l;return(l=p.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:R(a)}function Yn(e){const a=Math.max(0,le(e)),l=Math.max(5,...ae.value.map(v=>Math.max(0,le(v))));return Math.max(6,Math.min(100,Number((a/l*100).toFixed(1))))}function In(e){const a=le(e),l=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return a>20||/严重|重度|高超载/.test(l)?"#8bf7ff":a>10||/中度|预警/.test(l)?"#48cfff":a>5||/轻度/.test(l)?"#b9fbff":a<=0||/总体可控|合理|正常|达标|无超载/.test(l)?"#24f6c4":"#30dcff"}function Gn(e){return{"--balance-color":In(e),"--balance-progress":`${Yn(e)}%`}}function $a(e){if(e!=null&&e.status||e!=null&&e.level)return e.status||e.level;const a=le(e);return a<0?"合理":a<=5?"基本实现草畜平衡":a<=10?"轻度超载":a>100?"高超载":"超载预警"}function de(e,a=.2){const l=String(e||"").replace("#","");if(l.length!==6)return`rgba(48, 220, 255, ${a})`;const v=parseInt(l,16),y=v>>16&255,g=v>>8&255,j=v&255;return`rgba(${y}, ${g}, ${j}, ${a})`}function Kn(e){const a=te.value.length;if(!a)return;const l=e.currentTarget.getBoundingClientRect(),v=l.width?(e.clientX-l.left)/l.width:0,y=Math.min(a-1,Math.max(0,Math.round(v*(a-1))));Z.value=y}function Wn(e){const a=F(e);return!X.value||!a?0:Math.max(6,a/X.value*100)}function rn(e){const a=F(e);return!X.value||!a?0:Math.max(2,a/X.value*100)}function ja(e){if(!e)return"--";if(e.extra)return e.extra;const a=F(e);return!X.value||!a?"--":`${U(a/X.value*100)}%`}function un(){const e=F(ve.value);return e>0?e:Fe.value.reduce((a,l)=>a+F(l),0)}function Dn(e){const a=un(),l=F(e);return!a||!l?0:Math.max(6,l/a*100)}function Ma(e){const a=un(),l=F(e);return!a||!l?"--":`${U(l/a*100)}%`}function ra(e,a){return["forage-edible","wetland-yield-edible"].includes(e==null?void 0:e.key)?"#24f6c4":["forage-unavailable","wetland-yield-unavailable"].includes(e==null?void 0:e.key)?"#8bf7ff":R(a)}function Na(e){const a=F(e),l=Number(e==null?void 0:e.count)||X.value;return!a||!l?"0%":`${U(a/l*100)}%`}function Un(e){const a=F(e),l=Number(e==null?void 0:e.count)||X.value;return!a||!l?0:a/l*100}function Se(e,a,l,v){const y=v*Math.PI/180;return{x:Number((e+l*Math.cos(y)).toFixed(2)),y:Number((a+l*Math.sin(y)).toFixed(2))}}function On(e,a,l,v,y,g){const j=Se(e,a,v,y),q=Se(e,a,v,g),V=Se(e,a,l,g),T=Se(e,a,l,y),H=g-y>180?1:0;return[`M ${j.x} ${j.y}`,`A ${v} ${v} 0 ${H} 1 ${q.x} ${q.y}`,`L ${V.x} ${V.y}`,`A ${l} ${l} 0 ${H} 0 ${T.x} ${T.y}`,"Z"].join(" ")}function R(e){return D.value[e%D.value.length]}function Ee(e,a={}){var l;return(l=p.panel)!=null&&l.preserveColors&&(a!=null&&a.color||a!=null&&a.fillColor)?a.color||a.fillColor:R(e)}function Hn(e,a){if(e!=null&&e.icon)return String(e.icon).replace(/[^a-z0-9-]/gi,"");const l=String((e==null?void 0:e.name)||"");return l.includes("利用率")||l.includes("占比")?"rate":l.includes("重度")||l.includes("退化")?"risk":l.includes("可食")||l.includes("供给")?"leaf":l.includes("不可")?"stack":l.includes("产量")||l.includes("鲜草")?"yield":l.includes("乡镇")?"town":l.includes("面积")?"area":["yield","leaf","rate","risk"][a%4]}function Xn(){Ca();const e=m.value;u.value&&(e<2||(d=window.setInterval(()=>{$e.value=($e.value+1)%e},jn)))}function Sa(){u.value?Xn():Ca()}function Ca(){d&&(window.clearInterval(d),d=null)}function En(){on(),!(!je.value||typeof window.IntersectionObserver!="function")&&(k=new IntersectionObserver(e=>{const a=e[0];u.value=!!(a!=null&&a.isIntersecting)&&cn()}),k.observe(je.value),window.requestAnimationFrame(on))}function Jn(){var e;(e=k==null?void 0:k.disconnect)==null||e.call(k),k=null}function on(){u.value=cn()}function cn(){const e=je.value;return e?!!(e.offsetParent||e.getClientRects().length):!0}function dn(e,a={}){const l=Ee(e,a);return`linear-gradient(90deg, ${de(l,.08)} 0%, ${de(l,.58)} 48%, ${l} 82%, rgba(248,255,255,0.86) 100%)`}function Zn(e,a={}){var v,y;if(((v=p.panel)==null?void 0:v.variant)==="water"){const g=Ee(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.92) 0%, ${de(g,.88)} 18%, ${de(g,.68)} 58%, rgba(47, 151, 255, 0.18) 100%)`}if(((y=p.panel)==null?void 0:y.variant)==="plain"){const g=Ee(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${de(g,.84)} 18%, ${de(g,.64)} 74%, ${de(g,.1)} 100%)`}const l=Ee(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${l} 18%, ${de(l,.62)} 72%, rgba(50, 220, 255, 0.08) 100%)`}return(e,a)=>{var l,v,y,g,j,q,V,T,H,ee,Ce,Le,ua,oa,ia,_n,vn,pn,gn,hn,yn;return t(),s("div",{ref_key:"panelRef",ref:je,class:M(["business-panel",[`is-${f.value}`,`is-${ya.value}`,`is-${b.visualVersion}`,{"is-compact":b.compact,"is-column-label-standard":b.columnLabelStandard,"is-column-label-horizontal":((l=p.panel)==null?void 0:l.labelMode)==="horizontal"}]]),onMousemove:qn,onMouseleave:la},[S.value.length?f.value==="rank"?(t(),Je($n,{key:1,rows:S.value,compact:""},null,8,["rows"])):f.value==="metric"?(t(),s("div",bt,[(t(!0),s(x,null,$(S.value.slice(0,4),n=>(t(),s("div",{key:n.key||n.name,class:"business-metric-item","data-chart-tooltip":O(n)},[r("span",null,o(n.name),1),r("strong",null,o(A(n)),1),r("em",null,o(n.unit),1)],8,xt))),128))])):f.value==="iconMetric"?(t(),s("div",kt,[(t(!0),s(x,null,$(pe.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-icon-metric-item",`is-tone-${c%D.value.length}`]),"data-chart-tooltip":O(n)},[r("i",{class:M(["business-icon-metric-mark",`is-${n.icon}`])},[...a[6]||(a[6]=[r("span",null,null,-1)])],2),r("div",$t,[r("span",null,o(n.name),1),r("strong",null,[I(o(A(n)),1),n.unit?(t(),s("em",jt,o(n.unit),1)):N("",!0)])])],10,wt))),128))])):f.value==="spotlight"?(t(),s("div",Mt,[W.value?(t(),s(x,{key:0},[r("div",{class:"business-spotlight-main","data-chart-tooltip":O(W.value)},[r("span",null,o(W.value.name),1),r("strong",null,[I(o(A(W.value)),1),r("em",null,o(W.value.unit),1)]),r("small",null,o(W.value.extra||((v=b.panel)==null?void 0:v.note)||"核心业务指标"),1)],8,Nt),r("div",St,[(t(!0),s(x,null,$(S.value.slice(1,4),(n,c)=>(t(),s("div",{key:n.key||n.name,class:"business-spotlight-chip","data-chart-tooltip":O(n)},[r("i",{style:P({borderColor:R(c+1)})},null,4),r("span",null,o(n.name),1),r("strong",null,[I(o(A(n)),1),r("em",null,o(n.unit),1)]),n.extra?(t(),s("small",Lt,o(n.extra),1)):N("",!0)],8,Ct))),128))])],64)):(t(),s("div",Tt,"暂无业务统计数据"))])):f.value==="donut"?(t(),s("div",{key:5,class:M(["business-donut",[`is-variant-${ya.value}`,{"is-dense":K.value.length>5}]])},[K.value.length?(t(),s(x,{key:0},[ya.value==="ring"?(t(),s("div",Pt,[(t(),s("svg",qt,[a[7]||(a[7]=r("circle",{class:"business-ring-halo",cx:"80",cy:"80",r:"39"},null,-1)),a[8]||(a[8]=r("circle",{class:"business-ring-track",cx:"80",cy:"80",r:"52"},null,-1)),(t(!0),s(x,null,$(Mn.value,n=>(t(),s("circle",{key:n.key,class:M(["business-ring-segment",{"is-active":n.index===h.value}]),cx:"80",cy:"80",r:"52",stroke:n.color,"stroke-dasharray":n.dasharray,"stroke-dashoffset":n.dashoffset,style:P({color:n.color}),"data-chart-tooltip":sa(n.item)},null,14,At))),128))])),r("div",zt,[r("strong",null,o(Na(Y.value)),1),r("span",null,o(((y=Y.value)==null?void 0:y.name)||"结构占比"),1)])])):(t(),s("div",Ft,[(t(),Je(ut,{key:w.value,data:K.value,delay:jn,colors:D.value,opacity:.62,class:"business-three-pie"},{default:Ta(({data:n})=>[r("div",Vt,[r("strong",null,o(Na(n)),1),r("span",null,o((n==null?void 0:n.name)||"结构占比"),1)])]),_:1},8,["data","colors"]))])),r("div",Bt,[(t(!0),s(x,null,$(K.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-donut-row",{"is-active":c===h.value}]),style:P({"--row-color":R(c),"--row-percent":`${Math.max(4,Un(n))}%`}),"data-chart-tooltip":sa(n)},[r("i",{style:P({borderColor:R(c)})},null,4),r("span",null,o(n.name),1),r("strong",null,o(A(n)),1),r("em",null,o(n.unit),1)],14,Rt))),128))])],64)):(t(),s("div",mt,"暂无业务统计数据"))],2)):f.value==="rose"?(t(),s("div",{key:6,class:M(["business-rose",{"is-dense":K.value.length>5}])},[K.value.length?(t(),s(x,{key:0},[r("div",Yt,[(t(),s("svg",It,[r("g",Gt,[(t(!0),s(x,null,$(fa.value,n=>(t(),s("line",{key:`guide-${n.key}`,x1:n.lineStart.x,y1:n.lineStart.y,x2:n.lineEnd.x,y2:n.lineEnd.y,stroke:n.color},null,8,Kt))),128))]),r("g",Wt,[(t(!0),s(x,null,$(fa.value,n=>(t(),s("path",{key:n.key,class:M(["business-rose-segment",{"is-active":n.index===h.value}]),d:n.path,fill:n.color,stroke:n.color,"data-chart-tooltip":sa(n.item)},null,10,Dt))),128))]),a[9]||(a[9]=r("circle",{class:"business-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),a[10]||(a[10]=r("circle",{class:"business-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r("g",Ut,[(t(!0),s(x,null,$(fa.value,n=>(t(),s("text",{key:`label-${n.key}`,x:n.label.x,y:n.label.y,"text-anchor":n.anchor},o(n.item.name),9,Ot))),128))])]))]),r("div",Ht,[(t(!0),s(x,null,$(K.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-donut-row business-rose-row",{"is-active":c===h.value}]),"data-chart-tooltip":sa(n)},[r("i",{style:P({borderColor:R(c),background:R(c),color:R(c)})},null,4),r("span",null,o(n.name),1),r("strong",null,o(A(n)),1),r("em",null,o(n.unit),1)],10,Xt))),128))])],64)):(t(),s("div",Et,"暂无业务统计数据"))],2)):f.value==="structure"?(t(),s("div",Jt,[_e.value.length?(t(),s(x,{key:0},[r("div",Zt,[r("div",Qt,[(t(!0),s(x,null,$(_e.value,(n,c)=>(t(),s("i",{key:n.key||n.name,class:M({"is-active":c===h.value}),style:P({width:`${rn(n)}%`,background:R(c),color:R(c)}),title:`${n.name}:${A(n)}${n.unit||""} ${ja(n)}`,"data-chart-tooltip":Wa(n)},null,14,es))),128))])]),r("div",as,[(t(!0),s(x,null,$(Ve.value,n=>(t(),s("div",{key:n.key||n.name,class:M(["business-structure-row",{"is-active":n.displayIndex===h.value}]),style:P({"--row-color":R(n.displayIndex),"--row-percent":`${Math.max(4,rn(n))}%`}),"data-chart-tooltip":Wa(n)},[r("i",{style:P({background:R(n.displayIndex),color:R(n.displayIndex)})},null,4),r("span",null,o(n.name),1),r("strong",null,[I(o(A(n)),1),r("em",null,o(n.unit),1)]),r("small",null,o(ja(n)),1)],14,ns))),128))])],64)):(t(),s("div",ts,"暂无业务统计数据"))])):f.value==="bar"&&((g=b.panel)==null?void 0:g.variant)==="capacity"?(t(),s("div",ss,[ve.value?(t(),s(x,{key:0},[r("div",{class:"business-capacity-head","data-chart-tooltip":O(ve.value)},[r("span",null,o(ve.value.name),1),r("strong",null,[I(o(A(ve.value)),1),r("em",null,o(ve.value.unit),1)])],8,ls),r("div",rs,[(t(!0),s(x,null,$(Fe.value,(n,c)=>(t(),s("i",{key:n.key||n.name,class:M({"is-active":c===h.value}),style:P({width:`${Dn(n)}%`,background:ra(n,c),color:ra(n,c)}),title:`${n.name}:${A(n)}${n.unit||""} ${Ma(n)}`,"data-chart-tooltip":Da(n)},null,14,us))),128))]),r("div",os,[(t(!0),s(x,null,$(Fe.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-capacity-row",{"is-active":c===h.value}]),"data-chart-tooltip":Da(n)},[r("i",{style:P({background:ra(n,c),color:ra(n,c)})},null,4),r("span",null,o(n.name),1),r("strong",null,[I(o(A(n)),1),r("em",null,o(n.unit),1)]),r("small",null,o(Ma(n)),1)],10,is))),128))]),we.value?(t(),s("div",{key:0,class:"business-capacity-town","data-chart-tooltip":O(we.value)},[r("span",null,o(we.value.name),1),r("strong",null,[I(o(A(we.value)),1),r("em",null,o(we.value.unit),1)])],8,cs)):N("",!0)],64)):(t(),s("div",ds,"暂无业务统计数据"))])):f.value==="bar"?(t(),s("div",{key:9,class:M(["business-bars",{"is-dense":z.value.length>=5,"is-long":z.value.length>10,"is-scrollable":z.value.length>10,"is-single":((j=b.panel)==null?void 0:j.span)===1,"is-distribution":((q=b.panel)==null?void 0:q.variant)==="distribution","is-capacity":((V=b.panel)==null?void 0:V.variant)==="capacity","is-rank-bar":((T=b.panel)==null?void 0:T.variant)==="rankBar","is-park-bar":((H=b.panel)==null?void 0:H.variant)==="parkBar","is-race-bar":Ze.value,"is-few-rows":Ze.value&&z.value.length<=3,"is-degradation":((ee=b.panel)==null?void 0:ee.variant)==="degradation","is-race-nowrap":((Ce=b.panel)==null?void 0:Ce.variant)==="raceBarNoWrap","is-race-relaxed":((Le=b.panel)==null?void 0:Le.variant)==="raceBarRelaxed"}]),style:P({"--bar-row-count":Math.max(z.value.length,1)}),onWheel:a[0]||(a[0]=E(()=>{},["stop"]))},[(t(!0),s(x,null,$(z.value,(n,c)=>{var B;return t(),s("div",{key:n.key||n.name,class:M(["business-bar-row",{"is-active":c===h.value}]),style:P({"--bar-color":Ee(c,n)}),"data-chart-tooltip":O(n)},[((B=b.panel)==null?void 0:B.variant)==="rankBar"?(t(),s("span",vs,o(c+1),1)):N("",!0),r("span",ps,o(n.name),1),r("div",gs,[r("i",{style:P({width:`${Re(n)}%`,background:dn(c,n)})},null,4)]),r("strong",null,[I(o(A(n))+" ",1),n.unit?(t(),s("em",hs,o(n.unit),1)):N("",!0),n.extra?(t(),s("small",ys,o(n.extra),1)):N("",!0)])],14,_s)}),128))],38)):f.value==="column"?(t(),s("div",{key:10,class:M(["business-columns",[`is-variant-${((ua=b.panel)==null?void 0:ua.variant)||"solid"}`,{"is-dense":z.value.length>6,"is-scrollable":z.value.length>6&&((oa=b.panel)==null?void 0:oa.scrollable)!==!1,"has-unit-label":!!Pe.value}]]),onWheel:E(Fn,["stop"])},[Aa.value?(t(),s("svg",fs,[r("polyline",{class:"business-column-trend-area",points:Sn.value},null,8,bs),r("polyline",{class:"business-column-trend-line",points:za.value},null,8,xs),(t(!0),s(x,null,$(ba.value,n=>(t(),s("circle",{key:n.key,class:"business-column-trend-dot",cx:n.x,cy:n.y,r:"2.3"},null,8,ks))),128))])):N("",!0),Pe.value?(t(),s("small",ws,"单位:"+o(Pe.value),1)):N("",!0),(t(!0),s(x,null,$(z.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-column-item",{"is-active":c===h.value,"is-zero":(n==null?void 0:n.zero)===!0||(n==null?void 0:n.isZero)===!0}]),"data-hover-value":ta(n),title:ta(n),"data-chart-tooltip":O(n)},[r("div",{class:"business-column-track",style:P({"--column-percent":`${Re(n)}%`})},[r("i",{style:P({height:`${Re(n)}%`,background:Zn(c,n),"--column-load-delay":`${c*.075}s`})},null,4),r("strong",js,[I(o(A(n)),1),Ga(n)?(t(),s("em",Ms,o(Ga(n)),1)):N("",!0)])],4),r("span",null,o(na(n.name)),1)],10,$s))),128))],34)):f.value==="projectTable"?(t(),s("div",{key:11,class:M(["business-project-table",{"is-without-search":((ia=b.panel)==null?void 0:ia.showSearch)===!1,"is-fill-rows":((_n=b.panel)==null?void 0:_n.fillRows)===!0}])},[((vn=b.panel)==null?void 0:vn.showSearch)!==!1?(t(),s("div",Ns,[xn(r("input",{"onUpdate:modelValue":a[1]||(a[1]=n=>ie.value=n),type:"search",placeholder:De.value},null,8,Ss),[[kn,ie.value]])])):N("",!0),r("div",Cs,[r("table",null,[r("colgroup",null,[(t(!0),s(x,null,$(Ae.value,n=>(t(),s("col",{key:n.key,class:M(n.className),style:P({width:n.width||void 0})},null,6))),128))]),r("thead",null,[r("tr",null,[(t(!0),s(x,null,$(Ae.value,n=>(t(),s("th",{key:n.key,class:M(Qa(n))},o(n.label),3))),128))])]),r("tbody",null,[(t(!0),s(x,null,$(J.value,n=>(t(),s("tr",{key:n.key||n.name,class:M({"is-active":xe.value===(n.key||n.name)}),tabindex:We.value?0:-1,onClick:c=>se(n),onKeydown:[ye(E(c=>se(n),["prevent"]),["enter"]),ye(E(c=>se(n),["prevent"]),["space"])]},[(t(!0),s(x,null,$(Ae.value,c=>(t(),s("td",{key:c.key,class:M(Qa(c)),title:Xe(n,c)},[c.strong?(t(),s("strong",Ps,[I(o(Xe(n,c)),1),Za(n,c)?(t(),s("em",qs,o(Za(n,c)),1)):N("",!0)])):c.action==="locate"&&n.canLocate?(t(),s("button",{key:1,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:E(B=>wa(n,c),["stop"]),onKeydown:[ye(E(B=>wa(n,c),["stop","prevent"]),["enter"]),ye(E(B=>wa(n,c),["stop","prevent"]),["space"])]},[...a[11]||(a[11]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,As)):c.action==="locate"?(t(),s("span",zs,"--")):c.icon&&Xe(n,c)!=="--"?(t(),s("span",{key:3,class:M(["business-project-cell-icon",`business-project-cell-icon--${c.icon}`]),role:"img","aria-label":Xe(n,c)},null,10,Fs)):(t(),s("span",Vs,o(Xe(n,c)),1))],10,Ts))),128))],42,Ls))),128))])]),J.value.length?N("",!0):(t(),s("div",Bs,o(Ue.value),1))])],2)):f.value==="projectLedger"?(t(),s("div",Rs,[r("div",ms,[xn(r("input",{"onUpdate:modelValue":a[2]||(a[2]=n=>ie.value=n),type:"search",placeholder:De.value},null,8,Ys),[[kn,ie.value]])]),r("div",Is,[r("div",Gs,[r("strong",null,o(pa.value),1),r("span",null,o(ze.value),1)]),r("small",null,"已定位 "+o(ga.value)+" 处",1),ke.value>1?(t(),s("div",Ks,[r("button",{type:"button",class:"business-project-ledger__page-button is-previous",title:"上一页","aria-label":"上一页",disabled:Q.value<=1,onClick:a[3]||(a[3]=n=>en(-1))},[...a[12]||(a[12]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Ws),r("span",null,o(Q.value)+" / "+o(ke.value),1),r("button",{type:"button",class:"business-project-ledger__page-button is-next",title:"下一页","aria-label":"下一页",disabled:Q.value>=ke.value,onClick:a[4]||(a[4]=n=>en(1))},[...a[13]||(a[13]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Ds)])):N("",!0)]),r("div",{class:"business-project-ledger__list business-project-frame",style:P({"--ledger-row-count":va.value})},[(t(!0),s(x,null,$(ce.value,n=>(t(),s("div",{key:n.key||n.name,class:M(["business-project-ledger__row",{"is-active":xe.value===(n.key||n.name),"is-locatable":n.canLocate,"is-unlocated":n.canLocate===!1}]),tabindex:n.canLocate?0:-1,onClick:c=>se(n),onKeydown:[ye(E(c=>se(n),["prevent"]),["enter"]),ye(E(c=>se(n),["prevent"]),["space"])]},[r("div",Os,[r("strong",{title:an(n)},o(an(n)),9,Hs),r("div",null,[r("span",{title:nn(n)},o(nn(n)),9,Xs)])]),n.canLocate?(t(),s("button",{key:0,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:E(c=>se(n,!0),["stop"]),onKeydown:[ye(E(c=>se(n,!0),["stop","prevent"]),["enter"]),ye(E(c=>se(n,!0),["stop","prevent"]),["space"])]},[...a[14]||(a[14]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,Es)):(t(),s("span",Js,"暂无坐标"))],42,Us))),128)),ce.value.length?N("",!0):(t(),s("div",Zs,o(Ue.value),1))],4)])):f.value==="specGrid"?(t(),s("div",Qs,[(t(!0),s(x,null,$(ha.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:"business-spec-grid__row"},[r("span",el,o(String(c+1).padStart(2,"0")),1),r("span",{class:"business-spec-grid__name",title:n.name},o(n.name),9,al),r("strong",nl,[I(o(A(n)),1),n.unit?(t(),s("em",tl,o(n.unit),1)):N("",!0)]),r("div",sl,[(t(!0),s(x,null,$(n.specs||[],B=>(t(),s("span",{key:B.label,title:`${B.label} ${U(B.value)}${B.unit||""}`},[r("small",null,o(B.label),1),r("strong",null,[I(o(U(B.value)),1),B.unit?(t(),s("em",rl,o(B.unit),1)):N("",!0)])],8,ll))),128))])]))),128))])):f.value==="supportMatrix"?(t(),s("div",{key:14,class:M(["business-support-matrix",{"is-with-total":He.value}])},[(pn=b.panel)!=null&&pn.note?(t(),s("small",ul,o(b.panel.note),1)):N("",!0),r("div",ol,[a[15]||(a[15]=r("span",null,"乡镇",-1)),He.value?(t(),s("span",il,o(((gn=b.panel)==null?void 0:gn.totalLabel)||"合计"),1)):N("",!0),(t(!0),s(x,null,$(ne.value,n=>(t(),s("span",{key:n.key},o(n.headerName||n.name),1))),128))]),r("div",cl,[(t(!0),s(x,null,$(aa.value,n=>(t(),s("div",{key:n.key||n.name},[r("span",null,o(he(n.name)),1),He.value?(t(),s("strong",{key:0,class:"business-support-matrix__total",title:sn(n)},o(sn(n)),9,dl)):N("",!0),(t(!0),s(x,null,$(ne.value,c=>(t(),s("strong",{key:c.key,title:tn(n,c)},o(tn(n,c)),9,_l))),128))]))),128))])],2)):f.value==="table"?(t(),s("div",{key:15,class:M(["business-table",{"is-dense":Ge.value.length>8}])},[r("div",vl,[(t(),s(x,null,$(2,n=>r("div",{key:n,class:"business-table-head-group"},[...a[16]||(a[16]=[r("span",null,"乡镇",-1),r("span",null,"亩产",-1)])])),64))]),r("div",pl,[(t(!0),s(x,null,$(Ge.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-table-row",{"is-active":c===h.value}]),"data-chart-tooltip":O(n)},[r("span",hl,o(n.name),1),r("div",yl,[r("strong",null,[I(o(A(n)),1),n.unit?(t(),s("em",fl,o(n.unit),1)):N("",!0)]),r("i",null,[r("b",{style:P({width:`${Re(n)}%`,background:dn(c)})},null,4)])])],10,gl))),128))])],2)):f.value==="stackColumn"?(t(),s("div",{key:16,class:M(["business-stack-columns",[`is-variant-${((hn=b.panel)==null?void 0:hn.variant)||"standard"}`,{"is-dense":ue.value.length>6,"is-with-values":Xa()}]])},[r("div",bl,[(t(!0),s(x,null,$(ne.value,(n,c)=>(t(),s("span",{key:n.key||n.name},[r("i",{style:P({background:Ya(n,c)})},null,4),I(o(n.name),1)]))),128)),Ne(ue.value[0])?(t(),s("small",xl,"单位:"+o(Ne(ue.value[0])),1)):N("",!0)]),r("div",kl,[(t(!0),s(x,null,$(ue.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-stack-item",{"is-active":c===h.value}]),"data-hover-value":Ha(n),title:Ha(n),"data-chart-tooltip":Tn(n)},[Xa()&&Me(n)>0?(t(),s("strong",$l,[I(o(ka(n))+o(U(Me(n))),1),Ne(n)?(t(),s("em",jl,o(Ne(n)),1)):N("",!0)])):N("",!0),r("div",Ml,[(t(!0),s(x,null,$(ma(n),(B,gr)=>(t(),s("i",{key:B.key||B.name,style:P({height:`${B.percent}%`,background:B.color,color:B.color}),"data-chart-tooltip":Pn(n,B)},null,12,Nl))),128))]),r("span",null,o(na(n.name)),1)],10,wl))),128))])],2)):f.value==="peak"?(t(),s("div",{key:17,class:M(["business-peaks",{"is-dense":z.value.length>5}])},[Ke.value?(t(),s("small",Sl,"单位:"+o(Ke.value),1)):N("",!0),(t(!0),s(x,null,$(z.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:"business-peak-item",style:P({"--peak-height":`${Re(n)}%`,"--peak-color":R(c)}),"data-hover-value":ta(n),title:ta(n),"data-chart-tooltip":O(n)},[r("strong",null,[I(o(A(n)),1),Ka(n)?(t(),s("em",Ll,o(Ka(n)),1)):N("",!0)]),a[17]||(a[17]=r("div",{class:"business-peak-stage"},[r("i")],-1)),r("span",null,o(na(n.name)),1)],12,Cl))),128))],2)):f.value==="line"?(t(),s("div",Tl,[r("div",{class:"business-line-chart",onMousemove:Kn,onMouseleave:a[5]||(a[5]=n=>Z.value=null)},[(t(),s("svg",Pl,[a[18]||(a[18]=r("path",{class:"business-line-grid",d:"M0 18H320M0 44H320M0 70H320"},null,-1)),r("polyline",{class:"business-line-area",points:Nn.value},null,8,ql),r("polyline",{class:"business-line-stroke",points:qa.value},null,8,Al),(t(!0),s(x,null,$(te.value,(n,c)=>(t(),s("circle",{key:c,cx:n.x,cy:n.y,r:"3",class:M(["business-line-dot",{"is-active":c===Ra.value}])},null,10,zl))),128)),(t(!0),s(x,null,$(te.value,(n,c)=>(t(),s("circle",{key:`hit-${c}`,cx:n.x,cy:n.y,r:"13",class:"business-line-hit",onMouseenter:B=>Z.value=c},null,40,Fl))),128))])),r("div",{class:"business-line-hover-zones",style:P(Va.value)},[(t(!0),s(x,null,$(te.value,(n,c)=>(t(),s("i",{key:`zone-${c}`,onMouseenter:B=>Z.value=c},null,40,Vl))),128))],4),Be.value?(t(),s("div",{key:0,class:"business-line-tooltip",style:P(Cn.value)},[r("span",null,o(Be.value.item.name),1),r("strong",null,[I(o(A(Be.value.item)),1),Be.value.item.unit?(t(),s("em",Bl,o(Be.value.item.unit),1)):N("",!0)])],4)):N("",!0)],32),r("div",{class:"business-line-labels",style:P(Va.value)},[(t(!0),s(x,null,$(Fa.value,n=>(t(),s("span",{key:n.key||n.name},o(na(n.name)),1))),128))],4)])):f.value==="balanceGaugeGrid"?(t(),s("div",{key:19,class:M(["business-balance-gauge-grid",{"is-single":ae.value.length===1}])},[(t(!0),s(x,null,$(ae.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-balance-gauge-card",{"is-active":c===h.value}]),style:P(Gn(n)),"data-chart-tooltip":Ua(n)},[r("div",ml,[r("strong",null,o($a(n)),1)]),r("div",Yl,[r("div",Il,[r("strong",null,o(A(n)),1),ge(n)?(t(),s("em",Gl,o(ge(n)),1)):N("",!0)])]),r("div",Kl,o(n.name),1),n.extra?(t(),s("div",Wl,o(n.extra),1)):N("",!0)],14,Rl))),128))],2)):f.value==="gauge"?(t(),s("div",{key:20,class:M(["business-gauges",{"is-dense":qe.value.length>3}])},[(t(!0),s(x,null,$(qe.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:M(["business-gauge-item",{"is-active":c===h.value,"is-safe":le(n)<=0,"is-low-rate":le(n)>0&&le(n)<5,"is-alert":le(n)>100}]),style:P({"--gauge-color":mn(n,c),"--needle-rotate":`${Rn(n)}deg`}),"data-chart-tooltip":Ua(n)},[r("div",Ul,[(t(),s("svg",Ol,[a[19]||(a[19]=r("path",{class:"business-gauge-track",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100"},null,-1)),r("path",{class:"business-gauge-progress",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100","stroke-dasharray":`${ln(n)} 100`},null,8,Hl),a[20]||(a[20]=r("path",{class:"business-gauge-glow",d:"M38 76 A38 38 0 0 1 114 76"},null,-1))])),a[21]||(a[21]=r("i",{class:"business-gauge-needle"},null,-1)),a[22]||(a[22]=r("b",{class:"business-gauge-pivot"},null,-1)),r("div",Xl,[r("strong",null,[I(o(A(n)),1),ge(n)?(t(),s("em",El,o(ge(n)),1)):N("",!0)]),r("small",null,o($a(n)),1)])]),r("span",Jl,o(n.name),1),n.extra?(t(),s("small",Zl,o(n.extra),1)):N("",!0)],14,Dl))),128))],2)):f.value==="heat"?(t(),s("div",{key:21,class:M(["business-heat",{"is-dense":Qe.value.length>6}])},[(t(!0),s(x,null,$(Qe.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:"business-heat-cell",style:P(Vn(n,c)),"data-chart-tooltip":O(n)},[a[23]||(a[23]=r("i",null,null,-1)),r("span",null,o(n.name),1),r("strong",null,[I(o(A(n)),1),n.unit?(t(),s("em",er,o(n.unit),1)):N("",!0)])],12,Ql))),128))],2)):f.value==="split"?(t(),s("div",{key:22,class:M(["business-split",{"is-dense":re.value.length>8||((yn=b.panel)==null?void 0:yn.variant)==="compact"}])},[r("div",ar,[(t(!0),s(x,null,$(re.value,(n,c)=>(t(),s("i",{key:n.key||n.name,style:P({width:`${Wn(n)}%`,background:R(c)}),"data-chart-tooltip":Oa(n)},null,12,nr))),128))]),r("div",tr,[(t(!0),s(x,null,$(re.value,(n,c)=>(t(),s("div",{key:n.key||n.name,class:"business-split-row","data-chart-tooltip":Oa(n)},[r("span",null,[r("i",{style:P({background:R(c)})},null,4),I(o(n.name),1)]),r("strong",null,o(A(n))+o(n.unit),1)],8,sr))),128))])],2)):(t(),Je($n,{key:23,rows:S.value,compact:""},null,8,["rows"])):(t(),s("div",ft,"暂无业务统计数据")),(t(),Je(rt,{to:"body"},[i.value.visible?(t(),s("div",{key:0,class:M(["business-chart-tooltip",`is-${b.visualVersion}`]),style:P(C.value)},[r("strong",null,o(i.value.title),1),(t(!0),s(x,null,$(i.value.lines,n=>(t(),s("span",{key:n},o(n),1))),128))],6)):N("",!0)]))],34)}}};const lr={class:"feature-info-actions"},rr={key:0},ur=["aria-label","title"],or={class:"feature-info"},ir={key:0,class:"feature-info-state",role:"status","aria-live":"polite"},cr={key:1,class:"feature-info-state",role:"status"},dr={key:2,class:"feature-info-state",role:"status"},_r={key:0,class:"feature-table"},vr=["title"],pr={key:1,class:"feature-info-state is-inline"},wr={__name:"FeatureInfoPanel",props:{feature:{type:Object,default:null},empty:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},height:{type:Number,default:380},width:{type:Number,default:430},title:{type:String,default:"详情"},compactGrassland:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:["close"],setup(b,{emit:G}){const p=b,Ie=G,be=_(()=>p.title||"详情"),L=_(()=>be.value.replace(/详情$/,"")||"要素"),D=_(()=>`已选${L.value}`),f=_(()=>`关闭${be.value}`),S=[[["townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在乡镇"],[["village_name","cunName","cun_name","cun","c_name","cmc"],"所在村"],[["full_name"],"所在区域"],[["area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"图斑面积"]],K=[[["investigator"],"调查人"],[["survey_time","dc_rq","sjnf","delimitation_year"],"调查时间"],[["adjust_opinion_name"],"调整意见"],[["adjust_reason"],"调整原因"]],Te=[[["pastureName","pasture_name"],"所属牧场"],[["recognizedYakCount","recognized_yak_count","yakCount","yak_count"],"牦牛数量"],[["acreage","area_mu","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"草地面积"],[["grasslandAreaMu","grassland_area_mu"],"草地面积"],[["wetlandAreaMu","wetland_area_mu"],"湿地面积"],[["otherAreaMu","other_area_mu"],"其他面积"],[["resourceFreshMuYield","resource_fresh_mu_yield"],"综合鲜草亩产"],[["resourceDryMuYield","resource_dry_mu_yield"],"综合干草亩产"],[["grasslandVegetationCover","grassland_vegetation_cover"],"草地植被盖度"],[["fullName","full_name","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在区域"]],X={"artificial-grassland":[[["plot_name","name"],"图斑名称"],[["town","town_name"],"所在乡镇"],[["plot_category"],"图斑类别"],[["data_status"],"数据状态"],[["source_type"],"资料类型"],[["data_source"],"数据来源"]],woodland:[[["dlmc","layer_class_name"],"地类名称"],...S,[["qsdwmc"],"权属单位"],[["zldwmc"],"坐落单位"],[["lin_ban"],"林班"],[["xiao_ban"],"小班"],[["ld_qs","tdsyqs","qsxz","ownership_name","ownership"],"土地权属"],[["gjgyl_bhdj","bh_dj","protection_level_name","protection_level"],"保护等级"],[["sen_lin_lb","forest_type"],"森林类别"],[["lin_zhong","forest_category"],"林种"],[["zl_dj","quality_level_name","quality_level"],"质量等级"],[["you_shi_sz","tree_species","dominant_tree_species"],"优势树种"],[["qi_yuan","origin"],"起源"],[["ling_zu"],"龄组"],[["yu_bi_du"],"郁闭度"],[["pingjun_sg"],"平均树高"],[["mei_gq_zs"],"每公顷株数"],[["mei_gq_xj"],"每公顷蓄积"],[["huo_lm_xj"],"活立木蓄积"],[["sheng_wu_l"],"生物量"],[["tan_chu_l"],"碳储量"],[["stqwmc"],"生态区位"],[["po_du","slope"],"坡度"],[["po_wei"],"坡位"],[["tu_ceng_hd","soil_depth"],"土层厚度"],...K],grassland:[...Te,[["pastureName","pasture_name"],"所属牧场"],...S,[["land_class_name","landUseName","land_use_name","landUse","land_use"],"地类名称"],[["landType","land_type"],"资源大类"],[["resourceType","resource_type"],"资源类别"],[["grasslandCategory","grassland_category_name","grassland category","base_grass"],"草原类别"],[["basic_type_name"],"基本草原类型"],[["grassTypeName","grass_type_name","grassland_type_name","grassType","grass_type"],"草原类"],[["grassMinType","grass_min_type"],"草原型"],[["grasslandLevelName","grassland_level_name","grasslandLevel","grassland_level","level_name","level"],"草原级别"],[["degradationLevelName","degradation_level_name","degradationLevel","degradation_level"],"退化等级"],[["vegetationStructureName","vegetation_structure_name","vegetationStructure","vegetation_structure"],"植被结构"],[["vegetationCover","vegetation_cover"],"植被盖度"],[["lbmjbl"],"裸斑面积比例"],[["dominanceLevel","dominance_level"],"优势度"],[["dominantGrassSpecies","dominant_grass_species"],"优势草种"],[["functionalCategory","functional_category"],"功能类别"],[["xcYield","xc_yield"],"鲜草产量"],[["xcMuYield","xc_mu_yield","xbXcMuYield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["xbXcYield","xb_xc_yield"],"小班鲜草产量"],[["xbXcMuYield","xb_xc_mu_yield"],"小班鲜草亩产"],[["gcYield","gc_yield"],"干草产量"],[["gcMuYield","gc_mu_yield","xbGcMuYield","xb_gc_mu_yield"],"干草亩产"],[["xbGcYield","xb_gc_yield"],"小班干草产量"],[["xbGcMuYield","xb_gc_mu_yield"],"小班干草亩产"],[["elevation"],"海拔"],[["landformName","landform_name","landform"],"地貌"],[["slope"],"坡度"],[["aspect"],"坡向"],[["soilDepth","soil_depth","tu_ceng_hd"],"土层厚度"],[["soil texture"],"土壤质地"],[["sddl"],"三调地类"],[["hqlm"],"划区轮牧"],[["cdsyq"],"草地所有权"],[["cdsyq2"],"草地使用权"],[["cdjjq"],"草地经营权"],...K],wetland:[[["grass_min_type","grassland_category_name","grassland_type_name","land_class_name","land_use_name"],"湿地类型"],...S,[["grass_type_name","grass_type"],"湿地草地型"],[["grassland_level_name","grassland_level","level_name","level"],"湿地级别"],[["vegetation_structure_name","vegetation_structure"],"植被结构"],[["vegetation_cover"],"植被盖度"],[["dominant_grass_species"],"优势草种"],[["functional_category"],"功能类别"],[["xc_yield","xb_xc_yield"],"鲜草产量"],[["xc_mu_yield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["edible_xc_yield"],"可食鲜草产量"],[["edible_xc_mu_yield"],"可食鲜草亩产"],[["gc_yield","xb_gc_yield"],"干草产量"],[["elevation"],"海拔"],[["landform_name","landform"],"地貌"],[["soil_depth","tu_ceng_hd"],"土层厚度"],...K],ecological:[[["type"],"管控分区"],[["project_name","projectName","name"],"项目名称"],[["project_category","projectCategory"],"项目类型"],[["company"],"实施单位"],[["leader"],"负责人"],[["project_status","projectStatus","status"],"项目状态"],[["full_name","fullName"],"所在区域"],[["address"],"项目地址"],[["measure_type"],"措施类型"],[["feature_role"],"要素类型"],[["township"],"涉及乡镇"],[["year"],"建设年份"],[["progress_count","progressCount"],"进度记录"],[["totalAcreage"],"总面积"],[["cdAcreage"],"草地面积"],[["sdAcreage"],"湿地面积"],[["area_mu"],"治理面积"],[["length_meter"],"工程长度"],[["cdScl"],"草地生产力"],[["sdScl"],"湿地生产力"],[["geometry_type"],"几何类型"]]},re={land_type:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},landType:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},vegetation_structure:{1:"草本型"},landform:{2:"平原",5:"中山",6:"高山"},land_use:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},sddl:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},ld_qs:{10:"集体林地",20:"国有或其他"},qsxz:{10:"集体林地",20:"国有或其他"},tdsyqs:{10:"集体林地",20:"国有或其他"},gjgyl_bhdj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},bh_dj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},zl_dj:{2:"二级质量",3:"三级质量",4:"四级质量",5:"五级质量"},po_wei:{1:"脊部",2:"上坡",3:"中坡",4:"下坡",5:"谷地",6:"平地"}},Ze=new Set(["lin_zhong","sen_lin_lb","you_shi_sz","qi_yuan","ling_zu","po_xiang","tu_rang_lx","ownership","ownership_name","protection_level","forest_category","forest_type","quality_level","origin","tree_species","dominant_tree_species","base_grass","degradation_level","land_class","grass_type"]),z={xiang:"所在乡镇",xzqdm:"所在乡镇",xzqmc:"所在乡镇",town_code:"所在乡镇",area_code:"所在乡镇",areaCode:"所在乡镇",cun:"所在村",cmc:"所在村",c_name:"所在村",acreage:"图斑面积",mj:"图斑面积",xbmj:"小班面积",tbdlmj:"图斑地类面积",geomj:"图斑面积",tbmj:"图斑面积",shape_area:"图斑面积",area_mu:"图斑面积",pastureName:"所属牧场",pasture_name:"所属牧场",pastureAcreage:"牧场面积",pasture_acreage:"牧场面积",relationAcreage:"关系面积",relation_acreage:"关系面积",pastureOverlapAcreage:"重叠面积",pasture_overlap_acreage:"重叠面积",relatedPastureCount:"关联牧场数",related_pasture_count:"关联牧场数",relatedPastureNames:"关联牧场",related_pasture_names:"关联牧场",yakCount:"牦牛数量",yak_count:"牦牛数量",recognizedYakCount:"牦牛数量",recognized_yak_count:"牦牛数量",grasslandAreaMu:"草地面积",grassland_area_mu:"草地面积",wetlandAreaMu:"湿地面积",wetland_area_mu:"湿地面积",otherAreaMu:"其他面积",other_area_mu:"其他面积",grasslandAreaPercent:"草地占比",grassland_area_percent:"草地占比",wetlandAreaPercent:"湿地占比",wetland_area_percent:"湿地占比",otherAreaPercent:"其他占比",other_area_percent:"其他占比",resourceFreshMuYield:"综合鲜草亩产",resource_fresh_mu_yield:"综合鲜草亩产",resourceDryMuYield:"综合干草亩产",resource_dry_mu_yield:"综合干草亩产",resourceFreshYieldJin:"鲜草产量",resource_fresh_yield_jin:"鲜草产量",resourceDryYieldJin:"干草产量",resource_dry_yield_jin:"干草产量",grasslandVegetationCover:"草地植被盖度",grassland_vegetation_cover:"草地植被盖度",grass_min_type:"草原型",grassMinType:"草原型",grass_type:"草原类",grassType:"草原类",grass_type_name:"草原类",grassTypeName:"草原类",grassland_type_name:"草原类",patch_no:"图斑编号",land_number:"图斑编号",grassland_level:"草原级别",grasslandLevel:"草原级别",grassland_level_name:"草原级别",grasslandLevelName:"草原级别",level:"等级",level_name:"等级",land_class_name:"地类名称",land_use_name:"地类名称",landUseName:"地类名称",landUse:"地类名称",basic_type_name:"草原类型",grassland_category_name:"草原类别",grasslandCategory:"草原类别",degradation_level:"退化等级",degradationLevel:"退化等级",degradation_level_name:"退化等级",degradationLevelName:"退化等级",vegetation_structure:"植被结构",vegetationStructure:"植被结构",vegetation_structure_name:"植被结构",vegetationStructureName:"植被结构",xc_yield:"鲜草产量",xcYield:"鲜草产量",gc_yield:"干草产量",gcYield:"干草产量",xc_mu_yield:"鲜草亩产",xcMuYield:"鲜草亩产",gc_mu_yield:"干草亩产",gcMuYield:"干草亩产",mu_yield:"亩产",edible_xc_yield:"可食鲜草产量",edible_xc_mu_yield:"可食鲜草亩产",dlmc:"地类名称",qsdwmc:"权属单位",zldwmc:"坐落单位",lin_ban:"林班",xiao_ban:"小班",ld_qs:"土地权属",tdsyqs:"土地权属",qsxz:"土地权属",gjgyl_bhdj:"保护等级",bh_dj:"保护等级",sen_lin_lb:"森林类别",lin_zhong:"林种",zl_dj:"质量等级",you_shi_sz:"优势树种",qi_yuan:"起源",cdsyq:"草地所有权",cdsyq2:"草地使用权",cdjjq:"草地经营权",resource_type:"资源类型","grassland category":"草原类别",dominant_grass_species:"优势草种",functional_category:"功能类别",functionalCategory:"功能类别",vegetation_cover:"植被盖度",vegetationCover:"植被盖度",xb_xc_yield:"小班鲜草产量",xbXcYield:"小班鲜草产量",xb_gc_yield:"小班干草产量",xbGcYield:"小班干草产量",base_grass:"基本草原",hqlm:"划区轮牧",elevation:"海拔",soil_depth:"土层厚度","soil texture":"土壤质地",aspect:"坡向",slope:"坡度",landform:"地貌",landform_name:"地貌",sddl:"三调地类",dominance_level:"优势度",investigator:"调查人",survey_time:"调查时间",land_type:"土地类型",landType:"土地类型",status:"状态",type:"类型",xb_gc_mu_yield:"干草亩产",xbGcMuYield:"干草亩产",xb_xc_mu_yield:"鲜草亩产",xbXcMuYield:"鲜草亩产",grass_yield:"草地产量",grassYield:"草地产量",full_name:"所在区域",fullName:"所在区域",gyl_bhlx:"公益林保护类型",ling_zu:"龄组",yu_bi_du:"郁闭度",pingjun_xj:"平均胸径",mei_gq_zs:"每公顷株数",mei_gq_xj:"每公顷蓄积",stqwmc:"生态区位",lyfq:"林业分区",qykz:"区域控制",po_wei:"坡位",tu_rang_zd:"土壤质地",zzsxmc:"主导属性",lin_chang:"林场",di_mao:"地貌",jt_qw:"交通区位",zbfglx:"植被覆盖类型",disaster_c:"灾害类型",dispe:"病虫害",pingjun_sg:"平均树高",huo_lm_xj:"活立木蓄积",sheng_wu_l:"生物量",tan_chu_l:"碳储量",g_cheng_lb:"工程类别",shi_quan_d:"事权等级",sf_tbq:"是否特别区",td_th_lx:"土地退化类型",project_name:"项目名称",projectName:"项目名称",project_category:"项目类型",projectCategory:"项目类型",company:"实施单位",leader:"负责人",project_status:"项目状态",projectStatus:"项目状态",address:"项目地址",conclusion:"工程结论",progress_count:"进度记录",progressCount:"进度记录",measure_type:"措施类型",measureType:"措施类型",feature_role:"要素类型",featureRole:"要素类型",township:"涉及乡镇",year:"建设年份",length_meter:"工程长度",lengthMeter:"工程长度",geometry_type:"几何类型",geometryType:"几何类型",totalAcreage:"总面积",cdAcreage:"草地面积",sdAcreage:"湿地面积",cdScl:"草地生产力",sdScl:"湿地生产力"},Ge=new Set(Object.keys(z)),Pe=new Set(["pingjun_sg","pingjun_xj","mei_gq_zs","mei_gq_xj","huo_lm_xj","sheng_wu_l","tan_chu_l","yu_bi_du","grass_yield","xb_xc_yield","xb_xc_mu_yield","xc_mu_yield","xb_gc_yield","xb_gc_mu_yield","gc_mu_yield"]),Ke=new Set(["xb_xc_yield","xb_gc_yield","grass_yield","gc_yield","xc_yield","yield","output","remark1","remark2","remark3","remark4","remark5","remarks"]),_e=new Set(["full_name","fullName","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town","town_code","areaCode","area_code"]),Qe=new Set(["areaWanMu","area_wan_mu","area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","area_square_meter"]),qe=[...it].sort((u,i)=>i.length-u.length),ae=_(()=>{var u;return((u=p.feature)==null?void 0:u.properties)||{}}),ne=_(()=>{var u,i,d;return((i=(u=p.feature)==null?void 0:u.feature)==null?void 0:i.geometry)||((d=p.feature)==null?void 0:d.geometry)||null}),ue=_(()=>{var d,k;const u=String(((k=(d=p.feature)==null?void 0:d.layer)==null?void 0:k.key)||"").toLowerCase(),i=ae.value;return u.includes("artificial-grassland")||String(i.stageKey||"")==="artificial-grassland"}),oe=_(()=>{var C,h,m,Y,W;const u=String(((C=p.feature)==null?void 0:C.id)||"").toLowerCase(),i=String(((m=(h=p.feature)==null?void 0:h.layer)==null?void 0:m.key)||"").toLowerCase(),d=String(((W=(Y=p.feature)==null?void 0:Y.layer)==null?void 0:W.layerName)||"").toLowerCase(),k=`${i} ${d}`,w=ae.value;return ue.value?"artificial-grassland":k.includes("national-park")||k.includes("restoration")||w.project_name||w.project_category||w.totalAcreage?"ecological":w.dlmc||u.includes("woodland")||u.includes("t_woodland")||k.includes("woodland")?"woodland":k.includes("wetland")||k.includes("shidi")||u.includes("shidi")||w.land_type==="shidi"||w.landType==="shidi"||w.land_type==="湿地"||w.landType==="湿地"||w.land_type===2||w.landType===2||w.landType==="2"?"wetland":k.includes("grassland")||k.includes("caodi")||w.grassland_category_name||w.grasslandCategory||w.basic_type_name||u.includes("caodi")||w.land_type==="caodi"||w.landType==="caodi"||w.land_type===1||w.landType===1||w.landType==="1"?"grassland":"woodland"}),ie=_(()=>{const u=[],i=new Set,k=(oe.value==="grassland"||oe.value==="wetland")&&p.compactGrassland;(k?Te:X[oe.value]||X.woodland).forEach(([h,m])=>{const Y=_a(ae.value,h,We(m),i);Y&&!u.some(W=>W.label===Y.label)&&(u.push(Y),i.add(Y.sourceKey))});const C=Ue(oe.value);return!ue.value&&!u.some(h=>h.label===C||De(h.label))&&Ae(u,i,C,Fe(ne.value),"geometry-area"),k?u.slice(0,10):(Object.entries(ae.value).forEach(([h,m])=>{if(i.has(h)||He(h,m))return;const Y=Q(h,m);if(!J(Y))return;const W=We(z[h]||je(h));u.some(pe=>pe.value===Y||pe.label===W)||(u.push({key:`fallback-${h}`,sourceKey:h,label:W,value:Y}),i.add(h))}),u)}),xe=_(()=>ie.value.map((u,i)=>Ye(me({},u),{displayOrder:da(u,i)})).sort((u,i)=>u.displayOrder-i.displayOrder));function da(u,i){const d=(u==null?void 0:u.label)||"",k=String((u==null?void 0:u.sourceKey)||"").toLowerCase();return["所属牧场","牦牛数量","草场面积","草地面积","湿地面积","林地面积","湿地面积","其他面积","综合鲜草亩产","综合干草亩产","草地植被盖度","所在区域","牧场面积","关系面积","重叠面积","关联牧场数","关联牧场"].includes(d)||["图斑名称","所在乡镇","所在村","所在区域","图斑编号","图斑类别","数据状态","资料类型","数据来源","图斑面积","小班面积","图斑地类面积","地类名称","湿地类型"].includes(d)?i:["基本草原类型","草原类型","草原类","草原型","湿地草地型","草原级别","湿地级别","退化等级","功能类别","保护等级","森林类别","林种","质量等级","优势树种","起源","龄组"].includes(d)?100+i:d.includes("产量")||d.includes("亩产")||d.includes("植被")||d.includes("优势草种")||d.includes("优势度")||d.includes("海拔")||d.includes("地貌")||d.includes("坡")||d.includes("土壤")||d.includes("郁闭度")||d.includes("树高")||d.includes("蓄积")||d.includes("生物量")||d.includes("碳储量")?200+i:d.includes("权属")||d.includes("所有权")||d.includes("使用权")||d.includes("经营权")||d.includes("调查")||d.includes("调整")||d.includes("划区")||d.includes("单位")||k.includes("owner")||k.includes("qsdw")||k.includes("zldw")?300+i:150+i}function Ae(u,i,d,k,w){!J(k)||u.some(C=>C.label===d||C.value===k)||(u.push({key:`static-${w}`,sourceKey:w,label:d,value:k}),i.add(w))}function We(u){return De(u)?Ue(oe.value):u}function De(u){return["图斑面积","图斑地类面积","小班面积"].includes(String(u||""))}function Ue(u){return u==="grassland"||u==="artificial-grassland"?"草地面积":u==="wetland"?"湿地面积":u==="woodland"?"林地面积":"面积"}function _a(u,i,d,k=new Set){for(const w of i)if(!(k.has(w)||aa(w))&&J(u==null?void 0:u[w])){const C=Q(w,u[w]);if(!J(C))continue;return{key:`${d}-${w}`,sourceKey:w,label:d,value:C}}return null}function J(u){return u!=null&&u!==""&&u!==" "&&u!=="null"&&u!=="undefined"}function Q(u,i){var w;if(!J(i))return"";if((w=re[u])!=null&&w[String(i)])return re[u][String(i)];if(_e.has(u))return Oe(u,i);if(["cun","village_code"].includes(u)&&ce(i))return"";if(["grassland_level","grasslandLevel","level"].includes(u)&&va(i))return oe.value==="wetland"?`${Number(i)}级湿地`:`${Number(i)}级草原`;if(Ze.has(u)&&ce(i)||ve(u,i))return"";if(ga(u))return ha(i);if(typeof i=="number"||/^-?\d+(\.\d+)?$/.test(String(i))){const C=Number(i);if(Qe.has(u)&&C===0||C===0&&Pe.has(u))return"";const h=Number.isInteger(C)?`${C}`:`${Number(C.toFixed(2))}`;if(["xbmj","tbdlmj","geomj","area_square_meter"].includes(u))return`${ze(C/666.6667)} 亩`;if(["grasslandAreaMu","grassland_area_mu","wetlandAreaMu","wetland_area_mu","otherAreaMu","other_area_mu"].includes(u)){const Y=(u.startsWith("grassland")?["grasslandAreaPercent","grassland_area_percent"]:u.startsWith("wetland")?["wetlandAreaPercent","wetland_area_percent"]:["otherAreaPercent","other_area_percent"]).map(pe=>{var Ve;return(Ve=ae.value)==null?void 0:Ve[pe]}).find(J),W=J(Y)&&Number.isFinite(Number(Y))?`(${Number(Number(Y).toFixed(2))}%)`:"";return`${h} 亩${W}`}return["acreage","mj","area_mu","pastureAcreage","pasture_acreage","relationAcreage","relation_acreage","pastureOverlapAcreage","pasture_overlap_acreage"].includes(u)?`${ze(C)} 亩`:["recognizedYakCount","recognized_yak_count","yakCount","yak_count"].includes(u)?`${h} 头`:["relatedPastureCount","related_pasture_count"].includes(u)?`${h} 个`:["length_meter"].includes(u)?`${h} 米`:["totalAcreage","cdAcreage","sdAcreage"].includes(u)?`${h} 万亩`:["cdScl","sdScl"].includes(u)?`${h} 万吨`:["areaWanMu","area_wan_mu"].includes(u)?`${ze(C*1e4)} 亩`:["xc_yield","xcYield","xb_xc_yield","xbXcYield","gc_yield","gcYield","xb_gc_yield","xbGcYield","edible_xc_yield","grass_yield","grassYield","resourceFreshYieldJin","resource_fresh_yield_jin","resourceDryYieldJin","resource_dry_yield_jin"].includes(u)?`${h} 斤`:["mu_yield","xc_mu_yield","xcMuYield","gc_mu_yield","gcMuYield","xb_xc_mu_yield","xbXcMuYield","xb_gc_mu_yield","xbGcMuYield","edible_xc_mu_yield","resourceFreshMuYield","resource_fresh_mu_yield","resourceDryMuYield","resource_dry_mu_yield"].includes(u)?`${h} 斤/亩`:["vegetation_cover","vegetationCover","grasslandVegetationCover","grassland_vegetation_cover","lbmjbl","yu_bi_du"].includes(u)?`${h}%`:["elevation","tu_ceng_hd","soilDepth","soil_depth","pingjun_sg"].includes(u)?`${h} 米`:["po_du","slope"].includes(u)?`${h}°`:h}const k=String(i);return oe.value==="wetland"&&["grassland_level","grasslandLevel","level"].includes(u)?k.replace(/草原/g,"湿地"):k}function Oe(u,i){if(["xiang","xzqdm","town_code","area_code","areaCode"].includes(u)){const d=ke(i);if(d)return d}return ea(i)}function ea(u){const i=String(u||"").trim();if(!i)return"";const d=i.replace(/\s+/g,""),k=wn(d);if(k)return k;const w=qe.find(m=>d.includes(m));if(w)return d.slice(d.indexOf(w));const C=d.indexOf("红原县");if(C>=0)return d.slice(C+3)||d;const h=d.match(/县(.+)$/);return(h==null?void 0:h[1])||i}function ke(u){const i=String(u||"").trim();if(!i)return"";const d=i.replace(/\D/g,""),k=wn(d||i);return k||(ce(i)?"":i)}function ce(u){return/^[0-9A-Za-z_-]{1,12}$/.test(String(u).trim())}function va(u){return/^-?\d+(\.\d+)?$/.test(String(u).trim())}function pa(u){return Number.isInteger(u)?`${u}`:`${Number(u.toFixed(2))}`}function ze(u){const i=Number(u);return Number.isFinite(i)?i>0&&i<.01?"<0.01":pa(i):""}function ga(u){return["survey_time","dc_rq","create_time","update_time"].includes(String(u))}function ha(u){const i=String(u);return/^\d{4}-\d{2}-\d{2}/.test(i)?i.slice(0,10):i}function aa(u){const i=String(u).toLowerCase();return["geom","wkt","geometry","the_geom","raw_properties"].includes(i)||["bsm","ysdm","gid","id","objectid","object_id","fid","key_uid"].includes(i)||["shape_leng","shape_length","length","perimeter"].includes(i)||["patch_no","land_number","plot_code","patch_code","tbybh"].includes(i)?!0:["xzqdm","area_code","town_code"].includes(i)?!1:["di_lei","qykz","stqw","lyfq","tbybh","patch_code"].includes(i)||i.endsWith("_code")||i.endsWith("dm")||i.endsWith("_id")||["create_by","create_time","update_by","update_time"].includes(i)?!0:i.includes("geom")||i.includes("boundary")||i.includes("wkb")}function He(u,i){var k;if(aa(u)||!J(i))return!0;const d=String(u).toLowerCase();return!!(Ke.has(d)||d.includes("number")||d.includes("patch_no")||!Ge.has(u)||ce(i)&&!((k=re[u])!=null&&k[String(i)])&&!["xiang","xzqdm","town_code","area_code","cun","land_type","grassland_level","level","gjgyl_bhdj","bh_dj","ld_qs","qsxz","tdsyqs","zl_dj"].includes(u))}function ve(u,i){var d;return!ce(i)||(d=re[u])!=null&&d[String(i)]?!1:["resource_type","grassland category","functional_category","aspect","soil_depth","soil texture","cdsyq","cdsyq2","cdjjq"].includes(u)}function Fe(u){const i=we(u);if(!i)return"";const d=i/666.6667;return`${ze(d)} 亩`}function we(u){return u!=null&&u.coordinates?u.type==="Polygon"?$e(u.coordinates):u.type==="MultiPolygon"?u.coordinates.reduce((i,d)=>i+$e(d),0):0:0}function $e(u=[]){if(!u.length)return 0;const[i,...d]=u,k=Math.abs(Z(i)),w=d.reduce((C,h)=>C+Math.abs(Z(h)),0);return Math.max(0,k-w)}function Z(u=[]){if(u.length<3)return 0;const i=u.reduce((C,h)=>C+Number((h==null?void 0:h[1])||0),0)/u.length,d=111320,k=d*Math.cos(i*Math.PI/180);let w=0;for(let C=0;Ci.toUpperCase())}return(u,i)=>(t(),Je(ot,{class:"feature-info-card",title:be.value,width:b.width,height:b.height},{extra:Ta(()=>[r("div",lr,[b.feature&&!b.loading?(t(),s("span",rr,o(D.value),1)):N("",!0),b.closable?(t(),s("button",{key:1,type:"button","aria-label":f.value,title:f.value,onClick:i[0]||(i[0]=E(d=>Ie("close"),["stop"]))}," 关闭 ",8,ur)):N("",!0)])]),default:Ta(()=>[r("div",or,[b.loading?(t(),s("div",ir,"正在查询"+o(L.value)+"信息",1)):b.empty?(t(),s("div",cr,"当前点击位置未查询到"+o(L.value),1)):b.feature?(t(),s(x,{key:3},[xe.value.length?(t(),s("div",_r,[(t(!0),s(x,null,$(xe.value,d=>(t(),s("div",{key:d.key,class:"feature-row"},[r("span",null,o(d.label),1),r("strong",{title:d.value},o(d.value),9,vr)]))),128))])):(t(),s("div",pr,"当前图斑暂无可展示的业务字段"))],64)):(t(),s("div",dr,"点击地图图层查看"+o(L.value)+"信息",1))])]),_:1},8,["title","width","height"]))}};export{wr as _,kr as a}; diff --git a/docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js b/docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js deleted file mode 100644 index dfaf687..0000000 --- a/docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js +++ /dev/null @@ -1,3 +0,0 @@ -var Qn=Object.defineProperty,es=Object.defineProperties;var as=Object.getOwnPropertyDescriptors;var pn=Object.getOwnPropertySymbols;var ns=Object.prototype.hasOwnProperty,ss=Object.prototype.propertyIsEnumerable;var gn=(b,K,p)=>K in b?Qn(b,K,{enumerable:!0,configurable:!0,writable:!0,value:p}):b[K]=p,Ae=(b,K)=>{for(var p in K||(K={}))ns.call(K,p)&&gn(b,p,K[p]);if(pn)for(var p of pn(K))ss.call(K,p)&&gn(b,p,K[p]);return b},Fe=(b,K)=>es(b,as(K));import{g as v,o as s,c as t,j as N,F as x,y as $,a as r,t as u,J as P,n as j,q as ts,h as ls,w as Ma,C as Ue,B as I,x as ja,f as J,s as hn,H as yn,e as he,T as rs,d as ye}from"./index-1784045078568.js";import{K as ua,M as os}from"./screen2Standard-98cd5b6c-1784045078568.js";import{_ as us}from"./index-27149dbd-1784045078568.js";import{d as is,e as fn}from"./townshipBoundaries-1b068bef-1784045078568.js";const cs={key:0,class:"business-stat-empty"},ds=["data-chart-tooltip"],_s={class:"business-stat-rank"},vs={class:"business-stat-main"},ps={class:"business-stat-name"},gs={class:"business-stat-bar"},hs={class:"business-stat-value"},ys={key:0},bn={__name:"BusinessStatList",props:{rows:{type:Array,default:()=>[]},compact:{type:Boolean,default:!1}},setup(b){const K=b,p=v(()=>{const L=K.rows.map(D=>Number(D.value)).filter(D=>!Number.isNaN(D));return Math.max(...L,1)});function Ve(L){const D=Number(L.value);return Number.isNaN(D)?36:Math.max(8,Math.round(D/p.value*100))}function fe(L){const D=(L==null?void 0:L.value)===void 0||(L==null?void 0:L.value)===null||(L==null?void 0:L.value)===""?"--":L.value,y=(L==null?void 0:L.unit)||"",C=[`数值:${D}${y}`];return L!=null&&L.extra&&C.push(String(L.extra)),[(L==null?void 0:L.name)||"数据",...C].join(` -`)}return(L,D)=>(s(),t("div",{class:j(["business-stat-list",{"is-compact":b.compact,"is-dense":b.rows.length>10}])},[b.rows.length?N("",!0):(s(),t("div",cs,"暂无业务统计数据")),(s(!0),t(x,null,$(b.rows,(y,C)=>(s(),t("div",{key:y.key||y.name,class:"business-stat-row","data-chart-tooltip":fe(y)},[r("div",_s,u(C+1),1),r("div",vs,[r("div",ps,u(y.name),1),r("div",gs,[r("span",{style:P({width:`${Ve(y)}%`})},null,4)])]),r("div",hs,[r("strong",null,u(y.value),1),r("em",null,u(y.unit),1),y.extra?(s(),t("span",ys,u(y.extra),1)):N("",!0)])],8,ds))),128))],2))}};const fs={key:0,class:"business-panel-empty"},bs={key:2,class:"business-metrics"},xs=["data-chart-tooltip"],ks={key:3,class:"business-icon-metrics"},ws=["data-chart-tooltip"],$s={class:"business-icon-metric-copy"},Ms={key:0},js={key:4,class:"business-spotlight"},Ns=["data-chart-tooltip"],Cs={class:"business-spotlight-side"},Ss=["data-chart-tooltip"],Ls={key:0},Ts={key:1,class:"business-panel-empty"},Ps={key:0,class:"business-ring-visual"},qs={class:"business-ring-chart",viewBox:"0 0 160 160",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},zs=["stroke","stroke-dasharray","stroke-dashoffset","data-chart-tooltip"],As={class:"business-ring-inner"},Fs={key:1,class:"business-donut-visual"},Vs={class:"business-three-pie-center"},Bs={class:"business-donut-legend"},Rs=["data-chart-tooltip"],Ys={key:1,class:"business-panel-empty"},ms={class:"business-rose-visual"},Is={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Gs={class:"business-rose-guides"},Ks=["x1","y1","x2","y2","stroke"],Ws={class:"business-rose-segments"},Ds=["d","fill","stroke","data-chart-tooltip"],Us={class:"business-rose-labels"},Os=["x","y","text-anchor"],Hs={class:"business-donut-legend business-rose-legend"},Xs=["data-chart-tooltip"],Es={key:1,class:"business-panel-empty"},Js={key:7,class:"business-structure"},Zs={class:"business-structure-overview"},Qs={class:"business-structure-band"},et=["title","data-chart-tooltip"],at={class:"business-structure-list"},nt=["data-chart-tooltip"],st={key:1,class:"business-panel-empty"},tt={key:8,class:"business-capacity"},lt=["data-chart-tooltip"],rt={class:"business-capacity-band"},ot=["title","data-chart-tooltip"],ut={class:"business-capacity-list"},it=["data-chart-tooltip"],ct=["data-chart-tooltip"],dt={key:1,class:"business-panel-empty"},_t=["data-chart-tooltip"],vt={key:0,class:"business-bar-rank"},pt={class:"business-bar-name"},gt={class:"business-bar-track"},ht={key:0},yt={key:1},ft={key:0,class:"business-column-trend",viewBox:"0 0 320 90",preserveAspectRatio:"none","aria-hidden":"true"},bt=["points"],xt=["points"],kt=["cx","cy"],wt={key:1,class:"business-column-unit"},$t=["data-hover-value","title","data-chart-tooltip"],Mt={class:"business-column-value"},jt={key:0},Nt={key:0,class:"business-project-search"},Ct=["placeholder"],St={class:"business-project-frame"},Lt=["tabindex","onClick","onKeydown"],Tt=["title"],Pt={key:0},qt={key:0},zt=["onClick","onKeydown"],At={key:2},Ft=["aria-label"],Vt={key:4},Bt={key:0,class:"business-project-empty"},Rt={key:12,class:"business-project-ledger"},Yt={class:"business-project-search"},mt=["placeholder"],It={class:"business-project-ledger__summary"},Gt={class:"business-project-ledger__summary-main"},Kt={key:0,class:"business-project-ledger__pager"},Wt=["disabled"],Dt=["disabled"],Ut=["tabindex","onClick","onKeydown"],Ot={class:"business-project-ledger__info"},Ht=["title"],Xt=["title"],Et=["onClick","onKeydown"],Jt={key:1,class:"business-project-ledger__unlocated"},Zt={key:0,class:"business-project-empty"},Qt={key:13,class:"business-spec-grid"},el={class:"business-spec-grid__index"},al=["title"],nl={class:"business-spec-grid__count"},sl={key:0},tl={class:"business-spec-grid__specs"},ll=["title"],rl={key:0},ol={key:0,class:"business-support-matrix__note"},ul={class:"business-support-matrix__head"},il={key:0},cl={class:"business-support-matrix__body"},dl=["title"],_l=["title"],vl={class:"business-table-head"},pl={class:"business-table-body"},gl=["data-chart-tooltip"],hl={class:"business-table-name"},yl={class:"business-table-value"},fl={key:0},bl={class:"business-stack-legend"},xl={key:0,class:"business-stack-unit"},kl={class:"business-stack-chart"},wl=["data-hover-value","title","data-chart-tooltip"],$l={key:0,class:"business-stack-total"},Ml={key:0},jl={class:"business-stack-track"},Nl=["data-chart-tooltip"],Cl={key:0,class:"business-column-unit business-peak-unit"},Sl=["data-hover-value","title","data-chart-tooltip"],Ll={key:0},Tl={key:18,class:"business-line"},Pl={viewBox:"0 0 320 86",preserveAspectRatio:"none","aria-hidden":"true"},ql=["points"],zl=["points"],Al=["cx","cy"],Fl=["cx","cy","onMouseenter"],Vl=["onMouseenter"],Bl={key:0},Rl=["data-chart-tooltip"],Yl={class:"business-balance-gauge-head"},ml={class:"business-balance-gauge-ring"},Il={class:"business-balance-gauge-value"},Gl={key:0},Kl={class:"business-balance-gauge-name"},Wl={key:0,class:"business-balance-gauge-extra"},Dl=["data-chart-tooltip"],Ul={class:"business-gauge-visual"},Ol={viewBox:"0 0 152 96",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},Hl=["stroke-dasharray"],Xl={class:"business-gauge-value"},El={key:0},Jl={class:"business-gauge-name"},Zl={key:0,class:"business-gauge-extra"},Ql=["data-chart-tooltip"],er={key:0},ar={class:"business-split-band"},nr=["data-chart-tooltip"],sr={class:"business-split-list"},tr=["data-chart-tooltip"],xn=3e3,xr={__name:"BusinessPanelRenderer",props:{panel:{type:Object,default:()=>({rows:[]})},compact:{type:Boolean,default:!1},columnLabelStandard:{type:Boolean,default:!1},visualVersion:{type:String,default:"legacy"}},emits:["row-select"],setup(b,{emit:K}){const p=b,Ve=K,fe=[ua.accentCyan,ua.accentMint,ua.accentWater,ua.accentOrange,"#16b6e8","#a8fbff"],L=["#43d9ff","#46e6ad","#f0c35a","#6ba7ff","#a78bfa","#ff8c78"],D=v(()=>p.visualVersion==="v21"?L:fe),y=v(()=>{var e;return((e=p.panel)==null?void 0:e.type)||"rank"}),C=v(()=>{var e;return(((e=p.panel)==null?void 0:e.rows)||[]).filter(a=>a==null?void 0:a.name)}),G=v(()=>C.value.map(e=>Fe(Ae({},e),{value:F(e)})).filter(e=>e.value>0)),Be=v(()=>C.value.map(e=>F(e)).filter(e=>e>0)),Re=v(()=>Math.max(...Be.value,1)),Z=v(()=>Be.value.reduce((e,a)=>e+a,0)),Ce=v(()=>C.value.filter(e=>F(e)>0)),Oe=v(()=>{var e;return["raceBar","raceBarNoWrap","raceBarRelaxed","degradation"].includes((e=p.panel)==null?void 0:e.variant)}),V=v(()=>y.value==="line"?C.value.filter(e=>(e==null?void 0:e.value)!==void 0&&(e==null?void 0:e.value)!==null&&(e==null?void 0:e.value)!==""):C.value.filter(e=>F(e)>0)),Ye=v(()=>V.value),ae=v(()=>y.value!=="column"?"":Ba()),me=v(()=>y.value!=="peak"?"":Ba()),oe=v(()=>C.value.filter(e=>F(e)>0)),ce=v(()=>{var e;return V.value.slice(0,((e=p.panel)==null?void 0:e.limit)||8)}),Se=v(()=>{var e;return C.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=p.panel)==null?void 0:e.limit)||6)}),be=v(()=>{var e;return C.value.filter(a=>(a==null?void 0:a.value)!==void 0&&(a==null?void 0:a.value)!==null&&(a==null?void 0:a.value)!=="").slice(0,((e=p.panel)==null?void 0:e.limit)||3)}),ne=v(()=>{var e;return((e=p.panel)==null?void 0:e.segments)||[]}),de=v(()=>C.value.filter(e=>{var a;return we(e)>0||((a=p.panel)==null?void 0:a.showZero)===!0})),ia=v(()=>Math.max(...de.value.map(e=>we(e)),1)),O=ye(""),xe=ye(null),ca=[{key:"name",label:"项目名称",field:"name",width:"45%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"13%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"20%",className:"business-project-col-category"},{key:"scale",label:"规模",field:"value",width:"22%",align:"right",strong:!0,unitField:"unit",className:"business-project-col-scale"}],Le=v(()=>{var a;return(Array.isArray((a=p.panel)==null?void 0:a.columns)&&p.panel.columns.length?p.panel.columns:ca).map((l,_)=>({key:l.key||l.field||`column-${_}`,label:l.label||l.title||l.name||"",field:l.field||l.dataIndex||l.key,fields:l.fields||[],width:l.width,align:l.align,strong:!!l.strong,unit:l.unit,unitField:l.unitField,fallback:l.fallback,format:l.format,icon:l.icon,action:l.action,className:l.className}))}),He=v(()=>{var e;return((e=p.panel)==null?void 0:e.rowSelectOnClick)!==!1}),_e=v(()=>{var e;return((e=p.panel)==null?void 0:e.searchPlaceholder)||"搜索项目"}),Xe=v(()=>{var e;return((e=p.panel)==null?void 0:e.emptyText)||"无匹配项目"}),Ie=v(()=>{var a;const e=Array.isArray((a=p.panel)==null?void 0:a.searchKeys)?p.panel.searchKeys:[];return e.length?e:[...Le.value.flatMap(l=>[l.field,...l.fields||[]]),"projectName","category","year","measure","townships","metric"].filter(Boolean)}),Ge=v(()=>{const e=Ua(O.value);return e?C.value.filter(a=>Ua(zn(a)).includes(e)):An(C.value)}),se=ye(1),Te=v(()=>{var e;return Math.max(1,Number((e=p.panel)==null?void 0:e.pageSize)||15)}),Ee=v(()=>Ge.value),ke=v(()=>Math.max(1,Math.ceil(Ee.value.length/Te.value))),Ke=v(()=>{const e=Math.min(se.value,ke.value),a=Math.max(0,e-1)*Te.value;return Ee.value.slice(a,a+Te.value)}),da=v(()=>Math.max(1,Ke.value.length)),Je=v(()=>{var e;return((e=p.panel)==null?void 0:e.summaryValue)||H(C.value.length)}),Ze=v(()=>{var e;return((e=p.panel)==null?void 0:e.summaryLabel)||"条建设台账"}),Qe=v(()=>C.value.filter(e=>e==null?void 0:e.canLocate).length),o=v(()=>C.value.filter(e=>e==null?void 0:e.name)),i=v(()=>C.value.filter(e=>e==null?void 0:e.name)),d=v(()=>{var e;return!!((e=p.panel)!=null&&e.showTotal)}),w=v(()=>C.value.find(e=>["forage-total","wetland-yield-total"].includes(e.key))||C.value[0]),k=v(()=>C.value.filter(e=>["forage-edible","forage-unavailable","wetland-yield-edible","wetland-yield-unavailable"].includes(e.key))),S=v(()=>C.value.find(e=>["forage-top-town","wetland-yield-top-town"].includes(e.key))),f=ye(0),q=ye(null),B=ye(null),U=ye(!0),Q=ye({visible:!1,x:0,y:0,title:"",lines:[]});let ue=null,ve=null;const kn=v(()=>{var e,a;return`${((e=p.panel)==null?void 0:e.key)||((a=p.panel)==null?void 0:a.title)||"pie"}-${G.value.map(l=>`${l.name}:${l.value}`).join("|")}`}),wn=v(()=>{const _=typeof window=="undefined"?1920:window.innerWidth,h=typeof window=="undefined"?1080:window.innerHeight,g=Math.min(_-190-8,Q.value.x+14),M=Math.min(h-82-8,Q.value.y+14);return{left:`${Math.max(8,g)}px`,top:`${Math.max(8,M)}px`}}),W=v(()=>{const e=Na.value;return e?f.value%e:0}),Na=v(()=>{var e;return y.value==="structure"?oe.value.length:y.value==="donut"||y.value==="rose"?G.value.length:y.value==="bar"&&((e=p.panel)==null?void 0:e.variant)==="capacity"?k.value.length:y.value==="bar"||y.value==="column"?V.value.length:y.value==="table"?Ye.value.length:y.value==="line"?V.value.length:y.value==="balanceGaugeGrid"?be.value.length:y.value==="gauge"?Se.value.length:y.value==="stackColumn"?de.value.length:y.value==="split"?Ce.value.length:0}),Ca=v(()=>G.value[W.value]||G.value[0]);v(()=>oe.value[W.value]||oe.value[0]);const Pe=v(()=>C.value[0]),$n=v(()=>C.value.slice(0,4).map((e,a)=>Fe(Ae({},e),{icon:Hn(e,a)}))),Mn=v(()=>oe.value.map((e,a)=>Fe(Ae({},e),{displayIndex:a}))),_a=v(()=>{var e;return y.value!=="donut"?"standard":((e=p.panel)==null?void 0:e.variant)==="ring"?"ring":"three"}),jn=v(()=>{const e=G.value,a=e.length;if(!a)return[];const l=52,_=2*Math.PI*l,h=e.reduce((z,R)=>z+F(R),0)||1,g=a>1?Math.min(12,Math.max(7,_*.028)):0;let M=0;return e.map((z,R)=>{const E=F(z)/h*_,ee=a>1?Math.max(5,E-g):_,je=M+(a>1?g/2:0);return M+=E,{key:z.key||z.name||R,index:R,item:z,color:m(R),dasharray:`${ee.toFixed(2)} ${_.toFixed(2)}`,dashoffset:`${(-je).toFixed(2)}`}})}),va=v(()=>{const e=G.value,a=e.length;if(!a)return[];const l=Math.max(...e.map(g=>F(g)),1),_=360/a,h=Math.min(8,_*.16);return e.map((g,M)=>{const z=F(g),R=M===W.value,T=36+Math.sqrt(z/l)*31+(R?5:0),E=17,ee=-90+M*_+h/2,je=-90+(M+1)*_-h/2,Ne=(ee+je)/2,la=Me(75,75,T+3,Ne),ra=Me(75,75,T+15,Ne),oa=Me(75,75,T+20,Ne);return{key:g.key||g.name||M,index:M,item:g,color:m(M),path:On(75,75,E,T,ee,je),lineStart:la,lineEnd:ra,label:oa,anchor:Math.cos(Ne*Math.PI/180)>=0?"start":"end"}})});ts(()=>{En(),wa()}),ls(()=>{Jn(),$a()}),Ma(()=>{var e;return[(e=p.panel)==null?void 0:e.key,C.value.length]},()=>{f.value=0,q.value=null,O.value="",se.value=1,xe.value=null,sa(),wa()}),Ma(O,()=>{se.value=1}),Ma(U,()=>{wa()});const te=v(()=>{const e=V.value,a=320,l=66,_=10,h=e.length>1?a/(e.length-1):a,g=e.map(T=>F(T)).filter(T=>Number.isFinite(T)&&T>=0),M=g.length?Math.min(...g):0,z=g.length?Math.max(...g):1,R=Math.max(z-M,z*.08,1);return e.map((T,E)=>{const ee=F(T);return{x:Math.round(E*h),y:Math.round(_+l-(ee-M)/R*l),item:T}})}),Sa=v(()=>te.value.map(e=>`${e.x},${e.y}`).join(" ")),Nn=v(()=>te.value.length?`0,86 ${Sa.value} 320,86`:""),La=v(()=>{var e,a;return y.value==="column"&&(((e=p.panel)==null?void 0:e.lineOverlay)===!0||((a=p.panel)==null?void 0:a.variant)==="trendColumn")&&V.value.length>1}),pa=v(()=>{if(!La.value)return[];const e=V.value,a=e.map(T=>F(T)).filter(T=>Number.isFinite(T)&&T>=0),l=Math.max(...a,1),_=Math.min(...a,0),h=Math.max(l-_,l*.08,1),g=320,M=9,z=67,R=e.length>1?g/(e.length-1):0;return e.map((T,E)=>{const ee=F(T);return{key:T.key||T.name||E,x:Number((E*R).toFixed(2)),y:Number((M+z-(ee-_)/h*z).toFixed(2))}})}),Ta=v(()=>pa.value.map(e=>`${e.x},${e.y}`).join(" ")),Cn=v(()=>pa.value.length?`0,82 ${Ta.value} 320,82`:""),Pa=v(()=>V.value),qa=v(()=>({gridTemplateColumns:`repeat(${Math.max(Pa.value.length,1)}, minmax(0, 1fr))`})),za=v(()=>Number.isInteger(q.value)?te.value[q.value]:null),Aa=v(()=>te.value.length?Number.isInteger(q.value)?q.value:W.value:0),qe=v(()=>za.value?za.value:te.value[Aa.value]||te.value[0]),Sn=v(()=>{const e=qe.value;if(!e)return{};const a=e.x/320*100;return{left:`${Math.min(84,Math.max(16,a))}%`,top:"6px",transform:"translateX(-50%)"}});function F(e){const a=Number(e==null?void 0:e.value);if(!Number.isNaN(a)&&a>0)return a;const l=Number(e==null?void 0:e.percent);return Number.isNaN(l)?0:l}function we(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return ne.value.reduce((l,_)=>l+(Number(a[_.key])||0),0)}function Fa(e){const a=we(e),l=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return a?ne.value.map((_,h)=>{var z,R,T;const g=Number(l[_.key])||0,M=((z=p.panel)==null?void 0:z.variant)==="dual"||((R=p.panel)==null?void 0:R.variant)==="parkSlim"||((T=p.panel)==null?void 0:T.sharedScale)===!0?ia.value:a;return Fe(Ae({},_),{value:g,percent:Math.max(g>0?3:0,g/Math.max(M,1)*100),color:Va(_,h)})}):[]}function Va(e,a){var l;return(l=p.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:m(a)}function H(e){const a=Number(e);return Number.isNaN(a)?"--":Number.isInteger(a)?`${a}`:`${Number(a.toFixed(2))}`}function A(e){return(e==null?void 0:e.displayValue)!==void 0&&(e==null?void 0:e.displayValue)!==null&&(e==null?void 0:e.displayValue)!==""?e.displayValue:(e==null?void 0:e.value)===void 0||(e==null?void 0:e.value)===null||(e==null?void 0:e.value)===""?"--":H(e.value)}function pe(e){var _;const a=(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||"";if(!a)return"";const l=String((_=A(e))!=null?_:"");return l&&l.endsWith(String(a))?"":a}function Ba(){const e=[...new Set(V.value.map(a=>(a==null?void 0:a.displayUnit)||(a==null?void 0:a.unit)).filter(Boolean))];return e.length===1?e[0]:""}function Ra(e){const a=pe(e);return a?ae.value===a?"":a:""}function Ya(e){const a=pe(e);return a?me.value===a?"":a:""}function ge(e){return String(e||"").trim().replace(/\s+/g,"").replace(/[乡镇]$/u,"")}function Ln(e){return Array.from(ge(e)).slice(0,3).join("")}function ea(e){var a;return((a=p.panel)==null?void 0:a.labelMode)==="horizontal"?ge(e):p.columnLabelStandard?Ln(e):ge(e)}function aa(e){const a=ge(e==null?void 0:e.name)||"数据",l=pe(e);return`${a}:${A(e)}${l}`}function ga(e,a=[]){return[ge(e)||"数据",...a.filter(l=>l!=null&&String(l).trim()!=="").map(l=>String(l))].join(` -`)}function X(e,a=[]){if(!e)return"";const l=pe(e),_=A(e),h=[];return _!=="--"&&h.push(`数值:${_}${l}`),e.extra&&h.push(String(e.extra)),ga(e.name,[...h,...a])}function na(e){return X(e,[`占比:${ka(e)}`])}function ma(e){return X(e,[`占比:${ba(e)}`])}function Ia(e){return X(e,[`占比:${xa(e)}`])}function Tn(e){var h;const a=$e(e),l=Fa(e).filter(g=>g.value>0).map(g=>`${g.name}:${g.valuePrefix||""}${H(g.value)}${a}`),_=((h=p.panel)==null?void 0:h.totalLabel)||"合计";return ga(e==null?void 0:e.name,[`${_}:${ha(e)}${H(we(e))}${a}`,...l])}function Pn(e,a){const l=$e(e);return ga(`${ge(e==null?void 0:e.name)} ${(a==null?void 0:a.name)||""}`,[`数值:${(a==null?void 0:a.valuePrefix)||""}${H((a==null?void 0:a.value)||0)}${l}`])}function Ga(e){return X(e,[`状态:${fa(e)}`])}function Ka(e){const a=Z.value?`${H(F(e)/Z.value*100)}%`:"--";return X(e,[`占比:${a}`])}function qn(e){var h,g,M;const a=(g=(h=e.target)==null?void 0:h.closest)==null?void 0:g.call(h,"[data-chart-tooltip], [data-hover-value]");if(!a||!((M=B.value)!=null&&M.contains(a))){sa();return}const l=a.getAttribute("data-chart-tooltip")||a.getAttribute("data-hover-value")||"",_=String(l).split(/\n+/).map(z=>z.trim()).filter(Boolean);if(!_.length){sa();return}Q.value={visible:!0,x:e.clientX,y:e.clientY,title:_[0],lines:_.slice(1)}}function sa(){Q.value.visible&&(Q.value={visible:!1,x:0,y:0,title:"",lines:[]})}function Wa(e){const a=ge(e==null?void 0:e.name)||"数据",l=$e(e);return`${a}:${ha(e)}${H(we(e))}${l}`}function $e(e){var a;return(e==null?void 0:e.displayUnit)||(e==null?void 0:e.unit)||((a=p.panel)==null?void 0:a.unit)||""}function ha(e){const a=(e==null?void 0:e.segments)||(e==null?void 0:e.values)||{};return ne.value.some(l=>(l==null?void 0:l.valuePrefix)&&Number(a[l.key])>0)?"≥":""}function Da(){var e,a,l;return((e=p.panel)==null?void 0:e.showValue)===!0||((a=p.panel)==null?void 0:a.variant)==="dual"||((l=p.panel)==null?void 0:l.variant)==="parkSlim"}function Ua(e){return String(e||"").trim().toLowerCase()}function zn(e){const a=Ie.value.map(l=>Oa(e,{field:l})).filter(l=>l!=null);return[e==null?void 0:e.searchText,...a].filter(Boolean).join(" ")}function An(e=[]){var l;const a=Number((l=p.panel)==null?void 0:l.maxRows);return!Number.isFinite(a)||a<=0?e:e.slice(0,a)}function Oa(e,a){const l=[a==null?void 0:a.field,...(a==null?void 0:a.fields)||[]].filter(Boolean);for(const _ of l){const h=String(_).split(".").reduce((g,M)=>g==null?void 0:g[M],e);if(h!=null&&h!=="")return h}}function We(e,a){const l=Oa(e,a);if((a==null?void 0:a.format)==="townVillage"){const _=String((e==null?void 0:e.town)||"").trim(),h=String((e==null?void 0:e.village)||"").trim();return[_,h].filter(Boolean).join(" / ")||(a==null?void 0:a.fallback)||"--"}return l==null||l===""?(a==null?void 0:a.fallback)||"--":(a==null?void 0:a.format)==="number"?H(l):(a==null?void 0:a.format)==="displayValue"?A({value:l}):String(l)}function Ha(e,a){return a!=null&&a.unitField&&(e!=null&&e[a.unitField])?e[a.unitField]:(a==null?void 0:a.unit)||""}function Xa(e){return{"business-project-name":(e==null?void 0:e.key)==="name","business-project-locate":(e==null?void 0:e.key)==="locate","is-right":(e==null?void 0:e.align)==="right","is-center":(e==null?void 0:e.align)==="center","is-strong":e==null?void 0:e.strong}}function ya(e,a={}){(a==null?void 0:a.action)==="locate"&&le(e,!0)}function le(e,a=!1){!a&&!He.value||(e==null?void 0:e.canLocate)!==!1&&(xe.value=(e==null?void 0:e.key)||(e==null?void 0:e.name)||null,Ve("row-select",e))}function Ea(e=0){const a=se.value+Number(e||0);se.value=Math.max(1,Math.min(ke.value,a))}function Ja(e={}){return e.ledgerName||e.name||"--"}function Za(e={}){return e.ledgerLocation||[e.town,e.village].filter(Boolean).join(" · ")||"--"}function Qa(e={},a={}){var _,h,g,M;const l=Number((M=(g=(_=e==null?void 0:e.segments)==null?void 0:_[a.key])!=null?g:(h=e==null?void 0:e.values)==null?void 0:h[a.key])!=null?M:0);return!Number.isFinite(l)||l<=0?"—":`${(a==null?void 0:a.valuePrefix)||""}${H(l)}`}function en(e={}){const a=ne.value.map(h=>{var g,M,z,R;return Number((R=(z=(g=e==null?void 0:e.segments)==null?void 0:g[h.key])!=null?z:(M=e==null?void 0:e.values)==null?void 0:M[h.key])!=null?R:0)}),l=a.reduce((h,g)=>h+(Number.isFinite(g)&&g>0?g:0),0);return l?`${ne.value.some((h,g)=>(h==null?void 0:h.valuePrefix)&&a[g]>0)?"≥":""}${H(l)}`:"—"}function Fn(e){const a=e==null?void 0:e.currentTarget;if(!a||a.scrollWidth<=a.clientWidth)return;e.preventDefault();const l=Math.abs(e.deltaX)>Math.abs(e.deltaY)?e.deltaX:e.deltaY;a.scrollLeft+=l}function ze(e){var g,M;const a=Number(e==null?void 0:e.scaleValue);if(!(y.value==="column"&&((g=p.panel)==null?void 0:g.variant)==="plain")&&!Number.isNaN(a)&&a>0)return Math.max(8,Math.min(100,Math.round(a)));const _=F(e);if(!_)return 8;const h=y.value==="column"&&((M=p.panel)==null?void 0:M.variant)==="plain"?Math.max(...Be.value,_):Re.value;return Math.max(8,Math.round(_/h*100))}function Vn(e,a){const l=ze(e),_=Math.max(.04,Math.min(.1,l/360));return{"--heat-color":m(a),"--heat-bg":ie(m(a),_)}}function re(e){const a=Number(e==null?void 0:e.value);return Number.isFinite(a)?a:0}function Bn(){var l;const e=Number((l=p.panel)==null?void 0:l.max);if(Number.isFinite(e)&&e>0)return e;const a=Math.max(...Se.value.map(_=>re(_)),100);return Math.max(a,100)}function an(e){const a=re(e),l=Bn();return!l||a<=0?0:Number(Math.min(100,a/l*100).toFixed(1))}function Rn(e){return Number((-180+an(e)*1.8).toFixed(1))}function Yn(e,a){var l;return(l=p.panel)!=null&&l.preserveColors&&(e!=null&&e.color||e!=null&&e.fillColor)?e.color||e.fillColor:m(a)}function mn(e){const a=Math.max(0,re(e)),l=Math.max(5,...be.value.map(_=>Math.max(0,re(_))));return Math.max(6,Math.min(100,Number((a/l*100).toFixed(1))))}function In(e){const a=re(e),l=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return a>20||/严重|重度|高超载/.test(l)?"#8bf7ff":a>10||/中度|预警/.test(l)?"#48cfff":a>5||/轻度/.test(l)?"#b9fbff":a<=0||/总体可控|合理|正常|达标|无超载/.test(l)?"#24f6c4":"#30dcff"}function Gn(e){return{"--balance-color":In(e),"--balance-progress":`${mn(e)}%`}}function fa(e){if(e!=null&&e.status||e!=null&&e.level)return e.status||e.level;const a=re(e);return a<0?"合理":a<=5?"基本实现草畜平衡":a<=10?"轻度超载":a>100?"高超载":"超载预警"}function ie(e,a=.2){const l=String(e||"").replace("#","");if(l.length!==6)return`rgba(48, 220, 255, ${a})`;const _=parseInt(l,16),h=_>>16&255,g=_>>8&255,M=_&255;return`rgba(${h}, ${g}, ${M}, ${a})`}function Kn(e){const a=te.value.length;if(!a)return;const l=e.currentTarget.getBoundingClientRect(),_=l.width?(e.clientX-l.left)/l.width:0,h=Math.min(a-1,Math.max(0,Math.round(_*(a-1))));q.value=h}function Wn(e){const a=F(e);return!Z.value||!a?0:Math.max(6,a/Z.value*100)}function nn(e){const a=F(e);return!Z.value||!a?0:Math.max(2,a/Z.value*100)}function ba(e){if(!e)return"--";if(e.extra)return e.extra;const a=F(e);return!Z.value||!a?"--":`${H(a/Z.value*100)}%`}function sn(){const e=F(w.value);return e>0?e:k.value.reduce((a,l)=>a+F(l),0)}function Dn(e){const a=sn(),l=F(e);return!a||!l?0:Math.max(6,l/a*100)}function xa(e){const a=sn(),l=F(e);return!a||!l?"--":`${H(l/a*100)}%`}function ta(e,a){return["forage-edible","wetland-yield-edible"].includes(e==null?void 0:e.key)?"#24f6c4":["forage-unavailable","wetland-yield-unavailable"].includes(e==null?void 0:e.key)?"#8bf7ff":m(a)}function ka(e){const a=F(e),l=Number(e==null?void 0:e.count)||Z.value;return!a||!l?"0%":`${H(a/l*100)}%`}function Un(e){const a=F(e),l=Number(e==null?void 0:e.count)||Z.value;return!a||!l?0:a/l*100}function Me(e,a,l,_){const h=_*Math.PI/180;return{x:Number((e+l*Math.cos(h)).toFixed(2)),y:Number((a+l*Math.sin(h)).toFixed(2))}}function On(e,a,l,_,h,g){const M=Me(e,a,_,h),z=Me(e,a,_,g),R=Me(e,a,l,g),T=Me(e,a,l,h),E=g-h>180?1:0;return[`M ${M.x} ${M.y}`,`A ${_} ${_} 0 ${E} 1 ${z.x} ${z.y}`,`L ${R.x} ${R.y}`,`A ${l} ${l} 0 ${E} 0 ${T.x} ${T.y}`,"Z"].join(" ")}function m(e){return D.value[e%D.value.length]}function De(e,a={}){var l;return(l=p.panel)!=null&&l.preserveColors&&(a!=null&&a.color||a!=null&&a.fillColor)?a.color||a.fillColor:m(e)}function Hn(e,a){if(e!=null&&e.icon)return String(e.icon).replace(/[^a-z0-9-]/gi,"");const l=String((e==null?void 0:e.name)||"");return l.includes("利用率")||l.includes("占比")?"rate":l.includes("重度")||l.includes("退化")?"risk":l.includes("可食")||l.includes("供给")?"leaf":l.includes("不可")?"stack":l.includes("产量")||l.includes("鲜草")?"yield":l.includes("乡镇")?"town":l.includes("面积")?"area":["yield","leaf","rate","risk"][a%4]}function Xn(){$a();const e=Na.value;U.value&&(e<2||(ue=window.setInterval(()=>{f.value=(f.value+1)%e},xn)))}function wa(){U.value?Xn():$a()}function $a(){ue&&(window.clearInterval(ue),ue=null)}function En(){tn(),!(!B.value||typeof window.IntersectionObserver!="function")&&(ve=new IntersectionObserver(e=>{const a=e[0];U.value=!!(a!=null&&a.isIntersecting)&&ln()}),ve.observe(B.value),window.requestAnimationFrame(tn))}function Jn(){var e;(e=ve==null?void 0:ve.disconnect)==null||e.call(ve),ve=null}function tn(){U.value=ln()}function ln(){const e=B.value;return e?!!(e.offsetParent||e.getClientRects().length):!0}function rn(e,a={}){const l=De(e,a);return`linear-gradient(90deg, ${ie(l,.08)} 0%, ${ie(l,.58)} 48%, ${l} 82%, rgba(248,255,255,0.86) 100%)`}function Zn(e,a={}){var _,h;if(((_=p.panel)==null?void 0:_.variant)==="water"){const g=De(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.92) 0%, ${ie(g,.88)} 18%, ${ie(g,.68)} 58%, rgba(47, 151, 255, 0.18) 100%)`}if(((h=p.panel)==null?void 0:h.variant)==="plain"){const g=De(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${ie(g,.84)} 18%, ${ie(g,.64)} 74%, ${ie(g,.1)} 100%)`}const l=De(e,a);return`linear-gradient(180deg, rgba(248,255,255,0.9) 0%, ${l} 18%, ${ie(l,.62)} 72%, rgba(50, 220, 255, 0.08) 100%)`}return(e,a)=>{var l,_,h,g,M,z,R,T,E,ee,je,Ne,la,ra,oa,on,un,cn,dn,_n,vn;return s(),t("div",{ref_key:"panelRef",ref:B,class:j(["business-panel",[`is-${y.value}`,`is-${_a.value}`,`is-${b.visualVersion}`,{"is-compact":b.compact,"is-column-label-standard":b.columnLabelStandard,"is-column-label-horizontal":((l=p.panel)==null?void 0:l.labelMode)==="horizontal"}]]),onMousemove:qn,onMouseleave:sa},[C.value.length?y.value==="rank"?(s(),Ue(bn,{key:1,rows:C.value,compact:""},null,8,["rows"])):y.value==="metric"?(s(),t("div",bs,[(s(!0),t(x,null,$(C.value.slice(0,4),n=>(s(),t("div",{key:n.key||n.name,class:"business-metric-item","data-chart-tooltip":X(n)},[r("span",null,u(n.name),1),r("strong",null,u(A(n)),1),r("em",null,u(n.unit),1)],8,xs))),128))])):y.value==="iconMetric"?(s(),t("div",ks,[(s(!0),t(x,null,$($n.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-icon-metric-item",`is-tone-${c%D.value.length}`]),"data-chart-tooltip":X(n)},[r("i",{class:j(["business-icon-metric-mark",`is-${n.icon}`])},[...a[6]||(a[6]=[r("span",null,null,-1)])],2),r("div",$s,[r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),n.unit?(s(),t("em",Ms,u(n.unit),1)):N("",!0)])])],10,ws))),128))])):y.value==="spotlight"?(s(),t("div",js,[Pe.value?(s(),t(x,{key:0},[r("div",{class:"business-spotlight-main","data-chart-tooltip":X(Pe.value)},[r("span",null,u(Pe.value.name),1),r("strong",null,[I(u(A(Pe.value)),1),r("em",null,u(Pe.value.unit),1)]),r("small",null,u(Pe.value.extra||((_=b.panel)==null?void 0:_.note)||"核心业务指标"),1)],8,Ns),r("div",Cs,[(s(!0),t(x,null,$(C.value.slice(1,4),(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-spotlight-chip","data-chart-tooltip":X(n)},[r("i",{style:P({borderColor:m(c+1)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),r("em",null,u(n.unit),1)]),n.extra?(s(),t("small",Ls,u(n.extra),1)):N("",!0)],8,Ss))),128))])],64)):(s(),t("div",Ts,"暂无业务统计数据"))])):y.value==="donut"?(s(),t("div",{key:5,class:j(["business-donut",[`is-variant-${_a.value}`,{"is-dense":G.value.length>5}]])},[G.value.length?(s(),t(x,{key:0},[_a.value==="ring"?(s(),t("div",Ps,[(s(),t("svg",qs,[a[7]||(a[7]=r("circle",{class:"business-ring-halo",cx:"80",cy:"80",r:"39"},null,-1)),a[8]||(a[8]=r("circle",{class:"business-ring-track",cx:"80",cy:"80",r:"52"},null,-1)),(s(!0),t(x,null,$(jn.value,n=>(s(),t("circle",{key:n.key,class:j(["business-ring-segment",{"is-active":n.index===W.value}]),cx:"80",cy:"80",r:"52",stroke:n.color,"stroke-dasharray":n.dasharray,"stroke-dashoffset":n.dashoffset,style:P({color:n.color}),"data-chart-tooltip":na(n.item)},null,14,zs))),128))])),r("div",As,[r("strong",null,u(ka(Ca.value)),1),r("span",null,u(((h=Ca.value)==null?void 0:h.name)||"结构占比"),1)])])):(s(),t("div",Fs,[(s(),Ue(os,{key:kn.value,data:G.value,delay:xn,colors:D.value,opacity:.62,class:"business-three-pie"},{default:ja(({data:n})=>[r("div",Vs,[r("strong",null,u(ka(n)),1),r("span",null,u((n==null?void 0:n.name)||"结构占比"),1)])]),_:1},8,["data","colors"]))])),r("div",Bs,[(s(!0),t(x,null,$(G.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-donut-row",{"is-active":c===W.value}]),style:P({"--row-color":m(c),"--row-percent":`${Math.max(4,Un(n))}%`}),"data-chart-tooltip":na(n)},[r("i",{style:P({borderColor:m(c)})},null,4),r("span",null,u(n.name),1),r("strong",null,u(A(n)),1),r("em",null,u(n.unit),1)],14,Rs))),128))])],64)):(s(),t("div",Ys,"暂无业务统计数据"))],2)):y.value==="rose"?(s(),t("div",{key:6,class:j(["business-rose",{"is-dense":G.value.length>5}])},[G.value.length?(s(),t(x,{key:0},[r("div",ms,[(s(),t("svg",Is,[r("g",Gs,[(s(!0),t(x,null,$(va.value,n=>(s(),t("line",{key:`guide-${n.key}`,x1:n.lineStart.x,y1:n.lineStart.y,x2:n.lineEnd.x,y2:n.lineEnd.y,stroke:n.color},null,8,Ks))),128))]),r("g",Ws,[(s(!0),t(x,null,$(va.value,n=>(s(),t("path",{key:n.key,class:j(["business-rose-segment",{"is-active":n.index===W.value}]),d:n.path,fill:n.color,stroke:n.color,"data-chart-tooltip":na(n.item)},null,10,Ds))),128))]),a[9]||(a[9]=r("circle",{class:"business-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),a[10]||(a[10]=r("circle",{class:"business-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r("g",Us,[(s(!0),t(x,null,$(va.value,n=>(s(),t("text",{key:`label-${n.key}`,x:n.label.x,y:n.label.y,"text-anchor":n.anchor},u(n.item.name),9,Os))),128))])]))]),r("div",Hs,[(s(!0),t(x,null,$(G.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-donut-row business-rose-row",{"is-active":c===W.value}]),"data-chart-tooltip":na(n)},[r("i",{style:P({borderColor:m(c),background:m(c),color:m(c)})},null,4),r("span",null,u(n.name),1),r("strong",null,u(A(n)),1),r("em",null,u(n.unit),1)],10,Xs))),128))])],64)):(s(),t("div",Es,"暂无业务统计数据"))],2)):y.value==="structure"?(s(),t("div",Js,[oe.value.length?(s(),t(x,{key:0},[r("div",Zs,[r("div",Qs,[(s(!0),t(x,null,$(oe.value,(n,c)=>(s(),t("i",{key:n.key||n.name,class:j({"is-active":c===W.value}),style:P({width:`${nn(n)}%`,background:m(c),color:m(c)}),title:`${n.name}:${A(n)}${n.unit||""} ${ba(n)}`,"data-chart-tooltip":ma(n)},null,14,et))),128))])]),r("div",at,[(s(!0),t(x,null,$(Mn.value,n=>(s(),t("div",{key:n.key||n.name,class:j(["business-structure-row",{"is-active":n.displayIndex===W.value}]),style:P({"--row-color":m(n.displayIndex),"--row-percent":`${Math.max(4,nn(n))}%`}),"data-chart-tooltip":ma(n)},[r("i",{style:P({background:m(n.displayIndex),color:m(n.displayIndex)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),r("em",null,u(n.unit),1)]),r("small",null,u(ba(n)),1)],14,nt))),128))])],64)):(s(),t("div",st,"暂无业务统计数据"))])):y.value==="bar"&&((g=b.panel)==null?void 0:g.variant)==="capacity"?(s(),t("div",tt,[w.value?(s(),t(x,{key:0},[r("div",{class:"business-capacity-head","data-chart-tooltip":X(w.value)},[r("span",null,u(w.value.name),1),r("strong",null,[I(u(A(w.value)),1),r("em",null,u(w.value.unit),1)])],8,lt),r("div",rt,[(s(!0),t(x,null,$(k.value,(n,c)=>(s(),t("i",{key:n.key||n.name,class:j({"is-active":c===W.value}),style:P({width:`${Dn(n)}%`,background:ta(n,c),color:ta(n,c)}),title:`${n.name}:${A(n)}${n.unit||""} ${xa(n)}`,"data-chart-tooltip":Ia(n)},null,14,ot))),128))]),r("div",ut,[(s(!0),t(x,null,$(k.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-capacity-row",{"is-active":c===W.value}]),"data-chart-tooltip":Ia(n)},[r("i",{style:P({background:ta(n,c),color:ta(n,c)})},null,4),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),r("em",null,u(n.unit),1)]),r("small",null,u(xa(n)),1)],10,it))),128))]),S.value?(s(),t("div",{key:0,class:"business-capacity-town","data-chart-tooltip":X(S.value)},[r("span",null,u(S.value.name),1),r("strong",null,[I(u(A(S.value)),1),r("em",null,u(S.value.unit),1)])],8,ct)):N("",!0)],64)):(s(),t("div",dt,"暂无业务统计数据"))])):y.value==="bar"?(s(),t("div",{key:9,class:j(["business-bars",{"is-dense":V.value.length>=5,"is-long":V.value.length>10,"is-scrollable":V.value.length>10,"is-single":((M=b.panel)==null?void 0:M.span)===1,"is-distribution":((z=b.panel)==null?void 0:z.variant)==="distribution","is-capacity":((R=b.panel)==null?void 0:R.variant)==="capacity","is-rank-bar":((T=b.panel)==null?void 0:T.variant)==="rankBar","is-park-bar":((E=b.panel)==null?void 0:E.variant)==="parkBar","is-race-bar":Oe.value,"is-few-rows":Oe.value&&V.value.length<=3,"is-degradation":((ee=b.panel)==null?void 0:ee.variant)==="degradation","is-race-nowrap":((je=b.panel)==null?void 0:je.variant)==="raceBarNoWrap","is-race-relaxed":((Ne=b.panel)==null?void 0:Ne.variant)==="raceBarRelaxed"}]),style:P({"--bar-row-count":Math.max(V.value.length,1)}),onWheel:a[0]||(a[0]=J(()=>{},["stop"]))},[(s(!0),t(x,null,$(V.value,(n,c)=>{var Y;return s(),t("div",{key:n.key||n.name,class:j(["business-bar-row",{"is-active":c===W.value}]),style:P({"--bar-color":De(c,n)}),"data-chart-tooltip":X(n)},[((Y=b.panel)==null?void 0:Y.variant)==="rankBar"?(s(),t("span",vt,u(c+1),1)):N("",!0),r("span",pt,u(n.name),1),r("div",gt,[r("i",{style:P({width:`${ze(n)}%`,background:rn(c,n)})},null,4)]),r("strong",null,[I(u(A(n))+" ",1),n.unit?(s(),t("em",ht,u(n.unit),1)):N("",!0),n.extra?(s(),t("small",yt,u(n.extra),1)):N("",!0)])],14,_t)}),128))],38)):y.value==="column"?(s(),t("div",{key:10,class:j(["business-columns",[`is-variant-${((la=b.panel)==null?void 0:la.variant)||"solid"}`,{"is-dense":V.value.length>6,"is-scrollable":V.value.length>6&&((ra=b.panel)==null?void 0:ra.scrollable)!==!1,"has-unit-label":!!ae.value}]]),onWheel:J(Fn,["stop"])},[La.value?(s(),t("svg",ft,[r("polyline",{class:"business-column-trend-area",points:Cn.value},null,8,bt),r("polyline",{class:"business-column-trend-line",points:Ta.value},null,8,xt),(s(!0),t(x,null,$(pa.value,n=>(s(),t("circle",{key:n.key,class:"business-column-trend-dot",cx:n.x,cy:n.y,r:"2.3"},null,8,kt))),128))])):N("",!0),ae.value?(s(),t("small",wt,"单位:"+u(ae.value),1)):N("",!0),(s(!0),t(x,null,$(V.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-column-item",{"is-active":c===W.value,"is-zero":(n==null?void 0:n.zero)===!0||(n==null?void 0:n.isZero)===!0}]),"data-hover-value":aa(n),title:aa(n),"data-chart-tooltip":X(n)},[r("div",{class:"business-column-track",style:P({"--column-percent":`${ze(n)}%`})},[r("i",{style:P({height:`${ze(n)}%`,background:Zn(c,n),"--column-load-delay":`${c*.075}s`})},null,4),r("strong",Mt,[I(u(A(n)),1),Ra(n)?(s(),t("em",jt,u(Ra(n)),1)):N("",!0)])],4),r("span",null,u(ea(n.name)),1)],10,$t))),128))],34)):y.value==="projectTable"?(s(),t("div",{key:11,class:j(["business-project-table",{"is-without-search":((oa=b.panel)==null?void 0:oa.showSearch)===!1,"is-fill-rows":((on=b.panel)==null?void 0:on.fillRows)===!0}])},[((un=b.panel)==null?void 0:un.showSearch)!==!1?(s(),t("div",Nt,[hn(r("input",{"onUpdate:modelValue":a[1]||(a[1]=n=>O.value=n),type:"search",placeholder:_e.value},null,8,Ct),[[yn,O.value]])])):N("",!0),r("div",St,[r("table",null,[r("colgroup",null,[(s(!0),t(x,null,$(Le.value,n=>(s(),t("col",{key:n.key,class:j(n.className),style:P({width:n.width||void 0})},null,6))),128))]),r("thead",null,[r("tr",null,[(s(!0),t(x,null,$(Le.value,n=>(s(),t("th",{key:n.key,class:j(Xa(n))},u(n.label),3))),128))])]),r("tbody",null,[(s(!0),t(x,null,$(Ge.value,n=>(s(),t("tr",{key:n.key||n.name,class:j({"is-active":xe.value===(n.key||n.name)}),tabindex:He.value?0:-1,onClick:c=>le(n),onKeydown:[he(J(c=>le(n),["prevent"]),["enter"]),he(J(c=>le(n),["prevent"]),["space"])]},[(s(!0),t(x,null,$(Le.value,c=>(s(),t("td",{key:c.key,class:j(Xa(c)),title:We(n,c)},[c.strong?(s(),t("strong",Pt,[I(u(We(n,c)),1),Ha(n,c)?(s(),t("em",qt,u(Ha(n,c)),1)):N("",!0)])):c.action==="locate"&&n.canLocate?(s(),t("button",{key:1,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:J(Y=>ya(n,c),["stop"]),onKeydown:[he(J(Y=>ya(n,c),["stop","prevent"]),["enter"]),he(J(Y=>ya(n,c),["stop","prevent"]),["space"])]},[...a[11]||(a[11]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,zt)):c.action==="locate"?(s(),t("span",At,"--")):c.icon&&We(n,c)!=="--"?(s(),t("span",{key:3,class:j(["business-project-cell-icon",`business-project-cell-icon--${c.icon}`]),role:"img","aria-label":We(n,c)},null,10,Ft)):(s(),t("span",Vt,u(We(n,c)),1))],10,Tt))),128))],42,Lt))),128))])]),Ge.value.length?N("",!0):(s(),t("div",Bt,u(Xe.value),1))])],2)):y.value==="projectLedger"?(s(),t("div",Rt,[r("div",Yt,[hn(r("input",{"onUpdate:modelValue":a[2]||(a[2]=n=>O.value=n),type:"search",placeholder:_e.value},null,8,mt),[[yn,O.value]])]),r("div",It,[r("div",Gt,[r("strong",null,u(Je.value),1),r("span",null,u(Ze.value),1)]),r("small",null,"已定位 "+u(Qe.value)+" 处",1),ke.value>1?(s(),t("div",Kt,[r("button",{type:"button",class:"business-project-ledger__page-button is-previous",title:"上一页","aria-label":"上一页",disabled:se.value<=1,onClick:a[3]||(a[3]=n=>Ea(-1))},[...a[12]||(a[12]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Wt),r("span",null,u(se.value)+" / "+u(ke.value),1),r("button",{type:"button",class:"business-project-ledger__page-button is-next",title:"下一页","aria-label":"下一页",disabled:se.value>=ke.value,onClick:a[4]||(a[4]=n=>Ea(1))},[...a[13]||(a[13]=[r("i",{"aria-hidden":"true"},null,-1)])],8,Dt)])):N("",!0)]),r("div",{class:"business-project-ledger__list business-project-frame",style:P({"--ledger-row-count":da.value})},[(s(!0),t(x,null,$(Ke.value,n=>(s(),t("div",{key:n.key||n.name,class:j(["business-project-ledger__row",{"is-active":xe.value===(n.key||n.name),"is-locatable":n.canLocate,"is-unlocated":n.canLocate===!1}]),tabindex:n.canLocate?0:-1,onClick:c=>le(n),onKeydown:[he(J(c=>le(n),["prevent"]),["enter"]),he(J(c=>le(n),["prevent"]),["space"])]},[r("div",Ot,[r("strong",{title:Ja(n)},u(Ja(n)),9,Ht),r("div",null,[r("span",{title:Za(n)},u(Za(n)),9,Xt)])]),n.canLocate?(s(),t("button",{key:0,type:"button",class:"business-project-locate-button",title:"定位并查看详情","aria-label":"定位并查看详情",onClick:J(c=>le(n,!0),["stop"]),onKeydown:[he(J(c=>le(n,!0),["stop","prevent"]),["enter"]),he(J(c=>le(n,!0),["stop","prevent"]),["space"])]},[...a[14]||(a[14]=[r("span",{class:"business-project-cell-icon business-project-cell-icon--locate","aria-hidden":"true"},null,-1)])],40,Et)):(s(),t("span",Jt,"暂无坐标"))],42,Ut))),128)),Ke.value.length?N("",!0):(s(),t("div",Zt,u(Xe.value),1))],4)])):y.value==="specGrid"?(s(),t("div",Qt,[(s(!0),t(x,null,$(o.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-spec-grid__row"},[r("span",el,u(String(c+1).padStart(2,"0")),1),r("span",{class:"business-spec-grid__name",title:n.name},u(n.name),9,al),r("strong",nl,[I(u(A(n)),1),n.unit?(s(),t("em",sl,u(n.unit),1)):N("",!0)]),r("div",tl,[(s(!0),t(x,null,$(n.specs||[],Y=>(s(),t("span",{key:Y.label,title:`${Y.label} ${H(Y.value)}${Y.unit||""}`},[r("small",null,u(Y.label),1),r("strong",null,[I(u(H(Y.value)),1),Y.unit?(s(),t("em",rl,u(Y.unit),1)):N("",!0)])],8,ll))),128))])]))),128))])):y.value==="supportMatrix"?(s(),t("div",{key:14,class:j(["business-support-matrix",{"is-with-total":d.value}])},[(cn=b.panel)!=null&&cn.note?(s(),t("small",ol,u(b.panel.note),1)):N("",!0),r("div",ul,[a[15]||(a[15]=r("span",null,"乡镇",-1)),d.value?(s(),t("span",il,u(((dn=b.panel)==null?void 0:dn.totalLabel)||"合计"),1)):N("",!0),(s(!0),t(x,null,$(ne.value,n=>(s(),t("span",{key:n.key},u(n.headerName||n.name),1))),128))]),r("div",cl,[(s(!0),t(x,null,$(i.value,n=>(s(),t("div",{key:n.key||n.name},[r("span",null,u(ge(n.name)),1),d.value?(s(),t("strong",{key:0,class:"business-support-matrix__total",title:en(n)},u(en(n)),9,dl)):N("",!0),(s(!0),t(x,null,$(ne.value,c=>(s(),t("strong",{key:c.key,title:Qa(n,c)},u(Qa(n,c)),9,_l))),128))]))),128))])],2)):y.value==="table"?(s(),t("div",{key:15,class:j(["business-table",{"is-dense":Ye.value.length>8}])},[r("div",vl,[(s(),t(x,null,$(2,n=>r("div",{key:n,class:"business-table-head-group"},[...a[16]||(a[16]=[r("span",null,"乡镇",-1),r("span",null,"亩产",-1)])])),64))]),r("div",pl,[(s(!0),t(x,null,$(Ye.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-table-row",{"is-active":c===W.value}]),"data-chart-tooltip":X(n)},[r("span",hl,u(n.name),1),r("div",yl,[r("strong",null,[I(u(A(n)),1),n.unit?(s(),t("em",fl,u(n.unit),1)):N("",!0)]),r("i",null,[r("b",{style:P({width:`${ze(n)}%`,background:rn(c)})},null,4)])])],10,gl))),128))])],2)):y.value==="stackColumn"?(s(),t("div",{key:16,class:j(["business-stack-columns",[`is-variant-${((_n=b.panel)==null?void 0:_n.variant)||"standard"}`,{"is-dense":de.value.length>6,"is-with-values":Da()}]])},[r("div",bl,[(s(!0),t(x,null,$(ne.value,(n,c)=>(s(),t("span",{key:n.key||n.name},[r("i",{style:P({background:Va(n,c)})},null,4),I(u(n.name),1)]))),128)),$e(de.value[0])?(s(),t("small",xl,"单位:"+u($e(de.value[0])),1)):N("",!0)]),r("div",kl,[(s(!0),t(x,null,$(de.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-stack-item",{"is-active":c===W.value}]),"data-hover-value":Wa(n),title:Wa(n),"data-chart-tooltip":Tn(n)},[Da()&&we(n)>0?(s(),t("strong",$l,[I(u(ha(n))+u(H(we(n))),1),$e(n)?(s(),t("em",Ml,u($e(n)),1)):N("",!0)])):N("",!0),r("div",jl,[(s(!0),t(x,null,$(Fa(n),(Y,pr)=>(s(),t("i",{key:Y.key||Y.name,style:P({height:`${Y.percent}%`,background:Y.color,color:Y.color}),"data-chart-tooltip":Pn(n,Y)},null,12,Nl))),128))]),r("span",null,u(ea(n.name)),1)],10,wl))),128))])],2)):y.value==="peak"?(s(),t("div",{key:17,class:j(["business-peaks",{"is-dense":V.value.length>5}])},[me.value?(s(),t("small",Cl,"单位:"+u(me.value),1)):N("",!0),(s(!0),t(x,null,$(V.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-peak-item",style:P({"--peak-height":`${ze(n)}%`,"--peak-color":m(c)}),"data-hover-value":aa(n),title:aa(n),"data-chart-tooltip":X(n)},[r("strong",null,[I(u(A(n)),1),Ya(n)?(s(),t("em",Ll,u(Ya(n)),1)):N("",!0)]),a[17]||(a[17]=r("div",{class:"business-peak-stage"},[r("i")],-1)),r("span",null,u(ea(n.name)),1)],12,Sl))),128))],2)):y.value==="line"?(s(),t("div",Tl,[r("div",{class:"business-line-chart",onMousemove:Kn,onMouseleave:a[5]||(a[5]=n=>q.value=null)},[(s(),t("svg",Pl,[a[18]||(a[18]=r("path",{class:"business-line-grid",d:"M0 18H320M0 44H320M0 70H320"},null,-1)),r("polyline",{class:"business-line-area",points:Nn.value},null,8,ql),r("polyline",{class:"business-line-stroke",points:Sa.value},null,8,zl),(s(!0),t(x,null,$(te.value,(n,c)=>(s(),t("circle",{key:c,cx:n.x,cy:n.y,r:"3",class:j(["business-line-dot",{"is-active":c===Aa.value}])},null,10,Al))),128)),(s(!0),t(x,null,$(te.value,(n,c)=>(s(),t("circle",{key:`hit-${c}`,cx:n.x,cy:n.y,r:"13",class:"business-line-hit",onMouseenter:Y=>q.value=c},null,40,Fl))),128))])),r("div",{class:"business-line-hover-zones",style:P(qa.value)},[(s(!0),t(x,null,$(te.value,(n,c)=>(s(),t("i",{key:`zone-${c}`,onMouseenter:Y=>q.value=c},null,40,Vl))),128))],4),qe.value?(s(),t("div",{key:0,class:"business-line-tooltip",style:P(Sn.value)},[r("span",null,u(qe.value.item.name),1),r("strong",null,[I(u(A(qe.value.item)),1),qe.value.item.unit?(s(),t("em",Bl,u(qe.value.item.unit),1)):N("",!0)])],4)):N("",!0)],32),r("div",{class:"business-line-labels",style:P(qa.value)},[(s(!0),t(x,null,$(Pa.value,n=>(s(),t("span",{key:n.key||n.name},u(ea(n.name)),1))),128))],4)])):y.value==="balanceGaugeGrid"?(s(),t("div",{key:19,class:j(["business-balance-gauge-grid",{"is-single":be.value.length===1}])},[(s(!0),t(x,null,$(be.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-balance-gauge-card",{"is-active":c===W.value}]),style:P(Gn(n)),"data-chart-tooltip":Ga(n)},[r("div",Yl,[r("strong",null,u(fa(n)),1)]),r("div",ml,[r("div",Il,[r("strong",null,u(A(n)),1),pe(n)?(s(),t("em",Gl,u(pe(n)),1)):N("",!0)])]),r("div",Kl,u(n.name),1),n.extra?(s(),t("div",Wl,u(n.extra),1)):N("",!0)],14,Rl))),128))],2)):y.value==="gauge"?(s(),t("div",{key:20,class:j(["business-gauges",{"is-dense":Se.value.length>3}])},[(s(!0),t(x,null,$(Se.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:j(["business-gauge-item",{"is-active":c===W.value,"is-safe":re(n)<=0,"is-low-rate":re(n)>0&&re(n)<5,"is-alert":re(n)>100}]),style:P({"--gauge-color":Yn(n,c),"--needle-rotate":`${Rn(n)}deg`}),"data-chart-tooltip":Ga(n)},[r("div",Ul,[(s(),t("svg",Ol,[a[19]||(a[19]=r("path",{class:"business-gauge-track",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100"},null,-1)),r("path",{class:"business-gauge-progress",d:"M24 76 A52 52 0 0 1 128 76",pathLength:"100","stroke-dasharray":`${an(n)} 100`},null,8,Hl),a[20]||(a[20]=r("path",{class:"business-gauge-glow",d:"M38 76 A38 38 0 0 1 114 76"},null,-1))])),a[21]||(a[21]=r("i",{class:"business-gauge-needle"},null,-1)),a[22]||(a[22]=r("b",{class:"business-gauge-pivot"},null,-1)),r("div",Xl,[r("strong",null,[I(u(A(n)),1),pe(n)?(s(),t("em",El,u(pe(n)),1)):N("",!0)]),r("small",null,u(fa(n)),1)])]),r("span",Jl,u(n.name),1),n.extra?(s(),t("small",Zl,u(n.extra),1)):N("",!0)],14,Dl))),128))],2)):y.value==="heat"?(s(),t("div",{key:21,class:j(["business-heat",{"is-dense":ce.value.length>6}])},[(s(!0),t(x,null,$(ce.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-heat-cell",style:P(Vn(n,c)),"data-chart-tooltip":X(n)},[a[23]||(a[23]=r("i",null,null,-1)),r("span",null,u(n.name),1),r("strong",null,[I(u(A(n)),1),n.unit?(s(),t("em",er,u(n.unit),1)):N("",!0)])],12,Ql))),128))],2)):y.value==="split"?(s(),t("div",{key:22,class:j(["business-split",{"is-dense":Ce.value.length>8||((vn=b.panel)==null?void 0:vn.variant)==="compact"}])},[r("div",ar,[(s(!0),t(x,null,$(Ce.value,(n,c)=>(s(),t("i",{key:n.key||n.name,style:P({width:`${Wn(n)}%`,background:m(c)}),"data-chart-tooltip":Ka(n)},null,12,nr))),128))]),r("div",sr,[(s(!0),t(x,null,$(Ce.value,(n,c)=>(s(),t("div",{key:n.key||n.name,class:"business-split-row","data-chart-tooltip":Ka(n)},[r("span",null,[r("i",{style:P({background:m(c)})},null,4),I(u(n.name),1)]),r("strong",null,u(A(n))+u(n.unit),1)],8,tr))),128))])],2)):(s(),Ue(bn,{key:23,rows:C.value,compact:""},null,8,["rows"])):(s(),t("div",fs,"暂无业务统计数据")),(s(),Ue(rs,{to:"body"},[Q.value.visible?(s(),t("div",{key:0,class:j(["business-chart-tooltip",`is-${b.visualVersion}`]),style:P(wn.value)},[r("strong",null,u(Q.value.title),1),(s(!0),t(x,null,$(Q.value.lines,n=>(s(),t("span",{key:n},u(n),1))),128))],6)):N("",!0)]))],34)}}};const lr={class:"feature-info-actions"},rr={key:0},or={class:"feature-info"},ur={key:0,class:"feature-info-state",role:"status","aria-live":"polite"},ir={key:1,class:"feature-info-state",role:"status"},cr={key:2,class:"feature-info-state",role:"status"},dr={key:0,class:"feature-table"},_r=["title"],vr={key:1,class:"feature-info-state is-inline"},kr={__name:"FeatureInfoPanel",props:{feature:{type:Object,default:null},empty:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},height:{type:Number,default:380},width:{type:Number,default:430},compactGrassland:{type:Boolean,default:!1},closable:{type:Boolean,default:!1}},emits:["close"],setup(b,{emit:K}){const p=b,Ve=K,fe=[[["townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在乡镇"],[["village_name","cunName","cun_name","cun","c_name","cmc"],"所在村"],[["full_name"],"所在区域"],[["land_number","patch_no"],"图斑编号"],[["areaWanMu","area_wan_mu","area_mu","acreage","mj","xbmj","tbdlmj","tbmj","geomj","shape_area"],"图斑面积"]],L=[[["investigator"],"调查人"],[["survey_time","dc_rq","sjnf","delimitation_year"],"调查时间"],[["adjust_opinion_name"],"调整意见"],[["adjust_reason"],"调整原因"]],D=[[["pastureName","pasture_name"],"所属牧场"],[["recognizedYakCount","recognized_yak_count","yakCount","yak_count"],"牦牛数量"],[["acreage","area_mu","mj","xbmj","tbdlmj","tbmj","geomj","shape_area","areaWanMu","area_wan_mu"],"草场面积"],[["grasslandAreaMu","grassland_area_mu"],"草地面积"],[["wetlandAreaMu","wetland_area_mu"],"湿地面积"],[["otherAreaMu","other_area_mu"],"其他面积"],[["resourceFreshMuYield","resource_fresh_mu_yield"],"综合鲜草亩产"],[["resourceDryMuYield","resource_dry_mu_yield"],"综合干草亩产"],[["grasslandVegetationCover","grassland_vegetation_cover"],"草地植被盖度"],[["fullName","full_name","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town_code","areaCode","area_code"],"所在区域"]],C={"artificial-grassland":[[["plot_name","name"],"图斑名称"],[["plot_code"],"图斑编号"],[["town","town_name"],"所在乡镇"],[["plot_category"],"图斑类别"],[["data_status"],"数据状态"],[["source_type"],"资料类型"],[["data_source"],"数据来源"]],woodland:[[["dlmc","layer_class_name"],"地类名称"],...fe,[["qsdwmc"],"权属单位"],[["zldwmc"],"坐落单位"],[["lin_ban"],"林班"],[["xiao_ban"],"小班"],[["ld_qs","tdsyqs","qsxz","ownership_name","ownership"],"土地权属"],[["gjgyl_bhdj","bh_dj","protection_level_name","protection_level"],"保护等级"],[["sen_lin_lb","forest_type"],"森林类别"],[["lin_zhong","forest_category"],"林种"],[["zl_dj","quality_level_name","quality_level"],"质量等级"],[["you_shi_sz","tree_species","dominant_tree_species"],"优势树种"],[["qi_yuan","origin"],"起源"],[["ling_zu"],"龄组"],[["yu_bi_du"],"郁闭度"],[["pingjun_sg"],"平均树高"],[["mei_gq_zs"],"每公顷株数"],[["mei_gq_xj"],"每公顷蓄积"],[["huo_lm_xj"],"活立木蓄积"],[["sheng_wu_l"],"生物量"],[["tan_chu_l"],"碳储量"],[["stqwmc"],"生态区位"],[["po_du","slope"],"坡度"],[["po_wei"],"坡位"],[["tu_ceng_hd","soil_depth"],"土层厚度"],...L],grassland:[...D,[["pastureName","pasture_name"],"所属牧场"],...fe,[["land_class_name","landUseName","land_use_name","landUse","land_use"],"地类名称"],[["landType","land_type"],"资源大类"],[["resourceType","resource_type"],"资源类别"],[["grasslandCategory","grassland_category_name","grassland category","base_grass"],"草原类别"],[["basic_type_name"],"基本草原类型"],[["grassTypeName","grass_type_name","grassland_type_name","grassType","grass_type"],"草原类"],[["grassMinType","grass_min_type"],"草原型"],[["grasslandLevelName","grassland_level_name","grasslandLevel","grassland_level","level_name","level"],"草原级别"],[["degradationLevelName","degradation_level_name","degradationLevel","degradation_level"],"退化等级"],[["vegetationStructureName","vegetation_structure_name","vegetationStructure","vegetation_structure"],"植被结构"],[["vegetationCover","vegetation_cover"],"植被盖度"],[["lbmjbl"],"裸斑面积比例"],[["dominanceLevel","dominance_level"],"优势度"],[["dominantGrassSpecies","dominant_grass_species"],"优势草种"],[["functionalCategory","functional_category"],"功能类别"],[["xcYield","xc_yield"],"鲜草产量"],[["xcMuYield","xc_mu_yield","xbXcMuYield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["xbXcYield","xb_xc_yield"],"小班鲜草产量"],[["xbXcMuYield","xb_xc_mu_yield"],"小班鲜草亩产"],[["gcYield","gc_yield"],"干草产量"],[["gcMuYield","gc_mu_yield","xbGcMuYield","xb_gc_mu_yield"],"干草亩产"],[["xbGcYield","xb_gc_yield"],"小班干草产量"],[["xbGcMuYield","xb_gc_mu_yield"],"小班干草亩产"],[["elevation"],"海拔"],[["landformName","landform_name","landform"],"地貌"],[["slope"],"坡度"],[["aspect"],"坡向"],[["soilDepth","soil_depth","tu_ceng_hd"],"土层厚度"],[["soil texture"],"土壤质地"],[["sddl"],"三调地类"],[["hqlm"],"划区轮牧"],[["cdsyq"],"草地所有权"],[["cdsyq2"],"草地使用权"],[["cdjjq"],"草地经营权"],...L],wetland:[[["grass_min_type","grassland_category_name","grassland_type_name","land_class_name","land_use_name"],"湿地类型"],...fe,[["grass_type_name","grass_type"],"湿地草地型"],[["grassland_level_name","grassland_level","level_name","level"],"湿地级别"],[["vegetation_structure_name","vegetation_structure"],"植被结构"],[["vegetation_cover"],"植被盖度"],[["dominant_grass_species"],"优势草种"],[["functional_category"],"功能类别"],[["xc_yield","xb_xc_yield"],"鲜草产量"],[["xc_mu_yield","xb_xc_mu_yield","mu_yield"],"鲜草亩产"],[["edible_xc_yield"],"可食鲜草产量"],[["edible_xc_mu_yield"],"可食鲜草亩产"],[["gc_yield","xb_gc_yield"],"干草产量"],[["elevation"],"海拔"],[["landform_name","landform"],"地貌"],[["soil_depth","tu_ceng_hd"],"土层厚度"],...L],ecological:[[["type"],"管控分区"],[["project_name","projectName","name"],"项目名称"],[["project_category","projectCategory"],"项目类型"],[["company"],"实施单位"],[["leader"],"负责人"],[["project_status","projectStatus","status"],"项目状态"],[["full_name","fullName"],"所在区域"],[["address"],"项目地址"],[["measure_type"],"措施类型"],[["feature_role"],"要素类型"],[["township"],"涉及乡镇"],[["year"],"建设年份"],[["progress_count","progressCount"],"进度记录"],[["totalAcreage"],"总面积"],[["cdAcreage"],"草地面积"],[["sdAcreage"],"湿地面积"],[["area_mu"],"治理面积"],[["length_meter"],"工程长度"],[["cdScl"],"草地生产力"],[["sdScl"],"湿地生产力"],[["geometry_type"],"几何类型"]]},G={land_type:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},landType:{1:"草地",2:"湿地",caodi:"草地",shidi:"湿地",woodland:"林地",grassland:"草地",wetland:"湿地"},vegetation_structure:{1:"草本型"},landform:{2:"平原",5:"中山",6:"高山"},land_use:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},sddl:{"0401":"天然牧草地","0403":"人工牧草地","0404":"其他草地"},ld_qs:{10:"集体林地",20:"国有或其他"},qsxz:{10:"集体林地",20:"国有或其他"},tdsyqs:{10:"集体林地",20:"国有或其他"},gjgyl_bhdj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},bh_dj:{0:"未划定",1:"国家一级公益林",2:"国家二级公益林"},zl_dj:{2:"二级质量",3:"三级质量",4:"四级质量",5:"五级质量"},po_wei:{1:"脊部",2:"上坡",3:"中坡",4:"下坡",5:"谷地",6:"平地"}},Be=new Set(["lin_zhong","sen_lin_lb","you_shi_sz","qi_yuan","ling_zu","po_xiang","tu_rang_lx","ownership","ownership_name","protection_level","forest_category","forest_type","quality_level","origin","tree_species","dominant_tree_species","base_grass","degradation_level","land_class","grass_type"]),Re={xiang:"所在乡镇",xzqdm:"所在乡镇",xzqmc:"所在乡镇",town_code:"所在乡镇",area_code:"所在乡镇",areaCode:"所在乡镇",cun:"所在村",cmc:"所在村",c_name:"所在村",acreage:"图斑面积",mj:"图斑面积",xbmj:"小班面积",tbdlmj:"图斑地类面积",geomj:"图斑面积",tbmj:"图斑面积",shape_area:"图斑面积",area_mu:"图斑面积",pastureName:"所属牧场",pasture_name:"所属牧场",pastureAcreage:"牧场面积",pasture_acreage:"牧场面积",relationAcreage:"关系面积",relation_acreage:"关系面积",pastureOverlapAcreage:"重叠面积",pasture_overlap_acreage:"重叠面积",relatedPastureCount:"关联牧场数",related_pasture_count:"关联牧场数",relatedPastureNames:"关联牧场",related_pasture_names:"关联牧场",yakCount:"牦牛数量",yak_count:"牦牛数量",recognizedYakCount:"牦牛数量",recognized_yak_count:"牦牛数量",grasslandAreaMu:"草地面积",grassland_area_mu:"草地面积",wetlandAreaMu:"湿地面积",wetland_area_mu:"湿地面积",otherAreaMu:"其他面积",other_area_mu:"其他面积",grasslandAreaPercent:"草地占比",grassland_area_percent:"草地占比",wetlandAreaPercent:"湿地占比",wetland_area_percent:"湿地占比",otherAreaPercent:"其他占比",other_area_percent:"其他占比",resourceFreshMuYield:"综合鲜草亩产",resource_fresh_mu_yield:"综合鲜草亩产",resourceDryMuYield:"综合干草亩产",resource_dry_mu_yield:"综合干草亩产",resourceFreshYieldJin:"鲜草产量",resource_fresh_yield_jin:"鲜草产量",resourceDryYieldJin:"干草产量",resource_dry_yield_jin:"干草产量",grasslandVegetationCover:"草地植被盖度",grassland_vegetation_cover:"草地植被盖度",grass_min_type:"草原型",grassMinType:"草原型",grass_type:"草原类",grassType:"草原类",grass_type_name:"草原类",grassTypeName:"草原类",grassland_type_name:"草原类",patch_no:"图斑编号",land_number:"图斑编号",grassland_level:"草原级别",grasslandLevel:"草原级别",grassland_level_name:"草原级别",grasslandLevelName:"草原级别",level:"等级",level_name:"等级",land_class_name:"地类名称",land_use_name:"地类名称",landUseName:"地类名称",landUse:"地类名称",basic_type_name:"草原类型",grassland_category_name:"草原类别",grasslandCategory:"草原类别",degradation_level:"退化等级",degradationLevel:"退化等级",degradation_level_name:"退化等级",degradationLevelName:"退化等级",vegetation_structure:"植被结构",vegetationStructure:"植被结构",vegetation_structure_name:"植被结构",vegetationStructureName:"植被结构",xc_yield:"鲜草产量",xcYield:"鲜草产量",gc_yield:"干草产量",gcYield:"干草产量",xc_mu_yield:"鲜草亩产",xcMuYield:"鲜草亩产",gc_mu_yield:"干草亩产",gcMuYield:"干草亩产",mu_yield:"亩产",edible_xc_yield:"可食鲜草产量",edible_xc_mu_yield:"可食鲜草亩产",dlmc:"地类名称",qsdwmc:"权属单位",zldwmc:"坐落单位",lin_ban:"林班",xiao_ban:"小班",ld_qs:"土地权属",tdsyqs:"土地权属",qsxz:"土地权属",gjgyl_bhdj:"保护等级",bh_dj:"保护等级",sen_lin_lb:"森林类别",lin_zhong:"林种",zl_dj:"质量等级",you_shi_sz:"优势树种",qi_yuan:"起源",cdsyq:"草地所有权",cdsyq2:"草地使用权",cdjjq:"草地经营权",resource_type:"资源类型","grassland category":"草原类别",dominant_grass_species:"优势草种",functional_category:"功能类别",functionalCategory:"功能类别",vegetation_cover:"植被盖度",vegetationCover:"植被盖度",xb_xc_yield:"小班鲜草产量",xbXcYield:"小班鲜草产量",xb_gc_yield:"小班干草产量",xbGcYield:"小班干草产量",base_grass:"基本草原",hqlm:"划区轮牧",elevation:"海拔",soil_depth:"土层厚度","soil texture":"土壤质地",aspect:"坡向",slope:"坡度",landform:"地貌",landform_name:"地貌",sddl:"三调地类",dominance_level:"优势度",investigator:"调查人",survey_time:"调查时间",land_type:"土地类型",landType:"土地类型",status:"状态",type:"类型",xb_gc_mu_yield:"干草亩产",xbGcMuYield:"干草亩产",xb_xc_mu_yield:"鲜草亩产",xbXcMuYield:"鲜草亩产",grass_yield:"草地产量",grassYield:"草地产量",full_name:"所在区域",fullName:"所在区域",gyl_bhlx:"公益林保护类型",ling_zu:"龄组",yu_bi_du:"郁闭度",pingjun_xj:"平均胸径",mei_gq_zs:"每公顷株数",mei_gq_xj:"每公顷蓄积",stqwmc:"生态区位",lyfq:"林业分区",qykz:"区域控制",po_wei:"坡位",tu_rang_zd:"土壤质地",zzsxmc:"主导属性",lin_chang:"林场",di_mao:"地貌",jt_qw:"交通区位",zbfglx:"植被覆盖类型",disaster_c:"灾害类型",dispe:"病虫害",pingjun_sg:"平均树高",huo_lm_xj:"活立木蓄积",sheng_wu_l:"生物量",tan_chu_l:"碳储量",g_cheng_lb:"工程类别",shi_quan_d:"事权等级",sf_tbq:"是否特别区",td_th_lx:"土地退化类型",project_name:"项目名称",projectName:"项目名称",project_category:"项目类型",projectCategory:"项目类型",company:"实施单位",leader:"负责人",project_status:"项目状态",projectStatus:"项目状态",address:"项目地址",conclusion:"工程结论",progress_count:"进度记录",progressCount:"进度记录",measure_type:"措施类型",measureType:"措施类型",feature_role:"要素类型",featureRole:"要素类型",township:"涉及乡镇",year:"建设年份",length_meter:"工程长度",lengthMeter:"工程长度",geometry_type:"几何类型",geometryType:"几何类型",totalAcreage:"总面积",cdAcreage:"草地面积",sdAcreage:"湿地面积",cdScl:"草地生产力",sdScl:"湿地生产力"},Z=new Set(Object.keys(Re)),Ce=new Set(["pingjun_sg","pingjun_xj","mei_gq_zs","mei_gq_xj","huo_lm_xj","sheng_wu_l","tan_chu_l","yu_bi_du","grass_yield","xb_xc_yield","xb_xc_mu_yield","xc_mu_yield","xb_gc_yield","xb_gc_mu_yield","gc_mu_yield"]),Oe=new Set(["xb_xc_yield","xb_gc_yield","grass_yield","gc_yield","xc_yield","yield","output","remark1","remark2","remark3","remark4","remark5","remarks"]),V=new Set(["full_name","fullName","townName","town_name","xiangName","xiang_name","xiang","xzqmc","xzqdm","town","town_code","areaCode","area_code"]),Ye=[...is].sort((o,i)=>i.length-o.length),ae=v(()=>{var o;return((o=p.feature)==null?void 0:o.properties)||{}}),me=v(()=>{var o,i,d;return((i=(o=p.feature)==null?void 0:o.feature)==null?void 0:i.geometry)||((d=p.feature)==null?void 0:d.geometry)||null}),oe=v(()=>{var d,w;const o=String(((w=(d=p.feature)==null?void 0:d.layer)==null?void 0:w.key)||"").toLowerCase(),i=ae.value;return o.includes("artificial-grassland")||String(i.stageKey||"")==="artificial-grassland"}),ce=v(()=>{var S,f,q,B,U;const o=String(((S=p.feature)==null?void 0:S.id)||"").toLowerCase(),i=String(((q=(f=p.feature)==null?void 0:f.layer)==null?void 0:q.key)||"").toLowerCase(),d=String(((U=(B=p.feature)==null?void 0:B.layer)==null?void 0:U.layerName)||"").toLowerCase(),w=`${i} ${d}`,k=ae.value;return oe.value?"artificial-grassland":w.includes("national-park")||w.includes("restoration")||k.project_name||k.project_category||k.totalAcreage?"ecological":k.dlmc||o.includes("woodland")||o.includes("t_woodland")||w.includes("woodland")?"woodland":w.includes("wetland")||w.includes("shidi")||o.includes("shidi")||k.land_type==="shidi"||k.landType==="shidi"||k.land_type==="湿地"||k.landType==="湿地"||k.land_type===2||k.landType===2||k.landType==="2"?"wetland":w.includes("grassland")||w.includes("caodi")||k.grassland_category_name||k.grasslandCategory||k.basic_type_name||o.includes("caodi")||k.land_type==="caodi"||k.landType==="caodi"||k.land_type===1||k.landType===1||k.landType==="1"?"grassland":"woodland"}),Se=v(()=>{const o=[],i=new Set,d=ce.value==="grassland",w=(d||ce.value==="wetland")&&p.compactGrassland;(w?D:C[ce.value]||C.woodland).forEach(([f,q])=>{const B=ia(ae.value,f,q,i);B&&!o.some(U=>U.label===B.label)&&(o.push(B),i.add(B.sourceKey))});const S=d?"草场面积":"图斑面积";return!oe.value&&!o.some(f=>f.label===S||f.label==="图斑面积")&&de(o,i,S,Ke(me.value),"geometry-area"),w?o.slice(0,10):(Object.entries(ae.value).forEach(([f,q])=>{if(i.has(f)||Ee(f,q))return;const B=xe(f,q);O(B)&&(o.some(U=>U.value===B||U.label===(Re[f]||Qe(f)))||(o.push({key:`fallback-${f}`,sourceKey:f,label:Re[f]||Qe(f),value:B}),i.add(f)))}),o)}),be=v(()=>Se.value.map((o,i)=>Fe(Ae({},o),{displayOrder:ne(o,i)})).sort((o,i)=>o.displayOrder-i.displayOrder));function ne(o,i){const d=(o==null?void 0:o.label)||"",w=String((o==null?void 0:o.sourceKey)||"").toLowerCase();return["所属牧场","牦牛数量","草场面积","草地面积","湿地面积","其他面积","综合鲜草亩产","综合干草亩产","草地植被盖度","所在区域","牧场面积","关系面积","重叠面积","关联牧场数","关联牧场"].includes(d)||["图斑名称","所在乡镇","所在村","所在区域","图斑编号","图斑类别","数据状态","资料类型","数据来源","图斑面积","小班面积","图斑地类面积","地类名称","湿地类型"].includes(d)?i:["基本草原类型","草原类型","草原类","草原型","湿地草地型","草原级别","湿地级别","退化等级","功能类别","保护等级","森林类别","林种","质量等级","优势树种","起源","龄组"].includes(d)?100+i:d.includes("产量")||d.includes("亩产")||d.includes("植被")||d.includes("优势草种")||d.includes("优势度")||d.includes("海拔")||d.includes("地貌")||d.includes("坡")||d.includes("土壤")||d.includes("郁闭度")||d.includes("树高")||d.includes("蓄积")||d.includes("生物量")||d.includes("碳储量")?200+i:d.includes("权属")||d.includes("所有权")||d.includes("使用权")||d.includes("经营权")||d.includes("调查")||d.includes("调整")||d.includes("划区")||d.includes("单位")||w.includes("owner")||w.includes("qsdw")||w.includes("zldw")?300+i:150+i}function de(o,i,d,w,k){!O(w)||o.some(S=>S.label===d||S.value===w)||(o.push({key:`static-${k}`,sourceKey:k,label:d,value:w}),i.add(k))}function ia(o,i,d,w=new Set){for(const k of i)if(!(w.has(k)||Te(k))&&O(o==null?void 0:o[k])){const S=xe(k,o[k]);if(!O(S))continue;return{key:`${d}-${k}`,sourceKey:k,label:d,value:S}}return null}function O(o){return o!=null&&o!==""&&o!==" "&&o!=="null"&&o!=="undefined"}function xe(o,i){var k;if(!O(i))return"";if((k=G[o])!=null&&k[String(i)])return G[o][String(i)];if(V.has(o))return ca(o,i);if(["cun","village_code"].includes(o)&&_e(i))return"";if(["grassland_level","grasslandLevel","level"].includes(o)&&Xe(i))return ce.value==="wetland"?`${Number(i)}级湿地`:`${Number(i)}级草原`;if(Be.has(o)&&_e(i)||ke(o,i))return"";if(Ge(o))return se(i);if(typeof i=="number"||/^-?\d+(\.\d+)?$/.test(String(i))){const S=Number(i);if(S===0&&Ce.has(o))return"";const f=Number.isInteger(S)?`${S}`:`${Number(S.toFixed(2))}`;if(["xbmj","tbdlmj","geomj","area_square_meter"].includes(o))return`${Ie(S/666.6667)} 亩`;if(["grasslandAreaMu","grassland_area_mu","wetlandAreaMu","wetland_area_mu","otherAreaMu","other_area_mu"].includes(o)){const B=(o.startsWith("grassland")?["grasslandAreaPercent","grassland_area_percent"]:o.startsWith("wetland")?["wetlandAreaPercent","wetland_area_percent"]:["otherAreaPercent","other_area_percent"]).map(Q=>{var ue;return(ue=ae.value)==null?void 0:ue[Q]}).find(O),U=O(B)&&Number.isFinite(Number(B))?`(${Number(Number(B).toFixed(2))}%)`:"";return`${f} 亩${U}`}return["acreage","mj","area_mu","pastureAcreage","pasture_acreage","relationAcreage","relation_acreage","pastureOverlapAcreage","pasture_overlap_acreage"].includes(o)?`${f} 亩`:["recognizedYakCount","recognized_yak_count","yakCount","yak_count"].includes(o)?`${f} 头`:["relatedPastureCount","related_pasture_count"].includes(o)?`${f} 个`:["length_meter"].includes(o)?`${f} 米`:["totalAcreage","cdAcreage","sdAcreage"].includes(o)?`${f} 万亩`:["cdScl","sdScl"].includes(o)?`${f} 万吨`:["areaWanMu","area_wan_mu"].includes(o)?`${f} 万亩`:["xc_yield","xcYield","xb_xc_yield","xbXcYield","gc_yield","gcYield","xb_gc_yield","xbGcYield","edible_xc_yield","grass_yield","grassYield","resourceFreshYieldJin","resource_fresh_yield_jin","resourceDryYieldJin","resource_dry_yield_jin"].includes(o)?`${f} 斤`:["mu_yield","xc_mu_yield","xcMuYield","gc_mu_yield","gcMuYield","xb_xc_mu_yield","xbXcMuYield","xb_gc_mu_yield","xbGcMuYield","edible_xc_mu_yield","resourceFreshMuYield","resource_fresh_mu_yield","resourceDryMuYield","resource_dry_mu_yield"].includes(o)?`${f} 斤/亩`:["vegetation_cover","vegetationCover","grasslandVegetationCover","grassland_vegetation_cover","lbmjbl","yu_bi_du"].includes(o)?`${f}%`:["elevation","tu_ceng_hd","soilDepth","soil_depth","pingjun_sg"].includes(o)?`${f} 米`:["po_du","slope"].includes(o)?`${f}°`:f}const w=String(i);return ce.value==="wetland"&&["grassland_level","grasslandLevel","level"].includes(o)?w.replace(/草原/g,"湿地"):w}function ca(o,i){if(["xiang","xzqdm","town_code","area_code","areaCode"].includes(o)){const d=He(i);if(d)return d}return Le(i)}function Le(o){const i=String(o||"").trim();if(!i)return"";const d=i.replace(/\s+/g,""),w=fn(d);if(w)return w;const k=Ye.find(q=>d.includes(q));if(k)return d.slice(d.indexOf(k));const S=d.indexOf("红原县");if(S>=0)return d.slice(S+3)||d;const f=d.match(/县(.+)$/);return(f==null?void 0:f[1])||i}function He(o){const i=String(o||"").trim();if(!i)return"";const d=i.replace(/\D/g,""),w=fn(d||i);return w||(_e(i)?"":i)}function _e(o){return/^[0-9A-Za-z_-]{1,12}$/.test(String(o).trim())}function Xe(o){return/^-?\d+(\.\d+)?$/.test(String(o).trim())}function Ie(o){return Number.isInteger(o)?`${o}`:`${Number(o.toFixed(2))}`}function Ge(o){return["survey_time","dc_rq","create_time","update_time"].includes(String(o))}function se(o){const i=String(o);return/^\d{4}-\d{2}-\d{2}/.test(i)?i.slice(0,10):i}function Te(o){const i=String(o).toLowerCase();return["geom","wkt","geometry","the_geom","raw_properties"].includes(i)||["bsm","ysdm","gid","id","objectid","object_id","fid","key_uid"].includes(i)||["shape_leng","shape_length","length","perimeter"].includes(i)?!0:["xzqdm","area_code","town_code","patch_no","land_number","plot_code"].includes(i)?!1:["di_lei","qykz","stqw","lyfq","tbybh","patch_code"].includes(i)||i.endsWith("_code")||i.endsWith("dm")||i.endsWith("_id")||["create_by","create_time","update_by","update_time"].includes(i)?!0:i.includes("geom")||i.includes("boundary")||i.includes("wkb")}function Ee(o,i){var w;if(Te(o)||!O(i))return!0;const d=String(o).toLowerCase();return!!(Oe.has(d)||d.includes("number")||d.includes("patch_no")||!Z.has(o)||_e(i)&&!((w=G[o])!=null&&w[String(i)])&&!["xiang","xzqdm","town_code","area_code","cun","land_type","grassland_level","level","gjgyl_bhdj","bh_dj","ld_qs","qsxz","tdsyqs","zl_dj"].includes(o))}function ke(o,i){var d;return!_e(i)||(d=G[o])!=null&&d[String(i)]?!1:["resource_type","grassland category","functional_category","aspect","soil_depth","soil texture","cdsyq","cdsyq2","cdjjq"].includes(o)}function Ke(o){const i=da(o);if(!i)return"";const d=i/666.6667;return d>=1e4?`${Ie(d/1e4)} 万亩`:`${Ie(d)} 亩`}function da(o){return o!=null&&o.coordinates?o.type==="Polygon"?Je(o.coordinates):o.type==="MultiPolygon"?o.coordinates.reduce((i,d)=>i+Je(d),0):0:0}function Je(o=[]){if(!o.length)return 0;const[i,...d]=o,w=Math.abs(Ze(i)),k=d.reduce((S,f)=>S+Math.abs(Ze(f)),0);return Math.max(0,w-k)}function Ze(o=[]){if(o.length<3)return 0;const i=o.reduce((S,f)=>S+Number((f==null?void 0:f[1])||0),0)/o.length,d=111320,w=d*Math.cos(i*Math.PI/180);let k=0;for(let S=0;Si.toUpperCase())}return(o,i)=>(s(),Ue(us,{class:"feature-info-card",title:"图斑详情",width:b.width,height:b.height},{extra:ja(()=>[r("div",lr,[b.feature&&!b.loading?(s(),t("span",rr,"已选图斑")):N("",!0),b.closable?(s(),t("button",{key:1,type:"button","aria-label":"关闭图斑详情",title:"关闭图斑详情",onClick:i[0]||(i[0]=J(d=>Ve("close"),["stop"]))}," 关闭 ")):N("",!0)])]),default:ja(()=>[r("div",or,[b.loading?(s(),t("div",ur,"正在查询图斑信息")):b.empty?(s(),t("div",ir,"当前点击位置未查询到图斑")):b.feature?(s(),t(x,{key:3},[be.value.length?(s(),t("div",dr,[(s(!0),t(x,null,$(be.value,d=>(s(),t("div",{key:d.key,class:"feature-row"},[r("span",null,u(d.label),1),r("strong",{title:d.value},u(d.value),9,_r)]))),128))])):(s(),t("div",vr,"当前图斑暂无可展示的业务字段"))],64)):(s(),t("div",cr,"点击地图图层查看图斑/要素信息"))])]),_:1},8,["width","height"]))}};export{kr as _,xr as a}; diff --git a/docs/assets/LayerPanel-7a55b2bc-balabala-1784045078568.css b/docs/assets/LayerPanel-7a55b2bc-balabala-1784074877048.css similarity index 100% rename from docs/assets/LayerPanel-7a55b2bc-balabala-1784045078568.css rename to docs/assets/LayerPanel-7a55b2bc-balabala-1784074877048.css diff --git a/docs/assets/LayerPanel-67768a91-1784045078568.js b/docs/assets/LayerPanel-9c0c5952-1784074877048.js similarity index 95% rename from docs/assets/LayerPanel-67768a91-1784045078568.js rename to docs/assets/LayerPanel-9c0c5952-1784074877048.js index 142b424..452805e 100644 --- a/docs/assets/LayerPanel-67768a91-1784045078568.js +++ b/docs/assets/LayerPanel-9c0c5952-1784074877048.js @@ -1 +1 @@ -import{g as o,o as r,C as P,x as q,a as u,n as g,c as s,F as h,y as k,f as m,t as b,j as A,J as z}from"./index-1784045078568.js";import{_ as H}from"./index-27149dbd-1784045078568.js";import{b as j}from"./townshipBoundaries-1b068bef-1784045078568.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],I=["onClick"],J={key:0,class:"layer-panel-empty"},R={class:"layer-panel-legend"},$=["disabled","title","onClick"],G={class:"legend-name"},Q={key:0,class:"legend-check"},U={key:1,class:"layer-panel-empty is-legend"},Z={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:232},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(y,{emit:V}){const t=y,p=V,v=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),f=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),d=o(()=>Array.isArray(t.legends)?t.legends:[]),L=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),C=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),B=o(()=>d.value.filter(_).length>1),K=o(()=>d.value.length===1),x=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),O=o(()=>{const n=t.legendOnly?0:v.value.length+f.value.length,l=t.compact?d.value.length:Math.ceil(d.value.length/2),e=n?n*32:30,a=d.value.length?30+Math.max(28,l*28):28;return Math.max(172,Math.min(520,96+e+a))}),M=o(()=>t.compact?t.height||O.value:t.height?t.height:430);function T(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const i=new Set(L.value);i.has(l)?i.delete(l):i.add(l),p("update:modelValue",Array.from(i));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return L.value.includes(String(n))}function N(n,l){var a,i;(i=(a=n.currentTarget)==null?void 0:a.blur)==null||i.call(a);const e=new Set(C.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function w(n){return C.value.includes(String(n))}function F(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),c(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function _(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function c(n){return B.value&&_(n)}return(n,l)=>(r(),P(H,{title:x.value,width:y.width,height:M.value},{default:q(()=>[u("div",{class:g(["layer-panel",{"is-legend-only":y.legendOnly,"is-compact":y.compact}])},[y.legendOnly?A("",!0):(r(),s("div",D,[(r(!0),s(h,null,k(v.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=m(()=>{},["prevent"])),onClick:a=>T(a,e.key)},[u("span",null,b(e.name),1),l[3]||(l[3]=u("i",null,null,-1))],42,E))),128)),(r(!0),s(h,null,k(f.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":w(e.key),"is-checked":w(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=m(()=>{},["prevent"])),onClick:a=>N(a,e.key)},[u("span",null,b(e.name),1),l[4]||(l[4]=u("i",null,null,-1))],42,I))),128)),!v.value.length&&!f.value.length?(r(),s("div",J,"暂无图层配置")):A("",!0)])),u("div",R,[l[5]||(l[5]=u("div",{class:"layer-panel-section-title"},"图例",-1)),d.value.length?(r(),s("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":K.value}])},[(r(!0),s(h,null,k(d.value,e=>(r(),s("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":c(e)&&e.key===y.selectedLegendKey,"is-checkable":c(e),"is-disabled":!c(e)}]),type:"button",disabled:!c(e),title:e.name,onMousedown:l[2]||(l[2]=m(()=>{},["prevent"])),onClick:a=>F(a,e)},[u("span",{class:"legend-swatch",style:z({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),u("span",G,b(e.name),1),c(e)?(r(),s("i",Q)):A("",!0)],42,$))),128))],2)):(r(),s("div",U,"暂无图例"))])],2)]),_:1},8,["title","width","height"]))}};export{Z as _}; +import{g as o,o as r,C as P,x as q,a as u,n as g,c as s,F as h,y as k,f as m,t as b,j as A,J as z}from"./index-1784074877048.js";import{_ as H}from"./index-1f5d6021-1784074877048.js";import{b as j}from"./townshipBoundaries-1b068bef-1784074877048.js";const D={key:0,class:"layer-panel-list"},E=["onClick"],I=["onClick"],J={key:0,class:"layer-panel-empty"},R={class:"layer-panel-legend"},$=["disabled","title","onClick"],G={class:"legend-name"},Q={key:0,class:"legend-check"},U={key:1,class:"layer-panel-empty is-legend"},Z={__name:"LayerPanel",props:{topicKey:{type:String,required:!0},modelValue:{type:[String,Array],default:""},legends:{type:Array,default:()=>[]},selectedLegendKey:{type:String,default:""},height:{type:Number,default:0},width:{type:Number,default:232},layers:{type:Array,default:null},overlayLayers:{type:Array,default:()=>[]},overlayKeys:{type:Array,default:()=>[]},legendOnly:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},compact:{type:Boolean,default:!1}},emits:["update:modelValue","update:selectedLegendKey","update:overlayKeys"],setup(y,{emit:V}){const t=y,p=V,v=o(()=>Array.isArray(t.layers)?t.layers:j(t.topicKey)),f=o(()=>Array.isArray(t.overlayLayers)?t.overlayLayers:[]),d=o(()=>Array.isArray(t.legends)?t.legends:[]),L=o(()=>Array.isArray(t.modelValue)?t.modelValue.map(String).filter(Boolean):t.modelValue?[String(t.modelValue)]:[]),C=o(()=>Array.isArray(t.overlayKeys)?t.overlayKeys.map(String).filter(Boolean):[]),B=o(()=>d.value.filter(_).length>1),K=o(()=>d.value.length===1),x=o(()=>t.legendOnly?"图例":t.compact?"图层":"图层控制"),O=o(()=>{const n=t.legendOnly?0:v.value.length+f.value.length,l=t.compact?d.value.length:Math.ceil(d.value.length/2),e=n?n*32:30,a=d.value.length?30+Math.max(28,l*28):28;return Math.max(172,Math.min(520,96+e+a))}),M=o(()=>t.compact?t.height||O.value:t.height?t.height:430);function T(n,l){var e,a;if((a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),t.multiple){const i=new Set(L.value);i.has(l)?i.delete(l):i.add(l),p("update:modelValue",Array.from(i));return}p("update:modelValue",t.modelValue===l?"":l)}function S(n){return L.value.includes(String(n))}function N(n,l){var a,i;(i=(a=n.currentTarget)==null?void 0:a.blur)==null||i.call(a);const e=new Set(C.value);e.has(l)?e.delete(l):e.add(l),p("update:overlayKeys",Array.from(e))}function w(n){return C.value.includes(String(n))}function F(n,l){var e,a;(a=(e=n.currentTarget)==null?void 0:e.blur)==null||a.call(e),c(l)&&p("update:selectedLegendKey",t.selectedLegendKey===l.key?"":l.key)}function _(n){return(n==null?void 0:n.selectable)===!1?!1:!!(n!=null&&n.key&&(n.cqlFilter||n.rankingValueKey))}function c(n){return B.value&&_(n)}return(n,l)=>(r(),P(H,{title:x.value,width:y.width,height:M.value},{default:q(()=>[u("div",{class:g(["layer-panel",{"is-legend-only":y.legendOnly,"is-compact":y.compact}])},[y.legendOnly?A("",!0):(r(),s("div",D,[(r(!0),s(h,null,k(v.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item",{"is-active":S(e.key),"is-checked":S(e.key)}]),type:"button",onMousedown:l[0]||(l[0]=m(()=>{},["prevent"])),onClick:a=>T(a,e.key)},[u("span",null,b(e.name),1),l[3]||(l[3]=u("i",null,null,-1))],42,E))),128)),(r(!0),s(h,null,k(f.value,e=>(r(),s("button",{key:e.key,class:g(["layer-panel-item is-overlay",{"is-active":w(e.key),"is-checked":w(e.key)}]),type:"button",onMousedown:l[1]||(l[1]=m(()=>{},["prevent"])),onClick:a=>N(a,e.key)},[u("span",null,b(e.name),1),l[4]||(l[4]=u("i",null,null,-1))],42,I))),128)),!v.value.length&&!f.value.length?(r(),s("div",J,"暂无图层配置")):A("",!0)])),u("div",R,[l[5]||(l[5]=u("div",{class:"layer-panel-section-title"},"图例",-1)),d.value.length?(r(),s("div",{key:0,class:g(["layer-panel-legend-grid",{"is-single":K.value}])},[(r(!0),s(h,null,k(d.value,e=>(r(),s("button",{key:e.key||e.name,class:g(["layer-panel-legend-row",{"is-selected":c(e)&&e.key===y.selectedLegendKey,"is-checkable":c(e),"is-disabled":!c(e)}]),type:"button",disabled:!c(e),title:e.name,onMousedown:l[2]||(l[2]=m(()=>{},["prevent"])),onClick:a=>F(a,e)},[u("span",{class:"legend-swatch",style:z({backgroundColor:e.fillColor,borderColor:e.strokeColor||e.fillColor})},null,4),u("span",G,b(e.name),1),c(e)?(r(),s("i",Q)):A("",!0)],42,$))),128))],2)):(r(),s("div",U,"暂无图例"))])],2)]),_:1},8,["title","width","height"]))}};export{Z as _}; diff --git a/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784045078568.css b/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784074877048.css similarity index 100% rename from docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784045078568.css rename to docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784074877048.css diff --git a/docs/assets/SmartChartRenderer-4996c796-1784045078568.js b/docs/assets/SmartChartRenderer-aa5ca709-1784074877048.js similarity index 97% rename from docs/assets/SmartChartRenderer-4996c796-1784045078568.js rename to docs/assets/SmartChartRenderer-aa5ca709-1784074877048.js index 182f447..ce2b346 100644 --- a/docs/assets/SmartChartRenderer-4996c796-1784045078568.js +++ b/docs/assets/SmartChartRenderer-aa5ca709-1784074877048.js @@ -1,2 +1,2 @@ -var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,L as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1784045078568.js";import{H as j}from"./index.esm.min-43166a2f-1784045078568.js";const G={class:"smart-chart-header"},I={key:0},M={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} +var D=Object.defineProperty,R=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,P=Object.prototype.propertyIsEnumerable;var L=(a,r,o)=>r in a?D(a,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):a[r]=o,m=(a,r)=>{for(var o in r||(r={}))H.call(r,o)&&L(a,o,r[o]);if(z)for(var o of z(r))P.call(r,o)&&L(a,o,r[o]);return a},d=(a,r)=>R(a,W(r));import{g as p,q as Z,A as F,L as b,o as g,c as h,a as y,t as x,j as _,b as V,u as q,n as E}from"./index-1784074877048.js";import{H as j}from"./index.esm.min-469b3f53-1784074877048.js";const G={class:"smart-chart-header"},I={key:0},M={key:0},A="口径",Q={__name:"SmartChartRenderer",props:{chart:{type:Object,required:!0}},emits:["ready"],setup(a,{emit:r}){const o=r,i=a,l=["#30dcff","#27f0c0","#ffd76c","#7aa7ff","#ff8f6b","#a6f06d"],k=p(()=>{const t=(i.chart.rows||[]).filter(e=>Number.isFinite(Number(e.value)));return i.chart.type==="pie"?T(t):i.chart.type==="line"?$(t):C(t)}),w=p(()=>{const t=i.chart.rows||[];return i.chart.type==="bar"&&v(t)}),S=p(()=>B(i.chart.subtitle));Z(()=>{F(()=>{window.requestAnimationFrame(()=>o("ready"))})});function C(t){return v(t)?N(t):{animationDuration:700,grid:{left:52,right:26,top:28,bottom:54},tooltip:c(),xAxis:{type:"category",data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0,rotate:t.length>6?28:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"bar",barWidth:t.length>7?16:22,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[8,8,0,0],color:new b(0,0,0,1,[{offset:0,color:l[n%l.length]},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}})),label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function N(t){return{animationDuration:700,grid:{left:78,right:72,top:22,bottom:20},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"shadow"}}),xAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},yAxis:{type:"category",inverse:!0,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisLabel:{color:"rgba(223, 250, 255, 0.82)",fontSize:12}},series:[{name:i.chart.title,type:"bar",barWidth:13,data:t.map((e,n)=>({value:e.value,name:e.name,itemStyle:{borderRadius:[0,8,8,0],color:new b(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.16)"},{offset:1,color:l[n%l.length]}])}})),label:{show:!0,position:"right",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)}}]}}function T(t){return{animationDuration:700,tooltip:c(),legend:{orient:"vertical",right:10,top:"middle",itemWidth:10,itemHeight:10,textStyle:{color:"rgba(223, 250, 255, 0.78)",fontSize:11}},series:[{name:i.chart.title,type:"pie",radius:["48%","68%"],center:["35%","52%"],avoidLabelOverlap:!0,label:{color:"#fff",fontSize:11,formatter:`{b} {d}%`},labelLine:{lineStyle:{color:"rgba(223, 250, 255, 0.42)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:t.map((e,n)=>({name:e.name,value:e.value,itemStyle:{color:l[n%l.length]}}))}]}}function $(t){return{animationDuration:760,grid:{left:52,right:28,top:30,bottom:48},tooltip:d(m({},c()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(255, 215, 108, 0.52)"}}}),xAxis:{type:"category",boundaryGap:!1,data:t.map(e=>e.name),axisTick:{show:!1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisLabel:{color:"rgba(223, 250, 255, 0.76)",fontSize:11,interval:0}},yAxis:{type:"value",axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.1)",type:"dashed"}},axisLabel:{color:"rgba(223, 250, 255, 0.58)",fontSize:11}},series:[{name:i.chart.title,type:"line",smooth:!0,symbol:"circle",symbolSize:8,lineStyle:{width:3,color:"#30dcff"},itemStyle:{color:"#ffd76c",borderColor:"#041522",borderWidth:2},areaStyle:{color:new b(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.24)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}])},label:{show:!0,position:"top",color:"#ffffff",fontSize:11,formatter:({value:e})=>u(e)},data:t.map(e=>({value:e.value,name:e.name}))}]}}function c(){return{trigger:"item",backgroundColor:"rgba(2, 13, 22, 0.94)",borderColor:"rgba(48, 220, 255, 0.34)",borderWidth:1,textStyle:{color:"#fff",fontSize:12},formatter:t=>{const e=(i.chart.rows||[]).find(s=>s.name===t.name),n=(e==null?void 0:e.unit)||i.chart.unit||"",f=e!=null&&e.extra?`
${e.extra}`:"";return`${t.marker}${t.name}: ${u(t.value)}${n}${f}`}}}function v(t=[]){return t.length>6||t.some(e=>String(e.name||"").length>4)}function B(t){const e=String(t||"").trim();if(!e||/^(数据)?来源[::]/.test(e)||e.includes("固定展示"))return"";const n=new RegExp(A,"g"),f=new RegExp(`统计${A}`,"g"),s=e.replace(f,"统计数据").replace(n,"数据").replace(/来源[::]\s*openApi\s*统计库\s*[a-zA-Z0-9_./:-]*[,,、]?\s*/gi,"").replace(/openApi\s*统计库\s*/gi,"").replace(/\b[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+){2,}\b/g,"").replace(/[,,、]\s*[,,、]+/g,",").replace(/^[\s,,、::]+|[\s,,、]+$/g,"");return!s||/^来源[::]?$/.test(s)||O(s)?"":s}function O(t){return/^[a-zA-Z0-9_./:-]+$/.test(t)&&(t.includes("_")||t.length>24)}function u(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}return(t,e)=>(g(),h("div",{class:E(["smart-chart-card",{"is-horizontal":w.value}])},[y("div",G,[y("div",null,[y("strong",null,x(a.chart.title),1),S.value?(g(),h("span",I,x(S.value),1)):_("",!0)]),a.chart.unit?(g(),h("em",M,x(a.chart.unit),1)):_("",!0)]),V(q(j),{class:"smart-chart",option:k.value,autoresize:""},null,8,["option"])],2))}};export{Q as default}; diff --git a/docs/assets/TopicSwitcher-2ffd167b-1784045078568.js b/docs/assets/TopicSwitcher-3ee7ffcb-1784074877048.js similarity index 99% rename from docs/assets/TopicSwitcher-2ffd167b-1784045078568.js rename to docs/assets/TopicSwitcher-3ee7ffcb-1784074877048.js index 817d6ef..837fc26 100644 --- a/docs/assets/TopicSwitcher-2ffd167b-1784045078568.js +++ b/docs/assets/TopicSwitcher-3ee7ffcb-1784074877048.js @@ -1,2 +1,2 @@ -var Fe=Object.defineProperty,Qe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var oe=(d,t,e)=>t in d?Fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ae=(d,t)=>{for(var e in t||(t={}))He.call(t,e)&&oe(d,e,t[e]);if(ie)for(var e of ie(t))ve.call(t,e)&&oe(d,e,t[e]);return d},ce=(d,t)=>Qe(d,Pe(t));import{ao as Ke,ap as ee,aq as Se,z as re,w as G,ar as Ae,as as v,p as Y,C as D,at as y,au as je,f as Ve,d as Ye,a as H,S as U,av as B,a6 as Be,a7 as X,V as O,aw as Xe,ax as Je,O as be,ay as ke,az as We,aA as qe,v as Le,aB as Me,R as te,m as ze,aC as W,L as _e,h as De,D as Ze,aD as $e,aE as et,b as tt,aF as st,H as nt,E as rt,a5 as At,G as q,_ as it,am as ot,Z as at,aG as ct,aH as ut,aI as lt,aJ as Ne,aK as ue,a8 as Ue,N as dt,aL as ft,aM as ht,aN as pt,u as gt,aO as mt,aP as Tt,aQ as Et,ad as Rt,aR as le,aS as de,aT as fe,aU as he,aa as wt,af as Ct,aV as xt,aW as It}from"./screen2Standard-98cd5b6c-1784045078568.js";import{_ as pe,a as ge}from"./index-6a8ef8cf-1784045078568.js";import{f as me}from"./townshipBoundaries-1b068bef-1784045078568.js";import{g as yt,o as K,c as j,a as S,F as St,y as Bt,n as Te,J as bt,t as Ee,j as kt}from"./index-1784045078568.js";class Lt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Is(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new re;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new cs(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Dt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Nt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Xt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Jt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Wt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,u=s.byteStride,l=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,u,l,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*u);return n.decodeGltfBuffer(new Uint8Array(f),c,u,l,s.mode,s.filter),f})})}else return null}}class qt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),u=c.isGroup?c.children:[c],l=a[0].count,f=[];for(const h of u){const g=new X,p=new O,m=new Ue,E=new O(1,1,1),w=new Xe(h.geometry,h.material,l);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const as=new X;class cs{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Dt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new ke(this.options.manager):this.textureLoader=new We(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Y(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return N(A,o,s),M(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(k,b[x*i+1]),i>=3&&p.setZ(k,b[x*i+2]),i>=4&&p.setW(k,b[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const l=(A.samplers||{})[n.sampler]||{};return c.magFilter=xe[l.magFilter]||Le,c.minFilter=xe[l.minFilter]||Me,c.wrapS=Ie[l.wrapS]||te,c.wrapT=Ie[l.wrapT]||te,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(u){a=!0;const l=new Blob([u],{type:n.mimeType});return i=o.createObjectURL(l),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(u){return new Promise(function(l,f){let h=l;e.isImageBitmapLoader===!0&&(h=function(g){const p=new le(g);p.needsUpdate=!0,l(p)}),e.load(v.resolveURL(u,A.path),h,void 0,f)})}).then(function(u){return a===!0&&o.revokeObjectURL(i),u.userData.mimeType=n.mimeType||os(n.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),u});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new ze,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new _e,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return De}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const u=s[T.KHR_MATERIALS_UNLIT];n=u.getMaterialType(),a.push(u.extendParams(o,A,e))}else{const u=A.pbrMetallicRoughness||{};if(o.color=new D(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;o.color.setRGB(l[0],l[1],l[2],y),o.opacity=l[3]}u.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",u.baseColorTexture,U)),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),n=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=Ze);const c=A.alphaMode||_.OPAQUE;if(c===_.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===_.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new Be(1,1),A.normalTexture.scale!==void 0)){const u=A.normalTexture.scale;o.normalScale.set(u,u)}if(A.occlusionTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==H){const u=A.emissiveFactor;o.emissive=new D().setRGB(u[0],u[1],u[2],y)}return A.emissiveTexture!==void 0&&n!==H&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,U)),Promise.all(a).then(function(){const u=new n(o);return A.name&&(u.name=A.name),M(u,A),e.associations.set(u,{materials:t}),A.extensions&&N(s,u,A),u})}createUniqueName(t){const e=$e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return ye(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&As(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),M(m,A),p.extensions&&N(s,m,p),e.assignFinalMaterial(m),u.push(m)}for(let f=0,h=u.length;f1?c=new q:a.length===1?c=a[0]:c=new be,c!==a[0])for(let u=0,l=a.length;u{const u=new Map;for(const[l,f]of s.associations)(l instanceof W||l instanceof le)&&u.set(l,f);return c.traverse(l=>{const f=s.associations.get(l);f!=null&&u.set(l,f)}),u};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];L[A.path]===L.weights?t.traverse(function(l){l.morphTargetInfluences&&i.push(l.name?l.name:l.uuid)}):i.push(o);let a;switch(L[A.path]){case L.weights:a=fe;break;case L.rotation:a=he;break;case L.position:case L.scale:a=de;break;default:switch(r.itemSize){case 1:a=fe;break;case 2:case 3:default:a=de;break}break}const c=s.interpolation!==void 0?ss[s.interpolation]:Ne,u=this._getArrayFromAccessor(r);for(let l=0,f=i.length;l{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,U).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if($.has(t)){const i=$.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),$.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new re;t.index&&e.setIndex(new G(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ds.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` -`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const u=c.draco,l=new u.Decoder;try{const f=e(u,l,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{u.destroy(l)}});break}};function e(n,o,i,a){const c=a.attributeIDs,u=a.attributeTypes;let l,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)l=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,l);else if(h===n.POINT_CLOUD)l=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[u[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(l,w);else{if(w=o.GetAttributeId(l,n[c[p]]),w===-1)continue;E=o.GetAttribute(l,w)}const R=s(n,o,l,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,l)),n.destroy(l),g}function r(n,o,i){const c=i.num_faces()*3,u=c*4,l=n._malloc(u);o.GetTrianglesUInt32Array(i,u,l);const f=new Uint32Array(n.HEAPF32.buffer,l,c).slice();return n._free(l),{array:f,itemSize:1}}function s(n,o,i,a,c,u){const l=u.num_components(),h=i.num_points()*l,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,u,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:l}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let V={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const fs=Object.values(V);class ys extends Lt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new It;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:Mt,name:"GLTFLoader"},{loader:ke,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new ls;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&V[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof Ae&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[V[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(ce(ae({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:fs.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===V.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Ss="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",Bs=""+new URL("pathLine2-d4134d4b-balabala-1784045078568.png",import.meta.url).href,bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ls=""+new URL("ocean-bg-8c848b8f-balabala-1784045078568.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784045078568.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784045078568.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784045078568.png",import.meta.url).href,Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Gs=""+new URL("huiguang-3c5dfda5-balabala-1784045078568.png",import.meta.url).href,Fs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Hs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",vs=""+new URL("focus_bg-b6803e2d-balabala-1784045078568.png",import.meta.url).href,Ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",js=""+new URL("focus_move_bg-cf41417a-balabala-1784045078568.png",import.meta.url).href;const hs={class:"topic-switcher"},ps={class:"topic-switcher-menu"},gs=["onPointerup","onClick"],ms={class:"topic-title"},Ts={key:0},Vs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>me}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=yt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:me});function o(i,a){var u,l;if((l=(u=i.currentTarget)==null?void 0:u.blur)==null||l.call(u),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(K(),j("div",hs,[a[0]||(a[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1)),S("div",ps,[(K(!0),j(St,null,Bt(n.value,c=>(K(),j("button",{key:c.key,class:Te(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:bt({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",onPointerup:u=>o(u,c.key),onClick:u=>o(u,c.key)},[S("span",{class:Te(["topic-name",{"has-sub-name":c.subName}])},[S("span",ms,Ee(c.name),1),c.subName?(K(),j("small",Ts,Ee(c.subName),1)):kt("",!0)],2)],46,gs))),128))]),a[1]||(a[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1))]))}};export{Lt as E,ys as R,Vs as _,Ds as a,Ss as b,Ns as c,bs as d,Os as e,Fs as f,Us as g,Gs as h,Qs as i,Ps as j,Hs as k,vs as l,Ks as m,js as n,Ls as o,Bs as p,Is as q,Ms as r,ks as s}; +var Fe=Object.defineProperty,Qe=Object.defineProperties;var Pe=Object.getOwnPropertyDescriptors;var ie=Object.getOwnPropertySymbols;var He=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var oe=(d,t,e)=>t in d?Fe(d,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):d[t]=e,ae=(d,t)=>{for(var e in t||(t={}))He.call(t,e)&&oe(d,e,t[e]);if(ie)for(var e of ie(t))ve.call(t,e)&&oe(d,e,t[e]);return d},ce=(d,t)=>Qe(d,Pe(t));import{ao as Ke,ap as ee,aq as Se,z as re,w as G,ar as Ae,as as v,p as Y,C as D,at as y,au as je,f as Ve,d as Ye,a as H,S as U,av as B,a6 as Be,a7 as X,V as O,aw as Xe,ax as Je,O as be,ay as ke,az as We,aA as qe,v as Le,aB as Me,R as te,m as ze,aC as W,L as _e,h as De,D as Ze,aD as $e,aE as et,b as tt,aF as st,H as nt,E as rt,a5 as At,G as q,_ as it,am as ot,Z as at,aG as ct,aH as ut,aI as lt,aJ as Ne,aK as ue,a8 as Ue,N as dt,aL as ft,aM as ht,aN as pt,u as gt,aO as mt,aP as Tt,aQ as Et,ad as Rt,aR as le,aS as de,aT as fe,aU as he,aa as wt,af as Ct,aV as xt,aW as It}from"./screen2Standard-9c6af3a2-1784074877048.js";import{_ as pe,a as ge}from"./index-bc047bb3-1784074877048.js";import{f as me}from"./townshipBoundaries-1b068bef-1784074877048.js";import{g as yt,o as K,c as j,a as S,F as St,y as Bt,n as Te,J as bt,t as Ee,j as kt}from"./index-1784074877048.js";class Lt{constructor(){this.events=new Map}on(t,e){let r=this.events.get(t);r||(r=new Set,this.events.set(t,r)),r.add(e)}off(t,e){const r=this.events.get(t);r&&(e?r.delete(e):this.events.delete(t))}emit(t,...e){const r=this.events.get(t);r&&r.forEach(s=>{s(...e)})}once(t,e){const r=(...s)=>{e(...s),this.off(t,r)};this.on(t,r)}}function Is(d,t=!1){const e=d[0].index!==null,r=new Set(Object.keys(d[0].attributes)),s=new Set(Object.keys(d[0].morphAttributes)),A={},n={},o=d[0].morphTargetsRelative,i=new re;let a=0;for(let c=0;c=2.0 are supported."));return}const a=new cs(A,{path:e||this.resourcePath||"",crossOrigin:this.crossOrigin,requestHeader:this.requestHeader,manager:this.manager,ktx2Loader:this.ktx2Loader,meshoptDecoder:this.meshoptDecoder});a.fileLoader.setRequestHeader(this.requestHeader);for(let c=0;c=0&&o[u]===void 0&&console.warn('THREE.GLTFLoader: Unknown extension "'+u+'".')}}a.setExtensions(n),a.setPlugins(o),a.parse(r,s)}parseAsync(t,e){const r=this;return new Promise(function(s,A){r.parse(t,e,s,A)})}}function Dt(){let d={};return{get:function(t){return d[t]},add:function(t,e){d[t]=e},remove:function(t){delete d[t]},removeAll:function(){d={}}}}const T={KHR_BINARY_GLTF:"KHR_binary_glTF",KHR_DRACO_MESH_COMPRESSION:"KHR_draco_mesh_compression",KHR_LIGHTS_PUNCTUAL:"KHR_lights_punctual",KHR_MATERIALS_CLEARCOAT:"KHR_materials_clearcoat",KHR_MATERIALS_IOR:"KHR_materials_ior",KHR_MATERIALS_SHEEN:"KHR_materials_sheen",KHR_MATERIALS_SPECULAR:"KHR_materials_specular",KHR_MATERIALS_TRANSMISSION:"KHR_materials_transmission",KHR_MATERIALS_IRIDESCENCE:"KHR_materials_iridescence",KHR_MATERIALS_ANISOTROPY:"KHR_materials_anisotropy",KHR_MATERIALS_UNLIT:"KHR_materials_unlit",KHR_MATERIALS_VOLUME:"KHR_materials_volume",KHR_TEXTURE_BASISU:"KHR_texture_basisu",KHR_TEXTURE_TRANSFORM:"KHR_texture_transform",KHR_MESH_QUANTIZATION:"KHR_mesh_quantization",KHR_MATERIALS_EMISSIVE_STRENGTH:"KHR_materials_emissive_strength",EXT_MATERIALS_BUMP:"EXT_materials_bump",EXT_TEXTURE_WEBP:"EXT_texture_webp",EXT_TEXTURE_AVIF:"EXT_texture_avif",EXT_MESHOPT_COMPRESSION:"EXT_meshopt_compression",EXT_MESH_GPU_INSTANCING:"EXT_mesh_gpu_instancing"};class Nt{constructor(t){this.parser=t,this.name=T.KHR_LIGHTS_PUNCTUAL,this.cache={refs:{},uses:{}}}_markDefs(){const t=this.parser,e=this.parser.json.nodes||[];for(let r=0,s=e.length;r=0)throw new Error("THREE.GLTFLoader: setKTX2Loader must be called before loading KTX2 textures");return null}return e.loadTextureImage(t,A.source,n)}}class Xt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_WEBP,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: WebP required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Jt{constructor(t){this.parser=t,this.name=T.EXT_TEXTURE_AVIF,this.isSupported=null}loadTexture(t){const e=this.name,r=this.parser,s=r.json,A=s.textures[t];if(!A.extensions||!A.extensions[e])return null;const n=A.extensions[e],o=s.images[n.source];let i=r.textureLoader;if(o.uri){const a=r.options.manager.getHandler(o.uri);a!==null&&(i=a)}return this.detectSupport().then(function(a){if(a)return r.loadTextureImage(t,n.source,i);if(s.extensionsRequired&&s.extensionsRequired.indexOf(e)>=0)throw new Error("THREE.GLTFLoader: AVIF required by asset but unsupported.");return r.loadTexture(t)})}detectSupport(){return this.isSupported||(this.isSupported=new Promise(function(t){const e=new Image;e.src="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAABcAAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAEAAAABAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQAMAAAAABNjb2xybmNseAACAAIABoAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAAB9tZGF0EgAKCBgABogQEDQgMgkQAAAAB8dSLfI=",e.onload=e.onerror=function(){t(e.height===1)}})),this.isSupported}}class Wt{constructor(t){this.name=T.EXT_MESHOPT_COMPRESSION,this.parser=t}loadBufferView(t){const e=this.parser.json,r=e.bufferViews[t];if(r.extensions&&r.extensions[this.name]){const s=r.extensions[this.name],A=this.parser.getDependency("buffer",s.buffer),n=this.parser.options.meshoptDecoder;if(!n||!n.supported){if(e.extensionsRequired&&e.extensionsRequired.indexOf(this.name)>=0)throw new Error("THREE.GLTFLoader: setMeshoptDecoder must be called before loading compressed files");return null}return A.then(function(o){const i=s.byteOffset||0,a=s.byteLength||0,c=s.count,u=s.byteStride,l=new Uint8Array(o,i,a);return n.decodeGltfBufferAsync?n.decodeGltfBufferAsync(c,u,l,s.mode,s.filter).then(function(f){return f.buffer}):n.ready.then(function(){const f=new ArrayBuffer(c*u);return n.decodeGltfBuffer(new Uint8Array(f),c,u,l,s.mode,s.filter),f})})}else return null}}class qt{constructor(t){this.name=T.EXT_MESH_GPU_INSTANCING,this.parser=t}createNodeMesh(t){const e=this.parser.json,r=e.nodes[t];if(!r.extensions||!r.extensions[this.name]||r.mesh===void 0)return null;const s=e.meshes[r.mesh];for(const a of s.primitives)if(a.mode!==C.TRIANGLES&&a.mode!==C.TRIANGLE_STRIP&&a.mode!==C.TRIANGLE_FAN&&a.mode!==void 0)return null;const n=r.extensions[this.name].attributes,o=[],i={};for(const a in n)o.push(this.parser.getDependency("accessor",n[a]).then(c=>(i[a]=c,i[a])));return o.length<1?null:(o.push(this.parser.createNodeMesh(t)),Promise.all(o).then(a=>{const c=a.pop(),u=c.isGroup?c.children:[c],l=a[0].count,f=[];for(const h of u){const g=new X,p=new O,m=new Ue,E=new O(1,1,1),w=new Xe(h.geometry,h.material,l);for(let R=0;R0||d.search(/^data\:image\/jpeg/)===0?"image/jpeg":d.search(/\.webp($|\?)/i)>0||d.search(/^data\:image\/webp/)===0?"image/webp":"image/png"}const as=new X;class cs{constructor(t={},e={}){this.json=t,this.extensions={},this.plugins={},this.options=e,this.cache=new Dt,this.associations=new Map,this.primitiveCache={},this.nodeCache={},this.meshCache={refs:{},uses:{}},this.cameraCache={refs:{},uses:{}},this.lightCache={refs:{},uses:{}},this.sourceCache={},this.textureCache={},this.nodeNamesUsed={};let r=!1,s=!1,A=-1;typeof navigator!="undefined"&&(r=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)===!0,s=navigator.userAgent.indexOf("Firefox")>-1,A=s?navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1]:-1),typeof createImageBitmap=="undefined"||r||s&&A<98?this.textureLoader=new ke(this.options.manager):this.textureLoader=new We(this.options.manager),this.textureLoader.setCrossOrigin(this.options.crossOrigin),this.textureLoader.setRequestHeader(this.options.requestHeader),this.fileLoader=new Y(this.options.manager),this.fileLoader.setResponseType("arraybuffer"),this.options.crossOrigin==="use-credentials"&&this.fileLoader.setWithCredentials(!0)}setExtensions(t){this.extensions=t}setPlugins(t){this.plugins=t}parse(t,e){const r=this,s=this.json,A=this.extensions;this.cache.removeAll(),this.nodeCache={},this._invokeAll(function(n){return n._markDefs&&n._markDefs()}),Promise.all(this._invokeAll(function(n){return n.beforeRoot&&n.beforeRoot()})).then(function(){return Promise.all([r.getDependencies("scene"),r.getDependencies("animation"),r.getDependencies("camera")])}).then(function(n){const o={scene:n[0][s.scene||0],scenes:n[0],animations:n[1],cameras:n[2],asset:s.asset,parser:r,userData:{}};return N(A,o,s),M(o,s),Promise.all(r._invokeAll(function(i){return i.afterRoot&&i.afterRoot(o)})).then(function(){t(o)})}).catch(e)}_markDefs(){const t=this.json.nodes||[],e=this.json.skins||[],r=this.json.meshes||[];for(let s=0,A=e.length;s{const i=this.associations.get(n);i!=null&&this.associations.set(o,i);for(const[a,c]of n.children.entries())A(c,o.children[a])};return A(r,s),s.name+="_instance_"+t.uses[e]++,s}_invokeOne(t){const e=Object.values(this.plugins);e.push(this);for(let r=0;r=2&&p.setY(k,b[x*i+1]),i>=3&&p.setZ(k,b[x*i+2]),i>=4&&p.setW(k,b[x*i+3]),i>=5)throw new Error("THREE.GLTFLoader: Unsupported itemSize in sparse BufferAttribute.")}}return p})}loadTexture(t){const e=this.json,r=this.options,A=e.textures[t].source,n=e.images[A];let o=this.textureLoader;if(n.uri){const i=r.manager.getHandler(n.uri);i!==null&&(o=i)}return this.loadTextureImage(t,A,o)}loadTextureImage(t,e,r){const s=this,A=this.json,n=A.textures[t],o=A.images[e],i=(o.uri||o.bufferView)+":"+n.sampler;if(this.textureCache[i])return this.textureCache[i];const a=this.loadImageSource(e,r).then(function(c){c.flipY=!1,c.name=n.name||o.name||"",c.name===""&&typeof o.uri=="string"&&o.uri.startsWith("data:image/")===!1&&(c.name=o.uri);const l=(A.samplers||{})[n.sampler]||{};return c.magFilter=xe[l.magFilter]||Le,c.minFilter=xe[l.minFilter]||Me,c.wrapS=Ie[l.wrapS]||te,c.wrapT=Ie[l.wrapT]||te,s.associations.set(c,{textures:t}),c}).catch(function(){return null});return this.textureCache[i]=a,a}loadImageSource(t,e){const r=this,s=this.json,A=this.options;if(this.sourceCache[t]!==void 0)return this.sourceCache[t].then(u=>u.clone());const n=s.images[t],o=self.URL||self.webkitURL;let i=n.uri||"",a=!1;if(n.bufferView!==void 0)i=r.getDependency("bufferView",n.bufferView).then(function(u){a=!0;const l=new Blob([u],{type:n.mimeType});return i=o.createObjectURL(l),i});else if(n.uri===void 0)throw new Error("THREE.GLTFLoader: Image "+t+" is missing URI and bufferView");const c=Promise.resolve(i).then(function(u){return new Promise(function(l,f){let h=l;e.isImageBitmapLoader===!0&&(h=function(g){const p=new le(g);p.needsUpdate=!0,l(p)}),e.load(v.resolveURL(u,A.path),h,void 0,f)})}).then(function(u){return a===!0&&o.revokeObjectURL(i),u.userData.mimeType=n.mimeType||os(n.uri),u}).catch(function(u){throw console.error("THREE.GLTFLoader: Couldn't load texture",i),u});return this.sourceCache[t]=c,c}assignTexture(t,e,r,s){const A=this;return this.getDependency("texture",r.index).then(function(n){if(!n)return null;if(r.texCoord!==void 0&&r.texCoord>0&&(n=n.clone(),n.channel=r.texCoord),A.extensions[T.KHR_TEXTURE_TRANSFORM]){const o=r.extensions!==void 0?r.extensions[T.KHR_TEXTURE_TRANSFORM]:void 0;if(o){const i=A.associations.get(n);n=A.extensions[T.KHR_TEXTURE_TRANSFORM].extendTexture(n,o),A.associations.set(n,i)}}return s!==void 0&&(n.colorSpace=s),t[e]=n,n})}assignFinalMaterial(t){const e=t.geometry;let r=t.material;const s=e.attributes.tangent===void 0,A=e.attributes.color!==void 0,n=e.attributes.normal===void 0;if(t.isPoints){const o="PointsMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new ze,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,i.sizeAttenuation=!1,this.cache.add(o,i)),r=i}else if(t.isLine){const o="LineBasicMaterial:"+r.uuid;let i=this.cache.get(o);i||(i=new _e,W.prototype.copy.call(i,r),i.color.copy(r.color),i.map=r.map,this.cache.add(o,i)),r=i}if(s||A||n){let o="ClonedMaterial:"+r.uuid+":";s&&(o+="derivative-tangents:"),A&&(o+="vertex-colors:"),n&&(o+="flat-shading:");let i=this.cache.get(o);i||(i=r.clone(),A&&(i.vertexColors=!0),n&&(i.flatShading=!0),s&&(i.normalScale&&(i.normalScale.y*=-1),i.clearcoatNormalScale&&(i.clearcoatNormalScale.y*=-1)),this.cache.add(o,i),this.associations.set(i,this.associations.get(r))),r=i}t.material=r}getMaterialType(){return De}loadMaterial(t){const e=this,r=this.json,s=this.extensions,A=r.materials[t];let n;const o={},i=A.extensions||{},a=[];if(i[T.KHR_MATERIALS_UNLIT]){const u=s[T.KHR_MATERIALS_UNLIT];n=u.getMaterialType(),a.push(u.extendParams(o,A,e))}else{const u=A.pbrMetallicRoughness||{};if(o.color=new D(1,1,1),o.opacity=1,Array.isArray(u.baseColorFactor)){const l=u.baseColorFactor;o.color.setRGB(l[0],l[1],l[2],y),o.opacity=l[3]}u.baseColorTexture!==void 0&&a.push(e.assignTexture(o,"map",u.baseColorTexture,U)),o.metalness=u.metallicFactor!==void 0?u.metallicFactor:1,o.roughness=u.roughnessFactor!==void 0?u.roughnessFactor:1,u.metallicRoughnessTexture!==void 0&&(a.push(e.assignTexture(o,"metalnessMap",u.metallicRoughnessTexture)),a.push(e.assignTexture(o,"roughnessMap",u.metallicRoughnessTexture))),n=this._invokeOne(function(l){return l.getMaterialType&&l.getMaterialType(t)}),a.push(Promise.all(this._invokeAll(function(l){return l.extendMaterialParams&&l.extendMaterialParams(t,o)})))}A.doubleSided===!0&&(o.side=Ze);const c=A.alphaMode||_.OPAQUE;if(c===_.BLEND?(o.transparent=!0,o.depthWrite=!1):(o.transparent=!1,c===_.MASK&&(o.alphaTest=A.alphaCutoff!==void 0?A.alphaCutoff:.5)),A.normalTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"normalMap",A.normalTexture)),o.normalScale=new Be(1,1),A.normalTexture.scale!==void 0)){const u=A.normalTexture.scale;o.normalScale.set(u,u)}if(A.occlusionTexture!==void 0&&n!==H&&(a.push(e.assignTexture(o,"aoMap",A.occlusionTexture)),A.occlusionTexture.strength!==void 0&&(o.aoMapIntensity=A.occlusionTexture.strength)),A.emissiveFactor!==void 0&&n!==H){const u=A.emissiveFactor;o.emissive=new D().setRGB(u[0],u[1],u[2],y)}return A.emissiveTexture!==void 0&&n!==H&&a.push(e.assignTexture(o,"emissiveMap",A.emissiveTexture,U)),Promise.all(a).then(function(){const u=new n(o);return A.name&&(u.name=A.name),M(u,A),e.associations.set(u,{materials:t}),A.extensions&&N(s,u,A),u})}createUniqueName(t){const e=$e.sanitizeNodeName(t||"");return e in this.nodeNamesUsed?e+"_"+ ++this.nodeNamesUsed[e]:(this.nodeNamesUsed[e]=0,e)}loadGeometries(t){const e=this,r=this.extensions,s=this.primitiveCache;function A(o){return r[T.KHR_DRACO_MESH_COMPRESSION].decodePrimitive(o,e).then(function(i){return ye(i,o,e)})}const n=[];for(let o=0,i=t.length;o0&&As(m,A),m.name=e.createUniqueName(A.name||"mesh_"+t),M(m,A),p.extensions&&N(s,m,p),e.assignFinalMaterial(m),u.push(m)}for(let f=0,h=u.length;f1?c=new q:a.length===1?c=a[0]:c=new be,c!==a[0])for(let u=0,l=a.length;u{const u=new Map;for(const[l,f]of s.associations)(l instanceof W||l instanceof le)&&u.set(l,f);return c.traverse(l=>{const f=s.associations.get(l);f!=null&&u.set(l,f)}),u};return s.associations=a(A),A})}_createAnimationTracks(t,e,r,s,A){const n=[],o=t.name?t.name:t.uuid,i=[];L[A.path]===L.weights?t.traverse(function(l){l.morphTargetInfluences&&i.push(l.name?l.name:l.uuid)}):i.push(o);let a;switch(L[A.path]){case L.weights:a=fe;break;case L.rotation:a=he;break;case L.position:case L.scale:a=de;break;default:switch(r.itemSize){case 1:a=fe;break;case 2:case 3:default:a=de;break}break}const c=s.interpolation!==void 0?ss[s.interpolation]:Ne,u=this._getArrayFromAccessor(r);for(let l=0,f=i.length;l{this.parse(n,e,s)},r,s)}parse(t,e,r=()=>{}){this.decodeDracoFile(t,e,null,null,U).catch(r)}decodeDracoFile(t,e,r,s,A=y,n=()=>{}){const o={attributeIDs:r||this.defaultAttributeIDs,attributeTypes:s||this.defaultAttributeTypes,useUniqueIDs:!!r,vertexColorSpace:A};return this.decodeGeometry(t,o).then(e).catch(n)}decodeGeometry(t,e){const r=JSON.stringify(e);if($.has(t)){const i=$.get(t);if(i.key===r)return i.promise;if(t.byteLength===0)throw new Error("THREE.DRACOLoader: Unable to re-decode a buffer with different settings. Buffer has already been transferred.")}let s;const A=this.workerNextTaskID++,n=t.byteLength,o=this._getWorker(A,n).then(i=>(s=i,new Promise((a,c)=>{s._callbacks[A]={resolve:a,reject:c},s.postMessage({type:"decode",id:A,taskConfig:e,buffer:t},[t])}))).then(i=>this._createGeometry(i.geometry));return o.catch(()=>!0).then(()=>{s&&A&&this._releaseTask(s,A)}),$.set(t,{key:r,promise:o}),o}_createGeometry(t){const e=new re;t.index&&e.setIndex(new G(t.index.array,1));for(let r=0;r{r.load(t,s,void 0,A)})}preload(){return this._initDecoder(),this}_initDecoder(){if(this.decoderPending)return this.decoderPending;const t=typeof WebAssembly!="object"||this.decoderConfig.type==="js",e=[];return t?e.push(this._loadLibrary("draco_decoder.js","text")):(e.push(this._loadLibrary("draco_wasm_wrapper.js","text")),e.push(this._loadLibrary("draco_decoder.wasm","arraybuffer"))),this.decoderPending=Promise.all(e).then(r=>{const s=r[0];t||(this.decoderConfig.wasmBinary=r[1]);const A=ds.toString(),n=["/* draco decoder */",s,"","/* worker */",A.substring(A.indexOf("{")+1,A.lastIndexOf("}"))].join(` +`);this.workerSourceURL=URL.createObjectURL(new Blob([n]))}),this.decoderPending}_getWorker(t,e){return this._initDecoder().then(()=>{if(this.workerPool.lengthA._taskLoad?-1:1});const r=this.workerPool[this.workerPool.length-1];return r._taskCosts[t]=e,r._taskLoad+=e,r})}_releaseTask(t,e){t._taskLoad-=t._taskCosts[e],delete t._callbacks[e],delete t._taskCosts[e]}debug(){console.log("Task load: ",this.workerPool.map(t=>t._taskLoad))}dispose(){for(let t=0;t{const u=c.draco,l=new u.Decoder;try{const f=e(u,l,new Int8Array(i),a),h=f.attributes.map(g=>g.array.buffer);f.index&&h.push(f.index.array.buffer),self.postMessage({type:"decode",id:o.id,geometry:f},h)}catch(f){console.error(f),self.postMessage({type:"error",id:o.id,error:f.message})}finally{u.destroy(l)}});break}};function e(n,o,i,a){const c=a.attributeIDs,u=a.attributeTypes;let l,f;const h=o.GetEncodedGeometryType(i);if(h===n.TRIANGULAR_MESH)l=new n.Mesh,f=o.DecodeArrayToMesh(i,i.byteLength,l);else if(h===n.POINT_CLOUD)l=new n.PointCloud,f=o.DecodeArrayToPointCloud(i,i.byteLength,l);else throw new Error("THREE.DRACOLoader: Unexpected geometry type.");if(!f.ok()||l.ptr===0)throw new Error("THREE.DRACOLoader: Decoding failed: "+f.error_msg());const g={index:null,attributes:[]};for(const p in c){const m=self[u[p]];let E,w;if(a.useUniqueIDs)w=c[p],E=o.GetAttributeByUniqueId(l,w);else{if(w=o.GetAttributeId(l,n[c[p]]),w===-1)continue;E=o.GetAttribute(l,w)}const R=s(n,o,l,p,m,E);p==="color"&&(R.vertexColorSpace=a.vertexColorSpace),g.attributes.push(R)}return h===n.TRIANGULAR_MESH&&(g.index=r(n,o,l)),n.destroy(l),g}function r(n,o,i){const c=i.num_faces()*3,u=c*4,l=n._malloc(u);o.GetTrianglesUInt32Array(i,u,l);const f=new Uint32Array(n.HEAPF32.buffer,l,c).slice();return n._free(l),{array:f,itemSize:1}}function s(n,o,i,a,c,u){const l=u.num_components(),h=i.num_points()*l,g=h*c.BYTES_PER_ELEMENT,p=A(n,c),m=n._malloc(g);o.GetAttributeDataArrayForAllPoints(i,u,p,g,m);const E=new c(n.HEAPF32.buffer,m,h).slice();return n._free(m),{name:a,array:E,itemSize:l}}function A(n,o){switch(o){case Float32Array:return n.DT_FLOAT32;case Int8Array:return n.DT_INT8;case Int16Array:return n.DT_INT16;case Int32Array:return n.DT_INT32;case Uint8Array:return n.DT_UINT8;case Uint16Array:return n.DT_UINT16;case Uint32Array:return n.DT_UINT32}}}let V={GLTFLoader:"GLTF",TextureLoader:"Texture",FontLoader:"Font",MMDLoader:"MMD",MTLLoader:"MTL",OBJLoader:"OBJ",PCDLoader:"PCD",FileLoader:"File",ImageLoader:"Image",ObjectLoader:"Object",MaterialLoader:"Material",CubeTextureLoader:"CubeTexture",RGBELoader:"RGBELoader",FBXLoader:"FBX"};const fs=Object.values(V);class ys extends Lt{constructor({dracoPath:t,cloneTextures:e=!1}={}){super(),this.dracoPath=t||"./draco/gltf/",this.cloneTextures=e,this.loaded=!1,this.itemsLoaded=0,this.itemsTotal=0,this.assets=[],this.loaders={},this.initDefaultLoader()}initManager(){const t=new It;return t.onProgress=(e,r,s)=>{this.itemsLoaded=r,this.itemsTotal=s,this.emit("onProgress",e,r,s)},t.onError=e=>{this.emit("onError",e)},t}initDefaultLoader(){[{loader:Mt,name:"GLTFLoader"},{loader:ke,name:"TextureLoader"}].map(t=>this.addLoader(t.loader,t.name))}initDraco(t){const e=new ls;e.setDecoderPath(this.dracoPath),e.preload(),t.setDRACOLoader(e)}addLoader(t,e=""){if(t.name&&V[e]){if(!this.loaders[e]){let s=new t(this.manager),A=e;s instanceof Ae&&(A==="GLTFLoader"&&this.initDraco(s),this.loaders[V[A]]=s)}}else throw new Error("请配置正确的加载器")}loadItem(t){return new Promise((e,r)=>{if(!this.loaders[t.type])throw new Error(`资源${t.path}没有配置加载器`);this.loaders[t.type].load(t.path,s=>{this.itemsLoaded++,this.emit("onProgress",t.path,this.itemsLoaded,this.itemsTotal),e(ce(ae({},t),{data:s}))},null,s=>{this.emit("onError",s),r(s)})})}loadAll(t){return this.itemsLoaded=0,this.itemsTotal=0,new Promise((e,r)=>{let s=this.matchType(t),A=[];this.itemsTotal=s.length,s.map(n=>{let o=this.loadItem(n);A.push(o)}),Promise.all(A).then(n=>{this.assets=n,this.loaded=!0,this.emit("onLoad"),e(n)}).catch(n=>{this.emit("onError",n),r(n)})})}matchType(t){return this.assets=t.map(e=>({type:fs.includes(e.type)?e.type:"",path:e.path,name:e.name,data:null})).filter(e=>{if(!e.type)throw new Error(`资源${e.path},type不正确`);return e.type}),this.assets}getResource(t){var r;let e=this.assets.find(s=>s.name===t);if(!e)throw new Error(`资源${t}不存在`);return this.cloneTextures&&e.type===V.TextureLoader&&((r=e.data)!=null&&r.isTexture)?e.data.clone():e.data}destroy(){this.off("onProgress"),this.off("onLoad"),this.off("onError"),this.assets=[]}}const Ss="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAD0SURBVHgB7dEBDcAgEACxZ/5NTgkg40JaC137mgesf57wDSlCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTEHKbcBaYZyb5dAAAAAElFTkSuQmCC",Bs=""+new URL("pathLine2-d4134d4b-balabala-1784074877048.png",import.meta.url).href,bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAADzSURBVHgB7dEBDcAwDMCw9vw5f4MRTTYF73/NC3bnBd+QIiRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSIyQGCExQmKExAiJERIjJEZIjJAYITFCYoTECIkREiMkRkiMkBghMUJihMQIiRESIyRGSMwBQCIExogIrTYAAAAASUVORK5CYII=",ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMxSURBVHgB7dZBDcJQFADBB/kCuHAgAQckHAA3Tf27aIXsjIjNXv7bfgyQdB0gSwAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgTAAgbN2erwGaHACECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCECQCErfv7M0CTA4AwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYAwAYCw9fj+BmhyABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABAmABB2Amb1BS2MWc5zAAAAAElFTkSuQmCC",Ls=""+new URL("ocean-bg-8c848b8f-balabala-1784074877048.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784074877048.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784074877048.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784074877048.png",import.meta.url).href,Us="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA0ESURBVHgB7Z3/VRu7E8XFO+9/kgpIKoAOEioAKoBUAFSAqSCkAkwFQAVABUAFhAoIFfjt3bzl+TlGtndG0oz2fs6ZY/L94R2v9u6MpJG0FkKYBELIXP4KhJB3oUAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIFAghESgQQiJQIIREoEAIiUCBEBKBAiEkAgVCSAQKhJAIfweSlA8fPoRPnz6Fra2t9u+NjY23/wyfsBg/f/58+/z161d4fn5++/vh4aH9JOlYC9wXSw089F+/fg2bm5tvosBnSjqhwO7u7lrx4G+iAwUiAA//7u5uKwh8LooGuehEcn19HW5vb9+iEFkdCmRFECF2dnZaQaSODlpAIBDKxcVF+0lWY0Jb3s7OziaeeXp6mpyfn08aobu67wXNlbPFDQ9WLUAsBwcHkyYSumqDzObKWRP28vIyqQ1EFQrlT+M8SA+Qy9dGE0lCE1HCzc1N288i/+FK0RaspjTrPRqhsJ/y21w5a8ZqTLPmMfTUa3ApFuYqMEQrpcY0ax5d6tUIxc2wtjauFC2xw8PDtze/NH0YQpo1SzfqVbINC5grZ3sZUgTk1NPg39LvHUqaNcv9/f2Q0i5Xzq5s01FjlibVEn33eDyeDJmTkxMz7ZzQXDm7tM2LGrMgZWj6JL2vMcQ0axbc45qjSZW1WBjHv7y8XKp48PT0NIxGo9AHfD86sKsUKaL6FrVRXcn66+vruyXr+N719fW3znFXMm8N/Jbj4+NwdXUVasSNmpcxhP1VQPoleQO+l2bhe/F2Re0WOrbNwy2KVp3hOxC5kB7iu3ENK32hSlMuV85GH5wmakz6gLH+vtfFgwo6QRwdHbViyP37cU1ce1FamRq0gcaLwJC5cnauIQKgPyGh77Bv90a39lBAuIhuJaIL2qKifokrZ/8wvDml4gAaw75WDSle7shSkUhcOfs/gzg035C1T4LhgUVU0XihLAPapkS6qWyunH2z/f199fQB31dZ/jzXIBS8DHIIBfcUbeXp/syYK2dbww1PRTPk6+peSA0d+xxCcSwSV84mFQfAG8/T/dAwRJQcS4mdisSPs9p9jllqnxVeZMtUH0hw2ifx4SgaL5U48L1INbzci9SWsn/iUCT2ndSY53iPoUeN2D1PFU2cDQHbdhCjSqnEwaix2DBokQJpoWhGs+1g3/KRRY3D9dbLm9Zk7CxoWwe/365zqxYeLsPAFvuoGe4Z7p02DgocbTrWFQFqglnkIUwEprQUi8SMR3N7TqXolA9tAjClafdLpEsOEps9p7RHTygOfdMWieFiUVsOafc7KI50pi0So6OKdpxBmNWE4khvmiIxmmrZcUZzlITiyGeaIjGYatlwBOUNWmCkxcrvGoppjm4ZS7XKO6E5aoUoZOE3Dc0wfK6VARhbl1PeCWyaoEFla6HdmeaL7vv371Z+V/mbqkUFyzvdm+Zmekbas6wDWtGDnXI7hj6EBkY67OUurvW2qXlHEq+mNdlroAzF901kv8OmaS1wM/DyK3NhregxwPMq3JhWqlU4ipS5sEb0YGpl3ypo5/wX1Rq5Ympl37TaulQUKXJG4cnJSZDy48ePdtt9Yhu0EY6YkKJxrmRf3L1R2DH3ZZgVl3bYS82uZ48gGofUM3r4AgcEoc0k4OCgptMfSpBVkdJSBPz/c/tMk5tGFClUZ5fvYhpDuxzW9WsaZfG5O+tZU6z9/f0gAWnV7e1tID45Ozt79zzGZSnRWc+mRml6JTkqjWbDpFGkwObieS6kkV5x5Mq/oS8iJWealS3FkqZXSK04cuUfpFjSNDl3mpVFidL0ip3zeky6KWDmkcz0F5FODg7xUJuaTWPId2NjI4uvWVIs6eTg1dVVIPWANOv6+jpI2NvbCznIIpCdnZ0gQXoziT3G43GQsLm5GXKwFn6HkqQ0OWNo0qzQl7W1tUDqAqUjeC7w2QdEoY8fP4bUJI8gW1tbInFwYrBO8IA/PDyEvkBYTT8kpCa5QCTiAEyv6kXattvb2yE1yQUi7aAzgtSLtG2RnaQmuUAknSlpGCa2QdtKarOk2ckyZOmD9IXiqB9JG+cYyUoqEHSk+o5SgMfHx0DqRtLGiCCS52sZkgpEmiOy/1E/0iwhdZqVPIJIkK4dIPaRCiR1Rz2pQKTqZh+kfqQV2q5TLIlAED0YQepH2s6DTbG49mM4SNp6fX09pCSpQCSlAIwew0EiENcRRAIjyHB4fX0NfRlsH0Ry04gvJNmCa4FIYIo1HCy3tVmBEGIBCoSQCBQIKc5oNGpXjfaxz58/h5RQIIREoEAIiWBWIKmH7whZhqQCkQzfpS4hIGQZzAokx5YuhCwiqUCen59DX3Js6ULIIsxGkBwL8glZRFKBSAoOpevZCdHAbAQBjCKkNEkFYn29MSGLMJtiAQqElCZ5iiURSa4t7kk5rKfRf4fEIM3qexMYQern/v6+/cRzcnd31+6FJt2SVJukR1idnZ1NJDQiyXLUFi2/oW3foxHO5PLycnJ0dJT1VNtZyxJBJGB3eO6PVSexnf+RPcCmT7TFc4AIg+1K8Xeu5yKpAqUHeN7c3BR7e9DSGtpWQo7sIssRbC8vL6KjtrAohmvU66N5xkNfMPiTerEUyFLuLjlJCMJiZ70+plOnPuTa+T+LQKS54v7+fiB1IT35OOfR4MnzOGk/BIfO4/D5HL7S8hjaVAKeqRx+ZokgyBelhYvSsw6JHQ4ODsT7NufaeTPbklvpiaaHh4eB1IE0Zc59sFKWUIXJHilMs/ybNN0GmScO890cad45Go1y3hhaAjs/P59IeHp6yupv1l1NLi4uggSkWVxE5RfU5En7krnTq6wCkQ7NQRxHR0eB+ATikFbvSl+yfcgaslCEJoFDvn4N6ZGn9AqWfeM46WgWo4hPkB5Lo8fp6WkoQVZF4u0v7awzivgyjFxJowfINTk4bdkjCIoOpXkko4gvNKLHeDwudixfdlVqzImUeqPQVjONeY/CbV3kouK1AIBrRexbBe1c5sJaUQRLMgvePFrEDg4OJhqUXHIbCl5Y5e2CDjtTLXum1TE3kCWUu7hWFGGqZc80Xn6gcPSAFb242o1kqmXHTk5OJhqgbsvA7ynrQGzrl1Ux8LYZvGm2p5HUubgD4r2zOpDzsj9SzrT6HcBI9ICVd0Jjdr0DtV6cZS9j0jq7DmMvOhNOtH0ILQy9fQZj0nUe02B42NBvM+OIWocdoKNo6bfVbFqdcoAoZOz32XEGYVUr1QIUSXrTFAcw2Ic05YxqqgUoknSmLQ6jS6rNOaSaagGKRN+0xWF4steeU9qpFuBEop5pi8P48LxJp9TKUADrtXQMw+eao1Udu7u7ln+3WcfanFQDHsIjN7xgtOY5pnGwlZNp59pThiQYG1N3aYjmWjPk06BtHfx+2w4irPdtHG40J7fDw8NJCtCmTioezDvYq8aH4pDfc+3RxA5nNXMunGz7EcuObKH40cvvsmiIGtqjiB0OB0zcOLqUSJzktSYtZdToxOFwwMSVs9F1zlqVvBjnH9KwMO6Z9tzGPJwOmLhytrV5ItHKa7sHBd9X++RiJ4xU6VQF4oC5cvbNcMO7htUSx7zBAPwb16opouQUBq7hfKjdlbP/M+SzmiMisVliXAf/vWeh5BRGJ44KJmldOZvMVtkBEB1ZL29FiAKlHCk73/PAC6WSCgZXziazPmUUeEMiqlirJYIoMPsN33JFi2kq2xvAlbNJTGsHQLyl0bEv8ebENXFt+FBCFB0YZq9pT4C1f/8YNM0bT7z7+CzYxf7h4aG1u7u7t3/jUwJ2toevjSDC5uZm+wmzcDQdzu8YjUahJgYvkKbTmrVRIRBs4z/9+fr6Ovd/u76+3j74nShgFs9oxG/Y29vLfn5gDgYtEDxwiB6kPxDFt2/fip3dkZrsB+hYAtGD9ANR4/j4OGxvb1crjg7zHaUUprlF5tDAQMCASnFcOatmKRYA1Q5Gxwa4tt+Vsyqmud59KGAJwUC3dHXlrJohRRiPxxMSB+nUwNf0u3JW3RBNcpdheAD3hMdJBAqkMwrlNxTGH+bK2eQ2xNQLnW/0MSiMuebK2WwGoaBGq+bRLhRoYnMLnqcSNVfOFjG8WRFVahALo8VqxmLFFWkerNBElvDlyxf1AsdUYKb7+vo6XF1dVVkvlRIKRAAEAsHs7Oy0FbVWBIMyEIjh8fGx/ay9FCQlFIginUggmq4UPXX1LR5+lNE/Pz+3n4gQFIQeFEhiIJBOKF3JOsrYu2izKOogGnSl8SiL70rkIYbub5IOCoSQCIMudydkERQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRASgQIhJAIFQkgECoSQCBQIIREoEEIiUCCERKBACIlAgRAS4R+Py6dcyrAs4QAAAABJRU5ErkJggg==",Os="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA4qSURBVHgB7Z3xVdvMEsX15bz/k1RAOoBUQDrAHUAHpgOgAkgF2BWAKwBXEKggUEGcCvx09d76M/LMalfalXal+zvnHhPFllbWXu3MrCT/UxTFtiCEiHwqCCEqNAghFmgQQizQIIRYoEEIsfCfgkThy5cvlU5OTopv375Vfx8dHe2WY9n++yQ2m00l8Pb2tnt9f3+vlr+8vFSvWGbeR8LyT8Eyb2dgAuj4+Ljq+MYUfQKTQDDNer3e/U26QYN4YkaFs7OznTG0EWBozCgDrVar3YhD3KFBHPjx40dxenpavUI58/z8XI0weIWIHRpEAUbAKHFxcRF8hDC5xX6OoWFyFFuu0haEYTDJcrmkWRRokD1CmcLE/0imTW5gEmmTbLcFuY1J+s3fyH1M6NelzTTLIZM3CDrWfD4vZrNZqw5mOtbr62v1OmRFyZhkv2jQdp9ubm52+zN1tlNUOVpsHx4etn/+/Nn68OvXr+3d3d22NNS27JDJ7yfaiLaizWi7L/f399V3lfp+RlRWje0sHOynpyfnDgID4f2Xl5dZGKJJZUi2LUPI6uTgA74DfC6nfQ2krBrbWji4v3//duoMxhT4zBhMoQn75msWfIcTM0pWjfWWjzHGNFL4yowsrmHYhIySVWOd5RpKYbRAfD7xOPuDysR+u1gsti7AKMhxcto/T2XV2EbhTOhqjOvr60mOFj7fpesIjGQe789p/xyVVWNVoaNfXV01Hkgc7KmGUV3kahQcg5F9t1k1VhTCo6aDN8HkMopcjDKy7zqrxn4QzlRNFRiGUnHkYpSRhF1ZNXYnl1EDyTeNEU/o/PiORz6aZNXYqsPf3t5aDwqS9JEmjEnKpTCCY5bpySqfxuJA2EYNhFNIwHPapzGpKezC/2V44sqjofP53HrdFHIRhlPDCwawzaFkeBJLv5G2kApf+MgnqrJU02iCcnAm+5Ju4zAi2GJb5hppqyk3wWUtGRy/NBvWlG+gdJtq26mPwrHSyCAvSa9RuBZIyzewnNdN5SdbWR7LccwTbXtaDTo/P1fNkcmQTClqigpw7BNsdzqNQaVKA5URVqnyF46hbXIxwQpXGg2xXWjIfGN8suUliVW4hm+EzRyc+BuvMjHJsA2wmYNX345fOMaJm2S4jWs5BytV0xKOtVaYSSCCGGbDqFho5ki45EdFkq20P3B1a5gvg+agpH4hmWTgftHvBm21cIZVFPqAdvIcaA6sv43ZzMGEnDLSEnf0nQHmwvrbmPbMJc5zUHUhOZfAxY89t6WfDWnlXJqD0qTNk+D2hx7bEX8jWjkXlxz0uKNUhtJuvuqx/Bt3A8g7pMrEQPEklZnQR6TQvMekPe7OSUl5pvcmUwNp4JNsvJVrt8qynEv5Siv/9pCPxFmxVqpjUk61lZa0Rz7hhl+pNt8xQImOGpmke9wjh1rhV4pHTko7wbyD6iotH8FjnyJtM+wKtdCKM+VUKOExTz2GWuFWplWtMKLE+KKo6Up6aHmkUCvcyqTZcoZWVAzBCFKoFaEIFGZFMAFDK6pPaddrBT4hh1mRlJizakXFllTVCtzvuq9ES5oYWlGxpUUuARP27iuREnNeiEj1Jek5WwFHkW4rkMq6TMypPqUl7IHy324rkEYPJuZU35IuQ0HfDLDu9h/WRo8+vhCK2pc2BxfgZN3+wxw9qJQU6YSdVGMoqpOkk3bHila7D0r1Z44e1NCSJg87VrT8PyTdvMLRg0pBWkWr7SjyqWjB+fn5wbKbm5uCkKHZbDbFz58/D5bP5/OiLV6O0mYuOe9BpSJpFMG/21zp6z2ClEPVwbLFYlG8vb0VhKQARpHlcvlhWWmOosxPijZ4OUqqEvCB01RqkvJkPD6oxboG2ShFRZdUafVN1r1CLCk5lxIiQlJgtVodLJvNZoUvzm6Swism51Sq0pJ1z/W4vVEKrx4fHwf/EijKpq5hlnOIJYVXpUEKQlKmXs0CvmGWk5Ok8IoPn6ZSV9cwy2kEwdxHmWt8WIYECPVmQlIGffTl5eXDMsyJSPN5Es4GqcPwiuSCVM1yNQhoHGakRIfVKyoXIcyq43GFr//KOTlI5SbpR3hccujGEOvk5ORg2Xq9LgjJCanPSn27TqNBpJLY8/NzQUhOSH3WpdzbaJDj42OnjRGSMlKflfq2hDUGq9eQmX9Quao+l+cyH2IdQRCjoWa8T72mTEgu1PMQ9O2mPMRqkPrkIHh9fS0IyRHp5N7JINJkCkcQkitSHtLJIFISQ4OQXJFuC5eipH28QiyYg9dfkVxB362bpKmSpRoECUzdIDQHyZ16BIQ+Xi9E7aMahAk6GSPv7+8Hyz5//qy+3zqC1OGjfUjuSH34+/fv6vtVg0jZPQ1Ccsc3UfcaQZiDkNyRDBIsBymn6gtCckY6yR8dHanvVw0ifUhKcAjJCWkE+fr1q/p+56eaMLwiY6Hel1tVsTgHQsZKvS+3StKbVkpIrvj0ZecqFg1CxkK9L7eqYtk+RMiYaGUQQggNQogVGoQQCzQIIRZoEEIsqAZhWZdMBVtfdzYIy75kLPjM8TmHWDQIGQs+fVk1SP2qRxqEjIV6X7bdCMgQi0yOICPI379/D5bZbiwhJAekK3dbjSC+N5YQkgOSQWw3AnqVeZueQkdI6vg+a8FrBKFBSO5Ifdj2OF3VINKHaBCSO1IfDjJRqK2ckJyQnsXbuszr+6BfQlJHmgNpPZPu+6BfQlJG+kWppqeFWg0ilb8YZpFckR6n2/RAdq8RBEi/OkVIDkgGafrFZm+DMA8hueKboBusP4Nb/xlo/JRu02coKkXhJ8yD/gw0YKJOxoCUoLv83majQaQkhnkIyQ2pz7r8YlqjQR4fH502RkjKSH1W6tsS1hisHJq2dRDLNX2OolJSPf8A6NsOn21e+dPTU9uVU9TgKvPmg/6LPu3yWad70tfr9cGyi4uLgpAckMIrqU9LOBlEmkw5OzsrCMkBqa82TRDu4zTU1OdD8G+GWVTqknJon7k858f+LJfLD/9GXXk2mxWEpIzUR31GD+DkpDKOa53oUNRQenh4OOi36Mse63DfGMMsKidJ1SvfS6W8Hl4thVmsZpFUkapXvuEVcHYTwywqJ0mTg57hFTTIRikqqk5OTjqHV5D374OsVquDZaxmkdSYz+cHy25uboo2eDkKSTmTdSplSck5wHLfdXmPIHgCRD3RQbJ+eXlZEJICUnK+WCyc7h6U8HaVlKxzFKFSEXKNgHlyu0ZIV/iWo8ggXwhFGZXTDgf9smOltd0HpVGE96tTQ0saPWCaDutMqjEU1VrS6BHgpB2+QcxFqCEU6YQdvlHX19e9fSkUBUUaPaDwDWNFi+pTmN+IGO53b6BU0bq9ve3tC6KmLfS1SKMH1H0lUkULtJm5pCgfabPms9ks1DbCNFQaRXilLxVbUr+7v78PuY0wK9KczMlDKpak/DdC5BKuwahe1WHCTsWQlphHqKCGWxmMIDUa9wXH+qKoaQphVJ1Ic3BhG64l7AGTJmri0kKrSFdxhN8B6UkSCLVY1aK6SgutAifm+wq/Ui3UYlWL6iqpaoW+FvHkG2dHtFDr6uoq1o5QIxf6To+hlVG8Hbq7uxN3iA95oHylnXDRxyJvO97KtVCL+QjlIy3v6OnK8fg7V3/IA8Djgzg/QjUpgZNs/J3EbLpExMoDNRJJFyKCHq/Q6GUjaj7CpJ3SpCXlPd9v1NuGxBJdz2cDKhNp5hjg9zH725gWT4Lz8/O+d5xKVOgLEpHnOzT1ujE1aQcs/1JaOXcgc0C9b7B6sLBkEizD/w3RJmp4af0CDNgvBtmoesEZTTJN2cwx8KOkBtuwWv7FF8VwazrCsdbMkUABZ9CNizdZGZi4j19aQg4SeXzU4A2wmoTzJOPVfD5P3RxQEo2gSSYmbZ4jMXNAyTREzUkALjngtVv5C8dQul3WkOCkcVKNUatbYMBaOBVAOHbSb1wCJOmJPvg8uQZVJT9txh3LWeHKT7ZKVeKl/SQbpd4DYGBeko9s+UYGUUGyDbMOyQAXPzLkSvv4aReomuOXQV6ZdOMq2SpcOAPxR3vSEx7zpIVUoIdbZUMpi0ZW1Q3bF47KCEeT4YURQXrskwHHMLPbG7JpaGNewtFkWGHiz3YSy7QKmVVjqzOUdneigblJv2rKNQCOWabzWFk1dieMFLbRBGBykUaJJ3R47Z7x/VEj87J8Vo39IHT+xWLReIAYdoUVjIHSrS2cAshFRnD1Q1aNFeUymtAo/X7XI5rMzaqxqnCmspWDaZRu3y0qT03GADgGI7tmLqvGNsol7No3CnMUXa6hFBhxYSSrxjoLE1UuZzyAORTe5vuvEB4h+XY1xsivjcuqsd5yiZkNuKxlqqOKCaOayrWGCYWqWTW2tXyMAlCBwWfGfA8K9g37CFO4jBYTM4ZRVo3tLNMhfDBmGcPIsj9SuJoCTCCU0pRVY4MJB9slma+DMAzxOXKcHEYXtBFtRZttV0ZLwEA4OUz5/pt//v/HZClHhaLsAEVZran+9uXl5aXS6+vr7u/NZlMMQWmG3f4cHx9Xr233abVaFXd3d4PtSypM3iD7oEOVoVRxenraqmMZjEnw+v7+Xry9vVX/xivUBbTLGAE6OjqqXssqXKc2o33L5bJ4fHwsnp+fC/I/aBCFUGaRQGfclw2YYV+h20FT2KFBHIBZIJgFrzkDI6zX6+qVpmiGBvEEZ3GEM2XiW8X5+Dv0mT0UJsxDfoRRYsj8KFdokACY+N8kxyY/6BPkNibnMcUCiHSDBomESaTNiINXk1AD82rLLfZzFJPoQzCBSfrNqMCRIQ40CCEWPhWEEBUahBALNAghFmgQQizQIIRY+C9cNXNlJEjHoQAAAABJRU5ErkJggg==",Gs=""+new URL("huiguang-3c5dfda5-balabala-1784074877048.png",import.meta.url).href,Fs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAFPSURBVHgB7ddhbcMwEAXglyEoBEPoGARCIYTBymBhMAgrhDFoIZTBIATC21lxtGhdYieOW7u6T7L6x5HvfPXJBpRSSj0jko2MGqWTJL7tQMkkgSN/tSiRBG5cNQadjB1KI0GfeOsDJXHVmFKjFBLseSaRM0rg2q3PAbn7c8Cn2Dn5HnwJ7p3hWuSI/QHvFiRi5xrkhv+3W59P5ITz7danRi4YdsCn5NGOGdZufRo8kgSwi6zGIPoe9oI4bzIM4tkkjngExh3wqaoYrBRTkRbbslW5bzuWnTswnRorVFiB/dPVII1rVVWvWGjxX4t9qzRIZy9rpD34vH2+zrnIaN03dtj3+zXw27TPYvrvUxcXsMH8ZjRu7pw0z2JOt9sh+MU7GJCUwdZG1ejcwg03LP8oqa9RItvew9i325P7Tf6yY3/1GdbcQymllFJKKaUy9gO4eI9ILG1riwAAAABJRU5ErkJggg==",Qs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAA5BSURBVHgB7VxbjxxHFT516Znd9a537axDAhGJkQKCkEDCA5ECT0TwgBTxjgQviN/DD+BP8IgEAolAECQkcYAkCiEX2TGxY+9lrt1dF75T1T1T055ZO9u9thPtkdo909Ndl6/P+c6lak10KqdyKqdyKqdyKqdyKp8rEXQXxXvfqj8hhKe7JHcFmASQ+iwb31c+isM1vt8VgE4EmCVAiCWHpNv3b6kCgyJAPvl+oiB1DkwDlBSEWktU9VkN4mextBkchsgADb8bAaqBqcFKQeocoE6BqUBJgakBYQA0fwYYGhe04LnMQaLqM890NnEgYfi7jWe/Q1RQBKgGaaZF9y0wCSj1MdMMPoZEvQoQhaMnIlAMjhwRZXU7ZzBZzLBkBHoApQ9QxkQ5rjkAVJ6NwJU0B8hWjwYu6gqgToBpgCKTQ0ND+ls4TwAILqzhmjIF9YFIJjLqGWNkRlrjHMbiNRmttfUlFT4jC8QKHw82q5K1aBNAfQIgducalGpPJ+C0BibhlBQQtY8XDlXRUIv+Oj7n0Apwxrotyz70fksL8QVM4DFJ/itSyl3n3QU8l0shPoYNXYN6vEfSf2i8+hgojTeybAoNKgFwbqMGWbRZVPyDpucmdj8BU2uKqo4+E6uK5rPGgODcd8acxaC/pIT4IQD4Dp7+GkWTWjawgSX/qrP+RU/6j47MUGo9xs1jzH5SaQ+Dk+9G06oJuhOTagVMw4QCueLIBlFbAig4ztiSNpww2xjp93pK/gQ3f4Mqsr0D2Xfk/2Qd/UYo9TZMbKwyGlSmlQP0KWvOhag1M3DuF2CCpsDuM5BlvwbFFrTppNmEhpzD8QK05Od4qr/YhB9D98GvlFfX+FnQCG0s9EXifev9rwrn3si03gcCQXtwnmxGrjG0CE4rk9LUTlKy1ZhxjzlFxMmdAWwbNoLyPED5Ge7pJ+8iN879s/T+iifogfdlbFFkuKOfKXUBbT2FK+tVR4+Bl35BUv46n5pLPaUJrO3AOQ4eL9jSuUUibiXHBqYZyO1BY+BBJIPCnKJKOlMKs9MT8hlo0C8pgBK9hvH+KgD5O0Y/AmAMpAAgvbptXB8XxrxrhPior9QzAPnL1U9PAJyfukxcF4pK9GPZvVdo8KkmYVV9PrZ0pTF4f5SpGJ+wtvQttEU5t6u0ZvOpzcJbTx/kzv0DQJSsVYrduFwYhwefWCvl2Dk3nRrz0prWEog/wv3BOJ4GOM/mxtyASZXQFIOHjYxzYXBrrRGURMafVtoAMyNeuOYM2qKg8/1RCcIFKF7YLQz8OUH+sfoBjPjj3NrXMbtSk+gDkAwj34L27cAw1gIqgqZw0wMZIl85dYLGubOv9qRUMMmH0aOGlr0grHitAGyZWisRDzEwFqRvt+KLstSSP7vQGKFiNMu5j4Y9aWeCNzqnpHhSxIGGN2e9ewvvfD8Tcg3g9IHUdiYl4hixW0XCfCPCf3+zZFgk3cQ9hXHihpXiTeX9rogctNtT4slCZmxSQ3zna5xqqJs4zlcEzOZ+XAKWdAxJg7pPYpgvNypwQrgvEMl78RB+v1iDxwSLGX7E90rpGYQ1EOzjigO95AXFCYoLGcnH8XkTGtfXirR17ipAnVbtQSvFU6EvY/ommnDoXyX5VxvpooGQ70zjW8uECWeYidwGoz5Q3wcsP8S1AmaGuWICQu7I4EiWqryQwZvJXWgda4JgQkbKfbP6XUENdgDWjmWyL0vOteoX00ma0xqY81WWzG8azKcsmV5pEeWSY8JN3fM07Vd6fvTIIE9BzXYpguAUa533B/EnRpfWBKkNyxorBCeiQXPP3nkR7EhpA0zoeD8CE8wFLkIZC3+kmoMS9T9sg+xe/R0Mu26XOYJBhfcWtjFfD1Q0W19/nsXLvZitpyWQTy2tNaYWuE0JWxdaqdgmkhuMKp+RkaB1fC5BqFPcYOC2wdVHulMuMxzSvKxAbF58jm2Kwjrr7OrJt5pbZ8Cw6GSiFkEpVD9wQnx14lHmIAAGb0FD3Pg/XN5b1RbI+gD3XMa9AzxXyDjW3QoFCzd+TWpZqgS4LqUzYKrIk8uR0TUTDXFcTX5XCNMetSQ4JwJobs+QfwfXD/wtbXl+9m00ycAi6hc5nr0oYj2HJffWvmeRX5tQwlnUPN8oex5H2sQxoWOUGz1GziGnR+7igYwNma+Xk9L5d7US36ToTuGuxFfBoFcAznV2TajByJAWkHhICnk+NuoPEO98BE25ga97IKMxnnkQsc63aV7puzqy/oNeBi8HhA1CH8R9s3rM+XlqcM+SSPafnC6DcUNdlo/SB27xo9z6NxGxfhcuq851HkH8/5x37veOxCFMDRZBe6i7oBi1YBFTHwhXMOYbPaW+j/OD/AP3gQz7JTj0EfKLXPV0juKX4zEwqW92kECyHMuUmtFkVcBGlWEBnALF22Hh3e/weTh7FkEfPMnzoOgv4hsAEOAbcb1xHPJvuPc8gP0RHnu07gptvTE07m0EfTmi3rxETVRlWT6NfZqDOTD3zJRYHNS2hHvJKkCs8pqTw7GT9hCE2x8bxyXKP6xr9QOKNRYO0y/qSMavw6DewrXcxcoBhWRQyj6g/xY07euUvDzUYz4cGfdnBDgDmNcQGjfJ0B+vIvSq1YTtpIrXRtpyTHgrLsYmPDgD4y7G5STTvV6OyQ2FpLNQnUvgghy5wo9FVV+BSGjN0zgxB3GhalI1ywS7wcVyP3fFzFtXpsb9tvT2ak+oMZc+RQSU67+8ksDhb1r/vaeFqlAU2o5aozCaQmc0QcgineccBt7Ei5uoM7pxWb5ls0yuh1ovPSxiiYCFCXW7OqjGoq4bwBxHAPblnNwlFL2uKKn2MP1DAD21pZ6srYfab86xURlBae2RWFqTL1Wqi3S/HMZClQY4OYqxeYbyQXxtXpZey2lp37VK7K8L+WwmBRfC60W2W6K0anb78Gx/HVt7Cea1D4I5yBwNwS8ARk+he9OKz8LSyk6jtEkt5NjA8HxZqgFYZNmqH1WeuSZHgWpisVbkwY2Ih9e1sKjsi3FpXOYkvbIhpIX7fkJEMJfJ4cTavxSOPoA5jrW3I8G5qgJ/eT9CrxMfTWnKmrpVOQBasnx7HOnElHCIagmD3Q+TJXMOyrKaHPQHwdihBwNnLhSnHGotcuLcK8i2N+GhLi5pdzq19kVU+i4rL/axsjBADoF4hph0cdYTB5PF4KdAorCx75Lma9utpQtTSt8QxxIc01gedGDBEiUI4SWnhEqixBkIUYODrMTkXzuj9RYXnpLGfOncf6EGl4VQN+CZJkB6Aq1hUAZcfkDFbpJFTWETMnauLTUorRfdWgFTmVOdAQcXiVim5FnCS3AqTOCbTJbaO22gOWKAKhzqB24DvFMUXlxDqfOdNaU4OYx84/313Ps3OD9CYmWElANcO0RBeYLqdwEtHKlqyRbtT7fisktqQvcuwEulejOztWOA4vYqzeElVdYcqH2OItwY5TXwArhC0iEmfAMZxKTEehEmPgsA8eD7OFD+9Pu4Z8imI8ErYK4JYiQ2HwaFib5wi6uPna5dd5pdU7X74FxceOfAa7Ygz2+5NH6qlCp5kQ0aMQbrInbxe7CHf1XPj7HA9F5PAAwpJxyryJAwBmAZ4GlNuCD6opjveqj7bg1ILV0Bk3qB2fYMX3kp8EGOIhbMIIA0RqcFNGGEcvdIWD8syf2HeAHO+3/DxK7hHngg5EreF9AWeCLPMQrvfGDXXG5EbrG7i9rSqbQm3xUbDoNpbcUBl1NeoQxLHDp4D6fsFBWmPiLfEuYyRu32GkB52Tp/GcWoIY4c5oZcSTF/QFsAhI4RLQONYNJvL2pI89xauvBKTUk5JxxrMcEMOxJM1KACJoW37gb86pFxC8QmfxNxiWCMp+DRwTTIvr3iNlSuI6e49blLTvfndS4nAcwy4TfN0WBYNsU/TgcHhqURKQrOnxD4DOKdvJ6EQJkk4kAVch9XmWV/kVNmbdMJyEkAc2QRWoc4R1XaJHh1YUNy8CsJlsdkzCuSIWYc189wMlWsjmYlNcBps9CWjPP40uCXIwHpc+C2GIShnBK4X2MGD1QrAlj94CRUhoU137Gn+TRykqa0LC8M3krF4Iz3tPBCGu924J0QO/UzfE3OkuuVuxbEku91sNlaunLXTW2pd0GkYip3ywXzmSZUN4WVxOrrmbQt3Bt2NPSW50Bdx2Ez6UpjavsXjWu1pLEGEyi74b6PxaY9Jl8fNYiFl0puyLAHL65eZvMdU7Si/c7lpEypNhtVfTZVX+xduNLG4Ix43ZlNRQRemVX2uCJ3gN9GHAyuzZd2Q0xEtwLe7LcT6SqJZFmmNSw1QIFferHSFvbbYfL7GW9JAwgUTYifZyCQlNOA86wyApkn7ddVuqb4dFzUUk4qwGMQ6n0xdUDGEwrmkkUPFVbPTASCi+S8HJvxhkMTF/F5IW1SzE2vCUiagnQuJ+mVal6p44zaVdfgTItoRky8rBWijJoispgghj11vcVai0naWhXXdCJdApOaUpoW1N4k/RsAFtebAxW8SxLI8W+1ptXE29wBnhJ65yC1BuY2PJMCRLQIGk803U0epHerRjQBadZ106Mz6dqUmuWH5m9NYDQlkXDjXtO41y05p/fHRjr665OTIl+WELkm1+u9t7WH4nOR3Nt8nuhWs2mCMqscUsdy7B1HTVmRN6XbviQt7iRPry1LH9K/Q6onv4xXZuB3+cdcJxngsaRuO6TMtGhuR4X0Ta1Yde1EpDONYVlSzWtqTn2N6PZ/LLqKWJeaz339N5EsK8BhaYJzJ30vK10u9UD3PTC1rKgFC1oEhSezzJyaGuKXXI8Nflb+vHiZHKFFy3KrWx5vXvjM/kH6Kjn9LwzuUG4H1N0Eoin/B14zT4gj8tU+AAAAAElFTkSuQmCC",Ps="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAnCSURBVHgB7d3tURtXGwbgR563AN4OtgToADrAFYRUYKjASgV2KrBTAUkF0AHuQOrATgUn53iXQBxE9LHfuq6ZM/J4BKPhz3Pv2fusIgAAAAAAAAAAAAAAgGlYBDALKaVP+eU8pu2PxWJxHUDnBACYiRwATvLLQ15VTNM6r7McAL4F0Lk3AcxCMzgvoh6kU7PO68Lwh/7YAYCZyTsBp1HvBExJufL/EkBv7ADAzDSD9Cam48bwB4CW5J2AZRq/ZQAA7coD9nMar9sABqMDADOW6pMBd3mdxrisQ+MfBqUDADPWDNi3Ma6TAevQ+IfB2QGAI5DqkwFlJ+AkhvX9qKLSHwD0JIeAqzQ8T/kDgL6lYU8GLAMAGEYa5mTAxwAAhpOH8UleD6k/q1SfRgAAhpQHctUM5j6GfxUAwDjkwXya19fUna+GPwCMUOr2ZMBlAADjlLo5GbAMAGDcUrsnAzT+AWAqUjsnAx4CAJiOdPjJgFVS+gOA6WlCwD4nAzT+AWDK8iC/TLvT+AeAqUu7nQxYBgAwD3mwf9xi+Gv8A8Dc5AF/98rw1/gHgDlK9RcHrV4Y/uX/qgAA5in9+2SA4Q8AxyAP/PNnAeA8AIDjkAf/tcY/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwGFSSpdlBQAwOXmGn+T1KXaVf+gq1d4HADAZeXZXea3Kil09CwDFhwAARi/P7NNm+Kc2AkDxUBJFAACjlOf0ux9mdysB4PsvEgIAYHzKLfuX5nbsakMAKL4qBwLAODyW/TbM7FYDwCPlQAAYUKrLfg+vzOpOAkChHAgAA0j/LPvtHADexGGuk3IgAPQqz92f8stdXlXs6dAAUJyWDyEEAED3mlvwn/M6iQO0EQCKKuoQcB4AQOvS05P9ltGCtgJAUUUdApQDAaBFzS572fK/ipa0GQAeLYUAAGhHKftFPfxPo0VdBICihIDbsl0RAMBe2ij7bdJVACjKw4KcEACAPbRV9tukywBQVFH3AlrdtgCAOWuz7LdJ1wGgqKLeCbgOAGCjxyf7RYtlv036CACPPigHAsDLnjX9e9k17zMAFMqBAPCDVH/JXrnyr6InfQeAQjkQABrN7vhtdFT222SIAFBUoRwIwJFrvlRvGQMYKgAUVSgHAnCEmsf6lvv9g83AIQPAI+VAAI5Gcwu83O8/jwGNIQAUyoEAzF7zpXm9lv02GUsAKJQDAZitPN/eRX3MbxQXu2MKAMW3AIB5+n+MyJgCwG95XSwWi3UAwMzk+bbMLxcxkovdsQSAX/If5iovOwAAzFaec/f55SyvdQxs6ABQBv7PTSoCgNlrdrrLTsCXGNCQAWAd9Zb/5wCAI1JCQF5lJ+DXGMhQAWAd9fAfNP0AwJDyHCwPAvolBjBEAPg9rzNlPwD4uxz4NnouB/YdAErZ762yHwA8yXPx+8Vx9FgO7DMA3Cj7AcDL+i4H9hEAytV+ud//MQCAjfosB3YdANZR3++/DwBgK32UA7sMAPeh7AcAe+m6HNhVAPg1f/ALZT8A2F+X5cAuAsBNs3UBABzoWTlwHS1qMwAo+wFAB5oQ0Go5sK0AsA5lPwDoTLmt3mY5sI0AcB/KfgDQi6YceBMHOjQAKPsBQM+a2+3dPDkwpXSVXqfoBwADyrO4ymv1yqxebfrZfXYAlP0AYASelQN/j7Zs2AFYlbQRAMCo5Pm83GUH4LVf9GMAeDD8AWC8yu35tgOA7X4AmIA8s0/TUy/goACwDABgMp6VA/cKAJclBAQAMDl5hp/k9SEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6XUqrKCgDgOOTBf5LXKq+H8u8AAOYvD/1P6cmnAADmLQ/89+nf3gcAME950L9Lm/0UAMC85AF/ml73tbwnAIB5aBr/q/TfynuqAACmLT01/rdV3utkAABMWR7mt2l3twEATFN6ufG/LScDAGBq0uuN/21dBwAwDem/G/+7cDIAAMYubd/431Y5HlgFADBOaffG/7ZWyckAABintF/jf1t3AQCMSzqs8b+tDwEAjENPw/+RkwEAMLQ8kM9T/84DGJVFAEcj1e38cm++in59y+tssVisAxgFAQCOxIDD/9E66hDwLYDBvQngWJTn9VcxnKr5DMAICABwBFLdxh/DE/rOk5MBANC91G/jf1tOBsDAdABgxvKgvYzxbrtfLBaL+wAGIQDATKW69PeQ11gfyetkAAxIBwBmKD01/sf8PP7y2e6SLw6CQdgBgBnKQ7Vc+U/la3m/5F2AswB6ZQcAZiaNp/G/rdPkZAAA7C+Ns/G/rfcB9MYtAJiJNO7G/7au8u2A3wLo3P8CmJOfY9r+DAAAAAAAAAAAAAAAAOCZvwCgkvxAcNS/iwAAAABJRU5ErkJggg==",Hs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAD/CAMAAABb2Q/2AAAAsVBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+3mHKcAAAAO3RSTlMABQoPExgdISgxJTYsQDtTRUr+9vpOWXJdaWVhgIx2om2n6oiWmYTKr5G68J22eqvBfeHZ5c++1LPdxUM4ZWUAAAZvSURBVGjerdrZdpswFAXQmnk0EMB4Ajwbz2Mc1///Yb0SuLg1km66mtfsdRBXRyIP+fH205IURZZa7794h7KqKZKEkrqFCgVpOSpOKoaJljZWOm1VwUnTRUv7/0sbvc62r2FlgJOy0o6x0kVL30NJiUh0ZkfHZuLXGWj/PTNArzPu68hMr4/MVEGqMlJaWNkDKWGukM4IK70uTipq3NVBthASMoWb1CJS644cIoG2OJDIQUYlm4KDH7mWxDJoKfX+3iSyooxEMqRSyhVlJFJp9YY2SGZoiyGZkMh+YtPRN4eWDqQCckSl1CoxIxKkQTMVSWp+pyeUQY4WbSqftuG9S+kkqWupitwkgdZSe5VSo5SeMgOpiaWqmfuVb1BZUUbkU6pyHdokJSJPs0AoZcjU7WRBMhWgQjnkSqmW2dB3ailx5HAW1FJqzJRLOd3Gjo6R7cVTym+y9aecbr1KCjLdae7hMt0090yupBAq/yLld1lHapa7WMVEElqNnimnr1JiS3+Rxqal8aVCZZp3+FJ+ylnRBalSyperA1IGM7ScFwNbIJXvSSOY3/u2QaTSIKVXudp2uVIupW7Eq3kHLetMmSu3RQ8p8/XoVQJtGieVu55A0lfXHY9m6iqhQpkg5fhNtljySKSGkPNxry2SKpGdec6VciUtIvtIOV5nbQekypLKUx4ep1rKHNk9PPZIWdRSEcmTi5KDYjl0HatZSn/IO1Kag/E9E0m1kkVSSlUg++Mic02UvD8WCKkbZn/3ORVLrZSLb0kdIdf06brGkspT9tZf6T9KiSmL25Aj5Ve5Bml8VyqNUn2u8zP1cfJ2mQmlRuToeJnRp2v/TdpE+jaVKk86IH8iZfJAy/UjRcrdkUhLIC0iH1j5uMwDnFyec7TcBrYjkDrIrJI6RuYYaYK8YqRh2vvP61gkNSpPy69t0EbI9pDK+iDx5GUbU6kJ5OIyKQKc/LnZ4TKnZ5R0zHZ63qxxmatreItdkbQM011NwqPHk1WVcJIWxJ2dJzuQDl5aukjOr5O159oYOYmWT6ny5Sb6xMktSkI9fSp9jMw30VcHpCGW4QeRpki2vyM34bITtHmSFqSSPkaO8TKMvujT4WZiSZ3IYBx+XLoI6WKljZVOJQccqbxJhyeNSv4cBLRMfBnDPD8HMVIuqTQwmRjpx7BHF5GkVYoP8EZ9DyG9UkJBOdJ6le3/JB2okleA7OFlWVBmQ0C6IDfhF5UOS2oaLUjnXkqXJ+kWUTnCyTA6j7qwSSxJBw+yew8/zgmVhqaxpe91d7XUEXIQ+zRTZUnYokEpq41XBPKaVZKb2aeSbDxb0hukAzK8iCSMs5J72CS+hMzeGuSJSJsnYfAgP64nsp0Mqfwhh1Q6fDkqZTcWy1v4McHIAZWLpC5Tk4QqeThJNzP5jgzPC6iISPaTI8gpXxovstx4kYR1iiUUJDtGONnLHiDTPU/qpdx/W9KCsiQUuTuicnXqieWJyqFIxiCXYXRd0YIypUPlcBmGRMJHli+TWvIzB8liCeucLWiV2dKv5Ga2SKjUm6RGpFfJOZRJIPsZXk5LmdF7kSVJ6fbTz0p6bGnWcgu140lakPQzjCbbVCxPIEOBtF5kXhaUKeH2HA1XX7DOfLXvYeWJL6EgtewEzVKt5GJG5LiqcrM0XuWsklqjpKWjMgQ5EshsSjMPAul7IOdfUbQ5zKHKIC2uvEThBGTCl1C6LchNQWTMlynIj7DYTkG6PLmv5YAre/vVU2YCeVrlP4nMsfKep3A8GFIH2flL2oxMUuThbFzJfZ8ldQfkiMpos8tXWDkm0ufJxfwpT0J5OMM61wcoPUiDKRMiP4ic8WU3mW6pvEFBhbI4RyALjLxSOYfSs2VM5P0KTz9CQblykKQ5kdHxLpIZkVEUVrLNkC6VOyIf9y3IgCHNV7mD0nPlfjXekXUudzkcJLb0+iDXE5ycVXItkqdapgypUNk7zQ63/y2Hv+U4zVjSKmVxm8A8P29COS+Ov+WgUcog/VouK+nwJawTl0nlmitdpNRrWc8TLW2OpJOvukROh6pITZ33+q8STodpNUgFZFz2k3SenCPPfZctkOT+pKeDyCO5Q0CW/3vyJu3qZgC5Jrdi7Dram6xGT+9kuEOie135Ur4dOfLlOoOsLjCr/rzXki6U/nVBvkf0c1Qu809Z9w4+8GeYUnrqkWm+LvMXnJRTlwruvBIAAAAASUVORK5CYII=",vs=""+new URL("focus_bg-b6803e2d-balabala-1784074877048.png",import.meta.url).href,Ks="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAMAAADDpiTIAAAAOVBMVEUAAAD///////////////////////////////////////////////////////////////////////8KOjVvAAAAEnRSTlMA3yDvvxBAn3CAYFCQzzCgj6+a/gWFAAAIxklEQVR42uzBgQAAAACAoP2pF6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGB27gRJcRiGAqi8O2sH3f+wM1XM1lOAHZwQKfnvBF3tjyxbBgAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvfBPxkz+lro8xEBwMfyd87dumAkugx9xfhkswRXwUyb1CMH58UvTEgm0CjOVcYlLA4FCMTkOVQFABs4nLo5/ylTEdUxCP6BGyJ7vPBVxNd8TKBA6x3+EugCgDJxGTPyvnkp4HURAtOj5O18RAETgLKLn/7lQDgAicA7W8wN9OQCIwBmEhR/y5QAgAieQHT/mwj4BYJMJpIgTPxVLAXibwdRYhrDwC6kmANgHFBsc/7V+D+AWBpeDRws3LojFAKAI6BUdl4zFAKAIaBUWLnOFADRb8JL0INZwjUiv+MkYw00MtoFDZMdVRqpgY8zdbXL8Doc7gQMsXMnRCvPQ3RyvthB8lp24WqSV5v7L8DoTtoGPmg3XG+kNc+/RCIg1OK7nB3pP6G9cz+Hh6MdkruZzoAZ2TR3oCD6i40pujNTMfhkkQJSlemAbaBOhN0iAHImr+Egbqo1AIthZalj+tgggARIkrjBF2kFvkIDDpUMvZnuDBBwrcVkXaDe2QwKO1HGRt7QrO2EwcJhOxFiuNzgNHqM7/ON/Zz2XYDy8g0HCx7/2Khpzgc1ZJ2gcZ00pjPjOwKf/5WOgDwqjoDhewiRt18382kSwoUXet7Rmg8Pgx2SJ9dYaYUXpvAoNoA90iOD5FYc2YCPB8CtfdJgvfsXgGyPbWOReu3VoA/bXy13/UgLwQ8MbsEbw+hcS4LAJtEui17+QgBtBo174+hN1GArsyBqZ/f+/vrAJNGjYADwJ4XES2Mus4pgdDE4COzHS7n8fswZToV1kfk7UxH3GTGAP1qj5t2b0gTtI/NRIwozoAzdnNTSANY2goG5FlaTqX2qd/POqLlZNA3CXcRTcVtL2ifLa/mDZrIobgH9ZhxLwkQIg9td5M0rAdqzGqzWPErCZpOkE8JvFd8a3YmW/AVj/NkDcxYVwSVsHeBecytwKZNR1gHcZE4F9H4IZEm5SdXkllldaAIgiToIbsGoLAJHHSbBdUlsAiKKaCbZgRm8BeF4CHEGlQXEBIIrYA1olzQWAyOA2sJHTXACIMq4C2gxq3oE9FpyGh8yCJe0ldOQHfFaS3+M5fWPAQhvofI/Vrxb1X6V5rH6DUXcL+L0NdCli9VeatO8AROHX6o9Y/fXsGX5swzO7ERc/b+n17wBEA1b/bQlvqq7NqD8DQAt7hh0A3jfgGvXaRtWDQGjmlc8BoJFDC3BpM1qAaxvwnu7auhPcA8MP9u40yU0ghgIw6s2AWcy7/2EzNUmq8iMzeNwNSNb7jgCNpFYvVNh4ss63xEu3fYusAV3LrAF9K+ZuhaGm7pwE+NZzEuDbwMsVfFt5rNK3jQPAt2R+RzgdcSagIyeEA8A34X4w37gh0DkOAOe4FOAcTwXR+0ic0vjGpoZzbGo4xwHgHLtazrGp4RybGr4FNjV8K9zg6lvhTQe+cYezc9zh7NzGc66+zdzh7FvkjaeuLTzo7NudfSDfeNuRc7ztyLnIWaBrvPHSuZGTAN9unAT4JvivqSMXFrAGdG20//NDqpG4I9S1bP0H6OqUh6ns+RZ/v9SjPKKxCdTGEqCVXB7R3EJ6AM8ENJHLLVrcTDeCXYB6eUzRaBMtgdvBGrx9s48vgAsBVXKfTAfQGyeBh7RRo5EyMAv7wFVyhOkzFSMzQKUVphupwgxQqcByFT2CGaBWhOHtFGI7fqkwGQ4BI5gBqhXYDQECrgPUS2ZDwGh47CrSw+pyioArwQ3kCJu9gBEsAZsYYLIdGIQlYBsZgMHDdQNYAjayWnyUAQwArRQYLKdni6NWqwRzdeDIAHBKCIhKP6cgDAAtJWtJIDEANFVgKwn0YABoK5lKAgEMAOc9UlHXDsrCANDchC89OmUeDADt5WimDOjxJWEAqHusFm5bWmBmqNoy2/iwggBcBjxCgYVCMIuVSGXPBOjvByWwAjxKjvof7g02EpVNdwC69wYM+MCNYIfZlI+AAfpjlGk5qh4BA5gADlageAQMYAI43KR3BAz4xBthDpUFSvPsDTDRqLAuRHwn5e4SOeGDqTVrq3pAX60VBADXAM4x4VuydKdbBCwAzjND2efW4zezhxiNCYLvPXJ3ovyAxqz0zpao6JEHAVgAnuwOaEkDfcQfvA7oRD32pNCdICR80Nucel8D9sjYHa6PfP9XmbBrDt2hQgLf/3VW7BtCd5g8YN/a0WFW4MI80Ee+/6utuGwIlBl8/9dbcc0QKAl8/yqsuGAIlAS+fy0GPEfG3DWRe8FfXABSYMCT5Bba/LPuE+d/agx4WhpDq5/X6GlF0z3iedvLqeCe8LzI/v+JguAn0rjUdx717UnxLMz4GbmN4eUN6de3oGn/89wXt+G+dD8QwfJfrz7iFXHehr6U0HCQRZZ/lwiCKiIyp2dygKK9SPSvPKFafQ6YeP7jOqOgUm0OiOp/YvPewoo6lfOAjZ//j+kKAntn09n8Ua8uCHTfW5n9DVgEL3u9FzQz++vRy0EDIEfO/U14OQ90OxKjvxEvDoGXfgOT2Pr5xc6d4zAIAwEUDdjsm+D+h02X1pZFgcN7V5ivGRr8REUJFLxRFR3/pypI4JMSjb8m7VESQP4NGIz/6dqjuTWA7voJk0+/KsyxIIDkDYij8Vcjfw1k/pYeVru/MssR7gmgu4LLX6ecBj5pu9Vfr37dEgHw79r5aATwcu2yxiCAl9uX6YxBAC/X9cs4DWfcmkYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC3PTgkAAAAABD0/7UrbAAAAAAAAAAAAAAAAAAAAAAAAHAKGbwwCsmp53wAAAAASUVORK5CYII=",js=""+new URL("focus_move_bg-cf41417a-balabala-1784074877048.png",import.meta.url).href;const hs={class:"topic-switcher"},ps={class:"topic-switcher-menu"},gs=["onPointerup","onClick"],ms={class:"topic-title"},Ts={key:0},Vs={__name:"TopicSwitcher",props:{modelValue:{type:String,required:!0},topics:{type:Array,default:()=>me}},emits:["update:modelValue"],setup(d,{emit:t}){const e=d,r=t;let s="",A=0;const n=yt(()=>{var i;return(i=e.topics)!=null&&i.length?e.topics:me});function o(i,a){var u,l;if((l=(u=i.currentTarget)==null?void 0:u.blur)==null||l.call(u),a===e.modelValue)return;const c=Date.now();i.type==="click"&&s===a&&c-A<450||(i.type==="pointerup"&&(s=a,A=c),r("update:modelValue",a))}return(i,a)=>(K(),j("div",hs,[a[0]||(a[0]=S("div",{class:"topic-switcher-arrow"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1)),S("div",ps,[(K(!0),j(St,null,Bt(n.value,c=>(K(),j("button",{key:c.key,class:Te(["topic-switcher-item",{"is-active":c.key===d.modelValue}]),style:bt({"--topic-color":c.color,"--topic-item-width":c.width?`${c.width}px`:void 0}),type:"button",onPointerup:u=>o(u,c.key),onClick:u=>o(u,c.key)},[S("span",{class:Te(["topic-name",{"has-sub-name":c.subName}])},[S("span",ms,Ee(c.name),1),c.subName?(K(),j("small",Ts,Ee(c.subName),1)):kt("",!0)],2)],46,gs))),128))]),a[1]||(a[1]=S("div",{class:"topic-switcher-arrow is-reverse"},[S("img",{src:pe,alt:""}),S("img",{src:ge,alt:""})],-1))]))}};export{Lt as E,ys as R,Vs as _,Ds as a,Ss as b,Ns as c,bs as d,Os as e,Fs as f,Us as g,Gs as h,Qs as i,Ps as j,Hs as k,vs as l,Ks as m,js as n,Ls as o,Bs as p,Is as q,Ms as r,ks as s}; diff --git a/docs/assets/TopicSwitcher-27546cd1-balabala-1784045078568.css b/docs/assets/TopicSwitcher-aa157193-balabala-1784074877048.css similarity index 88% rename from docs/assets/TopicSwitcher-27546cd1-balabala-1784045078568.css rename to docs/assets/TopicSwitcher-aa157193-balabala-1784074877048.css index c5a79e3..e0728c2 100644 --- a/docs/assets/TopicSwitcher-27546cd1-balabala-1784045078568.css +++ b/docs/assets/TopicSwitcher-aa157193-balabala-1784074877048.css @@ -1 +1 @@ -.topic-switcher{display:flex;align-items:flex-start;justify-content:center;width:600px;height:52px;padding-top:10px;background:url(./bottom-menu-bg-b465793d-balabala-1784045078568.png) no-repeat center bottom;background-size:100% 52px;pointer-events:all}.topic-switcher-arrow{display:flex;align-items:center;height:30px;margin:0 12px}.topic-switcher-arrow.is-reverse{transform:scaleX(-1)}.topic-switcher-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.topic-switcher-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.topic-switcher-menu{display:flex;gap:4px}.topic-switcher-item{position:relative;width:var(--topic-item-width, 112px);height:32px;padding:0;border:0;background:url(./bottom-menu-btn-ee5c8064-balabala-1784045078568.png) no-repeat;background-size:100% 100%;color:#fff;cursor:pointer;overflow:hidden}.topic-switcher-item:hover,.topic-switcher-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784045078568.png) no-repeat;background-size:100% 100%}.topic-switcher .topic-name{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;padding:0 5px;text-align:center;white-space:nowrap}.topic-switcher .topic-name,.topic-switcher .topic-title,.topic-switcher .topic-name small{padding-top:0;font-size:16px;font-weight:700;line-height:18px;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-switcher .topic-name.has-sub-name{gap:1px}.topic-switcher .topic-name small{display:block;max-width:100%;overflow:hidden;font-size:10px;font-weight:600;line-height:11px;text-overflow:ellipsis} +.topic-switcher{display:flex;align-items:flex-start;justify-content:center;width:600px;height:52px;padding-top:10px;background:url(./bottom-menu-bg-b465793d-balabala-1784074877048.png) no-repeat center bottom;background-size:100% 52px;pointer-events:all}.topic-switcher-arrow{display:flex;align-items:center;height:30px;margin:0 12px}.topic-switcher-arrow.is-reverse{transform:scaleX(-1)}.topic-switcher-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.topic-switcher-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.topic-switcher-menu{display:flex;gap:4px}.topic-switcher-item{position:relative;width:var(--topic-item-width, 112px);height:32px;padding:0;border:0;background:url(./bottom-menu-btn-ee5c8064-balabala-1784074877048.png) no-repeat;background-size:100% 100%;color:#fff;cursor:pointer;overflow:hidden}.topic-switcher-item:hover,.topic-switcher-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784074877048.png) no-repeat;background-size:100% 100%}.topic-switcher .topic-name{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;padding:0 5px;text-align:center;white-space:nowrap}.topic-switcher .topic-name,.topic-switcher .topic-title,.topic-switcher .topic-name small{padding-top:0;font-size:16px;font-weight:700;line-height:18px;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.topic-switcher .topic-name.has-sub-name{gap:1px}.topic-switcher .topic-name small{display:block;max-width:100%;overflow:hidden;font-size:10px;font-weight:600;line-height:11px;text-overflow:ellipsis} diff --git a/docs/assets/area-b57940eb-balabala-1784045078568.png b/docs/assets/area-b57940eb-balabala-1784074877048.png similarity index 100% rename from docs/assets/area-b57940eb-balabala-1784045078568.png rename to docs/assets/area-b57940eb-balabala-1784074877048.png diff --git a/docs/assets/assets-4a378a39-1784045078568.js b/docs/assets/assets-34f9bc99-1784074877048.js similarity index 85% rename from docs/assets/assets-4a378a39-1784045078568.js rename to docs/assets/assets-34f9bc99-1784074877048.js index c091db9..7e7fc33 100644 --- a/docs/assets/assets-4a378a39-1784045078568.js +++ b/docs/assets/assets-34f9bc99-1784074877048.js @@ -1 +1 @@ -var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-98cd5b6c-1784045078568.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{g as n,a as h,H as q,C as G}from"./index-c252ce06-1784045078568.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; +var m=Object.defineProperty;var p=Object.getOwnPropertySymbols;var y=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var i=(t,e,a)=>e in t?m(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a,o=(t,e)=>{for(var a in e||(e={}))y.call(e,a)&&i(t,a,e[a]);if(p)for(var a of p(e))T.call(e,a)&&i(t,a,e[a]);return t};import{p as d}from"./screen2Standard-9c6af3a2-1784074877048.js";import{R as x,b as u,d as g,p as l,h as f,r as L,a as A,g as B,e as N,c as M,o as O,s as _,f as H,i as S,j as w,k as C,l as F,m as P,n as E}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{g as n,a as h,H as q,C as G}from"./index-b4ec1ae2-1784074877048.js";const s=new Map;class b{constructor(e={}){this.options=o({includeChinaMap:!1},e),this.ready=null,this.init()}init(){const e=this.getSharedKey(),a=R(e,()=>this.createAssetList());this.instance=a.instance,this.ready=a.ready}getSharedKey(){return this.options.includeChinaMap?"hongyuan-map-with-china":"hongyuan-map"}createAssetList(){let e=[{type:"Texture",name:"flyline",path:u},{type:"Texture",name:"pathLine",path:u},{type:"Texture",name:"pathLine2",path:g},{type:"Texture",name:"pathLine3",path:l},{type:"File",name:"china",path:n(h)},{type:"File",name:"mapJson",path:n(q)},{type:"File",name:"mapStroke",path:n(h)},{type:"Texture",name:"huiguang",path:f},{type:"Texture",name:"rotationBorder1",path:L},{type:"Texture",name:"rotationBorder2",path:A},{type:"Texture",name:"guangquan1",path:B},{type:"Texture",name:"guangquan2",path:N},{type:"Texture",name:"chinaBlurLine",path:M},{type:"Texture",name:"ocean",path:O},{type:"Texture",name:"side",path:_},{type:"Texture",name:"arrow",path:H},{type:"Texture",name:"point",path:S},{type:"Texture",name:"focusArrows",path:w},{type:"Texture",name:"focusBar",path:C},{type:"Texture",name:"focusBg",path:F},{type:"Texture",name:"focusMidQuan",path:P},{type:"Texture",name:"focusMoveBg",path:E}];return this.options.includeChinaMap&&e.push({type:"File",name:"chinaMap",path:n(G)}),e}}function R(t,e){if(s.has(t))return s.get(t);const a=new x({cloneTextures:!0});a.addLoader(d,"FileLoader");const c=a.loadAll(e()),r={instance:a,ready:c};return s.set(t,r),r}export{b as A}; diff --git a/docs/assets/bg-3acb94e3-balabala-1784045078568.png b/docs/assets/bg-3acb94e3-balabala-1784074877048.png similarity index 100% rename from docs/assets/bg-3acb94e3-balabala-1784045078568.png rename to docs/assets/bg-3acb94e3-balabala-1784074877048.png diff --git a/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg b/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784074877048.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg rename to docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784074877048.svg diff --git a/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784045078568.svg b/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784074877048.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-small-19304179-balabala-1784045078568.svg rename to docs/assets/bottom-menu-arrow-small-19304179-balabala-1784074877048.svg diff --git a/docs/assets/bottom-menu-bg-b465793d-balabala-1784045078568.png b/docs/assets/bottom-menu-bg-b465793d-balabala-1784074877048.png similarity index 100% rename from docs/assets/bottom-menu-bg-b465793d-balabala-1784045078568.png rename to docs/assets/bottom-menu-bg-b465793d-balabala-1784074877048.png diff --git a/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784045078568.png b/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784074877048.png similarity index 100% rename from docs/assets/bottom-menu-btn-ee5c8064-balabala-1784045078568.png rename to docs/assets/bottom-menu-btn-ee5c8064-balabala-1784074877048.png diff --git a/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784045078568.png b/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784074877048.png similarity index 100% rename from docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784045078568.png rename to docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784074877048.png diff --git a/docs/assets/chartTheme-8c348a2d-1784045078568.js b/docs/assets/chartTheme-9a56b109-1784074877048.js similarity index 97% rename from docs/assets/chartTheme-8c348a2d-1784045078568.js rename to docs/assets/chartTheme-9a56b109-1784074877048.js index 88a19cf..00dbb77 100644 --- a/docs/assets/chartTheme-8c348a2d-1784045078568.js +++ b/docs/assets/chartTheme-9a56b109-1784074877048.js @@ -1 +1 @@ -var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{L as w}from"./index-1784045078568.js";import{U as B,K as c,W as d}from"./screen2Standard-98cd5b6c-1784045078568.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,k=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:k,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},M(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},M(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function M(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:k}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,k as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; +var _=Object.defineProperty,K=Object.defineProperties;var U=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var j=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var v=(t,e,r)=>e in t?_(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,o=(t,e)=>{for(var r in e||(e={}))j.call(e,r)&&v(t,r,e[r]);if(y)for(var r of y(e))W.call(e,r)&&v(t,r,e[r]);return t},x=(t,e)=>K(t,U(e));var G=(t,e)=>{var r={};for(var a in t)j.call(t,a)&&e.indexOf(a)<0&&(r[a]=t[a]);if(t!=null&&y)for(var a of y(t))e.indexOf(a)<0&&W.call(t,a)&&(r[a]=t[a]);return r};import{L as w}from"./index-1784074877048.js";import{U as B,K as c,W as d}from"./screen2Standard-9c6af3a2-1784074877048.js";const S=B.ui,H=B.number,n=[c.accentCyan,c.accentMint,c.accentWater,c.accentOrange,"#16b6e8","#b9fbff"],D=c.textPrimary,V=c.textStrong,k=c.textSecondary,m=c.textMuted,q=c.chartGridLine,Z=new Map([["#ffd76c","#8bf7ff"],["#ffe06b","#8bf7ff"],["#ffcf62","#8bf7ff"],["#ffbf5a","#8bf7ff"],["#ff9a62","#48cfff"],["#ff9a5c","#48cfff"],["#ff8f6b","#48cfff"],["#ff5a64","#8bf7ff"],["#ff4054","#30dcff"],["#7ee269","#24f6c4"],["#86dc62","#24f6c4"],["#a6f06d","#24f6c4"],["#c7e86b","#8bf7ff"],["#9ea7ff","#48cfff"],["#7aa7ff","#48cfff"]]),E={color:m,fontFamily:S,fontSize:d.chartAxis};function L(t,e={}){return o({trigger:"item",appendToBody:!0,confine:!1,backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:D,fontFamily:S,fontSize:d.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);z-index:2147483647!important;pointer-events:none;",formatter:t},e)}function N(t={}){return o({itemWidth:10,itemHeight:7,itemGap:8,textStyle:x(o({},E),{color:k,fontSize:d.chartAxis})},t)}function g(t=[],e={}){return o({type:"category",data:t,axisLabel:o(x(o({},E),{color:m,interval:0,hideOverlap:!0,margin:8}),e.axisLabel||{}),axisLine:o({lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},e.axisLine||{}),axisTick:o({show:!1},e.axisTick||{}),splitLine:o({show:!1},e.splitLine||{})},M(e))}function h(t={}){return o({type:"value",axisLabel:o(x(o({},E),{color:m}),t.axisLabel||{}),axisLine:o({show:!1},t.axisLine||{}),axisTick:o({show:!1},t.axisTick||{}),splitLine:o({lineStyle:{color:q,type:"dashed"}},t.splitLine||{})},M(t))}function $(t={}){return o({left:42,right:28,top:30,bottom:24,containLabel:!1},t)}function I(t,e=`${t}12`){return new w(0,0,0,1,[{offset:0,color:t},{offset:1,color:e}])}function F(t=n[0]){return new w(0,0,0,1,[{offset:0,color:"rgba(255,255,255,0.96)"},{offset:.16,color:t},{offset:.72,color:`${t}a3`},{offset:1,color:`${t}14`}])}function J(t,e=`${t}20`,r="#ffffff"){return new w(0,0,1,0,[{offset:0,color:e},{offset:.68,color:t},{offset:1,color:r}])}function C(t={}){var r,a,i;const e=o({textStyle:o({fontFamily:S,color:m},t.textStyle||{}),animation:(r=t.animation)!=null?r:!0,animationDuration:(a=t.animationDuration)!=null?a:900,animationDurationUpdate:(i=t.animationDurationUpdate)!=null?i:700,animationEasing:t.animationEasing||"cubicOut"},t);return T(e),z(e),e}function rt({categories:t=[],rows:e=[],unit:r="",name:a="指标",orientation:i="vertical",colorIndex:s=0,grid:l={},showLabel:f=!0}={}){const u=i==="horizontal",P=e.map((b,p)=>({name:b.name||t[p],value:Number(b.value)||0,itemStyle:{borderRadius:u?[0,6,6,0]:[7,7,1,1],color:u?J(n[(s+p)%n.length],"rgba(48, 220, 255, 0.1)",n[(s+p)%n.length]):F(n[(s+p)%n.length])}}));return C({color:n,grid:$(o(u?{left:72,right:f?58:26,top:24,bottom:22}:{left:46,right:24,top:28,bottom:42},l)),tooltip:L(b=>`${b.marker}${b.name}:${A(b.value)}${r}`),xAxis:u?h():g(t,{axisLabel:{rotate:t.length>6?24:0}}),yAxis:u?g(t,{inverse:!0,axisLabel:{color:D,fontWeight:700}}):h(),series:[{name:a,type:"bar",barWidth:u?8:t.length>7?6:8,data:P,label:{show:f,position:u?"right":"top",color:V,fontFamily:H,fontSize:d.chartLabel,fontWeight:700,formatter:({value:b})=>A(b)}}]})}function at({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:46,right:20,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{borderRadius:[7,7,1,1],color:F(n[s%n.length])}}))})}function ot({categories:t=[],series:e=[],unit:r="",grid:a={}}={}){return C({color:n,grid:$(o({left:48,right:22,top:42,bottom:42},a)),tooltip:L(i=>O(i,r),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((i,s)=>({name:i.name,type:"bar",stack:"total",barWidth:t.length>7?6:8,data:i.values||[],itemStyle:{color:F(n[s%n.length])}}))})}function it({categories:t=[],series:e=[],unit:r="",area:a=!1,grid:i={}}={}){return C({color:n,grid:$(o({left:46,right:24,top:42,bottom:38},i)),tooltip:L(s=>O(s,r),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(139, 247, 255, 0.42)"}}}),legend:N({top:0,right:4}),xAxis:g(t),yAxis:h(),series:e.map((s,l)=>{const f=n[l%n.length];return{name:s.name,type:"line",smooth:!0,symbol:"circle",symbolSize:5,data:s.values||[],lineStyle:{width:1.6,color:f,shadowColor:`${f}22`,shadowBlur:1},itemStyle:{color:"#041522",borderColor:f,borderWidth:1},areaStyle:a?{color:I(f,`${f}08`)}:void 0}})})}function A(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?e.toLocaleString("zh-CN"):e.toLocaleString("zh-CN",{maximumFractionDigits:2}):"--"}function M(t={}){const l=t,{axisLabel:e,axisLine:r,axisTick:a,splitLine:i}=l;return G(l,["axisLabel","axisLine","axisTick","splitLine"])}function O(t,e=""){var s,l;const r=Array.isArray(t)?t:[t],a=((s=r[0])==null?void 0:s.axisValueLabel)||((l=r[0])==null?void 0:l.name)||"",i=r.map(f=>`${f.marker}${f.seriesName||f.name}:${A(f.value)}${e}`).join("
");return`${a}
${i}`}function z(t){if(!t||typeof t!="object")return;["textStyle","axisLabel","nameTextStyle","label","axisName"].forEach(r=>{!t[r]||typeof t[r]!="object"||(t[r]=Q(t[r]))}),Object.keys(t).forEach(r=>{const a=t[r];if(!(!a||typeof a!="object")&&!(r==="color"||r==="itemStyle"||r==="areaStyle"||r==="lineStyle")){if(Array.isArray(a)){a.forEach(z);return}z(a)}})}function T(t){!t||typeof t!="object"||Object.keys(t).forEach(e=>{const r=t[e];if(typeof r=="string"){t[e]=R(r);return}if(Array.isArray(r)){r.forEach((a,i)=>{typeof a=="string"?r[i]=R(a):T(a)});return}r&&typeof r=="object"&&T(r)})}function R(t){let e=t;return Z.forEach((r,a)=>{e=e.replace(new RegExp(a,"gi"),r)}),e=e.replace(/rgba\(\s*255\s*,\s*215\s*,\s*108\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*224\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)").replace(/rgba\(\s*255\s*,\s*154\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*143\s*,\s*107\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*126\s*,\s*226\s*,\s*105\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*134\s*,\s*220\s*,\s*98\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*166\s*,\s*240\s*,\s*109\s*,\s*([^)]+)\)/gi,"rgba(36, 246, 196, $1)").replace(/rgba\(\s*158\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*122\s*,\s*167\s*,\s*255\s*,\s*([^)]+)\)/gi,"rgba(72, 207, 255, $1)").replace(/rgba\(\s*255\s*,\s*64\s*,\s*84\s*,\s*([^)]+)\)/gi,"rgba(48, 220, 255, $1)").replace(/rgba\(\s*255\s*,\s*90\s*,\s*100\s*,\s*([^)]+)\)/gi,"rgba(139, 247, 255, $1)"),e}function Q(t){const e=o({fontFamily:t.fontFamily||S},t);return e.color=X(e.color),typeof e.fontSize=="number"&&e.fontSize<10&&(e.fontSize=10),e}function X(t){if(typeof t!="string")return t;const e=t.match(/^rgba\(\s*(22[0-9]|23[0-9]|24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*(24[0-9]|25[0-5])\s*,\s*([0-9.]+)\s*\)$/i);if(!e)return t;const r=Number(e[4]);return!Number.isFinite(r)||r>=.72?t:r<.6?m:k}export{at as a,ot as b,rt as c,it as d,n as e,L as f,N as g,$ as h,g as i,A as j,I as k,k as l,V as m,S as n,D as o,q as p,H as q,F as s,h as v,C as w}; diff --git a/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784045078568.png b/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784074877048.png similarity index 100% rename from docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784045078568.png rename to docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784074877048.png diff --git a/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg b/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784074877048.svg similarity index 100% rename from docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg rename to docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784074877048.svg diff --git a/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg b/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784074877048.svg similarity index 100% rename from docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg rename to docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784074877048.svg diff --git a/docs/assets/content-middle-line-162bc0d5-balabala-1784045078568.svg b/docs/assets/content-middle-line-162bc0d5-balabala-1784074877048.svg similarity index 100% rename from docs/assets/content-middle-line-162bc0d5-balabala-1784045078568.svg rename to docs/assets/content-middle-line-162bc0d5-balabala-1784074877048.svg diff --git a/docs/assets/data-156ef419-1784045078568.js b/docs/assets/data-202a0afb-1784074877048.js similarity index 98% rename from docs/assets/data-156ef419-1784045078568.js rename to docs/assets/data-202a0afb-1784074877048.js index 97ff1a1..82baf9b 100644 --- a/docs/assets/data-156ef419-1784045078568.js +++ b/docs/assets/data-202a0afb-1784074877048.js @@ -1 +1 @@ -var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1784045078568.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; +var x=Object.defineProperty,k=Object.defineProperties;var h=Object.getOwnPropertyDescriptors;var y=Object.getOwnPropertySymbols;var f=Object.prototype.hasOwnProperty,T=Object.prototype.propertyIsEnumerable;var p=Math.pow,d=(e,r,a)=>r in e?x(e,r,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[r]=a,m=(e,r)=>{for(var a in r||(r={}))f.call(r,a)&&d(e,a,r[a]);if(y)for(var a of y(r))T.call(r,a)&&d(e,a,r[a]);return e},t=(e,r)=>k(e,h(r));import{d as M}from"./livestockData-36ec0ae2-1784074877048.js";const S=(e,r=2)=>{const a=p(10,r);return Math.round((Number(e)||0)*a)/a},g=e=>S((Number(e)||0)/1e4,2),w=9110,$=(e,r,a="number")=>{const o=e.reduce((n,u)=>n+(Number(u[a])||0),0);if(!o||!r)return e.map(n=>t(m({},n),{[a]:0}));const s=e.map(n=>t(m({},n),{[a]:Math.round((Number(n[a])||0)/o*r)})),c=r-s.reduce((n,u)=>n+(Number(u[a])||0),0);if(c&&s.length){const n=s.reduce((u,A,C)=>{var N;return Number(A[a])>Number(((N=s[u])==null?void 0:N[a])||0)?C:u},0);s[n][a]+=c}return s},z=$([{areaCode:"513233100",areaName:"邛溪镇",number:1452,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",number:1500,year:2024},{areaCode:"513233103",areaName:"安曲镇",number:76,year:2024},{areaCode:"513233105",areaName:"龙日镇",number:828,year:2024},{areaCode:"513233202",areaName:"江茸乡",number:902,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",number:450,year:2024},{areaCode:"513233204",areaName:"瓦切镇",number:602,year:2024},{areaCode:"513233205",areaName:"阿木乡",number:300,year:2024},{areaCode:"513233207",areaName:"麦洼乡",number:1204,year:2024},{areaCode:"513233208",areaName:"色地镇",number:2638,year:2024}],w),R=[{key:"pasture-total",name:"牧户数量",value:w,unit:"户",icon:"town"},{key:"avg-yak-per-household",name:"户均牦牛头数",value:52,unit:"头",icon:"stack"},{key:"avg-grassland-area",name:"户均草地面积",value:1131,unit:"亩",icon:"area"},{key:"joint-household-count",name:"联户数量",value:237,unit:"户",icon:"town"},{key:"poverty-monitor-count",name:"防反贫监测户",value:122,unit:"户",icon:"town"},{key:"average-income",name:"人均收入",value:19679,unit:"元/年",icon:"rate"}],j=R,G=R.map(e=>t(m({},e),{zh:e.name,decimals:0})),i=z.map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.number,unit:"户"})),L=[{areaCode:"513233105",areaName:"龙日镇",uplineRate:4,year:2024},{areaCode:"513233207",areaName:"麦洼乡",uplineRate:52,year:2024},{areaCode:"513233103",areaName:"安曲镇",uplineRate:22,year:2024},{areaCode:"513233100",areaName:"邛溪镇",uplineRate:23,year:2024},{areaCode:"513233208",areaName:"色地镇",uplineRate:8,year:2024},{areaCode:"513233205",areaName:"阿木乡",uplineRate:12,year:2024},{areaCode:"513233202",areaName:"江茸乡",uplineRate:14,year:2024},{areaCode:"513233203",areaName:"查尔玛乡",uplineRate:18,year:2024},{areaCode:"513233204",areaName:"瓦切镇",uplineRate:16,year:2024},{areaCode:"513233101",areaName:"刷经寺镇",uplineRate:9,year:2024}].map(e=>t(m({},e),{key:e.areaCode,name:e.areaName,value:e.uplineRate,unit:"%",extra:`${e.uplineRate}%`})),l=[{areaName:"全县",ageRange:"0-20",sex:"男",number:311,value:311,year:2024},{areaName:"全县",ageRange:"0-20",sex:"女",number:319,value:319,year:2024},{areaName:"全县",ageRange:"21-40",sex:"男",number:1556,value:1556,year:2024},{areaName:"全县",ageRange:"21-40",sex:"女",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"男",number:1868,value:1868,year:2024},{areaName:"全县",ageRange:"41-60",sex:"女",number:1925,value:1925,year:2024},{areaName:"全县",ageRange:"61-80",sex:"男",number:622,value:622,year:2024},{areaName:"全县",ageRange:"61-80",sex:"女",number:531,value:531,year:2024},{areaName:"全县",ageRange:"81-100",sex:"男",number:55,value:55,year:2024},{areaName:"全县",ageRange:"81-100",sex:"女",number:55,value:55,year:2024}],b=(e,r,a,o)=>Array.from(e.reduce((s,c)=>{const n=c[r]||"未标注",u=s.get(n)||{key:n,name:n,value:0,unit:o};return u.value+=Number(c[a])||0,s.set(n,u),s},new Map).values()),O=b(l,"ageRange","value","人"),B=b(l,"sex","value","人"),v=[{name:"更洼尔",areaName:"瓦切镇",acreage:4704.87,summerAcreage:2267.26,winterAcreage:2437.61,year:2024},{name:"涉尔丹",areaName:"麦洼乡",acreage:1426.53,summerAcreage:687.82,winterAcreage:738.71,year:2024},{name:"热布丹",areaName:"查尔玛乡",acreage:2176.09,summerAcreage:1049.37,winterAcreage:1126.72,year:2024},{name:"王西卓玛",areaName:"阿木乡",acreage:4126.13,summerAcreage:1989.59,winterAcreage:2136.54,year:2024},{name:"阿尔",areaName:"色地镇",acreage:1249.48,summerAcreage:602.25,winterAcreage:647.23,year:2024},{name:"尕让吉",areaName:"邛溪镇",acreage:3688.72,summerAcreage:1778.56,winterAcreage:1910.16,year:2024},{name:"华尔甲",areaName:"安曲镇",acreage:2956.44,summerAcreage:1425.01,winterAcreage:1531.43,year:2024},{name:"泽让措",areaName:"江茸乡",acreage:3448.36,summerAcreage:1662.61,winterAcreage:1785.75,year:2024},{name:"扎西让布",areaName:"龙日镇",acreage:2689.1,summerAcreage:1296.15,winterAcreage:1392.95,year:2024},{name:"格桑卓玛",areaName:"刷经寺镇",acreage:3187.64,summerAcreage:1536.84,winterAcreage:1650.8,year:2024}].map(e=>t(m({},e),{township:e.areaName,grasslandArea:e.acreage,value:e.acreage,unit:"亩",canLocate:!1,locateText:"--",searchText:`${e.name} ${e.areaName}`})),P=M.map(e=>({key:e.zoneName,name:e.zoneName,value:g(e.grasslandArea),unit:"万亩",extra:"草场资源"})),W=Array.from(v.reduce((e,r)=>{const a=r.township||"未填写",o=e.get(a)||{key:`${a}-season`,name:a,values:{summer:0,winter:0}};return o.values.summer+=Number(r.summerAcreage)||0,o.values.winter+=Number(r.winterAcreage)||0,e.set(a,o),e},new Map).values()).map(e=>t(m({},e),{values:{summer:g(e.values.summer),winter:g(e.values.winter)},unit:"万亩"})),Y=i.map(e=>({name:e.name,value:e.value,unit:"户"})),q={topStats:G,coreRows:j,townRows:i,ageRows:l,genderRows:B,onlineRows:L,list:v};export{i as a,L as b,O as c,B as d,Y as e,w as f,q as g,v as h,G as i,P as j,l as k,W as l,j as p}; diff --git a/docs/assets/data-bfed1662-1784045078568.js b/docs/assets/data-35cd5cb4-1784074877048.js similarity index 99% rename from docs/assets/data-bfed1662-1784045078568.js rename to docs/assets/data-35cd5cb4-1784074877048.js index 32fc6ee..5ed2398 100644 --- a/docs/assets/data-bfed1662-1784045078568.js +++ b/docs/assets/data-35cd5cb4-1784074877048.js @@ -1,4 +1,4 @@ -var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Rn,af as Vt,ag as Te,ah as Re,ai as Jt,aj as Bn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-98cd5b6c-1784045078568.js";import{E as lt,q as Xt}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1784045078568.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e,config:n={}}){super(),this.canvas=e,this.config=n||{},this.maxPixelRatio=Number(this.config.maxPixelRatio)||2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var i;const e=((i=this.canvas)==null?void 0:i.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1;const n=Number(this.config.maxPixelRatio)||this.maxPixelRatio||2;this.maxPixelRatio=n,this.pixelRatio=Math.min(window.devicePixelRatio||1,n)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,B=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,B(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Be(t,e){return B(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,R=z*O,A=R>P,Y=f*C;if(h.add(we(Y*z*I(R),E*L+Y*U(R))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=B(o-e);B(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(B(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(B(t[0]-e[0])>T){var o=t[0]0,s=B(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Be(c,y)||Be(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Be(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,R=Ae(L,z),A=Ae(z,z),Y=R*R-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-R-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(B(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-R+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return B(d[0]-t)0?0:3:B(d[0]-n)0?2:1:B(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:R,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function R(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=B(B(C)-1)e||B((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Rt(n,0,0,u,p,c).apply(null,e(o,r)),b=Rt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=R=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` +var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnPropertyDescriptors;var Me=Object.getOwnPropertySymbols;var pt=Object.prototype.hasOwnProperty,mt=Object.prototype.propertyIsEnumerable;var Fe=(t,e)=>{if(e=Symbol[t])return e;throw Error("Symbol."+t+" is not defined")};var We=(t,e,n)=>e in t?fn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Q=(t,e)=>{for(var n in e||(e={}))pt.call(e,n)&&We(t,n,e[n]);if(Me)for(var n of Me(e))mt.call(e,n)&&We(t,n,e[n]);return t},Z=(t,e)=>dn(t,pn(e));var vt=(t,e)=>{var n={};for(var i in t)pt.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&Me)for(var i of Me(t))e.indexOf(i)<0&&mt.call(t,i)&&(n[i]=t[i]);return n};var M=(t,e,n)=>(We(t,typeof e!="symbol"?e+"":e,n),n);var mn=function(t,e){this[0]=t,this[1]=e};var gt=t=>{var e=t[Fe("asyncIterator")],n=!1,i,s={};return e==null?(e=t[Fe("iterator")](),i=o=>s[o]=r=>e[o](r)):(e=e.call(t),i=o=>s[o]=r=>{if(n){if(n=!1,o==="throw")throw r;return r}return n=!0,{done:!1,value:new mn(new Promise(a=>{var h=e[o](r);if(!(h instanceof Object))throw TypeError("Object expected");a(h)}),1)}}),s[Fe("iterator")]=()=>s,i("next"),"throw"in e?i("throw"):s.throw=o=>{throw o},"return"in e&&i("return"),s};import{X as vn,Y as gn,S as wn,Z as yn,_ as Sn,$ as En,a0 as ke,a1 as xn,a2 as Mn,b as re,C as Ke,V as F,a3 as An,G as ve,a as ge,D as Cn,a4 as bn,z as it,w as De,m as kt,a5 as Ht,a6 as N,J as st,y as Yt,O as ot,a7 as rt,a8 as Pn,P as Ln,A as On,t as zn,a9 as Dn,aa as at,ab as Tn,I as wt,ac as qe,ad as ue,ae as Rn,af as Vt,ag as Te,ah as Re,ai as Jt,aj as Bn,ak as Ge,al as _n,am as Un,L as In,x as jn,T as Gn,E as Nn,an as Fn}from"./screen2Standard-9c6af3a2-1784074877048.js";import{E as lt,q as Xt}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1784074877048.js";function Vn(t){let e=null,n=!1,i=!1;function s(){!n||i||(t(),e=requestAnimationFrame(s))}function o(){n||(n=!0,s())}function r(){n&&(n=!1,i=!0,cancelAnimationFrame(e))}function a(){!n&&i&&(n=!0,i=!1,s())}return{start:o,pause:r,resume:a,isActive:()=>n}}class Jn extends lt{constructor({canvas:e,config:n={}}){super(),this.canvas=e,this.config=n||{},this.maxPixelRatio=Number(this.config.maxPixelRatio)||2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var i;const e=((i=this.canvas)==null?void 0:i.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1;const n=Number(this.config.maxPixelRatio)||this.maxPixelRatio||2;this.maxPixelRatio=n,this.pixelRatio=Math.min(window.devicePixelRatio||1,n)}destroy(){window.removeEventListener("resize",this.handleResize),this.off("resize")}}class Xn extends lt{constructor(){super(),this.start=Date.now(),this.current=this.start,this.elapsed=0,this.delta=16,this.clock=new vn,this.raf=Vn(()=>this.tick()),this.raf.start()}tick(){const e=Date.now();this.delta=e-this.current,this.current=e,this.elapsed=this.current-this.start;const n=this.clock.getDelta(),i=this.clock.getElapsedTime();this.emit("tick",n,i)}destroy(){this.pause(),this.off("tick")}pause(){this.raf.pause()}resume(){this.raf.resume()}isActive(){this.raf.isActive()}}function Kn(t=10,e=62){var n="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),i=[],s;if(e=e||n.length,t)for(s=0;sqn(typeof t=="string"?JSON.parse(t):t);function qn(t){var n,i,s,o;let e=(t==null?void 0:t.features)||[];for(let r=0;r{this.canvas.style.cursor="grabbing"},this.handlePointerUp=()=>{this.canvas.style.cursor="grab"},this.canvas.style.cursor="grab",this.canvas.style.touchAction="none",this.canvas.addEventListener("pointerdown",this.handlePointerDown),window.addEventListener("pointerup",this.handlePointerUp),this.canvas.addEventListener("pointerleave",this.handlePointerUp))}resize(){let e=this.sizes.width/this.sizes.height;if(this.options.isOrthographic){let n=120;this.instance.left=-n*e,this.instance.right=n*e,this.instance.top=n,this.instance.bottom=-n}else this.instance.aspect=e;this.instance.updateProjectionMatrix()}update(){this.controls.update()}destroy(){var e,n,i,s;(n=(e=this.canvas)==null?void 0:e.removeEventListener)==null||n.call(e,"pointerdown",this.handlePointerDown),(s=(i=this.canvas)==null?void 0:i.removeEventListener)==null||s.call(i,"pointerleave",this.handlePointerUp),window.removeEventListener("pointerup",this.handlePointerUp),this.controls.dispose()}}class $n{constructor(){this._partials=new Float64Array(32),this._n=0}add(e){const n=this._partials;let i=0;for(let s=0;s0){for(r=e[--n];n>0&&(i=r,s=e[--n],r=i+s,o=s-(r-i),!o););n>0&&(o<0&&e[n-1]<0||o>0&&e[n-1]>0)&&(s=o*2,i=r+s,s==i-r&&(r=i))}return r}}function*ei(t){for(const e of t)yield*gt(e)}function qt(t){return Array.from(ei(t))}var T=1e-6,ti=1e-12,P=Math.PI,X=P/2,yt=P/4,$=P*2,K=180/P,j=P/180,B=Math.abs,Qt=Math.atan,we=Math.atan2,U=Math.cos,ni=Math.exp,ii=Math.log,I=Math.sin,si=Math.sign||function(t){return t>0?1:t<0?-1:0},Ne=Math.sqrt,oi=Math.tan;function ri(t){return t>1?0:t<-1?P:Math.acos(t)}function ye(t){return t>1?X:t<-1?-X:Math.asin(t)}function pe(){}function _e(t,e){t&&Et.hasOwnProperty(t.type)&&Et[t.type](t,e)}var St={Feature:function(t,e){_e(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,i=-1,s=n.length;++iP&&(t-=Math.round(t/$)*$),[t,e]}tt.invert=tt;function Zt(t,e,n){return(t%=$)?e||n?et(At(t),Ct(e,n)):At(t):e||n?Ct(e,n):tt}function Mt(t){return function(e,n){return e+=t,B(e)>P&&(e-=Math.round(e/$)*$),[e,n]}}function At(t){var e=Mt(t);return e.invert=Mt(-t),e}function Ct(t,e){var n=U(t),i=I(t),s=U(e),o=I(e);function r(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*n+l*i;return[we(c*s-p*o,l*n-u*i),ye(p*s+c*o)]}return r.invert=function(a,h){var d=U(h),l=U(a)*d,c=I(a)*d,u=I(h),p=u*s-c*o;return[we(c*s+u*o,l*n+p*i),ye(p*n-l*i)]},r}function li(t){t=Zt(t[0]*j,t[1]*j,t.length>2?t[2]*j:0);function e(n){return n=t(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n}return e.invert=function(n){return n=t.invert(n[0]*j,n[1]*j),n[0]*=K,n[1]*=K,n},e}function ci(t,e,n,i,s,o){if(n){var r=U(e),a=I(e),h=i*n;s==null?(s=e+i*$,o=e-h/2):(s=bt(r,s),o=bt(r,o),(i>0?so)&&(s+=i*$));for(var d,l=s;i>0?l>o:l1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function Be(t,e){return B(t[0]-e[0])=0;--a)s.point((c=l[a])[0],c[1]);else i(u.x,u.p.x,-1,s);u=u.p}u=u.o,l=u.z,p=!p}while(!u.v);s.lineEnd()}}}function Pt(t){if(e=t.length){for(var e,n=0,i=t[0],s;++n=0?1:-1,R=z*O,A=R>P,Y=f*C;if(h.add(we(Y*z*I(R),E*L+Y*U(R))),r+=A?O+z*$:O,A^m>=n^w>=n){var _=Ue(he(p),he(y));$e(_);var D=Ue(o,_);$e(D);var v=(A^O>=0?-1:1)*ye(D[2]);(i>v||i===v&&(_[0]||_[1]))&&(a+=A^O>=0?1:-1)}}return(r<-T||r0){for(h||(s.polygonStart(),h=!0),s.lineStart(),C=0;C1&&w&2&&x.push(x.pop().concat(x.shift())),l.push(x.filter(hi))}}return u}}function hi(t){return t.length>1}function fi(t,e){return((t=t.x)[0]<0?t[1]-X-T:X-t[1])-((e=e.x)[0]<0?e[1]-X-T:X-e[1])}const Lt=tn(function(){return!0},di,mi,[-P,-X]);function di(t){var e=NaN,n=NaN,i=NaN,s;return{lineStart:function(){t.lineStart(),s=1},point:function(o,r){var a=o>0?P:-P,h=B(o-e);B(h-P)0?X:-X),t.point(i,n),t.lineEnd(),t.lineStart(),t.point(a,n),t.point(o,n),s=0):i!==a&&h>=P&&(B(e-i)T?Qt((I(e)*(o=U(i))*I(n)-I(i)*(s=U(e))*I(t))/(s*o*r)):(e+i)/2}function mi(t,e,n,i){var s;if(t==null)s=n*X,i.point(-P,s),i.point(0,s),i.point(P,s),i.point(P,0),i.point(P,-s),i.point(0,-s),i.point(-P,-s),i.point(-P,0),i.point(-P,s);else if(B(t[0]-e[0])>T){var o=t[0]0,s=B(e)>T;function o(l,c,u,p){ci(p,t,n,u,l,c)}function r(l,c){return U(l)*U(c)>e}function a(l){var c,u,p,m,g;return{lineStart:function(){m=p=!1,g=1},point:function(f,E){var S=[f,E],y,w=r(f,E),x=i?w?0:d(f,E):w?d(f+(f<0?P:-P),E):0;if(!c&&(m=p=w)&&l.lineStart(),w!==p&&(y=h(c,S),(!y||Be(c,y)||Be(S,y))&&(S[2]=1)),w!==p)g=0,w?(l.lineStart(),y=h(S,c),l.point(y[0],y[1])):(y=h(c,S),l.point(y[0],y[1],2),l.lineEnd()),c=y;else if(s&&c&&i^w){var C;!(x&u)&&(C=h(S,c,!0))&&(g=0,i?(l.lineStart(),l.point(C[0][0],C[0][1]),l.point(C[1][0],C[1][1]),l.lineEnd()):(l.point(C[1][0],C[1][1]),l.lineEnd(),l.lineStart(),l.point(C[0][0],C[0][1],3)))}w&&(!c||!Be(c,S))&&l.point(S[0],S[1]),c=S,p=w,u=x},lineEnd:function(){p&&l.lineEnd(),c=null},clean:function(){return g|(m&&p)<<1}}}function h(l,c,u){var p=he(l),m=he(c),g=[1,0,0],f=Ue(p,m),E=Ae(f,f),S=f[0],y=E-S*S;if(!y)return!u&&l;var w=e*E/y,x=-e*S/y,C=Ue(g,f),L=Ce(g,w),O=Ce(f,x);He(L,O);var z=C,R=Ae(L,z),A=Ae(z,z),Y=R*R-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-R-_)/A);if(He(D,L),D=Ze(D),!u)return D;var v=l[0],b=c[0],G=l[1],V=c[1],q;b0^D[1]<(B(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-R+_)/A);return He(oe,L),[D,Ze(oe)]}}}function d(l,c){var u=i?t:P-t,p=0;return l<-u?p|=1:l>u&&(p|=2),c<-u?p|=4:c>u&&(p|=8),p}return tn(r,a,o,i?[0,-t]:[-P,t-P])}function gi(t,e,n,i,s,o){var r=t[0],a=t[1],h=e[0],d=e[1],l=0,c=1,u=h-r,p=d-a,m;if(m=n-r,!(!u&&m>0)){if(m/=u,u<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=s-r,!(!u&&m<0)){if(m/=u,u<0){if(m>c)return;m>l&&(l=m)}else if(u>0){if(m0)){if(m/=p,p<0){if(m0){if(m>c)return;m>l&&(l=m)}if(m=o-a,!(!p&&m<0)){if(m/=p,p<0){if(m>c)return;m>l&&(l=m)}else if(p>0){if(m0&&(t[0]=r+l*u,t[1]=a+l*p),c<1&&(e[0]=r+c*u,e[1]=a+c*p),!0}}}}}var me=1e9,Pe=-me;function wi(t,e,n,i){function s(d,l){return t<=d&&d<=n&&e<=l&&l<=i}function o(d,l,c,u){var p=0,m=0;if(d==null||(p=r(d,c))!==(m=r(l,c))||h(d,l)<0^c>0)do u.point(p===0||p===3?t:n,p>1?i:e);while((p=(p+c+4)%4)!==m);else u.point(l[0],l[1])}function r(d,l){return B(d[0]-t)0?0:3:B(d[0]-n)0?2:1:B(d[1]-e)0?1:0:l>0?3:2}function a(d,l){return h(d.x,l.x)}function h(d,l){var c=r(d,1),u=r(l,1);return c!==u?c-u:c===0?l[1]-d[1]:c===1?d[0]-l[0]:c===2?d[1]-l[1]:l[0]-d[0]}return function(d){var l=d,c=$t(),u,p,m,g,f,E,S,y,w,x,C,L={point:O,lineStart:Y,lineEnd:_,polygonStart:R,polygonEnd:A};function O(v,b){s(v,b)&&l.point(v,b)}function z(){for(var v=0,b=0,G=p.length;bi&&(xe-ae)*(i-oe)>(ce-oe)*(t-ae)&&++v:ce<=i&&(xe-ae)*(i-oe)<(ce-oe)*(t-ae)&&--v;return v}function R(){l=c,u=[],p=[],C=!0}function A(){var v=z(),b=C&&v,G=(u=qt(u)).length;(b||G)&&(d.polygonStart(),b&&(d.lineStart(),o(null,null,1,d),d.lineEnd()),G&&en(u,a,v,o,d),d.polygonEnd()),l=d,u=p=m=null}function Y(){L.point=D,p&&p.push(m=[]),x=!0,w=!1,S=y=NaN}function _(){u&&(D(g,f),E&&w&&c.rejoin(),u.push(c.result())),L.point=O,w&&l.lineEnd()}function D(v,b){var G=s(v,b);if(p&&m.push([v,b]),x)g=v,f=b,E=G,x=!1,G&&(l.lineStart(),l.point(v,b));else if(G&&w)l.point(v,b);else{var V=[S=Math.max(Pe,Math.min(me,S)),y=Math.max(Pe,Math.min(me,y))],q=[v=Math.max(Pe,Math.min(me,v)),b=Math.max(Pe,Math.min(me,b))];gi(V,q,t,e,n,i)?(w||(l.lineStart(),l.point(V[0],V[1])),l.point(q[0],q[1]),G||l.lineEnd(),C=!1):G&&(l.lineStart(),l.point(v,b),C=!1)}S=v,y=b,w=G}return L}}const Ot=t=>t;var fe=1/0,Ie=fe,Se=-fe,je=Se,yi={point:Si,lineStart:pe,lineEnd:pe,polygonStart:pe,polygonEnd:pe,result:function(){var t=[[fe,Ie],[Se,je]];return Se=je=-(Ie=fe=1/0),t}};function Si(t,e){tSe&&(Se=t),eje&&(je=e)}const zt=yi;function ut(t){return function(e){var n=new nt;for(var i in t)n[i]=t[i];return n.stream=e,n}}function nt(){}nt.prototype={constructor:nt,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function ht(t,e,n){var i=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),i!=null&&t.clipExtent(null),ai(n,t.stream(zt)),e(zt.result()),i!=null&&t.clipExtent(i),t}function nn(t,e,n){return ht(t,function(i){var s=e[1][0]-e[0][0],o=e[1][1]-e[0][1],r=Math.min(s/(i[1][0]-i[0][0]),o/(i[1][1]-i[0][1])),a=+e[0][0]+(s-r*(i[1][0]+i[0][0]))/2,h=+e[0][1]+(o-r*(i[1][1]+i[0][1]))/2;t.scale(150*r).translate([a,h])},n)}function Ei(t,e,n){return nn(t,[[0,0],e],n)}function xi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][0]-i[0][0]),r=(s-o*(i[1][0]+i[0][0]))/2,a=-o*i[0][1];t.scale(150*o).translate([r,a])},n)}function Mi(t,e,n){return ht(t,function(i){var s=+e,o=s/(i[1][1]-i[0][1]),r=-o*i[0][0],a=(s-o*(i[1][1]+i[0][1]))/2;t.scale(150*o).translate([r,a])},n)}var Dt=16,Ai=U(30*j);function Tt(t,e){return+e?bi(t,e):Ci(t)}function Ci(t){return ut({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function bi(t,e){function n(i,s,o,r,a,h,d,l,c,u,p,m,g,f){var E=d-i,S=l-s,y=E*E+S*S;if(y>4*e&&g--){var w=r+u,x=a+p,C=h+m,L=Ne(w*w+x*x+C*C),O=ye(C/=L),z=B(B(C)-1)e||B((E*_+S*D)/y-.5)>.3||r*u+a*p+h*m2?v[2]%360*j:0,_()):[a*K,h*K,d*K]},A.angle=function(v){return arguments.length?(c=v%360*j,_()):c*K},A.reflectX=function(v){return arguments.length?(u=v?-1:1,_()):u<0},A.reflectY=function(v){return arguments.length?(p=v?-1:1,_()):p<0},A.precision=function(v){return arguments.length?(C=Tt(L,x=v*v),D()):Ne(x)},A.fitExtent=function(v,b){return nn(A,v,b)},A.fitSize=function(v,b){return Ei(A,v,b)},A.fitWidth=function(v,b){return xi(A,v,b)},A.fitHeight=function(v,b){return Mi(A,v,b)};function _(){var v=Rt(n,0,0,u,p,c).apply(null,e(o,r)),b=Rt(n,i-v[0],s-v[1],u,p,c);return l=Zt(a,h,d),L=et(e,b),O=et(l,L),C=Tt(L,x),D()}function D(){return z=R=null,A}return function(){return e=t.apply(this,arguments),A.invert=e.invert&&Y,_()}}function ft(t,e){return[t,ii(oi((X+e)/2))]}ft.invert=function(t,e){return[t,2*Qt(ni(e))-X]};function dt(){return Ti(ft).scale(961/$)}function Ti(t){var e=zi(t),n=e.center,i=e.scale,s=e.translate,o=e.clipExtent,r=null,a,h,d;e.scale=function(c){return arguments.length?(i(c),l()):i()},e.translate=function(c){return arguments.length?(s(c),l()):s()},e.center=function(c){return arguments.length?(n(c),l()):n()},e.clipExtent=function(c){return arguments.length?(c==null?r=a=h=d=null:(r=+c[0][0],a=+c[0][1],h=+c[1][0],d=+c[1][1]),l()):r==null?null:[[r,a],[h,d]]};function l(){var c=P*i(),u=e(li(e.rotate()).invert([0,0]));return o(r==null?[[u[0]-c,u[1]-c],[u[0]+c,u[1]+c]]:t===ft?[[Math.max(u[0]-c,r),a],[Math.min(u[0]+c,h),d]]:[[r,Math.max(u[1]-c,a)],[h,Math.min(u[1]+c,d)]])}return l()}class Qi extends lt{constructor(e,n={}){var s,o;super();let i={isOrthographic:!1};this.config=Object.assign({},i,n),this.canvas=e,this.scene=new xn,this.sizes=new Jn(this),this.time=new Xn(this),this.camera=new Zn(this,{isOrthographic:this.config.isOrthographic}),this.renderer=new Qn(this),this.handleControlsChange=()=>{var r,a,h;this.renderer.update(),(a=(r=this.label3d)==null?void 0:r.update)==null||a.call(r),(h=this.updateTownLabelScale)==null||h.call(this)},(o=(s=this.camera.controls)==null?void 0:s.addEventListener)==null||o.call(s,"change",this.handleControlsChange),this.sizes.on("resize",()=>{this.resize()}),this.time.on("tick",r=>{this.update(r)})}setAxesHelper(e=250){if(!e)return!1;let n=new Mn(e);this.scene.add(n)}resize(){this.camera.resize(),this.renderer.resize()}update(e){this.camera.update(e),this.renderer.update(e)}destroy(){var e,n,i,s;(n=(e=this.camera.controls)==null?void 0:e.removeEventListener)==null||n.call(e,"change",this.handleControlsChange),this.sizes.destroy(),this.time.destroy(),this.camera.destroy(),this.renderer.destroy(),this.scene.traverse(o=>{if(o instanceof re){o.geometry.dispose();for(const r in o.material){const a=o.material[r];a&&typeof a.dispose=="function"&&a.dispose()}}}),(s=(i=this.canvas)==null?void 0:i.parentNode)==null||s.removeChild(this.canvas)}}class Zi{constructor({material:e,time:n,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r,callback:a=()=>{}}){this.time=n,this.pointShader=null,this.callback=a;let h={size:100,diffuseSpeed:15,diffuseColor:9345950,diffuseWidth:10};this.options=Object.assign({},h,{material:e,size:i,diffuseColor:s,diffuseSpeed:o,diffuseWidth:r}),this.init()}init(){let{material:e,size:n,diffuseColor:i,diffuseSpeed:s,diffuseWidth:o}=this.options,r=n/s;e.onBeforeCompile=a=>{this.pointShader=a,this.callback(a,r),a.uniforms=Z(Q({},a.uniforms),{uTime:{value:0},uSpeed:{value:s},uWidth:{value:o},uColor:{value:new Ke(i)}}),a.vertexShader=a.vertexShader.replace("void main() {",` varying vec3 vPosition; void main(){ vPosition = position; diff --git a/docs/assets/data-5c83c66b-1784045078568.js b/docs/assets/data-5c83c66b-1784074877048.js similarity index 100% rename from docs/assets/data-5c83c66b-1784045078568.js rename to docs/assets/data-5c83c66b-1784074877048.js diff --git a/docs/assets/data-12043e21-1784045078568.js b/docs/assets/data-631f012a-1784074877048.js similarity index 99% rename from docs/assets/data-12043e21-1784045078568.js rename to docs/assets/data-631f012a-1784074877048.js index 7002e5b..1c2478f 100644 --- a/docs/assets/data-12043e21-1784045078568.js +++ b/docs/assets/data-631f012a-1784074877048.js @@ -1,4 +1,4 @@ -var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var Un=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var En=Math.pow,Rn=(n,e,t)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,d=(n,e)=>{for(var t in e||(e={}))ie.call(e,t)&&Rn(n,t,e[t]);if(Un)for(var t of Un(e))ue.call(e,t)&&Rn(n,t,e[t]);return n},S=(n,e)=>re(n,se(e));import{d as le,c as C}from"./livestockData-36ec0ae2-1784045078568.js";import{h as ce,H as W}from"./townshipBoundaries-1b068bef-1784045078568.js";const ge=`{ +var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnPropertyDescriptors;var Un=Object.getOwnPropertySymbols;var ie=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var En=Math.pow,Rn=(n,e,t)=>e in n?oe(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t,d=(n,e)=>{for(var t in e||(e={}))ie.call(e,t)&&Rn(n,t,e[t]);if(Un)for(var t of Un(e))ue.call(e,t)&&Rn(n,t,e[t]);return n},S=(n,e)=>re(n,se(e));import{d as le,c as C}from"./livestockData-36ec0ae2-1784074877048.js";import{h as ce,H as W}from"./townshipBoundaries-1b068bef-1784074877048.js";const ge=`{ "datasetName": "红原牦牛产业全链分类数据草稿", "generatedAt": "2026-07-01T19:47:37", "privacy": { @@ -16377,4 +16377,4 @@ var oe=Object.defineProperty,re=Object.defineProperties;var se=Object.getOwnProp } ] } -`,Se=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png",import.meta.url).href,M=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126},{key:"artificial-grassland",name:"人工种草",color:"#19ffc6",unit:"万亩",metricLabel:"种草面积",width:112},{key:"scale-breeding",name:"规模化养殖基地",color:"#46e7ff",unit:"个",metricLabel:"基地",width:132},{key:"breeding-selection",name:"选育/扩繁基地",color:"#7aefff",unit:"个",metricLabel:"基地",width:132},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#25cbe8",unit:"吨",metricLabel:"库容",width:126},{key:"milk-source-station",name:"奶源站",color:"#5cdfff",unit:"个",metricLabel:"站点",width:112},{key:"slaughter-processing",name:"屠宰与加工",color:"#1fafd2",unit:"万元",metricLabel:"产值",width:112},{key:"farm-equipment",name:"农机装备",color:"#30dcff",unit:"个",metricLabel:"装备",width:112},{key:"forage-trade",name:"牧草交易",color:"#19ffc6",unit:"个",metricLabel:"点位",width:112},{key:"social-service",name:"社会化服务",subName:"金融/疫病/保险/培训",color:"#8aefff",unit:"个",metricLabel:"主体",width:132}],N=le.map(n=>n.zoneName),ye=new Map(ce.map(n=>[n.name,n.center])),kn=JSON.parse(ge),fe=JSON.parse(de),we=JSON.parse(pe),v=JSON.parse(me),en=kn.categories||[],Te=new Map(en.map(n=>[n.categoryCode,n])),Pn=(fe.records||[]).map(n=>S(d({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),Fn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),Ne=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),he=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],Ae=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],mn=en.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?Pn:n.items||[]).map(e=>{var t;return S(d({},e),{categoryCode:n.categoryCode,categoryName:n.categoryName,stageKey:n.industryStage,stageName:((t=E(n.industryStage))==null?void 0:t.name)||n.categoryName})})),V=mn.filter(c),Bn=new Map(mn.map(n=>[String(n.id),n])),U=m("YC-FAMILY-PASTURE"),K=m(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),Sn=m(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),k=m("YC-DISASTER-FORAGE-STORAGE"),A=m("YC-PROCESSING-PLANT"),R=m("YC-SLAUGHTERHOUSE"),yn=m("YC-FARM-EQUIPMENT"),fn=m("YC-DISEASE-CONTROL"),P=m("YC-TECH-TRAINING"),q=m("YC-SERVICE-FINANCE"),tn=m("YC-SERVICE-INSURANCE"),wn=h(U),rn=g(U,n=>s(n,["标准化暖棚 (㎡)"])),Ye=g(U,n=>s(n,["管理用房 (㎡)"])),In=g(U,n=>s(n,["饲草料库 (㎡)"])),xe=g(U,n=>s(n,["活动场地及通道 (㎡)"]));h(Sn);const J=h(k),be=h(K),Ce=g(K,n=>s(n,["设计存栏量 (头)"]));h(A);h(R);const sn=h(yn),un=h(fn),Dn=h(P),Tn=h(q),_n=h(tn),Le=en.filter(n=>m(n.categoryCode).some(c)).length;V.length;new Set(V.map(T).filter(Boolean)).size||N.length;const Me=Math.max(sn,C.reduce((n,e)=>n+Number(e.devices||0),0));g(Sn,n=>s(n,["种植面积 (亩)","acreage"])||H(n.scale));const G=g(k,n=>s(n,["总库容 (吨)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["设计存栏量 (头)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["年出栏量 (头)"]));const Gn=g(A,n=>s(n,["年产值 (万元)"])),Nn=g(A,n=>s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),hn=g(A,n=>s(n,["带动本地农户数"])),An=g(R,n=>s(n,["年总产值 (万元)"])),an=g(R,n=>s(n,["年屠宰总量 (头)"])),On=g(R,n=>s(n,["冷冻库容量 (吨)"])),X=Gn+An,O=Cn(q,n=>s(n,["最高单户贷款额度 (万元)"])),Ue=Cn(q,n=>s(n,["服务覆盖乡镇数"])),ln=Cn(tn,n=>s(n,["服务覆盖乡镇数"])),Hn=g(P,n=>s(n,["年培训场次"])),Q=g(P,n=>s(n,["年培训人次"])),Re=m("YC-BREEDING-BASE"),Ee=new Set(["YC-BREEDING-BASE"]),cn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Se,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],jn=Yt([...Sn,...k]),x=v.summary||{},Kn=v.projectRows||[],Fe=v.yearRows||[],Be=v.typeRows||[],ve=v.operationRows||[],ke=v.disturbanceRows||[],zn=[...v.townRows||[]].sort(f),Pe=v.investmentRows||[],Ie=we.plotRows||[],De=xt(),$n=bt(),vn=C.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${p(n.count)}头识别样本`})).filter(n=>n.value>0).sort(f),_e=C.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${p(n.devices)}套设备`})).filter(n=>n.value>0).sort(f),Ge=ut();kn.generatedAt;const kt=k.map(xn),Pt=[...A,...R].map(xn),It=V.map(xn),Z=V.map(gt).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN"));function Dt(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return cn.find(a=>a.key===e)||null;const t=[n.name,n.fullName].filter(Boolean).map(a=>String(a));return cn.find(a=>a.aliases.some(r=>t.some(o=>o===r||o.includes(r)||r.includes(o))))||null}const Qn=M.reduce((n,e)=>n+b(e.key),0),Vn=new Set(M.flatMap(n=>nn(n.key).map(e=>e.town)).filter(Boolean)).size||N.length,_t=[{zh:"产业点位",name:"产业点位",value:Qn,unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"饲草库容",name:"饲草库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Vn,unit:"个"}];function Oe(n){const e=Xe(n),t=_();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:wn,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:rn,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:In,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:xe,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:x.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:x.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:t.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:t.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:t.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:t.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:be,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:Ce,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(K,T),unit:"个"},{zh:"育种等级",name:"育种等级",value:He.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:J,unit:"个"},{zh:"总库容",name:"总库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(k,T),unit:"个"},{zh:"草种类型",name:"草种类型",value:jn.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"年收奶量",name:"年收奶量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:b("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:an,unit:"头"},{zh:"带动农户",name:"带动农户",value:hn,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:b("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:C.reduce((r,o)=>r+Number(o.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:C.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:C.reduce((r,o)=>r+Number(o.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易点位",name:"交易点位",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"交易草量",name:"交易草量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"social-service":[{zh:"服务点位",name:"服务点位",value:b("social-service"),unit:"个"},{zh:"最高授信",name:"最高授信",value:O,unit:"万元"},{zh:"培训人次",name:"培训人次",value:Q,unit:"人次"},{zh:"服务类型",name:"服务类型",value:$n.length,unit:"类"}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(r=>({zh:r.label,name:r.label,value:r.value,unit:r.unit}))]).filter(r=>r.value!==void 0&&r.value!==null&&r.value!=="").slice(0,4)}const Gt=[{key:"chain-subject",name:"产业点位",value:Qn,unit:"个",icon:"town",extra:`${Le}类主体`},{key:"chain-town",name:"镇域覆盖",value:Vn,unit:"个",icon:"town",extra:"全链覆盖"},{key:"chain-output",name:"产业产值",value:w(X,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"},{key:"chain-forage",name:"饲草库容",value:G,unit:"吨",icon:"yield",extra:"防灾储备"}],Ot=M.map(n=>({key:n.key,name:n.name,value:b(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),gn=[{key:"family-pasture",name:"家庭生态牧场",value:wn,unit:"处",capacity:w(rn/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:w(rn/1e4,2),unit:"万㎡"},{label:"管理用房",value:w(Ye/1e4,2),unit:"万㎡"},{label:"饲草料库",value:w(In/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:x.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:x.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:_().baseCount,unit:"个",capacity:_().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:_().designStock,unit:"头"},{label:"年出栏",value:_().annualOutput,unit:"头"},{label:"覆盖乡镇",value:_().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:J,unit:"个",capacity:G,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:J,unit:"个"},{label:"总库容",value:G,unit:"吨"},{label:"覆盖乡镇",value:pn(k,T),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:b("slaughter-processing"),unit:"个",capacity:w(X,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:Gn,unit:"万元"},{label:"屠宰产值",value:w(An,1),unit:"万元"},{label:"年屠宰量",value:an,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:b("farm-equipment"),unit:"个",capacity:Me,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:b("farm-equipment"),unit:"个"},{label:"识别设备",value:C.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:C.length,unit:"个"}]},{key:"social-service",name:"社会化服务",value:b("social-service"),unit:"个",capacity:O,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Tn,unit:"家"},{label:"最高授信",value:O,unit:"万元"},{label:"培训人次",value:Q,unit:"人次"}]}],He=St(),je=B(k,T,n=>s(n,["总库容 (吨)"])).map(n=>S(d({},n),{unit:"吨",extra:`${n.count}个库点`})),Ke=[{key:"milk-processing",name:"乳品加工",value:g(A.filter(Lt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:g(A.filter(Mt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:w(An,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Ht=[{key:"raw-capacity",name:"年加工原料",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:an,unit:"头",extra:`${R.filter(c).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:hn,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:On,unit:"吨",extra:"屠宰冷链"}],jt=[{key:"finance",name:"金融服务",value:$(Ue,10),count:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务",value:$(ln,10),count:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训",value:$(Q,200),count:Dn,unit:"家",extra:`${p(Q)}人次`},{key:"disease",name:"疫病防控",value:$(un,4),count:un,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:$(sn,3),count:sn,unit:"个",extra:"服务主体"}],ze=[{key:"cutting",name:"割草地",headerName:"割草地"},{key:"storage",name:"储草基地",headerName:"储草基地",valuePrefix:"≥"},{key:"netFence",name:"网围栏种草",headerName:"网围栏"}],$e=[{key:"cutting",name:"割草地",color:"#37DDF3"},{key:"storage",name:"储草基地",color:"#8bf7ff"}];function qn(n){return Oe(n).map((e,t)=>({key:e.key||`${n}-metric-${t}`,name:e.name||e.zh||`指标${t+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function Qe(n){var u;const e=E(n),t=gn.find(i=>i.key===n),a=qn(n),r=a[0]||{key:`${n}-primary`,name:e.name,value:0,unit:e.unit||""},o=((u=t==null?void 0:t.fields)!=null&&u.length?t.fields:a.slice(1)).map((i,y)=>({key:i.key||`${n}-field-${y}`,name:i.label||i.name||`要点${y+1}`,value:i.value,unit:i.unit||"",extra:i.extra||(t==null?void 0:t.note)||e.metricLabel||""}));return[S(d({},r),{key:r.key||`${n}-spotlight-main`,name:r.name||e.name,extra:r.extra||(t==null?void 0:t.note)||e.metricLabel||"环节核心能力"}),...o].slice(0,4)}function Ve(n){return l(`${n}-right-metrics`,"环节核心指标","metric",qn(n))}function qe(n){return l(`${n}-right-spotlight`,"建设要点","spotlight",Qe(n))}function I(n,e=ee(n)){return[e,Ve(n),qe(n)]}function Kt(n){const e=E(n),t=yt(n),a={"family-pasture":{left:[l("family-town","家庭生态牧场乡镇分布","column",z(n),{variant:"townCompact",scrollable:!1,uniformColor:!0,fillHeight:!0}),l("family-unit","标准化建设配置","specGrid",tt(),{fillHeight:!0}),l("family-forage","乡镇割草地、储草基地面积","stackColumn",Yn(),{fillHeight:!0,unit:"亩",segments:$e,sharedScale:!0,showZero:!0,showValue:!0,totalLabel:"汇总面积"}),l("family-support-type","草料配套类型占比","structure",at(),{fillHeight:!0})],right:[ee(n),l("family-construction-year","年度建设节奏","line",rt(),{fixedType:!0}),l("family-net-fence","网围栏配套面积","rank",ot("netFence"),{unit:"亩"})]},"artificial-grassland":{left:[l("grass-town-area","人工种草乡镇面积","column",zn,{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("grass-year","年度项目建设面积","column",Fe,{variant:"plain",scrollable:!1,lineOverlay:!0}),l("grass-type","建设类型面积","structure",Be),l("grass-operation","作业方式面积","bar",ve)],right:[wt(),l("grass-investment","项目投资规模","rank",Pe),l("grass-disturbance","施工扰动面积","split",ke),l("grass-project-area","项目面积明细","specGrid",nt())]},"scale-breeding":{left:[l("breeding-town-count","乡镇养殖基地分布","column",Xn("baseCount","个","养殖基地"),{variant:"townCompact",scrollable:!1,axisLabelMode:"short",uniformColor:!0}),l("breeding-town-stock","设计存栏规模排名","bar",Wn("designStock","头","设计存栏"),{variant:"rankBar"}),l("breeding-town-output","年出栏区域贡献","structure",Je()),l("breeding-project-investment","重点示范项目投入","rank",Ze())],right:[...I(n,ft())]},"forage-storage":{left:[l("storage-town","库容镇域分布","column",z(n),{variant:"townCompact",scrollable:!1}),l("storage-point","储备库点排名","bar",Nt(),{variant:"rankBar"}),l("storage-grass","储备草种结构","structure",jn),l("storage-capacity","库容能力占比","split",z(n).filter(o=>Number(o.value||0)>0).slice(0,7))],right:[...I(n)]},"slaughter-processing":{left:[l("processing-value","产值结构","donut",Ke,{variant:"ring"}),l("processing-chain","产能与带动","structure",De),l("processing-heads","屠宰能力排名","bar",ht(),{variant:"rankBar"}),l("processing-town","加工点位乡镇分布","column",on([...A,...R],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[...I(n)]},"farm-equipment":{left:[l("equipment-device","识别设备分布","column",F(vn,{unit:"套",extra:"识别设备"}),{variant:"townCompact",scrollable:!1}),l("equipment-recognition","识别样本排名","bar",_e,{variant:"rankBar"}),l("equipment-service-town","农机服务主体分布","column",on(yn,"农机服务主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("equipment-device-structure","设备投放结构","structure",vn.filter(o=>Number(o.value||0)>0).slice(0,6))],right:[...I(n)]},"social-service":{left:[l("service-type","服务主体结构","donut",$n,{variant:"ring"}),l("service-town","服务镇域分布","column",on([...fn,...P,...q,...tn],"服务主体"),{variant:"townCompact",scrollable:!1}),l("service-training-town","培训人次分布","column",Tt(P,["年培训人次"],{unit:"人次",extra:"技术培训"}),{variant:"townCompact",scrollable:!1,lineOverlay:!0}),l("service-training","培训服务能力","line",At())],right:[...I(n)]}},r={left:[l(`${e.key}-rank`,`${e.metricLabel}分布`,"column",z(n),{variant:"townCompact",scrollable:!1}),l(`${e.key}-subject`,"主体结构","structure",t),l(`${e.key}-town`,"镇域覆盖分布","column",F(st(n),{unit:"个",extra:"镇域覆盖"}),{variant:"townCompact",scrollable:!1}),l(`${e.key}-capacity`,"能力规模分布","split",z(n).slice(0,7))],right:[...I(n)]};return a[n]||r}const zt=[{key:"support-capacity",name:"饲草储备能力",value:G,unit:"吨",extra:`${J}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:w(X,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:O,unit:"万元",extra:"金融服务"}];function E(n){return M.find(e=>e.key===n)||M[0]}function Xe(n){return gn.find(e=>e.key===n)||gn[0]}function z(n){if(n==="family-pasture")return F(et(),{unit:"处",extra:"家庭生态牧场"});if(n==="artificial-grassland")return zn;if(n==="breeding-selection"){const e=B(K,T,()=>1).map(t=>S(d({},t),{unit:"个",extra:"选育/扩繁基地"}));return F(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=B(m("YC-BREEDING-BASE"),T,t=>s(t,["设计存栏量 (头)"])).map(t=>S(d({},t),{unit:"头",extra:`${t.count}个基地`}));return F(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?F(je,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...A,...R].filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(f).slice(0,7):n==="farm-equipment"?yn.filter(c).map(e=>{var t;return{key:e.id,name:j(e.name),value:1,unit:"个",extra:((t=e.attributes)==null?void 0:t.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务网点",value:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训机构",value:Dn,unit:"家",extra:`${p(Hn)}场`},{key:"disease",name:"疫病防控主体",value:un,unit:"个",extra:"防疫服务"}]:[]}function We(){const n=new Map(N.map((e,t)=>[e,{key:e,name:e,sourceIndex:t,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return bn().forEach(e=>{const t=n.get(e.town);t&&(t.segments.baseCount+=1,t.segments.designStock+=Number(e.numericValue||e.value||0),t.segments.annualOutput+=Number(e.annualOutput||0))}),N.map(e=>n.get(e))}function Xn(n,e,t){return We().map((a,r)=>{var i;const o=Number(((i=a.segments)==null?void 0:i[n])||0),u=o>0;return{key:`${a.key}-${n}`,name:a.name,rawValue:o,value:u?o:.001,displayValue:u?o:"0",unit:e,extra:t,zero:!u,sourceIndex:r}})}function Wn(n,e,t){return Xn(n,e,t).filter(a=>a.rawValue>0).map(a=>S(d({},a),{value:a.rawValue,displayValue:a.rawValue})).sort(f)}function Je(){const n=Wn("annualOutput","头","年出栏"),e=n.reduce((o,u)=>o+Number(u.value||0),0);if(!e)return[];const t=n.slice(0,3),a=n.slice(3);return(a.length?[...t,{key:"other-towns-annual-output",name:"其他乡镇",value:a.reduce((o,u)=>o+Number(u.value||0),0),unit:"头"}]:t).map(o=>S(d({},o),{extra:`占比 ${p(Number(o.value||0)/e*100)}%`}))}function Ze(){return cn.map(n=>({key:n.key,name:n.name.replace(/标准化养殖基地/g,"基地").replace(/综合养殖基地/g,"基地"),value:Number(n.projectInvestment||0),unit:"万元",extra:`${n.town} · ${n.tag}`})).filter(n=>n.value>0).sort(f)}function nt(){return Kn.map(n=>({key:n.key,name:n.name,value:Number(n.actualAreaMu||n.value||0),unit:"亩",extra:n.year?`${n.year}年`:n.category||"实测面积"})).filter(n=>n.value>0).sort(f)}function et(){const n=new Map(B(U,T,()=>1).map(e=>[e.name,e]));return N.map(e=>{const t=n.get(e);return{key:e,name:e,value:Number((t==null?void 0:t.value)||0),unit:"处",extra:"家庭生态牧场"}})}function tt(){const n=new Map;return U.filter(c).forEach(e=>{const t=s(e,["标准化暖棚 (㎡)"]),a=s(e,["管理用房 (㎡)"]),r=s(e,["饲草料库 (㎡)"]),o=s(e,["活动场地及通道 (㎡)"]),u=`${p(t)}㎡暖棚 + ${p(a)}㎡管理房`,i=`${t}-${a}-${r}-${o}`,y=n.get(i)||{key:i,name:u,value:0,unit:"处",specs:[{label:"饲草料库",value:r,unit:"㎡"},{label:"活动场地",value:o,unit:"㎡"}]};y.value+=1,n.set(i,y)}),[...n.values()].sort(f)}function Yn(){const n=new Map(N.map(e=>[e,{key:e,name:e,unit:"亩",segments:{cutting:0,storage:0,netFence:0}}]));return U.filter(c).forEach(e=>{const t=T(e),a=n.get(t);if(!a)return;const r=e.grassSupportType,o=Number(e.grassSupportMu||0);o&&(r==="割草地"&&(a.segments.cutting+=o),r==="储草基地"&&(a.segments.storage+=o),r==="网围栏种草"&&(a.segments.netFence+=o))}),[...n.values()]}function at(){const n=Yn();return ze.map(e=>{const t=n.reduce((r,o)=>{var u;return r+Number(((u=o.segments)==null?void 0:u[e.key])||0)},0),a=n.filter(r=>{var o;return Number(((o=r.segments)==null?void 0:o[e.key])||0)>0}).length;return{key:e.key,name:e.name,value:t,unit:"亩",extra:`覆盖${a}个乡镇`}})}function ot(n=""){return Yn().map(e=>{var a;const t=n?Number(((a=e.segments)==null?void 0:a[n])||0):Object.values(e.segments||{}).reduce((r,o)=>r+Number(o||0),0);return{key:e.key,name:e.name,value:t,unit:"亩",extra:n==="netFence"?"网围栏种草":"草料配套"}}).filter(e=>e.value>0).sort(f)}function rt(){return B(U.filter(c),n=>String(n.constructionYear||"未标注"),()=>1).map(n=>S(d({},n),{name:n.name==="未标注"?n.name:`${n.name}年`,unit:"处",extra:"建成牧场"})).sort((n,e)=>String(n.key).localeCompare(String(e.key),"zh-CN"))}function st(n){return B(it(n),T,()=>1).map(e=>S(d({},e),{unit:"个",extra:`${e.count}条`}))}function $t(n={}){const e=Ut(n);if(!e)return[];const t=[],a=e.metrics||{},r=e.attributes||{},o=(u,i,y="",Y={})=>{te(i)||t.push(d({label:u,value:Et(i,y)},Y))};return e.categoryCode==="YC-FAMILY-PASTURE"?(o("户主",e.owner||r.户主),o("建设年份",e.constructionYear,"年"),o("所在村",e.village),o("标准化暖棚",a["标准化暖棚 (㎡)"],"㎡"),o("生产管理用房",a["管理用房 (㎡)"],"㎡"),o("饲草料库",a["饲草料库 (㎡)"],"㎡"),o("活动场地及通道",a["活动场地及通道 (㎡)"],"㎡"),o("草料配套",e.grassSupportText||r.草料配套,"",{wide:!0}),t):(o("运营单位",r.运营单位),o("育种等级",r.育种等级),o("育种方向",r.主要育种方向),o("设计存栏",a["设计存栏量 (头)"],"头"),o("年出栏量",a["年出栏量 (头)"],"头"),o("种植面积",a["种植面积 (亩)"]||e.scale,e.scale?"":"亩"),o("总库容",a["总库容 (吨)"],"吨"),o("年产值",a["年产值 (万元)"]||a["年总产值 (万元)"],"万元"),o("年加工量",a["年加工鲜奶总量 (吨)"]||a["年加工原料肉总量 (吨)"],"吨"),o("年屠宰量",a["年屠宰总量 (头)"],"头"),o("服务覆盖",a.服务覆盖乡镇数,"个乡镇"),o("最高授信",a["最高单户贷款额度 (万元)"],"万元"),o("主要产品",r.主要产品),o("主要草种",r.主要草种||r.储备草种),t.slice(0,8))}function m(n){return(Array.isArray(n)?n:[n]).flatMap(t=>{const a=Te.get(t);return(t==="YC-FAMILY-PASTURE"?Pn:(a==null?void 0:a.items)||[]).map(o=>{var u;return S(d({},o),{categoryCode:a.categoryCode,categoryName:a.categoryName,stageKey:a.industryStage,stageName:((u=E(a.industryStage))==null?void 0:u.name)||a.categoryName})})})}function it(n){return n==="scale-breeding"?Re.filter(c):n==="breeding-selection"?K.filter(c):n==="milk-source-station"||n==="forage-trade"?[]:V.filter(e=>e.stageKey===n)}function nn(n){return n==="artificial-grassland"?Ie:n==="farm-equipment"?Ge:n==="scale-breeding"?bn():n==="breeding-selection"?Z.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>S(d({},e),{stageKey:n,stageName:E(n).name,stageOrder:M.findIndex(t=>t.key===n)})):Z.filter(e=>e.stageKey===n&&e.canLocate)}function b(n){return n==="family-pasture"?wn:nn(n).length}function ut(){return C.map((n,e)=>{const t=ye.get(n.name),a=Number(t==null?void 0:t[0]),r=Number(t==null?void 0:t[1]);if(!dn(a,r))return null;const o=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,u=`${n.name}农机装备监测点`,i=Number(n.devices||0),y=Number(n.count||0);return{key:o,id:o,name:u,fullName:u,stageKey:"farm-equipment",stageName:E("farm-equipment").name,stageOrder:M.findIndex(Y=>Y.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:i,unit:"套",numericValue:i,valueText:`${p(i)}套`,extra:`${p(y)}头识别样本`,longitude:a,latitude:r,locateText:"定位",canLocate:!0,searchText:[u,"农机装备",n.name,`${i}套`,`${y}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function c(n={}){var a;const e=L(n.name),t=L((a=n.attributes)==null?void 0:a.序号);return!(!e||Fn.has(e)||Ne.has(n.categoryCode)||Ae.some(r=>r.test(e))||t&&Fn.has(t)&&!lt(n)||he.some(r=>r.test(e)))}function h(n=[]){return n.filter(c).length}function lt(n={}){return Object.values(n.metrics||{}).some(e=>H(e)>0)}function xn(n={}){var t,a,r,o;const e=Jn(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:T(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((t=n.attributes)==null?void 0:t.主要产品)||((a=n.attributes)==null?void 0:a.主要草种)||((r=n.attributes)==null?void 0:r.储备草种)||((o=n.attributes)==null?void 0:o.主要育种方向)||"",capacity:e,capacityUnit:Zn(n),outputValue:s(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function ct(n={}){const e=Jn(n),t=Zn(n),a=T(n);return{key:String(n.id||n.name),name:j(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:a||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:t,numericValue:Number(e)||0,valueText:pt(n,e,t),extra:mt(n),sourceSheet:n.sourceSheet}}function gt(n={}){var Ln,Mn;const e=ct(n),t=Ct(n),a=E(n.stageKey),r=L(n.name),o=L(n.categoryName).replace(/^cxpt/i,""),u=L(n.address||n.village||n.areaFullName||""),i=n.attributes||{},y=n.metrics||{},Y=[r,e.name,a==null?void 0:a.name,o,e.town,u,i.简称,i.运营单位,i.主要产品,i.主要草种,i.储备草种,i.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,y["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return S(d({},e),{name:e.name,fullName:r,stageName:(a==null?void 0:a.name)||e.stageName||"",stageOrder:M.findIndex(ae=>ae.key===n.stageKey),categoryName:o,address:u,longitude:(Ln=t==null?void 0:t.longitude)!=null?Ln:"",latitude:(Mn=t==null?void 0:t.latitude)!=null?Mn:"",locateText:t?"定位":"暂无",canLocate:!!t,owner:n.owner||i.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||i.设施配置||"",grassSupportText:n.grassSupportText||i.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?dt(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?s(n,["年出栏量 (头)"]):0,searchText:Y})}function bn(){return Z.filter(n=>Ee.has(n.categoryCode)&&n.canLocate)}function _(){const n=bn();return{baseCount:n.length,designStock:n.reduce((e,t)=>e+Number(t.numericValue||t.value||0),0),annualOutput:n.reduce((e,t)=>e+Number(t.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function dt(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Jn(n={}){var e,t;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?H(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?s(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?s(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?s(n,["总库容 (吨)"]):n.categoryCode==="YC-PROCESSING-PLANT"?s(n,["年产值 (万元)"])||s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?s(n,["年总产值 (万元)"])||s(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?s(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?s(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?s(n,["年培训人次","年培训场次"]):(t=n.categoryCode)!=null&&t.startsWith("YC-CXPT")?H(n.scale)||s(n,["acreage"]):s(n,Object.keys(n.metrics||{}))||1}function Zn(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function pt(n,e,t){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${p(e)}${t||""}`:String(e||"")}function mt(n={}){const e=n.attributes||{},t=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||t["主要贷款产品(可多选)"]||n.sourceSheet||""}function St(){const n=new Map;return K.forEach(e=>{var r;const t=L((r=e.attributes)==null?void 0:r.育种等级)||"待完善",a=n.get(t)||{key:t,name:t,value:0,unit:"个"};a.value+=1,n.set(t,a)}),[...n.values()].sort((e,t)=>{var r,o;const a={省级:0,县级:1,待完善:2};return((r=a[e.name])!=null?r:9)-((o=a[t.name])!=null?o:9)})}function yt(n){return en.filter(e=>e.industryStage===n).map(e=>{const t=h(m(e.categoryCode));return{key:e.categoryCode,name:e.categoryName.replace(/^cxpt/,""),value:t,unit:"条",extra:E(n).name}}).filter(e=>e.value>0).sort(f)}function l(n,e,t,a,r={}){return d({key:n,title:e,height:227,renderer:"business",type:t,rows:a},r)}function ne(n){return n==="family-pasture"?Z.filter(e=>e.stageKey===n):n?nn(n):M.flatMap(e=>nn(e.key))}function ee(n){const e=E(n),t=ne(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:t,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:t,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function ft(){return{key:"scale-breeding-location-list",title:"养殖基地定位",height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:ne("scale-breeding").slice().sort((e,t)=>String(e.town||"").localeCompare(String(t.town||""),"zh-CN")||String(e.name||"").localeCompare(String(t.name||""),"zh-CN")),maxRows:300,searchPlaceholder:"搜索养殖基地 / 乡镇",emptyText:"无匹配养殖基地",columns:[{key:"name",label:"养殖基地",field:"name",width:"46%",className:"business-project-col-name"},{key:"town",label:"区域",field:"town",width:"32%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",action:"locate"}],searchKeys:["name","fullName","town","address","searchText"]}}function wt(){return{key:"artificial-grassland-business-ledger",title:"项目建设台账",renderer:"business",type:"projectTable",rows:Kn,fixedHeight:!0,rowSelectOnClick:!1,showSearch:!1,maxRows:6,emptyText:"暂无项目建设台账",columns:[{key:"name",label:"项目",field:"name",width:"48%",className:"business-project-col-name"},{key:"year",label:"年度",field:"year",width:"16%",align:"center"},{key:"area",label:"实测面积",field:"actualAreaMu",width:"36%",align:"right",strong:!0,unit:"亩"}],searchKeys:["name","fullName","year","category","towns","searchText"]}}function Tt(n=[],e=[],t={}){const a=B(n,T,r=>s(r,e)).map(r=>S(d({},r),{unit:t.unit||"",extra:t.extra||`${r.count}个点位`}));return F(a,t)}function on(n=[],e="点位"){const t=B(n,T,()=>1).map(a=>S(d({},a),{unit:"个",extra:e}));return F(t,{unit:"个",extra:e})}function Nt(){return k.filter(c).map(n=>{var e;return{key:n.id,name:j(n.name),value:s(n,["总库容 (吨)"]),unit:"吨",extra:s(n,["发放次数"])||((e=n.attributes)==null?void 0:e.储备草种)||"储备库"}}).filter(n=>n.value>0).sort(f).slice(0,8)}function ht(){return R.filter(c).map(n=>({key:n.id,name:j(n.name),value:s(n,["年屠宰总量 (头)"]),unit:"头",extra:`${p(s(n,["冷冻库容量 (吨)"]))}吨冷链`})).filter(n=>n.value>0).sort(f).slice(0,7)}function At(){const n=P.filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年培训人次"]),unit:"人次",extra:`${p(s(e,["年培训场次"]))}场`})).filter(e=>e.value>0).sort(f).slice(0,7);return n.length?n:[{key:"sessions",name:"年培训场次",value:Hn,unit:"场"},{key:"persons",name:"年培训人次",value:Q,unit:"人次"}]}function Yt(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],t=new Map(e.map(a=>[a.key,{key:a.key,name:a.name,value:0,unit:"处"}]));return n.filter(c).forEach(a=>{var i,y;const r=[(i=a.attributes)==null?void 0:i.主要草种,(y=a.attributes)==null?void 0:y.储备草种].filter(Boolean).join("、"),o=e.filter(Y=>Y.key!=="other"&&Y.pattern.test(r));(o.length?o:[e[e.length-1]]).forEach(Y=>{t.get(Y.key).value+=1})}),[...t.values()].filter(a=>a.value>0).sort(f)}function xt(){return[{key:"raw-capacity",name:"原料加工",value:Nn,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:an,unit:"头"},{key:"farmer-driven",name:"带动农户",value:hn,unit:"户"},{key:"cold-storage",name:"冷链能力",value:On,unit:"吨"}].filter(n=>n.value>0)}function bt(){return[{key:"finance",name:"金融",value:q.filter(c).length,unit:"家"},{key:"insurance",name:"保险",value:tn.filter(c).length,unit:"家"},{key:"training",name:"培训",value:P.filter(c).length,unit:"家"},{key:"disease",name:"防疫",value:fn.filter(c).length,unit:"个"}].filter(n=>n.value>0)}function B(n,e,t){const a=new Map;return n.filter(c).forEach(r=>{const o=L(typeof e=="function"?e(r):r[e])||"未填写",u=a.get(o)||{key:o,name:o,value:0,count:0,extra:""};u.value+=Number(t(r)||0),u.count+=1,a.set(o,u)}),[...a.values()].sort(f)}function F(n=[],e={}){const t=new Map;return n.forEach(a=>{const r=L(a==null?void 0:a.name),o=N.find(u=>u===r)||N.find(u=>{const i=u.replace(/[镇乡]$/,"");return i.length>=2&&r.includes(i)});o&&t.set(o,a)}),N.map((a,r)=>{const o=t.get(a),u=Number((o==null?void 0:o.value)||0),i=Number.isFinite(u)&&u>0;return{key:(o==null?void 0:o.key)||a,name:a,value:i?u:.001,displayValue:i?o.displayValue:"0",scaleValue:o==null?void 0:o.scaleValue,unit:(o==null?void 0:o.unit)||e.unit||"",extra:(o==null?void 0:o.extra)||e.extra||"",color:o==null?void 0:o.color,zero:!i,sourceIndex:r}})}function s(n={},e=[]){const t=n.metrics||{},a=Array.isArray(e)?e:[e];for(const r of a)if(Object.prototype.hasOwnProperty.call(t,r)){const o=H(t[r]);if(o||o===0)return o}return 0}function H(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(te(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const t=e.match(/-?\d+(?:\.\d+)?/);if(!t)return 0;let a=Number(t[0]);return e.includes("万亩")&&!e.includes("万元")&&(a*=1e4),Number.isFinite(a)?a:0}function T(n={}){const e=L(n.town||n.areaName);if(N.includes(e))return e;const t=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),a=N.find(r=>t.includes(r));return a||N.find(r=>{const o=r.replace(/[镇乡]$/,"");return o.length>=2&&t.includes(o)})||e}function Ct(n={}){const e=D(n.longitude),t=D(n.latitude);if(dn(e,t))return{longitude:e,latitude:t};const a=Object.values(n.locations||{}).find(r=>dn(D(r==null?void 0:r.longitude),D(r==null?void 0:r.latitude)));return a?{longitude:D(a.longitude),latitude:D(a.latitude)}:null}function dn(n,e){const t=Number(n),a=Number(e);return Number.isFinite(t)&&Number.isFinite(a)&&t>=W.west&&t<=W.east&&a>=W.south&&a<=W.north}function D(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Lt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function Mt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function Ut(n={}){const e=String(n.id||"");return e&&Bn.has(e)?Bn.get(e):mn.find(t=>t.name===n.name&&t.categoryCode===n.categoryCode)}function $(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function g(n,e){return n.filter(c).reduce((t,a)=>t+Number(e(a)||0),0)}function Cn(n,e){return n.filter(c).reduce((t,a)=>Math.max(t,Number(e(a)||0)),0)}function pn(n,e){return new Set(n.filter(c).map(e).filter(Boolean)).size}function f(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function j(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function L(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function te(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function Rt(n){return typeof n=="number"?p(n):H(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function Et(n,e=""){const t=Rt(n);return!e||typeof n=="string"&&t.includes(e.replace(/^个/,""))?t:`${t}${e}`}function p(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function w(n,e=0){const t=En(10,e);return Math.round(Number(n||0)*t)/t}export{Kt as a,et as b,Dt as c,$t as d,Oe as e,_t as f,E as g,Gt as h,M as i,gn as j,He as k,je as l,Ke as m,jt as n,zt as o,Ht as p,kt as q,Pt as r,Ot as s,It as t,Z as u}; +`,Se=""+new URL("xiangfa-breeding-base-03c7f2cb-balabala-1784074877048.png",import.meta.url).href,M=[{key:"family-pasture",name:"家庭生态牧场",color:"#30dcff",unit:"处",metricLabel:"生态牧场",width:126},{key:"artificial-grassland",name:"人工种草",color:"#19ffc6",unit:"万亩",metricLabel:"种草面积",width:112},{key:"scale-breeding",name:"规模化养殖基地",color:"#46e7ff",unit:"个",metricLabel:"基地",width:132},{key:"breeding-selection",name:"选育/扩繁基地",color:"#7aefff",unit:"个",metricLabel:"基地",width:132},{key:"forage-storage",name:"防灾减灾",subName:"饲草储备库",color:"#25cbe8",unit:"吨",metricLabel:"库容",width:126},{key:"milk-source-station",name:"奶源站",color:"#5cdfff",unit:"个",metricLabel:"站点",width:112},{key:"slaughter-processing",name:"屠宰与加工",color:"#1fafd2",unit:"万元",metricLabel:"产值",width:112},{key:"farm-equipment",name:"农机装备",color:"#30dcff",unit:"个",metricLabel:"装备",width:112},{key:"forage-trade",name:"牧草交易",color:"#19ffc6",unit:"个",metricLabel:"点位",width:112},{key:"social-service",name:"社会化服务",subName:"金融/疫病/保险/培训",color:"#8aefff",unit:"个",metricLabel:"主体",width:132}],N=le.map(n=>n.zoneName),ye=new Map(ce.map(n=>[n.name,n.center])),kn=JSON.parse(ge),fe=JSON.parse(de),we=JSON.parse(pe),v=JSON.parse(me),en=kn.categories||[],Te=new Map(en.map(n=>[n.categoryCode,n])),Pn=(fe.records||[]).map(n=>S(d({},n),{areaName:n.town,address:n.village,categoryCode:"YC-FAMILY-PASTURE",categoryName:"家庭生态牧场",stageKey:"family-pasture",stageName:"家庭生态牧场"})),Fn=new Set(["企业全称","主体全称","畜牧工作站","规划建设股","执法大队","疫控中心","科教股","科技股","乡村振兴股","农产品检测站","数据欠缺,请两个股室核定饲草基地数据。","对接相关科研院校收集数据"]),Ne=new Set(["YC-GRASSLAND-RESOURCE","YC-CXPT-OTHER-BASE"]),he=[/^林草局数据-\d+$/,/^(技术培训|金融服务网点|保险服务网点)-\d+$/],Ae=[/蔬菜/,/金针菇/,/植物园/,/污水/,/物联网/,/绵羊/],mn=en.flatMap(n=>(n.categoryCode==="YC-FAMILY-PASTURE"?Pn:n.items||[]).map(e=>{var t;return S(d({},e),{categoryCode:n.categoryCode,categoryName:n.categoryName,stageKey:n.industryStage,stageName:((t=E(n.industryStage))==null?void 0:t.name)||n.categoryName})})),V=mn.filter(c),Bn=new Map(mn.map(n=>[String(n.id),n])),U=m("YC-FAMILY-PASTURE"),K=m(["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"]),Sn=m(["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE"]),k=m("YC-DISASTER-FORAGE-STORAGE"),A=m("YC-PROCESSING-PLANT"),R=m("YC-SLAUGHTERHOUSE"),yn=m("YC-FARM-EQUIPMENT"),fn=m("YC-DISEASE-CONTROL"),P=m("YC-TECH-TRAINING"),q=m("YC-SERVICE-FINANCE"),tn=m("YC-SERVICE-INSURANCE"),wn=h(U),rn=g(U,n=>s(n,["标准化暖棚 (㎡)"])),Ye=g(U,n=>s(n,["管理用房 (㎡)"])),In=g(U,n=>s(n,["饲草料库 (㎡)"])),xe=g(U,n=>s(n,["活动场地及通道 (㎡)"]));h(Sn);const J=h(k),be=h(K),Ce=g(K,n=>s(n,["设计存栏量 (头)"]));h(A);h(R);const sn=h(yn),un=h(fn),Dn=h(P),Tn=h(q),_n=h(tn),Le=en.filter(n=>m(n.categoryCode).some(c)).length;V.length;new Set(V.map(T).filter(Boolean)).size||N.length;const Me=Math.max(sn,C.reduce((n,e)=>n+Number(e.devices||0),0));g(Sn,n=>s(n,["种植面积 (亩)","acreage"])||H(n.scale));const G=g(k,n=>s(n,["总库容 (吨)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["设计存栏量 (头)"]));g(m("YC-BREEDING-BASE"),n=>s(n,["年出栏量 (头)"]));const Gn=g(A,n=>s(n,["年产值 (万元)"])),Nn=g(A,n=>s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"])),hn=g(A,n=>s(n,["带动本地农户数"])),An=g(R,n=>s(n,["年总产值 (万元)"])),an=g(R,n=>s(n,["年屠宰总量 (头)"])),On=g(R,n=>s(n,["冷冻库容量 (吨)"])),X=Gn+An,O=Cn(q,n=>s(n,["最高单户贷款额度 (万元)"])),Ue=Cn(q,n=>s(n,["服务覆盖乡镇数"])),ln=Cn(tn,n=>s(n,["服务覆盖乡镇数"])),Hn=g(P,n=>s(n,["年培训场次"])),Q=g(P,n=>s(n,["年培训人次"])),Re=m("YC-BREEDING-BASE"),Ee=new Set(["YC-BREEDING-BASE"]),cn=[{key:"longri-2025",aliases:["龙日坝标准化养殖基地 (2025)"],name:"龙日坝标准化养殖基地",town:"龙日镇",village:"龙日坝村",operator:"红原县高原犇犇农副产品有限公司",tag:"标准化育肥示范",projectInvestment:5118,summary:"以牦牛育肥为主,联动科研机构和饲料企业开展标准化育肥。",facts:[{label:"建设规模",value:"30,685㎡",note:"规划总建筑面积"},{label:"项目投资",value:"5,118万元",note:"重点项目建设"},{label:"示范带动",value:"500户",note:"牧民增收"}],highlights:["科研协作","补饲精料","育肥增效"]},{key:"seyong",aliases:["瓦切镇标准化色永村养殖基地"],name:"色永村标准化养殖基地",town:"瓦切镇",village:"色永村",operator:"红原县高原犇犇农副产品有限公司",tag:"设施育肥示范",projectInvestment:1566,summary:"依托双育肥舍开展集中育肥,形成标准化养殖和补饲配套。",facts:[{label:"建设规模",value:"6,651㎡",note:"规划总建筑面积"},{label:"项目投资",value:"1,566万元",note:"基地建设"},{label:"示范带动",value:"100户",note:"牧民增收"}],highlights:["双育肥舍","集中育肥","标准化配套"]},{key:"dae",aliases:["瓦切镇达俄村标准化养殖基地","瓦切镇达峨村标准化养殖基地"],name:"达峨村标准化养殖基地",town:"瓦切镇",village:"达峨村",operator:"红原县雅卓阳养殖农民专业合作社",tag:"联牧联营示范",projectInvestment:997,summary:"以联牧联营组织资源,推进分区放牧、分群饲养和专业化管理。",facts:[{label:"项目投资",value:"997万元",note:"基地建设"},{label:"优质草场",value:"8,800亩",note:"养殖基础"},{label:"增收成效",value:"约6万元",note:"社员户均增收"}],highlights:["联牧联营","分群饲养","四季均衡出栏"]},{key:"xiangfa",aliases:["邛溪镇麻萨阳德村标准化养殖基地","邛溪镇麻色阳德村标准化养殖基地","祥发牧业综合养殖基地"],name:"祥发牧业综合养殖基地",town:"邛溪镇",village:"麻色阳德村",operator:"红原县祥发牧业发展有限责任公司",tag:"联农带农示范",projectInvestment:515,summary:"以“4218”标准化养殖和联农带农模式,提升育肥效益与产业带动能力。",image:Se,facts:[{label:"项目投资",value:"515万元",note:"项目建设"},{label:"建设面积",value:"7,517㎡",note:"建筑面积"},{label:"养殖模式",value:"4218",note:"标准化养殖"}],highlights:["标准化养殖","联农带农","集中育肥"]}],jn=Yt([...Sn,...k]),x=v.summary||{},Kn=v.projectRows||[],Fe=v.yearRows||[],Be=v.typeRows||[],ve=v.operationRows||[],ke=v.disturbanceRows||[],zn=[...v.townRows||[]].sort(f),Pe=v.investmentRows||[],Ie=we.plotRows||[],De=xt(),$n=bt(),vn=C.map(n=>({key:n.name,name:n.name,value:Number(n.devices||0),unit:"套",extra:`${p(n.count)}头识别样本`})).filter(n=>n.value>0).sort(f),_e=C.map(n=>({key:n.name,name:n.name,value:Number(n.count||0),unit:"头",extra:`${p(n.devices)}套设备`})).filter(n=>n.value>0).sort(f),Ge=ut();kn.generatedAt;const kt=k.map(xn),Pt=[...A,...R].map(xn),It=V.map(xn),Z=V.map(gt).sort((n,e)=>Number(e.canLocate)-Number(n.canLocate)||n.stageOrder-e.stageOrder||String(n.name).localeCompare(String(e.name),"zh-CN"));function Dt(n={}){const e=String(n.featuredBaseKey||"").trim();if(e)return cn.find(a=>a.key===e)||null;const t=[n.name,n.fullName].filter(Boolean).map(a=>String(a));return cn.find(a=>a.aliases.some(r=>t.some(o=>o===r||o.includes(r)||r.includes(o))))||null}const Qn=M.reduce((n,e)=>n+b(e.key),0),Vn=new Set(M.flatMap(n=>nn(n.key).map(e=>e.town)).filter(Boolean)).size||N.length,_t=[{zh:"产业点位",name:"产业点位",value:Qn,unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"饲草库容",name:"饲草库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:Vn,unit:"个"}];function Oe(n){const e=Xe(n),t=_();return({"family-pasture":[{zh:"家庭生态牧场",name:"家庭生态牧场",value:wn,unit:"处",icon:"town"},{zh:"标准化暖棚",name:"标准化暖棚",value:rn,unit:"㎡",icon:"area"},{zh:"饲草料库",name:"饲草料库",value:In,unit:"㎡",icon:"stack"},{zh:"活动场地",name:"活动场地",value:xe,unit:"㎡",icon:"project"}],"artificial-grassland":[{zh:"实测种草面积",name:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",icon:"area"},{zh:"建设项目",name:"建设项目",value:x.projectCount||0,unit:"项",icon:"project"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个",icon:"town"},{zh:"项目投资",name:"项目投资",value:x.investmentWanYuan||0,unit:"万元",icon:"certificate"}],"scale-breeding":[{zh:"养殖基地",name:"养殖基地",value:t.baseCount,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:t.designStock,unit:"头"},{zh:"年出栏",name:"年出栏",value:t.annualOutput,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:t.townCount,unit:"个"}],"breeding-selection":[{zh:"选育/扩繁基地",name:"选育/扩繁基地",value:be,unit:"个"},{zh:"设计存栏",name:"设计存栏",value:Ce,unit:"头"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(K,T),unit:"个"},{zh:"育种等级",name:"育种等级",value:He.length,unit:"类"}],"forage-storage":[{zh:"储备库",name:"储备库",value:J,unit:"个"},{zh:"总库容",name:"总库容",value:G,unit:"吨"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:pn(k,T),unit:"个"},{zh:"草种类型",name:"草种类型",value:jn.length,unit:"类"}],"milk-source-station":[{zh:"奶源站",name:"奶源站",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"年收奶量",name:"年收奶量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"slaughter-processing":[{zh:"加工屠宰点位",name:"加工屠宰点位",value:b("slaughter-processing"),unit:"个"},{zh:"产业产值",name:"产业产值",value:w(X,1),unit:"万元",decimals:1},{zh:"年屠宰量",name:"年屠宰量",value:an,unit:"头"},{zh:"带动农户",name:"带动农户",value:hn,unit:"户"}],"farm-equipment":[{zh:"监测点位",name:"监测点位",value:b("farm-equipment"),unit:"个"},{zh:"识别设备",name:"识别设备",value:C.reduce((r,o)=>r+Number(o.devices||0),0),unit:"套"},{zh:"乡镇样本",name:"乡镇样本",value:C.length,unit:"个"},{zh:"识别样本",name:"识别样本",value:C.reduce((r,o)=>r+Number(o.count||0),0),unit:"头"}],"forage-trade":[{zh:"交易点位",name:"交易点位",value:0,unit:"个"},{zh:"覆盖乡镇",name:"覆盖乡镇",value:0,unit:"个"},{zh:"交易草量",name:"交易草量",value:0,unit:"吨"},{zh:"建档主体",name:"建档主体",value:0,unit:"家"}],"social-service":[{zh:"服务点位",name:"服务点位",value:b("social-service"),unit:"个"},{zh:"最高授信",name:"最高授信",value:O,unit:"万元"},{zh:"培训人次",name:"培训人次",value:Q,unit:"人次"},{zh:"服务类型",name:"服务类型",value:$n.length,unit:"类"}]}[n]||[{zh:e.name,name:e.name,value:e.value,unit:e.unit},{zh:e.capacityUnit?"能力规模":"主体规模",name:e.capacityUnit?"能力规模":"主体规模",value:e.capacity,unit:e.capacityUnit},...(e.fields||[]).map(r=>({zh:r.label,name:r.label,value:r.value,unit:r.unit}))]).filter(r=>r.value!==void 0&&r.value!==null&&r.value!=="").slice(0,4)}const Gt=[{key:"chain-subject",name:"产业点位",value:Qn,unit:"个",icon:"town",extra:`${Le}类主体`},{key:"chain-town",name:"镇域覆盖",value:Vn,unit:"个",icon:"town",extra:"全链覆盖"},{key:"chain-output",name:"产业产值",value:w(X,1),unit:"万元",icon:"certificate",extra:"加工+屠宰"},{key:"chain-forage",name:"饲草库容",value:G,unit:"吨",icon:"yield",extra:"防灾储备"}],Ot=M.map(n=>({key:n.key,name:n.name,value:b(n.key),unit:n.key==="family-pasture"?"处":"个",color:n.color})),gn=[{key:"family-pasture",name:"家庭生态牧场",value:wn,unit:"处",capacity:w(rn/1e4,2),capacityUnit:"万㎡",note:"家庭生态牧场建设及标准化养殖设施",fields:[{label:"标准化暖棚",value:w(rn/1e4,2),unit:"万㎡"},{label:"管理用房",value:w(Ye/1e4,2),unit:"万㎡"},{label:"饲草料库",value:w(In/1e4,2),unit:"万㎡"}]},{key:"artificial-grassland",name:"人工种草",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩",capacity:x.projectCount||0,capacityUnit:"项",note:"实测种草项目建设资料",fields:[{label:"实测种草面积",value:w(Number(x.actualAreaMu||0)/1e4,2),unit:"万亩"},{label:"建设项目",value:x.projectCount||0,unit:"项"},{label:"覆盖乡镇",value:x.coveredTownCount||0,unit:"个"}]},{key:"scale-breeding",name:"规模化养殖基地",value:_().baseCount,unit:"个",capacity:_().designStock,capacityUnit:"头",note:"标准化养殖、选育扩繁与种畜基地",fields:[{label:"设计存栏",value:_().designStock,unit:"头"},{label:"年出栏",value:_().annualOutput,unit:"头"},{label:"覆盖乡镇",value:_().townCount,unit:"个"}]},{key:"forage-storage",name:"防灾减灾饲草储备库",value:J,unit:"个",capacity:G,capacityUnit:"吨",note:"饲草储备、防灾调拨和草种保障",fields:[{label:"储备库",value:J,unit:"个"},{label:"总库容",value:G,unit:"吨"},{label:"覆盖乡镇",value:pn(k,T),unit:"个"}]},{key:"slaughter-processing",name:"屠宰与加工",value:b("slaughter-processing"),unit:"个",capacity:w(X,1),capacityUnit:"万元",note:"乳品加工、肉制品加工与定点屠宰",fields:[{label:"加工产值",value:Gn,unit:"万元"},{label:"屠宰产值",value:w(An,1),unit:"万元"},{label:"年屠宰量",value:an,unit:"头"}]},{key:"farm-equipment",name:"农机装备",value:b("farm-equipment"),unit:"个",capacity:Me,capacityUnit:"套",note:"农机服务主体与生产监测设备",fields:[{label:"监测点位",value:b("farm-equipment"),unit:"个"},{label:"识别设备",value:C.reduce((n,e)=>n+Number(e.devices||0),0),unit:"套"},{label:"乡镇样本",value:C.length,unit:"个"}]},{key:"social-service",name:"社会化服务",value:b("social-service"),unit:"个",capacity:O,capacityUnit:"万元",note:"金融、保险、防疫、培训和其他服务网点",fields:[{label:"金融网点",value:Tn,unit:"家"},{label:"最高授信",value:O,unit:"万元"},{label:"培训人次",value:Q,unit:"人次"}]}],He=St(),je=B(k,T,n=>s(n,["总库容 (吨)"])).map(n=>S(d({},n),{unit:"吨",extra:`${n.count}个库点`})),Ke=[{key:"milk-processing",name:"乳品加工",value:g(A.filter(Lt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#32dcff"},{key:"meat-processing",name:"肉品加工",value:g(A.filter(Mt),n=>s(n,["年产值 (万元)"])),unit:"万元",color:"#48cfff"},{key:"slaughter-output",name:"定点屠宰",value:w(An,1),unit:"万元",color:"#8bf7ff"}].filter(n=>n.value>0),Ht=[{key:"raw-capacity",name:"年加工原料",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"slaughter-heads",name:"年屠宰总量",value:an,unit:"头",extra:`${R.filter(c).length}家定点屠宰`},{key:"farmer-driven",name:"带动本地农户",value:hn,unit:"户",extra:"加工企业申报"},{key:"cold-storage",name:"冷冻/冷藏能力",value:On,unit:"吨",extra:"屠宰冷链"}],jt=[{key:"finance",name:"金融服务",value:$(Ue,10),count:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务",value:$(ln,10),count:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训",value:$(Q,200),count:Dn,unit:"家",extra:`${p(Q)}人次`},{key:"disease",name:"疫病防控",value:$(un,4),count:un,unit:"个",extra:"防疫主体"},{key:"equipment",name:"农机装备",value:$(sn,3),count:sn,unit:"个",extra:"服务主体"}],ze=[{key:"cutting",name:"割草地",headerName:"割草地"},{key:"storage",name:"储草基地",headerName:"储草基地",valuePrefix:"≥"},{key:"netFence",name:"网围栏种草",headerName:"网围栏"}],$e=[{key:"cutting",name:"割草地",color:"#37DDF3"},{key:"storage",name:"储草基地",color:"#8bf7ff"}];function qn(n){return Oe(n).map((e,t)=>({key:e.key||`${n}-metric-${t}`,name:e.name||e.zh||`指标${t+1}`,value:e.value,unit:e.unit||"",extra:e.extra||""}))}function Qe(n){var u;const e=E(n),t=gn.find(i=>i.key===n),a=qn(n),r=a[0]||{key:`${n}-primary`,name:e.name,value:0,unit:e.unit||""},o=((u=t==null?void 0:t.fields)!=null&&u.length?t.fields:a.slice(1)).map((i,y)=>({key:i.key||`${n}-field-${y}`,name:i.label||i.name||`要点${y+1}`,value:i.value,unit:i.unit||"",extra:i.extra||(t==null?void 0:t.note)||e.metricLabel||""}));return[S(d({},r),{key:r.key||`${n}-spotlight-main`,name:r.name||e.name,extra:r.extra||(t==null?void 0:t.note)||e.metricLabel||"环节核心能力"}),...o].slice(0,4)}function Ve(n){return l(`${n}-right-metrics`,"环节核心指标","metric",qn(n))}function qe(n){return l(`${n}-right-spotlight`,"建设要点","spotlight",Qe(n))}function I(n,e=ee(n)){return[e,Ve(n),qe(n)]}function Kt(n){const e=E(n),t=yt(n),a={"family-pasture":{left:[l("family-town","家庭生态牧场乡镇分布","column",z(n),{variant:"townCompact",scrollable:!1,uniformColor:!0,fillHeight:!0}),l("family-unit","标准化建设配置","specGrid",tt(),{fillHeight:!0}),l("family-forage","乡镇割草地、储草基地面积","stackColumn",Yn(),{fillHeight:!0,unit:"亩",segments:$e,sharedScale:!0,showZero:!0,showValue:!0,totalLabel:"汇总面积"}),l("family-support-type","草料配套类型占比","structure",at(),{fillHeight:!0})],right:[ee(n),l("family-construction-year","年度建设节奏","line",rt(),{fixedType:!0}),l("family-net-fence","网围栏配套面积","rank",ot("netFence"),{unit:"亩"})]},"artificial-grassland":{left:[l("grass-town-area","人工种草乡镇面积","column",zn,{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("grass-year","年度项目建设面积","column",Fe,{variant:"plain",scrollable:!1,lineOverlay:!0}),l("grass-type","建设类型面积","structure",Be),l("grass-operation","作业方式面积","bar",ve)],right:[wt(),l("grass-investment","项目投资规模","rank",Pe),l("grass-disturbance","施工扰动面积","split",ke),l("grass-project-area","项目面积明细","specGrid",nt())]},"scale-breeding":{left:[l("breeding-town-count","乡镇养殖基地分布","column",Xn("baseCount","个","养殖基地"),{variant:"townCompact",scrollable:!1,axisLabelMode:"short",uniformColor:!0}),l("breeding-town-stock","设计存栏规模排名","bar",Wn("designStock","头","设计存栏"),{variant:"rankBar"}),l("breeding-town-output","年出栏区域贡献","structure",Je()),l("breeding-project-investment","重点示范项目投入","rank",Ze())],right:[...I(n,ft())]},"forage-storage":{left:[l("storage-town","库容镇域分布","column",z(n),{variant:"townCompact",scrollable:!1}),l("storage-point","储备库点排名","bar",Nt(),{variant:"rankBar"}),l("storage-grass","储备草种结构","structure",jn),l("storage-capacity","库容能力占比","split",z(n).filter(o=>Number(o.value||0)>0).slice(0,7))],right:[...I(n)]},"slaughter-processing":{left:[l("processing-value","产值结构","donut",Ke,{variant:"ring"}),l("processing-chain","产能与带动","structure",De),l("processing-heads","屠宰能力排名","bar",ht(),{variant:"rankBar"}),l("processing-town","加工点位乡镇分布","column",on([...A,...R],"加工/屠宰主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0})],right:[...I(n)]},"farm-equipment":{left:[l("equipment-device","识别设备分布","column",F(vn,{unit:"套",extra:"识别设备"}),{variant:"townCompact",scrollable:!1}),l("equipment-recognition","识别样本排名","bar",_e,{variant:"rankBar"}),l("equipment-service-town","农机服务主体分布","column",on(yn,"农机服务主体"),{variant:"townCompact",scrollable:!1,uniformColor:!0}),l("equipment-device-structure","设备投放结构","structure",vn.filter(o=>Number(o.value||0)>0).slice(0,6))],right:[...I(n)]},"social-service":{left:[l("service-type","服务主体结构","donut",$n,{variant:"ring"}),l("service-town","服务镇域分布","column",on([...fn,...P,...q,...tn],"服务主体"),{variant:"townCompact",scrollable:!1}),l("service-training-town","培训人次分布","column",Tt(P,["年培训人次"],{unit:"人次",extra:"技术培训"}),{variant:"townCompact",scrollable:!1,lineOverlay:!0}),l("service-training","培训服务能力","line",At())],right:[...I(n)]}},r={left:[l(`${e.key}-rank`,`${e.metricLabel}分布`,"column",z(n),{variant:"townCompact",scrollable:!1}),l(`${e.key}-subject`,"主体结构","structure",t),l(`${e.key}-town`,"镇域覆盖分布","column",F(st(n),{unit:"个",extra:"镇域覆盖"}),{variant:"townCompact",scrollable:!1}),l(`${e.key}-capacity`,"能力规模分布","split",z(n).slice(0,7))],right:[...I(n)]};return a[n]||r}const zt=[{key:"support-capacity",name:"饲草储备能力",value:G,unit:"吨",extra:`${J}个库点`},{key:"processing-capacity",name:"加工原料规模",value:Nn,unit:"吨",extra:`${A.filter(c).length}家加工主体`},{key:"processing-output",name:"加工屠宰产值",value:w(X,1),unit:"万元",extra:"加工+屠宰"},{key:"finance-credit",name:"最高单户授信",value:O,unit:"万元",extra:"金融服务"}];function E(n){return M.find(e=>e.key===n)||M[0]}function Xe(n){return gn.find(e=>e.key===n)||gn[0]}function z(n){if(n==="family-pasture")return F(et(),{unit:"处",extra:"家庭生态牧场"});if(n==="artificial-grassland")return zn;if(n==="breeding-selection"){const e=B(K,T,()=>1).map(t=>S(d({},t),{unit:"个",extra:"选育/扩繁基地"}));return F(e,{unit:"个",extra:"选育/扩繁基地"})}if(n==="scale-breeding"){const e=B(m("YC-BREEDING-BASE"),T,t=>s(t,["设计存栏量 (头)"])).map(t=>S(d({},t),{unit:"头",extra:`${t.count}个基地`}));return F(e,{unit:"头",extra:"养殖基地"})}return n==="forage-storage"?F(je,{unit:"吨",extra:"饲草储备"}):n==="slaughter-processing"?[...A,...R].filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年产值 (万元)","年总产值 (万元)"]),unit:"万元",extra:e.categoryName})).filter(e=>e.value>0).sort(f).slice(0,7):n==="farm-equipment"?yn.filter(c).map(e=>{var t;return{key:e.id,name:j(e.name),value:1,unit:"个",extra:((t=e.attributes)==null?void 0:t.简称)||"农机服务"}}):n==="social-service"?[{key:"finance",name:"金融服务网点",value:Tn,unit:"家",extra:`最高${p(O)}万元`},{key:"insurance",name:"保险服务网点",value:_n,unit:"家",extra:`覆盖${p(ln)}乡镇`},{key:"training",name:"技术培训机构",value:Dn,unit:"家",extra:`${p(Hn)}场`},{key:"disease",name:"疫病防控主体",value:un,unit:"个",extra:"防疫服务"}]:[]}function We(){const n=new Map(N.map((e,t)=>[e,{key:e,name:e,sourceIndex:t,segments:{baseCount:0,designStock:0,annualOutput:0}}]));return bn().forEach(e=>{const t=n.get(e.town);t&&(t.segments.baseCount+=1,t.segments.designStock+=Number(e.numericValue||e.value||0),t.segments.annualOutput+=Number(e.annualOutput||0))}),N.map(e=>n.get(e))}function Xn(n,e,t){return We().map((a,r)=>{var i;const o=Number(((i=a.segments)==null?void 0:i[n])||0),u=o>0;return{key:`${a.key}-${n}`,name:a.name,rawValue:o,value:u?o:.001,displayValue:u?o:"0",unit:e,extra:t,zero:!u,sourceIndex:r}})}function Wn(n,e,t){return Xn(n,e,t).filter(a=>a.rawValue>0).map(a=>S(d({},a),{value:a.rawValue,displayValue:a.rawValue})).sort(f)}function Je(){const n=Wn("annualOutput","头","年出栏"),e=n.reduce((o,u)=>o+Number(u.value||0),0);if(!e)return[];const t=n.slice(0,3),a=n.slice(3);return(a.length?[...t,{key:"other-towns-annual-output",name:"其他乡镇",value:a.reduce((o,u)=>o+Number(u.value||0),0),unit:"头"}]:t).map(o=>S(d({},o),{extra:`占比 ${p(Number(o.value||0)/e*100)}%`}))}function Ze(){return cn.map(n=>({key:n.key,name:n.name.replace(/标准化养殖基地/g,"基地").replace(/综合养殖基地/g,"基地"),value:Number(n.projectInvestment||0),unit:"万元",extra:`${n.town} · ${n.tag}`})).filter(n=>n.value>0).sort(f)}function nt(){return Kn.map(n=>({key:n.key,name:n.name,value:Number(n.actualAreaMu||n.value||0),unit:"亩",extra:n.year?`${n.year}年`:n.category||"实测面积"})).filter(n=>n.value>0).sort(f)}function et(){const n=new Map(B(U,T,()=>1).map(e=>[e.name,e]));return N.map(e=>{const t=n.get(e);return{key:e,name:e,value:Number((t==null?void 0:t.value)||0),unit:"处",extra:"家庭生态牧场"}})}function tt(){const n=new Map;return U.filter(c).forEach(e=>{const t=s(e,["标准化暖棚 (㎡)"]),a=s(e,["管理用房 (㎡)"]),r=s(e,["饲草料库 (㎡)"]),o=s(e,["活动场地及通道 (㎡)"]),u=`${p(t)}㎡暖棚 + ${p(a)}㎡管理房`,i=`${t}-${a}-${r}-${o}`,y=n.get(i)||{key:i,name:u,value:0,unit:"处",specs:[{label:"饲草料库",value:r,unit:"㎡"},{label:"活动场地",value:o,unit:"㎡"}]};y.value+=1,n.set(i,y)}),[...n.values()].sort(f)}function Yn(){const n=new Map(N.map(e=>[e,{key:e,name:e,unit:"亩",segments:{cutting:0,storage:0,netFence:0}}]));return U.filter(c).forEach(e=>{const t=T(e),a=n.get(t);if(!a)return;const r=e.grassSupportType,o=Number(e.grassSupportMu||0);o&&(r==="割草地"&&(a.segments.cutting+=o),r==="储草基地"&&(a.segments.storage+=o),r==="网围栏种草"&&(a.segments.netFence+=o))}),[...n.values()]}function at(){const n=Yn();return ze.map(e=>{const t=n.reduce((r,o)=>{var u;return r+Number(((u=o.segments)==null?void 0:u[e.key])||0)},0),a=n.filter(r=>{var o;return Number(((o=r.segments)==null?void 0:o[e.key])||0)>0}).length;return{key:e.key,name:e.name,value:t,unit:"亩",extra:`覆盖${a}个乡镇`}})}function ot(n=""){return Yn().map(e=>{var a;const t=n?Number(((a=e.segments)==null?void 0:a[n])||0):Object.values(e.segments||{}).reduce((r,o)=>r+Number(o||0),0);return{key:e.key,name:e.name,value:t,unit:"亩",extra:n==="netFence"?"网围栏种草":"草料配套"}}).filter(e=>e.value>0).sort(f)}function rt(){return B(U.filter(c),n=>String(n.constructionYear||"未标注"),()=>1).map(n=>S(d({},n),{name:n.name==="未标注"?n.name:`${n.name}年`,unit:"处",extra:"建成牧场"})).sort((n,e)=>String(n.key).localeCompare(String(e.key),"zh-CN"))}function st(n){return B(it(n),T,()=>1).map(e=>S(d({},e),{unit:"个",extra:`${e.count}条`}))}function $t(n={}){const e=Ut(n);if(!e)return[];const t=[],a=e.metrics||{},r=e.attributes||{},o=(u,i,y="",Y={})=>{te(i)||t.push(d({label:u,value:Et(i,y)},Y))};return e.categoryCode==="YC-FAMILY-PASTURE"?(o("户主",e.owner||r.户主),o("建设年份",e.constructionYear,"年"),o("所在村",e.village),o("标准化暖棚",a["标准化暖棚 (㎡)"],"㎡"),o("生产管理用房",a["管理用房 (㎡)"],"㎡"),o("饲草料库",a["饲草料库 (㎡)"],"㎡"),o("活动场地及通道",a["活动场地及通道 (㎡)"],"㎡"),o("草料配套",e.grassSupportText||r.草料配套,"",{wide:!0}),t):(o("运营单位",r.运营单位),o("育种等级",r.育种等级),o("育种方向",r.主要育种方向),o("设计存栏",a["设计存栏量 (头)"],"头"),o("年出栏量",a["年出栏量 (头)"],"头"),o("种植面积",a["种植面积 (亩)"]||e.scale,e.scale?"":"亩"),o("总库容",a["总库容 (吨)"],"吨"),o("年产值",a["年产值 (万元)"]||a["年总产值 (万元)"],"万元"),o("年加工量",a["年加工鲜奶总量 (吨)"]||a["年加工原料肉总量 (吨)"],"吨"),o("年屠宰量",a["年屠宰总量 (头)"],"头"),o("服务覆盖",a.服务覆盖乡镇数,"个乡镇"),o("最高授信",a["最高单户贷款额度 (万元)"],"万元"),o("主要产品",r.主要产品),o("主要草种",r.主要草种||r.储备草种),t.slice(0,8))}function m(n){return(Array.isArray(n)?n:[n]).flatMap(t=>{const a=Te.get(t);return(t==="YC-FAMILY-PASTURE"?Pn:(a==null?void 0:a.items)||[]).map(o=>{var u;return S(d({},o),{categoryCode:a.categoryCode,categoryName:a.categoryName,stageKey:a.industryStage,stageName:((u=E(a.industryStage))==null?void 0:u.name)||a.categoryName})})})}function it(n){return n==="scale-breeding"?Re.filter(c):n==="breeding-selection"?K.filter(c):n==="milk-source-station"||n==="forage-trade"?[]:V.filter(e=>e.stageKey===n)}function nn(n){return n==="artificial-grassland"?Ie:n==="farm-equipment"?Ge:n==="scale-breeding"?bn():n==="breeding-selection"?Z.filter(e=>["YC-BREEDING-STOCK","YC-CXPT-BREEDING-STOCK-BASE"].includes(e.categoryCode)&&e.canLocate).map(e=>S(d({},e),{stageKey:n,stageName:E(n).name,stageOrder:M.findIndex(t=>t.key===n)})):Z.filter(e=>e.stageKey===n&&e.canLocate)}function b(n){return n==="family-pasture"?wn:nn(n).length}function ut(){return C.map((n,e)=>{const t=ye.get(n.name),a=Number(t==null?void 0:t[0]),r=Number(t==null?void 0:t[1]);if(!dn(a,r))return null;const o=`YC-FARM-EQUIPMENT-TOWN-${String(e+1).padStart(3,"0")}`,u=`${n.name}农机装备监测点`,i=Number(n.devices||0),y=Number(n.count||0);return{key:o,id:o,name:u,fullName:u,stageKey:"farm-equipment",stageName:E("farm-equipment").name,stageOrder:M.findIndex(Y=>Y.key==="farm-equipment"),typeName:"农机装备监测点",categoryName:"农机装备监测点",town:n.name,address:`${n.name}乡镇中心`,status:"监测样本",value:i,unit:"套",numericValue:i,valueText:`${p(i)}套`,extra:`${p(y)}头识别样本`,longitude:a,latitude:r,locateText:"定位",canLocate:!0,searchText:[u,"农机装备",n.name,`${i}套`,`${y}头识别样本`].join(" ")}}).filter(Boolean).sort((n,e)=>e.numericValue-n.numericValue||String(n.name).localeCompare(String(e.name),"zh-CN"))}function c(n={}){var a;const e=L(n.name),t=L((a=n.attributes)==null?void 0:a.序号);return!(!e||Fn.has(e)||Ne.has(n.categoryCode)||Ae.some(r=>r.test(e))||t&&Fn.has(t)&&!lt(n)||he.some(r=>r.test(e)))}function h(n=[]){return n.filter(c).length}function lt(n={}){return Object.values(n.metrics||{}).some(e=>H(e)>0)}function xn(n={}){var t,a,r,o;const e=Jn(n);return{key:String(n.id||n.name),name:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:T(n),address:n.address||n.village||n.areaFullName||"",status:n.status||"",products:((t=n.attributes)==null?void 0:t.主要产品)||((a=n.attributes)==null?void 0:a.主要草种)||((r=n.attributes)==null?void 0:r.储备草种)||((o=n.attributes)==null?void 0:o.主要育种方向)||"",capacity:e,capacityUnit:Zn(n),outputValue:s(n,["年产值 (万元)","年总产值 (万元)"]),longitude:n.longitude,latitude:n.latitude}}function ct(n={}){const e=Jn(n),t=Zn(n),a=T(n);return{key:String(n.id||n.name),name:j(n.name),fullName:n.name,stageKey:n.stageKey,categoryCode:n.categoryCode,typeName:n.categoryName,categoryName:n.categoryName,town:a||"全县",address:n.address||n.village||n.areaFullName||"",status:n.status||"待完善",value:e,unit:t,numericValue:Number(e)||0,valueText:pt(n,e,t),extra:mt(n),sourceSheet:n.sourceSheet}}function gt(n={}){var Ln,Mn;const e=ct(n),t=Ct(n),a=E(n.stageKey),r=L(n.name),o=L(n.categoryName).replace(/^cxpt/i,""),u=L(n.address||n.village||n.areaFullName||""),i=n.attributes||{},y=n.metrics||{},Y=[r,e.name,a==null?void 0:a.name,o,e.town,u,i.简称,i.运营单位,i.主要产品,i.主要草种,i.储备草种,i.主要育种方向,n.owner,n.village,n.constructionYear,n.facilityBrief,n.grassSupportText,y["主要贷款产品(可多选)"],e.valueText,e.extra,n.sourceSheet].filter(Boolean).join(" ");return S(d({},e),{name:e.name,fullName:r,stageName:(a==null?void 0:a.name)||e.stageName||"",stageOrder:M.findIndex(ae=>ae.key===n.stageKey),categoryName:o,address:u,longitude:(Ln=t==null?void 0:t.longitude)!=null?Ln:"",latitude:(Mn=t==null?void 0:t.latitude)!=null?Mn:"",locateText:t?"定位":"暂无",canLocate:!!t,owner:n.owner||i.户主||"",village:n.village||"",constructionYear:n.constructionYear||"",facilityBrief:n.facilityBrief||"",facilityDetail:n.facilityDetail||i.设施配置||"",grassSupportText:n.grassSupportText||i.草料配套||"",pointName:n.pointName||"",preferCoordinateMatch:n.categoryCode==="YC-FAMILY-PASTURE",ledgerName:n.categoryCode==="YC-FAMILY-PASTURE"?n.owner||e.name.replace(/家庭生态牧场$/,""):e.name,ledgerLocation:[e.town,n.village].filter(Boolean).join(" · "),facilityCompact:n.categoryCode==="YC-FAMILY-PASTURE"?dt(n.facilityBrief):n.facilityBrief||"",annualOutput:n.categoryCode==="YC-BREEDING-BASE"?s(n,["年出栏量 (头)"]):0,searchText:Y})}function bn(){return Z.filter(n=>Ee.has(n.categoryCode)&&n.canLocate)}function _(){const n=bn();return{baseCount:n.length,designStock:n.reduce((e,t)=>e+Number(t.numericValue||t.value||0),0),annualOutput:n.reduce((e,t)=>e+Number(t.annualOutput||0),0),townCount:new Set(n.map(e=>e.town).filter(Boolean)).size}}function dt(n=""){return String(n).replace(/管理房/g,"管理").replace(/\s*\/\s*/g," · ")}function Jn(n={}){var e,t;return n.stageKey==="family-pasture"?1:n.categoryCode==="YC-BREEDING-STOCK"?((e=n.attributes)==null?void 0:e.育种等级)||"待完善":n.categoryCode==="YC-CXPT-BREEDING-STOCK-BASE"?H(n.scale)||1:n.categoryCode==="YC-BREEDING-BASE"?s(n,["设计存栏量 (头)"]):n.categoryCode==="YC-FORAGE-BASE"?s(n,["种植面积 (亩)"]):n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?s(n,["总库容 (吨)"]):n.categoryCode==="YC-PROCESSING-PLANT"?s(n,["年产值 (万元)"])||s(n,["年加工鲜奶总量 (吨)","年加工原料肉总量 (吨)"]):n.categoryCode==="YC-SLAUGHTERHOUSE"?s(n,["年总产值 (万元)"])||s(n,["年屠宰总量 (头)"]):n.categoryCode==="YC-SERVICE-FINANCE"?s(n,["最高单户贷款额度 (万元)","服务覆盖乡镇数"]):n.categoryCode==="YC-SERVICE-INSURANCE"?s(n,["服务覆盖乡镇数"]):n.categoryCode==="YC-TECH-TRAINING"?s(n,["年培训人次","年培训场次"]):(t=n.categoryCode)!=null&&t.startsWith("YC-CXPT")?H(n.scale)||s(n,["acreage"]):s(n,Object.keys(n.metrics||{}))||1}function Zn(n={}){var e;return n.stageKey==="family-pasture"?"处":n.categoryCode==="YC-BREEDING-STOCK"?"":n.categoryCode==="YC-BREEDING-BASE"?"头":["YC-FORAGE-BASE","YC-CXPT-FORAGE-BASE","YC-CXPT-GRASS-SEED-BASE","YC-CXPT-BREEDING-STOCK-BASE"].includes(n.categoryCode)?"亩":n.categoryCode==="YC-DISASTER-FORAGE-STORAGE"?"吨":n.categoryCode==="YC-PROCESSING-PLANT"||n.categoryCode==="YC-SLAUGHTERHOUSE"||n.categoryCode==="YC-SERVICE-FINANCE"?"万元":n.categoryCode==="YC-SERVICE-INSURANCE"?"乡镇":n.categoryCode==="YC-TECH-TRAINING"?"人次":(e=n.categoryCode)!=null&&e.startsWith("YC-CXPT")?"亩":""}function pt(n,e,t){return n.categoryCode==="YC-BREEDING-STOCK"?String(e||"待完善"):Number.isFinite(Number(e))?`${p(e)}${t||""}`:String(e||"")}function mt(n={}){const e=n.attributes||{},t=n.metrics||{};return e.主要产品||e.主要草种||e.储备草种||e.主要育种方向||t["主要贷款产品(可多选)"]||n.sourceSheet||""}function St(){const n=new Map;return K.forEach(e=>{var r;const t=L((r=e.attributes)==null?void 0:r.育种等级)||"待完善",a=n.get(t)||{key:t,name:t,value:0,unit:"个"};a.value+=1,n.set(t,a)}),[...n.values()].sort((e,t)=>{var r,o;const a={省级:0,县级:1,待完善:2};return((r=a[e.name])!=null?r:9)-((o=a[t.name])!=null?o:9)})}function yt(n){return en.filter(e=>e.industryStage===n).map(e=>{const t=h(m(e.categoryCode));return{key:e.categoryCode,name:e.categoryName.replace(/^cxpt/,""),value:t,unit:"条",extra:E(n).name}}).filter(e=>e.value>0).sort(f)}function l(n,e,t,a,r={}){return d({key:n,title:e,height:227,renderer:"business",type:t,rows:a},r)}function ne(n){return n==="family-pasture"?Z.filter(e=>e.stageKey===n):n?nn(n):M.flatMap(e=>nn(e.key))}function ee(n){const e=E(n),t=ne(n);return n==="family-pasture"?{key:"family-pasture-ledger",title:"家庭牧场列表",renderer:"business",type:"projectTable",rows:t,maxRows:12,fillRows:!0,searchPlaceholder:"搜索户主、乡镇或村",emptyText:"无匹配家庭生态牧场",searchKeys:["name","fullName","owner","town","village","constructionYear","facilityBrief","facilityDetail","grassSupportText","sourceSheet","searchText"],columns:[{key:"name",label:"名称",field:"ledgerName",fields:["name"],width:"44%",className:"business-project-col-name"},{key:"region",label:"区域",field:"town",width:"36%",format:"townVillage"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center",fallback:"定位",icon:"locate"}]}:{key:"industry-chain-list",title:`${e.name}点位清单`,height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:t,searchPlaceholder:`搜索${e.name}点位 / 乡镇`,emptyText:"无匹配点位",columns:[{key:"name",label:"主体",field:"name",width:"38%",className:"business-project-col-name"},{key:"stage",label:"类型",field:"categoryName",width:"24%"},{key:"town",label:"乡镇",field:"town",width:"18%"},{key:"locate",label:"定位",field:"locateText",width:"20%",align:"center"}],searchKeys:["name","fullName","stageName","categoryName","town","address","valueText","extra","sourceSheet","searchText"]}}function ft(){return{key:"scale-breeding-location-list",title:"养殖基地定位",height:466,span:2,keepSpanHeight:!0,renderer:"business",type:"projectTable",rows:ne("scale-breeding").slice().sort((e,t)=>String(e.town||"").localeCompare(String(t.town||""),"zh-CN")||String(e.name||"").localeCompare(String(t.name||""),"zh-CN")),maxRows:300,searchPlaceholder:"搜索养殖基地 / 乡镇",emptyText:"无匹配养殖基地",columns:[{key:"name",label:"养殖基地",field:"name",width:"46%",className:"business-project-col-name"},{key:"town",label:"区域",field:"town",width:"32%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",action:"locate"}],searchKeys:["name","fullName","town","address","searchText"]}}function wt(){return{key:"artificial-grassland-business-ledger",title:"项目建设台账",renderer:"business",type:"projectTable",rows:Kn,fixedHeight:!0,rowSelectOnClick:!1,showSearch:!1,maxRows:6,emptyText:"暂无项目建设台账",columns:[{key:"name",label:"项目",field:"name",width:"48%",className:"business-project-col-name"},{key:"year",label:"年度",field:"year",width:"16%",align:"center"},{key:"area",label:"实测面积",field:"actualAreaMu",width:"36%",align:"right",strong:!0,unit:"亩"}],searchKeys:["name","fullName","year","category","towns","searchText"]}}function Tt(n=[],e=[],t={}){const a=B(n,T,r=>s(r,e)).map(r=>S(d({},r),{unit:t.unit||"",extra:t.extra||`${r.count}个点位`}));return F(a,t)}function on(n=[],e="点位"){const t=B(n,T,()=>1).map(a=>S(d({},a),{unit:"个",extra:e}));return F(t,{unit:"个",extra:e})}function Nt(){return k.filter(c).map(n=>{var e;return{key:n.id,name:j(n.name),value:s(n,["总库容 (吨)"]),unit:"吨",extra:s(n,["发放次数"])||((e=n.attributes)==null?void 0:e.储备草种)||"储备库"}}).filter(n=>n.value>0).sort(f).slice(0,8)}function ht(){return R.filter(c).map(n=>({key:n.id,name:j(n.name),value:s(n,["年屠宰总量 (头)"]),unit:"头",extra:`${p(s(n,["冷冻库容量 (吨)"]))}吨冷链`})).filter(n=>n.value>0).sort(f).slice(0,7)}function At(){const n=P.filter(c).map(e=>({key:e.id,name:j(e.name),value:s(e,["年培训人次"]),unit:"人次",extra:`${p(s(e,["年培训场次"]))}场`})).filter(e=>e.value>0).sort(f).slice(0,7);return n.length?n:[{key:"sessions",name:"年培训场次",value:Hn,unit:"场"},{key:"persons",name:"年培训人次",value:Q,unit:"人次"}]}function Yt(n){const e=[{key:"oat",name:"燕麦草",pattern:/燕麦/},{key:"elymus",name:"披碱草",pattern:/披碱草/},{key:"roegneria",name:"老芒麦",pattern:/老芒麦/},{key:"other",name:"其他草种",pattern:/./}],t=new Map(e.map(a=>[a.key,{key:a.key,name:a.name,value:0,unit:"处"}]));return n.filter(c).forEach(a=>{var i,y;const r=[(i=a.attributes)==null?void 0:i.主要草种,(y=a.attributes)==null?void 0:y.储备草种].filter(Boolean).join("、"),o=e.filter(Y=>Y.key!=="other"&&Y.pattern.test(r));(o.length?o:[e[e.length-1]]).forEach(Y=>{t.get(Y.key).value+=1})}),[...t.values()].filter(a=>a.value>0).sort(f)}function xt(){return[{key:"raw-capacity",name:"原料加工",value:Nn,unit:"吨"},{key:"slaughter-heads",name:"屠宰总量",value:an,unit:"头"},{key:"farmer-driven",name:"带动农户",value:hn,unit:"户"},{key:"cold-storage",name:"冷链能力",value:On,unit:"吨"}].filter(n=>n.value>0)}function bt(){return[{key:"finance",name:"金融",value:q.filter(c).length,unit:"家"},{key:"insurance",name:"保险",value:tn.filter(c).length,unit:"家"},{key:"training",name:"培训",value:P.filter(c).length,unit:"家"},{key:"disease",name:"防疫",value:fn.filter(c).length,unit:"个"}].filter(n=>n.value>0)}function B(n,e,t){const a=new Map;return n.filter(c).forEach(r=>{const o=L(typeof e=="function"?e(r):r[e])||"未填写",u=a.get(o)||{key:o,name:o,value:0,count:0,extra:""};u.value+=Number(t(r)||0),u.count+=1,a.set(o,u)}),[...a.values()].sort(f)}function F(n=[],e={}){const t=new Map;return n.forEach(a=>{const r=L(a==null?void 0:a.name),o=N.find(u=>u===r)||N.find(u=>{const i=u.replace(/[镇乡]$/,"");return i.length>=2&&r.includes(i)});o&&t.set(o,a)}),N.map((a,r)=>{const o=t.get(a),u=Number((o==null?void 0:o.value)||0),i=Number.isFinite(u)&&u>0;return{key:(o==null?void 0:o.key)||a,name:a,value:i?u:.001,displayValue:i?o.displayValue:"0",scaleValue:o==null?void 0:o.scaleValue,unit:(o==null?void 0:o.unit)||e.unit||"",extra:(o==null?void 0:o.extra)||e.extra||"",color:o==null?void 0:o.color,zero:!i,sourceIndex:r}})}function s(n={},e=[]){const t=n.metrics||{},a=Array.isArray(e)?e:[e];for(const r of a)if(Object.prototype.hasOwnProperty.call(t,r)){const o=H(t[r]);if(o||o===0)return o}return 0}function H(n){if(typeof n=="number")return Number.isFinite(n)?n:0;if(te(n))return 0;const e=String(n).replace(/,/g,"").trim();if(!e||e==="无"||e==="待完善")return 0;const t=e.match(/-?\d+(?:\.\d+)?/);if(!t)return 0;let a=Number(t[0]);return e.includes("万亩")&&!e.includes("万元")&&(a*=1e4),Number.isFinite(a)?a:0}function T(n={}){const e=L(n.town||n.areaName);if(N.includes(e))return e;const t=[n.town,n.areaName,n.areaFullName,n.address,n.village,n.name].filter(Boolean).join(" "),a=N.find(r=>t.includes(r));return a||N.find(r=>{const o=r.replace(/[镇乡]$/,"");return o.length>=2&&t.includes(o)})||e}function Ct(n={}){const e=D(n.longitude),t=D(n.latitude);if(dn(e,t))return{longitude:e,latitude:t};const a=Object.values(n.locations||{}).find(r=>dn(D(r==null?void 0:r.longitude),D(r==null?void 0:r.latitude)));return a?{longitude:D(a.longitude),latitude:D(a.latitude)}:null}function dn(n,e){const t=Number(n),a=Number(e);return Number.isFinite(t)&&Number.isFinite(a)&&t>=W.west&&t<=W.east&&a>=W.south&&a<=W.north}function D(n){if(n==null||n==="")return NaN;const e=Number(n);return Number.isFinite(e)?e:NaN}function Lt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/奶|乳|酸奶|奶粉/.test(e)}function Mt(n={}){var t;const e=[n.name,(t=n.attributes)==null?void 0:t.主要产品].filter(Boolean).join("");return/肉|屠宰|牛肉/.test(e)}function Ut(n={}){const e=String(n.id||"");return e&&Bn.has(e)?Bn.get(e):mn.find(t=>t.name===n.name&&t.categoryCode===n.categoryCode)}function $(n,e){return Math.max(12,Math.min(100,Math.round(Number(n||0)/e*100)))}function g(n,e){return n.filter(c).reduce((t,a)=>t+Number(e(a)||0),0)}function Cn(n,e){return n.filter(c).reduce((t,a)=>Math.max(t,Number(e(a)||0)),0)}function pn(n,e){return new Set(n.filter(c).map(e).filter(Boolean)).size}function f(n,e){return e.value-n.value||e.count-n.count||String(n.name).localeCompare(String(e.name),"zh-CN")}function j(n=""){return String(n).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/股份有限公司红原县支行$/,"红原支行").trim()}function L(n){return String(n!=null?n:"").replace(/\s+/g," ").trim()}function te(n){return n==null||String(n).trim()===""||String(n).trim().toLowerCase()==="nan"}function Rt(n){return typeof n=="number"?p(n):H(n)&&String(n).match(/^\s*[约≈]?\d/)?String(n):String(n!=null?n:"")}function Et(n,e=""){const t=Rt(n);return!e||typeof n=="string"&&t.includes(e.replace(/^个/,""))?t:`${t}${e}`}function p(n){const e=Number(n||0);return Number.isFinite(e)?e.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(e)?0:1}):"0"}function w(n,e=0){const t=En(10,e);return Math.round(Number(n||0)*t)/t}export{Kt as a,et as b,Dt as c,$t as d,Oe as e,_t as f,E as g,Gt as h,M as i,gn as j,He as k,je as l,Ke as m,jt as n,zt as o,Ht as p,kt as q,Pt as r,Ot as s,It as t,Z as u}; diff --git a/docs/assets/data-efed6b46-1784045078568.js b/docs/assets/data-c66f5cee-1784074877048.js similarity index 99% rename from docs/assets/data-efed6b46-1784045078568.js rename to docs/assets/data-c66f5cee-1784074877048.js index 37272ae..b7fcb50 100644 --- a/docs/assets/data-efed6b46-1784045078568.js +++ b/docs/assets/data-c66f5cee-1784074877048.js @@ -1 +1 @@ -var I=Object.defineProperty,Z=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var P=(a,e,n)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,g=(a,e)=>{for(var n in e||(e={}))U.call(e,n)&&P(a,n,e[n]);if(R)for(var n of R(e))X.call(e,n)&&P(a,n,e[n]);return a},w=(a,e)=>Z(a,q(e));import{d as V,N as z}from"./townshipBoundaries-1b068bef-1784045078568.js";import{g as E}from"./data-5c83c66b-1784045078568.js";const d=(a,e)=>a.reduce((n,r)=>n+Number(r[e]||0),0),t=(a,e=2)=>Number(Number(a||0).toFixed(e)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},G=["ecological-redline","natural-protected-area"];function K(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(n){e=[]}return(Array.isArray(e)?e:[]).map((n,r)=>({key:n.key||`${n.name||"统计项"}-${r}`,name:n.name||`统计项${r+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function Y(a,e,n,r,o=""){return{key:a,name:e,value:t(n,r==="%"?1:2),unit:r,extra:o}}function T(a=[],e=d(a,"value")){return a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}))}function aa(a=[],e=!1){const n=new Map(V.map((r,o)=>[r,o]));return[...a].sort((r,o)=>{if(e)return Number(o.value||0)-Number(r.value||0);const u=n.has(r.name)?n.get(r.name):999,s=n.has(o.name)?n.get(o.name):999;return u-s||Number(o.value||0)-Number(r.value||0)})}function k(a={},e,n,r="万亩",o={}){const u=aa(K(a[e]),o.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||r}));if(u.length)return o.withPercent===!1?u:T(u);const s=Number(a[n]||0);return s>0?[Y(`${e}-total`,"全县合计",s,r)]:[]}function W(a={},e,n,r,o="万亩",u=6){const s=K(a[e]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||o}));if(s.length)return T(s);const i=Number(a[n]||0);return i>0?[Y(`${e}-total`,r,i,o)]:[]}function x(a){return((a==null?void 0:a.rows)||[]).some(e=>Number(e.value)>0)}const ea=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function na(a="ecological-redline"){const e=a==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ea[e])}function O(a={},e="ecological-redline"){const n=na(e),o=Number(a.scopeAreaWanMu)>0||Number(a.grasslandAreaWanMu)>0||Number(a.wetlandAreaWanMu)>0||Number(a.woodlandAreaWanMu)>0?g(g({},n),a):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{K(o[u]).length||(o[u]=n[u])}),o}function ba(a={},e="ecological-redline"){a=O(a,e);const n=k(a,"grasslandDistribution","grasslandAreaWanMu","万亩"),r=k(a,"wetlandDistribution","wetlandAreaWanMu","万亩"),o=k(a,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=k(a,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=W(a,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=W(a,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=W(a,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=T([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(a.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(a.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(a.woodlandAreaWanMu||0),unit:"万亩"}].filter(H=>Number(H.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,span:1,rows:r},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:o},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(x),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${e}-grassland-level`,title:"草原级占比",type:"bar",variant:"rankBar",span:1,rows:i},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(x)}}function ka(a={},e="ecological-redline"){return a=O(a,e),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:t(a.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(a.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(a.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(a.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((a,e)=>a+String(e.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const Wa=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(a=>({key:a.name,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${a.grasslandAreaWanMu} / 湿地 ${a.wetlandAreaWanMu}`}));p.map(a=>({key:`${a.name}-town`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:a.villages}));const ta=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:z.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:z.general.fillColor}],N=43.66,S=12.48,ra=t(N*(192.26/297.29),2),oa=.06229833103624831,ua=new Map([["瓦切镇",{areaRange:750120,yakNumber:43459,bearingCapacity:44927.54,livestockCapacity:45260,overloadRate:.74,year:"2026"}],["麦洼乡",{areaRange:666075,yakNumber:35773,bearingCapacity:36505.86,livestockCapacity:36776,overloadRate:.74,year:"2026"}],["色地镇",{areaRange:209805,yakNumber:25947,bearingCapacity:26534.58,livestockCapacity:26731,overloadRate:.74,year:"2026"}]]),la={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(a=>w(g({},a),{value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu},householdCount:Number(a.householdCount||0),edibleGrasslandWanTon:t(Number(a.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*ra,2)})),D=l.householdCount-d(c,"householdCount");D&&c[0]&&(c[0].householdCount+=D);c.forEach(a=>{const e=ua.get(a.name),n=Number(e==null?void 0:e.bearingCapacity)||t(Number(a.grasslandAreaWanMu||0)*1e4*oa,0),r=Number(e==null?void 0:e.livestockCapacity)||Number(a.livestockCount||a.yakCount||0),o=Number.isFinite(Number(e==null?void 0:e.overloadRate))?Number(e.overloadRate):n?t((r-n)/n*100,1):0,u=E(o);a.bearingCapacity=n,a.livestockCapacity=r,a.overloadRate=t(o,2),a.balanceLevel=u.label,a.searchText=[a.name,`划定面积${a.protectedAreaWanMu}万亩`,`牦牛${a.yakCount}头`,`牧户${a.householdCount}户`,`超载率${a.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),F=d(c,"livestockCapacity"),j=F-b,A=c.map(a=>Number(a.overloadRate)).filter(a=>Number.isFinite(a));l.balanceOverloadRate=A.length?t(A.reduce((a,e)=>a+e,0)/A.length,2):b?t((F-b)/b*100,2):0;const h=[...c].sort((a,e)=>Number(e.overloadRate||0)-Number(a.overloadRate||0))[0],$=(a,e=d(a,"value"))=>a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}));$([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:a,weightKey:e,unit:n="万亩",decimals:r=2,sortByValue:o=!0})=>{const u=c.flatMap(i=>(la[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${a}`,name:M.name,town:i.name,value:t(Number(i[a]||0)*Number(M[e]||0),r),unit:n}))).filter(i=>Number(i.value)>0),s=o?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return $(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const sa=["瓦切镇","麦洼乡","色地镇"],v=a=>sa.map(e=>a.find(n=>n.name===e)).filter(Boolean),ca=v(c).map(a=>({key:`${a.name}-area`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",extra:`核心 ${a.coreProtectionAreaWanMu} / 一般 ${a.generalControlAreaWanMu}`}));v(c).map(a=>({key:`${a.name}-zoning`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu}}));const ia=v(c).map(a=>({key:`${a.name}-grass-wet-area`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:a.grasslandAreaWanMu,wetland:a.wetlandAreaWanMu}})),ma=v(c).map(a=>({key:`${a.name}-grass-wet-productivity`,name:a.name,value:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N+a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2),unit:"万吨",segments:{grassland:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N,2),wetland:t(a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2)}})),pa=v(c).map(a=>({key:`${a.name}-yak`,name:a.name,value:a.yakCount,unit:"头",extra:`${t(a.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),da=v(c).map(a=>({key:`${a.name}-household`,name:a.name,value:a.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:a.ecologyJobs,peopleCount:a.peopleCount,extra:`公益岗位 ${a.ecologyJobs}户`}));v(c).map(a=>({key:`${a.name}-balance`,name:a.name,value:a.overloadRate,unit:"%",status:a.balanceLevel,extra:`载畜 ${a.livestockCapacity}头`}));const ga=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:E(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(F/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ya=v(c).map(a=>({key:`${a.name}-job`,name:a.name,value:a.ecologyJobs,unit:"户",color:a.name==="麦洼乡"?"#24f6c4":a.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${a.householdCount}户`}));v(c).map(a=>w(g({},a),{key:`${a.name}-ledger`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,B,J;const ha=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(a=>a.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((B=c.find(a=>a.name==="麦洼乡"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((J=c.find(a=>a.name==="色地镇"))==null?void 0:J.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],va=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ja=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function Aa(a){return G.includes(a)?[]:a==="engineering-analysis"?[]:(a==="restoration"?va:ha.slice(0,5)).map((n,r)=>g({icon:n.icon||(r%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const fa={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ia},{key:"park-town-productivity",title:"草地湿地生产力",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万吨",segments:[{key:"grassland",name:"草地生产力",color:"#32dcff"},{key:"wetland",name:"湿地生产力",color:"#8bf7ff"}],rows:ma},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:pa},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:ga}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:$(ta)},{key:"park-town-household",title:"牧户分布",type:"split",rows:da},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ya}]},f=new Map((m.townships||[]).filter(a=>/[乡镇]$/.test(String(a.name||""))).map(a=>[a.name,a])),Q=V.map(a=>{var e,n,r;return{name:a,areaWanMu:((e=f.get(a))==null?void 0:e.areaWanMu)||0,lengthKm:((n=f.get(a))==null?void 0:n.lengthKm)||0,projectCount:((r=f.get(a))==null?void 0:r.projectCount)||0}}),_=(m.projects||[]).map((a,e)=>{const n=Number(a.areaWanMu)>0,r=Number(a.lengthKm)>0,o=n?{value:t(a.areaWanMu,2),unit:"万亩",metric:"治理面积"}:r?{value:t(a.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:a.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(a.measureTypes||[]).join("、"),s=(a.townships||[]).join("、");return{key:a.id||a.projectName,index:e+1,name:a.projectName,projectName:a.projectName,category:a.projectCategory,year:a.year||"未知",areaWanMu:t(a.areaWanMu,4),lengthKm:t(a.lengthKm,2),measure:u,townships:s,subjectFeatureCount:a.subjectFeatureCount||0,value:o.value,unit:o.unit,metric:o.metric,extra:[a.year||"未知",u].filter(Boolean).join(" / "),searchText:[a.projectName,a.projectCategory,a.year,u,s].filter(Boolean).join(" ")}}),Na=_.map((a,e)=>{const n=e%6,r=Math.floor(e/6),o=102.42+n*.045,u=32.55+r*.035,s=.018+Math.min(.024,Number(a.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:a.projectName,project_category:a.category,year:a.year,areaWanMu:a.areaWanMu,lengthKm:a.lengthKm,townships:a.townships,measure:a.measure},geometry:{type:"Polygon",coordinates:[[[o,u],[o+s,u+s*.22],[o+s*.82,u+s],[o-s*.16,u+s*.72],[o,u]]]}}}),Ka={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(a=>({key:a.name,name:`${a.name}`,value:t(a.areaWanMu,2),unit:"万亩",extra:`${a.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,rows:Q.map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu,2),unit:"万亩",extra:`${t(a.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"column",variant:"slim",labelMode:"horizontal",rows:(m.years||[]).filter(a=>Number(a.lengthKm)>0).map(a=>({key:a.name,name:`${a.name}`,value:t(a.lengthKm,2),unit:"公里",extra:`${a.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"column",variant:"projectYear",labelMode:"horizontal",rows:(m.years||[]).filter(a=>a.name!=="未知").map(a=>({key:a.name,name:`${a.name}`,value:a.projectCount,unit:"个",extra:`${t(a.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:_}]},Ta={left:[],right:[]};function Fa(a){return G.includes(a)?{status:"success",title:a==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:a==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:Q.map(e=>({name:e.name,value:t(e.areaWanMu,2),unit:"万亩"}))}:a==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:ca.map(e=>({name:e.name,value:e.value,unit:e.unit,metricLabel:"划定面积"}))}}export{Ta as a,ba as b,ka as c,Aa as d,G as e,ha as f,Fa as g,Wa as h,p as i,va as j,ja as k,Na as l,fa as p,Ka as r}; +var I=Object.defineProperty,Z=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var R=Object.getOwnPropertySymbols;var U=Object.prototype.hasOwnProperty,X=Object.prototype.propertyIsEnumerable;var P=(a,e,n)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n,g=(a,e)=>{for(var n in e||(e={}))U.call(e,n)&&P(a,n,e[n]);if(R)for(var n of R(e))X.call(e,n)&&P(a,n,e[n]);return a},w=(a,e)=>Z(a,q(e));import{d as V,N as z}from"./townshipBoundaries-1b068bef-1784074877048.js";import{g as E}from"./data-5c83c66b-1784074877048.js";const d=(a,e)=>a.reduce((n,r)=>n+Number(r[e]||0),0),t=(a,e=2)=>Number(Number(a||0).toFixed(e)),m={kpi:{projectCount:22,featureCount:29280,subjectFeatureCount:1478,controlPointCount:27802,areaWanMu:175.3693,lengthKm:1250.62,townshipCount:10},categories:[{name:"草地修复",subjectFeatureCount:1067,areaWanMu:168.0339,lengthKm:1238.18,projectCount:13},{name:"林地修复",subjectFeatureCount:244,areaWanMu:7.3354,lengthKm:0,projectCount:6},{name:"湿地修复",subjectFeatureCount:167,areaWanMu:0,lengthKm:12.44,projectCount:3}],measures:[{name:"草原改良",subjectFeatureCount:285,areaWanMu:84.2792,lengthKm:467.5,projectCount:8},{name:"人工种草",subjectFeatureCount:532,areaWanMu:29.1561,lengthKm:0,projectCount:13},{name:"封育治理",subjectFeatureCount:45,areaWanMu:21.2487,lengthKm:0,projectCount:1},{name:"围栏建设",subjectFeatureCount:223,areaWanMu:19.4235,lengthKm:660.88,projectCount:9},{name:"林草碳汇试点",subjectFeatureCount:11,areaWanMu:12.5759,lengthKm:0,projectCount:1},{name:"水源涵养",subjectFeatureCount:82,areaWanMu:5.6993,lengthKm:0,projectCount:1},{name:"人工种草/补播",subjectFeatureCount:46,areaWanMu:2.8162,lengthKm:0,projectCount:4},{name:"防风固沙林",subjectFeatureCount:6,areaWanMu:.1303,lengthKm:0,projectCount:1},{name:"草种繁育",subjectFeatureCount:4,areaWanMu:.04,lengthKm:0,projectCount:1},{name:"种草围栏",subjectFeatureCount:77,areaWanMu:0,lengthKm:109.81,projectCount:1},{name:"小型坝",subjectFeatureCount:8,areaWanMu:0,lengthKm:8.83,projectCount:1},{name:"微型坝",subjectFeatureCount:159,areaWanMu:0,lengthKm:3.61,projectCount:2}],years:[{name:2017,areaWanMu:.1412,lengthKm:0,projectCount:1},{name:2018,areaWanMu:.5608,lengthKm:0,projectCount:1},{name:2019,areaWanMu:12.513,lengthKm:0,projectCount:1},{name:2020,areaWanMu:35.9848,lengthKm:0,projectCount:2},{name:2021,areaWanMu:25.0755,lengthKm:467.5,projectCount:5},{name:2022,areaWanMu:72.024,lengthKm:656.05,projectCount:8},{name:2023,areaWanMu:29.07,lengthKm:114.64,projectCount:3},{name:"未知",areaWanMu:0,lengthKm:12.44,projectCount:2}],townships:[{name:"麦洼乡",areaWanMu:28.5019,lengthKm:84.28,projectCount:3},{name:"龙日镇",areaWanMu:15.8472,lengthKm:46.05,projectCount:2},{name:"安曲镇",areaWanMu:13.1168,lengthKm:0,projectCount:2},{name:"瓦切镇",areaWanMu:6.6824,lengthKm:214.41,projectCount:4},{name:"色地镇",areaWanMu:6.344,lengthKm:101.25,projectCount:3},{name:"刷经寺镇",areaWanMu:5.6528,lengthKm:126.26,projectCount:1},{name:"邛溪镇",areaWanMu:2.3127,lengthKm:101.39,projectCount:4},{name:"阿木乡",areaWanMu:1.34,lengthKm:59.5,projectCount:2},{name:"查尔玛乡",areaWanMu:.7001,lengthKm:37.56,projectCount:1}],projects:[{projectName:"阿坝州红原县2020年退牧还草工程项目",projectCategory:"草地修复",year:2020,areaWanMu:35.6232,lengthKm:0,measureTypes:["人工种草","围栏建设"],townships:[],subjectFeatureCount:73},{projectName:"四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-2022年",projectCategory:"草地修复",year:2022,areaWanMu:21.5,lengthKm:172.31,measureTypes:["人工种草","围栏建设","种草围栏","草原改良"],townships:["刷经寺镇","龙日镇"],subjectFeatureCount:273},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理项目-草原封育治理-700",projectCategory:"草地修复",year:2022,areaWanMu:21.2487,lengthKm:272.25,measureTypes:["围栏建设","封育治理"],townships:["瓦切镇","色地镇","邛溪镇"],subjectFeatureCount:90},{projectName:"四川省阿坝州 2023 年中央财政林业草原改革发展资金预算(第三批)——红原县草原生态修复项目",projectCategory:"草地修复",year:2023,areaWanMu:18.79,lengthKm:32.32,measureTypes:["人工种草","围栏建设","草原改良","草种繁育"],townships:["瓦切镇","麦洼乡"],subjectFeatureCount:102},{projectName:"阿坝州红原县2022年第二批重点生态保护和修护治理——红原县林草碳汇创新开发建设试点项目",projectCategory:"草地修复",year:2022,areaWanMu:12.5759,lengthKm:0,measureTypes:["林草碳汇试点"],townships:["安曲镇"],subjectFeatureCount:11},{projectName:"四川省红原县2019年草原生态修复治理项目退化草地治理和天然草原改良",projectCategory:"草地修复",year:2019,areaWanMu:12.513,lengthKm:0,measureTypes:["人工种草/补播","草原改良"],townships:[],subjectFeatureCount:25},{projectName:"阿坝州红原县2021年若尔盖—甘南草原湿地生态保护和修复项目-1880",projectCategory:"草地修复",year:2021,areaWanMu:11.0031,lengthKm:467.5,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:229},{projectName:"2023 年度四川省阿坝州若尔盖草原湿地水源涵养生态保护和修复项目(红原县部分)-1315",projectCategory:"草地修复",year:2023,areaWanMu:10.28,lengthKm:82.32,measureTypes:["人工种草","围栏建设","草原改良"],townships:["查尔玛乡","麦洼乡"],subjectFeatureCount:50},{projectName:"阿坝州红原县 2022 年中央财政林业草原生态保护恢复(第二批)——草原生态修复治理补助项目-1972",projectCategory:"草地修复",year:2022,areaWanMu:8.2,lengthKm:113.37,measureTypes:["围栏建设","草原改良","人工种草"],townships:["色地镇","邛溪镇","阿木乡"],subjectFeatureCount:127},{projectName:"阿坝州红原县2021年省级草原生态保护恢复项目-1790",projectCategory:"草地修复",year:2021,areaWanMu:7,lengthKm:0,measureTypes:["人工种草","草原改良"],townships:[],subjectFeatureCount:16},{projectName:"阿坝州红原县 2021 年中央财政林业草原生态保护恢复项目-984",projectCategory:"草地修复",year:2021,areaWanMu:6.5,lengthKm:0,measureTypes:["草原改良","人工种草"],townships:[],subjectFeatureCount:14},{projectName:"红原县2022年度黄河上游水源涵养补给区综合治理项目实施方案(代作业设计)变更后最终版",projectCategory:"林地修复",year:2022,areaWanMu:5.6993,lengthKm:0,measureTypes:["水源涵养"],townships:["安曲镇","瓦切镇"],subjectFeatureCount:82},{projectName:"阿坝州红原县 2022 年第二批重点生态保护和修护治理——草原生态修复治理项目-1500",projectCategory:"草地修复",year:2022,areaWanMu:2,lengthKm:81.05,measureTypes:["人工种草","围栏建设"],townships:["瓦切镇","色地镇","麦洼乡"],subjectFeatureCount:53},{projectName:"阿坝州红原县 2022 年省级林业草原生态保护恢复——草原生态修复治理补助项目-888",projectCategory:"草地修复",year:2022,areaWanMu:.8,lengthKm:17.07,measureTypes:["人工种草","围栏建设"],townships:["阿木乡"],subjectFeatureCount:4},{projectName:"红原县2018年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2018,areaWanMu:.5608,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:107},{projectName:"红原县2021年黄河上游水源涵养补给区生态综合治理项目",projectCategory:"林地修复",year:2021,areaWanMu:.5224,lengthKm:0,measureTypes:["人工种草/补播"],townships:["邛溪镇"],subjectFeatureCount:14},{projectName:"红原县2020年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2020,areaWanMu:.3617,lengthKm:0,measureTypes:["人工种草","人工种草/补播"],townships:[],subjectFeatureCount:31},{projectName:"2017年川西高原生态脆弱区综合治理项目",projectCategory:"林地修复",year:2017,areaWanMu:.1412,lengthKm:0,measureTypes:["人工种草","防风固沙林"],townships:["邛溪镇"],subjectFeatureCount:8},{projectName:"红原县2021年人工造林封山育林项目",projectCategory:"林地修复",year:2021,areaWanMu:.05,lengthKm:0,measureTypes:["围栏建设"],townships:[],subjectFeatureCount:2},{projectName:"4980小型坝(1)(1)",projectCategory:"湿地修复",year:"未知",areaWanMu:0,lengthKm:8.83,measureTypes:["小型坝"],townships:[],subjectFeatureCount:8},{projectName:"红原县蓄水保湿工程-小型坝和微型坝(1)(1)",projectCategory:"湿地修复",year:2023,areaWanMu:0,lengthKm:3.61,measureTypes:["微型坝"],townships:[],subjectFeatureCount:59},{projectName:"4980微型坝成型(1)(1)",projectCategory:"湿地修复",year:2022,areaWanMu:0,lengthKm:0,measureTypes:["微型坝"],townships:[],subjectFeatureCount:100}]},G=["ecological-redline","natural-protected-area"];function K(a=[]){let e=a;if(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e&&(e=e.value),typeof e=="string")try{e=JSON.parse(e)}catch(n){e=[]}return(Array.isArray(e)?e:[]).map((n,r)=>({key:n.key||`${n.name||"统计项"}-${r}`,name:n.name||`统计项${r+1}`,value:t(n.value,2),unit:n.unit||"万亩",color:n.color,extra:n.extra||"",icon:n.icon||""}))}function Y(a,e,n,r,o=""){return{key:a,name:e,value:t(n,r==="%"?1:2),unit:r,extra:o}}function T(a=[],e=d(a,"value")){return a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}))}function aa(a=[],e=!1){const n=new Map(V.map((r,o)=>[r,o]));return[...a].sort((r,o)=>{if(e)return Number(o.value||0)-Number(r.value||0);const u=n.has(r.name)?n.get(r.name):999,s=n.has(o.name)?n.get(o.name):999;return u-s||Number(o.value||0)-Number(r.value||0)})}function k(a={},e,n,r="万亩",o={}){const u=aa(K(a[e]),o.sortByValue===!0).filter(i=>Number(i.value)>0).map(i=>w(g({},i),{unit:i.unit||r}));if(u.length)return o.withPercent===!1?u:T(u);const s=Number(a[n]||0);return s>0?[Y(`${e}-total`,"全县合计",s,r)]:[]}function W(a={},e,n,r,o="万亩",u=6){const s=K(a[e]).filter(y=>Number(y.value)>0).slice(0,u).map(y=>w(g({},y),{unit:y.unit||o}));if(s.length)return T(s);const i=Number(a[n]||0);return i>0?[Y(`${e}-total`,r,i,o)]:[]}function x(a){return((a==null?void 0:a.rows)||[]).some(e=>Number(e.value)>0)}const ea=Object.freeze({"ecological-redline":{scopeKey:"ecological-redline",scopeName:"生态保护红线",scopeAreaWanMu:537.12,sourceFeatureCount:374,grasslandAreaWanMu:338.87,wetlandAreaWanMu:88.34,woodlandAreaWanMu:69.14,grasslandFreshYieldWanTon:84.83,wetlandFreshYieldWanTon:.54,grasslandMuYieldJin:500.66,wetlandMuYieldJin:12.18,grasslandVegetationCoverPercent:86,grasslandPatchCount:8061,wetlandPatchCount:3458,woodlandPatchCount:37868,grasslandDistribution:[{name:"邛溪镇",value:30.2,unit:"万亩"},{name:"刷经寺镇",value:5.75,unit:"万亩"},{name:"龙日镇",value:9.82,unit:"万亩"},{name:"安曲镇",value:35.4,unit:"万亩"},{name:"色地镇",value:42.52,unit:"万亩"},{name:"瓦切镇",value:94.25,unit:"万亩"},{name:"麦洼乡",value:66.61,unit:"万亩"},{name:"阿木乡",value:33.87,unit:"万亩"},{name:"查尔玛乡",value:20.45,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:9.6,unit:"万亩"},{name:"刷经寺镇",value:2.8,unit:"万亩"},{name:"龙日镇",value:3.12,unit:"万亩"},{name:"安曲镇",value:7.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:24.6,unit:"万亩"},{name:"麦洼乡",value:14.8,unit:"万亩"},{name:"阿木乡",value:6.4,unit:"万亩"},{name:"查尔玛乡",value:4.6,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:16.4,unit:"万亩"},{name:"刷经寺镇",value:3.2,unit:"万亩"},{name:"龙日镇",value:1.4,unit:"万亩"},{name:"安曲镇",value:14.8,unit:"万亩"},{name:"色地镇",value:6.9,unit:"万亩"},{name:"瓦切镇",value:4.7,unit:"万亩"},{name:"麦洼乡",value:9.8,unit:"万亩"},{name:"阿木乡",value:11.2,unit:"万亩"},{name:"查尔玛乡",value:.74,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:487,unit:"斤/亩"},{name:"刷经寺镇",value:488,unit:"斤/亩"},{name:"龙日镇",value:509,unit:"斤/亩"},{name:"安曲镇",value:514,unit:"斤/亩"},{name:"色地镇",value:492,unit:"斤/亩"},{name:"瓦切镇",value:518,unit:"斤/亩"},{name:"麦洼乡",value:506,unit:"斤/亩"},{name:"阿木乡",value:503,unit:"斤/亩"},{name:"查尔玛乡",value:496,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:210.32,unit:"万亩"},{name:"山地草甸",value:61.45,unit:"万亩"},{name:"沼泽草甸",value:38.26,unit:"万亩"},{name:"高寒草原",value:21.84,unit:"万亩"},{name:"灌丛草甸",value:7,unit:"万亩"}],zoningStructure:[{name:"水源涵养",value:537.12,unit:"万亩"}],grasslandLevels:[{name:"5级草原",value:175.5,unit:"万亩"},{name:"4级草原",value:79.01,unit:"万亩"},{name:"6级草原",value:74.36,unit:"万亩"},{name:"7级草原",value:8.91,unit:"万亩"},{name:"8级草原",value:1.05,unit:"万亩"},{name:"3级草原",value:.03,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:49.13,unit:"万亩"},{name:"乔木林地",value:16.61,unit:"万亩"},{name:"灌丛沼泽",value:2.48,unit:"万亩"},{name:"其他林地",value:.92,unit:"万亩"}],woodlandQuality:[{name:"4级",value:36.74,unit:"万亩"},{name:"3级",value:25.75,unit:"万亩"},{name:"5级",value:3.9,unit:"万亩"},{name:"未定级",value:2.49,unit:"万亩"},{name:"2级",value:.26,unit:"万亩"}],vegetationCoverBands:[{name:"80%-89%",value:226.68,unit:"万亩"},{name:"90%以上",value:112.19,unit:"万亩"}]},"natural-protected-area":{scopeKey:"natural-protected-area",scopeName:"自然保护地",scopeAreaWanMu:160.34,sourceFeatureCount:3,grasslandAreaWanMu:74.31,wetlandAreaWanMu:46.82,woodlandAreaWanMu:2.23,grasslandFreshYieldWanTon:21.67,wetlandFreshYieldWanTon:.31,grasslandMuYieldJin:583.23,wetlandMuYieldJin:13.27,grasslandVegetationCoverPercent:90.9,grasslandPatchCount:1637,wetlandPatchCount:1607,woodlandPatchCount:2066,grasslandDistribution:[{name:"邛溪镇",value:2.5,unit:"万亩"},{name:"安曲镇",value:1.9,unit:"万亩"},{name:"色地镇",value:16.22,unit:"万亩"},{name:"瓦切镇",value:32.07,unit:"万亩"},{name:"麦洼乡",value:19.66,unit:"万亩"},{name:"阿木乡",value:1.1,unit:"万亩"},{name:"查尔玛乡",value:.86,unit:"万亩"}],wetlandDistribution:[{name:"邛溪镇",value:4.8,unit:"万亩"},{name:"安曲镇",value:3.2,unit:"万亩"},{name:"色地镇",value:15.22,unit:"万亩"},{name:"瓦切镇",value:11.73,unit:"万亩"},{name:"麦洼乡",value:6.52,unit:"万亩"},{name:"阿木乡",value:2.5,unit:"万亩"},{name:"查尔玛乡",value:2.85,unit:"万亩"}],woodlandDistribution:[{name:"邛溪镇",value:.28,unit:"万亩"},{name:"安曲镇",value:.16,unit:"万亩"},{name:"色地镇",value:.73,unit:"万亩"},{name:"瓦切镇",value:.4,unit:"万亩"},{name:"麦洼乡",value:.54,unit:"万亩"},{name:"阿木乡",value:.08,unit:"万亩"},{name:"查尔玛乡",value:.04,unit:"万亩"}],grasslandProductivity:[{name:"邛溪镇",value:566,unit:"斤/亩"},{name:"安曲镇",value:579,unit:"斤/亩"},{name:"色地镇",value:572,unit:"斤/亩"},{name:"瓦切镇",value:596,unit:"斤/亩"},{name:"麦洼乡",value:584,unit:"斤/亩"},{name:"阿木乡",value:561,unit:"斤/亩"},{name:"查尔玛乡",value:575,unit:"斤/亩"}],grasslandTypes:[{name:"高寒草甸",value:42.65,unit:"万亩"},{name:"沼泽草甸",value:15.21,unit:"万亩"},{name:"山地草甸",value:10.48,unit:"万亩"},{name:"高寒草原",value:4.23,unit:"万亩"},{name:"灌丛草甸",value:1.74,unit:"万亩"}],zoningStructure:[{name:"核心保护区",value:121.44,unit:"万亩"},{name:"一般控制区",value:38.9,unit:"万亩"}],grasslandLevels:[{name:"4级草原",value:35.48,unit:"万亩"},{name:"5级草原",value:33.67,unit:"万亩"},{name:"6级草原",value:5.05,unit:"万亩"},{name:"7级草原",value:.08,unit:"万亩"},{name:"3级草原",value:.02,unit:"万亩"}],woodlandTypes:[{name:"灌木林地",value:1.27,unit:"万亩"},{name:"灌丛沼泽",value:.87,unit:"万亩"},{name:"乔木林地",value:.09,unit:"万亩"}],woodlandQuality:[{name:"未定级",value:.87,unit:"万亩"},{name:"4级",value:.81,unit:"万亩"},{name:"3级",value:.51,unit:"万亩"},{name:"5级",value:.04,unit:"万亩"}],vegetationCoverBands:[{name:"90%以上",value:55.12,unit:"万亩"},{name:"80%-89%",value:19.19,unit:"万亩"}]}});function na(a="ecological-redline"){const e=a==="natural-protected-area"?"natural-protected-area":"ecological-redline";return structuredClone(ea[e])}function O(a={},e="ecological-redline"){const n=na(e),o=Number(a.scopeAreaWanMu)>0||Number(a.grasslandAreaWanMu)>0||Number(a.wetlandAreaWanMu)>0||Number(a.woodlandAreaWanMu)>0?g(g({},n),a):n;return["zoningStructure","grasslandLevels","woodlandTypes","woodlandQuality","vegetationCoverBands","grasslandDistribution","wetlandDistribution","woodlandDistribution","grasslandProductivity","grasslandTypes"].forEach(u=>{K(o[u]).length||(o[u]=n[u])}),o}function ba(a={},e="ecological-redline"){a=O(a,e);const n=k(a,"grasslandDistribution","grasslandAreaWanMu","万亩"),r=k(a,"wetlandDistribution","wetlandAreaWanMu","万亩"),o=k(a,"woodlandDistribution","woodlandAreaWanMu","万亩",{sortByValue:!0}),u=k(a,"grasslandProductivity","grasslandMuYieldJin","斤/亩",{withPercent:!1}),s=W(a,"grasslandTypes","grasslandAreaWanMu","草地面积"),i=W(a,"grasslandLevels","grasslandAreaWanMu","草地面积"),y=W(a,"woodlandQuality","woodlandAreaWanMu","林地面积"),M=T([{key:`${e}-scope-grassland`,name:"草地资源",value:Number(a.grasslandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-wetland`,name:"湿地资源",value:Number(a.wetlandAreaWanMu||0),unit:"万亩"},{key:`${e}-scope-woodland`,name:"林地资源",value:Number(a.woodlandAreaWanMu||0),unit:"万亩"}].filter(H=>Number(H.value)>0));return{left:[{key:`${e}-grassland-distribution`,title:"草地分布",type:"column",variant:"plain",labelMode:"horizontal",scrollable:!1,span:1,rows:n},{key:`${e}-wetland-distribution`,title:"湿地面积",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,span:1,rows:r},{key:`${e}-woodland-distribution`,title:"林地分布",type:"split",variant:"compact",span:1,rows:o},{key:`${e}-grassland-productivity`,title:"草地生产力",type:"line",fixedType:!0,labelMode:"horizontal",span:1,rows:u}].filter(x),right:[{key:`${e}-grassland-type`,title:"草原类型",type:"donut",variant:"ring",span:1,rows:s},{key:`${e}-grassland-level`,title:"草原级占比",type:"bar",variant:"rankBar",span:1,rows:i},{key:`${e}-woodland-quality`,title:"林地质量",type:"heat",limit:6,span:1,rows:y},{key:`${e}-resource-structure`,title:"林草湿面积构成",type:"structure",span:1,rows:M}].filter(x)}}function ka(a={},e="ecological-redline"){return a=O(a,e),[{zh:`${e==="natural-protected-area"?"保护地":"红线"}面积`,value:t(a.scopeAreaWanMu,2),unit:"万亩",decimals:2,icon:"park"},{zh:"草地面积",value:t(a.grasslandAreaWanMu,2),unit:"万亩",decimals:2,icon:"grass-basic"},{zh:"湿地面积",value:t(a.wetlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"wetland"},{zh:"林地面积",value:t(a.woodlandAreaWanMu,2),unit:"万亩",decimals:2,icon:"forest"}]}const p=[{name:"瓦切镇",protectedAreaWanMu:75.01,coreProtectionAreaWanMu:31.65,generalControlAreaWanMu:43.36,grasslandAreaWanMu:32.07,wetlandAreaWanMu:11.73,ecologyJobs:160,householdCount:1400,peopleCount:6375,yakCount:43459,livestockCount:45260,cover:85,villages:"唐日村、德香村、日干村、色永村、曲登塘社区"},{name:"麦洼乡",protectedAreaWanMu:66.61,coreProtectionAreaWanMu:28.1,generalControlAreaWanMu:38.51,grasslandAreaWanMu:19.66,wetlandAreaWanMu:6.52,ecologyJobs:179,householdCount:1049,peopleCount:4857,yakCount:35773,livestockCount:36776,cover:85,villages:"洞拉村、滚塘村"},{name:"色地镇",protectedAreaWanMu:20.98,coreProtectionAreaWanMu:8.85,generalControlAreaWanMu:12.13,grasslandAreaWanMu:42.52,wetlandAreaWanMu:15.22,ecologyJobs:39,householdCount:405,peopleCount:1692,yakCount:25947,livestockCount:26731,cover:86,villages:"让里村、茸塔玛村"}],l={name:"若尔盖国家公园红原区域",nationalParkTotalAreaWanMu:1250.4,hongyuanDelimitedAreaWanMu:162.55,totalAreaWanMu:162.55,grasslandAreaWanMu:94.25,wetlandAreaWanMu:33.47,woodlandAreaWanMu:null,woodlandDataStatus:"待接入",vegetationCoverage:t(d(p,"cover")/p.length,1),townCount:p.length,villageCount:p.reduce((a,e)=>a+String(e.villages||"").split("、").filter(Boolean).length,0),householdCount:d(p,"householdCount"),peopleCount:d(p,"peopleCount"),ecologyJobCount:d(p,"ecologyJobs"),yakCount:d(p,"yakCount"),livestockCount:d(p,"livestockCount")};l.otherProtectedAreaWanMu=t(l.totalAreaWanMu-l.grasslandAreaWanMu-l.wetlandAreaWanMu,2);const Wa=[{key:"park-national-area",name:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",icon:"park"},{key:"park-hongyuan-area",name:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",icon:"park"},{key:"park-yak-count",name:"牦牛数量",value:l.yakCount,unit:"头",icon:"stack"}];p.map(a=>({key:a.name,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:`草地 ${a.grasslandAreaWanMu} / 湿地 ${a.wetlandAreaWanMu}`}));p.map(a=>({key:`${a.name}-town`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",extra:a.villages}));const ta=[{key:"core-protection",name:"核心保护区",value:68.6,unit:"万亩",color:z.core.fillColor},{key:"general-control",name:"一般控制区",value:94,unit:"万亩",color:z.general.fillColor}],N=43.66,S=12.48,ra=t(N*(192.26/297.29),2),oa=.06229833103624831,ua=new Map([["瓦切镇",{areaRange:750120,yakNumber:43459,bearingCapacity:44927.54,livestockCapacity:45260,overloadRate:.74,year:"2026"}],["麦洼乡",{areaRange:666075,yakNumber:35773,bearingCapacity:36505.86,livestockCapacity:36776,overloadRate:.74,year:"2026"}],["色地镇",{areaRange:209805,yakNumber:25947,bearingCapacity:26534.58,livestockCapacity:26731,overloadRate:.74,year:"2026"}]]),la={麦洼乡:[{name:"洞拉村",grassland:.632,wetland:.632,household:.5643,yak:.545,edible:.632,woodland:.632},{name:"滚塘村",grassland:.368,wetland:.368,household:.4357,yak:.455,edible:.368,woodland:.368}],瓦切镇:[{name:"唐日村",grassland:.3059,wetland:.3059,household:.1957,yak:.2843,edible:.3059,woodland:.3059},{name:"德香村",grassland:.2369,wetland:.2369,household:.2679,yak:.2848,edible:.2369,woodland:.2369},{name:"日干村",grassland:.1603,wetland:.1603,household:.2071,yak:.2107,edible:.1603,woodland:.1603},{name:"色永村",grassland:.2969,wetland:.2969,household:.2607,yak:.2202,edible:.2969,woodland:.2969},{name:"曲登塘社区",grassland:0,wetland:0,household:.0679,yak:0,edible:0,woodland:0}],色地镇:[{name:"让里村",grassland:.4623,wetland:.4623,household:.7309,yak:.6411,edible:.4623,woodland:.4623},{name:"茸塔玛村",grassland:.5377,wetland:.5377,household:.2691,yak:.3589,edible:.5377,woodland:.5377}]},c=p.map(a=>w(g({},a),{value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu},householdCount:Number(a.householdCount||0),edibleGrasslandWanTon:t(Number(a.grasslandAreaWanMu||0)/Math.max(l.grasslandAreaWanMu,1)*ra,2)})),D=l.householdCount-d(c,"householdCount");D&&c[0]&&(c[0].householdCount+=D);c.forEach(a=>{const e=ua.get(a.name),n=Number(e==null?void 0:e.bearingCapacity)||t(Number(a.grasslandAreaWanMu||0)*1e4*oa,0),r=Number(e==null?void 0:e.livestockCapacity)||Number(a.livestockCount||a.yakCount||0),o=Number.isFinite(Number(e==null?void 0:e.overloadRate))?Number(e.overloadRate):n?t((r-n)/n*100,1):0,u=E(o);a.bearingCapacity=n,a.livestockCapacity=r,a.overloadRate=t(o,2),a.balanceLevel=u.label,a.searchText=[a.name,`划定面积${a.protectedAreaWanMu}万亩`,`牦牛${a.yakCount}头`,`牧户${a.householdCount}户`,`超载率${a.overloadRate}%`].join(" ")});const b=d(c,"bearingCapacity"),F=d(c,"livestockCapacity"),j=F-b,A=c.map(a=>Number(a.overloadRate)).filter(a=>Number.isFinite(a));l.balanceOverloadRate=A.length?t(A.reduce((a,e)=>a+e,0)/A.length,2):b?t((F-b)/b*100,2):0;const h=[...c].sort((a,e)=>Number(e.overloadRate||0)-Number(a.overloadRate||0))[0],$=(a,e=d(a,"value"))=>a.map(n=>w(g({},n),{extra:n.extra||`占比 ${t(Number(n.value||0)/Math.max(e,1)*100,1)}%`}));$([{key:"park-scope-grassland",name:"草地",value:l.grasslandAreaWanMu,unit:"万亩"},{key:"park-scope-wetland",name:"湿地",value:l.wetlandAreaWanMu,unit:"万亩"},{key:"park-scope-other",name:"其他保护范围",value:l.otherProtectedAreaWanMu,unit:"万亩"}]);const C=({sourceKey:a,weightKey:e,unit:n="万亩",decimals:r=2,sortByValue:o=!0})=>{const u=c.flatMap(i=>(la[i.name]||[]).map(M=>({key:`${i.name}-${M.name}-${a}`,name:M.name,town:i.name,value:t(Number(i[a]||0)*Number(M[e]||0),r),unit:n}))).filter(i=>Number(i.value)>0),s=o?u.sort((i,y)=>Number(y.value||0)-Number(i.value||0)):u;return $(s)};C({sourceKey:"wetlandAreaWanMu",weightKey:"wetland",sortByValue:!1});C({sourceKey:"grasslandAreaWanMu",weightKey:"grassland"});C({sourceKey:"householdCount",weightKey:"household",unit:"户",decimals:0});C({sourceKey:"yakCount",weightKey:"yak",unit:"头",decimals:0});C({sourceKey:"edibleGrasslandWanTon",weightKey:"edible",unit:"万吨"});C({sourceKey:"wetlandAreaWanMu",weightKey:"woodland"});const sa=["瓦切镇","麦洼乡","色地镇"],v=a=>sa.map(e=>a.find(n=>n.name===e)).filter(Boolean),ca=v(c).map(a=>({key:`${a.name}-area`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",extra:`核心 ${a.coreProtectionAreaWanMu} / 一般 ${a.generalControlAreaWanMu}`}));v(c).map(a=>({key:`${a.name}-zoning`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",segments:{core:a.coreProtectionAreaWanMu,general:a.generalControlAreaWanMu}}));const ia=v(c).map(a=>({key:`${a.name}-grass-wet-area`,name:a.name,value:t(a.grasslandAreaWanMu+a.wetlandAreaWanMu,2),unit:"万亩",segments:{grassland:a.grasslandAreaWanMu,wetland:a.wetlandAreaWanMu}})),ma=v(c).map(a=>({key:`${a.name}-grass-wet-productivity`,name:a.name,value:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N+a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2),unit:"万吨",segments:{grassland:t(a.grasslandAreaWanMu/Math.max(l.grasslandAreaWanMu,1)*N,2),wetland:t(a.wetlandAreaWanMu/Math.max(l.wetlandAreaWanMu,1)*S,2)}})),pa=v(c).map(a=>({key:`${a.name}-yak`,name:a.name,value:a.yakCount,unit:"头",extra:`${t(a.yakCount/Math.max(l.yakCount,1)*100,1)}%`})),da=v(c).map(a=>({key:`${a.name}-household`,name:a.name,value:a.householdCount,unit:"户",metricLabel:"牧户",ecologyJobs:a.ecologyJobs,peopleCount:a.peopleCount,extra:`公益岗位 ${a.ecologyJobs}户`}));v(c).map(a=>({key:`${a.name}-balance`,name:a.name,value:a.overloadRate,unit:"%",status:a.balanceLevel,extra:`载畜 ${a.livestockCapacity}头`}));const ga=[{key:"park-balance-overload-rate",name:"超载率",value:l.balanceOverloadRate,unit:"%",status:E(l.balanceOverloadRate).label,color:"#24f6c4"}];t(b/1e4,2),t(F/1e4,2),j>=0,t(Math.abs(j)/1e4,2),j>=0,`${(h==null?void 0:h.name)||"重点乡镇"}`,t((h==null?void 0:h.overloadRate)||0,2),h!=null&&h.balanceLevel;const ya=v(c).map(a=>({key:`${a.name}-job`,name:a.name,value:a.ecologyJobs,unit:"户",color:a.name==="麦洼乡"?"#24f6c4":a.name==="瓦切镇"?"#32dcff":"#8bf7ff",extra:`牧户 ${a.householdCount}户`}));v(c).map(a=>w(g({},a),{key:`${a.name}-ledger`,name:a.name,value:a.protectedAreaWanMu,unit:"万亩",canLocate:!0}));var L,B,J;const ha=[{zh:"四川片区面积",value:l.nationalParkTotalAreaWanMu,unit:"万亩",decimals:2,icon:"area"},{zh:"红原县划定面积",value:l.hongyuanDelimitedAreaWanMu,unit:"万亩",decimals:2,icon:"park"},{zh:"牦牛数量",value:l.yakCount,unit:"头",decimals:0,icon:"stack"},{zh:"牧户数量",value:l.householdCount,unit:"户",decimals:0,icon:"town"},{zh:"公益岗位",value:l.ecologyJobCount,unit:"户",decimals:0,icon:"certificate"},{zh:"瓦切镇面积",value:((L=c.find(a=>a.name==="瓦切镇"))==null?void 0:L.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"麦洼乡面积",value:((B=c.find(a=>a.name==="麦洼乡"))==null?void 0:B.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"色地镇面积",value:((J=c.find(a=>a.name==="色地镇"))==null?void 0:J.protectedAreaWanMu)||0,unit:"万亩",decimals:2,icon:"area"},{zh:"草地面积",value:l.grasslandAreaWanMu,unit:"万亩",decimals:2,icon:"leaf"},{zh:"湿地面积",value:l.wetlandAreaWanMu,unit:"万亩",decimals:2,icon:"wetland"}],va=[{zh:"修复项目",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"治理面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}],ja=[{zh:"项目库工程",value:m.kpi.projectCount,unit:"个",decimals:0},{zh:"可比对图斑",value:m.kpi.featureCount,unit:"个",decimals:0},{zh:"项目面积",value:m.kpi.areaWanMu,unit:"万亩",decimals:2},{zh:"工程长度",value:m.kpi.lengthKm,unit:"公里",decimals:2}];function Aa(a){return G.includes(a)?[]:a==="engineering-analysis"?[]:(a==="restoration"?va:ha.slice(0,5)).map((n,r)=>g({icon:n.icon||(r%2===0?"xiaoshoujine":"zongxiaoliang"),en:""},n))}const fa={left:[{key:"park-town-grass-wet-area",title:"草地湿地面积分布",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万亩",segments:[{key:"grassland",name:"草地面积",color:"#24f6c4"},{key:"wetland",name:"湿地面积",color:"#8bf7ff"}],rows:ia},{key:"park-town-productivity",title:"草地湿地生产力",type:"stackColumn",variant:"parkSlim",showValue:!0,sharedScale:!0,unit:"万吨",segments:[{key:"grassland",name:"草地生产力",color:"#32dcff"},{key:"wetland",name:"湿地生产力",color:"#8bf7ff"}],rows:ma},{key:"park-town-yak",title:"乡镇牦牛数量",type:"bar",variant:"parkBar",rows:pa},{key:"park-town-balance",title:"草畜平衡超载率",type:"balanceGaugeGrid",limit:1,rows:ga}],right:[{key:"park-zoning-structure",title:"红原管控区结构",type:"donut",rows:$(ta)},{key:"park-town-household",title:"牧户分布",type:"split",rows:da},{key:"park-town-ecology-job",title:"公益岗位分布",type:"column",variant:"plain",rows:ya}]},f=new Map((m.townships||[]).filter(a=>/[乡镇]$/.test(String(a.name||""))).map(a=>[a.name,a])),Q=V.map(a=>{var e,n,r;return{name:a,areaWanMu:((e=f.get(a))==null?void 0:e.areaWanMu)||0,lengthKm:((n=f.get(a))==null?void 0:n.lengthKm)||0,projectCount:((r=f.get(a))==null?void 0:r.projectCount)||0}}),_=(m.projects||[]).map((a,e)=>{const n=Number(a.areaWanMu)>0,r=Number(a.lengthKm)>0,o=n?{value:t(a.areaWanMu,2),unit:"万亩",metric:"治理面积"}:r?{value:t(a.lengthKm,2),unit:"公里",metric:"工程长度"}:{value:a.subjectFeatureCount||0,unit:"个",metric:"主体要素"},u=(a.measureTypes||[]).join("、"),s=(a.townships||[]).join("、");return{key:a.id||a.projectName,index:e+1,name:a.projectName,projectName:a.projectName,category:a.projectCategory,year:a.year||"未知",areaWanMu:t(a.areaWanMu,4),lengthKm:t(a.lengthKm,2),measure:u,townships:s,subjectFeatureCount:a.subjectFeatureCount||0,value:o.value,unit:o.unit,metric:o.metric,extra:[a.year||"未知",u].filter(Boolean).join(" / "),searchText:[a.projectName,a.projectCategory,a.year,u,s].filter(Boolean).join(" ")}}),Na=_.map((a,e)=>{const n=e%6,r=Math.floor(e/6),o=102.42+n*.045,u=32.55+r*.035,s=.018+Math.min(.024,Number(a.areaWanMu||0)/1200);return{type:"Feature",properties:{project_name:a.projectName,project_category:a.category,year:a.year,areaWanMu:a.areaWanMu,lengthKm:a.lengthKm,townships:a.townships,measure:a.measure},geometry:{type:"Polygon",coordinates:[[[o,u],[o+s,u+s*.22],[o+s*.82,u+s],[o-s*.16,u+s*.72],[o,u]]]}}}),Ka={left:[{key:"restoration-year-area",title:"治理面积分布",type:"line",labelMode:"horizontal",rows:(m.years||[]).map(a=>({key:a.name,name:`${a.name}`,value:t(a.areaWanMu,2),unit:"万亩",extra:`${a.projectCount||0}个项目`}))},{key:"restoration-town-area",title:"乡镇治理面积分布",type:"column",variant:"water",labelMode:"horizontal",scrollable:!1,rows:Q.map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu,2),unit:"万亩",extra:`${t(a.lengthKm,2)}公里`}))},{key:"restoration-category",title:"修复类型占比",type:"donut",rows:(m.categories||[]).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.subjectFeatureCount}个图斑`}))},{key:"restoration-year-length",title:"年度工程长度",type:"column",variant:"slim",labelMode:"horizontal",rows:(m.years||[]).filter(a=>Number(a.lengthKm)>0).map(a=>({key:a.name,name:`${a.name}`,value:t(a.lengthKm,2),unit:"公里",extra:`${a.projectCount||0}个项目`}))}],right:[{key:"restoration-measure-area",title:"修复措施统计",type:"structure",rows:(m.measures||[]).slice(0,8).map(a=>({key:a.name,name:a.name,value:t(a.areaWanMu||a.lengthKm||a.subjectFeatureCount,2),unit:a.areaWanMu?"万亩":a.lengthKm?"公里":"个",extra:`${a.projectCount}个项目`}))},{key:"restoration-year-project",title:"年度项目数量",type:"column",variant:"projectYear",labelMode:"horizontal",rows:(m.years||[]).filter(a=>a.name!=="未知").map(a=>({key:a.name,name:`${a.name}`,value:a.projectCount,unit:"个",extra:`${t(a.areaWanMu,2)}万亩`}))},{key:"restoration-projects",title:"重点项目库",type:"projectTable",span:2,columns:[{key:"name",label:"项目名称",field:"name",width:"58%",className:"business-project-col-name"},{key:"year",label:"年份",field:"year",width:"16%",fallback:"未知",align:"right",className:"business-project-col-year"},{key:"category",label:"类型",field:"category",width:"26%",className:"business-project-col-category"}],rows:_}]},Ta={left:[],right:[]};function Fa(a){return G.includes(a)?{status:"success",title:a==="natural-protected-area"?"自然保护地":"生态保护红线",metricLabel:"",unit:"",rows:[]}:a==="restoration"?{status:"success",title:"乡镇治理排行",metricLabel:"治理面积",unit:"万亩",rows:Q.map(e=>({name:e.name,value:t(e.areaWanMu,2),unit:"万亩"}))}:a==="engineering-analysis"?{status:"success",title:"工程分析",metricLabel:"",unit:"",rows:[]}:{status:"success",title:"国家公园乡镇划定面积",scope:"town",hideTownNames:!1,onlyRankedTownLabels:!0,metricLabel:"划定面积",unit:"万亩",rows:ca.map(e=>({name:e.name,value:e.value,unit:e.unit,metricLabel:"划定面积"}))}}export{Ta as a,ba as b,ka as c,Aa as d,G as e,ha as f,Fa as g,Wa as h,p as i,va as j,ja as k,Na as l,fa as p,Ka as r}; diff --git a/docs/assets/data-881b212b-1784045078568.js b/docs/assets/data-d4fc629d-1784074877048.js similarity index 97% rename from docs/assets/data-881b212b-1784045078568.js rename to docs/assets/data-d4fc629d-1784074877048.js index 4732400..933a2a9 100644 --- a/docs/assets/data-881b212b-1784045078568.js +++ b/docs/assets/data-d4fc629d-1784074877048.js @@ -1 +1 @@ -var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1784045078568.js";import{e as T}from"./data-5c83c66b-1784045078568.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; +var i=Math.pow;import{g as W,d as m,t as b,s as M,h as c,e as A}from"./livestockData-36ec0ae2-1784074877048.js";import{e as T}from"./data-5c83c66b-1784074877048.js";const e=(a,n=2)=>{const t=i(10,n);return Math.round((Number(a)||0)*t)/t},g=(a,n)=>a.reduce((t,u)=>t+(Number(u[n])||0),0),k=a=>e((Number(a)||0)/1e4,2),x=g(b,"value"),S=g(m,"yakCount"),d=A,o=e(c.grasslandArea/1e4,2),l=e(c.wetArea/1e4,2),r=177.92,P=e(o+l+r,2),N=e(d/Math.max(o,1),1),v=e(l/Math.max(P,1)*100,1),w=637.07,s=108.84,R=297.29,y=159.33,C=e(o+l,2),Y=e((R+s)*2e3/Math.max(C,1),2),I=[{key:"pasture-area",zh:"草场面积",name:"草场面积",value:C,unit:"万亩",decimals:2,icon:"area"},{key:"pasture-productivity",zh:"草场生产力",name:"草场生产力",value:Y,unit:"斤/亩",decimals:2,icon:"yield"},{key:"yak-stock",zh:"牦牛存栏",name:"牦牛存栏",value:d,unit:"头",decimals:0,icon:"stack"},{key:"today-outflow",zh:"今日出栏",name:"今日出栏",value:0,unit:"头",decimals:0,icon:"length"},{key:"county-overload-rate",zh:"超载率",name:"超载率",value:T.overloadRate,unit:"%",decimals:2,icon:"rate"}],j=[{key:"grassland",name:"草地面积",value:o,unit:"万亩",tone:"green"},{key:"wetland",name:"湿地面积",value:l,unit:"万亩",tone:"cyan"},{key:"woodland",name:"林地面积",value:r,unit:"万亩",tone:"mint"},{key:"yak-density",name:"草畜密度",value:N,unit:"头/万亩",tone:"gold"}],D=[{key:"grassland",name:"草地",value:o,unit:"万亩",color:"#24f6c4"},{key:"wetland",name:"湿地",value:l,unit:"万亩",color:"#32dcff"},{key:"woodland",name:"林地",value:r,unit:"万亩",color:"#8bf7ff"}],J=[{key:"basic-grassland",name:"基本草原",value:w,unit:"万亩",percent:e(w/Math.max(o,1)*100,1),note:"草地保护底盘"},{key:"wetland-yield",name:"湿地生产力",value:s,unit:"万吨",percent:e(s/Math.max(R+s,1)*100,1),note:"鲜草产能"},{key:"public-woodland",name:"公益林面积",value:y,unit:"万亩",percent:e(y/Math.max(r,1)*100,1),note:"林地保护占比"},{key:"wetland-rate",name:"湿地占比",value:v,unit:"%",percent:v,note:"林草湿结构"}],L=W.map(a=>{const n=m.find(z=>z.zoneName===a.zoneName)||{},t=k(a.grasslandArea),u=k(a.wetArea);return{key:a.zoneName,name:a.zoneName,grasslandArea:t,wetlandArea:u,yakCount:n.yakCount||0,resourceTotal:e(t+u,2),density:e((n.yakCount||0)/Math.max(t+u,1),1)}}).sort((a,n)=>n.yakCount-a.yakCount),O=m.map(a=>({key:a.zoneName,name:a.zoneName,value:a.yakCount,unit:"头",percent:e(a.yakCount/Math.max(S,1)*100,1)})).sort((a,n)=>n.value-a.value),p=b.map(a=>({key:a.label,name:a.label,value:a.value,unit:"头",yoy:a.yoy,percent:e(a.value/Math.max(x,1)*100,1)})),B=Math.max(...M.map(a=>Number(a.value)||0),1),V=M.map(a=>{const n=a.name.includes("储备")||a.name.includes("加工")?`${Number(a.capacity||0).toLocaleString("zh-CN")}吨`:"已接入";return{key:a.name,name:a.name,value:a.value,unit:a.unit,capacity:a.capacity,capacityNote:n,percent:e((Number(a.value)||0)/B*100,1)}});var f,h;const $=[{key:"flow-grassland",module:"林草湿",name:"草地面积分布完成乡镇归集",value:o,unit:"万亩",trend:"+0.8%"},{key:"flow-wetland",module:"林草湿",name:"湿地生产力指标进入总览",value:s,unit:"万吨",trend:"+1.2%"},{key:"flow-woodland",module:"林草湿",name:"公益林保护面积同步",value:y,unit:"万亩",trend:"89.6%"},{key:"flow-yak-town",module:"牦牛",name:"畜群结构总量同步",value:d,unit:"头",trend:"+2.4%"},{key:"flow-yak-density",module:"草畜",name:"草畜密度联动核算",value:N,unit:"头/万亩",trend:"联动"},{key:"flow-trade-1",module:"交易",name:"屠宰出栏流通记录入库",value:((f=p[0])==null?void 0:f.value)||0,unit:"头",trend:"+6%"},{key:"flow-trade-2",module:"交易",name:"活畜交易影响扣减存栏",value:((h=p[1])==null?void 0:h.value)||0,unit:"头",trend:"-3%"},{key:"flow-industry",module:"产业",name:"饲草储备与加工主体纳入画像",value:c.baseCount+c.projectCount,unit:"个",trend:"在线"}],q=[{key:"grassland",label:"草地",value:o,unit:"万亩",x:50,y:15,color:"#24f6c4"},{key:"wetland",label:"湿地",value:l,unit:"万亩",x:83,y:48,color:"#32dcff"},{key:"trade",label:"交易",value:x,unit:"头",x:68,y:72,color:"#8bf7ff"},{key:"yak",label:"牦牛",value:d,unit:"头",x:24,y:74,color:"#24f6c4"},{key:"woodland",label:"林地",value:r,unit:"万亩",x:16,y:35,color:"#8bf7ff"}];export{j as a,J as b,p as c,$ as d,q as e,I as h,D as r,V as s,L as t,O as y}; diff --git a/docs/assets/featurePanelLayout-5da16b00-1784045078568.js b/docs/assets/featurePanelLayout-dc118942-1784074877048.js similarity index 98% rename from docs/assets/featurePanelLayout-5da16b00-1784045078568.js rename to docs/assets/featurePanelLayout-dc118942-1784074877048.js index ac8dfe4..30646c9 100644 --- a/docs/assets/featurePanelLayout-5da16b00-1784045078568.js +++ b/docs/assets/featurePanelLayout-dc118942-1784074877048.js @@ -1 +1 @@ -var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-6a8ef8cf-1784045078568.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; +var W=Object.defineProperty;var L=Object.getOwnPropertySymbols;var O=Object.prototype.hasOwnProperty,z=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?W(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,b=(t,e)=>{for(var n in e||(e={}))O.call(e,n)&&N(t,n,e[n]);if(L)for(var n of L(e))z.call(e,n)&&N(t,n,e[n]);return t};var D=(t,e,n)=>new Promise((u,r)=>{var i=l=>{try{s(n.next(l))}catch(a){r(a)}},c=l=>{try{s(n.throw(l))}catch(a){r(a)}},s=l=>l.done?u(l.value):Promise.resolve(l.value).then(i,c);s((n=n.apply(t,e)).next())});import{r as T,n as J}from"./index-bc047bb3-1784074877048.js";const v="/jsyApi";function C(t,e){return/^https?:\/\//.test(e)?e:`${t}${e.startsWith("/")?e:`/${e}`}`}function j(t){if((t==null?void 0:t.success)===!1||(t==null?void 0:t.code)!==void 0&&![0,200,"0","200"].includes(t.code)){const n=new Error((t==null?void 0:t.msg)||(t==null?void 0:t.message)||"接口请求失败");throw n.code=t==null?void 0:t.code,n}return J(t)}function o(t,e,n={}){return T(C(v,t),{params:e,timeout:n.timeout||12e3}).then(j)}function y(t,e,n={}){return T(C(v,t),{method:"POST",params:e,timeout:n.timeout||12e3}).then(j)}function U(){return y("/api/dataItem?group=pastures").then(f)}function X(){return y("/api/muhu/distribution").then(f)}function q(){return y("/api/muhu/age").then(f)}function K(){return y("/api/muhu/upline_rate").then(f)}function f(t){return Array.isArray(t)?t:Array.isArray(t==null?void 0:t.rows)?t.rows:Array.isArray(t==null?void 0:t.list)?t.list:Array.isArray(t==null?void 0:t.data)?t.data:t!=null&&t.data?f(t.data):t!=null&&t.result?f(t.result):[]}function V(t="",e=1,n=80){return o("/api/home/muhu_list",{query:t,page:e,pageSize:n}).then(f)}function ut(t){return t==null||t===""?Promise.resolve([]):o("/api/home/grasslandByPastureId",{id:t},{timeout:2e4}).then(f)}function rt(t){return t?o("/api/pastureDetails",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function $(t,e=[]){const n=[...e.map(u=>t==null?void 0:t[u]),...e.map(u=>{var r;return(r=t==null?void 0:t.data)==null?void 0:r[u]}),t==null?void 0:t.data,t==null?void 0:t.result,t];for(const u of n)if(Array.isArray(u)){const r=u.find(i=>i&&typeof i=="object");if(r)return r}else if(u&&typeof u=="object")return u;return null}function it(t={}){return o("/api/grasslandDetails",t,{timeout:2e4}).then(e=>$(e,["grassland"]))}function st(t={}){return o("/api/wetlandDetails",t,{timeout:2e4}).then(e=>$(e,["wetland"]))}function lt(t){return t?o("/api/map/projectDetail",{wkt:t},{timeout:2e4}).then(e=>e||null):Promise.resolve(null)}function ct(t){return o("/api/pastureDetailsById",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function at(t){return o("/api/pasturesDetails",{id:t}).then(e=>(e==null?void 0:e.data)||e||{})}function Y(){return o("/api/pasturesList").then(f)}function ft(){return D(this,null,function*(){const[t,e,n,u,r,i]=yield Promise.allSettled([U(),X(),q(),K(),Y(),V("",1,20)]),c=r.status==="fulfilled"?r.value:[],s=i.status==="fulfilled"?i.value:[],l=H(s)?s:H(c)?c:s.length?s:c,a=Q(l,c,s);return{core:t.status==="fulfilled"?t.value:[],distribution:e.status==="fulfilled"?e.value:[],age:n.status==="fulfilled"?n.value:[],online:u.status==="fulfilled"?u.value:[],list:a}})}function Q(t=[],...e){const n=new Map;return e.flat().forEach(u=>{B(u).forEach(r=>{const i=n.get(r)||{};n.set(r,R(i,u))})}),(Array.isArray(t)?t:[]).map(u=>{const r=B(u).map(i=>n.get(i)).find(Boolean);return r?R(u,r):u})}function R(t={},e={}){const n=b({},t);return Object.entries(e||{}).forEach(([u,r])=>{(n[u]===void 0||n[u]===null||n[u]==="")&&(n[u]=r)}),n}function B(t={}){return[t.id,t.pastureId,t.pasturesId,t.pastures_id,t.muhuId,t.muhu_id,t.name,t.pasturesName,t.pastures_name,t.muhuName,t.muhu_name,t.pastureName,t.pasture_name].map(e=>String(e||"").trim()).filter(Boolean)}function H(t=[]){return(Array.isArray(t)?t:[]).some(e=>{var r,i,c,s,l,a;const n=(l=(s=(c=(i=(r=e==null?void 0:e.grasslandArea)!=null?r:e==null?void 0:e.grassland_area)!=null?i:e==null?void 0:e.acreage)!=null?c:e==null?void 0:e.area)!=null?s:e==null?void 0:e.areaRange)!=null?l:e==null?void 0:e.area_range;if(typeof n=="number")return n>0;const u=Number((a=String(n!=null?n:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/))==null?void 0:a[0]);return Number.isFinite(u)&&u>0})}const m=480,x=1920,Z=1080,I=176,S=112,k=272,w=18;function p(t,e,n){return Math.min(Math.max(t,e),n)}function ot({point:t,rowCount:e=0,loading:n=!1,empty:u=!1,safeLeft:r=448,safeRight:i=1472,preferredTop:c=196,safeTop:s=94}){if(!t)return{width:m,height:I,style:{}};const l=p(Number(e)||0,0,10),a=n||u?I:58+Math.max(l,1)*27,P=p(a,I,k),h=p(t.y-w,72,Z-28),_=h-c,E=h-s;let g=P,A=h-P;_>=S?(g=Math.min(P,_),A=h-g):E>=S?(g=Math.min(P,E),A=h-g):(g=Math.max(112,Math.min(P,h-72)),A=h-g);const d=p(r,24,x-m-24),F=p(i,d+m,x-24),M=p(t.x-m/2,d,F-m),G=p(t.x-M,28,m-28);return{width:m,height:Math.round(g),style:{left:`${Math.round(M)}px`,top:`${Math.round(A)}px`,right:"auto",bottom:"auto",width:`${m}px`,"--feature-panel-anchor-x":`${Math.round(G)}px`}}}export{m as F,st as a,lt as b,ot as c,ft as d,at as e,ut as f,it as g,ct as h,rt as i}; diff --git a/docs/assets/flyline6-525edf67-balabala-1784045078568.png b/docs/assets/flyline6-525edf67-balabala-1784074877048.png similarity index 100% rename from docs/assets/flyline6-525edf67-balabala-1784045078568.png rename to docs/assets/flyline6-525edf67-balabala-1784074877048.png diff --git a/docs/assets/focus_bg-b6803e2d-balabala-1784045078568.png b/docs/assets/focus_bg-b6803e2d-balabala-1784074877048.png similarity index 100% rename from docs/assets/focus_bg-b6803e2d-balabala-1784045078568.png rename to docs/assets/focus_bg-b6803e2d-balabala-1784074877048.png diff --git a/docs/assets/focus_move_bg-cf41417a-balabala-1784045078568.png b/docs/assets/focus_move_bg-cf41417a-balabala-1784074877048.png similarity index 100% rename from docs/assets/focus_move_bg-cf41417a-balabala-1784045078568.png rename to docs/assets/focus_move_bg-cf41417a-balabala-1784074877048.png diff --git a/docs/assets/geoserver-6ded2e06-1784045078568.js b/docs/assets/geoserver-a50e4f20-1784074877048.js similarity index 94% rename from docs/assets/geoserver-6ded2e06-1784045078568.js rename to docs/assets/geoserver-a50e4f20-1784074877048.js index 0ed5503..5610f6d 100644 --- a/docs/assets/geoserver-6ded2e06-1784045078568.js +++ b/docs/assets/geoserver-a50e4f20-1784074877048.js @@ -1 +1 @@ -var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-1b068bef-1784045078568.js";import{r as E}from"./index-6a8ef8cf-1784045078568.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; +var m=(e,t,r)=>new Promise((s,u)=>{var a=i=>{try{c(r.next(i))}catch(l){u(l)}},n=i=>{try{c(r.throw(i))}catch(l){u(l)}},c=i=>i.done?s(i.value):Promise.resolve(i.value).then(a,n);c((r=r.apply(e,t)).next())});import{H as f,W as S}from"./townshipBoundaries-1b068bef-1784074877048.js";import{r as E}from"./index-bc047bb3-1784074877048.js";const d="/geoserver/ne/wms",_={}.VITE_GEOSERVER_WFS_URL||d.replace(/\/wms$/i,"/wfs"),h={}.VITE_GEOSERVER_WMTS_URL||"/geoserver/gwc/service/wmts";function o(e,t){const r=new URLSearchParams;return Object.entries(t).forEach(([s,u])=>{u!=null&&u!==""&&r.append(s,u)}),`${e}${e.includes("?")?"&":"?"}${r.toString()}`}function y(e,t={}){const r=t.bounds||f,s=t.size||S;return o(t.url||d,{service:"WMS",version:"1.1.1",request:"GetMap",layers:e.layerName,styles:e.styles||"",format:"image/png",transparent:!0,tiled:!0,srs:"EPSG:4326",bbox:[r.west,r.south,r.east,r.north].join(","),width:s.width,height:s.height,CQL_FILTER:t.cqlFilter||e.cqlFilter,SLD_BODY:t.sldBody||e.sldBody,_:Date.now()})}function W(e,t={}){var a,n,c,i,l;const r=e.tileMatrixSetID||e.tileMatrixSet||"EPSG:900913",s=Number((i=(c=(n=(a=t.z)!=null?a:t.zoom)!=null?n:e.wmtsZoom)!=null?c:e.homeWmtsZoom)!=null?i:0),u=t.tileMatrix||((l=e.tileMatrixLabels)==null?void 0:l[s])||`${r}:${s}`;return o(t.url||e.url||h,{service:"WMTS",version:"1.0.0",request:"GetTile",layer:e.layerName,style:e.style||e.styles||"",format:e.format||"image/png",tileMatrixSet:r,tileMatrix:u,tileRow:t.y,tileCol:t.x})}function F(e,t,r={}){var a,n;const s=r.bounds||f,u=r.size||S;return o(r.url||d,{service:"WMS",version:"1.1.1",request:"GetFeatureInfo",layers:e.layerName,query_layers:e.layerName,styles:e.styles||"",info_format:"application/json",feature_count:5,srs:"EPSG:4326",bbox:[s.west,s.south,s.east,s.north].join(","),width:u.width,height:u.height,x:Math.round(t.x),y:Math.round(t.y),buffer:(n=(a=r.buffer)!=null?a:e.queryBuffer)!=null?n:8,CQL_FILTER:r.cqlFilter||e.cqlFilter,SLD_BODY:r.sldBody||e.sldBody})}function g(s,u){return m(this,arguments,function*(e,t,r={}){const a=F(e,t,r);return E(a,{credentials:"include"})})}function R(e,t={}){return o(t.url||_,{service:"WFS",version:t.version||"1.0.0",request:"GetFeature",typeName:e,outputFormat:"json",propertyName:Array.isArray(t.propertyName)?t.propertyName.join(","):t.propertyName,CQL_FILTER:t.cqlFilter,maxFeatures:t.maxFeatures||2e5})}function w(r){return m(this,arguments,function*(e,t={}){const s=R(e,t);return E(s,{credentials:"include",timeout:t.timeout||2e4})})}export{g as a,y as b,W as c,w as g}; diff --git a/docs/assets/header-bg-65b38012-balabala-1784045078568.png b/docs/assets/header-bg-65b38012-balabala-1784074877048.png similarity index 100% rename from docs/assets/header-bg-65b38012-balabala-1784045078568.png rename to docs/assets/header-bg-65b38012-balabala-1784074877048.png diff --git a/docs/assets/huiguang-3c5dfda5-balabala-1784045078568.png b/docs/assets/huiguang-3c5dfda5-balabala-1784074877048.png similarity index 100% rename from docs/assets/huiguang-3c5dfda5-balabala-1784045078568.png rename to docs/assets/huiguang-3c5dfda5-balabala-1784074877048.png diff --git a/docs/assets/icon1-6f7c222f-balabala-1784045078568.png b/docs/assets/icon1-6f7c222f-balabala-1784074877048.png similarity index 100% rename from docs/assets/icon1-6f7c222f-balabala-1784045078568.png rename to docs/assets/icon1-6f7c222f-balabala-1784074877048.png diff --git a/docs/assets/icon2-4f77ccec-balabala-1784045078568.png b/docs/assets/icon2-4f77ccec-balabala-1784074877048.png similarity index 100% rename from docs/assets/icon2-4f77ccec-balabala-1784045078568.png rename to docs/assets/icon2-4f77ccec-balabala-1784074877048.png diff --git a/docs/assets/index-0ef0ebc0-balabala-1784045078568.css b/docs/assets/index-026acc61-balabala-1784074877048.css similarity index 95% rename from docs/assets/index-0ef0ebc0-balabala-1784045078568.css rename to docs/assets/index-026acc61-balabala-1784074877048.css index 8a30aa6..d9166e3 100644 --- a/docs/assets/index-0ef0ebc0-balabala-1784045078568.css +++ b/docs/assets/index-026acc61-balabala-1784074877048.css @@ -1 +1 @@ -@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1784045078568.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1784045078568.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1784045078568.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1784045078568.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1784045078568.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1784045078568.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1784045078568.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1784045078568.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1784045078568.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1784045078568.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1784045078568.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1784045078568.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1784045078568.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1784045078568.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1784045078568.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1784045078568.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1784045078568.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1784045078568.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1784045078568.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1784045078568.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1784045078568.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1784045078568.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1784045078568.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1784045078568.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784045078568.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1784045078568.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1784045078568.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:15px;font-weight:600;line-height:18px;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:10px;font-weight:500;line-height:11px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:420px;right:420px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:420px;right:420px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px}.platform-screen .top-count-card.is-four .count-card-icon{width:64px;height:78px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:390px;right:390px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:390px;right:390px;top:102px;display:flex;grid-template-columns:none;grid-auto-rows:auto;column-gap:0;row-gap:0;justify-content:space-between;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{flex:0 0 auto;width:auto;min-width:184px;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:442px;top:82px;display:grid;grid-template-columns:208px 220px 242px 168px 168px;column-gap:10px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:390px;right:430px;top:96px;display:flex;justify-content:space-between}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} +@charset "UTF-8";.path-line{mix-blend-mode:screen}.m-header{position:relative;left:0;top:0;right:0;width:100%;height:90px;z-index:2}.m-header-wrap{position:absolute;left:50%;transform:translate(-50%);width:1920px;height:90px;margin:0 auto;background:url(./header-bg-65b38012-balabala-1784074877048.png);background-size:100%;text-align:center;box-sizing:border-box;padding-top:10px}.m-header-title{color:#fff;font-size:44px;font-weight:700;letter-spacing:1px;font-family:Alimama ShuHeiTi,阿里妈妈数黑体 Bold,sans-serif;font-synthesis:none;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.m-header-subtext{opacity:.64;font-size:12px;letter-spacing:3px;font-weight:300;font-family:D-DIN;line-height:14.4px;color:#c4f3fe}.m-header-left{color:#fff;position:absolute;top:47px;left:32px}.m-header-right{color:#fff;position:absolute;top:47px;right:32px}.m-header-line-left{position:absolute;right:50%;top:11px;width:961px;height:79px;margin-right:14px}.m-header-line-right{position:absolute;left:50%;top:11px;width:961px;height:79px;margin-left:-14px;transform:scaleX(-1)}.m-header-line-left-top{position:absolute;right:50%;top:-6px;width:329px;height:30px;margin-right:295px}.m-header-line-right-top{position:absolute;left:50%;top:-6px;width:329px;height:30px;margin-left:293px;transform:scaleX(-1)}.m-menu{display:flex}.m-menu-item{position:relative;z-index:1;display:flex;align-items:center;pointer-events:all;justify-content:center;min-width:112px;width:auto;height:32px;box-sizing:border-box;padding:0 20px;background-image:url(./menu-btn-91a961cf-balabala-1784074877048.png);background-size:100% 100%;color:#fff9;font-size:15px;margin:0 6px;white-space:nowrap;line-height:32px;cursor:pointer}.m-menu-item:hover,.m-menu-item.is-active{color:#fff;background-image:url(./menu-btn-hover-62eba0bb-balabala-1784074877048.png);background-size:100% 100%}.m-menu-item.is-active:after{display:block;width:100%;height:32px;background-size:100%;content:"";position:absolute;left:50%;top:50%;margin-left:-50%;margin-top:-16px;z-index:-1;opacity:1;background:rgba(0,170,255,.55);border-radius:32px;transform:scale(1.1,1.2);animation:menuActiveScale 1s infinite}@keyframes menuActiveScale{0%{transform:scale(1)}50%{transform:scale(1.1,1.2)}to{transform:scale(1.1,1.2);opacity:0}}@keyframes countCardLoadIn{0%{opacity:0;transform:translateY(12px) scale(.96);filter:blur(1px) brightness(.82)}58%{opacity:1;transform:translateY(-2px) scale(1.02);filter:blur(0) brightness(1.26)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0) brightness(1)}}@keyframes countCardValueJump{0%,to{transform:translateY(0) scale(1)}35%{transform:translateY(-3px) scale(1.045)}68%{transform:translateY(1px) scale(.99)}}@keyframes countCardValueSettle{0%{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}36%{transform:translateY(-5px) scale(1.08);filter:brightness(1.4);text-shadow:0 0 14px rgba(255,255,255,.88),0 0 26px rgba(48,220,255,.52)}to{transform:translateY(0) scale(1);filter:brightness(1);text-shadow:0 0 18px rgba(255,255,255,.7)}}@keyframes countCardValueSweep{0%{transform:translate(-130%);opacity:0}16%{opacity:.68}54%{opacity:.8}to{transform:translate(130%);opacity:0}}.count-card{position:relative;display:flex;align-items:center;overflow:visible}.count-card:before{content:"";position:absolute;left:-8px;right:-8px;top:-5px;bottom:-5px;pointer-events:none;background:linear-gradient(100deg,transparent 8%,rgba(48,220,255,.2) 45%,transparent 72%);opacity:0;transform:translate(-120%)}.count-card.is-counting:before{animation:countCardValueSweep 1.45s ease-in-out infinite}.count-card-left{display:flex;align-items:center;animation:countCardLoadIn .78s cubic-bezier(.2,.78,.22,1) both;animation-delay:.04s}.count-card-right{display:flex;align-items:center;padding-left:20px;animation:countCardLoadIn .82s cubic-bezier(.2,.78,.22,1) both;animation-delay:.12s}.count-card-right .value{position:relative;display:inline-flex;align-items:baseline;transform-origin:center bottom;font-family:D-DIN;font-weight:700;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;color:#fff;letter-spacing:0;margin-right:6px;text-shadow:0px 0px 18px rgba(255,255,255,.7);white-space:nowrap}.count-card-right .value:after{content:"";position:absolute;left:-4px;right:-4px;bottom:0;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.72),transparent);opacity:0;transform:scaleX(.2);transform-origin:left center}.count-card-right .unit{font-weight:500;font-size:var(--screen-kpi-unit-size, 11px);color:#fff;padding-top:12px;opacity:.72;white-space:nowrap}.count-card-icon{position:relative;width:42px;height:42px;margin-right:10px;flex:0 0 42px;background-repeat:no-repeat;background-position:center center;background-size:contain;filter:none}.count-card-icon:before,.count-card-icon:after{content:none}.count-card-icon.icon-xiaoshoujine{background-image:url(./icon1-6f7c222f-balabala-1784074877048.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1784074877048.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1784074877048.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1784074877048.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1784074877048.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1784074877048.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1784074877048.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1784074877048.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1784074877048.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1784074877048.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1784074877048.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1784074877048.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1784074877048.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1784074877048.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1784074877048.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1784074877048.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1784074877048.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1784074877048.png)}.count-card-title .title-zh{font-weight:700;font-size:var(--screen-kpi-label-size, 14px);color:#fff;line-height:18px;white-space:nowrap}.count-card-title .title-en{font-family:D-DIN;font-weight:400;font-size:12px;color:#fff;opacity:.5;padding-top:5px;white-space:nowrap}.count-card.is-counting .count-card-icon{filter:none}.count-card.is-counting .count-card-right .value{animation:countCardValueJump .58s ease-in-out infinite}.count-card.is-counting .count-card-right .value:after{opacity:.58;transform:scaleX(1);transition:transform 1.2s ease,opacity .2s ease}.count-card.is-settled .count-card-right .value{animation:countCardValueSettle .72s cubic-bezier(.16,.86,.24,1) both}body{font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);background:#000;-webkit-user-select:none;user-select:none}.loading{position:absolute;left:0;top:0;right:0;bottom:0;background:#000;pointer-events:none;z-index:99}.loading-text{display:flex;justify-content:center;align-items:center;width:100%;height:100%;color:#fff;font-family:D-DIN,Arial,sans-serif;letter-spacing:10px}.loading-text span{font-size:2vw;animation:blurAni 1.5s calc(var(--index) / 5 * 1s) alternate infinite}.loading-progress{font-size:2vw;color:#fff;font-family:D-DIN,Arial,sans-serif;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);transform-origin:center;margin-top:-3vw}.loading-progress .unit{padding-left:10px;font-size:1vw}@keyframes blurAni{to{filter:blur(3px)}}.large-screen{position:relative;width:100%;height:100%;background:#050f33;margin:0 auto;font-size:14px}.large-screen .map{position:relative;width:100%;height:100%;z-index:2}.large-screen-wrap{position:absolute;left:0;right:0;top:0;bottom:0;z-index:3;pointer-events:none}.large-screen-wrap:after{content:"";display:block;position:absolute;left:0;top:0;right:0;bottom:0;z-index:1;opacity:.5;background:url(./bg-3acb94e3-balabala-1784074877048.png) no-repeat;background-size:cover}.large-screen-wrap .top-count-card{position:absolute;left:560px;right:560px;top:130px;justify-content:center;z-index:9;display:flex}.large-screen-wrap .top-count-card>div{padding:0 50px}.large-screen-wrap .left-wrap{position:absolute;z-index:4;width:398px;left:32px;top:126px;bottom:50px;perspective:500px;perspective-origin:50% 50%}.large-screen-wrap .left-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);z-index:4}.large-screen-wrap .left-wrap-3d .left-card{flex:1;margin-bottom:12px}.large-screen-wrap .right-wrap{position:absolute;z-index:4;width:398px;right:32px;top:126px;bottom:50px;perspective:800px;perspective-origin:50% 50%}.large-screen-wrap .right-wrap-3d{position:absolute;left:0;top:0;right:0;bottom:0;display:flex;flex-direction:column;transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0)}.large-screen-wrap .right-wrap-3d .right-card{flex:1;margin-bottom:12px}.large-screen-wrap .bottom-tray{position:absolute;left:50%;bottom:0;z-index:3;margin-left:-960px;width:1920px;height:90px;box-sizing:border-box;padding-top:20px;display:flex;justify-content:center;background:url(./bottom-menu-bg-b465793d-balabala-1784074877048.png) no-repeat;background-size:contain}.large-screen-wrap .bottom-tray-arrow{display:flex;align-items:center;height:30px}.large-screen-wrap .bottom-tray-arrow.is-reverse{transform:scaleX(-1)}.large-screen-wrap .bottom-tray-arrow img{animation:arrowAnimate 2s ease-in-out infinite}.large-screen-wrap .bottom-tray-arrow img:last-child{animation:arrowAnimate2 2s ease-in-out infinite}.large-screen-wrap .bottom-tray .bottom-menu{display:flex;padding:0 20px}.large-screen-wrap .bottom-tray .bottom-menu-item{width:100px;height:32px;background:url(./bottom-menu-btn-ee5c8064-balabala-1784074877048.png) no-repeat;background-size:100%;font-size:15px;letter-spacing:1.6px;text-align:center;line-height:30px;cursor:pointer;pointer-events:all}.large-screen-wrap .bottom-tray .bottom-menu-item span{display:block;width:100px;height:32px;font-weight:700;background:-webkit-linear-gradient(rgb(117,232,255),rgb(255,255,255));-webkit-background-clip:text;-webkit-text-fill-color:transparent}.large-screen-wrap .bottom-tray .bottom-menu-item:hover,.large-screen-wrap .bottom-tray .bottom-menu-item.is-active{background:url(./bottom-menu-btn-hover-df33e514-balabala-1784074877048.png) no-repeat;background-size:100%}.large-screen-left-zsline{position:absolute;left:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./left-kuang-5d6bd1ae-balabala-1784074877048.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}.large-screen-right-zsline{position:absolute;right:0;z-index:3;top:50%;margin-top:-540px;width:120px;height:1080px;background:url(./right-kuang-b1937caf-balabala-1784074877048.svg) no-repeat;background-size:contain;animation:bkAnimate 3s infinite}@keyframes bkAnimate{0%{opacity:1}50%{opacity:.2}to{opacity:1}}@keyframes arrowAnimate{0%{transform:translate(0)}50%{transform:translate(100%)}to{transform:translate(0)}}@keyframes arrowAnimate2{0%{transform:translate(0)}50%{transform:translate(90%)}to{transform:translate(0)}}@keyframes rotate360Animate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-screen:not(.is-yak-industry-chain){--screen-color-card-bg: rgba(5, 31, 46, .84);--screen-color-card-header-bg: rgba(24, 92, 118, .72);--screen-color-card-border: rgba(78, 223, 244, .48);--screen-color-chart-grid-line: rgba(185, 235, 244, .2);--screen-color-text-weak: rgba(223, 247, 251, .72);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-axis-size: 11px;--screen-chart-label-size: 12px;--screen-table-body-size: 12px;--screen-table-value-size: 13px;--screen-kpi-label-size: 13px;--screen-kpi-value-size: 29px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 16px;--screen-popup-body-size: 12px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:geometricPrecision}.platform-screen:not(.is-yak-industry-chain) .m-card{isolation:isolate;transition:filter .18s ease}.platform-screen:not(.is-yak-industry-chain) .m-card-bd:before{content:"";position:absolute;top:34px;right:1px;bottom:1px;left:1px;z-index:-1;pointer-events:none;background:radial-gradient(circle at 18% 0%,rgba(66,209,231,.14),transparent 42%),linear-gradient(160deg,rgba(8,43,60,.92),rgba(3,22,34,.84));box-shadow:inset 0 0 0 1px #51ddf233,inset 0 18px 36px #40beda0f,0 10px 26px #0008103d;backdrop-filter:blur(7px) saturate(1.08);clip-path:polygon(0 0,100% 0,100% 44%,99.1% 46%,99.1% 54%,100% 56%,100% 100%,0 100%,0 56%,.9% 54%,.9% 46%,0 44%)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-bg{opacity:.92;filter:saturate(.86) brightness(.96)}.platform-screen:not(.is-yak-industry-chain) .m-card-bd-bg{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-title{left:20px;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:var(--screen-card-title-size, 16px);font-weight:var(--screen-card-title-weight, 600);line-height:var(--screen-card-title-line-height, 32px);letter-spacing:.8px;text-shadow:0 2px 10px rgba(0,8,14,.72)}.platform-screen:not(.is-yak-industry-chain) .m-card-hd-zs1{opacity:.58}.platform-screen:not(.is-yak-industry-chain) .m-card-hd .saoguang{opacity:.42}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-left,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-left{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .home-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .pasture-side-stack.is-right,.platform-screen:not(.is-yak-industry-chain) .yak-side-stack.is-right{perspective:none!important;transform:translateZ(0)!important}.platform-screen:not(.is-yak-industry-chain) .fgw-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .home-card:hover,.platform-screen:not(.is-yak-industry-chain) .pasture-side-card:hover,.platform-screen:not(.is-yak-industry-chain) .yak-side-card:hover{filter:brightness(1.06)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21{color:#f7fefff5;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-icon-metric-item,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-main,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-spotlight-chip,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-focus,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-structure-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-chart,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-heat-cell,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-row{border-color:#5adcf02e;background:linear-gradient(90deg,rgba(68,210,232,.07),transparent 62%),rgba(3,25,38,.52);box-shadow:inset 0 1px #e8fdff09}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-item strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row strong,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-metric-item strong{font-variant-numeric:tabular-nums;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-columns:before,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peaks:before{opacity:.38}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band{border-color:#74e0ef2e;background-color:#4ccadc13}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-column-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-bar-track i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-peak-stage i,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-split-band i{filter:saturate(.92) brightness(1.04)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row{padding:3px 5px 3px 7px;border-left:2px solid var(--row-color, rgba(67, 217, 255, .72));background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 10%,transparent),transparent 72%);transition:background .16s ease,transform .16s ease}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-donut-row.is-active,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-row.is-active{background:linear-gradient(90deg,color-mix(in srgb,var(--row-color, #43d9ff) 18%,transparent),transparent 82%);transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-track{stroke:#a5dfe929}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-ring-halo,.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-rose-glow{opacity:.68}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-line-grid{stroke:#c7eff629}.platform-screen:not(.is-yak-industry-chain) .business-panel.is-v21 .business-panel-empty{color:#def7fba6}.platform-screen:not(.is-yak-industry-chain) .fgw-map-layer-tools .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-layer-tools .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.97),rgba(2,17,28,.95));box-shadow:inset 0 0 0 1px #59e1f447,0 18px 42px #00070e57;backdrop-filter:blur(12px) saturate(1.12)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item{min-height:30px;border-color:#5ad9ed2e;background:rgba(2,20,31,.64);color:#e8fafdc7;font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;font-weight:500;line-height:16px;transition:border-color .15s ease,background .15s ease,color .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-item:focus-visible{border-color:#62e2f585;background:rgba(28,99,119,.34);color:#fff;outline:none;transform:translate(2px)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-item.is-active{border-color:#59dff3ad;background:linear-gradient(90deg,rgba(30,132,150,.48),rgba(3,25,37,.76));box-shadow:inset 3px 0 #4fe2f4db}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row{border-color:#59dcef14;background:rgba(6,28,41,.34)}.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):hover,.platform-screen:not(.is-yak-industry-chain) .layer-panel-legend-row:not(:disabled):focus-visible{border-color:#5be0f36b;background:rgba(32,105,122,.28);outline:none}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title,.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:12px;line-height:16px}.platform-screen:not(.is-yak-industry-chain) .layer-panel-section-title{font-weight:600;letter-spacing:.4px}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-name{color:#e6f9fcc7;font-weight:500}.platform-screen:not(.is-yak-industry-chain) .layer-panel .legend-swatch{width:17px;height:11px;border-radius:2px;box-shadow:0 0 10px color-mix(in srgb,currentColor 24%,transparent)}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info{z-index:12}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info:after,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info:after{content:"";position:absolute;left:calc(var(--feature-panel-anchor-x, 50%) - 8px);bottom:-7px;z-index:0;width:16px;height:16px;border-right:1px solid rgba(89,225,244,.42);border-bottom:1px solid rgba(89,225,244,.42);background:rgba(3,25,39,.98);box-shadow:4px 4px 14px #00070e47;transform:rotate(45deg);pointer-events:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card{position:relative;z-index:1;background:rgba(3,25,39,.97);box-shadow:0 18px 42px #00070e6b;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .fgw-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .home-map-feature-info .m-card-bd:before,.platform-screen:not(.is-yak-industry-chain) .pasture-map-feature-info .m-card-bd:before{background:radial-gradient(circle at 18% 0%,rgba(65,215,235,.18),transparent 42%),linear-gradient(150deg,rgba(5,31,46,.98),rgba(2,17,28,.98));box-shadow:inset 0 0 0 1px #59e1f447;backdrop-filter:none}.platform-screen:not(.is-yak-industry-chain) .feature-info-card .m-card-hd-title{color:#fff;font-size:var(--screen-popup-title-size, 16px);font-weight:600;background:none;-webkit-text-fill-color:currentColor}.platform-screen:not(.is-yak-industry-chain) .feature-info{padding:8px 10px 10px;font-size:var(--screen-popup-body-size, 12px)}.platform-screen:not(.is-yak-industry-chain) .feature-table{gap:2px;padding-right:6px;scrollbar-gutter:stable}.platform-screen:not(.is-yak-industry-chain) .feature-row{grid-template-columns:108px minmax(0,1fr);min-height:27px;border:1px solid rgba(101,218,235,.12);background:rgba(2,20,31,.54)}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child{border-top:1px solid rgba(101,218,235,.12)}.platform-screen:not(.is-yak-industry-chain) .feature-row span{min-width:0;padding:4px 9px;border-right-color:#65daeb1f;background:rgba(53,159,181,.1);color:#d3f0f5b8;font-size:var(--screen-table-body-size, 12px);font-weight:500;line-height:17px;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row strong{min-width:0;padding:4px 10px;overflow:hidden;color:#f8fefff5;font-size:var(--screen-table-value-size, 13px);font-weight:600;line-height:17px;text-overflow:ellipsis;white-space:nowrap}.platform-screen:not(.is-yak-industry-chain) .feature-row:first-child strong,.platform-screen:not(.is-yak-industry-chain) .feature-row:nth-child(2) strong{color:#8ef1df;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:17px;letter-spacing:.2px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher{filter:drop-shadow(0 8px 16px rgba(0,8,14,.3))}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item{transition:filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:hover,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item:focus-visible{filter:brightness(1.12);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item.is-active{filter:saturate(1.12) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name,.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-title{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:15px;font-weight:600;line-height:18px;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .topic-switcher-item .topic-name small{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:10px;font-weight:500;line-height:11px}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button{transition:border-color .15s ease,background .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:hover,.platform-screen:not(.is-yak-industry-chain) .platform-map-tools button:focus-visible{border-color:#68e8f9c7;background:rgba(24,113,136,.5);outline:none;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-size:14px;font-weight:500;letter-spacing:.4px;transition:color .15s ease,filter .15s ease,transform .15s ease}.platform-screen:not(.is-yak-industry-chain) .m-menu-item:hover,.platform-screen:not(.is-yak-industry-chain) .m-menu-item:focus-visible{color:#fff;filter:brightness(1.1);outline:1px solid rgba(91,224,244,.45);outline-offset:2px;transform:translateY(-1px)}.platform-screen:not(.is-yak-industry-chain) .m-menu-item.is-active{filter:saturate(1.06) brightness(1.08)}.platform-screen:not(.is-yak-industry-chain) .count-card{padding:4px 10px 6px;background:linear-gradient(90deg,rgba(5,28,40,.26),transparent 82%);box-shadow:inset 0 -1px #53daee1f}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-title .title-zh{font-family:var(--screen-font-ui, "PingFang SC", "Microsoft YaHei", sans-serif);font-weight:600;letter-spacing:.3px}.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .value,.platform-screen:not(.is-yak-industry-chain) .count-card .count-card-right .unit{font-variant-numeric:tabular-nums}.business-chart-tooltip.is-v21{padding:10px 12px;border-color:#5fe2f48a;border-radius:2px;background:radial-gradient(circle at 12% 0%,rgba(70,230,173,.13),transparent 54%),rgba(2,20,31,.96);box-shadow:0 14px 34px #00070e61,inset 0 0 18px #43d9ff0d;backdrop-filter:blur(10px)}@media (prefers-reduced-motion: reduce){.platform-screen:not(.is-yak-industry-chain) *,.platform-screen:not(.is-yak-industry-chain) *:before,.platform-screen:not(.is-yak-industry-chain) *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.platform-screen{position:fixed!important;left:0;top:0;margin:0}.platform-screen>.large-screen-wrap:after{content:none}.platform-screen.is-forest-grass-wet .large-screen-wrap:after{opacity:.28}.platform-screen.is-forest-grass-wet .large-screen-left-zsline,.platform-screen.is-forest-grass-wet .large-screen-right-zsline{filter:brightness(1.3) drop-shadow(0 0 14px rgba(48,220,255,.32))}.platform-screen.is-home .large-screen-wrap:after{opacity:.34}.platform-screen.is-home .large-screen-left-zsline,.platform-screen.is-home .large-screen-right-zsline{filter:brightness(1.32) drop-shadow(0 0 16px rgba(36,246,196,.28))}.platform-screen.is-ecological-protection .large-screen-wrap:after{opacity:.22}.platform-screen.is-ecology-national-park .top-menu-mid-space{width:920px}.platform-screen.is-grass-livestock-balance .large-screen-wrap:after{opacity:.24}.platform-screen.is-grass-livestock-balance .large-screen-left-zsline,.platform-screen.is-grass-livestock-balance .large-screen-right-zsline{filter:brightness(1.24) drop-shadow(0 0 14px rgba(255,215,108,.18))}.platform-screen.is-yak-management .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-management .large-screen-left-zsline,.platform-screen.is-yak-management .large-screen-right-zsline{filter:brightness(1.22) drop-shadow(0 0 14px rgba(48,220,255,.26))}.platform-screen.is-pasture-management .large-screen-wrap:after{opacity:.26}.platform-screen.is-pasture-management .large-screen-left-zsline,.platform-screen.is-pasture-management .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(36,246,196,.28))}.platform-screen.is-yak-industry-chain .large-screen-wrap:after{opacity:.24}.platform-screen.is-yak-industry-chain .large-screen-left-zsline,.platform-screen.is-yak-industry-chain .large-screen-right-zsline{filter:brightness(1.28) drop-shadow(0 0 14px rgba(48,220,255,.24))}.platform-screen.is-smart-management .large-screen-wrap:after{opacity:.2}.platform-screen .platform-module-pane{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.platform-screen .platform-map-tools{position:absolute;left:448px;bottom:168px;z-index:80;display:flex;flex-direction:column;gap:7px;pointer-events:all;transform:perspective(var(--screen-side-perspective-left, 500px)) rotateY(6deg);transform-origin:left center}.platform-screen .platform-map-tools button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;border:1px solid rgba(126,251,246,.62);border-radius:3px;color:#f0feff;font-weight:900;background:linear-gradient(180deg,rgba(18,99,123,.92),rgba(4,36,56,.96)),rgba(4,24,37,.9);box-shadow:0 0 14px #30dcff52,0 0 3px #7efbf666,inset 0 0 0 1px #ffffff1a,inset 0 -8px 14px #30dcff29;cursor:pointer}.platform-screen .platform-map-tools button:hover{border-color:#7efbf6c2;color:#fff;background:linear-gradient(180deg,rgba(25,127,148,.96),rgba(6,48,68,.98)),rgba(6,35,52,.92);box-shadow:0 0 18px #30dcff6b,0 0 4px #7efbf680,inset 0 0 0 1px #ffffff1f,inset 0 -8px 14px #30dcff2e}.platform-screen .platform-map-tools button:active{transform:translateY(1px)}.platform-screen:has(.home-more-modal) .platform-map-tools{visibility:hidden;opacity:0;pointer-events:none}.platform-screen .platform-map-tool-icon{position:relative;flex:0 0 15px;width:15px;height:15px;color:#7efbf6}.platform-screen .platform-map-tool-icon.is-fullscreen{background:linear-gradient(currentColor,currentColor) left top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right top/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right top/2px 5px no-repeat,linear-gradient(currentColor,currentColor) left bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) left bottom/2px 5px no-repeat,linear-gradient(currentColor,currentColor) right bottom/5px 2px no-repeat,linear-gradient(currentColor,currentColor) right bottom/2px 5px no-repeat}.platform-screen .platform-map-tool-icon.is-reset{width:15px;height:15px;border:2px solid currentColor;border-left-color:transparent;border-radius:50%;box-sizing:border-box}.platform-screen .platform-map-tool-icon.is-reset:after{content:"";position:absolute;left:-2px;top:0;width:0;height:0;border-top:3px solid transparent;border-bottom:3px solid transparent;border-right:5px solid currentColor;transform:rotate(-18deg)}.platform-screen .top-menu{position:absolute;left:50%;top:46px;z-index:10;transform:translate(-50%)}.platform-screen .top-menu .m-menu{justify-content:center;align-items:center}.platform-screen .top-menu .m-menu-item{min-width:118px;height:34px;padding:0 18px;font-size:14px;line-height:34px;letter-spacing:0}.platform-screen .top-menu .m-menu-item.is-active:after{width:calc(100% - 12px);height:28px;margin-left:calc(-50% + 6px);margin-top:-14px;border-radius:28px;transform:none;animation:platformMenuActivePulse 1.35s ease-in-out infinite}.platform-screen .top-menu .top-menu-mid-space{width:820px;height:1px;pointer-events:none}.platform-screen .m-header-right{top:5px;right:14px;z-index:30}.platform-screen .m-header-tools{display:flex;align-items:center;gap:8px;min-height:42px;pointer-events:auto}.platform-screen .platform-weather{position:relative;display:flex;align-items:center;gap:8px;height:40px;min-width:184px;padding:0 12px 0 4px;color:#e5faffe6;white-space:nowrap}.platform-screen .platform-weather:after{content:"";position:absolute;left:4px;right:12px;bottom:0;height:1px;background:linear-gradient(90deg,rgba(48,220,255,.72),rgba(48,220,255,0));opacity:.54}.platform-screen .platform-weather.is-unavailable{min-width:150px;color:#c4f3fe94}.platform-screen .platform-weather__icon{width:34px;height:34px;flex:none;object-fit:contain;filter:drop-shadow(0 0 8px rgba(48,220,255,.26))}.platform-screen .platform-weather__fallback-icon{position:relative;width:30px;height:24px;flex:none}.platform-screen .platform-weather__fallback-icon:before{content:"";position:absolute;left:2px;bottom:2px;width:24px;height:10px;border:1px solid rgba(92,232,255,.72);border-radius:8px;box-shadow:0 0 8px #30dcff2e}.platform-screen .platform-weather__fallback-icon:after{content:"";position:absolute;left:8px;top:2px;width:11px;height:11px;border:1px solid rgba(92,232,255,.72);border-radius:50%;background:rgba(8,42,58,.9)}.platform-screen .platform-weather__copy{display:grid;align-content:center;gap:1px;min-width:0}.platform-screen .platform-weather__primary{display:inline-flex;align-items:center;gap:8px}.platform-screen .platform-weather__primary strong{color:#f2fdff;font-size:13px;font-weight:700;line-height:17px}.platform-screen .platform-weather__primary em{color:#69eff2;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-style:normal;font-weight:800;line-height:19px}.platform-screen .platform-weather__copy small{display:flex;align-items:center;gap:6px;color:#c4f3fe9e;font-size:10px;font-weight:400;line-height:13px}.platform-screen .platform-weather__copy small i{width:2px;height:2px;border-radius:50%;background:rgba(92,232,255,.6);box-shadow:0 0 4px #30dcff66}.platform-screen .platform-datetime{position:relative;display:grid;justify-items:end;align-content:center;gap:0;width:112px;height:40px;padding:0 10px 0 13px;white-space:nowrap}.platform-screen .platform-datetime:before{content:"";position:absolute;left:0;top:9px;width:1px;height:22px;background:linear-gradient(180deg,transparent,rgba(92,232,255,.52),transparent)}.platform-screen .platform-datetime span{color:#c4f3fea3;font-size:10px;line-height:13px}.platform-screen .platform-datetime strong{color:#ecfcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:19px;font-weight:800;line-height:21px;text-align:right;text-shadow:0 0 8px rgba(48,220,255,.18)}.platform-screen .logout-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid rgba(92,232,255,.72);border-radius:2px;background:linear-gradient(180deg,rgba(28,126,166,.62),rgba(3,32,55,.86)),rgba(2,18,34,.72);box-shadow:inset 0 0 13px #30dcff2e,0 0 12px #30dcff33;color:#e7fbff;cursor:pointer;transition:border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}.platform-screen .logout-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.platform-screen .logout-button:hover{border-color:#30dcffc7;box-shadow:inset 0 0 14px #30dcff29,0 0 14px #30dcff38;color:#fff;transform:translateY(-1px)}.platform-screen .top-count-card{left:420px;right:420px;top:108px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:28px;justify-content:stretch}.platform-screen .top-count-card>div{min-width:0;padding:0!important;justify-content:center}.platform-screen .top-count-card .count-card{min-width:0;min-height:90px}.platform-screen .top-count-card .count-card:before{content:none}.platform-screen .top-count-card .count-card-title,.platform-screen .top-count-card .count-card-left,.platform-screen .top-count-card .count-card-right{min-width:0}.platform-screen .top-count-card .count-card-icon{width:76px;height:90px;flex-basis:76px;margin-right:2px}.platform-screen .top-count-card .count-card-right{padding-left:10px}.platform-screen .top-count-card .count-card-right .value{min-height:34px;margin-right:6px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px;letter-spacing:0}.platform-screen .top-count-card .count-card-right .unit{padding-top:10px;font-size:var(--screen-kpi-unit-size, 11px);line-height:1}.platform-screen .top-count-card .count-card-title .title-zh{font-size:var(--screen-kpi-label-size, 14px);line-height:18px}.platform-screen .top-count-card .count-card-title .title-en{max-width:112px;overflow:hidden;text-overflow:ellipsis}.platform-screen .top-count-card.is-four{left:420px;right:420px;top:102px;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:8px}.platform-screen .top-count-card.is-four .count-card-icon{width:64px;height:78px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-four .count-card-right{padding-left:4px}.platform-screen .top-count-card.is-four .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-four-value-size, 29px);line-height:34px;margin-right:4px}.platform-screen .top-count-card.is-four .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-four-unit-size, 10px)}.platform-screen .top-count-card.is-four .count-card-title .title-zh{font-size:var(--screen-kpi-four-label-size, 13px);line-height:17px;white-space:nowrap}.platform-screen .top-count-card.is-four .count-card-title .title-en{max-width:90px;font-size:10px}.platform-screen .top-count-card.is-multi{left:390px;right:390px;top:102px;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:72px;column-gap:10px;row-gap:8px;z-index:8}.platform-screen .top-count-card.is-multi>div{justify-content:center}.platform-screen .top-count-card.is-multi .count-card{min-height:72px}.platform-screen .top-count-card.is-multi .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-multi .count-card-icon{display:block;width:64px;height:72px;flex-basis:64px;margin-right:0}.platform-screen .top-count-card.is-multi .count-card-right{flex:0 0 auto;padding-left:4px}.platform-screen .top-count-card.is-multi .count-card-right .value{min-height:34px;margin-right:4px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-multi .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px);opacity:.72}.platform-screen .top-count-card.is-multi .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:1.18;white-space:nowrap}.platform-screen .top-count-card.is-multi .count-card-title .title-en{display:none}.platform-screen .top-count-card.is-multi>div:nth-child(6){grid-column:2}.platform-screen .top-count-card.is-multi>div:nth-child(7){grid-column:3}.platform-screen .top-count-card.is-multi>div:nth-child(8){grid-column:4}.platform-screen .top-count-card.is-count-five>div{justify-content:center}.platform-screen .top-count-card.is-home-five{left:390px;right:390px;top:102px;display:flex;grid-template-columns:none;grid-auto-rows:auto;column-gap:0;row-gap:0;justify-content:space-between;align-items:center;z-index:9}.platform-screen .top-count-card.is-home-five>div{flex:0 0 auto;width:auto;min-width:184px;justify-content:center}.platform-screen .top-count-card.is-home-five .count-card{min-height:76px}.platform-screen .top-count-card.is-home-five .count-card-left{flex:0 0 auto}.platform-screen .top-count-card.is-home-five .count-card-icon{width:72px;height:80px;flex-basis:72px;margin-right:4px}.platform-screen .top-count-card.is-home-five .count-card-right{flex:0 0 auto;padding-left:6px}.platform-screen .top-count-card.is-home-five .count-card-right .value{min-height:34px;font-size:var(--screen-kpi-value-size, 31px);line-height:34px}.platform-screen .top-count-card.is-home-five .count-card-right .unit{padding-top:9px;font-size:var(--screen-kpi-unit-size, 11px)}.platform-screen .top-count-card.is-home-five .count-card-title .title-zh{max-width:none;font-size:var(--screen-kpi-label-size, 14px);line-height:18px;white-space:nowrap}.platform-screen .top-count-card.is-home-five .count-card-title .title-en{display:none}.platform-screen.is-home .top-count-card.is-home-five{left:432px;right:442px;top:82px;display:grid;grid-template-columns:208px 220px 242px 168px 168px;column-gap:10px;justify-items:start;align-items:center}.platform-screen.is-home .top-count-card.is-home-five>div{width:100%;min-width:0;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card{width:100%;min-height:74px;justify-content:flex-start}.platform-screen.is-home .top-count-card.is-home-five .count-card-icon{width:58px;height:72px;flex-basis:58px;margin-right:2px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right{padding-left:3px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .value{font-size:28px;line-height:31px}.platform-screen.is-home .top-count-card.is-home-five .count-card-right .unit{padding-top:8px;font-size:10px}.platform-screen.is-home .top-count-card.is-home-five .count-card-title .title-zh{font-size:13px;line-height:17px}.platform-screen.is-ecology-national-park .top-count-card.is-home-five{left:390px;right:430px;top:96px;display:flex;justify-content:space-between}.platform-screen.is-ecology-national-park .top-count-card.is-home-five>div{min-width:0;zoom:.88}.platform-screen .bottom-menu-item{width:96px!important;margin:0 2px}.platform-screen .bottom-menu-item span{width:96px!important;font-size:13px}.platform-screen .bottom-svg-line-left,.platform-screen .bottom-svg-line-right{position:absolute;right:50%;bottom:-21px;width:721px;height:57px;margin-right:-5px}.platform-screen .bottom-svg-line-right{left:50%;right:inherit;margin-left:-5px;margin-right:inherit;transform:scaleX(-1)}.platform-screen .module-coming{position:absolute;left:50%;top:50%;z-index:12;width:360px;height:130px;padding-top:28px;border:1px solid rgba(48,220,255,.28);background:rgba(3,18,30,.72);color:#fff;text-align:center;transform:translate(-50%,-50%);pointer-events:none;box-sizing:border-box}.platform-screen .module-coming-title{font-size:24px;font-weight:700}.platform-screen .module-coming-text{margin-top:12px;color:#ffffff9e;font-size:14px}.platform-screen .platform-loading{position:absolute;z-index:99}.platform-screen .platform-loading .loading-text{gap:10px;letter-spacing:0}@keyframes platformMenuActivePulse{0%{opacity:.68;box-shadow:0 0 #0af0}58%{opacity:.38;box-shadow:0 0 14px #30dcff5c}to{opacity:0;box-shadow:0 0 22px #30dcff1f}} diff --git a/docs/assets/index-089a3dd0-balabala-1784045078568.css b/docs/assets/index-089a3dd0-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-089a3dd0-balabala-1784045078568.css rename to docs/assets/index-089a3dd0-balabala-1784074877048.css diff --git a/docs/assets/index-11333eca-balabala-1784045078568.css b/docs/assets/index-11333eca-balabala-1784045078568.css deleted file mode 100644 index 9dc1c9d..0000000 --- a/docs/assets/index-11333eca-balabala-1784045078568.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map canvas{display:block;width:100%;height:100%}.map .yak-industry-point-label{width:172px;min-height:72px;margin-bottom:28px;color:#f2feff;font-size:12px;pointer-events:none;will-change:transform}.map .yak-industry-point-label-wrap{position:relative;width:172px;padding:8px 10px 9px;border:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 56%,transparent);border-radius:4px;background:linear-gradient(120deg,rgba(6,37,49,.88),rgba(3,16,27,.76)),linear-gradient(90deg,color-mix(in srgb,var(--yak-point-color, #24f6c4) 18%,transparent),transparent 72%);box-shadow:0 0 18px color-mix(in srgb,var(--yak-point-color, #24f6c4) 26%,transparent),inset 0 0 14px #30dcff14}.map .yak-industry-point-label-wrap:after{content:"";position:absolute;left:14px;bottom:-9px;width:14px;height:14px;border-right:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);border-bottom:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);background:rgba(3,16,27,.82);transform:rotate(45deg)}.map .yak-industry-point-label-head,.map .yak-industry-point-label-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.map .yak-industry-point-label-head{color:#daf9ffb3;font-size:10px}.map .yak-industry-point-label-head i{width:7px;height:7px;border-radius:50%;background:var(--yak-point-color, #24f6c4);box-shadow:0 0 10px var(--yak-point-color, #24f6c4)}.map .yak-industry-point-label-head span,.map .yak-industry-point-label-name,.map .yak-industry-point-label-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .yak-industry-point-label-name{margin-top:5px;color:#fff;font-size:13px;font-weight:800;line-height:1.35}.map .yak-industry-point-label-meta{margin-top:5px;color:#d3f1f6ad;font-size:10px}.map .yak-industry-point-label-meta strong{flex:0 0 auto;color:#c9fbff;font-size:11px;font-weight:800}.map .info-point{color:#eaffff;font-size:13px;width:178px;min-height:82px;margin-bottom:24px;will-change:transform}.map .info-point-wrap{position:relative;width:178px;padding:8px 10px 9px;border:1px solid rgba(104,236,255,.38);border-radius:5px;background:linear-gradient(120deg,rgba(6,36,48,.92),rgba(4,18,29,.78)),rgba(2,16,25,.82);box-shadow:0 0 18px #30dcff33,inset 0 0 18px #27f0c014;transform:translate(42%,-12%)}.map .info-point-wrap-inner{position:relative}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{position:absolute;left:-18px;content:""}.map .info-point-wrap-inner:before{top:42px;width:16px;height:1px;background:linear-gradient(90deg,rgba(104,236,255,0),rgba(104,236,255,.88))}.map .info-point-wrap-inner:after{top:38px;width:7px;height:7px;border-radius:50%;background:#c9fbff;box-shadow:0 0 8px #30dcff80}.map .info-point-wrap.is-prime{border-color:#30dcff80;background:linear-gradient(120deg,rgba(12,65,83,.7),rgba(4,24,34,.82)),rgba(2,16,25,.86)}.map .info-point-head{display:flex;align-items:center;gap:7px;min-width:0}.map .info-point-head .rank{flex:0 0 auto;color:#c9fbff;font-size:12px;line-height:14px;font-weight:900}.map .info-point-head strong{overflow:hidden;color:#fff;font-size:15px;line-height:18px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .info-point-metric{margin-top:4px;overflow:hidden;color:#a6f4ffc7;font-size:11px;line-height:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.map .info-point-value{display:flex;align-items:baseline;gap:4px;margin-top:2px}.map .info-point-value span{color:#fff;font-size:25px;line-height:28px;font-weight:900;text-shadow:0 0 12px rgba(126,251,246,.6)}.map .info-point-value em{color:#ebfcffc7;font-size:11px;line-height:13px;font-style:normal;font-weight:800}.map .provinces-label-wrap{transform:translate(50%,200%);opacity:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;width:136px;min-height:58px;border:1px solid rgba(126,251,246,.22);border-radius:8px 8px 8px 0;background:rgba(1,19,30,.62);box-shadow:0 0 16px #30dcff29}.map .provinces-label .label-main{min-width:0}.map .provinces-label .label-title{max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7efbf6d1;font-size:10px;line-height:12px;font-weight:500}.map .provinces-label .number{color:#fff;font-size:21px;line-height:25px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:11px;font-weight:400;opacity:.64;padding-left:4px}.map .provinces-label .name{color:#fff;font-size:12px;line-height:14px;font-weight:700;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:22px;font-weight:700;flex:0 0 auto}.map .provinces-label.yellow .no{color:#c9fbff!important;text-shadow:0 0 5px rgba(48,220,255,.42)!important}.map .epidemic-village-label{will-change:transform}.map .epidemic-village-label .epidemic-village-card{position:relative;width:142px;padding:7px 9px 6px;border:1px solid rgba(91,236,235,.42);border-radius:4px;color:#eaffff;background:linear-gradient(90deg,rgba(5,35,45,.92),rgba(2,18,29,.78)),rgba(1,17,27,.86);box-shadow:0 0 16px #2ddeff38,inset 0 0 16px #27f0c014;transform:translate(48%,-12%)}.map .epidemic-village-label .epidemic-village-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(91,236,235,0),rgba(91,236,235,.78))}.map .epidemic-village-label .epidemic-village-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#c9fbff;box-shadow:0 0 8px #30dcff75}.map .epidemic-village-label .epidemic-village-card.is-small{transform:translate(42%,-8%) scale(.92)}.map .epidemic-village-label .village-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.map .epidemic-village-label .village-card-head strong{overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .epidemic-village-label .village-card-head span{flex:0 0 auto;padding:1px 5px 2px;border:1px solid rgba(39,240,192,.28);border-radius:2px;color:#79f8e5;font-size:10px;line-height:11px;background:rgba(39,240,192,.08)}.map .epidemic-village-label .village-card-body{display:flex;align-items:baseline;gap:3px;margin-top:4px;white-space:nowrap}.map .epidemic-village-label .village-card-body .metric{color:#c9fffbc2;font-size:10px;line-height:12px}.map .epidemic-village-label .village-card-body .number{color:#fff;font-size:20px;line-height:22px;font-weight:900;text-shadow:0 0 10px rgba(126,251,246,.7)}.map .epidemic-village-label .village-card-body .unit{color:#e8fcffcc;font-size:10px;line-height:12px;font-weight:700}.map .epidemic-village-label .village-card-foot{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:3px;color:#e2faff9e;font-size:10px;line-height:11px;white-space:nowrap}.map .trade-market-label,.map .trade-flow-label,.map .trade-national-label{color:#fff;will-change:transform;pointer-events:none}.map .trade-national-name{padding:2px 6px;border:1px solid rgba(72,231,255,.24);border-radius:3px;background:rgba(3,23,35,.42);color:#ffffff9e;font-size:10px;line-height:12px;font-weight:800;text-shadow:0 0 6px rgba(48,220,255,.42);white-space:nowrap;transform:translate(-50%,-50%)}.map .trade-market-card{position:relative;width:128px;padding:6px 8px;border:1px solid rgba(139,247,255,.52);border-radius:4px;background:linear-gradient(110deg,rgba(12,68,78,.58),rgba(4,24,34,.58)),rgba(5,20,30,.58);box-shadow:0 0 10px #30dcff24,inset 0 0 10px #30dcff0f;transform:translate(60%)}.map .trade-market-card:before{position:absolute;left:-14px;top:calc(50% - 1px);width:14px;height:1px;content:"";background:linear-gradient(90deg,rgba(255,221,117,0),rgba(255,221,117,.92))}.map .trade-market-card:after{position:absolute;left:-18px;top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;content:"";background:#fff06a;box-shadow:0 0 12px #fff06ae6}.map .trade-market-card .market-title{overflow:hidden;color:#fff;font-size:11px;line-height:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .trade-market-card .market-total{display:flex;align-items:baseline;gap:4px;margin-top:3px}.map .trade-market-card .market-total span{color:#fff;font-size:15px;line-height:18px;font-weight:900;text-shadow:0 0 10px rgba(255,221,117,.6)}.map .trade-market-card .market-total em{color:#ffffffc2;font-size:10px;line-height:12px;font-style:normal}.map .trade-flow-card{position:relative;width:96px;padding:5px 7px;border:1px solid rgba(85,226,255,.32);border-radius:3px;background:linear-gradient(105deg,rgba(4,37,50,.58),rgba(3,17,27,.48)),rgba(1,17,27,.46);box-shadow:0 0 8px #30dcff1f,inset 0 0 8px #27f0c00d;transform:translate(60%)}.map .trade-flow-card.is-left{transform:translate(-66%)}.map .trade-flow-card.is-left:before{right:-10px;left:auto;background:linear-gradient(90deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-left:after{right:-14px;left:auto}.map .trade-flow-card.is-top{transform:translateY(-108%)}.map .trade-flow-card.is-top:before{left:50%;top:auto;bottom:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-top:after{left:calc(50% - 3px);top:auto;bottom:-14px}.map .trade-flow-card.is-bottom{transform:translateY(82%)}.map .trade-flow-card.is-bottom:before{left:50%;top:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card.is-bottom:after{left:calc(50% - 3px);top:-14px}.map .trade-flow-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#30dcff;box-shadow:0 0 10px #30dcffcc}.map .trade-flow-card .flow-head{display:flex;align-items:center;gap:6px;min-width:0}.map .trade-flow-card .flow-head span{flex:0 0 auto;color:#ffe076;font-size:10px;line-height:12px;font-weight:900}.map .trade-flow-card .flow-head strong{overflow:hidden;color:#fff;font-size:10px;line-height:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .trade-flow-card .flow-body{display:flex;align-items:baseline;gap:3px;margin-top:2px}.map .trade-flow-card .flow-body em{color:#fff;font-size:13px;line-height:15px;font-style:normal;font-weight:900;text-shadow:0 0 10px rgba(48,220,255,.55)}.map .trade-flow-card .flow-body b{color:#ffffffc2;font-size:10px;line-height:12px}.map .china-label{color:#fff;font-size:14px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap}.map .china-label .town-stat-label{flex-direction:column;align-items:center;gap:4px;min-width:74px;padding:5px 8px 4px;border-color:#7efbf64d;background:linear-gradient(180deg,rgba(4,33,46,.66),rgba(3,20,32,.56));box-shadow:0 0 10px #30dcff1f;text-align:center;transform:translateY(-50%)}.map .china-label .town-name-row{display:flex;align-items:center;justify-content:center;gap:6px;min-height:18px;line-height:18px}.map .china-label .town-name{color:#fff;font-size:13px;line-height:18px;font-weight:800}.map .china-label .town-rank{display:none;flex:0 0 auto;padding:1px 5px;border:1px solid rgba(126,251,246,.32);border-radius:2px;color:#7efbf6;font-size:10px;line-height:13px;font-weight:700;text-shadow:none;background:rgba(126,251,246,.1)}.map .china-label .town-stat-row{display:none;align-items:baseline;justify-content:center;gap:3px;min-height:18px;line-height:18px}.map .china-label .town-stat-metric{max-width:72px;overflow:hidden;color:#7efbf6e6;font-size:10px;line-height:12px;font-weight:700;text-overflow:ellipsis;text-shadow:none;white-space:nowrap}.map .china-label .town-stat-value{color:#fff;font-size:18px;line-height:18px;font-weight:800;text-shadow:0 0 10px rgba(126,251,246,.72)}.map .china-label .town-stat-unit{color:#e8fcffc2;font-size:10px;line-height:12px;font-weight:600}.map .china-label .town-stat-label.has-stat{min-width:108px}.map .china-label .town-stat-label.has-stat .town-rank,.map .china-label .town-stat-label.has-stat .town-stat-row{display:flex}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.yak-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c;height:100%;overscroll-behavior:none}.yak-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;background:transparent!important}.yak-map-scene>canvas{display:block;width:100%!important;height:100%!important}.yak-map-scene>div{width:100%!important;height:100%!important}.yak-map-scene .china-label .town-stat-label{transform:translateY(-50%) scale(.92)}.yak-ol-map-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.yak-management-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.yak-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 42%,rgba(1,9,15,.22) 74%,rgba(1,8,13,.58) 100%),linear-gradient(90deg,rgba(0,12,20,.36),transparent 24%,transparent 76%,rgba(0,12,20,.36)),linear-gradient(180deg,rgba(2,16,27,.02),rgba(2,13,22,.22))}.yak-map-scrim.is-ol-map{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 58%,rgba(1,9,15,.16) 82%,rgba(1,8,13,.42) 100%),linear-gradient(90deg,rgba(0,12,20,.24),transparent 22%,transparent 78%,rgba(0,12,20,.24)),linear-gradient(180deg,rgba(2,16,27,.01),rgba(2,13,22,.12))}.yak-left,.yak-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.yak-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.yak-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.yak-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.yak-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.yak-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.yak-side-card{flex:0 0 auto}.yak-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.trade-source-card .m-card-bd-content{top:38px;bottom:8px}.yak-chart{width:100%;height:100%;box-sizing:border-box}.forecast-trend-card,.structure-chart-card{position:relative;width:100%;height:100%}.breeding-health-card{display:grid;grid-template-rows:34px minmax(0,1fr);gap:9px;height:100%;padding:10px 13px;overflow:hidden;box-sizing:border-box}.breeding-health-head{display:flex;align-items:center;min-width:0;padding:0 12px;border-left:3px solid rgba(48,220,255,.72);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.12),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.035));box-sizing:border-box}.breeding-health-head strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:16px;line-height:20px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.62)}.breeding-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;min-height:0}.breeding-health-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:18px 14px 6px;align-content:center;gap:2px 6px;min-width:0;min-height:0;padding:7px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.13);background:linear-gradient(90deg,color-mix(in srgb,var(--health-color) 16%,transparent),rgba(5,27,41,.32)),rgba(3,25,40,.18);box-sizing:border-box}.breeding-health-item span,.breeding-health-item strong,.breeding-health-item em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breeding-health-item span{color:#e5fdffd6;font-size:12px;line-height:15px;font-weight:800}.breeding-health-item strong{color:color-mix(in srgb,var(--health-color) 82%,#ffffff);font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:18px;font-weight:900;text-align:right}.breeding-health-item i{grid-column:1/3;position:relative;z-index:1;display:block;height:4px;overflow:hidden;background:rgba(48,220,255,.12)}.breeding-health-item i b{display:block;width:var(--health-width);height:100%;background:var(--health-color);box-shadow:0 0 5px color-mix(in srgb,var(--health-color) 34%,transparent)}.breeding-health-item em{grid-column:1/3;grid-row:2;color:color-mix(in srgb,var(--health-color) 74%,#ffffff);font-size:11px;line-height:13px;font-style:normal}.structure-ratio-card{display:grid;grid-template-columns:146px minmax(0,1fr);align-items:center;gap:10px;height:100%;overflow:hidden;padding:2px 10px 6px 8px;box-sizing:border-box}.structure-ratio-chart{position:relative;width:142px;height:132px;min-width:0}.structure-ratio-chart svg{width:100%;height:100%;overflow:visible}.structure-ratio-list{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;gap:5px;overflow:hidden}.structure-ratio-row{position:relative;display:grid;grid-template-columns:11px minmax(0,1fr) 50px 16px;align-items:center;gap:6px;min-width:0;min-height:22px;height:23px;padding:0 5px 0 3px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.055);color:#e1f9ffc2;font-size:10px;line-height:13px;box-sizing:border-box;transition:background .35s ease,border-color .35s ease}.structure-ratio-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.18;pointer-events:none}.structure-ratio-row i{position:relative;z-index:1;width:9px;height:9px;border:1px solid #30dcff;border-radius:50%;box-sizing:border-box;box-shadow:none}.structure-ratio-row span{position:relative;z-index:1;display:flex;align-items:baseline;gap:4px;min-width:0;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:15px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-ratio-row span small{flex:none;color:color-mix(in srgb,var(--row-color) 78%,rgba(255,255,255,.65));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;font-weight:800;line-height:12px}.structure-ratio-row strong{position:relative;z-index:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:800;line-height:20px;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-ratio-row em{position:relative;z-index:1;color:#ffffff8a;font-size:10px;font-style:normal;white-space:nowrap}.structure-ratio-row.is-active{color:var(--row-color);border-color:#30dcff38;background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04))}.structure-rose-segment{opacity:.92;stroke-width:1.5;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;transition:opacity .3s ease,filter .3s ease,transform .3s ease;filter:drop-shadow(0 2px 2px rgba(0,10,18,.34)) drop-shadow(0 0 3px rgba(48,220,255,.12))}.structure-rose-segment.is-active{opacity:1;transform:scale(1.035);filter:drop-shadow(0 3px 5px rgba(0,10,18,.42)) drop-shadow(0 0 5px rgba(48,220,255,.22))}.structure-rose-glow{fill:#30dcff12;stroke:#30dcff2e;stroke-width:1;filter:none}.structure-rose-hole{fill:#03121ef0;stroke:#e3fdff38;stroke-width:1.2}.structure-rose-center{fill:#e7feffdb;font-size:10px;font-weight:800;dominant-baseline:middle;pointer-events:none}.structure-rose-center.is-sub{fill:#e7feff8a;font-size:7px;font-weight:700}.structure-summary-card{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));align-content:center;gap:10px;height:100%;overflow:hidden;padding:15px 18px 14px;box-sizing:border-box}.structure-summary-row{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) 58px;grid-template-rows:22px 14px;align-items:center;column-gap:10px;min-width:0;min-height:0;padding:2px 0;color:#e1f9ffb8}.structure-summary-row span{grid-row:1/3;display:inline-flex;min-width:0;align-items:center;gap:8px;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:17px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-summary-row i{width:9px;height:9px;flex:0 0 auto;border-radius:2px;background:var(--structure-color);box-shadow:none}.structure-summary-row strong{grid-column:3;grid-row:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:15px;font-weight:800;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-summary-row strong em{margin-left:3px;color:#e2fcffad;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.structure-summary-row b{position:relative;grid-column:2;grid-row:1/3;height:17px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 18px),rgba(48,220,255,.05)}.structure-summary-row b em{display:block;width:var(--structure-width);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--structure-color) 20%,transparent),var(--structure-color));box-shadow:0 0 5px color-mix(in srgb,var(--structure-color) 28%,transparent)}.structure-summary-row small{grid-column:3;grid-row:2;color:color-mix(in srgb,var(--structure-color) 76%,rgba(255,255,255,.72));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:11px;font-weight:800;text-align:right;white-space:nowrap}.yak-data-status{position:absolute;left:12px;bottom:6px;z-index:2;max-width:calc(100% - 24px);padding:2px 8px;border:1px solid rgba(48,220,255,.24);border-radius:3px;color:#defaffbd;font-size:10px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.yak-data-status.is-warning{border-color:#8bf7ff47;color:#c9fbffdb;background:rgba(4,24,37,.62)}.forecast-kline-chart{padding-top:16px}.forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 6px #30dcff2e}.yak-map-loading{position:absolute;left:50%;top:50%;z-index:8;color:#dffaffa3;font-size:16px;transform:translate(-50%,-50%)}.yak-bottom-topic{position:absolute;left:50%;bottom:48px;z-index:8;transform:translate(-50%);pointer-events:all}.trade-year-switcher,.forecast-year-switcher,.epidemic-year-switcher{position:absolute;left:462px;top:218px;z-index:8;display:flex;width:78px;flex-direction:column;gap:8px;padding:10px 8px;border:1px solid rgba(139,247,255,.28);background:linear-gradient(180deg,rgba(9,42,55,.72),rgba(4,18,30,.82)),rgba(3,18,31,.62);box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d;pointer-events:all;transform:perspective(620px) rotateY(6deg);transform-origin:left center;box-sizing:border-box}.trade-year-switcher span,.forecast-year-switcher span,.epidemic-year-switcher span{color:#ffffffdb;font-size:12px;font-weight:700;line-height:14px;text-align:center;white-space:nowrap}.trade-year-switcher button,.forecast-year-switcher button,.epidemic-year-switcher button{width:100%;height:30px;border:1px solid rgba(255,255,255,.18);background:rgba(48,220,255,.08);color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;cursor:pointer;box-sizing:border-box}.trade-year-switcher button.active,.trade-year-switcher button:hover,.forecast-year-switcher button.active,.forecast-year-switcher button:hover,.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#8bf7ffb3;background:rgba(139,247,255,.18);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-year-switcher{border-color:#30dcff47;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.forecast-year-switcher button.active,.forecast-year-switcher button:hover{border-color:#30dcffb3;background:rgba(48,220,255,.16);color:#30dcff;box-shadow:0 0 7px #30dcff1f}.epidemic-year-switcher{border-color:#30dcff42;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#30dcffad;background:rgba(48,220,255,.16);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-waterfall-card{display:grid;grid-template-rows:32px minmax(0,1fr);gap:8px;height:100%;padding:9px 13px 10px;overflow:hidden;box-sizing:border-box}.forecast-waterfall-head{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 10px;border-left:3px solid rgba(48,220,255,.72);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-waterfall-head span,.forecast-waterfall-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.forecast-waterfall-head strong{color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:18px;font-weight:900;text-align:right}.forecast-waterfall-head strong.negative{color:#48cfff}.forecast-waterfall-head strong em{margin-left:2px;color:#e2fcff99;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.forecast-waterfall-list{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;min-height:0}.forecast-waterfall-row{display:grid;grid-template-columns:78px minmax(0,1fr) 76px;align-items:center;gap:8px;min-width:0;min-height:0}.forecast-waterfall-row span,.forecast-waterfall-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-row span{color:#e2fcffc7;font-size:12px;line-height:14px;font-weight:800}.forecast-waterfall-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900;text-align:right}.forecast-waterfall-row i{position:relative;display:block;height:18px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 18px),rgba(48,220,255,.045);box-sizing:border-box}.forecast-waterfall-row i:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(226,252,255,.12);transform:translateY(-50%)}.forecast-waterfall-row i b{position:absolute;left:var(--waterfall-left);top:3px;width:var(--waterfall-width);height:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--waterfall-color) 22%,transparent),var(--waterfall-color));box-shadow:0 0 5px color-mix(in srgb,var(--waterfall-color) 34%,transparent)}.forecast-waterfall-row.is-anchor span,.forecast-waterfall-row.is-final span{color:#ffffffe6}.forecast-waterfall-row.is-anchor i b,.forecast-waterfall-row.is-final i b{top:3px;height:10px;border-radius:8px;background:var(--waterfall-color)}.forecast-waterfall-row.positive strong{color:#8bf7ff}.forecast-waterfall-row.negative strong{color:#48cfff}.forecast-waterfall-row.is-final strong{color:#fff}.estimate-summary-card,.forecast-summary-card{height:100%;padding:6px 14px 8px;box-sizing:border-box}.estimate-summary-card{display:grid;grid-template-rows:minmax(58px,.88fr) minmax(86px,1.12fr);row-gap:10px;padding:7px 14px 10px;overflow:hidden}.estimate-flow-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.estimate-flow-item{min-width:0;height:100%;padding:8px 10px 7px;border-left:2px solid rgba(48,220,255,.64);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.estimate-flow-item em,.estimate-flow-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-flow-item em{color:#dffaff99;font-style:normal;font-size:11px;line-height:14px}.estimate-flow-item strong{margin-top:5px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;font-weight:900;line-height:24px}.estimate-flow-item small{margin-left:3px;color:#dffaff94;font-size:10px;font-weight:600}.estimate-flow-item.is-adjustment{border-left-color:#8bf7ffa3;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.025)),rgba(3,25,40,.18)}.estimate-flow-item.is-adjustment strong{color:#8bf7ff}.estimate-flow-item.is-adjustment strong.negative{color:#48cfff}.estimate-result-band{position:relative;min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;overflow:hidden;padding:10px 14px 9px;border:1px solid rgba(48,220,255,.18);border-left:3px solid rgba(48,220,255,.76);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.16),transparent 46%),linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04)),rgba(3,25,40,.22);box-sizing:border-box}.estimate-result-band:after{content:"";position:absolute;right:-12px;bottom:-18px;width:118px;height:76px;pointer-events:none;background:radial-gradient(circle at center,rgba(48,220,255,.16),transparent 58%),linear-gradient(135deg,transparent 0 42%,rgba(48,220,255,.12) 43% 45%,transparent 46% 100%)}.estimate-result-band span,.estimate-result-band strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-result-band span{color:#dffaffb8;font-size:13px;line-height:16px}.estimate-result-band strong{position:relative;z-index:1;margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:38px;font-weight:900;line-height:42px}.estimate-result-band em{margin-left:5px;color:#dffaff9e;font-style:normal;font-size:12px}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.forecast-simple-grid span{min-width:0;height:38px;padding:5px 7px;border-left:2px solid rgba(48,220,255,.58);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02));box-sizing:border-box}.forecast-simple-grid em,.forecast-simple-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-simple-grid em{color:#dffaff8f;font-style:normal;font-size:10px;line-height:11px}.forecast-simple-grid strong{margin-top:3px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:900;line-height:15px}.forecast-simple-grid .positive{color:#8bf7ff}.forecast-simple-grid .negative{color:#48cfff}.forecast-summary-card{display:grid;grid-template-rows:minmax(84px,1fr) minmax(44px,.55fr);row-gap:9px;padding:8px 14px 10px;overflow:hidden}.forecast-result-row{display:grid;grid-template-columns:minmax(0,1fr) 98px;align-items:center;column-gap:8px;height:100%;min-height:0}.forecast-result-main{min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;padding:10px 12px;border-left:2px solid rgba(48,220,255,.7);background:radial-gradient(circle at 22% 50%,rgba(48,220,255,.16),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.16),rgba(48,220,255,.035)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-result-main span,.forecast-result-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-result-main span{color:#dffaffa8;font-size:13px;line-height:16px}.forecast-result-main strong{margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:35px;font-weight:900;line-height:39px}.forecast-result-main strong em{margin-left:4px;color:#dffaff9e;font-style:normal;font-size:11px}.forecast-change-badge{min-width:0;height:66px;padding:11px 9px 8px;border:1px solid rgba(139,247,255,.28);background:rgba(139,247,255,.06);box-sizing:border-box}.forecast-change-badge span,.forecast-change-badge strong{display:block;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.forecast-change-badge span{color:#dffaff8c;font-size:10px;line-height:11px}.forecast-change-badge strong{margin-top:2px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;line-height:16px}.forecast-change-badge strong em{margin-left:2px;color:#dffaff94;font-style:normal;font-size:10px}.forecast-change-badge.negative{border-color:#48cfff47;background:rgba(72,207,255,.06)}.forecast-change-badge.negative strong{color:#48cfff}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:0}.forecast-simple-grid span{height:100%;min-height:42px;padding:6px 8px}.forecast-simple-grid strong{margin-top:3px;font-size:15px;line-height:17px}.forecast-heat-list{display:flex;height:100%;flex-direction:column;gap:4px;padding:8px 13px 9px;box-sizing:border-box}.heat-row{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) 60px;align-items:center;gap:8px;min-height:0;flex:1 1 0;padding:0 8px;overflow:visible;border:1px solid rgba(48,220,255,.14);background:linear-gradient(90deg,rgba(48,220,255,.08),transparent 34%,rgba(36,246,196,.04)),rgba(2,18,30,.58);box-shadow:inset 0 0 0 1px #ffffff05,inset 0 0 12px #30dcff0a}.heat-row:before{content:"";position:absolute;left:78px;right:68px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.24),transparent);transform:translateY(-50%)}.heat-row:after{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:rgba(48,220,255,.82);box-shadow:none;opacity:.78}.heat-row span,.heat-row strong,.heat-row b{position:relative;z-index:1;white-space:nowrap}.heat-row span{color:#ecfdffe6;font-size:12px;line-height:14px;font-weight:900;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row b{display:block;height:11px;padding:2px;border:1px solid rgba(48,220,255,.22);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025)),rgba(0,14,24,.66);box-shadow:inset 0 0 10px #00000057,0 0 10px #30dcff14}.heat-row b i{position:relative;display:block;width:var(--heat-width);height:100%;min-width:8px;background:linear-gradient(90deg,rgba(255,255,255,.86),var(--heat-color) 16%,rgba(48,220,255,.72) 78%,rgba(255,255,255,.9)),linear-gradient(90deg,var(--heat-color-soft),transparent);box-shadow:0 0 5px #30dcff24;overflow:visible}.heat-row b i:after{content:"";position:absolute;right:-4px;top:50%;width:7px;height:7px;border-radius:50%;background:#ffffff;box-shadow:0 0 5px #ffffff52;transform:translateY(-50%)}.heat-row b i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);opacity:.72}.heat-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;font-weight:900;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row.is-negative{border-color:#48cfff2e}.epidemic-overview-chart-card{height:100%;padding:7px 9px 5px;box-sizing:border-box}.epidemic-overview-chart{width:100%;height:100%}.epidemic-chain-chart-card{height:100%;padding:7px 8px 5px;box-sizing:border-box}.epidemic-chain-chart{width:100%;height:100%}.epidemic-chain-card{height:100%;padding:9px 13px;box-sizing:border-box}.epidemic-chain-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;column-gap:8px}.epidemic-chain-row span{min-width:0;height:48px;padding:6px;border:1px solid rgba(48,220,255,.16);background:rgba(48,220,255,.05);box-sizing:border-box}.epidemic-chain-row em,.epidemic-chain-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-chain-row em{color:#dffaff8f;font-style:normal;font-size:10px}.epidemic-chain-row strong{margin-top:5px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900}.epidemic-chain-row i{color:#8bf7ffcc;font-style:normal;text-align:center}.epidemic-chain-note{margin:8px 0;padding:7px 9px;border-left:2px solid rgba(139,247,255,.76);background:rgba(139,247,255,.06)}.epidemic-chain-note span{display:block;color:#eafcffd6;font-size:11px;line-height:17px}.epidemic-chain-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.epidemic-chain-metrics span{min-width:0;display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;border:1px solid rgba(48,220,255,.14);background:rgba(48,220,255,.04)}.epidemic-chain-metrics em{color:#dffaff94;font-style:normal;font-size:10px}.epidemic-chain-metrics strong{overflow:hidden;color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-card{display:grid;grid-template-columns:142px minmax(0,1fr);align-items:center;gap:8px;height:100%;padding:8px 12px 8px 10px;box-sizing:border-box}.epidemic-three-pie-visual{position:relative;width:136px;height:136px;min-width:0}.epidemic-three-pie{width:100%;height:100%}.epidemic-three-pie-center{position:absolute;left:0;top:0;display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;text-shadow:0 0 10px rgba(0,0,0,.96);pointer-events:none}.epidemic-three-pie-center strong{overflow:hidden;max-width:84px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;line-height:22px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-2px)}.epidemic-three-pie-center span{overflow:hidden;max-width:86px;color:#fffffff5;font-size:10px;line-height:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-legend{display:flex;min-width:0;height:100%;flex-direction:column;justify-content:center;gap:6px}.epidemic-three-pie-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;column-gap:5px;min-height:17px}.epidemic-three-pie-row i{width:8px;height:8px;border:2px solid #30dcff;border-radius:2px;box-sizing:border-box;background:rgba(3,20,31,.84)}.epidemic-three-pie-row span{overflow:hidden;color:#e2faffd1;font-size:10px;line-height:13px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:13px;font-weight:800;white-space:nowrap}.epidemic-three-pie-row em{color:#dffaff8a;font-style:normal;font-size:10px;line-height:12px;white-space:nowrap}.epidemic-record-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.epidemic-record-table.is-double{gap:5px}.epidemic-record-table.is-full{gap:6px;padding:9px 10px 10px}.epidemic-record-toolbar{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.epidemic-record-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-toolbar>div{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.epidemic-record-toolbar input,.epidemic-record-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.epidemic-record-toolbar input{padding:0 7px}.epidemic-record-toolbar input::placeholder{color:#ffffff94}.epidemic-record-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.epidemic-record-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.epidemic-record-header,.epidemic-record-rows button{display:grid;grid-template-columns:112px 56px 42px 54px 64px;column-gap:4px;align-items:center}.epidemic-record-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.epidemic-record-header span{color:#ffffffc7;font-size:10px}.epidemic-record-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.epidemic-record-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.epidemic-record-rows button:hover,.epidemic-record-rows button.active{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.epidemic-record-rows span,.epidemic-record-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-rows strong{color:#8bf7ff;font-weight:700}.epidemic-record-table.is-full .epidemic-record-rows{gap:4px}.epidemic-record-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.epidemic-record-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.epidemic-record-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.epidemic-record-pager button:disabled{opacity:.36;cursor:not-allowed}.epidemic-empty{display:flex;height:100%;align-items:center;justify-content:center;color:#dffaff8f;font-size:12px}.epidemic-detail-head{display:flex;align-items:center;justify-content:space-between;height:28px;border-bottom:1px solid rgba(48,220,255,.14)}.epidemic-detail-head span{overflow:hidden;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-head strong{color:#dffaffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;white-space:nowrap}.epidemic-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.epidemic-detail-grid span{min-width:0;height:34px;padding:4px 7px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.035);box-sizing:border-box}.epidemic-detail-grid em,.epidemic-detail-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-grid em{color:#dffaff85;font-style:normal;font-size:10px;line-height:10px}.epidemic-detail-grid strong{margin-top:4px;color:#fff;font-size:11px;line-height:12px}.epidemic-detail-grid.is-modal{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.epidemic-detail-grid.is-modal span{height:39px;padding:5px 8px}.epidemic-detail-grid.is-modal .is-wide{grid-column:1/-1}.epidemic-ledger-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:rgba(0,8,14,.68);pointer-events:all}.epidemic-ledger-dialog{width:1260px;height:724px;padding:18px;border:1px solid rgba(139,247,255,.36);background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f;box-sizing:border-box}.epidemic-ledger-dialog-head{display:flex;align-items:center;justify-content:space-between;height:42px;border-bottom:1px solid rgba(48,220,255,.18)}.epidemic-ledger-dialog-head span{display:block;color:#fff;font-size:19px;font-weight:800}.epidemic-ledger-dialog-head strong{display:block;margin-top:3px;color:#ffffffdb;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-ledger-dialog-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-ledger-filters{display:grid;grid-template-columns:220px 130px 130px 132px 132px 66px 66px;gap:10px;align-items:center;margin:16px 0 14px}.epidemic-ledger-filters input,.epidemic-ledger-filters select,.epidemic-ledger-filters button{height:32px;min-width:0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.045);color:#fff;font-size:12px;box-sizing:border-box}.epidemic-ledger-filters input::placeholder{color:#ffffff9e}.epidemic-ledger-filters select option{color:#dffcff;background:#061926}.epidemic-ledger-filters input,.epidemic-ledger-filters select{padding:0 9px}.epidemic-ledger-filters button{cursor:pointer;background:rgba(139,247,255,.13);border-color:#8bf7ff5c;color:#fff;font-weight:700}.epidemic-ledger-filters button.is-ghost{background:rgba(255,255,255,.06);border-color:#ffffff2e}.epidemic-ledger-workspace{display:grid;grid-template-columns:minmax(0,1fr) 376px;gap:14px;height:548px}.epidemic-ledger-list{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;overflow:hidden;border:1px solid rgba(139,247,255,.16);background:rgba(255,255,255,.035);box-shadow:inset 0 0 24px #8bf7ff08;box-sizing:border-box}.epidemic-ledger-table-head,.epidemic-ledger-list button{display:grid;grid-template-columns:minmax(126px,1.5fr) minmax(76px,.9fr) 72px minmax(96px,1fr) 72px 82px 42px;align-items:center;column-gap:8px}.epidemic-ledger-table-head{height:34px;padding:0 12px;border:0;border-bottom:1px solid rgba(139,247,255,.14);border-radius:0;background:rgba(255,255,255,.07)}.epidemic-ledger-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;font-weight:700;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button{position:relative;width:100%;height:30px;padding:0 10px 0 12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.045),rgba(48,220,255,.018)),rgba(255,255,255,.025);color:#ffffffe6;cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease}.epidemic-ledger-list button:before{position:absolute;left:0;top:6px;width:2px;height:18px;content:"";opacity:0;background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.epidemic-ledger-list button.active,.epidemic-ledger-list button:hover{border-color:#30dcff5c;background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05)),rgba(255,255,255,.045);color:#fff}.epidemic-ledger-list button.active:before,.epidemic-ledger-list button:hover:before{opacity:1}.epidemic-ledger-list button span,.epidemic-ledger-list button strong{overflow:hidden;font-size:10px;line-height:12px;color:#fff;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button strong{color:#c9fbff;font-weight:800}.epidemic-ledger-detail{display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px;border:1px solid rgba(48,220,255,.15);background:rgba(48,220,255,.04);box-sizing:border-box}.epidemic-detail-scroll{flex:1 1 0;min-height:0;margin-top:10px;padding-right:4px;overflow-y:auto}.epidemic-detail-section+.epidemic-detail-section{margin-top:10px}.epidemic-detail-section-title{display:flex;align-items:center;height:18px;color:#8bf7ff;font-size:12px;font-weight:700;line-height:18px}.epidemic-modal-photo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:7px;overflow:hidden}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb{position:relative;width:100%;height:96px;padding:0;overflow:hidden;border:1px solid rgba(48,220,255,.24);background:rgba(48,220,255,.04);cursor:zoom-in;box-sizing:border-box}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover{border-color:#8bf7ff94;box-shadow:0 0 7px #8bf7ff1f}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:after{position:absolute;right:0;bottom:0;left:0;height:18px;content:"";background:linear-gradient(180deg,rgba(0,12,20,0),rgba(0,12,20,.92) 52%,rgba(0,12,20,.98));pointer-events:none}.epidemic-modal-photo-strip img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover img{transform:scale(1.03)}.epidemic-modal-photo-strip span{grid-column:1/-1;display:flex;height:96px;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.12);color:#dffaff8a;font-size:11px}.epidemic-image-preview-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:48;display:flex;align-items:center;justify-content:center;padding:46px;background:rgba(0,8,14,.78);pointer-events:all;box-sizing:border-box}.epidemic-image-preview-dialog{display:flex;width:min(920px,78vw);max-height:78vh;flex-direction:column;border:1px solid rgba(139,247,255,.34);background:linear-gradient(180deg,rgba(9,38,50,.97),rgba(2,15,26,.99)),rgba(2,17,28,.98);box-shadow:0 0 34px #8bf7ff24,inset 0 0 0 1px #ffffff0e}.epidemic-image-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:0 16px 0 18px;border-bottom:1px solid rgba(48,220,255,.16);box-sizing:border-box}.epidemic-image-preview-head div{min-width:0}.epidemic-image-preview-head span,.epidemic-image-preview-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-image-preview-head span{color:#fff;font-size:16px;font-weight:800}.epidemic-image-preview-head strong{margin-top:3px;color:#8bf7ffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-image-preview-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-image-preview-body{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;padding:16px;background:rgba(0,10,17,.42)}.epidemic-image-preview-frame{position:relative;display:flex;max-width:100%;max-height:calc(78vh - 84px);align-items:center;justify-content:center;overflow:hidden}.epidemic-image-preview-frame img{display:block;max-width:100%;max-height:calc(78vh - 84px);object-fit:contain}.epidemic-image-preview-frame:after{position:absolute;right:0;bottom:0;left:0;height:38px;content:"";background:linear-gradient(180deg,rgba(0,10,17,0),rgba(0,10,17,.96) 58%,rgba(0,10,17,.99));pointer-events:none}.epidemic-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:42px}.epidemic-ledger-pager span{color:#ffffffb8;font-size:12px}.epidemic-ledger-pager button{height:26px;padding:0 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:#fff;cursor:pointer}.epidemic-ledger-pager button:disabled{opacity:.38;cursor:not-allowed}.trade-ledger-dialog{width:1260px;height:724px;border-color:#8bf7ff5c;background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f}.trade-ledger-dialog .epidemic-ledger-dialog-head strong{color:#ffffffdb}.trade-ledger-dialog .epidemic-ledger-dialog-head button{border-color:#ffffff47;background:rgba(255,255,255,.08);color:#fff}.trade-ledger-filters{grid-template-columns:260px 150px 142px 142px 70px 70px}.trade-ledger-filters input,.trade-ledger-filters select,.trade-ledger-filters button{color:#fff}.trade-ledger-filters button{color:#fff;font-weight:700}.trade-ledger-workspace{grid-template-columns:minmax(0,1fr) 376px}.trade-ledger-modal-table-head,.trade-ledger-modal-list button{display:grid;grid-template-columns:128px 84px 92px 58px 88px 90px 102px 68px;align-items:center;column-gap:10px}.trade-ledger-modal-table-head{height:34px;padding:0 12px;border-bottom:1px solid rgba(139,247,255,.14);background:rgba(255,255,255,.07)}.trade-ledger-modal-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-modal-list{border-color:#30dcff29;background:rgba(255,255,255,.035)}.trade-ledger-modal-list button{height:34px;color:#ffffffe6}.trade-ledger-modal-list button.active,.trade-ledger-modal-list button:hover{background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05));color:#fff}.trade-ledger-modal-list button span,.trade-ledger-modal-list button strong{color:#fff}.trade-ledger-modal-list button strong{color:#c9fbff}.trade-ledger-detail{display:flex;flex-direction:column;padding:0;overflow:hidden;border-color:#30dcff3d;background:linear-gradient(180deg,rgba(8,42,54,.84),rgba(3,19,30,.92)),radial-gradient(circle at 10% 0,rgba(48,220,255,.12),transparent 38%),rgba(3,25,40,.48);box-shadow:inset 0 0 22px #30dcff0e,inset 0 0 0 1px #ffffff09}.trade-ledger-detail .trade-detail-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:76px;padding:15px 16px 13px;border-bottom:1px solid rgba(48,220,255,.18);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.035)),rgba(3,26,38,.62);box-sizing:border-box}.trade-ledger-detail .trade-detail-head:before{position:absolute;left:0;top:16px;width:3px;height:44px;content:"";background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.trade-ledger-detail .trade-detail-head div{min-width:0}.trade-ledger-detail .trade-detail-head span,.trade-ledger-detail .trade-detail-head em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-detail .trade-detail-head span{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;font-weight:800;line-height:24px}.trade-ledger-detail .trade-detail-head em{margin-top:6px;color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;line-height:16px}.trade-ledger-detail .trade-detail-head strong{padding:5px 9px;border:1px solid rgba(48,220,255,.18);background:rgba(5,27,38,.58);color:#edfdffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:800;white-space:nowrap}.epidemic-ledger-record-detail .trade-detail-head em{color:#8bf7ff}.epidemic-ledger-record-detail .epidemic-detail-flat-grid{padding-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid{flex:0 0 auto;align-content:start;grid-template-columns:66px minmax(0,1fr) 66px minmax(0,1fr);gap:0;margin:0;padding:14px 16px 0;overflow:hidden;border:1px solid rgba(48,220,255,.1);border-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid span{min-width:0;height:auto;padding:0;border:0;background:transparent;box-shadow:none}.epidemic-detail-grid.is-modal.trade-detail-grid:before{display:none}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide){display:contents}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) em,.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) strong,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide em,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide strong{display:flex;min-width:0;height:30px;align-items:center;padding:0 8px;border-bottom:1px solid rgba(48,220,255,.1);box-sizing:border-box}.epidemic-detail-grid.is-modal.trade-detail-grid em{justify-content:flex-end;color:#cdeff6a3;font-size:10px;font-style:normal;line-height:14px;text-align:right;background:rgba(139,247,255,.055);border-right:1px solid rgba(48,220,255,.085)}.epidemic-detail-grid.is-modal.trade-detail-grid em:after{content:":"}.epidemic-detail-grid.is-modal.trade-detail-grid strong{min-width:0;margin-top:0;overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(255,255,255,.03)}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide):nth-child(odd) strong{border-right:1px solid rgba(48,220,255,.065)}.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide{display:grid;grid-column:1/-1;grid-template-columns:66px minmax(0,1fr)}.epidemic-detail-photos{min-height:0;margin:12px 16px 16px;padding-top:10px;border-top:1px solid rgba(48,220,255,.12)}.epidemic-detail-photo-title{height:18px;color:#8bf7ff;font-size:12px;font-weight:800;line-height:18px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip .epidemic-modal-photo-thumb{height:76px;border-color:#30dcff38;border-radius:2px;background:rgba(4,28,41,.62)}.trade-detail-locate{width:calc(100% - 32px);height:36px;margin:auto 16px 16px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(139,247,255,.08)),rgba(4,28,41,.74);color:#fff;font-size:13px;font-weight:800;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.trade-detail-locate:hover:not(:disabled){border-color:#8bf7ff85;background:linear-gradient(90deg,rgba(139,247,255,.16),rgba(48,220,255,.11)),rgba(8,36,48,.84);box-shadow:0 0 7px #8bf7ff1a}.trade-detail-locate:disabled{opacity:.38;cursor:not-allowed}.trade-overview-card{display:grid;grid-template-rows:minmax(0,1fr) 46px;row-gap:10px;height:100%;padding:14px 13px 10px;box-sizing:border-box}.trade-main-metric{display:flex;min-width:0;flex-direction:column;justify-content:center}.trade-main-metric span,.trade-main-metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-main-metric span{color:#ffffffd6;font-size:12px;line-height:14px}.trade-main-metric strong{margin-top:3px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:27px;font-weight:900;line-height:29px}.trade-main-metric strong em{margin-left:5px;color:#ffffffd1;font-style:normal;font-size:12px}.trade-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.trade-metric-grid span{min-width:0;padding:5px 7px;border-left:2px solid rgba(139,247,255,.62);background:linear-gradient(90deg,rgba(139,247,255,.11),rgba(48,220,255,.03));box-sizing:border-box}.trade-metric-grid em,.trade-metric-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-metric-grid em{color:#ffffffc7;font-style:normal;font-size:10px;line-height:11px}.trade-metric-grid strong{margin-top:4px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900}.trade-risk-card{display:grid;grid-template-rows:30px minmax(0,1fr);gap:5px;height:100%;padding:9px 12px 10px;overflow:hidden;box-sizing:border-box}.trade-risk-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:0 9px;border-left:3px solid rgba(139,247,255,.78);background:linear-gradient(90deg,rgba(139,247,255,.14),rgba(48,220,255,.025)),rgba(3,25,40,.2);box-sizing:border-box}.trade-risk-head span,.trade-risk-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.trade-risk-head strong{flex:0 0 auto;color:#8bf7ff;font-size:12px;line-height:16px;font-weight:900;text-align:right}.trade-risk-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:4px;min-height:0}.trade-risk-row{position:relative;display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:0;padding:3px 8px 3px 10px;overflow:hidden;border:1px solid rgba(48,220,255,.11);background:linear-gradient(90deg,color-mix(in srgb,var(--risk-color) 12%,transparent),rgba(48,220,255,.02)),rgba(4,24,37,.2);box-sizing:border-box}.trade-risk-row:before{content:"";position:absolute;left:0;top:50%;width:2px;height:22px;background:rgba(48,220,255,.78);box-shadow:none;transform:translateY(-50%)}.trade-risk-row i{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--risk-color);box-shadow:none}.trade-risk-row span{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;min-width:0;gap:8px}.trade-risk-row em,.trade-risk-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-row em{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0;color:#ffffffe6;font-size:11px;line-height:14px;font-style:normal;font-weight:900}.trade-risk-row em b{flex:0 0 auto;min-width:28px;height:15px;padding:0 5px;border:1px solid color-mix(in srgb,var(--risk-color) 52%,transparent);border-radius:1px;color:var(--risk-color);font-size:10px;line-height:13px;font-weight:900;text-align:center;background:color-mix(in srgb,var(--risk-color) 13%,rgba(3,25,40,.62));box-sizing:border-box}.trade-risk-row small{flex:1 1 auto;min-width:0;color:#e2fcffc2;font-size:10px;line-height:12px;text-align:right}.trade-risk-row.is-high{border-color:#48cfff3d}.trade-risk-row.is-high small{color:#c9fbffe0}.trade-risk-row.is-watch small{color:#8bf7ffd1}.trade-cert-card{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;height:100%;padding:9px 12px;box-sizing:border-box}.trade-cert-main{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:8px}.trade-cert-main span{min-width:0;padding:7px 8px;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.045)}.trade-cert-main em,.trade-cert-main strong,.trade-cert-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-cert-main em{color:#ffffffc7;font-style:normal;font-size:10px}.trade-cert-main strong{margin-top:4px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:20px;font-weight:900}.trade-cert-main strong b{margin-left:3px;color:#ffffffd1;font-size:10px;font-weight:500}.trade-cert-main small{margin-top:3px;color:#ffffffd1;font-size:10px}.trade-cert-chart{width:108px;height:100%}.trade-dest-list{display:flex;height:100%;flex-direction:column;gap:3px;padding:7px 10px 8px;box-sizing:border-box}.trade-dest-row{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 66px;align-items:center;min-height:0;flex:1 1 0;column-gap:6px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035)}.trade-dest-row:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--trade-ratio);background:linear-gradient(90deg,rgba(139,247,255,.22),rgba(48,220,255,.08))}.trade-dest-row span,.trade-dest-row strong,.trade-dest-row em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-dest-row span{padding-left:7px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;font-weight:900}.trade-dest-row strong{color:#fff;font-size:11px;line-height:13px}.trade-dest-row em{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-style:normal;font-size:11px;line-height:13px;text-align:right}.trade-ledger-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.trade-ledger-toolbar{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.trade-ledger-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-toolbar>div{display:grid;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.trade-ledger-toolbar input,.trade-ledger-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.trade-ledger-toolbar input{padding:0 7px}.trade-ledger-toolbar input::placeholder{color:#ffffff94}.trade-ledger-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.trade-ledger-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.trade-ledger-header,.trade-ledger-rows button{display:grid;grid-template-columns:98px 56px 39px 38px 34px 64px;column-gap:4px;align-items:center}.trade-ledger-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.trade-ledger-header span{color:#ffffffc7;font-size:10px}.trade-ledger-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.trade-ledger-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.trade-ledger-rows button:hover{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.trade-ledger-rows span,.trade-ledger-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-rows span:first-child{line-height:12px;white-space:normal;word-break:break-all;text-overflow:clip}.trade-ledger-rows strong{color:#8bf7ff;font-weight:700}.trade-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.trade-ledger-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.trade-ledger-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.trade-ledger-pager button:disabled{opacity:.36;cursor:not-allowed} diff --git a/docs/assets/index-148a2898-balabala-1784045078568.css b/docs/assets/index-148a2898-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-148a2898-balabala-1784045078568.css rename to docs/assets/index-148a2898-balabala-1784074877048.css diff --git a/docs/assets/index-1784045078568.js b/docs/assets/index-1784074877048.js similarity index 99% rename from docs/assets/index-1784045078568.js rename to docs/assets/index-1784074877048.js index af98e56..6d095d4 100644 --- a/docs/assets/index-1784045078568.js +++ b/docs/assets/index-1784074877048.js @@ -22,7 +22,7 @@ var qO=Object.defineProperty,KO=Object.defineProperties;var jO=Object.getOwnProp * vue-router v4.6.4 * (c) 2025 Eduardo San Martin Morote * @license MIT - */let gz=()=>location.protocol+"//"+location.host;function NI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),jS(s,"")}return jS(e,r)+n+i}function yz(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=NI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Ly.pop,direction:g?g>0?Ud.forward:Ud.back:Ud.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:$v()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function rx(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?$v():null}}function mz(r){const{history:t,location:e}=window,n={value:NI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:gz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,rx(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:$v()});a(f.current,f,!0),a(l,Kt({},rx(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function _z(r){r=rz(r);const t=mz(r),e=yz(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:iz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Sz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),_z(r)}let no=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const xz={type:no.Static,value:""},bz=/[a-zA-Z0-9_]/;function wz(r){if(!r)return[[]];if(r==="/")return[[xz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:no.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:no.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function VI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Dz={strict:!1,end:!0,sensitive:!1};function Iz(r,t,e){const n=Cz(wz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Lz(r,t){const e=[],n=new Map;t=KS(Dz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=ox(c);p.aliasOf=v&&v.record;const g=KS(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(ox(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Iz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!sx(m)&&o(c.name)),BI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:gu}function o(c){if(kI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Ez(c,e);e.splice(h,0,c),c.record.name&&!sx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ax(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ax(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Rz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ax(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function ox(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:Pz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Pz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function sx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Rz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Ez(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;VI(r,t[a])<0?n=a:e=a+1}const i=kz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function kz(r){let t=r;for(;t=t.parent;)if(BI(t)&&VI(r,t)===0)return t}function BI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function lx(r){const t=un(Uv),e=un(Z0),n=nn(()=>{const l=go(r.to);return t.resolve(l)}),i=nn(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(zs.bind(null,f));if(h>-1)return h;const v=ux(l[u-2]);return u>1&&ux(f)===v&&c[c.length-1].path!==v?c.findIndex(zs.bind(null,l[u-2])):h}),a=nn(()=>i.value>-1&&zz(e.params,n.value.params)),o=nn(()=>i.value>-1&&i.value===e.matched.length-1&&EI(e.params,n.value.params));function s(l={}){if(Bz(l)){const u=t[go(r.replace)?"replace":"push"](go(r.to)).catch(gu);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:nn(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Oz(r){return r.length===1?r[0]:r}const Nz=V0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:lx,setup(r,{slots:t}){const e=Bv(lx(r)),{options:n}=un(Uv),i=nn(()=>({[fx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[fx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Oz(t.default(e));return r.custom?a:TI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Vz=Nz;function Bz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!dn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function ux(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const fx=(r,t,e)=>r!=null?r:t!=null?t:e,Gz=V0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=un(Ry),i=nn(()=>r.route||n.value),a=un(ex,0),o=nn(()=>{let u=go(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=nn(()=>i.value.matched[o.value]);Kc(ex,nn(()=>o.value+1)),Kc(dz,s),Kc(Ry,i);const l=qc();return jc(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!zs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return cx(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=TI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return cx(e.default,{Component:g,route:u})||g}}});function cx(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const Fz=Gz;function Hz(r){const t=Lz(r.routes,r),e=r.parseQuery||hz,n=r.stringifyQuery||tx,i=r.history,a=_l(),o=_l(),s=_l(),l=kN(Mi);let u=Mi;ds&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wd.bind(null,U=>""+U),c=Wd.bind(null,qB),h=Wd.bind(null,zu);function v(U,K){let H,tt;return kI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=$d(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:zu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:$d(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=JB(n,Kt({},U,{hash:YB(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===tx?vz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?$d(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Gs(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&QB(n,tt,H)&&(X=Gs(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>jn(W)?jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=pz(U,K);H=Yd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push(Hi(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Yd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push(Hi(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(dn(k.beforeEnter))for(const z of k.beforeEnter)H.push(Hi(z,U,K));else H.push(Hi(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Yd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).catch(k=>jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Mi,k=ds?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(gu);return}u=tt;const ut=l.value;ds&&sz(QS(ut.fullPath,H.delta),$v()),C(tt,ut).catch(R=>jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Ly.pop&&i.go(-1,!1)}).catch(gu),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Ly.pop&&jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(gu)}))}let E=_l(),O=_l(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Mi?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ds||!j)return Promise.resolve();const ut=!H&&lz(QS(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return E0().then(()=>j(U,K,ut)).then(R=>R&&oz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Vz),U.component("RouterView",Fz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>go(l)}),ds&&!ct&&l.value===Mi&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Mi)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Uv,gt),U.provide(Z0,UD(K)),U.provide(Ry,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Mi,L&&L(),L=null,l.value=Mi,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function Xit(){return un(Uv)}function qit(r){return un(Z0)}const io="Authorization",Wz=["/","/screen2","/screen2/"];function $z(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Uz(r){return encodeURIComponent(r||"/platform")}function hx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${io}=`));return r?decodeURIComponent(r.slice(io.length+1)):""}function zI(){const r=$z();Wz.forEach(t=>{document.cookie=`${io}=; Max-Age=0; path=${t}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${io}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function Ey(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Uz(r)}`}function Yz(r){zI();const t=Ey(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function Kit(r,t){return pl(this,null,function*(){var i;zI();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${io}=${encodeURIComponent(n.data.token)}; path=/`),n})}function jit(){return pl(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),Yz("/platform")})}function Zz(){return pl(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const vx=()=>U0(()=>import("./index-6a8ef8cf-1784045078568.js").then(r=>r.i),["./index-6a8ef8cf-1784045078568.js","./index-e9f36657-1784045078568.js","./index-0ef0ebc0-balabala-1784045078568.css"],import.meta.url),Xz=()=>U0(()=>import("./index-bb5d6c3e-1784045078568.js"),["./index-bb5d6c3e-1784045078568.js","./index-a8767fd0-balabala-1784045078568.css"],import.meta.url),qz=()=>U0(()=>import("./index-2f522628-1784045078568.js"),["./index-2f522628-1784045078568.js","./index.esm.min-43166a2f-1784045078568.js","./index-27149dbd-1784045078568.js","./index-148a2898-balabala-1784045078568.css","./screen2Standard-98cd5b6c-1784045078568.js","./index-e9f36657-1784045078568.js","./screen2Standard-cdb21878-balabala-1784045078568.css","./chartTheme-8c348a2d-1784045078568.js","./index-8d752fbe-balabala-1784045078568.css"],import.meta.url),GI=Hz({history:Sz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:Xz,meta:{public:!0}},{path:"/platform",component:vx},{path:"/forest-grass-wet",component:vx},{path:"/chart-style-guide",component:qz},{path:"/:pathMatch(.*)",redirect:"/"}]});let yu=null;GI.beforeEach(r=>pl(void 0,null,function*(){if(r.meta.public){if(hx())try{return yield dx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){yu=null}return!0}if(!hx())return Ey(r.fullPath);try{return yield dx(),!0}catch(t){return yu=null,Ey(r.fullPath)}}));function dx(){return yu||(yu=Zz()),yu}const Kz=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},jz={};function Jz(r,t){const e=vV("router-view");return Mh(),Ih(e)}const Qz=Kz(jz,[["render",Jz]]);/*! ***************************************************************************** + */let gz=()=>location.protocol+"//"+location.host;function NI(r,t){const{pathname:e,search:n,hash:i}=t,a=r.indexOf("#");if(a>-1){let o=i.includes(r.slice(a))?r.slice(a).length:1,s=i.slice(o);return s[0]!=="/"&&(s="/"+s),jS(s,"")}return jS(e,r)+n+i}function yz(r,t,e,n){let i=[],a=[],o=null;const s=({state:h})=>{const v=NI(r,location),d=e.value,p=t.value;let g=0;if(h){if(e.value=v,t.value=h,o&&o===d){o=null;return}g=p?h.position-p.position:0}else n(v);i.forEach(y=>{y(e.value,d,{delta:g,type:Ly.pop,direction:g?g>0?Ud.forward:Ud.back:Ud.unknown})})};function l(){o=e.value}function u(h){i.push(h);const v=()=>{const d=i.indexOf(h);d>-1&&i.splice(d,1)};return a.push(v),v}function f(){if(document.visibilityState==="hidden"){const{history:h}=window;if(!h.state)return;h.replaceState(Kt({},h.state,{scroll:$v()}),"")}}function c(){for(const h of a)h();a=[],window.removeEventListener("popstate",s),window.removeEventListener("pagehide",f),document.removeEventListener("visibilitychange",f)}return window.addEventListener("popstate",s),window.addEventListener("pagehide",f),document.addEventListener("visibilitychange",f),{pauseListeners:l,listen:u,destroy:c}}function rx(r,t,e,n=!1,i=!1){return{back:r,current:t,forward:e,replaced:n,position:window.history.length,scroll:i?$v():null}}function mz(r){const{history:t,location:e}=window,n={value:NI(r,e)},i={value:t.state};i.value||a(n.value,{back:null,current:n.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function a(l,u,f){const c=r.indexOf("#"),h=c>-1?(e.host&&document.querySelector("base")?r:r.slice(c))+l:gz()+r+l;try{t[f?"replaceState":"pushState"](u,"",h),i.value=u}catch(v){console.error(v),e[f?"replace":"assign"](h)}}function o(l,u){a(l,Kt({},t.state,rx(i.value.back,l,i.value.forward,!0),u,{position:i.value.position}),!0),n.value=l}function s(l,u){const f=Kt({},i.value,t.state,{forward:l,scroll:$v()});a(f.current,f,!0),a(l,Kt({},rx(n.value,l,null),{position:f.position+1},u),!1),n.value=l}return{location:n,state:i,push:s,replace:o}}function _z(r){r=rz(r);const t=mz(r),e=yz(r,t.state,t.location,t.replace);function n(a,o=!0){o||e.pauseListeners(),history.go(a)}const i=Kt({location:"",base:r,go:n,createHref:iz.bind(null,r)},t,e);return Object.defineProperty(i,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(i,"state",{enumerable:!0,get:()=>t.state.value}),i}function Sz(r){return r=location.host?r||location.pathname+location.search:"",r.includes("#")||(r+="#"),_z(r)}let no=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.Group=2]="Group",r}({});var Te=function(r){return r[r.Static=0]="Static",r[r.Param=1]="Param",r[r.ParamRegExp=2]="ParamRegExp",r[r.ParamRegExpEnd=3]="ParamRegExpEnd",r[r.EscapeNext=4]="EscapeNext",r}(Te||{});const xz={type:no.Static,value:""},bz=/[a-zA-Z0-9_]/;function wz(r){if(!r)return[[]];if(r==="/")return[[xz]];if(!r.startsWith("/"))throw new Error(`Invalid path "${r}"`);function t(v){throw new Error(`ERR (${e})/"${u}": ${v}`)}let e=Te.Static,n=e;const i=[];let a;function o(){a&&i.push(a),a=[]}let s=0,l,u="",f="";function c(){u&&(e===Te.Static?a.push({type:no.Static,value:u}):e===Te.Param||e===Te.ParamRegExp||e===Te.ParamRegExpEnd?(a.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),a.push({type:no.Param,value:u,regexp:f,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),u="")}function h(){u+=l}for(;st.length?t.length===1&&t[0]===er.Static+er.Segment?1:-1:0}function VI(r,t){let e=0;const n=r.score,i=t.score;for(;e0&&t[t.length-1]<0}const Dz={strict:!1,end:!0,sensitive:!1};function Iz(r,t,e){const n=Cz(wz(r.path),e),i=Kt(n,{record:r,parent:t,children:[],alias:[]});return t&&!i.record.aliasOf==!t.record.aliasOf&&t.children.push(i),i}function Lz(r,t){const e=[],n=new Map;t=KS(Dz,t);function i(c){return n.get(c)}function a(c,h,v){const d=!v,p=ox(c);p.aliasOf=v&&v.record;const g=KS(t,c),y=[p];if("alias"in c){const S=typeof c.alias=="string"?[c.alias]:c.alias;for(const x of S)y.push(ox(Kt({},p,{components:v?v.record.components:p.components,path:x,aliasOf:v?v.record:p})))}let m,_;for(const S of y){const{path:x}=S;if(h&&x[0]!=="/"){const b=h.record.path,w=b[b.length-1]==="/"?"":"/";S.path=h.record.path+(x&&w+x)}if(m=Iz(S,h,g),v?v.alias.push(m):(_=_||m,_!==m&&_.alias.push(m),d&&c.name&&!sx(m)&&o(c.name)),BI(m)&&l(m),p.children){const b=p.children;for(let w=0;w{o(_)}:gu}function o(c){if(kI(c)){const h=n.get(c);h&&(n.delete(c),e.splice(e.indexOf(h),1),h.children.forEach(o),h.alias.forEach(o))}else{const h=e.indexOf(c);h>-1&&(e.splice(h,1),c.record.name&&n.delete(c.record.name),c.children.forEach(o),c.alias.forEach(o))}}function s(){return e}function l(c){const h=Ez(c,e);e.splice(h,0,c),c.record.name&&!sx(c)&&n.set(c.record.name,c)}function u(c,h){let v,d={},p,g;if("name"in c&&c.name){if(v=n.get(c.name),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c});g=v.record.name,d=Kt(ax(h.params,v.keys.filter(_=>!_.optional).concat(v.parent?v.parent.keys.filter(_=>_.optional):[]).map(_=>_.name)),c.params&&ax(c.params,v.keys.map(_=>_.name))),p=v.stringify(d)}else if(c.path!=null)p=c.path,v=e.find(_=>_.re.test(p)),v&&(d=v.parse(p),g=v.record.name);else{if(v=h.name?n.get(h.name):e.find(_=>_.re.test(h.path)),!v)throw Gs(ve.MATCHER_NOT_FOUND,{location:c,currentLocation:h});g=v.record.name,d=Kt({},h.params,c.params),p=v.stringify(d)}const y=[];let m=v;for(;m;)y.unshift(m.record),m=m.parent;return{name:g,path:p,params:d,matched:y,meta:Rz(y)}}r.forEach(c=>a(c));function f(){e.length=0,n.clear()}return{addRoute:a,resolve:u,removeRoute:o,clearRoutes:f,getRoutes:s,getRecordMatcher:i}}function ax(r,t){const e={};for(const n of t)n in r&&(e[n]=r[n]);return e}function ox(r){const t={path:r.path,redirect:r.redirect,name:r.name,meta:r.meta||{},aliasOf:r.aliasOf,beforeEnter:r.beforeEnter,props:Pz(r),children:r.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in r?r.components||null:r.component&&{default:r.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Pz(r){const t={},e=r.props||!1;if("component"in r)t.default=e;else for(const n in r.components)t[n]=typeof e=="object"?e[n]:e;return t}function sx(r){for(;r;){if(r.record.aliasOf)return!0;r=r.parent}return!1}function Rz(r){return r.reduce((t,e)=>Kt(t,e.meta),{})}function Ez(r,t){let e=0,n=t.length;for(;e!==n;){const a=e+n>>1;VI(r,t[a])<0?n=a:e=a+1}const i=kz(r);return i&&(n=t.lastIndexOf(i,n-1)),n}function kz(r){let t=r;for(;t=t.parent;)if(BI(t)&&VI(r,t)===0)return t}function BI({record:r}){return!!(r.name||r.components&&Object.keys(r.components).length||r.redirect)}function lx(r){const t=un(Uv),e=un(Z0),n=nn(()=>{const l=go(r.to);return t.resolve(l)}),i=nn(()=>{const{matched:l}=n.value,{length:u}=l,f=l[u-1],c=e.matched;if(!f||!c.length)return-1;const h=c.findIndex(zs.bind(null,f));if(h>-1)return h;const v=ux(l[u-2]);return u>1&&ux(f)===v&&c[c.length-1].path!==v?c.findIndex(zs.bind(null,l[u-2])):h}),a=nn(()=>i.value>-1&&zz(e.params,n.value.params)),o=nn(()=>i.value>-1&&i.value===e.matched.length-1&&EI(e.params,n.value.params));function s(l={}){if(Bz(l)){const u=t[go(r.replace)?"replace":"push"](go(r.to)).catch(gu);return r.viewTransition&&typeof document!="undefined"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:n,href:nn(()=>n.value.href),isActive:a,isExactActive:o,navigate:s}}function Oz(r){return r.length===1?r[0]:r}const Nz=V0({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:lx,setup(r,{slots:t}){const e=Bv(lx(r)),{options:n}=un(Uv),i=nn(()=>({[fx(r.activeClass,n.linkActiveClass,"router-link-active")]:e.isActive,[fx(r.exactActiveClass,n.linkExactActiveClass,"router-link-exact-active")]:e.isExactActive}));return()=>{const a=t.default&&Oz(t.default(e));return r.custom?a:TI("a",{"aria-current":e.isExactActive?r.ariaCurrentValue:null,href:e.href,onClick:e.navigate,class:i.value},a)}}}),Vz=Nz;function Bz(r){if(!(r.metaKey||r.altKey||r.ctrlKey||r.shiftKey)&&!r.defaultPrevented&&!(r.button!==void 0&&r.button!==0)){if(r.currentTarget&&r.currentTarget.getAttribute){const t=r.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return r.preventDefault&&r.preventDefault(),!0}}function zz(r,t){for(const e in t){const n=t[e],i=r[e];if(typeof n=="string"){if(n!==i)return!1}else if(!dn(i)||i.length!==n.length||n.some((a,o)=>a.valueOf()!==i[o].valueOf()))return!1}return!0}function ux(r){return r?r.aliasOf?r.aliasOf.path:r.path:""}const fx=(r,t,e)=>r!=null?r:t!=null?t:e,Gz=V0({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(r,{attrs:t,slots:e}){const n=un(Ry),i=nn(()=>r.route||n.value),a=un(ex,0),o=nn(()=>{let u=go(a);const{matched:f}=i.value;let c;for(;(c=f[u])&&!c.components;)u++;return u}),s=nn(()=>i.value.matched[o.value]);Kc(ex,nn(()=>o.value+1)),Kc(dz,s),Kc(Ry,i);const l=qc();return jc(()=>[l.value,s.value,r.name],([u,f,c],[h,v,d])=>{f&&(f.instances[c]=u,v&&v!==f&&u&&u===h&&(f.leaveGuards.size||(f.leaveGuards=v.leaveGuards),f.updateGuards.size||(f.updateGuards=v.updateGuards))),u&&f&&(!v||!zs(f,v)||!h)&&(f.enterCallbacks[c]||[]).forEach(p=>p(u))},{flush:"post"}),()=>{const u=i.value,f=r.name,c=s.value,h=c&&c.components[f];if(!h)return cx(e.default,{Component:h,route:u});const v=c.props[f],d=v?v===!0?u.params:typeof v=="function"?v(u):v:null,g=TI(h,Kt({},d,t,{onVnodeUnmounted:y=>{y.component.isUnmounted&&(c.instances[f]=null)},ref:l}));return cx(e.default,{Component:g,route:u})||g}}});function cx(r,t){if(!r)return null;const e=r(t);return e.length===1?e[0]:e}const Fz=Gz;function Hz(r){const t=Lz(r.routes,r),e=r.parseQuery||hz,n=r.stringifyQuery||tx,i=r.history,a=_l(),o=_l(),s=_l(),l=kN(Mi);let u=Mi;ds&&r.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const f=Wd.bind(null,U=>""+U),c=Wd.bind(null,qB),h=Wd.bind(null,zu);function v(U,K){let H,tt;return kI(U)?(H=t.getRecordMatcher(U),tt=K):tt=U,t.addRoute(tt,H)}function d(U){const K=t.getRecordMatcher(U);K&&t.removeRoute(K)}function p(){return t.getRoutes().map(U=>U.record)}function g(U){return!!t.getRecordMatcher(U)}function y(U,K){if(K=Kt({},K||l.value),typeof U=="string"){const k=$d(e,U,K.path),z=t.resolve({path:k.path},K),X=i.createHref(k.fullPath);return Kt(k,z,{params:h(z.params),hash:zu(k.hash),redirectedFrom:void 0,href:X})}let H;if(U.path!=null)H=Kt({},U,{path:$d(e,U.path,K.path).path});else{const k=Kt({},U.params);for(const z in k)k[z]==null&&delete k[z];H=Kt({},U,{params:c(k)}),K.params=c(K.params)}const tt=t.resolve(H,K),j=U.hash||"";tt.params=f(h(tt.params));const ut=JB(n,Kt({},U,{hash:YB(j),path:tt.path})),R=i.createHref(ut);return Kt({fullPath:ut,hash:j,query:n===tx?vz(U.query):U.query||{}},tt,{redirectedFrom:void 0,href:R})}function m(U){return typeof U=="string"?$d(e,U,l.value.path):Kt({},U)}function _(U,K){if(u!==U)return Gs(ve.NAVIGATION_CANCELLED,{from:K,to:U})}function S(U){return w(U)}function x(U){return S(Kt(m(U),{replace:!0}))}function b(U,K){const H=U.matched[U.matched.length-1];if(H&&H.redirect){const{redirect:tt}=H;let j=typeof tt=="function"?tt(U,K):tt;return typeof j=="string"&&(j=j.includes("?")||j.includes("#")?j=m(j):{path:j},j.params={}),Kt({query:U.query,hash:U.hash,params:j.path!=null?{}:U.params},j)}}function w(U,K){const H=u=y(U),tt=l.value,j=U.state,ut=U.force,R=U.replace===!0,k=b(H,tt);if(k)return w(Kt(m(k),{state:typeof k=="object"?Kt({},j,k.state):j,force:ut,replace:R}),K||H);const z=H;z.redirectedFrom=K;let X;return!ut&&QB(n,tt,H)&&(X=Gs(ve.NAVIGATION_DUPLICATED,{to:z,from:tt}),q(tt,tt,!0,!1)),(X?Promise.resolve(X):C(z,tt)).catch(W=>jn(W)?jn(W,ve.NAVIGATION_GUARD_REDIRECT)?W:$(W):N(W,z,tt)).then(W=>{if(W){if(jn(W,ve.NAVIGATION_GUARD_REDIRECT))return w(Kt({replace:R},m(W.to),{state:typeof W.to=="object"?Kt({},j,W.to.state):j,force:ut}),K||z)}else W=I(z,tt,!0,R,j);return D(z,tt,W),W})}function T(U,K){const H=_(U,K);return H?Promise.reject(H):Promise.resolve()}function A(U){const K=ht.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(U):U()}function C(U,K){let H;const[tt,j,ut]=pz(U,K);H=Yd(tt.reverse(),"beforeRouteLeave",U,K);for(const k of tt)k.leaveGuards.forEach(z=>{H.push(Hi(z,U,K))});const R=T.bind(null,U,K);return H.push(R),Et(H).then(()=>{H=[];for(const k of a.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).then(()=>{H=Yd(j,"beforeRouteUpdate",U,K);for(const k of j)k.updateGuards.forEach(z=>{H.push(Hi(z,U,K))});return H.push(R),Et(H)}).then(()=>{H=[];for(const k of ut)if(k.beforeEnter)if(dn(k.beforeEnter))for(const z of k.beforeEnter)H.push(Hi(z,U,K));else H.push(Hi(k.beforeEnter,U,K));return H.push(R),Et(H)}).then(()=>(U.matched.forEach(k=>k.enterCallbacks={}),H=Yd(ut,"beforeRouteEnter",U,K,A),H.push(R),Et(H))).then(()=>{H=[];for(const k of o.list())H.push(Hi(k,U,K));return H.push(R),Et(H)}).catch(k=>jn(k,ve.NAVIGATION_CANCELLED)?k:Promise.reject(k))}function D(U,K,H){s.list().forEach(tt=>A(()=>tt(U,K,H)))}function I(U,K,H,tt,j){const ut=_(U,K);if(ut)return ut;const R=K===Mi,k=ds?history.state:{};H&&(tt||R?i.replace(U.fullPath,Kt({scroll:R&&k&&k.scroll},j)):i.push(U.fullPath,j)),l.value=U,q(U,K,H,R),$()}let L;function P(){L||(L=i.listen((U,K,H)=>{if(!gt.listening)return;const tt=y(U),j=b(tt,gt.currentRoute.value);if(j){w(Kt(j,{replace:!0,force:!0}),tt).catch(gu);return}u=tt;const ut=l.value;ds&&sz(QS(ut.fullPath,H.delta),$v()),C(tt,ut).catch(R=>jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_CANCELLED)?R:jn(R,ve.NAVIGATION_GUARD_REDIRECT)?(w(Kt(m(R.to),{force:!0}),tt).then(k=>{jn(k,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&!H.delta&&H.type===Ly.pop&&i.go(-1,!1)}).catch(gu),Promise.reject()):(H.delta&&i.go(-H.delta,!1),N(R,tt,ut))).then(R=>{R=R||I(tt,ut,!1),R&&(H.delta&&!jn(R,ve.NAVIGATION_CANCELLED)?i.go(-H.delta,!1):H.type===Ly.pop&&jn(R,ve.NAVIGATION_ABORTED|ve.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),D(tt,ut,R)}).catch(gu)}))}let E=_l(),O=_l(),V;function N(U,K,H){$(U);const tt=O.list();return tt.length?tt.forEach(j=>j(U,K,H)):console.error(U),Promise.reject(U)}function G(){return V&&l.value!==Mi?Promise.resolve():new Promise((U,K)=>{E.add([U,K])})}function $(U){return V||(V=!U,P(),E.list().forEach(([K,H])=>U?H(U):K()),E.reset()),U}function q(U,K,H,tt){const{scrollBehavior:j}=r;if(!ds||!j)return Promise.resolve();const ut=!H&&lz(QS(U.fullPath,0))||(tt||!H)&&history.state&&history.state.scroll||null;return E0().then(()=>j(U,K,ut)).then(R=>R&&oz(R)).catch(R=>N(R,U,K))}const Q=U=>i.go(U);let ct;const ht=new Set,gt={currentRoute:l,listening:!0,addRoute:v,removeRoute:d,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:p,resolve:y,options:r,push:S,replace:x,go:Q,back:()=>Q(-1),forward:()=>Q(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:O.add,isReady:G,install(U){U.component("RouterLink",Vz),U.component("RouterView",Fz),U.config.globalProperties.$router=gt,Object.defineProperty(U.config.globalProperties,"$route",{enumerable:!0,get:()=>go(l)}),ds&&!ct&&l.value===Mi&&(ct=!0,S(i.location).catch(tt=>{}));const K={};for(const tt in Mi)Object.defineProperty(K,tt,{get:()=>l.value[tt],enumerable:!0});U.provide(Uv,gt),U.provide(Z0,UD(K)),U.provide(Ry,l);const H=U.unmount;ht.add(U),U.unmount=function(){ht.delete(U),ht.size<1&&(u=Mi,L&&L(),L=null,l.value=Mi,ct=!1,V=!1),H()}}};function Et(U){return U.reduce((K,H)=>K.then(()=>A(H)),Promise.resolve())}return gt}function Xit(){return un(Uv)}function qit(r){return un(Z0)}const io="Authorization",Wz=["/","/screen2","/screen2/"];function $z(){const r=window.location.hostname;if(!r||/^\d{1,3}(\.\d{1,3}){3}$/.test(r))return r?[r]:[];const t=r.split(".").filter(Boolean),e=new Set([r,`.${r}`]);if(t.length>2){const n=t.slice(-2).join(".");e.add(n),e.add(`.${n}`)}return Array.from(e)}function Uz(r){return encodeURIComponent(r||"/platform")}function hx(){const r=document.cookie.split(";").map(t=>t.trim()).find(t=>t.startsWith(`${io}=`));return r?decodeURIComponent(r.slice(io.length+1)):""}function zI(){const r=$z();Wz.forEach(t=>{document.cookie=`${io}=; Max-Age=0; path=${t}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}`,r.forEach(e=>{document.cookie=`${io}=; Max-Age=0; path=${t}; domain=${e}`,document.cookie=`${io}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${t}; domain=${e}`})})}function Ey(r=window.location.hash.replace(/^#/,"")||"/platform"){return`/login?redirect=${Uz(r)}`}function Yz(r){zI();const t=Ey(r);window.location.hash.replace(/^#/,"")!==t&&(window.location.hash=t)}function Kit(r,t){return pl(this,null,function*(){var i;zI();const e=yield fetch("/login",{method:"POST",credentials:"include",headers:{"Content-Type":"application/json",Accept:"application/json","Content-Language":"zh_CN"},body:JSON.stringify({username:r,password:t})}),n=yield e.json().catch(()=>({}));if(!e.ok||(n==null?void 0:n.code)!==200){const a=new Error((n==null?void 0:n.msg)||"登录失败,请检查用户名或密码。");throw a.status=e.status,a.code=n==null?void 0:n.code,a}return(i=n==null?void 0:n.data)!=null&&i.token&&(document.cookie=`${io}=${encodeURIComponent(n.data.token)}; path=/`),n})}function jit(){return pl(this,null,function*(){yield fetch("/logout",{method:"POST",credentials:"include",headers:{Accept:"application/json","Content-Type":"application/json","Content-Language":"zh_CN"},body:"{}"}).catch(()=>null),Yz("/platform")})}function Zz(){return pl(this,null,function*(){const r=yield fetch("/getInfo",{credentials:"include",headers:{Accept:"application/json","Content-Language":"zh_CN"}}),t=yield r.json().catch(()=>({}));if(!r.ok||(t==null?void 0:t.code)!==200){const e=new Error((t==null?void 0:t.msg)||"用户未登录或授权已过期。");throw e.status=r.status||401,e.code=(t==null?void 0:t.code)||401,e}return t.data})}const vx=()=>U0(()=>import("./index-bc047bb3-1784074877048.js").then(r=>r.i),["./index-bc047bb3-1784074877048.js","./index-e9f36657-1784074877048.js","./index-026acc61-balabala-1784074877048.css"],import.meta.url),Xz=()=>U0(()=>import("./index-6e825f4c-1784074877048.js"),["./index-6e825f4c-1784074877048.js","./index-5e7a407c-balabala-1784074877048.css"],import.meta.url),qz=()=>U0(()=>import("./index-f9f2c8d7-1784074877048.js"),["./index-f9f2c8d7-1784074877048.js","./index.esm.min-469b3f53-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-148a2898-balabala-1784074877048.css","./screen2Standard-9c6af3a2-1784074877048.js","./index-e9f36657-1784074877048.js","./screen2Standard-cdb21878-balabala-1784074877048.css","./chartTheme-9a56b109-1784074877048.js","./index-8d752fbe-balabala-1784074877048.css"],import.meta.url),GI=Hz({history:Sz(),routes:[{path:"/",redirect:"/platform"},{path:"/login",component:Xz,meta:{public:!0}},{path:"/platform",component:vx},{path:"/forest-grass-wet",component:vx},{path:"/chart-style-guide",component:qz},{path:"/:pathMatch(.*)",redirect:"/"}]});let yu=null;GI.beforeEach(r=>pl(void 0,null,function*(){if(r.meta.public){if(hx())try{return yield dx(),r.query.redirect?decodeURIComponent(r.query.redirect):"/platform"}catch(t){yu=null}return!0}if(!hx())return Ey(r.fullPath);try{return yield dx(),!0}catch(t){return yu=null,Ey(r.fullPath)}}));function dx(){return yu||(yu=Zz()),yu}const Kz=(r,t)=>{const e=r.__vccOpts||r;for(const[n,i]of t)e[n]=i;return e},jz={};function Jz(r,t){const e=vV("router-view");return Mh(),Ih(e)}const Qz=Kz(jz,[["render",Jz]]);/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any diff --git a/docs/assets/index-1e2d518b-1784074877048.js b/docs/assets/index-1e2d518b-1784074877048.js new file mode 100644 index 0000000..ea03b8c --- /dev/null +++ b/docs/assets/index-1e2d518b-1784074877048.js @@ -0,0 +1,116 @@ +var fl=Object.defineProperty,ml=Object.defineProperties;var gl=Object.getOwnPropertyDescriptors;var qa=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,nr=Object.prototype.propertyIsEnumerable;var ma=Math.pow,ar=(b,e,t)=>e in b?fl(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,R=(b,e)=>{for(var t in e||(e={}))ir.call(e,t)&&ar(b,t,e[t]);if(qa)for(var t of qa(e))nr.call(e,t)&&ar(b,t,e[t]);return b},$=(b,e)=>ml(b,gl(e));var rr=(b,e)=>{var t={};for(var a in b)ir.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&qa)for(var a of qa(b))e.indexOf(a)<0&&nr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,n)=>{var s=d=>{try{u(t.next(d))}catch(h){n(h)}},o=d=>{try{u(t.throw(d))}catch(h){n(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as Yr,h as jr,w as qt,o as I,c as _,a as f,d as V,K as yl,A as jt,g as k,L as Ee,s as Qe,v as bl,C as Ua,j as Le,n as Ye,t as P,F as ie,y as pe,u as j,b as H,x as oe,J as Ct,B as Wt,e as Ka,H as Xt,f as Za,N as ga}from"./index-1784074877048.js";import{H as Pe}from"./index.esm.min-469b3f53-1784074877048.js";import{_ as le}from"./index-1f5d6021-1784074877048.js";import{t as Zi,S as na,u as ni,v as Sa,w as vl,V as re,F as wl,C as bt,G as Te,c as Ll,d as Tl,f as Sl,g as Wi,L as Jt,D as Re,a as be,h as Xa,R as st,A as Ie,N as sr,b as qe,P as _t,o as Qt,n as ea,x as Ml,T as kl,B as Pl,i as Cl,j as Fl,k as xl,l as Nl,m as Rl,y as Il,z as ya,E as or,H as lr,I as Gl,J as ur,q as cr,r as _l,s as dr,K as ba,U as Yi,W as hr,M as Bl}from"./screen2Standard-9c6af3a2-1784074877048.js";import{g as Ht,M as Al,h as El,L as $l,B as va,a as ta,E as pr,G as Ja,D as Vl,b as zl,l as Ol,P as fr,c as mr,d as Dl,m as Wl,t as Yl,k as ot,n as jl,o as gr,p as Hl,q as ql,r as ji,s as wa,u as yr,v as br,f as Bt,w as vr,x as Ul,y as Kl,e as Zl,i as Xl,j as Jl}from"./data-35cd5cb4-1784074877048.js";import{g as aa}from"./index-e9f36657-1784074877048.js";import{h as Ql,a as Hr,S as eu,W as At,H as U,j as Hi,k as tu}from"./townshipBoundaries-1b068bef-1784074877048.js";import{b as au,g as wr,a as Lr,c as iu}from"./geoserver-a50e4f20-1784074877048.js";import{_ as nu}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{_ as ru}from"./LayerPanel-9c0c5952-1784074877048.js";import{A as su}from"./assets-34f9bc99-1784074877048.js";import{M as ou}from"./index-b4ec1ae2-1784074877048.js";import{a as lu,b as uu,c as cu,d as du,g as Tr,e as Sr,f as hu,h as qi,i as pu,j as fu,k as mu}from"./yakApi-16bd23bc-1784074877048.js";import{y as gu}from"./livestockData-36ec0ae2-1784074877048.js";import"./index-bc047bb3-1784074877048.js";const yu=Ql.map(b=>R({},b)),Mr=Hr.map(b=>R({},b)),bu=Hr.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),vu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],ra=256,Xi="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",wu=900,Lu=10,Ut=new Map,sa={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function Ui(b,e,t){const a=ma(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function kr(b,e,t){const a=ma(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Qa(b,e,t){return Math.max(e,Math.min(t,b))}function qr(b,e,{centerLngLat:t,maxCols:a,maxRows:n}={}){const s=Ui(b.west,b.north,e),o=Ui(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,x=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(n)){const D=Qa(Number(t[0]),b.west,b.east),Q=Qa(Number(t[1]),b.south,b.north),se=Ui(D,Q,e);x=Math.floor(se.x),E=Math.floor(se.y);const Z=Math.max(1,Math.min(Math.floor(a),d-u+1)),G=Math.max(1,Math.min(Math.floor(n),g-h+1));m=Qa(x-Math.floor(Z/2),u,d-Z+1),S=Qa(E-Math.floor(G/2),h,g-G+1),L=m+Z-1,C=S+G-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:x,centerY:E,cols:L-m+1,rows:C-S+1}}function Tu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:n=sa}={}){return qr(n,b,{centerLngLat:e,maxCols:t,maxRows:a})}function Su(b,e){const[t,a]=kr(b.minX,b.minY,b.zoom),[n,s]=kr(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,sa.south]),[u]=e([n,sa.south]),[,d]=e([sa.west,a]),[,h]=e([sa.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function Mu(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const n=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);n.addColorStop(0,"rgba(80, 230, 255, 0.16)"),n.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=n,b.fillRect(0,0,t,a),b.restore()}function ku(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function Pu(b){const e=Ut.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{Ut.delete(b),t(null)},a.src=b})}function Cu(b){const e=Ut.get(b);if(e)return e;const t=Pu(b);for(Ut.set(b,t);Ut.size>wu;){const a=Ut.keys().next().value;if(!a)break;Ut.delete(a)}return t}function Fu(b,e,t,a=Xi){return String(a||Xi).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function xu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:n,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let Z=a.minX;Z<=a.maxX;Z+=1)for(let G=a.minY;G<=a.maxY;G+=1)m.push({x:Z,y:G});m.sort((Z,G)=>Math.abs(Z.x-a.centerX)+Math.abs(Z.y-a.centerY)-(Math.abs(G.x-a.centerX)+Math.abs(G.y-a.centerY)));let x=0;function E(){return he(this,null,function*(){for(;x0?S/L:0,Q=S===0?"error":D>=.75?"success":"warning",se=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:Q,text:se,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n})})}function Pr({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Xi,onTileStatus:n,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=qr(sa,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*ra,m.height=g.rows*ra;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):ku(L,m);const S=new Zi(m);S.colorSpace=na,S.wrapS=ni,S.wrapT=ni,S.minFilter=Sa,S.magFilter=Sa,S.needsUpdate=!0;const C=Ht().center(b).scale(e).translate([0,0]),x=Su(g,C);return xu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:n,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),n==null||n({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:x,tileRange:g}}function Cr(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(n=>{var u,d;const s=(d=(u=n.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!n.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function lt(b){return String(b||"").replace(/\s+/g,"").trim()}function ue(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Yt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Gr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function _r(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function zu(b){return(b==null?void 0:b.showFlowLines)!==!1}function Br(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function La(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function Ou(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function ti(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Du(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Ar(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function Er(b,e,t){const a=ma(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function $r(b,e,t){const a=ma(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Wu(b,e){const t=Er(b.west,b.north,e),a=Er(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function Yu(b,e,t,a){const[n,s]=$r(b,e,t),[o,u]=$r(b+1,e+1,t),d=U.east-U.west,h=U.north-U.south;return{x:(n-U.west)/d*a.width,y:(U.north-s)/h*a.height,width:(o-n)/d*a.width,height:(s-u)/h*a.height}}function ju(b){const e=ia.get(b);if(e)return e;const t=new Promise(a=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>a(n),n.onerror=()=>{ia.delete(b),a(null)},n.src=b});for(ia.set(b,t);ia.size>Au;){const a=ia.keys().next().value;if(!a)break;ia.delete(a)}return t}function Vr(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function Hu(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function Ta(b){const e=Hu(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function zr(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class qu extends Al{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new wl(466735,1,50),this.scene.background=new bt(466735),this.camera.instance.position.copy(Iu),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Nu.clone(),this.defaultMapTarget=Ru.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new El(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const n=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(n)&&n>0?Math.min(ei,n):eu;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(ei,Math.max(this.satelliteTextureZoom,s)):ei;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Gu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(Mr.map(m=>[lt(m.name),m])),this.staticMapData={china:Ta(this.assets.instance.getResource("china")),mapJson:Ta(this.assets.instance.getResource("mapJson")),mapStroke:Ta(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new $l(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=aa.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!La(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,n)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*n,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,n;this.flyLineFocusGroup.visible=!0,(n=(a=this.callbacks).onPlayComplete)==null||n.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,n)=>{e.to(a.scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,n)=>{e.to(a,{duration:1,delay:.1*n,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,n)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*n,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*n,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=ue((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,n)=>{e.to(a.children[0].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new Ll(13171711,4.2);this.scene.add(e);let t=new Tl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new Sl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:n}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),n.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new Wi({color:new bt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),n=new va(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Jt({color:e.lineColor,transparent:!0,opacity:.58}),o=new ta(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:n,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=Ta(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,n=new re(0,0,-.08),s=new Wi({color:new bt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Re}),o=new va(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:n,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Jt({color:new bt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new ta(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new re(n.x,n.y,n.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=Ta(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const n=new be({color:403001,transparent:!0,opacity:.14,side:Re,depthWrite:!1,fog:!1});new va(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(.05,-.05,-.03),material:n,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new pr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Jt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new ta(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Xa({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Re,fog:!1});new Ja(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=st,t.wrapT=st,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Xa({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Re,fog:!1});return new Ja(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const n=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(n);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
${Se(s)}
`,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const n=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(n.minLng+n.maxLng)/2,lat:(n.minLat+n.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Pr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,n]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=n;let s=new pr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:n,renderOrder:9}),o=new Xa({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new Ja(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new bt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new va(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Cr(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Jt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new be({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}),h=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=At.width,e.height=At.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new Zi(e);a.colorSpace=na,a.wrapS=ni,a.wrapT=ni,a.minFilter=Sa,a.magFilter=Sa,this.enhanceTexture(a),a.needsUpdate=!0;const n=new be({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Re,fog:!1}),s=this.createLayerUvBounds(),o=new va(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:n,renderOrder:this.isHomeTopicPresentation()?24:18});Cr(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=n,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,n;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=zr((n=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:n.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([U.west,U.south]),[a]=e([U.east,U.south]),[,n]=e([U.west,U.north]),[,s]=e([U.west,U.south]);return{left:t,right:a,bottom:-s,top:-n}}setTopicLayer(e){var a,n;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"loading",text:`正在加载 ${e.name}`}),ti(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(R(R({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const n=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(n!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(x=>{var E,D;return x.type==="vector"&&((E=x.layer)==null?void 0:E.key)===((D=this.currentTopicLayer)==null?void 0:D.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((x,E)=>{var D,Q;if(x.type==="image"){this.topicLayerContext.save();const se=E===g.length-1?Math.max(.78,(D=x.layer.opacity)!=null?D:.9):Math.min(.52,(Q=x.layer.opacity)!=null?Q:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,se)),this.drawTopicRasterImage(x.image,x.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(x.layer,x.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(ti(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?R({type:"image"},t):null)})}loadTopicLayerImage(e){return Ar(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=au(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=At.width,t.height=At.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const n=this.getWmtsTopicZoom(e),s=Wu(U,n),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(n,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(n,m,L)),a.restore()}a.drawImage(n,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,n=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(n)&&n>0?Math.round(n):11;return Yt(s,3,Math.min(a,ei))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Ar(e)?sr:Sa;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),n.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){n.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),n.save(),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality="high",n.drawImage(o,0,0,a.width,a.height),n.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;const s=Yt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Yt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";n.save(),n.globalAlpha=s,n.filter=`drop-shadow(0 0 ${o}px ${u})`,n.drawImage(e,0,0,a.width,a.height),n.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,n=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=n?this.getLayerMapViewTarget(n):this.defaultMapTarget.clone(),o=n?this.getLayerMapViewCameraPosition(n,s):this.defaultMapCameraPosition.clone(),u=n&&Number.isFinite(n.duration)?n.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),n=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return n;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Yt(n,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),n=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(U.west,Math.min(U.east,Number(n[0])||102.58)),Math.max(U.south,Math.min(U.north,Number(n[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck<_u)return;this.dynamicSatelliteLastCheck=t;const a=this.camera.instance.position.distanceTo(this.camera.controls.target),n=this.getDynamicSatelliteZoom(a);if(n<=this.satelliteTextureZoom){this.hideDynamicSatelliteOverlay();return}const s=this.getCameraTargetLngLat(),o=this.getDynamicSatelliteTileWindow(n),u=Tu({zoom:n,centerLngLat:s,maxCols:o,maxRows:o}),d=this.getDynamicSatelliteKey(n,u);!d||d===this.dynamicSatelliteCurrentKey||d===this.dynamicSatelliteLoadingKey||this.loadDynamicSatelliteOverlay({zoom:n,centerLngLat:s,maxTiles:o,key:d})}loadDynamicSatelliteOverlay({zoom:e,centerLngLat:t,maxTiles:a,key:n}){const s=++this.dynamicSatelliteRequestId;this.dynamicSatelliteLoadingKey=n;let o;o=Pr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:e,centerLngLat:t,maxCols:a,maxRows:a,tileUrlTemplate:this.tileUrlTemplate,transparentBackground:!0,applyTone:!1,onTileStatus:u=>{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,$(R({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===n&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,n)}}}),this.applyDynamicSatelliteOverlay(o,n)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new be({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Re,fog:!1}),t=new qe(new _t(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,n=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(n,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,n;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(n=(a=this.animateTl)==null?void 0:a.pause)==null||n.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),La(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,n=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(n);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new re(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([n,s]),d=new re(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new re(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,n,s].every(Number.isFinite)?new re(a,n,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const n=this.camera.controls,s=()=>n.update();this.activeMapViewTweens.push(aa.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),aa.to(n.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(lt(e)),n=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return n||!!(a!=null&&a.center);if(!(a!=null&&a.center))return n;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,n,s,o,u,d,h,g,m,L;return[(s=(n=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:n.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var n,s,o,u;const t=lt(e);if(!t)return null;const a=(((n=this.mapJsonData)==null?void 0:n.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>lt(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:$(R({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var n,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=lt(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>lt(h.name)===a))return!1;const o=this.focusTownByName(e,R({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),n=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||n&&String(L.name||L.plot_name||"").trim()===n});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const n=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(n,this.depth+.34)||this.lngLatToScreenPoint(n,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),n=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(n)?null:[a,n]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),n=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(n&&String(g.id||"")===n||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,n,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Vr(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield wr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let n=this.buildWktLayerFeatures(t);if((!t.length||!n.length)&&e.fallbackPath){const u=yield fetch(Vr(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],n=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:n}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const n=this.topicLayerContext;a.clear!==!1&&n.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),n.save(),n.lineJoin="round",n.lineCap="round",this.clipVectorLayerContext(n,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(n,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(n,e,o),this.drawSelectedVectorOverlay(n),n.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(n=>{const s=this.getVectorFeatureStyle(t,n);this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,n.geometry,$(R({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],n=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!n&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:Fr,stroke:$u,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:Fr,stroke:Eu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),n!=null&&n.geometry&&this.drawVectorFeature(e,n.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!ti(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const n=t==null?void 0:t.match;return n!=null&&n.field?String((s=e[n.field])!=null?s:"")===String(n.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const n=e==null?void 0:e.activeLegend;if((u=n==null?void 0:n.matches)!=null&&u.length||(d=n==null?void 0:n.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},n));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((n,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(n),this.getYakIndustryPointLabelPosition(n,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:n}}),this.yakIndustryPointLabels.slice(a.length).forEach(n=>{var s;n.visible=!1,(s=n.hide)==null||s.call(n),n.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(n=>{var s;return((s=n==null?void 0:n.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((n,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,n),d=this.getYakIndustryMarkerMaterial(u,n),h=this.lngLatToLayerLocalPoint(n.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(n);o||(o=new Qt(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:n,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(n=>{n.visible=!1,n.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const n=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(n[0]),lat:Number(n[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),n=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(n);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new ea({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(n,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Rr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const n=document.createElement("canvas");n.width=112,n.height=112;const s=n.getContext("2d"),o=56,u=56;s.clearRect(0,0,n.width,n.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new Zi(n);return d.colorSpace=na,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,n,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,n),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,n,s="#24F6C4"){if(e.save(),e.translate(a,n),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),n=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:lt((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=n||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=n||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(n=>this.parseMapMetricNumber(n));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var n;const a=this.lngLatToLayerLocalPoint((n=e==null?void 0:e.geometry)==null?void 0:n.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),n=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
+
${Se(n)}
+
${Se(a)}
+
+ ${Se(s)} + ${o?`${Se(o)}`:""} +
+
`}compactYakIndustryLabelName(e=""){const t=String(e).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/\s+/g," ").trim();return t.length>16?`${t.slice(0,15)}…`:t}formatYakIndustryLabelText(e=""){return String(e).replace(/\bcxpt[-_./\s]*/gi,"").replace(/^cxpt/i,"").replace(/\s+/g," ").trim()}getYakIndustryPointMetricText(e={}){return e.capacity!==void 0&&e.capacity!==null&&e.capacity!==""&&this.parseMapMetricNumber(e.capacity)>0?this.formatYakIndustryMetricText(e.capacity,e.capacityUnit):this.parseMapMetricNumber(e.outputValue)>0?`${this.formatMapRankingValue(e.outputValue)}万元`:this.isMeaningfulMapText(e.locationType)?e.locationType:this.isMeaningfulMapText(e.status)?e.status:""}isMeaningfulMapText(e){const t=String(e!=null?e:"").trim();return!!(t&&t!=="0"&&t!=="无"&&t!=="待完善")}formatYakIndustryMetricText(e,t=""){const a=String(e!=null?e:"").trim();return!a||a==="0"?"":typeof e=="string"&&/[^\d.,\s-]/.test(a)?a:`${this.formatMapRankingValue(e)}${t||""}`}getYakIndustryLabelColor(e={}){var n,s,o,u,d,h;const t=String(e.stageKey||""),a=(((n=this.currentTopicLayer)==null?void 0:n.legends)||[]).find(g=>{var m;return String(((m=g.match)==null?void 0:m.value)||"")===t})||(String(((u=(o=(s=this.currentTopicLayer)==null?void 0:s.activeLegend)==null?void 0:o.match)==null?void 0:u.value)||"")===t?this.currentTopicLayer.activeLegend:null);return(a==null?void 0:a.fillColor)||((h=(d=this.currentTopicLayer)==null?void 0:d.activeLegend)==null?void 0:h.fillColor)||"#24F6C4"}clipVectorLayerContext(e,t){if(this.shouldClipLayerToHongyuanBoundary(t)&&this.clipContextToHongyuanBoundary(e),!this.shouldClipLayerToLayerBounds(t))return;const a=this.getLayerClipBounds(t);if(!a)return;const n=this.lngLatToLayerCanvasPoint([a.west,a.north]),s=this.lngLatToLayerCanvasPoint([a.east,a.south]),o=Math.min(n.x,s.x),u=Math.min(n.y,s.y),d=Math.abs(s.x-n.x),h=Math.abs(s.y-n.y);!d||!h||(e.beginPath(),e.rect(o,u,d,h),e.clip())}clipContextToHongyuanBoundary(e){const t=this.hongyuanBoundaryPolygons||[];t.length&&(e.beginPath(),t.forEach(a=>{a.forEach(n=>{n.forEach((s,o)=>{const u=this.lngLatToLayerCanvasPoint(s);o===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath()})}),e.clip("evenodd"))}shouldClipLayerToHongyuanBoundary(e=this.currentTopicLayer){if(!e||e.clipToHongyuanBoundary===!1)return!1;if(e.clipToHongyuanBoundary===!0)return!0;const t=String((e==null?void 0:e.key)||"");return!!(t==="national-park-zoning"||t.startsWith("yak-"))}shouldClipLayerToLayerBounds(e=this.currentTopicLayer){return!!(e!=null&&e.clipBounds&&(e==null?void 0:e.clipToLayerBounds)!==!1)}isLngLatInHongyuanBoundary(e){const t=this.hongyuanBoundaryPolygons||[];return t.length?t.some(a=>this.isLngLatInPolygon(e,a)):!0}isLngLatInLayerClipBounds(e,t=this.currentTopicLayer){const a=this.getLayerClipBounds(t);return a?e.lng>=a.west&&e.lng<=a.east&&e.lat>=a.south&&e.lat<=a.north:!0}getLayerClipBounds(e){const t=e==null?void 0:e.clipBounds;if(!t)return null;const a=Math.max(Number(t.west),U.west),n=Math.max(Number(t.south),U.south),s=Math.min(Number(t.east),U.east),o=Math.min(Number(t.north),U.north);return![a,n,s,o].every(Number.isFinite)||a>=s||n>=o?null:{west:a,south:n,east:s,north:o}}getGeometryDrawRank(e){return String(e).includes("Polygon")?1:String(e).includes("LineString")?2:3}isEcologicalProjectLayer(e=this.currentTopicLayer){return["restoration-projects","engineering-analysis-projects"].includes(e==null?void 0:e.key)}getVectorFeatureStyle(e,t){var d,h,g;const a=t.properties||{},s=(e.legends||[]).find(m=>{var L,S;return(((L=m==null?void 0:m.matches)==null?void 0:L.length)||((S=m==null?void 0:m.match)==null?void 0:S.field))&&this.featureMatchesLegend(a,m)})||e.activeLegend||((d=e.legends)==null?void 0:d[0])||{},o=String(((h=t.geometry)==null?void 0:h.type)||"").includes("LineString"),u=((g=t.geometry)==null?void 0:g.type)==="Point";if(this.isEcologicalProjectLayer(e)){const m=o||String(a.feature_role||"")==="线性设施";return{fill:m||u?s.strokeColor||s.fillColor||"#D2EA78":s.fillColor||"#75AD49",stroke:s.strokeColor||s.fillColor||"#D2EA78",polygonAlpha:m?.08:.22,lineAlpha:m?.9:.82,lineWidth:m?3:1.85,pointRadius:u?3.8:4,glow:!1}}return(e==null?void 0:e.key)==="yak-epidemic-village-boundary"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||"#C9FBFF",polygonAlpha:.16,lineAlpha:1,lineWidth:3.2,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="artificial-grassland-plots"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||"#A7F8FF",polygonAlpha:.2,lineAlpha:.94,lineWidth:1.6,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="yak-industry-points"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||s.fillColor||"#B7FFF2",polygonAlpha:.36,lineAlpha:.82,lineWidth:1.6,pointRadius:this.getVectorPointRadius(e,t),glow:!0,halo:!0,marker:!0,markerType:Rr[String(a.stageKey||"")]||"point"}:(e==null?void 0:e.key)==="national-park-zoning"?{fill:s.fillColor||"#30DCFF",stroke:s.strokeColor||"#F2FFFF",polygonAlpha:.38,lineAlpha:.96,lineWidth:2.7,pointRadius:4.5,glow:!1}:e!=null&&e.boundaryOnly?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||s.fillColor||"#18F8FF",polygonAlpha:.04,lineAlpha:.96,lineWidth:10,pointRadius:4.5,glow:!0}:{fill:o||u?s.strokeColor||s.fillColor||"#30DCFF":s.fillColor||"#30DCFF",stroke:s.strokeColor||s.fillColor||"#30DCFF",polygonAlpha:.36,lineAlpha:o?.92:.9,lineWidth:o?5:2.4,pointRadius:u?this.getVectorPointRadius(e,t):4.5,glow:!0}}getVectorPointRadius(e,t){var n,s;const a=Number(((n=t==null?void 0:t.properties)==null?void 0:n.count)||((s=t==null?void 0:t.properties)==null?void 0:s.value)||0);return(e==null?void 0:e.key)==="yak-recognition-layer"?Math.max(3.8,Math.min(8.6,3.6+Math.sqrt(a)/68)):(e==null?void 0:e.key)==="yak-industry-points"?10.4:4.5}drawVectorFeature(e,t,a){if(t!=null&&t.coordinates){if(t.type==="Polygon"){this.drawPolygonPath(e,t.coordinates,a);return}if(t.type==="MultiPolygon"){t.coordinates.forEach(n=>this.drawPolygonPath(e,n,a));return}if(t.type==="LineString"){this.drawLinePath(e,t.coordinates,a);return}if(t.type==="MultiLineString"){t.coordinates.forEach(n=>this.drawLinePath(e,n,a));return}t.type==="Point"&&this.drawPointPath(e,t.coordinates,a)}}drawPolygonPath(e,t,a){Array.isArray(t==null?void 0:t[0])&&(e.save(),e.beginPath(),t.forEach(n=>{n.forEach((s,o)=>{const u=this.lngLatToLayerCanvasPoint(s);o===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath()}),e.fillStyle=this.hexToRgba(a.fill,a.polygonAlpha),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,a.glow&&(e.shadowColor=a.stroke,e.shadowBlur=14),e.fill("evenodd"),e.stroke(),e.restore())}drawLinePath(e,t,a){!Array.isArray(t)||t.length<2||(e.save(),e.beginPath(),t.forEach((n,s)=>{const o=this.lngLatToLayerCanvasPoint(n);s===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,e.shadowColor=a.stroke,e.shadowBlur=12,e.stroke(),e.restore())}drawPointPath(e,t,a){var s;if(a.marker){this.drawMarkerPointPath(e,t,a);return}const n=this.lngLatToLayerCanvasPoint(t);e.save(),a.halo&&(e.beginPath(),e.arc(n.x,n.y,a.pointRadius*2.35,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.18),e.shadowColor=a.fill,e.shadowBlur=18,e.fill()),e.beginPath(),e.arc(n.x,n.y,a.pointRadius,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.96),e.shadowColor=a.stroke,e.shadowBlur=a.halo?8:12,e.fill(),a.lineWidth&&(e.lineWidth=a.lineWidth,e.strokeStyle=this.hexToRgba(a.stroke,(s=a.lineAlpha)!=null?s:.9),e.stroke()),e.restore()}drawMarkerPointPath(e,t,a){const n=this.lngLatToLayerCanvasPoint(t),s=a.pointRadius||6;e.save(),e.beginPath(),e.arc(n.x,n.y+s*.22,s*2.55,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.16),e.shadowColor=a.fill,e.shadowBlur=24,e.fill(),e.beginPath(),e.moveTo(n.x,n.y+s*2.05),e.bezierCurveTo(n.x+s*1.46,n.y+s*.62,n.x+s*1.34,n.y-s*1.34,n.x,n.y-s*1.62),e.bezierCurveTo(n.x-s*1.34,n.y-s*1.34,n.x-s*1.46,n.y+s*.62,n.x,n.y+s*2.05),e.closePath(),e.fillStyle=this.hexToRgba(a.fill,.94),e.strokeStyle=this.hexToRgba(a.stroke,.98),e.lineWidth=Math.max(2,a.lineWidth||2),e.shadowColor=a.stroke,e.shadowBlur=14,e.fill(),e.stroke(),e.beginPath(),e.arc(n.x,n.y-s*.34,s*.52,0,Math.PI*2),e.fillStyle=this.hexToRgba("#FFFFFF",.96),e.shadowBlur=0,e.fill(),e.beginPath(),e.arc(n.x,n.y-s*.34,s*.82,0,Math.PI*2),e.lineWidth=Math.max(1.2,s*.14),e.strokeStyle=this.hexToRgba("#FFFFFF",.42),e.stroke(),e.restore()}lngLatToLayerCanvasPoint(e){const t=Number(e==null?void 0:e[0]),a=Number(e==null?void 0:e[1]);return{x:(t-U.west)/(U.east-U.west)*this.topicLayerCanvas.width,y:(U.north-a)/(U.north-U.south)*this.topicLayerCanvas.height}}hexToRgba(e,t=1){const a=String(e||"#30DCFF").replace("#",""),n=a.length===3?a.split("").map(h=>h+h).join(""):a,s=Number.parseInt(n,16);if(!Number.isFinite(s))return`rgba(48, 220, 255, ${t})`;const o=s>>16&255,u=s>>8&255,d=s&255;return`rgba(${o}, ${u}, ${d}, ${t})`}parseWktGeometry(e){var o;const t=String(e||"").trim();if(!t)return null;const a=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),n=(o=a==null?void 0:a[1])==null?void 0:o.toUpperCase();if(!n)return null;const s=t.slice(t.indexOf("("));return n==="POLYGON"?{type:"Polygon",coordinates:this.parseWktPolygonBody(s)}:n==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:this.parseWktMultiPolygonBody(s)}:n==="POINT"?{type:"Point",coordinates:this.parseWktPoint(s)}:n==="MULTIPOINT"?{type:"MultiPoint",coordinates:this.getWktChildGroups(s).map(u=>this.parseWktPoint(u)).filter(Boolean)}:n==="LINESTRING"?{type:"LineString",coordinates:this.parseWktRing(s)}:n==="MULTILINESTRING"?{type:"MultiLineString",coordinates:this.getWktChildGroups(s).map(u=>this.parseWktRing(u)).filter(u=>u.length)}:null}parseWktMultiPolygonBody(e){return this.getWktChildGroups(e).map(t=>this.parseWktPolygonBody(t)).filter(t=>t.length)}parseWktPolygonBody(e){return this.getWktChildGroups(e).map(t=>this.parseWktRing(t)).filter(t=>t.length>=3)}getWktChildGroups(e){const t=String(e||"").trim(),a=t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1):t,n=[];let s=0,o=-1;for(let u=0;u=0&&(n.push(a.slice(o,u+1)),o=-1))}return n.length?n:[a]}parseWktRing(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(a=>a.trim().split(/\s+/).slice(0,2).map(Number)).filter(([a,n])=>Number.isFinite(a)&&Number.isFinite(n))}parseWktPoint(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}createProvinceMaterial(){const e=!this.useSatelliteBase;let t=new Wi({color:16777215,transparent:!0,opacity:0,depthWrite:!this.usesCustomSatelliteTiles,fog:!1,side:Re});t.onBeforeCompile=s=>{s.uniforms=$(R({},s.uniforms),{uColor1:{value:new bt(e?2780818:2152676)},uColor2:{value:new bt(e?1058614:475482)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); + ${e?`outgoingLight = outgoingLight * gradient; + float topAlpha = 0.56;`:`outgoingLight = mix(outgoingLight * vec3(1.18), outgoingLight * gradient, 0.32); + float topAlpha = 0.92;`} + if(vPosition.z>0.3){ + diffuseColor.a *= topAlpha; + } + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)};let a=this.assets.instance.getResource("side");a.wrapS=st,a.wrapT=st,a.repeat.set(1,1.8),a.offset.y+=.065;let n=new Xa({color:2148829,map:a,fog:!1,opacity:0,side:Re,roughness:.58,metalness:.08});return this.time.on("tick",()=>{a.offset.y+=.005}),n.onBeforeCompile=s=>{s.uniforms=$(R({},s.uniforms),{uColor1:{value:new bt(1629410)},uColor2:{value:new bt(205365)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); + outgoingLight = outgoingLight*gradient*vec3(1.12); + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)},[t,n]}getDefaultTownRanking(){return{title:"乡镇统计加载中",unit:"",rows:Mr.map(e=>({name:e.name,value:0,unit:""}))}}getTownRankingMeta(e=this.currentTownRanking){var n,s,o,u;const t=this.getDefaultTownRanking(),a=Ou(e);return{title:(e==null?void 0:e.title)||t.title,unit:(e==null?void 0:e.unit)||t.unit,metricLabel:(e==null?void 0:e.metricLabel)||(e==null?void 0:e.legendName)||"",note:(e==null?void 0:e.note)||"",hideTownNames:Br(e),hideMapLabels:La(e),hideTownLabelStats:(n=e==null?void 0:e.hideTownLabelStats)!=null?n:this.hideTownLabelStatsByDefault,calloutMode:a,showBars:(s=e==null?void 0:e.showBars)!=null?s:!1,showPointMarkers:(o=e==null?void 0:e.showPointMarkers)!=null?o:a,onlyRankedTownLabels:(u=e==null?void 0:e.onlyRankedTownLabels)!=null?u:!1,showMissingTownStats:(e==null?void 0:e.showMissingTownStats)===!0}}getTownRankingRows(e=this.currentTownRanking,t=7,a=!0){var d;const n=this.getDefaultTownRanking(),s=(d=e==null?void 0:e.rows)!=null&&d.length?e.rows:a?n.rows:[],o=this.getTownRankingMeta(e),u=s.map(h=>{const g=this.townMetaByName.get(lt(h.name));return g?$(R(R({},g),h),{name:g.name,enName:g.enName,center:g.center,centroid:g.centroid,value:ue(h.value),unit:h.unit||o.unit,metricTitle:o.title}):null}).filter(Boolean).sort((h,g)=>g.value-h.value).map((h,g)=>$(R({},h),{rank:g+1}));return Number.isFinite(t)?u.slice(0,t):u}getVillageRankingRows(e=this.currentTownRanking){const t=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,n)=>{var h,g,m,L,S,C,x,E;const s=ue((h=a.lng)!=null?h:a.longitude,NaN),o=ue((g=a.lat)!=null?g:a.latitude,NaN);if(!Number.isFinite(s)||!Number.isFinite(o))return null;const u=ue((m=a.displayValue)!=null?m:a.value),d=ue((C=(S=(L=a.rawValue)!=null?L:a.earTagCount)!=null?S:a.ear_tag_count)!=null?C:a.value);return $(R({},a),{key:a.key||`${a.town||""}-${a.village||a.name||n}`,name:a.name||a.village||`村${n+1}`,town:a.town||"",lng:s,lat:o,value:u,rawValue:d,recordCount:ue((x=a.recordCount)!=null?x:a.record_count,0),imageRate:ue((E=a.imageRate)!=null?E:a.image_rate,0),unit:a.displayUnit||a.unit||t.unit,metricTitle:t.title,metricLabel:a.metricLabel||t.metricLabel||""})}).filter(Boolean).sort((a,n)=>n.rawValue-a.rawValue).map((a,n)=>$(R({},a),{rank:n+1}))}getVillageRankingHtml(e,t){const a=t.hideTownNames?"":`${Se(e.town||"红原县")}`;return e.displayMode==="park-village"||t.displayMode==="park-village"?`
+
+ ${Se(e.name)} + ${a} +
+
+ ${Se(e.metricLabel||t.metricLabel||"")} + ${this.formatMapRankingValue(e.value)} + ${Se(e.unit||t.unit||"")} +
+
`:`
+
+ ${Se(e.name)} + ${a} +
+
+ ${Se(e.metricLabel||"防疫")} + ${this.formatMapRankingValue(e.value)} + ${Se(e.unit||t.unit||"")} +
+
+ 台账 ${this.formatMapCompactValue(e.recordCount)}条 + 耳标 ${this.formatMapCompactValue(e.rawValue)}头 +
+
`}ensureVillageRankingGroup(){this.villageRankingGroup||(this.villageRankingGroup=new Te,this.villageRankingGroup.rotation.x=-Math.PI/2,this.villageRankingGroup.visible=!1,this.scene.add(this.villageRankingGroup),this.villageRankingLabels=[])}hideVillageRankingLabels(){var e;this.villageRankingGroup&&(this.villageRankingGroup.visible=!1),(e=this.villageRankingLabels)==null||e.forEach(t=>{t.visible=!1})}hideAllMapStatisticLabels(){var e,t,a,n;this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.hideTradeFlowLayer(),this.clearInfoPointStats(),(e=this.allProvinceLabel)==null||e.forEach(s=>{s.visible=!1}),(t=this.allBar)==null||t.forEach(s=>{s.visible=!1,s.scale.set(1,1,0)}),(a=this.allBarMaterial)==null||a.forEach(s=>{s.opacity=0}),(n=this.allGuangquan)==null||n.forEach(s=>{s.visible=!1})}setTownNameLabelsVisible(e=!0){var t;(t=this.townNameLabels)==null||t.forEach(a=>{a.visible=e})}updateVillageRankingLabels(e=this.currentTownRanking){if(this.ensureVillageRankingGroup(),!Gr(e)){this.hideVillageRankingLabels();return}const t=this.getVillageRankingRows(e),a=this.getTownRankingMeta(e);if(!t.length){this.hideVillageRankingLabels();return}this.villageRankingGroup.visible=this.mapAnimationComplete,t.forEach((n,s)=>{let o=this.villageRankingLabels[s];o||(o=this.label3d.create("","epidemic-village-label",!0),this.label3d.setLabelStyle(o,.0135,"x"),o.setParent(this.villageRankingGroup),this.villageRankingLabels.push(o));const[u,d]=this.geoProjection([n.lng,n.lat]),h=(s%3-1)*.06,g=Math.floor(s/3)%2*.04;o.init(this.getVillageRankingHtml(n,a),new re(u+h,-d+g,this.depth+1.55+Math.min(s,6)*.015)),o.visible=!0,o.userData=R({},n)}),this.villageRankingLabels.slice(t.length).forEach(n=>{n.visible=!1})}ensureTradeFlowGroup(){this.tradeFlowGroup||(this.tradeFlowGroup=new Te,this.tradeFlowGroup.name="yak-trade-flow",this.tradeFlowGroup.visible=!1,this.tradeFlowMeshGroup=new Te,this.tradeFlowMeshGroup.name="yak-trade-flow-mesh",this.tradeFlowMeshGroup.rotation.x=-Math.PI/2,this.tradeFlowLabelGroup=new Te,this.tradeFlowLabelGroup.name="yak-trade-flow-label",this.tradeFlowLabelGroup.rotation.x=-Math.PI/2,this.tradeFlowGroup.add(this.tradeFlowMeshGroup,this.tradeFlowLabelGroup),this.scene.add(this.tradeFlowGroup))}hideTradeFlowLayer(){var e,t;this.tradeFlowGroup&&(this.tradeFlowGroup.visible=!1),(e=this.tradeFlowLabels)==null||e.forEach(a=>{a.visible=!1}),(t=this.tradeFlowPulseSprites)==null||t.forEach(a=>{a.visible=!1})}clearTradeFlowLayer(){this.tradeFlowMeshGroup&&(this.tradeFlowMeshGroup.children.forEach(e=>{var t;(t=e.traverse)==null||t.call(e,a=>this.disposeObject3D(a))}),this.tradeFlowMeshGroup.clear(),this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[])}getTradeFlowSource(e=this.currentTownRanking){var s,o,u,d;const t=(e==null?void 0:e.source)||{},a=ue((s=t.lng)!=null?s:t.longitude,NaN),n=ue((o=t.lat)!=null?o:t.latitude,NaN);return!Number.isFinite(a)||!Number.isFinite(n)?null:{name:t.name||"红原牦牛交易市场",lng:a,lat:n,total:ue((d=(u=t.total)!=null?u:t.headCount)!=null?d:t.value,NaN)}}getTradeFlowRows(e=this.currentTownRanking){const t=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,n)=>{var L,S,C,x,E,D;const s=ue((L=a.lng)!=null?L:a.longitude,NaN),o=ue((S=a.lat)!=null?S:a.latitude,NaN),u=ue((E=(x=(C=a.headCount)!=null?C:a.head_count)!=null?x:a.rawValue)!=null?E:a.value),d=a.displayName||a.display_name||a.name,h=a.mapTownName||a.map_town_name||a.town||a.startTown||a.start_town||d,g=this.townMetaByName.get(lt(h)),m=Number.isFinite(s)&&Number.isFinite(o)?{lng:s,lat:o}:g!=null&&g.center?{lng:g.center[0],lat:g.center[1]}:null;return!m||!Number.isFinite(u)?null:$(R(R({},a),g),{key:a.key||`${(g==null?void 0:g.name)||d||h||"trade-source"}-${n}`,name:d||h||(g==null?void 0:g.name)||`来源${n+1}`,townName:(g==null?void 0:g.name)||h,lng:m.lng,lat:m.lat,labelSide:a.labelSide||a.label_side||this.getTradeSourceLabelSide(g,n),value:u,headCount:u,recordCount:ue((D=a.recordCount)!=null?D:a.record_count,0),unit:a.unit||t.unit||"头"})}).filter(Boolean).sort((a,n)=>n.value-a.value).map((a,n)=>$(R({},a),{rank:n+1}))}getTradeMarketHtml(e,t){const a=Number.isFinite(e.total)?e.total:t.reduce((n,s)=>n+ue(s.value),0);return`
+
${Se(e.name)}
+
${this.formatMapIntegerValue(a)}
+
`}getTradeFlowDisplayName(e=""){const t=String(e||"").replace(/^.*红原县/,"").replace(/\s+/g,"");return t.length>7?`${t.slice(0,7)}…`:t||"来源区域"}getTradeFlowLabelHtml(e){return`
+
${String(e.rank).padStart(2,"0")}${Se(this.getTradeFlowDisplayName(e.name))}
+
${this.formatMapIntegerValue(e.value)}${Se(e.unit||"头")}
+
`}getTradeFlowLabelOffset(e,t){return new re(0,0,0)}getTradeSourceLabelSide(e,t=0){var s,o;const a=Number((s=e==null?void 0:e.center)==null?void 0:s[0]),n=Number((o=e==null?void 0:e.center)==null?void 0:o[1]);return Number.isFinite(a)&&athis.geoProjectionCenter[0]+.2?"right":Number.isFinite(n)&&n>this.geoProjectionCenter[1]+.22?"top":Number.isFinite(n)&&n0&&(d.normalize().multiplyScalar((a%2===0?1:-1)*Math.min(.18,.05+u*.02)),o.add(d)),new Ml([n,o,s])}tradeGeoProjection(e){return Ht().center(this.tradeGeoProjectionCenter).scale(this.tradeGeoProjectionScale).translate([0,0])(e)}setTradeNationalMapVisible(e){const t=!!e;if(!(!t&&!this.isTradeNationalMapActive&&!this.tradeNationalMapGroup&&!this.tradeFlowGroup)){if(t&&!this.createTradeNationalMap()){this.isTradeNationalMapActive=!1;return}this.isTradeNationalMapActive=t,this.tradeNationalMapGroup&&(this.tradeNationalMapGroup.visible=t&&this.mapAnimationComplete),this.tradeNationalLabelGroup&&(this.tradeNationalLabelGroup.visible=t&&this.mapAnimationComplete),this.mapGroup&&(this.mapGroup.visible=!t),this.labelGroup&&(this.labelGroup.visible=!t),this.flyLineGroup&&(this.flyLineGroup.visible=!t&&this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!t&&this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=!t&&this.mapAnimationComplete),this.topicLayerMaterial&&t&&(this.topicLayerMaterial.opacity=0),t&&this.mapAnimationComplete?this.animateMapCamera(new re(0,11.4,16.2),new re(0,-.05,0),.65):!t&&this.mapAnimationComplete&&this.applyLayerMapView(this.currentTopicLayer,{force:!0})}}createTradeSourceMarker(e,t,a,n,s=!0){const o=new bt(t%3===1?16766828:t%3===2?2617536:3202303),u=this.getTradeFlowPoint(e,.72);if(n&&s){const x=this.getLocalTradeFlowCurve(e,n,t),E=new be({color:o,transparent:!0,opacity:.42,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),D=.012+Math.min(.012,ue(e.value)/Math.max(a,1)*.01),Q=new qe(new kl(x,48,D,8,!1),E);Q.renderOrder=31,this.tradeFlowMeshGroup.add(Q),this.tradeFlowMaterials.push(E);const se=new ea({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.92,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),Z=new Qt(se),G=.12+Math.min(.08,ue(e.value)/Math.max(a,1)*.06);Z.renderOrder=36,Z.scale.set(G,G,G),Z.userData={curve:x,phase:t*.13%1,speed:.16+Math.min(.16,ue(e.value)/Math.max(a,1)*.12)},Z.position.copy(x.getPointAt(Z.userData.phase)),this.tradeFlowPulseSprites.push(Z),this.tradeFlowMeshGroup.add(Z)}const d=new ea({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.95,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),h=new Qt(d),g=.22+Math.min(.34,ue(e.value)/Math.max(a,1)*.28);h.renderOrder=34,h.scale.set(g,g,g),h.position.copy(u),this.tradeFlowMeshGroup.add(h);const m=this.assets.instance.getResource("guangquan1"),L=new be({map:m,alphaMap:m,color:o,transparent:!0,opacity:.52,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie,side:Re}),S=.38+Math.min(.36,ue(e.value)/Math.max(a,1)*.28),C=new qe(new _t(S,S),L);C.renderOrder=29,C.position.copy(this.getTradeFlowPoint(e,.5)),this.tradeFlowMeshGroup.add(C)}createTradeMarketMarker(e){const t=this.assets.instance.getResource("point"),a=this.assets.instance.getResource("guangquan1"),n=this.getTradeLocalPoint(e.lng,e.lat,.82),s=new ea({map:t,color:16773997,transparent:!0,opacity:1,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),o=new Qt(s);o.renderOrder=35,o.scale.set(.34,.34,.34),o.position.copy(n),this.tradeFlowMeshGroup.add(o);const u=new be({map:a,alphaMap:a,color:16773997,transparent:!0,opacity:.72,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie,side:Re}),d=new qe(new _t(.58,.58),u);d.renderOrder=29,d.position.copy(this.getTradeLocalPoint(e.lng,e.lat,.58)),this.tradeFlowMeshGroup.add(d)}disposeObject3D(e){var t,a,n,s;(a=(t=e.geometry)==null?void 0:t.dispose)==null||a.call(t),Array.isArray(e.material)?e.material.forEach(o=>{var u;return(u=o==null?void 0:o.dispose)==null?void 0:u.call(o)}):(s=(n=e.material)==null?void 0:n.dispose)==null||s.call(n)}updateTradeFlowPulses(e=.016){var t,a;!((t=this.tradeFlowGroup)!=null&&t.visible)||!((a=this.tradeFlowPulseSprites)!=null&&a.length)||this.tradeFlowPulseSprites.forEach(n=>{var u;const s=(u=n.userData)==null?void 0:u.curve;if(!s)return;const o=(ue(n.userData.phase)+ue(n.userData.speed,.16)*e)%1;n.userData.phase=o,n.position.copy(s.getPointAt(o))})}updateTradeFlowLayer(e=this.currentTownRanking){if(!_r(e)){this.hideTradeFlowLayer();return}this.ensureTradeFlowGroup();const t=this.getTradeFlowSource(e),a=this.getTradeFlowRows(e);if(!t||!a.length){this.clearTradeFlowLayer(),this.hideTradeFlowLayer();return}this.clearTradeFlowLayer(),this.tradeFlowGroup.visible=this.mapAnimationComplete;const n=zu(e);this.createTradeMarketMarker(t);const s=Math.max(...a.map(d=>d.value),1);a.forEach((d,h)=>{this.createTradeSourceMarker(d,h,s,t,n)});const o=a.length+1;for(let d=this.tradeFlowLabels.length;d{const g=this.tradeFlowLabels[h+1];g.element.className="trade-flow-label",g.init(this.getTradeFlowLabelHtml(d),this.getTradeFlowPoint(d,.78).add(this.getTradeFlowLabelOffset(d,h))),g.visible=!0,g.userData=R({},d)}),this.tradeFlowLabels.slice(o).forEach(d=>{d.visible=!1})}hasTownRankingRows(e=this.currentTownRanking){return this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1).length>0}formatMapRankingValue(e){const t=ue(e);return Math.abs(t)>=100?String(Math.round(t)):Math.abs(t)>=10?String(Number(t.toFixed(1))):String(Number(t.toFixed(2)))}formatMapCompactValue(e){const t=ue(e);return Math.abs(t)>=1e4?`${Number((t/1e4).toFixed(Math.abs(t)>=1e5?1:2))}万`:Math.abs(t)>=1e3?`${Number((t/1e3).toFixed(1))}千`:this.formatMapRankingValue(t)}formatMapIntegerValue(e){const t=ue(e);return Math.round(t).toLocaleString("zh-CN")}getBarHeight(e,t){return t?Math.max(2.8*.12,2.8*(ue(e)/t)):2.8*.25}createBarGeometry(e){const a=new Pl(.06999999999999999,.06999999999999999,e);return a.translate(0,0,e/2),a}getProvinceLabelHtml(e,t,a){return`
+
+
+
${a.title}
+
${this.formatMapRankingValue(e.value)}${e.unit||a.unit}
+
${e.name}
+
+
${t+1}
+
+
`}updateBarItem(e,t,a,n,s=!0){var h,g;const o=this.getBarHeight(t.value,n),[u,d]=this.geoProjection(t.centroid);return e.visible=!0,(g=(h=e.geometry)==null?void 0:h.dispose)==null||g.call(h),e.geometry=this.createBarGeometry(o),e.position.set(u,-d,this.depth+.45),e.userData=$(R({},t),{targetValue:t.value,geoHeight:o}),e.children.forEach(m=>{var L,S,C,x;(S=(L=m.geometry)==null?void 0:L.dispose)==null||S.call(L),Array.isArray(m.material)?m.material.forEach(E=>{var D;return(D=E==null?void 0:E.dispose)==null?void 0:D.call(E)}):(x=(C=m.material)==null?void 0:C.dispose)==null||x.call(C)}),e.clear(),e.add(...this.createHUIGUANG(o,a>3?16776948:7863285)),s?aa.to(e.scale,{duration:.45,x:1,y:1,z:1,ease:"power2.out"}):this.mapAnimationComplete&&e.scale.set(1,1,1),{x:u,y:d,geoHeight:o}}updateProvinceLabel(e,t,a,n,s,o=!0){var C;const u=ue((C=e.userData)==null?void 0:C.targetValue,t.value);e.visible=!0,e.userData=$(R({},t),{targetValue:t.value}),e.position.copy(n);const d=e.element.querySelector(".label-title"),h=e.element.querySelector(".number .value"),g=e.element.querySelector(".number .unit"),m=e.element.querySelector(".name"),L=e.element.querySelector(".no");!d||!h||!g||!m||!L?e.element.innerHTML=this.getProvinceLabelHtml(t,a,s):(d.innerText=s.title,h.dataset.targetValue=String(t.value),h.innerText=this.formatMapRankingValue(t.value),g.innerText=t.unit||s.unit,m.innerText=t.name,L.innerText=a+1);const S=e.element.querySelector(".provinces-label-wrap");if(this.mapAnimationComplete&&(S.style.opacity="1",S.style.transform="translate(50%, 0)"),o&&this.mapAnimationComplete){const x=e.element.querySelector(".number .value"),D={value:u};aa.to(D,{value:t.value,duration:.45,ease:"power2.out",onUpdate:()=>{x.innerText=this.formatMapRankingValue(D.value)},onComplete:()=>{x.dataset.previousValue=String(t.value),x.innerText=this.formatMapRankingValue(t.value)}})}}clearTownNameLabelStat(e){const t=e.element.querySelector(".town-stat-label"),a=e.element.querySelector(".town-stat-value"),n=e.element.querySelector(".town-stat-unit"),s=e.element.querySelector(".town-rank"),o=e.element.querySelector(".town-stat-metric");t==null||t.classList.remove("has-stat"),e.element.style.pointerEvents="none",e.element.style.cursor="",a&&(a.innerText=""),n&&(n.innerText=""),s&&(s.innerText=""),o&&(o.innerText="")}updateTownNameLabelStats(e=this.currentTownRanking){var o;if(!((o=this.townNameLabels)!=null&&o.length))return;const t=this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1),a=this.getTownRankingMeta(e);if(a.hideTownLabelStats){this.townNameLabels.forEach(u=>{var g,m;const d=((g=u.userData)==null?void 0:g.townName)||((m=u.userData)==null?void 0:m.name),h=u.element.querySelector(".town-name");h&&(h.innerText=d||""),this.clearTownNameLabelStat(u),u.visible=!a.hideTownNames});return}const n=new Map(t.map(u=>[lt(u.name),u])),s=!!(a.showMissingTownStats&&e&&t.length&&(a.metricLabel||a.unit||a.title));this.townNameLabels.forEach(u=>{var Q,se;const d=((Q=u.userData)==null?void 0:Q.townName)||((se=u.userData)==null?void 0:se.name),h=n.get(lt(d));if(a.onlyRankedTownLabels&&!h){this.clearTownNameLabelStat(u),u.element.style.pointerEvents="none",u.element.style.cursor="",u.visible=!1;return}const g=h||(s?{name:d,value:0,unit:a.unit,metricLabel:a.metricLabel,rank:null}:null);if(!g){this.clearTownNameLabelStat(u),u.element.style.pointerEvents="none",u.element.style.cursor="";return}const m=u.element.querySelector(".town-stat-label"),L=u.element.querySelector(".town-name"),S=u.element.querySelector(".town-stat-value"),C=u.element.querySelector(".town-stat-unit"),x=u.element.querySelector(".town-rank"),E=u.element.querySelector(".town-stat-metric");m==null||m.classList.add("has-stat"),L&&(L.innerText=d),E&&(E.innerText=g.metricLabel||a.metricLabel||""),S&&(S.innerText=this.formatMapRankingValue(g.value)),C&&(C.innerText=g.unit||a.unit||""),x&&(x.innerText=g.rank?`第${g.rank}名`:"");const D=this.isNationalParkTownSelectionActive()&&!!h;u.element.style.pointerEvents=D?"auto":"none",u.element.style.cursor=D?"pointer":"",u.userData=$(R(R({},u.userData),g),{townName:d,targetValue:g.value})})}getInfoPointHtml(e,t=this.getTownRankingMeta()){const a=String(e.metricLabel||t.metricLabel||t.title||"统计指标").replace(/排行$/,""),n=Number(e.rank),s=Number.isFinite(n)?String(n).padStart(2,"0"):"--";return`
+
+
+ ${s} + ${Se(e.name||"红原县")} +
+
${Se(a)}
+
+ ${this.formatMapRankingValue(e.value)} + ${Se(e.unit||t.unit||"")} +
+
+
`}updateInfoPointStats(){var o,u;if(!((o=this.infoPointSprites)!=null&&o.length)||!((u=this.infoLabelElement)!=null&&u.length))return;if(!this.showTownRankingPointMarkers){this.clearInfoPointStats();return}const e=this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1);if(!e.length){this.clearInfoPointStats();return}const t=this.getTownRankingMeta(),a=e.slice(0,this.infoPointSprites.length),n=Math.max(...a.map(d=>d.value),1);this.infoPointSprites.forEach((d,h)=>{const g=a[h],m=this.infoLabelElement[h];if(!g){d.visible=!1,d.scale.set(0,0,0),m&&(m.visible=!1);return}const[L,S]=this.geoProjection(g.centroid||g.center),C=[L,-S,this.depth+.72];d.userData=$(R(R({},d.userData),g),{position:C,value:g.value,unit:g.unit||t.unit,rank:g.rank,metricTitle:t.title,index:h}),d.position.set(...C),d.visible=this.showTownRankingPointMarkers;const x=.78+g.value/n*.44;if(d.scale.set(x,x,x),m){const E=(h%2===0?.22:-.18)+(h===0?.12:0),D=h%3===0?.08:-.04;m.position.set(L+E,-S+D,this.depth+1.88+Math.min(h,4)*.03),m.userData=$(R({},g),{index:h}),m.element.innerHTML=this.getInfoPointHtml(g,t)}});const s=this.infoLabelElement[this.infoPointIndex];s&&this.showTownRankingPointMarkers&&this.mapAnimationComplete&&(s.visible=!0),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}clearInfoPointStats(){var e,t;clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null,this.infoPointIndex=0,this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),(e=this.infoLabelElement)==null||e.forEach(a=>{a.visible=!1}),(t=this.infoPointSprites)==null||t.forEach(a=>{a.visible=!1,a.scale.set(0,0,0)})}createBar(){const e=this.getTownRankingRows();this.getTownRankingMeta();const t=new Te;this.barGroup=t;const a=Math.max(...e.map(n=>n.value),1);this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],e.map((n,s)=>{const o=this.getBarHeight(n.value,a),u=new be({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Ja(u,{uColor1:s>3?16506760:5291006,uColor2:s>3?16776948:7863285,size:o,dir:"y"});const d=new qe(this.createBarGeometry(o),u);d.renderOrder=5;const[h,g]=this.geoProjection(n.centroid);d.position.set(h,-g,this.depth+.45),d.scale.set(1,1,0),d.userData=$(R({},n),{targetValue:n.value,geoHeight:o});const m=this.createQuan(new re(h,this.depth+.44,g),s);d.add(...this.createHUIGUANG(o,s>3?16776948:7863285)),t.add(d),t.rotation.x=-Math.PI/2,this.allBar.push(d),this.allBarMaterial.push(u),this.allGuangquan.push(m)}),this.scene.add(t),this.updateTownNameLabelStats(this.currentTownRanking)}setTownRanking(e){var s,o,u,d,h,g,m,L,S,C,x,E,D,Q,se,Z;this.currentTownRanking=e;const t=this.getTownRankingMeta(e);if(this.showTownRankingBars=!!t.showBars,this.showTownRankingPointMarkers=!!t.showPointMarkers,t.hideMapLabels){this.hideAllMapStatisticLabels(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete);return}if(_r(e)){this.setTradeNationalMapVisible(!1),this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.clearInfoPointStats(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!1),this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),(s=this.allBar)!=null&&s.length&&(this.allBar.forEach(G=>{G.visible=!1,G.scale.set(1,1,0)}),(o=this.allBarMaterial)==null||o.forEach(G=>{G.opacity=0}),(u=this.allProvinceLabel)==null||u.forEach(G=>{G.visible=!1}),(d=this.allGuangquan)==null||d.forEach(G=>{G.visible=!1})),this.updateTradeFlowLayer(e),(e!=null&&e.mapView||e!=null&&e.cameraPosition)&&this.applyLayerMapView(null);return}if(this.setTradeNationalMapVisible(!1),this.hideTradeFlowLayer(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete),Gr(e)){this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!Br(e)),this.clearInfoPointStats(),this.updateVillageRankingLabels(e),(h=this.allBar)!=null&&h.length&&(this.allBar.forEach(G=>{G.visible=!1,G.scale.set(1,1,0)}),(g=this.allBarMaterial)==null||g.forEach(G=>{G.opacity=0}),(m=this.allProvinceLabel)==null||m.forEach(G=>{G.visible=!1}),(L=this.allGuangquan)==null||L.forEach(G=>{G.visible=!1}));return}if(this.setTownNameLabelsVisible(!t.calloutMode&&!t.hideTownNames),this.hideVillageRankingLabels(),t.calloutMode?this.updateTownNameLabelStats(null):this.updateTownNameLabelStats(e),!((S=this.allBar)!=null&&S.length))return;if(!this.showTownRankingBars){this.allBar.forEach(G=>{G.visible=!1,G.scale.set(1,1,0)}),(C=this.allBarMaterial)==null||C.forEach(G=>{G.opacity=0}),(x=this.allProvinceLabel)==null||x.forEach(G=>{G.visible=!1}),(E=this.allGuangquan)==null||E.forEach(G=>{G.visible=!1}),this.showTownRankingPointMarkers?(this.InfoPointGroup&&(this.InfoPointGroup.visible=this.mapAnimationComplete&&this.hasTownRankingRows(e)),this.updateInfoPointStats()):this.clearInfoPointStats();return}const a=this.getTownRankingRows(e,7,!1);if(!a.length){this.allBar.forEach(G=>{G.visible=!1,G.scale.set(1,1,0)}),(D=this.allProvinceLabel)==null||D.forEach(G=>{G.visible=!1}),(Q=this.allGuangquan)==null||Q.forEach(G=>{G.visible=!1}),this.clearInfoPointStats();return}this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.mapAnimationComplete),(se=this.infoPointSprites)==null||se.forEach(G=>{G.visible=this.showTownRankingPointMarkers});const n=Math.max(...a.map(G=>G.value),1);this.allBar.forEach((G,Ce)=>{const je=Ce{G.visible=!1}),this.allGuangquan.forEach((G,Ce)=>{G.visible=Ce{const je=this.allBar[Ce],et=this.allGuangquan[Ce];if(!je)return;const{x:vt,y:W}=this.updateBarItem(je,G,Ce,n,this.mapAnimationComplete);et&&(et.visible=!0,et.position.set(0,0,0),et.children.forEach(He=>{He.position.set(vt,this.depth+.44,W),this.mapAnimationComplete&&He.scale.set(1,1,1)}))}),this.updateInfoPointStats()}createEvent(){let e=[];const t=n=>{n.traverse(s=>{s.isMesh&&(s.material=this.defaultMaterial)})},a=n=>{n.traverse(s=>{s.isMesh&&(s.material=this.defaultLightMaterial)})};this.eventElement.map(n=>{this.interactionManager.add(n),n.addEventListener("mousedown",s=>{this.handleMapClick(s)}),n.addEventListener("mouseover",s=>{e.includes(s.target.parent)||e.push(s.target.parent),document.body.style.cursor="pointer",a(s.target.parent)}),n.addEventListener("mouseout",s=>{e=e.filter(o=>o.userData.name!==s.target.parent.userData.name),e.length>0&&e[e.length-1],t(s.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(e,t){let a=new _t(.35,e);a.translate(0,e/2,0);const n=this.assets.instance.getResource("huiguang");n.colorSpace=na,n.wrapS=st,n.wrapT=st;let s=new be({color:t,map:n,transparent:!0,opacity:.4,depthWrite:!1,side:Re,blending:Ie}),o=new qe(a,s);o.renderOrder=10,o.rotateX(Math.PI/2);let u=o.clone(),d=o.clone();return u.rotateY(Math.PI/180*60),d.rotateY(Math.PI/180*120),[o,u,d]}createQuan(e,t){const a=this.assets.instance.getResource("guangquan1"),n=this.assets.instance.getResource("guangquan2");let s=new _t(.5,.5),o=new be({color:16777215,map:a,alphaMap:a,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Ie}),u=new be({color:16777215,map:n,alphaMap:n,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Ie}),d=new qe(s,o),h=new qe(s,u);return d.renderOrder=6,h.renderOrder=6,d.rotateX(-Math.PI/2),h.rotateX(-Math.PI/2),d.position.copy(e),h.position.copy(e),h.position.y-=.001,d.scale.set(0,0,0),h.scale.set(0,0,0),this.quanGroup=new Te,this.quanGroup.add(d,h),this.scene.add(this.quanGroup),this.time.on("tick",()=>{d.rotation.z+=.05}),this.quanGroup}createDiffuse(){let e=new _t(200,200),t=new be({color:0,depthWrite:!1,transparent:!0,blending:Cl});t.blendEquation=Fl,t.blendSrc=xl,t.blendDst=Nl,new Vl({material:t,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:n=>{const s=setTimeout(()=>{this.addSceneTween(aa.to(n.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(s)}});let a=new qe(e,t);a.renderOrder=3,a.rotation.x=-Math.PI/2,a.position.set(0,.21,0),this.scene.add(a)}createGrid(){new zl(this,{gridSize:54,gridDivision:24,gridColor:1990543,shapeSize:.55,shapeColor:3309487,pointSize:.085,pointColor:1993891,pointBlending:Ie})}createBottomBg(){let e=new _t(24,24);const t=this.assets.instance.getResource("ocean");t.colorSpace=na,t.wrapS=st,t.wrapT=st,t.repeat.set(1,1);let a=new be({map:t,opacity:.92,fog:!1}),n=new qe(e,a);n.rotation.x=-Math.PI/2,n.position.set(0,-.7,0),this.scene.add(n)}createChinaBlurLine(){let e=new _t(154,154);const t=this.assets.instance.getResource("chinaBlurLine");t.colorSpace=na,t.wrapS=st,t.wrapT=st,t.generateMipmaps=!1,t.minFilter=sr,t.repeat.set(1,1);let a=new be({color:4162253,alphaMap:t,transparent:!0,opacity:.62}),n=new qe(e,a);n.rotateX(-Math.PI/2),n.position.set(-19.3,-.5,-19.7),this.scene.add(n)}createLabel(){let e=this,t=this.labelGroup,a=this.label3d,n=[],s=[];yu.map(u=>{if(u.hide==!0)return!1;let d=o(u,a,t);n.push(d),s.push(d)}),this.otherLabel=n,this.townNameLabels=s;function o(u,d,h){let g=d.create("",`china-label ${u.blur?" blur":""}`,!0);const[m,L]=e.geoProjection(u.center);return g.init(`
+
${u.name}
+
+
`,new re(m,-L,e.depth+.85)),d.setLabelStyle(g,.018,"x"),g.setParent(h),g.userData=$(R({},u),{labelType:"town-label",baseScale:.018,townName:u.name}),g.element.addEventListener("pointerdown",S=>{e.handleTownRankingSelect(u.name,{preserveCamera:!0,statusText:`已选中${u.name}`})&&(S.preventDefault(),S.stopPropagation())}),g}}createRotateBorder(){let e=13.2,t=this.assets.instance.getResource("rotationBorder1"),a=this.assets.instance.getResource("rotationBorder2"),n=new fr(this,{width:e*1.178,needRotate:!0,rotateSpeed:.001,material:new be({map:t,color:4763647,transparent:!0,opacity:.26,side:Re,depthWrite:!1,blending:Ie}),position:new re(0,.31,0)});n.instance.rotation.x=-Math.PI/2,n.instance.renderOrder=6,n.instance.scale.set(0,0,0),n.setParent(this.scene);let s=new fr(this,{width:e*1.116,needRotate:!0,rotateSpeed:-.004,material:new be({map:a,color:4763647,transparent:!0,opacity:.5,side:Re,depthWrite:!1,blending:Ie}),position:new re(0,.33,0)});s.instance.rotation.x=-Math.PI/2,s.instance.renderOrder=6,s.instance.scale.set(0,0,0),s.setParent(this.scene),this.rotateBorder1=n.instance,this.rotateBorder2=s.instance}createFlyLine(){this.flyLineGroup=new Te,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup)}createFocus(){this.flyLineFocusGroup.clear()}createParticles(){this.particles=new mr(this,{num:10,range:30,dir:"up",speed:.05,material:new Rl({map:mr.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:Ie,sizeAttenuation:!0})}),this.particleGroup=new Te,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new Te,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const e=this.assets.instance.getResource("arrow"),t=new ea({map:e,color:16776948,fog:!1,transparent:!0,depthTest:!1});let a=Ir(bu),n=a[0].value;a.map(s=>{const o=new Qt(t);o.renderOrder=23;let u=.1+s.value/n*.2;o.scale.set(u,u,u);let[d,h]=this.geoProjection([s.lng,s.lat]);o.position.set(d,-h,this.depth+.45),o.userData.position=[d,-h,this.depth+.45],this.scatterGroup.add(o)})}createInfoPoint(){let e=this;this.InfoPointGroup=new Te,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[],this.infoPointSprites=[];let t=this.label3d;const a=this.assets.instance.getResource("point");let n=[16776948,7863285],s=Ir(vu),o=s[0].value;s.map((d,h)=>{const g=new ea({map:a,color:n[h%n.length],fog:!1,transparent:!0,depthTest:!1}),m=new Qt(g);m.renderOrder=23;let L=.7+d.value/o*.4;m.scale.set(L,L,L);let[S,C]=this.geoProjection([d.lng,d.lat]),x=[S,-C,this.depth+.7];m.position.set(...x),m.userData.position=[...x],m.userData={position:[S,-C,this.depth+.7],name:d.name,value:d.value,level:d.level,index:h},this.InfoPointGroup.add(m);let E=u(d,t,this.InfoPointGroup,h);this.infoLabelElement.push(E),this.infoPointSprites.push(m),this.interactionManager.add(m),m.addEventListener("mousedown",D=>{var Q,se;if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.infoPointIndex=D.target.userData.index,this.infoLabelElement.map(Z=>{Z.visible=!1}),E.visible=!0,this.handleTownRankingSelect(((Q=D.target.userData)==null?void 0:Q.name)||((se=D.target.userData)==null?void 0:se.townName)),this.createInfoPointLabelLoop()}),m.addEventListener("mouseup",D=>{this.clicked=!1}),m.addEventListener("mouseover",D=>{document.body.style.cursor="pointer"}),m.addEventListener("mouseout",D=>{document.body.style.cursor="default"})});function u(d,h,g,m){let L=h.create("","info-point",!0);const[S,C]=e.geoProjection([d.lng,d.lat]);return L.init(e.getInfoPointHtml($(R({},d),{value:0,rank:m+1,unit:""}),e.getTownRankingMeta()),new re(S,-C,e.depth+1.9)),h.setLabelStyle(L,.015,"x"),L.setParent(g),L.visible=!1,L}}createInfoPointLabelLoop(){var e;this.scenePaused||!((e=this.infoLabelElement)!=null&&e.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((t,a)=>{this.infoPointIndex===a?t.visible=!0:t.visible=!1})},3e3))}createStorke(){const e=this.staticMapData.mapStroke,t=this.assets.instance.getResource("pathLine3");t.wrapS=t.wrapT=st,t.repeat.set(2,1);let a=new ta(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.24),data:e,material:new be({color:2868444,map:t,alphaMap:t,fog:!1,transparent:!0,opacity:1,blending:Ie}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(a.lineGroup),this.time.on("tick",()=>{t.offset.x+=.005})}handleMapClick(e){return he(this,null,function*(){var s,o,u,d,h,g,m,L,S,C,x,E,D,Q,se,Z,G,Ce,je,et,vt,W,He,tt,Ft,ut,xt,Kt,ct,dt,$e,Fe,ge,xe,ht,wt,Ve,Ue,ve,pt,M;if(!this.currentTopicLayer)return;const t=this.getScreenPointFromEvent(e),a=this.getLngLatFromEvent(e);if(!a){this.clearSelectedFeature(),(o=(s=this.callbacks).onFeatureInfo)==null||o.call(s,{feature:null});return}if(this.boundaryDrawingEnabled){const v=((u=e==null?void 0:e.data)==null?void 0:u.originalEvent)||(e==null?void 0:e.originalEvent)||e;if(v!=null&&v.__analysisBoundaryHandled)return;this.addBoundaryDrawPoint(a);return}if(this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)&&!this.isLngLatInHongyuanBoundary(a)){this.clearSelectedFeature(),(h=(d=this.callbacks).onFeatureInfo)==null||h.call(d,{feature:null}),(m=(g=this.callbacks).onLayerStatus)==null||m.call(g,{type:"success",text:"当前点击位置不在红原县边界内"});return}if(this.shouldClipLayerToLayerBounds(this.currentTopicLayer)&&!this.isLngLatInLayerClipBounds(a,this.currentTopicLayer)){this.clearSelectedFeature(),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:null}),(x=(C=this.callbacks).onLayerStatus)==null||x.call(C,{type:"success",text:"当前点击位置不在图层显示范围内"});return}if(Du(this.currentTopicLayer)){this.clearSelectedFeature(),(D=(E=this.callbacks).onFeatureInfo)==null||D.call(E,{feature:null});return}if(ti(this.currentTopicLayer)){const v=this.pickVectorFeatureAtPoint(a,t),N=(v==null?void 0:v.feature)||v;let z=(v==null?void 0:v.screen)||t;if(N)this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)?(this.clearSelectedGeometryGroup(),this.setSelectedVectorFeatures([N])):this.showSelectedFeature(N),((Q=this.currentTopicLayer)==null?void 0:Q.key)==="yak-industry-points"&&(this.setSelectedVectorFeatures([N]),z=this.getPointFeatureScreenPoint(N)||z),(je=(Ce=this.callbacks).onFeatureInfo)==null||je.call(Ce,{feature:{id:((se=N.properties)==null?void 0:se.id)||((Z=N.properties)==null?void 0:Z.feature_id)||((G=N.properties)==null?void 0:G.project_name),properties:N.properties||{},feature:N,layer:this.currentTopicLayer,lngLat:a},screen:z}),(vt=(et=this.callbacks).onLayerStatus)==null||vt.call(et,{type:"success",text:"真实矢量要素已选中"});else{const q=this.getTownNameFromMapEvent(e);if(this.handleTownRankingSelect(q))return;this.clearSelectedFeature(),(He=(W=this.callbacks).onFeatureInfo)==null||He.call(W,{feature:null}),(Ft=(tt=this.callbacks).onLayerStatus)==null||Ft.call(tt,{type:"success",text:"当前点击位置无生态保护要素"})}return}const n=this.lngLatToWmsPixel(a);(xt=(ut=this.callbacks).onFeatureInfo)==null||xt.call(ut,{feature:null}),(ct=(Kt=this.callbacks).onFeatureLoading)==null||ct.call(Kt,!0);try{const v=yield Lr(this.currentTopicLayer,n,{size:At,buffer:10}),N=this.normalizeFeatureInfoAtPoint(v,a),z=N?null:yield this.queryFallbackFeatureInfo(a),q=N||(z==null?void 0:z.feature);if(q){const ne=yield this.enrichFeatureInfo(q,n,a);this.showSelectedFeature(ne.feature||ne),($e=(dt=this.callbacks).onFeatureInfo)==null||$e.call(dt,{feature:$(R({},ne),{layer:(z==null?void 0:z.layer)||this.currentTopicLayer,lngLat:a}),screen:t})}else this.clearSelectedFeature(),(ge=(Fe=this.callbacks).onFeatureInfo)==null||ge.call(Fe,{feature:null});q||(ht=(xe=this.callbacks).onLayerStatus)==null||ht.call(xe,{type:"success",text:"当前点击位置无图斑"})}catch(v){this.clearSelectedFeature(),(Ve=(wt=this.callbacks).onFeatureInfo)==null||Ve.call(wt,{feature:null}),(ve=(Ue=this.callbacks).onLayerStatus)==null||ve.call(Ue,{type:"error",text:"图斑信息查询失败"})}finally{(M=(pt=this.callbacks).onFeatureLoading)==null||M.call(pt,!1)}})}handleCanvasBoundaryPointerDown(e){var a,n;if(!this.boundaryDrawingEnabled)return;const t=this.getLngLatFromCanvasEvent(e);t&&this.addBoundaryDrawPoint(t)&&(e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(n=e.stopPropagation)==null||n.call(e)}handleCanvasBoundaryDoubleClick(e){var a,n;if(!this.boundaryDrawingEnabled)return;const t=this.getLngLatFromCanvasEvent(e);(this.boundaryDrawPoints||[]).length<3&&t&&this.addBoundaryDrawPoint(t),(this.boundaryDrawPoints||[]).length>=3&&(this.finishBoundaryDrawing(),e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(n=e.stopPropagation)==null||n.call(e)}getLngLatFromCanvasEvent(e){var L,S,C;if(!((L=this.camera)!=null&&L.instance)||!this.focusMapGroup||!this.canvas)return null;const t=this.canvas.getBoundingClientRect();if(!t.width||!t.height)return null;const a=(S=this.interactionManager)==null?void 0:S.raycaster;if(!(a!=null&&a.setFromCamera))return null;const n={x:(e.clientX-t.left)/t.width*2-1,y:-((e.clientY-t.top)/t.height)*2+1};a.setFromCamera(n,this.camera.instance);const o=((C=a.intersectObjects(this.eventElement||[],!0)[0])==null?void 0:C.point)||this.getRayMapPlaneIntersection(a.ray);if(!o)return null;const u=this.focusMapGroup.worldToLocal(o.clone()),h=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([u.x,-u.y]);if(!h)return null;const g=Number(h[0]),m=Number(h[1]);return!Number.isFinite(g)||!Number.isFinite(m)?null:gU.east+.03||mU.north+.03?this.getFallbackLngLatFromPointer(e,t):{lng:g,lat:m}}getFallbackLngLatFromPointer(e,t=(n=>(n=(a=>(a=this.canvas)==null?void 0:a.getBoundingClientRect)())==null?void 0:n.call(a))()){if(!(t!=null&&t.width)||!(t!=null&&t.height))return null;const s=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),o=Math.min(1,Math.max(0,(e.clientY-t.top)/t.height)),u=U.west+(U.east-U.west)*s,d=U.north-(U.north-U.south)*o;return{lng:u,lat:d}}getRayMapPlaneIntersection(e){if(!(e!=null&&e.origin)||!(e!=null&&e.direction)||!this.focusMapGroup)return null;const t=this.focusMapGroup.worldToLocal(e.origin.clone()),n=this.focusMapGroup.worldToLocal(e.origin.clone().add(e.direction.clone())).sub(t),s=this.depth+.22;if(Math.abs(n.z)<1e-8)return null;const o=(s-t.z)/n.z;if(!Number.isFinite(o)||o<0)return null;const u=t.add(n.multiplyScalar(o));return this.focusMapGroup.localToWorld(u)}enrichFeatureInfo(e,t,a){return he(this,null,function*(){const n=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(n))return e;const o=(Hi[n]||[]).find(m=>m.key===`${n}-distribution`),u=(this.visibleTopicLayers||[]).filter(m=>this.getLayerTopicKey(m)===n).slice(0,5),d=[o,this.currentTopicLayer,...u].filter(m=>m==null?void 0:m.layerName).filter((m,L,S)=>S.findIndex(C=>this.getLayerQueryKey(C)===this.getLayerQueryKey(m))===L);if(!d.length)return e;const h=yield Promise.allSettled([...d.filter(m=>this.getLayerQueryKey(m)!==this.getLayerQueryKey(this.currentTopicLayer)).map(m=>he(this,null,function*(){const L=yield Lr(m,t,{size:At,buffer:10}),S=this.normalizeFeatureInfoAtPoint(L,a);return S?{layer:m,feature:S,source:"wms"}:null})),...d.map(m=>he(this,null,function*(){const L=yield this.queryLayerFeatureByPoint(m,a);return L?{layer:m,feature:L,source:"wfs"}:null}))]),g=R({},e.properties||{});return h.forEach(m=>{var L,S;m.status!=="fulfilled"||!((S=(L=m.value)==null?void 0:L.feature)!=null&&S.properties)||this.mergeBusinessProperties(g,m.value.feature.properties,m.value.layer)}),$(R({},e),{properties:g,relatedFeatures:h.filter(m=>{var L;return m.status==="fulfilled"&&((L=m.value)==null?void 0:L.feature)}).map(m=>m.value),feature:$(R({},e.feature||{}),{properties:g})})})}queryFallbackFeatureInfo(e){return he(this,null,function*(){const t=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(t))return null;const n=[(Hi[t]||[]).find(s=>s.key===`${t}-distribution`),this.currentTopicLayer,...(this.visibleTopicLayers||[]).filter(s=>this.getLayerTopicKey(s)===t)].filter((s,o,u)=>(s==null?void 0:s.layerName)&&u.findIndex(d=>this.getLayerQueryKey(d)===this.getLayerQueryKey(s))===o);for(const s of n){const o=yield this.queryLayerFeatureByPoint(s,e,{requireContainment:!0});if(o)return{layer:s,feature:o}}return null})}normalizeFeatureInfoAtPoint(e,t){const a=Array.isArray(e==null?void 0:e.features)?e.features:[];if(!a.length)return null;const n=this.pickFeatureAtPoint(a,t,{requireContainment:!0});if(!n)return null;const s=n.properties||{};return{id:n.id||s.gid||s.objectid||s.OBJECTID,properties:s,feature:n}}queryLayerFeatureByPoint(n,s){return he(this,arguments,function*(e,t,a={}){var C,x,E;if(!(e!=null&&e.layerName)||!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const o=e.pointQueryTolerance||.0015,u=e.geometryField||"geom",d=t.lng-o,h=t.lat-o,g=t.lng+o,m=t.lat+o,L=yield wr(e.layerName,{cqlFilter:`BBOX(${u},${d},${h},${g},${m})`,maxFeatures:8,timeout:12e3}),S=this.pickFeatureAtPoint((L==null?void 0:L.features)||[],t,a);return S?{id:S.id||((C=S.properties)==null?void 0:C.gid)||((x=S.properties)==null?void 0:x.objectid)||((E=S.properties)==null?void 0:E.OBJECTID),properties:S.properties||{},feature:S}:null})}pickFeatureAtPoint(e,t,a={}){var s;if(!Array.isArray(e)||!e.length)return null;const n=e.filter(o=>this.isLngLatInGeometry(t,o.geometry)).sort((o,u)=>this.getGeometryAreaScore(o.geometry)-this.getGeometryAreaScore(u.geometry));return n.length?n[0]:a.requireContainment?null:((s=e.map(o=>({feature:o,distance:this.getGeometryDistanceScore(o.geometry,t)})).sort((o,u)=>o.distance-u.distance)[0])==null?void 0:s.feature)||null}isLngLatInGeometry(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?this.isLngLatInPolygon(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(a=>this.isLngLatInPolygon(e,a)):!1}isLngLatInPolygon(e,t=[]){return!t.length||!this.isLngLatInRing(e,t[0])?!1:!t.slice(1).some(n=>this.isLngLatInRing(e,n))}isLngLatInRing(e,t=[]){if(t.length<3)return!1;let a=!1;const n=e.lng,s=e.lat;for(let o=0,u=t.length-1;os!=S>s&&n<(L-g)*(s-m)/(S-m)+g&&(a=!a)}return a}isPointOnSegment(e,t,a,n,s,o){const u=(e-a)*(o-n)-(t-n)*(s-a);return Math.abs(u)>1e-10?!1:(e-a)*(e-s)+(t-n)*(t-o)<=1e-10}getGeometryAreaScore(e){return e!=null&&e.coordinates?e.type==="Polygon"?this.getLngLatPolygonAreaScore(e.coordinates):e.type==="MultiPolygon"?e.coordinates.reduce((t,a)=>t+this.getLngLatPolygonAreaScore(a),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}getLngLatPolygonAreaScore(e=[]){const t=e[0]||[];if(t.length<3)return Number.POSITIVE_INFINITY;let a=0;for(let n=0;n({minLng:Math.min(a.minLng,Number((n==null?void 0:n[0])||0)),minLat:Math.min(a.minLat,Number((n==null?void 0:n[1])||0)),maxLng:Math.max(a.maxLng,Number((n==null?void 0:n[0])||0)),maxLat:Math.max(a.maxLat,Number((n==null?void 0:n[1])||0))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}getGeometryCoordinateList(e){const t=[],a=n=>{if(Array.isArray(n)){if(typeof n[0]=="number"&&typeof n[1]=="number"){t.push(n);return}n.forEach(a)}};return a(e==null?void 0:e.coordinates),t}pickVectorFeatureAtPoint(e,t){var o;const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]);if(((o=this.currentTopicLayer)==null?void 0:o.key)==="yak-industry-points"){const u=this.pickPointFeatureAtScreenPoint(a,t);if(u)return u}const n=a.filter(u=>this.isLngLatInGeometry(e,u.geometry)).sort((u,d)=>this.getGeometryAreaScore(u.geometry)-this.getGeometryAreaScore(d.geometry));if(n.length)return n[0];const s=a.find(u=>this.isPointOrLineNearLngLat(u.geometry,e));return s||null}pickPointFeatureAtScreenPoint(e,t){var s;if(!t||!((s=this.camera)!=null&&s.instance)||!this.focusMapGroup||!this.canvas)return null;const n=(e||[]).filter(o=>{var u;return((u=o==null?void 0:o.geometry)==null?void 0:u.type)==="Point"}).map(o=>{const u=this.getPointFeatureScreenPoint(o);return u?{feature:o,screen:u,distance:Math.hypot(u.x-t.x,u.y-t.y)}:null}).filter(Boolean).sort((o,u)=>o.distance-u.distance)[0];return(n==null?void 0:n.distance)<=22?{feature:n.feature,screen:n.screen}:null}getPointFeatureScreenPoint(e){var a,n;const t=(e==null?void 0:e.geometry)||((a=e==null?void 0:e.feature)==null?void 0:a.geometry);return(t==null?void 0:t.type)!=="Point"?null:((n=this.currentTopicLayer)==null?void 0:n.key)==="yak-industry-points"?this.lngLatToLayerScreenPoint(t.coordinates,this.depth+.36):this.lngLatToScreenPoint(t.coordinates,this.depth+.32)}lngLatToLayerLocalPoint(e,t=0){const a=()=>{const h=Number(e==null?void 0:e[0]),g=Number(e==null?void 0:e[1]);if(!Number.isFinite(h)||!Number.isFinite(g))return new re(0,0,Number(t)||0);const[m,L]=this.geoProjection([h,g]);return new re(m,-L,Number(t)||0)},n=this.topicLayerUvBounds;if(!n)return a();const s=this.lngLatToLayerCanvasPoint(e),o=this.topicLayerCanvas;if(!(o!=null&&o.width)||!(o!=null&&o.height))return a();const u=n.left+s.x/o.width*(n.right-n.left),d=n.bottom+(o.height-s.y)/o.height*(n.top-n.bottom);return new re(u,d,Number(t)||0)}lngLatToLayerScreenPoint(e,t=0){return this.localMapPointToScreenPoint(this.lngLatToLayerLocalPoint(e,t))}lngLatToScreenPoint(e,t=0){const a=Number(e==null?void 0:e[0]),n=Number(e==null?void 0:e[1]);if(!Number.isFinite(a)||!Number.isFinite(n))return null;const s=this.lngLatToWorldPoint([a,n],t);return this.worldPointToScreenPoint(s)}localMapPointToScreenPoint(e){const t=this.focusMapGroup?this.focusMapGroup.localToWorld(e):e;return this.worldPointToScreenPoint(t)}worldPointToScreenPoint(e){var n;if(!((n=this.camera)!=null&&n.instance)||!this.canvas||!e)return null;const t=this.canvas.getBoundingClientRect();if(!t.width||!t.height)return null;const a=e.clone().project(this.camera.instance);return!Number.isFinite(a.x)||!Number.isFinite(a.y)?null:{x:t.left+(a.x+1)/2*t.width,y:t.top+(1-a.y)/2*t.height}}focusProject(e){var L,S,C,x;const t=String(e||"").trim();if(!t)return!1;const a=(this.currentVectorFeatures||[]).filter(E=>{var D;return String(((D=E==null?void 0:E.properties)==null?void 0:D.project_name)||"").trim()===t});if(!a.length)return(S=(L=this.callbacks).onLayerStatus)==null||S.call(L,{type:"success",text:"当前项目图斑尚未加载"}),!1;const n=this.getFeatureListLngLatBounds(a);if(!n)return!1;const s=this.getProjectHighlightFeatures(a);s.length?(this.showSelectedFeatures(s),this.setSelectedVectorFeatures(s)):this.clearSelectedFeature();const o=[(n.minLng+n.maxLng)/2,(n.minLat+n.maxLat)/2],u=Math.max(n.maxLng-n.minLng,n.maxLat-n.minLat),d=Math.max(.22,Math.min(.55,u*1.25)),h=this.lngLatToWorldPoint(o,.72),g=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(d),m=h.clone().add(g);return this.animateMapCamera(m,h,.75),(x=(C=this.callbacks).onLayerStatus)==null||x.call(C,{type:"success",text:"已定位项目"}),!0}setBoundaryDrawing(e){var t,a,n,s;this.boundaryDrawingEnabled=!!e,this.boundaryDrawingEnabled?(this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.clearSelectedFeature(),(a=(t=this.callbacks).onLayerStatus)==null||a.call(t,{type:"success",text:"请在地图上依次点击绘制分析边界"})):(s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"success",text:"已退出边界绘制"}),this.redrawVectorTopicLayer()}addBoundaryDrawPoint(e){var s,o,u,d;if(!Number.isFinite(e==null?void 0:e.lng)||!Number.isFinite(e==null?void 0:e.lat))return!1;const t=Date.now(),a=this.lastBoundaryDrawPoint;return a&&t-a.time<350&&Math.hypot(e.lng-a.lng,e.lat-a.lat)<8e-4?!1:(this.lastBoundaryDrawPoint={lng:e.lng,lat:e.lat,time:t},this.boundaryDrawPoints=[...this.boundaryDrawPoints||[],{lng:e.lng,lat:e.lat}],(o=(s=this.callbacks).onDrawBoundary)==null||o.call(s,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:`已添加边界点 ${this.boundaryDrawPoints.length} 个`}),this.redrawVectorTopicLayer(),!0)}undoBoundaryPoint(){var e,t,a;return(e=this.boundaryDrawPoints)!=null&&e.length?(this.boundaryDrawPoints=this.boundaryDrawPoints.slice(0,-1),(a=(t=this.callbacks).onDrawBoundary)==null||a.call(t,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),this.redrawVectorTopicLayer(),!0):!1}finishBoundaryDrawing(){var o,u,d,h,g,m;const e=this.boundaryDrawPoints||[];if(e.length<3)return(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"至少需要 3 个点才能形成分析边界"}),null;const t=e.map(L=>[L.lng,L.lat]),a=t[0],n=t[t.length-1];(a[0]!==n[0]||a[1]!==n[1])&&t.push([...a]);const s={type:"Feature",properties:{source:"draw",pointCount:e.length},geometry:{type:"Polygon",coordinates:[t]}};return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=s,(h=(d=this.callbacks).onDrawBoundary)==null||h.call(d,{status:"complete",feature:s,points:e,pointCount:e.length}),(m=(g=this.callbacks).onLayerStatus)==null||m.call(g,{type:"success",text:"分析边界已生成"}),this.redrawVectorTopicLayer(),s}clearAnalysisBoundary(){var e,t;return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.redrawVectorTopicLayer(),(t=(e=this.callbacks).onDrawBoundary)==null||t.call(e,{status:"clear",points:[],pointCount:0}),!0}showAnalysisResult(e={}){var s;const t=Object.prototype.hasOwnProperty.call(e,"boundary")||Object.prototype.hasOwnProperty.call(e,"boundaryFeature")||Object.prototype.hasOwnProperty.call(e,"feature"),a=e.boundary||e.boundaryFeature||e.feature||null,n=Array.isArray(e.matches)?e.matches:[];return t&&(this.analysisBoundaryFeature=(a==null?void 0:a.type)==="Feature"?a:a!=null&&a.geometry?{type:"Feature",properties:a.properties||{},geometry:a.geometry}:null),this.analysisMatchedFeatures=n.map(o=>(o==null?void 0:o.feature)||o).filter(o=>o==null?void 0:o.geometry),e.preserveView||(!t&&this.analysisMatchedFeatures.length?this.focusAnalysisFeatures(this.analysisMatchedFeatures):(s=this.analysisBoundaryFeature)!=null&&s.geometry&&this.focusAnalysisGeometry(this.analysisBoundaryFeature.geometry)),this.redrawVectorTopicLayer(),!0}focusAnalysisFeatures(e=[]){const t=this.getFeatureListLngLatBounds(e);if(!t)return!1;const a=[(t.minLng+t.maxLng)/2,(t.minLat+t.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(t.maxLng-t.minLng,t.maxLat-t.minLat),statusText:"已定位命中项目"})}focusAnalysisGeometry(e){const t=this.getGeometryLngLatBounds(e);if(!t)return!1;const a=[(t.minLng+t.maxLng)/2,(t.minLat+t.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(t.maxLng-t.minLng,t.maxLat-t.minLat),statusText:"已定位分析边界"})}focusPasture(e={}){var n,s;const a=[...this.normalizePastureGrasslandRows(e==null?void 0:e.grasslands),...this.normalizePastureGrasslandRows(e==null?void 0:e.wkt)].map((o,u)=>{const d=this.normalizePastureGrasslandGeometry(o);if(!d)return null;const h=this.normalizePastureGrasslandProperties(o);return{type:"Feature",properties:$(R({},h),{id:h.id||h.gid||`${(e==null?void 0:e.name)||"pasture"}-${u}`,pasture_name:(e==null?void 0:e.name)||h.pastureName||h.name}),geometry:d}}).filter(Boolean);if(a.length){const o=this.getFeatureListLngLatBounds(a);if(!o)return!1;this.showSelectedFeatures(a,{mode:"pasture"}),this.setSelectedVectorFeatures(a);const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),statusText:"已定位具体草场"}),!0}return(s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"当前牧户暂无可定位数据"}),!1}normalizePastureGrasslandRows(e){return e?typeof e=="string"?[e]:Array.isArray(e)?e:(e==null?void 0:e.type)==="FeatureCollection"&&Array.isArray(e.features)?e.features:(e==null?void 0:e.type)==="Feature"||this.isGeoJsonGeometry(e)?[e]:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.data)?e.data:e!=null&&e.data?this.normalizePastureGrasslandRows(e.data):Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.features)?e.features:e!=null&&e.wkt||e!=null&&e.geo||e!=null&&e.geom||e!=null&&e.geometryWkt||e!=null&&e.geometry_wkt||e!=null&&e.shape||e!=null&&e.location||e!=null&&e.geometry?[e]:[]:[]}normalizePastureGrasslandGeometry(e){var t;return typeof e=="string"?this.parseGeometryText(e):(e==null?void 0:e.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry):this.isGeoJsonGeometry(e)?e:typeof(e==null?void 0:e.geometry)=="string"?this.parseGeometryText(e.geometry):((t=e==null?void 0:e.geometry)==null?void 0:t.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry.geometry):this.isGeoJsonGeometry(e==null?void 0:e.geometry)?e.geometry:this.parseGeometryText((e==null?void 0:e.wkt)||(e==null?void 0:e.geo)||(e==null?void 0:e.geom)||(e==null?void 0:e.geometryWkt)||(e==null?void 0:e.geometry_wkt)||(e==null?void 0:e.shape)||(e==null?void 0:e.location))}normalizePastureGrasslandProperties(e){return!e||typeof e!="object"||Array.isArray(e)?{wkt:e}:e.type==="Feature"?e.properties||{}:e}parseGeometryText(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")||t.startsWith("["))try{const a=JSON.parse(t);if((a==null?void 0:a.type)==="Feature")return this.normalizePastureGrasslandGeometry(a);if(this.isGeoJsonGeometry(a))return a}catch(a){return null}return this.parseWktGeometry(t)}isGeoJsonGeometry(e){return!!(e&&["Polygon","MultiPolygon","LineString","MultiLineString","Point"].includes(e.type)&&e.coordinates)}flyToLngLat(e,t={}){var m,L;const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return!1;const o=Number(t.span),u=Number.isFinite(o)?Math.max(.2,Math.min(.55,o*1.25)):.32,d=this.lngLatToWorldPoint([n,s],.72),h=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(u),g=d.clone().add(h);return this.animateMapCamera(g,d,t.duration||.75),(L=(m=this.callbacks).onLayerStatus)==null||L.call(m,{type:"success",text:t.statusText||"已定位"}),!0}getProjectHighlightFeatures(e){const t=e.filter(n=>{var o;const s=String(((o=n==null?void 0:n.geometry)==null?void 0:o.type)||"");return s.includes("Polygon")||s.includes("LineString")}),a=t.filter(n=>{var s;return((s=n==null?void 0:n.properties)==null?void 0:s.feature_role)==="工程范围"});return a.length?a:t}getFeatureListLngLatBounds(e){return e.reduce((t,a)=>{const n=this.getGeometryLngLatBounds(a.geometry);return n?t?{minLng:Math.min(t.minLng,n.minLng),minLat:Math.min(t.minLat,n.minLat),maxLng:Math.max(t.maxLng,n.maxLng),maxLat:Math.max(t.maxLat,n.maxLat)}:R({},n):t},null)}isPointOrLineNearLngLat(e,t){return e!=null&&e.coordinates?e.type==="Point"?this.getCoordinateDistance(e.coordinates,[t.lng,t.lat])<=.02:e.type==="LineString"?this.isCoordinateNearLine(e.coordinates,t,.004):e.type==="MultiLineString"?e.coordinates.some(a=>this.isCoordinateNearLine(a,t,.004)):!1:!1}isCoordinateNearLine(e,t,a){if(!Array.isArray(e)||e.length<2)return!1;const n=[t.lng,t.lat];for(let s=1;ss.some(o=>o.key===a||o.layerName===t));return(n==null?void 0:n[0])||""}getLayerQueryKey(e){return[(e==null?void 0:e.layerName)||"",(e==null?void 0:e.styles)||"",(e==null?void 0:e.cqlFilter)||"",(e==null?void 0:e.key)||""].join("|")}mergeBusinessProperties(e,t,a){const n=(a==null?void 0:a.key)||"";if(Object.entries(t||{}).forEach(([s,o])=>{o==null||o===""||(e[s]===void 0||e[s]===null||e[s]==="")&&(e[s]=o)}),n==="basic-grassland"){const s=(t==null?void 0:t.basic_type_name)||(t==null?void 0:t.grassland_category_name)||(t==null?void 0:t.land_class_name)||(t==null?void 0:t.land_use_name)||(t==null?void 0:t.base_grass);s!=null&&s!==""&&(e.basic_type_name=s)}if(n==="grassland-level"){const s=(t==null?void 0:t.grassland_level)||(t==null?void 0:t.level)||(t==null?void 0:t.grassland_level_name)||(t==null?void 0:t.level_name);s!=null&&s!==""&&(e.grassland_level=s)}if(n==="grassland-type"||n==="wetland-type"){const s=(t==null?void 0:t.grass_min_type)||(t==null?void 0:t.grass_type)||(t==null?void 0:t.grassland_type)||(t==null?void 0:t.type_name)||(t==null?void 0:t.type);s!=null&&s!==""&&(e.grass_min_type=s)}if(n==="grassland-yield"||n==="wetland-yield"){const s=(t==null?void 0:t.yield)||(t==null?void 0:t.xc_yield)||(t==null?void 0:t.xb_xc_yield)||(t==null?void 0:t.fresh_grass_yield)||(t==null?void 0:t.value),o=(t==null?void 0:t.mu_yield)||(t==null?void 0:t.xc_mu_yield)||(t==null?void 0:t.xb_xc_mu_yield)||(t==null?void 0:t.yield_per_mu);s!=null&&s!==""&&(e.fresh_grass_yield=s),o!=null&&o!==""&&(e.mu_yield=o)}if(n==="grassland-health"){const s=(t==null?void 0:t.health_level)||(t==null?void 0:t.health_level_name)||(t==null?void 0:t.ndvi_level)||(t==null?void 0:t.level)||(t==null?void 0:t.level_name),o=(t==null?void 0:t.ndvi)||(t==null?void 0:t.NDVI)||(t==null?void 0:t.value);s!=null&&s!==""&&(e.health_level=s),o!=null&&o!==""&&(e.ndvi=o);const u=(t==null?void 0:t.degradation_level)||(t==null?void 0:t.degradation_level_name)||(t==null?void 0:t.level)||(t==null?void 0:t.level_name);u!=null&&u!==""&&(e.degradation_level=u)}}getScreenPointFromEvent(e){var a;const t=((a=e==null?void 0:e.data)==null?void 0:a.originalEvent)||(e==null?void 0:e.originalEvent)||e;return(t==null?void 0:t.clientX)!==void 0&&(t==null?void 0:t.clientY)!==void 0?{x:t.clientX,y:t.clientY}:null}getLngLatFromEvent(e){var u,d,h;const a=(h=(((d=(u=this.interactionManager)==null?void 0:u.raycaster)==null?void 0:d.intersectObject(e.target,!1))||[])[0])==null?void 0:h.point;if(!a)return null;const n=this.focusMapGroup.worldToLocal(a.clone()),o=Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([n.x,-n.y]);return o?{lng:o[0],lat:o[1]}:null}lngLatToWmsPixel({lng:e,lat:t}){const a=(e-U.west)/(U.east-U.west)*At.width,n=(U.north-t)/(U.north-U.south)*At.height;return{x:a,y:n}}showSelectedFeature(e,t={}){var n;const a=(e==null?void 0:e.geometry)||((n=e==null?void 0:e.feature)==null?void 0:n.geometry);this.clearSelectedFeature(),this.createSelectedFeatureGroup(),this.addSelectedGeometry(a,t),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}showSelectedFeatures(e=[],t={}){this.clearSelectedFeature(),this.createSelectedFeatureGroup(),e.forEach(a=>{var s;const n=(a==null?void 0:a.geometry)||((s=a==null?void 0:a.feature)==null?void 0:s.geometry);this.addSelectedGeometry(n,t)}),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}setSelectedVectorFeatures(e=[]){this.selectedVectorFeatures=[...e],this.redrawVectorTopicLayer()}getSelectedFeatureStyle(e={}){const t=e.mode==="pasture",a=e.mode==="town";return{fillColor:xr,fillOpacity:t?.46:a?.24:.54,lineColor:Vu,lineOpacity:.98,glowColor:Nr,glowOpacity:t?.92:.96,renderOrderBase:t?42:a?40:35,boundary:t||a,boundaryColor:xr,boundaryGlowColor:Nr,boundaryWidth:a?.012:.018,boundaryGlowWidth:a?.045:.06,boundaryOpacity:.95,boundaryGlowOpacity:a?.34:.42}}addSelectedGeometry(e,t={}){if(!(e!=null&&e.coordinates)||!this.selectedFeatureGroup)return;const a=this.getSelectedFeatureStyle(t),n=this.getDisplayFeaturePolygons(e),s=new be({color:a.fillColor,transparent:!0,opacity:a.fillOpacity,side:Re,depthWrite:!1,fog:!1}),o=new Jt({color:a.lineColor,transparent:!0,opacity:a.lineOpacity,linewidth:2,depthTest:!1,depthWrite:!1,fog:!1}),u=new Jt({color:a.glowColor,transparent:!0,opacity:a.glowOpacity,linewidth:3,depthTest:!1,depthWrite:!1,fog:!1}),d=a.boundary?new be({color:a.boundaryColor,transparent:!0,opacity:a.boundaryOpacity,side:Re,depthTest:!1,depthWrite:!1,fog:!1}):null,h=a.boundary?new be({color:a.boundaryGlowColor,transparent:!0,opacity:a.boundaryGlowOpacity,side:Re,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}):null;n.length&&n.forEach(m=>{const L=this.createProjectedShape(m);if(!L)return;const S=new Il(L),C=new qe(S,s);C.renderOrder=a.renderOrderBase,this.selectedFeatureGroup.add(C),m.forEach(x=>{const E=this.createProjectedRingPoints(x);if(E.length<3)return;a.boundary&&(this.addSelectedBoundaryBand(E,h,a.boundaryGlowWidth,a.renderOrderBase+1,!0),this.addSelectedBoundaryBand(E,d,a.boundaryWidth,a.renderOrderBase+4,!0));const D=new ya().setFromPoints(E),Q=new or(D,o);Q.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(Q);const se=new ya().setFromPoints(E),Z=new or(se,u);Z.renderOrder=a.renderOrderBase+3,Z.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(Z)})});const g=this.normalizeFeatureLineStrings(e);g.length&&g.forEach(m=>{const L=this.createProjectedRingPoints(m);if(L.length<2)return;a.boundary&&(this.addSelectedBoundaryBand(L,h,a.boundaryGlowWidth,a.renderOrderBase+1,!1),this.addSelectedBoundaryBand(L,d,a.boundaryWidth,a.renderOrderBase+4,!1));const S=new ya().setFromPoints(L),C=new lr(S,u);C.renderOrder=a.renderOrderBase+3,C.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(C);const x=new ya().setFromPoints(L),E=new lr(x,o);E.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(E)})}addSelectedBoundaryBand(e,t,a,n,s=!0){if(!t||!this.selectedFeatureGroup)return;const o=this.createPathBandGeometry(e,a,s);if(!o)return;const u=new qe(o,t);u.renderOrder=n,this.selectedFeatureGroup.add(u)}createPathBandGeometry(e,t,a=!0){const n=this.normalizePathBandPoints(e,a);if(n.length<(a?3:2))return null;const s=Math.max(Number(t)||0,0)/2;if(!s)return null;const o=[],u=a?n.length:n.length-1;for(let h=0;hNumber.isFinite(n==null?void 0:n.x)&&Number.isFinite(n==null?void 0:n.y)).map(n=>n.clone());if(t&&a.length>2){const n=a[0],s=a[a.length-1];n.distanceToSquared(s)<1e-10&&a.pop()}return a}clearSelectedFeature(){var t;const e=!!((t=this.selectedVectorFeatures)!=null&&t.length);this.selectedVectorFeatures=[],e&&this.redrawVectorTopicLayer(),this.clearSelectedGeometryGroup()}clearSelectedGeometryGroup(){var t,a;if(!this.selectedFeatureGroup)return;const e=new Set;for(;this.selectedFeatureGroup.children.length;){const n=this.selectedFeatureGroup.children.pop();(a=(t=n.geometry)==null?void 0:t.dispose)==null||a.call(t),Array.isArray(n.material)?n.material.forEach(s=>e.add(s)):e.add(n.material)}e.forEach(n=>{var s;return(s=n==null?void 0:n.dispose)==null?void 0:s.call(n)})}normalizeFeaturePolygons(e){return zr(e)}normalizeFeatureLineStrings(e){return e!=null&&e.coordinates?e.type==="LineString"?[e.coordinates]:e.type==="MultiLineString"?e.coordinates:[]:[]}getDisplayFeaturePolygons(e){const t=this.normalizeFeaturePolygons(e),a=this.getLayerClipBounds(this.currentTopicLayer);return a?t.map(n=>{const s=this.clipRingToBounds(n==null?void 0:n[0],a);if(s.length<3)return null;const o=n.slice(1).map(u=>this.clipRingToBounds(u,a)).filter(u=>u.length>=3);return[s,...o]}).filter(Boolean):t}clipRingToBounds(e=[],t){let a=e.map(s=>[Number(s==null?void 0:s[0]),Number(s==null?void 0:s[1])]).filter(([s,o])=>Number.isFinite(s)&&Number.isFinite(o));return[{inside:([s])=>s>=t.west,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lng",t.west)},{inside:([s])=>s<=t.east,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lng",t.east)},{inside:([,s])=>s>=t.south,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lat",t.south)},{inside:([,s])=>s<=t.north,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lat",t.north)}].forEach(s=>{const o=a;a=[],o.length&&o.forEach((u,d)=>{const h=o[(d+o.length-1)%o.length],g=s.inside(u),m=s.inside(h);g?(m||a.push(s.intersect(h,u)),a.push(u)):m&&a.push(s.intersect(h,u))})}),a}getLngLatLineIntersection(e,t,a,n){const s=a==="lng"?0:1,o=a==="lng"?1:0,u=t[s]-e[s];if(!u)return[...e];const d=(n-e[s])/u,h=[...e];return h[s]=n,h[o]=e[o]+(t[o]-e[o])*d,h}createProjectedShape(e){const t=e==null?void 0:e[0];if(!Array.isArray(t)||t.length<3)return null;const a=new ur;return this.createProjectedRingPoints(t).forEach((s,o)=>{o===0?a.moveTo(s.x,s.y):a.lineTo(s.x,s.y)}),e.slice(1).forEach(s=>{const o=this.createProjectedRingPoints(s);if(o.length<3)return;const u=new ur;o.forEach((d,h)=>{h===0?u.moveTo(d.x,d.y):u.lineTo(d.x,d.y)}),a.holes.push(u)}),a}createProjectedRingPoints(e){if(!Array.isArray(e))return[];const t=[];return e.forEach(a=>{if(!Array.isArray(a)||a.length<2)return;const n=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return;const[o,u]=this.geoProjection([n,s]);t.push(new re(o,-u,0))}),t}enhanceTexture(e){var a,n,s;const t=(n=(a=this.renderer)==null?void 0:a.instance)==null?void 0:n.capabilities;e.anisotropy=((s=t==null?void 0:t.getMaxAnisotropy)==null?void 0:s.call(t))||1,e.needsUpdate=!0}geoProjection(e){return Ht().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0])(e)}updateTownLabelScale(){var u,d,h;const e=this.townNameLabels||this.otherLabel||[],t=(u=this.camera)==null?void 0:u.instance,a=(h=(d=this.camera)==null?void 0:d.controls)==null?void 0:h.target;if(!e.length||!t||!a)return;const n=t.position.distanceTo(a),s=Yt(n*72e-5,.011,.026),o=n>45?"0.76":n<22?"0.94":"1";e.forEach(g=>{var L,S,C;if(((L=g==null?void 0:g.userData)==null?void 0:L.labelType)!=="town-label")return;g.scale.set(s,s,s);const m=(C=(S=g.element)==null?void 0:S.querySelector)==null?void 0:C.call(S,".other-label");m&&(m.style.opacity=o)})}update(e){super.update(e),this.updateDynamicSatelliteTiles(),this.updateTownLabelScale(),this.updateTradeFlowPulses(e),this.interactionManager&&this.interactionManager.update()}pauseScene(){var e,t;this.scenePaused=!0,(t=(e=this.time)==null?void 0:e.pause)==null||t.call(e),this.sceneTweens.forEach(a=>{var n;return(n=a==null?void 0:a.pause)==null?void 0:n.call(a)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var e,t;this.scenePaused=!1,(t=(e=this.time)==null?void 0:e.resume)==null||t.call(e),this.sceneTweens.forEach(a=>{var n;return(n=a==null?void 0:a.resume)==null?void 0:n.call(a)}),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){var e,t,a,n;this.pauseScene(),this.sceneTimers.forEach(s=>clearTimeout(s)),this.sceneTimers=[],this.sceneTweens.forEach(s=>{var o;return(o=s==null?void 0:s.kill)==null?void 0:o.call(s)}),this.sceneTweens=[],this.callbacks={},(t=(e=this.canvas)==null?void 0:e.removeEventListener)==null||t.call(e,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(n=(a=this.canvas)==null?void 0:a.removeEventListener)==null||n.call(a,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.clearTradeFlowLayer(),this.clearSelectedFeature(),super.destroy(),this.label3d&&this.label3d.destroy()}}const Uu={class:"map"},Ku={__name:"map",props:{activeLayer:{type:Object,default:null},mapRanking:{type:Object,default:null},tileUrlTemplate:{type:String,default:""},satelliteTextureZoom:{type:Number,default:0},satelliteMaxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},useSatelliteBase:{type:Boolean,default:!0},showNationalBackdrop:{type:Boolean,default:!1},topicLayerPresentation:{type:String,default:"default"},hideTownLabelStats:{type:Boolean,default:!1}},emits:["feature-loading","feature-info","layer-status","tile-status","draw-boundary","scene-mounted"],setup(b,{expose:e,emit:t}){const a=b,n=t,s=V(null),o=yl(null);let u=null,d=null,h=null,g=null,m=null,L="",S="",C=!1;Yr(()=>{n("scene-mounted")}),jr(()=>{ct()});function x(M){return o.value?!0:s.value?(o.value=new qu(s.value,M,{onFeatureLoading:v=>n("feature-loading",v),onFeatureInfo:v=>n("feature-info",v),onLayerStatus:v=>n("layer-status",v),onTileStatus:v=>n("tile-status",v),onDrawBoundary:v=>n("draw-boundary",v),tileUrlTemplate:a.tileUrlTemplate,satelliteTextureZoom:a.satelliteTextureZoom,satelliteMaxZoom:a.satelliteMaxZoom,adminBoundaryLineScale:a.adminBoundaryLineScale,useSatelliteBase:a.useSatelliteBase,showNationalBackdrop:a.showNationalBackdrop,topicLayerPresentation:a.topicLayerPresentation,hideTownLabelStats:a.hideTownLabelStats}),o.value.time.pause(),L=Ue(a.activeLayer),S=pt(a.mapRanking),o.value.setTopicLayers(ve(a.activeLayer),a.activeLayer),o.value.setTownRanking(a.mapRanking),ge(),Fe(),!0):!1}function E(){return!!o.value}function D(){return he(this,null,function*(){var M,v,N,z,q,ne;if(o.value&&(Q(),!o.value.mapAnimationComplete)){if(C){(v=(M=o.value.animateTl)==null?void 0:M.play)==null||v.call(M),dt();return}C=!0,(z=(N=o.value.animateTl)==null?void 0:N.timeScale)==null||z.call(N,1),(ne=(q=o.value.animateTl)==null?void 0:q.play)==null||ne.call(q),dt()}})}function Q(){var M,v;o.value&&(ge(),Fe(),window.requestAnimationFrame(()=>{var N,z,q,ne,ce,Ge;(q=(z=(N=o.value)==null?void 0:N.label3d)==null?void 0:z.resize)==null||q.call(z),(Ge=(ce=(ne=o.value)==null?void 0:ne.label3d)==null?void 0:ce.update)==null||Ge.call(ce)}),(v=(M=o.value).resumeScene)==null||v.call(M),o.value.resumeScene||o.value.time.resume())}function se(){var M,v,N,z,q,ne;o.value&&($e(),(v=(M=o.value.animateTl)==null?void 0:M.pause)==null||v.call(M),(z=(N=o.value).pauseScene)==null||z.call(N),o.value.pauseScene||(ne=(q=o.value.time)==null?void 0:q.pause)==null||ne.call(q),ht())}function Z(){var M,v;(v=(M=o.value)==null?void 0:M.clearSelectedFeature)==null||v.call(M)}function G(M){var v,N;(N=(v=o.value)==null?void 0:v.focusProject)==null||N.call(v,M)}function Ce(M){var v,N;(N=(v=o.value)==null?void 0:v.focusPasture)==null||N.call(v,M)}function je(M,v){var N,z;return(z=(N=o.value)==null?void 0:N.focusTownByName)==null?void 0:z.call(N,M,v)}function et(M){var v,N;return(N=(v=o.value)==null?void 0:v.focusYakIndustryPoint)==null?void 0:N.call(v,M)}function vt(M){var v,N;return(N=(v=o.value)==null?void 0:v.focusVectorFeature)==null?void 0:N.call(v,M)}function W(M){var v,N;return(N=(v=o.value)==null?void 0:v.getVectorFeatureScreen)==null?void 0:N.call(v,M)}function He(M){var v,N;return(N=(v=o.value)==null?void 0:v.getYakIndustryPointScreen)==null?void 0:N.call(v,M)}function tt(M){var v,N;(N=(v=o.value)==null?void 0:v.setBoundaryDrawing)==null||N.call(v,M)}function Ft(){var M,v;return(v=(M=o.value)==null?void 0:M.finishBoundaryDrawing)==null?void 0:v.call(M)}function ut(){var M,v;(v=(M=o.value)==null?void 0:M.undoBoundaryPoint)==null||v.call(M)}function xt(){var M,v;(v=(M=o.value)==null?void 0:M.clearAnalysisBoundary)==null||v.call(M)}function Kt(M){var v,N;(N=(v=o.value)==null?void 0:v.showAnalysisResult)==null||N.call(v,M)}function ct(){var M,v;$e(),ht(),(v=(M=o.value)==null?void 0:M.destroy)==null||v.call(M),o.value=null}function dt(){$e(),m=window.setTimeout(()=>{var M,v;m=null,(v=(M=o.value)==null?void 0:M.ensureMapRevealed)==null||v.call(M)},5200)}function $e(){m&&(window.clearTimeout(m),m=null)}function Fe(){d&&window.cancelAnimationFrame(d),d=window.requestAnimationFrame(()=>{var M,v,N,z,q;d=null,(N=(v=(M=o.value)==null?void 0:M.sizes)==null?void 0:v.init)==null||N.call(v),(q=(z=o.value)==null?void 0:z.resize)==null||q.call(z)}),h&&window.clearTimeout(h),h=window.setTimeout(()=>{var M,v,N,z,q;h=null,(N=(v=(M=o.value)==null?void 0:M.sizes)==null?void 0:v.init)==null||N.call(v),(q=(z=o.value)==null?void 0:z.resize)==null||q.call(z)},180)}function ge(){var v;ht();const M=(v=s.value)==null?void 0:v.parentNode;M&&window.ResizeObserver&&(u=new ResizeObserver(()=>Fe()),u.observe(M)),g=window.setInterval(xe,1e3),jt(Fe)}function xe(){var ce;if(!o.value||!s.value)return;const M=s.value.parentNode,v=(M==null?void 0:M.offsetWidth)||window.innerWidth||1,N=(M==null?void 0:M.offsetHeight)||window.innerHeight||1,z=((ce=o.value.sizes)==null?void 0:ce.pixelRatio)||1,q=Math.floor(v*z),ne=Math.floor(N*z);(s.value.width!==q||s.value.height!==ne)&&Fe()}function ht(){u&&(u.disconnect(),u=null),d&&(window.cancelAnimationFrame(d),d=null),h&&(window.clearTimeout(h),h=null),g&&(window.clearInterval(g),g=null)}function wt(){if(!o.value)return;ge();const M=()=>{var v,N,z,q,ne,ce,Ge,ze,_e,Be,Ae,Ke,at,fe,me,ee,it,ft,Me,Lt,Tt;o.value&&((N=(v=o.value)==null?void 0:v.resumeScene)==null||N.call(v),o.value.resumeScene||(q=(z=o.value.time)==null?void 0:z.resume)==null||q.call(z),(Ge=(ce=(ne=o.value)==null?void 0:ne.sizes)==null?void 0:ce.init)==null||Ge.call(ce),(_e=(ze=o.value)==null?void 0:ze.resize)==null||_e.call(ze),(Ke=(Ae=(Be=o.value)==null?void 0:Be.label3d)==null?void 0:Ae.resize)==null||Ke.call(Ae),(me=(fe=(at=o.value)==null?void 0:at.label3d)==null?void 0:fe.update)==null||me.call(fe),(it=(ee=o.value)==null?void 0:ee.setTopicLayers)==null||it.call(ee,ve(a.activeLayer),a.activeLayer),(Me=(ft=o.value)==null?void 0:ft.setTownRanking)==null||Me.call(ft,a.mapRanking),(Tt=(Lt=o.value)==null?void 0:Lt.ensureMapRevealed)==null||Tt.call(Lt))};Fe(),window.requestAnimationFrame(M),window.setTimeout(()=>{M()},80),window.setTimeout(()=>{M()},220)}function Ve(){if(!o.value)return;ge();const M=()=>{var N,z,q,ne,ce,Ge,ze,_e,Be,Ae,Ke,at,fe,me,ee,it;const v=o.value;v&&((N=v.resumeScene)==null||N.call(v),v.resumeScene||(q=(z=v.time)==null?void 0:z.resume)==null||q.call(z),(ce=(ne=v.sizes)==null?void 0:ne.init)==null||ce.call(ne),(Ge=v.resize)==null||Ge.call(v),(ze=v.ensureMapRevealed)==null||ze.call(v),(_e=v.setTradeNationalMapVisible)==null||_e.call(v,!1),(Be=v.setTopicLayers)==null||Be.call(v,ve(a.activeLayer),a.activeLayer),(Ae=v.setTownRanking)==null||Ae.call(v,a.mapRanking),(Ke=v.applyLayerMapView)==null||Ke.call(v,v.currentTopicLayer||a.activeLayer||null,{force:!0}),(fe=(at=v.label3d)==null?void 0:at.resize)==null||fe.call(at),(ee=(me=v.label3d)==null?void 0:me.update)==null||ee.call(me),(it=v.updateDynamicSatelliteTiles)==null||it.call(v,!0))};Fe(),window.requestAnimationFrame(M),window.setTimeout(M,100),window.setTimeout(M,260)}qt(()=>a.activeLayer,M=>{const v=Ue(M);v!==L&&(L=v,o.value&&o.value.setTopicLayers(ve(M),M))},{deep:!0}),qt(()=>a.mapRanking,M=>{const v=pt(M);v!==S&&(S=v,o.value&&o.value.setTownRanking(M))},{deep:!0}),e({loadMap:x,hasMap:E,play:D,resume:Q,pause:se,clearSelectedFeature:Z,focusProject:G,focusPasture:Ce,focusTown:je,focusYakIndustryPoint:et,focusVectorFeature:vt,getVectorFeatureScreen:W,getYakIndustryPointScreen:He,setBoundaryDrawing:tt,finishBoundaryDrawing:Ft,undoBoundaryPoint:ut,clearAnalysisBoundary:xt,showAnalysisResult:Kt,refreshView:wt,resetView:Ve,destroyMap:ct,canvasMap:o});function Ue(M){return M?ve(M).map(v=>{var N,z;return[v.key||"",v.layerName||"",v.styles||"",v.sldBody||"",v.cqlFilter||"",((N=v.activeLegend)==null?void 0:N.key)||"",Array.isArray(v.activeLegends)?v.activeLegends.map(q=>(q==null?void 0:q.key)||"").join(","):"",v.timelineDate||"",((z=v.timelineItem)==null?void 0:z.key)||"",v.sourceType||"",v.dataPath||"",v.fallbackPath||""].join("|")}).join("||"):""}function ve(M){if(!M)return[];const v=Array.isArray(M.overlayLayers)?M.overlayLayers.filter(Boolean):[];return[M,...v]}function pt(M){var v,N,z,q,ne,ce,Ge,ze,_e,Be;return M?[M.status||"",M.topicKey||"",M.layerKey||"",M.title||"",M.metricLabel||"",M.scope||"",M.displayMode||"",(v=M.showPointMarkers)!=null?v:"",(N=M.showBars)!=null?N:"",(z=M.showTownNames)!=null?z:"",(q=M.showMapLabels)!=null?q:"",(ne=M.hideTownLabelStats)!=null?ne:"",(ce=M.showFlowLines)!=null?ce:"",(Ge=M.onlyRankedTownLabels)!=null?Ge:"",(ze=M.showMissingTownStats)!=null?ze:"",((_e=M.rows)==null?void 0:_e.length)||0,((Be=M.rows)==null?void 0:Be.map(Ae=>{var Ke;return`${Ae.key||Ae.name||""}:${(Ke=Ae.value)!=null?Ke:""}`}).join(","))||""].join("|"):""}return(M,v)=>(I(),_("div",Uu,[f("canvas",{ref_key:"canvasRef",ref:s},null,512)]))}};const Zu={class:"yak-management"},Xu={key:1,class:"yak-map-loading"},Ju={class:"yak-management-ui"},Qu={key:0,class:"trade-year-switcher","aria-label":"交易年份切换"},ec=["onClick"],tc={key:1,class:"epidemic-year-switcher","aria-label":"防疫年份切换"},ac=["onClick"],ic={key:2,class:"forecast-year-switcher","aria-label":"预测年份切换"},nc=["onClick"],rc={class:"yak-left"},sc={class:"yak-side-stack is-left"},oc={class:"breeding-health-card"},lc={class:"breeding-health-head"},uc={class:"breeding-health-grid"},cc={class:"structure-chart-card"},dc={class:"structure-ratio-card"},hc={class:"structure-ratio-chart"},pc={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},fc={class:"structure-rose-segments"},mc=["d","fill","stroke"],gc={class:"structure-ratio-list"},yc={key:0,class:"yak-data-status"},bc={key:1,class:"yak-data-status is-warning"},vc={class:"forecast-waterfall-card"},wc={class:"forecast-waterfall-head"},Lc={class:"forecast-waterfall-list"},Tc={class:"forecast-trend-card"},Sc={class:"forecast-density-switcher","aria-label":"预测粒度切换"},Mc=["onClick"],kc={key:0,class:"epidemic-three-pie-card"},Pc={class:"epidemic-three-pie-visual"},Cc={class:"epidemic-three-pie-center"},Fc={class:"epidemic-three-pie-legend"},xc={key:1,class:"epidemic-empty"},Nc={class:"trade-risk-card"},Rc={class:"trade-risk-head"},Ic={class:"trade-risk-list"},Gc={class:"yak-right"},_c={class:"yak-side-stack is-right"},Bc={class:"structure-chart-card"},Ac={class:"structure-summary-card"},Ec={key:0,class:"yak-data-status"},$c={key:1,class:"yak-data-status is-warning"},Vc={class:"forecast-heat-list"},zc=["title"],Oc={class:"epidemic-record-table is-full"},Dc={class:"epidemic-record-toolbar"},Wc={class:"epidemic-record-rows"},Yc=["onClick"],jc={key:0,class:"epidemic-empty"},Hc={class:"epidemic-record-pager"},qc=["disabled"],Uc=["disabled"],Kc={class:"trade-cert-card"},Zc={class:"trade-cert-main"},Xc={class:"trade-dest-list"},Jc={key:0,class:"epidemic-empty"},Qc={class:"trade-ledger-table"},ed={class:"trade-ledger-toolbar"},td={class:"trade-ledger-rows"},ad=["onClick"],id={key:0,class:"epidemic-empty"},nd={class:"trade-ledger-pager"},rd=["disabled"],sd=["disabled"],od={class:"yak-bottom-topic"},ld={key:3,class:"yak-map-layer-tools"},ud={class:"epidemic-ledger-dialog"},cd={class:"epidemic-ledger-dialog-head"},dd={class:"epidemic-ledger-filters"},hd=["value"],pd=["value"],fd={class:"epidemic-ledger-workspace"},md={class:"epidemic-ledger-list"},gd=["onClick"],yd={key:0,class:"epidemic-empty"},bd={class:"epidemic-ledger-detail trade-ledger-detail epidemic-ledger-record-detail"},vd={class:"epidemic-detail-head trade-detail-head"},wd={class:"epidemic-detail-grid is-modal trade-detail-grid epidemic-detail-flat-grid"},Ld={key:0,class:"epidemic-detail-photos"},Td={class:"epidemic-modal-photo-strip"},Sd=["onClick"],Md=["src"],kd={class:"epidemic-ledger-pager"},Pd=["disabled"],Cd=["disabled"],Fd={class:"epidemic-ledger-dialog trade-ledger-dialog"},xd={class:"epidemic-ledger-dialog-head"},Nd={class:"epidemic-ledger-filters trade-ledger-filters"},Rd=["value"],Id=["value"],Gd=["value"],_d={class:"epidemic-ledger-workspace trade-ledger-workspace"},Bd={class:"epidemic-ledger-list trade-ledger-modal-list"},Ad=["onClick"],Ed={key:0,class:"epidemic-empty"},$d={class:"epidemic-ledger-detail trade-ledger-detail"},Vd={class:"epidemic-detail-head trade-detail-head"},zd={class:"epidemic-detail-grid is-modal trade-detail-grid"},Od={class:"is-wide"},Dd={class:"is-wide"},Wd={class:"is-wide"},Yd={class:"is-wide"},jd=["disabled"],Hd={class:"epidemic-ledger-pager"},qd=["disabled"],Ud=["disabled"],Kd={class:"epidemic-image-preview-dialog"},Zd={class:"epidemic-image-preview-head"},Xd={class:"epidemic-image-preview-body"},Jd={class:"epidemic-image-preview-frame"},Qd=["src"],eh="https://qkl-hy.oss-cn-chengdu.aliyuncs.com/yak-vaccine-images",th="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",ah=8.85,ih="oss-satellite-dynamic-zoom21-v5",ai=8,Or=14,Ki=12,Dr=14,nh=5e3,ii=6,rh=4200,Wr="#FFE600",Th={__name:"index",props:{active:{type:Boolean,default:!0},viewKey:{type:String,default:"structure"}},emits:["module-stats","view-change"],setup(b,{expose:e,emit:t}){const a=b,n=t,s=cr.sideCardWidth;cr.sideCardGap;const o=V(typeof window=="undefined"?1080:window.innerHeight),u=k(()=>_l(o.value)),d=k(()=>dr(u.value,2)),h=k(()=>u.value),g=k(()=>dr(u.value,2)),m=ba.textPrimary,L=ba.textStrong,S=ba.textSecondary,C=ba.textMuted,x=ba.chartGridLine,E=[102.58,32.72],D=E,Q=E,se={lng:0,lat:-.065},Z={targetLngLat:[102.6,32.59],targetLocalZ:.72,distanceScale:1.05,duration:.75},G=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],Ce=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],je=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff"],et={name:"红原牦牛交易市场",lng:102.562157,lat:32.820484},vt=[{key:"structure",name:"畜群结构",color:"#30dcff"},{key:"forecast",name:"畜群预测",color:"#8bf7ff"},{key:"epidemic",name:"牦牛防疫",color:"#8bf7ff"},{key:"trade",name:"牦牛交易",color:"#63d7ff"}],W=V(Di(a.viewKey)),He=V([]),tt=V("2027"),Ft=V("month"),ut=V(0),xt=V([]),Kt=V([]),ct=V([]),dt=V(!1),$e=V(""),Fe=[2025,2026],ge=V(2026),xe=V({metrics:{}}),ht=V({rows:[],year:null}),wt=V({rows:[]}),Ve=V([]),Ue=V(0),ve=V(1),pt=V(""),M=V(""),v=V(!1),N=V(""),z=V(!1),q=V([]),ne=V(0),ce=V(1),Ge=V(!1),ze=V(""),_e=V(null),Be=V(null),Ae=V(!1),Ke=V(!1),at=V(""),fe=V(za()),me=V({years:[],latestYear:null}),ee=V({metrics:{},hasData:!1}),it=V([]),ft=V(0),Me=V(null),Lt=V(!1),Tt=V(""),St=V(1),Ma=V(""),ri=V(""),si=V(!1),Et=V([]),ka=V(0),$t=V(1),oi=V(!1),li=V(""),Pa=V(null),mt=V({keyword:"",startTown:"",usageType:"",certType:""}),Oe=V(null),oa=V(null),Vt=V(!1),la=V(!1),Ji=V(0),Qi=V(0),ua=V({type:"idle",text:""}),ca=V({type:"idle",text:""});let ui=null,ci=!1,Mt=!1,kt=null,da=!1,Ca=null,Fa=null,xa=0;const di=[{key:"day",label:"日",unit:"日",stepDays:1},{key:"week",label:"周",unit:"周",stepDays:7},{key:"month",label:"月",unit:"月",stepDays:30}],Ze=k(()=>Dl(tt.value)),Ur=new Set(["epidemic","trade"]),hi=k(()=>!Ur.has(W.value)),en=k(()=>hi.value?th:""),Kr=k(()=>hi.value?"oss-satellite":"solid-3d"),Zr=k(()=>`yak-management-map-${Kr.value}-${ih}-${Ji.value}`),Xr=k(()=>Wl+Yl),pi=k(()=>Ze.value.stock-ot),Jr=k(()=>hl(Ze.value)),Na=k(()=>al(ct.value,wa)),Qr=k(()=>Na.value.reduce((i,r)=>i+Number(r.count||0),0));k(()=>{const i=Qr.value||1;return Na.value.map((r,l)=>{const c=Number(r.count||0),p=Number(r.ratio);return $(R({},r),{count:c,color:G[l%G.length],percent:Number.isFinite(p)?p:c/i*100})})});const es=k(()=>Jn(Na.value,wa)),Ra=k(()=>es.value),tn=k(()=>ol(Ra.value)),an=k(()=>ll(Na.value,wa)),nn=k(()=>cl(an.value)),ts=k(()=>Math.max(...tn.value.map(i=>Number(i.count||0)),1)),fi=k(()=>Ra.value.length?0:-1),as=k(()=>{const i=Ra.value,r=i.length;if(!r)return[];const l=Math.max(...i.map(y=>Number(y.count||0)),1),c=360/r,p=Math.min(8,c*.16);return i.map((y,w)=>{const T=Number(y.count||0),F=w===fi.value,B=36+Math.sqrt(T/l)*31+(F?5:0),A=17,Y=-90+w*c+p/2,X=-90+(w+1)*c-p/2,O=(Y+X)/2,J=Dt(75,75,B+3,O),Ne=Dt(75,75,B+15,O),rt=Dt(75,75,B+20,O);return{key:y.key||y.name||w,index:w,item:y,color:y.color||G[w%G.length],path:sl(75,75,A,B,Y,X),lineStart:J,lineEnd:Ne,label:rt,anchor:Math.cos(O*Math.PI/180)>=0?"start":"end"}})}),rn=k(()=>Zn(["fertileCow","overageCow"])),sn=k(()=>Zn(["femaleCalf","maleCalf"])),Nt=k(()=>jl(mo(xt.value.length?xt.value:gr,gr),ot)),mi=k(()=>gu),gi=k(()=>Hl(Ze.value)),is=k(()=>ql(Ze.value)),yi=k(()=>{var i;return((i=xe.value)==null?void 0:i.metrics)||{}}),bi=k(()=>{var i;return Pt((i=xe.value)==null?void 0:i.dateTrend).sort(Mo)}),Ia=k(()=>{var i;return Pt((i=xe.value)==null?void 0:i.medicineCounts)}),Ga=k(()=>Ia.value.filter(i=>i.value>0).map((i,r)=>$(R({},i),{key:i.key||`${i.name}-${r}`,unit:"条"}))),ns=k(()=>Ga.value.map(i=>`${i.name}:${i.value}`).join("|")||"epidemic-medicine-empty"),rs=k(()=>{var i;return Pt((i=xe.value)==null?void 0:i.ownerRanks).slice(0,8)}),Rt=k(()=>yn(xe.value)),ss=k(()=>{var i;return((i=Ia.value.find(r=>r.name&&r.name!=="未填写"))==null?void 0:i.name)||"-"}),gt=k(()=>Da(yi.value,["total","vaccine"]));k(()=>Da(yi.value,["owners"]));const os=k(()=>Number(ge.value)===2026?10:Da(yi.value,["villages"])),vi=k(()=>zt.value.length),ls=k(()=>{var i;return((i=zt.value[0])==null?void 0:i.name)||"-"}),on=k(()=>{const i=Ve.value.map(r=>r.operateTime).filter(Boolean).sort();return i.length?Gt(i[i.length-1]):"-"}),wi=k(()=>{const i=Math.max(...Ia.value.map(r=>Number(r.value||0)),0);return i>0?i:Math.round(gt.value/Rt.value)}),Li=k(()=>{var r;const i=bo((r=ht.value)==null?void 0:r.rows);return i.length?i:zt.value.map(l=>({name:l.name,recordCount:Number(l.recordCount||0),earTagCount:Number(l.earTagCount||0),ratio:l.ratio,source:"ledger"}))}),ln=k(()=>{var r;const i=new Set;return Ai((r=wt.value)==null?void 0:r.rows).filter(l=>Number.isFinite(l.lng)&&Number.isFinite(l.lat)).map((l,c)=>{const p=`${l.lng.toFixed(4)},${l.lat.toFixed(4)}`,y=i.has(p)?(c%3-1)*.012:0;return i.add(p),$(R({},l),{name:l.village,value:l.earTagCount,unit:"万头",lng:l.lng+y,lat:l.lat-y*.65,displayValue:Number((l.earTagCount/1e4).toFixed(2)),displayUnit:"万头",rankLabel:`第${c+1}名`})})}),zt=k(()=>{var r;const i=new Map;return Pt((r=xe.value)==null?void 0:r.townCounts).forEach(l=>{const c=Xe(l.name);c&&i.set(c,Number(i.get(c)||0)+Number(l.value||0))}),[...i.entries()].map(([l,c])=>{const p=Math.round(c/Rt.value),y=gt.value?c/gt.value*100:0;return{name:l,recordCount:c,earTagCount:p,ratio:y}}).sort((l,c)=>Number(c.recordCount||0)-Number(l.recordCount||0))}),us=k(()=>Math.max(Nt.value.length,vi.value)),cs=k(()=>new Set(zt.value.map(i=>Xe(i.name)).filter(Boolean))),It=k(()=>{const i=cs.value;return Nt.value.map(r=>Xe(r.name)).filter(r=>r&&!i.has(r))}),ds=k(()=>{const i=us.value||vi.value||1;return vi.value/i*100});k(()=>wi.value/ot*100);const _a=k(()=>Po());k(()=>gt.value?It.value.length?It.value.length:_a.value.name&&_a.value.name!=="暂无"?1:0:0);const hs=k(()=>Co()),ps=k(()=>Fo()),fs=k(()=>xo());k(()=>No());const ms=k(()=>Ro());k(()=>ms.value.slice(0,3)),k(()=>gt.value?It.value.length?"年度免疫进度需核查":_a.value.desc:"年度计划待核查");const Ti=k(()=>Math.max(Math.ceil(Ue.value/ai),1)),gs=k(()=>Ve.value.slice(0,ai)),un=k(()=>Math.max(Math.ceil(ne.value/Or),1)),Ot=k(()=>Be.value||_e.value||{}),cn=k(()=>$i(Ot.value)),ys=k(()=>{const i=Ot.value||{};return[ke("台账编号",i.epidemicId,{wide:!0}),ke("养殖户",i.owner,{wide:!0}),ke("联系电话",Pn(i.phone)),ke("证件类型",i.idType),ke("证件号码",Bo(i.idNo)),ke("镇/乡",i.town),ke("村",i.village),ke("详细地址",i.location,{wide:!0}),ke("畜种",i.livestockType),ke("性别",i.sex),ke("畜龄",i.age),ke("体重",Ao(i.weight)),ke("疫苗/药品",i.medicine),ke("防疫类型",i.preventionType),ke("免疫方式",i.method),ke("剂量",Eo(i.dose)),ke("免疫时间",Gt(i.operateTime)),ke("操作员",i.operator)].filter(Boolean)}),bs=k(()=>{var i;return Pt((i=xe.value)==null?void 0:i.townCounts).map(r=>r.name)}),vs=k(()=>Ia.value.map(i=>i.name).filter(i=>i&&i!=="未填写")),dn=k(()=>{var i;return((i=ee.value)==null?void 0:i.metrics)||{}}),hn=k(()=>{var i,r,l,c,p,y,w,T;return bn((i=me.value)==null?void 0:i.years,(r=ee.value)==null?void 0:r.availableYears,(l=ee.value)==null?void 0:l.available_years,(c=ee.value)==null?void 0:c.yearSummary,(p=ee.value)==null?void 0:p.year_summary,(y=ee.value)==null?void 0:y.latestYear,(w=ee.value)==null?void 0:w.latest_year,(T=ee.value)==null?void 0:T.year)}),ws=k(()=>{var i,r;return Oa(((i=ee.value)==null?void 0:i.monthTrend)||((r=ee.value)==null?void 0:r.month_trend),"name")});k(()=>{var i,r;return go(((i=ee.value)==null?void 0:i.yearSummary)||((r=ee.value)==null?void 0:r.year_summary))});const Ba=k(()=>{var i,r;return Oa(((i=ee.value)==null?void 0:i.startTownCounts)||((r=ee.value)==null?void 0:r.start_town_counts),"name")}),Si=k(()=>{var i,r;return Oa(((i=ee.value)==null?void 0:i.usageCounts)||((r=ee.value)==null?void 0:r.usage_counts),"name")}),Ls=k(()=>{var i,r,l,c,p,y;return Oa(((i=ee.value)==null?void 0:i.transportNumberCounts)||((r=ee.value)==null?void 0:r.transport_number_counts)||((l=ee.value)==null?void 0:l.vehicleCounts)||((c=ee.value)==null?void 0:c.vehicle_counts)||((p=ee.value)==null?void 0:p.transportCounts)||((y=ee.value)==null?void 0:y.transport_counts),"transportNumber")}),Aa=k(()=>{const i=Ba.value.map(l=>{const c=String(l.name||"").trim(),p=Xe(c),y=Ri(p||c);return $(R({},l),{rawName:c,name:y,displayName:y,town:p,mapTownName:p})}).filter(l=>l.name&&l.name!=="未填写").slice(0,10),r=Math.max(...i.map(l=>l.headCount),1);return i.map((l,c)=>$(R({},l),{key:l.key||`${l.mapTownName||l.name}-${c}`,value:l.headCount,unit:"头",ratio:Math.max(8,Math.round(l.headCount/r*100))}))}),pn=k(()=>it.value.slice(0,Ki)),Mi=k(()=>Math.max(Math.ceil(ft.value/Ki),1)),ki=k(()=>Math.max(Math.ceil(ka.value/Dr),1)),ye=k(()=>Pa.value||{}),Ts=k(()=>ye.value.certId||ye.value.factoryCode||""),Ss=k(()=>{var r,l;const i=_i(((r=me.value)==null?void 0:r.startTowns)||((l=me.value)==null?void 0:l.start_towns));return i.length?i:Bi(Ba.value.map(c=>c.name))}),Ms=k(()=>{var r,l;const i=_i(((r=me.value)==null?void 0:r.usageTypes)||((l=me.value)==null?void 0:l.usage_types));return i.length?i:Bi(Si.value.map(c=>c.name))}),ks=k(()=>{var r,l,c,p;const i=yo(((r=me.value)==null?void 0:r.certTypeOptions)||((l=me.value)==null?void 0:l.cert_type_options));return i.length?i:_i(((c=me.value)==null?void 0:c.certTypes)||((p=me.value)==null?void 0:p.cert_types)).map(y=>({value:y,label:y}))}),Ps=k(()=>Aa.value.map((i,r)=>({key:i.key||`${i.name}-${r}`,name:i.displayName||i.name,displayName:i.displayName||i.name,rawName:i.rawName,town:i.mapTownName||i.town||Xe(i.name),mapTownName:i.mapTownName||i.town||Xe(i.name),value:i.headCount,headCount:i.headCount,recordCount:i.recordCount,ratio:i.ratio,unit:"头"}))),fn=k(()=>Io()),Cs=k(()=>{const i=fn.value.filter(r=>r.level==="high");return i.length>=2?`${i.length}项重点`:i.length===1?`重点:${i[0].name}`:"整体平稳"}),Fs=k(()=>Nt.value.map(i=>$(R({},i),{breedingCowRatio:rn.value,calfRatio:sn.value,breedingCow:Math.round(i.count*rn.value/100),calf:Math.round(i.count*sn.value/100)}))),Ea=k(()=>{const i=Fs.value,r=i.length,l=Math.max(Math.ceil(r/ii),1),c=ut.value%l,p=c*ii,y=Math.min(p+ii,r);return{page:c,pageCount:l,start:p,end:y,total:r,rows:i.slice(p,y)}}),xs=k(()=>W.value==="forecast"?gi.value:Nt.value),Ns=k(()=>W.value==="forecast"?"forecast":"count"),Rs=k(()=>Qo(xs.value,Ns.value)),ha=k(()=>({key:"yak-marks-layer",sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",cqlFilter:"gov_show = true",name:"牦牛识别",opacity:.92,queryBuffer:10,geometryField:"geom",fillColor:"rgba(255, 230, 0, 0)",strokeColor:Wr,glowColor:"rgba(255, 230, 0, 0.42)",lineWidth:1.4,mapView:{targetLngLat:E,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-marks",name:"牦牛",fillColor:Wr,strokeColor:"#FFF58A",selectable:!1}]})),Is=k(()=>[ha.value]),Gs=k(()=>{const i=Array.isArray(He.value)?He.value:[He.value];return new Set(i.map(String).filter(Boolean))}),Pi=k(()=>Gs.value.has(ha.value.key)),_s=k(()=>Pi.value?ha.value.legends||[]:[]),Bs=k(()=>Pi.value?202:172),As=k(()=>{var l;const r=Ai((l=wt.value)==null?void 0:l.rows).map(c=>Lo(c.town,c.village)).filter(Boolean);return{key:"yak-epidemic-village-boundary",sourceType:"wfs",layerName:"ne:t_pastures_map",styles:"牧场样式",name:"防疫村边界",opacity:.86,queryBuffer:8,cqlFilter:r.length?r.join(" OR "):"EXCLUDE",legends:[{key:"yak-epidemic-village-boundary",name:"防疫村边界",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1}]}}),mn=k(()=>W.value==="epidemic"?As.value:W.value==="trade"?null:nt.value?Pi.value?ha.value:null:ha.value),nt=k(()=>W.value==="structure"||W.value==="forecast"),Es=k(()=>W.value==="forecast"?Q:D),$s=k(()=>nt.value?null:mn.value),Vs=k(()=>nt.value?null:Ds.value),zs=k(()=>nt.value?!la.value:!Vt.value),Os=k(()=>"3D地图加载中"),Ds=k(()=>W.value==="trade"?{scope:"trade-flow",title:`${Me.value||""}出栏来源`,metricLabel:"来源",unit:"头",source:$(R({},et),{total:De("headCount")}),rows:Ps.value,showFlowLines:!1,mapView:Z}:{scope:W.value==="epidemic"?"village":"town",hideTownNames:W.value==="epidemic",title:W.value==="forecast"?`${Ze.value.shortLabel}预测存栏`:W.value==="epidemic"?`${ge.value}年村级防疫信息`:"乡镇估算存栏",metricLabel:W.value==="forecast"?"预测":W.value==="epidemic"?"防疫":"存栏",unit:"万头",rows:W.value==="epidemic"?ln.value:Rs.value.map(i=>({name:i.name,value:Number((i.value/1e4).toFixed(2)),unit:"万头"}))}),Ws=k(()=>({color:["#8bf7ff","#30dcff"],tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(i){const r=i.map(l=>`${l.marker}${l.seriesName}:${K(Math.abs(l.value))}头`);return`${i[0].name}
${r.join("
")}`}}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:11}},grid:{left:22,right:22,top:32,bottom:12,containLabel:!0},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>ae(Math.abs(i))},splitLine:{lineStyle:{color:x,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:ji.map(i=>i.age),axisLabel:{color:m,fontSize:11,fontWeight:700},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"母牛",type:"bar",stack:"gender",barWidth:12,data:ji.map(i=>-i.cow),itemStyle:{borderRadius:[7,0,0,7]}},{name:"公牛",type:"bar",stack:"gender",barWidth:12,data:ji.map(i=>i.bull),itemStyle:{borderRadius:[0,7,7,0]}}]})),Ys=k(()=>{const i=Nt.value,r=i.map(l=>l.count);return{color:G,tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(l){const c=l.map(p=>`${p.marker}${p.seriesName}:${K(p.value)}头`);return`${l[0].name}
${c.join("
")}
估算存栏:${K(r[l[0].dataIndex])}头
结构依据:畜群结构比例表`}}),legend:{top:-2,right:0,itemWidth:8,itemHeight:6,itemGap:6,textStyle:{color:S,fontSize:10}},grid:{left:54,right:30,top:22,bottom:8},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ae},splitLine:{lineStyle:{color:x,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",inverse:!0,data:i.map(l=>l.name),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:wa.map(l=>({name:l.name,type:"bar",stack:"town",barWidth:i.length>8?6:11,data:i.map(c=>Math.round(c.count*l.ratio/100))}))}}),js=k(()=>Oi(Nt.value,"count","头",{style:"ladder",tooltipFormatter(i){const r=Nt.value[i.dataIndex];return`${r.name}
估算存栏:${K(r.count)}头
来源:无人机识别`}})),Hs=k(()=>{const i=Ea.value,r=i.rows,l=Math.max(...r.map(c=>c.breedingCow+c.calf),1);return{color:["#30dcff","#8bf7ff"],animationDurationUpdate:700,animationEasingUpdate:"cubicOut",tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(c){const p=r[c[0].dataIndex],y=c.filter(w=>["能繁母牛","犊牛合计"].includes(w.seriesName)).map(w=>`${w.marker}${w.seriesName}:${K(w.value)}头`);return`${p.name}
母犊合计:${K(p.breedingCow+p.calf)}头
${y.join("
")}
依据:无人机识别 + 畜群结构比例表`}}),legend:{data:["能繁母牛","犊牛合计"],top:2,left:2,itemWidth:10,itemHeight:7,itemGap:9,textStyle:{color:S,fontSize:10}},graphic:i.total>ii?{type:"text",right:4,top:3,silent:!0,style:{text:`${i.start+1}-${i.end} / ${i.total}`,fill:C,fontSize:10,fontWeight:600}}:void 0,grid:{left:18,right:18,top:42,bottom:44,containLabel:!1},xAxis:{type:"category",data:r.map(c=>c.name),axisLabel:{color:C,fontSize:10,lineHeight:12,interval:0,margin:8,formatter:So},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",max:Math.ceil(l*1.28),axisLabel:{show:!1},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"基础群规模",type:"bar",barWidth:15,barGap:"-100%",data:r.map(c=>c.breedingCow+c.calf),tooltip:{show:!1},itemStyle:{borderRadius:[8,8,1,1],color:"rgba(48, 220, 255, 0.07)"},silent:!0},{name:"能繁母牛",type:"bar",stack:"foundation",barWidth:15,data:r.map(c=>c.breedingCow),itemStyle:{borderRadius:[1,1,0,0],color:new Ee(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.34)"},{offset:1,color:"#30dcff"}])}},{name:"犊牛合计",type:"bar",stack:"foundation",barWidth:15,data:r.map(c=>c.calf),itemStyle:{borderRadius:[8,8,1,1],color:new Ee(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:1,color:"rgba(139, 247, 255, 0.2)"}])},label:{show:!0,position:"top",formatter:({dataIndex:c})=>ae(r[c].breedingCow+r[c].calf),color:"#ffffff",fontSize:10,fontWeight:700}}]}}),qs=k(()=>{const i=yr.slice().sort((c,p)=>p.value-c.value),r=yr.reduce((c,p)=>c+p.value,0),l=i.map(c=>c.yoy||0);return{color:i.map(c=>c.color),tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(c){const p=i[c[0].dataIndex];return`${p.label}
数量:${K(p.value)}头
占比:${Je(p.value/r*100)}
同比:${p.yoy>0?"+":""}${p.yoy}%`}}),grid:{left:36,right:30,top:20,bottom:34},xAxis:{type:"category",data:i.map(c=>c.label),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0,margin:10},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:ae},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",min:Math.min(-2,Math.floor(Math.min(...l)-1)),max:Math.max(8,Math.ceil(Math.max(...l)+1)),axisLabel:{color:S,fontSize:10,formatter:"{value}%"},splitLine:{show:!1},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:16,data:i.map((c,p)=>({value:c.value,itemStyle:{borderRadius:[8,8,2,2],color:new Ee(0,0,0,1,[{offset:0,color:c.color},{offset:.72,color:`${c.color}cc`},{offset:1,color:`${c.color}18`}]),shadowBlur:p===0?4:2,shadowColor:"rgba(48, 220, 255, 0.16)"},label:{show:!0,position:"top",color:L,fontSize:10,fontFamily:Yi.number,fontWeight:700,formatter:({value:y})=>ae(y)}}))},{name:"同比",type:"line",yAxisIndex:1,smooth:!0,symbol:"circle",symbolSize:6,data:l,lineStyle:{width:2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2},label:{show:!0,position:"top",color:"#8bf7ff",fontSize:10,formatter:({value:c})=>`${c>0?"+":""}${c}%`}}]}}),Us=k(()=>{const i=Uo(Ft.value),r=Ko(Ze.value,i.key),l=Jo(r),c=Zo(l.length,i.key);return{color:["#30dcff","#8bf7ff","#48cfff"],tooltip:$(R({},we()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(p){var B,A,Y;const y=Array.isArray(p)?p:[p],w=y.find(X=>X.seriesType==="candlestick"),T=(w==null?void 0:w.data)||l[(Y=(A=w==null?void 0:w.dataIndex)!=null?A:(B=y[0])==null?void 0:B.dataIndex)!=null?Y:0];if(!T)return"";const F=T.close-T.open;return[`${T.label}|${i.unit}度预测`,`预测存栏:${K(T.close)}头`,`较上期:${Ha(F)}头`,`新生牛犊:${K(T.birth)}头`,`出栏扣减:${K(T.outflow)}头`].join("
")}}),legend:{top:4,right:8,data:["预测存栏","新生牛犊","出栏扣减"],itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:44,right:40,top:34,bottom:28},xAxis:{type:"category",boundaryGap:!0,data:r.labels,axisLabel:{color:C,fontSize:10,interval:c},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:C,fontSize:10,formatter:ae},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10,formatter:ae},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:Xo(l.length,i.key),data:l,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.4}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:4,data:l.map(p=>p.close),lineStyle:{width:1.8,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:1},tooltip:{show:!1}},Un("新生牛犊",r.births,"#8bf7ff",1),Un("出栏扣减",r.outflow,"#48cfff",1)]}}),Ks=k(()=>({color:["#30dcff","#8bf7ff"],tooltip:$(R({},we()),{trigger:"axis"}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:52,right:42,top:34,bottom:28},xAxis:{type:"category",data:mi.value.map(i=>i.month||i.name),axisLabel:{color:C,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>{const r=Number(i);return Number.isFinite(r)?Math.abs(r)>=1e4?`${Number((r/1e4).toFixed(1))}万`:`${r}`:i}},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10},splitLine:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:12,data:mi.value.map(i=>i.count||i.value),itemStyle:{borderRadius:[8,8,0,0],color:new Ee(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"增速",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:mi.value.map(i=>i.speed||i.growthRate||0),lineStyle:{width:2.4,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff"}}]})),Zs=k(()=>({tooltip:we(),radar:{center:["50%","54%"],radius:"68%",splitNumber:4,indicator:br.map(i=>({name:i.name,max:100})),axisName:{color:"rgba(223, 250, 255, 0.76)",fontSize:11},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},splitArea:{areaStyle:{color:["rgba(48, 220, 255, 0.04)","rgba(139, 247, 255, 0.018)"]}},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.18)"}}},series:[{type:"radar",data:[{name:"预测因子",value:br.map(i=>i.value),areaStyle:{color:"rgba(48, 220, 255, 0.22)"},lineStyle:{color:"#30dcff",width:2},itemStyle:{color:"#8bf7ff"}}]}]})),Xs=k(()=>Oi(gi.value,"forecast","头")),Js=k(()=>{const i=is.value,r=i.reduce((l,c,p)=>{const y=c.color||G[p%G.length];return l[`name${p}`]={color:y,fontSize:10,fontWeight:800},l[`percent${p}`]={color:y,fontSize:10,fontFamily:"D-DIN, Arial, sans-serif",fontWeight:800},l},{});return{color:G,tooltip:we(l=>{var p;const c=i.find(y=>y.name===l.name);return`${l.name}
预测占比:${Je((p=c==null?void 0:c.ratio)!=null?p:l.percent)}
预测数量:${K((c==null?void 0:c.count)||0)}头`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,formatter(l){const c=i.findIndex(y=>y.name===l),p=i[c];return p?`{name${c}|${l}} {percent${c}|${Je(p.ratio)}}`:l},textStyle:{color:S,fontSize:10,rich:r}},series:[{name:"期末结构预测",type:"pie",radius:["38%","66%"],center:["32%","54%"],startAngle:118,avoidLabelOverlap:!1,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i.map(l=>({name:l.name,value:l.count}))}]}}),Qs=k(()=>({color:["#8bf7ff","#48cfff","#48cfff"],tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:{top:4,right:8,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:44,right:26,top:34,bottom:28},xAxis:{type:"category",data:Bt.map(i=>i.shortLabel),axisLabel:{color:m,fontSize:11,fontWeight:700},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>ja(i,1)},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"新生牛犊",type:"bar",barWidth:12,data:Bt.map(i=>i.births),itemStyle:{borderRadius:[7,7,0,0]}},{name:"出栏流出",type:"bar",barWidth:12,data:Bt.map(i=>-i.outflow),itemStyle:{borderRadius:[0,0,7,7]}},{name:"稳态校正",type:"line",smooth:!0,symbolSize:6,data:Bt.map(i=>i.correction),lineStyle:{width:2.4}}]})),eo=k(()=>{const i=gi.value,r=Math.max(...i.map(l=>Math.abs(l.change)),1);return i.map(l=>$(R({},l),{width:Math.max(8,Math.round(Math.abs(l.change)/r*100))}))});function to(i){const r=Number((i==null?void 0:i.change)||0)>=0;return{"--heat-width":`${i.width}%`,"--heat-color":r?"#30dcff":"#8bf7ff","--heat-color-soft":r?"rgba(48, 220, 255, 0.24)":"rgba(139, 247, 255, 0.22)","--heat-color-dim":r?"rgba(48, 220, 255, 0.07)":"rgba(139, 247, 255, 0.07)"}}function ao(i){return`${i.name}:${Ha(i.change)}头`}const io=k(()=>{const i=bi.value,r=i.map(c=>c.value),l=Math.max(...r,1);return{color:["#30dcff","#8bf7ff"],tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},formatter(c){const p=c[0];return`${p.name}
防疫记录:${K(p.value)}条`}}),grid:{left:42,right:24,top:20,bottom:28},xAxis:{type:"category",data:i.map(c=>c.name),axisLabel:{color:C,fontSize:10,interval:Math.max(Math.floor(i.length/7),0)},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ae},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"防疫记录",type:"bar",barMaxWidth:12,data:r,itemStyle:{borderRadius:[7,7,0,0],color:new Ee(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.92)",fontSize:10,formatter:({value:c})=>c>=l*.42?ae(c):""}},{name:"作业趋势",type:"line",smooth:!0,showSymbol:!1,data:r,lineStyle:{width:2.4,color:"#8bf7ff"}}]}});k(()=>{const i=bi.value.length?bi.value.slice(-6):[{name:"待开展",value:0}],r=i.map(w=>Number(w.value||0)),l=hs.value,c=l.map(w=>Number(w.value||0)),p=Math.max(...r,1),y=w=>String(w||"").replace(/(镇|乡|村)$/,"");return{color:["#30dcff","#8bf7ff"],title:[{text:"作业节奏",left:4,top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}},{text:"补免关注",left:"55%",top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}}],tooltip:$(R({},we()),{trigger:"axis",formatter(w){const T=Array.isArray(w)?w[0]:w;if((T==null?void 0:T.axisIndex)===1){const B=l[T.dataIndex]||{};return`${B.name}
补免关注:${B.label||T.value}`}const F=i[T.dataIndex]||{};return`${F.name}
防疫记录:${K(F.value)}条`}}),grid:[{left:6,right:"52%",top:26,bottom:15},{left:"56%",right:12,top:26,bottom:15}],xAxis:[{type:"category",gridIndex:0,data:i.map(w=>w.name),axisLabel:{color:"rgba(226, 252, 255, 0.56)",fontSize:9,interval:0,formatter:w=>String(w||"").replace(/^(\d{1,2})\D+(\d{1,2}).*$/,"$1/$2")},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},{type:"value",gridIndex:1,min:0,max:Math.max(...c,100),show:!1}],yAxis:[{type:"value",gridIndex:0,show:!1},{type:"category",gridIndex:1,inverse:!0,data:l.map(w=>w.name),axisLabel:{color:"rgba(226, 252, 255, 0.68)",fontSize:9,formatter:w=>y(w)},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"防疫记录",type:"bar",xAxisIndex:0,yAxisIndex:0,barMaxWidth:9,data:r,itemStyle:{borderRadius:[6,6,0,0],color:new Ee(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.1)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.86)",fontSize:8,formatter:({value:w})=>w>=p*.55?ae(w):""}},{name:"节奏线",type:"line",xAxisIndex:0,yAxisIndex:0,smooth:!0,showSymbol:!1,data:r,lineStyle:{width:1.8,color:"#8bf7ff"},tooltip:{show:!1}},{name:"补免关注",type:"bar",xAxisIndex:1,yAxisIndex:1,barWidth:8,data:c,itemStyle:{borderRadius:[0,7,7,0],color:new Ee(0,0,1,0,[{offset:0,color:"rgba(139, 247, 255, 0.24)"},{offset:1,color:"#8bf7ff"}])},label:{show:!0,position:"right",color:"rgba(201, 251, 255, 0.9)",fontSize:8,formatter:({dataIndex:w})=>{var T;return((T=l[w])==null?void 0:T.label)||""}}}]}}),k(()=>{const i=ps.value,r=i.map(y=>Number(y.value||0)),l=Math.max(...r,1),c=r.filter(Boolean).reduce((y,w)=>y+w,0)/Math.max(r.filter(Boolean).length,1),p=Math.ceil(l*1.18);return{color:["#30dcff","#8bf7ff"],tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(y){var T;const w=i[(T=y[0])==null?void 0:T.dataIndex]||{};return w.isMissing?`${w.name}
年度防疫:待补强`:`${w.name}
覆盖量:${K(w.value)}头
防疫记录:${K(w.recordCount)}条`}}),grid:{left:56,right:46,top:16,bottom:12},xAxis:{type:"value",min:0,max:p,show:!1},yAxis:{type:"category",inverse:!0,data:i.map(y=>y.name),axisLabel:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,interval:0,formatter:y=>String(y||"").replace(/(镇|乡)$/,"")},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"均衡参照",type:"bar",barWidth:11,silent:!0,barGap:"-100%",data:i.map(()=>p),itemStyle:{borderRadius:[0,8,8,0],borderColor:"rgba(48, 220, 255, 0.12)",borderWidth:1,color:"rgba(48, 220, 255, 0.045)"}},{name:"覆盖量",type:"bar",barWidth:11,barGap:"-100%",z:3,data:i.map(y=>{const w=Number(y.value||0);return{value:w>0?w:Math.max(p*.035,1),rawValue:w,itemStyle:{borderRadius:[0,8,8,0],color:new Ee(0,0,1,0,[{offset:0,color:y.isMissing?"rgba(72, 207, 255, 0.2)":"rgba(48, 220, 255, 0.14)"},{offset:.72,color:y.isMissing?"#48cfff":"#30dcff"},{offset:1,color:y.isMissing?"#8bf7ff":"#9efcff"}]),shadowBlur:y.isMissing?4:5,shadowColor:y.isMissing?"rgba(72, 207, 255, 0.18)":"rgba(48, 220, 255, 0.16)"}}}),label:{show:!0,position:"right",color:"rgba(239, 255, 255, 0.92)",fontSize:11,fontWeight:800,formatter:({dataIndex:y})=>{const w=i[y]||{};return w.isMissing?"待补强":`${ae(w.value)}头`}},markLine:c>0?{symbol:"none",silent:!0,lineStyle:{color:"rgba(139, 247, 255, 0.46)",type:"dashed",width:1},label:{color:"rgba(201, 251, 255, 0.8)",fontSize:10,formatter:"均衡线"},data:[{xAxis:c}]}:void 0}]}}),k(()=>{const i=fs.value,r=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff","#40b8ff","#8bf7ff"],l=i.length?i.map((c,p)=>({name:String(c.name||"").replace(/(村|社区|牧委会)$/,""),value:Math.max(Number(c.value||0),1),rawValue:Number(c.value||0),town:c.town||"",itemStyle:{color:new Ee(0,0,1,1,[{offset:0,color:r[p%r.length]},{offset:1,color:"rgba(17, 70, 92, 0.38)"}])}})):[{name:"待形成",value:1,rawValue:0,town:"",itemStyle:{color:"rgba(48, 220, 255, 0.14)"}}];return{tooltip:$(R({},we()),{formatter(c){const p=c.data||{};return p.rawValue?`${p.town?`${p.town} `:""}${p.name}
覆盖量:${K(p.rawValue)}头`:`${p.name}
暂无村级覆盖量`}}),series:[{type:"treemap",roam:!1,nodeClick:!1,breadcrumb:{show:!1},left:6,right:6,top:7,bottom:5,visibleMin:1,data:l,label:{show:!0,color:"rgba(235, 254, 255, 0.9)",fontSize:10,fontWeight:800,lineHeight:14,formatter(c){var y;const p=Number(((y=c.data)==null?void 0:y.rawValue)||0);return p?`${c.name} +${ae(p)}头`:c.name}},upperLabel:{show:!1},itemStyle:{borderColor:"rgba(4, 24, 36, 0.88)",borderWidth:2,gapWidth:2},emphasis:{label:{color:"#ffffff"},itemStyle:{shadowBlur:6,shadowColor:"rgba(48, 220, 255, 0.18)"}},levels:[{itemStyle:{borderColor:"rgba(14, 75, 98, 0.72)",borderWidth:1,gapWidth:2}}]}]}});const no=k(()=>{const i=Li.value,r=i.length>8?10:12,l=r+8,c=i.map(B=>Number(B.recordCount||0)),p=i.map(B=>Number(B.earTagCount||0)),y=Math.max(...c,1),w=i.map(()=>Math.ceil(y*1.08)),T=new Ee(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.18)"},{offset:.48,color:"rgba(48, 220, 255, 0.06)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}]),F=new Ee(0,0,0,1,[{offset:0,color:"#31f7ff"},{offset:.36,color:"#1cbcff"},{offset:1,color:"#266dff"}]);return{color:["#31f7ff","#8bf7ff"],title:{text:`台账总量:{value|${ae(gt.value)}条}`,right:0,top:0,textStyle:{color:"#fff",fontSize:12,fontWeight:500,rich:{value:{color:"#22f1ff",borderColor:"#14bdf4",borderWidth:1,borderRadius:2,padding:[2,6,3,6],fontSize:12,fontWeight:700}}}},tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(B){const A=i[B[0].dataIndex];return[`${A.name}`,`防疫记录:${K(A.recordCount)}条`,`耳标数量:${K(A.earTagCount)}头`,"数据来源:防疫台账"].join("
")}}),legend:[{data:["防疫记录"],top:0,left:0,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:m,fontSize:11},selectedMode:!1},{data:["耳标数"],top:0,left:82,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:m,fontSize:11},selectedMode:!1}],grid:{left:42,right:12,top:46,bottom:68},xAxis:{type:"category",data:i.map(B=>B.name),axisLabel:{color:m,fontSize:10,interval:0,lineHeight:11,margin:8,formatter:To},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},yAxis:{type:"value",name:"数量/条",max:Math.ceil(y*1.2),nameTextStyle:{color:C,fontSize:10,align:"left"},axisLabel:{color:C,fontSize:10,formatter:ae},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"统计底柱",type:"bar",barWidth:l,barGap:"-100%",data:w,tooltip:{show:!1},silent:!0,z:1,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(48, 220, 255, 0.22)",borderWidth:1,color:T}},{name:"防疫记录",type:"bar",barGap:"-100%",barWidth:r,barMinHeight:2,z:3,data:c.map(B=>({value:B,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(200, 252, 255, 0.22)",borderWidth:1,color:F,shadowBlur:10,shadowColor:"rgba(49, 247, 255, 0.28)"}}))},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[r+7,5],symbolOffset:[0,-3],symbolPosition:"end",z:8,tooltip:{show:!1},data:c.map(B=>({value:B,itemStyle:{color:"rgba(207, 252, 255, 0.88)",shadowBlur:8,shadowColor:"rgba(49, 247, 255, 0.72)"}}))},{name:"底座光影",type:"pictorialBar",symbol:"diamond",symbolSize:[l+3,5],symbolOffset:[0,3],z:2,tooltip:{show:!1},data:c,itemStyle:{color:"rgba(48, 220, 255, 0.24)",shadowBlur:10,shadowColor:"rgba(48, 220, 255, 0.45)"}},{name:"耳标数",type:"line",smooth:!0,showSymbol:!1,z:9,data:p,lineStyle:{width:1.6,color:"#8bf7ff",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:"#8bf7ff"}}]}}),ro=k(()=>{const i=rs.value;return{tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(r){const l=i[r[0].dataIndex];return`${l.name}
防疫记录:${K(l.value)}条`}}),grid:{left:74,right:42,top:12,bottom:8},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ae},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:i.map(r=>r.name),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"记录",type:"bar",barWidth:9,data:i.map((r,l)=>({value:r.value,itemStyle:{borderRadius:[0,8,8,0],color:new Ee(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.12)"},{offset:.62,color:["#30dcff","#8bf7ff","#58d9ff"][l%3]},{offset:1,color:"#ffffff"}])}})),label:{show:!0,position:"right",color:"#eaffff",fontSize:10,formatter:({value:r})=>ae(r)}},{type:"scatter",symbolSize:7,data:i.map(r=>r.value),itemStyle:{color:"#8bf7ff",shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}]}}),so=k(()=>{const i=ws.value;return{color:["#30dcff","#8bf7ff"],tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(r){const l=r.find(p=>p.seriesName==="流通头数"),c=r.find(p=>p.seriesName==="出证记录");return`${(l==null?void 0:l.axisValue)||""}
流通头数:${K((l==null?void 0:l.value)||0)}头
出证记录:${K((c==null?void 0:c.value)||0)}条`}}),legend:{top:4,right:10,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:42,right:38,top:34,bottom:28},xAxis:{type:"category",data:i.map(r=>r.name),axisLabel:{color:C,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:ae},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10,formatter:ae},splitLine:{show:!1}}],series:[{name:"流通头数",type:"bar",barMaxWidth:13,data:i.map(r=>r.headCount),itemStyle:{borderRadius:[7,7,0,0],color:new Ee(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"出证记录",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:i.map(r=>r.recordCount),lineStyle:{width:2.2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2}}]}}),oo=k(()=>Oi(Ba.value.slice(0,10),"headCount","头",{colors:je,style:"ladder",axisTextColor:"rgba(255, 255, 255, 0.88)",dimAxisTextColor:"rgba(255, 255, 255, 0.74)",tooltipFormatter(i){const r=Ba.value[i.dataIndex];return`${r.name}
流通头数:${K(r.headCount)}头
出证记录:${K(r.recordCount)}条`}})),lo=k(()=>{const i=Si.value;return{color:je,tooltip:we(r=>{const l=i.find(c=>c.name===r.name);return`${r.name}
占比:${r.percent}%
流通头数:${K(r.value)}头
出证记录:${K((l==null?void 0:l.recordCount)||0)}条`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,textStyle:{color:S,fontSize:10},formatter(r){const l=i.find(c=>c.name===r);return l?`${r} ${ae(l.headCount)}头`:r}},series:[{name:"用途结构",type:"pie",radius:["38%","64%"],center:["32%","54%"],startAngle:110,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i.map(r=>({name:r.name,value:r.headCount}))}]}}),uo=k(()=>{const i=[{name:"省外A证",value:De("outProvinceHeads","aCertHeads")},{name:"省内B证",value:De("inProvinceHeads","bCertHeads")}];return{color:["#8bf7ff","#30dcff"],tooltip:we(r=>`${r.name}
流通头数:${K(r.value)}头
占比:${r.percent}%`),series:[{type:"pie",radius:["48%","72%"],center:["50%","52%"],label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i}]}});function Ci(){o.value=typeof window=="undefined"?1080:window.innerHeight}function gn(){var i,r,l,c,p,y;if(nt.value){(r=(i=oa.value)==null?void 0:i.refreshView)==null||r.call(i);return}(c=(l=Oe.value)==null?void 0:l.resume)==null||c.call(l),(y=(p=Oe.value)==null?void 0:p.refreshView)==null||y.call(p)}function Fi(){kt&&(window.clearTimeout(kt),kt=null)}function co(){var i,r,l,c,p,y;if(ua.value={type:"loading",text:"地图正在复位"},ca.value={type:"idle",text:""},nt.value){(r=(i=oa.value)==null?void 0:i.hasMap)!=null&&r.call(i)?(la.value=!0,(c=(l=oa.value)==null?void 0:l.resetView)==null||c.call(l)):(la.value=!1,Qi.value+=1,jt(()=>{window.setTimeout(()=>{var w,T;return(T=(w=oa.value)==null?void 0:w.refreshView)==null?void 0:T.call(w)},160)}));return}if((y=(p=Oe.value)==null?void 0:p.hasMap)!=null&&y.call(p)){Vt.value=!0,gn();return}Fi(),Vt.value=!1,Mt=!1,Ji.value+=1,jt(()=>{pa()})}e({refreshMapView:gn,resetMap:co,setActiveView(i){W.value=Di(i)}}),Yr(()=>{Ci(),window.addEventListener("resize",Ci),Yo(),$o(),An(),Fn(),$a(),Va()}),jr(()=>{var i,r;da=!0,window.removeEventListener("resize",Ci),kt&&window.clearTimeout(kt),xi(),Ni(),(r=(i=Oe.value)==null?void 0:i.destroyMap)==null||r.call(i)}),qt([W,Ze,Nt,wi,gt,ge,Me,dn],()=>{Ho()},{immediate:!0}),qt(W,(i,r)=>{n("view-change",i);const l=i==="structure"||i==="forecast",c=r==="structure"||r==="forecast",p=!l&&!c&&(i==="trade"||r==="trade");l&&!c&&(la.value=!1,ua.value={type:"idle",text:""},ca.value={type:"idle",text:""}),!l&&c&&(Fi(),Vt.value=!1,Mt=!1,ua.value={type:"idle",text:""},ca.value={type:"idle",text:""},jt(()=>{var y,w,T,F;pa(),(w=(y=Oe.value)==null?void 0:y.resume)==null||w.call(y),(F=(T=Oe.value)==null?void 0:T.refreshView)==null||F.call(T),window.setTimeout(()=>{var B,A;return(A=(B=Oe.value)==null?void 0:B.refreshView)==null?void 0:A.call(B)},180)})),p&&(Fi(),Vt.value=!1,Mt=!1,ua.value={type:"idle",text:""},ca.value={type:"idle",text:""},jt(()=>{pa()})),$a(),Va()}),qt(()=>a.viewKey,i=>{const r=Di(i);r!==W.value&&(W.value=r)}),qt(()=>a.active,i=>{var r,l,c,p;i?(pa(),(l=(r=Oe.value)==null?void 0:r.resume)==null||l.call(r),$a(),Va()):((p=(c=Oe.value)==null?void 0:c.pause)==null||p.call(c),xi(),Ni())}),qt(Ea,i=>{ut.value>=i.pageCount&&(ut.value=0),Va()});function ho(i){i!==tt.value&&(tt.value=i,$a())}function $a(){xi(),!(!a.active||W.value!=="forecast"||da)&&(Ca=window.setInterval(po,nh))}function po(){const i=Bt.findIndex(l=>l.key===tt.value),r=i>=0?(i+1)%Bt.length:0;tt.value=Bt[r].key}function xi(){Ca&&(window.clearInterval(Ca),Ca=null)}function Va(){Ni(),!(!a.active||W.value!=="structure"||da||Ea.value.pageCount<=1)&&(Fa=window.setInterval(fo,rh))}function fo(){const i=Ea.value.pageCount;i<=1||(ut.value=(ut.value+1)%i)}function Ni(){Fa&&(window.clearInterval(Fa),Fa=null)}function mo(i=[],r=[]){const l=new Map;return r.forEach(c=>{const p=Ri(c.name);p&&l.set(p,$(R({},c),{name:p,count:Number(c.count||0)}))}),i.forEach(c=>{const p=Ri(c.name);if(!p)return;const y=l.get(p)||{};l.set(p,$(R(R({},y),c),{name:p,count:Number.isFinite(Number(c.count))?Number(c.count):Number(y.count||0)}))}),[...l.values()].sort((c,p)=>Number(p.count||0)-Number(c.count||0))}function Ri(i){return vr(i||"")}function Xe(i){return String(i||"").trim()}function Ii(i){const r=Number(i);return Number.isFinite(r)&&Fe.includes(r)?r:Fe[Fe.length-1]}function Gi(i=ge.value){const r=Ii(i);return{startDate:`${r}-01-01`,endDate:`${r}-12-31`}}function za(){return{keyword:"",town:"",medicine:"",startDate:"",endDate:""}}function Pt(i=[]){return Array.isArray(i)?i.map((r,l)=>{var c,p,y;return{key:r.key||r.id||`${r.name||r.label||"item"}-${l}`,name:String(r.name||r.label||r.town||r.village||"未填写"),value:Number((y=(p=(c=r.value)!=null?c:r.count)!=null?p:r.total)!=null?y:0)}}).filter(r=>r.name&&Number.isFinite(r.value)):[]}function yn(i={}){const r=Pt(i==null?void 0:i.medicineCounts);return Math.max(r.filter(l=>l.name!=="未填写").length,1)}function bn(...i){const r=i.flatMap(l=>Array.isArray(l)?l:[l]).map(l=>{var c,p,y;return l&&typeof l=="object"?(y=(p=(c=l.year)!=null?c:l.value)!=null?p:l.latestYear)!=null?y:l.latest_year:l}).map(Number).filter(l=>Number.isFinite(l)&&l>0);return[...new Set(r)].sort((l,c)=>l-c)}function Oa(i=[],r="name"){return Array.isArray(i)?i.map((l,c)=>{var p,y,w,T,F,B,A,Y,X,O,J,Ne,rt,Zt,de,We,fa;return{key:l.key||l.id||`${l[r]||l.name||l.label||"trade"}-${c}`,name:String(l[r]||l.name||l.label||l.town||"未填写"),recordCount:Number((w=(y=(p=l.recordCount)!=null?p:l.record_count)!=null?y:l.count)!=null?w:0),headCount:Number((A=(B=(F=(T=l.headCount)!=null?T:l.head_count)!=null?F:l.amount)!=null?B:l.value)!=null?A:0),lng:yt((Ne=(J=(O=(X=(Y=l.lng)!=null?Y:l.longitude)!=null?X:l.destLng)!=null?O:l.dest_lng)!=null?J:l.destLongitude)!=null?Ne:l.dest_longitude),lat:yt((fa=(We=(de=(Zt=(rt=l.lat)!=null?rt:l.latitude)!=null?Zt:l.destLat)!=null?de:l.dest_lat)!=null?We:l.destLatitude)!=null?fa:l.dest_latitude)}}).filter(l=>l.name&&Number.isFinite(l.headCount)):[]}function go(i=[]){return Array.isArray(i)?i.map(r=>{var l,c,p,y,w,T;return{year:Number(r.year),recordCount:Number((c=(l=r.recordCount)!=null?l:r.record_count)!=null?c:0),headCount:Number((T=(w=(y=(p=r.headCount)!=null?p:r.head_count)!=null?y:r.amount)!=null?w:r.value)!=null?T:0)}}).filter(r=>Number.isFinite(r.year)&&Number.isFinite(r.headCount)):[]}function _i(i=[]){return Array.isArray(i)?Bi(i.map(r=>{var l,c,p;return r&&typeof r=="object"?(p=(c=(l=r.value)!=null?l:r.label)!=null?c:r.name)!=null?p:"":r})):[]}function yo(i=[]){return Array.isArray(i)?i.map(r=>{var l,c,p,y,w,T;if(r&&typeof r=="object"){const F=(p=(c=(l=r.value)!=null?l:r.name)!=null?c:r.label)!=null?p:"",B=(T=(w=(y=r.label)!=null?y:r.name)!=null?w:r.value)!=null?T:F;return F?{value:String(F),label:String(B||F)}:null}return r?{value:String(r),label:String(r)}:null}).filter(Boolean):[]}function Bi(i=[]){return[...new Set(i.map(r=>String(r||"").trim()).filter(Boolean))]}function bo(i=[]){if(!Array.isArray(i))return[];const r=new Map;i.forEach((c,p)=>{var B,A,Y,X,O,J;const y=Xe(c.name||c.areaName||c.area_name||c.town||c.label||"");if(!y)return;const w=yt((Y=(A=(B=c.value)!=null?B:c.number)!=null?A:c.count)!=null?Y:c.total);if(!Number.isFinite(w))return;const T=r.get(y)||{key:c.areaCode||c.area_code||`${y}-${p}`,name:y,recordCount:0,earTagCount:0,source:"stats"};T.recordCount+=w;const F=yt((J=(O=(X=c.earTagCount)!=null?X:c.ear_tag_count)!=null?O:c.headCount)!=null?J:c.head_count);T.earTagCount+=Number.isFinite(F)?F:0,r.set(y,T)});const l=[...r.values()].reduce((c,p)=>c+Number(p.recordCount||0),0);return[...r.values()].map(c=>$(R({},c),{earTagCount:c.earTagCount||Math.round(Number(c.recordCount||0)/Rt.value),ratio:l?Number(c.recordCount||0)/l*100:0})).sort((c,p)=>Number(p.recordCount||0)-Number(c.recordCount||0))}function vo(i={}){var p,y;const r=Array.isArray(i)?{rows:i}:i||{},l=r.result||{};return{rows:r.rows||r.data||r.list||r.records||[],year:(y=(p=r.year)!=null?p:l.year)!=null?y:null}}function Ai(i=[]){return Array.isArray(i)?i.map((r,l)=>{var Y,X,O,J,Ne,rt,Zt,de,We,fa,er,tr;const c=Xe(r.town||r.townName||r.town_name||""),p=String(r.village||r.villageName||r.village_name||r.name||"").trim(),y=yt((O=(X=(Y=r.recordCount)!=null?Y:r.record_count)!=null?X:r.records)!=null?O:r.total),w=yt((Zt=(rt=(Ne=(J=r.earTagCount)!=null?J:r.ear_tag_count)!=null?Ne:r.headCount)!=null?rt:r.head_count)!=null?Zt:r.value),T=yt((We=(de=r.imageCount)!=null?de:r.image_count)!=null?We:r.images),F=yt((fa=r.imageRate)!=null?fa:r.image_rate),B=yt((er=r.lng)!=null?er:r.longitude),A=yt((tr=r.lat)!=null?tr:r.latitude);return{key:r.key||r.id||`${c}-${p}-${l}`,town:c,village:p,recordCount:Number.isFinite(y)?y:0,earTagCount:Number.isFinite(w)?w:0,imageCount:Number.isFinite(T)?T:0,imageRate:Number.isFinite(F)?F:0,lng:B,lat:A}}).filter(r=>r.town&&r.village&&Number.isFinite(r.earTagCount)).sort((r,l)=>Number(l.earTagCount||0)-Number(r.earTagCount||0)):[]}function wo(i={},r={}){const l=Array.isArray(r)?{rows:r}:r||{},c=l.result||{},p=Ai(l.rows||l.data||l.list||l.records||c.rows||[]),y=new Map;p.forEach(A=>{vn(A.village).forEach(Y=>{y.has(Y)||y.set(Y,A)})});const w=Pt(i==null?void 0:i.townCounts),T=w.length===1?Xe(w[0].name):"",F=yn(i),B=Pt(i==null?void 0:i.villageCounts).map((A,Y)=>{const X=String(A.name||"").trim(),O=vn(X).map(Ne=>y.get(Ne)).find(Boolean)||{},J=Number(A.value||0);return{key:O.key||`${O.town||T||"防疫"}-${X}-${Y}`,town:O.town||T,village:X,recordCount:J,earTagCount:Math.round(J/F),imageCount:O.imageCount||0,imageRate:O.imageRate||0,lng:O.lng,lat:O.lat}}).filter(A=>A.village&&A.recordCount>0);return $(R({},l),{rows:B})}function vn(i){const r=String(i||"").trim(),l=r.replace(/(村|社区|牧委会)$/,"");return[...new Set([r,l].filter(Boolean))]}function yt(i){if(i==null||i==="")return NaN;const r=Number(String(i).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(r)?r:NaN}function wn(i){return String(i||"").replace(/'/g,"''").replace(/%/g,"\\%").replace(/_/g,"\\_")}function Lo(i,r){const l=Xe(i),c=String(r||"").trim();if(!l||!c)return"";const p=`${l}${c}`,y=wn(p),w=wn(c);return`(full_name LIKE '%${y}%' OR name = '${y}' OR name = '${w}')`}function To(i){const r=String(i||"").trim().replace(/\s+/g,"");return r?Array.from(r).join(` +`):""}function So(i){const r=String(i||"").trim();if(!r)return"";const l=r.match(/^(.+)(镇|乡|村)$/);return l?`${l[1]} +${l[2]}`:r}function Mo(i,r){return Ln(i.name)-Ln(r.name)}function Ln(i){const r=String(i||"").match(/(\d{1,2})\D+(\d{1,2})/);return r?Number(r[1])*100+Number(r[2]):Number.MAX_SAFE_INTEGER}function Ei(i=[]){return Array.isArray(i)?i.map(Tn).filter(Boolean):[]}function Tn(i){return i?{epidemicId:i.epidemicId||i.epidemic_id||i.id||"",earTag:i.earTag||i.ear_tag||"",owner:i.owner||"",idType:i.idType||i.id_type||"",idNo:i.idNo||i.id_no||"",phone:i.phone||"",town:i.town||"",village:i.village||"",location:i.location||"",livestockType:i.livestockType||i.livestock_type||"",age:i.age||"",sex:i.sex||"",weight:i.weight||i.weightKg||i.weight_kg||"",preventionType:i.preventionType||i.prevention_type||"",method:i.method||"",medicine:i.medicine||"",dose:i.dose||"",operator:i.operator||"",operateTime:i.operateTime||i.operate_time||"",imagePaths:i.imagePaths||i.image_paths||""}:null}function Sn(i=[]){return Array.isArray(i)?i.map(ko).filter(Boolean):[]}function ko(i){var r,l,c,p;return i?{certId:i.certId||i.cert_id||i.id||"",certType:i.certType||i.cert_type||"",certScopeName:i.certScopeName||i.cert_scope_name||"",factoryCode:i.factoryCode||i.factory_code||"",ownerName:i.ownerName||i.owner_name||"",ownerPhone:i.ownerPhone||i.owner_phone||"",transportNumber:i.transportNumber||i.transport_number||"",amount:Number((p=(c=(l=(r=i.amount)!=null?r:i.headCount)!=null?l:i.head_count)!=null?c:i.value)!=null?p:0),unitName:i.unitName||i.unit_name||"头",animalTypeName:i.animalTypeName||i.animal_type_name||"",usageTypeName:i.usageTypeName||i.usage_type_name||"",startTown:i.startTown||i.start_town||"",startRegionFullName:i.startRegionFullName||i.start_region_full_name||"",destProvince:i.destProvince||i.dest_province||"",destRegionFullName:i.destRegionFullName||i.dest_region_full_name||"",quarantineOfficerName:i.quarantineOfficerName||i.quarantine_officer_name||"",issueTime:i.issueTime||i.issue_time||"",statusName:i.statusName||i.status_name||""}:null}function Da(i,r){for(const l of r){const c=Number(i==null?void 0:i[l]);if(Number.isFinite(c))return c}return 0}function De(...i){return Da(dn.value,i)}function Mn(i=[],r=2){const l=[...new Set(i.map(c=>String(c||"").trim()).filter(Boolean))];return l.length?l.length<=r?l.join("、"):`${l.slice(0,r).join("、")}等${l.length}个乡镇`:"暂无"}function Po(){const i=It.value;if(i.length)return{name:Mn(i,1),desc:"年度防疫覆盖需补强",level:"watch"};const r=zt.value.filter(c=>Number(c.earTagCount||c.recordCount||0)>0).sort((c,p)=>Number(c.earTagCount||c.recordCount||0)-Number(p.earTagCount||p.recordCount||0)),l=r[0];return l?{name:l.name,desc:`${ae(l.earTagCount||l.recordCount)}头,建议补免回访`,level:r.length>=2?"watch":"normal"}:{name:"暂无",desc:"等待年度防疫记录形成",level:"normal"}}function Co(){const i=It.value;if(i.length)return i.slice(0,4).map((c,p)=>({key:`missing-${c}`,name:c,value:Math.max(25,100-p*12),label:"待补免",level:"watch"}));const r=zt.value.filter(c=>Number(c.earTagCount||c.recordCount||0)>0);if(!r.length)return[{key:"empty",name:"暂无",value:0,label:"待开展",level:"watch"}];const l=r.reduce((c,p)=>c+Number(p.earTagCount||0),0)/r.length||1;return[...r].sort((c,p)=>Number(c.earTagCount||0)-Number(p.earTagCount||0)).slice(0,4).map(c=>{const p=Number(c.earTagCount||c.recordCount||0),y=Math.max(8,Math.round((l-p)/l*100));return{key:`weak-${c.name}`,name:c.name,value:Math.min(100,y),label:`${ae(p)}头`,level:y>=35?"watch":"normal"}})}function Fo(){const r=(Li.value.length?Li.value:zt.value).map((p,y)=>{const w=Xe(p.name),T=Number(p.earTagCount||0),F=Number(p.recordCount||p.value||0),B=T||Math.round(F/Rt.value);return{key:p.key||`${w}-${y}`,name:w,value:B,recordCount:F,isMissing:!1}}).filter(p=>p.name&&Number.isFinite(p.value)),c=[...It.value.map((p,y)=>({key:`missing-${p}-${y}`,name:p,value:0,recordCount:0,isMissing:!0})),...r];return c.length?c.sort((p,y)=>p.isMissing!==y.isMissing?p.isMissing?-1:1:Number(p.value||0)-Number(y.value||0)).slice(0,7):[{key:"empty",name:"待开展",value:0,recordCount:0,isMissing:!0}]}function xo(){var r;const i=ln.value.map((l,c)=>({key:l.key||`${l.town}-${l.village}-${c}`,name:l.village||l.name,town:l.town,value:Number(l.earTagCount||l.value||0)})).filter(l=>l.name&&Number.isFinite(l.value)&&l.value>0);return i.length?i.sort((l,c)=>c.value-l.value).slice(0,9):Pt((r=xe.value)==null?void 0:r.villageCounts).map((l,c)=>({key:l.key||`${l.name}-${c}`,name:l.name,town:"",value:Math.round(Number(l.value||0)/Rt.value)})).filter(l=>l.name&&Number.isFinite(l.value)&&l.value>0).sort((l,c)=>c.value-l.value).slice(0,9)}function No(){if(!gt.value)return{level:"watch",title:"年度待开展",desc:"年度免疫记录暂未形成",advice:"建议先核查年度免疫计划与乡镇推进节奏。"};const i=ds.value,r=_a.value;return It.value.length?{level:"watch",title:"补免待核查",desc:`乡镇覆盖${Je(i)},${r.name}需补强`,advice:`优先核查${Mn(It.value,1)}免疫进度。`}:i>=90&&Rt.value>=4?{level:"stable",title:"运行平稳",desc:`乡镇覆盖${Je(i)},疫苗谱较完整`,advice:"建议保持当前免疫节奏,持续跟踪补免回访。"}:{level:"normal",title:"均衡回访",desc:`${r.name}相对偏低,适合继续跟进`,advice:`关注${r.name}补免回访,保持覆盖均衡。`}}function Ro(){return[{key:"latest",name:"最近免疫",value:on.value,desc:"最后作业时间",level:on.value==="-"?"watch":"stable",color:"#8bf7ff"},{key:"top-town",name:"高频乡镇",value:ls.value,desc:"年度作业集中区",level:"normal",color:"#30dcff"},{key:"vaccine",name:"主用疫苗",value:ss.value,desc:`${Rt.value}类疫苗`,level:"normal",color:"#8bf7ff"}]}function Io(){const i=De("headCount","totalHeads","total_heads"),r=Aa.value,l=r.reduce((de,We)=>de+Number(We.headCount||0),0)||i||1,c=r[0],p=c?Number(c.headCount||0)/l*100:0,y=Si.value.filter(de=>de.name&&de.name!=="未填写").sort((de,We)=>Number(We.headCount||0)-Number(de.headCount||0)),w=y.reduce((de,We)=>de+Number(We.headCount||0),0)||i||1,T=y[0],F=T?Number(T.headCount||0)/w*100:0,A=Ls.value.filter(de=>de.name&&de.name!=="未填写").sort((de,We)=>Number(We.headCount||We.recordCount||0)-Number(de.headCount||de.recordCount||0))[0],Y=De("vehicleCount","vehicle_count","transportVehicleCount","transport_vehicle_count"),X=Y>0?i/Y:0,O=De("outProvinceHeads","out_province_heads","aCertHeads","a_cert_heads"),J=De("inProvinceHeads","in_province_heads","bCertHeads","b_cert_heads"),Ne=O+J||i||1,rt=O?O/Ne*100:0;return[{key:"town",name:"高频出栏乡镇",value:(c==null?void 0:c.displayName)||(c==null?void 0:c.name)||"暂无",desc:c?`${ae(c.headCount)}头,占${Je(p)}`:"等待来源乡镇数据",level:p>=35?"high":p>=24?"watch":"normal",color:"#63d7ff"},{key:"usage",name:"交易用途集中度",value:(T==null?void 0:T.name)||"暂无",desc:T?`占${Je(F)}`:"等待用途结构数据",level:F>=60?"high":F>=45?"watch":"normal",color:"#30dcff"},{key:"vehicle",name:A?"运输车辆高频":"车辆周转强度",value:A?`${ae(A.headCount||A.recordCount)}${A.headCount?"头":"条"}`:Y?`车均${K(X)}头`:"--",desc:A?"已接入车辆聚合,明细在台账核查":Y?`${K(Y)}辆参与流通`:"等待车辆聚合数据",level:A||X>=260?"watch":"normal",color:"#48cfff"},{key:"cert-dest",name:"证照/去向线索",value:O?Je(rt):"--",desc:O?`省外流通${ae(O)}头`:"等待证照去向数据",level:rt>=55?"high":rt>=35?"watch":"normal",color:"#48cfff"}].map(de=>$(R({},de),{badge:de.level==="high"?"重点":de.level==="watch"?"关注":"平稳"}))}function $i(i={}){return String(i.imagePaths||"").split(";").map(r=>r.trim()).filter(Boolean)}function kn(i){const l=String(i||"").replace(/^images\//,"").split("/").map(encodeURIComponent).join("/");return`${eh}/${l}`}function Go(i){at.value=kn(i),Ke.value=!0}function Vi(){Ke.value=!1,at.value=""}function te(i){return i==null||i===""?"-":i}function _o(i){const r=String(i!=null?i:"").trim();return!!(r&&r!=="-")}function ke(i,r,l={}){return _o(r)?R({label:i,value:r},l):null}function Gt(i){return i?String(i).slice(0,10):"-"}function Pn(i){const r=String(i||"").trim();return r?r.length<7?r:`${r.slice(0,3)}****${r.slice(-4)}`:"-"}function Bo(i){const r=String(i||"").trim();return r?r.length<=4?r:`****${r.slice(-4)}`:"-"}function Ao(i){const r=String(i!=null?i:"").trim();if(!r)return"-";if(/kg|公斤|千克/i.test(r))return r;const l=Number(r);return Number.isFinite(l)?`${K(l)}kg`:r}function Eo(i){return String(i!=null?i:"").trim()||"-"}function Cn(i={}){return i.certScopeName||i.certType||"-"}function $o(){return he(this,null,function*(){var c,p;dt.value=!0,$e.value="";const[i,r,l]=yield Promise.allSettled([lu(),uu(),cu()]);i.status==="fulfilled"&&((c=i.value)!=null&&c.length)&&(xt.value=Ul(i.value.map(y=>({name:vr(y.name),count:Number(y.value)})).filter(y=>y.name&&Number.isFinite(y.count)))),r.status==="fulfilled"&&((p=r.value)!=null&&p.length)&&(Kt.value=r.value.map(y=>({month:y.name,count:Number(y.value),speed:rl(y.extra)})).filter(y=>y.month&&Number.isFinite(y.count))),l.status==="fulfilled"?(ct.value=tl(l.value),ct.value.length||($e.value="结构数据暂无数据")):($e.value=nl(l.reason,"结构数据异常"),ct.value=[]),dt.value=!1})}function Fn(){return he(this,arguments,function*(i=Me.value){var r,l,c,p,y,w;Lt.value=!0,Tt.value="";try{(l=(r=me.value)==null?void 0:r.years)!=null&&l.length||(me.value=yield du());const T=bn((c=me.value)==null?void 0:c.years),F=Number(((p=me.value)==null?void 0:p.latestYear)||((y=me.value)==null?void 0:y.latest_year)||T[T.length-1]),B=Number(i||Me.value||F||T[T.length-1]);Me.value=B;let A=yield Tr({year:B});const Y=(w=A==null?void 0:A.hasData)!=null?w:A==null?void 0:A.has_data,X=Number((A==null?void 0:A.latestYear)||(A==null?void 0:A.latest_year)||F);Y===!1&&X&&X!==B&&(Me.value=X,A=yield Tr({year:X})),ee.value=A||{metrics:{},hasData:!1},yield zi(1)}catch(T){Tt.value="交易数据接口异常",ee.value={metrics:{},hasData:!1},it.value=[],ft.value=0}finally{Lt.value=!1}})}function zi(){return he(this,arguments,function*(i=St.value){var l,c;if(!Me.value)return;const r={year:Me.value,page:i,pageSize:Ki,keyword:ri.value};try{const p=yield Sr(r);it.value=Sn(p.rows),ft.value=Number(((l=p.page)==null?void 0:l.totalCount)||p.totalCount||it.value.length||0),St.value=Number(((c=p.page)==null?void 0:c.page)||i||1)}catch(p){Tt.value=Tt.value||"交易台账接口异常",it.value=[],ft.value=0}})}function Vo(i){const r=Number(i);!Number.isFinite(r)||r===Number(Me.value)||(Me.value=r,St.value=1,Ma.value="",ri.value="",Fn(r))}function zo(i){const r=Ii(i);r!==Number(ge.value)&&(ge.value=r,ve.value=1,pt.value="",M.value="",ce.value=1,fe.value=za(),An(r))}function xn(){ri.value=Ma.value.trim(),zi(1)}function Nn(i){const r=Math.min(Math.max(Number(i)||1,1),Mi.value);zi(r)}function Rn(i=null){si.value=!0,i&&(Pa.value=i),Wa(i?St.value:1,i)}function In(){si.value=!1}function Gn(){Wa(1)}function Oo(){mt.value={keyword:"",startTown:"",usageType:"",certType:""},Wa(1)}function _n(i){const r=Math.min(Math.max(Number(i)||1,1),ki.value);Wa(r)}function Wa(){return he(this,arguments,function*(i=$t.value,r=null){var p,y;if(!Me.value)return;oi.value=!0,li.value="";const l=mt.value,c={year:Me.value,page:i,pageSize:Dr,keyword:l.keyword.trim(),startTown:l.startTown,usageType:l.usageType,certType:l.certType};try{const w=yield Sr(c);Et.value=Sn(w.rows),ka.value=Number(((p=w.page)==null?void 0:p.totalCount)||w.totalCount||Et.value.length||0),$t.value=Number(((y=w.page)==null?void 0:y.page)||i||1);const T=r?r.certId||r.factoryCode:"",F=T?Et.value.find(B=>(B.certId||B.factoryCode)===T)||r:Et.value[0]||null;Bn(F)}catch(w){li.value="交易台账接口异常",Et.value=[],ka.value=0,Pa.value=null}finally{oi.value=!1}})}function Bn(i){Pa.value=i||null}function Do(i){i!=null&&i.startTown&&(W.value="trade",jt(()=>{var r,l,c,p,y,w;(l=(r=Oe.value)==null?void 0:r.resume)==null||l.call(r),(p=(c=Oe.value)==null?void 0:c.refreshView)==null||p.call(c),(w=(y=Oe.value)==null?void 0:y.focusTown)==null||w.call(y,Xe(i.startTown),{distanceScale:.78,duration:.8})}))}function An(){return he(this,arguments,function*(i=ge.value){var T;const r=Ii(i),l=Gi(r);ge.value=r,v.value=!0,N.value="";const[c,p,y,w]=yield Promise.allSettled([hu(l),qi(R({page:ve.value,pageSize:ai,keyword:M.value},l)),pu({year:r}),fu()]);if(c.status==="fulfilled"?xe.value=c.value||{metrics:{}}:(N.value="防疫统计接口异常",xe.value={metrics:{}}),p.status==="fulfilled"){const F=p.value||{};Ve.value=Ei(F.rows),Ue.value=Number(((T=F.page)==null?void 0:T.totalCount)||F.totalCount||Ve.value.length||0)}else N.value=N.value||"防疫台账接口异常",Ve.value=[],Ue.value=0;y.status==="fulfilled"?ht.value=vo(y.value):ht.value={rows:[],year:null},w.status==="fulfilled"?wt.value=wo(xe.value,w.value):wt.value={rows:[]},v.value=!1})}function En(){return he(this,arguments,function*(i=ve.value){var c,p;v.value=!0,N.value="";const r=Math.min(Math.max(Number(i)||1,1),Ti.value),l=Gi(ge.value);try{const y=yield qi(R({page:r,pageSize:ai,keyword:M.value},l));Ve.value=Ei(y.rows),Ue.value=Number(((c=y.page)==null?void 0:c.totalCount)||y.totalCount||Ve.value.length||0),ve.value=Number(((p=y.page)==null?void 0:p.page)||r||1)}catch(y){N.value="防疫台账接口异常",Ve.value=[],Ue.value=0,ve.value=1}finally{v.value=!1}})}function $n(){M.value=pt.value.trim(),fe.value=$(R({},za()),{keyword:M.value}),En(1)}function Vn(i){En(i)}function zn(i=null){z.value=!0,i&&(_e.value=i,Be.value=null),Ya(1,i)}function On(){z.value=!1,Vi()}function Dn(){Ya(1)}function Wo(){fe.value=za(),Ya(1)}function Wn(i){Ya(i)}function Ya(){return he(this,arguments,function*(i=ce.value,r=null){var y,w;Ge.value=!0,ze.value="";const l=fe.value,c=Gi(ge.value),p={keyword:l.keyword.trim(),town:l.town,medicine:l.medicine,startDate:l.startDate||c.startDate,endDate:l.endDate||c.endDate,page:i,pageSize:Or};try{const T=yield qi(p);q.value=Ei(T.rows),ne.value=Number(((y=T.page)==null?void 0:y.totalCount)||T.totalCount||q.value.length||0),ce.value=Number(((w=T.page)==null?void 0:w.page)||i||1);const F=r||q.value[0]||null;F?Yn(F):(_e.value=null,Be.value=null)}catch(T){ze.value="台账接口异常",q.value=[],ne.value=0}finally{Ge.value=!1}})}function Yn(i){return he(this,null,function*(){if(_e.value=i,Be.value=null,!(i!=null&&i.earTag)&&!(i!=null&&i.epidemicId))return;const r=++xa;Ae.value=!0;try{const l=yield mu(i.earTag||i.epidemicId);r===xa&&(Be.value=Tn(l)||i)}catch(l){r===xa&&(Be.value=i)}finally{r===xa&&(Ae.value=!1)}})}function Yo(){var i;ui=new su,ci=!1,(i=ui.ready)==null||i.then(()=>{ci=!0,pa()}).catch(()=>{Vt.value=!0})}function pa(){da||!a.active||!ci||Mt||(Mt=!0,kt&&window.clearTimeout(kt),kt=window.setTimeout(()=>{kt=null,jn()},600))}function jn(i=0){return he(this,null,function*(){var l,c;if(da)return;if(!a.active){Mt=!1;return}if(yield jt(),!a.active){Mt=!1;return}const r=Oe.value;if((l=r==null?void 0:r.loadMap)==null||l.call(r,ui),r!=null&&r.canvasMap){Mt=!1,Vt.value=!0,(c=r.play)==null||c.call(r);return}if(i<24){window.setTimeout(()=>jn(i+1),120);return}Mt=!1})}function Hn(i={}){ca.value={type:i.type||"idle",text:i.text||""}}function jo(){la.value=!0}function qn(i={}){ua.value={type:i.type||"idle",text:i.text||"",loaded:i.loaded,failed:i.failed,total:i.total,zoom:i.zoom,tileUrlTemplate:i.tileUrlTemplate}}function Ho(){if(W.value==="epidemic"){n("module-stats",{moduleKey:"yak-management",items:[{zh:"防疫记录",value:gt.value,unit:"条"},{zh:"防疫耳标",value:wi.value,unit:"头"},{zh:"疫苗类型",value:Rt.value,unit:"类"},{zh:"涉及村数",value:os.value,unit:"个"}]});return}if(W.value==="forecast"){const i=Ze.value.stock-ot;n("module-stats",{moduleKey:"yak-management",items:[{zh:"预测期末存栏",value:Ze.value.stock,unit:"头"},{zh:"新生牛犊",value:Ze.value.births,unit:"头"},{zh:"出栏流出",value:Ze.value.outflow,unit:"头"},{zh:"预测净变化",value:i,unit:"头"}]});return}if(W.value==="trade"){n("module-stats",{moduleKey:"yak-management",items:[{zh:"流通总量",value:De("headCount"),unit:"头"},{zh:"出证记录",value:De("recordCount"),unit:"条"},{zh:"运输车辆",value:De("vehicleCount"),unit:"辆"}]});return}n("module-stats",{moduleKey:"yak-management",items:[{zh:"图像识别总数",value:Kl,unit:"头"},{zh:"模型修正总数",value:Xr.value,unit:"头"},{zh:"当前存栏数量",value:ot,unit:"头"}]})}function Oi(i,r,l,c={}){const p=c.labelKey||"name",y=c.colors||G,w=Math.max(...i.map(O=>Number(O[r]||0)),1),T=i.length>8,F=c.style==="ladder",B=T?F?7:6:i.length>6?11:13,A=["#30dcff","#58d9ff","#8bf7ff","#48cfff","#16b6e8","#b9fbff"],Y=c.axisTextColor||m,X=c.dimAxisTextColor||C;return{tooltip:$(R({},we()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(O){if(c.tooltipFormatter)return c.tooltipFormatter(O[0]);const J=i[O[0].dataIndex];return`${J[p]}
数值:${K(J[r])}${l}`}}),grid:{left:T?58:74,right:T?54:58,top:T?6:16,bottom:T?8:14},xAxis:{type:"value",axisLabel:{color:X,fontSize:10,formatter:l==="%"?"{value}%":ae},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:i.map(O=>O[p]),axisLabel:{color:Y,fontSize:T?10:11,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{type:"bar",barWidth:B,barGap:"-100%",data:i.map((O,J)=>({value:O[r],itemStyle:{borderRadius:F?[1,10,10,1]:[0,7,7,0],color:qo(F?A[J%A.length]:y[J%y.length],F),shadowBlur:F?3:0,shadowColor:F?"rgba(48, 220, 255, 0.16)":"transparent"}})),showBackground:!0,backgroundStyle:{color:F?"rgba(48, 220, 255, 0.05)":"rgba(48, 220, 255, 0.07)",borderRadius:F?[1,10,10,1]:[0,7,7,0]},label:{show:!0,position:"right",color:L,fontFamily:Yi.number,fontSize:T?10:hr.chartLabel,fontWeight:700,formatter:({value:O})=>`${l==="%"?Je(O):ae(O)}`},markLine:c.showAverage===!1?void 0:{silent:!0,symbol:"none",label:{show:!1},lineStyle:{color:"rgba(139, 247, 255, 0.22)",type:"dashed",width:1},data:[{xAxis:Math.round(w*.72)}]}},...F?[{type:"pictorialBar",symbol:"rect",symbolSize:[2,B+5],symbolOffset:[0,0],symbolPosition:"end",z:4,data:i.map((O,J)=>({value:O[r],itemStyle:{color:L,opacity:J<3?.82:.56,shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}))}]:[]]}}function qo(i,r=!1){return new Ee(0,0,1,0,[{offset:0,color:r?`${i}22`:"rgba(48, 220, 255, 0.12)"},{offset:.64,color:r?i:`${i}cc`},{offset:1,color:i}])}function Un(i,r,l,c=0,p=!1){return{name:i,type:"line",yAxisIndex:c,smooth:!0,symbolSize:5,data:r,lineStyle:{width:2.5,color:l},itemStyle:{color:l},areaStyle:p?{color:new Ee(0,0,0,1,[{offset:0,color:`${l}44`},{offset:1,color:`${l}05`}])}:void 0}}function Uo(i){return di.find(r=>r.key===i)||di[2]}function Ko(i,r="month"){if(r==="month")return Zl(i);const l=Xl(i),c=Math.max(1,Math.round(Math.max(1,l-1)*30)),p=r==="week"?7:1,y=Math.ceil(c/p)+1,w=Array.from({length:y},(A,Y)=>{const X=Math.min(c,Y*p);return Jl(X)}),T=w.map((A,Y)=>{const O=Math.min(c,Y*p)/c,J=Math.sin(Y/(r==="week"?1.8:8.5))*Math.sin(Math.PI*O)*Math.min(360,i.months*18);return Math.round(ot+(i.stock-ot)*O+J)}),F=w.map((A,Y)=>{const X=Math.min(c,Y*p)/c;return Math.round(i.births*X)}),B=w.map((A,Y)=>{const X=Math.min(c,Y*p)/c;return Math.round(i.outflow*X)});return{labels:w,stock:T,births:F,outflow:B}}function Zo(i,r){return r==="day"?Math.max(10,Math.ceil(i/6)):r==="week"?Math.max(2,Math.ceil(i/7)):i>24?4:i>14?2:1}function Xo(i,r){return r==="day"?i>700?2:i>360?3:4:r==="week"?i>110?4:6:i>24?7:10}function Jo(i){return(i.labels||[]).map((r,l)=>{var A,Y,X,O,J,Ne;const c=Number(((A=i.stock)==null?void 0:A[Math.max(l-1,0)])||0),p=Number(((Y=i.stock)==null?void 0:Y[l])||c),y=Math.max(0,Number(((X=i.births)==null?void 0:X[l])||0)-Number(((O=i.births)==null?void 0:O[Math.max(l-1,0)])||0)),w=Math.max(0,Number(((J=i.outflow)==null?void 0:J[l])||0)-Number(((Ne=i.outflow)==null?void 0:Ne[Math.max(l-1,0)])||0)),T=Math.max(120,Math.round((y+w)*.18)),F=Math.max(c,p)+Math.max(T,Math.round(y*.32)),B=Math.max(0,Math.min(c,p)-Math.max(T,Math.round(w*.32)));return{label:r,open:c,close:p,low:B,high:F,birth:y,outflow:w,value:[c,p,B,F]}})}function Qo(i,r){const l=new Map;return i.forEach(c=>{const p=el(c.name);if(!p)return;const y=l.get(p)||{name:p,value:0};y.value+=Number(c[r]||0),l.set(p,y)}),[...l.values()].sort((c,p)=>p.value-c.value)}function el(i){return{色地镇:"色地镇",瓦切镇:"瓦切镇",安曲镇:"安曲镇",龙日镇:"龙日镇",邛溪镇:"邛溪镇",刷经寺镇:"刷经寺镇",阿木乡:"阿木乡",查尔玛乡:"查尔玛乡",江茸乡:"江茸乡",麦洼乡:"麦洼乡"}[i]||""}function we(i){return{trigger:"item",backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:m,fontFamily:Yi.ui,fontSize:hr.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);",formatter:i}}function Di(i){return vt.some(r=>r.key===i)?i:"structure"}function tl(i=[]){return i.map((r,l)=>{var y,w,T,F;const c=String(r.name||r.label||r.type||`结构${l+1}`).trim(),p=Kn((w=(y=r.value)!=null?y:r.count)!=null?w:r.number);return{key:r.key||r.id||`${c}-${l}`,name:c,count:p,ratio:Number((F=(T=r.ratio)!=null?T:r.percent)!=null?F:0),source:r.source||"结构统计"}}).filter(r=>r.name&&r.count>0)}function al(i=[],r=[]){const l=i.some(p=>Qn(p))?i:r,c=Jn(l,r).map((p,y)=>{var F,B;const w=String(p.name||p.label||`结构${y+1}`).trim(),T=Kn((B=(F=p.count)!=null?F:p.value)!=null?B:p.number);return $(R({},p),{key:p.key||`${w}-${y}`,name:w,count:T})}).filter(p=>p.name&&p.count>0);return il(c,ot)}function il(i=[],r=ot){const l=i.reduce((y,w)=>y+Number(w.count||0),0);if(!l||!r)return i;const c=i.map((y,w)=>{const T=Number.isFinite(Number(y.ratio))&&Number(y.ratio)>0?Number(y.ratio):Number(y.count||0)/l*100,F=r*T/100;return $(R({},y),{index:w,ratio:T,count:Math.floor(F),remainder:F-Math.floor(F)})});let p=r-c.reduce((y,w)=>y+w.count,0);return c.slice().sort((y,w)=>w.remainder-y.remainder||y.index-w.index).forEach(y=>{p<=0||(y.count+=1,p-=1)}),c.map(F=>{var B=F,{index:y,remainder:w}=B,T=rr(B,["index","remainder"]);return $(R({},T),{ratio:Number(T.ratio.toFixed(1))})})}function Kn(i){const r=Number(String(i!=null?i:"").replace(/,/g,"").replace(/%/g,""));return Number.isFinite(r)&&r>0?Math.round(r):0}function nl(i,r){const l=String((i==null?void 0:i.message)||i||"");return/未登录|401|HTTP_401/.test(l)?"结构数据未就绪":/超时|timeout/i.test(l)?"结构数据加载超时":r}function rl(i){const r=String(i||"").match(/-?\d+(?:\.\d+)?/);return r?Number(r[0]):0}function K(i){const r=Number(i);return Number.isFinite(r)?r.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(r)?0:2}):"--"}function ae(i){const r=Number(i);return Number.isFinite(r)?Math.abs(r)>=1e4?`${(r/1e4).toFixed(Math.abs(r)>=1e5?0:1)}万`:Math.round(r).toLocaleString("zh-CN"):"--"}function ja(i,r=2){const l=Number(i);return Number.isFinite(l)?`${(l/1e4).toFixed(r)}万`:"--"}function Je(i){const r=Number(i);return Number.isFinite(r)?`${Number.isInteger(r)?r:r.toFixed(1)}%`:"--"}function Dt(i,r,l,c){const p=c*Math.PI/180;return{x:Number((i+l*Math.cos(p)).toFixed(2)),y:Number((r+l*Math.sin(p)).toFixed(2))}}function sl(i,r,l,c,p,y){const w=Dt(i,r,c,p),T=Dt(i,r,c,y),F=Dt(i,r,l,y),B=Dt(i,r,l,p),A=y-p>180?1:0;return[`M ${w.x} ${w.y}`,`A ${c} ${c} 0 ${A} 1 ${T.x} ${T.y}`,`L ${F.x} ${F.y}`,`A ${l} ${l} 0 ${A} 0 ${B.x} ${B.y}`,"Z"].join(" ")}function Zn(i=[]){return i.reduce((r,l)=>{const c=wa.find(p=>p.key===l);return r+Number((c==null?void 0:c.ratio)||0)},0)}function Xn(){return[{key:"fertileCow",name:"适龄能繁母牛",color:"#30dcff",matcher:(i,r)=>i==="fertileCow"||r.includes("适龄能繁母牛")},{key:"meatBull",name:"麦洼公牦牛",color:"#48cfff",matcher:(i,r)=>i==="meatBull"||r.includes("肉公牛")||r.includes("麦洼公牦牛")},{key:"breedingBull",name:"种公牛",color:"#58d9ff",matcher:(i,r)=>i==="breedingBull"||r.includes("种公牛")},{key:"femaleCalf",name:"母犊牛",color:"#30dcff",matcher:(i,r)=>i==="femaleCalf"||r.includes("母犊牛")},{key:"maleCalf",name:"公犊牛",color:"#8bf7ff",matcher:(i,r)=>i==="maleCalf"||r.includes("公犊牛")},{key:"overageCow",name:"过龄能繁母牛",color:"#48cfff",matcher:(i,r)=>i==="overageCow"||r.includes("过龄能繁母牛")}]}function ol(i=[]){const r=i.reduce((c,p)=>c+Number(p.count||0),0)||1;return[{key:"female",group:"性别",name:"母牛合计",color:"#8bf7ff",matcher:(c,p)=>["fertileCow","femaleCalf","overageCow"].includes(c)||p.includes("母")},{key:"male",group:"性别",name:"公牛合计",color:"#30dcff",matcher:(c,p)=>["meatBull","breedingBull","maleCalf"].includes(c)||p.includes("公")||p.includes("肉牛")},{key:"calf",group:"阶段",name:"犊牛合计",color:"#8bf7ff",matcher:(c,p)=>["femaleCalf","maleCalf"].includes(c)||p.includes("犊牛")},{key:"breeding-cow",group:"阶段",name:"能繁母牛",color:"#48cfff",matcher:(c,p)=>["fertileCow","overageCow"].includes(c)||p.includes("能繁母牛")}].map(c=>{const p=i.filter(y=>c.matcher(String(y.key||""),String(y.name||""))).reduce((y,w)=>y+Number(w.count||0),0);return{key:c.key,group:c.group,name:c.name,color:c.color,count:p,percent:p/r*100}})}function Jn(i=[],r=[]){const c=i.some(w=>Qn(w))?i:r,p=c.reduce((w,T)=>w+Number(T.count||0),0)||ot||1;return Xn().map(w=>{const T=c.filter(A=>w.matcher(String(A.key||""),String(A.name||""))),F=T.reduce((A,Y)=>A+Number(Y.count||0),0),B=T.length===1?Number(T[0].ratio):Number.NaN;return{key:w.key,name:w.name,color:w.color,count:F,percent:Number.isFinite(B)&&B>0?B:F/p*100}}).filter(w=>w.count>0||w.percent>0)}function Qn(i={}){const r=String(i.key||""),l=String(i.name||"");return Xn().some(c=>c.matcher(r,l))}function ll(i=[],r=[]){const c=i.some(w=>ul(w))?i:r,p=c.reduce((w,T)=>w+Number(T.count||0),0)||1,y=(w,T,F,B,A)=>{const Y=c.filter(J=>B(String(J.key||""),String(J.name||""))),X=Y.reduce((J,Ne)=>J+Number(Ne.count||0),0),O=Y.length===1?Number(Y[0].ratio):Number.NaN;return{key:w,name:T,color:F,count:X,percent:Number.isFinite(O)&&O>0?O:X/p*100,desc:A}};return[y("fertile-cow","适龄能繁母牛","#30dcff",(w,T)=>w==="fertileCow"||T.includes("适龄能繁母牛"),"繁殖基础"),y("calf","犊牛合计","#8bf7ff",(w,T)=>["femaleCalf","maleCalf"].includes(w)||T.includes("犊牛"),"新生补充"),y("overage-cow","过龄能繁母牛","#30dcff",(w,T)=>w==="overageCow"||T.includes("过龄能繁母牛"),"更新压力"),y("breeding-bull","种公牛配比","#48cfff",(w,T)=>w==="breedingBull"||T.includes("种公牛"),"配种支撑")]}function ul(i={}){const r=String(i.key||""),l=String(i.name||"");return["fertileCow","femaleCalf","maleCalf","overageCow","breedingBull"].includes(r)||l.includes("适龄能繁母牛")||l.includes("犊牛")||l.includes("过龄能繁母牛")||l.includes("种公牛")}function cl(i=[]){const r=w=>{var T;return Number(((T=i.find(F=>F.key===w))==null?void 0:T.percent)||0)},l=r("fertile-cow"),c=r("calf"),p=r("overage-cow"),y=r("breeding-bull");return l>=40&&c>=25&&y>=2&&y<=5&&p<=10?{label:"结构健康",title:"繁殖基础稳定",summary:"适龄母牛足,犊牛补充稳",note:"保持适龄能繁母牛、犊牛补充与种公牛配置稳定。"}:c<25?{label:"结构健康",title:"犊牛补充需关注",summary:"繁殖基础稳定,补充端可优化",note:"关注犊牛成活和季节性补栏,保持生产连续性。"}:y<2?{label:"结构健康",title:"繁殖基础总体稳定",summary:"适龄母牛基础较稳",note:"结合实际配种需求,平稳优化公牛配置。"}:{label:"结构健康",title:"生产阶段较均衡",summary:"繁殖群和犊牛补充连续支撑",note:"延续结构管理,优先保障适龄母牛与犊牛质量。"}}function dl(i){const r=Number((i==null?void 0:i.count)||0);return Math.max(8,Math.min(100,r/ts.value*100))}function hl(i={}){const r=ot,l=[{key:"births",name:"新生牛犊",delta:Number(i.births||0),color:"#30dcff"},{key:"outflow",name:"出栏流出",delta:-Number(i.outflow||0),color:"#48cfff"},{key:"correction",name:"修正损耗",delta:Number(i.correction||0),color:"#8bf7ff"}];let c=r;const p=[{key:"current",name:"当前存栏",type:"anchor",value:r,magnitude:r,from:r,to:r,color:"#30dcff",display:`${ja(r,2)}头`}];l.forEach(T=>{const F=c,B=c+T.delta;c=B,p.push($(R({},T),{name:`${T.delta>=0?"+":"-"}${T.name}`,type:"delta",from:F,to:B,value:T.delta,magnitude:Math.abs(T.delta),display:`${pl(T.delta)}头`}))});const y=Number(i.stock||c);p.push({key:"final",name:"=期末预测",type:"final",value:y,magnitude:y,from:y,to:y,color:"#48cfff",display:`${ja(y,2)}头`});const w=Math.max(...p.map(T=>Number(T.magnitude)||0),1);return p.map(T=>{const F=(Number(T.magnitude)||0)/w*100;return $(R({},T),{left:0,width:Math.max(T.type==="delta"?5:10,Math.min(100,F))})})}function Ha(i){const r=Number(i);return Number.isFinite(r)?`${r>=0?"+":"-"}${K(Math.abs(r))}`:"--"}function pl(i){const r=Number(i);return Number.isFinite(r)?`${r>=0?"+":"-"}${ja(Math.abs(r))}`:"--"}return(i,r)=>(I(),_("div",Zu,[Qe((I(),Ua(Ku,{key:Zr.value,ref_key:"mapSceneRef",ref:Oe,class:"yak-map-scene","active-layer":$s.value,"map-ranking":Vs.value,"tile-url-template":en.value,"use-satellite-base":hi.value,"satellite-max-zoom":21,"admin-boundary-line-scale":1.35,onLayerStatus:Hn,onTileStatus:qn},null,8,["active-layer","map-ranking","tile-url-template","use-satellite-base"])),[[bl,!nt.value]]),nt.value?(I(),Ua(ou,{key:Qi.value,ref_key:"yakOlMapRef",ref:oa,class:"yak-ol-map-layer",active:a.active&&nt.value,"tile-url-template":en.value,center:Es.value,"initial-zoom":ah,"minimum-zoom-distance":1,"county-view-target-offset":se,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":mn.value,onReady:jo,onLayerStatus:Hn,onTileStatus:qn},null,8,["active","tile-url-template","center","overlay-layer"])):Le("",!0),f("div",{class:Ye(["yak-map-scrim",{"is-ol-map":nt.value}])},null,2),zs.value?(I(),_("div",Xu,P(Os.value),1)):Le("",!0),f("div",Ju,[W.value==="trade"&&hn.value.length?(I(),_("div",Qu,[r[24]||(r[24]=f("span",null,"交易年份",-1)),(I(!0),_(ie,null,pe(hn.value,l=>(I(),_("button",{key:l,type:"button",class:Ye({active:Number(l)===Number(Me.value)}),onClick:c=>Vo(l)},P(l),11,ec))),128))])):Le("",!0),W.value==="epidemic"&&Fe.length?(I(),_("div",tc,[r[25]||(r[25]=f("span",null,"防疫年份",-1)),(I(),_(ie,null,pe(Fe,l=>f("button",{key:l,type:"button",class:Ye({active:Number(l)===Number(ge.value)}),onClick:c=>zo(l)},P(l),11,ac)),64))])):Le("",!0),W.value==="forecast"?(I(),_("div",ic,[r[26]||(r[26]=f("span",null,"预测年份",-1)),(I(!0),_(ie,null,pe(j(Bt),l=>(I(),_("button",{key:l.key,type:"button",class:Ye({active:l.key===tt.value}),onClick:c=>ho(l.key)},P(l.shortLabel),11,nc))),128))])):Le("",!0),f("div",rc,[f("div",sc,[W.value==="structure"?(I(),_(ie,{key:0},[H(le,{class:"yak-side-card left-card",title:"繁殖基础评估",width:j(s),height:u.value},{default:oe(()=>[f("div",oc,[f("div",lc,[f("strong",null,P(nn.value.title)+","+P(nn.value.summary),1)]),f("div",uc,[(I(!0),_(ie,null,pe(an.value,l=>(I(),_("div",{key:l.key,class:"breeding-health-item",style:Ct({"--health-color":l.color,"--health-width":`${Math.max(5,Math.min(100,l.percent))}%`})},[f("span",null,P(l.name),1),f("strong",null,P(Je(l.percent)),1),r[27]||(r[27]=f("i",null,[f("b")],-1)),f("em",null,P(l.desc),1)],4))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"畜群结构占比",width:j(s),height:u.value},{default:oe(()=>[f("div",cc,[f("div",dc,[f("div",hc,[(I(),_("svg",pc,[f("g",fc,[(I(!0),_(ie,null,pe(as.value,l=>(I(),_("path",{key:l.key,class:Ye(["structure-rose-segment",{"is-active":l.index===fi.value}]),d:l.path,fill:l.color,stroke:l.color},null,10,mc))),128))]),r[28]||(r[28]=f("circle",{class:"structure-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),r[29]||(r[29]=f("circle",{class:"structure-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r[30]||(r[30]=f("text",{class:"structure-rose-center",x:"75",y:"72","text-anchor":"middle"},"结构",-1)),r[31]||(r[31]=f("text",{class:"structure-rose-center is-sub",x:"75",y:"83","text-anchor":"middle"},"占比",-1))]))]),f("div",gc,[(I(!0),_(ie,null,pe(Ra.value,(l,c)=>(I(),_("div",{key:l.key||l.name,class:Ye(["structure-ratio-row",{"is-active":c===fi.value}]),style:Ct({"--row-color":l.color,"--row-percent":`${Math.max(4,l.percent)}%`})},[f("i",{style:Ct({background:l.color,color:l.color})},null,4),f("span",null,[Wt(P(l.name),1),f("small",null,P(Je(l.percent)),1)]),f("strong",null,P(ae(l.count)),1),r[32]||(r[32]=f("em",null,"头",-1))],6))),128))])]),dt.value?(I(),_("div",yc,"结构数据加载中")):$e.value?(I(),_("div",bc,P($e.value),1)):Le("",!0)])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"母牛/公牛年龄结构",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ws.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"牦牛乡镇分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ys.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):W.value==="forecast"?(I(),_(ie,{key:1},[H(le,{class:"yak-side-card left-card",title:"存栏变化拆解",width:j(s),height:u.value},{default:oe(()=>[f("div",vc,[f("div",wc,[f("span",null,P(Ze.value.label)+"变化路径",1),f("strong",{class:Ye({positive:pi.value>0,negative:pi.value<0})},[Wt(" 净变化 "+P(Ha(pi.value)),1),r[33]||(r[33]=f("em",null,"头",-1))],2)]),f("div",Lc,[(I(!0),_(ie,null,pe(Jr.value,l=>(I(),_("div",{key:l.key,class:Ye(["forecast-waterfall-row",[`is-${l.type}`,{positive:l.delta>0,negative:l.delta<0}]]),style:Ct({"--waterfall-left":`${l.left}%`,"--waterfall-width":`${l.width}%`,"--waterfall-color":l.color})},[f("span",null,P(l.name),1),r[34]||(r[34]=f("i",null,[f("b")],-1)),f("strong",null,P(l.display),1)],6))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"未来存栏趋势",width:j(s),height:u.value},{default:oe(()=>[f("div",Tc,[f("div",Sc,[(I(),_(ie,null,pe(di,l=>f("button",{key:l.key,type:"button",class:Ye({active:l.key===Ft.value}),onClick:c=>Ft.value=l.key},P(l.label),11,Mc)),64))]),H(j(Pe),{class:"yak-chart forecast-kline-chart",option:Us.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"月度数量预测",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ks.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"预测因子雷达",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Zs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):W.value==="epidemic"?(I(),_(ie,{key:2},[H(le,{class:"yak-side-card left-card",title:"防疫统计",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:no.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"养殖户防疫排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:ro.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"防疫作业趋势",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:io.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"疫苗类型分布",width:j(s),height:u.value},{default:oe(()=>[Ga.value.length?(I(),_("div",kc,[f("div",Pc,[(I(),Ua(Bl,{key:ns.value,data:Ga.value,delay:3e3,colors:Ce,opacity:.62,class:"epidemic-three-pie"},{default:oe(({data:l})=>[f("div",Cc,[f("strong",null,P(ae((l==null?void 0:l.count)||gt.value)),1),f("span",null,P((l==null?void 0:l.name)||"疫苗类型"),1)])]),_:1},8,["data"]))]),f("div",Fc,[(I(!0),_(ie,null,pe(Ga.value,(l,c)=>(I(),_("div",{key:l.key||l.name,class:"epidemic-three-pie-row"},[f("i",{style:Ct({borderColor:Ce[c%Ce.length]})},null,4),f("span",null,P(l.name),1),f("strong",null,P(ae(l.value)),1),f("em",null,P(l.unit),1)]))),128))])])):(I(),_("div",xc,"暂无疫苗类型数据"))]),_:1},8,["width","height"])],64)):W.value==="trade"?(I(),_(ie,{key:3},[H(le,{class:"yak-side-card left-card",title:"交易异常关注",width:j(s),height:u.value},{default:oe(()=>[f("div",Nc,[f("div",Rc,[f("span",null,P(Me.value)+"年流通监管线索",1),f("strong",null,P(Cs.value),1)]),f("div",Ic,[(I(!0),_(ie,null,pe(fn.value,l=>(I(),_("div",{key:l.key,class:Ye(["trade-risk-row",`is-${l.level}`]),style:Ct({"--risk-color":l.color})},[r[35]||(r[35]=f("i",null,null,-1)),f("span",null,[f("em",null,[f("b",null,P(l.badge),1),Wt(P(l.name),1)]),f("small",null,P(l.value)+"|"+P(l.desc),1)])],6))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"交易流通趋势",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:so.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"来源乡镇分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:oo.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"用途结构统计",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:lo.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):Le("",!0)])]),f("div",Gc,[f("div",_c,[W.value==="structure"?(I(),_(ie,{key:0},[H(le,{class:"yak-side-card right-card",title:"乡镇存栏排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:js.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"能繁母牛与犊牛分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Hs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"出栏/交易影响",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:qs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"性别与生产阶段汇总",width:j(s),height:u.value},{default:oe(()=>[f("div",Bc,[f("div",Ac,[(I(!0),_(ie,null,pe(tn.value,l=>(I(),_("div",{key:l.key||l.name,class:"structure-summary-row",style:Ct({"--structure-color":l.color,"--structure-width":`${dl(l)}%`})},[f("span",null,[r[36]||(r[36]=f("i",null,null,-1)),Wt(P(l.name),1)]),r[38]||(r[38]=f("b",null,[f("em")],-1)),f("strong",null,[Wt(P(ae(l.count)),1),r[37]||(r[37]=f("em",null,"头",-1))]),f("small",null,P(Je(l.percent)),1)],4))),128))]),dt.value?(I(),_("div",Ec,"结构数据加载中")):$e.value?(I(),_("div",$c,P($e.value),1)):Le("",!0)])]),_:1},8,["width","height"])],64)):W.value==="forecast"?(I(),_(ie,{key:1},[H(le,{class:"yak-side-card right-card",title:"乡镇预测排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Xs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"期末结构预测",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Js.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"补充/流出对比",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Qs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"预测变化热力",width:j(s),height:u.value},{default:oe(()=>[f("div",Vc,[(I(!0),_(ie,null,pe(eo.value,l=>(I(),_("div",{key:l.name,class:Ye(["heat-row",{"is-negative":l.change<0}]),style:Ct(to(l)),title:ao(l)},[f("span",null,P(l.name),1),r[39]||(r[39]=f("b",null,[f("i")],-1)),f("strong",null,P(Ha(l.change)),1)],14,zc))),128))])]),_:1},8,["width","height"])],64)):W.value==="epidemic"?(I(),Ua(le,{key:2,class:"yak-side-card right-card epidemic-ledger-card",title:"防疫记录台账",width:j(s),height:d.value},{default:oe(()=>[f("div",Oc,[f("div",Dc,[f("span",null,P(ge.value)+"年 共 "+P(K(Ue.value))+" 条",1),f("div",null,[Qe(f("input",{"onUpdate:modelValue":r[0]||(r[0]=l=>pt.value=l),type:"search",placeholder:"耳标/养殖户/疫苗",onKeyup:Ka($n,["enter"])},null,544),[[Xt,pt.value]]),f("button",{type:"button",onClick:$n},"搜索"),f("button",{type:"button",class:"is-more",onClick:r[1]||(r[1]=l=>zn())},"查看更多")])]),r[40]||(r[40]=f("div",{class:"epidemic-record-header"},[f("span",null,"电子耳标"),f("span",null,"养殖户"),f("span",null,"镇/乡"),f("span",null,"疫苗"),f("span",null,"时间")],-1)),f("div",Wc,[(I(!0),_(ie,null,pe(gs.value,l=>(I(),_("button",{key:l.epidemicId||l.earTag,type:"button",onClick:c=>zn(l)},[f("span",null,P(te(l.earTag)),1),f("span",null,P(te(l.owner)),1),f("span",null,P(te(l.town)),1),f("strong",null,P(te(l.medicine)),1),f("span",null,P(Gt(l.operateTime)),1)],8,Yc))),128)),Ve.value.length?Le("",!0):(I(),_("div",jc,P(v.value?"防疫台账读取中":N.value||"暂无防疫记录"),1))]),f("div",Hc,[f("span",null,"第 "+P(ve.value)+" / "+P(Ti.value)+" 页",1),f("button",{type:"button",disabled:ve.value<=1,onClick:r[2]||(r[2]=l=>Vn(ve.value-1))},"上一页",8,qc),f("button",{type:"button",disabled:ve.value>=Ti.value,onClick:r[3]||(r[3]=l=>Vn(ve.value+1))},"下一页",8,Uc)])])]),_:1},8,["width","height"])):W.value==="trade"?(I(),_(ie,{key:3},[H(le,{class:"yak-side-card right-card",title:"出证结构统计",width:j(s),height:u.value},{default:oe(()=>[f("div",Kc,[f("div",Zc,[f("span",null,[r[42]||(r[42]=f("em",null,"省外流通 A证",-1)),f("strong",null,[Wt(P(K(De("outProvinceHeads","aCertHeads"))),1),r[41]||(r[41]=f("b",null,"头",-1))]),f("small",null,P(K(De("outProvinceCount","aCertCount")))+"条记录",1)]),f("span",null,[r[44]||(r[44]=f("em",null,"省内流通 B证",-1)),f("strong",null,[Wt(P(K(De("inProvinceHeads","bCertHeads"))),1),r[43]||(r[43]=f("b",null,"头",-1))]),f("small",null,P(K(De("inProvinceCount","bCertCount")))+"条记录",1)])]),H(j(Pe),{class:"trade-cert-chart",option:uo.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card trade-source-card",title:"出栏来源排行",width:j(s),height:h.value},{default:oe(()=>[f("div",Xc,[(I(!0),_(ie,null,pe(Aa.value,(l,c)=>(I(),_("div",{key:l.name,class:"trade-dest-row",style:Ct({"--trade-ratio":`${l.ratio}%`})},[f("span",null,P(c+1),1),f("strong",null,P(l.name),1),f("em",null,P(ae(l.headCount))+"头",1)],4))),128)),Aa.value.length?Le("",!0):(I(),_("div",Jc,P(Lt.value?"交易数据读取中":Tt.value||"暂无出栏来源数据"),1))])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card trade-ledger-card",title:"交易出证台账",width:j(s),height:g.value},{default:oe(()=>[f("div",Qc,[f("div",ed,[f("span",null,"共 "+P(K(ft.value))+" 条",1),f("div",null,[Qe(f("input",{"onUpdate:modelValue":r[4]||(r[4]=l=>Ma.value=l),type:"search",placeholder:"货主/车辆/检疫号/地区",onKeyup:Ka(xn,["enter"])},null,544),[[Xt,Ma.value]]),f("button",{type:"button",onClick:xn},"搜索"),f("button",{type:"button",class:"is-more",onClick:r[5]||(r[5]=l=>Rn())},"查看更多")])]),r[45]||(r[45]=f("div",{class:"trade-ledger-header"},[f("span",null,"货主"),f("span",null,"车牌"),f("span",null,"数量"),f("span",null,"来源"),f("span",null,"用途"),f("span",null,"时间")],-1)),f("div",td,[(I(!0),_(ie,null,pe(pn.value,l=>(I(),_("button",{key:l.certId,type:"button",onClick:c=>Rn(l)},[f("span",null,P(te(l.ownerName)),1),f("span",null,P(te(l.transportNumber)),1),f("strong",null,P(K(l.amount))+"头",1),f("span",null,P(te(l.startTown)),1),f("span",null,P(te(l.usageTypeName)),1),f("span",null,P(Gt(l.issueTime)),1)],8,ad))),128)),pn.value.length?Le("",!0):(I(),_("div",id,P(Lt.value?"交易台账读取中":Tt.value||"暂无交易记录"),1))]),f("div",nd,[f("span",null,"第 "+P(St.value)+" / "+P(Mi.value)+" 页",1),f("button",{type:"button",disabled:St.value<=1,onClick:r[6]||(r[6]=l=>Nn(St.value-1))},"上一页",8,rd),f("button",{type:"button",disabled:St.value>=Mi.value,onClick:r[7]||(r[7]=l=>Nn(St.value+1))},"下一页",8,sd)])])]),_:1},8,["width","height"])],64)):Le("",!0)])]),f("div",od,[H(nu,{"model-value":W.value,topics:vt,"onUpdate:modelValue":r[8]||(r[8]=l=>W.value=l)},null,8,["model-value"])]),nt.value?(I(),_("div",ld,[H(ru,{modelValue:He.value,"onUpdate:modelValue":r[9]||(r[9]=l=>He.value=l),"topic-key":"yak-management",layers:Is.value,legends:_s.value,multiple:"",compact:"",width:248,height:Bs.value},null,8,["modelValue","layers","legends","height"])])):Le("",!0)]),z.value?(I(),_("div",{key:2,class:"epidemic-ledger-modal",onClick:Za(On,["self"])},[f("div",ud,[f("div",cd,[f("div",null,[r[46]||(r[46]=f("span",null,"牦牛防疫台账",-1)),f("strong",null,P(ge.value)+"年 "+P(K(ne.value))+" 条记录",1)]),f("button",{type:"button",onClick:On},"关闭")]),f("div",dd,[Qe(f("input",{"onUpdate:modelValue":r[10]||(r[10]=l=>fe.value.keyword=l),type:"search",placeholder:"耳标 / 养殖户 / 药品","aria-label":"耳标 / 养殖户 / 药品",onKeyup:Ka(Dn,["enter"])},null,544),[[Xt,fe.value.keyword]]),Qe(f("select",{"onUpdate:modelValue":r[11]||(r[11]=l=>fe.value.town=l)},[r[47]||(r[47]=f("option",{value:""},"全部镇/乡",-1)),(I(!0),_(ie,null,pe(bs.value,l=>(I(),_("option",{key:l,value:l},P(l),9,hd))),128))],512),[[ga,fe.value.town]]),Qe(f("select",{"onUpdate:modelValue":r[12]||(r[12]=l=>fe.value.medicine=l)},[r[48]||(r[48]=f("option",{value:""},"全部疫苗",-1)),(I(!0),_(ie,null,pe(vs.value,l=>(I(),_("option",{key:l,value:l},P(l),9,pd))),128))],512),[[ga,fe.value.medicine]]),Qe(f("input",{"onUpdate:modelValue":r[13]||(r[13]=l=>fe.value.startDate=l),type:"date"},null,512),[[Xt,fe.value.startDate]]),Qe(f("input",{"onUpdate:modelValue":r[14]||(r[14]=l=>fe.value.endDate=l),type:"date"},null,512),[[Xt,fe.value.endDate]]),f("button",{type:"button",onClick:Dn},"检索"),f("button",{type:"button",class:"is-ghost",onClick:Wo},"重置")]),f("div",fd,[f("div",md,[r[49]||(r[49]=f("div",{class:"epidemic-ledger-table-head"},[f("span",null,"电子耳标"),f("span",null,"养殖户"),f("span",null,"镇/乡"),f("span",null,"村"),f("span",null,"疫苗"),f("span",null,"免疫时间"),f("span",null,"图片")],-1)),(I(!0),_(ie,null,pe(q.value,l=>{var c,p;return I(),_("button",{key:l.epidemicId||l.earTag,type:"button",class:Ye({active:(((c=_e.value)==null?void 0:c.epidemicId)||((p=_e.value)==null?void 0:p.earTag))===(l.epidemicId||l.earTag)}),onClick:y=>Yn(l)},[f("span",null,P(te(l.earTag)),1),f("span",null,P(te(l.owner)),1),f("span",null,P(te(l.town)),1),f("span",null,P(te(l.village)),1),f("strong",null,P(te(l.medicine)),1),f("span",null,P(Gt(l.operateTime)),1),f("span",null,P($i(l).length?`${$i(l).length}张`:"无"),1)],10,gd)}),128)),q.value.length?Le("",!0):(I(),_("div",yd,P(Ge.value?"台账读取中":ze.value||"暂无匹配记录"),1))]),f("div",bd,[f("div",vd,[f("div",null,[f("span",null,P(te(Ot.value.earTag)),1),f("em",null,P(te(Ot.value.medicine||Ot.value.preventionType)),1)]),f("strong",null,P(Ae.value?"加载中":Gt(Ot.value.operateTime)),1)]),f("div",wd,[(I(!0),_(ie,null,pe(ys.value,l=>(I(),_("span",{key:l.label,class:Ye({"is-wide":l.wide})},[f("em",null,P(l.label),1),f("strong",null,P(l.value),1)],2))),128))]),cn.value.length?(I(),_("div",Ld,[r[50]||(r[50]=f("div",{class:"epidemic-detail-photo-title"},"现场照片",-1)),f("div",Td,[(I(!0),_(ie,null,pe(cn.value.slice(0,6),l=>(I(),_("button",{key:l,type:"button",class:"epidemic-modal-photo-thumb",onClick:Za(c=>Go(l),["stop"])},[f("img",{src:kn(l),alt:"防疫照片"},null,8,Md)],8,Sd))),128))])])):Le("",!0)])]),f("div",kd,[f("span",null,"第 "+P(ce.value)+" / "+P(un.value)+" 页",1),f("button",{type:"button",disabled:ce.value<=1,onClick:r[15]||(r[15]=l=>Wn(ce.value-1))},"上一页",8,Pd),f("button",{type:"button",disabled:ce.value>=un.value,onClick:r[16]||(r[16]=l=>Wn(ce.value+1))},"下一页",8,Cd)])])])):Le("",!0),si.value?(I(),_("div",{key:3,class:"epidemic-ledger-modal trade-ledger-modal",onClick:Za(In,["self"])},[f("div",Fd,[f("div",xd,[f("div",null,[r[51]||(r[51]=f("span",null,"牦牛交易出证台账",-1)),f("strong",null,P(Me.value)+"年 "+P(K(ka.value))+" 条记录",1)]),f("button",{type:"button",onClick:In},"关闭")]),f("div",Nd,[Qe(f("input",{"onUpdate:modelValue":r[17]||(r[17]=l=>mt.value.keyword=l),type:"search",placeholder:"货主 / 车辆 / 检疫号 / 地区",onKeyup:Ka(Gn,["enter"])},null,544),[[Xt,mt.value.keyword]]),Qe(f("select",{"onUpdate:modelValue":r[18]||(r[18]=l=>mt.value.startTown=l)},[r[52]||(r[52]=f("option",{value:""},"全部来源乡镇",-1)),(I(!0),_(ie,null,pe(Ss.value,l=>(I(),_("option",{key:l,value:l},P(l),9,Rd))),128))],512),[[ga,mt.value.startTown]]),Qe(f("select",{"onUpdate:modelValue":r[19]||(r[19]=l=>mt.value.usageType=l)},[r[53]||(r[53]=f("option",{value:""},"全部用途",-1)),(I(!0),_(ie,null,pe(Ms.value,l=>(I(),_("option",{key:l,value:l},P(l),9,Id))),128))],512),[[ga,mt.value.usageType]]),Qe(f("select",{"onUpdate:modelValue":r[20]||(r[20]=l=>mt.value.certType=l)},[r[54]||(r[54]=f("option",{value:""},"全部证书",-1)),(I(!0),_(ie,null,pe(ks.value,l=>(I(),_("option",{key:l.value,value:l.value},P(l.label),9,Gd))),128))],512),[[ga,mt.value.certType]]),f("button",{type:"button",onClick:Gn},"检索"),f("button",{type:"button",class:"is-ghost",onClick:Oo},"重置")]),f("div",_d,[f("div",Bd,[r[55]||(r[55]=f("div",{class:"trade-ledger-modal-table-head"},[f("span",null,"货主"),f("span",null,"证书"),f("span",null,"车牌号"),f("span",null,"数量"),f("span",null,"来源"),f("span",null,"用途"),f("span",null,"出证时间"),f("span",null,"状态")],-1)),(I(!0),_(ie,null,pe(Et.value,l=>(I(),_("button",{key:l.certId||l.factoryCode,type:"button",class:Ye({active:Ts.value===(l.certId||l.factoryCode)}),onClick:c=>Bn(l)},[f("span",null,P(te(l.ownerName)),1),f("span",null,P(te(l.certType||l.certScopeName)),1),f("span",null,P(te(l.transportNumber)),1),f("strong",null,P(K(l.amount))+"头",1),f("span",null,P(te(l.startTown)),1),f("span",null,P(te(l.usageTypeName)),1),f("span",null,P(Gt(l.issueTime)),1),f("span",null,P(te(l.statusName)),1)],10,Ad))),128)),Et.value.length?Le("",!0):(I(),_("div",Ed,P(oi.value?"交易台账读取中":li.value||"暂无匹配记录"),1))]),f("div",$d,[f("div",Vd,[f("div",null,[f("span",null,P(te(ye.value.factoryCode||ye.value.certId)),1),f("em",null,P(Cn(ye.value)),1)]),f("strong",null,P(Gt(ye.value.issueTime)),1)]),f("div",zd,[f("span",Od,[r[56]||(r[56]=f("em",null,"货主",-1)),f("strong",null,P(te(ye.value.ownerName)),1)]),f("span",null,[r[57]||(r[57]=f("em",null,"联系方式",-1)),f("strong",null,P(Pn(ye.value.ownerPhone)),1)]),f("span",null,[r[58]||(r[58]=f("em",null,"证书类型",-1)),f("strong",null,P(Cn(ye.value)),1)]),f("span",null,[r[59]||(r[59]=f("em",null,"车牌号",-1)),f("strong",null,P(te(ye.value.transportNumber)),1)]),f("span",null,[r[60]||(r[60]=f("em",null,"牦牛数量",-1)),f("strong",null,P(K(ye.value.amount))+"头",1)]),f("span",null,[r[61]||(r[61]=f("em",null,"用途",-1)),f("strong",null,P(te(ye.value.usageTypeName)),1)]),f("span",null,[r[62]||(r[62]=f("em",null,"来源乡镇",-1)),f("strong",null,P(te(ye.value.startTown)),1)]),f("span",null,[r[63]||(r[63]=f("em",null,"目的省份",-1)),f("strong",null,P(te(ye.value.destProvince)),1)]),f("span",null,[r[64]||(r[64]=f("em",null,"检疫员",-1)),f("strong",null,P(te(ye.value.quarantineOfficerName)),1)]),f("span",Dd,[r[65]||(r[65]=f("em",null,"状态",-1)),f("strong",null,P(te(ye.value.statusName)),1)]),f("span",Wd,[r[66]||(r[66]=f("em",null,"来源地区",-1)),f("strong",null,P(te(ye.value.startRegionFullName)),1)]),f("span",Yd,[r[67]||(r[67]=f("em",null,"目的地",-1)),f("strong",null,P(te(ye.value.destRegionFullName)),1)])]),f("button",{type:"button",class:"trade-detail-locate",disabled:!ye.value.startTown,onClick:r[21]||(r[21]=l=>Do(ye.value))}," 查看乡镇位置 ",8,jd)])]),f("div",Hd,[f("span",null,"第 "+P($t.value)+" / "+P(ki.value)+" 页",1),f("button",{type:"button",disabled:$t.value<=1,onClick:r[22]||(r[22]=l=>_n($t.value-1))},"上一页",8,qd),f("button",{type:"button",disabled:$t.value>=ki.value,onClick:r[23]||(r[23]=l=>_n($t.value+1))},"下一页",8,Ud)])])])):Le("",!0),Ke.value?(I(),_("div",{key:4,class:"epidemic-image-preview-modal",onClick:Za(Vi,["self"])},[f("div",Kd,[f("div",Zd,[f("div",null,[r[68]||(r[68]=f("span",null,"防疫照片",-1)),f("strong",null,P(te(Ot.value.earTag)),1)]),f("button",{type:"button",onClick:Vi},"关闭")]),f("div",Xd,[f("div",Jd,[f("img",{src:at.value,alt:"防疫照片预览"},null,8,Qd)])])])])):Le("",!0)]))}};export{Th as default}; diff --git a/docs/assets/index-27149dbd-1784045078568.js b/docs/assets/index-1f5d6021-1784074877048.js similarity index 96% rename from docs/assets/index-27149dbd-1784045078568.js rename to docs/assets/index-1f5d6021-1784074877048.js index 90bca7a..325f23c 100644 --- a/docs/assets/index-27149dbd-1784045078568.js +++ b/docs/assets/index-1f5d6021-1784074877048.js @@ -1,4 +1,4 @@ -import{g as p,q as g,O as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,J as u,d as w}from"./index-1784045078568.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784045078568.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784045078568.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784045078568.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],O=["x1"],k=["id","x1"],D=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],J={class:"m-card-bd-content"},K={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 +import{g as p,q as g,O as y,o as r,c as n,a as i,z as c,t as x,r as h,j as $,J as u,d as w}from"./index-1784074877048.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784074877048.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784074877048.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784074877048.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784074877048.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784074877048.svg",import.meta.url).href;const L={class:"m-card-hd"},H={class:"m-card-hd-bg"},U=["width","viewBox"],B=["clip-path"],E=["width"],M=["id"],S=["d"],Z=["d","fill"],G=["d","fill","mask"],C=["clip-path"],O=["x1"],k=["id","x1"],D=["id"],T=["id"],N=["width"],R=["id"],z={class:"m-card-hd-title"},A={key:0,class:"m-card-hd-extra"},P=["width","height","viewBox"],I=["opacity"],j=["d","fill"],q=["d"],J={class:"m-card-bd-content"},K={__name:"index",props:{width:{type:Number,default:398},height:{type:Number,default:200},title:{type:String,default:"标题"},bodyFill:{type:String,default:"rgba(26, 57, 77, 1)"},bodyOpacity:{type:Number,default:.6}},setup(e){const s=e,a=w(1),_=p(()=>{let l=s.width;return`M165 0.5 L165.707 -0.207107 L165.414 -0.5 H165 diff --git a/docs/assets/index-24c07d59-1784045078568.js b/docs/assets/index-24c07d59-1784045078568.js deleted file mode 100644 index 3249f83..0000000 --- a/docs/assets/index-24c07d59-1784045078568.js +++ /dev/null @@ -1 +0,0 @@ -var ca=Object.defineProperty,da=Object.defineProperties;var fa=Object.getOwnPropertyDescriptors;var Et=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,pa=Object.prototype.propertyIsEnumerable;var Mt=(N,v,y)=>v in N?ca(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))ga.call(v,y)&&Mt(N,y,v[y]);if(Et)for(var y of Et(v))pa.call(v,y)&&Mt(N,y,v[y]);return N},P=(N,v)=>da(N,fa(v));var C=(N,v,y)=>new Promise((ee,U)=>{var z=E=>{try{L(y.next(E))}catch(h){U(h)}},ye=E=>{try{L(y.throw(E))}catch(h){U(h)}},L=E=>E.done?ee(E.value):Promise.resolve(E.value).then(z,ye);L((y=y.apply(N,v)).next())});import{g as f,q as ya,h as ha,w as ma,o as F,c as $,C as va,a as S,j as re,b as k,x as X,u as K,n as Gt,F as ka,y as ba,J as wt,t as Vt,f as _a,d as p,A as Te}from"./index-1784045078568.js";import{g as Pa,l as Ot,E as Na}from"./live-scene-1-7846500b-1784045078568.js";import{_ as Q}from"./index-27149dbd-1784045078568.js";import{M as Aa}from"./index-c252ce06-1784045078568.js";import{_ as Ca}from"./LayerPanel-67768a91-1784045078568.js";import{a as se,_ as Sa}from"./FeatureInfoPanel-b2a9b292-1784045078568.js";import{l as Ia,d as La,e as xa,m as Ta}from"./townshipBoundaries-1b068bef-1784045078568.js";import{c as Ra,d as Ba,F as Fa,e as za,f as Ea,h as Ma,i as Ga}from"./featurePanelLayout-5da16b00-1784045078568.js";import{q as $t,r as wa,s as Va}from"./screen2Standard-98cd5b6c-1784045078568.js";import{p as Oa,a as qe,b as $a,c as ja,d as Wa,e as Ka,f as ge,g as Ze,h as Ye,i as jt,j as Ua}from"./data-156ef419-1784045078568.js";import"./index-6a8ef8cf-1784045078568.js";import"./index-e9f36657-1784045078568.js";import"./livestockData-36ec0ae2-1784045078568.js";const Da={class:"pasture-management"},Ha={key:0,class:"pasture-map-loading"},qa={class:"pasture-management-ui"},Za={class:"pasture-left"},Ya={class:"pasture-side-stack is-left"},Ja={class:"pasture-video-monitor"},Xa=["disabled"],Qa=["onClick"],er={key:1,class:"pasture-video-play"},tr={key:2,class:"pasture-video-loading"},nr={key:3,class:"pasture-video-error"},ar={class:"pasture-video-point-name"},rr=["disabled"],sr={class:"pasture-right"},ur={class:"pasture-side-stack is-right"},or={class:"pasture-map-layer-tools"},Je="pasture-grassland-boundary",Wt="pasture-yak-marks-layer",lr=12e3,ir="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Xe="#FFE600",Cr={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,z=$t.sideCardWidth;$t.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),L=f(()=>wa(ye.value)),E=f(()=>Va(L.value,2)),h=p(null),ue=p(!1),Qe=p(0);let he=0;const D=p(null),oe=p(!1),le=p(!1),te=p(null),x=p(Ze),H=p(Ye),ne=p([Je,Wt]),Re=p(""),Kt=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],me=["#30dcff","#24f6c4","#8bf7ff","#48cfff","#16b6e8","#b9fbff","#67ffe4"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Ut=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),et=[102.58,32.72],Dt=Wn("ne:t_pasture_grassland",pe),Ht={key:Wt,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别标记",color:Xe,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Xe,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Xe,strokeColor:"#FFF58A",selectable:!1}]},Be={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Ot,playUrl:"",hdPlayUrl:"",token:""},Fe=p(null),M=p([]),ve=p(0),q=p(!1),G=p(!1),A=p("");let w=!1,ae=0,V=null,I=null,ze=!1,Z=0,ke=null,ie=0;const qt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Zt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Yt=ua(Ta),tt=f(()=>[{key:Je,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:Dt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:et,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Ht]),Jt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),be=f(()=>{const e=new Set(Jt.value);return tt.value.filter(t=>e.has(t.key))}),Xt=f(()=>be.value[0]||null),ce=f(()=>be.value.flatMap(e=>e.legends||[]).find(e=>e.key===Re.value)||null),Qt=f(()=>be.value.flatMap(e=>e.legends||[]));function en(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const nt=f(()=>be.value.map(en).filter(Boolean)),_e=f(()=>nt.value[0]||null),tn=f(()=>!!te.value),nn=Fa,at=f(()=>Ra({point:te.value?Gn(te.value):null,rowCount:D.value?yt(D.value):0,loading:le.value,empty:oe.value||!D.value})),an=f(()=>at.value.height),rn=f(()=>at.value.style),rt=f(()=>bt(x.value.core).length?bt(x.value.core):Oa),Pe=f(()=>Ee(_t(x.value.distribution).length?_t(x.value.distribution):qe,ge)),sn=f(()=>{const e=Jn(x.value.online);return Xn(e.length?e:$a)}),un=f(()=>Ee(Pt(x.value.age).length?Pt(x.value.age):ja,ge)),on=f(()=>Ee(Nt(x.value.age).length?Nt(x.value.age):Wa,ge)),st=f(()=>Qn(Ua));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(Pe.value.length?Pe.value:Ka).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:Pe.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:st.value}));const ln=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",scrollable:!1,rows:hn(Pe.value).slice(0,10).map((e,t)=>P(g({},e),{unit:e.unit||"户",color:me[t%me.length]}))})),cn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",rows:st.value.map((e,t)=>P(g({},e),{unit:e.unit||"万亩",color:me[(t+1)%me.length]}))})),dn=f(()=>({key:"pasture-online",type:"line",rows:sn.value})),fn=f(()=>({key:"pasture-age",type:"column",variant:"plain",lineOverlay:!0,labelMode:"horizontal",scrollable:!1,rows:un.value})),gn=f(()=>({key:"pasture-gender",type:"donut",rows:on.value})),pn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:H.value})),Ne=f(()=>{const e=M.value.length;return e?ve.value%e:0}),yn=f(()=>M.value[Ne.value]||Be),ut=f(()=>kn(M.value,Ne.value,Be));function hn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Ee(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ya(()=>{Me(),window.addEventListener("resize",Me),kt(),zn(),Sn(),mn()}),ha(()=>{w=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),ma(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function mn(){return C(this,null,function*(){try{const e=yield Pa();if(w)return;M.value=e,ve.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(w)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!w&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function vn(e,t){t!=null&&t.isActive&&(Fe.value=e||null)}function kn(e=[],t=0,n=Be){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function bn(e,t=!0){const n=(e==null?void 0:e.image)||Ot;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function _n(){ot(-1)}function Pn(){ot(1)}function ot(e){const t=M.value.length;t&&(Y({resetError:!0}),ve.value=(Ne.value+e+t)%t)}function Nn(e){const t=M.value.length;if(!t){lt();return}const n=((Number(e)||0)+t)%t;(n!==Ne.value||I||G.value)&&Y({resetError:!0}),ve.value=n,Te(lt)}function lt(){return C(this,null,function*(){var a,s;const e=yn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||G.value)return;I&&Y({resetError:!0}),A.value="",G.value=!0,yield Te();const t=++Z;let n=null;An(t);try{const r=(s=(a=Fe.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Na.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Cn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",G.value=!1,q.value=!1,Z+=1,I=null,ze=!1,Ge())},handleSuccess(){t===Z&&(de(),A.value="",ze=!0,G.value=!1,ct(),it())},fullScreenChangeCallBack(){}}),t!==Z){dt(n),Ge();return}I=n,q.value=!0,Te(()=>{ct(),it()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function it(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function ct(){var d,l;if(typeof document=="undefined")return;const e=Fe.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,ze=!1,Z+=1,a&&dt(a),t&&Ge(),q.value=!1,G.value=!1,n&&(A.value="")}function An(e){de(),ke=window.setTimeout(()=>{e!==Z||!G.value||(A.value="视频加载超时",Y({resetError:!1}))},lr)}function de(){ke&&(window.clearTimeout(ke),ke=null)}function dt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function Ge(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Cn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function Sn(){return C(this,null,function*(){try{const e=yield Ba();if(w)return;x.value=g(g({},Ze),e),kt();const t=ea(e.list);H.value=t.length?t:At(Ye),In(H.value)}catch(e){x.value=Ze,H.value=At(Ye)}})}function In(e=H.value,t=600){w||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(w||!ee.active)&&Ln(e)},t))}function Ln(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(xn).slice(0,60);if(!n.length)return;const a=yield gt(n,5,r=>C(this,null,function*(){const u=xt(r),o=W(r);let i=o,d=null,l=Ie(r,o)||Le(r,r.name,u);try{(!l||!i.some(b))&&(i=yield pt(r))}catch(R){i=o}if(l=l||Ie(r,i)||Le(r,r.name,u),!l){try{d=u?yield za(u):null}catch(Ft){d=null}const R=W(d);l=Rn(d)||Ie(d,R),R.length&&!i.length&&(i=R)}l=l||Le(r,r.name,u);const m=!!(u||Se(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?St(i):O(r),canLocate:m,locateText:m?"定位":"--"};return Tn(_,t),_}));if(w||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&&ft(s)})}function xn(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||W(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function Tn(e,t=ae){if(!e||w||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),ft(n)}function ft(e){e!=null&&e.size&&(H.value=H.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function we(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=W(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Rn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return T(Ae(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return T(Ae(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return T(Ae(u))}return""}function Ae(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function gt(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=It(a);if(!s)return a;try{const r=yield Ma(s),o=we([r]).find(b);return o?na(a,o):a}catch(r){return a}}));return $e(n)})}function Fn(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield pt(e)}catch(d){n=W(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){vt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||vt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function En(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function Mn(e=_e.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===Je||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function yt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>wn(n,a)).length)}function wn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Ut.has(String(e||"").toLowerCase())}function Vn(e={}){const t=ht(e.lng),n=ht(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ht(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function On(e={},t={}){var s,r;const n=$n(e);if(!n||!Object.keys(n).length)return null;const a=jn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:_e.value||Xt.value,lngLat:t.lngLat}}function $n(e={}){var o,i,d,l;const t=mt(e),n=j((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=j((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=j((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||j(t==null?void 0:t.data)||j(t==null?void 0:t.result)||j(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function mt(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function jn(e={},t={}){var r,u;const n=mt(e),a=j((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=j((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function j(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){D.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function vt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Wn(e,t){return`${e}${e}${t}0.025${t}0.90.74`}function Kn(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!Mn(e.overlayLayer||_e.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,D.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Ga(Vn({lng:t,lat:n}));if(a!==ie)return;const _=On(m,e);if(!_||yt(_)<=0){Oe();return}D.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Un(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Qe.value+=1,Te(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Un,resetMap:Dn});function kt(){U("module-stats",{moduleKey:"pasture-management",items:Hn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function Hn(){const e=new Map;(Array.isArray(rt.value)?rt.value:[]).forEach(n=>{!(n!=null&&n.name)||Yn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||jt.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Kt.map(n=>e.get(n)||jt.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function bt(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=qn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Zn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function qn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Zn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Yn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function _t(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Jn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Xn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=T((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=T((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function Pt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function Nt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ea(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=W(t),r=O(t)||St(s),u=fe(t,s),o=xt(t),i=Ie(t,s)||Le(t,a,o),d=Ce(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Se(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(Ct)}function At(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ce(t),grasslandArea:O(t),acreage:O(t)})).sort(Ct)}function Ce(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function Ct(e,t){const n=Ce(e),a=Ce(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Se(e)?1:0,r=Se(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Se(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>ta(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function St(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function ta(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function W(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function na(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=aa(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function aa(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=It(e);return n?`id:${n}`:""}function It(e={}){return Lt(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(Lt).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function Lt(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function xt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:W(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Ie(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=T(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=T(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Tt(e);if(r)return r;for(const u of t){const o=Tt(u);if(o)return o}return""}function T(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(Ia(t))return t;const a=La.find(r=>t.includes(r));if(a)return a;const s=Ae(t);return s&&s!==t?T(s):""}function Le(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=qt[String(r||"").trim()];if(u)return T(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Zt[ra(r)];if(u)return T(u)}return""}function ra(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?xa(n):""}function Tt(e={}){const t=Ue(e),n=oa(t);if(!n)return"";const a=Yt.find(s=>ia(n,s.geometry));return a!=null&&a.name?T(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return sa(n)}function sa(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:De(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:xe(s).map(De).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:He(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:xe(s).map(He).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:Rt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:xe(s).map(Rt).filter(u=>u.length)}:null}function De(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function He(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(De).filter(Boolean)}function Rt(e){return xe(e).map(He).filter(t=>t.length>=3)}function xe(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function ua(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function oa(e){const t=la(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function la(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ia(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Bt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Bt(e,n)):!1}function Bt(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=zt>r&&s<(Ft-_)*(r-R)/(zt-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",Da,[(F(),va(Aa,{key:Qe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":ir,center:et,"initial-zoom":9,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":_e.value,"overlay-layers":nt.value,onReady:En,onMapClick:Kn},null,8,["active","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Ha,"3D地图加载中")),S("div",qa,[S("div",Za,[S("div",Ya,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:ln.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:K(z),height:L.value},{default:X(()=>[S("div",Ja,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:_n}," ‹ ",8,Xa),S("div",{class:Gt(["pasture-video-grid",{"is-single":ut.value.length<=1}])},[(F(!0),$(ka,null,ba(ut.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>vn(a,n),class:Gt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":G.value&&n.isActive}]),style:wt(bn(n.live,n.isActive)),onClick:a=>Nn(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",er)):re("",!0),G.value&&n.isActive?(F(),$("div",tr,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",nr,Vt(A.value),1)):re("",!0),S("div",ar,Vt(n.live.title),1)],14,Qa))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Pn}," › ",8,rr)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",sr,[S("div",ur,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:K(z),height:E.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21",onRowSelect:Fn},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[k(Ca,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Re.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Re.value=n),"topic-key":"grassland",layers:tt.value,legends:Qt.value,multiple:"",width:232,height:430},null,8,["modelValue","selected-legend-key","layers","legends"])]),tn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:wt(rn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":"关闭图斑详情",title:"关闭",onClick:_a(J,["stop"])}," × "),k(Sa,{feature:D.value,empty:oe.value,loading:le.value,width:K(nn),height:an.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{Cr as default}; diff --git a/docs/assets/index-2bde92c2-balabala-1784074877048.css b/docs/assets/index-2bde92c2-balabala-1784074877048.css new file mode 100644 index 0000000..1c82ff3 --- /dev/null +++ b/docs/assets/index-2bde92c2-balabala-1784074877048.css @@ -0,0 +1 @@ +@charset "UTF-8";.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map canvas{display:block;width:100%;height:100%}.map .yak-industry-point-label{width:172px;min-height:72px;margin-bottom:28px;color:#f2feff;font-size:12px;pointer-events:none;will-change:transform}.map .yak-industry-point-label-wrap{position:relative;width:172px;padding:8px 10px 9px;border:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 56%,transparent);border-radius:4px;background:linear-gradient(120deg,rgba(6,37,49,.88),rgba(3,16,27,.76)),linear-gradient(90deg,color-mix(in srgb,var(--yak-point-color, #24f6c4) 18%,transparent),transparent 72%);box-shadow:0 0 18px color-mix(in srgb,var(--yak-point-color, #24f6c4) 26%,transparent),inset 0 0 14px #30dcff14}.map .yak-industry-point-label-wrap:after{content:"";position:absolute;left:14px;bottom:-9px;width:14px;height:14px;border-right:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);border-bottom:1px solid color-mix(in srgb,var(--yak-point-color, #24f6c4) 52%,transparent);background:rgba(3,16,27,.82);transform:rotate(45deg)}.map .yak-industry-point-label-head,.map .yak-industry-point-label-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.map .yak-industry-point-label-head{color:#daf9ffb3;font-size:10px}.map .yak-industry-point-label-head i{width:7px;height:7px;border-radius:50%;background:var(--yak-point-color, #24f6c4);box-shadow:0 0 10px var(--yak-point-color, #24f6c4)}.map .yak-industry-point-label-head span,.map .yak-industry-point-label-name,.map .yak-industry-point-label-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .yak-industry-point-label-name{margin-top:5px;color:#fff;font-size:13px;font-weight:800;line-height:1.35}.map .yak-industry-point-label-meta{margin-top:5px;color:#d3f1f6ad;font-size:10px}.map .yak-industry-point-label-meta strong{flex:0 0 auto;color:#c9fbff;font-size:11px;font-weight:800}.map .info-point{color:#eaffff;font-size:13px;width:178px;min-height:82px;margin-bottom:24px;will-change:transform}.map .info-point-wrap{position:relative;width:178px;padding:8px 10px 9px;border:1px solid rgba(104,236,255,.38);border-radius:5px;background:linear-gradient(120deg,rgba(6,36,48,.92),rgba(4,18,29,.78)),rgba(2,16,25,.82);box-shadow:0 0 18px #30dcff33,inset 0 0 18px #27f0c014;transform:translate(42%,-12%)}.map .info-point-wrap-inner{position:relative}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{position:absolute;left:-18px;content:""}.map .info-point-wrap-inner:before{top:42px;width:16px;height:1px;background:linear-gradient(90deg,rgba(104,236,255,0),rgba(104,236,255,.88))}.map .info-point-wrap-inner:after{top:38px;width:7px;height:7px;border-radius:50%;background:#c9fbff;box-shadow:0 0 8px #30dcff80}.map .info-point-wrap.is-prime{border-color:#30dcff80;background:linear-gradient(120deg,rgba(12,65,83,.7),rgba(4,24,34,.82)),rgba(2,16,25,.86)}.map .info-point-head{display:flex;align-items:center;gap:7px;min-width:0}.map .info-point-head .rank{flex:0 0 auto;color:#c9fbff;font-size:12px;line-height:14px;font-weight:900}.map .info-point-head strong{overflow:hidden;color:#fff;font-size:15px;line-height:18px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .info-point-metric{margin-top:4px;overflow:hidden;color:#a6f4ffc7;font-size:11px;line-height:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.map .info-point-value{display:flex;align-items:baseline;gap:4px;margin-top:2px}.map .info-point-value span{color:#fff;font-size:25px;line-height:28px;font-weight:900;text-shadow:0 0 12px rgba(126,251,246,.6)}.map .info-point-value em{color:#ebfcffc7;font-size:11px;line-height:13px;font-style:normal;font-weight:800}.map .provinces-label-wrap{transform:translate(50%,200%);opacity:0;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;width:136px;min-height:58px;border:1px solid rgba(126,251,246,.22);border-radius:8px 8px 8px 0;background:rgba(1,19,30,.62);box-shadow:0 0 16px #30dcff29}.map .provinces-label .label-main{min-width:0}.map .provinces-label .label-title{max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7efbf6d1;font-size:10px;line-height:12px;font-weight:500}.map .provinces-label .number{color:#fff;font-size:21px;line-height:25px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:11px;font-weight:400;opacity:.64;padding-left:4px}.map .provinces-label .name{color:#fff;font-size:12px;line-height:14px;font-weight:700;max-width:94px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:22px;font-weight:700;flex:0 0 auto}.map .provinces-label.yellow .no{color:#c9fbff!important;text-shadow:0 0 5px rgba(48,220,255,.42)!important}.map .epidemic-village-label{will-change:transform}.map .epidemic-village-label .epidemic-village-card{position:relative;width:142px;padding:7px 9px 6px;border:1px solid rgba(91,236,235,.42);border-radius:4px;color:#eaffff;background:linear-gradient(90deg,rgba(5,35,45,.92),rgba(2,18,29,.78)),rgba(1,17,27,.86);box-shadow:0 0 16px #2ddeff38,inset 0 0 16px #27f0c014;transform:translate(48%,-12%)}.map .epidemic-village-label .epidemic-village-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(91,236,235,0),rgba(91,236,235,.78))}.map .epidemic-village-label .epidemic-village-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#c9fbff;box-shadow:0 0 8px #30dcff75}.map .epidemic-village-label .epidemic-village-card.is-small{transform:translate(42%,-8%) scale(.92)}.map .epidemic-village-label .village-card-head{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}.map .epidemic-village-label .village-card-head strong{overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .epidemic-village-label .village-card-head span{flex:0 0 auto;padding:1px 5px 2px;border:1px solid rgba(39,240,192,.28);border-radius:2px;color:#79f8e5;font-size:10px;line-height:11px;background:rgba(39,240,192,.08)}.map .epidemic-village-label .village-card-body{display:flex;align-items:baseline;gap:3px;margin-top:4px;white-space:nowrap}.map .epidemic-village-label .village-card-body .metric{color:#c9fffbc2;font-size:10px;line-height:12px}.map .epidemic-village-label .village-card-body .number{color:#fff;font-size:20px;line-height:22px;font-weight:900;text-shadow:0 0 10px rgba(126,251,246,.7)}.map .epidemic-village-label .village-card-body .unit{color:#e8fcffcc;font-size:10px;line-height:12px;font-weight:700}.map .epidemic-village-label .village-card-foot{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:3px;color:#e2faff9e;font-size:10px;line-height:11px;white-space:nowrap}.map .trade-market-label,.map .trade-flow-label,.map .trade-national-label{color:#fff;will-change:transform;pointer-events:none}.map .trade-national-name{padding:2px 6px;border:1px solid rgba(72,231,255,.24);border-radius:3px;background:rgba(3,23,35,.42);color:#ffffff9e;font-size:10px;line-height:12px;font-weight:800;text-shadow:0 0 6px rgba(48,220,255,.42);white-space:nowrap;transform:translate(-50%,-50%)}.map .trade-market-card{position:relative;width:128px;padding:6px 8px;border:1px solid rgba(139,247,255,.52);border-radius:4px;background:linear-gradient(110deg,rgba(12,68,78,.58),rgba(4,24,34,.58)),rgba(5,20,30,.58);box-shadow:0 0 10px #30dcff24,inset 0 0 10px #30dcff0f;transform:translate(60%)}.map .trade-market-card:before{position:absolute;left:-14px;top:calc(50% - 1px);width:14px;height:1px;content:"";background:linear-gradient(90deg,rgba(255,221,117,0),rgba(255,221,117,.92))}.map .trade-market-card:after{position:absolute;left:-18px;top:calc(50% - 4px);width:8px;height:8px;border-radius:50%;content:"";background:#fff06a;box-shadow:0 0 12px #fff06ae6}.map .trade-market-card .market-title{overflow:hidden;color:#fff;font-size:11px;line-height:14px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.map .trade-market-card .market-total{display:flex;align-items:baseline;gap:4px;margin-top:3px}.map .trade-market-card .market-total span{color:#fff;font-size:15px;line-height:18px;font-weight:900;text-shadow:0 0 10px rgba(255,221,117,.6)}.map .trade-market-card .market-total em{color:#ffffffc2;font-size:10px;line-height:12px;font-style:normal}.map .trade-flow-card{position:relative;width:96px;padding:5px 7px;border:1px solid rgba(85,226,255,.32);border-radius:3px;background:linear-gradient(105deg,rgba(4,37,50,.58),rgba(3,17,27,.48)),rgba(1,17,27,.46);box-shadow:0 0 8px #30dcff1f,inset 0 0 8px #27f0c00d;transform:translate(60%)}.map .trade-flow-card.is-left{transform:translate(-66%)}.map .trade-flow-card.is-left:before{right:-10px;left:auto;background:linear-gradient(90deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-left:after{right:-14px;left:auto}.map .trade-flow-card.is-top{transform:translateY(-108%)}.map .trade-flow-card.is-top:before{left:50%;top:auto;bottom:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,.84),rgba(85,226,255,0))}.map .trade-flow-card.is-top:after{left:calc(50% - 3px);top:auto;bottom:-14px}.map .trade-flow-card.is-bottom{transform:translateY(82%)}.map .trade-flow-card.is-bottom:before{left:50%;top:-10px;width:1px;height:10px;background:linear-gradient(180deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card.is-bottom:after{left:calc(50% - 3px);top:-14px}.map .trade-flow-card:before{position:absolute;left:-10px;top:50%;width:10px;height:1px;content:"";background:linear-gradient(90deg,rgba(85,226,255,0),rgba(85,226,255,.84))}.map .trade-flow-card:after{position:absolute;left:-14px;top:calc(50% - 3px);width:6px;height:6px;border-radius:50%;content:"";background:#30dcff;box-shadow:0 0 10px #30dcffcc}.map .trade-flow-card .flow-head{display:flex;align-items:center;gap:6px;min-width:0}.map .trade-flow-card .flow-head span{flex:0 0 auto;color:#ffe076;font-size:10px;line-height:12px;font-weight:900}.map .trade-flow-card .flow-head strong{overflow:hidden;color:#fff;font-size:10px;line-height:13px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.map .trade-flow-card .flow-body{display:flex;align-items:baseline;gap:3px;margin-top:2px}.map .trade-flow-card .flow-body em{color:#fff;font-size:13px;line-height:15px;font-style:normal;font-weight:900;text-shadow:0 0 10px rgba(48,220,255,.55)}.map .trade-flow-card .flow-body b{color:#ffffffc2;font-size:10px;line-height:12px}.map .china-label{color:#fff;font-size:14px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap}.map .china-label .town-stat-label{flex-direction:column;align-items:center;gap:4px;min-width:74px;padding:5px 8px 4px;border-color:#7efbf64d;background:linear-gradient(180deg,rgba(4,33,46,.66),rgba(3,20,32,.56));box-shadow:0 0 10px #30dcff1f;text-align:center;transform:translateY(-50%)}.map .china-label .town-name-row{display:flex;align-items:center;justify-content:center;gap:6px;min-height:18px;line-height:18px}.map .china-label .town-name{color:#fff;font-size:13px;line-height:18px;font-weight:800}.map .china-label .town-rank{display:none;flex:0 0 auto;padding:1px 5px;border:1px solid rgba(126,251,246,.32);border-radius:2px;color:#7efbf6;font-size:10px;line-height:13px;font-weight:700;text-shadow:none;background:rgba(126,251,246,.1)}.map .china-label .town-stat-row{display:none;align-items:baseline;justify-content:center;gap:3px;min-height:18px;line-height:18px}.map .china-label .town-stat-metric{max-width:72px;overflow:hidden;color:#7efbf6e6;font-size:10px;line-height:12px;font-weight:700;text-overflow:ellipsis;text-shadow:none;white-space:nowrap}.map .china-label .town-stat-value{color:#fff;font-size:18px;line-height:18px;font-weight:800;text-shadow:0 0 10px rgba(126,251,246,.72)}.map .china-label .town-stat-unit{color:#e8fcffc2;font-size:10px;line-height:12px;font-weight:600}.map .china-label .town-stat-label.has-stat{min-width:108px}.map .china-label .town-stat-label.has-stat .town-rank,.map .china-label .town-stat-label.has-stat .town-stat-row{display:flex}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.yak-management{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c;height:100%;overscroll-behavior:none}.yak-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;background:transparent!important}.yak-map-scene>canvas{display:block;width:100%!important;height:100%!important}.yak-map-scene>div{width:100%!important;height:100%!important}.yak-map-scene .china-label .town-stat-label{transform:translateY(-50%) scale(.92)}.yak-ol-map-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.yak-management-ui{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;pointer-events:none}.yak-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 42%,rgba(1,9,15,.22) 74%,rgba(1,8,13,.58) 100%),linear-gradient(90deg,rgba(0,12,20,.36),transparent 24%,transparent 76%,rgba(0,12,20,.36)),linear-gradient(180deg,rgba(2,16,27,.02),rgba(2,13,22,.22))}.yak-map-scrim.is-ol-map{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 58%,rgba(1,9,15,.16) 82%,rgba(1,8,13,.42) 100%),linear-gradient(90deg,rgba(0,12,20,.24),transparent 22%,transparent 78%,rgba(0,12,20,.24)),linear-gradient(180deg,rgba(2,16,27,.01),rgba(2,13,22,.12))}.yak-left,.yak-right{position:absolute;top:128px;bottom:8px;z-index:6;width:398px;perspective-origin:50% 50%;pointer-events:all}.yak-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.yak-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.yak-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.yak-side-stack.is-left{transform:translateZ(0) rotateY(6deg);transform-origin:left center}.yak-side-stack.is-right{transform:translateZ(0) rotateY(-6deg);transform-origin:right center}.yak-side-card{flex:0 0 auto}.yak-side-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff;overflow:hidden}.trade-source-card .m-card-bd-content{top:38px;bottom:8px}.yak-chart{width:100%;height:100%;box-sizing:border-box}.forecast-trend-card,.structure-chart-card{position:relative;width:100%;height:100%}.breeding-health-card{display:grid;grid-template-rows:34px minmax(0,1fr);gap:9px;height:100%;padding:10px 13px;overflow:hidden;box-sizing:border-box}.breeding-health-head{display:flex;align-items:center;min-width:0;padding:0 12px;border-left:3px solid rgba(48,220,255,.72);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.12),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.12),rgba(48,220,255,.035));box-sizing:border-box}.breeding-health-head strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#fff;font-size:16px;line-height:20px;font-weight:900;text-shadow:0 1px 2px rgba(0,0,0,.62)}.breeding-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;min-height:0}.breeding-health-item{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:18px 14px 6px;align-content:center;gap:2px 6px;min-width:0;min-height:0;padding:7px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.13);background:linear-gradient(90deg,color-mix(in srgb,var(--health-color) 16%,transparent),rgba(5,27,41,.32)),rgba(3,25,40,.18);box-sizing:border-box}.breeding-health-item span,.breeding-health-item strong,.breeding-health-item em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.breeding-health-item span{color:#e5fdffd6;font-size:12px;line-height:15px;font-weight:800}.breeding-health-item strong{color:color-mix(in srgb,var(--health-color) 82%,#ffffff);font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:18px;font-weight:900;text-align:right}.breeding-health-item i{grid-column:1/3;position:relative;z-index:1;display:block;height:4px;overflow:hidden;background:rgba(48,220,255,.12)}.breeding-health-item i b{display:block;width:var(--health-width);height:100%;background:var(--health-color);box-shadow:0 0 5px color-mix(in srgb,var(--health-color) 34%,transparent)}.breeding-health-item em{grid-column:1/3;grid-row:2;color:color-mix(in srgb,var(--health-color) 74%,#ffffff);font-size:11px;line-height:13px;font-style:normal}.structure-ratio-card{display:grid;grid-template-columns:146px minmax(0,1fr);align-items:center;gap:10px;height:100%;overflow:hidden;padding:2px 10px 6px 8px;box-sizing:border-box}.structure-ratio-chart{position:relative;width:142px;height:132px;min-width:0}.structure-ratio-chart svg{width:100%;height:100%;overflow:visible}.structure-ratio-list{display:flex;flex-direction:column;justify-content:center;min-width:0;height:100%;gap:5px;overflow:hidden}.structure-ratio-row{position:relative;display:grid;grid-template-columns:11px minmax(0,1fr) 50px 16px;align-items:center;gap:6px;min-width:0;min-height:22px;height:23px;padding:0 5px 0 3px;overflow:hidden;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.055);color:#e1f9ffc2;font-size:10px;line-height:13px;box-sizing:border-box;transition:background .35s ease,border-color .35s ease}.structure-ratio-row:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--row-percent);background:linear-gradient(90deg,var(--row-color),rgba(48,220,255,0));opacity:.18;pointer-events:none}.structure-ratio-row i{position:relative;z-index:1;width:9px;height:9px;border:1px solid #30dcff;border-radius:50%;box-sizing:border-box;box-shadow:none}.structure-ratio-row span{position:relative;z-index:1;display:flex;align-items:baseline;gap:4px;min-width:0;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:15px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-ratio-row span small{flex:none;color:color-mix(in srgb,var(--row-color) 78%,rgba(255,255,255,.65));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;font-weight:800;line-height:12px}.structure-ratio-row strong{position:relative;z-index:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;font-weight:800;line-height:20px;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-ratio-row em{position:relative;z-index:1;color:#ffffff8a;font-size:10px;font-style:normal;white-space:nowrap}.structure-ratio-row.is-active{color:var(--row-color);border-color:#30dcff38;background:linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04))}.structure-rose-segment{opacity:.92;stroke-width:1.5;stroke-opacity:.5;transform-box:fill-box;transform-origin:center;transition:opacity .3s ease,filter .3s ease,transform .3s ease;filter:drop-shadow(0 2px 2px rgba(0,10,18,.34)) drop-shadow(0 0 3px rgba(48,220,255,.12))}.structure-rose-segment.is-active{opacity:1;transform:scale(1.035);filter:drop-shadow(0 3px 5px rgba(0,10,18,.42)) drop-shadow(0 0 5px rgba(48,220,255,.22))}.structure-rose-glow{fill:#30dcff12;stroke:#30dcff2e;stroke-width:1;filter:none}.structure-rose-hole{fill:#03121ef0;stroke:#e3fdff38;stroke-width:1.2}.structure-rose-center{fill:#e7feffdb;font-size:10px;font-weight:800;dominant-baseline:middle;pointer-events:none}.structure-rose-center.is-sub{fill:#e7feff8a;font-size:7px;font-weight:700}.structure-summary-card{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));align-content:center;gap:10px;height:100%;overflow:hidden;padding:15px 18px 14px;box-sizing:border-box}.structure-summary-row{position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) 58px;grid-template-rows:22px 14px;align-items:center;column-gap:10px;min-width:0;min-height:0;padding:2px 0;color:#e1f9ffb8}.structure-summary-row span{grid-row:1/3;display:inline-flex;min-width:0;align-items:center;gap:8px;overflow:hidden;color:#ebfdffe6;font-size:13px;line-height:17px;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.62);text-overflow:ellipsis;white-space:nowrap}.structure-summary-row i{width:9px;height:9px;flex:0 0 auto;border-radius:2px;background:var(--structure-color);box-shadow:none}.structure-summary-row strong{grid-column:3;grid-row:1;color:#fffffff0;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;line-height:15px;font-weight:800;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.62);white-space:nowrap}.structure-summary-row strong em{margin-left:3px;color:#e2fcffad;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.structure-summary-row b{position:relative;grid-column:2;grid-row:1/3;height:17px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.035) 0 1px,transparent 1px 18px),rgba(48,220,255,.05)}.structure-summary-row b em{display:block;width:var(--structure-width);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--structure-color) 20%,transparent),var(--structure-color));box-shadow:0 0 5px color-mix(in srgb,var(--structure-color) 28%,transparent)}.structure-summary-row small{grid-column:3;grid-row:2;color:color-mix(in srgb,var(--structure-color) 76%,rgba(255,255,255,.72));font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:10px;line-height:11px;font-weight:800;text-align:right;white-space:nowrap}.yak-data-status{position:absolute;left:12px;bottom:6px;z-index:2;max-width:calc(100% - 24px);padding:2px 8px;border:1px solid rgba(48,220,255,.24);border-radius:3px;color:#defaffbd;font-size:10px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.yak-data-status.is-warning{border-color:#8bf7ff47;color:#c9fbffdb;background:rgba(4,24,37,.62)}.forecast-kline-chart{padding-top:16px}.forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 6px #30dcff2e}.yak-map-loading{position:absolute;left:50%;top:50%;z-index:8;color:#dffaffa3;font-size:16px;transform:translate(-50%,-50%)}.yak-bottom-topic{position:absolute;left:50%;bottom:48px;z-index:8;transform:translate(-50%);pointer-events:all}.yak-map-layer-tools{position:absolute;right:458px;bottom:116px;z-index:8;width:248px;pointer-events:all}.yak-map-layer-tools .m-card{width:100%!important;background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.trade-year-switcher,.forecast-year-switcher,.epidemic-year-switcher{position:absolute;left:462px;top:218px;z-index:8;display:flex;width:78px;flex-direction:column;gap:8px;padding:10px 8px;border:1px solid rgba(139,247,255,.28);background:linear-gradient(180deg,rgba(9,42,55,.72),rgba(4,18,30,.82)),rgba(3,18,31,.62);box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d;pointer-events:all;transform:perspective(620px) rotateY(6deg);transform-origin:left center;box-sizing:border-box}.trade-year-switcher span,.forecast-year-switcher span,.epidemic-year-switcher span{color:#ffffffdb;font-size:12px;font-weight:700;line-height:14px;text-align:center;white-space:nowrap}.trade-year-switcher button,.forecast-year-switcher button,.epidemic-year-switcher button{width:100%;height:30px;border:1px solid rgba(255,255,255,.18);background:rgba(48,220,255,.08);color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;cursor:pointer;box-sizing:border-box}.trade-year-switcher button.active,.trade-year-switcher button:hover,.forecast-year-switcher button.active,.forecast-year-switcher button:hover,.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#8bf7ffb3;background:rgba(139,247,255,.18);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-year-switcher{border-color:#30dcff47;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.forecast-year-switcher button.active,.forecast-year-switcher button:hover{border-color:#30dcffb3;background:rgba(48,220,255,.16);color:#30dcff;box-shadow:0 0 7px #30dcff1f}.epidemic-year-switcher{border-color:#30dcff42;box-shadow:0 0 10px #30dcff14,inset 0 0 0 1px #ffffff0d}.epidemic-year-switcher button.active,.epidemic-year-switcher button:hover{border-color:#30dcffad;background:rgba(48,220,255,.16);color:#8bf7ff;box-shadow:0 0 7px #30dcff1f}.forecast-waterfall-card{display:grid;grid-template-rows:32px minmax(0,1fr);gap:8px;height:100%;padding:9px 13px 10px;overflow:hidden;box-sizing:border-box}.forecast-waterfall-head{display:flex;align-items:center;justify-content:space-between;min-width:0;padding:0 10px;border-left:3px solid rgba(48,220,255,.72);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-waterfall-head span,.forecast-waterfall-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.forecast-waterfall-head strong{color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:18px;font-weight:900;text-align:right}.forecast-waterfall-head strong.negative{color:#48cfff}.forecast-waterfall-head strong em{margin-left:2px;color:#e2fcff99;font-family:var(--screen-font-ui, "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif);font-size:10px;font-style:normal;font-weight:700}.forecast-waterfall-list{display:grid;grid-template-rows:repeat(5,minmax(0,1fr));gap:5px;min-height:0}.forecast-waterfall-row{display:grid;grid-template-columns:78px minmax(0,1fr) 76px;align-items:center;gap:8px;min-width:0;min-height:0}.forecast-waterfall-row span,.forecast-waterfall-row strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-waterfall-row span{color:#e2fcffc7;font-size:12px;line-height:14px;font-weight:800}.forecast-waterfall-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900;text-align:right}.forecast-waterfall-row i{position:relative;display:block;height:18px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 18px),rgba(48,220,255,.045);box-sizing:border-box}.forecast-waterfall-row i:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(226,252,255,.12);transform:translateY(-50%)}.forecast-waterfall-row i b{position:absolute;left:var(--waterfall-left);top:3px;width:var(--waterfall-width);height:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--waterfall-color) 22%,transparent),var(--waterfall-color));box-shadow:0 0 5px color-mix(in srgb,var(--waterfall-color) 34%,transparent)}.forecast-waterfall-row.is-anchor span,.forecast-waterfall-row.is-final span{color:#ffffffe6}.forecast-waterfall-row.is-anchor i b,.forecast-waterfall-row.is-final i b{top:3px;height:10px;border-radius:8px;background:var(--waterfall-color)}.forecast-waterfall-row.positive strong{color:#8bf7ff}.forecast-waterfall-row.negative strong{color:#48cfff}.forecast-waterfall-row.is-final strong{color:#fff}.estimate-summary-card,.forecast-summary-card{height:100%;padding:6px 14px 8px;box-sizing:border-box}.estimate-summary-card{display:grid;grid-template-rows:minmax(58px,.88fr) minmax(86px,1.12fr);row-gap:10px;padding:7px 14px 10px;overflow:hidden}.estimate-flow-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0}.estimate-flow-item{min-width:0;height:100%;padding:8px 10px 7px;border-left:2px solid rgba(48,220,255,.64);background:linear-gradient(90deg,rgba(48,220,255,.13),rgba(48,220,255,.025)),rgba(3,25,40,.18);box-sizing:border-box}.estimate-flow-item em,.estimate-flow-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-flow-item em{color:#dffaff99;font-style:normal;font-size:11px;line-height:14px}.estimate-flow-item strong{margin-top:5px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:20px;font-weight:900;line-height:24px}.estimate-flow-item small{margin-left:3px;color:#dffaff94;font-size:10px;font-weight:600}.estimate-flow-item.is-adjustment{border-left-color:#8bf7ffa3;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.025)),rgba(3,25,40,.18)}.estimate-flow-item.is-adjustment strong{color:#8bf7ff}.estimate-flow-item.is-adjustment strong.negative{color:#48cfff}.estimate-result-band{position:relative;min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;overflow:hidden;padding:10px 14px 9px;border:1px solid rgba(48,220,255,.18);border-left:3px solid rgba(48,220,255,.76);background:radial-gradient(circle at 18% 50%,rgba(48,220,255,.16),transparent 46%),linear-gradient(90deg,rgba(48,220,255,.18),rgba(48,220,255,.04)),rgba(3,25,40,.22);box-sizing:border-box}.estimate-result-band:after{content:"";position:absolute;right:-12px;bottom:-18px;width:118px;height:76px;pointer-events:none;background:radial-gradient(circle at center,rgba(48,220,255,.16),transparent 58%),linear-gradient(135deg,transparent 0 42%,rgba(48,220,255,.12) 43% 45%,transparent 46% 100%)}.estimate-result-band span,.estimate-result-band strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.estimate-result-band span{color:#dffaffb8;font-size:13px;line-height:16px}.estimate-result-band strong{position:relative;z-index:1;margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:38px;font-weight:900;line-height:42px}.estimate-result-band em{margin-left:5px;color:#dffaff9e;font-style:normal;font-size:12px}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:9px}.forecast-simple-grid span{min-width:0;height:38px;padding:5px 7px;border-left:2px solid rgba(48,220,255,.58);background:linear-gradient(90deg,rgba(48,220,255,.1),rgba(48,220,255,.02));box-sizing:border-box}.forecast-simple-grid em,.forecast-simple-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-simple-grid em{color:#dffaff8f;font-style:normal;font-size:10px;line-height:11px}.forecast-simple-grid strong{margin-top:3px;color:#30dcff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:900;line-height:15px}.forecast-simple-grid .positive{color:#8bf7ff}.forecast-simple-grid .negative{color:#48cfff}.forecast-summary-card{display:grid;grid-template-rows:minmax(84px,1fr) minmax(44px,.55fr);row-gap:9px;padding:8px 14px 10px;overflow:hidden}.forecast-result-row{display:grid;grid-template-columns:minmax(0,1fr) 98px;align-items:center;column-gap:8px;height:100%;min-height:0}.forecast-result-main{min-width:0;display:flex;height:100%;flex-direction:column;justify-content:space-between;padding:10px 12px;border-left:2px solid rgba(48,220,255,.7);background:radial-gradient(circle at 22% 50%,rgba(48,220,255,.16),transparent 48%),linear-gradient(90deg,rgba(48,220,255,.16),rgba(48,220,255,.035)),rgba(3,25,40,.18);box-sizing:border-box}.forecast-result-main span,.forecast-result-main strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-result-main span{color:#dffaffa8;font-size:13px;line-height:16px}.forecast-result-main strong{margin-top:0;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:35px;font-weight:900;line-height:39px}.forecast-result-main strong em{margin-left:4px;color:#dffaff9e;font-style:normal;font-size:11px}.forecast-change-badge{min-width:0;height:66px;padding:11px 9px 8px;border:1px solid rgba(139,247,255,.28);background:rgba(139,247,255,.06);box-sizing:border-box}.forecast-change-badge span,.forecast-change-badge strong{display:block;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.forecast-change-badge span{color:#dffaff8c;font-size:10px;line-height:11px}.forecast-change-badge strong{margin-top:2px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:14px;font-weight:900;line-height:16px}.forecast-change-badge strong em{margin-left:2px;color:#dffaff94;font-style:normal;font-size:10px}.forecast-change-badge.negative{border-color:#48cfff47;background:rgba(72,207,255,.06)}.forecast-change-badge.negative strong{color:#48cfff}.forecast-simple-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:0}.forecast-simple-grid span{height:100%;min-height:42px;padding:6px 8px}.forecast-simple-grid strong{margin-top:3px;font-size:15px;line-height:17px}.forecast-heat-list{display:flex;height:100%;flex-direction:column;gap:4px;padding:8px 13px 9px;box-sizing:border-box}.heat-row{position:relative;display:grid;grid-template-columns:70px minmax(0,1fr) 60px;align-items:center;gap:8px;min-height:0;flex:1 1 0;padding:0 8px;overflow:visible;border:1px solid rgba(48,220,255,.14);background:linear-gradient(90deg,rgba(48,220,255,.08),transparent 34%,rgba(36,246,196,.04)),rgba(2,18,30,.58);box-shadow:inset 0 0 0 1px #ffffff05,inset 0 0 12px #30dcff0a}.heat-row:before{content:"";position:absolute;left:78px;right:68px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(48,220,255,.24),transparent);transform:translateY(-50%)}.heat-row:after{content:"";position:absolute;left:0;top:6px;bottom:6px;width:2px;background:rgba(48,220,255,.82);box-shadow:none;opacity:.78}.heat-row span,.heat-row strong,.heat-row b{position:relative;z-index:1;white-space:nowrap}.heat-row span{color:#ecfdffe6;font-size:12px;line-height:14px;font-weight:900;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row b{display:block;height:11px;padding:2px;border:1px solid rgba(48,220,255,.22);background:linear-gradient(90deg,rgba(48,220,255,.08),rgba(48,220,255,.025)),rgba(0,14,24,.66);box-shadow:inset 0 0 10px #00000057,0 0 10px #30dcff14}.heat-row b i{position:relative;display:block;width:var(--heat-width);height:100%;min-width:8px;background:linear-gradient(90deg,rgba(255,255,255,.86),var(--heat-color) 16%,rgba(48,220,255,.72) 78%,rgba(255,255,255,.9)),linear-gradient(90deg,var(--heat-color-soft),transparent);box-shadow:0 0 5px #30dcff24;overflow:visible}.heat-row b i:after{content:"";position:absolute;right:-4px;top:50%;width:7px;height:7px;border-radius:50%;background:#ffffff;box-shadow:0 0 5px #ffffff52;transform:translateY(-50%)}.heat-row b i:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);opacity:.72}.heat-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;line-height:17px;font-weight:900;text-align:right;text-shadow:0 1px 2px rgba(0,0,0,.66)}.heat-row.is-negative{border-color:#48cfff2e}.epidemic-overview-chart-card{height:100%;padding:7px 9px 5px;box-sizing:border-box}.epidemic-overview-chart{width:100%;height:100%}.epidemic-chain-chart-card{height:100%;padding:7px 8px 5px;box-sizing:border-box}.epidemic-chain-chart{width:100%;height:100%}.epidemic-chain-card{height:100%;padding:9px 13px;box-sizing:border-box}.epidemic-chain-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;column-gap:8px}.epidemic-chain-row span{min-width:0;height:48px;padding:6px;border:1px solid rgba(48,220,255,.16);background:rgba(48,220,255,.05);box-sizing:border-box}.epidemic-chain-row em,.epidemic-chain-row strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-chain-row em{color:#dffaff8f;font-style:normal;font-size:10px}.epidemic-chain-row strong{margin-top:5px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900}.epidemic-chain-row i{color:#8bf7ffcc;font-style:normal;text-align:center}.epidemic-chain-note{margin:8px 0;padding:7px 9px;border-left:2px solid rgba(139,247,255,.76);background:rgba(139,247,255,.06)}.epidemic-chain-note span{display:block;color:#eafcffd6;font-size:11px;line-height:17px}.epidemic-chain-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.epidemic-chain-metrics span{min-width:0;display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 8px;border:1px solid rgba(48,220,255,.14);background:rgba(48,220,255,.04)}.epidemic-chain-metrics em{color:#dffaff94;font-style:normal;font-size:10px}.epidemic-chain-metrics strong{overflow:hidden;color:#fff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-card{display:grid;grid-template-columns:142px minmax(0,1fr);align-items:center;gap:8px;height:100%;padding:8px 12px 8px 10px;box-sizing:border-box}.epidemic-three-pie-visual{position:relative;width:136px;height:136px;min-width:0}.epidemic-three-pie{width:100%;height:100%}.epidemic-three-pie-center{position:absolute;left:0;top:0;display:flex;width:100%;height:100%;flex-direction:column;align-items:center;justify-content:center;color:#fff;text-align:center;text-shadow:0 0 10px rgba(0,0,0,.96);pointer-events:none}.epidemic-three-pie-center strong{overflow:hidden;max-width:84px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;line-height:22px;font-weight:900;text-overflow:ellipsis;white-space:nowrap;transform:translateY(-2px)}.epidemic-three-pie-center span{overflow:hidden;max-width:86px;color:#fffffff5;font-size:10px;line-height:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-legend{display:flex;min-width:0;height:100%;flex-direction:column;justify-content:center;gap:6px}.epidemic-three-pie-row{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;align-items:center;column-gap:5px;min-height:17px}.epidemic-three-pie-row i{width:8px;height:8px;border:2px solid #30dcff;border-radius:2px;box-sizing:border-box;background:rgba(3,20,31,.84)}.epidemic-three-pie-row span{overflow:hidden;color:#e2faffd1;font-size:10px;line-height:13px;text-overflow:ellipsis;white-space:nowrap}.epidemic-three-pie-row strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;line-height:13px;font-weight:800;white-space:nowrap}.epidemic-three-pie-row em{color:#dffaff8a;font-style:normal;font-size:10px;line-height:12px;white-space:nowrap}.epidemic-record-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.epidemic-record-table.is-double{gap:5px}.epidemic-record-table.is-full{gap:6px;padding:9px 10px 10px}.epidemic-record-toolbar{display:grid;grid-template-columns:118px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.epidemic-record-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-toolbar>div{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.epidemic-record-toolbar input,.epidemic-record-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.epidemic-record-toolbar input{padding:0 7px}.epidemic-record-toolbar input::placeholder{color:#ffffff94}.epidemic-record-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.epidemic-record-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.epidemic-record-header,.epidemic-record-rows button{display:grid;grid-template-columns:112px 56px 42px 54px 64px;column-gap:4px;align-items:center}.epidemic-record-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.epidemic-record-header span{color:#ffffffc7;font-size:10px}.epidemic-record-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.epidemic-record-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.epidemic-record-rows button:hover,.epidemic-record-rows button.active{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.epidemic-record-rows span,.epidemic-record-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.epidemic-record-rows strong{color:#8bf7ff;font-weight:700}.epidemic-record-table.is-full .epidemic-record-rows{gap:4px}.epidemic-record-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.epidemic-record-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.epidemic-record-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.epidemic-record-pager button:disabled{opacity:.36;cursor:not-allowed}.epidemic-empty{display:flex;height:100%;align-items:center;justify-content:center;color:#dffaff8f;font-size:12px}.epidemic-detail-head{display:flex;align-items:center;justify-content:space-between;height:28px;border-bottom:1px solid rgba(48,220,255,.14)}.epidemic-detail-head span{overflow:hidden;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:15px;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-head strong{color:#dffaffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;white-space:nowrap}.epidemic-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:8px}.epidemic-detail-grid span{min-width:0;height:34px;padding:4px 7px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.035);box-sizing:border-box}.epidemic-detail-grid em,.epidemic-detail-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-detail-grid em{color:#dffaff85;font-style:normal;font-size:10px;line-height:10px}.epidemic-detail-grid strong{margin-top:4px;color:#fff;font-size:11px;line-height:12px}.epidemic-detail-grid.is-modal{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:7px}.epidemic-detail-grid.is-modal span{height:39px;padding:5px 8px}.epidemic-detail-grid.is-modal .is-wide{grid-column:1/-1}.epidemic-ledger-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;background:rgba(0,8,14,.68);pointer-events:all}.epidemic-ledger-dialog{width:1260px;height:724px;padding:18px;border:1px solid rgba(139,247,255,.36);background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f;box-sizing:border-box}.epidemic-ledger-dialog-head{display:flex;align-items:center;justify-content:space-between;height:42px;border-bottom:1px solid rgba(48,220,255,.18)}.epidemic-ledger-dialog-head span{display:block;color:#fff;font-size:19px;font-weight:800}.epidemic-ledger-dialog-head strong{display:block;margin-top:3px;color:#ffffffdb;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-ledger-dialog-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-ledger-filters{display:grid;grid-template-columns:220px 130px 130px 132px 132px 66px 66px;gap:10px;align-items:center;margin:16px 0 14px}.epidemic-ledger-filters input,.epidemic-ledger-filters select,.epidemic-ledger-filters button{height:32px;min-width:0;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.045);color:#fff;font-size:12px;box-sizing:border-box}.epidemic-ledger-filters input::placeholder{color:#ffffff9e}.epidemic-ledger-filters select option{color:#dffcff;background:#061926}.epidemic-ledger-filters input,.epidemic-ledger-filters select{padding:0 9px}.epidemic-ledger-filters button{cursor:pointer;background:rgba(139,247,255,.13);border-color:#8bf7ff5c;color:#fff;font-weight:700}.epidemic-ledger-filters button.is-ghost{background:rgba(255,255,255,.06);border-color:#ffffff2e}.epidemic-ledger-workspace{display:grid;grid-template-columns:minmax(0,1fr) 376px;gap:14px;height:548px}.epidemic-ledger-list{display:flex;flex-direction:column;gap:4px;min-width:0;padding:8px;overflow:hidden;border:1px solid rgba(139,247,255,.16);background:rgba(255,255,255,.035);box-shadow:inset 0 0 24px #8bf7ff08;box-sizing:border-box}.epidemic-ledger-table-head,.epidemic-ledger-list button{display:grid;grid-template-columns:minmax(126px,1.5fr) minmax(76px,.9fr) 72px minmax(96px,1fr) 72px 82px 42px;align-items:center;column-gap:8px}.epidemic-ledger-table-head{height:34px;padding:0 12px;border:0;border-bottom:1px solid rgba(139,247,255,.14);border-radius:0;background:rgba(255,255,255,.07)}.epidemic-ledger-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;font-weight:700;letter-spacing:0;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button{position:relative;width:100%;height:30px;padding:0 10px 0 12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.045),rgba(48,220,255,.018)),rgba(255,255,255,.025);color:#ffffffe6;cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease,color .18s ease}.epidemic-ledger-list button:before{position:absolute;left:0;top:6px;width:2px;height:18px;content:"";opacity:0;background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.epidemic-ledger-list button.active,.epidemic-ledger-list button:hover{border-color:#30dcff5c;background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05)),rgba(255,255,255,.045);color:#fff}.epidemic-ledger-list button.active:before,.epidemic-ledger-list button:hover:before{opacity:1}.epidemic-ledger-list button span,.epidemic-ledger-list button strong{overflow:hidden;font-size:10px;line-height:12px;color:#fff;text-overflow:ellipsis;white-space:nowrap}.epidemic-ledger-list button strong{color:#c9fbff;font-weight:800}.epidemic-ledger-detail{display:flex;flex-direction:column;min-width:0;min-height:0;padding:14px;border:1px solid rgba(48,220,255,.15);background:rgba(48,220,255,.04);box-sizing:border-box}.epidemic-detail-scroll{flex:1 1 0;min-height:0;margin-top:10px;padding-right:4px;overflow-y:auto}.epidemic-detail-section+.epidemic-detail-section{margin-top:10px}.epidemic-detail-section-title{display:flex;align-items:center;height:18px;color:#8bf7ff;font-size:12px;font-weight:700;line-height:18px}.epidemic-modal-photo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:7px;overflow:hidden}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb{position:relative;width:100%;height:96px;padding:0;overflow:hidden;border:1px solid rgba(48,220,255,.24);background:rgba(48,220,255,.04);cursor:zoom-in;box-sizing:border-box}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover{border-color:#8bf7ff94;box-shadow:0 0 7px #8bf7ff1f}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:after{position:absolute;right:0;bottom:0;left:0;height:18px;content:"";background:linear-gradient(180deg,rgba(0,12,20,0),rgba(0,12,20,.92) 52%,rgba(0,12,20,.98));pointer-events:none}.epidemic-modal-photo-strip img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}.epidemic-modal-photo-strip .epidemic-modal-photo-thumb:hover img{transform:scale(1.03)}.epidemic-modal-photo-strip span{grid-column:1/-1;display:flex;height:96px;align-items:center;justify-content:center;border:1px solid rgba(48,220,255,.12);color:#dffaff8a;font-size:11px}.epidemic-image-preview-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:48;display:flex;align-items:center;justify-content:center;padding:46px;background:rgba(0,8,14,.78);pointer-events:all;box-sizing:border-box}.epidemic-image-preview-dialog{display:flex;width:min(920px,78vw);max-height:78vh;flex-direction:column;border:1px solid rgba(139,247,255,.34);background:linear-gradient(180deg,rgba(9,38,50,.97),rgba(2,15,26,.99)),rgba(2,17,28,.98);box-shadow:0 0 34px #8bf7ff24,inset 0 0 0 1px #ffffff0e}.epidemic-image-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;height:52px;padding:0 16px 0 18px;border-bottom:1px solid rgba(48,220,255,.16);box-sizing:border-box}.epidemic-image-preview-head div{min-width:0}.epidemic-image-preview-head span,.epidemic-image-preview-head strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.epidemic-image-preview-head span{color:#fff;font-size:16px;font-weight:800}.epidemic-image-preview-head strong{margin-top:3px;color:#8bf7ffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px}.epidemic-image-preview-head button{width:68px;height:28px;border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.08);color:#fff;cursor:pointer}.epidemic-image-preview-body{display:flex;min-height:0;flex:1;align-items:center;justify-content:center;padding:16px;background:rgba(0,10,17,.42)}.epidemic-image-preview-frame{position:relative;display:flex;max-width:100%;max-height:calc(78vh - 84px);align-items:center;justify-content:center;overflow:hidden}.epidemic-image-preview-frame img{display:block;max-width:100%;max-height:calc(78vh - 84px);object-fit:contain}.epidemic-image-preview-frame:after{position:absolute;right:0;bottom:0;left:0;height:38px;content:"";background:linear-gradient(180deg,rgba(0,10,17,0),rgba(0,10,17,.96) 58%,rgba(0,10,17,.99));pointer-events:none}.epidemic-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;height:42px}.epidemic-ledger-pager span{color:#ffffffb8;font-size:12px}.epidemic-ledger-pager button{height:26px;padding:0 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.055);color:#fff;cursor:pointer}.epidemic-ledger-pager button:disabled{opacity:.38;cursor:not-allowed}.trade-ledger-dialog{width:1260px;height:724px;border-color:#8bf7ff5c;background:linear-gradient(180deg,rgba(12,38,48,.97),rgba(4,17,28,.99)),rgba(3,18,31,.98);box-shadow:0 0 34px #8bf7ff29,inset 0 0 0 1px #ffffff0f}.trade-ledger-dialog .epidemic-ledger-dialog-head strong{color:#ffffffdb}.trade-ledger-dialog .epidemic-ledger-dialog-head button{border-color:#ffffff47;background:rgba(255,255,255,.08);color:#fff}.trade-ledger-filters{grid-template-columns:260px 150px 142px 142px 70px 70px}.trade-ledger-filters input,.trade-ledger-filters select,.trade-ledger-filters button{color:#fff}.trade-ledger-filters button{color:#fff;font-weight:700}.trade-ledger-workspace{grid-template-columns:minmax(0,1fr) 376px}.trade-ledger-modal-table-head,.trade-ledger-modal-list button{display:grid;grid-template-columns:128px 84px 92px 58px 88px 90px 102px 68px;align-items:center;column-gap:10px}.trade-ledger-modal-table-head{height:34px;padding:0 12px;border-bottom:1px solid rgba(139,247,255,.14);background:rgba(255,255,255,.07)}.trade-ledger-modal-table-head span{overflow:hidden;color:#ffffffd1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-modal-list{border-color:#30dcff29;background:rgba(255,255,255,.035)}.trade-ledger-modal-list button{height:34px;color:#ffffffe6}.trade-ledger-modal-list button.active,.trade-ledger-modal-list button:hover{background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.05));color:#fff}.trade-ledger-modal-list button span,.trade-ledger-modal-list button strong{color:#fff}.trade-ledger-modal-list button strong{color:#c9fbff}.trade-ledger-detail{display:flex;flex-direction:column;padding:0;overflow:hidden;border-color:#30dcff3d;background:linear-gradient(180deg,rgba(8,42,54,.84),rgba(3,19,30,.92)),radial-gradient(circle at 10% 0,rgba(48,220,255,.12),transparent 38%),rgba(3,25,40,.48);box-shadow:inset 0 0 22px #30dcff0e,inset 0 0 0 1px #ffffff09}.trade-ledger-detail .trade-detail-head{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-height:76px;padding:15px 16px 13px;border-bottom:1px solid rgba(48,220,255,.18);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(48,220,255,.035)),rgba(3,26,38,.62);box-sizing:border-box}.trade-ledger-detail .trade-detail-head:before{position:absolute;left:0;top:16px;width:3px;height:44px;content:"";background:var(--screen-icon-primary, #30dcff);box-shadow:0 0 8px var(--screen-icon-glow, rgba(48, 220, 255, .22))}.trade-ledger-detail .trade-detail-head div{min-width:0}.trade-ledger-detail .trade-detail-head span,.trade-ledger-detail .trade-detail-head em{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-detail .trade-detail-head span{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:21px;font-weight:800;line-height:24px}.trade-ledger-detail .trade-detail-head em{margin-top:6px;color:#c9fbff;font-size:12px;font-style:normal;font-weight:800;line-height:16px}.trade-ledger-detail .trade-detail-head strong{padding:5px 9px;border:1px solid rgba(48,220,255,.18);background:rgba(5,27,38,.58);color:#edfdffd1;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;font-weight:800;white-space:nowrap}.epidemic-ledger-record-detail .trade-detail-head em{color:#8bf7ff}.epidemic-ledger-record-detail .epidemic-detail-flat-grid{padding-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid{flex:0 0 auto;align-content:start;grid-template-columns:66px minmax(0,1fr) 66px minmax(0,1fr);gap:0;margin:0;padding:14px 16px 0;overflow:hidden;border:1px solid rgba(48,220,255,.1);border-bottom:0}.epidemic-detail-grid.is-modal.trade-detail-grid span{min-width:0;height:auto;padding:0;border:0;background:transparent;box-shadow:none}.epidemic-detail-grid.is-modal.trade-detail-grid:before{display:none}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide){display:contents}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) em,.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide) strong,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide em,.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide strong{display:flex;min-width:0;height:30px;align-items:center;padding:0 8px;border-bottom:1px solid rgba(48,220,255,.1);box-sizing:border-box}.epidemic-detail-grid.is-modal.trade-detail-grid em{justify-content:flex-end;color:#cdeff6a3;font-size:10px;font-style:normal;line-height:14px;text-align:right;background:rgba(139,247,255,.055);border-right:1px solid rgba(48,220,255,.085)}.epidemic-detail-grid.is-modal.trade-detail-grid em:after{content:":"}.epidemic-detail-grid.is-modal.trade-detail-grid strong{min-width:0;margin-top:0;overflow:hidden;color:#fff;font-size:13px;line-height:16px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(255,255,255,.03)}.epidemic-detail-grid.is-modal.trade-detail-grid span:not(.is-wide):nth-child(odd) strong{border-right:1px solid rgba(48,220,255,.065)}.epidemic-detail-grid.is-modal.trade-detail-grid .is-wide{display:grid;grid-column:1/-1;grid-template-columns:66px minmax(0,1fr)}.epidemic-detail-photos{min-height:0;margin:12px 16px 16px;padding-top:10px;border-top:1px solid rgba(48,220,255,.12)}.epidemic-detail-photo-title{height:18px;color:#8bf7ff;font-size:12px;font-weight:800;line-height:18px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}.epidemic-ledger-record-detail .epidemic-modal-photo-strip .epidemic-modal-photo-thumb{height:76px;border-color:#30dcff38;border-radius:2px;background:rgba(4,28,41,.62)}.trade-detail-locate{width:calc(100% - 32px);height:36px;margin:auto 16px 16px;border:1px solid rgba(48,220,255,.34);background:linear-gradient(90deg,rgba(48,220,255,.14),rgba(139,247,255,.08)),rgba(4,28,41,.74);color:#fff;font-size:13px;font-weight:800;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}.trade-detail-locate:hover:not(:disabled){border-color:#8bf7ff85;background:linear-gradient(90deg,rgba(139,247,255,.16),rgba(48,220,255,.11)),rgba(8,36,48,.84);box-shadow:0 0 7px #8bf7ff1a}.trade-detail-locate:disabled{opacity:.38;cursor:not-allowed}.trade-overview-card{display:grid;grid-template-rows:minmax(0,1fr) 46px;row-gap:10px;height:100%;padding:14px 13px 10px;box-sizing:border-box}.trade-main-metric{display:flex;min-width:0;flex-direction:column;justify-content:center}.trade-main-metric span,.trade-main-metric strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-main-metric span{color:#ffffffd6;font-size:12px;line-height:14px}.trade-main-metric strong{margin-top:3px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:27px;font-weight:900;line-height:29px}.trade-main-metric strong em{margin-left:5px;color:#ffffffd1;font-style:normal;font-size:12px}.trade-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.trade-metric-grid span{min-width:0;padding:5px 7px;border-left:2px solid rgba(139,247,255,.62);background:linear-gradient(90deg,rgba(139,247,255,.11),rgba(48,220,255,.03));box-sizing:border-box}.trade-metric-grid em,.trade-metric-grid strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-metric-grid em{color:#ffffffc7;font-style:normal;font-size:10px;line-height:11px}.trade-metric-grid strong{margin-top:4px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;line-height:15px;font-weight:900}.trade-risk-card{display:grid;grid-template-rows:30px minmax(0,1fr);gap:5px;height:100%;padding:9px 12px 10px;overflow:hidden;box-sizing:border-box}.trade-risk-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:0 9px;border-left:3px solid rgba(139,247,255,.78);background:linear-gradient(90deg,rgba(139,247,255,.14),rgba(48,220,255,.025)),rgba(3,25,40,.2);box-sizing:border-box}.trade-risk-head span,.trade-risk-head strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-head span{color:#e2fcffc7;font-size:12px;line-height:16px;font-weight:800}.trade-risk-head strong{flex:0 0 auto;color:#8bf7ff;font-size:12px;line-height:16px;font-weight:900;text-align:right}.trade-risk-list{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:4px;min-height:0}.trade-risk-row{position:relative;display:grid;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:7px;min-width:0;min-height:0;padding:3px 8px 3px 10px;overflow:hidden;border:1px solid rgba(48,220,255,.11);background:linear-gradient(90deg,color-mix(in srgb,var(--risk-color) 12%,transparent),rgba(48,220,255,.02)),rgba(4,24,37,.2);box-sizing:border-box}.trade-risk-row:before{content:"";position:absolute;left:0;top:50%;width:2px;height:22px;background:rgba(48,220,255,.78);box-shadow:none;transform:translateY(-50%)}.trade-risk-row i{position:relative;z-index:1;width:8px;height:8px;border-radius:50%;background:var(--risk-color);box-shadow:none}.trade-risk-row span{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;min-width:0;gap:8px}.trade-risk-row em,.trade-risk-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-risk-row em{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0;color:#ffffffe6;font-size:11px;line-height:14px;font-style:normal;font-weight:900}.trade-risk-row em b{flex:0 0 auto;min-width:28px;height:15px;padding:0 5px;border:1px solid color-mix(in srgb,var(--risk-color) 52%,transparent);border-radius:1px;color:var(--risk-color);font-size:10px;line-height:13px;font-weight:900;text-align:center;background:color-mix(in srgb,var(--risk-color) 13%,rgba(3,25,40,.62));box-sizing:border-box}.trade-risk-row small{flex:1 1 auto;min-width:0;color:#e2fcffc2;font-size:10px;line-height:12px;text-align:right}.trade-risk-row.is-high{border-color:#48cfff3d}.trade-risk-row.is-high small{color:#c9fbffe0}.trade-risk-row.is-watch small{color:#8bf7ffd1}.trade-cert-card{display:grid;grid-template-columns:minmax(0,1fr) 108px;gap:8px;height:100%;padding:9px 12px;box-sizing:border-box}.trade-cert-main{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:8px}.trade-cert-main span{min-width:0;padding:7px 8px;border:1px solid rgba(48,220,255,.12);background:rgba(48,220,255,.045)}.trade-cert-main em,.trade-cert-main strong,.trade-cert-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-cert-main em{color:#ffffffc7;font-style:normal;font-size:10px}.trade-cert-main strong{margin-top:4px;color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:18px;line-height:20px;font-weight:900}.trade-cert-main strong b{margin-left:3px;color:#ffffffd1;font-size:10px;font-weight:500}.trade-cert-main small{margin-top:3px;color:#ffffffd1;font-size:10px}.trade-cert-chart{width:108px;height:100%}.trade-dest-list{display:flex;height:100%;flex-direction:column;gap:3px;padding:7px 10px 8px;box-sizing:border-box}.trade-dest-row{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr) 66px;align-items:center;min-height:0;flex:1 1 0;column-gap:6px;overflow:hidden;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035)}.trade-dest-row:before{content:"";position:absolute;inset:0 auto 0 0;width:var(--trade-ratio);background:linear-gradient(90deg,rgba(139,247,255,.22),rgba(48,220,255,.08))}.trade-dest-row span,.trade-dest-row strong,.trade-dest-row em{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trade-dest-row span{padding-left:7px;color:#8bf7ff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;font-weight:900}.trade-dest-row strong{color:#fff;font-size:11px;line-height:13px}.trade-dest-row em{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-style:normal;font-size:11px;line-height:13px;text-align:right}.trade-ledger-table{display:flex;height:100%;flex-direction:column;gap:5px;padding:7px 9px 8px;box-sizing:border-box}.trade-ledger-toolbar{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;column-gap:7px;height:29px}.trade-ledger-toolbar>span{overflow:hidden;color:#ffffffe6;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-toolbar>div{display:grid;grid-template-columns:minmax(0,1fr) 44px 62px;gap:5px}.trade-ledger-toolbar input,.trade-ledger-toolbar button{height:25px;min-width:0;border:1px solid rgba(48,220,255,.16);background:rgba(3,25,40,.62);color:#fff;font-size:10px;box-sizing:border-box}.trade-ledger-toolbar input{padding:0 7px}.trade-ledger-toolbar input::placeholder{color:#ffffff94}.trade-ledger-toolbar button{border-color:#8bf7ff6b;background:rgba(139,247,255,.12);color:#fff;cursor:pointer}.trade-ledger-toolbar button.is-more{border-color:#30dcff57;background:rgba(48,220,255,.12)}.trade-ledger-header,.trade-ledger-rows button{display:grid;grid-template-columns:98px 56px 39px 38px 34px 64px;column-gap:4px;align-items:center}.trade-ledger-header{height:24px;padding:0 6px;border:1px solid rgba(48,220,255,.1);background:rgba(48,220,255,.06);box-sizing:border-box}.trade-ledger-header span{color:#ffffffc7;font-size:10px}.trade-ledger-rows{display:flex;min-height:0;flex:1;flex-direction:column;gap:3px;overflow:hidden}.trade-ledger-rows button{min-height:0;flex:1 1 0;padding:0 6px;border:1px solid rgba(48,220,255,.08);background:rgba(48,220,255,.035);color:#ffffffe0;cursor:pointer;text-align:left}.trade-ledger-rows button:hover{border-color:#8bf7ff5c;background:linear-gradient(90deg,rgba(139,247,255,.12),rgba(48,220,255,.04));color:#fff}.trade-ledger-rows span,.trade-ledger-rows strong{color:#fff;overflow:hidden;font-size:10px;line-height:12px;text-overflow:ellipsis;white-space:nowrap}.trade-ledger-rows span:first-child{line-height:12px;white-space:normal;word-break:break-all;text-overflow:clip}.trade-ledger-rows strong{color:#8bf7ff;font-weight:700}.trade-ledger-pager{display:flex;align-items:center;justify-content:flex-end;gap:7px;height:24px}.trade-ledger-pager span{margin-right:auto;color:#ffffffd6;font-size:10px}.trade-ledger-pager button{height:22px;padding:0 8px;border:1px solid rgba(48,220,255,.18);background:rgba(48,220,255,.07);color:#fff;font-size:10px;cursor:pointer}.trade-ledger-pager button:disabled{opacity:.36;cursor:not-allowed} diff --git a/docs/assets/index-c45f03eb-1784045078568.js b/docs/assets/index-2fb6adee-1784074877048.js similarity index 98% rename from docs/assets/index-c45f03eb-1784045078568.js rename to docs/assets/index-2fb6adee-1784074877048.js index a2b7a44..bb8705c 100644 --- a/docs/assets/index-c45f03eb-1784045078568.js +++ b/docs/assets/index-2fb6adee-1784074877048.js @@ -1 +1 @@ -var Je=Object.defineProperty,We=Object.defineProperties;var Ue=Object.getOwnPropertyDescriptors;var re=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var ie=(n,i,u)=>i in n?Je(n,i,{enumerable:!0,configurable:!0,writable:!0,value:u}):n[i]=u,B=(n,i)=>{for(var u in i||(i={}))Ye.call(i,u)&&ie(n,u,i[u]);if(re)for(var u of re(i))Ge.call(i,u)&&ie(n,u,i[u]);return n},j=(n,i)=>We(n,Ue(i));var E=(n,i,u)=>new Promise((h,x)=>{var g=_=>{try{C(u.next(_))}catch(b){x(b)}},W=_=>{try{C(u.throw(_))}catch(b){x(b)}},C=_=>_.done?h(_.value):Promise.resolve(_.value).then(g,W);C((u=u.apply(n,i)).next())});import{_ as ue}from"./index-27149dbd-1784045078568.js";import{r as Qe,n as Xe}from"./index-6a8ef8cf-1784045078568.js";import{a as Ze,n as ea,d as aa,f as Z,c as O,s as na,p as oe}from"./data-5c83c66b-1784045078568.js";import{g as o,q as la,h as ta,w as ce,o as y,c as f,a as e,b as ve,x as de,F as P,y as z,n as S,t as r,J as T,u as K,d as N}from"./index-1784045078568.js";import"./index-e9f36657-1784045078568.js";const ee=ia("/jsyApi"),sa="/openApi";function ra(n,i){return/^https?:\/\//.test(i)?i:`${n}${i.startsWith("/")?i:`/${i}`}`}function ia(n){const i=String(n||"/jsyApi").replace(/\/+$/,"");return i.endsWith("/api")?i:`${i}/api`}function ua(n){if((n==null?void 0:n.success)===!1||(n==null?void 0:n.code)!==void 0&&![0,200,"0","200"].includes(n.code)){const u=new Error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"接口请求失败");throw u.code=n==null?void 0:n.code,u}return Xe(n)}function J(n,i,u,h={}){return Qe(ra(n,i),{params:u,timeout:h.timeout||16e3}).then(ua)}function oa(n){return Array.isArray(n)?n:Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.list)?n.list:Array.isArray(n==null?void 0:n.data)?n.data:[]}function ca(n){return Array.isArray(n)?n.length>0:!n||typeof n!="object"?n!=null&&n!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(u=>n[u]!==void 0&&n[u]!==null&&n[u]!=="")}function va(){return E(this,arguments,function*({areaCode:n}={}){const i={areaCode:n},u=[()=>J(ee,"/ai/livestockBalance",i,{timeout:18e3}),()=>J(sa,"/ai/balance/advice",i,{timeout:18e3})];let h;for(const x of u)try{const g=yield x();if(ca(g))return g}catch(g){h=g}throw h||new Error("草畜平衡接口不可用")})}function da(n){return E(this,null,function*(){const i=[()=>J(ee,"/area/children",{areaCode:n},{timeout:12e3}),()=>J(ee,"/map/areaCode",{areaCode:n},{timeout:12e3})];let u,h=!1;for(const x of i)try{const g=oa(yield x());if(g.length)return g;h=!0}catch(g){u=g}if(h)return[];throw u||new Error("区划接口不可用")})}const ya={class:"grass-livestock-balance"},fa={class:"balance-selector"},ga={class:"balance-scope-tabs"},ma=["onClick"],ba={class:"balance-target-list"},pa=["title","onClick"],ka={class:"balance-action-box"},ha=["disabled"],wa={key:0,class:"balance-running"},_a={class:"balance-running-head"},Ra={class:"balance-core-inner"},Aa={class:"balance-running-title"},Ca={class:"balance-progress-line"},$a={class:"balance-live-process"},xa={key:1,class:"balance-waiting"},Sa={class:"balance-wait-core"},Na={class:"balance-core-ring is-empty"},Ba={class:"balance-core-inner"},Ma={class:"balance-preflight"},Ea={key:2,class:"balance-analysis"},Pa={class:"balance-dashboard"},za={class:"balance-object-block"},Ta={class:"balance-core"},qa={class:"balance-core-inner"},Ia={class:"balance-compare"},Va={class:"balance-bar-row"},Da={class:"balance-bar-row is-livestock"},Ha={class:"balance-detail"},ja={class:"balance-process"},Ka={class:"balance-section-title"},La={class:"balance-process-track"},Fa={class:"balance-decision"},Oa={class:"balance-section-title"},Ja={class:"balance-conclusion"},Wa={class:"balance-advice-list"},Ua={class:"balance-overload-ranking"},Ya={class:"balance-rank-list"},Ga=326,Qa=1310,Xa=128,Za=8,en=6200,un={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(n,{emit:i}){const u=n,h=i,x=N(typeof window=="undefined"?1080:window.innerHeight),g=o(()=>{const a=Math.max(1080,Number(x.value)||1080);return Math.max(944,a-Xa-Za)}),W=o(()=>g.value),C=N("county"),_=N(""),b=N("idle"),R=N(0),$=N(0),A=N(""),q=N({}),U=N([]);let M=!1,Y=0,L=null,D=0,I=null;const F=o(()=>[...Ze,...U.value].map(a=>ea(q.value[a.key],a))),ye=o(()=>F.value.filter(a=>a.type==="county")),G=o(()=>F.value.filter(a=>a.type==="town")),fe=o(()=>F.value.filter(a=>a.type==="village")),ge=o(()=>C.value==="town"?G.value:C.value==="village"?fe.value:ye.value),d=o(()=>F.value.find(a=>a.key===_.value)||null),k=o(()=>!!d.value),p=o(()=>b.value==="running"),m=o(()=>k.value&&b.value==="done"),c=o(()=>aa(d.value||{})),ae=o(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),me=o(()=>{var a;return((a=ae.value.find(l=>l.key===C.value))==null?void 0:a.name)||"县"}),be=o(()=>d.value?d.value.areaCode?`行政区划 ${d.value.areaCode}`:d.value.township||"核算对象":"等待选择核算对象"),pe=o(()=>A.value?A.value:k.value?m.value?"分析已完成":p.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),ke=o(()=>m.value?"草畜平衡分析舱":"草畜平衡分析"),he=o(()=>k.value?p.value?"分析中":"待开始":"待选择"),we=o(()=>k.value?p.value?`${d.value.name} 正在分析`:`${d.value.name} 待开始分析`:"先选择一个核算对象"),_e=o(()=>A.value?A.value:k.value?p.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),Re=o(()=>{const a=c.value;return a.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${a.delta>0?"超载量":"承载余量"} ${Z(Math.abs(a.delta))},承载利用率 ${O(a.usageRate)}。`}),Ae=o(()=>c.value.risk.key==="healthy"?"保持监测":c.value.risk.key==="watch"?"基本平衡":c.value.risk.key==="light"?"关注调控":c.value.delta===null?"按结果表判定":c.value.delta>0?"需调控载畜量":"承载能力可覆盖"),Ce=o(()=>c.value.risk.key==="healthy"||c.value.risk.key==="watch"?"保持监测":c.value.risk.key==="light"?"关注调控":c.value.delta===null?"结果表口径":c.value.delta>0?"需要调控":"保持监测"),$e=o(()=>{const a=Math.max(0,Math.min(130,Number(c.value.usageRate)||0));return`${Math.round(a/130*360)}deg`}),xe=o(()=>[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核定草地范围、面积和产草量等级,形成生产力基础口径。"},{key:"forage",index:"02",name:"可利用草量折算",desc:"扣除不可食草量、生态保留量和利用限制,折算可供放牧利用草量。"},{key:"livestock",index:"03",name:"载畜量折算",desc:"依据实际存栏和草畜平衡标准,统一形成载畜压力口径。"},{key:"balance",index:"04",name:"平衡判定",desc:"对比草地承载能力与载畜压力,输出平衡状态和调控方案。"}]),V=o(()=>{const a=c.value;return[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核算草地面积与产草能力",pending:"等待草地参数",plan:"核定草地范围、面积和产草量等级"},{key:"forage",index:"02",name:"可利用草量折算",desc:"折算可供放牧利用草量",pending:"等待草量折算",plan:"扣除不可食草量、生态保留量和利用限制"},{key:"livestock",index:"03",name:"载畜量折算",desc:"形成实际载畜压力口径",pending:"等待载畜折算",plan:"依据实际存栏和草畜平衡标准进行折算"},{key:"balance",index:"04",name:"平衡判定",desc:"生成结论与调控方向",pending:"等待平衡判定",plan:["healthy","watch"].includes(a.risk.key)?"判定平衡状态并生成监测方案":"判定超载风险并生成调控方案"}]}),Q=o(()=>V.value[Math.min($.value,V.value.length-1)]||V.value[0]),Se=o(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:m.value?"草地生产力核算":k.value?"等待核算":"等待选择",state:k.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:m.value?"可利用草量折算":"分析后折算",state:p.value?"active":m.value?"done":k.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:m.value?"载畜压力折算":"等待折算",state:p.value?"active":m.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:m.value?c.value.risk.label:"等待判定",state:m.value?"done":"disabled"}]),Ne=o(()=>m.value?na(d.value,c.value.risk):[]),ne=o(()=>G.value.filter(a=>Number.isFinite(Number(a.overloadRate))).slice().sort((a,l)=>Number(l.overloadRate)-Number(a.overloadRate)).slice(0,10)),Be=o(()=>Math.max(1,...ne.value.map(a=>Math.max(0,Number(a.overloadRate)||0)))),Me=o(()=>ne.value.map((a,l)=>j(B({},a),{rank:l+1})));function Ee(a){const l=Math.max(0,Number(a==null?void 0:a.overloadRate)||0);return Math.max(6,Math.min(100,l/Be.value*100))}function Pe(a){const l=Number(a==null?void 0:a.overloadRate);return Number.isFinite(l)?l>=2.5?"is-alert":l>=2?"is-warning":"is-stable":"is-empty"}function X(){x.value=typeof window=="undefined"?1080:window.innerHeight}la(()=>{X(),window.addEventListener("resize",X),h("loading-progress",{progress:100}),h("map-ready"),Ve()}),ta(()=>{M=!0,window.removeEventListener("resize",X),Y+=1,D+=1,H()}),ce(()=>{var a;return(a=d.value)==null?void 0:a.key},()=>{b.value="idle",R.value=0,$.value=0,A.value="",I=null,H()}),ce(()=>u.active,a=>{a||!p.value||(b.value="idle",R.value=0,$.value=0,A.value="",I=null,H())});function ze(a){C.value=a,_.value="",b.value="idle",A.value=""}function Te(a){a&&(C.value=["county","town","village"].includes(a.type)?a.type:"county",_.value=a.key,b.value="idle",A.value="")}function qe(){if(!u.active||!d.value||p.value)return;b.value="running",R.value=0,$.value=0,A.value="",H();const a=Date.now();let l=!1;const t=Ie().catch(s=>(l=!0,console.warn("[grassLivestockBalance] fallback balance row used",s),A.value="接口暂不可用,已使用本地兜底口径",d.value));I=t,L=window.setInterval(()=>{if(M)return;const s=I===t?92:100;R.value=Math.min(s,R.value+2),$.value=Math.min(V.value.length-1,Math.floor(R.value/25))},140),t.finally(()=>E(this,null,function*(){var v;const s=en-(Date.now()-a);if(s>0&&(yield new Promise(w=>window.setTimeout(w,s))),!(M||b.value!=="running"||I!==t)){if(I=null,H(),!d.value){R.value=0,$.value=0,b.value="idle";return}!l&&!q.value[(v=d.value)==null?void 0:v.key]&&(A.value="未查询到接口结果,已使用本地兜底口径"),R.value=100,$.value=V.value.length-1,b.value="done"}}))}function Ie(){return E(this,null,function*(){const a=d.value;if(!a)throw new Error("请先选择具体核算对象");if(q.value[a.key])return q.value[a.key];const l=++Y,t=yield va({areaCode:a.areaCode});if(M||l!==Y)return null;if(!t||typeof t!="object"||!Object.keys(t).length)throw new Error("未查询到该对象的草畜平衡结果");return q.value=j(B({},q.value),{[a.key]:t}),t})}function Ve(){return E(this,null,function*(){const a=++D,l=G.value.filter(t=>t==null?void 0:t.areaCode).map(t=>B({},t));if(l.length)try{const t=yield Promise.all(l.map(s=>E(this,null,function*(){try{const v=yield da(s.areaCode);return M||a!==D?[]:De(v,s)}catch(v){return[]}})));if(M||a!==D)return;U.value=t.flat()}catch(t){if(M||a!==D)return;U.value=[]}})}function De(a=[],l={}){const s=(Array.isArray(a)?a:[]).filter(v=>{const w=le(v),se=te(v);return!!(w||se)}).map((v,w)=>Ke(v,w,l)).filter(Boolean);return He(s,l)}function He(a=[],l={}){const t=new Map;return a.forEach(s=>{const v=je(s,l),w=t.get(v);if(!w){t.set(v,j(B({},s),{duplicateSources:[s.source].filter(Boolean)}));return}const Oe=!w.areaCode&&s.areaCode?B(B({},w),s):w;t.set(v,j(B({},Oe),{duplicateSources:[...w.duplicateSources||[],s.source].filter(Boolean)}))}),[...t.values()]}function je(a={},l={}){const t=String(a.name||"").replace(/\s+/g,"").trim();return`${String(a.township||l.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${t||a.areaCode||"unknown-village"}`}function Ke(a={},l=0,t={}){const s=le(a),v=te(a)||(s?`村级区划${s}`:"");return!s&&!v?null:{key:`village-${s||`${t.key||t.name}-${v}-${l}`}`,type:"village",name:v,areaCode:s,township:t.name,source:a,year:"2026"}}function le(a={}){return String(oe(a,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function te(a={}){return String(oe(a,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function H(){L&&(window.clearInterval(L),L=null)}function Le(a){return m.value||p.value&&a<=$.value}function Fe(a){return a<$.value||m.value?"done":a===$.value&&p.value?"active":"pending"}return(a,l)=>(y(),f("div",ya,[l[15]||(l[15]=e("div",{class:"balance-backdrop","aria-hidden":"true"},[e("div",{class:"balance-orbit is-left"}),e("div",{class:"balance-orbit is-right"}),e("div",{class:"balance-energy-band"})],-1)),e("div",{class:"balance-screen",style:T({"--balance-card-height":`${g.value}px`})},[ve(ue,{class:"balance-card balance-target-card",title:"核算对象",width:Ga,height:W.value},{default:de(()=>{var t;return[e("div",fa,[e("div",ga,[(y(!0),f(P,null,z(ae.value,s=>(y(),f("button",{key:s.key,type:"button",class:S({active:C.value===s.key}),onClick:v=>ze(s.key)},r(s.name),11,ma))),128))]),e("div",ba,[(y(!0),f(P,null,z(ge.value,s=>{var v;return y(),f("button",{key:s.key,type:"button",class:S({active:s.key===((v=d.value)==null?void 0:v.key)}),title:s.name,onClick:w=>Te(s)},[e("span",null,r(s.name),1)],10,pa)}),128))]),e("div",ka,[l[0]||(l[0]=e("span",null,"当前对象",-1)),e("strong",null,r(((t=d.value)==null?void 0:t.name)||"未选择"),1),e("small",null,r(pe.value),1),e("button",{type:"button",disabled:!k.value||p.value,onClick:qe},r(p.value?"分析中...":m.value?"重新分析":"开始分析"),9,ha)])])]}),_:1},8,["height"]),ve(ue,{class:"balance-card balance-sheet-card",title:ke.value,width:Qa,height:g.value},{default:de(()=>[e("div",{class:S(["balance-sheet",{"is-ready":m.value,"is-running":p.value}])},[l[14]||(l[14]=e("div",{class:"balance-field-lines","aria-hidden":"true"},[e("i"),e("i"),e("i")],-1)),p.value?(y(),f("section",wa,[e("div",_a,[e("div",{class:"balance-core-ring is-running",style:T({"--usage-angle":`${R.value*3.6}deg`})},[e("div",Ra,[l[1]||(l[1]=e("span",null,"分析进度",-1)),e("strong",null,r(R.value)+"%",1),e("small",null,r(Q.value.name),1)])],4),e("div",Aa,[e("span",null,r(d.value.name),1),e("strong",null,r(Q.value.desc),1),e("small",null,r(Q.value.plan),1),e("div",Ca,[e("i",{style:T({width:`${R.value}%`})},null,4)])])]),e("div",$a,[(y(!0),f(P,null,z(V.value,(t,s)=>(y(),f("div",{key:t.key,class:S(["balance-live-step",`is-${Fe(s)}`])},[e("span",null,r(t.index),1),e("div",null,[e("strong",null,r(t.name),1),e("p",null,r(Le(s)?t.plan:t.pending),1)])],2))),128))])])):m.value?(y(),f("section",Ea,[e("div",Pa,[e("div",za,[e("span",null,r(me.value)+"核算对象",1),e("strong",null,r(d.value.name),1),e("small",null,r(be.value),1)]),e("div",Ta,[e("div",{class:"balance-core-ring",style:T({"--usage-angle":$e.value})},[e("div",qa,[l[5]||(l[5]=e("span",null,"承载利用率",-1)),e("strong",null,r(K(O)(c.value.usageRate)),1),e("small",null,"超载率 "+r(K(O)(c.value.overloadRate)),1)])],4),l[6]||(l[6]=e("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),e("div",{class:S(["balance-verdict-card",`is-${c.value.risk.key}`])},[l[7]||(l[7]=e("span",null,"分析结论",-1)),e("strong",null,r(c.value.risk.label),1),e("small",null,r(Ae.value),1)],2)]),e("div",Ia,[e("div",Va,[l[8]||(l[8]=e("span",null,"理论承载力",-1)),e("div",null,[e("i",{style:T({width:`${c.value.bearingPercent}%`})},null,4)]),e("strong",null,r(K(Z)(c.value.bearing)),1)]),e("div",Da,[l[9]||(l[9]=e("span",null,"实际载畜量",-1)),e("div",null,[e("i",{style:T({width:`${c.value.livestockPercent}%`})},null,4)]),e("strong",null,r(K(Z)(c.value.livestock)),1)])]),e("div",Ha,[e("div",ja,[e("div",Ka,[l[10]||(l[10]=e("span",null,"分析过程",-1)),e("small",null,r(d.value.year||"当前年度"),1)]),e("div",La,[(y(!0),f(P,null,z(Se.value,t=>(y(),f("span",{key:`track-${t.key}`,class:S(`is-${t.state}`)},r(t.name),3))),128))]),(y(!0),f(P,null,z(xe.value,t=>(y(),f("div",{key:t.key,class:"balance-formula-row"},[e("span",null,r(t.index),1),e("div",null,[e("strong",null,r(t.name),1),e("p",null,r(t.desc),1)])]))),128))]),e("div",Fa,[e("div",Oa,[l[11]||(l[11]=e("span",null,"结论与建议",-1)),e("small",null,r(Ce.value),1)]),e("div",Ja,[e("strong",null,r(c.value.risk.description),1),e("p",null,r(Re.value),1)]),e("div",Wa,[(y(!0),f(P,null,z(Ne.value,(t,s)=>(y(),f("div",{key:`${t}-${s}`,class:"balance-advice-item"},[e("span",null,r(s+1),1),e("p",null,r(t),1)]))),128))])]),e("div",Ua,[l[13]||(l[13]=e("div",{class:"balance-section-title"},[e("span",null,"超载率排行"),e("small",null,"乡镇 Top10")],-1)),e("div",Ya,[(y(!0),f(P,null,z(Me.value,t=>(y(),f("div",{key:`overload-${t.key||t.name}`,class:S(["balance-rank-row",Pe(t)]),style:T({"--rank-progress":`${Ee(t)}%`})},[e("span",null,r(t.rank),1),e("strong",null,r(t.name),1),l[12]||(l[12]=e("div",null,[e("i")],-1)),e("em",null,r(K(O)(t.overloadRate)),1)],6))),128))])])])])):(y(),f("section",xa,[e("div",Sa,[e("div",Na,[e("div",Ba,[e("span",null,r(he.value),1),e("strong",null,r(k.value?d.value.name:"草畜平衡"),1),e("small",null,r(k.value?"待执行模型分析":"等待核算对象"),1)])]),e("h2",null,r(we.value),1),e("p",null,r(_e.value),1)]),e("div",Ma,[e("span",{class:S({active:k.value})},"对象锁定",2),l[2]||(l[2]=e("i",null,null,-1)),e("span",{class:S({active:k.value})},"等待启动分析",2),l[3]||(l[3]=e("i",null,null,-1)),l[4]||(l[4]=e("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{un as default}; +var Je=Object.defineProperty,We=Object.defineProperties;var Ue=Object.getOwnPropertyDescriptors;var re=Object.getOwnPropertySymbols;var Ye=Object.prototype.hasOwnProperty,Ge=Object.prototype.propertyIsEnumerable;var ie=(n,i,u)=>i in n?Je(n,i,{enumerable:!0,configurable:!0,writable:!0,value:u}):n[i]=u,B=(n,i)=>{for(var u in i||(i={}))Ye.call(i,u)&&ie(n,u,i[u]);if(re)for(var u of re(i))Ge.call(i,u)&&ie(n,u,i[u]);return n},j=(n,i)=>We(n,Ue(i));var E=(n,i,u)=>new Promise((h,x)=>{var g=_=>{try{C(u.next(_))}catch(b){x(b)}},W=_=>{try{C(u.throw(_))}catch(b){x(b)}},C=_=>_.done?h(_.value):Promise.resolve(_.value).then(g,W);C((u=u.apply(n,i)).next())});import{_ as ue}from"./index-1f5d6021-1784074877048.js";import{r as Qe,n as Xe}from"./index-bc047bb3-1784074877048.js";import{a as Ze,n as ea,d as aa,f as Z,c as O,s as na,p as oe}from"./data-5c83c66b-1784074877048.js";import{g as o,q as la,h as ta,w as ce,o as y,c as f,a as e,b as ve,x as de,F as P,y as z,n as S,t as r,J as T,u as K,d as N}from"./index-1784074877048.js";import"./index-e9f36657-1784074877048.js";const ee=ia("/jsyApi"),sa="/openApi";function ra(n,i){return/^https?:\/\//.test(i)?i:`${n}${i.startsWith("/")?i:`/${i}`}`}function ia(n){const i=String(n||"/jsyApi").replace(/\/+$/,"");return i.endsWith("/api")?i:`${i}/api`}function ua(n){if((n==null?void 0:n.success)===!1||(n==null?void 0:n.code)!==void 0&&![0,200,"0","200"].includes(n.code)){const u=new Error((n==null?void 0:n.msg)||(n==null?void 0:n.message)||"接口请求失败");throw u.code=n==null?void 0:n.code,u}return Xe(n)}function J(n,i,u,h={}){return Qe(ra(n,i),{params:u,timeout:h.timeout||16e3}).then(ua)}function oa(n){return Array.isArray(n)?n:Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.list)?n.list:Array.isArray(n==null?void 0:n.data)?n.data:[]}function ca(n){return Array.isArray(n)?n.length>0:!n||typeof n!="object"?n!=null&&n!=="":["areaRange","area_range","acreage","grasslandArea","grassland_area","arearange","area","yakNumber","yak_number","yaknumber","number","yakCount","yak_count","livestockCount","livestock_count","bearingCapacity","bearing_capacity","bearingcapacity","capacity","theoryCapacity","livestockCapacity","livestock_capacity","livestockcapacity","carryingCapacity","actualCapacity","overloadRate","overload_rate","overloadrate","rate","level","conclusion","advice","balanceAdvice","balance_advice"].some(u=>n[u]!==void 0&&n[u]!==null&&n[u]!=="")}function va(){return E(this,arguments,function*({areaCode:n}={}){const i={areaCode:n},u=[()=>J(ee,"/ai/livestockBalance",i,{timeout:18e3}),()=>J(sa,"/ai/balance/advice",i,{timeout:18e3})];let h;for(const x of u)try{const g=yield x();if(ca(g))return g}catch(g){h=g}throw h||new Error("草畜平衡接口不可用")})}function da(n){return E(this,null,function*(){const i=[()=>J(ee,"/area/children",{areaCode:n},{timeout:12e3}),()=>J(ee,"/map/areaCode",{areaCode:n},{timeout:12e3})];let u,h=!1;for(const x of i)try{const g=oa(yield x());if(g.length)return g;h=!0}catch(g){u=g}if(h)return[];throw u||new Error("区划接口不可用")})}const ya={class:"grass-livestock-balance"},fa={class:"balance-selector"},ga={class:"balance-scope-tabs"},ma=["onClick"],ba={class:"balance-target-list"},pa=["title","onClick"],ka={class:"balance-action-box"},ha=["disabled"],wa={key:0,class:"balance-running"},_a={class:"balance-running-head"},Ra={class:"balance-core-inner"},Aa={class:"balance-running-title"},Ca={class:"balance-progress-line"},$a={class:"balance-live-process"},xa={key:1,class:"balance-waiting"},Sa={class:"balance-wait-core"},Na={class:"balance-core-ring is-empty"},Ba={class:"balance-core-inner"},Ma={class:"balance-preflight"},Ea={key:2,class:"balance-analysis"},Pa={class:"balance-dashboard"},za={class:"balance-object-block"},Ta={class:"balance-core"},qa={class:"balance-core-inner"},Ia={class:"balance-compare"},Va={class:"balance-bar-row"},Da={class:"balance-bar-row is-livestock"},Ha={class:"balance-detail"},ja={class:"balance-process"},Ka={class:"balance-section-title"},La={class:"balance-process-track"},Fa={class:"balance-decision"},Oa={class:"balance-section-title"},Ja={class:"balance-conclusion"},Wa={class:"balance-advice-list"},Ua={class:"balance-overload-ranking"},Ya={class:"balance-rank-list"},Ga=326,Qa=1310,Xa=128,Za=8,en=6200,un={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["loading-progress","map-ready"],setup(n,{emit:i}){const u=n,h=i,x=N(typeof window=="undefined"?1080:window.innerHeight),g=o(()=>{const a=Math.max(1080,Number(x.value)||1080);return Math.max(944,a-Xa-Za)}),W=o(()=>g.value),C=N("county"),_=N(""),b=N("idle"),R=N(0),$=N(0),A=N(""),q=N({}),U=N([]);let M=!1,Y=0,L=null,D=0,I=null;const F=o(()=>[...Ze,...U.value].map(a=>ea(q.value[a.key],a))),ye=o(()=>F.value.filter(a=>a.type==="county")),G=o(()=>F.value.filter(a=>a.type==="town")),fe=o(()=>F.value.filter(a=>a.type==="village")),ge=o(()=>C.value==="town"?G.value:C.value==="village"?fe.value:ye.value),d=o(()=>F.value.find(a=>a.key===_.value)||null),k=o(()=>!!d.value),p=o(()=>b.value==="running"),m=o(()=>k.value&&b.value==="done"),c=o(()=>aa(d.value||{})),ae=o(()=>[{key:"county",name:"县"},{key:"town",name:"镇"},{key:"village",name:"村"}]),me=o(()=>{var a;return((a=ae.value.find(l=>l.key===C.value))==null?void 0:a.name)||"县"}),be=o(()=>d.value?d.value.areaCode?`行政区划 ${d.value.areaCode}`:d.value.township||"核算对象":"等待选择核算对象"),pe=o(()=>A.value?A.value:k.value?m.value?"分析已完成":p.value?"正在执行核算":"已选择,待开始分析":"请先选择具体对象"),ke=o(()=>m.value?"草畜平衡分析舱":"草畜平衡分析"),he=o(()=>k.value?p.value?"分析中":"待开始":"待选择"),we=o(()=>k.value?p.value?`${d.value.name} 正在分析`:`${d.value.name} 待开始分析`:"先选择一个核算对象"),_e=o(()=>A.value?A.value:k.value?p.value?"正在读取草畜平衡结果,核对承载力、载畜量和超载率。":"点击左侧开始分析后,再展示结果、分析过程、结论和建议。":"选择县、镇或村后,系统才会进入草地承载力核算。"),Re=o(()=>{const a=c.value;return a.delta===null?"根据草畜平衡结果表返回的承载力、载畜量和超载率生成判定。":`${a.delta>0?"超载量":"承载余量"} ${Z(Math.abs(a.delta))},承载利用率 ${O(a.usageRate)}。`}),Ae=o(()=>c.value.risk.key==="healthy"?"保持监测":c.value.risk.key==="watch"?"基本平衡":c.value.risk.key==="light"?"关注调控":c.value.delta===null?"按结果表判定":c.value.delta>0?"需调控载畜量":"承载能力可覆盖"),Ce=o(()=>c.value.risk.key==="healthy"||c.value.risk.key==="watch"?"保持监测":c.value.risk.key==="light"?"关注调控":c.value.delta===null?"结果表口径":c.value.delta>0?"需要调控":"保持监测"),$e=o(()=>{const a=Math.max(0,Math.min(130,Number(c.value.usageRate)||0));return`${Math.round(a/130*360)}deg`}),xe=o(()=>[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核定草地范围、面积和产草量等级,形成生产力基础口径。"},{key:"forage",index:"02",name:"可利用草量折算",desc:"扣除不可食草量、生态保留量和利用限制,折算可供放牧利用草量。"},{key:"livestock",index:"03",name:"载畜量折算",desc:"依据实际存栏和草畜平衡标准,统一形成载畜压力口径。"},{key:"balance",index:"04",name:"平衡判定",desc:"对比草地承载能力与载畜压力,输出平衡状态和调控方案。"}]),V=o(()=>{const a=c.value;return[{key:"productivity",index:"01",name:"草地生产力核算",desc:"核算草地面积与产草能力",pending:"等待草地参数",plan:"核定草地范围、面积和产草量等级"},{key:"forage",index:"02",name:"可利用草量折算",desc:"折算可供放牧利用草量",pending:"等待草量折算",plan:"扣除不可食草量、生态保留量和利用限制"},{key:"livestock",index:"03",name:"载畜量折算",desc:"形成实际载畜压力口径",pending:"等待载畜折算",plan:"依据实际存栏和草畜平衡标准进行折算"},{key:"balance",index:"04",name:"平衡判定",desc:"生成结论与调控方向",pending:"等待平衡判定",plan:["healthy","watch"].includes(a.risk.key)?"判定平衡状态并生成监测方案":"判定超载风险并生成调控方案"}]}),Q=o(()=>V.value[Math.min($.value,V.value.length-1)]||V.value[0]),Se=o(()=>[{key:"productivity",index:"01",name:"生产力核算",desc:m.value?"草地生产力核算":k.value?"等待核算":"等待选择",state:k.value?"done":"active"},{key:"forage",index:"02",name:"草量折算",desc:m.value?"可利用草量折算":"分析后折算",state:p.value?"active":m.value?"done":k.value?"pending":"disabled"},{key:"livestock",index:"03",name:"载畜折算",desc:m.value?"载畜压力折算":"等待折算",state:p.value?"active":m.value?"done":"disabled"},{key:"balance",index:"04",name:"平衡判定",desc:m.value?c.value.risk.label:"等待判定",state:m.value?"done":"disabled"}]),Ne=o(()=>m.value?na(d.value,c.value.risk):[]),ne=o(()=>G.value.filter(a=>Number.isFinite(Number(a.overloadRate))).slice().sort((a,l)=>Number(l.overloadRate)-Number(a.overloadRate)).slice(0,10)),Be=o(()=>Math.max(1,...ne.value.map(a=>Math.max(0,Number(a.overloadRate)||0)))),Me=o(()=>ne.value.map((a,l)=>j(B({},a),{rank:l+1})));function Ee(a){const l=Math.max(0,Number(a==null?void 0:a.overloadRate)||0);return Math.max(6,Math.min(100,l/Be.value*100))}function Pe(a){const l=Number(a==null?void 0:a.overloadRate);return Number.isFinite(l)?l>=2.5?"is-alert":l>=2?"is-warning":"is-stable":"is-empty"}function X(){x.value=typeof window=="undefined"?1080:window.innerHeight}la(()=>{X(),window.addEventListener("resize",X),h("loading-progress",{progress:100}),h("map-ready"),Ve()}),ta(()=>{M=!0,window.removeEventListener("resize",X),Y+=1,D+=1,H()}),ce(()=>{var a;return(a=d.value)==null?void 0:a.key},()=>{b.value="idle",R.value=0,$.value=0,A.value="",I=null,H()}),ce(()=>u.active,a=>{a||!p.value||(b.value="idle",R.value=0,$.value=0,A.value="",I=null,H())});function ze(a){C.value=a,_.value="",b.value="idle",A.value=""}function Te(a){a&&(C.value=["county","town","village"].includes(a.type)?a.type:"county",_.value=a.key,b.value="idle",A.value="")}function qe(){if(!u.active||!d.value||p.value)return;b.value="running",R.value=0,$.value=0,A.value="",H();const a=Date.now();let l=!1;const t=Ie().catch(s=>(l=!0,console.warn("[grassLivestockBalance] fallback balance row used",s),A.value="接口暂不可用,已使用本地兜底口径",d.value));I=t,L=window.setInterval(()=>{if(M)return;const s=I===t?92:100;R.value=Math.min(s,R.value+2),$.value=Math.min(V.value.length-1,Math.floor(R.value/25))},140),t.finally(()=>E(this,null,function*(){var v;const s=en-(Date.now()-a);if(s>0&&(yield new Promise(w=>window.setTimeout(w,s))),!(M||b.value!=="running"||I!==t)){if(I=null,H(),!d.value){R.value=0,$.value=0,b.value="idle";return}!l&&!q.value[(v=d.value)==null?void 0:v.key]&&(A.value="未查询到接口结果,已使用本地兜底口径"),R.value=100,$.value=V.value.length-1,b.value="done"}}))}function Ie(){return E(this,null,function*(){const a=d.value;if(!a)throw new Error("请先选择具体核算对象");if(q.value[a.key])return q.value[a.key];const l=++Y,t=yield va({areaCode:a.areaCode});if(M||l!==Y)return null;if(!t||typeof t!="object"||!Object.keys(t).length)throw new Error("未查询到该对象的草畜平衡结果");return q.value=j(B({},q.value),{[a.key]:t}),t})}function Ve(){return E(this,null,function*(){const a=++D,l=G.value.filter(t=>t==null?void 0:t.areaCode).map(t=>B({},t));if(l.length)try{const t=yield Promise.all(l.map(s=>E(this,null,function*(){try{const v=yield da(s.areaCode);return M||a!==D?[]:De(v,s)}catch(v){return[]}})));if(M||a!==D)return;U.value=t.flat()}catch(t){if(M||a!==D)return;U.value=[]}})}function De(a=[],l={}){const s=(Array.isArray(a)?a:[]).filter(v=>{const w=le(v),se=te(v);return!!(w||se)}).map((v,w)=>Ke(v,w,l)).filter(Boolean);return He(s,l)}function He(a=[],l={}){const t=new Map;return a.forEach(s=>{const v=je(s,l),w=t.get(v);if(!w){t.set(v,j(B({},s),{duplicateSources:[s.source].filter(Boolean)}));return}const Oe=!w.areaCode&&s.areaCode?B(B({},w),s):w;t.set(v,j(B({},Oe),{duplicateSources:[...w.duplicateSources||[],s.source].filter(Boolean)}))}),[...t.values()]}function je(a={},l={}){const t=String(a.name||"").replace(/\s+/g,"").trim();return`${String(a.township||l.name||"").replace(/\s+/g,"").trim()||"unknown-town"}-${t||a.areaCode||"unknown-village"}`}function Ke(a={},l=0,t={}){const s=le(a),v=te(a)||(s?`村级区划${s}`:"");return!s&&!v?null:{key:`village-${s||`${t.key||t.name}-${v}-${l}`}`,type:"village",name:v,areaCode:s,township:t.name,source:a,year:"2026"}}function le(a={}){return String(oe(a,["areaCode","area_code","areacode","code","value","id","areaId","area_id"],"")||"").trim()}function te(a={}){return String(oe(a,["areaName","area_name","areaname","name","label","zoneName","villageName","village_name"],"")||"").trim()}function H(){L&&(window.clearInterval(L),L=null)}function Le(a){return m.value||p.value&&a<=$.value}function Fe(a){return a<$.value||m.value?"done":a===$.value&&p.value?"active":"pending"}return(a,l)=>(y(),f("div",ya,[l[15]||(l[15]=e("div",{class:"balance-backdrop","aria-hidden":"true"},[e("div",{class:"balance-orbit is-left"}),e("div",{class:"balance-orbit is-right"}),e("div",{class:"balance-energy-band"})],-1)),e("div",{class:"balance-screen",style:T({"--balance-card-height":`${g.value}px`})},[ve(ue,{class:"balance-card balance-target-card",title:"核算对象",width:Ga,height:W.value},{default:de(()=>{var t;return[e("div",fa,[e("div",ga,[(y(!0),f(P,null,z(ae.value,s=>(y(),f("button",{key:s.key,type:"button",class:S({active:C.value===s.key}),onClick:v=>ze(s.key)},r(s.name),11,ma))),128))]),e("div",ba,[(y(!0),f(P,null,z(ge.value,s=>{var v;return y(),f("button",{key:s.key,type:"button",class:S({active:s.key===((v=d.value)==null?void 0:v.key)}),title:s.name,onClick:w=>Te(s)},[e("span",null,r(s.name),1)],10,pa)}),128))]),e("div",ka,[l[0]||(l[0]=e("span",null,"当前对象",-1)),e("strong",null,r(((t=d.value)==null?void 0:t.name)||"未选择"),1),e("small",null,r(pe.value),1),e("button",{type:"button",disabled:!k.value||p.value,onClick:qe},r(p.value?"分析中...":m.value?"重新分析":"开始分析"),9,ha)])])]}),_:1},8,["height"]),ve(ue,{class:"balance-card balance-sheet-card",title:ke.value,width:Qa,height:g.value},{default:de(()=>[e("div",{class:S(["balance-sheet",{"is-ready":m.value,"is-running":p.value}])},[l[14]||(l[14]=e("div",{class:"balance-field-lines","aria-hidden":"true"},[e("i"),e("i"),e("i")],-1)),p.value?(y(),f("section",wa,[e("div",_a,[e("div",{class:"balance-core-ring is-running",style:T({"--usage-angle":`${R.value*3.6}deg`})},[e("div",Ra,[l[1]||(l[1]=e("span",null,"分析进度",-1)),e("strong",null,r(R.value)+"%",1),e("small",null,r(Q.value.name),1)])],4),e("div",Aa,[e("span",null,r(d.value.name),1),e("strong",null,r(Q.value.desc),1),e("small",null,r(Q.value.plan),1),e("div",Ca,[e("i",{style:T({width:`${R.value}%`})},null,4)])])]),e("div",$a,[(y(!0),f(P,null,z(V.value,(t,s)=>(y(),f("div",{key:t.key,class:S(["balance-live-step",`is-${Fe(s)}`])},[e("span",null,r(t.index),1),e("div",null,[e("strong",null,r(t.name),1),e("p",null,r(Le(s)?t.plan:t.pending),1)])],2))),128))])])):m.value?(y(),f("section",Ea,[e("div",Pa,[e("div",za,[e("span",null,r(me.value)+"核算对象",1),e("strong",null,r(d.value.name),1),e("small",null,r(be.value),1)]),e("div",Ta,[e("div",{class:"balance-core-ring",style:T({"--usage-angle":$e.value})},[e("div",qa,[l[5]||(l[5]=e("span",null,"承载利用率",-1)),e("strong",null,r(K(O)(c.value.usageRate)),1),e("small",null,"超载率 "+r(K(O)(c.value.overloadRate)),1)])],4),l[6]||(l[6]=e("div",{class:"balance-core-caption"},"草地承载力模型",-1))]),e("div",{class:S(["balance-verdict-card",`is-${c.value.risk.key}`])},[l[7]||(l[7]=e("span",null,"分析结论",-1)),e("strong",null,r(c.value.risk.label),1),e("small",null,r(Ae.value),1)],2)]),e("div",Ia,[e("div",Va,[l[8]||(l[8]=e("span",null,"理论承载力",-1)),e("div",null,[e("i",{style:T({width:`${c.value.bearingPercent}%`})},null,4)]),e("strong",null,r(K(Z)(c.value.bearing)),1)]),e("div",Da,[l[9]||(l[9]=e("span",null,"实际载畜量",-1)),e("div",null,[e("i",{style:T({width:`${c.value.livestockPercent}%`})},null,4)]),e("strong",null,r(K(Z)(c.value.livestock)),1)])]),e("div",Ha,[e("div",ja,[e("div",Ka,[l[10]||(l[10]=e("span",null,"分析过程",-1)),e("small",null,r(d.value.year||"当前年度"),1)]),e("div",La,[(y(!0),f(P,null,z(Se.value,t=>(y(),f("span",{key:`track-${t.key}`,class:S(`is-${t.state}`)},r(t.name),3))),128))]),(y(!0),f(P,null,z(xe.value,t=>(y(),f("div",{key:t.key,class:"balance-formula-row"},[e("span",null,r(t.index),1),e("div",null,[e("strong",null,r(t.name),1),e("p",null,r(t.desc),1)])]))),128))]),e("div",Fa,[e("div",Oa,[l[11]||(l[11]=e("span",null,"结论与建议",-1)),e("small",null,r(Ce.value),1)]),e("div",Ja,[e("strong",null,r(c.value.risk.description),1),e("p",null,r(Re.value),1)]),e("div",Wa,[(y(!0),f(P,null,z(Ne.value,(t,s)=>(y(),f("div",{key:`${t}-${s}`,class:"balance-advice-item"},[e("span",null,r(s+1),1),e("p",null,r(t),1)]))),128))])]),e("div",Ua,[l[13]||(l[13]=e("div",{class:"balance-section-title"},[e("span",null,"超载率排行"),e("small",null,"乡镇 Top10")],-1)),e("div",Ya,[(y(!0),f(P,null,z(Me.value,t=>(y(),f("div",{key:`overload-${t.key||t.name}`,class:S(["balance-rank-row",Pe(t)]),style:T({"--rank-progress":`${Ee(t)}%`})},[e("span",null,r(t.rank),1),e("strong",null,r(t.name),1),l[12]||(l[12]=e("div",null,[e("i")],-1)),e("em",null,r(K(O)(t.overloadRate)),1)],6))),128))])])])])):(y(),f("section",xa,[e("div",Sa,[e("div",Na,[e("div",Ba,[e("span",null,r(he.value),1),e("strong",null,r(k.value?d.value.name:"草畜平衡"),1),e("small",null,r(k.value?"待执行模型分析":"等待核算对象"),1)])]),e("h2",null,r(we.value),1),e("p",null,r(_e.value),1)]),e("div",Ma,[e("span",{class:S({active:k.value})},"对象锁定",2),l[2]||(l[2]=e("i",null,null,-1)),e("span",{class:S({active:k.value})},"等待启动分析",2),l[3]||(l[3]=e("i",null,null,-1)),l[4]||(l[4]=e("span",null,"生成过程与结论",-1))])]))],2)]),_:1},8,["title","height"])],4)]))}};export{un as default}; diff --git a/docs/assets/index-3536e98d-1784074877048.js b/docs/assets/index-3536e98d-1784074877048.js new file mode 100644 index 0000000..c1d2191 --- /dev/null +++ b/docs/assets/index-3536e98d-1784074877048.js @@ -0,0 +1 @@ +var ca=Object.defineProperty,da=Object.defineProperties;var fa=Object.getOwnPropertyDescriptors;var zt=Object.getOwnPropertySymbols;var ga=Object.prototype.hasOwnProperty,pa=Object.prototype.propertyIsEnumerable;var Et=(N,v,y)=>v in N?ca(N,v,{enumerable:!0,configurable:!0,writable:!0,value:y}):N[v]=y,g=(N,v)=>{for(var y in v||(v={}))ga.call(v,y)&&Et(N,y,v[y]);if(zt)for(var y of zt(v))pa.call(v,y)&&Et(N,y,v[y]);return N},P=(N,v)=>da(N,fa(v));var C=(N,v,y)=>new Promise((ee,U)=>{var z=E=>{try{L(y.next(E))}catch(h){U(h)}},ye=E=>{try{L(y.throw(E))}catch(h){U(h)}},L=E=>E.done?ee(E.value):Promise.resolve(E.value).then(z,ye);L((y=y.apply(N,v)).next())});import{g as f,q as ya,h as ha,w as ma,o as F,c as $,C as va,a as S,j as re,b as k,x as X,u as K,n as Mt,F as ka,y as ba,J as Gt,t as wt,f as _a,d as p,A as xe}from"./index-1784074877048.js";import{g as Pa,l as Vt,E as Na}from"./live-scene-1-69301bfb-1784074877048.js";import{_ as Q}from"./index-1f5d6021-1784074877048.js";import{M as Aa}from"./index-b4ec1ae2-1784074877048.js";import{_ as Ca}from"./LayerPanel-9c0c5952-1784074877048.js";import{a as se,_ as Sa}from"./FeatureInfoPanel-8e9f606e-1784074877048.js";import{l as Ia,d as La,e as Ta,m as xa}from"./townshipBoundaries-1b068bef-1784074877048.js";import{c as Ra,d as Ba,F as Fa,e as za,f as Ea,h as Ma,i as Ga}from"./featurePanelLayout-dc118942-1784074877048.js";import{q as Ot,r as wa,s as Va}from"./screen2Standard-9c6af3a2-1784074877048.js";import{p as Oa,a as qe,b as $a,c as ja,d as Wa,e as Ka,f as ge,g as Ze,h as Ye,i as $t,j as Ua}from"./data-202a0afb-1784074877048.js";import"./index-bc047bb3-1784074877048.js";import"./index-e9f36657-1784074877048.js";import"./livestockData-36ec0ae2-1784074877048.js";const Da={class:"pasture-management"},Ha={key:0,class:"pasture-map-loading"},qa={class:"pasture-management-ui"},Za={class:"pasture-left"},Ya={class:"pasture-side-stack is-left"},Ja={class:"pasture-video-monitor"},Xa=["disabled"],Qa=["onClick"],er={key:1,class:"pasture-video-play"},tr={key:2,class:"pasture-video-loading"},nr={key:3,class:"pasture-video-error"},ar={class:"pasture-video-point-name"},rr=["disabled"],sr={class:"pasture-right"},ur={class:"pasture-side-stack is-right"},or={class:"pasture-map-layer-tools"},lr=["aria-label"],jt="pasture-grassland-boundary",ir="pasture-yak-marks-layer",cr=12e3,dr="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pe="#30DCFF",Je="#FFE600",Wt="草场详情",Ir={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(N,{expose:v,emit:y}){const ee=N,U=y,z=Ot.sideCardWidth;Ot.sideCardGap;const ye=p(typeof window=="undefined"?1080:window.innerHeight),L=f(()=>wa(ye.value)),E=f(()=>Va(L.value,2)),h=p(null),ue=p(!1),Xe=p(0);let he=0;const D=p(null),oe=p(!1),le=p(!1),te=p(null),T=p(Ze),H=p(Ye),ne=p([]),Re=p(""),Kt=["牧户数量","户均牦牛头数","户均草地面积","联户数量"],me=["#30dcff","#24f6c4","#8bf7ff","#48cfff","#16b6e8","#b9fbff","#67ffe4"],B=`pasture-video-player-${Math.random().toString(36).slice(2)}`,Ut=new Set(["code","msg","message","success","data","result","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),Qe=[102.58,32.72],Dt=Wn("ne:t_pasture_grassland",pe),Ht={key:ir,sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",name:"牦牛识别",color:Je,fillColor:"rgba(255, 230, 0, 0)",strokeColor:Je,glowColor:"rgba(255, 230, 0, 0.42)",opacity:.92,lineWidth:1.4,zIndex:46,legends:[{key:"pasture-yak-marks",name:"牦牛识别",fillColor:Je,strokeColor:"#FFF58A",selectable:!1}]},Be={key:"pasture-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"牧场监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:Vt,playUrl:"",hdPlayUrl:"",token:""},Fe=p(null),M=p([]),ve=p(0),q=p(!1),G=p(!1),A=p("");let w=!1,ae=0,V=null,I=null,ze=!1,Z=0,ke=null,ie=0;const qt={"4028abc18eecd2af018eecdc44b7086b":"瓦切镇","402881828b486d54018b48741f590270":"查尔玛乡","402881828b486d54018b48740ed7024a":"麦洼乡","402881828b486d54018b48732e1c0044":"安曲镇","4028abc18eec9b97018eeca1538900db":"瓦切镇","402881828b486d54018b48740fb1024c":"安曲镇"},Zt={尼尕尔让:"瓦切镇",更迫尕:"查尔玛乡",王西卓玛:"麦洼乡",扎花克周:"安曲镇",恰波:"瓦切镇",热布丹:"安曲镇",求甲:"阿木乡",罗尔旦:"阿木乡",扎尔江:"阿木乡",达尔基:"阿木乡",尼科:"瓦切镇",班洛:"阿木乡",拉木共:"阿木乡",尕尔玛:"瓦切镇",尕尔丹:"安曲镇",泽旺甲:"瓦切镇",阿尕:"安曲镇",陈理:"瓦切镇",贡秋卓玛:"阿木乡",更多:"瓦切镇",阿泽:"瓦切镇",达勒错:"色地镇",泽朗罗日:"安曲镇",仁青:"瓦切镇",贡多:"阿木乡",泽周:"刷经寺镇",泽科:"瓦切镇",扎巴:"阿木乡",泽真:"瓦切镇",索拉姐:"瓦切镇",尕让罗周:"瓦切镇",尕让拉姆:"瓦切镇",更让尼玛:"阿木乡",向秋卓玛:"瓦切镇",东科:"阿木乡",扑瓦甲:"阿木乡"},Yt=ua(xa),et=f(()=>[{key:jt,sourceType:"wms",renderMode:"tile",layerName:"ne:t_pasture_grassland",name:"草场边界",styles:"",cqlFilter:"gov_show = true",sldBody:Dt,color:pe,fillColor:"rgba(48, 220, 255, 0.035)",strokeColor:pe,glowColor:"rgba(48, 220, 255, 0.2)",zIndex:35,opacity:.72,queryBuffer:8,mapView:{targetLngLat:Qe,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"pasture-grassland-boundary",name:"草场边界",fillColor:pe,strokeColor:pe,selectable:!1}]},Ht]),Jt=f(()=>Array.isArray(ne.value)?ne.value.map(String).filter(Boolean):ne.value?[String(ne.value)]:[]),be=f(()=>{const e=new Set(Jt.value);return et.value.filter(t=>e.has(t.key))}),Xt=f(()=>be.value[0]||null),ce=f(()=>be.value.flatMap(e=>e.legends||[]).find(e=>e.key===Re.value)||null),Qt=f(()=>be.value.flatMap(e=>e.legends||[]));function en(e){var n;return e?!(e.legends||[]).some(a=>{var s;return a.key===((s=ce.value)==null?void 0:s.key)})||!((n=ce.value)!=null&&n.cqlFilter)?e:P(g({},e),{cqlFilter:ce.value.cqlFilter,activeLegend:ce.value,name:ce.value.name||e.name}):null}const tt=f(()=>be.value.map(en).filter(Boolean)),_e=f(()=>tt.value[0]||null),tn=f(()=>!!te.value),nn=Fa,nt=f(()=>Ra({point:te.value?Gn(te.value):null,rowCount:D.value?pt(D.value):0,loading:le.value,empty:oe.value||!D.value})),an=f(()=>nt.value.height),rn=f(()=>nt.value.style),at=f(()=>kt(T.value.core).length?kt(T.value.core):Oa),Pe=f(()=>Ee(bt(T.value.distribution).length?bt(T.value.distribution):qe,ge)),sn=f(()=>{const e=Jn(T.value.online);return Xn(e.length?e:$a)}),un=f(()=>Ee(_t(T.value.age).length?_t(T.value.age):ja,ge)),on=f(()=>Ee(Pt(T.value.age).length?Pt(T.value.age):Wa,ge)),rt=f(()=>Qn(Ua));f(()=>({title:"牧户分布排行",metricLabel:"牧户",unit:"户",hideMapLabels:!1,hideTownNames:!1,showBars:!1,showPointMarkers:!1,showMissingTownStats:!1,rows:(Pe.value.length?Pe.value:Ka).map(e=>{const t=Number(e.value);return!e.name||!Number.isFinite(t)||t<=0?null:{name:e.name,value:t,unit:e.unit||"户"}}).filter(Boolean)})),f(()=>({key:"pasture-town",type:"bar",variant:"distribution",rows:Pe.value})),f(()=>({key:"pasture-grassland-area",type:"heat",rows:rt.value}));const ln=f(()=>({key:"pasture-household-column",type:"column",variant:"plain",scrollable:!1,rows:hn(Pe.value).slice(0,10).map((e,t)=>P(g({},e),{unit:e.unit||"户",color:me[t%me.length]}))})),cn=f(()=>({key:"pasture-grassland-column",type:"bar",variant:"raceBar",rows:rt.value.map((e,t)=>P(g({},e),{unit:e.unit||"万亩",color:me[(t+1)%me.length]}))})),dn=f(()=>({key:"pasture-online",type:"line",rows:sn.value})),fn=f(()=>({key:"pasture-age",type:"column",variant:"plain",lineOverlay:!0,labelMode:"horizontal",scrollable:!1,rows:un.value})),gn=f(()=>({key:"pasture-gender",type:"donut",rows:on.value})),pn=f(()=>({key:"pasture-herdsman-list",type:"projectTable",searchPlaceholder:"搜索牧户 / 乡镇",emptyText:"无匹配牧户",maxRows:300,searchKeys:["name","herdsmanName","herdsman_name","phone","phonenumber","idCard","id_card","township","id","grasslandArea","searchText"],columns:[{key:"name",label:"牧户名称",field:"name",width:"42%"},{key:"township",label:"区域",field:"township",width:"36%"},{key:"locate",label:"定位",field:"locateText",width:"22%",align:"center",fallback:"定位",icon:"locate",action:"locate"}],rows:H.value})),Ne=f(()=>{const e=M.value.length;return e?ve.value%e:0}),yn=f(()=>M.value[Ne.value]||Be),st=f(()=>kn(M.value,Ne.value,Be));function hn(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{var a,s,r;return P(g({},t),{key:t.key||t.code||t.name||`${n}`,name:t.name||t.areaName||t.area_name||t.townName||"未标注",value:Number((r=(s=(a=t.value)!=null?a:t.number)!=null?s:t.count)!=null?r:t.num)||0,unit:t.unit||""})}).filter(t=>t.name&&Number.isFinite(t.value)&&t.value>=0)}function Ee(e=[],t=ge){const n=Array.isArray(e)?e:[],a=n.reduce((u,o)=>u+(Number(o.value)||0),0);if(!n.length||!a||!t||a===t)return n;const s=n.map(u=>P(g({},u),{value:Math.round((Number(u.value)||0)/a*t)})),r=t-s.reduce((u,o)=>u+(Number(o.value)||0),0);if(r&&s.length){const u=s.reduce((o,i,d)=>{var l;return Number(i.value)>Number(((l=s[o])==null?void 0:l.value)||0)?d:o},0);s[u].value+=r}return s}function Me(){ye.value=typeof window=="undefined"?1080:window.innerHeight}ya(()=>{Me(),window.addEventListener("resize",Me),vt(),zn(),Sn(),mn()}),ha(()=>{w=!0,window.removeEventListener("resize",Me),Y(),V&&window.clearTimeout(V),ae+=1}),ma(()=>ee.active,e=>{var t,n;e||Y({resetError:!0}),h.value&&(e?(J(),(n=(t=h.value).refreshView)==null||n.call(t)):(V&&window.clearTimeout(V),V=null,ae+=1))});function mn(){return C(this,null,function*(){try{const e=yield Pa();if(w)return;M.value=e,ve.value=0,A.value=e.length?"":"暂无在线可播放摄像头"}catch(e){if(w)return;M.value=[],A.value="监控接口暂不可用",window.setTimeout(()=>{!w&&A.value==="监控接口暂不可用"&&(A.value="")},2400)}})}function vn(e,t){t!=null&&t.isActive&&(Fe.value=e||null)}function kn(e=[],t=0,n=Be){const a=Array.isArray(e)?e:[];if(!a.length)return[{key:`empty-${n.key||"video"}`,index:0,live:n,isActive:!0}];const s=(t+a.length)%a.length,r=a[s]||n;return[{key:`${r.key||r.title||"video"}-${s}`,index:s,live:r,isActive:!0}]}function bn(e,t=!0){const n=(e==null?void 0:e.image)||Vt;return q.value&&t?void 0:{backgroundImage:`url(${n})`}}function _n(){ut(-1)}function Pn(){ut(1)}function ut(e){const t=M.value.length;t&&(Y({resetError:!0}),ve.value=(Ne.value+e+t)%t)}function Nn(e){const t=M.value.length;if(!t){ot();return}const n=((Number(e)||0)+t)%t;(n!==Ne.value||I||G.value)&&Y({resetError:!0}),ve.value=n,xe(ot)}function ot(){return C(this,null,function*(){var a,s;const e=yn.value;if(!(e!=null&&e.hdPlayUrl)||!(e!=null&&e.token)){A.value="暂无在线可播放摄像头";return}if(q.value||G.value)return;I&&Y({resetError:!0}),A.value="",G.value=!0,yield xe();const t=++Z;let n=null;An(t);try{const r=(s=(a=Fe.value)==null?void 0:a.getBoundingClientRect)==null?void 0:s.call(a),u=Math.max(300,Math.floor((r==null?void 0:r.width)||340)),o=Math.max(80,Math.floor((r==null?void 0:r.height)||120));if(n=new Na.EZUIKitPlayer({id:B,accessToken:e.token,url:e.hdPlayUrl,audio:0,width:u,height:o,themeData:Cn(),handleError(i){t===Z&&(de(),console.warn("Pasture EZUIKit player error",i),A.value="视频加载失败",G.value=!1,q.value=!1,Z+=1,I=null,ze=!1,Ge())},handleSuccess(){t===Z&&(de(),A.value="",ze=!0,G.value=!1,it(),lt())},fullScreenChangeCallBack(){}}),t!==Z){ct(n),Ge();return}I=n,q.value=!0,xe(()=>{it(),lt()})}catch(r){de(),console.warn("Pasture EZUIKit init error",r),A.value="视频加载失败",Y()}})}function lt(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-ez-iframe-footer-container`),t=document.getElementById(`${B}-audioControls`);e&&Object.assign(e.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),t&&Object.assign(t.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function it(){var d,l;if(typeof document=="undefined")return;const e=Fe.value,t=document.getElementById(`${B}-wrap`),n=document.getElementById(B),a=t||n;if(!e||!a)return;const s=(d=e.getBoundingClientRect)==null?void 0:d.call(e),r=Math.max(1,Math.floor((s==null?void 0:s.width)||e.clientWidth||1)),u=Math.max(1,Math.floor((s==null?void 0:s.height)||e.clientHeight||1));try{I&&typeof I.reSize=="function"?I.reSize(r,u):I&&typeof I.autoResize=="function"&&I.autoResize()}catch(m){console.warn("Pasture EZUIKit resize failed",m)}Object.assign(a.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:`${r}px`,height:`${u}px`,verticalAlign:"top"}),t&&n&&Object.assign(n.style,{position:"relative",left:"auto",top:"auto",right:"auto",bottom:"auto",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const o=document.getElementById(`EZUIKitPlayer-${B}`);o&&(o.setAttribute("width",String(r)),o.setAttribute("height",String(u))),[...Array.from((n==null?void 0:n.children)||[]),...Array.from(((l=n==null?void 0:n.querySelectorAll)==null?void 0:l.call(n,".play-window, video, canvas, iframe"))||[]),o].filter(Boolean).forEach(m=>{Object.assign(m.style,{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"})})}function Y(e={}){const{clearElement:t=!0,resetError:n=!1}=e;de();const a=I;I=null,ze=!1,Z+=1,a&&ct(a),t&&Ge(),q.value=!1,G.value=!1,n&&(A.value="")}function An(e){de(),ke=window.setTimeout(()=>{e!==Z||!G.value||(A.value="视频加载超时",Y({resetError:!1}))},cr)}function de(){ke&&(window.clearTimeout(ke),ke=null)}function ct(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("Pasture EZUIKit stop error",t)}}function Ge(){if(typeof document=="undefined")return;const e=document.getElementById(`${B}-wrap`);if(e){const n=document.createElement("div");n.id=B,n.className="pasture-video-player",e.replaceWith(n);return}const t=document.getElementById(B);t&&t.replaceChildren()}function Cn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:1},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"expend",part:"right",defaultActive:0,memo:"全局全屏按钮",isrender:1}]}}}function Sn(){return C(this,null,function*(){try{const e=yield Ba();if(w)return;T.value=g(g({},Ze),e),vt();const t=ea(e.list);H.value=t.length?t:Nt(Ye),In(H.value)}catch(e){T.value=Ze,H.value=Nt(Ye)}})}function In(e=H.value,t=600){w||!ee.active||(V&&window.clearTimeout(V),V=window.setTimeout(()=>{V=null,!(w||!ee.active)&&Ln(e)},t))}function Ln(){return C(this,arguments,function*(e=[]){const t=++ae,n=(Array.isArray(e)?e:[]).filter(Tn).slice(0,60);if(!n.length)return;const a=yield ft(n,5,r=>C(this,null,function*(){const u=Lt(r),o=W(r);let i=o,d=null,l=Ie(r,o)||Le(r,r.name,u);try{(!l||!i.some(b))&&(i=yield gt(r))}catch(R){i=o}if(l=l||Ie(r,i)||Le(r,r.name,u),!l){try{d=u?yield za(u):null}catch(Bt){d=null}const R=W(d);l=Rn(d)||Ie(d,R),R.length&&!i.length&&(i=R)}l=l||Le(r,r.name,u);const m=!!(u||Se(r)||i.some(b)||b(r));if(!l&&!i.length&&m===r.canLocate)return null;const _={key:r.key,id:r.id,realPastureId:u,name:r.name,township:l||r.township,grasslands:i.length?i:r.grasslands,grasslandArea:i.length?Ct(i):O(r),canLocate:m,locateText:m?"定位":"--"};return xn(_,t),_}));if(w||t!==ae)return;const s=new Map;a.filter(Boolean).forEach(r=>{[r.key,r.id,r.realPastureId,r.name].filter(Boolean).forEach(u=>{s.set(String(u),r)})}),s.size&&dt(s)})}function Tn(e={}){const t=String((e==null?void 0:e.township)||"").trim();return!(b(e)||W(e).some(b))&&je(e).length?!0:t&&t!=="--"?!1:O(e)>0||We(e)}function xn(e,t=ae){if(!e||w||t!==ae)return;const n=new Map;[e.key,e.id,e.realPastureId,e.name].filter(Boolean).forEach(a=>{n.set(String(a),e)}),dt(n)}function dt(e){e!=null&&e.size&&(H.value=H.value.map(t=>{var r,u;const n=[t.key,t.id,t.realPastureId,t.name].filter(Boolean).map(o=>e.get(String(o))).find(Boolean);if(!n)return t;const a=n.township&&n.township!=="--"?n.township:t.township,s=Number(n.grasslandArea)>0?Number(n.grasslandArea):O(t);return P(g({},t),{township:a,grasslands:n.grasslands,grasslandArea:s,acreage:s,value:s,grasslandCount:fe(n,n.grasslands),hasGrasslandBoundary:((u=(r=n.grasslands)==null?void 0:r.some)==null?void 0:u.call(r,b))||t.hasGrasslandBoundary,canLocate:n.canLocate,locateText:n.locateText,searchText:[t.name,a,t.id].filter(Boolean).join(" ")})}))}function we(e=[]){const t=[],n=a=>{if(!a)return;if(Array.isArray(a)){a.forEach(n);return}if(typeof a!="object")return;const s=W(a);if(s.length)t.push(...s);else{let r=!1;["rows","list","data","result","grassland","pasture","features"].forEach(u=>{const o=a==null?void 0:a[u];o&&(Array.isArray(o)||typeof o=="object")&&(r=!0,n(o))}),r||t.push(a)}};return n(e),t}function Rn(e){const t=Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.data)?e.data:[e];for(const n of t.filter(Boolean)){const a=Array.isArray(n==null?void 0:n.fields)?n.fields:Array.isArray(n==null?void 0:n.children)?n.children:[],s=c(n,["township","townName","town_name","areaName","area_name","fullName","full_name","address","牧场所在区域"]);if(s)return x(Ae(s));for(const u of a){const o=String((u==null?void 0:u.name)||(u==null?void 0:u.label)||(u==null?void 0:u.title)||"").trim(),i=c(u,["value","text","content"]);if(i&&/区域|地址|乡镇/.test(o))return x(Ae(i))}const r=Object.entries(n||{}).filter(([u])=>/fullName|full_name|address|areaName|area_name|town/i.test(u)).map(([,u])=>u);for(const u of r)if(u)return x(Ae(u))}return""}function Ae(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=t.match(/([\u4e00-\u9fa5]{1,12}(?:镇|乡))/);return(n==null?void 0:n[1])||t}function ft(e,t,n){return C(this,null,function*(){const a=new Array(e.length);let s=0;const r=Array.from({length:Math.min(t,e.length)},()=>C(this,null,function*(){for(;sC(this,null,function*(){if(b(a))return a;const s=St(a);if(!s)return a;try{const r=yield Ma(s),o=we([r]).find(b);return o?na(a,o):a}catch(r){return a}}));return $e(n)})}function Fn(e){return C(this,null,function*(){var r,u,o,i;const t=++he;J(),(u=(r=h.value)==null?void 0:r.clearFloatingOverlays)==null||u.call(r);let n=[];try{n=yield gt(e)}catch(d){n=W(e)}if(t!==he)return;const a=n.filter(b);if(!a.length){mt();return}if(t!==he)return;((i=(o=h.value)==null?void 0:o.focusPasture)==null?void 0:i.call(o,{name:e==null?void 0:e.name,grasslands:a,highlightTone:"white"}))||mt()})}function zn(){ue.value=!1,U("loading-progress",{progress:0})}function En(){ue.value=!0,U("loading-progress",{progress:100}),U("map-ready")}function Mn(e=_e.value){const t=String((e==null?void 0:e.key)||"").toLowerCase(),n=String((e==null?void 0:e.layerName)||"").toLowerCase();return t===jt||n.includes("t_pasture_grassland")}function Gn(e={}){const t=document.querySelector(".pasture-management"),n=t==null?void 0:t.getBoundingClientRect();return n?{x:((Number(e.x)||n.left+n.width/2)-n.left)/Math.max(1,n.width)*1920,y:((Number(e.y)||n.top+n.height/2)-n.top)/Math.max(1,n.height)*1080}:{x:Number(e.x)||960,y:Number(e.y)||540}}function pt(e){const t=(e==null?void 0:e.properties)||{};return Math.min(10,Object.entries(t).filter(([n,a])=>wn(n,a)).length)}function wn(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!Ut.has(String(e||"").toLowerCase())}function Vn(e={}){const t=yt(e.lng),n=yt(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function yt(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function On(e={},t={}){var s,r;const n=$n(e);if(!n||!Object.keys(n).length)return null;const a=jn(e,n);return{id:n.id||n.grasslandId||n.grassland_id||`${(s=t==null?void 0:t.lngLat)==null?void 0:s.lng}-${(r=t==null?void 0:t.lngLat)==null?void 0:r.lat}`,properties:n,feature:{type:"Feature",properties:n,geometry:a},geometry:a,layer:_e.value||Xt.value,lngLat:t.lngLat}}function $n(e={}){var o,i,d,l;const t=ht(e),n=j((t==null?void 0:t.grassland)||((o=t==null?void 0:t.data)==null?void 0:o.grassland)),a=j((t==null?void 0:t.pasture)||((i=t==null?void 0:t.data)==null?void 0:i.pasture)),s=j((t==null?void 0:t.pasture_balance)||(t==null?void 0:t.pastureBalance)||((d=t==null?void 0:t.data)==null?void 0:d.pasture_balance)),r=n||j(t==null?void 0:t.data)||j(t==null?void 0:t.result)||j(t);if(!r&&!a&&!s)return null;const u=c(r||{},["recognizedYakCount","recognized_yak_count"]);return P(g(g(g(g(g({},r||{}),s||{}),Ve(r)),Ve(a)),Ve(s)),{pastureName:c(a||{},["name","pasturesName","pastures_name","pastureName","pasture_name"])||c(r||{},["pastureName","pasture_name"]),recognizedYakCount:u,yakCount:(l=u!=null?u:c(a||{},["yakCount","yak_count","yakNumber","yak_number"]))!=null?l:c(s||{},["yakCount","yak_count","yakNumber","yak_number"])})}function Ve(e={}){return(Array.isArray(e==null?void 0:e.dyColumn)?e.dyColumn:Array.isArray(e==null?void 0:e.fields)?e.fields:[]).reduce((n,a)=>{var u,o;const s=String((a==null?void 0:a.field)||(a==null?void 0:a.key)||(a==null?void 0:a.title)||(a==null?void 0:a.label)||"").trim(),r=(o=(u=a==null?void 0:a.value)!=null?u:a==null?void 0:a.text)!=null?o:a==null?void 0:a.content;return s&&r!==void 0&&r!==null&&r!==""&&(n[s]=r),n},{})}function ht(e){return!e||typeof e!="object"?{}:e.data&&typeof e.data=="object"?e.data:e.result&&typeof e.result=="object"?e.result:e}function jn(e={},t={}){var r,u;const n=ht(e),a=j((n==null?void 0:n.grassland)||((r=n==null?void 0:n.data)==null?void 0:r.grassland)),s=j((n==null?void 0:n.pasture)||((u=n==null?void 0:n.data)==null?void 0:u.pasture));return c(a||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(s||{},["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(t,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||c(n,["geometry","geom","wkt","geo","the_geom","geometryWkt","geometry_wkt","shape"])||null}function j(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Oe(){D.value=null,te.value=null,oe.value=!1,le.value=!1}function J(){var e,t;ie+=1,Oe(),(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function mt(){var e,t;he+=1,(t=(e=h.value)==null?void 0:e.clearPastureFocus)==null||t.call(e)}function Wn(e,t){return`${e}${e}${t}0.025${t}0.90.74`}function Kn(){return C(this,arguments,function*(e={}){var r,u,o,i,d,l;if(!Mn(e.overlayLayer||_e.value)){J();return}const t=Number((r=e==null?void 0:e.lngLat)==null?void 0:r.lng),n=Number((u=e==null?void 0:e.lngLat)==null?void 0:u.lat);if(!Number.isFinite(t)||!Number.isFinite(n)){J();return}const a=++ie,s=e.screen||{x:960,y:540};te.value=null,D.value=null,oe.value=!1,le.value=!0,(i=(o=h.value)==null?void 0:o.clearSelectedFeature)==null||i.call(o);try{const m=yield Ga(Vn({lng:t,lat:n}));if(a!==ie)return;const _=On(m,e);if(!_||pt(_)<=0){Oe();return}D.value=_,te.value=s,oe.value=!1,_.geometry&&((l=(d=h.value)==null?void 0:d.highlightFeature)==null||l.call(d,_,{highlightTone:"v21"}))}catch(m){if(a!==ie)return;Oe()}finally{a===ie&&(le.value=!1)}})}function Un(){var e,t;J(),(t=(e=h.value)==null?void 0:e.refreshView)==null||t.call(e)}function Dn(){var e,t,n,a;if(J(),(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){ue.value=!0,(a=(n=h.value)==null?void 0:n.resetView)==null||a.call(n);return}ue.value=!1,Xe.value+=1,xe(()=>{window.setTimeout(()=>{var s,r;(r=(s=h.value)==null?void 0:s.refreshView)==null||r.call(s)},160)})}v({refreshMapView:Un,resetMap:Dn});function vt(){U("module-stats",{moduleKey:"pasture-management",items:Hn().map(e=>({zh:e.name,name:e.name,value:e.value,unit:e.unit,decimals:Number.isInteger(Number(e.value))?0:2}))})}function Hn(){const e=new Map;(Array.isArray(at.value)?at.value:[]).forEach(n=>{!(n!=null&&n.name)||Yn(n.name)||e.set(n.name,n)});const t=e.get("牧户数量")||$t.find(n=>n.name==="牧户数量"||n.zh==="牧户数量");return e.set("牧户数量",P(g({},t),{name:"牧户数量",value:ge,unit:(t==null?void 0:t.unit)||"户"})),Kt.map(n=>e.get(n)||$t.find(a=>a.name===n||a.zh===n)).filter(Boolean).slice(0,4)}function kt(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=t.key||t.id||t.code||t.name||t.zh||`${n}`,s=t.name||t.title||t.label||t.zh,r=qn(s,a),u=c(t,["value","num","count","dataValue"]);if(!r||u===void 0||u===null||u==="")return null;const o=Zn(r,u,t.unit||t.dw||"");return{key:a,name:o.name,value:o.value,unit:o.unit,icon:t.icon||["town","area","yield","rate"][n%4]}}).filter(Boolean)}function qn(e,t){const n=String(e||t||""),a=String(t||"").toLowerCase();return/avg.*yak|yak.*avg|yak.*household|yak.*per|hjyak/.test(a)||/户均.*牦牛|牦牛.*户均/.test(n)?"户均牦牛头数":/avg.*grass|grass.*avg|grass.*household|grass.*per/.test(a)||/户均.*草地|草地.*户均/.test(n)?"户均草地面积":/income|revenue|人均收入/.test(a)||n.includes("人均收入")?"人均收入":/poverty|monitor|防反贫|监测户/.test(a)||n.includes("防反贫")||n.includes("监测户")?"防反贫监测户":/joint|union|link|联户/.test(a)||n.includes("联户")?"联户数量":/herdsman|muhu|pasture.*count|牧户数量/.test(a)||n.includes("牧户数量")?"牧户数量":/yak/.test(a)||n.includes("牦牛")?null:/grass/.test(a)||n.includes("草地面积")?"草地面积":/wet/.test(a)||n.includes("湿地")?"湿地面积":n.includes("牧户")||n.includes("牧场")?"牧户数量":/project/.test(a)||n.includes("工程")||n.includes("项目")?"工程数量":/base/.test(a)||n.includes("基地")?"基地数量":n}function Zn(e,t,n){const a=Number(t)||0;return e==="户均牦牛头数"?{name:e,value:a,unit:n||"头"}:e==="户均草地面积"?{name:e,value:a,unit:n||"亩"}:e==="人均收入"?{name:e,value:a,unit:n||"元/年"}:e==="联户数量"||e==="防反贫监测户"?{name:e,value:a,unit:n||"户"}:(e.includes("草地")||e.includes("湿地"))&&!String(n).includes("万")?{name:e,value:Math.round(a/1e4*100)/100,unit:"万亩"}:e.includes("牧户")?{name:e,value:a,unit:n||"户"}:e.includes("工程")||e.includes("项目")||e.includes("基地")?{name:e,value:a,unit:n||"个"}:{name:e,value:a,unit:n}}function Yn(e){return e==="草地面积"||e==="湿地面积"||e==="区域数量"||e==="牦牛数量"}function bt(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=c(t,["number","value","count","num","pastureCount","muhuCount","muhu_count"]);return!n||a===void 0||a===null||a===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(a)||0,unit:"户"}}).filter(Boolean).sort((t,n)=>n.value-t.value)}function Jn(e=[]){return(Array.isArray(e)?e:[]).map(t=>{const n=c(t,["areaName","area_name","name","townName","zoneName"]),a=Number(c(t,["registeredMuhuCount","registered_muhu_count","registeredCount"])),s=Number(c(t,["muhuCount","muhu_count","onlineCount"])),r=c(t,["onlinePercent","uplineRate","upline_rate","onlineRate","value","percent","rate"]),u=r!=null&&r!==""?r:a>0?s/a*100:void 0;return!n||u===void 0||u===null||u===""?null:{key:t.code||t.areaCode||t.area_code||n,name:n,value:Number(String(u).replace("%",""))||0,unit:"%",extra:Number.isFinite(s)&&Number.isFinite(a)&&a>0?`${s}/${a}户`:t.extra}}).filter(Boolean)}function Xn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=x((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return a?P(g({},a),{key:n.key,name:n.name,unit:a.unit||"%"}):{key:n.key,name:n.name,value:0,unit:"%",extra:"--"}})}function Qn(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=String((n==null?void 0:n.key)||(n==null?void 0:n.code)||(n==null?void 0:n.areaCode)||(n==null?void 0:n.area_code)||"").trim(),s=x((n==null?void 0:n.name)||(n==null?void 0:n.areaName)||(n==null?void 0:n.area_name)||(n==null?void 0:n.townName)||(n==null?void 0:n.zoneName)||(n==null?void 0:n.township));[a,s].filter(Boolean).forEach(r=>t.set(r,n))}),qe.map(n=>{const a=t.get(String(n.key||""))||t.get(n.name);return{key:n.key,name:n.name,value:Number(a==null?void 0:a.value)||0,unit:(a==null?void 0:a.unit)||"万亩"}}).sort((n,a)=>a.value-n.value)}function _t(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["ageRange","age_range","age","name","label"]),s=c(n,["number","value","count","num"]);!a||s===void 0||s===null||s===""||t.set(a,(t.get(a)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function Pt(e=[]){const t=new Map;return(Array.isArray(e)?e:[]).forEach(n=>{const a=c(n,["sex","gender","name"]),s=c(n,["number","value","count","num"]);if(!a||s===void 0||s===null||s==="")return;const r=String(a).includes("女")?"女":String(a).includes("男")?"男":a;t.set(r,(t.get(r)||0)+(Number(s)||0))}),Array.from(t.entries()).map(([n,a])=>({key:n,name:n,value:a,unit:"人"}))}function ea(e=[]){return(Array.isArray(e)?e:[]).map((t,n)=>{const a=c(t,["name","pasturesName","pastures_name","muhuName","muhu_name","pastureName","pasture_name","herdsmanName"]);if(!a)return null;const s=W(t),r=O(t)||Ct(s),u=fe(t,s),o=Lt(t),i=Ie(t,s)||Le(t,a,o),d=Ce(t),l=P(g({},t),{key:t.key||t.id||t.pasturesId||t.pastures_id||`${a}-${n}`,id:o||t.id||t.pastureId||t.pasturesId||t.pastures_id||t.muhuId||t.key,realPastureId:o,name:a,pastureSortOrder:d,township:i||"--",grasslandArea:r,acreage:r,grasslandCount:u,hasGrasslandBoundary:u>0,grasslands:s});return l.canLocate=!!(o||Se(t)||s.some(b)||b(t)),l.locateText=l.canLocate?"定位":"--",l.value=l.grasslandArea,l.unit="亩",l.searchText=[l.name,l.herdsmanName,l.herdsman_name,l.phone,l.phonenumber,l.idCard,l.id_card,l.township,l.id].filter(Boolean).join(" "),l}).filter(Boolean).sort(At)}function Nt(e=[]){return[...Array.isArray(e)?e:[]].map(t=>P(g({},t),{pastureSortOrder:Ce(t),grasslandArea:O(t),acreage:O(t)})).sort(At)}function Ce(e={}){const t=c(e,["pastureSortOrder","pasture_sort_order","pastureOrder","pasture_order","muhuSortOrder","muhu_sort_order","sortOrder","sort_order"]);if(t==null||t==="")return null;const n=Number(String(t).replace(/,/g,"").trim());return Number.isFinite(n)?n:null}function At(e,t){const n=Ce(e),a=Ce(t);if(n!==null||a!==null)return n===null?1:a===null?-1:n!==a?n-a:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN");const s=Se(e)?1:0,r=Se(t)?1:0;if(s!==r)return r-s;const u=fe(e),o=fe(t);if(u!==o)return o-u;const i=O(e),d=O(t),l=i>0?1:0,m=d>0?1:0;if(l!==m)return m-l;const _=We(e)?1:0,R=We(t)?1:0;return _!==R?R-_:i!==d?d-i:String((e==null?void 0:e.name)||"").localeCompare(String((t==null?void 0:t.name)||""),"zh-CN")}function Se(e={}){const t=c(e,["hasGrasslandBoundary","has_grassland_boundary","hasBoundary","has_boundary"]);return t===!0||t===1||t==="1"||typeof t=="string"&&["true","yes","y"].includes(t.trim().toLowerCase())?!0:fe(e)>0}function fe(e={},t=e==null?void 0:e.grasslands){const n=["grasslandCount","grassland_count","grasslandsCount","grasslands_count","grasslandBoundaryCount","grassland_boundary_count","boundaryCount","boundary_count"];for(const a of n){const s=Number(e==null?void 0:e[a]);if(Number.isFinite(s)&&s>0)return s}return Array.isArray(t)?t.length:0}function O(e={}){const n=["grasslandArea","grassland_area","grasslandAcreage","grassland_acreage","assignedGrasslandAcreage","assigned_grassland_acreage","area","areaRange","area_range","cdAcreage","cd_acreage","totalAcreage","total_acreage","pastureArea","pasture_area","acreage"].map(s=>ta(e==null?void 0:e[s]));return n.find(s=>s>0)||n.find(s=>s===0)||0}function Ct(e=[]){return(Array.isArray(e)?e:[]).reduce((t,n)=>t+O(n),0)}function ta(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").trim();if(!t||t==="--")return 0;const n=t.replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);if(!n)return 0;const a=Number(n[0]);return Number.isFinite(a)?t.includes("万")?a*1e4:a:0}function W(e={}){const t=[];["grasslands","grasslandList","grasslandRows","landList","plots","features"].forEach(s=>{const r=e==null?void 0:e[s];Array.isArray(r)?t.push(...r):Array.isArray(r==null?void 0:r.rows)?t.push(...r.rows):Array.isArray(r==null?void 0:r.list)?t.push(...r.list):Array.isArray(r==null?void 0:r.data)&&t.push(...r.data)});const a=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||e!=null&&e.geometry)&&t.push(P(g({},e),{id:(e==null?void 0:e.grasslandId)||(e==null?void 0:e.gid)||(e==null?void 0:e.id),pastureId:(e==null?void 0:e.pastureId)||(e==null?void 0:e.pasturesId)||(e==null?void 0:e.pastures_id)||(e==null?void 0:e.muhuId)||(e==null?void 0:e.id),name:(e==null?void 0:e.grasslandName)||(e==null?void 0:e.name),wkt:a,geometry:e==null?void 0:e.geometry})),t.filter(Boolean)}function b(e={}){var t,n;return typeof e=="string"?!!e.trim():(e==null?void 0:e.type)==="Feature"||e!=null&&e.type&&(e!=null&&e.coordinates)||(t=e==null?void 0:e.geometry)!=null&&t.type||(n=e==null?void 0:e.geometry)!=null&&n.coordinates||typeof(e==null?void 0:e.geometry)=="string"?!0:!!c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"])}function na(e={},t={}){var r,u,o,i,d;const n=P(g(g({},e),t),{id:(r=e==null?void 0:e.id)!=null?r:t==null?void 0:t.id,grasslandId:(d=(i=(o=(u=e==null?void 0:e.grasslandId)!=null?u:e==null?void 0:e.grassland_id)!=null?o:t==null?void 0:t.grasslandId)!=null?i:t==null?void 0:t.grassland_id)!=null?d:t==null?void 0:t.id}),a=c(t,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]),s=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);return(a||s)&&(n.wkt=a||s),n.geometry=(t==null?void 0:t.geometry)||(e==null?void 0:e.geometry),n}function $e(e=[]){const t=new Set;return(Array.isArray(e)?e:[]).filter(n=>{if(!n)return!1;const a=aa(n);return a&&t.has(a)?!1:(a&&t.add(a),!0)})}function aa(e={}){const t=c(e,["wkt","geo","geom","geometryWkt","geometry_wkt","shape","location"]);if(t)return`g:${String(t).slice(0,240)}`;if(e!=null&&e.geometry)try{return`j:${JSON.stringify(e.geometry).slice(0,240)}`}catch(a){return""}const n=St(e);return n?`id:${n}`:""}function St(e={}){return It(c(e,["id","grasslandId","grassland_id","landId","land_id","gid","objectid","object_id","fid"]))}function je(e={}){return[e==null?void 0:e.realPastureId,e==null?void 0:e.pastureId,e==null?void 0:e.pasturesId,e==null?void 0:e.pastures_id,e==null?void 0:e.muhuId,e==null?void 0:e.muhu_id,e==null?void 0:e.id].map(It).filter(Boolean).filter((t,n,a)=>a.indexOf(t)===n)}function It(e){const t=String(e!=null?e:"").trim();return t&&t!=="--"?t:""}function Lt(e={}){return je(e)[0]||null}function We(e={}){return e!=null&&e.canLocate||b(e)?!0:W(e).some(b)}function c(e={},t=[]){for(const n of t){const a=e==null?void 0:e[n];if(a!=null&&a!=="")return a}}function Ie(e={},t=[]){const n=c(e,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),a=x(n);if(a)return a;const s=Ke(c(e,["areaCode","area_code","townCode","town_code","code"]));if(s)return s;for(const u of t){const o=c(u,["township","townName","town_name","areaName","area_name","zoneName","zone_name","fullName","full_name","address","牧场所在区域"]),i=x(o);if(i)return i;const d=Ke(c(u,["areaCode","area_code","townCode","town_code","code"]));if(d)return d}const r=Tt(e);if(r)return r;for(const u of t){const o=Tt(u);if(o)return o}return""}function x(e){const t=String(e||"").trim();if(!t||t==="--")return"";const n=Ke(t);if(n)return n;if(Ia(t))return t;const a=La.find(r=>t.includes(r));if(a)return a;const s=Ae(t);return s&&s!==t?x(s):""}function Le(e={},t="",n=""){const a=[n,e.realPastureId,e.pastureId,e.pasturesId,e.pastures_id,e.muhuId,e.id];for(const r of a){const u=qt[String(r||"").trim()];if(u)return x(u)}const s=[t,e.name,e.pasturesName,e.pastures_name,e.muhuName,e.muhu_name,e.pastureName,e.pasture_name];for(const r of s){const u=Zt[ra(r)];if(u)return x(u)}return""}function ra(e){return String(e||"").replace(/[·•・..。`´’‘ʼʹ''"“”\s\-—_()()]/g,"").replace(/˙/g,"")}function Ke(e){const t=String(e||"").trim();if(!t)return"";const n=t.replace(/\D/g,"");return n?Ta(n):""}function Tt(e={}){const t=Ue(e),n=oa(t);if(!n)return"";const a=Yt.find(s=>ia(n,s.geometry));return a!=null&&a.name?x(a.name):""}function Ue(e={}){var a,s;if((e==null?void 0:e.type)==="Feature")return Ue(e.geometry);if(e!=null&&e.type&&(e!=null&&e.coordinates))return e;if((a=e==null?void 0:e.geometry)!=null&&a.type||(s=e==null?void 0:e.geometry)!=null&&s.coordinates)return e.geometry;const t=c(e,["geometry","location","wkt","geo","geom","geometryWkt","geometry_wkt","shape"]);if(!t||typeof t!="string")return null;const n=t.trim();if(!n)return null;if(n.startsWith("{")||n.startsWith("["))try{const r=JSON.parse(n);return Ue(r)}catch(r){return null}return sa(n)}function sa(e){var r;const t=String(e||"").trim(),n=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),a=(r=n==null?void 0:n[1])==null?void 0:r.toUpperCase();if(!a)return null;const s=t.slice(t.indexOf("("));return a==="POINT"?{type:"Point",coordinates:De(s)}:a==="MULTIPOINT"?{type:"MultiPoint",coordinates:Te(s).map(De).filter(Boolean)}:a==="LINESTRING"?{type:"LineString",coordinates:He(s)}:a==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Te(s).map(He).filter(u=>u.length)}:a==="POLYGON"?{type:"Polygon",coordinates:xt(s)}:a==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Te(s).map(xt).filter(u=>u.length)}:null}function De(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}function He(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(De).filter(Boolean)}function xt(e){return Te(e).map(He).filter(t=>t.length>=3)}function Te(e){const t=[];let n=0,a=-1;return Array.from(String(e||"")).forEach((s,r)=>{s==="("?(n===0&&(a=r+1),n+=1):s===")"&&(n-=1,n===0&&a>=0&&(t.push(e.slice(a,r)),a=-1))}),t.length?t:[String(e||"")]}function ua(e){try{const t=typeof e=="string"?JSON.parse(e):e;return((t==null?void 0:t.features)||[]).map(n=>{var a,s,r,u;return{name:((a=n==null?void 0:n.properties)==null?void 0:a.name)||((s=n==null?void 0:n.properties)==null?void 0:s.areaName)||((r=n==null?void 0:n.properties)==null?void 0:r.townName),code:(u=n==null?void 0:n.properties)==null?void 0:u.code,geometry:n==null?void 0:n.geometry}}).filter(n=>{var a;return n.name&&((a=n.geometry)==null?void 0:a.coordinates)})}catch(t){return[]}}function oa(e){const t=la(e);if(!t.length)return null;const n=t.reduce((a,s)=>({lng:a.lng+s[0],lat:a.lat+s[1]}),{lng:0,lat:0});return[n.lng/t.length,n.lat/t.length]}function la(e){const t=[],n=a=>{if(Array.isArray(a)){if(a.length>=2&&Number.isFinite(Number(a[0]))&&Number.isFinite(Number(a[1]))){t.push([Number(a[0]),Number(a[1])]);return}a.forEach(n)}};return n(e==null?void 0:e.coordinates),t}function ia(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?Rt(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(n=>Rt(e,n)):!1}function Rt(e,t){var u,o,i,d;const n=t==null?void 0:t[0];if(!Array.isArray(n)||n.length<3)return!1;let a=!1;const s=e[0],r=e[1];for(let l=0,m=n.length-1;lr!=Ft>r&&s<(Bt-_)*(r-R)/(Ft-R||1e-12)+_&&(a=!a)}return a}return(e,t)=>(F(),$("div",Da,[(F(),va(Aa,{key:Xe.value,ref_key:"mapSceneRef",ref:h,class:"pasture-ol-map-layer",active:ee.active,"tile-url-template":dr,center:Qe,"initial-zoom":9,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":_e.value,"overlay-layers":tt.value,onReady:En,onMapClick:Kn},null,8,["active","overlay-layer","overlay-layers"])),t[2]||(t[2]=S("div",{class:"pasture-map-scrim"},null,-1)),ue.value?re("",!0):(F(),$("div",Ha,"3D地图加载中")),S("div",qa,[S("div",Za,[S("div",Ya,[k(Q,{class:"pasture-side-card left-card",title:"牧户区域统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:ln.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"草场面积分布",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:cn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card pasture-video-card",title:"牧场实时监控",width:K(z),height:L.value},{default:X(()=>[S("div",Ja,[S("button",{class:"pasture-video-nav pasture-video-prev",type:"button",disabled:M.value.length<=1,"aria-label":"上一个监控点",onClick:_n}," ‹ ",8,Xa),S("div",{class:Mt(["pasture-video-grid",{"is-single":st.value.length<=1}])},[(F(!0),$(ka,null,ba(st.value,n=>(F(),$("div",{key:n.key,ref_for:!0,ref:a=>vn(a,n),class:Mt(["pasture-video-screen",{"is-active":n.isActive,"is-playing":q.value&&n.isActive,"is-loading":G.value&&n.isActive}]),style:Gt(bn(n.live,n.isActive)),onClick:a=>Nn(n.index)},[n.isActive?(F(),$("div",{key:0,id:B,class:"pasture-video-player"})):re("",!0),(!q.value||!n.isActive)&&n.live.hdPlayUrl?(F(),$("div",er)):re("",!0),G.value&&n.isActive?(F(),$("div",tr,"加载中")):re("",!0),A.value&&n.isActive?(F(),$("div",nr,wt(A.value),1)):re("",!0),S("div",ar,wt(n.live.title),1)],14,Qa))),128))],2),S("button",{class:"pasture-video-nav pasture-video-next",type:"button",disabled:M.value.length<=1,"aria-label":"下一个监控点",onClick:Pn}," › ",8,rr)])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card left-card",title:"牧户上线率",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:dn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",sr,[S("div",ur,[k(Q,{class:"pasture-side-card right-card",title:"牧户年龄统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:fn.value,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card",title:"牧户性别统计",width:K(z),height:L.value},{default:X(()=>[k(se,{panel:gn.value,compact:"","visual-version":"v21"},null,8,["panel"])]),_:1},8,["width","height"]),k(Q,{class:"pasture-side-card right-card pasture-list-card",title:"牧户列表",width:K(z),height:E.value},{default:X(()=>[k(se,{panel:pn.value,compact:"","visual-version":"v21",onRowSelect:Fn},null,8,["panel"])]),_:1},8,["width","height"])])]),S("div",or,[k(Ca,{modelValue:ne.value,"onUpdate:modelValue":t[0]||(t[0]=n=>ne.value=n),"selected-legend-key":Re.value,"onUpdate:selectedLegendKey":t[1]||(t[1]=n=>Re.value=n),"topic-key":"grassland",layers:et.value,legends:Qt.value,multiple:"",width:232,height:430},null,8,["modelValue","selected-legend-key","layers","legends"])]),tn.value?(F(),$("div",{key:0,class:"pasture-map-feature-info",style:Gt(rn.value)},[S("button",{class:"pasture-map-feature-close",type:"button","aria-label":`关闭${Wt}`,title:"关闭",onClick:_a(J,["stop"])}," × ",8,lr),k(Sa,{title:Wt,feature:D.value,empty:oe.value,loading:le.value,width:K(nn),height:an.value,"compact-grassland":""},null,8,["feature","empty","loading","width","height"])],4)):re("",!0)])]))}};export{Ir as default}; diff --git a/docs/assets/index-41d168c2-balabala-1784045078568.css b/docs/assets/index-41d168c2-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-41d168c2-balabala-1784045078568.css rename to docs/assets/index-41d168c2-balabala-1784074877048.css diff --git a/docs/assets/index-f6dff886-1784045078568.js b/docs/assets/index-514021a4-1784074877048.js similarity index 97% rename from docs/assets/index-f6dff886-1784045078568.js rename to docs/assets/index-514021a4-1784074877048.js index 3d24389..5436b1a 100644 --- a/docs/assets/index-f6dff886-1784045078568.js +++ b/docs/assets/index-514021a4-1784074877048.js @@ -1,4 +1,4 @@ -var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable;var kt=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t)=>{for(var s in t||(t={}))Xt.call(t,s)&&kt(e,s,t[s]);if(ht)for(var s of ht(t))Zt.call(t,s)&&kt(e,s,t[s]);return e},M=(e,t)=>Qt(e,Jt(t));var F=(e,t,s)=>new Promise((n,r)=>{var u=f=>{try{v(s.next(f))}catch(h){r(h)}},w=f=>{try{v(s.throw(f))}catch(h){r(h)}},v=f=>f.done?n(f.value):Promise.resolve(f.value).then(u,w);v((s=s.apply(e,t)).next())});import{g as it,q as te,h as ee,w as ne,o as y,c as p,z as At,F as P,y as z,n as j,a as g,t as A,j as k,C as se,u as ie,B as St,f as _t,s as ae,H as oe,e as re,D as ue,G as le,d as D,A as ce}from"./index-1784045078568.js";import{r as $t,n as Nt}from"./index-6a8ef8cf-1784045078568.js";import{a as de,c as me,b as fe,l as ge}from"./yakApi-9c3a9777-1784045078568.js";import{h as ye,a as ve,r as Ct,b as pe,t as xt,y as be,c as we,s as he,d as ke,e as Ae}from"./data-881b212b-1784045078568.js";import{p as Se,i as _e,a as Re,b as Te,k as $e,c as Ne,d as Ce,h as xe,j as Ee,l as Me,e as De}from"./data-156ef419-1784045078568.js";import{b as rt,e as Et,a as Le,B as Pe}from"./data-5c83c66b-1784045078568.js";import{f as Fe,h as ze,i as He,j as Oe,k as Be,l as je,p as qe,r as Ie,a as Ve}from"./data-efed6b46-1784045078568.js";import{f as Ue,h as Ke,s as We,j as Ye,k as Ge,l as Qe,m as Je,p as Xe,n as Ze,o as tn,q as en,r as nn,t as sn,u as an}from"./data-12043e21-1784045078568.js";import"./index-e9f36657-1784045078568.js";import"./livestockData-36ec0ae2-1784045078568.js";import"./townshipBoundaries-1b068bef-1784045078568.js";const on="/openApi";function rn(e){return/^https?:\/\//.test(e)?e:`${on}${e.startsWith("/")?e:`/${e}`}`}function un(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function ln(n){return F(this,arguments,function*(e,t=window.location.hash||window.location.pathname,s="智慧管理"){const r=yield $t(rn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:s},timeout:12e3}).then(un);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(cn).filter(w=>w.rows.length)})}function cn(e,t){const s=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:dn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:mn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:s.map((n,r)=>({key:(n==null?void 0:n.key)||`${(n==null?void 0:n.name)||"row"}-${r}`,name:String((n==null?void 0:n.name)||`指标${r+1}`),value:fn(n==null?void 0:n.value),rawValue:n==null?void 0:n.value,unit:(n==null?void 0:n.unit)||(e==null?void 0:e.unit)||"",extra:(n==null?void 0:n.extra)||""})).filter(n=>n.name&&Number.isFinite(n.value))}}function dn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function mn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function fn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Rt="智慧管理",gn=80,yn=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:An},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:wn},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:Sn},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:_n},{key:"industry",label:"牦牛产业链",patterns:[/产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Rn}];function vn(s){return F(this,arguments,function*(e,t={}){var C;const n=Lt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],w=ln(n,r,Rt).catch(E=>(u.push(Pt(E,"辅助图表暂不可用")),[])),v=bn(n),f=yield Promise.all(v.map(E=>E.build(n,u))),h=Nn(f.flat()),b=yield w,$=v.length===1&&((C=v[0])==null?void 0:C.key)==="overview",H=h.length?h:$?Mt():[],Z=Mn(n,H),O={question:n,pageName:Rt,pagePath:r,scope:Z,intents:v.map(E=>({key:E.key,label:E.label})),datasets:H,charts:b,notes:Cn(H,b,u),warnings:u};return M(T({},O),{insights:xn(O)})})}function pn(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],s=Array.isArray(e.insights)?e.insights:[],n=e.scope||"红原县",r=t.slice(0,4).map(v=>v.title).filter(Boolean),u=s.slice(0,5).map(v=>`- ${v.label}:${v.value}${v.note?`(${v.note})`:""}`),w=(e.notes||[]).slice(0,3).map(v=>`- ${v}`);return["**总体情况**",`已按${n}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(v=>`- ${v}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",w.length?"**数据说明**":"",...w].filter(Boolean).join(` +var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ht=Object.getOwnPropertySymbols;var Xt=Object.prototype.hasOwnProperty,Zt=Object.prototype.propertyIsEnumerable;var kt=(e,t,s)=>t in e?Gt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,T=(e,t)=>{for(var s in t||(t={}))Xt.call(t,s)&&kt(e,s,t[s]);if(ht)for(var s of ht(t))Zt.call(t,s)&&kt(e,s,t[s]);return e},M=(e,t)=>Qt(e,Jt(t));var F=(e,t,s)=>new Promise((n,r)=>{var u=f=>{try{v(s.next(f))}catch(h){r(h)}},w=f=>{try{v(s.throw(f))}catch(h){r(h)}},v=f=>f.done?n(f.value):Promise.resolve(f.value).then(u,w);v((s=s.apply(e,t)).next())});import{g as it,q as te,h as ee,w as ne,o as y,c as p,z as At,F as P,y as z,n as j,a as g,t as A,j as k,C as se,u as ie,B as St,f as _t,s as ae,H as oe,e as re,D as ue,G as le,d as D,A as ce}from"./index-1784074877048.js";import{r as $t,n as Nt}from"./index-bc047bb3-1784074877048.js";import{a as de,c as me,b as fe,l as ge}from"./yakApi-16bd23bc-1784074877048.js";import{h as ye,a as ve,r as Ct,b as pe,t as xt,y as be,c as we,s as he,d as ke,e as Ae}from"./data-d4fc629d-1784074877048.js";import{p as Se,i as _e,a as Re,b as Te,k as $e,c as Ne,d as Ce,h as xe,j as Ee,l as Me,e as De}from"./data-202a0afb-1784074877048.js";import{b as rt,e as Et,a as Le,B as Pe}from"./data-5c83c66b-1784074877048.js";import{f as Fe,h as ze,i as He,j as Oe,k as Be,l as je,p as qe,r as Ie,a as Ve}from"./data-c66f5cee-1784074877048.js";import{f as Ue,h as Ke,s as We,j as Ye,k as Ge,l as Qe,m as Je,p as Xe,n as Ze,o as tn,q as en,r as nn,t as sn,u as an}from"./data-631f012a-1784074877048.js";import"./index-e9f36657-1784074877048.js";import"./livestockData-36ec0ae2-1784074877048.js";import"./townshipBoundaries-1b068bef-1784074877048.js";const on="/openApi";function rn(e){return/^https?:\/\//.test(e)?e:`${on}${e.startsWith("/")?e:`/${e}`}`}function un(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"图表接口请求失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function ln(n){return F(this,arguments,function*(e,t=window.location.hash||window.location.pathname,s="智慧管理"){const r=yield $t(rn("/ai/stat/charts"),{params:{question:e,pagePath:t,pageName:s},timeout:12e3}).then(un);return(Array.isArray(r==null?void 0:r.charts)?r.charts:[]).map(cn).filter(w=>w.rows.length)})}function cn(e,t){const s=Array.isArray(e==null?void 0:e.rows)?e.rows:[];return{id:(e==null?void 0:e.id)||`smart-chart-${t}`,type:dn(e==null?void 0:e.type),title:(e==null?void 0:e.title)||`统计图表${t+1}`,subtitle:mn(e==null?void 0:e.subtitle),unit:(e==null?void 0:e.unit)||"",source:(e==null?void 0:e.source)||{},rows:s.map((n,r)=>({key:(n==null?void 0:n.key)||`${(n==null?void 0:n.name)||"row"}-${r}`,name:String((n==null?void 0:n.name)||`指标${r+1}`),value:fn(n==null?void 0:n.value),rawValue:n==null?void 0:n.value,unit:(n==null?void 0:n.unit)||(e==null?void 0:e.unit)||"",extra:(n==null?void 0:n.extra)||""})).filter(n=>n.name&&Number.isFinite(n.value))}}function dn(e){return["pie","donut"].includes(e)?"pie":["line","trend"].includes(e)?"line":"bar"}function mn(e){const t=String(e||"").trim();return!t||/^(数据)?来源[::]/.test(t)||t.includes("固定展示")?"":t}function fn(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}const Rt="智慧管理",gn=80,yn=[{key:"livestock_balance",label:"草畜平衡",patterns:[/草畜|平衡|承载|载畜|超载|放牧压力|轮牧|休牧/],build:An},{key:"yak",label:"牦牛管理",patterns:[/牦牛|耗牛|犛牛|存栏|畜群|牛群|牛犊|母牛|公牛|出栏|交易|预测/],build:wn},{key:"pasture",label:"牧户管理",patterns:[/牧户|牧场|联户|在线|年龄|性别|户均|草场/],build:Sn},{key:"ecology",label:"生态保护",patterns:[/生态|公益林|湿地|草地|林地|保护|修复|红线|公园|自然保护地|工程/],build:_n},{key:"industry",label:"牦牛产业链",patterns:[/产业链|产业|主体|加工|屠宰|饲草|储草|家庭生态牧场|品牌|服务能力/],build:Rn}];function vn(s){return F(this,arguments,function*(e,t={}){var C;const n=Lt(e),r=t.pagePath||window.location.hash||window.location.pathname,u=[],w=ln(n,r,Rt).catch(E=>(u.push(Pt(E,"辅助图表暂不可用")),[])),v=bn(n),f=yield Promise.all(v.map(E=>E.build(n,u))),h=Nn(f.flat()),b=yield w,$=v.length===1&&((C=v[0])==null?void 0:C.key)==="overview",H=h.length?h:$?Mt():[],Z=Mn(n,H),O={question:n,pageName:Rt,pagePath:r,scope:Z,intents:v.map(E=>({key:E.key,label:E.label})),datasets:H,charts:b,notes:Cn(H,b,u),warnings:u};return M(T({},O),{insights:xn(O)})})}function pn(e={}){const t=Array.isArray(e.datasets)?e.datasets:[],s=Array.isArray(e.insights)?e.insights:[],n=e.scope||"红原县",r=t.slice(0,4).map(v=>v.title).filter(Boolean),u=s.slice(0,5).map(v=>`- ${v.label}:${v.value}${v.note?`(${v.note})`:""}`),w=(e.notes||[]).slice(0,3).map(v=>`- ${v}`);return["**总体情况**",`已按${n}相关业务数据整理本次问题的业务信息。`,"","**已整理数据**",...r.length?r.map(v=>`- ${v}`):["- 平台综合业务数据"],"",u.length?"**关键数据**":"",...u,"",w.length?"**数据说明**":"",...w].filter(Boolean).join(` `)}function bn(e){const t=yn.filter(s=>s.patterns.some(n=>n.test(e)));return t.length?t:[{key:"overview",label:"综合总览",build:()=>Mt()}]}function Mt(){return[l("home.topStats","首页核心指标",ye,"平台业务汇总数据"),l("home.heroStats","资源与草畜概览",ve,"平台业务汇总数据"),l("home.resourceComposition","资源构成",Ct,"平台业务汇总数据"),l("home.businessMatrix","业务矩阵",pe,"平台业务汇总数据"),l("home.townSynergy","乡镇林草湿与牦牛协同",xt,"平台业务汇总数据"),l("home.yakTown","首页牦牛乡镇排行",be,"平台业务汇总数据"),l("home.trade","首页交易结构",we,"平台业务汇总数据"),l("home.support","首页支撑产业",he,"平台业务汇总数据"),l("home.dataFlow","数据流汇总",ke,"平台业务汇总数据"),l("home.centerOrbit","首页中心节点",Ae,"平台业务汇总数据")]}function wn(s){return F(this,arguments,function*(e,t=[]){const[n,r,u,w]=yield Promise.allSettled([de(),me(),fe(),ge()]);J(n,t,"牦牛乡镇存栏数据暂未取得"),J(r,t,"牦牛畜群结构数据暂未取得"),J(u,t,"牦牛预测数据暂未取得"),J(w,t,"牦牛交易数据暂未取得");const v=hn(Q(n)),f=Tt(Q(r)),h=kn(Q(u)),b=Tt(Q(w));return[l("yak.town","乡镇牦牛存栏分布",v,"牦牛管理接口数据"),l("yak.structureRows","畜群结构数量",f,"牦牛管理接口数据"),l("yak.forecastRows","牦牛月度预测",h,"牦牛管理接口数据"),l("yak.tradeImpact","交易影响",b,"牦牛交易接口数据")]})}function Q(e){return e.status==="fulfilled"&&Array.isArray(e.value)?e.value:[]}function J(e,t,s){e.status==="rejected"&&t.push(Pt(e.reason,s))}function hn(e=[]){return e.map((t,s)=>{var u,w,v,f;const n=String(t.name||t.areaName||t.area_name||t.townName||t.zoneName||"").trim(),r=ut((f=(v=(w=(u=t.count)!=null?u:t.value)!=null?w:t.number)!=null?v:t.yakCount)!=null?f:t.yak_count);return{key:t.key||t.id||t.areaCode||t.area_code||`${n||"yak-town"}-${s}`,name:n,count:r,value:r,unit:t.unit||"头"}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,s)=>s.count-t.count)}function Tt(e=[]){return e.map((t,s)=>{var u,w,v,f,h;const n=String(t.name||t.label||t.type||t.key||"").trim(),r=ut((h=(f=(v=(w=(u=t.count)!=null?u:t.value)!=null?w:t.number)!=null?v:t.yakCount)!=null?f:t.headCount)!=null?h:t.amount);return{key:t.key||t.id||`${n||"yak-metric"}-${s}`,name:n,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.count)).sort((t,s)=>s.count-t.count)}function kn(e=[]){return e.map((t,s)=>{var u,w,v,f;const n=String(t.name||t.label||t.month||t.date||t.time||"").trim(),r=ut((f=(v=(w=(u=t.stock)!=null?u:t.count)!=null?w:t.value)!=null?v:t.number)!=null?f:t.yakCount);return{key:t.key||t.id||`${n||"yak-forecast"}-${s}`,name:n,label:n,stock:r,count:r,value:r,unit:t.unit||"头",extra:t.extra||""}}).filter(t=>t.name&&Number.isFinite(t.stock))}function An(e){const t=Tn(e),s=(t==null?void 0:t.name)||"红原县";return[l("balance.target",`${s}草畜平衡`,[t],"平台业务汇总数据"),l("balance.county","全县草畜平衡",[Et],"平台业务汇总数据"),l("balance.town","乡镇草畜平衡",rt,"平台业务汇总数据"),l("balance.fallbackRows","草畜平衡兜底数据",Le,"平台业务汇总数据"),l("balance.params","草畜平衡计算参数",[Pe],"平台业务汇总数据")]}function Sn(){return[l("pasture.core","牧户核心指标",Se,"平台业务汇总数据"),l("pasture.topStats","牧户顶部指标",_e,"平台业务汇总数据"),l("pasture.town","牧户乡镇分布",Re,"平台业务汇总数据"),l("pasture.online","牧户在线率",Te,"平台业务汇总数据"),l("pasture.structure","牧户年龄性别结构",$e,"平台业务汇总数据"),l("pasture.age","牧户年龄结构",Ne,"平台业务汇总数据"),l("pasture.gender","牧户性别结构",Ce,"平台业务汇总数据"),l("pasture.list","牧户示例列表",xe,"平台业务汇总数据"),l("pasture.grassland","牧户草场资源",Ee,"平台业务汇总数据"),l("pasture.season","牧户季节草场",Me,"平台业务汇总数据"),l("pasture.map","牧户地图统计",De,"平台业务汇总数据")]}function _n(){return[l("ecology.parkTopStats","生态保护核心指标",Fe,"平台业务汇总数据"),l("ecology.parkCore","国家公园核心指标",ze,"平台业务汇总数据"),l("ecology.parkTownRows","国家公园乡镇数据",He,"平台业务汇总数据"),l("ecology.restorationTopStats","生态修复项目汇总",Oe,"平台业务汇总数据"),l("ecology.engineeringTopStats","生态工程分析指标",Be,"平台业务汇总数据"),l("ecology.engineeringProjectFeatures","工程分析项目点",je,"平台业务汇总数据"),l("ecology.parkPanels","生态保护图表数据",at(qe),"平台业务汇总数据"),l("ecology.restorationPanels","生态修复图表数据",at(Ie),"平台业务汇总数据"),l("ecology.engineeringAnalysisPanels","工程分析图表数据",at(Ve),"平台业务汇总数据"),l("home.resourceComposition","林草湿资源构成",Ct,"平台业务汇总数据"),l("home.townSynergy","乡镇林草湿与牦牛协同",xt,"平台业务汇总数据")]}function Rn(){return[l("industry.topStats","产业链核心指标",Ue,"平台业务汇总数据"),l("industry.overview","产业链总览",Ke,"平台业务汇总数据"),l("industry.stageComposition","产业阶段构成",We,"平台业务汇总数据"),l("industry.stageRows","产业阶段说明",Ye,"平台业务汇总数据"),l("industry.breedingLevel","养殖水平",Ge,"平台业务汇总数据"),l("industry.forageSecurity","饲草保障能力",Qe,"平台业务汇总数据"),l("industry.value","产业价值指标",Je,"平台业务汇总数据"),l("industry.processingAbility","加工能力指标",Xe,"平台业务汇总数据"),l("industry.serviceCapability","服务能力指标",Ze,"平台业务汇总数据"),l("industry.financial","金融服务",tn,"平台业务汇总数据"),l("industry.supportPoints","饲草储备点位",en,"平台业务汇总数据"),l("industry.processingPoints","加工屠宰点位",nn,"平台业务汇总数据"),l("industry.points","产业链点位",sn,"平台业务汇总数据"),l("industry.list","产业链主体列表",an,"平台业务汇总数据")]}function Tn(e){return rt.find(t=>Dt(e,t.name))||Et}function l(e,t,s,n){return{id:e,title:t,suggestedView:Dn(t,s),source:{label:n||"平台展示数据"},rows:$n(s)}}function $n(e){return(Array.isArray(e)?e:[]).slice(0,gn).map(t=>ot(t)).filter(t=>t&&typeof t=="object")}function ot(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,30).map(s=>ot(s,t+1)):typeof e=="object"?Object.entries(e).reduce((s,[n,r])=>(["icon","color","tone","image","cover","component"].includes(n)||(s[n]=ot(r,t+1)),s),{}):String(e)}function Nn(e=[]){const t=new Set;return e.filter(s=>{var n;return!((n=s==null?void 0:s.rows)!=null&&n.length)||t.has(s.id)?!1:(t.add(s.id),!0)})}function Cn(e,t,s){return[...s].filter(Boolean)}function xn(e){const t=[];return(e.datasets||[]).some(s=>{const n=En(s);return n&&t.push(n),t.length>=5}),(e.charts||[]).some(s=>{var f,h;const n=(s.rows||[]).filter(b=>Number.isFinite(Number(b.value)));if(!n.length)return!1;const r=n.slice().sort((b,$)=>Number($.value||0)-Number(b.value||0)),u=s.unit==="%"||/率|占比|比例/.test(s.title||""),w=u?(f=r[0])==null?void 0:f.value:n.reduce((b,$)=>b+Number($.value||0),0),v=u&&((h=r[0])!=null&&h.name)?`${s.title||"关联图表"}:${r[0].name}`:s.title||"关联图表";return t.push({label:v,value:`${Ft(w)}${s.unit||""}`,note:n.length>1?u?"数值较高项":`覆盖 ${n.length} 项`:""}),t.length>=5}),t.slice(0,5)}function En(e){var w,v,f,h;const t=(e.rows||[]).find(Boolean);if(!t)return null;const s=t.name||t.areaName||t.zh||t.label||e.title,n=t.overloadRate!==void 0||t.overloadrate!==void 0,r=n?(w=t.overloadRate)!=null?w:t.overloadrate:(h=(f=(v=t.value)!=null?v:t.yakNumber)!=null?f:t.livestockCapacity)!=null?h:t.areaRange;if(r==null||r==="")return null;const u=t.unit||(n?"%":t.yakNumber!==void 0||t.livestockCapacity!==void 0?"头":"");return{label:n?`${s}超载率`:s,value:`${Ft(r)}${u}`,note:n&&t.level||e.title}}function at(e={}){return Object.entries(e||{}).flatMap(([t,s])=>(Array.isArray(s)?s:[]).flatMap(n=>(Array.isArray(n==null?void 0:n.rows)?n.rows:Array.isArray(n==null?void 0:n.data)?n.data:[]).map(u=>T({groupKey:t,panelKey:n.key,panelTitle:n.title},u))))}function Mn(e,t){var r,u;const s=rt.find(w=>Dt(e,w.name));if(s)return s.name;const n=(u=(r=t.find(w=>w.id==="balance.target"))==null?void 0:r.rows)==null?void 0:u[0];return n!=null&&n.name?n.name:n!=null&&n.areaName?n.areaName:"红原县"}function Dn(e,t){return!Array.isArray(t)||t.length<=1?"metrics":/结构|构成|占比|比例/.test(e)?"pie":/趋势|预测/.test(e)?"line":"bar-table"}function Dt(e,t){const s=Lt(e),n=String(t||"").replace(/(县|镇|村|乡|牧场|牧户|联户)$/g,"");return!!(t&&(s.includes(t)||n&&s.includes(n)))}function Lt(e){return String(e||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛").trim()}function Pt(e,t){const s=String((e==null?void 0:e.message)||"");return(e==null?void 0:e.code)===401||(e==null?void 0:e.code)==="401"||/未登录|授权|Unauthorized|HTTP 401/i.test(s)?"当前登录状态已失效,部分接口数据未取得":/timeout|timed out|超时/i.test(s)?`${t},接口响应超时`:t}function ut(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}function Ft(e){const t=Number(String(e).replace(/,/g,""));return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:2}):e||"--"}const Ln="/openApi",Pn=12e4,Fn=8e3,zn=12,Hn=500;function On(e){return/^https?:\/\//.test(e)?e:`${Ln}${e.startsWith("/")?e:`/${e}`}`}function Bn(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code)){const s=new Error((e==null?void 0:e.message)||(e==null?void 0:e.msg)||"HTML界面生成失败");throw s.code=e==null?void 0:e.code,s}return Nt(e)}function jn(){return F(this,arguments,function*({question:e,answer:t="",charts:s=[],datasets:n=[],context:r=null,pagePath:u=window.location.hash||window.location.pathname,pageName:w="智慧管理"}={}){const v=qn({question:e,answer:t,charts:s,datasets:n,context:r}),f=yield $t(On("/ai/artifact/html"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:e,pagePath:u,pageName:w,dataJson:v}),timeout:11e4}).then(Bn),h=String((f==null?void 0:f.provider)||""),b=String((f==null?void 0:f.model)||"");if(h.toLowerCase()!=="deepseek"||!b.toLowerCase().startsWith("deepseek-"))throw new Error("HTML界面不是由DeepSeek模型生成,已拒绝展示");const $=Kn((f==null?void 0:f.html)||(f==null?void 0:f.content)||f);if(!$)throw new Error("代码模型没有返回完整HTML");if(Wn($))throw new Error("专题页面仍为原始数据表,已拒绝展示,请重新生成");return M(T({},f),{html:$})})}function qn({question:e,answer:t,charts:s,datasets:n,context:r}){const u={question:String(e||"").trim(),generatedAt:new Date().toISOString(),presentation:{format:"business-report",requirements:["输出应为业务报告页面,而不是原始数据表或字段清单。","不要直接展示 key、rawValue、areaCode、areaRange 等技术字段名。","页面需包含结论、关键指标、图表化对比、重点对象和工作建议。"]},answer:String(t||"").slice(0,Fn),context:In(r),datasets:[...Vn(s),...Un(n)]},w=JSON.stringify(u);if(w.length>Pn){const v=new Error("汇总数据超过120000字符,请先缩小查询范围");throw v.code="ARTIFACT_DATA_TOO_LARGE",v}return w}function In(e){if(!e||typeof e!="object")return null;const{question:t,pageName:s,pagePath:n,scope:r,intents:u,notes:w,warnings:v,insights:f}=e;return X({question:t,pageName:s,pagePath:n,scope:r,intents:u,notes:w,warnings:v,insights:f})}function Vn(e=[]){return(Array.isArray(e)?e:[]).slice(0,6).map((t,s)=>({id:(t==null?void 0:t.id)||`chart-${s+1}`,title:(t==null?void 0:t.title)||`统计数据${s+1}`,suggestedView:(t==null?void 0:t.type)||"bar",unit:(t==null?void 0:t.unit)||"",subtitle:(t==null?void 0:t.subtitle)||"",source:(t==null?void 0:t.source)||{},rows:zt(t==null?void 0:t.rows)}))}function Un(e=[]){return(Array.isArray(e)?e:[]).slice(0,zn).map((t,s)=>({id:(t==null?void 0:t.id)||`dataset-${s+1}`,title:(t==null?void 0:t.title)||(t==null?void 0:t.name)||`汇总数据${s+1}`,suggestedView:(t==null?void 0:t.suggestedView)||(t==null?void 0:t.type)||"auto",unit:(t==null?void 0:t.unit)||"",source:(t==null?void 0:t.source)||{},rows:zt((t==null?void 0:t.rows)||(t==null?void 0:t.data)||t)}))}function zt(e){return(Array.isArray(e)?e:[]).slice(0,Hn).map(t=>X(t))}function X(e,t=0){return t>4||e===void 0||typeof e=="function"?null:e===null||["string","number","boolean"].includes(typeof e)?e:Array.isArray(e)?e.slice(0,50).map(s=>X(s,t+1)):typeof e=="object"?Object.entries(e).reduce((s,[n,r])=>(s[n]=X(r,t+1),s),{}):String(e)}function Kn(e){let t=String(e||"").trim();t.startsWith("```")&&(t=t.replace(/^```(?:html)?\s*/i,"").replace(/\s*```$/i,"").trim());const s=t.match(/");return s&&n>=s.index&&(t=t.slice(s.index,n+7)),/]+>/g," ").replace(/\s+/g," ").toLowerCase(),n=(t.match(/s.includes(w)).length;return n>=2&&u>=4||n>=1&&u>=6}function Yn(e){const t=String(e||"").trim();if(!t||typeof DOMParser=="undefined")return"";const s=new DOMParser().parseFromString(t,"text/html"),n=s.createElement("script");return n.textContent=` (() => { const notify = (type, message = "") => { @@ -9,5 +9,5 @@ var Gt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnProp window.addEventListener("DOMContentLoaded", () => notify("ready")); })(); `,s.head.prepend(n),` -${s.documentElement.outerHTML}`}const Gn={class:"wisdom-management"},Qn={key:0,class:"wisdom-side wisdom-side-left"},Jn={key:0,class:"wisdom-side-header"},Xn={key:0},Zn={key:1,class:"wisdom-side-metrics"},ts={key:0},es=["innerHTML"],ns={key:3,class:"wisdom-side-actions"},ss=["disabled","onClick"],is={key:1,class:"wisdom-side wisdom-side-right"},as={key:0,class:"wisdom-side-header"},os={key:0},rs={key:2,class:"wisdom-side-metrics"},us={key:0},ls=["innerHTML"],cs={key:4,class:"wisdom-side-actions"},ds=["disabled","onClick"],ms={key:2,class:"wisdom-artifact-workspace"},fs={class:"wisdom-artifact-header"},gs={class:"wisdom-artifact-heading"},ys={class:"wisdom-artifact-tools"},vs=["disabled"],ps={class:"wisdom-artifact-body"},bs={key:0,class:"wisdom-artifact-building"},ws={class:"wisdom-artifact-building__intro"},hs=["srcdoc"],ks={key:2,class:"wisdom-artifact-error"},As=["disabled"],Ss={key:0,class:"wisdom-empty-state"},_s={key:0,class:"wisdom-message-mark"},Rs={class:"wisdom-bubble"},Ts={key:0,class:"wisdom-digesting"},$s=["innerHTML"],Ns={key:2,class:"wisdom-stream-caret"},Cs={key:3,class:"wisdom-suggestion-list"},xs=["disabled","onClick"],Es={class:"wisdom-input-shell"},Ms=["disabled"],Ds=["disabled","title","aria-label"],Ls=["disabled"],Ps={key:0,class:"wisdom-button-loading"},Fs="请输入需要了解的业务事项,系统将依据平台汇总数据形成要点分析和专题页面。",Gs={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=ue({loader:()=>le(()=>import("./SmartChartRenderer-4996c796-1784045078568.js"),["./SmartChartRenderer-4996c796-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./index.esm.min-43166a2f-1784045078568.js","./SmartChartRenderer-7a3a96b9-balabala-1784045078568.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),s=e,n=D(""),r=D([]),u=D(!1),w=D(null),v=D(null),f=D([]),h=D([]),b=D(lt()),$=it(()=>b.value.status!=="idle"),H=it(()=>["collecting","generating"].includes(b.value.status)),Z=it(()=>b.value.status==="collecting"?"汇总数据":b.value.status==="generating"?"生成页面":b.value.status==="ready"?"DeepSeek生成":b.value.status==="error"?"生成失败":b.value.status==="waiting"?"等待选择":"待生成"),O=D(!1),C=D(!1),E=D("");let q=null,x=null,B=0;const I=D(null);te(()=>{qt(),window.addEventListener("message",ft)}),ee(()=>{tt(),Y(),B+=1,window.removeEventListener("message",ft)}),ne(()=>s.active,i=>{i||(tt(),Y(),B+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?M(T({},o),{streaming:!1,digesting:!1}):o))});function W(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function lt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function Ht(i){B+=1,I.value=null,b.value=M(T({},lt()),{status:"collecting",title:ct(i),question:i})}function ct(i){const o=String(i||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function dt(i){return F(this,null,function*(){const o={question:(i==null?void 0:i.question)||b.value.question,answer:(i==null?void 0:i.answer)||"",charts:Array.isArray(i==null?void 0:i.charts)?i.charts:[],datasets:Array.isArray(i==null?void 0:i.datasets)?i.datasets:[],context:(i==null?void 0:i.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};I.value=o;const a=++B;b.value=M(T({},b.value),{status:"generating",title:ct(o.question),question:o.question,html:"",error:"",model:""});try{const c=yield jn(o);if(a!==B)return{stale:!0};const d=Yn(c.html);if(!d)throw new Error("生成页面内容为空");return b.value=M(T({},b.value),{status:"ready",html:d,error:"",model:c.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:c}}catch(c){if(a!==B)return{stale:!0};const d=bt(c,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",c),b.value=M(T({},b.value),{status:"error",html:"",error:d,model:"",renderKey:Date.now()}),{ok:!1,message:d,error:c}}})}function mt(){!I.value||H.value||dt(I.value)}function Ot(i){B+=1,b.value=M(T({},b.value),{status:"error",html:"",error:i,renderKey:Date.now()})}function Bt(){b.value.status!=="ready"&&(b.value=M(T({},b.value),{status:"ready"}))}function ft(i){var o,a;i.source!==((o=v.value)==null?void 0:o.contentWindow)||((a=i.data)==null?void 0:a.source)!=="smart-artifact"||i.data.type==="runtime-error"&&(b.value=M(T({},b.value),{status:"error",html:"",error:i.data.message||"生成界面运行异常",renderKey:Date.now()}))}function gt(i){return String(i||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function jt(i){return gt(i).trim()}function qt(){if(typeof window=="undefined")return;const i=window.SpeechRecognition||window.webkitSpeechRecognition;O.value=!!i,i&&(x=new i,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{C.value=!0,E.value=""},x.onresult=o=>{const c=Array.from(o.results||[]).map(d=>{var m;return((m=d==null?void 0:d[0])==null?void 0:m.transcript)||""}).join("").trim();c&&(n.value=c)},x.onerror=o=>{C.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{C.value=!1})}function It(){if(!(!x||u.value)){if(C.value){Y();return}try{E.value="",x.start()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入启动失败",C.value=!1}}}function Y(){if(!(!x||!C.value))try{x.stop()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入已结束"}finally{C.value=!1}}function V(){return F(this,arguments,function*(i=n.value){const o=jt(i);if(!o||u.value)return;Y();const a={id:W(),role:"user",text:o},c={id:W(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,c],n.value="",u.value=!0,Ht(o),yield wt(),yield Vt(o,c.id)})}function Vt(i,o){return F(this,null,function*(){var a;U(o,{digestText:"生成中"});try{const c=window.location.hash||window.location.pathname,d=yield vn(i,{pagePath:c}),m=pn(d),S=(a=d.insights)!=null&&a.length?d.insights:vt(d.charts||[]);U(o,{digesting:!0,digestText:"生成中",insights:S,suggestions:[],allowFollowUp:!0}),yt({question:i,answer:m,charts:d.charts||[],insights:S,suggestions:[]}),pt(o,Ut()),dt({question:i,answer:m,charts:d.charts||[],datasets:d.datasets||[],context:d})}catch(c){const d=bt(c,"上下文数据整理失败,请稍后重试。");yt({question:i,answer:d,charts:[],insights:[],suggestions:[]}),Ot(d),pt(o,d)}})}function Ut(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` +${s.documentElement.outerHTML}`}const Gn={class:"wisdom-management"},Qn={key:0,class:"wisdom-side wisdom-side-left"},Jn={key:0,class:"wisdom-side-header"},Xn={key:0},Zn={key:1,class:"wisdom-side-metrics"},ts={key:0},es=["innerHTML"],ns={key:3,class:"wisdom-side-actions"},ss=["disabled","onClick"],is={key:1,class:"wisdom-side wisdom-side-right"},as={key:0,class:"wisdom-side-header"},os={key:0},rs={key:2,class:"wisdom-side-metrics"},us={key:0},ls=["innerHTML"],cs={key:4,class:"wisdom-side-actions"},ds=["disabled","onClick"],ms={key:2,class:"wisdom-artifact-workspace"},fs={class:"wisdom-artifact-header"},gs={class:"wisdom-artifact-heading"},ys={class:"wisdom-artifact-tools"},vs=["disabled"],ps={class:"wisdom-artifact-body"},bs={key:0,class:"wisdom-artifact-building"},ws={class:"wisdom-artifact-building__intro"},hs=["srcdoc"],ks={key:2,class:"wisdom-artifact-error"},As=["disabled"],Ss={key:0,class:"wisdom-empty-state"},_s={key:0,class:"wisdom-message-mark"},Rs={class:"wisdom-bubble"},Ts={key:0,class:"wisdom-digesting"},$s=["innerHTML"],Ns={key:2,class:"wisdom-stream-caret"},Cs={key:3,class:"wisdom-suggestion-list"},xs=["disabled","onClick"],Es={class:"wisdom-input-shell"},Ms=["disabled"],Ds=["disabled","title","aria-label"],Ls=["disabled"],Ps={key:0,class:"wisdom-button-loading"},Fs="请输入需要了解的业务事项,系统将依据平台汇总数据形成要点分析和专题页面。",Gs={__name:"index",props:{active:{type:Boolean,default:!0}},setup(e){const t=ue({loader:()=>le(()=>import("./SmartChartRenderer-aa5ca709-1784074877048.js"),["./SmartChartRenderer-aa5ca709-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./index.esm.min-469b3f53-1784074877048.js","./SmartChartRenderer-7a3a96b9-balabala-1784074877048.css"],import.meta.url),loadingComponent:{template:'
正在绘制统计图表
'}}),s=e,n=D(""),r=D([]),u=D(!1),w=D(null),v=D(null),f=D([]),h=D([]),b=D(lt()),$=it(()=>b.value.status!=="idle"),H=it(()=>["collecting","generating"].includes(b.value.status)),Z=it(()=>b.value.status==="collecting"?"汇总数据":b.value.status==="generating"?"生成页面":b.value.status==="ready"?"DeepSeek生成":b.value.status==="error"?"生成失败":b.value.status==="waiting"?"等待选择":"待生成"),O=D(!1),C=D(!1),E=D("");let q=null,x=null,B=0;const I=D(null);te(()=>{qt(),window.addEventListener("message",ft)}),ee(()=>{tt(),Y(),B+=1,window.removeEventListener("message",ft)}),ne(()=>s.active,i=>{i||(tt(),Y(),B+=1,u.value=!1,r.value=r.value.map(o=>o.streaming?M(T({},o),{streaming:!1,digesting:!1}):o))});function W(){return`${Date.now()}-${Math.random().toString(16).slice(2)}`}function lt(){return{status:"idle",title:"动态分析",question:"",html:"",error:"",model:"",renderKey:0}}function Ht(i){B+=1,I.value=null,b.value=M(T({},lt()),{status:"collecting",title:ct(i),question:i})}function ct(i){const o=String(i||"动态分析").replace(/[??。!!]+$/g,"").trim();return o.length>28?`${o.slice(0,28)}...`:o||"动态分析"}function dt(i){return F(this,null,function*(){const o={question:(i==null?void 0:i.question)||b.value.question,answer:(i==null?void 0:i.answer)||"",charts:Array.isArray(i==null?void 0:i.charts)?i.charts:[],datasets:Array.isArray(i==null?void 0:i.datasets)?i.datasets:[],context:(i==null?void 0:i.context)||null,pagePath:window.location.hash||window.location.pathname,pageName:"智慧管理"};I.value=o;const a=++B;b.value=M(T({},b.value),{status:"generating",title:ct(o.question),question:o.question,html:"",error:"",model:""});try{const c=yield jn(o);if(a!==B)return{stale:!0};const d=Yn(c.html);if(!d)throw new Error("生成页面内容为空");return b.value=M(T({},b.value),{status:"ready",html:d,error:"",model:c.model||"DeepSeek",renderKey:Date.now()}),{ok:!0,result:c}}catch(c){if(a!==B)return{stale:!0};const d=bt(c,"DeepSeek专题分析生成失败,请稍后重新生成。");return console.error("[智慧管理] DeepSeek HTML生成失败",c),b.value=M(T({},b.value),{status:"error",html:"",error:d,model:"",renderKey:Date.now()}),{ok:!1,message:d,error:c}}})}function mt(){!I.value||H.value||dt(I.value)}function Ot(i){B+=1,b.value=M(T({},b.value),{status:"error",html:"",error:i,renderKey:Date.now()})}function Bt(){b.value.status!=="ready"&&(b.value=M(T({},b.value),{status:"ready"}))}function ft(i){var o,a;i.source!==((o=v.value)==null?void 0:o.contentWindow)||((a=i.data)==null?void 0:a.source)!=="smart-artifact"||i.data.type==="runtime-error"&&(b.value=M(T({},b.value),{status:"error",html:"",error:i.data.message||"生成界面运行异常",renderKey:Date.now()}))}function gt(i){return String(i||"").replace(/耗牛/g,"牦牛").replace(/犛牛/g,"牦牛")}function jt(i){return gt(i).trim()}function qt(){if(typeof window=="undefined")return;const i=window.SpeechRecognition||window.webkitSpeechRecognition;O.value=!!i,i&&(x=new i,x.lang="zh-CN",x.continuous=!1,x.interimResults=!0,x.maxAlternatives=1,x.onstart=()=>{C.value=!0,E.value=""},x.onresult=o=>{const c=Array.from(o.results||[]).map(d=>{var m;return((m=d==null?void 0:d[0])==null?void 0:m.transcript)||""}).join("").trim();c&&(n.value=c)},x.onerror=o=>{C.value=!1,E.value=(o==null?void 0:o.error)||"语音输入失败"},x.onend=()=>{C.value=!1})}function It(){if(!(!x||u.value)){if(C.value){Y();return}try{E.value="",x.start()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入启动失败",C.value=!1}}}function Y(){if(!(!x||!C.value))try{x.stop()}catch(i){E.value=(i==null?void 0:i.message)||"语音输入已结束"}finally{C.value=!1}}function V(){return F(this,arguments,function*(i=n.value){const o=jt(i);if(!o||u.value)return;Y();const a={id:W(),role:"user",text:o},c={id:W(),role:"assistant",steps:[],digesting:!0,digestText:"生成中",visibleText:"",fullText:"",streaming:!1,charts:[],insights:[],suggestions:[]};r.value=[...r.value,a,c],n.value="",u.value=!0,Ht(o),yield wt(),yield Vt(o,c.id)})}function Vt(i,o){return F(this,null,function*(){var a;U(o,{digestText:"生成中"});try{const c=window.location.hash||window.location.pathname,d=yield vn(i,{pagePath:c}),m=pn(d),S=(a=d.insights)!=null&&a.length?d.insights:vt(d.charts||[]);U(o,{digesting:!0,digestText:"生成中",insights:S,suggestions:[],allowFollowUp:!0}),yt({question:i,answer:m,charts:d.charts||[],insights:S,suggestions:[]}),pt(o,Ut()),dt({question:i,answer:m,charts:d.charts||[],datasets:d.datasets||[],context:d})}catch(c){const d=bt(c,"上下文数据整理失败,请稍后重试。");yt({question:i,answer:d,charts:[],insights:[],suggestions:[]}),Ot(d),pt(o,d)}})}function Ut(){return["专题分析页面正在生成,完成后会自动显示在右侧。","你可以继续提出其他问题。"].join(` `)}function G(i){const o=Number(String(i).replace(/,/g,""));return Number.isFinite(o)?o.toLocaleString("zh-CN",{maximumFractionDigits:2}):i||"--"}function yt({question:i,answer:o,charts:a=[],insights:c=[],suggestions:d=[],aiPanels:m}={}){const S=(m==null?void 0:m.leftPanels)||[],R=(m==null?void 0:m.rightPanels)||[];if(S.length||R.length){f.value=S,h.value=R;return}const _=Kt({question:i,answer:o,charts:a,insights:c,suggestions:d});f.value=_.left,h.value=_.right}function Kt({question:i,answer:o,charts:a=[],insights:c=[],suggestions:d=[]}={}){const m=[],S=[],R=(c.length?c:vt(a)).map(_=>({label:_.label,value:_.value,note:_.note}));return!a.length&&!R.length?{left:m,right:S}:(R.length&&m.push({id:`summary-${W()}`,type:"metrics",kicker:"数据要点",title:"数据摘要",badge:"实时",items:R.slice(0,4),actions:[]}),a.slice(0,2).forEach((_,L)=>{S.push({id:`chart-${_.id||L}-${W()}`,type:"chart",kicker:L===0?"可视分析":"关联图表",title:_.title||`统计图表${L+1}`,badge:_.unit||"",chart:_,items:[],actions:[],text:""})}),{left:m.slice(0,2),right:S.slice(0,2)})}function vt(i=[]){const o=[];return i.slice(0,2).forEach(a=>{var K;const c=(a.rows||[]).map(N=>M(T({},N),{value:Number(N.value)})).filter(N=>N.name&&Number.isFinite(N.value));if(!c.length)return;const d=a.unit||((K=c.find(N=>N.unit))==null?void 0:K.unit)||"",m=c.slice().sort((N,st)=>st.value-N.value),S=c.reduce((N,st)=>N+st.value,0),R=S/c.length,_=m[0],L=m[m.length-1];o.push({label:"最高",value:`${_.name} ${G(_.value)}${d}`,note:a.title}),c.length>2&&o.push({label:a.type==="pie"?"占比项":"最低",value:`${L.name} ${G(L.value)}${d}`,note:a.type==="pie"?"最小结构项":"低值区域"}),o.push({label:"合计",value:`${G(S)}${d}`,note:c.length>1?`覆盖 ${c.length} 项`:a.title}),a.type!=="pie"&&c.length>1&&o.push({label:"均值",value:`${G(R)}${d}`,note:"按当前图表项计算"})}),o.slice(0,4)}function U(i,o,a=!0){r.value=r.value.map(c=>c.id===i?T(T({},c),o):c),a&&wt()}function pt(i,o){U(i,{digesting:!1}),Wt(i,o)}function bt(i,o){const a=String((i==null?void 0:i.message)||"");return(i==null?void 0:i.code)===401||(i==null?void 0:i.code)==="401"||(i==null?void 0:i.code)==="HTTP_401"||/未登录|授权|Unauthorized|HTTP 401/i.test(a)?"当前登录状态已失效,请重新登录后查询。":(i==null?void 0:i.code)==="REQUEST_TIMEOUT"||/timeout|timed out|超时/i.test(a)?"服务响应时间较长,请稍后再试,或换一个更具体的问题。":(i==null?void 0:i.code)==="REQUEST_ABORTED"||/aborted|abort|signal/i.test(a)?"本次分析已中断,请重新提交。":(i==null?void 0:i.code)==="HTTP_404"||(i==null?void 0:i.status)===404||/HTTP 404/i.test(a)?"专题分析页面生成服务暂不可用,请稍后重试。":/Failed to fetch|NetworkError|Load failed|HTTP 50|HTTP 40/i.test(a)||/[a-zA-Z]{4,}/.test(a)?o:a||o}function Wt(i,o){tt();const a=gt(o),c=a.length>1200?36:a.length>700?24:14;let d=0;U(i,{fullText:a,visibleText:"",streaming:!0,charts:[]});const m=()=>{if(d=Math.min(d+c,a.length),U(i,{visibleText:a.slice(0,d),streaming:d=a.length){q=null,u.value=!1;return}q=window.setTimeout(m,18)};q=window.setTimeout(m,0)}function tt(){q&&(window.clearTimeout(q),q=null)}function et(i){const o=Yt(i).split(/\r?\n/),a=[];let c=[],d=!1;const m=()=>{c.length&&(a.push(`<${d?"ol":"ul"}>${c.map(S=>`
  • ${nt(S)}
  • `).join("")}`),c=[],d=!1)};return o.forEach(S=>{const R=S.trim();if(!R){m();return}const _=R.match(/^#{1,4}\s+(.+)$/)||R.match(/^\*\*(.+)\*\*$/);if(_){m(),a.push(`

    ${nt(_[1])}

    `);return}const L=R.match(/^\d+[.)、]\s+(.+)$/),K=R.match(/^[-*]\s+(.+)$/);if(L||K){const N=!!L;c.length&&d!==N&&m(),d=N,c.push(L?L[1]:K[1]);return}m(),a.push(`

    ${nt(R)}

    `)}),m(),a.join("")}function nt(i){return i.replace(/\*\*([^*]+)\*\*/g,"$1")}function Yt(i){return String(i||"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function wt(){return F(this,null,function*(){yield ce(),window.requestAnimationFrame(()=>{w.value&&(w.value.scrollTop=w.value.scrollHeight)})})}return(i,o)=>(y(),p("div",Gn,[o[17]||(o[17]=At('',1)),f.value.length&&!$.value?(y(),p("aside",Qn,[(y(!0),p(P,null,z(f.value,a=>{var c,d;return y(),p("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(y(),p("header",Jn,[g("div",null,[g("span",null,A(a.kicker),1),g("strong",null,A(a.title),1)]),a.badge?(y(),p("em",Xn,A(a.badge),1)):k("",!0)])),(c=a.items)!=null&&c.length?(y(),p("div",Zn,[(y(!0),p(P,null,z(a.items,m=>(y(),p("div",{key:`${a.id}-${m.label}`,class:"wisdom-side-metric"},[g("span",null,A(m.label),1),g("strong",null,A(m.value),1),m.note?(y(),p("em",ts,A(m.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(y(),p("div",{key:2,class:"wisdom-side-text",innerHTML:et(a.text)},null,8,es)):k("",!0),(d=a.actions)!=null&&d.length?(y(),p("div",ns,[(y(!0),p(P,null,z(a.actions,m=>(y(),p("button",{key:m.question,type:"button",disabled:u.value,onClick:S=>V(m.question)},A(m.label),9,ss))),128))])):k("",!0)],2)}),128))])):k("",!0),h.value.length&&!$.value?(y(),p("aside",is,[(y(!0),p(P,null,z(h.value,a=>{var c,d;return y(),p("section",{key:a.id,class:j(["wisdom-side-panel",`is-${a.type}`])},[a.chart?k("",!0):(y(),p("header",as,[g("div",null,[g("span",null,A(a.kicker),1),g("strong",null,A(a.title),1)]),a.badge?(y(),p("em",os,A(a.badge),1)):k("",!0)])),a.chart?(y(),se(ie(t),{key:1,class:"wisdom-side-chart",chart:a.chart},null,8,["chart"])):k("",!0),(c=a.items)!=null&&c.length?(y(),p("div",rs,[(y(!0),p(P,null,z(a.items,m=>(y(),p("div",{key:`${a.id}-${m.label}`,class:"wisdom-side-metric"},[g("span",null,A(m.label),1),g("strong",null,A(m.value),1),m.note?(y(),p("em",us,A(m.note),1)):k("",!0)]))),128))])):k("",!0),a.text?(y(),p("div",{key:3,class:"wisdom-side-text",innerHTML:et(a.text)},null,8,ls)):k("",!0),(d=a.actions)!=null&&d.length?(y(),p("div",cs,[(y(!0),p(P,null,z(a.actions,m=>(y(),p("button",{key:m.question,type:"button",disabled:u.value,onClick:S=>V(m.question)},A(m.label),9,ds))),128))])):k("",!0)],2)}),128))])):k("",!0),$.value?(y(),p("section",ms,[g("header",fs,[g("div",gs,[o[4]||(o[4]=g("span",{class:"wisdom-artifact-mark","aria-hidden":"true"},null,-1)),g("div",null,[o[3]||(o[3]=g("small",null,"专题分析",-1)),g("strong",null,A(b.value.title),1)])]),g("div",ys,[g("span",{class:j(["wisdom-artifact-status",`is-${b.value.status}`])},[o[5]||(o[5]=g("i",null,null,-1)),St(A(Z.value),1)],2),b.value.status==="ready"||b.value.status==="error"?(y(),p("button",{key:0,type:"button",disabled:H.value||!I.value,title:"重新生成当前界面",onClick:mt}," 重新生成 ",8,vs)):k("",!0)])]),g("div",ps,[H.value?(y(),p("div",bs,[g("div",ws,[o[6]||(o[6]=g("span",{class:"wisdom-artifact-building__spinner"},null,-1)),g("div",null,[g("strong",null,A(b.value.status==="collecting"?"正在汇总业务数据":"正在生成专题分析页面"),1)])]),o[7]||(o[7]=At('
    ',3))])):b.value.html?(y(),p("iframe",{key:b.value.renderKey,ref_key:"artifactFrameRef",ref:v,class:"wisdom-artifact-frame",srcdoc:b.value.html,sandbox:"allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox allow-downloads allow-modals",referrerpolicy:"no-referrer",title:"专题分析页面",onLoad:Bt},null,40,hs)):(y(),p("div",ks,[o[8]||(o[8]=g("strong",null,"专题分析页面暂未生成",-1)),g("p",null,A(b.value.error||"当前数据不足以形成专题分析页面。"),1),g("button",{type:"button",disabled:!I.value,onClick:mt},"重新生成",8,As)]))])])):k("",!0),g("main",{class:j(["wisdom-chat",{"has-artifact":$.value}])},[g("div",{ref_key:"dialogueRef",ref:w,class:j(["wisdom-dialogue",{"is-empty":!r.value.length}])},[r.value.length?k("",!0):(y(),p("section",Ss,[o[9]||(o[9]=g("div",{class:"wisdom-empty-mark"},[g("span"),g("strong",null,"AI")],-1)),o[10]||(o[10]=g("h2",null,"智慧辅助分析",-1)),g("p",null,A(Fs))])),(y(!0),p(P,null,z(r.value,a=>{var c;return y(),p("article",{key:a.id,class:j(["wisdom-message",`is-${a.role}`])},[a.role==="assistant"?(y(),p("div",_s,[...o[11]||(o[11]=[g("span",null,"智",-1)])])):k("",!0),g("div",Rs,[a.role==="user"?(y(),p(P,{key:0},[St(A(a.text),1)],64)):(y(),p(P,{key:1},[a.digesting?(y(),p("div",Ts,[o[12]||(o[12]=g("span",null,null,-1)),o[13]||(o[13]=g("span",null,null,-1)),o[14]||(o[14]=g("span",null,null,-1)),g("em",null,A(a.digestText||"正在汇总分析"),1)])):k("",!0),a.visibleText?(y(),p("div",{key:1,class:"wisdom-answer",innerHTML:et(a.visibleText)},null,8,$s)):k("",!0),a.streaming?(y(),p("span",Ns)):k("",!0),(c=a.suggestions)!=null&&c.length&&(a.allowFollowUp||!a.digesting&&!a.streaming)?(y(),p("div",Cs,[(y(!0),p(P,null,z(a.suggestions,d=>(y(),p("button",{key:d.question,type:"button",disabled:u.value,onClick:m=>V(d.question)},A(d.label),9,xs))),128))])):k("",!0)],64))])],2)}),128))],2),g("form",{class:"wisdom-input-bar",onSubmit:o[2]||(o[2]=_t(a=>V(),["prevent"]))},[g("div",Es,[o[16]||(o[16]=g("span",{class:"wisdom-input-icon"},null,-1)),ae(g("input",{"onUpdate:modelValue":o[0]||(o[0]=a=>n.value=a),disabled:u.value,autocomplete:"off",placeholder:"请输入需要了解的业务事项",onKeydown:o[1]||(o[1]=re(_t(a=>V(),["prevent"]),["enter"]))},null,40,Ms),[[oe,n.value]]),g("button",{type:"button",class:j(["wisdom-voice-button",{"is-listening":C.value}]),disabled:u.value||!O.value,title:O.value?C.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入","aria-label":O.value?C.value?"停止语音输入":"语音输入":"当前浏览器不支持语音输入",onClick:It},[...o[15]||(o[15]=[g("span",null,null,-1)])],10,Ds),g("button",{class:"wisdom-submit-button",type:"submit",disabled:u.value||!n.value.trim()},[u.value?(y(),p("span",Ps)):k("",!0),g("span",null,A(u.value?"分析中":"发送"),1)],8,Ls)])],32)],2)]))}};export{Gs as default}; diff --git a/docs/assets/index-86616eb2-balabala-1784045078568.css b/docs/assets/index-53046bee-balabala-1784074877048.css similarity index 99% rename from docs/assets/index-86616eb2-balabala-1784045078568.css rename to docs/assets/index-53046bee-balabala-1784074877048.css index e6477a1..2a0682b 100644 --- a/docs/assets/index-86616eb2-balabala-1784045078568.css +++ b/docs/assets/index-53046bee-balabala-1784074877048.css @@ -1 +1 @@ -.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{transform:translate(-50%,-50%);opacity:0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;width:112px;height:46px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4)}.map .provinces-label .number{color:#fff;font-size:24px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translateY(-50%)}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1784045078568.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:760px;transform:translate(-50%);pointer-events:auto}.home-bottom-switcher .topic-switcher{width:760px}.home-bottom-switcher .topic-switcher-menu{flex:0 0 auto}.home-bottom-switcher .topic-switcher-arrow{display:none}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-video-modal-status{position:absolute;top:10px;right:10px;z-index:5;padding:3px 8px;border-left:2px solid #24f6c4;color:#b9ffe9;font-size:11px;line-height:15px;font-weight:800;background:rgba(1,28,26,.76)}.home-video-modal-item.is-offline .home-video-modal-status{border-left-color:#8bf7ff;color:#ffe6a7;background:rgba(42,31,5,.76)}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} +.map{position:absolute;z-index:1;left:0;top:0;right:0;bottom:0;background-color:#000}.map .info-point{background:rgba(0,0,0,.5);color:#a3dcde;font-size:14px;width:170px;height:106px;padding:16px 12px 0;margin-bottom:30px;will-change:transform}.map .info-point-wrap:after,.map .info-point-wrap:before{display:block;content:"";position:absolute;top:0;width:15px;height:15px;border-top:1px solid #4b87a6}.map .info-point-wrap:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap:after{right:0;border-right:1px solid #4b87a6}.map .info-point-wrap-inner:after,.map .info-point-wrap-inner:before{display:block;content:"";position:absolute;bottom:0;width:15px;height:15px;border-bottom:1px solid #4b87a6}.map .info-point-wrap-inner:before{left:0;border-left:1px solid #4b87a6}.map .info-point-wrap-inner:after{right:0;border-right:1px solid #4b87a6}.map .info-point-line{position:absolute;top:7px;right:12px;display:flex}.map .info-point-line .line{width:5px;height:2px;margin-right:5px;background:#17e5c3}.map .info-point-content .content-item{display:flex;height:28px;line-height:28px;background:rgba(35,47,58,.6);margin-bottom:5px}.map .info-point-content .content-item .label{width:60px;padding-left:10px}.map .info-point-content .content-item .value{color:#fff}.map .provinces-label-wrap{transform:translate(-50%,-50%);opacity:0;display:flex;justify-content:space-between;align-items:center;padding:0 12px;width:112px;height:46px;border-radius:30px 30px 30px 0;background:rgba(0,0,0,.4)}.map .provinces-label .number{color:#fff;font-size:24px;font-weight:700}.map .provinces-label .number .unit{color:#fff;font-size:12px;font-weight:400;opacity:.5;padding-left:5px}.map .provinces-label .name{color:#fff;font-size:14px;font-weight:700}.map .provinces-label .name span{display:block}.map .provinces-label .name .en{color:#fff;font-size:10px;opacity:.5;font-weight:700}.map .provinces-label .no{color:#7efbf6;text-shadow:0 0 5px #7efbf6,0 0 10px #7efbf6;font-size:24px;font-weight:700}.map .provinces-label .yellow .no{color:#fef99e!important;text-shadow:0 0 5px #fef99e,0 0 10px #fef99e!important}.map .china-label{color:#fff;font-size:15px;font-weight:700;text-shadow:0 0 8px rgba(126,251,246,.8);will-change:transform;z-index:30}.map .china-label .other-label{display:flex;align-items:center;padding:6px 10px;border:1px solid rgba(126,251,246,.35);border-radius:3px;background:rgba(3,21,33,.78);box-shadow:0 0 14px #30dcff33;will-change:transform;white-space:nowrap;text-align:center;transform:translateY(-50%)}.map .china-label.blur{filter:none;opacity:1}.map .china-label .label-icon{display:none;width:20px;height:20px;margin:0 10px 0 0}.map .map-label{padding:5px;color:#fff;will-change:transform;font-size:36px;font-weight:700;letter-spacing:4.5px;-webkit-box-reflect:below 0 -webkit-linear-gradient(transparent,transparent 20%,rgba(255,255,255,.3))}.map .map-label .other-label{display:flex;flex-direction:column}.map .map-label span{font-size:46px}.map .map-label span:last-child{font-size:12px;font-weight:400;letter-spacing:0px;color:#a7d5ef}.map .decoration-label .label-icon{display:block;width:40px;height:40px}.map .other-label{transform:translateY(200%);opacity:0;background:none;will-change:transform}.home-dashboard{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;overflow:hidden;color:#fff;background:#03121c}.home-map-scene{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.home-map-scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none}.home-map-scrim:before,.home-map-scrim:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.home-map-scrim:before{opacity:.12;background:url(./bg-3acb94e3-balabala-1784074877048.png) center/cover no-repeat}.home-map-scrim:after{background:radial-gradient(circle at 50% 52%,transparent 0%,transparent 54%,rgba(2,13,20,.06) 80%,rgba(2,12,18,.22) 100%),linear-gradient(90deg,rgba(0,14,24,.12),transparent 26%,transparent 74%,rgba(0,14,24,.12))}.home-bottom-switcher{position:absolute;left:50%;bottom:8px;z-index:10;width:760px;transform:translate(-50%);pointer-events:auto}.home-bottom-switcher .topic-switcher{width:760px}.home-bottom-switcher .topic-switcher-menu{flex:0 0 auto}.home-bottom-switcher .topic-switcher-arrow{display:none}.home-layer-tools{position:absolute;top:auto;right:458px;bottom:72px;left:auto;z-index:7;width:248px;box-sizing:border-box;pointer-events:auto}.home-layer-tools .m-card{width:100%!important;height:430px!important;background:rgba(3,18,30,.54);backdrop-filter:blur(2px)}.home-map-feature-info{position:absolute;z-index:8;pointer-events:auto}.home-map-feature-info .m-card{background:rgba(3,18,30,.58);backdrop-filter:blur(2px)}.home-layer-tree-panel{display:grid;grid-template-rows:minmax(170px,236px) minmax(0,1fr);gap:12px;height:100%;box-sizing:border-box;padding:12px 12px 14px;overflow:hidden}.home-layer-tree-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-tree-list::-webkit-scrollbar{display:none}.home-layer-tree-group{display:flex;flex-direction:column;gap:6px}.home-layer-tree-parent,.home-layer-tree-child{display:flex;align-items:center;justify-content:space-between;min-width:0;height:27px;flex:0 0 27px;border:1px solid rgba(48,220,255,.22);color:#ffffffbd;font-size:12px;cursor:pointer;background:rgba(3,20,32,.58)}.home-layer-tree-parent span,.home-layer-tree-child span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-layer-tree-child.is-overlay i{border-radius:1px}.home-layer-tree-child.is-overlay.is-active i:after{content:"";display:block;width:4px;height:2px;margin:2px 0 0 1px;border-left:1px solid #08202d;border-bottom:1px solid #08202d;transform:rotate(-45deg)}.home-layer-tree-parent{padding:0 9px;font-weight:700}.home-layer-tree-parent i{width:7px;height:7px;border-right:1px solid rgba(255,255,255,.62);border-bottom:1px solid rgba(255,255,255,.62);transform:rotate(-45deg);transition:transform .18s ease}.home-layer-tree-group.is-open .home-layer-tree-parent i{transform:rotate(45deg) translateY(-2px)}.home-layer-tree-parent.is-active{color:#fff;border-color:#30dcffa8;background:linear-gradient(90deg,rgba(21,121,130,.5),rgba(3,20,32,.78))}.home-layer-tree-children{display:flex;flex-direction:column;gap:6px;padding-left:12px}.home-layer-tree-child{padding:0 9px}.home-layer-tree-child i{width:8px;height:8px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-tree-child.is-active{color:#fff;border-color:#30dcffb3;background:linear-gradient(90deg,rgba(21,121,130,.52),rgba(3,20,32,.78))}.home-layer-tree-child.is-active i{border-color:#30dcff;background:#30dcff;box-shadow:0 0 12px #30dcffe0}.home-layer-tree-legend{min-height:0;padding-top:9px;border-top:1px solid rgba(48,220,255,.18);overflow:visible}.home-layer-tree-title{position:relative;margin-bottom:7px;padding-left:10px;color:#dbf9ffe6;font-size:13px;font-weight:600;line-height:16px}.home-layer-tree-title:before{content:"";position:absolute;left:0;top:4px;width:4px;height:8px;background:#30dcff;box-shadow:0 0 10px #30dcffb3}.home-layer-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,96px));justify-content:center;align-content:start;gap:7px 8px;max-height:calc(100% - 24px);padding-right:4px;overflow-y:auto;scrollbar-width:none}.home-layer-legend-grid::-webkit-scrollbar{display:none}.home-layer-legend-grid.is-single{grid-template-columns:minmax(0,128px)}.home-layer-legend-row{display:grid;grid-template-columns:15px minmax(0,1fr);align-items:start;column-gap:6px;min-width:0;min-height:22px;padding:3px 2px;border:1px solid transparent;color:inherit;text-align:left;cursor:pointer;background:transparent}.home-layer-legend-row:disabled{opacity:1}.home-layer-legend-row.is-checkable{grid-template-columns:15px minmax(0,1fr) 12px}.home-layer-legend-row.is-selected{border-color:#30dcff75;background:rgba(48,220,255,.08)}.home-layer-legend-row.is-disabled{cursor:default}.home-layer-legend-swatch{width:12px;height:12px;margin-top:2px;border:1px solid currentColor}.home-layer-legend-name{min-width:0;color:#ecfbffbd;font-size:11px;line-height:16px;word-break:break-all}.home-layer-legend-check{width:7px;height:7px;margin-top:4px;border:1px solid rgba(255,255,255,.42);border-radius:50%}.home-layer-legend-row.is-selected .home-layer-legend-check{border-color:#30dcff;background:#30dcff;box-shadow:0 0 10px #30dcffb8}.home-layer-tree-empty{padding-top:18px;color:#dbf9ff75;font-size:12px;text-align:center}.home-left,.home-right{position:absolute;top:128px;bottom:8px;z-index:5;width:398px;perspective-origin:50% 50%;pointer-events:all}.home-left{left:32px;perspective:var(--screen-side-perspective-left, 500px)}.home-right{right:32px;perspective:var(--screen-side-perspective-right, 800px)}.home-side-stack{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:12px;transform-style:preserve-3d}.home-side-stack.is-left{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(6deg) rotate(0) skew(0) skewY(0);transform-origin:left center}.home-side-stack.is-right{transform:translateZ(0) scaleX(1) scaleY(1) rotateX(0) rotateY(-6deg) rotate(0) skew(0) skewY(0);transform-origin:right center}.home-card{flex:0 0 auto}.home-card .m-card-bd-content{top:36px;bottom:0;color:#f3feff}.home-card .m-card-hd-bg,.home-card .m-card-bd-bg{filter:none}.home-card .m-card-bd-bg:after{content:none}.home-card .m-card-hd-title{color:#fff!important;background:-webkit-linear-gradient(rgb(219,249,255),rgb(169,240,255))!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;font-weight:600!important;filter:none!important;text-shadow:none!important}.home-card-more{display:inline-flex;align-items:center;gap:2px;height:24px;padding:0 4px 0 8px;border:0;color:#dcfaffd1;font-size:11px;line-height:24px;font-weight:700;background:rgba(4,35,51,.72);cursor:pointer}.home-card-more span{color:#30dcff;font-size:18px;line-height:18px}.home-card-more:hover{color:#fff;background:rgba(14,83,106,.82)}.home-more-modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:140;display:flex;align-items:center;justify-content:center;background:rgba(0,8,15,.76);backdrop-filter:blur(3px);pointer-events:auto}.home-more-dialog{display:flex;width:1240px;height:790px;flex-direction:column;padding:20px;border:1px solid rgba(48,220,255,.42);box-sizing:border-box;background:linear-gradient(180deg,rgba(11,47,64,.98),rgba(3,18,30,.99)),rgba(3,18,30,.98);box-shadow:0 0 34px #30dcff2e,inset 0 0 0 1px #ffffff09}.home-more-dialog-head{display:flex;height:56px;flex:0 0 56px;align-items:flex-start;justify-content:space-between;border-bottom:1px solid rgba(48,220,255,.2)}.home-more-dialog-head h2,.home-more-dialog-head p{margin:0}.home-more-dialog-head h2{color:#fff;font-size:21px;line-height:27px;font-weight:800}.home-more-dialog-head p{margin-top:3px;color:#def9ffa6;font-size:12px;line-height:16px}.home-more-dialog-head>button{width:34px;height:34px;padding:0;border:1px solid rgba(48,220,255,.32);color:#ebfdffe6;font-size:25px;line-height:30px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-dialog-head>button:hover{border-color:#30dcffb8;color:#fff;background:rgba(48,220,255,.16)}.home-video-modal-grid{position:relative;isolation:isolate;display:grid;min-height:0;flex:1;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0 12px}.home-video-modal-item{position:relative;z-index:2;min-width:0;min-height:0;height:auto;padding:0;text-align:left}.home-video-modal-item.is-offline{cursor:default;filter:saturate(.52)}.home-video-modal-item.is-active{z-index:3}.home-video-modal-item:not(.is-active){z-index:8}.home-video-modal-item:not(.is-active) .home-video-hit{z-index:40;pointer-events:auto}.home-video-modal-status{position:absolute;top:10px;right:10px;z-index:5;padding:3px 8px;border-left:2px solid #24f6c4;color:#b9ffe9;font-size:11px;line-height:15px;font-weight:800;background:rgba(1,28,26,.76)}.home-video-modal-item.is-offline .home-video-modal-status{border-left-color:#8bf7ff;color:#ffe6a7;background:rgba(42,31,5,.76)}.home-more-empty{display:flex;flex:1;align-items:center;justify-content:center;color:#def9ff94;font-size:15px}.home-more-pager{display:flex;height:34px;flex:0 0 34px;align-items:center;justify-content:center;gap:12px}.home-more-pager button{height:28px;padding:0 14px;border:1px solid rgba(48,220,255,.28);color:#e8fcffdb;font-size:12px;background:rgba(48,220,255,.08);cursor:pointer}.home-more-pager button:disabled{cursor:not-allowed;opacity:.38}.home-more-pager span{min-width:54px;color:#e8fcffb8;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:13px;text-align:center}.home-balance-dialog{width:1180px;height:610px}.home-balance-modal-grid{display:grid;min-height:0;flex:1;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding-top:18px}.home-balance-modal-item{position:relative;display:flex;min-width:0;flex-direction:column;justify-content:center;padding:16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--balance-color) 44%,rgba(48,220,255,.16));box-sizing:border-box;background:radial-gradient(circle at 82% 12%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 44%),linear-gradient(180deg,rgba(15,57,72,.7),rgba(4,25,38,.78));box-shadow:inset 0 0 20px #30dcff0d}.home-balance-modal-item:before{position:absolute;left:0;top:0;bottom:0;width:3px;content:"";background:var(--balance-color);box-shadow:0 0 10px var(--balance-color)}.home-balance-modal-item p{margin:12px 0 0;color:#e1faffad;font-size:12px;line-height:16px}.home-balance-modal-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.home-balance-modal-title strong{overflow:hidden;color:#fff;font-size:17px;line-height:22px;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-title span{overflow:hidden;color:var(--balance-color);font-size:11px;line-height:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.home-balance-modal-value{display:flex;align-items:baseline;margin-top:22px}.home-balance-modal-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:36px;line-height:40px;text-shadow:0 0 12px color-mix(in srgb,var(--balance-color) 38%,transparent)}.home-balance-modal-value em{margin-left:3px;color:#ebfdffb8;font-size:13px;font-style:normal}.home-balance-modal-track{height:5px;margin-top:13px;overflow:hidden;background:rgba(113,181,199,.15)}.home-balance-modal-track i{display:block;width:var(--balance-progress);height:100%;background:linear-gradient(90deg,color-mix(in srgb,var(--balance-color) 62%,transparent),var(--balance-color));box-shadow:0 0 8px var(--balance-color)}.home-chart{width:100%;height:100%}.home-balance-gauge-grid{display:grid;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:8px 12px 10px;box-sizing:border-box;overflow:hidden}.home-balance-gauge-card{position:relative;display:grid;min-width:0;min-height:0;grid-template-rows:32px minmax(72px,1fr) 22px 16px;justify-items:center;padding:10px 8px 9px;overflow:hidden;border:1px solid rgba(48,220,255,.18);background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 14%,transparent),transparent 55%),linear-gradient(180deg,rgba(48,220,255,.075),rgba(5,27,40,.46));box-shadow:inset 0 0 18px #30dcff12,0 0 #30dcff00;transition:border-color .35s ease,box-shadow .35s ease,background .35s ease}.home-balance-gauge-card:before{position:absolute;top:9px;right:9px;bottom:9px;left:9px;content:"";border:1px solid rgba(255,255,255,.035);pointer-events:none}.home-balance-gauge-card.is-active{border-color:color-mix(in srgb,var(--balance-color) 64%,rgba(48,220,255,.22));background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--balance-color) 20%,transparent),transparent 58%),linear-gradient(180deg,rgba(48,220,255,.095),rgba(5,27,40,.52));box-shadow:inset 0 0 22px #30dcff17,0 0 14px color-mix(in srgb,var(--balance-color) 16%,transparent)}.home-balance-gauge-head{position:relative;z-index:1;display:flex;width:100%;align-items:center;justify-content:center}.home-balance-gauge-head span,.home-balance-gauge-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-head span{color:#eefdff94;font-size:10px;font-weight:700}.home-balance-gauge-head strong{width:100%;color:var(--balance-color);font-size:11px;font-weight:900;text-align:center;text-shadow:0 0 8px color-mix(in srgb,var(--balance-color) 34%,transparent)}.home-balance-gauge-ring{position:relative;z-index:1;align-self:center;width:min(94px,78%);aspect-ratio:1;border-radius:50%;background:conic-gradient(from 218deg,var(--balance-color) 0 var(--balance-progress),rgba(93,175,199,.18) var(--balance-progress) 100%),rgba(3,23,35,.78);box-shadow:0 0 18px color-mix(in srgb,var(--balance-color) 22%,transparent),inset 0 0 18px #0000006b}.home-balance-gauge-ring:before{position:absolute;top:12px;right:12px;bottom:12px;left:12px;content:"";border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(48,220,255,.12),rgba(3,23,35,.98) 62%),rgba(3,23,35,.96);box-shadow:inset 0 0 12px #0000006b,inset 0 0 0 1px #30dcff14}.home-balance-gauge-ring:after{position:absolute;left:50%;bottom:9px;width:2px;height:16px;content:"";background:rgba(0,10,18,.8);transform:translate(-50%) rotate(35deg);transform-origin:50% 100%;box-shadow:0 0 5px #000a1294}.home-balance-gauge-value{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:flex;align-items:center;justify-content:center}.home-balance-gauge-value strong{color:#fff;font-family:var(--screen-font-number, D-DIN, Arial, sans-serif);font-size:24px;line-height:28px;font-weight:900;text-shadow:0 0 10px color-mix(in srgb,var(--balance-color) 42%,transparent)}.home-balance-gauge-value em{margin-left:2px;color:#eefdffc2;font-size:11px;font-style:normal;font-weight:800}.home-balance-gauge-name,.home-balance-gauge-extra{position:relative;z-index:1;max-width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.home-balance-gauge-name{color:#fff;font-size:15px;line-height:21px;font-weight:900;text-shadow:0 0 8px rgba(48,220,255,.18)}.home-balance-gauge-extra{color:#eefdffa8;font-size:11px;line-height:16px;font-weight:700}.home-forecast-trend-card{position:relative;width:100%;height:100%}.home-forecast-kline-chart{padding-top:14px;box-sizing:border-box}.home-forecast-density-switcher{position:absolute;top:0;left:4px;z-index:3;display:inline-flex;gap:2px;padding:2px;border:1px solid rgba(48,220,255,.22);border-radius:3px;background:rgba(4,24,37,.72);box-shadow:inset 0 0 10px #30dcff14}.home-forecast-density-switcher button{min-width:24px;height:18px;padding:0 6px;border:0;border-radius:2px;color:#e2faffa8;font-size:10px;line-height:18px;font-weight:800;background:transparent;cursor:pointer}.home-forecast-density-switcher button.active{color:#041c2b;background:linear-gradient(180deg,#7efbf6,#30dcff);box-shadow:0 0 10px #30dcff6b}.home-video-monitor{position:relative;display:block;height:100%;padding:2px 24px;box-sizing:border-box;pointer-events:auto}.home-video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;height:100%;min-height:0}.home-video-grid.is-single{grid-template-columns:minmax(0,1fr)}.home-video-screen{position:relative;width:100%;height:100%;margin:0;min-width:0;overflow:hidden;cursor:pointer;border:1px solid rgba(48,220,255,.25);background-color:#020d14;background-position:center;background-size:cover;box-shadow:none}.home-video-screen.is-active{border-color:#7efbf6a8;box-shadow:none}.home-video-screen:not(.is-active){opacity:.88}.home-video-screen.is-playing{background-image:none!important}.home-video-web-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100000;overflow:hidden;background:#000000}.home-video-web-stage{width:100vw;height:100vh;border:0;cursor:default}.home-video-web-player-slot{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap],.home-video-screen [id$=-player],.home-video-screen [id^=EZUIKitPlayer-],.home-video-screen .play-window,.home-video-screen video,.home-video-screen canvas,.home-video-screen iframe,.home-video-screen object,.home-video-screen embed,.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe,.home-video-screen [id$=-wrap]>.home-video-player object,.home-video-screen [id$=-wrap]>.home-video-player embed{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;object-fit:fill!important}.home-video-screen>.home-video-player-host,.home-video-screen>.home-video-player,.home-video-screen [id$=-wrap]{z-index:3;pointer-events:auto}.home-video-screen [id$=-wrap]{z-index:3!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player{position:absolute!important;top:0!important;right:0!important;bottom:0!important;left:0!important;z-index:1;display:block!important;width:100%!important;height:100%!important;overflow:hidden;pointer-events:auto}.home-video-screen [id$=-wrap]>.home-video-player>div,.home-video-screen [id$=-wrap]>.home-video-player .play-window,.home-video-screen [id$=-wrap]>.home-video-player [id$=-player],.home-video-screen [id$=-wrap]>.home-video-player video,.home-video-screen [id$=-wrap]>.home-video-player canvas,.home-video-screen [id$=-wrap]>.home-video-player iframe{z-index:1}.home-video-screen [id$=-ez-iframe-footer-container]{position:absolute!important;right:0!important;bottom:0!important;left:0!important;z-index:20!important;width:100%!important;margin-top:0!important;pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen [id$=-audioControls]{pointer-events:auto!important;visibility:visible!important;opacity:1!important}.home-video-screen .loading-container,.home-video-screen .loading-item,.home-video-screen #loading-icon{display:none!important;visibility:hidden!important;pointer-events:none!important}.home-video-nav{position:absolute;top:50%;z-index:6;width:22px;height:42px;border:1px solid rgba(48,220,255,.26);color:#e3fdffe0;font-size:20px;line-height:20px;cursor:pointer;background:linear-gradient(180deg,rgba(48,220,255,.18),rgba(10,39,54,.56));box-shadow:inset 0 0 12px #30dcff1a;transform:translateY(-50%)}.home-video-nav:disabled{cursor:not-allowed;opacity:.38}.home-video-prev{left:18px}.home-video-next{right:18px}.home-video-screen:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 34%,rgba(0,0,0,.44)),repeating-linear-gradient(0deg,rgba(255,255,255,.04) 0,rgba(255,255,255,.04) 1px,transparent 1px,transparent 5px)}.home-video-screen.is-playing:before{z-index:2;background:linear-gradient(180deg,rgba(0,0,0,.14),transparent 28%,rgba(0,0,0,.18))}.home-video-hit{position:absolute;top:0;right:0;bottom:0;left:0;z-index:7;padding:0;border:0;cursor:pointer;background:transparent}.home-video-point-name,.home-video-loading,.home-video-error{pointer-events:none}.home-video-point-name{position:absolute;left:10px;right:10px;bottom:8px;z-index:4;overflow:hidden;padding:4px 8px;border-left:2px solid rgba(69,233,164,.78);color:#fff;font-size:12px;line-height:15px;font-weight:800;text-overflow:ellipsis;white-space:nowrap;background:rgba(0,0,0,.42)}.home-video-screen.is-playing .home-video-point-name{z-index:2;opacity:0}.home-video-loading,.home-video-error{position:absolute;left:50%;top:50%;z-index:5;min-width:72px;padding:4px 8px;border:1px solid rgba(48,220,255,.32);color:#fff;font-size:11px;line-height:14px;text-align:center;background:rgba(0,0,0,.62);transform:translate(-50%,-50%)}.home-video-error{border-color:#8bf7ff6b;color:#c9fbff} diff --git a/docs/assets/index-5afedc21-balabala-1784045078568.css b/docs/assets/index-5afedc21-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-5afedc21-balabala-1784045078568.css rename to docs/assets/index-5afedc21-balabala-1784074877048.css diff --git a/docs/assets/index-a8767fd0-balabala-1784045078568.css b/docs/assets/index-5e7a407c-balabala-1784074877048.css similarity index 97% rename from docs/assets/index-a8767fd0-balabala-1784045078568.css rename to docs/assets/index-5e7a407c-balabala-1784074877048.css index d04a0c4..176233b 100644 --- a/docs/assets/index-a8767fd0-balabala-1784045078568.css +++ b/docs/assets/index-5e7a407c-balabala-1784074877048.css @@ -1 +1 @@ -.login-screen[data-v-8ebd0d6e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1784045078568.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-8ebd0d6e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-8ebd0d6e]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-8ebd0d6e]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-8ebd0d6e]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-8ebd0d6e]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-8ebd0d6e]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-8ebd0d6e]{margin-bottom:26px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-8ebd0d6e]{display:block;margin-bottom:18px}.login-field span[data-v-8ebd0d6e]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-8ebd0d6e]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-8ebd0d6e]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-8ebd0d6e]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-8ebd0d6e]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-8ebd0d6e]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-8ebd0d6e]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-8ebd0d6e]{font-size:30px}.login-panel[data-v-8ebd0d6e]{width:100%}} +.login-screen[data-v-8ebd0d6e]{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:linear-gradient(180deg,rgba(4,16,38,.1),rgba(2,8,22,.62)),url(./bg-3acb94e3-balabala-1784074877048.png) center/cover no-repeat,#05142f;color:#fff}.login-screen[data-v-8ebd0d6e]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.46),transparent 42%,rgba(0,0,0,.35)),radial-gradient(circle at 52% 46%,rgba(48,220,255,.16),transparent 32%)}.login-shell[data-v-8ebd0d6e]{position:relative;z-index:1;width:min(980px,100vw - 48px);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:center}.login-brand[data-v-8ebd0d6e]{display:flex;flex-direction:column;gap:14px;min-width:0;text-shadow:0 0 20px rgba(48,220,255,.36)}.login-brand span[data-v-8ebd0d6e]{font-size:42px;line-height:1.2;font-weight:700}.login-brand small[data-v-8ebd0d6e]{color:#c4f3feb8;font-size:13px;letter-spacing:0}.login-panel[data-v-8ebd0d6e]{width:360px;padding:30px 28px 28px;border:1px solid rgba(48,220,255,.34);background:rgba(3,14,32,.82);box-shadow:0 24px 70px #00000057,inset 0 0 28px #30dcff14;box-sizing:border-box}.login-panel-title[data-v-8ebd0d6e]{margin-bottom:26px;color:#fff;font-size:22px;font-weight:700;text-align:center}.login-field[data-v-8ebd0d6e]{display:block;margin-bottom:18px}.login-field span[data-v-8ebd0d6e]{display:block;margin-bottom:8px;color:#c4f3fec7;font-size:13px}.login-field input[data-v-8ebd0d6e]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(48,220,255,.26);outline:none;background:rgba(0,10,24,.62);color:#fff;font-size:15px;box-sizing:border-box}.login-field input[data-v-8ebd0d6e]:focus{border-color:#30dcffb8;box-shadow:0 0 0 2px #30dcff1f}.login-error[data-v-8ebd0d6e]{min-height:20px;margin:-4px 0 12px;color:#ffcf8a;font-size:13px;line-height:20px}.login-submit[data-v-8ebd0d6e]{width:100%;height:44px;border:1px solid rgba(48,220,255,.52);background:linear-gradient(90deg,rgba(24,140,196,.92),rgba(37,204,218,.92));color:#fff;cursor:pointer;font-size:16px;font-weight:700}.login-submit[data-v-8ebd0d6e]:disabled{cursor:not-allowed;opacity:.68}@media (max-width: 820px){.login-shell[data-v-8ebd0d6e]{grid-template-columns:1fr;gap:28px}.login-brand span[data-v-8ebd0d6e]{font-size:30px}.login-panel[data-v-8ebd0d6e]{width:100%}} diff --git a/docs/assets/index-ad1f9dba-1784045078568.js b/docs/assets/index-65b45d6f-1784074877048.js similarity index 89% rename from docs/assets/index-ad1f9dba-1784045078568.js rename to docs/assets/index-65b45d6f-1784074877048.js index 4fb28fc..b3dc544 100644 --- a/docs/assets/index-ad1f9dba-1784045078568.js +++ b/docs/assets/index-65b45d6f-1784074877048.js @@ -1,2 +1,2 @@ -var Ft=Object.defineProperty,Ct=Object.defineProperties;var Pt=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Lt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var ze=(b,m,g)=>m in b?Ft(b,m,{enumerable:!0,configurable:!0,writable:!0,value:g}):b[m]=g,x=(b,m)=>{for(var g in m||(m={}))Lt.call(m,g)&&ze(b,g,m[g]);if(Ve)for(var g of Ve(m))Tt.call(m,g)&&ze(b,g,m[g]);return b},S=(b,m)=>Ct(b,Pt(m));var U=(b,m,g)=>new Promise((R,P)=>{var V=N=>{try{q(g.next(N))}catch(O){P(O)}},j=N=>{try{q(g.throw(N))}catch(O){P(O)}},q=N=>N.done?R(N.value):Promise.resolve(N.value).then(V,j);q((g=g.apply(b,m)).next())});import{H as Ke}from"./index.esm.min-43166a2f-1784045078568.js";import{_ as De}from"./index-27149dbd-1784045078568.js";import{M as Nt}from"./index-c252ce06-1784045078568.js";import{a as Ge,_ as $t}from"./FeatureInfoPanel-b2a9b292-1784045078568.js";import{_ as At}from"./LayerPanel-67768a91-1784045078568.js";import{_ as Ht}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{A as Bt}from"./assets-4a378a39-1784045078568.js";import{g as ge}from"./townshipBoundaries-1b068bef-1784045078568.js";import{q as ee,r as Rt,s as Ie}from"./screen2Standard-98cd5b6c-1784045078568.js";import{w as Vt,f as zt,l as We,m as Ue,n as Kt,o as Dt,p as Gt,q as It,s as Ee,e as me}from"./chartTheme-8c348a2d-1784045078568.js";import{g as Ye,a as Wt,i as Ut,b as Et,c as pe,d as we,e as Yt}from"./data-12043e21-1784045078568.js";import{g as f,w as be,q as jt,h as qt,A as le,o as i,c as u,b as ie,a as l,j as T,F as M,y as F,C as E,x as je,u as oe,n as Y,t as c,J as ue,d as C}from"./index-1784045078568.js";import"./index-6a8ef8cf-1784045078568.js";import"./index-e9f36657-1784045078568.js";import"./livestockData-36ec0ae2-1784045078568.js";const Ot={class:"yak-industry-chain"},Jt={key:0,class:"industry-map-loading"},Xt={key:1,class:"fgw-left industry-side-panel industry-side-panel--left"},Zt={class:"fgw-side-stack industry-side-stack is-left"},Qt={key:1,class:"industry-panel-empty"},ea={key:3,class:"industry-featured-base-list"},ta=["disabled","aria-label","onClick"],aa={class:"industry-featured-base__index"},na={class:"industry-featured-base__copy"},sa={key:4,class:"industry-leadership-mode-list"},ra={key:5,class:"industry-ledger-list"},la={key:2,class:"fgw-right industry-side-panel industry-side-panel--right"},ia={class:"fgw-side-stack industry-side-stack is-right"},oa={key:1,class:"industry-panel-empty"},ua={key:3,class:"industry-featured-base-list"},ca=["disabled","aria-label","onClick"],da={class:"industry-featured-base__index"},ya={class:"industry-featured-base__copy"},fa={key:4,class:"industry-leadership-mode-list"},ha={key:5,class:"industry-ledger-list"},va={key:3,class:"industry-artificial-layer-tools"},ga={class:"industry-point-detail__head"},ma={class:"industry-point-detail__name"},pa={key:0,class:"industry-point-detail__profile"},wa={class:"industry-point-detail__profile-head"},ba=["src","alt"],_a={class:"industry-point-detail__facts"},ka={class:"industry-point-detail__highlights"},xa={class:"industry-bottom-switcher"},Da={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(b,{expose:m,emit:g}){const R=b,P=g,V=ee.sideCardWidth,j=C(typeof window=="undefined"?1080:window.innerHeight),q=ee.sideCardGap,N=ee.sidePanelTop,O=ee.sidePanelBottom,qe=ee.sideCardMinHeight,J=f(()=>Rt(j.value)),ce=f(()=>Ie(J.value,2)),Oe=f(()=>Ie(J.value,4)),y=C("family-pasture"),p=C(null),z=C(!1),h=C(null),L=C(""),X=C({x:0,y:0}),$=C(null),Z=C({x:0,y:0}),K=C(!1),D=C(["artificial-grassland-plots"]);let te=null,de=!1,G=!1,A=null,_=null,ye=!1;const I=f(()=>Ye(y.value));f(()=>y.value==="family-pasture");const Q=f(()=>y.value==="artificial-grassland"),Je=f(()=>[{key:"artificial-grassland-plots",name:"待核定种草图斑",color:"#30DCFF",stroke:"#C9FBFF"},{key:"yak-industry-points",name:"人工种草基地点",color:"#19FFC6",stroke:"#B7FFF2"}]),Xe=f(()=>[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1},{key:"artificial-grassland-base",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",selectable:!1}]),Ze=f(()=>Wt(y.value)),_e=f(()=>it(Ze.value)),ke=f(()=>{const e=_e.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Se(t,e.length))}),xe=f(()=>{const e=_e.value.right;return e.map(t=>Se(t,e.length))}),Qe=f(()=>{var n,a,s;const e=ge("yak-industry-chain","yak-industry-points");if(Q.value){const r=[];if(D.value.includes("artificial-grassland-plots")){const v=ge("yak-industry-chain","artificial-grassland-plots");v&&r.push(S(x({},v),{activeLegend:(n=v.legends)==null?void 0:n[0]}))}if(D.value.includes("yak-industry-points")&&e){const v=(a=e.legends)==null?void 0:a.find(k=>k.key==="yak-industry-artificial-grassland");r.push(S(x({},e),{showPointLabels:!1,activeLegend:v}))}if(!r.length)return null;const[d,...o]=r;return S(x({},d),{overlayLayers:o})}const t=(s=e==null?void 0:e.legends)==null?void 0:s.find(r=>{var d;return((d=r.match)==null?void 0:d.value)===y.value||r.key===`yak-industry-${y.value}`});return e&&S(x({},e),{hidePointFeatures:y.value==="family-pasture",hidePointMarkers:y.value==="family-pasture",showPointLabels:y.value==="family-pasture"?!1:e.showPointLabels,activeLegend:t||{key:`yak-industry-empty-${y.value}`,name:I.value.name,fillColor:I.value.color,strokeColor:I.value.color,match:{field:"stageKey",value:y.value}}})}),et=f(()=>Ut.map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),tt=f(()=>{const e=y.value==="family-pasture",t=Q.value&&D.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Q.value||t,showMissingTownStats:e,title:e?"家庭生态牧场":`${I.value.name}排行`,metricLabel:e?"生态牧场":I.value.metricLabel,unit:I.value.unit,rows:e?Et():[]}}),w=f(()=>{var e;return pe(S(x({},h.value||{}),{featuredBaseKey:L.value||((e=h.value)==null?void 0:e.featuredBaseKey)}))}),ae=f(()=>{const e=h.value;if(!e)return[];if(w.value){const t=w.value,n=we(e).filter(a=>["设计存栏","年出栏量"].includes(a.label));return[{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...n].filter(a=>a.value!==void 0&&a.value!==null&&String(a.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"所在乡镇",value:B(e.town)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"所属环节",value:B(e.stageName)},{label:"主体类型",value:B(e.categoryName)},{label:"所在乡镇",value:B(e.town)},{label:"能力规模",value:St(e)},{label:"运行状态",value:B(e.status)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),at=f(()=>{var e,t;return w.value?"重点示范基地":B(((e=h.value)==null?void 0:e.categoryName)||((t=h.value)==null?void 0:t.stageName))}),nt=f(()=>{var e,t;return((e=w.value)==null?void 0:e.name)||B((t=h.value)==null?void 0:t.name)}),st=f(()=>{var Re;const t=((Re=h.value)==null?void 0:Re.categoryCode)==="YC-FAMILY-PASTURE",n=ae.value.filter(Mt=>Mt.wide).length,a=Math.ceil(Math.max(0,ae.value.length-n)/2)+n,s=w.value?w.value.image?576:532:t?Math.min(400,Math.max(318,150+a*38)):Math.min(520,Math.max(252,116+ae.value.length*40)),r=24,d=28,o={x:Math.max(r,Math.min(1920-r,Number(X.value.x||0))),y:Math.max(r,Math.min(1080-r,Number(X.value.y||0)))},v=V+46,k=1920-V-46,H=Math.min(Math.max(o.x-456/2,v),k-456),W=Math.min(Math.max(o.y-s-d,128),1080-s-116),ve=Math.min(Math.max(o.x-H,34),456-34);return{left:`${H}px`,top:`${W}px`,"--point-arrow-left":`${ve}px`,"--point-arrow-top":"100%","--point-arrow-x":"-50%","--point-arrow-y":"-8px","--point-arrow-rotate":"45deg"}}),rt=f(()=>{const o={x:Math.max(452,Math.min(1468,Number(Z.value.x||960))),y:Math.max(128,Math.min(960,Number(Z.value.y||540)))},v=Math.min(Math.max(o.x-460/2,452),1468-460),k=o.y-374-26,H=k>=116,W=H?k:Math.min(Math.max(o.y+26,116),944-374),ve=Math.min(Math.max(o.x-v,26),460-26);return{left:`${v}px`,top:`${W}px`,"--feature-arrow-left":`${ve}px`,"--feature-arrow-top":H?`${374-6}px`:"-6px","--feature-arrow-rotate":H?"45deg":"225deg"}});be(y,e=>{vt(e)},{immediate:!0}),jt(()=>{fe(),window.addEventListener("resize",fe),gt()}),qt(()=>{var e,t;ye=!0,window.removeEventListener("resize",fe),A&&window.clearTimeout(A),_&&window.cancelAnimationFrame(_),(t=(e=p.value)==null?void 0:e.destroyMap)==null||t.call(e)}),be(()=>R.active,e=>{var t,n,a,s;p.value&&(e?(he(),(n=(t=p.value).resume)==null||n.call(t)):(s=(a=p.value).pause)==null||s.call(a))}),be(D,()=>{se()},{deep:!0});function lt(e){e!==y.value&&(y.value=e,se())}function it(e={}){const t=Me(e.left),n=Me(e.right);if(n.length)return{left:t,right:n};const a=[...t,...n];return a.length<=4?{left:a,right:[]}:{left:t,right:n}}function Se(e,t=0){if((e==null?void 0:e.fixedHeight)===!0)return S(x({},e),{height:J.value});if((e==null?void 0:e.fillHeight)===!0)return S(x({},e),{height:ot(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return S(x({},e),{height:ut(e)});const n=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,a=(e==null?void 0:e.keepSpanHeight)===!0;return S(x({},e),{height:t===1&&!a?Oe.value:n?ce.value:J.value})}function ot(e=1){const t=Math.max(1,Number(e)||1),a=Math.max(1080,Number(j.value)||1080)-N-O-q*Math.max(t-1,0);return Math.max(qe,Math.floor(a/t))}function ut(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return ce.value;const t=Array.isArray(e.rows)?e.rows:[],n=100,a=32,s=n+25+t.length*a;return Math.min(ce.value,Math.max(J.value,s))}function Me(e=[]){return e.filter(Boolean)}function ne(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Fe(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ce(e={}){const t=Array.isArray(e.rows)?e.rows:[],n=t.map(r=>Number(r!=null&&r.zero?0:(r==null?void 0:r.value)||0)),a=Math.max(...n,1),s=ct(t);return Vt({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:zt((r=[])=>{var W;const o=((W=(Array.isArray(r)?r:[r])[0])==null?void 0:W.data)||{},v=o.zero?"0":o.displayValue,k=o.unit||s||"",H=o.extra?`
    ${o.extra}`:"";return`${o.name||""}
    ${v}${k}${H}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:s?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${s}`,fill:We,font:`10px ${Kt}`}}]:[],xAxis:{type:"category",data:t.map(r=>(r==null?void 0:r.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:Dt,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?yt:dt}},yAxis:{type:"value",min:0,max:Math.ceil(a*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Gt,type:"dashed"}}},series:[{type:"bar",data:t.map((r,d)=>{var k;const o=!!(r!=null&&r.zero||r!=null&&r.isZero),v=o?0:Number((r==null?void 0:r.value)||0);return{name:r==null?void 0:r.name,value:v,displayValue:(k=r==null?void 0:r.displayValue)!=null?k:Pe(v),unit:(r==null?void 0:r.unit)||s||"",extra:(r==null?void 0:r.extra)||"",zero:o,itemStyle:{color:o?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?ht():ft(d,r)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:Ue,fontFamily:It,fontSize:10,fontWeight:700,formatter(r={}){var o;const d=r.data||{};return d.zero?"":(o=d.displayValue)!=null?o:Pe(Number(d.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function ct(e=[]){const t=[...new Set(e.map(n=>n==null?void 0:n.unit).filter(Boolean))];return t.length===1?t[0]:""}function dt(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` -`)}function yt(e){return Array.from(String(e||"").replace(/\s+/g,"")).slice(0,2).join("")}function ft(e,t={}){return t.color||t.fillColor?t.color||t.fillColor:Ee(me[e%me.length])}function ht(){return Ee(me[0])}function Pe(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:"--"}function fe(){j.value=typeof window=="undefined"?1080:window.innerHeight}function vt(e=y.value){const t=e||y.value;P("module-stats",{moduleKey:"yak-industry-chain",items:Yt(t)})}function gt(){var e,t,n;te=new Bt,de=!1,P("loading-progress",{progress:0}),(t=(e=te.instance)==null?void 0:e.on)==null||t.call(e,"onProgress",(a,s,r)=>{P("loading-progress",{progress:Math.floor(s/(r||1)*100),path:a,itemsLoaded:s,itemsTotal:r})}),(n=te.ready)==null||n.then(()=>{de=!0,he()}).catch(()=>{z.value=!0,P("map-ready")})}function he(){ye||!R.active||!de||G||(G=!0,A&&window.clearTimeout(A),A=window.setTimeout(()=>{A=null,Le()},600))}function Le(e=0){return U(this,null,function*(){var n,a;if(ye)return;if(!R.active){G=!1;return}if(yield le(),!R.active){G=!1;return}const t=p.value;if((n=t==null?void 0:t.loadMap)==null||n.call(t,te),t!=null&&t.canvasMap){z.value=!0,P("loading-progress",{progress:100}),P("map-ready"),(a=t.play)==null||a.call(t);return}if(e<24){window.setTimeout(()=>Le(e+1),120);return}G=!1,z.value=!0,P("map-ready")})}function mt(){A&&(window.clearTimeout(A),A=null)}function Te(){var e,t,n,a;(t=(e=p.value)==null?void 0:e.resume)==null||t.call(e),(a=(n=p.value)==null?void 0:n.refreshView)==null||a.call(n)}function pt(){var e,t;if(se(),(t=(e=p.value)==null?void 0:e.hasMap)!=null&&t.call(e)){z.value=!0,Te();return}mt(),z.value=!1,G=!1,le(()=>{he()})}m({refreshMapView:Te,resetMap:pt});function wt(e={}){var a,s,r,d;const t=e.feature||null,n=(t==null?void 0:t.properties)||{};if(((a=t==null?void 0:t.layer)==null?void 0:a.key)==="artificial-grassland-plots"){h.value=null,$.value=t;const o=e.screen||((r=(s=p.value)==null?void 0:s.getVectorFeatureScreen)==null?void 0:r.call(s,t.feature));o&&(Z.value=re(o)),K.value=!!o;return}if($.value=null,K.value=!1,n.stageKey){if(String(n.stageKey)!==String(y.value)){h.value=null,L.value="";return}L.value=((d=pe(n))==null?void 0:d.key)||"",h.value=n,X.value=re(e.screen);return}h.value=null,L.value=""}function Ne(){return U(this,arguments,function*(e={}){if(e.stageKey==="artificial-grassland"){yield bt(e);return}yield Ae(e)})}function bt(){return U(this,arguments,function*(e={}){e!=null&&e.canLocate&&(Q.value||(y.value="artificial-grassland",yield le()),h.value=null,L.value="",$.value=null,Z.value={x:960,y:510},K.value=!1,window.setTimeout(()=>$e(e),90))})}function $e(e={},t=0){var s,r,d;const n=(r=(s=p.value)==null?void 0:s.focusVectorFeature)==null?void 0:r.call(s,e);if(!(n!=null&&n.feature)){t<4&&window.setTimeout(()=>$e(e,t+1),180);return}$.value={id:((d=n.feature.properties)==null?void 0:d.id)||e.id,properties:n.feature.properties||{},feature:n.feature,layer:ge("yak-industry-chain","artificial-grassland-plots")};const a=$.value.id;window.setTimeout(()=>{var o;((o=$.value)==null?void 0:o.id)===a&&(_t(n.feature,n.screen),K.value=!0)},820)}function _t(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:s.call(a,e))||t;n&&(Z.value=re(n))}function Ae(){return U(this,arguments,function*(e={}){var a;if(!e.canLocate)return;const t=!!(e.stageKey&&e.stageKey!==y.value);t&&(y.value=e.stageKey,yield le());const n=kt(e);L.value=((a=pe(n))==null?void 0:a.key)||"",h.value=n,X.value={x:960,y:500},window.setTimeout(()=>{var r,d;const s=(d=(r=p.value)==null?void 0:r.focusYakIndustryPoint)==null?void 0:d.call(r,n);Be(n,s),xt(n)},t?320:80)})}function He(){return U(this,arguments,function*(e={}){e.point&&(L.value=e.key,yield Ae(e.point))})}function se(){var t,n,a,s;h.value=null,L.value="",$.value=null,K.value=!1,_&&(window.cancelAnimationFrame(_),_=null);const e=((n=(t=p.value)==null?void 0:t.canvasMap)==null?void 0:n.value)||((a=p.value)==null?void 0:a.canvasMap);(s=e==null?void 0:e.clearSelectedFeature)==null||s.call(e)}function kt(e={}){var a;const t=Number(e.longitude),n=Number(e.latitude);return S(x({},e),{id:e.key||e.id,name:e.fullName||e.name,stageKey:e.stageKey,stageName:e.stageName||((a=Ye(e.stageKey))==null?void 0:a.name),categoryName:e.categoryName||e.typeName,capacity:e.value,capacityUnit:e.unit,longitude:t,latitude:n,geometry:Number.isFinite(t)&&Number.isFinite(n)?{type:"Point",coordinates:[t,n]}:void 0,preferCoordinateMatch:Number.isFinite(t)&&Number.isFinite(n),status:e.status})}function Be(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getYakIndustryPointScreen)==null?void 0:s.call(a,e))||(t==null?void 0:t.screen);n&&(X.value=re(n))}function xt(e,t=920){var s,r;_&&window.cancelAnimationFrame(_);const n=((r=(s=window.performance)==null?void 0:s.now)==null?void 0:r.call(s))||Date.now(),a=()=>{var o,v;if(!h.value||h.value.id!==e.id){_=null;return}if(Be(e),(((v=(o=window.performance)==null?void 0:o.now)==null?void 0:v.call(o))||Date.now())-n{var n;return i(),u("div",Ot,[ie(Nt,{ref_key:"mapSceneRef",ref:p,class:"industry-map-scene","active-layer":Qe.value,"map-ranking":tt.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureInfo:wt},null,8,["active-layer","map-ranking"]),t[3]||(t[3]=l("div",{class:"industry-map-scrim"},null,-1)),z.value?T("",!0):(i(),u("div",Jt,"3D地图加载中")),ke.value.length?(i(),u("div",Xt,[l("div",Zt,[(i(!0),u(M,null,F(ke.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card left-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",Qt," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ea,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",aa,c(`0${r+1}`),1),l("span",na,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ta))),128))])):a.renderer==="leadershipMode"?(i(),u("div",sa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ra,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),xe.value.length?(i(),u("div",la,[l("div",ia,[(i(!0),u(M,null,F(xe.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card right-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",oa," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ua,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",da,c(`0${r+1}`),1),l("span",ya,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ca))),128))])):a.renderer==="leadershipMode"?(i(),u("div",fa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ha,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),Q.value?(i(),u("div",va,[ie(At,{modelValue:D.value,"onUpdate:modelValue":t[0]||(t[0]=a=>D.value=a),"topic-key":"yak-industry-chain",layers:Je.value,legends:Xe.value,width:248,height:430,multiple:""},null,8,["modelValue","layers","legends"])])):T("",!0),$.value&&K.value?(i(),u("div",{key:4,class:"industry-map-feature-info",style:ue(rt.value)},[ie($t,{feature:$.value,width:460,height:374},null,8,["feature"])],4)):T("",!0),h.value?(i(),u("div",{key:5,class:"industry-point-detail",style:ue(st.value)},[l("div",ga,[l("span",null,c(at.value),1),l("button",{type:"button",title:"关闭",onClick:se},"×")]),l("div",ma,c(nt.value),1),w.value?(i(),u("div",pa,[l("div",wa,[t[1]||(t[1]=l("span",null,"基地介绍",-1)),l("strong",null,c(w.value.tag),1)]),l("p",null,c(w.value.summary),1),w.value.image?(i(),u("img",{key:0,class:"industry-point-detail__image",src:w.value.image,alt:`${w.value.name}项目资料图`},null,8,ba)):T("",!0),l("div",_a,[(i(!0),u(M,null,F(w.value.facts,a=>(i(),u("div",{key:a.label},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1),l("small",null,c(a.note),1)]))),128))]),l("div",ka,[t[2]||(t[2]=l("span",null,"示范亮点",-1)),(i(!0),u(M,null,F(w.value.highlights,a=>(i(),u("i",{key:a},c(a),1))),128))])])):T("",!0),l("div",{class:Y(["industry-point-detail__grid",{"is-family-layout":((n=h.value)==null?void 0:n.categoryCode)==="YC-FAMILY-PASTURE"}])},[(i(!0),u(M,null,F(ae.value,a=>(i(),u("div",{key:a.label,class:Y(["industry-point-detail__row",{"is-wide":a.wide}])},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1)],2))),128))],2)],4)):T("",!0),l("div",xa,[ie(Ht,{"model-value":y.value,topics:et.value,"onUpdate:modelValue":lt},null,8,["model-value","topics"])])])}}};export{Da as default}; +var Ft=Object.defineProperty,Ct=Object.defineProperties;var Pt=Object.getOwnPropertyDescriptors;var Ve=Object.getOwnPropertySymbols;var Lt=Object.prototype.hasOwnProperty,Tt=Object.prototype.propertyIsEnumerable;var ze=(b,m,g)=>m in b?Ft(b,m,{enumerable:!0,configurable:!0,writable:!0,value:g}):b[m]=g,x=(b,m)=>{for(var g in m||(m={}))Lt.call(m,g)&&ze(b,g,m[g]);if(Ve)for(var g of Ve(m))Tt.call(m,g)&&ze(b,g,m[g]);return b},S=(b,m)=>Ct(b,Pt(m));var U=(b,m,g)=>new Promise((R,P)=>{var V=N=>{try{q(g.next(N))}catch(O){P(O)}},j=N=>{try{q(g.throw(N))}catch(O){P(O)}},q=N=>N.done?R(N.value):Promise.resolve(N.value).then(V,j);q((g=g.apply(b,m)).next())});import{H as Ke}from"./index.esm.min-469b3f53-1784074877048.js";import{_ as De}from"./index-1f5d6021-1784074877048.js";import{M as Nt}from"./index-b4ec1ae2-1784074877048.js";import{a as Ge,_ as $t}from"./FeatureInfoPanel-8e9f606e-1784074877048.js";import{_ as At}from"./LayerPanel-9c0c5952-1784074877048.js";import{_ as Ht}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{A as Bt}from"./assets-34f9bc99-1784074877048.js";import{g as ge}from"./townshipBoundaries-1b068bef-1784074877048.js";import{q as ee,r as Rt,s as Ie}from"./screen2Standard-9c6af3a2-1784074877048.js";import{w as Vt,f as zt,l as We,m as Ue,n as Kt,o as Dt,p as Gt,q as It,s as Ee,e as me}from"./chartTheme-9a56b109-1784074877048.js";import{g as Ye,a as Wt,i as Ut,b as Et,c as pe,d as we,e as Yt}from"./data-631f012a-1784074877048.js";import{g as f,w as be,q as jt,h as qt,A as le,o as i,c as u,b as ie,a as l,j as T,F as M,y as F,C as E,x as je,u as oe,n as Y,t as c,J as ue,d as C}from"./index-1784074877048.js";import"./index-bc047bb3-1784074877048.js";import"./index-e9f36657-1784074877048.js";import"./livestockData-36ec0ae2-1784074877048.js";const Ot={class:"yak-industry-chain"},Jt={key:0,class:"industry-map-loading"},Xt={key:1,class:"fgw-left industry-side-panel industry-side-panel--left"},Zt={class:"fgw-side-stack industry-side-stack is-left"},Qt={key:1,class:"industry-panel-empty"},ea={key:3,class:"industry-featured-base-list"},ta=["disabled","aria-label","onClick"],aa={class:"industry-featured-base__index"},na={class:"industry-featured-base__copy"},sa={key:4,class:"industry-leadership-mode-list"},ra={key:5,class:"industry-ledger-list"},la={key:2,class:"fgw-right industry-side-panel industry-side-panel--right"},ia={class:"fgw-side-stack industry-side-stack is-right"},oa={key:1,class:"industry-panel-empty"},ua={key:3,class:"industry-featured-base-list"},ca=["disabled","aria-label","onClick"],da={class:"industry-featured-base__index"},ya={class:"industry-featured-base__copy"},fa={key:4,class:"industry-leadership-mode-list"},ha={key:5,class:"industry-ledger-list"},va={key:3,class:"industry-artificial-layer-tools"},ga={class:"industry-point-detail__head"},ma={class:"industry-point-detail__name"},pa={key:0,class:"industry-point-detail__profile"},wa={class:"industry-point-detail__profile-head"},ba=["src","alt"],_a={class:"industry-point-detail__facts"},ka={class:"industry-point-detail__highlights"},xa={class:"industry-bottom-switcher"},Da={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(b,{expose:m,emit:g}){const R=b,P=g,V=ee.sideCardWidth,j=C(typeof window=="undefined"?1080:window.innerHeight),q=ee.sideCardGap,N=ee.sidePanelTop,O=ee.sidePanelBottom,qe=ee.sideCardMinHeight,J=f(()=>Rt(j.value)),ce=f(()=>Ie(J.value,2)),Oe=f(()=>Ie(J.value,4)),y=C("family-pasture"),p=C(null),z=C(!1),h=C(null),L=C(""),X=C({x:0,y:0}),$=C(null),Z=C({x:0,y:0}),K=C(!1),D=C(["artificial-grassland-plots"]);let te=null,de=!1,G=!1,A=null,_=null,ye=!1;const I=f(()=>Ye(y.value));f(()=>y.value==="family-pasture");const Q=f(()=>y.value==="artificial-grassland"),Je=f(()=>[{key:"artificial-grassland-plots",name:"待核定种草图斑",color:"#30DCFF",stroke:"#C9FBFF"},{key:"yak-industry-points",name:"人工种草基地点",color:"#19FFC6",stroke:"#B7FFF2"}]),Xe=f(()=>[{key:"artificial-grassland-pending",name:"待核定种草图斑",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1},{key:"artificial-grassland-base",name:"人工种草基地点",fillColor:"#19FFC6",strokeColor:"#B7FFF2",selectable:!1}]),Ze=f(()=>Wt(y.value)),_e=f(()=>it(Ze.value)),ke=f(()=>{const e=_e.value.left;return e.filter(t=>!(t!=null&&t.placeholder)).map(t=>Se(t,e.length))}),xe=f(()=>{const e=_e.value.right;return e.map(t=>Se(t,e.length))}),Qe=f(()=>{var n,a,s;const e=ge("yak-industry-chain","yak-industry-points");if(Q.value){const r=[];if(D.value.includes("artificial-grassland-plots")){const v=ge("yak-industry-chain","artificial-grassland-plots");v&&r.push(S(x({},v),{activeLegend:(n=v.legends)==null?void 0:n[0]}))}if(D.value.includes("yak-industry-points")&&e){const v=(a=e.legends)==null?void 0:a.find(k=>k.key==="yak-industry-artificial-grassland");r.push(S(x({},e),{showPointLabels:!1,activeLegend:v}))}if(!r.length)return null;const[d,...o]=r;return S(x({},d),{overlayLayers:o})}const t=(s=e==null?void 0:e.legends)==null?void 0:s.find(r=>{var d;return((d=r.match)==null?void 0:d.value)===y.value||r.key===`yak-industry-${y.value}`});return e&&S(x({},e),{hidePointFeatures:y.value==="family-pasture",hidePointMarkers:y.value==="family-pasture",showPointLabels:y.value==="family-pasture"?!1:e.showPointLabels,activeLegend:t||{key:`yak-industry-empty-${y.value}`,name:I.value.name,fillColor:I.value.color,strokeColor:I.value.color,match:{field:"stageKey",value:y.value}}})}),et=f(()=>Ut.map(e=>({key:e.key,name:e.name,color:e.color,width:e.width}))),tt=f(()=>{const e=y.value==="family-pasture",t=Q.value&&D.value.includes("yak-industry-points");return{showTownNames:!0,showBars:!1,showPointMarkers:!e&&!Q.value||t,showMissingTownStats:e,title:e?"家庭生态牧场":`${I.value.name}排行`,metricLabel:e?"生态牧场":I.value.metricLabel,unit:I.value.unit,rows:e?Et():[]}}),w=f(()=>{var e;return pe(S(x({},h.value||{}),{featuredBaseKey:L.value||((e=h.value)==null?void 0:e.featuredBaseKey)}))}),ae=f(()=>{const e=h.value;if(!e)return[];if(w.value){const t=w.value,n=we(e).filter(a=>["设计存栏","年出栏量"].includes(a.label));return[{label:"所在地",value:`${t.town} ${t.village}`},{label:"运营单位",value:t.operator},...n].filter(a=>a.value!==void 0&&a.value!==null&&String(a.value).trim()!=="")}return e.categoryCode==="YC-FAMILY-PASTURE"?[{label:"所在乡镇",value:B(e.town)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!==""):[{label:"所属环节",value:B(e.stageName)},{label:"主体类型",value:B(e.categoryName)},{label:"所在乡镇",value:B(e.town)},{label:"能力规模",value:St(e)},{label:"运行状态",value:B(e.status)},...we(e)].filter(t=>t.value!==void 0&&t.value!==null&&String(t.value).trim()!=="")}),at=f(()=>{var e,t;return w.value?"重点示范基地":B(((e=h.value)==null?void 0:e.categoryName)||((t=h.value)==null?void 0:t.stageName))}),nt=f(()=>{var e,t;return((e=w.value)==null?void 0:e.name)||B((t=h.value)==null?void 0:t.name)}),st=f(()=>{var Re;const t=((Re=h.value)==null?void 0:Re.categoryCode)==="YC-FAMILY-PASTURE",n=ae.value.filter(Mt=>Mt.wide).length,a=Math.ceil(Math.max(0,ae.value.length-n)/2)+n,s=w.value?w.value.image?576:532:t?Math.min(400,Math.max(318,150+a*38)):Math.min(520,Math.max(252,116+ae.value.length*40)),r=24,d=28,o={x:Math.max(r,Math.min(1920-r,Number(X.value.x||0))),y:Math.max(r,Math.min(1080-r,Number(X.value.y||0)))},v=V+46,k=1920-V-46,H=Math.min(Math.max(o.x-456/2,v),k-456),W=Math.min(Math.max(o.y-s-d,128),1080-s-116),ve=Math.min(Math.max(o.x-H,34),456-34);return{left:`${H}px`,top:`${W}px`,"--point-arrow-left":`${ve}px`,"--point-arrow-top":"100%","--point-arrow-x":"-50%","--point-arrow-y":"-8px","--point-arrow-rotate":"45deg"}}),rt=f(()=>{const o={x:Math.max(452,Math.min(1468,Number(Z.value.x||960))),y:Math.max(128,Math.min(960,Number(Z.value.y||540)))},v=Math.min(Math.max(o.x-460/2,452),1468-460),k=o.y-374-26,H=k>=116,W=H?k:Math.min(Math.max(o.y+26,116),944-374),ve=Math.min(Math.max(o.x-v,26),460-26);return{left:`${v}px`,top:`${W}px`,"--feature-arrow-left":`${ve}px`,"--feature-arrow-top":H?`${374-6}px`:"-6px","--feature-arrow-rotate":H?"45deg":"225deg"}});be(y,e=>{vt(e)},{immediate:!0}),jt(()=>{fe(),window.addEventListener("resize",fe),gt()}),qt(()=>{var e,t;ye=!0,window.removeEventListener("resize",fe),A&&window.clearTimeout(A),_&&window.cancelAnimationFrame(_),(t=(e=p.value)==null?void 0:e.destroyMap)==null||t.call(e)}),be(()=>R.active,e=>{var t,n,a,s;p.value&&(e?(he(),(n=(t=p.value).resume)==null||n.call(t)):(s=(a=p.value).pause)==null||s.call(a))}),be(D,()=>{se()},{deep:!0});function lt(e){e!==y.value&&(y.value=e,se())}function it(e={}){const t=Me(e.left),n=Me(e.right);if(n.length)return{left:t,right:n};const a=[...t,...n];return a.length<=4?{left:a,right:[]}:{left:t,right:n}}function Se(e,t=0){if((e==null?void 0:e.fixedHeight)===!0)return S(x({},e),{height:J.value});if((e==null?void 0:e.fillHeight)===!0)return S(x({},e),{height:ot(t)});if(["projectTable","projectLedger"].includes(e==null?void 0:e.type))return S(x({},e),{height:ut(e)});const n=Number((e==null?void 0:e.height)||0)>=400||(e==null?void 0:e.span)===2,a=(e==null?void 0:e.keepSpanHeight)===!0;return S(x({},e),{height:t===1&&!a?Oe.value:n?ce.value:J.value})}function ot(e=1){const t=Math.max(1,Number(e)||1),a=Math.max(1080,Number(j.value)||1080)-N-O-q*Math.max(t-1,0);return Math.max(qe,Math.floor(a/t))}function ut(e={}){if((e==null?void 0:e.span)===2||(e==null?void 0:e.keepSpanHeight)===!0)return ce.value;const t=Array.isArray(e.rows)?e.rows:[],n=100,a=32,s=n+25+t.length*a;return Math.min(ce.value,Math.max(J.value,s))}function Me(e=[]){return e.filter(Boolean)}function ne(e={}){return(e==null?void 0:e.renderer)==="business"&&(e==null?void 0:e.type)==="column"&&(e==null?void 0:e.variant)==="townCompact"}function Fe(e={}){return Array.isArray(e.rows)&&e.rows.some(t=>Number(t!=null&&t.zero?0:(t==null?void 0:t.value)||0)>0)}function Ce(e={}){const t=Array.isArray(e.rows)?e.rows:[],n=t.map(r=>Number(r!=null&&r.zero?0:(r==null?void 0:r.value)||0)),a=Math.max(...n,1),s=ct(t);return Vt({animationDuration:720,animationEasing:"cubicOut",grid:{top:30,right:8,bottom:58,left:8,containLabel:!1},tooltip:zt((r=[])=>{var W;const o=((W=(Array.isArray(r)?r:[r])[0])==null?void 0:W.data)||{},v=o.zero?"0":o.displayValue,k=o.unit||s||"",H=o.extra?`
    ${o.extra}`:"";return`${o.name||""}
    ${v}${k}${H}`},{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.06)"}},confine:!0}),graphic:s?[{type:"text",right:10,top:4,silent:!0,style:{text:`单位:${s}`,fill:We,font:`10px ${Kt}`}}]:[],xAxis:{type:"category",data:t.map(r=>(r==null?void 0:r.name)||""),axisTick:{show:!1},axisLine:{show:!0,lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisLabel:{color:Dt,fontSize:10,fontWeight:700,lineHeight:14,interval:0,margin:10,formatter:(e==null?void 0:e.axisLabelMode)==="short"?yt:dt}},yAxis:{type:"value",min:0,max:Math.ceil(a*1.18),splitNumber:3,axisLabel:{show:!1},axisTick:{show:!1},axisLine:{show:!1},splitLine:{show:!0,lineStyle:{color:Gt,type:"dashed"}}},series:[{type:"bar",data:t.map((r,d)=>{var k;const o=!!(r!=null&&r.zero||r!=null&&r.isZero),v=o?0:Number((r==null?void 0:r.value)||0);return{name:r==null?void 0:r.name,value:v,displayValue:(k=r==null?void 0:r.displayValue)!=null?k:Pe(v),unit:(r==null?void 0:r.unit)||s||"",extra:(r==null?void 0:r.extra)||"",zero:o,itemStyle:{color:o?"rgba(48, 220, 255, 0.1)":e!=null&&e.uniformColor?ht():ft(d,r)}}}),barWidth:6,barMinHeight:3,showBackground:!0,backgroundStyle:{color:"rgba(48, 220, 255, 0.06)",borderColor:"rgba(48, 220, 255, 0.08)",borderWidth:1},itemStyle:{borderRadius:[4,4,0,0]},label:{show:!0,position:"top",distance:5,color:Ue,fontFamily:It,fontSize:10,fontWeight:700,formatter(r={}){var o;const d=r.data||{};return d.zero?"":(o=d.displayValue)!=null?o:Pe(Number(d.value||0))}},emphasis:{focus:"series",itemStyle:{shadowBlur:0,shadowColor:"rgba(48, 220, 255, 0)"}}}]})}function ct(e=[]){const t=[...new Set(e.map(n=>n==null?void 0:n.unit).filter(Boolean))];return t.length===1?t[0]:""}function dt(e){const t=String(e||"").replace(/\s+/g,"");return Array.from(t).slice(0,3).join(` +`)}function yt(e){return Array.from(String(e||"").replace(/\s+/g,"")).slice(0,2).join("")}function ft(e,t={}){return t.color||t.fillColor?t.color||t.fillColor:Ee(me[e%me.length])}function ht(){return Ee(me[0])}function Pe(e){const t=Number(e);return Number.isFinite(t)?Number.isInteger(t)?`${t}`:`${Number(t.toFixed(2))}`:"--"}function fe(){j.value=typeof window=="undefined"?1080:window.innerHeight}function vt(e=y.value){const t=e||y.value;P("module-stats",{moduleKey:"yak-industry-chain",items:Yt(t)})}function gt(){var e,t,n;te=new Bt,de=!1,P("loading-progress",{progress:0}),(t=(e=te.instance)==null?void 0:e.on)==null||t.call(e,"onProgress",(a,s,r)=>{P("loading-progress",{progress:Math.floor(s/(r||1)*100),path:a,itemsLoaded:s,itemsTotal:r})}),(n=te.ready)==null||n.then(()=>{de=!0,he()}).catch(()=>{z.value=!0,P("map-ready")})}function he(){ye||!R.active||!de||G||(G=!0,A&&window.clearTimeout(A),A=window.setTimeout(()=>{A=null,Le()},600))}function Le(e=0){return U(this,null,function*(){var n,a;if(ye)return;if(!R.active){G=!1;return}if(yield le(),!R.active){G=!1;return}const t=p.value;if((n=t==null?void 0:t.loadMap)==null||n.call(t,te),t!=null&&t.canvasMap){z.value=!0,P("loading-progress",{progress:100}),P("map-ready"),(a=t.play)==null||a.call(t);return}if(e<24){window.setTimeout(()=>Le(e+1),120);return}G=!1,z.value=!0,P("map-ready")})}function mt(){A&&(window.clearTimeout(A),A=null)}function Te(){var e,t,n,a;(t=(e=p.value)==null?void 0:e.resume)==null||t.call(e),(a=(n=p.value)==null?void 0:n.refreshView)==null||a.call(n)}function pt(){var e,t;if(se(),(t=(e=p.value)==null?void 0:e.hasMap)!=null&&t.call(e)){z.value=!0,Te();return}mt(),z.value=!1,G=!1,le(()=>{he()})}m({refreshMapView:Te,resetMap:pt});function wt(e={}){var a,s,r,d;const t=e.feature||null,n=(t==null?void 0:t.properties)||{};if(((a=t==null?void 0:t.layer)==null?void 0:a.key)==="artificial-grassland-plots"){h.value=null,$.value=t;const o=e.screen||((r=(s=p.value)==null?void 0:s.getVectorFeatureScreen)==null?void 0:r.call(s,t.feature));o&&(Z.value=re(o)),K.value=!!o;return}if($.value=null,K.value=!1,n.stageKey){if(String(n.stageKey)!==String(y.value)){h.value=null,L.value="";return}L.value=((d=pe(n))==null?void 0:d.key)||"",h.value=n,X.value=re(e.screen);return}h.value=null,L.value=""}function Ne(){return U(this,arguments,function*(e={}){if(e.stageKey==="artificial-grassland"){yield bt(e);return}yield Ae(e)})}function bt(){return U(this,arguments,function*(e={}){e!=null&&e.canLocate&&(Q.value||(y.value="artificial-grassland",yield le()),h.value=null,L.value="",$.value=null,Z.value={x:960,y:510},K.value=!1,window.setTimeout(()=>$e(e),90))})}function $e(e={},t=0){var s,r,d;const n=(r=(s=p.value)==null?void 0:s.focusVectorFeature)==null?void 0:r.call(s,e);if(!(n!=null&&n.feature)){t<4&&window.setTimeout(()=>$e(e,t+1),180);return}$.value={id:((d=n.feature.properties)==null?void 0:d.id)||e.id,properties:n.feature.properties||{},feature:n.feature,layer:ge("yak-industry-chain","artificial-grassland-plots")};const a=$.value.id;window.setTimeout(()=>{var o;((o=$.value)==null?void 0:o.id)===a&&(_t(n.feature,n.screen),K.value=!0)},820)}function _t(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:s.call(a,e))||t;n&&(Z.value=re(n))}function Ae(){return U(this,arguments,function*(e={}){var a;if(!e.canLocate)return;const t=!!(e.stageKey&&e.stageKey!==y.value);t&&(y.value=e.stageKey,yield le());const n=kt(e);L.value=((a=pe(n))==null?void 0:a.key)||"",h.value=n,X.value={x:960,y:500},window.setTimeout(()=>{var r,d;const s=(d=(r=p.value)==null?void 0:r.focusYakIndustryPoint)==null?void 0:d.call(r,n);Be(n,s),xt(n)},t?320:80)})}function He(){return U(this,arguments,function*(e={}){e.point&&(L.value=e.key,yield Ae(e.point))})}function se(){var t,n,a,s;h.value=null,L.value="",$.value=null,K.value=!1,_&&(window.cancelAnimationFrame(_),_=null);const e=((n=(t=p.value)==null?void 0:t.canvasMap)==null?void 0:n.value)||((a=p.value)==null?void 0:a.canvasMap);(s=e==null?void 0:e.clearSelectedFeature)==null||s.call(e)}function kt(e={}){var a;const t=Number(e.longitude),n=Number(e.latitude);return S(x({},e),{id:e.key||e.id,name:e.fullName||e.name,stageKey:e.stageKey,stageName:e.stageName||((a=Ye(e.stageKey))==null?void 0:a.name),categoryName:e.categoryName||e.typeName,capacity:e.value,capacityUnit:e.unit,longitude:t,latitude:n,geometry:Number.isFinite(t)&&Number.isFinite(n)?{type:"Point",coordinates:[t,n]}:void 0,preferCoordinateMatch:Number.isFinite(t)&&Number.isFinite(n),status:e.status})}function Be(e,t=null){var a,s;const n=((s=(a=p.value)==null?void 0:a.getYakIndustryPointScreen)==null?void 0:s.call(a,e))||(t==null?void 0:t.screen);n&&(X.value=re(n))}function xt(e,t=920){var s,r;_&&window.cancelAnimationFrame(_);const n=((r=(s=window.performance)==null?void 0:s.now)==null?void 0:r.call(s))||Date.now(),a=()=>{var o,v;if(!h.value||h.value.id!==e.id){_=null;return}if(Be(e),(((v=(o=window.performance)==null?void 0:o.now)==null?void 0:v.call(o))||Date.now())-n{var n;return i(),u("div",Ot,[ie(Nt,{ref_key:"mapSceneRef",ref:p,class:"industry-map-scene","active-layer":Qe.value,"map-ranking":tt.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureInfo:wt},null,8,["active-layer","map-ranking"]),t[3]||(t[3]=l("div",{class:"industry-map-scrim"},null,-1)),z.value?T("",!0):(i(),u("div",Jt,"3D地图加载中")),ke.value.length?(i(),u("div",Xt,[l("div",Zt,[(i(!0),u(M,null,F(ke.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card left-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",Qt," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ea,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",aa,c(`0${r+1}`),1),l("span",na,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ta))),128))])):a.renderer==="leadershipMode"?(i(),u("div",sa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ra,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),xe.value.length?(i(),u("div",la,[l("div",ia,[(i(!0),u(M,null,F(xe.value,a=>(i(),E(De,{key:a.key,class:Y(["fgw-side-card industry-side-card right-card",`industry-side-card--${a.key}`]),title:a.title,width:oe(V),height:a.height},{default:je(()=>[ne(a)&&Fe(a)?(i(),E(oe(Ke),{key:0,class:"industry-town-column-chart",option:Ce(a),autoresize:!0},null,8,["option"])):ne(a)?(i(),u("div",oa," 暂无业务统计数据 ")):a.renderer==="business"?(i(),E(Ge,{key:2,panel:a,compact:"",onRowSelect:Ne},null,8,["panel"])):a.renderer==="featured"?(i(),u("div",ua,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("button",{key:s.key,class:Y(["industry-featured-base",{"is-active":L.value===s.key}]),type:"button",disabled:!s.point,"aria-label":`查看${s.name}`,onClick:d=>He(s)},[l("span",da,c(`0${r+1}`),1),l("span",ya,[l("strong",null,c(s.name),1),l("em",null,c(s.town)+" · "+c(s.tag),1),l("small",null,c(s.summary),1)])],10,ca))),128))])):a.renderer==="leadershipMode"?(i(),u("div",fa,[(i(!0),u(M,null,F(a.rows,(s,r)=>(i(),u("div",{key:s.key,class:"industry-leadership-mode"},[l("i",{style:ue({color:s.color,background:s.color})},null,4),l("span",null,c(`0${r+1}`),1),l("div",null,[l("strong",null,c(s.name),1),l("small",null,c(s.description),1)])]))),128))])):a.renderer==="ledger"?(i(),u("div",ha,[(i(!0),u(M,null,F(a.rows,s=>(i(),u("div",{key:s.key,class:"industry-ledger-row"},[l("div",null,[l("strong",null,c(s.name),1),l("span",null,c(s.typeName)+" / "+c(s.town),1)]),l("em",null,c(s.valueText),1)]))),128))])):T("",!0)]),_:2},1032,["class","title","width","height"]))),128))])])):T("",!0),Q.value?(i(),u("div",va,[ie(At,{modelValue:D.value,"onUpdate:modelValue":t[0]||(t[0]=a=>D.value=a),"topic-key":"yak-industry-chain",layers:Je.value,legends:Xe.value,width:248,height:430,multiple:""},null,8,["modelValue","layers","legends"])])):T("",!0),$.value&&K.value?(i(),u("div",{key:4,class:"industry-map-feature-info",style:ue(rt.value)},[ie($t,{title:"人工草地详情",feature:$.value,width:460,height:374},null,8,["feature"])],4)):T("",!0),h.value?(i(),u("div",{key:5,class:"industry-point-detail",style:ue(st.value)},[l("div",ga,[l("span",null,c(at.value),1),l("button",{type:"button",title:"关闭",onClick:se},"×")]),l("div",ma,c(nt.value),1),w.value?(i(),u("div",pa,[l("div",wa,[t[1]||(t[1]=l("span",null,"基地介绍",-1)),l("strong",null,c(w.value.tag),1)]),l("p",null,c(w.value.summary),1),w.value.image?(i(),u("img",{key:0,class:"industry-point-detail__image",src:w.value.image,alt:`${w.value.name}项目资料图`},null,8,ba)):T("",!0),l("div",_a,[(i(!0),u(M,null,F(w.value.facts,a=>(i(),u("div",{key:a.label},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1),l("small",null,c(a.note),1)]))),128))]),l("div",ka,[t[2]||(t[2]=l("span",null,"示范亮点",-1)),(i(!0),u(M,null,F(w.value.highlights,a=>(i(),u("i",{key:a},c(a),1))),128))])])):T("",!0),l("div",{class:Y(["industry-point-detail__grid",{"is-family-layout":((n=h.value)==null?void 0:n.categoryCode)==="YC-FAMILY-PASTURE"}])},[(i(!0),u(M,null,F(ae.value,a=>(i(),u("div",{key:a.label,class:Y(["industry-point-detail__row",{"is-wide":a.wide}])},[l("span",null,c(a.label),1),l("strong",null,c(a.value),1)],2))),128))],2)],4)):T("",!0),l("div",xa,[ie(Ht,{"model-value":y.value,topics:et.value,"onUpdate:modelValue":lt},null,8,["model-value","topics"])])])}}};export{Da as default}; diff --git a/docs/assets/index-6a8ef8cf-1784045078568.js b/docs/assets/index-6a8ef8cf-1784045078568.js deleted file mode 100644 index 6de984e..0000000 --- a/docs/assets/index-6a8ef8cf-1784045078568.js +++ /dev/null @@ -1,16 +0,0 @@ -var Yt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ye=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,o,a)=>o in e?Yt(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,P=(e,o)=>{for(var a in o||(o={}))ct.call(o,a)&&ut(e,a,o[a]);if(ye)for(var a of ye(o))dt.call(o,a)&&ut(e,a,o[a]);return e},ve=(e,o)=>Qt(e,Jt(o));var mt=(e,o)=>{var a={};for(var l in e)ct.call(e,l)&&o.indexOf(l)<0&&(a[l]=e[l]);if(e!=null&&ye)for(var l of ye(e))o.indexOf(l)<0&&dt.call(e,l)&&(a[l]=e[l]);return a};var X=(e,o,a)=>new Promise((l,s)=>{var c=_=>{try{p(a.next(_))}catch(g){s(g)}},h=_=>{try{p(a.throw(_))}catch(g){s(g)}},p=_=>_.done?l(_.value):Promise.resolve(_.value).then(c,h);p((a=a.apply(e,o)).next())});import{_ as bt,o as m,c as f,a as r,t as E,r as pe,b as x,d as k,w as We,p as ft,i as ht,n as B,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Zt,m as Xt,q as ea,s as q,v as N,x as Le,F as ge,y as De,z as ta,A as Fe,B as aa,C as na,D as z,E as oa,G as H}from"./index-1784045078568.js";import{g as te}from"./index-e9f36657-1784045078568.js";const gt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg",import.meta.url).href,pt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1784045078568.svg",import.meta.url).href;/** - * @name: autofit.js - * @author: Larry Zhu - * @version: 3.2.8 - * @description: autofit.js 是迄今为止最易用的自适应工具 - * @license: MIT - */let Ie=null,ne="",ze="",He="",Pe=null,wt=null,$=1,ee=!1;const ke={isAutofitRunning:!1,init(e={},o=!0){o&&console.log("autofit.js is running");const{dw:a=1920,dh:l=1080,el:s=typeof e=="string"?e:"body",resize:c=!0,ignore:h=[],transition:p="none",delay:_=0,limit:g=.1,cssMode:v="scale",allowScroll:w=!1}=e;Ie=s;const u=document.querySelector(s);if(!u){console.error(`autofit: '${s}' is not exist`);return}const b=document.createElement("style"),M=document.createElement("style");b.lang="text/css",M.lang="text/css",b.id="autofit-style",M.id="ignoreStyle",!w&&(b.innerHTML="body {overflow: hidden;}");const V=document.querySelector("body");V.appendChild(b),V.appendChild(M),u.style.height=`${l}px`,u.style.width=`${a}px`,u.style.transformOrigin="0 0",!w&&(u.style.overflow="hidden"),qe(a,l,u,h,g,v),Pe=()=>{clearTimeout(wt),_!=0?wt=setTimeout(()=>{qe(a,l,u,h,g,v),ee&&Oe(ne,He,ze)},_):(qe(a,l,u,h,g,v),ee&&Oe(ne,He,ze))},c&&window.addEventListener("resize",Pe),this.isAutofitRunning=!0,setTimeout(()=>{u.style.transition=`${p}s`})},off(e="body"){try{window.removeEventListener("resize",Pe);const o=document.querySelector("#autofit-style");o&&o.remove();const a=document.querySelector("#ignoreStyle");a&&a.remove();const l=document.querySelector(Ie||e);l&&(l.style.cssText=""),ee&&Tt()}catch(o){console.error("autofit: Failed to remove normally",o)}this.isAutofitRunning=!1,console.log("autofit.js is off")},elRectification:null,scale:$};function Oe(e,o=!0,a=1){if(!ke.isAutofitRunning){console.error("autofit.js:(elRectification): autofit has not been initialized yet");return}Tt(),!e&&console.error(`autofit.js:elRectification bad selector: ${e}`),ne=e,ze=a,He=o;const l=Array.from(document.querySelectorAll(e));if(l.length==0){console.error(`autofit.js:elRectification found no element by selector: "${e}"`);return}for(const s of l){const c=$==1?1:Number($)*Number(a);ee||(s.originalWidth=s.clientWidth,s.originalHeight=s.clientHeight),o?(s.style.width=`${s.originalWidth*c}px`,s.style.height=`${s.originalHeight*c}px`):(s.style.width=`${100*c}%`,s.style.height=`${100*c}%`),s.style.transform=`translateZ(0) scale(${1/Number($)})`,s.style.transformOrigin="0 0"}ee=!0}function Tt(){if(ne){ee=!1;for(const e of Array.from(document.querySelectorAll(ne)))e.style.width="",e.style.height="",e.style.transform=""}}function qe(e,o,a,l,s,c="scale"){const h=document.documentElement.clientHeight,p=document.documentElement.clientWidth;$=p/hs?$:1,ke.scale=+$;const _=Math.round(h/Number($)),g=Math.round(p/Number($));a.style.height=`${_}px`,a.style.width=`${g}px`,c==="zoom"?a.style.zoom=`${$}`:a.style.transform=`translateZ(0) scale(${$})`;const v=document.querySelector("#ignoreStyle");v.innerHTML="";for(const w of l){const u=w;let b=u.el||u.dom;if(typeof u=="string"&&(b=u),!b||typeof b=="object"&&!Object.keys(b).length){console.error(`autofit: found invalid or empty selector/object: ${b}`);continue}const M=u.scale?u.scale:1/Number($),V=M!=$&&u.fontSize,I=M!=$&&u.width,U=M!=$&&u.height;v.innerHTML+=` -${b} { - transform: scale(${M})!important; - transform-origin: 0 0; - ${I?`width: ${I}!important;`:""} - ${U?`height: ${U}!important;`:""} - }`,V&&(v.innerHTML+=` -${b} div ,${b} span,${b} a,${b} * { - font-size: ${V}px; - }`)}}ke.elRectification=Oe;const ia={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},la={class:"svg-line-animation"},sa=["viewBox"],ra=["id"],ua=["stop-opacity"],ca=["stop-opacity"],da=["id"],ma=["r","fill"],fa=["begin","dur","path","keyPoints"],ha=["d","stroke","stroke-width","mask"];function ya(e,o,a,l,s,c){return m(),f("div",la,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${a.width} ${a.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("defs",null,[r("radialGradient",{id:s.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[r("stop",{offset:"0%","stop-color":"#fff","stop-opacity":a.dir[1]},null,8,ua),r("stop",{offset:"100%","stop-color":"#fff","stop-opacity":a.dir[0]},null,8,ca)],8,ra),r("mask",{id:s.maskId},[r("circle",{r:a.length,cx:"0",cy:"0",fill:`url(#${s.radialGradientId})`},[r("animateMotion",{begin:`${a.begin}s`,dur:`${a.duration}s`,path:a.path,rotate:"auto",keyPoints:`${a.dir[0]};${a.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,fa)],8,ma)],8,da)]),r("path",{class:"path-line",d:a.path,stroke:a.color,"stroke-width":a.strokeWidth,mask:`url(#${s.maskId})`},null,8,ha)],8,sa))])}const _e=bt(ia,[["render",ya]]);const va={class:"m-header"},ga={class:"m-header-wrap"},pa={class:"m-header-title"},wa={class:"m-header-subtext"},_a={class:"m-header-left",style:{color:"#fff"}},ka={class:"m-header-right"},ba={class:"m-header-line"},Sa={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(o,a)=>(m(),f("div",va,[r("div",ga,[r("div",pa,E(e.title),1),r("div",wa,E(e.subText),1)]),r("div",_a,[pe(o.$slots,"left")]),r("div",ka,[pe(o.$slots,"right")]),r("div",ba,[x(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),x(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Ta={class:"m-menu"},$a={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:o}){const a=o,l=e,s=k(l.defaultActive);return ft("updateActive",h=>{h!==s.value&&(s.value=h,a("select",h))}),ft("activeIndex",s),We(()=>l.defaultActive,h=>{h!==s.value&&(s.value=h)}),(h,p)=>(m(),f("div",Ta,[pe(h.$slots,"default")]))}},xa=["aria-current","onKeydown"],Ea={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const o=e,a=ht("updateActive"),l=ht("activeIndex"),s=()=>{a(o.index)};return(c,h)=>(m(),f("div",{class:B(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:s,onKeydown:[we(yt(s,["prevent"]),["enter"]),we(yt(s,["prevent"]),["space"])]},[pe(c.$slots,"default")],42,xa))}};let _t=0;const kt="webkit moz ms o".split(" ");let D,F;const Ma=typeof window=="undefined";if(Ma)D=function(){},F=function(){};else{D=window.requestAnimationFrame,F=window.cancelAnimationFrame;let e;for(let o=0;o{o(a+l)},l);return _t=a+l,s},F=function(o){window.clearTimeout(o)})}const Va={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,o,a,l){return a*(-Math.pow(2,-10*e/l)+1)*1024/1023+o}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=D(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){F(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,D(this.count)},reset(){this.startTime=null,F(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const o=e-this.startTime;this.remaining=this.localDuration-o,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(o,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(o,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(o/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(o/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),o1?this.decimal+o[1]:"",s=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;s.test(a);)a=a.replace(s,"$1"+this.separator+"$2");return this.prefix+a+l+this.suffix}},destroyed(){F(this.rAF)}};function Aa(e,o,a,l,s,c){return m(),f("span",null,E(s.displayValue),1)}const $t=bt(Va,[["render",Aa]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",$t);const Ra={class:"count-card-left"},Ca={class:"count-card-title"},La={class:"title-zh"},Da={key:0,class:"title-en"},Fa={class:"count-card-right"},Ia={class:"unit"},Pa={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const o=e,a=k(!0),l=k(!1),s=k(0);let c=null;const h=A(()=>o.info.duration||1800);We(()=>[o.info.value,o.info.zh],()=>{c&&window.clearTimeout(c),a.value=!0,l.value=!1,s.value+=1},{immediate:!0});function p(v){return v.toUpperCase()}function _(){a.value=!0,l.value=!1}function g(){a.value=!1,l.value=!0,c&&window.clearTimeout(c),c=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{c&&window.clearTimeout(c)}),(v,w)=>(m(),f("div",{class:B(["count-card",{"is-counting":a.value,"is-settled":l.value}])},[r("div",Ra,[r("div",{class:B(["count-card-icon","icon-"+e.info.icon])},null,2),r("div",Ca,[r("div",La,E(e.info.zh),1),e.info.en?(m(),f("div",Da,E(p(e.info.en)),1)):S("",!0)])]),r("div",Fa,[(m(),f("div",{class:"value",key:s.value},[x(R($t),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:h.value,separator:"",autoplay:!0,onMountedCallback:_,onCallback:g},null,8,["endVal","decimals","duration"])])),r("div",Ia,E(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛产业全链",bottomLabel:"产业全链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function qa(e){return ae.find(o=>o.key===e)||ae[1]}const Ne=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Na=12e3;function za(e,o={}){const a=new URLSearchParams;Object.entries(o).forEach(([s,c])=>{c!=null&&c!==""&&a.append(s,c)});const l=a.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Ha(a){return X(this,arguments,function*(e,o={}){const g=o,{params:l,timeout:s=Na}=g,c=mt(g,["params","timeout"]),h=new AbortController;let p=!1;const _=window.setTimeout(()=>{p=!0,h.abort()},s);try{const v=yield fetch(za(e,l),ve(P({credentials:"include"},c),{signal:h.signal,headers:P({Accept:"application/json"},c.headers||{})}));if(!v.ok){const u=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw u.code=`HTTP_${v.status}`,u.status=v.status,v.status===401&&vt(),u}const w=yield v.json();if((w==null?void 0:w.code)===401||(w==null?void 0:w.code)==="401"){const u=new Error((w==null?void 0:w.msg)||"用户未登录或授权已过期。");throw u.code="HTTP_401",u.status=401,vt(),u}return w}catch(v){if(h.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const u=new Error(p?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw u.code=p?"REQUEST_TIMEOUT":"REQUEST_ABORTED",u}throw v}finally{window.clearTimeout(_)}})}function Oa(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const Wa="/jsyApi",ja={}.VITE_AMAP_WEATHER_KEY||"b72b3e3b2023760dae2cdf2e00561812",Ka="513233";function Ba(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Oa(e)}function xt(e){var h,p,_,g;const o=(p=(h=e==null?void 0:e.data)!=null?h:e==null?void 0:e.result)!=null?p:e,a=Array.isArray(o)?o[0]:Array.isArray(o==null?void 0:o.rows)?o.rows[0]:Array.isArray(o==null?void 0:o.list)?o.list[0]:o;if(!a||typeof a!="object")return null;const l=(...v)=>v.find(w=>w!=null&&w!==""),s=l(a.temp,a.temperature,a.temperature_float,a.tempDay,a.temperatureDay),c=l(a.humidity,a.humidity_float,a.pop,a.relativeHumidity);return{condition:a.conditionDay||a.condition||a.weather||a.weatherText||"",temperature:s==null||s===""?"--":s,humidity:c==null||c===""?"--":c,windDirection:a.windDir||a.windDirection||"",windLevel:a.windLevel||a.windScale||a.windPower||"",icon:(g=(_=a.icon)!=null?_:a.weatherIcon)!=null?g:null}}function Ua(e){return X(this,null,function*(){const o=yield Ha(`${Wa}${e}`,{timeout:8e3});return xt(Ba(o))})}function Ga(){return new Promise((e,o)=>{const a=`__hongyuanWeather${Date.now()}${Math.random().toString(16).slice(2)}`,l=document.createElement("script"),s=()=>{window.clearTimeout(c),l.remove(),delete window[a]},c=window.setTimeout(()=>{s(),o(new Error("高德天气接口响应超时"))},8e3);window[a]=p=>{var g;const _=(g=p==null?void 0:p.lives)==null?void 0:g[0];if(s(),!_){o(new Error((p==null?void 0:p.info)||"高德天气暂无数据"));return}e(xt(_))},l.onerror=()=>{s(),o(new Error("高德天气接口加载失败"))};const h=new URLSearchParams({city:Ka,key:ja,extensions:"base",output:"JSON",callback:a});l.src=`https://restapi.amap.com/v3/weather/weatherInfo?${h}`,document.head.appendChild(l)})}function Ya(){return X(this,null,function*(){const e=["/api/home/realTimeWeather","/api/home/weatherForecast"];let o=null;for(const a of e)try{const l=yield Ua(a);if(l)return l}catch(l){o=l}try{const a=yield Ga();if(a)return a}catch(a){o=a}throw o||new Error("天气数据暂不可用")})}const Qa={key:0,class:"platform-module-pane"},Ja={key:1,class:"platform-module-pane"},Za={key:2,class:"platform-module-pane"},Xa={key:3,class:"platform-module-pane"},en={key:4,class:"platform-module-pane"},tn={key:5,class:"platform-module-pane"},an={key:6,class:"platform-module-pane"},nn={key:7,class:"platform-module-pane"},on={class:"large-screen-wrap"},ln={class:"m-header-tools"},sn=["src","alt"],rn={key:1,class:"platform-weather__fallback-icon","aria-hidden":"true"},un={class:"platform-weather__copy"},cn={class:"platform-weather__primary"},dn={key:0},mn={key:0},fn={key:0},hn={key:1,"aria-hidden":"true"},yn={key:2},vn={class:"platform-datetime","aria-label":"当前日期和时间"},gn={class:"top-menu"},pn={key:0,class:"top-menu-mid-space"},wn={key:1,class:"platform-map-tools","aria-label":"地图工具"},_n=["title","aria-label"],kn={key:2,class:"module-coming"},bn={class:"module-coming-title"},Sn={key:3,class:"bottom-tray"},Tn={class:"bottom-menu"},$n=["onClick"],xn={key:8,class:"loading platform-loading"},En={class:"loading-progress"},Mn={class:"value"},Vn=2,An=650,Rn={__name:"index",setup(e){const o=z(()=>H(()=>import("./index-fe56ccaa-1784045078568.js"),["./index-fe56ccaa-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./live-scene-1-7846500b-1784045078568.js","./index.esm.min-43166a2f-1784045078568.js","./index-27149dbd-1784045078568.js","./index-148a2898-balabala-1784045078568.css","./index-c252ce06-1784045078568.js","./townshipBoundaries-1b068bef-1784045078568.js","./index-e174cf85-balabala-1784045078568.css","./screen2Standard-98cd5b6c-1784045078568.js","./index-e9f36657-1784045078568.js","./screen2Standard-cdb21878-balabala-1784045078568.css","./data-bfed1662-1784045078568.js","./TopicSwitcher-2ffd167b-1784045078568.js","./TopicSwitcher-27546cd1-balabala-1784045078568.css","./livestockData-36ec0ae2-1784045078568.js","./FeatureInfoPanel-b2a9b292-1784045078568.js","./FeatureInfoPanel-84703f43-balabala-1784045078568.css","./openApi-528034ce-1784045078568.js","./geoserver-6ded2e06-1784045078568.js","./featurePanelLayout-5da16b00-1784045078568.js","./yakApi-9c3a9777-1784045078568.js","./chartTheme-8c348a2d-1784045078568.js","./data-5c83c66b-1784045078568.js","./data-881b212b-1784045078568.js","./index-86616eb2-balabala-1784045078568.css"],import.meta.url)),a=z(()=>H(()=>import("./index-e02d03a3-1784045078568.js"),["./index-e02d03a3-1784045078568.js","./index-e9f36657-1784045078568.js","./assets-4a378a39-1784045078568.js","./screen2Standard-98cd5b6c-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./screen2Standard-cdb21878-balabala-1784045078568.css","./TopicSwitcher-2ffd167b-1784045078568.js","./townshipBoundaries-1b068bef-1784045078568.js","./TopicSwitcher-27546cd1-balabala-1784045078568.css","./index-c252ce06-1784045078568.js","./index-e174cf85-balabala-1784045078568.css","./openApi-528034ce-1784045078568.js","./geoserver-6ded2e06-1784045078568.js","./featurePanelLayout-5da16b00-1784045078568.js","./LayerPanel-67768a91-1784045078568.js","./index-27149dbd-1784045078568.js","./index-148a2898-balabala-1784045078568.css","./LayerPanel-7a55b2bc-balabala-1784045078568.css","./FeatureInfoPanel-b2a9b292-1784045078568.js","./FeatureInfoPanel-84703f43-balabala-1784045078568.css","./index-6e1f3341-balabala-1784045078568.css","./layout-b708cd9c-balabala-1784045078568.css"],import.meta.url)),l=z(()=>H(()=>import("./index-41e40dbf-1784045078568.js"),["./index-41e40dbf-1784045078568.js","./index-e9f36657-1784045078568.js","./index-27149dbd-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./index-148a2898-balabala-1784045078568.css","./townshipBoundaries-1b068bef-1784045078568.js","./featurePanelLayout-5da16b00-1784045078568.js","./assets-4a378a39-1784045078568.js","./screen2Standard-98cd5b6c-1784045078568.js","./screen2Standard-cdb21878-balabala-1784045078568.css","./TopicSwitcher-2ffd167b-1784045078568.js","./TopicSwitcher-27546cd1-balabala-1784045078568.css","./index-c252ce06-1784045078568.js","./index-e174cf85-balabala-1784045078568.css","./LayerPanel-67768a91-1784045078568.js","./LayerPanel-7a55b2bc-balabala-1784045078568.css","./FeatureInfoPanel-b2a9b292-1784045078568.js","./FeatureInfoPanel-84703f43-balabala-1784045078568.css","./data-efed6b46-1784045078568.js","./data-5c83c66b-1784045078568.js","./index-7c335907-balabala-1784045078568.css","./layout-b708cd9c-balabala-1784045078568.css"],import.meta.url)),s=z(()=>H(()=>import("./index-c45f03eb-1784045078568.js"),["./index-c45f03eb-1784045078568.js","./index-27149dbd-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./index-148a2898-balabala-1784045078568.css","./data-5c83c66b-1784045078568.js","./index-e9f36657-1784045078568.js","./index-c36df85d-balabala-1784045078568.css"],import.meta.url)),c=z(()=>H(()=>import("./index-e4881302-1784045078568.js"),["./index-e4881302-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./index.esm.min-43166a2f-1784045078568.js","./index-27149dbd-1784045078568.js","./index-148a2898-balabala-1784045078568.css","./screen2Standard-98cd5b6c-1784045078568.js","./index-e9f36657-1784045078568.js","./screen2Standard-cdb21878-balabala-1784045078568.css","./data-bfed1662-1784045078568.js","./TopicSwitcher-2ffd167b-1784045078568.js","./townshipBoundaries-1b068bef-1784045078568.js","./TopicSwitcher-27546cd1-balabala-1784045078568.css","./livestockData-36ec0ae2-1784045078568.js","./geoserver-6ded2e06-1784045078568.js","./assets-4a378a39-1784045078568.js","./index-c252ce06-1784045078568.js","./index-e174cf85-balabala-1784045078568.css","./yakApi-9c3a9777-1784045078568.js","./index-11333eca-balabala-1784045078568.css"],import.meta.url)),h=z(()=>H(()=>import("./index-24c07d59-1784045078568.js"),["./index-24c07d59-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./live-scene-1-7846500b-1784045078568.js","./index-27149dbd-1784045078568.js","./index-148a2898-balabala-1784045078568.css","./index-c252ce06-1784045078568.js","./townshipBoundaries-1b068bef-1784045078568.js","./index-e174cf85-balabala-1784045078568.css","./LayerPanel-67768a91-1784045078568.js","./LayerPanel-7a55b2bc-balabala-1784045078568.css","./FeatureInfoPanel-b2a9b292-1784045078568.js","./screen2Standard-98cd5b6c-1784045078568.js","./index-e9f36657-1784045078568.js","./screen2Standard-cdb21878-balabala-1784045078568.css","./FeatureInfoPanel-84703f43-balabala-1784045078568.css","./featurePanelLayout-5da16b00-1784045078568.js","./data-156ef419-1784045078568.js","./livestockData-36ec0ae2-1784045078568.js","./index-41d168c2-balabala-1784045078568.css"],import.meta.url)),p=z(()=>H(()=>import("./index-ad1f9dba-1784045078568.js"),["./index-ad1f9dba-1784045078568.js","./index.esm.min-43166a2f-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./index-27149dbd-1784045078568.js","./index-148a2898-balabala-1784045078568.css","./index-c252ce06-1784045078568.js","./townshipBoundaries-1b068bef-1784045078568.js","./index-e174cf85-balabala-1784045078568.css","./FeatureInfoPanel-b2a9b292-1784045078568.js","./screen2Standard-98cd5b6c-1784045078568.js","./index-e9f36657-1784045078568.js","./screen2Standard-cdb21878-balabala-1784045078568.css","./FeatureInfoPanel-84703f43-balabala-1784045078568.css","./LayerPanel-67768a91-1784045078568.js","./LayerPanel-7a55b2bc-balabala-1784045078568.css","./TopicSwitcher-2ffd167b-1784045078568.js","./TopicSwitcher-27546cd1-balabala-1784045078568.css","./assets-4a378a39-1784045078568.js","./chartTheme-8c348a2d-1784045078568.js","./data-12043e21-1784045078568.js","./livestockData-36ec0ae2-1784045078568.js","./index-5afedc21-balabala-1784045078568.css"],import.meta.url)),_=z(()=>H(()=>import("./index-f6dff886-1784045078568.js"),["./index-f6dff886-1784045078568.js","./index-1784045078568.js","./index-9b7a4b9d-balabala-1784045078568.css","./yakApi-9c3a9777-1784045078568.js","./data-881b212b-1784045078568.js","./livestockData-36ec0ae2-1784045078568.js","./data-5c83c66b-1784045078568.js","./data-156ef419-1784045078568.js","./data-efed6b46-1784045078568.js","./townshipBoundaries-1b068bef-1784045078568.js","./data-12043e21-1784045078568.js","./index-e9f36657-1784045078568.js","./index-089a3dd0-balabala-1784045078568.css"],import.meta.url)),g=Zt(),v=Xt(),w=re(g.query.module),u=k(w),b=k(w==="ecological-protection"?at(g.query.view):"ecological-redline"),M=k(w==="yak-management"?Re(g.query.view):"structure"),V=k({[w]:!0});let I=[w];const U=k({}),G=k(!0),Y=k(0),be=k(null),Se=k(null),je=k(null),Ke=k(null),Be=k(null),Ue=k(null),Ge=k(null),Ye=k(!1),Qe=k(""),Je=k(""),C=k({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),Q=k(!1),Te=k(!1);let J=null,$e=null,xe=null,oe=!1,ie=null;const Et=Date.now(),O={progress:0},Mt=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],Vt=new Set(W),d=A(()=>qa(u.value)),At=A(()=>`/images/weather/W${C.value.icon}.png`),Rt=A(()=>Q.value&&C.value.icon!==null&&!Te.value),Ee=A(()=>!["","--",null,void 0].includes(C.value.humidity)),le=A(()=>{const t=String(C.value.windDirection||"").trim(),n=String(C.value.windLevel||"").trim();return!t&&!n?"":`${t}${t&&n?" ":""}${n?`${n}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Ct=A(()=>!["smart-management","grass-livestock-balance"].includes(d.value.key)),Lt=A(()=>j.value.length===5&&(d.value.key==="home"||d.value.key==="ecological-protection"&&Me.value==="national-park")),Dt=A(()=>u.value==="ecological-protection"?Ne:ae),Me=A(()=>u.value==="ecological-protection"?b.value:u.value),j=A(()=>{const t=U.value[u.value];return Array.isArray(t)||t!=null&&t.length?t:ot([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});ea(()=>{Xe(),et(),$e=window.setInterval(Xe,1e3),xe=window.setInterval(et,30*60*1e3),J=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),jt(),fe(),Ce(),Nt(u.value)?zt(u.value):(oe=!0,Y.value=100,G.value=!1)}),St(()=>{var t;$e&&window.clearInterval($e),xe&&window.clearInterval(xe),de(),(t=J==null?void 0:J.off)==null||t.call(J,"#large-screen"),Kt(),te.killTweensOf(O)});function Xe(){const t=new Date,n=T=>String(T).padStart(2,"0"),i=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${n(t.getMonth()+1)}.${n(t.getDate())} ${i[t.getDay()]}`,Je.value=`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function et(){return X(this,null,function*(){try{C.value=yield Ya(),Q.value=!0,Te.value=!1}catch(t){Q.value=!1,console.warn("[platform] weather unavailable",t)}})}function Ft(){Te.value=!0}function Ve(t,n={}){const i=re(t),T=i==="home"&&!n.fromRoute;if(i==="yak-management"&&!n.fromRoute&&(M.value="structure"),i===u.value){T&&me(),se(i);return}u.value=i,Wt(i),se(i),T&&me(),Fe(Ce)}function Ae(t){re(t)==="home"&&u.value==="home"&&me()}function It(t){if(t!=null&&t.key){if(u.value==="ecological-protection"){tt(t.key);return}Ve(t.key)}}function tt(t){const n=Ne.some(i=>i.key===t)?t:"ecological-redline";n===b.value&&u.value==="ecological-protection"||(b.value=n,u.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Pt(t){const n=Re(t);n!==M.value&&(M.value=n,u.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,n])=>{const i=re(t);i==="ecological-protection"&&(b.value=at(n)),i==="yak-management"&&(M.value=Re(n)),i!==u.value&&Ve(i,{fromRoute:!0})});function se(t=u.value){const n=ve(P({},g.query),{module:t});t==="yak-management"?n.view=M.value:t==="ecological-protection"?n.view=b.value:delete n.view;const i=g.query||{},T=String(i.module||"")===String(n.module||"")&&String(i.view||"")===String(n.view||"");g.path==="/platform"&&T||v.replace({path:"/platform",query:n}).catch(()=>{})}function re(t){const n=Array.isArray(t)?t[0]:t;return ae.some(i=>i.key===n)?n:"home"}function Re(t){const n=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(n)?n:"structure"}function at(t){const n=Array.isArray(t)?t[0]:t;return Ne.some(i=>i.key===n)?n:"ecological-redline"}function K(t){const n=t.moduleKey||(t.topicKey?"forest-grass-wet":u.value);U.value=ve(P({},U.value),{[n]:ot(t.items||[])})}function ue(t={}){const n=typeof t=="number"?t:t.progress;qt(n)}function ce(){de(),te.killTweensOf(O),O.progress=100,Y.value=100;const t=Date.now()-Et,n=Math.max(80,An-t);window.setTimeout(nt,n)}function qt(t){if(!G.value)return;const n=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));n{Y.value=Math.floor(O.progress)}})}function nt(){if(!G.value||oe)return;de(),oe=!0;const t=te.timeline({onComplete:()=>{G.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function Nt(t){return Mt.has(t)}function zt(t){de();const n=t==="home"?12e3:8e3;ie=window.setTimeout(()=>{!G.value||oe||(te.killTweensOf(O),O.progress=100,Y.value=100,window.setTimeout(nt,120))},n)}function de(){ie&&(window.clearTimeout(ie),ie=null)}function ot(t=[]){const n=new Set;return t.slice(0,10).map((i,T)=>{var Z;const y=Number(i.value)||0,L={zh:i.zh||i.name||`指标${T+1}`,en:i.en||"",value:y,unit:i.unit||"",decimals:(Z=i.decimals)!=null?Z:Number.isInteger(y)?0:2},he=Ht(P(P({},i),L),T,n);return n.add(he),P({icon:he},L)})}function Ht(t={},n=0,i=new Set){const y=Ot(t,n).find(L=>Vt.has(L)&&!i.has(L));return y||W.find(L=>!i.has(L))||W[n%W.length]}function Ot(t={},n=0){const i=`${t.zh||t.name||""}${t.unit||""}`,T=[],y=(...he)=>{he.forEach(Z=>{Z&&!T.includes(Z)&&T.push(Z)})};y(t.icon),/风险|预警|告警/.test(i)&&y("risk","rate"),/模型|修正|共识|预测|变化|净/.test(i)&&y("rate","stack"),/率|占比|比例|超载/.test(i)&&y("rate","project"),/生态牧场|家庭生态/.test(i)&&y("leaf","town"),/出证|证书|证/.test(i)&&y("certificate","project"),/交易|销售/.test(i)&&y("yield","certificate"),/流通|出栏|流出/.test(i)&&y("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(i)&&y("device","length"),/工程长度|长度|公里/.test(i)&&y("length","project"),/修复项目|项目|工程|治理/.test(i)&&y("project","length"),/国家公园|保护范围|保护区|划定/.test(i)&&y("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(i)&&y("yield","leaf"),/湿地/.test(i)&&y("wetland","leaf"),/基本草原/.test(i)&&y("grass-basic","area"),/一般草原/.test(i)&&y("grass-general","area"),/林地|森林|公益林/.test(i)&&y("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(i)&&y("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(i)&&y("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(i)&&y("town","project"),/生态|林草/.test(i)&&y("leaf","wetland");const L=n%W.length;return y(...W.slice(L),...W.slice(0,L)),T}function Wt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(I=I.filter(n=>n!==t),I.push(t),I=I.slice(-Vn),V.value=Object.fromEntries(I.map(n=>[n,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function me(t=4){Fe(()=>{const n=Se.value;if(n!=null&&n.showDefaultThreeMap){n.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>me(t-1),80)})}const it=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function fe(){var i;const t=lt(),n=be.value;Ye.value=!!(n&&t&&(t===n||n.contains(t)||(i=t.contains)!=null&&i.call(t,n)))}function jt(){typeof document!="undefined"&&it.forEach(t=>document.addEventListener(t,fe))}function Kt(){typeof document!="undefined"&&it.forEach(t=>document.removeEventListener(t,fe))}function st(){var t,n;(n=(t=rt())==null?void 0:t.refreshMapView)==null||n.call(t)}function Bt(){return X(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const n=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield n==null?void 0:n.call(document)}else{const n=be.value||document.documentElement,i=n.requestFullscreen||n.webkitRequestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen;yield i==null?void 0:i.call(n)}}catch(n){console.warn("[platform] fullscreen toggle failed",n)}finally{fe(),window.setTimeout(st,80),window.setTimeout(st,280)}})}function Ut(){var t,n;(n=(t=rt())==null?void 0:t.resetMap)==null||n.call(t)}function rt(){return d.value.key==="home"?Se.value:d.value.key==="forest-grass-wet"?je.value:d.value.key==="ecological-protection"?Ke.value:d.value.key==="yak-management"?Be.value:d.value.key==="pasture-management"?Ue.value:d.value.key==="yak-industry-chain"?Ge.value:null}function Gt(){oa()}return(t,n)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:B(["large-screen platform-screen",{"is-home":d.value.key==="home","is-forest-grass-wet":d.value.key==="forest-grass-wet","is-ecological-protection":d.value.key==="ecological-protection","is-grass-livestock-balance":d.value.key==="grass-livestock-balance","is-yak-management":d.value.key==="yak-management","is-pasture-management":d.value.key==="pasture-management","is-yak-industry-chain":d.value.key==="yak-industry-chain","is-smart-management":d.value.key==="smart-management","is-ecology-national-park":d.value.key==="ecological-protection"&&Me.value==="national-park"}]),id:"large-screen"},[V.value.home?q((m(),f("div",Qa,[x(R(o),{ref_key:"homeDashboardRef",ref:Se,active:d.value.key==="home",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="home"]]):S("",!0),V.value["forest-grass-wet"]?q((m(),f("div",Ja,[x(R(a),{ref_key:"forestGrassWetRef",ref:je,active:d.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:K},null,8,["active"])],512)),[[N,d.value.key==="forest-grass-wet"]]):S("",!0),V.value["ecological-protection"]?q((m(),f("div",Za,[x(R(l),{ref_key:"ecologicalProtectionRef",ref:Ke,active:d.value.key==="ecological-protection","active-view":b.value,"show-loading":!1,onModuleStats:K,onViewChange:tt},null,8,["active","active-view"])],512)),[[N,d.value.key==="ecological-protection"]]):S("",!0),V.value["grass-livestock-balance"]?q((m(),f("div",Xa,[x(R(s),{active:d.value.key==="grass-livestock-balance",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="grass-livestock-balance"]]):S("",!0),V.value["yak-management"]?q((m(),f("div",en,[x(R(c),{ref_key:"yakManagementRef",ref:Be,active:d.value.key==="yak-management","view-key":M.value,onModuleStats:K,onViewChange:Pt},null,8,["active","view-key"])],512)),[[N,d.value.key==="yak-management"]]):S("",!0),V.value["pasture-management"]?q((m(),f("div",tn,[x(R(h),{ref_key:"pastureManagementRef",ref:Ue,active:d.value.key==="pasture-management",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="pasture-management"]]):S("",!0),V.value["yak-industry-chain"]?q((m(),f("div",an,[x(R(p),{ref_key:"yakIndustryChainRef",ref:Ge,active:d.value.key==="yak-industry-chain",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="yak-industry-chain"]]):S("",!0),V.value["smart-management"]?q((m(),f("div",nn,[x(R(_),{active:d.value.key==="smart-management"},null,8,["active"])],512)),[[N,d.value.key==="smart-management"]]):S("",!0),r("div",on,[x(Sa,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[r("div",ln,[r("div",{class:B(["platform-weather",{"is-unavailable":!Q.value}])},[Rt.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:At.value,alt:C.value.condition||"天气",onError:Ft},null,40,sn)):(m(),f("span",rn)),r("div",un,[r("div",cn,[r("strong",null,E(Q.value?C.value.condition||"实时天气":"天气暂无数据"),1),Q.value?(m(),f("em",dn,E(C.value.temperature)+"℃",1)):S("",!0)]),Ee.value||le.value?(m(),f("small",mn,[Ee.value?(m(),f("span",fn,"湿度 "+E(C.value.humidity)+"%",1)):S("",!0),Ee.value&&le.value?(m(),f("i",hn)):S("",!0),le.value?(m(),f("span",yn,E(le.value),1)):S("",!0)])):S("",!0)])],2),r("div",vn,[r("strong",null,E(Je.value),1),r("span",null,E(Qe.value),1)]),r("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Gt},[...n[0]||(n[0]=[r("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[r("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),r("path",{d:"M16 17l5-5-5-5"}),r("path",{d:"M21 12H9"})],-1)])])])]),_:1}),r("div",gn,[x($a,{"default-active":u.value,onSelect:Ve},{default:Le(()=>[(m(!0),f(ge,null,De(R(ae),(i,T)=>(m(),f(ge,{key:i.key},[x(Ea,{index:i.key,onClick:y=>Ae(i.key),onKeydown:[we(y=>Ae(i.key),["enter"]),we(y=>Ae(i.key),["space"])]},{default:Le(()=>[aa(E(i.label),1)]),_:2},1032,["index","onClick","onKeydown"]),T===3?(m(),f("div",pn)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(d.value.key)?(m(),f("div",{key:0,class:B(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Lt.value}])},[(m(!0),f(ge,null,De(j.value,i=>(m(),na(Pa,{key:i.zh,info:i},null,8,["info"]))),128))],2)):S("",!0),Ct.value?(m(),f("div",wn,[r("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Bt},[...n[1]||(n[1]=[r("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,_n),r("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Ut},[...n[2]||(n[2]=[r("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),d.value.status!=="ready"?(m(),f("div",kn,[r("div",bn,E(d.value.label),1),n[3]||(n[3]=r("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(d.value.key)?S("",!0):(m(),f("div",Sn,[x(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),x(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),n[4]||(n[4]=r("div",{class:"bottom-tray-arrow"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1)),r("div",Tn,[(m(!0),f(ge,null,De(Dt.value,i=>(m(),f("div",{key:i.key,class:B(["bottom-menu-item",{"is-active":i.key===Me.value}]),onClick:T=>It(i)},[r("span",null,E(i.bottomLabel),1)],10,$n))),128))]),n[5]||(n[5]=r("div",{class:"bottom-tray-arrow is-reverse"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1))])),n[6]||(n[6]=r("div",{class:"large-screen-left-zsline"},null,-1)),n[7]||(n[7]=r("div",{class:"large-screen-right-zsline"},null,-1))]),G.value?(m(),f("div",xn,[n[9]||(n[9]=ta('
    LOADING
    ',1)),r("div",En,[r("span",Mn,E(Y.value),1),n[8]||(n[8]=r("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Fn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));export{gt as _,pt as a,Fn as i,Oa as n,Ha as r}; diff --git a/docs/assets/index-6bbec7d3-1784074877048.js b/docs/assets/index-6bbec7d3-1784074877048.js new file mode 100644 index 0000000..b288ef3 --- /dev/null +++ b/docs/assets/index-6bbec7d3-1784074877048.js @@ -0,0 +1 @@ +var Ut=Object.defineProperty,Yt=Object.defineProperties;var Qt=Object.getOwnPropertyDescriptors;var Ue=Object.getOwnPropertySymbols;var Jt=Object.prototype.hasOwnProperty,Xt=Object.prototype.propertyIsEnumerable;var Ye=(l,a,r)=>a in l?Ut(l,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[a]=r,I=(l,a)=>{for(var r in a||(a={}))Jt.call(a,r)&&Ye(l,r,a[r]);if(Ue)for(var r of Ue(a))Xt.call(a,r)&&Ye(l,r,a[r]);return l},B=(l,a)=>Yt(l,Qt(a));var V=(l,a,r)=>new Promise((k,T)=>{var f=y=>{try{w(r.next(y))}catch($){T($)}},u=y=>{try{w(r.throw(y))}catch($){T($)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,a)).next())});import{g as Qe}from"./index-e9f36657-1784074877048.js";import{A as Zt}from"./assets-34f9bc99-1784074877048.js";/* empty css */import{f as en,c as Je,b as tn,g as Xe}from"./townshipBoundaries-1b068bef-1784074877048.js";import{g as nn,b as sn,a as an,c as rn}from"./openApi-7e2310e1-1784074877048.js";import{c as ln,F as un,g as on,a as cn}from"./featurePanelLayout-dc118942-1784074877048.js";import{q as Ze,r as dn,s as vn}from"./screen2Standard-9c6af3a2-1784074877048.js";import{M as fn}from"./index-b4ec1ae2-1784074877048.js";import{_ as gn}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{_ as mn}from"./LayerPanel-9c0c5952-1784074877048.js";import{a as et,_ as hn}from"./FeatureInfoPanel-8e9f606e-1784074877048.js";import{_ as wn,g as c,o as _,c as S,a as b,t as Te,F as Ne,y as xe,n as de,J as ve,d as m,q as yn,h as bn,w as q,A as ee,b as G,C as tt,x as nt,u as Se,j as ce,z as kn}from"./index-1784074877048.js";import{_ as st}from"./index-1f5d6021-1784074877048.js";import"./index-bc047bb3-1784074877048.js";import"./geoserver-a50e4f20-1784074877048.js";const _n="/jsyApi/api/map/ndvi_timeline";function pn(){return V(this,null,function*(){const l=yield fetch(_n,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const a=yield l.json().catch(()=>({}));if((a==null?void 0:a.code)===401||(a==null?void 0:a.code)==="401"){const k=new Error((a==null?void 0:a.msg)||(a==null?void 0:a.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(a==null?void 0:a.data)?a.data:Array.isArray(a)?a:[];return Ln(r)})}function Ln(l=[]){const a=new Set;return l.map((r,k)=>{const T=Sn(at(r,["url","layerName","layer_name","layer","name"]));if(!T)return null;const f=at(r,["date","month","time","label"])||T,u=Tn(f);return{key:`${T}-${f||k}`,label:u,date:String(f),layerName:T,source:r}}).filter(Boolean).filter(r=>a.has(r.key)?!1:(a.add(r.key),!0))}function at(l,a){for(const r of a)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function Sn(l){const a=String(l||"").trim();return a?a.includes(":")||/^https?:\/\//i.test(a)?a:`ne:${a}`:""}function Tn(l){const a=String(l||"").trim();if(!a)return"";const r=a.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:a}const Nn={class:"grassland-ndvi-timeline-head"},xn={key:0,class:"grassland-ndvi-timeline-state"},Pn={key:1,class:"grassland-ndvi-timeline-state"},Cn={key:2,class:"grassland-ndvi-timeline-body"},$n=["aria-checked","title","onClick"],Mn={class:"grassland-ndvi-timeline-label"},Fn=42,An=28,In={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:a}){const r=l,k=a,T=c(()=>r.items.findIndex(d=>d.key===r.modelValue)),f=c(()=>T.value===-1?Math.max(0,r.items.length-1):T.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),$=c(()=>y.value?An:Fn),te=c(()=>U(f.value)),ne=c(()=>R(f.value));function H(d){if(!r.items.length)return;const v=Math.min(r.items.length-1,Math.max(0,f.value+d));k("update:modelValue",r.items[v].key)}function se(d){!d||d.key===r.modelValue||k("update:modelValue",d.key)}function K(d){return!r.items.length||d<0?0:r.items.length===1?.5:d/(r.items.length-1)}function U(d){const v=K(d),P=L(v*100),h=$.value*(1-v*2);return`calc(${P}% ${h<0?"-":"+"} ${L(Math.abs(h))}px)`}function R(d){const v=K(d);return v<=0?"0px":`calc(${L(v*100)}% - ${L($.value*2*v)}px)`}function L(d){return Number(d.toFixed(4)).toString()}return(d,v)=>{var P;return _(),S("div",{class:de(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Nn,[v[2]||(v[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,Te(((P=u.value)==null?void 0:P.label)||w.value),1)]),l.loading?(_(),S("div",xn,"加载月份数据")):l.items.length?(_(),S("div",Cn,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:v[0]||(v[0]=h=>H(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:ve({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${$.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[v[4]||(v[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),v[5]||(v[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),v[6]||(v[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(_(!0),S(Ne,null,xe(l.items,(h,j)=>{var D,N;return _(),S("button",{key:h.key,class:de(["grassland-ndvi-timeline-mark",{"is-active":h.key===((D=u.value)==null?void 0:D.key),"is-past":j<=f.value,"is-staggered":y.value&&j%2===1}]),type:"button",role:"radio","aria-checked":h.key===((N=u.value)==null?void 0:N.key),style:ve({left:U(j)}),title:h.date,onClick:Y=>se(h)},[v[3]||(v[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",Mn,Te(h.label),1)],14,$n)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:v[1]||(v[1]=h=>H(1))},"›")])):(_(),S("div",Pn,"暂无月份数据"))],2)}}},Vn=wn(In,[["__scopeId","data-v-86212a95"]]),En={class:"forest-grass-wet"},Bn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},qn={class:"fgw-left"},Gn={class:"fgw-side-stack is-left"},Rn={class:"fgw-right"},jn={class:"fgw-side-stack is-right"},Dn={key:1,class:"fgw-ndvi-timeline"},zn={class:"fgw-bottom-topic"},Wn={key:0,class:"loading"},On={class:"loading-progress"},Hn={class:"value"},os={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:a,emit:r}){const k=l,T=r,f=m(null),u=m(en[0].key),w=m(""),y=m([]),$=m([]),te=m("idle"),ne=m(!1),H=m({title:"业务统计",rows:[]}),se=m({title:"业务统计",rows:[]}),K=m([]),U=m([]),R=m(null),L=m(""),d=m(null),v=m(!1),P=m(!1),h=m(null),j=m(0),D=m(k.showLoading),N=m([]),Y=m("idle"),M=m(""),E=m({type:"idle",text:"等待 GeoServer 图层加载"});let Q=null,C=!1,fe=!1,z=!1,F=null,Pe=0,Ce=0,ge=0,W=0,ae=!1,me=!1;const it={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},rt=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),lt=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ut=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),ot=c(()=>Je(u.value)),ct=c(()=>tn(u.value)),ie=c(()=>lt.map(e=>pt(e)).filter(Boolean)),re=c(()=>u.value==="overview"?ie.value:ct.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),J=c(()=>w.value?Xe(u.value,w.value):null),X=c(()=>u.value==="grassland"&&w.value==="grassland-health"),dt=c(()=>X.value),vt=c(()=>N.value.find(e=>e.key===M.value)||null),O=c(()=>{var e;return(((e=J.value)==null?void 0:e.legends)||[]).find(t=>t.key===L.value)||null}),ft=c(()=>ie.value.flatMap(e=>e.legends||[])),he=c(()=>{var e;return u.value==="overview"?ft.value:((e=J.value)==null?void 0:e.legends)||[]}),gt=c(()=>re.value.length>0),Me=c(()=>re.value.length<=6&&he.value.length<=8),Fe=c(()=>{if(!Me.value)return 430;const e=Math.max(1,re.value.length),t=Math.max(1,he.value.length),n=e*32,s=30+t*28;return Math.max(272,Math.min(520,96+n+s))}),mt=c(()=>{var s;if(u.value==="overview"){const i=new Set(y.value),o=ie.value.filter(g=>i.has(g.key));return Lt(o)}const e=J.value;if(!e)return null;let t=(s=O.value)!=null&&s.cqlFilter?B(I({},e),{cqlFilter:O.value.cqlFilter,activeLegend:O.value,name:O.value.name||e.name}):e;const n=vt.value;return X.value&&(n!=null&&n.layerName)&&(t=B(I({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ae=m(typeof window=="undefined"?1080:window.innerHeight),Ie=Ze.sideCardWidth;c(()=>Ze.sideCardGap);const Ve=c(()=>dn(Ae.value)),ht=c(()=>vn(Ve.value,2)),we=c(()=>!!h.value),wt=un,Ee=c(()=>ln({point:h.value?_t(h.value):null,rowCount:d.value?pe(d.value):0,loading:P.value,empty:v.value||!d.value})),yt=c(()=>Ee.value.height),bt=c(()=>Ee.value.style),kt=c(()=>{var n,s,i,o,g,A,p;const e=((s=(n=d.value)==null?void 0:n.layer)==null?void 0:s.overviewTopicKey)||((o=(i=d.value)==null?void 0:i.layer)==null?void 0:o.topicKey)||u.value;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情"}[e]||`${((A=(g=d.value)==null?void 0:g.layer)==null?void 0:A.name)||((p=ot.value)==null?void 0:p.name)||"资源"}详情`});function _t(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function ye(){Ae.value=typeof window=="undefined"?1080:window.innerHeight}function pt({topicKey:e,layerKey:t,name:n,legendName:s}){var g;const i=Xe(e,t);if(!i||i.key!==t)return null;const o=((g=i.legends)==null?void 0:g[0])||{};return B(I({},i),{name:n,overviewTopicKey:e,legends:[B(I({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function Lt(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return B(I({},n),{overlayLayers:s})}yn(()=>{ye(),window.addEventListener("resize",ye),document.addEventListener("pointerdown",Oe,!0),St(),ke(u.value,""),le(u.value,"")}),bn(()=>{C=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",ye),document.removeEventListener("pointerdown",Oe,!0)}),q(u,e=>{ae=!0,L.value="",w.value="",e==="overview"&&(y.value=[]),x(),E.value={type:"idle",text:"等待 GeoServer 图层加载"},ke(e,""),le(e,"",null),ee(()=>{ae=!1})}),q(w,()=>{ae||(me=!0,L.value="",x(),E.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&ke(u.value,w.value),le(u.value,w.value,null),ee(()=>{me=!1}))}),q(y,()=>{u.value==="overview"&&(L.value="",x(),E.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},R.value=We("overview",y.value.join(",")))},{deep:!0}),q(L,()=>{ae||me||(x(),le(u.value,w.value,O.value))}),q(X,e=>{if(e){xt();return}M.value=""}),q(M,()=>{X.value&&x()}),q(()=>k.active,e=>{var t,n,s,i;f.value&&(e?(be(),(n=(t=f.value).resume)==null||n.call(t)):(i=(s=f.value).pause)==null||i.call(s))});function St(){var n;Q=new Zt;const e={progress:0};Q.instance.on("onProgress",(s,i,o)=>{const g=Math.floor(i/o*100);Qe.to(e,{progress:g,onUpdate:()=>{j.value=Math.floor(e.progress)}})});const t=()=>{C||fe||(fe=!0,be())};Q.instance.on("onLoad",t),(n=Q.ready)==null||n.then(t).catch(()=>{C||(E.value={type:"error",text:"地图资源加载失败"})})}function be(){C||!k.active||!fe||z||(z=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Be()},600))}function Be(e=0){return V(this,null,function*(){var n,s,i,o,g;if(C)return;if(!k.active){z=!1;return}if(yield ee(),!k.active){z=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,Q)||(o=(i=f.value)==null?void 0:i.hasMap)!=null&&o.call(i))){yield Kt(),yield ee(),(g=f.value)==null||g.play();return}if(e<24){window.setTimeout(()=>Be(e+1),120);return}z=!1})}function Tt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function Nt(){var e,t;if(x(),E.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),E.value={type:"success",text:"地图已复位"};return}Tt(),z=!1,ee(()=>{be()})}a({refreshMapView:qe,resetMap:Nt});function ke(n){return V(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,i=++Ce;ne.value=!0,te.value="loading";const o=yield nn(e,s);C||i!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Pt(o,e))})}function xt(e=!1){return V(this,null,function*(){if(!X.value)return;if(!e&&N.value.length){Ge();return}const t=++ge;Y.value="loading";try{const n=yield pn();if(C||t!==ge)return;N.value=n,Y.value=n.length?"success":"empty",Ge()}catch(n){if(C||t!==ge)return;N.value=[],M.value="",Y.value="error"}})}function Ge(){if(!N.value.length){M.value="";return}N.value.some(t=>t.key===M.value)||(M.value=N.value[N.value.length-1].key)}function Pt(e,t){var s,i,o;const n=Ct(e);$.value=n.core||[],H.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},K.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[H.value],U.value=(i=n.rightPanels)!=null&&i.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,T("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function Ct(e){return e||{}}function Re(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function je(e){return _e(e)?ht.value:Ve.value}function pe(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>De(s,t[s])).length}function De(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ut.has(String(e||"").toLowerCase())}function $t(){if(u.value==="overview"){const e=new Set(y.value);return ie.value.filter(t=>e.has(t.key)).slice().reverse()}return J.value?[J.value]:[]}function Mt(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function Ft(e={}){const t=ze(e.lng),n=ze(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ze(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function At(){return V(this,arguments,function*(e={}){var g,A,p,Z,ue,He;const t=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lng),n=Number((A=e==null?void 0:e.lngLat)==null?void 0:A.lat),s=$t();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){x();return}const i=++W,o=e.screen||{x:960,y:540};h.value=null,d.value=null,v.value=!1,P.value=!0,(Z=(p=f.value)==null?void 0:p.clearSelectedFeature)==null||Z.call(p);try{for(const Ke of s){const oe=yield It(Ke,{lng:t,lat:n});if(i!==W||C)return;if(oe){d.value=oe,h.value=Le(oe,o),v.value=!1,(He=(ue=f.value)==null?void 0:ue.highlightFeature)==null||He.call(ue,oe,{highlightTone:"v21"});return}}i===W&&x()}catch(Ke){i===W&&x()}finally{i===W&&(P.value=!1)}})}function It(e,t){return V(this,null,function*(){const n=Mt(e);if(!n)return null;const s=Ft(t);let i=null;n==="grassland"?i=yield on({wkt:s}):n==="wetland"?i=yield cn({wkt:s}):n==="woodland"?i=yield an(s):n==="basicGrassland"&&(i=yield rn(s));const o=Vt(i,n);if(!Bt(o))return null;const g=Gt(o,e,t,n);return pe(g)>0?g:null})}function Vt(e,t){var s,i,o,g,A;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(i=e==null?void 0:e.data)==null?void 0:i.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(g=e==null?void 0:e.data)==null?void 0:g.woodland,(A=e==null?void 0:e.data)==null?void 0:A.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const p of n){const Z=Et(p);if(Z)return Z}return null}function Et(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Bt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(qt)?!0:Object.keys(e).some(t=>De(t,e[t]))}function qt(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Gt(e,t,n,s){const i=jt(e),o=Rt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:i,feature:{type:"Feature",properties:i,geometry:o},geometry:o,layer:t,lngLat:n}}function Rt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function jt(e={}){const t=I({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const i=s==null?void 0:s.value;if(i==null||i==="")return;const o=it[String((s==null?void 0:s.title)||"").trim()],g=String((s==null?void 0:s.field)||"").trim();[g,Dt(g),o].filter(Boolean).forEach(p=>{(t[p]===void 0||t[p]===null||t[p]==="")&&(t[p]=i)})}),t}function Dt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function le(s,i){return V(this,arguments,function*(e,t,n=O.value){const o=++Pe;if(!t||!zt(t,n)){R.value=We(e,t);return}const g=yield sn(e,t,n);C||o!==Pe||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===L.value&&(R.value=B(I({},g),{hideTownLabelStats:!0}))})}function zt(e,t=null){return!!(t!=null&&t.key)||rt.has(e)}function We(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Wt(e){var n,s;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||pe(t)<=0){x();return}d.value=t,v.value=!1,h.value=Le(t,(e==null?void 0:e.screen)||h.value)}function Le(e,t=null){var n,s,i,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(i=f.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:o.call(i,e))||t}function Ot(){if(!we.value||!d.value)return;const e=Le(d.value,h.value);if(!e)return;const t=h.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(h.value=e)}function Ht(e){E.value=e}function x(){var e,t;W+=1,d.value=null,v.value=!1,P.value=!1,h.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Oe(e){if(!we.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||x()}function Kt(){return D.value?new Promise(e=>{Qe.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{D.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(_(),S("div",En,[G(fn,{ref_key:"mapSceneRef",ref:f,"active-layer":mt.value,"map-ranking":R.value,"admin-boundary-line-scale":2.4,"initial-zoom":9.55,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>P.value=n),onFeatureInfo:Wt,onMapClick:At,onLayerStatus:Ht,onViewChange:Ot},null,8,["active-layer","map-ranking"]),b("div",Bn,[b("div",qn,[b("div",Gn,[(_(!0),S(Ne,null,xe(K.value,n=>(_(),tt(st,{key:Re(n,"left"),class:de(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[G(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",Rn,[b("div",jn,[(_(!0),S(Ne,null,xe(U.value,n=>(_(),tt(st,{key:Re(n,"right"),class:de(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[G(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),gt.value?(_(),S("div",{key:0,class:"fgw-map-layer-tools",style:ve({height:`${Fe.value}px`})},[G(mn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":L.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>L.value=n),"topic-key":u.value,layers:re.value,legends:he.value,multiple:u.value==="overview",width:248,height:Fe.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):ce("",!0),dt.value?(_(),S("div",Dn,[G(Vn,{modelValue:M.value,"onUpdate:modelValue":t[3]||(t[3]=n=>M.value=n),items:N.value,loading:Y.value==="loading"},null,8,["modelValue","items","loading"])])):ce("",!0),we.value?(_(),S("div",{key:2,class:"fgw-map-feature-info",style:ve(bt.value)},[G(hn,{title:kt.value,feature:d.value,empty:v.value,loading:P.value,width:Se(wt),height:yt.value,closable:"",onClose:x},null,8,["title","feature","empty","loading","width","height"])],4)):ce("",!0),b("div",zn,[G(gn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),D.value?(_(),S("div",Wn,[t[6]||(t[6]=kn('
    LOADING
    ',1)),b("div",On,[b("span",Hn,Te(j.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):ce("",!0)]))}};export{os as default}; diff --git a/docs/assets/index-6e1f3341-balabala-1784045078568.css b/docs/assets/index-6e1f3341-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-6e1f3341-balabala-1784045078568.css rename to docs/assets/index-6e1f3341-balabala-1784074877048.css diff --git a/docs/assets/index-bb5d6c3e-1784045078568.js b/docs/assets/index-6e825f4c-1784074877048.js similarity index 96% rename from docs/assets/index-bb5d6c3e-1784045078568.js rename to docs/assets/index-6e825f4c-1784074877048.js index 61b071e..4018127 100644 --- a/docs/assets/index-bb5d6c3e-1784045078568.js +++ b/docs/assets/index-6e825f4c-1784074877048.js @@ -1 +1 @@ -var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,l as w,m as h,g as S,o as _,c as f,a as e,f as V,s as g,H as b,t as y,j as k,d as p,I as B}from"./index-1784045078568.js";const D={class:"login-screen"},H={class:"login-shell"},I={class:"login-field"},M={class:"login-field"},R={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=S(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield B(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",D,[e("div",H,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:V(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",I,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[b,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[b,a.value]])]),o.value?(_(),f("div",R,y(o.value),1)):k("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},y(u.value?"登录中":"登录"),9,U)],32)])]))}},P=x(q,[["__scopeId","data-v-8ebd0d6e"]]);export{P as default}; +var m=(v,d,n)=>new Promise((i,a)=>{var u=l=>{try{r(n.next(l))}catch(t){a(t)}},o=l=>{try{r(n.throw(l))}catch(t){a(t)}},r=l=>l.done?i(l.value):Promise.resolve(l.value).then(u,o);r((n=n.apply(v,d)).next())});import{_ as x,l as w,m as h,g as S,o as _,c as f,a as e,f as V,s as g,H as b,t as y,j as k,d as p,I as B}from"./index-1784074877048.js";const D={class:"login-screen"},H={class:"login-shell"},I={class:"login-field"},M={class:"login-field"},R={key:0,class:"login-error"},U=["disabled"],q={__name:"index",setup(v){const d=w(),n=h(),i=p(""),a=p(""),u=p(!1),o=p(""),r=S(()=>{const t=typeof d.query.redirect=="string"?decodeURIComponent(d.query.redirect):"/platform";return t.startsWith("/login")?"/platform":t||"/platform"});function l(){return m(this,null,function*(){if(o.value="",!i.value||!a.value){o.value="请输入账号和密码。";return}u.value=!0;try{yield B(i.value,a.value),n.replace(r.value)}catch(t){o.value=(t==null?void 0:t.message)||"登录失败,请稍后再试。"}finally{u.value=!1}})}return(t,s)=>(_(),f("div",D,[e("div",H,[s[5]||(s[5]=e("div",{class:"login-brand"},[e("span",null,"红原县数字畜牧业监管平台"),e("small",null,"Hongyuan Digital Animal Husbandry Supervision Platform")],-1)),e("form",{class:"login-panel",onSubmit:V(l,["prevent"])},[s[4]||(s[4]=e("div",{class:"login-panel-title"},"用户登录",-1)),e("label",I,[s[2]||(s[2]=e("span",null,"账号",-1)),g(e("input",{"onUpdate:modelValue":s[0]||(s[0]=c=>i.value=c),autocomplete:"username",autofocus:"",placeholder:"请输入账号"},null,512),[[b,i.value,void 0,{trim:!0}]])]),e("label",M,[s[3]||(s[3]=e("span",null,"密码",-1)),g(e("input",{"onUpdate:modelValue":s[1]||(s[1]=c=>a.value=c),autocomplete:"current-password",placeholder:"请输入密码",type:"password"},null,512),[[b,a.value]])]),o.value?(_(),f("div",R,y(o.value),1)):k("",!0),e("button",{class:"login-submit",disabled:u.value,type:"submit"},y(u.value?"登录中":"登录"),9,U)],32)])]))}},P=x(q,[["__scopeId","data-v-8ebd0d6e"]]);export{P as default}; diff --git a/docs/assets/index-7362f308-1784074877048.js b/docs/assets/index-7362f308-1784074877048.js new file mode 100644 index 0000000..fe1d44c --- /dev/null +++ b/docs/assets/index-7362f308-1784074877048.js @@ -0,0 +1,112 @@ +var Qn=Object.defineProperty,Jn=Object.defineProperties;var Zn=Object.getOwnPropertyDescriptors;var io=Object.getOwnPropertySymbols;var Xn=Object.prototype.hasOwnProperty,ei=Object.prototype.propertyIsEnumerable;var ro=(k,n,i)=>n in k?Qn(k,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):k[n]=i,D=(k,n)=>{for(var i in n||(n={}))Xn.call(n,i)&&ro(k,i,n[i]);if(io)for(var i of io(n))ei.call(n,i)&&ro(k,i,n[i]);return k},V=(k,n)=>Jn(k,Zn(n));var re=(k,n,i)=>new Promise((c,s)=>{var f=m=>{try{h(i.next(m))}catch(b){s(b)}},p=m=>{try{h(i.throw(m))}catch(b){s(b)}},h=m=>m.done?c(m.value):Promise.resolve(m.value).then(f,p);h((i=i.apply(k,n)).next())});import{h as Lo,w as ht,o as A,c as F,a as w,d as G,K as ti,g as _,L as je,q as ai,A as W,s as so,v as lo,b as Tt,C as xe,j as Y,J as lt,u as We,F as _e,y as Ie,x as la,B as oi,n as Ue,e as _t,f as Se,t as z,T as ni,M as ii}from"./index-1784074877048.js";import{l as co,g as ri,E as si}from"./live-scene-1-69301bfb-1784074877048.js";import{H as ca}from"./index.esm.min-469b3f53-1784074877048.js";import{_ as uo}from"./index-1f5d6021-1784074877048.js";import{g as ua,C as li,H as ci,a as ui,M as di}from"./index-b4ec1ae2-1784074877048.js";import{O as fi,P as Ee,a as X,D as qe,C as se,A as me,b as J,e as hi,F as mi,G as fe,c as pi,d as gi,f as vi,g as fo,L as ho,V as Q,h as mo,R as he,B as yi,S as da,i as bi,j as wi,k as xi,l as Si,N as Mi,Q as ki,T as Pi,m as Ci,n as po,o as go,p as Ai,q as vo,r as Li}from"./screen2Standard-9c6af3a2-1784074877048.js";import{M as Ti,g as _i,h as Ii,L as Fi,B as yo,a as fa,E as Ei,G as Oi,D as Bi,b as Gi,l as ha,P as bo,c as wo,d as Ni,s as ma,f as It,e as Ri,i as Hi,j as Di,k as xo}from"./data-35cd5cb4-1784074877048.js";import{g as Ye}from"./index-e9f36657-1784074877048.js";import{h as zi,a as To,f as $i,g as Vi,b as ji}from"./townshipBoundaries-1b068bef-1784074877048.js";import{R as Wi,r as Ui,a as Ki,c as qi,o as Yi,s as Qi,p as Ji,b as So,d as Zi,h as Xi,g as Mo,e as er,f as tr,i as ar,j as or,k as nr,l as ir,m as rr,n as sr,_ as lr}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{_ as cr,a as ko}from"./FeatureInfoPanel-8e9f606e-1784074877048.js";import{g as Po,a as ur}from"./openApi-7e2310e1-1784074877048.js";import{c as dr,F as fr,g as hr,a as mr}from"./featurePanelLayout-dc118942-1784074877048.js";import{g as pr}from"./yakApi-16bd23bc-1784074877048.js";import{w as ct,f as pa}from"./chartTheme-9a56b109-1784074877048.js";import{b as gr}from"./data-5c83c66b-1784074877048.js";import{h as vr,y as yr}from"./data-d4fc629d-1784074877048.js";import"./index-bc047bb3-1784074877048.js";import"./livestockData-36ec0ae2-1784074877048.js";import"./geoserver-a50e4f20-1784074877048.js";class br extends fi{constructor(n,i){super(),this.config=Object.assign({color1:16566615,color2:16777215},i),this.assets={instance:null},this.assets.instance=n.assets.instance,this.sceneGroup=n.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let n=this.config.color1,i=new Ee(1.5,1.5,1),c=new Ee(1,3,1);c.translate(0,1,0);let s=new X({color:n,transparent:!0,fog:!1,side:qe,depthWrite:!1}),f=s.clone();f.map=this.assets.instance.getResource("focusArrows");let p=s.clone();p.map=this.assets.instance.getResource("focusBar");let h=s.clone();h.map=this.assets.instance.getResource("focusBg");let m=s.clone();m.color=new se(this.config.color2),m.map=this.assets.instance.getResource("focusMidQuan");let b=s.clone();b.map=this.assets.instance.getResource("focusMoveBg"),b.blending=me;let C=new J(i,f),S=new J(c,p);S.rotation.x=Math.PI/2;let O=S.clone();O.rotation.y=Math.PI/2;let x=new J(i,h),v=new J(i,m),I=new J(i,b),B=[v,x,C,I,S,O];B.map(R=>{R.renderOrder=99}),this.add(...B);let E=0;I.scale.setScalar(E),this.animateElements={focusMidQuan:v,focusArrows:C,focusMoveBg:I},this.startAnimate()}startAnimate(){let n=Ye.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),i=Ye.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=Ye.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),s=Ye.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[n,i,c,s]}pausedAnimate(){this.gsapObjects.map(n=>{n.paused=!0})}destroy(){this.gsapObjects.map(n=>{n.kill()}),hi(this)}}const wr=zi.map(k=>D({},k)),Co=To.map(k=>D({},k)),xr=To.map(k=>{var n,i;return{name:k.name,value:k.value,lng:(n=k.center)==null?void 0:n[0],lat:(i=k.center)==null?void 0:i[1]}}),Sr=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function ga(k){return k.sort((n,i)=>i.value-n.value),k}function Mr(k){return k?typeof k=="string"?JSON.parse(k):k:null}function va(k){const n=Mr(k);return n!=null&&n.features&&n.features.forEach(i=>{var c;((c=i.geometry)==null?void 0:c.type)==="Polygon"&&(i.geometry.coordinates=[i.geometry.coordinates])}),n}function kr(k,n){var i;try{return(i=k==null?void 0:k.getResource)==null?void 0:i.call(k,n)}catch(c){return null}}function Pr(k,n,i){const c=Number(k);return Number.isFinite(c)?Math.max(n,Math.min(i,c)):n}class Cr extends Ti{constructor(n,i,c={}){var s;super(n,{maxPixelRatio:(s=c.maxPixelRatio)!=null?s:c.showDataOverlays===!1?1.35:void 0,antialias:c.antialias}),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.geoProjectionFn=_i().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new mi(1058614,1,50),this.scene.background=new se(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new Ii(this.renderer.instance,this.camera.instance,this.canvas),this.assets=i,this.staticMapData={china:va(kr(this.assets.instance,"china")),mapJson:va(this.assets.instance.getResource("mapJson")),mapStroke:va(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(n){var i;return n&&(this.sceneTweens.push(n),this.scenePaused&&((i=n.pause)==null||i.call(n)),n)}addSceneTimer(n){return n&&this.sceneTimers.push(n),n}init(){this.labelGroup=new fe,this.label3d=new Fi(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new fe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let n=Ye.timeline({onComplete:()=>{}});n.pause(),this.animateTl=n,n.addLabel("focusMap",1.5),n.addLabel("focusMapOpacity",2),n.addLabel("bar",3),n.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),n.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),n.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),n.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((i,c)=>{let s=i.element.querySelector(".other-label");n.to(s,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),n.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),n.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var i,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(i=this.options).onPlayComplete)==null||c.call(i)}},"focusMapOpacity"),(this.allBar||[]).map((i,c)=>{if(i.userData.name==="邛溪镇")return!1;n.to(i.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((i,c)=>{n.to(i,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((i,c)=>{let s=i.element.querySelector(".provinces-label-wrap"),f=i.element.querySelector(".number .value"),p=Number(f.innerText),h={score:0};n.to(s,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),n.to(h,{duration:1,delay:.2*c,score:p,onUpdate:m},"bar");function m(){f.innerText=h.score.toFixed(0)}}),(this.allGuangquan||[]).map((i,c)=>{n.to(i.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),n.to(i.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let n=new pi(16777215,5);this.scene.add(n);let i=new gi(16777215,5);i.position.set(-30,6,-8),i.castShadow=!0,i.shadow.radius=20,i.shadow.mapSize.width=1024,i.shadow.mapSize.height=1024,this.scene.add(i),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(n){const i=new vi(1924702,n.intensity,n.distance);i.position.set(n.x,n.y,n.z),this.scene.add(i)}createMap(){let n=new fe,i=new fe;this.focusMapGroup=i;let{china:c,chinaTopLine:s}=this.createChina(),{map:f,mapTop:p,mapLine:h}=this.createProvince();c==null||c.setParent(n),s==null||s.setParent(n),this.createDiffuse(),f.setParent(i),p.setParent(i),h.setParent(i),i.position.set(0,0,-.01),i.scale.set(1,1,0),n.add(i),n.rotation.x=-Math.PI/2,n.position.set(0,.2,0),this.scene.add(n),this.showDataOverlays?this.createBar():(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){var h;let n={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},i=this.staticMapData.china;if(!((h=i==null?void 0:i.features)!=null&&h.length))return{china:null,chinaTopLine:null};let c=new fo({color:new se(n.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),s=new yo(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),f=new ho({color:n.lineColor}),p=new fa(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:f,renderOrder:3});return p.lineGroup.position.z+=.01,{china:s,chinaTopLine:p}}createProvince(){let n=this.staticMapData.mapJson,[i,c]=this.createProvinceMaterial();this.focusMapTopMaterial=i,this.focusMapSideMaterial=c;let s=new Ei(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,.11),data:n,depth:this.depth,topFaceMaterial:i,sideMaterial:c,renderOrder:9}),f=new mo({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(f),this.defaultMaterial=f,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new se("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let p=new yo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,this.depth+.22),data:n,material:f,renderOrder:2});p.mapGroup.children.map(m=>{m.children.map(b=>{b.type==="Mesh"&&this.eventElement.push(b)})}),this.mapLineMaterial=new ho({color:16777215,opacity:0,transparent:!0,fog:!1});let h=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:n,material:this.mapLineMaterial,renderOrder:3});return h.lineGroup.position.z+=this.depth+.23,{map:s,mapTop:p,mapLine:h}}createProvinceMaterial(){let n=new fo({color:16777215,transparent:!0,opacity:0,fog:!1,side:qe});n.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(1058614)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); + outgoingLight = outgoingLight*gradient; + float topAlpha = 0.5; + if(vPosition.z>0.3){ + diffuseColor.a *= topAlpha; + } + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)};let i=this.assets.instance.getResource("side");i.wrapS=he,i.wrapT=he,i.repeat.set(1,1.5),i.offset.y+=.065;let c=new mo({color:16777215,map:i,fog:!1,opacity:0,side:qe});return this.time.on("tick",()=>{i.offset.y+=.005}),c.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(2780818)}}),s.vertexShader=s.vertexShader.replace("void main() {",` + attribute float alpha; + varying vec3 vPosition; + varying float vAlpha; + void main() { + vAlpha = alpha; + vPosition = position; + `),s.fragmentShader=s.fragmentShader.replace("void main() {",` + varying vec3 vPosition; + varying float vAlpha; + uniform vec3 uColor1; + uniform vec3 uColor2; + void main() { + `),s.fragmentShader=s.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); + outgoingLight = outgoingLight*gradient; + gl_FragColor = vec4( outgoingLight, diffuseColor.a ); + `)},[n,c]}createTerrainSurfaceShader(n){n.onBeforeCompile=i=>{i.uniforms=V(D({},i.uniforms),{uTerrainColor1:{value:new se(807272)},uTerrainColor2:{value:new se(1619414)},uTerrainColor3:{value:new se(7074015)}}),i.vertexShader=i.vertexShader.replace("void main() {",` + varying vec3 vTerrainPosition; + void main() { + vTerrainPosition = position; + `),i.fragmentShader=i.fragmentShader.replace("void main() {",` + varying vec3 vTerrainPosition; + uniform vec3 uTerrainColor1; + uniform vec3 uTerrainColor2; + uniform vec3 uTerrainColor3; + float terrainHash(vec2 p) { + return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); + } + float terrainNoise(vec2 p) { + vec2 i = floor(p); + vec2 f = fract(p); + vec2 u = f * f * (3.0 - 2.0 * f); + return mix( + mix(terrainHash(i + vec2(0.0, 0.0)), terrainHash(i + vec2(1.0, 0.0)), u.x), + mix(terrainHash(i + vec2(0.0, 1.0)), terrainHash(i + vec2(1.0, 1.0)), u.x), + u.y + ); + } + void main() { + `),i.fragmentShader=i.fragmentShader.replace("#include ",` + #ifdef OPAQUE + diffuseColor.a = 1.0; + #endif + #ifdef USE_TRANSMISSION + diffuseColor.a *= transmissionAlpha + 0.1; + #endif + vec2 terrainUv = vTerrainPosition.xz; + float broad = terrainNoise(terrainUv * 0.32); + float detail = terrainNoise(terrainUv * 1.6); + float bands = sin(terrainUv.x * 0.75 + terrainUv.y * 0.46) * 0.5 + 0.5; + float ridges = smoothstep(0.48, 0.86, bands) * 0.16; + float mixValue = clamp((vTerrainPosition.x + 9.0) / 18.0 + (broad - 0.5) * 0.28, 0.0, 1.0); + vec3 terrainColor = mix(uTerrainColor1, uTerrainColor2, mixValue); + terrainColor = mix(terrainColor, uTerrainColor3, clamp(detail * 0.18 + ridges, 0.0, 0.28)); + float shade = 0.8 + broad * 0.24 + detail * 0.1; + outgoingLight *= terrainColor * shade; + diffuseColor.a *= 0.68; + gl_FragColor = vec4(outgoingLight, diffuseColor.a); + `)}}createBar(){let n=this,i=ga(Co).filter((m,b)=>b<7);const c=new fe;this.barGroup=c;const s=.7,f=4*s,p=i[0].value;this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],i.map((m,b)=>{let C=f*(m.value/p),S=new X({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Oi(S,{uColor1:b>3?16506760:5291006,uColor2:b>3?16776948:7863285,size:C,dir:"y"});const O=new yi(.1*s,.1*s,C);O.translate(0,0,C/2);const x=new J(O,S);x.renderOrder=5;let v=x,[I,B]=this.geoProjection(m.centroid);v.position.set(I,-B,this.depth+.45),v.scale.set(1,1,0),v.userData=D({},m);let E=this.createQuan(new Q(I,this.depth+.44,B),b),R=this.createHUIGUANG(C,b>3?16776948:7863285);v.add(...R),c.add(v),c.rotation.x=-Math.PI/2;let ee=h(m,b,new Q(I,-B,this.depth+1.1+C));this.allBar.push(v),this.allBarMaterial.push(S),this.allGuangquan.push(E),this.allProvinceLabel.push(ee)}),this.scene.add(c);function h(m,b,C){let S=n.label3d.create("","provinces-label",!1);return S.init(`
    +
    +
    ${m.value}km²
    +
    ${b+1}
    +
    +
    `,C),n.label3d.setLabelStyle(S,.01,"x"),S.setParent(n.labelGroup),S}}createEvent(){let n=[];this.selectedRegion=null;const i=(s,f=!1)=>{var p,h,m;!f&&((h=(p=this.selectedRegion)==null?void 0:p.userData)==null?void 0:h.name)===((m=s==null?void 0:s.userData)==null?void 0:m.name)||s.traverse(b=>{b.isMesh&&(b.material=this.defaultMaterial)})},c=s=>{s.traverse(f=>{f.isMesh&&(f.material=this.defaultLightMaterial)})};this.eventElement.map(s=>{this.interactionManager.add(s),s.addEventListener("mousedown",f=>{var h;const p=((h=f.target)==null?void 0:h.parent)||f.target;this.selectedRegion&&this.selectedRegion!==p&&i(this.selectedRegion,!0),this.selectedRegion=p,c(p),this.emitTownClick((p==null?void 0:p.userData)||{})}),s.addEventListener("mouseover",f=>{n.includes(f.target.parent)||n.push(f.target.parent),document.body.style.cursor="pointer",c(f.target.parent)}),s.addEventListener("mouseout",f=>{n=n.filter(p=>p.userData.name!==f.target.parent.userData.name),n.length>0&&n[n.length-1],i(f.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(n,i){let c=new Ee(.35,n);c.translate(0,n/2,0);const s=this.assets.instance.getResource("huiguang");s.colorSpace=da,s.wrapS=he,s.wrapT=he;let f=new X({color:i,map:s,transparent:!0,opacity:.4,depthWrite:!1,side:qe,blending:me}),p=new J(c,f);p.renderOrder=10,p.rotateX(Math.PI/2);let h=p.clone(),m=p.clone();return h.rotateY(Math.PI/180*60),m.rotateY(Math.PI/180*120),[p,h,m]}createQuan(n,i){const c=this.assets.instance.getResource("guangquan1"),s=this.assets.instance.getResource("guangquan2");let f=new Ee(.5,.5),p=new X({color:16777215,map:c,alphaMap:c,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),h=new X({color:16777215,map:s,alphaMap:s,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),m=new J(f,p),b=new J(f,h);return m.renderOrder=6,b.renderOrder=6,m.rotateX(-Math.PI/2),b.rotateX(-Math.PI/2),m.position.copy(n),b.position.copy(n),b.position.y-=.001,m.scale.set(0,0,0),b.scale.set(0,0,0),this.quanGroup=new fe,this.quanGroup.add(m,b),this.scene.add(this.quanGroup),this.time.on("tick",()=>{m.rotation.z+=.05}),this.quanGroup}createDiffuse(){let n=new Ee(200,200),i=new X({color:0,depthWrite:!1,transparent:!0,blending:bi});i.blendEquation=wi,i.blendSrc=xi,i.blendDst=Si,new Bi({material:i,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:s=>{const f=setTimeout(()=>{this.addSceneTween(Ye.to(s.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(f)}});let c=new J(n,i);c.renderOrder=3,c.rotation.x=-Math.PI/2,c.position.set(0,.21,0),this.scene.add(c)}createGrid(){new Gi(this,{gridSize:68,gridDivision:28,gridColor:2123149,shapeSize:.58,shapeColor:4035005,pointSize:.12,pointColor:1805508,pointLayout:{row:170,col:170},pointBlending:me})}createBottomBg(){let n=new Ee(42,42);const i=this.assets.instance.getResource("ocean");i.colorSpace=da,i.wrapS=he,i.wrapT=he,i.repeat.set(1,1);let c=new X({map:i,opacity:1,fog:!1}),s=new J(n,c);s.rotation.x=-Math.PI/2,s.position.set(0,-.7,0),this.scene.add(s)}createChinaBlurLine(){let n=new Ee(147,147);const i=this.assets.instance.getResource("chinaBlurLine");i.colorSpace=da,i.wrapS=he,i.wrapT=he,i.generateMipmaps=!1,i.minFilter=Mi,i.repeat.set(1,1);let c=new X({color:4162253,alphaMap:i,transparent:!0,opacity:.5}),s=new J(n,c);s.rotateX(-Math.PI/2),s.position.set(-19.3,-.5,-19.7),this.scene.add(s)}createLabel(){let n=this,i=this.labelGroup,c=this.label3d,s=[];if(wr.map(h=>{if(h.hide==!0)return!1;let m=f(h,c,i);s.push(m)}),this.showDataOverlays){let h=p({icon:ha,center:[103.13,33.01],width:"40px",height:"40px",reflect:!0},c,i),m=p({icon:ha,center:[102.03,32.44],width:"20px",height:"20px",reflect:!1},c,i);s.push(h),s.push(m)}this.otherLabel=s;function f(h,m,b){let C=m.create("",`china-label ${h.blur?" blur":""}`,!1);const[S,O]=n.geoProjection(h.center),x=n.showDataOverlays?``:"";return C.init(`
    ${x}${h.name}
    `,new Q(S,-O,n.depth+.85)),m.setLabelStyle(C,.018,"x"),C.setParent(b),C.userData=V(D({},h),{labelType:"town-label",baseScale:.018}),C}function p(h,m,b){let C=m.create("",`decoration-label ${h.reflect?" reflect":""}`,!1);const[S,O]=n.geoProjection(h.center);return C.init(`
    `,new Q(S,-O,.4)),m.setLabelStyle(C,.02,"x"),C.setParent(b),C}}createRotateBorder(){let n=12,i=this.assets.instance.getResource("rotationBorder1"),c=this.assets.instance.getResource("rotationBorder2"),s=new bo(this,{width:n*1.178,needRotate:!0,rotateSpeed:.001,material:new X({map:i,color:4763647,transparent:!0,opacity:.2,side:qe,depthWrite:!1,blending:me}),position:new Q(0,.28,0)});s.instance.rotation.x=-Math.PI/2,s.instance.renderOrder=6,s.instance.scale.set(0,0,0),s.setParent(this.scene);let f=new bo(this,{width:n*1.116,needRotate:!0,rotateSpeed:-.004,material:new X({map:c,color:4763647,transparent:!0,opacity:.4,side:qe,depthWrite:!1,blending:me}),position:new Q(0,.3,0)});f.instance.rotation.x=-Math.PI/2,f.instance.renderOrder=6,f.instance.scale.set(0,0,0),f.setParent(this.scene),this.rotateBorder1=s.instance,this.rotateBorder2=f.instance}createFlyLine(){this.flyLineGroup=new fe,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup);const n=this.assets.instance.getResource("mapFlyline");n.wrapS=n.wrapT=he,n.repeat.set(.5,2);const i=.1,c=32,s=2,f=!1;let[p,h]=this.geoProjection(this.flyLineCenter),m=new Q(p,-h,0);const b=new X({map:n,color:2781042,transparent:!0,fog:!1,opacity:1,depthTest:!1,blending:me});this.flyLineMaterial=b,this.flyLineTexture=n,this.time.on("tick",()=>{n.offset.x-=this.sceneMode==="trade"?.014:.006}),Co.filter((C,S)=>S<7).map(C=>{let[S,O]=this.geoProjection(C.centroid),x=new Q(S,-O,0);const v=new Q;v.addVectors(m,x).multiplyScalar(.5),v.setZ(3);const I=new ki(m,v,x),B=new Pi(I,c,i,s,f),E=new J(B,b);E.rotation.x=-Math.PI/2,E.position.set(0,this.depth+.44,0),E.renderOrder=21,this.flyLineGroup.add(E)})}createFocus(){let n=new br(this,{color1:12451325,color2:12451325}),[i,c]=this.geoProjection(this.flyLineCenter);n.position.set(i,-c,this.depth+.44),n.scale.set(1,1,1),this.flyLineFocusGroup.add(n)}createParticles(){this.particles=new wo(this,{num:10,range:30,dir:"up",speed:.05,material:new Ci({map:wo.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:me,sizeAttenuation:!0})}),this.particleGroup=new fe,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new fe,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const n=this.assets.instance.getResource("arrow"),i=new po({map:n,color:16776948,fog:!1,transparent:!0,depthTest:!1});let c=ga(xr),s=c[0].value;c.map(f=>{const p=new go(i);p.renderOrder=23;let h=.1+f.value/s*.2;p.scale.set(h,h,h);let[m,b]=this.geoProjection([f.lng,f.lat]);p.position.set(m,-b,this.depth+.45),p.userData.position=[m,-b,this.depth+.45],this.scatterGroup.add(p)})}createInfoPoint(){let n=this;this.InfoPointGroup=new fe,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[];let i=this.label3d;const c=this.assets.instance.getResource("point");let s=[16776948,7863285],f=ga(Sr),p=f[0].value;f.map((m,b)=>{const C=new po({map:c,color:s[b%s.length],fog:!1,transparent:!0,depthTest:!1}),S=new go(C);S.renderOrder=23;let O=.7+m.value/p*.4;S.scale.set(O,O,O);let[x,v]=this.geoProjection([m.lng,m.lat]),I=[x,-v,this.depth+.7];S.position.set(...I),S.userData.position=[...I],S.userData={position:[x,-v,this.depth+.7],name:m.name,value:m.value,level:m.level,index:b},this.InfoPointGroup.add(S);let B=h(m,i,this.InfoPointGroup);this.infoLabelElement.push(B),this.interactionManager.add(S),S.addEventListener("mousedown",E=>{if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.emitTownClick(E.target.userData,"info-point"),this.infoPointIndex=E.target.userData.index,this.infoLabelElement.map(R=>{R.visible=!1}),B.visible=!0,this.createInfoPointLabelLoop()}),S.addEventListener("mouseup",E=>{this.clicked=!1}),S.addEventListener("mouseover",E=>{document.body.style.cursor="pointer"}),S.addEventListener("mouseout",E=>{document.body.style.cursor="default"})});function h(m,b,C){let S=b.create("","info-point",!0);const[O,x]=n.geoProjection([m.lng,m.lat]);return S.init(`
    +
    +
    +
    +
    +
    +
    +
    +
    名称${m.name}
    +
    面积${m.value}km²
    +
    类型${m.level}
    +
    +
    +
    + `,new Q(O,-x,n.depth+1.9)),b.setLabelStyle(S,.015,"x"),S.setParent(C),S.visible=!1,S}}emitTownClick(n={},i="region"){var s,f;const c=n.name||n.fullName;c&&((f=(s=this.options)==null?void 0:s.onTownClick)==null||f.call(s,V(D({},n),{name:c,source:i})))}setSceneMode(n="default"){this.sceneMode=n,this.applySceneMode()}setDataOverlaysVisible(n=!0){this.showDataOverlays=!!n,this.applySceneMode()}applySceneMode(){var i,c,s,f;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(i=this.allProvinceLabel)==null||i.forEach(p=>{p.visible=!1}),(c=this.allGuangquan)==null||c.forEach(p=>{p.visible=!1});return}const n=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=n||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=n||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(n?7534280:2781042),this.flyLineMaterial.opacity=n?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(n?.32:.5,n?3:2),this.scatterGroup&&(this.scatterGroup.visible=!n&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!n&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!n),(s=this.allProvinceLabel)==null||s.forEach(p=>{p.visible=!n}),(f=this.allGuangquan)==null||f.forEach(p=>{p.visible=!n})}createInfoPointLabelLoop(){var n;this.scenePaused||!((n=this.infoLabelElement)!=null&&n.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((i,c)=>{this.infoPointIndex===c?i.visible=!0:i.visible=!1})},3e3))}createStorke(){const n=this.staticMapData.mapStroke,i=this.assets.instance.getResource("pathLine3");i.wrapS=i.wrapT=he,i.repeat.set(2,1);let c=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Q(0,0,this.depth+.24),data:n,material:new X({color:2868444,map:i,alphaMap:i,fog:!1,transparent:!0,opacity:1,blending:me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{i.offset.x+=.005})}geoProjection(n){return this.geoProjectionFn(n)}updateTownLabelScale(){var h,m,b;const n=this.otherLabel||[],i=(h=this.camera)==null?void 0:h.instance,c=(b=(m=this.camera)==null?void 0:m.controls)==null?void 0:b.target;if(!n.length||!i||!c)return;const s=i.position.distanceTo(c),f=Pr(s*72e-5,.011,.026),p=s>45?"0.76":s<22?"0.94":"1";n.forEach(C=>{var O,x,v;if(((O=C==null?void 0:C.userData)==null?void 0:O.labelType)!=="town-label")return;C.scale.set(f,f,f);const S=(v=(x=C.element)==null?void 0:x.querySelector)==null?void 0:v.call(x,".other-label");S&&(S.style.opacity=p)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var n,i;this.scenePaused=!0,(i=(n=this.time)==null?void 0:n.pause)==null||i.call(n),this.sceneTweens.forEach(c=>{var s;return(s=c==null?void 0:c.pause)==null?void 0:s.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var n,i,c;this.scenePaused=!1,(i=(n=this.time)==null?void 0:n.resume)==null||i.call(n),this.sceneTweens.forEach(s=>{var f;return(f=s==null?void 0:s.resume)==null?void 0:f.call(s)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(n=>clearTimeout(n)),this.sceneTimers=[],this.sceneTweens.forEach(n=>{var i;return(i=n==null?void 0:n.kill)==null?void 0:i.call(n)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const Ar={class:"map"},Lr={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0},maxPixelRatio:{type:Number,default:0}},emits:["town-click","play-complete"],setup(k,{expose:n,emit:i}){const c=G(null),s=ti(null),f=k,p=i;let h=!1;Lo(()=>{O()});function m(x){var v,I,B,E;s.value||!c.value||(s.value=new Cr(c.value,x,{showDataOverlays:f.showDataOverlays,maxPixelRatio:f.maxPixelRatio||void 0,onTownClick:R=>p("town-click",R),onPlayComplete:()=>p("play-complete")}),(I=(v=s.value).setSceneMode)==null||I.call(v,f.sceneMode),(E=(B=s.value).setDataOverlaysVisible)==null||E.call(B,f.showDataOverlays),s.value.time.pause())}function b(){return re(this,null,function*(){var x,v,I,B;s.value&&(C(),!(h||s.value.mapAnimationDone)&&(h=!0,(v=(x=s.value.animateTl)==null?void 0:x.timeScale)==null||v.call(x,1),(B=(I=s.value.animateTl)==null?void 0:I.play)==null||B.call(I)))})}function C(){var x,v;s.value&&((v=(x=s.value).resumeScene)==null||v.call(x),s.value.resumeScene||s.value.time.resume())}function S(){var x,v,I,B,E,R;s.value&&((v=(x=s.value.animateTl)==null?void 0:x.pause)==null||v.call(x),(B=(I=s.value).pauseScene)==null||B.call(I),s.value.pauseScene||(R=(E=s.value.time)==null?void 0:E.pause)==null||R.call(E))}function O(){var x,v;(v=(x=s.value)==null?void 0:x.destroy)==null||v.call(x),s.value=null}return n({loadMap:m,play:b,resume:C,pause:S,destroyMap:O,canvasMap:s}),ht(()=>f.sceneMode,x=>{var v,I;(I=(v=s.value)==null?void 0:v.setSceneMode)==null||I.call(v,x)},{immediate:!0}),ht(()=>f.showDataOverlays,x=>{var v,I;(I=(v=s.value)==null?void 0:v.setDataOverlaysVisible)==null||I.call(v,x)}),(x,v)=>(A(),F("div",Ar,[w("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Tr=""+new URL("flyline6-525edf67-balabala-1784074877048.png",import.meta.url).href;class _r{constructor(n={}){this.options=n||{},this.init()}init(){this.instance=new Wi,this.instance.addLoader(Ai,"FileLoader");const n={type:"File",name:"china",path:ua(li)},i=[{type:"File",name:"mapJson",path:ua(ci)},{type:"File",name:"mapStroke",path:ua(ui)},{type:"Texture",name:"rotationBorder1",path:Ui},{type:"Texture",name:"rotationBorder2",path:Ki},{type:"Texture",name:"chinaBlurLine",path:qi},{type:"Texture",name:"ocean",path:Yi},{type:"Texture",name:"side",path:Qi},{type:"Texture",name:"pathLine3",path:Ji}],c=[{type:"Texture",name:"flyline",path:So},{type:"Texture",name:"pathLine",path:So},{type:"Texture",name:"pathLine2",path:Zi},{type:"Texture",name:"huiguang",path:Xi},{type:"Texture",name:"guangquan1",path:Mo},{type:"Texture",name:"guangquan2",path:er},{type:"Texture",name:"flyLineFocus",path:Mo},{type:"Texture",name:"mapFlyline",path:Tr},{type:"Texture",name:"arrow",path:tr},{type:"Texture",name:"point",path:ar},{type:"Texture",name:"focusArrows",path:or},{type:"Texture",name:"focusBar",path:nr},{type:"Texture",name:"focusBg",path:ir},{type:"Texture",name:"focusMidQuan",path:rr},{type:"Texture",name:"focusMoveBg",path:sr}],s=this.options.showDataOverlays===!1?i:[n,...i,...c];this.instance.loadAll(s)}}const Ir={class:"home-dashboard"},Fr={class:"home-bottom-switcher"},Er={class:"home-left"},Or={class:"home-side-stack is-left"},Br={class:"home-right"},Gr={class:"home-side-stack is-right"},Nr=["aria-label","onClick"],Rr={key:0,class:"home-video-monitor"},Hr=["disabled"],Dr=["data-video-index","onClick","onKeydown"],zr={key:0,class:"home-video-loading"},$r={key:1,class:"home-video-error"},Vr=["onClick"],jr={class:"home-video-point-name"},Wr=["disabled"],Ur={key:1,class:"home-forecast-trend-card"},Kr={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},qr=["onClick"],Yr={key:3,class:"home-balance-gauge-grid"},Qr={class:"home-balance-gauge-head"},Jr={class:"home-balance-gauge-ring"},Zr={class:"home-balance-gauge-value"},Xr={class:"home-balance-gauge-name"},es={class:"home-balance-gauge-extra"},ts={class:"home-more-dialog home-video-dialog"},as={class:"home-more-dialog-head"},os={key:0,class:"home-video-modal-grid"},ns=["data-video-index","onClick","onKeydown"],is={key:0,class:"home-video-loading"},rs={key:1,class:"home-video-error"},ss=["onClick"],ls={class:"home-video-point-name"},cs={key:1,class:"home-more-empty"},us={key:2,class:"home-more-pager"},ds=["disabled"],fs=["disabled"],hs={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},ms={class:"home-more-dialog home-balance-dialog"},ps={class:"home-more-dialog-head"},gs={class:"home-balance-modal-grid"},vs={class:"home-balance-modal-title"},ys={class:"home-balance-modal-value"},bs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",ws="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",xs=4,Ao="#ffffff",ut="#ffffff",dt="rgba(246, 253, 255, 0.92)",Ke="rgba(242, 253, 255, 0.9)",Ft="rgba(218, 250, 255, 0.28)",Ss=12e3,Ms=9.35,Fe="home-3d",ft=9,Ws={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(k,{expose:n,emit:i}){const c={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},s=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),f=k,p=i,h=G(null),m=G(null),b=G(null),C=G(null),S=new Map,O=G({}),x=new Map;let v=!1,I=!1,B=null,E=null;const R=new Map,ee=new Map,Et=new Set,Ot=new Map;let Me=null,Qe="",ya=!1,Je=0,te=null,Ze=!1,Bt=!1;const ke=new Map,pe=G(0),ae=G([]),Gt=G(0),ye=G(0),le=G(!1),ce=G(1),Xe=G(!1),oe=G(null),Nt=G(!1),Rt=G("month"),Ht=G(!1),ba=G(!1),U=G(""),_o=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=ii({}),Io=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],wa=vo.sideCardWidth,xa=G(typeof window=="undefined"?1080:window.innerHeight);vo.sideCardGap;const et=_(()=>Li(xa.value)),mt=_(()=>et.value),Fo=mt,Eo=Ni("2028"),Dt=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],pt=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92}],Oo={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},Sa={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},K=G(Fe),ue=G(null),Oe=G(!1),Be=G(!1),de=G(null),Z=_(()=>K.value!==Fe),Bo=_(()=>f.active&&!Z.value),Ma=_(()=>{var d,g,M;const e=K.value,t=Sa[e];if(!t)return null;const a=$i.find(P=>P.key===t.topicKey),o=Fn(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const r=Oo[e],l=t.legendKey?(o.legends||[]).find(P=>P.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(P=>(o.legends||[]).find(y=>y.key===P)).filter(Boolean):[];return t.type==="vector"?V(D({},o),{activeLegend:l||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=pt.find(P=>P.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(g=t.opacity)!=null?g:o.opacity,homePresentationMaxOpacity:(M=t.opacity)!=null?M:.96,showPointLabels:!1,hidePointFeatures:!1}):r?V(D({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:r.opacity,homePresentationMaxOpacity:r.maxOpacity,softMask:!1,homeGlowColor:r.glowColor,homeGlowBlur:r.glowBlur,homeGlowOpacity:r.glowOpacity,sldBody:En(o.layerName,r)}):null}),zt=_(()=>!!de.value),Go=fr,ka=_(()=>dr({point:de.value?Bn(de.value):null,rowCount:ue.value?ra(ue.value):0,loading:Be.value,empty:Oe.value||!ue.value})),No=_(()=>ka.value.height),Ro=_(()=>ka.value.style),Ho=_(()=>{var t;return{grassland:"草地详情",wetland:"湿地详情",woodland:"林地详情",yak:"牦牛识别详情"}[K.value]||`${((t=pt.find(a=>a.key===K.value))==null?void 0:t.name)||"地图"}详情`}),Pa=_(()=>ta(ma.length)),Ge=_(()=>ta(It.length)),Ca=_(()=>Cn(Rt.value)),Aa=_(()=>An(Eo,Ca.value.key)),tt=_(()=>ta(Aa.value.labels.length)),gt=_(()=>gr.filter(t=>t==null?void 0:t.name).map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",extra:`载畜 ${ie(t.livestockCapacity)}头`}))),$t=_(()=>{const e=gt.value,t=3,a=e.length?Math.floor(pe.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,r)=>e[(a+r)%e.length])}),Do=_(()=>{const e=$t.value.length;return e?pe.value%e:0}),vt={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:co,playUrl:"",hdPlayUrl:"",token:""};function at(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ne=_(()=>ae.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>at(e.live))),Vt=_(()=>{const e=Ne.value;if(!e.length)return 0;const t=q(ye.value),a=e.findIndex(r=>r.index===t),o=a>=0?a:0;return Xe.value||Ht.value||le.value?o:(Math.floor(pe.value/xs)+o)%e.length}),H=_(()=>{var e,t;return ae.value.length?le.value?q(ye.value):(t=(e=Ne.value[Vt.value])==null?void 0:e.index)!=null?t:0:0}),zo=_(()=>ae.value[H.value]||vt),La=_(()=>an(Ne.value,Vt.value,vt)),$o=_(()=>ae.value.filter(e=>at(e)).length),yt=_(()=>ae.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(at(t.live))-Number(at(e.live))||e.index-t.index)),bt=_(()=>Math.max(1,Math.ceil(yt.value.length/ft))),Ta=_(()=>{const e=(ce.value-1)*ft;return yt.value.slice(e,e+ft).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),Vo=_(()=>vr.map(e=>e.key==="today-outflow"?V(D({},e),{value:Gt.value}):e)),jo=_(()=>{const e=Mn();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:Pn(e,"生产力"),height:et.value}:null}),Wo=_(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:mt.value,option:oa({key:"yak-stock-distribution",rows:yr},"牦牛存栏",{showTrendLine:!0})})),Uo=_(()=>[aa(Le("grassland","grassland-town"),"草地面积"),aa(Le("wetland","wetland-town-area"),"湿地面积"),aa(Le("grassland","grassland-type-proportion"),"草原类别"),jo.value].filter(Boolean).map((e,t)=>kn(e,`forest-grass-wet-${t}`))),Ko=_(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:Fo.value,live:zo.value},Wo.value,{key:"yak-structure",title:"畜群结构",height:mt.value,option:qo.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:mt.value,max:100,rows:$t.value}]),qo=_(()=>ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:Io,tooltip:pa(e=>`${e.name}
    占比:${e.percent}%
    估算数量:${ie(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=ma.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:dt,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:ut,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:ma.map((e,t)=>({name:e.name,value:e.count,selected:t===Pa.value}))}]}));_(()=>ct({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:V(D({},pa()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=It[e[0].dataIndex];return`${t.label}
    预测存栏:${ie(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:It.map(e=>e.shortLabel),axisLabel:{color:Ke,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:Ke,fontSize:10,margin:4,formatter:e=>Za(e,1)},splitLine:{lineStyle:{color:Ft,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:It.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:t===Ge.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ge.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ge.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ge.value?16:8,shadowColor:t===Ge.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:ut,fontSize:10,formatter:({value:e})=>Za(e)}}]})),_(()=>{const e=Ca.value,t=Aa.value,a=_n(t),o=Ln(a.length,e.key);return ct({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:V(D({},pa()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(r){var M,P,y;const l=Array.isArray(r)?r:[r],u=l.find(T=>T.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(y=(P=u==null?void 0:u.dataIndex)!=null?P:(M=l[0])==null?void 0:M.dataIndex)!=null?y:0];if(!d)return"";const g=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${ie(d.close)}头`,`较上期:${In(g)}头`,`繁殖补充:${ie(d.birth)}头`,`出栏扣减:${ie(d.outflow)}头`].join("
    ")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:dt,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:Ke,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:Ke,fontSize:10,formatter:we},splitLine:{lineStyle:{color:Ft,type:"dashed"}}},{type:"value",axisLabel:{color:dt,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:Tn(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((r,l)=>({value:r.close,symbolSize:l===tt.value?7:3,itemStyle:{color:l===tt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},Ja("繁殖补充",t.births,"#8bf7ff",1,!1,tt.value),Ja("出栏扣减",t.outflow,"#48cfff",1,!1,tt.value)]})}),ai(()=>{na(),window.addEventListener("resize",na),window.addEventListener("keydown",eo),document.addEventListener("pointerdown",no,!0),document.addEventListener("click",Wa,!0),Ra(),jt()}),Lo(()=>{var e,t,a,o;v=!0,window.removeEventListener("resize",na),window.removeEventListener("keydown",eo),document.removeEventListener("pointerdown",no,!0),document.removeEventListener("click",Wa,!0),qa(),be(),Ut(),qt(),x.clear(),(t=(e=h.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=m.value)==null?void 0:a.destroyMap)==null||o.call(a),Zo()}),ht(H,()=>{if(!le.value){if(!Ht.value&&!ba.value&&!R.size){U.value="";return}be({resetError:!0})}}),ht(K,e=>{var t,a;if(ve(),e===Fe){(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),W(()=>{wt(),Pe()});return}Fa(),W(()=>{var o,r;(r=(o=h.value)==null?void 0:o.resume)==null||r.call(o)})}),ht(()=>f.active,e=>{var t,a;e?(jt(),Xo(),Ga(),ya||Oa()):(I=!1,(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),Fa(),Ut(),qt(),be({resetError:!0}),St(),Mt())});function jt(){I=!1,p("loading-progress",{progress:0}),W(()=>{var e,t,a,o;if(Z.value){(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)?Re():(o=(a=h.value)==null?void 0:a.loadMap)==null||o.call(a);return}wt()})}function wt(){if(!(v||!f.active||Z.value)){if(Ea()){Pe(),Re();return}if(Bt){Ia();return}Ze||(Ze=!0,te=new _r({showDataOverlays:!1}),te.instance.on("onProgress",Yo),te.instance.on("onLoad",_a),te.instance.on("onError",Qo),te.instance.loaded&&_a())}}function Yo(e,t,a){if(v||Z.value)return;const o=Math.max(1,Number(a)||1),r=Math.max(0,Number(t)||0);p("loading-progress",{progress:Math.min(98,Math.floor(r/o*92))})}function _a(){v||(Ze=!1,Bt=!0,p("loading-progress",{progress:96}),W(Ia))}function Qo(e){Ze=!1,console.warn("[home] 3D map assets load failed",e),Re()}function Ia(){var e,t,a,o;v||!f.active||Z.value||!te||((t=(e=m.value)==null?void 0:e.loadMap)==null||t.call(e,te),Pe(),(o=(a=m.value)==null?void 0:a.play)==null||o.call(a),Re())}function Pe(){var a,o,r,l,u,d,g,M;const e=m.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=Ea();(r=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||r.call(o),(l=t==null?void 0:t.resize)==null||l.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(M=(g=t==null?void 0:t.label3d)==null?void 0:g.update)==null||M.call(g)}function Fa(){var e,t;(t=(e=m.value)==null?void 0:e.pause)==null||t.call(e)}function Ea(){var t;const e=(t=m.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Jo(){Z.value||Re()}function Zo(){var e,t;(t=(e=te==null?void 0:te.instance)==null?void 0:e.destroy)==null||t.call(e),te=null,Ze=!1,Bt=!1}function Re(){v||I||(I=!0,p("loading-progress",{progress:100}),p("map-ready"),Oa())}function Wt(e={}){var t,a,o,r,l,u,d,g,M;if(!Z.value){Pe();return}if((a=(t=h.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(r=(o=h.value)==null?void 0:o.resetView)==null||r.call(o),(l=h.value)!=null&&l.resetView||(d=(u=h.value)==null?void 0:u.refreshView)==null||d.call(u);return}(M=(g=h.value)==null?void 0:g.refreshView)==null||M.call(g)}function Xo(){K.value!==Fe&&!Sa[K.value]&&(K.value=Fe);const e=()=>{if(!(v||!f.active)){if(Z.value){Wt({reset:!0});return}wt(),Pe()}};W(()=>{e(),window.setTimeout(e,180)})}function en(){var e,t;if(ve(),!Z.value){Pe();return}if((t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){Wt({reset:!0});return}jt(),W(()=>{var a,o;(o=(a=h.value)==null?void 0:a.resume)==null||o.call(a)})}function tn(){if(ve(),K.value===Fe){W(()=>{wt(),Pe()});return}K.value=Fe}n({refreshMapView:Wt,resetMap:en,showDefaultThreeMap:tn});function Oa(){Ut();const e=()=>{Me=null,Qe="",!(v||!f.active)&&(ya=!0,Sn(),rn(),on(),f.active&&Ga())};if(typeof window.requestIdleCallback=="function"){Qe="idle",Me=window.requestIdleCallback(e,{timeout:1800});return}Qe="timeout",Me=window.setTimeout(e,650)}function Ut(){Me&&(Qe==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Me):window.clearTimeout(Me),Me=null,Qe="")}function Kt(e,t){e&&(t?x.set(e,t):x.delete(e))}function Ba(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?S.set(a,e):S.delete(a)),t!=null&&t.isActive&&(b.value=e||null)}function an(e=[],t=0,a=vt){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const r=(t+o.length)%o.length,l=o[r],u=(l==null?void 0:l.live)||l||a,d=Number.isFinite(Number(l==null?void 0:l.index))?Number(l.index):r;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function Ga(){!f.active||v||(qt(),B=window.setInterval(Na,2600),E=window.setTimeout(Na,800))}function qt(){B&&(window.clearInterval(B),B=null),E&&(window.clearTimeout(E),E=null)}function Na(){v||!f.active||(E=null,pe.value+=1,bn(),wn(),xn())}function Ra(){p("module-stats",{moduleKey:"home",items:Vo.value})}function on(){return re(this,null,function*(){var t,a;const e=nn(new Date);try{const o=yield pr({year:Number(e.slice(0,4)),startDate:e,endDate:e}),r=(o==null?void 0:o.metrics)||{},l=Number((a=(t=r.headCount)!=null?t:r.head_count)!=null?a:0);Gt.value=Number.isFinite(l)?l:0}catch(o){Gt.value=0}v||Ra()})}function nn(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function rn(){return re(this,null,function*(){try{const e=yield ri({includeOffline:!0,includeHidden:!0});if(v)return;ae.value=e,ye.value=0,ce.value=1,Xe.value=!1,U.value=e.some(t=>at(t))?"":"暂无在线可播放摄像头"}catch(e){if(v)return;ae.value=[],U.value="监控接口暂不可用",window.setTimeout(()=>{v||U.value==="监控接口暂不可用"&&(U.value="")},2400)}})}function q(e){const t=ae.value.length;return t?((Number(e)||0)+t)%t:0}function ne(e){return String(q(e))}function Ha(e){const t=ne(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function ot(e){return ge[ne(e)]||{}}function nt(e){return`${_o}-${ne(e)}`}function Yt(e){return!!ot(e).playing}function xt(e){return!!ot(e).loading}function He(e){const t=ot(e).error;return t||(q(e)===H.value?U.value:"")}function Da(e){const t=ot(e);return!!(t.playing||t.loading)}function Ce(){const e=Object.values(ge);Ht.value=e.some(t=>t.playing),ba.value=e.some(t=>t.loading)}function za(e,t=!0,a=H.value){const o=(e==null?void 0:e.image)||co;return Yt(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function sn(){Va(-1)}function ln(){Va(1)}function cn(){const e=H.value;be({resetError:!0}),ye.value=e,Xe.value=!0,pe.value=0;const t=yt.value.findIndex(a=>a.index===e);ce.value=Math.floor(Math.max(0,t)/ft)+1,le.value=!0,W(()=>Jt())}function St(){le.value&&(be({resetError:!0}),le.value=!1)}function $a(e){var o,r;const t=Math.max(1,Math.min(bt.value,Number(e)||1));if(t===ce.value)return;be({resetError:!0}),ce.value=t;const a=(t-1)*ft;ye.value=(r=(o=yt.value[a])==null?void 0:o.index)!=null?r:0,W(()=>Jt())}function un(){Nt.value=!0}function Mt(){Nt.value=!1}function Va(e){var r,l;const t=Ne.value,a=t.length;if(!a)return;be({resetError:!0});const o=Vt.value;ye.value=(l=(r=t[(o+e+a)%a])==null?void 0:r.index)!=null?l:0,Xe.value=!0,pe.value=0}function Ae(e){if(!ae.value.length){pn();return}const a=q(e),o=ne(a),r=ot(a);if(ye.value=a,Xe.value=!0,pe.value=0,Et.has(o)||R.has(o)||(r.playing||r.loading)&&!r.error){ze(a);return}Et.add(o),W(()=>re(this,null,function*(){try{yield Ka(a,{stopOthers:!le.value})}finally{Et.delete(o)}}))}function ja(e,t){fn(t==null?void 0:t.target)||Ae(e)}function Wa(e){var r,l,u,d,g,M,P,y,T,L;const t=((l=(r=e==null?void 0:e.target)==null?void 0:r.closest)==null?void 0:l.call(r,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(N=>String((N==null?void 0:N.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((M=(g=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:g.dataset)==null?void 0:M.videoIndex),o=(P=oe.value)!=null?P:Number.isFinite(a)?a:H.value;(y=e.preventDefault)==null||y.call(e),(T=e.stopPropagation)==null||T.call(e),(L=e.stopImmediatePropagation)==null||L.call(e),dn(o)}function dn(e){return re(this,null,function*(){var r,l;const t=q(e);if(oe.value===t){kt();return}oe.value!==null&&kt();const a=document.getElementById(`${nt(t)}-wrap`);if(!a)return;oe.value=t,yield W();const o=(l=(r=C.value)==null?void 0:r.querySelector)==null?void 0:l.call(r,".home-video-web-player-slot");if(!o){oe.value=null;return}o.appendChild(a),ze(t),De(t)})}function kt(e={}){var r;const{restore:t=!0}=e,a=oe.value;if(a===null)return;const o=document.getElementById(`${nt(a)}-wrap`);if(t&&o){const l=Pt(a)||b.value,u=(r=l==null?void 0:l.querySelector)==null?void 0:r.call(l,".home-video-player-host");u&&u.appendChild(o)}oe.value=null,t&&W(()=>{ze(a),De(a)})}function fn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function hn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...gt.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function mn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function Ua(e){return{"--balance-color":mn(e),"--balance-progress":`${hn(e)}%`}}function pn(){return re(this,null,function*(){return Ka(H.value,{stopOthers:!le.value})})}function Ka(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,r=q(e),l=ae.value[r]||vt,u=ne(r);let d=Ha(r);if((l==null?void 0:l.status)!=="直播中"||!(l!=null&&l.hdPlayUrl)||!(l!=null&&l.token)){d.error=(l==null?void 0:l.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,r===H.value&&(U.value=d.error),Ce();return}if(R.has(u)||(d.playing||d.loading)&&!d.error)return;ye.value=r,pe.value=0,o?be({resetError:!0}):(R.has(u)||d.loading)&&it(r,{resetError:!0}),d=Ha(r),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,r===H.value&&(U.value=""),Ce(),yield W();const g=(ee.get(u)||0)+1;ee.set(u,g);let M=null;vn(r,g);try{const P=Pt(r)||b.value,y=nt(r);if(!gn(P,y))throw new Error("视频容器未就绪");const{width:T,height:L}=Ya(P,340,92);if(M=new si.EZUIKitPlayer({id:y,accessToken:l.token,url:l.hdPlayUrl,audio:0,width:T,height:L,themeData:yn(),handleError(N){g===ee.get(u)&&(rt(r),console.warn("EZUIKit player error",N),Zt(M),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,ee.set(u,g+1),R.delete(u),Xt(r),r===H.value&&(U.value=d.error),Ce())},handleSuccess(){g===ee.get(u)&&(rt(r),d.error="",d.ready=!0,d.loading=!1,r===H.value&&(U.value=""),ze(r),De(r),Qt(y),Ce())},fullScreenChangeCallBack(){}}),g!==ee.get(u)){Zt(M),Xt(r);return}R.set(u,M),d.playing=!0,Ce(),W(()=>{ze(r),De(r),Qt(y)})}catch(P){rt(r),console.warn("EZUIKit init error",P),d.error="视频加载失败",r===H.value&&(U.value=d.error),it(r,{resetError:!1})}})}function Qt(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function De(e=H.value,t=0){if(typeof window=="undefined")return;const a=q(e),o=ne(a),r=ke.get(o);t===0&&r&&window.cancelAnimationFrame(r);const l=window.requestAnimationFrame(()=>{ze(a),t<8?De(a,t+1):ke.delete(o)});ke.set(o,l)}function qa(e){if(typeof window!="undefined"){if(e!==void 0){const t=ne(e),a=ke.get(t);a&&window.cancelAnimationFrame(a),ke.delete(t);return}ke.forEach(t=>window.cancelAnimationFrame(t)),ke.clear()}}function Jt(){Array.from(R.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&De(t)})}function Ya(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),r=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,l=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(r||1)),height:Math.max(1,Math.floor(l||1))}}function Pt(e=H.value){if(typeof document=="undefined")return null;const t=q(e),a=le.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const r=S.get(t);return r!=null&&r.isConnected?r:null}function gn(e,t){var r;const a=(r=e==null?void 0:e.querySelector)==null?void 0:r.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function ze(e=H.value){var $e,Ve;if(typeof document=="undefined")return;const t=q(e),a=ne(t),o=nt(t),r=oe.value===t&&C.value?C.value:Pt(t)||b.value,l=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=l||u;if(!r||!d)return;const{width:g,height:M}=Ya(r),P=R.get(a);try{l&&u&&P&&typeof P.reSize=="function"?P.reSize(g,M):l&&u&&P&&typeof P.autoResize=="function"&&P.autoResize()}catch(j){console.warn("EZUIKit resize failed",j)}const y={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${g}px`,height:`${M}px`};Object.assign(d.style,y,{display:"block",verticalAlign:"top"}),l&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const T=document.getElementById(`EZUIKitPlayer-${o}`);T&&(T.setAttribute("width",String(g)),T.setAttribute("height",String(M)));const L=document.getElementById(`${o}-player`),N=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),Te=[d,u,L,N==null?void 0:N.parentElement,N,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from((($e=d==null?void 0:d.querySelectorAll)==null?void 0:$e.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((Ve=u==null?void 0:u.querySelectorAll)==null?void 0:Ve.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),T].filter(Boolean);Array.from(new Set(Te)).forEach(j=>{var st,Lt;(st=j.setAttribute)==null||st.call(j,"width",String(g)),(Lt=j.setAttribute)==null||Lt.call(j,"height",String(M)),Object.assign(j.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),Qt(o)}function be(e={}){Array.from(R.keys()).forEach(t=>{it(Number(t),e)}),Object.keys(ge).forEach(t=>{R.has(t)||it(Number(t),e)}),Ce()}function it(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,r=q(e),l=ne(r);qa(r),rt(r);const u=R.get(l);R.delete(l),ee.set(l,(ee.get(l)||0)+1),u&&Zt(u),a&&Xt(r);const d=ge[l];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[l]),r===H.value&&o&&(U.value=""),Ce()}function vn(e,t){const a=q(e),o=ne(a);rt(a);const r=window.setTimeout(()=>{const l=ge[o];t!==ee.get(o)||!(l!=null&&l.loading)||(l.error="视频加载超时",a===H.value&&(U.value=l.error),it(a,{resetError:!1}))},Ss);Ot.set(o,r)}function rt(e){const t=ne(e),a=Ot.get(t);a&&(window.clearTimeout(a),Ot.delete(t))}function Zt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function Xt(e=H.value){var d;if(typeof document=="undefined")return;const t=q(e),a=nt(t),o=document.getElementById(`${a}-wrap`),r=document.getElementById(a),l=Pt(t)||b.value,u=(d=l==null?void 0:l.querySelector)==null?void 0:d.call(l,".home-video-player-host");oe.value===t&&kt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),r!=null&&r.isConnected&&r.remove()}function yn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function bn(){const e=x.get("yak-structure");ea(e,"畜群结构",Pa.value)}function wn(){const e=x.get("yak-three-year-forecast");ea(e,"预测存栏",Ge.value)}function xn(){const e=x.get("yak-forecast-trend");ea(e,"预测存栏",tt.value)}function ea(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function ta(e){return e?pe.value%e:0}function Sn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Po("grassland","grassland-distribution"),Po("wetland","wetland-distribution")]);v||(O.value={grassland:e,wetland:t})})}function Le(e,t){const a=O.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(r=>(r==null?void 0:r.key)===t)}function aa(e,t){return e?V(D({},e),{title:t}):null}function Mn(){var M,P,y,T;const e=((M=Le("grassland","grassland-town"))==null?void 0:M.rows)||[],t=((P=Le("wetland","wetland-town-area"))==null?void 0:P.rows)||[],a=((y=Le("grassland","grassland-productivity-town"))==null?void 0:y.rows)||[],o=((T=Le("wetland","wetland-mu-yield"))==null?void 0:T.rows)||[],r=Ct(e),l=Ct(t),u=Ct(a),d=Ct(o);return[...new Set([...e,...t,...a,...o].map(L=>L==null?void 0:L.name).filter(Boolean))].map((L,N)=>{const $=r.get(L)||0,Te=l.get(L)||0,At=u.get(L)||0,$e=d.get(L)||0;let Ve=0,j=0;$>0&&At>0&&(Ve+=$*At,j+=$),Te>0&&$e>0&&(Ve+=Te*$e,j+=Te);const st=[At,$e].filter(sa=>sa>0),Lt=j>0?Ve/j:st.reduce((sa,Yn)=>sa+Yn,0)/Math.max(st.length,1);return{key:`home-pasture-productivity-${L}`,name:L,value:Number(Lt.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:N}}).filter(L=>L.value>0)}function Ct(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function kn(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title)}):a.includes("wetland-town-area")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title,{variant:"water"})}):V(D({},e),{key:`home-${t}-${e.key}`,height:et.value})}function oa(e,t,a={}){var P;const o=(e.rows||[]).filter(y=>Number.isFinite(Number(y.value))).slice(0,10),r=((P=o.find(y=>y.unit))==null?void 0:P.unit)||"万亩",l=o.map(y=>Number(y.value)||0),u=Math.max(...l,1),d=Math.ceil(u*1.14),g=a.showTrendLine===!0,M=a.variant==="water";return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${r}`,left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(y){var $;const T=Array.isArray(y)?y:[y],L=T.find(Te=>Te.seriesName===t)||T[0],N=o[($=L==null?void 0:L.dataIndex)!=null?$:0];return N?`${N.name}
    ${t}:${ie(N.value)}${N.unit||r}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(y=>y.name),axisLabel:{interval:0,hideOverlap:!1,color:Ao,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:Xa},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(y=>y.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Ft,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:M?10:6,stack:"b",z:3,data:o.map(y=>Number(y.value)||0),label:{show:!0,position:"top",distance:9,color:ut,fontSize:10,fontWeight:700,formatter:({value:y})=>we(y)},itemStyle:{borderRadius:M?[7,7,3,3]:2,color:new je(0,0,0,1,[...M?[{offset:0,color:"#a8fbff"},{offset:.42,color:"#31dcff"},{offset:1,color:"#2b8fff"}]:[{offset:0,color:"#19FFC6"},{offset:1,color:"#33AAFF"}]])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:M?"rgba(49, 220, 255, 0.18)":"rgba(25, 255, 198, 0.16)"}}},...g?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:l,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:ut,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],...M?[{name:"水柱顶",type:"pictorialBar",symbol:"circle",symbolSize:[18,7],symbolOffset:[0,-2],symbolPosition:"end",data:l,itemStyle:{color:"#a8fbff",opacity:.92,shadowBlur:3,shadowColor:"rgba(168, 251, 255, 0.18)"},tooltip:{show:!1},z:4}]:[{type:"custom",renderItem(y,T){const L=T.value(0),N=T.value(1),$=T.coord([L,N]);return{type:"image",style:{x:$[0]-4.5,y:$[1]-9,width:10,height:10,image:bs},silent:!0}},data:o.map((y,T)=>[T,Number(y.value)||0]),tooltip:{show:!1},z:4}],{type:"bar",barWidth:M?20:30,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:M?"rgba(58, 164, 215, 0.75)":"rgba(122, 140, 153, 0.6)",opacity:M?.12:.075},tooltip:{show:!1},z:0}]})}function Pn(e=[],t="数值"){var d;const a=e.filter(g=>Number.isFinite(Number(g.value))).slice(0,10),o=((d=a.find(g=>g.unit))==null?void 0:d.unit)||"",r=a.map(g=>Number(g.value)||0),l=Math.max(...r,1),u=Math.ceil(l*1.12);return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var T;const P=(Array.isArray(g)?g:[g])[0],y=a[(T=P==null?void 0:P.dataIndex)!=null?T:0];return y?`${y.name}
    ${t}:${ie(y.value)}${y.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(g=>g.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Ao,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:Xa}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:Ft,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,data:r,type:"line",smooth:!0,symbol:ws,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:ut,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new je(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new je(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function Qa(e){const t=String((e==null?void 0:e.key)||"");return t.includes("grassland-town")||t.includes("wetland-town-area")}function Ja(e,t,a,o=0,r=!1,l=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===l?10:5,itemStyle:{color:d===l?"#ffffff":a},label:{show:d===l,position:"top",color:a,fontSize:10,formatter:({value:g})=>we(g)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:r?{color:new je(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function Cn(e){return Dt.find(t=>t.key===e)||Dt[2]}function An(e,t="month"){if(t==="month")return Ri(e);const a=Hi(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),r=t==="week"?7:1,l=Math.ceil(o/r)+1,u=Array.from({length:l},(P,y)=>{const T=Math.min(o,y*r);return Di(T)}),d=u.map((P,y)=>{const L=Math.min(o,y*r)/o,N=Math.sin(y/(t==="week"?1.8:8.5))*Math.sin(Math.PI*L)*Math.min(360,e.months*18);return Math.round(xo+(e.stock-xo)*L+N)}),g=u.map((P,y)=>Math.round(e.births*(Math.min(o,y*r)/o))),M=u.map((P,y)=>Math.round(e.outflow*(Math.min(o,y*r)/o)));return{labels:u,stock:d,births:g,outflow:M}}function Ln(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function Tn(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function _n(e){return(e.labels||[]).map((t,a)=>{var P,y,T,L,N,$;const o=Number(((P=e.stock)==null?void 0:P[Math.max(a-1,0)])||0),r=Number(((y=e.stock)==null?void 0:y[a])||o),l=Math.max(0,Number(((T=e.births)==null?void 0:T[a])||0)-Number(((L=e.births)==null?void 0:L[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((N=e.outflow)==null?void 0:N[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((l+u)*.18)),g=Math.max(o,r)+Math.max(d,Math.round(l*.32)),M=Math.max(0,Math.min(o,r)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:r,low:M,high:g,birth:l,outflow:u,value:[o,r,M,g]}})}function ie(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function In(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${ie(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Za(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function Xa(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function Fn(e){if(!e)return null;const t=Vi(e.topicKey,e.layerKey);if(t)return t;const a=ji(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function En(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",r=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,l=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${r}${l}round`}function On(e){pt.some(t=>t.key===e)&&(K.value=e)}function eo(e){if(e.key==="Escape"){if(oe.value!==null){kt();return}St(),Mt()}}function na(){xa.value=typeof window=="undefined"?1080:window.innerHeight,Jt()}function Bn(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),r=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(r)?{x:960,y:540}:o>=0&&o<=1920&&r>=0&&r<=1080&&(o>a.width||r>a.height)?{x:o,y:r}:{x:(o-a.left)/a.width*1920,y:(r-a.top)/a.height*1080}}function ia(e,t){var a,o,r,l;return((o=(a=h.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((l=(r=h.value)==null?void 0:r.getVectorFeatureScreen)==null?void 0:l.call(r,e))||t}function Gn(){if(!zt.value||!ue.value)return;const e=ia(ue.value,de.value);if(!e)return;const t=de.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(de.value=e)}function ra(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>to(o,t[o])).length}function to(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!s.has(String(e||"").toLowerCase())}function ao(e={}){const t=String(K.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Nn(e={}){const t=oo(e.lng),a=oo(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function oo(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Rn(){return re(this,arguments,function*(e={}){var d,g,M,P,y,T;const t=Number((d=e==null?void 0:e.lngLat)==null?void 0:d.lng),a=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lat),o=Ma.value,r=ao(o);if(!Number.isFinite(t)||!Number.isFinite(a)||!r){ve();return}const l=++Je,u=e.screen||{x:960,y:540};de.value=null,ue.value=null,Oe.value=!1,Be.value=!0,(P=(M=h.value)==null?void 0:M.clearSelectedFeature)==null||P.call(M);try{const L=yield Hn(o,{lng:t,lat:a},r);if(l!==Je||v)return;if(!L){ve();return}ue.value=L,Oe.value=!1,(T=(y=h.value)==null?void 0:y.highlightFeature)==null||T.call(y,L,{highlightTone:"v21"}),de.value=ia(L,u)}catch(L){l===Je&&ve()}finally{l===Je&&(Be.value=!1)}})}function Hn(o,r){return re(this,arguments,function*(e,t,a=ao(e)){const l=Nn(t);if(!l)return null;let u=null;a==="grassland"?u=yield hr({wkt:l}):a==="wetland"?u=yield mr({wkt:l}):a==="woodland"&&(u=yield ur(l));const d=Dn(u,a);if(!$n(d))return null;const g=jn(d,e,t,a);return ra(g)>0?g:null})}function Dn(e,t){var o,r,l,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(r=e==null?void 0:e.data)==null?void 0:r.grassland,(l=e==null?void 0:e.data)==null?void 0:l.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const g=zn(d);if(g)return g}return null}function zn(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function $n(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Vn)?!0:Object.keys(e).some(t=>to(t,e[t]))}function Vn(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function jn(e,t,a,o){const r=Un(e),l=Wn(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:r,feature:{type:"Feature",properties:r,geometry:l},geometry:l,layer:t,lngLat:a}}function Wn(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Un(e={}){const t=D({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const r=o==null?void 0:o.value;if(r==null||r==="")return;const l=c[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Kn(u),l].filter(Boolean).forEach(g=>{(t[g]===void 0||t[g]===null||t[g]==="")&&(t[g]=r)})}),t}function Kn(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function qn(e){var a,o;const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||ra(t)<=0){ve();return}ue.value=t,Oe.value=!1,e!=null&&e.screen&&(de.value=ia(t,e.screen))}function ve(){var e,t;Je+=1,ue.value=null,Oe.value=!1,Be.value=!1,de.value=null,(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function no(e){if(!zt.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||ve()}return(e,t)=>(A(),F("div",Ir,[so(Tt(Lr,{ref_key:"threeMapSceneRef",ref:m,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,"max-pixel-ratio":1.35,onPlayComplete:Jo},null,512),[[lo,Bo.value]]),Z.value?so((A(),xe(di,{key:0,ref_key:"mapSceneRef",ref:h,class:"home-map-scene home-remote-map-scene",active:f.active&&Z.value,"active-layer":Ma.value,"admin-boundary-line-scale":2.4,"initial-zoom":Ms,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:Re,onFeatureLoading:t[0]||(t[0]=a=>Be.value=a),onFeatureInfo:qn,onMapClick:Rn,onViewChange:Gn},null,8,["active","active-layer"])),[[lo,Z.value]]):Y("",!0),t[12]||(t[12]=w("div",{class:"home-map-scrim"},null,-1)),w("div",Fr,[Tt(lr,{"model-value":K.value,topics:pt,"onUpdate:modelValue":On},null,8,["model-value"])]),zt.value?(A(),F("div",{key:1,class:"home-map-feature-info",style:lt(Ro.value)},[Tt(cr,{title:Ho.value,feature:ue.value,empty:Oe.value,loading:Be.value,width:We(Go),height:No.value,closable:"",onClose:ve},null,8,["title","feature","empty","loading","width","height"])],4)):Y("",!0),w("div",Er,[w("div",Or,[(A(!0),F(_e,null,Ie(Uo.value,a=>(A(),xe(uo,{key:a.key,class:"home-card left-card",title:a.title,width:We(wa),height:a.height},{default:la(()=>[a.option?(A(),xe(We(ca),{key:0,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(A(),xe(ko,{key:1,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),w("div",Br,[w("div",Gr,[(A(!0),F(_e,null,Ie(Ko.value,a=>(A(),xe(uo,{key:a.key,class:Ue(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:We(wa),height:a.height},{extra:la(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(A(),F("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?cn():un()},[...t[3]||(t[3]=[oi(" 更多 ",-1),w("span",{"aria-hidden":"true"},"›",-1)])],8,Nr)):Y("",!0)]),default:la(()=>[a.type==="video"?(A(),F("div",Rr,[w("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ne.value.length<=1,onClick:sn},"‹",8,Hr),w("div",{class:Ue(["home-video-grid",{"is-single":La.value.length<=1}])},[(A(!0),F(_e,null,Ie(La.value,o=>(A(),F("div",{key:o.key,ref_for:!0,ref:r=>Ba(r,o),"data-video-index":o.index,class:Ue(["home-video-screen",{"is-active":o.isActive,"is-playing":Yt(o.index),"is-loading":xt(o.index)}]),style:lt(za(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:r=>ja(o.index,r),onKeydown:[_t(Se(r=>Ae(o.index),["prevent"]),["enter"]),_t(Se(r=>Ae(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=w("div",{class:"home-video-player-host"},null,-1)),xt(o.index)?(A(),F("div",zr,"加载中")):Y("",!0),He(o.index)?(A(),F("div",$r,z(He(o.index)),1)):Y("",!0),o.live.hdPlayUrl&&(!Da(o.index)||He(o.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(r=>Ae(o.index),["stop"])},null,8,Vr)):Y("",!0),w("div",jr,z(o.live.title),1)],46,Dr))),128))],2),w("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ne.value.length<=1,onClick:ln},"›",8,Wr)])):a.key==="yak-forecast-trend"?(A(),F("div",Ur,[w("div",Kr,[(A(),F(_e,null,Ie(Dt,o=>w("button",{key:o.key,type:"button",class:Ue({active:o.key===Rt.value}),onClick:r=>Rt.value=o.key},z(o.label),11,qr)),64))]),Tt(We(ca),{ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(A(),xe(We(ca),{key:2,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(A(),F("div",Yr,[(A(!0),F(_e,null,Ie($t.value,(o,r)=>(A(),F("div",{key:o.key,class:Ue(["home-balance-gauge-card",{"is-active":r===Do.value}]),style:lt(Ua(o))},[w("div",Qr,[w("strong",null,z(o.status),1)]),w("div",Jr,[w("div",Zr,[w("strong",null,z(ie(o.value)),1),t[5]||(t[5]=w("em",null,"%",-1))])]),w("div",Xr,z(o.name),1),w("div",es,z(o.extra),1)],6))),128))])):(A(),xe(ko,{key:4,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),le.value?(A(),F("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Se(St,["self"])},[w("section",ts,[w("header",as,[w("div",null,[t[6]||(t[6]=w("h2",null,"基地监控",-1)),w("p",null,"共 "+z(ae.value.length)+" 路,在线 "+z($o.value)+" 路",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:St},"×")]),Ta.value.length?(A(),F("div",os,[(A(!0),F(_e,null,Ie(Ta.value,a=>(A(),F("div",{key:a.key,ref_for:!0,ref:o=>Ba(o,a),"data-video-index":a.index,class:Ue(["home-video-modal-item home-video-screen",{"is-active":a.index===H.value,"is-playing":Yt(a.index),"is-loading":xt(a.index),"is-offline":a.live.status!=="直播中"}]),style:lt(za(a.live,a.index===H.value,a.index)),role:"button",tabindex:"0",onClick:o=>ja(a.index,o),onKeydown:[_t(Se(o=>Ae(a.index),["prevent"]),["enter"]),_t(Se(o=>Ae(a.index),["prevent"]),["space"])]},[t[7]||(t[7]=w("div",{class:"home-video-player-host"},null,-1)),xt(a.index)?(A(),F("div",is,"加载中")):Y("",!0),He(a.index)?(A(),F("div",rs,z(He(a.index)),1)):Y("",!0),a.live.hdPlayUrl&&(!Da(a.index)||He(a.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(o=>Ae(a.index),["stop"])},null,8,ss)):Y("",!0),w("span",ls,z(a.live.title),1)],46,ns))),128))])):(A(),F("div",cs,"暂无监控数据")),bt.value>1?(A(),F("footer",us,[w("button",{type:"button",disabled:ce.value<=1,onClick:t[1]||(t[1]=a=>$a(ce.value-1))},"上一页",8,ds),w("span",null,z(ce.value)+" / "+z(bt.value),1),w("button",{type:"button",disabled:ce.value>=bt.value,onClick:t[2]||(t[2]=a=>$a(ce.value+1))},"下一页",8,fs)])):Y("",!0)])])):Y("",!0),(A(),xe(ni,{to:"body"},[oe.value!==null?(A(),F("div",hs,[w("div",{ref_key:"homeVideoWebStageRef",ref:C,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[8]||(t[8]=[w("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):Y("",!0)])),Nt.value?(A(),F("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Se(Mt,["self"])},[w("section",ms,[w("header",ps,[w("div",null,[t[9]||(t[9]=w("h2",null,"全县乡镇草畜平衡",-1)),w("p",null,"全部 "+z(gt.value.length)+" 个乡镇,超载率沿用草畜平衡结果库口径",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:Mt},"×")]),w("div",gs,[(A(!0),F(_e,null,Ie(gt.value,a=>(A(),F("article",{key:a.key,class:"home-balance-modal-item",style:lt(Ua(a))},[w("div",vs,[w("strong",null,z(a.name),1),w("span",null,z(a.status),1)]),w("div",ys,[w("strong",null,z(ie(a.value)),1),t[10]||(t[10]=w("em",null,"%",-1))]),t[11]||(t[11]=w("div",{class:"home-balance-modal-track"},[w("i")],-1)),w("p",null,z(a.extra),1)],4))),128))])])])):Y("",!0)]))}};export{Ws as default}; diff --git a/docs/assets/index-41e40dbf-1784045078568.js b/docs/assets/index-7950c07e-1784074877048.js similarity index 62% rename from docs/assets/index-41e40dbf-1784045078568.js rename to docs/assets/index-7950c07e-1784074877048.js index 2415c10..812b512 100644 --- a/docs/assets/index-41e40dbf-1784045078568.js +++ b/docs/assets/index-7950c07e-1784074877048.js @@ -1,4 +1,4 @@ -var Ii=Object.defineProperty,Ci=Object.defineProperties;var Li=Object.getOwnPropertyDescriptors;var la=Object.getOwnPropertySymbols;var Ri=Object.prototype.hasOwnProperty,Ti=Object.prototype.propertyIsEnumerable;var ua=(t,e,s)=>e in t?Ii(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Tt=(t,e)=>{for(var s in e||(e={}))Ri.call(e,s)&&ua(t,s,e[s]);if(la)for(var s of la(e))Ti.call(e,s)&&ua(t,s,e[s]);return t},kt=(t,e)=>Ci(t,Li(e));var ot=(t,e,s)=>new Promise((a,i)=>{var r=h=>{try{n(s.next(h))}catch(l){i(l)}},o=h=>{try{n(s.throw(h))}catch(l){i(l)}},n=h=>h.done?a(h.value):Promise.resolve(h.value).then(r,o);n((s=s.apply(t,e)).next())});import{g as ca}from"./index-e9f36657-1784045078568.js";/* empty css */import{_ as fa}from"./index-27149dbd-1784045078568.js";import{i as Pe,g as Oi,b as ga}from"./townshipBoundaries-1b068bef-1784045078568.js";import{r as Fi,n as ji}from"./index-6a8ef8cf-1784045078568.js";import{c as ki,F as qi,b as $i}from"./featurePanelLayout-5da16b00-1784045078568.js";import{A as Di}from"./assets-4a378a39-1784045078568.js";import{q as Ui,r as Bi,s as zi}from"./screen2Standard-98cd5b6c-1784045078568.js";import{M as Wi}from"./index-c252ce06-1784045078568.js";import{_ as Vi}from"./LayerPanel-67768a91-1784045078568.js";import{a as va,_ as Hi}from"./FeatureInfoPanel-b2a9b292-1784045078568.js";import{_ as Qi}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{_ as Ji,g as z,q as Ua,o as J,c as Y,a as L,t as ut,j as At,n as Ot,f as se,F as fs,y as gs,d as Q,h as Xi,w as es,A as ss,b as ae,C as Cs,x as da,u as as,J as _a,z as Ki}from"./index-1784045078568.js";import{b as is,e as Ls,r as Zi,a as Yi,p as tr,g as er,c as Rs,d as sr}from"./data-efed6b46-1784045078568.js";import"./data-5c83c66b-1784045078568.js";const ar="/openApi";function ir(t){return ot(this,null,function*(){const e=yield Fi(`${ar}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:t},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:t})}),s=ji(e);return nr(Array.isArray(s)?s[0]||{}:s||{})})}const rr={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function nr(t={}){return!t||typeof t!="object"?{}:Object.entries(t).reduce((e,[s,a])=>{e[s]=a;const i=rr[s];return i&&e[i]===void 0&&(e[i]=a),e},{})}function or(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var e=1;e<=60;++e)t("EPSG:"+(32600+e),"+proj=utm +zone="+e+" +datum=WGS84 +units=m"),t("EPSG:"+(32700+e),"+proj=utm +zone="+e+" +south +datum=WGS84 +units=m");t("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}var Jt=1,Xt=2,le=3,hr=4,qs=5,Ma=6378137,lr=6356752314e-3,ma=.0066943799901413165,Ne=484813681109536e-20,P=Math.PI/2,ur=.16666666666666666,cr=.04722222222222222,fr=.022156084656084655,p=1e-10,Z=.017453292519943295,yt=57.29577951308232,D=Math.PI/4,Re=Math.PI*2,tt=3.14159265359,wt={};wt.greenwich=0;wt.lisbon=-9.131906111111;wt.paris=2.337229166667;wt.bogota=-74.080916666667;wt.madrid=-3.687938888889;wt.rome=12.452333333333;wt.bern=7.439583333333;wt.jakarta=106.807719444444;wt.ferro=-17.666666666667;wt.brussels=4.367975;wt.stockholm=18.058277777778;wt.athens=23.7163375;wt.oslo=10.722916666667;const gr={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var ya=/[\s_\-\/\(\)]/g;function $t(t,e){if(t[e])return t[e];for(var s=Object.keys(t),a=e.toLowerCase().replace(ya,""),i=-1,r,o;++iArray.isArray(a)&&a[0]==="ID");return s&&s.length>=3?{authority:s[1],code:parseInt(s[2],10)}:null}static convertUnit(e,s="unit"){if(!e||e.length<3)return{type:s,name:"unknown",conversion_factor:null};const a=e[1],i=parseFloat(e[2])||null,r=e.find(n=>Array.isArray(n)&&n[0]==="ID"),o=r?{authority:r[1],code:parseInt(r[2],10)}:null;return{type:s,name:a,conversion_factor:i,id:o}}static convertAxis(e){const s=e[1]||"Unknown";let a;const i=s.match(/^\((.)\)$/);if(i){const l=i[1].toUpperCase();if(l==="E")a="east";else if(l==="N")a="north";else if(l==="U")a="up";else if(e[2])a=e[2];else throw new Error(`Unknown axis abbreviation: ${l}`)}else a=e[2]||"unknown";const r=e.find(l=>Array.isArray(l)&&l[0]==="ORDER"),o=r?parseInt(r[1],10):null,n=e.find(l=>Array.isArray(l)&&(l[0]==="LENGTHUNIT"||l[0]==="ANGLEUNIT"||l[0]==="SCALEUNIT")),h=this.convertUnit(n);return{name:s,direction:a,unit:h,order:o}}static extractAxes(e){return e.filter(s=>Array.isArray(s)&&s[0]==="AXIS").map(s=>this.convertAxis(s)).sort((s,a)=>(s.order||0)-(a.order||0))}static convert(e,s={}){switch(e[0]){case"PROJCRS":s.type="ProjectedCRS",s.name=e[1],s.base_crs=e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")):null,s.conversion=e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")):null;const a=e.find(u=>Array.isArray(u)&&u[0]==="CS");a&&(s.coordinate_system={type:a[1],axis:this.extractAxes(e)});const i=e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT");if(i){const u=this.convertUnit(i);s.coordinate_system.unit=u}s.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":s.type=e[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",s.name=e[1];const r=e.find(u=>Array.isArray(u)&&(u[0]==="DATUM"||u[0]==="ENSEMBLE"));if(r){const u=this.convert(r);r[0]==="ENSEMBLE"?s.datum_ensemble=u:s.datum=u;const m=e.find(w=>Array.isArray(w)&&w[0]==="PRIMEM");m&&m[1]!=="Greenwich"&&(u.prime_meridian={name:m[1],longitude:parseFloat(m[2])})}s.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},s.id=this.getId(e);break;case"DATUM":s.type="GeodeticReferenceFrame",s.name=e[1],s.ellipsoid=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":s.type="DatumEnsemble",s.name=e[1],s.members=e.filter(u=>Array.isArray(u)&&u[0]==="MEMBER").map(u=>({type:"DatumEnsembleMember",name:u[1],id:this.getId(u)}));const o=e.find(u=>Array.isArray(u)&&u[0]==="ENSEMBLEACCURACY");o&&(s.accuracy=parseFloat(o[1]));const n=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID");n&&(s.ellipsoid=this.convert(n)),s.id=this.getId(e);break;case"ELLIPSOID":s.type="Ellipsoid",s.name=e[1],s.semi_major_axis=parseFloat(e[2]),s.inverse_flattening=parseFloat(e[3]),e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT")&&this.convert(e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT"),s);break;case"CONVERSION":s.type="Conversion",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&u[0]==="PARAMETER").map(u=>this.convert(u));break;case"METHOD":s.type="Method",s.name=e[1],s.id=this.getId(e);break;case"PARAMETER":s.type="Parameter",s.name=e[1],s.value=parseFloat(e[2]),s.unit=this.convertUnit(e.find(u=>Array.isArray(u)&&(u[0]==="LENGTHUNIT"||u[0]==="ANGLEUNIT"||u[0]==="SCALEUNIT"))),s.id=this.getId(e);break;case"BOUNDCRS":s.type="BoundCRS";const h=e.find(u=>Array.isArray(u)&&u[0]==="SOURCECRS");if(h){const u=h.find(m=>Array.isArray(m));s.source_crs=u?this.convert(u):null}const l=e.find(u=>Array.isArray(u)&&u[0]==="TARGETCRS");if(l){const u=l.find(m=>Array.isArray(m));s.target_crs=u?this.convert(u):null}const g=e.find(u=>Array.isArray(u)&&u[0]==="ABRIDGEDTRANSFORMATION");g?s.transformation=this.convert(g):s.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(s.type="Transformation",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&(u[0]==="PARAMETER"||u[0]==="PARAMETERFILE")).map(u=>{if(u[0]==="PARAMETER")return this.convert(u);if(u[0]==="PARAMETERFILE")return{name:u[1],value:u[2],id:{authority:"EPSG",code:8656}}}),s.parameters.length===7){const u=s.parameters[6];u.name==="Scale difference"&&(u.value=Math.round((u.value-1)*1e12)/1e6)}s.id=this.getId(e);break;case"AXIS":s.coordinate_system||(s.coordinate_system={type:"unspecified",axis:[]}),s.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":const f=this.convertUnit(e,"LinearUnit");s.coordinate_system&&s.coordinate_system.axis&&s.coordinate_system.axis.forEach(u=>{u.unit||(u.unit=f)}),f.conversion_factor&&f.conversion_factor!==1&&s.semi_major_axis&&(s.semi_major_axis={value:s.semi_major_axis,unit:f});break;default:s.keyword=e[0];break}return s}}class vr extends Ba{static convert(e,s={}){return super.convert(e,s),s.coordinate_system&&s.coordinate_system.subtype==="Cartesian"&&delete s.coordinate_system,s.usage&&delete s.usage,s}}class dr extends Ba{static convert(e,s={}){super.convert(e,s);const a=e.find(r=>Array.isArray(r)&&r[0]==="CS");a&&(s.coordinate_system={subtype:a[1],axis:this.extractAxes(e)});const i=e.find(r=>Array.isArray(r)&&r[0]==="USAGE");if(i){const r=i.find(h=>Array.isArray(h)&&h[0]==="SCOPE"),o=i.find(h=>Array.isArray(h)&&h[0]==="AREA"),n=i.find(h=>Array.isArray(h)&&h[0]==="BBOX");s.usage={},r&&(s.usage.scope=r[1]),o&&(s.usage.area=o[1]),n&&(s.usage.bbox=n.slice(1))}return s}}function _r(t){return t.find(e=>Array.isArray(e)&&e[0]==="USAGE")?"2019":(t.find(e=>Array.isArray(e)&&e[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function Mr(t){return(_r(t)==="2019"?dr:vr).convert(t)}function mr(t){const e=t.toUpperCase();return e.includes("PROJCRS")||e.includes("GEOGCRS")||e.includes("BOUNDCRS")||e.includes("VERTCRS")||e.includes("LENGTHUNIT")||e.includes("ANGLEUNIT")||e.includes("SCALEUNIT")?"WKT2":(e.includes("PROJCS")||e.includes("GEOGCS")||e.includes("LOCAL_CS")||e.includes("VERT_CS")||e.includes("UNIT"),"WKT1")}var Te=1,za=2,Wa=3,vs=4,Va=5,Vs=-1,yr=/\s/,wr=/[A-Za-z]/,Er=/[A-Za-z84_]/,Ss=/[,\]]/,Ha=/[\d\.E\-\+]/;function Ft(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=Te}Ft.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==vs)for(;yr.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case Te:return this.neutral(t);case za:return this.keyword(t);case vs:return this.quoted(t);case Va:return this.afterquote(t);case Wa:return this.number(t);case Vs:return}};Ft.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=vs;return}if(Ss.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};Ft.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=Te;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=Te,this.currentObject=this.stack.pop(),this.currentObject||(this.state=Vs);return}};Ft.prototype.number=function(t){if(Ha.test(t)){this.word+=t;return}if(Ss.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};Ft.prototype.quoted=function(t){if(t==='"'){this.state=Va;return}this.word+=t};Ft.prototype.keyword=function(t){if(Er.test(t)){this.word+=t;return}if(t==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=Te;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};Ft.prototype.neutral=function(t){if(wr.test(t)){this.word=t,this.state=za;return}if(t==='"'){this.word="",this.state=vs;return}if(Ha.test(t)){this.word=t,this.state=Wa;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};Ft.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(e==="polar stereographic"||e==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=St(t.lat0>0?90:-90),delete t.lat1)}function wa(t){let e={units:null,to_meter:void 0};return typeof t=="string"?(e.units=t.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.units==="meter"&&(e.to_meter=1)):t&&t.name&&(e.units=t.name.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.to_meter=t.conversion_factor),e}function Ea(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Sa(t,e){t.ellipsoid.radius?(e.a=t.ellipsoid.radius,e.rf=0):(e.a=Ea(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?e.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(e.rf=e.a/(e.a-Ea(t.ellipsoid.semi_minor_axis))))}function ds(t,e={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(ds(t.source_crs,e),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?e.nadgrids=t.transformation.parameters[0].value:e.datum_params=t.transformation.parameters.map(s=>s.value)),e):(Object.keys(t).forEach(s=>{const a=t[s];if(a!==null)switch(s){case"name":if(e.srsCode)break;e.name=a,e.srsCode=a;break;case"type":a==="GeographicCRS"?e.projName="longlat":a==="GeodeticCRS"?t.coordinate_system&&t.coordinate_system.subtype==="Cartesian"?e.projName="geocent":e.projName="longlat":a==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(e.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":a.ellipsoid&&(e.ellps=a.ellipsoid.name,Sa(a,e)),a.prime_meridian&&(e.from_greenwich=a.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":e.ellps=a.name,Sa(a,e);break;case"prime_meridian":e.long0=(a.longitude||0)*Math.PI/180;break;case"coordinate_system":if(a.axis){const i={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},r=a.axis.map(o=>i[o.direction.toLowerCase()]);if(r.every(Boolean)&&(e.axis=r.join(""),e.axis.length===2&&(e.axis+="u")),a.unit){const{units:o,to_meter:n}=wa(a.unit);e.units=o,e.to_meter=n}else if(a.axis[0]&&a.axis[0].unit){const{units:o,to_meter:n}=wa(a.axis[0].unit);e.units=o,e.to_meter=n}}break;case"id":a.authority&&a.code&&(e.title=a.authority+":"+a.code);break;case"conversion":a.method&&a.method.name&&(e.projName=a.method.name),a.parameters&&a.parameters.forEach(i=>{const r=i.name.toLowerCase().replace(/\s+/g,"_"),o=i.value;i.unit&&i.unit.conversion_factor?e[r]=o*i.unit.conversion_factor:i.unit==="degree"?e[r]=o*Math.PI/180:e[r]=o});break;case"unit":a.name&&(e.units=a.name.toLowerCase(),e.units==="metre"&&(e.units="meter")),a.conversion_factor&&(e.to_meter=a.conversion_factor);break;case"base_crs":ds(a,e),e.datumCode=a.id?a.id.authority+"_"+a.id.code:a.name;break}}),e.latitude_of_false_origin!==void 0&&(e.lat0=e.latitude_of_false_origin),e.longitude_of_false_origin!==void 0&&(e.long0=e.longitude_of_false_origin),e.latitude_of_standard_parallel!==void 0&&(e.lat0=e.latitude_of_standard_parallel,e.lat1=e.latitude_of_standard_parallel),e.latitude_of_1st_standard_parallel!==void 0&&(e.lat1=e.latitude_of_1st_standard_parallel),e.latitude_of_2nd_standard_parallel!==void 0&&(e.lat2=e.latitude_of_2nd_standard_parallel),e.latitude_of_projection_centre!==void 0&&(e.lat0=e.latitude_of_projection_centre),e.longitude_of_projection_centre!==void 0&&(e.longc=e.longitude_of_projection_centre),e.easting_at_false_origin!==void 0&&(e.x0=e.easting_at_false_origin),e.northing_at_false_origin!==void 0&&(e.y0=e.northing_at_false_origin),e.latitude_of_natural_origin!==void 0&&(e.lat0=e.latitude_of_natural_origin),e.longitude_of_natural_origin!==void 0&&(e.long0=e.longitude_of_natural_origin),e.longitude_of_origin!==void 0&&(e.long0=e.longitude_of_origin),e.false_easting!==void 0&&(e.x0=e.false_easting),e.easting_at_projection_centre&&(e.x0=e.easting_at_projection_centre),e.false_northing!==void 0&&(e.y0=e.false_northing),e.northing_at_projection_centre&&(e.y0=e.northing_at_projection_centre),e.standard_parallel_1!==void 0&&(e.lat1=e.standard_parallel_1),e.standard_parallel_2!==void 0&&(e.lat2=e.standard_parallel_2),e.scale_factor_at_natural_origin!==void 0&&(e.k0=e.scale_factor_at_natural_origin),e.scale_factor_at_projection_centre!==void 0&&(e.k0=e.scale_factor_at_projection_centre),e.scale_factor_on_pseudo_standard_parallel!==void 0&&(e.k0=e.scale_factor_on_pseudo_standard_parallel),e.azimuth!==void 0&&(e.alpha=e.azimuth),e.azimuth_at_projection_centre!==void 0&&(e.alpha=e.azimuth_at_projection_centre),e.angle_from_rectified_to_skew_grid&&(e.rectified_grid_angle=e.angle_from_rectified_to_skew_grid),Qa(e),e)}var xr=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function pr(t,e){var s=e[0],a=e[1];!(s in t)&&a in t&&(t[s]=t[a],e.length===3&&(t[s]=e[2](t[s])))}function Ja(t){for(var e=Object.keys(t),s=0,a=e.length;s-1;var e=$t(t,"authority");if(e){var s=$t(e,"epsg");return s&&Pa.indexOf(s)>-1}}function Cr(t){var e=$t(t,"extension");if(e)return $t(e,"proj4")}function Lr(t){return t[0]==="+"}function Rr(t){let e;if(Gr(t))if(Nr(t))e=ht[t];else if(Ar(t)){e=_s(t);var s=Cr(e);s&&(e=$s(s))}else Lr(t)&&(e=$s(t));else"projName"in t?e=t:e=_s(t);return e&&Ir(e)?ht["EPSG:3857"]:e}function xa(t,e){t=t||{};var s,a;if(!e)return t;for(a in e)s=e[a],s!==void 0&&(t[a]=s);return t}function Ct(t,e,s){var a=t*e;return s/Math.sqrt(1-a*a)}function ke(t){return t<0?-1:1}function G(t,e){return e||Math.abs(t)<=tt?t:t-ke(t)*Re}function Gt(t,e,s){var a=t*s,i=.5*t;return a=Math.pow((1-a)/(1+a),i),Math.tan(.5*(P-e))/a}function Oe(t,e){for(var s=.5*t,a,i,r=P-2*Math.atan(e),o=0;o<=15;o++)if(a=t*Math.sin(r),i=P-2*Math.atan(e*Math.pow((1-a)/(1+a),s))-r,r+=i,Math.abs(i)<=1e-10)return r;return-9999}function Tr(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=Ct(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function Or(t){var e=t.x,s=t.y;if(s*yt>90&&s*yt<-90&&e*yt>180&&e*yt<-180)return null;var a,i;if(Math.abs(Math.abs(s)-P)<=p)return null;if(this.sphere)a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0+this.a*this.k0*Math.log(Math.tan(D+.5*s));else{var r=Math.sin(s),o=Gt(this.e,s,r);a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=a,t.y=i,t}function Fr(t){var e=t.x-this.x0,s=t.y-this.y0,a,i;if(this.sphere)i=P-2*Math.atan(Math.exp(-s/(this.a*this.k0)));else{var r=Math.exp(-s/(this.a*this.k0));if(i=Oe(this.e,r),i===-9999)return null}return a=G(this.long0+e/(this.a*this.k0),this.over),t.x=a,t.y=i,t}var jr=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const kr={init:Tr,forward:Or,inverse:Fr,names:jr};function qr(){}function pa(t){return t}var Xa=["longlat","identity"];const $r={init:qr,forward:pa,inverse:pa,names:Xa};var Dr=[kr,$r],Ht={},ne=[];function Ka(t,e){var s=ne.length;return t.names?(ne[s]=t,t.names.forEach(function(a){Ht[a.toLowerCase()]=s}),this):(console.log(e),!0)}function Za(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function Ur(t){if(!t)return!1;var e=t.toLowerCase();if(typeof Ht[e]!="undefined"&&ne[Ht[e]]||(e=Za(e),e in Ht&&ne[Ht[e]]))return ne[Ht[e]]}function Br(){Dr.forEach(Ka)}const zr={start:Br,add:Ka,get:Ur};var Ya={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Wr=Ya.WGS84;function Vr(t,e,s,a){var i=t*t,r=e*e,o=(i-r)/i,n=0;a?(t*=1-o*(ur+o*(cr+o*fr)),i=t*t,o=0):n=Math.sqrt(o);var h=(i-r)/r;return{es:o,e:n,ep2:h}}function Hr(t,e,s,a,i){if(!t){var r=$t(Ya,a);r||(r=Wr),t=r.a,e=r.b,s=r.rf}return s&&!e&&(e=(1-1/s)*t),(s===0||Math.abs(t-e)3&&(n.datum_params[3]!==0||n.datum_params[4]!==0||n.datum_params[5]!==0||n.datum_params[6]!==0)&&(n.datum_type=Xt,n.datum_params[3]*=Ne,n.datum_params[4]*=Ne,n.datum_params[5]*=Ne,n.datum_params[6]=n.datum_params[6]/1e6+1)),o&&(n.datum_type=le,n.grids=o),n.a=s,n.b=a,n.es=i,n.ep2=r,n}var Hs={};function Xr(t,e,s){return e instanceof ArrayBuffer?Kr(t,e,s):{ready:Zr(t,e)}}function Kr(t,e,s){var a=!0;s!==void 0&&s.includeErrorFields===!1&&(a=!1);var i=new DataView(e),r=en(i),o=sn(i,r),n=an(i,o,r,a),h={header:o,subgrids:n};return Hs[t]=h,h}function Zr(t,e){return ot(this,null,function*(){for(var s=[],a=yield e.getImageCount(),i=a-1;i>=0;i--){var r=yield e.getImage(i),o=yield r.readRasters(),n=o,h=[r.getWidth(),r.getHeight()],l=r.getBoundingBox().map(ba),g=typeof r.fileDirectory.getValue=="function"?r.fileDirectory.getValue("ModelPixelScale"):r.fileDirectory.ModelPixelScale,f=[g[0],g[1]].map(ba),u=l[0]+(h[0]-1)*f[0],m=l[3]-(h[1]-1)*f[1],w=n[0],E=n[1],S=[];for(let I=h[1]-1;I>=0;I--)for(let R=h[0]-1;R>=0;R--){var b=I*h[0]+R;S.push([-qt(E[b]),qt(w[b])])}s.push({del:f,lim:h,ll:[-u,m],cvs:S})}var A={header:{nSubgrids:a},subgrids:s};return Hs[t]=A,A})}function Yr(t){if(t===void 0)return null;var e=t.split(",");return e.map(tn)}function tn(t){if(t.length===0)return null;var e=t[0]==="@";return e&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Hs[t]||null,isNull:!1}}function ba(t){return t*Math.PI/180}function qt(t){return t/3600*Math.PI/180}function en(t){var e=t.getInt32(8,!1);return e===11?!1:(e=t.getInt32(8,!0),e!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function sn(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Ds(t,56,56+8).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Ds(t,e,s){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,s)))}function an(t,e,s,a){for(var i=176,r=[],o=0;o5e-11?!1:t.datum_type===Jt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type===Xt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]:!0}function ti(t,e,s){var a=t.x,i=t.y,r=t.z?t.z:0,o,n,h,l;if(i<-P&&i>-1.001*P)i=-P;else if(i>P&&i<1.001*P)i=P;else{if(i<-P)return{x:-1/0,y:-1/0,z:t.z};if(i>P)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),n=Math.sin(i),l=Math.cos(i),h=n*n,o=s/Math.sqrt(1-e*h),{x:(o+r)*l*Math.cos(a),y:(o+r)*l*Math.sin(a),z:(o*(1-e)+r)*n}}function ei(t,e,s,a){var i=1e-12,r=i*i,o=30,n,h,l,g,f,u,m,w,E,S,b,A,I,R=t.x,j=t.y,O=t.z?t.z:0,F,K,W;if(n=Math.sqrt(R*R+j*j),h=Math.sqrt(R*R+j*j+O*O),n/sr&&Ia.y||m>a.x||Sn&&Math.abs(h.y)>n);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=G(r.x+s.ll[0]),a.y=r.y+s.ll[1]}else isNaN(r.x)||(a.x=t.x+r.x,a.y=t.y+r.y);return a}function Na(t,e){var s={x:t.x/e.del[0],y:t.y/e.del[1]},a={x:Math.floor(s.x),y:Math.floor(s.y)},i={x:s.x-1*a.x,y:s.y-1*a.y},r={x:Number.NaN,y:Number.NaN},o;if(a.x<0||a.x>=e.lim[0]||a.y<0||a.y>=e.lim[1])return r;o=a.y*e.lim[0]+a.x;var n={x:e.cvs[o][0],y:e.cvs[o][1]};o++;var h={x:e.cvs[o][0],y:e.cvs[o][1]};o+=e.lim[0];var l={x:e.cvs[o][0],y:e.cvs[o][1]};o--;var g={x:e.cvs[o][0],y:e.cvs[o][1]},f=i.x*i.y,u=i.x*(1-i.y),m=(1-i.x)*(1-i.y),w=(1-i.x)*i.y;return r.x=m*n.x+u*h.x+w*g.x+f*l.x,r.y=m*n.y+u*h.y+w*g.y+f*l.y,r}var Qt=["x","y","z"];function gn(t,e){const s={};for(let a=0,i=t.axis.length;a2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function dn(t){Aa(t.x),Aa(t.y)}function Aa(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function _n(t,e){return(t.datum.datum_type===Jt||t.datum.datum_type===Xt||t.datum.datum_type===le)&&e.datumCode!=="WGS84"||(e.datum.datum_type===Jt||e.datum.datum_type===Xt||e.datum.datum_type===le)&&t.datumCode!=="WGS84"}function Ms(t,e,s,a){var i,r=s.z!==void 0;if(dn(s),t.datum&&e.datum&&_n(t,e)&&(i=new xt("WGS84"),s=Ms(t,i,s,a),t=i),a&&t.axis!=="enu"&&(s=gn(t,s)),t.projName==="longlat")s={x:s.x*Z,y:s.y*Z,z:s.z||0};else if(t.to_meter&&(s={x:s.x*t.to_meter,y:s.y*t.to_meter,z:s.z||0}),s=t.inverse(s),!s)return;if(t.from_greenwich&&(s.x+=t.from_greenwich),s=cn(t.datum,e.datum,s),!!s)return s=s,e.from_greenwich&&(s={x:s.x-e.from_greenwich,y:s.y,z:s.z||0}),e.projName==="longlat"?s={x:s.x*yt,y:s.y*yt,z:s.z||0}:(s=e.forward(s),e.to_meter&&(s={x:s.x/e.to_meter,y:s.y/e.to_meter,z:s.z||0})),a&&e.axis!=="enu"?vn(e,s):(s&&!r&&e.projName!=="geocent"&&delete s.z,s)}function Mn(t,e,s,a){var i;return Array.isArray(s)?i=Qs(s):i={x:s.x,y:s.y,z:s.z,m:s.m},Ms(t,e,i,a)}var Ia=xt("WGS84");function Fs(t,e,s,a){var i,r,o;return Array.isArray(s)?(i=Ms(t,e,Qs(s),a)||{x:NaN,y:NaN},s.length>2?(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",r?typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y,s[2]].concat(s.slice(3)):a&&typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y].concat(s.slice(2))):[i.x,i.y]):(i=Ms(t,e,{x:s.x,y:s.y,z:s.z,m:s.m},a)||{x:NaN,y:NaN},o=Object.keys(s),o.length===2||(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",o.forEach(function(n){n==="x"||n==="y"||n==="z"&&(r||a)||(i[n]=s[n])})),i)}function ns(t){return t instanceof xt?t:typeof t=="object"&&"oProj"in t?t.oProj:xt(t)}function mn(t,e,s){var a,i,r=!1,o;return typeof e=="undefined"?(i=ns(t),a=Ia,r=!0):(typeof e.x!="undefined"||Array.isArray(e))&&(s=e,i=ns(t),a=Ia,r=!0),a||(a=ns(t)),i||(i=ns(e)),s?Fs(a,i,s):(o={forward:function(n,h){return Fs(a,i,n,h)},inverse:function(n,h){return Fs(i,a,n,h)}},r&&(o.oProj=i),o)}var Ca=6,si="AJSAJS",ai="AFAFAF",oe=65,Mt=73,Pt=79,pe=86,be=90;const yn={forward:ii,inverse:wn,toPoint:ri};function ii(t,e){return e=e||5,Pn(En({lat:t[1],lon:t[0]}),e)}function wn(t){var e=Js(oi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function ri(t){var e=Js(oi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function js(t){return t*(Math.PI/180)}function La(t){return 180*(t/Math.PI)}function En(t){var e=t.lat,s=t.lon,a=6378137,i=.00669438,r=.9996,o,n,h,l,g,f,u,m=js(e),w=js(s),E,S;S=Math.floor((s+180)/6)+1,s===180&&(S=60),e>=56&&e<64&&s>=3&&s<12&&(S=32),e>=72&&e<84&&(s>=0&&s<9?S=31:s>=9&&s<21?S=33:s>=21&&s<33?S=35:s>=33&&s<42&&(S=37)),o=(S-1)*6-180+3,E=js(o),n=i/(1-i),h=a/Math.sqrt(1-i*Math.sin(m)*Math.sin(m)),l=Math.tan(m)*Math.tan(m),g=n*Math.cos(m)*Math.cos(m),f=Math.cos(m)*(w-E),u=a*((1-i/4-3*i*i/64-5*i*i*i/256)*m-(3*i/8+3*i*i/32+45*i*i*i/1024)*Math.sin(2*m)+(15*i*i/256+45*i*i*i/1024)*Math.sin(4*m)-35*i*i*i/3072*Math.sin(6*m));var b=r*h*(f+(1-l+g)*f*f*f/6+(5-18*l+l*l+72*g-58*n)*f*f*f*f*f/120)+5e5,A=r*(u+h*Math.tan(m)*(f*f/2+(5-l+9*g+4*g*g)*f*f*f*f/24+(61-58*l+l*l+600*g-330*n)*f*f*f*f*f*f/720));return e<0&&(A+=1e7),{northing:Math.round(A),easting:Math.round(b),zoneNumber:S,zoneLetter:Sn(e)}}function Js(t){var e=t.northing,s=t.easting,a=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var r=.9996,o=6378137,n=.00669438,h,l=(1-Math.sqrt(1-n))/(1+Math.sqrt(1-n)),g,f,u,m,w,E,S,b,A,I=s-5e5,R=e;a<"N"&&(R-=1e7),S=(i-1)*6-180+3,h=n/(1-n),E=R/r,b=E/(o*(1-n/4-3*n*n/64-5*n*n*n/256)),A=b+(3*l/2-27*l*l*l/32)*Math.sin(2*b)+(21*l*l/16-55*l*l*l*l/32)*Math.sin(4*b)+151*l*l*l/96*Math.sin(6*b),g=o/Math.sqrt(1-n*Math.sin(A)*Math.sin(A)),f=Math.tan(A)*Math.tan(A),u=h*Math.cos(A)*Math.cos(A),m=o*(1-n)/Math.pow(1-n*Math.sin(A)*Math.sin(A),1.5),w=I/(g*r);var j=A-g*Math.tan(A)/m*(w*w/2-(5+3*f+10*u-4*u*u-9*h)*w*w*w*w/24+(61+90*f+298*u+45*f*f-252*h-3*u*u)*w*w*w*w*w*w/720);j=La(j);var O=(w-(1+2*f+u)*w*w*w/6+(5-2*u+28*f-3*u*u+8*h+24*f*f)*w*w*w*w*w/120)/Math.cos(A);O=S+La(O);var F;if(t.accuracy){var K=Js({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});F={top:K.lat,right:K.lon,bottom:j,left:O}}else F={lat:j,lon:O};return F}function Sn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function Pn(t,e){var s="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+xn(t.easting,t.northing,t.zoneNumber)+s.substr(s.length-5,e)+a.substr(a.length-5,e)}function xn(t,e,s){var a=ni(s),i=Math.floor(t/1e5),r=Math.floor(e/1e5)%20;return pn(i,r,a)}function ni(t){var e=t%Ca;return e===0&&(e=Ca),e}function pn(t,e,s){var a=s-1,i=si.charCodeAt(a),r=ai.charCodeAt(a),o=i+t-1,n=r+e,h=!1;o>be&&(o=o-be+oe-1,h=!0),(o===Mt||iMt||(o>Mt||iPt||(o>Pt||ibe&&(o=o-be+oe-1),n>pe?(n=n-pe+oe-1,h=!0):h=!1,(n===Mt||rMt||(n>Mt||rPt||(n>Pt||rpe&&(n=n-pe+oe-1);var l=String.fromCharCode(o)+String.fromCharCode(n);return l}function oi(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var e=t.length,s=null,a="",i,r=0;!/[A-Z]/.test(i=t.charAt(r));){if(r>=2)throw"MGRSPoint bad conversion from: "+t;a+=i,r++}var o=parseInt(a,10);if(r===0||r+3>e)throw"MGRSPoint bad conversion from: "+t;var n=t.charAt(r++);if(n<="A"||n==="B"||n==="Y"||n>="Z"||n==="I"||n==="O")throw"MGRSPoint zone letter "+n+" not handled: "+t;s=t.substring(r,r+=2);for(var h=ni(o),l=bn(s.charAt(0),h),g=Gn(s.charAt(1),h);ge in t?Ci(t,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[e]=s,Tt=(t,e)=>{for(var s in e||(e={}))Ti.call(e,s)&&ua(t,s,e[s]);if(la)for(var s of la(e))Oi.call(e,s)&&ua(t,s,e[s]);return t},kt=(t,e)=>Li(t,Ri(e));var nt=(t,e,s)=>new Promise((a,i)=>{var r=h=>{try{n(s.next(h))}catch(l){i(l)}},o=h=>{try{n(s.throw(h))}catch(l){i(l)}},n=h=>h.done?a(h.value):Promise.resolve(h.value).then(r,o);n((s=s.apply(t,e)).next())});import{g as ca}from"./index-e9f36657-1784074877048.js";/* empty css */import{_ as fa}from"./index-1f5d6021-1784074877048.js";import{i as pe,g as Fi,b as ga}from"./townshipBoundaries-1b068bef-1784074877048.js";import{r as ji,n as ki}from"./index-bc047bb3-1784074877048.js";import{c as qi,F as $i,b as Di}from"./featurePanelLayout-dc118942-1784074877048.js";import{A as Ui}from"./assets-34f9bc99-1784074877048.js";import{q as Bi,r as zi,s as Wi}from"./screen2Standard-9c6af3a2-1784074877048.js";import{M as Vi}from"./index-b4ec1ae2-1784074877048.js";import{_ as Hi}from"./LayerPanel-9c0c5952-1784074877048.js";import{a as va,_ as Qi}from"./FeatureInfoPanel-8e9f606e-1784074877048.js";import{_ as Ji}from"./TopicSwitcher-3ee7ffcb-1784074877048.js";import{_ as Xi,g as z,q as Ua,o as J,c as Y,a as L,t as ut,j as It,n as Ot,f as te,F as fs,y as gs,d as Q,h as Ki,w as es,A as ss,b as ee,C as Ls,x as da,u as as,J as _a,z as Zi}from"./index-1784074877048.js";import{b as is,e as Rs,r as Yi,a as tr,p as er,g as sr,c as Ts,d as ar}from"./data-c66f5cee-1784074877048.js";import"./data-5c83c66b-1784074877048.js";const ir="/openApi";function rr(t){return nt(this,null,function*(){const e=yield ji(`${ir}/ecologicalProtection/rangeStats`,{method:"POST",timeout:3e4,params:{scopeKey:t},headers:{"Content-Type":"application/json"},body:JSON.stringify({scopeKey:t})}),s=ki(e);return or(Array.isArray(s)?s[0]||{}:s||{})})}const nr={scope_key:"scopeKey",scope_name:"scopeName",scope_area_wan_mu:"scopeAreaWanMu",source_feature_count:"sourceFeatureCount",grassland_area_wan_mu:"grasslandAreaWanMu",wetland_area_wan_mu:"wetlandAreaWanMu",woodland_area_wan_mu:"woodlandAreaWanMu",grassland_fresh_yield_wan_ton:"grasslandFreshYieldWanTon",wetland_fresh_yield_wan_ton:"wetlandFreshYieldWanTon",grassland_mu_yield_jin:"grasslandMuYieldJin",wetland_mu_yield_jin:"wetlandMuYieldJin",grassland_vegetation_cover_percent:"grasslandVegetationCoverPercent",grassland_patch_count:"grasslandPatchCount",wetland_patch_count:"wetlandPatchCount",woodland_patch_count:"woodlandPatchCount",grassland_distribution:"grasslandDistribution",wetland_distribution:"wetlandDistribution",woodland_distribution:"woodlandDistribution",grassland_productivity:"grasslandProductivity",grassland_types:"grasslandTypes",zoning_structure:"zoningStructure",grassland_levels:"grasslandLevels",vegetation_cover_bands:"vegetationCoverBands",woodland_types:"woodlandTypes",woodland_quality:"woodlandQuality",area_method:"areaMethod",area_unit:"areaUnit",productivity_method:"productivityMethod"};function or(t={}){return!t||typeof t!="object"?{}:Object.entries(t).reduce((e,[s,a])=>{e[s]=a;const i=nr[s];return i&&e[i]===void 0&&(e[i]=a),e},{})}function hr(t){t("EPSG:4326","+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees"),t("EPSG:4269","+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees"),t("EPSG:3857","+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs");for(var e=1;e<=60;++e)t("EPSG:"+(32600+e),"+proj=utm +zone="+e+" +datum=WGS84 +units=m"),t("EPSG:"+(32700+e),"+proj=utm +zone="+e+" +south +datum=WGS84 +units=m");t("EPSG:5041","+title=WGS 84 / UPS North (E,N) +proj=stere +lat_0=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t("EPSG:5042","+title=WGS 84 / UPS South (E,N) +proj=stere +lat_0=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +datum=WGS84 +units=m"),t.WGS84=t["EPSG:4326"],t["EPSG:3785"]=t["EPSG:3857"],t.GOOGLE=t["EPSG:3857"],t["EPSG:900913"]=t["EPSG:3857"],t["EPSG:102113"]=t["EPSG:3857"]}var Qt=1,Jt=2,oe=3,lr=4,$s=5,Ma=6378137,ur=6356752314e-3,ma=.0066943799901413165,Ae=484813681109536e-20,P=Math.PI/2,cr=.16666666666666666,fr=.04722222222222222,gr=.022156084656084655,x=1e-10,Z=.017453292519943295,yt=57.29577951308232,U=Math.PI/4,Te=Math.PI*2,tt=3.14159265359,wt={};wt.greenwich=0;wt.lisbon=-9.131906111111;wt.paris=2.337229166667;wt.bogota=-74.080916666667;wt.madrid=-3.687938888889;wt.rome=12.452333333333;wt.bern=7.439583333333;wt.jakarta=106.807719444444;wt.ferro=-17.666666666667;wt.brussels=4.367975;wt.stockholm=18.058277777778;wt.athens=23.7163375;wt.oslo=10.722916666667;const vr={mm:{to_meter:.001},cm:{to_meter:.01},ft:{to_meter:.3048},"us-ft":{to_meter:1200/3937},fath:{to_meter:1.8288},kmi:{to_meter:1852},"us-ch":{to_meter:20.1168402336805},"us-mi":{to_meter:1609.34721869444},km:{to_meter:1e3},"ind-ft":{to_meter:.30479841},"ind-yd":{to_meter:.91439523},mi:{to_meter:1609.344},yd:{to_meter:.9144},ch:{to_meter:20.1168},link:{to_meter:.201168},dm:{to_meter:.1},in:{to_meter:.0254},"ind-ch":{to_meter:20.11669506},"us-in":{to_meter:.025400050800101},"us-yd":{to_meter:.914401828803658}};var ya=/[\s_\-\/\(\)]/g;function $t(t,e){if(t[e])return t[e];for(var s=Object.keys(t),a=e.toLowerCase().replace(ya,""),i=-1,r,o;++iArray.isArray(a)&&a[0]==="ID");return s&&s.length>=3?{authority:s[1],code:parseInt(s[2],10)}:null}static convertUnit(e,s="unit"){if(!e||e.length<3)return{type:s,name:"unknown",conversion_factor:null};const a=e[1],i=parseFloat(e[2])||null,r=e.find(n=>Array.isArray(n)&&n[0]==="ID"),o=r?{authority:r[1],code:parseInt(r[2],10)}:null;return{type:s,name:a,conversion_factor:i,id:o}}static convertAxis(e){const s=e[1]||"Unknown";let a;const i=s.match(/^\((.)\)$/);if(i){const l=i[1].toUpperCase();if(l==="E")a="east";else if(l==="N")a="north";else if(l==="U")a="up";else if(e[2])a=e[2];else throw new Error(`Unknown axis abbreviation: ${l}`)}else a=e[2]||"unknown";const r=e.find(l=>Array.isArray(l)&&l[0]==="ORDER"),o=r?parseInt(r[1],10):null,n=e.find(l=>Array.isArray(l)&&(l[0]==="LENGTHUNIT"||l[0]==="ANGLEUNIT"||l[0]==="SCALEUNIT")),h=this.convertUnit(n);return{name:s,direction:a,unit:h,order:o}}static extractAxes(e){return e.filter(s=>Array.isArray(s)&&s[0]==="AXIS").map(s=>this.convertAxis(s)).sort((s,a)=>(s.order||0)-(a.order||0))}static convert(e,s={}){switch(e[0]){case"PROJCRS":s.type="ProjectedCRS",s.name=e[1],s.base_crs=e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="BASEGEOGCRS")):null,s.conversion=e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="CONVERSION")):null;const a=e.find(u=>Array.isArray(u)&&u[0]==="CS");a&&(s.coordinate_system={type:a[1],axis:this.extractAxes(e)});const i=e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT");if(i){const u=this.convertUnit(i);s.coordinate_system.unit=u}s.id=this.getId(e);break;case"BASEGEOGCRS":case"GEOGCRS":case"GEODCRS":s.type=e[0]==="GEODCRS"?"GeodeticCRS":"GeographicCRS",s.name=e[1];const r=e.find(u=>Array.isArray(u)&&(u[0]==="DATUM"||u[0]==="ENSEMBLE"));if(r){const u=this.convert(r);r[0]==="ENSEMBLE"?s.datum_ensemble=u:s.datum=u;const m=e.find(w=>Array.isArray(w)&&w[0]==="PRIMEM");m&&m[1]!=="Greenwich"&&(u.prime_meridian={name:m[1],longitude:parseFloat(m[2])})}s.coordinate_system={type:"ellipsoidal",axis:this.extractAxes(e)},s.id=this.getId(e);break;case"DATUM":s.type="GeodeticReferenceFrame",s.name=e[1],s.ellipsoid=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID")):null;break;case"ENSEMBLE":s.type="DatumEnsemble",s.name=e[1],s.members=e.filter(u=>Array.isArray(u)&&u[0]==="MEMBER").map(u=>({type:"DatumEnsembleMember",name:u[1],id:this.getId(u)}));const o=e.find(u=>Array.isArray(u)&&u[0]==="ENSEMBLEACCURACY");o&&(s.accuracy=parseFloat(o[1]));const n=e.find(u=>Array.isArray(u)&&u[0]==="ELLIPSOID");n&&(s.ellipsoid=this.convert(n)),s.id=this.getId(e);break;case"ELLIPSOID":s.type="Ellipsoid",s.name=e[1],s.semi_major_axis=parseFloat(e[2]),s.inverse_flattening=parseFloat(e[3]),e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT")&&this.convert(e.find(u=>Array.isArray(u)&&u[0]==="LENGTHUNIT"),s);break;case"CONVERSION":s.type="Conversion",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&u[0]==="PARAMETER").map(u=>this.convert(u));break;case"METHOD":s.type="Method",s.name=e[1],s.id=this.getId(e);break;case"PARAMETER":s.type="Parameter",s.name=e[1],s.value=parseFloat(e[2]),s.unit=this.convertUnit(e.find(u=>Array.isArray(u)&&(u[0]==="LENGTHUNIT"||u[0]==="ANGLEUNIT"||u[0]==="SCALEUNIT"))),s.id=this.getId(e);break;case"BOUNDCRS":s.type="BoundCRS";const h=e.find(u=>Array.isArray(u)&&u[0]==="SOURCECRS");if(h){const u=h.find(m=>Array.isArray(m));s.source_crs=u?this.convert(u):null}const l=e.find(u=>Array.isArray(u)&&u[0]==="TARGETCRS");if(l){const u=l.find(m=>Array.isArray(m));s.target_crs=u?this.convert(u):null}const g=e.find(u=>Array.isArray(u)&&u[0]==="ABRIDGEDTRANSFORMATION");g?s.transformation=this.convert(g):s.transformation=null;break;case"ABRIDGEDTRANSFORMATION":if(s.type="Transformation",s.name=e[1],s.method=e.find(u=>Array.isArray(u)&&u[0]==="METHOD")?this.convert(e.find(u=>Array.isArray(u)&&u[0]==="METHOD")):null,s.parameters=e.filter(u=>Array.isArray(u)&&(u[0]==="PARAMETER"||u[0]==="PARAMETERFILE")).map(u=>{if(u[0]==="PARAMETER")return this.convert(u);if(u[0]==="PARAMETERFILE")return{name:u[1],value:u[2],id:{authority:"EPSG",code:8656}}}),s.parameters.length===7){const u=s.parameters[6];u.name==="Scale difference"&&(u.value=Math.round((u.value-1)*1e12)/1e6)}s.id=this.getId(e);break;case"AXIS":s.coordinate_system||(s.coordinate_system={type:"unspecified",axis:[]}),s.coordinate_system.axis.push(this.convertAxis(e));break;case"LENGTHUNIT":const f=this.convertUnit(e,"LinearUnit");s.coordinate_system&&s.coordinate_system.axis&&s.coordinate_system.axis.forEach(u=>{u.unit||(u.unit=f)}),f.conversion_factor&&f.conversion_factor!==1&&s.semi_major_axis&&(s.semi_major_axis={value:s.semi_major_axis,unit:f});break;default:s.keyword=e[0];break}return s}}class dr extends Ba{static convert(e,s={}){return super.convert(e,s),s.coordinate_system&&s.coordinate_system.subtype==="Cartesian"&&delete s.coordinate_system,s.usage&&delete s.usage,s}}class _r extends Ba{static convert(e,s={}){super.convert(e,s);const a=e.find(r=>Array.isArray(r)&&r[0]==="CS");a&&(s.coordinate_system={subtype:a[1],axis:this.extractAxes(e)});const i=e.find(r=>Array.isArray(r)&&r[0]==="USAGE");if(i){const r=i.find(h=>Array.isArray(h)&&h[0]==="SCOPE"),o=i.find(h=>Array.isArray(h)&&h[0]==="AREA"),n=i.find(h=>Array.isArray(h)&&h[0]==="BBOX");s.usage={},r&&(s.usage.scope=r[1]),o&&(s.usage.area=o[1]),n&&(s.usage.bbox=n.slice(1))}return s}}function Mr(t){return t.find(e=>Array.isArray(e)&&e[0]==="USAGE")?"2019":(t.find(e=>Array.isArray(e)&&e[0]==="CS")||t[0]==="BOUNDCRS"||t[0]==="PROJCRS"||t[0]==="GEOGCRS","2015")}function mr(t){return(Mr(t)==="2019"?_r:dr).convert(t)}function yr(t){const e=t.toUpperCase();return e.includes("PROJCRS")||e.includes("GEOGCRS")||e.includes("BOUNDCRS")||e.includes("VERTCRS")||e.includes("LENGTHUNIT")||e.includes("ANGLEUNIT")||e.includes("SCALEUNIT")?"WKT2":(e.includes("PROJCS")||e.includes("GEOGCS")||e.includes("LOCAL_CS")||e.includes("VERT_CS")||e.includes("UNIT"),"WKT1")}var Oe=1,za=2,Wa=3,vs=4,Va=5,Hs=-1,wr=/\s/,Er=/[A-Za-z]/,Sr=/[A-Za-z84_]/,Ss=/[,\]]/,Ha=/[\d\.E\-\+]/;function Ft(t){if(typeof t!="string")throw new Error("not a string");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=Oe}Ft.prototype.readCharicter=function(){var t=this.text[this.place++];if(this.state!==vs)for(;wr.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case Oe:return this.neutral(t);case za:return this.keyword(t);case vs:return this.quoted(t);case Va:return this.afterquote(t);case Wa:return this.number(t);case Hs:return}};Ft.prototype.afterquote=function(t){if(t==='"'){this.word+='"',this.state=vs;return}if(Ss.test(t)){this.word=this.word.trim(),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in afterquote yet, index '+this.place)};Ft.prototype.afterItem=function(t){if(t===","){this.word!==null&&this.currentObject.push(this.word),this.word=null,this.state=Oe;return}if(t==="]"){this.level--,this.word!==null&&(this.currentObject.push(this.word),this.word=null),this.state=Oe,this.currentObject=this.stack.pop(),this.currentObject||(this.state=Hs);return}};Ft.prototype.number=function(t){if(Ha.test(t)){this.word+=t;return}if(Ss.test(t)){this.word=parseFloat(this.word),this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in number yet, index '+this.place)};Ft.prototype.quoted=function(t){if(t==='"'){this.state=Va;return}this.word+=t};Ft.prototype.keyword=function(t){if(Sr.test(t)){this.word+=t;return}if(t==="["){var e=[];e.push(this.word),this.level++,this.root===null?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,this.state=Oe;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in keyword yet, index '+this.place)};Ft.prototype.neutral=function(t){if(Er.test(t)){this.word=t,this.state=za;return}if(t==='"'){this.word="",this.state=vs;return}if(Ha.test(t)){this.word=t,this.state=Wa;return}if(Ss.test(t)){this.afterItem(t);return}throw new Error(`havn't handled "`+t+'" in neutral yet, index '+this.place)};Ft.prototype.output=function(){for(;this.place0?90:-90),t.lat_ts=t.lat1,delete t.lat1):!t.lat_ts&&t.lat0&&(e==="polar stereographic"||e==="polar stereographic (variant a)")&&(t.lat_ts=t.lat0,t.lat0=St(t.lat0>0?90:-90),delete t.lat1)}function wa(t){let e={units:null,to_meter:void 0};return typeof t=="string"?(e.units=t.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.units==="meter"&&(e.to_meter=1)):t&&t.name&&(e.units=t.name.toLowerCase(),e.units==="metre"&&(e.units="meter"),e.to_meter=t.conversion_factor),e}function Ea(t){return typeof t=="object"?t.value*t.unit.conversion_factor:t}function Sa(t,e){t.ellipsoid.radius?(e.a=t.ellipsoid.radius,e.rf=0):(e.a=Ea(t.ellipsoid.semi_major_axis),t.ellipsoid.inverse_flattening!==void 0?e.rf=t.ellipsoid.inverse_flattening:t.ellipsoid.semi_major_axis!==void 0&&t.ellipsoid.semi_minor_axis!==void 0&&(e.rf=e.a/(e.a-Ea(t.ellipsoid.semi_minor_axis))))}function ds(t,e={}){return!t||typeof t!="object"?t:t.type==="BoundCRS"?(ds(t.source_crs,e),t.transformation&&(t.transformation.method&&t.transformation.method.name==="NTv2"?e.nadgrids=t.transformation.parameters[0].value:e.datum_params=t.transformation.parameters.map(s=>s.value)),e):(Object.keys(t).forEach(s=>{const a=t[s];if(a!==null)switch(s){case"name":if(e.srsCode)break;e.name=a,e.srsCode=a;break;case"type":a==="GeographicCRS"?e.projName="longlat":a==="GeodeticCRS"?t.coordinate_system&&t.coordinate_system.subtype==="Cartesian"?e.projName="geocent":e.projName="longlat":a==="ProjectedCRS"&&t.conversion&&t.conversion.method&&(e.projName=t.conversion.method.name);break;case"datum":case"datum_ensemble":a.ellipsoid&&(e.ellps=a.ellipsoid.name,Sa(a,e)),a.prime_meridian&&(e.from_greenwich=a.prime_meridian.longitude*Math.PI/180);break;case"ellipsoid":e.ellps=a.name,Sa(a,e);break;case"prime_meridian":e.long0=(a.longitude||0)*Math.PI/180;break;case"coordinate_system":if(a.axis){const i={east:"e",north:"n",west:"w",south:"s",up:"u",down:"d",geocentricx:"e",geocentricy:"n",geocentricz:"u"},r=a.axis.map(o=>i[o.direction.toLowerCase()]);if(r.every(Boolean)&&(e.axis=r.join(""),e.axis.length===2&&(e.axis+="u")),a.unit){const{units:o,to_meter:n}=wa(a.unit);e.units=o,e.to_meter=n}else if(a.axis[0]&&a.axis[0].unit){const{units:o,to_meter:n}=wa(a.axis[0].unit);e.units=o,e.to_meter=n}}break;case"id":a.authority&&a.code&&(e.title=a.authority+":"+a.code);break;case"conversion":a.method&&a.method.name&&(e.projName=a.method.name),a.parameters&&a.parameters.forEach(i=>{const r=i.name.toLowerCase().replace(/\s+/g,"_"),o=i.value;i.unit&&i.unit.conversion_factor?e[r]=o*i.unit.conversion_factor:i.unit==="degree"?e[r]=o*Math.PI/180:e[r]=o});break;case"unit":a.name&&(e.units=a.name.toLowerCase(),e.units==="metre"&&(e.units="meter")),a.conversion_factor&&(e.to_meter=a.conversion_factor);break;case"base_crs":ds(a,e),e.datumCode=a.id?a.id.authority+"_"+a.id.code:a.name;break}}),e.latitude_of_false_origin!==void 0&&(e.lat0=e.latitude_of_false_origin),e.longitude_of_false_origin!==void 0&&(e.long0=e.longitude_of_false_origin),e.latitude_of_standard_parallel!==void 0&&(e.lat0=e.latitude_of_standard_parallel,e.lat1=e.latitude_of_standard_parallel),e.latitude_of_1st_standard_parallel!==void 0&&(e.lat1=e.latitude_of_1st_standard_parallel),e.latitude_of_2nd_standard_parallel!==void 0&&(e.lat2=e.latitude_of_2nd_standard_parallel),e.latitude_of_projection_centre!==void 0&&(e.lat0=e.latitude_of_projection_centre),e.longitude_of_projection_centre!==void 0&&(e.longc=e.longitude_of_projection_centre),e.easting_at_false_origin!==void 0&&(e.x0=e.easting_at_false_origin),e.northing_at_false_origin!==void 0&&(e.y0=e.northing_at_false_origin),e.latitude_of_natural_origin!==void 0&&(e.lat0=e.latitude_of_natural_origin),e.longitude_of_natural_origin!==void 0&&(e.long0=e.longitude_of_natural_origin),e.longitude_of_origin!==void 0&&(e.long0=e.longitude_of_origin),e.false_easting!==void 0&&(e.x0=e.false_easting),e.easting_at_projection_centre&&(e.x0=e.easting_at_projection_centre),e.false_northing!==void 0&&(e.y0=e.false_northing),e.northing_at_projection_centre&&(e.y0=e.northing_at_projection_centre),e.standard_parallel_1!==void 0&&(e.lat1=e.standard_parallel_1),e.standard_parallel_2!==void 0&&(e.lat2=e.standard_parallel_2),e.scale_factor_at_natural_origin!==void 0&&(e.k0=e.scale_factor_at_natural_origin),e.scale_factor_at_projection_centre!==void 0&&(e.k0=e.scale_factor_at_projection_centre),e.scale_factor_on_pseudo_standard_parallel!==void 0&&(e.k0=e.scale_factor_on_pseudo_standard_parallel),e.azimuth!==void 0&&(e.alpha=e.azimuth),e.azimuth_at_projection_centre!==void 0&&(e.alpha=e.azimuth_at_projection_centre),e.angle_from_rectified_to_skew_grid&&(e.rectified_grid_angle=e.angle_from_rectified_to_skew_grid),Qa(e),e)}var xr=["PROJECTEDCRS","PROJCRS","GEOGCS","GEOCCS","PROJCS","LOCAL_CS","GEODCRS","GEODETICCRS","GEODETICDATUM","ENGCRS","ENGINEERINGCRS"];function br(t,e){var s=e[0],a=e[1];!(s in t)&&a in t&&(t[s]=t[a],e.length===3&&(t[s]=e[2](t[s])))}function Ja(t){for(var e=Object.keys(t),s=0,a=e.length;s-1;var e=$t(t,"authority");if(e){var s=$t(e,"epsg");return s&&Pa.indexOf(s)>-1}}function Lr(t){var e=$t(t,"extension");if(e)return $t(e,"proj4")}function Rr(t){return t[0]==="+"}function Tr(t){let e;if(Nr(t))if(Ar(t))e=ot[t];else if(Ir(t)){e=_s(t);var s=Lr(e);s&&(e=Ds(s))}else Rr(t)&&(e=Ds(t));else"projName"in t?e=t:e=_s(t);return e&&Cr(e)?ot["EPSG:3857"]:e}function pa(t,e){t=t||{};var s,a;if(!e)return t;for(a in e)s=e[a],s!==void 0&&(t[a]=s);return t}function Lt(t,e,s){var a=t*e;return s/Math.sqrt(1-a*a)}function qe(t){return t<0?-1:1}function G(t,e){return e||Math.abs(t)<=tt?t:t-qe(t)*Te}function Gt(t,e,s){var a=t*s,i=.5*t;return a=Math.pow((1-a)/(1+a),i),Math.tan(.5*(P-e))/a}function Fe(t,e){for(var s=.5*t,a,i,r=P-2*Math.atan(e),o=0;o<=15;o++)if(a=t*Math.sin(r),i=P-2*Math.atan(e*Math.pow((1-a)/(1+a),s))-r,r+=i,Math.abs(i)<=1e-10)return r;return-9999}function Or(){var t=this.b/this.a;this.es=1-t*t,"x0"in this||(this.x0=0),"y0"in this||(this.y0=0),this.e=Math.sqrt(this.es),this.lat_ts?this.sphere?this.k0=Math.cos(this.lat_ts):this.k0=Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)):this.k0||(this.k?this.k0=this.k:this.k0=1)}function Fr(t){var e=t.x,s=t.y;if(s*yt>90&&s*yt<-90&&e*yt>180&&e*yt<-180)return null;var a,i;if(Math.abs(Math.abs(s)-P)<=x)return null;if(this.sphere)a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0+this.a*this.k0*Math.log(Math.tan(U+.5*s));else{var r=Math.sin(s),o=Gt(this.e,s,r);a=this.x0+this.a*this.k0*G(e-this.long0,this.over),i=this.y0-this.a*this.k0*Math.log(o)}return t.x=a,t.y=i,t}function jr(t){var e=t.x-this.x0,s=t.y-this.y0,a,i;if(this.sphere)i=P-2*Math.atan(Math.exp(-s/(this.a*this.k0)));else{var r=Math.exp(-s/(this.a*this.k0));if(i=Fe(this.e,r),i===-9999)return null}return a=G(this.long0+e/(this.a*this.k0),this.over),t.x=a,t.y=i,t}var kr=["Mercator","Popular Visualisation Pseudo Mercator","Mercator_1SP","Mercator_Auxiliary_Sphere","Mercator_Variant_A","merc"];const qr={init:Or,forward:Fr,inverse:jr,names:kr};function $r(){}function xa(t){return t}var Xa=["longlat","identity"];const Dr={init:$r,forward:xa,inverse:xa,names:Xa};var Ur=[qr,Dr],Vt={},ie=[];function Ka(t,e){var s=ie.length;return t.names?(ie[s]=t,t.names.forEach(function(a){Vt[a.toLowerCase()]=s}),this):(console.log(e),!0)}function Za(t){return t.replace(/[-\(\)\s]+/g," ").trim().replace(/ /g,"_")}function Br(t){if(!t)return!1;var e=t.toLowerCase();if(typeof Vt[e]!="undefined"&&ie[Vt[e]]||(e=Za(e),e in Vt&&ie[Vt[e]]))return ie[Vt[e]]}function zr(){Ur.forEach(Ka)}const Wr={start:zr,add:Ka,get:Br};var Ya={MERIT:{a:6378137,rf:298.257,ellipseName:"MERIT 1983"},SGS85:{a:6378136,rf:298.257,ellipseName:"Soviet Geodetic System 85"},GRS80:{a:6378137,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},IAU76:{a:6378140,rf:298.257,ellipseName:"IAU 1976"},airy:{a:6377563396e-3,b:635625691e-2,ellipseName:"Airy 1830"},APL4:{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},NWL9D:{a:6378145,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},mod_airy:{a:6377340189e-3,b:6356034446e-3,ellipseName:"Modified Airy"},andrae:{a:637710443e-2,rf:300,ellipseName:"Andrae 1876 (Den., Iclnd.)"},aust_SA:{a:6378160,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},GRS67:{a:6378160,rf:298.247167427,ellipseName:"GRS 67(IUGG 1967)"},bessel:{a:6377397155e-3,rf:299.1528128,ellipseName:"Bessel 1841"},bess_nam:{a:6377483865e-3,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},clrk66:{a:63782064e-1,b:63565838e-1,ellipseName:"Clarke 1866"},clrk80:{a:6378249145e-3,rf:293.4663,ellipseName:"Clarke 1880 mod."},clrk80ign:{a:63782492e-1,b:6356515,rf:293.4660213,ellipseName:"Clarke 1880 (IGN)"},clrk58:{a:6378293645208759e-9,rf:294.2606763692654,ellipseName:"Clarke 1858"},CPM:{a:63757387e-1,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},delmbr:{a:6376428,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},engelis:{a:637813605e-2,rf:298.2566,ellipseName:"Engelis 1985"},evrst30:{a:6377276345e-3,rf:300.8017,ellipseName:"Everest 1830"},evrst48:{a:6377304063e-3,rf:300.8017,ellipseName:"Everest 1948"},evrst56:{a:6377301243e-3,rf:300.8017,ellipseName:"Everest 1956"},evrst69:{a:6377295664e-3,rf:300.8017,ellipseName:"Everest 1969"},evrstSS:{a:6377298556e-3,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},fschr60:{a:6378166,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},fschr60m:{a:6378155,rf:298.3,ellipseName:"Fischer 1960"},fschr68:{a:6378150,rf:298.3,ellipseName:"Fischer 1968"},helmert:{a:6378200,rf:298.3,ellipseName:"Helmert 1906"},hough:{a:6378270,rf:297,ellipseName:"Hough"},intl:{a:6378388,rf:297,ellipseName:"International 1909 (Hayford)"},kaula:{a:6378163,rf:298.24,ellipseName:"Kaula 1961"},lerch:{a:6378139,rf:298.257,ellipseName:"Lerch 1979"},mprts:{a:6397300,rf:191,ellipseName:"Maupertius 1738"},new_intl:{a:63781575e-1,b:63567722e-1,ellipseName:"New International 1967"},plessis:{a:6376523,rf:6355863,ellipseName:"Plessis 1817 (France)"},krass:{a:6378245,rf:298.3,ellipseName:"Krassovsky, 1942"},SEasia:{a:6378155,b:63567733205e-4,ellipseName:"Southeast Asia"},walbeck:{a:6376896,b:63558348467e-4,ellipseName:"Walbeck"},WGS60:{a:6378165,rf:298.3,ellipseName:"WGS 60"},WGS66:{a:6378145,rf:298.25,ellipseName:"WGS 66"},WGS7:{a:6378135,rf:298.26,ellipseName:"WGS 72"},WGS84:{a:6378137,rf:298.257223563,ellipseName:"WGS 84"},sphere:{a:6370997,b:6370997,ellipseName:"Normal Sphere (r=6370997)"}};const Vr=Ya.WGS84;function Hr(t,e,s,a){var i=t*t,r=e*e,o=(i-r)/i,n=0;a?(t*=1-o*(cr+o*(fr+o*gr)),i=t*t,o=0):n=Math.sqrt(o);var h=(i-r)/r;return{es:o,e:n,ep2:h}}function Qr(t,e,s,a,i){if(!t){var r=$t(Ya,a);r||(r=Vr),t=r.a,e=r.b,s=r.rf}return s&&!e&&(e=(1-1/s)*t),(s===0||Math.abs(t-e)3&&(n.datum_params[3]!==0||n.datum_params[4]!==0||n.datum_params[5]!==0||n.datum_params[6]!==0)&&(n.datum_type=Jt,n.datum_params[3]*=Ae,n.datum_params[4]*=Ae,n.datum_params[5]*=Ae,n.datum_params[6]=n.datum_params[6]/1e6+1)),o&&(n.datum_type=oe,n.grids=o),n.a=s,n.b=a,n.es=i,n.ep2=r,n}var Qs={};function Kr(t,e,s){return e instanceof ArrayBuffer?Zr(t,e,s):{ready:Yr(t,e)}}function Zr(t,e,s){var a=!0;s!==void 0&&s.includeErrorFields===!1&&(a=!1);var i=new DataView(e),r=sn(i),o=an(i,r),n=rn(i,o,r,a),h={header:o,subgrids:n};return Qs[t]=h,h}function Yr(t,e){return nt(this,null,function*(){for(var s=[],a=yield e.getImageCount(),i=a-1;i>=0;i--){var r=yield e.getImage(i),o=yield r.readRasters(),n=o,h=[r.getWidth(),r.getHeight()],l=r.getBoundingBox().map(ba),g=typeof r.fileDirectory.getValue=="function"?r.fileDirectory.getValue("ModelPixelScale"):r.fileDirectory.ModelPixelScale,f=[g[0],g[1]].map(ba),u=l[0]+(h[0]-1)*f[0],m=l[3]-(h[1]-1)*f[1],w=n[0],E=n[1],S=[];for(let I=h[1]-1;I>=0;I--)for(let R=h[0]-1;R>=0;R--){var b=I*h[0]+R;S.push([-qt(E[b]),qt(w[b])])}s.push({del:f,lim:h,ll:[-u,m],cvs:S})}var A={header:{nSubgrids:a},subgrids:s};return Qs[t]=A,A})}function tn(t){if(t===void 0)return null;var e=t.split(",");return e.map(en)}function en(t){if(t.length===0)return null;var e=t[0]==="@";return e&&(t=t.slice(1)),t==="null"?{name:"null",mandatory:!e,grid:null,isNull:!0}:{name:t,mandatory:!e,grid:Qs[t]||null,isNull:!1}}function ba(t){return t*Math.PI/180}function qt(t){return t/3600*Math.PI/180}function sn(t){var e=t.getInt32(8,!1);return e===11?!1:(e=t.getInt32(8,!0),e!==11&&console.warn("Failed to detect nadgrid endian-ness, defaulting to little-endian"),!0)}function an(t,e){return{nFields:t.getInt32(8,e),nSubgridFields:t.getInt32(24,e),nSubgrids:t.getInt32(40,e),shiftType:Us(t,56,56+8).trim(),fromSemiMajorAxis:t.getFloat64(120,e),fromSemiMinorAxis:t.getFloat64(136,e),toSemiMajorAxis:t.getFloat64(152,e),toSemiMinorAxis:t.getFloat64(168,e)}}function Us(t,e,s){return String.fromCharCode.apply(null,new Uint8Array(t.buffer.slice(e,s)))}function rn(t,e,s,a){for(var i=176,r=[],o=0;o5e-11?!1:t.datum_type===Qt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]:t.datum_type===Jt?t.datum_params[0]===e.datum_params[0]&&t.datum_params[1]===e.datum_params[1]&&t.datum_params[2]===e.datum_params[2]&&t.datum_params[3]===e.datum_params[3]&&t.datum_params[4]===e.datum_params[4]&&t.datum_params[5]===e.datum_params[5]&&t.datum_params[6]===e.datum_params[6]:!0}function ti(t,e,s){var a=t.x,i=t.y,r=t.z?t.z:0,o,n,h,l;if(i<-P&&i>-1.001*P)i=-P;else if(i>P&&i<1.001*P)i=P;else{if(i<-P)return{x:-1/0,y:-1/0,z:t.z};if(i>P)return{x:1/0,y:1/0,z:t.z}}return a>Math.PI&&(a-=2*Math.PI),n=Math.sin(i),l=Math.cos(i),h=n*n,o=s/Math.sqrt(1-e*h),{x:(o+r)*l*Math.cos(a),y:(o+r)*l*Math.sin(a),z:(o*(1-e)+r)*n}}function ei(t,e,s,a){var i=1e-12,r=i*i,o=30,n,h,l,g,f,u,m,w,E,S,b,A,I,R=t.x,j=t.y,O=t.z?t.z:0,F,K,W;if(n=Math.sqrt(R*R+j*j),h=Math.sqrt(R*R+j*j+O*O),n/sr&&Ia.y||m>a.x||Sn&&Math.abs(h.y)>n);if(o<0)return console.log("Inverse grid shift iterator failed to converge."),a;a.x=G(r.x+s.ll[0]),a.y=r.y+s.ll[1]}else isNaN(r.x)||(a.x=t.x+r.x,a.y=t.y+r.y);return a}function Na(t,e){var s={x:t.x/e.del[0],y:t.y/e.del[1]},a={x:Math.floor(s.x),y:Math.floor(s.y)},i={x:s.x-1*a.x,y:s.y-1*a.y},r={x:Number.NaN,y:Number.NaN},o;if(a.x<0||a.x>=e.lim[0]||a.y<0||a.y>=e.lim[1])return r;o=a.y*e.lim[0]+a.x;var n={x:e.cvs[o][0],y:e.cvs[o][1]};o++;var h={x:e.cvs[o][0],y:e.cvs[o][1]};o+=e.lim[0];var l={x:e.cvs[o][0],y:e.cvs[o][1]};o--;var g={x:e.cvs[o][0],y:e.cvs[o][1]},f=i.x*i.y,u=i.x*(1-i.y),m=(1-i.x)*(1-i.y),w=(1-i.x)*i.y;return r.x=m*n.x+u*h.x+w*g.x+f*l.x,r.y=m*n.y+u*h.y+w*g.y+f*l.y,r}var Ht=["x","y","z"];function vn(t,e){const s={};for(let a=0,i=t.axis.length;a2&&(e.z=t[2]),t.length>3&&(e.m=t[3]),e}function _n(t){Aa(t.x),Aa(t.y)}function Aa(t){if(typeof Number.isFinite=="function"){if(Number.isFinite(t))return;throw new TypeError("coordinates must be finite numbers")}if(typeof t!="number"||t!==t||!isFinite(t))throw new TypeError("coordinates must be finite numbers")}function Mn(t,e){return(t.datum.datum_type===Qt||t.datum.datum_type===Jt||t.datum.datum_type===oe)&&e.datumCode!=="WGS84"||(e.datum.datum_type===Qt||e.datum.datum_type===Jt||e.datum.datum_type===oe)&&t.datumCode!=="WGS84"}function Ms(t,e,s,a){var i,r=s.z!==void 0;if(_n(s),t.datum&&e.datum&&Mn(t,e)&&(i=new pt("WGS84"),s=Ms(t,i,s,a),t=i),a&&t.axis!=="enu"&&(s=vn(t,s)),t.projName==="longlat")s={x:s.x*Z,y:s.y*Z,z:s.z||0};else if(t.to_meter&&(s={x:s.x*t.to_meter,y:s.y*t.to_meter,z:s.z||0}),s=t.inverse(s),!s)return;if(t.from_greenwich&&(s.x+=t.from_greenwich),s=fn(t.datum,e.datum,s),!!s)return s=s,e.from_greenwich&&(s={x:s.x-e.from_greenwich,y:s.y,z:s.z||0}),e.projName==="longlat"?s={x:s.x*yt,y:s.y*yt,z:s.z||0}:(s=e.forward(s),e.to_meter&&(s={x:s.x/e.to_meter,y:s.y/e.to_meter,z:s.z||0})),a&&e.axis!=="enu"?dn(e,s):(s&&!r&&e.projName!=="geocent"&&delete s.z,s)}function mn(t,e,s,a){var i;return Array.isArray(s)?i=Js(s):i={x:s.x,y:s.y,z:s.z,m:s.m},Ms(t,e,i,a)}var Ia=pt("WGS84");function js(t,e,s,a){var i,r,o;return Array.isArray(s)?(i=Ms(t,e,Js(s),a)||{x:NaN,y:NaN},s.length>2?(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",r?typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y,s[2]].concat(s.slice(3)):a&&typeof i.z=="number"?[i.x,i.y,i.z].concat(s.slice(3)):[i.x,i.y].concat(s.slice(2))):[i.x,i.y]):(i=Ms(t,e,{x:s.x,y:s.y,z:s.z,m:s.m},a)||{x:NaN,y:NaN},o=Object.keys(s),o.length===2||(r=typeof t.name!="undefined"&&t.name==="geocent"||typeof e.name!="undefined"&&e.name==="geocent",o.forEach(function(n){n==="x"||n==="y"||n==="z"&&(r||a)||(i[n]=s[n])})),i)}function ns(t){return t instanceof pt?t:typeof t=="object"&&"oProj"in t?t.oProj:pt(t)}function yn(t,e,s){var a,i,r=!1,o;return typeof e=="undefined"?(i=ns(t),a=Ia,r=!0):(typeof e.x!="undefined"||Array.isArray(e))&&(s=e,i=ns(t),a=Ia,r=!0),a||(a=ns(t)),i||(i=ns(e)),s?js(a,i,s):(o={forward:function(n,h){return js(a,i,n,h)},inverse:function(n,h){return js(i,a,n,h)}},r&&(o.oProj=i),o)}var Ca=6,si="AJSAJS",ai="AFAFAF",re=65,Mt=73,Pt=79,be=86,Ge=90;const wn={forward:ii,inverse:En,toPoint:ri};function ii(t,e){return e=e||5,pn(Sn({lat:t[1],lon:t[0]}),e)}function En(t){var e=Xs(oi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat,e.lon,e.lat]:[e.left,e.bottom,e.right,e.top]}function ri(t){var e=Xs(oi(t.toUpperCase()));return e.lat&&e.lon?[e.lon,e.lat]:[(e.left+e.right)/2,(e.top+e.bottom)/2]}function ks(t){return t*(Math.PI/180)}function La(t){return 180*(t/Math.PI)}function Sn(t){var e=t.lat,s=t.lon,a=6378137,i=.00669438,r=.9996,o,n,h,l,g,f,u,m=ks(e),w=ks(s),E,S;S=Math.floor((s+180)/6)+1,s===180&&(S=60),e>=56&&e<64&&s>=3&&s<12&&(S=32),e>=72&&e<84&&(s>=0&&s<9?S=31:s>=9&&s<21?S=33:s>=21&&s<33?S=35:s>=33&&s<42&&(S=37)),o=(S-1)*6-180+3,E=ks(o),n=i/(1-i),h=a/Math.sqrt(1-i*Math.sin(m)*Math.sin(m)),l=Math.tan(m)*Math.tan(m),g=n*Math.cos(m)*Math.cos(m),f=Math.cos(m)*(w-E),u=a*((1-i/4-3*i*i/64-5*i*i*i/256)*m-(3*i/8+3*i*i/32+45*i*i*i/1024)*Math.sin(2*m)+(15*i*i/256+45*i*i*i/1024)*Math.sin(4*m)-35*i*i*i/3072*Math.sin(6*m));var b=r*h*(f+(1-l+g)*f*f*f/6+(5-18*l+l*l+72*g-58*n)*f*f*f*f*f/120)+5e5,A=r*(u+h*Math.tan(m)*(f*f/2+(5-l+9*g+4*g*g)*f*f*f*f/24+(61-58*l+l*l+600*g-330*n)*f*f*f*f*f*f/720));return e<0&&(A+=1e7),{northing:Math.round(A),easting:Math.round(b),zoneNumber:S,zoneLetter:Pn(e)}}function Xs(t){var e=t.northing,s=t.easting,a=t.zoneLetter,i=t.zoneNumber;if(i<0||i>60)return null;var r=.9996,o=6378137,n=.00669438,h,l=(1-Math.sqrt(1-n))/(1+Math.sqrt(1-n)),g,f,u,m,w,E,S,b,A,I=s-5e5,R=e;a<"N"&&(R-=1e7),S=(i-1)*6-180+3,h=n/(1-n),E=R/r,b=E/(o*(1-n/4-3*n*n/64-5*n*n*n/256)),A=b+(3*l/2-27*l*l*l/32)*Math.sin(2*b)+(21*l*l/16-55*l*l*l*l/32)*Math.sin(4*b)+151*l*l*l/96*Math.sin(6*b),g=o/Math.sqrt(1-n*Math.sin(A)*Math.sin(A)),f=Math.tan(A)*Math.tan(A),u=h*Math.cos(A)*Math.cos(A),m=o*(1-n)/Math.pow(1-n*Math.sin(A)*Math.sin(A),1.5),w=I/(g*r);var j=A-g*Math.tan(A)/m*(w*w/2-(5+3*f+10*u-4*u*u-9*h)*w*w*w*w/24+(61+90*f+298*u+45*f*f-252*h-3*u*u)*w*w*w*w*w*w/720);j=La(j);var O=(w-(1+2*f+u)*w*w*w/6+(5-2*u+28*f-3*u*u+8*h+24*f*f)*w*w*w*w*w/120)/Math.cos(A);O=S+La(O);var F;if(t.accuracy){var K=Xs({northing:t.northing+t.accuracy,easting:t.easting+t.accuracy,zoneLetter:t.zoneLetter,zoneNumber:t.zoneNumber});F={top:K.lat,right:K.lon,bottom:j,left:O}}else F={lat:j,lon:O};return F}function Pn(t){var e="Z";return 84>=t&&t>=72?e="X":72>t&&t>=64?e="W":64>t&&t>=56?e="V":56>t&&t>=48?e="U":48>t&&t>=40?e="T":40>t&&t>=32?e="S":32>t&&t>=24?e="R":24>t&&t>=16?e="Q":16>t&&t>=8?e="P":8>t&&t>=0?e="N":0>t&&t>=-8?e="M":-8>t&&t>=-16?e="L":-16>t&&t>=-24?e="K":-24>t&&t>=-32?e="J":-32>t&&t>=-40?e="H":-40>t&&t>=-48?e="G":-48>t&&t>=-56?e="F":-56>t&&t>=-64?e="E":-64>t&&t>=-72?e="D":-72>t&&t>=-80&&(e="C"),e}function pn(t,e){var s="00000"+t.easting,a="00000"+t.northing;return t.zoneNumber+t.zoneLetter+xn(t.easting,t.northing,t.zoneNumber)+s.substr(s.length-5,e)+a.substr(a.length-5,e)}function xn(t,e,s){var a=ni(s),i=Math.floor(t/1e5),r=Math.floor(e/1e5)%20;return bn(i,r,a)}function ni(t){var e=t%Ca;return e===0&&(e=Ca),e}function bn(t,e,s){var a=s-1,i=si.charCodeAt(a),r=ai.charCodeAt(a),o=i+t-1,n=r+e,h=!1;o>Ge&&(o=o-Ge+re-1,h=!0),(o===Mt||iMt||(o>Mt||iPt||(o>Pt||iGe&&(o=o-Ge+re-1),n>be?(n=n-be+re-1,h=!0):h=!1,(n===Mt||rMt||(n>Mt||rPt||(n>Pt||rbe&&(n=n-be+re-1);var l=String.fromCharCode(o)+String.fromCharCode(n);return l}function oi(t){if(t&&t.length===0)throw"MGRSPoint coverting from nothing";for(var e=t.length,s=null,a="",i,r=0;!/[A-Z]/.test(i=t.charAt(r));){if(r>=2)throw"MGRSPoint bad conversion from: "+t;a+=i,r++}var o=parseInt(a,10);if(r===0||r+3>e)throw"MGRSPoint bad conversion from: "+t;var n=t.charAt(r++);if(n<="A"||n==="B"||n==="Y"||n>="Z"||n==="I"||n==="O")throw"MGRSPoint zone letter "+n+" not handled: "+t;s=t.substring(r,r+=2);for(var h=ni(o),l=Gn(s.charAt(0),h),g=Nn(s.charAt(1),h);g0&&(E=1e5/Math.pow(10,u),S=t.substring(r,r+u),m=parseFloat(S)*E,b=t.substring(r+u),w=parseFloat(b)*E),A=m+l,I=w+g,{easting:A,northing:I,zoneLetter:n,zoneNumber:o,accuracy:E}}function bn(t,e){for(var s=si.charCodeAt(e-1),a=1e5,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>be){if(i)throw"Bad character: "+t;s=oe,i=!0}a+=1e5}return a}function Gn(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var s=ai.charCodeAt(e-1),a=0,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>pe){if(i)throw"Bad character: "+t;s=oe,i=!0}a+=1e5}return a}function Nn(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function ce(t,e,s){if(!(this instanceof ce))return new ce(t,e,s);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if(typeof t=="object")this.x=t.x,this.y=t.y,this.z=t.z||0;else if(typeof t=="string"&&typeof e=="undefined"){var a=t.split(",");this.x=parseFloat(a[0]),this.y=parseFloat(a[1]),this.z=parseFloat(a[2])||0}else this.x=t,this.y=e,this.z=s||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}ce.fromMGRS=function(t){return new ce(ri(t))};ce.prototype.toMGRS=function(t){return ii([this.x,this.y],t)};var An=1,In=.25,Ra=.046875,Ta=.01953125,Oa=.01068115234375,Cn=.75,Ln=.46875,Rn=.013020833333333334,Tn=.007120768229166667,On=.3645833333333333,Fn=.005696614583333333,jn=.3076171875;function Xs(t){var e=[];e[0]=An-t*(In+t*(Ra+t*(Ta+t*Oa))),e[1]=t*(Cn-t*(Ra+t*(Ta+t*Oa)));var s=t*t;return e[2]=s*(Ln-t*(Rn+t*Tn)),s*=t,e[3]=s*(On-t*Fn),e[4]=s*t*jn,e}function ge(t,e,s,a){return s*=e,e*=e,a[0]*t-s*(a[1]+e*(a[2]+e*(a[3]+e*a[4])))}var kn=20;function Ks(t,e,s){for(var a=1/(1-e),i=t,r=kn;r;--r){var o=Math.sin(i),n=1-e*o*o;if(n=(ge(i,o,Math.cos(i),s)-t)*(n*Math.sqrt(n))*a,i-=n,Math.abs(n)p?Math.tan(s):0,E=Math.pow(w,2),S=Math.pow(E,2);i=1-this.es*Math.pow(n,2),g=g/Math.sqrt(i);var b=ge(s,n,h,this.en);r=this.a*(this.k0*g*(1+f/6*(1-E+u+f/20*(5-18*E+S+14*u-58*E*u+f/42*(61+179*S-S*E-479*E)))))+this.x0,o=this.a*(this.k0*(b-this.ml0+n*a*g/2*(1+f/12*(5-E+9*u+4*m+f/30*(61+S-58*E+270*u-330*E*u+f/56*(1385+543*S-S*E-3111*E))))))+this.y0}else{var l=h*Math.sin(a);if(Math.abs(Math.abs(l)-1)=1){if(l-1>p)return 93;o=0}else o=Math.acos(o);s<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return t.x=r,t.y=o,t}function Dn(t){var e,s,a,i,r=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+o/this.k0,s=Ks(e,this.es,this.en),Math.abs(s)p?Math.tan(s):0,w=this.ep2*Math.pow(u,2),E=Math.pow(w,2),S=Math.pow(m,2),b=Math.pow(S,2);e=1-this.es*Math.pow(f,2);var A=r*Math.sqrt(e)/this.k0,I=Math.pow(A,2);e=e*m,a=s-e*I/(1-this.es)*.5*(1-I/12*(5+3*S-9*w*S+w-4*E-I/30*(61+90*S-252*w*S+45*b+46*w-I/56*(1385+3633*S+4095*b+1574*b*S)))),i=G(this.long0+A*(1-I/6*(1+2*S+w-I/20*(5+28*S+24*b+8*w*S+6*w-I/42*(61+662*S+1320*b+720*b*S))))/u,this.over)}else a=P*ke(o),i=0;else{var n=Math.exp(r/this.k0),h=.5*(n-1/n),l=this.lat0+o/this.k0,g=Math.cos(l);e=Math.sqrt((1-Math.pow(g,2))/(1+Math.pow(h,2))),a=Math.asin(e),o<0&&(a=-a),h===0&&g===0?i=0:i=G(Math.atan2(h,g)+this.long0,this.over)}return t.x=i,t.y=a,t}var Un=["Fast_Transverse_Mercator","Fast Transverse Mercator"];const ls={init:qn,forward:$n,inverse:Dn,names:Un};function hi(t){var e=Math.exp(t);return e=(e-1/e)/2,e}function mt(t,e){t=Math.abs(t),e=Math.abs(e);var s=Math.max(t,e),a=Math.min(t,e)/(s||1);return s*Math.sqrt(1+Math.pow(a,2))}function Bn(t){var e=1+t,s=e-1;return s===0?t:t*Math.log(e)/s}function zn(t){var e=Math.abs(t);return e=Bn(e*(1+e/(mt(1,e)+1))),t<0?-e:e}function Zs(t,e){for(var s=2*Math.cos(2*e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return e+o*Math.sin(2*e)}function Wn(t,e){for(var s=2*Math.cos(e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return Math.sin(e)*o}function Vn(t){var e=Math.exp(t);return e=(e+1/e)/2,e}function li(t,e,s){for(var a=Math.sin(e),i=Math.cos(e),r=hi(s),o=Vn(s),n=2*i*o,h=-2*a*r,l=t.length-1,g=t[l],f=0,u=0,m=0,w,E;--l>=0;)w=u,E=f,u=g,f=m,g=-w+n*u-h*f+t[l],m=-E+h*u+n*f;return n=a*o,h=i*r,[n*g-h*m,n*m+h*g]}function Hn(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(ls.init.apply(this),this.forward=ls.forward,this.inverse=ls.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),s=e;this.cgb[0]=e*(2+e*(-2/3+e*(-2+e*(116/45+e*(26/45+e*(-2854/675)))))),this.cbg[0]=e*(-2+e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))),s=s*e,this.cgb[1]=s*(7/3+e*(-8/5+e*(-227/45+e*(2704/315+e*(2323/945))))),this.cbg[1]=s*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),s=s*e,this.cgb[2]=s*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=s*(-26/15+e*(34/21+e*(8/5+e*(-12686/2835)))),s=s*e,this.cgb[3]=s*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=s*(1237/630+e*(-12/5+e*(-24832/14175))),s=s*e,this.cgb[4]=s*(4174/315+e*(-144838/6237)),this.cbg[4]=s*(-734/315+e*(109598/31185)),s=s*e,this.cgb[5]=s*(601676/22275),this.cbg[5]=s*(444337/155925),s=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+s*(1/4+s*(1/64+s/256))),this.utg[0]=e*(-.5+e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=s*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=s*(13/48+e*(-3/5+e*(557/1440+e*(281/630+e*(-1983433/1935360))))),s=s*e,this.utg[2]=s*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=s*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),s=s*e,this.utg[3]=s*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=s*(49561/161280+e*(-179/168+e*(6601661/7257600))),s=s*e,this.utg[4]=s*(-4583/161280+e*(108847/3991680)),this.gtu[4]=s*(34729/80640+e*(-3418889/1995840)),s=s*e,this.utg[5]=s*(-20648693/638668800),this.gtu[5]=s*(212378941/319334400);var a=Zs(this.cbg,this.lat0);this.Zb=-this.Qn*(a+Wn(this.gtu,2*a))}function Qn(t){var e=G(t.x-this.long0,this.over),s=t.y;s=Zs(this.cbg,s);var a=Math.sin(s),i=Math.cos(s),r=Math.sin(e),o=Math.cos(e);s=Math.atan2(a,o*i),e=Math.atan2(r*i,mt(a,i*o)),e=zn(Math.tan(e));var n=li(this.gtu,2*s,2*e);s=s+n[0],e=e+n[1];var h,l;return Math.abs(e)<=2.623395162778?(h=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*s+this.Zb)+this.y0):(h=1/0,l=1/0),t.x=h,t.y=l,t}function Jn(t){var e=(t.x-this.x0)*(1/this.a),s=(t.y-this.y0)*(1/this.a);s=(s-this.Zb)/this.Qn,e=e/this.Qn;var a,i;if(Math.abs(e)<=2.623395162778){var r=li(this.utg,2*s,2*e);s=s+r[0],e=e+r[1],e=Math.atan(hi(e));var o=Math.sin(s),n=Math.cos(s),h=Math.sin(e),l=Math.cos(e);s=Math.atan2(o*l,mt(h,l*n)),e=Math.atan2(h,l*n),a=G(e+this.long0,this.over),i=Zs(this.cgb,s)}else a=1/0,i=1/0;return t.x=a,t.y=i,t}var Xn=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"];const us={init:Hn,forward:Qn,inverse:Jn,names:Xn};function Kn(t,e){if(t===void 0){if(t=Math.floor((G(e)+Math.PI)*30/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var Zn="etmerc";function Yn(){var t=Kn(this.zone,this.long0);if(t===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Z,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,us.init.apply(this),this.forward=us.forward,this.inverse=us.inverse}var to=["Universal Transverse Mercator System","utm"];const eo={init:Yn,names:to,dependsOn:Zn};function Ys(t,e){return Math.pow((1-t)/(1+t),e)}var so=20;function ao(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+D)/(Math.pow(Math.tan(.5*this.lat0+D),this.C)*Ys(this.e*t,this.ratexp))}function io(t){var e=t.x,s=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*s+D),this.C)*Ys(this.e*Math.sin(s),this.ratexp))-P,t.x=this.C*e,t}function ro(t){for(var e=1e-14,s=t.x/this.C,a=t.y,i=Math.pow(Math.tan(.5*a+D)/this.K,1/this.C),r=so;r>0&&(a=2*Math.atan(i*Ys(this.e*Math.sin(t.y),-.5*this.e))-P,!(Math.abs(a-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=p&&Math.abs(Math.cos(this.lat_ts))>p&&(this.k0=.5*this.cons*Ct(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/Gt(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=Ct(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(ea(this.lat0,this.sinlat0,this.e))-P,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function go(t){var e=t.x,s=t.y,a=Math.sin(s),i=Math.cos(s),r,o,n,h,l,g,f=G(e-this.long0,this.over);return Math.abs(Math.abs(e-this.long0)-Math.PI)<=p&&Math.abs(s+this.lat0)<=p?(t.x=NaN,t.y=NaN,t):this.sphere?(r=2*this.k0/(1+this.sinlat0*a+this.coslat0*i*Math.cos(f)),t.x=this.a*r*i*Math.sin(f)+this.x0,t.y=this.a*r*(this.coslat0*a-this.sinlat0*i*Math.cos(f))+this.y0,t):(o=2*Math.atan(ea(s,a,this.e))-P,h=Math.cos(o),n=Math.sin(o),Math.abs(this.coslat0)<=p?(l=Gt(this.e,s*this.con,this.con*a),g=2*this.a*this.k0*l/this.cons,t.x=this.x0+g*Math.sin(e-this.long0),t.y=this.y0-this.con*g*Math.cos(e-this.long0),t):(Math.abs(this.sinlat0)0?e=G(this.long0+Math.atan2(t.x,-1*t.y),this.over):e=G(this.long0+Math.atan2(t.x,t.y),this.over):e=G(this.long0+Math.atan2(t.x*Math.sin(n),o*this.coslat0*Math.cos(n)-t.y*this.sinlat0*Math.sin(n)),this.over),t.x=e,t.y=s,t)}else if(Math.abs(this.coslat0)<=p){if(o<=p)return s=this.lat0,e=this.long0,t.x=e,t.y=s,t;t.x*=this.con,t.y*=this.con,a=o*this.cons/(2*this.a*this.k0),s=this.con*Oe(this.e,a),e=this.con*G(this.con*this.long0+Math.atan2(t.x,-1*t.y),this.over)}else i=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=p?r=this.X0:(r=Math.asin(Math.cos(i)*this.sinX0+t.y*Math.sin(i)*this.cosX0/o),e=G(this.long0+Math.atan2(t.x*Math.sin(i),o*this.cosX0*Math.cos(i)-t.y*this.sinX0*Math.sin(i)),this.over)),s=-1*Oe(this.e,Math.tan(.5*(P+r)));return t.x=e,t.y=s,t}var _o=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"];const Mo={init:fo,forward:go,inverse:vo,names:_o,ssfn_:ea};function mo(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),s=this.a,a=this.rf,i=1/a,r=2*i-Math.pow(i,2),o=this.e=Math.sqrt(r);this.R=this.k0*s*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var n=Math.log(Math.tan(Math.PI/4+this.b0/2)),h=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+o*e)/(1-o*e));this.K=n-this.alpha*h+this.alpha*o/2*l}function yo(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),s=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),a=-this.alpha*(e+s)+this.K,i=2*(Math.atan(Math.exp(a))-Math.PI/4),r=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(r)/(Math.sin(this.b0)*Math.tan(i)+Math.cos(this.b0)*Math.cos(r))),n=Math.asin(Math.cos(this.b0)*Math.sin(i)-Math.sin(this.b0)*Math.cos(i)*Math.cos(r));return t.y=this.R/2*Math.log((1+Math.sin(n))/(1-Math.sin(n)))+this.y0,t.x=this.R*o+this.x0,t}function wo(t){for(var e=t.x-this.x0,s=t.y-this.y0,a=e/this.R,i=2*(Math.atan(Math.exp(s/this.R))-Math.PI/4),r=Math.asin(Math.cos(this.b0)*Math.sin(i)+Math.sin(this.b0)*Math.cos(i)*Math.cos(a)),o=Math.atan(Math.sin(a)/(Math.cos(this.b0)*Math.cos(a)-Math.sin(this.b0)*Math.tan(i))),n=this.lambda0+o/this.alpha,h=0,l=r,g=-1e3,f=0;Math.abs(l-g)>1e-7;){if(++f>20)return;h=1/this.alpha*(Math.log(Math.tan(Math.PI/4+r/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),g=l,l=2*Math.atan(Math.exp(h))-Math.PI/2}return t.x=n,t.y=l,t}var Eo=["somerc"];const So={init:mo,forward:yo,inverse:wo,names:Eo};var ie=1e-7;function Po(t){var e=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],s=typeof t.projName=="object"?Object.keys(t.projName)[0]:t.projName;return"no_uoff"in t||"no_off"in t||e.indexOf(s)!==-1||e.indexOf(Za(s))!==-1}function xo(){var t,e,s,a,i,r,o,n,h,l,g=0,f,u=0,m=0,w=0,E=0,S=0,b=0;this.no_off=Po(this),this.no_rot="no_rot"in this;var A=!1;"alpha"in this&&(A=!0);var I=!1;if("rectified_grid_angle"in this&&(I=!0),A&&(b=this.alpha),I&&(g=this.rectified_grid_angle,A||(b=0,A=!0)),A||I)u=this.longc;else if(m=this.long1,E=this.lat1,w=this.long2,S=this.lat2,Math.abs(E-S)<=ie||(t=Math.abs(E))<=ie||Math.abs(t-P)<=ie||Math.abs(Math.abs(this.lat0)-P)<=ie||Math.abs(Math.abs(S)-P)<=ie)throw new Error;var R=1-this.es;e=Math.sqrt(R),Math.abs(this.lat0)>p?(n=Math.sin(this.lat0),s=Math.cos(this.lat0),t=1-this.es*n*n,this.B=s*s,this.B=Math.sqrt(1+this.es*this.B*this.B/R),this.A=this.B*this.k0*e/t,a=this.B*e/(s*Math.sqrt(t)),i=a*a-1,i<=0?i=0:(i=Math.sqrt(i),this.lat0<0&&(i=-i)),this.E=i+=a,this.E*=Math.pow(Gt(this.e,this.lat0,n),this.B)):(this.B=1/e,this.A=this.k0,this.E=a=i=1),A||I?(A?(f=Math.asin(Math.sin(b)/a),I||(g=b)):(f=g,b=Math.asin(a*Math.sin(f))),this.lam0=u-Math.asin(.5*(i-1/i)*Math.tan(f))/this.B):(r=Math.pow(Gt(this.e,E,Math.sin(E)),this.B),o=Math.pow(Gt(this.e,S,Math.sin(S)),this.B),i=this.E/r,h=(o-r)/(o+r),l=this.E*this.E,l=(l-o*r)/(l+o*r),t=m-w,t<-Math.PI?w-=Re:t>Math.PI&&(w+=Re),this.lam0=G(.5*(m+w)-Math.atan(l*Math.tan(.5*this.B*(m-w))/h)/this.B,this.over),f=Math.atan(2*Math.sin(this.B*G(m-this.lam0,this.over))/(i-1/i)),g=b=Math.asin(a*Math.sin(f))),this.singam=Math.sin(f),this.cosgam=Math.cos(f),this.sinrot=Math.sin(g),this.cosrot=Math.cos(g),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(a*a-1)/Math.cos(b))),this.lat0<0&&(this.u_0=-this.u_0)),i=.5*f,this.v_pole_n=this.ArB*Math.log(Math.tan(D-i)),this.v_pole_s=this.ArB*Math.log(Math.tan(D+i))}function po(t){var e={},s,a,i,r,o,n,h,l;if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-P)>p){if(o=this.E/Math.pow(Gt(this.e,t.y,Math.sin(t.y)),this.B),n=1/o,s=.5*(o-n),a=.5*(o+n),r=Math.sin(this.B*t.x),i=(s*this.singam-r*this.cosgam)/a,Math.abs(Math.abs(i)-1)0?this.v_pole_n:this.v_pole_s,h=this.ArB*t.y;return this.no_rot?(e.x=h,e.y=l):(h-=this.u_0,e.x=l*this.cosrot+h*this.sinrot,e.y=h*this.cosrot-l*this.sinrot),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e}function bo(t){var e,s,a,i,r,o,n,h={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(s=t.y,e=t.x):(s=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),a=Math.exp(-this.BrA*s),i=.5*(a-1/a),r=.5*(a+1/a),o=Math.sin(this.BrA*e),n=(o*this.cosgam+i*this.singam)/r,Math.abs(Math.abs(n)-1)p?this.ns=Math.log(a/n)/Math.log(i/h):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=a/(this.ns*Math.pow(i,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function Io(t){var e=t.x,s=t.y;Math.abs(2*Math.abs(s)-Math.PI)<=p&&(s=ke(s)*(P-2*p));var a=Math.abs(Math.abs(s)-P),i,r;if(a>p)i=Gt(this.e,s,Math.sin(s)),r=this.a*this.f0*Math.pow(i,this.ns);else{if(a=s*this.ns,a<=0)return null;r=0}var o=this.ns*G(e-this.long0,this.over);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t}function Co(t){var e,s,a,i,r,o=(t.x-this.x0)/this.k0,n=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+n*n),s=1):(e=-Math.sqrt(o*o+n*n),s=-1);var h=0;if(e!==0&&(h=Math.atan2(s*o,s*n)),e!==0||this.ns>0){if(s=1/this.ns,a=Math.pow(e/(this.a*this.f0),s),i=Oe(this.e,a),i===-9999)return null}else i=-P;return r=G(h/this.ns+this.long0,this.over),t.x=r,t.y=i,t}var Lo=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"];const Ro={init:Ao,forward:Io,inverse:Co,names:Lo};function To(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function Oo(t){var e,s,a,i,r,o,n,h=t.x,l=t.y,g=G(h-this.long0,this.over);return e=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),s=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/e)-this.s45),a=-g*this.alfa,i=Math.asin(Math.cos(this.ad)*Math.sin(s)+Math.sin(this.ad)*Math.cos(s)*Math.cos(a)),r=Math.asin(Math.cos(s)*Math.sin(a)/Math.cos(i)),o=this.n*r,n=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(i/2+this.s45),this.n),t.y=n*Math.cos(o)/1,t.x=n*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t}function Fo(t){var e,s,a,i,r,o,n,h,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),o=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x),i=r/Math.sin(this.s0),a=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(a)-Math.sin(this.ad)*Math.cos(a)*Math.cos(i)),s=Math.asin(Math.cos(a)*Math.sin(i)/Math.cos(e)),t.x=this.long0-s/this.alfa,n=e,h=0;var g=0;do t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(n))/(1-this.e*Math.sin(n)),this.e/2))-this.s45),Math.abs(n-t.y)<1e-10&&(h=1),n=t.y,g+=1;while(h===0&&g<15);return g>=15?null:t}var jo=["Krovak","Krovak Modified","Krovak (North Orientated)","Krovak Modified (North Orientated)","krovak"];const ko={init:To,forward:Oo,inverse:Fo,names:jo};function vt(t,e,s,a,i){return t*i-e*Math.sin(2*i)+s*Math.sin(4*i)-a*Math.sin(6*i)}function qe(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function $e(t){return .375*t*(1+.25*t*(1+.46875*t))}function De(t){return .05859375*t*t*(1+.75*t)}function Ue(t){return t*t*t*(35/3072)}function sa(t,e,s){var a=e*s;return t/Math.sqrt(1-a*a)}function Ut(t){return Math.abs(t)1e-7?(s=t*e,(1-t*t)*(e/(1-s*s)-.5/t*Math.log((1-s)/(1+s)))):2*e}var zo=.3333333333333333,Wo=.17222222222222222,Vo=.10257936507936508,Ho=.06388888888888888,Qo=.0664021164021164,Jo=.016415012942191543;function ui(t){var e,s=[];return s[0]=t*zo,e=t*t,s[0]+=e*Wo,s[1]=e*Ho,e*=t,s[0]+=e*Vo,s[1]+=e*Qo,s[2]=e*Jo,s}function ci(t,e){var s=t+t;return t+e[0]*Math.sin(s)+e[1]*Math.sin(s+s)+e[2]*Math.sin(s+s+s)}var Us=1,Bs=2,zs=3,cs=4;function Xo(){var t=Math.abs(this.lat0);if(Math.abs(t-P)0){var e;switch(this.qp=It(this.e,1),this.mmf=.5/(1-this.es),this.apa=ui(this.es),this.mode){case Bs:this.dd=1;break;case Us:this.dd=1;break;case zs:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case cs:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=It(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===cs&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Ko(t){var e,s,a,i,r,o,n,h,l,g,f=t.x,u=t.y;if(f=G(f-this.long0,this.over),this.sphere){if(r=Math.sin(u),g=Math.cos(u),a=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(s=this.mode===this.EQUIT?1+g*a:1+this.sinph0*r+this.cosph0*g*a,s<=p)return null;s=Math.sqrt(2/s),e=s*g*Math.sin(f),s*=this.mode===this.EQUIT?r:this.cosph0*r-this.sinph0*g*a}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(a=-a),Math.abs(u+this.lat0)=0?(e=(l=Math.sqrt(o))*i,s=a*(this.mode===this.S_POLE?l:-l)):e=s=0;break}}return t.x=this.a*e+this.x0,t.y=this.a*s+this.y0,t}function Zo(t){t.x-=this.x0,t.y-=this.y0;var e=t.x/this.a,s=t.y/this.a,a,i,r,o,n,h,l;if(this.sphere){var g=0,f,u=0;if(f=Math.sqrt(e*e+s*s),i=f*.5,i>1)return null;switch(i=2*Math.asin(i),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(u=Math.sin(i),g=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(f)<=p?0:Math.asin(s*u/f),e*=u,s=g*f;break;case this.OBLIQ:i=Math.abs(f)<=p?this.lat0:Math.asin(g*this.sinph0+s*u*this.cosph0/f),e*=u*this.cosph0,s=(g-Math.sin(i)*this.sinph0)*f;break;case this.N_POLE:s=-s,i=P-i;break;case this.S_POLE:i-=P;break}a=s===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(e,s)}else{if(l=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e/=this.dd,s*=this.dd,h=Math.sqrt(e*e+s*s),h1&&(t=t>1?1:-1),Math.asin(t)}function eh(){Math.abs(this.lat1+this.lat2)p?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function sh(t){var e=t.x,s=t.y;this.sin_phi=Math.sin(s),this.cos_phi=Math.cos(s);var a=It(this.e3,this.sin_phi),i=this.a*Math.sqrt(this.c-this.ns0*a)/this.ns0,r=this.ns0*G(e-this.long0,this.over),o=i*Math.sin(r)+this.x0,n=this.rh-i*Math.cos(r)+this.y0;return t.x=o,t.y=n,t}function ah(t){var e,s,a,i,r,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),a=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),a=-1),i=0,e!==0&&(i=Math.atan2(a*t.x,a*t.y)),a=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-a*a)/(2*this.ns0)):(s=(this.c-a*a)/this.ns0,o=this.phi1z(this.e3,s)),r=G(i/this.ns0+this.long0,this.over),t.x=r,t.y=o,t}function ih(t,e){var s,a,i,r,o,n=Dt(.5*e);if(t0||Math.abs(o)<=p?(n=this.x0+this.a*r*s*Math.sin(a)/o,h=this.y0+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)/o):(n=this.x0+this.infinity_dist*s*Math.sin(a),h=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function lh(t){var e,s,a,i,r,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(i=Math.atan2(e,this.rc),s=Math.sin(i),a=Math.cos(i),o=Dt(a*this.sin_p14+t.y*s*this.cos_p14/e),r=Math.atan2(t.x*s,e*this.cos_p14*a-t.y*this.sin_p14*s),r=G(this.long0+r,this.over)):(o=this.phic0,r=0),t.x=r,t.y=o,t}var uh=["gnom"];const ch={init:oh,forward:hh,inverse:lh,names:uh};function fh(t,e){var s=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-s)<1e-6)return e<0?-1*P:P;for(var a=Math.asin(.5*e),i,r,o,n,h=0;h<30;h++)if(r=Math.sin(a),o=Math.cos(a),n=t*r,i=Math.pow(1-n*n,2)/(2*o)*(e/(1-t*t)-r/(1-n*n)+.5/t*Math.log((1-n)/(1+n))),a+=i,Math.abs(i)<=1e-10)return a;return NaN}function gh(){this.sphere||(this.k0=Ct(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function vh(t){var e=t.x,s=t.y,a,i,r=G(e-this.long0,this.over);if(this.sphere)a=this.x0+this.a*r*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(s)/Math.cos(this.lat_ts);else{var o=It(this.e,Math.sin(s));a=this.x0+this.a*this.k0*r,i=this.y0+this.a*o*.5/this.k0}return t.x=a,t.y=i,t}function dh(t){t.x-=this.x0,t.y-=this.y0;var e,s;return this.sphere?(e=G(this.long0+t.x/this.a/Math.cos(this.lat_ts),this.over),s=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(s=fh(this.e,2*t.y*this.k0/this.a),e=G(this.long0+t.x/(this.a*this.k0),this.over)),t.x=e,t.y=s,t}var _h=["cea"];const Mh={init:gh,forward:vh,inverse:dh,names:_h};function mh(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function yh(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i=Ut(s-this.lat0);return t.x=this.x0+this.a*a*this.rc,t.y=this.y0+this.a*i,t}function wh(t){var e=t.x,s=t.y;return t.x=G(this.long0+(e-this.x0)/(this.a*this.rc),this.over),t.y=Ut(this.lat0+(s-this.y0)/this.a),t}var Eh=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"];const Sh={init:mh,forward:yh,inverse:wh,names:Eh};var Fa=20;function Ph(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=qe(this.es),this.e1=$e(this.es),this.e2=De(this.es),this.e3=Ue(this.es),this.ml0=this.a*vt(this.e0,this.e1,this.e2,this.e3,this.lat0)}function xh(t){var e=t.x,s=t.y,a,i,r,o=G(e-this.long0,this.over);if(r=o*Math.sin(s),this.sphere)Math.abs(s)<=p?(a=this.a*o,i=-1*this.a*this.lat0):(a=this.a*Math.sin(r)/Math.tan(s),i=this.a*(Ut(s-this.lat0)+(1-Math.cos(r))/Math.tan(s)));else if(Math.abs(s)<=p)a=this.a*o,i=-1*this.ml0;else{var n=sa(this.a,this.e,Math.sin(s))/Math.tan(s);a=n*Math.sin(r),i=this.a*vt(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+n*(1-Math.cos(r))}return t.x=a+this.x0,t.y=i+this.y0,t}function ph(t){var e,s,a,i,r,o,n,h,l;if(a=t.x-this.x0,i=t.y-this.y0,this.sphere)if(Math.abs(i+this.a*this.lat0)<=p)e=G(a/this.a+this.long0,this.over),s=0;else{o=this.lat0+i/this.a,n=a*a/this.a/this.a+o*o,h=o;var g;for(r=Fa;r;--r)if(g=Math.tan(h),l=-1*(o*(h*g+1)-h-.5*(h*h+n)*g)/((h-o)/g-1),h+=l,Math.abs(l)<=p){s=h;break}e=G(this.long0+Math.asin(a*Math.tan(h)/this.a)/Math.sin(s),this.over)}else if(Math.abs(i+this.ml0)<=p)s=0,e=G(this.long0+a/this.a,this.over);else{o=(this.ml0+i)/this.a,n=a*a/this.a/this.a+o*o,h=o;var f,u,m,w,E;for(r=Fa;r;--r)if(E=this.e*Math.sin(h),f=Math.sqrt(1-E*E)*Math.tan(h),u=this.a*vt(this.e0,this.e1,this.e2,this.e3,h),m=this.e0-2*this.e1*Math.cos(2*h)+4*this.e2*Math.cos(4*h)-6*this.e3*Math.cos(6*h),w=u/this.a,l=(o*(f*w+1)-w-.5*f*(w*w+n))/(this.es*Math.sin(2*h)*(w*w+n-2*o*w)/(4*f)+(o-w)*(f*m-2/Math.sin(2*h))-m),h-=l,Math.abs(l)<=p){s=h;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(s),2))*Math.tan(s),e=G(this.long0+Math.asin(a*f/this.a)/Math.sin(s),this.over)}return t.x=e,t.y=s,t}var bh=["Polyconic","American_Polyconic","poly"];const Gh={init:Ph,forward:xh,inverse:ph,names:bh};function Nh(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Ah(t){var e,s=t.x,a=t.y,i=a-this.lat0,r=s-this.long0,o=i/Ne*1e-5,n=r,h=1,l=0;for(e=1;e<=10;e++)h=h*o,l=l+this.A[e]*h;var g=l,f=n,u=1,m=0,w,E,S=0,b=0;for(e=1;e<=6;e++)w=u*g-m*f,E=m*g+u*f,u=w,m=E,S=S+this.B_re[e]*u-this.B_im[e]*m,b=b+this.B_im[e]*u+this.B_re[e]*m;return t.x=b*this.a+this.x0,t.y=S*this.a+this.y0,t}function Ih(t){var e,s=t.x,a=t.y,i=s-this.x0,r=a-this.y0,o=r/this.a,n=i/this.a,h=1,l=0,g,f,u=0,m=0;for(e=1;e<=6;e++)g=h*o-l*n,f=l*o+h*n,h=g,l=f,u=u+this.C_re[e]*h-this.C_im[e]*l,m=m+this.C_im[e]*h+this.C_re[e]*l;for(var w=0;w.999999999999&&(s=.999999999999),e=Math.asin(s);var a=G(this.long0+t.x/(.900316316158*this.a*Math.cos(e)),this.over);a<-Math.PI&&(a=-Math.PI),a>Math.PI&&(a=Math.PI),s=(2*e+Math.sin(2*e))/Math.PI,Math.abs(s)>1&&(s=1);var i=Math.asin(s);return t.x=a,t.y=i,t}var Xh=["Mollweide","moll"];const Kh={init:Hh,forward:Qh,inverse:Jh,names:Xh};function Zh(){Math.abs(this.lat1+this.lat2)=0?(s=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(s=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var r=0;if(s!==0&&(r=Math.atan2(e*t.x,e*t.y)),this.sphere)return i=G(this.long0+r/this.ns,this.over),a=Ut(this.g-s/this.a),t.x=i,t.y=a,t;var o=this.g-s/this.a;return a=ms(o,this.e0,this.e1,this.e2,this.e3),i=G(this.long0+r/this.ns,this.over),t.x=i,t.y=a,t}var e0=["Equidistant_Conic","eqdc"];const s0={init:Zh,forward:Yh,inverse:t0,names:e0};function a0(){this.R=this.a}function i0(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i,r;Math.abs(s)<=p&&(i=this.x0+this.R*a,r=this.y0);var o=Dt(2*Math.abs(s/Math.PI));(Math.abs(a)<=p||Math.abs(Math.abs(s)-P)<=p)&&(i=this.x0,s>=0?r=this.y0+Math.PI*this.R*Math.tan(.5*o):r=this.y0+Math.PI*this.R*-Math.tan(.5*o));var n=.5*Math.abs(Math.PI/a-a/Math.PI),h=n*n,l=Math.sin(o),g=Math.cos(o),f=g/(l+g-1),u=f*f,m=f*(2/l-1),w=m*m,E=Math.PI*this.R*(n*(f-w)+Math.sqrt(h*(f-w)*(f-w)-(w+h)*(u-w)))/(w+h);a<0&&(E=-E),i=this.x0+E;var S=h+f;return E=Math.PI*this.R*(m*S-n*Math.sqrt((w+h)*(h+1)-S*S))/(w+h),s>=0?r=this.y0+E:r=this.y0-E,t.x=i,t.y=r,t}function r0(t){var e,s,a,i,r,o,n,h,l,g,f,u,m;return t.x-=this.x0,t.y-=this.y0,f=Math.PI*this.R,a=t.x/f,i=t.y/f,r=a*a+i*i,o=-Math.abs(i)*(1+r),n=o-2*i*i+a*a,h=-2*o+1+2*i*i+r*r,m=i*i/h+(2*n*n*n/h/h/h-9*o*n/h/h)/27,l=(o-n*n/3/h)/h,g=2*Math.sqrt(-l/3),f=3*m/l/g,Math.abs(f)>1&&(f>=0?f=1:f=-1),u=Math.acos(f)/3,t.y>=0?s=(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI:s=-(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI,Math.abs(a)1e-12&&--E>0);return E===0?{azi1:NaN,s12:NaN}:(W=O*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),dt=1+W/16384*(4096+W*(-768+W*(320-175*W))),lt=W/1024*(256+W*(-128+W*(74-47*W))),B=lt*A*(F+lt/4*(I*(-1+2*F*F)-lt/6*F*(-3+4*A*A)*(-3+4*F*F))),_t=i*(1-r)*dt*(R-B),{azi1:Math.atan2(u*S,g*f-l*u*b),s12:_t})}function l0(t,e,s,a,i,r){const o=Math.atan((1-r)*Math.tan(t)),n=Math.sin(o),h=Math.cos(o),l=Math.sin(s),g=Math.cos(s),f=Math.atan2(n,h*g),u=h*l,m=1-u*u,w=m*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),E=1+w/16384*(4096+w*(-768+w*(320-175*w))),S=w/1024*(256+w*(-128+w*(74-47*w)));let b=a/(i*(1-r)*E),A,I=100,R,j,O,F;do R=Math.cos(2*f+b),j=Math.sin(b),O=Math.cos(b),F=S*j*(R+S/4*(O*(-1+2*R*R)-S/6*R*(-3+4*j*j)*(-3+4*R*R))),A=b,b=a/(i*(1-r)*E)+F;while(Math.abs(b-A)>1e-12&&--I>0);if(I===0)return{lat2:NaN,lon2:NaN};const K=n*j-h*O*g,W=Math.atan2(n*O+h*j*g,(1-r)*Math.sqrt(u*u+K*K)),dt=Math.atan2(j*l,h*O-n*j*g),lt=r/16*m*(4+r*(4-3*m)),B=dt-(1-lt)*r*u*(b+lt*j*(R+lt*O*(-1+2*R*R))),_t=e+B;return{lat2:W,lon2:_t}}function u0(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function c0(t){var e=t.x,s=t.y,a=Math.sin(t.y),i=Math.cos(t.y),r=G(e-this.long0,this.over),o,n,h,l,g,f,u,m,w,E,S;return this.sphere?Math.abs(this.sin_p12-1)<=p?(t.x=this.x0+this.a*(P-s)*Math.sin(r),t.y=this.y0-this.a*(P-s)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=p?(t.x=this.x0+this.a*(P+s)*Math.sin(r),t.y=this.y0+this.a*(P+s)*Math.cos(r),t):(w=this.sin_p12*a+this.cos_p12*i*Math.cos(r),u=Math.acos(w),m=u?u/Math.sin(u):1,t.x=this.x0+this.a*m*i*Math.sin(r),t.y=this.y0+this.a*m*(this.cos_p12*a-this.sin_p12*i*Math.cos(r)),t):(o=qe(this.es),n=$e(this.es),h=De(this.es),l=Ue(this.es),Math.abs(this.sin_p12-1)<=p?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g-f)*Math.sin(r),t.y=this.y0-(g-f)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=p?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g+f)*Math.sin(r),t.y=this.y0+(g+f)*Math.cos(r),t):Math.abs(e)2*P*this.a?void 0:(s=e/this.a,a=Math.sin(s),i=Math.cos(s),r=this.long0,Math.abs(e)<=p?o=this.lat0:(o=Dt(i*this.sin_p12+t.y*a*this.cos_p12/e),n=Math.abs(this.lat0)-P,Math.abs(n)<=p?this.lat0>=0?r=G(this.long0+Math.atan2(t.x,-t.y),this.over):r=G(this.long0-Math.atan2(-t.x,t.y),this.over):r=G(this.long0+Math.atan2(t.x*a,e*this.cos_p12*i-t.y*this.sin_p12*a),this.over)),t.x=r,t.y=o,t)):(h=qe(this.es),l=$e(this.es),g=De(this.es),f=Ue(this.es),Math.abs(this.sin_p12-1)<=p?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),m=u-e,o=ms(m/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,-1*t.y),this.over),t.x=r,t.y=o,t):Math.abs(this.sin_p12+1)<=p?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),m=e-u,o=ms(m/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,t.y),this.over),t.x=r,t.y=o,t):(w=Math.atan2(t.x,t.y),E=Math.sqrt(t.x*t.x+t.y*t.y),S=l0(this.lat0,this.long0,w,E,this.a,this.f),t.x=S.lon2,t.y=S.lat2,t))}var g0=["Azimuthal_Equidistant","aeqd"];const v0={init:u0,forward:c0,inverse:f0,names:g0};function d0(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function _0(t){var e,s,a,i,r,o,n,h,l=t.x,g=t.y;return a=G(l-(this.long0||0),this.over),e=Math.sin(g),s=Math.cos(g),i=Math.cos(a),o=this.sin_p14*e+this.cos_p14*s*i,r=1,(o>0||Math.abs(o)<=p)&&(n=this.a*r*s*Math.sin(a),h=(this.y0||0)+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function M0(t){var e,s,a,i,r,o,n,h,l;return t.x-=this.x0||0,t.y-=this.y0||0,e=Math.sqrt(t.x*t.x+t.y*t.y),s=Dt(e/this.a),a=Math.sin(s),i=Math.cos(s),h=this.long0||0,l=this.lat0||0,o=h,Math.abs(e)<=p?(n=l,t.x=o,t.y=n,t):(n=Dt(i*this.sin_p14+t.y*a*this.cos_p14/e),r=Math.abs(l)-P,Math.abs(r)<=p?(l>=0?o=G(h+Math.atan2(t.x,-t.y),this.over):o=G(h-Math.atan2(-t.x,t.y),this.over),t.x=o,t.y=n,t):(o=G(h+Math.atan2(t.x*a,e*this.cos_p14*i-t.y*this.sin_p14*a),this.over),t.x=o,t.y=n,t))}var m0=["ortho"];const y0={init:d0,forward:_0,inverse:M0,names:m0};var X={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},U={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function w0(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=P-D/2?this.face=X.TOP:this.lat0<=-(P-D/2)?this.face=X.BOTTOM:Math.abs(this.long0)<=D?this.face=X.FRONT:Math.abs(this.long0)<=P+D?this.face=this.long0>0?X.RIGHT:X.LEFT:this.face=X.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function E0(t){var e={x:0,y:0},s,a,i,r,o,n,h={value:0};if(t.x-=this.long0,this.es!==0?s=Math.atan(this.one_minus_f_squared*Math.tan(t.y)):s=t.y,a=t.x,this.face===X.TOP)r=P-s,a>=D&&a<=P+D?(h.value=U.AREA_0,i=a-P):a>P+D||a<=-(P+D)?(h.value=U.AREA_1,i=a>0?a-tt:a+tt):a>-(P+D)&&a<=-D?(h.value=U.AREA_2,i=a+P):(h.value=U.AREA_3,i=a);else if(this.face===X.BOTTOM)r=P+s,a>=D&&a<=P+D?(h.value=U.AREA_0,i=-a+P):a=-D?(h.value=U.AREA_1,i=-a):a<-D&&a>=-(P+D)?(h.value=U.AREA_2,i=-a-P):(h.value=U.AREA_3,i=a>0?-a+tt:-a-tt);else{var l,g,f,u,m,w,E;this.face===X.RIGHT?a=ue(a,+P):this.face===X.BACK?a=ue(a,+tt):this.face===X.LEFT&&(a=ue(a,-P)),u=Math.sin(s),m=Math.cos(s),w=Math.sin(a),E=Math.cos(a),l=m*E,g=m*w,f=u,this.face===X.FRONT?(r=Math.acos(l),i=os(r,f,g,h)):this.face===X.RIGHT?(r=Math.acos(g),i=os(r,f,-l,h)):this.face===X.BACK?(r=Math.acos(-l),i=os(r,f,-g,h)):this.face===X.LEFT?(r=Math.acos(-g),i=os(r,f,l,h)):(r=i=0,h.value=U.AREA_0)}return n=Math.atan(12/tt*(i+Math.acos(Math.sin(i)*Math.cos(D))-P)),o=Math.sqrt((1-Math.cos(r))/(Math.cos(n)*Math.cos(n))/(1-Math.cos(Math.atan(1/Math.cos(i))))),h.value===U.AREA_1?n+=P:h.value===U.AREA_2?n+=tt:h.value===U.AREA_3&&(n+=1.5*tt),e.x=o*Math.cos(n),e.y=o*Math.sin(n),e.x=e.x*this.a+this.x0,e.y=e.y*this.a+this.y0,t.x=e.x,t.y=e.y,t}function S0(t){var e={lam:0,phi:0},s,a,i,r,o,n,h,l,g,f={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,a=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),s=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?f.value=U.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(f.value=U.AREA_1,s-=P):t.x<0&&-t.x>=Math.abs(t.y)?(f.value=U.AREA_2,s=s<0?s+tt:s-tt):(f.value=U.AREA_3,s+=P),g=tt/12*Math.tan(s),o=Math.sin(g)/(Math.cos(g)-1/Math.sqrt(2)),n=Math.atan(o),i=Math.cos(s),r=Math.tan(a),h=1-i*i*r*r*(1-Math.cos(Math.atan(1/Math.cos(n)))),h<-1?h=-1:h>1&&(h=1),this.face===X.TOP)l=Math.acos(h),e.phi=P-l,f.value===U.AREA_0?e.lam=n+P:f.value===U.AREA_1?e.lam=n<0?n+tt:n-tt:f.value===U.AREA_2?e.lam=n-P:e.lam=n;else if(this.face===X.BOTTOM)l=Math.acos(h),e.phi=l-P,f.value===U.AREA_0?e.lam=-n+P:f.value===U.AREA_1?e.lam=-n:f.value===U.AREA_2?e.lam=-n-P:e.lam=n<0?-n-tt:-n+tt;else{var u,m,w;u=h,g=u*u,g>=1?w=0:w=Math.sqrt(1-g)*Math.sin(n),g+=w*w,g>=1?m=0:m=Math.sqrt(1-g),f.value===U.AREA_1?(g=m,m=-w,w=g):f.value===U.AREA_2?(m=-m,w=-w):f.value===U.AREA_3&&(g=m,m=w,w=-g),this.face===X.RIGHT?(g=u,u=-m,m=g):this.face===X.BACK?(u=-u,m=-m):this.face===X.LEFT&&(g=u,u=m,m=-g),e.phi=Math.acos(-w)-P,e.lam=Math.atan2(m,u),this.face===X.RIGHT?e.lam=ue(e.lam,-P):this.face===X.BACK?e.lam=ue(e.lam,-tt):this.face===X.LEFT&&(e.lam=ue(e.lam,+P))}if(this.es!==0){var E,S,b;E=e.phi<0?1:0,S=Math.tan(e.phi),b=this.b/Math.sqrt(S*S+this.one_minus_f_squared),e.phi=Math.atan(Math.sqrt(this.a*this.a-b*b)/(this.one_minus_f*b)),E&&(e.phi=-e.phi)}return e.lam+=this.long0,t.x=e.lam,t.y=e.phi,t}function os(t,e,s,a){var i;return tD&&i<=P+D?(a.value=U.AREA_1,i-=P):i>P+D||i<=-(P+D)?(a.value=U.AREA_2,i=i>=0?i-tt:i+tt):(a.value=U.AREA_3,i+=P)),i}function ue(t,e){var s=t+e;return s<-tt?s+=Re:s>+tt&&(s-=Re),s}var P0=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"];const x0={init:w0,forward:E0,inverse:S0,names:P0};var Ws=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Ge=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],vi=.8487,di=1.3523,_i=yt/5,p0=1/_i,he=18,ys=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))},b0=function(t,e){return t[1]+e*(2*t[2]+e*3*t[3])};function G0(t,e,s,a){for(var i=e;a;--a){var r=t(i);if(i-=r,Math.abs(r)=he&&(a=he-1),s=yt*(s-p0*a);var i={x:ys(Ws[a],s)*e,y:ys(Ge[a],s)};return t.y<0&&(i.y=-i.y),i.x=i.x*this.a*vi+this.x0,i.y=i.y*this.a*di+this.y0,i}function I0(t){var e={x:(t.x-this.x0)/(this.a*vi),y:Math.abs(t.y-this.y0)/(this.a*di)};if(e.y>=1)e.x/=Ws[he][0],e.y=t.y<0?-P:P;else{var s=Math.floor(e.y*he);for(s<0?s=0:s>=he&&(s=he-1);;)if(Ge[s][0]>e.y)--s;else if(Ge[s+1][0]<=e.y)++s;else break;var a=Ge[s],i=5*(e.y-a[0])/(Ge[s+1][0]-a[0]);i=G0(function(r){return(ys(a,r)-e.y)/b0(a,r)},i,p,100),e.x/=ys(Ws[s],i),e.y=(5*s+i)*Z,t.y<0&&(e.y=-e.y)}return e.x=G(e.x+this.long0,this.over),e}var C0=["Robinson","robin"];const L0={init:N0,forward:A0,inverse:I0,names:C0};function R0(){this.name="geocent"}function T0(t){var e=ti(t,this.es,this.a);return e}function O0(t){var e=ei(t,this.es,this.a,this.b);return e}var F0=["Geocentric","geocentric","geocent","Geocent"];const j0={init:R0,forward:T0,inverse:O0,names:F0};var ct={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},xe={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function k0(){if(Object.keys(xe).forEach(function(s){if(typeof this[s]=="undefined")this[s]=xe[s].def;else{if(xe[s].num&&isNaN(this[s]))throw new Error("Invalid parameter value, must be numeric "+s+" = "+this[s]);xe[s].num&&(this[s]=parseFloat(this[s]))}xe[s].degrees&&(this[s]=this[s]*Z)}.bind(this)),Math.abs(Math.abs(this.lat0)-P)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,e=this.azi;this.cg=Math.cos(e),this.sg=Math.sin(e),this.cw=Math.cos(t),this.sw=Math.sin(t)}function q0(t){t.x-=this.long0;var e=Math.sin(t.y),s=Math.cos(t.y),a=Math.cos(t.x),i,r;switch(this.mode){case ct.OBLIQ:r=this.sinph0*e+this.cosph0*s*a;break;case ct.EQUIT:r=s*a;break;case ct.S_POLE:r=-e;break;case ct.N_POLE:r=e;break}switch(r=this.pn1/(this.p-r),i=r*s*Math.sin(t.x),this.mode){case ct.OBLIQ:r*=this.cosph0*e-this.sinph0*s*a;break;case ct.EQUIT:r*=e;break;case ct.N_POLE:r*=-(s*a);break;case ct.S_POLE:r*=s*a;break}var o,n;return o=r*this.cg+i*this.sg,n=1/(o*this.sw*this.h1+this.cw),i=(i*this.cg-r*this.sg)*this.cw*n,r=o*n,t.x=i*this.a,t.y=r*this.a,t}function $0(t){t.x/=this.a,t.y/=this.a;var e={x:t.x,y:t.y},s,a,i;i=1/(this.pn1-t.y*this.sw),s=this.pn1*t.x*i,a=this.pn1*t.y*this.cw*i,t.x=s*this.cg+a*this.sg,t.y=a*this.cg-s*this.sg;var r=mt(t.x,t.y);if(Math.abs(r)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function z0(t){var e=t.x,s=t.y,a,i,r,o;if(e=e-this.long0,this.shape==="ellipse"){s=Math.atan(this.radius_p2*Math.tan(s));var n=this.radius_p/mt(this.radius_p*Math.cos(s),Math.sin(s));if(i=n*Math.cos(e)*Math.cos(s),r=n*Math.sin(e)*Math.cos(s),o=n*Math.sin(s),(this.radius_g-i)*i-r*r-o*o*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a)))}else this.shape==="sphere"&&(a=Math.cos(s),i=Math.cos(e)*a,r=Math.sin(e)*a,o=Math.sin(s),a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function W0(t){var e=-1,s=0,a=0,i,r,o,n;if(t.x=t.x/this.a,t.y=t.y/this.a,this.shape==="ellipse"){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*mt(1,a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*mt(1,s));var h=a/this.radius_p;if(i=s*s+h*h+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if(this.shape==="sphere"){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+s*s)),i=s*s+a*a+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e)}return t.x=t.x+this.long0,t}var V0=["Geostationary Satellite View","Geostationary_Satellite","geos"];const H0={init:B0,forward:z0,inverse:W0,names:V0};var Ae=1.340264,Ie=-.081106,Ce=893e-6,Le=.003796,ws=Math.sqrt(3)/2;function Q0(){this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.es!==0&&(this.apa=ui(this.es),this.qp=It(this.e,1),this.rqda=Math.sqrt(.5*this.qp))}function J0(t){var e=G(t.x-this.long0,this.over),s=t.y,a=Math.sin(s);this.es!==0&&(a=It(this.e,a)/this.qp);var i=Math.asin(ws*a),r=i*i,o=r*r*r;return t.x=e*Math.cos(i)/(ws*(Ae+3*Ie*r+o*(7*Ce+9*Le*r))),t.y=i*(Ae+Ie*r+o*(Ce+Le*r)),this.es!==0&&(t.x*=this.rqda,t.y*=this.rqda),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function X0(t){t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,this.es!==0&&(t.x/=this.rqda,t.y/=this.rqda);var e=1e-9,s=12,a=t.y,i,r,o,n,h,l;for(l=0;l=P?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=al,this.forward=sl)}function tl(t){var e=G(t.x-(this.long0||0),this.over),s=t.y,a,i,r;return a=this.am1+this.m1-ge(s,i=Math.sin(s),r=Math.cos(s),this.en),i=r*e/(a*Math.sqrt(1-this.es*i*i)),t.x=a*Math.sin(i),t.y=this.am1-a*Math.cos(i),t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function el(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a,i;if(s=mt(t.x,t.y=this.am1-t.y),i=Ks(this.am1+this.m1-s,this.es,this.en),(e=Math.abs(i))Fe?(t.x=i*Math.sin(a=e*Math.cos(s)/i),t.y=this.cphi1-i*Math.cos(a)):t.x=t.y=0,t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function al(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a=mt(t.x,t.y=this.cphi1-t.y);if(s=this.cphi1+this.phi1-a,Math.abs(s)>P)throw new Error;return Math.abs(Math.abs(s)-P)<=Fe?e=0:e=a*Math.atan2(t.x,t.y)/Math.cos(s),t.x=G(e+(this.long0||0),this.over),t.y=Ut(s),t}var il=["bonne","Bonne (Werner lat_1=90)"];const rl={init:Y0,names:il},ja={OBLIQUE:{forward:ul,inverse:fl},TRANSVERSE:{forward:cl,inverse:gl}},Es={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function nl(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=Xa.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);const t=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),e=xt(t);if(!e)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);e.long0=0,this.obliqueProjection=e;let s;const a=Object.keys(Es),i=n=>{if(typeof this[n]=="undefined")return;const h=parseFloat(this[n])*Z;if(isNaN(h))throw new Error("Invalid value for "+n+": "+this[n]);return h};for(let n=0;ntypeof this[u]!="undefined")){s=l;for(let u=0;up?(this.cphip=Math.cos(o),this.sphip=Math.sin(o),this.projectionType=ja.OBLIQUE):this.projectionType=ja.TRANSVERSE}function ol(t){return this.projectionType.forward(this,t)}function hl(t){return this.projectionType.inverse(this,t)}function ll(t,e){let s,a;if(e===Es.ROTATE){let i=t.oLongC,r=t.oLatC,o=t.oAlpha;if(Math.abs(Math.abs(r)-P)<=p)throw new Error("Invalid value for o_lat_c: "+t.o_lat_c+" should be < 90°");a=i+Math.atan2(-1*Math.cos(o),-1*Math.sin(o)*Math.sin(r)),s=Math.asin(Math.cos(r)*Math.sin(o))}else if(e===Es.NEW_POLE)a=t.oLongP,s=t.oLatP;else{let i=t.oLong1,r=t.oLat1,o=t.oLong2,n=t.oLat2,h=Math.abs(r);if(Math.abs(r)>P-p)throw new Error("Invalid value for o_lat_1: "+t.o_lat_1+" should be < 90°");if(Math.abs(n)>P-p)throw new Error("Invalid value for o_lat_2: "+t.o_lat_2+" should be < 90°");if(Math.abs(r-n)new DecompressionStream("deflate-raw"),e=s=>new Response(s);t(),Mi=s=>e(e(s).body.pipeThrough(t())).arrayBuffer().then(a=>new Uint8Array(a))}catch(t){}var Mi,ka=new TextDecoder,ks=t=>{throw Error("but-unzip~"+t)};function*Ml(t,e=Mi){let s=t.length-21,a=s-65536,i=new DataView(t.buffer,t.byteOffset),r=h=>i.getUint16(h+s,1),o=h=>i.getUint32(h+s,1),n=(h,l)=>t.subarray(s+=h,s+=l);for(;s>a&&(s=t.lastIndexOf(80,s-1))+1&&(t[s+1]-75||t[s+2]-5||t[s+3]-6););for(s<0&&ks(2),a=r(10),a-r(8)&&ks(3),s=o(16);a--;){let h=r(10),l=r(28),g=r(30),f=r(32),u=o(20),m=o(42),w=ka.decode(n(46,l)),E=ka.decode(n(g,f)),S=s,b;s=m,b=n(30+r(26)+r(28),u),yield{filename:w,comment:E,read:()=>h-8?h?ks(1):b:e(b)},s=S}}const ml=/.+\.(shp|dbf|json|prj|cpg)$/i,yl=t=>ot(void 0,null,function*(){const e={},s=[];for(const r of Ml(t))ml.test(r.filename)&&s.push(Promise.resolve(r.read()).then(o=>e[r.filename]=o));yield Promise.all(s);const a={},i=new TextDecoder;for(const[r,o]of Object.entries(e))r.slice(-3).toLowerCase()==="shp"||r.slice(-3).toLowerCase()==="dbf"?a[r]=new DataView(o.buffer,o.byteOffset,o.byteLength):a[r]=i.decode(o);return a}),wl=globalThis.URL,El=(t,e)=>{if(!e)return t;const s=new wl(t);return s.pathname=`${s.pathname}.${e}`,s.href};function je(t,e){return ot(this,null,function*(){const s=El(t,e),a=e==="prj"||e==="cpg";try{const i=yield fetch(s);if(i.status>399)throw new Error(i.statusText);if(a)return i.text();const r=yield i.arrayBuffer();return new DataView(r)}catch(i){if(a||e==="dbf")return!1;throw i}})}function Sl(t){let e=0,s=1;const a=t.length;let i,r;const o=[t[0][0],t[0][1],t[0][0],t[0][1]];for(;so[2]&&(o[2]=r[0]),r[1]>o[3]&&(o[3]=r[1]);return{ring:t,clockWise:e>0,bbox:o,children:[]}}function qa(t,e){return!(t.bbox[0]>e.bbox[0]||t.bbox[1]>e.bbox[1]||t.bbox[2]l.toReversed())));return n}}const r=[];for(const o of s)r.push([o.ring].concat(o.children));return r}et.prototype.parsePoint=function(t){return{type:"Point",coordinates:this.parseCoord(t,0)}};et.prototype.parseZPoint=function(t){const e=this.parsePoint(t);return e.coordinates.push(t.getFloat64(16,!0)),e};et.prototype.parsePointArray=function(t,e,s){const a=[];let i=0;for(;i20&&(e-=20),!(e in $a))throw new Error(`I don't know shp type "${e}"`);this.parseFunc=this[$a[e]],this.parseCoord=Pl(t)};et.prototype.getShpCode=function(){return this.parseHeader().shpCode};et.prototype.parseHeader=function(){const t=this.buffer;return{length:t.getInt32(24)<<1,version:t.getInt32(28,!0),shpCode:t.getInt32(32,!0),bbox:[t.getFloat64(36,!0),t.getFloat64(44,!0),t.getFloat64(52,!0),t.getFloat64(60,!0)]}};et.prototype.getRows=function(){let t=100;const e=this.buffer.byteLength-8,s=[];let a;for(;t<=e&&(a=this.getRow(t),!!a);)t+=8,t+=a.len,a.type?s.push(this.parseFunc(a.data)):s.push(null);return s};et.prototype.getRow=function(t){const e=this.buffer.getInt32(t),s=this.buffer.getInt32(t+4)<<1;if(s===0)return{id:e,len:s,type:0};if(!(t+s+8>this.buffer.byteLength))return{id:e,len:s,data:new DataView(this.buffer.buffer,this.buffer.byteOffset+t+12,s-4),type:this.buffer.getInt32(t+8,!0)}};function aa(t,e){return new et(t,e).rows}var xl=/^(?:ANSI\s)?(\d+)$/m;function yi(t,e){if(!t)return a;try{new TextDecoder(t.trim())}catch(i){var s=xl.exec(t);return s&&!e?yi("windows-"+s[1],!0):(t=void 0,a)}return a;function a(i){var r=new TextDecoder(t||void 0),o=r.decode(i,{stream:!0})+r.decode();return o.replace(/\0/g,"").trim()}}function pl(t){var e={};return e.lastUpdated=new Date(t.getUint8(1)+1900,t.getUint8(2),t.getUint8(3)),e.records=t.getUint32(4,!0),e.headerLen=t.getUint16(8,!0),e.recLen=t.getUint16(10,!0),e}function bl(t,e,s){for(var a=[],i=32;i{if(!t)throw new Error("forgot to pass buffer");if(fe(t))return new Uint8Array(t);if(fe(t.buffer))return t.BYTES_PER_ELEMENT===1?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")},Cl=new TextDecoder,wi=t=>{if(t){if(typeof t=="string")return t;if(fe(t)||ArrayBuffer.isView(t)||ra(t))return Cl.decode(t)}},Ei=t=>{if(!t)throw new Error("forgot to pass buffer");if(ra(t))return t;if(fe(t))return new DataView(t);if(fe(t.buffer))return new DataView(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")};function fe(t){return t instanceof globalThis.ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]"}function ra(t){return t instanceof globalThis.DataView||Object.prototype.toString.call(t)==="[object DataView]"}const na=function([t,e]){const s={};s.type="FeatureCollection",s.features=[];let a=0;const i=t.length;for(e||(e=[]);a-1?i.push(s.slice(0,-3)+s.slice(-3).toLowerCase()):(s.slice(-4).toLowerCase()===".dbf"||s.slice(-4).toLowerCase()===".cpg")&&(a[s.slice(0,-3)+s.slice(-3).toLowerCase()]=a[s]));if(!i.length)throw new Error("no layers founds");const r=i.map(function(o){let n,h;const l=o.lastIndexOf(".");return l>-1&&o.slice(l).indexOf("json")>-1?(n=JSON.parse(a[o]),n.fileName=o.slice(0,l)):e.indexOf(o.slice(l+1))>-1?(n=a[o],n.fileName=o):(a[o+".dbf"]&&(h=ia(a[o+".dbf"],a[o+".cpg"])),n=na([aa(a[o+".shp"],a[o+".prj"]),h]),n.fileName=o),n});return r.length===1?r[0]:r})};function Ll(t,e){return ot(this,null,function*(){const s=yield je(t);return Si(s,e)})}const Rl=t=>ot(void 0,null,function*(){const e=yield Promise.all([je(t,"shp"),je(t,"prj")]);let s=!1;try{e[1]&&(s=Ps(e[1]))}catch(a){s=!1}return aa(e[0],s)}),Tl=t=>ot(void 0,null,function*(){const[e,s]=yield Promise.all([je(t,"dbf"),je(t,"cpg")]);if(e)return ia(e,s)}),Da=(t,e)=>{var a;return new Al(t,(a=globalThis==null?void 0:globalThis.document)==null?void 0:a.location).pathname.slice(-4).toLowerCase()===e},Ol=({shp:t,dbf:e,cpg:s,prj:a})=>{const i=[jl(t,a)];return e&&i.push(kl(e,s)),na(i)},Fl=function(t,e){return ot(this,null,function*(){if(typeof t!="string"){if(fe(t)||ArrayBuffer.isView(t)||ra(t))return Si(t);if(t.shp)return Ol(t);throw new TypeError("must be a string, some sort of Buffer, or an object with at least a .shp property")}if(Da(t,".zip"))return Ll(t,e);Da(t,".shp")&&(t=t.slice(0,-4));const s=yield Promise.all([Rl(t),Tl(t)]);return na(s)})},jl=function(t,e){if(t=Ei(t),e=wi(e),typeof e=="string")try{e=Ps(e)}catch(s){e=!1}return aa(t,e)},kl=function(t,e){return t=Ei(t),e=wi(e),ia(t,e)};const ql={class:"engineering-analysis-panel"},$l={class:"analysis-card-head"},Dl={key:0},Ul=["disabled"],Bl=["disabled"],zl={key:1,class:"analysis-drawing-stage"},Wl={class:"analysis-point-count"},Vl=["disabled"],Hl=["disabled"],Ql={key:2,class:"analysis-boundary-bar"},Jl={class:"analysis-card-head"},Xl={key:0,class:"analysis-running"},Kl={class:"analysis-conclusion-head"},Zl={class:"analysis-conclusion-tags"},Yl={key:2,class:"analysis-empty is-success"},t1={key:3,class:"analysis-project-list"},e1=["onPointerup"],s1={class:"analysis-project-name"},a1={class:"analysis-project-meta"},i1={__name:"EngineeringAnalysisPanel",props:{drawingPointCount:{type:Number,default:0}},emits:["drawing-change","finish-drawing","undo-point","clear-boundary","analysis-result","focus-project"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(!1),o=Q(null),n=Q([]),h=Q([]),l=Q(""),g=Q("idle"),f=Q([]),u=Q("idle"),m=Q("");let w=null,E=0;const S=z(()=>{var x;const v=h.value.length,d=n.value.length,_=n.value.reduce((C,k)=>C+Number(k.overlapAreaWanMu||0),0);return{boundaryAreaWanMu:Yt((x=o.value)==null?void 0:x.geometry),featureCount:v,projectCount:d,overlapAreaWanMu:_}}),b=z(()=>l.value?l.value:I.value?"自动分析中":g.value==="loading"?"项目库加载中":g.value==="error"?"项目库加载失败":""),A=z(()=>o.value?I.value?"正在分析":u.value==="error"?"分析异常":n.value.length?"已发现建设记录":"未发现建设记录":"未分析"),I=z(()=>u.value==="running"),R=z(()=>!!o.value&&u.value==="done"),j=z(()=>I.value?"正在自动分析":u.value==="error"?"分析失败":n.value.length?`命中 ${n.value.length} 项`:A.value),O=z(()=>r.value&&a.drawingPointCount>=3),F=z(()=>{if(!o.value)return{levelClass:"",verdict:"",summary:"",tags:[],advice:""};if(!n.value.length)return{levelClass:"is-clear",verdict:"未发现建设记录",summary:"该边界范围暂未与项目库中的已建设工程形成空间叠加。",tags:[`分析范围 ${Ke(S.value.boundaryAreaWanMu)} 万亩`,"项目库未命中"],advice:"可进入新增工程选址论证,仍需结合保护红线、审批台账和现场踏勘复核。"};const v=Ze(n.value),d=ee(n.value),_=[...n.value].sort((k,V)=>Number(V.overlapAreaWanMu||0)-Number(k.overlapAreaWanMu||0))[0],x=Vt(S.value.overlapAreaWanMu),C=n.value.length>=6||S.value.overlapAreaWanMu>=1?"存在建设叠加":"存在局部叠加";return{levelClass:n.value.length>=6?"is-heavy":"is-hit",verdict:C,summary:`该边界命中 ${n.value.length} 个历史项目,叠加约 ${x} 亩,项目类型以${v.name}为主,年份集中在 ${d}。`,tags:[`主类型 ${v.name}`,`年份 ${d}`,`最大叠加 ${Vt(_==null?void 0:_.overlapAreaWanMu)} 亩`],advice:`重点复核“${Ye(_==null?void 0:_.projectName)}”(${(_==null?void 0:_.year)||"未知"},${(_==null?void 0:_.category)||"未知类型"})与拟建范围的重合边界。`}});Ua(()=>{_e().catch(()=>{})});function K(v){return ot(this,null,function*(){var _;const d=(_=v.target.files)==null?void 0:_[0];if(v.target.value="",!!d){l.value="";try{const x=yield W(d);r.value&&(r.value=!1,i("drawing-change",!1)),i("clear-boundary"),yield Bt(x)}catch(x){l.value="边界文件解析失败"}}})}function W(v){return ot(this,null,function*(){const d=String(v.name||"").toLowerCase();if(d.endsWith(".json")||d.endsWith(".geojson"))return dt(JSON.parse(yield v.text()));if(d.endsWith(".zip")){const _=yield Fl(yield v.arrayBuffer());return dt(_)}throw new Error("unsupported file")})}function dt(v){const d=zt(v).filter(_=>Ve(_==null?void 0:_.geometry));if(d.length)return jt(d);throw new Error("no polygon")}function lt(){r.value||(E+=1,l.value="",u.value="idle",m.value="",r.value=!0,o.value=null,n.value=[],h.value=[],i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}),i("drawing-change",!0))}function B(){r.value&&(E+=1,r.value=!1,u.value="idle",m.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}))}function _t(){O.value&&i("finish-drawing")}function ve(){i("undo-point")}function xs(){E+=1,r.value=!1,o.value=null,n.value=[],h.value=[],l.value="",u.value="idle",m.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value})}function Lt(v){v!=null&&v.geometry&&(r.value=!1,Bt(v))}function Bt(v){return ot(this,null,function*(){const d=++E;o.value=v,h.value=[],n.value=[],m.value="",l.value="",u.value="running";let _=[];i("analysis-result",{boundary:v,matches:[],rows:[],summary:S.value});try{const x=yield _e();if(d!==E)return;_=Be(v,x),h.value=_,n.value=ps(_),u.value="done"}catch(x){if(d!==E)return;l.value="项目库加载失败",u.value="error"}d===E&&i("analysis-result",{boundary:v,matches:_,rows:n.value,summary:S.value})})}function de(v){m.value=(v==null?void 0:v.key)||"",i("focus-project",kt(Tt({},v),{boundary:o.value}))}function _e(){return ot(this,null,function*(){return f.value.length?f.value:w||(g.value="loading",w=fetch(Me("datas/ecological-protection/ecological_restoration_projects.geojson"),{credentials:"include"}).then(d=>{if(!d.ok)throw new Error(`HTTP ${d.status}`);return d.json()}).then(d=>{const _=zt(d).filter(x=>{var C;return(C=x==null?void 0:x.geometry)==null?void 0:C.coordinates}).map((x,C)=>kt(Tt({},x),{properties:kt(Tt({},x.properties||{}),{source_index:C})}));return f.value=_,g.value="success",_}).catch(d=>{throw g.value="error",w=null,d}),w)})}function Me(v){return v?/^https?:\/\//.test(v)||v.startsWith("/")?v:`./${v}`:""}function zt(v){return v?Array.isArray(v)?v.flatMap(d=>zt(d)):v.type==="FeatureCollection"?(v.features||[]).filter(Boolean):v.type==="Feature"?v.geometry?[v]:[]:He(v)?[{type:"Feature",properties:{},geometry:v}]:typeof v=="object"?Object.values(v).flatMap(d=>zt(d)):[]:[]}function jt(v){const d=v.flatMap(_=>_.geometry.type==="Polygon"?[_.geometry.coordinates]:_.geometry.coordinates);return d.length===1?{type:"Feature",properties:v[0].properties||{},geometry:{type:"Polygon",coordinates:d[0]}}:{type:"Feature",properties:{sourceFeatureCount:v.length},geometry:{type:"MultiPolygon",coordinates:d}}}function Be(v,d=f.value){const _=Zt(v.geometry);return d.filter(x=>bs(x.geometry,v.geometry,_)).map(x=>({feature:x,properties:x.properties||{},overlapAreaWanMu:Gs(x,v.geometry)}))}function ps(v){const d=new Map;return v.forEach(_=>{const x=_.properties||{},C=x.project_name||x.projectName||"未命名项目",k=d.get(C)||{key:C,projectName:C,category:x.project_category||"未知类型",year:x.year||"未知",featureCount:0,overlapAreaWanMu:0,features:[],sourceIndex:Number(x.source_index||0)};k.featureCount+=1,k.overlapAreaWanMu+=Number(_.overlapAreaWanMu||0),k.features.push(_.feature),d.set(C,k)}),[...d.values()].map(_=>kt(Tt({},_),{overlapAreaWanMu:Number(_.overlapAreaWanMu.toFixed(4))}))}function bs(v,d,_){if(!we(Zt(v),_))return!1;const x=Wt(d);return x.length?Ve(v)?ze(v,x):(v==null?void 0:v.type)==="Point"?Rt(v.coordinates,x):(v==null?void 0:v.type)==="MultiPoint"?v.coordinates.some(C=>Rt(C,x)):(v==null?void 0:v.type)==="LineString"?me(v.coordinates,x):(v==null?void 0:v.type)==="MultiLineString"?v.coordinates.some(C=>me(C,x)):!1:!1}function ze(v,d){const _=Wt(v);return _.length?_.some(x=>x.some(C=>Rt(C,d)))||d.some(x=>x.some(C=>Rt(C,_)))||_.some(x=>d.some(C=>ye(x,C))):!1}function me(v=[],d){return!Array.isArray(v)||!v.length?!1:v.some(_=>Rt(_,d))?!0:d.some(_=>We(v,_))}function We(v,d){for(let _=1;_at+nt.filter(pt=>Rt(pt,C)).length,0),it=x.reduce((at,nt)=>at+nt.length,0);return st?Number((k*Math.max(.08,Math.min(1,st/Math.max(it,1)))).toFixed(4)):C.reduce((at,nt)=>at+nt.filter(pt=>Rt(pt,x)).length,0)?Number(Math.min(k,V).toFixed(4)):x.some(at=>C.some(nt=>ye(at,nt)))?Number((Math.min(k,V)*.12).toFixed(4)):0}function Wt(v){var d;return(v==null?void 0:v.type)==="Polygon"?[((d=v.coordinates)==null?void 0:d[0])||[]]:(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.map(_=>(_==null?void 0:_[0])||[]).filter(_=>_.length):[]}function Ve(v){return(v==null?void 0:v.type)==="Polygon"||(v==null?void 0:v.type)==="MultiPolygon"}function He(v){return["Polygon","MultiPolygon","LineString","MultiLineString","Point","MultiPoint"].includes(v==null?void 0:v.type)}function Rt(v,d){return d.some(_=>Ns(v,_))}function Ns(v,d){var k,V,st,it;let _=!1;const x=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]);for(let rt=0,at=d.length-1;rtC!=Ee>C&&x<(ts-nt)*(C-pt)/(Ee-pt)+nt&&(_=!_)}return _}function ye(v,d){for(let _=1;_(Number(at[0])-Number(rt[0]))*(Number(nt[1])-Number(rt[1]))-(Number(at[1])-Number(rt[1]))*(Number(nt[0])-Number(rt[0])),k=C(v,d,_),V=C(v,d,x),st=C(_,x,v),it=C(_,x,d);return k===0&&Kt(_,v,d)||V===0&&Kt(x,v,d)||st===0&&Kt(v,_,x)||it===0&&Kt(d,_,x)?!0:(k>0&&V<0||k<0&&V>0)&&(st>0&&it<0||st<0&&it>0)}function As(v,d,_,x){const C=te([v,d]),k=te([_,x]);return we(C,k)}function Kt(v,d,_){const x=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]),k=Number(d==null?void 0:d[0]),V=Number(d==null?void 0:d[1]),st=Number(_==null?void 0:_[0]),it=Number(_==null?void 0:_[1]),rt=(x-k)*(it-V)-(C-V)*(st-k);return Math.abs(rt)>1e-10?!1:x>=Math.min(k,st)-1e-10&&x<=Math.max(k,st)+1e-10&&C>=Math.min(V,it)-1e-10&&C<=Math.max(V,it)+1e-10}function Zt(v){const d=[];return Xe(v==null?void 0:v.coordinates,d),d.length?d.reduce((_,x)=>({minLng:Math.min(_.minLng,Number(x[0])),minLat:Math.min(_.minLat,Number(x[1])),maxLng:Math.max(_.maxLng,Number(x[0])),maxLat:Math.max(_.maxLat,Number(x[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}function we(v,d){return!v||!d?!1:!(v.maxLngd.maxLng||v.maxLatd.maxLat)}function Is(v){return Yt(v==null?void 0:v.geometry)}function Yt(v){return(v==null?void 0:v.type)==="Polygon"?Je(v.coordinates):(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.reduce((d,_)=>d+Je(_),0):0}function Je(v=[]){const d=v[0]||[];if(d.length<3)return 0;const _=d.reduce((V,st)=>V+Number(st[1]||0),0)/d.length,x=111320*Math.cos(_*Math.PI/180),C=110540;let k=0;for(let V=0;VXe(_,d))}}function te(v){return v.reduce((d,_)=>({minLng:Math.min(d.minLng,Number(_==null?void 0:_[0])),minLat:Math.min(d.minLat,Number(_==null?void 0:_[1])),maxLng:Math.max(d.maxLng,Number(_==null?void 0:_[0])),maxLat:Math.max(d.maxLat,Number(_==null?void 0:_[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY})}function Ke(v){const d=Number(v||0);return Number.isFinite(d)?Number(d.toFixed(d>=10?2:4)).toString():"0"}function Vt(v){const d=Number(v||0)*1e4;return Number.isFinite(d)?d>=1e3?Number(d.toFixed(0)).toLocaleString("zh-CN"):d>=10?Number(d.toFixed(1)).toLocaleString("zh-CN"):Number(d.toFixed(2)).toString():"0"}function Ze(v=[]){const d=new Map;return v.forEach(_=>{const x=_.category||"未知类型",C=d.get(x)||{name:x,count:0,area:0};C.count+=1,C.area+=Number(_.overlapAreaWanMu||0),d.set(x,C)}),[...d.values()].sort((_,x)=>x.area-_.area||x.count-_.count)[0]||{name:"未知类型",count:0,area:0}}function ee(v=[]){const d=v.map(C=>Number(C.year)).filter(C=>Number.isFinite(C));if(!d.length)return"未知年份";const _=Math.min(...d),x=Math.max(...d);return _===x?`${_} 年`:`${_}-${x} 年`}function Ye(v,d=18){const _=String(v||"未命名项目");return _.length>d?`${_.slice(0,d)}...`:_}return e({applyDrawnBoundary:Lt}),(v,d)=>(J(),Y("div",ql,[L("div",{class:Ot(["analysis-card analysis-workbench",{"is-running":I.value,"is-complete":R.value}])},[L("div",$l,[d[0]||(d[0]=L("span",null,"生态工程分析",-1)),b.value?(J(),Y("strong",Dl,ut(b.value),1)):At("",!0)]),r.value?At("",!0):(J(),Y("div",{key:0,class:Ot(["analysis-operation",{"has-boundary":o.value}])},[L("label",{class:Ot(["analysis-entry is-upload",{"is-disabled":r.value||I.value}])},[L("input",{type:"file",accept:".zip,.json,.geojson",disabled:r.value||I.value,onChange:K},null,40,Ul),L("span",null,ut(o.value?"更换边界":"上传边界"),1),d[1]||(d[1]=L("strong",null,"SHP / GeoJSON",-1))],2),L("button",{type:"button",class:"analysis-entry is-draw",disabled:r.value||I.value,onPointerup:se(lt,["stop","prevent"])},[L("span",null,ut(o.value?"重新绘制":"在线绘制"),1),d[2]||(d[2]=L("strong",null,"地图圈定",-1))],40,Bl)],2)),r.value?(J(),Y("div",zl,[L("div",Wl,[d[3]||(d[3]=L("span",null,"已落点",-1)),L("strong",null,ut(t.drawingPointCount),1),d[4]||(d[4]=L("em",null,"点",-1)),d[5]||(d[5]=L("small",null,"至少 3 点",-1))]),L("button",{type:"button",class:"analysis-control is-primary",disabled:!O.value||I.value,onPointerup:se(_t,["stop","prevent"])}," 完成绘制 ",40,Vl),L("button",{type:"button",class:"analysis-control",disabled:!t.drawingPointCount,onPointerup:se(ve,["stop","prevent"])},"撤销",40,Hl),L("button",{type:"button",class:"analysis-control is-danger",onPointerup:se(B,["stop","prevent"])},"删除图形",32)])):o.value?(J(),Y("div",Ql,[d[6]||(d[6]=L("span",null,"边界已加载",-1)),L("strong",null,ut(j.value),1),L("button",{type:"button",onPointerup:se(xs,["stop","prevent"])},"删除图形",32)])):At("",!0)],2),o.value?(J(),Y("div",{key:0,class:Ot(["analysis-card analysis-result",{"is-running":I.value,"is-empty":R.value&&!n.value.length}])},[L("div",Jl,[d[7]||(d[7]=L("span",null,"建设记录核查",-1)),L("strong",null,ut(A.value),1)]),I.value?(J(),Y("div",Xl,[...d[8]||(d[8]=[L("div",{class:"analysis-running-orbit","aria-hidden":"true"},null,-1),L("div",null,[L("strong",null,"空间叠加分析中"),L("span",null,"正在核对边界与建设项目库")],-1)])])):(J(),Y("div",{key:1,class:Ot(["analysis-conclusion",F.value.levelClass])},[L("div",Kl,[d[9]||(d[9]=L("span",null,"分析结论",-1)),L("strong",null,ut(F.value.verdict),1)]),L("p",null,ut(F.value.summary),1),L("div",Zl,[(J(!0),Y(fs,null,gs(F.value.tags,_=>(J(),Y("span",{key:_},ut(_),1))),128))]),L("small",null,ut(F.value.advice),1)],2)),R.value&&!n.value.length?(J(),Y("div",Yl,"该边界范围内暂未匹配到已建设项目")):R.value?(J(),Y("div",t1,[(J(!0),Y(fs,null,gs(n.value,_=>(J(),Y("button",{key:_.key,type:"button",class:Ot(["analysis-project-row",{"is-active":_.key===m.value}]),onPointerup:se(x=>de(_),["stop","prevent"])},[L("span",s1,ut(_.projectName),1),L("div",a1,[L("strong",null,ut(_.year),1),L("em",null,ut(_.category),1),L("small",null,"叠加 "+ut(Vt(_.overlapAreaWanMu))+" 亩",1)]),L("b",null,ut(_.featureCount)+" 个要素",1)],42,e1))),128))])):At("",!0)],2)):At("",!0)]))}},r1=Ji(i1,[["__scopeId","data-v-96bdd213"]]);const n1={class:"forest-grass-wet ecological-protection"},o1={class:"forest-grass-wet-ui ecological-protection-ui"},h1={key:0,class:"fgw-left"},l1={class:"fgw-side-stack is-left"},u1={key:1,class:"fgw-right"},c1={class:"fgw-side-stack is-right"},f1={class:"fgw-bottom-topic ecological-bottom-topic"},g1={key:0,class:"loading"},v1={class:"loading-progress"},d1={class:"value"},L1={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(null),o=Q(null),n=Q(""),h=Q(""),l=Q(is({},"ecological-redline")),g=Q(null),f=Q(!1),u=Q(!1),m=Q(null),w=Q(0),E=Q(a.showLoading),S=Q(null),b=Q(0),A=Q({type:"idle",text:"等待生态保护图层加载"});let I=null,R=!1,j=!1,O=!1,F=null,K=0,W=0;const dt=new Map,lt=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),B=z(()=>Pe.some(c=>c.key===a.activeView)?a.activeView:"ecological-redline"),_t=z(()=>B.value==="engineering-analysis"),ve=z(()=>["restoration","engineering-analysis"].includes(B.value)),xs=z(()=>Ls.includes(B.value)),Lt=z(()=>n.value?Oi(B.value,n.value):null),Bt=z(()=>{var c;return(((c=Lt.value)==null?void 0:c.legends)||[]).find(M=>M.key===h.value)||null}),de=z(()=>{var c;return((c=Lt.value)==null?void 0:c.legends)||[]}),_e=z(()=>ga(B.value)),Me=z(()=>!_t.value&&_e.value.length<=2&&de.value.length<=6),zt=z(()=>{if(!Me.value)return 430;const c=Math.max(1,_e.value.length),y=30+Math.max(1,de.value.length)*28;return Math.max(220,Math.min(360,96+c*32+y))}),jt=z(()=>{const c=Lt.value;return c?Bt.value?kt(Tt({},c),{cqlFilter:Bt.value.cqlFilter||c.cqlFilter,activeLegend:Bt.value,name:Bt.value.name||c.name}):c:null}),Be=z(()=>xs.value?l.value:B.value==="restoration"?Zi:B.value==="engineering-analysis"?Yi:tr),ps=z(()=>Be.value.left||[]),bs=z(()=>Be.value.right||[]),ze=Q(typeof window=="undefined"?1080:window.innerHeight),me=Ui.sideCardWidth,We=z(()=>Bi(ze.value)),Gs=z(()=>zi(We.value,2)),Wt=z(()=>!!m.value),Ve=qi,He=z(()=>ki({point:m.value?Xe(m.value):null,rowCount:g.value?ee(g.value):0,loading:u.value,empty:f.value||!g.value})),Rt=z(()=>He.value.height),Ns=z(()=>He.value.style);Ua(()=>{te(),window.addEventListener("resize",te),document.addEventListener("pointerdown",ha,!0),Kt(),ye(B.value)}),Xi(()=>{R=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",te),document.removeEventListener("pointerdown",ha,!0)}),es(B,c=>{ye(c)}),es(n,()=>{h.value="",ft()}),es(h,()=>{ft()}),es(()=>a.active,c=>{var M,y,N,T;r.value&&(c?(Zt(),(y=(M=r.value).resume)==null||y.call(M)):(T=(N=r.value).pause)==null||T.call(N))});function ye(c){var N,T,q,$,H;const M=Pe.find(gt=>gt.key===c)||Pe[0],y=ga(c);h.value="",n.value=M.defaultLayerKey||((N=y[0])==null?void 0:N.key)||"",S.value=er(c),b.value=0,(q=(T=r.value)==null?void 0:T.setBoundaryDrawing)==null||q.call(T,!1),c!=="engineering-analysis"&&((H=($=r.value)==null?void 0:$.clearAnalysisBoundary)==null||H.call($)),ft(),Ls.includes(c)&&(l.value=is({},c),As(c)),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Ls.includes(c)?Rs({},c):sr(c)})}function Qe(c){const M=Pe.some(y=>y.key===c)?c:"ecological-redline";M!==B.value&&i("view-change",M)}function As(c){return ot(this,null,function*(){const M=++K;try{const N=dt.get(c)||(yield ir(c));if(M!==K||B.value!==c)return;dt.set(c,N),l.value=is(N,c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Rs(N,c)})}catch(y){if(M!==K||B.value!==c)return;l.value=is({},c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Rs({},c)}),A.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",y)}})}function Kt(){var y;I=new Di;const c={progress:0};I.instance.on("onProgress",(N,T,q)=>{const $=Math.floor(T/q*100);ca.to(c,{progress:$,onUpdate:()=>{w.value=Math.floor(c.progress)}})});const M=()=>{R||j||(j=!0,Zt())};I.instance.on("onLoad",M),(y=I.ready)==null||y.then(M).catch(()=>{R||(A.value={type:"error",text:"地图资源加载失败"})})}function Zt(){R||!a.active||!j||O||(O=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,we()},600))}function we(c=0){return ot(this,null,function*(){var y,N,T,q,$;if(R)return;if(!a.active){O=!1;return}if(yield ss(),!a.active){O=!1;return}if(!!((N=(y=r.value)==null?void 0:y.loadMap)!=null&&N.call(y,I)||(q=(T=r.value)==null?void 0:T.hasMap)!=null&&q.call(T))){yield Ai(),yield ss(),($=r.value)==null||$.play();return}if(c<24){window.setTimeout(()=>we(c+1),120);return}O=!1})}function Is(){F&&(window.clearTimeout(F),F=null)}function Yt(){var c,M,y,N;(M=(c=r.value)==null?void 0:c.resume)==null||M.call(c),(N=(y=r.value)==null?void 0:y.refreshView)==null||N.call(y)}function Je(){var c,M,y,N,T,q;if(ft(),(M=(c=r.value)==null?void 0:c.setBoundaryDrawing)==null||M.call(c,!1),(N=(y=r.value)==null?void 0:y.clearAnalysisBoundary)==null||N.call(y),(q=(T=r.value)==null?void 0:T.hasMap)!=null&&q.call(T)){Yt();return}Is(),O=!1,ss(()=>{Zt()})}e({refreshMapView:Yt,resetMap:Je});function Xe(c){const M=document.querySelector(".ecological-protection"),y=M==null?void 0:M.getBoundingClientRect();return!(y!=null&&y.width)||!(y!=null&&y.height)?c:{x:(c.x-y.left)/y.width*1920,y:(c.y-y.top)/y.height*1080}}function te(){ze.value=typeof window=="undefined"?1080:window.innerHeight}function Ke(c,M){return`${B.value}-${M}-${(c==null?void 0:c.key)||(c==null?void 0:c.title)||"panel"}`}function Vt(c){return(c==null?void 0:c.span)===2}function Ze(c){return Vt(c)?Gs.value:We.value}function ee(c){const M=(c==null?void 0:c.properties)||{};return Object.keys(M).filter(y=>Ye(y,M[y])).length}function Ye(c,M){return M==null||M===""||Array.isArray(M)||typeof M=="object"?!1:!lt.has(String(c||"").toLowerCase())}function v(c={}){const M=d(c.lng),y=d(c.lat);return M===""||y===""?"":`POINT(${M} ${y})`}function d(c){const M=Number(c);return Number.isFinite(M)?M.toFixed(8).replace(/\.?0+$/,""):""}function _(){return ot(this,arguments,function*(c={}){var q,$,H,gt,Et,bt;if(!ve.value)return;if(x(c.overlayLayer||jt.value||Lt.value)){ft();return}const M=Number((q=c==null?void 0:c.lngLat)==null?void 0:q.lng),y=Number(($=c==null?void 0:c.lngLat)==null?void 0:$.lat);if(!Number.isFinite(M)||!Number.isFinite(y)){ft();return}const N=++W,T=c.screen||{x:960,y:540};m.value=null,g.value=null,f.value=!1,u.value=!0;try{const Nt=yield $i(v({lng:M,lat:y}));if(N!==W||R)return;const Se=C(Nt,c);if(!Se||ee(Se)<=0){ft();return}g.value=Se,m.value=((gt=(H=r.value)==null?void 0:H.getVectorFeatureAnchorScreen)==null?void 0:gt.call(H,Se))||T,f.value=!1,(bt=(Et=r.value)==null?void 0:Et.highlightFeature)==null||bt.call(Et,Se,{highlightTone:"v21"})}catch(Nt){if(N!==W)return;ft()}finally{N===W&&(u.value=!1)}})}function x(c=jt.value){const M=String((c==null?void 0:c.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(M)||String((c==null?void 0:c.dataPath)||"").includes("ecological_restoration_projects")}function C(c,M={}){var q,$,H;const y=V((c==null?void 0:c.project)||((q=c==null?void 0:c.data)==null?void 0:q.project)||(c==null?void 0:c.data)||c);if(!st(y))return null;const N=rt(y,c),T=y.geom||y.geometry||y.wkt||null;return{id:y.id||N.id||N.project_name||`project-${($=M==null?void 0:M.lngLat)==null?void 0:$.lng}-${(H=M==null?void 0:M.lngLat)==null?void 0:H.lat}`,properties:N,feature:{type:"Feature",properties:N,geometry:T},geometry:T,layer:M.overlayLayer||jt.value||Lt.value,lngLat:M.lngLat}}function k(c,M={}){var gt,Et,bt;const y=c!=null&&c.feature&&c.feature.type==="Feature"?kt(Tt({},c.feature),{id:c.id||c.feature.id,layer:c.layer,lngLat:c.lngLat}):c,N=(y==null?void 0:y.type)==="Feature"?y:((gt=y==null?void 0:y.feature)==null?void 0:gt.type)==="Feature"?y.feature:null,T=(y==null?void 0:y.properties)||(N==null?void 0:N.properties)||{},q=(y==null?void 0:y.geometry)||(N==null?void 0:N.geometry)||T.geometry||T.geom||T.wkt||null,$=rt(T,M),H=(y==null?void 0:y.id)||(N==null?void 0:N.id)||$.id||$.gid||$.project_id||$.project_name||`project-${((Et=M==null?void 0:M.lngLat)==null?void 0:Et.lng)||""}-${((bt=M==null?void 0:M.lngLat)==null?void 0:bt.lat)||""}`;return{id:H,properties:$,feature:{type:"Feature",id:H,properties:$,geometry:q},geometry:q,layer:(y==null?void 0:y.layer)||M.overlayLayer||jt.value||Lt.value,lngLat:(y==null?void 0:y.lngLat)||M.lngLat}}function V(c){return Array.isArray(c)?c.find(M=>M&&typeof M=="object")||null:c&&typeof c=="object"?c:null}function st(c){return!c||typeof c!="object"?!1:Array.isArray(c.dyColumn)&&c.dyColumn.some(it)?!0:Object.keys(c).some(M=>Ye(M,c[M]))}function it(c={}){const M=c==null?void 0:c.value;return M==null||M===""?!1:!!String((c==null?void 0:c.field)||(c==null?void 0:c.title)||"").trim()}function rt(c={},M={}){const y=Tt({},c);(Array.isArray(c.dyColumn)?c.dyColumn:[]).forEach(H=>{const gt=H==null?void 0:H.value;if(gt==null||gt==="")return;const Et=String((H==null?void 0:H.field)||"").trim();[Et,at(Et)].filter(Boolean).forEach(Nt=>{(y[Nt]===void 0||y[Nt]===null||y[Nt]==="")&&(y[Nt]=gt)})});const T=y.project_name||y.projectName||y.name,q=y.area_mu||y.areaMu||y.acreage,$=y.project_status||y.projectStatus;return kt(Tt({},y),{project_name:T,name:T||y.name,area_mu:q,project_status:$,progress_count:Array.isArray(M==null?void 0:M.progress)?M.progress.length:void 0})}function at(c){return String(c||"").replace(/[A-Z]/g,M=>`_${M.toLowerCase()}`)}function nt(c){var y,N,T,q;const M=(N=(y=c==null?void 0:c.feature)!=null?y:c)!=null?N:null;if(!M||ee(M)<=0){ft();return}if(ve.value){W+=1;const $=k(M,c);if(!$||ee($)<=0){ft();return}g.value=$,f.value=!1,u.value=!1,m.value=((q=(T=r.value)==null?void 0:T.getVectorFeatureAnchorScreen)==null?void 0:q.call(T,$))||(c==null?void 0:c.screen)||null;return}g.value=M,f.value=!1,c!=null&&c.screen&&(m.value=c.screen)}function pt(c){A.value=c}function ts(c,M){var T,q;if(B.value==="national-park"&&(M!=null&&M.name)){ft(),(q=(T=r.value)==null?void 0:T.focusTown)==null||q.call(T,M.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(B.value!=="restoration"||(c==null?void 0:c.key)!=="restoration-projects"||!((M==null?void 0:M.projectName)||(M==null?void 0:M.name)))return;ft();const N=()=>Ee(M);if(h.value){h.value="",ss(()=>window.setTimeout(N,80));return}N()}function Ee(c,M=0){var q,$,H,gt,Et,bt,Nt;if(B.value!=="restoration")return;const y=(c==null?void 0:c.projectName)||(c==null?void 0:c.name);if(!y)return;const N=($=(q=r.value)==null?void 0:q.focusProject)==null?void 0:$.call(q,{id:c==null?void 0:c.id,key:c==null?void 0:c.key,name:y,projectName:y,project_name:y,highlightTone:"white"});if(!(N!=null&&N.feature)){if(M<10){window.setTimeout(()=>Ee(c,M+1),120);return}A.value={type:"warning",text:"当前项目图斑尚未加载"};return}const T=k({id:N.feature.id,properties:N.feature.properties||{},geometry:N.feature.geometry,feature:N.feature,layer:jt.value||Lt.value},{});g.value=T,f.value=!1,u.value=!1,m.value=N.screen||((Et=(H=r.value)==null?void 0:H.getVectorFeaturesAnchorScreen)==null?void 0:Et.call(H,(gt=N.highlightFeatures)!=null&>.length?N.highlightFeatures:N.features))||((Nt=(bt=r.value)==null?void 0:bt.getVectorFeatureAnchorScreen)==null?void 0:Nt.call(bt,T))}function oa(c){var M,y;ft(),b.value=0,(y=(M=r.value)==null?void 0:M.setBoundaryDrawing)==null||y.call(M,c)}function Pi(){var c,M;(M=(c=r.value)==null?void 0:c.finishBoundaryDrawing)==null||M.call(c)}function xi(){var c,M;(M=(c=r.value)==null?void 0:c.undoBoundaryPoint)==null||M.call(c)}function pi(){var c,M;b.value=0,(M=(c=r.value)==null?void 0:c.clearAnalysisBoundary)==null||M.call(c)}function bi(c={}){var M,y,N;b.value=c.pointCount||((M=c.points)==null?void 0:M.length)||0,c.status==="complete"&&c.feature&&(b.value=0,(N=(y=o.value)==null?void 0:y.applyDrawnBoundary)==null||N.call(y,c.feature)),c.status==="clear"&&(b.value=0)}function Gi(c={}){var M,y;(y=(M=r.value)==null?void 0:M.showAnalysisResult)==null||y.call(M,{boundary:c.boundary,matches:c.matches,preserveView:B.value==="engineering-analysis"}),B.value}function Ni(c){var y,N;const M=((c==null?void 0:c.features)||[]).filter(Boolean);(N=(y=r.value)==null?void 0:y.showAnalysisResult)==null||N.call(y,{boundary:c==null?void 0:c.boundary,matches:M})}function ft(){var c,M;W+=1,g.value=null,f.value=!1,u.value=!1,m.value=null,(M=(c=r.value)==null?void 0:c.clearSelectedFeature)==null||M.call(c)}function ha(c){if(!Wt.value)return;const M=document.querySelector(".fgw-map-feature-info"),y=c.target;M&&y instanceof Node&&M.contains(y)||ft()}function Ai(){return E.value?new Promise(c=>{ca.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{E.value=!1,c()}})}):Promise.resolve()}return(c,M)=>(J(),Y("div",n1,[ae(Wi,{ref_key:"mapSceneRef",ref:r,"active-layer":jt.value,"map-ranking":S.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureLoading:M[0]||(M[0]=y=>u.value=y),onFeatureInfo:nt,onMapClick:_,onLayerStatus:pt,onDrawBoundary:bi},null,8,["active-layer","map-ranking"]),L("div",o1,[_t.value?At("",!0):(J(),Y("div",h1,[L("div",l1,[(J(!0),Y(fs,null,gs(ps.value,y=>(J(),Cs(fa,{key:Ke(y,"left"),class:Ot(["fgw-side-card left-card",{"is-double":Vt(y)}]),title:y.title,width:as(me),height:Ze(y)},{default:da(()=>[ae(va,{panel:y,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>ts(y,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?At("",!0):(J(),Y("div",u1,[L("div",c1,[(J(!0),Y(fs,null,gs(bs.value,y=>(J(),Cs(fa,{key:Ke(y,"right"),class:Ot(["fgw-side-card right-card",{"is-double":Vt(y)}]),title:y.title,width:as(me),height:Ze(y)},{default:da(()=>[ae(va,{panel:y,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>ts(y,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?(J(),Cs(r1,{key:2,ref_key:"engineeringAnalysisRef",ref:o,"drawing-point-count":b.value,onDrawingChange:oa,onFinishDrawing:Pi,onUndoPoint:xi,onClearBoundary:pi,onAnalysisResult:Gi,onFocusProject:Ni},null,8,["drawing-point-count"])):At("",!0),L("div",{class:Ot(["fgw-map-layer-tools",{"is-analysis":_t.value,"is-compact":Me.value}]),style:_a({height:`${zt.value}px`})},[ae(Vi,{modelValue:n.value,"onUpdate:modelValue":M[1]||(M[1]=y=>n.value=y),"selected-legend-key":h.value,"onUpdate:selectedLegendKey":M[2]||(M[2]=y=>h.value=y),"topic-key":B.value,legends:de.value,width:248,height:zt.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact"])],6),Wt.value?(J(),Y("div",{key:3,class:"fgw-map-feature-info",style:_a(Ns.value)},[ae(Hi,{feature:g.value,empty:f.value,loading:u.value,width:as(Ve),height:Rt.value,closable:"",onClose:ft},null,8,["feature","empty","loading","width","height"])],4)):At("",!0),L("div",f1,[ae(Qi,{"model-value":B.value,topics:as(Pe),"onUpdate:modelValue":Qe},null,8,["model-value","topics"])])]),E.value?(J(),Y("div",g1,[M[4]||(M[4]=Ki('
    LOADING
    ',1)),L("div",v1,[L("span",d1,ut(w.value),1),M[3]||(M[3]=L("span",{class:"unit"},"%",-1))])])):At("",!0)]))}};export{L1 as default}; +northing meters`+t;var u=f/2,m=0,w=0,E,S,b,A,I;return u>0&&(E=1e5/Math.pow(10,u),S=t.substring(r,r+u),m=parseFloat(S)*E,b=t.substring(r+u),w=parseFloat(b)*E),A=m+l,I=w+g,{easting:A,northing:I,zoneLetter:n,zoneNumber:o,accuracy:E}}function Gn(t,e){for(var s=si.charCodeAt(e-1),a=1e5,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>Ge){if(i)throw"Bad character: "+t;s=re,i=!0}a+=1e5}return a}function Nn(t,e){if(t>"V")throw"MGRSPoint given invalid Northing "+t;for(var s=ai.charCodeAt(e-1),a=0,i=!1;s!==t.charCodeAt(0);){if(s++,s===Mt&&s++,s===Pt&&s++,s>be){if(i)throw"Bad character: "+t;s=re,i=!0}a+=1e5}return a}function An(t){var e;switch(t){case"C":e=11e5;break;case"D":e=2e6;break;case"E":e=28e5;break;case"F":e=37e5;break;case"G":e=46e5;break;case"H":e=55e5;break;case"J":e=64e5;break;case"K":e=73e5;break;case"L":e=82e5;break;case"M":e=91e5;break;case"N":e=0;break;case"P":e=8e5;break;case"Q":e=17e5;break;case"R":e=26e5;break;case"S":e=35e5;break;case"T":e=44e5;break;case"U":e=53e5;break;case"V":e=62e5;break;case"W":e=7e6;break;case"X":e=79e5;break;default:e=-1}if(e>=0)return e;throw"Invalid zone letter: "+t}function le(t,e,s){if(!(this instanceof le))return new le(t,e,s);if(Array.isArray(t))this.x=t[0],this.y=t[1],this.z=t[2]||0;else if(typeof t=="object")this.x=t.x,this.y=t.y,this.z=t.z||0;else if(typeof t=="string"&&typeof e=="undefined"){var a=t.split(",");this.x=parseFloat(a[0]),this.y=parseFloat(a[1]),this.z=parseFloat(a[2])||0}else this.x=t,this.y=e,this.z=s||0;console.warn("proj4.Point will be removed in version 3, use proj4.toPoint")}le.fromMGRS=function(t){return new le(ri(t))};le.prototype.toMGRS=function(t){return ii([this.x,this.y],t)};var In=1,Cn=.25,Ra=.046875,Ta=.01953125,Oa=.01068115234375,Ln=.75,Rn=.46875,Tn=.013020833333333334,On=.007120768229166667,Fn=.3645833333333333,jn=.005696614583333333,kn=.3076171875;function Ks(t){var e=[];e[0]=In-t*(Cn+t*(Ra+t*(Ta+t*Oa))),e[1]=t*(Ln-t*(Ra+t*(Ta+t*Oa)));var s=t*t;return e[2]=s*(Rn-t*(Tn+t*On)),s*=t,e[3]=s*(Fn-t*jn),e[4]=s*t*kn,e}function ce(t,e,s,a){return s*=e,e*=e,a[0]*t-s*(a[1]+e*(a[2]+e*(a[3]+e*a[4])))}var qn=20;function Zs(t,e,s){for(var a=1/(1-e),i=t,r=qn;r;--r){var o=Math.sin(i),n=1-e*o*o;if(n=(ce(i,o,Math.cos(i),s)-t)*(n*Math.sqrt(n))*a,i-=n,Math.abs(n)x?Math.tan(s):0,E=Math.pow(w,2),S=Math.pow(E,2);i=1-this.es*Math.pow(n,2),g=g/Math.sqrt(i);var b=ce(s,n,h,this.en);r=this.a*(this.k0*g*(1+f/6*(1-E+u+f/20*(5-18*E+S+14*u-58*E*u+f/42*(61+179*S-S*E-479*E)))))+this.x0,o=this.a*(this.k0*(b-this.ml0+n*a*g/2*(1+f/12*(5-E+9*u+4*m+f/30*(61+S-58*E+270*u-330*E*u+f/56*(1385+543*S-S*E-3111*E))))))+this.y0}else{var l=h*Math.sin(a);if(Math.abs(Math.abs(l)-1)=1){if(l-1>x)return 93;o=0}else o=Math.acos(o);s<0&&(o=-o),o=this.a*this.k0*(o-this.lat0)+this.y0}return t.x=r,t.y=o,t}function Un(t){var e,s,a,i,r=(t.x-this.x0)*(1/this.a),o=(t.y-this.y0)*(1/this.a);if(this.es)if(e=this.ml0+o/this.k0,s=Zs(e,this.es,this.en),Math.abs(s)x?Math.tan(s):0,w=this.ep2*Math.pow(u,2),E=Math.pow(w,2),S=Math.pow(m,2),b=Math.pow(S,2);e=1-this.es*Math.pow(f,2);var A=r*Math.sqrt(e)/this.k0,I=Math.pow(A,2);e=e*m,a=s-e*I/(1-this.es)*.5*(1-I/12*(5+3*S-9*w*S+w-4*E-I/30*(61+90*S-252*w*S+45*b+46*w-I/56*(1385+3633*S+4095*b+1574*b*S)))),i=G(this.long0+A*(1-I/6*(1+2*S+w-I/20*(5+28*S+24*b+8*w*S+6*w-I/42*(61+662*S+1320*b+720*b*S))))/u,this.over)}else a=P*qe(o),i=0;else{var n=Math.exp(r/this.k0),h=.5*(n-1/n),l=this.lat0+o/this.k0,g=Math.cos(l);e=Math.sqrt((1-Math.pow(g,2))/(1+Math.pow(h,2))),a=Math.asin(e),o<0&&(a=-a),h===0&&g===0?i=0:i=G(Math.atan2(h,g)+this.long0,this.over)}return t.x=i,t.y=a,t}var Bn=["Fast_Transverse_Mercator","Fast Transverse Mercator"];const ls={init:$n,forward:Dn,inverse:Un,names:Bn};function hi(t){var e=Math.exp(t);return e=(e-1/e)/2,e}function mt(t,e){t=Math.abs(t),e=Math.abs(e);var s=Math.max(t,e),a=Math.min(t,e)/(s||1);return s*Math.sqrt(1+Math.pow(a,2))}function zn(t){var e=1+t,s=e-1;return s===0?t:t*Math.log(e)/s}function Wn(t){var e=Math.abs(t);return e=zn(e*(1+e/(mt(1,e)+1))),t<0?-e:e}function Ys(t,e){for(var s=2*Math.cos(2*e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return e+o*Math.sin(2*e)}function Vn(t,e){for(var s=2*Math.cos(e),a=t.length-1,i=t[a],r=0,o;--a>=0;)o=-r+s*i+t[a],r=i,i=o;return Math.sin(e)*o}function Hn(t){var e=Math.exp(t);return e=(e+1/e)/2,e}function li(t,e,s){for(var a=Math.sin(e),i=Math.cos(e),r=hi(s),o=Hn(s),n=2*i*o,h=-2*a*r,l=t.length-1,g=t[l],f=0,u=0,m=0,w,E;--l>=0;)w=u,E=f,u=g,f=m,g=-w+n*u-h*f+t[l],m=-E+h*u+n*f;return n=a*o,h=i*r,[n*g-h*m,n*m+h*g]}function Qn(){if(!this.approx&&(isNaN(this.es)||this.es<=0))throw new Error('Incorrect elliptical usage. Try using the +approx option in the proj string, or PROJECTION["Fast_Transverse_Mercator"] in the WKT.');this.approx&&(ls.init.apply(this),this.forward=ls.forward,this.inverse=ls.inverse),this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.long0=this.long0!==void 0?this.long0:0,this.lat0=this.lat0!==void 0?this.lat0:0,this.cgb=[],this.cbg=[],this.utg=[],this.gtu=[];var t=this.es/(1+Math.sqrt(1-this.es)),e=t/(2-t),s=e;this.cgb[0]=e*(2+e*(-2/3+e*(-2+e*(116/45+e*(26/45+e*(-2854/675)))))),this.cbg[0]=e*(-2+e*(2/3+e*(4/3+e*(-82/45+e*(32/45+e*(4642/4725)))))),s=s*e,this.cgb[1]=s*(7/3+e*(-8/5+e*(-227/45+e*(2704/315+e*(2323/945))))),this.cbg[1]=s*(5/3+e*(-16/15+e*(-13/9+e*(904/315+e*(-1522/945))))),s=s*e,this.cgb[2]=s*(56/15+e*(-136/35+e*(-1262/105+e*(73814/2835)))),this.cbg[2]=s*(-26/15+e*(34/21+e*(8/5+e*(-12686/2835)))),s=s*e,this.cgb[3]=s*(4279/630+e*(-332/35+e*(-399572/14175))),this.cbg[3]=s*(1237/630+e*(-12/5+e*(-24832/14175))),s=s*e,this.cgb[4]=s*(4174/315+e*(-144838/6237)),this.cbg[4]=s*(-734/315+e*(109598/31185)),s=s*e,this.cgb[5]=s*(601676/22275),this.cbg[5]=s*(444337/155925),s=Math.pow(e,2),this.Qn=this.k0/(1+e)*(1+s*(1/4+s*(1/64+s/256))),this.utg[0]=e*(-.5+e*(2/3+e*(-37/96+e*(1/360+e*(81/512+e*(-96199/604800)))))),this.gtu[0]=e*(.5+e*(-2/3+e*(5/16+e*(41/180+e*(-127/288+e*(7891/37800)))))),this.utg[1]=s*(-1/48+e*(-1/15+e*(437/1440+e*(-46/105+e*(1118711/3870720))))),this.gtu[1]=s*(13/48+e*(-3/5+e*(557/1440+e*(281/630+e*(-1983433/1935360))))),s=s*e,this.utg[2]=s*(-17/480+e*(37/840+e*(209/4480+e*(-5569/90720)))),this.gtu[2]=s*(61/240+e*(-103/140+e*(15061/26880+e*(167603/181440)))),s=s*e,this.utg[3]=s*(-4397/161280+e*(11/504+e*(830251/7257600))),this.gtu[3]=s*(49561/161280+e*(-179/168+e*(6601661/7257600))),s=s*e,this.utg[4]=s*(-4583/161280+e*(108847/3991680)),this.gtu[4]=s*(34729/80640+e*(-3418889/1995840)),s=s*e,this.utg[5]=s*(-20648693/638668800),this.gtu[5]=s*(212378941/319334400);var a=Ys(this.cbg,this.lat0);this.Zb=-this.Qn*(a+Vn(this.gtu,2*a))}function Jn(t){var e=G(t.x-this.long0,this.over),s=t.y;s=Ys(this.cbg,s);var a=Math.sin(s),i=Math.cos(s),r=Math.sin(e),o=Math.cos(e);s=Math.atan2(a,o*i),e=Math.atan2(r*i,mt(a,i*o)),e=Wn(Math.tan(e));var n=li(this.gtu,2*s,2*e);s=s+n[0],e=e+n[1];var h,l;return Math.abs(e)<=2.623395162778?(h=this.a*(this.Qn*e)+this.x0,l=this.a*(this.Qn*s+this.Zb)+this.y0):(h=1/0,l=1/0),t.x=h,t.y=l,t}function Xn(t){var e=(t.x-this.x0)*(1/this.a),s=(t.y-this.y0)*(1/this.a);s=(s-this.Zb)/this.Qn,e=e/this.Qn;var a,i;if(Math.abs(e)<=2.623395162778){var r=li(this.utg,2*s,2*e);s=s+r[0],e=e+r[1],e=Math.atan(hi(e));var o=Math.sin(s),n=Math.cos(s),h=Math.sin(e),l=Math.cos(e);s=Math.atan2(o*l,mt(h,l*n)),e=Math.atan2(h,l*n),a=G(e+this.long0,this.over),i=Ys(this.cgb,s)}else a=1/0,i=1/0;return t.x=a,t.y=i,t}var Kn=["Extended_Transverse_Mercator","Extended Transverse Mercator","etmerc","Transverse_Mercator","Transverse Mercator","Gauss Kruger","Gauss_Kruger","tmerc"];const us={init:Qn,forward:Jn,inverse:Xn,names:Kn};function Zn(t,e){if(t===void 0){if(t=Math.floor((G(e)+Math.PI)*30/Math.PI)+1,t<0)return 0;if(t>60)return 60}return t}var Yn="etmerc";function to(){var t=Zn(this.zone,this.long0);if(t===void 0)throw new Error("unknown utm zone");this.lat0=0,this.long0=(6*Math.abs(t)-183)*Z,this.x0=5e5,this.y0=this.utmSouth?1e7:0,this.k0=.9996,us.init.apply(this),this.forward=us.forward,this.inverse=us.inverse}var eo=["Universal Transverse Mercator System","utm"];const so={init:to,names:eo,dependsOn:Yn};function ta(t,e){return Math.pow((1-t)/(1+t),e)}var ao=20;function io(){var t=Math.sin(this.lat0),e=Math.cos(this.lat0);e*=e,this.rc=Math.sqrt(1-this.es)/(1-this.es*t*t),this.C=Math.sqrt(1+this.es*e*e/(1-this.es)),this.phic0=Math.asin(t/this.C),this.ratexp=.5*this.C*this.e,this.K=Math.tan(.5*this.phic0+U)/(Math.pow(Math.tan(.5*this.lat0+U),this.C)*ta(this.e*t,this.ratexp))}function ro(t){var e=t.x,s=t.y;return t.y=2*Math.atan(this.K*Math.pow(Math.tan(.5*s+U),this.C)*ta(this.e*Math.sin(s),this.ratexp))-P,t.x=this.C*e,t}function no(t){for(var e=1e-14,s=t.x/this.C,a=t.y,i=Math.pow(Math.tan(.5*a+U)/this.K,1/this.C),r=ao;r>0&&(a=2*Math.atan(i*ta(this.e*Math.sin(t.y),-.5*this.e))-P,!(Math.abs(a-t.y)0?this.con=1:this.con=-1),this.cons=Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e)),this.k0===1&&!isNaN(this.lat_ts)&&Math.abs(this.coslat0)<=x&&Math.abs(Math.cos(this.lat_ts))>x&&(this.k0=.5*this.cons*Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts))/Gt(this.e,this.con*this.lat_ts,this.con*Math.sin(this.lat_ts))),this.ms1=Lt(this.e,this.sinlat0,this.coslat0),this.X0=2*Math.atan(sa(this.lat0,this.sinlat0,this.e))-P,this.cosX0=Math.cos(this.X0),this.sinX0=Math.sin(this.X0))}function vo(t){var e=t.x,s=t.y,a=Math.sin(s),i=Math.cos(s),r,o,n,h,l,g,f=G(e-this.long0,this.over);return Math.abs(Math.abs(e-this.long0)-Math.PI)<=x&&Math.abs(s+this.lat0)<=x?(t.x=NaN,t.y=NaN,t):this.sphere?(r=2*this.k0/(1+this.sinlat0*a+this.coslat0*i*Math.cos(f)),t.x=this.a*r*i*Math.sin(f)+this.x0,t.y=this.a*r*(this.coslat0*a-this.sinlat0*i*Math.cos(f))+this.y0,t):(o=2*Math.atan(sa(s,a,this.e))-P,h=Math.cos(o),n=Math.sin(o),Math.abs(this.coslat0)<=x?(l=Gt(this.e,s*this.con,this.con*a),g=2*this.a*this.k0*l/this.cons,t.x=this.x0+g*Math.sin(e-this.long0),t.y=this.y0-this.con*g*Math.cos(e-this.long0),t):(Math.abs(this.sinlat0)0?e=G(this.long0+Math.atan2(t.x,-1*t.y),this.over):e=G(this.long0+Math.atan2(t.x,t.y),this.over):e=G(this.long0+Math.atan2(t.x*Math.sin(n),o*this.coslat0*Math.cos(n)-t.y*this.sinlat0*Math.sin(n)),this.over),t.x=e,t.y=s,t)}else if(Math.abs(this.coslat0)<=x){if(o<=x)return s=this.lat0,e=this.long0,t.x=e,t.y=s,t;t.x*=this.con,t.y*=this.con,a=o*this.cons/(2*this.a*this.k0),s=this.con*Fe(this.e,a),e=this.con*G(this.con*this.long0+Math.atan2(t.x,-1*t.y),this.over)}else i=2*Math.atan(o*this.cosX0/(2*this.a*this.k0*this.ms1)),e=this.long0,o<=x?r=this.X0:(r=Math.asin(Math.cos(i)*this.sinX0+t.y*Math.sin(i)*this.cosX0/o),e=G(this.long0+Math.atan2(t.x*Math.sin(i),o*this.cosX0*Math.cos(i)-t.y*this.sinX0*Math.sin(i)),this.over)),s=-1*Fe(this.e,Math.tan(.5*(P+r)));return t.x=e,t.y=s,t}var Mo=["stere","Stereographic_South_Pole","Polar_Stereographic_variant_A","Polar_Stereographic_variant_B","Polar_Stereographic"];const mo={init:go,forward:vo,inverse:_o,names:Mo,ssfn_:sa};function yo(){var t=this.lat0;this.lambda0=this.long0;var e=Math.sin(t),s=this.a,a=this.rf,i=1/a,r=2*i-Math.pow(i,2),o=this.e=Math.sqrt(r);this.R=this.k0*s*Math.sqrt(1-r)/(1-r*Math.pow(e,2)),this.alpha=Math.sqrt(1+r/(1-r)*Math.pow(Math.cos(t),4)),this.b0=Math.asin(e/this.alpha);var n=Math.log(Math.tan(Math.PI/4+this.b0/2)),h=Math.log(Math.tan(Math.PI/4+t/2)),l=Math.log((1+o*e)/(1-o*e));this.K=n-this.alpha*h+this.alpha*o/2*l}function wo(t){var e=Math.log(Math.tan(Math.PI/4-t.y/2)),s=this.e/2*Math.log((1+this.e*Math.sin(t.y))/(1-this.e*Math.sin(t.y))),a=-this.alpha*(e+s)+this.K,i=2*(Math.atan(Math.exp(a))-Math.PI/4),r=this.alpha*(t.x-this.lambda0),o=Math.atan(Math.sin(r)/(Math.sin(this.b0)*Math.tan(i)+Math.cos(this.b0)*Math.cos(r))),n=Math.asin(Math.cos(this.b0)*Math.sin(i)-Math.sin(this.b0)*Math.cos(i)*Math.cos(r));return t.y=this.R/2*Math.log((1+Math.sin(n))/(1-Math.sin(n)))+this.y0,t.x=this.R*o+this.x0,t}function Eo(t){for(var e=t.x-this.x0,s=t.y-this.y0,a=e/this.R,i=2*(Math.atan(Math.exp(s/this.R))-Math.PI/4),r=Math.asin(Math.cos(this.b0)*Math.sin(i)+Math.sin(this.b0)*Math.cos(i)*Math.cos(a)),o=Math.atan(Math.sin(a)/(Math.cos(this.b0)*Math.cos(a)-Math.sin(this.b0)*Math.tan(i))),n=this.lambda0+o/this.alpha,h=0,l=r,g=-1e3,f=0;Math.abs(l-g)>1e-7;){if(++f>20)return;h=1/this.alpha*(Math.log(Math.tan(Math.PI/4+r/2))-this.K)+this.e*Math.log(Math.tan(Math.PI/4+Math.asin(this.e*Math.sin(l))/2)),g=l,l=2*Math.atan(Math.exp(h))-Math.PI/2}return t.x=n,t.y=l,t}var So=["somerc"];const Po={init:yo,forward:wo,inverse:Eo,names:So};var se=1e-7;function po(t){var e=["Hotine_Oblique_Mercator","Hotine_Oblique_Mercator_variant_A","Hotine_Oblique_Mercator_Azimuth_Natural_Origin"],s=typeof t.projName=="object"?Object.keys(t.projName)[0]:t.projName;return"no_uoff"in t||"no_off"in t||e.indexOf(s)!==-1||e.indexOf(Za(s))!==-1}function xo(){var t,e,s,a,i,r,o,n,h,l,g=0,f,u=0,m=0,w=0,E=0,S=0,b=0;this.no_off=po(this),this.no_rot="no_rot"in this;var A=!1;"alpha"in this&&(A=!0);var I=!1;if("rectified_grid_angle"in this&&(I=!0),A&&(b=this.alpha),I&&(g=this.rectified_grid_angle,A||(b=0,A=!0)),A||I)u=this.longc;else if(m=this.long1,E=this.lat1,w=this.long2,S=this.lat2,Math.abs(E-S)<=se||(t=Math.abs(E))<=se||Math.abs(t-P)<=se||Math.abs(Math.abs(this.lat0)-P)<=se||Math.abs(Math.abs(S)-P)<=se)throw new Error;var R=1-this.es;e=Math.sqrt(R),Math.abs(this.lat0)>x?(n=Math.sin(this.lat0),s=Math.cos(this.lat0),t=1-this.es*n*n,this.B=s*s,this.B=Math.sqrt(1+this.es*this.B*this.B/R),this.A=this.B*this.k0*e/t,a=this.B*e/(s*Math.sqrt(t)),i=a*a-1,i<=0?i=0:(i=Math.sqrt(i),this.lat0<0&&(i=-i)),this.E=i+=a,this.E*=Math.pow(Gt(this.e,this.lat0,n),this.B)):(this.B=1/e,this.A=this.k0,this.E=a=i=1),A||I?(A?(f=Math.asin(Math.sin(b)/a),I||(g=b)):(f=g,b=Math.asin(a*Math.sin(f))),this.lam0=u-Math.asin(.5*(i-1/i)*Math.tan(f))/this.B):(r=Math.pow(Gt(this.e,E,Math.sin(E)),this.B),o=Math.pow(Gt(this.e,S,Math.sin(S)),this.B),i=this.E/r,h=(o-r)/(o+r),l=this.E*this.E,l=(l-o*r)/(l+o*r),t=m-w,t<-Math.PI?w-=Te:t>Math.PI&&(w+=Te),this.lam0=G(.5*(m+w)-Math.atan(l*Math.tan(.5*this.B*(m-w))/h)/this.B,this.over),f=Math.atan(2*Math.sin(this.B*G(m-this.lam0,this.over))/(i-1/i)),g=b=Math.asin(a*Math.sin(f))),this.singam=Math.sin(f),this.cosgam=Math.cos(f),this.sinrot=Math.sin(g),this.cosrot=Math.cos(g),this.rB=1/this.B,this.ArB=this.A*this.rB,this.BrA=1/this.ArB,this.no_off?this.u_0=0:(this.u_0=Math.abs(this.ArB*Math.atan(Math.sqrt(a*a-1)/Math.cos(b))),this.lat0<0&&(this.u_0=-this.u_0)),i=.5*f,this.v_pole_n=this.ArB*Math.log(Math.tan(U-i)),this.v_pole_s=this.ArB*Math.log(Math.tan(U+i))}function bo(t){var e={},s,a,i,r,o,n,h,l;if(t.x=t.x-this.lam0,Math.abs(Math.abs(t.y)-P)>x){if(o=this.E/Math.pow(Gt(this.e,t.y,Math.sin(t.y)),this.B),n=1/o,s=.5*(o-n),a=.5*(o+n),r=Math.sin(this.B*t.x),i=(s*this.singam-r*this.cosgam)/a,Math.abs(Math.abs(i)-1)0?this.v_pole_n:this.v_pole_s,h=this.ArB*t.y;return this.no_rot?(e.x=h,e.y=l):(h-=this.u_0,e.x=l*this.cosrot+h*this.sinrot,e.y=h*this.cosrot-l*this.sinrot),e.x=this.a*e.x+this.x0,e.y=this.a*e.y+this.y0,e}function Go(t){var e,s,a,i,r,o,n,h={};if(t.x=(t.x-this.x0)*(1/this.a),t.y=(t.y-this.y0)*(1/this.a),this.no_rot?(s=t.y,e=t.x):(s=t.x*this.cosrot-t.y*this.sinrot,e=t.y*this.cosrot+t.x*this.sinrot+this.u_0),a=Math.exp(-this.BrA*s),i=.5*(a-1/a),r=.5*(a+1/a),o=Math.sin(this.BrA*e),n=(o*this.cosgam+i*this.singam)/r,Math.abs(Math.abs(n)-1)x?this.ns=Math.log(a/n)/Math.log(i/h):this.ns=e,isNaN(this.ns)&&(this.ns=e),this.f0=a/(this.ns*Math.pow(i,this.ns)),this.rh=this.a*this.f0*Math.pow(l,this.ns),this.title||(this.title="Lambert Conformal Conic")}}function Co(t){var e=t.x,s=t.y;Math.abs(2*Math.abs(s)-Math.PI)<=x&&(s=qe(s)*(P-2*x));var a=Math.abs(Math.abs(s)-P),i,r;if(a>x)i=Gt(this.e,s,Math.sin(s)),r=this.a*this.f0*Math.pow(i,this.ns);else{if(a=s*this.ns,a<=0)return null;r=0}var o=this.ns*G(e-this.long0,this.over);return t.x=this.k0*(r*Math.sin(o))+this.x0,t.y=this.k0*(this.rh-r*Math.cos(o))+this.y0,t}function Lo(t){var e,s,a,i,r,o=(t.x-this.x0)/this.k0,n=this.rh-(t.y-this.y0)/this.k0;this.ns>0?(e=Math.sqrt(o*o+n*n),s=1):(e=-Math.sqrt(o*o+n*n),s=-1);var h=0;if(e!==0&&(h=Math.atan2(s*o,s*n)),e!==0||this.ns>0){if(s=1/this.ns,a=Math.pow(e/(this.a*this.f0),s),i=Fe(this.e,a),i===-9999)return null}else i=-P;return r=G(h/this.ns+this.long0,this.over),t.x=r,t.y=i,t}var Ro=["Lambert Tangential Conformal Conic Projection","Lambert_Conformal_Conic","Lambert_Conformal_Conic_1SP","Lambert_Conformal_Conic_2SP","lcc","Lambert Conic Conformal (1SP)","Lambert Conic Conformal (2SP)"];const To={init:Io,forward:Co,inverse:Lo,names:Ro};function Oo(){this.a=6377397155e-3,this.es=.006674372230614,this.e=Math.sqrt(this.es),this.lat0||(this.lat0=.863937979737193),this.long0||(this.long0=.7417649320975901-.308341501185665),this.k0||(this.k0=.9999),this.s45=.785398163397448,this.s90=2*this.s45,this.fi0=this.lat0,this.e2=this.es,this.e=Math.sqrt(this.e2),this.alfa=Math.sqrt(1+this.e2*Math.pow(Math.cos(this.fi0),4)/(1-this.e2)),this.uq=1.04216856380474,this.u0=Math.asin(Math.sin(this.fi0)/this.alfa),this.g=Math.pow((1+this.e*Math.sin(this.fi0))/(1-this.e*Math.sin(this.fi0)),this.alfa*this.e/2),this.k=Math.tan(this.u0/2+this.s45)/Math.pow(Math.tan(this.fi0/2+this.s45),this.alfa)*this.g,this.k1=this.k0,this.n0=this.a*Math.sqrt(1-this.e2)/(1-this.e2*Math.pow(Math.sin(this.fi0),2)),this.s0=1.37008346281555,this.n=Math.sin(this.s0),this.ro0=this.k1*this.n0/Math.tan(this.s0),this.ad=this.s90-this.uq}function Fo(t){var e,s,a,i,r,o,n,h=t.x,l=t.y,g=G(h-this.long0,this.over);return e=Math.pow((1+this.e*Math.sin(l))/(1-this.e*Math.sin(l)),this.alfa*this.e/2),s=2*(Math.atan(this.k*Math.pow(Math.tan(l/2+this.s45),this.alfa)/e)-this.s45),a=-g*this.alfa,i=Math.asin(Math.cos(this.ad)*Math.sin(s)+Math.sin(this.ad)*Math.cos(s)*Math.cos(a)),r=Math.asin(Math.cos(s)*Math.sin(a)/Math.cos(i)),o=this.n*r,n=this.ro0*Math.pow(Math.tan(this.s0/2+this.s45),this.n)/Math.pow(Math.tan(i/2+this.s45),this.n),t.y=n*Math.cos(o)/1,t.x=n*Math.sin(o)/1,this.czech||(t.y*=-1,t.x*=-1),t}function jo(t){var e,s,a,i,r,o,n,h,l=t.x;t.x=t.y,t.y=l,this.czech||(t.y*=-1,t.x*=-1),o=Math.sqrt(t.x*t.x+t.y*t.y),r=Math.atan2(t.y,t.x),i=r/Math.sin(this.s0),a=2*(Math.atan(Math.pow(this.ro0/o,1/this.n)*Math.tan(this.s0/2+this.s45))-this.s45),e=Math.asin(Math.cos(this.ad)*Math.sin(a)-Math.sin(this.ad)*Math.cos(a)*Math.cos(i)),s=Math.asin(Math.cos(a)*Math.sin(i)/Math.cos(e)),t.x=this.long0-s/this.alfa,n=e,h=0;var g=0;do t.y=2*(Math.atan(Math.pow(this.k,-1/this.alfa)*Math.pow(Math.tan(e/2+this.s45),1/this.alfa)*Math.pow((1+this.e*Math.sin(n))/(1-this.e*Math.sin(n)),this.e/2))-this.s45),Math.abs(n-t.y)<1e-10&&(h=1),n=t.y,g+=1;while(h===0&&g<15);return g>=15?null:t}var ko=["Krovak","Krovak Modified","Krovak (North Orientated)","Krovak Modified (North Orientated)","krovak"];const qo={init:Oo,forward:Fo,inverse:jo,names:ko};function vt(t,e,s,a,i){return t*i-e*Math.sin(2*i)+s*Math.sin(4*i)-a*Math.sin(6*i)}function $e(t){return 1-.25*t*(1+t/16*(3+1.25*t))}function De(t){return .375*t*(1+.25*t*(1+.46875*t))}function Ue(t){return .05859375*t*t*(1+.75*t)}function Be(t){return t*t*t*(35/3072)}function aa(t,e,s){var a=e*s;return t/Math.sqrt(1-a*a)}function Ut(t){return Math.abs(t)1e-7?(s=t*e,(1-t*t)*(e/(1-s*s)-.5/t*Math.log((1-s)/(1+s)))):2*e}var Wo=.3333333333333333,Vo=.17222222222222222,Ho=.10257936507936508,Qo=.06388888888888888,Jo=.0664021164021164,Xo=.016415012942191543;function ui(t){var e,s=[];return s[0]=t*Wo,e=t*t,s[0]+=e*Vo,s[1]=e*Qo,e*=t,s[0]+=e*Ho,s[1]+=e*Jo,s[2]=e*Xo,s}function ci(t,e){var s=t+t;return t+e[0]*Math.sin(s)+e[1]*Math.sin(s+s)+e[2]*Math.sin(s+s+s)}var Bs=1,zs=2,Ws=3,cs=4;function Ko(){var t=Math.abs(this.lat0);if(Math.abs(t-P)0){var e;switch(this.qp=Ct(this.e,1),this.mmf=.5/(1-this.es),this.apa=ui(this.es),this.mode){case zs:this.dd=1;break;case Bs:this.dd=1;break;case Ws:this.rq=Math.sqrt(.5*this.qp),this.dd=1/this.rq,this.xmf=1,this.ymf=.5*this.qp;break;case cs:this.rq=Math.sqrt(.5*this.qp),e=Math.sin(this.lat0),this.sinb1=Ct(this.e,e)/this.qp,this.cosb1=Math.sqrt(1-this.sinb1*this.sinb1),this.dd=Math.cos(this.lat0)/(Math.sqrt(1-this.es*e*e)*this.rq*this.cosb1),this.ymf=(this.xmf=this.rq)/this.dd,this.xmf*=this.dd;break}}else this.mode===cs&&(this.sinph0=Math.sin(this.lat0),this.cosph0=Math.cos(this.lat0))}function Zo(t){var e,s,a,i,r,o,n,h,l,g,f=t.x,u=t.y;if(f=G(f-this.long0,this.over),this.sphere){if(r=Math.sin(u),g=Math.cos(u),a=Math.cos(f),this.mode===this.OBLIQ||this.mode===this.EQUIT){if(s=this.mode===this.EQUIT?1+g*a:1+this.sinph0*r+this.cosph0*g*a,s<=x)return null;s=Math.sqrt(2/s),e=s*g*Math.sin(f),s*=this.mode===this.EQUIT?r:this.cosph0*r-this.sinph0*g*a}else if(this.mode===this.N_POLE||this.mode===this.S_POLE){if(this.mode===this.N_POLE&&(a=-a),Math.abs(u+this.lat0)=0?(e=(l=Math.sqrt(o))*i,s=a*(this.mode===this.S_POLE?l:-l)):e=s=0;break}}return t.x=this.a*e+this.x0,t.y=this.a*s+this.y0,t}function Yo(t){t.x-=this.x0,t.y-=this.y0;var e=t.x/this.a,s=t.y/this.a,a,i,r,o,n,h,l;if(this.sphere){var g=0,f,u=0;if(f=Math.sqrt(e*e+s*s),i=f*.5,i>1)return null;switch(i=2*Math.asin(i),(this.mode===this.OBLIQ||this.mode===this.EQUIT)&&(u=Math.sin(i),g=Math.cos(i)),this.mode){case this.EQUIT:i=Math.abs(f)<=x?0:Math.asin(s*u/f),e*=u,s=g*f;break;case this.OBLIQ:i=Math.abs(f)<=x?this.lat0:Math.asin(g*this.sinph0+s*u*this.cosph0/f),e*=u*this.cosph0,s=(g-Math.sin(i)*this.sinph0)*f;break;case this.N_POLE:s=-s,i=P-i;break;case this.S_POLE:i-=P;break}a=s===0&&(this.mode===this.EQUIT||this.mode===this.OBLIQ)?0:Math.atan2(e,s)}else{if(l=0,this.mode===this.OBLIQ||this.mode===this.EQUIT){if(e/=this.dd,s*=this.dd,h=Math.sqrt(e*e+s*s),h1&&(t=t>1?1:-1),Math.asin(t)}function sh(){Math.abs(this.lat1+this.lat2)x?this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1):this.ns0=this.con,this.c=this.ms1*this.ms1+this.ns0*this.qs1,this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0)}function ah(t){var e=t.x,s=t.y;this.sin_phi=Math.sin(s),this.cos_phi=Math.cos(s);var a=Ct(this.e3,this.sin_phi),i=this.a*Math.sqrt(this.c-this.ns0*a)/this.ns0,r=this.ns0*G(e-this.long0,this.over),o=i*Math.sin(r)+this.x0,n=this.rh-i*Math.cos(r)+this.y0;return t.x=o,t.y=n,t}function ih(t){var e,s,a,i,r,o;return t.x-=this.x0,t.y=this.rh-t.y+this.y0,this.ns0>=0?(e=Math.sqrt(t.x*t.x+t.y*t.y),a=1):(e=-Math.sqrt(t.x*t.x+t.y*t.y),a=-1),i=0,e!==0&&(i=Math.atan2(a*t.x,a*t.y)),a=e*this.ns0/this.a,this.sphere?o=Math.asin((this.c-a*a)/(2*this.ns0)):(s=(this.c-a*a)/this.ns0,o=this.phi1z(this.e3,s)),r=G(i/this.ns0+this.long0,this.over),t.x=r,t.y=o,t}function rh(t,e){var s,a,i,r,o,n=Dt(.5*e);if(t0||Math.abs(o)<=x?(n=this.x0+this.a*r*s*Math.sin(a)/o,h=this.y0+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)/o):(n=this.x0+this.infinity_dist*s*Math.sin(a),h=this.y0+this.infinity_dist*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function uh(t){var e,s,a,i,r,o;return t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,t.x/=this.k0,t.y/=this.k0,(e=Math.sqrt(t.x*t.x+t.y*t.y))?(i=Math.atan2(e,this.rc),s=Math.sin(i),a=Math.cos(i),o=Dt(a*this.sin_p14+t.y*s*this.cos_p14/e),r=Math.atan2(t.x*s,e*this.cos_p14*a-t.y*this.sin_p14*s),r=G(this.long0+r,this.over)):(o=this.phic0,r=0),t.x=r,t.y=o,t}var ch=["gnom"];const fh={init:hh,forward:lh,inverse:uh,names:ch};function gh(t,e){var s=1-(1-t*t)/(2*t)*Math.log((1-t)/(1+t));if(Math.abs(Math.abs(e)-s)<1e-6)return e<0?-1*P:P;for(var a=Math.asin(.5*e),i,r,o,n,h=0;h<30;h++)if(r=Math.sin(a),o=Math.cos(a),n=t*r,i=Math.pow(1-n*n,2)/(2*o)*(e/(1-t*t)-r/(1-n*n)+.5/t*Math.log((1-n)/(1+n))),a+=i,Math.abs(i)<=1e-10)return a;return NaN}function vh(){this.sphere||(this.k0=Lt(this.e,Math.sin(this.lat_ts),Math.cos(this.lat_ts)))}function dh(t){var e=t.x,s=t.y,a,i,r=G(e-this.long0,this.over);if(this.sphere)a=this.x0+this.a*r*Math.cos(this.lat_ts),i=this.y0+this.a*Math.sin(s)/Math.cos(this.lat_ts);else{var o=Ct(this.e,Math.sin(s));a=this.x0+this.a*this.k0*r,i=this.y0+this.a*o*.5/this.k0}return t.x=a,t.y=i,t}function _h(t){t.x-=this.x0,t.y-=this.y0;var e,s;return this.sphere?(e=G(this.long0+t.x/this.a/Math.cos(this.lat_ts),this.over),s=Math.asin(t.y/this.a*Math.cos(this.lat_ts))):(s=gh(this.e,2*t.y*this.k0/this.a),e=G(this.long0+t.x/(this.a*this.k0),this.over)),t.x=e,t.y=s,t}var Mh=["cea"];const mh={init:vh,forward:dh,inverse:_h,names:Mh};function yh(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Equidistant Cylindrical (Plate Carre)",this.rc=Math.cos(this.lat_ts)}function wh(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i=Ut(s-this.lat0);return t.x=this.x0+this.a*a*this.rc,t.y=this.y0+this.a*i,t}function Eh(t){var e=t.x,s=t.y;return t.x=G(this.long0+(e-this.x0)/(this.a*this.rc),this.over),t.y=Ut(this.lat0+(s-this.y0)/this.a),t}var Sh=["Equirectangular","Equidistant_Cylindrical","Equidistant_Cylindrical_Spherical","eqc"];const Ph={init:yh,forward:wh,inverse:Eh,names:Sh};var Fa=20;function ph(){this.temp=this.b/this.a,this.es=1-Math.pow(this.temp,2),this.e=Math.sqrt(this.es),this.e0=$e(this.es),this.e1=De(this.es),this.e2=Ue(this.es),this.e3=Be(this.es),this.ml0=this.a*vt(this.e0,this.e1,this.e2,this.e3,this.lat0)}function xh(t){var e=t.x,s=t.y,a,i,r,o=G(e-this.long0,this.over);if(r=o*Math.sin(s),this.sphere)Math.abs(s)<=x?(a=this.a*o,i=-1*this.a*this.lat0):(a=this.a*Math.sin(r)/Math.tan(s),i=this.a*(Ut(s-this.lat0)+(1-Math.cos(r))/Math.tan(s)));else if(Math.abs(s)<=x)a=this.a*o,i=-1*this.ml0;else{var n=aa(this.a,this.e,Math.sin(s))/Math.tan(s);a=n*Math.sin(r),i=this.a*vt(this.e0,this.e1,this.e2,this.e3,s)-this.ml0+n*(1-Math.cos(r))}return t.x=a+this.x0,t.y=i+this.y0,t}function bh(t){var e,s,a,i,r,o,n,h,l;if(a=t.x-this.x0,i=t.y-this.y0,this.sphere)if(Math.abs(i+this.a*this.lat0)<=x)e=G(a/this.a+this.long0,this.over),s=0;else{o=this.lat0+i/this.a,n=a*a/this.a/this.a+o*o,h=o;var g;for(r=Fa;r;--r)if(g=Math.tan(h),l=-1*(o*(h*g+1)-h-.5*(h*h+n)*g)/((h-o)/g-1),h+=l,Math.abs(l)<=x){s=h;break}e=G(this.long0+Math.asin(a*Math.tan(h)/this.a)/Math.sin(s),this.over)}else if(Math.abs(i+this.ml0)<=x)s=0,e=G(this.long0+a/this.a,this.over);else{o=(this.ml0+i)/this.a,n=a*a/this.a/this.a+o*o,h=o;var f,u,m,w,E;for(r=Fa;r;--r)if(E=this.e*Math.sin(h),f=Math.sqrt(1-E*E)*Math.tan(h),u=this.a*vt(this.e0,this.e1,this.e2,this.e3,h),m=this.e0-2*this.e1*Math.cos(2*h)+4*this.e2*Math.cos(4*h)-6*this.e3*Math.cos(6*h),w=u/this.a,l=(o*(f*w+1)-w-.5*f*(w*w+n))/(this.es*Math.sin(2*h)*(w*w+n-2*o*w)/(4*f)+(o-w)*(f*m-2/Math.sin(2*h))-m),h-=l,Math.abs(l)<=x){s=h;break}f=Math.sqrt(1-this.es*Math.pow(Math.sin(s),2))*Math.tan(s),e=G(this.long0+Math.asin(a*f/this.a)/Math.sin(s),this.over)}return t.x=e,t.y=s,t}var Gh=["Polyconic","American_Polyconic","poly"];const Nh={init:ph,forward:xh,inverse:bh,names:Gh};function Ah(){this.A=[],this.A[1]=.6399175073,this.A[2]=-.1358797613,this.A[3]=.063294409,this.A[4]=-.02526853,this.A[5]=.0117879,this.A[6]=-.0055161,this.A[7]=.0026906,this.A[8]=-.001333,this.A[9]=67e-5,this.A[10]=-34e-5,this.B_re=[],this.B_im=[],this.B_re[1]=.7557853228,this.B_im[1]=0,this.B_re[2]=.249204646,this.B_im[2]=.003371507,this.B_re[3]=-.001541739,this.B_im[3]=.04105856,this.B_re[4]=-.10162907,this.B_im[4]=.01727609,this.B_re[5]=-.26623489,this.B_im[5]=-.36249218,this.B_re[6]=-.6870983,this.B_im[6]=-1.1651967,this.C_re=[],this.C_im=[],this.C_re[1]=1.3231270439,this.C_im[1]=0,this.C_re[2]=-.577245789,this.C_im[2]=-.007809598,this.C_re[3]=.508307513,this.C_im[3]=-.112208952,this.C_re[4]=-.15094762,this.C_im[4]=.18200602,this.C_re[5]=1.01418179,this.C_im[5]=1.64497696,this.C_re[6]=1.9660549,this.C_im[6]=2.5127645,this.D=[],this.D[1]=1.5627014243,this.D[2]=.5185406398,this.D[3]=-.03333098,this.D[4]=-.1052906,this.D[5]=-.0368594,this.D[6]=.007317,this.D[7]=.0122,this.D[8]=.00394,this.D[9]=-.0013}function Ih(t){var e,s=t.x,a=t.y,i=a-this.lat0,r=s-this.long0,o=i/Ae*1e-5,n=r,h=1,l=0;for(e=1;e<=10;e++)h=h*o,l=l+this.A[e]*h;var g=l,f=n,u=1,m=0,w,E,S=0,b=0;for(e=1;e<=6;e++)w=u*g-m*f,E=m*g+u*f,u=w,m=E,S=S+this.B_re[e]*u-this.B_im[e]*m,b=b+this.B_im[e]*u+this.B_re[e]*m;return t.x=b*this.a+this.x0,t.y=S*this.a+this.y0,t}function Ch(t){var e,s=t.x,a=t.y,i=s-this.x0,r=a-this.y0,o=r/this.a,n=i/this.a,h=1,l=0,g,f,u=0,m=0;for(e=1;e<=6;e++)g=h*o-l*n,f=l*o+h*n,h=g,l=f,u=u+this.C_re[e]*h-this.C_im[e]*l,m=m+this.C_im[e]*h+this.C_re[e]*l;for(var w=0;w.999999999999&&(s=.999999999999),e=Math.asin(s);var a=G(this.long0+t.x/(.900316316158*this.a*Math.cos(e)),this.over);a<-Math.PI&&(a=-Math.PI),a>Math.PI&&(a=Math.PI),s=(2*e+Math.sin(2*e))/Math.PI,Math.abs(s)>1&&(s=1);var i=Math.asin(s);return t.x=a,t.y=i,t}var Kh=["Mollweide","moll"];const Zh={init:Qh,forward:Jh,inverse:Xh,names:Kh};function Yh(){Math.abs(this.lat1+this.lat2)=0?(s=Math.sqrt(t.x*t.x+t.y*t.y),e=1):(s=-Math.sqrt(t.x*t.x+t.y*t.y),e=-1);var r=0;if(s!==0&&(r=Math.atan2(e*t.x,e*t.y)),this.sphere)return i=G(this.long0+r/this.ns,this.over),a=Ut(this.g-s/this.a),t.x=i,t.y=a,t;var o=this.g-s/this.a;return a=ms(o,this.e0,this.e1,this.e2,this.e3),i=G(this.long0+r/this.ns,this.over),t.x=i,t.y=a,t}var s0=["Equidistant_Conic","eqdc"];const a0={init:Yh,forward:t0,inverse:e0,names:s0};function i0(){this.R=this.a}function r0(t){var e=t.x,s=t.y,a=G(e-this.long0,this.over),i,r;Math.abs(s)<=x&&(i=this.x0+this.R*a,r=this.y0);var o=Dt(2*Math.abs(s/Math.PI));(Math.abs(a)<=x||Math.abs(Math.abs(s)-P)<=x)&&(i=this.x0,s>=0?r=this.y0+Math.PI*this.R*Math.tan(.5*o):r=this.y0+Math.PI*this.R*-Math.tan(.5*o));var n=.5*Math.abs(Math.PI/a-a/Math.PI),h=n*n,l=Math.sin(o),g=Math.cos(o),f=g/(l+g-1),u=f*f,m=f*(2/l-1),w=m*m,E=Math.PI*this.R*(n*(f-w)+Math.sqrt(h*(f-w)*(f-w)-(w+h)*(u-w)))/(w+h);a<0&&(E=-E),i=this.x0+E;var S=h+f;return E=Math.PI*this.R*(m*S-n*Math.sqrt((w+h)*(h+1)-S*S))/(w+h),s>=0?r=this.y0+E:r=this.y0-E,t.x=i,t.y=r,t}function n0(t){var e,s,a,i,r,o,n,h,l,g,f,u,m;return t.x-=this.x0,t.y-=this.y0,f=Math.PI*this.R,a=t.x/f,i=t.y/f,r=a*a+i*i,o=-Math.abs(i)*(1+r),n=o-2*i*i+a*a,h=-2*o+1+2*i*i+r*r,m=i*i/h+(2*n*n*n/h/h/h-9*o*n/h/h)/27,l=(o-n*n/3/h)/h,g=2*Math.sqrt(-l/3),f=3*m/l/g,Math.abs(f)>1&&(f>=0?f=1:f=-1),u=Math.acos(f)/3,t.y>=0?s=(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI:s=-(-g*Math.cos(u+Math.PI/3)-n/3/h)*Math.PI,Math.abs(a)1e-12&&--E>0);return E===0?{azi1:NaN,s12:NaN}:(W=O*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),dt=1+W/16384*(4096+W*(-768+W*(320-175*W))),ht=W/1024*(256+W*(-128+W*(74-47*W))),D=ht*A*(F+ht/4*(I*(-1+2*F*F)-ht/6*F*(-3+4*A*A)*(-3+4*F*F))),_t=i*(1-r)*dt*(R-D),{azi1:Math.atan2(u*S,g*f-l*u*b),s12:_t})}function u0(t,e,s,a,i,r){const o=Math.atan((1-r)*Math.tan(t)),n=Math.sin(o),h=Math.cos(o),l=Math.sin(s),g=Math.cos(s),f=Math.atan2(n,h*g),u=h*l,m=1-u*u,w=m*(i*i-i*(1-r)*(i*(1-r)))/(i*(1-r)*(i*(1-r))),E=1+w/16384*(4096+w*(-768+w*(320-175*w))),S=w/1024*(256+w*(-128+w*(74-47*w)));let b=a/(i*(1-r)*E),A,I=100,R,j,O,F;do R=Math.cos(2*f+b),j=Math.sin(b),O=Math.cos(b),F=S*j*(R+S/4*(O*(-1+2*R*R)-S/6*R*(-3+4*j*j)*(-3+4*R*R))),A=b,b=a/(i*(1-r)*E)+F;while(Math.abs(b-A)>1e-12&&--I>0);if(I===0)return{lat2:NaN,lon2:NaN};const K=n*j-h*O*g,W=Math.atan2(n*O+h*j*g,(1-r)*Math.sqrt(u*u+K*K)),dt=Math.atan2(j*l,h*O-n*j*g),ht=r/16*m*(4+r*(4-3*m)),D=dt-(1-ht)*r*u*(b+ht*j*(R+ht*O*(-1+2*R*R))),_t=e+D;return{lat2:W,lon2:_t}}function c0(){this.sin_p12=Math.sin(this.lat0),this.cos_p12=Math.cos(this.lat0),this.f=this.es/(1+Math.sqrt(1-this.es))}function f0(t){var e=t.x,s=t.y,a=Math.sin(t.y),i=Math.cos(t.y),r=G(e-this.long0,this.over),o,n,h,l,g,f,u,m,w,E,S;return this.sphere?Math.abs(this.sin_p12-1)<=x?(t.x=this.x0+this.a*(P-s)*Math.sin(r),t.y=this.y0-this.a*(P-s)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=x?(t.x=this.x0+this.a*(P+s)*Math.sin(r),t.y=this.y0+this.a*(P+s)*Math.cos(r),t):(w=this.sin_p12*a+this.cos_p12*i*Math.cos(r),u=Math.acos(w),m=u?u/Math.sin(u):1,t.x=this.x0+this.a*m*i*Math.sin(r),t.y=this.y0+this.a*m*(this.cos_p12*a-this.sin_p12*i*Math.cos(r)),t):(o=$e(this.es),n=De(this.es),h=Ue(this.es),l=Be(this.es),Math.abs(this.sin_p12-1)<=x?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g-f)*Math.sin(r),t.y=this.y0-(g-f)*Math.cos(r),t):Math.abs(this.sin_p12+1)<=x?(g=this.a*vt(o,n,h,l,P),f=this.a*vt(o,n,h,l,s),t.x=this.x0+(g+f)*Math.sin(r),t.y=this.y0+(g+f)*Math.cos(r),t):Math.abs(e)2*P*this.a?void 0:(s=e/this.a,a=Math.sin(s),i=Math.cos(s),r=this.long0,Math.abs(e)<=x?o=this.lat0:(o=Dt(i*this.sin_p12+t.y*a*this.cos_p12/e),n=Math.abs(this.lat0)-P,Math.abs(n)<=x?this.lat0>=0?r=G(this.long0+Math.atan2(t.x,-t.y),this.over):r=G(this.long0-Math.atan2(-t.x,t.y),this.over):r=G(this.long0+Math.atan2(t.x*a,e*this.cos_p12*i-t.y*this.sin_p12*a),this.over)),t.x=r,t.y=o,t)):(h=$e(this.es),l=De(this.es),g=Ue(this.es),f=Be(this.es),Math.abs(this.sin_p12-1)<=x?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),m=u-e,o=ms(m/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,-1*t.y),this.over),t.x=r,t.y=o,t):Math.abs(this.sin_p12+1)<=x?(u=this.a*vt(h,l,g,f,P),e=Math.sqrt(t.x*t.x+t.y*t.y),m=e-u,o=ms(m/this.a,h,l,g,f),r=G(this.long0+Math.atan2(t.x,t.y),this.over),t.x=r,t.y=o,t):(w=Math.atan2(t.x,t.y),E=Math.sqrt(t.x*t.x+t.y*t.y),S=u0(this.lat0,this.long0,w,E,this.a,this.f),t.x=S.lon2,t.y=S.lat2,t))}var v0=["Azimuthal_Equidistant","aeqd"];const d0={init:c0,forward:f0,inverse:g0,names:v0};function _0(){this.sin_p14=Math.sin(this.lat0||0),this.cos_p14=Math.cos(this.lat0||0)}function M0(t){var e,s,a,i,r,o,n,h,l=t.x,g=t.y;return a=G(l-(this.long0||0),this.over),e=Math.sin(g),s=Math.cos(g),i=Math.cos(a),o=this.sin_p14*e+this.cos_p14*s*i,r=1,(o>0||Math.abs(o)<=x)&&(n=this.a*r*s*Math.sin(a),h=(this.y0||0)+this.a*r*(this.cos_p14*e-this.sin_p14*s*i)),t.x=n,t.y=h,t}function m0(t){var e,s,a,i,r,o,n,h,l;return t.x-=this.x0||0,t.y-=this.y0||0,e=Math.sqrt(t.x*t.x+t.y*t.y),s=Dt(e/this.a),a=Math.sin(s),i=Math.cos(s),h=this.long0||0,l=this.lat0||0,o=h,Math.abs(e)<=x?(n=l,t.x=o,t.y=n,t):(n=Dt(i*this.sin_p14+t.y*a*this.cos_p14/e),r=Math.abs(l)-P,Math.abs(r)<=x?(l>=0?o=G(h+Math.atan2(t.x,-t.y),this.over):o=G(h-Math.atan2(-t.x,t.y),this.over),t.x=o,t.y=n,t):(o=G(h+Math.atan2(t.x*a,e*this.cos_p14*i-t.y*this.sin_p14*a),this.over),t.x=o,t.y=n,t))}var y0=["ortho"];const w0={init:_0,forward:M0,inverse:m0,names:y0};var X={FRONT:1,RIGHT:2,BACK:3,LEFT:4,TOP:5,BOTTOM:6},B={AREA_0:1,AREA_1:2,AREA_2:3,AREA_3:4};function E0(){this.x0=this.x0||0,this.y0=this.y0||0,this.lat0=this.lat0||0,this.long0=this.long0||0,this.lat_ts=this.lat_ts||0,this.title=this.title||"Quadrilateralized Spherical Cube",this.lat0>=P-U/2?this.face=X.TOP:this.lat0<=-(P-U/2)?this.face=X.BOTTOM:Math.abs(this.long0)<=U?this.face=X.FRONT:Math.abs(this.long0)<=P+U?this.face=this.long0>0?X.RIGHT:X.LEFT:this.face=X.BACK,this.es!==0&&(this.one_minus_f=1-(this.a-this.b)/this.a,this.one_minus_f_squared=this.one_minus_f*this.one_minus_f)}function S0(t){var e={x:0,y:0},s,a,i,r,o,n,h={value:0};if(t.x-=this.long0,this.es!==0?s=Math.atan(this.one_minus_f_squared*Math.tan(t.y)):s=t.y,a=t.x,this.face===X.TOP)r=P-s,a>=U&&a<=P+U?(h.value=B.AREA_0,i=a-P):a>P+U||a<=-(P+U)?(h.value=B.AREA_1,i=a>0?a-tt:a+tt):a>-(P+U)&&a<=-U?(h.value=B.AREA_2,i=a+P):(h.value=B.AREA_3,i=a);else if(this.face===X.BOTTOM)r=P+s,a>=U&&a<=P+U?(h.value=B.AREA_0,i=-a+P):a=-U?(h.value=B.AREA_1,i=-a):a<-U&&a>=-(P+U)?(h.value=B.AREA_2,i=-a-P):(h.value=B.AREA_3,i=a>0?-a+tt:-a-tt);else{var l,g,f,u,m,w,E;this.face===X.RIGHT?a=he(a,+P):this.face===X.BACK?a=he(a,+tt):this.face===X.LEFT&&(a=he(a,-P)),u=Math.sin(s),m=Math.cos(s),w=Math.sin(a),E=Math.cos(a),l=m*E,g=m*w,f=u,this.face===X.FRONT?(r=Math.acos(l),i=os(r,f,g,h)):this.face===X.RIGHT?(r=Math.acos(g),i=os(r,f,-l,h)):this.face===X.BACK?(r=Math.acos(-l),i=os(r,f,-g,h)):this.face===X.LEFT?(r=Math.acos(-g),i=os(r,f,l,h)):(r=i=0,h.value=B.AREA_0)}return n=Math.atan(12/tt*(i+Math.acos(Math.sin(i)*Math.cos(U))-P)),o=Math.sqrt((1-Math.cos(r))/(Math.cos(n)*Math.cos(n))/(1-Math.cos(Math.atan(1/Math.cos(i))))),h.value===B.AREA_1?n+=P:h.value===B.AREA_2?n+=tt:h.value===B.AREA_3&&(n+=1.5*tt),e.x=o*Math.cos(n),e.y=o*Math.sin(n),e.x=e.x*this.a+this.x0,e.y=e.y*this.a+this.y0,t.x=e.x,t.y=e.y,t}function P0(t){var e={lam:0,phi:0},s,a,i,r,o,n,h,l,g,f={value:0};if(t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,a=Math.atan(Math.sqrt(t.x*t.x+t.y*t.y)),s=Math.atan2(t.y,t.x),t.x>=0&&t.x>=Math.abs(t.y)?f.value=B.AREA_0:t.y>=0&&t.y>=Math.abs(t.x)?(f.value=B.AREA_1,s-=P):t.x<0&&-t.x>=Math.abs(t.y)?(f.value=B.AREA_2,s=s<0?s+tt:s-tt):(f.value=B.AREA_3,s+=P),g=tt/12*Math.tan(s),o=Math.sin(g)/(Math.cos(g)-1/Math.sqrt(2)),n=Math.atan(o),i=Math.cos(s),r=Math.tan(a),h=1-i*i*r*r*(1-Math.cos(Math.atan(1/Math.cos(n)))),h<-1?h=-1:h>1&&(h=1),this.face===X.TOP)l=Math.acos(h),e.phi=P-l,f.value===B.AREA_0?e.lam=n+P:f.value===B.AREA_1?e.lam=n<0?n+tt:n-tt:f.value===B.AREA_2?e.lam=n-P:e.lam=n;else if(this.face===X.BOTTOM)l=Math.acos(h),e.phi=l-P,f.value===B.AREA_0?e.lam=-n+P:f.value===B.AREA_1?e.lam=-n:f.value===B.AREA_2?e.lam=-n-P:e.lam=n<0?-n-tt:-n+tt;else{var u,m,w;u=h,g=u*u,g>=1?w=0:w=Math.sqrt(1-g)*Math.sin(n),g+=w*w,g>=1?m=0:m=Math.sqrt(1-g),f.value===B.AREA_1?(g=m,m=-w,w=g):f.value===B.AREA_2?(m=-m,w=-w):f.value===B.AREA_3&&(g=m,m=w,w=-g),this.face===X.RIGHT?(g=u,u=-m,m=g):this.face===X.BACK?(u=-u,m=-m):this.face===X.LEFT&&(g=u,u=m,m=-g),e.phi=Math.acos(-w)-P,e.lam=Math.atan2(m,u),this.face===X.RIGHT?e.lam=he(e.lam,-P):this.face===X.BACK?e.lam=he(e.lam,-tt):this.face===X.LEFT&&(e.lam=he(e.lam,+P))}if(this.es!==0){var E,S,b;E=e.phi<0?1:0,S=Math.tan(e.phi),b=this.b/Math.sqrt(S*S+this.one_minus_f_squared),e.phi=Math.atan(Math.sqrt(this.a*this.a-b*b)/(this.one_minus_f*b)),E&&(e.phi=-e.phi)}return e.lam+=this.long0,t.x=e.lam,t.y=e.phi,t}function os(t,e,s,a){var i;return tU&&i<=P+U?(a.value=B.AREA_1,i-=P):i>P+U||i<=-(P+U)?(a.value=B.AREA_2,i=i>=0?i-tt:i+tt):(a.value=B.AREA_3,i+=P)),i}function he(t,e){var s=t+e;return s<-tt?s+=Te:s>+tt&&(s-=Te),s}var p0=["Quadrilateralized Spherical Cube","Quadrilateralized_Spherical_Cube","qsc"];const x0={init:E0,forward:S0,inverse:P0,names:p0};var Vs=[[1,22199e-21,-715515e-10,31103e-10],[.9986,-482243e-9,-24897e-9,-13309e-10],[.9954,-83103e-8,-448605e-10,-986701e-12],[.99,-.00135364,-59661e-9,36777e-10],[.9822,-.00167442,-449547e-11,-572411e-11],[.973,-.00214868,-903571e-10,18736e-12],[.96,-.00305085,-900761e-10,164917e-11],[.9427,-.00382792,-653386e-10,-26154e-10],[.9216,-.00467746,-10457e-8,481243e-11],[.8962,-.00536223,-323831e-10,-543432e-11],[.8679,-.00609363,-113898e-9,332484e-11],[.835,-.00698325,-640253e-10,934959e-12],[.7986,-.00755338,-500009e-10,935324e-12],[.7597,-.00798324,-35971e-9,-227626e-11],[.7186,-.00851367,-701149e-10,-86303e-10],[.6732,-.00986209,-199569e-9,191974e-10],[.6213,-.010418,883923e-10,624051e-11],[.5722,-.00906601,182e-6,624051e-11],[.5322,-.00677797,275608e-9,624051e-11]],Ne=[[-520417e-23,.0124,121431e-23,-845284e-16],[.062,.0124,-126793e-14,422642e-15],[.124,.0124,507171e-14,-160604e-14],[.186,.0123999,-190189e-13,600152e-14],[.248,.0124002,710039e-13,-224e-10],[.31,.0123992,-264997e-12,835986e-13],[.372,.0124029,988983e-12,-311994e-12],[.434,.0123893,-369093e-11,-435621e-12],[.4958,.0123198,-102252e-10,-345523e-12],[.5571,.0121916,-154081e-10,-582288e-12],[.6176,.0119938,-241424e-10,-525327e-12],[.6769,.011713,-320223e-10,-516405e-12],[.7346,.0113541,-397684e-10,-609052e-12],[.7903,.0109107,-489042e-10,-104739e-11],[.8435,.0103431,-64615e-9,-140374e-14],[.8936,.00969686,-64636e-9,-8547e-9],[.9394,.00840947,-192841e-9,-42106e-10],[.9761,.00616527,-256e-6,-42106e-10],[1,.00328947,-319159e-9,-42106e-10]],vi=.8487,di=1.3523,_i=yt/5,b0=1/_i,ne=18,ys=function(t,e){return t[0]+e*(t[1]+e*(t[2]+e*t[3]))},G0=function(t,e){return t[1]+e*(2*t[2]+e*3*t[3])};function N0(t,e,s,a){for(var i=e;a;--a){var r=t(i);if(i-=r,Math.abs(r)=ne&&(a=ne-1),s=yt*(s-b0*a);var i={x:ys(Vs[a],s)*e,y:ys(Ne[a],s)};return t.y<0&&(i.y=-i.y),i.x=i.x*this.a*vi+this.x0,i.y=i.y*this.a*di+this.y0,i}function C0(t){var e={x:(t.x-this.x0)/(this.a*vi),y:Math.abs(t.y-this.y0)/(this.a*di)};if(e.y>=1)e.x/=Vs[ne][0],e.y=t.y<0?-P:P;else{var s=Math.floor(e.y*ne);for(s<0?s=0:s>=ne&&(s=ne-1);;)if(Ne[s][0]>e.y)--s;else if(Ne[s+1][0]<=e.y)++s;else break;var a=Ne[s],i=5*(e.y-a[0])/(Ne[s+1][0]-a[0]);i=N0(function(r){return(ys(a,r)-e.y)/G0(a,r)},i,x,100),e.x/=ys(Vs[s],i),e.y=(5*s+i)*Z,t.y<0&&(e.y=-e.y)}return e.x=G(e.x+this.long0,this.over),e}var L0=["Robinson","robin"];const R0={init:A0,forward:I0,inverse:C0,names:L0};function T0(){this.name="geocent"}function O0(t){var e=ti(t,this.es,this.a);return e}function F0(t){var e=ei(t,this.es,this.a,this.b);return e}var j0=["Geocentric","geocentric","geocent","Geocent"];const k0={init:T0,forward:O0,inverse:F0,names:j0};var ct={N_POLE:0,S_POLE:1,EQUIT:2,OBLIQ:3},xe={h:{def:1e5,num:!0},azi:{def:0,num:!0,degrees:!0},tilt:{def:0,num:!0,degrees:!0},long0:{def:0,num:!0},lat0:{def:0,num:!0}};function q0(){if(Object.keys(xe).forEach(function(s){if(typeof this[s]=="undefined")this[s]=xe[s].def;else{if(xe[s].num&&isNaN(this[s]))throw new Error("Invalid parameter value, must be numeric "+s+" = "+this[s]);xe[s].num&&(this[s]=parseFloat(this[s]))}xe[s].degrees&&(this[s]=this[s]*Z)}.bind(this)),Math.abs(Math.abs(this.lat0)-P)1e10)throw new Error("Invalid height");this.p=1+this.pn1,this.rp=1/this.p,this.h1=1/this.pn1,this.pfact=(this.p+1)*this.h1,this.es=0;var t=this.tilt,e=this.azi;this.cg=Math.cos(e),this.sg=Math.sin(e),this.cw=Math.cos(t),this.sw=Math.sin(t)}function $0(t){t.x-=this.long0;var e=Math.sin(t.y),s=Math.cos(t.y),a=Math.cos(t.x),i,r;switch(this.mode){case ct.OBLIQ:r=this.sinph0*e+this.cosph0*s*a;break;case ct.EQUIT:r=s*a;break;case ct.S_POLE:r=-e;break;case ct.N_POLE:r=e;break}switch(r=this.pn1/(this.p-r),i=r*s*Math.sin(t.x),this.mode){case ct.OBLIQ:r*=this.cosph0*e-this.sinph0*s*a;break;case ct.EQUIT:r*=e;break;case ct.N_POLE:r*=-(s*a);break;case ct.S_POLE:r*=s*a;break}var o,n;return o=r*this.cg+i*this.sg,n=1/(o*this.sw*this.h1+this.cw),i=(i*this.cg-r*this.sg)*this.cw*n,r=o*n,t.x=i*this.a,t.y=r*this.a,t}function D0(t){t.x/=this.a,t.y/=this.a;var e={x:t.x,y:t.y},s,a,i;i=1/(this.pn1-t.y*this.sw),s=this.pn1*t.x*i,a=this.pn1*t.y*this.cw*i,t.x=s*this.cg+a*this.sg,t.y=a*this.cg-s*this.sg;var r=mt(t.x,t.y);if(Math.abs(r)1e10)throw new Error;if(this.radius_g=1+this.radius_g_1,this.C=this.radius_g*this.radius_g-1,this.es!==0){var t=1-this.es,e=1/t;this.radius_p=Math.sqrt(t),this.radius_p2=t,this.radius_p_inv2=e,this.shape="ellipse"}else this.radius_p=1,this.radius_p2=1,this.radius_p_inv2=1,this.shape="sphere";this.title||(this.title="Geostationary Satellite View")}function W0(t){var e=t.x,s=t.y,a,i,r,o;if(e=e-this.long0,this.shape==="ellipse"){s=Math.atan(this.radius_p2*Math.tan(s));var n=this.radius_p/mt(this.radius_p*Math.cos(s),Math.sin(s));if(i=n*Math.cos(e)*Math.cos(s),r=n*Math.sin(e)*Math.cos(s),o=n*Math.sin(s),(this.radius_g-i)*i-r*r-o*o*this.radius_p_inv2<0)return t.x=Number.NaN,t.y=Number.NaN,t;a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a)))}else this.shape==="sphere"&&(a=Math.cos(s),i=Math.cos(e)*a,r=Math.sin(e)*a,o=Math.sin(s),a=this.radius_g-i,this.flip_axis?(t.x=this.radius_g_1*Math.atan(r/mt(o,a)),t.y=this.radius_g_1*Math.atan(o/a)):(t.x=this.radius_g_1*Math.atan(r/a),t.y=this.radius_g_1*Math.atan(o/mt(r,a))));return t.x=t.x*this.a,t.y=t.y*this.a,t}function V0(t){var e=-1,s=0,a=0,i,r,o,n;if(t.x=t.x/this.a,t.y=t.y/this.a,this.shape==="ellipse"){this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*mt(1,a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*mt(1,s));var h=a/this.radius_p;if(i=s*s+h*h+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e),t.y=Math.atan(this.radius_p_inv2*Math.tan(t.y))}else if(this.shape==="sphere"){if(this.flip_axis?(a=Math.tan(t.y/this.radius_g_1),s=Math.tan(t.x/this.radius_g_1)*Math.sqrt(1+a*a)):(s=Math.tan(t.x/this.radius_g_1),a=Math.tan(t.y/this.radius_g_1)*Math.sqrt(1+s*s)),i=s*s+a*a+e*e,r=2*this.radius_g*e,o=r*r-4*i*this.C,o<0)return t.x=Number.NaN,t.y=Number.NaN,t;n=(-r-Math.sqrt(o))/(2*i),e=this.radius_g+n*e,s*=n,a*=n,t.x=Math.atan2(s,e),t.y=Math.atan(a*Math.cos(t.x)/e)}return t.x=t.x+this.long0,t}var H0=["Geostationary Satellite View","Geostationary_Satellite","geos"];const Q0={init:z0,forward:W0,inverse:V0,names:H0};var Ie=1.340264,Ce=-.081106,Le=893e-6,Re=.003796,ws=Math.sqrt(3)/2;function J0(){this.long0=this.long0!==void 0?this.long0:0,this.x0=this.x0!==void 0?this.x0:0,this.y0=this.y0!==void 0?this.y0:0,this.es!==0&&(this.apa=ui(this.es),this.qp=Ct(this.e,1),this.rqda=Math.sqrt(.5*this.qp))}function X0(t){var e=G(t.x-this.long0,this.over),s=t.y,a=Math.sin(s);this.es!==0&&(a=Ct(this.e,a)/this.qp);var i=Math.asin(ws*a),r=i*i,o=r*r*r;return t.x=e*Math.cos(i)/(ws*(Ie+3*Ce*r+o*(7*Le+9*Re*r))),t.y=i*(Ie+Ce*r+o*(Le+Re*r)),this.es!==0&&(t.x*=this.rqda,t.y*=this.rqda),t.x=this.a*t.x+this.x0,t.y=this.a*t.y+this.y0,t}function K0(t){t.x=(t.x-this.x0)/this.a,t.y=(t.y-this.y0)/this.a,this.es!==0&&(t.x/=this.rqda,t.y/=this.rqda);var e=1e-9,s=12,a=t.y,i,r,o,n,h,l;for(l=0;l=P?this.cphi1=0:this.cphi1=1/Math.tan(this.phi1),this.inverse=il,this.forward=al)}function el(t){var e=G(t.x-(this.long0||0),this.over),s=t.y,a,i,r;return a=this.am1+this.m1-ce(s,i=Math.sin(s),r=Math.cos(s),this.en),i=r*e/(a*Math.sqrt(1-this.es*i*i)),t.x=a*Math.sin(i),t.y=this.am1-a*Math.cos(i),t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function sl(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a,i;if(s=mt(t.x,t.y=this.am1-t.y),i=Zs(this.am1+this.m1-s,this.es,this.en),(e=Math.abs(i))je?(t.x=i*Math.sin(a=e*Math.cos(s)/i),t.y=this.cphi1-i*Math.cos(a)):t.x=t.y=0,t.x=this.a*t.x+(this.x0||0),t.y=this.a*t.y+(this.y0||0),t}function il(t){t.x=(t.x-(this.x0||0))/this.a,t.y=(t.y-(this.y0||0))/this.a;var e,s,a=mt(t.x,t.y=this.cphi1-t.y);if(s=this.cphi1+this.phi1-a,Math.abs(s)>P)throw new Error;return Math.abs(Math.abs(s)-P)<=je?e=0:e=a*Math.atan2(t.x,t.y)/Math.cos(s),t.x=G(e+(this.long0||0),this.over),t.y=Ut(s),t}var rl=["bonne","Bonne (Werner lat_1=90)"];const nl={init:tl,names:rl},ja={OBLIQUE:{forward:cl,inverse:gl},TRANSVERSE:{forward:fl,inverse:vl}},Es={ROTATE:{o_alpha:"oAlpha",o_lon_c:"oLongC",o_lat_c:"oLatC"},NEW_POLE:{o_lat_p:"oLatP",o_lon_p:"oLongP"},NEW_EQUATOR:{o_lon_1:"oLong1",o_lat_1:"oLat1",o_lon_2:"oLong2",o_lat_2:"oLat2"}};function ol(){if(this.x0=this.x0||0,this.y0=this.y0||0,this.long0=this.long0||0,this.title=this.title||"General Oblique Transformation",this.isIdentity=Xa.includes(this.o_proj),!this.o_proj)throw new Error("Missing parameter: o_proj");if(this.o_proj==="ob_tran")throw new Error("Invalid value for o_proj: "+this.o_proj);const t=this.projStr.replace("+proj=ob_tran","").replace("+o_proj=","+proj=").trim(),e=pt(t);if(!e)throw new Error("Invalid parameter: o_proj. Unknown projection "+this.o_proj);e.long0=0,this.obliqueProjection=e;let s;const a=Object.keys(Es),i=n=>{if(typeof this[n]=="undefined")return;const h=parseFloat(this[n])*Z;if(isNaN(h))throw new Error("Invalid value for "+n+": "+this[n]);return h};for(let n=0;ntypeof this[u]!="undefined")){s=l;for(let u=0;ux?(this.cphip=Math.cos(o),this.sphip=Math.sin(o),this.projectionType=ja.OBLIQUE):this.projectionType=ja.TRANSVERSE}function hl(t){return this.projectionType.forward(this,t)}function ll(t){return this.projectionType.inverse(this,t)}function ul(t,e){let s,a;if(e===Es.ROTATE){let i=t.oLongC,r=t.oLatC,o=t.oAlpha;if(Math.abs(Math.abs(r)-P)<=x)throw new Error("Invalid value for o_lat_c: "+t.o_lat_c+" should be < 90°");a=i+Math.atan2(-1*Math.cos(o),-1*Math.sin(o)*Math.sin(r)),s=Math.asin(Math.cos(r)*Math.sin(o))}else if(e===Es.NEW_POLE)a=t.oLongP,s=t.oLatP;else{let i=t.oLong1,r=t.oLat1,o=t.oLong2,n=t.oLat2,h=Math.abs(r);if(Math.abs(r)>P-x)throw new Error("Invalid value for o_lat_1: "+t.o_lat_1+" should be < 90°");if(Math.abs(n)>P-x)throw new Error("Invalid value for o_lat_2: "+t.o_lat_2+" should be < 90°");if(Math.abs(r-n)new DecompressionStream("deflate-raw"),e=s=>new Response(s);t(),Mi=s=>e(e(s).body.pipeThrough(t())).arrayBuffer().then(a=>new Uint8Array(a))}catch(t){}var Mi,ka=new TextDecoder,qs=t=>{throw Error("but-unzip~"+t)};function*ml(t,e=Mi){let s=t.length-21,a=s-65536,i=new DataView(t.buffer,t.byteOffset),r=h=>i.getUint16(h+s,1),o=h=>i.getUint32(h+s,1),n=(h,l)=>t.subarray(s+=h,s+=l);for(;s>a&&(s=t.lastIndexOf(80,s-1))+1&&(t[s+1]-75||t[s+2]-5||t[s+3]-6););for(s<0&&qs(2),a=r(10),a-r(8)&&qs(3),s=o(16);a--;){let h=r(10),l=r(28),g=r(30),f=r(32),u=o(20),m=o(42),w=ka.decode(n(46,l)),E=ka.decode(n(g,f)),S=s,b;s=m,b=n(30+r(26)+r(28),u),yield{filename:w,comment:E,read:()=>h-8?h?qs(1):b:e(b)},s=S}}const yl=/.+\.(shp|dbf|json|prj|cpg)$/i,wl=t=>nt(void 0,null,function*(){const e={},s=[];for(const r of ml(t))yl.test(r.filename)&&s.push(Promise.resolve(r.read()).then(o=>e[r.filename]=o));yield Promise.all(s);const a={},i=new TextDecoder;for(const[r,o]of Object.entries(e))r.slice(-3).toLowerCase()==="shp"||r.slice(-3).toLowerCase()==="dbf"?a[r]=new DataView(o.buffer,o.byteOffset,o.byteLength):a[r]=i.decode(o);return a}),El=globalThis.URL,Sl=(t,e)=>{if(!e)return t;const s=new El(t);return s.pathname=`${s.pathname}.${e}`,s.href};function ke(t,e){return nt(this,null,function*(){const s=Sl(t,e),a=e==="prj"||e==="cpg";try{const i=yield fetch(s);if(i.status>399)throw new Error(i.statusText);if(a)return i.text();const r=yield i.arrayBuffer();return new DataView(r)}catch(i){if(a||e==="dbf")return!1;throw i}})}function Pl(t){let e=0,s=1;const a=t.length;let i,r;const o=[t[0][0],t[0][1],t[0][0],t[0][1]];for(;so[2]&&(o[2]=r[0]),r[1]>o[3]&&(o[3]=r[1]);return{ring:t,clockWise:e>0,bbox:o,children:[]}}function qa(t,e){return!(t.bbox[0]>e.bbox[0]||t.bbox[1]>e.bbox[1]||t.bbox[2]l.toReversed())));return n}}const r=[];for(const o of s)r.push([o.ring].concat(o.children));return r}et.prototype.parsePoint=function(t){return{type:"Point",coordinates:this.parseCoord(t,0)}};et.prototype.parseZPoint=function(t){const e=this.parsePoint(t);return e.coordinates.push(t.getFloat64(16,!0)),e};et.prototype.parsePointArray=function(t,e,s){const a=[];let i=0;for(;i20&&(e-=20),!(e in $a))throw new Error(`I don't know shp type "${e}"`);this.parseFunc=this[$a[e]],this.parseCoord=pl(t)};et.prototype.getShpCode=function(){return this.parseHeader().shpCode};et.prototype.parseHeader=function(){const t=this.buffer;return{length:t.getInt32(24)<<1,version:t.getInt32(28,!0),shpCode:t.getInt32(32,!0),bbox:[t.getFloat64(36,!0),t.getFloat64(44,!0),t.getFloat64(52,!0),t.getFloat64(60,!0)]}};et.prototype.getRows=function(){let t=100;const e=this.buffer.byteLength-8,s=[];let a;for(;t<=e&&(a=this.getRow(t),!!a);)t+=8,t+=a.len,a.type?s.push(this.parseFunc(a.data)):s.push(null);return s};et.prototype.getRow=function(t){const e=this.buffer.getInt32(t),s=this.buffer.getInt32(t+4)<<1;if(s===0)return{id:e,len:s,type:0};if(!(t+s+8>this.buffer.byteLength))return{id:e,len:s,data:new DataView(this.buffer.buffer,this.buffer.byteOffset+t+12,s-4),type:this.buffer.getInt32(t+8,!0)}};function ia(t,e){return new et(t,e).rows}var xl=/^(?:ANSI\s)?(\d+)$/m;function yi(t,e){if(!t)return a;try{new TextDecoder(t.trim())}catch(i){var s=xl.exec(t);return s&&!e?yi("windows-"+s[1],!0):(t=void 0,a)}return a;function a(i){var r=new TextDecoder(t||void 0),o=r.decode(i,{stream:!0})+r.decode();return o.replace(/\0/g,"").trim()}}function bl(t){var e={};return e.lastUpdated=new Date(t.getUint8(1)+1900,t.getUint8(2),t.getUint8(3)),e.records=t.getUint32(4,!0),e.headerLen=t.getUint16(8,!0),e.recLen=t.getUint16(10,!0),e}function Gl(t,e,s){for(var a=[],i=32;i{if(!t)throw new Error("forgot to pass buffer");if(ue(t))return new Uint8Array(t);if(ue(t.buffer))return t.BYTES_PER_ELEMENT===1?t:new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")},Ll=new TextDecoder,wi=t=>{if(t){if(typeof t=="string")return t;if(ue(t)||ArrayBuffer.isView(t)||na(t))return Ll.decode(t)}},Ei=t=>{if(!t)throw new Error("forgot to pass buffer");if(na(t))return t;if(ue(t))return new DataView(t);if(ue(t.buffer))return new DataView(t.buffer,t.byteOffset,t.byteLength);throw new Error("invalid buffer like object")};function ue(t){return t instanceof globalThis.ArrayBuffer||Object.prototype.toString.call(t)==="[object ArrayBuffer]"}function na(t){return t instanceof globalThis.DataView||Object.prototype.toString.call(t)==="[object DataView]"}const oa=function([t,e]){const s={};s.type="FeatureCollection",s.features=[];let a=0;const i=t.length;for(e||(e=[]);a-1?i.push(s.slice(0,-3)+s.slice(-3).toLowerCase()):(s.slice(-4).toLowerCase()===".dbf"||s.slice(-4).toLowerCase()===".cpg")&&(a[s.slice(0,-3)+s.slice(-3).toLowerCase()]=a[s]));if(!i.length)throw new Error("no layers founds");const r=i.map(function(o){let n,h;const l=o.lastIndexOf(".");return l>-1&&o.slice(l).indexOf("json")>-1?(n=JSON.parse(a[o]),n.fileName=o.slice(0,l)):e.indexOf(o.slice(l+1))>-1?(n=a[o],n.fileName=o):(a[o+".dbf"]&&(h=ra(a[o+".dbf"],a[o+".cpg"])),n=oa([ia(a[o+".shp"],a[o+".prj"]),h]),n.fileName=o),n});return r.length===1?r[0]:r})};function Rl(t,e){return nt(this,null,function*(){const s=yield ke(t);return Si(s,e)})}const Tl=t=>nt(void 0,null,function*(){const e=yield Promise.all([ke(t,"shp"),ke(t,"prj")]);let s=!1;try{e[1]&&(s=Ps(e[1]))}catch(a){s=!1}return ia(e[0],s)}),Ol=t=>nt(void 0,null,function*(){const[e,s]=yield Promise.all([ke(t,"dbf"),ke(t,"cpg")]);if(e)return ra(e,s)}),Da=(t,e)=>{var a;return new Il(t,(a=globalThis==null?void 0:globalThis.document)==null?void 0:a.location).pathname.slice(-4).toLowerCase()===e},Fl=({shp:t,dbf:e,cpg:s,prj:a})=>{const i=[kl(t,a)];return e&&i.push(ql(e,s)),oa(i)},jl=function(t,e){return nt(this,null,function*(){if(typeof t!="string"){if(ue(t)||ArrayBuffer.isView(t)||na(t))return Si(t);if(t.shp)return Fl(t);throw new TypeError("must be a string, some sort of Buffer, or an object with at least a .shp property")}if(Da(t,".zip"))return Rl(t,e);Da(t,".shp")&&(t=t.slice(0,-4));const s=yield Promise.all([Tl(t),Ol(t)]);return oa(s)})},kl=function(t,e){if(t=Ei(t),e=wi(e),typeof e=="string")try{e=Ps(e)}catch(s){e=!1}return ia(t,e)},ql=function(t,e){return t=Ei(t),e=wi(e),ra(t,e)};const $l={class:"engineering-analysis-panel"},Dl={class:"analysis-card-head"},Ul={key:0},Bl=["disabled"],zl=["disabled"],Wl={key:1,class:"analysis-drawing-stage"},Vl={class:"analysis-point-count"},Hl=["disabled"],Ql=["disabled"],Jl={key:2,class:"analysis-boundary-bar"},Xl={class:"analysis-card-head"},Kl={key:0,class:"analysis-running"},Zl={class:"analysis-conclusion-head"},Yl={class:"analysis-conclusion-tags"},t1={key:2,class:"analysis-empty is-success"},e1={key:3,class:"analysis-project-list"},s1=["onPointerup"],a1={class:"analysis-project-name"},i1={class:"analysis-project-meta"},r1={__name:"EngineeringAnalysisPanel",props:{drawingPointCount:{type:Number,default:0}},emits:["drawing-change","finish-drawing","undo-point","clear-boundary","analysis-result","focus-project"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(!1),o=Q(null),n=Q([]),h=Q([]),l=Q(""),g=Q("idle"),f=Q([]),u=Q("idle"),m=Q("");let w=null,E=0;const S=z(()=>{var p;const v=h.value.length,d=n.value.length,_=n.value.reduce((C,$)=>C+Number($.overlapAreaWanMu||0),0);return{boundaryAreaWanMu:me((p=o.value)==null?void 0:p.geometry),featureCount:v,projectCount:d,overlapAreaWanMu:_}}),b=z(()=>l.value?l.value:I.value?"自动分析中":g.value==="loading"?"项目库加载中":g.value==="error"?"项目库加载失败":""),A=z(()=>o.value?I.value?"正在分析":u.value==="error"?"分析异常":n.value.length?"已发现建设记录":"未发现建设记录":"未分析"),I=z(()=>u.value==="running"),R=z(()=>!!o.value&&u.value==="done"),j=z(()=>I.value?"正在自动分析":u.value==="error"?"分析失败":n.value.length?`命中 ${n.value.length} 项`:A.value),O=z(()=>r.value&&a.drawingPointCount>=3),F=z(()=>{if(!o.value)return{levelClass:"",verdict:"",summary:"",tags:[],advice:""};if(!n.value.length)return{levelClass:"is-clear",verdict:"未发现建设记录",summary:"该边界范围暂未与项目库中的已建设工程形成空间叠加。",tags:[`分析范围 ${we(S.value.boundaryAreaWanMu)} 万亩`,"项目库未命中"],advice:"可进入新增工程选址论证,仍需结合保护红线、审批台账和现场踏勘复核。"};const v=Ee(n.value),d=ts(n.value),_=[...n.value].sort(($,V)=>Number(V.overlapAreaWanMu||0)-Number($.overlapAreaWanMu||0))[0],p=Zt(S.value.overlapAreaWanMu),C=n.value.length>=6||S.value.overlapAreaWanMu>=1?"存在建设叠加":"存在局部叠加";return{levelClass:n.value.length>=6?"is-heavy":"is-hit",verdict:C,summary:`该边界命中 ${n.value.length} 个历史项目,叠加约 ${p} 亩,项目类型以${v.name}为主,年份集中在 ${d}。`,tags:[`主类型 ${v.name}`,`年份 ${d}`,`最大叠加 ${Zt(_==null?void 0:_.overlapAreaWanMu)} 亩`],advice:`重点复核“${Yt(_==null?void 0:_.projectName)}”(${(_==null?void 0:_.year)||"未知"},${(_==null?void 0:_.category)||"未知类型"})与拟建范围的重合边界。`}});Ua(()=>{ve().catch(()=>{})});function K(v){return nt(this,null,function*(){var _;const d=(_=v.target.files)==null?void 0:_[0];if(v.target.value="",!!d){l.value="";try{const p=yield W(d);r.value&&(r.value=!1,i("drawing-change",!1)),i("clear-boundary"),yield Bt(p)}catch(p){l.value="边界文件解析失败"}}})}function W(v){return nt(this,null,function*(){const d=String(v.name||"").toLowerCase();if(d.endsWith(".json")||d.endsWith(".geojson"))return dt(JSON.parse(yield v.text()));if(d.endsWith(".zip")){const _=yield jl(yield v.arrayBuffer());return dt(_)}throw new Error("unsupported file")})}function dt(v){const d=zt(v).filter(_=>He(_==null?void 0:_.geometry));if(d.length)return jt(d);throw new Error("no polygon")}function ht(){r.value||(E+=1,l.value="",u.value="idle",m.value="",r.value=!0,o.value=null,n.value=[],h.value=[],i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}),i("drawing-change",!0))}function D(){r.value&&(E+=1,r.value=!1,u.value="idle",m.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value}))}function _t(){O.value&&i("finish-drawing")}function fe(){i("undo-point")}function ps(){E+=1,r.value=!1,o.value=null,n.value=[],h.value=[],l.value="",u.value="idle",m.value="",i("clear-boundary"),i("analysis-result",{boundary:null,matches:[],rows:[],summary:S.value})}function Nt(v){v!=null&&v.geometry&&(r.value=!1,Bt(v))}function Bt(v){return nt(this,null,function*(){const d=++E;o.value=v,h.value=[],n.value=[],m.value="",l.value="",u.value="running";let _=[];i("analysis-result",{boundary:v,matches:[],rows:[],summary:S.value});try{const p=yield ve();if(d!==E)return;_=ze(v,p),h.value=_,n.value=xs(_),u.value="done"}catch(p){if(d!==E)return;l.value="项目库加载失败",u.value="error"}d===E&&i("analysis-result",{boundary:v,matches:_,rows:n.value,summary:S.value})})}function ge(v){m.value=(v==null?void 0:v.key)||"",i("focus-project",kt(Tt({},v),{boundary:o.value}))}function ve(){return nt(this,null,function*(){return f.value.length?f.value:w||(g.value="loading",w=fetch(de("datas/ecological-protection/ecological_restoration_projects.geojson"),{credentials:"include"}).then(d=>{if(!d.ok)throw new Error(`HTTP ${d.status}`);return d.json()}).then(d=>{const _=zt(d).filter(p=>{var C;return(C=p==null?void 0:p.geometry)==null?void 0:C.coordinates}).map((p,C)=>kt(Tt({},p),{properties:kt(Tt({},p.properties||{}),{source_index:C})}));return f.value=_,g.value="success",_}).catch(d=>{throw g.value="error",w=null,d}),w)})}function de(v){return v?/^https?:\/\//.test(v)||v.startsWith("/")?v:`./${v}`:""}function zt(v){return v?Array.isArray(v)?v.flatMap(d=>zt(d)):v.type==="FeatureCollection"?(v.features||[]).filter(Boolean):v.type==="Feature"?v.geometry?[v]:[]:Qe(v)?[{type:"Feature",properties:{},geometry:v}]:typeof v=="object"?Object.values(v).flatMap(d=>zt(d)):[]:[]}function jt(v){const d=v.flatMap(_=>_.geometry.type==="Polygon"?[_.geometry.coordinates]:_.geometry.coordinates);return d.length===1?{type:"Feature",properties:v[0].properties||{},geometry:{type:"Polygon",coordinates:d[0]}}:{type:"Feature",properties:{sourceFeatureCount:v.length},geometry:{type:"MultiPolygon",coordinates:d}}}function ze(v,d=f.value){const _=Xe(v.geometry);return d.filter(p=>bs(p.geometry,v.geometry,_)).map(p=>({feature:p,properties:p.properties||{},overlapAreaWanMu:Gs(p,v.geometry)}))}function xs(v){const d=new Map;return v.forEach(_=>{const p=_.properties||{},C=p.project_name||p.projectName||"未命名项目",$=d.get(C)||{key:C,projectName:C,category:p.project_category||"未知类型",year:p.year||"未知",featureCount:0,overlapAreaWanMu:0,features:[],sourceIndex:Number(p.source_index||0)};$.featureCount+=1,$.overlapAreaWanMu+=Number(_.overlapAreaWanMu||0),$.features.push(_.feature),d.set(C,$)}),[...d.values()].map(_=>kt(Tt({},_),{overlapAreaWanMu:Number(_.overlapAreaWanMu.toFixed(4))}))}function bs(v,d,_){if(!Kt(Xe(v),_))return!1;const p=Wt(d);return p.length?He(v)?We(v,p):(v==null?void 0:v.type)==="Point"?Rt(v.coordinates,p):(v==null?void 0:v.type)==="MultiPoint"?v.coordinates.some(C=>Rt(C,p)):(v==null?void 0:v.type)==="LineString"?_e(v.coordinates,p):(v==null?void 0:v.type)==="MultiLineString"?v.coordinates.some(C=>_e(C,p)):!1:!1}function We(v,d){const _=Wt(v);return _.length?_.some(p=>p.some(C=>Rt(C,d)))||d.some(p=>p.some(C=>Rt(C,_)))||_.some(p=>d.some(C=>Je(p,C))):!1}function _e(v=[],d){return!Array.isArray(v)||!v.length?!1:v.some(_=>Rt(_,d))?!0:d.some(_=>Ve(v,_))}function Ve(v,d){for(let _=1;_at+rt.filter(xt=>Rt(xt,C)).length,0),it=p.reduce((at,rt)=>at+rt.length,0);return st?Number(($*Math.max(.08,Math.min(1,st/Math.max(it,1)))).toFixed(4)):C.reduce((at,rt)=>at+rt.filter(xt=>Rt(xt,p)).length,0)?Number(Math.min($,V).toFixed(4)):p.some(at=>C.some(rt=>Je(at,rt)))?Number((Math.min($,V)*.12).toFixed(4)):0}function Wt(v){var d;return(v==null?void 0:v.type)==="Polygon"?[((d=v.coordinates)==null?void 0:d[0])||[]]:(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.map(_=>(_==null?void 0:_[0])||[]).filter(_=>_.length):[]}function He(v){return(v==null?void 0:v.type)==="Polygon"||(v==null?void 0:v.type)==="MultiPolygon"}function Qe(v){return["Polygon","MultiPolygon","LineString","MultiLineString","Point","MultiPoint"].includes(v==null?void 0:v.type)}function Rt(v,d){return d.some(_=>Ns(v,_))}function Ns(v,d){var $,V,st,it;let _=!1;const p=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]);for(let lt=0,at=d.length-1;ltC!=Se>C&&p<(Is-rt)*(C-xt)/(Se-xt)+rt&&(_=!_)}return _}function Je(v,d){for(let _=1;_(Number(at[0])-Number(lt[0]))*(Number(rt[1])-Number(lt[1]))-(Number(at[1])-Number(lt[1]))*(Number(rt[0])-Number(lt[0])),$=C(v,d,_),V=C(v,d,p),st=C(_,p,v),it=C(_,p,d);return $===0&&Xt(_,v,d)||V===0&&Xt(p,v,d)||st===0&&Xt(v,_,p)||it===0&&Xt(d,_,p)?!0:($>0&&V<0||$<0&&V>0)&&(st>0&&it<0||st<0&&it>0)}function As(v,d,_,p){const C=Ye([v,d]),$=Ye([_,p]);return Kt(C,$)}function Xt(v,d,_){const p=Number(v==null?void 0:v[0]),C=Number(v==null?void 0:v[1]),$=Number(d==null?void 0:d[0]),V=Number(d==null?void 0:d[1]),st=Number(_==null?void 0:_[0]),it=Number(_==null?void 0:_[1]),lt=(p-$)*(it-V)-(C-V)*(st-$);return Math.abs(lt)>1e-10?!1:p>=Math.min($,st)-1e-10&&p<=Math.max($,st)+1e-10&&C>=Math.min(V,it)-1e-10&&C<=Math.max(V,it)+1e-10}function Xe(v){const d=[];return Ze(v==null?void 0:v.coordinates,d),d.length?d.reduce((_,p)=>({minLng:Math.min(_.minLng,Number(p[0])),minLat:Math.min(_.minLat,Number(p[1])),maxLng:Math.max(_.maxLng,Number(p[0])),maxLat:Math.max(_.maxLat,Number(p[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}function Kt(v,d){return!v||!d?!1:!(v.maxLngd.maxLng||v.maxLatd.maxLat)}function Ke(v){return me(v==null?void 0:v.geometry)}function me(v){return(v==null?void 0:v.type)==="Polygon"?ye(v.coordinates):(v==null?void 0:v.type)==="MultiPolygon"?v.coordinates.reduce((d,_)=>d+ye(_),0):0}function ye(v=[]){const d=v[0]||[];if(d.length<3)return 0;const _=d.reduce((V,st)=>V+Number(st[1]||0),0)/d.length,p=111320*Math.cos(_*Math.PI/180),C=110540;let $=0;for(let V=0;VZe(_,d))}}function Ye(v){return v.reduce((d,_)=>({minLng:Math.min(d.minLng,Number(_==null?void 0:_[0])),minLat:Math.min(d.minLat,Number(_==null?void 0:_[1])),maxLng:Math.max(d.maxLng,Number(_==null?void 0:_[0])),maxLat:Math.max(d.maxLat,Number(_==null?void 0:_[1]))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY})}function we(v){const d=Number(v||0);return Number.isFinite(d)?Number(d.toFixed(d>=10?2:4)).toString():"0"}function Zt(v){const d=Number(v||0)*1e4;return Number.isFinite(d)?d>=1e3?Number(d.toFixed(0)).toLocaleString("zh-CN"):d>=10?Number(d.toFixed(1)).toLocaleString("zh-CN"):Number(d.toFixed(2)).toString():"0"}function Ee(v=[]){const d=new Map;return v.forEach(_=>{const p=_.category||"未知类型",C=d.get(p)||{name:p,count:0,area:0};C.count+=1,C.area+=Number(_.overlapAreaWanMu||0),d.set(p,C)}),[...d.values()].sort((_,p)=>p.area-_.area||p.count-_.count)[0]||{name:"未知类型",count:0,area:0}}function ts(v=[]){const d=v.map(C=>Number(C.year)).filter(C=>Number.isFinite(C));if(!d.length)return"未知年份";const _=Math.min(...d),p=Math.max(...d);return _===p?`${_} 年`:`${_}-${p} 年`}function Yt(v,d=18){const _=String(v||"未命名项目");return _.length>d?`${_.slice(0,d)}...`:_}return e({applyDrawnBoundary:Nt}),(v,d)=>(J(),Y("div",$l,[L("div",{class:Ot(["analysis-card analysis-workbench",{"is-running":I.value,"is-complete":R.value}])},[L("div",Dl,[d[0]||(d[0]=L("span",null,"生态工程分析",-1)),b.value?(J(),Y("strong",Ul,ut(b.value),1)):It("",!0)]),r.value?It("",!0):(J(),Y("div",{key:0,class:Ot(["analysis-operation",{"has-boundary":o.value}])},[L("label",{class:Ot(["analysis-entry is-upload",{"is-disabled":r.value||I.value}])},[L("input",{type:"file",accept:".zip,.json,.geojson",disabled:r.value||I.value,onChange:K},null,40,Bl),L("span",null,ut(o.value?"更换边界":"上传边界"),1),d[1]||(d[1]=L("strong",null,"SHP / GeoJSON",-1))],2),L("button",{type:"button",class:"analysis-entry is-draw",disabled:r.value||I.value,onPointerup:te(ht,["stop","prevent"])},[L("span",null,ut(o.value?"重新绘制":"在线绘制"),1),d[2]||(d[2]=L("strong",null,"地图圈定",-1))],40,zl)],2)),r.value?(J(),Y("div",Wl,[L("div",Vl,[d[3]||(d[3]=L("span",null,"已落点",-1)),L("strong",null,ut(t.drawingPointCount),1),d[4]||(d[4]=L("em",null,"点",-1)),d[5]||(d[5]=L("small",null,"至少 3 点",-1))]),L("button",{type:"button",class:"analysis-control is-primary",disabled:!O.value||I.value,onPointerup:te(_t,["stop","prevent"])}," 完成绘制 ",40,Hl),L("button",{type:"button",class:"analysis-control",disabled:!t.drawingPointCount,onPointerup:te(fe,["stop","prevent"])},"撤销",40,Ql),L("button",{type:"button",class:"analysis-control is-danger",onPointerup:te(D,["stop","prevent"])},"删除图形",32)])):o.value?(J(),Y("div",Jl,[d[6]||(d[6]=L("span",null,"边界已加载",-1)),L("strong",null,ut(j.value),1),L("button",{type:"button",onPointerup:te(ps,["stop","prevent"])},"删除图形",32)])):It("",!0)],2),o.value?(J(),Y("div",{key:0,class:Ot(["analysis-card analysis-result",{"is-running":I.value,"is-empty":R.value&&!n.value.length}])},[L("div",Xl,[d[7]||(d[7]=L("span",null,"建设记录核查",-1)),L("strong",null,ut(A.value),1)]),I.value?(J(),Y("div",Kl,[...d[8]||(d[8]=[L("div",{class:"analysis-running-orbit","aria-hidden":"true"},null,-1),L("div",null,[L("strong",null,"空间叠加分析中"),L("span",null,"正在核对边界与建设项目库")],-1)])])):(J(),Y("div",{key:1,class:Ot(["analysis-conclusion",F.value.levelClass])},[L("div",Zl,[d[9]||(d[9]=L("span",null,"分析结论",-1)),L("strong",null,ut(F.value.verdict),1)]),L("p",null,ut(F.value.summary),1),L("div",Yl,[(J(!0),Y(fs,null,gs(F.value.tags,_=>(J(),Y("span",{key:_},ut(_),1))),128))]),L("small",null,ut(F.value.advice),1)],2)),R.value&&!n.value.length?(J(),Y("div",t1,"该边界范围内暂未匹配到已建设项目")):R.value?(J(),Y("div",e1,[(J(!0),Y(fs,null,gs(n.value,_=>(J(),Y("button",{key:_.key,type:"button",class:Ot(["analysis-project-row",{"is-active":_.key===m.value}]),onPointerup:te(p=>ge(_),["stop","prevent"])},[L("span",a1,ut(_.projectName),1),L("div",i1,[L("strong",null,ut(_.year),1),L("em",null,ut(_.category),1),L("small",null,"叠加 "+ut(Zt(_.overlapAreaWanMu))+" 亩",1)]),L("b",null,ut(_.featureCount)+" 个要素",1)],42,s1))),128))])):It("",!0)],2)):It("",!0)]))}},n1=Xi(r1,[["__scopeId","data-v-96bdd213"]]);const o1={class:"forest-grass-wet ecological-protection"},h1={class:"forest-grass-wet-ui ecological-protection-ui"},l1={key:0,class:"fgw-left"},u1={class:"fgw-side-stack is-left"},c1={key:1,class:"fgw-right"},f1={class:"fgw-side-stack is-right"},g1={class:"fgw-bottom-topic ecological-bottom-topic"},v1={key:0,class:"loading"},d1={class:"loading-progress"},_1={class:"value"},R1={__name:"index",props:{activeView:{type:String,default:"ecological-redline"},showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["module-stats","view-change"],setup(t,{expose:e,emit:s}){const a=t,i=s,r=Q(null),o=Q(null),n=Q(""),h=Q(""),l=Q(is({},"ecological-redline")),g=Q(null),f=Q(!1),u=Q(!1),m=Q(null),w=Q(0),E=Q(a.showLoading),S=Q(null),b=Q(0),A=Q({type:"idle",text:"等待生态保护图层加载"});let I=null,R=!1,j=!1,O=!1,F=null,K=0,W=0;const dt=new Map,ht=new Set(["code","msg","message","success","data","result","project","progress","dycolumn","geom","wkt","geometry","the_geom","raw_properties","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"]),D=z(()=>pe.some(c=>c.key===a.activeView)?a.activeView:"ecological-redline"),_t=z(()=>D.value==="engineering-analysis"),fe=z(()=>["restoration","engineering-analysis"].includes(D.value)),ps=z(()=>Rs.includes(D.value)),Nt=z(()=>n.value?Fi(D.value,n.value):null),Bt=z(()=>{var c;return(((c=Nt.value)==null?void 0:c.legends)||[]).find(M=>M.key===h.value)||null}),ge=z(()=>{var c;return((c=Nt.value)==null?void 0:c.legends)||[]}),ve=z(()=>ga(D.value)),de=z(()=>!_t.value&&ve.value.length<=2&&ge.value.length<=6),zt=z(()=>{if(!de.value)return 430;const c=Math.max(1,ve.value.length),y=30+Math.max(1,ge.value.length)*28;return Math.max(220,Math.min(360,96+c*32+y))}),jt=z(()=>{const c=Nt.value;return c?Bt.value?kt(Tt({},c),{cqlFilter:Bt.value.cqlFilter||c.cqlFilter,activeLegend:Bt.value,name:Bt.value.name||c.name}):c:null}),ze=z(()=>ps.value?l.value:D.value==="restoration"?Yi:D.value==="engineering-analysis"?tr:er),xs=z(()=>ze.value.left||[]),bs=z(()=>ze.value.right||[]),We=Q(typeof window=="undefined"?1080:window.innerHeight),_e=Bi.sideCardWidth,Ve=z(()=>zi(We.value)),Gs=z(()=>Wi(Ve.value,2)),Wt=z(()=>!!m.value),He=$i,Qe=z(()=>qi({point:m.value?Ye(m.value):null,rowCount:g.value?Yt(g.value):0,loading:u.value,empty:f.value||!g.value})),Rt=z(()=>Qe.value.height),Ns=z(()=>Qe.value.style),Je=z(()=>{var M;return{"ecological-redline":"生态保护红线详情","natural-protected-area":"自然保护地详情","national-park":"国家公园详情",restoration:"生态修复详情","engineering-analysis":"生态工程详情"}[D.value]||`${((M=Nt.value)==null?void 0:M.name)||"生态图斑"}详情`});Ua(()=>{we(),window.addEventListener("resize",we),document.addEventListener("pointerdown",ha,!0),Xe(),Me(D.value)}),Ki(()=>{R=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",we),document.removeEventListener("pointerdown",ha,!0)}),es(D,c=>{Me(c)}),es(n,()=>{h.value="",ft()}),es(h,()=>{ft()}),es(()=>a.active,c=>{var M,y,N,T;r.value&&(c?(Kt(),(y=(M=r.value).resume)==null||y.call(M)):(T=(N=r.value).pause)==null||T.call(N))});function Me(c){var N,T,k,q,H;const M=pe.find(gt=>gt.key===c)||pe[0],y=ga(c);h.value="",n.value=M.defaultLayerKey||((N=y[0])==null?void 0:N.key)||"",S.value=sr(c),b.value=0,(k=(T=r.value)==null?void 0:T.setBoundaryDrawing)==null||k.call(T,!1),c!=="engineering-analysis"&&((H=(q=r.value)==null?void 0:q.clearAnalysisBoundary)==null||H.call(q)),ft(),Rs.includes(c)&&(l.value=is({},c),Xt(c)),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Rs.includes(c)?Ts({},c):ar(c)})}function As(c){const M=pe.some(y=>y.key===c)?c:"ecological-redline";M!==D.value&&i("view-change",M)}function Xt(c){return nt(this,null,function*(){const M=++K;try{const N=dt.get(c)||(yield rr(c));if(M!==K||D.value!==c)return;dt.set(c,N),l.value=is(N,c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Ts(N,c)})}catch(y){if(M!==K||D.value!==c)return;l.value=is({},c),i("module-stats",{moduleKey:"ecological-protection",viewKey:c,items:Ts({},c)}),A.value={type:"error",text:"保护范围统计加载失败"},console.warn("Failed to load ecological scope statistics",y)}})}function Xe(){var y;I=new Ui;const c={progress:0};I.instance.on("onProgress",(N,T,k)=>{const q=Math.floor(T/k*100);ca.to(c,{progress:q,onUpdate:()=>{w.value=Math.floor(c.progress)}})});const M=()=>{R||j||(j=!0,Kt())};I.instance.on("onLoad",M),(y=I.ready)==null||y.then(M).catch(()=>{R||(A.value={type:"error",text:"地图资源加载失败"})})}function Kt(){R||!a.active||!j||O||(O=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Ke()},600))}function Ke(c=0){return nt(this,null,function*(){var y,N,T,k,q;if(R)return;if(!a.active){O=!1;return}if(yield ss(),!a.active){O=!1;return}if(!!((N=(y=r.value)==null?void 0:y.loadMap)!=null&&N.call(y,I)||(k=(T=r.value)==null?void 0:T.hasMap)!=null&&k.call(T))){yield Ii(),yield ss(),(q=r.value)==null||q.play();return}if(c<24){window.setTimeout(()=>Ke(c+1),120);return}O=!1})}function me(){F&&(window.clearTimeout(F),F=null)}function ye(){var c,M,y,N;(M=(c=r.value)==null?void 0:c.resume)==null||M.call(c),(N=(y=r.value)==null?void 0:y.refreshView)==null||N.call(y)}function Ze(){var c,M,y,N,T,k;if(ft(),(M=(c=r.value)==null?void 0:c.setBoundaryDrawing)==null||M.call(c,!1),(N=(y=r.value)==null?void 0:y.clearAnalysisBoundary)==null||N.call(y),(k=(T=r.value)==null?void 0:T.hasMap)!=null&&k.call(T)){ye();return}me(),O=!1,ss(()=>{Kt()})}e({refreshMapView:ye,resetMap:Ze});function Ye(c){const M=document.querySelector(".ecological-protection"),y=M==null?void 0:M.getBoundingClientRect();return!(y!=null&&y.width)||!(y!=null&&y.height)?c:{x:(c.x-y.left)/y.width*1920,y:(c.y-y.top)/y.height*1080}}function we(){We.value=typeof window=="undefined"?1080:window.innerHeight}function Zt(c,M){return`${D.value}-${M}-${(c==null?void 0:c.key)||(c==null?void 0:c.title)||"panel"}`}function Ee(c){return(c==null?void 0:c.span)===2}function ts(c){return Ee(c)?Gs.value:Ve.value}function Yt(c){const M=(c==null?void 0:c.properties)||{};return Object.keys(M).filter(y=>v(y,M[y])).length}function v(c,M){return M==null||M===""||Array.isArray(M)||typeof M=="object"?!1:!ht.has(String(c||"").toLowerCase())}function d(c={}){const M=_(c.lng),y=_(c.lat);return M===""||y===""?"":`POINT(${M} ${y})`}function _(c){const M=Number(c);return Number.isFinite(M)?M.toFixed(8).replace(/\.?0+$/,""):""}function p(){return nt(this,arguments,function*(c={}){var k,q,H,gt,Et,bt;if(!fe.value)return;if(C(c.overlayLayer||jt.value||Nt.value)){ft();return}const M=Number((k=c==null?void 0:c.lngLat)==null?void 0:k.lng),y=Number((q=c==null?void 0:c.lngLat)==null?void 0:q.lat);if(!Number.isFinite(M)||!Number.isFinite(y)){ft();return}const N=++W,T=c.screen||{x:960,y:540};m.value=null,g.value=null,f.value=!1,u.value=!0;try{const At=yield Di(d({lng:M,lat:y}));if(N!==W||R)return;const Pe=$(At,c);if(!Pe||Yt(Pe)<=0){ft();return}g.value=Pe,m.value=((gt=(H=r.value)==null?void 0:H.getVectorFeatureAnchorScreen)==null?void 0:gt.call(H,Pe))||T,f.value=!1,(bt=(Et=r.value)==null?void 0:Et.highlightFeature)==null||bt.call(Et,Pe,{highlightTone:"v21"})}catch(At){if(N!==W)return;ft()}finally{N===W&&(u.value=!1)}})}function C(c=jt.value){const M=String((c==null?void 0:c.sourceType)||"").toLowerCase();return["geojson","wkt-api","wfs"].includes(M)||String((c==null?void 0:c.dataPath)||"").includes("ecological_restoration_projects")}function $(c,M={}){var k,q,H;const y=st((c==null?void 0:c.project)||((k=c==null?void 0:c.data)==null?void 0:k.project)||(c==null?void 0:c.data)||c);if(!it(y))return null;const N=at(y,c),T=y.geom||y.geometry||y.wkt||null;return{id:y.id||N.id||N.project_name||`project-${(q=M==null?void 0:M.lngLat)==null?void 0:q.lng}-${(H=M==null?void 0:M.lngLat)==null?void 0:H.lat}`,properties:N,feature:{type:"Feature",properties:N,geometry:T},geometry:T,layer:M.overlayLayer||jt.value||Nt.value,lngLat:M.lngLat}}function V(c,M={}){var gt,Et,bt;const y=c!=null&&c.feature&&c.feature.type==="Feature"?kt(Tt({},c.feature),{id:c.id||c.feature.id,layer:c.layer,lngLat:c.lngLat}):c,N=(y==null?void 0:y.type)==="Feature"?y:((gt=y==null?void 0:y.feature)==null?void 0:gt.type)==="Feature"?y.feature:null,T=(y==null?void 0:y.properties)||(N==null?void 0:N.properties)||{},k=(y==null?void 0:y.geometry)||(N==null?void 0:N.geometry)||T.geometry||T.geom||T.wkt||null,q=at(T,M),H=(y==null?void 0:y.id)||(N==null?void 0:N.id)||q.id||q.gid||q.project_id||q.project_name||`project-${((Et=M==null?void 0:M.lngLat)==null?void 0:Et.lng)||""}-${((bt=M==null?void 0:M.lngLat)==null?void 0:bt.lat)||""}`;return{id:H,properties:q,feature:{type:"Feature",id:H,properties:q,geometry:k},geometry:k,layer:(y==null?void 0:y.layer)||M.overlayLayer||jt.value||Nt.value,lngLat:(y==null?void 0:y.lngLat)||M.lngLat}}function st(c){return Array.isArray(c)?c.find(M=>M&&typeof M=="object")||null:c&&typeof c=="object"?c:null}function it(c){return!c||typeof c!="object"?!1:Array.isArray(c.dyColumn)&&c.dyColumn.some(lt)?!0:Object.keys(c).some(M=>v(M,c[M]))}function lt(c={}){const M=c==null?void 0:c.value;return M==null||M===""?!1:!!String((c==null?void 0:c.field)||(c==null?void 0:c.title)||"").trim()}function at(c={},M={}){const y=Tt({},c);(Array.isArray(c.dyColumn)?c.dyColumn:[]).forEach(H=>{const gt=H==null?void 0:H.value;if(gt==null||gt==="")return;const Et=String((H==null?void 0:H.field)||"").trim();[Et,rt(Et)].filter(Boolean).forEach(At=>{(y[At]===void 0||y[At]===null||y[At]==="")&&(y[At]=gt)})});const T=y.project_name||y.projectName||y.name,k=y.area_mu||y.areaMu||y.acreage,q=y.project_status||y.projectStatus;return kt(Tt({},y),{project_name:T,name:T||y.name,area_mu:k,project_status:q,progress_count:Array.isArray(M==null?void 0:M.progress)?M.progress.length:void 0})}function rt(c){return String(c||"").replace(/[A-Z]/g,M=>`_${M.toLowerCase()}`)}function xt(c){var y,N,T,k;const M=(N=(y=c==null?void 0:c.feature)!=null?y:c)!=null?N:null;if(!M||Yt(M)<=0){ft();return}if(fe.value){W+=1;const q=V(M,c);if(!q||Yt(q)<=0){ft();return}g.value=q,f.value=!1,u.value=!1,m.value=((k=(T=r.value)==null?void 0:T.getVectorFeatureAnchorScreen)==null?void 0:k.call(T,q))||(c==null?void 0:c.screen)||null;return}g.value=M,f.value=!1,c!=null&&c.screen&&(m.value=c.screen)}function Is(c){A.value=c}function Se(c,M){var T,k;if(D.value==="national-park"&&(M!=null&&M.name)){ft(),(k=(T=r.value)==null?void 0:T.focusTown)==null||k.call(T,M.name,{distanceScale:.66,targetLocalZ:.84,cameraOffset:{x:0,y:1.05,z:0},select:!0});return}if(D.value!=="restoration"||(c==null?void 0:c.key)!=="restoration-projects"||!((M==null?void 0:M.projectName)||(M==null?void 0:M.name)))return;ft();const N=()=>Cs(M);if(h.value){h.value="",ss(()=>window.setTimeout(N,80));return}N()}function Cs(c,M=0){var k,q,H,gt,Et,bt,At;if(D.value!=="restoration")return;const y=(c==null?void 0:c.projectName)||(c==null?void 0:c.name);if(!y)return;const N=(q=(k=r.value)==null?void 0:k.focusProject)==null?void 0:q.call(k,{id:c==null?void 0:c.id,key:c==null?void 0:c.key,name:y,projectName:y,project_name:y,highlightTone:"white"});if(!(N!=null&&N.feature)){if(M<10){window.setTimeout(()=>Cs(c,M+1),120);return}A.value={type:"warning",text:"当前项目图斑尚未加载"};return}const T=V({id:N.feature.id,properties:N.feature.properties||{},geometry:N.feature.geometry,feature:N.feature,layer:jt.value||Nt.value},{});g.value=T,f.value=!1,u.value=!1,m.value=N.screen||((Et=(H=r.value)==null?void 0:H.getVectorFeaturesAnchorScreen)==null?void 0:Et.call(H,(gt=N.highlightFeatures)!=null&>.length?N.highlightFeatures:N.features))||((At=(bt=r.value)==null?void 0:bt.getVectorFeatureAnchorScreen)==null?void 0:At.call(bt,T))}function Pi(c){var M,y;ft(),b.value=0,(y=(M=r.value)==null?void 0:M.setBoundaryDrawing)==null||y.call(M,c)}function pi(){var c,M;(M=(c=r.value)==null?void 0:c.finishBoundaryDrawing)==null||M.call(c)}function xi(){var c,M;(M=(c=r.value)==null?void 0:c.undoBoundaryPoint)==null||M.call(c)}function bi(){var c,M;b.value=0,(M=(c=r.value)==null?void 0:c.clearAnalysisBoundary)==null||M.call(c)}function Gi(c={}){var M,y,N;b.value=c.pointCount||((M=c.points)==null?void 0:M.length)||0,c.status==="complete"&&c.feature&&(b.value=0,(N=(y=o.value)==null?void 0:y.applyDrawnBoundary)==null||N.call(y,c.feature)),c.status==="clear"&&(b.value=0)}function Ni(c={}){var M,y;(y=(M=r.value)==null?void 0:M.showAnalysisResult)==null||y.call(M,{boundary:c.boundary,matches:c.matches,preserveView:D.value==="engineering-analysis"}),D.value}function Ai(c){var y,N;const M=((c==null?void 0:c.features)||[]).filter(Boolean);(N=(y=r.value)==null?void 0:y.showAnalysisResult)==null||N.call(y,{boundary:c==null?void 0:c.boundary,matches:M})}function ft(){var c,M;W+=1,g.value=null,f.value=!1,u.value=!1,m.value=null,(M=(c=r.value)==null?void 0:c.clearSelectedFeature)==null||M.call(c)}function ha(c){if(!Wt.value)return;const M=document.querySelector(".fgw-map-feature-info"),y=c.target;M&&y instanceof Node&&M.contains(y)||ft()}function Ii(){return E.value?new Promise(c=>{ca.to(".ecological-protection .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{E.value=!1,c()}})}):Promise.resolve()}return(c,M)=>(J(),Y("div",o1,[ee(Vi,{ref_key:"mapSceneRef",ref:r,"active-layer":jt.value,"map-ranking":S.value,"admin-boundary-line-scale":2.4,"auto-apply-layer-map-view":!1,"max-zoom":21,onFeatureLoading:M[0]||(M[0]=y=>u.value=y),onFeatureInfo:xt,onMapClick:p,onLayerStatus:Is,onDrawBoundary:Gi},null,8,["active-layer","map-ranking"]),L("div",h1,[_t.value?It("",!0):(J(),Y("div",l1,[L("div",u1,[(J(!0),Y(fs,null,gs(xs.value,y=>(J(),Ls(fa,{key:Zt(y,"left"),class:Ot(["fgw-side-card left-card",{"is-double":Ee(y)}]),title:y.title,width:as(_e),height:ts(y)},{default:da(()=>[ee(va,{panel:y,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>Se(y,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?It("",!0):(J(),Y("div",c1,[L("div",f1,[(J(!0),Y(fs,null,gs(bs.value,y=>(J(),Ls(fa,{key:Zt(y,"right"),class:Ot(["fgw-side-card right-card",{"is-double":Ee(y)}]),title:y.title,width:as(_e),height:ts(y)},{default:da(()=>[ee(va,{panel:y,compact:"","column-label-standard":"","visual-version":"v21",onRowSelect:N=>Se(y,N)},null,8,["panel","onRowSelect"])]),_:2},1032,["class","title","width","height"]))),128))])])),_t.value?(J(),Ls(n1,{key:2,ref_key:"engineeringAnalysisRef",ref:o,"drawing-point-count":b.value,onDrawingChange:Pi,onFinishDrawing:pi,onUndoPoint:xi,onClearBoundary:bi,onAnalysisResult:Ni,onFocusProject:Ai},null,8,["drawing-point-count"])):It("",!0),L("div",{class:Ot(["fgw-map-layer-tools",{"is-analysis":_t.value,"is-compact":de.value}]),style:_a({height:`${zt.value}px`})},[ee(Hi,{modelValue:n.value,"onUpdate:modelValue":M[1]||(M[1]=y=>n.value=y),"selected-legend-key":h.value,"onUpdate:selectedLegendKey":M[2]||(M[2]=y=>h.value=y),"topic-key":D.value,legends:ge.value,width:248,height:zt.value,compact:de.value},null,8,["modelValue","selected-legend-key","topic-key","legends","height","compact"])],6),Wt.value?(J(),Y("div",{key:3,class:"fgw-map-feature-info",style:_a(Ns.value)},[ee(Qi,{title:Je.value,feature:g.value,empty:f.value,loading:u.value,width:as(He),height:Rt.value,closable:"",onClose:ft},null,8,["title","feature","empty","loading","width","height"])],4)):It("",!0),L("div",g1,[ee(Ji,{"model-value":D.value,topics:as(pe),"onUpdate:modelValue":As},null,8,["model-value","topics"])])]),E.value?(J(),Y("div",v1,[M[4]||(M[4]=Zi('
    LOADING
    ',1)),L("div",d1,[L("span",_1,ut(w.value),1),M[3]||(M[3]=L("span",{class:"unit"},"%",-1))])])):It("",!0)]))}};export{R1 as default}; diff --git a/docs/assets/index-7c335907-balabala-1784045078568.css b/docs/assets/index-7c335907-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-7c335907-balabala-1784045078568.css rename to docs/assets/index-7c335907-balabala-1784074877048.css diff --git a/docs/assets/index-8d752fbe-balabala-1784045078568.css b/docs/assets/index-8d752fbe-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-8d752fbe-balabala-1784045078568.css rename to docs/assets/index-8d752fbe-balabala-1784074877048.css diff --git a/docs/assets/index-9b7a4b9d-balabala-1784045078568.css b/docs/assets/index-95e82452-balabala-1784074877048.css similarity index 97% rename from docs/assets/index-9b7a4b9d-balabala-1784045078568.css rename to docs/assets/index-95e82452-balabala-1784074877048.css index cbc19af..21a47fa 100644 --- a/docs/assets/index-9b7a4b9d-balabala-1784045078568.css +++ b/docs/assets/index-95e82452-balabala-1784074877048.css @@ -1 +1 @@ -@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} +@charset "UTF-8";/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:D-DIN;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Bold;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:D-DIN-Italic;src:url(data:font/otf;base64,AAUWBwACAABNYWMgT1MgWCAgICAgICAgAAIAAAAJAAAAMgAAAKIAAAACAAAA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQVRUUgAAAAAAAADUAAAAmAAAADwAAAAAAAAAAAAAAAAAAAABAAAAmAAAADwAABVjb20uYXBwbGUucXVhcmFudGluZQBxLzAwODE7NjQwNDljYTQ7Q2hyb21lOzIzQTc0MjRGLTNDMjEtNEI1OC05MUU2LTIzQUVGNkQ5ODMyNgA=) format("otf")}@font-face{font-family:Alibaba PuHuiTi;src:url(./AlibabaPuHuiTi-14435b65-balabala-1784074877048.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784074877048.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1784074877048.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784074877048.ttf) format("truetype");font-display:swap}@font-face{font-family:阿里妈妈数黑体 Bold;font-weight:700;src:url(data:font/woff2;base64,d09GMk9UVE8AAAjwAA0AAAAADegAAAiiAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYx7Gx4cHgZgAHQBNgIkAxgEBgWJIAcgFyQYGhsADRHVrL8g+0iMnUfJLU+EglCodCONdUc456fyCWlXNEUsuExMoPi0DMa6gXdm0rnbJbtAef7923n3BWHzTNriDxgGBhE1L62rpbN/n1BVqbbtzFuERVmMOfa+3S2tXUJXKYrS6vgIjUKoH1RvxkRINBalEUKAw7KZG2lvQbTbMMnEghWxl9qLExii0RCGYYTGhZYiM8409e7XKt+SZok50woHDrT1YSbnB6ZM0ftVmycwmD1RlT1J/daRGnTWqwfgoP9D5XdaPy/SXe/v491PH+hLCFPfEXKLnCOp+hDjYzn6YEIZZuS8tZt2nWONhPeMOEGnYnbUscaFllyz4oQ454uT1ZuWxEaL7ax5sfWFe0Dcexd6Xpf+SqOYOnjZgwtiVjivVXb+kjxnMhtFwxRXHCAu1nPPx1pdM29EyKiMV/1S/aYb6A5uq0Oa4avbPzVhCCFEN+UMx7Saqg/1Ia6+hGhTXIhORRjiScY5TX4xcUxfZgojq/6pB6kvfZffCVVD5T3/h7KVeVXRgvxEdqt8whokVZgAAyQdnAVntMrC0Ij/OPXpazBrpf3gqoykWx9rMYJa6mqxCF2hBk1Cs7YdOkvOOCWS4ssgAaLowTd7Pm/5x6E/7RPSLTo9mpOj4ICwRdwTdTBR5NM/dfvU5ydnkAriBGk4eOF/OEtBe/rP+S+XOYhng1sHdhBNHJxAD4VhO5V0LOtYwWE4e2H1+bVn13JKw35CLG8AT+mMoFilgZKVVW6/FORUxY4RKMAmeeQLEKrCKZQolwWogIFYwRrkSngvVA5X6svDaeU6abogP6ZohDmh/BV01aJEoQnM1GIDik1wpjaJQkNllgBNpIHYhDXshr6C5I/XwQjXJX9wUfzhhsSDS5UKXSQebyj+9DHYhEtorcO3A6tWaorWZP4SWON5w7awGvwRiFkMoVDTC/rImeCB9r/oEYBf8FsEb7gTJkA3+EHfrorjE6xaiHkMLnUb8ixMREP1UH/seZAy7RYH0bUxFJ9JNeAZhj6FRsBjo3sQAXuVY0o2xYKh7TtgfT/oIa0X7kFUIxajoK1wB440YbGe8l0AFTRCFWvYN19ANQu6qV83PjwD3UI8VkMEu/XUhiO2/Rcx3AMEijxstF1ednPRfc+5J+dcnHmD2wFGHE1nbJ6xZfrWuvxQjClBr57oMnDXsD2j9nKXgGIG1EMO62EG0kt0WOqAjJKsYH71kaUnFpzj1mEMcBCzns7vtCxjdU4gP3Kl9h69h6Xm6ilJ3dp5PmLRcGn9tlW7VxzwvA4EF9G157ToQss6adEVyWPatwkY22RUdBzVZpLnatkm7ESvenweeGkvVBqEBevq80PLhlgHDeDOSrtq8jupQFRR2IAbhBm2mTbxC3B/6ChxcFRZTc4gy1InAV/RZyufrnqylnvDHh15fPTxMbV4VC8OWBu0oTa/ddSW0VvH5AzNGpY9nAMrGnHYZxaTcrGmBetWBPEbZ2ycsWEmp/SQ+7OVB+QAAdRL/676vTGJDyoOKEP1UA4yK2sIpyWriVWsECQck6xZzTxROH5qJmuQakIXAfRSNixWsvFHeKxMpoqnck0AT7wKRpDoj7QEPvzk3GVzls9e5hnNc1E8qtAJmobzYMerDXi4aIR5YMAgCEJKDX4ra9r1DlP0uv9D3WS14ENcXYnIMJR3dPP0C4qv16h1SlbuoOFjJk6bvWCpbd3mHXsPHT/z6g8HUVTHhfE6DjSGRp4VhrZbgFp2nhaT0xjdaRG6ZaCmXjynoz3QsQ1WS0KO07ExvA6N6J+ILm90wUDQDYlu06M1z5e+1mH1IRjVESP9dJvXbVy/bhOn5IBRDmG33lvzdPG7AF6nBX82pdGTgumj/BPNcWKVJ7MKlGawwZRxUI1lqLQuvJnjSJVKGPw3SwgPTpB8AGpDJy/IRg6zWczKxDCsjQ38dOAfyWN7Nrw8kf+2RouZTXXaCIMQng8fzN6iXRrhaBBC7HaCEHGxpl/mCNHiMlmVRQhpWz8ac5BE/1W2cu3m9psKJCuHz6Rz6nOfQlTvWRqiwSCEqNYcIYSIVAgytXQDYuqFGj3e40RNM3xMRtOPbhXdRvQszi8dwEw6Z7cTRA3fv+bOt1u+bHGzzbZNWLpo8cJJXP9mhFFBeCpTLXM/XVje3bHey7X6A0LIy/jSe3LA/uX3gQWdShgsVQhnIvzbBasrxyyZ/ul5AoSLlCniQWJFtUf7IZ0Q3eSwf5qZHKB4avsBQ0wVqHD5B2oNcgA0IjMdtILTB6jwNAFWad0Cjk/tAwcXyLetTjyZzmWzhpAOOwAYBqu2qtxBw8NkYLXTABw0QLY6hTOdA1M9uj6NZ+a3ym45Y1LdUhQ5uiS7rWXBxy6OvQwDBR061FboVpYyJDVlYMXirldxKEvu4ItTBreY33DWla5/JO86hjRWyCKXudh5xpEnzj+X8SozvENMRqXpUkr/DvfqJ3Tel2vMjDfV6T82vUVvtj1U+CFlKqLv5uyJ6tPyS5ff7GgioiZKFMqj4uF6inCJJ4qXKBpimn1JRL5WO8d1A7tDgcP8TimFJsmuL29V0DS3UfejSDsW/Yia6q0fs2LRKPMxKUphIcmCupUSlAXA2pG5rXr5clzI7J+y6GSJIhbXhmi/HELNdsvjaMiOqb8Pi0tTS6beTPnslB0HmbrcGFO010/TgsWar4JFwcq0tCCJTW1VjuV58hXpcn37dYleckX/uqVyiPZTOoliHjgTJlBMprbKh4bYcKwILTLpjlqNvEwTjTHzsEVGP5WPICvRooRwMl7Fq6srl05lZY5nZzGdKS4PGW2vsXUwdUfDqa+PSzbFZKlByvV66N6sxKVvZR1S+PxmFjL7x7gaYucjWTUnZJ3aKsZPFV04N1FbDf113KZWqdW+lCS6jFkwT5Ue0Vysf4Mt4jKQKpBWl/hi6xy3hu+3kM2SprIBAAA=) format("woff2"),url(data:font/woff;base64,d09GRk9UVE8AAArwAA0AAAAADegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAABMAAABcQAAAZ7T0dS20dQT1MAAAb0AAAAHgAAAB5EdEx1R1NVQgAABxQAAAAeAAAAHkR0THVPUy8yAAAHNAAAAEsAAABgrSDtt2NtYXAAAAeAAAAAUgAAAHSMNPB9aGVhZAAAB9QAAAA1AAAANiVNJkVoaGVhAAAIDAAAABwAAAAkB5wC5mhtdHgAAAgoAAAAGAAAABgEswFPbWF4cAAACEAAAAAGAAAABgALUABuYW1lAAAISAAAAlYAAASgKy85MXBvc3QAAAqgAAAAEwAAACD/nwAydmhlYQAACrQAAAAfAAAAJAJsEhZ2bXR4AAAK1AAAABoAAAAaC9IDy3icbVRrVBVVFL5zL3NmOnO9yOMQl27cQd4CiqCiCYrwo1RUfPFwtciLkF4Vr8CYklcW6KpUNChTly4tEUFQcflMa1lmig/MtMeiVai9zNaqfFTmnnEP2ow9frSaH9/Za3+zzz77O3sfzhIQYOE4jo1d4K3wVHimzV38TLl3ujclx7egzCQmuLg1Lq6hwR7p4l7hXNwqq4tbbXNxdQEYZLctwZr7fu0GHxlhec7udj2x2D7gSYuFywo0sSLIxKn2WHOZaY+xEI6r29C6++CZXN+imirvnLmKnDA7UU5LTUtLMSBdNg5R6in1yAm5c70LPYlyrm9QspynlA0ymAXyo4hquaq8urzqhfJHzr9+91bLHlmp8pSVV3iq5su+5/9lnq7yLV4kP2PU4l04R87zVngVI/DvWuV/ipXNYv/rHFvmKy0fV1a+UPEqNf+rjvHVW1+2/mb9nbST/WLnY9MdN0Pv2SycyUimeIEubq09zmUJMRTgpwRbJKtBOi0vWU5ZfuMGc/O5Bk6z3rPV2LpvazfYA792+L5f6Ct7kMy0K1po3xXBoVrjGSxRJeiCIOyCeAzDeMwi34OHV49CiF5HOnt5TCTeUTxWYAgMJ+no4fMwSA3ChoEEv41mkETeuX745733RHSTebElyTOSRS0JjrG98uGkd9JkOuOnkp/m/So61DmDmVoLEXgfugjwp+6e/eWCCKlCzLgBk+RpInyA4Ton5PsmV06uFjFBONdytrWrVdTHLGaDqAOc6mmmK+pSVRH0z75l2lT9ISYig91a3TfAHiQQ8OkXGFTDUqwWHFof/Mj6avUsrZb0tamvMq2XYBisj6MfYQiPKoEcaOJxNMEcbOLTCYzRX2OQoy7FHMFxCOYz1Y2XIAwuqW4I1t1wWaUQ/MCKwSrFy7qb9EIz60blKZoHCq/mojKUdoOSSh374ofT45CyBeIgIwLmaYUQjg//wPAo/AVvJVLH54bgJXCH/LBjMB2i8JDSC8GjxlABVqFjmBm5Aaas+1SE5JEYh9fU4XAN465CNlDM7oFEOKK/rxcTnOOfOAmzImGWuov1QFK2gEkwgX0Ox3MEzNRvM7BCNloFx9sbGdoEkNbe7PjyNJTEhrdAotD5Yfvx5qPnMSEcGEEKHc0Xtn2y+QvnGyfXn2+6LO6HMFxBGvc07n21cxT1Y4oPI2Zj8NKDyw/XHxG7gWABZKKImViApJssn7qkwFcUQ1uOb/1g0xmxDVNAhJRdZGP+toKWmQNo3Xa+h/TgIs+wKeklec6vBHR079q349Bbx5yXwIKbSesZHoNJZT6PIWjpJfNzIGx8QfXk+vGrnS1aMzuAEZm0DCL4c30Otqkti/orlyk1S8Qu9WAGPWD40UqgHdtZY3NTc2OzeJfUyy8mVWaIDk1T8xl+R65tv7rjSqt4XXiv7sSKEytHULRtiWqNbh9JO+v3ruhcOdNftLy4VgTF6P7lPwuYXooZXhxVHU07Gjsa25tEfZb2gtB3TItiYNv6x47fO9Jp9MKoSrT5RSjsG85Oqco0QVcgmr2vKkWmJbMTqlJozFcGPMvArhbDFr3YWHv1NUR36h8zcOJFo71Ucmf6EJpw8o1t6998fZszmYpJFK3YH3ITKDzEi6MpnA+DDeDAaIhGQhyR2zMe2h9rsEv3/aGajRmzH2KROY7QwFBnZHRqZva4KUWlNbUrV617fdPW5rY9+4+8e+L0d3dFY0olMZ5KIgQYBlLBsHgiMRhBJB6HEgkfJxUYWoABmamiRGZh4Hjsl46iKAkpVDKEcadh8HUpxrixULRIu7/a+fXW7yUctgyTJuPASGlPW8eutt2iPhPCtFihs2fn1S03oqjEg1sw9ncaScBlWm4zcX/BSOw0sw8wIcYEzjgW9DNYNIA3WREDzTCrCZRIsRT6w9BjMBLyI6DY6L9iAYsKjedqJI6OlMA9kOJEIaEqjd7ayWNhrvQnP0nKyAABAAAACgAcABwAAURGTFQACAAEAAAAAP//AAAAAAAAAAEAAAAKABwAHAABREZMVAAIAAQAAAAA//8AAAAAAAB4nGNgYX7ItIeBlYGDqYspgoGBwRtCM8YxGDH8YkADHEhsX0dfR4YFfjKdx5iP/fvDwMB8jJGFgYWBESTHJAM0k4FBgYEJAH82DWcAeJxjYGBgYmBgYAZiESDJCKZZGBLAtABQhMVPJlgs+ENccVx9cl5qQTlj57H//xkYwKLvUUU3Pl3zZo3IwkkL2+fMnDWjk6PMBWweBgAA1ZwdGgAAeJxjYGRgYGBkdC96rbQtnt/mKwMz8wugCMNDg4JrMPr/m/8yzC+YgxgYGdgZmECiAIbyDgsAAAB4nGNgZGBgPvbvD5B88f8NiGQAiqAARgCoiQaIA+gAZAAhACgAKgBXACgAIwAuACsAKgAeAABQAAALAAB4nI1SwWoTURQ9M4kmA1IrSOlCZRYuYmnqWHFRC1UbaQLa0elo0qFmMTHJJDXphDQG1J24qFIUNxFcKPgFropfICK60IU7N65046qILmq8782dmiaiMjzuee/cc+599w2A/fiGCJSoBmA9coixAl39yVhFXA1zIphRXzCOYky9z3gXDqvLjHcjoc4yjqGhvGccxwFlg7GGV/jKeLin1r6wVjxK/czgOWMFQ3jGWO3JiWIU9xjHcJ4UAdYIgfFwj1b6L4zmPxpKJ+OkH9w1lPrYbd85ZyiPvlzZWx4yFM80p8wpwVu3FixDefo4/9ZQFn+YBwV3c65z6uGb/GZ+01BwBjVUUYArVvloyHReZj/lEmYyu2W/ttrmh+zW0kZhJGfYJ9t3Ls9VYoWR2mdrXSChcNactVLjybsLNnTMwifPYt95AldxhNhJGLQmkWR0HHpYsxsX9bqap3UuWjX7e3dPM+OlCqc9jaZSxXVSp1Ch6GIF47wrEdZhES+YqjzPUAcr8AgJnStxWWYGrCs1i5LzUacoMsY5X8dZmVH8Qx2H3ZbZV7Dp7Wo5ygo6cKSPzbvAdZ762zFtWamEVTrxyKGfqxKjS9RCk2KRcusUm7hGZz7dSB/QpIn1qU6Dp0DvwLcLuhB3bZFPEROsFY5i2XJ+GXmDS7SS4TsiS2dN2aUvZ3CMtAZ9JzBNVUvk5/Z56QNu23/FDvU86cSa/u9ewviveinKa+AG9S1mW6Ee9b/9gQNzTMg3F5NzpUb4TfBbtuT0Ak2N4u8aq3InXlRMrB3M+RcxRNz8AAB4nGNgZgCD/3MYjBiwAAAqgwHRAHicY2AUYGD88o+HgYHlFEPJfzsGEGBkQAZMAHjSBJMAA+gAdATKAJoApgC/AKYAtwCYAKEAmwCmAKEAAA==) format("woff");font-display:swap}:root{--screen-font-ui: "Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif;--screen-font-title: "Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif;--screen-font-number: "D-DIN", "D-DIN-Bold", Arial, sans-serif;--screen-color-text-primary: #ffffff;--screen-color-text-strong: #ffffff;--screen-color-text-secondary: rgba(246, 253, 255, .92);--screen-color-text-muted: rgba(242, 253, 255, .9);--screen-color-text-weak: rgba(229, 248, 255, .74);--screen-color-accent-cyan: #30dcff;--screen-color-accent-mint: #19ffc6;--screen-color-accent-water: #31dcff;--screen-color-accent-grass: #24f6c4;--screen-color-accent-gold: #8bf7ff;--screen-color-accent-orange: #48cfff;--screen-color-card-border: rgba(62, 226, 255, .5);--screen-color-card-bg: rgba(10, 52, 72, .7);--screen-color-card-header-bg: rgba(40, 124, 158, .62);--screen-color-chart-grid-line: rgba(218, 250, 255, .28);--screen-color-tooltip-bg: rgba(3, 13, 18, .92);--screen-icon-primary: #30dcff;--screen-icon-secondary: #19ffc6;--screen-icon-bg: rgba(48, 220, 255, .1);--screen-icon-border: rgba(48, 220, 255, .42);--screen-icon-glow: rgba(48, 220, 255, .22);--screen-card-title-size: 16px;--screen-card-title-line-height: 32px;--screen-card-title-weight: 600;--screen-chart-unit-size: 10px;--screen-chart-axis-size: 10px;--screen-chart-label-size: 11px;--screen-chart-tooltip-size: 12px;--screen-table-body-size: 11px;--screen-table-value-size: 12px;--screen-kpi-label-size: 14px;--screen-kpi-value-size: 31px;--screen-kpi-unit-size: 11px;--screen-popup-title-size: 20px;--screen-popup-body-size: 14px;--screen-canvas-width: 1920px;--screen-canvas-height: 1080px;--screen-side-card-width: 398px;--screen-side-card-gap: 12px;--screen-side-card-top: 128px;--screen-side-card-bottom: 8px;--screen-side-card-min-height: 227px;--screen-card-title-height: 36px;--screen-side-perspective-left: 500px;--screen-side-perspective-right: 800px;--screen-icon-size: 42px;--screen-icon-stroke-width: 1.5px}*,body{padding:0;margin:0}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:var(--screen-font-ui);font-size:14px;color:var(--screen-color-text-primary)}button,input,select,textarea{font:inherit} diff --git a/docs/assets/index-b4ec1ae2-1784074877048.js b/docs/assets/index-b4ec1ae2-1784074877048.js new file mode 100644 index 0000000..96839b5 --- /dev/null +++ b/docs/assets/index-b4ec1ae2-1784074877048.js @@ -0,0 +1,2 @@ +var or=Object.defineProperty,sr=Object.defineProperties;var lr=Object.getOwnPropertyDescriptors;var xn=Object.getOwnPropertySymbols;var ar=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable;var wn=(m,n,r)=>n in m?or(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,at=(m,n)=>{for(var r in n||(n={}))ar.call(n,r)&&wn(m,r,n[r]);if(xn)for(var r of xn(n))ur.call(n,r)&&wn(m,r,n[r]);return m},Lt=(m,n)=>sr(m,lr(n));var mt=(m,n,r)=>new Promise((u,h)=>{var c=y=>{try{g(r.next(y))}catch(w){h(w)}},p=y=>{try{g(r.throw(y))}catch(w){h(w)}},g=y=>y.done?u(y.value):Promise.resolve(y.value).then(c,p);g((r=r.apply(m,n)).next())});import{H as G,n as xe,h as bn}from"./townshipBoundaries-1b068bef-1784074877048.js";import{_ as cr,g as hr,q as fr,h as mr,w as Kt,A as Sn,o as pr,c as gr,a as dr,d as _n,K as yr}from"./index-1784074877048.js";class yt{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function xr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const g=n.right;if(n.right=g.left,g.left=n,n=g,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function we(m,n,r,u){const h=new yt(m,n);if(r===null)return h.left=h.right=null,h;r=pt(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function Nn(m,n,r){let u=null,h=null;if(n){n=pt(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function wr(m,n,r){return n===null?m:(m===null||(n=pt(m.key,n,r),n.left=m),n)}function Se(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} +`);const c=n+(r?" ":"│ ");m.left&&Se(m.left,c,!1,u,h),m.right&&Se(m.right,c,!0,u,h)}}class Te{constructor(n=xr){this._root=null,this._size=0,this._comparator=n}insert(n,r){return this._size++,this._root=we(n,r,this._root,this._comparator)}add(n,r){const u=new yt(n,r);this._root===null&&(u.left=u.right=null,this._size++,this._root=u);const h=this._comparator,c=pt(n,this._root,h),p=h(n,c.key);return p===0?this._root=c:(p<0?(u.left=c.left,u.right=c,c.left=null):p>0&&(u.right=c.right,u.left=c,c.right=null),this._size++,this._root=u),this._root}remove(n){this._root=this._remove(n,this._root,this._comparator)}_remove(n,r,u){let h;return r===null?null:(r=pt(n,r,u),u(n,r.key)===0?(r.left===null?h=r.right:(h=pt(n,r.left,u),h.right=r.right),this._size--,h):r)}pop(){let n=this._root;if(n){for(;n.left;)n=n.left;return this._root=pt(n.key,this._root,this._comparator),this._root=this._remove(n.key,this._root,this._comparator),{key:n.key,data:n.data}}return null}findStatic(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return r;h<0?r=r.left:r=r.right}return null}find(n){return this._root&&(this._root=pt(n,this._root,this._comparator),this._comparator(n,this._root.key)!==0)?null:this._root}contains(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return!0;h<0?r=r.left:r=r.right}return!1}forEach(n,r){let u=this._root;const h=[];let c=!1;for(;!c;)u!==null?(h.push(u),u=u.left):h.length!==0?(u=h.pop(),n.call(r,u),u=u.right):c=!0;return this}range(n,r,u,h){const c=[],p=this._comparator;let g=this._root,y;for(;c.length!==0||g;)if(g)c.push(g),g=g.left;else{if(g=c.pop(),y=p(g.key,r),y>0)break;if(p(g.key,n)>=0&&u.call(h,g))return this;g=g.right}return this}keys(){const n=[];return this.forEach(({key:r})=>{n.push(r)}),n}values(){const n=[];return this.forEach(({data:r})=>{n.push(r)}),n}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(n=this._root){if(n)for(;n.left;)n=n.left;return n}maxNode(n=this._root){if(n)for(;n.right;)n=n.right;return n}at(n){let r=this._root,u=!1,h=0;const c=[];for(;!u;)if(r)c.push(r),r=r.left;else if(c.length>0){if(r=c.pop(),h===n)return r;h++,r=r.right}else u=!0;return null}next(n){let r=this._root,u=null;if(n.right){for(u=n.right;u.left;)u=u.left;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?(u=r,r=r.left):r=r.right}return u}prev(n){let r=this._root,u=null;if(n.left!==null){for(u=n.left;u.right;)u=u.right;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?r=r.left:(u=r,r=r.right)}return u}clear(){return this._root=null,this._size=0,this}toList(){return Sr(this._root)}load(n,r=[],u=!1){let h=n.length;const c=this._comparator;if(u&&Ee(n,r,0,h-1,c),this._root===null)this._root=_e(n,r,0,h),this._size=h;else{const p=_r(this.toList(),br(n,r),c);h=this._size+h,this._root=Ne({head:p},0,h)}return this}isEmpty(){return this._root===null}get size(){return this._size}get root(){return this._root}toString(n=r=>String(r.key)){const r=[];return Se(this._root,"",!0,u=>r.push(u),n),r.join("")}update(n,r,u){const h=this._comparator;let{left:c,right:p}=Nn(n,this._root,h);h(n,r)<0?p=we(r,u,p,h):c=we(r,u,c,h),this._root=wr(c,p,h)}split(n){return Nn(n,this._root,this._comparator)}*[Symbol.iterator](){let n=this._root;const r=[];let u=!1;for(;!u;)n!==null?(r.push(n),n=n.left):r.length!==0?(n=r.pop(),yield n,n=n.right):u=!0}}function _e(m,n,r,u){const h=u-r;if(h>0){const c=r+Math.floor(h/2),p=m[c],g=n[c],y=new yt(p,g);return y.left=_e(m,n,r,c),y.right=_e(m,n,c+1,u),y}return null}function br(m,n){const r=new yt(null,null);let u=r;for(let h=0;h0?(n=c=c.next=r.pop(),n=n.right):u=!0;return c.next=null,h.next}function Ne(m,n,r){const u=r-n;if(u>0){const h=n+Math.floor(u/2),c=Ne(m,n,h),p=m.head;return p.left=c,m.head=m.head.next,p.right=Ne(m,h+1,r),p}return null}function _r(m,n,r){const u=new yt(null,null);let h=u,c=m,p=n;for(;c!==null&&p!==null;)r(c.key,p.key)<0?(h.next=c,c=c.next):(h.next=p,p=p.next),h=h.next;return c!==null?h.next=c:p!==null&&(h.next=p),u.next}function Ee(m,n,r,u,h){if(r>=u)return;const c=m[r+u>>1];let p=r-1,g=u+1;for(;;){do p++;while(h(m[p],c)<0);do g--;while(h(m[g],c)>0);if(p>=g)break;let y=m[p];m[p]=m[g],m[g]=y,y=n[p],n[p]=n[g],n[g]=y}Ee(m,n,r,g,h),Ee(m,n,g+1,u,h)}const ut=11102230246251565e-32,J=134217729,Nr=(3+8*ut)*ut;function be(m,n,r,u,h){let c,p,g,y,w=n[0],N=u[0],o=0,x=0;N>w==N>-w?(c=w,w=n[++o]):(c=N,N=u[++x]);let S=0;if(ow==N>-w?(p=w+c,g=c-(p-w),w=n[++o]):(p=N+c,g=c-(p-N),N=u[++x]),c=p,g!==0&&(h[S++]=g);ow==N>-w?(p=c+w,y=p-c,g=c-(p-y)+(w-y),w=n[++o]):(p=c+N,y=p-c,g=c-(p-y)+(N-y),N=u[++x]),c=p,g!==0&&(h[S++]=g);for(;o=it||-Y>=it||(o=m-q,g=m-(q+o)+(o-h),o=r-z,w=r-(z+o)+(o-h),o=n-Z,y=n-(Z+o)+(o-c),o=u-W,N=u-(W+o)+(o-c),g===0&&y===0&&w===0&&N===0)||(it=Fr*p+Nr*Math.abs(Y),Y+=q*N+W*g-(Z*w+z*y),Y>=it||-Y>=it))return Y;k=g*W,x=J*g,S=x-(x-g),F=g-S,x=J*W,C=x-(x-W),R=W-C,v=F*R-(k-S*C-F*C-S*R),B=y*z,x=J*y,S=x-(x-y),F=y-S,x=J*z,C=x-(x-z),R=z-C,U=F*R-(B-S*C-F*C-S*R),I=v-U,o=v-I,K[0]=v-(I+o)+(o-U),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ct=be(4,Et,4,K,En);k=q*N,x=J*q,S=x-(x-q),F=q-S,x=J*N,C=x-(x-N),R=N-C,v=F*R-(k-S*C-F*C-S*R),B=Z*w,x=J*Z,S=x-(x-Z),F=Z-S,x=J*w,C=x-(x-w),R=w-C,U=F*R-(B-S*C-F*C-S*R),I=v-U,o=v-I,K[0]=v-(I+o)+(o-U),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ie=be(ct,En,4,K,Cn);k=g*N,x=J*g,S=x-(x-g),F=g-S,x=J*N,C=x-(x-N),R=N-C,v=F*R-(k-S*C-F*C-S*R),B=y*w,x=J*y,S=x-(x-y),F=y-S,x=J*w,C=x-(x-w),R=w-C,U=F*R-(B-S*C-F*C-S*R),I=v-U,o=v-I,K[0]=v-(I+o)+(o-U),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const Ct=be(ie,Cn,4,K,Tn);return Tn[Ct-1]}function Ir(m,n,r,u,h,c){const p=(n-c)*(r-h),g=(m-h)*(u-c),y=p-g,w=Math.abs(p+g);return Math.abs(y)>=Cr*w?y:-Pr(m,n,r,u,h,c,w)}const At=(m,n)=>m.ll.x<=n.x&&n.x<=m.ur.x&&m.ll.y<=n.y&&n.y<=m.ur.y,Ce=(m,n)=>{if(n.ur.x{if(-gtm.x*n.y-m.y*n.x,Hn=(m,n)=>m.x*n.x+m.y*n.y,In=(m,n,r)=>{const u=Ir(m.x,m.y,n.x,n.y,r.x,r.y);return u>0?-1:u<0?1:0},ee=m=>Math.sqrt(Hn(m,m)),kr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return te(h,u)/ee(h)/ee(u)},Lr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return Hn(h,u)/ee(h)/ee(u)},Mn=(m,n,r)=>n.y===0?null:{x:m.x+n.x/n.y*(r-m.y),y:r},Rn=(m,n,r)=>n.x===0?null:{x:r,y:m.y+n.y/n.x*(r-m.x)},Ar=(m,n,r,u)=>{if(n.x===0)return Rn(r,u,m.x);if(u.x===0)return Rn(m,n,r.x);if(n.y===0)return Mn(r,u,m.y);if(u.y===0)return Mn(m,n,r.y);const h=te(n,u);if(h==0)return null;const c={x:r.x-m.x,y:r.y-m.y},p=te(c,n)/h,g=te(c,u)/h,y=m.x+g*n.x,w=r.x+p*u.x,N=m.y+g*n.y,o=r.y+p*u.y,x=(y+w)/2,S=(N+o)/2;return{x,y:S}};class nt{static compare(n,r){const u=nt.comparePoints(n.point,r.point);return u!==0?u:(n.point!==r.point&&n.link(r),n.isLeft!==r.isLeft?n.isLeft?1:-1:dt.compare(n.segment,r.segment))}static comparePoints(n,r){return n.xr.x?1:n.yr.y?1:0}constructor(n,r){n.events===void 0?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}link(n){if(n.point===this.point)throw new Error("Tried to link already linked events");const r=n.point.events;for(let u=0,h=r.length;u{const c=h.otherSE;r.set(h,{sine:kr(this.point,n.point,c.point),cosine:Lr(this.point,n.point,c.point)})};return(h,c)=>{r.has(h)||u(h),r.has(c)||u(c);const{sine:p,cosine:g}=r.get(h),{sine:y,cosine:w}=r.get(c);return p>=0&&y>=0?gw?-1:0:p<0&&y<0?gw?1:0:yp?1:0}}}let vr=0;class dt{static compare(n,r){const u=n.leftSE.point.x,h=r.leftSE.point.x,c=n.rightSE.point.x,p=r.rightSE.point.x;if(pg&&y>w)return-1;const o=n.comparePoint(r.leftSE.point);if(o<0)return 1;if(o>0)return-1;const x=r.comparePoint(n.rightSE.point);return x!==0?x:-1}if(u>h){if(gy&&g>N)return 1;const o=r.comparePoint(n.leftSE.point);if(o!==0)return o;const x=n.comparePoint(r.rightSE.point);return x<0?1:x>0?-1:1}if(gy)return 1;if(cp){const o=n.comparePoint(r.rightSE.point);if(o<0)return 1;if(o>0)return-1}if(c!==p){const o=w-g,x=c-u,S=N-y,F=p-h;if(o>x&&SF)return-1}return c>p?1:cN?1:n.idr.id?1:0}constructor(n,r,u,h){this.id=++vr,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=u,this.windings=h}static fromRing(n,r,u){let h,c,p;const g=nt.comparePoints(n,r);if(g<0)h=n,c=r,p=1;else if(g>0)h=r,c=n,p=-1;else throw new Error(`Tried to create degenerate segment at [${n.x}, ${n.y}]`);const y=new nt(h,!0),w=new nt(c,!1);return new dt(y,w,[u],[p])}replaceRightSE(n){this.rightSE=n,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const n=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:nr?n:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(n){return n.x===this.leftSE.point.x&&n.y===this.leftSE.point.y||n.x===this.rightSE.point.x&&n.y===this.rightSE.point.y}comparePoint(n){if(this.isAnEndpoint(n))return 0;const r=this.leftSE.point,u=this.rightSE.point,h=this.vector();if(r.x===u.x)return n.x===r.x?0:n.x0&&g.swapEvents(),nt.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),u&&(h.checkForConsuming(),c.checkForConsuming()),r}swapEvents(){const n=this.rightSE;this.rightSE=this.leftSE,this.leftSE=n,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,u=this.windings.length;r0){const c=r;r=u,u=c}if(r.prev===u){const c=r;r=u,u=c}for(let c=0,p=u.rings.length;ch.length===1&&h[0].isSubject;this._isInResult=u(n)!==u(r);break}default:throw new Error(`Unrecognized operation type found ${ot.type}`)}return this._isInResult}}class kn{constructor(n,r,u){if(!Array.isArray(n)||n.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=u,this.segments=[],typeof n[0][0]!="number"||typeof n[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const h=vt.round(n[0][0],n[0][1]);this.bbox={ll:{x:h.x,y:h.y},ur:{x:h.x,y:h.y}};let c=h;for(let p=1,g=n.length;pthis.bbox.ur.x&&(this.bbox.ur.x=y.x),y.y>this.bbox.ur.y&&(this.bbox.ur.y=y.y),c=y)}(h.x!==c.x||h.y!==c.y)&&this.segments.push(dt.fromRing(c,h,this))}getSweepEvents(){const n=[];for(let r=0,u=this.segments.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.interiorRings.push(c)}this.multiPoly=r}getSweepEvents(){const n=this.exteriorRing.getSweepEvents();for(let r=0,u=this.interiorRings.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.polys.push(c)}this.isSubject=r}getSweepEvents(){const n=[];for(let r=0,u=this.polys.length;r0&&(n=p)}let r=n.segment.prevInResult(),u=r?r.prevInResult():null;for(;;){if(!r)return null;if(!u)return r.ringOut;if(u.ringOut!==r.ringOut)return u.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=u.prevInResult(),u=r?r.prevInResult():null}}}class An{constructor(n){this.exteriorRing=n,n.poly=this,this.interiorRings=[]}addInterior(n){this.interiorRings.push(n),n.poly=this}getGeom(){const n=[this.exteriorRing.getGeom()];if(n[0]===null)return null;for(let r=0,u=this.interiorRings.length;r1&&arguments[1]!==void 0?arguments[1]:dt.compare;this.queue=n,this.tree=new Te(r),this.segments=[]}process(n){const r=n.segment,u=[];if(n.consumedBy)return n.isLeft?this.queue.remove(n.otherSE):this.tree.remove(r),u;const h=n.isLeft?this.tree.add(r):this.tree.find(r);if(!h)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let c=h,p=h,g,y;for(;g===void 0;)c=this.tree.prev(c),c===null?g=null:c.key.consumedBy===void 0&&(g=c.key);for(;y===void 0;)p=this.tree.next(p),p===null?y=null:p.key.consumedBy===void 0&&(y=p.key);if(n.isLeft){let w=null;if(g){const o=g.getIntersection(r);if(o!==null&&(r.isAnEndpoint(o)||(w=o),!g.isAnEndpoint(o))){const x=this._splitSafely(g,o);for(let S=0,F=x.length;S0?(this.tree.remove(r),u.push(n)):(this.segments.push(r),r.prev=g)}else{if(g&&y){const w=g.getIntersection(y);if(w!==null){if(!g.isAnEndpoint(w)){const N=this._splitSafely(g,w);for(let o=0,x=N.length;ovn)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const p=new Dr(c);let g=c.size,y=c.pop();for(;y;){const o=y.key;if(c.size===g){const S=o.segment;throw new Error(`Unable to pop() ${o.isLeft?"left":"right"} SweepEvent [${o.point.x}, ${o.point.y}] from segment #${S.id} [${S.leftSE.point.x}, ${S.leftSE.point.y}] -> [${S.rightSE.point.x}, ${S.rightSE.point.y}] from queue.`)}if(c.size>vn)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(p.segments.length>Wr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const x=p.process(o);for(let S=0,F=x.length;S1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u[]},tileUrlTemplate:{type:String,default:"https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png"},referenceTileUrlTemplate:{type:String,default:"https://map.shuxitech.com/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}"},terrainUrl:{type:String,default:""},center:{type:Array,default:()=>[102.600005,32.585593]},initialZoom:{type:Number,default:9},minimumZoomDistance:{type:Number,default:1},countyViewTargetOffset:{type:Object,default:null},autoApplyLayerMapView:{type:Boolean,default:!0},maxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},showNationalBackdrop:{type:Boolean,default:!0},enableImageryFeaturePick:{type:Boolean,default:!0},enableTownPolygonPick:{type:Boolean,default:!0},hideTownLabelStats:{type:Boolean,default:!1}},emits:["ready","scene-mounted","feature-loading","feature-info","layer-status","tile-status","map-click","draw-boundary","view-change"],setup(m,{expose:n,emit:r}){let u=[],h=null;const c=m,p=r,g=_n(null),y=_n(null),w=yr(null),N=hr(()=>c.activeLayer?[c.activeLayer,...Array.isArray(c.activeLayer.overlayLayers)?c.activeLayer.overlayLayers:[]].filter(Boolean):c.overlayLayers.length?c.overlayLayers.filter(Boolean):c.overlayLayer?[c.overlayLayer]:[]);let o=null,x=null,S=null,F=null,C=null,R=!1,I=0,M=null,O=!1,k=[],v=null,B=[],U=[],D=[],q=[],z=[],Z=[],W=null,Y=[],it=[],ct=[],ie=[];const Ct=new Map;fr(()=>{p("scene-mounted"),c.active&&Ot()}),mr(()=>It()),Kt(N,()=>ve(),{deep:!0}),Kt(()=>c.mapRanking,()=>se(),{deep:!0}),Kt(()=>c.hideTownLabelStats,()=>se()),Kt(()=>c.active,t=>mt(this,null,function*(){if(!t){It();return}yield Sn(),Ot()}));function Ot(){var b,_,T,E;if(o||!y.value)return!!o;const t=window.Cesium;if(!t)return p("layer-status",{type:"error",text:"Cesium 运行资源加载失败"}),!1;R=!1;const e=Gn(t),i=Pe(c.tileUrlTemplate),l=Pe(c.referenceTileUrlTemplate),a=zn(i),s=l&&l!==i?Fe(t,l,{maximumLevel:c.maxZoom}):null,f=i?Fe(t,i,{maximumLevel:a?Math.min(c.maxZoom,$r):c.maxZoom,rectangle:a?jn(t):null}):null;if(o=new t.Viewer(y.value,{animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,navigationHelpButton:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,scene3DOnly:!0,imageryProvider:!1,terrainProvider:e,useBrowserRecommendedResolution:!1,requestRenderMode:!0,maximumRenderTimeChange:1/0,contextOptions:{webgl:{alpha:!0,antialias:!0}}}),Le(!1),s){const P=o.imageryLayers.addImageryProvider(s);P.alpha=1,P.brightness=.68,P.contrast=1.08,P.saturation=.48,P.gamma=.9}f&&(v=o.imageryLayers.addImageryProvider(f),v.alpha=a?.88:1,v.brightness=a?.96:.9,v.contrast=a?1.12:1.1,v.saturation=a?1.08:1.05,v.gamma=a?.98:.96),o.scene.globe.terrainExaggeration=c.terrainUrl?1.5:1,o.scene.globe.depthTestAgainstTerrain=!1,o.scene.globe.baseColor=t.Color.fromCssColorString("#061821"),o.scene.backgroundColor=t.Color.fromCssColorString("#020b12"),o.scene.skyAtmosphere.show=!1,o.scene.skyBox&&(o.scene.skyBox.show=!1),o.scene.fog.enabled=!0,o.scene.fog.density=18e-5,o.resolutionScale=Math.min(Math.max(window.devicePixelRatio||1,1),1.5),o.scene.fxaa=!1,o.scene.postProcessStages.fxaa.enabled=!1,o.scene.screenSpaceCameraController.enableCollisionDetection=!0,o.scene.screenSpaceCameraController.minimumZoomDistance=Math.max(1,Number(c.minimumZoomDistance)||1),o.scene.screenSpaceCameraController.maximumZoomDistance=56e4,(b=o.cesiumWidget)!=null&&b.creditContainer&&(o.cesiumWidget.creditContainer.style.display="none"),(_=o._cesiumWidget)!=null&&_._creditContainer&&(o._cesiumWidget._creditContainer.style.display="none"),$n(e,t),Ie().then(()=>{var P;!o||(P=o.isDestroyed)!=null&&P.call(o)||(Ti(),oe())}).catch(P=>{console.warn("[cesium-map] county outline load failed",P),p("layer-status",{type:"error",text:"红原县边界加载失败"})}),_i(),ki(),ni(),ii(),ri(),oe(),ve(),se();const d={viewer:o,clearSelectedFeature:tt,focusProject:Qe,focusPasture:rn,focusTownByName:Ke,focusYakIndustryPoint:tn,focusVectorFeature:en,getVectorFeatureAnchorScreen:nn,getVectorFeaturesAnchorScreen:Ut,getVectorFeatureScreen:Ft,getYakIndustryPointScreen:he,destroy:It};return w.value=d,(E=(T=f==null?void 0:f.errorEvent)==null?void 0:T.addEventListener)==null||E.call(T,()=>{p("tile-status",{type:"warning",text:"牧场影像底图部分瓦片加载失败"})}),p("tile-status",{type:"success",text:"牧场影像底图已加载"}),window.setTimeout(()=>{var P;o&&!((P=o.isDestroyed)!=null&&P.call(o))&&p("ready")},0),Sn(Dt),!0}function Gn(t){if(!c.terrainUrl)return new t.EllipsoidTerrainProvider;try{return new t.CesiumTerrainProvider({url:c.terrainUrl,requestVertexNormals:!0,requestWaterMask:!1})}catch(e){return R=!0,new t.EllipsoidTerrainProvider}}function Fe(t,e,i={}){return e?new t.UrlTemplateImageryProvider({url:e,minimumLevel:i.minimumLevel||3,maximumLevel:i.maximumLevel||c.maxZoom,rectangle:i.rectangle||void 0,tilingScheme:new t.WebMercatorTilingScheme,credit:""}):null}function Pe(t){return String(t||"").trim()}function zn(t){return/hy-result|qkl-map/i.test(String(t||""))}function jn(t){return t.Rectangle.fromDegrees(G.west-.035,G.south-.035,G.east+.035,G.north+.035)}function Vn(t,e="feature"){const i=[];if(((t==null?void 0:t.features)||[]).forEach(l=>{const a=j(l==null?void 0:l.geometry);Ge(a).forEach(s=>{const f=Un(s);f&&i.push(f)})}),!i.length)return[];try{return Qt.union(...i)}catch(l){return console.warn(`[cesium-map] ${e} union boundary failed`,l),i.map(a=>a)}}function Ie(){return mt(this,null,function*(){return u.length?u:(h||(h=Ht(Ur).then(t=>{const e=Vn(t,"county outline");return u=e,e}).catch(t=>{throw h=null,t})),h)})}function Un(t){if(!Array.isArray(t))return null;const e=t.map(i=>Yn((i||[]).map($).filter(Boolean))).filter(i=>i.length>=4);return e.length?e:null}function Yn(t=[]){if(!t.length)return[];const e=t[0],i=t[t.length-1];return ze(e,i)?t:[...t,e]}function $n(t,e){var l,a,s,f;const i=()=>{!o||R||(R=!0,o.terrainProvider=new e.EllipsoidTerrainProvider,o.scene.globe.terrainExaggeration=1,o.scene.requestRender(),p("layer-status",{type:"warning",text:"CXPT 地形服务暂不可用,已保留三维影像地图"}))};(a=(l=t==null?void 0:t.errorEvent)==null?void 0:l.addEventListener)==null||a.call(l,i),(f=(s=t==null?void 0:t.readyPromise)==null?void 0:s.catch)==null||f.call(s,i)}function qn(){return Ot()}function Zn(){var t;return!!(o&&!((t=o.isDestroyed)!=null&&t.call(o)))}function Xn(){Me()}function Me(){if(!o){Ot();return}o.useDefaultRenderLoop=!0,Dt()}function Jn(){It()}function Dt(){var t;!o||(t=o.isDestroyed)!=null&&t.call(o)||(o.resize(),o.scene.requestRender())}function Re(){if(!(o!=null&&o.camera)||!window.Cesium)return null;const t=window.Cesium,e=o.camera;return{position:t.Cartesian3.clone(e.positionWC||e.position),direction:t.Cartesian3.clone(e.directionWC||e.direction),up:t.Cartesian3.clone(e.upWC||e.up)}}function Wt(t){var i,l,a,s,f,d;if(!(o!=null&&o.camera)||!t||!window.Cesium)return;const e=window.Cesium;(l=(i=o.camera).cancelFlight)==null||l.call(i),(s=(a=o.camera).lookAtTransform)==null||s.call(a,e.Matrix4.IDENTITY),o.camera.setView({destination:e.Cartesian3.clone(t.position),orientation:{direction:e.Cartesian3.clone(t.direction),up:e.Cartesian3.clone(t.up)}}),(d=(f=o.scene)==null?void 0:f.requestRender)==null||d.call(f)}function ke(t){var e,i;!t||typeof window=="undefined"||((e=window.requestAnimationFrame)==null||e.call(window,()=>Wt(t)),(i=window.setTimeout)==null||i.call(window,()=>Wt(t),80))}function Kn(){tt(),Le(!0)}function Le(t=!0){if(!o)return;const e=window.Cesium,i=ei(),l=Ae(c.initialZoom),a=Qn(),s=e.Cartesian3.fromDegrees(i[0]+a.lng,i[1]+a.lat,ti()),f=new e.HeadingPitchRange(e.Math.toRadians(qr),e.Math.toRadians(Zr),l);t?o.camera.flyToBoundingSphere(new e.BoundingSphere(s,1),{offset:f,duration:.9}):(o.camera.lookAt(s,f),o.camera.lookAtTransform(e.Matrix4.IDENTITY)),o.scene.requestRender()}function Qn(){var l,a;const t=c.countyViewTargetOffset,e=Number((l=t==null?void 0:t.lng)!=null?l:t==null?void 0:t[0]),i=Number((a=t==null?void 0:t.lat)!=null?a:t==null?void 0:t[1]);return{lng:Number.isFinite(e)?e:0,lat:Number.isFinite(i)?i:-Xr}}function ti(){return c.terrainUrl?Jr:Kr}function re(){return c.terrainUrl?Qr:to}function Ae(t){const e=Number.isFinite(Number(t))?Number(t):9;return Math.max(9e3,Math.min(58e4,365e3/Math.pow(1.62,e-9)))}function ei(){const t=$(c.center);return t||[(G.west+G.east)/2,(G.south+G.north)/2]}function ni(){!g.value||!window.ResizeObserver||(S=new ResizeObserver(()=>Dt()),S.observe(g.value))}function ii(){!o||F||(F=o.camera.moveEnd.addEventListener(oe))}function ri(){!o||C||(C=o.scene.postRender.addEventListener(()=>{p("view-change")}))}function oe(){var l,a;if(!o||(l=o.isDestroyed)!=null&&l.call(o))return;const t=Number((a=o.camera.positionCartographic)==null?void 0:a.height)||32e4,e=Math.max(0,Math.min(1,(36e4-t)/3e5)),i={township:1.1+e*.35,countyOutline:1.9+e*.35,countyHalo:4.2+e*.65};U.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="township"&&(s.polyline.width=i.township)}),ct.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="county-outline"&&(s.polyline.width=i.countyOutline),s!=null&&s.polyline&&s.__hyBoundaryRole==="county-halo"&&(s.polyline.width=i.countyHalo)}),o.scene.requestRender()}function ve(){return mt(this,null,function*(){var i,l;if(!o)return;const t=++I;dn();const e=N.value;if(!e.length){p("layer-status",{type:"idle",text:"未选择专题图层"}),o.scene.requestRender();return}p("layer-status",{type:"loading",text:"正在加载三维专题图层"});try{if(yield Ie(),t!==I||!o)return;for(const a of e){if(t!==I)return;yield oi(a,t)}if(t!==I)return;c.autoApplyLayerMapView&&Ui(e.find(a=>(a==null?void 0:a.mapView)||(a==null?void 0:a.cameraPosition))),p("layer-status",{type:"success",text:`${e.map(a=>a.name).filter(Boolean).join("、")}已加载`})}catch(a){if(t!==I)return;console.warn("[cesium-map] topic layer failed",a),p("layer-status",{type:"error",text:"三维专题图层加载失败"})}finally{(l=(i=o==null?void 0:o.scene)==null?void 0:i.requestRender)==null||l.call(i)}})}function oi(t,e){return mt(this,null,function*(){const i=String((t==null?void 0:t.sourceType)||"wms").toLowerCase();if(["geojson","wkt-api","wfs"].includes(i)){const l=yield ui(t);if(e!==I||!l)return;mi(l,t,D);return}if(i==="wmts"){si(t);return}ai(t)})}function si(t){const e=window.Cesium,i=t.tileMatrixSetID||t.tileMatrixSet||"EPSG:900913",l=Number.isFinite(Number(t.maximumLevel))?Number(t.maximumLevel):21,a=new e.WebMapTileServiceImageryProvider({url:t.url||"/geoserver/gwc/service/wmts",layer:t.layerName,style:t.style||t.styles||"",format:t.format||"image/png",tileMatrixSetID:i,tileMatrixLabels:t.tileMatrixLabels||li(i,l),tilingScheme:/4326/i.test(i)?new e.GeographicTilingScheme:new e.WebMercatorTilingScheme,maximumLevel:l,credit:t.credit||""}),s=o.imageryLayers.addImageryProvider(a),f=String(t.layerName||"").includes("daping_yak_marks");s.alpha=f?St(t.opacity,.94):St(t.opacity,.86),f&&Be(s,t),s.__hyLayer=t,B.push(s)}function li(t,e=21){return Array.from({length:e+1},(i,l)=>`${t}:${l}`)}function ai(t){const e=window.Cesium,i={service:"WMS",transparent:!0,format:"image/png",version:"1.1.1",styles:t.styles||""};t.cqlFilter&&(i.cql_filter=t.cqlFilter),t.sldBody&&(i.sld_body=t.sldBody);const l=new e.WebMapServiceImageryProvider({url:t.url||"/geoserver/ne/wms",layers:t.layerName,parameters:i,getFeatureInfoParameters:Lt(at({},i),{info_format:"application/json",feature_count:10})}),a=o.imageryLayers.addImageryProvider(l),s=String(t.layerName||"").includes("daping_yak_marks");a.alpha=s?St(t.opacity,.94):St(t.opacity,.86),s&&Be(a,t),a.__hyLayer=t,B.push(a)}function Be(t,e={}){t.brightness=Number.isFinite(Number(e.brightness))?Number(e.brightness):1.08,t.contrast=Number.isFinite(Number(e.contrast))?Number(e.contrast):1.18,t.saturation=Number.isFinite(Number(e.saturation))?Number(e.saturation):1.42,t.gamma=Number.isFinite(Number(e.gamma))?Number(e.gamma):.95}function ui(t){return mt(this,null,function*(){if(t.sourceType==="wkt-api")try{const e=yield fetch(t.apiUrl,{credentials:"same-origin"});if(!e.ok)throw new Error(`HTTP ${e.status}`);return fi(yield e.json())}catch(e){if(!t.fallbackPath)throw e;return Ht(t.fallbackPath)}if(t.sourceType==="wfs"){const e=ci(t);return Ht(e)}return Ht(t.dataPath||t.fallbackPath)})}function Ht(t){return mt(this,null,function*(){if(!t)return null;const e=/^(https?:)?\/\//.test(t)||t.startsWith("/")?t:Yr(t),i=yield fetch(e,{credentials:"same-origin"});if(!i.ok)throw new Error(`HTTP ${i.status}`);return i.json()})}function ci(t){const e=new URLSearchParams({service:"WFS",version:"1.1.0",request:"GetFeature",typeName:t.layerName,outputFormat:"application/json",srsName:"EPSG:4326"});return t.cqlFilter&&e.set("cql_filter",t.cqlFilter),t.maxFeatures&&e.set("maxFeatures",String(t.maxFeatures)),Array.isArray(t.propertyName)&&t.propertyName.length?e.set("propertyName",t.propertyName.join(",")):t.propertyName&&e.set("propertyName",t.propertyName),`${t.url||"/geoserver/ne/wfs"}?${e.toString()}`}function hi(t,e={},i=null,l=null){var b,_,T;const a=((b=t==null?void 0:t.data)==null?void 0:b.type)==="Feature"?t.data:((T=(_=t==null?void 0:t.data)==null?void 0:_.features)==null?void 0:T[0])||(t==null?void 0:t.feature)||null,s=(a==null?void 0:a.properties)||e||{},f=j((a==null?void 0:a.geometry)||s.geometry||s.geom||s.the_geom||s.theGeom||s.wkt||s.shape),d=(a==null?void 0:a.id)||s.id||s.gid||s.objectid||s.OBJECTID||(t==null?void 0:t.name);return{type:"Feature",id:d,properties:s,feature:{type:"Feature",id:d,properties:s,geometry:f},geometry:f,layer:i,lngLat:l}}function fi(t){var l;const e=(l=t==null?void 0:t.data)!=null?l:t;return{type:"FeatureCollection",features:(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||(e==null?void 0:e.records)||(e==null?void 0:e.data)||[]).map((a,s)=>{var f;return{type:"Feature",id:(f=a==null?void 0:a.id)!=null?f:s,properties:at({},a),geometry:j(a==null?void 0:a.geometry)||pe(Oe(a))}}).filter(a=>a.geometry)}}function Oe(t={}){return t.wkt||t.WKT||t.geom||t.the_geom||t.theGeom||t.shape||t.Shape}function mi(t,e,i){((t==null?void 0:t.type)==="FeatureCollection"?t.features:(t==null?void 0:t.type)==="Feature"?[t]:[]).filter(a=>a==null?void 0:a.geometry).filter(a=>Si(a.properties||{},e)).map(a=>pi(a,e)).filter(Boolean).forEach(a=>xt(a,e,i))}function pi(t,e){const i=j(t==null?void 0:t.geometry),l=(e==null?void 0:e.clipToHongyuanBoundary)===!0,a=gi(e);if(!i||!["Polygon","MultiPolygon"].includes(i.type)||!l&&!a)return t;let s=i.type==="Polygon"?[i.coordinates]:i.coordinates;try{l&&u.length&&(s=Qt.intersection(s,u)),a&&s.length&&(s=Qt.intersection(s,[di(a)]))}catch(f){return console.warn("[cesium-map] vector layer clipping failed",e==null?void 0:e.key,f),t}return s.length?Lt(at({},t),{geometry:{type:"MultiPolygon",coordinates:s}}):null}function gi(t){if(!(t!=null&&t.clipBounds)||t.clipToLayerBounds===!1)return null;const e=t.clipBounds,i=Math.max(Number(e.west),G.west),l=Math.max(Number(e.south),G.south),a=Math.min(Number(e.east),G.east),s=Math.min(Number(e.north),G.north);return![i,l,a,s].every(Number.isFinite)||i>=a||l>=s?null:{west:i,south:l,east:a,north:s}}function di(t){return[[[t.west,t.south],[t.east,t.south],[t.east,t.north],[t.west,t.north],[t.west,t.south]]]}function xt(t,e,i,l={}){const a=j(t.geometry);if(!a)return[];const s=wi(e,t.properties||{},l),f=Gt(a,t,e,s);return i.push(...f),f}function Gt(t,e,i,l){const a=window.Cesium,s=[],f=d=>{const b=o.entities.add(d);return b.__hyFeature=e,b.__hyLayer=i,s.push(b),b};if(t.type==="Point"){const d=$(t.coordinates);return!d||i.hidePointFeatures||i.hidePointMarkers||f({position:a.Cartesian3.fromDegrees(d[0],d[1],8),point:{pixelSize:l.pointSize,color:l.fill,outlineColor:l.stroke,outlineWidth:2,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:i.showPointLabels?xi(e):void 0}),s}if(t.type==="MultiPoint")return t.coordinates.forEach(d=>s.push(...Gt({type:"Point",coordinates:d},e,i,l))),s;if(t.type==="LineString"){const d=lt(t.coordinates);return d.length<2||f({polyline:{positions:d,width:l.lineWidth,material:new a.PolylineGlowMaterialProperty({glowPower:.16,color:l.stroke}),clampToGround:!0}}),s}if(t.type==="MultiLineString")return t.coordinates.forEach(d=>s.push(...Gt({type:"LineString",coordinates:d},e,i,l))),s;if(t.type==="Polygon"){const d=zt(t.coordinates);return d&&(f({polygon:{hierarchy:d,height:0,heightReference:a.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,material:l.fill,outline:!1,classificationType:a.ClassificationType.BOTH}}),yi(t.coordinates,e,i,l,s)),s}return t.type==="MultiPolygon"&&t.coordinates.forEach(d=>s.push(...Gt({type:"Polygon",coordinates:d},e,i,l))),s}function yi(t,e,i,l,a){t.forEach(s=>{const f=lt(s);if(f.length<2)return;const d=o.entities.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,clampToGround:!0}});d.__hyFeature=e,d.__hyLayer=i,a.push(d)})}function zt(t=[]){const e=window.Cesium,i=lt(t[0]||[]);if(i.length<3)return null;const l=t.slice(1).map(a=>{const s=lt(a);return s.length>=3?new e.PolygonHierarchy(s):null}).filter(Boolean);return new e.PolygonHierarchy(i,l)}function xi(t,e){const i=window.Cesium,l=t.properties||{},a=l.name||l.project_name||l.title||"";if(a)return{text:String(a),font:"600 14px PingFang SC, Microsoft YaHei, sans-serif",fillColor:i.Color.WHITE,outlineColor:i.Color.fromCssColorString("#03121e"),outlineWidth:3,style:i.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new i.Cartesian2(0,-22),heightReference:i.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,distanceDisplayCondition:new i.DistanceDisplayCondition(0,15e4)}}function wi(t,e,i={}){var E,P,L,H,A,Q,st,et,ft;const l=window.Cesium,a=bi(t,e),s=St(t.opacity,.84),f=i.fillColor||(a==null?void 0:a.fillColor)||t.fillColor||t.color||"#24F6C4",d=i.strokeColor||(a==null?void 0:a.strokeColor)||t.strokeColor||t.color||"#B7FFF2",b=(L=(P=(E=i.fillAlpha)!=null?E:a==null?void 0:a.fillAlpha)!=null?P:t.fillAlpha)!=null?L:Math.min(.34,s*.34),_=(Q=(A=(H=i.strokeAlpha)!=null?H:a==null?void 0:a.strokeAlpha)!=null?A:t.strokeAlpha)!=null?Q:Math.max(.72,s),T=(ft=(et=(st=i.lineWidth)!=null?st:a==null?void 0:a.lineWidth)!=null?et:t.lineWidth)!=null?ft:Math.max(1.6,1.8*Number(c.adminBoundaryLineScale||1));return{fill:De(l,f,b),stroke:De(l,d,_),lineWidth:T,pointSize:i.pointSize||12}}function De(t,e,i){try{return t.Color.fromCssColorString(String(e||"#24F6C4")).withAlpha(St(i,1))}catch(l){return t.Color.CYAN.withAlpha(St(i,1))}}function bi(t,e){var i;return t!=null&&t.activeLegend?t.activeLegend:((t==null?void 0:t.legends)||[]).find(l=>We(e,l))||((i=t==null?void 0:t.legends)==null?void 0:i[0])}function Si(t,e){const i=e==null?void 0:e.activeLegend;return i?We(t,i):!0}function We(t,e={}){return e.match?He(t,e.match):Array.isArray(e.matches)?e.matches.some(i=>He(t,i)):!0}function He(t,e={}){var i,l;return String((i=t==null?void 0:t[e.field])!=null?i:"")===String((l=e.value)!=null?l:"")}function _i(){if(!o)return;V(U);const t=window.Cesium,e={stroke:t.Color.fromCssColorString("#B8FFF8").withAlpha(.82),fill:t.Color.TRANSPARENT,lineWidth:1.2,pointSize:0};Ni(xe.features||[]).forEach(i=>{var s;const l=lt(i.points);if(l.length<2)return;const a=o.entities.add({polyline:{positions:l,width:e.lineWidth,material:e.stroke,depthFailMaterial:e.stroke,clampToGround:!0,zIndex:7}});a.__hyBoundaryRole="township",a.__hyTownName=((s=i.townNames)==null?void 0:s[0])||"",U.push(a)}),o.scene.requestRender()}function Ni(t=[]){const e=new Map;t.forEach(l=>{var f;const a=String(((f=l==null?void 0:l.properties)==null?void 0:f.name)||"").trim(),s=j(l==null?void 0:l.geometry);Ge(s).forEach(d=>{const b=((d==null?void 0:d[0])||[]).map($).filter(Boolean);for(let _=0;_Lt(at({},l),{townNames:Array.from(l.townNames)})).filter(l=>l.count>1&&l.townNames.length>1);return Ci(i)}function Ge(t){return t!=null&&t.coordinates?t.type==="Polygon"?[t.coordinates]:t.type==="MultiPolygon"?t.coordinates:[]:[]}function Ei(t,e){const i=Tt(t),l=Tt(e);return i{a.points.forEach(f=>{const d=Tt(f),b=e.get(d)||[];b.push(s),e.set(d,b)})});const i=new Set,l=[];return t.forEach((a,s)=>{if(i.has(s))return;i.add(s);const f=[a.points[0],a.points[1]];je(f,e,t,i,!0),je(f,e,t,i,!1),l.push({points:f,townNames:a.townNames})}),l}function je(t,e,i,l,a){for(;t.length;){const s=a?t[0]:t[t.length-1],f=Tt(s),d=(e.get(f)||[]).filter(L=>!l.has(L));if(d.length!==1)return;const b=d[0],_=i[b];l.add(b);const[T,E]=_.points,P=Tt(T)===f?E:T;a?t.unshift(P):t.push(P)}}function Ti(){if(!o||!u.length)return;V(ct);const t=window.Cesium;Fi(t),u.forEach(e=>{const l=(Array.isArray(e==null?void 0:e[0])?e[0]:[]).map($).filter(Boolean);if(l.length<3)return;const a=zt(e);if(a){const d=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#20EAF2").withAlpha(.026),outline:!1,perPositionHeight:!1,heightReference:t.HeightReference.CLAMP_TO_GROUND,classificationType:t.ClassificationType.BOTH}});ct.push(d)}const s=o.entities.add({polyline:{positions:lt(l),width:4.8,material:new t.PolylineGlowMaterialProperty({glowPower:.16,color:t.Color.fromCssColorString("#78FFF7").withAlpha(.48)}),depthFailMaterial:t.Color.fromCssColorString("#78FFF7").withAlpha(.32),clampToGround:!0,zIndex:8}});s.__hyBoundaryRole="county-halo";const f=o.entities.add({polyline:{positions:lt(l),width:1.9,material:t.Color.fromCssColorString("#F2FFFB").withAlpha(.98),depthFailMaterial:t.Color.fromCssColorString("#F2FFFB").withAlpha(.9),clampToGround:!0,zIndex:9}});f.__hyBoundaryRole="county-outline",ct.push(s,f)}),o.scene.requestRender()}function Fi(t){const e=Pi();let i=[];try{i=Qt.difference([e],u)}catch(l){console.warn("[cesium-map] county outside mask failed",l),i=[e]}i.forEach(l=>{const a=zt(l);if(!a)return;const s=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#020A10").withAlpha(.52),outline:!1,perPositionHeight:!1,heightReference:t.HeightReference.CLAMP_TO_GROUND,classificationType:t.ClassificationType.BOTH,zIndex:1}});ct.push(s)})}function Pi(){const t=G.west-Dn,e=G.south-Wn,i=G.east+Dn,l=G.north+Wn;return[[[t,e],[i,e],[i,l],[t,l],[t,e]]]}function Ii(t,e=!1){const i=(Array.isArray(t)?t:[t]).map(Rt=>String(Rt||"").trim()).filter(Boolean).slice(0,2),l=`v15-centered-map-badge:${e?"h":"n"}:${i.join("|")}`;if(Ct.has(l))return Ct.get(l);const a=document.createElement("canvas"),s=a.getContext("2d");if(!s)return{image:"",width:1,height:1};const f=Math.min(4,Math.max(3,window.devicePixelRatio||2)),d="700 14px Microsoft YaHei, PingFang SC, sans-serif",b="700 9px Microsoft YaHei, PingFang SC, sans-serif",_="800 14px Microsoft YaHei, PingFang SC, sans-serif",T="600 9px Microsoft YaHei, PingFang SC, sans-serif",E=Ri(i[1]);s.font=d;const P=Math.ceil(s.measureText(i[0]||"").width);let L=0;E&&(s.font=b,L+=Math.ceil(s.measureText(E.metric).width),s.font=_,L+=Math.ceil(s.measureText(E.value).width),s.font=T,L+=Math.ceil(s.measureText(E.unit).width),L+=E.metric?5:0,L+=E.unit?4:0);const H=Math.min(118,Math.max(E?96:62,P+20,L+20)),A=E?40:25,Q=E?5:0,st=6,et=H+st*2,ft=A+Q+st*2;a.width=Math.ceil(et*f),a.height=Math.ceil(ft*f),a.style.width=`${et}px`,a.style.height=`${ft}px`,s.scale(f,f),s.clearRect(0,0,et,ft);const X=st,rt=st,Nt=rt+A,_t=s.createLinearGradient(X,rt,X,Nt);_t.addColorStop(0,e?"rgba(8, 58, 70, 0.9)":"rgba(6, 45, 57, 0.78)"),_t.addColorStop(.55,e?"rgba(4, 34, 46, 0.88)":"rgba(3, 29, 41, 0.76)"),_t.addColorStop(1,e?"rgba(2, 22, 32, 0.88)":"rgba(2, 18, 29, 0.78)"),s.save(),s.shadowColor="rgba(48, 220, 255, 0.13)",s.shadowBlur=6,s.fillStyle=_t,Ve(s,X,rt,H,A),s.fill(),s.restore(),s.save(),s.globalCompositeOperation="lighter";const Jt=s.createLinearGradient(X,rt,X+H,rt);Jt.addColorStop(0,"rgba(42, 210, 255, 0)"),Jt.addColorStop(.5,e?"rgba(98, 246, 255, 0.34)":"rgba(98, 246, 255, 0.26)"),Jt.addColorStop(1,"rgba(42, 210, 255, 0)"),s.strokeStyle=Jt,s.lineWidth=1,s.beginPath(),s.moveTo(X+10,rt+2),s.lineTo(X+H-10,rt+2),s.stroke(),s.restore(),s.save(),s.strokeStyle=e?"rgba(126, 251, 246, 0.58)":"rgba(126, 251, 246, 0.46)",s.lineWidth=.9,Ve(s,X+.5,rt+.5,H-1,A-1),s.stroke(),s.restore();const Mt=X+H/2;Q>0&&(s.save(),s.shadowColor="rgba(48, 220, 255, 0.2)",s.shadowBlur=5,s.beginPath(),s.moveTo(Mt-5,Nt-1),s.lineTo(Mt+5,Nt-1),s.lineTo(Mt,Nt+Q),s.closePath(),s.fillStyle=e?"rgba(4, 42, 52, 0.98)":"rgba(3, 31, 43, 0.96)",s.fill(),s.strokeStyle=e?"rgba(126, 251, 246, 0.48)":"rgba(126, 251, 246, 0.34)",s.lineWidth=.8,s.stroke(),s.restore()),s.save(),s.textAlign="center",s.textBaseline="alphabetic",s.fillStyle="rgba(255, 255, 255, 0.98)",s.strokeStyle="rgba(0, 8, 14, 0.98)",s.lineJoin="round",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,s.font=d,s.lineWidth=1.6;const rr=rt+(E?12.5:A/2);if(jt(s,i[0]||"",Mt,rr),E){const Rt=rt+29.5;let kt=Mt-L/2;s.textAlign="left",s.shadowBlur=0,s.font=b,s.lineWidth=1.2,s.fillStyle="rgba(126, 251, 246, 0.9)",E.metric&&(jt(s,E.metric,kt,Rt,{stroke:!1}),s.font=b,kt+=Math.ceil(s.measureText(E.metric).width)+5),s.font=_,s.lineWidth=1.4,s.fillStyle="#FFFFFF",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,jt(s,E.value,kt,Rt),s.shadowBlur=0,kt+=Math.ceil(s.measureText(E.value).width)+(E.unit?4:0),E.unit&&(s.font=T,s.fillStyle="rgba(232, 252, 255, 0.76)",jt(s,E.unit,kt,Rt+1,{stroke:!1}))}s.restore();const yn={image:a.toDataURL("image/png"),width:et,height:ft};return Ct.set(l,yn),yn}function jt(t,e,i,l,a={}){const s=t.measureText(e),f=Mi(t.font),d=Number(s.actualBoundingBoxAscent)||f*.74,b=Number(s.actualBoundingBoxDescent)||f*.18,_=l+(d-b)/2;a.stroke!==!1&&t.lineWidth>0&&t.strokeText(e,i,_),t.fillText(e,i,_)}function Mi(t){const e=String(t||"").match(/(\d+(?:\.\d+)?)px/);return e?Number(e[1]):14}function Ri(t){const e=String(t||"").trim();if(!e)return null;const i=e.match(/^(.+?)\s+([+-]?\d[\d,.]*)(.*)$/u);if(i)return{metric:i[1].trim(),value:i[2].trim(),unit:i[3].trim()};const l=e.match(/^(.*?)([+-]?\d[\d,.]*)([\u4e00-\u9fa5A-Za-z/%]+)?$/u);return l?{metric:l[1].trim(),value:l[2].trim(),unit:(l[3]||"").trim()}:{metric:"",value:e,unit:""}}function Ve(t,e,i,l,a){const s=Math.min(7,l*.12,a*.34);t.beginPath(),t.moveTo(e+s,i),t.lineTo(e+l-s,i),t.lineTo(e+l,i+s),t.lineTo(e+l,i+a-s),t.lineTo(e+l-s,i+a),t.lineTo(e+s,i+a),t.lineTo(e,i+a-s),t.lineTo(e,i+s),t.closePath()}function se(){var f;if(!o)return;V(q);const t=window.Cesium,e=c.mapRanking||{},i=Array.isArray(e.rows)?e.rows:[],l=new Map(i.map(d=>[ht(d.name),d])),a=e.showTownNames!==!1&&e.hideTownNames!==!0,s=(f=e.hideTownLabelStats)!=null?f:c.hideTownLabelStats;a&&bn.forEach(d=>{const b=l.get(ht(d.name)),_=[d.name];if(!s&&b&&e.showMapLabels!==!1){const H=e.metricLabel?`${e.metricLabel} `:"";_.push(`${H}${ir(b.value)}${b.unit||e.unit||""}`)}const T=$(d.center);if(!T)return;const E=Ii(_,!!b),P=!!(s||_.length===1),L=o.entities.add({position:t.Cartesian3.fromDegrees(T[0],T[1],18),billboard:{image:E.image,width:E.width,height:E.height,scale:1,verticalOrigin:P?t.VerticalOrigin.CENTER:t.VerticalOrigin.BOTTOM,horizontalOrigin:t.HorizontalOrigin.CENTER,pixelOffset:P?new t.Cartesian2(0,0):new t.Cartesian2(0,-4),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new t.NearFarScalar(2e4,.94,36e4,.8),distanceDisplayCondition:new t.DistanceDisplayCondition(0,42e4)}});L.__hyTownName=d.name,L.__hyRankingRow=b||null,q.push(L)}),i.filter(d=>bt(d)).forEach(d=>{const b=bt(d),_=o.entities.add({position:t.Cartesian3.fromDegrees(b[0],b[1],16),point:{pixelSize:9,color:t.Color.fromCssColorString("#35F3FF"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:e.showPointMarkers===!1?void 0:{text:String(d.name||""),font:"600 12px PingFang SC, Microsoft YaHei, sans-serif",fillColor:t.Color.WHITE,outlineColor:t.Color.fromCssColorString("#03121e"),outlineWidth:3,style:t.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new t.Cartesian2(0,-18),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}});_.__hyTownName=d.name,_.__hyRankingRow=d,q.push(_)}),o.scene.requestRender()}function ki(){if(!o)return;const t=window.Cesium;x=new t.ScreenSpaceEventHandler(o.scene.canvas),x.setInputAction(e=>mt(this,null,function*(){var T,E,P;const i=Li(e.position),l=Ai(i);if(!l)return;const a=t.Cartographic.fromCartesian(l),s={lng:t.Math.toDegrees(a.longitude),lat:t.Math.toDegrees(a.latitude),height:a.height},f=Ue(i);if(O){Hi(s);return}p("map-click",{lngLat:s,screen:f,overlayLayer:N.value[0]||null});const d=o.scene.pick(i),b=d==null?void 0:d.id;if(c.enableTownPolygonPick&&(b!=null&&b.__hyTownName)&&ce(b.__hyTownName))return;if(c.enableTownPolygonPick){const L=Oi(s);if(L&&ce((T=L.properties)==null?void 0:T.name))return}const _=$i(s,f)||b;if(_!=null&&_.__hyFeature){le(_),p("feature-info",{feature:{id:_.__hyFeature.id,properties:_.__hyFeature.properties||{},feature:_.__hyFeature,geometry:_.__hyFeature.geometry||null,layer:_.__hyLayer,lngLat:s},screen:f});return}if(c.enableImageryFeaturePick&&B.length){p("feature-loading",!0);try{const L=o.camera.getPickRay(i),H=yield o.imageryLayers.pickImageryLayerFeatures(L,o.scene),A=H==null?void 0:H[0];if(A){const Q=B.find(Nt=>{var _t;return Nt.imageryProvider===((_t=A.imageryLayer)==null?void 0:_t.imageryProvider)})||B[B.length-1],st=(Q==null?void 0:Q.__hyLayer)||N.value[0],et=A.properties||((E=A.data)==null?void 0:E.properties)||A.data||{},X=hi(A,et,st,s);Xe(X)||tt(),p("feature-info",{feature:{id:X.id||et.id||et.fid||A.name,properties:X.properties||et,feature:X.feature||A,geometry:X.geometry||((P=X.feature)==null?void 0:P.geometry)||null,layer:st,lngLat:s},screen:f})}else tt(),p("feature-info",{feature:null,screen:f})}catch(L){tt(),p("feature-info",{feature:null,screen:f})}finally{p("feature-loading",!1)}}}),t.ScreenSpaceEventType.LEFT_CLICK)}function Li(t){var P,L,H,A;if(!t||!((P=o==null?void 0:o.scene)!=null&&P.canvas))return t;const e=window.Cesium,i=o.scene.canvas,l=(L=i.getBoundingClientRect)==null?void 0:L.call(i),a=Number(l==null?void 0:l.width)||0,s=Number(l==null?void 0:l.height)||0,f=Number(i.clientWidth||((H=g.value)==null?void 0:H.clientWidth))||a||1,d=Number(i.clientHeight||((A=g.value)==null?void 0:A.clientHeight))||s||1,b=Number(t.x),_=Number(t.y);if(!Number.isFinite(b)||!Number.isFinite(_)||!a||!s)return t;const T=f/a,E=d/s;return Math.abs(T-1)<.001&&Math.abs(E-1)<.001?t:new e.Cartesian2(b*T,_*E)}function Ue(t){var _,T,E,P;if(!t||!((_=o==null?void 0:o.scene)!=null&&_.canvas))return null;const e=o.scene.canvas,i=(T=e.getBoundingClientRect)==null?void 0:T.call(e),l=Number(i==null?void 0:i.width)||0,a=Number(i==null?void 0:i.height)||0,s=Number(e.clientWidth||((E=g.value)==null?void 0:E.clientWidth))||l||1,f=Number(e.clientHeight||((P=g.value)==null?void 0:P.clientHeight))||a||1,d=Number(t.x),b=Number(t.y);return!Number.isFinite(d)||!Number.isFinite(b)||!i?null:{x:(Number(i.left)||0)+d*(l/s),y:(Number(i.top)||0)+b*(a/f)}}function Ai(t){if(!o)return null;const e=o.camera.getPickRay(t);return e?o.scene.globe.pick(e,o.scene):null}function le(t){var e,i,l,a,s;tt(),M=t,t.point&&(t.__hyOriginalPointSize=t.point.pixelSize,t.point.pixelSize=18),(e=t.__hyFeature)!=null&&e.geometry&&["Polygon","MultiPolygon","LineString","MultiLineString"].includes(t.__hyFeature.geometry.type)&&Vt(t.__hyFeature,{townName:t.__hyTownName||((l=(i=t.__hyFeature)==null?void 0:i.properties)==null?void 0:l.name),mode:"feature"}),(s=(a=o==null?void 0:o.scene)==null?void 0:a.requestRender)==null||s.call(a)}function tt(){var t,e;M!=null&&M.point&&M.__hyOriginalPointSize&&(M.point.pixelSize=M.__hyOriginalPointSize),M=null,V(Z),Ye(),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Vt(t,e={}){var E,P,L,H;if(!o||!(t!=null&&t.geometry))return[];const i=vi({append:e.append===!0});if(!i)return[];const l=window.Cesium,a=e.mode==="town",s=e.highlightTone==="white"||e.mode==="white",f=e.highlightTone==="v21",d=a?"#30DCFF":s?"#FFFFFF":f?"#FFD166":"#FF2D2D",b=a?"#F2FFFF":s?"#FFFFFF":f?"#FFF1B8":"#FF2D2D",_={fill:l.Color.fromCssColorString(d).withAlpha((E=e.fillAlpha)!=null?E:a?.16:s?.035:f?.2:.16),stroke:l.Color.fromCssColorString(b).withAlpha((P=e.strokeAlpha)!=null?P:s?.9:.98),lineWidth:(L=e.lineWidth)!=null?L:a?4.2:s?3.8:f?4.4:5.2,pointSize:a?0:(H=e.pointSize)!=null?H:14},T=qe(t.geometry,t,i.entities,_);return T.forEach(A=>{var Q;A.__hyFeature=null,A.__hyLayer=null,A.__hyTownName=e.townName||((Q=t.properties)==null?void 0:Q.name)||"",A.__hySelectedOverlay=!0}),Z.push(...T),$e(i),T}function vi(t={}){return!o||!window.Cesium?null:(t.append&&W||(Ye(),W=new window.Cesium.CustomDataSource("selected-feature-overlay"),o.dataSources.add(W),$e(W)),W)}function Ye(){var e,i;if(!(o!=null&&o.dataSources)){W=null;return}Array.from(new Set([W,...((i=(e=o.dataSources).getByName)==null?void 0:i.call(e,"selected-feature-overlay"))||[]].filter(Boolean))).forEach(l=>{try{o.dataSources.remove(l,!0)}catch(a){console.warn("[cesium-map] remove selected overlay failed",a)}}),W=null,Z=[]}function $e(t){var e,i;if(!(!(o!=null&&o.dataSources)||!t))try{if(o.dataSources.raiseToTop){o.dataSources.raiseToTop(t);return}for(;((i=(e=o.dataSources).indexOf)==null?void 0:i.call(e,t)){const b=i.add(d);return b.__hyFeature=e,s.push(b),b};if(t.type==="Point"){const d=$(t.coordinates);return!d||l.pointSize<=0||f({position:a.Cartesian3.fromDegrees(d[0],d[1]),point:{show:!0,color:l.fill,pixelSize:l.pointSize,outlineColor:l.stroke,outlineWidth:3,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),s}return t.type==="MultiPoint"?(t.coordinates.forEach(d=>{s.push(...qe({type:"Point",coordinates:d},e,i,l))}),s):t.type==="LineString"?(ae(t.coordinates,e,i,l,s),s):t.type==="MultiLineString"?(t.coordinates.forEach(d=>{ae(d,e,i,l,s)}),s):t.type==="Polygon"?(Ze(t.coordinates,e,i,l,s),s):(t.type==="MultiPolygon"&&t.coordinates.forEach(d=>{Ze(d,e,i,l,s)}),s)}function Ze(t,e,i,l,a){const s=window.Cesium,f=zt(t);if(!f)return;const d=i.add({polygon:{hierarchy:f,height:0,heightReference:s.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,clampToGround:!0,material:l.fill,outline:!1,classificationType:s.ClassificationType.BOTH,zIndex:999}});d.__hyFeature=e,a.push(d),t.forEach(b=>ae(b,e,i,l,a))}function ae(t,e,i,l,a){const s=window.Cesium,f=lt(t);if(f.length<2)return;const d=i.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,heightReference:s.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,classificationType:s.ClassificationType.BOTH,zIndex:1e3}});d.__hyFeature=e,a.push(d)}function Xe(t,e={}){var s,f,d,b,_;if(!o||!t)return!1;const i=t.properties||((s=t.feature)==null?void 0:s.properties)||(typeof t=="object"?t:{}),l=j(t.geometry||((f=t.feature)==null?void 0:f.geometry)||i.geometry||i.geom||i.wkt||t);if(!l)return!1;tt();const a={type:"Feature",id:t.id||((d=t.feature)==null?void 0:d.id)||i.id,properties:i,geometry:l};return Vt(a,at({mode:"feature"},e)),(_=(b=o==null?void 0:o.scene)==null?void 0:b.requestRender)==null||_.call(b),Z.length>0}function Bi(t){const e=ht(t);return e&&(xe.features||[]).find(i=>{var l;return ht((l=i==null?void 0:i.properties)==null?void 0:l.name)===e})||null}function ue(){var t,e;return((t=c.mapRanking)==null?void 0:t.scope)==="town"&&Array.isArray((e=c.mapRanking)==null?void 0:e.rows)&&c.mapRanking.rows.length>0}function Je(t){var i;if(!ue())return!1;const e=ht(t);return(((i=c.mapRanking)==null?void 0:i.rows)||[]).some(l=>ht(l.name)===e)}function Oi(t){return ue()&&(xe.features||[]).find(e=>{var l;const i=(l=e==null?void 0:e.properties)==null?void 0:l.name;return Je(i)&&un(t,j(e==null?void 0:e.geometry))})||null}function ce(t,e={}){var l,a,s,f;if(!ue()||!Je(t))return!1;const i=Bi(t);return i?(tt(),Vt(i,{mode:"town",townName:((l=i.properties)==null?void 0:l.name)||t}),e.emitFeatureInfo!==!1&&p("feature-info",{feature:null}),e.emitStatus!==!1&&p("layer-status",{type:"success",text:`已选中${((a=i.properties)==null?void 0:a.name)||t}`}),(f=(s=o==null?void 0:o.scene)==null?void 0:s.requestRender)==null||f.call(s),!0):!1}function Ke(t,e={}){const i=bn.find(a=>ht(a.name)===ht(t)),l=$(i==null?void 0:i.center);return l?(e.select&&ce(t,{emitFeatureInfo:!1,emitStatus:!1}),sn(l,42e3),{screen:wt(l)}):null}function Qe(t={}){var f,d;const e=qi(t),i=Yi(b=>Zi(b,e));if(!i.length)return null;const l=Xi(i),a=Ji(l);tt(),M=i[0],M!=null&&M.point&&(M.__hyOriginalPointSize=M.point.pixelSize,M.point.pixelSize=18),a.forEach((b,_)=>{Vt(b,{mode:"feature",highlightTone:e.highlightTone,append:_>0})});const s=ye(l);return s?Yt(s,.9):o.flyTo(i[0],{duration:.9,offset:Pt(18e3)}),(d=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||d.call(f),{entity:i[0],entities:i,feature:l[0]||i[0].__hyFeature,features:l,highlightFeatures:a,screen:Ut(a.length?a:l)}}function tn(t={}){const e=bt(t);let i=me(l=>$t(l,t));return i?(le(i),o.flyTo(i,{duration:.9,offset:Pt(16e3)})):e&&sn(e,16e3),{feature:(i==null?void 0:i.__hyFeature)||null,screen:he(t)}}function en(t={}){const e=me(i=>$t(i,t));return e?(le(e),o.flyTo(e,{duration:.9,offset:Pt(18e3)}),{feature:e.__hyFeature,screen:Ft(e.__hyFeature)}):null}function Ft(t){var i;const e=nr(j((t==null?void 0:t.geometry)||((i=t==null?void 0:t.feature)==null?void 0:i.geometry)));return e?wt(e):null}function nn(t){return Ut([t])||Ft(t)}function Ut(t=[]){const e=[];if((Array.isArray(t)?t:[t]).forEach(a=>{var b,_;const s=(a==null?void 0:a.properties)||((b=a==null?void 0:a.feature)==null?void 0:b.properties)||{},f=j((a==null?void 0:a.geometry)||((_=a==null?void 0:a.feature)==null?void 0:_.geometry)||s.geometry||s.geom||s.wkt||s.geo||s.the_geom||s.geometryWkt||s.geometry_wkt||s.shape);if(!f){const T=Ft(a);T&&e.push(T);return}const d=[];Xt(f.coordinates,d),e.push(...d.map(wt).filter(Boolean))}),!e.length)return null;const i=e.map(a=>Number(a.x)).filter(Number.isFinite),l=e.map(a=>Number(a.y)).filter(Number.isFinite);return!i.length||!l.length?null:{x:(Math.min(...i)+Math.max(...i))/2,y:Math.min(...l)}}function he(t={}){var a,s;const e=bt(t);if(e)return wt(e);const i=me(f=>$t(f,t)),l=(s=(a=i==null?void 0:i.position)==null?void 0:a.getValue)==null?void 0:s.call(a,window.Cesium.JulianDate.now());return l?toLogicalScreen(window.Cesium.SceneTransforms.wgs84ToWindowCoordinates(o.scene,l)):null}function rn(t={}){var f,d;on();const e=Ki(t.grasslands||t),i=t.highlightTone==="white",l=i?null:{fillColor:"#FF3B30",strokeColor:"#FF3B30",fillAlpha:.1,strokeAlpha:.68,lineWidth:12},a=i?{fillColor:"#F7FFFF",strokeColor:"#F7FFFF",fillAlpha:.025,strokeAlpha:.9,lineWidth:3.8}:{fillColor:"#FF2D2D",strokeColor:"#FFE1E1",fillAlpha:.3,strokeAlpha:1,lineWidth:6.2};t.locateOnly||(e.forEach(b=>{l&&xt(b,{key:"pasture-focus-glow",name:t.name||"牧场高亮"},z,l),xt(b,{key:"pasture-focus",name:t.name||"牧场高亮"},z,a)}),(Array.isArray(t.yakMarks)?t.yakMarks:[]).forEach((b,_)=>{const T=bt(b);T&&xt({type:"Feature",id:b.id||_,properties:at({},b),geometry:{type:"Point",coordinates:T}},{key:"pasture-focus-yak",name:"牦牛识别"},z,{fillColor:"#FFCB45",strokeColor:"#FFF4B8",pointSize:11})}));const s=ye(e);return s&&Yt(s,.9),(d=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||d.call(f),!!e.length}function on(){var t,e;V(z),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Di(){tt()}function Wi(t){O=!!t,O||(k=[]),fe(),p("draw-boundary",{status:O?"drawing":"clear",pointCount:k.length,points:k})}function Hi(t){k.push([t.lng,t.lat]),fe(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function Gi(){k.pop(),fe(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function zi(){if(k.length<3)return null;const t=Re(),e=[...k,k[0]],i={type:"Feature",properties:{source:"drawn"},geometry:{type:"Polygon",coordinates:[e]}};return O=!1,k=[],V(Y),xt(i,{key:"analysis-boundary",name:"分析边界"},Y,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.12,strokeAlpha:1,lineWidth:3}),p("draw-boundary",{status:"complete",pointCount:0,points:[],feature:i}),Wt(t),ke(t),i}function ji(){var t,e;O=!1,k=[],V(Y),V(it),p("draw-boundary",{status:"clear",pointCount:0,points:[]}),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function fe(){if(!o)return;const t=window.Cesium;V(Y),k.forEach(e=>{Y.push(o.entities.add({position:t.Cartesian3.fromDegrees(e[0],e[1],12),point:{pixelSize:10,color:t.Color.fromCssColorString("#24F6C4"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}),k.length>1&&Y.push(o.entities.add({polyline:{positions:lt(k),width:3,material:t.Color.fromCssColorString("#24F6C4"),clampToGround:!0}})),o.scene.requestRender()}function Vi(t={}){var a,s,f,d,b,_,T;const e=((a=t.boundary)==null?void 0:a.type)==="Feature"||(s=t.boundary)!=null&&s.geometry?t.boundary:null,i=t.preserveView===!0||((f=e==null?void 0:e.properties)==null?void 0:f.source)==="drawn",l=i?Re():null;if(i&&((b=(d=o==null?void 0:o.camera)==null?void 0:d.cancelFlight)==null||b.call(d)),V(it),e&&xt(e,{key:"analysis-result-boundary"},it,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.1,lineWidth:3}),(Array.isArray(t.matches)?t.matches:[]).forEach(E=>{const P=(E==null?void 0:E.type)==="Feature"?E:(E==null?void 0:E.feature)||null;P&&xt(P,{key:"analysis-result-feature"},it,{fillColor:"#30DCFF",strokeColor:"#C9FBFF",fillAlpha:.1,lineWidth:2.6})}),i)Wt(l),ke(l);else{const E=[e,...t.matches||[]].filter(Boolean),P=ye(E);P&&Yt(P,.9)}(T=(_=o==null?void 0:o.scene)==null?void 0:_.requestRender)==null||T.call(_)}function sn(t,e=22e3,i=.9){if(!o||!t)return;const l=window.Cesium,a=l.Cartesian3.fromDegrees(t[0],t[1],re());o.camera.flyToBoundingSphere(new l.BoundingSphere(a,1),{offset:Pt(e),duration:i})}function Yt(t,e=.9){if(!o||!t)return;const i=window.Cesium,l=[(Number(t.west)+Number(t.east))/2,(Number(t.south)+Number(t.north))/2];if(!l.every(Number.isFinite))return;const a=Math.max(Math.abs(Number(t.east)-Number(t.west)),Math.abs(Number(t.north)-Number(t.south))),s=Math.max(18e3,Math.min(16e4,a*135e3)),f=i.Cartesian3.fromDegrees(l[0],l[1],re());o.camera.flyToBoundingSphere(new i.BoundingSphere(f,1),{offset:Pt(s),duration:e})}function Ui(t){if(!o||!t)return;const e=t.mapView||(t.cameraPosition?{cameraPosition:t.cameraPosition}:null);if(!e)return;const i=window.Cesium,l=Number.isFinite(Number(e.duration))?Number(e.duration):.9,a=$(e.targetLngLat);if(a){const s=Ae(c.initialZoom),f=Number.isFinite(Number(e.distanceScale))?Number(e.distanceScale):1,d=Math.max(18e3,Math.min(56e4,s*f)),b=Number.isFinite(Number(e.targetHeight))?Number(e.targetHeight):re(),_=Number.isFinite(Number(e.heading))?Number(e.heading):Bn,T=Number.isFinite(Number(e.pitch))?Number(e.pitch):On,E=i.Cartesian3.fromDegrees(a[0],a[1],b);o.camera.flyToBoundingSphere(new i.BoundingSphere(E,1),{offset:new i.HeadingPitchRange(i.Math.toRadians(_),i.Math.toRadians(T),d),duration:l});return}e.bounds&&Yt(e.bounds,l)}function Pt(t){const e=window.Cesium;return new e.HeadingPitchRange(e.Math.toRadians(Bn),e.Math.toRadians(On),t)}function wt(t){if(!o||!t)return null;const e=window.Cesium,i=e.Cartesian3.fromDegrees(t[0],t[1],16);return Ue(e.SceneTransforms.wgs84ToWindowCoordinates(o.scene,i))}function me(t){return[...D,...z].find(e=>e.__hyFeature&&t(e.__hyFeature))||null}function Yi(t){return[...D,...z].filter(e=>e.__hyFeature&&t(e.__hyFeature))}function $i(t,e){if(!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const i=ln(D),l=i.map(s=>{var f;return{entity:s,geometry:j((f=s.__hyFeature)==null?void 0:f.geometry)}}).filter(s=>s.geometry&&un(t,s.geometry)).sort((s,f)=>cn(s.geometry)-cn(f.geometry));if(l.length)return l[0].entity;const a=i.map(s=>{var f;return{entity:s,distance:Qi(j((f=s.__hyFeature)==null?void 0:f.geometry),e)}}).filter(s=>Number.isFinite(s.distance)).sort((s,f)=>s.distance-f.distance)[0];return(a==null?void 0:a.distance)<=18?a.entity:null}function $t(t,e={}){const i=(t==null?void 0:t.properties)||{},l=[e.id,e.key,e.featureId,e.projectId].filter(_=>_!=null&&_!=="").map(String),a=[t.id,i.id,i.key,i.feature_id,i.project_id].filter(_=>_!=null&&_!=="").map(String);if(l.some(_=>a.includes(_)))return!0;const s=[e.name,e.fullName,e.projectName].filter(Boolean).map(String),f=[i.name,i.fullName,i.project_name,i.projectName].filter(Boolean).map(String);if(s.some(_=>f.includes(_)))return!0;const d=bt(e),b=bt(Lt(at({},i),{geometry:t.geometry}));return!!(d&&b&&Math.abs(d[0]-b[0])<2e-5&&Math.abs(d[1]-b[1])<2e-5)}function qi(t={}){return t&&typeof t=="object"?t:{name:t,projectName:t,project_name:t}}function Zi(t,e={}){if($t(t,e))return!0;const i=(t==null?void 0:t.properties)||{},l=qt([e.id,e.key,e.featureId,e.projectId,e.project_id]),a=qt([t==null?void 0:t.id,i.id,i.key,i.feature_id,i.project_id,i.gid]);if(l.some(d=>a.includes(d)))return!0;const s=qt([e.name,e.fullName,e.projectName,e.project_name,e.title]),f=qt([i.name,i.fullName,i.project_name,i.projectName,i.title]);return s.some(d=>f.includes(d))}function qt(t=[]){const e=[];return t.forEach(i=>{if(i==null||i==="")return;const l=String(i).trim();if(!l)return;e.push(l);const a=l.replace(/\s+/g,"");a&&a!==l&&e.push(a)}),Array.from(new Set(e))}function ln(t=[]){const e=new Set;return t.filter(i=>{const l=i==null?void 0:i.__hyFeature;return!l||e.has(l)?!1:(e.add(l),!0)})}function Xi(t=[]){return ln(t).map(e=>e.__hyFeature).filter(Boolean)}function Ji(t=[]){const e=t.filter(l=>{var s;const a=String(((s=j(l==null?void 0:l.geometry))==null?void 0:s.type)||"");return a.includes("Polygon")||a.includes("LineString")}),i=e.filter(l=>{var a;return((a=l==null?void 0:l.properties)==null?void 0:a.feature_role)==="工程范围"});return i.length?i:e}function Ki(t){return(Array.isArray(t)?t:(t==null?void 0:t.grasslands)||(t==null?void 0:t.features)||(t==null?void 0:t.rows)||(t==null?void 0:t.list)||(t?[t]:[])).map((i,l)=>{var s,f;if((i==null?void 0:i.type)==="Feature")return i;const a=j(i==null?void 0:i.geometry)||pe(Oe(i));return a?{type:"Feature",id:(f=(s=i==null?void 0:i.id)!=null?s:i==null?void 0:i.grasslandId)!=null?f:l,properties:at({},i),geometry:a}:null}).filter(Boolean)}function j(t){if(!t)return null;if(t.type==="Feature")return j(t.geometry);if(t.type&&Array.isArray(t.coordinates))return t;if(typeof t=="string"){const e=t.trim();if(!e)return null;if(e.startsWith("{")||e.startsWith("["))try{return j(JSON.parse(e))}catch(i){return null}return pe(e)}return null}function pe(t){const i=String(t||"").trim().replace(/^SRID=\d+;/i,"").match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*(\(.+\))$/i);if(!i)return null;const l=i[1].toUpperCase(),a=i[2];return l==="POINT"?{type:"Point",coordinates:ge(a)}:l==="MULTIPOINT"?{type:"MultiPoint",coordinates:Zt(a).map(ge).filter(Boolean)}:l==="LINESTRING"?{type:"LineString",coordinates:de(a)}:l==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Zt(a).map(de).filter(s=>s.length)}:l==="POLYGON"?{type:"Polygon",coordinates:an(a)}:l==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Zt(a).map(an).filter(s=>s.length)}:null}function ge(t){const e=String(t||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return e.length===2&&e.every(Number.isFinite)?e:null}function de(t){return String(t||"").replace(/^\(+|\)+$/g,"").split(",").map(ge).filter(Boolean)}function an(t){return Zt(t).map(de).filter(e=>e.length>=3)}function Zt(t){const e=String(t||"").trim(),i=e.startsWith("(")&&e.endsWith(")")?e.slice(1,-1):e,l=[];let a=0,s=-1;return Array.from(i).forEach((f,d)=>{f==="("?(a===0&&(s=d),a+=1):f===")"&&(a-=1,a===0&&s>=0&&(l.push(i.slice(s,d+1)),s=-1))}),l.length?l:[i]}function lt(t=[]){const e=window.Cesium;return t.map($).filter(Boolean).map(i=>e.Cartesian3.fromDegrees(i[0],i[1],8))}function $(t){if(!Array.isArray(t)||t.length<2)return null;const e=Number(t[0]),i=Number(t[1]);return Number.isFinite(e)&&Number.isFinite(i)?[e,i]:null}function bt(t={}){const e=j(t.geometry);return(e==null?void 0:e.type)==="Point"?$(e.coordinates):[[t.longitude,t.latitude],[t.lng,t.lat],[t.lon,t.lat],[t.x,t.y],t.point,t.center,t.centroid,t.coordinates].map($).find(Boolean)||null}function un(t,e){return!t||!(e!=null&&e.coordinates)?!1:e.type==="Polygon"?pn(t,e.coordinates):e.type==="MultiPolygon"?e.coordinates.some(i=>pn(t,i)):!1}function cn(t){return t!=null&&t.coordinates?t.type==="Polygon"?hn(t.coordinates):t.type==="MultiPolygon"?t.coordinates.reduce((e,i)=>e+hn(i),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}function hn(t=[]){const e=t[0]||[];if(e.length<3)return Number.POSITIVE_INFINITY;let i=0;for(let l=0;lfn(i,e))):t.type==="LineString"?mn(t.coordinates,e):t.type==="MultiLineString"?Math.min(...t.coordinates.map(i=>mn(i,e))):Number.POSITIVE_INFINITY}function fn(t,e){const i=wt($(t));return i?Math.hypot(Number(i.x)-Number(e.x),Number(i.y)-Number(e.y)):Number.POSITIVE_INFINITY}function mn(t=[],e){if(!Array.isArray(t)||t.length<2)return Number.POSITIVE_INFINITY;let i=Number.POSITIVE_INFINITY;for(let l=1;lgn(t,i))}function gn(t,e=[]){if(e.length<3)return!1;const i=Number(t.lng),l=Number(t.lat);if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=!1;for(let s=0,f=e.length-1;sl!=P>l&&i<(E-_)*(l-T)/(P-T)+_&&(a=!a)}return a}function er(t,e,i,l,a,s){const f=(t-i)*(s-l)-(e-l)*(a-i);return Math.abs(f)>1e-10?!1:(t-i)*(t-a)+(e-l)*(e-s)<=1e-10}function nr(t){if(!t)return null;if(t.type==="Point")return $(t.coordinates);const e=[];return Xt(t.coordinates,e),e.length?[e.reduce((i,l)=>i+l[0],0)/e.length,e.reduce((i,l)=>i+l[1],0)/e.length]:null}function Xt(t,e){const i=$(t);if(i&&!Array.isArray(t[0])){e.push(i);return}Array.isArray(t)&&t.forEach(l=>Xt(l,e))}function ye(t=[]){const e=[];if(t.forEach(f=>{var b;const d=j((f==null?void 0:f.geometry)||((b=f==null?void 0:f.feature)==null?void 0:b.geometry)||f);d&&Xt(d.coordinates,e)}),!e.length)return null;const i=e.map(f=>f[0]),l=e.map(f=>f[1]),a=Math.max(.006,(Math.max(...i)-Math.min(...i))*.18),s=Math.max(.006,(Math.max(...l)-Math.min(...l))*.18);return{west:Math.max(G.west,Math.min(...i)-a),south:Math.max(G.south,Math.min(...l)-s),east:Math.min(G.east,Math.max(...i)+a),north:Math.min(G.north,Math.max(...l)+s)}}function V(t){if(!o){t.length=0;return}t.splice(0).forEach(e=>o.entities.remove(e))}function dn(){B.splice(0).forEach(t=>{var e,i;return(i=(e=o==null?void 0:o.imageryLayers)==null?void 0:e.remove)==null?void 0:i.call(e,t,!0)}),V(D),tt()}function It(){var t,e,i;I+=1,(t=S==null?void 0:S.disconnect)==null||t.call(S),S=null,F==null||F(),F=null,C==null||C(),C=null,(e=x==null?void 0:x.destroy)==null||e.call(x),x=null,dn(),V(ie),V(ct),V(U),V(q),V(z),V(Y),V(it),o&&!((i=o.isDestroyed)!=null&&i.call(o))&&o.destroy(),o=null,v=null,w.value=null,y.value&&y.value.replaceChildren()}function St(t,e=1){const i=Number(t);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):e}function ht(t){return String(t||"").trim().replace(/(镇|乡)$/,"")}function ir(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?String(e):String(Number(e.toFixed(2))):"--"}return n({loadMap:qn,hasMap:Zn,play:Xn,resume:Me,pause:Jn,refreshView:Dt,resetView:Kn,destroyMap:It,highlightFeature:Xe,clearSelectedFeature:tt,clearFloatingOverlays:Di,focusProject:Qe,focusPasture:rn,clearPastureFocus:on,focusTown:Ke,focusYakIndustryPoint:tn,focusVectorFeature:en,getVectorFeatureAnchorScreen:nn,getVectorFeaturesAnchorScreen:Ut,getVectorFeatureScreen:Ft,getYakIndustryPointScreen:he,setBoundaryDrawing:Wi,finishBoundaryDrawing:zi,undoBoundaryPoint:Gi,clearAnalysisBoundary:ji,showAnalysisResult:Vi,canvasMap:w}),(t,e)=>(pr(),gr("div",{ref_key:"containerRef",ref:g,class:"cesium-map"},[dr("div",{ref_key:"viewerRef",ref:y,class:"cesium-map__viewer"},null,512)],512))}},ao=cr(eo,[["__scopeId","data-v-b5154e17"]]);export{lo as C,so as H,ao as M,Ur as a,Yr as g}; diff --git a/docs/assets/index-bc047bb3-1784074877048.js b/docs/assets/index-bc047bb3-1784074877048.js new file mode 100644 index 0000000..f0b652d --- /dev/null +++ b/docs/assets/index-bc047bb3-1784074877048.js @@ -0,0 +1,16 @@ +var Yt=Object.defineProperty,Qt=Object.defineProperties;var Jt=Object.getOwnPropertyDescriptors;var ye=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,dt=Object.prototype.propertyIsEnumerable;var ut=(e,o,a)=>o in e?Yt(e,o,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[o]=a,P=(e,o)=>{for(var a in o||(o={}))ct.call(o,a)&&ut(e,a,o[a]);if(ye)for(var a of ye(o))dt.call(o,a)&&ut(e,a,o[a]);return e},ve=(e,o)=>Qt(e,Jt(o));var mt=(e,o)=>{var a={};for(var l in e)ct.call(e,l)&&o.indexOf(l)<0&&(a[l]=e[l]);if(e!=null&&ye)for(var l of ye(e))o.indexOf(l)<0&&dt.call(e,l)&&(a[l]=e[l]);return a};var X=(e,o,a)=>new Promise((l,s)=>{var c=_=>{try{p(a.next(_))}catch(g){s(g)}},h=_=>{try{p(a.throw(_))}catch(g){s(g)}},p=_=>_.done?l(_.value):Promise.resolve(_.value).then(c,h);p((a=a.apply(e,o)).next())});import{_ as bt,o as m,c as f,a as r,t as E,r as pe,b as x,d as k,w as We,p as ft,i as ht,n as B,u as R,e as we,f as yt,g as A,h as St,j as S,k as vt,l as Zt,m as Xt,q as ea,s as q,v as N,x as Le,F as ge,y as De,z as ta,A as Fe,B as aa,C as na,D as z,E as oa,G as H}from"./index-1784074877048.js";import{g as te}from"./index-e9f36657-1784074877048.js";const gt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1784074877048.svg",import.meta.url).href,pt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1784074877048.svg",import.meta.url).href;/** + * @name: autofit.js + * @author: Larry Zhu + * @version: 3.2.8 + * @description: autofit.js 是迄今为止最易用的自适应工具 + * @license: MIT + */let Ie=null,ne="",ze="",He="",Pe=null,wt=null,$=1,ee=!1;const ke={isAutofitRunning:!1,init(e={},o=!0){o&&console.log("autofit.js is running");const{dw:a=1920,dh:l=1080,el:s=typeof e=="string"?e:"body",resize:c=!0,ignore:h=[],transition:p="none",delay:_=0,limit:g=.1,cssMode:v="scale",allowScroll:w=!1}=e;Ie=s;const u=document.querySelector(s);if(!u){console.error(`autofit: '${s}' is not exist`);return}const b=document.createElement("style"),M=document.createElement("style");b.lang="text/css",M.lang="text/css",b.id="autofit-style",M.id="ignoreStyle",!w&&(b.innerHTML="body {overflow: hidden;}");const V=document.querySelector("body");V.appendChild(b),V.appendChild(M),u.style.height=`${l}px`,u.style.width=`${a}px`,u.style.transformOrigin="0 0",!w&&(u.style.overflow="hidden"),qe(a,l,u,h,g,v),Pe=()=>{clearTimeout(wt),_!=0?wt=setTimeout(()=>{qe(a,l,u,h,g,v),ee&&Oe(ne,He,ze)},_):(qe(a,l,u,h,g,v),ee&&Oe(ne,He,ze))},c&&window.addEventListener("resize",Pe),this.isAutofitRunning=!0,setTimeout(()=>{u.style.transition=`${p}s`})},off(e="body"){try{window.removeEventListener("resize",Pe);const o=document.querySelector("#autofit-style");o&&o.remove();const a=document.querySelector("#ignoreStyle");a&&a.remove();const l=document.querySelector(Ie||e);l&&(l.style.cssText=""),ee&&Tt()}catch(o){console.error("autofit: Failed to remove normally",o)}this.isAutofitRunning=!1,console.log("autofit.js is off")},elRectification:null,scale:$};function Oe(e,o=!0,a=1){if(!ke.isAutofitRunning){console.error("autofit.js:(elRectification): autofit has not been initialized yet");return}Tt(),!e&&console.error(`autofit.js:elRectification bad selector: ${e}`),ne=e,ze=a,He=o;const l=Array.from(document.querySelectorAll(e));if(l.length==0){console.error(`autofit.js:elRectification found no element by selector: "${e}"`);return}for(const s of l){const c=$==1?1:Number($)*Number(a);ee||(s.originalWidth=s.clientWidth,s.originalHeight=s.clientHeight),o?(s.style.width=`${s.originalWidth*c}px`,s.style.height=`${s.originalHeight*c}px`):(s.style.width=`${100*c}%`,s.style.height=`${100*c}%`),s.style.transform=`translateZ(0) scale(${1/Number($)})`,s.style.transformOrigin="0 0"}ee=!0}function Tt(){if(ne){ee=!1;for(const e of Array.from(document.querySelectorAll(ne)))e.style.width="",e.style.height="",e.style.transform=""}}function qe(e,o,a,l,s,c="scale"){const h=document.documentElement.clientHeight,p=document.documentElement.clientWidth;$=p/hs?$:1,ke.scale=+$;const _=Math.round(h/Number($)),g=Math.round(p/Number($));a.style.height=`${_}px`,a.style.width=`${g}px`,c==="zoom"?a.style.zoom=`${$}`:a.style.transform=`translateZ(0) scale(${$})`;const v=document.querySelector("#ignoreStyle");v.innerHTML="";for(const w of l){const u=w;let b=u.el||u.dom;if(typeof u=="string"&&(b=u),!b||typeof b=="object"&&!Object.keys(b).length){console.error(`autofit: found invalid or empty selector/object: ${b}`);continue}const M=u.scale?u.scale:1/Number($),V=M!=$&&u.fontSize,I=M!=$&&u.width,U=M!=$&&u.height;v.innerHTML+=` +${b} { + transform: scale(${M})!important; + transform-origin: 0 0; + ${I?`width: ${I}!important;`:""} + ${U?`height: ${U}!important;`:""} + }`,V&&(v.innerHTML+=` +${b} div ,${b} span,${b} a,${b} * { + font-size: ${V}px; + }`)}}ke.elRectification=Oe;const ia={name:"SvglineAnimation",props:{width:{type:Number,default:135},height:{type:Number,default:150},path:{type:String,default:"M0 72.5H682L732 0.5H3082"},color:{type:String,default:"#0091FF"},duration:{type:Number,default:3},length:{type:Number,default:100},begin:{type:Number,default:0},dir:{type:Array,default:()=>[0,1]},strokeWidth:{type:Number,default:4}},data(){let e=1;return{maskId:"svgline-"+e,radialGradientId:"radialGradient-"+e}},mounted(){let e=this._.uid;this.maskId="svgline-"+e,this.radialGradientId="radialGradient-"+e}},la={class:"svg-line-animation"},sa=["viewBox"],ra=["id"],ua=["stop-opacity"],ca=["stop-opacity"],da=["id"],ma=["r","fill"],fa=["begin","dur","path","keyPoints"],ha=["d","stroke","stroke-width","mask"];function ya(e,o,a,l,s,c){return m(),f("div",la,[(m(),f("svg",{width:"100%",height:"100%",viewBox:`0 0 ${a.width} ${a.height}`,fill:"none",xmlns:"http://www.w3.org/2000/svg"},[r("defs",null,[r("radialGradient",{id:s.radialGradientId,cx:"50%",cy:"50%",fx:"100%",fy:"50%",r:"50%"},[r("stop",{offset:"0%","stop-color":"#fff","stop-opacity":a.dir[1]},null,8,ua),r("stop",{offset:"100%","stop-color":"#fff","stop-opacity":a.dir[0]},null,8,ca)],8,ra),r("mask",{id:s.maskId},[r("circle",{r:a.length,cx:"0",cy:"0",fill:`url(#${s.radialGradientId})`},[r("animateMotion",{begin:`${a.begin}s`,dur:`${a.duration}s`,path:a.path,rotate:"auto",keyPoints:`${a.dir[0]};${a.dir[1]}`,keyTimes:"0;1",repeatCount:"indefinite"},null,8,fa)],8,ma)],8,da)]),r("path",{class:"path-line",d:a.path,stroke:a.color,"stroke-width":a.strokeWidth,mask:`url(#${s.maskId})`},null,8,ha)],8,sa))])}const _e=bt(ia,[["render",ya]]);const va={class:"m-header"},ga={class:"m-header-wrap"},pa={class:"m-header-title"},wa={class:"m-header-subtext"},_a={class:"m-header-left",style:{color:"#fff"}},ka={class:"m-header-right"},ba={class:"m-header-line"},Sa={__name:"index",props:{title:{type:String,default:"红原县数字畜牧业监管平台"},subText:{type:String,default:"Hongyuan Digital Animal Husbandry Supervision Platform"}},setup(e){return(o,a)=>(m(),f("div",va,[r("div",ga,[r("div",pa,E(e.title),1),r("div",wa,E(e.subText),1)]),r("div",_a,[pe(o.$slots,"left")]),r("div",ka,[pe(o.$slots,"right")]),r("div",ba,[x(_e,{class:"m-header-line-left",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"}),x(_e,{class:"m-header-line-right",width:961,height:79,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:100,path:"M1 1.52783L535 25.6808C552.73 26.5835 571.454 31.3851 588.834 39.2194C593.758 41.4385 598.692 43.7289 603.643 46.0273C633.567 59.9182 664.121 74.1016 696.754 74.6262C696.765 74.6264 696.775 74.6265 696.786 74.6267C821.602 76.5993 879.336 78 961 78"})])]))}};const Ta={class:"m-menu"},$a={__name:"index",props:{defaultActive:{type:[String,Number],default:""}},emits:["select"],setup(e,{emit:o}){const a=o,l=e,s=k(l.defaultActive);return ft("updateActive",h=>{h!==s.value&&(s.value=h,a("select",h))}),ft("activeIndex",s),We(()=>l.defaultActive,h=>{h!==s.value&&(s.value=h)}),(h,p)=>(m(),f("div",Ta,[pe(h.$slots,"default")]))}},xa=["aria-current","onKeydown"],Ea={__name:"index",props:{index:{type:[String,Number],required:!0}},setup(e){const o=e,a=ht("updateActive"),l=ht("activeIndex"),s=()=>{a(o.index)};return(c,h)=>(m(),f("div",{class:B(["m-menu-item",{"is-active":e.index===R(l)}]),role:"button",tabindex:"0","aria-current":e.index===R(l)?"page":void 0,onClick:s,onKeydown:[we(yt(s,["prevent"]),["enter"]),we(yt(s,["prevent"]),["space"])]},[pe(c.$slots,"default")],42,xa))}};let _t=0;const kt="webkit moz ms o".split(" ");let D,F;const Ma=typeof window=="undefined";if(Ma)D=function(){},F=function(){};else{D=window.requestAnimationFrame,F=window.cancelAnimationFrame;let e;for(let o=0;o{o(a+l)},l);return _t=a+l,s},F=function(o){window.clearTimeout(o)})}const Va={props:{startVal:{type:Number,required:!1,default:0},endVal:{type:Number,required:!1,default:2017},duration:{type:Number,required:!1,default:3e3},autoplay:{type:Boolean,required:!1,default:!0},decimals:{type:Number,required:!1,default:0,validator(e){return e>=0}},decimal:{type:String,required:!1,default:"."},separator:{type:String,required:!1,default:","},prefix:{type:String,required:!1,default:""},suffix:{type:String,required:!1,default:""},useEasing:{type:Boolean,required:!1,default:!0},easingFn:{type:Function,default(e,o,a,l){return a*(-Math.pow(2,-10*e/l)+1)*1024/1023+o}}},data(){return{localStartVal:this.startVal,displayValue:this.formatNumber(this.startVal),printVal:null,paused:!1,localDuration:this.duration,startTime:null,timestamp:null,remaining:null,rAF:null}},computed:{countDown(){return this.startVal>this.endVal}},watch:{startVal(){this.autoplay&&this.start()},endVal(){this.autoplay&&this.start()}},mounted(){this.autoplay&&this.start(),this.$emit("mountedCallback")},methods:{start(){this.localStartVal=this.startVal,this.startTime=null,this.localDuration=this.duration,this.paused=!1,this.rAF=D(this.count)},pauseResume(){this.paused?(this.resume(),this.paused=!1):(this.pause(),this.paused=!0)},pause(){F(this.rAF)},resume(){this.startTime=null,this.localDuration=+this.remaining,this.localStartVal=+this.printVal,D(this.count)},reset(){this.startTime=null,F(this.rAF),this.displayValue=this.formatNumber(this.startVal)},count(e){this.startTime||(this.startTime=e),this.timestamp=e;const o=e-this.startTime;this.remaining=this.localDuration-o,this.useEasing?this.countDown?this.printVal=this.localStartVal-this.easingFn(o,0,this.localStartVal-this.endVal,this.localDuration):this.printVal=this.easingFn(o,this.localStartVal,this.endVal-this.localStartVal,this.localDuration):this.countDown?this.printVal=this.localStartVal-(this.localStartVal-this.endVal)*(o/this.localDuration):this.printVal=this.localStartVal+(this.endVal-this.localStartVal)*(o/this.localDuration),this.countDown?this.printVal=this.printValthis.endVal?this.endVal:this.printVal,this.displayValue=this.formatNumber(this.printVal),o1?this.decimal+o[1]:"",s=/(\d+)(\d{3})/;if(this.separator&&!this.isNumber(this.separator))for(;s.test(a);)a=a.replace(s,"$1"+this.separator+"$2");return this.prefix+a+l+this.suffix}},destroyed(){F(this.rAF)}};function Aa(e,o,a,l,s,c){return m(),f("span",null,E(s.displayValue),1)}const $t=bt(Va,[["render",Aa]]);typeof window!="undefined"&&window.Vue&&window.Vue.component("count-to",$t);const Ra={class:"count-card-left"},Ca={class:"count-card-title"},La={class:"title-zh"},Da={key:0,class:"title-en"},Fa={class:"count-card-right"},Ia={class:"unit"},Pa={__name:"index",props:{info:{type:Object,default:()=>({icon:"xiaoshoujine",zh:"2023年销售金额",en:"Sales amount in 2023",value:9500,unit:"万元",decimals:0})}},setup(e){const o=e,a=k(!0),l=k(!1),s=k(0);let c=null;const h=A(()=>o.info.duration||1800);We(()=>[o.info.value,o.info.zh],()=>{c&&window.clearTimeout(c),a.value=!0,l.value=!1,s.value+=1},{immediate:!0});function p(v){return v.toUpperCase()}function _(){a.value=!0,l.value=!1}function g(){a.value=!1,l.value=!0,c&&window.clearTimeout(c),c=window.setTimeout(()=>{l.value=!1},900)}return St(()=>{c&&window.clearTimeout(c)}),(v,w)=>(m(),f("div",{class:B(["count-card",{"is-counting":a.value,"is-settled":l.value}])},[r("div",Ra,[r("div",{class:B(["count-card-icon","icon-"+e.info.icon])},null,2),r("div",Ca,[r("div",La,E(e.info.zh),1),e.info.en?(m(),f("div",Da,E(p(e.info.en)),1)):S("",!0)])]),r("div",Fa,[(m(),f("div",{class:"value",key:s.value},[x(R($t),{startVal:0,endVal:e.info.value,decimals:e.info.decimals,duration:h.value,separator:"",autoplay:!0,onMountedCallback:_,onCallback:g},null,8,["endVal","decimals","duration"])])),r("div",Ia,E(e.info.unit),1)])],2))}},ae=[{key:"home",label:"首页",bottomLabel:"核心指标",status:"ready"},{key:"forest-grass-wet",label:"林草湿资源",bottomLabel:"林草湿",status:"ready"},{key:"ecological-protection",label:"生态保护",bottomLabel:"生态保护",status:"ready"},{key:"yak-management",label:"牦牛管理",bottomLabel:"牦牛管理",status:"ready"},{key:"pasture-management",label:"牧场管理",bottomLabel:"牧场管理",status:"ready"},{key:"yak-industry-chain",label:"牦牛产业全链",bottomLabel:"产业全链",status:"ready"},{key:"smart-management",label:"智慧管理",bottomLabel:"智慧管理",status:"ready"},{key:"grass-livestock-balance",label:"草畜平衡",bottomLabel:"草畜平衡",status:"ready"}];function qa(e){return ae.find(o=>o.key===e)||ae[1]}const Ne=[{key:"ecological-redline",label:"生态保护红线",bottomLabel:"生态保护红线"},{key:"natural-protected-area",label:"自然保护地",bottomLabel:"自然保护地"},{key:"national-park",label:"若尔盖国家公园",bottomLabel:"若尔盖国家公园"},{key:"restoration",label:"生态修复工程",bottomLabel:"生态修复工程"},{key:"engineering-analysis",label:"生态工程分析",bottomLabel:"生态工程分析"}],Na=12e3;function za(e,o={}){const a=new URLSearchParams;Object.entries(o).forEach(([s,c])=>{c!=null&&c!==""&&a.append(s,c)});const l=a.toString();return l?`${e}${e.includes("?")?"&":"?"}${l}`:e}function Ha(a){return X(this,arguments,function*(e,o={}){const g=o,{params:l,timeout:s=Na}=g,c=mt(g,["params","timeout"]),h=new AbortController;let p=!1;const _=window.setTimeout(()=>{p=!0,h.abort()},s);try{const v=yield fetch(za(e,l),ve(P({credentials:"include"},c),{signal:h.signal,headers:P({Accept:"application/json"},c.headers||{})}));if(!v.ok){const u=new Error(v.status===401?"用户未登录或授权已过期。":`HTTP ${v.status}`);throw u.code=`HTTP_${v.status}`,u.status=v.status,v.status===401&&vt(),u}const w=yield v.json();if((w==null?void 0:w.code)===401||(w==null?void 0:w.code)==="401"){const u=new Error((w==null?void 0:w.msg)||"用户未登录或授权已过期。");throw u.code="HTTP_401",u.status=401,vt(),u}return w}catch(v){if(h.signal.aborted||(v==null?void 0:v.name)==="AbortError"||/aborted/i.test((v==null?void 0:v.message)||"")){const u=new Error(p?"服务响应超时,请稍后再试。":"请求已取消,请重新发送。");throw u.code=p?"REQUEST_TIMEOUT":"REQUEST_ABORTED",u}throw v}finally{window.clearTimeout(_)}})}function Oa(e){return(e==null?void 0:e.data)!==void 0?e.data:(e==null?void 0:e.result)!==void 0?e.result:e}const Wa="/jsyApi",ja={}.VITE_AMAP_WEATHER_KEY||"b72b3e3b2023760dae2cdf2e00561812",Ka="513233";function Ba(e){if((e==null?void 0:e.success)===!1||(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"天气接口请求失败");return Oa(e)}function xt(e){var h,p,_,g;const o=(p=(h=e==null?void 0:e.data)!=null?h:e==null?void 0:e.result)!=null?p:e,a=Array.isArray(o)?o[0]:Array.isArray(o==null?void 0:o.rows)?o.rows[0]:Array.isArray(o==null?void 0:o.list)?o.list[0]:o;if(!a||typeof a!="object")return null;const l=(...v)=>v.find(w=>w!=null&&w!==""),s=l(a.temp,a.temperature,a.temperature_float,a.tempDay,a.temperatureDay),c=l(a.humidity,a.humidity_float,a.pop,a.relativeHumidity);return{condition:a.conditionDay||a.condition||a.weather||a.weatherText||"",temperature:s==null||s===""?"--":s,humidity:c==null||c===""?"--":c,windDirection:a.windDir||a.windDirection||"",windLevel:a.windLevel||a.windScale||a.windPower||"",icon:(g=(_=a.icon)!=null?_:a.weatherIcon)!=null?g:null}}function Ua(e){return X(this,null,function*(){const o=yield Ha(`${Wa}${e}`,{timeout:8e3});return xt(Ba(o))})}function Ga(){return new Promise((e,o)=>{const a=`__hongyuanWeather${Date.now()}${Math.random().toString(16).slice(2)}`,l=document.createElement("script"),s=()=>{window.clearTimeout(c),l.remove(),delete window[a]},c=window.setTimeout(()=>{s(),o(new Error("高德天气接口响应超时"))},8e3);window[a]=p=>{var g;const _=(g=p==null?void 0:p.lives)==null?void 0:g[0];if(s(),!_){o(new Error((p==null?void 0:p.info)||"高德天气暂无数据"));return}e(xt(_))},l.onerror=()=>{s(),o(new Error("高德天气接口加载失败"))};const h=new URLSearchParams({city:Ka,key:ja,extensions:"base",output:"JSON",callback:a});l.src=`https://restapi.amap.com/v3/weather/weatherInfo?${h}`,document.head.appendChild(l)})}function Ya(){return X(this,null,function*(){const e=["/api/home/realTimeWeather","/api/home/weatherForecast"];let o=null;for(const a of e)try{const l=yield Ua(a);if(l)return l}catch(l){o=l}try{const a=yield Ga();if(a)return a}catch(a){o=a}throw o||new Error("天气数据暂不可用")})}const Qa={key:0,class:"platform-module-pane"},Ja={key:1,class:"platform-module-pane"},Za={key:2,class:"platform-module-pane"},Xa={key:3,class:"platform-module-pane"},en={key:4,class:"platform-module-pane"},tn={key:5,class:"platform-module-pane"},an={key:6,class:"platform-module-pane"},nn={key:7,class:"platform-module-pane"},on={class:"large-screen-wrap"},ln={class:"m-header-tools"},sn=["src","alt"],rn={key:1,class:"platform-weather__fallback-icon","aria-hidden":"true"},un={class:"platform-weather__copy"},cn={class:"platform-weather__primary"},dn={key:0},mn={key:0},fn={key:0},hn={key:1,"aria-hidden":"true"},yn={key:2},vn={class:"platform-datetime","aria-label":"当前日期和时间"},gn={class:"top-menu"},pn={key:0,class:"top-menu-mid-space"},wn={key:1,class:"platform-map-tools","aria-label":"地图工具"},_n=["title","aria-label"],kn={key:2,class:"module-coming"},bn={class:"module-coming-title"},Sn={key:3,class:"bottom-tray"},Tn={class:"bottom-menu"},$n=["onClick"],xn={key:8,class:"loading platform-loading"},En={class:"loading-progress"},Mn={class:"value"},Vn=2,An=650,Rn={__name:"index",setup(e){const o=z(()=>H(()=>import("./index-7362f308-1784074877048.js"),["./index-7362f308-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./live-scene-1-69301bfb-1784074877048.js","./index.esm.min-469b3f53-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-148a2898-balabala-1784074877048.css","./index-b4ec1ae2-1784074877048.js","./townshipBoundaries-1b068bef-1784074877048.js","./index-cc777d69-balabala-1784074877048.css","./screen2Standard-9c6af3a2-1784074877048.js","./index-e9f36657-1784074877048.js","./screen2Standard-cdb21878-balabala-1784074877048.css","./data-35cd5cb4-1784074877048.js","./TopicSwitcher-3ee7ffcb-1784074877048.js","./TopicSwitcher-aa157193-balabala-1784074877048.css","./livestockData-36ec0ae2-1784074877048.js","./FeatureInfoPanel-8e9f606e-1784074877048.js","./FeatureInfoPanel-84703f43-balabala-1784074877048.css","./openApi-7e2310e1-1784074877048.js","./geoserver-a50e4f20-1784074877048.js","./featurePanelLayout-dc118942-1784074877048.js","./yakApi-16bd23bc-1784074877048.js","./chartTheme-9a56b109-1784074877048.js","./data-5c83c66b-1784074877048.js","./data-d4fc629d-1784074877048.js","./index-53046bee-balabala-1784074877048.css"],import.meta.url)),a=z(()=>H(()=>import("./index-6bbec7d3-1784074877048.js"),["./index-6bbec7d3-1784074877048.js","./index-e9f36657-1784074877048.js","./assets-34f9bc99-1784074877048.js","./screen2Standard-9c6af3a2-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./screen2Standard-cdb21878-balabala-1784074877048.css","./TopicSwitcher-3ee7ffcb-1784074877048.js","./townshipBoundaries-1b068bef-1784074877048.js","./TopicSwitcher-aa157193-balabala-1784074877048.css","./index-b4ec1ae2-1784074877048.js","./index-cc777d69-balabala-1784074877048.css","./openApi-7e2310e1-1784074877048.js","./geoserver-a50e4f20-1784074877048.js","./featurePanelLayout-dc118942-1784074877048.js","./LayerPanel-9c0c5952-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-148a2898-balabala-1784074877048.css","./LayerPanel-7a55b2bc-balabala-1784074877048.css","./FeatureInfoPanel-8e9f606e-1784074877048.js","./FeatureInfoPanel-84703f43-balabala-1784074877048.css","./index-6e1f3341-balabala-1784074877048.css","./layout-b708cd9c-balabala-1784074877048.css"],import.meta.url)),l=z(()=>H(()=>import("./index-7950c07e-1784074877048.js"),["./index-7950c07e-1784074877048.js","./index-e9f36657-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./index-148a2898-balabala-1784074877048.css","./townshipBoundaries-1b068bef-1784074877048.js","./featurePanelLayout-dc118942-1784074877048.js","./assets-34f9bc99-1784074877048.js","./screen2Standard-9c6af3a2-1784074877048.js","./screen2Standard-cdb21878-balabala-1784074877048.css","./TopicSwitcher-3ee7ffcb-1784074877048.js","./TopicSwitcher-aa157193-balabala-1784074877048.css","./index-b4ec1ae2-1784074877048.js","./index-cc777d69-balabala-1784074877048.css","./LayerPanel-9c0c5952-1784074877048.js","./LayerPanel-7a55b2bc-balabala-1784074877048.css","./FeatureInfoPanel-8e9f606e-1784074877048.js","./FeatureInfoPanel-84703f43-balabala-1784074877048.css","./data-c66f5cee-1784074877048.js","./data-5c83c66b-1784074877048.js","./index-7c335907-balabala-1784074877048.css","./layout-b708cd9c-balabala-1784074877048.css"],import.meta.url)),s=z(()=>H(()=>import("./index-2fb6adee-1784074877048.js"),["./index-2fb6adee-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./index-148a2898-balabala-1784074877048.css","./data-5c83c66b-1784074877048.js","./index-e9f36657-1784074877048.js","./index-c36df85d-balabala-1784074877048.css"],import.meta.url)),c=z(()=>H(()=>import("./index-1e2d518b-1784074877048.js"),["./index-1e2d518b-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./index.esm.min-469b3f53-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-148a2898-balabala-1784074877048.css","./screen2Standard-9c6af3a2-1784074877048.js","./index-e9f36657-1784074877048.js","./screen2Standard-cdb21878-balabala-1784074877048.css","./data-35cd5cb4-1784074877048.js","./TopicSwitcher-3ee7ffcb-1784074877048.js","./townshipBoundaries-1b068bef-1784074877048.js","./TopicSwitcher-aa157193-balabala-1784074877048.css","./livestockData-36ec0ae2-1784074877048.js","./geoserver-a50e4f20-1784074877048.js","./LayerPanel-9c0c5952-1784074877048.js","./LayerPanel-7a55b2bc-balabala-1784074877048.css","./assets-34f9bc99-1784074877048.js","./index-b4ec1ae2-1784074877048.js","./index-cc777d69-balabala-1784074877048.css","./yakApi-16bd23bc-1784074877048.js","./index-2bde92c2-balabala-1784074877048.css"],import.meta.url)),h=z(()=>H(()=>import("./index-3536e98d-1784074877048.js"),["./index-3536e98d-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./live-scene-1-69301bfb-1784074877048.js","./index-1f5d6021-1784074877048.js","./index-148a2898-balabala-1784074877048.css","./index-b4ec1ae2-1784074877048.js","./townshipBoundaries-1b068bef-1784074877048.js","./index-cc777d69-balabala-1784074877048.css","./LayerPanel-9c0c5952-1784074877048.js","./LayerPanel-7a55b2bc-balabala-1784074877048.css","./FeatureInfoPanel-8e9f606e-1784074877048.js","./screen2Standard-9c6af3a2-1784074877048.js","./index-e9f36657-1784074877048.js","./screen2Standard-cdb21878-balabala-1784074877048.css","./FeatureInfoPanel-84703f43-balabala-1784074877048.css","./featurePanelLayout-dc118942-1784074877048.js","./data-202a0afb-1784074877048.js","./livestockData-36ec0ae2-1784074877048.js","./index-41d168c2-balabala-1784074877048.css"],import.meta.url)),p=z(()=>H(()=>import("./index-65b45d6f-1784074877048.js"),["./index-65b45d6f-1784074877048.js","./index.esm.min-469b3f53-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./index-1f5d6021-1784074877048.js","./index-148a2898-balabala-1784074877048.css","./index-b4ec1ae2-1784074877048.js","./townshipBoundaries-1b068bef-1784074877048.js","./index-cc777d69-balabala-1784074877048.css","./FeatureInfoPanel-8e9f606e-1784074877048.js","./screen2Standard-9c6af3a2-1784074877048.js","./index-e9f36657-1784074877048.js","./screen2Standard-cdb21878-balabala-1784074877048.css","./FeatureInfoPanel-84703f43-balabala-1784074877048.css","./LayerPanel-9c0c5952-1784074877048.js","./LayerPanel-7a55b2bc-balabala-1784074877048.css","./TopicSwitcher-3ee7ffcb-1784074877048.js","./TopicSwitcher-aa157193-balabala-1784074877048.css","./assets-34f9bc99-1784074877048.js","./chartTheme-9a56b109-1784074877048.js","./data-631f012a-1784074877048.js","./livestockData-36ec0ae2-1784074877048.js","./index-5afedc21-balabala-1784074877048.css"],import.meta.url)),_=z(()=>H(()=>import("./index-514021a4-1784074877048.js"),["./index-514021a4-1784074877048.js","./index-1784074877048.js","./index-95e82452-balabala-1784074877048.css","./yakApi-16bd23bc-1784074877048.js","./data-d4fc629d-1784074877048.js","./livestockData-36ec0ae2-1784074877048.js","./data-5c83c66b-1784074877048.js","./data-202a0afb-1784074877048.js","./data-c66f5cee-1784074877048.js","./townshipBoundaries-1b068bef-1784074877048.js","./data-631f012a-1784074877048.js","./index-e9f36657-1784074877048.js","./index-089a3dd0-balabala-1784074877048.css"],import.meta.url)),g=Zt(),v=Xt(),w=re(g.query.module),u=k(w),b=k(w==="ecological-protection"?at(g.query.view):"ecological-redline"),M=k(w==="yak-management"?Re(g.query.view):"structure"),V=k({[w]:!0});let I=[w];const U=k({}),G=k(!0),Y=k(0),be=k(null),Se=k(null),je=k(null),Ke=k(null),Be=k(null),Ue=k(null),Ge=k(null),Ye=k(!1),Qe=k(""),Je=k(""),C=k({condition:"",temperature:"--",humidity:"--",windDirection:"",windLevel:"",icon:null}),Q=k(!1),Te=k(!1);let J=null,$e=null,xe=null,oe=!1,ie=null;const Et=Date.now(),O={progress:0},Mt=new Set(["home","grass-livestock-balance","pasture-management","yak-industry-chain"]),W=["town","area","wetland","yield","rate","stack","leaf","risk","grass-basic","grass-general","forest","park","project","length","device","certificate"],Vt=new Set(W),d=A(()=>qa(u.value)),At=A(()=>`/images/weather/W${C.value.icon}.png`),Rt=A(()=>Q.value&&C.value.icon!==null&&!Te.value),Ee=A(()=>!["","--",null,void 0].includes(C.value.humidity)),le=A(()=>{const t=String(C.value.windDirection||"").trim(),n=String(C.value.windLevel||"").trim();return!t&&!n?"":`${t}${t&&n?" ":""}${n?`${n}级`:""}`}),Ze=A(()=>Ye.value?"退出":"全屏"),Ct=A(()=>!["smart-management","grass-livestock-balance"].includes(d.value.key)),Lt=A(()=>j.value.length===5&&(d.value.key==="home"||d.value.key==="ecological-protection"&&Me.value==="national-park")),Dt=A(()=>u.value==="ecological-protection"?Ne:ae),Me=A(()=>u.value==="ecological-protection"?b.value:u.value),j=A(()=>{const t=U.value[u.value];return Array.isArray(t)||t!=null&&t.length?t:ot([{zh:"草地面积",en:"",value:756.37,unit:"万亩",decimals:2},{zh:"林地总面积",en:"",value:177.92,unit:"万亩",decimals:2},{zh:"湿地面积",en:"",value:291.82,unit:"万亩",decimals:2}])});ea(()=>{Xe(),et(),$e=window.setInterval(Xe,1e3),xe=window.setInterval(et,30*60*1e3),J=ke.init({dh:1080,dw:1920,el:"#large-screen",resize:!0,cssMode:"zoom"}),jt(),fe(),Ce(),Nt(u.value)?zt(u.value):(oe=!0,Y.value=100,G.value=!1)}),St(()=>{var t;$e&&window.clearInterval($e),xe&&window.clearInterval(xe),de(),(t=J==null?void 0:J.off)==null||t.call(J,"#large-screen"),Kt(),te.killTweensOf(O)});function Xe(){const t=new Date,n=T=>String(T).padStart(2,"0"),i=["周日","周一","周二","周三","周四","周五","周六"];Qe.value=`${t.getFullYear()}.${n(t.getMonth()+1)}.${n(t.getDate())} ${i[t.getDay()]}`,Je.value=`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}`}function et(){return X(this,null,function*(){try{C.value=yield Ya(),Q.value=!0,Te.value=!1}catch(t){Q.value=!1,console.warn("[platform] weather unavailable",t)}})}function Ft(){Te.value=!0}function Ve(t,n={}){const i=re(t),T=i==="home"&&!n.fromRoute;if(i==="yak-management"&&!n.fromRoute&&(M.value="structure"),i===u.value){T&&me(),se(i);return}u.value=i,Wt(i),se(i),T&&me(),Fe(Ce)}function Ae(t){re(t)==="home"&&u.value==="home"&&me()}function It(t){if(t!=null&&t.key){if(u.value==="ecological-protection"){tt(t.key);return}Ve(t.key)}}function tt(t){const n=Ne.some(i=>i.key===t)?t:"ecological-redline";n===b.value&&u.value==="ecological-protection"||(b.value=n,u.value==="ecological-protection"&&se("ecological-protection"),Fe(Ce))}function Pt(t){const n=Re(t);n!==M.value&&(M.value=n,u.value==="yak-management"&&se("yak-management"))}We(()=>[g.query.module,g.query.view],([t,n])=>{const i=re(t);i==="ecological-protection"&&(b.value=at(n)),i==="yak-management"&&(M.value=Re(n)),i!==u.value&&Ve(i,{fromRoute:!0})});function se(t=u.value){const n=ve(P({},g.query),{module:t});t==="yak-management"?n.view=M.value:t==="ecological-protection"?n.view=b.value:delete n.view;const i=g.query||{},T=String(i.module||"")===String(n.module||"")&&String(i.view||"")===String(n.view||"");g.path==="/platform"&&T||v.replace({path:"/platform",query:n}).catch(()=>{})}function re(t){const n=Array.isArray(t)?t[0]:t;return ae.some(i=>i.key===n)?n:"home"}function Re(t){const n=Array.isArray(t)?t[0]:t;return["structure","forecast","epidemic","trade"].includes(n)?n:"structure"}function at(t){const n=Array.isArray(t)?t[0]:t;return Ne.some(i=>i.key===n)?n:"ecological-redline"}function K(t){const n=t.moduleKey||(t.topicKey?"forest-grass-wet":u.value);U.value=ve(P({},U.value),{[n]:ot(t.items||[])})}function ue(t={}){const n=typeof t=="number"?t:t.progress;qt(n)}function ce(){de(),te.killTweensOf(O),O.progress=100,Y.value=100;const t=Date.now()-Et,n=Math.max(80,An-t);window.setTimeout(nt,n)}function qt(t){if(!G.value)return;const n=Math.max(0,Math.min(100,Math.floor(Number(t)||0)));n{Y.value=Math.floor(O.progress)}})}function nt(){if(!G.value||oe)return;de(),oe=!0;const t=te.timeline({onComplete:()=>{G.value=!1}});t.to(".platform-loading .loading-text span",{y:"200%",opacity:0,ease:"power4.inOut",duration:.45,stagger:.035}),t.to(".platform-loading .loading-progress",{opacity:0,ease:"power4.inOut",duration:.3},"<"),t.to(".platform-loading",{opacity:0,ease:"power4.inOut",duration:.28},"-=0.12")}function Nt(t){return Mt.has(t)}function zt(t){de();const n=t==="home"?12e3:8e3;ie=window.setTimeout(()=>{!G.value||oe||(te.killTweensOf(O),O.progress=100,Y.value=100,window.setTimeout(nt,120))},n)}function de(){ie&&(window.clearTimeout(ie),ie=null)}function ot(t=[]){const n=new Set;return t.slice(0,10).map((i,T)=>{var Z;const y=Number(i.value)||0,L={zh:i.zh||i.name||`指标${T+1}`,en:i.en||"",value:y,unit:i.unit||"",decimals:(Z=i.decimals)!=null?Z:Number.isInteger(y)?0:2},he=Ht(P(P({},i),L),T,n);return n.add(he),P({icon:he},L)})}function Ht(t={},n=0,i=new Set){const y=Ot(t,n).find(L=>Vt.has(L)&&!i.has(L));return y||W.find(L=>!i.has(L))||W[n%W.length]}function Ot(t={},n=0){const i=`${t.zh||t.name||""}${t.unit||""}`,T=[],y=(...he)=>{he.forEach(Z=>{Z&&!T.includes(Z)&&T.push(Z)})};y(t.icon),/风险|预警|告警/.test(i)&&y("risk","rate"),/模型|修正|共识|预测|变化|净/.test(i)&&y("rate","stack"),/率|占比|比例|超载/.test(i)&&y("rate","project"),/生态牧场|家庭生态/.test(i)&&y("leaf","town"),/出证|证书|证/.test(i)&&y("certificate","project"),/交易|销售/.test(i)&&y("yield","certificate"),/流通|出栏|流出/.test(i)&&y("length","certificate","project"),/运输|车辆|无人机|识别|设备|监测/.test(i)&&y("device","length"),/工程长度|长度|公里/.test(i)&&y("length","project"),/修复项目|项目|工程|治理/.test(i)&&y("project","length"),/国家公园|保护范围|保护区|划定/.test(i)&&y("park","leaf"),/产量|库容|鲜草|饲草|收入|产值|繁殖|补充/.test(i)&&y("yield","leaf"),/湿地/.test(i)&&y("wetland","leaf"),/基本草原/.test(i)&&y("grass-basic","area"),/一般草原/.test(i)&&y("grass-general","area"),/林地|森林|公益林/.test(i)&&y("forest","leaf"),/面积|草地|草原|草场|万亩|亩/.test(i)&&y("area","grass-basic","grass-general"),/牦牛|存栏|头|结构/.test(i)&&y("stack","yield","leaf"),/乡镇|镇域|村|点位|主体|牧户|农户|联户|户|个|覆盖/.test(i)&&y("town","project"),/生态|林草/.test(i)&&y("leaf","wetland");const L=n%W.length;return y(...W.slice(L),...W.slice(0,L)),T}function Wt(t){["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(t)&&(I=I.filter(n=>n!==t),I.push(t),I=I.slice(-Vn),V.value=Object.fromEntries(I.map(n=>[n,!0])))}function Ce(){window.scrollTo(0,0),document.documentElement.scrollTop=0,document.body.scrollTop=0;const t=document.querySelector("#app");t&&(t.scrollTop=0)}function me(t=4){Fe(()=>{const n=Se.value;if(n!=null&&n.showDefaultThreeMap){n.showDefaultThreeMap();return}t>0&&window.setTimeout(()=>me(t-1),80)})}const it=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","MSFullscreenChange"];function lt(){return typeof document=="undefined"?null:document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||null}function fe(){var i;const t=lt(),n=be.value;Ye.value=!!(n&&t&&(t===n||n.contains(t)||(i=t.contains)!=null&&i.call(t,n)))}function jt(){typeof document!="undefined"&&it.forEach(t=>document.addEventListener(t,fe))}function Kt(){typeof document!="undefined"&&it.forEach(t=>document.removeEventListener(t,fe))}function st(){var t,n;(n=(t=rt())==null?void 0:t.refreshMapView)==null||n.call(t)}function Bt(){return X(this,null,function*(){if(typeof document=="undefined")return;const t=lt();try{if(t){const n=document.exitFullscreen||document.webkitExitFullscreen||document.mozCancelFullScreen||document.msExitFullscreen;yield n==null?void 0:n.call(document)}else{const n=be.value||document.documentElement,i=n.requestFullscreen||n.webkitRequestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen;yield i==null?void 0:i.call(n)}}catch(n){console.warn("[platform] fullscreen toggle failed",n)}finally{fe(),window.setTimeout(st,80),window.setTimeout(st,280)}})}function Ut(){var t,n;(n=(t=rt())==null?void 0:t.resetMap)==null||n.call(t)}function rt(){return d.value.key==="home"?Se.value:d.value.key==="forest-grass-wet"?je.value:d.value.key==="ecological-protection"?Ke.value:d.value.key==="yak-management"?Be.value:d.value.key==="pasture-management"?Ue.value:d.value.key==="yak-industry-chain"?Ge.value:null}function Gt(){oa()}return(t,n)=>(m(),f("div",{ref_key:"platformScreenRef",ref:be,class:B(["large-screen platform-screen",{"is-home":d.value.key==="home","is-forest-grass-wet":d.value.key==="forest-grass-wet","is-ecological-protection":d.value.key==="ecological-protection","is-grass-livestock-balance":d.value.key==="grass-livestock-balance","is-yak-management":d.value.key==="yak-management","is-pasture-management":d.value.key==="pasture-management","is-yak-industry-chain":d.value.key==="yak-industry-chain","is-smart-management":d.value.key==="smart-management","is-ecology-national-park":d.value.key==="ecological-protection"&&Me.value==="national-park"}]),id:"large-screen"},[V.value.home?q((m(),f("div",Qa,[x(R(o),{ref_key:"homeDashboardRef",ref:Se,active:d.value.key==="home",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="home"]]):S("",!0),V.value["forest-grass-wet"]?q((m(),f("div",Ja,[x(R(a),{ref_key:"forestGrassWetRef",ref:je,active:d.value.key==="forest-grass-wet","show-loading":!1,onTopicStats:K},null,8,["active"])],512)),[[N,d.value.key==="forest-grass-wet"]]):S("",!0),V.value["ecological-protection"]?q((m(),f("div",Za,[x(R(l),{ref_key:"ecologicalProtectionRef",ref:Ke,active:d.value.key==="ecological-protection","active-view":b.value,"show-loading":!1,onModuleStats:K,onViewChange:tt},null,8,["active","active-view"])],512)),[[N,d.value.key==="ecological-protection"]]):S("",!0),V.value["grass-livestock-balance"]?q((m(),f("div",Xa,[x(R(s),{active:d.value.key==="grass-livestock-balance",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="grass-livestock-balance"]]):S("",!0),V.value["yak-management"]?q((m(),f("div",en,[x(R(c),{ref_key:"yakManagementRef",ref:Be,active:d.value.key==="yak-management","view-key":M.value,onModuleStats:K,onViewChange:Pt},null,8,["active","view-key"])],512)),[[N,d.value.key==="yak-management"]]):S("",!0),V.value["pasture-management"]?q((m(),f("div",tn,[x(R(h),{ref_key:"pastureManagementRef",ref:Ue,active:d.value.key==="pasture-management",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="pasture-management"]]):S("",!0),V.value["yak-industry-chain"]?q((m(),f("div",an,[x(R(p),{ref_key:"yakIndustryChainRef",ref:Ge,active:d.value.key==="yak-industry-chain",onLoadingProgress:ue,onMapReady:ce,onModuleStats:K},null,8,["active"])],512)),[[N,d.value.key==="yak-industry-chain"]]):S("",!0),V.value["smart-management"]?q((m(),f("div",nn,[x(R(_),{active:d.value.key==="smart-management"},null,8,["active"])],512)),[[N,d.value.key==="smart-management"]]):S("",!0),r("div",on,[x(Sa,{title:"红原县数字畜牧业监管平台","sub-text":"Hongyuan Digital Animal Husbandry Supervision Platform"},{right:Le(()=>[r("div",ln,[r("div",{class:B(["platform-weather",{"is-unavailable":!Q.value}])},[Rt.value?(m(),f("img",{key:0,class:"platform-weather__icon",src:At.value,alt:C.value.condition||"天气",onError:Ft},null,40,sn)):(m(),f("span",rn)),r("div",un,[r("div",cn,[r("strong",null,E(Q.value?C.value.condition||"实时天气":"天气暂无数据"),1),Q.value?(m(),f("em",dn,E(C.value.temperature)+"℃",1)):S("",!0)]),Ee.value||le.value?(m(),f("small",mn,[Ee.value?(m(),f("span",fn,"湿度 "+E(C.value.humidity)+"%",1)):S("",!0),Ee.value&&le.value?(m(),f("i",hn)):S("",!0),le.value?(m(),f("span",yn,E(le.value),1)):S("",!0)])):S("",!0)])],2),r("div",vn,[r("strong",null,E(Je.value),1),r("span",null,E(Qe.value),1)]),r("button",{class:"logout-button","aria-label":"退出登录",title:"退出登录",type:"button",onClick:Gt},[...n[0]||(n[0]=[r("svg",{class:"logout-icon",viewBox:"0 0 24 24","aria-hidden":"true"},[r("path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"}),r("path",{d:"M16 17l5-5-5-5"}),r("path",{d:"M21 12H9"})],-1)])])])]),_:1}),r("div",gn,[x($a,{"default-active":u.value,onSelect:Ve},{default:Le(()=>[(m(!0),f(ge,null,De(R(ae),(i,T)=>(m(),f(ge,{key:i.key},[x(Ea,{index:i.key,onClick:y=>Ae(i.key),onKeydown:[we(y=>Ae(i.key),["enter"]),we(y=>Ae(i.key),["space"])]},{default:Le(()=>[aa(E(i.label),1)]),_:2},1032,["index","onClick","onKeydown"]),T===3?(m(),f("div",pn)):S("",!0)],64))),128))]),_:1},8,["default-active"])]),j.value.length&&!["smart-management","grass-livestock-balance"].includes(d.value.key)?(m(),f("div",{key:0,class:B(["top-count-card",{"is-four":j.value.length>3&&j.value.length<=4,"is-multi":j.value.length>4,"is-count-five":j.value.length===5,"is-home-five":Lt.value}])},[(m(!0),f(ge,null,De(j.value,i=>(m(),na(Pa,{key:i.zh,info:i},null,8,["info"]))),128))],2)):S("",!0),Ct.value?(m(),f("div",wn,[r("button",{type:"button",title:Ze.value,"aria-label":Ze.value,onClick:Bt},[...n[1]||(n[1]=[r("span",{class:"platform-map-tool-icon is-fullscreen","aria-hidden":"true"},null,-1)])],8,_n),r("button",{type:"button",title:"复位地图","aria-label":"复位地图",onClick:Ut},[...n[2]||(n[2]=[r("span",{class:"platform-map-tool-icon is-reset","aria-hidden":"true"},null,-1)])])])):S("",!0),d.value.status!=="ready"?(m(),f("div",kn,[r("div",bn,E(d.value.label),1),n[3]||(n[3]=r("div",{class:"module-coming-text"},"模块建设中,平台框架已预留入口",-1))])):S("",!0),["home","forest-grass-wet","ecological-protection","grass-livestock-balance","yak-management","pasture-management","yak-industry-chain","smart-management"].includes(d.value.key)?S("",!0):(m(),f("div",Sn,[x(_e,{class:"bottom-svg-line-left",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),x(_e,{class:"bottom-svg-line-left bottom-svg-line-right",width:721,height:57,color:"#30DCFF",strokeWidth:2,dir:[0,1],length:50,path:"M1 56.6105C1 31.5123 185.586 10.0503 451.904 1.35519C458.942 1.12543 465.781 4.00883 470.505 9.22964L484.991 25.2383C487.971 28.4775 492.938 30.4201 498.254 30.4201H720.142"}),n[4]||(n[4]=r("div",{class:"bottom-tray-arrow"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1)),r("div",Tn,[(m(!0),f(ge,null,De(Dt.value,i=>(m(),f("div",{key:i.key,class:B(["bottom-menu-item",{"is-active":i.key===Me.value}]),onClick:T=>It(i)},[r("span",null,E(i.bottomLabel),1)],10,$n))),128))]),n[5]||(n[5]=r("div",{class:"bottom-tray-arrow is-reverse"},[r("img",{src:gt,alt:""}),r("img",{src:pt,alt:""})],-1))])),n[6]||(n[6]=r("div",{class:"large-screen-left-zsline"},null,-1)),n[7]||(n[7]=r("div",{class:"large-screen-right-zsline"},null,-1))]),G.value?(m(),f("div",xn,[n[9]||(n[9]=ta('
    LOADING
    ',1)),r("div",En,[r("span",Mn,E(Y.value),1),n[8]||(n[8]=r("span",{class:"unit"},"%",-1))])])):S("",!0)],2))}},Fn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));export{gt as _,pt as a,Fn as i,Oa as n,Ha as r}; diff --git a/docs/assets/index-c252ce06-1784045078568.js b/docs/assets/index-c252ce06-1784045078568.js deleted file mode 100644 index adbbc97..0000000 --- a/docs/assets/index-c252ce06-1784045078568.js +++ /dev/null @@ -1,2 +0,0 @@ -var or=Object.defineProperty,sr=Object.defineProperties;var lr=Object.getOwnPropertyDescriptors;var wn=Object.getOwnPropertySymbols;var ar=Object.prototype.hasOwnProperty,ur=Object.prototype.propertyIsEnumerable;var Sn=(m,n,r)=>n in m?or(m,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):m[n]=r,lt=(m,n)=>{for(var r in n||(n={}))ar.call(n,r)&&Sn(m,r,n[r]);if(wn)for(var r of wn(n))ur.call(n,r)&&Sn(m,r,n[r]);return m},Lt=(m,n)=>sr(m,lr(n));var ft=(m,n,r)=>new Promise((u,h)=>{var c=y=>{try{d(r.next(y))}catch(w){h(w)}},p=y=>{try{d(r.throw(y))}catch(w){h(w)}},d=y=>y.done?u(y.value):Promise.resolve(y.value).then(c,p);d((r=r.apply(m,n)).next())});import{H as G,n as xe,h as bn}from"./townshipBoundaries-1b068bef-1784045078568.js";import{_ as cr,g as hr,q as fr,h as mr,w as Kt,A as _n,o as pr,c as dr,a as gr,d as Nn,K as yr}from"./index-1784045078568.js";class gt{constructor(n,r){this.next=null,this.key=n,this.data=r,this.left=null,this.right=null}}function xr(m,n){return m>n?1:m0){if(n.right===null)break;if(r(m,n.right.key)>0){const d=n.right;if(n.right=d.left,d.left=n,n=d,n.right===null)break}h.right=n,h=n,n=n.right}else break}return h.right=n.left,c.left=n.right,n.left=u.right,n.right=u.left,n}function we(m,n,r,u){const h=new gt(m,n);if(r===null)return h.left=h.right=null,h;r=mt(m,r,u);const c=u(m,r.key);return c<0?(h.left=r.left,h.right=r,r.left=null):c>=0&&(h.right=r.right,h.left=r,r.right=null),h}function Cn(m,n,r){let u=null,h=null;if(n){n=mt(m,n,r);const c=r(n.key,m);c===0?(u=n.left,h=n.right):c<0?(h=n.right,n.right=null,u=n):(u=n.left,n.left=null,h=n)}return{left:u,right:h}}function wr(m,n,r){return n===null?m:(m===null||(n=mt(m.key,n,r),n.left=m),n)}function _e(m,n,r,u,h){if(m){u(`${n}${r?"└── ":"├── "}${h(m)} -`);const c=n+(r?" ":"│ ");m.left&&_e(m.left,c,!1,u,h),m.right&&_e(m.right,c,!0,u,h)}}class Pe{constructor(n=xr){this._root=null,this._size=0,this._comparator=n}insert(n,r){return this._size++,this._root=we(n,r,this._root,this._comparator)}add(n,r){const u=new gt(n,r);this._root===null&&(u.left=u.right=null,this._size++,this._root=u);const h=this._comparator,c=mt(n,this._root,h),p=h(n,c.key);return p===0?this._root=c:(p<0?(u.left=c.left,u.right=c,c.left=null):p>0&&(u.right=c.right,u.left=c,c.right=null),this._size++,this._root=u),this._root}remove(n){this._root=this._remove(n,this._root,this._comparator)}_remove(n,r,u){let h;return r===null?null:(r=mt(n,r,u),u(n,r.key)===0?(r.left===null?h=r.right:(h=mt(n,r.left,u),h.right=r.right),this._size--,h):r)}pop(){let n=this._root;if(n){for(;n.left;)n=n.left;return this._root=mt(n.key,this._root,this._comparator),this._root=this._remove(n.key,this._root,this._comparator),{key:n.key,data:n.data}}return null}findStatic(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return r;h<0?r=r.left:r=r.right}return null}find(n){return this._root&&(this._root=mt(n,this._root,this._comparator),this._comparator(n,this._root.key)!==0)?null:this._root}contains(n){let r=this._root;const u=this._comparator;for(;r;){const h=u(n,r.key);if(h===0)return!0;h<0?r=r.left:r=r.right}return!1}forEach(n,r){let u=this._root;const h=[];let c=!1;for(;!c;)u!==null?(h.push(u),u=u.left):h.length!==0?(u=h.pop(),n.call(r,u),u=u.right):c=!0;return this}range(n,r,u,h){const c=[],p=this._comparator;let d=this._root,y;for(;c.length!==0||d;)if(d)c.push(d),d=d.left;else{if(d=c.pop(),y=p(d.key,r),y>0)break;if(p(d.key,n)>=0&&u.call(h,d))return this;d=d.right}return this}keys(){const n=[];return this.forEach(({key:r})=>{n.push(r)}),n}values(){const n=[];return this.forEach(({data:r})=>{n.push(r)}),n}min(){return this._root?this.minNode(this._root).key:null}max(){return this._root?this.maxNode(this._root).key:null}minNode(n=this._root){if(n)for(;n.left;)n=n.left;return n}maxNode(n=this._root){if(n)for(;n.right;)n=n.right;return n}at(n){let r=this._root,u=!1,h=0;const c=[];for(;!u;)if(r)c.push(r),r=r.left;else if(c.length>0){if(r=c.pop(),h===n)return r;h++,r=r.right}else u=!0;return null}next(n){let r=this._root,u=null;if(n.right){for(u=n.right;u.left;)u=u.left;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?(u=r,r=r.left):r=r.right}return u}prev(n){let r=this._root,u=null;if(n.left!==null){for(u=n.left;u.right;)u=u.right;return u}const h=this._comparator;for(;r;){const c=h(n.key,r.key);if(c===0)break;c<0?r=r.left:(u=r,r=r.right)}return u}clear(){return this._root=null,this._size=0,this}toList(){return br(this._root)}load(n,r=[],u=!1){let h=n.length;const c=this._comparator;if(u&&Ee(n,r,0,h-1,c),this._root===null)this._root=Ne(n,r,0,h),this._size=h;else{const p=_r(this.toList(),Sr(n,r),c);h=this._size+h,this._root=Ce({head:p},0,h)}return this}isEmpty(){return this._root===null}get size(){return this._size}get root(){return this._root}toString(n=r=>String(r.key)){const r=[];return _e(this._root,"",!0,u=>r.push(u),n),r.join("")}update(n,r,u){const h=this._comparator;let{left:c,right:p}=Cn(n,this._root,h);h(n,r)<0?p=we(r,u,p,h):c=we(r,u,c,h),this._root=wr(c,p,h)}split(n){return Cn(n,this._root,this._comparator)}*[Symbol.iterator](){let n=this._root;const r=[];let u=!1;for(;!u;)n!==null?(r.push(n),n=n.left):r.length!==0?(n=r.pop(),yield n,n=n.right):u=!0}}function Ne(m,n,r,u){const h=u-r;if(h>0){const c=r+Math.floor(h/2),p=m[c],d=n[c],y=new gt(p,d);return y.left=Ne(m,n,r,c),y.right=Ne(m,n,c+1,u),y}return null}function Sr(m,n){const r=new gt(null,null);let u=r;for(let h=0;h0?(n=c=c.next=r.pop(),n=n.right):u=!0;return c.next=null,h.next}function Ce(m,n,r){const u=r-n;if(u>0){const h=n+Math.floor(u/2),c=Ce(m,n,h),p=m.head;return p.left=c,m.head=m.head.next,p.right=Ce(m,h+1,r),p}return null}function _r(m,n,r){const u=new gt(null,null);let h=u,c=m,p=n;for(;c!==null&&p!==null;)r(c.key,p.key)<0?(h.next=c,c=c.next):(h.next=p,p=p.next),h=h.next;return c!==null?h.next=c:p!==null&&(h.next=p),u.next}function Ee(m,n,r,u,h){if(r>=u)return;const c=m[r+u>>1];let p=r-1,d=u+1;for(;;){do p++;while(h(m[p],c)<0);do d--;while(h(m[d],c)>0);if(p>=d)break;let y=m[p];m[p]=m[d],m[d]=y,y=n[p],n[p]=n[d],n[d]=y}Ee(m,n,r,d,h),Ee(m,n,d+1,u,h)}const at=11102230246251565e-32,J=134217729,Nr=(3+8*at)*at;function Se(m,n,r,u,h){let c,p,d,y,w=n[0],N=u[0],o=0,x=0;N>w==N>-w?(c=w,w=n[++o]):(c=N,N=u[++x]);let b=0;if(ow==N>-w?(p=w+c,d=c-(p-w),w=n[++o]):(p=N+c,d=c-(p-N),N=u[++x]),c=p,d!==0&&(h[b++]=d);ow==N>-w?(p=c+w,y=p-c,d=c-(p-y)+(w-y),w=n[++o]):(p=c+N,y=p-c,d=c-(p-y)+(N-y),N=u[++x]),c=p,d!==0&&(h[b++]=d);for(;o=it||-U>=it||(o=m-q,d=m-(q+o)+(o-h),o=r-z,w=r-(z+o)+(o-h),o=n-Z,y=n-(Z+o)+(o-c),o=u-W,N=u-(W+o)+(o-c),d===0&&y===0&&w===0&&N===0)||(it=Pr*p+Nr*Math.abs(U),U+=q*N+W*d-(Z*w+z*y),U>=it||-U>=it))return U;k=d*W,x=J*d,b=x-(x-d),P=d-b,x=J*W,E=x-(x-W),R=W-E,v=P*R-(k-b*E-P*E-b*R),B=y*z,x=J*y,b=x-(x-y),P=y-b,x=J*z,E=x-(x-z),R=z-E,$=P*R-(B-b*E-P*E-b*R),I=v-$,o=v-I,K[0]=v-(I+o)+(o-$),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ut=Se(4,Ct,4,K,En);k=q*N,x=J*q,b=x-(x-q),P=q-b,x=J*N,E=x-(x-N),R=N-E,v=P*R-(k-b*E-P*E-b*R),B=Z*w,x=J*Z,b=x-(x-Z),P=Z-b,x=J*w,E=x-(x-w),R=w-E,$=P*R-(B-b*E-P*E-b*R),I=v-$,o=v-I,K[0]=v-(I+o)+(o-$),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const ie=Se(ut,En,4,K,Fn);k=d*N,x=J*d,b=x-(x-d),P=d-b,x=J*N,E=x-(x-N),R=N-E,v=P*R-(k-b*E-P*E-b*R),B=y*w,x=J*y,b=x-(x-y),P=y-b,x=J*w,E=x-(x-w),R=w-E,$=P*R-(B-b*E-P*E-b*R),I=v-$,o=v-I,K[0]=v-(I+o)+(o-$),M=k+I,o=M-k,O=k-(M-o)+(I-o),I=O-B,o=O-I,K[1]=O-(I+o)+(o-B),D=M+I,o=D-M,K[2]=M-(D-o)+(I-o),K[3]=D;const Et=Se(ie,Fn,4,K,Pn);return Pn[Et-1]}function Ir(m,n,r,u,h,c){const p=(n-c)*(r-h),d=(m-h)*(u-c),y=p-d,w=Math.abs(p+d);return Math.abs(y)>=Er*w?y:-Tr(m,n,r,u,h,c,w)}const At=(m,n)=>m.ll.x<=n.x&&n.x<=m.ur.x&&m.ll.y<=n.y&&n.y<=m.ur.y,Fe=(m,n)=>{if(n.ur.x{if(-ptm.x*n.y-m.y*n.x,Gn=(m,n)=>m.x*n.x+m.y*n.y,Mn=(m,n,r)=>{const u=Ir(m.x,m.y,n.x,n.y,r.x,r.y);return u>0?-1:u<0?1:0},ee=m=>Math.sqrt(Gn(m,m)),kr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return te(h,u)/ee(h)/ee(u)},Lr=(m,n,r)=>{const u={x:n.x-m.x,y:n.y-m.y},h={x:r.x-m.x,y:r.y-m.y};return Gn(h,u)/ee(h)/ee(u)},Rn=(m,n,r)=>n.y===0?null:{x:m.x+n.x/n.y*(r-m.y),y:r},kn=(m,n,r)=>n.x===0?null:{x:r,y:m.y+n.y/n.x*(r-m.x)},Ar=(m,n,r,u)=>{if(n.x===0)return kn(r,u,m.x);if(u.x===0)return kn(m,n,r.x);if(n.y===0)return Rn(r,u,m.y);if(u.y===0)return Rn(m,n,r.y);const h=te(n,u);if(h==0)return null;const c={x:r.x-m.x,y:r.y-m.y},p=te(c,n)/h,d=te(c,u)/h,y=m.x+d*n.x,w=r.x+p*u.x,N=m.y+d*n.y,o=r.y+p*u.y,x=(y+w)/2,b=(N+o)/2;return{x,y:b}};class nt{static compare(n,r){const u=nt.comparePoints(n.point,r.point);return u!==0?u:(n.point!==r.point&&n.link(r),n.isLeft!==r.isLeft?n.isLeft?1:-1:dt.compare(n.segment,r.segment))}static comparePoints(n,r){return n.xr.x?1:n.yr.y?1:0}constructor(n,r){n.events===void 0?n.events=[this]:n.events.push(this),this.point=n,this.isLeft=r}link(n){if(n.point===this.point)throw new Error("Tried to link already linked events");const r=n.point.events;for(let u=0,h=r.length;u{const c=h.otherSE;r.set(h,{sine:kr(this.point,n.point,c.point),cosine:Lr(this.point,n.point,c.point)})};return(h,c)=>{r.has(h)||u(h),r.has(c)||u(c);const{sine:p,cosine:d}=r.get(h),{sine:y,cosine:w}=r.get(c);return p>=0&&y>=0?dw?-1:0:p<0&&y<0?dw?1:0:yp?1:0}}}let vr=0;class dt{static compare(n,r){const u=n.leftSE.point.x,h=r.leftSE.point.x,c=n.rightSE.point.x,p=r.rightSE.point.x;if(pd&&y>w)return-1;const o=n.comparePoint(r.leftSE.point);if(o<0)return 1;if(o>0)return-1;const x=r.comparePoint(n.rightSE.point);return x!==0?x:-1}if(u>h){if(dy&&d>N)return 1;const o=r.comparePoint(n.leftSE.point);if(o!==0)return o;const x=n.comparePoint(r.rightSE.point);return x<0?1:x>0?-1:1}if(dy)return 1;if(cp){const o=n.comparePoint(r.rightSE.point);if(o<0)return 1;if(o>0)return-1}if(c!==p){const o=w-d,x=c-u,b=N-y,P=p-h;if(o>x&&bP)return-1}return c>p?1:cN?1:n.idr.id?1:0}constructor(n,r,u,h){this.id=++vr,this.leftSE=n,n.segment=this,n.otherSE=r,this.rightSE=r,r.segment=this,r.otherSE=n,this.rings=u,this.windings=h}static fromRing(n,r,u){let h,c,p;const d=nt.comparePoints(n,r);if(d<0)h=n,c=r,p=1;else if(d>0)h=r,c=n,p=-1;else throw new Error(`Tried to create degenerate segment at [${n.x}, ${n.y}]`);const y=new nt(h,!0),w=new nt(c,!1);return new dt(y,w,[u],[p])}replaceRightSE(n){this.rightSE=n,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){const n=this.leftSE.point.y,r=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:nr?n:r}}}vector(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}isAnEndpoint(n){return n.x===this.leftSE.point.x&&n.y===this.leftSE.point.y||n.x===this.rightSE.point.x&&n.y===this.rightSE.point.y}comparePoint(n){if(this.isAnEndpoint(n))return 0;const r=this.leftSE.point,u=this.rightSE.point,h=this.vector();if(r.x===u.x)return n.x===r.x?0:n.x0&&d.swapEvents(),nt.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),u&&(h.checkForConsuming(),c.checkForConsuming()),r}swapEvents(){const n=this.rightSE;this.rightSE=this.leftSE,this.leftSE=n,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let r=0,u=this.windings.length;r0){const c=r;r=u,u=c}if(r.prev===u){const c=r;r=u,u=c}for(let c=0,p=u.rings.length;ch.length===1&&h[0].isSubject;this._isInResult=u(n)!==u(r);break}default:throw new Error(`Unrecognized operation type found ${ot.type}`)}return this._isInResult}}class Ln{constructor(n,r,u){if(!Array.isArray(n)||n.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=r,this.isExterior=u,this.segments=[],typeof n[0][0]!="number"||typeof n[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");const h=vt.round(n[0][0],n[0][1]);this.bbox={ll:{x:h.x,y:h.y},ur:{x:h.x,y:h.y}};let c=h;for(let p=1,d=n.length;pthis.bbox.ur.x&&(this.bbox.ur.x=y.x),y.y>this.bbox.ur.y&&(this.bbox.ur.y=y.y),c=y)}(h.x!==c.x||h.y!==c.y)&&this.segments.push(dt.fromRing(c,h,this))}getSweepEvents(){const n=[];for(let r=0,u=this.segments.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.interiorRings.push(c)}this.multiPoly=r}getSweepEvents(){const n=this.exteriorRing.getSweepEvents();for(let r=0,u=this.interiorRings.length;rthis.bbox.ur.x&&(this.bbox.ur.x=c.bbox.ur.x),c.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=c.bbox.ur.y),this.polys.push(c)}this.isSubject=r}getSweepEvents(){const n=[];for(let r=0,u=this.polys.length;r0&&(n=p)}let r=n.segment.prevInResult(),u=r?r.prevInResult():null;for(;;){if(!r)return null;if(!u)return r.ringOut;if(u.ringOut!==r.ringOut)return u.ringOut.enclosingRing()!==r.ringOut?r.ringOut:r.ringOut.enclosingRing();r=u.prevInResult(),u=r?r.prevInResult():null}}}class vn{constructor(n){this.exteriorRing=n,n.poly=this,this.interiorRings=[]}addInterior(n){this.interiorRings.push(n),n.poly=this}getGeom(){const n=[this.exteriorRing.getGeom()];if(n[0]===null)return null;for(let r=0,u=this.interiorRings.length;r1&&arguments[1]!==void 0?arguments[1]:dt.compare;this.queue=n,this.tree=new Pe(r),this.segments=[]}process(n){const r=n.segment,u=[];if(n.consumedBy)return n.isLeft?this.queue.remove(n.otherSE):this.tree.remove(r),u;const h=n.isLeft?this.tree.add(r):this.tree.find(r);if(!h)throw new Error(`Unable to find segment #${r.id} [${r.leftSE.point.x}, ${r.leftSE.point.y}] -> [${r.rightSE.point.x}, ${r.rightSE.point.y}] in SweepLine tree.`);let c=h,p=h,d,y;for(;d===void 0;)c=this.tree.prev(c),c===null?d=null:c.key.consumedBy===void 0&&(d=c.key);for(;y===void 0;)p=this.tree.next(p),p===null?y=null:p.key.consumedBy===void 0&&(y=p.key);if(n.isLeft){let w=null;if(d){const o=d.getIntersection(r);if(o!==null&&(r.isAnEndpoint(o)||(w=o),!d.isAnEndpoint(o))){const x=this._splitSafely(d,o);for(let b=0,P=x.length;b0?(this.tree.remove(r),u.push(n)):(this.segments.push(r),r.prev=d)}else{if(d&&y){const w=d.getIntersection(y);if(w!==null){if(!d.isAnEndpoint(w)){const N=this._splitSafely(d,w);for(let o=0,x=N.length;oBn)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big).")}const p=new Dr(c);let d=c.size,y=c.pop();for(;y;){const o=y.key;if(c.size===d){const b=o.segment;throw new Error(`Unable to pop() ${o.isLeft?"left":"right"} SweepEvent [${o.point.x}, ${o.point.y}] from segment #${b.id} [${b.leftSE.point.x}, ${b.leftSE.point.y}] -> [${b.rightSE.point.x}, ${b.rightSE.point.y}] from queue.`)}if(c.size>Bn)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big).");if(p.segments.length>Wr)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments).");const x=p.process(o);for(let b=0,P=x.length;b1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u1?n-1:0),u=1;u[]},tileUrlTemplate:{type:String,default:"https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png"},referenceTileUrlTemplate:{type:String,default:"https://map.shuxitech.com/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}"},terrainUrl:{type:String,default:"/terrain"},center:{type:Array,default:()=>[102.600005,32.585593]},initialZoom:{type:Number,default:9},minimumZoomDistance:{type:Number,default:350},countyViewTargetOffset:{type:Object,default:null},autoApplyLayerMapView:{type:Boolean,default:!0},maxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},showNationalBackdrop:{type:Boolean,default:!0},enableImageryFeaturePick:{type:Boolean,default:!0},enableTownPolygonPick:{type:Boolean,default:!0},hideTownLabelStats:{type:Boolean,default:!1}},emits:["ready","scene-mounted","feature-loading","feature-info","layer-status","tile-status","map-click","draw-boundary","view-change"],setup(m,{expose:n,emit:r}){let u=[],h=null;const c=m,p=r,d=Nn(null),y=Nn(null),w=yr(null),N=hr(()=>c.activeLayer?[c.activeLayer,...Array.isArray(c.activeLayer.overlayLayers)?c.activeLayer.overlayLayers:[]].filter(Boolean):c.overlayLayers.length?c.overlayLayers.filter(Boolean):c.overlayLayer?[c.overlayLayer]:[]);let o=null,x=null,b=null,P=null,E=null,R=!1,I=0,M=null,O=!1,k=[],v=null,B=[],$=[],D=[],q=[],z=[],Z=[],W=null,U=[],it=[],ut=[],ie=[];const Et=new Map;fr(()=>{p("scene-mounted"),c.active&&Ot()}),mr(()=>It()),Kt(N,()=>Be(),{deep:!0}),Kt(()=>c.mapRanking,()=>oe(),{deep:!0}),Kt(()=>c.hideTownLabelStats,()=>oe()),Kt(()=>c.active,t=>ft(this,null,function*(){if(!t){It();return}yield _n(),Ot()}));function Ot(){var S,_,F,C;if(o||!y.value)return!!o;const t=window.Cesium;if(!t)return p("layer-status",{type:"error",text:"Cesium 运行资源加载失败"}),!1;R=!1;const e=zn(t),i=Ie(c.tileUrlTemplate),l=Ie(c.referenceTileUrlTemplate),a=jn(i),s=l&&l!==i?Te(t,l,{maximumLevel:c.maxZoom}):null,f=i?Te(t,i,{maximumLevel:a?Math.min(c.maxZoom,Ur):c.maxZoom,rectangle:a?Yn(t):null}):null;if(o=new t.Viewer(y.value,{animation:!1,baseLayerPicker:!1,fullscreenButton:!1,geocoder:!1,homeButton:!1,infoBox:!1,navigationHelpButton:!1,sceneModePicker:!1,selectionIndicator:!1,timeline:!1,scene3DOnly:!0,imageryProvider:!1,terrainProvider:e,useBrowserRecommendedResolution:!1,requestRenderMode:!0,maximumRenderTimeChange:1/0,contextOptions:{webgl:{alpha:!0,antialias:!0}}}),Ae(!1),s){const T=o.imageryLayers.addImageryProvider(s);T.alpha=1,T.brightness=.68,T.contrast=1.08,T.saturation=.48,T.gamma=.9}f&&(v=o.imageryLayers.addImageryProvider(f),v.alpha=a?.88:1,v.brightness=a?.96:.9,v.contrast=a?1.12:1.1,v.saturation=a?1.08:1.05,v.gamma=a?.98:.96),o.scene.globe.terrainExaggeration=1.5,o.scene.globe.depthTestAgainstTerrain=!1,o.scene.globe.baseColor=t.Color.fromCssColorString("#061821"),o.scene.backgroundColor=t.Color.fromCssColorString("#020b12"),o.scene.skyAtmosphere.show=!1,o.scene.skyBox&&(o.scene.skyBox.show=!1),o.scene.fog.enabled=!0,o.scene.fog.density=18e-5,o.resolutionScale=Math.min(Math.max(window.devicePixelRatio||1,1),1.5),o.scene.fxaa=!1,o.scene.postProcessStages.fxaa.enabled=!1,o.scene.screenSpaceCameraController.enableCollisionDetection=!0,o.scene.screenSpaceCameraController.minimumZoomDistance=Math.max(1,Number(c.minimumZoomDistance)||1),o.scene.screenSpaceCameraController.maximumZoomDistance=56e4,(S=o.cesiumWidget)!=null&&S.creditContainer&&(o.cesiumWidget.creditContainer.style.display="none"),(_=o._cesiumWidget)!=null&&_._creditContainer&&(o._cesiumWidget._creditContainer.style.display="none"),qn(e,t),Me().then(()=>{var T;!o||(T=o.isDestroyed)!=null&&T.call(o)||(Fi(),re())}).catch(T=>{console.warn("[cesium-map] county outline load failed",T),p("layer-status",{type:"error",text:"红原县边界加载失败"})}),_i(),ki(),ni(),ii(),ri(),re(),Be(),oe();const g={viewer:o,clearSelectedFeature:tt,focusProject:tn,focusPasture:on,focusTownByName:Qe,focusYakIndustryPoint:en,focusVectorFeature:nn,getVectorFeatureAnchorScreen:rn,getVectorFeaturesAnchorScreen:Vt,getVectorFeatureScreen:Pt,getYakIndustryPointScreen:ce,destroy:It};return w.value=g,(C=(F=f==null?void 0:f.errorEvent)==null?void 0:F.addEventListener)==null||C.call(F,()=>{p("tile-status",{type:"warning",text:"牧场影像底图部分瓦片加载失败"})}),p("tile-status",{type:"success",text:"牧场影像底图已加载"}),window.setTimeout(()=>{var T;o&&!((T=o.isDestroyed)!=null&&T.call(o))&&p("ready")},0),_n(Dt),!0}function zn(t){if(!c.terrainUrl)return new t.EllipsoidTerrainProvider;try{return new t.CesiumTerrainProvider({url:c.terrainUrl,requestVertexNormals:!0,requestWaterMask:!1})}catch(e){return R=!0,new t.EllipsoidTerrainProvider}}function Te(t,e,i={}){return e?new t.UrlTemplateImageryProvider({url:e,minimumLevel:i.minimumLevel||3,maximumLevel:i.maximumLevel||c.maxZoom,rectangle:i.rectangle||void 0,tilingScheme:new t.WebMercatorTilingScheme,credit:""}):null}function Ie(t){return String(t||"").trim()}function jn(t){return/hy-result|qkl-map/i.test(String(t||""))}function Yn(t){return t.Rectangle.fromDegrees(G.west-.035,G.south-.035,G.east+.035,G.north+.035)}function Vn(t,e="feature"){const i=[];if(((t==null?void 0:t.features)||[]).forEach(l=>{const a=j(l==null?void 0:l.geometry);ze(a).forEach(s=>{const f=$n(s);f&&i.push(f)})}),!i.length)return[];try{return Qt.union(...i)}catch(l){return console.warn(`[cesium-map] ${e} union boundary failed`,l),i.map(a=>a)}}function Me(){return ft(this,null,function*(){return u.length?u:(h||(h=Ht(Vr).then(t=>{const e=Vn(t,"county outline");return u=e,e}).catch(t=>{throw h=null,t})),h)})}function $n(t){if(!Array.isArray(t))return null;const e=t.map(i=>Un((i||[]).map(Y).filter(Boolean))).filter(i=>i.length>=4);return e.length?e:null}function Un(t=[]){if(!t.length)return[];const e=t[0],i=t[t.length-1];return je(e,i)?t:[...t,e]}function qn(t,e){var l,a,s,f;const i=()=>{!o||R||(R=!0,o.terrainProvider=new e.EllipsoidTerrainProvider,o.scene.globe.terrainExaggeration=1,o.scene.requestRender(),p("layer-status",{type:"warning",text:"CXPT 地形服务暂不可用,已保留三维影像地图"}))};(a=(l=t==null?void 0:t.errorEvent)==null?void 0:l.addEventListener)==null||a.call(l,i),(f=(s=t==null?void 0:t.readyPromise)==null?void 0:s.catch)==null||f.call(s,i)}function Zn(){return Ot()}function Xn(){var t;return!!(o&&!((t=o.isDestroyed)!=null&&t.call(o)))}function Jn(){Re()}function Re(){if(!o){Ot();return}o.useDefaultRenderLoop=!0,Dt()}function Kn(){It()}function Dt(){var t;!o||(t=o.isDestroyed)!=null&&t.call(o)||(o.resize(),o.scene.requestRender())}function ke(){if(!(o!=null&&o.camera)||!window.Cesium)return null;const t=window.Cesium,e=o.camera;return{position:t.Cartesian3.clone(e.positionWC||e.position),direction:t.Cartesian3.clone(e.directionWC||e.direction),up:t.Cartesian3.clone(e.upWC||e.up)}}function Wt(t){var i,l,a,s,f,g;if(!(o!=null&&o.camera)||!t||!window.Cesium)return;const e=window.Cesium;(l=(i=o.camera).cancelFlight)==null||l.call(i),(s=(a=o.camera).lookAtTransform)==null||s.call(a,e.Matrix4.IDENTITY),o.camera.setView({destination:e.Cartesian3.clone(t.position),orientation:{direction:e.Cartesian3.clone(t.direction),up:e.Cartesian3.clone(t.up)}}),(g=(f=o.scene)==null?void 0:f.requestRender)==null||g.call(f)}function Le(t){var e,i;!t||typeof window=="undefined"||((e=window.requestAnimationFrame)==null||e.call(window,()=>Wt(t)),(i=window.setTimeout)==null||i.call(window,()=>Wt(t),80))}function Qn(){tt(),Ae(!0)}function Ae(t=!0){if(!o)return;const e=window.Cesium,i=ei(),l=ve(c.initialZoom),a=ti(),s=e.Cartesian3.fromDegrees(i[0]+a.lng,i[1]+a.lat,2200),f=new e.HeadingPitchRange(e.Math.toRadians(qr),e.Math.toRadians(Zr),l);t?o.camera.flyToBoundingSphere(new e.BoundingSphere(s,1),{offset:f,duration:.9}):(o.camera.lookAt(s,f),o.camera.lookAtTransform(e.Matrix4.IDENTITY)),o.scene.requestRender()}function ti(){var l,a;const t=c.countyViewTargetOffset,e=Number((l=t==null?void 0:t.lng)!=null?l:t==null?void 0:t[0]),i=Number((a=t==null?void 0:t.lat)!=null?a:t==null?void 0:t[1]);return{lng:Number.isFinite(e)?e:0,lat:Number.isFinite(i)?i:-Xr}}function ve(t){const e=Number.isFinite(Number(t))?Number(t):9;return Math.max(9e3,Math.min(58e4,365e3/Math.pow(1.62,e-9)))}function ei(){const t=Y(c.center);return t||[(G.west+G.east)/2,(G.south+G.north)/2]}function ni(){!d.value||!window.ResizeObserver||(b=new ResizeObserver(()=>Dt()),b.observe(d.value))}function ii(){!o||P||(P=o.camera.moveEnd.addEventListener(re))}function ri(){!o||E||(E=o.scene.postRender.addEventListener(()=>{p("view-change")}))}function re(){var l,a;if(!o||(l=o.isDestroyed)!=null&&l.call(o))return;const t=Number((a=o.camera.positionCartographic)==null?void 0:a.height)||32e4,e=Math.max(0,Math.min(1,(36e4-t)/3e5)),i={township:1.1+e*.35,countyOutline:1.9+e*.35,countyHalo:4.2+e*.65};$.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="township"&&(s.polyline.width=i.township)}),ut.forEach(s=>{s!=null&&s.polyline&&s.__hyBoundaryRole==="county-outline"&&(s.polyline.width=i.countyOutline),s!=null&&s.polyline&&s.__hyBoundaryRole==="county-halo"&&(s.polyline.width=i.countyHalo)}),o.scene.requestRender()}function Be(){return ft(this,null,function*(){var i,l;if(!o)return;const t=++I;yn();const e=N.value;if(!e.length){p("layer-status",{type:"idle",text:"未选择专题图层"}),o.scene.requestRender();return}p("layer-status",{type:"loading",text:"正在加载三维专题图层"});try{if(yield Me(),t!==I||!o)return;for(const a of e){if(t!==I)return;yield oi(a,t)}if(t!==I)return;c.autoApplyLayerMapView&&Vi(e.find(a=>(a==null?void 0:a.mapView)||(a==null?void 0:a.cameraPosition))),p("layer-status",{type:"success",text:`${e.map(a=>a.name).filter(Boolean).join("、")}已加载`})}catch(a){if(t!==I)return;console.warn("[cesium-map] topic layer failed",a),p("layer-status",{type:"error",text:"三维专题图层加载失败"})}finally{(l=(i=o==null?void 0:o.scene)==null?void 0:i.requestRender)==null||l.call(i)}})}function oi(t,e){return ft(this,null,function*(){const i=String((t==null?void 0:t.sourceType)||"wms").toLowerCase();if(["geojson","wkt-api","wfs"].includes(i)){const l=yield ui(t);if(e!==I||!l)return;mi(l,t,D);return}if(i==="wmts"){si(t);return}ai(t)})}function si(t){const e=window.Cesium,i=t.tileMatrixSetID||t.tileMatrixSet||"EPSG:900913",l=Number.isFinite(Number(t.maximumLevel))?Number(t.maximumLevel):21,a=new e.WebMapTileServiceImageryProvider({url:t.url||"/geoserver/gwc/service/wmts",layer:t.layerName,style:t.style||t.styles||"",format:t.format||"image/png",tileMatrixSetID:i,tileMatrixLabels:t.tileMatrixLabels||li(i,l),tilingScheme:/4326/i.test(i)?new e.GeographicTilingScheme:new e.WebMercatorTilingScheme,maximumLevel:l,credit:t.credit||""}),s=o.imageryLayers.addImageryProvider(a),f=String(t.layerName||"").includes("daping_yak_marks");s.alpha=f?St(t.opacity,.94):St(t.opacity,.86),f&&Oe(s,t),s.__hyLayer=t,B.push(s)}function li(t,e=21){return Array.from({length:e+1},(i,l)=>`${t}:${l}`)}function ai(t){const e=window.Cesium,i={service:"WMS",transparent:!0,format:"image/png",version:"1.1.1",styles:t.styles||""};t.cqlFilter&&(i.cql_filter=t.cqlFilter),t.sldBody&&(i.sld_body=t.sldBody);const l=new e.WebMapServiceImageryProvider({url:t.url||"/geoserver/ne/wms",layers:t.layerName,parameters:i,getFeatureInfoParameters:Lt(lt({},i),{info_format:"application/json",feature_count:10})}),a=o.imageryLayers.addImageryProvider(l),s=String(t.layerName||"").includes("daping_yak_marks");a.alpha=s?St(t.opacity,.94):St(t.opacity,.86),s&&Oe(a,t),a.__hyLayer=t,B.push(a)}function Oe(t,e={}){t.brightness=Number.isFinite(Number(e.brightness))?Number(e.brightness):1.08,t.contrast=Number.isFinite(Number(e.contrast))?Number(e.contrast):1.18,t.saturation=Number.isFinite(Number(e.saturation))?Number(e.saturation):1.42,t.gamma=Number.isFinite(Number(e.gamma))?Number(e.gamma):.95}function ui(t){return ft(this,null,function*(){if(t.sourceType==="wkt-api")try{const e=yield fetch(t.apiUrl,{credentials:"same-origin"});if(!e.ok)throw new Error(`HTTP ${e.status}`);return fi(yield e.json())}catch(e){if(!t.fallbackPath)throw e;return Ht(t.fallbackPath)}if(t.sourceType==="wfs"){const e=ci(t);return Ht(e)}return Ht(t.dataPath||t.fallbackPath)})}function Ht(t){return ft(this,null,function*(){if(!t)return null;const e=/^(https?:)?\/\//.test(t)||t.startsWith("/")?t:$r(t),i=yield fetch(e,{credentials:"same-origin"});if(!i.ok)throw new Error(`HTTP ${i.status}`);return i.json()})}function ci(t){const e=new URLSearchParams({service:"WFS",version:"1.1.0",request:"GetFeature",typeName:t.layerName,outputFormat:"application/json",srsName:"EPSG:4326"});return t.cqlFilter&&e.set("cql_filter",t.cqlFilter),t.maxFeatures&&e.set("maxFeatures",String(t.maxFeatures)),Array.isArray(t.propertyName)&&t.propertyName.length?e.set("propertyName",t.propertyName.join(",")):t.propertyName&&e.set("propertyName",t.propertyName),`${t.url||"/geoserver/ne/wfs"}?${e.toString()}`}function hi(t,e={},i=null,l=null){var S,_,F;const a=((S=t==null?void 0:t.data)==null?void 0:S.type)==="Feature"?t.data:((F=(_=t==null?void 0:t.data)==null?void 0:_.features)==null?void 0:F[0])||(t==null?void 0:t.feature)||null,s=(a==null?void 0:a.properties)||e||{},f=j((a==null?void 0:a.geometry)||s.geometry||s.geom||s.the_geom||s.theGeom||s.wkt||s.shape),g=(a==null?void 0:a.id)||s.id||s.gid||s.objectid||s.OBJECTID||(t==null?void 0:t.name);return{type:"Feature",id:g,properties:s,feature:{type:"Feature",id:g,properties:s,geometry:f},geometry:f,layer:i,lngLat:l}}function fi(t){var l;const e=(l=t==null?void 0:t.data)!=null?l:t;return{type:"FeatureCollection",features:(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||(e==null?void 0:e.records)||(e==null?void 0:e.data)||[]).map((a,s)=>{var f;return{type:"Feature",id:(f=a==null?void 0:a.id)!=null?f:s,properties:lt({},a),geometry:j(a==null?void 0:a.geometry)||me(De(a))}}).filter(a=>a.geometry)}}function De(t={}){return t.wkt||t.WKT||t.geom||t.the_geom||t.theGeom||t.shape||t.Shape}function mi(t,e,i){((t==null?void 0:t.type)==="FeatureCollection"?t.features:(t==null?void 0:t.type)==="Feature"?[t]:[]).filter(a=>a==null?void 0:a.geometry).filter(a=>bi(a.properties||{},e)).map(a=>pi(a,e)).filter(Boolean).forEach(a=>yt(a,e,i))}function pi(t,e){const i=j(t==null?void 0:t.geometry),l=(e==null?void 0:e.clipToHongyuanBoundary)===!0,a=di(e);if(!i||!["Polygon","MultiPolygon"].includes(i.type)||!l&&!a)return t;let s=i.type==="Polygon"?[i.coordinates]:i.coordinates;try{l&&u.length&&(s=Qt.intersection(s,u)),a&&s.length&&(s=Qt.intersection(s,[gi(a)]))}catch(f){return console.warn("[cesium-map] vector layer clipping failed",e==null?void 0:e.key,f),t}return s.length?Lt(lt({},t),{geometry:{type:"MultiPolygon",coordinates:s}}):null}function di(t){if(!(t!=null&&t.clipBounds)||t.clipToLayerBounds===!1)return null;const e=t.clipBounds,i=Math.max(Number(e.west),G.west),l=Math.max(Number(e.south),G.south),a=Math.min(Number(e.east),G.east),s=Math.min(Number(e.north),G.north);return![i,l,a,s].every(Number.isFinite)||i>=a||l>=s?null:{west:i,south:l,east:a,north:s}}function gi(t){return[[[t.west,t.south],[t.east,t.south],[t.east,t.north],[t.west,t.north],[t.west,t.south]]]}function yt(t,e,i,l={}){const a=j(t.geometry);if(!a)return[];const s=wi(e,t.properties||{},l),f=Gt(a,t,e,s);return i.push(...f),f}function Gt(t,e,i,l){const a=window.Cesium,s=[],f=g=>{const S=o.entities.add(g);return S.__hyFeature=e,S.__hyLayer=i,s.push(S),S};if(t.type==="Point"){const g=Y(t.coordinates);return!g||i.hidePointFeatures||i.hidePointMarkers||f({position:a.Cartesian3.fromDegrees(g[0],g[1],8),point:{pixelSize:l.pointSize,color:l.fill,outlineColor:l.stroke,outlineWidth:2,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:i.showPointLabels?xi(e):void 0}),s}if(t.type==="MultiPoint")return t.coordinates.forEach(g=>s.push(...Gt({type:"Point",coordinates:g},e,i,l))),s;if(t.type==="LineString"){const g=_t(t.coordinates);return g.length<2||f({polyline:{positions:g,width:l.lineWidth,material:new a.PolylineGlowMaterialProperty({glowPower:.16,color:l.stroke}),clampToGround:!0}}),s}if(t.type==="MultiLineString")return t.coordinates.forEach(g=>s.push(...Gt({type:"LineString",coordinates:g},e,i,l))),s;if(t.type==="Polygon"){const g=zt(t.coordinates);return g&&(f({polygon:{hierarchy:g,height:0,heightReference:a.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,material:l.fill,outline:!1,classificationType:a.ClassificationType.BOTH}}),yi(t.coordinates,e,i,l,s)),s}return t.type==="MultiPolygon"&&t.coordinates.forEach(g=>s.push(...Gt({type:"Polygon",coordinates:g},e,i,l))),s}function yi(t,e,i,l,a){t.forEach(s=>{const f=_t(s);if(f.length<2)return;const g=o.entities.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,clampToGround:!0}});g.__hyFeature=e,g.__hyLayer=i,a.push(g)})}function zt(t=[]){const e=window.Cesium,i=_t(t[0]||[]);if(i.length<3)return null;const l=t.slice(1).map(a=>{const s=_t(a);return s.length>=3?new e.PolygonHierarchy(s):null}).filter(Boolean);return new e.PolygonHierarchy(i,l)}function xi(t,e){const i=window.Cesium,l=t.properties||{},a=l.name||l.project_name||l.title||"";if(a)return{text:String(a),font:"600 14px PingFang SC, Microsoft YaHei, sans-serif",fillColor:i.Color.WHITE,outlineColor:i.Color.fromCssColorString("#03121e"),outlineWidth:3,style:i.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new i.Cartesian2(0,-22),heightReference:i.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,distanceDisplayCondition:new i.DistanceDisplayCondition(0,15e4)}}function wi(t,e,i={}){var C,T,L,H,A,Q,st,et,ht;const l=window.Cesium,a=Si(t,e),s=St(t.opacity,.84),f=i.fillColor||(a==null?void 0:a.fillColor)||t.fillColor||t.color||"#24F6C4",g=i.strokeColor||(a==null?void 0:a.strokeColor)||t.strokeColor||t.color||"#B7FFF2",S=(L=(T=(C=i.fillAlpha)!=null?C:a==null?void 0:a.fillAlpha)!=null?T:t.fillAlpha)!=null?L:Math.min(.34,s*.34),_=(Q=(A=(H=i.strokeAlpha)!=null?H:a==null?void 0:a.strokeAlpha)!=null?A:t.strokeAlpha)!=null?Q:Math.max(.72,s),F=(ht=(et=(st=i.lineWidth)!=null?st:a==null?void 0:a.lineWidth)!=null?et:t.lineWidth)!=null?ht:Math.max(1.6,1.8*Number(c.adminBoundaryLineScale||1));return{fill:We(l,f,S),stroke:We(l,g,_),lineWidth:F,pointSize:i.pointSize||12}}function We(t,e,i){try{return t.Color.fromCssColorString(String(e||"#24F6C4")).withAlpha(St(i,1))}catch(l){return t.Color.CYAN.withAlpha(St(i,1))}}function Si(t,e){var i;return t!=null&&t.activeLegend?t.activeLegend:((t==null?void 0:t.legends)||[]).find(l=>He(e,l))||((i=t==null?void 0:t.legends)==null?void 0:i[0])}function bi(t,e){const i=e==null?void 0:e.activeLegend;return i?He(t,i):!0}function He(t,e={}){return e.match?Ge(t,e.match):Array.isArray(e.matches)?e.matches.some(i=>Ge(t,i)):!0}function Ge(t,e={}){var i,l;return String((i=t==null?void 0:t[e.field])!=null?i:"")===String((l=e.value)!=null?l:"")}function _i(){if(!o)return;V($);const t=window.Cesium,e={stroke:t.Color.fromCssColorString("#B8FFF8").withAlpha(.82),fill:t.Color.TRANSPARENT,lineWidth:1.2,pointSize:0};Ni(xe.features||[]).forEach(i=>{var s;const l=ge(i.points,Jr);if(l.length<2)return;const a=o.entities.add({polyline:{positions:l,width:e.lineWidth,material:e.stroke,depthFailMaterial:e.stroke,clampToGround:!1}});a.__hyBoundaryRole="township",a.__hyTownName=((s=i.townNames)==null?void 0:s[0])||"",$.push(a)}),o.scene.requestRender()}function Ni(t=[]){const e=new Map;t.forEach(l=>{var f;const a=String(((f=l==null?void 0:l.properties)==null?void 0:f.name)||"").trim(),s=j(l==null?void 0:l.geometry);ze(s).forEach(g=>{const S=((g==null?void 0:g[0])||[]).map(Y).filter(Boolean);for(let _=0;_Lt(lt({},l),{townNames:Array.from(l.townNames)})).filter(l=>l.count>1&&l.townNames.length>1);return Ei(i)}function ze(t){return t!=null&&t.coordinates?t.type==="Polygon"?[t.coordinates]:t.type==="MultiPolygon"?t.coordinates:[]:[]}function Ci(t,e){const i=Ft(t),l=Ft(e);return i{a.points.forEach(f=>{const g=Ft(f),S=e.get(g)||[];S.push(s),e.set(g,S)})});const i=new Set,l=[];return t.forEach((a,s)=>{if(i.has(s))return;i.add(s);const f=[a.points[0],a.points[1]];Ye(f,e,t,i,!0),Ye(f,e,t,i,!1),l.push({points:f,townNames:a.townNames})}),l}function Ye(t,e,i,l,a){for(;t.length;){const s=a?t[0]:t[t.length-1],f=Ft(s),g=(e.get(f)||[]).filter(L=>!l.has(L));if(g.length!==1)return;const S=g[0],_=i[S];l.add(S);const[F,C]=_.points,T=Ft(F)===f?C:F;a?t.unshift(T):t.push(T)}}function Fi(){if(!o||!u.length)return;V(ut);const t=window.Cesium;Pi(t),u.forEach(e=>{const l=(Array.isArray(e==null?void 0:e[0])?e[0]:[]).map(Y).filter(Boolean);if(l.length<3)return;const a=zt(e);if(a){const g=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#20EAF2").withAlpha(.026),outline:!1,classificationType:t.ClassificationType.BOTH}});ut.push(g)}const s=o.entities.add({polyline:{positions:ge(l,be),width:4.8,material:new t.PolylineGlowMaterialProperty({glowPower:.16,color:t.Color.fromCssColorString("#78FFF7").withAlpha(.48)}),depthFailMaterial:t.Color.fromCssColorString("#78FFF7").withAlpha(.32),clampToGround:!1,zIndex:8}});s.__hyBoundaryRole="county-halo";const f=o.entities.add({polyline:{positions:ge(l,be+80),width:1.9,material:t.Color.fromCssColorString("#F2FFFB").withAlpha(.98),depthFailMaterial:t.Color.fromCssColorString("#F2FFFB").withAlpha(.9),clampToGround:!1,zIndex:9}});f.__hyBoundaryRole="county-outline",ut.push(s,f)}),o.scene.requestRender()}function Pi(t){const e=Ti();let i=[];try{i=Qt.difference([e],u)}catch(l){console.warn("[cesium-map] county outside mask failed",l),i=[e]}i.forEach(l=>{const a=zt(l);if(!a)return;const s=o.entities.add({polygon:{hierarchy:a,material:t.Color.fromCssColorString("#020A10").withAlpha(.52),outline:!1,perPositionHeight:!1,heightReference:t.HeightReference.CLAMP_TO_GROUND,classificationType:t.ClassificationType.BOTH,zIndex:1}});ut.push(s)})}function Ti(){const t=G.west-Wn,e=G.south-Hn,i=G.east+Wn,l=G.north+Hn;return[[[t,e],[i,e],[i,l],[t,l],[t,e]]]}function Ii(t,e=!1){const i=(Array.isArray(t)?t:[t]).map(Rt=>String(Rt||"").trim()).filter(Boolean).slice(0,2),l=`v15-centered-map-badge:${e?"h":"n"}:${i.join("|")}`;if(Et.has(l))return Et.get(l);const a=document.createElement("canvas"),s=a.getContext("2d");if(!s)return{image:"",width:1,height:1};const f=Math.min(4,Math.max(3,window.devicePixelRatio||2)),g="700 14px Microsoft YaHei, PingFang SC, sans-serif",S="700 9px Microsoft YaHei, PingFang SC, sans-serif",_="800 14px Microsoft YaHei, PingFang SC, sans-serif",F="600 9px Microsoft YaHei, PingFang SC, sans-serif",C=Ri(i[1]);s.font=g;const T=Math.ceil(s.measureText(i[0]||"").width);let L=0;C&&(s.font=S,L+=Math.ceil(s.measureText(C.metric).width),s.font=_,L+=Math.ceil(s.measureText(C.value).width),s.font=F,L+=Math.ceil(s.measureText(C.unit).width),L+=C.metric?5:0,L+=C.unit?4:0);const H=Math.min(118,Math.max(C?96:62,T+20,L+20)),A=C?40:25,Q=C?5:0,st=6,et=H+st*2,ht=A+Q+st*2;a.width=Math.ceil(et*f),a.height=Math.ceil(ht*f),a.style.width=`${et}px`,a.style.height=`${ht}px`,s.scale(f,f),s.clearRect(0,0,et,ht);const X=st,rt=st,Nt=rt+A,bt=s.createLinearGradient(X,rt,X,Nt);bt.addColorStop(0,e?"rgba(8, 58, 70, 0.9)":"rgba(6, 45, 57, 0.78)"),bt.addColorStop(.55,e?"rgba(4, 34, 46, 0.88)":"rgba(3, 29, 41, 0.76)"),bt.addColorStop(1,e?"rgba(2, 22, 32, 0.88)":"rgba(2, 18, 29, 0.78)"),s.save(),s.shadowColor="rgba(48, 220, 255, 0.13)",s.shadowBlur=6,s.fillStyle=bt,Ve(s,X,rt,H,A),s.fill(),s.restore(),s.save(),s.globalCompositeOperation="lighter";const Jt=s.createLinearGradient(X,rt,X+H,rt);Jt.addColorStop(0,"rgba(42, 210, 255, 0)"),Jt.addColorStop(.5,e?"rgba(98, 246, 255, 0.34)":"rgba(98, 246, 255, 0.26)"),Jt.addColorStop(1,"rgba(42, 210, 255, 0)"),s.strokeStyle=Jt,s.lineWidth=1,s.beginPath(),s.moveTo(X+10,rt+2),s.lineTo(X+H-10,rt+2),s.stroke(),s.restore(),s.save(),s.strokeStyle=e?"rgba(126, 251, 246, 0.58)":"rgba(126, 251, 246, 0.46)",s.lineWidth=.9,Ve(s,X+.5,rt+.5,H-1,A-1),s.stroke(),s.restore();const Mt=X+H/2;Q>0&&(s.save(),s.shadowColor="rgba(48, 220, 255, 0.2)",s.shadowBlur=5,s.beginPath(),s.moveTo(Mt-5,Nt-1),s.lineTo(Mt+5,Nt-1),s.lineTo(Mt,Nt+Q),s.closePath(),s.fillStyle=e?"rgba(4, 42, 52, 0.98)":"rgba(3, 31, 43, 0.96)",s.fill(),s.strokeStyle=e?"rgba(126, 251, 246, 0.48)":"rgba(126, 251, 246, 0.34)",s.lineWidth=.8,s.stroke(),s.restore()),s.save(),s.textAlign="center",s.textBaseline="alphabetic",s.fillStyle="rgba(255, 255, 255, 0.98)",s.strokeStyle="rgba(0, 8, 14, 0.98)",s.lineJoin="round",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,s.font=g,s.lineWidth=1.6;const rr=rt+(C?12.5:A/2);if(jt(s,i[0]||"",Mt,rr),C){const Rt=rt+29.5;let kt=Mt-L/2;s.textAlign="left",s.shadowBlur=0,s.font=S,s.lineWidth=1.2,s.fillStyle="rgba(126, 251, 246, 0.9)",C.metric&&(jt(s,C.metric,kt,Rt,{stroke:!1}),s.font=S,kt+=Math.ceil(s.measureText(C.metric).width)+5),s.font=_,s.lineWidth=1.4,s.fillStyle="#FFFFFF",s.shadowColor="rgba(0, 8, 14, 0.72)",s.shadowBlur=0,jt(s,C.value,kt,Rt),s.shadowBlur=0,kt+=Math.ceil(s.measureText(C.value).width)+(C.unit?4:0),C.unit&&(s.font=F,s.fillStyle="rgba(232, 252, 255, 0.76)",jt(s,C.unit,kt,Rt+1,{stroke:!1}))}s.restore();const xn={image:a.toDataURL("image/png"),width:et,height:ht};return Et.set(l,xn),xn}function jt(t,e,i,l,a={}){const s=t.measureText(e),f=Mi(t.font),g=Number(s.actualBoundingBoxAscent)||f*.74,S=Number(s.actualBoundingBoxDescent)||f*.18,_=l+(g-S)/2;a.stroke!==!1&&t.lineWidth>0&&t.strokeText(e,i,_),t.fillText(e,i,_)}function Mi(t){const e=String(t||"").match(/(\d+(?:\.\d+)?)px/);return e?Number(e[1]):14}function Ri(t){const e=String(t||"").trim();if(!e)return null;const i=e.match(/^(.+?)\s+([+-]?\d[\d,.]*)(.*)$/u);if(i)return{metric:i[1].trim(),value:i[2].trim(),unit:i[3].trim()};const l=e.match(/^(.*?)([+-]?\d[\d,.]*)([\u4e00-\u9fa5A-Za-z/%]+)?$/u);return l?{metric:l[1].trim(),value:l[2].trim(),unit:(l[3]||"").trim()}:{metric:"",value:e,unit:""}}function Ve(t,e,i,l,a){const s=Math.min(7,l*.12,a*.34);t.beginPath(),t.moveTo(e+s,i),t.lineTo(e+l-s,i),t.lineTo(e+l,i+s),t.lineTo(e+l,i+a-s),t.lineTo(e+l-s,i+a),t.lineTo(e+s,i+a),t.lineTo(e,i+a-s),t.lineTo(e,i+s),t.closePath()}function oe(){var f;if(!o)return;V(q);const t=window.Cesium,e=c.mapRanking||{},i=Array.isArray(e.rows)?e.rows:[],l=new Map(i.map(g=>[ct(g.name),g])),a=e.showTownNames!==!1&&e.hideTownNames!==!0,s=(f=e.hideTownLabelStats)!=null?f:c.hideTownLabelStats;a&&bn.forEach(g=>{const S=l.get(ct(g.name)),_=[g.name];if(!s&&S&&e.showMapLabels!==!1){const H=e.metricLabel?`${e.metricLabel} `:"";_.push(`${H}${ir(S.value)}${S.unit||e.unit||""}`)}const F=Y(g.center);if(!F)return;const C=Ii(_,!!S),T=!!(s||_.length===1),L=o.entities.add({position:t.Cartesian3.fromDegrees(F[0],F[1],18),billboard:{image:C.image,width:C.width,height:C.height,scale:1,verticalOrigin:T?t.VerticalOrigin.CENTER:t.VerticalOrigin.BOTTOM,horizontalOrigin:t.HorizontalOrigin.CENTER,pixelOffset:T?new t.Cartesian2(0,0):new t.Cartesian2(0,-4),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY,scaleByDistance:new t.NearFarScalar(2e4,.94,36e4,.8),distanceDisplayCondition:new t.DistanceDisplayCondition(0,42e4)}});L.__hyTownName=g.name,L.__hyRankingRow=S||null,q.push(L)}),i.filter(g=>wt(g)).forEach(g=>{const S=wt(g),_=o.entities.add({position:t.Cartesian3.fromDegrees(S[0],S[1],16),point:{pixelSize:9,color:t.Color.fromCssColorString("#35F3FF"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY},label:e.showPointMarkers===!1?void 0:{text:String(g.name||""),font:"600 12px PingFang SC, Microsoft YaHei, sans-serif",fillColor:t.Color.WHITE,outlineColor:t.Color.fromCssColorString("#03121e"),outlineWidth:3,style:t.LabelStyle.FILL_AND_OUTLINE,pixelOffset:new t.Cartesian2(0,-18),heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}});_.__hyTownName=g.name,_.__hyRankingRow=g,q.push(_)}),o.scene.requestRender()}function ki(){if(!o)return;const t=window.Cesium;x=new t.ScreenSpaceEventHandler(o.scene.canvas),x.setInputAction(e=>ft(this,null,function*(){var F,C,T;const i=Li(e.position),l=Ai(i);if(!l)return;const a=t.Cartographic.fromCartesian(l),s={lng:t.Math.toDegrees(a.longitude),lat:t.Math.toDegrees(a.latitude),height:a.height},f=$e(i);if(O){Hi(s);return}p("map-click",{lngLat:s,screen:f,overlayLayer:N.value[0]||null});const g=o.scene.pick(i),S=g==null?void 0:g.id;if(c.enableTownPolygonPick&&(S!=null&&S.__hyTownName)&&ue(S.__hyTownName))return;if(c.enableTownPolygonPick){const L=Oi(s);if(L&&ue((F=L.properties)==null?void 0:F.name))return}const _=Ui(s,f)||S;if(_!=null&&_.__hyFeature){se(_),p("feature-info",{feature:{id:_.__hyFeature.id,properties:_.__hyFeature.properties||{},feature:_.__hyFeature,geometry:_.__hyFeature.geometry||null,layer:_.__hyLayer,lngLat:s},screen:f});return}if(c.enableImageryFeaturePick&&B.length){p("feature-loading",!0);try{const L=o.camera.getPickRay(i),H=yield o.imageryLayers.pickImageryLayerFeatures(L,o.scene),A=H==null?void 0:H[0];if(A){const Q=B.find(Nt=>{var bt;return Nt.imageryProvider===((bt=A.imageryLayer)==null?void 0:bt.imageryProvider)})||B[B.length-1],st=(Q==null?void 0:Q.__hyLayer)||N.value[0],et=A.properties||((C=A.data)==null?void 0:C.properties)||A.data||{},X=hi(A,et,st,s);Je(X)||tt(),p("feature-info",{feature:{id:X.id||et.id||et.fid||A.name,properties:X.properties||et,feature:X.feature||A,geometry:X.geometry||((T=X.feature)==null?void 0:T.geometry)||null,layer:st,lngLat:s},screen:f})}else tt(),p("feature-info",{feature:null,screen:f})}catch(L){tt(),p("feature-info",{feature:null,screen:f})}finally{p("feature-loading",!1)}}}),t.ScreenSpaceEventType.LEFT_CLICK)}function Li(t){var T,L,H,A;if(!t||!((T=o==null?void 0:o.scene)!=null&&T.canvas))return t;const e=window.Cesium,i=o.scene.canvas,l=(L=i.getBoundingClientRect)==null?void 0:L.call(i),a=Number(l==null?void 0:l.width)||0,s=Number(l==null?void 0:l.height)||0,f=Number(i.clientWidth||((H=d.value)==null?void 0:H.clientWidth))||a||1,g=Number(i.clientHeight||((A=d.value)==null?void 0:A.clientHeight))||s||1,S=Number(t.x),_=Number(t.y);if(!Number.isFinite(S)||!Number.isFinite(_)||!a||!s)return t;const F=f/a,C=g/s;return Math.abs(F-1)<.001&&Math.abs(C-1)<.001?t:new e.Cartesian2(S*F,_*C)}function $e(t){var _,F,C,T;if(!t||!((_=o==null?void 0:o.scene)!=null&&_.canvas))return null;const e=o.scene.canvas,i=(F=e.getBoundingClientRect)==null?void 0:F.call(e),l=Number(i==null?void 0:i.width)||0,a=Number(i==null?void 0:i.height)||0,s=Number(e.clientWidth||((C=d.value)==null?void 0:C.clientWidth))||l||1,f=Number(e.clientHeight||((T=d.value)==null?void 0:T.clientHeight))||a||1,g=Number(t.x),S=Number(t.y);return!Number.isFinite(g)||!Number.isFinite(S)||!i?null:{x:(Number(i.left)||0)+g*(l/s),y:(Number(i.top)||0)+S*(a/f)}}function Ai(t){if(!o)return null;const e=o.camera.getPickRay(t);return e?o.scene.globe.pick(e,o.scene):null}function se(t){var e,i,l,a,s;tt(),M=t,t.point&&(t.__hyOriginalPointSize=t.point.pixelSize,t.point.pixelSize=18),(e=t.__hyFeature)!=null&&e.geometry&&["Polygon","MultiPolygon","LineString","MultiLineString"].includes(t.__hyFeature.geometry.type)&&Yt(t.__hyFeature,{townName:t.__hyTownName||((l=(i=t.__hyFeature)==null?void 0:i.properties)==null?void 0:l.name),mode:"feature"}),(s=(a=o==null?void 0:o.scene)==null?void 0:a.requestRender)==null||s.call(a)}function tt(){var t,e;M!=null&&M.point&&M.__hyOriginalPointSize&&(M.point.pixelSize=M.__hyOriginalPointSize),M=null,V(Z),Ue(),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Yt(t,e={}){var C,T,L,H;if(!o||!(t!=null&&t.geometry))return[];const i=vi({append:e.append===!0});if(!i)return[];const l=window.Cesium,a=e.mode==="town",s=e.highlightTone==="white"||e.mode==="white",f=e.highlightTone==="v21",g=a?"#30DCFF":s?"#FFFFFF":f?"#FFD166":"#FF2D2D",S=a?"#F2FFFF":s?"#FFFFFF":f?"#FFF1B8":"#FF2D2D",_={fill:l.Color.fromCssColorString(g).withAlpha((C=e.fillAlpha)!=null?C:a?.16:s?.035:f?.2:.16),stroke:l.Color.fromCssColorString(S).withAlpha((T=e.strokeAlpha)!=null?T:s?.9:.98),lineWidth:(L=e.lineWidth)!=null?L:a?4.2:s?3.8:f?4.4:5.2,pointSize:a?0:(H=e.pointSize)!=null?H:14},F=Ze(t.geometry,t,i.entities,_);return F.forEach(A=>{var Q;A.__hyFeature=null,A.__hyLayer=null,A.__hyTownName=e.townName||((Q=t.properties)==null?void 0:Q.name)||"",A.__hySelectedOverlay=!0}),Z.push(...F),qe(i),F}function vi(t={}){return!o||!window.Cesium?null:(t.append&&W||(Ue(),W=new window.Cesium.CustomDataSource("selected-feature-overlay"),o.dataSources.add(W),qe(W)),W)}function Ue(){var e,i;if(!(o!=null&&o.dataSources)){W=null;return}Array.from(new Set([W,...((i=(e=o.dataSources).getByName)==null?void 0:i.call(e,"selected-feature-overlay"))||[]].filter(Boolean))).forEach(l=>{try{o.dataSources.remove(l,!0)}catch(a){console.warn("[cesium-map] remove selected overlay failed",a)}}),W=null,Z=[]}function qe(t){var e,i;if(!(!(o!=null&&o.dataSources)||!t))try{if(o.dataSources.raiseToTop){o.dataSources.raiseToTop(t);return}for(;((i=(e=o.dataSources).indexOf)==null?void 0:i.call(e,t)){const S=i.add(g);return S.__hyFeature=e,s.push(S),S};if(t.type==="Point"){const g=Y(t.coordinates);return!g||l.pointSize<=0||f({position:a.Cartesian3.fromDegrees(g[0],g[1]),point:{show:!0,color:l.fill,pixelSize:l.pointSize,outlineColor:l.stroke,outlineWidth:3,heightReference:a.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}),s}return t.type==="MultiPoint"?(t.coordinates.forEach(g=>{s.push(...Ze({type:"Point",coordinates:g},e,i,l))}),s):t.type==="LineString"?(le(t.coordinates,e,i,l,s),s):t.type==="MultiLineString"?(t.coordinates.forEach(g=>{le(g,e,i,l,s)}),s):t.type==="Polygon"?(Xe(t.coordinates,e,i,l,s),s):(t.type==="MultiPolygon"&&t.coordinates.forEach(g=>{Xe(g,e,i,l,s)}),s)}function Xe(t,e,i,l,a){const s=window.Cesium,f=zt(t);if(!f)return;const g=i.add({polygon:{hierarchy:f,height:0,heightReference:s.HeightReference.CLAMP_TO_GROUND,perPositionHeight:!1,clampToGround:!0,material:l.fill,outline:!1,classificationType:s.ClassificationType.BOTH,zIndex:999}});g.__hyFeature=e,a.push(g),t.forEach(S=>le(S,e,i,l,a))}function le(t,e,i,l,a){const s=window.Cesium,f=_t(t);if(f.length<2)return;const g=i.add({polyline:{positions:f,width:l.lineWidth,material:l.stroke,depthFailMaterial:l.stroke,heightReference:s.HeightReference.CLAMP_TO_GROUND,clampToGround:!0,classificationType:s.ClassificationType.BOTH,zIndex:1e3}});g.__hyFeature=e,a.push(g)}function Je(t,e={}){var s,f,g,S,_;if(!o||!t)return!1;const i=t.properties||((s=t.feature)==null?void 0:s.properties)||(typeof t=="object"?t:{}),l=j(t.geometry||((f=t.feature)==null?void 0:f.geometry)||i.geometry||i.geom||i.wkt||t);if(!l)return!1;tt();const a={type:"Feature",id:t.id||((g=t.feature)==null?void 0:g.id)||i.id,properties:i,geometry:l};return Yt(a,lt({mode:"feature"},e)),(_=(S=o==null?void 0:o.scene)==null?void 0:S.requestRender)==null||_.call(S),Z.length>0}function Bi(t){const e=ct(t);return e&&(xe.features||[]).find(i=>{var l;return ct((l=i==null?void 0:i.properties)==null?void 0:l.name)===e})||null}function ae(){var t,e;return((t=c.mapRanking)==null?void 0:t.scope)==="town"&&Array.isArray((e=c.mapRanking)==null?void 0:e.rows)&&c.mapRanking.rows.length>0}function Ke(t){var i;if(!ae())return!1;const e=ct(t);return(((i=c.mapRanking)==null?void 0:i.rows)||[]).some(l=>ct(l.name)===e)}function Oi(t){return ae()&&(xe.features||[]).find(e=>{var l;const i=(l=e==null?void 0:e.properties)==null?void 0:l.name;return Ke(i)&&cn(t,j(e==null?void 0:e.geometry))})||null}function ue(t,e={}){var l,a,s,f;if(!ae()||!Ke(t))return!1;const i=Bi(t);return i?(tt(),Yt(i,{mode:"town",townName:((l=i.properties)==null?void 0:l.name)||t}),e.emitFeatureInfo!==!1&&p("feature-info",{feature:null}),e.emitStatus!==!1&&p("layer-status",{type:"success",text:`已选中${((a=i.properties)==null?void 0:a.name)||t}`}),(f=(s=o==null?void 0:o.scene)==null?void 0:s.requestRender)==null||f.call(s),!0):!1}function Qe(t,e={}){const i=bn.find(a=>ct(a.name)===ct(t)),l=Y(i==null?void 0:i.center);return l?(e.select&&ue(t,{emitFeatureInfo:!1,emitStatus:!1}),ln(l,42e3),{screen:xt(l)}):null}function tn(t={}){var f,g;const e=qi(t),i=$i(S=>Zi(S,e));if(!i.length)return null;const l=Xi(i),a=Ji(l);tt(),M=i[0],M!=null&&M.point&&(M.__hyOriginalPointSize=M.point.pixelSize,M.point.pixelSize=18),a.forEach((S,_)=>{Yt(S,{mode:"feature",highlightTone:e.highlightTone,append:_>0})});const s=ye(l);return s?$t(s,.9):o.flyTo(i[0],{duration:.9,offset:Tt(18e3)}),(g=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||g.call(f),{entity:i[0],entities:i,feature:l[0]||i[0].__hyFeature,features:l,highlightFeatures:a,screen:Vt(a.length?a:l)}}function en(t={}){const e=wt(t);let i=fe(l=>Ut(l,t));return i?(se(i),o.flyTo(i,{duration:.9,offset:Tt(16e3)})):e&&ln(e,16e3),{feature:(i==null?void 0:i.__hyFeature)||null,screen:ce(t)}}function nn(t={}){const e=fe(i=>Ut(i,t));return e?(se(e),o.flyTo(e,{duration:.9,offset:Tt(18e3)}),{feature:e.__hyFeature,screen:Pt(e.__hyFeature)}):null}function Pt(t){var i;const e=nr(j((t==null?void 0:t.geometry)||((i=t==null?void 0:t.feature)==null?void 0:i.geometry)));return e?xt(e):null}function rn(t){return Vt([t])||Pt(t)}function Vt(t=[]){const e=[];if((Array.isArray(t)?t:[t]).forEach(a=>{var S,_;const s=(a==null?void 0:a.properties)||((S=a==null?void 0:a.feature)==null?void 0:S.properties)||{},f=j((a==null?void 0:a.geometry)||((_=a==null?void 0:a.feature)==null?void 0:_.geometry)||s.geometry||s.geom||s.wkt||s.geo||s.the_geom||s.geometryWkt||s.geometry_wkt||s.shape);if(!f){const F=Pt(a);F&&e.push(F);return}const g=[];Xt(f.coordinates,g),e.push(...g.map(xt).filter(Boolean))}),!e.length)return null;const i=e.map(a=>Number(a.x)).filter(Number.isFinite),l=e.map(a=>Number(a.y)).filter(Number.isFinite);return!i.length||!l.length?null:{x:(Math.min(...i)+Math.max(...i))/2,y:Math.min(...l)}}function ce(t={}){var a,s;const e=wt(t);if(e)return xt(e);const i=fe(f=>Ut(f,t)),l=(s=(a=i==null?void 0:i.position)==null?void 0:a.getValue)==null?void 0:s.call(a,window.Cesium.JulianDate.now());return l?toLogicalScreen(window.Cesium.SceneTransforms.wgs84ToWindowCoordinates(o.scene,l)):null}function on(t={}){var f,g;sn();const e=Ki(t.grasslands||t),i=t.highlightTone==="white",l=i?null:{fillColor:"#FF3B30",strokeColor:"#FF3B30",fillAlpha:.1,strokeAlpha:.68,lineWidth:12},a=i?{fillColor:"#F7FFFF",strokeColor:"#F7FFFF",fillAlpha:.025,strokeAlpha:.9,lineWidth:3.8}:{fillColor:"#FF2D2D",strokeColor:"#FFE1E1",fillAlpha:.3,strokeAlpha:1,lineWidth:6.2};t.locateOnly||(e.forEach(S=>{l&&yt(S,{key:"pasture-focus-glow",name:t.name||"牧场高亮"},z,l),yt(S,{key:"pasture-focus",name:t.name||"牧场高亮"},z,a)}),(Array.isArray(t.yakMarks)?t.yakMarks:[]).forEach((S,_)=>{const F=wt(S);F&&yt({type:"Feature",id:S.id||_,properties:lt({},S),geometry:{type:"Point",coordinates:F}},{key:"pasture-focus-yak",name:"牦牛识别"},z,{fillColor:"#FFCB45",strokeColor:"#FFF4B8",pointSize:11})}));const s=ye(e);return s&&$t(s,.9),(g=(f=o==null?void 0:o.scene)==null?void 0:f.requestRender)==null||g.call(f),!!e.length}function sn(){var t,e;V(z),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function Di(){tt()}function Wi(t){O=!!t,O||(k=[]),he(),p("draw-boundary",{status:O?"drawing":"clear",pointCount:k.length,points:k})}function Hi(t){k.push([t.lng,t.lat]),he(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function Gi(){k.pop(),he(),p("draw-boundary",{status:"drawing",pointCount:k.length,points:k})}function zi(){if(k.length<3)return null;const t=ke(),e=[...k,k[0]],i={type:"Feature",properties:{source:"drawn"},geometry:{type:"Polygon",coordinates:[e]}};return O=!1,k=[],V(U),yt(i,{key:"analysis-boundary",name:"分析边界"},U,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.12,strokeAlpha:1,lineWidth:3}),p("draw-boundary",{status:"complete",pointCount:0,points:[],feature:i}),Wt(t),Le(t),i}function ji(){var t,e;O=!1,k=[],V(U),V(it),p("draw-boundary",{status:"clear",pointCount:0,points:[]}),(e=(t=o==null?void 0:o.scene)==null?void 0:t.requestRender)==null||e.call(t)}function he(){if(!o)return;const t=window.Cesium;V(U),k.forEach(e=>{U.push(o.entities.add({position:t.Cartesian3.fromDegrees(e[0],e[1],12),point:{pixelSize:10,color:t.Color.fromCssColorString("#24F6C4"),outlineColor:t.Color.WHITE,outlineWidth:2,heightReference:t.HeightReference.CLAMP_TO_GROUND,disableDepthTestDistance:Number.POSITIVE_INFINITY}}))}),k.length>1&&U.push(o.entities.add({polyline:{positions:_t(k),width:3,material:t.Color.fromCssColorString("#24F6C4"),clampToGround:!0}})),o.scene.requestRender()}function Yi(t={}){var a,s,f,g,S,_,F;const e=((a=t.boundary)==null?void 0:a.type)==="Feature"||(s=t.boundary)!=null&&s.geometry?t.boundary:null,i=t.preserveView===!0||((f=e==null?void 0:e.properties)==null?void 0:f.source)==="drawn",l=i?ke():null;if(i&&((S=(g=o==null?void 0:o.camera)==null?void 0:g.cancelFlight)==null||S.call(g)),V(it),e&&yt(e,{key:"analysis-result-boundary"},it,{fillColor:"#24F6C4",strokeColor:"#B7FFF2",fillAlpha:.1,lineWidth:3}),(Array.isArray(t.matches)?t.matches:[]).forEach(C=>{const T=(C==null?void 0:C.type)==="Feature"?C:(C==null?void 0:C.feature)||null;T&&yt(T,{key:"analysis-result-feature"},it,{fillColor:"#30DCFF",strokeColor:"#C9FBFF",fillAlpha:.1,lineWidth:2.6})}),i)Wt(l),Le(l);else{const C=[e,...t.matches||[]].filter(Boolean),T=ye(C);T&&$t(T,.9)}(F=(_=o==null?void 0:o.scene)==null?void 0:_.requestRender)==null||F.call(_)}function ln(t,e=22e3,i=.9){if(!o||!t)return;const l=window.Cesium,a=l.Cartesian3.fromDegrees(t[0],t[1],3600);o.camera.flyToBoundingSphere(new l.BoundingSphere(a,1),{offset:Tt(e),duration:i})}function $t(t,e=.9){if(!o||!t)return;const i=window.Cesium,l=[(Number(t.west)+Number(t.east))/2,(Number(t.south)+Number(t.north))/2];if(!l.every(Number.isFinite))return;const a=Math.max(Math.abs(Number(t.east)-Number(t.west)),Math.abs(Number(t.north)-Number(t.south))),s=Math.max(18e3,Math.min(16e4,a*135e3)),f=i.Cartesian3.fromDegrees(l[0],l[1],2600);o.camera.flyToBoundingSphere(new i.BoundingSphere(f,1),{offset:Tt(s),duration:e})}function Vi(t){if(!o||!t)return;const e=t.mapView||(t.cameraPosition?{cameraPosition:t.cameraPosition}:null);if(!e)return;const i=window.Cesium,l=Number.isFinite(Number(e.duration))?Number(e.duration):.9,a=Y(e.targetLngLat);if(a){const s=ve(c.initialZoom),f=Number.isFinite(Number(e.distanceScale))?Number(e.distanceScale):1,g=Math.max(18e3,Math.min(56e4,s*f)),S=Number.isFinite(Number(e.targetHeight))?Number(e.targetHeight):2600,_=Number.isFinite(Number(e.heading))?Number(e.heading):On,F=Number.isFinite(Number(e.pitch))?Number(e.pitch):Dn,C=i.Cartesian3.fromDegrees(a[0],a[1],S);o.camera.flyToBoundingSphere(new i.BoundingSphere(C,1),{offset:new i.HeadingPitchRange(i.Math.toRadians(_),i.Math.toRadians(F),g),duration:l});return}e.bounds&&$t(e.bounds,l)}function Tt(t){const e=window.Cesium;return new e.HeadingPitchRange(e.Math.toRadians(On),e.Math.toRadians(Dn),t)}function xt(t){if(!o||!t)return null;const e=window.Cesium,i=e.Cartesian3.fromDegrees(t[0],t[1],16);return $e(e.SceneTransforms.wgs84ToWindowCoordinates(o.scene,i))}function fe(t){return[...D,...z].find(e=>e.__hyFeature&&t(e.__hyFeature))||null}function $i(t){return[...D,...z].filter(e=>e.__hyFeature&&t(e.__hyFeature))}function Ui(t,e){if(!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const i=an(D),l=i.map(s=>{var f;return{entity:s,geometry:j((f=s.__hyFeature)==null?void 0:f.geometry)}}).filter(s=>s.geometry&&cn(t,s.geometry)).sort((s,f)=>hn(s.geometry)-hn(f.geometry));if(l.length)return l[0].entity;const a=i.map(s=>{var f;return{entity:s,distance:Qi(j((f=s.__hyFeature)==null?void 0:f.geometry),e)}}).filter(s=>Number.isFinite(s.distance)).sort((s,f)=>s.distance-f.distance)[0];return(a==null?void 0:a.distance)<=18?a.entity:null}function Ut(t,e={}){const i=(t==null?void 0:t.properties)||{},l=[e.id,e.key,e.featureId,e.projectId].filter(_=>_!=null&&_!=="").map(String),a=[t.id,i.id,i.key,i.feature_id,i.project_id].filter(_=>_!=null&&_!=="").map(String);if(l.some(_=>a.includes(_)))return!0;const s=[e.name,e.fullName,e.projectName].filter(Boolean).map(String),f=[i.name,i.fullName,i.project_name,i.projectName].filter(Boolean).map(String);if(s.some(_=>f.includes(_)))return!0;const g=wt(e),S=wt(Lt(lt({},i),{geometry:t.geometry}));return!!(g&&S&&Math.abs(g[0]-S[0])<2e-5&&Math.abs(g[1]-S[1])<2e-5)}function qi(t={}){return t&&typeof t=="object"?t:{name:t,projectName:t,project_name:t}}function Zi(t,e={}){if(Ut(t,e))return!0;const i=(t==null?void 0:t.properties)||{},l=qt([e.id,e.key,e.featureId,e.projectId,e.project_id]),a=qt([t==null?void 0:t.id,i.id,i.key,i.feature_id,i.project_id,i.gid]);if(l.some(g=>a.includes(g)))return!0;const s=qt([e.name,e.fullName,e.projectName,e.project_name,e.title]),f=qt([i.name,i.fullName,i.project_name,i.projectName,i.title]);return s.some(g=>f.includes(g))}function qt(t=[]){const e=[];return t.forEach(i=>{if(i==null||i==="")return;const l=String(i).trim();if(!l)return;e.push(l);const a=l.replace(/\s+/g,"");a&&a!==l&&e.push(a)}),Array.from(new Set(e))}function an(t=[]){const e=new Set;return t.filter(i=>{const l=i==null?void 0:i.__hyFeature;return!l||e.has(l)?!1:(e.add(l),!0)})}function Xi(t=[]){return an(t).map(e=>e.__hyFeature).filter(Boolean)}function Ji(t=[]){const e=t.filter(l=>{var s;const a=String(((s=j(l==null?void 0:l.geometry))==null?void 0:s.type)||"");return a.includes("Polygon")||a.includes("LineString")}),i=e.filter(l=>{var a;return((a=l==null?void 0:l.properties)==null?void 0:a.feature_role)==="工程范围"});return i.length?i:e}function Ki(t){return(Array.isArray(t)?t:(t==null?void 0:t.grasslands)||(t==null?void 0:t.features)||(t==null?void 0:t.rows)||(t==null?void 0:t.list)||(t?[t]:[])).map((i,l)=>{var s,f;if((i==null?void 0:i.type)==="Feature")return i;const a=j(i==null?void 0:i.geometry)||me(De(i));return a?{type:"Feature",id:(f=(s=i==null?void 0:i.id)!=null?s:i==null?void 0:i.grasslandId)!=null?f:l,properties:lt({},i),geometry:a}:null}).filter(Boolean)}function j(t){if(!t)return null;if(t.type==="Feature")return j(t.geometry);if(t.type&&Array.isArray(t.coordinates))return t;if(typeof t=="string"){const e=t.trim();if(!e)return null;if(e.startsWith("{")||e.startsWith("["))try{return j(JSON.parse(e))}catch(i){return null}return me(e)}return null}function me(t){const i=String(t||"").trim().replace(/^SRID=\d+;/i,"").match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*(\(.+\))$/i);if(!i)return null;const l=i[1].toUpperCase(),a=i[2];return l==="POINT"?{type:"Point",coordinates:pe(a)}:l==="MULTIPOINT"?{type:"MultiPoint",coordinates:Zt(a).map(pe).filter(Boolean)}:l==="LINESTRING"?{type:"LineString",coordinates:de(a)}:l==="MULTILINESTRING"?{type:"MultiLineString",coordinates:Zt(a).map(de).filter(s=>s.length)}:l==="POLYGON"?{type:"Polygon",coordinates:un(a)}:l==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:Zt(a).map(un).filter(s=>s.length)}:null}function pe(t){const e=String(t||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return e.length===2&&e.every(Number.isFinite)?e:null}function de(t){return String(t||"").replace(/^\(+|\)+$/g,"").split(",").map(pe).filter(Boolean)}function un(t){return Zt(t).map(de).filter(e=>e.length>=3)}function Zt(t){const e=String(t||"").trim(),i=e.startsWith("(")&&e.endsWith(")")?e.slice(1,-1):e,l=[];let a=0,s=-1;return Array.from(i).forEach((f,g)=>{f==="("?(a===0&&(s=g),a+=1):f===")"&&(a-=1,a===0&&s>=0&&(l.push(i.slice(s,g+1)),s=-1))}),l.length?l:[i]}function _t(t=[]){const e=window.Cesium;return t.map(Y).filter(Boolean).map(i=>e.Cartesian3.fromDegrees(i[0],i[1],8))}function ge(t=[],e=be){const i=window.Cesium;return t.map(Y).filter(Boolean).map(l=>i.Cartesian3.fromDegrees(l[0],l[1],e))}function Y(t){if(!Array.isArray(t)||t.length<2)return null;const e=Number(t[0]),i=Number(t[1]);return Number.isFinite(e)&&Number.isFinite(i)?[e,i]:null}function wt(t={}){const e=j(t.geometry);return(e==null?void 0:e.type)==="Point"?Y(e.coordinates):[[t.longitude,t.latitude],[t.lng,t.lat],[t.lon,t.lat],[t.x,t.y],t.point,t.center,t.centroid,t.coordinates].map(Y).find(Boolean)||null}function cn(t,e){return!t||!(e!=null&&e.coordinates)?!1:e.type==="Polygon"?dn(t,e.coordinates):e.type==="MultiPolygon"?e.coordinates.some(i=>dn(t,i)):!1}function hn(t){return t!=null&&t.coordinates?t.type==="Polygon"?fn(t.coordinates):t.type==="MultiPolygon"?t.coordinates.reduce((e,i)=>e+fn(i),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}function fn(t=[]){const e=t[0]||[];if(e.length<3)return Number.POSITIVE_INFINITY;let i=0;for(let l=0;lmn(i,e))):t.type==="LineString"?pn(t.coordinates,e):t.type==="MultiLineString"?Math.min(...t.coordinates.map(i=>pn(i,e))):Number.POSITIVE_INFINITY}function mn(t,e){const i=xt(Y(t));return i?Math.hypot(Number(i.x)-Number(e.x),Number(i.y)-Number(e.y)):Number.POSITIVE_INFINITY}function pn(t=[],e){if(!Array.isArray(t)||t.length<2)return Number.POSITIVE_INFINITY;let i=Number.POSITIVE_INFINITY;for(let l=1;lgn(t,i))}function gn(t,e=[]){if(e.length<3)return!1;const i=Number(t.lng),l=Number(t.lat);if(!Number.isFinite(i)||!Number.isFinite(l))return!1;let a=!1;for(let s=0,f=e.length-1;sl!=T>l&&i<(C-_)*(l-F)/(T-F)+_&&(a=!a)}return a}function er(t,e,i,l,a,s){const f=(t-i)*(s-l)-(e-l)*(a-i);return Math.abs(f)>1e-10?!1:(t-i)*(t-a)+(e-l)*(e-s)<=1e-10}function nr(t){if(!t)return null;if(t.type==="Point")return Y(t.coordinates);const e=[];return Xt(t.coordinates,e),e.length?[e.reduce((i,l)=>i+l[0],0)/e.length,e.reduce((i,l)=>i+l[1],0)/e.length]:null}function Xt(t,e){const i=Y(t);if(i&&!Array.isArray(t[0])){e.push(i);return}Array.isArray(t)&&t.forEach(l=>Xt(l,e))}function ye(t=[]){const e=[];if(t.forEach(f=>{var S;const g=j((f==null?void 0:f.geometry)||((S=f==null?void 0:f.feature)==null?void 0:S.geometry)||f);g&&Xt(g.coordinates,e)}),!e.length)return null;const i=e.map(f=>f[0]),l=e.map(f=>f[1]),a=Math.max(.006,(Math.max(...i)-Math.min(...i))*.18),s=Math.max(.006,(Math.max(...l)-Math.min(...l))*.18);return{west:Math.max(G.west,Math.min(...i)-a),south:Math.max(G.south,Math.min(...l)-s),east:Math.min(G.east,Math.max(...i)+a),north:Math.min(G.north,Math.max(...l)+s)}}function V(t){if(!o){t.length=0;return}t.splice(0).forEach(e=>o.entities.remove(e))}function yn(){B.splice(0).forEach(t=>{var e,i;return(i=(e=o==null?void 0:o.imageryLayers)==null?void 0:e.remove)==null?void 0:i.call(e,t,!0)}),V(D),tt()}function It(){var t,e,i;I+=1,(t=b==null?void 0:b.disconnect)==null||t.call(b),b=null,P==null||P(),P=null,E==null||E(),E=null,(e=x==null?void 0:x.destroy)==null||e.call(x),x=null,yn(),V(ie),V(ut),V($),V(q),V(z),V(U),V(it),o&&!((i=o.isDestroyed)!=null&&i.call(o))&&o.destroy(),o=null,v=null,w.value=null,y.value&&y.value.replaceChildren()}function St(t,e=1){const i=Number(t);return Number.isFinite(i)?Math.max(0,Math.min(1,i)):e}function ct(t){return String(t||"").trim().replace(/(镇|乡)$/,"")}function ir(t){const e=Number(t);return Number.isFinite(e)?Number.isInteger(e)?String(e):String(Number(e.toFixed(2))):"--"}return n({loadMap:Zn,hasMap:Xn,play:Jn,resume:Re,pause:Kn,refreshView:Dt,resetView:Qn,destroyMap:It,highlightFeature:Je,clearSelectedFeature:tt,clearFloatingOverlays:Di,focusProject:tn,focusPasture:on,clearPastureFocus:sn,focusTown:Qe,focusYakIndustryPoint:en,focusVectorFeature:nn,getVectorFeatureAnchorScreen:rn,getVectorFeaturesAnchorScreen:Vt,getVectorFeatureScreen:Pt,getYakIndustryPointScreen:ce,setBoundaryDrawing:Wi,finishBoundaryDrawing:zi,undoBoundaryPoint:Gi,clearAnalysisBoundary:ji,showAnalysisResult:Yi,canvasMap:w}),(t,e)=>(pr(),dr("div",{ref_key:"containerRef",ref:d,class:"cesium-map"},[gr("div",{ref_key:"viewerRef",ref:y,class:"cesium-map__viewer"},null,512)],512))}},oo=cr(Kr,[["__scopeId","data-v-8d7881df"]]);export{ro as C,io as H,oo as M,Vr as a,$r as g}; diff --git a/docs/assets/index-c36df85d-balabala-1784045078568.css b/docs/assets/index-c36df85d-balabala-1784074877048.css similarity index 100% rename from docs/assets/index-c36df85d-balabala-1784045078568.css rename to docs/assets/index-c36df85d-balabala-1784074877048.css diff --git a/docs/assets/index-cc777d69-balabala-1784074877048.css b/docs/assets/index-cc777d69-balabala-1784074877048.css new file mode 100644 index 0000000..20a1d7b --- /dev/null +++ b/docs/assets/index-cc777d69-balabala-1784074877048.css @@ -0,0 +1 @@ +.cesium-map[data-v-b5154e17]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020b12}.cesium-map__viewer[data-v-b5154e17],.cesium-map__viewer[data-v-b5154e17] .cesium-viewer,.cesium-map__viewer[data-v-b5154e17] .cesium-viewer-cesiumWidgetContainer,.cesium-map__viewer[data-v-b5154e17] .cesium-widget,.cesium-map__viewer[data-v-b5154e17] canvas{width:100%;height:100%}.cesium-map__viewer[data-v-b5154e17] canvas{display:block;outline:none}.cesium-map__viewer[data-v-b5154e17] .cesium-viewer-bottom,.cesium-map__viewer[data-v-b5154e17] .cesium-widget-credits{display:none!important} diff --git a/docs/assets/index-e02d03a3-1784045078568.js b/docs/assets/index-e02d03a3-1784045078568.js deleted file mode 100644 index 390332f..0000000 --- a/docs/assets/index-e02d03a3-1784045078568.js +++ /dev/null @@ -1 +0,0 @@ -var Ht=Object.defineProperty,Ut=Object.defineProperties;var Kt=Object.getOwnPropertyDescriptors;var Ke=Object.getOwnPropertySymbols;var Yt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable;var Ye=(l,i,r)=>i in l?Ht(l,i,{enumerable:!0,configurable:!0,writable:!0,value:r}):l[i]=r,A=(l,i)=>{for(var r in i||(i={}))Yt.call(i,r)&&Ye(l,r,i[r]);if(Ke)for(var r of Ke(i))Qt.call(i,r)&&Ye(l,r,i[r]);return l},E=(l,i)=>Ut(l,Kt(i));var I=(l,i,r)=>new Promise((k,S)=>{var f=y=>{try{w(r.next(y))}catch($){S($)}},u=y=>{try{w(r.throw(y))}catch($){S($)}},w=y=>y.done?k(y.value):Promise.resolve(y.value).then(f,u);w((r=r.apply(l,i)).next())});import{g as Qe}from"./index-e9f36657-1784045078568.js";import{A as Jt}from"./assets-4a378a39-1784045078568.js";/* empty css */import{f as Xt,c as Je,b as Zt,g as Xe}from"./townshipBoundaries-1b068bef-1784045078568.js";import{g as en,b as tn,a as nn,c as sn}from"./openApi-528034ce-1784045078568.js";import{c as rn,F as an,g as ln,a as un}from"./featurePanelLayout-5da16b00-1784045078568.js";import{q as Ze,r as on,s as cn}from"./screen2Standard-98cd5b6c-1784045078568.js";import{M as dn}from"./index-c252ce06-1784045078568.js";import{_ as vn}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{_ as fn}from"./LayerPanel-67768a91-1784045078568.js";import{a as et,_ as gn}from"./FeatureInfoPanel-b2a9b292-1784045078568.js";import{_ as mn,g as c,o as _,c as L,a as b,t as Ne,F as Te,y as xe,n as de,J as ve,d as g,q as hn,h as wn,w as B,A as ee,b as q,C as tt,x as nt,u as Se,j as ce,z as yn}from"./index-1784045078568.js";import{_ as st}from"./index-27149dbd-1784045078568.js";import"./index-6a8ef8cf-1784045078568.js";import"./geoserver-6ded2e06-1784045078568.js";const bn="/jsyApi/api/map/ndvi_timeline";function kn(){return I(this,null,function*(){const l=yield fetch(bn,{credentials:"include",headers:{Accept:"application/json"}});if(!l.ok){const k=new Error(`HTTP ${l.status}`);throw k.status=l.status,k}const i=yield l.json().catch(()=>({}));if((i==null?void 0:i.code)===401||(i==null?void 0:i.code)==="401"){const k=new Error((i==null?void 0:i.msg)||(i==null?void 0:i.message)||"NDVI 时间轴未授权");throw k.status=401,k}const r=Array.isArray(i==null?void 0:i.data)?i.data:Array.isArray(i)?i:[];return _n(r)})}function _n(l=[]){const i=new Set;return l.map((r,k)=>{const S=pn(it(r,["url","layerName","layer_name","layer","name"]));if(!S)return null;const f=it(r,["date","month","time","label"])||S,u=Ln(f);return{key:`${S}-${f||k}`,label:u,date:String(f),layerName:S,source:r}}).filter(Boolean).filter(r=>i.has(r.key)?!1:(i.add(r.key),!0))}function it(l,i){for(const r of i)if((l==null?void 0:l[r])!==void 0&&(l==null?void 0:l[r])!==null&&(l==null?void 0:l[r])!=="")return l[r]}function pn(l){const i=String(l||"").trim();return i?i.includes(":")||/^https?:\/\//i.test(i)?i:`ne:${i}`:""}function Ln(l){const i=String(l||"").trim();if(!i)return"";const r=i.match(/(\d{4})[-_/年. ]?(0?[1-9]|1[0-2])(?:月)?/);return r?`${r[1]}.${String(Number(r[2])).padStart(2,"0")}`:i}const Sn={class:"grassland-ndvi-timeline-head"},Nn={key:0,class:"grassland-ndvi-timeline-state"},Tn={key:1,class:"grassland-ndvi-timeline-state"},xn={key:2,class:"grassland-ndvi-timeline-body"},Pn=["aria-checked","title","onClick"],Cn={class:"grassland-ndvi-timeline-label"},$n=42,Mn=28,Fn={__name:"GrasslandNdviTimeline",props:{items:{type:Array,default:()=>[]},modelValue:{type:String,default:""},loading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(l,{emit:i}){const r=l,k=i,S=c(()=>r.items.findIndex(v=>v.key===r.modelValue)),f=c(()=>S.value===-1?Math.max(0,r.items.length-1):S.value),u=c(()=>r.items[f.value]||null),w=c(()=>r.loading?"加载中":"未选择"),y=c(()=>r.items.length>7),$=c(()=>y.value?Mn:$n),te=c(()=>K(f.value)),ne=c(()=>G(f.value));function H(v){if(!r.items.length)return;const d=Math.min(r.items.length-1,Math.max(0,f.value+v));k("update:modelValue",r.items[d].key)}function se(v){!v||v.key===r.modelValue||k("update:modelValue",v.key)}function U(v){return!r.items.length||v<0?0:r.items.length===1?.5:v/(r.items.length-1)}function K(v){const d=U(v),x=p(d*100),m=$.value*(1-d*2);return`calc(${x}% ${m<0?"-":"+"} ${p(Math.abs(m))}px)`}function G(v){const d=U(v);return d<=0?"0px":`calc(${p(d*100)}% - ${p($.value*2*d)}px)`}function p(v){return Number(v.toFixed(4)).toString()}return(v,d)=>{var x;return _(),L("div",{class:de(["grassland-ndvi-timeline",{"is-dense":y.value}])},[b("div",Sn,[d[2]||(d[2]=b("span",null,"草地健康/退化",-1)),b("strong",null,Ne(((x=u.value)==null?void 0:x.label)||w.value),1)]),l.loading?(_(),L("div",Nn,"加载月份数据")):l.items.length?(_(),L("div",xn,[b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"上一期",onClick:d[0]||(d[0]=m=>H(-1))},"‹"),b("div",{class:"grassland-ndvi-timeline-track",style:ve({"--timeline-active-left":te.value,"--timeline-fill-width":ne.value,"--timeline-edge-offset":`${$.value}px`}),role:"radiogroup","aria-label":"草地健康退化月份"},[d[4]||(d[4]=b("div",{class:"grassland-ndvi-timeline-line"},null,-1)),d[5]||(d[5]=b("div",{class:"grassland-ndvi-timeline-fill"},null,-1)),d[6]||(d[6]=b("div",{class:"grassland-ndvi-timeline-thumb"},[b("i")],-1)),(_(!0),L(Te,null,xe(l.items,(m,R)=>{var j,N;return _(),L("button",{key:m.key,class:de(["grassland-ndvi-timeline-mark",{"is-active":m.key===((j=u.value)==null?void 0:j.key),"is-past":R<=f.value,"is-staggered":y.value&&R%2===1}]),type:"button",role:"radio","aria-checked":m.key===((N=u.value)==null?void 0:N.key),style:ve({left:K(R)}),title:m.date,onClick:Y=>se(m)},[d[3]||(d[3]=b("span",{class:"grassland-ndvi-timeline-tick"},null,-1)),b("span",Cn,Ne(m.label),1)],14,Pn)}),128))],4),b("button",{class:"grassland-ndvi-timeline-nav",type:"button",title:"下一期",onClick:d[1]||(d[1]=m=>H(1))},"›")])):(_(),L("div",Tn,"暂无月份数据"))],2)}}},An=mn(Fn,[["__scopeId","data-v-86212a95"]]),In={class:"forest-grass-wet"},Vn={class:"forest-grass-wet-ui",id:"forest-grass-wet-ui"},En={class:"fgw-left"},Bn={class:"fgw-side-stack is-left"},qn={class:"fgw-right"},Gn={class:"fgw-side-stack is-right"},Rn={key:1,class:"fgw-ndvi-timeline"},jn={class:"fgw-bottom-topic"},Dn={key:0,class:"loading"},zn={class:"loading-progress"},Wn={class:"value"},ls={__name:"index",props:{showLoading:{type:Boolean,default:!0},active:{type:Boolean,default:!0}},emits:["topic-stats"],setup(l,{expose:i,emit:r}){const k=l,S=r,f=g(null),u=g(Xt[0].key),w=g(""),y=g([]),$=g([]),te=g("idle"),ne=g(!1),H=g({title:"业务统计",rows:[]}),se=g({title:"业务统计",rows:[]}),U=g([]),K=g([]),G=g(null),p=g(""),v=g(null),d=g(!1),x=g(!1),m=g(null),R=g(0),j=g(k.showLoading),N=g([]),Y=g("idle"),M=g(""),V=g({type:"idle",text:"等待 GeoServer 图层加载"});let Q=null,C=!1,fe=!1,D=!1,F=null,Pe=0,Ce=0,ge=0,z=0,ie=!1,me=!1;const rt={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},at=new Set(["grassland-distribution","wetland-distribution","woodland-distribution","woodland-protection","woodland-type","woodland-quality","woodland-ownership"]),lt=[{topicKey:"wetland",layerKey:"wetland-distribution",name:"湿地分布",legendName:"湿地资源"},{topicKey:"grassland",layerKey:"grassland-distribution",name:"草地分布",legendName:"草地资源"},{topicKey:"woodland",layerKey:"woodland-distribution",name:"林地分布",legendName:"林地资源"}],ut=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase()));c(()=>Je(u.value));const ot=c(()=>Zt(u.value)),re=c(()=>lt.map(e=>kt(e)).filter(Boolean)),ae=c(()=>u.value==="overview"?re.value:ot.value),$e=c({get(){return u.value==="overview"?y.value:w.value},set(e){if(u.value==="overview"){y.value=Array.isArray(e)?e.map(String).filter(Boolean):[];return}w.value=String(e||"")}}),J=c(()=>w.value?Xe(u.value,w.value):null),X=c(()=>u.value==="grassland"&&w.value==="grassland-health"),ct=c(()=>X.value),dt=c(()=>N.value.find(e=>e.key===M.value)||null),W=c(()=>{var e;return(((e=J.value)==null?void 0:e.legends)||[]).find(t=>t.key===p.value)||null}),vt=c(()=>re.value.flatMap(e=>e.legends||[])),he=c(()=>{var e;return u.value==="overview"?vt.value:((e=J.value)==null?void 0:e.legends)||[]}),ft=c(()=>ae.value.length>0),Me=c(()=>ae.value.length<=6&&he.value.length<=8),Fe=c(()=>{if(!Me.value)return 430;const e=Math.max(1,ae.value.length),t=Math.max(1,he.value.length),n=e*32,s=30+t*28;return Math.max(272,Math.min(520,96+n+s))}),gt=c(()=>{var s;if(u.value==="overview"){const a=new Set(y.value),o=re.value.filter(h=>a.has(h.key));return _t(o)}const e=J.value;if(!e)return null;let t=(s=W.value)!=null&&s.cqlFilter?E(A({},e),{cqlFilter:W.value.cqlFilter,activeLegend:W.value,name:W.value.name||e.name}):e;const n=dt.value;return X.value&&(n!=null&&n.layerName)&&(t=E(A({},t),{layerName:n.layerName,name:`${e.name} ${n.label}`,timelineDate:n.label,timelineItem:n})),t}),Ae=g(typeof window=="undefined"?1080:window.innerHeight),Ie=Ze.sideCardWidth;c(()=>Ze.sideCardGap);const Ve=c(()=>on(Ae.value)),mt=c(()=>cn(Ve.value,2)),we=c(()=>!!m.value),ht=an,Ee=c(()=>rn({point:m.value?bt(m.value):null,rowCount:v.value?pe(v.value):0,loading:x.value,empty:d.value||!v.value})),wt=c(()=>Ee.value.height),yt=c(()=>Ee.value.style);function bt(e){const t=document.querySelector(".forest-grass-wet"),n=t==null?void 0:t.getBoundingClientRect();return!(n!=null&&n.width)||!(n!=null&&n.height)?e:{x:(e.x-n.left)/n.width*1920,y:(e.y-n.top)/n.height*1080}}function ye(){Ae.value=typeof window=="undefined"?1080:window.innerHeight}function kt({topicKey:e,layerKey:t,name:n,legendName:s}){var h;const a=Xe(e,t);if(!a||a.key!==t)return null;const o=((h=a.legends)==null?void 0:h[0])||{};return E(A({},a),{name:n,overviewTopicKey:e,legends:[E(A({},o),{key:`overview-${t}`,name:s,selectable:!1})]})}function _t(e=[]){const t=e.filter(Boolean);if(!t.length)return null;const[n,...s]=t;return E(A({},n),{overlayLayers:s})}hn(()=>{ye(),window.addEventListener("resize",ye),document.addEventListener("pointerdown",Oe,!0),pt(),ke(u.value,""),le(u.value,"")}),wn(()=>{C=!0,F&&window.clearTimeout(F),window.removeEventListener("resize",ye),document.removeEventListener("pointerdown",Oe,!0)}),B(u,e=>{ie=!0,p.value="",w.value="",e==="overview"&&(y.value=[]),T(),V.value={type:"idle",text:"等待 GeoServer 图层加载"},ke(e,""),le(e,"",null),ee(()=>{ie=!1})}),B(w,()=>{ie||(me=!0,p.value="",T(),V.value={type:w.value?"loading":"idle",text:w.value?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},u.value!=="woodland"&&ke(u.value,w.value),le(u.value,w.value,null),ee(()=>{me=!1}))}),B(y,()=>{u.value==="overview"&&(p.value="",T(),V.value={type:y.value.length?"loading":"idle",text:y.value.length?"正在加载 GeoServer 图层":"等待 GeoServer 图层加载"},G.value=We("overview",y.value.join(",")))},{deep:!0}),B(p,()=>{ie||me||(T(),le(u.value,w.value,W.value))}),B(X,e=>{if(e){Nt();return}M.value=""}),B(M,()=>{X.value&&T()}),B(()=>k.active,e=>{var t,n,s,a;f.value&&(e?(be(),(n=(t=f.value).resume)==null||n.call(t)):(a=(s=f.value).pause)==null||a.call(s))});function pt(){var n;Q=new Jt;const e={progress:0};Q.instance.on("onProgress",(s,a,o)=>{const h=Math.floor(a/o*100);Qe.to(e,{progress:h,onUpdate:()=>{R.value=Math.floor(e.progress)}})});const t=()=>{C||fe||(fe=!0,be())};Q.instance.on("onLoad",t),(n=Q.ready)==null||n.then(t).catch(()=>{C||(V.value={type:"error",text:"地图资源加载失败"})})}function be(){C||!k.active||!fe||D||(D=!0,F&&window.clearTimeout(F),F=window.setTimeout(()=>{F=null,Be()},600))}function Be(e=0){return I(this,null,function*(){var n,s,a,o,h;if(C)return;if(!k.active){D=!1;return}if(yield ee(),!k.active){D=!1;return}if(!!((s=(n=f.value)==null?void 0:n.loadMap)!=null&&s.call(n,Q)||(o=(a=f.value)==null?void 0:a.hasMap)!=null&&o.call(a))){yield Ot(),yield ee(),(h=f.value)==null||h.play();return}if(e<24){window.setTimeout(()=>Be(e+1),120);return}D=!1})}function Lt(){F&&(window.clearTimeout(F),F=null)}function qe(){var e,t,n,s;(t=(e=f.value)==null?void 0:e.resume)==null||t.call(e),(s=(n=f.value)==null?void 0:n.refreshView)==null||s.call(n)}function St(){var e,t;if(T(),V.value={type:"loading",text:"地图正在复位"},(t=(e=f.value)==null?void 0:e.hasMap)!=null&&t.call(e)){qe(),V.value={type:"success",text:"地图已复位"};return}Lt(),D=!1,ee(()=>{be()})}i({refreshMapView:qe,resetMap:St});function ke(n){return I(this,arguments,function*(e,t=w.value){const s=e==="woodland"?"":t,a=++Ce;ne.value=!0,te.value="loading";const o=yield en(e,s);C||a!==Ce||e===u.value&&(e!=="woodland"&&(s||"")!==(w.value||"")||Tt(o,e))})}function Nt(e=!1){return I(this,null,function*(){if(!X.value)return;if(!e&&N.value.length){Ge();return}const t=++ge;Y.value="loading";try{const n=yield kn();if(C||t!==ge)return;N.value=n,Y.value=n.length?"success":"empty",Ge()}catch(n){if(C||t!==ge)return;N.value=[],M.value="",Y.value="error"}})}function Ge(){if(!N.value.length){M.value="";return}N.value.some(t=>t.key===M.value)||(M.value=N.value[N.value.length-1].key)}function Tt(e,t){var s,a,o;const n=xt(e);$.value=n.core||[],H.value=n.left||{title:"业务统计",rows:[]},se.value=n.right||{title:"业务统计",rows:[]},U.value=(s=n.leftPanels)!=null&&s.length?n.leftPanels:[H.value],K.value=(a=n.rightPanels)!=null&&a.length?n.rightPanels:[se.value],te.value=n.status,ne.value=!1,S("topic-stats",{topicKey:t,topicName:Je(t).name,items:((o=n.top)!=null&&o.length?n.top:n.core||[]).slice(0,4)})}function xt(e){return e||{}}function Re(e,t){return`${u.value}-${t}-${(e==null?void 0:e.key)||(e==null?void 0:e.title)||"panel"}`}function _e(e){var n;const t=((n=e==null?void 0:e.rows)==null?void 0:n.length)||0;return(e==null?void 0:e.span)===1?!1:(e==null?void 0:e.span)===2?!0:(e==null?void 0:e.type)==="spotlight"||(e==null?void 0:e.type)==="metric"||(e==null?void 0:e.type)==="column"&&t<=5?!1:(e==null?void 0:e.type)==="rank"&&t>4||(e==null?void 0:e.type)==="split"&&t>4||(e==null?void 0:e.type)==="donut"&&t>5||(e==null?void 0:e.type)==="structure"&&t>4||(e==null?void 0:e.type)==="bar"&&t>4||(e==null?void 0:e.type)==="line"&&t>6}function je(e){return _e(e)?mt.value:Ve.value}function pe(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(s=>De(s,t[s])).length}function De(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!ut.has(String(e||"").toLowerCase())}function Pt(){if(u.value==="overview"){const e=new Set(y.value);return re.value.filter(t=>e.has(t.key)).slice().reverse()}return J.value?[J.value]:[]}function Ct(e={}){const t=String(e.overviewTopicKey||u.value||"").toLowerCase(),n=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return n.includes("basic-grassland")||n.includes("t_basic_grassland")?"basicGrassland":t==="woodland"||n.includes("woodland")||n.includes("t_woodland")?"woodland":t==="wetland"||n.includes("wetland")||n.includes("shidi")?"wetland":t==="grassland"||n.includes("grassland")||n.includes("caodi")?"grassland":""}function $t(e={}){const t=ze(e.lng),n=ze(e.lat);return t===""||n===""?"":`POINT(${t} ${n})`}function ze(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Mt(){return I(this,arguments,function*(e={}){var h,O,P,Z,ue,He;const t=Number((h=e==null?void 0:e.lngLat)==null?void 0:h.lng),n=Number((O=e==null?void 0:e.lngLat)==null?void 0:O.lat),s=Pt();if(!Number.isFinite(t)||!Number.isFinite(n)||!s.length){T();return}const a=++z,o=e.screen||{x:960,y:540};m.value=null,v.value=null,d.value=!1,x.value=!0,(Z=(P=f.value)==null?void 0:P.clearSelectedFeature)==null||Z.call(P);try{for(const Ue of s){const oe=yield Ft(Ue,{lng:t,lat:n});if(a!==z||C)return;if(oe){v.value=oe,m.value=Le(oe,o),d.value=!1,(He=(ue=f.value)==null?void 0:ue.highlightFeature)==null||He.call(ue,oe,{highlightTone:"v21"});return}}a===z&&T()}catch(Ue){a===z&&T()}finally{a===z&&(x.value=!1)}})}function Ft(e,t){return I(this,null,function*(){const n=Ct(e);if(!n)return null;const s=$t(t);let a=null;n==="grassland"?a=yield ln({wkt:s}):n==="wetland"?a=yield un({wkt:s}):n==="woodland"?a=yield nn(s):n==="basicGrassland"&&(a=yield sn(s));const o=At(a,n);if(!Vt(o))return null;const h=Bt(o,e,t,n);return pe(h)>0?h:null})}function At(e,t){var s,a,o,h,O;const n=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,e==null?void 0:e.basicGrassland,(s=e==null?void 0:e.data)==null?void 0:s[t],(a=e==null?void 0:e.data)==null?void 0:a.grassland,(o=e==null?void 0:e.data)==null?void 0:o.wetland,(h=e==null?void 0:e.data)==null?void 0:h.woodland,(O=e==null?void 0:e.data)==null?void 0:O.basicGrassland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const P of n){const Z=It(P);if(Z)return Z}return null}function It(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function Vt(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some(Et)?!0:Object.keys(e).some(t=>De(t,e[t]))}function Et(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Bt(e,t,n,s){const a=Gt(e),o=qt(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${s}-${n.lng}-${n.lat}`,properties:a,feature:{type:"Feature",properties:a,geometry:o},geometry:o,layer:t,lngLat:n}}function qt(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Gt(e={}){const t=A({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(s=>{const a=s==null?void 0:s.value;if(a==null||a==="")return;const o=rt[String((s==null?void 0:s.title)||"").trim()],h=String((s==null?void 0:s.field)||"").trim();[h,Rt(h),o].filter(Boolean).forEach(P=>{(t[P]===void 0||t[P]===null||t[P]==="")&&(t[P]=a)})}),t}function Rt(e){return String(e||"").replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function le(s,a){return I(this,arguments,function*(e,t,n=W.value){const o=++Pe;if(!t||!jt(t,n)){G.value=We(e,t);return}const h=yield tn(e,t,n);C||o!==Pe||e!==u.value||t!==w.value||((n==null?void 0:n.key)||"")===p.value&&(G.value=E(A({},h),{hideTownLabelStats:!0}))})}function jt(e,t=null){return!!(t!=null&&t.key)||at.has(e)}function We(e,t){return{status:"disabled",topicKey:e,layerKey:t,title:"",unit:"",hideTownLabelStats:!0,rows:[]}}function Dt(e){var n,s;const t=(s=(n=e==null?void 0:e.feature)!=null?n:e)!=null?s:null;if(!t||pe(t)<=0){T();return}v.value=t,d.value=!1,m.value=Le(t,(e==null?void 0:e.screen)||m.value)}function Le(e,t=null){var n,s,a,o;return((s=(n=f.value)==null?void 0:n.getVectorFeatureAnchorScreen)==null?void 0:s.call(n,e))||((o=(a=f.value)==null?void 0:a.getVectorFeatureScreen)==null?void 0:o.call(a,e))||t}function zt(){if(!we.value||!v.value)return;const e=Le(v.value,m.value);if(!e)return;const t=m.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(m.value=e)}function Wt(e){V.value=e}function T(){var e,t;z+=1,v.value=null,d.value=!1,x.value=!1,m.value=null,(t=(e=f.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function Oe(e){if(!we.value)return;const t=document.querySelector(".fgw-map-feature-info"),n=document.querySelector(".forest-grass-wet .cesium-map"),s=e.target;t&&s instanceof Node&&t.contains(s)||n&&s instanceof Node&&n.contains(s)||T()}function Ot(){return j.value?new Promise(e=>{Qe.to(".forest-grass-wet .loading",{opacity:0,duration:.8,delay:.2,onComplete:()=>{j.value=!1,e()}})}):Promise.resolve()}return(e,t)=>(_(),L("div",In,[q(dn,{ref_key:"mapSceneRef",ref:f,"active-layer":gt.value,"map-ranking":G.value,"admin-boundary-line-scale":2.4,"initial-zoom":9.55,"max-zoom":21,"hide-town-label-stats":"","enable-imagery-feature-pick":!1,"enable-town-polygon-pick":!1,onFeatureLoading:t[0]||(t[0]=n=>x.value=n),onFeatureInfo:Dt,onMapClick:Mt,onLayerStatus:Wt,onViewChange:zt},null,8,["active-layer","map-ranking"]),b("div",Vn,[b("div",En,[b("div",Bn,[(_(!0),L(Te,null,xe(U.value,n=>(_(),tt(st,{key:Re(n,"left"),class:de(["fgw-side-card left-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[q(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),b("div",qn,[b("div",Gn,[(_(!0),L(Te,null,xe(K.value,n=>(_(),tt(st,{key:Re(n,"right"),class:de(["fgw-side-card right-card",{"is-double":_e(n)}]),title:n.title,width:Se(Ie),height:je(n)},{default:nt(()=>[q(et,{panel:n,compact:"","column-label-standard":"","visual-version":"v21"},null,8,["panel"])]),_:2},1032,["class","title","width","height"]))),128))])]),ft.value?(_(),L("div",{key:0,class:"fgw-map-layer-tools",style:ve({height:`${Fe.value}px`})},[q(fn,{modelValue:$e.value,"onUpdate:modelValue":t[1]||(t[1]=n=>$e.value=n),"selected-legend-key":p.value,"onUpdate:selectedLegendKey":t[2]||(t[2]=n=>p.value=n),"topic-key":u.value,layers:ae.value,legends:he.value,multiple:u.value==="overview",width:248,height:Fe.value,compact:Me.value},null,8,["modelValue","selected-legend-key","topic-key","layers","legends","multiple","height","compact"])],4)):ce("",!0),ct.value?(_(),L("div",Rn,[q(An,{modelValue:M.value,"onUpdate:modelValue":t[3]||(t[3]=n=>M.value=n),items:N.value,loading:Y.value==="loading"},null,8,["modelValue","items","loading"])])):ce("",!0),we.value?(_(),L("div",{key:2,class:"fgw-map-feature-info",style:ve(yt.value)},[q(gn,{feature:v.value,empty:d.value,loading:x.value,width:Se(ht),height:wt.value,closable:"",onClose:T},null,8,["feature","empty","loading","width","height"])],4)):ce("",!0),b("div",jn,[q(vn,{modelValue:u.value,"onUpdate:modelValue":t[4]||(t[4]=n=>u.value=n)},null,8,["modelValue"])])]),j.value?(_(),L("div",Dn,[t[6]||(t[6]=yn('
    LOADING
    ',1)),b("div",zn,[b("span",Wn,Ne(R.value),1),t[5]||(t[5]=b("span",{class:"unit"},"%",-1))])])):ce("",!0)]))}};export{ls as default}; diff --git a/docs/assets/index-e174cf85-balabala-1784045078568.css b/docs/assets/index-e174cf85-balabala-1784045078568.css deleted file mode 100644 index e19886f..0000000 --- a/docs/assets/index-e174cf85-balabala-1784045078568.css +++ /dev/null @@ -1 +0,0 @@ -.cesium-map[data-v-8d7881df]{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#020b12}.cesium-map__viewer[data-v-8d7881df],.cesium-map__viewer[data-v-8d7881df] .cesium-viewer,.cesium-map__viewer[data-v-8d7881df] .cesium-viewer-cesiumWidgetContainer,.cesium-map__viewer[data-v-8d7881df] .cesium-widget,.cesium-map__viewer[data-v-8d7881df] canvas{width:100%;height:100%}.cesium-map__viewer[data-v-8d7881df] canvas{display:block;outline:none}.cesium-map__viewer[data-v-8d7881df] .cesium-viewer-bottom,.cesium-map__viewer[data-v-8d7881df] .cesium-widget-credits{display:none!important} diff --git a/docs/assets/index-e4881302-1784045078568.js b/docs/assets/index-e4881302-1784045078568.js deleted file mode 100644 index 5a5b3da..0000000 --- a/docs/assets/index-e4881302-1784045078568.js +++ /dev/null @@ -1,116 +0,0 @@ -var ll=Object.defineProperty,ul=Object.defineProperties;var cl=Object.getOwnPropertyDescriptors;var ja=Object.getOwnPropertySymbols;var er=Object.prototype.hasOwnProperty,tr=Object.prototype.propertyIsEnumerable;var pa=Math.pow,Qn=(b,e,t)=>e in b?ll(b,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):b[e]=t,N=(b,e)=>{for(var t in e||(e={}))er.call(e,t)&&Qn(b,t,e[t]);if(ja)for(var t of ja(e))tr.call(e,t)&&Qn(b,t,e[t]);return b},$=(b,e)=>ul(b,cl(e));var ar=(b,e)=>{var t={};for(var a in b)er.call(b,a)&&e.indexOf(a)<0&&(t[a]=b[a]);if(b!=null&&ja)for(var a of ja(b))e.indexOf(a)<0&&tr.call(b,a)&&(t[a]=b[a]);return t};var he=(b,e,t)=>new Promise((a,n)=>{var s=d=>{try{u(t.next(d))}catch(h){n(h)}},o=d=>{try{u(t.throw(d))}catch(h){n(h)}},u=d=>d.done?a(d.value):Promise.resolve(d.value).then(s,o);u((t=t.apply(b,e)).next())});import{q as Dr,h as Or,w as Ht,o as I,c as B,a as f,d as z,K as dl,A as Yt,g as k,L as Ae,s as tt,v as hl,C as Ha,j as ke,n as Oe,t as P,F as ne,y as pe,u as j,b as H,x as oe,J as Mt,B as Ot,e as qa,H as Zt,f as Ua,N as fa}from"./index-1784045078568.js";import{H as Pe}from"./index.esm.min-43166a2f-1784045078568.js";import{_ as le}from"./index-27149dbd-1784045078568.js";import{t as qi,S as ia,u as ai,v as La,w as pl,V as re,F as fl,C as yt,G as Te,c as ml,d as gl,f as yl,g as zi,L as Xt,D as Re,a as ve,h as Ka,R as ut,A as Ie,N as ir,b as qe,P as It,o as Jt,n as Qt,x as bl,T as vl,B as wl,i as Ll,j as Tl,k as Sl,l as Ml,m as kl,y as Pl,z as ma,E as nr,H as rr,I as Cl,J as sr,q as or,r as Fl,s as lr,K as ga,U as Di,W as ur,M as xl}from"./screen2Standard-98cd5b6c-1784045078568.js";import{g as jt,M as Nl,h as Rl,L as Il,B as ya,a as ea,E as cr,G as Za,D as Gl,b as _l,l as Bl,P as dr,c as hr,d as Al,m as El,t as $l,k as ct,n as Vl,o as pr,p as zl,q as Dl,r as Oi,s as ba,u as fr,v as mr,f as Gt,w as gr,x as Ol,y as Wl,e as Yl,i as jl,j as Hl}from"./data-bfed1662-1784045078568.js";import{g as ta}from"./index-e9f36657-1784045078568.js";import{h as ql,a as Wr,S as Ul,W as _t,H as q,j as Wi,k as Kl}from"./townshipBoundaries-1b068bef-1784045078568.js";import{b as Zl,g as yr,a as br,c as Xl}from"./geoserver-6ded2e06-1784045078568.js";import{_ as Jl}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{A as Ql}from"./assets-4a378a39-1784045078568.js";import{M as eu}from"./index-c252ce06-1784045078568.js";import{a as tu,b as au,c as iu,d as nu,g as vr,e as wr,f as ru,h as Yi,i as su,j as ou,k as lu}from"./yakApi-9c3a9777-1784045078568.js";import{y as uu}from"./livestockData-36ec0ae2-1784045078568.js";import"./index-6a8ef8cf-1784045078568.js";const cu=ql.map(b=>N({},b)),Lr=Wr.map(b=>N({},b)),du=Wr.map(b=>{var e,t;return{name:b.name,value:b.value,lng:(e=b.center)==null?void 0:e[0],lat:(t=b.center)==null?void 0:t[1]}}),hu=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}],na=256,Ui="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",pu=900,fu=10,qt=new Map,ra={west:101.852492,south:31.851389,east:103.347518,north:33.319796};function ji(b,e,t){const a=pa(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function Tr(b,e,t){const a=pa(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Xa(b,e,t){return Math.max(e,Math.min(t,b))}function Yr(b,e,{centerLngLat:t,maxCols:a,maxRows:n}={}){const s=ji(b.west,b.north,e),o=ji(b.east,b.south,e),u=Math.floor(s.x),d=Math.floor(o.x),h=Math.floor(s.y),g=Math.floor(o.y);let m=u,L=d,S=h,C=g,x=Math.floor((u+d)/2),E=Math.floor((h+g)/2);if(t&&Number.isFinite(a)&&Number.isFinite(n)){const O=Xa(Number(t[0]),b.west,b.east),ee=Xa(Number(t[1]),b.south,b.north),se=ji(O,ee,e);x=Math.floor(se.x),E=Math.floor(se.y);const Z=Math.max(1,Math.min(Math.floor(a),d-u+1)),R=Math.max(1,Math.min(Math.floor(n),g-h+1));m=Xa(x-Math.floor(Z/2),u,d-Z+1),S=Xa(E-Math.floor(R/2),h,g-R+1),L=m+Z-1,C=S+R-1}return{zoom:e,minX:m,maxX:L,minY:S,maxY:C,centerX:x,centerY:E,cols:L-m+1,rows:C-S+1}}function mu({zoom:b=11,centerLngLat:e,maxCols:t,maxRows:a,bounds:n=ra}={}){return Yr(n,b,{centerLngLat:e,maxCols:t,maxRows:a})}function gu(b,e){const[t,a]=Tr(b.minX,b.minY,b.zoom),[n,s]=Tr(b.maxX+1,b.maxY+1,b.zoom),[o]=e([t,ra.south]),[u]=e([n,ra.south]),[,d]=e([ra.west,a]),[,h]=e([ra.west,s]);return{left:o,right:u,bottom:-h,top:-d}}function yu(b,e){const{width:t,height:a}=e;b.save(),b.globalCompositeOperation="multiply",b.fillStyle="rgba(5, 24, 34, 0.22)",b.fillRect(0,0,t,a),b.globalCompositeOperation="screen";const n=b.createRadialGradient(t*.5,a*.48,t*.1,t*.5,a*.5,t*.72);n.addColorStop(0,"rgba(80, 230, 255, 0.16)"),n.addColorStop(1,"rgba(0, 18, 36, 0.03)"),b.fillStyle=n,b.fillRect(0,0,t,a),b.restore()}function bu(b,e){const t=b.createLinearGradient(0,0,e.width,e.height);t.addColorStop(0,"#061927"),t.addColorStop(.5,"#0b2c3c"),t.addColorStop(1,"#07131f"),b.fillStyle=t,b.fillRect(0,0,e.width,e.height)}function vu(b){const e=qt.get(b);return e||new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t(a),a.onerror=()=>{qt.delete(b),t(null)},a.src=b})}function wu(b){const e=qt.get(b);if(e)return e;const t=vu(b);for(qt.set(b,t);qt.size>pu;){const a=qt.keys().next().value;if(!a)break;qt.delete(a)}return t}function Lu(b,e,t,a=Ui){return String(a||Ui).replace(/\{x\}/g,b).replace(/\{y\}/g,e).replace(/\{z\}/g,t)}function Tu(u,d,h,g){return he(this,arguments,function*(b,e,t,a,{tileUrlTemplate:n,onTileStatus:s,applyTone:o=!0}={}){const m=[],L=a.cols*a.rows;let S=0,C=0;s==null||s({type:"loading",text:`正在加载${a.zoom}级影像底图`,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n}),b.save(),b.filter="brightness(0.92) contrast(1.22) saturate(1.06)";for(let Z=a.minX;Z<=a.maxX;Z+=1)for(let R=a.minY;R<=a.maxY;R+=1)m.push({x:Z,y:R});m.sort((Z,R)=>Math.abs(Z.x-a.centerX)+Math.abs(Z.y-a.centerY)-(Math.abs(R.x-a.centerX)+Math.abs(R.y-a.centerY)));let x=0;function E(){return he(this,null,function*(){for(;x0?S/L:0,ee=S===0?"error":O>=.75?"success":"warning",se=S===L?`${a.zoom}级影像底图已加载`:S>0?`${a.zoom}级影像底图已加载(${S}/${L}张有效瓦片)`:`${a.zoom}级影像底图加载失败`;s==null||s({type:ee,text:se,loaded:S,failed:C,total:L,zoom:a.zoom,tileRange:a,tileUrlTemplate:n})})}function Sr({geoProjectionCenter:b,geoProjectionScale:e,zoom:t=11,tileUrlTemplate:a=Ui,onTileStatus:n,centerLngLat:s,maxCols:o,maxRows:u,transparentBackground:d=!1,applyTone:h=!0}={}){const g=Yr(ra,t,{centerLngLat:s,maxCols:o,maxRows:u}),m=document.createElement("canvas");m.width=g.cols*na,m.height=g.rows*na;const L=m.getContext("2d");d?L.clearRect(0,0,m.width,m.height):bu(L,m);const S=new qi(m);S.colorSpace=ia,S.wrapS=ai,S.wrapT=ai,S.minFilter=La,S.magFilter=La,S.needsUpdate=!0;const C=jt().center(b).scale(e).translate([0,0]),x=gu(g,C);return Tu(L,m,S,g,{tileUrlTemplate:a,onTileStatus:n,applyTone:h}).catch(E=>{console.warn("load satellite tiles failed:",E),n==null||n({type:"error",text:`${g.zoom}级影像底图加载失败`,loaded:0,failed:g.cols*g.rows,total:g.cols*g.rows,zoom:g.zoom,tileRange:g,tileUrlTemplate:a})}),{texture:S,uvBounds:x,tileRange:g}}function Mr(b,e){const t=e.right-e.left,a=e.top-e.bottom;b.mapGroup.traverse(n=>{var u,d;const s=(d=(u=n.geometry)==null?void 0:u.attributes)==null?void 0:d.position;if(!n.isMesh||!s)return;const o=new Float32Array(s.count*2);for(let h=0;ht.value-e.value),b}function dt(b){return String(b||"").replace(/\s+/g,"").trim()}function ue(b,e=0){const t=Number(b);return Number.isFinite(t)?t:e}function Wt(b,e,t){const a=Number(b);return Number.isFinite(a)?Math.max(e,Math.min(t,a)):e}function Se(b){return String(b!=null?b:"").replace(/[&<>"']/g,e=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[e])}function Nr(b){return(b==null?void 0:b.scope)==="village"||(b==null?void 0:b.labelMode)==="village"}function Rr(b){return(b==null?void 0:b.scope)==="trade-flow"||(b==null?void 0:b.labelMode)==="trade-flow"}function Gu(b){return(b==null?void 0:b.showFlowLines)!==!1}function Ir(b){return!!(b!=null&&b.hideTownNames||(b==null?void 0:b.showTownNames)===!1)}function va(b){return!!(b!=null&&b.hideMapLabels||(b==null?void 0:b.showMapLabels)===!1)}function _u(b){return(b==null?void 0:b.displayMode)==="callout"||(b==null?void 0:b.labelMode)==="callout"}function Qa(b){return["wkt-api","geojson","wfs"].includes(String((b==null?void 0:b.sourceType)||"").toLowerCase())}function Bu(b){return(b==null?void 0:b.interactive)===!1||(b==null?void 0:b.key)==="yak-recognition-layer"}function Gr(b){return String((b==null?void 0:b.sourceType)||"").toLowerCase()==="wmts"}function _r(b,e,t){const a=pa(2,t),n=Math.sin(e*Math.PI/180);return{x:(b+180)/360*a,y:(.5-Math.log((1+n)/(1-n))/(4*Math.PI))*a}}function Br(b,e,t){const a=pa(2,t),n=b/a*360-180,s=Math.PI-2*Math.PI*e/a,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[n,o]}function Au(b,e){const t=_r(b.west,b.north,e),a=_r(b.east,b.south,e);return{minX:Math.floor(t.x),maxX:Math.floor(a.x),minY:Math.floor(t.y),maxY:Math.floor(a.y)}}function Eu(b,e,t,a){const[n,s]=Br(b,e,t),[o,u]=Br(b+1,e+1,t),d=q.east-q.west,h=q.north-q.south;return{x:(n-q.west)/d*a.width,y:(q.north-s)/h*a.height,width:(o-n)/d*a.width,height:(s-u)/h*a.height}}function $u(b){const e=aa.get(b);if(e)return e;const t=new Promise(a=>{const n=new Image;n.crossOrigin="anonymous",n.onload=()=>a(n),n.onerror=()=>{aa.delete(b),a(null)},n.src=b});for(aa.set(b,t);aa.size>xu;){const a=aa.keys().next().value;if(!a)break;aa.delete(a)}return t}function Ar(b){return b?/^https?:\/\//.test(b)||b.startsWith("/")?b:`./${b}`:""}function Vu(b){if(!b)return null;if(typeof b=="string")try{return JSON.parse(b)}catch(e){return console.warn("地图 GeoJSON 解析失败",e),null}return b}function wa(b){const e=Vu(b);return e!=null&&e.features&&e.features.forEach(t=>{var a;((a=t.geometry)==null?void 0:a.type)==="Polygon"&&(t.geometry.coordinates=[t.geometry.coordinates])}),e}function Er(b){var e,t,a;return b!=null&&b.coordinates?b.type==="Polygon"?Array.isArray((a=(t=(e=b.coordinates)==null?void 0:e[0])==null?void 0:t[0])==null?void 0:a[0])?b.coordinates:[b.coordinates]:b.type==="MultiPolygon"?b.coordinates:[]:[]}class zu extends Nl{constructor(e,t,a={}){var u,d,h,g;super(e),this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.tradeGeoProjectionCenter=[104,36],this.tradeGeoProjectionScale=11.4,this.tradeNationalDepth=.24,this.depth=.5,this.clicked=!1,this.scene.fog=new fl(466735,1,50),this.scene.background=new yt(466735),this.camera.instance.position.copy(ku),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.defaultMapCameraPosition=Su.clone(),this.defaultMapTarget=Mu.clone(),this.camera.controls.target.copy(this.defaultMapTarget),this.camera.controls.update(),this.activeMapViewTweens=[],this.sceneTweens=[],this.sceneTimers=[],this.interactionManager=new Rl(this.renderer.instance,this.camera.instance,this.canvas),this.assets=t,this.callbacks=a,this.useSatelliteBase=a.useSatelliteBase!==!1,this.showNationalBackdrop=a.showNationalBackdrop===!0,this.topicLayerPresentation=a.topicLayerPresentation||"default",this.hideTownLabelStatsByDefault=a.hideTownLabelStats===!0,this.tileUrlTemplate=a.tileUrlTemplate||"",this.usesCustomSatelliteTiles=this.useSatelliteBase&&!!this.tileUrlTemplate;const n=Math.round(Number(a.satelliteTextureZoom));this.satelliteTextureZoom=Number.isFinite(n)&&n>0?Math.min(Ja,n):Ul;const s=Math.round(Number(a.satelliteMaxZoom)),o=Number.isFinite(s)&&s>0?Math.min(Ja,Math.max(this.satelliteTextureZoom,s)):Ja;this.adminBoundaryLineScale=this.normalizeAdminBoundaryLineScale(a.adminBoundaryLineScale),this.mapBoundaryEmphasisMaterial=null,this.dynamicSatelliteMaxZoom=o,this.dynamicSatelliteTileWindow=Pu,this.dynamicSatelliteOverlay=null,this.dynamicSatelliteMaterial=null,this.dynamicSatelliteTexture=null,this.dynamicSatelliteCurrentKey="",this.dynamicSatelliteLoadingKey="",this.dynamicSatelliteRequestId=0,this.dynamicSatelliteLastCheck=0,this.topicLayerLoadId=0,this.visibleTopicLayers=[],this.mapAnimationComplete=!1,this.showTownRankingBars=!1,this.showTownRankingPointMarkers=!1,this.currentTownRanking=null,this.villageRankingGroup=null,this.villageRankingLabels=[],this.tradeFlowGroup=null,this.tradeFlowMeshGroup=null,this.tradeFlowLabelGroup=null,this.tradeFlowLabels=[],this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[],this.isTradeNationalMapActive=!1,this.selectedFeatureGroup=null,this.selectedVectorFeatures=[],this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.currentVectorFeatures=[],this.yakIndustryPointLabelGroup=null,this.yakIndustryPointLabels=[],this.yakIndustryPointMarkerGroup=null,this.yakIndustryPointMarkers=[],this.yakIndustryMarkerMaterialCache=new Map,this.hongyuanBoundaryPolygons=[],this.townMetaByName=new Map(Lr.map(m=>[dt(m.name),m])),this.staticMapData={china:wa(this.assets.instance.getResource("china")),mapJson:wa(this.assets.instance.getResource("mapJson")),mapStroke:wa(this.assets.instance.getResource("mapStroke"))},this.handleCanvasBoundaryPointerDown=this.handleCanvasBoundaryPointerDown.bind(this),this.handleCanvasBoundaryDoubleClick=this.handleCanvasBoundaryDoubleClick.bind(this),(d=(u=this.canvas)==null?void 0:u.addEventListener)==null||d.call(u,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(g=(h=this.canvas)==null?void 0:h.addEventListener)==null||g.call(h,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.initEnvironment(),this.init()}init(){this.labelGroup=new Te,this.label3d=new Il(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new Te,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createFlyLine(),this.createFocus(),this.createParticles(),this.createScatter(),this.createInfoPoint(),this.createStorke();let e=ta.timeline({onComplete:()=>{if(this.mapAnimationComplete=!0,this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}});e.pause(),this.animateTl=e,e.addLabel("focusMap",1.5),e.addLabel("focusMapOpacity",2),e.addLabel("bar",3),e.to(this.camera.instance.position,{duration:2,x:this.defaultMapCameraPosition.x,y:this.defaultMapCameraPosition.y,z:this.defaultMapCameraPosition.z,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup.visible=!1}}),e.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),e.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{if(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!va(this.currentTownRanking)&&this.showTownRankingPointMarkers&&this.hasTownRankingRows(),this.setTradeNationalMapVisible(!1),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}},"focusMap"),e.to(this.focusMapTopMaterial,{duration:1,opacity:this.getFocusMapTopOpacity(),ease:"circ.out"},"focusMapOpacity"),e.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((a,n)=>{let s=a.element.querySelector(".other-label");e.to(s,{duration:1,delay:.1*n,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),e.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),this.mapBoundaryEmphasisMaterial&&e.to(this.mapBoundaryEmphasisMaterial,{duration:.5,delay:.3,opacity:this.getAdminBoundaryEmphasisOpacity()},"focusMapOpacity"),e.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),e.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var a,n;this.flyLineFocusGroup.visible=!0,(n=(a=this.callbacks).onPlayComplete)==null||n.call(a)}},"focusMapOpacity"),this.showTownRankingBars&&(this.allBar.map((a,n)=>{e.to(a.scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")}),this.allBarMaterial.map((a,n)=>{e.to(a,{duration:1,delay:.1*n,opacity:1,ease:"circ.out"},"bar")}));const t=this;this.allProvinceLabel.map((a,n)=>{let s=a.element.querySelector(".provinces-label-wrap"),o=a.element.querySelector(".number .value"),u={progress:0};e.to(s,{duration:1,delay:.2*n,translateY:0,opacity:1,ease:"circ.out"},"bar"),e.to(u,{duration:1,delay:.2*n,progress:1,onStart:()=>{u.progress=0},onUpdate:d},"bar");function d(){var g,m;const h=ue((m=(g=a.userData)==null?void 0:g.targetValue)!=null?m:o.dataset.targetValue);o.innerText=t.formatMapRankingValue(h*u.progress)}}),this.showTownRankingBars&&this.allGuangquan.map((a,n)=>{e.to(a.children[0].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar"),e.to(a.children[1].scale,{duration:1,delay:.1*n,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let e=new ml(13171711,4.2);this.scene.add(e);let t=new gl(14679295,5.8);t.position.set(-30,6,-8),t.castShadow=!0,t.shadow.radius=20,t.shadow.mapSize.width=1024,t.shadow.mapSize.height=1024,this.scene.add(t),this.createPointLight({color:"#1fd6df",intensity:680,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#2af0c6",intensity:260,distance:1e4,x:0,y:2,z:5})}createPointLight(e){const t=new yl(1924702,e.intensity,e.distance);t.position.set(e.x,e.y,e.z),this.scene.add(t)}createMap(){let e=new Te,t=new Te;this.mapGroup=e,this.focusMapGroup=t;let{china:a,chinaTopLine:n}=this.createChina(),{map:s,mapTop:o,mapLine:u,mapBoundaryEmphasis:d}=this.createProvince();this.createNationalBackdrop(),a.setParent(e),n.setParent(e),this.createDiffuse(),s.setParent(t),o.setParent(t),u.setParent(t),d==null||d.setParent(t),t.position.set(0,0,-.01),t.scale.set(1,1,0),e.add(t),this.createTopicLayer(),e.rotation.x=-Math.PI/2,e.position.set(0,.2,0),this.scene.add(e),this.createBar()}createChina(){let e={chinaBgMaterialColor:"#0d3349",lineColor:"#39c7ef"},t=this.staticMapData.china,a=new zi({color:new yt(e.chinaBgMaterialColor),transparent:!0,opacity:.72}),n=new ya(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,merge:!0,material:a,renderOrder:2}),s=new Xt({color:e.lineColor,transparent:!0,opacity:.58}),o=new ea(this,{data:t,geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,material:s,renderOrder:3});return o.lineGroup.position.z+=.01,{china:n,chinaTopLine:o}}createNationalBackdrop(){var h;if(!this.showNationalBackdrop||this.nationalBackdropGroup)return!1;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(g){return console.warn("首页全国底图资源未加载",g),!1}if(!((h=e==null?void 0:e.features)!=null&&h.length))return!1;const t=this.geoProjectionCenter,a=120,n=new re(0,0,-.08),s=new zi({color:new yt("#152c47"),transparent:!0,opacity:.72,depthWrite:!1,fog:!1,side:Re}),o=new ya(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,merge:!0,position:n,material:s,renderOrder:0});o.mapGroup.name="home-national-backdrop-fill",o.setParent(this.mapGroup);const u=new Xt({color:new yt("#3f82cd"),transparent:!0,opacity:.46,depthWrite:!1,fog:!1}),d=new ea(this,{data:e,geoProjectionCenter:t,geoProjectionScale:a,position:new re(n.x,n.y,n.z+.01),material:u,renderOrder:1});return d.lineGroup.name="home-national-backdrop-line",d.setParent(this.mapGroup),this.nationalBackdropGroup=o.mapGroup,this.nationalBackdropLineGroup=d.lineGroup,!0}createTradeNationalMap(){var m;if(this.tradeNationalMapGroup)return!0;let e=null;try{e=wa(this.assets.instance.getResource("chinaMap"))}catch(L){return console.warn("牦牛交易全国地图资源未加载",L),!1}const t=e;if(!e||!((m=t==null?void 0:t.features)!=null&&m.length))return!1;const a=new Te;a.name="trade-national-map",a.visible=!1,a.rotation.x=-Math.PI/2,a.position.set(0,.04,0);const n=new ve({color:403001,transparent:!0,opacity:.14,side:Re,depthWrite:!1,fog:!1});new ya(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(.05,-.05,-.03),material:n,renderOrder:17}).setParent(a);const{topMaterial:o,sideMaterial:u}=this.createTradeNationalMaterials(),d=new cr(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,position:new re(0,0,0),depth:this.tradeNationalDepth,topFaceMaterial:o,sideMaterial:u,renderOrder:20,bevelThickness:.024,bevelSegments:1});d.mapGroup.traverse(L=>{L.isMesh&&(L.renderOrder=20)}),d.setParent(a);const h=new Xt({color:4777983,transparent:!0,opacity:.52,fog:!1,depthTest:!1}),g=new ea(this,{data:e,geoProjectionCenter:this.tradeGeoProjectionCenter,geoProjectionScale:this.tradeGeoProjectionScale,material:h,renderOrder:21});return g.lineGroup.position.z+=this.tradeNationalDepth+.055,g.setParent(a),this.scene.add(a),this.tradeNationalMapGroup=a,this.createTradeNationalLabels(t),!0}createTradeNationalMaterials(){const e=new Ka({color:16777215,transparent:!0,opacity:.54,roughness:.84,metalness:.08,side:Re,fog:!1});new Za(e,{uColor1:827317,uColor2:403515,size:6.8,dir:"x"});const t=this.assets.instance.getResource("side").clone();t.wrapS=ut,t.wrapT=ut,t.repeat.set(1,1.2),t.needsUpdate=!0;const a=new Ka({color:1485501,map:t,transparent:!0,opacity:.58,roughness:.78,metalness:.04,side:Re,fog:!1});return new Za(a,{uColor1:1354174,uColor2:134940,size:Math.max(this.tradeNationalDepth,.1),dir:"y"}),this.time.on("tick",()=>{t.offset.y+=.004}),{topMaterial:e,sideMaterial:a}}createTradeNationalLabels(e){this.tradeNationalLabelGroup=new Te,this.tradeNationalLabelGroup.name="trade-national-label",this.tradeNationalLabelGroup.rotation.x=-Math.PI/2,this.tradeNationalLabelGroup.visible=!1,this.scene.add(this.tradeNationalLabelGroup),this.tradeNationalLabels=[];const t=new Set(["四川","青海","甘肃","陕西","重庆","云南","西藏","新疆"]);(e.features||[]).forEach(a=>{var d;const n=((d=a.properties)==null?void 0:d.name)||"",s=this.normalizeTradeProvinceName(n);if(!t.has(s))return;const o=this.getFeatureCenterLngLat(a);if(!o)return;const u=this.label3d.create("","trade-national-label",!0);u.init(`
    ${Se(s)}
    `,this.getTradeLocalPoint(o.lng,o.lat,.82)),this.label3d.setLabelStyle(u,.012,"x"),u.setParent(this.tradeNationalLabelGroup),u.visible=!0,this.tradeNationalLabels.push(u)})}normalizeTradeProvinceName(e=""){return String(e).replace(/省|市|自治区|壮族|回族|维吾尔|特别行政区/g,"").trim()}getFeatureCenterLngLat(e){var s,o,u;const t=((s=e==null?void 0:e.properties)==null?void 0:s.cp)||((o=e==null?void 0:e.properties)==null?void 0:o.centroid)||((u=e==null?void 0:e.properties)==null?void 0:u.center);if(Array.isArray(t)&&Number.isFinite(Number(t[0]))&&Number.isFinite(Number(t[1])))return{lng:Number(t[0]),lat:Number(t[1])};const a=this.getGeometryCoordinateList(e==null?void 0:e.geometry);if(!a.length)return null;const n=a.reduce((d,h)=>({minLng:Math.min(d.minLng,Number(h[0])),maxLng:Math.max(d.maxLng,Number(h[0])),minLat:Math.min(d.minLat,Number(h[1])),maxLat:Math.max(d.maxLat,Number(h[1]))}),{minLng:1/0,maxLng:-1/0,minLat:1/0,maxLat:-1/0});return{lng:(n.minLng+n.maxLng)/2,lat:(n.minLat+n.maxLat)/2}}isHomeTopicPresentation(){return this.topicLayerPresentation==="home"}createProvince(){let e=this.staticMapData.mapJson;this.mapJsonData=e;const t=this.useSatelliteBase?Sr({geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,zoom:this.satelliteTextureZoom,tileUrlTemplate:this.tileUrlTemplate,onTileStatus:m=>{var L,S;return(S=(L=this.callbacks).onTileStatus)==null?void 0:S.call(L,m)}}):null;t!=null&&t.texture&&this.enhanceTexture(t.texture);let[a,n]=this.createProvinceMaterial();this.focusMapTopMaterial=a,this.focusMapSideMaterial=n;let s=new cr(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,.11),data:e,depth:this.depth,topFaceMaterial:a,sideMaterial:n,renderOrder:9}),o=new Ka({color:this.useSatelliteBase?16777215:13172735,map:(t==null?void 0:t.texture)||null,transparent:!0,opacity:this.useSatelliteBase?this.usesCustomSatelliteTiles?1:.94:this.isHomeTopicPresentation()?.58:.88,roughness:this.useSatelliteBase?this.usesCustomSatelliteTiles?.7:.82:.66,metalness:this.useSatelliteBase?0:.08});this.usesCustomSatelliteTiles||new Za(o,{uColor1:this.useSatelliteBase?1629410:this.isHomeTopicPresentation()?683906:1227744,uColor2:this.useSatelliteBase?757673:this.isHomeTopicPresentation()?406090:38069,size:this.useSatelliteBase?15:8.6}),this.defaultMaterial=o,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new yt("rgba(128,244,255,1)"),this.defaultLightMaterial.opacity=.9;let u=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.22),data:e,material:o,renderOrder:this.usesCustomSatelliteTiles?14:8});this.satelliteMapTop=u,this.satelliteMaterial=o,t!=null&&t.uvBounds&&Mr(u,t.uvBounds),u.mapGroup.children.map(m=>{m.children.map(L=>{L.type==="Mesh"&&this.eventElement.push(L)})}),this.mapLineMaterial=new Xt({color:12254463,opacity:0,transparent:!0,linewidth:this.adminBoundaryLineScale,fog:!1});let d=new ea(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapLineMaterial,renderOrder:this.isHomeTopicPresentation()?34:26});d.lineGroup.position.z+=this.depth+(this.isHomeTopicPresentation()?.315:.285);let h=null;const g=this.getAdminBoundaryEmphasisRadius();return g>0&&(this.mapBoundaryEmphasisMaterial=new ve({color:9632767,transparent:!0,opacity:0,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}),h=new ea(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:e,material:this.mapBoundaryEmphasisMaterial,renderOrder:this.usesCustomSatelliteTiles?24:18,type:"Line3",tubeRadius:g}),h.lineGroup.position.z+=this.depth+.255),{map:s,mapTop:u,mapLine:d,mapBoundaryEmphasis:h}}normalizeAdminBoundaryLineScale(e){const t=Number(e);return Number.isFinite(t)?Math.min(4,Math.max(1,t)):1}getAdminBoundaryEmphasisRadius(){return this.adminBoundaryLineScale<=1?0:Math.min(.04,.011*this.adminBoundaryLineScale)}getAdminBoundaryEmphasisOpacity(){return this.adminBoundaryLineScale<=1?0:Math.min(.5,.2+this.adminBoundaryLineScale*.08)}createTopicLayer(){if(!this.mapJsonData)return;this.initHongyuanBoundaryPolygons();const e=document.createElement("canvas");e.width=_t.width,e.height=_t.height;const t=e.getContext("2d");t.clearRect(0,0,e.width,e.height);const a=new qi(e);a.colorSpace=ia,a.wrapS=ai,a.wrapT=ai,a.minFilter=La,a.magFilter=La,this.enhanceTexture(a),a.needsUpdate=!0;const n=new ve({map:a,transparent:!0,opacity:0,depthWrite:!1,depthTest:!this.isHomeTopicPresentation(),side:Re,fog:!1}),s=this.createLayerUvBounds(),o=new ya(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+(this.isHomeTopicPresentation()?.272:.255)),data:this.mapJsonData,material:n,renderOrder:this.isHomeTopicPresentation()?24:18});Mr(o,s),o.setParent(this.focusMapGroup),this.topicLayerUvBounds=s,this.topicLayerCanvas=e,this.topicLayerContext=t,this.topicLayerTexture=a,this.topicLayerMaterial=n,this.topicLayerMap=o}initHongyuanBoundaryPolygons(){var t,a,n;if((t=this.hongyuanBoundaryPolygons)!=null&&t.length)return;const e=this.staticMapData.mapStroke;this.hongyuanBoundaryPolygons=Er((n=(a=e==null?void 0:e.features)==null?void 0:a[0])==null?void 0:n.geometry)}createSelectedFeatureGroup(){var e;this.selectedFeatureGroup||(this.selectedFeatureGroup=new Te,this.selectedFeatureGroup.name="selected-feature-highlight",this.selectedFeatureGroup.position.z=this.depth+.31,(e=this.focusMapGroup)==null||e.add(this.selectedFeatureGroup))}createLayerUvBounds(){const e=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),[t]=e([q.west,q.south]),[a]=e([q.east,q.south]),[,n]=e([q.west,q.north]),[,s]=e([q.west,q.south]);return{left:t,right:a,bottom:-s,top:-n}}setTopicLayer(e){var a,n;if(!e||!this.topicLayerContext||!this.topicLayerTexture)return;this.currentTopicLayer=e,this.visibleTopicLayers=[e],this.clearSelectedFeature(),this.applyLayerMapView(e);const t=++this.topicLayerLoadId;if(this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"loading",text:`正在加载 ${e.name}`}),Qa(e)){this.loadVectorTopicLayer(e,t);return}this.loadTopicLayerImage(e).then(s=>{var o,u,d,h;if(t===this.topicLayerLoadId){if(!(s!=null&&s.image)){this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"GeoServer 图层加载失败"});return}this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.drawTopicRasterImage(s.image,s.layer||e),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(e),this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.84),(h=(d=this.callbacks).onLayerStatus)==null||h.call(d,{type:"success",text:"GeoServer 图层已加载"})}}).catch(()=>{var s,o;t===this.topicLayerLoadId&&(this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"GeoServer 图层加载失败"}))})}setTopicLayers(e=[],t=e[0]){var s,o,u,d;if(!this.topicLayerContext||!this.topicLayerTexture)return;const a=e.filter(Boolean);if(!a.length){this.topicLayerLoadId+=1,this.visibleTopicLayers=[],this.currentTopicLayer=null,this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.clearSelectedFeature(),this.applyLayerMapView(null),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"success",text:"图层已关闭"});return}if(a.length===1){this.setTopicLayer(N(N({},a[0]),(t==null?void 0:t.key)===a[0].key?t:{}));return}this.currentTopicLayer=t||a[a.length-1],this.visibleTopicLayers=a,this.clearSelectedFeature(),this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.applyLayerMapView(this.currentTopicLayer);const n=++this.topicLayerLoadId;this.currentVectorFeatures=[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"loading",text:`正在加载 ${a.length} 个地图图层`}),Promise.all(a.map(h=>this.loadCompositeTopicLayerItem(h))).then(h=>{var L,S,C;if(n!==this.topicLayerLoadId)return;const g=h.filter(Boolean),m=g.find(x=>{var E,O;return x.type==="vector"&&((E=x.layer)==null?void 0:E.key)===((O=this.currentTopicLayer)==null?void 0:O.key)});this.currentVectorFeatures=((L=m==null?void 0:m.geojson)==null?void 0:L.features)||[],this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),g.forEach((x,E)=>{var O,ee;if(x.type==="image"){this.topicLayerContext.save();const se=E===g.length-1?Math.max(.78,(O=x.layer.opacity)!=null?O:.9):Math.min(.52,(ee=x.layer.opacity)!=null?ee:.52);this.topicLayerContext.globalAlpha=Math.min(1,Math.max(.28,se)),this.drawTopicRasterImage(x.image,x.layer),this.topicLayerContext.restore();return}this.drawVectorTopicLayer(x.layer,x.geojson.features||[],{clear:!1})}),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.updateTopicLayerTextureSampling(this.currentTopicLayer),this.topicLayerMaterial.opacity=g.length?this.getTopicLayerMaterialOpacity(this.currentTopicLayer,1):0,(C=(S=this.callbacks).onLayerStatus)==null||C.call(S,{type:g.length?"success":"error",text:g.length?`已加载 ${g.length} 个地图图层`:"地图图层加载失败"})})}loadCompositeTopicLayerItem(e){return he(this,null,function*(){if(Qa(e))try{const t=yield this.fetchVectorLayerGeojson(e);return{type:"vector",layer:e,geojson:t}}catch(t){return null}return this.loadTopicLayerImage(e).then(t=>t?N({type:"image"},t):null)})}loadTopicLayerImage(e){return Gr(e)?this.loadWmtsTopicLayerImage(e):new Promise(t=>{const a=new Image;a.crossOrigin="anonymous",a.onload=()=>t({image:a,layer:e}),a.onerror=()=>t(null),a.src=Zl(e)})}loadWmtsTopicLayerImage(e){return he(this,null,function*(){const t=document.createElement("canvas");t.width=_t.width,t.height=_t.height;const a=t.getContext("2d");if(!a)return null;a.clearRect(0,0,t.width,t.height);const n=this.getWmtsTopicZoom(e),s=Au(q,n),o=[];for(let g=s.minX;g<=s.maxX;g+=1)for(let m=s.minY;m<=s.maxY;m+=1)o.push({x:g,y:m});let u=0,d=0;const h=()=>he(this,null,function*(){for(;d0&&(a.save(),a.globalAlpha=.58,a.filter=`blur(${u}px)`,a.drawImage(n,0,0),a.restore()),o>0){const g=[[-o,0],[o,0],[0,-o],[0,o],[-o,-o],[o,-o],[-o,o],[o,o]];a.save(),a.globalAlpha=.72,g.forEach(([m,L])=>a.drawImage(n,m,L)),a.restore()}a.drawImage(n,0,0)}getWmtsTopicZoom(e={}){var o,u,d;const t=Math.round(Number(e.maximumLevel)),a=Number.isFinite(t)&&t>0?t:21,n=Number((d=(u=(o=e.homeWmtsZoom)!=null?o:e.wmtsZoom)!=null?u:e.tileZoom)!=null?d:this.satelliteTextureZoom),s=Number.isFinite(n)&&n>0?Math.round(n):11;return Wt(s,3,Math.min(a,Ja))}updateTopicLayerTextureSampling(e={}){if(!this.topicLayerTexture)return;const t=Gr(e)?ir:La;this.topicLayerTexture.minFilter=t,this.topicLayerTexture.magFilter=t,this.topicLayerTexture.needsUpdate=!0}drawTopicRasterImage(e,t={}){const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;if(!t.softMask){this.drawHomeTopicRasterGlow(e,t),n.drawImage(e,0,0,a.width,a.height);return}const s=Math.min(1,Math.max(.08,Number(t.softMaskScale)||.18)),o=document.createElement("canvas");o.width=Math.max(96,Math.round(a.width*s)),o.height=Math.max(96,Math.round(a.height*s));const u=o.getContext("2d");if(!u){n.drawImage(e,0,0,a.width,a.height);return}u.clearRect(0,0,o.width,o.height),u.imageSmoothingEnabled=!0,u.imageSmoothingQuality="high",u.drawImage(e,0,0,o.width,o.height),n.save(),n.imageSmoothingEnabled=!0,n.imageSmoothingQuality="high",n.drawImage(o,0,0,a.width,a.height),n.restore()}drawHomeTopicRasterGlow(e,t={}){var d,h;if(!this.isHomeTopicPresentation())return;const a=this.topicLayerCanvas,n=this.topicLayerContext;if(!a||!n)return;const s=Wt((d=t.homeGlowOpacity)!=null?d:0,0,.8),o=Wt((h=t.homeGlowBlur)!=null?h:0,0,32);if(!s||!o)return;const u=t.homeGlowColor||"#E5FCFF";n.save(),n.globalAlpha=s,n.filter=`drop-shadow(0 0 ${o}px ${u})`,n.drawImage(e,0,0,a.width,a.height),n.restore()}applyLayerMapView(e,t={}){var d,h;if(!((d=this.camera)!=null&&d.instance)||!((h=this.camera)!=null&&h.controls)||!this.mapAnimationComplete&&!t.force)return;const a=e?null:this.currentTownRanking,n=(e==null?void 0:e.mapView)||(e!=null&&e.cameraPosition?{cameraPosition:e.cameraPosition}:null)||(a==null?void 0:a.mapView)||(a!=null&&a.cameraPosition?{cameraPosition:a.cameraPosition}:null),s=n?this.getLayerMapViewTarget(n):this.defaultMapTarget.clone(),o=n?this.getLayerMapViewCameraPosition(n,s):this.defaultMapCameraPosition.clone(),u=n&&Number.isFinite(n.duration)?n.duration:.75;this.animateMapCamera(o,s,u)}getFocusMapTopOpacity(){return this.useSatelliteBase?this.usesCustomSatelliteTiles?.16:1:.78}getTopicLayerMaterialOpacity(e,t=.84){const a=Number(e==null?void 0:e.opacity),n=Number.isFinite(a)?a:t;if(!this.isHomeTopicPresentation())return n;const s=Number(e==null?void 0:e.homePresentationMaxOpacity),o=Number.isFinite(s)?s:.56;return Wt(n,0,o)}getDynamicSatelliteZoom(e){return this.usesCustomSatelliteTiles?e<=4.2?Math.min(this.dynamicSatelliteMaxZoom,21):e<=6.4?Math.min(this.dynamicSatelliteMaxZoom,19):e<=8.4?Math.min(this.dynamicSatelliteMaxZoom,17):e<=11?Math.min(this.dynamicSatelliteMaxZoom,15):e<=14.5?Math.min(this.dynamicSatelliteMaxZoom,13):e<=18?Math.min(this.dynamicSatelliteMaxZoom,11):this.satelliteTextureZoom:this.satelliteTextureZoom}getCameraTargetLngLat(){var s,o,u,d,h,g,m;const e=(d=(u=(o=(s=this.camera)==null?void 0:s.controls)==null?void 0:o.target)==null?void 0:u.clone)==null?void 0:d.call(u);if(!e)return[102.58,32.72];(g=(h=this.focusMapGroup)==null?void 0:h.updateWorldMatrix)==null||g.call(h,!0,!1);const t=this.focusMapGroup?this.focusMapGroup.worldToLocal(e):e,a=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),n=((m=a.invert)==null?void 0:m.call(a,[t.x,-t.y]))||[102.58,32.72];return[Math.max(q.west,Math.min(q.east,Number(n[0])||102.58)),Math.max(q.south,Math.min(q.north,Number(n[1])||32.72))]}getDynamicSatelliteTileWindow(e){return e>=21?3:e>=19?5:e>=17?7:e>=15?this.dynamicSatelliteTileWindow:e>=13?Math.min(11,this.dynamicSatelliteTileWindow+2):Math.min(11,this.dynamicSatelliteTileWindow+2)}getDynamicSatelliteKey(e,t){return t?`${e}:${t.minX}-${t.maxX}:${t.minY}-${t.maxY}`:""}updateDynamicSatelliteTiles(e=!1){if(!this.usesCustomSatelliteTiles||!this.mapAnimationComplete)return;const t=Date.now();if(!e&&t-this.dynamicSatelliteLastCheck{var d,h,g,m,L;if((g=(h=this.callbacks).onTileStatus)==null||g.call(h,$(N({},u),{text:((d=u.text)==null?void 0:d.replace("影像底图","高清影像底图"))||u.text})),u.type!=="loading"){if(s!==this.dynamicSatelliteRequestId){(L=(m=o==null?void 0:o.texture)==null?void 0:m.dispose)==null||L.call(m);return}if(this.dynamicSatelliteLoadingKey="",Number(u.loaded||0)<=0){this.dynamicSatelliteCurrentKey===n&&this.hideDynamicSatelliteOverlay();return}this.applyDynamicSatelliteOverlay(o,n)}}}),this.applyDynamicSatelliteOverlay(o,n)}ensureDynamicSatelliteOverlay(){var a;if(this.dynamicSatelliteOverlay)return;const e=new ve({transparent:!0,opacity:0,depthWrite:!1,depthTest:!0,side:Re,fog:!1}),t=new qe(new It(1,1),e);t.name="dynamic-satellite-overlay",t.renderOrder=15,t.visible=!1,t.position.z=this.depth+.248,(a=this.focusMapGroup)==null||a.add(t),this.dynamicSatelliteOverlay=t,this.dynamicSatelliteMaterial=e}applyDynamicSatelliteOverlay(e,t){var o,u;if(!(e!=null&&e.texture)||!(e!=null&&e.uvBounds))return;this.ensureDynamicSatelliteOverlay();const a=e.uvBounds,n=Math.max(1e-4,a.right-a.left),s=Math.max(1e-4,a.top-a.bottom);this.dynamicSatelliteOverlay.position.set((a.left+a.right)/2,(a.bottom+a.top)/2,this.depth+.248),this.dynamicSatelliteOverlay.scale.set(n,s,1),this.dynamicSatelliteOverlay.visible=!0,this.dynamicSatelliteTexture&&this.dynamicSatelliteTexture!==e.texture&&((u=(o=this.dynamicSatelliteTexture).dispose)==null||u.call(o)),this.dynamicSatelliteTexture=e.texture,this.dynamicSatelliteMaterial.map=e.texture,this.dynamicSatelliteMaterial.opacity=1,this.dynamicSatelliteMaterial.needsUpdate=!0,this.dynamicSatelliteCurrentKey=t}hideDynamicSatelliteOverlay(){this.dynamicSatelliteOverlay&&(this.dynamicSatelliteOverlay.visible=!1),this.dynamicSatelliteLoadingKey&&(this.dynamicSatelliteRequestId+=1,this.dynamicSatelliteLoadingKey=""),this.dynamicSatelliteCurrentKey=""}ensureMapRevealed(){var e,t,a,n;if(!this.mapAnimationComplete){if((t=(e=this.animateTl)==null?void 0:e.progress)==null||t.call(e,1,!1),(n=(a=this.animateTl)==null?void 0:a.pause)==null||n.call(a),this.mapAnimationComplete=!0,this.focusMapGroup&&(this.focusMapGroup.position.set(0,0,0),this.focusMapGroup.scale.set(1,1,1)),this.focusMapTopMaterial&&(this.focusMapTopMaterial.opacity=this.getFocusMapTopOpacity()),this.focusMapSideMaterial&&(this.focusMapSideMaterial.opacity=1,this.focusMapSideMaterial.transparent=!1),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=!0),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.scatterGroup&&(this.scatterGroup.visible=!0),this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.hasTownRankingRows()),this.applyLayerMapView(this.currentTopicLayer,{force:!0}),this.updateDynamicSatelliteTiles(!0),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.updateYakIndustryPointLabels(this.currentTopicLayer,this.currentVectorFeatures),va(this.currentTownRanking)){this.hideAllMapStatisticLabels();return}this.updateVillageRankingLabels(this.currentTownRanking),this.updateTradeFlowLayer(this.currentTownRanking),this.updateInfoPointStats()}}getLayerMapViewTarget(e){var t;return e!=null&&e.targetLngLat?this.lngLatToWorldPoint(e.targetLngLat,(t=e.targetLocalZ)!=null?t:.72):e!=null&&e.target?this.toVector3(e.target,this.defaultMapTarget):this.defaultMapTarget.clone()}getLayerMapViewCameraPosition(e,t){if(e!=null&&e.cameraPosition)return this.toVector3(e.cameraPosition,this.defaultMapCameraPosition);const a=Number.isFinite(e==null?void 0:e.distanceScale)?e.distanceScale:1,n=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(a),s=t.clone().add(n);return e!=null&&e.cameraOffset&&s.add(this.toVector3(e.cameraOffset,new re(0,0,0))),s}lngLatToWorldPoint(e,t=0){const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return this.defaultMapTarget.clone();const[o,u]=this.geoProjection([n,s]),d=new re(o,-u,Number(t)||0);return this.focusMapGroup?this.focusMapGroup.localToWorld(d):d}toVector3(e,t){if(Array.isArray(e)){const[o,u,d]=e.map(Number);return[o,u,d].every(Number.isFinite)?new re(o,u,d):t.clone()}const a=Number(e==null?void 0:e.x),n=Number(e==null?void 0:e.y),s=Number(e==null?void 0:e.z);return[a,n,s].every(Number.isFinite)?new re(a,n,s):t.clone()}animateMapCamera(e,t,a=.75){this.activeMapViewTweens.forEach(o=>{var u;return(u=o==null?void 0:o.kill)==null?void 0:u.call(o)}),this.activeMapViewTweens=[];const n=this.camera.controls,s=()=>n.update();this.activeMapViewTweens.push(ta.to(this.camera.instance.position,{duration:a,x:e.x,y:e.y,z:e.z,ease:"power2.out",onUpdate:s}),ta.to(n.target,{duration:a,x:t.x,y:t.y,z:t.z,ease:"power2.out",onUpdate:s}))}addSceneTween(e){var t;return e&&(this.sceneTweens.push(e),this.scenePaused&&((t=e.pause)==null||t.call(e)),e)}addSceneTimer(e){return e&&this.sceneTimers.push(e),e}focusTownByName(e,t={}){var u,d,h;const a=this.townMetaByName.get(dt(e)),n=t.select?this.selectTownFeatureByName(e,t):!1;if(t.preserveCamera)return n||!!(a!=null&&a.center);if(!(a!=null&&a.center))return n;const s=this.lngLatToWorldPoint(a.center,(u=t.targetLocalZ)!=null?u:.82),o=this.getLayerMapViewCameraPosition({distanceScale:(d=t.distanceScale)!=null?d:.82,cameraOffset:t.cameraOffset||{x:0,y:1.2,z:0}},s);return this.animateMapCamera(o,s,(h=t.duration)!=null?h:.75),!0}isNationalParkTownSelectionActive(){var e;return((e=this.currentTopicLayer)==null?void 0:e.key)==="national-park-zoning"&&this.getTownRankingMeta().onlyRankedTownLabels}getTownNameFromMapEvent(e){var a,n,s,o,u,d,h,g,m,L;return[(s=(n=(a=e==null?void 0:e.target)==null?void 0:a.parent)==null?void 0:n.userData)==null?void 0:s.name,(u=(o=e==null?void 0:e.target)==null?void 0:o.userData)==null?void 0:u.name,(g=(h=(d=e==null?void 0:e.target)==null?void 0:d.parent)==null?void 0:h.userData)==null?void 0:g.townName,(L=(m=e==null?void 0:e.target)==null?void 0:m.userData)==null?void 0:L.townName].find(S=>String(S||"").trim())||""}findTownFeatureByName(e){var n,s,o,u;const t=dt(e);if(!t)return null;const a=(((n=this.mapJsonData)==null?void 0:n.features)||((o=(s=this.staticMapData)==null?void 0:s.mapJson)==null?void 0:o.features)||[]).find(d=>{const h=(d==null?void 0:d.properties)||{};return[h.name,h.fullName,h.full_name,h.townName].some(m=>dt(m)===t)});return a!=null&&a.geometry?{type:"Feature",properties:$(N({},a.properties||{}),{name:((u=a.properties)==null?void 0:u.name)||e,feature_role:"乡镇范围"}),geometry:a.geometry}:null}selectTownFeatureByName(e,t={}){var n,s,o,u,d;const a=this.findTownFeatureByName(e);return a?(this.showSelectedFeature(a,{mode:"town"}),t.silentStatus!==!0&&((d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:t.statusText||`已选中${((o=a.properties)==null?void 0:o.name)||e}`})),!0):(t.showMissingStatus!==!1&&((s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"未找到对应乡镇边界"})),!1)}handleTownRankingSelect(e,t={}){var u,d;if(!this.isNationalParkTownSelectionActive())return!1;const a=dt(e);if(!a||!this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1).some(h=>dt(h.name)===a))return!1;const o=this.focusTownByName(e,N({select:!0,preserveCamera:!0,statusText:`已选中${e}`},t));return o&&((d=(u=this.callbacks).onFeatureInfo)==null||d.call(u,{feature:null})),o}focusYakIndustryPoint(e={}){var s,o;const t=this.getYakIndustryPayloadCoordinate(e);if(!t)return(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"warning",text:"当前主体暂无可定位坐标"}),{focused:!1,screen:null};const a=this.findYakIndustryPointFeature(e,t);return a?this.setSelectedVectorFeatures([a]):this.clearSelectedFeature(),{focused:this.flyToLngLat(t,{span:.035,duration:.72,statusText:"已定位产业主体"}),screen:this.getYakIndustryPointScreen(e),feature:a}}focusVectorFeature(e={}){var h,g;const t=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),a=String(e.id||e.key||""),n=String(e.fullName||e.name||"").trim(),s=t.find(m=>{const L=(m==null?void 0:m.properties)||{};return a&&String(L.id||"")===a||n&&String(L.name||L.plot_name||"").trim()===n});if(!s)return(g=(h=this.callbacks).onLayerStatus)==null||g.call(h,{type:"warning",text:"当前图斑尚未加载"}),{focused:!1,screen:null,feature:null};this.setSelectedVectorFeatures([s]);const o=this.getGeometryLngLatBounds(s.geometry);if(!o)return{focused:!1,screen:null,feature:s};const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return{focused:this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),duration:.75,statusText:"已定位种草图斑"}),screen:this.getVectorFeatureScreen(s),feature:s}}getVectorFeatureScreen(e={}){let t=(e==null?void 0:e.feature)||e;if(!(t!=null&&t.geometry)){const s=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),o=String((e==null?void 0:e.id)||(e==null?void 0:e.key)||"");t=s.find(u=>{var d;return String(((d=u==null?void 0:u.properties)==null?void 0:d.id)||"")===o})||null}const a=this.getGeometryLngLatBounds(t==null?void 0:t.geometry);if(!a)return null;const n=[(a.minLng+a.maxLng)/2,(a.minLat+a.maxLat)/2];return this.lngLatToLayerScreenPoint(n,this.depth+.34)||this.lngLatToScreenPoint(n,this.depth+.32)}getYakIndustryPointScreen(e={}){const t=this.getYakIndustryPayloadCoordinate(e);return t?this.lngLatToLayerScreenPoint(t,this.depth+.36)||this.lngLatToScreenPoint(t,this.depth+.32):null}getYakIndustryPayloadCoordinate(e={}){var s,o,u,d,h;const t=((s=e.geometry)==null?void 0:s.coordinates)||e.coordinates,a=Number((u=(o=e.longitude)!=null?o:e.lng)!=null?u:t==null?void 0:t[0]),n=Number((h=(d=e.latitude)!=null?d:e.lat)!=null?h:t==null?void 0:t[1]);return!Number.isFinite(a)||!Number.isFinite(n)?null:[a,n]}findYakIndustryPointFeature(e={},t=this.getYakIndustryPayloadCoordinate(e)){const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]),n=String(e.id||e.key||""),s=String(e.fullName||e.name||"").trim(),o=String(e.stageKey||""),u=t&&a.find(h=>{var m;if(((m=h==null?void 0:h.geometry)==null?void 0:m.type)!=="Point")return!1;const g=h.properties||{};return o&&String(g.stageKey||"")!==o?!1:this.getCoordinateDistance(h.geometry.coordinates,t)<=8e-4})||null;if(e.preferCoordinateMatch)return u;const d=a.find(h=>{const g=(h==null?void 0:h.properties)||{};return!!(n&&String(g.id||"")===n||s&&String(g.name||g.fullName||"").trim()===s)});return d||u}loadVectorTopicLayer(e,t){return he(this,null,function*(){var a,n,s,o;try{const u=yield this.fetchVectorLayerGeojson(e);if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=u.features||[],this.drawVectorTopicLayer(e,this.currentVectorFeatures),this.updateYakIndustryPointMarkers(e,this.currentVectorFeatures),this.updateYakIndustryPointLabels(e,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=this.getTopicLayerMaterialOpacity(e,.9),(n=(a=this.callbacks).onLayerStatus)==null||n.call(a,{type:"success",text:"真实矢量图层已加载"})}catch(u){if(t!==this.topicLayerLoadId)return;this.currentVectorFeatures=[],this.clearYakIndustryPointMarkers(),this.clearYakIndustryPointLabels(),this.topicLayerContext.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),this.topicLayerTexture.needsUpdate=!0,this.topicLayerMaterial.opacity=0,(o=(s=this.callbacks).onLayerStatus)==null||o.call(s,{type:"error",text:"真实矢量图层加载失败"})}})}fetchVectorLayerGeojson(e){return he(this,null,function*(){var s,o;if(e.sourceType==="geojson"){if(((s=e.geojsonData)==null?void 0:s.type)==="FeatureCollection")return e.geojsonData;const u=yield fetch(Ar(e.dataPath),{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);return yield u.json()}if(e.sourceType==="wfs"){const u=yield yr(e.layerName,{cqlFilter:e.cqlFilter,maxFeatures:e.maxFeatures||1200,timeout:e.timeout||18e3});return(u==null?void 0:u.type)==="FeatureCollection"?u:{type:"FeatureCollection",features:(u==null?void 0:u.features)||[]}}let t=[],a=null;try{const u=yield fetch(e.apiUrl,{credentials:"include"});if(!u.ok)throw new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.data)?d.data:Array.isArray((o=d==null?void 0:d.data)==null?void 0:o.rows)?d.data.rows:[]}catch(u){a=u}let n=this.buildWktLayerFeatures(t);if((!t.length||!n.length)&&e.fallbackPath){const u=yield fetch(Ar(e.fallbackPath),{credentials:"include"});if(!u.ok)throw a||new Error(`HTTP ${u.status}`);const d=yield u.json();t=Array.isArray(d==null?void 0:d.rows)?d.rows:[],n=this.buildWktLayerFeatures(t)}return{type:"FeatureCollection",features:n}})}buildWktLayerFeatures(e=[]){return(e||[]).map(t=>({type:"Feature",properties:{id:t.id,type:t.type,totalAcreage:t.totalAcreage,cdAcreage:t.cdAcreage,sdAcreage:t.sdAcreage,cdScl:t.cdScl,sdScl:t.sdScl},geometry:this.parseWktGeometry(this.pickWktValue(t))})).filter(t=>t.geometry)}pickWktValue(e={}){return e.wkt||e.WKT||e.geom||e.geometry||e.the_geom||e.theGeom||e.shape||e.Shape}drawVectorTopicLayer(e,t,a={}){const n=this.topicLayerContext;a.clear!==!1&&n.clearRect(0,0,this.topicLayerCanvas.width,this.topicLayerCanvas.height),n.save(),n.lineJoin="round",n.lineCap="round",this.clipVectorLayerContext(n,e);const o=this.getVisibleVectorFeatures(e,t).filter(u=>{var d;return!(e!=null&&e.hidePointFeatures)||((d=u==null?void 0:u.geometry)==null?void 0:d.type)!=="Point"}).sort((u,d)=>{var m,L;const h=this.getGeometryDrawRank((m=u.geometry)==null?void 0:m.type),g=this.getGeometryDrawRank((L=d.geometry)==null?void 0:L.type);return h-g});o.forEach(u=>{const d=this.getVectorFeatureStyle(e,u);this.drawVectorFeature(n,u.geometry,d)}),this.drawNationalParkBoundaryOverlay(n,e,o),this.drawSelectedVectorOverlay(n),n.restore()}drawNationalParkBoundaryOverlay(e,t,a=[]){(t==null?void 0:t.key)!=="national-park-zoning"||!a.length||a.forEach(n=>{const s=this.getVectorFeatureStyle(t,n);this.drawVectorFeature(e,n.geometry,$(N({},s),{fill:"#071A20",stroke:"#071A20",polygonAlpha:0,lineAlpha:.34,lineWidth:7,glow:!0})),this.drawVectorFeature(e,n.geometry,$(N({},s),{fill:"#E7FFF6",stroke:"#E7FFF6",polygonAlpha:0,lineAlpha:.68,lineWidth:2.1,glow:!1})),this.drawVectorFeature(e,n.geometry,$(N({},s),{fill:s.stroke,stroke:s.stroke,polygonAlpha:0,lineAlpha:.86,lineWidth:1.2,glow:!1}))})}drawSelectedVectorOverlay(e){const t=this.selectedVectorFeatures||[],a=this.analysisMatchedFeatures||[],n=this.analysisBoundaryFeature,s=this.boundaryDrawPoints||[];if(!t.length&&!a.length&&!n&&!s.length)return;const o=this.isEcologicalProjectLayer(this.currentTopicLayer),u={fill:kr,stroke:Ru,polygonAlpha:o?.2:.28,lineAlpha:o?.78:.98,lineWidth:o?6:12,pointRadius:11,glow:!o,halo:!o},d={fill:kr,stroke:Nu,polygonAlpha:o?.34:.52,lineAlpha:o?.94:1,lineWidth:o?3.2:5,pointRadius:6.5,glow:!1,halo:!1};if(e.save(),t.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,u),this.drawVectorFeature(e,g,d)}),a.forEach(h=>{var m;const g=(h==null?void 0:h.geometry)||((m=h==null?void 0:h.feature)==null?void 0:m.geometry);this.drawVectorFeature(e,g,{fill:"#30DCFF",stroke:"#C9FBFF",polygonAlpha:o?.22:.28,lineAlpha:o?.88:.98,lineWidth:o?2.8:5,pointRadius:6,glow:!o})}),n!=null&&n.geometry&&this.drawVectorFeature(e,n.geometry,{fill:"#24F6C4",stroke:"#FFFFFF",polygonAlpha:o?.12:.18,lineAlpha:o?.92:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),s.length){const h=s.map(m=>[m.lng,m.lat]),g={type:"LineString",coordinates:this.boundaryDrawingEnabled?h:[...h,h[0]].filter(Boolean)};this.drawVectorFeature(e,g,{fill:"#24F6C4",stroke:"#24F6C4",polygonAlpha:o?.08:.12,lineAlpha:1,lineWidth:o?3:4,pointRadius:6,glow:!o}),h.forEach(m=>{this.drawVectorFeature(e,{type:"Point",coordinates:m},{fill:"#FFFFFF",stroke:"#24F6C4",polygonAlpha:.2,lineAlpha:1,lineWidth:o?2.4:3,pointRadius:5.5,glow:!o})})}e.restore()}redrawVectorTopicLayer(){!this.topicLayerContext||!this.topicLayerTexture||!this.currentTopicLayer||!Qa(this.currentTopicLayer)||(this.drawVectorTopicLayer(this.currentTopicLayer,this.currentVectorFeatures||[]),this.updateYakIndustryPointMarkers(this.currentTopicLayer,this.currentVectorFeatures),this.topicLayerTexture.needsUpdate=!0)}featureMatchesLegend(e={},t={}){var s;const a=Array.isArray(t==null?void 0:t.matches)?t.matches.filter(o=>o==null?void 0:o.field):[];if(a.length)return a.some(o=>{var u;return String((u=e[o.field])!=null?u:"")===String(o.value)});const n=t==null?void 0:t.match;return n!=null&&n.field?String((s=e[n.field])!=null?s:"")===String(n.value):!0}getVisibleVectorFeatures(e,t){var u,d;const a=Array.isArray(e==null?void 0:e.activeLegends)?e.activeLegends.filter(h=>{var g,m;return((g=h==null?void 0:h.matches)==null?void 0:g.length)||((m=h==null?void 0:h.match)==null?void 0:m.field)}):[];if(a.length)return(t||[]).filter(h=>a.some(g=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},g)));const n=e==null?void 0:e.activeLegend;if((u=n==null?void 0:n.matches)!=null&&u.length||(d=n==null?void 0:n.match)!=null&&d.field)return(t||[]).filter(h=>this.featureMatchesLegend((h==null?void 0:h.properties)||{},n));const o=String((e==null?void 0:e.cqlFilter)||"").trim().match(/^([a-zA-Z0-9_]+)\s*=\s*'((?:''|[^'])*)'$/);if(o){const[,h,g]=o,m=g.replace(/''/g,"'");return(t||[]).filter(L=>{var S,C;return String((C=(S=L==null?void 0:L.properties)==null?void 0:S[h])!=null?C:"")===m})}return[...t||[]]}updateYakIndustryPointLabels(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointLabels(),(e==null?void 0:e.showPointLabels)===!1||e!=null&&e.hidePointFeatures||(e==null?void 0:e.key)!=="yak-industry-points"||!this.label3d)return;const a=this.getYakIndustryLabelFeatures(e,t);a.length&&(this.ensureYakIndustryPointLabelGroup(),a.forEach((n,s)=>{var u;let o=this.yakIndustryPointLabels[s];o||(o=this.label3d.create("","yak-industry-point-label",!0),this.label3d.setLabelStyle(o,.012,"x"),o.setParent(this.yakIndustryPointLabelGroup),this.yakIndustryPointLabels.push(o)),o.element.className="yak-industry-point-label",o.init(this.getYakIndustryPointLabelHtml(n),this.getYakIndustryPointLabelPosition(n,s)),o.visible=!0,(u=o.show)==null||u.call(o),o.userData={feature:n}}),this.yakIndustryPointLabels.slice(a.length).forEach(n=>{var s;n.visible=!1,(s=n.hide)==null||s.call(n),n.userData=null}),this.yakIndustryPointLabelGroup.visible=!!this.mapAnimationComplete)}updateYakIndustryPointMarkers(e=this.currentTopicLayer,t=this.currentVectorFeatures){if(this.clearYakIndustryPointMarkers(),(e==null?void 0:e.key)!=="yak-industry-points"||e!=null&&e.hidePointMarkers)return;const a=this.getVisibleVectorFeatures(e,t).filter(n=>{var s;return((s=n==null?void 0:n.geometry)==null?void 0:s.type)==="Point"});a.length&&(this.ensureYakIndustryPointMarkerGroup(),a.forEach((n,s)=>{let o=this.yakIndustryPointMarkers[s];const u=this.getVectorFeatureStyle(e,n),d=this.getYakIndustryMarkerMaterial(u,n),h=this.lngLatToLayerLocalPoint(n.geometry.coordinates,this.depth+.36),g=Number(e==null?void 0:e.pointSpriteScale)||.34,m=this.getYakIndustryMarkerType(n);o||(o=new Jt(d),o.name="yak-industry-point-marker",o.renderOrder=42,this.bindYakIndustryPointMarkerEvents(o),this.interactionManager.add(o),this.yakIndustryPointMarkerGroup.add(o),this.yakIndustryPointMarkers.push(o)),o.material=d,o.center.set(.5,.5),o.position.copy(h),o.scale.set(g*.88,g*.88,1),o.visible=!0,o.userData={feature:n,layer:e,index:s,markerType:m}}),this.yakIndustryPointMarkers.slice(a.length).forEach(n=>{n.visible=!1,n.userData=null}),this.yakIndustryPointMarkerGroup.visible=!!this.mapAnimationComplete)}ensureYakIndustryPointMarkerGroup(){var e;this.yakIndustryPointMarkerGroup||(this.yakIndustryPointMarkerGroup=new Te,this.yakIndustryPointMarkerGroup.name="yak-industry-point-markers",this.yakIndustryPointMarkerGroup.visible=!1,(e=this.focusMapGroup)==null||e.add(this.yakIndustryPointMarkerGroup))}clearYakIndustryPointMarkers(){var e;this.yakIndustryPointMarkerGroup&&(this.yakIndustryPointMarkerGroup.visible=!1),(e=this.yakIndustryPointMarkers)==null||e.forEach(t=>{t.visible=!1})}bindYakIndustryPointMarkerEvents(e){e.addEventListener("mousedown",t=>{var s,o,u,d,h,g,m,L,S;if(this.clicked||!((s=this.yakIndustryPointMarkerGroup)!=null&&s.visible))return!1;const a=(u=(o=t.target)==null?void 0:o.userData)==null?void 0:u.feature;if(!a)return!1;this.clicked=!0;const n=((d=a.geometry)==null?void 0:d.coordinates)||[];this.setSelectedVectorFeatures([a]),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:{id:((h=a.properties)==null?void 0:h.id)||((g=a.properties)==null?void 0:g.feature_id)||((m=a.properties)==null?void 0:m.project_name),properties:a.properties||{},feature:a,layer:this.currentTopicLayer,lngLat:{lng:Number(n[0]),lat:Number(n[1])}},screen:this.getPointFeatureScreenPoint(a)})}),e.addEventListener("mouseup",()=>{this.clicked=!1}),e.addEventListener("mouseover",()=>{e.visible&&(document.body.style.cursor="pointer")}),e.addEventListener("mouseout",()=>{document.body.style.cursor="default"})}getYakIndustryMarkerMaterial(e,t){const a=e.markerType||this.getYakIndustryMarkerType(t),n=`${e.fill||"#24F6C4"}-${e.stroke||"#B7FFF2"}-${a}`,s=this.yakIndustryMarkerMaterialCache.get(n);if(s)return s;const o=this.createYakIndustryMarkerTexture(e.fill,e.stroke,a),u=new Qt({map:o,transparent:!0,depthTest:!1,depthWrite:!1,fog:!1});return this.yakIndustryMarkerMaterialCache.set(n,u),u}getYakIndustryMarkerType(e={}){var a;const t=String(((a=e==null?void 0:e.properties)==null?void 0:a.stageKey)||"");return Fr[t]||"point"}createYakIndustryMarkerTexture(e="#24F6C4",t="#B7FFF2",a="point"){const n=document.createElement("canvas");n.width=112,n.height=112;const s=n.getContext("2d"),o=56,u=56;s.clearRect(0,0,n.width,n.height),s.beginPath(),s.arc(o,u,42,0,Math.PI*2),s.fillStyle=this.hexToRgba(e,.18),s.shadowColor=e,s.shadowBlur=20,s.fill(),this.drawYakIndustryMarkerFrame(s,a,o,u,e,t||e),s.save(),s.shadowBlur=0,s.beginPath(),s.arc(o,u,19,0,Math.PI*2),s.fillStyle="rgba(3, 23, 34, 0.64)",s.fill(),s.strokeStyle=this.hexToRgba("#FFFFFF",.32),s.lineWidth=2,s.stroke(),s.restore(),this.drawYakIndustryMarkerGlyph(s,a,o,u,"#FFFFFF");const d=new qi(n);return d.colorSpace=ia,d.needsUpdate=!0,d}drawYakIndustryMarkerFrame(e,t,a,n,s="#24F6C4",o="#B7FFF2"){if(e.save(),e.translate(a,n),e.fillStyle=this.hexToRgba(s,.92),e.strokeStyle=this.hexToRgba(o||s,.98),e.lineWidth=4,e.shadowColor=o||s,e.shadowBlur=14,t==="pasture")e.beginPath(),e.moveTo(-34,-9),e.lineTo(0,-38),e.lineTo(34,-9),e.lineTo(28,-9),e.lineTo(28,24),e.quadraticCurveTo(28,31,21,31),e.lineTo(-21,31),e.quadraticCurveTo(-28,31,-28,24),e.lineTo(-28,-9),e.closePath();else if(t==="grass")e.beginPath(),e.moveTo(0,-38),e.bezierCurveTo(31,-22,34,18,0,38),e.bezierCurveTo(-34,18,-31,-22,0,-38),e.closePath();else if(t==="breeding"){e.beginPath();for(let u=0;u<6;u+=1){const d=-Math.PI/2+Math.PI*2*u/6,h=Math.cos(d)*35,g=Math.sin(d)*35;u===0?e.moveTo(h,g):e.lineTo(h,g)}e.closePath()}else if(t==="storage")e.beginPath(),e.moveTo(-34,-25),e.lineTo(25,-25),e.lineTo(35,-13),e.lineTo(35,27),e.lineTo(-25,27),e.lineTo(-35,15),e.lineTo(-35,-25),e.closePath();else if(t==="processing"){e.beginPath();for(let u=0;u<10;u+=1){const d=-Math.PI/2+Math.PI*2*u/10,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else if(t==="equipment"){e.beginPath();for(let u=0;u<16;u+=1){const d=-Math.PI/2+Math.PI*2*u/16,h=u%2===0?38:30,g=Math.cos(d)*h,m=Math.sin(d)*h;u===0?e.moveTo(g,m):e.lineTo(g,m)}e.closePath()}else t==="service"?(e.beginPath(),e.moveTo(0,-39),e.lineTo(31,-24),e.lineTo(25,14),e.quadraticCurveTo(0,39,-25,14),e.lineTo(-31,-24),e.closePath()):(e.beginPath(),e.arc(0,0,34,0,Math.PI*2));e.fill(),e.stroke(),e.restore()}drawYakIndustryMarkerGlyph(e,t,a,n,s="#24F6C4"){if(e.save(),e.translate(a,n),e.lineCap="round",e.lineJoin="round",e.shadowBlur=0,e.fillStyle=this.hexToRgba(s,.98),e.strokeStyle=this.hexToRgba(s,.98),e.lineWidth=3,t==="pasture")e.beginPath(),e.moveTo(-12,-2),e.lineTo(0,-11),e.lineTo(12,-2),e.stroke(),e.fillRect(-9,-2,18,12),e.clearRect(-3,2,6,8);else if(t==="grass")e.beginPath(),e.moveTo(0,10),e.quadraticCurveTo(-10,1,-7,-10),e.moveTo(0,10),e.quadraticCurveTo(10,1,7,-10),e.moveTo(0,10),e.quadraticCurveTo(0,0,1,-12),e.stroke();else if(t==="breeding")e.beginPath(),e.moveTo(-8,-5),e.quadraticCurveTo(-15,-12,-18,-4),e.moveTo(8,-5),e.quadraticCurveTo(15,-12,18,-4),e.stroke(),e.beginPath(),e.ellipse(0,1,11,12,0,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#08202D",.85),e.fillRect(-5,-2,3,3),e.fillRect(2,-2,3,3);else if(t==="storage")e.beginPath(),e.moveTo(-13,-3),e.lineTo(0,-11),e.lineTo(13,-3),e.lineTo(13,9),e.lineTo(-13,9),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#08202D",.72),e.lineWidth=2,e.beginPath(),e.moveTo(-8,0),e.lineTo(8,0),e.moveTo(-8,5),e.lineTo(8,5),e.stroke();else if(t==="processing")e.beginPath(),e.moveTo(-13,8),e.lineTo(-13,-1),e.lineTo(-5,-6),e.lineTo(-5,-1),e.lineTo(3,-6),e.lineTo(3,-1),e.lineTo(12,-6),e.lineTo(12,8),e.closePath(),e.fill(),e.fillRect(-13,-11,5,7),e.fillStyle=this.hexToRgba("#08202D",.72),e.fillRect(-8,2,4,3),e.fillRect(0,2,4,3),e.fillRect(7,2,4,3);else if(t==="equipment"){for(let o=0;o<8;o+=1)e.save(),e.rotate(Math.PI*2*o/8),e.fillRect(8,-2,5,4),e.restore();e.beginPath(),e.arc(0,0,9,0,Math.PI*2),e.fill(),e.fillStyle=this.hexToRgba("#FFFFFF",.98),e.beginPath(),e.arc(0,0,4,0,Math.PI*2),e.fill()}else t==="service"?(e.beginPath(),e.moveTo(0,-13),e.lineTo(12,-7),e.lineTo(9,6),e.quadraticCurveTo(0,14,-9,6),e.lineTo(-12,-7),e.closePath(),e.fill(),e.strokeStyle=this.hexToRgba("#FFFFFF",.94),e.lineWidth=2.4,e.beginPath(),e.moveTo(0,-7),e.lineTo(0,6),e.moveTo(-6,-1),e.lineTo(6,-1),e.stroke()):(e.beginPath(),e.arc(0,0,7,0,Math.PI*2),e.fill());e.restore()}ensureYakIndustryPointLabelGroup(){this.yakIndustryPointLabelGroup||(this.yakIndustryPointLabelGroup=new Te,this.yakIndustryPointLabelGroup.name="yak-industry-point-labels",this.yakIndustryPointLabelGroup.rotation.x=-Math.PI/2,this.yakIndustryPointLabelGroup.visible=!1,this.scene.add(this.yakIndustryPointLabelGroup))}clearYakIndustryPointLabels(){var e;this.yakIndustryPointLabelGroup&&(this.yakIndustryPointLabelGroup.visible=!1),(e=this.yakIndustryPointLabels)==null||e.forEach(t=>{var a;t.visible=!1,(a=t.hide)==null||a.call(t)})}getYakIndustryLabelFeatures(e,t){const a=this.getVisibleVectorFeatures(e,t).filter(d=>{var h;return((h=d==null?void 0:d.geometry)==null?void 0:h.type)==="Point"}),n=Number(e==null?void 0:e.pointLabelLimit)||(a.length>36?12:Math.min(a.length,16)),s=a.map(d=>{var h;return{feature:d,score:this.getYakIndustryFeatureScore(d),town:dt((h=d.properties)==null?void 0:h.town)}}).sort((d,h)=>{var g,m;return h.score-d.score||String(((g=d.feature.properties)==null?void 0:g.name)||"").localeCompare(String(((m=h.feature.properties)==null?void 0:m.name)||""),"zh-CN")}),o=[],u=new Set;return s.forEach(d=>{o.length>=n||!d.town||u.has(d.town)||(o.push(d.feature),u.add(d.town))}),s.forEach(d=>{o.length>=n||o.includes(d.feature)||o.push(d.feature)}),o}getYakIndustryFeatureScore(e){const t=(e==null?void 0:e.properties)||{},a=[t.outputValue,t.capacity,t.value,t.count,t["年产值 (万元)"],t["年总产值 (万元)"],t["设计存栏量 (头)"],t["总库容 (吨)"]].map(n=>this.parseMapMetricNumber(n));return Math.max(...a,0)}parseMapMetricNumber(e){if(typeof e=="number")return Number.isFinite(e)?e:0;const t=String(e!=null?e:"").replace(/,/g,"").match(/-?\d+(?:\.\d+)?/);return t&&Number(t[0])||0}getYakIndustryPointLabelPosition(e,t=0){var n;const a=this.lngLatToLayerLocalPoint((n=e==null?void 0:e.geometry)==null?void 0:n.coordinates,this.depth+.42+Math.min(t,5)*.01);return a.x+=(t%3-1)*.08,a.y+=t%2===0?.07:-.06,a}getYakIndustryPointLabelHtml(e){const t=(e==null?void 0:e.properties)||{},a=this.compactYakIndustryLabelName(t.name||t.fullName||"产业主体"),n=this.formatYakIndustryLabelText(t.categoryName||t.stageName||"产业主体"),s=t.town||t.village||"红原县",o=this.getYakIndustryPointMetricText(t),u=this.getYakIndustryLabelColor(t);return`
    -
    ${Se(n)}
    -
    ${Se(a)}
    -
    - ${Se(s)} - ${o?`${Se(o)}`:""} -
    -
    `}compactYakIndustryLabelName(e=""){const t=String(e).replace(/^四川红原/,"").replace(/^红原县/,"").replace(/有限责任公司$/,"").replace(/农民专业合作社$/,"合作社").replace(/\s+/g," ").trim();return t.length>16?`${t.slice(0,15)}…`:t}formatYakIndustryLabelText(e=""){return String(e).replace(/\bcxpt[-_./\s]*/gi,"").replace(/^cxpt/i,"").replace(/\s+/g," ").trim()}getYakIndustryPointMetricText(e={}){return e.capacity!==void 0&&e.capacity!==null&&e.capacity!==""&&this.parseMapMetricNumber(e.capacity)>0?this.formatYakIndustryMetricText(e.capacity,e.capacityUnit):this.parseMapMetricNumber(e.outputValue)>0?`${this.formatMapRankingValue(e.outputValue)}万元`:this.isMeaningfulMapText(e.locationType)?e.locationType:this.isMeaningfulMapText(e.status)?e.status:""}isMeaningfulMapText(e){const t=String(e!=null?e:"").trim();return!!(t&&t!=="0"&&t!=="无"&&t!=="待完善")}formatYakIndustryMetricText(e,t=""){const a=String(e!=null?e:"").trim();return!a||a==="0"?"":typeof e=="string"&&/[^\d.,\s-]/.test(a)?a:`${this.formatMapRankingValue(e)}${t||""}`}getYakIndustryLabelColor(e={}){var n,s,o,u,d,h;const t=String(e.stageKey||""),a=(((n=this.currentTopicLayer)==null?void 0:n.legends)||[]).find(g=>{var m;return String(((m=g.match)==null?void 0:m.value)||"")===t})||(String(((u=(o=(s=this.currentTopicLayer)==null?void 0:s.activeLegend)==null?void 0:o.match)==null?void 0:u.value)||"")===t?this.currentTopicLayer.activeLegend:null);return(a==null?void 0:a.fillColor)||((h=(d=this.currentTopicLayer)==null?void 0:d.activeLegend)==null?void 0:h.fillColor)||"#24F6C4"}clipVectorLayerContext(e,t){if(this.shouldClipLayerToHongyuanBoundary(t)&&this.clipContextToHongyuanBoundary(e),!this.shouldClipLayerToLayerBounds(t))return;const a=this.getLayerClipBounds(t);if(!a)return;const n=this.lngLatToLayerCanvasPoint([a.west,a.north]),s=this.lngLatToLayerCanvasPoint([a.east,a.south]),o=Math.min(n.x,s.x),u=Math.min(n.y,s.y),d=Math.abs(s.x-n.x),h=Math.abs(s.y-n.y);!d||!h||(e.beginPath(),e.rect(o,u,d,h),e.clip())}clipContextToHongyuanBoundary(e){const t=this.hongyuanBoundaryPolygons||[];t.length&&(e.beginPath(),t.forEach(a=>{a.forEach(n=>{n.forEach((s,o)=>{const u=this.lngLatToLayerCanvasPoint(s);o===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath()})}),e.clip("evenodd"))}shouldClipLayerToHongyuanBoundary(e=this.currentTopicLayer){if(!e||e.clipToHongyuanBoundary===!1)return!1;if(e.clipToHongyuanBoundary===!0)return!0;const t=String((e==null?void 0:e.key)||"");return!!(t==="national-park-zoning"||t.startsWith("yak-"))}shouldClipLayerToLayerBounds(e=this.currentTopicLayer){return!!(e!=null&&e.clipBounds&&(e==null?void 0:e.clipToLayerBounds)!==!1)}isLngLatInHongyuanBoundary(e){const t=this.hongyuanBoundaryPolygons||[];return t.length?t.some(a=>this.isLngLatInPolygon(e,a)):!0}isLngLatInLayerClipBounds(e,t=this.currentTopicLayer){const a=this.getLayerClipBounds(t);return a?e.lng>=a.west&&e.lng<=a.east&&e.lat>=a.south&&e.lat<=a.north:!0}getLayerClipBounds(e){const t=e==null?void 0:e.clipBounds;if(!t)return null;const a=Math.max(Number(t.west),q.west),n=Math.max(Number(t.south),q.south),s=Math.min(Number(t.east),q.east),o=Math.min(Number(t.north),q.north);return![a,n,s,o].every(Number.isFinite)||a>=s||n>=o?null:{west:a,south:n,east:s,north:o}}getGeometryDrawRank(e){return String(e).includes("Polygon")?1:String(e).includes("LineString")?2:3}isEcologicalProjectLayer(e=this.currentTopicLayer){return["restoration-projects","engineering-analysis-projects"].includes(e==null?void 0:e.key)}getVectorFeatureStyle(e,t){var d,h,g;const a=t.properties||{},s=(e.legends||[]).find(m=>{var L,S;return(((L=m==null?void 0:m.matches)==null?void 0:L.length)||((S=m==null?void 0:m.match)==null?void 0:S.field))&&this.featureMatchesLegend(a,m)})||e.activeLegend||((d=e.legends)==null?void 0:d[0])||{},o=String(((h=t.geometry)==null?void 0:h.type)||"").includes("LineString"),u=((g=t.geometry)==null?void 0:g.type)==="Point";if(this.isEcologicalProjectLayer(e)){const m=o||String(a.feature_role||"")==="线性设施";return{fill:m||u?s.strokeColor||s.fillColor||"#D2EA78":s.fillColor||"#75AD49",stroke:s.strokeColor||s.fillColor||"#D2EA78",polygonAlpha:m?.08:.22,lineAlpha:m?.9:.82,lineWidth:m?3:1.85,pointRadius:u?3.8:4,glow:!1}}return(e==null?void 0:e.key)==="yak-epidemic-village-boundary"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||"#C9FBFF",polygonAlpha:.16,lineAlpha:1,lineWidth:3.2,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="artificial-grassland-plots"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||"#A7F8FF",polygonAlpha:.2,lineAlpha:.94,lineWidth:1.6,pointRadius:4.5,glow:!0}:(e==null?void 0:e.key)==="yak-industry-points"?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||s.fillColor||"#B7FFF2",polygonAlpha:.36,lineAlpha:.82,lineWidth:1.6,pointRadius:this.getVectorPointRadius(e,t),glow:!0,halo:!0,marker:!0,markerType:Fr[String(a.stageKey||"")]||"point"}:(e==null?void 0:e.key)==="national-park-zoning"?{fill:s.fillColor||"#30DCFF",stroke:s.strokeColor||"#F2FFFF",polygonAlpha:.38,lineAlpha:.96,lineWidth:2.7,pointRadius:4.5,glow:!1}:e!=null&&e.boundaryOnly?{fill:s.fillColor||"#24F6C4",stroke:s.strokeColor||s.fillColor||"#18F8FF",polygonAlpha:.04,lineAlpha:.96,lineWidth:10,pointRadius:4.5,glow:!0}:{fill:o||u?s.strokeColor||s.fillColor||"#30DCFF":s.fillColor||"#30DCFF",stroke:s.strokeColor||s.fillColor||"#30DCFF",polygonAlpha:.36,lineAlpha:o?.92:.9,lineWidth:o?5:2.4,pointRadius:u?this.getVectorPointRadius(e,t):4.5,glow:!0}}getVectorPointRadius(e,t){var n,s;const a=Number(((n=t==null?void 0:t.properties)==null?void 0:n.count)||((s=t==null?void 0:t.properties)==null?void 0:s.value)||0);return(e==null?void 0:e.key)==="yak-recognition-layer"?Math.max(3.8,Math.min(8.6,3.6+Math.sqrt(a)/68)):(e==null?void 0:e.key)==="yak-industry-points"?10.4:4.5}drawVectorFeature(e,t,a){if(t!=null&&t.coordinates){if(t.type==="Polygon"){this.drawPolygonPath(e,t.coordinates,a);return}if(t.type==="MultiPolygon"){t.coordinates.forEach(n=>this.drawPolygonPath(e,n,a));return}if(t.type==="LineString"){this.drawLinePath(e,t.coordinates,a);return}if(t.type==="MultiLineString"){t.coordinates.forEach(n=>this.drawLinePath(e,n,a));return}t.type==="Point"&&this.drawPointPath(e,t.coordinates,a)}}drawPolygonPath(e,t,a){Array.isArray(t==null?void 0:t[0])&&(e.save(),e.beginPath(),t.forEach(n=>{n.forEach((s,o)=>{const u=this.lngLatToLayerCanvasPoint(s);o===0?e.moveTo(u.x,u.y):e.lineTo(u.x,u.y)}),e.closePath()}),e.fillStyle=this.hexToRgba(a.fill,a.polygonAlpha),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,a.glow&&(e.shadowColor=a.stroke,e.shadowBlur=14),e.fill("evenodd"),e.stroke(),e.restore())}drawLinePath(e,t,a){!Array.isArray(t)||t.length<2||(e.save(),e.beginPath(),t.forEach((n,s)=>{const o=this.lngLatToLayerCanvasPoint(n);s===0?e.moveTo(o.x,o.y):e.lineTo(o.x,o.y)}),e.strokeStyle=this.hexToRgba(a.stroke,a.lineAlpha),e.lineWidth=a.lineWidth,e.shadowColor=a.stroke,e.shadowBlur=12,e.stroke(),e.restore())}drawPointPath(e,t,a){var s;if(a.marker){this.drawMarkerPointPath(e,t,a);return}const n=this.lngLatToLayerCanvasPoint(t);e.save(),a.halo&&(e.beginPath(),e.arc(n.x,n.y,a.pointRadius*2.35,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.18),e.shadowColor=a.fill,e.shadowBlur=18,e.fill()),e.beginPath(),e.arc(n.x,n.y,a.pointRadius,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.96),e.shadowColor=a.stroke,e.shadowBlur=a.halo?8:12,e.fill(),a.lineWidth&&(e.lineWidth=a.lineWidth,e.strokeStyle=this.hexToRgba(a.stroke,(s=a.lineAlpha)!=null?s:.9),e.stroke()),e.restore()}drawMarkerPointPath(e,t,a){const n=this.lngLatToLayerCanvasPoint(t),s=a.pointRadius||6;e.save(),e.beginPath(),e.arc(n.x,n.y+s*.22,s*2.55,0,Math.PI*2),e.fillStyle=this.hexToRgba(a.fill,.16),e.shadowColor=a.fill,e.shadowBlur=24,e.fill(),e.beginPath(),e.moveTo(n.x,n.y+s*2.05),e.bezierCurveTo(n.x+s*1.46,n.y+s*.62,n.x+s*1.34,n.y-s*1.34,n.x,n.y-s*1.62),e.bezierCurveTo(n.x-s*1.34,n.y-s*1.34,n.x-s*1.46,n.y+s*.62,n.x,n.y+s*2.05),e.closePath(),e.fillStyle=this.hexToRgba(a.fill,.94),e.strokeStyle=this.hexToRgba(a.stroke,.98),e.lineWidth=Math.max(2,a.lineWidth||2),e.shadowColor=a.stroke,e.shadowBlur=14,e.fill(),e.stroke(),e.beginPath(),e.arc(n.x,n.y-s*.34,s*.52,0,Math.PI*2),e.fillStyle=this.hexToRgba("#FFFFFF",.96),e.shadowBlur=0,e.fill(),e.beginPath(),e.arc(n.x,n.y-s*.34,s*.82,0,Math.PI*2),e.lineWidth=Math.max(1.2,s*.14),e.strokeStyle=this.hexToRgba("#FFFFFF",.42),e.stroke(),e.restore()}lngLatToLayerCanvasPoint(e){const t=Number(e==null?void 0:e[0]),a=Number(e==null?void 0:e[1]);return{x:(t-q.west)/(q.east-q.west)*this.topicLayerCanvas.width,y:(q.north-a)/(q.north-q.south)*this.topicLayerCanvas.height}}hexToRgba(e,t=1){const a=String(e||"#30DCFF").replace("#",""),n=a.length===3?a.split("").map(h=>h+h).join(""):a,s=Number.parseInt(n,16);if(!Number.isFinite(s))return`rgba(48, 220, 255, ${t})`;const o=s>>16&255,u=s>>8&255,d=s&255;return`rgba(${o}, ${u}, ${d}, ${t})`}parseWktGeometry(e){var o;const t=String(e||"").trim();if(!t)return null;const a=t.match(/^([A-Z]+)(?:\s+[A-Z]+)?\s*\(/i),n=(o=a==null?void 0:a[1])==null?void 0:o.toUpperCase();if(!n)return null;const s=t.slice(t.indexOf("("));return n==="POLYGON"?{type:"Polygon",coordinates:this.parseWktPolygonBody(s)}:n==="MULTIPOLYGON"?{type:"MultiPolygon",coordinates:this.parseWktMultiPolygonBody(s)}:n==="POINT"?{type:"Point",coordinates:this.parseWktPoint(s)}:n==="MULTIPOINT"?{type:"MultiPoint",coordinates:this.getWktChildGroups(s).map(u=>this.parseWktPoint(u)).filter(Boolean)}:n==="LINESTRING"?{type:"LineString",coordinates:this.parseWktRing(s)}:n==="MULTILINESTRING"?{type:"MultiLineString",coordinates:this.getWktChildGroups(s).map(u=>this.parseWktRing(u)).filter(u=>u.length)}:null}parseWktMultiPolygonBody(e){return this.getWktChildGroups(e).map(t=>this.parseWktPolygonBody(t)).filter(t=>t.length)}parseWktPolygonBody(e){return this.getWktChildGroups(e).map(t=>this.parseWktRing(t)).filter(t=>t.length>=3)}getWktChildGroups(e){const t=String(e||"").trim(),a=t.startsWith("(")&&t.endsWith(")")?t.slice(1,-1):t,n=[];let s=0,o=-1;for(let u=0;u=0&&(n.push(a.slice(o,u+1)),o=-1))}return n.length?n:[a]}parseWktRing(e){return String(e||"").replace(/^\(+|\)+$/g,"").split(",").map(a=>a.trim().split(/\s+/).slice(0,2).map(Number)).filter(([a,n])=>Number.isFinite(a)&&Number.isFinite(n))}parseWktPoint(e){const t=String(e||"").replace(/^\(+|\)+$/g,"").trim().split(/\s+/).slice(0,2).map(Number);return t.length>=2&&Number.isFinite(t[0])&&Number.isFinite(t[1])?[t[0],t[1]]:null}createProvinceMaterial(){const e=!this.useSatelliteBase;let t=new zi({color:16777215,transparent:!0,opacity:0,depthWrite:!this.usesCustomSatelliteTiles,fog:!1,side:Re});t.onBeforeCompile=s=>{s.uniforms=$(N({},s.uniforms),{uColor1:{value:new yt(e?2780818:2152676)},uColor2:{value:new yt(e?1058614:475482)}}),s.vertexShader=s.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),s.fragmentShader=s.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - void main() { - `),s.fragmentShader=s.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); - ${e?`outgoingLight = outgoingLight * gradient; - float topAlpha = 0.56;`:`outgoingLight = mix(outgoingLight * vec3(1.18), outgoingLight * gradient, 0.32); - float topAlpha = 0.92;`} - if(vPosition.z>0.3){ - diffuseColor.a *= topAlpha; - } - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)};let a=this.assets.instance.getResource("side");a.wrapS=ut,a.wrapT=ut,a.repeat.set(1,1.8),a.offset.y+=.065;let n=new Ka({color:2148829,map:a,fog:!1,opacity:0,side:Re,roughness:.58,metalness:.08});return this.time.on("tick",()=>{a.offset.y+=.005}),n.onBeforeCompile=s=>{s.uniforms=$(N({},s.uniforms),{uColor1:{value:new yt(1629410)},uColor2:{value:new yt(205365)}}),s.vertexShader=s.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),s.fragmentShader=s.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - void main() { - `),s.fragmentShader=s.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); - outgoingLight = outgoingLight*gradient*vec3(1.12); - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)},[t,n]}getDefaultTownRanking(){return{title:"乡镇统计加载中",unit:"",rows:Lr.map(e=>({name:e.name,value:0,unit:""}))}}getTownRankingMeta(e=this.currentTownRanking){var n,s,o,u;const t=this.getDefaultTownRanking(),a=_u(e);return{title:(e==null?void 0:e.title)||t.title,unit:(e==null?void 0:e.unit)||t.unit,metricLabel:(e==null?void 0:e.metricLabel)||(e==null?void 0:e.legendName)||"",note:(e==null?void 0:e.note)||"",hideTownNames:Ir(e),hideMapLabels:va(e),hideTownLabelStats:(n=e==null?void 0:e.hideTownLabelStats)!=null?n:this.hideTownLabelStatsByDefault,calloutMode:a,showBars:(s=e==null?void 0:e.showBars)!=null?s:!1,showPointMarkers:(o=e==null?void 0:e.showPointMarkers)!=null?o:a,onlyRankedTownLabels:(u=e==null?void 0:e.onlyRankedTownLabels)!=null?u:!1,showMissingTownStats:(e==null?void 0:e.showMissingTownStats)===!0}}getTownRankingRows(e=this.currentTownRanking,t=7,a=!0){var d;const n=this.getDefaultTownRanking(),s=(d=e==null?void 0:e.rows)!=null&&d.length?e.rows:a?n.rows:[],o=this.getTownRankingMeta(e),u=s.map(h=>{const g=this.townMetaByName.get(dt(h.name));return g?$(N(N({},g),h),{name:g.name,enName:g.enName,center:g.center,centroid:g.centroid,value:ue(h.value),unit:h.unit||o.unit,metricTitle:o.title}):null}).filter(Boolean).sort((h,g)=>g.value-h.value).map((h,g)=>$(N({},h),{rank:g+1}));return Number.isFinite(t)?u.slice(0,t):u}getVillageRankingRows(e=this.currentTownRanking){const t=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,n)=>{var h,g,m,L,S,C,x,E;const s=ue((h=a.lng)!=null?h:a.longitude,NaN),o=ue((g=a.lat)!=null?g:a.latitude,NaN);if(!Number.isFinite(s)||!Number.isFinite(o))return null;const u=ue((m=a.displayValue)!=null?m:a.value),d=ue((C=(S=(L=a.rawValue)!=null?L:a.earTagCount)!=null?S:a.ear_tag_count)!=null?C:a.value);return $(N({},a),{key:a.key||`${a.town||""}-${a.village||a.name||n}`,name:a.name||a.village||`村${n+1}`,town:a.town||"",lng:s,lat:o,value:u,rawValue:d,recordCount:ue((x=a.recordCount)!=null?x:a.record_count,0),imageRate:ue((E=a.imageRate)!=null?E:a.image_rate,0),unit:a.displayUnit||a.unit||t.unit,metricTitle:t.title,metricLabel:a.metricLabel||t.metricLabel||""})}).filter(Boolean).sort((a,n)=>n.rawValue-a.rawValue).map((a,n)=>$(N({},a),{rank:n+1}))}getVillageRankingHtml(e,t){const a=t.hideTownNames?"":`${Se(e.town||"红原县")}`;return e.displayMode==="park-village"||t.displayMode==="park-village"?`
    -
    - ${Se(e.name)} - ${a} -
    -
    - ${Se(e.metricLabel||t.metricLabel||"")} - ${this.formatMapRankingValue(e.value)} - ${Se(e.unit||t.unit||"")} -
    -
    `:`
    -
    - ${Se(e.name)} - ${a} -
    -
    - ${Se(e.metricLabel||"防疫")} - ${this.formatMapRankingValue(e.value)} - ${Se(e.unit||t.unit||"")} -
    -
    - 台账 ${this.formatMapCompactValue(e.recordCount)}条 - 耳标 ${this.formatMapCompactValue(e.rawValue)}头 -
    -
    `}ensureVillageRankingGroup(){this.villageRankingGroup||(this.villageRankingGroup=new Te,this.villageRankingGroup.rotation.x=-Math.PI/2,this.villageRankingGroup.visible=!1,this.scene.add(this.villageRankingGroup),this.villageRankingLabels=[])}hideVillageRankingLabels(){var e;this.villageRankingGroup&&(this.villageRankingGroup.visible=!1),(e=this.villageRankingLabels)==null||e.forEach(t=>{t.visible=!1})}hideAllMapStatisticLabels(){var e,t,a,n;this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.hideTradeFlowLayer(),this.clearInfoPointStats(),(e=this.allProvinceLabel)==null||e.forEach(s=>{s.visible=!1}),(t=this.allBar)==null||t.forEach(s=>{s.visible=!1,s.scale.set(1,1,0)}),(a=this.allBarMaterial)==null||a.forEach(s=>{s.opacity=0}),(n=this.allGuangquan)==null||n.forEach(s=>{s.visible=!1})}setTownNameLabelsVisible(e=!0){var t;(t=this.townNameLabels)==null||t.forEach(a=>{a.visible=e})}updateVillageRankingLabels(e=this.currentTownRanking){if(this.ensureVillageRankingGroup(),!Nr(e)){this.hideVillageRankingLabels();return}const t=this.getVillageRankingRows(e),a=this.getTownRankingMeta(e);if(!t.length){this.hideVillageRankingLabels();return}this.villageRankingGroup.visible=this.mapAnimationComplete,t.forEach((n,s)=>{let o=this.villageRankingLabels[s];o||(o=this.label3d.create("","epidemic-village-label",!0),this.label3d.setLabelStyle(o,.0135,"x"),o.setParent(this.villageRankingGroup),this.villageRankingLabels.push(o));const[u,d]=this.geoProjection([n.lng,n.lat]),h=(s%3-1)*.06,g=Math.floor(s/3)%2*.04;o.init(this.getVillageRankingHtml(n,a),new re(u+h,-d+g,this.depth+1.55+Math.min(s,6)*.015)),o.visible=!0,o.userData=N({},n)}),this.villageRankingLabels.slice(t.length).forEach(n=>{n.visible=!1})}ensureTradeFlowGroup(){this.tradeFlowGroup||(this.tradeFlowGroup=new Te,this.tradeFlowGroup.name="yak-trade-flow",this.tradeFlowGroup.visible=!1,this.tradeFlowMeshGroup=new Te,this.tradeFlowMeshGroup.name="yak-trade-flow-mesh",this.tradeFlowMeshGroup.rotation.x=-Math.PI/2,this.tradeFlowLabelGroup=new Te,this.tradeFlowLabelGroup.name="yak-trade-flow-label",this.tradeFlowLabelGroup.rotation.x=-Math.PI/2,this.tradeFlowGroup.add(this.tradeFlowMeshGroup,this.tradeFlowLabelGroup),this.scene.add(this.tradeFlowGroup))}hideTradeFlowLayer(){var e,t;this.tradeFlowGroup&&(this.tradeFlowGroup.visible=!1),(e=this.tradeFlowLabels)==null||e.forEach(a=>{a.visible=!1}),(t=this.tradeFlowPulseSprites)==null||t.forEach(a=>{a.visible=!1})}clearTradeFlowLayer(){this.tradeFlowMeshGroup&&(this.tradeFlowMeshGroup.children.forEach(e=>{var t;(t=e.traverse)==null||t.call(e,a=>this.disposeObject3D(a))}),this.tradeFlowMeshGroup.clear(),this.tradeFlowMaterials=[],this.tradeFlowPulseSprites=[])}getTradeFlowSource(e=this.currentTownRanking){var s,o,u,d;const t=(e==null?void 0:e.source)||{},a=ue((s=t.lng)!=null?s:t.longitude,NaN),n=ue((o=t.lat)!=null?o:t.latitude,NaN);return!Number.isFinite(a)||!Number.isFinite(n)?null:{name:t.name||"红原牦牛交易市场",lng:a,lat:n,total:ue((d=(u=t.total)!=null?u:t.headCount)!=null?d:t.value,NaN)}}getTradeFlowRows(e=this.currentTownRanking){const t=this.getTownRankingMeta(e);return((e==null?void 0:e.rows)||[]).map((a,n)=>{var L,S,C,x,E,O;const s=ue((L=a.lng)!=null?L:a.longitude,NaN),o=ue((S=a.lat)!=null?S:a.latitude,NaN),u=ue((E=(x=(C=a.headCount)!=null?C:a.head_count)!=null?x:a.rawValue)!=null?E:a.value),d=a.displayName||a.display_name||a.name,h=a.mapTownName||a.map_town_name||a.town||a.startTown||a.start_town||d,g=this.townMetaByName.get(dt(h)),m=Number.isFinite(s)&&Number.isFinite(o)?{lng:s,lat:o}:g!=null&&g.center?{lng:g.center[0],lat:g.center[1]}:null;return!m||!Number.isFinite(u)?null:$(N(N({},a),g),{key:a.key||`${(g==null?void 0:g.name)||d||h||"trade-source"}-${n}`,name:d||h||(g==null?void 0:g.name)||`来源${n+1}`,townName:(g==null?void 0:g.name)||h,lng:m.lng,lat:m.lat,labelSide:a.labelSide||a.label_side||this.getTradeSourceLabelSide(g,n),value:u,headCount:u,recordCount:ue((O=a.recordCount)!=null?O:a.record_count,0),unit:a.unit||t.unit||"头"})}).filter(Boolean).sort((a,n)=>n.value-a.value).map((a,n)=>$(N({},a),{rank:n+1}))}getTradeMarketHtml(e,t){const a=Number.isFinite(e.total)?e.total:t.reduce((n,s)=>n+ue(s.value),0);return`
    -
    ${Se(e.name)}
    -
    ${this.formatMapIntegerValue(a)}
    -
    `}getTradeFlowDisplayName(e=""){const t=String(e||"").replace(/^.*红原县/,"").replace(/\s+/g,"");return t.length>7?`${t.slice(0,7)}…`:t||"来源区域"}getTradeFlowLabelHtml(e){return`
    -
    ${String(e.rank).padStart(2,"0")}${Se(this.getTradeFlowDisplayName(e.name))}
    -
    ${this.formatMapIntegerValue(e.value)}${Se(e.unit||"头")}
    -
    `}getTradeFlowLabelOffset(e,t){return new re(0,0,0)}getTradeSourceLabelSide(e,t=0){var s,o;const a=Number((s=e==null?void 0:e.center)==null?void 0:s[0]),n=Number((o=e==null?void 0:e.center)==null?void 0:o[1]);return Number.isFinite(a)&&athis.geoProjectionCenter[0]+.2?"right":Number.isFinite(n)&&n>this.geoProjectionCenter[1]+.22?"top":Number.isFinite(n)&&n0&&(d.normalize().multiplyScalar((a%2===0?1:-1)*Math.min(.18,.05+u*.02)),o.add(d)),new bl([n,o,s])}tradeGeoProjection(e){return jt().center(this.tradeGeoProjectionCenter).scale(this.tradeGeoProjectionScale).translate([0,0])(e)}setTradeNationalMapVisible(e){const t=!!e;if(!(!t&&!this.isTradeNationalMapActive&&!this.tradeNationalMapGroup&&!this.tradeFlowGroup)){if(t&&!this.createTradeNationalMap()){this.isTradeNationalMapActive=!1;return}this.isTradeNationalMapActive=t,this.tradeNationalMapGroup&&(this.tradeNationalMapGroup.visible=t&&this.mapAnimationComplete),this.tradeNationalLabelGroup&&(this.tradeNationalLabelGroup.visible=t&&this.mapAnimationComplete),this.mapGroup&&(this.mapGroup.visible=!t),this.labelGroup&&(this.labelGroup.visible=!t),this.flyLineGroup&&(this.flyLineGroup.visible=!t&&this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!t&&this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=!t&&this.mapAnimationComplete),this.topicLayerMaterial&&t&&(this.topicLayerMaterial.opacity=0),t&&this.mapAnimationComplete?this.animateMapCamera(new re(0,11.4,16.2),new re(0,-.05,0),.65):!t&&this.mapAnimationComplete&&this.applyLayerMapView(this.currentTopicLayer,{force:!0})}}createTradeSourceMarker(e,t,a,n,s=!0){const o=new yt(t%3===1?16766828:t%3===2?2617536:3202303),u=this.getTradeFlowPoint(e,.72);if(n&&s){const x=this.getLocalTradeFlowCurve(e,n,t),E=new ve({color:o,transparent:!0,opacity:.42,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),O=.012+Math.min(.012,ue(e.value)/Math.max(a,1)*.01),ee=new qe(new vl(x,48,O,8,!1),E);ee.renderOrder=31,this.tradeFlowMeshGroup.add(ee),this.tradeFlowMaterials.push(E);const se=new Qt({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.92,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),Z=new Jt(se),R=.12+Math.min(.08,ue(e.value)/Math.max(a,1)*.06);Z.renderOrder=36,Z.scale.set(R,R,R),Z.userData={curve:x,phase:t*.13%1,speed:.16+Math.min(.16,ue(e.value)/Math.max(a,1)*.12)},Z.position.copy(x.getPointAt(Z.userData.phase)),this.tradeFlowPulseSprites.push(Z),this.tradeFlowMeshGroup.add(Z)}const d=new Qt({map:this.assets.instance.getResource("point"),color:o,transparent:!0,opacity:.95,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),h=new Jt(d),g=.22+Math.min(.34,ue(e.value)/Math.max(a,1)*.28);h.renderOrder=34,h.scale.set(g,g,g),h.position.copy(u),this.tradeFlowMeshGroup.add(h);const m=this.assets.instance.getResource("guangquan1"),L=new ve({map:m,alphaMap:m,color:o,transparent:!0,opacity:.52,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie,side:Re}),S=.38+Math.min(.36,ue(e.value)/Math.max(a,1)*.28),C=new qe(new It(S,S),L);C.renderOrder=29,C.position.copy(this.getTradeFlowPoint(e,.5)),this.tradeFlowMeshGroup.add(C)}createTradeMarketMarker(e){const t=this.assets.instance.getResource("point"),a=this.assets.instance.getResource("guangquan1"),n=this.getTradeLocalPoint(e.lng,e.lat,.82),s=new Qt({map:t,color:16773997,transparent:!0,opacity:1,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie}),o=new Jt(s);o.renderOrder=35,o.scale.set(.34,.34,.34),o.position.copy(n),this.tradeFlowMeshGroup.add(o);const u=new ve({map:a,alphaMap:a,color:16773997,transparent:!0,opacity:.72,depthWrite:!1,depthTest:!1,fog:!1,blending:Ie,side:Re}),d=new qe(new It(.58,.58),u);d.renderOrder=29,d.position.copy(this.getTradeLocalPoint(e.lng,e.lat,.58)),this.tradeFlowMeshGroup.add(d)}disposeObject3D(e){var t,a,n,s;(a=(t=e.geometry)==null?void 0:t.dispose)==null||a.call(t),Array.isArray(e.material)?e.material.forEach(o=>{var u;return(u=o==null?void 0:o.dispose)==null?void 0:u.call(o)}):(s=(n=e.material)==null?void 0:n.dispose)==null||s.call(n)}updateTradeFlowPulses(e=.016){var t,a;!((t=this.tradeFlowGroup)!=null&&t.visible)||!((a=this.tradeFlowPulseSprites)!=null&&a.length)||this.tradeFlowPulseSprites.forEach(n=>{var u;const s=(u=n.userData)==null?void 0:u.curve;if(!s)return;const o=(ue(n.userData.phase)+ue(n.userData.speed,.16)*e)%1;n.userData.phase=o,n.position.copy(s.getPointAt(o))})}updateTradeFlowLayer(e=this.currentTownRanking){if(!Rr(e)){this.hideTradeFlowLayer();return}this.ensureTradeFlowGroup();const t=this.getTradeFlowSource(e),a=this.getTradeFlowRows(e);if(!t||!a.length){this.clearTradeFlowLayer(),this.hideTradeFlowLayer();return}this.clearTradeFlowLayer(),this.tradeFlowGroup.visible=this.mapAnimationComplete;const n=Gu(e);this.createTradeMarketMarker(t);const s=Math.max(...a.map(d=>d.value),1);a.forEach((d,h)=>{this.createTradeSourceMarker(d,h,s,t,n)});const o=a.length+1;for(let d=this.tradeFlowLabels.length;d{const g=this.tradeFlowLabels[h+1];g.element.className="trade-flow-label",g.init(this.getTradeFlowLabelHtml(d),this.getTradeFlowPoint(d,.78).add(this.getTradeFlowLabelOffset(d,h))),g.visible=!0,g.userData=N({},d)}),this.tradeFlowLabels.slice(o).forEach(d=>{d.visible=!1})}hasTownRankingRows(e=this.currentTownRanking){return this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1).length>0}formatMapRankingValue(e){const t=ue(e);return Math.abs(t)>=100?String(Math.round(t)):Math.abs(t)>=10?String(Number(t.toFixed(1))):String(Number(t.toFixed(2)))}formatMapCompactValue(e){const t=ue(e);return Math.abs(t)>=1e4?`${Number((t/1e4).toFixed(Math.abs(t)>=1e5?1:2))}万`:Math.abs(t)>=1e3?`${Number((t/1e3).toFixed(1))}千`:this.formatMapRankingValue(t)}formatMapIntegerValue(e){const t=ue(e);return Math.round(t).toLocaleString("zh-CN")}getBarHeight(e,t){return t?Math.max(2.8*.12,2.8*(ue(e)/t)):2.8*.25}createBarGeometry(e){const a=new wl(.06999999999999999,.06999999999999999,e);return a.translate(0,0,e/2),a}getProvinceLabelHtml(e,t,a){return`
    -
    -
    -
    ${a.title}
    -
    ${this.formatMapRankingValue(e.value)}${e.unit||a.unit}
    -
    ${e.name}
    -
    -
    ${t+1}
    -
    -
    `}updateBarItem(e,t,a,n,s=!0){var h,g;const o=this.getBarHeight(t.value,n),[u,d]=this.geoProjection(t.centroid);return e.visible=!0,(g=(h=e.geometry)==null?void 0:h.dispose)==null||g.call(h),e.geometry=this.createBarGeometry(o),e.position.set(u,-d,this.depth+.45),e.userData=$(N({},t),{targetValue:t.value,geoHeight:o}),e.children.forEach(m=>{var L,S,C,x;(S=(L=m.geometry)==null?void 0:L.dispose)==null||S.call(L),Array.isArray(m.material)?m.material.forEach(E=>{var O;return(O=E==null?void 0:E.dispose)==null?void 0:O.call(E)}):(x=(C=m.material)==null?void 0:C.dispose)==null||x.call(C)}),e.clear(),e.add(...this.createHUIGUANG(o,a>3?16776948:7863285)),s?ta.to(e.scale,{duration:.45,x:1,y:1,z:1,ease:"power2.out"}):this.mapAnimationComplete&&e.scale.set(1,1,1),{x:u,y:d,geoHeight:o}}updateProvinceLabel(e,t,a,n,s,o=!0){var C;const u=ue((C=e.userData)==null?void 0:C.targetValue,t.value);e.visible=!0,e.userData=$(N({},t),{targetValue:t.value}),e.position.copy(n);const d=e.element.querySelector(".label-title"),h=e.element.querySelector(".number .value"),g=e.element.querySelector(".number .unit"),m=e.element.querySelector(".name"),L=e.element.querySelector(".no");!d||!h||!g||!m||!L?e.element.innerHTML=this.getProvinceLabelHtml(t,a,s):(d.innerText=s.title,h.dataset.targetValue=String(t.value),h.innerText=this.formatMapRankingValue(t.value),g.innerText=t.unit||s.unit,m.innerText=t.name,L.innerText=a+1);const S=e.element.querySelector(".provinces-label-wrap");if(this.mapAnimationComplete&&(S.style.opacity="1",S.style.transform="translate(50%, 0)"),o&&this.mapAnimationComplete){const x=e.element.querySelector(".number .value"),O={value:u};ta.to(O,{value:t.value,duration:.45,ease:"power2.out",onUpdate:()=>{x.innerText=this.formatMapRankingValue(O.value)},onComplete:()=>{x.dataset.previousValue=String(t.value),x.innerText=this.formatMapRankingValue(t.value)}})}}clearTownNameLabelStat(e){const t=e.element.querySelector(".town-stat-label"),a=e.element.querySelector(".town-stat-value"),n=e.element.querySelector(".town-stat-unit"),s=e.element.querySelector(".town-rank"),o=e.element.querySelector(".town-stat-metric");t==null||t.classList.remove("has-stat"),e.element.style.pointerEvents="none",e.element.style.cursor="",a&&(a.innerText=""),n&&(n.innerText=""),s&&(s.innerText=""),o&&(o.innerText="")}updateTownNameLabelStats(e=this.currentTownRanking){var o;if(!((o=this.townNameLabels)!=null&&o.length))return;const t=this.getTownRankingRows(e,Number.POSITIVE_INFINITY,!1),a=this.getTownRankingMeta(e);if(a.hideTownLabelStats){this.townNameLabels.forEach(u=>{var g,m;const d=((g=u.userData)==null?void 0:g.townName)||((m=u.userData)==null?void 0:m.name),h=u.element.querySelector(".town-name");h&&(h.innerText=d||""),this.clearTownNameLabelStat(u),u.visible=!a.hideTownNames});return}const n=new Map(t.map(u=>[dt(u.name),u])),s=!!(a.showMissingTownStats&&e&&t.length&&(a.metricLabel||a.unit||a.title));this.townNameLabels.forEach(u=>{var ee,se;const d=((ee=u.userData)==null?void 0:ee.townName)||((se=u.userData)==null?void 0:se.name),h=n.get(dt(d));if(a.onlyRankedTownLabels&&!h){this.clearTownNameLabelStat(u),u.element.style.pointerEvents="none",u.element.style.cursor="",u.visible=!1;return}const g=h||(s?{name:d,value:0,unit:a.unit,metricLabel:a.metricLabel,rank:null}:null);if(!g){this.clearTownNameLabelStat(u),u.element.style.pointerEvents="none",u.element.style.cursor="";return}const m=u.element.querySelector(".town-stat-label"),L=u.element.querySelector(".town-name"),S=u.element.querySelector(".town-stat-value"),C=u.element.querySelector(".town-stat-unit"),x=u.element.querySelector(".town-rank"),E=u.element.querySelector(".town-stat-metric");m==null||m.classList.add("has-stat"),L&&(L.innerText=d),E&&(E.innerText=g.metricLabel||a.metricLabel||""),S&&(S.innerText=this.formatMapRankingValue(g.value)),C&&(C.innerText=g.unit||a.unit||""),x&&(x.innerText=g.rank?`第${g.rank}名`:"");const O=this.isNationalParkTownSelectionActive()&&!!h;u.element.style.pointerEvents=O?"auto":"none",u.element.style.cursor=O?"pointer":"",u.userData=$(N(N({},u.userData),g),{townName:d,targetValue:g.value})})}getInfoPointHtml(e,t=this.getTownRankingMeta()){const a=String(e.metricLabel||t.metricLabel||t.title||"统计指标").replace(/排行$/,""),n=Number(e.rank),s=Number.isFinite(n)?String(n).padStart(2,"0"):"--";return`
    -
    -
    - ${s} - ${Se(e.name||"红原县")} -
    -
    ${Se(a)}
    -
    - ${this.formatMapRankingValue(e.value)} - ${Se(e.unit||t.unit||"")} -
    -
    -
    `}updateInfoPointStats(){var o,u;if(!((o=this.infoPointSprites)!=null&&o.length)||!((u=this.infoLabelElement)!=null&&u.length))return;if(!this.showTownRankingPointMarkers){this.clearInfoPointStats();return}const e=this.getTownRankingRows(this.currentTownRanking,Number.POSITIVE_INFINITY,!1);if(!e.length){this.clearInfoPointStats();return}const t=this.getTownRankingMeta(),a=e.slice(0,this.infoPointSprites.length),n=Math.max(...a.map(d=>d.value),1);this.infoPointSprites.forEach((d,h)=>{const g=a[h],m=this.infoLabelElement[h];if(!g){d.visible=!1,d.scale.set(0,0,0),m&&(m.visible=!1);return}const[L,S]=this.geoProjection(g.centroid||g.center),C=[L,-S,this.depth+.72];d.userData=$(N(N({},d.userData),g),{position:C,value:g.value,unit:g.unit||t.unit,rank:g.rank,metricTitle:t.title,index:h}),d.position.set(...C),d.visible=this.showTownRankingPointMarkers;const x=.78+g.value/n*.44;if(d.scale.set(x,x,x),m){const E=(h%2===0?.22:-.18)+(h===0?.12:0),O=h%3===0?.08:-.04;m.position.set(L+E,-S+O,this.depth+1.88+Math.min(h,4)*.03),m.userData=$(N({},g),{index:h}),m.element.innerHTML=this.getInfoPointHtml(g,t)}});const s=this.infoLabelElement[this.infoPointIndex];s&&this.showTownRankingPointMarkers&&this.mapAnimationComplete&&(s.visible=!0),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}clearInfoPointStats(){var e,t;clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null,this.infoPointIndex=0,this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),(e=this.infoLabelElement)==null||e.forEach(a=>{a.visible=!1}),(t=this.infoPointSprites)==null||t.forEach(a=>{a.visible=!1,a.scale.set(0,0,0)})}createBar(){const e=this.getTownRankingRows();this.getTownRankingMeta();const t=new Te;this.barGroup=t;const a=Math.max(...e.map(n=>n.value),1);this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],e.map((n,s)=>{const o=this.getBarHeight(n.value,a),u=new ve({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Za(u,{uColor1:s>3?16506760:5291006,uColor2:s>3?16776948:7863285,size:o,dir:"y"});const d=new qe(this.createBarGeometry(o),u);d.renderOrder=5;const[h,g]=this.geoProjection(n.centroid);d.position.set(h,-g,this.depth+.45),d.scale.set(1,1,0),d.userData=$(N({},n),{targetValue:n.value,geoHeight:o});const m=this.createQuan(new re(h,this.depth+.44,g),s);d.add(...this.createHUIGUANG(o,s>3?16776948:7863285)),t.add(d),t.rotation.x=-Math.PI/2,this.allBar.push(d),this.allBarMaterial.push(u),this.allGuangquan.push(m)}),this.scene.add(t),this.updateTownNameLabelStats(this.currentTownRanking)}setTownRanking(e){var s,o,u,d,h,g,m,L,S,C,x,E,O,ee,se,Z;this.currentTownRanking=e;const t=this.getTownRankingMeta(e);if(this.showTownRankingBars=!!t.showBars,this.showTownRankingPointMarkers=!!t.showPointMarkers,t.hideMapLabels){this.hideAllMapStatisticLabels(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete);return}if(Rr(e)){this.setTradeNationalMapVisible(!1),this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!1),this.hideVillageRankingLabels(),this.clearInfoPointStats(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!1),this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),(s=this.allBar)!=null&&s.length&&(this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(o=this.allBarMaterial)==null||o.forEach(R=>{R.opacity=0}),(u=this.allProvinceLabel)==null||u.forEach(R=>{R.visible=!1}),(d=this.allGuangquan)==null||d.forEach(R=>{R.visible=!1})),this.updateTradeFlowLayer(e),(e!=null&&e.mapView||e!=null&&e.cameraPosition)&&this.applyLayerMapView(null);return}if(this.setTradeNationalMapVisible(!1),this.hideTradeFlowLayer(),this.mapGroup&&(this.mapGroup.visible=!0),this.labelGroup&&(this.labelGroup.visible=!0),this.flyLineGroup&&(this.flyLineGroup.visible=this.mapAnimationComplete),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=this.mapAnimationComplete),this.scatterGroup&&(this.scatterGroup.visible=this.mapAnimationComplete),Nr(e)){this.updateTownNameLabelStats(null),this.setTownNameLabelsVisible(!Ir(e)),this.clearInfoPointStats(),this.updateVillageRankingLabels(e),(h=this.allBar)!=null&&h.length&&(this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(g=this.allBarMaterial)==null||g.forEach(R=>{R.opacity=0}),(m=this.allProvinceLabel)==null||m.forEach(R=>{R.visible=!1}),(L=this.allGuangquan)==null||L.forEach(R=>{R.visible=!1}));return}if(this.setTownNameLabelsVisible(!t.calloutMode&&!t.hideTownNames),this.hideVillageRankingLabels(),t.calloutMode?this.updateTownNameLabelStats(null):this.updateTownNameLabelStats(e),!((S=this.allBar)!=null&&S.length))return;if(!this.showTownRankingBars){this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(C=this.allBarMaterial)==null||C.forEach(R=>{R.opacity=0}),(x=this.allProvinceLabel)==null||x.forEach(R=>{R.visible=!1}),(E=this.allGuangquan)==null||E.forEach(R=>{R.visible=!1}),this.showTownRankingPointMarkers?(this.InfoPointGroup&&(this.InfoPointGroup.visible=this.mapAnimationComplete&&this.hasTownRankingRows(e)),this.updateInfoPointStats()):this.clearInfoPointStats();return}const a=this.getTownRankingRows(e,7,!1);if(!a.length){this.allBar.forEach(R=>{R.visible=!1,R.scale.set(1,1,0)}),(O=this.allProvinceLabel)==null||O.forEach(R=>{R.visible=!1}),(ee=this.allGuangquan)==null||ee.forEach(R=>{R.visible=!1}),this.clearInfoPointStats();return}this.InfoPointGroup&&(this.InfoPointGroup.visible=this.showTownRankingPointMarkers&&this.mapAnimationComplete),(se=this.infoPointSprites)==null||se.forEach(R=>{R.visible=this.showTownRankingPointMarkers});const n=Math.max(...a.map(R=>R.value),1);this.allBar.forEach((R,Fe)=>{const We=Fe{R.visible=!1}),this.allGuangquan.forEach((R,Fe)=>{R.visible=Fe{const We=this.allBar[Fe],at=this.allGuangquan[Fe];if(!We)return;const{x:bt,y:W}=this.updateBarItem(We,R,Fe,n,this.mapAnimationComplete);at&&(at.visible=!0,at.position.set(0,0,0),at.children.forEach(Ee=>{Ee.position.set(bt,this.depth+.44,W),this.mapAnimationComplete&&Ee.scale.set(1,1,1)}))}),this.updateInfoPointStats()}createEvent(){let e=[];const t=n=>{n.traverse(s=>{s.isMesh&&(s.material=this.defaultMaterial)})},a=n=>{n.traverse(s=>{s.isMesh&&(s.material=this.defaultLightMaterial)})};this.eventElement.map(n=>{this.interactionManager.add(n),n.addEventListener("mousedown",s=>{this.handleMapClick(s)}),n.addEventListener("mouseover",s=>{e.includes(s.target.parent)||e.push(s.target.parent),document.body.style.cursor="pointer",a(s.target.parent)}),n.addEventListener("mouseout",s=>{e=e.filter(o=>o.userData.name!==s.target.parent.userData.name),e.length>0&&e[e.length-1],t(s.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(e,t){let a=new It(.35,e);a.translate(0,e/2,0);const n=this.assets.instance.getResource("huiguang");n.colorSpace=ia,n.wrapS=ut,n.wrapT=ut;let s=new ve({color:t,map:n,transparent:!0,opacity:.4,depthWrite:!1,side:Re,blending:Ie}),o=new qe(a,s);o.renderOrder=10,o.rotateX(Math.PI/2);let u=o.clone(),d=o.clone();return u.rotateY(Math.PI/180*60),d.rotateY(Math.PI/180*120),[o,u,d]}createQuan(e,t){const a=this.assets.instance.getResource("guangquan1"),n=this.assets.instance.getResource("guangquan2");let s=new It(.5,.5),o=new ve({color:16777215,map:a,alphaMap:a,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Ie}),u=new ve({color:16777215,map:n,alphaMap:n,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:Ie}),d=new qe(s,o),h=new qe(s,u);return d.renderOrder=6,h.renderOrder=6,d.rotateX(-Math.PI/2),h.rotateX(-Math.PI/2),d.position.copy(e),h.position.copy(e),h.position.y-=.001,d.scale.set(0,0,0),h.scale.set(0,0,0),this.quanGroup=new Te,this.quanGroup.add(d,h),this.scene.add(this.quanGroup),this.time.on("tick",()=>{d.rotation.z+=.05}),this.quanGroup}createDiffuse(){let e=new It(200,200),t=new ve({color:0,depthWrite:!1,transparent:!0,blending:Ll});t.blendEquation=Tl,t.blendSrc=Sl,t.blendDst=Ml,new Gl({material:t,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:n=>{const s=setTimeout(()=>{this.addSceneTween(ta.to(n.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(s)}});let a=new qe(e,t);a.renderOrder=3,a.rotation.x=-Math.PI/2,a.position.set(0,.21,0),this.scene.add(a)}createGrid(){new _l(this,{gridSize:54,gridDivision:24,gridColor:1990543,shapeSize:.55,shapeColor:3309487,pointSize:.085,pointColor:1993891,pointBlending:Ie})}createBottomBg(){let e=new It(24,24);const t=this.assets.instance.getResource("ocean");t.colorSpace=ia,t.wrapS=ut,t.wrapT=ut,t.repeat.set(1,1);let a=new ve({map:t,opacity:.92,fog:!1}),n=new qe(e,a);n.rotation.x=-Math.PI/2,n.position.set(0,-.7,0),this.scene.add(n)}createChinaBlurLine(){let e=new It(154,154);const t=this.assets.instance.getResource("chinaBlurLine");t.colorSpace=ia,t.wrapS=ut,t.wrapT=ut,t.generateMipmaps=!1,t.minFilter=ir,t.repeat.set(1,1);let a=new ve({color:4162253,alphaMap:t,transparent:!0,opacity:.62}),n=new qe(e,a);n.rotateX(-Math.PI/2),n.position.set(-19.3,-.5,-19.7),this.scene.add(n)}createLabel(){let e=this,t=this.labelGroup,a=this.label3d,n=[],s=[];cu.map(u=>{if(u.hide==!0)return!1;let d=o(u,a,t);n.push(d),s.push(d)}),this.otherLabel=n,this.townNameLabels=s;function o(u,d,h){let g=d.create("",`china-label ${u.blur?" blur":""}`,!0);const[m,L]=e.geoProjection(u.center);return g.init(`
    -
    ${u.name}
    -
    -
    `,new re(m,-L,e.depth+.85)),d.setLabelStyle(g,.018,"x"),g.setParent(h),g.userData=$(N({},u),{labelType:"town-label",baseScale:.018,townName:u.name}),g.element.addEventListener("pointerdown",S=>{e.handleTownRankingSelect(u.name,{preserveCamera:!0,statusText:`已选中${u.name}`})&&(S.preventDefault(),S.stopPropagation())}),g}}createRotateBorder(){let e=13.2,t=this.assets.instance.getResource("rotationBorder1"),a=this.assets.instance.getResource("rotationBorder2"),n=new dr(this,{width:e*1.178,needRotate:!0,rotateSpeed:.001,material:new ve({map:t,color:4763647,transparent:!0,opacity:.26,side:Re,depthWrite:!1,blending:Ie}),position:new re(0,.31,0)});n.instance.rotation.x=-Math.PI/2,n.instance.renderOrder=6,n.instance.scale.set(0,0,0),n.setParent(this.scene);let s=new dr(this,{width:e*1.116,needRotate:!0,rotateSpeed:-.004,material:new ve({map:a,color:4763647,transparent:!0,opacity:.5,side:Re,depthWrite:!1,blending:Ie}),position:new re(0,.33,0)});s.instance.rotation.x=-Math.PI/2,s.instance.renderOrder=6,s.instance.scale.set(0,0,0),s.setParent(this.scene),this.rotateBorder1=n.instance,this.rotateBorder2=s.instance}createFlyLine(){this.flyLineGroup=new Te,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup)}createFocus(){this.flyLineFocusGroup.clear()}createParticles(){this.particles=new hr(this,{num:10,range:30,dir:"up",speed:.05,material:new kl({map:hr.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:Ie,sizeAttenuation:!0})}),this.particleGroup=new Te,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new Te,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const e=this.assets.instance.getResource("arrow"),t=new Qt({map:e,color:16776948,fog:!1,transparent:!0,depthTest:!1});let a=xr(du),n=a[0].value;a.map(s=>{const o=new Jt(t);o.renderOrder=23;let u=.1+s.value/n*.2;o.scale.set(u,u,u);let[d,h]=this.geoProjection([s.lng,s.lat]);o.position.set(d,-h,this.depth+.45),o.userData.position=[d,-h,this.depth+.45],this.scatterGroup.add(o)})}createInfoPoint(){let e=this;this.InfoPointGroup=new Te,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[],this.infoPointSprites=[];let t=this.label3d;const a=this.assets.instance.getResource("point");let n=[16776948,7863285],s=xr(hu),o=s[0].value;s.map((d,h)=>{const g=new Qt({map:a,color:n[h%n.length],fog:!1,transparent:!0,depthTest:!1}),m=new Jt(g);m.renderOrder=23;let L=.7+d.value/o*.4;m.scale.set(L,L,L);let[S,C]=this.geoProjection([d.lng,d.lat]),x=[S,-C,this.depth+.7];m.position.set(...x),m.userData.position=[...x],m.userData={position:[S,-C,this.depth+.7],name:d.name,value:d.value,level:d.level,index:h},this.InfoPointGroup.add(m);let E=u(d,t,this.InfoPointGroup,h);this.infoLabelElement.push(E),this.infoPointSprites.push(m),this.interactionManager.add(m),m.addEventListener("mousedown",O=>{var ee,se;if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.infoPointIndex=O.target.userData.index,this.infoLabelElement.map(Z=>{Z.visible=!1}),E.visible=!0,this.handleTownRankingSelect(((ee=O.target.userData)==null?void 0:ee.name)||((se=O.target.userData)==null?void 0:se.townName)),this.createInfoPointLabelLoop()}),m.addEventListener("mouseup",O=>{this.clicked=!1}),m.addEventListener("mouseover",O=>{document.body.style.cursor="pointer"}),m.addEventListener("mouseout",O=>{document.body.style.cursor="default"})});function u(d,h,g,m){let L=h.create("","info-point",!0);const[S,C]=e.geoProjection([d.lng,d.lat]);return L.init(e.getInfoPointHtml($(N({},d),{value:0,rank:m+1,unit:""}),e.getTownRankingMeta()),new re(S,-C,e.depth+1.9)),h.setLabelStyle(L,.015,"x"),L.setParent(g),L.visible=!1,L}}createInfoPointLabelLoop(){var e;this.scenePaused||!((e=this.infoLabelElement)!=null&&e.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((t,a)=>{this.infoPointIndex===a?t.visible=!0:t.visible=!1})},3e3))}createStorke(){const e=this.staticMapData.mapStroke,t=this.assets.instance.getResource("pathLine3");t.wrapS=t.wrapT=ut,t.repeat.set(2,1);let a=new ea(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new re(0,0,this.depth+.24),data:e,material:new ve({color:2868444,map:t,alphaMap:t,fog:!1,transparent:!0,opacity:1,blending:Ie}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(a.lineGroup),this.time.on("tick",()=>{t.offset.x+=.005})}handleMapClick(e){return he(this,null,function*(){var s,o,u,d,h,g,m,L,S,C,x,E,O,ee,se,Z,R,Fe,We,at,bt,W,Ee,kt,ht,Pt,Ut,vt,pt,Ye,Ue,ce,we,Ct,it,$e,nt,xe,je,rt,M;if(!this.currentTopicLayer)return;const t=this.getScreenPointFromEvent(e),a=this.getLngLatFromEvent(e);if(!a){this.clearSelectedFeature(),(o=(s=this.callbacks).onFeatureInfo)==null||o.call(s,{feature:null});return}if(this.boundaryDrawingEnabled){const v=((u=e==null?void 0:e.data)==null?void 0:u.originalEvent)||(e==null?void 0:e.originalEvent)||e;if(v!=null&&v.__analysisBoundaryHandled)return;this.addBoundaryDrawPoint(a);return}if(this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)&&!this.isLngLatInHongyuanBoundary(a)){this.clearSelectedFeature(),(h=(d=this.callbacks).onFeatureInfo)==null||h.call(d,{feature:null}),(m=(g=this.callbacks).onLayerStatus)==null||m.call(g,{type:"success",text:"当前点击位置不在红原县边界内"});return}if(this.shouldClipLayerToLayerBounds(this.currentTopicLayer)&&!this.isLngLatInLayerClipBounds(a,this.currentTopicLayer)){this.clearSelectedFeature(),(S=(L=this.callbacks).onFeatureInfo)==null||S.call(L,{feature:null}),(x=(C=this.callbacks).onLayerStatus)==null||x.call(C,{type:"success",text:"当前点击位置不在图层显示范围内"});return}if(Bu(this.currentTopicLayer)){this.clearSelectedFeature(),(O=(E=this.callbacks).onFeatureInfo)==null||O.call(E,{feature:null});return}if(Qa(this.currentTopicLayer)){const v=this.pickVectorFeatureAtPoint(a,t),G=(v==null?void 0:v.feature)||v;let V=(v==null?void 0:v.screen)||t;if(G)this.shouldClipLayerToHongyuanBoundary(this.currentTopicLayer)?(this.clearSelectedGeometryGroup(),this.setSelectedVectorFeatures([G])):this.showSelectedFeature(G),((ee=this.currentTopicLayer)==null?void 0:ee.key)==="yak-industry-points"&&(this.setSelectedVectorFeatures([G]),V=this.getPointFeatureScreenPoint(G)||V),(We=(Fe=this.callbacks).onFeatureInfo)==null||We.call(Fe,{feature:{id:((se=G.properties)==null?void 0:se.id)||((Z=G.properties)==null?void 0:Z.feature_id)||((R=G.properties)==null?void 0:R.project_name),properties:G.properties||{},feature:G,layer:this.currentTopicLayer,lngLat:a},screen:V}),(bt=(at=this.callbacks).onLayerStatus)==null||bt.call(at,{type:"success",text:"真实矢量要素已选中"});else{const U=this.getTownNameFromMapEvent(e);if(this.handleTownRankingSelect(U))return;this.clearSelectedFeature(),(Ee=(W=this.callbacks).onFeatureInfo)==null||Ee.call(W,{feature:null}),(ht=(kt=this.callbacks).onLayerStatus)==null||ht.call(kt,{type:"success",text:"当前点击位置无生态保护要素"})}return}const n=this.lngLatToWmsPixel(a);(Ut=(Pt=this.callbacks).onFeatureInfo)==null||Ut.call(Pt,{feature:null}),(pt=(vt=this.callbacks).onFeatureLoading)==null||pt.call(vt,!0);try{const v=yield br(this.currentTopicLayer,n,{size:_t,buffer:10}),G=this.normalizeFeatureInfoAtPoint(v,a),V=G?null:yield this.queryFallbackFeatureInfo(a),U=G||(V==null?void 0:V.feature);if(U){const J=yield this.enrichFeatureInfo(U,n,a);this.showSelectedFeature(J.feature||J),(Ue=(Ye=this.callbacks).onFeatureInfo)==null||Ue.call(Ye,{feature:$(N({},J),{layer:(V==null?void 0:V.layer)||this.currentTopicLayer,lngLat:a}),screen:t})}else this.clearSelectedFeature(),(we=(ce=this.callbacks).onFeatureInfo)==null||we.call(ce,{feature:null});U||(it=(Ct=this.callbacks).onLayerStatus)==null||it.call(Ct,{type:"success",text:"当前点击位置无图斑"})}catch(v){this.clearSelectedFeature(),(nt=($e=this.callbacks).onFeatureInfo)==null||nt.call($e,{feature:null}),(je=(xe=this.callbacks).onLayerStatus)==null||je.call(xe,{type:"error",text:"图斑信息查询失败"})}finally{(M=(rt=this.callbacks).onFeatureLoading)==null||M.call(rt,!1)}})}handleCanvasBoundaryPointerDown(e){var a,n;if(!this.boundaryDrawingEnabled)return;const t=this.getLngLatFromCanvasEvent(e);t&&this.addBoundaryDrawPoint(t)&&(e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(n=e.stopPropagation)==null||n.call(e)}handleCanvasBoundaryDoubleClick(e){var a,n;if(!this.boundaryDrawingEnabled)return;const t=this.getLngLatFromCanvasEvent(e);(this.boundaryDrawPoints||[]).length<3&&t&&this.addBoundaryDrawPoint(t),(this.boundaryDrawPoints||[]).length>=3&&(this.finishBoundaryDrawing(),e.__analysisBoundaryHandled=!0),(a=e.preventDefault)==null||a.call(e),(n=e.stopPropagation)==null||n.call(e)}getLngLatFromCanvasEvent(e){var L,S,C;if(!((L=this.camera)!=null&&L.instance)||!this.focusMapGroup||!this.canvas)return null;const t=this.canvas.getBoundingClientRect();if(!t.width||!t.height)return null;const a=(S=this.interactionManager)==null?void 0:S.raycaster;if(!(a!=null&&a.setFromCamera))return null;const n={x:(e.clientX-t.left)/t.width*2-1,y:-((e.clientY-t.top)/t.height)*2+1};a.setFromCamera(n,this.camera.instance);const o=((C=a.intersectObjects(this.eventElement||[],!0)[0])==null?void 0:C.point)||this.getRayMapPlaneIntersection(a.ray);if(!o)return null;const u=this.focusMapGroup.worldToLocal(o.clone()),h=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([u.x,-u.y]);if(!h)return null;const g=Number(h[0]),m=Number(h[1]);return!Number.isFinite(g)||!Number.isFinite(m)?null:gq.east+.03||mq.north+.03?this.getFallbackLngLatFromPointer(e,t):{lng:g,lat:m}}getFallbackLngLatFromPointer(e,t=(n=>(n=(a=>(a=this.canvas)==null?void 0:a.getBoundingClientRect)())==null?void 0:n.call(a))()){if(!(t!=null&&t.width)||!(t!=null&&t.height))return null;const s=Math.min(1,Math.max(0,(e.clientX-t.left)/t.width)),o=Math.min(1,Math.max(0,(e.clientY-t.top)/t.height)),u=q.west+(q.east-q.west)*s,d=q.north-(q.north-q.south)*o;return{lng:u,lat:d}}getRayMapPlaneIntersection(e){if(!(e!=null&&e.origin)||!(e!=null&&e.direction)||!this.focusMapGroup)return null;const t=this.focusMapGroup.worldToLocal(e.origin.clone()),n=this.focusMapGroup.worldToLocal(e.origin.clone().add(e.direction.clone())).sub(t),s=this.depth+.22;if(Math.abs(n.z)<1e-8)return null;const o=(s-t.z)/n.z;if(!Number.isFinite(o)||o<0)return null;const u=t.add(n.multiplyScalar(o));return this.focusMapGroup.localToWorld(u)}enrichFeatureInfo(e,t,a){return he(this,null,function*(){const n=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(n))return e;const o=(Wi[n]||[]).find(m=>m.key===`${n}-distribution`),u=(this.visibleTopicLayers||[]).filter(m=>this.getLayerTopicKey(m)===n).slice(0,5),d=[o,this.currentTopicLayer,...u].filter(m=>m==null?void 0:m.layerName).filter((m,L,S)=>S.findIndex(C=>this.getLayerQueryKey(C)===this.getLayerQueryKey(m))===L);if(!d.length)return e;const h=yield Promise.allSettled([...d.filter(m=>this.getLayerQueryKey(m)!==this.getLayerQueryKey(this.currentTopicLayer)).map(m=>he(this,null,function*(){const L=yield br(m,t,{size:_t,buffer:10}),S=this.normalizeFeatureInfoAtPoint(L,a);return S?{layer:m,feature:S,source:"wms"}:null})),...d.map(m=>he(this,null,function*(){const L=yield this.queryLayerFeatureByPoint(m,a);return L?{layer:m,feature:L,source:"wfs"}:null}))]),g=N({},e.properties||{});return h.forEach(m=>{var L,S;m.status!=="fulfilled"||!((S=(L=m.value)==null?void 0:L.feature)!=null&&S.properties)||this.mergeBusinessProperties(g,m.value.feature.properties,m.value.layer)}),$(N({},e),{properties:g,relatedFeatures:h.filter(m=>{var L;return m.status==="fulfilled"&&((L=m.value)==null?void 0:L.feature)}).map(m=>m.value),feature:$(N({},e.feature||{}),{properties:g})})})}queryFallbackFeatureInfo(e){return he(this,null,function*(){const t=this.getLayerTopicKey(this.currentTopicLayer);if(!["grassland","wetland","woodland"].includes(t))return null;const n=[(Wi[t]||[]).find(s=>s.key===`${t}-distribution`),this.currentTopicLayer,...(this.visibleTopicLayers||[]).filter(s=>this.getLayerTopicKey(s)===t)].filter((s,o,u)=>(s==null?void 0:s.layerName)&&u.findIndex(d=>this.getLayerQueryKey(d)===this.getLayerQueryKey(s))===o);for(const s of n){const o=yield this.queryLayerFeatureByPoint(s,e,{requireContainment:!0});if(o)return{layer:s,feature:o}}return null})}normalizeFeatureInfoAtPoint(e,t){const a=Array.isArray(e==null?void 0:e.features)?e.features:[];if(!a.length)return null;const n=this.pickFeatureAtPoint(a,t,{requireContainment:!0});if(!n)return null;const s=n.properties||{};return{id:n.id||s.gid||s.objectid||s.OBJECTID,properties:s,feature:n}}queryLayerFeatureByPoint(n,s){return he(this,arguments,function*(e,t,a={}){var C,x,E;if(!(e!=null&&e.layerName)||!Number.isFinite(t==null?void 0:t.lng)||!Number.isFinite(t==null?void 0:t.lat))return null;const o=e.pointQueryTolerance||.0015,u=e.geometryField||"geom",d=t.lng-o,h=t.lat-o,g=t.lng+o,m=t.lat+o,L=yield yr(e.layerName,{cqlFilter:`BBOX(${u},${d},${h},${g},${m})`,maxFeatures:8,timeout:12e3}),S=this.pickFeatureAtPoint((L==null?void 0:L.features)||[],t,a);return S?{id:S.id||((C=S.properties)==null?void 0:C.gid)||((x=S.properties)==null?void 0:x.objectid)||((E=S.properties)==null?void 0:E.OBJECTID),properties:S.properties||{},feature:S}:null})}pickFeatureAtPoint(e,t,a={}){var s;if(!Array.isArray(e)||!e.length)return null;const n=e.filter(o=>this.isLngLatInGeometry(t,o.geometry)).sort((o,u)=>this.getGeometryAreaScore(o.geometry)-this.getGeometryAreaScore(u.geometry));return n.length?n[0]:a.requireContainment?null:((s=e.map(o=>({feature:o,distance:this.getGeometryDistanceScore(o.geometry,t)})).sort((o,u)=>o.distance-u.distance)[0])==null?void 0:s.feature)||null}isLngLatInGeometry(e,t){return!e||!(t!=null&&t.coordinates)?!1:t.type==="Polygon"?this.isLngLatInPolygon(e,t.coordinates):t.type==="MultiPolygon"?t.coordinates.some(a=>this.isLngLatInPolygon(e,a)):!1}isLngLatInPolygon(e,t=[]){return!t.length||!this.isLngLatInRing(e,t[0])?!1:!t.slice(1).some(n=>this.isLngLatInRing(e,n))}isLngLatInRing(e,t=[]){if(t.length<3)return!1;let a=!1;const n=e.lng,s=e.lat;for(let o=0,u=t.length-1;os!=S>s&&n<(L-g)*(s-m)/(S-m)+g&&(a=!a)}return a}isPointOnSegment(e,t,a,n,s,o){const u=(e-a)*(o-n)-(t-n)*(s-a);return Math.abs(u)>1e-10?!1:(e-a)*(e-s)+(t-n)*(t-o)<=1e-10}getGeometryAreaScore(e){return e!=null&&e.coordinates?e.type==="Polygon"?this.getLngLatPolygonAreaScore(e.coordinates):e.type==="MultiPolygon"?e.coordinates.reduce((t,a)=>t+this.getLngLatPolygonAreaScore(a),0):Number.POSITIVE_INFINITY:Number.POSITIVE_INFINITY}getLngLatPolygonAreaScore(e=[]){const t=e[0]||[];if(t.length<3)return Number.POSITIVE_INFINITY;let a=0;for(let n=0;n({minLng:Math.min(a.minLng,Number((n==null?void 0:n[0])||0)),minLat:Math.min(a.minLat,Number((n==null?void 0:n[1])||0)),maxLng:Math.max(a.maxLng,Number((n==null?void 0:n[0])||0)),maxLat:Math.max(a.maxLat,Number((n==null?void 0:n[1])||0))}),{minLng:Number.POSITIVE_INFINITY,minLat:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY}):null}getGeometryCoordinateList(e){const t=[],a=n=>{if(Array.isArray(n)){if(typeof n[0]=="number"&&typeof n[1]=="number"){t.push(n);return}n.forEach(a)}};return a(e==null?void 0:e.coordinates),t}pickVectorFeatureAtPoint(e,t){var o;const a=this.getVisibleVectorFeatures(this.currentTopicLayer,this.currentVectorFeatures||[]);if(((o=this.currentTopicLayer)==null?void 0:o.key)==="yak-industry-points"){const u=this.pickPointFeatureAtScreenPoint(a,t);if(u)return u}const n=a.filter(u=>this.isLngLatInGeometry(e,u.geometry)).sort((u,d)=>this.getGeometryAreaScore(u.geometry)-this.getGeometryAreaScore(d.geometry));if(n.length)return n[0];const s=a.find(u=>this.isPointOrLineNearLngLat(u.geometry,e));return s||null}pickPointFeatureAtScreenPoint(e,t){var s;if(!t||!((s=this.camera)!=null&&s.instance)||!this.focusMapGroup||!this.canvas)return null;const n=(e||[]).filter(o=>{var u;return((u=o==null?void 0:o.geometry)==null?void 0:u.type)==="Point"}).map(o=>{const u=this.getPointFeatureScreenPoint(o);return u?{feature:o,screen:u,distance:Math.hypot(u.x-t.x,u.y-t.y)}:null}).filter(Boolean).sort((o,u)=>o.distance-u.distance)[0];return(n==null?void 0:n.distance)<=22?{feature:n.feature,screen:n.screen}:null}getPointFeatureScreenPoint(e){var a,n;const t=(e==null?void 0:e.geometry)||((a=e==null?void 0:e.feature)==null?void 0:a.geometry);return(t==null?void 0:t.type)!=="Point"?null:((n=this.currentTopicLayer)==null?void 0:n.key)==="yak-industry-points"?this.lngLatToLayerScreenPoint(t.coordinates,this.depth+.36):this.lngLatToScreenPoint(t.coordinates,this.depth+.32)}lngLatToLayerLocalPoint(e,t=0){const a=()=>{const h=Number(e==null?void 0:e[0]),g=Number(e==null?void 0:e[1]);if(!Number.isFinite(h)||!Number.isFinite(g))return new re(0,0,Number(t)||0);const[m,L]=this.geoProjection([h,g]);return new re(m,-L,Number(t)||0)},n=this.topicLayerUvBounds;if(!n)return a();const s=this.lngLatToLayerCanvasPoint(e),o=this.topicLayerCanvas;if(!(o!=null&&o.width)||!(o!=null&&o.height))return a();const u=n.left+s.x/o.width*(n.right-n.left),d=n.bottom+(o.height-s.y)/o.height*(n.top-n.bottom);return new re(u,d,Number(t)||0)}lngLatToLayerScreenPoint(e,t=0){return this.localMapPointToScreenPoint(this.lngLatToLayerLocalPoint(e,t))}lngLatToScreenPoint(e,t=0){const a=Number(e==null?void 0:e[0]),n=Number(e==null?void 0:e[1]);if(!Number.isFinite(a)||!Number.isFinite(n))return null;const s=this.lngLatToWorldPoint([a,n],t);return this.worldPointToScreenPoint(s)}localMapPointToScreenPoint(e){const t=this.focusMapGroup?this.focusMapGroup.localToWorld(e):e;return this.worldPointToScreenPoint(t)}worldPointToScreenPoint(e){var n;if(!((n=this.camera)!=null&&n.instance)||!this.canvas||!e)return null;const t=this.canvas.getBoundingClientRect();if(!t.width||!t.height)return null;const a=e.clone().project(this.camera.instance);return!Number.isFinite(a.x)||!Number.isFinite(a.y)?null:{x:t.left+(a.x+1)/2*t.width,y:t.top+(1-a.y)/2*t.height}}focusProject(e){var L,S,C,x;const t=String(e||"").trim();if(!t)return!1;const a=(this.currentVectorFeatures||[]).filter(E=>{var O;return String(((O=E==null?void 0:E.properties)==null?void 0:O.project_name)||"").trim()===t});if(!a.length)return(S=(L=this.callbacks).onLayerStatus)==null||S.call(L,{type:"success",text:"当前项目图斑尚未加载"}),!1;const n=this.getFeatureListLngLatBounds(a);if(!n)return!1;const s=this.getProjectHighlightFeatures(a);s.length?(this.showSelectedFeatures(s),this.setSelectedVectorFeatures(s)):this.clearSelectedFeature();const o=[(n.minLng+n.maxLng)/2,(n.minLat+n.maxLat)/2],u=Math.max(n.maxLng-n.minLng,n.maxLat-n.minLat),d=Math.max(.22,Math.min(.55,u*1.25)),h=this.lngLatToWorldPoint(o,.72),g=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(d),m=h.clone().add(g);return this.animateMapCamera(m,h,.75),(x=(C=this.callbacks).onLayerStatus)==null||x.call(C,{type:"success",text:"已定位项目"}),!0}setBoundaryDrawing(e){var t,a,n,s;this.boundaryDrawingEnabled=!!e,this.boundaryDrawingEnabled?(this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.clearSelectedFeature(),(a=(t=this.callbacks).onLayerStatus)==null||a.call(t,{type:"success",text:"请在地图上依次点击绘制分析边界"})):(s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"success",text:"已退出边界绘制"}),this.redrawVectorTopicLayer()}addBoundaryDrawPoint(e){var s,o,u,d;if(!Number.isFinite(e==null?void 0:e.lng)||!Number.isFinite(e==null?void 0:e.lat))return!1;const t=Date.now(),a=this.lastBoundaryDrawPoint;return a&&t-a.time<350&&Math.hypot(e.lng-a.lng,e.lat-a.lat)<8e-4?!1:(this.lastBoundaryDrawPoint={lng:e.lng,lat:e.lat,time:t},this.boundaryDrawPoints=[...this.boundaryDrawPoints||[],{lng:e.lng,lat:e.lat}],(o=(s=this.callbacks).onDrawBoundary)==null||o.call(s,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),(d=(u=this.callbacks).onLayerStatus)==null||d.call(u,{type:"success",text:`已添加边界点 ${this.boundaryDrawPoints.length} 个`}),this.redrawVectorTopicLayer(),!0)}undoBoundaryPoint(){var e,t,a;return(e=this.boundaryDrawPoints)!=null&&e.length?(this.boundaryDrawPoints=this.boundaryDrawPoints.slice(0,-1),(a=(t=this.callbacks).onDrawBoundary)==null||a.call(t,{status:"drawing",points:this.boundaryDrawPoints,pointCount:this.boundaryDrawPoints.length}),this.redrawVectorTopicLayer(),!0):!1}finishBoundaryDrawing(){var o,u,d,h,g,m;const e=this.boundaryDrawPoints||[];if(e.length<3)return(u=(o=this.callbacks).onLayerStatus)==null||u.call(o,{type:"error",text:"至少需要 3 个点才能形成分析边界"}),null;const t=e.map(L=>[L.lng,L.lat]),a=t[0],n=t[t.length-1];(a[0]!==n[0]||a[1]!==n[1])&&t.push([...a]);const s={type:"Feature",properties:{source:"draw",pointCount:e.length},geometry:{type:"Polygon",coordinates:[t]}};return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=s,(h=(d=this.callbacks).onDrawBoundary)==null||h.call(d,{status:"complete",feature:s,points:e,pointCount:e.length}),(m=(g=this.callbacks).onLayerStatus)==null||m.call(g,{type:"success",text:"分析边界已生成"}),this.redrawVectorTopicLayer(),s}clearAnalysisBoundary(){var e,t;return this.boundaryDrawingEnabled=!1,this.boundaryDrawPoints=[],this.lastBoundaryDrawPoint=null,this.analysisBoundaryFeature=null,this.analysisMatchedFeatures=[],this.redrawVectorTopicLayer(),(t=(e=this.callbacks).onDrawBoundary)==null||t.call(e,{status:"clear",points:[],pointCount:0}),!0}showAnalysisResult(e={}){var s;const t=Object.prototype.hasOwnProperty.call(e,"boundary")||Object.prototype.hasOwnProperty.call(e,"boundaryFeature")||Object.prototype.hasOwnProperty.call(e,"feature"),a=e.boundary||e.boundaryFeature||e.feature||null,n=Array.isArray(e.matches)?e.matches:[];return t&&(this.analysisBoundaryFeature=(a==null?void 0:a.type)==="Feature"?a:a!=null&&a.geometry?{type:"Feature",properties:a.properties||{},geometry:a.geometry}:null),this.analysisMatchedFeatures=n.map(o=>(o==null?void 0:o.feature)||o).filter(o=>o==null?void 0:o.geometry),e.preserveView||(!t&&this.analysisMatchedFeatures.length?this.focusAnalysisFeatures(this.analysisMatchedFeatures):(s=this.analysisBoundaryFeature)!=null&&s.geometry&&this.focusAnalysisGeometry(this.analysisBoundaryFeature.geometry)),this.redrawVectorTopicLayer(),!0}focusAnalysisFeatures(e=[]){const t=this.getFeatureListLngLatBounds(e);if(!t)return!1;const a=[(t.minLng+t.maxLng)/2,(t.minLat+t.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(t.maxLng-t.minLng,t.maxLat-t.minLat),statusText:"已定位命中项目"})}focusAnalysisGeometry(e){const t=this.getGeometryLngLatBounds(e);if(!t)return!1;const a=[(t.minLng+t.maxLng)/2,(t.minLat+t.maxLat)/2];return this.flyToLngLat(a,{span:Math.max(t.maxLng-t.minLng,t.maxLat-t.minLat),statusText:"已定位分析边界"})}focusPasture(e={}){var n,s;const a=[...this.normalizePastureGrasslandRows(e==null?void 0:e.grasslands),...this.normalizePastureGrasslandRows(e==null?void 0:e.wkt)].map((o,u)=>{const d=this.normalizePastureGrasslandGeometry(o);if(!d)return null;const h=this.normalizePastureGrasslandProperties(o);return{type:"Feature",properties:$(N({},h),{id:h.id||h.gid||`${(e==null?void 0:e.name)||"pasture"}-${u}`,pasture_name:(e==null?void 0:e.name)||h.pastureName||h.name}),geometry:d}}).filter(Boolean);if(a.length){const o=this.getFeatureListLngLatBounds(a);if(!o)return!1;this.showSelectedFeatures(a,{mode:"pasture"}),this.setSelectedVectorFeatures(a);const u=[(o.minLng+o.maxLng)/2,(o.minLat+o.maxLat)/2];return this.flyToLngLat(u,{span:Math.max(o.maxLng-o.minLng,o.maxLat-o.minLat),statusText:"已定位具体草场"}),!0}return(s=(n=this.callbacks).onLayerStatus)==null||s.call(n,{type:"warning",text:"当前牧户暂无可定位数据"}),!1}normalizePastureGrasslandRows(e){return e?typeof e=="string"?[e]:Array.isArray(e)?e:(e==null?void 0:e.type)==="FeatureCollection"&&Array.isArray(e.features)?e.features:(e==null?void 0:e.type)==="Feature"||this.isGeoJsonGeometry(e)?[e]:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.data)?e.data:e!=null&&e.data?this.normalizePastureGrasslandRows(e.data):Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.features)?e.features:e!=null&&e.wkt||e!=null&&e.geo||e!=null&&e.geom||e!=null&&e.geometryWkt||e!=null&&e.geometry_wkt||e!=null&&e.shape||e!=null&&e.location||e!=null&&e.geometry?[e]:[]:[]}normalizePastureGrasslandGeometry(e){var t;return typeof e=="string"?this.parseGeometryText(e):(e==null?void 0:e.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry):this.isGeoJsonGeometry(e)?e:typeof(e==null?void 0:e.geometry)=="string"?this.parseGeometryText(e.geometry):((t=e==null?void 0:e.geometry)==null?void 0:t.type)==="Feature"?this.normalizePastureGrasslandGeometry(e.geometry.geometry):this.isGeoJsonGeometry(e==null?void 0:e.geometry)?e.geometry:this.parseGeometryText((e==null?void 0:e.wkt)||(e==null?void 0:e.geo)||(e==null?void 0:e.geom)||(e==null?void 0:e.geometryWkt)||(e==null?void 0:e.geometry_wkt)||(e==null?void 0:e.shape)||(e==null?void 0:e.location))}normalizePastureGrasslandProperties(e){return!e||typeof e!="object"||Array.isArray(e)?{wkt:e}:e.type==="Feature"?e.properties||{}:e}parseGeometryText(e){const t=String(e||"").trim();if(!t)return null;if(t.startsWith("{")||t.startsWith("["))try{const a=JSON.parse(t);if((a==null?void 0:a.type)==="Feature")return this.normalizePastureGrasslandGeometry(a);if(this.isGeoJsonGeometry(a))return a}catch(a){return null}return this.parseWktGeometry(t)}isGeoJsonGeometry(e){return!!(e&&["Polygon","MultiPolygon","LineString","MultiLineString","Point"].includes(e.type)&&e.coordinates)}flyToLngLat(e,t={}){var m,L;const a=Array.isArray(e)?e:[e==null?void 0:e.lng,e==null?void 0:e.lat],n=Number(a==null?void 0:a[0]),s=Number(a==null?void 0:a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return!1;const o=Number(t.span),u=Number.isFinite(o)?Math.max(.2,Math.min(.55,o*1.25)):.32,d=this.lngLatToWorldPoint([n,s],.72),h=this.defaultMapCameraPosition.clone().sub(this.defaultMapTarget).multiplyScalar(u),g=d.clone().add(h);return this.animateMapCamera(g,d,t.duration||.75),(L=(m=this.callbacks).onLayerStatus)==null||L.call(m,{type:"success",text:t.statusText||"已定位"}),!0}getProjectHighlightFeatures(e){const t=e.filter(n=>{var o;const s=String(((o=n==null?void 0:n.geometry)==null?void 0:o.type)||"");return s.includes("Polygon")||s.includes("LineString")}),a=t.filter(n=>{var s;return((s=n==null?void 0:n.properties)==null?void 0:s.feature_role)==="工程范围"});return a.length?a:t}getFeatureListLngLatBounds(e){return e.reduce((t,a)=>{const n=this.getGeometryLngLatBounds(a.geometry);return n?t?{minLng:Math.min(t.minLng,n.minLng),minLat:Math.min(t.minLat,n.minLat),maxLng:Math.max(t.maxLng,n.maxLng),maxLat:Math.max(t.maxLat,n.maxLat)}:N({},n):t},null)}isPointOrLineNearLngLat(e,t){return e!=null&&e.coordinates?e.type==="Point"?this.getCoordinateDistance(e.coordinates,[t.lng,t.lat])<=.02:e.type==="LineString"?this.isCoordinateNearLine(e.coordinates,t,.004):e.type==="MultiLineString"?e.coordinates.some(a=>this.isCoordinateNearLine(a,t,.004)):!1:!1}isCoordinateNearLine(e,t,a){if(!Array.isArray(e)||e.length<2)return!1;const n=[t.lng,t.lat];for(let s=1;ss.some(o=>o.key===a||o.layerName===t));return(n==null?void 0:n[0])||""}getLayerQueryKey(e){return[(e==null?void 0:e.layerName)||"",(e==null?void 0:e.styles)||"",(e==null?void 0:e.cqlFilter)||"",(e==null?void 0:e.key)||""].join("|")}mergeBusinessProperties(e,t,a){const n=(a==null?void 0:a.key)||"";if(Object.entries(t||{}).forEach(([s,o])=>{o==null||o===""||(e[s]===void 0||e[s]===null||e[s]==="")&&(e[s]=o)}),n==="basic-grassland"){const s=(t==null?void 0:t.basic_type_name)||(t==null?void 0:t.grassland_category_name)||(t==null?void 0:t.land_class_name)||(t==null?void 0:t.land_use_name)||(t==null?void 0:t.base_grass);s!=null&&s!==""&&(e.basic_type_name=s)}if(n==="grassland-level"){const s=(t==null?void 0:t.grassland_level)||(t==null?void 0:t.level)||(t==null?void 0:t.grassland_level_name)||(t==null?void 0:t.level_name);s!=null&&s!==""&&(e.grassland_level=s)}if(n==="grassland-type"||n==="wetland-type"){const s=(t==null?void 0:t.grass_min_type)||(t==null?void 0:t.grass_type)||(t==null?void 0:t.grassland_type)||(t==null?void 0:t.type_name)||(t==null?void 0:t.type);s!=null&&s!==""&&(e.grass_min_type=s)}if(n==="grassland-yield"||n==="wetland-yield"){const s=(t==null?void 0:t.yield)||(t==null?void 0:t.xc_yield)||(t==null?void 0:t.xb_xc_yield)||(t==null?void 0:t.fresh_grass_yield)||(t==null?void 0:t.value),o=(t==null?void 0:t.mu_yield)||(t==null?void 0:t.xc_mu_yield)||(t==null?void 0:t.xb_xc_mu_yield)||(t==null?void 0:t.yield_per_mu);s!=null&&s!==""&&(e.fresh_grass_yield=s),o!=null&&o!==""&&(e.mu_yield=o)}if(n==="grassland-health"){const s=(t==null?void 0:t.health_level)||(t==null?void 0:t.health_level_name)||(t==null?void 0:t.ndvi_level)||(t==null?void 0:t.level)||(t==null?void 0:t.level_name),o=(t==null?void 0:t.ndvi)||(t==null?void 0:t.NDVI)||(t==null?void 0:t.value);s!=null&&s!==""&&(e.health_level=s),o!=null&&o!==""&&(e.ndvi=o);const u=(t==null?void 0:t.degradation_level)||(t==null?void 0:t.degradation_level_name)||(t==null?void 0:t.level)||(t==null?void 0:t.level_name);u!=null&&u!==""&&(e.degradation_level=u)}}getScreenPointFromEvent(e){var a;const t=((a=e==null?void 0:e.data)==null?void 0:a.originalEvent)||(e==null?void 0:e.originalEvent)||e;return(t==null?void 0:t.clientX)!==void 0&&(t==null?void 0:t.clientY)!==void 0?{x:t.clientX,y:t.clientY}:null}getLngLatFromEvent(e){var u,d,h;const a=(h=(((d=(u=this.interactionManager)==null?void 0:u.raycaster)==null?void 0:d.intersectObject(e.target,!1))||[])[0])==null?void 0:h.point;if(!a)return null;const n=this.focusMapGroup.worldToLocal(a.clone()),o=jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]).invert([n.x,-n.y]);return o?{lng:o[0],lat:o[1]}:null}lngLatToWmsPixel({lng:e,lat:t}){const a=(e-q.west)/(q.east-q.west)*_t.width,n=(q.north-t)/(q.north-q.south)*_t.height;return{x:a,y:n}}showSelectedFeature(e,t={}){var n;const a=(e==null?void 0:e.geometry)||((n=e==null?void 0:e.feature)==null?void 0:n.geometry);this.clearSelectedFeature(),this.createSelectedFeatureGroup(),this.addSelectedGeometry(a,t),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}showSelectedFeatures(e=[],t={}){this.clearSelectedFeature(),this.createSelectedFeatureGroup(),e.forEach(a=>{var s;const n=(a==null?void 0:a.geometry)||((s=a==null?void 0:a.feature)==null?void 0:s.geometry);this.addSelectedGeometry(n,t)}),this.selectedFeatureGroup.children.length||this.clearSelectedFeature()}setSelectedVectorFeatures(e=[]){this.selectedVectorFeatures=[...e],this.redrawVectorTopicLayer()}getSelectedFeatureStyle(e={}){const t=e.mode==="pasture",a=e.mode==="town";return{fillColor:Pr,fillOpacity:t?.46:a?.24:.54,lineColor:Iu,lineOpacity:.98,glowColor:Cr,glowOpacity:t?.92:.96,renderOrderBase:t?42:a?40:35,boundary:t||a,boundaryColor:Pr,boundaryGlowColor:Cr,boundaryWidth:a?.012:.018,boundaryGlowWidth:a?.045:.06,boundaryOpacity:.95,boundaryGlowOpacity:a?.34:.42}}addSelectedGeometry(e,t={}){if(!(e!=null&&e.coordinates)||!this.selectedFeatureGroup)return;const a=this.getSelectedFeatureStyle(t),n=this.getDisplayFeaturePolygons(e),s=new ve({color:a.fillColor,transparent:!0,opacity:a.fillOpacity,side:Re,depthWrite:!1,fog:!1}),o=new Xt({color:a.lineColor,transparent:!0,opacity:a.lineOpacity,linewidth:2,depthTest:!1,depthWrite:!1,fog:!1}),u=new Xt({color:a.glowColor,transparent:!0,opacity:a.glowOpacity,linewidth:3,depthTest:!1,depthWrite:!1,fog:!1}),d=a.boundary?new ve({color:a.boundaryColor,transparent:!0,opacity:a.boundaryOpacity,side:Re,depthTest:!1,depthWrite:!1,fog:!1}):null,h=a.boundary?new ve({color:a.boundaryGlowColor,transparent:!0,opacity:a.boundaryGlowOpacity,side:Re,depthTest:!1,depthWrite:!1,fog:!1,blending:Ie}):null;n.length&&n.forEach(m=>{const L=this.createProjectedShape(m);if(!L)return;const S=new Pl(L),C=new qe(S,s);C.renderOrder=a.renderOrderBase,this.selectedFeatureGroup.add(C),m.forEach(x=>{const E=this.createProjectedRingPoints(x);if(E.length<3)return;a.boundary&&(this.addSelectedBoundaryBand(E,h,a.boundaryGlowWidth,a.renderOrderBase+1,!0),this.addSelectedBoundaryBand(E,d,a.boundaryWidth,a.renderOrderBase+4,!0));const O=new ma().setFromPoints(E),ee=new nr(O,o);ee.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(ee);const se=new ma().setFromPoints(E),Z=new nr(se,u);Z.renderOrder=a.renderOrderBase+3,Z.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(Z)})});const g=this.normalizeFeatureLineStrings(e);g.length&&g.forEach(m=>{const L=this.createProjectedRingPoints(m);if(L.length<2)return;a.boundary&&(this.addSelectedBoundaryBand(L,h,a.boundaryGlowWidth,a.renderOrderBase+1,!1),this.addSelectedBoundaryBand(L,d,a.boundaryWidth,a.renderOrderBase+4,!1));const S=new ma().setFromPoints(L),C=new rr(S,u);C.renderOrder=a.renderOrderBase+3,C.scale.set(1.004,1.004,1),this.selectedFeatureGroup.add(C);const x=new ma().setFromPoints(L),E=new rr(x,o);E.renderOrder=a.renderOrderBase+5,this.selectedFeatureGroup.add(E)})}addSelectedBoundaryBand(e,t,a,n,s=!0){if(!t||!this.selectedFeatureGroup)return;const o=this.createPathBandGeometry(e,a,s);if(!o)return;const u=new qe(o,t);u.renderOrder=n,this.selectedFeatureGroup.add(u)}createPathBandGeometry(e,t,a=!0){const n=this.normalizePathBandPoints(e,a);if(n.length<(a?3:2))return null;const s=Math.max(Number(t)||0,0)/2;if(!s)return null;const o=[],u=a?n.length:n.length-1;for(let h=0;hNumber.isFinite(n==null?void 0:n.x)&&Number.isFinite(n==null?void 0:n.y)).map(n=>n.clone());if(t&&a.length>2){const n=a[0],s=a[a.length-1];n.distanceToSquared(s)<1e-10&&a.pop()}return a}clearSelectedFeature(){var t;const e=!!((t=this.selectedVectorFeatures)!=null&&t.length);this.selectedVectorFeatures=[],e&&this.redrawVectorTopicLayer(),this.clearSelectedGeometryGroup()}clearSelectedGeometryGroup(){var t,a;if(!this.selectedFeatureGroup)return;const e=new Set;for(;this.selectedFeatureGroup.children.length;){const n=this.selectedFeatureGroup.children.pop();(a=(t=n.geometry)==null?void 0:t.dispose)==null||a.call(t),Array.isArray(n.material)?n.material.forEach(s=>e.add(s)):e.add(n.material)}e.forEach(n=>{var s;return(s=n==null?void 0:n.dispose)==null?void 0:s.call(n)})}normalizeFeaturePolygons(e){return Er(e)}normalizeFeatureLineStrings(e){return e!=null&&e.coordinates?e.type==="LineString"?[e.coordinates]:e.type==="MultiLineString"?e.coordinates:[]:[]}getDisplayFeaturePolygons(e){const t=this.normalizeFeaturePolygons(e),a=this.getLayerClipBounds(this.currentTopicLayer);return a?t.map(n=>{const s=this.clipRingToBounds(n==null?void 0:n[0],a);if(s.length<3)return null;const o=n.slice(1).map(u=>this.clipRingToBounds(u,a)).filter(u=>u.length>=3);return[s,...o]}).filter(Boolean):t}clipRingToBounds(e=[],t){let a=e.map(s=>[Number(s==null?void 0:s[0]),Number(s==null?void 0:s[1])]).filter(([s,o])=>Number.isFinite(s)&&Number.isFinite(o));return[{inside:([s])=>s>=t.west,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lng",t.west)},{inside:([s])=>s<=t.east,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lng",t.east)},{inside:([,s])=>s>=t.south,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lat",t.south)},{inside:([,s])=>s<=t.north,intersect:(s,o)=>this.getLngLatLineIntersection(s,o,"lat",t.north)}].forEach(s=>{const o=a;a=[],o.length&&o.forEach((u,d)=>{const h=o[(d+o.length-1)%o.length],g=s.inside(u),m=s.inside(h);g?(m||a.push(s.intersect(h,u)),a.push(u)):m&&a.push(s.intersect(h,u))})}),a}getLngLatLineIntersection(e,t,a,n){const s=a==="lng"?0:1,o=a==="lng"?1:0,u=t[s]-e[s];if(!u)return[...e];const d=(n-e[s])/u,h=[...e];return h[s]=n,h[o]=e[o]+(t[o]-e[o])*d,h}createProjectedShape(e){const t=e==null?void 0:e[0];if(!Array.isArray(t)||t.length<3)return null;const a=new sr;return this.createProjectedRingPoints(t).forEach((s,o)=>{o===0?a.moveTo(s.x,s.y):a.lineTo(s.x,s.y)}),e.slice(1).forEach(s=>{const o=this.createProjectedRingPoints(s);if(o.length<3)return;const u=new sr;o.forEach((d,h)=>{h===0?u.moveTo(d.x,d.y):u.lineTo(d.x,d.y)}),a.holes.push(u)}),a}createProjectedRingPoints(e){if(!Array.isArray(e))return[];const t=[];return e.forEach(a=>{if(!Array.isArray(a)||a.length<2)return;const n=Number(a[0]),s=Number(a[1]);if(!Number.isFinite(n)||!Number.isFinite(s))return;const[o,u]=this.geoProjection([n,s]);t.push(new re(o,-u,0))}),t}enhanceTexture(e){var a,n,s;const t=(n=(a=this.renderer)==null?void 0:a.instance)==null?void 0:n.capabilities;e.anisotropy=((s=t==null?void 0:t.getMaxAnisotropy)==null?void 0:s.call(t))||1,e.needsUpdate=!0}geoProjection(e){return jt().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0])(e)}updateTownLabelScale(){var u,d,h;const e=this.townNameLabels||this.otherLabel||[],t=(u=this.camera)==null?void 0:u.instance,a=(h=(d=this.camera)==null?void 0:d.controls)==null?void 0:h.target;if(!e.length||!t||!a)return;const n=t.position.distanceTo(a),s=Wt(n*72e-5,.011,.026),o=n>45?"0.76":n<22?"0.94":"1";e.forEach(g=>{var L,S,C;if(((L=g==null?void 0:g.userData)==null?void 0:L.labelType)!=="town-label")return;g.scale.set(s,s,s);const m=(C=(S=g.element)==null?void 0:S.querySelector)==null?void 0:C.call(S,".other-label");m&&(m.style.opacity=o)})}update(e){super.update(e),this.updateDynamicSatelliteTiles(),this.updateTownLabelScale(),this.updateTradeFlowPulses(e),this.interactionManager&&this.interactionManager.update()}pauseScene(){var e,t;this.scenePaused=!0,(t=(e=this.time)==null?void 0:e.pause)==null||t.call(e),this.sceneTweens.forEach(a=>{var n;return(n=a==null?void 0:a.pause)==null?void 0:n.call(a)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var e,t;this.scenePaused=!1,(t=(e=this.time)==null?void 0:e.resume)==null||t.call(e),this.sceneTweens.forEach(a=>{var n;return(n=a==null?void 0:a.resume)==null?void 0:n.call(a)}),this.showTownRankingPointMarkers&&this.mapAnimationComplete&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){var e,t,a,n;this.pauseScene(),this.sceneTimers.forEach(s=>clearTimeout(s)),this.sceneTimers=[],this.sceneTweens.forEach(s=>{var o;return(o=s==null?void 0:s.kill)==null?void 0:o.call(s)}),this.sceneTweens=[],this.callbacks={},(t=(e=this.canvas)==null?void 0:e.removeEventListener)==null||t.call(e,"pointerdown",this.handleCanvasBoundaryPointerDown,!0),(n=(a=this.canvas)==null?void 0:a.removeEventListener)==null||n.call(a,"dblclick",this.handleCanvasBoundaryDoubleClick,!0),this.clearTradeFlowLayer(),this.clearSelectedFeature(),super.destroy(),this.label3d&&this.label3d.destroy()}}const Du={class:"map"},Ou={__name:"map",props:{activeLayer:{type:Object,default:null},mapRanking:{type:Object,default:null},tileUrlTemplate:{type:String,default:""},satelliteTextureZoom:{type:Number,default:0},satelliteMaxZoom:{type:Number,default:21},adminBoundaryLineScale:{type:Number,default:1},useSatelliteBase:{type:Boolean,default:!0},showNationalBackdrop:{type:Boolean,default:!1},topicLayerPresentation:{type:String,default:"default"},hideTownLabelStats:{type:Boolean,default:!1}},emits:["feature-loading","feature-info","layer-status","tile-status","draw-boundary","scene-mounted"],setup(b,{expose:e,emit:t}){const a=b,n=t,s=z(null),o=dl(null);let u=null,d=null,h=null,g=null,m=null,L="",S="",C=!1;Dr(()=>{n("scene-mounted")}),Or(()=>{pt()});function x(M){return o.value?!0:s.value?(o.value=new zu(s.value,M,{onFeatureLoading:v=>n("feature-loading",v),onFeatureInfo:v=>n("feature-info",v),onLayerStatus:v=>n("layer-status",v),onTileStatus:v=>n("tile-status",v),onDrawBoundary:v=>n("draw-boundary",v),tileUrlTemplate:a.tileUrlTemplate,satelliteTextureZoom:a.satelliteTextureZoom,satelliteMaxZoom:a.satelliteMaxZoom,adminBoundaryLineScale:a.adminBoundaryLineScale,useSatelliteBase:a.useSatelliteBase,showNationalBackdrop:a.showNationalBackdrop,topicLayerPresentation:a.topicLayerPresentation,hideTownLabelStats:a.hideTownLabelStats}),o.value.time.pause(),L=xe(a.activeLayer),S=rt(a.mapRanking),o.value.setTopicLayers(je(a.activeLayer),a.activeLayer),o.value.setTownRanking(a.mapRanking),we(),ce(),!0):!1}function E(){return!!o.value}function O(){return he(this,null,function*(){var M,v,G,V,U,J;if(o.value&&(ee(),!o.value.mapAnimationComplete)){if(C){(v=(M=o.value.animateTl)==null?void 0:M.play)==null||v.call(M),Ye();return}C=!0,(V=(G=o.value.animateTl)==null?void 0:G.timeScale)==null||V.call(G,1),(J=(U=o.value.animateTl)==null?void 0:U.play)==null||J.call(U),Ye()}})}function ee(){var M,v;o.value&&(we(),ce(),window.requestAnimationFrame(()=>{var G,V,U,J,fe,Ge;(U=(V=(G=o.value)==null?void 0:G.label3d)==null?void 0:V.resize)==null||U.call(V),(Ge=(fe=(J=o.value)==null?void 0:J.label3d)==null?void 0:fe.update)==null||Ge.call(fe)}),(v=(M=o.value).resumeScene)==null||v.call(M),o.value.resumeScene||o.value.time.resume())}function se(){var M,v,G,V,U,J;o.value&&(Ue(),(v=(M=o.value.animateTl)==null?void 0:M.pause)==null||v.call(M),(V=(G=o.value).pauseScene)==null||V.call(G),o.value.pauseScene||(J=(U=o.value.time)==null?void 0:U.pause)==null||J.call(U),it())}function Z(){var M,v;(v=(M=o.value)==null?void 0:M.clearSelectedFeature)==null||v.call(M)}function R(M){var v,G;(G=(v=o.value)==null?void 0:v.focusProject)==null||G.call(v,M)}function Fe(M){var v,G;(G=(v=o.value)==null?void 0:v.focusPasture)==null||G.call(v,M)}function We(M,v){var G,V;return(V=(G=o.value)==null?void 0:G.focusTownByName)==null?void 0:V.call(G,M,v)}function at(M){var v,G;return(G=(v=o.value)==null?void 0:v.focusYakIndustryPoint)==null?void 0:G.call(v,M)}function bt(M){var v,G;return(G=(v=o.value)==null?void 0:v.focusVectorFeature)==null?void 0:G.call(v,M)}function W(M){var v,G;return(G=(v=o.value)==null?void 0:v.getVectorFeatureScreen)==null?void 0:G.call(v,M)}function Ee(M){var v,G;return(G=(v=o.value)==null?void 0:v.getYakIndustryPointScreen)==null?void 0:G.call(v,M)}function kt(M){var v,G;(G=(v=o.value)==null?void 0:v.setBoundaryDrawing)==null||G.call(v,M)}function ht(){var M,v;return(v=(M=o.value)==null?void 0:M.finishBoundaryDrawing)==null?void 0:v.call(M)}function Pt(){var M,v;(v=(M=o.value)==null?void 0:M.undoBoundaryPoint)==null||v.call(M)}function Ut(){var M,v;(v=(M=o.value)==null?void 0:M.clearAnalysisBoundary)==null||v.call(M)}function vt(M){var v,G;(G=(v=o.value)==null?void 0:v.showAnalysisResult)==null||G.call(v,M)}function pt(){var M,v;Ue(),it(),(v=(M=o.value)==null?void 0:M.destroy)==null||v.call(M),o.value=null}function Ye(){Ue(),m=window.setTimeout(()=>{var M,v;m=null,(v=(M=o.value)==null?void 0:M.ensureMapRevealed)==null||v.call(M)},5200)}function Ue(){m&&(window.clearTimeout(m),m=null)}function ce(){d&&window.cancelAnimationFrame(d),d=window.requestAnimationFrame(()=>{var M,v,G,V,U;d=null,(G=(v=(M=o.value)==null?void 0:M.sizes)==null?void 0:v.init)==null||G.call(v),(U=(V=o.value)==null?void 0:V.resize)==null||U.call(V)}),h&&window.clearTimeout(h),h=window.setTimeout(()=>{var M,v,G,V,U;h=null,(G=(v=(M=o.value)==null?void 0:M.sizes)==null?void 0:v.init)==null||G.call(v),(U=(V=o.value)==null?void 0:V.resize)==null||U.call(V)},180)}function we(){var v;it();const M=(v=s.value)==null?void 0:v.parentNode;M&&window.ResizeObserver&&(u=new ResizeObserver(()=>ce()),u.observe(M)),g=window.setInterval(Ct,1e3),Yt(ce)}function Ct(){var fe;if(!o.value||!s.value)return;const M=s.value.parentNode,v=(M==null?void 0:M.offsetWidth)||window.innerWidth||1,G=(M==null?void 0:M.offsetHeight)||window.innerHeight||1,V=((fe=o.value.sizes)==null?void 0:fe.pixelRatio)||1,U=Math.floor(v*V),J=Math.floor(G*V);(s.value.width!==U||s.value.height!==J)&&ce()}function it(){u&&(u.disconnect(),u=null),d&&(window.cancelAnimationFrame(d),d=null),h&&(window.clearTimeout(h),h=null),g&&(window.clearInterval(g),g=null)}function $e(){if(!o.value)return;we();const M=()=>{var v,G,V,U,J,fe,Ge,Ce,_e,Ke,Be,Ze,me,ge,te,He,st,ye,Bt,ot,Xe;o.value&&((G=(v=o.value)==null?void 0:v.resumeScene)==null||G.call(v),o.value.resumeScene||(U=(V=o.value.time)==null?void 0:V.resume)==null||U.call(V),(Ge=(fe=(J=o.value)==null?void 0:J.sizes)==null?void 0:fe.init)==null||Ge.call(fe),(_e=(Ce=o.value)==null?void 0:Ce.resize)==null||_e.call(Ce),(Ze=(Be=(Ke=o.value)==null?void 0:Ke.label3d)==null?void 0:Be.resize)==null||Ze.call(Be),(te=(ge=(me=o.value)==null?void 0:me.label3d)==null?void 0:ge.update)==null||te.call(ge),(st=(He=o.value)==null?void 0:He.setTopicLayers)==null||st.call(He,je(a.activeLayer),a.activeLayer),(Bt=(ye=o.value)==null?void 0:ye.setTownRanking)==null||Bt.call(ye,a.mapRanking),(Xe=(ot=o.value)==null?void 0:ot.ensureMapRevealed)==null||Xe.call(ot))};ce(),window.requestAnimationFrame(M),window.setTimeout(()=>{M()},80),window.setTimeout(()=>{M()},220)}function nt(){if(!o.value)return;we();const M=()=>{var G,V,U,J,fe,Ge,Ce,_e,Ke,Be,Ze,me,ge,te,He,st;const v=o.value;v&&((G=v.resumeScene)==null||G.call(v),v.resumeScene||(U=(V=v.time)==null?void 0:V.resume)==null||U.call(V),(fe=(J=v.sizes)==null?void 0:J.init)==null||fe.call(J),(Ge=v.resize)==null||Ge.call(v),(Ce=v.ensureMapRevealed)==null||Ce.call(v),(_e=v.setTradeNationalMapVisible)==null||_e.call(v,!1),(Ke=v.setTopicLayers)==null||Ke.call(v,je(a.activeLayer),a.activeLayer),(Be=v.setTownRanking)==null||Be.call(v,a.mapRanking),(Ze=v.applyLayerMapView)==null||Ze.call(v,v.currentTopicLayer||a.activeLayer||null,{force:!0}),(ge=(me=v.label3d)==null?void 0:me.resize)==null||ge.call(me),(He=(te=v.label3d)==null?void 0:te.update)==null||He.call(te),(st=v.updateDynamicSatelliteTiles)==null||st.call(v,!0))};ce(),window.requestAnimationFrame(M),window.setTimeout(M,100),window.setTimeout(M,260)}Ht(()=>a.activeLayer,M=>{const v=xe(M);v!==L&&(L=v,o.value&&o.value.setTopicLayers(je(M),M))},{deep:!0}),Ht(()=>a.mapRanking,M=>{const v=rt(M);v!==S&&(S=v,o.value&&o.value.setTownRanking(M))},{deep:!0}),e({loadMap:x,hasMap:E,play:O,resume:ee,pause:se,clearSelectedFeature:Z,focusProject:R,focusPasture:Fe,focusTown:We,focusYakIndustryPoint:at,focusVectorFeature:bt,getVectorFeatureScreen:W,getYakIndustryPointScreen:Ee,setBoundaryDrawing:kt,finishBoundaryDrawing:ht,undoBoundaryPoint:Pt,clearAnalysisBoundary:Ut,showAnalysisResult:vt,refreshView:$e,resetView:nt,destroyMap:pt,canvasMap:o});function xe(M){return M?je(M).map(v=>{var G,V;return[v.key||"",v.layerName||"",v.styles||"",v.sldBody||"",v.cqlFilter||"",((G=v.activeLegend)==null?void 0:G.key)||"",Array.isArray(v.activeLegends)?v.activeLegends.map(U=>(U==null?void 0:U.key)||"").join(","):"",v.timelineDate||"",((V=v.timelineItem)==null?void 0:V.key)||"",v.sourceType||"",v.dataPath||"",v.fallbackPath||""].join("|")}).join("||"):""}function je(M){if(!M)return[];const v=Array.isArray(M.overlayLayers)?M.overlayLayers.filter(Boolean):[];return[M,...v]}function rt(M){var v,G,V,U,J,fe,Ge,Ce,_e,Ke;return M?[M.status||"",M.topicKey||"",M.layerKey||"",M.title||"",M.metricLabel||"",M.scope||"",M.displayMode||"",(v=M.showPointMarkers)!=null?v:"",(G=M.showBars)!=null?G:"",(V=M.showTownNames)!=null?V:"",(U=M.showMapLabels)!=null?U:"",(J=M.hideTownLabelStats)!=null?J:"",(fe=M.showFlowLines)!=null?fe:"",(Ge=M.onlyRankedTownLabels)!=null?Ge:"",(Ce=M.showMissingTownStats)!=null?Ce:"",((_e=M.rows)==null?void 0:_e.length)||0,((Ke=M.rows)==null?void 0:Ke.map(Be=>{var Ze;return`${Be.key||Be.name||""}:${(Ze=Be.value)!=null?Ze:""}`}).join(","))||""].join("|"):""}return(M,v)=>(I(),B("div",Du,[f("canvas",{ref_key:"canvasRef",ref:s},null,512)]))}};const Wu={class:"yak-management"},Yu={key:1,class:"yak-map-loading"},ju={class:"yak-management-ui"},Hu={key:0,class:"trade-year-switcher","aria-label":"交易年份切换"},qu=["onClick"],Uu={key:1,class:"epidemic-year-switcher","aria-label":"防疫年份切换"},Ku=["onClick"],Zu={key:2,class:"forecast-year-switcher","aria-label":"预测年份切换"},Xu=["onClick"],Ju={class:"yak-left"},Qu={class:"yak-side-stack is-left"},ec={class:"breeding-health-card"},tc={class:"breeding-health-head"},ac={class:"breeding-health-grid"},ic={class:"structure-chart-card"},nc={class:"structure-ratio-card"},rc={class:"structure-ratio-chart"},sc={viewBox:"0 0 150 150",preserveAspectRatio:"xMidYMid meet","aria-hidden":"true"},oc={class:"structure-rose-segments"},lc=["d","fill","stroke"],uc={class:"structure-ratio-list"},cc={key:0,class:"yak-data-status"},dc={key:1,class:"yak-data-status is-warning"},hc={class:"forecast-waterfall-card"},pc={class:"forecast-waterfall-head"},fc={class:"forecast-waterfall-list"},mc={class:"forecast-trend-card"},gc={class:"forecast-density-switcher","aria-label":"预测粒度切换"},yc=["onClick"],bc={key:0,class:"epidemic-three-pie-card"},vc={class:"epidemic-three-pie-visual"},wc={class:"epidemic-three-pie-center"},Lc={class:"epidemic-three-pie-legend"},Tc={key:1,class:"epidemic-empty"},Sc={class:"trade-risk-card"},Mc={class:"trade-risk-head"},kc={class:"trade-risk-list"},Pc={class:"yak-right"},Cc={class:"yak-side-stack is-right"},Fc={class:"structure-chart-card"},xc={class:"structure-summary-card"},Nc={key:0,class:"yak-data-status"},Rc={key:1,class:"yak-data-status is-warning"},Ic={class:"forecast-heat-list"},Gc=["title"],_c={class:"epidemic-record-table is-full"},Bc={class:"epidemic-record-toolbar"},Ac={class:"epidemic-record-rows"},Ec=["onClick"],$c={key:0,class:"epidemic-empty"},Vc={class:"epidemic-record-pager"},zc=["disabled"],Dc=["disabled"],Oc={class:"trade-cert-card"},Wc={class:"trade-cert-main"},Yc={class:"trade-dest-list"},jc={key:0,class:"epidemic-empty"},Hc={class:"trade-ledger-table"},qc={class:"trade-ledger-toolbar"},Uc={class:"trade-ledger-rows"},Kc=["onClick"],Zc={key:0,class:"epidemic-empty"},Xc={class:"trade-ledger-pager"},Jc=["disabled"],Qc=["disabled"],ed={class:"yak-bottom-topic"},td={class:"epidemic-ledger-dialog"},ad={class:"epidemic-ledger-dialog-head"},id={class:"epidemic-ledger-filters"},nd=["value"],rd=["value"],sd={class:"epidemic-ledger-workspace"},od={class:"epidemic-ledger-list"},ld=["onClick"],ud={key:0,class:"epidemic-empty"},cd={class:"epidemic-ledger-detail trade-ledger-detail epidemic-ledger-record-detail"},dd={class:"epidemic-detail-head trade-detail-head"},hd={class:"epidemic-detail-grid is-modal trade-detail-grid epidemic-detail-flat-grid"},pd={key:0,class:"epidemic-detail-photos"},fd={class:"epidemic-modal-photo-strip"},md=["onClick"],gd=["src"],yd={class:"epidemic-ledger-pager"},bd=["disabled"],vd=["disabled"],wd={class:"epidemic-ledger-dialog trade-ledger-dialog"},Ld={class:"epidemic-ledger-dialog-head"},Td={class:"epidemic-ledger-filters trade-ledger-filters"},Sd=["value"],Md=["value"],kd=["value"],Pd={class:"epidemic-ledger-workspace trade-ledger-workspace"},Cd={class:"epidemic-ledger-list trade-ledger-modal-list"},Fd=["onClick"],xd={key:0,class:"epidemic-empty"},Nd={class:"epidemic-ledger-detail trade-ledger-detail"},Rd={class:"epidemic-detail-head trade-detail-head"},Id={class:"epidemic-detail-grid is-modal trade-detail-grid"},Gd={class:"is-wide"},_d={class:"is-wide"},Bd={class:"is-wide"},Ad={class:"is-wide"},Ed=["disabled"],$d={class:"epidemic-ledger-pager"},Vd=["disabled"],zd=["disabled"],Dd={class:"epidemic-image-preview-dialog"},Od={class:"epidemic-image-preview-head"},Wd={class:"epidemic-image-preview-body"},Yd={class:"epidemic-image-preview-frame"},jd=["src"],Hd="https://qkl-hy.oss-cn-chengdu.aliyuncs.com/yak-vaccine-images",qd="https://qkl-map.oss-cn-chengdu.aliyuncs.com/hy-result/{z}/{x}/{y}.png",Ud=8.85,Kd="oss-satellite-dynamic-zoom21-v5",ei=8,$r=14,Hi=12,Vr=14,Zd=5e3,ti=6,Xd=4200,zr="#FFE600",ph={__name:"index",props:{active:{type:Boolean,default:!0},viewKey:{type:String,default:"structure"}},emits:["module-stats","view-change"],setup(b,{expose:e,emit:t}){const a=b,n=t,s=or.sideCardWidth;or.sideCardGap;const o=z(typeof window=="undefined"?1080:window.innerHeight),u=k(()=>Fl(o.value)),d=k(()=>lr(u.value,2)),h=k(()=>u.value),g=k(()=>lr(u.value,2)),m=ga.textPrimary,L=ga.textStrong,S=ga.textSecondary,C=ga.textMuted,x=ga.chartGridLine,E=[102.58,32.72],O=E,ee=E,se={lng:0,lat:0},Z={targetLngLat:[102.6,32.59],targetLocalZ:.72,distanceScale:1.05,duration:.75},R=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],Fe=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff"],We=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff"],at={name:"红原牦牛交易市场",lng:102.562157,lat:32.820484},bt=[{key:"structure",name:"畜群结构",color:"#30dcff"},{key:"forecast",name:"畜群预测",color:"#8bf7ff"},{key:"epidemic",name:"牦牛防疫",color:"#8bf7ff"},{key:"trade",name:"牦牛交易",color:"#63d7ff"}],W=z(Vi(a.viewKey)),Ee=z("2027"),kt=z("month"),ht=z(0),Pt=z([]),Ut=z([]),vt=z([]),pt=z(!1),Ye=z(""),Ue=[2025,2026],ce=z(2026),we=z({metrics:{}}),Ct=z({rows:[],year:null}),it=z({rows:[]}),$e=z([]),nt=z(0),xe=z(1),je=z(""),rt=z(""),M=z(!1),v=z(""),G=z(!1),V=z([]),U=z(0),J=z(1),fe=z(!1),Ge=z(""),Ce=z(null),_e=z(null),Ke=z(!1),Be=z(!1),Ze=z(""),me=z($a()),ge=z({years:[],latestYear:null}),te=z({metrics:{},hasData:!1}),He=z([]),st=z(0),ye=z(null),Bt=z(!1),ot=z(""),Xe=z(1),Ta=z(""),ii=z(""),ni=z(!1),At=z([]),Sa=z(0),Et=z(1),ri=z(!1),si=z(""),Ma=z(null),ft=z({keyword:"",startTown:"",usageType:"",certType:""}),Ve=z(null),sa=z(null),$t=z(!1),oa=z(!1),Ki=z(0),Zi=z(0),la=z({type:"idle",text:""}),ua=z({type:"idle",text:""});let oi=null,li=!1,wt=!1,Lt=null,ca=!1,ka=null,Pa=null,Ca=0;const ui=[{key:"day",label:"日",unit:"日",stepDays:1},{key:"week",label:"周",unit:"周",stepDays:7},{key:"month",label:"月",unit:"月",stepDays:30}],Je=k(()=>Al(Ee.value)),jr=new Set(["epidemic","trade"]),ci=k(()=>!jr.has(W.value)),Xi=k(()=>ci.value?qd:""),Hr=k(()=>ci.value?"oss-satellite":"solid-3d"),qr=k(()=>`yak-management-map-${Hr.value}-${Kd}-${Ki.value}`),Ur=k(()=>El+$l),di=k(()=>Je.value.stock-ct),Kr=k(()=>sl(Je.value)),Fa=k(()=>Zo(vt.value,ba)),Zr=k(()=>Fa.value.reduce((i,r)=>i+Number(r.count||0),0));k(()=>{const i=Zr.value||1;return Fa.value.map((r,l)=>{const c=Number(r.count||0),p=Number(r.ratio);return $(N({},r),{count:c,color:R[l%R.length],percent:Number.isFinite(p)?p:c/i*100})})});const Xr=k(()=>Kn(Fa.value,ba)),xa=k(()=>Xr.value),Ji=k(()=>tl(xa.value)),Qi=k(()=>al(Fa.value,ba)),en=k(()=>nl(Qi.value)),Jr=k(()=>Math.max(...Ji.value.map(i=>Number(i.count||0)),1)),hi=k(()=>xa.value.length?0:-1),Qr=k(()=>{const i=xa.value,r=i.length;if(!r)return[];const l=Math.max(...i.map(y=>Number(y.count||0)),1),c=360/r,p=Math.min(8,c*.16);return i.map((y,w)=>{const T=Number(y.count||0),F=w===hi.value,_=36+Math.sqrt(T/l)*31+(F?5:0),A=17,Y=-90+w*c+p/2,X=-90+(w+1)*c-p/2,D=(Y+X)/2,Q=Dt(75,75,_+3,D),Ne=Dt(75,75,_+15,D),lt=Dt(75,75,_+20,D);return{key:y.key||y.name||w,index:w,item:y,color:y.color||R[w%R.length],path:el(75,75,A,_,Y,X),lineStart:Q,lineEnd:Ne,label:lt,anchor:Math.cos(D*Math.PI/180)>=0?"start":"end"}})}),tn=k(()=>qn(["fertileCow","overageCow"])),an=k(()=>qn(["femaleCalf","maleCalf"])),Ft=k(()=>Vl(lo(Pt.value.length?Pt.value:pr,pr),ct)),pi=k(()=>uu),fi=k(()=>zl(Je.value)),es=k(()=>Dl(Je.value)),mi=k(()=>{var i;return((i=we.value)==null?void 0:i.metrics)||{}}),gi=k(()=>{var i;return St((i=we.value)==null?void 0:i.dateTrend).sort(bo)}),Na=k(()=>{var i;return St((i=we.value)==null?void 0:i.medicineCounts)}),Ra=k(()=>Na.value.filter(i=>i.value>0).map((i,r)=>$(N({},i),{key:i.key||`${i.name}-${r}`,unit:"条"}))),ts=k(()=>Ra.value.map(i=>`${i.name}:${i.value}`).join("|")||"epidemic-medicine-empty"),as=k(()=>{var i;return St((i=we.value)==null?void 0:i.ownerRanks).slice(0,8)}),xt=k(()=>fn(we.value)),is=k(()=>{var i;return((i=Na.value.find(r=>r.name&&r.name!=="未填写"))==null?void 0:i.name)||"-"}),mt=k(()=>za(mi.value,["total","vaccine"]));k(()=>za(mi.value,["owners"]));const ns=k(()=>Number(ce.value)===2026?10:za(mi.value,["villages"])),yi=k(()=>Vt.value.length),rs=k(()=>{var i;return((i=Vt.value[0])==null?void 0:i.name)||"-"}),nn=k(()=>{const i=$e.value.map(r=>r.operateTime).filter(Boolean).sort();return i.length?Rt(i[i.length-1]):"-"}),bi=k(()=>{const i=Math.max(...Na.value.map(r=>Number(r.value||0)),0);return i>0?i:Math.round(mt.value/xt.value)}),vi=k(()=>{var r;const i=ho((r=Ct.value)==null?void 0:r.rows);return i.length?i:Vt.value.map(l=>({name:l.name,recordCount:Number(l.recordCount||0),earTagCount:Number(l.earTagCount||0),ratio:l.ratio,source:"ledger"}))}),rn=k(()=>{var r;const i=new Set;return Gi((r=it.value)==null?void 0:r.rows).filter(l=>Number.isFinite(l.lng)&&Number.isFinite(l.lat)).map((l,c)=>{const p=`${l.lng.toFixed(4)},${l.lat.toFixed(4)}`,y=i.has(p)?(c%3-1)*.012:0;return i.add(p),$(N({},l),{name:l.village,value:l.earTagCount,unit:"万头",lng:l.lng+y,lat:l.lat-y*.65,displayValue:Number((l.earTagCount/1e4).toFixed(2)),displayUnit:"万头",rankLabel:`第${c+1}名`})})}),Vt=k(()=>{var r;const i=new Map;return St((r=we.value)==null?void 0:r.townCounts).forEach(l=>{const c=Qe(l.name);c&&i.set(c,Number(i.get(c)||0)+Number(l.value||0))}),[...i.entries()].map(([l,c])=>{const p=Math.round(c/xt.value),y=mt.value?c/mt.value*100:0;return{name:l,recordCount:c,earTagCount:p,ratio:y}}).sort((l,c)=>Number(c.recordCount||0)-Number(l.recordCount||0))}),ss=k(()=>Math.max(Ft.value.length,yi.value)),os=k(()=>new Set(Vt.value.map(i=>Qe(i.name)).filter(Boolean))),Nt=k(()=>{const i=os.value;return Ft.value.map(r=>Qe(r.name)).filter(r=>r&&!i.has(r))}),ls=k(()=>{const i=ss.value||yi.value||1;return yi.value/i*100});k(()=>bi.value/ct*100);const Ia=k(()=>wo());k(()=>mt.value?Nt.value.length?Nt.value.length:Ia.value.name&&Ia.value.name!=="暂无"?1:0:0);const us=k(()=>Lo()),cs=k(()=>To()),ds=k(()=>So());k(()=>Mo());const hs=k(()=>ko());k(()=>hs.value.slice(0,3)),k(()=>mt.value?Nt.value.length?"年度免疫进度需核查":Ia.value.desc:"年度计划待核查");const wi=k(()=>Math.max(Math.ceil(nt.value/ei),1)),ps=k(()=>$e.value.slice(0,ei)),sn=k(()=>Math.max(Math.ceil(U.value/$r),1)),zt=k(()=>_e.value||Ce.value||{}),on=k(()=>Bi(zt.value)),fs=k(()=>{const i=zt.value||{};return[Me("台账编号",i.epidemicId,{wide:!0}),Me("养殖户",i.owner,{wide:!0}),Me("联系电话",Sn(i.phone)),Me("证件类型",i.idType),Me("证件号码",xo(i.idNo)),Me("镇/乡",i.town),Me("村",i.village),Me("详细地址",i.location,{wide:!0}),Me("畜种",i.livestockType),Me("性别",i.sex),Me("畜龄",i.age),Me("体重",No(i.weight)),Me("疫苗/药品",i.medicine),Me("防疫类型",i.preventionType),Me("免疫方式",i.method),Me("剂量",Ro(i.dose)),Me("免疫时间",Rt(i.operateTime)),Me("操作员",i.operator)].filter(Boolean)}),ms=k(()=>{var i;return St((i=we.value)==null?void 0:i.townCounts).map(r=>r.name)}),gs=k(()=>Na.value.map(i=>i.name).filter(i=>i&&i!=="未填写")),ln=k(()=>{var i;return((i=te.value)==null?void 0:i.metrics)||{}}),un=k(()=>{var i,r,l,c,p,y,w,T;return mn((i=ge.value)==null?void 0:i.years,(r=te.value)==null?void 0:r.availableYears,(l=te.value)==null?void 0:l.available_years,(c=te.value)==null?void 0:c.yearSummary,(p=te.value)==null?void 0:p.year_summary,(y=te.value)==null?void 0:y.latestYear,(w=te.value)==null?void 0:w.latest_year,(T=te.value)==null?void 0:T.year)}),ys=k(()=>{var i,r;return Va(((i=te.value)==null?void 0:i.monthTrend)||((r=te.value)==null?void 0:r.month_trend),"name")});k(()=>{var i,r;return uo(((i=te.value)==null?void 0:i.yearSummary)||((r=te.value)==null?void 0:r.year_summary))});const Ga=k(()=>{var i,r;return Va(((i=te.value)==null?void 0:i.startTownCounts)||((r=te.value)==null?void 0:r.start_town_counts),"name")}),Li=k(()=>{var i,r;return Va(((i=te.value)==null?void 0:i.usageCounts)||((r=te.value)==null?void 0:r.usage_counts),"name")}),bs=k(()=>{var i,r,l,c,p,y;return Va(((i=te.value)==null?void 0:i.transportNumberCounts)||((r=te.value)==null?void 0:r.transport_number_counts)||((l=te.value)==null?void 0:l.vehicleCounts)||((c=te.value)==null?void 0:c.vehicle_counts)||((p=te.value)==null?void 0:p.transportCounts)||((y=te.value)==null?void 0:y.transport_counts),"transportNumber")}),_a=k(()=>{const i=Ga.value.map(l=>{const c=String(l.name||"").trim(),p=Qe(c),y=Fi(p||c);return $(N({},l),{rawName:c,name:y,displayName:y,town:p,mapTownName:p})}).filter(l=>l.name&&l.name!=="未填写").slice(0,10),r=Math.max(...i.map(l=>l.headCount),1);return i.map((l,c)=>$(N({},l),{key:l.key||`${l.mapTownName||l.name}-${c}`,value:l.headCount,unit:"头",ratio:Math.max(8,Math.round(l.headCount/r*100))}))}),cn=k(()=>He.value.slice(0,Hi)),Ti=k(()=>Math.max(Math.ceil(st.value/Hi),1)),Si=k(()=>Math.max(Math.ceil(Sa.value/Vr),1)),be=k(()=>Ma.value||{}),vs=k(()=>be.value.certId||be.value.factoryCode||""),ws=k(()=>{var r,l;const i=Ri(((r=ge.value)==null?void 0:r.startTowns)||((l=ge.value)==null?void 0:l.start_towns));return i.length?i:Ii(Ga.value.map(c=>c.name))}),Ls=k(()=>{var r,l;const i=Ri(((r=ge.value)==null?void 0:r.usageTypes)||((l=ge.value)==null?void 0:l.usage_types));return i.length?i:Ii(Li.value.map(c=>c.name))}),Ts=k(()=>{var r,l,c,p;const i=co(((r=ge.value)==null?void 0:r.certTypeOptions)||((l=ge.value)==null?void 0:l.cert_type_options));return i.length?i:Ri(((c=ge.value)==null?void 0:c.certTypes)||((p=ge.value)==null?void 0:p.cert_types)).map(y=>({value:y,label:y}))}),Ss=k(()=>_a.value.map((i,r)=>({key:i.key||`${i.name}-${r}`,name:i.displayName||i.name,displayName:i.displayName||i.name,rawName:i.rawName,town:i.mapTownName||i.town||Qe(i.name),mapTownName:i.mapTownName||i.town||Qe(i.name),value:i.headCount,headCount:i.headCount,recordCount:i.recordCount,ratio:i.ratio,unit:"头"}))),dn=k(()=>Po()),Ms=k(()=>{const i=dn.value.filter(r=>r.level==="high");return i.length>=2?`${i.length}项重点`:i.length===1?`重点:${i[0].name}`:"整体平稳"}),ks=k(()=>Ft.value.map(i=>$(N({},i),{breedingCowRatio:tn.value,calfRatio:an.value,breedingCow:Math.round(i.count*tn.value/100),calf:Math.round(i.count*an.value/100)}))),Ba=k(()=>{const i=ks.value,r=i.length,l=Math.max(Math.ceil(r/ti),1),c=ht.value%l,p=c*ti,y=Math.min(p+ti,r);return{page:c,pageCount:l,start:p,end:y,total:r,rows:i.slice(p,y)}}),Ps=k(()=>W.value==="forecast"?fi.value:Ft.value),Cs=k(()=>W.value==="forecast"?"forecast":"count"),Fs=k(()=>qo(Ps.value,Cs.value)),xs=k(()=>({key:"yak-marks-layer",sourceType:"wmts",layerName:"ne:daping_yak_marks",style:"ne:yak_marks",styles:"ne:yak_marks",format:"image/png",tileMatrixSetID:"EPSG:900913",maximumLevel:21,url:"/geoserver/gwc/service/wmts",cqlFilter:"gov_show = true",name:"牦牛识别标记",opacity:.92,queryBuffer:10,geometryField:"geom",fillColor:"rgba(255, 230, 0, 0)",strokeColor:zr,glowColor:"rgba(255, 230, 0, 0.42)",lineWidth:1.4,mapView:{targetLngLat:E,distanceScale:.82,targetLocalZ:.76,duration:.85},legends:[{key:"yak-marks",name:"牦牛",fillColor:zr,strokeColor:"#FFF58A",selectable:!1}]})),Ns=k(()=>{var l;const r=Gi((l=it.value)==null?void 0:l.rows).map(c=>mo(c.town,c.village)).filter(Boolean);return{key:"yak-epidemic-village-boundary",sourceType:"wfs",layerName:"ne:t_pastures_map",styles:"牧场样式",name:"防疫村边界",opacity:.86,queryBuffer:8,cqlFilter:r.length?r.join(" OR "):"EXCLUDE",legends:[{key:"yak-epidemic-village-boundary",name:"防疫村边界",fillColor:"#30DCFF",strokeColor:"#C9FBFF",selectable:!1}]}}),hn=k(()=>W.value==="epidemic"?Ns.value:W.value==="trade"?null:xs.value),Tt=k(()=>W.value==="structure"||W.value==="forecast"),Rs=k(()=>W.value==="forecast"?ee:O),Is=k(()=>Tt.value?null:hn.value),Gs=k(()=>Tt.value?null:As.value),_s=k(()=>Tt.value?!oa.value:!$t.value),Bs=k(()=>"3D地图加载中"),As=k(()=>W.value==="trade"?{scope:"trade-flow",title:`${ye.value||""}出栏来源`,metricLabel:"来源",unit:"头",source:$(N({},at),{total:ze("headCount")}),rows:Ss.value,showFlowLines:!1,mapView:Z}:{scope:W.value==="epidemic"?"village":"town",hideTownNames:W.value==="epidemic",title:W.value==="forecast"?`${Je.value.shortLabel}预测存栏`:W.value==="epidemic"?`${ce.value}年村级防疫信息`:"乡镇估算存栏",metricLabel:W.value==="forecast"?"预测":W.value==="epidemic"?"防疫":"存栏",unit:"万头",rows:W.value==="epidemic"?rn.value:Fs.value.map(i=>({name:i.name,value:Number((i.value/1e4).toFixed(2)),unit:"万头"}))}),Es=k(()=>({color:["#8bf7ff","#30dcff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(i){const r=i.map(l=>`${l.marker}${l.seriesName}:${K(Math.abs(l.value))}头`);return`${i[0].name}
    ${r.join("
    ")}`}}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:11}},grid:{left:22,right:22,top:32,bottom:12,containLabel:!0},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>ie(Math.abs(i))},splitLine:{lineStyle:{color:x,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",data:Oi.map(i=>i.age),axisLabel:{color:m,fontSize:11,fontWeight:700},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"母牛",type:"bar",stack:"gender",barWidth:12,data:Oi.map(i=>-i.cow),itemStyle:{borderRadius:[7,0,0,7]}},{name:"公牛",type:"bar",stack:"gender",barWidth:12,data:Oi.map(i=>i.bull),itemStyle:{borderRadius:[0,7,7,0]}}]})),$s=k(()=>{const i=Ft.value,r=i.map(l=>l.count);return{color:R,tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(l){const c=l.map(p=>`${p.marker}${p.seriesName}:${K(p.value)}头`);return`${l[0].name}
    ${c.join("
    ")}
    估算存栏:${K(r[l[0].dataIndex])}头
    结构依据:畜群结构比例表`}}),legend:{top:-2,right:0,itemWidth:8,itemHeight:6,itemGap:6,textStyle:{color:S,fontSize:10}},grid:{left:54,right:30,top:22,bottom:8},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"category",inverse:!0,data:i.map(l=>l.name),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:ba.map(l=>({name:l.name,type:"bar",stack:"town",barWidth:i.length>8?6:11,data:i.map(c=>Math.round(c.count*l.ratio/100))}))}}),Vs=k(()=>$i(Ft.value,"count","头",{style:"ladder",tooltipFormatter(i){const r=Ft.value[i.dataIndex];return`${r.name}
    估算存栏:${K(r.count)}头
    来源:无人机识别`}})),zs=k(()=>{const i=Ba.value,r=i.rows,l=Math.max(...r.map(c=>c.breedingCow+c.calf),1);return{color:["#30dcff","#8bf7ff"],animationDurationUpdate:700,animationEasingUpdate:"cubicOut",tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(c){const p=r[c[0].dataIndex],y=c.filter(w=>["能繁母牛","犊牛合计"].includes(w.seriesName)).map(w=>`${w.marker}${w.seriesName}:${K(w.value)}头`);return`${p.name}
    母犊合计:${K(p.breedingCow+p.calf)}头
    ${y.join("
    ")}
    依据:无人机识别 + 畜群结构比例表`}}),legend:{data:["能繁母牛","犊牛合计"],top:2,left:2,itemWidth:10,itemHeight:7,itemGap:9,textStyle:{color:S,fontSize:10}},graphic:i.total>ti?{type:"text",right:4,top:3,silent:!0,style:{text:`${i.start+1}-${i.end} / ${i.total}`,fill:C,fontSize:10,fontWeight:600}}:void 0,grid:{left:18,right:18,top:42,bottom:44,containLabel:!1},xAxis:{type:"category",data:r.map(c=>c.name),axisLabel:{color:C,fontSize:10,lineHeight:12,interval:0,margin:8,formatter:yo},axisLine:{show:!1},axisTick:{show:!1}},yAxis:{type:"value",max:Math.ceil(l*1.28),axisLabel:{show:!1},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"基础群规模",type:"bar",barWidth:15,barGap:"-100%",data:r.map(c=>c.breedingCow+c.calf),tooltip:{show:!1},itemStyle:{borderRadius:[8,8,1,1],color:"rgba(48, 220, 255, 0.07)"},silent:!0},{name:"能繁母牛",type:"bar",stack:"foundation",barWidth:15,data:r.map(c=>c.breedingCow),itemStyle:{borderRadius:[1,1,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.34)"},{offset:1,color:"#30dcff"}])}},{name:"犊牛合计",type:"bar",stack:"foundation",barWidth:15,data:r.map(c=>c.calf),itemStyle:{borderRadius:[8,8,1,1],color:new Ae(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:1,color:"rgba(139, 247, 255, 0.2)"}])},label:{show:!0,position:"top",formatter:({dataIndex:c})=>ie(r[c].breedingCow+r[c].calf),color:"#ffffff",fontSize:10,fontWeight:700}}]}}),Ds=k(()=>{const i=fr.slice().sort((c,p)=>p.value-c.value),r=fr.reduce((c,p)=>c+p.value,0),l=i.map(c=>c.yoy||0);return{color:i.map(c=>c.color),tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(c){const p=i[c[0].dataIndex];return`${p.label}
    数量:${K(p.value)}头
    占比:${et(p.value/r*100)}
    同比:${p.yoy>0?"+":""}${p.yoy}%`}}),grid:{left:36,right:30,top:20,bottom:34},xAxis:{type:"category",data:i.map(c=>c.label),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0,margin:10},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",min:Math.min(-2,Math.floor(Math.min(...l)-1)),max:Math.max(8,Math.ceil(Math.max(...l)+1)),axisLabel:{color:S,fontSize:10,formatter:"{value}%"},splitLine:{show:!1},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:16,data:i.map((c,p)=>({value:c.value,itemStyle:{borderRadius:[8,8,2,2],color:new Ae(0,0,0,1,[{offset:0,color:c.color},{offset:.72,color:`${c.color}cc`},{offset:1,color:`${c.color}18`}]),shadowBlur:p===0?4:2,shadowColor:"rgba(48, 220, 255, 0.16)"},label:{show:!0,position:"top",color:L,fontSize:10,fontFamily:Di.number,fontWeight:700,formatter:({value:y})=>ie(y)}}))},{name:"同比",type:"line",yAxisIndex:1,smooth:!0,symbol:"circle",symbolSize:6,data:l,lineStyle:{width:2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2},label:{show:!0,position:"top",color:"#8bf7ff",fontSize:10,formatter:({value:c})=>`${c>0?"+":""}${c}%`}}]}}),Os=k(()=>{const i=Oo(kt.value),r=Wo(Je.value,i.key),l=Ho(r),c=Yo(l.length,i.key);return{color:["#30dcff","#8bf7ff","#48cfff"],tooltip:$(N({},Le()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(p){var _,A,Y;const y=Array.isArray(p)?p:[p],w=y.find(X=>X.seriesType==="candlestick"),T=(w==null?void 0:w.data)||l[(Y=(A=w==null?void 0:w.dataIndex)!=null?A:(_=y[0])==null?void 0:_.dataIndex)!=null?Y:0];if(!T)return"";const F=T.close-T.open;return[`${T.label}|${i.unit}度预测`,`预测存栏:${K(T.close)}头`,`较上期:${Ya(F)}头`,`新生牛犊:${K(T.birth)}头`,`出栏扣减:${K(T.outflow)}头`].join("
    ")}}),legend:{top:4,right:8,data:["预测存栏","新生牛犊","出栏扣减"],itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:44,right:40,top:34,bottom:28},xAxis:{type:"category",boundaryGap:!0,data:r.labels,axisLabel:{color:C,fontSize:10,interval:c},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10,formatter:ie},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:jo(l.length,i.key),data:l,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.4}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:4,data:l.map(p=>p.close),lineStyle:{width:1.8,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:1},tooltip:{show:!1}},jn("新生牛犊",r.births,"#8bf7ff",1),jn("出栏扣减",r.outflow,"#48cfff",1)]}}),Ws=k(()=>({color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis"}),legend:{top:4,right:12,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:52,right:42,top:34,bottom:28},xAxis:{type:"category",data:pi.value.map(i=>i.month||i.name),axisLabel:{color:C,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>{const r=Number(i);return Number.isFinite(r)?Math.abs(r)>=1e4?`${Number((r/1e4).toFixed(1))}万`:`${r}`:i}},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10},splitLine:{show:!1}}],series:[{name:"数量",type:"bar",barWidth:12,data:pi.value.map(i=>i.count||i.value),itemStyle:{borderRadius:[8,8,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"增速",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:pi.value.map(i=>i.speed||i.growthRate||0),lineStyle:{width:2.4,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff"}}]})),Ys=k(()=>({tooltip:Le(),radar:{center:["50%","54%"],radius:"68%",splitNumber:4,indicator:mr.map(i=>({name:i.name,max:100})),axisName:{color:"rgba(223, 250, 255, 0.76)",fontSize:11},splitLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},splitArea:{areaStyle:{color:["rgba(48, 220, 255, 0.04)","rgba(139, 247, 255, 0.018)"]}},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.18)"}}},series:[{type:"radar",data:[{name:"预测因子",value:mr.map(i=>i.value),areaStyle:{color:"rgba(48, 220, 255, 0.22)"},lineStyle:{color:"#30dcff",width:2},itemStyle:{color:"#8bf7ff"}}]}]})),js=k(()=>$i(fi.value,"forecast","头")),Hs=k(()=>{const i=es.value,r=i.reduce((l,c,p)=>{const y=c.color||R[p%R.length];return l[`name${p}`]={color:y,fontSize:10,fontWeight:800},l[`percent${p}`]={color:y,fontSize:10,fontFamily:"D-DIN, Arial, sans-serif",fontWeight:800},l},{});return{color:R,tooltip:Le(l=>{var p;const c=i.find(y=>y.name===l.name);return`${l.name}
    预测占比:${et((p=c==null?void 0:c.ratio)!=null?p:l.percent)}
    预测数量:${K((c==null?void 0:c.count)||0)}头`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,formatter(l){const c=i.findIndex(y=>y.name===l),p=i[c];return p?`{name${c}|${l}} {percent${c}|${et(p.ratio)}}`:l},textStyle:{color:S,fontSize:10,rich:r}},series:[{name:"期末结构预测",type:"pie",radius:["38%","66%"],center:["32%","54%"],startAngle:118,avoidLabelOverlap:!1,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i.map(l=>({name:l.name,value:l.count}))}]}}),qs=k(()=>({color:["#8bf7ff","#48cfff","#48cfff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"}}),legend:{top:4,right:8,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:44,right:26,top:34,bottom:28},xAxis:{type:"category",data:Gt.map(i=>i.shortLabel),axisLabel:{color:m,fontSize:11,fontWeight:700},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:i=>Wa(i,1)},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"新生牛犊",type:"bar",barWidth:12,data:Gt.map(i=>i.births),itemStyle:{borderRadius:[7,7,0,0]}},{name:"出栏流出",type:"bar",barWidth:12,data:Gt.map(i=>-i.outflow),itemStyle:{borderRadius:[0,0,7,7]}},{name:"稳态校正",type:"line",smooth:!0,symbolSize:6,data:Gt.map(i=>i.correction),lineStyle:{width:2.4}}]})),Us=k(()=>{const i=fi.value,r=Math.max(...i.map(l=>Math.abs(l.change)),1);return i.map(l=>$(N({},l),{width:Math.max(8,Math.round(Math.abs(l.change)/r*100))}))});function Ks(i){const r=Number((i==null?void 0:i.change)||0)>=0;return{"--heat-width":`${i.width}%`,"--heat-color":r?"#30dcff":"#8bf7ff","--heat-color-soft":r?"rgba(48, 220, 255, 0.24)":"rgba(139, 247, 255, 0.22)","--heat-color-dim":r?"rgba(48, 220, 255, 0.07)":"rgba(139, 247, 255, 0.07)"}}function Zs(i){return`${i.name}:${Ya(i.change)}头`}const Xs=k(()=>{const i=gi.value,r=i.map(c=>c.value),l=Math.max(...r,1);return{color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"line",lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},formatter(c){const p=c[0];return`${p.name}
    防疫记录:${K(p.value)}条`}}),grid:{left:42,right:24,top:20,bottom:28},xAxis:{type:"category",data:i.map(c=>c.name),axisLabel:{color:C,fontSize:10,interval:Math.max(Math.floor(i.length/7),0)},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},yAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"防疫记录",type:"bar",barMaxWidth:12,data:r,itemStyle:{borderRadius:[7,7,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.92)",fontSize:10,formatter:({value:c})=>c>=l*.42?ie(c):""}},{name:"作业趋势",type:"line",smooth:!0,showSymbol:!1,data:r,lineStyle:{width:2.4,color:"#8bf7ff"}}]}});k(()=>{const i=gi.value.length?gi.value.slice(-6):[{name:"待开展",value:0}],r=i.map(w=>Number(w.value||0)),l=us.value,c=l.map(w=>Number(w.value||0)),p=Math.max(...r,1),y=w=>String(w||"").replace(/(镇|乡|村)$/,"");return{color:["#30dcff","#8bf7ff"],title:[{text:"作业节奏",left:4,top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}},{text:"补免关注",left:"55%",top:0,textStyle:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,fontWeight:800}}],tooltip:$(N({},Le()),{trigger:"axis",formatter(w){const T=Array.isArray(w)?w[0]:w;if((T==null?void 0:T.axisIndex)===1){const _=l[T.dataIndex]||{};return`${_.name}
    补免关注:${_.label||T.value}`}const F=i[T.dataIndex]||{};return`${F.name}
    防疫记录:${K(F.value)}条`}}),grid:[{left:6,right:"52%",top:26,bottom:15},{left:"56%",right:12,top:26,bottom:15}],xAxis:[{type:"category",gridIndex:0,data:i.map(w=>w.name),axisLabel:{color:"rgba(226, 252, 255, 0.56)",fontSize:9,interval:0,formatter:w=>String(w||"").replace(/^(\d{1,2})\D+(\d{1,2}).*$/,"$1/$2")},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.22)"}},axisTick:{show:!1}},{type:"value",gridIndex:1,min:0,max:Math.max(...c,100),show:!1}],yAxis:[{type:"value",gridIndex:0,show:!1},{type:"category",gridIndex:1,inverse:!0,data:l.map(w=>w.name),axisLabel:{color:"rgba(226, 252, 255, 0.68)",fontSize:9,formatter:w=>y(w)},axisLine:{show:!1},axisTick:{show:!1}}],series:[{name:"防疫记录",type:"bar",xAxisIndex:0,yAxisIndex:0,barMaxWidth:9,data:r,itemStyle:{borderRadius:[6,6,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#8bf7ff"},{offset:.45,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.1)"}])},label:{show:!0,position:"top",color:"rgba(230, 255, 249, 0.86)",fontSize:8,formatter:({value:w})=>w>=p*.55?ie(w):""}},{name:"节奏线",type:"line",xAxisIndex:0,yAxisIndex:0,smooth:!0,showSymbol:!1,data:r,lineStyle:{width:1.8,color:"#8bf7ff"},tooltip:{show:!1}},{name:"补免关注",type:"bar",xAxisIndex:1,yAxisIndex:1,barWidth:8,data:c,itemStyle:{borderRadius:[0,7,7,0],color:new Ae(0,0,1,0,[{offset:0,color:"rgba(139, 247, 255, 0.24)"},{offset:1,color:"#8bf7ff"}])},label:{show:!0,position:"right",color:"rgba(201, 251, 255, 0.9)",fontSize:8,formatter:({dataIndex:w})=>{var T;return((T=l[w])==null?void 0:T.label)||""}}}]}}),k(()=>{const i=cs.value,r=i.map(y=>Number(y.value||0)),l=Math.max(...r,1),c=r.filter(Boolean).reduce((y,w)=>y+w,0)/Math.max(r.filter(Boolean).length,1),p=Math.ceil(l*1.18);return{color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(y){var T;const w=i[(T=y[0])==null?void 0:T.dataIndex]||{};return w.isMissing?`${w.name}
    年度防疫:待补强`:`${w.name}
    覆盖量:${K(w.value)}头
    防疫记录:${K(w.recordCount)}条`}}),grid:{left:56,right:46,top:16,bottom:12},xAxis:{type:"value",min:0,max:p,show:!1},yAxis:{type:"category",inverse:!0,data:i.map(y=>y.name),axisLabel:{color:"rgba(226, 252, 255, 0.82)",fontSize:11,interval:0,formatter:y=>String(y||"").replace(/(镇|乡)$/,"")},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"均衡参照",type:"bar",barWidth:11,silent:!0,barGap:"-100%",data:i.map(()=>p),itemStyle:{borderRadius:[0,8,8,0],borderColor:"rgba(48, 220, 255, 0.12)",borderWidth:1,color:"rgba(48, 220, 255, 0.045)"}},{name:"覆盖量",type:"bar",barWidth:11,barGap:"-100%",z:3,data:i.map(y=>{const w=Number(y.value||0);return{value:w>0?w:Math.max(p*.035,1),rawValue:w,itemStyle:{borderRadius:[0,8,8,0],color:new Ae(0,0,1,0,[{offset:0,color:y.isMissing?"rgba(72, 207, 255, 0.2)":"rgba(48, 220, 255, 0.14)"},{offset:.72,color:y.isMissing?"#48cfff":"#30dcff"},{offset:1,color:y.isMissing?"#8bf7ff":"#9efcff"}]),shadowBlur:y.isMissing?4:5,shadowColor:y.isMissing?"rgba(72, 207, 255, 0.18)":"rgba(48, 220, 255, 0.16)"}}}),label:{show:!0,position:"right",color:"rgba(239, 255, 255, 0.92)",fontSize:11,fontWeight:800,formatter:({dataIndex:y})=>{const w=i[y]||{};return w.isMissing?"待补强":`${ie(w.value)}头`}},markLine:c>0?{symbol:"none",silent:!0,lineStyle:{color:"rgba(139, 247, 255, 0.46)",type:"dashed",width:1},label:{color:"rgba(201, 251, 255, 0.8)",fontSize:10,formatter:"均衡线"},data:[{xAxis:c}]}:void 0}]}}),k(()=>{const i=ds.value,r=["#30dcff","#8bf7ff","#58d9ff","#28e8d6","#7bdfff","#9efcff","#48cfff","#40b8ff","#8bf7ff"],l=i.length?i.map((c,p)=>({name:String(c.name||"").replace(/(村|社区|牧委会)$/,""),value:Math.max(Number(c.value||0),1),rawValue:Number(c.value||0),town:c.town||"",itemStyle:{color:new Ae(0,0,1,1,[{offset:0,color:r[p%r.length]},{offset:1,color:"rgba(17, 70, 92, 0.38)"}])}})):[{name:"待形成",value:1,rawValue:0,town:"",itemStyle:{color:"rgba(48, 220, 255, 0.14)"}}];return{tooltip:$(N({},Le()),{formatter(c){const p=c.data||{};return p.rawValue?`${p.town?`${p.town} `:""}${p.name}
    覆盖量:${K(p.rawValue)}头`:`${p.name}
    暂无村级覆盖量`}}),series:[{type:"treemap",roam:!1,nodeClick:!1,breadcrumb:{show:!1},left:6,right:6,top:7,bottom:5,visibleMin:1,data:l,label:{show:!0,color:"rgba(235, 254, 255, 0.9)",fontSize:10,fontWeight:800,lineHeight:14,formatter(c){var y;const p=Number(((y=c.data)==null?void 0:y.rawValue)||0);return p?`${c.name} -${ie(p)}头`:c.name}},upperLabel:{show:!1},itemStyle:{borderColor:"rgba(4, 24, 36, 0.88)",borderWidth:2,gapWidth:2},emphasis:{label:{color:"#ffffff"},itemStyle:{shadowBlur:6,shadowColor:"rgba(48, 220, 255, 0.18)"}},levels:[{itemStyle:{borderColor:"rgba(14, 75, 98, 0.72)",borderWidth:1,gapWidth:2}}]}]}});const Js=k(()=>{const i=vi.value,r=i.length>8?10:12,l=r+8,c=i.map(_=>Number(_.recordCount||0)),p=i.map(_=>Number(_.earTagCount||0)),y=Math.max(...c,1),w=i.map(()=>Math.ceil(y*1.08)),T=new Ae(0,0,0,1,[{offset:0,color:"rgba(48, 220, 255, 0.18)"},{offset:.48,color:"rgba(48, 220, 255, 0.06)"},{offset:1,color:"rgba(48, 220, 255, 0.02)"}]),F=new Ae(0,0,0,1,[{offset:0,color:"#31f7ff"},{offset:.36,color:"#1cbcff"},{offset:1,color:"#266dff"}]);return{color:["#31f7ff","#8bf7ff"],title:{text:`台账总量:{value|${ie(mt.value)}条}`,right:0,top:0,textStyle:{color:"#fff",fontSize:12,fontWeight:500,rich:{value:{color:"#22f1ff",borderColor:"#14bdf4",borderWidth:1,borderRadius:2,padding:[2,6,3,6],fontSize:12,fontWeight:700}}}},tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(_){const A=i[_[0].dataIndex];return[`${A.name}`,`防疫记录:${K(A.recordCount)}条`,`耳标数量:${K(A.earTagCount)}头`,"数据来源:防疫台账"].join("
    ")}}),legend:[{data:["防疫记录"],top:0,left:0,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:m,fontSize:11},selectedMode:!1},{data:["耳标数"],top:0,left:82,itemWidth:10,itemHeight:10,icon:"circle",textStyle:{color:m,fontSize:11},selectedMode:!1}],grid:{left:42,right:12,top:46,bottom:68},xAxis:{type:"category",data:i.map(_=>_.name),axisLabel:{color:m,fontSize:10,interval:0,lineHeight:11,margin:8,formatter:go},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},yAxis:{type:"value",name:"数量/条",max:Math.ceil(y*1.2),nameTextStyle:{color:C,fontSize:10,align:"left"},axisLabel:{color:C,fontSize:10,formatter:ie},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},series:[{name:"统计底柱",type:"bar",barWidth:l,barGap:"-100%",data:w,tooltip:{show:!1},silent:!0,z:1,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(48, 220, 255, 0.22)",borderWidth:1,color:T}},{name:"防疫记录",type:"bar",barGap:"-100%",barWidth:r,barMinHeight:2,z:3,data:c.map(_=>({value:_,itemStyle:{borderRadius:[8,8,1,1],borderColor:"rgba(200, 252, 255, 0.22)",borderWidth:1,color:F,shadowBlur:10,shadowColor:"rgba(49, 247, 255, 0.28)"}}))},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[r+7,5],symbolOffset:[0,-3],symbolPosition:"end",z:8,tooltip:{show:!1},data:c.map(_=>({value:_,itemStyle:{color:"rgba(207, 252, 255, 0.88)",shadowBlur:8,shadowColor:"rgba(49, 247, 255, 0.72)"}}))},{name:"底座光影",type:"pictorialBar",symbol:"diamond",symbolSize:[l+3,5],symbolOffset:[0,3],z:2,tooltip:{show:!1},data:c,itemStyle:{color:"rgba(48, 220, 255, 0.24)",shadowBlur:10,shadowColor:"rgba(48, 220, 255, 0.45)"}},{name:"耳标数",type:"line",smooth:!0,showSymbol:!1,z:9,data:p,lineStyle:{width:1.6,color:"#8bf7ff",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:"#8bf7ff"}}]}}),Qs=k(()=>{const i=as.value;return{tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(r){const l=i[r[0].dataIndex];return`${l.name}
    防疫记录:${K(l.value)}条`}}),grid:{left:74,right:42,top:12,bottom:8},xAxis:{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:i.map(r=>r.name),axisLabel:{color:m,fontSize:10,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{name:"记录",type:"bar",barWidth:9,data:i.map((r,l)=>({value:r.value,itemStyle:{borderRadius:[0,8,8,0],color:new Ae(0,0,1,0,[{offset:0,color:"rgba(48, 220, 255, 0.12)"},{offset:.62,color:["#30dcff","#8bf7ff","#58d9ff"][l%3]},{offset:1,color:"#ffffff"}])}})),label:{show:!0,position:"right",color:"#eaffff",fontSize:10,formatter:({value:r})=>ie(r)}},{type:"scatter",symbolSize:7,data:i.map(r=>r.value),itemStyle:{color:"#8bf7ff",shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}]}}),eo=k(()=>{const i=ys.value;return{color:["#30dcff","#8bf7ff"],tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(r){const l=r.find(p=>p.seriesName==="流通头数"),c=r.find(p=>p.seriesName==="出证记录");return`${(l==null?void 0:l.axisValue)||""}
    流通头数:${K((l==null?void 0:l.value)||0)}头
    出证记录:${K((c==null?void 0:c.value)||0)}条`}}),legend:{top:4,right:10,itemWidth:12,itemHeight:8,textStyle:{color:S,fontSize:10}},grid:{left:42,right:38,top:34,bottom:28},xAxis:{type:"category",data:i.map(r=>r.name),axisLabel:{color:C,fontSize:10,interval:1},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.24)"}},axisTick:{show:!1}},yAxis:[{type:"value",axisLabel:{color:C,fontSize:10,formatter:ie},splitLine:{lineStyle:{color:x,type:"dashed"}}},{type:"value",axisLabel:{color:S,fontSize:10,formatter:ie},splitLine:{show:!1}}],series:[{name:"流通头数",type:"bar",barMaxWidth:13,data:i.map(r=>r.headCount),itemStyle:{borderRadius:[7,7,0,0],color:new Ae(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])}},{name:"出证记录",type:"line",yAxisIndex:1,smooth:!0,symbolSize:5,data:i.map(r=>r.recordCount),lineStyle:{width:2.2,color:"#8bf7ff"},itemStyle:{color:"#8bf7ff",borderColor:"rgba(3, 18, 28, 0.9)",borderWidth:2}}]}}),to=k(()=>$i(Ga.value.slice(0,10),"headCount","头",{colors:We,style:"ladder",axisTextColor:"rgba(255, 255, 255, 0.88)",dimAxisTextColor:"rgba(255, 255, 255, 0.74)",tooltipFormatter(i){const r=Ga.value[i.dataIndex];return`${r.name}
    流通头数:${K(r.headCount)}头
    出证记录:${K(r.recordCount)}条`}})),ao=k(()=>{const i=Li.value;return{color:We,tooltip:Le(r=>{const l=i.find(c=>c.name===r.name);return`${r.name}
    占比:${r.percent}%
    流通头数:${K(r.value)}头
    出证记录:${K((l==null?void 0:l.recordCount)||0)}条`}),legend:{orient:"vertical",right:4,top:"middle",itemWidth:8,itemHeight:8,itemGap:6,textStyle:{color:S,fontSize:10},formatter(r){const l=i.find(c=>c.name===r);return l?`${r} ${ie(l.headCount)}头`:r}},series:[{name:"用途结构",type:"pie",radius:["38%","64%"],center:["32%","54%"],startAngle:110,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i.map(r=>({name:r.name,value:r.headCount}))}]}}),io=k(()=>{const i=[{name:"省外A证",value:ze("outProvinceHeads","aCertHeads")},{name:"省内B证",value:ze("inProvinceHeads","bCertHeads")}];return{color:["#8bf7ff","#30dcff"],tooltip:Le(r=>`${r.name}
    流通头数:${K(r.value)}头
    占比:${r.percent}%`),series:[{type:"pie",radius:["48%","72%"],center:["50%","52%"],label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},data:i}]}});function Mi(){o.value=typeof window=="undefined"?1080:window.innerHeight}function pn(){var i,r,l,c,p,y;if(Tt.value){(r=(i=sa.value)==null?void 0:i.refreshView)==null||r.call(i);return}(c=(l=Ve.value)==null?void 0:l.resume)==null||c.call(l),(y=(p=Ve.value)==null?void 0:p.refreshView)==null||y.call(p)}function ki(){Lt&&(window.clearTimeout(Lt),Lt=null)}function no(){var i,r,l,c,p,y;if(la.value={type:"loading",text:"地图正在复位"},ua.value={type:"idle",text:""},Tt.value){(r=(i=sa.value)==null?void 0:i.hasMap)!=null&&r.call(i)?(oa.value=!0,(c=(l=sa.value)==null?void 0:l.resetView)==null||c.call(l)):(oa.value=!1,Zi.value+=1,Yt(()=>{window.setTimeout(()=>{var w,T;return(T=(w=sa.value)==null?void 0:w.refreshView)==null?void 0:T.call(w)},160)}));return}if((y=(p=Ve.value)==null?void 0:p.hasMap)!=null&&y.call(p)){$t.value=!0,pn();return}ki(),$t.value=!1,wt=!1,Ki.value+=1,Yt(()=>{da()})}e({refreshMapView:pn,resetMap:no,setActiveView(i){W.value=Vi(i)}}),Dr(()=>{Mi(),window.addEventListener("resize",Mi),$o(),Io(),Gn(),kn(),Aa(),Ea()}),Or(()=>{var i,r;ca=!0,window.removeEventListener("resize",Mi),Lt&&window.clearTimeout(Lt),Pi(),Ci(),(r=(i=Ve.value)==null?void 0:i.destroyMap)==null||r.call(i)}),Ht([W,Je,Ft,bi,mt,ce,ye,ln],()=>{zo()},{immediate:!0}),Ht(W,(i,r)=>{n("view-change",i);const l=i==="structure"||i==="forecast",c=r==="structure"||r==="forecast",p=!l&&!c&&(i==="trade"||r==="trade");l&&!c&&(oa.value=!1,la.value={type:"idle",text:""},ua.value={type:"idle",text:""}),!l&&c&&(ki(),$t.value=!1,wt=!1,la.value={type:"idle",text:""},ua.value={type:"idle",text:""},Yt(()=>{var y,w,T,F;da(),(w=(y=Ve.value)==null?void 0:y.resume)==null||w.call(y),(F=(T=Ve.value)==null?void 0:T.refreshView)==null||F.call(T),window.setTimeout(()=>{var _,A;return(A=(_=Ve.value)==null?void 0:_.refreshView)==null?void 0:A.call(_)},180)})),p&&(ki(),$t.value=!1,wt=!1,la.value={type:"idle",text:""},ua.value={type:"idle",text:""},Yt(()=>{da()})),Aa(),Ea()}),Ht(()=>a.viewKey,i=>{const r=Vi(i);r!==W.value&&(W.value=r)}),Ht(()=>a.active,i=>{var r,l,c,p;i?(da(),(l=(r=Ve.value)==null?void 0:r.resume)==null||l.call(r),Aa(),Ea()):((p=(c=Ve.value)==null?void 0:c.pause)==null||p.call(c),Pi(),Ci())}),Ht(Ba,i=>{ht.value>=i.pageCount&&(ht.value=0),Ea()});function ro(i){i!==Ee.value&&(Ee.value=i,Aa())}function Aa(){Pi(),!(!a.active||W.value!=="forecast"||ca)&&(ka=window.setInterval(so,Zd))}function so(){const i=Gt.findIndex(l=>l.key===Ee.value),r=i>=0?(i+1)%Gt.length:0;Ee.value=Gt[r].key}function Pi(){ka&&(window.clearInterval(ka),ka=null)}function Ea(){Ci(),!(!a.active||W.value!=="structure"||ca||Ba.value.pageCount<=1)&&(Pa=window.setInterval(oo,Xd))}function oo(){const i=Ba.value.pageCount;i<=1||(ht.value=(ht.value+1)%i)}function Ci(){Pa&&(window.clearInterval(Pa),Pa=null)}function lo(i=[],r=[]){const l=new Map;return r.forEach(c=>{const p=Fi(c.name);p&&l.set(p,$(N({},c),{name:p,count:Number(c.count||0)}))}),i.forEach(c=>{const p=Fi(c.name);if(!p)return;const y=l.get(p)||{};l.set(p,$(N(N({},y),c),{name:p,count:Number.isFinite(Number(c.count))?Number(c.count):Number(y.count||0)}))}),[...l.values()].sort((c,p)=>Number(p.count||0)-Number(c.count||0))}function Fi(i){return gr(i||"")}function Qe(i){return String(i||"").trim()}function xi(i){const r=Number(i);return Number.isFinite(r)&&Ue.includes(r)?r:Ue[Ue.length-1]}function Ni(i=ce.value){const r=xi(i);return{startDate:`${r}-01-01`,endDate:`${r}-12-31`}}function $a(){return{keyword:"",town:"",medicine:"",startDate:"",endDate:""}}function St(i=[]){return Array.isArray(i)?i.map((r,l)=>{var c,p,y;return{key:r.key||r.id||`${r.name||r.label||"item"}-${l}`,name:String(r.name||r.label||r.town||r.village||"未填写"),value:Number((y=(p=(c=r.value)!=null?c:r.count)!=null?p:r.total)!=null?y:0)}}).filter(r=>r.name&&Number.isFinite(r.value)):[]}function fn(i={}){const r=St(i==null?void 0:i.medicineCounts);return Math.max(r.filter(l=>l.name!=="未填写").length,1)}function mn(...i){const r=i.flatMap(l=>Array.isArray(l)?l:[l]).map(l=>{var c,p,y;return l&&typeof l=="object"?(y=(p=(c=l.year)!=null?c:l.value)!=null?p:l.latestYear)!=null?y:l.latest_year:l}).map(Number).filter(l=>Number.isFinite(l)&&l>0);return[...new Set(r)].sort((l,c)=>l-c)}function Va(i=[],r="name"){return Array.isArray(i)?i.map((l,c)=>{var p,y,w,T,F,_,A,Y,X,D,Q,Ne,lt,Kt,de,De,ha;return{key:l.key||l.id||`${l[r]||l.name||l.label||"trade"}-${c}`,name:String(l[r]||l.name||l.label||l.town||"未填写"),recordCount:Number((w=(y=(p=l.recordCount)!=null?p:l.record_count)!=null?y:l.count)!=null?w:0),headCount:Number((A=(_=(F=(T=l.headCount)!=null?T:l.head_count)!=null?F:l.amount)!=null?_:l.value)!=null?A:0),lng:gt((Ne=(Q=(D=(X=(Y=l.lng)!=null?Y:l.longitude)!=null?X:l.destLng)!=null?D:l.dest_lng)!=null?Q:l.destLongitude)!=null?Ne:l.dest_longitude),lat:gt((ha=(De=(de=(Kt=(lt=l.lat)!=null?lt:l.latitude)!=null?Kt:l.destLat)!=null?de:l.dest_lat)!=null?De:l.destLatitude)!=null?ha:l.dest_latitude)}}).filter(l=>l.name&&Number.isFinite(l.headCount)):[]}function uo(i=[]){return Array.isArray(i)?i.map(r=>{var l,c,p,y,w,T;return{year:Number(r.year),recordCount:Number((c=(l=r.recordCount)!=null?l:r.record_count)!=null?c:0),headCount:Number((T=(w=(y=(p=r.headCount)!=null?p:r.head_count)!=null?y:r.amount)!=null?w:r.value)!=null?T:0)}}).filter(r=>Number.isFinite(r.year)&&Number.isFinite(r.headCount)):[]}function Ri(i=[]){return Array.isArray(i)?Ii(i.map(r=>{var l,c,p;return r&&typeof r=="object"?(p=(c=(l=r.value)!=null?l:r.label)!=null?c:r.name)!=null?p:"":r})):[]}function co(i=[]){return Array.isArray(i)?i.map(r=>{var l,c,p,y,w,T;if(r&&typeof r=="object"){const F=(p=(c=(l=r.value)!=null?l:r.name)!=null?c:r.label)!=null?p:"",_=(T=(w=(y=r.label)!=null?y:r.name)!=null?w:r.value)!=null?T:F;return F?{value:String(F),label:String(_||F)}:null}return r?{value:String(r),label:String(r)}:null}).filter(Boolean):[]}function Ii(i=[]){return[...new Set(i.map(r=>String(r||"").trim()).filter(Boolean))]}function ho(i=[]){if(!Array.isArray(i))return[];const r=new Map;i.forEach((c,p)=>{var _,A,Y,X,D,Q;const y=Qe(c.name||c.areaName||c.area_name||c.town||c.label||"");if(!y)return;const w=gt((Y=(A=(_=c.value)!=null?_:c.number)!=null?A:c.count)!=null?Y:c.total);if(!Number.isFinite(w))return;const T=r.get(y)||{key:c.areaCode||c.area_code||`${y}-${p}`,name:y,recordCount:0,earTagCount:0,source:"stats"};T.recordCount+=w;const F=gt((Q=(D=(X=c.earTagCount)!=null?X:c.ear_tag_count)!=null?D:c.headCount)!=null?Q:c.head_count);T.earTagCount+=Number.isFinite(F)?F:0,r.set(y,T)});const l=[...r.values()].reduce((c,p)=>c+Number(p.recordCount||0),0);return[...r.values()].map(c=>$(N({},c),{earTagCount:c.earTagCount||Math.round(Number(c.recordCount||0)/xt.value),ratio:l?Number(c.recordCount||0)/l*100:0})).sort((c,p)=>Number(p.recordCount||0)-Number(c.recordCount||0))}function po(i={}){var p,y;const r=Array.isArray(i)?{rows:i}:i||{},l=r.result||{};return{rows:r.rows||r.data||r.list||r.records||[],year:(y=(p=r.year)!=null?p:l.year)!=null?y:null}}function Gi(i=[]){return Array.isArray(i)?i.map((r,l)=>{var Y,X,D,Q,Ne,lt,Kt,de,De,ha,Xn,Jn;const c=Qe(r.town||r.townName||r.town_name||""),p=String(r.village||r.villageName||r.village_name||r.name||"").trim(),y=gt((D=(X=(Y=r.recordCount)!=null?Y:r.record_count)!=null?X:r.records)!=null?D:r.total),w=gt((Kt=(lt=(Ne=(Q=r.earTagCount)!=null?Q:r.ear_tag_count)!=null?Ne:r.headCount)!=null?lt:r.head_count)!=null?Kt:r.value),T=gt((De=(de=r.imageCount)!=null?de:r.image_count)!=null?De:r.images),F=gt((ha=r.imageRate)!=null?ha:r.image_rate),_=gt((Xn=r.lng)!=null?Xn:r.longitude),A=gt((Jn=r.lat)!=null?Jn:r.latitude);return{key:r.key||r.id||`${c}-${p}-${l}`,town:c,village:p,recordCount:Number.isFinite(y)?y:0,earTagCount:Number.isFinite(w)?w:0,imageCount:Number.isFinite(T)?T:0,imageRate:Number.isFinite(F)?F:0,lng:_,lat:A}}).filter(r=>r.town&&r.village&&Number.isFinite(r.earTagCount)).sort((r,l)=>Number(l.earTagCount||0)-Number(r.earTagCount||0)):[]}function fo(i={},r={}){const l=Array.isArray(r)?{rows:r}:r||{},c=l.result||{},p=Gi(l.rows||l.data||l.list||l.records||c.rows||[]),y=new Map;p.forEach(A=>{gn(A.village).forEach(Y=>{y.has(Y)||y.set(Y,A)})});const w=St(i==null?void 0:i.townCounts),T=w.length===1?Qe(w[0].name):"",F=fn(i),_=St(i==null?void 0:i.villageCounts).map((A,Y)=>{const X=String(A.name||"").trim(),D=gn(X).map(Ne=>y.get(Ne)).find(Boolean)||{},Q=Number(A.value||0);return{key:D.key||`${D.town||T||"防疫"}-${X}-${Y}`,town:D.town||T,village:X,recordCount:Q,earTagCount:Math.round(Q/F),imageCount:D.imageCount||0,imageRate:D.imageRate||0,lng:D.lng,lat:D.lat}}).filter(A=>A.village&&A.recordCount>0);return $(N({},l),{rows:_})}function gn(i){const r=String(i||"").trim(),l=r.replace(/(村|社区|牧委会)$/,"");return[...new Set([r,l].filter(Boolean))]}function gt(i){if(i==null||i==="")return NaN;const r=Number(String(i).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(r)?r:NaN}function yn(i){return String(i||"").replace(/'/g,"''").replace(/%/g,"\\%").replace(/_/g,"\\_")}function mo(i,r){const l=Qe(i),c=String(r||"").trim();if(!l||!c)return"";const p=`${l}${c}`,y=yn(p),w=yn(c);return`(full_name LIKE '%${y}%' OR name = '${y}' OR name = '${w}')`}function go(i){const r=String(i||"").trim().replace(/\s+/g,"");return r?Array.from(r).join(` -`):""}function yo(i){const r=String(i||"").trim();if(!r)return"";const l=r.match(/^(.+)(镇|乡|村)$/);return l?`${l[1]} -${l[2]}`:r}function bo(i,r){return bn(i.name)-bn(r.name)}function bn(i){const r=String(i||"").match(/(\d{1,2})\D+(\d{1,2})/);return r?Number(r[1])*100+Number(r[2]):Number.MAX_SAFE_INTEGER}function _i(i=[]){return Array.isArray(i)?i.map(vn).filter(Boolean):[]}function vn(i){return i?{epidemicId:i.epidemicId||i.epidemic_id||i.id||"",earTag:i.earTag||i.ear_tag||"",owner:i.owner||"",idType:i.idType||i.id_type||"",idNo:i.idNo||i.id_no||"",phone:i.phone||"",town:i.town||"",village:i.village||"",location:i.location||"",livestockType:i.livestockType||i.livestock_type||"",age:i.age||"",sex:i.sex||"",weight:i.weight||i.weightKg||i.weight_kg||"",preventionType:i.preventionType||i.prevention_type||"",method:i.method||"",medicine:i.medicine||"",dose:i.dose||"",operator:i.operator||"",operateTime:i.operateTime||i.operate_time||"",imagePaths:i.imagePaths||i.image_paths||""}:null}function wn(i=[]){return Array.isArray(i)?i.map(vo).filter(Boolean):[]}function vo(i){var r,l,c,p;return i?{certId:i.certId||i.cert_id||i.id||"",certType:i.certType||i.cert_type||"",certScopeName:i.certScopeName||i.cert_scope_name||"",factoryCode:i.factoryCode||i.factory_code||"",ownerName:i.ownerName||i.owner_name||"",ownerPhone:i.ownerPhone||i.owner_phone||"",transportNumber:i.transportNumber||i.transport_number||"",amount:Number((p=(c=(l=(r=i.amount)!=null?r:i.headCount)!=null?l:i.head_count)!=null?c:i.value)!=null?p:0),unitName:i.unitName||i.unit_name||"头",animalTypeName:i.animalTypeName||i.animal_type_name||"",usageTypeName:i.usageTypeName||i.usage_type_name||"",startTown:i.startTown||i.start_town||"",startRegionFullName:i.startRegionFullName||i.start_region_full_name||"",destProvince:i.destProvince||i.dest_province||"",destRegionFullName:i.destRegionFullName||i.dest_region_full_name||"",quarantineOfficerName:i.quarantineOfficerName||i.quarantine_officer_name||"",issueTime:i.issueTime||i.issue_time||"",statusName:i.statusName||i.status_name||""}:null}function za(i,r){for(const l of r){const c=Number(i==null?void 0:i[l]);if(Number.isFinite(c))return c}return 0}function ze(...i){return za(ln.value,i)}function Ln(i=[],r=2){const l=[...new Set(i.map(c=>String(c||"").trim()).filter(Boolean))];return l.length?l.length<=r?l.join("、"):`${l.slice(0,r).join("、")}等${l.length}个乡镇`:"暂无"}function wo(){const i=Nt.value;if(i.length)return{name:Ln(i,1),desc:"年度防疫覆盖需补强",level:"watch"};const r=Vt.value.filter(c=>Number(c.earTagCount||c.recordCount||0)>0).sort((c,p)=>Number(c.earTagCount||c.recordCount||0)-Number(p.earTagCount||p.recordCount||0)),l=r[0];return l?{name:l.name,desc:`${ie(l.earTagCount||l.recordCount)}头,建议补免回访`,level:r.length>=2?"watch":"normal"}:{name:"暂无",desc:"等待年度防疫记录形成",level:"normal"}}function Lo(){const i=Nt.value;if(i.length)return i.slice(0,4).map((c,p)=>({key:`missing-${c}`,name:c,value:Math.max(25,100-p*12),label:"待补免",level:"watch"}));const r=Vt.value.filter(c=>Number(c.earTagCount||c.recordCount||0)>0);if(!r.length)return[{key:"empty",name:"暂无",value:0,label:"待开展",level:"watch"}];const l=r.reduce((c,p)=>c+Number(p.earTagCount||0),0)/r.length||1;return[...r].sort((c,p)=>Number(c.earTagCount||0)-Number(p.earTagCount||0)).slice(0,4).map(c=>{const p=Number(c.earTagCount||c.recordCount||0),y=Math.max(8,Math.round((l-p)/l*100));return{key:`weak-${c.name}`,name:c.name,value:Math.min(100,y),label:`${ie(p)}头`,level:y>=35?"watch":"normal"}})}function To(){const r=(vi.value.length?vi.value:Vt.value).map((p,y)=>{const w=Qe(p.name),T=Number(p.earTagCount||0),F=Number(p.recordCount||p.value||0),_=T||Math.round(F/xt.value);return{key:p.key||`${w}-${y}`,name:w,value:_,recordCount:F,isMissing:!1}}).filter(p=>p.name&&Number.isFinite(p.value)),c=[...Nt.value.map((p,y)=>({key:`missing-${p}-${y}`,name:p,value:0,recordCount:0,isMissing:!0})),...r];return c.length?c.sort((p,y)=>p.isMissing!==y.isMissing?p.isMissing?-1:1:Number(p.value||0)-Number(y.value||0)).slice(0,7):[{key:"empty",name:"待开展",value:0,recordCount:0,isMissing:!0}]}function So(){var r;const i=rn.value.map((l,c)=>({key:l.key||`${l.town}-${l.village}-${c}`,name:l.village||l.name,town:l.town,value:Number(l.earTagCount||l.value||0)})).filter(l=>l.name&&Number.isFinite(l.value)&&l.value>0);return i.length?i.sort((l,c)=>c.value-l.value).slice(0,9):St((r=we.value)==null?void 0:r.villageCounts).map((l,c)=>({key:l.key||`${l.name}-${c}`,name:l.name,town:"",value:Math.round(Number(l.value||0)/xt.value)})).filter(l=>l.name&&Number.isFinite(l.value)&&l.value>0).sort((l,c)=>c.value-l.value).slice(0,9)}function Mo(){if(!mt.value)return{level:"watch",title:"年度待开展",desc:"年度免疫记录暂未形成",advice:"建议先核查年度免疫计划与乡镇推进节奏。"};const i=ls.value,r=Ia.value;return Nt.value.length?{level:"watch",title:"补免待核查",desc:`乡镇覆盖${et(i)},${r.name}需补强`,advice:`优先核查${Ln(Nt.value,1)}免疫进度。`}:i>=90&&xt.value>=4?{level:"stable",title:"运行平稳",desc:`乡镇覆盖${et(i)},疫苗谱较完整`,advice:"建议保持当前免疫节奏,持续跟踪补免回访。"}:{level:"normal",title:"均衡回访",desc:`${r.name}相对偏低,适合继续跟进`,advice:`关注${r.name}补免回访,保持覆盖均衡。`}}function ko(){return[{key:"latest",name:"最近免疫",value:nn.value,desc:"最后作业时间",level:nn.value==="-"?"watch":"stable",color:"#8bf7ff"},{key:"top-town",name:"高频乡镇",value:rs.value,desc:"年度作业集中区",level:"normal",color:"#30dcff"},{key:"vaccine",name:"主用疫苗",value:is.value,desc:`${xt.value}类疫苗`,level:"normal",color:"#8bf7ff"}]}function Po(){const i=ze("headCount","totalHeads","total_heads"),r=_a.value,l=r.reduce((de,De)=>de+Number(De.headCount||0),0)||i||1,c=r[0],p=c?Number(c.headCount||0)/l*100:0,y=Li.value.filter(de=>de.name&&de.name!=="未填写").sort((de,De)=>Number(De.headCount||0)-Number(de.headCount||0)),w=y.reduce((de,De)=>de+Number(De.headCount||0),0)||i||1,T=y[0],F=T?Number(T.headCount||0)/w*100:0,A=bs.value.filter(de=>de.name&&de.name!=="未填写").sort((de,De)=>Number(De.headCount||De.recordCount||0)-Number(de.headCount||de.recordCount||0))[0],Y=ze("vehicleCount","vehicle_count","transportVehicleCount","transport_vehicle_count"),X=Y>0?i/Y:0,D=ze("outProvinceHeads","out_province_heads","aCertHeads","a_cert_heads"),Q=ze("inProvinceHeads","in_province_heads","bCertHeads","b_cert_heads"),Ne=D+Q||i||1,lt=D?D/Ne*100:0;return[{key:"town",name:"高频出栏乡镇",value:(c==null?void 0:c.displayName)||(c==null?void 0:c.name)||"暂无",desc:c?`${ie(c.headCount)}头,占${et(p)}`:"等待来源乡镇数据",level:p>=35?"high":p>=24?"watch":"normal",color:"#63d7ff"},{key:"usage",name:"交易用途集中度",value:(T==null?void 0:T.name)||"暂无",desc:T?`占${et(F)}`:"等待用途结构数据",level:F>=60?"high":F>=45?"watch":"normal",color:"#30dcff"},{key:"vehicle",name:A?"运输车辆高频":"车辆周转强度",value:A?`${ie(A.headCount||A.recordCount)}${A.headCount?"头":"条"}`:Y?`车均${K(X)}头`:"--",desc:A?"已接入车辆聚合,明细在台账核查":Y?`${K(Y)}辆参与流通`:"等待车辆聚合数据",level:A||X>=260?"watch":"normal",color:"#48cfff"},{key:"cert-dest",name:"证照/去向线索",value:D?et(lt):"--",desc:D?`省外流通${ie(D)}头`:"等待证照去向数据",level:lt>=55?"high":lt>=35?"watch":"normal",color:"#48cfff"}].map(de=>$(N({},de),{badge:de.level==="high"?"重点":de.level==="watch"?"关注":"平稳"}))}function Bi(i={}){return String(i.imagePaths||"").split(";").map(r=>r.trim()).filter(Boolean)}function Tn(i){const l=String(i||"").replace(/^images\//,"").split("/").map(encodeURIComponent).join("/");return`${Hd}/${l}`}function Co(i){Ze.value=Tn(i),Be.value=!0}function Ai(){Be.value=!1,Ze.value=""}function ae(i){return i==null||i===""?"-":i}function Fo(i){const r=String(i!=null?i:"").trim();return!!(r&&r!=="-")}function Me(i,r,l={}){return Fo(r)?N({label:i,value:r},l):null}function Rt(i){return i?String(i).slice(0,10):"-"}function Sn(i){const r=String(i||"").trim();return r?r.length<7?r:`${r.slice(0,3)}****${r.slice(-4)}`:"-"}function xo(i){const r=String(i||"").trim();return r?r.length<=4?r:`****${r.slice(-4)}`:"-"}function No(i){const r=String(i!=null?i:"").trim();if(!r)return"-";if(/kg|公斤|千克/i.test(r))return r;const l=Number(r);return Number.isFinite(l)?`${K(l)}kg`:r}function Ro(i){return String(i!=null?i:"").trim()||"-"}function Mn(i={}){return i.certScopeName||i.certType||"-"}function Io(){return he(this,null,function*(){var c,p;pt.value=!0,Ye.value="";const[i,r,l]=yield Promise.allSettled([tu(),au(),iu()]);i.status==="fulfilled"&&((c=i.value)!=null&&c.length)&&(Pt.value=Ol(i.value.map(y=>({name:gr(y.name),count:Number(y.value)})).filter(y=>y.name&&Number.isFinite(y.count)))),r.status==="fulfilled"&&((p=r.value)!=null&&p.length)&&(Ut.value=r.value.map(y=>({month:y.name,count:Number(y.value),speed:Qo(y.extra)})).filter(y=>y.month&&Number.isFinite(y.count))),l.status==="fulfilled"?(vt.value=Ko(l.value),vt.value.length||(Ye.value="结构数据暂无数据")):(Ye.value=Jo(l.reason,"结构数据异常"),vt.value=[]),pt.value=!1})}function kn(){return he(this,arguments,function*(i=ye.value){var r,l,c,p,y,w;Bt.value=!0,ot.value="";try{(l=(r=ge.value)==null?void 0:r.years)!=null&&l.length||(ge.value=yield nu());const T=mn((c=ge.value)==null?void 0:c.years),F=Number(((p=ge.value)==null?void 0:p.latestYear)||((y=ge.value)==null?void 0:y.latest_year)||T[T.length-1]),_=Number(i||ye.value||F||T[T.length-1]);ye.value=_;let A=yield vr({year:_});const Y=(w=A==null?void 0:A.hasData)!=null?w:A==null?void 0:A.has_data,X=Number((A==null?void 0:A.latestYear)||(A==null?void 0:A.latest_year)||F);Y===!1&&X&&X!==_&&(ye.value=X,A=yield vr({year:X})),te.value=A||{metrics:{},hasData:!1},yield Ei(1)}catch(T){ot.value="交易数据接口异常",te.value={metrics:{},hasData:!1},He.value=[],st.value=0}finally{Bt.value=!1}})}function Ei(){return he(this,arguments,function*(i=Xe.value){var l,c;if(!ye.value)return;const r={year:ye.value,page:i,pageSize:Hi,keyword:ii.value};try{const p=yield wr(r);He.value=wn(p.rows),st.value=Number(((l=p.page)==null?void 0:l.totalCount)||p.totalCount||He.value.length||0),Xe.value=Number(((c=p.page)==null?void 0:c.page)||i||1)}catch(p){ot.value=ot.value||"交易台账接口异常",He.value=[],st.value=0}})}function Go(i){const r=Number(i);!Number.isFinite(r)||r===Number(ye.value)||(ye.value=r,Xe.value=1,Ta.value="",ii.value="",kn(r))}function _o(i){const r=xi(i);r!==Number(ce.value)&&(ce.value=r,xe.value=1,je.value="",rt.value="",J.value=1,me.value=$a(),Gn(r))}function Pn(){ii.value=Ta.value.trim(),Ei(1)}function Cn(i){const r=Math.min(Math.max(Number(i)||1,1),Ti.value);Ei(r)}function Fn(i=null){ni.value=!0,i&&(Ma.value=i),Da(i?Xe.value:1,i)}function xn(){ni.value=!1}function Nn(){Da(1)}function Bo(){ft.value={keyword:"",startTown:"",usageType:"",certType:""},Da(1)}function Rn(i){const r=Math.min(Math.max(Number(i)||1,1),Si.value);Da(r)}function Da(){return he(this,arguments,function*(i=Et.value,r=null){var p,y;if(!ye.value)return;ri.value=!0,si.value="";const l=ft.value,c={year:ye.value,page:i,pageSize:Vr,keyword:l.keyword.trim(),startTown:l.startTown,usageType:l.usageType,certType:l.certType};try{const w=yield wr(c);At.value=wn(w.rows),Sa.value=Number(((p=w.page)==null?void 0:p.totalCount)||w.totalCount||At.value.length||0),Et.value=Number(((y=w.page)==null?void 0:y.page)||i||1);const T=r?r.certId||r.factoryCode:"",F=T?At.value.find(_=>(_.certId||_.factoryCode)===T)||r:At.value[0]||null;In(F)}catch(w){si.value="交易台账接口异常",At.value=[],Sa.value=0,Ma.value=null}finally{ri.value=!1}})}function In(i){Ma.value=i||null}function Ao(i){i!=null&&i.startTown&&(W.value="trade",Yt(()=>{var r,l,c,p,y,w;(l=(r=Ve.value)==null?void 0:r.resume)==null||l.call(r),(p=(c=Ve.value)==null?void 0:c.refreshView)==null||p.call(c),(w=(y=Ve.value)==null?void 0:y.focusTown)==null||w.call(y,Qe(i.startTown),{distanceScale:.78,duration:.8})}))}function Gn(){return he(this,arguments,function*(i=ce.value){var T;const r=xi(i),l=Ni(r);ce.value=r,M.value=!0,v.value="";const[c,p,y,w]=yield Promise.allSettled([ru(l),Yi(N({page:xe.value,pageSize:ei,keyword:rt.value},l)),su({year:r}),ou()]);if(c.status==="fulfilled"?we.value=c.value||{metrics:{}}:(v.value="防疫统计接口异常",we.value={metrics:{}}),p.status==="fulfilled"){const F=p.value||{};$e.value=_i(F.rows),nt.value=Number(((T=F.page)==null?void 0:T.totalCount)||F.totalCount||$e.value.length||0)}else v.value=v.value||"防疫台账接口异常",$e.value=[],nt.value=0;y.status==="fulfilled"?Ct.value=po(y.value):Ct.value={rows:[],year:null},w.status==="fulfilled"?it.value=fo(we.value,w.value):it.value={rows:[]},M.value=!1})}function _n(){return he(this,arguments,function*(i=xe.value){var c,p;M.value=!0,v.value="";const r=Math.min(Math.max(Number(i)||1,1),wi.value),l=Ni(ce.value);try{const y=yield Yi(N({page:r,pageSize:ei,keyword:rt.value},l));$e.value=_i(y.rows),nt.value=Number(((c=y.page)==null?void 0:c.totalCount)||y.totalCount||$e.value.length||0),xe.value=Number(((p=y.page)==null?void 0:p.page)||r||1)}catch(y){v.value="防疫台账接口异常",$e.value=[],nt.value=0,xe.value=1}finally{M.value=!1}})}function Bn(){rt.value=je.value.trim(),me.value=$(N({},$a()),{keyword:rt.value}),_n(1)}function An(i){_n(i)}function En(i=null){G.value=!0,i&&(Ce.value=i,_e.value=null),Oa(1,i)}function $n(){G.value=!1,Ai()}function Vn(){Oa(1)}function Eo(){me.value=$a(),Oa(1)}function zn(i){Oa(i)}function Oa(){return he(this,arguments,function*(i=J.value,r=null){var y,w;fe.value=!0,Ge.value="";const l=me.value,c=Ni(ce.value),p={keyword:l.keyword.trim(),town:l.town,medicine:l.medicine,startDate:l.startDate||c.startDate,endDate:l.endDate||c.endDate,page:i,pageSize:$r};try{const T=yield Yi(p);V.value=_i(T.rows),U.value=Number(((y=T.page)==null?void 0:y.totalCount)||T.totalCount||V.value.length||0),J.value=Number(((w=T.page)==null?void 0:w.page)||i||1);const F=r||V.value[0]||null;F?Dn(F):(Ce.value=null,_e.value=null)}catch(T){Ge.value="台账接口异常",V.value=[],U.value=0}finally{fe.value=!1}})}function Dn(i){return he(this,null,function*(){if(Ce.value=i,_e.value=null,!(i!=null&&i.earTag)&&!(i!=null&&i.epidemicId))return;const r=++Ca;Ke.value=!0;try{const l=yield lu(i.earTag||i.epidemicId);r===Ca&&(_e.value=vn(l)||i)}catch(l){r===Ca&&(_e.value=i)}finally{r===Ca&&(Ke.value=!1)}})}function $o(){var i;oi=new Ql,li=!1,(i=oi.ready)==null||i.then(()=>{li=!0,da()}).catch(()=>{$t.value=!0})}function da(){ca||!a.active||!li||wt||(wt=!0,Lt&&window.clearTimeout(Lt),Lt=window.setTimeout(()=>{Lt=null,On()},600))}function On(i=0){return he(this,null,function*(){var l,c;if(ca)return;if(!a.active){wt=!1;return}if(yield Yt(),!a.active){wt=!1;return}const r=Ve.value;if((l=r==null?void 0:r.loadMap)==null||l.call(r,oi),r!=null&&r.canvasMap){wt=!1,$t.value=!0,(c=r.play)==null||c.call(r);return}if(i<24){window.setTimeout(()=>On(i+1),120);return}wt=!1})}function Wn(i={}){ua.value={type:i.type||"idle",text:i.text||""}}function Vo(){oa.value=!0}function Yn(i={}){la.value={type:i.type||"idle",text:i.text||"",loaded:i.loaded,failed:i.failed,total:i.total,zoom:i.zoom,tileUrlTemplate:i.tileUrlTemplate}}function zo(){if(W.value==="epidemic"){n("module-stats",{moduleKey:"yak-management",items:[{zh:"防疫记录",value:mt.value,unit:"条"},{zh:"防疫耳标",value:bi.value,unit:"头"},{zh:"疫苗类型",value:xt.value,unit:"类"},{zh:"涉及村数",value:ns.value,unit:"个"}]});return}if(W.value==="forecast"){const i=Je.value.stock-ct;n("module-stats",{moduleKey:"yak-management",items:[{zh:"预测期末存栏",value:Je.value.stock,unit:"头"},{zh:"新生牛犊",value:Je.value.births,unit:"头"},{zh:"出栏流出",value:Je.value.outflow,unit:"头"},{zh:"预测净变化",value:i,unit:"头"}]});return}if(W.value==="trade"){n("module-stats",{moduleKey:"yak-management",items:[{zh:"流通总量",value:ze("headCount"),unit:"头"},{zh:"出证记录",value:ze("recordCount"),unit:"条"},{zh:"运输车辆",value:ze("vehicleCount"),unit:"辆"}]});return}n("module-stats",{moduleKey:"yak-management",items:[{zh:"图像识别总数",value:Wl,unit:"头"},{zh:"模型修正总数",value:Ur.value,unit:"头"},{zh:"当前存栏数量",value:ct,unit:"头"}]})}function $i(i,r,l,c={}){const p=c.labelKey||"name",y=c.colors||R,w=Math.max(...i.map(D=>Number(D[r]||0)),1),T=i.length>8,F=c.style==="ladder",_=T?F?7:6:i.length>6?11:13,A=["#30dcff","#58d9ff","#8bf7ff","#48cfff","#16b6e8","#b9fbff"],Y=c.axisTextColor||m,X=c.dimAxisTextColor||C;return{tooltip:$(N({},Le()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(D){if(c.tooltipFormatter)return c.tooltipFormatter(D[0]);const Q=i[D[0].dataIndex];return`${Q[p]}
    数值:${K(Q[r])}${l}`}}),grid:{left:T?58:74,right:T?54:58,top:T?6:16,bottom:T?8:14},xAxis:{type:"value",axisLabel:{color:X,fontSize:10,formatter:l==="%"?"{value}%":ie},axisLine:{show:!1},axisTick:{show:!1},splitLine:{lineStyle:{color:x,type:"dashed"}}},yAxis:{type:"category",inverse:!0,data:i.map(D=>D[p]),axisLabel:{color:Y,fontSize:T?10:11,fontWeight:700,interval:0},axisLine:{show:!1},axisTick:{show:!1}},series:[{type:"bar",barWidth:_,barGap:"-100%",data:i.map((D,Q)=>({value:D[r],itemStyle:{borderRadius:F?[1,10,10,1]:[0,7,7,0],color:Do(F?A[Q%A.length]:y[Q%y.length],F),shadowBlur:F?3:0,shadowColor:F?"rgba(48, 220, 255, 0.16)":"transparent"}})),showBackground:!0,backgroundStyle:{color:F?"rgba(48, 220, 255, 0.05)":"rgba(48, 220, 255, 0.07)",borderRadius:F?[1,10,10,1]:[0,7,7,0]},label:{show:!0,position:"right",color:L,fontFamily:Di.number,fontSize:T?10:ur.chartLabel,fontWeight:700,formatter:({value:D})=>`${l==="%"?et(D):ie(D)}`},markLine:c.showAverage===!1?void 0:{silent:!0,symbol:"none",label:{show:!1},lineStyle:{color:"rgba(139, 247, 255, 0.22)",type:"dashed",width:1},data:[{xAxis:Math.round(w*.72)}]}},...F?[{type:"pictorialBar",symbol:"rect",symbolSize:[2,_+5],symbolOffset:[0,0],symbolPosition:"end",z:4,data:i.map((D,Q)=>({value:D[r],itemStyle:{color:L,opacity:Q<3?.82:.56,shadowBlur:2,shadowColor:"rgba(139, 247, 255, 0.16)"}}))}]:[]]}}function Do(i,r=!1){return new Ae(0,0,1,0,[{offset:0,color:r?`${i}22`:"rgba(48, 220, 255, 0.12)"},{offset:.64,color:r?i:`${i}cc`},{offset:1,color:i}])}function jn(i,r,l,c=0,p=!1){return{name:i,type:"line",yAxisIndex:c,smooth:!0,symbolSize:5,data:r,lineStyle:{width:2.5,color:l},itemStyle:{color:l},areaStyle:p?{color:new Ae(0,0,0,1,[{offset:0,color:`${l}44`},{offset:1,color:`${l}05`}])}:void 0}}function Oo(i){return ui.find(r=>r.key===i)||ui[2]}function Wo(i,r="month"){if(r==="month")return Yl(i);const l=jl(i),c=Math.max(1,Math.round(Math.max(1,l-1)*30)),p=r==="week"?7:1,y=Math.ceil(c/p)+1,w=Array.from({length:y},(A,Y)=>{const X=Math.min(c,Y*p);return Hl(X)}),T=w.map((A,Y)=>{const D=Math.min(c,Y*p)/c,Q=Math.sin(Y/(r==="week"?1.8:8.5))*Math.sin(Math.PI*D)*Math.min(360,i.months*18);return Math.round(ct+(i.stock-ct)*D+Q)}),F=w.map((A,Y)=>{const X=Math.min(c,Y*p)/c;return Math.round(i.births*X)}),_=w.map((A,Y)=>{const X=Math.min(c,Y*p)/c;return Math.round(i.outflow*X)});return{labels:w,stock:T,births:F,outflow:_}}function Yo(i,r){return r==="day"?Math.max(10,Math.ceil(i/6)):r==="week"?Math.max(2,Math.ceil(i/7)):i>24?4:i>14?2:1}function jo(i,r){return r==="day"?i>700?2:i>360?3:4:r==="week"?i>110?4:6:i>24?7:10}function Ho(i){return(i.labels||[]).map((r,l)=>{var A,Y,X,D,Q,Ne;const c=Number(((A=i.stock)==null?void 0:A[Math.max(l-1,0)])||0),p=Number(((Y=i.stock)==null?void 0:Y[l])||c),y=Math.max(0,Number(((X=i.births)==null?void 0:X[l])||0)-Number(((D=i.births)==null?void 0:D[Math.max(l-1,0)])||0)),w=Math.max(0,Number(((Q=i.outflow)==null?void 0:Q[l])||0)-Number(((Ne=i.outflow)==null?void 0:Ne[Math.max(l-1,0)])||0)),T=Math.max(120,Math.round((y+w)*.18)),F=Math.max(c,p)+Math.max(T,Math.round(y*.32)),_=Math.max(0,Math.min(c,p)-Math.max(T,Math.round(w*.32)));return{label:r,open:c,close:p,low:_,high:F,birth:y,outflow:w,value:[c,p,_,F]}})}function qo(i,r){const l=new Map;return i.forEach(c=>{const p=Uo(c.name);if(!p)return;const y=l.get(p)||{name:p,value:0};y.value+=Number(c[r]||0),l.set(p,y)}),[...l.values()].sort((c,p)=>p.value-c.value)}function Uo(i){return{色地镇:"色地镇",瓦切镇:"瓦切镇",安曲镇:"安曲镇",龙日镇:"龙日镇",邛溪镇:"邛溪镇",刷经寺镇:"刷经寺镇",阿木乡:"阿木乡",查尔玛乡:"查尔玛乡",江茸乡:"江茸乡",麦洼乡:"麦洼乡"}[i]||""}function Le(i){return{trigger:"item",backgroundColor:"rgba(5, 31, 51, 0.96)",borderColor:"rgba(0, 210, 255, 0.54)",borderWidth:1,padding:[7,10],textStyle:{color:m,fontFamily:Di.ui,fontSize:ur.tooltip,lineHeight:18},extraCssText:"box-shadow:0 0 10px rgba(0,210,255,.12);",formatter:i}}function Vi(i){return bt.some(r=>r.key===i)?i:"structure"}function Ko(i=[]){return i.map((r,l)=>{var y,w,T,F;const c=String(r.name||r.label||r.type||`结构${l+1}`).trim(),p=Hn((w=(y=r.value)!=null?y:r.count)!=null?w:r.number);return{key:r.key||r.id||`${c}-${l}`,name:c,count:p,ratio:Number((F=(T=r.ratio)!=null?T:r.percent)!=null?F:0),source:r.source||"结构统计"}}).filter(r=>r.name&&r.count>0)}function Zo(i=[],r=[]){const l=i.some(p=>Zn(p))?i:r,c=Kn(l,r).map((p,y)=>{var F,_;const w=String(p.name||p.label||`结构${y+1}`).trim(),T=Hn((_=(F=p.count)!=null?F:p.value)!=null?_:p.number);return $(N({},p),{key:p.key||`${w}-${y}`,name:w,count:T})}).filter(p=>p.name&&p.count>0);return Xo(c,ct)}function Xo(i=[],r=ct){const l=i.reduce((y,w)=>y+Number(w.count||0),0);if(!l||!r)return i;const c=i.map((y,w)=>{const T=Number.isFinite(Number(y.ratio))&&Number(y.ratio)>0?Number(y.ratio):Number(y.count||0)/l*100,F=r*T/100;return $(N({},y),{index:w,ratio:T,count:Math.floor(F),remainder:F-Math.floor(F)})});let p=r-c.reduce((y,w)=>y+w.count,0);return c.slice().sort((y,w)=>w.remainder-y.remainder||y.index-w.index).forEach(y=>{p<=0||(y.count+=1,p-=1)}),c.map(F=>{var _=F,{index:y,remainder:w}=_,T=ar(_,["index","remainder"]);return $(N({},T),{ratio:Number(T.ratio.toFixed(1))})})}function Hn(i){const r=Number(String(i!=null?i:"").replace(/,/g,"").replace(/%/g,""));return Number.isFinite(r)&&r>0?Math.round(r):0}function Jo(i,r){const l=String((i==null?void 0:i.message)||i||"");return/未登录|401|HTTP_401/.test(l)?"结构数据未就绪":/超时|timeout/i.test(l)?"结构数据加载超时":r}function Qo(i){const r=String(i||"").match(/-?\d+(?:\.\d+)?/);return r?Number(r[0]):0}function K(i){const r=Number(i);return Number.isFinite(r)?r.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(r)?0:2}):"--"}function ie(i){const r=Number(i);return Number.isFinite(r)?Math.abs(r)>=1e4?`${(r/1e4).toFixed(Math.abs(r)>=1e5?0:1)}万`:Math.round(r).toLocaleString("zh-CN"):"--"}function Wa(i,r=2){const l=Number(i);return Number.isFinite(l)?`${(l/1e4).toFixed(r)}万`:"--"}function et(i){const r=Number(i);return Number.isFinite(r)?`${Number.isInteger(r)?r:r.toFixed(1)}%`:"--"}function Dt(i,r,l,c){const p=c*Math.PI/180;return{x:Number((i+l*Math.cos(p)).toFixed(2)),y:Number((r+l*Math.sin(p)).toFixed(2))}}function el(i,r,l,c,p,y){const w=Dt(i,r,c,p),T=Dt(i,r,c,y),F=Dt(i,r,l,y),_=Dt(i,r,l,p),A=y-p>180?1:0;return[`M ${w.x} ${w.y}`,`A ${c} ${c} 0 ${A} 1 ${T.x} ${T.y}`,`L ${F.x} ${F.y}`,`A ${l} ${l} 0 ${A} 0 ${_.x} ${_.y}`,"Z"].join(" ")}function qn(i=[]){return i.reduce((r,l)=>{const c=ba.find(p=>p.key===l);return r+Number((c==null?void 0:c.ratio)||0)},0)}function Un(){return[{key:"fertileCow",name:"适龄能繁母牛",color:"#30dcff",matcher:(i,r)=>i==="fertileCow"||r.includes("适龄能繁母牛")},{key:"meatBull",name:"麦洼公牦牛",color:"#48cfff",matcher:(i,r)=>i==="meatBull"||r.includes("肉公牛")||r.includes("麦洼公牦牛")},{key:"breedingBull",name:"种公牛",color:"#58d9ff",matcher:(i,r)=>i==="breedingBull"||r.includes("种公牛")},{key:"femaleCalf",name:"母犊牛",color:"#30dcff",matcher:(i,r)=>i==="femaleCalf"||r.includes("母犊牛")},{key:"maleCalf",name:"公犊牛",color:"#8bf7ff",matcher:(i,r)=>i==="maleCalf"||r.includes("公犊牛")},{key:"overageCow",name:"过龄能繁母牛",color:"#48cfff",matcher:(i,r)=>i==="overageCow"||r.includes("过龄能繁母牛")}]}function tl(i=[]){const r=i.reduce((c,p)=>c+Number(p.count||0),0)||1;return[{key:"female",group:"性别",name:"母牛合计",color:"#8bf7ff",matcher:(c,p)=>["fertileCow","femaleCalf","overageCow"].includes(c)||p.includes("母")},{key:"male",group:"性别",name:"公牛合计",color:"#30dcff",matcher:(c,p)=>["meatBull","breedingBull","maleCalf"].includes(c)||p.includes("公")||p.includes("肉牛")},{key:"calf",group:"阶段",name:"犊牛合计",color:"#8bf7ff",matcher:(c,p)=>["femaleCalf","maleCalf"].includes(c)||p.includes("犊牛")},{key:"breeding-cow",group:"阶段",name:"能繁母牛",color:"#48cfff",matcher:(c,p)=>["fertileCow","overageCow"].includes(c)||p.includes("能繁母牛")}].map(c=>{const p=i.filter(y=>c.matcher(String(y.key||""),String(y.name||""))).reduce((y,w)=>y+Number(w.count||0),0);return{key:c.key,group:c.group,name:c.name,color:c.color,count:p,percent:p/r*100}})}function Kn(i=[],r=[]){const c=i.some(w=>Zn(w))?i:r,p=c.reduce((w,T)=>w+Number(T.count||0),0)||ct||1;return Un().map(w=>{const T=c.filter(A=>w.matcher(String(A.key||""),String(A.name||""))),F=T.reduce((A,Y)=>A+Number(Y.count||0),0),_=T.length===1?Number(T[0].ratio):Number.NaN;return{key:w.key,name:w.name,color:w.color,count:F,percent:Number.isFinite(_)&&_>0?_:F/p*100}}).filter(w=>w.count>0||w.percent>0)}function Zn(i={}){const r=String(i.key||""),l=String(i.name||"");return Un().some(c=>c.matcher(r,l))}function al(i=[],r=[]){const c=i.some(w=>il(w))?i:r,p=c.reduce((w,T)=>w+Number(T.count||0),0)||1,y=(w,T,F,_,A)=>{const Y=c.filter(Q=>_(String(Q.key||""),String(Q.name||""))),X=Y.reduce((Q,Ne)=>Q+Number(Ne.count||0),0),D=Y.length===1?Number(Y[0].ratio):Number.NaN;return{key:w,name:T,color:F,count:X,percent:Number.isFinite(D)&&D>0?D:X/p*100,desc:A}};return[y("fertile-cow","适龄能繁母牛","#30dcff",(w,T)=>w==="fertileCow"||T.includes("适龄能繁母牛"),"繁殖基础"),y("calf","犊牛合计","#8bf7ff",(w,T)=>["femaleCalf","maleCalf"].includes(w)||T.includes("犊牛"),"新生补充"),y("overage-cow","过龄能繁母牛","#30dcff",(w,T)=>w==="overageCow"||T.includes("过龄能繁母牛"),"更新压力"),y("breeding-bull","种公牛配比","#48cfff",(w,T)=>w==="breedingBull"||T.includes("种公牛"),"配种支撑")]}function il(i={}){const r=String(i.key||""),l=String(i.name||"");return["fertileCow","femaleCalf","maleCalf","overageCow","breedingBull"].includes(r)||l.includes("适龄能繁母牛")||l.includes("犊牛")||l.includes("过龄能繁母牛")||l.includes("种公牛")}function nl(i=[]){const r=w=>{var T;return Number(((T=i.find(F=>F.key===w))==null?void 0:T.percent)||0)},l=r("fertile-cow"),c=r("calf"),p=r("overage-cow"),y=r("breeding-bull");return l>=40&&c>=25&&y>=2&&y<=5&&p<=10?{label:"结构健康",title:"繁殖基础稳定",summary:"适龄母牛足,犊牛补充稳",note:"保持适龄能繁母牛、犊牛补充与种公牛配置稳定。"}:c<25?{label:"结构健康",title:"犊牛补充需关注",summary:"繁殖基础稳定,补充端可优化",note:"关注犊牛成活和季节性补栏,保持生产连续性。"}:y<2?{label:"结构健康",title:"繁殖基础总体稳定",summary:"适龄母牛基础较稳",note:"结合实际配种需求,平稳优化公牛配置。"}:{label:"结构健康",title:"生产阶段较均衡",summary:"繁殖群和犊牛补充连续支撑",note:"延续结构管理,优先保障适龄母牛与犊牛质量。"}}function rl(i){const r=Number((i==null?void 0:i.count)||0);return Math.max(8,Math.min(100,r/Jr.value*100))}function sl(i={}){const r=ct,l=[{key:"births",name:"新生牛犊",delta:Number(i.births||0),color:"#30dcff"},{key:"outflow",name:"出栏流出",delta:-Number(i.outflow||0),color:"#48cfff"},{key:"correction",name:"修正损耗",delta:Number(i.correction||0),color:"#8bf7ff"}];let c=r;const p=[{key:"current",name:"当前存栏",type:"anchor",value:r,magnitude:r,from:r,to:r,color:"#30dcff",display:`${Wa(r,2)}头`}];l.forEach(T=>{const F=c,_=c+T.delta;c=_,p.push($(N({},T),{name:`${T.delta>=0?"+":"-"}${T.name}`,type:"delta",from:F,to:_,value:T.delta,magnitude:Math.abs(T.delta),display:`${ol(T.delta)}头`}))});const y=Number(i.stock||c);p.push({key:"final",name:"=期末预测",type:"final",value:y,magnitude:y,from:y,to:y,color:"#48cfff",display:`${Wa(y,2)}头`});const w=Math.max(...p.map(T=>Number(T.magnitude)||0),1);return p.map(T=>{const F=(Number(T.magnitude)||0)/w*100;return $(N({},T),{left:0,width:Math.max(T.type==="delta"?5:10,Math.min(100,F))})})}function Ya(i){const r=Number(i);return Number.isFinite(r)?`${r>=0?"+":"-"}${K(Math.abs(r))}`:"--"}function ol(i){const r=Number(i);return Number.isFinite(r)?`${r>=0?"+":"-"}${Wa(Math.abs(r))}`:"--"}return(i,r)=>(I(),B("div",Wu,[tt((I(),Ha(Ou,{key:qr.value,ref_key:"mapSceneRef",ref:Ve,class:"yak-map-scene","active-layer":Is.value,"map-ranking":Gs.value,"tile-url-template":Xi.value,"use-satellite-base":ci.value,"satellite-max-zoom":21,"admin-boundary-line-scale":1.35,onLayerStatus:Wn,onTileStatus:Yn},null,8,["active-layer","map-ranking","tile-url-template","use-satellite-base"])),[[hl,!Tt.value]]),Tt.value?(I(),Ha(eu,{key:Zi.value,ref_key:"yakOlMapRef",ref:sa,class:"yak-ol-map-layer",active:a.active&&Tt.value,"tile-url-template":Xi.value,center:Rs.value,"initial-zoom":Ud,"county-view-target-offset":se,"auto-apply-layer-map-view":!1,"max-zoom":21,"overlay-layer":hn.value,onReady:Vo,onLayerStatus:Wn,onTileStatus:Yn},null,8,["active","tile-url-template","center","overlay-layer"])):ke("",!0),f("div",{class:Oe(["yak-map-scrim",{"is-ol-map":Tt.value}])},null,2),_s.value?(I(),B("div",Yu,P(Bs.value),1)):ke("",!0),f("div",ju,[W.value==="trade"&&un.value.length?(I(),B("div",Hu,[r[23]||(r[23]=f("span",null,"交易年份",-1)),(I(!0),B(ne,null,pe(un.value,l=>(I(),B("button",{key:l,type:"button",class:Oe({active:Number(l)===Number(ye.value)}),onClick:c=>Go(l)},P(l),11,qu))),128))])):ke("",!0),W.value==="epidemic"&&Ue.length?(I(),B("div",Uu,[r[24]||(r[24]=f("span",null,"防疫年份",-1)),(I(),B(ne,null,pe(Ue,l=>f("button",{key:l,type:"button",class:Oe({active:Number(l)===Number(ce.value)}),onClick:c=>_o(l)},P(l),11,Ku)),64))])):ke("",!0),W.value==="forecast"?(I(),B("div",Zu,[r[25]||(r[25]=f("span",null,"预测年份",-1)),(I(!0),B(ne,null,pe(j(Gt),l=>(I(),B("button",{key:l.key,type:"button",class:Oe({active:l.key===Ee.value}),onClick:c=>ro(l.key)},P(l.shortLabel),11,Xu))),128))])):ke("",!0),f("div",Ju,[f("div",Qu,[W.value==="structure"?(I(),B(ne,{key:0},[H(le,{class:"yak-side-card left-card",title:"繁殖基础评估",width:j(s),height:u.value},{default:oe(()=>[f("div",ec,[f("div",tc,[f("strong",null,P(en.value.title)+","+P(en.value.summary),1)]),f("div",ac,[(I(!0),B(ne,null,pe(Qi.value,l=>(I(),B("div",{key:l.key,class:"breeding-health-item",style:Mt({"--health-color":l.color,"--health-width":`${Math.max(5,Math.min(100,l.percent))}%`})},[f("span",null,P(l.name),1),f("strong",null,P(et(l.percent)),1),r[26]||(r[26]=f("i",null,[f("b")],-1)),f("em",null,P(l.desc),1)],4))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"畜群结构占比",width:j(s),height:u.value},{default:oe(()=>[f("div",ic,[f("div",nc,[f("div",rc,[(I(),B("svg",sc,[f("g",oc,[(I(!0),B(ne,null,pe(Qr.value,l=>(I(),B("path",{key:l.key,class:Oe(["structure-rose-segment",{"is-active":l.index===hi.value}]),d:l.path,fill:l.color,stroke:l.color},null,10,lc))),128))]),r[27]||(r[27]=f("circle",{class:"structure-rose-glow",cx:"75",cy:"75",r:"24"},null,-1)),r[28]||(r[28]=f("circle",{class:"structure-rose-hole",cx:"75",cy:"75",r:"16"},null,-1)),r[29]||(r[29]=f("text",{class:"structure-rose-center",x:"75",y:"72","text-anchor":"middle"},"结构",-1)),r[30]||(r[30]=f("text",{class:"structure-rose-center is-sub",x:"75",y:"83","text-anchor":"middle"},"占比",-1))]))]),f("div",uc,[(I(!0),B(ne,null,pe(xa.value,(l,c)=>(I(),B("div",{key:l.key||l.name,class:Oe(["structure-ratio-row",{"is-active":c===hi.value}]),style:Mt({"--row-color":l.color,"--row-percent":`${Math.max(4,l.percent)}%`})},[f("i",{style:Mt({background:l.color,color:l.color})},null,4),f("span",null,[Ot(P(l.name),1),f("small",null,P(et(l.percent)),1)]),f("strong",null,P(ie(l.count)),1),r[31]||(r[31]=f("em",null,"头",-1))],6))),128))])]),pt.value?(I(),B("div",cc,"结构数据加载中")):Ye.value?(I(),B("div",dc,P(Ye.value),1)):ke("",!0)])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"母牛/公牛年龄结构",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Es.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"牦牛乡镇分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:$s.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):W.value==="forecast"?(I(),B(ne,{key:1},[H(le,{class:"yak-side-card left-card",title:"存栏变化拆解",width:j(s),height:u.value},{default:oe(()=>[f("div",hc,[f("div",pc,[f("span",null,P(Je.value.label)+"变化路径",1),f("strong",{class:Oe({positive:di.value>0,negative:di.value<0})},[Ot(" 净变化 "+P(Ya(di.value)),1),r[32]||(r[32]=f("em",null,"头",-1))],2)]),f("div",fc,[(I(!0),B(ne,null,pe(Kr.value,l=>(I(),B("div",{key:l.key,class:Oe(["forecast-waterfall-row",[`is-${l.type}`,{positive:l.delta>0,negative:l.delta<0}]]),style:Mt({"--waterfall-left":`${l.left}%`,"--waterfall-width":`${l.width}%`,"--waterfall-color":l.color})},[f("span",null,P(l.name),1),r[33]||(r[33]=f("i",null,[f("b")],-1)),f("strong",null,P(l.display),1)],6))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"未来存栏趋势",width:j(s),height:u.value},{default:oe(()=>[f("div",mc,[f("div",gc,[(I(),B(ne,null,pe(ui,l=>f("button",{key:l.key,type:"button",class:Oe({active:l.key===kt.value}),onClick:c=>kt.value=l.key},P(l.label),11,yc)),64))]),H(j(Pe),{class:"yak-chart forecast-kline-chart",option:Os.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"月度数量预测",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ws.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"预测因子雷达",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ys.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):W.value==="epidemic"?(I(),B(ne,{key:2},[H(le,{class:"yak-side-card left-card",title:"防疫统计",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Js.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"养殖户防疫排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Qs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"防疫作业趋势",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Xs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"疫苗类型分布",width:j(s),height:u.value},{default:oe(()=>[Ra.value.length?(I(),B("div",bc,[f("div",vc,[(I(),Ha(xl,{key:ts.value,data:Ra.value,delay:3e3,colors:Fe,opacity:.62,class:"epidemic-three-pie"},{default:oe(({data:l})=>[f("div",wc,[f("strong",null,P(ie((l==null?void 0:l.count)||mt.value)),1),f("span",null,P((l==null?void 0:l.name)||"疫苗类型"),1)])]),_:1},8,["data"]))]),f("div",Lc,[(I(!0),B(ne,null,pe(Ra.value,(l,c)=>(I(),B("div",{key:l.key||l.name,class:"epidemic-three-pie-row"},[f("i",{style:Mt({borderColor:Fe[c%Fe.length]})},null,4),f("span",null,P(l.name),1),f("strong",null,P(ie(l.value)),1),f("em",null,P(l.unit),1)]))),128))])])):(I(),B("div",Tc,"暂无疫苗类型数据"))]),_:1},8,["width","height"])],64)):W.value==="trade"?(I(),B(ne,{key:3},[H(le,{class:"yak-side-card left-card",title:"交易异常关注",width:j(s),height:u.value},{default:oe(()=>[f("div",Sc,[f("div",Mc,[f("span",null,P(ye.value)+"年流通监管线索",1),f("strong",null,P(Ms.value),1)]),f("div",kc,[(I(!0),B(ne,null,pe(dn.value,l=>(I(),B("div",{key:l.key,class:Oe(["trade-risk-row",`is-${l.level}`]),style:Mt({"--risk-color":l.color})},[r[34]||(r[34]=f("i",null,null,-1)),f("span",null,[f("em",null,[f("b",null,P(l.badge),1),Ot(P(l.name),1)]),f("small",null,P(l.value)+"|"+P(l.desc),1)])],6))),128))])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"交易流通趋势",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:eo.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"来源乡镇分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:to.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card left-card",title:"用途结构统计",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:ao.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"])],64)):ke("",!0)])]),f("div",Pc,[f("div",Cc,[W.value==="structure"?(I(),B(ne,{key:0},[H(le,{class:"yak-side-card right-card",title:"乡镇存栏排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Vs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"能繁母牛与犊牛分布",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:zs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"出栏/交易影响",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Ds.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"性别与生产阶段汇总",width:j(s),height:u.value},{default:oe(()=>[f("div",Fc,[f("div",xc,[(I(!0),B(ne,null,pe(Ji.value,l=>(I(),B("div",{key:l.key||l.name,class:"structure-summary-row",style:Mt({"--structure-color":l.color,"--structure-width":`${rl(l)}%`})},[f("span",null,[r[35]||(r[35]=f("i",null,null,-1)),Ot(P(l.name),1)]),r[37]||(r[37]=f("b",null,[f("em")],-1)),f("strong",null,[Ot(P(ie(l.count)),1),r[36]||(r[36]=f("em",null,"头",-1))]),f("small",null,P(et(l.percent)),1)],4))),128))]),pt.value?(I(),B("div",Nc,"结构数据加载中")):Ye.value?(I(),B("div",Rc,P(Ye.value),1)):ke("",!0)])]),_:1},8,["width","height"])],64)):W.value==="forecast"?(I(),B(ne,{key:1},[H(le,{class:"yak-side-card right-card",title:"乡镇预测排行",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:js.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"期末结构预测",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:Hs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"补充/流出对比",width:j(s),height:u.value},{default:oe(()=>[H(j(Pe),{class:"yak-chart",option:qs.value,autoresize:!0},null,8,["option"])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card",title:"预测变化热力",width:j(s),height:u.value},{default:oe(()=>[f("div",Ic,[(I(!0),B(ne,null,pe(Us.value,l=>(I(),B("div",{key:l.name,class:Oe(["heat-row",{"is-negative":l.change<0}]),style:Mt(Ks(l)),title:Zs(l)},[f("span",null,P(l.name),1),r[38]||(r[38]=f("b",null,[f("i")],-1)),f("strong",null,P(Ya(l.change)),1)],14,Gc))),128))])]),_:1},8,["width","height"])],64)):W.value==="epidemic"?(I(),Ha(le,{key:2,class:"yak-side-card right-card epidemic-ledger-card",title:"防疫记录台账",width:j(s),height:d.value},{default:oe(()=>[f("div",_c,[f("div",Bc,[f("span",null,P(ce.value)+"年 共 "+P(K(nt.value))+" 条",1),f("div",null,[tt(f("input",{"onUpdate:modelValue":r[0]||(r[0]=l=>je.value=l),type:"search",placeholder:"耳标/养殖户/疫苗",onKeyup:qa(Bn,["enter"])},null,544),[[Zt,je.value]]),f("button",{type:"button",onClick:Bn},"搜索"),f("button",{type:"button",class:"is-more",onClick:r[1]||(r[1]=l=>En())},"查看更多")])]),r[39]||(r[39]=f("div",{class:"epidemic-record-header"},[f("span",null,"电子耳标"),f("span",null,"养殖户"),f("span",null,"镇/乡"),f("span",null,"疫苗"),f("span",null,"时间")],-1)),f("div",Ac,[(I(!0),B(ne,null,pe(ps.value,l=>(I(),B("button",{key:l.epidemicId||l.earTag,type:"button",onClick:c=>En(l)},[f("span",null,P(ae(l.earTag)),1),f("span",null,P(ae(l.owner)),1),f("span",null,P(ae(l.town)),1),f("strong",null,P(ae(l.medicine)),1),f("span",null,P(Rt(l.operateTime)),1)],8,Ec))),128)),$e.value.length?ke("",!0):(I(),B("div",$c,P(M.value?"防疫台账读取中":v.value||"暂无防疫记录"),1))]),f("div",Vc,[f("span",null,"第 "+P(xe.value)+" / "+P(wi.value)+" 页",1),f("button",{type:"button",disabled:xe.value<=1,onClick:r[2]||(r[2]=l=>An(xe.value-1))},"上一页",8,zc),f("button",{type:"button",disabled:xe.value>=wi.value,onClick:r[3]||(r[3]=l=>An(xe.value+1))},"下一页",8,Dc)])])]),_:1},8,["width","height"])):W.value==="trade"?(I(),B(ne,{key:3},[H(le,{class:"yak-side-card right-card",title:"出证结构统计",width:j(s),height:u.value},{default:oe(()=>[f("div",Oc,[f("div",Wc,[f("span",null,[r[41]||(r[41]=f("em",null,"省外流通 A证",-1)),f("strong",null,[Ot(P(K(ze("outProvinceHeads","aCertHeads"))),1),r[40]||(r[40]=f("b",null,"头",-1))]),f("small",null,P(K(ze("outProvinceCount","aCertCount")))+"条记录",1)]),f("span",null,[r[43]||(r[43]=f("em",null,"省内流通 B证",-1)),f("strong",null,[Ot(P(K(ze("inProvinceHeads","bCertHeads"))),1),r[42]||(r[42]=f("b",null,"头",-1))]),f("small",null,P(K(ze("inProvinceCount","bCertCount")))+"条记录",1)])]),H(j(Pe),{class:"trade-cert-chart",option:io.value,autoresize:!0},null,8,["option"])])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card trade-source-card",title:"出栏来源排行",width:j(s),height:h.value},{default:oe(()=>[f("div",Yc,[(I(!0),B(ne,null,pe(_a.value,(l,c)=>(I(),B("div",{key:l.name,class:"trade-dest-row",style:Mt({"--trade-ratio":`${l.ratio}%`})},[f("span",null,P(c+1),1),f("strong",null,P(l.name),1),f("em",null,P(ie(l.headCount))+"头",1)],4))),128)),_a.value.length?ke("",!0):(I(),B("div",jc,P(Bt.value?"交易数据读取中":ot.value||"暂无出栏来源数据"),1))])]),_:1},8,["width","height"]),H(le,{class:"yak-side-card right-card trade-ledger-card",title:"交易出证台账",width:j(s),height:g.value},{default:oe(()=>[f("div",Hc,[f("div",qc,[f("span",null,"共 "+P(K(st.value))+" 条",1),f("div",null,[tt(f("input",{"onUpdate:modelValue":r[4]||(r[4]=l=>Ta.value=l),type:"search",placeholder:"货主/车辆/检疫号/地区",onKeyup:qa(Pn,["enter"])},null,544),[[Zt,Ta.value]]),f("button",{type:"button",onClick:Pn},"搜索"),f("button",{type:"button",class:"is-more",onClick:r[5]||(r[5]=l=>Fn())},"查看更多")])]),r[44]||(r[44]=f("div",{class:"trade-ledger-header"},[f("span",null,"货主"),f("span",null,"车牌"),f("span",null,"数量"),f("span",null,"来源"),f("span",null,"用途"),f("span",null,"时间")],-1)),f("div",Uc,[(I(!0),B(ne,null,pe(cn.value,l=>(I(),B("button",{key:l.certId,type:"button",onClick:c=>Fn(l)},[f("span",null,P(ae(l.ownerName)),1),f("span",null,P(ae(l.transportNumber)),1),f("strong",null,P(K(l.amount))+"头",1),f("span",null,P(ae(l.startTown)),1),f("span",null,P(ae(l.usageTypeName)),1),f("span",null,P(Rt(l.issueTime)),1)],8,Kc))),128)),cn.value.length?ke("",!0):(I(),B("div",Zc,P(Bt.value?"交易台账读取中":ot.value||"暂无交易记录"),1))]),f("div",Xc,[f("span",null,"第 "+P(Xe.value)+" / "+P(Ti.value)+" 页",1),f("button",{type:"button",disabled:Xe.value<=1,onClick:r[6]||(r[6]=l=>Cn(Xe.value-1))},"上一页",8,Jc),f("button",{type:"button",disabled:Xe.value>=Ti.value,onClick:r[7]||(r[7]=l=>Cn(Xe.value+1))},"下一页",8,Qc)])])]),_:1},8,["width","height"])],64)):ke("",!0)])]),f("div",ed,[H(Jl,{"model-value":W.value,topics:bt,"onUpdate:modelValue":r[8]||(r[8]=l=>W.value=l)},null,8,["model-value"])])]),G.value?(I(),B("div",{key:2,class:"epidemic-ledger-modal",onClick:Ua($n,["self"])},[f("div",td,[f("div",ad,[f("div",null,[r[45]||(r[45]=f("span",null,"牦牛防疫台账",-1)),f("strong",null,P(ce.value)+"年 "+P(K(U.value))+" 条记录",1)]),f("button",{type:"button",onClick:$n},"关闭")]),f("div",id,[tt(f("input",{"onUpdate:modelValue":r[9]||(r[9]=l=>me.value.keyword=l),type:"search",placeholder:"耳标 / 养殖户 / 药品","aria-label":"耳标 / 养殖户 / 药品",onKeyup:qa(Vn,["enter"])},null,544),[[Zt,me.value.keyword]]),tt(f("select",{"onUpdate:modelValue":r[10]||(r[10]=l=>me.value.town=l)},[r[46]||(r[46]=f("option",{value:""},"全部镇/乡",-1)),(I(!0),B(ne,null,pe(ms.value,l=>(I(),B("option",{key:l,value:l},P(l),9,nd))),128))],512),[[fa,me.value.town]]),tt(f("select",{"onUpdate:modelValue":r[11]||(r[11]=l=>me.value.medicine=l)},[r[47]||(r[47]=f("option",{value:""},"全部疫苗",-1)),(I(!0),B(ne,null,pe(gs.value,l=>(I(),B("option",{key:l,value:l},P(l),9,rd))),128))],512),[[fa,me.value.medicine]]),tt(f("input",{"onUpdate:modelValue":r[12]||(r[12]=l=>me.value.startDate=l),type:"date"},null,512),[[Zt,me.value.startDate]]),tt(f("input",{"onUpdate:modelValue":r[13]||(r[13]=l=>me.value.endDate=l),type:"date"},null,512),[[Zt,me.value.endDate]]),f("button",{type:"button",onClick:Vn},"检索"),f("button",{type:"button",class:"is-ghost",onClick:Eo},"重置")]),f("div",sd,[f("div",od,[r[48]||(r[48]=f("div",{class:"epidemic-ledger-table-head"},[f("span",null,"电子耳标"),f("span",null,"养殖户"),f("span",null,"镇/乡"),f("span",null,"村"),f("span",null,"疫苗"),f("span",null,"免疫时间"),f("span",null,"图片")],-1)),(I(!0),B(ne,null,pe(V.value,l=>{var c,p;return I(),B("button",{key:l.epidemicId||l.earTag,type:"button",class:Oe({active:(((c=Ce.value)==null?void 0:c.epidemicId)||((p=Ce.value)==null?void 0:p.earTag))===(l.epidemicId||l.earTag)}),onClick:y=>Dn(l)},[f("span",null,P(ae(l.earTag)),1),f("span",null,P(ae(l.owner)),1),f("span",null,P(ae(l.town)),1),f("span",null,P(ae(l.village)),1),f("strong",null,P(ae(l.medicine)),1),f("span",null,P(Rt(l.operateTime)),1),f("span",null,P(Bi(l).length?`${Bi(l).length}张`:"无"),1)],10,ld)}),128)),V.value.length?ke("",!0):(I(),B("div",ud,P(fe.value?"台账读取中":Ge.value||"暂无匹配记录"),1))]),f("div",cd,[f("div",dd,[f("div",null,[f("span",null,P(ae(zt.value.earTag)),1),f("em",null,P(ae(zt.value.medicine||zt.value.preventionType)),1)]),f("strong",null,P(Ke.value?"加载中":Rt(zt.value.operateTime)),1)]),f("div",hd,[(I(!0),B(ne,null,pe(fs.value,l=>(I(),B("span",{key:l.label,class:Oe({"is-wide":l.wide})},[f("em",null,P(l.label),1),f("strong",null,P(l.value),1)],2))),128))]),on.value.length?(I(),B("div",pd,[r[49]||(r[49]=f("div",{class:"epidemic-detail-photo-title"},"现场照片",-1)),f("div",fd,[(I(!0),B(ne,null,pe(on.value.slice(0,6),l=>(I(),B("button",{key:l,type:"button",class:"epidemic-modal-photo-thumb",onClick:Ua(c=>Co(l),["stop"])},[f("img",{src:Tn(l),alt:"防疫照片"},null,8,gd)],8,md))),128))])])):ke("",!0)])]),f("div",yd,[f("span",null,"第 "+P(J.value)+" / "+P(sn.value)+" 页",1),f("button",{type:"button",disabled:J.value<=1,onClick:r[14]||(r[14]=l=>zn(J.value-1))},"上一页",8,bd),f("button",{type:"button",disabled:J.value>=sn.value,onClick:r[15]||(r[15]=l=>zn(J.value+1))},"下一页",8,vd)])])])):ke("",!0),ni.value?(I(),B("div",{key:3,class:"epidemic-ledger-modal trade-ledger-modal",onClick:Ua(xn,["self"])},[f("div",wd,[f("div",Ld,[f("div",null,[r[50]||(r[50]=f("span",null,"牦牛交易出证台账",-1)),f("strong",null,P(ye.value)+"年 "+P(K(Sa.value))+" 条记录",1)]),f("button",{type:"button",onClick:xn},"关闭")]),f("div",Td,[tt(f("input",{"onUpdate:modelValue":r[16]||(r[16]=l=>ft.value.keyword=l),type:"search",placeholder:"货主 / 车辆 / 检疫号 / 地区",onKeyup:qa(Nn,["enter"])},null,544),[[Zt,ft.value.keyword]]),tt(f("select",{"onUpdate:modelValue":r[17]||(r[17]=l=>ft.value.startTown=l)},[r[51]||(r[51]=f("option",{value:""},"全部来源乡镇",-1)),(I(!0),B(ne,null,pe(ws.value,l=>(I(),B("option",{key:l,value:l},P(l),9,Sd))),128))],512),[[fa,ft.value.startTown]]),tt(f("select",{"onUpdate:modelValue":r[18]||(r[18]=l=>ft.value.usageType=l)},[r[52]||(r[52]=f("option",{value:""},"全部用途",-1)),(I(!0),B(ne,null,pe(Ls.value,l=>(I(),B("option",{key:l,value:l},P(l),9,Md))),128))],512),[[fa,ft.value.usageType]]),tt(f("select",{"onUpdate:modelValue":r[19]||(r[19]=l=>ft.value.certType=l)},[r[53]||(r[53]=f("option",{value:""},"全部证书",-1)),(I(!0),B(ne,null,pe(Ts.value,l=>(I(),B("option",{key:l.value,value:l.value},P(l.label),9,kd))),128))],512),[[fa,ft.value.certType]]),f("button",{type:"button",onClick:Nn},"检索"),f("button",{type:"button",class:"is-ghost",onClick:Bo},"重置")]),f("div",Pd,[f("div",Cd,[r[54]||(r[54]=f("div",{class:"trade-ledger-modal-table-head"},[f("span",null,"货主"),f("span",null,"证书"),f("span",null,"车牌号"),f("span",null,"数量"),f("span",null,"来源"),f("span",null,"用途"),f("span",null,"出证时间"),f("span",null,"状态")],-1)),(I(!0),B(ne,null,pe(At.value,l=>(I(),B("button",{key:l.certId||l.factoryCode,type:"button",class:Oe({active:vs.value===(l.certId||l.factoryCode)}),onClick:c=>In(l)},[f("span",null,P(ae(l.ownerName)),1),f("span",null,P(ae(l.certType||l.certScopeName)),1),f("span",null,P(ae(l.transportNumber)),1),f("strong",null,P(K(l.amount))+"头",1),f("span",null,P(ae(l.startTown)),1),f("span",null,P(ae(l.usageTypeName)),1),f("span",null,P(Rt(l.issueTime)),1),f("span",null,P(ae(l.statusName)),1)],10,Fd))),128)),At.value.length?ke("",!0):(I(),B("div",xd,P(ri.value?"交易台账读取中":si.value||"暂无匹配记录"),1))]),f("div",Nd,[f("div",Rd,[f("div",null,[f("span",null,P(ae(be.value.factoryCode||be.value.certId)),1),f("em",null,P(Mn(be.value)),1)]),f("strong",null,P(Rt(be.value.issueTime)),1)]),f("div",Id,[f("span",Gd,[r[55]||(r[55]=f("em",null,"货主",-1)),f("strong",null,P(ae(be.value.ownerName)),1)]),f("span",null,[r[56]||(r[56]=f("em",null,"联系方式",-1)),f("strong",null,P(Sn(be.value.ownerPhone)),1)]),f("span",null,[r[57]||(r[57]=f("em",null,"证书类型",-1)),f("strong",null,P(Mn(be.value)),1)]),f("span",null,[r[58]||(r[58]=f("em",null,"车牌号",-1)),f("strong",null,P(ae(be.value.transportNumber)),1)]),f("span",null,[r[59]||(r[59]=f("em",null,"牦牛数量",-1)),f("strong",null,P(K(be.value.amount))+"头",1)]),f("span",null,[r[60]||(r[60]=f("em",null,"用途",-1)),f("strong",null,P(ae(be.value.usageTypeName)),1)]),f("span",null,[r[61]||(r[61]=f("em",null,"来源乡镇",-1)),f("strong",null,P(ae(be.value.startTown)),1)]),f("span",null,[r[62]||(r[62]=f("em",null,"目的省份",-1)),f("strong",null,P(ae(be.value.destProvince)),1)]),f("span",null,[r[63]||(r[63]=f("em",null,"检疫员",-1)),f("strong",null,P(ae(be.value.quarantineOfficerName)),1)]),f("span",_d,[r[64]||(r[64]=f("em",null,"状态",-1)),f("strong",null,P(ae(be.value.statusName)),1)]),f("span",Bd,[r[65]||(r[65]=f("em",null,"来源地区",-1)),f("strong",null,P(ae(be.value.startRegionFullName)),1)]),f("span",Ad,[r[66]||(r[66]=f("em",null,"目的地",-1)),f("strong",null,P(ae(be.value.destRegionFullName)),1)])]),f("button",{type:"button",class:"trade-detail-locate",disabled:!be.value.startTown,onClick:r[20]||(r[20]=l=>Ao(be.value))}," 查看乡镇位置 ",8,Ed)])]),f("div",$d,[f("span",null,"第 "+P(Et.value)+" / "+P(Si.value)+" 页",1),f("button",{type:"button",disabled:Et.value<=1,onClick:r[21]||(r[21]=l=>Rn(Et.value-1))},"上一页",8,Vd),f("button",{type:"button",disabled:Et.value>=Si.value,onClick:r[22]||(r[22]=l=>Rn(Et.value+1))},"下一页",8,zd)])])])):ke("",!0),Be.value?(I(),B("div",{key:4,class:"epidemic-image-preview-modal",onClick:Ua(Ai,["self"])},[f("div",Dd,[f("div",Od,[f("div",null,[r[67]||(r[67]=f("span",null,"防疫照片",-1)),f("strong",null,P(ae(zt.value.earTag)),1)]),f("button",{type:"button",onClick:Ai},"关闭")]),f("div",Wd,[f("div",Yd,[f("img",{src:Ze.value,alt:"防疫照片预览"},null,8,jd)])])])])):ke("",!0)]))}};export{ph as default}; diff --git a/docs/assets/index-e9f36657-1784045078568.js b/docs/assets/index-e9f36657-1784074877048.js similarity index 100% rename from docs/assets/index-e9f36657-1784045078568.js rename to docs/assets/index-e9f36657-1784074877048.js diff --git a/docs/assets/index-2f522628-1784045078568.js b/docs/assets/index-f9f2c8d7-1784074877048.js similarity index 96% rename from docs/assets/index-2f522628-1784045078568.js rename to docs/assets/index-f9f2c8d7-1784074877048.js index 52eceba..9cd1716 100644 --- a/docs/assets/index-2f522628-1784045078568.js +++ b/docs/assets/index-f9f2c8d7-1784074877048.js @@ -1,2 +1,2 @@ -import{H as Q}from"./index.esm.min-43166a2f-1784045078568.js";import{_ as U}from"./index-27149dbd-1784045078568.js";import{M as X}from"./screen2Standard-98cd5b6c-1784045078568.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-8c348a2d-1784045078568.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,J as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1784045078568.js";import"./index-e9f36657-1784045078568.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:J()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(K=>K.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function J(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% +import{H as Q}from"./index.esm.min-469b3f53-1784074877048.js";import{_ as U}from"./index-1f5d6021-1784074877048.js";import{M as X}from"./screen2Standard-9c6af3a2-1784074877048.js";import{c as $,a as Y,b as ee,d as x,w as h,e as o,f as v,g as z,h as te,i as ae,v as ne,j as p,k as oe}from"./chartTheme-9a56b109-1784074877048.js";import{_ as re,o as i,c as s,a as t,F as u,y as g,u as B,J as m,b as L,x as O,n as F,C as le,j as N,t as l,B as y}from"./index-1784074877048.js";import"./index-e9f36657-1784074877048.js";const ie={class:"chart-guide-screen"},se={class:"guide-header"},ue={class:"guide-palette","aria-label":"系统图表色板"},ce={class:"guide-layout"},de={class:"guide-chart-grid","aria-label":"系统图表示例"},ge={class:"guide-three-pie-visual"},me={class:"guide-three-pie-center"},pe={class:"guide-three-pie-legend"},he={class:"guide-band"},ve={class:"guide-band-list"},be={class:"guide-warning-core"},ye={class:"guide-warning-list"},fe={__name:"index",setup(ke){const P=o,f={standard:{width:398,height:190,label:"398x190"},tall:{width:398,height:392,label:"398x392"}},R=["瓦切镇","安曲镇","邛溪镇","龙日镇","刷经寺镇","麦洼乡","查尔玛乡"],W=[{name:"瓦切镇",value:74721},{name:"安曲镇",value:65780},{name:"邛溪镇",value:63466},{name:"龙日镇",value:54691},{name:"刷经寺镇",value:45940},{name:"麦洼乡",value:38202},{name:"查尔玛乡",value:31766}],G=["草地","湿地","林地","牧场","保护地"],k=["1月","2月","3月","4月","5月","6月","7月","8月"],A=[{key:"bar-vertical",title:"林草湿资源面积",unit:"单位:万亩",option:$({categories:G,rows:[{name:"草地",value:486.2},{name:"湿地",value:82.4},{name:"林地",value:126.8},{name:"牧场",value:58.6},{name:"保护地",value:214.5}],unit:"万亩",name:"资源面积",showLabel:!1,grid:{left:40,right:16,top:18,bottom:34}})},{key:"bar-horizontal",title:"乡镇牦牛存栏排行",unit:"单位:头",option:$({categories:R.slice(0,5),rows:W.slice(0,5),unit:"头",name:"牦牛存栏",orientation:"horizontal",colorIndex:1,grid:{left:58,right:54,top:16,bottom:18}})},{key:"grouped-bar",title:"林草湿年度对比",unit:"单位:万亩",option:Y({categories:["2021","2022","2023","2024","2025"],unit:"万亩",series:[{name:"草地",values:[472,476,481,486,489]},{name:"湿地",values:[76,79,81,82,84]},{name:"林地",values:[119,121,124,127,130]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"stacked-bar",title:"草地利用结构",unit:"单位:万亩",option:ee({categories:["瓦切","安曲","邛溪","龙日","刷经寺"],unit:"万亩",series:[{name:"可利用草地",values:[66,52,48,44,38]},{name:"禁牧草地",values:[18,21,16,13,12]},{name:"退化治理",values:[9,7,8,6,5]}],grid:{left:38,right:14,top:34,bottom:32}})},{key:"line-trend",title:"牦牛存栏趋势",unit:"单位:万头",option:x({categories:k,unit:"万头",series:[{name:"2025年",values:[45.2,45.8,46.4,47.1,48.3,49.1,49.8,50.2]},{name:"2024年",values:[42.9,43.5,44.2,44.8,45.9,46.5,47.1,47.7]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"area-line",title:"草地产草量走势",unit:"单位:万吨",option:x({categories:k,unit:"万吨",area:!0,series:[{name:"鲜草产量",values:[12.4,14.1,19.8,28.6,36.2,43.5,46.8,41.2]}],grid:{left:38,right:14,top:34,bottom:30}})},{key:"three-pie",title:"草牧资源结构",unit:"3D饼图",visual:"three-pie"},{key:"donut",title:"湿地类型结构",unit:"单位:%",option:I({unit:"万亩",name:"湿地结构",rows:[{name:"沼泽湿地",value:36.8},{name:"河流湿地",value:21.3},{name:"湖泊湿地",value:14.6},{name:"人工湿地",value:9.7}]})},{key:"rose",title:"林地类型占比",unit:"单位:%",option:j()},{key:"pictorial-column",title:"乡镇草地光柱",unit:"单位:万亩",option:E()},{key:"gauge",title:"草畜平衡预警",unit:"单位:分",option:J()},{key:"progress-ring",title:"治理任务完成率",unit:"单位:%",option:Z()},{key:"structure-band",title:"资源结构占比",unit:"单位:%",visual:"structure-band"},{key:"rank-list",title:"重点对象排行",unit:"单位:项",visual:"rank-list"},{key:"warning-band",title:"风险状态分布",unit:"单位:项",visual:"warning-band"},{key:"target-stack",title:"年度目标达成",unit:"单位:%",visual:"target-stack"}],w=["#17E6C3","#40CFFF","#1979FF","#FFC472"],b=[{name:"草地",value:486.2,unit:"万亩"},{name:"湿地",value:82.4,unit:"万亩"},{name:"林地",value:126.8,unit:"万亩"},{name:"保护地",value:214.5,unit:"万亩"}],_=[{name:"草地",percent:52,color:o[0]},{name:"林地",percent:24,color:o[1]},{name:"湿地",percent:14,color:o[2]},{name:"保护地",percent:10,color:o[3]}],V=[{name:"瓦切镇",value:"74,721",percent:100},{name:"安曲镇",value:"65,780",percent:88},{name:"邛溪镇",value:"63,466",percent:85},{name:"龙日镇",value:"54,691",percent:73}],S={name:"中低风险占比",value:"86%"},M=[{name:"正常",value:"128",percent:100,color:o[0]},{name:"关注",value:"36",percent:45,color:o[2]},{name:"预警",value:"12",percent:18,color:o[4]}],T=[{name:"草地修复",percent:92,color:o[0]},{name:"湿地巡护",percent:86,color:o[1]},{name:"林地管护",percent:78,color:o[2]},{name:"风险处置",percent:94,color:o[3]}];function D(r){return`C${String(r+1).padStart(2,"0")}`}function C(r){return f[r.size||"standard"]||f.standard}function H(r={}){const n=b.reduce((c,e)=>c+(Number(e.value)||0),0)||1;return`${((Number(r.value)||0)/n*100).toFixed(1)}%`}function I({rows:r=[],unit:n="",name:a="结构占比"}={}){const c=r.reduce((e,d)=>e+(Number(d.value)||0),0)||1;return h({color:o,tooltip:v(e=>`${e.marker}${e.name}:${p(e.value)}${n}
    占比:${p(e.percent)}%`),legend:z({orient:"vertical",right:12,top:"middle",itemWidth:8,itemHeight:8,itemGap:8,formatter:e=>{const d=r.find(K=>K.name===e),q=d?Math.round((Number(d.value)||0)/c*100):0;return`${e} ${q}%`}}),series:[{name:a,type:"pie",radius:["48%","68%"],center:["34%","52%"],avoidLabelOverlap:!0,label:{show:!1},labelLine:{show:!1},itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3},data:r.map((e,d)=>({name:e.name,value:Number(e.value)||0,itemStyle:{color:e.color||o[d%o.length]}}))}]})}function j(){const r=[{name:"乔木林地",value:42.6},{name:"灌木林地",value:35.2},{name:"疏林地",value:18.4},{name:"未成林地",value:8.7}];return h({color:o,tooltip:v(n=>`${n.marker}${n.name}:${p(n.value)}万亩
    占比:${p(n.percent)}%`),legend:z({orient:"vertical",right:8,top:"middle",itemWidth:8,itemHeight:8,itemGap:7}),series:[{name:"林地类型",type:"pie",roseType:"radius",radius:[14,"64%"],center:["34%","54%"],avoidLabelOverlap:!0,itemStyle:{borderColor:"rgba(3, 18, 31, 0.94)",borderWidth:3,shadowBlur:10,shadowColor:"rgba(0, 0, 0, 0.25)"},label:{color:"#f7feff",fontSize:10,formatter:({percent:n})=>n>=8?`${Math.round(n)}%`:""},labelLine:{length:7,length2:6,lineStyle:{color:"rgba(223, 250, 255, 0.38)"}},data:r}]})}function E(){const r=["瓦切","安曲","邛溪","龙日","刷经寺"],n=[486,372,318,246,205],a=520;return h({color:o,grid:te({left:40,right:18,top:22,bottom:34}),tooltip:v(c=>`${c.name}:${p(c.value)}万亩`,{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{color:"rgba(48, 220, 255, 0.08)"}}}),xAxis:ae(r),yAxis:ne(),series:[{name:"底柱",type:"bar",barWidth:24,barGap:"-100%",data:n.map(()=>a),tooltip:{show:!1},silent:!0,itemStyle:{borderRadius:[8,8,0,0],borderColor:"rgba(48, 220, 255, 0.2)",borderWidth:1,color:"rgba(48, 220, 255, 0.08)"}},{name:"草地面积",type:"bar",barWidth:13,barGap:"-76%",z:3,data:n,label:{show:!0,position:"top",color:"#ffffff",fontSize:10,formatter:({value:c})=>p(c)},itemStyle:{borderRadius:[8,8,1,1],color:oe(o[0]),shadowBlur:10,shadowColor:"rgba(36, 246, 196, 0.28)"}},{name:"顶部高光",type:"pictorialBar",symbol:"diamond",symbolSize:[21,6],symbolOffset:[0,-4],symbolPosition:"end",z:5,tooltip:{show:!1},data:n,itemStyle:{color:"rgba(232, 255, 255, 0.9)",shadowBlur:9,shadowColor:"rgba(48, 220, 255, 0.7)"}}]})}function J(){return h({series:[{type:"gauge",startAngle:210,endAngle:-30,min:0,max:100,radius:"88%",center:["50%","58%"],progress:{show:!0,width:12,itemStyle:{color:o[2]}},axisLine:{lineStyle:{width:12,color:[[.55,"rgba(36, 246, 196, 0.42)"],[.8,"rgba(255, 224, 107, 0.42)"],[1,"rgba(255, 154, 98, 0.42)"]]}},axisTick:{show:!1},splitLine:{length:7,lineStyle:{color:"rgba(225, 249, 255, 0.36)",width:1}},axisLabel:{show:!1},pointer:{icon:"path://M4 0 L-4 0 L0 -62 Z",width:8,length:"56%",itemStyle:{color:"#ffe06b",shadowBlur:8,shadowColor:"rgba(255, 224, 107, 0.45)"}},anchor:{show:!0,size:7,itemStyle:{color:"#ffe06b"}},title:{offsetCenter:[0,"52%"],color:"rgba(225, 249, 255, 0.7)",fontSize:12},detail:{valueAnimation:!0,offsetCenter:[0,"26%"],color:"#ffe06b",fontSize:27,fontWeight:700,formatter:"{value}"},data:[{value:78,name:"中度预警"}]}]})}function Z(){return h({tooltip:v(r=>`${r.marker}${r.name}:${r.value}%`),series:[{type:"pie",radius:["62%","76%"],center:["50%","52%"],silent:!0,label:{show:!1},data:[{name:"已完成",value:72,itemStyle:{color:o[0]}},{name:"未完成",value:28,itemStyle:{color:"rgba(48, 220, 255, .12)"}}]},{type:"pie",radius:["42%","46%"],center:["50%","52%"],silent:!0,label:{position:"center",formatter:`72% 完成`,color:"#ffe06b",fontSize:22,lineHeight:30,fontWeight:700},data:[{value:1,itemStyle:{color:"rgba(255, 224, 107, .28)"}}]}]})}return(r,n)=>(i(),s("div",ie,[n[1]||(n[1]=t("div",{class:"guide-bg guide-bg-grid"},null,-1)),n[2]||(n[2]=t("div",{class:"guide-bg guide-bg-glow"},null,-1)),t("header",se,[n[0]||(n[0]=t("div",null,[t("div",{class:"guide-kicker"},"Chart Style System"),t("h1",null,"图表样式规范")],-1)),t("div",ue,[(i(!0),s(u,null,g(B(P),a=>(i(),s("span",{key:a,style:m({background:a})},null,4))),128))])]),t("main",ce,[t("section",de,[(i(),s(u,null,g(A,(a,c)=>L(U,{key:a.key,class:F(["guide-chart-card",`is-${a.size||"standard"}`]),width:C(a).width,height:C(a).height,title:`${D(c)} ${a.title}`,"data-unit":a.unit},{default:O(()=>[t("div",{class:F(["guide-card-content",a.visual?`is-${a.visual}`:""])},[a.option?(i(),le(B(Q),{key:0,class:"guide-chart",option:a.option,autoresize:""},null,8,["option"])):N("",!0),a.visual==="three-pie"?(i(),s(u,{key:1},[t("div",ge,[L(X,{data:b,colors:w,delay:3e3,opacity:.62,class:"guide-three-pie"},{default:O(({data:e})=>[t("div",me,[t("strong",null,l(H(e)),1),t("span",null,l((e==null?void 0:e.name)||"结构占比"),1)])]),_:1})]),t("div",pe,[(i(),s(u,null,g(b,(e,d)=>t("div",{key:e.name},[t("i",{style:m({borderColor:w[d]})},null,4),t("span",null,l(e.name),1),t("strong",null,[y(l(e.value),1),t("em",null,l(e.unit),1)])])),64))])],64)):a.visual==="structure-band"?(i(),s(u,{key:2},[t("div",he,[(i(),s(u,null,g(_,e=>t("i",{key:e.name,style:m({width:`${e.percent}%`,background:e.color})},null,4)),64))]),t("div",ve,[(i(),s(u,null,g(_,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("strong",null,l(e.percent)+"%",1)])),64))])],64)):a.visual==="rank-list"?(i(),s(u,{key:3},g(V,(e,d)=>t("div",{key:e.name,class:"guide-rank-row"},[t("span",null,l(d+1),1),t("em",null,l(e.name),1),t("i",null,[t("b",{style:m({width:`${e.percent}%`})},null,4)]),t("strong",null,l(e.value),1)])),64)):a.visual==="warning-band"?(i(),s(u,{key:4},[t("div",be,[t("strong",null,l(S.value),1),t("span",null,l(S.name),1)]),t("div",ye,[(i(),s(u,null,g(M,e=>t("div",{key:e.name},[t("span",null,[t("i",{style:m({background:e.color})},null,4),y(l(e.name),1)]),t("em",null,l(e.value),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)])])),64))])],64)):a.visual==="target-stack"?(i(),s(u,{key:5},g(T,e=>t("div",{key:e.name,class:"guide-target-row"},[t("span",null,l(e.name),1),t("b",null,[t("i",{style:m({width:`${e.percent}%`,background:e.color})},null,4)]),t("strong",null,l(e.percent)+"%",1)])),64)):N("",!0)],2)]),_:2},1032,["class","width","height","title","data-unit"])),64))])])]))}},ze=re(fe,[["__scopeId","data-v-1d923a5c"]]);export{ze as default}; diff --git a/docs/assets/index-fe56ccaa-1784045078568.js b/docs/assets/index-fe56ccaa-1784045078568.js deleted file mode 100644 index b7791b5..0000000 --- a/docs/assets/index-fe56ccaa-1784045078568.js +++ /dev/null @@ -1,112 +0,0 @@ -var Yn=Object.defineProperty,Qn=Object.defineProperties;var Jn=Object.getOwnPropertyDescriptors;var io=Object.getOwnPropertySymbols;var Zn=Object.prototype.hasOwnProperty,Xn=Object.prototype.propertyIsEnumerable;var ro=(k,n,i)=>n in k?Yn(k,n,{enumerable:!0,configurable:!0,writable:!0,value:i}):k[n]=i,D=(k,n)=>{for(var i in n||(n={}))Zn.call(n,i)&&ro(k,i,n[i]);if(io)for(var i of io(n))Xn.call(n,i)&&ro(k,i,n[i]);return k},V=(k,n)=>Qn(k,Jn(n));var re=(k,n,i)=>new Promise((c,s)=>{var f=m=>{try{h(i.next(m))}catch(b){s(b)}},p=m=>{try{h(i.throw(m))}catch(b){s(b)}},h=m=>m.done?c(m.value):Promise.resolve(m.value).then(f,p);h((i=i.apply(k,n)).next())});import{h as Lo,w as ht,o as A,c as F,a as w,d as G,K as ei,g as I,L as je,q as ti,A as W,s as so,v as lo,b as Lt,C as xe,j as q,J as lt,u as We,F as _e,y as Ie,x as la,B as ai,n as Ue,e as Tt,f as Se,t as z,T as oi,M as ni}from"./index-1784045078568.js";import{l as co,g as ii,E as ri}from"./live-scene-1-7846500b-1784045078568.js";import{H as ca}from"./index.esm.min-43166a2f-1784045078568.js";import{_ as uo}from"./index-27149dbd-1784045078568.js";import{g as ua,C as si,H as li,a as ci,M as ui}from"./index-c252ce06-1784045078568.js";import{O as di,P as Ee,a as Z,D as qe,C as se,A as me,b as Q,e as fi,F as hi,G as fe,c as mi,d as pi,f as gi,g as fo,L as ho,V as Y,h as mo,R as he,B as vi,S as da,i as yi,j as bi,k as wi,l as xi,N as Si,Q as Mi,T as ki,m as Pi,n as po,o as go,p as Ci,q as vo,r as Ai}from"./screen2Standard-98cd5b6c-1784045078568.js";import{M as Li,g as Ti,h as _i,L as Ii,B as yo,a as fa,E as Fi,G as Ei,D as Oi,b as Bi,l as ha,P as bo,c as wo,d as Gi,s as ma,f as _t,e as Ni,i as Ri,j as Hi,k as xo}from"./data-bfed1662-1784045078568.js";import{g as Ye}from"./index-e9f36657-1784045078568.js";import{h as Di,a as To,f as zi,g as $i,b as Vi}from"./townshipBoundaries-1b068bef-1784045078568.js";import{R as ji,r as Wi,a as Ui,c as Ki,o as qi,s as Yi,p as Qi,b as So,d as Ji,h as Zi,g as Mo,e as Xi,f as er,i as tr,j as ar,k as or,l as nr,m as ir,n as rr,_ as sr}from"./TopicSwitcher-2ffd167b-1784045078568.js";import{_ as lr,a as ko}from"./FeatureInfoPanel-b2a9b292-1784045078568.js";import{g as Po,a as cr}from"./openApi-528034ce-1784045078568.js";import{c as ur,F as dr,g as fr,a as hr}from"./featurePanelLayout-5da16b00-1784045078568.js";import{g as mr}from"./yakApi-9c3a9777-1784045078568.js";import{w as ct,f as pa}from"./chartTheme-8c348a2d-1784045078568.js";import{b as pr}from"./data-5c83c66b-1784045078568.js";import{h as gr,y as vr}from"./data-881b212b-1784045078568.js";import"./index-6a8ef8cf-1784045078568.js";import"./livestockData-36ec0ae2-1784045078568.js";import"./geoserver-6ded2e06-1784045078568.js";class yr extends di{constructor(n,i){super(),this.config=Object.assign({color1:16566615,color2:16777215},i),this.assets={instance:null},this.assets.instance=n.assets.instance,this.sceneGroup=n.sceneGroup,this.gsapObjects=[],this.animateElements={},this.init()}init(){let n=this.config.color1,i=new Ee(1.5,1.5,1),c=new Ee(1,3,1);c.translate(0,1,0);let s=new Z({color:n,transparent:!0,fog:!1,side:qe,depthWrite:!1}),f=s.clone();f.map=this.assets.instance.getResource("focusArrows");let p=s.clone();p.map=this.assets.instance.getResource("focusBar");let h=s.clone();h.map=this.assets.instance.getResource("focusBg");let m=s.clone();m.color=new se(this.config.color2),m.map=this.assets.instance.getResource("focusMidQuan");let b=s.clone();b.map=this.assets.instance.getResource("focusMoveBg"),b.blending=me;let C=new Q(i,f),S=new Q(c,p);S.rotation.x=Math.PI/2;let O=S.clone();O.rotation.y=Math.PI/2;let x=new Q(i,h),v=new Q(i,m),_=new Q(i,b),B=[v,x,C,_,S,O];B.map(R=>{R.renderOrder=99}),this.add(...B);let E=0;_.scale.setScalar(E),this.animateElements={focusMidQuan:v,focusArrows:C,focusMoveBg:_},this.startAnimate()}startAnimate(){let n=Ye.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),i=Ye.to(this.animateElements.focusArrows.rotation,{z:2*Math.PI,duration:5,repeat:-1,ease:"none"}),c=Ye.to(this.animateElements.focusMoveBg.scale,{x:1.5,y:1.5,z:1.5,duration:2.5,repeat:-1,ease:"none"}),s=Ye.to(this.animateElements.focusMoveBg.material,{opacity:0,duration:2.5,repeat:-1,ease:"none"});this.gsapObjects=[n,i,c,s]}pausedAnimate(){this.gsapObjects.map(n=>{n.paused=!0})}destroy(){this.gsapObjects.map(n=>{n.kill()}),fi(this)}}const br=Di.map(k=>D({},k)),Co=To.map(k=>D({},k)),wr=To.map(k=>{var n,i;return{name:k.name,value:k.value,lng:(n=k.center)==null?void 0:n[0],lat:(i=k.center)==null?void 0:i[1]}}),xr=[{name:"邛溪镇",level:"县城驻地",value:895.94,lng:102.60242339873115,lat:32.83022561372293},{name:"瓦切镇",level:"北部牧区",value:991,lng:102.71535664604494,lat:33.12869670968013},{name:"刷经寺镇",level:"南部通道",value:986.44,lng:102.55651980382184,lat:32.204097908180216},{name:"色地镇",level:"东部片区",value:1199.06,lng:103.12540730227074,lat:33.010462261362875}];function ga(k){return k.sort((n,i)=>i.value-n.value),k}function Sr(k){return k?typeof k=="string"?JSON.parse(k):k:null}function va(k){const n=Sr(k);return n!=null&&n.features&&n.features.forEach(i=>{var c;((c=i.geometry)==null?void 0:c.type)==="Polygon"&&(i.geometry.coordinates=[i.geometry.coordinates])}),n}function Mr(k,n){var i;try{return(i=k==null?void 0:k.getResource)==null?void 0:i.call(k,n)}catch(c){return null}}function kr(k,n,i){const c=Number(k);return Number.isFinite(c)?Math.max(n,Math.min(i,c)):n}class Pr extends Li{constructor(n,i,c={}){var s;super(n,{maxPixelRatio:(s=c.maxPixelRatio)!=null?s:c.showDataOverlays===!1?1.35:void 0,antialias:c.antialias}),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,this.geoProjectionFn=Ti().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0]),this.flyLineCenter=[102.60242339873115,32.83022561372293],this.depth=.5,this.clicked=!1,this.sceneMode=c.sceneMode||"default",this.showDataOverlays=c.showDataOverlays!==!1,this.mapAnimationDone=!1,this.sceneTweens=[],this.sceneTimers=[],this.scene.fog=new hi(1058614,1,50),this.scene.background=new se(1058614),this.camera.instance.position.set(-13.767695123014105,12.990152163077308,39.28228164159694),this.camera.instance.near=1,this.camera.instance.far=1e4,this.camera.instance.updateProjectionMatrix(),this.interactionManager=new _i(this.renderer.instance,this.camera.instance,this.canvas),this.assets=i,this.staticMapData={china:va(Mr(this.assets.instance,"china")),mapJson:va(this.assets.instance.getResource("mapJson")),mapStroke:va(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(n){var i;return n&&(this.sceneTweens.push(n),this.scenePaused&&((i=n.pause)==null||i.call(n)),n)}addSceneTimer(n){return n&&this.sceneTimers.push(n),n}init(){this.labelGroup=new fe,this.label3d=new Ii(this),this.labelGroup.rotation.x=-Math.PI/2,this.scene.add(this.labelGroup),this.flyLineFocusGroup=new fe,this.flyLineFocusGroup.visible=!1,this.flyLineFocusGroup.rotation.x=-Math.PI/2,this.scene.add(this.flyLineFocusGroup),this.eventElement=[],this.defaultMaterial=null,this.defaultLightMaterial=null,this.createBottomBg(),this.createChinaBlurLine(),this.createGrid(),this.createRotateBorder(),this.createLabel(),this.createMap(),this.createEvent(),this.createParticles(),this.showDataOverlays&&(this.createFlyLine(),this.createFocus(),this.createScatter(),this.createInfoPoint()),this.createStorke();let n=Ye.timeline({onComplete:()=>{}});n.pause(),this.animateTl=n,n.addLabel("focusMap",1.5),n.addLabel("focusMapOpacity",2),n.addLabel("bar",3),n.to(this.camera.instance.position,{duration:2,x:-.17427287762525134,y:13.678992786206543,z:20.688611202093714,ease:"circ.out",onStart:()=>{this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1)}}),n.to(this.focusMapGroup.position,{duration:1,x:0,y:0,z:0},"focusMap"),n.to(this.focusMapGroup.scale,{duration:1,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{this.showDataOverlays&&(this.flyLineGroup.visible=!0,this.scatterGroup.visible=!0,this.InfoPointGroup.visible=!0),this.applySceneMode()}},"focusMap"),n.to(this.focusMapTopMaterial,{duration:1,opacity:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.focusMapSideMaterial,{duration:1,opacity:1,ease:"circ.out",onComplete:()=>{this.focusMapSideMaterial.transparent=!1}},"focusMapOpacity"),this.otherLabel.map((i,c)=>{let s=i.element.querySelector(".other-label");n.to(s,{duration:1,delay:.1*c,translateY:0,opacity:1,ease:"circ.out"},"focusMapOpacity")}),n.to(this.mapLineMaterial,{duration:.5,delay:.3,opacity:1},"focusMapOpacity"),n.to(this.rotateBorder1.scale,{delay:.3,duration:1,x:1,y:1,z:1,ease:"circ.out"},"focusMapOpacity"),n.to(this.rotateBorder2.scale,{duration:1,delay:.5,x:1,y:1,z:1,ease:"circ.out",onComplete:()=>{var i,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(i=this.options).onPlayComplete)==null||c.call(i)}},"focusMapOpacity"),(this.allBar||[]).map((i,c)=>{if(i.userData.name==="邛溪镇")return!1;n.to(i.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((i,c)=>{n.to(i,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((i,c)=>{let s=i.element.querySelector(".provinces-label-wrap"),f=i.element.querySelector(".number .value"),p=Number(f.innerText),h={score:0};n.to(s,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),n.to(h,{duration:1,delay:.2*c,score:p,onUpdate:m},"bar");function m(){f.innerText=h.score.toFixed(0)}}),(this.allGuangquan||[]).map((i,c)=>{n.to(i.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),n.to(i.children[1].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")})}initEnvironment(){let n=new mi(16777215,5);this.scene.add(n);let i=new pi(16777215,5);i.position.set(-30,6,-8),i.castShadow=!0,i.shadow.radius=20,i.shadow.mapSize.width=1024,i.shadow.mapSize.height=1024,this.scene.add(i),this.createPointLight({color:"#1d5e5e",intensity:800,distance:1e4,x:-9,y:3,z:-3}),this.createPointLight({color:"#1d5e5e",intensity:200,distance:1e4,x:0,y:2,z:5})}createPointLight(n){const i=new gi(1924702,n.intensity,n.distance);i.position.set(n.x,n.y,n.z),this.scene.add(i)}createMap(){let n=new fe,i=new fe;this.focusMapGroup=i;let{china:c,chinaTopLine:s}=this.createChina(),{map:f,mapTop:p,mapLine:h}=this.createProvince();c==null||c.setParent(n),s==null||s.setParent(n),this.createDiffuse(),f.setParent(i),p.setParent(i),h.setParent(i),i.position.set(0,0,-.01),i.scale.set(1,1,0),n.add(i),n.rotation.x=-Math.PI/2,n.position.set(0,.2,0),this.scene.add(n),this.showDataOverlays?this.createBar():(this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[])}createChina(){var h;let n={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},i=this.staticMapData.china;if(!((h=i==null?void 0:i.features)!=null&&h.length))return{china:null,chinaTopLine:null};let c=new fo({color:new se(n.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),s=new yo(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),f=new ho({color:n.lineColor}),p=new fa(this,{data:i,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,material:f,renderOrder:3});return p.lineGroup.position.z+=.01,{china:s,chinaTopLine:p}}createProvince(){let n=this.staticMapData.mapJson,[i,c]=this.createProvinceMaterial();this.focusMapTopMaterial=i,this.focusMapSideMaterial=c;let s=new Fi(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,.11),data:n,depth:this.depth,topFaceMaterial:i,sideMaterial:c,renderOrder:9}),f=new mo({color:16777215,transparent:!0,opacity:.5});this.createTerrainSurfaceShader(f),this.defaultMaterial=f,this.defaultLightMaterial=this.defaultMaterial.clone(),this.defaultLightMaterial.color=new se("rgba(115,208,255,1)"),this.defaultLightMaterial.opacity=.8;let p=new yo(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,this.depth+.22),data:n,material:f,renderOrder:2});p.mapGroup.children.map(m=>{m.children.map(b=>{b.type==="Mesh"&&this.eventElement.push(b)})}),this.mapLineMaterial=new ho({color:16777215,opacity:0,transparent:!0,fog:!1});let h=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:n,material:this.mapLineMaterial,renderOrder:3});return h.lineGroup.position.z+=this.depth+.23,{map:s,mapTop:p,mapLine:h}}createProvinceMaterial(){let n=new fo({color:16777215,transparent:!0,opacity:0,fog:!1,side:qe});n.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(1058614)}}),s.vertexShader=s.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),s.fragmentShader=s.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - void main() { - `),s.fragmentShader=s.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec3 gradient = mix(uColor1, uColor2, vPosition.x/15.78); - outgoingLight = outgoingLight*gradient; - float topAlpha = 0.5; - if(vPosition.z>0.3){ - diffuseColor.a *= topAlpha; - } - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)};let i=this.assets.instance.getResource("side");i.wrapS=he,i.wrapT=he,i.repeat.set(1,1.5),i.offset.y+=.065;let c=new mo({color:16777215,map:i,fog:!1,opacity:0,side:qe});return this.time.on("tick",()=>{i.offset.y+=.005}),c.onBeforeCompile=s=>{s.uniforms=V(D({},s.uniforms),{uColor1:{value:new se(2780818)},uColor2:{value:new se(2780818)}}),s.vertexShader=s.vertexShader.replace("void main() {",` - attribute float alpha; - varying vec3 vPosition; - varying float vAlpha; - void main() { - vAlpha = alpha; - vPosition = position; - `),s.fragmentShader=s.fragmentShader.replace("void main() {",` - varying vec3 vPosition; - varying float vAlpha; - uniform vec3 uColor1; - uniform vec3 uColor2; - void main() { - `),s.fragmentShader=s.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec3 gradient = mix(uColor1, uColor2, vPosition.z/1.2); - outgoingLight = outgoingLight*gradient; - gl_FragColor = vec4( outgoingLight, diffuseColor.a ); - `)},[n,c]}createTerrainSurfaceShader(n){n.onBeforeCompile=i=>{i.uniforms=V(D({},i.uniforms),{uTerrainColor1:{value:new se(807272)},uTerrainColor2:{value:new se(1619414)},uTerrainColor3:{value:new se(7074015)}}),i.vertexShader=i.vertexShader.replace("void main() {",` - varying vec3 vTerrainPosition; - void main() { - vTerrainPosition = position; - `),i.fragmentShader=i.fragmentShader.replace("void main() {",` - varying vec3 vTerrainPosition; - uniform vec3 uTerrainColor1; - uniform vec3 uTerrainColor2; - uniform vec3 uTerrainColor3; - float terrainHash(vec2 p) { - return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453123); - } - float terrainNoise(vec2 p) { - vec2 i = floor(p); - vec2 f = fract(p); - vec2 u = f * f * (3.0 - 2.0 * f); - return mix( - mix(terrainHash(i + vec2(0.0, 0.0)), terrainHash(i + vec2(1.0, 0.0)), u.x), - mix(terrainHash(i + vec2(0.0, 1.0)), terrainHash(i + vec2(1.0, 1.0)), u.x), - u.y - ); - } - void main() { - `),i.fragmentShader=i.fragmentShader.replace("#include ",` - #ifdef OPAQUE - diffuseColor.a = 1.0; - #endif - #ifdef USE_TRANSMISSION - diffuseColor.a *= transmissionAlpha + 0.1; - #endif - vec2 terrainUv = vTerrainPosition.xz; - float broad = terrainNoise(terrainUv * 0.32); - float detail = terrainNoise(terrainUv * 1.6); - float bands = sin(terrainUv.x * 0.75 + terrainUv.y * 0.46) * 0.5 + 0.5; - float ridges = smoothstep(0.48, 0.86, bands) * 0.16; - float mixValue = clamp((vTerrainPosition.x + 9.0) / 18.0 + (broad - 0.5) * 0.28, 0.0, 1.0); - vec3 terrainColor = mix(uTerrainColor1, uTerrainColor2, mixValue); - terrainColor = mix(terrainColor, uTerrainColor3, clamp(detail * 0.18 + ridges, 0.0, 0.28)); - float shade = 0.8 + broad * 0.24 + detail * 0.1; - outgoingLight *= terrainColor * shade; - diffuseColor.a *= 0.68; - gl_FragColor = vec4(outgoingLight, diffuseColor.a); - `)}}createBar(){let n=this,i=ga(Co).filter((m,b)=>b<7);const c=new fe;this.barGroup=c;const s=.7,f=4*s,p=i[0].value;this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],i.map((m,b)=>{let C=f*(m.value/p),S=new Z({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Ei(S,{uColor1:b>3?16506760:5291006,uColor2:b>3?16776948:7863285,size:C,dir:"y"});const O=new vi(.1*s,.1*s,C);O.translate(0,0,C/2);const x=new Q(O,S);x.renderOrder=5;let v=x,[_,B]=this.geoProjection(m.centroid);v.position.set(_,-B,this.depth+.45),v.scale.set(1,1,0),v.userData=D({},m);let E=this.createQuan(new Y(_,this.depth+.44,B),b),R=this.createHUIGUANG(C,b>3?16776948:7863285);v.add(...R),c.add(v),c.rotation.x=-Math.PI/2;let X=h(m,b,new Y(_,-B,this.depth+1.1+C));this.allBar.push(v),this.allBarMaterial.push(S),this.allGuangquan.push(E),this.allProvinceLabel.push(X)}),this.scene.add(c);function h(m,b,C){let S=n.label3d.create("","provinces-label",!1);return S.init(`
    -
    -
    ${m.value}km²
    -
    ${b+1}
    -
    -
    `,C),n.label3d.setLabelStyle(S,.01,"x"),S.setParent(n.labelGroup),S}}createEvent(){let n=[];this.selectedRegion=null;const i=(s,f=!1)=>{var p,h,m;!f&&((h=(p=this.selectedRegion)==null?void 0:p.userData)==null?void 0:h.name)===((m=s==null?void 0:s.userData)==null?void 0:m.name)||s.traverse(b=>{b.isMesh&&(b.material=this.defaultMaterial)})},c=s=>{s.traverse(f=>{f.isMesh&&(f.material=this.defaultLightMaterial)})};this.eventElement.map(s=>{this.interactionManager.add(s),s.addEventListener("mousedown",f=>{var h;const p=((h=f.target)==null?void 0:h.parent)||f.target;this.selectedRegion&&this.selectedRegion!==p&&i(this.selectedRegion,!0),this.selectedRegion=p,c(p),this.emitTownClick((p==null?void 0:p.userData)||{})}),s.addEventListener("mouseover",f=>{n.includes(f.target.parent)||n.push(f.target.parent),document.body.style.cursor="pointer",c(f.target.parent)}),s.addEventListener("mouseout",f=>{n=n.filter(p=>p.userData.name!==f.target.parent.userData.name),n.length>0&&n[n.length-1],i(f.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(n,i){let c=new Ee(.35,n);c.translate(0,n/2,0);const s=this.assets.instance.getResource("huiguang");s.colorSpace=da,s.wrapS=he,s.wrapT=he;let f=new Z({color:i,map:s,transparent:!0,opacity:.4,depthWrite:!1,side:qe,blending:me}),p=new Q(c,f);p.renderOrder=10,p.rotateX(Math.PI/2);let h=p.clone(),m=p.clone();return h.rotateY(Math.PI/180*60),m.rotateY(Math.PI/180*120),[p,h,m]}createQuan(n,i){const c=this.assets.instance.getResource("guangquan1"),s=this.assets.instance.getResource("guangquan2");let f=new Ee(.5,.5),p=new Z({color:16777215,map:c,alphaMap:c,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),h=new Z({color:16777215,map:s,alphaMap:s,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),m=new Q(f,p),b=new Q(f,h);return m.renderOrder=6,b.renderOrder=6,m.rotateX(-Math.PI/2),b.rotateX(-Math.PI/2),m.position.copy(n),b.position.copy(n),b.position.y-=.001,m.scale.set(0,0,0),b.scale.set(0,0,0),this.quanGroup=new fe,this.quanGroup.add(m,b),this.scene.add(this.quanGroup),this.time.on("tick",()=>{m.rotation.z+=.05}),this.quanGroup}createDiffuse(){let n=new Ee(200,200),i=new Z({color:0,depthWrite:!1,transparent:!0,blending:yi});i.blendEquation=bi,i.blendSrc=wi,i.blendDst=xi,new Oi({material:i,time:this.time,size:60,diffuseSpeed:8,diffuseColor:7442830,diffuseWidth:2,callback:s=>{const f=setTimeout(()=>{this.addSceneTween(Ye.to(s.uniforms.uTime,{value:4,repeat:-1,duration:6,ease:"power1.easeIn"}))},3);this.addSceneTimer(f)}});let c=new Q(n,i);c.renderOrder=3,c.rotation.x=-Math.PI/2,c.position.set(0,.21,0),this.scene.add(c)}createGrid(){new Bi(this,{gridSize:68,gridDivision:28,gridColor:2123149,shapeSize:.58,shapeColor:4035005,pointSize:.12,pointColor:1805508,pointLayout:{row:170,col:170},pointBlending:me})}createBottomBg(){let n=new Ee(42,42);const i=this.assets.instance.getResource("ocean");i.colorSpace=da,i.wrapS=he,i.wrapT=he,i.repeat.set(1,1);let c=new Z({map:i,opacity:1,fog:!1}),s=new Q(n,c);s.rotation.x=-Math.PI/2,s.position.set(0,-.7,0),this.scene.add(s)}createChinaBlurLine(){let n=new Ee(147,147);const i=this.assets.instance.getResource("chinaBlurLine");i.colorSpace=da,i.wrapS=he,i.wrapT=he,i.generateMipmaps=!1,i.minFilter=Si,i.repeat.set(1,1);let c=new Z({color:4162253,alphaMap:i,transparent:!0,opacity:.5}),s=new Q(n,c);s.rotateX(-Math.PI/2),s.position.set(-19.3,-.5,-19.7),this.scene.add(s)}createLabel(){let n=this,i=this.labelGroup,c=this.label3d,s=[];if(br.map(h=>{if(h.hide==!0)return!1;let m=f(h,c,i);s.push(m)}),this.showDataOverlays){let h=p({icon:ha,center:[103.13,33.01],width:"40px",height:"40px",reflect:!0},c,i),m=p({icon:ha,center:[102.03,32.44],width:"20px",height:"20px",reflect:!1},c,i);s.push(h),s.push(m)}this.otherLabel=s;function f(h,m,b){let C=m.create("",`china-label ${h.blur?" blur":""}`,!1);const[S,O]=n.geoProjection(h.center),x=n.showDataOverlays?``:"";return C.init(`
    ${x}${h.name}
    `,new Y(S,-O,n.depth+.85)),m.setLabelStyle(C,.018,"x"),C.setParent(b),C.userData=V(D({},h),{labelType:"town-label",baseScale:.018}),C}function p(h,m,b){let C=m.create("",`decoration-label ${h.reflect?" reflect":""}`,!1);const[S,O]=n.geoProjection(h.center);return C.init(`
    `,new Y(S,-O,.4)),m.setLabelStyle(C,.02,"x"),C.setParent(b),C}}createRotateBorder(){let n=12,i=this.assets.instance.getResource("rotationBorder1"),c=this.assets.instance.getResource("rotationBorder2"),s=new bo(this,{width:n*1.178,needRotate:!0,rotateSpeed:.001,material:new Z({map:i,color:4763647,transparent:!0,opacity:.2,side:qe,depthWrite:!1,blending:me}),position:new Y(0,.28,0)});s.instance.rotation.x=-Math.PI/2,s.instance.renderOrder=6,s.instance.scale.set(0,0,0),s.setParent(this.scene);let f=new bo(this,{width:n*1.116,needRotate:!0,rotateSpeed:-.004,material:new Z({map:c,color:4763647,transparent:!0,opacity:.4,side:qe,depthWrite:!1,blending:me}),position:new Y(0,.3,0)});f.instance.rotation.x=-Math.PI/2,f.instance.renderOrder=6,f.instance.scale.set(0,0,0),f.setParent(this.scene),this.rotateBorder1=s.instance,this.rotateBorder2=f.instance}createFlyLine(){this.flyLineGroup=new fe,this.flyLineGroup.visible=!1,this.scene.add(this.flyLineGroup);const n=this.assets.instance.getResource("mapFlyline");n.wrapS=n.wrapT=he,n.repeat.set(.5,2);const i=.1,c=32,s=2,f=!1;let[p,h]=this.geoProjection(this.flyLineCenter),m=new Y(p,-h,0);const b=new Z({map:n,color:2781042,transparent:!0,fog:!1,opacity:1,depthTest:!1,blending:me});this.flyLineMaterial=b,this.flyLineTexture=n,this.time.on("tick",()=>{n.offset.x-=this.sceneMode==="trade"?.014:.006}),Co.filter((C,S)=>S<7).map(C=>{let[S,O]=this.geoProjection(C.centroid),x=new Y(S,-O,0);const v=new Y;v.addVectors(m,x).multiplyScalar(.5),v.setZ(3);const _=new Mi(m,v,x),B=new ki(_,c,i,s,f),E=new Q(B,b);E.rotation.x=-Math.PI/2,E.position.set(0,this.depth+.44,0),E.renderOrder=21,this.flyLineGroup.add(E)})}createFocus(){let n=new yr(this,{color1:12451325,color2:12451325}),[i,c]=this.geoProjection(this.flyLineCenter);n.position.set(i,-c,this.depth+.44),n.scale.set(1,1,1),this.flyLineFocusGroup.add(n)}createParticles(){this.particles=new wo(this,{num:10,range:30,dir:"up",speed:.05,material:new Pi({map:wo.createTexture(),size:1,color:61166,transparent:!0,opacity:1,depthTest:!1,depthWrite:!1,vertexColors:!0,blending:me,sizeAttenuation:!0})}),this.particleGroup=new fe,this.scene.add(this.particleGroup),this.particleGroup.rotation.x=-Math.PI/2,this.particles.setParent(this.particleGroup),this.particles.enable=!0,this.particleGroup.visible=!0}createScatter(){this.scatterGroup=new fe,this.scatterGroup.visible=!1,this.scatterGroup.rotation.x=-Math.PI/2,this.scene.add(this.scatterGroup);const n=this.assets.instance.getResource("arrow"),i=new po({map:n,color:16776948,fog:!1,transparent:!0,depthTest:!1});let c=ga(wr),s=c[0].value;c.map(f=>{const p=new go(i);p.renderOrder=23;let h=.1+f.value/s*.2;p.scale.set(h,h,h);let[m,b]=this.geoProjection([f.lng,f.lat]);p.position.set(m,-b,this.depth+.45),p.userData.position=[m,-b,this.depth+.45],this.scatterGroup.add(p)})}createInfoPoint(){let n=this;this.InfoPointGroup=new fe,this.scene.add(this.InfoPointGroup),this.InfoPointGroup.visible=!1,this.InfoPointGroup.rotation.x=-Math.PI/2,this.infoPointIndex=0,this.infoPointLabelTime=null,this.infoLabelElement=[];let i=this.label3d;const c=this.assets.instance.getResource("point");let s=[16776948,7863285],f=ga(xr),p=f[0].value;f.map((m,b)=>{const C=new po({map:c,color:s[b%s.length],fog:!1,transparent:!0,depthTest:!1}),S=new go(C);S.renderOrder=23;let O=.7+m.value/p*.4;S.scale.set(O,O,O);let[x,v]=this.geoProjection([m.lng,m.lat]),_=[x,-v,this.depth+.7];S.position.set(..._),S.userData.position=[..._],S.userData={position:[x,-v,this.depth+.7],name:m.name,value:m.value,level:m.level,index:b},this.InfoPointGroup.add(S);let B=h(m,i,this.InfoPointGroup);this.infoLabelElement.push(B),this.interactionManager.add(S),S.addEventListener("mousedown",E=>{if(this.clicked||!this.InfoPointGroup.visible)return!1;this.clicked=!0,this.emitTownClick(E.target.userData,"info-point"),this.infoPointIndex=E.target.userData.index,this.infoLabelElement.map(R=>{R.visible=!1}),B.visible=!0,this.createInfoPointLabelLoop()}),S.addEventListener("mouseup",E=>{this.clicked=!1}),S.addEventListener("mouseover",E=>{document.body.style.cursor="pointer"}),S.addEventListener("mouseout",E=>{document.body.style.cursor="default"})});function h(m,b,C){let S=b.create("","info-point",!0);const[O,x]=n.geoProjection([m.lng,m.lat]);return S.init(`
    -
    -
    -
    -
    -
    -
    -
    -
    名称${m.name}
    -
    面积${m.value}km²
    -
    类型${m.level}
    -
    -
    -
    - `,new Y(O,-x,n.depth+1.9)),b.setLabelStyle(S,.015,"x"),S.setParent(C),S.visible=!1,S}}emitTownClick(n={},i="region"){var s,f;const c=n.name||n.fullName;c&&((f=(s=this.options)==null?void 0:s.onTownClick)==null||f.call(s,V(D({},n),{name:c,source:i})))}setSceneMode(n="default"){this.sceneMode=n,this.applySceneMode()}setDataOverlaysVisible(n=!0){this.showDataOverlays=!!n,this.applySceneMode()}applySceneMode(){var i,c,s,f;if(!this.showDataOverlays){this.flyLineGroup&&(this.flyLineGroup.visible=!1),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!1),this.scatterGroup&&(this.scatterGroup.visible=!1),this.InfoPointGroup&&(this.InfoPointGroup.visible=!1),this.barGroup&&(this.barGroup.visible=!1),(i=this.allProvinceLabel)==null||i.forEach(p=>{p.visible=!1}),(c=this.allGuangquan)==null||c.forEach(p=>{p.visible=!1});return}const n=this.sceneMode==="trade";this.flyLineGroup&&(this.flyLineGroup.visible=n||this.mapAnimationDone),this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=n||this.mapAnimationDone),this.flyLineMaterial&&(this.flyLineMaterial.color.set(n?7534280:2781042),this.flyLineMaterial.opacity=n?1:.82),this.flyLineTexture&&this.flyLineTexture.repeat.set(n?.32:.5,n?3:2),this.scatterGroup&&(this.scatterGroup.visible=!n&&this.mapAnimationDone),this.InfoPointGroup&&(this.InfoPointGroup.visible=!n&&this.mapAnimationDone),this.barGroup&&(this.barGroup.visible=!n),(s=this.allProvinceLabel)==null||s.forEach(p=>{p.visible=!n}),(f=this.allGuangquan)==null||f.forEach(p=>{p.visible=!n})}createInfoPointLabelLoop(){var n;this.scenePaused||!((n=this.infoLabelElement)!=null&&n.length)||(clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=setInterval(()=>{this.infoPointIndex++,this.infoPointIndex>=this.infoLabelElement.length&&(this.infoPointIndex=0),this.infoLabelElement.map((i,c)=>{this.infoPointIndex===c?i.visible=!0:i.visible=!1})},3e3))}createStorke(){const n=this.staticMapData.mapStroke,i=this.assets.instance.getResource("pathLine3");i.wrapS=i.wrapT=he,i.repeat.set(2,1);let c=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,this.depth+.24),data:n,material:new Z({color:2868444,map:i,alphaMap:i,fog:!1,transparent:!0,opacity:1,blending:me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{i.offset.x+=.005})}geoProjection(n){return this.geoProjectionFn(n)}updateTownLabelScale(){var h,m,b;const n=this.otherLabel||[],i=(h=this.camera)==null?void 0:h.instance,c=(b=(m=this.camera)==null?void 0:m.controls)==null?void 0:b.target;if(!n.length||!i||!c)return;const s=i.position.distanceTo(c),f=kr(s*72e-5,.011,.026),p=s>45?"0.76":s<22?"0.94":"1";n.forEach(C=>{var O,x,v;if(((O=C==null?void 0:C.userData)==null?void 0:O.labelType)!=="town-label")return;C.scale.set(f,f,f);const S=(v=(x=C.element)==null?void 0:x.querySelector)==null?void 0:v.call(x,".other-label");S&&(S.style.opacity=p)})}update(){super.update(),this.updateTownLabelScale(),this.interactionManager&&this.interactionManager.update()}pauseScene(){var n,i;this.scenePaused=!0,(i=(n=this.time)==null?void 0:n.pause)==null||i.call(n),this.sceneTweens.forEach(c=>{var s;return(s=c==null?void 0:c.pause)==null?void 0:s.call(c)}),clearInterval(this.infoPointLabelTime),this.infoPointLabelTime=null}resumeScene(){var n,i,c;this.scenePaused=!1,(i=(n=this.time)==null?void 0:n.resume)==null||i.call(n),this.sceneTweens.forEach(s=>{var f;return(f=s==null?void 0:s.resume)==null?void 0:f.call(s)}),(c=this.InfoPointGroup)!=null&&c.visible&&!this.infoPointLabelTime&&this.createInfoPointLabelLoop()}destroy(){this.pauseScene(),this.sceneTimers.forEach(n=>clearTimeout(n)),this.sceneTimers=[],this.sceneTweens.forEach(n=>{var i;return(i=n==null?void 0:n.kill)==null?void 0:i.call(n)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const Cr={class:"map"},Ar={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0},maxPixelRatio:{type:Number,default:0}},emits:["town-click","play-complete"],setup(k,{expose:n,emit:i}){const c=G(null),s=ei(null),f=k,p=i;let h=!1;Lo(()=>{O()});function m(x){var v,_,B,E;s.value||!c.value||(s.value=new Pr(c.value,x,{showDataOverlays:f.showDataOverlays,maxPixelRatio:f.maxPixelRatio||void 0,onTownClick:R=>p("town-click",R),onPlayComplete:()=>p("play-complete")}),(_=(v=s.value).setSceneMode)==null||_.call(v,f.sceneMode),(E=(B=s.value).setDataOverlaysVisible)==null||E.call(B,f.showDataOverlays),s.value.time.pause())}function b(){return re(this,null,function*(){var x,v,_,B;s.value&&(C(),!(h||s.value.mapAnimationDone)&&(h=!0,(v=(x=s.value.animateTl)==null?void 0:x.timeScale)==null||v.call(x,1),(B=(_=s.value.animateTl)==null?void 0:_.play)==null||B.call(_)))})}function C(){var x,v;s.value&&((v=(x=s.value).resumeScene)==null||v.call(x),s.value.resumeScene||s.value.time.resume())}function S(){var x,v,_,B,E,R;s.value&&((v=(x=s.value.animateTl)==null?void 0:x.pause)==null||v.call(x),(B=(_=s.value).pauseScene)==null||B.call(_),s.value.pauseScene||(R=(E=s.value.time)==null?void 0:E.pause)==null||R.call(E))}function O(){var x,v;(v=(x=s.value)==null?void 0:x.destroy)==null||v.call(x),s.value=null}return n({loadMap:m,play:b,resume:C,pause:S,destroyMap:O,canvasMap:s}),ht(()=>f.sceneMode,x=>{var v,_;(_=(v=s.value)==null?void 0:v.setSceneMode)==null||_.call(v,x)},{immediate:!0}),ht(()=>f.showDataOverlays,x=>{var v,_;(_=(v=s.value)==null?void 0:v.setDataOverlaysVisible)==null||_.call(v,x)}),(x,v)=>(A(),F("div",Cr,[w("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Lr=""+new URL("flyline6-525edf67-balabala-1784045078568.png",import.meta.url).href;class Tr{constructor(n={}){this.options=n||{},this.init()}init(){this.instance=new ji,this.instance.addLoader(Ci,"FileLoader");const n={type:"File",name:"china",path:ua(si)},i=[{type:"File",name:"mapJson",path:ua(li)},{type:"File",name:"mapStroke",path:ua(ci)},{type:"Texture",name:"rotationBorder1",path:Wi},{type:"Texture",name:"rotationBorder2",path:Ui},{type:"Texture",name:"chinaBlurLine",path:Ki},{type:"Texture",name:"ocean",path:qi},{type:"Texture",name:"side",path:Yi},{type:"Texture",name:"pathLine3",path:Qi}],c=[{type:"Texture",name:"flyline",path:So},{type:"Texture",name:"pathLine",path:So},{type:"Texture",name:"pathLine2",path:Ji},{type:"Texture",name:"huiguang",path:Zi},{type:"Texture",name:"guangquan1",path:Mo},{type:"Texture",name:"guangquan2",path:Xi},{type:"Texture",name:"flyLineFocus",path:Mo},{type:"Texture",name:"mapFlyline",path:Lr},{type:"Texture",name:"arrow",path:er},{type:"Texture",name:"point",path:tr},{type:"Texture",name:"focusArrows",path:ar},{type:"Texture",name:"focusBar",path:or},{type:"Texture",name:"focusBg",path:nr},{type:"Texture",name:"focusMidQuan",path:ir},{type:"Texture",name:"focusMoveBg",path:rr}],s=this.options.showDataOverlays===!1?i:[n,...i,...c];this.instance.loadAll(s)}}const _r={class:"home-dashboard"},Ir={class:"home-bottom-switcher"},Fr={class:"home-left"},Er={class:"home-side-stack is-left"},Or={class:"home-right"},Br={class:"home-side-stack is-right"},Gr=["aria-label","onClick"],Nr={key:0,class:"home-video-monitor"},Rr=["disabled"],Hr=["data-video-index","onClick","onKeydown"],Dr={key:0,class:"home-video-loading"},zr={key:1,class:"home-video-error"},$r=["onClick"],Vr={class:"home-video-point-name"},jr=["disabled"],Wr={key:1,class:"home-forecast-trend-card"},Ur={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},Kr=["onClick"],qr={key:3,class:"home-balance-gauge-grid"},Yr={class:"home-balance-gauge-head"},Qr={class:"home-balance-gauge-ring"},Jr={class:"home-balance-gauge-value"},Zr={class:"home-balance-gauge-name"},Xr={class:"home-balance-gauge-extra"},es={class:"home-more-dialog home-video-dialog"},ts={class:"home-more-dialog-head"},as={key:0,class:"home-video-modal-grid"},os=["data-video-index","onClick","onKeydown"],ns={key:0,class:"home-video-loading"},is={key:1,class:"home-video-error"},rs=["onClick"],ss={class:"home-video-point-name"},ls={key:1,class:"home-more-empty"},cs={key:2,class:"home-more-pager"},us=["disabled"],ds=["disabled"],fs={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},hs={class:"home-more-dialog home-balance-dialog"},ms={class:"home-more-dialog-head"},ps={class:"home-balance-modal-grid"},gs={class:"home-balance-modal-title"},vs={class:"home-balance-modal-value"},ys="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",bs="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",ws=4,Ao="#ffffff",ut="#ffffff",dt="rgba(246, 253, 255, 0.92)",Ke="rgba(242, 253, 255, 0.9)",It="rgba(218, 250, 255, 0.28)",xs=12e3,Ss=9.35,Fe="home-3d",ft=9,js={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(k,{expose:n,emit:i}){const c={图斑编号:"patch_no",图斑号:"patch_no",湿地编号:"land_number",草地编号:"land_number",林地类型:"dlmc",地类:"landUseName",地类名称:"landUseName",所在乡镇:"townName",所在区域:"full_name",面积:"acreage",图斑面积:"acreage",湿地面积:"acreage",草场面积:"acreage",草原类:"grassTypeName",草原型:"grassMinType",草原等级:"grasslandLevel",草原类型:"basic_type_name",小斑干草产量:"xbGcYield",小斑鲜草产量:"xbXcYield",鲜草产量:"xcYield",干草产量:"gcYield",海拔:"elevation",地貌:"landformName",权属单位:"qsdwmc",坐落单位:"zldwmc",林班:"lin_ban",小班:"xiao_ban",森林类别:"sen_lin_lb",林种:"lin_zhong",公益林等级:"gjgyl_bhdj",保护等级:"bh_dj",质量等级:"zl_dj",优势树种:"you_shi_sz",起源:"qi_yuan",龄组:"ling_zu",郁闭度:"yu_bi_du",林地权属:"ld_qs",土地使用权属:"tdsyqs",林木权属:"lmqs",生态区位:"stqwmc",坡度等级:"slope"},s=new Set(["code","msg","message","success","data","result","grassland","wetland","woodland","basicGrassland","dyColumn","geom","wkt","geometry","the_geom","theGeom","shape","shape_leng","shape_length","length","perimeter","gid","id","objectid","object_id","fid","key_uid","bsm","ysdm"].map(e=>e.toLowerCase())),f=k,p=i,h=G(null),m=G(null),b=G(null),C=G(null),S=new Map,O=G({}),x=new Map;let v=!1,_=!1,B=null,E=null;const R=new Map,X=new Map,Ft=new Set,Et=new Map;let Me=null,Qe="",ya=!1,Je=0,ee=null,Ze=!1,Ot=!1;const ke=new Map,pe=G(0),te=G([]),Bt=G(0),ye=G(0),le=G(!1),ce=G(1),Xe=G(!1),ae=G(null),Gt=G(!1),Nt=G("month"),Rt=G(!1),ba=G(!1),U=G(""),_o=`home-video-player-${Math.random().toString(36).slice(2)}`,ge=ni({}),Io=["#30dcff","#27f0c0","#8bf7ff","#48cfff","#48cfff","#24f6c4"],wa=vo.sideCardWidth,xa=G(typeof window=="undefined"?1080:window.innerHeight);vo.sideCardGap;const et=I(()=>Ai(xa.value)),mt=I(()=>et.value),Fo=mt,Eo=Gi("2028"),Ht=[{key:"day",label:"日",unit:"日"},{key:"week",label:"周",unit:"周"},{key:"month",label:"月",unit:"月"}],Dt=[{key:"grassland",name:"草地",color:"#A7FF4F",width:92},{key:"wetland",name:"湿地",color:"#36C8FF",width:92},{key:"woodland",name:"林地",color:"#31F084",width:92},{key:"yak",name:"牦牛",color:"#30DCFF",width:92}],Oo={grassland:{fill:"#A7FF4F",fillOpacity:.98,opacity:1,maxOpacity:1,stroke:"#F4FFCF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#DFFF86",glowBlur:18,glowOpacity:.44},wetland:{fill:"#36C8FF",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#EBFCFF",strokeOpacity:.95,strokeWidth:1.35,glowColor:"#9AF2FF",glowBlur:18,glowOpacity:.48},woodland:{fill:"#31F084",fillOpacity:.97,opacity:1,maxOpacity:1,stroke:"#D9FFF0",strokeOpacity:.94,strokeWidth:1.3,glowColor:"#7CFFBF",glowBlur:18,glowOpacity:.44}},Sa={grassland:{topicKey:"grassland",layerKey:"grassland-distribution",type:"raster"},wetland:{topicKey:"wetland",layerKey:"wetland-distribution",type:"raster"},woodland:{topicKey:"woodland",layerKey:"woodland-distribution",type:"raster"},yak:{topicKey:"yak-industry-chain",layerKey:"yak-recognition-layer",type:"vector",opacity:.94},pasture:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKey:"yak-industry-family-pasture",type:"vector",opacity:.96},base:{topicKey:"yak-industry-chain",layerKey:"yak-industry-points",legendKeys:["yak-industry-artificial-grassland","yak-industry-scale-breeding","yak-industry-breeding-selection"],type:"vector",opacity:.96}},oe=G(Fe),ue=G(null),Oe=G(!1),Be=G(!1),de=G(null),J=I(()=>oe.value!==Fe),Bo=I(()=>f.active&&!J.value),Ma=I(()=>{var d,g,M;const e=oe.value,t=Sa[e];if(!t)return null;const a=zi.find(P=>P.key===t.topicKey),o=In(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const r=Oo[e],l=t.legendKey?(o.legends||[]).find(P=>P.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(P=>(o.legends||[]).find(y=>y.key===P)).filter(Boolean):[];return t.type==="vector"?V(D({},o),{activeLegend:l||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=Dt.find(P=>P.key===e))==null?void 0:d.name)||o.name}图层`,opacity:(g=t.opacity)!=null?g:o.opacity,homePresentationMaxOpacity:(M=t.opacity)!=null?M:.96,showPointLabels:!1,hidePointFeatures:!1}):r?V(D({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:r.opacity,homePresentationMaxOpacity:r.maxOpacity,softMask:!1,homeGlowColor:r.glowColor,homeGlowBlur:r.glowBlur,homeGlowOpacity:r.glowOpacity,sldBody:Fn(o.layerName,r)}):null}),zt=I(()=>!!de.value),Go=dr,ka=I(()=>ur({point:de.value?On(de.value):null,rowCount:ue.value?ra(ue.value):0,loading:Be.value,empty:Oe.value||!ue.value})),No=I(()=>ka.value.height),Ro=I(()=>ka.value.style),Pa=I(()=>ta(ma.length)),Ge=I(()=>ta(_t.length)),Ca=I(()=>Pn(Nt.value)),Aa=I(()=>Cn(Eo,Ca.value.key)),tt=I(()=>ta(Aa.value.labels.length)),pt=I(()=>pr.filter(t=>t==null?void 0:t.name).map((t,a)=>({key:`home-balance-${t.areaCode||t.key||t.name}`,sourceIndex:a,name:t.name,value:t.overloadRate,unit:"%",status:t.level||"总体可控",extra:`载畜 ${ie(t.livestockCapacity)}头`}))),$t=I(()=>{const e=pt.value,t=3,a=e.length?Math.floor(pe.value/2)*t%e.length:0;return Array.from({length:Math.min(t,e.length)},(o,r)=>e[(a+r)%e.length])}),Ho=I(()=>{const e=$t.value.length;return e?pe.value%e:0}),gt={key:"home-empty-video",title:"暂无在线可播放摄像头",town:"红原县",scene:"基地监控",device:"",channel:"",cameraCount:0,status:"待接入",onlineRate:0,updateTime:"",operator:"等待在线摄像头",progress:0,image:co,playUrl:"",hdPlayUrl:"",token:""};function at(e){return(e==null?void 0:e.status)==="直播中"&&!!(e!=null&&e.hdPlayUrl&&(e!=null&&e.token))}const Ne=I(()=>te.value.map((e,t)=>({key:`home-video-carousel-${e.key||e.title||t}`,index:t,live:e})).filter(e=>at(e.live))),Vt=I(()=>{const e=Ne.value;if(!e.length)return 0;const t=K(ye.value),a=e.findIndex(r=>r.index===t),o=a>=0?a:0;return Xe.value||Rt.value||le.value?o:(Math.floor(pe.value/ws)+o)%e.length}),H=I(()=>{var e,t;return te.value.length?le.value?K(ye.value):(t=(e=Ne.value[Vt.value])==null?void 0:e.index)!=null?t:0:0}),Do=I(()=>te.value[H.value]||gt),La=I(()=>tn(Ne.value,Vt.value,gt)),zo=I(()=>te.value.filter(e=>at(e)).length),vt=I(()=>te.value.map((e,t)=>({index:t,live:e})).sort((e,t)=>Number(at(t.live))-Number(at(e.live))||e.index-t.index)),yt=I(()=>Math.max(1,Math.ceil(vt.value.length/ft))),Ta=I(()=>{const e=(ce.value-1)*ft;return vt.value.slice(e,e+ft).map(t=>({key:`home-video-modal-${t.live.key||t.live.title}-${t.index}`,index:t.index,live:t.live}))}),$o=I(()=>gr.map(e=>e.key==="today-outflow"?V(D({},e),{value:Bt.value}):e)),Vo=I(()=>{const e=Sn();return e.length?{key:"home-pasture-productivity",title:"草地生产力",rows:e,option:kn(e,"生产力"),height:et.value}:null}),jo=I(()=>({key:"yak-stock-distribution",title:"牦牛存栏分布",height:mt.value,option:oa({key:"yak-stock-distribution",rows:vr},"牦牛存栏",{showTrendLine:!0})})),Wo=I(()=>[aa(Le("grassland","grassland-town"),"草地面积"),aa(Le("wetland","wetland-town-area"),"湿地面积"),aa(Le("grassland","grassland-type-proportion"),"草原类别"),Vo.value].filter(Boolean).map((e,t)=>Mn(e,`forest-grass-wet-${t}`))),Uo=I(()=>[{key:"home-video-monitor",title:"基地监控",type:"video",height:Fo.value,live:Do.value},jo.value,{key:"yak-structure",title:"畜群结构",height:mt.value,option:Ko.value},{key:"home-town-balance-gauge",title:"草畜平衡",type:"gauge",height:mt.value,max:100,rows:$t.value}]),Ko=I(()=>ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",color:Io,tooltip:pa(e=>`${e.name}
    占比:${e.percent}%
    估算数量:${ie(e.value)}头`),legend:{orient:"vertical",right:0,top:"middle",itemWidth:8,itemHeight:8,itemGap:5,formatter(e){const t=ma.find(a=>a.name===e);return t?`${e} ${we(t.count)}头`:e},textStyle:{color:dt,fontSize:10}},series:[{name:"畜群结构",type:"pie",selectedMode:"single",selectedOffset:8,radius:["36%","62%"],center:["30%","54%"],avoidLabelOverlap:!0,label:{color:ut,fontSize:10,formatter:"{d}%"},labelLine:{length:7,length2:4,lineStyle:{color:"rgba(223, 250, 255, 0.35)"}},itemStyle:{borderColor:"rgba(3, 18, 31, 0.92)",borderWidth:3},emphasis:{scale:!0,scaleSize:8,itemStyle:{shadowBlur:5,shadowColor:"rgba(48, 220, 255, 0.2)"}},data:ma.map((e,t)=>({name:e.name,value:e.count,selected:t===Pa.value}))}]}));I(()=>ct({animation:!0,animationDuration:1100,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff"],tooltip:V(D({},pa()),{trigger:"axis",axisPointer:{type:"shadow"},formatter(e){const t=_t[e[0].dataIndex];return`${t.label}
    预测存栏:${ie(t.stock)}头`}}),grid:{left:50,right:18,top:16,bottom:24},xAxis:{type:"category",data:_t.map(e=>e.shortLabel),axisLabel:{color:Ke,fontSize:11},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.26)"}},axisTick:{show:!1}},yAxis:{type:"value",min(e){return Math.max(0,Math.floor(e.min/1e4)*1e4)},axisLabel:{color:Ke,fontSize:10,margin:4,formatter:e=>Za(e,1)},splitLine:{lineStyle:{color:It,type:"dashed"}}},series:[{name:"预测存栏",type:"bar",barWidth:24,data:_t.map((e,t)=>({value:e.stock,itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:t===Ge.value?"#8bf7ff":"#30dcff"},{offset:.72,color:t===Ge.value?"rgba(139, 247, 255, 0.7)":"rgba(48, 220, 255, 0.62)"},{offset:1,color:t===Ge.value?"rgba(139, 247, 255, 0.1)":"rgba(48, 220, 255, 0.08)"}]),shadowBlur:t===Ge.value?16:8,shadowColor:t===Ge.value?"rgba(139, 247, 255, 0.56)":"rgba(48, 220, 255, 0.28)"}})),itemStyle:{borderRadius:[9,9,1,1],color:new je(0,0,0,1,[{offset:0,color:"#30dcff"},{offset:.72,color:"rgba(48, 220, 255, 0.62)"},{offset:1,color:"rgba(48, 220, 255, 0.08)"}])},label:{show:!0,position:"top",color:ut,fontSize:10,formatter:({value:e})=>Za(e)}}]})),I(()=>{const e=Ca.value,t=Aa.value,a=Tn(t),o=An(a.length,e.key);return ct({animation:!0,animationDuration:1200,animationDurationUpdate:900,animationEasing:"cubicOut",color:["#30dcff","#8bf7ff","#48cfff"],tooltip:V(D({},pa()),{trigger:"axis",triggerOn:"mousemove|click",axisPointer:{type:"cross",crossStyle:{color:"rgba(126, 251, 246, 0.42)"},label:{color:"#eaffff",backgroundColor:"rgba(5, 31, 51, 0.96)"}},formatter(r){var M,P,y;const l=Array.isArray(r)?r:[r],u=l.find(T=>T.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(y=(P=u==null?void 0:u.dataIndex)!=null?P:(M=l[0])==null?void 0:M.dataIndex)!=null?y:0];if(!d)return"";const g=d.close-d.open;return[`${d.label}|${e.unit}度预测`,`预测存栏:${ie(d.close)}头`,`较上期:${_n(g)}头`,`繁殖补充:${ie(d.birth)}头`,`出栏扣减:${ie(d.outflow)}头`].join("
    ")}}),legend:{top:2,right:2,data:["预测存栏","繁殖补充","出栏扣减"],itemWidth:10,itemHeight:7,itemGap:7,textStyle:{color:dt,fontSize:10}},grid:{left:42,right:32,top:30,bottom:24},xAxis:{type:"category",boundaryGap:!0,data:t.labels,axisLabel:{color:Ke,fontSize:10,interval:o},axisLine:{lineStyle:{color:"rgba(48, 220, 255, 0.28)"}},axisTick:{show:!1}},yAxis:[{type:"value",scale:!0,axisLabel:{color:Ke,fontSize:10,formatter:we},splitLine:{lineStyle:{color:It,type:"dashed"}}},{type:"value",axisLabel:{color:dt,fontSize:10,formatter:we},splitLine:{show:!1}}],series:[{name:"预测存栏",type:"candlestick",yAxisIndex:0,barWidth:Ln(a.length,e.key),data:a,itemStyle:{color:"rgba(48, 220, 255, 0.82)",color0:"rgba(72, 207, 255, 0.82)",borderColor:"#30dcff",borderColor0:"#48cfff",borderWidth:1.2}},{name:"预测存栏线",type:"line",yAxisIndex:0,smooth:!0,symbol:"circle",symbolSize:3,data:a.map((r,l)=>({value:r.close,symbolSize:l===tt.value?7:3,itemStyle:{color:l===tt.value?"#ffffff":"#30dcff"}})),lineStyle:{width:1.6,color:"rgba(48, 220, 255, 0.86)"},itemStyle:{color:"#30dcff"},tooltip:{show:!1}},Ja("繁殖补充",t.births,"#8bf7ff",1,!1,tt.value),Ja("出栏扣减",t.outflow,"#48cfff",1,!1,tt.value)]})}),ti(()=>{na(),window.addEventListener("resize",na),window.addEventListener("keydown",eo),document.addEventListener("pointerdown",no,!0),document.addEventListener("click",Wa,!0),Ra(),jt()}),Lo(()=>{var e,t,a,o;v=!0,window.removeEventListener("resize",na),window.removeEventListener("keydown",eo),document.removeEventListener("pointerdown",no,!0),document.removeEventListener("click",Wa,!0),qa(),be(),Ut(),qt(),x.clear(),(t=(e=h.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=m.value)==null?void 0:a.destroyMap)==null||o.call(a),Jo()}),ht(H,()=>{if(!le.value){if(!Rt.value&&!ba.value&&!R.size){U.value="";return}be({resetError:!0})}}),ht(oe,e=>{var t,a;if(ve(),e===Fe){(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),W(()=>{bt(),Pe()});return}Fa(),W(()=>{var o,r;(r=(o=h.value)==null?void 0:o.resume)==null||r.call(o)})}),ht(()=>f.active,e=>{var t,a;e?(jt(),Zo(),Ga(),ya||Oa()):(_=!1,(a=(t=h.value)==null?void 0:t.pause)==null||a.call(t),Fa(),Ut(),qt(),be({resetError:!0}),xt(),St())});function jt(){_=!1,p("loading-progress",{progress:0}),W(()=>{var e,t,a,o;if(J.value){(t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)?Re():(o=(a=h.value)==null?void 0:a.loadMap)==null||o.call(a);return}bt()})}function bt(){if(!(v||!f.active||J.value)){if(Ea()){Pe(),Re();return}if(Ot){Ia();return}Ze||(Ze=!0,ee=new Tr({showDataOverlays:!1}),ee.instance.on("onProgress",qo),ee.instance.on("onLoad",_a),ee.instance.on("onError",Yo),ee.instance.loaded&&_a())}}function qo(e,t,a){if(v||J.value)return;const o=Math.max(1,Number(a)||1),r=Math.max(0,Number(t)||0);p("loading-progress",{progress:Math.min(98,Math.floor(r/o*92))})}function _a(){v||(Ze=!1,Ot=!0,p("loading-progress",{progress:96}),W(Ia))}function Yo(e){Ze=!1,console.warn("[home] 3D map assets load failed",e),Re()}function Ia(){var e,t,a,o;v||!f.active||J.value||!ee||((t=(e=m.value)==null?void 0:e.loadMap)==null||t.call(e,ee),Pe(),(o=(a=m.value)==null?void 0:a.play)==null||o.call(a),Re())}function Pe(){var a,o,r,l,u,d,g,M;const e=m.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=Ea();(r=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||r.call(o),(l=t==null?void 0:t.resize)==null||l.call(t),(d=(u=t==null?void 0:t.label3d)==null?void 0:u.resize)==null||d.call(u),(M=(g=t==null?void 0:t.label3d)==null?void 0:g.update)==null||M.call(g)}function Fa(){var e,t;(t=(e=m.value)==null?void 0:e.pause)==null||t.call(e)}function Ea(){var t;const e=(t=m.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Qo(){J.value||Re()}function Jo(){var e,t;(t=(e=ee==null?void 0:ee.instance)==null?void 0:e.destroy)==null||t.call(e),ee=null,Ze=!1,Ot=!1}function Re(){v||_||(_=!0,p("loading-progress",{progress:100}),p("map-ready"),Oa())}function Wt(e={}){var t,a,o,r,l,u,d,g,M;if(!J.value){Pe();return}if((a=(t=h.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(r=(o=h.value)==null?void 0:o.resetView)==null||r.call(o),(l=h.value)!=null&&l.resetView||(d=(u=h.value)==null?void 0:u.refreshView)==null||d.call(u);return}(M=(g=h.value)==null?void 0:g.refreshView)==null||M.call(g)}function Zo(){oe.value!==Fe&&!Sa[oe.value]&&(oe.value=Fe);const e=()=>{if(!(v||!f.active)){if(J.value){Wt({reset:!0});return}bt(),Pe()}};W(()=>{e(),window.setTimeout(e,180)})}function Xo(){var e,t;if(ve(),!J.value){Pe();return}if((t=(e=h.value)==null?void 0:e.hasMap)!=null&&t.call(e)){Wt({reset:!0});return}jt(),W(()=>{var a,o;(o=(a=h.value)==null?void 0:a.resume)==null||o.call(a)})}function en(){if(ve(),oe.value===Fe){W(()=>{bt(),Pe()});return}oe.value=Fe}n({refreshMapView:Wt,resetMap:Xo,showDefaultThreeMap:en});function Oa(){Ut();const e=()=>{Me=null,Qe="",!(v||!f.active)&&(ya=!0,xn(),nn(),an(),f.active&&Ga())};if(typeof window.requestIdleCallback=="function"){Qe="idle",Me=window.requestIdleCallback(e,{timeout:1800});return}Qe="timeout",Me=window.setTimeout(e,650)}function Ut(){Me&&(Qe==="idle"&&typeof window.cancelIdleCallback=="function"?window.cancelIdleCallback(Me):window.clearTimeout(Me),Me=null,Qe="")}function Kt(e,t){e&&(t?x.set(e,t):x.delete(e))}function Ba(e,t){const a=Number(t==null?void 0:t.index);Number.isFinite(a)&&(e?S.set(a,e):S.delete(a)),t!=null&&t.isActive&&(b.value=e||null)}function tn(e=[],t=0,a=gt){const o=Array.isArray(e)?e:[];if(!o.length)return[{key:`empty-${a.key||"video"}`,index:0,live:a,isActive:!0}];const r=(t+o.length)%o.length,l=o[r],u=(l==null?void 0:l.live)||l||a,d=Number.isFinite(Number(l==null?void 0:l.index))?Number(l.index):r;return[{key:`${u.key||u.title||"video"}-${d}`,index:d,live:u,isActive:!0}]}function Ga(){!f.active||v||(qt(),B=window.setInterval(Na,2600),E=window.setTimeout(Na,800))}function qt(){B&&(window.clearInterval(B),B=null),E&&(window.clearTimeout(E),E=null)}function Na(){v||!f.active||(E=null,pe.value+=1,yn(),bn(),wn())}function Ra(){p("module-stats",{moduleKey:"home",items:$o.value})}function an(){return re(this,null,function*(){var t,a;const e=on(new Date);try{const o=yield mr({year:Number(e.slice(0,4)),startDate:e,endDate:e}),r=(o==null?void 0:o.metrics)||{},l=Number((a=(t=r.headCount)!=null?t:r.head_count)!=null?a:0);Bt.value=Number.isFinite(l)?l:0}catch(o){Bt.value=0}v||Ra()})}function on(e){const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),o=String(e.getDate()).padStart(2,"0");return`${t}-${a}-${o}`}function nn(){return re(this,null,function*(){try{const e=yield ii({includeOffline:!0,includeHidden:!0});if(v)return;te.value=e,ye.value=0,ce.value=1,Xe.value=!1,U.value=e.some(t=>at(t))?"":"暂无在线可播放摄像头"}catch(e){if(v)return;te.value=[],U.value="监控接口暂不可用",window.setTimeout(()=>{v||U.value==="监控接口暂不可用"&&(U.value="")},2400)}})}function K(e){const t=te.value.length;return t?((Number(e)||0)+t)%t:0}function ne(e){return String(K(e))}function Ha(e){const t=ne(e);return ge[t]||(ge[t]={playing:!1,loading:!1,ready:!1,error:""}),ge[t]}function ot(e){return ge[ne(e)]||{}}function nt(e){return`${_o}-${ne(e)}`}function Yt(e){return!!ot(e).playing}function wt(e){return!!ot(e).loading}function He(e){const t=ot(e).error;return t||(K(e)===H.value?U.value:"")}function Da(e){const t=ot(e);return!!(t.playing||t.loading)}function Ce(){const e=Object.values(ge);Rt.value=e.some(t=>t.playing),ba.value=e.some(t=>t.loading)}function za(e,t=!0,a=H.value){const o=(e==null?void 0:e.image)||co;return Yt(a)&&t?void 0:{backgroundImage:`linear-gradient(180deg, rgba(0, 16, 26, 0.08), rgba(0, 16, 26, 0.32)), url(${o})`}}function rn(){Va(-1)}function sn(){Va(1)}function ln(){const e=H.value;be({resetError:!0}),ye.value=e,Xe.value=!0,pe.value=0;const t=vt.value.findIndex(a=>a.index===e);ce.value=Math.floor(Math.max(0,t)/ft)+1,le.value=!0,W(()=>Jt())}function xt(){le.value&&(be({resetError:!0}),le.value=!1)}function $a(e){var o,r;const t=Math.max(1,Math.min(yt.value,Number(e)||1));if(t===ce.value)return;be({resetError:!0}),ce.value=t;const a=(t-1)*ft;ye.value=(r=(o=vt.value[a])==null?void 0:o.index)!=null?r:0,W(()=>Jt())}function cn(){Gt.value=!0}function St(){Gt.value=!1}function Va(e){var r,l;const t=Ne.value,a=t.length;if(!a)return;be({resetError:!0});const o=Vt.value;ye.value=(l=(r=t[(o+e+a)%a])==null?void 0:r.index)!=null?l:0,Xe.value=!0,pe.value=0}function Ae(e){if(!te.value.length){mn();return}const a=K(e),o=ne(a),r=ot(a);if(ye.value=a,Xe.value=!0,pe.value=0,Ft.has(o)||R.has(o)||(r.playing||r.loading)&&!r.error){ze(a);return}Ft.add(o),W(()=>re(this,null,function*(){try{yield Ka(a,{stopOthers:!le.value})}finally{Ft.delete(o)}}))}function ja(e,t){dn(t==null?void 0:t.target)||Ae(e)}function Wa(e){var r,l,u,d,g,M,P,y,T,L;const t=((l=(r=e==null?void 0:e.target)==null?void 0:r.closest)==null?void 0:l.call(r,'[id$="-webExpend-content"]'))||((u=e==null?void 0:e.composedPath)==null?void 0:u.call(e).find(N=>String((N==null?void 0:N.id)||"").endsWith("-webExpend-content")));if(!t)return;const a=Number((M=(g=(d=t.closest)==null?void 0:d.call(t,"[data-video-index]"))==null?void 0:g.dataset)==null?void 0:M.videoIndex),o=(P=ae.value)!=null?P:Number.isFinite(a)?a:H.value;(y=e.preventDefault)==null||y.call(e),(T=e.stopPropagation)==null||T.call(e),(L=e.stopImmediatePropagation)==null||L.call(e),un(o)}function un(e){return re(this,null,function*(){var r,l;const t=K(e);if(ae.value===t){Mt();return}ae.value!==null&&Mt();const a=document.getElementById(`${nt(t)}-wrap`);if(!a)return;ae.value=t,yield W();const o=(l=(r=C.value)==null?void 0:r.querySelector)==null?void 0:l.call(r,".home-video-web-player-slot");if(!o){ae.value=null;return}o.appendChild(a),ze(t),De(t)})}function Mt(e={}){var r;const{restore:t=!0}=e,a=ae.value;if(a===null)return;const o=document.getElementById(`${nt(a)}-wrap`);if(t&&o){const l=kt(a)||b.value,u=(r=l==null?void 0:l.querySelector)==null?void 0:r.call(l,".home-video-player-host");u&&u.appendChild(o)}ae.value=null,t&&W(()=>{ze(a),De(a)})}function dn(e){var t;return!!((t=e==null?void 0:e.closest)!=null&&t.call(e,'[id$="-audioControls"], [id$="-ez-iframe-footer-container"], .footer-controls, .theme-icon-item'))}function fn(e){const t=Math.max(0,Number((e==null?void 0:e.value)||0)),a=Math.max(5,...pt.value.map(o=>Math.max(0,Number(o.value||0))));return Math.max(6,Math.min(100,t/a*100))}function hn(e){const t=Number(e==null?void 0:e.value),a=String((e==null?void 0:e.status)||(e==null?void 0:e.level)||"");return Number.isFinite(t)?t>20||/严重|重度|高超载/.test(a)?"#8bf7ff":t>10||/中度|预警/.test(a)?"#48cfff":t>5||/轻度/.test(a)?"#8bf7ff":t<=0||/总体可控|合理|正常|达标|无超载/.test(a)?"#24f6c4":"#30dcff":"#30dcff"}function Ua(e){return{"--balance-color":hn(e),"--balance-progress":`${fn(e)}%`}}function mn(){return re(this,null,function*(){return Ka(H.value,{stopOthers:!le.value})})}function Ka(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,r=K(e),l=te.value[r]||gt,u=ne(r);let d=Ha(r);if((l==null?void 0:l.status)!=="直播中"||!(l!=null&&l.hdPlayUrl)||!(l!=null&&l.token)){d.error=(l==null?void 0:l.status)==="离线"?"当前监控离线":"暂无在线可播放摄像头",d.loading=!1,d.playing=!1,d.ready=!1,r===H.value&&(U.value=d.error),Ce();return}if(R.has(u)||(d.playing||d.loading)&&!d.error)return;ye.value=r,pe.value=0,o?be({resetError:!0}):(R.has(u)||d.loading)&&it(r,{resetError:!0}),d=Ha(r),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,r===H.value&&(U.value=""),Ce(),yield W();const g=(X.get(u)||0)+1;X.set(u,g);let M=null;gn(r,g);try{const P=kt(r)||b.value,y=nt(r);if(!pn(P,y))throw new Error("视频容器未就绪");const{width:T,height:L}=Ya(P,340,92);if(M=new ri.EZUIKitPlayer({id:y,accessToken:l.token,url:l.hdPlayUrl,audio:0,width:T,height:L,themeData:vn(),handleError(N){g===X.get(u)&&(rt(r),console.warn("EZUIKit player error",N),Zt(M),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,X.set(u,g+1),R.delete(u),Xt(r),r===H.value&&(U.value=d.error),Ce())},handleSuccess(){g===X.get(u)&&(rt(r),d.error="",d.ready=!0,d.loading=!1,r===H.value&&(U.value=""),ze(r),De(r),Qt(y),Ce())},fullScreenChangeCallBack(){}}),g!==X.get(u)){Zt(M),Xt(r);return}R.set(u,M),d.playing=!0,Ce(),W(()=>{ze(r),De(r),Qt(y)})}catch(P){rt(r),console.warn("EZUIKit init error",P),d.error="视频加载失败",r===H.value&&(U.value=d.error),it(r,{resetError:!1})}})}function Qt(e){if(typeof document=="undefined"||!e)return;const t=document.getElementById(`${e}-ez-iframe-footer-container`),a=document.getElementById(`${e}-audioControls`);t&&Object.assign(t.style,{position:"absolute",left:"0",right:"0",bottom:"0",zIndex:"20",width:"100%",marginTop:"0",pointerEvents:"auto",visibility:"visible",opacity:"1"}),a&&Object.assign(a.style,{opacity:"1",pointerEvents:"all",visibility:"visible"})}function De(e=H.value,t=0){if(typeof window=="undefined")return;const a=K(e),o=ne(a),r=ke.get(o);t===0&&r&&window.cancelAnimationFrame(r);const l=window.requestAnimationFrame(()=>{ze(a),t<8?De(a,t+1):ke.delete(o)});ke.set(o,l)}function qa(e){if(typeof window!="undefined"){if(e!==void 0){const t=ne(e),a=ke.get(t);a&&window.cancelAnimationFrame(a),ke.delete(t);return}ke.forEach(t=>window.cancelAnimationFrame(t)),ke.clear()}}function Jt(){Array.from(R.keys()).forEach(e=>{const t=Number(e);Number.isFinite(t)&&De(t)})}function Ya(e,t=1,a=1){var u;if(!e)return{width:Math.max(1,Math.floor(t||1)),height:Math.max(1,Math.floor(a||1))};const o=(u=e.getBoundingClientRect)==null?void 0:u.call(e),r=e.clientWidth||e.offsetWidth||(o==null?void 0:o.width)||t,l=e.clientHeight||e.offsetHeight||(o==null?void 0:o.height)||a;return{width:Math.max(1,Math.floor(r||1)),height:Math.max(1,Math.floor(l||1))}}function kt(e=H.value){if(typeof document=="undefined")return null;const t=K(e),a=le.value?".home-video-modal-item":".home-video-card .home-video-screen",o=document.querySelector(`${a}[data-video-index="${t}"]`);if(o)return o;const r=S.get(t);return r!=null&&r.isConnected?r:null}function pn(e,t){var r;const a=(r=e==null?void 0:e.querySelector)==null?void 0:r.call(e,".home-video-player-host");if(!a)return null;a.replaceChildren();const o=document.createElement("div");return o.id=t,o.className="home-video-player",a.appendChild(o),o}function ze(e=H.value){var $e,Ve;if(typeof document=="undefined")return;const t=K(e),a=ne(t),o=nt(t),r=ae.value===t&&C.value?C.value:kt(t)||b.value,l=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=l||u;if(!r||!d)return;const{width:g,height:M}=Ya(r),P=R.get(a);try{l&&u&&P&&typeof P.reSize=="function"?P.reSize(g,M):l&&u&&P&&typeof P.autoResize=="function"&&P.autoResize()}catch(j){console.warn("EZUIKit resize failed",j)}const y={position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:`${g}px`,height:`${M}px`};Object.assign(d.style,y,{display:"block",verticalAlign:"top"}),l&&u&&Object.assign(u.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",display:"block",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",overflow:"hidden",verticalAlign:"top"});const T=document.getElementById(`EZUIKitPlayer-${o}`);T&&(T.setAttribute("width",String(g)),T.setAttribute("height",String(M)));const L=document.getElementById(`${o}-player`),N=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),Te=[d,u,L,N==null?void 0:N.parentElement,N,$==null?void 0:$.parentElement,$,...Array.from((u==null?void 0:u.children)||[]),...Array.from((($e=d==null?void 0:d.querySelectorAll)==null?void 0:$e.call(d,"[id$='-wrap'], .play-window, video, canvas, iframe, object, embed"))||[]),...Array.from(((Ve=u==null?void 0:u.querySelectorAll)==null?void 0:Ve.call(u,".play-window, video, canvas, iframe, object, embed"))||[]),T].filter(Boolean);Array.from(new Set(Te)).forEach(j=>{var st,At;(st=j.setAttribute)==null||st.call(j,"width",String(g)),(At=j.setAttribute)==null||At.call(j,"height",String(M)),Object.assign(j.style,{position:"absolute",left:"0",top:"0",right:"0",bottom:"0",width:"100%",height:"100%",maxWidth:"none",maxHeight:"none",margin:"0",objectFit:"fill"})}),Qt(o)}function be(e={}){Array.from(R.keys()).forEach(t=>{it(Number(t),e)}),Object.keys(ge).forEach(t=>{R.has(t)||it(Number(t),e)}),Ce()}function it(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,r=K(e),l=ne(r);qa(r),rt(r);const u=R.get(l);R.delete(l),X.set(l,(X.get(l)||0)+1),u&&Zt(u),a&&Xt(r);const d=ge[l];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[l]),r===H.value&&o&&(U.value=""),Ce()}function gn(e,t){const a=K(e),o=ne(a);rt(a);const r=window.setTimeout(()=>{const l=ge[o];t!==X.get(o)||!(l!=null&&l.loading)||(l.error="视频加载超时",a===H.value&&(U.value=l.error),it(a,{resetError:!1}))},xs);Et.set(o,r)}function rt(e){const t=ne(e),a=Et.get(t);a&&(window.clearTimeout(a),Et.delete(t))}function Zt(e){if(!(!e||typeof e.stop!="function"))try{const t=e.stop();t&&typeof t.catch=="function"&&t.catch(()=>{})}catch(t){console.warn("EZUIKit stop error",t)}}function Xt(e=H.value){var d;if(typeof document=="undefined")return;const t=K(e),a=nt(t),o=document.getElementById(`${a}-wrap`),r=document.getElementById(a),l=kt(t)||b.value,u=(d=l==null?void 0:l.querySelector)==null?void 0:d.call(l,".home-video-player-host");ae.value===t&&Mt({restore:!1}),u&&u.replaceChildren(),o!=null&&o.isConnected&&o.remove(),r!=null&&r.isConnected&&r.remove()}function vn(){return{autoFocus:0,header:{color:"#30dcff",activeColor:"#ffffff",backgroundColor:"#000000",btnList:[{iconId:"deviceID",part:"left",defaultActive:0,memo:"顶部设备序列号",isrender:0},{iconId:"deviceName",part:"left",defaultActive:0,memo:"顶部设备名称",isrender:0},{iconId:"cloudRec",part:"right",defaultActive:0,memo:"云存储",isrender:0},{iconId:"rec",part:"right",defaultActive:0,memo:"SD卡回放",isrender:0}]},footer:{color:"#ffffff",activeColor:"#30dcff",backgroundColor:"#00000021",btnList:[{iconId:"play",part:"left",defaultActive:1,memo:"播放",isrender:1},{iconId:"capturePicture",part:"left",defaultActive:0,memo:"截屏按钮",isrender:0},{iconId:"sound",part:"left",defaultActive:0,memo:"声音按钮",isrender:1},{iconId:"pantile",part:"left",defaultActive:0,memo:"云台控制按钮",isrender:1},{iconId:"recordvideo",part:"left",defaultActive:0,memo:"录制按钮",isrender:0},{iconId:"zoom",part:"left",defaultActive:0,memo:"电子放大",isrender:0},{iconId:"hd",part:"right",defaultActive:0,memo:"清晰度切换按钮",isrender:1},{iconId:"webExpend",part:"right",defaultActive:0,memo:"网页全屏按钮",isrender:1}]}}}function yn(){const e=x.get("yak-structure");ea(e,"畜群结构",Pa.value)}function bn(){const e=x.get("yak-three-year-forecast");ea(e,"预测存栏",Ge.value)}function wn(){const e=x.get("yak-forecast-trend");ea(e,"预测存栏",tt.value)}function ea(e,t,a){const o=typeof(e==null?void 0:e.dispatchAction)=="function"?e:e==null?void 0:e.chart;!o||a<0||(o.dispatchAction({type:"downplay",seriesName:t}),o.dispatchAction({type:"hideTip"}),o.dispatchAction({type:"highlight",seriesName:t,dataIndex:a}),o.dispatchAction({type:"showTip",seriesName:t,dataIndex:a}))}function ta(e){return e?pe.value%e:0}function xn(){return re(this,null,function*(){const[e,t]=yield Promise.all([Po("grassland","grassland-distribution"),Po("wetland","wetland-distribution")]);v||(O.value={grassland:e,wetland:t})})}function Le(e,t){const a=O.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(r=>(r==null?void 0:r.key)===t)}function aa(e,t){return e?V(D({},e),{title:t}):null}function Sn(){var M,P,y,T;const e=((M=Le("grassland","grassland-town"))==null?void 0:M.rows)||[],t=((P=Le("wetland","wetland-town-area"))==null?void 0:P.rows)||[],a=((y=Le("grassland","grassland-productivity-town"))==null?void 0:y.rows)||[],o=((T=Le("wetland","wetland-mu-yield"))==null?void 0:T.rows)||[],r=Pt(e),l=Pt(t),u=Pt(a),d=Pt(o);return[...new Set([...e,...t,...a,...o].map(L=>L==null?void 0:L.name).filter(Boolean))].map((L,N)=>{const $=r.get(L)||0,Te=l.get(L)||0,Ct=u.get(L)||0,$e=d.get(L)||0;let Ve=0,j=0;$>0&&Ct>0&&(Ve+=$*Ct,j+=$),Te>0&&$e>0&&(Ve+=Te*$e,j+=Te);const st=[Ct,$e].filter(sa=>sa>0),At=j>0?Ve/j:st.reduce((sa,qn)=>sa+qn,0)/Math.max(st.length,1);return{key:`home-pasture-productivity-${L}`,name:L,value:Number(At.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:N}}).filter(L=>L.value>0)}function Pt(e=[]){return new Map(e.map(t=>[t.name,Number(t.value)||0]))}function Mn(e,t){const a=String((e==null?void 0:e.key)||"");return a.includes("grassland-town")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title)}):a.includes("wetland-town-area")?V(D({},e),{key:`home-${t}-${e.key}`,height:et.value,option:oa(e,e.title,{variant:"water"})}):V(D({},e),{key:`home-${t}-${e.key}`,height:et.value})}function oa(e,t,a={}){var P;const o=(e.rows||[]).filter(y=>Number.isFinite(Number(y.value))).slice(0,10),r=((P=o.find(y=>y.unit))==null?void 0:P.unit)||"万亩",l=o.map(y=>Number(y.value)||0),u=Math.max(...l,1),d=Math.ceil(u*1.14),g=a.showTrendLine===!0,M=a.variant==="water";return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:`单位:${r}`,left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:0}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(255, 255, 255, 0.82)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(y){var $;const T=Array.isArray(y)?y:[y],L=T.find(Te=>Te.seriesName===t)||T[0],N=o[($=L==null?void 0:L.dataIndex)!=null?$:0];return N?`${N.name}
    ${t}:${ie(N.value)}${N.unit||r}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(y=>y.name),axisLabel:{interval:0,hideOverlap:!1,color:Ao,fontSize:10,fontWeight:700,lineHeight:12,margin:8,padding:[0,0,0,0],formatter:Xa},axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1}},{type:"category",data:o.map(y=>y.name),axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:d,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:It,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,type:"bar",barWidth:M?10:6,stack:"b",z:3,data:o.map(y=>Number(y.value)||0),label:{show:!0,position:"top",distance:9,color:ut,fontSize:10,fontWeight:700,formatter:({value:y})=>we(y)},itemStyle:{borderRadius:M?[7,7,3,3]:2,color:new je(0,0,0,1,[...M?[{offset:0,color:"#a8fbff"},{offset:.42,color:"#31dcff"},{offset:1,color:"#2b8fff"}]:[{offset:0,color:"#19FFC6"},{offset:1,color:"#33AAFF"}]])},emphasis:{itemStyle:{shadowBlur:4,shadowColor:M?"rgba(49, 220, 255, 0.18)":"rgba(25, 255, 198, 0.16)"}}},...g?[{name:`${t}趋势`,type:"line",smooth:!0,symbol:"circle",symbolSize:5,showSymbol:!0,data:l,label:{show:!1},lineStyle:{width:1.3,color:"rgba(139, 247, 255, 0.82)",shadowBlur:0,shadowColor:"transparent"},itemStyle:{color:ut,borderColor:"#8bf7ff",borderWidth:1,shadowBlur:0,shadowColor:"transparent"},emphasis:{scale:!0,lineStyle:{width:2}},tooltip:{show:!1},z:5}]:[],...M?[{name:"水柱顶",type:"pictorialBar",symbol:"circle",symbolSize:[18,7],symbolOffset:[0,-2],symbolPosition:"end",data:l,itemStyle:{color:"#a8fbff",opacity:.92,shadowBlur:3,shadowColor:"rgba(168, 251, 255, 0.18)"},tooltip:{show:!1},z:4}]:[{type:"custom",renderItem(y,T){const L=T.value(0),N=T.value(1),$=T.coord([L,N]);return{type:"image",style:{x:$[0]-4.5,y:$[1]-9,width:10,height:10,image:ys},silent:!0}},data:o.map((y,T)=>[T,Number(y.value)||0]),tooltip:{show:!1},z:4}],{type:"bar",barWidth:M?20:30,xAxisIndex:1,barGap:"-220%",data:o.map(()=>d),emphasis:{focus:"none",itemStyle:{color:"rgba(255, 255, 255, 0.8)"}},itemStyle:{color:M?"rgba(58, 164, 215, 0.75)":"rgba(122, 140, 153, 0.6)",opacity:M?.12:.075},tooltip:{show:!1},z:0}]})}function kn(e=[],t="数值"){var d;const a=e.filter(g=>Number.isFinite(Number(g.value))).slice(0,10),o=((d=a.find(g=>g.unit))==null?void 0:d.unit)||"",r=a.map(g=>Number(g.value)||0),l=Math.max(...r,1),u=Math.ceil(l*1.12);return ct({animation:!0,animationDuration:900,animationDurationUpdate:700,animationEasing:"cubicOut",title:{text:o?`单位:${o}`:"",left:"5%",top:"8%",textStyle:{color:dt,fontSize:10,fontWeight:400}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},tooltip:{trigger:"axis",axisPointer:{type:"shadow",shadowStyle:{opacity:.2}},backgroundColor:"rgba(0, 0, 0, 0.92)",borderWidth:1,borderColor:"rgba(153, 153, 153, 0.95)",padding:[8,10],textStyle:{color:"#ffffff",fontSize:10},formatter(g){var T;const P=(Array.isArray(g)?g:[g])[0],y=a[(T=P==null?void 0:P.dataIndex)!=null?T:0];return y?`${y.name}
    ${t}:${ie(y.value)}${y.unit||o}`:""}},color:["#6BC7F6"],xAxis:[{type:"category",data:a.map(g=>g.name),axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!1},axisLabel:{color:Ao,fontSize:10,fontWeight:700,interval:0,padding:[0,0,0,0],formatter:Xa}},{data:[],axisLine:{show:!1,lineStyle:{color:"rgba(0, 0, 0, 0)"}},axisTick:{show:!1},axisLabel:{show:!1}}],yAxis:{type:"value",min:0,max:u,axisLine:{show:!1},axisTick:{show:!1},splitLine:{show:!0,lineStyle:{type:[2,2],dashOffset:5,color:It,opacity:1,width:.3}},axisLabel:{color:Ke,fontSize:10,formatter:we}},series:[{name:t,data:r,type:"line",smooth:!0,symbol:bs,symbolSize:10,showSymbol:!1,z:3,emphasis:{focus:"none",itemStyle:{color:"white"}},label:{show:!0,position:"top",distance:10,color:ut,fontSize:10,fontWeight:700,formatter:({value:g})=>we(g)},lineStyle:{shadowColor:"rgba(0, 0, 0, 0.4)",shadowBlur:3,shadowOffsetY:10,width:3,color:new je(0,0,0,1,[{offset:0,color:"rgba(115, 208, 255, 1)"},{offset:1,color:"rgba(18, 60, 98, 1)"}])},areaStyle:{color:new je(0,0,0,1,[{offset:0,color:"rgba(25, 255, 236, 0.34)"},{offset:1,color:"rgba(51, 153, 255, 0)"}])}}]})}function Qa(e){const t=String((e==null?void 0:e.key)||"");return t.includes("grassland-town")||t.includes("wetland-town-area")}function Ja(e,t,a,o=0,r=!1,l=-1){return{name:e,type:"line",yAxisIndex:o,smooth:!0,symbolSize:5,data:t.map((u,d)=>({value:u,symbolSize:d===l?10:5,itemStyle:{color:d===l?"#ffffff":a},label:{show:d===l,position:"top",color:a,fontSize:10,formatter:({value:g})=>we(g)}})),lineStyle:{width:2.4,color:a},itemStyle:{color:a},areaStyle:r?{color:new je(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function Pn(e){return Ht.find(t=>t.key===e)||Ht[2]}function Cn(e,t="month"){if(t==="month")return Ni(e);const a=Ri(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),r=t==="week"?7:1,l=Math.ceil(o/r)+1,u=Array.from({length:l},(P,y)=>{const T=Math.min(o,y*r);return Hi(T)}),d=u.map((P,y)=>{const L=Math.min(o,y*r)/o,N=Math.sin(y/(t==="week"?1.8:8.5))*Math.sin(Math.PI*L)*Math.min(360,e.months*18);return Math.round(xo+(e.stock-xo)*L+N)}),g=u.map((P,y)=>Math.round(e.births*(Math.min(o,y*r)/o))),M=u.map((P,y)=>Math.round(e.outflow*(Math.min(o,y*r)/o)));return{labels:u,stock:d,births:g,outflow:M}}function An(e,t){return t==="day"?Math.max(10,Math.ceil(e/6)):t==="week"?Math.max(2,Math.ceil(e/7)):e>24?4:e>14?2:1}function Ln(e,t){return t==="day"?e>700?2:e>360?3:4:t==="week"?e>110?4:6:e>24?7:10}function Tn(e){return(e.labels||[]).map((t,a)=>{var P,y,T,L,N,$;const o=Number(((P=e.stock)==null?void 0:P[Math.max(a-1,0)])||0),r=Number(((y=e.stock)==null?void 0:y[a])||o),l=Math.max(0,Number(((T=e.births)==null?void 0:T[a])||0)-Number(((L=e.births)==null?void 0:L[Math.max(a-1,0)])||0)),u=Math.max(0,Number(((N=e.outflow)==null?void 0:N[a])||0)-Number((($=e.outflow)==null?void 0:$[Math.max(a-1,0)])||0)),d=Math.max(120,Math.round((l+u)*.18)),g=Math.max(o,r)+Math.max(d,Math.round(l*.32)),M=Math.max(0,Math.min(o,r)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:r,low:M,high:g,birth:l,outflow:u,value:[o,r,M,g]}})}function ie(e){const t=Number(e);return Number.isFinite(t)?t.toLocaleString("zh-CN",{maximumFractionDigits:Number.isInteger(t)?0:2}):"--"}function _n(e){const t=Number(e);return Number.isFinite(t)?`${t>0?"+":""}${ie(t)}`:"--"}function we(e){const t=Number(e);return Number.isFinite(t)?Math.abs(t)>=1e4?`${(t/1e4).toFixed(Math.abs(t)>=1e5?0:1)}万`:Math.round(t).toLocaleString("zh-CN"):"--"}function Za(e,t=2){const a=Number(e);return Number.isFinite(a)?Math.abs(a)>=1e4?`${(a/1e4).toFixed(t)}万`:Math.round(a).toLocaleString("zh-CN"):"--"}function Xa(e){return String(e||"").replace(/\s+/g,"").replace(/[镇乡]$/u,"").slice(0,4)}function In(e){if(!e)return null;const t=$i(e.topicKey,e.layerKey);if(t)return t;const a=Vi(e.topicKey);return a.find(o=>o.key===e.layerKey)||a[0]||null}function Fn(e,t){const a=Number.isFinite(Number(t.fillOpacity))?Number(t.fillOpacity):.46,o=t.stroke||t.strokeColor||"#E5FCFF",r=Number.isFinite(Number(t.strokeOpacity))?Number(t.strokeOpacity):.86,l=Number.isFinite(Number(t.strokeWidth))?Number(t.strokeWidth):1.1;return`${e}${t.fill}${a}${o}${r}${l}round`}function En(e){Dt.some(t=>t.key===e)&&(oe.value=e)}function eo(e){if(e.key==="Escape"){if(ae.value!==null){Mt();return}xt(),St()}}function na(){xa.value=typeof window=="undefined"?1080:window.innerHeight,Jt()}function On(e){const t=document.querySelector(".home-dashboard"),a=t==null?void 0:t.getBoundingClientRect();if(!(a!=null&&a.width)||!(a!=null&&a.height))return e;const o=Number(e==null?void 0:e.x),r=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(r)?{x:960,y:540}:o>=0&&o<=1920&&r>=0&&r<=1080&&(o>a.width||r>a.height)?{x:o,y:r}:{x:(o-a.left)/a.width*1920,y:(r-a.top)/a.height*1080}}function ia(e,t){var a,o,r,l;return((o=(a=h.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((l=(r=h.value)==null?void 0:r.getVectorFeatureScreen)==null?void 0:l.call(r,e))||t}function Bn(){if(!zt.value||!ue.value)return;const e=ia(ue.value,de.value);if(!e)return;const t=de.value;t&&Math.abs(Number(t.x)-Number(e.x))<.5&&Math.abs(Number(t.y)-Number(e.y))<.5||(de.value=e)}function ra(e){const t=(e==null?void 0:e.properties)||{};return Object.keys(t).filter(o=>to(o,t[o])).length}function to(e,t){return t==null||t===""||Array.isArray(t)||typeof t=="object"?!1:!s.has(String(e||"").toLowerCase())}function ao(e={}){const t=String(oe.value||"").toLowerCase(),a=`${e.key||""} ${e.layerName||""} ${t}`.toLowerCase();return t==="woodland"||a.includes("woodland")||a.includes("t_woodland")?"woodland":t==="wetland"||a.includes("wetland")||a.includes("shidi")?"wetland":t==="grassland"||a.includes("grassland")||a.includes("caodi")?"grassland":""}function Gn(e={}){const t=oo(e.lng),a=oo(e.lat);return t===""||a===""?"":`POINT(${t} ${a})`}function oo(e){const t=Number(e);return Number.isFinite(t)?t.toFixed(8).replace(/\.?0+$/,""):""}function Nn(){return re(this,arguments,function*(e={}){var d,g,M,P,y,T;const t=Number((d=e==null?void 0:e.lngLat)==null?void 0:d.lng),a=Number((g=e==null?void 0:e.lngLat)==null?void 0:g.lat),o=Ma.value,r=ao(o);if(!Number.isFinite(t)||!Number.isFinite(a)||!r){ve();return}const l=++Je,u=e.screen||{x:960,y:540};de.value=null,ue.value=null,Oe.value=!1,Be.value=!0,(P=(M=h.value)==null?void 0:M.clearSelectedFeature)==null||P.call(M);try{const L=yield Rn(o,{lng:t,lat:a},r);if(l!==Je||v)return;if(!L){ve();return}ue.value=L,Oe.value=!1,(T=(y=h.value)==null?void 0:y.highlightFeature)==null||T.call(y,L,{highlightTone:"v21"}),de.value=ia(L,u)}catch(L){l===Je&&ve()}finally{l===Je&&(Be.value=!1)}})}function Rn(o,r){return re(this,arguments,function*(e,t,a=ao(e)){const l=Gn(t);if(!l)return null;let u=null;a==="grassland"?u=yield fr({wkt:l}):a==="wetland"?u=yield hr({wkt:l}):a==="woodland"&&(u=yield cr(l));const d=Hn(u,a);if(!zn(d))return null;const g=Vn(d,e,t,a);return ra(g)>0?g:null})}function Hn(e,t){var o,r,l,u;const a=[e==null?void 0:e[t],e==null?void 0:e.grassland,e==null?void 0:e.wetland,e==null?void 0:e.woodland,(o=e==null?void 0:e.data)==null?void 0:o[t],(r=e==null?void 0:e.data)==null?void 0:r.grassland,(l=e==null?void 0:e.data)==null?void 0:l.wetland,(u=e==null?void 0:e.data)==null?void 0:u.woodland,e==null?void 0:e.data,e==null?void 0:e.result,e];for(const d of a){const g=Dn(d);if(g)return g}return null}function Dn(e){return Array.isArray(e)?e.find(t=>t&&typeof t=="object")||null:e&&typeof e=="object"?e:null}function zn(e){return!e||typeof e!="object"?!1:Array.isArray(e.dyColumn)&&e.dyColumn.some($n)?!0:Object.keys(e).some(t=>to(t,e[t]))}function $n(e={}){const t=e==null?void 0:e.value;return t==null||t===""?!1:!!String((e==null?void 0:e.field)||(e==null?void 0:e.title)||"").trim()}function Vn(e,t,a,o){const r=Wn(e),l=jn(e);return{id:e.id||e.patchNo||e.patch_no||e.landNumber||e.land_number||`${o}-${a.lng}-${a.lat}`,properties:r,feature:{type:"Feature",properties:r,geometry:l},geometry:l,layer:t,lngLat:a}}function jn(e={}){return e.geometry||e.geom||e.wkt||e.the_geom||e.theGeom||e.geo||e.geometryWkt||e.geometry_wkt||e.shape||null}function Wn(e={}){const t=D({},e);return(Array.isArray(e.dyColumn)?e.dyColumn:[]).forEach(o=>{const r=o==null?void 0:o.value;if(r==null||r==="")return;const l=c[String((o==null?void 0:o.title)||"").trim()],u=String((o==null?void 0:o.field)||"").trim();[u,Un(u),l].filter(Boolean).forEach(g=>{(t[g]===void 0||t[g]===null||t[g]==="")&&(t[g]=r)})}),t}function Un(e){const t=String(e||"").trim();return t?t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").toLowerCase():""}function Kn(e){var a,o;const t=(o=(a=e==null?void 0:e.feature)!=null?a:e)!=null?o:null;if(!t||ra(t)<=0){ve();return}ue.value=t,Oe.value=!1,e!=null&&e.screen&&(de.value=ia(t,e.screen))}function ve(){var e,t;Je+=1,ue.value=null,Oe.value=!1,Be.value=!1,de.value=null,(t=(e=h.value)==null?void 0:e.clearSelectedFeature)==null||t.call(e)}function no(e){if(!zt.value)return;const t=document.querySelector(".home-map-feature-info"),a=document.querySelector(".home-dashboard .cesium-map"),o=e.target;t&&o instanceof Node&&t.contains(o)||a&&o instanceof Node&&a.contains(o)||ve()}return(e,t)=>(A(),F("div",_r,[so(Lt(Ar,{ref_key:"threeMapSceneRef",ref:m,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,"max-pixel-ratio":1.35,onPlayComplete:Qo},null,512),[[lo,Bo.value]]),J.value?so((A(),xe(ui,{key:0,ref_key:"mapSceneRef",ref:h,class:"home-map-scene home-remote-map-scene",active:f.active&&J.value,"active-layer":Ma.value,"admin-boundary-line-scale":2.4,"initial-zoom":Ss,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:Re,onFeatureLoading:t[0]||(t[0]=a=>Be.value=a),onFeatureInfo:Kn,onMapClick:Nn,onViewChange:Bn},null,8,["active","active-layer"])),[[lo,J.value]]):q("",!0),t[12]||(t[12]=w("div",{class:"home-map-scrim"},null,-1)),w("div",Ir,[Lt(sr,{"model-value":oe.value,topics:Dt,"onUpdate:modelValue":En},null,8,["model-value"])]),zt.value?(A(),F("div",{key:1,class:"home-map-feature-info",style:lt(Ro.value)},[Lt(lr,{feature:ue.value,empty:Oe.value,loading:Be.value,width:We(Go),height:No.value,closable:"",onClose:ve},null,8,["feature","empty","loading","width","height"])],4)):q("",!0),w("div",Fr,[w("div",Er,[(A(!0),F(_e,null,Ie(Wo.value,a=>(A(),xe(uo,{key:a.key,class:"home-card left-card",title:a.title,width:We(wa),height:a.height},{default:la(()=>[a.option?(A(),xe(We(ca),{key:0,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-town-column-chart",option:a.option,autoresize:!0},null,8,["option"])):(A(),xe(ko,{key:1,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["title","width","height"]))),128))])]),w("div",Or,[w("div",Br,[(A(!0),F(_e,null,Ie(Uo.value,a=>(A(),xe(uo,{key:a.key,class:Ue(["home-card","right-card",{"home-video-card":a.type==="video"}]),title:a.title,width:We(wa),height:a.height},{extra:la(()=>[a.type==="video"||a.key==="home-town-balance-gauge"?(A(),F("button",{key:0,class:"home-card-more",type:"button","aria-label":a.type==="video"?"查看全部基地监控":"查看全部乡镇草畜平衡",onClick:o=>a.type==="video"?ln():cn()},[...t[3]||(t[3]=[ai(" 更多 ",-1),w("span",{"aria-hidden":"true"},"›",-1)])],8,Gr)):q("",!0)]),default:la(()=>[a.type==="video"?(A(),F("div",Nr,[w("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ne.value.length<=1,onClick:rn},"‹",8,Rr),w("div",{class:Ue(["home-video-grid",{"is-single":La.value.length<=1}])},[(A(!0),F(_e,null,Ie(La.value,o=>(A(),F("div",{key:o.key,ref_for:!0,ref:r=>Ba(r,o),"data-video-index":o.index,class:Ue(["home-video-screen",{"is-active":o.isActive,"is-playing":Yt(o.index),"is-loading":wt(o.index)}]),style:lt(za(o.live,o.isActive,o.index)),role:"button",tabindex:"0",onClick:r=>ja(o.index,r),onKeydown:[Tt(Se(r=>Ae(o.index),["prevent"]),["enter"]),Tt(Se(r=>Ae(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=w("div",{class:"home-video-player-host"},null,-1)),wt(o.index)?(A(),F("div",Dr,"加载中")):q("",!0),He(o.index)?(A(),F("div",zr,z(He(o.index)),1)):q("",!0),o.live.hdPlayUrl&&(!Da(o.index)||He(o.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(r=>Ae(o.index),["stop"])},null,8,$r)):q("",!0),w("div",Vr,z(o.live.title),1)],46,Hr))),128))],2),w("button",{class:"home-video-nav home-video-next",type:"button","aria-label":"下一路监控",disabled:Ne.value.length<=1,onClick:sn},"›",8,jr)])):a.key==="yak-forecast-trend"?(A(),F("div",Wr,[w("div",Ur,[(A(),F(_e,null,Ie(Ht,o=>w("button",{key:o.key,type:"button",class:Ue({active:o.key===Nt.value}),onClick:r=>Nt.value=o.key},z(o.label),11,Kr)),64))]),Lt(We(ca),{ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart home-forecast-kline-chart",option:a.option,autoresize:!0},null,8,["option"])])):a.option?(A(),xe(We(ca),{key:2,ref_for:!0,ref:o=>Kt(a.key,o),class:"home-chart",option:a.option,autoresize:!0},null,8,["option"])):a.key==="home-town-balance-gauge"?(A(),F("div",qr,[(A(!0),F(_e,null,Ie($t.value,(o,r)=>(A(),F("div",{key:o.key,class:Ue(["home-balance-gauge-card",{"is-active":r===Ho.value}]),style:lt(Ua(o))},[w("div",Yr,[w("strong",null,z(o.status),1)]),w("div",Qr,[w("div",Jr,[w("strong",null,z(ie(o.value)),1),t[5]||(t[5]=w("em",null,"%",-1))])]),w("div",Zr,z(o.name),1),w("div",Xr,z(o.extra),1)],6))),128))])):(A(),xe(ko,{key:4,panel:a,compact:"","column-label-standard":Qa(a),"visual-version":"v21"},null,8,["panel","column-label-standard"]))]),_:2},1032,["class","title","width","height"]))),128))])]),le.value?(A(),F("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Se(xt,["self"])},[w("section",es,[w("header",ts,[w("div",null,[t[6]||(t[6]=w("h2",null,"基地监控",-1)),w("p",null,"共 "+z(te.value.length)+" 路,在线 "+z(zo.value)+" 路",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:xt},"×")]),Ta.value.length?(A(),F("div",as,[(A(!0),F(_e,null,Ie(Ta.value,a=>(A(),F("div",{key:a.key,ref_for:!0,ref:o=>Ba(o,a),"data-video-index":a.index,class:Ue(["home-video-modal-item home-video-screen",{"is-active":a.index===H.value,"is-playing":Yt(a.index),"is-loading":wt(a.index),"is-offline":a.live.status!=="直播中"}]),style:lt(za(a.live,a.index===H.value,a.index)),role:"button",tabindex:"0",onClick:o=>ja(a.index,o),onKeydown:[Tt(Se(o=>Ae(a.index),["prevent"]),["enter"]),Tt(Se(o=>Ae(a.index),["prevent"]),["space"])]},[t[7]||(t[7]=w("div",{class:"home-video-player-host"},null,-1)),wt(a.index)?(A(),F("div",ns,"加载中")):q("",!0),He(a.index)?(A(),F("div",is,z(He(a.index)),1)):q("",!0),a.live.hdPlayUrl&&(!Da(a.index)||He(a.index))?(A(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(o=>Ae(a.index),["stop"])},null,8,rs)):q("",!0),w("span",ss,z(a.live.title),1)],46,os))),128))])):(A(),F("div",ls,"暂无监控数据")),yt.value>1?(A(),F("footer",cs,[w("button",{type:"button",disabled:ce.value<=1,onClick:t[1]||(t[1]=a=>$a(ce.value-1))},"上一页",8,us),w("span",null,z(ce.value)+" / "+z(yt.value),1),w("button",{type:"button",disabled:ce.value>=yt.value,onClick:t[2]||(t[2]=a=>$a(ce.value+1))},"下一页",8,ds)])):q("",!0)])])):q("",!0),(A(),xe(oi,{to:"body"},[ae.value!==null?(A(),F("div",fs,[w("div",{ref_key:"homeVideoWebStageRef",ref:C,class:"home-video-screen home-video-web-stage is-active is-playing"},[...t[8]||(t[8]=[w("div",{class:"home-video-web-player-slot"},null,-1)])],512)])):q("",!0)])),Gt.value?(A(),F("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Se(St,["self"])},[w("section",hs,[w("header",ms,[w("div",null,[t[9]||(t[9]=w("h2",null,"全县乡镇草畜平衡",-1)),w("p",null,"全部 "+z(pt.value.length)+" 个乡镇,超载率沿用草畜平衡结果库口径",1)]),w("button",{type:"button",title:"关闭","aria-label":"关闭",onClick:St},"×")]),w("div",ps,[(A(!0),F(_e,null,Ie(pt.value,a=>(A(),F("article",{key:a.key,class:"home-balance-modal-item",style:lt(Ua(a))},[w("div",gs,[w("strong",null,z(a.name),1),w("span",null,z(a.status),1)]),w("div",vs,[w("strong",null,z(ie(a.value)),1),t[10]||(t[10]=w("em",null,"%",-1))]),t[11]||(t[11]=w("div",{class:"home-balance-modal-track"},[w("i")],-1)),w("p",null,z(a.extra),1)],4))),128))])])])):q("",!0)]))}};export{js as default}; diff --git a/docs/assets/index.esm.min-43166a2f-1784045078568.js b/docs/assets/index.esm.min-469b3f53-1784074877048.js similarity index 99% rename from docs/assets/index.esm.min-43166a2f-1784045078568.js rename to docs/assets/index.esm.min-469b3f53-1784074877048.js index ad825db..348cf10 100644 --- a/docs/assets/index.esm.min-43166a2f-1784045078568.js +++ b/docs/assets/index.esm.min-469b3f53-1784074877048.js @@ -1,4 +1,4 @@ -import{P as fe,i as j,g as w,O as le,w as T,Q as Y,q as ve,h as he,R as ee,K as R,S as ge,U as pe,A as ze,V as be,u as we,W as ye}from"./index-1784045078568.js";var k=null;function me(e){return k||(k=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),k(e)}var N=null;function Ee(e){N||(N=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),N(e)}function Oe(e){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function H(e,t){t===void 0&&(t={});var r=document.createElement(e);return Object.keys(t).forEach(function(a){r[a]=t[a]}),r}function ie(e,t,r){var a=window.getComputedStyle(e,r||null)||{display:"none"};return a[t]}function q(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(ie(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var xe='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',B=0,F=null;function Ce(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=Se.bind(e));var r=e.__resize_listeners__;if(!r){if(e.__resize_listeners__=[],window.ResizeObserver){var a=e.offsetWidth,o=e.offsetHeight,n=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===a&&e.offsetHeight===o)||U(e)}),u=q(e),p=u.detached,v=u.rendered;e.__resize_observer_triggered__=p===!1&&v===!1,e.__resize_observer__=n,n.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){U(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(B||(F=Oe(xe)),je(e),e.__resize_rendered__=q(e).rendered,window.MutationObserver){var h=new MutationObserver(e.__resize_mutation_handler__);h.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=h}}e.__resize_listeners__.push(t),B++}function Le(e,t){var r=e.__resize_listeners__;if(r){if(t&&r.splice(r.indexOf(t),1),!r.length||!t){if(e.detachEvent&&e.removeEventListener){e.detachEvent("onresize",e.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);return}e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",P),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--B&&F&&F.parentNode.removeChild(F)}}function Ae(e){var t=e.__resize_last__,r=t.width,a=t.height,o=e.offsetWidth,n=e.offsetHeight;return o!==r||n!==a?{width:o,height:n}:null}function Se(){var e=q(this),t=e.rendered,r=e.detached;t!==this.__resize_rendered__&&(!r&&this.__resize_triggers__&&($(this),this.addEventListener("scroll",P,!0)),this.__resize_rendered__=t,U(this))}function P(){var e=this;$(this),this.__resize_raf__&&Ee(this.__resize_raf__),this.__resize_raf__=me(function(){var t=Ae(e);t&&(e.__resize_last__=t,U(e))})}function U(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function je(e){var t=ie(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var r=H("div",{className:"resize-triggers"}),a=H("div",{className:"resize-expand-trigger"}),o=H("div"),n=H("div",{className:"resize-contract-trigger"});a.appendChild(o),r.appendChild(a),r.appendChild(n),e.appendChild(r),e.__resize_triggers__={triggers:r,expand:a,expandChild:o,contract:n},$(e),e.addEventListener("scroll",P,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function $(e){var t=e.__resize_triggers__,r=t.expand,a=t.expandChild,o=t.contract,n=o.scrollWidth,u=o.scrollHeight,p=r.offsetWidth,v=r.offsetHeight,h=r.scrollWidth,f=r.scrollHeight;o.scrollLeft=n,o.scrollTop=u,a.style.width=p+1+"px",a.style.height=v+1+"px",r.scrollLeft=h,r.scrollTop=f}var g=function(){return g=Object.assign||function(e){for(var t,r=1,a=arguments.length;r{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-6a8ef8cf-1784045078568.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ +var Hl=Object.getOwnPropertySymbols;var mh=Object.prototype.hasOwnProperty,ph=Object.prototype.propertyIsEnumerable;var Vl=(ae,Je)=>{var ue={};for(var fe in ae)mh.call(ae,fe)&&Je.indexOf(fe)<0&&(ue[fe]=ae[fe]);if(ae!=null&&Hl)for(var fe of Hl(ae))Je.indexOf(fe)<0&&ph.call(ae,fe)&&(ue[fe]=ae[fe]);return ue};var Wl=(ae,Je,ue)=>new Promise((fe,St)=>{var dt=ut=>{try{gn(ue.next(ut))}catch(Mt){St(Mt)}},je=ut=>{try{gn(ue.throw(ut))}catch(Mt){St(Mt)}},gn=ut=>ut.done?fe(ut.value):Promise.resolve(ut.value).then(dt,je);gn((ue=ue.apply(ae,Je)).next())});import{r as fh,n as hh}from"./index-bc047bb3-1784074877048.js";var Ar=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function gh(ae){return ae&&ae.__esModule&&Object.prototype.hasOwnProperty.call(ae,"default")?ae.default:ae}function Dr(ae){throw new Error('Could not dynamically require "'+ae+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Mr={exports:{}};Mr.exports;(function(ae,Je){function ue(f){"@babel/helpers - typeof";return ue=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(u){return typeof u}:function(u){return u&&typeof Symbol=="function"&&u.constructor===Symbol&&u!==Symbol.prototype?"symbol":typeof u},ue(f)}function fe(f,u){if(!(f instanceof u))throw new TypeError("Cannot call a class as a function")}function St(f,u){for(var n=0;n>>1,ce=[["ary",A],["bind",w],["bindKey",z],["curry",d],["curryRight",m],["flip",H],["partial",g],["partialRight",k],["rearg",O]],he="[object Arguments]",Re="[object Array]",we="[object AsyncFunction]",ke="[object Boolean]",We="[object Date]",yn="[object DOMException]",Yt="[object Error]",It="[object Function]",Ht="[object GeneratorFunction]",Ge="[object Map]",Ct="[object Number]",kt="[object Null]",Oe="[object Object]",rt="[object Promise]",Ae="[object Proxy]",ye="[object RegExp]",De="[object Set]",Xe="[object String]",P="[object Symbol]",M="[object Undefined]",F="[object WeakMap]",j="[object WeakSet]",I="[object ArrayBuffer]",V="[object DataView]",L="[object Float32Array]",J="[object Float64Array]",q="[object Int8Array]",de="[object Int16Array]",ee="[object Int32Array]",se="[object Uint8Array]",Qe="[object Uint8ClampedArray]",mt="[object Uint16Array]",Ie="[object Uint32Array]",ht=/\b__p \+= '';/g,Be=/\b(__p \+=) '' \+/g,tt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Vt=/[&<>"']/g,Ue=RegExp(Xt.source),st=RegExp(Vt.source),Nn=/<%-([\s\S]+?)%>/g,Ti=/<%([\s\S]+?)%>/g,Si=/<%=([\s\S]+?)%>/g,ji=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Li=/^\w*$/,yt=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,pt=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(pt.source),cn=/^\s+/,Tn=/\s/,ni=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Oi=/\{\n\/\* \[wrapped with (.+)\] \*/,Ui=/,? & /,Hi=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,ii=/[()=,{}\[\]\/\s]/,un=/\\(\\)?/g,$s=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,ga=/\w*$/,Ys=/^[-+]0x[0-9a-f]+$/i,Xs=/^0b[01]+$/i,Qs=/^\[object .+?Constructor\]$/,e0=/^0o[0-7]+$/i,t0=/^(?:0|[1-9]\d*)$/,n0=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Vi=/($^)/,i0=/['\n\r\u2028\u2029\\]/g,Wi="\\ud800-\\udfff",r0="\\u0300-\\u036f",o0="\\ufe20-\\ufe2f",a0="\\u20d0-\\u20ff",va=r0+o0+a0,ya="\\u2700-\\u27bf",Ta="a-z\\xdf-\\xf6\\xf8-\\xff",d0="\\xac\\xb1\\xd7\\xf7",l0="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",s0="\\u2000-\\u206f",c0=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",Sa="A-Z\\xc0-\\xd6\\xd8-\\xde",Ca="\\ufe0e\\ufe0f",ba=d0+l0+s0+c0,jr="['’]",u0="["+Wi+"]",Pa="["+ba+"]",Gi="["+va+"]",wa="\\d+",m0="["+ya+"]",Ea="["+Ta+"]",Ia="[^"+Wi+ba+wa+ya+Ta+Sa+"]",Lr="\\ud83c[\\udffb-\\udfff]",p0="(?:"+Gi+"|"+Lr+")",xa="[^"+Wi+"]",Or="(?:\\ud83c[\\udde6-\\uddff]){2}",Ur="[\\ud800-\\udbff][\\udc00-\\udfff]",ri="["+Sa+"]",_a="\\u200d",Ra="(?:"+Ea+"|"+Ia+")",f0="(?:"+ri+"|"+Ia+")",ka="(?:"+jr+"(?:d|ll|m|re|s|t|ve))?",Aa="(?:"+jr+"(?:D|LL|M|RE|S|T|VE))?",Da=p0+"?",Ma="["+Ca+"]?",h0="(?:"+_a+"(?:"+[xa,Or,Ur].join("|")+")"+Ma+Da+")*",g0="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",v0="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Na=Ma+Da+h0,y0="(?:"+[m0,Or,Ur].join("|")+")"+Na,T0="(?:"+[xa+Gi+"?",Gi,Or,Ur,u0].join("|")+")",S0=RegExp(jr,"g"),C0=RegExp(Gi,"g"),Hr=RegExp(Lr+"(?="+Lr+")|"+T0+Na,"g"),b0=RegExp([ri+"?"+Ea+"+"+ka+"(?="+[Pa,ri,"$"].join("|")+")",f0+"+"+Aa+"(?="+[Pa,ri+Ra,"$"].join("|")+")",ri+"?"+Ra+"+"+ka,ri+"+"+Aa,v0,g0,wa,y0].join("|"),"g"),P0=RegExp("["+_a+Wi+va+Ca+"]"),w0=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,E0=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],I0=-1,ft={};ft[L]=ft[J]=ft[q]=ft[de]=ft[ee]=ft[se]=ft[Qe]=ft[mt]=ft[Ie]=!0,ft[he]=ft[Re]=ft[I]=ft[ke]=ft[V]=ft[We]=ft[Yt]=ft[It]=ft[Ge]=ft[Ct]=ft[Oe]=ft[ye]=ft[De]=ft[Xe]=ft[F]=!1;var ct={};ct[he]=ct[Re]=ct[I]=ct[V]=ct[ke]=ct[We]=ct[L]=ct[J]=ct[q]=ct[de]=ct[ee]=ct[Ge]=ct[Ct]=ct[Oe]=ct[ye]=ct[De]=ct[Xe]=ct[P]=ct[se]=ct[Qe]=ct[mt]=ct[Ie]=!0,ct[Yt]=ct[It]=ct[F]=!1;var x0={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},_0={"&":"&","<":"<",">":">",'"':""","'":"'"},R0={"&":"&","<":"<",">":">",""":'"',"'":"'"},k0={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},A0=parseFloat,D0=parseInt,Fa=typeof Zn=="object"&&Zn&&Zn.Object===Object&&Zn,M0=typeof self=="object"&&self&&self.Object===Object&&self,_t=Fa||M0||Function("return this")(),Vr=u&&!u.nodeType&&u,Jn=Vr&&!0&&f&&!f.nodeType&&f,Ba=Jn&&Jn.exports===Vr,Wr=Ba&&Fa.process,Qt=function(){try{var W=Jn&&Jn.require&&Jn.require("util").types;return W||Wr&&Wr.binding&&Wr.binding("util")}catch(ie){}}(),za=Qt&&Qt.isArrayBuffer,ja=Qt&&Qt.isDate,La=Qt&&Qt.isMap,Oa=Qt&&Qt.isRegExp,Ua=Qt&&Qt.isSet,Ha=Qt&&Qt.isTypedArray;function Gt(W,ie,Q){switch(Q.length){case 0:return W.call(ie);case 1:return W.call(ie,Q[0]);case 2:return W.call(ie,Q[0],Q[1]);case 3:return W.call(ie,Q[0],Q[1],Q[2])}return W.apply(ie,Q)}function N0(W,ie,Q,Te){for(var Ne=-1,nt=W==null?0:W.length;++Ne-1}function Gr(W,ie,Q){for(var Te=-1,Ne=W==null?0:W.length;++Te-1;);return Q}function $a(W,ie){for(var Q=W.length;Q--&&oi(ie,W[Q],0)>-1;);return Q}function V0(W,ie){for(var Q=W.length,Te=0;Q--;)W[Q]===ie&&++Te;return Te}var W0=qr(x0),G0=qr(_0);function Z0(W){return"\\"+k0[W]}function J0(W,ie){return W==null?n:W[ie]}function ai(W){return P0.test(W)}function K0(W){return w0.test(W)}function q0(W){for(var ie,Q=[];!(ie=W.next()).done;)Q.push(ie.value);return Q}function Qr(W){var ie=-1,Q=Array(W.size);return W.forEach(function(Te,Ne){Q[++ie]=[Ne,Te]}),Q}function Ya(W,ie){return function(Q){return W(ie(Q))}}function zn(W,ie){for(var Q=-1,Te=W.length,Ne=0,nt=[];++Q-1}function Bc(e,t){var o=this.__data__,c=sr(o,e);return c<0?(++this.size,o.push([e,t])):o[c][1]=t,this}En.prototype.clear=Dc,En.prototype.delete=Mc,En.prototype.get=Nc,En.prototype.has=Fc,En.prototype.set=Bc;function In(e){var t=-1,o=e==null?0:e.length;for(this.clear();++t=t?e:t)),e}function rn(e,t,o,c,v,R){var B,U=t&y,G=t&h,re=t&D;if(o&&(B=v?o(e,c,v,R):o(e)),B!==n)return B;if(!vt(e))return e;var oe=Fe(e);if(oe){if(B=Ou(e),!U)return zt(e,B)}else{var le=Dt(e),pe=le==It||le==Ht;if(Vn(e))return Md(e,U);if(le==Oe||le==he||pe&&!v){if(B=G||pe?{}:Xd(e),!U)return G?Ru(e,Xc(B,e)):_u(e,sd(B,e))}else{if(!ct[le])return v?e:{};B=Uu(e,le,U)}}R||(R=new pn);var Se=R.get(e);if(Se)return Se;R.set(e,B),xl(e)?e.forEach(function(_e){B.add(rn(_e,t,o,_e,e,R))}):El(e)&&e.forEach(function(_e,Ve){B.set(Ve,rn(_e,t,o,Ve,e,R))});var xe=re?G?Io:Eo:G?Lt:xt,Le=oe?n:xe(e);return en(Le||e,function(_e,Ve){Le&&(Ve=_e,_e=e[Ve]),xi(B,Ve,rn(_e,t,o,Ve,e,R))}),B}function Qc(e){var t=xt(e);return function(o){return cd(o,e,t)}}function cd(e,t,o){var c=o.length;if(e==null)return!c;for(e=at(e);c--;){var v=o[c],R=t[v],B=e[v];if(B===n&&!(v in e)||!R(B))return!1}return!0}function ud(e,t,o){if(typeof e!="function")throw new tn(l);return Ni(function(){e.apply(n,o)},t)}function _i(e,t,o,c){var v=-1,R=Zi,B=!0,U=e.length,G=[],re=t.length;if(!U)return G;o&&(t=gt(t,Zt(o))),c?(R=Gr,B=!1):t.length>=r&&(R=Ci,B=!1,t=new $n(t));e:for(;++vv?0:v+o),c=c===n||c>v?v:ze(c),c<0&&(c+=v),c=o>c?0:Rl(c);o0&&o(U)?t>1?Rt(U,t-1,o,c,v):Bn(v,U):c||(v[v.length]=U)}return v}var ao=Ld(),fd=Ld(!0);function Sn(e,t){return e&&ao(e,t,xt)}function lo(e,t){return e&&fd(e,t,xt)}function ur(e,t){return Fn(t,function(o){return An(e[o])})}function Xn(e,t){t=Un(t,e);for(var o=0,c=t.length;e!=null&&ot}function nu(e,t){return e!=null&&ot.call(e,t)}function iu(e,t){return e!=null&&t in at(e)}function ru(e,t,o){return e>=At(t,o)&&e=120&&oe.length>=120)?new $n(B&&oe):n}oe=e[0];var le=-1,pe=U[0];e:for(;++le-1;)U!==e&&nr.call(U,G,1),nr.call(e,G,1);return e}function Ed(e,t){for(var o=e?t.length:0,c=o-1;o--;){var v=t[o];if(o==c||v!==R){var R=v;kn(v)?nr.call(e,v,1):yo(e,v)}}return e}function ho(e,t){return e+or(od()*(t-e+1))}function vu(e,t,o,c){for(var v=-1,R=Et(rr((t-e)/(o||1)),0),B=Q(R);R--;)B[c?R:++v]=e,e+=o;return B}function go(e,t){var o="";if(!e||t<1||t>be)return o;do t%2&&(o+=e),t=or(t/2),t&&(e+=e);while(t);return o}function He(e,t){return Mo(tl(e,t,Ot),e+"")}function yu(e){return ld(vi(e))}function Tu(e,t){var o=vi(e);return br(o,Yn(t,0,o.length))}function Ai(e,t,o,c){if(!vt(e))return e;t=Un(t,e);for(var v=-1,R=t.length,B=R-1,U=e;U!=null&&++vv?0:v+t),o=o>v?v:o,o<0&&(o+=v),v=t>o?0:o-t>>>0,t>>>=0;for(var R=Q(v);++c>>1,B=e[R];B!==null&&!Kt(B)&&(o?B<=t:B=r){var re=t?null:Mu(e);if(re)return Ki(re);B=!1,v=Ci,G=new $n}else G=t?[]:U;e:for(;++c=c?e:on(e,t,o)}var Dd=cc||function(e){return _t.clearTimeout(e)};function Md(e,t){if(t)return e.slice();var o=e.length,c=ed?ed(o):new e.constructor(o);return e.copy(c),c}function bo(e){var t=new e.constructor(e.byteLength);return new er(t).set(new er(e)),t}function wu(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.byteLength)}function Eu(e){var t=new e.constructor(e.source,ga.exec(e));return t.lastIndex=e.lastIndex,t}function Iu(e){return Ii?at(Ii.call(e)):{}}function Nd(e,t){var o=t?bo(e.buffer):e.buffer;return new e.constructor(o,e.byteOffset,e.length)}function Fd(e,t){if(e!==t){var o=e!==n,c=e===null,v=e===e,R=Kt(e),B=t!==n,U=t===null,G=t===t,re=Kt(t);if(!U&&!re&&!R&&e>t||R&&B&&G&&!U&&!re||c&&B&&G||!o&&G||!v)return 1;if(!c&&!R&&!re&&e=U)return G;var re=o[c];return G*(re=="desc"?-1:1)}}return e.index-t.index}function Bd(e,t,o,c){for(var v=-1,R=e.length,B=o.length,U=-1,G=t.length,re=Et(R-B,0),oe=Q(G+re),le=!c;++U1?o[v-1]:n,B=v>2?o[2]:n;for(R=e.length>3&&typeof R=="function"?(v--,R):n,B&&Ft(o[0],o[1],B)&&(R=v<3?n:R,v=1),t=at(t);++c-1?v[R?t[B]:B]:n}}function Hd(e){return Rn(function(t){var o=t.length,c=o,v=nn.prototype.thru;for(e&&t.reverse();c--;){var R=t[c];if(typeof R!="function")throw new tn(l);if(v&&!B&&Sr(R)=="wrapper")var B=new nn([],!0)}for(c=B?c:o;++c1&&$e.reverse(),oe&&GU))return!1;var re=R.get(e),oe=R.get(t);if(re&&oe)return re==t&&oe==e;var le=-1,pe=!0,Se=o&E?new $n:n;for(R.set(e,t),R.set(t,e);++le1?"& ":"")+t[c],t=t.join(o>2?", ":" "),e.replace(ni,`{ /* [wrapped with `+t+`] */ `)}function Vu(e){return Fe(e)||ti(e)||!!(id&&e&&e[id])}function kn(e,t){var o=typeof e;return t=t==null?be:t,!!t&&(o=="number"||o!="symbol"&&t0.test(e))&&e>-1&&e%1==0&&e0){if(++t>=ne)return arguments[0]}else t=0;return e.apply(n,arguments)}}function br(e,t){var o=-1,c=e.length,v=c-1;for(t=t===n?c:t;++o1?e[t-1]:n;return o=typeof o=="function"?(e.pop(),o):n,pl(e,o)});function fl(e){var t=x(e);return t.__chain__=!0,t}function ep(e,t){return t(e),e}function Pr(e,t){return t(e)}var tp=Rn(function(e){var t=e.length,o=t?e[0]:0,c=this.__wrapped__,v=function(R){return oo(R,e)};return t>1||this.__actions__.length||!(c instanceof Ze)||!kn(o)?this.thru(v):(c=c.slice(o,+o+(t?1:0)),c.__actions__.push({func:Pr,args:[v],thisArg:n}),new nn(c,this.__chain__).thru(function(R){return t&&!R.length&&R.push(n),R}))});function np(){return fl(this)}function ip(){return new nn(this.value(),this.__chain__)}function rp(){this.__values__===n&&(this.__values__=_l(this.value()));var e=this.__index__>=this.__values__.length,t=e?n:this.__values__[this.__index__++];return{done:e,value:t}}function op(){return this}function ap(e){for(var t,o=this;o instanceof lr;){var c=dl(o);c.__index__=0,c.__values__=n,t?v.__wrapped__=c:t=c;var v=c;o=o.__wrapped__}return v.__wrapped__=e,t}function dp(){var e=this.__wrapped__;if(e instanceof Ze){var t=e;return this.__actions__.length&&(t=new Ze(this)),t=t.reverse(),t.__actions__.push({func:Pr,args:[No],thisArg:n}),new nn(t,this.__chain__)}return this.thru(No)}function lp(){return kd(this.__wrapped__,this.__actions__)}var sp=hr(function(e,t,o){ot.call(e,o)?++e[o]:xn(e,o,1)});function cp(e,t,o){var c=Fe(e)?Va:eu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}function up(e,t){var o=Fe(e)?Fn:pd;return o(e,Ee(t,3))}var mp=Ud(ll),pp=Ud(sl);function fp(e,t){return Rt(wr(e,t),1)}function hp(e,t){return Rt(wr(e,t),Ce)}function gp(e,t,o){return o=o===n?1:ze(o),Rt(wr(e,t),o)}function hl(e,t){var o=Fe(e)?en:Ln;return o(e,Ee(t,3))}function gl(e,t){var o=Fe(e)?F0:md;return o(e,Ee(t,3))}var vp=hr(function(e,t,o){ot.call(e,o)?e[o].push(t):xn(e,o,[t])});function yp(e,t,o,c){e=jt(e)?e:vi(e),o=o&&!c?ze(o):0;var v=e.length;return o<0&&(o=Et(v+o,0)),Rr(e)?o<=v&&e.indexOf(t,o)>-1:!!v&&oi(e,t,o)>-1}var Tp=He(function(e,t,o){var c=-1,v=typeof t=="function",R=jt(e)?Q(e.length):[];return Ln(e,function(B){R[++c]=v?Gt(t,B,o):Ri(B,t,o)}),R}),Sp=hr(function(e,t,o){xn(e,o,t)});function wr(e,t){var o=Fe(e)?gt:Td;return o(e,Ee(t,3))}function Cp(e,t,o,c){return e==null?[]:(Fe(t)||(t=t==null?[]:[t]),o=c?n:o,Fe(o)||(o=o==null?[]:[o]),Pd(e,t,o))}var bp=hr(function(e,t,o){e[o?0:1].push(t)},function(){return[[],[]]});function Pp(e,t,o){var c=Fe(e)?Zr:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,Ln)}function wp(e,t,o){var c=Fe(e)?B0:Ja,v=arguments.length<3;return c(e,Ee(t,4),o,v,md)}function Ep(e,t){var o=Fe(e)?Fn:pd;return o(e,xr(Ee(t,3)))}function Ip(e){var t=Fe(e)?ld:yu;return t(e)}function xp(e,t,o){(o?Ft(e,t,o):t===n)?t=1:t=ze(t);var c=Fe(e)?qc:Tu;return c(e,t)}function _p(e){var t=Fe(e)?$c:Cu;return t(e)}function Rp(e){if(e==null)return 0;if(jt(e))return Rr(e)?di(e):e.length;var t=Dt(e);return t==Ge||t==De?e.size:mo(e).length}function kp(e,t,o){var c=Fe(e)?Jr:bu;return o&&Ft(e,t,o)&&(t=n),c(e,Ee(t,3))}var Ap=He(function(e,t){if(e==null)return[];var o=t.length;return o>1&&Ft(e,t[0],t[1])?t=[]:o>2&&Ft(t[0],t[1],t[2])&&(t=[t[0]]),Pd(e,Rt(t,1),[])}),Er=uc||function(){return _t.Date.now()};function Dp(e,t){if(typeof t!="function")throw new tn(l);return e=ze(e),function(){if(--e<1)return t.apply(this,arguments)}}function vl(e,t,o){return t=o?n:t,t=e&&t==null?e.length:t,_n(e,A,n,n,n,n,t)}function yl(e,t){var o;if(typeof t!="function")throw new tn(l);return e=ze(e),function(){return--e>0&&(o=t.apply(this,arguments)),e<=1&&(t=n),o}}var Bo=He(function(e,t,o){var c=w;if(o.length){var v=zn(o,hi(Bo));c|=g}return _n(e,c,t,o,v)}),Tl=He(function(e,t,o){var c=w|z;if(o.length){var v=zn(o,hi(Tl));c|=g}return _n(t,c,e,o,v)});function Sl(e,t,o){t=o?n:t;var c=_n(e,d,n,n,n,n,n,t);return c.placeholder=Sl.placeholder,c}function Cl(e,t,o){t=o?n:t;var c=_n(e,m,n,n,n,n,n,t);return c.placeholder=Cl.placeholder,c}function bl(e,t,o){var c,v,R,B,U,G,re=0,oe=!1,le=!1,pe=!0;if(typeof e!="function")throw new tn(l);t=dn(t)||0,vt(o)&&(oe=!!o.leading,le="maxWait"in o,R=le?Et(dn(o.maxWait)||0,t):R,pe="trailing"in o?!!o.trailing:pe);function Se(Pt){var hn=c,Mn=v;return c=v=n,re=Pt,B=e.apply(Mn,hn),B}function xe(Pt){return re=Pt,U=Ni(Ve,t),oe?Se(Pt):B}function Le(Pt){var hn=Pt-G,Mn=Pt-re,Ul=t-hn;return le?At(Ul,R-Mn):Ul}function _e(Pt){var hn=Pt-G,Mn=Pt-re;return G===n||hn>=t||hn<0||le&&Mn>=R}function Ve(){var Pt=Er();if(_e(Pt))return $e(Pt);U=Ni(Ve,Le(Pt))}function $e(Pt){return U=n,pe&&c?Se(Pt):(c=v=n,B)}function qt(){U!==n&&Dd(U),re=0,c=G=v=U=n}function Bt(){return U===n?B:$e(Er())}function $t(){var Pt=Er(),hn=_e(Pt);if(c=arguments,v=this,G=Pt,hn){if(U===n)return xe(G);if(le)return Dd(U),U=Ni(Ve,t),Se(G)}return U===n&&(U=Ni(Ve,t)),B}return $t.cancel=qt,$t.flush=Bt,$t}var Mp=He(function(e,t){return ud(e,1,t)}),Np=He(function(e,t,o){return ud(e,dn(t)||0,o)});function Fp(e){return _n(e,H)}function Ir(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new tn(l);var o=function(){var c=arguments,v=t?t.apply(this,c):c[0],R=o.cache;if(R.has(v))return R.get(v);var B=e.apply(this,c);return o.cache=R.set(v,B)||R,B};return o.cache=new(Ir.Cache||In),o}Ir.Cache=In;function xr(e){if(typeof e!="function")throw new tn(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}function Bp(e){return yl(2,e)}var zp=Pu(function(e,t){t=t.length==1&&Fe(t[0])?gt(t[0],Zt(Ee())):gt(Rt(t,1),Zt(Ee()));var o=t.length;return He(function(c){for(var v=-1,R=At(c.length,o);++v=t}),ti=gd(function(){return arguments}())?gd:function(e){return Tt(e)&&ot.call(e,"callee")&&!nd.call(e,"callee")},Fe=Q.isArray,Xp=za?Zt(za):au;function jt(e){return e!=null&&_r(e.length)&&!An(e)}function bt(e){return Tt(e)&&jt(e)}function Qp(e){return e===!0||e===!1||Tt(e)&&Nt(e)==ke}var Vn=pc||Ko,ef=ja?Zt(ja):du;function tf(e){return Tt(e)&&e.nodeType===1&&!Fi(e)}function nf(e){if(e==null)return!0;if(jt(e)&&(Fe(e)||typeof e=="string"||typeof e.splice=="function"||Vn(e)||gi(e)||ti(e)))return!e.length;var t=Dt(e);if(t==Ge||t==De)return!e.size;if(Mi(e))return!mo(e).length;for(var o in e)if(ot.call(e,o))return!1;return!0}function rf(e,t){return ki(e,t)}function of(e,t,o){o=typeof o=="function"?o:n;var c=o?o(e,t):n;return c===n?ki(e,t,n,o):!!c}function jo(e){if(!Tt(e))return!1;var t=Nt(e);return t==Yt||t==yn||typeof e.message=="string"&&typeof e.name=="string"&&!Fi(e)}function af(e){return typeof e=="number"&&rd(e)}function An(e){if(!vt(e))return!1;var t=Nt(e);return t==It||t==Ht||t==we||t==Ae}function wl(e){return typeof e=="number"&&e==ze(e)}function _r(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=be}function vt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function Tt(e){return e!=null&&typeof e=="object"}var El=La?Zt(La):su;function df(e,t){return e===t||uo(e,t,_o(t))}function lf(e,t,o){return o=typeof o=="function"?o:n,uo(e,t,_o(t),o)}function sf(e){return Il(e)&&e!=+e}function cf(e){if(Zu(e))throw new Ne(a);return vd(e)}function uf(e){return e===null}function mf(e){return e==null}function Il(e){return typeof e=="number"||Tt(e)&&Nt(e)==Ct}function Fi(e){if(!Tt(e)||Nt(e)!=Oe)return!1;var t=tr(e);if(t===null)return!0;var o=ot.call(t,"constructor")&&t.constructor;return typeof o=="function"&&o instanceof o&&Yi.call(o)==dc}var Lo=Oa?Zt(Oa):cu;function pf(e){return wl(e)&&e>=-be&&e<=be}var xl=Ua?Zt(Ua):uu;function Rr(e){return typeof e=="string"||!Fe(e)&&Tt(e)&&Nt(e)==Xe}function Kt(e){return typeof e=="symbol"||Tt(e)&&Nt(e)==P}var gi=Ha?Zt(Ha):mu;function ff(e){return e===n}function hf(e){return Tt(e)&&Dt(e)==F}function gf(e){return Tt(e)&&Nt(e)==j}var vf=Tr(po),yf=Tr(function(e,t){return e<=t});function _l(e){if(!e)return[];if(jt(e))return Rr(e)?mn(e):zt(e);if(bi&&e[bi])return q0(e[bi]());var t=Dt(e),o=t==Ge?Qr:t==De?Ki:vi;return o(e)}function Dn(e){if(!e)return e===0?e:0;if(e=dn(e),e===Ce||e===-Ce){var t=e<0?-1:1;return t*Pe}return e===e?e:0}function ze(e){var t=Dn(e),o=t%1;return t===t?o?t-o:t:0}function Rl(e){return e?Yn(ze(e),0,N):0}function dn(e){if(typeof e=="number")return e;if(Kt(e))return Ye;if(vt(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=vt(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=Ka(e);var o=Xs.test(e);return o||e0.test(e)?D0(e.slice(2),o?2:8):Ys.test(e)?Ye:+e}function kl(e){return Cn(e,Lt(e))}function Tf(e){return e?Yn(ze(e),-be,be):e===0?e:0}function it(e){return e==null?"":Jt(e)}var Sf=pi(function(e,t){if(Mi(t)||jt(t)){Cn(t,xt(t),e);return}for(var o in t)ot.call(t,o)&&xi(e,o,t[o])}),Al=pi(function(e,t){Cn(t,Lt(t),e)}),kr=pi(function(e,t,o,c){Cn(t,Lt(t),e,c)}),Cf=pi(function(e,t,o,c){Cn(t,xt(t),e,c)}),bf=Rn(oo);function Pf(e,t){var o=mi(e);return t==null?o:sd(o,t)}var wf=He(function(e,t){e=at(e);var o=-1,c=t.length,v=c>2?t[2]:n;for(v&&Ft(t[0],t[1],v)&&(c=1);++o1),R}),Cn(e,Io(e),o),c&&(o=rn(o,y|h|D,Nu));for(var v=t.length;v--;)yo(o,t[v]);return o});function Hf(e,t){return Ml(e,xr(Ee(t)))}var Vf=Rn(function(e,t){return e==null?{}:hu(e,t)});function Ml(e,t){if(e==null)return{};var o=gt(Io(e),function(c){return[c]});return t=Ee(t),wd(e,o,function(c,v){return t(c,v[0])})}function Wf(e,t,o){t=Un(t,e);var c=-1,v=t.length;for(v||(v=1,e=n);++ct){var c=e;e=t,t=c}if(o||e%1||t%1){var v=od();return At(e+v*(t-e+A0("1e-"+((v+"").length-1))),t)}return ho(e,t)}var t1=fi(function(e,t,o){return t=t.toLowerCase(),e+(o?Bl(t):t)});function Bl(e){return Ho(it(e).toLowerCase())}function zl(e){return e=it(e),e&&e.replace(n0,W0).replace(C0,"")}function n1(e,t,o){e=it(e),t=Jt(t);var c=e.length;o=o===n?c:Yn(ze(o),0,c);var v=o;return o-=t.length,o>=0&&e.slice(o,v)==t}function i1(e){return e=it(e),e&&st.test(e)?e.replace(Vt,G0):e}function r1(e){return e=it(e),e&&Wt.test(e)?e.replace(pt,"\\$&"):e}var o1=fi(function(e,t,o){return e+(o?"-":"")+t.toLowerCase()}),a1=fi(function(e,t,o){return e+(o?" ":"")+t.toLowerCase()}),d1=Od("toLowerCase");function l1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;if(!t||c>=t)return e;var v=(t-c)/2;return yr(or(v),o)+e+yr(rr(v),o)}function s1(e,t,o){e=it(e),t=ze(t);var c=t?di(e):0;return t&&c>>0,o?(e=it(e),e&&(typeof t=="string"||t!=null&&!Lo(t))&&(t=Jt(t),!t&&ai(e))?Hn(mn(e),0,o):e.split(t,o)):[]}var g1=fi(function(e,t,o){return e+(o?" ":"")+Ho(t)});function v1(e,t,o){return e=it(e),o=o==null?0:Yn(ze(o),0,e.length),t=Jt(t),e.slice(o,o+t.length)==t}function y1(e,t,o){var c=x.templateSettings;o&&Ft(e,t,o)&&(t=n),e=it(e),t=kr({},t,c,Jd);var v=kr({},t.imports,c.imports,Jd),R=xt(v),B=Xr(v,R),U,G,re=0,oe=t.interpolate||Vi,le="__p += '",pe=eo((t.escape||Vi).source+"|"+oe.source+"|"+(oe===Si?$s:Vi).source+"|"+(t.evaluate||Vi).source+"|$","g"),Se="//# sourceURL="+(ot.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++I0+"]")+` `;e.replace(pe,function(_e,Ve,$e,qt,Bt,$t){return $e||($e=qt),le+=e.slice(re,$t).replace(i0,Z0),Ve&&(U=!0,le+=`' + @@ -868,4 +868,4 @@ Content-Type: `+(ce.type||"application/octet-stream")+`\r `),Ls=["precision highp float;","varying highp vec2 textureCoord;","uniform sampler2D ySampler;","uniform sampler2D uSampler;","uniform sampler2D vSampler;","const mat4 YUV2RGB = mat4","(","1.1643828125, 0, 1.59602734375, -.87078515625,","1.1643828125, -.39176171875, -.81296875, .52959375,","1.1643828125, 2.017234375, 0, -1.081390625,","0, 0, 0, 1",");","void main(void) {","highp float y = texture2D(ySampler, textureCoord).r;","highp float u = texture2D(uSampler, textureCoord).r;","highp float v = texture2D(vSampler, textureCoord).r;","gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;","}"].join(` `);(function(f,u){window.SuperRender=u()})(void 0,function(){function f(u){this.canvasElement=document.getElementById(u),this.initContextGL(),this.contextGL&&(this.YUVProgram=this.initProgram(js,Ls),this.initBuffers(),this.initTextures())}return f.prototype.initContextGL=function(){var u=this.canvasElement,n=null;try{n=u.getContext("webgl")||u.getContext("experimental-webgl")}catch(i){n=null}(!n||typeof n.getParameter!="function")&&(n=null),this.contextGL=n,console.log("WebGL1.0")},f.prototype.initProgram=function(u,n){var i=this.contextGL,r=i.createShader(i.VERTEX_SHADER);i.shaderSource(r,u),i.compileShader(r),i.getShaderParameter(r,i.COMPILE_STATUS)||console.log("Vertex shader failed to compile: "+i.getShaderInfoLog(r));var a=i.createShader(i.FRAGMENT_SHADER);i.shaderSource(a,n),i.compileShader(a),i.getShaderParameter(a,i.COMPILE_STATUS)||console.log("Fragment shader failed to compile: "+i.getShaderInfoLog(a));var l=i.createProgram();return i.attachShader(l,r),i.attachShader(l,a),i.linkProgram(l),i.getProgramParameter(l,i.LINK_STATUS)||console.log("Program failed to compile: "+i.getProgramInfoLog(l)),i.deleteShader(r),i.deleteShader(a),l},f.prototype.initBuffers=function(){var u=this.contextGL,n=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,n),u.bufferData(u.ARRAY_BUFFER,new Float32Array([1,1,-1,1,1,-1,-1,-1]),u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var i=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,i),u.bufferData(u.ARRAY_BUFFER,new Float32Array([1,0,0,0,1,1,0,1]),u.DYNAMIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null),this.vertexPosBuffer=n,this.texturePosBuffer=i},f.prototype.initTexture=function(){var u=this.contextGL,n=u.createTexture();return u.bindTexture(u.TEXTURE_2D,n),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MAG_FILTER,u.LINEAR),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_MIN_FILTER,u.LINEAR),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_S,u.CLAMP_TO_EDGE),u.texParameteri(u.TEXTURE_2D,u.TEXTURE_WRAP_T,u.CLAMP_TO_EDGE),u.bindTexture(u.TEXTURE_2D,null),n},f.prototype.initTextures=function(){var u=this.contextGL,n=this.YUVProgram;u.useProgram(n);var i=this.initTexture(),r=u.getUniformLocation(n,"ySampler");u.uniform1i(r,0),this.yTextureRef=i;var a=this.initTexture(),l=u.getUniformLocation(n,"uSampler");u.uniform1i(l,1),this.uTextureRef=a;var s=this.initTexture(),b=u.getUniformLocation(n,"vSampler");u.uniform1i(b,2),this.vTextureRef=s,u.useProgram(null)},f.prototype.SR_DisplayFrameData=function(u,n,i,r,a){if(!(u<=0||n<=0)){var l=this.contextGL;if(i==null){l.clearColor(0,0,0,0),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT);return}var s=this.canvasElement;this.nWindowWidth=s.width,this.nWindowHeight=s.height;var b=this.nWindowWidth,T=this.nWindowHeight;l.clearColor(.8,.8,1,1),l.clear(l.COLOR_BUFFER_BIT|l.DEPTH_BUFFER_BIT),l.viewport(0,0,b,T),this.updateFrameData(u,n,i,r,a);var C=this.YUVProgram;l.useProgram(C);var y=this.vertexPosBuffer;l.bindBuffer(l.ARRAY_BUFFER,y);var h=l.getAttribLocation(C,"vertexPos");l.enableVertexAttribArray(h),l.vertexAttribPointer(h,2,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,null);var D=this.texturePosBuffer;l.bindBuffer(l.ARRAY_BUFFER,D);var _=l.getAttribLocation(C,"texturePos");l.enableVertexAttribArray(_),l.vertexAttribPointer(_,2,l.FLOAT,!1,0,0),l.bindBuffer(l.ARRAY_BUFFER,null),l.drawArrays(l.TRIANGLE_STRIP,0,4),l.disableVertexAttribArray(h),l.disableVertexAttribArray(_),l.useProgram(null)}},f.prototype.updateFrameData=function(u,n,i,r,a){var l=this.contextGL,s=this.yTextureRef,b=this.uTextureRef,T=this.vTextureRef,C=i;if(u==r&&n==a){var y=u*n,h=C.subarray(0,y);l.activeTexture(l.TEXTURE0),l.bindTexture(l.TEXTURE_2D,s),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u,n,0,l.LUMINANCE,l.UNSIGNED_BYTE,h);var D=u/2*n/2,_=C.subarray(u*n,u*n+D);l.activeTexture(l.TEXTURE2),l.bindTexture(l.TEXTURE_2D,T),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u/2,n/2,0,l.LUMINANCE,l.UNSIGNED_BYTE,_);var E=D,w=C.subarray(u*n+u*n/4,u*n+u*n/4+E);l.activeTexture(l.TEXTURE1),l.bindTexture(l.TEXTURE_2D,b),l.texImage2D(l.TEXTURE_2D,0,l.LUMINANCE,u/2,n/2,0,l.LUMINANCE,l.UNSIGNED_BYTE,w)}else{for(var y=r*a,h=new Uint8Array(y),z=0;z0&&r>0){var l=u.left/i,s=u.top/r,b=u.right/i,T=u.bottom/r;a=new Float32Array([b,s,l,s,b,T,l,T])}else a=new Float32Array([1,0,0,0,1,1,0,1]);var C=this.texturePosBuffer;n.bindBuffer(n.ARRAY_BUFFER,C),n.bufferSubData(n.ARRAY_BUFFER,0,a),n.bindBuffer(n.ARRAY_BUFFER,null)},f.prototype.SR_Destroy=function(){var u=this.contextGL,n=this.YUVProgram;u.deleteProgram(n);var i=this.vertexPosBuffer,r=this.texturePosBuffer;u.deleteBuffer(i),u.deleteBuffer(r);var a=this.yTextureRef,l=this.uTextureRef,s=this.vTextureRef;u.deleteTexture(a),u.deleteTexture(l),u.deleteTexture(s)},f});var fa="https://open.ys7.com",Os="".concat(fa,"/console/ezuikit_static/v66/v2"),Us="".concat(fa,"/console/ezuikit_static/v66/v1"),ha=function(u,n){var i=["theme","standard"],r=["pcLive","pcRec","mobileLive","mobileRec","noData","security","voice","simple"];if(typeof u=="undefined")return n.themeData?{templateType:"themeData",templateId:"themeData"}:{templateType:"local",templateId:""};if(typeof u=="string"){if(u.length===32)return{templateType:"remote",templateId:u};if(i.indexOf(u)!==-1)return u==="simple"&&typeof n.header=="undefined"&&typeof n.footer=="undefined"?{templateType:"local",templateId:""}:{templateType:"iframe",templateId:u};if(r.indexOf(u)!==-1)return{templateType:"local",templateId:u}}},lt=function(){var u=window.navigator.userAgent.toLowerCase(),n={sa:/version.*safari/.test(u),ch:/chrome/.test(u),ff:/gecko/.test(u)&&!/webkit/.test(u)},i=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);if(i)return!1;if(n.ch){var r=function(){for(var l=window.navigator.userAgent.split(" "),s="",b=0;b91&&!!window.SharedArrayBuffer}return!1},Hs=function(){function f(u){var n=this;fe(this,f),this.isStoping=!1;var i=u.autoplay,r=i===void 0?!0:i;if((u.template||u.themeData)&&(r=!1),this.params=u,this.autoplay=r,window.EZUIKit[u.id]={state:{EZUIKitPlayer:{init:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.init||!1,themeInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.themeInit||!1,talkInit:window.EZUIKit[u.id]&&window.EZUIKit[u.id].state&&window.EZUIKit[u.id].state.EZUIKitPlayer.talkInit||!1}}},ha(this.params.template,u).templateType!=="iframe"){this.Monitor=new Ds({env:typeof u.disableMonitor!="undefined"&&u.disableMonitor?"test12":"online"},this),this.id=u.id,this.width=u.width,this.height=u.height,this.url=u.url,this.accessToken=u.accessToken,this.themeId=ha(u.template,u).templateId,this.id=u.id,this.audio=!0,this.poster=u.poster,this.speed=1,this.disabledTimeLine=!1,this.disabledPTZ=!1,this.enableSharedArrayBufferGuide=!1,this.capacity={},this.playTimer=null,this.env={domain:"https://open.ys7.com"};var a=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);this.isMobile=a,document.getElementById("".concat(this.id,"-wrap"))&&(document.getElementById("".concat(this.id,"-wrap")).innerHTML="",document.getElementById("".concat(this.id,"-wrap")).id=this.id),this.staticPath=lt()?Os:Us,typeof u.staticPath=="string"&&(u.staticPath.startsWith("http")?this.staticPath=u.staticPath:this.staticPath=window.location.protocol+"//"+window.location.host+u.staticPath,lt()?this.staticPath+="/v2":this.staticPath+="/v1"),typeof u.audio!="undefined"&&(this.audio=u.audio),typeof u.env!="undefined"&&(this.env=Object.assign(this.env,u.env)),typeof u.isMobile!="undefined"&&(this.isMobile=u.isMobile),typeof u.disabledTimeLine!="undefined"&&(this.disabledTimeLine=u.disabledTimeLine),typeof u.disabledPTZ!="undefined"&&(this.disabledPTZ=u.disabledPTZ),typeof u.enableSharedArrayBufferGuide!="undefined"&&(this.enableSharedArrayBufferGuide=u.enableSharedArrayBufferGuide);var l="".concat(this.staticPath,"/js/jsPluginV1-1.0.0.min.js"),s=function(){if(window.addPluginUrlIng=!0,lt())console.log("启用多线程解析视频"),l="".concat(n.staticPath,"/js/jsPluginV2-2.0.1.min.js");else{var C=function(){for(var w=navigator.userAgent.split(" "),z="",S=0;S0&&(l=T.width),!n.height&&T.height>0&&(b=T.height)}if(!document.getElementById("".concat(r,"-wrap"))){var C=document.createElement("div");C.id="".concat(r,"-wrap"),C.style="display:inline-block;width:".concat(l,"px;position:relative;vertical-align: bottom;"),document.getElementById(r).parentNode.insertBefore(C,document.getElementById(r)),document.getElementById(r).parentNode.removeChild(document.getElementById(r)),C.innerHTML="
    "),document.getElementById(r).style="display:inline-block;width:".concat(l,"px;height:").concat(b,"px;"),document.getElementById(r).style.verticalAlign="top"}this.themeId&&(this.Theme=new As(this,n.id),window.EZUIKit[n.id].state.EZUIKitPlayer.themeInit=!0,this.Monitor.dclog({url:this.url,action:2,text:this.themeId}),typeof this.params.handleThemeChange=="function"&&(this.handleThemeChange=this.params.handleThemeChange));var y=new ts(this,r);this.Message=y;var h=function(E,w){var z;if(lt()){z=new window.JSPluginV2({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},openStreamCallback:function(){console.log("开启取流"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z;var S=setInterval(function(){window.JSPlayerModuleLoaded&&(clearInterval(S),typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"))},50)}else z=new window.JSPluginV1({szId:r,iType:2,iWidth:l,iHeight:b,iMaxSplit:1,iCurrentSplit:1,szBasePath:"",staticPath:i.staticPath,oStyle:{border:"none",background:"#000000"}}),i.pluginStatus.loadingStart(r),i.pluginStatus.loadingSetText({text:"初始化播放器完成"}),z.EventCallback={openStreamCallback:function(){console.log("开启取流---v1"),i.openStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:224,d:i.openStreamTime-i.gotWsUrlTime,text:"openStream",isVersion2Available:lt()?1:0})},getStreamHeaderCallback:function(){console.log("完成取流返回流头"),i.getStreamHeaderTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:225,d:i.getStreamHeaderTime-i.openStreamTime,text:"getStreamHeader",isVersion2Available:lt()?1:0})},getVideoStreamCallback:function(){console.log("返回视频流(首次)"),i.getVideoStreamTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:226,d:i.getVideoStreamTime-i.getStreamHeaderTime,text:"getVideoStream",isVersion2Available:lt()?1:0})},appearFirstFrameCallback:function(){console.log("出现首帧画面(播放成功)"),i.appearFirstFrameTime=new Date().getTime(),i.Monitor.dclog({url:i.url,action:227,d:i.appearFirstFrameTime-i.getStreamHeaderTime,text:"appearFirstFrame",isVersion2Available:lt()?1:0})},averageStreamSuccessCallback:function(){console.log("平均成功取流的出流耗时"),i.averageStreamSuccessTime=i.initSuccessTime-i.initTime+(i.gotWsUrlTime-i.startGetWsUrlTime)+(i.appearFirstFrameTime-i.openStreamTime),i.Monitor.dclog({url:i.url,action:228,d:i.averageStreamSuccessTime,text:"averageStreamSuccess",isVersion2Available:lt()?1:0})},loadEventHandler:function(){},zoomEventResponse:function(){},windowEventSelect:function(m){},pluginErrorHandler:function(m,g,k){if(console.log(m,g,k),g===1003)console.log("断流"),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),z.bPlay||(i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:"连接断开,请重试",color:"red"})),typeof i.params.handleError=="function"&&i.params.handleError({msg:"连接断开,请重试",retcode:1003,id:i.params.id,type:"handleError"});else if(k.errorCode!=1){var A=i.errorHander.matchErrorInfo(k.errorCode),O="连接断开,请重试";A&&A.msg?O=A.msg:A&&A.description&&(O=A.description),i.Theme.setDecoderState({play:!1}),i.pluginStatus.setPlayStatus({play:!1}),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:O,color:"red"})}else i.pluginStatus.loadingClear(),i.Theme&&i.Theme.setDisabled(!1)},windowEventOver:function(m){},windowEventOut:function(m){},windowEventUp:function(m){},windowFullCcreenChange:function(m){},firstFrameDisplay:function(m,g,k){console.log(g,k),z.JS_SetCanFullScreen(!1)},performanceLack:function(){},mouseEvent:function(m,g,k){}},i.env={domain:"https://open.ys7.com"},typeof n.env!="undefined"&&(i.env=Object.assign(i.env,n.env)),typeof n.handleTalkSuccess!="undefined"&&(i.handleTalkSuccess=n.handleTalkSuccess),typeof n.handleTalkError!="undefined"&&(i.handleTalkError=n.handleTalkError),i.errorHander=new Xo,i.jSPlugin=z,typeof i.params.handleInitSuccess=="function"&&i.params.handleInitSuccess({retcode:0,id:i.params.id,type:"handleInitSuccess"}),E({meta:{retcode:200,msg:"初始化成功"}}),n.url.indexOf("rec")!=-1&&i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec")},D=new Promise(h);return D}},{key:"_getRealUrlPromise",value:function(n,i){var r=this;console.log("获取播放地址 url => ".concat(i," ").concat(this.accessToken)),console.log("开始获取wsurl"),this.startGetWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:222,text:"startGetWsUrl",isVersion2Available:lt()?1:0});var a=this.env.domain;this.env&&(a=this.env.domain);var l=function(C,y){var h="",D=a+"/api/lapp/live/url/ezopen",_=new FormData;_.append("ezopen",i),_.append("isFlv",!1),_.append("userAgent",window.navigator.userAgent),_.append("isHttp",!1),_.append("accessToken",n),fetch(D,{method:"POST",body:_}).then(function(E){return E.json()}).then(function(E){if(E.code==200||E.retcode==0){var w="",z="";E.ext&&E.ext.token?(h+=E.data,z=E.ext.token,w=E.data):E.data&&E.data.token&&(h+=E.data.url,z=E.data.token,w=E.data.url);var S=i.indexOf("live")!==-1?"live":"playback";S==="live"?h=h+"&ssn="+z+"&auth=1&biz=4&cln=100":h=h+"&ssn="+z+"&auth=1&cln=100",console.log(h);var d=et("checkCode",h);if(d&&(typeof r.jSPlugin.decoderVersion!="undefined"&&r.jSPlugin.decoderVersion==="2.0"?r.validateCode=d:(console.log("设置密钥",d),r.jSPlugin.JS_SetSecretKey(0,d))),h.indexOf("playback")!==-1){var m=et("begin",w)||et("begin",i),g=et("end",w)||et("end",i);if(m)h=h.replace("&begin="+et("begin",w),"&begin="+s(m,"000000")),et("begin",h)||(h+="&begin="+s(m,"000000"));else{var k=new Date;h=h+"&begin="+k.Format("yyyyMMdd")+"T000000Z"}if(g?(h=h.replace("&end="+et("end",w),"&end="+s(g,"235959")),et("end",h)||(h+="&end="+s(g,"235959"))):h=h+"&end="+s(et("begin",h).substr(0,8),"235959"),et("stream",w)||(h=h.replace("stream","&stream")),i.indexOf(".cloud")!==-1){var A=function(Ce){if(Ce.code==200){var be=[];if(Ce.data&&Ce.data.files&&Ce.data.files.length>0){var Pe=Ce.data.files,Ye=new Date().getTime(),N=Ce.data.isAll;if(N){be=ce(Pe);var K=JSON.stringify(be).replace("\\","");h+="&recSlice="+K.replace("\\","")+"&r="+Math.random(),C(h)}else{var te=function he(){function Re(we){if(we.data&&we.data.files&&we.data.files.length>0)if(we.data.isAll==!1)we.data.files&&(Pe=Pe.concat(we.data.files)),Ye=we.data.nextFileTime>0?we.data.nextFileTime:new Date().getTime(),he();else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}else{be=ce(Pe);var ke=JSON.stringify(be).replace("\\","");h+="&recSlice="+ke.replace("\\","")+"&r="+Math.random(),C(h)}}Y.startTime=Ye,Gn(ne,"POST",Y,"",Re)};te()}}else y({retcode:-1,msg:"未找到录像片段"})}else y({retcode:-1,msg:"未找到录像片段"});function ce(he){var Re=[];return he.forEach(function(we,ke){Re.length==0||we.downloadPath!==Re[Re.length-1].downloadPath?Re.push({downloadPath:we.downloadPath,ownerId:we.ownerId,iStorageVersion:we.iStorageVersion,videoType:we.videoType,iPlaySpeed:0,startTime:we.startTime,endTime:we.endTime}):Re[Re.length-1].endTime=we.endTime}),Re}},O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/time",Y={accessToken:r.accessToken,recType:1,deviceSerial:Z,channelNo:X,startTime:O,endTime:H,version:"2.0"};Gn(ne,"POST",Y,"",A)}else if(i.indexOf("alarmId")!==-1){var me=function(te){if(te.code==200){var ce=[];if(te.data){ce=Re([te.data]);var he=JSON.stringify(ce).replace("\\","");h+="&recSlice="+he.replace("\\",""),console.log("realUrl",h,te.data.recType),te.data.recType==1?h=h.replace("/playback","/cloudplayback"):h=h.replace("/cloudplayback","/playback"),C(h)}}function Re(we){var ke=[];return we.forEach(function(We,yn){ke.length==0||We.downloadPath!==ke[ke.length-1].downloadPath?ke.push({downloadPath:We.downloadPath,ownerId:We.ownerId,iStorageVersion:We.iStorageVersion,videoType:We.videoType,iPlaySpeed:0,startTime:We.startTime,endTime:We.endTime}):ke[ke.length-1].endTime=We.endTime}),console.log("downloadPathArr",ke),ke}};console.log("进入alarmId回放");var ge=et("alarmId",h),O=b(et("begin",h)),H=b(et("end",h)),Z=et("serial",h),X=et("chn",h),ne=a+"/api/lapp/video/by/id",Y={accessToken:r.accessToken,deviceSerial:Z,channelNo:X,alarmId:ge};Gn(ne,"POST",Y,"",me)}else C(h)}else C(h)}else r.Theme&&r.Theme.setDisabled(!0),r.pluginStatus.loadingClear(),r.pluginStatus.loadingSetText({text:E.msg,color:"red"}),typeof r.params.handleError=="function"&&r.params.handleError({retcode:E.code,msg:E.msg,id:r.params.id,type:"handleError"}),y(E)})};return new Promise(function(T,C){return l(T,C)});function s(T,C){var y=/^[0-9]{8}T[0-9]{6}Z$/;if(y.test(T))return T;if(/[0-9]{8,14}/.test(T)){var h=6-(14-T.length),D=C.length,_=T+C.substring(h,D);return _.slice(0,8)+"T"+_.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}function b(T){var C=T.slice(0,4),y=T.slice(4,6),h=T.slice(6,8),D=T.slice(9,11),_=T.slice(11,13),E=T.slice(13,15),w=C+"-"+y+"-"+h+" "+D+":"+_+":"+E;return new Date(w.replace(/-/g,"/")).getTime()}}},{key:"_pluginPlay",value:function(n,i,r){var a=this;if(console.log("执行播放 _pluginPlay",n),!n)return!1;function l(C){var y=C.split("?")[0].replace("/live","").replace("/playback",""),h=(C.indexOf("/live")===-1?C.indexOf("cloudplayback")!==-1?"/cloudplayback?":"/playback?":"/live?")+C.split("?")[1];return h.indexOf("/playback")!==-1&&(h=h.replace("stream=2","stream=1")),{websocketConnectUrl:y,websocketStreamingParam:h}}var s=l(n).websocketConnectUrl;this.env&&this.env.wsUrl&&(s=this.env.wsUrl),this.gotWsUrlTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:223,d:this.gotWsUrlTime-this.startGetWsUrlTime,text:"getWsUrlSuccess",isVersion2Available:lt()?1:0});var b={playURL:l(n).websocketStreamingParam};console.log("播放前 stop 阶段 结束"),this.isStoping=!1;var T=Date.now();console.log("执行播放 ... this.jSPlugin.JS_Play at ",T),this.jSPlugin.JS_Play(s,b,0).then(function(){if(console.log("执行播放 ... this.jSPlugin.JS_Play 播放成功",s,b),console.log("执行播放耗时 ",Date.now()-T),a.isStoping){console.log("现在在播放前 stop 阶段,此次应为无效播放成功触发。不执行后续回调, 此次耗时无效");return}if(a.validateCode&&typeof a.jSPlugin.decoderVersion!="undefined"&&a.jSPlugin.decoderVersion==="2.0"&&a.jSPlugin.JS_SetSecretKey(0,a.validateCode),a.pluginStatus.loadingClear(),a.pluginStatus.setPlayStatus({play:!0,loading:!1}),a.Theme){a.Theme.setDecoderState({play:!0});var C=Ut.findIndex(a.Theme.themeData.footer.btnList,function(y){return y.iconId==="sound"&&y.isrender===1&&y.defaultActive===1})>-1;a.audio=C}a.audio&&setTimeout(function(){a.openSound()},500),typeof a.params.handleSuccess=="function"&&a.params.handleSuccess({retcode:0,id:a.params.id,type:"handleSuccess"}),i(b),a.Monitor.dclog({url:a.url,action:211,d:new Date().getTime()-a.playStartTime,text:"startPlaySuccess"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:0,Cost:new Date().getTime()-a.playStartTime,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})},function(C){console.log("err",C);var y="播放失败,请检查设备及客户端网络",h=-1;if(a.jSPlugin.bPlay)return!1;if(C&&C.errorCode){var D=a.errorHander.matchErrorInfo(C.errorCode);a.Theme&&a.Theme.setDisabled(!0),D&&D.msg?y=D.msg:D&&D.description?y=D.description:y="播放失败,请检查设备及客户端网络",h=C.errorCode}a.pluginStatus.loadingClear(),a.pluginStatus.loadingSetText({text:y,color:"red"}),typeof a.params.handleError=="function"&&a.params.handleError({retcode:h,msg:y,id:a.params.id,type:"handleError"}),r(),a.Monitor.dclog({url:a.url,action:411,d:new Date().getTime()-a.playStartTime,text:"startPlayError"}),a.Monitor.playLog({Enc:a.url.indexOf("@")===-1?0:1,PlTp:a.url.indexOf("back")===-1?1:2,Via:2,ErrCd:h,Cost:-1,Serial:Ke(a.url).deviceSerial,Channel:Ke(a.url).channelNo,Ver:lt()?"v7.0.0":"v6.0.0"})})}},{key:"_play",value:function(n){var i=this;console.log("执行播放 play options.url =>",n),this.pluginStatus.setPlayStatus({play:!1,loading:!0}),this.playStartTime=new Date().getTime(),this.Monitor.dclog({url:this.url,action:1,d:new Date().getTime()-this.initTime,text:"startPlay"}),n&&(typeof n=="string"&&(this.url=n),typeof n.url=="string"&&(this.url=n.url),typeof n.accessToken=="string"&&(this.accessToken=n.accessToken),this.Theme&&(typeof n.url=="string"||typeof n.accessToken=="string")&&this.Theme.getDeviceInfo());var r=new Promise(function(a,l){console.log("执行 播放前 stop"),i.isStoping=!0,i.jSPlugin.JS_Stop(0).then(function(){console.log("播放前 stop 执行成功 this.url => ".concat(i.url," ").concat(i.accessToken)),i._getRealUrlPromise(i.accessToken,i.url).then(function(s){i._pluginPlay(s,function(b){a(!0)},function(){return l(!1)})}).catch(function(s){var b=s.msg?s.msg:"播放失败,请检查设备及客户端网络";i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:b,color:"red"}),typeof i.params.handleError=="function"&&i.params.handleError({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"}),l({retcode:s.oError?s.oError.errorCode:-1,msg:b,id:i.params.id,type:"handleError"})})})});return r}},{key:"stop",value:function(){var n=this;return this.pluginStatus.setPlayStatus({loading:!0}),this.reSetTheme(),this.jSPlugin.JS_Stop(0).then(function(){console.log("停止成功"),n.pluginStatus.setPlayStatus({play:!1,loading:!1}),n.Theme&&n.Theme.setDecoderState({play:!1})})}},{key:"changeVideoLevel",value:function(n){var i=this,r=this.url,a=n?r.replace(".live",".hd.live"):r.replace(".hd.live",".live");this.jSPlugin.playURL=n?this.jSPlugin.playURL.replace("stream=2","stream=1"):this.jSPlugin.playURL.replace("stream=1","stream=2"),console.log("changeVideoLevel",a,this.jSPlugin.playURL),this.url=a;var l=new Promise(function(s,b){i.pause().then(function(){console.log("暂停成功"),i.resume().then(function(T){console.log("恢复成功")})}).catch(function(){console.log("暂停失败"),i.resume().then(function(T){console.log("恢复成功")})})});return l}},{key:"reSetTheme",value:function(){this.Theme&&this.Theme.Ptz&&(this.Theme.setDecoderState({pantile:!1}),this.Theme.Ptz.hide()),this.Theme&&this.Theme.decoderState.state.recordvideo&&this.Theme.setDecoderState({recordvideo:!1}),this.Theme&&this.Theme.decoderState.state.zoom&&(this.Zoom.stopZoom(),this.Theme.setDecoderState({zoom:!1})),this.Theme&&this.Theme.decoderState.state.talk&&(this.stopTalk(),this.Theme.setDecoderState({talk:!1})),this.Theme&&this.Theme.Rec&&!this.Theme.isMobile&&this.Theme.Rec.datepickerHide(),this.Theme&&this.Theme.Rec&&(this.Theme.changeRecSpeed(1),this.Theme.nextRate=1,this.speed=1,this.Theme.setDecoderState({speed:!1}))}},{key:"_changePlayUrl",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){};console.log("_changePlayUrl"),console.log(n),this.reSetTheme(),this.getDeviceCapacity({accessToken:n.accessToken,deviceSerial:n.deviceSerial});var a=this.url,l=b(a,n);n.accessToken&&(this.accessToken=n.accessToken),this.url=l,r(),this.pluginStatus.loadingStart(this.id),this.pluginStatus.loadingSetText({text:"加载中,请稍后"});var s=new Promise(function(T,C){var y={url:l};return n.accessToken&&(y.accessToken=n.accessToken),console.log("切换播放地址 参数 ",y),i.play(y).then(function(){console.log("切换播放地址 play 执行成功 ",i.url,i.accessToken),i.Theme&&i.Theme.decoderState.state.webExpend&&i.Theme.webExpend(),i.Theme&&i.Theme.decoderState.state.expend&&i.Theme.expend(),n.type?n.type=="rec"||n.type=="cloud.rec"?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"):i.url.indexOf(".rec")>-1?i.Theme.changeTheme(i.isMobile?"mobileRec":"pcRec"):i.Theme.changeTheme(i.isMobile?"mobileLive":"pcLive"),n&&n.begin&&n.deviceSerial&&i.Theme.Rec.setDatepickerDate(n.begin),i.Theme.setDisabled(!1),T(l)}).catch(function(h){C(l),h&&h.msg&&(i.Theme&&i.Theme.setDisabled(!0),i.pluginStatus.loadingClear(),i.pluginStatus.loadingSetText({text:h.msg,color:"red"}))})});function b(T,C){if(C.url)return C.url;console.log("--------------matchInitUrl",T);var y=T.split("/")[4].split(".")[T.split("/")[4].split(".").length-1].split("?")[0];y==="rec"&&T.indexOf(".cloud.rec")!==-1&&(y="cloud.rec"),C.type&&(y=C.type);var h=T.split("/")[3];C.deviceSerial&&(h=C.deviceSerial);var D=T.split("/")[4].split(".")[0];C.channelNo&&(D=C.channelNo);var _=T.split("/")[2].split("@").length===2?T.split("/")[2].split("@")[0]:"";typeof C.validCode!="undefined"&&(_=C.validCode);var E=typeof C.hd=="undefined"?T.indexOf(".hd")!==-1:C.hd,w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D).concat(E?".hd":"",".").concat(y);return y==="live"||(w="ezopen://".concat(_?"".concat(_,"@"):"","open.ys7.com/").concat(h,"/").concat(D,".").concat(y),C.begin&&C.end?w+="?begin=".concat(C.begin,"&end=").concat(C.end):C.begin?w+="?begin=".concat(C.begin):et("begin",T)&&(w+="?begin=".concat(et("begin",T)))),w}return s}},{key:"getOSDTime",value:function(){var n=this,i=new Promise(function(r,a){n.jSPlugin.JS_GetOSDTime(0).then(function(l){r({code:0,retcode:0,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:0,data:l})}).catch(function(l){a({code:-1,retcode:-1,data:l}),typeof n.params.getOSDTimeCallBack=="function"&&n.params.getOSDTimeCallBack({id:n.id,type:"getOSDTime",code:-1,data:-1})})});return i}},{key:"capturePicture",value:function(n){var i=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,a=this.jSPlugin.JS_CapturePicture(0,n,"JPEG",r,!!r);return ln(a)?(typeof this.params.capturePictureCallBack=="function"&&a.then(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:0})}).catch(function(){i.params.capturePictureCallBack({id:i.id,type:"capturePicture",code:-1})}),a):new Promise(function(l){l(a)})}},{key:"startSave",value:function(n){var i=this,r=this.jSPlugin.JS_StartSave(0,n);return ln(r)?(typeof this.params.startSaveCallBack=="function"&&r.then(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:0})}).catch(function(){i.params.startSaveCallBack({id:i.id,type:"startSave",code:-1})}),r):(this.Theme&&this.Theme.setDecoderState({recordvideo:!0}),new Promise(function(a){a(r)}))}},{key:"stopSave",value:function(){var n=this,i=this.jSPlugin.JS_StopSave(0);return ln(i)?(typeof this.params.startSaveCallBack=="function"&&i.then(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:0})}).catch(function(){n.params.stopSaveCallBack({id:n.id,type:"stopSave",code:-1})}),i):(this.Theme&&this.Theme.setDecoderState({recordvideo:!1}),new Promise(function(r){r(i)}))}},{key:"openSound",value:function(){var n=this.jSPlugin.JS_OpenSound(0);return console.log("打开声音",n),ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!0}),typeof this.params.openSoundCallBack=="function"&&this.params.openSoundCallBack({id:this.id,type:"openSound",code:n}),new Promise(function(i){i(n)}))}},{key:"closeSound",value:function(){var n=this.jSPlugin.JS_CloseSound(0);return ln(n)?n:(this.Theme&&this.Theme.setDecoderState({sound:!1}),typeof this.params.closeSoundCallBack=="function"&&this.params.closeSoundCallBack({id:this.id,type:"closeSound",code:n}),new Promise(function(i){i(n)}))}},{key:"enableZoom",value:function(){var n=this.jSPlugin.JS_EnableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"closeZoom",value:function(){var n=this.jSPlugin.JS_DisableZoom(0);return ln(n)?n:new Promise(function(i){i(n)})}},{key:"setPoster",value:function(n){lt()?document.getElementById("".concat(this.id))&&(document.getElementById("".concat(this.id)).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id)).style.backgroundSize="100% 100%"):document.getElementById("".concat(this.id,"canvas0"))&&(document.getElementById("".concat(this.id,"canvas0")).style.backgroundImage="url(".concat(n,")"),document.getElementById("".concat(this.id,"canvas0")).style.backgroundSize="cover")}},{key:"reSize",value:function(n,i){var r=0,a=0;if(this.params.height=i,this.params.width=n,this.Theme&&this.Theme.isNeedRenderHeader&&document.getElementById("".concat(this.id,"-headControl"))&&(r=parseInt(document.getElementById("".concat(this.id,"-headControl")).style.height,10)),this.Theme&&this.Theme.isNeedRenderTimeLine&&!this.isMobile&&(a=48),i=i-r-a,this.width=n,this.height=i,document.getElementById("".concat(this.id,"-wrap")).style="width:".concat(n,"px;position:relative;display:inline-block;vertical-align: bottom;"),document.getElementById("".concat(this.id)).style.width=n+"px",document.getElementById("".concat(this.id)).style.height=i+"px",this.jSPlugin&&this.jSPlugin.bPlay)this.jSPlugin&&(this.jSPlugin.iHeight=i,this.jSPlugin.iWidth=n),this.jSPlugin.JS_Resize(n,i);else{document.getElementById("".concat(this.id,"-player"))&&(document.getElementById("".concat(this.id,"-player")).width=n,document.getElementById("".concat(this.id,"-player")).height=i,document.getElementById("".concat(this.id,"-player")).style.width=n+"px",document.getElementById("".concat(this.id,"-player")).style.height=i+"px");var l=1;if(document.getElementById("".concat(this.id,"canvas0"))){var s=navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i);s&&(l=2),document.getElementById("".concat(this.id,"canvas0")).style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas0")).width=n*l,document.getElementById("".concat(this.id,"canvas0")).height=i*l,document.getElementById("".concat(this.id,"canvas0")).parentNode.style.width=n*l+"px",document.getElementById("".concat(this.id,"canvas0")).parentNode.style.height=i*l+"px",document.getElementById("".concat(this.id,"canvas_draw0")).height=i*l}this.jSPlugin&&(this.jSPlugin.iHeight=i*l,this.jSPlugin.iWidth=n*l)}}},{key:"fast",value:function(n){var i=this,r=this.speed;if(n)var a=this.jSPlugin.JS_Fast(0,n);else{if(r===1)r=2;else if(r===2)r=4;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最大为4倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(s,b){i.speed=r,b({code:-1,data:{speed:r,result:"播放速度最大为4倍速度"}})});var a=this.jSPlugin.JS_Fast(0)}return new Promise(function(l){i.speed=r,l({code:0,data:{speed:r,result:a}})})}},{key:"slow",value:function(){var n=this,i=this.speed;if(i===4)i=2;else if(i===2)i=1;else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"播放速度最小为1倍速度",retcode:1003,id:this.id,type:"handleError"}),new Promise(function(a,l){n.speed=i,l({code:-1,data:{speed:i,result:"播放速度最小为1倍速度"}})});var r=this.jSPlugin.JS_Slow(0);return new Promise(function(a){n.speed=i,a({code:0,data:{speed:i,result:r}})})}},{key:"seek",value:function(n,i){var r=this.url,a=(et("begin",r)||new Date().Format("yyyyMMdd")).substr(0,8);if(i=l(a,"235959"),n.length===6)n=l(a,n);else if(n.length===16){if(n.substr(0,8)!==a)return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间不能跨日期",retcode:-1,id:this.id,type:"handleError"}),!1}else return typeof this.params.handleError=="function"&&this.params.handleError({msg:"seek时间格式错误",retcode:-1,id:this.id,type:"handleError"}),!1;function l(b,T){var C=/^[0-9]{8}T[0-9]{6}Z$/;if(C.test(b))return b;if(/[0-9]{8,14}/.test(b)){var y=6-(14-b.length),h=T.length,D=b+T.substring(y,h);return D.slice(0,8)+"T"+D.slice(8)+"Z"}throw new Error("回放时间格式有误,请确认")}var s=this.jSPlugin.JS_Seek(0,n,i);return console.log("seekRT",s),ln(s)?s:new Promise(function(b){b(s)})}},{key:"fullScreen",value:function(){var n=this,i=yi(document.getElementById("".concat(this.id)));i.then(function(a){console.log("全屏promise",window.screen.availWidth),n.jSPlugin.JS_Resize(window.screen.availWidth,window.screen.availHeight),typeof n.params.fullScreenCallBack=="function"&&n.params.fullScreenCallBack({id:n.id,type:"fullScreen",code:0})});var r=function(){var l=document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen;l||n.jSPlugin.JS_Resize(n.width,n.height),typeof n.params.fullScreenChangeCallBack=="function"&&n.params.fullScreenChangeCallBack({id:n.id,type:"fullScreen",code:l})};["fullscreenchange","webkitfullscreenchange","mozfullscreenchange"].forEach(function(a){window.addEventListener(a,function(l){return r()})})}},{key:"cancelFullScreen",value:function(){var n=this,i=Nr();i.then(function(r){console.log("取消全屏",r,n.jSPlugin),n.jSPlugin.JS_Resize(n.width,n.height)})}},{key:"startTalk",value:function(){this.Talk.startTalk()}},{key:"stopTalk",value:function(){this.Talk.stopTalk()}},{key:"destroy",value:function(){var n=this.jSPlugin.JS_DestroyWorker(0);return this.Theme&&(this.Theme=null,window.EZUIKit[this.params.id].state.EZUIKitPlayer.themeInit=!1),ln(n)?n:new Promise(function(i){i(n)})}},{key:"getDeviceCapacity",value:function(n){var i=this,r=this.env.domain;this.env&&(r=this.env.domain);var a=r+"/api/lapp/device/capacity",l=function(T){T.code==200&&T.data&&(i.capacity=T.data)},s=n||{accessToken:this.accessToken,deviceSerial:Ke(this.url).deviceSerial};Gn(a,"POST",s,"",l)}},{key:"pause",value:function(){var n=this;return new Promise(function(i,r){n.jSPlugin.JS_CloseSound(0),n.jSPlugin.JS_Pause(0,function(a){n.setPoster(a.base64)}).then(function(a){n.Theme&&n.Theme.setDecoderState({play:!1}),i()}).catch(function(a){console.log(a),r(a)})})}},{key:"_resume",value:function(n){var i=this;return new Promise(function(r,a){i.pluginStatus.setPlayStatus({play:!1,loading:!0}),i.jSPlugin.JS_Resume(n).then(function(l){if(setTimeout(function(){i.url.indexOf(".rec")!==-1&&i.speed!=1&&i.jSPlugin.JS_Speed(i.speed)},500),i.Theme){i.Theme.setDecoderState({play:!0,speed:i.speed});var s=i.Theme.decoderState.state.sound;s&&setTimeout(function(){i.openSound()},500)}r(l)}).catch(function(l){console.log("resume err",l),a(l)})})}}]),f}(),qe=null;function Vs(f,u,n,i){return new WebControl({szPluginContainer:f,iServicePortStart:14510,iServicePortEnd:14519,cbConnectSuccess:u,cbConnectError:n,cbConnectClose:i})}function Ws(){qe!=null&&(qe.JS_DestroyWnd().then(function(){console.log("JS_DestroyWnd")},function(){}),qe.JS_StopService("window").then(function(){qe.JS_Disconnect().then(function(){console.log("JS_Disconnect")},function(){})}))}function Gs(f){f.responseMsg.eventName,console.log(f.responseMsg)}function Zs(){qe.JS_SetWindowControlCallback({cbIntegrationCallBack:Gs}),qe.JS_StartService("window",{dllPath:"./chain/cloudTransform.dll"}).then(function(){qe.JS_CreateWnd("playWnd",900,500).then(function(){console.log("JS_CreateWnd success")})})}function Js(){console.log("cbConnectError"),qe=null,console.error("确认本地进程是否已安装并开启成功!")}function Ks(f){console.log("cbConnectClose"),qe=null}window.onscroll=function(){qe!=null&&qe.JS_Resize(900,500)},window.onresize=function(){qe!=null&&qe.JS_Resize(900,500)},window.onunload=function(){try{qe.JS_HideWnd(),Ws()}catch(f){console.error(f)}},window.onpagehide=function(){try{qe.JS_HideWnd()}catch(f){console.error(f)}};var qs=function(){function f(u){var n=this;fe(this,f),je(this,"changeModel",function(i,r){var a=n;n.switchVideo=parseInt(i),qe&&qe.JS_RequestInterface({funcName:"ChangeModel",arguments:encodeURI(JSON.stringify({model:i}))}).then(function(l){i==0?a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode}):a.play({deviceSerial:r.deviceSerial,channelNo:r.channelNo,validateCode:r.validateCode,startTime:r.startTime,endTime:r.endTime})})}),je(this,"init",function(i){var r,a=n;if(!i.appKey||!i.accessToken){a.showTips(!1,"请输入appkey和token");return}typeof i.appKey!="undefined"&&(n.appKey=i.appKey),typeof i.accessToken!="undefined"&&(n.accessToken=i.accessToken),typeof i.platformId!="undefined"&&(n.platformId=i.platformId);var l=(r={layout:+a.layout,userName:"",waterMark:""},je(r,"waterMark","1"),je(r,"iWndType",0),je(r,"intelligenceEnable",1),je(r,"isRecord",1),je(r,"isSetPos",1),je(r,"motionDetectEnable",0),je(r,"playBackAlarmOverlyingEnable",0),je(r,"response",{code:0,message:null,data:{appKey:i.appKey,ezvizToken:i.accessToken,videoLevel:0,logLevel:3,showMainTool:1,showSubTool:1,waterMark:"1",userName:"openteam",platformId:i.platformId}}),r);console.log("初始化入参",l),qe.JS_RequestInterface({funcName:"Init",arguments:encodeURI(JSON.stringify(l))}).then(function(s){console.log(s.responseMsg),a.showTips(!0,"视频初始化成功!")})}),je(this,"play",function(i){var r=n;if(!(!i.deviceSerial||!i.channelNo)){typeof i.deviceSerial!="undefined"&&(n.deviceSerial=i.deviceSerial),typeof i.channelNo!="undefined"&&(n.channelNo=i.channelNo),typeof i.startTime!="undefined"&&i.startTime&&(n.startTime=i.startTime+" 00:00:00"),typeof i.endTime!="undefined"&&i.endTime&&(n.endTime=i.endTime+" 23:59:59"),typeof i.validateCode!="undefined"&&i.validateCode&&(n.validateCode=i.validateCode);var a={response:{code:0,message:null,data:{deviceSerial:i.deviceSerial,channelCode:i.channelNo,channelNo:+i.channelNo,codeIsEncrypt:0,validateCode:i.validateCode,deviceClass:r.deviceClass,deviceType:"10222",channelId:"2222222222",channelName:"channelNameTest",storeName:"storeName",storeId:"storeid",startTime:n.startTime,endTime:n.endTime}}};r.deviceClass==="1"?(a.response.data.channelCode=r.channelNo,a.response.data.platformId=r.platformId):a.response.data.channelNo=+r.channelNo,n.switchVideo===1&&(n.startTime&&(a.response.data.startTime=n.startTime),n.endTime&&(a.response.data.endTime=n.endTime)),console.log("预览/回放入参",a),qe.JS_RequestInterface({funcName:n.switchVideo===0?"StartPreview":"StartPlayback",arguments:encodeURI(JSON.stringify(a))}).then(function(l){console.log(l.responseMsg),r.showTips(!0,"预览/回放成功!")}).catch(function(l){console.log("开始播放:",l)})}}),je(this,"showCBInfo",function(i){n.callbackMessage=n.callbackMessage+JSON.stringify(i)+` -`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1784045078568.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; +`,console.log(n.callbackMessage)}),je(this,"showTips",function(i,r){}),je(this,"hideVideo",function(){qe.JS_HideWnd()}),je(this,"showVideo",function(){qe.JS_ShowWnd()}),je(this,"GetLayout",function(){var i=null;qe.JS_RequestInterface({funcName:"GetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:i}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"capturePicture",function(i){var r=null;qe.JS_RequestInterface({funcName:"CaptureJPGEx",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:r}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"stop",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1;qe.JS_RequestInterface({funcName:"StopPlay",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setLayout",function(i){var r=parseInt(i);if(isNaN(r)||r==0||r>=13){console.log("不支持实际布局大于16的窗口数");return}n.layout=r,qe.JS_RequestInterface({funcName:"SetLayout",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{layout:r}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"setSoundVolumn",function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:-1,r=arguments.length>1?arguments[1]:void 0;qe.JS_RequestInterface({funcName:"SoundVolumn",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i),volumn:parseInt(r)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"testMute",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"MuteOnOff",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"testSelectWnd",function(){var i=parseInt(prompt("请输入窗口ID"));qe.JS_RequestInterface({funcName:"SelectPlayWnd",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:i}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"setVideoLevel",function(i,r){qe.JS_RequestInterface({funcName:"SetVideoLevel",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:n.switchVideo==1?0:parseInt(i),level:parseInt(r,10)}}}))}).then(function(a){console.log(JSON.stringify(a.responseMsg)),console.log(a.responseMsg)})}),je(this,"startTalk",function(i){qe.JS_RequestInterface({funcName:"StartTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopTalk",function(i){qe.JS_RequestInterface({funcName:"StopTalk",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"startSave",function(i){qe.JS_RequestInterface({funcName:"StartRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),je(this,"stopSave",function(i){qe.JS_RequestInterface({funcName:"StopRecord",arguments:encodeURI(JSON.stringify({response:{code:0,message:null,data:{wndId:parseInt(i)}}}))}).then(function(r){console.log(JSON.stringify(r.responseMsg)),console.log(r.responseMsg)})}),this.appKey="b9a3ad6e8026410095d8252169fa430a",this.accessToken="at.2vtum8873rrcwbrv431qb6pn94dkbv23-8dw2twn355-1u3x014-wrthellzk",this.deviceSerial="C33368372",this.channelNo="1",this.validateCode="",this.deviceClass="0",this.platformId="",this.startTime="",this.endTime="",this.layout=2,this.switchVideo=0,this.tips="调用成功",this.successTip=!1,this.tipsShow=!1,qe=Vs("playWnd",Zs,Js,Ks)}return dt(f,[{key:"alarmMsg",value:function(){var n={request:{body:{alarmTypes:[10800,0,0,0,0],channelId:"066dde0465dd4abaab6afe355baf9d0b",endTime:"1621007999000",startTime:"1620921600000"},callBack:"GetAlarmMsgOrders",majorKey:"",method:"POST",storeId:"",url:"/videoplugin/message/getMessageByTypes"},response:{code:0,message:null,data:[{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620921217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920678e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620920586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919513e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919483e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620919333e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918913e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620918305e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917858e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917658e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917244e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620917064e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916668e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916529e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916343e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620916081e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915825e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915394e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620915197e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914971e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914644e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914533e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914457e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914376e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620914284e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620913431e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912354e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912275e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912093e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620912024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091189e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911839e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091176e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911682e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091127e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620911184e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910982e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910781e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910727e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910677e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910647e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910588e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910544e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091041e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162091035e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910278e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910217e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620910124e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909939e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909847e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909817e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909664e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909605e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909575e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090912e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620909028e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908999e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908969e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908909e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090888e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908835e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090875e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090872e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908652e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908582e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908552e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908456e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620908268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090805e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907918e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907758e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907625e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907386e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907292e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620907127e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906828e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906797e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906747e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906717e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906632e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906368e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620906013e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905946e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905823e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905622e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905511e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905382e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905352e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905322e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905262e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620905196e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090515e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904994e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904813e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090473e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209047e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904618e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904286e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904173e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904053e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620904023e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903854e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903723e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903643e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903612e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903573e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903505e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903329e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903299e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903268e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16209032e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620903149e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090312e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902977e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090286e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090277e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902639e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902517e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902373e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090232e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902253e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902198e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620902132e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090194e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090185e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901789e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901685e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901638e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090152e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901489e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901424e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901271e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901233e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620901157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900915e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900774e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900744e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090065e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162090044e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900409e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900175e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900134e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900069e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620900016e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899976e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899908e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899826e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899756e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899467e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899406e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899265e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620899211e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089914e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089911e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089905e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898785e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898746e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898697e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898666e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898507e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898248e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898218e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898157e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620898088e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089802e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089796e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089785e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897807e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897771e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089769e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089763e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:16208976e5},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089757e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089754e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897475e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897369e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897339e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897279e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897237e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897207e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897172e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897142e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897112e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620897024e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896985e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896874e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896814e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896783e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896736e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896621e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896447e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896358e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896307e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896277e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896247e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620896214e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089604e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895953e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895921e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895868e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089577e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895704e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089559e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895559e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089548e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895442e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895377e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895347e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895293e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895171e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895136e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620895017e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894926e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894896e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894864e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894834e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894738e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894599e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894539e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894426e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894359e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894213e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894183e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620894051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893964e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893934e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893843e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893754e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893676e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893606e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089353e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893452e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893423e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893357e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893143e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893051e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620893006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892904e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892824e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892764e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892541e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892479e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892412e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892311e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892281e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892209e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620892063e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891991e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891931e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089187e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089181e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891708e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891655e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891585e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891531e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891401e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891297e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891257e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891178e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891128e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620891033e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162089094e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890879e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890794e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890714e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890616e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890586e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890469e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890346e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890288e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890179e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890108e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890041e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620890011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889937e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889719e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889635e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889481e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889451e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889317e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889227e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889139e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620889034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888973e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888902e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888837e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888767e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888737e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888706e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888633e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888571e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888413e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888353e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888323e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888249e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888162e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620888e6},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887859e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887776e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887734e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887692e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887619e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887501e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887355e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088732e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887289e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887126e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887066e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620887034e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088697e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886884e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886804e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886728e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886609e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886538e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886478e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886396e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886334e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886246e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886111e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620886011e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885956e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885894e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885696e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885514e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885484e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885414e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885383e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885341e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885306e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885276e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885216e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885186e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885114e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885037e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620885006e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884975e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884945e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884911e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884851e3},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:162088478e4},{alarmType:10800,alarmName:"移动侦测报警",alarmTime:1620884696e3}],success:!0}};console.log(n),qe.JS_RequestInterface({funcName:"TransFunctionResult",arguments:encodeURI(JSON.stringify(n))})}}]),f}();(function(f,u){ue(ae)==="object"&&ue(ae.exports)==="object"?ae.exports=f.document?u(f,!0):function(n){if(!n.document)throw new Error("EZUIPlayer requires a window with a document");return u(n)}:u(f)})(typeof window!="undefined"?window:void 0,function(f,u){var n={Core:gn,HLS:Yl,FLV:Xl,EZUIKitPlayer:Hs,EZUIKitHD:qs};return f.EZUIKit=n,n})})(Mr,Mr.exports);var vh=Mr.exports;const Bh=gh(vh),yh="/jsyApi",Th=["邛溪镇","刷经寺镇","安曲镇","龙日镇","江茸乡","查尔玛乡","瓦切镇","阿木乡","麦洼乡","色地镇"];function Sh(ae){return/^https?:\/\//.test(ae)?ae:`${yh}${ae.startsWith("/")?ae:`/${ae}`}`}function Ch(ae){if((ae==null?void 0:ae.success)===!1||(ae==null?void 0:ae.code)!==void 0&&![0,200,"0","200"].includes(ae.code)){const ue=new Error((ae==null?void 0:ae.msg)||(ae==null?void 0:ae.message)||"视频监控接口请求失败");throw ue.code=ae==null?void 0:ae.code,ue}return hh(ae)}function Pn(ae,Je,ue=""){for(const fe of Je)if((ae==null?void 0:ae[fe])!==void 0&&(ae==null?void 0:ae[fe])!==null&&(ae==null?void 0:ae[fe])!=="")return ae[fe];return ue}function bh(ae,Je){for(const ue of Je)if((ae==null?void 0:ae[ue])!==void 0&&(ae==null?void 0:ae[ue])!==null&&(ae==null?void 0:ae[ue])!=="")return{key:ue,value:ae[ue]};return null}function Gl(ae){return Pn(ae,["token","accessToken","access_token"])}function Ph(ae){return Pn(ae,["hdPlayUrl","hd_play_url","playUrl","play_url","url"])}function qo(ae){return!!(Gl(ae)&&Ph(ae))}function wh(ae){return bh(ae,["isOnline","is_online","online","onlineStatus","online_status","statusName","status_name","deviceStatus","device_status","cameraStatus","camera_status","rawStatus","raw_status","status","state","deviceState","device_state"])}function Zl(ae){const Je=qo(ae),ue=wh(ae);if(!ue)return{online:Je,raw:"",reason:Je?"后台未返回设备状态":"缺少播放地址或令牌"};const fe=ue.value;if(typeof fe=="boolean")return{online:fe,raw:fe?"在线":"离线",reason:`后台状态:${fe?"在线":"离线"}`};const St=String(fe!=null?fe:"").trim().toLowerCase();return St?typeof fe=="number"||/^-?\d+(\.\d+)?$/.test(St)?{online:Number(fe)!==0,raw:String(fe),reason:`后台状态:${fe}`}:["true","online","on","open","running","active","enabled"].includes(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:["false","offline","off","closed","disabled","stop","stopped"].includes(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(离线|不在线|未在线|断线|断开|异常|故障|停用|不可用|offline|disabled|closed|stop)/i.test(St)?{online:!1,raw:String(fe),reason:`后台状态:${fe}`}:/(在线|直播中|正常|启用|可用|online|enabled|open|running|active)/i.test(St)?{online:!0,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:String(fe),reason:`后台状态:${fe}`}:{online:Je,raw:"",reason:Je?"后台状态为空":"缺少播放地址或令牌"}}function Eh(ae){return Zl(ae).online}function Ih(ae){return Pn(ae,["previewImgUrl","preview_img_url","latestCaptureUrl","latest_capture_url","img","image","cover","snapshot"])}function xh(ae){return Pn(ae,["lastCaptureTime","last_capture_time","captureTime","capture_time","latestCaptureTime","latest_capture_time"])}function _h(ae){return!!(qo(ae)&&Eh(ae))}function Rh(ae=""){const Je=String(ae);return Th.find(fe=>Je.includes(fe.replace(/[镇乡]$/,"")))||"红原县"}function kh(ae=""){const Je=String(ae);return Je.includes("养殖")?"养殖基地":Je.includes("饲草")?"饲草基地":Je.includes("种草")||Je.includes("牧草")?"牧草基地":Je.includes("虫情")?"虫情监测":Je.includes("机场")?"机场周边":"重点点位"}function Ah(ae,Je){const ue=Pn(ae,["hdPlayUrl","playUrl","url"]),fe=String(ue).match(/\/(\d+)(?:\.hd)?\.live/i);return fe?fe[1].padStart(2,"0"):String(Je+1).padStart(2,"0")}function Dh(){return new Date().toLocaleTimeString("zh-CN",{hour:"2-digit",minute:"2-digit",hour12:!1})}function Mh(ae,Je,ue,fe){const St=Pn(ae,["name","title","deviceName"],`视频监控${Je+1}`),dt=Pn(ae,["hdPlayUrl","hd_play_url","url"]),je=Pn(ae,["playUrl","play_url"],dt),gn=Gl(ae),ut=Zl(ae),Mt=!!(qo(ae)&&ut.online),ln=ue?Math.round(fe/ue*100):0;return{key:Pn(ae,["id","number","deviceSerial"],`${St}-${Je}`),title:St,town:Rh(St),scene:kh(St),device:Pn(ae,["number","deviceSerial","serialNumber"],`CAM-${String(Je+1).padStart(3,"0")}`),channel:Ah(ae,Je),cameraCount:ue,status:Mt?"直播中":"离线",rawStatus:ut.raw,statusReason:ut.reason,onlineRate:ln,updateTime:Dh(),operator:Mt?"萤石云 · 在线预览":ut.reason,progress:Mt?100:0,image:Ih(ae),lastCaptureTime:xh(ae),playUrl:je,hdPlayUrl:dt,token:gn,source:ae}}function zh(){return Wl(this,arguments,function*(ae={}){const gn=ae,{includeOffline:Je=!1}=gn,ue=Vl(gn,["includeOffline"]),fe=yield fh(Sh("/api/home/monitorings"),{params:ue,timeout:18e3}).then(Ch),St=Array.isArray(fe)?fe:(fe==null?void 0:fe.rows)||(fe==null?void 0:fe.list)||[],dt=St.filter(_h),je=St.map((ut,Mt)=>Mh(ut,Mt,St.length,dt.length));return Je?je.sort((ut,Mt)=>+(Mt.status==="直播中")-+(ut.status==="直播中")):je.filter(ut=>ut.status==="直播中")})}const jh=""+new URL("live-scene-1-786cdd0a-balabala-1784074877048.png",import.meta.url).href;export{Bh as E,zh as g,jh as l}; diff --git a/docs/assets/live-scene-1-786cdd0a-balabala-1784045078568.png b/docs/assets/live-scene-1-786cdd0a-balabala-1784074877048.png similarity index 100% rename from docs/assets/live-scene-1-786cdd0a-balabala-1784045078568.png rename to docs/assets/live-scene-1-786cdd0a-balabala-1784074877048.png diff --git a/docs/assets/livestockData-36ec0ae2-1784045078568.js b/docs/assets/livestockData-36ec0ae2-1784074877048.js similarity index 100% rename from docs/assets/livestockData-36ec0ae2-1784045078568.js rename to docs/assets/livestockData-36ec0ae2-1784074877048.js diff --git a/docs/assets/menu-btn-91a961cf-balabala-1784045078568.png b/docs/assets/menu-btn-91a961cf-balabala-1784074877048.png similarity index 100% rename from docs/assets/menu-btn-91a961cf-balabala-1784045078568.png rename to docs/assets/menu-btn-91a961cf-balabala-1784074877048.png diff --git a/docs/assets/menu-btn-hover-62eba0bb-balabala-1784045078568.png b/docs/assets/menu-btn-hover-62eba0bb-balabala-1784074877048.png similarity index 100% rename from docs/assets/menu-btn-hover-62eba0bb-balabala-1784045078568.png rename to docs/assets/menu-btn-hover-62eba0bb-balabala-1784074877048.png diff --git a/docs/assets/ocean-bg-8c848b8f-balabala-1784045078568.png b/docs/assets/ocean-bg-8c848b8f-balabala-1784074877048.png similarity index 100% rename from docs/assets/ocean-bg-8c848b8f-balabala-1784045078568.png rename to docs/assets/ocean-bg-8c848b8f-balabala-1784074877048.png diff --git a/docs/assets/openApi-528034ce-1784045078568.js b/docs/assets/openApi-7e2310e1-1784074877048.js similarity index 99% rename from docs/assets/openApi-528034ce-1784045078568.js rename to docs/assets/openApi-7e2310e1-1784074877048.js index 162b30d..12c6185 100644 --- a/docs/assets/openApi-528034ce-1784045078568.js +++ b/docs/assets/openApi-7e2310e1-1784074877048.js @@ -1 +1 @@ -var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var Ee=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,b=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&Ee(e,a,n[a]);if(Ce)for(var a of Ce(n))rn.call(n,a)&&Ee(e,a,n[a]);return e},h=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=i=>{try{o(a.next(i))}catch(u){r(u)}},l=i=>{try{o(a.throw(i))}catch(u){r(u)}},o=i=>i.done?t(i.value):Promise.resolve(i.value).then(s,l);o((a=a.apply(e,n)).next())});import{n as g,r as Ge}from"./index-6a8ef8cf-1784045078568.js";import{g as Ye}from"./geoserver-6ded2e06-1784045078568.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-1b068bef-1784045078568.js";const ln="/openApi",Z=756.37,_e=297.29,B=291.82,on=16.47,un=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(oe),de=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Oe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Ge(Oe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function P(e,n){return Ge(Oe(e),{params:n})}function qe(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function jn(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/woodland/detail",{wkt:e}));return qe(n,["woodland"])})}function Un(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/basic_grassland/detail",{wkt:e}));return qe(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function A(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=A(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=A(e),r=A(n),s=A(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const o=w(r/l*t);return[o,w(Math.max(t-o,0))]}function G(e,n){const a=A(e),t=A(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function ve(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:G(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var o,i;return h(b(b({},s),e[l]||{}),{name:((o=e[l])==null?void 0:o.name)||s.name,unit:((i=e[l])==null?void 0:i.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=h(b({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:B,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,o=e.map((i,u)=>{const c=w(d(i,t)),v={key:d(i,["key","code","townCode"])||`${d(i,a)||u}-${u}`,name:d(i,a)||`第${u+1}项`,value:c,unit:r,percent:w(d(i,["percent","areaPercent","basicRatio","generalRatio"])),source:i};return l?h(b({},v),{extra:l(i)}):v}).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?o.slice(0,s):o}function we(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((o,i)=>{const u=d(o,t),c=w(r==="万亩"?A(u)/1e4:u),v=d(o,a)||`第${i+1}项`;return{key:d(o,["key","code"])||`${v}-${i}`,name:v,value:c,unit:r,source:o}}).filter(o=>Number(o.value)>0).sort((o,i)=>(Number(i.value)||0)-(Number(o.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function p(e,n,a,t="rank",r={}){return b({key:e,title:n,type:t,rows:a||[]},r)}function ge(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(o=>[o.areaName,o]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:o=>{const i=l.get(o.areaName),u=w(d(i,["yield","value"])),c=d(i,["unit"])||"斤";return s&&u!==void 0?`亩产 ${u} ${c}`:""}})}function oe(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(oe(a==null?void 0:a.name)),s=n.get(oe(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function Se(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function pe(e){return Se(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const o=oe(d(s,a)),i=w(d(s,t));return!o||i===void 0?null:{key:d(s,["key","code","townCode"])||`${o}-${l}`,name:o,value:i,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const o=oe(d(l,a)),i=A(d(l,t));if(!o||i===void 0)return;const u=s.get(o)||{key:d(l,["townCode","code"])||o,name:o,value:0,unit:d(l,["unit"])||r,source:[]};u.value+=i,u.source.push(l),s.set(o,u)}),Array.from(s.values()).map(l=>h(b({},l),{value:w(l.value)})).sort((l,o)=>(Number(o.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const o=r.filter(i=>(i==null?void 0:i.name)&&i.value!==void 0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0)).map((i,u)=>h(b({},i),{unit:i.unit||t,rank:u+1}));return{status:o.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:o}}function fe(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const o=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),i=new Map;return((o==null?void 0:o.features)||[]).forEach(u=>{const c=u.properties||{},v=String(c.xiang||""),m=Ke(v),y=A(c.acreage);if(!m||y===void 0)return;const N=i.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,i.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(i.values()).map(u=>h(b({},u),{value:w(u.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=g(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function Be(e,n,a,t){return f(this,null,function*(){const r=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return oe(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],o=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],i=yield Ye(a.layerName,{propertyName:o,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=A(d(v,l));if(!m||y===void 0)return;const N=u.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(u.values()).map(c=>h(b({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>h(b({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>h(b({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function hn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function Rn(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?hn(e,n,a):e==="grassland"&&n==="grassland-type"?Rn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ye(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=g(yield P(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function F(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const o=[],i=[];if(s.forEach((m,y)=>{const N=G(m.value,l);y=t)?o.push(m):i.push(m)}),!i.length)return o;const u=i.reduce((m,y)=>m+(Number(y.value)||0),0);return[...o,{key:`${r}-${i.length}`,name:r,value:w(u),unit:((c=i[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(G(u,l))}%`}]}function O(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function D(e=[],n=O(e),a=""){return e.map(t=>{const r=w(G(t.value,n));return h(b({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,o=A(n);if(o===void 0)return e;const i=O(e),u=w(o-i);if(u===void 0||u<=.01)return e;const c=[...e,{key:t,name:r,value:u,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=A(n),t=O(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const o=l===e.length-1,i=w(o?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(i)||0,h(b({},s),{value:i})})}function K(e=[],n=[]){return n.length?e.map((a,t)=>h(b({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function $e(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function z(e=[],n=[],a=4){const t=[],r=new Set,s=o=>{!o||r.has(o.key)||(r.add(o.key),t.push(o))},l=[...e,...n];return l.filter($e).forEach(s),l.filter(o=>o&&!$e(o)).forEach(s),t.slice(0,a)}function Mn(e,n,a={}){return e&&b(h(b({},e),{type:n}),a)}function _(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(o=>!t.has(o))||r.type;return t.add(l),Mn(r,l,{variant:l===r.type?r.variant:void 0})})}function De(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(u=>(u==null?void 0:u.name)&&Number(u.value)>0);if(!s.length)return[];const l=s.slice(0,a),o=s.slice(a),i=(u,c)=>{var v,m;return{key:u,name:u,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[i(t,l),o.length?i(r,o):null].filter(u=>u&&Number(u.value)>0)}function ie(e,n,a){var o,i,u,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((o=e==null?void 0:e.layerPanels)==null?void 0:o[a])||((i=e==null?void 0:e.layerPanels)==null?void 0:i[t]);if(!r)return e;const s=(u=r.leftPanels)!=null&&u.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return h(b({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=A(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=i=>i,filter:s,extra:l}=n,o=new Map;return e.forEach(i=>{if(s&&!s(i))return;const u=d(i,a),c=r(u,i),v=Xe(i,t);if(!c||v===void 0)return;const m=o.get(c)||{key:d(i,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(i),o.set(c,m)}),Array.from(o.values()).map(i=>{const u=h(b({},i),{value:w(i.value)});return l?h(b({},u),{extra:l(u)}):u}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0))}function Ie(e){return String(e||"").replace(/草原/g,"湿地")}function Wn(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=A(e==null?void 0:e.xc))!=null?l:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(G(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(G(s,t))}%`}].filter(o=>o.value!==void 0)}function xn(e={},n=[],a=[]){var i;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(i=A(e==null?void 0:e.xc))!=null?i:O(a),s=A(e==null?void 0:e.edibleXc),l=O(n),o=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return h(b({},e),{xc:w(r),edibleXc:w(o),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:o,edibleMuRows:i,typeTownRows:u,levelTownRows:c,minTownRows:v}){const m=p("wetland-town-area","湿地面积分布",K(me(n),de),"column",{span:1,variant:"plain"}),y=p("wetland-type","湿地类型结构",K(a,de),"donut",{span:1}),N=p("wetland-level-proportion","湿地级占比",K(D(t),de),"donut",{span:1,variant:"ring"}),T=p("wetland-min-type","湿地优势小类",K(F(s,6),de),"bar",{span:1,variant:"raceBarNoWrap"}),W=p("wetland-yield-capacity","湿地产能结构",Wn(e,r),"structure",{span:1}),x=p("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),L=p("wetland-edible-yield","可食鲜草产量",F(o,U.length),"column",{span:1,variant:"slim"}),E=p("wetland-mu-yield","湿地亩产效率",F(l,U.length),"heat",{span:1,limit:U.length}),$=p("wetland-level","湿地级别面积",t,"column",{span:1}),C=p("wetland-level-town","1级湿地分布",F(c,U.length),"bar",{span:1,variant:"distribution"}),q=p("wetland-type-town","湿地类型乡镇分布",F(u,U.length),"bar",{span:1,variant:"distribution"}),Y=p("wetland-edible-mu","可食鲜草亩产",F(i,U.length),"bar",{span:1}),J=p("wetland-min-town","优势小类乡镇分布",F(v,U.length),"bar",{span:1,variant:"distribution"}),S=_([m,y,N,T]),I=_([L,x,E,W]);return{leftPanels:S,rightPanels:I,left:S[0],right:I[0],layerPanels:An({townAreaPanel:m,typePanel:y,yieldCapacityPanel:W,yieldPanel:x,levelPanel:$,levelTownPanel:C,muYieldPanel:E,levelStructurePanel:N,typeTownPanel:q,minTypePanel:T,edibleYieldPanel:L,edibleMuPanel:Y,minTownPanel:J})}}function An(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:o,levelStructurePanel:i,typeTownPanel:u,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-level":{leftPanels:_([i,s,l,a].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-type":{leftPanels:_([a,u,c,y].filter(Boolean)),rightPanels:_([v,r,m,t].filter(Boolean))},"wetland-yield":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))}}}function Ln(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t={leftPanels:_(n.filter(Boolean)),rightPanels:_(a.filter(Boolean))};return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:o=[],canopyRows:i=[],forestTypeRows:u=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:T=De(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:W=De(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const x=p("woodland-town","林地面积分布",K(me(e),ee),"column",{span:1,variant:"plain",lineOverlay:!0}),L=p("woodland-type","林地类型结构",K(n,ee),"donut",{span:1,variant:"ring"}),E=p("woodland-protection","公益林保护等级",K(D(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),$=p("woodland-ownership","林地权属结构",K(D(r),ee),"structure",{span:1}),C=p("woodland-quality","优势树种面积",F(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=p("woodland-origin","林地起源结构",D(l),"structure",{span:1}),Y=p("woodland-age","林龄组结构",F(o,6),"column",{span:1}),J=p("woodland-canopy","郁闭度结构",K(F(i,6),ee),"donut",{span:1,fixedType:!0}),S=p("woodland-area-scale","林地图斑规模",a,"column",{span:1}),I=p("woodland-forest-type","森林类别结构",F(u,6),"bar",{span:1}),V=p("woodland-manage-level","管护等级分布",F(c,6),"bar",{span:1}),ae=p("woodland-public-rank","公益林面积排行",F(v,6),"bar",{span:1,variant:"distribution"}),M=p("woodland-owner-rank","权属单位排行",F(m,6),"bar",{span:1}),X=p("woodland-type-town","乡镇类型构成",F(y,6),"bar",{span:1,variant:"distribution"}),he=p("woodland-quality-level","林地质量等级",D(N),"donut",{span:1}),xe=p("woodland-town-concentration","林地集中度",K(D(T),ee),"structure",{span:1}),Ae=p("woodland-type-concentration","类型集中度",K(D(W),ee),"rose",{span:1}),Le=_(z([x,L,E,$],[S,M,I,C])),Fe=_(z([C,q,Y,J],[S,M,I,ae,xe,Ae]));return{leftPanels:Le,rightPanels:Fe,left:Le[0],right:Fe[0],layerPanels:Fn({townPanel:x,typePanel:L,scalePanel:S,protectionPanel:E,ownershipPanel:$,qualityPanel:C,originPanel:q,agePanel:Y,canopyPanel:J,forestTypePanel:I,manageLevelPanel:V,regionPanel:ae,ownerPanel:M,typeTownPanel:X,qualityLevelPanel:he,townConcentrationPanel:xe,typeConcentrationPanel:Ae})}}function Fn(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:o,agePanel:i,canopyPanel:u,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:T,townConcentrationPanel:W,typeConcentrationPanel:x}=e;return{"woodland-distribution":{leftPanels:_(z([n,a,r,s],[t,c,y])),rightPanels:_(z([l,o,i,u],[t,y,m,W,x,T]))},"woodland-protection":{leftPanels:_(z([r,c,v,n],[a,s,t])),rightPanels:_(z([m,l,o,s],[y,a,t]))},"woodland-type":{leftPanels:_(z([a,n,N,t],[r,s,c])),rightPanels:_(z([l,o,r,s],[i,u,y,x]))},"woodland-quality":{leftPanels:_(z([l,o,i,u],[T,t,a])),rightPanels:_(z([n,a,r,s],[c,y,t]))},"woodland-ownership":{leftPanels:_(z([s,y,n,a],[t,r,l])),rightPanels:_(z([r,l,o,t],[c,i,u]))}}}function Cn(e=cn){const n=e.map(s=>h(b({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-O(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return D(n.sort((s,l)=>{const o=r.indexOf(s.name),i=r.indexOf(l.name);return(o===-1?99:o)-(i===-1?99:i)}),Z)}function En(){return f(this,null,function*(){return We()})}function He(e=[],n={},a=[]){var r;const t=(r=A(n==null?void 0:n.xc))!=null?r:O(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function Bn(e={},n=[]){return h(b({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function $n(e=[]){const n=O(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>h(b({},a),{color:Dn(a.name),extra:w(G(a.value,n))?`${w(G(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Dn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var o;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(o=A(e==null?void 0:e.xc))!=null?o:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(i=>Number(i.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(G(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(G(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(G(l==null?void 0:l.value,t))}].filter(i=>i.value!==void 0)}function We(){return{levelRows:Cn(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function ze(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),o=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),i=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=We().levelRows,v=D([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=D([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),T=Ze({core:r,townRows:s,grassTypeRows:o,grassLevelRows:v,healthRows:m,productivityRows:i,edibleYieldRows:N,forageRows:y,degradationRows:c}),W=h(b({status:"fallback"},T),{top:He(r,{xc:_e,unit:"万吨"},l)});return ie(W,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:B,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],B,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],o=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),B),i=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),u=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:on,unit:"万吨"},townAreaRows:o,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:i,muYieldRows:l,edibleYieldRows:u,edibleMuRows:c,typeTownRows:o,levelTownRows:o,minTownRows:o}),m=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ie(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),u=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},u);return ie(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function R(e,n=[]){return e().catch(()=>n)}function Re(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=i=>i,max:l=Number.POSITIVE_INFINITY}=n,o=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(i=>h(b({},i),{name:s(i.name)}));return D(o).filter(i=>Number(i.value)>0).slice(0,l)}function In(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function zn(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:o,degradationRows:i}){const u=p("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=p("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=p("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=p("grassland-edible-yield","可食鲜草产量分布",F(l,10),"column",{span:1,variant:"slim"}),y=p("grassland-degradation","草地退化统计",$n(i),"bar",{span:1,variant:"degradation"}),N=p("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),T=p("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),W=p("grassland-forage-capacity","饲草供给",o,"bar",{span:1,variant:"capacity"}),x=_([u,v,y,T]),L=_([m,c,N,W]);return{core:e,leftPanels:x,rightPanels:L,left:x[0],right:L[0],layerPanels:Ln({leftPanels:x,rightPanels:L})}}function Gn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],o=n.edibleRows||[],i=n.edibleMuRows||[],u=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(we(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=ge(r,n.muYieldRows||[],{showMuYieldExtra:!1}),T=we(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),W=le(we(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(M=>h(b({},M),{name:Ie(M.name)})),B,{key:"wetland-level-unclassified",name:"未分级湿地"}),x=se(le(gn(l),B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),L=ge(o,i,{showMuYieldExtra:!1}),E=we(i,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(i==null?void 0:i[0],["unit"])||"斤",max:U.length}),$=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),C=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.length)||0}类`}}),B),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),Y=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:M=>Ie(d(M,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.filter(he=>Xe(he,["acreage","areaWanMu","value"])>0).length)||0}型`}}),B),S=xn(m,L,N),I=ne(a,"wetland"),V=W.find(M=>/^1级/.test(M.name))||W[0],ae=je({yieldSummary:S,townAreaRows:$,typeRows:y,levelRows:W,yieldRows:N,minTypeRows:x,muYieldRows:T,edibleYieldRows:L,edibleMuRows:E,typeTownRows:C,levelTownRows:Y.length?Y:q,minTownRows:J});return b({core:I,top:[I[0],I[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Yn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function Kn(e,n=[]){const a=new Set(n);return Yn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=Kn(e,n);return b(h(b({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function ue(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function On(e,n,a){var W,x,L,E,$;const t=ue(e,["grassland-area","grassland-total-area","草地面积"]),r=ue(n,["wetland-area","湿地面积"]),s=ue(a,["woodland-area","林地总面积"]),[l,o]=Me(Z,637.13,119.31),i=ue(e,["basic-grassland","basic-grassland-area","基本草原"]),u=ue(e,["general-grassland","general-grassland-area","一般草原"]),c=D([{key:"overview-basic-grassland",name:"基本草原",value:w((W=i==null?void 0:i.value)!=null?W:l),unit:(i==null?void 0:i.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((x=u==null?void 0:u.value)!=null?x:o),unit:(u==null?void 0:u.unit)||"万亩",color:"#FFE06B"}]),v=D([{key:"overview-grassland-area",name:"草地资源",value:w((L=t==null?void 0:t.value)!=null?L:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((E=r==null?void 0:r.value)!=null?E:B),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w(($=s==null?void 0:s.value)!=null?$:un),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","column",{variant:"water"}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"plain",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[p("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),p("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],T=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(O(v)),unit:"万亩"},h(b({},v[0]),{name:"草地面积"}),h(b({},v[1]),{name:"湿地面积"}),h(b({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(C=>(C==null?void 0:C.status)==="error")?"fallback":"success",core:T,top:T,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return On(t,r,s)}if(e==="woodland"){const[t,r,s,l,o]=yield Promise.all([Q("/woodland/distribution").then(g),R(()=>f(this,null,function*(){return g(yield Q("/woodland/types"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/protection"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/quality"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/ownership"))}),{})]),i=ne(wn(t),e),u=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[i[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:G(c,u)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),T=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),W=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),x=k((o==null?void 0:o.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,u)}),L=k((o==null?void 0:o.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),E=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),$=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),C=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),Y=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>{const X=w(d(M,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(M)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),I=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:T,ownershipRows:L,qualityRows:W,originRows:q,ageRows:Y,canopyRows:J,forestTypeRows:E,manageLevelRows:$,regionRows:C,ownerRows:x,typeTownRows:I,qualityLevelRows:S}),ae=b({status:"success",core:i,top:v},V);return ie(ae,e,n)}if(e==="grassland"){const[t,r,s,l,o,i,u,c,v]=yield Promise.all([P("/basic_grassland/overview").then(g),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/yieldProportion"))}),{}),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return En()}),We()),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_health/proportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/edibleXcDistribution"))}))]),m=o.levelRows||[],y=ne(fn(t),e),N=ge(s||[],l||[],{showMuYieldExtra:!1}),T=Bn(r,N),W=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),x=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),L=Re(Qe(i||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Se}),E=Re(u||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:In}),$=Re(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:zn}),C=ge(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:x,grassTypeRows:L,grassLevelRows:E,healthRows:$,productivityRows:W,edibleYieldRows:C,forageRows:Je(T,N),degradationRows:m}),Y=h(b({status:"success"},q),{top:He(y,T,N)});return ie(Y,e,n)}if(e==="wetland"){const[t,r,s,l,o,i,u,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland_grassland_level"}))})]),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcMuDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/yieldProportion"))}),{})]),T=Gn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:o,minTypeRows:i,edibleRows:u,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),W=h(b({status:"success"},T),{left:T.leftPanels[0],right:T.rightPanels[0]});return ie(W,e,n)}return ze(e,n)}catch(t){return h(b({},ze(e,n)),{status:"error",error:t})}})}function Hn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield Be(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ye(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield Be(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ye(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ye(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ye(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{jn as a,Hn as b,Un as c,ke as g}; +var en=Object.defineProperty,nn=Object.defineProperties;var an=Object.getOwnPropertyDescriptors;var Ce=Object.getOwnPropertySymbols;var tn=Object.prototype.hasOwnProperty,rn=Object.prototype.propertyIsEnumerable;var Ee=(e,n,a)=>n in e?en(e,n,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[n]=a,b=(e,n)=>{for(var a in n||(n={}))tn.call(n,a)&&Ee(e,a,n[a]);if(Ce)for(var a of Ce(n))rn.call(n,a)&&Ee(e,a,n[a]);return e},h=(e,n)=>nn(e,an(n));var f=(e,n,a)=>new Promise((t,r)=>{var s=i=>{try{o(a.next(i))}catch(u){r(u)}},l=i=>{try{o(a.throw(i))}catch(u){r(u)}},o=i=>i.done?t(i.value):Promise.resolve(i.value).then(s,l);o((a=a.apply(e,n)).next())});import{n as g,r as Ge}from"./index-bc047bb3-1784074877048.js";import{g as Ye}from"./geoserver-a50e4f20-1784074877048.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-1b068bef-1784074877048.js";const ln="/openApi",Z=756.37,_e=297.29,B=291.82,on=16.47,un=177.92,cn=[{key:"none",name:"未退化",value:481.8,unit:"万亩"},{key:"light",name:"轻度退化",value:231.25,unit:"万亩"},{key:"middle",name:"中度退化",value:23.7,unit:"万亩"},{key:"heavy",name:"重度退化",value:20.21,unit:"万亩"}],mn=U.map(oe),de=["#32DCFF","#24F6C4","#8BF7FF","#46E7FF","#19FFC6","#5CDFFF"],ee=["#19FFC6","#32DCFF","#8BF7FF","#46E7FF","#24F6C4","#5CDFFF"];function Oe(e){return/^https?:\/\//.test(e)?e:`${ln}${e.startsWith("/")?e:`/${e}`}`}function Q(e,n){return Ge(Oe(e),{method:"POST",body:n?JSON.stringify(n):void 0,headers:{"Content-Type":"application/json"}})}function P(e,n){return Ge(Oe(e),{params:n})}function qe(e,n=[]){const a=[...n.map(t=>e==null?void 0:e[t]),...n.map(t=>{var r;return(r=e==null?void 0:e.data)==null?void 0:r[t]}),...n.map(t=>{var r;return(r=e==null?void 0:e.result)==null?void 0:r[t]}),e==null?void 0:e.data,e==null?void 0:e.result,e];for(const t of a)if(Array.isArray(t)){const r=t.find(s=>s&&typeof s=="object");if(r)return r}else if(t&&typeof t=="object")return t;return null}function jn(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/woodland/detail",{wkt:e}));return qe(n,["woodland"])})}function Un(e){return f(this,null,function*(){if(!e)return null;const n=g(yield P("/basic_grassland/detail",{wkt:e}));return qe(n,["basicGrassland"])})}function d(e,n){for(const a of n)if((e==null?void 0:e[a])!==void 0&&(e==null?void 0:e[a])!==null&&(e==null?void 0:e[a])!=="")return e[a]}function A(e){if(e==null||e==="")return;const n=Number(e);return Number.isNaN(n)?void 0:n}function w(e){const n=A(e);if(n!==void 0)return Number.isInteger(n)?n:Number(n.toFixed(2))}function Me(e,n,a){const t=A(e),r=A(n),s=A(a);if(t===void 0||r===void 0||s===void 0)return[w(n),w(a)];const l=r+s;if(!l)return[0,0];const o=w(r/l*t);return[o,w(Math.max(t-o,0))]}function G(e,n){const a=A(e),t=A(n);if(!(a===void 0||t===void 0||t===0))return a/t*100}function ve(e,n,a="占比"){var r;const t=w((r=d(e,["areaPercent","area_percent","percent"]))!=null?r:G(d(e,["areaWanMu","value"]),n));return t===void 0?"":`${a} ${t}%`}function j(e,n=""){const a=w(d(e,["areaPercent","area_percent","percent"]));return a===void 0?"":`${n}${a}%`}function dn(e,n=0){const a=d(e,["name","title","label","zh","itemName","item_name"])||`指标${n+1}`,t=w(d(e,["value","num","count","area","acreage","total"])),r=d(e,["unit","unitName","unit_name"])||"";return{key:d(e,["id","key","code"])||`${a}-${n}`,name:a,value:t,unit:r,source:e}}function vn(e){return(Array.isArray(e)?e:(e==null?void 0:e.rows)||(e==null?void 0:e.list)||[]).map(dn).filter(a=>a.name)}function wn(e){const n=(e==null?void 0:e.core)||(e==null?void 0:e.summary)||e||{},a=((e==null?void 0:e.typeDistribution)||(e==null?void 0:e.typeStats)||[])[0]||{},t=((e==null?void 0:e.ecologicalPosition)||[])[0]||{};return[{key:"woodland-area",name:"林地总面积",value:w(d(n,["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"])),unit:"万亩"},{key:"woodland-main-type-rate",name:`${d(a,["name"])||"主导类型"}占比`,value:w(d(a,["areaPercent","area_percent","percent"])),unit:"%"},{key:"woodland-ecology-area",name:"生态重点区面积",value:w(d(t,["areaWanMu","value"])),unit:"万亩"}]}function fn(e){const n=(e==null?void 0:e.overview)||(e==null?void 0:e.summary)||e||{},a=d(n,["areaUnit","area_unit"])||"万亩",[t,r]=Me(Z,d(n,["basicAreaWanMu","basic_area_wan_mu","basicArea","basic_area"]),d(n,["generalAreaWanMu","general_area_wan_mu","generalArea","general_area"]));return[{key:"grassland-total-area",name:"草地面积",value:Z,unit:a},{key:"basic-grassland-area",name:"基本草原",value:t,unit:a},{key:"general-grassland-area",name:"一般草原",value:r,unit:a}]}function ne(e,n){const r=({woodland:[{key:"woodland-area",name:"林地总面积",unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",unit:"%"}],grassland:[{key:"grassland-area",name:"草地面积",unit:"万亩"},{key:"basic-grassland",name:"基本草原",unit:"万亩"},{key:"general-grassland",name:"一般草原",unit:"万亩"}],wetland:[{key:"wetland-area",name:"湿地面积",unit:"万亩"},{key:"wetland-yield",name:"湿地生产力",unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",unit:"万亩"}]}[n]||[]).map((s,l)=>{var o,i;return h(b(b({},s),e[l]||{}),{name:((o=e[l])==null?void 0:o.name)||s.name,unit:((i=e[l])==null?void 0:i.unit)||s.unit})});return n==="wetland"&&r[0]&&(r[0]=h(b({},r[0]),{key:r[0].key||"wetland-area",name:"湿地面积",value:B,unit:r[0].unit||"万亩"})),r.length?r:e}function yn(e){return f(this,null,function*(){let n;for(const a of e)try{return yield a()}catch(t){n=t}throw n||new Error("No request configured")})}function k(e=[],n={}){const{nameKeys:a=["name","townName","typeName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","basicAreaWanMu"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY,extra:l}=n,o=e.map((i,u)=>{const c=w(d(i,t)),v={key:d(i,["key","code","townCode"])||`${d(i,a)||u}-${u}`,name:d(i,a)||`第${u+1}项`,value:c,unit:r,percent:w(d(i,["percent","areaPercent","basicRatio","generalRatio"])),source:i};return l?h(b({},v),{extra:l(i)}):v}).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0));return Number.isFinite(s)?o.slice(0,s):o}function we(e=[],n={}){const{nameKeys:a=["name"],valueKeys:t=["value"],unit:r,max:s=Number.POSITIVE_INFINITY,extra:l}=n;return k(e,{nameKeys:a,valueKeys:t,unit:r,max:s,extra:l})}function gn(e=[],n={}){const{nameKeys:a=["grassMinType","name"],valueKeys:t=["acreage"],unit:r="万亩",max:s=Number.POSITIVE_INFINITY}=n,l=e.map((o,i)=>{const u=d(o,t),c=w(r==="万亩"?A(u)/1e4:u),v=d(o,a)||`第${i+1}项`;return{key:d(o,["key","code"])||`${v}-${i}`,name:v,value:c,unit:r,source:o}}).filter(o=>Number(o.value)>0).sort((o,i)=>(Number(i.value)||0)-(Number(o.value)||0));return Number.isFinite(s)?l.slice(0,s):l}function p(e,n,a,t="rank",r={}){return b({key:e,title:n,type:t,rows:a||[]},r)}function ge(e=[],n=[],a={}){const{unit:t="万吨",max:r=Number.POSITIVE_INFINITY,showMuYieldExtra:s=!0}=a,l=new Map(n.map(o=>[o.areaName,o]));return k(e,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:t,max:r,extra:o=>{const i=l.get(o.areaName),u=w(d(i,["yield","value"])),c=d(i,["unit"])||"斤";return s&&u!==void 0?`亩产 ${u} ${c}`:""}})}function oe(e){return String(e||"").replace(/\s+/g,"").trim()}function me(e=[]){const n=new Map(mn.map((a,t)=>[a,t]));return[...e].sort((a,t)=>{const r=n.get(oe(a==null?void 0:a.name)),s=n.get(oe(t==null?void 0:t.name));return r!==void 0&&s!==void 0?r-s:r!==void 0?-1:s!==void 0?1:0})}function Se(e){const n=String(e||"");return{用于畜牧业生产的人工草地:"人工草地","对调节气候、涵养水源、保持水土、防风固沙具有特殊作用的草原":"生态调节草原",国家重点保护野生动植物生存环境的草原:"野生动植物栖息草原","草原科研、教学实验基地":"科研教学草原"}[n]||n}function pe(e){return Se(e).replace(/\s+/g,"").replace(/类$/,"")}function be(e){const n=String(e||""),a=n.match(/level-([1-8])/);if(a)return a[1];const t=n.match(/([1-8])\s*级/);if(t)return t[1];if(/^[1-8]$/.test(n.trim()))return n.trim();const s=Object.entries({一:"1",二:"2",三:"3",四:"4",五:"5",六:"6",七:"7",八:"8"}).find(([l])=>n.includes(`${l}级`));return(s==null?void 0:s[1])||""}function Ve(e){return be(e==null?void 0:e.key)||be(e==null?void 0:e.name)}function Ne(e=[],n={}){const{nameKeys:a=["name","townName","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n;return e.map((s,l)=>{const o=oe(d(s,a)),i=w(d(s,t));return!o||i===void 0?null:{key:d(s,["key","code","townCode"])||`${o}-${l}`,name:o,value:i,unit:d(s,["unit"])||r,source:s}}).filter(Boolean).sort((s,l)=>(Number(l.value)||0)-(Number(s.value)||0))}function Te(e=[],n={}){const{nameKeys:a=["townName","name","areaName"],valueKeys:t=["areaWanMu","value","totalAreaWanMu","yield"],unit:r="万亩"}=n,s=new Map;return e.forEach(l=>{const o=oe(d(l,a)),i=A(d(l,t));if(!o||i===void 0)return;const u=s.get(o)||{key:d(l,["townCode","code"])||o,name:o,value:0,unit:d(l,["unit"])||r,source:[]};u.value+=i,u.source.push(l),s.set(o,u)}),Array.from(s.values()).map(l=>h(b({},l),{value:w(l.value)})).sort((l,o)=>(Number(o.value)||0)-(Number(l.value)||0))}function H({topicKey:e,layerKey:n,title:a,unit:t="万亩",rows:r=[],note:s="",metricLabel:l=""}){const o=r.filter(i=>(i==null?void 0:i.name)&&i.value!==void 0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0)).map((i,u)=>h(b({},i),{unit:i.unit||t,rank:u+1}));return{status:o.length?"success":"empty",topicKey:e,layerKey:n,title:a,unit:t,metricLabel:l,note:s,rows:o}}function fe(l){return f(this,arguments,function*({topicKey:e,layerKey:n,layerName:a,title:t,cqlFilter:r="",unit:s="万亩"}){const o=yield Ye(a,{propertyName:["xiang","acreage"],cqlFilter:r,maxFeatures:2e5}),i=new Map;return((o==null?void 0:o.features)||[]).forEach(u=>{const c=u.properties||{},v=String(c.xiang||""),m=Ke(v),y=A(c.acreage);if(!m||y===void 0)return;const N=i.get(m)||{key:v,name:m,value:0,unit:s};N.value+=y/1e4,i.set(m,N)}),H({topicKey:e,layerKey:n,title:t,unit:s,rows:Array.from(i.values()).map(u=>h(b({},u),{value:w(u.value)})),note:"按 GeoServer 图斑属性汇总到乡镇"})})}function pn(e,n,a="林地面积排行"){return f(this,null,function*(){const t=g(yield Q("/woodland/distribution"));return H({topicKey:e,layerKey:n,title:a,unit:"万亩",rows:Ne((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],unit:"万亩"})})})}function Be(e,n,a,t){return f(this,null,function*(){const r=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:t,unit:"万亩",rows:Ne((r==null?void 0:r.townStats)||[],{nameKeys:["name"],valueKeys:[a],unit:"万亩"})})})}function bn(e={},n=[],a=[]){const t=d(e,a);if(t)return oe(t);const r=n.map(l=>d(e,[l])).find(l=>l!==void 0),s=String(r||"").slice(0,9);return Ke(s)}function Nn(e,n,a,t){return f(this,null,function*(){const r=(t==null?void 0:t.rankingTownCodeKeys)||(a==null?void 0:a.rankingTownCodeKeys)||["area_code","xiang","town_code"],s=(t==null?void 0:t.rankingTownNameKeys)||(a==null?void 0:a.rankingTownNameKeys)||["town_name","area_name","xiang_name"],l=(t==null?void 0:t.rankingAreaKeys)||(a==null?void 0:a.rankingAreaKeys)||["acreage","area_mu","area"],o=(t==null?void 0:t.rankingPropertyName)||[...r,...s,...l],i=yield Ye(a.layerName,{propertyName:o,cqlFilter:t.cqlFilter,maxFeatures:2e5,timeout:25e3}),u=new Map;return((i==null?void 0:i.features)||[]).forEach(c=>{const v=c.properties||{},m=bn(v,r,s),y=A(d(v,l));if(!m||y===void 0)return;const N=u.get(m)||{key:m,name:m,value:0,unit:"万亩"};N.value+=y/1e4,u.set(m,N)}),H({topicKey:e,layerKey:n,title:`${t.name}面积排行`,unit:"万亩",metricLabel:t.name,rows:Array.from(u.values()).map(c=>h(b({},c),{value:w(c.value),metricLabel:t.name})),note:"按选中图例过滤 GeoServer 图斑并汇总到乡镇"})})}function Pn(e,n,a){return f(this,null,function*(){const t=g(yield P("/basic_grassland/overview"));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:Ne((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:[a.rankingValueKey],unit:"万亩"}).map(r=>h(b({},r),{metricLabel:a.name}))})})}function Pe(e,n,a,t,r={}){const s=re(t||[],r).map(l=>h(b({},l),{metricLabel:a.name}));return H({topicKey:e,layerKey:n,title:`${a.name}面积排行`,unit:"万亩",metricLabel:a.name,rows:s})}function hn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/grassland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function Rn(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function kn(e,n,a){return f(this,null,function*(){const t=Ve(a);if(!t)return null;const r=g(yield P("/wetland_grassland_level/distribution"));return Pe(e,n,a,r,{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:s=>be(d(s,["level","name"]))===t})})}function _n(e,n,a){return f(this,null,function*(){const t=pe(a.name);if(!t)return null;const[r,s]=yield Promise.all([R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))}))]);return Pe(e,n,a,[...r||[],...s||[]],{nameKeys:["areaName","area_name","name"],valueKeys:["acreage","areaWanMu","value"],filter:l=>{const o=d(l,["grassMinType","grass_min_type","grassType","grass_type","name"]);return pe(o)===t}})})}function Tn(e,n,a){return f(this,null,function*(){if(!(a!=null&&a.key))return null;const t=sn(e,n);return t?e==="grassland"&&n==="basic-grassland"&&a.rankingValueKey?Pn(e,n,a):e==="grassland"&&n==="grassland-level"?hn(e,n,a):e==="grassland"&&n==="grassland-type"?Rn(e,n,a):e==="wetland"&&n==="wetland-level"?kn(e,n,a):e==="wetland"&&n==="wetland-type"?_n(e,n,a):a.cqlFilter&&t.layerName?Nn(e,n,t,a):null:null})}function ye(e,n,a,t,r="万吨"){return f(this,null,function*(){const s=g(yield P(a)),l=d(s==null?void 0:s[0],["unit"])||r;return H({topicKey:e,layerKey:n,title:t,unit:l,rows:Ne(s||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:l})})})}function F(e=[],n=5){return e.slice(0,n)}function se(e=[],n={}){var c,v;const{limit:a=5,minPercent:t=1,otherName:r="其他类型"}=n,s=e.filter(m=>(m==null?void 0:m.name)&&Number(m.value)>0).sort((m,y)=>(Number(y.value)||0)-(Number(m.value)||0)),l=s.reduce((m,y)=>m+(Number(y.value)||0),0);if(!l||s.length<=a)return s;const o=[],i=[];if(s.forEach((m,y)=>{const N=G(m.value,l);y=t)?o.push(m):i.push(m)}),!i.length)return o;const u=i.reduce((m,y)=>m+(Number(y.value)||0),0);return[...o,{key:`${r}-${i.length}`,name:r,value:w(u),unit:((c=i[0])==null?void 0:c.unit)||((v=s[0])==null?void 0:v.unit)||"万亩",extra:`${w(G(u,l))}%`}]}function O(e=[]){return e.reduce((n,a)=>n+(Number(a.value)||0),0)}function D(e=[],n=O(e),a=""){return e.map(t=>{const r=w(G(t.value,n));return h(b({},t),{extra:r===void 0?t.extra:`${a}${r}%`})})}function le(e=[],n,a={}){const{key:t="unclassified",name:r="未分类",unit:s="万亩",sort:l=!0}=a,o=A(n);if(o===void 0)return e;const i=O(e),u=w(o-i);if(u===void 0||u<=.01)return e;const c=[...e,{key:t,name:r,value:u,unit:s}];return l?c.sort((v,m)=>(Number(m.value)||0)-(Number(v.value)||0)):c}function ce(e=[],n){const a=A(n),t=O(e);if(a===void 0||!t)return e;let r=0;return e.map((s,l)=>{const o=l===e.length-1,i=w(o?Math.max(a-r,0):(Number(s.value)||0)/t*a);return r+=Number(i)||0,h(b({},s),{value:i})})}function K(e=[],n=[]){return n.length?e.map((a,t)=>h(b({},a),{color:(a==null?void 0:a.color)||(a==null?void 0:a.fillColor)||n[t%n.length]})):e}function $e(e){return Array.isArray(e==null?void 0:e.rows)&&e.rows.length>0}function z(e=[],n=[],a=4){const t=[],r=new Set,s=o=>{!o||r.has(o.key)||(r.add(o.key),t.push(o))},l=[...e,...n];return l.filter($e).forEach(s),l.filter(o=>o&&!$e(o)).forEach(s),t.slice(0,a)}function Mn(e,n,a={}){return e&&b(h(b({},e),{type:n}),a)}function _(e=[]){const n=["bar","line","donut","column","structure","heat","peak","split"],a={bar:["heat","column","structure","line"],line:["bar","column","heat"],donut:["structure","split","bar"],column:["heat","bar","line","structure"],structure:["split","donut","bar"],heat:["bar","column","structure"],peak:["column","bar","line"],split:["structure","donut","bar"]},t=new Set;return e.map(r=>{if(!(r!=null&&r.type)||["projectTable","iconMetric","metric","spotlight","rank","table","stackColumn"].includes(r.type))return r;const s=r.type==="donut"&&r.variant==="ring"?"donut-ring":r.type;if(r.fixedType||!t.has(s))return t.add(s),r;const l=(a[r.type]||n).find(o=>!t.has(o))||r.type;return t.add(l),Mn(r,l,{variant:l===r.type?r.variant:void 0})})}function De(e=[],n={}){const{headCount:a=4,headName:t="重点区域",tailName:r="其他区域"}=n,s=e.filter(u=>(u==null?void 0:u.name)&&Number(u.value)>0);if(!s.length)return[];const l=s.slice(0,a),o=s.slice(a),i=(u,c)=>{var v,m;return{key:u,name:u,value:w(c.reduce((y,N)=>y+(Number(N.value)||0),0)),unit:((v=c[0])==null?void 0:v.unit)||((m=s[0])==null?void 0:m.unit)||"万亩",extra:`${c.length}项`}};return[i(t,l),o.length?i(r,o):null].filter(u=>u&&Number(u.value)>0)}function ie(e,n,a){var o,i,u,c;if(n==="woodland"||!a)return e;const t={grassland:"grassland-distribution",wetland:"wetland-distribution",woodland:"woodland-distribution"}[n],r=((o=e==null?void 0:e.layerPanels)==null?void 0:o[a])||((i=e==null?void 0:e.layerPanels)==null?void 0:i[t]);if(!r)return e;const s=(u=r.leftPanels)!=null&&u.length?r.leftPanels:e.leftPanels,l=(c=r.rightPanels)!=null&&c.length?r.rightPanels:e.rightPanels;return h(b({},e),{activeLayerKey:a||t,leftPanels:s,rightPanels:l,left:(s==null?void 0:s[0])||e.left,right:(l==null?void 0:l[0])||e.right})}function Xe(e,n=["areaWanMu","value","acreage","areaMu"]){for(const a of n){const t=d(e,[a]),r=A(t);if(r===void 0)continue;const s=String(a).toLowerCase(),l=String(d(e,["unit","areaUnit","area_unit"])||"");return s.includes("wanmu")||l==="万亩"?r:s.includes("mu")||l==="亩"?r/1e4:r}}function re(e=[],n={}){const{nameKeys:a=["name","areaName","townName"],valueKeys:t=["areaWanMu","value","acreage","areaMu"],nameTransform:r=i=>i,filter:s,extra:l}=n,o=new Map;return e.forEach(i=>{if(s&&!s(i))return;const u=d(i,a),c=r(u,i),v=Xe(i,t);if(!c||v===void 0)return;const m=o.get(c)||{key:d(i,["key","code","townCode"])||c,name:c,value:0,unit:"万亩",source:[]};m.value+=v,m.source.push(i),o.set(c,m)}),Array.from(o.values()).map(i=>{const u=h(b({},i),{value:w(i.value)});return l?h(b({},u),{extra:l(u)}):u}).filter(i=>Number(i.value)>0).sort((i,u)=>(Number(u.value)||0)-(Number(i.value)||0))}function Ie(e){return String(e||"").replace(/草原/g,"湿地")}function Wn(e={},n=[]){var l;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(l=A(e==null?void 0:e.xc))!=null?l:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0;return[{key:"wetland-yield-edible",name:"可食鲜草",value:w(r),unit:a,extra:`${w(G(r,t))}%`},{key:"wetland-yield-unavailable",name:"不可食鲜草",value:w(s),unit:a,extra:`${w(G(s,t))}%`}].filter(o=>o.value!==void 0)}function xn(e={},n=[],a=[]){var i;const t=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||d(a==null?void 0:a[0],["unit"])||"万吨",r=(i=A(e==null?void 0:e.xc))!=null?i:O(a),s=A(e==null?void 0:e.edibleXc),l=O(n),o=s!==void 0||l>0?Math.max(s||0,l||0):void 0;return h(b({},e),{xc:w(r),edibleXc:w(o),unit:t})}function je({yieldSummary:e,townAreaRows:n,typeRows:a,levelRows:t,yieldRows:r,minTypeRows:s,muYieldRows:l,edibleYieldRows:o,edibleMuRows:i,typeTownRows:u,levelTownRows:c,minTownRows:v}){const m=p("wetland-town-area","湿地面积分布",K(me(n),de),"column",{span:1,variant:"plain"}),y=p("wetland-type","湿地类型结构",K(a,de),"donut",{span:1}),N=p("wetland-level-proportion","湿地级占比",K(D(t),de),"donut",{span:1,variant:"ring"}),T=p("wetland-min-type","湿地优势小类",K(F(s,6),de),"bar",{span:1,variant:"raceBarNoWrap"}),W=p("wetland-yield-capacity","湿地产能结构",Wn(e,r),"structure",{span:1}),x=p("wetland-yield","湿地生产力分布",me(r),"line",{span:1,fixedType:!0}),L=p("wetland-edible-yield","可食鲜草产量",F(o,U.length),"column",{span:1,variant:"slim"}),E=p("wetland-mu-yield","湿地亩产效率",F(l,U.length),"heat",{span:1,limit:U.length}),$=p("wetland-level","湿地级别面积",t,"column",{span:1}),C=p("wetland-level-town","1级湿地分布",F(c,U.length),"bar",{span:1,variant:"distribution"}),q=p("wetland-type-town","湿地类型乡镇分布",F(u,U.length),"bar",{span:1,variant:"distribution"}),Y=p("wetland-edible-mu","可食鲜草亩产",F(i,U.length),"bar",{span:1}),J=p("wetland-min-town","优势小类乡镇分布",F(v,U.length),"bar",{span:1,variant:"distribution"}),S=_([m,y,N,T]),I=_([L,x,E,W]);return{leftPanels:S,rightPanels:I,left:S[0],right:I[0],layerPanels:An({townAreaPanel:m,typePanel:y,yieldCapacityPanel:W,yieldPanel:x,levelPanel:$,levelTownPanel:C,muYieldPanel:E,levelStructurePanel:N,typeTownPanel:q,minTypePanel:T,edibleYieldPanel:L,edibleMuPanel:Y,minTownPanel:J})}}function An(e={}){const{townAreaPanel:n,typePanel:a,yieldCapacityPanel:t,yieldPanel:r,levelPanel:s,levelTownPanel:l,muYieldPanel:o,levelStructurePanel:i,typeTownPanel:u,minTypePanel:c,edibleYieldPanel:v,edibleMuPanel:m,minTownPanel:y}=e;return{"wetland-distribution":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-level":{leftPanels:_([i,s,l,a].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))},"wetland-type":{leftPanels:_([a,u,c,y].filter(Boolean)),rightPanels:_([v,r,m,t].filter(Boolean))},"wetland-yield":{leftPanels:_([n,a,i,c].filter(Boolean)),rightPanels:_([v,r,o,t].filter(Boolean))}}}function Ln(e={}){const{leftPanels:n=[],rightPanels:a=[]}=e,t={leftPanels:_(n.filter(Boolean)),rightPanels:_(a.filter(Boolean))};return{"grassland-distribution":t,"basic-grassland":t,"grassland-level":t,"grassland-type":t,"grassland-yield":t,"grassland-health":t}}function Ue({townRows:e=[],typeRows:n=[],scaleRows:a=[],protectionRows:t=[],ownershipRows:r=[],qualityRows:s=[],originRows:l=[],ageRows:o=[],canopyRows:i=[],forestTypeRows:u=[],manageLevelRows:c=[],regionRows:v=[],ownerRows:m=[],typeTownRows:y=[],qualityLevelRows:N=[],townConcentrationRows:T=De(e,{headCount:4,headName:"前四乡镇",tailName:"其他乡镇"}),typeConcentrationRows:W=De(n,{headCount:2,headName:"主要类型",tailName:"其他类型"})}){const x=p("woodland-town","林地面积分布",K(me(e),ee),"column",{span:1,variant:"plain",lineOverlay:!0}),L=p("woodland-type","林地类型结构",K(n,ee),"donut",{span:1,variant:"ring"}),E=p("woodland-protection","公益林保护等级",K(D(t),ee),"bar",{span:1,variant:"raceBarRelaxed"}),$=p("woodland-ownership","林地权属结构",K(D(r),ee),"structure",{span:1}),C=p("woodland-quality","优势树种面积",F(s,6),"bar",{span:1,variant:"raceBarNoWrap"}),q=p("woodland-origin","林地起源结构",D(l),"structure",{span:1}),Y=p("woodland-age","林龄组结构",F(o,6),"column",{span:1}),J=p("woodland-canopy","郁闭度结构",K(F(i,6),ee),"donut",{span:1,fixedType:!0}),S=p("woodland-area-scale","林地图斑规模",a,"column",{span:1}),I=p("woodland-forest-type","森林类别结构",F(u,6),"bar",{span:1}),V=p("woodland-manage-level","管护等级分布",F(c,6),"bar",{span:1}),ae=p("woodland-public-rank","公益林面积排行",F(v,6),"bar",{span:1,variant:"distribution"}),M=p("woodland-owner-rank","权属单位排行",F(m,6),"bar",{span:1}),X=p("woodland-type-town","乡镇类型构成",F(y,6),"bar",{span:1,variant:"distribution"}),he=p("woodland-quality-level","林地质量等级",D(N),"donut",{span:1}),xe=p("woodland-town-concentration","林地集中度",K(D(T),ee),"structure",{span:1}),Ae=p("woodland-type-concentration","类型集中度",K(D(W),ee),"rose",{span:1}),Le=_(z([x,L,E,$],[S,M,I,C])),Fe=_(z([C,q,Y,J],[S,M,I,ae,xe,Ae]));return{leftPanels:Le,rightPanels:Fe,left:Le[0],right:Fe[0],layerPanels:Fn({townPanel:x,typePanel:L,scalePanel:S,protectionPanel:E,ownershipPanel:$,qualityPanel:C,originPanel:q,agePanel:Y,canopyPanel:J,forestTypePanel:I,manageLevelPanel:V,regionPanel:ae,ownerPanel:M,typeTownPanel:X,qualityLevelPanel:he,townConcentrationPanel:xe,typeConcentrationPanel:Ae})}}function Fn(e={}){const{townPanel:n,typePanel:a,scalePanel:t,protectionPanel:r,ownershipPanel:s,qualityPanel:l,originPanel:o,agePanel:i,canopyPanel:u,forestTypePanel:c,manageLevelPanel:v,regionPanel:m,ownerPanel:y,typeTownPanel:N,qualityLevelPanel:T,townConcentrationPanel:W,typeConcentrationPanel:x}=e;return{"woodland-distribution":{leftPanels:_(z([n,a,r,s],[t,c,y])),rightPanels:_(z([l,o,i,u],[t,y,m,W,x,T]))},"woodland-protection":{leftPanels:_(z([r,c,v,n],[a,s,t])),rightPanels:_(z([m,l,o,s],[y,a,t]))},"woodland-type":{leftPanels:_(z([a,n,N,t],[r,s,c])),rightPanels:_(z([l,o,r,s],[i,u,y,x]))},"woodland-quality":{leftPanels:_(z([l,o,i,u],[T,t,a])),rightPanels:_(z([n,a,r,s],[c,y,t]))},"woodland-ownership":{leftPanels:_(z([s,y,n,a],[t,r,l])),rightPanels:_(z([r,l,o,t],[c,i,u]))}}}function Cn(e=cn){const n=e.map(s=>h(b({},s),{value:w(s.value),unit:s.unit||"万亩"})),a=w(Z-O(n)),t=n.find(s=>s.name==="未退化");t&&a!==void 0&&Math.abs(a)>.01&&(t.value=w(Math.max((Number(t.value)||0)+a,0)));const r=["未退化","轻度退化","中度退化","重度退化"];return D(n.sort((s,l)=>{const o=r.indexOf(s.name),i=r.indexOf(l.name);return(o===-1?99:o)-(i===-1?99:i)}),Z)}function En(){return f(this,null,function*(){return We()})}function He(e=[],n={},a=[]){var r;const t=(r=A(n==null?void 0:n.xc))!=null?r:O(a);return[e[0],e[1],e[2],{key:"grassland-yield-total",name:"鲜草产量",value:w(t),unit:(n==null?void 0:n.unit)||"万吨"}].filter(s=>(s==null?void 0:s.value)!==void 0)}function Bn(e={},n=[]){return h(b({},e),{xc:_e,unit:(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨"})}function $n(e=[]){const n=O(e);return e.filter(a=>a.name&&Number(a.value)>0).map(a=>h(b({},a),{color:Dn(a.name),extra:w(G(a.value,n))?`${w(G(a.value,n))}%`:""})).sort((a,t)=>Number(t.value)-Number(a.value))}function Dn(e=""){const n=String(e);return n.includes("未退化")?"#32DCFF":n.includes("重度")?"#FFE06B":n.includes("中度")?"#6EA8FF":"#24F6C4"}function Je(e={},n=[]){var o;const a=(e==null?void 0:e.unit)||d(n==null?void 0:n[0],["unit"])||"万吨",t=(o=A(e==null?void 0:e.xc))!=null?o:O(n),r=A(e==null?void 0:e.edibleXc),s=t!==void 0&&r!==void 0?Math.max(t-r,0):void 0,l=n.find(i=>Number(i.value)>0);return[{key:"forage-total",name:"鲜草总产",value:w(t),unit:a,scaleValue:100},{key:"forage-edible",name:"可食鲜草",value:w(r),unit:a,scaleValue:w(G(r,t))},{key:"forage-unavailable",name:"不可食鲜草",value:w(s),unit:a,scaleValue:w(G(s,t))},{key:"forage-top-town",name:l!=null&&l.name?`最高乡镇:${l.name}`:"最高乡镇产量",value:l==null?void 0:l.value,unit:(l==null?void 0:l.unit)||a,scaleValue:w(G(l==null?void 0:l.value,t))}].filter(i=>i.value!==void 0)}function We(){return{levelRows:Cn(),townRows:[{key:"qiongxi",name:"邛溪镇",value:14.72,unit:"万亩"},{key:"sedi",name:"色地镇",value:13.86,unit:"万亩"},{key:"anqu",name:"安曲镇",value:12.38,unit:"万亩"},{key:"wache",name:"瓦切镇",value:10.64,unit:"万亩"},{key:"chaerma",name:"查尔玛乡",value:9.53,unit:"万亩"},{key:"amu",name:"阿木乡",value:8.71,unit:"万亩"}]}}function ze(e,n){if(e==="grassland"){const[a,t]=Me(Z,637.13,119.31),r=ne([{key:"grassland-area",name:"草地面积",value:Z,unit:"万亩"},{key:"basic-grassland",name:"基本草原",value:a,unit:"万亩"},{key:"general-grassland",name:"一般草原",value:t,unit:"万亩"}],e),s=k([{name:"色地镇",value:99.09,basicAreaWanMu:66.58},{name:"邛溪镇",value:93.01,basicAreaWanMu:70.6},{name:"安曲镇",value:90.08,basicAreaWanMu:73.49},{name:"阿木乡",value:86.3,basicAreaWanMu:77.31},{name:"查尔玛乡",value:80.8,basicAreaWanMu:79.04},{name:"瓦切镇",value:74.74,basicAreaWanMu:70.73},{name:"刷经寺镇",value:74.3,basicAreaWanMu:56.66},{name:"龙日镇",value:62.64,basicAreaWanMu:49.66},{name:"江茸乡",value:49.67,basicAreaWanMu:48.78},{name:"麦洼乡",value:45.82,basicAreaWanMu:44.28}],{nameKeys:["name"],valueKeys:["value"]}),l=k([{areaName:"邛溪镇",yield:38.88},{areaName:"色地镇",yield:37.78},{areaName:"安曲镇",yield:36.77},{areaName:"查尔玛乡",yield:33.21},{areaName:"瓦切镇",yield:32.62},{areaName:"阿木乡",yield:32.17},{areaName:"龙日镇",yield:24.43},{areaName:"刷经寺镇",yield:22.51},{areaName:"麦洼乡",yield:19.5},{areaName:"江茸乡",yield:19.43}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),o=se([{key:"grazing",name:"重要放牧场",value:516.41,unit:"万亩"},{key:"general",name:"一般草原",value:t,unit:"万亩"},{key:"ecology",name:"生态调节草原",value:97.23,unit:"万亩"},{key:"mowing",name:"割草地",value:15.95,unit:"万亩"},{key:"improved",name:"改良草地",value:4.33,unit:"万亩"}],{limit:4,minPercent:3,otherName:"其他草原类型"}),i=k([{areaName:"瓦切镇",yield:798.39},{areaName:"查尔玛乡",yield:794.32},{areaName:"麦洼乡",yield:784.16},{areaName:"邛溪镇",yield:772.43},{areaName:"安曲镇",yield:770.9}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),c=We().levelRows,v=D([{key:"level-3",name:"3级草原",value:200.9,unit:"万亩"},{key:"level-4",name:"4级草原",value:205.47,unit:"万亩"},{key:"level-5",name:"5级草原",value:385.42,unit:"万亩"},{key:"level-6",name:"6级草原",value:139.06,unit:"万亩"},{key:"level-7",name:"7级草原",value:3.68,unit:"万亩"},{key:"level-8",name:"8级草原",value:3.61,unit:"万亩"}]),m=D([{key:"good",name:"较健康",value:231.32,unit:"万亩"},{key:"healthy",name:"健康",value:481.87,unit:"万亩"},{key:"subhealthy",name:"亚健康",value:23.69,unit:"万亩"},{key:"unhealthy",name:"不健康",value:20.27,unit:"万亩"}]),y=Je({xc:_e,edibleXc:192.26,unit:"万吨"},l),N=k([{areaName:"邛溪镇",yield:24.71},{areaName:"色地镇",yield:24.18},{areaName:"安曲镇",yield:23.48},{areaName:"查尔玛乡",yield:21.26},{areaName:"瓦切镇",yield:20.88},{areaName:"阿木乡",yield:20.59},{areaName:"龙日镇",yield:15.63},{areaName:"刷经寺镇",yield:14.41},{areaName:"麦洼乡",yield:12.48},{areaName:"江茸乡",yield:12.44}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),T=Ze({core:r,townRows:s,grassTypeRows:o,grassLevelRows:v,healthRows:m,productivityRows:i,edibleYieldRows:N,forageRows:y,degradationRows:c}),W=h(b({status:"fallback"},T),{top:He(r,{xc:_e,unit:"万吨"},l)});return ie(W,e,n)}if(e==="wetland"){const a=ne([{key:"wetland-area",name:"湿地面积",value:B,unit:"万亩"},{key:"wetland-yield",name:"湿地生产力(鲜草)",value:108.84,unit:"万吨"},{key:"wetland-level-1-area",name:"1级湿地面积",value:213.22,unit:"万亩"}],e),t=le(se([{name:"高寒草甸类",value:190.32,unit:"万亩"},{name:"山地草甸类",value:49.48,unit:"万亩"},{name:"低地草甸类",value:3.21,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),r=le([{name:"1级湿地",value:213.22,unit:"万亩"},{name:"2级湿地",value:22.99,unit:"万亩"},{name:"3级湿地",value:6.42,unit:"万亩"},{name:"4级湿地",value:.36,unit:"万亩"},{name:"5级湿地",value:.02,unit:"万亩"}],B,{key:"wetland-level-unclassified",name:"未分级湿地"}),s=k([{areaName:"色地镇",yield:21.32},{areaName:"瓦切镇",yield:17.49},{areaName:"安曲镇",yield:15.19},{areaName:"邛溪镇",yield:13.41},{areaName:"阿木乡",yield:10.37},{areaName:"龙日镇",yield:10.11},{areaName:"麦洼乡",yield:9.67},{areaName:"江茸乡",yield:5.78},{areaName:"刷经寺镇",yield:3.43},{areaName:"查尔玛乡",yield:2.08}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),l=[{name:"瓦切镇",value:944.22,unit:"斤"},{name:"安曲镇",value:913.28,unit:"斤"},{name:"麦洼乡",value:911.14,unit:"斤"},{name:"查尔玛乡",value:873.31,unit:"斤"},{name:"阿木乡",value:872,unit:"斤"},{name:"邛溪镇",value:870.48,unit:"斤"},{name:"色地镇",value:865.92,unit:"斤"},{name:"刷经寺镇",value:863.48,unit:"斤"},{name:"江茸乡",value:827.92,unit:"斤"},{name:"龙日镇",value:825.59,unit:"斤"}],o=ce([{name:"瓦切镇",value:36.38,unit:"万亩"},{name:"邛溪镇",value:29.29,unit:"万亩"},{name:"阿木乡",value:25.26,unit:"万亩"},{name:"龙日镇",value:24.59,unit:"万亩"},{name:"色地镇",value:24.62,unit:"万亩"}].sort((y,N)=>N.value-y.value),B),i=le([{name:"矮生嵩草、杂类草型",value:108.35,unit:"万亩"},{name:"高山嵩草、矮生嵩草型",value:34.36,unit:"万亩"},{name:"西藏嵩草、杂类草型",value:32.37,unit:"万亩"},{name:"早熟禾、杂类草型",value:20.99,unit:"万亩"},{name:"苔草、杂类草型",value:14.63,unit:"万亩"}],B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),u=k([{areaName:"色地镇",yield:2.82},{areaName:"邛溪镇",yield:2.71},{areaName:"瓦切镇",yield:2.64},{areaName:"麦洼乡",yield:1.76},{areaName:"安曲镇",yield:1.66}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"万吨"}),c=k([{areaName:"阿木乡",yield:509.83},{areaName:"瓦切镇",yield:509.52},{areaName:"邛溪镇",yield:356.74},{areaName:"色地镇",yield:287.23},{areaName:"麦洼乡",yield:281.27}],{nameKeys:["areaName"],valueKeys:["yield"],unit:"斤"}),v=je({core:a,yieldSummary:{xc:108.84,edibleXc:on,unit:"万吨"},townAreaRows:o,typeRows:t,levelRows:r,yieldRows:s,minTypeRows:i,muYieldRows:l,edibleYieldRows:u,edibleMuRows:c,typeTownRows:o,levelTownRows:o,minTownRows:o}),m=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},v);return ie(m,e,n)}if(e==="woodland"){const a=ne([{key:"woodland-area",name:"林地总面积",value:177.92,unit:"万亩"},{key:"woodland-public-area",name:"公益林面积",value:159.33,unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:89.55,unit:"%"}],e),t=k([{name:"刷经寺镇",value:59.4,percent:33.39},{name:"色地镇",value:27.97,percent:15.72},{name:"查尔玛乡",value:22.6,percent:12.7},{name:"阿木乡",value:19.37,percent:10.89},{name:"江茸乡",value:11.61,percent:6.53},{name:"邛溪镇",value:8.29,percent:4.66},{name:"瓦切镇",value:7.98,percent:4.49},{name:"安曲镇",value:7.47,percent:4.2},{name:"龙日镇",value:7.08,percent:3.98},{name:"麦洼乡",value:6.14,percent:3.45}],{nameKeys:["name"],valueKeys:["value"],extra:v=>`占比 ${w(v.percent)}%`}),r=se([{name:"灌木林地",value:114.78,unit:"万亩"},{name:"乔木林地",value:49.56,unit:"万亩"},{name:"灌丛沼泽",value:8.79,unit:"万亩"},{name:"其他林地",value:4.79,unit:"万亩"}],{limit:4,minPercent:1,otherName:"其他林地"}),u=Ue({townRows:t,typeRows:r,scaleRows:[{name:"15-150亩",value:96.91,unit:"万亩"},{name:"<15亩",value:39.99,unit:"万亩"},{name:"150-1500亩",value:30.81,unit:"万亩"},{name:"≥1500亩",value:10.21,unit:"万亩"}],protectionRows:[{name:"国家二级公益林",value:158.33,unit:"万亩",extra:"88.99%"},{name:"未划定",value:18.72,unit:"万亩",extra:"10.52%"},{name:"国家一级公益林",value:.88,unit:"万亩",extra:"0.49%"}],ownershipRows:[{name:"集体林地",value:172.19,unit:"万亩",extra:"96.78%"},{name:"国有或其他",value:5.73,unit:"万亩",extra:"3.22%"}],ownerRows:[{name:"壤口村",value:42.74,unit:"万亩",extra:"占比 24.02%"},{name:"查龙村",value:16.34,unit:"万亩",extra:"占比 9.18%"},{name:"茸塔玛村",value:14.96,unit:"万亩",extra:"占比 8.41%"},{name:"峨扎村",value:9.96,unit:"万亩",extra:"占比 5.6%"},{name:"三家寨村",value:9.57,unit:"万亩",extra:"占比 5.38%"}]}),c=b({status:"fallback",core:a,top:[a[0],a[1],a[2]]},u);return ie(c,e,n)}return{status:"empty",core:ne([],e),leftPanels:[],rightPanels:[],left:{title:"业务统计",rows:[]},right:{title:"业务统计",rows:[]}}}function Qe(e=[],n=["name"]){const a=new Map;return e.forEach(t=>{const r=d(t,n);!r||a.has(r)||a.set(r,t)}),Array.from(a.values())}function R(e,n=[]){return e().catch(()=>n)}function Re(e=[],n={}){const{nameKeys:a=["name","health","level"],valueKeys:t=["value","acreage","areaWanMu"],unit:r="万亩",nameTransform:s=i=>i,max:l=Number.POSITIVE_INFINITY}=n,o=k(e||[],{nameKeys:a,valueKeys:t,unit:r}).map(i=>h(b({},i),{name:s(i.name)}));return D(o).filter(i=>Number(i.value)>0).slice(0,l)}function In(e){const n=String(e||"");return/^\d+$/.test(n)?`${n}级草原`:n.includes("级")?n.replace(/草地/g,"草原"):n}function zn(e){const n=String(e||"");return{healthy:"健康",subhealthy:"亚健康",unhealthy:"不健康"}[n]||n}function Ze({core:e,townRows:n,grassTypeRows:a,grassLevelRows:t,healthRows:r,productivityRows:s,edibleYieldRows:l,forageRows:o,degradationRows:i}){const u=p("grassland-town","草地面积分布",me(n),"column",{span:1,variant:"plain"}),c=p("grassland-productivity-town","草地生产力分布",me(s),"line",{span:1,fixedType:!0}),v=p("grassland-type-proportion","草原类占比",a,"donut",{span:1}),m=p("grassland-edible-yield","可食鲜草产量分布",F(l,10),"column",{span:1,variant:"slim"}),y=p("grassland-degradation","草地退化统计",$n(i),"bar",{span:1,variant:"degradation"}),N=p("grassland-health-proportion","草地健康占比",r,"rose",{span:1}),T=p("grassland-level-proportion","草原级占比",t,"donut",{span:1,variant:"ring"}),W=p("grassland-forage-capacity","饲草供给",o,"bar",{span:1,variant:"capacity"}),x=_([u,v,y,T]),L=_([m,c,N,W]);return{core:e,leftPanels:x,rightPanels:L,left:x[0],right:L[0],layerPanels:Ln({leftPanels:x,rightPanels:L})}}function Gn(e,n={}){const a=vn(e),t=Qe(n.typeRows||[],["name"]),r=n.yieldRows||[],s=n.levelRows||[],l=n.minTypeRows||[],o=n.edibleRows||[],i=n.edibleMuRows||[],u=n.typeDistributionRows||[],c=n.levelDistributionRows||[],v=n.minTypeDistributionRows||[],m=n.yieldSummary||{},y=le(se(we(t,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}),{limit:4,minPercent:1,otherName:"其他湿地类型"}),B,{key:"wetland-type-unclassified",name:"未分类湿地"}),N=ge(r,n.muYieldRows||[],{showMuYieldExtra:!1}),T=we(n.muYieldRows||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:"斤",max:U.length}),W=le(we(s,{nameKeys:["name"],valueKeys:["value"],unit:"万亩"}).map(M=>h(b({},M),{name:Ie(M.name)})),B,{key:"wetland-level-unclassified",name:"未分级湿地"}),x=se(le(gn(l),B,{key:"wetland-min-type-unclassified",name:"未分类湿地"}),{limit:6,minPercent:1,otherName:"其他小类"}),L=ge(o,i,{showMuYieldExtra:!1}),E=we(i,{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(i==null?void 0:i[0],["unit"])||"斤",max:U.length}),$=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),C=ce(re(u,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.length)||0}类`}}),B),q=ce(re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"]}),B),Y=re(c,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],filter:M=>Ie(d(M,["level","name"])).startsWith("1级")}),J=ce(re(v,{nameKeys:["areaName","name"],valueKeys:["acreage","areaWanMu","value"],extra:M=>{var X;return`${((X=M.source)==null?void 0:X.filter(he=>Xe(he,["acreage","areaWanMu","value"])>0).length)||0}型`}}),B),S=xn(m,L,N),I=ne(a,"wetland"),V=W.find(M=>/^1级/.test(M.name))||W[0],ae=je({yieldSummary:S,townAreaRows:$,typeRows:y,levelRows:W,yieldRows:N,minTypeRows:x,muYieldRows:T,edibleYieldRows:L,edibleMuRows:E,typeTownRows:C,levelTownRows:Y.length?Y:q,minTownRows:J});return b({core:I,top:[I[0],I[1],{key:"wetland-level-1-area",name:"1级湿地面积",value:V==null?void 0:V.value,unit:(V==null?void 0:V.unit)||"万亩"}].filter(Boolean)},ae)}function Yn(e={}){const n=Object.values(e.layerPanels||{}).flatMap(a=>[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]]);return[...e.leftPanels||[],...e.rightPanels||[],...n]}function Kn(e,n=[]){const a=new Set(n);return Yn(e).find(t=>a.has(t==null?void 0:t.key))||null}function te(e,n,a,t,r,s={}){const l=Kn(e,n);return b(h(b({},l||{}),{key:a,title:t,type:r||(l==null?void 0:l.type)||"rank",rows:(l==null?void 0:l.rows)||[],span:1}),s)}function ue(e,n=[]){return[...(e==null?void 0:e.top)||[],...(e==null?void 0:e.core)||[]].find(t=>n.some(r=>(t==null?void 0:t.key)===r||String((t==null?void 0:t.name)||"").includes(r)))||null}function On(e,n,a){var W,x,L,E,$;const t=ue(e,["grassland-area","grassland-total-area","草地面积"]),r=ue(n,["wetland-area","湿地面积"]),s=ue(a,["woodland-area","林地总面积"]),[l,o]=Me(Z,637.13,119.31),i=ue(e,["basic-grassland","basic-grassland-area","基本草原"]),u=ue(e,["general-grassland","general-grassland-area","一般草原"]),c=D([{key:"overview-basic-grassland",name:"基本草原",value:w((W=i==null?void 0:i.value)!=null?W:l),unit:(i==null?void 0:i.unit)||"万亩",color:"#24F6C4"},{key:"overview-general-grassland",name:"一般草原",value:w((x=u==null?void 0:u.value)!=null?x:o),unit:(u==null?void 0:u.unit)||"万亩",color:"#FFE06B"}]),v=D([{key:"overview-grassland-area",name:"草地资源",value:w((L=t==null?void 0:t.value)!=null?L:Z),unit:(t==null?void 0:t.unit)||"万亩",color:"#8AE611"},{key:"overview-wetland-area",name:"湿地资源",value:w((E=r==null?void 0:r.value)!=null?E:B),unit:(r==null?void 0:r.unit)||"万亩",color:"#32DCFF"},{key:"overview-woodland-area",name:"林地资源",value:w(($=s==null?void 0:s.value)!=null?$:un),unit:(s==null?void 0:s.unit)||"万亩",color:"#2BD17E"}]),m=[te(e,["grassland-town"],"overview-grassland-distribution","草地分布","column",{variant:"plain"}),te(n,["wetland-town-area"],"overview-wetland-distribution","湿地分布","column",{variant:"water"}),te(a,["woodland-town"],"overview-woodland-distribution","林地分布","column",{variant:"plain",lineOverlay:!0}),te(e,["grassland-forage-capacity"],"overview-forage-supply","饲草供给","bar",{variant:"capacity"})],y=[p("overview-basic-general","基本/一般草原",c,"donut",{span:1,variant:"ring"}),te(a,["woodland-quality-level","woodland-quality"],"overview-woodland-quality","林地质量","heat",{limit:6}),te(n,["wetland-type"],"overview-wetland-type","湿地类型结构","rose"),p("overview-resource-area","林草湿面积构成",v,"structure",{span:1})],T=[{key:"overview-resource-area-total",name:"林草湿面积",value:w(O(v)),unit:"万亩"},h(b({},v[0]),{name:"草地面积"}),h(b({},v[1]),{name:"湿地面积"}),h(b({},v[2]),{name:"林地面积"})];return{status:[e,n,a].some(C=>(C==null?void 0:C.status)==="error")?"fallback":"success",core:T,top:T,leftPanels:m,rightPanels:y,left:m[0],right:y[0]}}function ke(e,n){return f(this,null,function*(){var a;try{if(e==="overview"){const[t,r,s]=yield Promise.all([ke("grassland",""),ke("wetland",""),ke("woodland","")]);return On(t,r,s)}if(e==="woodland"){const[t,r,s,l,o]=yield Promise.all([Q("/woodland/distribution").then(g),R(()=>f(this,null,function*(){return g(yield Q("/woodland/types"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/protection"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/quality"))}),{}),R(()=>f(this,null,function*(){return g(yield Q("/woodland/ownership"))}),{})]),i=ne(wn(t),e),u=d((t==null?void 0:t.core)||(t==null?void 0:t.summary)||{},["totalAreaWanMu","total_area_wan_mu","areaWanMu","area_wan_mu"]),c=d((s==null?void 0:s.summary)||{},["publicAreaWanMu","public_area_wan_mu"]),v=[i[0],{key:"woodland-public-area",name:"公益林面积",value:w(c),unit:"万亩"},{key:"woodland-public-rate",name:"公益林占比",value:w((a=d((s==null?void 0:s.summary)||{},["publicAreaPercent","public_area_percent"]))!=null?a:G(c,u)),unit:"%"}].filter(Boolean),m=k((t==null?void 0:t.areaDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),y=se(k((r==null?void 0:r.typeStats)||(t==null?void 0:t.typeDistribution)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),{limit:4,minPercent:1,otherName:"其他林地"}),N=k((t==null?void 0:t.patchScale)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>ve(M,u)}),T=k((s==null?void 0:s.protectionLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),W=k((l==null?void 0:l.speciesRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),x=k((o==null?void 0:o.ownerRanks)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,u)}),L=k((o==null?void 0:o.landOwnerships)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),E=k((s==null?void 0:s.forestTypes)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),$=k((s==null?void 0:s.manageLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],max:6,extra:j}),C=k((s==null?void 0:s.regionRanks)||[],{nameKeys:["regionName","name","townName"],valueKeys:["areaWanMu","value"],max:6,extra:M=>ve(M,c)}),q=k((l==null?void 0:l.origins)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),Y=k((l==null?void 0:l.ageGroups)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),J=k((l==null?void 0:l.canopyLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:M=>{const X=w(d(M,["avgCanopy","avg_canopy"]));return X!==void 0?`均值 ${X}`:j(M)}}),S=k((l==null?void 0:l.qualityLevels)||[],{nameKeys:["name"],valueKeys:["areaWanMu","value"],extra:j}),I=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName","name"],valueKeys:["areaWanMu","value"]}).slice(0,6),V=Ue({townRows:m,typeRows:y,scaleRows:N,protectionRows:T,ownershipRows:L,qualityRows:W,originRows:q,ageRows:Y,canopyRows:J,forestTypeRows:E,manageLevelRows:$,regionRows:C,ownerRows:x,typeTownRows:I,qualityLevelRows:S}),ae=b({status:"success",core:i,top:v},V);return ie(ae,e,n)}if(e==="grassland"){const[t,r,s,l,o,i,u,c,v]=yield Promise.all([P("/basic_grassland/overview").then(g),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/yieldProportion"))}),{}),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return En()}),We()),R(()=>f(this,null,function*(){return g(yield P("/grassland_grass_type/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_health/proportion"))})),R(()=>f(this,null,function*(){return g(yield P("/grassland_yield/edibleXcDistribution"))}))]),m=o.levelRows||[],y=ne(fn(t),e),N=ge(s||[],l||[],{showMuYieldExtra:!1}),T=Bn(r,N),W=k(l||[],{nameKeys:["areaName","name"],valueKeys:["yield","value"],unit:d(l==null?void 0:l[0],["unit"])||"斤"}),x=k((t==null?void 0:t.townStats)||[],{nameKeys:["name"],valueKeys:["totalAreaWanMu"]}),L=Re(Qe(i||[],["name"]),{nameKeys:["name"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:Se}),E=Re(u||[],{nameKeys:["name","level"],valueKeys:["value","areaWanMu","acreage"],unit:"万亩",nameTransform:In}),$=Re(c||[],{nameKeys:["health","name"],valueKeys:["acreage","value","areaWanMu"],unit:"万亩",nameTransform:zn}),C=ge(v||[],[],{showMuYieldExtra:!1}),q=Ze({core:y,townRows:x,grassTypeRows:L,grassLevelRows:E,healthRows:$,productivityRows:W,edibleYieldRows:C,forageRows:Je(T,N),degradationRows:m}),Y=h(b({status:"success"},q),{top:He(y,T,N)});return ie(Y,e,n)}if(e==="wetland"){const[t,r,s,l,o,i,u,c,v,m,y,N]=yield Promise.all([yn([()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland"}))}),()=>f(this,null,function*(){return g(yield P("/index/dataItem",{group:"wetland_grassland_level"}))})]),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/muYieldDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/areaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaProportion"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/edibleXcMuDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grassland_level/distribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_grass_type_copy/minTypeAreaDistribution"))})),R(()=>f(this,null,function*(){return g(yield P("/wetland_yield/yieldProportion"))}),{})]),T=Gn(t,{typeRows:r,yieldRows:s,muYieldRows:l,levelRows:o,minTypeRows:i,edibleRows:u,edibleMuRows:c,typeDistributionRows:v,levelDistributionRows:m,minTypeDistributionRows:y,yieldSummary:N}),W=h(b({status:"success"},T),{left:T.leftPanels[0],right:T.rightPanels[0]});return ie(W,e,n)}return ze(e,n)}catch(t){return h(b({},ze(e,n)),{status:"error",error:t})}})}function Hn(e,n,a=null){return f(this,null,function*(){try{const t=yield Tn(e,n,a);return t||(e==="woodland"?n==="woodland-protection"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"公益林面积排行",cqlFilter:"gjgyl_bhdj IN ('1','2')"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/protection")),s=Te((r==null?void 0:r.regionRanks)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"公益林面积排行",unit:"万亩",rows:s,note:"按公益林村级榜单汇总到乡镇"})})):n==="woodland-type"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地类型面积排行"}).catch(()=>f(this,null,function*(){const r=g(yield Q("/woodland/types")),s=Te((r==null?void 0:r.townComposition)||[],{nameKeys:["townName"],valueKeys:["areaWanMu"],unit:"万亩"});return H({topicKey:e,layerKey:n,title:"林地类型面积排行",unit:"万亩",rows:s,note:"按林地类型组成汇总到乡镇"})})):n==="woodland-quality"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地质量面积排行",cqlFilter:"zl_dj IS NOT NULL"}):n==="woodland-ownership"?yield fe({topicKey:e,layerKey:n,layerName:"ne:t_woodland_2023",title:"林地权属面积排行",cqlFilter:"ld_qs IS NOT NULL"}):yield pn(e,n,"林地面积排行"):e==="grassland"?n==="basic-grassland"?yield Be(e,n,"basicAreaWanMu","基本草原面积排行"):n==="grassland-level"?yield ye(e,n,"/grassland_yield/muYieldDistribution","草地亩产排行","斤"):yield Be(e,n,"totalAreaWanMu","草地面积排行"):e==="wetland"?n==="wetland-level"?yield ye(e,n,"/wetland_yield/muYieldDistribution","湿地亩产排行","斤"):n==="wetland-type"?yield ye(e,n,"/wetland_yield/edibleXcDistribution","可食鲜草产量排行","万吨"):yield ye(e,n,"/wetland_yield/distribution","湿地生产力排行","万吨"):H({topicKey:e,layerKey:n,title:"乡镇统计排行",rows:[]}))}catch(t){return{status:"error",topicKey:e,layerKey:n,title:"乡镇统计排行",unit:"",rows:[],error:t}}})}export{jn as a,Hn as b,Un as c,ke as g}; diff --git a/docs/assets/park-ee0533e0-balabala-1784045078568.png b/docs/assets/park-ee0533e0-balabala-1784074877048.png similarity index 100% rename from docs/assets/park-ee0533e0-balabala-1784045078568.png rename to docs/assets/park-ee0533e0-balabala-1784074877048.png diff --git a/docs/assets/pathLine2-d4134d4b-balabala-1784045078568.png b/docs/assets/pathLine2-d4134d4b-balabala-1784074877048.png similarity index 100% rename from docs/assets/pathLine2-d4134d4b-balabala-1784045078568.png rename to docs/assets/pathLine2-d4134d4b-balabala-1784074877048.png diff --git a/docs/assets/right-kuang-b1937caf-balabala-1784045078568.svg b/docs/assets/right-kuang-b1937caf-balabala-1784074877048.svg similarity index 100% rename from docs/assets/right-kuang-b1937caf-balabala-1784045078568.svg rename to docs/assets/right-kuang-b1937caf-balabala-1784074877048.svg diff --git a/docs/assets/ring2-a1b91808-balabala-1784045078568.png b/docs/assets/ring2-a1b91808-balabala-1784074877048.png similarity index 100% rename from docs/assets/ring2-a1b91808-balabala-1784045078568.png rename to docs/assets/ring2-a1b91808-balabala-1784074877048.png diff --git a/docs/assets/ring3-fe0f60d7-balabala-1784045078568.png b/docs/assets/ring3-fe0f60d7-balabala-1784074877048.png similarity index 100% rename from docs/assets/ring3-fe0f60d7-balabala-1784045078568.png rename to docs/assets/ring3-fe0f60d7-balabala-1784074877048.png diff --git a/docs/assets/ring4-f2e324d6-balabala-1784045078568.png b/docs/assets/ring4-f2e324d6-balabala-1784074877048.png similarity index 100% rename from docs/assets/ring4-f2e324d6-balabala-1784045078568.png rename to docs/assets/ring4-f2e324d6-balabala-1784074877048.png diff --git a/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784045078568.png b/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784074877048.png similarity index 100% rename from docs/assets/rotationBorder1-2ce8e0ef-balabala-1784045078568.png rename to docs/assets/rotationBorder1-2ce8e0ef-balabala-1784074877048.png diff --git a/docs/assets/rotationBorder2-7496b968-balabala-1784045078568.png b/docs/assets/rotationBorder2-7496b968-balabala-1784074877048.png similarity index 100% rename from docs/assets/rotationBorder2-7496b968-balabala-1784045078568.png rename to docs/assets/rotationBorder2-7496b968-balabala-1784074877048.png diff --git a/docs/assets/saoguang-ccf84a88-balabala-1784045078568.svg b/docs/assets/saoguang-ccf84a88-balabala-1784074877048.svg similarity index 100% rename from docs/assets/saoguang-ccf84a88-balabala-1784045078568.svg rename to docs/assets/saoguang-ccf84a88-balabala-1784074877048.svg diff --git a/docs/assets/screen2Standard-98cd5b6c-1784045078568.js b/docs/assets/screen2Standard-9c6af3a2-1784074877048.js similarity index 99% rename from docs/assets/screen2Standard-98cd5b6c-1784045078568.js rename to docs/assets/screen2Standard-9c6af3a2-1784074877048.js index d68c00f..7f35dfa 100644 --- a/docs/assets/screen2Standard-98cd5b6c-1784045078568.js +++ b/docs/assets/screen2Standard-9c6af3a2-1784074877048.js @@ -1,4 +1,4 @@ -var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1784045078568.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784045078568.js";/** +var Jc=Object.defineProperty,$c=Object.defineProperties;var Qc=Object.getOwnPropertyDescriptors;var Na=Object.getOwnPropertySymbols;var th=Object.prototype.hasOwnProperty,eh=Object.prototype.propertyIsEnumerable;var hs=Math.pow,Ua=(i,t,e)=>t in i?Jc(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,Oa=(i,t)=>{for(var e in t||(t={}))th.call(t,e)&&Ua(i,e,t[e]);if(Na)for(var e of Na(t))eh.call(t,e)&&Ua(i,e,t[e]);return i},Fa=(i,t)=>$c(i,Qc(t));var Ba=(i,t,e)=>new Promise((n,r)=>{var s=l=>{try{a(e.next(l))}catch(c){r(c)}},o=l=>{try{a(e.throw(l))}catch(c){r(c)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(s,o);a((e=e.apply(i,t)).next())});import{g as Pn}from"./index-e9f36657-1784074877048.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784074877048.js";/** * @license * Copyright 2010-2023 Three.js Authors * SPDX-License-Identifier: MIT @@ -3761,4 +3761,4 @@ void main() { } -}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1784045078568.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1784045078568.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1784045078568.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),!(this.data.length<2)&&(this.timer=window.setInterval(()=>{this.loopChange()},this.delay))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; +}`;class Ag{constructor(){this.texture=null,this.mesh=null,this.depthNear=0,this.depthFar=0}init(t,e,n){if(this.texture===null){const r=new xe,s=t.properties.get(r);s.__webglTexture=e.texture,(e.depthNear!=n.depthNear||e.depthFar!=n.depthFar)&&(this.depthNear=e.depthNear,this.depthFar=e.depthFar),this.texture=r}}render(t,e){if(this.texture!==null){if(this.mesh===null){const n=e.cameras[0].viewport,r=new An({extensions:{fragDepth:!0},vertexShader:bg,fragmentShader:Tg,uniforms:{depthColor:{value:this.texture},depthWidth:{value:n.z},depthHeight:{value:n.w}}});this.mesh=new Ce(new Qi(20,20),r)}t.render(this.mesh,e)}}reset(){this.texture=null,this.mesh=null}}class wg extends Xn{constructor(t,e){super();const n=this;let r=null,s=1,o=null,a="local-floor",l=1,c=null,h=null,u=null,d=null,m=null,g=null;const x=new Ag,f=e.getContextAttributes();let p=null,E=null;const _=[],b=[],I=new tt;let L=null;const P=new Re;P.layers.enable(1),P.viewport=new ee;const V=new Re;V.layers.enable(2),V.viewport=new ee;const lt=[P,V],y=new Sg;y.layers.enable(1),y.layers.enable(2);let A=null,Z=null;this.cameraAutoUpdate=!0,this.enabled=!1,this.isPresenting=!1,this.getController=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getTargetRaySpace()},this.getControllerGrip=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getGripSpace()},this.getHand=function(G){let nt=_[G];return nt===void 0&&(nt=new Hs,_[G]=nt),nt.getHandSpace()};function rt(G){const nt=b.indexOf(G.inputSource);if(nt===-1)return;const gt=_[nt];gt!==void 0&&(gt.update(G.inputSource,G.frame,c||o),gt.dispatchEvent({type:G.type,data:G.inputSource}))}function D(){r.removeEventListener("select",rt),r.removeEventListener("selectstart",rt),r.removeEventListener("selectend",rt),r.removeEventListener("squeeze",rt),r.removeEventListener("squeezestart",rt),r.removeEventListener("squeezeend",rt),r.removeEventListener("end",D),r.removeEventListener("inputsourceschange",z);for(let G=0;G<_.length;G++){const nt=b[G];nt!==null&&(b[G]=null,_[G].disconnect(nt))}A=null,Z=null,x.reset(),t.setRenderTarget(p),m=null,d=null,u=null,r=null,E=null,Lt.stop(),n.isPresenting=!1,t.setPixelRatio(L),t.setSize(I.width,I.height,!1),n.dispatchEvent({type:"sessionend"})}this.setFramebufferScaleFactor=function(G){s=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change framebuffer scale while presenting.")},this.setReferenceSpaceType=function(G){a=G,n.isPresenting===!0&&console.warn("THREE.WebXRManager: Cannot change reference space type while presenting.")},this.getReferenceSpace=function(){return c||o},this.setReferenceSpace=function(G){c=G},this.getBaseLayer=function(){return d!==null?d:m},this.getBinding=function(){return u},this.getFrame=function(){return g},this.getSession=function(){return r},this.setSession=function(G){return Ba(this,null,function*(){if(r=G,r!==null){if(p=t.getRenderTarget(),r.addEventListener("select",rt),r.addEventListener("selectstart",rt),r.addEventListener("selectend",rt),r.addEventListener("squeeze",rt),r.addEventListener("squeezestart",rt),r.addEventListener("squeezeend",rt),r.addEventListener("end",D),r.addEventListener("inputsourceschange",z),f.xrCompatible!==!0&&(yield e.makeXRCompatible()),L=t.getPixelRatio(),t.getSize(I),r.renderState.layers===void 0||t.capabilities.isWebGL2===!1){const nt={antialias:r.renderState.layers===void 0?f.antialias:!0,alpha:!0,depth:f.depth,stencil:f.stencil,framebufferScaleFactor:s};m=new XRWebGLLayer(r,e,nt),r.updateRenderState({baseLayer:m}),t.setPixelRatio(1),t.setSize(m.framebufferWidth,m.framebufferHeight,!1),E=new kn(m.framebufferWidth,m.framebufferHeight,{format:Oe,type:Sn,colorSpace:t.outputColorSpace,stencilBuffer:f.stencil})}else{let nt=null,gt=null,Mt=null;f.depth&&(Mt=f.stencil?e.DEPTH24_STENCIL8:e.DEPTH_COMPONENT24,nt=f.stencil?Si:Hn,gt=f.stencil?zn:vn);const bt={colorFormat:e.RGBA8,depthFormat:Mt,scaleFactor:s};u=new XRWebGLBinding(r,e),d=u.createProjectionLayer(bt),r.updateRenderState({layers:[d]}),t.setPixelRatio(1),t.setSize(d.textureWidth,d.textureHeight,!1),E=new kn(d.textureWidth,d.textureHeight,{format:Oe,type:Sn,depthTexture:new _c(d.textureWidth,d.textureHeight,gt,void 0,void 0,void 0,void 0,void 0,void 0,nt),stencilBuffer:f.stencil,colorSpace:t.outputColorSpace,samples:f.antialias?4:0});const xt=t.properties.get(E);xt.__ignoreDepthValues=d.ignoreDepthValues}E.isXRRenderTarget=!0,this.setFoveation(l),c=null,o=yield r.requestReferenceSpace(a),Lt.setContext(r),Lt.start(),n.isPresenting=!0,n.dispatchEvent({type:"sessionstart"})}})},this.getEnvironmentBlendMode=function(){if(r!==null)return r.environmentBlendMode};function z(G){for(let nt=0;nt=0&&(b[Mt]=null,_[Mt].disconnect(gt))}for(let nt=0;nt=b.length){b.push(gt),Mt=xt;break}else if(b[xt]===null){b[xt]=gt,Mt=xt;break}if(Mt===-1)break}const bt=_[Mt];bt&&bt.connect(gt)}}const O=new C,Y=new C;function X(G,nt,gt){O.setFromMatrixPosition(nt.matrixWorld),Y.setFromMatrixPosition(gt.matrixWorld);const Mt=O.distanceTo(Y),bt=nt.projectionMatrix.elements,xt=gt.projectionMatrix.elements,Ot=bt[14]/(bt[10]-1),At=bt[14]/(bt[10]+1),R=(bt[9]+1)/bt[5],ct=(bt[9]-1)/bt[5],W=(bt[8]-1)/bt[0],at=(xt[8]+1)/xt[0],q=Ot*W,Et=Ot*at,ft=Mt/(-W+at),M=ft*-W;nt.matrixWorld.decompose(G.position,G.quaternion,G.scale),G.translateX(M),G.translateZ(ft),G.matrixWorld.compose(G.position,G.quaternion,G.scale),G.matrixWorldInverse.copy(G.matrixWorld).invert();const v=Ot+ft,N=At+ft,et=q-M,J=Et+(Mt-M),j=R*At/N*v,yt=ct*At/N*v;G.projectionMatrix.makePerspective(et,J,j,yt,v,N),G.projectionMatrixInverse.copy(G.projectionMatrix).invert()}function k(G,nt){nt===null?G.matrixWorld.copy(G.matrix):G.matrixWorld.multiplyMatrices(nt.matrixWorld,G.matrix),G.matrixWorldInverse.copy(G.matrixWorld).invert()}this.updateCamera=function(G){if(r===null)return;x.texture!==null&&(G.near=x.depthNear,G.far=x.depthFar),y.near=V.near=P.near=G.near,y.far=V.far=P.far=G.far,(A!==y.near||Z!==y.far)&&(r.updateRenderState({depthNear:y.near,depthFar:y.far}),A=y.near,Z=y.far,P.near=A,P.far=Z,V.near=A,V.far=Z,P.updateProjectionMatrix(),V.updateProjectionMatrix(),G.updateProjectionMatrix());const nt=G.parent,gt=y.cameras;k(y,nt);for(let Mt=0;Mt0&&(f.alphaTest.value=p.alphaTest);const E=t.get(p).envMap;if(E&&(f.envMap.value=E,f.flipEnvMap.value=E.isCubeTexture&&E.isRenderTargetTexture===!1?-1:1,f.reflectivity.value=p.reflectivity,f.ior.value=p.ior,f.refractionRatio.value=p.refractionRatio),p.lightMap){f.lightMap.value=p.lightMap;const _=i._useLegacyLights===!0?Math.PI:1;f.lightMapIntensity.value=p.lightMapIntensity*_,e(p.lightMap,f.lightMapTransform)}p.aoMap&&(f.aoMap.value=p.aoMap,f.aoMapIntensity.value=p.aoMapIntensity,e(p.aoMap,f.aoMapTransform))}function o(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform))}function a(f,p){f.dashSize.value=p.dashSize,f.totalSize.value=p.dashSize+p.gapSize,f.scale.value=p.scale}function l(f,p,E,_){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.size.value=p.size*E,f.scale.value=_*.5,p.map&&(f.map.value=p.map,e(p.map,f.uvTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function c(f,p){f.diffuse.value.copy(p.color),f.opacity.value=p.opacity,f.rotation.value=p.rotation,p.map&&(f.map.value=p.map,e(p.map,f.mapTransform)),p.alphaMap&&(f.alphaMap.value=p.alphaMap,e(p.alphaMap,f.alphaMapTransform)),p.alphaTest>0&&(f.alphaTest.value=p.alphaTest)}function h(f,p){f.specular.value.copy(p.specular),f.shininess.value=Math.max(p.shininess,1e-4)}function u(f,p){p.gradientMap&&(f.gradientMap.value=p.gradientMap)}function d(f,p){f.metalness.value=p.metalness,p.metalnessMap&&(f.metalnessMap.value=p.metalnessMap,e(p.metalnessMap,f.metalnessMapTransform)),f.roughness.value=p.roughness,p.roughnessMap&&(f.roughnessMap.value=p.roughnessMap,e(p.roughnessMap,f.roughnessMapTransform)),t.get(p).envMap&&(f.envMapIntensity.value=p.envMapIntensity)}function m(f,p,E){f.ior.value=p.ior,p.sheen>0&&(f.sheenColor.value.copy(p.sheenColor).multiplyScalar(p.sheen),f.sheenRoughness.value=p.sheenRoughness,p.sheenColorMap&&(f.sheenColorMap.value=p.sheenColorMap,e(p.sheenColorMap,f.sheenColorMapTransform)),p.sheenRoughnessMap&&(f.sheenRoughnessMap.value=p.sheenRoughnessMap,e(p.sheenRoughnessMap,f.sheenRoughnessMapTransform))),p.clearcoat>0&&(f.clearcoat.value=p.clearcoat,f.clearcoatRoughness.value=p.clearcoatRoughness,p.clearcoatMap&&(f.clearcoatMap.value=p.clearcoatMap,e(p.clearcoatMap,f.clearcoatMapTransform)),p.clearcoatRoughnessMap&&(f.clearcoatRoughnessMap.value=p.clearcoatRoughnessMap,e(p.clearcoatRoughnessMap,f.clearcoatRoughnessMapTransform)),p.clearcoatNormalMap&&(f.clearcoatNormalMap.value=p.clearcoatNormalMap,e(p.clearcoatNormalMap,f.clearcoatNormalMapTransform),f.clearcoatNormalScale.value.copy(p.clearcoatNormalScale),p.side===Pe&&f.clearcoatNormalScale.value.negate())),p.iridescence>0&&(f.iridescence.value=p.iridescence,f.iridescenceIOR.value=p.iridescenceIOR,f.iridescenceThicknessMinimum.value=p.iridescenceThicknessRange[0],f.iridescenceThicknessMaximum.value=p.iridescenceThicknessRange[1],p.iridescenceMap&&(f.iridescenceMap.value=p.iridescenceMap,e(p.iridescenceMap,f.iridescenceMapTransform)),p.iridescenceThicknessMap&&(f.iridescenceThicknessMap.value=p.iridescenceThicknessMap,e(p.iridescenceThicknessMap,f.iridescenceThicknessMapTransform))),p.transmission>0&&(f.transmission.value=p.transmission,f.transmissionSamplerMap.value=E.texture,f.transmissionSamplerSize.value.set(E.width,E.height),p.transmissionMap&&(f.transmissionMap.value=p.transmissionMap,e(p.transmissionMap,f.transmissionMapTransform)),f.thickness.value=p.thickness,p.thicknessMap&&(f.thicknessMap.value=p.thicknessMap,e(p.thicknessMap,f.thicknessMapTransform)),f.attenuationDistance.value=p.attenuationDistance,f.attenuationColor.value.copy(p.attenuationColor)),p.anisotropy>0&&(f.anisotropyVector.value.set(p.anisotropy*Math.cos(p.anisotropyRotation),p.anisotropy*Math.sin(p.anisotropyRotation)),p.anisotropyMap&&(f.anisotropyMap.value=p.anisotropyMap,e(p.anisotropyMap,f.anisotropyMapTransform))),f.specularIntensity.value=p.specularIntensity,f.specularColor.value.copy(p.specularColor),p.specularColorMap&&(f.specularColorMap.value=p.specularColorMap,e(p.specularColorMap,f.specularColorMapTransform)),p.specularIntensityMap&&(f.specularIntensityMap.value=p.specularIntensityMap,e(p.specularIntensityMap,f.specularIntensityMapTransform))}function g(f,p){p.matcap&&(f.matcap.value=p.matcap)}function x(f,p){const E=t.get(p).light;f.referencePosition.value.setFromMatrixPosition(E.matrixWorld),f.nearDistance.value=E.shadow.camera.near,f.farDistance.value=E.shadow.camera.far}return{refreshFogUniforms:n,refreshMaterialUniforms:r}}function Cg(i,t,e,n){let r={},s={},o=[];const a=e.isWebGL2?i.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0;function l(E,_){const b=_.program;n.uniformBlockBinding(E,b)}function c(E,_){let b=r[E.id];b===void 0&&(g(E),b=h(E),r[E.id]=b,E.addEventListener("dispose",f));const I=_.program;n.updateUBOMapping(E,I);const L=t.render.frame;s[E.id]!==L&&(d(E),s[E.id]=L)}function h(E){const _=u();E.__bindingPointIndex=_;const b=i.createBuffer(),I=E.__size,L=E.usage;return i.bindBuffer(i.UNIFORM_BUFFER,b),i.bufferData(i.UNIFORM_BUFFER,I,L),i.bindBuffer(i.UNIFORM_BUFFER,null),i.bindBufferBase(i.UNIFORM_BUFFER,_,b),b}function u(){for(let E=0;E0&&(b+=I-L),E.__size=b,E.__cache={},this}function x(E){const _={boundary:0,storage:0};return typeof E=="number"||typeof E=="boolean"?(_.boundary=4,_.storage=4):E.isVector2?(_.boundary=8,_.storage=8):E.isVector3||E.isColor?(_.boundary=16,_.storage=12):E.isVector4?(_.boundary=16,_.storage=16):E.isMatrix3?(_.boundary=48,_.storage=48):E.isMatrix4?(_.boundary=64,_.storage=64):E.isTexture?console.warn("THREE.WebGLRenderer: Texture samplers can not be part of an uniforms group."):console.warn("THREE.WebGLRenderer: Unsupported uniform value type.",E),_}function f(E){const _=E.target;_.removeEventListener("dispose",f);const b=o.indexOf(_.__bindingPointIndex);o.splice(b,1),i.deleteBuffer(r[_.id]),delete r[_.id],delete s[_.id]}function p(){for(const E in r)i.deleteBuffer(r[E]);o=[],r={},s={}}return{bind:l,update:c,dispose:p}}class Ec{constructor(t={}){const{canvas:e=Mu(),context:n=null,depth:r=!0,stencil:s=!0,alpha:o=!1,antialias:a=!1,premultipliedAlpha:l=!0,preserveDrawingBuffer:c=!1,powerPreference:h="default",failIfMajorPerformanceCaveat:u=!1}=t;this.isWebGLRenderer=!0;let d;n!==null?d=n.getContextAttributes().alpha:d=o;const m=new Uint32Array(4),g=new Int32Array(4);let x=null,f=null;const p=[],E=[];this.domElement=e,this.debug={checkShaderErrors:!0,onShaderError:null},this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this._outputColorSpace=ve,this._useLegacyLights=!1,this.toneMapping=Mn,this.toneMappingExposure=1;const _=this;let b=!1,I=0,L=0,P=null,V=-1,lt=null;const y=new ee,A=new ee;let Z=null;const rt=new Ut(0);let D=0,z=e.width,O=e.height,Y=1,X=null,k=null;const $=new ee(0,0,z,O),K=new ee(0,0,z,O);let mt=!1;const Lt=new va;let G=!1,nt=!1,gt=null;const Mt=new Yt,bt=new tt,xt=new C,Ot={background:null,fog:null,environment:null,overrideMaterial:null,isScene:!0};function At(){return P===null?Y:1}let R=n;function ct(S,U){for(let B=0;B{function vt(){if(H.forEach(function(Tt){ft.get(Tt).currentProgram.isReady()&&H.delete(Tt)}),H.size===0){F(S);return}setTimeout(vt,10)}W.get("KHR_parallel_shader_compile")!==null?vt():setTimeout(vt,10)})};let qt=null;function te(S){qt&&qt(S)}function ge(){le.stop()}function Kt(){le.start()}const le=new mc;le.setAnimationLoop(te),typeof self!="undefined"&&le.setContext(self),this.setAnimationLoop=function(S){qt=S,dt.setAnimationLoop(S),S===null?le.stop():le.start()},dt.addEventListener("sessionstart",ge),dt.addEventListener("sessionend",Kt),this.render=function(S,U){if(U!==void 0&&U.isCamera!==!0){console.error("THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(b===!0)return;S.matrixWorldAutoUpdate===!0&&S.updateMatrixWorld(),U.parent===null&&U.matrixWorldAutoUpdate===!0&&U.updateMatrixWorld(),dt.enabled===!0&&dt.isPresenting===!0&&(dt.cameraAutoUpdate===!0&&dt.updateCamera(U),U=dt.getCamera()),S.isScene===!0&&S.onBeforeRender(_,S,U,P),f=Ct.get(S,E.length),f.init(),E.push(f),Mt.multiplyMatrices(U.projectionMatrix,U.matrixWorldInverse),Lt.setFromProjectionMatrix(Mt),nt=this.localClippingEnabled,G=Ft.init(this.clippingPlanes,nt),x=_t.get(S,p.length),x.init(),p.push(x),be(S,U,0,_.sortObjects),x.finish(),_.sortObjects===!0&&x.sort(X,k),this.info.render.frame++,G===!0&&Ft.beginShadows();const B=f.state.shadowsArray;if(Q.render(B,S,U),G===!0&&Ft.endShadows(),this.info.autoReset===!0&&this.info.reset(),(dt.enabled===!1||dt.isPresenting===!1||dt.hasDepthSensing()===!1)&&jt.render(x,S),f.setupLights(_._useLegacyLights),U.isArrayCamera){const H=U.cameras;for(let F=0,vt=H.length;F0?f=E[E.length-1]:f=null,p.pop(),p.length>0?x=p[p.length-1]:x=null};function be(S,U,B,H){if(S.visible===!1)return;if(S.layers.test(U.layers)){if(S.isGroup)B=S.renderOrder;else if(S.isLOD)S.autoUpdate===!0&&S.update(U);else if(S.isLight)f.pushLight(S),S.castShadow&&f.pushShadow(S);else if(S.isSprite){if(!S.frustumCulled||Lt.intersectsSprite(S)){H&&xt.setFromMatrixPosition(S.matrixWorld).applyMatrix4(Mt);const Tt=j.update(S),Dt=S.material;Dt.visible&&x.push(S,Tt,Dt,B,xt.z,null)}}else if((S.isMesh||S.isLine||S.isPoints)&&(!S.frustumCulled||Lt.intersectsObject(S))){const Tt=j.update(S),Dt=S.material;if(H&&(S.boundingSphere!==void 0?(S.boundingSphere===null&&S.computeBoundingSphere(),xt.copy(S.boundingSphere.center)):(Tt.boundingSphere===null&&Tt.computeBoundingSphere(),xt.copy(Tt.boundingSphere.center)),xt.applyMatrix4(S.matrixWorld).applyMatrix4(Mt)),Array.isArray(Dt)){const Nt=Tt.groups;for(let kt=0,Bt=Nt.length;kt0&&qc(F,vt,U,B),H&&q.viewport(y.copy(H)),F.length>0&&nr(F,U,B),vt.length>0&&nr(vt,U,B),Tt.length>0&&nr(Tt,U,B),q.buffers.depth.setTest(!0),q.buffers.depth.setMask(!0),q.buffers.color.setMask(!0),q.setPolygonOffset(!1)}function qc(S,U,B,H){if((B.isScene===!0?B.overrideMaterial:null)!==null)return;const vt=at.isWebGL2;gt===null&&(gt=new kn(1,1,{generateMipmaps:!0,type:W.has("EXT_color_buffer_half_float")?Yi:Sn,minFilter:Bn,samples:vt?4:0})),_.getDrawingBufferSize(bt),vt?gt.setSize(bt.x,bt.y):gt.setSize(jr(bt.x),jr(bt.y));const Tt=_.getRenderTarget();_.setRenderTarget(gt),_.getClearColor(rt),D=_.getClearAlpha(),D<1&&_.setClearColor(16777215,.5),_.clear();const Dt=_.toneMapping;_.toneMapping=Mn,nr(S,B,H),M.updateMultisampleRenderTarget(gt),M.updateRenderTargetMipmap(gt);let Nt=!1;for(let kt=0,Bt=U.length;kt0),Ht=!!B.morphAttributes.position,ce=!!B.morphAttributes.normal,Le=!!B.morphAttributes.color;let pe=Mn;H.toneMapped&&(P===null||P.isXRRenderTarget===!0)&&(pe=_.toneMapping);const Je=B.morphAttributes.position||B.morphAttributes.normal||B.morphAttributes.color,ie=Je!==void 0?Je.length:0,Wt=ft.get(H),as=f.state.lights;if(G===!0&&(nt===!0||S!==lt)){const Ne=S===lt&&H.id===V;Ft.setState(H,S,Ne)}let se=!1;H.version===Wt.__version?(Wt.needsLights&&Wt.lightsStateVersion!==as.state.version||Wt.outputColorSpace!==Dt||F.isBatchedMesh&&Wt.batching===!1||!F.isBatchedMesh&&Wt.batching===!0||F.isInstancedMesh&&Wt.instancing===!1||!F.isInstancedMesh&&Wt.instancing===!0||F.isSkinnedMesh&&Wt.skinning===!1||!F.isSkinnedMesh&&Wt.skinning===!0||F.isInstancedMesh&&Wt.instancingColor===!0&&F.instanceColor===null||F.isInstancedMesh&&Wt.instancingColor===!1&&F.instanceColor!==null||Wt.envMap!==Nt||H.fog===!0&&Wt.fog!==vt||Wt.numClippingPlanes!==void 0&&(Wt.numClippingPlanes!==Ft.numPlanes||Wt.numIntersection!==Ft.numIntersection)||Wt.vertexAlphas!==kt||Wt.vertexTangents!==Bt||Wt.morphTargets!==Ht||Wt.morphNormals!==ce||Wt.morphColors!==Le||Wt.toneMapping!==pe||at.isWebGL2===!0&&Wt.morphTargetsCount!==ie)&&(se=!0):(se=!0,Wt.__version=H.version);let Rn=Wt.currentProgram;se===!0&&(Rn=ir(H,U,F));let Da=!1,Ci=!1,os=!1;const Me=Rn.getUniforms(),Cn=Wt.uniforms;if(q.useProgram(Rn.program)&&(Da=!0,Ci=!0,os=!0),H.id!==V&&(V=H.id,Ci=!0),Da||lt!==S){Me.setValue(R,"projectionMatrix",S.projectionMatrix),Me.setValue(R,"viewMatrix",S.matrixWorldInverse);const Ne=Me.map.cameraPosition;Ne!==void 0&&Ne.setValue(R,xt.setFromMatrixPosition(S.matrixWorld)),at.logarithmicDepthBuffer&&Me.setValue(R,"logDepthBufFC",2/(Math.log(S.far+1)/Math.LN2)),(H.isMeshPhongMaterial||H.isMeshToonMaterial||H.isMeshLambertMaterial||H.isMeshBasicMaterial||H.isMeshStandardMaterial||H.isShaderMaterial)&&Me.setValue(R,"isOrthographic",S.isOrthographicCamera===!0),lt!==S&&(lt=S,Ci=!0,os=!0)}if(F.isSkinnedMesh){Me.setOptional(R,F,"bindMatrix"),Me.setOptional(R,F,"bindMatrixInverse");const Ne=F.skeleton;Ne&&(at.floatVertexTextures?(Ne.boneTexture===null&&Ne.computeBoneTexture(),Me.setValue(R,"boneTexture",Ne.boneTexture,M)):console.warn("THREE.WebGLRenderer: SkinnedMesh can only be used with WebGL 2. With WebGL 1 OES_texture_float and vertex textures support is required."))}F.isBatchedMesh&&(Me.setOptional(R,F,"batchingTexture"),Me.setValue(R,"batchingTexture",F._matricesTexture,M));const ls=B.morphAttributes;if((ls.position!==void 0||ls.normal!==void 0||ls.color!==void 0&&at.isWebGL2===!0)&&Gt.update(F,B,Rn),(Ci||Wt.receiveShadow!==F.receiveShadow)&&(Wt.receiveShadow=F.receiveShadow,Me.setValue(R,"receiveShadow",F.receiveShadow)),H.isMeshGouraudMaterial&&H.envMap!==null&&(Cn.envMap.value=Nt,Cn.flipEnvMap.value=Nt.isCubeTexture&&Nt.isRenderTargetTexture===!1?-1:1),Ci&&(Me.setValue(R,"toneMappingExposure",_.toneMappingExposure),Wt.needsLights&&jc(Cn,os),vt&&H.fog===!0&&ut.refreshFogUniforms(Cn,vt),ut.refreshMaterialUniforms(Cn,H,Y,O,gt),zr.upload(R,Pa(Wt),Cn,M)),H.isShaderMaterial&&H.uniformsNeedUpdate===!0&&(zr.upload(R,Pa(Wt),Cn,M),H.uniformsNeedUpdate=!1),H.isSpriteMaterial&&Me.setValue(R,"center",F.center),Me.setValue(R,"modelViewMatrix",F.modelViewMatrix),Me.setValue(R,"normalMatrix",F.normalMatrix),Me.setValue(R,"modelMatrix",F.matrixWorld),H.isShaderMaterial||H.isRawShaderMaterial){const Ne=H.uniformsGroups;for(let cs=0,Kc=Ne.length;cs0&&M.useMultisampledRTT(S)===!1?F=ft.get(S).__webglMultisampledFramebuffer:Array.isArray(Bt)?F=Bt[B]:F=Bt,y.copy(S.viewport),A.copy(S.scissor),Z=S.scissorTest}else y.copy($).multiplyScalar(Y).floor(),A.copy(K).multiplyScalar(Y).floor(),Z=mt;if(q.bindFramebuffer(R.FRAMEBUFFER,F)&&at.drawBuffers&&H&&q.drawBuffers(S,F),q.viewport(y),q.scissor(A),q.setScissorTest(Z),vt){const Nt=ft.get(S.texture);R.framebufferTexture2D(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,R.TEXTURE_CUBE_MAP_POSITIVE_X+U,Nt.__webglTexture,B)}else if(Tt){const Nt=ft.get(S.texture),kt=U||0;R.framebufferTextureLayer(R.FRAMEBUFFER,R.COLOR_ATTACHMENT0,Nt.__webglTexture,B||0,kt)}V=-1},this.readRenderTargetPixels=function(S,U,B,H,F,vt,Tt){if(!(S&&S.isWebGLRenderTarget)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.");return}let Dt=ft.get(S).__webglFramebuffer;if(S.isWebGLCubeRenderTarget&&Tt!==void 0&&(Dt=Dt[Tt]),Dt){q.bindFramebuffer(R.FRAMEBUFFER,Dt);try{const Nt=S.texture,kt=Nt.format,Bt=Nt.type;if(kt!==Oe&&pt.convert(kt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_FORMAT)){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.");return}const Ht=Bt===Yi&&(W.has("EXT_color_buffer_half_float")||at.isWebGL2&&W.has("EXT_color_buffer_float"));if(Bt!==Sn&&pt.convert(Bt)!==R.getParameter(R.IMPLEMENTATION_COLOR_READ_TYPE)&&!(Bt===je&&(at.isWebGL2||W.has("OES_texture_float")||W.has("WEBGL_color_buffer_float")))&&!Ht){console.error("THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.");return}U>=0&&U<=S.width-H&&B>=0&&B<=S.height-F&&R.readPixels(U,B,H,F,pt.convert(kt),pt.convert(Bt),vt)}finally{const Nt=P!==null?ft.get(P).__webglFramebuffer:null;q.bindFramebuffer(R.FRAMEBUFFER,Nt)}}},this.copyFramebufferToTexture=function(S,U,B=0){const H=Math.pow(2,-B),F=Math.floor(U.image.width*H),vt=Math.floor(U.image.height*H);M.setTexture2D(U,0),R.copyTexSubImage2D(R.TEXTURE_2D,B,0,0,S.x,S.y,F,vt),q.unbindTexture()},this.copyTextureToTexture=function(S,U,B,H=0){const F=U.image.width,vt=U.image.height,Tt=pt.convert(B.format),Dt=pt.convert(B.type);M.setTexture2D(B,0),R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,B.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,B.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,B.unpackAlignment),U.isDataTexture?R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,F,vt,Tt,Dt,U.image.data):U.isCompressedTexture?R.compressedTexSubImage2D(R.TEXTURE_2D,H,S.x,S.y,U.mipmaps[0].width,U.mipmaps[0].height,Tt,U.mipmaps[0].data):R.texSubImage2D(R.TEXTURE_2D,H,S.x,S.y,Tt,Dt,U.image),H===0&&B.generateMipmaps&&R.generateMipmap(R.TEXTURE_2D),q.unbindTexture()},this.copyTextureToTexture3D=function(S,U,B,H,F=0){if(_.isWebGL1Renderer){console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: can only be used with WebGL2.");return}const vt=S.max.x-S.min.x+1,Tt=S.max.y-S.min.y+1,Dt=S.max.z-S.min.z+1,Nt=pt.convert(H.format),kt=pt.convert(H.type);let Bt;if(H.isData3DTexture)M.setTexture3D(H,0),Bt=R.TEXTURE_3D;else if(H.isDataArrayTexture||H.isCompressedArrayTexture)M.setTexture2DArray(H,0),Bt=R.TEXTURE_2D_ARRAY;else{console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: only supports THREE.DataTexture3D and THREE.DataTexture2DArray.");return}R.pixelStorei(R.UNPACK_FLIP_Y_WEBGL,H.flipY),R.pixelStorei(R.UNPACK_PREMULTIPLY_ALPHA_WEBGL,H.premultiplyAlpha),R.pixelStorei(R.UNPACK_ALIGNMENT,H.unpackAlignment);const Ht=R.getParameter(R.UNPACK_ROW_LENGTH),ce=R.getParameter(R.UNPACK_IMAGE_HEIGHT),Le=R.getParameter(R.UNPACK_SKIP_PIXELS),pe=R.getParameter(R.UNPACK_SKIP_ROWS),Je=R.getParameter(R.UNPACK_SKIP_IMAGES),ie=B.isCompressedTexture?B.mipmaps[F]:B.image;R.pixelStorei(R.UNPACK_ROW_LENGTH,ie.width),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ie.height),R.pixelStorei(R.UNPACK_SKIP_PIXELS,S.min.x),R.pixelStorei(R.UNPACK_SKIP_ROWS,S.min.y),R.pixelStorei(R.UNPACK_SKIP_IMAGES,S.min.z),B.isDataTexture||B.isData3DTexture?R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie.data):B.isCompressedArrayTexture?(console.warn("THREE.WebGLRenderer.copyTextureToTexture3D: untested support for compressed srcTexture."),R.compressedTexSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,ie.data)):R.texSubImage3D(Bt,F,U.x,U.y,U.z,vt,Tt,Dt,Nt,kt,ie),R.pixelStorei(R.UNPACK_ROW_LENGTH,Ht),R.pixelStorei(R.UNPACK_IMAGE_HEIGHT,ce),R.pixelStorei(R.UNPACK_SKIP_PIXELS,Le),R.pixelStorei(R.UNPACK_SKIP_ROWS,pe),R.pixelStorei(R.UNPACK_SKIP_IMAGES,Je),F===0&&H.generateMipmaps&&R.generateMipmap(Bt),q.unbindTexture()},this.initTexture=function(S){S.isCubeTexture?M.setTextureCube(S,0):S.isData3DTexture?M.setTexture3D(S,0):S.isDataArrayTexture||S.isCompressedArrayTexture?M.setTexture2DArray(S,0):M.setTexture2D(S,0),q.unbindTexture()},this.resetState=function(){I=0,L=0,P=null,q.reset(),zt.reset()},typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}get coordinateSystem(){return an}get outputColorSpace(){return this._outputColorSpace}set outputColorSpace(t){this._outputColorSpace=t;const e=this.getContext();e.drawingBufferColorSpace=t===pa?"display-p3":"srgb",e.unpackColorSpace=Qt.workingColorSpace===ts?"display-p3":"srgb"}get outputEncoding(){return console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace===ve?Vn:ic}set outputEncoding(t){console.warn("THREE.WebGLRenderer: Property .outputEncoding has been removed. Use .outputColorSpace instead."),this.outputColorSpace=t===Vn?ve:on}get useLegacyLights(){return console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights}set useLegacyLights(t){console.warn("THREE.WebGLRenderer: The property .useLegacyLights has been deprecated. Migrate your lighting according to the following guide: https://discourse.threejs.org/t/updates-to-lighting-in-three-js-r155/53733."),this._useLegacyLights=t}}class Pg extends Ec{}Pg.prototype.isWebGL1Renderer=!0;class bc{constructor(t,e=1,n=1e3){this.isFog=!0,this.name="",this.color=new Ut(t),this.near=e,this.far=n}clone(){return new bc(this.color,this.near,this.far)}toJSON(){return{type:"Fog",name:this.name,color:this.color.getHex(),near:this.near,far:this.far}}}class Lg extends ae{constructor(){super(),this.isScene=!0,this.type="Scene",this.background=null,this.environment=null,this.fog=null,this.backgroundBlurriness=0,this.backgroundIntensity=1,this.overrideMaterial=null,typeof __THREE_DEVTOOLS__!="undefined"&&__THREE_DEVTOOLS__.dispatchEvent(new CustomEvent("observe",{detail:this}))}copy(t,e){return super.copy(t,e),t.background!==null&&(this.background=t.background.clone()),t.environment!==null&&(this.environment=t.environment.clone()),t.fog!==null&&(this.fog=t.fog.clone()),this.backgroundBlurriness=t.backgroundBlurriness,this.backgroundIntensity=t.backgroundIntensity,t.overrideMaterial!==null&&(this.overrideMaterial=t.overrideMaterial.clone()),this.matrixAutoUpdate=t.matrixAutoUpdate,this}toJSON(t){const e=super.toJSON(t);return this.fog!==null&&(e.object.fog=this.fog.toJSON()),this.backgroundBlurriness>0&&(e.object.backgroundBlurriness=this.backgroundBlurriness),this.backgroundIntensity!==1&&(e.object.backgroundIntensity=this.backgroundIntensity),e}}class Tc{constructor(t,e){this.isInterleavedBuffer=!0,this.array=t,this.stride=e,this.count=t!==void 0?t.length/e:0,this.usage=na,this._updateRange={offset:0,count:-1},this.updateRanges=[],this.version=0,this.uuid=Be()}onUploadCallback(){}set needsUpdate(t){t===!0&&this.version++}get updateRange(){return Gn("THREE.InterleavedBuffer: updateRange() is deprecated and will be removed in r169. Use addUpdateRange() instead."),this._updateRange}setUsage(t){return this.usage=t,this}addUpdateRange(t,e){this.updateRanges.push({start:t,count:e})}clearUpdateRanges(){this.updateRanges.length=0}copy(t){return this.array=new t.array.constructor(t.array),this.count=t.count,this.stride=t.stride,this.usage=t.usage,this}copyAt(t,e,n){t*=this.stride,n*=e.stride;for(let r=0,s=this.stride;rt.far||e.push({distance:l,point:Ui.clone(),uv:qe.getInterpolation(Ui,Tr,Fi,Ar,dl,Vs,fl,new tt),face:null,object:this})}copy(t,e){return super.copy(t,e),t.center!==void 0&&this.center.copy(t.center),this.material=t.material,this}}function wr(i,t,e,n,r,s){fi.subVectors(i,e).addScalar(.5).multiply(n),r!==void 0?(Oi.x=s*fi.x-r*fi.y,Oi.y=r*fi.x+s*fi.y):Oi.copy(fi),i.copy(t),i.x+=Oi.x,i.y+=Oi.y,i.applyMatrix4(Ac)}const pl=new C,ml=new ee,gl=new ee,Ig=new C,_l=new Yt,Rr=new C,Gs=new ln,vl=new Yt,ks=new Ti;class d0 extends Ce{constructor(t,e){super(t,e),this.isSkinnedMesh=!0,this.type="SkinnedMesh",this.bindMode=qa,this.bindMatrix=new Yt,this.bindMatrixInverse=new Yt,this.boundingBox=null,this.boundingSphere=null}computeBoundingBox(){const t=this.geometry;this.boundingBox===null&&(this.boundingBox=new wn),this.boundingBox.makeEmpty();const e=t.getAttribute("position");for(let n=0;nl)continue;d.applyMatrix4(this.matrixWorld);const V=t.ray.origin.distanceTo(d);Vt.far||e.push({distance:V,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}else{const p=Math.max(0,o.start),E=Math.min(f.count,o.start+o.count);for(let _=p,b=E-1;_l)continue;d.applyMatrix4(this.matrixWorld);const L=t.ray.origin.distanceTo(d);Lt.far||e.push({distance:L,point:u.clone().applyMatrix4(this.matrixWorld),index:_,face:null,faceIndex:null,object:this})}}}updateMorphTargets(){const e=this.geometry.morphAttributes,n=Object.keys(e);if(n.length>0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;s0){const r=e[n[0]];if(r!==void 0){this.morphTargetInfluences=[],this.morphTargetDictionary={};for(let s=0,o=r.length;sr.far)return;s.push({distance:c,distanceToRay:Math.sqrt(a),point:l,index:t,face:null,object:o})}}class g0 extends xe{constructor(t,e,n,r,s,o,a,l,c){super(t,e,n,r,s,o,a,l,c),this.isCanvasTexture=!0,this.needsUpdate=!0}}class Ze{constructor(){this.type="Curve",this.arcLengthDivisions=200}getPoint(){return console.warn("THREE.Curve: .getPoint() not implemented."),null}getPointAt(t,e){const n=this.getUtoTmapping(t);return this.getPoint(n,e)}getPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPoint(n/t));return e}getSpacedPoints(t=5){const e=[];for(let n=0;n<=t;n++)e.push(this.getPointAt(n/t));return e}getLength(){const t=this.getLengths();return t[t.length-1]}getLengths(t=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===t+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;const e=[];let n,r=this.getPoint(0),s=0;e.push(0);for(let o=1;o<=t;o++)n=this.getPoint(o/t),s+=n.distanceTo(r),e.push(s),r=n;return this.cacheArcLengths=e,e}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(t,e){const n=this.getLengths();let r=0;const s=n.length;let o;e?o=e:o=t*n[s-1];let a=0,l=s-1,c;for(;a<=l;)if(r=Math.floor(a+(l-a)/2),c=n[r]-o,c<0)a=r+1;else if(c>0)l=r-1;else{l=r;break}if(r=l,n[r]===o)return r/(s-1);const h=n[r],d=n[r+1]-h,m=(o-h)/d;return(r+m)/(s-1)}getTangent(t,e){let r=t-1e-4,s=t+1e-4;r<0&&(r=0),s>1&&(s=1);const o=this.getPoint(r),a=this.getPoint(s),l=e||(o.isVector2?new tt:new C);return l.copy(a).sub(o).normalize(),l}getTangentAt(t,e){const n=this.getUtoTmapping(t);return this.getTangent(n,e)}computeFrenetFrames(t,e){const n=new C,r=[],s=[],o=[],a=new C,l=new Yt;for(let m=0;m<=t;m++){const g=m/t;r[m]=this.getTangentAt(g,new C)}s[0]=new C,o[0]=new C;let c=Number.MAX_VALUE;const h=Math.abs(r[0].x),u=Math.abs(r[0].y),d=Math.abs(r[0].z);h<=c&&(c=h,n.set(1,0,0)),u<=c&&(c=u,n.set(0,1,0)),d<=c&&n.set(0,0,1),a.crossVectors(r[0],n).normalize(),s[0].crossVectors(r[0],a),o[0].crossVectors(r[0],s[0]);for(let m=1;m<=t;m++){if(s[m]=s[m-1].clone(),o[m]=o[m-1].clone(),a.crossVectors(r[m-1],r[m]),a.length()>Number.EPSILON){a.normalize();const g=Math.acos(ue(r[m-1].dot(r[m]),-1,1));s[m].applyMatrix4(l.makeRotationAxis(a,g))}o[m].crossVectors(r[m],s[m])}if(e===!0){let m=Math.acos(ue(s[0].dot(s[t]),-1,1));m/=t,r[0].dot(a.crossVectors(s[0],s[t]))>0&&(m=-m);for(let g=1;g<=t;g++)s[g].applyMatrix4(l.makeRotationAxis(r[g],m*g)),o[g].crossVectors(r[g],s[g])}return{tangents:r,normals:s,binormals:o}}clone(){return new this.constructor().copy(this)}copy(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}toJSON(){const t={metadata:{version:4.6,type:"Curve",generator:"Curve.toJSON"}};return t.arcLengthDivisions=this.arcLengthDivisions,t.type=this.type,t}fromJSON(t){return this.arcLengthDivisions=t.arcLengthDivisions,this}}class Ma extends Ze{constructor(t=0,e=0,n=1,r=1,s=0,o=Math.PI*2,a=!1,l=0){super(),this.isEllipseCurve=!0,this.type="EllipseCurve",this.aX=t,this.aY=e,this.xRadius=n,this.yRadius=r,this.aStartAngle=s,this.aEndAngle=o,this.aClockwise=a,this.aRotation=l}getPoint(t,e){const n=e||new tt,r=Math.PI*2;let s=this.aEndAngle-this.aStartAngle;const o=Math.abs(s)r;)s-=r;s0?0:(Math.floor(Math.abs(a)/s)+1)*s:l===0&&a===s-1&&(a=s-2,l=1);let c,h;this.closed||a>0?c=r[(a-1)%s]:(Ir.subVectors(r[0],r[1]).add(r[0]),c=Ir);const u=r[a%s],d=r[(a+1)%s];if(this.closed||a+2r.length-2?r.length-1:o+1],u=r[o>r.length-3?r.length-1:o+2];return n.set(Pl(a,l.x,c.x,h.x,u.x),Pl(a,l.y,c.y,h.y,u.y)),n}copy(t){super.copy(t),this.points=[];for(let e=0,n=t.points.length;e=n){const o=r[s]-n,a=this.curves[s],l=a.getLength(),c=l===0?0:1-o/l;return a.getPointAt(c,e)}s++}return null}getLength(){const t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=null,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;const t=[];let e=0;for(let n=0,r=this.curves.length;n1&&!e[e.length-1].equals(e[0])&&e.push(e[0]),e}copy(t){super.copy(t),this.curves=[];for(let e=0,n=t.curves.length;e0){const u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);const h=c.getPoint(1);return this.currentPoint.copy(h),this}copy(t){return super.copy(t),this.currentPoint.copy(t.currentPoint),this}toJSON(){const t=super.toJSON();return t.currentPoint=this.currentPoint.toArray(),t}fromJSON(t){return super.fromJSON(t),this.currentPoint.fromArray(t.currentPoint),this}}class qi extends Ll{constructor(t){super(t),this.uuid=Be(),this.type="Shape",this.holes=[]}getPointsHoles(t){const e=[];for(let n=0,r=this.holes.length;n80*e){a=c=i[0],l=h=i[1];for(let g=e;gc&&(c=u),d>h&&(h=d);m=Math.max(c-a,h-l),m=m!==0?32767/m:0}return Zi(s,o,e,a,l,m,0),o}};function Uc(i,t,e,n,r){let s,o;if(r===f_(i,t,e,n)>0)for(s=t;s=t;s-=n)o=Dl(s,i[s],i[s+1],o);return o&&is(o,o.next)&&(Ji(o),o=o.next),o}function Wn(i,t){if(!i)return i;t||(t=i);let e=i,n;do if(n=!1,!e.steiner&&(is(e,e.next)||re(e.prev,e,e.next)===0)){if(Ji(e),e=t=e.prev,e===e.next)break;n=!0}else e=e.next;while(n||e!==t);return t}function Zi(i,t,e,n,r,s,o){if(!i)return;!o&&s&&o_(i,n,r,s);let a=i,l,c;for(;i.prev!==i.next;){if(l=i.prev,c=i.next,s?Qg(i,n,r,s):$g(i)){t.push(l.i/e|0),t.push(i.i/e|0),t.push(c.i/e|0),Ji(i),i=c.next,a=c.next;continue}if(i=c,i===a){o?o===1?(i=t_(Wn(i),t,e),Zi(i,t,e,n,r,s,2)):o===2&&e_(i,t,e,n,r,s):Zi(Wn(i),t,e,n,r,s,1);break}}}function $g(i){const t=i.prev,e=i,n=i.next;if(re(t,e,n)>=0)return!1;const r=t.x,s=e.x,o=n.x,a=t.y,l=e.y,c=n.y,h=rs?r>o?r:o:s>o?s:o,m=a>l?a>c?a:c:l>c?l:c;let g=n.next;for(;g!==t;){if(g.x>=h&&g.x<=d&&g.y>=u&&g.y<=m&&_i(r,a,s,l,o,c,g.x,g.y)&&re(g.prev,g,g.next)>=0)return!1;g=g.next}return!0}function Qg(i,t,e,n){const r=i.prev,s=i,o=i.next;if(re(r,s,o)>=0)return!1;const a=r.x,l=s.x,c=o.x,h=r.y,u=s.y,d=o.y,m=al?a>c?a:c:l>c?l:c,f=h>u?h>d?h:d:u>d?u:d,p=oa(m,g,t,e,n),E=oa(x,f,t,e,n);let _=i.prevZ,b=i.nextZ;for(;_&&_.z>=p&&b&&b.z<=E;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0||(_=_.prevZ,b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0))return!1;b=b.nextZ}for(;_&&_.z>=p;){if(_.x>=m&&_.x<=x&&_.y>=g&&_.y<=f&&_!==r&&_!==o&&_i(a,h,l,u,c,d,_.x,_.y)&&re(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;b&&b.z<=E;){if(b.x>=m&&b.x<=x&&b.y>=g&&b.y<=f&&b!==r&&b!==o&&_i(a,h,l,u,c,d,b.x,b.y)&&re(b.prev,b,b.next)>=0)return!1;b=b.nextZ}return!0}function t_(i,t,e){let n=i;do{const r=n.prev,s=n.next.next;!is(r,s)&&Oc(r,n,n.next,s)&&Ki(r,s)&&Ki(s,r)&&(t.push(r.i/e|0),t.push(n.i/e|0),t.push(s.i/e|0),Ji(n),Ji(n.next),n=i=s),n=n.next}while(n!==i);return Wn(n)}function e_(i,t,e,n,r,s){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&h_(o,a)){let l=Fc(o,a);o=Wn(o,o.next),l=Wn(l,l.next),Zi(o,t,e,n,r,s,0),Zi(l,t,e,n,r,s,0);return}a=a.next}o=o.next}while(o!==i)}function n_(i,t,e,n){const r=[];let s,o,a,l,c;for(s=0,o=t.length;s=e.next.y&&e.next.y!==e.y){const d=e.x+(o-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(d<=s&&d>n&&(n=d,r=e.x=e.x&&e.x>=l&&s!==e.x&&_i(or.x||e.x===r.x&&a_(r,e)))&&(r=e,h=u)),e=e.next;while(e!==a);return r}function a_(i,t){return re(i.prev,i,t.prev)<0&&re(t.next,i,i.next)<0}function o_(i,t,e,n){let r=i;do r.z===0&&(r.z=oa(r.x,r.y,t,e,n)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==i);r.prevZ.nextZ=null,r.prevZ=null,l_(r)}function l_(i){let t,e,n,r,s,o,a,l,c=1;do{for(e=i,i=null,s=null,o=0;e;){for(o++,n=e,a=0,t=0;t0||l>0&&n;)a!==0&&(l===0||!n||e.z<=n.z)?(r=e,e=e.nextZ,a--):(r=n,n=n.nextZ,l--),s?s.nextZ=r:i=r,r.prevZ=s,s=r;e=n}s.nextZ=null,c*=2}while(o>1);return i}function oa(i,t,e,n,r){return i=(i-e)*r|0,t=(t-n)*r|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,i|t<<1}function c_(i){let t=i,e=i;do(t.x=(i-o)*(s-a)&&(i-o)*(n-a)>=(e-o)*(t-a)&&(e-o)*(s-a)>=(r-o)*(n-a)}function h_(i,t){return i.next.i!==t.i&&i.prev.i!==t.i&&!u_(i,t)&&(Ki(i,t)&&Ki(t,i)&&d_(i,t)&&(re(i.prev,i,t.prev)||re(i,t.prev,t))||is(i,t)&&re(i.prev,i,i.next)>0&&re(t.prev,t,t.next)>0)}function re(i,t,e){return(t.y-i.y)*(e.x-t.x)-(t.x-i.x)*(e.y-t.y)}function is(i,t){return i.x===t.x&&i.y===t.y}function Oc(i,t,e,n){const r=Ur(re(i,t,e)),s=Ur(re(i,t,n)),o=Ur(re(e,n,i)),a=Ur(re(e,n,t));return!!(r!==s&&o!==a||r===0&&Nr(i,e,t)||s===0&&Nr(i,n,t)||o===0&&Nr(e,i,n)||a===0&&Nr(e,t,n))}function Nr(i,t,e){return t.x<=Math.max(i.x,e.x)&&t.x>=Math.min(i.x,e.x)&&t.y<=Math.max(i.y,e.y)&&t.y>=Math.min(i.y,e.y)}function Ur(i){return i>0?1:i<0?-1:0}function u_(i,t){let e=i;do{if(e.i!==i.i&&e.next.i!==i.i&&e.i!==t.i&&e.next.i!==t.i&&Oc(e,e.next,i,t))return!0;e=e.next}while(e!==i);return!1}function Ki(i,t){return re(i.prev,i,i.next)<0?re(i,t,i.next)>=0&&re(i,i.prev,t)>=0:re(i,t,i.prev)<0||re(i,i.next,t)<0}function d_(i,t){let e=i,n=!1;const r=(i.x+t.x)/2,s=(i.y+t.y)/2;do e.y>s!=e.next.y>s&&e.next.y!==e.y&&r<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(n=!n),e=e.next;while(e!==i);return n}function Fc(i,t){const e=new la(i.i,i.x,i.y),n=new la(t.i,t.x,t.y),r=i.next,s=t.prev;return i.next=t,t.prev=i,e.next=r,r.prev=e,n.next=e,e.prev=n,s.next=n,n.prev=s,n}function Dl(i,t,e,n){const r=new la(i,t,e);return n?(r.next=n.next,r.prev=n,n.next.prev=r,n.next=r):(r.prev=r,r.next=r),r}function Ji(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function la(i,t,e){this.i=i,this.x=t,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function f_(i,t,e,n){let r=0;for(let s=t,o=e-n;s2&&i[t-1].equals(i[0])&&i.pop()}function Nl(i,t){for(let e=0;eNumber.EPSILON){const j=Math.sqrt(et),yt=Math.sqrt(v*v+N*N),ut=ct.x-M/j,_t=ct.y+ft/j,Ct=W.x-N/yt,Ft=W.y+v/yt,Q=((Ct-ut)*N-(Ft-_t)*v)/(ft*N-M*v);at=ut+ft*Q-R.x,q=_t+M*Q-R.y;const jt=at*at+q*q;if(jt<=2)return new tt(at,q);Et=Math.sqrt(jt/2)}else{let j=!1;ft>Number.EPSILON?v>Number.EPSILON&&(j=!0):ft<-Number.EPSILON?v<-Number.EPSILON&&(j=!0):Math.sign(M)===Math.sign(N)&&(j=!0),j?(at=-M,q=ft,Et=Math.sqrt(et)):(at=ft,q=M,Et=Math.sqrt(et/2))}return new tt(at/Et,q/Et)}const k=[];for(let R=0,ct=D.length,W=ct-1,at=R+1;R=0;R--){const ct=R/f,W=m*Math.cos(ct*Math.PI/2),at=g*Math.sin(ct*Math.PI/2)+x;for(let q=0,Et=D.length;q=0;){const at=W;let q=W-1;q<0&&(q=R.length-1);for(let Et=0,ft=h+f*2;Et0!=t>0&&this.version++,this._anisotropy=t}get clearcoat(){return this._clearcoat}set clearcoat(t){this._clearcoat>0!=t>0&&this.version++,this._clearcoat=t}get iridescence(){return this._iridescence}set iridescence(t){this._iridescence>0!=t>0&&this.version++,this._iridescence=t}get sheen(){return this._sheen}set sheen(t){this._sheen>0!=t>0&&this.version++,this._sheen=t}get transmission(){return this._transmission}set transmission(t){this._transmission>0!=t>0&&this.version++,this._transmission=t}copy(t){return super.copy(t),this.defines={STANDARD:"",PHYSICAL:""},this.anisotropy=t.anisotropy,this.anisotropyRotation=t.anisotropyRotation,this.anisotropyMap=t.anisotropyMap,this.clearcoat=t.clearcoat,this.clearcoatMap=t.clearcoatMap,this.clearcoatRoughness=t.clearcoatRoughness,this.clearcoatRoughnessMap=t.clearcoatRoughnessMap,this.clearcoatNormalMap=t.clearcoatNormalMap,this.clearcoatNormalScale.copy(t.clearcoatNormalScale),this.ior=t.ior,this.iridescence=t.iridescence,this.iridescenceMap=t.iridescenceMap,this.iridescenceIOR=t.iridescenceIOR,this.iridescenceThicknessRange=[...t.iridescenceThicknessRange],this.iridescenceThicknessMap=t.iridescenceThicknessMap,this.sheen=t.sheen,this.sheenColor.copy(t.sheenColor),this.sheenColorMap=t.sheenColorMap,this.sheenRoughness=t.sheenRoughness,this.sheenRoughnessMap=t.sheenRoughnessMap,this.transmission=t.transmission,this.transmissionMap=t.transmissionMap,this.thickness=t.thickness,this.thicknessMap=t.thicknessMap,this.attenuationDistance=t.attenuationDistance,this.attenuationColor.copy(t.attenuationColor),this.specularIntensity=t.specularIntensity,this.specularIntensityMap=t.specularIntensityMap,this.specularColor.copy(t.specularColor),this.specularColorMap=t.specularColorMap,this}}class v_ extends cn{constructor(t){super(),this.isMeshLambertMaterial=!0,this.type="MeshLambertMaterial",this.color=new Ut(16777215),this.map=null,this.lightMap=null,this.lightMapIntensity=1,this.aoMap=null,this.aoMapIntensity=1,this.emissive=new Ut(0),this.emissiveIntensity=1,this.emissiveMap=null,this.bumpMap=null,this.bumpScale=1,this.normalMap=null,this.normalMapType=fa,this.normalScale=new tt(1,1),this.displacementMap=null,this.displacementScale=1,this.displacementBias=0,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=ua,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap="round",this.wireframeLinejoin="round",this.flatShading=!1,this.fog=!0,this.setValues(t)}copy(t){return super.copy(t),this.color.copy(t.color),this.map=t.map,this.lightMap=t.lightMap,this.lightMapIntensity=t.lightMapIntensity,this.aoMap=t.aoMap,this.aoMapIntensity=t.aoMapIntensity,this.emissive.copy(t.emissive),this.emissiveMap=t.emissiveMap,this.emissiveIntensity=t.emissiveIntensity,this.bumpMap=t.bumpMap,this.bumpScale=t.bumpScale,this.normalMap=t.normalMap,this.normalMapType=t.normalMapType,this.normalScale.copy(t.normalScale),this.displacementMap=t.displacementMap,this.displacementScale=t.displacementScale,this.displacementBias=t.displacementBias,this.specularMap=t.specularMap,this.alphaMap=t.alphaMap,this.envMap=t.envMap,this.combine=t.combine,this.reflectivity=t.reflectivity,this.refractionRatio=t.refractionRatio,this.wireframe=t.wireframe,this.wireframeLinewidth=t.wireframeLinewidth,this.wireframeLinecap=t.wireframeLinecap,this.wireframeLinejoin=t.wireframeLinejoin,this.flatShading=t.flatShading,this.fog=t.fog,this}}function Or(i,t,e){return!i||!e&&i.constructor===t?i:typeof t.BYTES_PER_ELEMENT=="number"?new t(i):Array.prototype.slice.call(i)}function x_(i){return ArrayBuffer.isView(i)&&!(i instanceof DataView)}function y_(i){function t(r,s){return i[r]-i[s]}const e=i.length,n=new Array(e);for(let r=0;r!==e;++r)n[r]=r;return n.sort(t),n}function Ol(i,t,e){const n=i.length,r=new i.constructor(n);for(let s=0,o=0;o!==n;++s){const a=e[s]*t;for(let l=0;l!==t;++l)r[o++]=i[a+l]}return r}function Hc(i,t,e,n){let r=1,s=i[0];for(;s!==void 0&&s[n]===void 0;)s=i[r++];if(s===void 0)return;let o=s[n];if(o!==void 0)if(Array.isArray(o))do o=s[n],o!==void 0&&(t.push(s.time),e.push.apply(e,o)),s=i[r++];while(s!==void 0);else if(o.toArray!==void 0)do o=s[n],o!==void 0&&(t.push(s.time),o.toArray(e,e.length)),s=i[r++];while(s!==void 0);else do o=s[n],o!==void 0&&(t.push(s.time),e.push(o)),s=i[r++];while(s!==void 0)}class rs{constructor(t,e,n,r){this.parameterPositions=t,this._cachedIndex=0,this.resultBuffer=r!==void 0?r:new e.constructor(n),this.sampleValues=e,this.valueSize=n,this.settings=null,this.DefaultSettings_={}}evaluate(t){const e=this.parameterPositions;let n=this._cachedIndex,r=e[n],s=e[n-1];n:{t:{let o;e:{i:if(!(t=s)){const a=e[1];t=s)break t}o=n,n=0;break e}break n}for(;n>>1;te;)--o;if(++o,s!==0||o!==r){s>=o&&(o=Math.max(o,1),s=o-1);const a=this.getValueSize();this.times=n.slice(s,o),this.values=this.values.slice(s*a,o*a)}return this}validate(){let t=!0;const e=this.getValueSize();e-Math.floor(e)!==0&&(console.error("THREE.KeyframeTrack: Invalid value size in track.",this),t=!1);const n=this.times,r=this.values,s=n.length;s===0&&(console.error("THREE.KeyframeTrack: Track is empty.",this),t=!1);let o=null;for(let a=0;a!==s;a++){const l=n[a];if(typeof l=="number"&&isNaN(l)){console.error("THREE.KeyframeTrack: Time is not a valid number.",this,a,l),t=!1;break}if(o!==null&&o>l){console.error("THREE.KeyframeTrack: Out of order keys.",this,a,l,o),t=!1;break}o=l}if(r!==void 0&&x_(r))for(let a=0,l=r.length;a!==l;++a){const c=r[a];if(isNaN(c)){console.error("THREE.KeyframeTrack: Value is not a valid number.",this,a,c),t=!1;break}}return t}optimize(){const t=this.times.slice(),e=this.values.slice(),n=this.getValueSize(),r=this.getInterpolation()===_s,s=t.length-1;let o=1;for(let a=1;a0){t[o]=t[s];for(let a=s*n,l=o*n,c=0;c!==n;++c)e[l+c]=e[a+c];++o}return o!==t.length?(this.times=t.slice(0,o),this.values=e.slice(0,o*n)):(this.times=t,this.values=e),this}clone(){const t=this.times.slice(),e=this.values.slice(),n=this.constructor,r=new n(this.name,t,e);return r.createInterpolant=this.createInterpolant,r}}Ke.prototype.TimeBufferType=Float32Array;Ke.prototype.ValueBufferType=Float32Array;Ke.prototype.DefaultInterpolation=kr;class wi extends Ke{}wi.prototype.ValueTypeName="bool";wi.prototype.ValueBufferType=Array;wi.prototype.DefaultInterpolation=Gr;wi.prototype.InterpolantFactoryMethodLinear=void 0;wi.prototype.InterpolantFactoryMethodSmooth=void 0;class Vc extends Ke{}Vc.prototype.ValueTypeName="color";class Jr extends Ke{}Jr.prototype.ValueTypeName="number";class b_ extends rs{constructor(t,e,n,r){super(t,e,n,r)}interpolate_(t,e,n,r){const s=this.resultBuffer,o=this.sampleValues,a=this.valueSize,l=(n-e)/(r-e);let c=t*a;for(let h=c+a;c!==h;c+=4)Tn.slerpFlat(s,0,o,c-a,o,c,l);return s}}class tr extends Ke{InterpolantFactoryMethodLinear(t){return new b_(this.times,this.values,this.getValueSize(),t)}}tr.prototype.ValueTypeName="quaternion";tr.prototype.DefaultInterpolation=kr;tr.prototype.InterpolantFactoryMethodSmooth=void 0;class Ri extends Ke{}Ri.prototype.ValueTypeName="string";Ri.prototype.ValueBufferType=Array;Ri.prototype.DefaultInterpolation=Gr;Ri.prototype.InterpolantFactoryMethodLinear=void 0;Ri.prototype.InterpolantFactoryMethodSmooth=void 0;class $r extends Ke{}$r.prototype.ValueTypeName="vector";class x0{constructor(t,e=-1,n,r=Zh){this.name=t,this.tracks=n,this.duration=e,this.blendMode=r,this.uuid=Be(),this.duration<0&&this.resetDuration()}static parse(t){const e=[],n=t.tracks,r=1/(t.fps||1);for(let o=0,a=n.length;o!==a;++o)e.push(A_(n[o]).scale(r));const s=new this(t.name,t.duration,e,t.blendMode);return s.uuid=t.uuid,s}static toJSON(t){const e=[],n=t.tracks,r={name:t.name,duration:t.duration,tracks:e,uuid:t.uuid,blendMode:t.blendMode};for(let s=0,o=n.length;s!==o;++s)e.push(Ke.toJSON(n[s]));return r}static CreateFromMorphTargetSequence(t,e,n,r){const s=e.length,o=[];for(let a=0;a1){const u=h[1];let d=r[u];d||(r[u]=d=[]),d.push(c)}}const o=[];for(const a in r)o.push(this.CreateFromMorphTargetSequence(a,r[a],e,n));return o}static parseAnimation(t,e){if(!t)return console.error("THREE.AnimationClip: No animation in JSONLoader data."),null;const n=function(u,d,m,g,x){if(m.length!==0){const f=[],p=[];Hc(m,f,p,g),f.length!==0&&x.push(new u(d,f,p))}},r=[],s=t.name||"default",o=t.fps||30,a=t.blendMode;let l=t.length||-1;const c=t.hierarchy||[];for(let u=0;u{e&&e(s),this.manager.itemEnd(t)},0),s;if(rn[t]!==void 0){rn[t].push({onLoad:e,onProgress:n,onError:r});return}rn[t]=[],rn[t].push({onLoad:e,onProgress:n,onError:r});const o=new Request(t,{headers:new Headers(this.requestHeader),credentials:this.withCredentials?"include":"same-origin"}),a=this.mimeType,l=this.responseType;fetch(o).then(c=>{if(c.status===200||c.status===0){if(c.status===0&&console.warn("THREE.FileLoader: HTTP Status 0 received."),typeof ReadableStream=="undefined"||c.body===void 0||c.body.getReader===void 0)return c;const h=rn[t],u=c.body.getReader(),d=c.headers.get("Content-Length")||c.headers.get("X-File-Size"),m=d?parseInt(d):0,g=m!==0;let x=0;const f=new ReadableStream({start(p){E();function E(){u.read().then(({done:_,value:b})=>{if(_)p.close();else{x+=b.byteLength;const I=new ProgressEvent("progress",{lengthComputable:g,loaded:x,total:m});for(let L=0,P=h.length;L{switch(l){case"arraybuffer":return c.arrayBuffer();case"blob":return c.blob();case"document":return c.text().then(h=>new DOMParser().parseFromString(h,a));case"json":return c.json();default:if(a===void 0)return c.text();{const u=/charset="?([^;"\s]*)"?/i.exec(a),d=u&&u[1]?u[1].toLowerCase():void 0,m=new TextDecoder(d);return c.arrayBuffer().then(g=>m.decode(g))}}}).then(c=>{xn.add(t,c);const h=rn[t];delete rn[t];for(let u=0,d=h.length;u{const h=rn[t];if(h===void 0)throw this.manager.itemError(t),c;delete rn[t];for(let u=0,d=h.length;u{this.manager.itemEnd(t)}),this.manager.itemStart(t)}setResponseType(t){return this.responseType=t,this}setMimeType(t){return this.mimeType=t,this}}class P_ extends er{constructor(t){super(t)}load(t,e,n,r){this.path!==void 0&&(t=this.path+t),t=this.manager.resolveURL(t);const s=this,o=xn.get(t);if(o!==void 0)return s.manager.itemStart(t),setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o;const a=ji("img");function l(){h(),xn.add(t,this),e&&e(this),s.manager.itemEnd(t)}function c(u){h(),r&&r(u),s.manager.itemError(t),s.manager.itemEnd(t)}function h(){a.removeEventListener("load",l,!1),a.removeEventListener("error",c,!1)}return a.addEventListener("load",l,!1),a.addEventListener("error",c,!1),t.slice(0,5)!=="data:"&&this.crossOrigin!==void 0&&(a.crossOrigin=this.crossOrigin),s.manager.itemStart(t),a.src=t,a}}class L_ extends er{constructor(t){super(t)}load(t,e,n,r){const s=new xe,o=new P_(this.manager);return o.setCrossOrigin(this.crossOrigin),o.setPath(this.path),o.load(t,function(a){s.image=a,s.needsUpdate=!0,e!==void 0&&e(s)},n,r),s}}class ss extends ae{constructor(t,e=1){super(),this.isLight=!0,this.type="Light",this.color=new Ut(t),this.intensity=e}dispose(){}copy(t,e){return super.copy(t,e),this.color.copy(t.color),this.intensity=t.intensity,this}toJSON(t){const e=super.toJSON(t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,this.groundColor!==void 0&&(e.object.groundColor=this.groundColor.getHex()),this.distance!==void 0&&(e.object.distance=this.distance),this.angle!==void 0&&(e.object.angle=this.angle),this.decay!==void 0&&(e.object.decay=this.decay),this.penumbra!==void 0&&(e.object.penumbra=this.penumbra),this.shadow!==void 0&&(e.object.shadow=this.shadow.toJSON()),e}}const js=new Yt,Fl=new C,Bl=new C;class ba{constructor(t){this.camera=t,this.bias=0,this.normalBias=0,this.radius=1,this.blurSamples=8,this.mapSize=new tt(512,512),this.map=null,this.mapPass=null,this.matrix=new Yt,this.autoUpdate=!0,this.needsUpdate=!1,this._frustum=new va,this._frameExtents=new tt(1,1),this._viewportCount=1,this._viewports=[new ee(0,0,1,1)]}getViewportCount(){return this._viewportCount}getFrustum(){return this._frustum}updateMatrices(t){const e=this.camera,n=this.matrix;Fl.setFromMatrixPosition(t.matrixWorld),e.position.copy(Fl),Bl.setFromMatrixPosition(t.target.matrixWorld),e.lookAt(Bl),e.updateMatrixWorld(),js.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),this._frustum.setFromProjectionMatrix(js),n.set(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1),n.multiply(js)}getViewport(t){return this._viewports[t]}getFrameExtents(){return this._frameExtents}dispose(){this.map&&this.map.dispose(),this.mapPass&&this.mapPass.dispose()}copy(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this}clone(){return new this.constructor().copy(this)}toJSON(){const t={};return this.bias!==0&&(t.bias=this.bias),this.normalBias!==0&&(t.normalBias=this.normalBias),this.radius!==1&&(t.radius=this.radius),(this.mapSize.x!==512||this.mapSize.y!==512)&&(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}class D_ extends ba{constructor(){super(new Re(50,1,.5,500)),this.isSpotLightShadow=!0,this.focus=1}updateMatrices(t){const e=this.camera,n=Ei*2*t.angle*this.focus,r=this.mapSize.width/this.mapSize.height,s=t.distance||e.far;(n!==e.fov||r!==e.aspect||s!==e.far)&&(e.fov=n,e.aspect=r,e.far=s,e.updateProjectionMatrix()),super.updateMatrices(t)}copy(t){return super.copy(t),this.focus=t.focus,this}}class M0 extends ss{constructor(t,e,n=0,r=Math.PI/3,s=0,o=2){super(t,e),this.isSpotLight=!0,this.type="SpotLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.distance=n,this.angle=r,this.penumbra=s,this.decay=o,this.map=null,this.shadow=new D_}get power(){return this.intensity*Math.PI}set power(t){this.intensity=t/Math.PI}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}const zl=new Yt,Hi=new C,Zs=new C;class I_ extends ba{constructor(){super(new Re(90,1,.5,500)),this.isPointLightShadow=!0,this._frameExtents=new tt(4,2),this._viewportCount=6,this._viewports=[new ee(2,1,1,1),new ee(0,1,1,1),new ee(3,1,1,1),new ee(1,1,1,1),new ee(3,0,1,1),new ee(1,0,1,1)],this._cubeDirections=[new C(1,0,0),new C(-1,0,0),new C(0,0,1),new C(0,0,-1),new C(0,1,0),new C(0,-1,0)],this._cubeUps=[new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,1,0),new C(0,0,1),new C(0,0,-1)]}updateMatrices(t,e=0){const n=this.camera,r=this.matrix,s=t.distance||n.far;s!==n.far&&(n.far=s,n.updateProjectionMatrix()),Hi.setFromMatrixPosition(t.matrixWorld),n.position.copy(Hi),Zs.copy(n.position),Zs.add(this._cubeDirections[e]),n.up.copy(this._cubeUps[e]),n.lookAt(Zs),n.updateMatrixWorld(),r.makeTranslation(-Hi.x,-Hi.y,-Hi.z),zl.multiplyMatrices(n.projectionMatrix,n.matrixWorldInverse),this._frustum.setFromProjectionMatrix(zl)}}class S0 extends ss{constructor(t,e,n=0,r=2){super(t,e),this.isPointLight=!0,this.type="PointLight",this.distance=n,this.decay=r,this.shadow=new I_}get power(){return this.intensity*4*Math.PI}set power(t){this.intensity=t/(4*Math.PI)}dispose(){this.shadow.dispose()}copy(t,e){return super.copy(t,e),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}class N_ extends ba{constructor(){super(new gc(-5,5,5,-5,.5,500)),this.isDirectionalLightShadow=!0}}class Hl extends ss{constructor(t,e){super(t,e),this.isDirectionalLight=!0,this.type="DirectionalLight",this.position.copy(ae.DEFAULT_UP),this.updateMatrix(),this.target=new ae,this.shadow=new N_}dispose(){this.shadow.dispose()}copy(t){return super.copy(t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}class U_ extends ss{constructor(t,e){super(t,e),this.isAmbientLight=!0,this.type="AmbientLight"}}class E0{static decodeText(t){if(typeof TextDecoder!="undefined")return new TextDecoder().decode(t);let e="";for(let n=0,r=t.length;n{e&&e(c),s.manager.itemEnd(t)}).catch(c=>{r&&r(c)});return}return setTimeout(function(){e&&e(o),s.manager.itemEnd(t)},0),o}const a={};a.credentials=this.crossOrigin==="anonymous"?"same-origin":"include",a.headers=this.requestHeader;const l=fetch(t,a).then(function(c){return c.blob()}).then(function(c){return createImageBitmap(c,Object.assign(s.options,{colorSpaceConversion:"none"}))}).then(function(c){return xn.add(t,c),e&&e(c),s.manager.itemEnd(t),c}).catch(function(c){r&&r(c),xn.remove(t),s.manager.itemError(t),s.manager.itemEnd(t)});xn.add(t,l),s.manager.itemStart(t)}}class A0{constructor(t=!0){this.autoStart=t,this.startTime=0,this.oldTime=0,this.elapsedTime=0,this.running=!1}start(){this.startTime=Vl(),this.oldTime=this.startTime,this.elapsedTime=0,this.running=!0}stop(){this.getElapsedTime(),this.running=!1,this.autoStart=!1}getElapsedTime(){return this.getDelta(),this.elapsedTime}getDelta(){let t=0;if(this.autoStart&&!this.running)return this.start(),0;if(this.running){const e=Vl();t=(e-this.oldTime)/1e3,this.oldTime=e,this.elapsedTime+=t}return t}}function Vl(){return(typeof performance=="undefined"?Date:performance).now()}const Ta="\\[\\]\\.:\\/",O_=new RegExp("["+Ta+"]","g"),Aa="[^"+Ta+"]",F_="[^"+Ta.replace("\\.","")+"]",B_=/((?:WC+[\/:])*)/.source.replace("WC",Aa),z_=/(WCOD+)?/.source.replace("WCOD",F_),H_=/(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace("WC",Aa),V_=/\.(WC+)(?:\[(.+)\])?/.source.replace("WC",Aa),G_=new RegExp("^"+B_+z_+H_+V_+"$"),k_=["material","materials","bones","map"];class W_{constructor(t,e,n){const r=n||$t.parseTrackName(e);this._targetGroup=t,this._bindings=t.subscribe_(e,r)}getValue(t,e){this.bind();const n=this._targetGroup.nCachedObjects_,r=this._bindings[n];r!==void 0&&r.getValue(t,e)}setValue(t,e){const n=this._bindings;for(let r=this._targetGroup.nCachedObjects_,s=n.length;r!==s;++r)n[r].setValue(t,e)}bind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].bind()}unbind(){const t=this._bindings;for(let e=this._targetGroup.nCachedObjects_,n=t.length;e!==n;++e)t[e].unbind()}}class $t{constructor(t,e,n){this.path=e,this.parsedPath=n||$t.parseTrackName(e),this.node=$t.findNode(t,this.parsedPath.nodeName),this.rootNode=t,this.getValue=this._getValue_unbound,this.setValue=this._setValue_unbound}static create(t,e,n){return t&&t.isAnimationObjectGroup?new $t.Composite(t,e,n):new $t(t,e,n)}static sanitizeNodeName(t){return t.replace(/\s/g,"_").replace(O_,"")}static parseTrackName(t){const e=G_.exec(t);if(e===null)throw new Error("PropertyBinding: Cannot parse trackName: "+t);const n={nodeName:e[2],objectName:e[3],objectIndex:e[4],propertyName:e[5],propertyIndex:e[6]},r=n.nodeName&&n.nodeName.lastIndexOf(".");if(r!==void 0&&r!==-1){const s=n.nodeName.substring(r+1);k_.indexOf(s)!==-1&&(n.nodeName=n.nodeName.substring(0,r),n.objectName=s)}if(n.propertyName===null||n.propertyName.length===0)throw new Error("PropertyBinding: can not parse propertyName from trackName: "+t);return n}static findNode(t,e){if(e===void 0||e===""||e==="."||e===-1||e===t.name||e===t.uuid)return t;if(t.skeleton){const n=t.skeleton.getBoneByName(e);if(n!==void 0)return n}if(t.children){const n=function(s){for(let o=0;oMath.PI&&(qt-=it),te<-Math.PI?te+=it:te>Math.PI&&(te-=it),qt<=te?a.theta=Math.max(qt,Math.min(te,a.theta)):a.theta=a.theta>(qt+te)/2?Math.max(qt,a.theta):Math.min(te,a.theta)),a.phi=Math.max(n.minPolarAngle,Math.min(n.maxPolarAngle,a.phi)),a.makeSafe(),n.enableDamping===!0?n.target.addScaledVector(h,n.dampingFactor):n.target.add(h),n.target.sub(n.cursor),n.target.clampLength(n.minTargetRadius,n.maxTargetRadius),n.target.add(n.cursor),n.zoomToCursor&&L||n.object.isOrthographicCamera?a.radius=$(a.radius):a.radius=$(a.radius*c),w.setFromSpherical(a),w.applyQuaternion(dt),Zt.copy(n.target).add(w),n.object.lookAt(n.target),n.enableDamping===!0?(l.theta*=1-n.dampingFactor,l.phi*=1-n.dampingFactor,h.multiplyScalar(1-n.dampingFactor)):(l.set(0,0,0),h.set(0,0,0));let ge=!1;if(n.zoomToCursor&&L){let Kt=null;if(n.object.isPerspectiveCamera){const le=w.length();Kt=$(le*c);const be=le-Kt;n.object.position.addScaledVector(b,be),n.object.updateMatrixWorld()}else if(n.object.isOrthographicCamera){const le=new C(I.x,I.y,0);le.unproject(n.object),n.object.zoom=Math.max(n.minZoom,Math.min(n.maxZoom,n.object.zoom/c)),n.object.updateProjectionMatrix(),ge=!0;const be=new C(I.x,I.y,0);be.unproject(n.object),n.object.position.sub(be).add(le),n.object.updateMatrixWorld(),Kt=w.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),n.zoomToCursor=!1;Kt!==null&&(this.screenSpacePanning?n.target.set(0,0,-1).transformDirection(n.object.matrix).multiplyScalar(Kt).add(n.object.position):(Br.origin.copy(n.object.position),Br.direction.set(0,0,-1).transformDirection(n.object.matrix),Math.abs(n.object.up.dot(Br.direction))o||8*(1-T.dot(n.object.quaternion))>o||st.distanceToSquared(n.target)>0?(n.dispatchEvent(Xl),Rt.copy(n.object.position),T.copy(n.object.quaternion),st.copy(n.target),!0):!1}}(),this.dispose=function(){n.domElement.removeEventListener("contextmenu",jt),n.domElement.removeEventListener("pointerdown",M),n.domElement.removeEventListener("pointercancel",N),n.domElement.removeEventListener("wheel",j),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n._domElementKeyEvents!==null&&(n._domElementKeyEvents.removeEventListener("keydown",Ct),n._domElementKeyEvents=null)};const n=this,r={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6};let s=r.NONE;const o=1e-6,a=new kl,l=new kl;let c=1;const h=new C,u=new tt,d=new tt,m=new tt,g=new tt,x=new tt,f=new tt,p=new tt,E=new tt,_=new tt,b=new C,I=new tt;let L=!1;const P=[],V={};let lt=!1;function y(w){return w!==null?2*Math.PI/60*n.autoRotateSpeed*w:2*Math.PI/60/60*n.autoRotateSpeed}function A(w){const ot=Math.abs(w*.01);return Math.pow(.95,n.zoomSpeed*ot)}function Z(w){l.theta-=w}function rt(w){l.phi-=w}const D=function(){const w=new C;return function(dt,Rt){w.setFromMatrixColumn(Rt,0),w.multiplyScalar(-dt),h.add(w)}}(),z=function(){const w=new C;return function(dt,Rt){n.screenSpacePanning===!0?w.setFromMatrixColumn(Rt,1):(w.setFromMatrixColumn(Rt,0),w.crossVectors(n.object.up,w)),w.multiplyScalar(dt),h.add(w)}}(),O=function(){const w=new C;return function(dt,Rt){const T=n.domElement;if(n.object.isPerspectiveCamera){const st=n.object.position;w.copy(st).sub(n.target);let it=w.length();it*=Math.tan(n.object.fov/2*Math.PI/180),D(2*dt*it/T.clientHeight,n.object.matrix),z(2*Rt*it/T.clientHeight,n.object.matrix)}else n.object.isOrthographicCamera?(D(dt*(n.object.right-n.object.left)/n.object.zoom/T.clientWidth,n.object.matrix),z(Rt*(n.object.top-n.object.bottom)/n.object.zoom/T.clientHeight,n.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),n.enablePan=!1)}}();function Y(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c/=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function X(w){n.object.isPerspectiveCamera||n.object.isOrthographicCamera?c*=w:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),n.enableZoom=!1)}function k(w,ot){if(!n.zoomToCursor)return;L=!0;const dt=n.domElement.getBoundingClientRect(),Rt=w-dt.left,T=ot-dt.top,st=dt.width,it=dt.height;I.x=Rt/st*2-1,I.y=-(T/it)*2+1,b.set(I.x,I.y,1).unproject(n.object).sub(n.object.position).normalize()}function $(w){return Math.max(n.minDistance,Math.min(n.maxDistance,w))}function K(w){u.set(w.clientX,w.clientY)}function mt(w){k(w.clientX,w.clientX),p.set(w.clientX,w.clientY)}function Lt(w){g.set(w.clientX,w.clientY)}function G(w){d.set(w.clientX,w.clientY),m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d),n.update()}function nt(w){E.set(w.clientX,w.clientY),_.subVectors(E,p),_.y>0?Y(A(_.y)):_.y<0&&X(A(_.y)),p.copy(E),n.update()}function gt(w){x.set(w.clientX,w.clientY),f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x),n.update()}function Mt(w){k(w.clientX,w.clientY),w.deltaY<0?X(A(w.deltaY)):w.deltaY>0&&Y(A(w.deltaY)),n.update()}function bt(w){let ot=!1;switch(w.code){case n.keys.UP:w.ctrlKey||w.metaKey||w.shiftKey?rt(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,n.keyPanSpeed),ot=!0;break;case n.keys.BOTTOM:w.ctrlKey||w.metaKey||w.shiftKey?rt(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(0,-n.keyPanSpeed),ot=!0;break;case n.keys.LEFT:w.ctrlKey||w.metaKey||w.shiftKey?Z(2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(n.keyPanSpeed,0),ot=!0;break;case n.keys.RIGHT:w.ctrlKey||w.metaKey||w.shiftKey?Z(-2*Math.PI*n.rotateSpeed/n.domElement.clientHeight):O(-n.keyPanSpeed,0),ot=!0;break}ot&&(w.preventDefault(),n.update())}function xt(w){if(P.length===1)u.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);u.set(dt,Rt)}}function Ot(w){if(P.length===1)g.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);g.set(dt,Rt)}}function At(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);p.set(0,T)}function R(w){n.enableZoom&&At(w),n.enablePan&&Ot(w)}function ct(w){n.enableZoom&&At(w),n.enableRotate&&xt(w)}function W(w){if(P.length==1)d.set(w.pageX,w.pageY);else{const dt=pt(w),Rt=.5*(w.pageX+dt.x),T=.5*(w.pageY+dt.y);d.set(Rt,T)}m.subVectors(d,u).multiplyScalar(n.rotateSpeed);const ot=n.domElement;Z(2*Math.PI*m.x/ot.clientHeight),rt(2*Math.PI*m.y/ot.clientHeight),u.copy(d)}function at(w){if(P.length===1)x.set(w.pageX,w.pageY);else{const ot=pt(w),dt=.5*(w.pageX+ot.x),Rt=.5*(w.pageY+ot.y);x.set(dt,Rt)}f.subVectors(x,g).multiplyScalar(n.panSpeed),O(f.x,f.y),g.copy(x)}function q(w){const ot=pt(w),dt=w.pageX-ot.x,Rt=w.pageY-ot.y,T=Math.sqrt(dt*dt+Rt*Rt);E.set(0,T),_.set(0,Math.pow(E.y/p.y,n.zoomSpeed)),Y(_.y),p.copy(E);const st=(w.pageX+ot.x)*.5,it=(w.pageY+ot.y)*.5;k(st,it)}function Et(w){n.enableZoom&&q(w),n.enablePan&&at(w)}function ft(w){n.enableZoom&&q(w),n.enableRotate&&W(w)}function M(w){n.enabled!==!1&&(P.length===0&&(n.domElement.setPointerCapture(w.pointerId),n.domElement.addEventListener("pointermove",v),n.domElement.addEventListener("pointerup",N)),Gt(w),w.pointerType==="touch"?Ft(w):et(w))}function v(w){n.enabled!==!1&&(w.pointerType==="touch"?Q(w):J(w))}function N(w){switch(It(w),P.length){case 0:n.domElement.releasePointerCapture(w.pointerId),n.domElement.removeEventListener("pointermove",v),n.domElement.removeEventListener("pointerup",N),n.dispatchEvent(ql),s=r.NONE;break;case 1:const ot=P[0],dt=V[ot];Ft({pointerId:ot,pageX:dt.x,pageY:dt.y});break}}function et(w){let ot;switch(w.button){case 0:ot=n.mouseButtons.LEFT;break;case 1:ot=n.mouseButtons.MIDDLE;break;case 2:ot=n.mouseButtons.RIGHT;break;default:ot=-1}switch(ot){case qn.DOLLY:if(n.enableZoom===!1)return;mt(w),s=r.DOLLY;break;case qn.ROTATE:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enablePan===!1)return;Lt(w),s=r.PAN}else{if(n.enableRotate===!1)return;K(w),s=r.ROTATE}break;case qn.PAN:if(w.ctrlKey||w.metaKey||w.shiftKey){if(n.enableRotate===!1)return;K(w),s=r.ROTATE}else{if(n.enablePan===!1)return;Lt(w),s=r.PAN}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function J(w){switch(s){case r.ROTATE:if(n.enableRotate===!1)return;G(w);break;case r.DOLLY:if(n.enableZoom===!1)return;nt(w);break;case r.PAN:if(n.enablePan===!1)return;gt(w);break}}function j(w){n.enabled===!1||n.enableZoom===!1||s!==r.NONE||(w.preventDefault(),n.dispatchEvent(Ks),Mt(yt(w)),n.dispatchEvent(ql))}function yt(w){const ot=w.deltaMode,dt={clientX:w.clientX,clientY:w.clientY,deltaY:w.deltaY};switch(ot){case 1:dt.deltaY*=16;break;case 2:dt.deltaY*=100;break}return w.ctrlKey&&!lt&&(dt.deltaY*=10),dt}function ut(w){w.key==="Control"&&(lt=!0,n.domElement.getRootNode().addEventListener("keyup",_t,{passive:!0,capture:!0}))}function _t(w){w.key==="Control"&&(lt=!1,n.domElement.getRootNode().removeEventListener("keyup",_t,{passive:!0,capture:!0}))}function Ct(w){n.enabled===!1||n.enablePan===!1||bt(w)}function Ft(w){switch(wt(w),P.length){case 1:switch(n.touches.ONE){case Yn.ROTATE:if(n.enableRotate===!1)return;xt(w),s=r.TOUCH_ROTATE;break;case Yn.PAN:if(n.enablePan===!1)return;Ot(w),s=r.TOUCH_PAN;break;default:s=r.NONE}break;case 2:switch(n.touches.TWO){case Yn.DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;R(w),s=r.TOUCH_DOLLY_PAN;break;case Yn.DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ct(w),s=r.TOUCH_DOLLY_ROTATE;break;default:s=r.NONE}break;default:s=r.NONE}s!==r.NONE&&n.dispatchEvent(Ks)}function Q(w){switch(wt(w),s){case r.TOUCH_ROTATE:if(n.enableRotate===!1)return;W(w),n.update();break;case r.TOUCH_PAN:if(n.enablePan===!1)return;at(w),n.update();break;case r.TOUCH_DOLLY_PAN:if(n.enableZoom===!1&&n.enablePan===!1)return;Et(w),n.update();break;case r.TOUCH_DOLLY_ROTATE:if(n.enableZoom===!1&&n.enableRotate===!1)return;ft(w),n.update();break;default:s=r.NONE}}function jt(w){n.enabled!==!1&&w.preventDefault()}function Gt(w){P.push(w.pointerId)}function It(w){delete V[w.pointerId];for(let ot=0;ot{i instanceof Array?i.forEach(Gc):(i.map&&i.map.dispose(),i.dispose())},kc=i=>{i.geometry&&i.geometry.dispose(),i.material&&Gc(i.material),i.texture&&i.texture.dispose(),i.children&&i.children.forEach(kc)},j_=i=>{if(i&&i.children)for(;i.children.length;){const t=i.children[0];i.remove(t),kc(t)}};var wa={exports:{}},Z_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=(r-n)/2,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},K_=function(t,e,n,r){var s=t[0],o=t[1],a=!1;n===void 0&&(n=0),r===void 0&&(r=e.length);for(var l=r-n,c=0,h=l-1;co!=g>o&&s<(m-u)*(o-d)/(g-d)+u;x&&(a=!a)}return a},Wc=Z_,Xc=K_;wa.exports=function(t,e,n,r){return e.length>0&&Array.isArray(e[0])?Xc(t,e,n,r):Wc(t,e,n,r)};wa.exports.nested=Xc;wa.exports.flat=Wc;const J_=""+new URL("ring2-a1b91808-balabala-1784074877048.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1784074877048.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1784074877048.png",import.meta.url).href;const t0={name:"ThreePie",props:{data:{type:Array,default:()=>[]},colors:{type:Array,default:()=>[2161326,15380744,3122407,65535,16536624]},opacity:{type:Number,default:.5},delay:{type:Number,default:5e3},loopComplete:{type:Function,default:()=>{}}},computed:{currentData(){return Fa(Oa({},this.data[this.activeIndex]),{count:this.count})}},data(){return this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null,this.pieGroup=new Vi,this.planeTweens=[],this.resizeHandler=null,this.visibilityObserver=null,this.isVisible=!0,this.isDestroyed=!1,this.isLooping=!1,{width:300,height:200,activeIndex:0,count:0,timer:null}},mounted(){this.isVisible=this.isElementVisible(this.$el),this.updateSize(),this.count=this.data.map(i=>Number(i.value)||0).reduce((i,t)=>i+t,0),this.init(),this.setupVisibilityObserver(),this.resizeHandler=()=>this.resize(),window.addEventListener("resize",this.resizeHandler)},beforeUnmount(){this.destroy()},methods:{init(){this.scene=new Lg,this.initCamera(),this.initRenderer(),this.initLight(),this.initAxes(),this.initControls(),this.createPlane({url:J_,width:5,position:new C(0,0,-.01),color:"#00ffff"}),this.createPlane({url:$_,width:6.5,position:new C(0,0,-.02),color:"#00ffff"}),this.createPlane({url:Q_,width:5.5,position:new C(0,0,-.03),animate:!0,color:"#00ffff"}),this.createPie(),this.isVisible&&this.start()},createPlane(i){let t={url:"texture/ring1.png",width:5.5,z:0,position:new C(0,0,0),animate:!1,color:null},e=Object.assign(t,i);const n=new Qi(e.width,e.width),r=new _a({map:this.getTexture(e.url),transparent:!0,side:ke,depthTest:!1});e.color&&(r.color=new Ut(e.color));const s=new Ce(n,r);if(s.position.copy(e.position),s.rotation.x=-1*Math.PI/2,e.animate){const o=Pn.to(s.rotation,{z:2*Math.PI,repeat:-1,ease:"none",duration:3});this.planeTweens.push(o)}this.scene.add(s)},getTexture(i){const t=new L_().load(i);return t.wrapS=t.wrapT=Vr,t},createPie(){if(!this.data.length||this.count<=0)return;let i=0,t=0;for(var e=0;e=this.data.length&&(i=0,this.loopComplete&&this.loopComplete()),this.chooseRing(i)},chooseRing(i=0,t=!1){if(!this.pieGroup.children.length)return;let e=i-1<0?this.data.length-1:i-1,n=this.pieGroup.children[e];this.prevMesh=n,this.activeIndex=i;let r=this.pieGroup.children[i];r&&(t||n&&(Pn.to(n.scale,{z:1}),Pn.to(n.material,{opacity:this.opacity})),Pn.to(r.scale,{z:2}),Pn.to(r.material,{opacity:.8}))},addRing(i={}){let t={innerRadius:1.5,outerRadius:2,thickness:.5,startAngle:0,endAngle:Math.PI/2,color:65535,segments:120},e=Object.assign(t,i),n=new qi;n.arc(0,0,e.outerRadius,e.startAngle,e.endAngle);let r=n.getPoints(e.segments),s=new qi;s.arc(0,0,e.innerRadius,e.endAngle,e.startAngle,!0);let o=s.getPoints(e.segments),a=new qi(r.concat(o));const l={steps:1,depth:e.thickness,bevelEnabled:!0,bevelThickness:0,bevelSize:0,bevelOffset:0,bevelSegments:0},c=new Ea(a,l);let h=new v_({color:e.color,transparent:!0,opacity:this.opacity,side:ke});const u=new Ce(c,h.clone());return u.renderOrder=10,u.rotation.x=-1*Math.PI/2,u},initCamera(){var i=this.width/this.height;this.camera=new Re(30,i,.1,1500),this.camera.position.set(6.023813305272227,4.838542633695233,6.111272698256137),this.camera.lookAt(0,0,0)},initRenderer(){this.renderer=new Ec({antialias:!0,alpha:!0}),this.renderer.setPixelRatio(this.getPixelRatio()),this.renderer.setSize(this.width,this.height),this.$refs.pieDom.appendChild(this.renderer.domElement)},initLight(){let i=new Hl(16777215,2);i.position.set(200,300,200);let t=new Hl(16777215,2);t.position.set(-200,-300,-200);let e=new U_(16777215,2);this.scene.add(i),this.scene.add(t),this.scene.add(e)},initAxes(){this.axes=new X_(0),this.scene.add(this.axes)},initControls(){this.controls=new Y_(this.camera,this.renderer.domElement),this.controls.maxPolarAngle=Math.PI,this.controls.autoRotate=!1,this.controls.enableDamping=!0,this.controls.enabled=!1},loop(){!this.renderer||this.isLooping||(this.isLooping=!0,this.renderer.setAnimationLoop(()=>{this.renderer.render(this.scene,this.camera),this.controls&&this.controls.update()}))},start(){this.isDestroyed||!this.renderer||!this.data.length||(this.isVisible=!0,this.loop(),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.resume)==null?void 0:t.call(i)}),this.controls&&(this.controls.enabled=!0),this.startTimer())},startTimer(){this.stopTimer(),!(this.data.length<2)&&(this.timer=window.setInterval(()=>{this.loopChange()},this.delay))},stop(){this.stopTimer(),this.controls&&(this.controls.enabled=!1),this.renderer&&this.renderer.setAnimationLoop(null),this.planeTweens.forEach(i=>{var t;return(t=i==null?void 0:i.pause)==null?void 0:t.call(i)}),this.isLooping=!1},stopTimer(){this.timer&&(window.clearInterval(this.timer),this.timer=null)},setupVisibilityObserver(){const i=this.$el;!i||typeof window.IntersectionObserver!="function"||(this.visibilityObserver=new IntersectionObserver(t=>{const e=t[0],n=!!(e!=null&&e.isIntersecting)&&this.isElementVisible(i);n!==this.isVisible&&(this.isVisible=n,n?(this.resize(),this.start()):this.stop())}),this.visibilityObserver.observe(i),this.isVisible=this.isElementVisible(i),this.isVisible||this.stop())},isElementVisible(i){if(!i||typeof window.getComputedStyle!="function")return!0;let t=i;for(;t&&t!==document.body;){const n=window.getComputedStyle(t);if(n.display==="none"||n.visibility==="hidden"||Number(n.opacity)===0)return!1;t=t.parentElement}const e=i.getBoundingClientRect();return e.width>0&&e.height>0},getPixelRatio(){return Math.min(window.devicePixelRatio||1,1.5)},updateSize(){var t,e;const i=this.$refs.pieDom;this.width=(i==null?void 0:i.offsetWidth)||((t=this.$el)==null?void 0:t.offsetWidth)||300,this.height=(i==null?void 0:i.offsetHeight)||((e=this.$el)==null?void 0:e.offsetHeight)||200},getScene(){return this.scene},getRender(){return this.renderer},resize(){if(!this.camera||!this.renderer)return;this.updateSize();let i=this.width/this.height;this.camera.aspect=i,this.camera.updateProjectionMatrix(),this.renderer.setSize(this.width,this.height),this.renderer.setPixelRatio(this.getPixelRatio())},destroy(){var i,t,e,n;this.isDestroyed=!0,this.prevMesh&&(Pn.set(this.prevMesh.scale,{z:1}),Pn.set(this.prevMesh.material,{opacity:this.opacity})),this.stop(),(t=(i=this.visibilityObserver)==null?void 0:i.disconnect)==null||t.call(i),this.visibilityObserver=null,this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null),this.renderer&&(this.planeTweens.forEach(r=>{var s;return(s=r==null?void 0:r.kill)==null?void 0:s.call(r)}),this.planeTweens=[],j_(this.pieGroup),this.renderer.dispose(),this.renderer.forceContextLoss(),(n=(e=this.controls)==null?void 0:e.dispose)==null||n.call(e),this.$refs.pieDom&&(this.$refs.pieDom.innerHTML=""),this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.axes=null)}}},e0={class:"three-pie-wrap"},n0={class:"three-pie",ref:"pieDom"},i0={class:"three-pie-slot"};function r0(i,t,e,n,r,s){return ih(),rh("div",e0,[za("div",n0,null,512),za("div",i0,[sh(i.$slots,"default",{data:s.currentData})])])}const L0=nh(t0,[["render",r0]]),gn=Object.freeze({canvasWidth:1920,canvasHeight:1080,sideCardWidth:398,sidePanelTop:128,sidePanelBottom:8,sideCardGap:12,sideCardMinHeight:227,cardTitleHeight:36}),D0=Object.freeze({ui:'"Alibaba PuHuiTi", "PingFang SC", "Microsoft YaHei", Arial, sans-serif',title:'"Alimama ShuHeiTi", "阿里妈妈数黑体 Bold", "Alibaba PuHuiTi", "Microsoft YaHei", sans-serif',number:'"D-DIN", "D-DIN-Bold", Arial, sans-serif'}),I0=Object.freeze({pageTitle:48,menu:14,cardTitle:16,kpiLabel:14,kpiValue:31,kpiUnit:11,chartUnit:10,chartAxis:10,chartLabel:11,tableBody:11,tableValue:12,popupTitle:20,popupBody:14,tooltip:12}),N0=Object.freeze({textPrimary:"#ffffff",textStrong:"#ffffff",textSecondary:"rgba(246, 253, 255, 0.92)",textMuted:"rgba(242, 253, 255, 0.9)",textWeak:"rgba(229, 248, 255, 0.74)",accentCyan:"#30dcff",accentMint:"#19ffc6",accentWater:"#31dcff",accentGrass:"#24f6c4",accentGold:"#8bf7ff",accentOrange:"#48cfff",cardBorder:"rgba(62, 226, 255, 0.5)",cardBg:"rgba(10, 52, 72, 0.7)",cardHeaderBg:"rgba(40, 124, 158, 0.62)",chartGridLine:"rgba(218, 250, 255, 0.28)",tooltipBg:"rgba(3, 13, 18, 0.92)",iconPrimary:"#30dcff",iconSecondary:"#19ffc6",iconBg:"rgba(48, 220, 255, 0.1)",iconBorder:"rgba(48, 220, 255, 0.42)",iconGlow:"rgba(48, 220, 255, 0.22)"});function U0(i=gn.canvasHeight){const t=Math.max(gn.canvasHeight,Number(i)||gn.canvasHeight),e=Math.floor((t-gn.sidePanelTop-gn.sidePanelBottom-gn.sideCardGap*3)/4);return Math.max(gn.sideCardMinHeight,e)}function O0(i,t=1){const e=Math.max(1,Number(t)||1);return i*e+gn.sideCardGap*(e-1)}export{Y_ as $,Va as A,$i as B,Ut as C,ke as D,p0 as E,bc as F,Vi as G,Rc as H,oe as I,qi as J,N0 as K,ya as L,L0 as M,_e as N,ae as O,Qi as P,Ic as Q,Vr as R,ve as S,zc as T,D0 as U,C as V,I0 as W,A0 as X,Ec as Y,gc as Z,Re as _,_a as a,qn as a0,Lg as a1,X_ as a2,vi as a3,P0 as a4,m0 as a5,tt as a6,Yt as a7,Tn as a8,Ea as a9,Tc as aA,Bn as aB,cn as aC,$t as aD,d0 as aE,Cc as aF,wc as aG,x0 as aH,Ng as aI,kr as aJ,Qt as aK,Ya as aL,us as aM,Pi as aN,ea as aO,Gr as aP,bn as aQ,xe as aR,$r as aS,Jr as aT,tr as aU,rs as aV,w_ as aW,wn as aa,b0 as ab,w0 as ac,Zr as ad,_0 as ae,ln as af,ht as ag,Ye as ah,zu as ai,An as aj,ee as ak,C0 as al,yu as am,R0 as an,l0 as ao,h0 as ap,c0 as aq,er as ar,E0 as as,on as at,M0 as au,v0 as av,f0 as aw,yl as ax,L_ as ay,T0 as az,Ce as b,U_ as c,Hl as d,j_ as e,S0 as f,v_ as g,__ as h,ch as i,On as j,vh as k,fh as l,Bg as m,Dg as n,u0 as o,y0 as p,gn as q,U0 as r,O0 as s,g0 as t,We as u,we as v,ze as w,Hg as x,Bc as y,ye as z}; diff --git a/docs/assets/screen2Standard-cdb21878-balabala-1784045078568.css b/docs/assets/screen2Standard-cdb21878-balabala-1784074877048.css similarity index 100% rename from docs/assets/screen2Standard-cdb21878-balabala-1784045078568.css rename to docs/assets/screen2Standard-cdb21878-balabala-1784074877048.css diff --git a/docs/assets/stack-7a426057-balabala-1784045078568.png b/docs/assets/stack-7a426057-balabala-1784074877048.png similarity index 100% rename from docs/assets/stack-7a426057-balabala-1784045078568.png rename to docs/assets/stack-7a426057-balabala-1784074877048.png diff --git a/docs/assets/title-zs1-c15a5ee8-balabala-1784045078568.svg b/docs/assets/title-zs1-c15a5ee8-balabala-1784074877048.svg similarity index 100% rename from docs/assets/title-zs1-c15a5ee8-balabala-1784045078568.svg rename to docs/assets/title-zs1-c15a5ee8-balabala-1784074877048.svg diff --git a/docs/assets/town-f8c0c9cc-balabala-1784045078568.png b/docs/assets/town-f8c0c9cc-balabala-1784074877048.png similarity index 100% rename from docs/assets/town-f8c0c9cc-balabala-1784045078568.png rename to docs/assets/town-f8c0c9cc-balabala-1784074877048.png diff --git a/docs/assets/townshipBoundaries-1b068bef-1784045078568.js b/docs/assets/townshipBoundaries-1b068bef-1784074877048.js similarity index 100% rename from docs/assets/townshipBoundaries-1b068bef-1784045078568.js rename to docs/assets/townshipBoundaries-1b068bef-1784074877048.js diff --git a/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png b/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784074877048.png similarity index 100% rename from docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png rename to docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784074877048.png diff --git a/docs/assets/yakApi-9c3a9777-1784045078568.js b/docs/assets/yakApi-16bd23bc-1784074877048.js similarity index 98% rename from docs/assets/yakApi-9c3a9777-1784045078568.js rename to docs/assets/yakApi-16bd23bc-1784074877048.js index 7b305ca..defe245 100644 --- a/docs/assets/yakApi-9c3a9777-1784045078568.js +++ b/docs/assets/yakApi-16bd23bc-1784074877048.js @@ -1 +1 @@ -var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-6a8ef8cf-1784045078568.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; +var R=Object.defineProperty,A=Object.defineProperties;var Y=Object.getOwnPropertyDescriptors;var d=Object.getOwnPropertySymbols;var $=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;var h=(e,t,n)=>t in e?R(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,v=(e,t)=>{for(var n in t||(t={}))$.call(t,n)&&h(e,n,t[n]);if(d)for(var n of d(t))_.call(t,n)&&h(e,n,t[n]);return e},N=(e,t)=>A(e,Y(t));var l=(e,t,n)=>new Promise((r,a)=>{var g=c=>{try{s(n.next(c))}catch(k){a(k)}},y=c=>{try{s(n.throw(c))}catch(k){a(k)}},s=c=>c.done?r(c.value):Promise.resolve(c.value).then(g,y);s((n=n.apply(e,t)).next())});import{r as E,n as p}from"./index-bc047bb3-1784074877048.js";const w="/jsyApi",o="/openApi",S=new Date().getFullYear();function F(e,t){return/^https?:\/\//.test(t)?t:`${e}${t.startsWith("/")?t:`/${t}`}`}function C(e){if((e==null?void 0:e.success)===!1&&(e==null?void 0:e.code)!==void 0&&![0,200,"0","200"].includes(e.code))throw new Error((e==null?void 0:e.msg)||(e==null?void 0:e.message)||"接口请求失败");return p(e)}function i(e,t,n,r={}){return E(F(e,t),{params:n,timeout:r.timeout||18e3}).then(C)}function T(){return i(w,"/api/yak/distribution").then(e=>m(e))}function x(){return i(w,"/api/yak/structure").then(e=>m(e))}function z(){return i(w,"/api/yak/forecast").then(e=>m(e))}function D(e=S){return i(o,"/yak/trade/overview",typeof e=="object"?e:{year:e}).then(n=>n||{})}function V(){return i(o,"/yak/trade/options").then(e=>e||{})}function I(e={}){return i(o,"/yak/trade/records",e).then(t=>t||{})}function J(e={}){return i(o,"/yak/epidemic/analysis",e).then(t=>t||{})}function q(e={}){return i(o,"/yak/epidemic/records",e).then(t=>t||{})}function L(e={}){return i(o,"/yak/epidemic/stats",e).then(t=>t||{})}function U(e={}){return i(o,"/yak/epidemic/village-stats",e).then(t=>t||{})}function W(e){return i(o,"/yak/epidemic/detail",{earTag:e}).then(t=>t||null)}function G(){return l(this,null,function*(){return(yield T()).map((t,n)=>({key:u(t,["areaCode","area_code","code","id"],`yak-town-${n}`),name:u(t,["areaName","area_name","zoneName","townName","name"],`区域${n+1}`),value:f(u(t,["number","yakCount","yak_count","count","value"])),unit:"头"})).filter(t=>t.name&&Number.isFinite(t.value)).sort((t,n)=>n.value-t.value)})}function H(){return l(this,null,function*(){const t=(yield x()).map((n,r)=>{const a=u(n,["sex","gender"],""),g=B(a),y=u(n,["ageRange","age_range","age","name","type"],""),s=[g,y].filter(Boolean).join(" ")||`结构${r+1}`;return{key:u(n,["id","key"],`${s}-${r}`),name:s,value:f(u(n,["number","count","value"])),unit:"头"}}).filter(n=>n.name&&Number.isFinite(n.value));return j(t)})}function K(){return l(this,null,function*(){return(yield z()).map((t,n)=>{const r=u(t,["month","date","name","time"],`预测${n+1}`);return{key:`${r}-${n}`,name:M(r),value:f(u(t,["number","count","yakCount","value"])),unit:"头",extra:b("增速",u(t,["speed","growth","growthRate","rate"]))}}).filter(t=>t.name&&Number.isFinite(t.value))})}function Q(){return l(this,null,function*(){const e=yield D(),t=m(e.usageCounts||e.usage_counts);return(t.length?t:m(e.startTownCounts||e.start_town_counts)).map((r,a)=>({key:u(r,["name","label"],`trade-${a}`),name:u(r,["name","label"],`类型${a+1}`),value:f(u(r,["headCount","head_count","amount","value","count"])),unit:"头",extra:b("记录",u(r,["recordCount","record_count"]))})).filter(r=>r.name&&Number.isFinite(r.value)).sort((r,a)=>a.value-r.value)})}function m(e){return Array.isArray(e)?e:Array.isArray(e==null?void 0:e.rows)?e.rows:Array.isArray(e==null?void 0:e.list)?e.list:Array.isArray(e==null?void 0:e.records)?e.records:Array.isArray(e==null?void 0:e.data)?e.data:[]}function j(e=[]){const t=new Map;return e.forEach(n=>{const r=t.get(n.name)||N(v({},n),{value:0});r.value+=n.value,t.set(n.name,r)}),[...t.values()].sort((n,r)=>r.value-n.value)}function u(e,t,n=""){for(const r of t){const a=e==null?void 0:e[r];if(a!=null&&a!=="")return a}return n}function B(e){return["boy","male","公","公牛"].includes(e)?"公牛":["girl","female","母","母牛"].includes(e)?"母牛":e||""}function M(e){const t=String(e||""),n=t.match(/(?:^|\D)(1[0-2]|0?[1-9])(?:月|$|-)/);return n?`${Number(n[1])}月`:t}function b(e,t){const n=f(t);return Number.isFinite(n)?`${e}:${n.toLocaleString("zh-CN",{maximumFractionDigits:2})}`:""}function f(e){if(e==null||e==="")return NaN;const t=Number(String(e).replace(/,/g,"").replace(/%/g,""));return Number.isFinite(t)?t:NaN}export{G as a,K as b,H as c,V as d,I as e,J as f,D as g,q as h,L as i,U as j,W as k,Q as l}; diff --git a/docs/assets/yield-66e9af79-balabala-1784045078568.png b/docs/assets/yield-66e9af79-balabala-1784074877048.png similarity index 100% rename from docs/assets/yield-66e9af79-balabala-1784045078568.png rename to docs/assets/yield-66e9af79-balabala-1784074877048.png diff --git a/docs/index.html b/docs/index.html index 7147e5f..f84c2bc 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,8 +11,8 @@ window.CESIUM_BASE_URL = "./cdn/Cesium/"; - - + + diff --git a/src/components/CesiumMap/index.vue b/src/components/CesiumMap/index.vue index ab74946..5dac2cf 100644 --- a/src/components/CesiumMap/index.vue +++ b/src/components/CesiumMap/index.vue @@ -28,8 +28,10 @@ const COUNTY_MASK_PADDING_LAT = 3.2 const COUNTY_WALL_MIN_HEIGHT = 500 const COUNTY_WALL_MAX_HEIGHT = 7600 const COUNTY_STAGE_HEIGHT = 900 -const COUNTY_BOUNDARY_RENDER_HEIGHT = 4700 -const TOWNSHIP_BOUNDARY_RENDER_HEIGHT = 4620 +const TERRAIN_TARGET_HEIGHT = 2200 +const FLAT_TARGET_HEIGHT = 0 +const TERRAIN_DETAIL_TARGET_HEIGHT = 2600 +const FLAT_DETAIL_TARGET_HEIGHT = 0 let hongyuanCountyClipMultiPolygon = [] let hongyuanCountyBoundaryPromise = null @@ -64,7 +66,7 @@ const props = defineProps({ }, terrainUrl: { type: String, - default: "/terrain", + default: "", }, center: { type: Array, @@ -76,7 +78,7 @@ const props = defineProps({ }, minimumZoomDistance: { type: Number, - default: 350, + default: 1, }, countyViewTargetOffset: { type: Object, @@ -269,7 +271,7 @@ function initializeCesium() { baseImageryLayer.saturation = hasHongyuanHighResolutionTile ? 1.08 : 1.05 baseImageryLayer.gamma = hasHongyuanHighResolutionTile ? 0.98 : 0.96 } - viewer.scene.globe.terrainExaggeration = 1.5 + viewer.scene.globe.terrainExaggeration = props.terrainUrl ? 1.5 : 1 viewer.scene.globe.depthTestAgainstTerrain = false viewer.scene.globe.baseColor = Cesium.Color.fromCssColorString("#061821") viewer.scene.backgroundColor = Cesium.Color.fromCssColorString("#020b12") @@ -736,7 +738,11 @@ function setCountyView(animated = true) { const center = getCountyCenter() const range = zoomToAltitude(props.initialZoom) const targetOffset = getCountyViewTargetOffset() - const target = Cesium.Cartesian3.fromDegrees(center[0] + targetOffset.lng, center[1] + targetOffset.lat, 2200) + const target = Cesium.Cartesian3.fromDegrees( + center[0] + targetOffset.lng, + center[1] + targetOffset.lat, + getDefaultTargetHeight(), + ) const offset = new Cesium.HeadingPitchRange( Cesium.Math.toRadians(COUNTY_VIEW_HEADING), Cesium.Math.toRadians(COUNTY_VIEW_PITCH), @@ -761,6 +767,14 @@ function getCountyViewTargetOffset() { } } +function getDefaultTargetHeight() { + return props.terrainUrl ? TERRAIN_TARGET_HEIGHT : FLAT_TARGET_HEIGHT +} + +function getDefaultDetailTargetHeight() { + return props.terrainUrl ? TERRAIN_DETAIL_TARGET_HEIGHT : FLAT_DETAIL_TARGET_HEIGHT +} + function zoomToAltitude(zoom) { const normalized = Number.isFinite(Number(zoom)) ? Number(zoom) : 9 return Math.max(9000, Math.min(580000, 365000 / Math.pow(1.62, normalized - 9))) @@ -1389,7 +1403,7 @@ function addTownshipBoundaries() { pointSize: 0, } createTownshipInternalBoundarySegments(hongyuanTownshipsGeoJson.features || []).forEach((segment) => { - const positions = toRaisedCartesianPositions(segment.points, TOWNSHIP_BOUNDARY_RENDER_HEIGHT) + const positions = toCartesianPositions(segment.points) if (positions.length < 2) return const entity = viewer.entities.add({ polyline: { @@ -1397,7 +1411,8 @@ function addTownshipBoundaries() { width: style.lineWidth, material: style.stroke, depthFailMaterial: style.stroke, - clampToGround: false, + clampToGround: true, + zIndex: 7, }, }) entity.__hyBoundaryRole = "township" @@ -1519,6 +1534,8 @@ function addCountyFrame() { hierarchy, material: Cesium.Color.fromCssColorString("#20EAF2").withAlpha(0.026), outline: false, + perPositionHeight: false, + heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, classificationType: Cesium.ClassificationType.BOTH, }, }) @@ -1526,25 +1543,25 @@ function addCountyFrame() { } const haloEntity = viewer.entities.add({ polyline: { - positions: toRaisedCartesianPositions(ring, COUNTY_BOUNDARY_RENDER_HEIGHT), + positions: toCartesianPositions(ring), width: 4.8, material: new Cesium.PolylineGlowMaterialProperty({ glowPower: 0.16, color: Cesium.Color.fromCssColorString("#78FFF7").withAlpha(0.48), }), depthFailMaterial: Cesium.Color.fromCssColorString("#78FFF7").withAlpha(0.32), - clampToGround: false, + clampToGround: true, zIndex: 8, }, }) haloEntity.__hyBoundaryRole = "county-halo" const outlineEntity = viewer.entities.add({ polyline: { - positions: toRaisedCartesianPositions(ring, COUNTY_BOUNDARY_RENDER_HEIGHT + 80), + positions: toCartesianPositions(ring), width: 1.9, material: Cesium.Color.fromCssColorString("#F2FFFB").withAlpha(0.98), depthFailMaterial: Cesium.Color.fromCssColorString("#F2FFFB").withAlpha(0.9), - clampToGround: false, + clampToGround: true, zIndex: 9, }, }) @@ -2579,7 +2596,7 @@ function showAnalysisResult(payload = {}) { function flyToPoint(point, altitude = 22000, duration = 0.9) { if (!viewer || !point) return const Cesium = window.Cesium - const target = Cesium.Cartesian3.fromDegrees(point[0], point[1], 3600) + const target = Cesium.Cartesian3.fromDegrees(point[0], point[1], getDefaultDetailTargetHeight()) viewer.camera.flyToBoundingSphere(new Cesium.BoundingSphere(target, 1), { offset: createFocusOffset(altitude), duration, @@ -2599,7 +2616,7 @@ function flyToBounds(bounds, duration = 0.9) { Math.abs(Number(bounds.north) - Number(bounds.south)), ) const range = Math.max(18000, Math.min(160000, span * 135000)) - const target = Cesium.Cartesian3.fromDegrees(center[0], center[1], 2600) + const target = Cesium.Cartesian3.fromDegrees(center[0], center[1], getDefaultDetailTargetHeight()) viewer.camera.flyToBoundingSphere(new Cesium.BoundingSphere(target, 1), { offset: createFocusOffset(range), duration, @@ -2619,7 +2636,7 @@ function applyLayerMapView(layer) { const range = Math.max(18000, Math.min(560000, baseRange * distanceScale)) const targetHeight = Number.isFinite(Number(view.targetHeight)) ? Number(view.targetHeight) - : 2600 + : getDefaultDetailTargetHeight() const heading = Number.isFinite(Number(view.heading)) ? Number(view.heading) : DETAIL_VIEW_HEADING const pitch = Number.isFinite(Number(view.pitch)) ? Number(view.pitch) : DETAIL_VIEW_PITCH const target = Cesium.Cartesian3.fromDegrees(targetLngLat[0], targetLngLat[1], targetHeight) @@ -2840,7 +2857,7 @@ function toCartesianPositions(coordinates = []) { return coordinates.map(normalizeLngLat).filter(Boolean).map((point) => Cesium.Cartesian3.fromDegrees(point[0], point[1], 8)) } -function toRaisedCartesianPositions(coordinates = [], height = COUNTY_BOUNDARY_RENDER_HEIGHT) { +function toRaisedCartesianPositions(coordinates = [], height = getDefaultDetailTargetHeight()) { const Cesium = window.Cesium return coordinates .map(normalizeLngLat) diff --git a/src/views/ecologicalProtection/index.vue b/src/views/ecologicalProtection/index.vue index 4861f7c..a3d6da3 100644 --- a/src/views/ecologicalProtection/index.vue +++ b/src/views/ecologicalProtection/index.vue @@ -92,6 +92,7 @@
    createFeaturePanelLayout({ })) const featurePanelHeight = computed(() => featurePanelLayout.value.height) const featurePanelStyle = computed(() => featurePanelLayout.value.style) +const featurePanelTitle = computed(() => { + const titleMap = { + "ecological-redline": "生态保护红线详情", + "natural-protected-area": "自然保护地详情", + "national-park": "国家公园详情", + restoration: "生态修复详情", + "engineering-analysis": "生态工程详情", + } + return titleMap[currentView.value] || `${baseActiveLayer.value?.name || "生态图斑"}详情` +}) onMounted(() => { updateScreenViewportHeight() diff --git a/src/views/forestGrassWet/components/FeatureInfoPanel.vue b/src/views/forestGrassWet/components/FeatureInfoPanel.vue index e6e5905..a1c30d2 100644 --- a/src/views/forestGrassWet/components/FeatureInfoPanel.vue +++ b/src/views/forestGrassWet/components/FeatureInfoPanel.vue @@ -1,13 +1,13 @@