From 97ba29968d7456470f5c3ef8fe9321ce758cb6fb 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 00:06:39 +0800 Subject: [PATCH] feat: optimize home map rendering --- ...iTi-14435b65-balabala-1784045078568.woff2} | Bin ...-Bold-6401fd0d-balabala-1784045078568.ttf} | Bin ...Bold-a95023f2-balabala-1784045078568.woff} | Bin ...old-fa4a258d-balabala-1784045078568.woff2} | Bin ...Panel-84703f43-balabala-1784045078568.css} | 0 ...eatureInfoPanel-b2a9b292-1784045078568.js} | 2 +- ...s => LayerPanel-67768a91-1784045078568.js} | 2 +- ...Panel-7a55b2bc-balabala-1784045078568.css} | 0 ...rtChartRenderer-4996c796-1784045078568.js} | 2 +- ...derer-7a3a96b9-balabala-1784045078568.css} | 0 ...tcher-27546cd1-balabala-1784045078568.css} | 2 +- ...> TopicSwitcher-2ffd167b-1784045078568.js} | 4 +- ... area-b57940eb-balabala-1784045078568.png} | Bin ...72.js => assets-4a378a39-1784045078568.js} | 2 +- ...=> bg-3acb94e3-balabala-1784045078568.png} | Bin ...w-big-180b7071-balabala-1784045078568.svg} | 0 ...small-19304179-balabala-1784045078568.svg} | 0 ...nu-bg-b465793d-balabala-1784045078568.png} | Bin ...u-btn-ee5c8064-balabala-1784045078568.png} | Bin ...hover-df33e514-balabala-1784045078568.png} | Bin ...s => chartTheme-8c348a2d-1784045078568.js} | 2 +- ...rLine-1a2cbc0f-balabala-1784045078568.png} | Bin ...arrow-3a8a61f3-balabala-1784045078568.svg} | 0 ...arrow-a3c5270d-balabala-1784045078568.svg} | 0 ...-line-162bc0d5-balabala-1784045078568.svg} | 0 ...4472.js => data-12043e21-1784045078568.js} | 4 +- ...4472.js => data-156ef419-1784045078568.js} | 2 +- ...4472.js => data-5c83c66b-1784045078568.js} | 0 ...4472.js => data-881b212b-1784045078568.js} | 2 +- ...4472.js => data-bfed1662-1784045078568.js} | 6 +- ...4472.js => data-efed6b46-1784045078568.js} | 2 +- ...turePanelLayout-5da16b00-1784045078568.js} | 2 +- ...line6-525edf67-balabala-1784045078568.png} | Bin ...us_bg-b6803e2d-balabala-1784045078568.png} | Bin ...ve_bg-cf41417a-balabala-1784045078568.png} | Bin ...js => geoserver-6ded2e06-1784045078568.js} | 2 +- ...er-bg-65b38012-balabala-1784045078568.png} | Bin ...guang-3c5dfda5-balabala-1784045078568.png} | Bin ...icon1-6f7c222f-balabala-1784045078568.png} | Bin ...icon2-4f77ccec-balabala-1784045078568.png} | Bin ...index-089a3dd0-balabala-1784045078568.css} | 0 ...index-0ef0ebc0-balabala-1784045078568.css} | 2 +- ...index-11333eca-balabala-1784045078568.css} | 0 ...index-148a2898-balabala-1784045078568.css} | 0 ...784043664472.js => index-1784045078568.js} | 2 +- ...472.js => index-24c07d59-1784045078568.js} | 2 +- ...472.js => index-27149dbd-1784045078568.js} | 2 +- ...472.js => index-2f522628-1784045078568.js} | 2 +- ...index-41d168c2-balabala-1784045078568.css} | 0 ...472.js => index-41e40dbf-1784045078568.js} | 2 +- docs/assets/index-4921f42e-1784043664472.js | 112 ------------------ ...index-5afedc21-balabala-1784045078568.css} | 0 ...472.js => index-6a8ef8cf-1784045078568.js} | 4 +- ...index-6e1f3341-balabala-1784045078568.css} | 0 ...index-7c335907-balabala-1784045078568.css} | 0 ...index-86616eb2-balabala-1784045078568.css} | 2 +- ...index-8d752fbe-balabala-1784045078568.css} | 0 ...index-9b7a4b9d-balabala-1784045078568.css} | 2 +- ...index-a8767fd0-balabala-1784045078568.css} | 2 +- ...472.js => index-ad1f9dba-1784045078568.js} | 2 +- ...472.js => index-bb5d6c3e-1784045078568.js} | 2 +- ...472.js => index-c252ce06-1784045078568.js} | 2 +- ...index-c36df85d-balabala-1784045078568.css} | 0 ...472.js => index-c45f03eb-1784045078568.js} | 2 +- ...472.js => index-e02d03a3-1784045078568.js} | 2 +- ...index-e174cf85-balabala-1784045078568.css} | 0 ...472.js => index-e4881302-1784045078568.js} | 2 +- ...472.js => index-e9f36657-1784045078568.js} | 0 ...472.js => index-f6dff886-1784045078568.js} | 4 +- docs/assets/index-fe56ccaa-1784045078568.js | 112 ++++++++++++++++++ ...> index.esm.min-43166a2f-1784045078568.js} | 2 +- ...ayout-b708cd9c-balabala-1784045078568.css} | 0 ... leaf-7be9efef-balabala-1784045078568.png} | Bin ...kuang-5d6bd1ae-balabala-1784045078568.svg} | 0 ...=> live-scene-1-7846500b-1784045078568.js} | 4 +- ...ene-1-786cdd0a-balabala-1784045078568.png} | Bin ...> livestockData-36ec0ae2-1784045078568.js} | 0 ...u-btn-91a961cf-balabala-1784045078568.png} | Bin ...hover-62eba0bb-balabala-1784045078568.png} | Bin ...an-bg-8c848b8f-balabala-1784045078568.png} | Bin ...2.js => openApi-528034ce-1784045078568.js} | 2 +- ... park-ee0533e0-balabala-1784045078568.png} | Bin ...Line2-d4134d4b-balabala-1784045078568.png} | Bin ...kuang-b1937caf-balabala-1784045078568.svg} | 0 ...ring2-a1b91808-balabala-1784045078568.png} | Bin ...ring3-fe0f60d7-balabala-1784045078568.png} | Bin ...ring4-f2e324d6-balabala-1784045078568.png} | Bin ...rder1-2ce8e0ef-balabala-1784045078568.png} | Bin ...rder2-7496b968-balabala-1784045078568.png} | Bin ...guang-ccf84a88-balabala-1784045078568.svg} | 0 ...screen2Standard-98cd5b6c-1784045078568.js} | 4 +- ...ndard-cdb21878-balabala-1784045078568.css} | 0 ...stack-7a426057-balabala-1784045078568.png} | Bin ...e-zs1-c15a5ee8-balabala-1784045078568.svg} | 0 ... town-f8c0c9cc-balabala-1784045078568.png} | Bin ...nshipBoundaries-1b068bef-1784045078568.js} | 0 ...-base-03c7f2cb-balabala-1784045078568.png} | Bin ...72.js => yakApi-9c3a9777-1784045078568.js} | 2 +- ...yield-66e9af79-balabala-1784045078568.png} | Bin docs/index.html | 4 +- src/mini3d/core/Renderer.js | 17 +-- src/mini3d/utils/Sizes.js | 9 +- src/views/gdMap/assets.js | 71 +++++------ src/views/gdMap/map.js | 34 ++++-- src/views/gdMap/map.vue | 5 + src/views/home/index.vue | 3 +- 106 files changed, 239 insertions(+), 216 deletions(-) rename docs/assets/{AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2 => AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf => AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff => AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff} (100%) rename docs/assets/{AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2 => AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2} (100%) rename docs/assets/{FeatureInfoPanel-84703f43-balabala-1784043664472.css => FeatureInfoPanel-84703f43-balabala-1784045078568.css} (100%) rename docs/assets/{FeatureInfoPanel-479e79c5-1784043664472.js => FeatureInfoPanel-b2a9b292-1784045078568.js} (99%) rename docs/assets/{LayerPanel-4a87f4f0-1784043664472.js => LayerPanel-67768a91-1784045078568.js} (95%) rename docs/assets/{LayerPanel-7a55b2bc-balabala-1784043664472.css => LayerPanel-7a55b2bc-balabala-1784045078568.css} (100%) rename docs/assets/{SmartChartRenderer-7992758b-1784043664472.js => SmartChartRenderer-4996c796-1784045078568.js} (97%) rename docs/assets/{SmartChartRenderer-7a3a96b9-balabala-1784043664472.css => SmartChartRenderer-7a3a96b9-balabala-1784045078568.css} (100%) rename docs/assets/{TopicSwitcher-589da7c9-balabala-1784043664472.css => TopicSwitcher-27546cd1-balabala-1784045078568.css} (88%) rename docs/assets/{TopicSwitcher-f0c08774-1784043664472.js => TopicSwitcher-2ffd167b-1784045078568.js} (98%) rename docs/assets/{area-b57940eb-balabala-1784043664472.png => area-b57940eb-balabala-1784045078568.png} (100%) rename docs/assets/{assets-93f7396b-1784043664472.js => assets-4a378a39-1784045078568.js} (82%) rename docs/assets/{bg-3acb94e3-balabala-1784043664472.png => bg-3acb94e3-balabala-1784045078568.png} (100%) rename docs/assets/{bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg => bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg} (100%) rename docs/assets/{bottom-menu-arrow-small-19304179-balabala-1784043664472.svg => bottom-menu-arrow-small-19304179-balabala-1784045078568.svg} (100%) rename docs/assets/{bottom-menu-bg-b465793d-balabala-1784043664472.png => bottom-menu-bg-b465793d-balabala-1784045078568.png} (100%) rename docs/assets/{bottom-menu-btn-ee5c8064-balabala-1784043664472.png => bottom-menu-btn-ee5c8064-balabala-1784045078568.png} (100%) rename docs/assets/{bottom-menu-btn-hover-df33e514-balabala-1784043664472.png => bottom-menu-btn-hover-df33e514-balabala-1784045078568.png} (100%) rename docs/assets/{chartTheme-95a980bb-1784043664472.js => chartTheme-8c348a2d-1784045078568.js} (97%) rename docs/assets/{chinaBlurLine-1a2cbc0f-balabala-1784043664472.png => chinaBlurLine-1a2cbc0f-balabala-1784045078568.png} (100%) rename docs/assets/{content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg => content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg} (100%) rename docs/assets/{content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg => content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg} (100%) rename docs/assets/{content-middle-line-162bc0d5-balabala-1784043664472.svg => content-middle-line-162bc0d5-balabala-1784045078568.svg} (100%) rename docs/assets/{data-5aa1bc1b-1784043664472.js => data-12043e21-1784045078568.js} (99%) rename docs/assets/{data-defd9b10-1784043664472.js => data-156ef419-1784045078568.js} (98%) rename docs/assets/{data-5c83c66b-1784043664472.js => data-5c83c66b-1784045078568.js} (100%) rename docs/assets/{data-b0a5f9a8-1784043664472.js => data-881b212b-1784045078568.js} (97%) rename docs/assets/{data-3d6664cd-1784043664472.js => data-bfed1662-1784045078568.js} (66%) rename docs/assets/{data-b5a92f08-1784043664472.js => data-efed6b46-1784045078568.js} (99%) rename docs/assets/{featurePanelLayout-93409244-1784043664472.js => featurePanelLayout-5da16b00-1784045078568.js} (98%) rename docs/assets/{flyline6-525edf67-balabala-1784043664472.png => flyline6-525edf67-balabala-1784045078568.png} (100%) rename docs/assets/{focus_bg-b6803e2d-balabala-1784043664472.png => focus_bg-b6803e2d-balabala-1784045078568.png} (100%) rename docs/assets/{focus_move_bg-cf41417a-balabala-1784043664472.png => focus_move_bg-cf41417a-balabala-1784045078568.png} (100%) rename docs/assets/{geoserver-6574cb91-1784043664472.js => geoserver-6ded2e06-1784045078568.js} (94%) rename docs/assets/{header-bg-65b38012-balabala-1784043664472.png => header-bg-65b38012-balabala-1784045078568.png} (100%) rename docs/assets/{huiguang-3c5dfda5-balabala-1784043664472.png => huiguang-3c5dfda5-balabala-1784045078568.png} (100%) rename docs/assets/{icon1-6f7c222f-balabala-1784043664472.png => icon1-6f7c222f-balabala-1784045078568.png} (100%) rename docs/assets/{icon2-4f77ccec-balabala-1784043664472.png => icon2-4f77ccec-balabala-1784045078568.png} (100%) rename docs/assets/{index-089a3dd0-balabala-1784043664472.css => index-089a3dd0-balabala-1784045078568.css} (100%) rename docs/assets/{index-51731c25-balabala-1784043664472.css => index-0ef0ebc0-balabala-1784045078568.css} (95%) rename docs/assets/{index-11333eca-balabala-1784043664472.css => index-11333eca-balabala-1784045078568.css} (100%) rename docs/assets/{index-148a2898-balabala-1784043664472.css => index-148a2898-balabala-1784045078568.css} (100%) rename docs/assets/{index-1784043664472.js => index-1784045078568.js} (99%) rename docs/assets/{index-8532142c-1784043664472.js => index-24c07d59-1784045078568.js} (98%) rename docs/assets/{index-e3442fcf-1784043664472.js => index-27149dbd-1784045078568.js} (96%) rename docs/assets/{index-c7da184e-1784043664472.js => index-2f522628-1784045078568.js} (96%) rename docs/assets/{index-41d168c2-balabala-1784043664472.css => index-41d168c2-balabala-1784045078568.css} (100%) rename docs/assets/{index-7103e996-1784043664472.js => index-41e40dbf-1784045078568.js} (99%) delete mode 100644 docs/assets/index-4921f42e-1784043664472.js rename docs/assets/{index-5afedc21-balabala-1784043664472.css => index-5afedc21-balabala-1784045078568.css} (100%) rename docs/assets/{index-d0c7091a-1784043664472.js => index-6a8ef8cf-1784045078568.js} (82%) rename docs/assets/{index-6e1f3341-balabala-1784043664472.css => index-6e1f3341-balabala-1784045078568.css} (100%) rename docs/assets/{index-7c335907-balabala-1784043664472.css => index-7c335907-balabala-1784045078568.css} (100%) rename docs/assets/{index-6fbdaf34-balabala-1784043664472.css => index-86616eb2-balabala-1784045078568.css} (99%) rename docs/assets/{index-8d752fbe-balabala-1784043664472.css => index-8d752fbe-balabala-1784045078568.css} (100%) rename docs/assets/{index-99bb110d-balabala-1784043664472.css => index-9b7a4b9d-balabala-1784045078568.css} (97%) rename docs/assets/{index-46ddbb9a-balabala-1784043664472.css => index-a8767fd0-balabala-1784045078568.css} (97%) rename docs/assets/{index-d9d7aa94-1784043664472.js => index-ad1f9dba-1784045078568.js} (95%) rename docs/assets/{index-a29410f4-1784043664472.js => index-bb5d6c3e-1784045078568.js} (96%) rename docs/assets/{index-0060e718-1784043664472.js => index-c252ce06-1784045078568.js} (99%) rename docs/assets/{index-c36df85d-balabala-1784043664472.css => index-c36df85d-balabala-1784045078568.css} (100%) rename docs/assets/{index-cd04b5b9-1784043664472.js => index-c45f03eb-1784045078568.js} (98%) rename docs/assets/{index-82127856-1784043664472.js => index-e02d03a3-1784045078568.js} (95%) rename docs/assets/{index-e174cf85-balabala-1784043664472.css => index-e174cf85-balabala-1784045078568.css} (100%) rename docs/assets/{index-98e33e33-1784043664472.js => index-e4881302-1784045078568.js} (99%) rename docs/assets/{index-e9f36657-1784043664472.js => index-e9f36657-1784045078568.js} (100%) rename docs/assets/{index-e521f518-1784043664472.js => index-f6dff886-1784045078568.js} (97%) create mode 100644 docs/assets/index-fe56ccaa-1784045078568.js rename docs/assets/{index.esm.min-c54f6e6e-1784043664472.js => index.esm.min-43166a2f-1784045078568.js} (99%) rename docs/assets/{layout-b708cd9c-balabala-1784043664472.css => layout-b708cd9c-balabala-1784045078568.css} (100%) rename docs/assets/{leaf-7be9efef-balabala-1784043664472.png => leaf-7be9efef-balabala-1784045078568.png} (100%) rename docs/assets/{left-kuang-5d6bd1ae-balabala-1784043664472.svg => left-kuang-5d6bd1ae-balabala-1784045078568.svg} (100%) rename docs/assets/{live-scene-1-16ce1514-1784043664472.js => live-scene-1-7846500b-1784045078568.js} (99%) rename docs/assets/{live-scene-1-786cdd0a-balabala-1784043664472.png => live-scene-1-786cdd0a-balabala-1784045078568.png} (100%) rename docs/assets/{livestockData-36ec0ae2-1784043664472.js => livestockData-36ec0ae2-1784045078568.js} (100%) rename docs/assets/{menu-btn-91a961cf-balabala-1784043664472.png => menu-btn-91a961cf-balabala-1784045078568.png} (100%) rename docs/assets/{menu-btn-hover-62eba0bb-balabala-1784043664472.png => menu-btn-hover-62eba0bb-balabala-1784045078568.png} (100%) rename docs/assets/{ocean-bg-8c848b8f-balabala-1784043664472.png => ocean-bg-8c848b8f-balabala-1784045078568.png} (100%) rename docs/assets/{openApi-928665d4-1784043664472.js => openApi-528034ce-1784045078568.js} (99%) rename docs/assets/{park-ee0533e0-balabala-1784043664472.png => park-ee0533e0-balabala-1784045078568.png} (100%) rename docs/assets/{pathLine2-d4134d4b-balabala-1784043664472.png => pathLine2-d4134d4b-balabala-1784045078568.png} (100%) rename docs/assets/{right-kuang-b1937caf-balabala-1784043664472.svg => right-kuang-b1937caf-balabala-1784045078568.svg} (100%) rename docs/assets/{ring2-a1b91808-balabala-1784043664472.png => ring2-a1b91808-balabala-1784045078568.png} (100%) rename docs/assets/{ring3-fe0f60d7-balabala-1784043664472.png => ring3-fe0f60d7-balabala-1784045078568.png} (100%) rename docs/assets/{ring4-f2e324d6-balabala-1784043664472.png => ring4-f2e324d6-balabala-1784045078568.png} (100%) rename docs/assets/{rotationBorder1-2ce8e0ef-balabala-1784043664472.png => rotationBorder1-2ce8e0ef-balabala-1784045078568.png} (100%) rename docs/assets/{rotationBorder2-7496b968-balabala-1784043664472.png => rotationBorder2-7496b968-balabala-1784045078568.png} (100%) rename docs/assets/{saoguang-ccf84a88-balabala-1784043664472.svg => saoguang-ccf84a88-balabala-1784045078568.svg} (100%) rename docs/assets/{screen2Standard-15e4461a-1784043664472.js => screen2Standard-98cd5b6c-1784045078568.js} (99%) rename docs/assets/{screen2Standard-cdb21878-balabala-1784043664472.css => screen2Standard-cdb21878-balabala-1784045078568.css} (100%) rename docs/assets/{stack-7a426057-balabala-1784043664472.png => stack-7a426057-balabala-1784045078568.png} (100%) rename docs/assets/{title-zs1-c15a5ee8-balabala-1784043664472.svg => title-zs1-c15a5ee8-balabala-1784045078568.svg} (100%) rename docs/assets/{town-f8c0c9cc-balabala-1784043664472.png => town-f8c0c9cc-balabala-1784045078568.png} (100%) rename docs/assets/{townshipBoundaries-1b068bef-1784043664472.js => townshipBoundaries-1b068bef-1784045078568.js} (100%) rename docs/assets/{xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png => xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png} (100%) rename docs/assets/{yakApi-032bf70c-1784043664472.js => yakApi-9c3a9777-1784045078568.js} (98%) rename docs/assets/{yield-66e9af79-balabala-1784043664472.png => yield-66e9af79-balabala-1784045078568.png} (100%) diff --git a/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2 b/docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2 similarity index 100% rename from docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784043664472.woff2 rename to docs/assets/AlibabaPuHuiTi-14435b65-balabala-1784045078568.woff2 diff --git a/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf b/docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.ttf rename to docs/assets/AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784045078568.ttf diff --git a/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff b/docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff rename to docs/assets/AlimamaShuHeiTi-Bold-a95023f2-balabala-1784045078568.woff diff --git a/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2 b/docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2 similarity index 100% rename from docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2 rename to docs/assets/AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784045078568.woff2 diff --git a/docs/assets/FeatureInfoPanel-84703f43-balabala-1784043664472.css b/docs/assets/FeatureInfoPanel-84703f43-balabala-1784045078568.css similarity index 100% rename from docs/assets/FeatureInfoPanel-84703f43-balabala-1784043664472.css rename to docs/assets/FeatureInfoPanel-84703f43-balabala-1784045078568.css diff --git a/docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js b/docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js similarity index 99% rename from docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js rename to docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js index 55405e7..dfaf687 100644 --- a/docs/assets/FeatureInfoPanel-479e79c5-1784043664472.js +++ b/docs/assets/FeatureInfoPanel-b2a9b292-1784045078568.js @@ -1,3 +1,3 @@ -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-1784043664472.js";import{K as ua,M as os}from"./screen2Standard-15e4461a-1784043664472.js";import{_ as us}from"./index-e3442fcf-1784043664472.js";import{d as is,e as fn}from"./townshipBoundaries-1b068bef-1784043664472.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(` +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-4a87f4f0-1784043664472.js b/docs/assets/LayerPanel-67768a91-1784045078568.js similarity index 95% rename from docs/assets/LayerPanel-4a87f4f0-1784043664472.js rename to docs/assets/LayerPanel-67768a91-1784045078568.js index d3bb8db..142b424 100644 --- a/docs/assets/LayerPanel-4a87f4f0-1784043664472.js +++ b/docs/assets/LayerPanel-67768a91-1784045078568.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-1784043664472.js";import{_ as H}from"./index-e3442fcf-1784043664472.js";import{b as j}from"./townshipBoundaries-1b068bef-1784043664472.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-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 _}; diff --git a/docs/assets/LayerPanel-7a55b2bc-balabala-1784043664472.css b/docs/assets/LayerPanel-7a55b2bc-balabala-1784045078568.css similarity index 100% rename from docs/assets/LayerPanel-7a55b2bc-balabala-1784043664472.css rename to docs/assets/LayerPanel-7a55b2bc-balabala-1784045078568.css diff --git a/docs/assets/SmartChartRenderer-7992758b-1784043664472.js b/docs/assets/SmartChartRenderer-4996c796-1784045078568.js similarity index 97% rename from docs/assets/SmartChartRenderer-7992758b-1784043664472.js rename to docs/assets/SmartChartRenderer-4996c796-1784045078568.js index 425427d..182f447 100644 --- a/docs/assets/SmartChartRenderer-7992758b-1784043664472.js +++ b/docs/assets/SmartChartRenderer-4996c796-1784045078568.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-1784043664472.js";import{H as j}from"./index.esm.min-c54f6e6e-1784043664472.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-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} {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/SmartChartRenderer-7a3a96b9-balabala-1784043664472.css b/docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784045078568.css similarity index 100% rename from docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784043664472.css rename to docs/assets/SmartChartRenderer-7a3a96b9-balabala-1784045078568.css diff --git a/docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css b/docs/assets/TopicSwitcher-27546cd1-balabala-1784045078568.css similarity index 88% rename from docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css rename to docs/assets/TopicSwitcher-27546cd1-balabala-1784045078568.css index 1401bb8..c5a79e3 100644 --- a/docs/assets/TopicSwitcher-589da7c9-balabala-1784043664472.css +++ b/docs/assets/TopicSwitcher-27546cd1-balabala-1784045078568.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-1784043664472.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-1784043664472.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-1784043664472.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-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} diff --git a/docs/assets/TopicSwitcher-f0c08774-1784043664472.js b/docs/assets/TopicSwitcher-2ffd167b-1784045078568.js similarity index 98% rename from docs/assets/TopicSwitcher-f0c08774-1784043664472.js rename to docs/assets/TopicSwitcher-2ffd167b-1784045078568.js index 089d682..817d6ef 100644 --- a/docs/assets/TopicSwitcher-f0c08774-1784043664472.js +++ b/docs/assets/TopicSwitcher-2ffd167b-1784045078568.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-15e4461a-1784043664472.js";import{_ as pe,a as ge}from"./index-d0c7091a-1784043664472.js";import{f as me}from"./townshipBoundaries-1b068bef-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.png",import.meta.url).href,Ms=""+new URL("rotationBorder1-2ce8e0ef-balabala-1784043664472.png",import.meta.url).href,Ds=""+new URL("rotationBorder2-7496b968-balabala-1784043664472.png",import.meta.url).href,Ns=""+new URL("chinaBlurLine-1a2cbc0f-balabala-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.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 _,bs as a,Bs as b,Ds as c,Os as d,Ns 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,Ss 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-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}; diff --git a/docs/assets/area-b57940eb-balabala-1784043664472.png b/docs/assets/area-b57940eb-balabala-1784045078568.png similarity index 100% rename from docs/assets/area-b57940eb-balabala-1784043664472.png rename to docs/assets/area-b57940eb-balabala-1784045078568.png diff --git a/docs/assets/assets-93f7396b-1784043664472.js b/docs/assets/assets-4a378a39-1784045078568.js similarity index 82% rename from docs/assets/assets-93f7396b-1784043664472.js rename to docs/assets/assets-4a378a39-1784045078568.js index 5f4e11f..c091db9 100644 --- a/docs/assets/assets-93f7396b-1784043664472.js +++ b/docs/assets/assets-4a378a39-1784045078568.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-15e4461a-1784043664472.js";import{R as x,p as u,a as g,b as l,h as f,r as L,c as A,g as B,d as N,e 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-f0c08774-1784043664472.js";import{g as n,a as h,H as q,C as G}from"./index-0060e718-1784043664472.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-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}; diff --git a/docs/assets/bg-3acb94e3-balabala-1784043664472.png b/docs/assets/bg-3acb94e3-balabala-1784045078568.png similarity index 100% rename from docs/assets/bg-3acb94e3-balabala-1784043664472.png rename to docs/assets/bg-3acb94e3-balabala-1784045078568.png diff --git a/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg b/docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg rename to docs/assets/bottom-menu-arrow-big-180b7071-balabala-1784045078568.svg diff --git a/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784043664472.svg b/docs/assets/bottom-menu-arrow-small-19304179-balabala-1784045078568.svg similarity index 100% rename from docs/assets/bottom-menu-arrow-small-19304179-balabala-1784043664472.svg rename to docs/assets/bottom-menu-arrow-small-19304179-balabala-1784045078568.svg diff --git a/docs/assets/bottom-menu-bg-b465793d-balabala-1784043664472.png b/docs/assets/bottom-menu-bg-b465793d-balabala-1784045078568.png similarity index 100% rename from docs/assets/bottom-menu-bg-b465793d-balabala-1784043664472.png rename to docs/assets/bottom-menu-bg-b465793d-balabala-1784045078568.png diff --git a/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784043664472.png b/docs/assets/bottom-menu-btn-ee5c8064-balabala-1784045078568.png similarity index 100% rename from docs/assets/bottom-menu-btn-ee5c8064-balabala-1784043664472.png rename to docs/assets/bottom-menu-btn-ee5c8064-balabala-1784045078568.png diff --git a/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784043664472.png b/docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784045078568.png similarity index 100% rename from docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784043664472.png rename to docs/assets/bottom-menu-btn-hover-df33e514-balabala-1784045078568.png diff --git a/docs/assets/chartTheme-95a980bb-1784043664472.js b/docs/assets/chartTheme-8c348a2d-1784045078568.js similarity index 97% rename from docs/assets/chartTheme-95a980bb-1784043664472.js rename to docs/assets/chartTheme-8c348a2d-1784045078568.js index 4179986..88a19cf 100644 --- a/docs/assets/chartTheme-95a980bb-1784043664472.js +++ b/docs/assets/chartTheme-8c348a2d-1784045078568.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-1784043664472.js";import{U as B,K as c,W as d}from"./screen2Standard-15e4461a-1784043664472.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-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}; diff --git a/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784043664472.png b/docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784045078568.png similarity index 100% rename from docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784043664472.png rename to docs/assets/chinaBlurLine-1a2cbc0f-balabala-1784045078568.png diff --git a/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg b/docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg similarity index 100% rename from docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg rename to docs/assets/content-bottom-left-arrow-3a8a61f3-balabala-1784045078568.svg diff --git a/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg b/docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg similarity index 100% rename from docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg rename to docs/assets/content-bottom-right-arrow-a3c5270d-balabala-1784045078568.svg diff --git a/docs/assets/content-middle-line-162bc0d5-balabala-1784043664472.svg b/docs/assets/content-middle-line-162bc0d5-balabala-1784045078568.svg similarity index 100% rename from docs/assets/content-middle-line-162bc0d5-balabala-1784043664472.svg rename to docs/assets/content-middle-line-162bc0d5-balabala-1784045078568.svg diff --git a/docs/assets/data-5aa1bc1b-1784043664472.js b/docs/assets/data-12043e21-1784045078568.js similarity index 99% rename from docs/assets/data-5aa1bc1b-1784043664472.js rename to docs/assets/data-12043e21-1784045078568.js index 4113313..7002e5b 100644 --- a/docs/assets/data-5aa1bc1b-1784043664472.js +++ b/docs/assets/data-12043e21-1784045078568.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-1784043664472.js";import{h as ce,H as W}from"./townshipBoundaries-1b068bef-1784043664472.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-1784045078568.js";import{h as ce,H as W}from"./townshipBoundaries-1b068bef-1784045078568.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-1784043664472.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-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}; diff --git a/docs/assets/data-defd9b10-1784043664472.js b/docs/assets/data-156ef419-1784045078568.js similarity index 98% rename from docs/assets/data-defd9b10-1784043664472.js rename to docs/assets/data-156ef419-1784045078568.js index f71c25e..97ff1a1 100644 --- a/docs/assets/data-defd9b10-1784043664472.js +++ b/docs/assets/data-156ef419-1784045078568.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-1784043664472.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-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}; diff --git a/docs/assets/data-5c83c66b-1784043664472.js b/docs/assets/data-5c83c66b-1784045078568.js similarity index 100% rename from docs/assets/data-5c83c66b-1784043664472.js rename to docs/assets/data-5c83c66b-1784045078568.js diff --git a/docs/assets/data-b0a5f9a8-1784043664472.js b/docs/assets/data-881b212b-1784045078568.js similarity index 97% rename from docs/assets/data-b0a5f9a8-1784043664472.js rename to docs/assets/data-881b212b-1784045078568.js index 02b1272..4732400 100644 --- a/docs/assets/data-b0a5f9a8-1784043664472.js +++ b/docs/assets/data-881b212b-1784045078568.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-1784043664472.js";import{e as T}from"./data-5c83c66b-1784043664472.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-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}; diff --git a/docs/assets/data-3d6664cd-1784043664472.js b/docs/assets/data-bfed1662-1784045078568.js similarity index 66% rename from docs/assets/data-3d6664cd-1784043664472.js rename to docs/assets/data-bfed1662-1784045078568.js index af28dd3..32fc6ee 100644 --- a/docs/assets/data-3d6664cd-1784043664472.js +++ b/docs/assets/data-bfed1662-1784045078568.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 Bn,af as Vt,ag as Te,ah as Be,ai as Jt,aj as Rn,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-15e4461a-1784043664472.js";import{E as lt,q as Xt}from"./TopicSwitcher-f0c08774-1784043664472.js";import{t as Wn,Y as kn,a as Hn,b as Kt,c as Yn}from"./livestockData-36ec0ae2-1784043664472.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}){super(),this.canvas=e,this.maxPixelRatio=2,this.handleResize=()=>{this.init(),this.emit("resize")},this.init(),window.addEventListener("resize",this.handleResize)}init(){var n;const e=((n=this.canvas)==null?void 0:n.parentNode)||this.canvas||document.documentElement;this.width=e.offsetWidth||window.innerWidth||1,this.height=e.offsetHeight||window.innerHeight||1,this.pixelRatio=Math.min(window.devicePixelRatio||1,this.maxPixelRatio)}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,R=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,R(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 Re(t,e){return R(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,B=z*O,A=B>P,Y=f*C;if(h.add(we(Y*z*I(B),E*L+Y*U(B))),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=R(o-e);R(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&&(R(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(R(t[0]-e[0])>T){var o=t[0]0,s=R(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||Re(c,y)||Re(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||!Re(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,B=Ae(L,z),A=Ae(z,z),Y=B*B-A*(Ae(L,L)-1);if(!(Y<0)){var _=Ne(Y),D=Ce(z,(-B-_)/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]<(R(D[0]-v)P^(v<=D[0]&&D[0]<=b)){var oe=Ce(z,(-B+_)/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 R(d[0]-t)0?0:3:R(d[0]-n)0?2:1:R(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:B,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 B(){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=R(R(C)-1)e||R((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=Bt(n,0,0,u,p,c).apply(null,e(o,r)),b=Bt(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=B=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-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() {",` varying vec3 vPosition; void main(){ vPosition = position; @@ -47,7 +47,7 @@ var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnProp } else { gl_FragColor = vec4(outgoingLight, 0.0); } - `)}}}class $i{constructor({scene:e,time:n},i){this.scene=e,this.time=n,this.instance=null;let s={position:new F(0,0,0),gridSize:100,gridDivision:20,gridColor:2635578,shapeSize:1,shapeColor:9345950,pointSize:.2,pointColor:2635578,pointLayout:{row:200,col:200},pointBlending:An};this.options=Object.assign({},s,i),this.init()}init(){let e=new ve;e.name="Grid";let n=this.createGridHelp(),i=this.createShapes(),s=this.createPoint();e.add(n,i,s),e.position.copy(this.options.position),this.instance=e,this.scene.add(e)}createShapes(){let{gridSize:e,gridDivision:n,shapeSize:i,shapeColor:s}=this.options,o=e/n,r=e/2,a=new ge({color:s,side:Cn}),h=[];for(let c=0;c{this.update()}),this.sizes.on("resize",()=>{this.resize()})}create(e="",n="",i=!1){let s=document.createElement("div");s.innerHTML=e,s.className=n,s.style.visibility="hidden",s.style.position="absolute",n||(s.style.padding="10px",s.style.color="#fff",s.style.fontSize="12px",s.style.textAlign="center",s.style.background="rgba(0,0,0,0.6)",s.style.borderRadius="4px");let o=null;return i?o=new Ri(s):o=new sn(s),o.init=(r,a)=>{o.element.innerHTML=r,o.element.style.visibility="visible",o.position.copy(a)},o.hide=()=>{o.element.style.visibility="hidden"},o.scaleHide=()=>{o.element.classList.add("scale-hidden")},o.show=()=>{o.element.style.visibility="visible",o.element.classList.remove("scale-hidden")},o.setParent=r=>{this.parent=r,r.add(o)},o.remove=()=>{this.parent.remove(o)},o}setLabelStyle(e,n=.1,i="x",s=Math.PI/2,o="none"){e.element.style.pointerEvents=o,e.scale.set(n,n,n),e.rotation[i]=s}setRenderLevel(e){this.css3dRender.domElement.style.zIndex=e}update(){this.css3dRender.render(this.scene,this.camera.instance)}destroy(){if(this.css3dRender){let e=this.css3dRender.domElement;e.parentNode.removeChild(e)}}resize(){let{width:e,height:n}=this.sizes;this.css3dRender.setSize(e,n)}}class ts{constructor({time:e},n){this.time=e,this.options=Object.assign({},{width:10,scale:1,position:new F(0,0,0),needRotate:!1,rotateSpeed:.001,material:new ge({transparent:!0,opacity:1,depthTest:!0})},n);let i=new Ln(this.options.width,this.options.width),s=new re(i,this.options.material);s.position.copy(this.options.position),s.scale.set(this.options.scale,this.options.scale,this.options.scale),this.instance=s}setParent(e){e.add(this.instance),this.time.on("tick",()=>{this.update()})}update(){this.options.needRotate&&(this.instance.rotation.z+=this.options.rotateSpeed)}}class on{constructor({time:e},n={}){this.instance=null,this.time=e,this.enable=!0,this.config=Object.assign({num:100,range:500,speed:.01,renderOrder:99,dir:"up",material:new kt({map:on.createTexture(),size:20,color:16777215,transparent:!0,opacity:1,depthTest:!1,vertexColors:!0,blending:On,sizeAttenuation:!0})},n),this.create()}create(){const{range:e,speed:n,dir:i,material:s,num:o,renderOrder:r}=this.config,a=[],h=[],d=[];for(let c=0;ci/2&&r===1&&(u=-i/2),u<-i/2&&r==-1&&(u=i/2),a.setX(l,c),a.setZ(l,u),h.setX(l,p),h.setY(l,m)}a.needsUpdate=!0,h.needsUpdate=!0}setParent(e){e.add(this.instance),this.time.on("tick",(n,i)=>{this.enable&&this.update(n,i)})}}class ns{constructor({},e={}){this.mapGroup=new ve,this.coordinates=[],this.config=Object.assign({position:new F(0,0,0),geoProjectionCenter:new N(0,0),geoProjectionScale:120,data:"",renderOrder:1,merge:!1,material:new ge({color:1582651,transparent:!0,opacity:1})},e),this.mapGroup.position.copy(this.config.position);let n=ct(this.config.data);this.create(n)}geoProjection(e){return dt().center(this.config.geoProjectionCenter).scale(this.config.geoProjectionScale).translate([0,0])(e)}create(e){let{merge:n}=this.config,i=[];if(e.features.forEach(s=>{const o=new ot;let{name:r,center:a=[],centroid:h=[]}=s.properties;this.coordinates.push({name:r,center:a,centroid:h}),o.userData.name=r,s.geometry.coordinates.forEach(d=>{d.forEach(l=>{const c=new st;for(let p=0;p{var d,l,c;const i=new ot;let{name:s,center:o=[],centroid:r=[]}=n.properties;this.coordinates.push({name:s,center:o,centroid:r});const a={depth:this.config.depth,bevelEnabled:(d=this.config.bevelEnabled)!=null?d:!0,bevelSegments:(l=this.config.bevelSegments)!=null?l:1,bevelThickness:(c=this.config.bevelThickness)!=null?c:.1};let h=[this.config.topFaceMaterial,this.config.sideMaterial];n.geometry.coordinates.forEach(u=>{u.forEach((p,m)=>{const g=new st;for(let S=0;S{this.update()}),this.sizes.on("resize",()=>{this.resize()})}create(e="",n="",i=!1){let s=document.createElement("div");s.innerHTML=e,s.className=n,s.style.visibility="hidden",s.style.position="absolute",n||(s.style.padding="10px",s.style.color="#fff",s.style.fontSize="12px",s.style.textAlign="center",s.style.background="rgba(0,0,0,0.6)",s.style.borderRadius="4px");let o=null;return i?o=new Bi(s):o=new sn(s),o.init=(r,a)=>{o.element.innerHTML=r,o.element.style.visibility="visible",o.position.copy(a)},o.hide=()=>{o.element.style.visibility="hidden"},o.scaleHide=()=>{o.element.classList.add("scale-hidden")},o.show=()=>{o.element.style.visibility="visible",o.element.classList.remove("scale-hidden")},o.setParent=r=>{this.parent=r,r.add(o)},o.remove=()=>{this.parent.remove(o)},o}setLabelStyle(e,n=.1,i="x",s=Math.PI/2,o="none"){e.element.style.pointerEvents=o,e.scale.set(n,n,n),e.rotation[i]=s}setRenderLevel(e){this.css3dRender.domElement.style.zIndex=e}update(){this.css3dRender.render(this.scene,this.camera.instance)}destroy(){if(this.css3dRender){let e=this.css3dRender.domElement;e.parentNode.removeChild(e)}}resize(){let{width:e,height:n}=this.sizes;this.css3dRender.setSize(e,n)}}class ts{constructor({time:e},n){this.time=e,this.options=Object.assign({},{width:10,scale:1,position:new F(0,0,0),needRotate:!1,rotateSpeed:.001,material:new ge({transparent:!0,opacity:1,depthTest:!0})},n);let i=new Ln(this.options.width,this.options.width),s=new re(i,this.options.material);s.position.copy(this.options.position),s.scale.set(this.options.scale,this.options.scale,this.options.scale),this.instance=s}setParent(e){e.add(this.instance),this.time.on("tick",()=>{this.update()})}update(){this.options.needRotate&&(this.instance.rotation.z+=this.options.rotateSpeed)}}class on{constructor({time:e},n={}){this.instance=null,this.time=e,this.enable=!0,this.config=Object.assign({num:100,range:500,speed:.01,renderOrder:99,dir:"up",material:new kt({map:on.createTexture(),size:20,color:16777215,transparent:!0,opacity:1,depthTest:!1,vertexColors:!0,blending:On,sizeAttenuation:!0})},n),this.create()}create(){const{range:e,speed:n,dir:i,material:s,num:o,renderOrder:r}=this.config,a=[],h=[],d=[];for(let c=0;ci/2&&r===1&&(u=-i/2),u<-i/2&&r==-1&&(u=i/2),a.setX(l,c),a.setZ(l,u),h.setX(l,p),h.setY(l,m)}a.needsUpdate=!0,h.needsUpdate=!0}setParent(e){e.add(this.instance),this.time.on("tick",(n,i)=>{this.enable&&this.update(n,i)})}}class ns{constructor({},e={}){this.mapGroup=new ve,this.coordinates=[],this.config=Object.assign({position:new F(0,0,0),geoProjectionCenter:new N(0,0),geoProjectionScale:120,data:"",renderOrder:1,merge:!1,material:new ge({color:1582651,transparent:!0,opacity:1})},e),this.mapGroup.position.copy(this.config.position);let n=ct(this.config.data);this.create(n)}geoProjection(e){return dt().center(this.config.geoProjectionCenter).scale(this.config.geoProjectionScale).translate([0,0])(e)}create(e){let{merge:n}=this.config,i=[];if(e.features.forEach(s=>{const o=new ot;let{name:r,center:a=[],centroid:h=[]}=s.properties;this.coordinates.push({name:r,center:a,centroid:h}),o.userData.name=r,s.geometry.coordinates.forEach(d=>{d.forEach(l=>{const c=new st;for(let p=0;p{var d,l,c;const i=new ot;let{name:s,center:o=[],centroid:r=[]}=n.properties;this.coordinates.push({name:s,center:o,centroid:r});const a={depth:this.config.depth,bevelEnabled:(d=this.config.bevelEnabled)!=null?d:!0,bevelSegments:(l=this.config.bevelSegments)!=null?l:1,bevelThickness:(c=this.config.bevelThickness)!=null?c:.1};let h=[this.config.topFaceMaterial,this.config.sideMaterial];n.geometry.coordinates.forEach(u=>{u.forEach((p,m)=>{const g=new st;for(let S=0;S #include #include @@ -417,7 +417,7 @@ var fn=Object.defineProperty,dn=Object.defineProperties;var pn=Object.getOwnProp #include } - `};class an extends Rn{constructor(e){super({type:"LineMaterial",uniforms:Jt.clone(Be.line.uniforms),vertexShader:Be.line.vertexShader,fragmentShader:Be.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1))}}const It=new F,jt=new F,W=new Ge,k=new Ge,te=new Ge,Ve=new F,Je=new rt,H=new _n,Gt=new F,Oe=new at,ze=new Vt,ne=new Ge;let ie,le;function Nt(t,e,n){return ne.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),ne.multiplyScalar(1/ne.w),ne.x=le/n.width,ne.y=le/n.height,ne.applyMatrix4(t.projectionMatrixInverse),ne.multiplyScalar(1/ne.w),Math.abs(Math.max(ne.x,ne.y))}function Ii(t,e){const n=t.matrixWorld,i=t.geometry,s=i.attributes.instanceStart,o=i.attributes.instanceEnd,r=Math.min(i.instanceCount,s.count);for(let a=0,h=r;ac&&k.z>c)continue;if(W.z>c){const y=W.z-k.z,w=(W.z-c)/y;W.lerp(k,w)}else if(k.z>c){const y=k.z-W.z,w=(k.z-c)/y;k.lerp(W,w)}W.applyMatrix4(i),k.applyMatrix4(i),W.multiplyScalar(1/W.w),k.multiplyScalar(1/k.w),W.x*=o.x/2,W.y*=o.y/2,k.x*=o.x/2,k.y*=o.y/2,H.start.copy(W),H.start.z=0,H.end.copy(k),H.end.z=0;const g=H.closestPointToPointParameter(Ve,!0);H.at(g,Gt);const f=Un.lerp(W.z,k.z,g),E=f>=-1&&f<=1,S=Ve.distanceTo(Gt){const l=[];let c=null;n==="Line2"?(d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(p,-m,0)}),c=this.createLine2(l)):n==="Line3"?(d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(new F(p,-m,0))}),c=this.createLine3(l)):d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(new F(p,-m,0)),c=this.createLine(l)}),h.add(c)}),o.add(h))}return o}createLine3(e){const n=this.config.tubeRadius,i=256*10,s=4,o=!1,{material:r,renderOrder:a}=this.config,h=new jn(e),d=new Gn(h,i,n,s,o),l=new re(d,r);return l.name="mapLine3",l.renderOrder=a,l}createLine2(e){const{material:n,renderOrder:i}=this.config,s=new ln;s.setPositions(e);let o=new Ni(s,n);return o.name="mapLine2",o.renderOrder=i,o.computeLineDistances(),o}createLine(e){const{material:n,renderOrder:i,type:s}=this.config,o=new it;o.setFromPoints(e);let r=new Nn(o,n);return r.renderOrder=i,r.name="mapLine",r}setParent(e){e.add(this.lineGroup)}}class os{constructor(e,n){this.shader=null,this.config=Object.assign({uColor1:2781042,uColor2:860197,size:15,dir:"x"},n),this.init(e)}init(e){let{uColor1:n,uColor2:i,dir:s,size:o}=this.config,r={x:1,y:2,z:3};e.onBeforeCompile=a=>{this.shader=a,a.uniforms=Z(Q({},a.uniforms),{uColor1:{value:new Ke(n)},uColor2:{value:new Ke(i)},uDir:{value:r[s]},uSize:{value:o}}),a.vertexShader=a.vertexShader.replace("void main() {",` + `};class an extends Bn{constructor(e){super({type:"LineMaterial",uniforms:Jt.clone(Re.line.uniforms),vertexShader:Re.line.vertexShader,fragmentShader:Re.line.fragmentShader,clipping:!0}),this.isLineMaterial=!0,this.setValues(e)}get color(){return this.uniforms.diffuse.value}set color(e){this.uniforms.diffuse.value=e}get worldUnits(){return"WORLD_UNITS"in this.defines}set worldUnits(e){e===!0?this.defines.WORLD_UNITS="":delete this.defines.WORLD_UNITS}get linewidth(){return this.uniforms.linewidth.value}set linewidth(e){this.uniforms.linewidth&&(this.uniforms.linewidth.value=e)}get dashed(){return"USE_DASH"in this.defines}set dashed(e){e===!0!==this.dashed&&(this.needsUpdate=!0),e===!0?this.defines.USE_DASH="":delete this.defines.USE_DASH}get dashScale(){return this.uniforms.dashScale.value}set dashScale(e){this.uniforms.dashScale.value=e}get dashSize(){return this.uniforms.dashSize.value}set dashSize(e){this.uniforms.dashSize.value=e}get dashOffset(){return this.uniforms.dashOffset.value}set dashOffset(e){this.uniforms.dashOffset.value=e}get gapSize(){return this.uniforms.gapSize.value}set gapSize(e){this.uniforms.gapSize.value=e}get opacity(){return this.uniforms.opacity.value}set opacity(e){this.uniforms&&(this.uniforms.opacity.value=e)}get resolution(){return this.uniforms.resolution.value}set resolution(e){this.uniforms.resolution.value.copy(e)}get alphaToCoverage(){return"USE_ALPHA_TO_COVERAGE"in this.defines}set alphaToCoverage(e){this.defines&&(e===!0!==this.alphaToCoverage&&(this.needsUpdate=!0),e===!0?(this.defines.USE_ALPHA_TO_COVERAGE="",this.extensions.derivatives=!0):(delete this.defines.USE_ALPHA_TO_COVERAGE,this.extensions.derivatives=!1))}}const It=new F,jt=new F,W=new Ge,k=new Ge,te=new Ge,Ve=new F,Je=new rt,H=new _n,Gt=new F,Oe=new at,ze=new Vt,ne=new Ge;let ie,le;function Nt(t,e,n){return ne.set(0,0,-e,1).applyMatrix4(t.projectionMatrix),ne.multiplyScalar(1/ne.w),ne.x=le/n.width,ne.y=le/n.height,ne.applyMatrix4(t.projectionMatrixInverse),ne.multiplyScalar(1/ne.w),Math.abs(Math.max(ne.x,ne.y))}function Ii(t,e){const n=t.matrixWorld,i=t.geometry,s=i.attributes.instanceStart,o=i.attributes.instanceEnd,r=Math.min(i.instanceCount,s.count);for(let a=0,h=r;ac&&k.z>c)continue;if(W.z>c){const y=W.z-k.z,w=(W.z-c)/y;W.lerp(k,w)}else if(k.z>c){const y=k.z-W.z,w=(k.z-c)/y;k.lerp(W,w)}W.applyMatrix4(i),k.applyMatrix4(i),W.multiplyScalar(1/W.w),k.multiplyScalar(1/k.w),W.x*=o.x/2,W.y*=o.y/2,k.x*=o.x/2,k.y*=o.y/2,H.start.copy(W),H.start.z=0,H.end.copy(k),H.end.z=0;const g=H.closestPointToPointParameter(Ve,!0);H.at(g,Gt);const f=Un.lerp(W.z,k.z,g),E=f>=-1&&f<=1,S=Ve.distanceTo(Gt){const l=[];let c=null;n==="Line2"?(d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(p,-m,0)}),c=this.createLine2(l)):n==="Line3"?(d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(new F(p,-m,0))}),c=this.createLine3(l)):d[0].forEach(u=>{const[p,m]=this.geoProjection(u);l.push(new F(p,-m,0)),c=this.createLine(l)}),h.add(c)}),o.add(h))}return o}createLine3(e){const n=this.config.tubeRadius,i=256*10,s=4,o=!1,{material:r,renderOrder:a}=this.config,h=new jn(e),d=new Gn(h,i,n,s,o),l=new re(d,r);return l.name="mapLine3",l.renderOrder=a,l}createLine2(e){const{material:n,renderOrder:i}=this.config,s=new ln;s.setPositions(e);let o=new Ni(s,n);return o.name="mapLine2",o.renderOrder=i,o.computeLineDistances(),o}createLine(e){const{material:n,renderOrder:i,type:s}=this.config,o=new it;o.setFromPoints(e);let r=new Nn(o,n);return r.renderOrder=i,r.name="mapLine",r}setParent(e){e.add(this.lineGroup)}}class os{constructor(e,n){this.shader=null,this.config=Object.assign({uColor1:2781042,uColor2:860197,size:15,dir:"x"},n),this.init(e)}init(e){let{uColor1:n,uColor2:i,dir:s,size:o}=this.config,r={x:1,y:2,z:3};e.onBeforeCompile=a=>{this.shader=a,a.uniforms=Z(Q({},a.uniforms),{uColor1:{value:new Ke(n)},uColor2:{value:new Ke(i)},uDir:{value:r[s]},uSize:{value:o}}),a.vertexShader=a.vertexShader.replace("void main() {",` attribute float alpha; varying vec3 vPosition; varying float vAlpha; diff --git a/docs/assets/data-b5a92f08-1784043664472.js b/docs/assets/data-efed6b46-1784045078568.js similarity index 99% rename from docs/assets/data-b5a92f08-1784043664472.js rename to docs/assets/data-efed6b46-1784045078568.js index 404e028..37272ae 100644 --- a/docs/assets/data-b5a92f08-1784043664472.js +++ b/docs/assets/data-efed6b46-1784045078568.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-1784043664472.js";import{g as E}from"./data-5c83c66b-1784043664472.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-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}; diff --git a/docs/assets/featurePanelLayout-93409244-1784043664472.js b/docs/assets/featurePanelLayout-5da16b00-1784045078568.js similarity index 98% rename from docs/assets/featurePanelLayout-93409244-1784043664472.js rename to docs/assets/featurePanelLayout-5da16b00-1784045078568.js index 7f5efd3..ac8dfe4 100644 --- a/docs/assets/featurePanelLayout-93409244-1784043664472.js +++ b/docs/assets/featurePanelLayout-5da16b00-1784045078568.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-d0c7091a-1784043664472.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-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}; diff --git a/docs/assets/flyline6-525edf67-balabala-1784043664472.png b/docs/assets/flyline6-525edf67-balabala-1784045078568.png similarity index 100% rename from docs/assets/flyline6-525edf67-balabala-1784043664472.png rename to docs/assets/flyline6-525edf67-balabala-1784045078568.png diff --git a/docs/assets/focus_bg-b6803e2d-balabala-1784043664472.png b/docs/assets/focus_bg-b6803e2d-balabala-1784045078568.png similarity index 100% rename from docs/assets/focus_bg-b6803e2d-balabala-1784043664472.png rename to docs/assets/focus_bg-b6803e2d-balabala-1784045078568.png diff --git a/docs/assets/focus_move_bg-cf41417a-balabala-1784043664472.png b/docs/assets/focus_move_bg-cf41417a-balabala-1784045078568.png similarity index 100% rename from docs/assets/focus_move_bg-cf41417a-balabala-1784043664472.png rename to docs/assets/focus_move_bg-cf41417a-balabala-1784045078568.png diff --git a/docs/assets/geoserver-6574cb91-1784043664472.js b/docs/assets/geoserver-6ded2e06-1784045078568.js similarity index 94% rename from docs/assets/geoserver-6574cb91-1784043664472.js rename to docs/assets/geoserver-6ded2e06-1784045078568.js index 67e92e2..0ed5503 100644 --- a/docs/assets/geoserver-6574cb91-1784043664472.js +++ b/docs/assets/geoserver-6ded2e06-1784045078568.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-1784043664472.js";import{r as E}from"./index-d0c7091a-1784043664472.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-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}; diff --git a/docs/assets/header-bg-65b38012-balabala-1784043664472.png b/docs/assets/header-bg-65b38012-balabala-1784045078568.png similarity index 100% rename from docs/assets/header-bg-65b38012-balabala-1784043664472.png rename to docs/assets/header-bg-65b38012-balabala-1784045078568.png diff --git a/docs/assets/huiguang-3c5dfda5-balabala-1784043664472.png b/docs/assets/huiguang-3c5dfda5-balabala-1784045078568.png similarity index 100% rename from docs/assets/huiguang-3c5dfda5-balabala-1784043664472.png rename to docs/assets/huiguang-3c5dfda5-balabala-1784045078568.png diff --git a/docs/assets/icon1-6f7c222f-balabala-1784043664472.png b/docs/assets/icon1-6f7c222f-balabala-1784045078568.png similarity index 100% rename from docs/assets/icon1-6f7c222f-balabala-1784043664472.png rename to docs/assets/icon1-6f7c222f-balabala-1784045078568.png diff --git a/docs/assets/icon2-4f77ccec-balabala-1784043664472.png b/docs/assets/icon2-4f77ccec-balabala-1784045078568.png similarity index 100% rename from docs/assets/icon2-4f77ccec-balabala-1784043664472.png rename to docs/assets/icon2-4f77ccec-balabala-1784045078568.png diff --git a/docs/assets/index-089a3dd0-balabala-1784043664472.css b/docs/assets/index-089a3dd0-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-089a3dd0-balabala-1784043664472.css rename to docs/assets/index-089a3dd0-balabala-1784045078568.css diff --git a/docs/assets/index-51731c25-balabala-1784043664472.css b/docs/assets/index-0ef0ebc0-balabala-1784045078568.css similarity index 95% rename from docs/assets/index-51731c25-balabala-1784043664472.css rename to docs/assets/index-0ef0ebc0-balabala-1784045078568.css index c918921..8a30aa6 100644 --- a/docs/assets/index-51731c25-balabala-1784043664472.css +++ b/docs/assets/index-0ef0ebc0-balabala-1784045078568.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-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.png)}.count-card-icon.icon-zongxiaoliang{background-image:url(./icon2-4f77ccec-balabala-1784043664472.png)}.count-card-icon.icon-stack{background-image:url(./stack-7a426057-balabala-1784043664472.png)}.count-card-icon.icon-area{background-image:url(./area-b57940eb-balabala-1784043664472.png)}.count-card-icon.icon-grass-basic{background-image:url(./area-b57940eb-balabala-1784043664472.png)}.count-card-icon.icon-grass-general{background-image:url(./area-b57940eb-balabala-1784043664472.png)}.count-card-icon.icon-wetland{background-image:url(./leaf-7be9efef-balabala-1784043664472.png)}.count-card-icon.icon-forest{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-town{background-image:url(./town-f8c0c9cc-balabala-1784043664472.png)}.count-card-icon.icon-park{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-yield{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-project{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-length{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-device{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-certificate{background-image:url(./yield-66e9af79-balabala-1784043664472.png)}.count-card-icon.icon-rate{background-image:url(./park-ee0533e0-balabala-1784043664472.png)}.count-card-icon.icon-leaf{background-image:url(./leaf-7be9efef-balabala-1784043664472.png)}.count-card-icon.icon-risk{background-image:url(./leaf-7be9efef-balabala-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.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-1784043664472.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-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}} diff --git a/docs/assets/index-11333eca-balabala-1784043664472.css b/docs/assets/index-11333eca-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-11333eca-balabala-1784043664472.css rename to docs/assets/index-11333eca-balabala-1784045078568.css diff --git a/docs/assets/index-148a2898-balabala-1784043664472.css b/docs/assets/index-148a2898-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-148a2898-balabala-1784043664472.css rename to docs/assets/index-148a2898-balabala-1784045078568.css diff --git a/docs/assets/index-1784043664472.js b/docs/assets/index-1784045078568.js similarity index 99% rename from docs/assets/index-1784043664472.js rename to docs/assets/index-1784045078568.js index e6530c1..af98e56 100644 --- a/docs/assets/index-1784043664472.js +++ b/docs/assets/index-1784045078568.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-d0c7091a-1784043664472.js").then(r=>r.i),["./index-d0c7091a-1784043664472.js","./index-e9f36657-1784043664472.js","./index-51731c25-balabala-1784043664472.css"],import.meta.url),Xz=()=>U0(()=>import("./index-a29410f4-1784043664472.js"),["./index-a29410f4-1784043664472.js","./index-46ddbb9a-balabala-1784043664472.css"],import.meta.url),qz=()=>U0(()=>import("./index-c7da184e-1784043664472.js"),["./index-c7da184e-1784043664472.js","./index.esm.min-c54f6e6e-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./chartTheme-95a980bb-1784043664472.js","./index-8d752fbe-balabala-1784043664472.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-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]]);/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any diff --git a/docs/assets/index-8532142c-1784043664472.js b/docs/assets/index-24c07d59-1784045078568.js similarity index 98% rename from docs/assets/index-8532142c-1784043664472.js rename to docs/assets/index-24c07d59-1784045078568.js index ae3b428..3249f83 100644 --- a/docs/assets/index-8532142c-1784043664472.js +++ b/docs/assets/index-24c07d59-1784045078568.js @@ -1 +1 @@ -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-1784043664472.js";import{g as Pa,l as Ot,E as Na}from"./live-scene-1-16ce1514-1784043664472.js";import{_ as Q}from"./index-e3442fcf-1784043664472.js";import{M as Aa}from"./index-0060e718-1784043664472.js";import{_ as Ca}from"./LayerPanel-4a87f4f0-1784043664472.js";import{a as se,_ as Sa}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{l as Ia,d as La,e as xa,m as Ta}from"./townshipBoundaries-1b068bef-1784043664472.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-93409244-1784043664472.js";import{q as $t,r as wa,s as Va}from"./screen2Standard-15e4461a-1784043664472.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-defd9b10-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./index-e9f36657-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.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}; +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-e3442fcf-1784043664472.js b/docs/assets/index-27149dbd-1784045078568.js similarity index 96% rename from docs/assets/index-e3442fcf-1784043664472.js rename to docs/assets/index-27149dbd-1784045078568.js index 55509aa..90bca7a 100644 --- a/docs/assets/index-e3442fcf-1784043664472.js +++ b/docs/assets/index-27149dbd-1784045078568.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-1784043664472.js";const F=""+new URL("title-zs1-c15a5ee8-balabala-1784043664472.svg",import.meta.url).href,v=""+new URL("saoguang-ccf84a88-balabala-1784043664472.svg",import.meta.url).href,b=""+new URL("content-bottom-left-arrow-3a8a61f3-balabala-1784043664472.svg",import.meta.url).href,V=""+new URL("content-bottom-right-arrow-a3c5270d-balabala-1784043664472.svg",import.meta.url).href,f=""+new URL("content-middle-line-162bc0d5-balabala-1784043664472.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-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 L165.707 -0.207107 L165.414 -0.5 H165 diff --git a/docs/assets/index-c7da184e-1784043664472.js b/docs/assets/index-2f522628-1784045078568.js similarity index 96% rename from docs/assets/index-c7da184e-1784043664472.js rename to docs/assets/index-2f522628-1784045078568.js index 5d7ae29..52eceba 100644 --- a/docs/assets/index-c7da184e-1784043664472.js +++ b/docs/assets/index-2f522628-1784045078568.js @@ -1,2 +1,2 @@ -import{H as Q}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as U}from"./index-e3442fcf-1784043664472.js";import{M as X}from"./screen2Standard-15e4461a-1784043664472.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-95a980bb-1784043664472.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-1784043664472.js";import"./index-e9f36657-1784043664472.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-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% 完成`,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-41d168c2-balabala-1784043664472.css b/docs/assets/index-41d168c2-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-41d168c2-balabala-1784043664472.css rename to docs/assets/index-41d168c2-balabala-1784045078568.css diff --git a/docs/assets/index-7103e996-1784043664472.js b/docs/assets/index-41e40dbf-1784045078568.js similarity index 99% rename from docs/assets/index-7103e996-1784043664472.js rename to docs/assets/index-41e40dbf-1784045078568.js index c287956..2415c10 100644 --- a/docs/assets/index-7103e996-1784043664472.js +++ b/docs/assets/index-41e40dbf-1784045078568.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-1784043664472.js";/* empty css */import{_ as fa}from"./index-e3442fcf-1784043664472.js";import{i as Pe,g as Oi,b as ga}from"./townshipBoundaries-1b068bef-1784043664472.js";import{r as Fi,n as ji}from"./index-d0c7091a-1784043664472.js";import{c as ki,F as qi,b as $i}from"./featurePanelLayout-93409244-1784043664472.js";import{A as Di}from"./assets-93f7396b-1784043664472.js";import{q as Ui,r as Bi,s as zi}from"./screen2Standard-15e4461a-1784043664472.js";import{M as Wi}from"./index-0060e718-1784043664472.js";import{_ as Vi}from"./LayerPanel-4a87f4f0-1784043664472.js";import{a as va,_ as Hi}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{_ as Qi}from"./TopicSwitcher-f0c08774-1784043664472.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-1784043664472.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-b5a92f08-1784043664472.js";import"./data-5c83c66b-1784043664472.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?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);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}; diff --git a/docs/assets/index-4921f42e-1784043664472.js b/docs/assets/index-4921f42e-1784043664472.js deleted file mode 100644 index 08195c0..0000000 --- a/docs/assets/index-4921f42e-1784043664472.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=(C,n,r)=>n in C?Yn(C,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):C[n]=r,D=(C,n)=>{for(var r in n||(n={}))Zn.call(n,r)&&ro(C,r,n[r]);if(io)for(var r of io(n))Xn.call(n,r)&&ro(C,r,n[r]);return C},V=(C,n)=>Qn(C,Jn(n));var re=(C,n,r)=>new Promise((c,s)=>{var f=h=>{try{m(r.next(h))}catch(b){s(b)}},p=h=>{try{m(r.throw(h))}catch(b){s(b)}},m=h=>h.done?c(h.value):Promise.resolve(h.value).then(f,p);m((r=r.apply(C,n)).next())});import{h as Ao,w as ht,o as L,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 At,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-1784043664472.js";import{l as co,g as ii,E as ri}from"./live-scene-1-16ce1514-1784043664472.js";import{H as ca}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as uo}from"./index-e3442fcf-1784043664472.js";import{g as ua,C as si,H as li,a as ci,M as ui}from"./index-0060e718-1784043664472.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 Li}from"./screen2Standard-15e4461a-1784043664472.js";import{M as Ai,h as Ti,L as _i,B as yo,a as fa,E as Ii,G as Fi,D as Ei,b as Oi,l as ha,P as bo,c as wo,g as Bi,d as Gi,s as ma,f as _t,e as Ni,i as Hi,j as Ri,k as xo}from"./data-3d6664cd-1784043664472.js";import{g as Ye}from"./index-e9f36657-1784043664472.js";import{h as Di,a as To,f as zi,g as $i,b as Vi}from"./townshipBoundaries-1b068bef-1784043664472.js";import{R as ji,p as So,a as Wi,b as Ui,h as Ki,r as qi,c as Yi,g as Mo,d as Qi,e as Ji,o as Zi,s 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-f0c08774-1784043664472.js";import{_ as lr,a as ko}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{g as Po,a as cr}from"./openApi-928665d4-1784043664472.js";import{c as ur,F as dr,g as fr,a as hr}from"./featurePanelLayout-93409244-1784043664472.js";import{g as mr}from"./yakApi-032bf70c-1784043664472.js";import{w as ct,f as pa}from"./chartTheme-95a980bb-1784043664472.js";import{b as pr}from"./data-5c83c66b-1784043664472.js";import{h as gr,y as vr}from"./data-b0a5f9a8-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.js";import"./geoserver-6574cb91-1784043664472.js";class yr extends di{constructor(n,r){super(),this.config=Object.assign({color1:16566615,color2:16777215},r),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,r=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 m=s.clone();m.map=this.assets.instance.getResource("focusBg");let h=s.clone();h.color=new se(this.config.color2),h.map=this.assets.instance.getResource("focusMidQuan");let b=s.clone();b.map=this.assets.instance.getResource("focusMoveBg"),b.blending=me;let P=new Q(r,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(r,m),v=new Q(r,h),_=new Q(r,b),B=[v,x,P,_,S,O];B.map(H=>{H.renderOrder=99}),this.add(...B);let E=0;_.scale.setScalar(E),this.animateElements={focusMidQuan:v,focusArrows:P,focusMoveBg:_},this.startAnimate()}startAnimate(){let n=Ye.to(this.animateElements.focusMidQuan.rotation,{z:2*Math.PI,duration:8,repeat:-1,ease:"none"}),r=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,r,c,s]}pausedAnimate(){this.gsapObjects.map(n=>{n.paused=!0})}destroy(){this.gsapObjects.map(n=>{n.kill()}),fi(this)}}const br=Di.map(C=>D({},C)),Co=To.map(C=>D({},C)),wr=To.map(C=>{var n,r;return{name:C.name,value:C.value,lng:(n=C.center)==null?void 0:n[0],lat:(r=C.center)==null?void 0:r[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(C){return C.sort((n,r)=>r.value-n.value),C}function Sr(C){return C?typeof C=="string"?JSON.parse(C):C:null}function va(C){const n=Sr(C);return n!=null&&n.features&&n.features.forEach(r=>{var c;((c=r.geometry)==null?void 0:c.type)==="Polygon"&&(r.geometry.coordinates=[r.geometry.coordinates])}),n}function Mr(C,n,r){const c=Number(C);return Number.isFinite(c)?Math.max(n,Math.min(r,c)):n}class kr extends Ai{constructor(n,r,c={}){super(n),this.options=c||{},this.geoProjectionCenter=[102.6305459723107,32.72169252326339],this.geoProjectionScale=650,this.backgroundProjectionCenter=c.backgroundProjectionCenter||this.geoProjectionCenter,this.backgroundProjectionScale=c.backgroundProjectionScale||120,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 Ti(this.renderer.instance,this.camera.instance,this.canvas),this.assets=r,this.staticMapData={china:va(this.assets.instance.getResource("china")),mapJson:va(this.assets.instance.getResource("mapJson")),mapStroke:va(this.assets.instance.getResource("mapStroke"))},this.initEnvironment(),this.init()}addSceneTween(n){var r;return n&&(this.sceneTweens.push(n),this.scenePaused&&((r=n.pause)==null||r.call(n)),n)}addSceneTimer(n){return n&&this.sceneTimers.push(n),n}init(){this.labelGroup=new fe,this.label3d=new _i(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((r,c)=>{let s=r.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 r,c;this.showDataOverlays&&this.flyLineFocusGroup&&(this.flyLineFocusGroup.visible=!0),this.mapAnimationDone=!0,this.applySceneMode(),(c=(r=this.options).onPlayComplete)==null||c.call(r)}},"focusMapOpacity"),(this.allBar||[]).map((r,c)=>{if(r.userData.name==="邛溪镇")return!1;n.to(r.scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar")}),(this.allBarMaterial||[]).map((r,c)=>{n.to(r,{duration:1,delay:.1*c,opacity:1,ease:"circ.out"},"bar")}),(this.allProvinceLabel||[]).map((r,c)=>{let s=r.element.querySelector(".provinces-label-wrap"),f=r.element.querySelector(".number .value"),p=Number(f.innerText),m={score:0};n.to(s,{duration:1,delay:.2*c,translateY:0,opacity:1,ease:"circ.out"},"bar"),n.to(m,{duration:1,delay:.2*c,score:p,onUpdate:h},"bar");function h(){f.innerText=m.score.toFixed(0)}}),(this.allGuangquan||[]).map((r,c)=>{n.to(r.children[0].scale,{duration:1,delay:.1*c,x:1,y:1,z:1,ease:"circ.out"},"bar"),n.to(r.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 r=new pi(16777215,5);r.position.set(-30,6,-8),r.castShadow=!0,r.shadow.radius=20,r.shadow.mapSize.width=1024,r.shadow.mapSize.height=1024,this.scene.add(r),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 r=new gi(1924702,n.intensity,n.distance);r.position.set(n.x,n.y,n.z),this.scene.add(r)}createMap(){let n=new fe,r=new fe;this.focusMapGroup=r;let{china:c,chinaTopLine:s}=this.createChina(),{map:f,mapTop:p,mapLine:m}=this.createProvince();c.setParent(n),s.setParent(n),this.createDiffuse(),f.setParent(r),p.setParent(r),m.setParent(r),r.position.set(0,0,-.01),r.scale.set(1,1,0),n.add(r),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(){let n={chinaBgMaterialColor:"#152c47",lineColor:"#3f82cd"},r=this.staticMapData.china,c=new fo({color:new se(n.chinaBgMaterialColor),transparent:!0,opacity:this.showDataOverlays?1:.54}),s=new yo(this,{data:r,geoProjectionCenter:this.backgroundProjectionCenter,geoProjectionScale:this.backgroundProjectionScale,merge:!0,material:c,renderOrder:2}),f=new ho({color:n.lineColor}),p=new fa(this,{data:r,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,[r,c]=this.createProvinceMaterial();this.focusMapTopMaterial=r,this.focusMapSideMaterial=c;let s=new Ii(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,position:new Y(0,0,.11),data:n,depth:this.depth,topFaceMaterial:r,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(h=>{h.children.map(b=>{b.type==="Mesh"&&this.eventElement.push(b)})}),this.mapLineMaterial=new ho({color:16777215,opacity:0,transparent:!0,fog:!1});let m=new fa(this,{geoProjectionCenter:this.geoProjectionCenter,geoProjectionScale:this.geoProjectionScale,data:n,material:this.mapLineMaterial,renderOrder:3});return m.lineGroup.position.z+=this.depth+.23,{map:s,mapTop:p,mapLine:m}}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 r=this.assets.instance.getResource("side");r.wrapS=he,r.wrapT=he,r.repeat.set(1,1.5),r.offset.y+=.065;let c=new mo({color:16777215,map:r,fog:!1,opacity:0,side:qe});return this.time.on("tick",()=>{r.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=r=>{r.uniforms=V(D({},r.uniforms),{uTerrainColor1:{value:new se(807272)},uTerrainColor2:{value:new se(1619414)},uTerrainColor3:{value:new se(7074015)}}),r.vertexShader=r.vertexShader.replace("void main() {",` - varying vec3 vTerrainPosition; - void main() { - vTerrainPosition = position; - `),r.fragmentShader=r.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() { - `),r.fragmentShader=r.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,r=ga(Co).filter((h,b)=>b<7);const c=new fe;this.barGroup=c;const s=.7,f=4*s,p=r[0].value;this.allBar=[],this.allBarMaterial=[],this.allGuangquan=[],this.allProvinceLabel=[],r.map((h,b)=>{let P=f*(h.value/p),S=new Z({color:16777215,transparent:!0,opacity:0,depthTest:!1,fog:!1});new Fi(S,{uColor1:b>3?16506760:5291006,uColor2:b>3?16776948:7863285,size:P,dir:"y"});const O=new vi(.1*s,.1*s,P);O.translate(0,0,P/2);const x=new Q(O,S);x.renderOrder=5;let v=x,[_,B]=this.geoProjection(h.centroid);v.position.set(_,-B,this.depth+.45),v.scale.set(1,1,0),v.userData=D({},h);let E=this.createQuan(new Y(_,this.depth+.44,B),b),H=this.createHUIGUANG(P,b>3?16776948:7863285);v.add(...H),c.add(v),c.rotation.x=-Math.PI/2;let X=m(h,b,new Y(_,-B,this.depth+1.1+P));this.allBar.push(v),this.allBarMaterial.push(S),this.allGuangquan.push(E),this.allProvinceLabel.push(X)}),this.scene.add(c);function m(h,b,P){let S=n.label3d.create("","provinces-label",!1);return S.init(`
-
-
${h.value}km²
-
${b+1}
-
-
`,P),n.label3d.setLabelStyle(S,.01,"x"),S.setParent(n.labelGroup),S}}createEvent(){let n=[];this.selectedRegion=null;const r=(s,f=!1)=>{var p,m,h;!f&&((m=(p=this.selectedRegion)==null?void 0:p.userData)==null?void 0:m.name)===((h=s==null?void 0:s.userData)==null?void 0:h.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 m;const p=((m=f.target)==null?void 0:m.parent)||f.target;this.selectedRegion&&this.selectedRegion!==p&&r(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],r(f.target.parent),document.body.style.cursor="default"})})}createHUIGUANG(n,r){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:r,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 m=p.clone(),h=p.clone();return m.rotateY(Math.PI/180*60),h.rotateY(Math.PI/180*120),[p,m,h]}createQuan(n,r){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}),m=new Z({color:16777215,map:s,alphaMap:s,opacity:1,transparent:!0,depthTest:!1,fog:!1,blending:me}),h=new Q(f,p),b=new Q(f,m);return h.renderOrder=6,b.renderOrder=6,h.rotateX(-Math.PI/2),b.rotateX(-Math.PI/2),h.position.copy(n),b.position.copy(n),b.position.y-=.001,h.scale.set(0,0,0),b.scale.set(0,0,0),this.quanGroup=new fe,this.quanGroup.add(h,b),this.scene.add(this.quanGroup),this.time.on("tick",()=>{h.rotation.z+=.05}),this.quanGroup}createDiffuse(){let n=new Ee(200,200),r=new Z({color:0,depthWrite:!1,transparent:!0,blending:yi});r.blendEquation=bi,r.blendSrc=wi,r.blendDst=xi,new Ei({material:r,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,r);c.renderOrder=3,c.rotation.x=-Math.PI/2,c.position.set(0,.21,0),this.scene.add(c)}createGrid(){new Oi(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 r=this.assets.instance.getResource("ocean");r.colorSpace=da,r.wrapS=he,r.wrapT=he,r.repeat.set(1,1);let c=new Z({map:r,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 r=this.assets.instance.getResource("chinaBlurLine");r.colorSpace=da,r.wrapS=he,r.wrapT=he,r.generateMipmaps=!1,r.minFilter=Si,r.repeat.set(1,1);let c=new Z({color:4162253,alphaMap:r,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,r=this.labelGroup,c=this.label3d,s=[];if(br.map(m=>{if(m.hide==!0)return!1;let h=f(m,c,r);s.push(h)}),this.showDataOverlays){let m=p({icon:ha,center:[103.13,33.01],width:"40px",height:"40px",reflect:!0},c,r),h=p({icon:ha,center:[102.03,32.44],width:"20px",height:"20px",reflect:!1},c,r);s.push(m),s.push(h)}this.otherLabel=s;function f(m,h,b){let P=h.create("",`china-label ${m.blur?" blur":""}`,!1);const[S,O]=n.geoProjection(m.center),x=n.showDataOverlays?``:"";return P.init(`
${x}${m.name}
`,new Y(S,-O,n.depth+.85)),h.setLabelStyle(P,.018,"x"),P.setParent(b),P.userData=V(D({},m),{labelType:"town-label",baseScale:.018}),P}function p(m,h,b){let P=h.create("",`decoration-label ${m.reflect?" reflect":""}`,!1);const[S,O]=n.geoProjection(m.center);return P.init(`
`,new Y(S,-O,.4)),h.setLabelStyle(P,.02,"x"),P.setParent(b),P}}createRotateBorder(){let n=12,r=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:r,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 r=.1,c=32,s=2,f=!1;let[p,m]=this.geoProjection(this.flyLineCenter),h=new Y(p,-m,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((P,S)=>S<7).map(P=>{let[S,O]=this.geoProjection(P.centroid),x=new Y(S,-O,0);const v=new Y;v.addVectors(h,x).multiplyScalar(.5),v.setZ(3);const _=new Mi(h,v,x),B=new ki(_,c,r,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}),[r,c]=this.geoProjection(this.flyLineCenter);n.position.set(r,-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"),r=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(r);p.renderOrder=23;let m=.1+f.value/s*.2;p.scale.set(m,m,m);let[h,b]=this.geoProjection([f.lng,f.lat]);p.position.set(h,-b,this.depth+.45),p.userData.position=[h,-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 r=this.label3d;const c=this.assets.instance.getResource("point");let s=[16776948,7863285],f=ga(xr),p=f[0].value;f.map((h,b)=>{const P=new po({map:c,color:s[b%s.length],fog:!1,transparent:!0,depthTest:!1}),S=new go(P);S.renderOrder=23;let O=.7+h.value/p*.4;S.scale.set(O,O,O);let[x,v]=this.geoProjection([h.lng,h.lat]),_=[x,-v,this.depth+.7];S.position.set(..._),S.userData.position=[..._],S.userData={position:[x,-v,this.depth+.7],name:h.name,value:h.value,level:h.level,index:b},this.InfoPointGroup.add(S);let B=m(h,r,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(H=>{H.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 m(h,b,P){let S=b.create("","info-point",!0);const[O,x]=n.geoProjection([h.lng,h.lat]);return S.init(`
-
-
-
-
-
-
-
-
名称${h.name}
-
面积${h.value}km²
-
类型${h.level}
-
-
-
- `,new Y(O,-x,n.depth+1.9)),b.setLabelStyle(S,.015,"x"),S.setParent(P),S.visible=!1,S}}emitTownClick(n={},r="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:r})))}setSceneMode(n="default"){this.sceneMode=n,this.applySceneMode()}setDataOverlaysVisible(n=!0){this.showDataOverlays=!!n,this.applySceneMode()}applySceneMode(){var r,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),(r=this.allProvinceLabel)==null||r.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((r,c)=>{this.infoPointIndex===c?r.visible=!0:r.visible=!1})},3e3))}createStorke(){const n=this.staticMapData.mapStroke,r=this.assets.instance.getResource("pathLine3");r.wrapS=r.wrapT=he,r.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:r,alphaMap:r,fog:!1,transparent:!0,opacity:1,blending:me}),type:"Line3",renderOrder:22,tubeRadius:.03});this.focusMapGroup.add(c.lineGroup),this.time.on("tick",()=>{r.offset.x+=.005})}geoProjection(n){return Bi().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0,0])(n)}updateTownLabelScale(){var m,h,b;const n=this.otherLabel||[],r=(m=this.camera)==null?void 0:m.instance,c=(b=(h=this.camera)==null?void 0:h.controls)==null?void 0:b.target;if(!n.length||!r||!c)return;const s=r.position.distanceTo(c),f=Mr(s*72e-5,.011,.026),p=s>45?"0.76":s<22?"0.94":"1";n.forEach(P=>{var O,x,v;if(((O=P==null?void 0:P.userData)==null?void 0:O.labelType)!=="town-label")return;P.scale.set(f,f,f);const S=(v=(x=P.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,r;this.scenePaused=!0,(r=(n=this.time)==null?void 0:n.pause)==null||r.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,r,c;this.scenePaused=!1,(r=(n=this.time)==null?void 0:n.resume)==null||r.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 r;return(r=n==null?void 0:n.kill)==null?void 0:r.call(n)}),this.sceneTweens=[],super.destroy(),this.label3d&&this.label3d.destroy()}}const Pr={class:"map"},Cr={__name:"map",props:{sceneMode:{type:String,default:"default"},showDataOverlays:{type:Boolean,default:!0}},emits:["town-click","play-complete"],setup(C,{expose:n,emit:r}){const c=G(null),s=ei(null),f=C,p=r;let m=!1;Ao(()=>{O()});function h(x){var v,_,B,E;s.value||!c.value||(s.value=new kr(c.value,x,{showDataOverlays:f.showDataOverlays,onTownClick:H=>p("town-click",H),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&&(P(),!(m||s.value.mapAnimationDone)&&(m=!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 P(){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,H;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||(H=(E=s.value.time)==null?void 0:E.pause)==null||H.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:h,play:b,resume:P,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)=>(L(),F("div",Pr,[w("canvas",{ref_key:"canvasRef",ref:c},null,512)]))}},Lr=""+new URL("flyline6-525edf67-balabala-1784043664472.png",import.meta.url).href;class Ar{constructor(){this.init()}init(){this.instance=new ji,this.instance.addLoader(Ci,"FileLoader");let n=[{type:"Texture",name:"flyline",path:So},{type:"Texture",name:"pathLine",path:So},{type:"Texture",name:"pathLine2",path:Wi},{type:"Texture",name:"pathLine3",path:Ui},{type:"File",name:"china",path:ua(si)},{type:"File",name:"mapJson",path:ua(li)},{type:"File",name:"mapStroke",path:ua(ci)},{type:"Texture",name:"huiguang",path:Ki},{type:"Texture",name:"rotationBorder1",path:qi},{type:"Texture",name:"rotationBorder2",path:Yi},{type:"Texture",name:"guangquan1",path:Mo},{type:"Texture",name:"guangquan2",path:Qi},{type:"Texture",name:"chinaBlurLine",path:Ji},{type:"Texture",name:"ocean",path:Zi},{type:"Texture",name:"side",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}];this.instance.loadAll(n)}}const Tr={class:"home-dashboard"},_r={class:"home-bottom-switcher"},Ir={class:"home-left"},Fr={class:"home-side-stack is-left"},Er={class:"home-right"},Or={class:"home-side-stack is-right"},Br=["aria-label","onClick"],Gr={key:0,class:"home-video-monitor"},Nr=["disabled"],Hr=["data-video-index","onClick","onKeydown"],Rr={key:0,class:"home-video-loading"},Dr={key:1,class:"home-video-error"},zr=["onClick"],$r={class:"home-video-point-name"},Vr=["disabled"],jr={key:1,class:"home-forecast-trend-card"},Wr={class:"home-forecast-density-switcher","aria-label":"预测粒度切换"},Ur=["onClick"],Kr={key:3,class:"home-balance-gauge-grid"},qr={class:"home-balance-gauge-head"},Yr={class:"home-balance-gauge-ring"},Qr={class:"home-balance-gauge-value"},Jr={class:"home-balance-gauge-name"},Zr={class:"home-balance-gauge-extra"},Xr={class:"home-more-dialog home-video-dialog"},es={class:"home-more-dialog-head"},ts={key:0,class:"home-video-modal-grid"},as=["data-video-index","onClick","onKeydown"],os={key:0,class:"home-video-loading"},ns={key:1,class:"home-video-error"},is=["onClick"],rs={class:"home-video-point-name"},ss={key:1,class:"home-more-empty"},ls={key:2,class:"home-more-pager"},cs=["disabled"],us=["disabled"],ds={key:0,class:"home-video-web-overlay",role:"dialog","aria-modal":"true","aria-label":"基地监控网页全屏"},fs={class:"home-more-dialog home-balance-dialog"},hs={class:"home-more-dialog-head"},ms={class:"home-balance-modal-grid"},ps={class:"home-balance-modal-title"},gs={class:"home-balance-modal-value"},vs="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAL1JREFUOE9j/P///38GMgAjSKOMdxRJWp9sXcYA18giJMLw99MHhv9//mA1hJGZhYGZX4Dhz7s3DCgaGVlYGDjVtBi+37rO8P/PbxTNjCysDJyqWgzfb18Dy6FoBKmEKfh17wZcM0iMTUkDrgmkDkMjSJCFnZ3hwbr5KDYqBCUy/Pn5Ey6GVSMzMxPDw01LUDTK+8Uw/P37j0YayXIqWYGDHuTInsQbHeAE8PEDw/+/JCYAUtIcPDpI0QRTCwDhurXXJ/EmUwAAAABJRU5ErkJggg==",ys="image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAQ5JREFUOE+1la1OQ0EQRs8kCFIQdVCCxIBpCK1AInkDHC+B4QkwvASub4GsaE0NGCRpKhGFVDQZ+Mjem9vNbkphmWTMfjNnd3b2x0iYuxuwH7wNbIewBfAGzORm5nG6ElfM3QU6AXZSkzXG3oEnMxO8thWgux8DR2tAsfxiZs/VYA38Jazi1NBvYCizv+HK4vCRyrfQgIsf7Nm6+bSnjwIeAGeZaGnXQDfoE+ABmGbixwKeAoeJAMHuv3w30ubATQb6KqDKjZPEuAXOMysZAncJbS7gJbCVEAdAKwP8AK4S2vJfgMVLLt6UDtAreWx0W8od7OJXryq16OPwR2j6+WpAyz2wDagape7vARt9AZ+G3HmhiKS3xwAAAABJRU5ErkJggg==",bs=4,Lo="#ffffff",ut="#ffffff",dt="rgba(246, 253, 255, 0.92)",Ke="rgba(242, 253, 255, 0.9)",It="rgba(218, 250, 255, 0.28)",ws=12e3,xs=9.35,Fe="home-3d",ft=9,Vs={__name:"index",props:{active:{type:Boolean,default:!0}},emits:["module-stats","loading-progress","map-ready"],setup(C,{expose:n,emit:r}){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=C,p=r,m=G(null),h=G(null),b=G(null),P=G(null),S=new Map,O=G({}),x=new Map;let v=!1,_=!1,B=null,E=null;const H=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"),Ht=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(()=>Li(xa.value)),mt=I(()=>et.value),Fo=mt,Eo=Gi("2028"),Rt=[{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(k=>k.key===t.topicKey),o=In(t);if(!(o!=null&&o.layerName)&&!(o!=null&&o.dataPath))return null;const i=Oo[e],l=t.legendKey?(o.legends||[]).find(k=>k.key===t.legendKey):null,u=Array.isArray(t.legendKeys)?t.legendKeys.map(k=>(o.legends||[]).find(y=>y.key===k)).filter(Boolean):[];return t.type==="vector"?V(D({},o),{activeLegend:l||o.activeLegend,activeLegends:u.length?u:o.activeLegends,name:`${((d=Dt.find(k=>k.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}):i?V(D({},o),{name:`${(a==null?void 0:a.name)||o.name}分布`,styles:"",opacity:i.opacity,homePresentationMaxOpacity:i.maxOpacity,softMask:!1,homeGlowColor:i.glowColor,homeGlowBlur:i.glowBlur,homeGlowOpacity:i.glowOpacity,sldBody:Fn(o.layerName,i)}):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),Ho=I(()=>ka.value.style),Pa=I(()=>ta(ma.length)),Ge=I(()=>ta(_t.length)),Ca=I(()=>Pn(Nt.value)),La=I(()=>Cn(Eo,Ca.value.key)),tt=I(()=>ta(La.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,i)=>e[(a+i)%e.length])}),Ro=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(i=>i.index===t),o=a>=0?a:0;return Xe.value||Ht.value||le.value?o:(Math.floor(pe.value/bs)+o)%e.length}),R=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[R.value]||gt),Aa=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(Ae("grassland","grassland-town"),"草地面积"),aa(Ae("wetland","wetland-town-area"),"湿地面积"),aa(Ae("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=La.value,a=Tn(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(i){var M,k,y;const l=Array.isArray(i)?i:[i],u=l.find(T=>T.seriesType==="candlestick"),d=(u==null?void 0:u.data)||a[(y=(k=u==null?void 0:u.dataIndex)!=null?k:(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:An(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((i,l)=>({value:i.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),Ha(),jt()}),Ao(()=>{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=m.value)==null?void 0:e.destroyMap)==null||t.call(e),(o=(a=h.value)==null?void 0:a.destroyMap)==null||o.call(a),Jo()}),ht(R,()=>{if(!le.value){if(!Ht.value&&!ba.value&&!H.size){U.value="";return}be({resetError:!0})}}),ht(oe,e=>{var t,a;if(ve(),e===Fe){(a=(t=m.value)==null?void 0:t.pause)==null||a.call(t),W(()=>{bt(),Pe()});return}Fa(),W(()=>{var o,i;(i=(o=m.value)==null?void 0:o.resume)==null||i.call(o)})}),ht(()=>f.active,e=>{var t,a;e?(jt(),Zo(),Ga(),ya||Oa()):(_=!1,(a=(t=m.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=m.value)==null?void 0:e.hasMap)!=null&&t.call(e)?He():(o=(a=m.value)==null?void 0:a.loadMap)==null||o.call(a);return}bt()})}function bt(){if(!(v||!f.active||J.value)){if(Ea()){Pe(),He();return}if(Ot){Ia();return}Ze||(Ze=!0,ee=new Ar,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),i=Math.max(0,Number(t)||0);p("loading-progress",{progress:Math.min(98,Math.floor(i/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),He()}function Ia(){var e,t,a,o;v||!f.active||J.value||!ee||((t=(e=h.value)==null?void 0:e.loadMap)==null||t.call(e,ee),Pe(),(o=(a=h.value)==null?void 0:a.play)==null||o.call(a),He())}function Pe(){var a,o,i,l,u,d,g,M;const e=h.value;(a=e==null?void 0:e.resume)==null||a.call(e);const t=Ea();(i=(o=t==null?void 0:t.sizes)==null?void 0:o.init)==null||i.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=h.value)==null?void 0:e.pause)==null||t.call(e)}function Ea(){var t;const e=(t=h.value)==null?void 0:t.canvasMap;return(e==null?void 0:e.value)||e||null}function Qo(){J.value||He()}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 He(){v||_||(_=!0,p("loading-progress",{progress:100}),p("map-ready"),Oa())}function Wt(e={}){var t,a,o,i,l,u,d,g,M;if(!J.value){Pe();return}if((a=(t=m.value)==null?void 0:t.resume)==null||a.call(t),e.reset){(i=(o=m.value)==null?void 0:o.resetView)==null||i.call(o),(l=m.value)!=null&&l.resetView||(d=(u=m.value)==null?void 0:u.refreshView)==null||d.call(u);return}(M=(g=m.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=m.value)==null?void 0:e.hasMap)!=null&&t.call(e)){Wt({reset:!0});return}jt(),W(()=>{var a,o;(o=(a=m.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 i=(t+o.length)%o.length,l=o[i],u=(l==null?void 0:l.live)||l||a,d=Number.isFinite(Number(l==null?void 0:l.index))?Number(l.index):i;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 Ha(){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}),i=(o==null?void 0:o.metrics)||{},l=Number((a=(t=i.headCount)!=null?t:i.head_count)!=null?a:0);Bt.value=Number.isFinite(l)?l:0}catch(o){Bt.value=0}v||Ha()})}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 Ra(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 Re(e){const t=ot(e).error;return t||(K(e)===R.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=R.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=R.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,i;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=(i=(o=vt.value[a])==null?void 0:o.index)!=null?i:0,W(()=>Jt())}function cn(){Gt.value=!0}function St(){Gt.value=!1}function Va(e){var i,l;const t=Ne.value,a=t.length;if(!a)return;be({resetError:!0});const o=Vt.value;ye.value=(l=(i=t[(o+e+a)%a])==null?void 0:i.index)!=null?l:0,Xe.value=!0,pe.value=0}function Le(e){if(!te.value.length){mn();return}const a=K(e),o=ne(a),i=ot(a);if(ye.value=a,Xe.value=!0,pe.value=0,Ft.has(o)||H.has(o)||(i.playing||i.loading)&&!i.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)||Le(e)}function Wa(e){var i,l,u,d,g,M,k,y,T,A;const t=((l=(i=e==null?void 0:e.target)==null?void 0:i.closest)==null?void 0:l.call(i,'[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=(k=ae.value)!=null?k:Number.isFinite(a)?a:R.value;(y=e.preventDefault)==null||y.call(e),(T=e.stopPropagation)==null||T.call(e),(A=e.stopImmediatePropagation)==null||A.call(e),un(o)}function un(e){return re(this,null,function*(){var i,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=(i=P.value)==null?void 0:i.querySelector)==null?void 0:l.call(i,".home-video-web-player-slot");if(!o){ae.value=null;return}o.appendChild(a),ze(t),De(t)})}function Mt(e={}){var i;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=(i=l==null?void 0:l.querySelector)==null?void 0:i.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(R.value,{stopOthers:!le.value})})}function Ka(a){return re(this,arguments,function*(e,t={}){const{stopOthers:o=!0}=t,i=K(e),l=te.value[i]||gt,u=ne(i);let d=Ra(i);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,i===R.value&&(U.value=d.error),Ce();return}if(H.has(u)||(d.playing||d.loading)&&!d.error)return;ye.value=i,pe.value=0,o?be({resetError:!0}):(H.has(u)||d.loading)&&it(i,{resetError:!0}),d=Ra(i),d.error="",d.loading=!0,d.playing=!1,d.ready=!1,i===R.value&&(U.value=""),Ce(),yield W();const g=(X.get(u)||0)+1;X.set(u,g);let M=null;gn(i,g);try{const k=kt(i)||b.value,y=nt(i);if(!pn(k,y))throw new Error("视频容器未就绪");const{width:T,height:A}=Ya(k,340,92);if(M=new ri.EZUIKitPlayer({id:y,accessToken:l.token,url:l.hdPlayUrl,audio:0,width:T,height:A,themeData:vn(),handleError(N){g===X.get(u)&&(rt(i),console.warn("EZUIKit player error",N),Zt(M),d.error="视频加载失败",d.loading=!1,d.playing=!1,d.ready=!1,X.set(u,g+1),H.delete(u),Xt(i),i===R.value&&(U.value=d.error),Ce())},handleSuccess(){g===X.get(u)&&(rt(i),d.error="",d.ready=!0,d.loading=!1,i===R.value&&(U.value=""),ze(i),De(i),Qt(y),Ce())},fullScreenChangeCallBack(){}}),g!==X.get(u)){Zt(M),Xt(i);return}H.set(u,M),d.playing=!0,Ce(),W(()=>{ze(i),De(i),Qt(y)})}catch(k){rt(i),console.warn("EZUIKit init error",k),d.error="视频加载失败",i===R.value&&(U.value=d.error),it(i,{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=R.value,t=0){if(typeof window=="undefined")return;const a=K(e),o=ne(a),i=ke.get(o);t===0&&i&&window.cancelAnimationFrame(i);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(H.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),i=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(i||1)),height:Math.max(1,Math.floor(l||1))}}function kt(e=R.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 i=S.get(t);return i!=null&&i.isConnected?i:null}function pn(e,t){var i;const a=(i=e==null?void 0:e.querySelector)==null?void 0:i.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=R.value){var $e,Ve;if(typeof document=="undefined")return;const t=K(e),a=ne(t),o=nt(t),i=ae.value===t&&P.value?P.value:kt(t)||b.value,l=document.getElementById(`${o}-wrap`),u=document.getElementById(o),d=l||u;if(!i||!d)return;const{width:g,height:M}=Ya(i),k=H.get(a);try{l&&u&&k&&typeof k.reSize=="function"?k.reSize(g,M):l&&u&&k&&typeof k.autoResize=="function"&&k.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 A=document.getElementById(`${o}-player`),N=document.getElementById(`${o}canvas0`),$=document.getElementById(`${o}canvas_draw0`),Te=[d,u,A,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(H.keys()).forEach(t=>{it(Number(t),e)}),Object.keys(ge).forEach(t=>{H.has(t)||it(Number(t),e)}),Ce()}function it(e,t={}){const{clearElement:a=!0,resetError:o=!1}=t,i=K(e),l=ne(i);qa(i),rt(i);const u=H.get(l);H.delete(l),X.set(l,(X.get(l)||0)+1),u&&Zt(u),a&&Xt(i);const d=ge[l];d&&(d.playing=!1,d.loading=!1,d.ready=!1,o&&(d.error=""),d.error||delete ge[l]),i===R.value&&o&&(U.value=""),Ce()}function gn(e,t){const a=K(e),o=ne(a);rt(a);const i=window.setTimeout(()=>{const l=ge[o];t!==X.get(o)||!(l!=null&&l.loading)||(l.error="视频加载超时",a===R.value&&(U.value=l.error),it(a,{resetError:!1}))},ws);Et.set(o,i)}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=R.value){var d;if(typeof document=="undefined")return;const t=K(e),a=nt(t),o=document.getElementById(`${a}-wrap`),i=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(),i!=null&&i.isConnected&&i.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 Ae(e,t){const a=O.value[e];return[...(a==null?void 0:a.leftPanels)||[],...(a==null?void 0:a.rightPanels)||[]].find(i=>(i==null?void 0:i.key)===t)}function aa(e,t){return e?V(D({},e),{title:t}):null}function Sn(){var M,k,y,T;const e=((M=Ae("grassland","grassland-town"))==null?void 0:M.rows)||[],t=((k=Ae("wetland","wetland-town-area"))==null?void 0:k.rows)||[],a=((y=Ae("grassland","grassland-productivity-town"))==null?void 0:y.rows)||[],o=((T=Ae("wetland","wetland-mu-yield"))==null?void 0:T.rows)||[],i=Pt(e),l=Pt(t),u=Pt(a),d=Pt(o);return[...new Set([...e,...t,...a,...o].map(A=>A==null?void 0:A.name).filter(Boolean))].map((A,N)=>{const $=i.get(A)||0,Te=l.get(A)||0,Ct=u.get(A)||0,$e=d.get(A)||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),Lt=j>0?Ve/j:st.reduce((sa,qn)=>sa+qn,0)/Math.max(st.length,1);return{key:`home-pasture-productivity-${A}`,name:A,value:Number(Lt.toFixed(2)),unit:"斤/亩",extra:"草地与湿地加权亩产",sourceIndex:N}}).filter(A=>A.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 k;const o=(e.rows||[]).filter(y=>Number.isFinite(Number(y.value))).slice(0,10),i=((k=o.find(y=>y.unit))==null?void 0:k.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:`单位:${i}`,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],A=T.find(Te=>Te.seriesName===t)||T[0],N=o[($=A==null?void 0:A.dataIndex)!=null?$:0];return N?`${N.name}
${t}:${ie(N.value)}${N.unit||i}`:""}},grid:{left:"12%",top:"25%",width:"82%",height:"55%"},xAxis:[{type:"category",data:o.map(y=>y.name),axisLabel:{interval:0,hideOverlap:!1,color:Lo,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 A=T.value(0),N=T.value(1),$=T.coord([A,N]);return{type:"image",style:{x:$[0]-4.5,y:$[1]-9,width:10,height:10,image:vs},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)||"",i=a.map(g=>Number(g.value)||0),l=Math.max(...i,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 k=(Array.isArray(g)?g:[g])[0],y=a[(T=k==null?void 0:k.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:Lo,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:i,type:"line",smooth:!0,symbol:ys,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,i=!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:i?{color:new je(0,0,0,1,[{offset:0,color:`${a}44`},{offset:1,color:`${a}05`}])}:void 0}}function Pn(e){return Rt.find(t=>t.key===e)||Rt[2]}function Cn(e,t="month"){if(t==="month")return Ni(e);const a=Hi(e),o=Math.max(1,Math.round(Math.max(1,a-1)*30)),i=t==="week"?7:1,l=Math.ceil(o/i)+1,u=Array.from({length:l},(k,y)=>{const T=Math.min(o,y*i);return Ri(T)}),d=u.map((k,y)=>{const A=Math.min(o,y*i)/o,N=Math.sin(y/(t==="week"?1.8:8.5))*Math.sin(Math.PI*A)*Math.min(360,e.months*18);return Math.round(xo+(e.stock-xo)*A+N)}),g=u.map((k,y)=>Math.round(e.births*(Math.min(o,y*i)/o))),M=u.map((k,y)=>Math.round(e.outflow*(Math.min(o,y*i)/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 An(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 k,y,T,A,N,$;const o=Number(((k=e.stock)==null?void 0:k[Math.max(a-1,0)])||0),i=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(((A=e.births)==null?void 0:A[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,i)+Math.max(d,Math.round(l*.32)),M=Math.max(0,Math.min(o,i)-Math.max(d,Math.round(u*.32)));return{label:t,open:o,close:i,low:M,high:g,birth:l,outflow:u,value:[o,i,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",i=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}${i}${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),i=Number(e==null?void 0:e.y);return!Number.isFinite(o)||!Number.isFinite(i)?{x:960,y:540}:o>=0&&o<=1920&&i>=0&&i<=1080&&(o>a.width||i>a.height)?{x:o,y:i}:{x:(o-a.left)/a.width*1920,y:(i-a.top)/a.height*1080}}function ia(e,t){var a,o,i,l;return((o=(a=m.value)==null?void 0:a.getVectorFeatureAnchorScreen)==null?void 0:o.call(a,e))||((l=(i=m.value)==null?void 0:i.getVectorFeatureScreen)==null?void 0:l.call(i,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,k,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,i=ao(o);if(!Number.isFinite(t)||!Number.isFinite(a)||!i){ve();return}const l=++Je,u=e.screen||{x:960,y:540};de.value=null,ue.value=null,Oe.value=!1,Be.value=!0,(k=(M=m.value)==null?void 0:M.clearSelectedFeature)==null||k.call(M);try{const A=yield Hn(o,{lng:t,lat:a},i);if(l!==Je||v)return;if(!A){ve();return}ue.value=A,Oe.value=!1,(T=(y=m.value)==null?void 0:y.highlightFeature)==null||T.call(y,A,{highlightTone:"v21"}),de.value=ia(A,u)}catch(A){l===Je&&ve()}finally{l===Je&&(Be.value=!1)}})}function Hn(o,i){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=Rn(u,a);if(!zn(d))return null;const g=Vn(d,e,t,a);return ra(g)>0?g:null})}function Rn(e,t){var o,i,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],(i=e==null?void 0:e.data)==null?void 0:i.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 i=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:i,feature:{type:"Feature",properties:i,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 i=o==null?void 0:o.value;if(i==null||i==="")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]=i)})}),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=m.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)=>(L(),F("div",Tr,[so(At(Cr,{ref_key:"threeMapSceneRef",ref:h,class:"home-map-scene home-three-map-scene","show-data-overlays":!1,onPlayComplete:Qo},null,512),[[lo,Bo.value]]),J.value?so((L(),xe(ui,{key:0,ref_key:"mapSceneRef",ref:m,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":xs,"minimum-zoom-distance":1,"auto-apply-layer-map-view":!1,"max-zoom":21,"enable-imagery-feature-pick":!1,"hide-town-label-stats":"",onReady:He,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",_r,[At(sr,{"model-value":oe.value,topics:Dt,"onUpdate:modelValue":En},null,8,["model-value"])]),zt.value?(L(),F("div",{key:1,class:"home-map-feature-info",style:lt(Ho.value)},[At(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",Ir,[w("div",Fr,[(L(!0),F(_e,null,Ie(Wo.value,a=>(L(),xe(uo,{key:a.key,class:"home-card left-card",title:a.title,width:We(wa),height:a.height},{default:la(()=>[a.option?(L(),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"])):(L(),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",Er,[w("div",Or,[(L(!0),F(_e,null,Ie(Uo.value,a=>(L(),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"?(L(),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,Br)):q("",!0)]),default:la(()=>[a.type==="video"?(L(),F("div",Gr,[w("button",{class:"home-video-nav home-video-prev",type:"button","aria-label":"上一路监控",disabled:Ne.value.length<=1,onClick:rn},"‹",8,Nr),w("div",{class:Ue(["home-video-grid",{"is-single":Aa.value.length<=1}])},[(L(!0),F(_e,null,Ie(Aa.value,o=>(L(),F("div",{key:o.key,ref_for:!0,ref:i=>Ba(i,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:i=>ja(o.index,i),onKeydown:[Tt(Se(i=>Le(o.index),["prevent"]),["enter"]),Tt(Se(i=>Le(o.index),["prevent"]),["space"])]},[t[4]||(t[4]=w("div",{class:"home-video-player-host"},null,-1)),wt(o.index)?(L(),F("div",Rr,"加载中")):q("",!0),Re(o.index)?(L(),F("div",Dr,z(Re(o.index)),1)):q("",!0),o.live.hdPlayUrl&&(!Da(o.index)||Re(o.index))?(L(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(i=>Le(o.index),["stop"])},null,8,zr)):q("",!0),w("div",$r,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,Vr)])):a.key==="yak-forecast-trend"?(L(),F("div",jr,[w("div",Wr,[(L(),F(_e,null,Ie(Rt,o=>w("button",{key:o.key,type:"button",class:Ue({active:o.key===Nt.value}),onClick:i=>Nt.value=o.key},z(o.label),11,Ur)),64))]),At(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?(L(),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"?(L(),F("div",Kr,[(L(!0),F(_e,null,Ie($t.value,(o,i)=>(L(),F("div",{key:o.key,class:Ue(["home-balance-gauge-card",{"is-active":i===Ro.value}]),style:lt(Ua(o))},[w("div",qr,[w("strong",null,z(o.status),1)]),w("div",Yr,[w("div",Qr,[w("strong",null,z(ie(o.value)),1),t[5]||(t[5]=w("em",null,"%",-1))])]),w("div",Jr,z(o.name),1),w("div",Zr,z(o.extra),1)],6))),128))])):(L(),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?(L(),F("div",{key:2,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部基地监控",onClick:Se(xt,["self"])},[w("section",Xr,[w("header",es,[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?(L(),F("div",ts,[(L(!0),F(_e,null,Ie(Ta.value,a=>(L(),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===R.value,"is-playing":Yt(a.index),"is-loading":wt(a.index),"is-offline":a.live.status!=="直播中"}]),style:lt(za(a.live,a.index===R.value,a.index)),role:"button",tabindex:"0",onClick:o=>ja(a.index,o),onKeydown:[Tt(Se(o=>Le(a.index),["prevent"]),["enter"]),Tt(Se(o=>Le(a.index),["prevent"]),["space"])]},[t[7]||(t[7]=w("div",{class:"home-video-player-host"},null,-1)),wt(a.index)?(L(),F("div",os,"加载中")):q("",!0),Re(a.index)?(L(),F("div",ns,z(Re(a.index)),1)):q("",!0),a.live.hdPlayUrl&&(!Da(a.index)||Re(a.index))?(L(),F("button",{key:2,class:"home-video-hit",type:"button","aria-label":"播放监控",onClick:Se(o=>Le(a.index),["stop"])},null,8,is)):q("",!0),w("span",rs,z(a.live.title),1)],46,as))),128))])):(L(),F("div",ss,"暂无监控数据")),yt.value>1?(L(),F("footer",ls,[w("button",{type:"button",disabled:ce.value<=1,onClick:t[1]||(t[1]=a=>$a(ce.value-1))},"上一页",8,cs),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,us)])):q("",!0)])])):q("",!0),(L(),xe(oi,{to:"body"},[ae.value!==null?(L(),F("div",ds,[w("div",{ref_key:"homeVideoWebStageRef",ref:P,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?(L(),F("div",{key:3,class:"home-more-modal",role:"dialog","aria-modal":"true","aria-label":"全部乡镇草畜平衡",onClick:Se(St,["self"])},[w("section",fs,[w("header",hs,[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",ms,[(L(!0),F(_e,null,Ie(pt.value,a=>(L(),F("article",{key:a.key,class:"home-balance-modal-item",style:lt(Ua(a))},[w("div",ps,[w("strong",null,z(a.name),1),w("span",null,z(a.status),1)]),w("div",gs,[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{Vs as default}; diff --git a/docs/assets/index-5afedc21-balabala-1784043664472.css b/docs/assets/index-5afedc21-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-5afedc21-balabala-1784043664472.css rename to docs/assets/index-5afedc21-balabala-1784045078568.css diff --git a/docs/assets/index-d0c7091a-1784043664472.js b/docs/assets/index-6a8ef8cf-1784045078568.js similarity index 82% rename from docs/assets/index-d0c7091a-1784043664472.js rename to docs/assets/index-6a8ef8cf-1784045078568.js index bd4c7f9..6de984e 100644 --- a/docs/assets/index-d0c7091a-1784043664472.js +++ b/docs/assets/index-6a8ef8cf-1784045078568.js @@ -1,4 +1,4 @@ -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-1784043664472.js";import{g as te}from"./index-e9f36657-1784043664472.js";const gt=""+new URL("bottom-menu-arrow-big-180b7071-balabala-1784043664472.svg",import.meta.url).href,pt=""+new URL("bottom-menu-arrow-small-19304179-balabala-1784043664472.svg",import.meta.url).href;/** +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 @@ -13,4 +13,4 @@ ${b} { }`,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-4921f42e-1784043664472.js"),["./index-4921f42e-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./live-scene-1-16ce1514-1784043664472.js","./index.esm.min-c54f6e6e-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./data-3d6664cd-1784043664472.js","./TopicSwitcher-f0c08774-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./livestockData-36ec0ae2-1784043664472.js","./FeatureInfoPanel-479e79c5-1784043664472.js","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./openApi-928665d4-1784043664472.js","./geoserver-6574cb91-1784043664472.js","./featurePanelLayout-93409244-1784043664472.js","./yakApi-032bf70c-1784043664472.js","./chartTheme-95a980bb-1784043664472.js","./data-5c83c66b-1784043664472.js","./data-b0a5f9a8-1784043664472.js","./index-6fbdaf34-balabala-1784043664472.css"],import.meta.url)),a=z(()=>H(()=>import("./index-82127856-1784043664472.js"),["./index-82127856-1784043664472.js","./index-e9f36657-1784043664472.js","./assets-93f7396b-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./screen2Standard-cdb21878-balabala-1784043664472.css","./TopicSwitcher-f0c08774-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./openApi-928665d4-1784043664472.js","./geoserver-6574cb91-1784043664472.js","./featurePanelLayout-93409244-1784043664472.js","./LayerPanel-4a87f4f0-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./index-6e1f3341-balabala-1784043664472.css","./layout-b708cd9c-balabala-1784043664472.css"],import.meta.url)),l=z(()=>H(()=>import("./index-7103e996-1784043664472.js"),["./index-7103e996-1784043664472.js","./index-e9f36657-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index-148a2898-balabala-1784043664472.css","./townshipBoundaries-1b068bef-1784043664472.js","./featurePanelLayout-93409244-1784043664472.js","./assets-93f7396b-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./TopicSwitcher-f0c08774-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./LayerPanel-4a87f4f0-1784043664472.js","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./data-b5a92f08-1784043664472.js","./data-5c83c66b-1784043664472.js","./index-7c335907-balabala-1784043664472.css","./layout-b708cd9c-balabala-1784043664472.css"],import.meta.url)),s=z(()=>H(()=>import("./index-cd04b5b9-1784043664472.js"),["./index-cd04b5b9-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index-148a2898-balabala-1784043664472.css","./data-5c83c66b-1784043664472.js","./index-e9f36657-1784043664472.js","./index-c36df85d-balabala-1784043664472.css"],import.meta.url)),c=z(()=>H(()=>import("./index-98e33e33-1784043664472.js"),["./index-98e33e33-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index.esm.min-c54f6e6e-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./data-3d6664cd-1784043664472.js","./TopicSwitcher-f0c08774-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./livestockData-36ec0ae2-1784043664472.js","./geoserver-6574cb91-1784043664472.js","./assets-93f7396b-1784043664472.js","./index-0060e718-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./yakApi-032bf70c-1784043664472.js","./index-11333eca-balabala-1784043664472.css"],import.meta.url)),h=z(()=>H(()=>import("./index-8532142c-1784043664472.js"),["./index-8532142c-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./live-scene-1-16ce1514-1784043664472.js","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./LayerPanel-4a87f4f0-1784043664472.js","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./featurePanelLayout-93409244-1784043664472.js","./data-defd9b10-1784043664472.js","./livestockData-36ec0ae2-1784043664472.js","./index-41d168c2-balabala-1784043664472.css"],import.meta.url)),p=z(()=>H(()=>import("./index-d9d7aa94-1784043664472.js"),["./index-d9d7aa94-1784043664472.js","./index.esm.min-c54f6e6e-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index-e3442fcf-1784043664472.js","./index-148a2898-balabala-1784043664472.css","./index-0060e718-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./index-e174cf85-balabala-1784043664472.css","./FeatureInfoPanel-479e79c5-1784043664472.js","./screen2Standard-15e4461a-1784043664472.js","./index-e9f36657-1784043664472.js","./screen2Standard-cdb21878-balabala-1784043664472.css","./FeatureInfoPanel-84703f43-balabala-1784043664472.css","./LayerPanel-4a87f4f0-1784043664472.js","./LayerPanel-7a55b2bc-balabala-1784043664472.css","./TopicSwitcher-f0c08774-1784043664472.js","./TopicSwitcher-589da7c9-balabala-1784043664472.css","./assets-93f7396b-1784043664472.js","./chartTheme-95a980bb-1784043664472.js","./data-5aa1bc1b-1784043664472.js","./livestockData-36ec0ae2-1784043664472.js","./index-5afedc21-balabala-1784043664472.css"],import.meta.url)),_=z(()=>H(()=>import("./index-e521f518-1784043664472.js"),["./index-e521f518-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./yakApi-032bf70c-1784043664472.js","./data-b0a5f9a8-1784043664472.js","./livestockData-36ec0ae2-1784043664472.js","./data-5c83c66b-1784043664472.js","./data-defd9b10-1784043664472.js","./data-b5a92f08-1784043664472.js","./townshipBoundaries-1b068bef-1784043664472.js","./data-5aa1bc1b-1784043664472.js","./index-e9f36657-1784043664472.js","./index-089a3dd0-balabala-1784043664472.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}; + }`)}}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-6e1f3341-balabala-1784043664472.css b/docs/assets/index-6e1f3341-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-6e1f3341-balabala-1784043664472.css rename to docs/assets/index-6e1f3341-balabala-1784045078568.css diff --git a/docs/assets/index-7c335907-balabala-1784043664472.css b/docs/assets/index-7c335907-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-7c335907-balabala-1784043664472.css rename to docs/assets/index-7c335907-balabala-1784045078568.css diff --git a/docs/assets/index-6fbdaf34-balabala-1784043664472.css b/docs/assets/index-86616eb2-balabala-1784045078568.css similarity index 99% rename from docs/assets/index-6fbdaf34-balabala-1784043664472.css rename to docs/assets/index-86616eb2-balabala-1784045078568.css index 60c84b9..e6477a1 100644 --- a/docs/assets/index-6fbdaf34-balabala-1784043664472.css +++ b/docs/assets/index-86616eb2-balabala-1784045078568.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-1784043664472.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-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} diff --git a/docs/assets/index-8d752fbe-balabala-1784043664472.css b/docs/assets/index-8d752fbe-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-8d752fbe-balabala-1784043664472.css rename to docs/assets/index-8d752fbe-balabala-1784045078568.css diff --git a/docs/assets/index-99bb110d-balabala-1784043664472.css b/docs/assets/index-9b7a4b9d-balabala-1784045078568.css similarity index 97% rename from docs/assets/index-99bb110d-balabala-1784043664472.css rename to docs/assets/index-9b7a4b9d-balabala-1784045078568.css index 21b6215..cbc19af 100644 --- a/docs/assets/index-99bb110d-balabala-1784043664472.css +++ b/docs/assets/index-9b7a4b9d-balabala-1784045078568.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-1784043664472.woff2) format("woff2")}@font-face{font-family:Alimama ShuHeiTi;font-weight:700;src:url(./AlimamaShuHeiTi-Bold-fa4a258d-balabala-1784043664472.woff2) format("woff2"),url(./AlimamaShuHeiTi-Bold-a95023f2-balabala-1784043664472.woff) format("woff"),url(./AlimamaShuHeiTi-Bold-6401fd0d-balabala-1784043664472.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-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} diff --git a/docs/assets/index-46ddbb9a-balabala-1784043664472.css b/docs/assets/index-a8767fd0-balabala-1784045078568.css similarity index 97% rename from docs/assets/index-46ddbb9a-balabala-1784043664472.css rename to docs/assets/index-a8767fd0-balabala-1784045078568.css index 02a7f03..d04a0c4 100644 --- a/docs/assets/index-46ddbb9a-balabala-1784043664472.css +++ b/docs/assets/index-a8767fd0-balabala-1784045078568.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-1784043664472.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-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%}} diff --git a/docs/assets/index-d9d7aa94-1784043664472.js b/docs/assets/index-ad1f9dba-1784045078568.js similarity index 95% rename from docs/assets/index-d9d7aa94-1784043664472.js rename to docs/assets/index-ad1f9dba-1784045078568.js index 483e8f4..4fb28fc 100644 --- a/docs/assets/index-d9d7aa94-1784043664472.js +++ b/docs/assets/index-ad1f9dba-1784045078568.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-c54f6e6e-1784043664472.js";import{_ as De}from"./index-e3442fcf-1784043664472.js";import{M as Nt}from"./index-0060e718-1784043664472.js";import{a as Ge,_ as $t}from"./FeatureInfoPanel-479e79c5-1784043664472.js";import{_ as At}from"./LayerPanel-4a87f4f0-1784043664472.js";import{_ as Ht}from"./TopicSwitcher-f0c08774-1784043664472.js";import{A as Bt}from"./assets-93f7396b-1784043664472.js";import{g as ge}from"./townshipBoundaries-1b068bef-1784043664472.js";import{q as ee,r as Rt,s as Ie}from"./screen2Standard-15e4461a-1784043664472.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-95a980bb-1784043664472.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-5aa1bc1b-1784043664472.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-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./index-e9f36657-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.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(` +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}; diff --git a/docs/assets/index-a29410f4-1784043664472.js b/docs/assets/index-bb5d6c3e-1784045078568.js similarity index 96% rename from docs/assets/index-a29410f4-1784043664472.js rename to docs/assets/index-bb5d6c3e-1784045078568.js index 18a90dc..61b071e 100644 --- a/docs/assets/index-a29410f4-1784043664472.js +++ b/docs/assets/index-bb5d6c3e-1784045078568.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-1784043664472.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-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}; diff --git a/docs/assets/index-0060e718-1784043664472.js b/docs/assets/index-c252ce06-1784045078568.js similarity index 99% rename from docs/assets/index-0060e718-1784043664472.js rename to docs/assets/index-c252ce06-1784045078568.js index d2a1231..adbbc97 100644 --- a/docs/assets/index-0060e718-1784043664472.js +++ b/docs/assets/index-c252ce06-1784045078568.js @@ -1,2 +1,2 @@ -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-1784043664472.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-1784043664472.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)} +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-1784043664472.css b/docs/assets/index-c36df85d-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-c36df85d-balabala-1784043664472.css rename to docs/assets/index-c36df85d-balabala-1784045078568.css diff --git a/docs/assets/index-cd04b5b9-1784043664472.js b/docs/assets/index-c45f03eb-1784045078568.js similarity index 98% rename from docs/assets/index-cd04b5b9-1784043664472.js rename to docs/assets/index-c45f03eb-1784045078568.js index 7f13c91..a2b7a44 100644 --- a/docs/assets/index-cd04b5b9-1784043664472.js +++ b/docs/assets/index-c45f03eb-1784045078568.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-e3442fcf-1784043664472.js";import{r as Qe,n as Xe}from"./index-d0c7091a-1784043664472.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-1784043664472.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-1784043664472.js";import"./index-e9f36657-1784043664472.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-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}; diff --git a/docs/assets/index-82127856-1784043664472.js b/docs/assets/index-e02d03a3-1784045078568.js similarity index 95% rename from docs/assets/index-82127856-1784043664472.js rename to docs/assets/index-e02d03a3-1784045078568.js index eafa06b..390332f 100644 --- a/docs/assets/index-82127856-1784043664472.js +++ b/docs/assets/index-e02d03a3-1784045078568.js @@ -1 +1 @@ -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-1784043664472.js";import{A as Jt}from"./assets-93f7396b-1784043664472.js";/* empty css */import{f as Xt,c as Je,b as Zt,g as Xe}from"./townshipBoundaries-1b068bef-1784043664472.js";import{g as en,b as tn,a as nn,c as sn}from"./openApi-928665d4-1784043664472.js";import{c as rn,F as an,g as ln,a as un}from"./featurePanelLayout-93409244-1784043664472.js";import{q as Ze,r as on,s as cn}from"./screen2Standard-15e4461a-1784043664472.js";import{M as dn}from"./index-0060e718-1784043664472.js";import{_ as vn}from"./TopicSwitcher-f0c08774-1784043664472.js";import{_ as fn}from"./LayerPanel-4a87f4f0-1784043664472.js";import{a as et,_ as gn}from"./FeatureInfoPanel-479e79c5-1784043664472.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-1784043664472.js";import{_ as st}from"./index-e3442fcf-1784043664472.js";import"./index-d0c7091a-1784043664472.js";import"./geoserver-6574cb91-1784043664472.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}; +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-1784043664472.css b/docs/assets/index-e174cf85-balabala-1784045078568.css similarity index 100% rename from docs/assets/index-e174cf85-balabala-1784043664472.css rename to docs/assets/index-e174cf85-balabala-1784045078568.css diff --git a/docs/assets/index-98e33e33-1784043664472.js b/docs/assets/index-e4881302-1784045078568.js similarity index 99% rename from docs/assets/index-98e33e33-1784043664472.js rename to docs/assets/index-e4881302-1784045078568.js index a9ccb67..5a5b3da 100644 --- a/docs/assets/index-98e33e33-1784043664472.js +++ b/docs/assets/index-e4881302-1784045078568.js @@ -1,4 +1,4 @@ -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-1784043664472.js";import{H as Pe}from"./index.esm.min-c54f6e6e-1784043664472.js";import{_ as le}from"./index-e3442fcf-1784043664472.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-15e4461a-1784043664472.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-3d6664cd-1784043664472.js";import{g as ta}from"./index-e9f36657-1784043664472.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-1784043664472.js";import{b as Zl,g as yr,a as br,c as Xl}from"./geoserver-6574cb91-1784043664472.js";import{_ as Jl}from"./TopicSwitcher-f0c08774-1784043664472.js";import{A as Ql}from"./assets-93f7396b-1784043664472.js";import{M as eu}from"./index-0060e718-1784043664472.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-032bf70c-1784043664472.js";import{y as uu}from"./livestockData-36ec0ae2-1784043664472.js";import"./index-d0c7091a-1784043664472.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`
+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)}
diff --git a/docs/assets/index-e9f36657-1784043664472.js b/docs/assets/index-e9f36657-1784045078568.js similarity index 100% rename from docs/assets/index-e9f36657-1784043664472.js rename to docs/assets/index-e9f36657-1784045078568.js diff --git a/docs/assets/index-e521f518-1784043664472.js b/docs/assets/index-f6dff886-1784045078568.js similarity index 97% rename from docs/assets/index-e521f518-1784043664472.js rename to docs/assets/index-f6dff886-1784045078568.js index f738f48..3d24389 100644 --- a/docs/assets/index-e521f518-1784043664472.js +++ b/docs/assets/index-f6dff886-1784045078568.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-1784043664472.js";import{r as $t,n as Nt}from"./index-d0c7091a-1784043664472.js";import{a as de,c as me,b as fe,l as ge}from"./yakApi-032bf70c-1784043664472.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-b0a5f9a8-1784043664472.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-defd9b10-1784043664472.js";import{b as rt,e as Et,a as Le,B as Pe}from"./data-5c83c66b-1784043664472.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-b5a92f08-1784043664472.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-5aa1bc1b-1784043664472.js";import"./index-e9f36657-1784043664472.js";import"./livestockData-36ec0ae2-1784043664472.js";import"./townshipBoundaries-1b068bef-1784043664472.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-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(` `)}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-7992758b-1784043664472.js"),["./SmartChartRenderer-7992758b-1784043664472.js","./index-1784043664472.js","./index-99bb110d-balabala-1784043664472.css","./index.esm.min-c54f6e6e-1784043664472.js","./SmartChartRenderer-7a3a96b9-balabala-1784043664472.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-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(` `)}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-fe56ccaa-1784045078568.js b/docs/assets/index-fe56ccaa-1784045078568.js new file mode 100644 index 0000000..b7791b5 --- /dev/null +++ b/docs/assets/index-fe56ccaa-1784045078568.js @@ -0,0 +1,112 @@ +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-c54f6e6e-1784043664472.js b/docs/assets/index.esm.min-43166a2f-1784045078568.js similarity index 99% rename from docs/assets/index.esm.min-c54f6e6e-1784043664472.js rename to docs/assets/index.esm.min-43166a2f-1784045078568.js index 7a11ea2..ad825db 100644 --- a/docs/assets/index.esm.min-c54f6e6e-1784043664472.js +++ b/docs/assets/index.esm.min-43166a2f-1784045078568.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-1784043664472.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-d0c7091a-1784043664472.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-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,`{ /* [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-1784043664472.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-1784045078568.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-1784043664472.png b/docs/assets/live-scene-1-786cdd0a-balabala-1784045078568.png similarity index 100% rename from docs/assets/live-scene-1-786cdd0a-balabala-1784043664472.png rename to docs/assets/live-scene-1-786cdd0a-balabala-1784045078568.png diff --git a/docs/assets/livestockData-36ec0ae2-1784043664472.js b/docs/assets/livestockData-36ec0ae2-1784045078568.js similarity index 100% rename from docs/assets/livestockData-36ec0ae2-1784043664472.js rename to docs/assets/livestockData-36ec0ae2-1784045078568.js diff --git a/docs/assets/menu-btn-91a961cf-balabala-1784043664472.png b/docs/assets/menu-btn-91a961cf-balabala-1784045078568.png similarity index 100% rename from docs/assets/menu-btn-91a961cf-balabala-1784043664472.png rename to docs/assets/menu-btn-91a961cf-balabala-1784045078568.png diff --git a/docs/assets/menu-btn-hover-62eba0bb-balabala-1784043664472.png b/docs/assets/menu-btn-hover-62eba0bb-balabala-1784045078568.png similarity index 100% rename from docs/assets/menu-btn-hover-62eba0bb-balabala-1784043664472.png rename to docs/assets/menu-btn-hover-62eba0bb-balabala-1784045078568.png diff --git a/docs/assets/ocean-bg-8c848b8f-balabala-1784043664472.png b/docs/assets/ocean-bg-8c848b8f-balabala-1784045078568.png similarity index 100% rename from docs/assets/ocean-bg-8c848b8f-balabala-1784043664472.png rename to docs/assets/ocean-bg-8c848b8f-balabala-1784045078568.png diff --git a/docs/assets/openApi-928665d4-1784043664472.js b/docs/assets/openApi-528034ce-1784045078568.js similarity index 99% rename from docs/assets/openApi-928665d4-1784043664472.js rename to docs/assets/openApi-528034ce-1784045078568.js index 14499df..162b30d 100644 --- a/docs/assets/openApi-928665d4-1784043664472.js +++ b/docs/assets/openApi-528034ce-1784045078568.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-d0c7091a-1784043664472.js";import{g as Ye}from"./geoserver-6574cb91-1784043664472.js";import{d as U,e as Ke,g as sn}from"./townshipBoundaries-1b068bef-1784043664472.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-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}; diff --git a/docs/assets/park-ee0533e0-balabala-1784043664472.png b/docs/assets/park-ee0533e0-balabala-1784045078568.png similarity index 100% rename from docs/assets/park-ee0533e0-balabala-1784043664472.png rename to docs/assets/park-ee0533e0-balabala-1784045078568.png diff --git a/docs/assets/pathLine2-d4134d4b-balabala-1784043664472.png b/docs/assets/pathLine2-d4134d4b-balabala-1784045078568.png similarity index 100% rename from docs/assets/pathLine2-d4134d4b-balabala-1784043664472.png rename to docs/assets/pathLine2-d4134d4b-balabala-1784045078568.png diff --git a/docs/assets/right-kuang-b1937caf-balabala-1784043664472.svg b/docs/assets/right-kuang-b1937caf-balabala-1784045078568.svg similarity index 100% rename from docs/assets/right-kuang-b1937caf-balabala-1784043664472.svg rename to docs/assets/right-kuang-b1937caf-balabala-1784045078568.svg diff --git a/docs/assets/ring2-a1b91808-balabala-1784043664472.png b/docs/assets/ring2-a1b91808-balabala-1784045078568.png similarity index 100% rename from docs/assets/ring2-a1b91808-balabala-1784043664472.png rename to docs/assets/ring2-a1b91808-balabala-1784045078568.png diff --git a/docs/assets/ring3-fe0f60d7-balabala-1784043664472.png b/docs/assets/ring3-fe0f60d7-balabala-1784045078568.png similarity index 100% rename from docs/assets/ring3-fe0f60d7-balabala-1784043664472.png rename to docs/assets/ring3-fe0f60d7-balabala-1784045078568.png diff --git a/docs/assets/ring4-f2e324d6-balabala-1784043664472.png b/docs/assets/ring4-f2e324d6-balabala-1784045078568.png similarity index 100% rename from docs/assets/ring4-f2e324d6-balabala-1784043664472.png rename to docs/assets/ring4-f2e324d6-balabala-1784045078568.png diff --git a/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784043664472.png b/docs/assets/rotationBorder1-2ce8e0ef-balabala-1784045078568.png similarity index 100% rename from docs/assets/rotationBorder1-2ce8e0ef-balabala-1784043664472.png rename to docs/assets/rotationBorder1-2ce8e0ef-balabala-1784045078568.png diff --git a/docs/assets/rotationBorder2-7496b968-balabala-1784043664472.png b/docs/assets/rotationBorder2-7496b968-balabala-1784045078568.png similarity index 100% rename from docs/assets/rotationBorder2-7496b968-balabala-1784043664472.png rename to docs/assets/rotationBorder2-7496b968-balabala-1784045078568.png diff --git a/docs/assets/saoguang-ccf84a88-balabala-1784043664472.svg b/docs/assets/saoguang-ccf84a88-balabala-1784045078568.svg similarity index 100% rename from docs/assets/saoguang-ccf84a88-balabala-1784043664472.svg rename to docs/assets/saoguang-ccf84a88-balabala-1784045078568.svg diff --git a/docs/assets/screen2Standard-15e4461a-1784043664472.js b/docs/assets/screen2Standard-98cd5b6c-1784045078568.js similarity index 99% rename from docs/assets/screen2Standard-15e4461a-1784043664472.js rename to docs/assets/screen2Standard-98cd5b6c-1784045078568.js index 5c22f5b..d68c00f 100644 --- a/docs/assets/screen2Standard-15e4461a-1784043664472.js +++ b/docs/assets/screen2Standard-98cd5b6c-1784045078568.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-1784043664472.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784043664472.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-1784045078568.js";import{_ as nh,o as ih,c as rh,a as za,r as sh}from"./index-1784045078568.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-1784043664472.png",import.meta.url).href,$_=""+new URL("ring3-fe0f60d7-balabala-1784043664472.png",import.meta.url).href,Q_=""+new URL("ring4-f2e324d6-balabala-1784043664472.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-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}; diff --git a/docs/assets/screen2Standard-cdb21878-balabala-1784043664472.css b/docs/assets/screen2Standard-cdb21878-balabala-1784045078568.css similarity index 100% rename from docs/assets/screen2Standard-cdb21878-balabala-1784043664472.css rename to docs/assets/screen2Standard-cdb21878-balabala-1784045078568.css diff --git a/docs/assets/stack-7a426057-balabala-1784043664472.png b/docs/assets/stack-7a426057-balabala-1784045078568.png similarity index 100% rename from docs/assets/stack-7a426057-balabala-1784043664472.png rename to docs/assets/stack-7a426057-balabala-1784045078568.png diff --git a/docs/assets/title-zs1-c15a5ee8-balabala-1784043664472.svg b/docs/assets/title-zs1-c15a5ee8-balabala-1784045078568.svg similarity index 100% rename from docs/assets/title-zs1-c15a5ee8-balabala-1784043664472.svg rename to docs/assets/title-zs1-c15a5ee8-balabala-1784045078568.svg diff --git a/docs/assets/town-f8c0c9cc-balabala-1784043664472.png b/docs/assets/town-f8c0c9cc-balabala-1784045078568.png similarity index 100% rename from docs/assets/town-f8c0c9cc-balabala-1784043664472.png rename to docs/assets/town-f8c0c9cc-balabala-1784045078568.png diff --git a/docs/assets/townshipBoundaries-1b068bef-1784043664472.js b/docs/assets/townshipBoundaries-1b068bef-1784045078568.js similarity index 100% rename from docs/assets/townshipBoundaries-1b068bef-1784043664472.js rename to docs/assets/townshipBoundaries-1b068bef-1784045078568.js diff --git a/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png b/docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png similarity index 100% rename from docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784043664472.png rename to docs/assets/xiangfa-breeding-base-03c7f2cb-balabala-1784045078568.png diff --git a/docs/assets/yakApi-032bf70c-1784043664472.js b/docs/assets/yakApi-9c3a9777-1784045078568.js similarity index 98% rename from docs/assets/yakApi-032bf70c-1784043664472.js rename to docs/assets/yakApi-9c3a9777-1784045078568.js index 47d1743..7b305ca 100644 --- a/docs/assets/yakApi-032bf70c-1784043664472.js +++ b/docs/assets/yakApi-9c3a9777-1784045078568.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-d0c7091a-1784043664472.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-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}; diff --git a/docs/assets/yield-66e9af79-balabala-1784043664472.png b/docs/assets/yield-66e9af79-balabala-1784045078568.png similarity index 100% rename from docs/assets/yield-66e9af79-balabala-1784043664472.png rename to docs/assets/yield-66e9af79-balabala-1784045078568.png diff --git a/docs/index.html b/docs/index.html index e4f09d3..7147e5f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -11,8 +11,8 @@ window.CESIUM_BASE_URL = "./cdn/Cesium/"; - - + + diff --git a/src/mini3d/core/Renderer.js b/src/mini3d/core/Renderer.js index 0065d0f..89e4cd9 100644 --- a/src/mini3d/core/Renderer.js +++ b/src/mini3d/core/Renderer.js @@ -1,10 +1,11 @@ import { SRGBColorSpace, WebGLRenderer } from "three" -export class Renderer { - constructor({ canvas, sizes, scene, camera, postprocessing = false, composer = null }) { - this.canvas = canvas - this.sizes = sizes - this.scene = scene - this.camera = camera +export class Renderer { + constructor({ canvas, sizes, scene, camera, config = {}, postprocessing = false, composer = null }) { + this.canvas = canvas + this.sizes = sizes + this.scene = scene + this.camera = camera + this.config = config || {} this.postprocessing = postprocessing this.composer = composer this.setInstance() @@ -12,8 +13,8 @@ export class Renderer { setInstance() { this.instance = new WebGLRenderer({ alpha: false, - antialias: true, - powerPreference: "high-performance", + antialias: this.config.antialias !== false, + powerPreference: this.config.powerPreference || "high-performance", canvas: this.canvas, }) this.instance.outputColorSpace = SRGBColorSpace diff --git a/src/mini3d/utils/Sizes.js b/src/mini3d/utils/Sizes.js index 691aa72..eef5ee7 100644 --- a/src/mini3d/utils/Sizes.js +++ b/src/mini3d/utils/Sizes.js @@ -1,9 +1,10 @@ import { EventEmitter } from "./EventEmitter"; export class Sizes extends EventEmitter { - constructor({ canvas }) { + constructor({ canvas, config = {} }) { super(); this.canvas = canvas; - this.maxPixelRatio = 2; + this.config = config || {}; + this.maxPixelRatio = Number(this.config.maxPixelRatio) || 2; this.handleResize = () => { this.init(); this.emit("resize"); @@ -15,7 +16,9 @@ export class Sizes extends EventEmitter { const target = this.canvas?.parentNode || this.canvas || document.documentElement; this.width = target.offsetWidth || window.innerWidth || 1; this.height = target.offsetHeight || window.innerHeight || 1; - this.pixelRatio = Math.min(window.devicePixelRatio || 1, this.maxPixelRatio); + const maxPixelRatio = Number(this.config.maxPixelRatio) || this.maxPixelRatio || 2; + this.maxPixelRatio = maxPixelRatio; + this.pixelRatio = Math.min(window.devicePixelRatio || 1, maxPixelRatio); } destroy() { window.removeEventListener("resize", this.handleResize); diff --git a/src/views/gdMap/assets.js b/src/views/gdMap/assets.js index 14985c7..efd058b 100644 --- a/src/views/gdMap/assets.js +++ b/src/views/gdMap/assets.js @@ -24,28 +24,23 @@ import focusBarTexture from "@/assets/texture/focus/focus_bar.png" import focusBgTexture from "@/assets/texture/focus/focus_bg.png" import focusMidQuanTexture from "@/assets/texture/focus/focus_mid_quan.png" import focusMoveBgTexture from "@/assets/texture/focus/focus_move_bg.png" -export class Assets { - constructor() { - this.init() - } +export class Assets { + constructor(options = {}) { + this.options = options || {} + this.init() + } init() { this.instance = new Resource() // 添加Fileloader this.instance.addLoader(FileLoader, "FileLoader") // 资源加载 - let assets = [ - { type: "Texture", name: "flyline", path: pathLine }, - { type: "Texture", name: "pathLine", path: pathLine }, - { type: "Texture", name: "pathLine2", path: pathLine2 }, - { type: "Texture", name: "pathLine3", path: pathLine3 }, - - { - type: "File", - name: "china", - path: getPublicMapResourcePath(CHINA_GEOJSON_PATH), - }, - + const chinaAsset = { + type: "File", + name: "china", + path: getPublicMapResourcePath(CHINA_GEOJSON_PATH), + } + const baseAssets = [ { type: "File", name: "mapJson", @@ -56,28 +51,34 @@ export class Assets { name: "mapStroke", path: getPublicMapResourcePath(HONGYUAN_COUNTY_OUTLINE_PATH), }, - - { type: "Texture", name: "huiguang", path: huiguang }, - { type: "Texture", name: "rotationBorder1", path: rotationBorder1 }, - { type: "Texture", name: "rotationBorder2", path: rotationBorder2 }, - { type: "Texture", name: "guangquan1", path: guangquan1 }, - { type: "Texture", name: "guangquan2", path: guangquan2 }, - { type: "Texture", name: "chinaBlurLine", path: chinaBlurLine }, - { type: "Texture", name: "ocean", path: ocean }, - { type: "Texture", name: "side", path: side }, - { type: "Texture", name: "flyLineFocus", path: flyLineFocus }, - { type: "Texture", name: "mapFlyline", path: mapFlyline }, - { type: "Texture", name: "arrow", path: arrow }, + { type: "Texture", name: "rotationBorder1", path: rotationBorder1 }, + { type: "Texture", name: "rotationBorder2", path: rotationBorder2 }, + { type: "Texture", name: "chinaBlurLine", path: chinaBlurLine }, + { type: "Texture", name: "ocean", path: ocean }, + { type: "Texture", name: "side", path: side }, + { type: "Texture", name: "pathLine3", path: pathLine3 }, + ] + const overlayAssets = [ + { type: "Texture", name: "flyline", path: pathLine }, + { type: "Texture", name: "pathLine", path: pathLine }, + { type: "Texture", name: "pathLine2", path: pathLine2 }, + { type: "Texture", name: "huiguang", path: huiguang }, + { type: "Texture", name: "guangquan1", path: guangquan1 }, + { type: "Texture", name: "guangquan2", path: guangquan2 }, + { type: "Texture", name: "flyLineFocus", path: flyLineFocus }, + { type: "Texture", name: "mapFlyline", path: mapFlyline }, + { type: "Texture", name: "arrow", path: arrow }, { type: "Texture", name: "point", path: point }, // focus { type: "Texture", name: "focusArrows", path: focusArrowsTexture }, { type: "Texture", name: "focusBar", path: focusBarTexture }, - { type: "Texture", name: "focusBg", path: focusBgTexture }, - { type: "Texture", name: "focusMidQuan", path: focusMidQuanTexture }, - { type: "Texture", name: "focusMoveBg", path: focusMoveBgTexture }, - ] - // 资源加载 - this.instance.loadAll(assets) - } + { type: "Texture", name: "focusBg", path: focusBgTexture }, + { type: "Texture", name: "focusMidQuan", path: focusMidQuanTexture }, + { type: "Texture", name: "focusMoveBg", path: focusMoveBgTexture }, + ] + const assets = this.options.showDataOverlays === false ? baseAssets : [chinaAsset, ...baseAssets, ...overlayAssets] + // 资源加载 + this.instance.loadAll(assets) + } } diff --git a/src/views/gdMap/map.js b/src/views/gdMap/map.js index 3d70f68..ce05ea5 100644 --- a/src/views/gdMap/map.js +++ b/src/views/gdMap/map.js @@ -70,6 +70,13 @@ function normalizeMapGeoJsonData(data) { }) return parsed } +function getOptionalResource(resource, name) { + try { + return resource?.getResource?.(name) + } catch (error) { + return null + } +} function clampNumber(value, min, max) { const number = Number(value) if (!Number.isFinite(number)) return min @@ -77,7 +84,10 @@ function clampNumber(value, min, max) { } export class World extends Mini3d { constructor(canvas, assets, options = {}) { - super(canvas) + super(canvas, { + maxPixelRatio: options.maxPixelRatio ?? (options.showDataOverlays === false ? 1.35 : undefined), + antialias: options.antialias, + }) this.options = options || {} // 中心坐标 this.geoProjectionCenter = [102.6305459723107, 32.72169252326339] @@ -85,6 +95,7 @@ export class World extends Mini3d { this.geoProjectionScale = 650 this.backgroundProjectionCenter = options.backgroundProjectionCenter || this.geoProjectionCenter this.backgroundProjectionScale = options.backgroundProjectionScale || 120 + this.geoProjectionFn = geoMercator().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0, 0]) // 飞线中心 this.flyLineCenter = [102.60242339873115, 32.83022561372293] // 地图拉伸高度 @@ -111,7 +122,7 @@ export class World extends Mini3d { this.assets = assets this.staticMapData = { - china: normalizeMapGeoJsonData(this.assets.instance.getResource("china")), + china: normalizeMapGeoJsonData(getOptionalResource(this.assets.instance, "china")), mapJson: normalizeMapGeoJsonData(this.assets.instance.getResource("mapJson")), mapStroke: normalizeMapGeoJsonData(this.assets.instance.getResource("mapStroke")), } @@ -424,13 +435,13 @@ export class World extends Mini3d { this.scene.add(pointLight) } createMap() { - let mapGroup = new Group() - let focusMapGroup = new Group() - this.focusMapGroup = focusMapGroup - let { china, chinaTopLine } = this.createChina() - let { map, mapTop, mapLine } = this.createProvince() - china.setParent(mapGroup) - chinaTopLine.setParent(mapGroup) + let mapGroup = new Group() + let focusMapGroup = new Group() + this.focusMapGroup = focusMapGroup + let { china, chinaTopLine } = this.createChina() + let { map, mapTop, mapLine } = this.createProvince() + china?.setParent(mapGroup) + chinaTopLine?.setParent(mapGroup) // 创建扩散 this.createDiffuse() map.setParent(focusMapGroup) @@ -455,8 +466,9 @@ export class World extends Mini3d { let params = { chinaBgMaterialColor: "#152c47", lineColor: "#3f82cd", - } + } let chinaData = this.staticMapData.china + if (!chinaData?.features?.length) return { china: null, chinaTopLine: null } let chinaBgMaterial = new MeshLambertMaterial({ color: new Color(params.chinaBgMaterialColor), transparent: true, @@ -1423,7 +1435,7 @@ export class World extends Mini3d { } geoProjection(args) { - return geoMercator().center(this.geoProjectionCenter).scale(this.geoProjectionScale).translate([0, 0])(args) + return this.geoProjectionFn(args) } updateTownLabelScale() { const labels = this.otherLabel || [] diff --git a/src/views/gdMap/map.vue b/src/views/gdMap/map.vue index 0e6d24c..6819f97 100644 --- a/src/views/gdMap/map.vue +++ b/src/views/gdMap/map.vue @@ -17,6 +17,10 @@ const props = defineProps({ type: Boolean, default: true, }, + maxPixelRatio: { + type: Number, + default: 0, + }, }); const emit = defineEmits(["town-click", "play-complete"]); let hasPlayedIntro = false; @@ -27,6 +31,7 @@ function loadMap(assets) { if (canvasMap.value || !canvasRef.value) return; canvasMap.value = new World(canvasRef.value, assets, { showDataOverlays: props.showDataOverlays, + maxPixelRatio: props.maxPixelRatio || undefined, onTownClick: (payload) => emit("town-click", payload), onPlayComplete: () => emit("play-complete"), }); diff --git a/src/views/home/index.vue b/src/views/home/index.vue index 3983e91..0a7f18a 100644 --- a/src/views/home/index.vue +++ b/src/views/home/index.vue @@ -5,6 +5,7 @@ ref="threeMapSceneRef" class="home-map-scene home-three-map-scene" :show-data-overlays="false" + :max-pixel-ratio="1.35" @play-complete="handleThreeHomeMapReady" />