@next-bricks/data-view 1.10.5 → 1.10.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +5 -5
- package/dist/chunks/{1122.218716d9.js → 1122.744a7c4f.js} +2 -2
- package/dist/chunks/{1122.218716d9.js.map → 1122.744a7c4f.js.map} +1 -1
- package/dist/chunks/{114.4775279a.js → 114.16bb3959.js} +2 -2
- package/dist/chunks/{114.4775279a.js.map → 114.16bb3959.js.map} +1 -1
- package/dist/chunks/{1493.be56bf29.js → 1493.bfc35531.js} +2 -2
- package/dist/chunks/{1493.be56bf29.js.map → 1493.bfc35531.js.map} +1 -1
- package/dist/chunks/{1940.c55ea64f.js → 1940.5301be9a.js} +2 -2
- package/dist/chunks/{1940.c55ea64f.js.map → 1940.5301be9a.js.map} +1 -1
- package/dist/chunks/{2277.24d2aaf3.js → 2277.88c4c79d.js} +2 -2
- package/dist/chunks/{2277.24d2aaf3.js.map → 2277.88c4c79d.js.map} +1 -1
- package/dist/chunks/3171.81163c1e.js +2 -0
- package/dist/chunks/{3171.4a1c755b.js.map → 3171.81163c1e.js.map} +1 -1
- package/dist/chunks/{3933.465cb11d.js → 3933.6a9d6fea.js} +2 -2
- package/dist/chunks/{6314.9a310688.js.map → 3933.6a9d6fea.js.map} +1 -1
- package/dist/chunks/{4185.129215f0.js → 4185.39591309.js} +3 -3
- package/dist/chunks/{4185.129215f0.js.map → 4185.39591309.js.map} +1 -1
- package/dist/chunks/{6672.0e39fc21.js → 4291.8a2ae0f7.js} +2 -2
- package/dist/chunks/{6672.0e39fc21.js.map → 4291.8a2ae0f7.js.map} +1 -1
- package/dist/chunks/{4658.0b6ba410.js → 4658.89dae718.js} +2 -2
- package/dist/chunks/{4658.0b6ba410.js.map → 4658.89dae718.js.map} +1 -1
- package/dist/chunks/{4837.ff8ce05e.js → 4837.7448e6ff.js} +2 -2
- package/dist/chunks/{4837.ff8ce05e.js.map → 4837.7448e6ff.js.map} +1 -1
- package/dist/chunks/5552.09717b08.js +2 -0
- package/dist/chunks/{5552.833602b1.js.map → 5552.09717b08.js.map} +1 -1
- package/dist/chunks/{5902.15d216ce.js → 5902.fb04b2f1.js} +3 -3
- package/dist/chunks/{5902.15d216ce.js.map → 5902.fb04b2f1.js.map} +1 -1
- package/dist/chunks/{6314.9a310688.js → 6314.7accdd66.js} +2 -2
- package/dist/chunks/{3933.465cb11d.js.map → 6314.7accdd66.js.map} +1 -1
- package/dist/chunks/{6519.2c230a4e.js → 6519.21bfdd71.js} +2 -2
- package/dist/chunks/{6519.2c230a4e.js.map → 6519.21bfdd71.js.map} +1 -1
- package/dist/chunks/{7218.40e3fcfa.js → 7218.060225f1.js} +2 -2
- package/dist/chunks/{7218.40e3fcfa.js.map → 7218.060225f1.js.map} +1 -1
- package/dist/chunks/{726.7ffcd9b0.js → 726.043bfaf6.js} +2 -2
- package/dist/chunks/726.043bfaf6.js.map +1 -0
- package/dist/chunks/{7733.e3d6da30.js → 7733.f169bda3.js} +2 -2
- package/dist/chunks/{7733.e3d6da30.js.map → 7733.f169bda3.js.map} +1 -1
- package/dist/chunks/{8097.4bdd19a0.js → 8097.d904e051.js} +2 -2
- package/dist/chunks/{8097.4bdd19a0.js.map → 8097.d904e051.js.map} +1 -1
- package/dist/chunks/{8826.b6850c10.js → 8826.32bd732c.js} +2 -2
- package/dist/chunks/8826.32bd732c.js.map +1 -0
- package/dist/chunks/{8989.1ed994e9.js → 8989.19dba330.js} +2 -2
- package/dist/chunks/{8989.1ed994e9.js.map → 8989.19dba330.js.map} +1 -1
- package/dist/chunks/9006.8697740a.js +2 -0
- package/dist/chunks/9006.8697740a.js.map +1 -0
- package/dist/chunks/{9559.39580950.js → 9559.66f67fed.js} +2 -2
- package/dist/chunks/{9559.39580950.js.map → 9559.66f67fed.js.map} +1 -1
- package/dist/chunks/{app-wall-card-item.0c3639b4.js → app-wall-card-item.d0dd0411.js} +3 -3
- package/dist/chunks/{app-wall-card-item.0c3639b4.js.map → app-wall-card-item.d0dd0411.js.map} +1 -1
- package/dist/chunks/{app-wall-relation-line.d99b0e1b.js → app-wall-relation-line.307640ff.js} +3 -3
- package/dist/chunks/{app-wall-relation-line.d99b0e1b.js.map → app-wall-relation-line.307640ff.js.map} +1 -1
- package/dist/chunks/{app-wall-system-card.405a1347.js → app-wall-system-card.6c0ddb4b.js} +2 -2
- package/dist/chunks/{app-wall-system-card.405a1347.js.map → app-wall-system-card.6c0ddb4b.js.map} +1 -1
- package/dist/chunks/{app-wall.1a49dac7.js → app-wall.87940c37.js} +2 -2
- package/dist/chunks/{app-wall.1a49dac7.js.map → app-wall.87940c37.js.map} +1 -1
- package/dist/chunks/basic-index-group.117cb255.js +2 -0
- package/dist/chunks/{basic-index-group.01408355.js.map → basic-index-group.117cb255.js.map} +1 -1
- package/dist/chunks/{battery-chart.c671bcab.js → battery-chart.60c3f750.js} +2 -2
- package/dist/chunks/{battery-chart.c671bcab.js.map → battery-chart.60c3f750.js.map} +1 -1
- package/dist/chunks/{brick-notification.dce620df.js → brick-notification.37d63326.js} +2 -2
- package/dist/chunks/{brick-notification.dce620df.js.map → brick-notification.37d63326.js.map} +1 -1
- package/dist/chunks/bubbles-indicator.1bdd4e1e.js +2 -0
- package/dist/chunks/{bubbles-indicator.a8dccc46.js.map → bubbles-indicator.1bdd4e1e.js.map} +1 -1
- package/dist/chunks/{cabinet-app-layer.1b31ed3d.js → cabinet-app-layer.e1d4046d.js} +3 -3
- package/dist/chunks/{cabinet-app-layer.1b31ed3d.js.map → cabinet-app-layer.e1d4046d.js.map} +1 -1
- package/dist/chunks/{cabinet-button.8eb4d1e6.js → cabinet-button.c00f6180.js} +2 -2
- package/dist/chunks/{cabinet-button.8eb4d1e6.js.map → cabinet-button.c00f6180.js.map} +1 -1
- package/dist/chunks/{cabinet-container.ceefcd40.js → cabinet-container.81c4b9f4.js} +3 -3
- package/dist/chunks/{cabinet-container.ceefcd40.js.map → cabinet-container.81c4b9f4.js.map} +1 -1
- package/dist/chunks/{cabinet-graph.09e0fb85.js → cabinet-graph.fcb92c2f.js} +2 -2
- package/dist/chunks/{cabinet-graph.09e0fb85.js.map → cabinet-graph.fcb92c2f.js.map} +1 -1
- package/dist/chunks/{cabinet-node.386b4a94.js → cabinet-node.13637e34.js} +3 -3
- package/dist/chunks/{cabinet-node.386b4a94.js.map → cabinet-node.13637e34.js.map} +1 -1
- package/dist/chunks/{cabinet-thumbnail.85e0fbc4.js → cabinet-thumbnail.ad31973a.js} +3 -3
- package/dist/chunks/{cabinet-thumbnail.85e0fbc4.js.map → cabinet-thumbnail.ad31973a.js.map} +1 -1
- package/dist/chunks/china-map-chart.f7b5b8e5.js +2 -0
- package/dist/chunks/{china-map-chart.f7192d52.js.map → china-map-chart.f7b5b8e5.js.map} +1 -1
- package/dist/chunks/china-map.65a650b4.js +2 -0
- package/dist/chunks/china-map.65a650b4.js.map +1 -0
- package/dist/chunks/{complex-search.02b8adf9.js → complex-search.52ad96b5.js} +2 -2
- package/dist/chunks/{complex-search.02b8adf9.js.map → complex-search.52ad96b5.js.map} +1 -1
- package/dist/chunks/crystal-ball-indicator.badadce8.js +2 -0
- package/dist/chunks/{crystal-ball-indicator.49a784d0.js.map → crystal-ball-indicator.badadce8.js.map} +1 -1
- package/dist/chunks/data-display-flipper-fifth.699386fa.js +2 -0
- package/dist/chunks/{data-display-flipper-fifth.3eed7df2.js.map → data-display-flipper-fifth.699386fa.js.map} +1 -1
- package/dist/chunks/data-display-flipper-sixth.815ef810.js +2 -0
- package/dist/chunks/{data-display-flipper-sixth.842f651c.js.map → data-display-flipper-sixth.815ef810.js.map} +1 -1
- package/dist/chunks/data-display-flipper.b3013eff.js +2 -0
- package/dist/chunks/{data-display-flipper.9662a4b6.js.map → data-display-flipper.b3013eff.js.map} +1 -1
- package/dist/chunks/{dropdown-menu.d2913962.js → dropdown-menu.a6b0951c.js} +3 -3
- package/dist/chunks/{dropdown-menu.d2913962.js.map → dropdown-menu.a6b0951c.js.map} +1 -1
- package/dist/chunks/{gauge-chart.18257ad8.js → gauge-chart.7d7bc1a8.js} +2 -2
- package/dist/chunks/{gauge-chart.18257ad8.js.map → gauge-chart.7d7bc1a8.js.map} +1 -1
- package/dist/chunks/{gear-background.f228b8fb.js → gear-background.72a23547.js} +2 -2
- package/dist/chunks/{gear-background.f228b8fb.js.map → gear-background.72a23547.js.map} +1 -1
- package/dist/chunks/globe-with-gear-indicator.a43a1281.js +2 -0
- package/dist/chunks/{globe-with-gear-indicator.5c936eb2.js.map → globe-with-gear-indicator.a43a1281.js.map} +1 -1
- package/dist/chunks/globe-with-halo-indicator.432f9fca.js +2 -0
- package/dist/chunks/{globe-with-halo-indicator.6067efe9.js.map → globe-with-halo-indicator.432f9fca.js.map} +1 -1
- package/dist/chunks/globe-with-orbit-indicator.bc22f9a6.js +2 -0
- package/dist/chunks/{globe-with-orbit-indicator.adf893c7.js.map → globe-with-orbit-indicator.bc22f9a6.js.map} +1 -1
- package/dist/chunks/{graph-layout-grid.502961fd.js → graph-layout-grid.69512db5.js} +2 -2
- package/dist/chunks/{graph-layout-grid.502961fd.js.map → graph-layout-grid.69512db5.js.map} +1 -1
- package/dist/chunks/{graph-node.24c47545.js → graph-node.f66d99e1.js} +2 -2
- package/dist/chunks/{graph-node.24c47545.js.map → graph-node.f66d99e1.js.map} +1 -1
- package/dist/chunks/{graph-text.4b52b8f5.js → graph-text.dd39e444.js} +2 -2
- package/dist/chunks/{graph-text.4b52b8f5.js.map → graph-text.dd39e444.js.map} +1 -1
- package/dist/chunks/{grid-background.bc6826b1.js → grid-background.0a80f40d.js} +2 -2
- package/dist/chunks/{grid-background.bc6826b1.js.map → grid-background.0a80f40d.js.map} +1 -1
- package/dist/chunks/{hi-tech-button.933a2986.js → hi-tech-button.dbd085ca.js} +2 -2
- package/dist/chunks/{hi-tech-button.933a2986.js.map → hi-tech-button.dbd085ca.js.map} +1 -1
- package/dist/chunks/indicator-card.9e83116a.js +3 -0
- package/dist/chunks/{indicator-card.e762b1e7.js.map → indicator-card.9e83116a.js.map} +1 -1
- package/dist/chunks/{lights-component-title.2ab3d24a.js → lights-component-title.ae660590.js} +2 -2
- package/dist/chunks/{lights-component-title.2ab3d24a.js.map → lights-component-title.ae660590.js.map} +1 -1
- package/dist/chunks/{loading-panel.d162b63b.js → loading-panel.3c87234e.js} +2 -2
- package/dist/chunks/{loading-panel.d162b63b.js.map → loading-panel.3c87234e.js.map} +1 -1
- package/dist/chunks/main.49724130.js +2 -0
- package/dist/chunks/main.49724130.js.map +1 -0
- package/dist/chunks/{modern-style-component-title.697be476.js → modern-style-component-title.a4893048.js} +2 -2
- package/dist/chunks/{modern-style-component-title.697be476.js.map → modern-style-component-title.a4893048.js.map} +1 -1
- package/dist/chunks/{modern-style-page-title.6ddcbe65.js → modern-style-page-title.738c0555.js} +2 -2
- package/dist/chunks/{modern-style-page-title.6ddcbe65.js.map → modern-style-page-title.738c0555.js.map} +1 -1
- package/dist/chunks/{modern-style-treemap.c05f6e0f.js → modern-style-treemap.7244603b.js} +3 -3
- package/dist/chunks/{modern-style-treemap.c05f6e0f.js.map → modern-style-treemap.7244603b.js.map} +1 -1
- package/dist/chunks/{particle-animation.b1b6ec5a.js → particle-animation.50f64043.js} +2 -2
- package/dist/chunks/{particle-animation.b1b6ec5a.js.map → particle-animation.50f64043.js.map} +1 -1
- package/dist/chunks/progress-bar-list.359d9e4d.js +2 -0
- package/dist/chunks/{progress-bar-list.88b054a1.js.map → progress-bar-list.359d9e4d.js.map} +1 -1
- package/dist/chunks/{radar-chart.e01591cc.js → radar-chart.bb997f01.js} +2 -2
- package/dist/chunks/{radar-chart.e01591cc.js.map → radar-chart.bb997f01.js.map} +1 -1
- package/dist/chunks/simple-card-item.96aef888.js +3 -0
- package/dist/chunks/{simple-card-item.881f61f7.js.map → simple-card-item.96aef888.js.map} +1 -1
- package/dist/chunks/{tabs-drawer.45793d5d.js → tabs-drawer.e4ae4b71.js} +3 -3
- package/dist/chunks/{tabs-drawer.45793d5d.js.map → tabs-drawer.e4ae4b71.js.map} +1 -1
- package/dist/chunks/{tabs-page-title.47a0ddab.js → tabs-page-title.1807665e.js} +3 -3
- package/dist/chunks/{tabs-page-title.47a0ddab.js.map → tabs-page-title.1807665e.js.map} +1 -1
- package/dist/chunks/tech-mesh-base-view.d54ba189.js +2 -0
- package/dist/chunks/{tech-mesh-base-view.0b28e53e.js.map → tech-mesh-base-view.d54ba189.js.map} +1 -1
- package/dist/chunks/{title-text.fa198772.js → title-text.918b95ca.js} +2 -2
- package/dist/chunks/{title-text.fa198772.js.map → title-text.918b95ca.js.map} +1 -1
- package/dist/chunks/{top-title-bar.d806d4fd.js → top-title-bar.69f2cf0f.js} +2 -2
- package/dist/chunks/{top-title-bar.d806d4fd.js.map → top-title-bar.69f2cf0f.js.map} +1 -1
- package/dist/examples.json +4 -4
- package/dist/index.f15a38e3.js +2 -0
- package/dist/index.f15a38e3.js.map +1 -0
- package/dist/manifest.json +28 -28
- package/dist/types.json +97 -97
- package/package.json +6 -6
- package/dist/chunks/3171.4a1c755b.js +0 -2
- package/dist/chunks/5552.833602b1.js +0 -2
- package/dist/chunks/726.7ffcd9b0.js.map +0 -1
- package/dist/chunks/859.472360b6.js +0 -2
- package/dist/chunks/859.472360b6.js.map +0 -1
- package/dist/chunks/8826.b6850c10.js.map +0 -1
- package/dist/chunks/basic-index-group.01408355.js +0 -2
- package/dist/chunks/bubbles-indicator.a8dccc46.js +0 -2
- package/dist/chunks/china-map-chart.f7192d52.js +0 -2
- package/dist/chunks/china-map.c824e04b.js +0 -2
- package/dist/chunks/china-map.c824e04b.js.map +0 -1
- package/dist/chunks/crystal-ball-indicator.49a784d0.js +0 -2
- package/dist/chunks/data-display-flipper-fifth.3eed7df2.js +0 -2
- package/dist/chunks/data-display-flipper-sixth.842f651c.js +0 -2
- package/dist/chunks/data-display-flipper.9662a4b6.js +0 -2
- package/dist/chunks/globe-with-gear-indicator.5c936eb2.js +0 -2
- package/dist/chunks/globe-with-halo-indicator.6067efe9.js +0 -2
- package/dist/chunks/globe-with-orbit-indicator.adf893c7.js +0 -2
- package/dist/chunks/indicator-card.e762b1e7.js +0 -3
- package/dist/chunks/main.334e9115.js +0 -2
- package/dist/chunks/main.334e9115.js.map +0 -1
- package/dist/chunks/progress-bar-list.88b054a1.js +0 -2
- package/dist/chunks/simple-card-item.881f61f7.js +0 -3
- package/dist/chunks/tech-mesh-base-view.0b28e53e.js +0 -2
- package/dist/index.1f4089ba.js +0 -2
- package/dist/index.1f4089ba.js.map +0 -1
- /package/dist/chunks/{4185.129215f0.js.LICENSE.txt → 4185.39591309.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5902.15d216ce.js.LICENSE.txt → 5902.fb04b2f1.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{app-wall-card-item.0c3639b4.js.LICENSE.txt → app-wall-card-item.d0dd0411.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{app-wall-relation-line.d99b0e1b.js.LICENSE.txt → app-wall-relation-line.307640ff.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-app-layer.1b31ed3d.js.LICENSE.txt → cabinet-app-layer.e1d4046d.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-container.ceefcd40.js.LICENSE.txt → cabinet-container.81c4b9f4.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-node.386b4a94.js.LICENSE.txt → cabinet-node.13637e34.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{cabinet-thumbnail.85e0fbc4.js.LICENSE.txt → cabinet-thumbnail.ad31973a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{dropdown-menu.d2913962.js.LICENSE.txt → dropdown-menu.a6b0951c.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{indicator-card.e762b1e7.js.LICENSE.txt → indicator-card.9e83116a.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{modern-style-treemap.c05f6e0f.js.LICENSE.txt → modern-style-treemap.7244603b.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{simple-card-item.881f61f7.js.LICENSE.txt → simple-card-item.96aef888.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tabs-drawer.45793d5d.js.LICENSE.txt → tabs-drawer.e4ae4b71.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{tabs-page-title.47a0ddab.js.LICENSE.txt → tabs-page-title.1807665e.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_data_view=globalThis.webpackChunk_next_bricks_data_view||[]).push([[7889],{77687:(e,t,r)=>{r.r(t),r.d(t,{GlobeWithGearIndicator:()=>B,GlobeWithGearIndicatorComponent:()=>O});var n,a=r(70918),o=r(86121),i=r(70829),l=r(62740),s=r(18769),c=r.n(s),d=r(41123),u=r(69006),p=(r(37),r(82650)),h=r(57384),m=r(47906),f=r(11752),g=(r(95178),r(77293),r(70102)),b=r(92481);let v,x,y,w,S,E,M,A,k;const N=930,F=590,D=F-2,I=150,$=["#83F5E1","#FE8328","#296DFF","#214ED2","#9CC5FF","#67E0D8","#BF145B","#4FAAFF","#5245E2","#9281EE","#F8AB05","#2C9966"],P=229,T=465,C=317,L=(0,u.wrapBrick)("data-view.gear-background"),{defineElement:z,property:R}=(0,d.createDecorators)();let B;var _=new WeakMap,H=new WeakMap,U=new WeakMap,W=new WeakMap;class G extends u.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,_,x(this)),(0,a.A)(this,H,(y(this),w(this))),(0,a.A)(this,U,(S(this),E(this))),(0,a.A)(this,W,(M(this),A(this))),k(this)}get dataSource(){return(0,i.A)(_,this)}set dataSource(e){(0,o.A)(_,this,e)}get centerDataSource(){return(0,i.A)(H,this)}set centerDataSource(e){(0,o.A)(H,this,e)}get cornerDataSource(){return(0,i.A)(U,this)}set cornerDataSource(e){(0,o.A)(U,this,e)}get maxScale(){return(0,i.A)(W,this)}set maxScale(e){(0,o.A)(W,this,e)}render(){return c().createElement(O,{root:this,dataSource:this.dataSource,centerDataSource:this.centerDataSource,cornerDataSource:this.cornerDataSource,maxScale:this.maxScale})}}function O(e){let{root:t,dataSource:r,centerDataSource:n,cornerDataSource:a,maxScale:o}=e;const i=(0,m.D)({width:N,height:F,root:t,maxScale:o}),[l,d]=(0,f.L)(360),u=(0,s.useMemo)((()=>{var e;const t=null!==(e=null==r?void 0:r.slice(0,12))&&void 0!==e?e:[];if(0===t.length)return[];const n=Math.ceil(t.length/2),a=t.length%2==0,o=Math.PI/(n+1);let i,l=0;const s=[];for(;l<t.length;){const e=t[l],r=$[l%$.length];if(l%2==0)i=o*(l/2+1)-Math.PI/2,s.push({...e,color:r,...j(i,!0)});else{const t=a?Math.PI-i:Math.PI-(i+o/2);s.push({...e,color:r,...j(t,!1)})}l++}return s}),[r]);return c().createElement(c().Fragment,null,c().createElement("div",{className:"gear-container",style:{visibility:null===i?"hidden":"visible","--scale":i}},c().createElement(L,{color:"#3366FF",className:"gear"}),c().createElement("div",{className:"center"},c().createElement("div",{className:"dots"}),c().createElement("div",{className:"radar"}),c().createElement("div",{className:"globe"}),n&&c().createElement("div",{className:"center-border level-1",ref:d,style:{visibility:null===l?"hidden":"visible",transform:`scale(${null!=l?l:1})`}},c().createElement("div",{className:"center-border level-2"},c().createElement("div",{className:"center-border level-3"},c().createElement("div",{className:"center-border level-4"},c().createElement("div",{className:"center-value"},(0,p.F)(null==n?void 0:n.value)),c().createElement("div",{className:"center-label"},null==n?void 0:n.label))))),c().createElement("div",{className:"light"})),c().createElement("svg",{className:"ring-lines",width:N,height:F,viewBox:`0 0 ${N} ${F}`},u.map(((e,t)=>c().createElement("g",{key:t,strokeWidth:2,fill:"none"},c().createElement("path",{d:`M ${e.x} ${e.y} L ${e.x2} ${e.y2} H ${e.x3}`,stroke:"rgba(255,255,255,0.2)"}),c().createElement("path",{d:`M ${e.x3} ${e.y2} h ${13*(t%2==0?1:-1)}`,stroke:e.color}))))),c().createElement("div",{className:"ring-labels"},u.map(((e,t)=>c().createElement("div",{key:t,className:"ring-label-container "+(t%2==0?"even":"odd"),style:{width:Math.abs(e.x3-e.x2),left:t%2==0?e.x2:e.x3,top:e.y2-60}},c().createElement("div",{className:"ring-label-box"},c().createElement("div",{className:"ring-icon",style:{background:e.color}}),c().createElement("div",{className:"ring-label"},e.label),c().createElement("div",{className:"ring-value"},(0,p.F)(e.value)))))))),c().createElement(h.x,{cornerDataSource:a}))}function j(e,t){const r=T+P*Math.cos(e),n=C+P*Math.sin(e);let a,o,i;const l=(t?1:-1)*I;if(t?e>0:e<Math.PI){const s=l*((t?e<Math.PI/4:e>3*Math.PI/4)?2*(1+(t?-1:1)*Math.cos(e)/2):1),c=t?Math.PI/6:5*Math.PI/6,d=72/Math.cos(e-c)/((t?1:-1)*Math.cos(e));o=n+d*Math.sin(c),o>D?(o=D,a=r+(o-n)/Math.tan(c)):a=r+d*Math.cos(c),i=a+s}else{const s=l,c=t?-Math.PI/6:7*Math.PI/6,d=72/Math.cos(e-c);a=r+d*Math.cos(c),o=n+d*Math.sin(c),i=a+s}return{x:r,y:n,x2:a,y2:o,x3:i}}n=G,({e:[x,y,w,S,E,M,A,k],c:[B,v]}=(0,l.A)(n,[z("data-view.globe-with-gear-indicator",{styleTexts:[g.A,b.A]})],[[R({attribute:!1}),1,"dataSource"],[R({attribute:!1}),1,"centerDataSource"],[R({attribute:!1}),1,"cornerDataSource"],[R({type:Number}),1,"maxScale"]],0,void 0,u.ReactNextElement)),v()},57384:(e,t,r)=>{r.d(t,{x:()=>s});var n=r(18769),a=r.n(n),o=r(69006),i=r(82650);const l=(0,o.wrapBrick)("eo-tag");function s(e){let{cornerDataSource:t}=e;return a().createElement("div",{className:"corner"},null==t?void 0:t.map(((e,t)=>a().createElement("div",{key:t,className:"corner-item"},a().createElement("div",{className:"corner-label"},e.label),a().createElement(l,{className:"corner-value",outline:!0,color:e.color,tagStyle:{fontSize:18,padding:"2px 16px"}},(0,i.F)(e.value))))))}},82650:(e,t,r)=>{r.d(t,{F:()=>a});const n=new Intl.NumberFormat("zh-CN",{useGrouping:!0});function a(e){return function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(null!==(t=Number.isFinite)&&void 0!==t?t:isFinite)(+e);var t}(e)?n.format(+e):e}},11752:(e,t,r)=>{r.d(t,{L:()=>o});var n=r(18769),a=r(99126);function o(e){const[t,r]=(0,n.useState)(null),o=(0,n.useRef)(null);return(0,n.useEffect)((()=>{const t=o.current;if(!t)return;const n=new a.A((()=>{const n=t.clientWidth;r(Math.min(1,Math.max(.3,e/n)))}));return n.observe(t),()=>n.disconnect()}),[e]),[t,o]}},47906:(e,t,r)=>{r.d(t,{D:()=>o});var n=r(18769),a=r(99126);function o(e){let{width:t,height:r,root:o,maxScale:i,disabled:l}=e;const[s,c]=(0,n.useState)(null);return(0,n.useEffect)((()=>{if(l)return void c(null);const e=new a.A((e=>{for(const n of e)if(n.target===o){const{width:e,height:a}=n.contentRect;c(Math.min(null!=i?i:1,e/t,a/r))}}));return e.observe(o),()=>e.disconnect()}),[r,t,l,i,o]),s}},97136:(e,t,r)=>{r.d(t,{A:()=>p});var n=r(36758),a=r.n(n),o=r(40935),i=r.n(o),l=r(20062),s=r.n(l),c=new URL(r(17577),r.b),d=i()(a()),u=s()(c);d.push([e.id,`@font-face{font-family:ALiBaBaPuHuiTi;src:url(${u})}`,""]);const p=d},40703:(e,t,r)=>{r.d(t,{A:()=>m});var n=r(36758),a=r.n(n),o=r(40935),i=r.n(o),l=r(20062),s=r.n(l),c=new URL(r(81026),r.b),d=new URL(r(9239),r.b),u=i()(a()),p=s()(c),h=s()(d);u.push([e.id,`@font-face{font-family:HarmonyOSSans;src:url(${p});font-weight:normal}@font-face{font-family:HarmonyOSSans;src:url(${h});font-weight:bold}`,""]);const m=u},70102:(e,t,r)=>{r.d(t,{A:()=>v});var n=r(36758),a=r.n(n),o=r(40935),i=r.n(o),l=r(20062),s=r.n(l),c=new URL(r(42600),r.b),d=new URL(r(32346),r.b),u=new URL(r(1342),r.b),p=new URL(r(34318),r.b),h=i()(a()),m=s()(c),f=s()(d),g=s()(u),b=s()(p);h.push([e.id,`:host,\n.center{display:flex;align-items:center;justify-content:center}:host{position:relative;color:#fff;height:100%}:host([hidden]){display:none}*{box-sizing:border-box}.gear-container{width:930px;height:590px;position:relative;transform:scale(var(--scale));--scale:1}.gear,\n.dots,\n.radar,\n.globe,\n.light,\n.ring-lines,\n.ring-labels{position:absolute;left:50%;transform:translate(-50%,0)}.gear,\n.radar{bottom:-42px;width:630px;height:630px}.dots{width:542px;height:542px;border-radius:542px;overflow:hidden;background:url(${m}) no-repeat;background-position:center;background-size:542px}.radar{background:url(${f}) no-repeat;background-position:center;background-size:458px;animation:rotating-radar 2.6s linear infinite}.globe{width:455px;height:458px;background:url(${g}) no-repeat;background-position:center;background-size:100%}.light{pointer-events:none;bottom:98px;width:207px;height:208px;background:url(${b}) no-repeat;background-position:center;background-size:100%;animation:flash-light 0.5s linear infinite alternate-reverse}.center{position:absolute;bottom:0;width:100%;height:546px;text-align:center}.center-border{border-width:1px;border-style:solid;border-radius:16px}.center-border.level-1{position:relative;padding:12px;border-color:rgb(68,219,242,0.2)}.center-border.level-2{padding:10px;border-color:rgb(68,219,242,0.4)}.center-border.level-3{padding:9px;border-color:rgb(68,219,242,0.6)}.center-border.level-4{padding:18px;border-radius:13px;border-color:rgb(68,219,242,0.8)}.center-label:empty,\n.center-value:empty{display:none}.center-label{font-size:24px;line-height:33px;font-weight:600;margin-top:13px;color:rgba(255,255,255,0.65)}.center-value{font-family:HarmonyOSSans;font-weight:bold;font-size:50px;line-height:60px;text-shadow:0px 2px 4px #296dff}.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px}.corner-value{display:block;margin-left:19px}.ring-lines{top:0;pointer-events:none}.ring-labels{width:930px;top:0}.ring-label-container{position:absolute;display:flex;justify-content:center}.ring-label-box{position:relative;padding:0 18px;width:max-content}.ring-icon{position:absolute;top:5px;left:0;width:11px;height:11px;border-radius:0px 4px}.ring-label{color:rgba(255,255,255,0.65);font-family:ALiBaBaPuHuiTi;font-size:14px;line-height:20px}.ring-value{font-family:HarmonyOSSans;font-size:23px;line-height:34px}@keyframes rotating-radar{from{transform:translate(-50%,0) rotate(0deg)}to{transform:translate(-50%,0) rotate(360deg)}}@keyframes flash-light{from{opacity:0}to{opacity:1}}`,""]);const v=h.toString()},92481:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(36758),a=r.n(n),o=r(40935),i=r.n(o)()(a());i.push([e.id,".corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px;color:rgba(255,255,255,0.85)}.corner-value{display:block;margin-left:19px}",""]);const l=i.toString()},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},95178:(e,t,r)=>{var n=r(72591),a=r.n(n),o=r(1740),i=r.n(o),l=r(88128),s=r.n(l),c=r(30855),d=r.n(c),u=r(93051),p=r.n(u),h=r(73656),m=r.n(h),f=r(97136),g={};g.styleTagTransform=m(),g.setAttributes=d(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=p(),a()(f.A,g),f.A&&f.A.locals&&f.A.locals},77293:(e,t,r)=>{var n=r(72591),a=r.n(n),o=r(1740),i=r.n(o),l=r(88128),s=r.n(l),c=r(30855),d=r.n(c),u=r(93051),p=r.n(u),h=r(73656),m=r.n(h),f=r(40703),g={};g.styleTagTransform=m(),g.setAttributes=d(),g.insert=s().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=p(),a()(f.A,g),f.A&&f.A.locals&&f.A.locals},72591:e=>{var t=[];function r(e){for(var r=-1,n=0;n<t.length;n++)if(t[n].identifier===e){r=n;break}return r}function n(e,n){for(var o={},i=[],l=0;l<e.length;l++){var s=e[l],c=n.base?s[0]+n.base:s[0],d=o[c]||0,u="".concat(c," ").concat(d);o[c]=d+1;var p=r(u),h={css:s[1],media:s[2],sourceMap:s[3],supports:s[4],layer:s[5]};if(-1!==p)t[p].references++,t[p].updater(h);else{var m=a(h,n);n.byIndex=l,t.splice(l,0,{identifier:u,updater:m,references:1})}i.push(u)}return i}function a(e,t){var r=t.domAPI(t);return r.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;r.update(e=t)}else r.remove()}}e.exports=function(e,a){var o=n(e=e||[],a=a||{});return function(e){e=e||[];for(var i=0;i<o.length;i++){var l=r(o[i]);t[l].references--}for(var s=n(e,a),c=0;c<o.length;c++){var d=r(o[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}o=s}}},88128:e=>{var t={};e.exports=function(e,r){var n=function(e){if(void 0===t[e]){var r=document.querySelector(e);if(window.HTMLIFrameElement&&r instanceof window.HTMLIFrameElement)try{r=r.contentDocument.head}catch(e){r=null}t[e]=r}return t[e]}(e);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");n.appendChild(r)}},93051:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},30855:(e,t,r)=>{e.exports=function(e){var t=r.nc;t&&e.setAttribute("nonce",t)}},1740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(r){!function(e,t,r){var n="";r.supports&&(n+="@supports (".concat(r.supports,") {")),r.media&&(n+="@media ".concat(r.media," {"));var a=void 0!==r.layer;a&&(n+="@layer".concat(r.layer.length>0?" ".concat(r.layer):""," {")),n+=r.css,a&&(n+="}"),r.media&&(n+="}"),r.supports&&(n+="}");var o=r.sourceMap;o&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(n,e,t.options)}(t,e,r)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},73656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},17577:(e,t,r)=>{e.exports=r.p+"media/792b07b2.ttf"},81026:(e,t,r)=>{e.exports=r.p+"media/cc0a5a55.ttf"},9239:(e,t,r)=>{e.exports=r.p+"media/2978c0ae.ttf"},42600:(e,t,r)=>{e.exports=r.p+"images/f1a78578.png"},1342:(e,t,r)=>{e.exports=r.p+"images/12997c2b.png"},34318:(e,t,r)=>{e.exports=r.p+"images/2235938c.png"},32346:(e,t,r)=>{e.exports=r.p+"images/73baf989.png"}}]);
|
|
2
|
+
//# sourceMappingURL=globe-with-gear-indicator.a43a1281.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/globe-with-gear-indicator.5c936eb2.js","mappings":"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","sources":["webpack:///./src/globe-with-gear-indicator/index.tsx","webpack:///./src/shared/CornerIndicator.tsx","webpack:///./src/shared/formatValue.ts","webpack:///./src/shared/useCenterScale.ts","webpack:///./src/shared/useContainerScale.ts","webpack:///./src/fonts/ALiBaBaPuHuiTi.css","webpack:///./src/fonts/HarmonyOSSans.css","webpack:///./src/globe-with-gear-indicator/styles.shadow.css","webpack:///./src/shared/CornerIndicator.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./src/fonts/ALiBaBaPuHuiTi.css?7885","webpack:///./src/fonts/HarmonyOSSans.css?a0fb","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { formatValue } from \"../shared/formatValue\";\nimport { CornerIndicator } from \"../shared/CornerIndicator\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\nimport { useCenterScale } from \"../shared/useCenterScale\";\nimport type { GearBackground, GearBackgroundProps } from \"../gear-background\";\nimport \"../fonts/ALiBaBaPuHuiTi.css\";\nimport \"../fonts/HarmonyOSSans.css\";\nimport styleText from \"./styles.shadow.css\";\nimport cornerStyleText from \"../shared/CornerIndicator.shadow.css\";\n\nconst BASE_WIDTH = 930;\nconst BASE_HEIGHT = 590;\nconst MAX_LINE_Y = BASE_HEIGHT - 2;\nconst BASE_LINE_WIDTH = 150;\n\nconst PALETTE: string[] = [\n \"#83F5E1\",\n \"#FE8328\",\n \"#296DFF\",\n \"#214ED2\",\n \"#9CC5FF\",\n \"#67E0D8\",\n \"#BF145B\",\n \"#4FAAFF\",\n \"#5245E2\",\n \"#9281EE\",\n \"#F8AB05\",\n \"#2C9966\",\n // \"#CAD1DB\",\n // \"#88909B\",\n // \"#00A7CC\",\n // \"#50FFFF\",\n // \"#3366FF\",\n // \"#99CCFF\",\n // \"#6600FF\",\n // \"#9999FF\",\n];\n\nconst RING_RADIUS = 229;\nconst RING_CX = 465;\nconst RING_CY = 317;\n\nconst WrappedGearBackground = wrapBrick<GearBackground, GearBackgroundProps>(\n \"data-view.gear-background\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface GlobeWithGearIndicatorProps {\n dataSource?: DataItem[];\n centerDataSource?: DataItem;\n cornerDataSource?: CornerDataItem[];\n maxScale?: number;\n}\n\nexport interface DataItem {\n label: string;\n value: string | number;\n}\n\nexport interface CornerDataItem extends DataItem {\n color?: string;\n}\n\ninterface DataItemWithPosition extends DataItem {\n color: string;\n x: number;\n y: number;\n x2: number;\n y2: number;\n x3: number;\n}\n\n/**\n * 地球加轮盘的数据展示构件。\n */\nexport\n@defineElement(\"data-view.globe-with-gear-indicator\", {\n styleTexts: [styleText, cornerStyleText],\n})\nclass GlobeWithGearIndicator\n extends ReactNextElement\n implements GlobeWithGearIndicatorProps\n{\n /** 指标数据列表(显示在环上)\n *\n * 注意:最多显示12项数据\n */\n @property({ attribute: false })\n accessor dataSource: DataItem[] | undefined;\n\n /** 中心数据(显示在中心水晶球内) */\n @property({ attribute: false })\n accessor centerDataSource: DataItem | undefined;\n\n /**\n * 左上角指标数据列表\n */\n @property({ attribute: false })\n accessor cornerDataSource: CornerDataItem[] | undefined;\n\n /**\n * 最大缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor maxScale: number | undefined;\n\n render() {\n return (\n <GlobeWithGearIndicatorComponent\n root={this}\n dataSource={this.dataSource}\n centerDataSource={this.centerDataSource}\n cornerDataSource={this.cornerDataSource}\n maxScale={this.maxScale}\n />\n );\n }\n}\n\nexport interface GlobeWithGearIndicatorComponentProps\n extends GlobeWithGearIndicatorProps {\n root: GlobeWithGearIndicator;\n}\n\nexport function GlobeWithGearIndicatorComponent({\n root,\n dataSource,\n centerDataSource,\n cornerDataSource,\n maxScale,\n}: GlobeWithGearIndicatorComponentProps) {\n const scale = useContainerScale({\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n root,\n maxScale,\n });\n const [centerValueScale, centerValueRef] = useCenterScale(360);\n\n // 计算环上标签的位置\n // 1. 将数据分为两组,分别在环的两侧\n // 2. 索引(从 0 开始)为偶数的数据在右侧,索引为奇数的数据在左侧\n // 3. 总数为偶数时,两侧数据对称,每组数据按照角度均匀分布\n // 4. 总数为奇数时,右侧数据比左侧数据多一个,右侧数据按照角度均匀分布,\n // 左侧第 N 个数据的角度为右侧第 N 个和第 N + 1 个数据的角度的中分角\n const labels = useMemo(() => {\n const clampedData = dataSource?.slice(0, 12) ?? [];\n if (clampedData.length === 0) {\n return [];\n }\n\n const half = Math.ceil(clampedData.length / 2);\n const even = clampedData.length % 2 === 0;\n const arc = Math.PI / (half + 1);\n\n let index = 0;\n let angle: number;\n const result: DataItemWithPosition[] = [];\n while (index < clampedData.length) {\n const item = clampedData[index];\n const color = PALETTE[index % PALETTE.length];\n if (index % 2 === 0) {\n angle = arc * (index / 2 + 1) - Math.PI / 2;\n result.push({ ...item, color, ...getLinePosition(angle, true) });\n } else {\n const oddAngle = even ? Math.PI - angle : Math.PI - (angle + arc / 2);\n result.push({ ...item, color, ...getLinePosition(oddAngle, false) });\n }\n index++;\n }\n return result;\n }, [dataSource]);\n\n return (\n <>\n <div\n className=\"gear-container\"\n style={\n {\n visibility: scale === null ? \"hidden\" : \"visible\",\n \"--scale\": scale,\n } as React.CSSProperties & {\n \"--scale\": number;\n }\n }\n >\n <WrappedGearBackground color=\"#3366FF\" className=\"gear\" />\n <div className=\"center\">\n <div className=\"dots\"></div>\n <div className=\"radar\"></div>\n <div className=\"globe\"></div>\n {centerDataSource && (\n <div\n className=\"center-border level-1\"\n ref={centerValueRef}\n style={{\n visibility: centerValueScale === null ? \"hidden\" : \"visible\",\n transform: `scale(${centerValueScale ?? 1})`,\n }}\n >\n <div className=\"center-border level-2\">\n <div className=\"center-border level-3\">\n <div className=\"center-border level-4\">\n <div className=\"center-value\">\n {formatValue(centerDataSource?.value)}\n </div>\n <div className=\"center-label\">\n {centerDataSource?.label}\n </div>\n </div>\n </div>\n </div>\n </div>\n )}\n <div className=\"light\"></div>\n </div>\n <svg\n className=\"ring-lines\"\n width={BASE_WIDTH}\n height={BASE_HEIGHT}\n viewBox={`0 0 ${BASE_WIDTH} ${BASE_HEIGHT}`}\n >\n {labels.map((item, index) => (\n <g key={index} strokeWidth={2} fill=\"none\">\n <path\n d={`M ${item.x} ${item.y} L ${item.x2} ${item.y2} H ${item.x3}`}\n stroke=\"rgba(255,255,255,0.2)\"\n />\n <path\n d={`M ${item.x3} ${item.y2} h ${(index % 2 === 0 ? 1 : -1) * 13}`}\n stroke={item.color}\n />\n </g>\n ))}\n </svg>\n <div className=\"ring-labels\">\n {labels.map((item, index) => (\n <div\n key={index}\n className={`ring-label-container ${index % 2 === 0 ? \"even\" : \"odd\"}`}\n style={{\n width: Math.abs(item.x3 - item.x2),\n left: index % 2 === 0 ? item.x2 : item.x3,\n top: item.y2 - 60,\n }}\n >\n <div className=\"ring-label-box\">\n <div\n className=\"ring-icon\"\n style={{ background: item.color }}\n ></div>\n <div className=\"ring-label\">{item.label}</div>\n <div className=\"ring-value\">{formatValue(item.value)}</div>\n </div>\n </div>\n ))}\n </div>\n </div>\n <CornerIndicator cornerDataSource={cornerDataSource} />\n </>\n );\n}\n\nfunction getLinePosition(angle: number, even: boolean) {\n const x = RING_CX + RING_RADIUS * Math.cos(angle);\n const y = RING_CY + RING_RADIUS * Math.sin(angle);\n let x2: number;\n let y2: number;\n let x3: number;\n const baseWidth = (even ? 1 : -1) * BASE_LINE_WIDTH;\n if (even ? angle > 0 : angle < Math.PI) {\n const width =\n baseWidth *\n ((even ? angle < Math.PI / 4 : angle > (Math.PI * 3) / 4)\n ? 2 * (1 + ((even ? -1 : 1) * Math.cos(angle)) / 2)\n : 1);\n const lineAngle = even ? Math.PI / 6 : (Math.PI * 5) / 6;\n const lineRadius =\n 72 / Math.cos(angle - lineAngle) / ((even ? 1 : -1) * Math.cos(angle));\n y2 = y + lineRadius * Math.sin(lineAngle);\n if (y2 > MAX_LINE_Y) {\n y2 = MAX_LINE_Y;\n x2 = x + (y2 - y) / Math.tan(lineAngle);\n } else {\n x2 = x + lineRadius * Math.cos(lineAngle);\n }\n x3 = x2 + width;\n } else {\n const width = baseWidth;\n const lineAngle = even ? -Math.PI / 6 : (Math.PI * 7) / 6;\n const lineRadius = 72 / Math.cos(angle - lineAngle);\n x2 = x + lineRadius * Math.cos(lineAngle);\n y2 = y + lineRadius * Math.sin(lineAngle);\n x3 = x2 + width;\n }\n return { x, y, x2, y2, x3 };\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Tag, TagProps } from \"@next-bricks/basic/tag\";\nimport { formatValue } from \"./formatValue\";\n\nconst WrappedTag = wrapBrick<Tag, TagProps>(\"eo-tag\");\n\nexport interface CornerDataItem {\n label: string;\n value: string | number;\n color?: string;\n}\n\nexport interface CornerIndicatorProps {\n cornerDataSource?: CornerDataItem[];\n}\n\nexport function CornerIndicator({ cornerDataSource }: CornerIndicatorProps) {\n return (\n <div className=\"corner\">\n {cornerDataSource?.map((item, index) => (\n <div key={index} className=\"corner-item\">\n <div className=\"corner-label\">{item.label}</div>\n <WrappedTag\n className=\"corner-value\"\n outline\n color={item.color}\n tagStyle={{\n fontSize: 18,\n padding: \"2px 16px\",\n }}\n >\n {formatValue(item.value)}\n </WrappedTag>\n </div>\n ))}\n </div>\n );\n}\n","const numberFormatter = new Intl.NumberFormat(\"zh-CN\", {\n useGrouping: true,\n});\n\nexport function formatValue(value: string | number): string {\n return isMeaningfulNumber(value) ? numberFormatter.format(+value) : value;\n}\n\n/**\n * 判断一个值是否是有意义的数字,包括数字和可以转换为数字的字符串。\n *\n * 但不包括 NaN、Infinity、-Infinity 等。\n *\n * Ref https://github.com/jonschlinkert/is-number/blob/master/index.js\n */\nexport function isMeaningfulNumber(value: unknown): value is number | string {\n if (typeof value === \"number\") {\n return value - value === 0;\n }\n if (typeof value === \"string\" && value.trim() !== \"\") {\n return /* istanbul ignore next */ (Number.isFinite ?? isFinite)(+value);\n }\n return false;\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 让中心数据值不要超过球体范围,但缩放值最低不小于 0.3\n */\nexport function useCenterScale(maxWidth: number) {\n const [centerScale, setCenterScale] = useState<number | null>(null);\n const centerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const centerValueElement = centerRef.current;\n if (!centerValueElement) {\n return;\n }\n const observer = new ResizeObserver(() => {\n const width = centerValueElement.clientWidth;\n setCenterScale(Math.min(1, Math.max(0.3, maxWidth / width)));\n });\n observer.observe(centerValueElement);\n return () => observer.disconnect();\n }, [maxWidth]);\n\n return [centerScale, centerRef] as const;\n}\n","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ALiBaBaPuHuiTi.ttf\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:ALiBaBaPuHuiTi;src:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./HarmonyOSSans.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./HarmonyOSSansBold.ttf\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:HarmonyOSSans;src:url(${___CSS_LOADER_URL_REPLACEMENT_0___});font-weight:normal}@font-face{font-family:HarmonyOSSans;src:url(${___CSS_LOADER_URL_REPLACEMENT_1___});font-weight:bold}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./assets/dots.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./assets/radar.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./assets/earth.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./assets/light.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host,\n.center{display:flex;align-items:center;justify-content:center}:host{position:relative;color:#fff;height:100%}:host([hidden]){display:none}*{box-sizing:border-box}.gear-container{width:930px;height:590px;position:relative;transform:scale(var(--scale));--scale:1}.gear,\n.dots,\n.radar,\n.globe,\n.light,\n.ring-lines,\n.ring-labels{position:absolute;left:50%;transform:translate(-50%,0)}.gear,\n.radar{bottom:-42px;width:630px;height:630px}.dots{width:542px;height:542px;border-radius:542px;overflow:hidden;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat;background-position:center;background-size:542px}.radar{background:url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat;background-position:center;background-size:458px;animation:rotating-radar 2.6s linear infinite}.globe{width:455px;height:458px;background:url(${___CSS_LOADER_URL_REPLACEMENT_2___}) no-repeat;background-position:center;background-size:100%}.light{pointer-events:none;bottom:98px;width:207px;height:208px;background:url(${___CSS_LOADER_URL_REPLACEMENT_3___}) no-repeat;background-position:center;background-size:100%;animation:flash-light 0.5s linear infinite alternate-reverse}.center{position:absolute;bottom:0;width:100%;height:546px;text-align:center}.center-border{border-width:1px;border-style:solid;border-radius:16px}.center-border.level-1{position:relative;padding:12px;border-color:rgb(68,219,242,0.2)}.center-border.level-2{padding:10px;border-color:rgb(68,219,242,0.4)}.center-border.level-3{padding:9px;border-color:rgb(68,219,242,0.6)}.center-border.level-4{padding:18px;border-radius:13px;border-color:rgb(68,219,242,0.8)}.center-label:empty,\n.center-value:empty{display:none}.center-label{font-size:24px;line-height:33px;font-weight:600;margin-top:13px;color:rgba(255,255,255,0.65)}.center-value{font-family:HarmonyOSSans;font-weight:bold;font-size:50px;line-height:60px;text-shadow:0px 2px 4px #296dff}.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px}.corner-value{display:block;margin-left:19px}.ring-lines{top:0;pointer-events:none}.ring-labels{width:930px;top:0}.ring-label-container{position:absolute;display:flex;justify-content:center}.ring-label-box{position:relative;padding:0 18px;width:max-content}.ring-icon{position:absolute;top:5px;left:0;width:11px;height:11px;border-radius:0px 4px}.ring-label{color:rgba(255,255,255,0.65);font-family:ALiBaBaPuHuiTi;font-size:14px;line-height:20px}.ring-value{font-family:HarmonyOSSans;font-size:23px;line-height:34px}@keyframes rotating-radar{from{transform:translate(-50%,0) rotate(0deg)}to{transform:translate(-50%,0) rotate(360deg)}}@keyframes flash-light{from{opacity:0}to{opacity:1}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px;color:rgba(255,255,255,0.85)}.corner-value{display:block;margin-left:19px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./HarmonyOSSans.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./HarmonyOSSans.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;"],"names":["BASE_WIDTH","BASE_HEIGHT","MAX_LINE_Y","BASE_LINE_WIDTH","PALETTE","RING_RADIUS","RING_CX","RING_CY","WrappedGearBackground","wrapBrick","defineElement","property","createDecorators","_GlobeWithGearIndicat","_A","WeakMap","_B","_C","_D","GlobeWithGearIndicator","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_dataSource","_init_extra_dataSource","_init_centerDataSource","_init_extra_centerDataSource","_init_cornerDataSource","_init_extra_cornerDataSource","_init_maxScale","_init_extra_maxScale","dataSource","_classPrivateFieldGet","v","_classPrivateFieldSet","centerDataSource","cornerDataSource","maxScale","render","React","GlobeWithGearIndicatorComponent","root","this","_ref","scale","useContainerScale","width","height","centerValueScale","centerValueRef","useCenterScale","labels","useMemo","_dataSource$slice","clampedData","slice","length","half","Math","ceil","even","arc","PI","angle","index","result","item","color","push","getLinePosition","oddAngle","className","style","visibility","ref","transform","formatValue","value","label","viewBox","map","key","strokeWidth","fill","d","x","y","x2","y2","x3","stroke","abs","left","top","background","CornerIndicator","cos","sin","baseWidth","lineAngle","lineRadius","tan","_GlobeWithGearIndicator","e","c","_initClass","_applyDecs","styleTexts","styleText","cornerStyleText","attribute","type","Number","WrappedTag","outline","tagStyle","fontSize","padding","numberFormatter","Intl","NumberFormat","useGrouping","trim","_Number$isFinite","isFinite","isMeaningfulNumber","format","maxWidth","centerScale","setCenterScale","useState","centerRef","useRef","useEffect","centerValueElement","current","observer","ResizeObserver","clientWidth","min","max","observe","disconnect","baseHeight","disabled","setScale","entries","entry","target","contentRect","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","id","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","toString","exports","url","options","String","__esModule","default","test","hash","needQuotes","concat","replace","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","i","modulesToDom","list","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","needLayer","btoa","unescape","encodeURIComponent","JSON","stringify","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/globe-with-gear-indicator.a43a1281.js","mappings":"gbAcA,MAAMA,EAAa,IACbC,EAAc,IACdC,EAAaD,EAAc,EAC3BE,EAAkB,IAElBC,EAAoB,CACxB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAWIC,EAAc,IACdC,EAAU,IACVC,EAAU,IAEVC,GAAwBC,EAAAA,EAAAA,WAC5B,8BAGI,cAAEC,EAAa,SAAEC,IAAaC,EAAAA,EAAAA,oBAAmB,IAAAC,EAAA,IAAAC,EAAA,IAAAC,QAAAC,EAAA,IAAAD,QAAAE,EAAA,IAAAF,QAAAG,EAAA,IAAAH,QA+BvD,MAAAI,UAIUC,EAAAA,iBAEVC,WAAAA,GAAA,SAAAC,YACEC,EAAAA,EAAAA,GAAA,KAAAT,EAAAU,EAAA,QAOAD,EAAAA,EAAAA,GAAA,KAAAP,GAAAS,EAAA,MAAAC,EAAA,SAIAH,EAAAA,EAAAA,GAAA,KAAAN,GAAAU,EAAA,MAAAC,EAAA,SAMAL,EAAAA,EAAAA,GAAA,KAAAL,GAAAW,EAAA,MAAAC,EAAA,QAAAC,EAAA,oBAZSC,GAAU,OAAAC,EAAAA,EAAAA,GAAAnB,EAAA,oBAAVkB,CAAUE,IAAAC,EAAAA,EAAAA,GAAArB,EAAA,KAAAoB,EAAA,qBAIVE,GAAgB,OAAAH,EAAAA,EAAAA,GAAAjB,EAAA,0BAAhBoB,CAAgBF,IAAAC,EAAAA,EAAAA,GAAAnB,EAAA,KAAAkB,EAAA,qBAMhBG,GAAgB,OAAAJ,EAAAA,EAAAA,GAAAhB,EAAA,0BAAhBoB,CAAgBH,IAAAC,EAAAA,EAAAA,GAAAlB,EAAA,KAAAiB,EAAA,aAQhBI,GAAQ,OAAAL,EAAAA,EAAAA,GAAAf,EAAA,kBAARoB,CAAQJ,IAAAC,EAAAA,EAAAA,GAAAjB,EAAA,KAAAgB,EAAA,CAEjBK,MAAAA,GACE,OACEC,IAAAA,cAACC,EAA+B,CAC9BC,KAAMC,KACNX,WAAYW,KAAKX,WACjBI,iBAAkBO,KAAKP,iBACvBC,iBAAkBM,KAAKN,iBACvBC,SAAUK,KAAKL,UAGrB,EAQK,SAASG,EAA+BG,GAMN,IANO,KAC9CF,EAAI,WACJV,EAAU,iBACVI,EAAgB,iBAChBC,EAAgB,SAChBC,GACqCM,EACrC,MAAMC,GAAQC,EAAAA,EAAAA,GAAkB,CAC9BC,MAAO/C,EACPgD,OAAQ/C,EACRyC,OACAJ,cAEKW,EAAkBC,IAAkBC,EAAAA,EAAAA,GAAe,KAQpDC,GAASC,EAAAA,EAAAA,UAAQ,KAAM,IAAAC,EAC3B,MAAMC,EAAsC,QAA3BD,EAAGtB,aAAU,EAAVA,EAAYwB,MAAM,EAAG,WAAG,IAAAF,EAAAA,EAAI,GAChD,GAA2B,IAAvBC,EAAYE,OACd,MAAO,GAGT,MAAMC,EAAOC,KAAKC,KAAKL,EAAYE,OAAS,GACtCI,EAAON,EAAYE,OAAS,GAAM,EAClCK,EAAMH,KAAKI,IAAML,EAAO,GAE9B,IACIM,EADAC,EAAQ,EAEZ,MAAMC,EAAiC,GACvC,KAAOD,EAAQV,EAAYE,QAAQ,CACjC,MAAMU,EAAOZ,EAAYU,GACnBG,EAAQhE,EAAQ6D,EAAQ7D,EAAQqD,QACtC,GAAIQ,EAAQ,GAAM,EAChBD,EAAQF,GAAOG,EAAQ,EAAI,GAAKN,KAAKI,GAAK,EAC1CG,EAAOG,KAAK,IAAKF,EAAMC,WAAUE,EAAgBN,GAAO,SACnD,CACL,MAAMO,EAAWV,EAAOF,KAAKI,GAAKC,EAAQL,KAAKI,IAAMC,EAAQF,EAAM,GACnEI,EAAOG,KAAK,IAAKF,EAAMC,WAAUE,EAAgBC,GAAU,IAC7D,CACAN,GACF,CACA,OAAOC,CAAM,GACZ,CAAClC,IAEJ,OACEQ,IAAAA,cAAAA,IAAAA,SAAA,KACEA,IAAAA,cAAA,OACEgC,UAAU,iBACVC,MACE,CACEC,WAAsB,OAAV7B,EAAiB,SAAW,UACxC,UAAWA,IAMfL,IAAAA,cAAChC,EAAqB,CAAC4D,MAAM,UAAUI,UAAU,SACjDhC,IAAAA,cAAA,OAAKgC,UAAU,UACbhC,IAAAA,cAAA,OAAKgC,UAAU,SACfhC,IAAAA,cAAA,OAAKgC,UAAU,UACfhC,IAAAA,cAAA,OAAKgC,UAAU,UACdpC,GACCI,IAAAA,cAAA,OACEgC,UAAU,wBACVG,IAAKzB,EACLuB,MAAO,CACLC,WAAiC,OAArBzB,EAA4B,SAAW,UACnD2B,UAAW,SAAS3B,QAAAA,EAAoB,OAG1CT,IAAAA,cAAA,OAAKgC,UAAU,yBACbhC,IAAAA,cAAA,OAAKgC,UAAU,yBACbhC,IAAAA,cAAA,OAAKgC,UAAU,yBACbhC,IAAAA,cAAA,OAAKgC,UAAU,iBACZK,EAAAA,EAAAA,GAAYzC,aAAgB,EAAhBA,EAAkB0C,QAEjCtC,IAAAA,cAAA,OAAKgC,UAAU,gBACZpC,aAAgB,EAAhBA,EAAkB2C,WAO/BvC,IAAAA,cAAA,OAAKgC,UAAU,WAEjBhC,IAAAA,cAAA,OACEgC,UAAU,aACVzB,MAAO/C,EACPgD,OAAQ/C,EACR+E,QAAS,OAAOhF,KAAcC,KAE7BmD,EAAO6B,KAAI,CAACd,EAAMF,IACjBzB,IAAAA,cAAA,KAAG0C,IAAKjB,EAAOkB,YAAa,EAAGC,KAAK,QAClC5C,IAAAA,cAAA,QACE6C,EAAG,KAAKlB,EAAKmB,KAAKnB,EAAKoB,OAAOpB,EAAKqB,MAAMrB,EAAKsB,QAAQtB,EAAKuB,KAC3DC,OAAO,0BAETnD,IAAAA,cAAA,QACE6C,EAAG,KAAKlB,EAAKuB,MAAMvB,EAAKsB,QAAqC,IAA5BxB,EAAQ,GAAM,EAAI,GAAK,KACxD0B,OAAQxB,EAAKC,YAKrB5B,IAAAA,cAAA,OAAKgC,UAAU,eACZpB,EAAO6B,KAAI,CAACd,EAAMF,IACjBzB,IAAAA,cAAA,OACE0C,IAAKjB,EACLO,UAAW,yBAAwBP,EAAQ,GAAM,EAAI,OAAS,OAC9DQ,MAAO,CACL1B,MAAOY,KAAKiC,IAAIzB,EAAKuB,GAAKvB,EAAKqB,IAC/BK,KAAM5B,EAAQ,GAAM,EAAIE,EAAKqB,GAAKrB,EAAKuB,GACvCI,IAAK3B,EAAKsB,GAAK,KAGjBjD,IAAAA,cAAA,OAAKgC,UAAU,kBACbhC,IAAAA,cAAA,OACEgC,UAAU,YACVC,MAAO,CAAEsB,WAAY5B,EAAKC,SAE5B5B,IAAAA,cAAA,OAAKgC,UAAU,cAAcL,EAAKY,OAClCvC,IAAAA,cAAA,OAAKgC,UAAU,eAAcK,EAAAA,EAAAA,GAAYV,EAAKW,cAMxDtC,IAAAA,cAACwD,EAAAA,EAAe,CAAC3D,iBAAkBA,IAGzC,CAEA,SAASiC,EAAgBN,EAAeH,GACtC,MAAMyB,EAAIhF,EAAUD,EAAcsD,KAAKsC,IAAIjC,GACrCuB,EAAIhF,EAAUF,EAAcsD,KAAKuC,IAAIlC,GAC3C,IAAIwB,EACAC,EACAC,EACJ,MAAMS,GAAatC,EAAO,GAAK,GAAK1D,EACpC,GAAI0D,EAAOG,EAAQ,EAAIA,EAAQL,KAAKI,GAAI,CACtC,MAAMhB,EACJoD,IACEtC,EAAOG,EAAQL,KAAKI,GAAK,EAAIC,EAAmB,EAAVL,KAAKI,GAAU,GACnD,GAAK,GAAMF,GAAQ,EAAI,GAAKF,KAAKsC,IAAIjC,GAAU,GAC/C,GACAoC,EAAYvC,EAAOF,KAAKI,GAAK,EAAe,EAAVJ,KAAKI,GAAU,EACjDsC,EACJ,GAAK1C,KAAKsC,IAAIjC,EAAQoC,KAAevC,EAAO,GAAK,GAAKF,KAAKsC,IAAIjC,IACjEyB,EAAKF,EAAIc,EAAa1C,KAAKuC,IAAIE,GAC3BX,EAAKvF,GACPuF,EAAKvF,EACLsF,EAAKF,GAAKG,EAAKF,GAAK5B,KAAK2C,IAAIF,IAE7BZ,EAAKF,EAAIe,EAAa1C,KAAKsC,IAAIG,GAEjCV,EAAKF,EAAKzC,CACZ,KAAO,CACL,MAAMA,EAAQoD,EACRC,EAAYvC,GAAQF,KAAKI,GAAK,EAAe,EAAVJ,KAAKI,GAAU,EAClDsC,EAAa,GAAK1C,KAAKsC,IAAIjC,EAAQoC,GACzCZ,EAAKF,EAAIe,EAAa1C,KAAKsC,IAAIG,GAC/BX,EAAKF,EAAIc,EAAa1C,KAAKuC,IAAIE,GAC/BV,EAAKF,EAAKzC,CACZ,CACA,MAAO,CAAEuC,IAAGC,IAAGC,KAAIC,KAAIC,KACzB,CAnLCa,EAAApF,IAAAqF,GAAAhF,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAA0E,GAAA5F,EAAA6F,KAAAC,EAAAA,EAAAA,GAAAJ,EAAA,CA3CA7F,EAAc,sCAAuC,CACpDkG,WAAY,CAACC,EAAAA,EAAWC,EAAAA,MACxB,EASCnG,EAAS,CAAEoG,WAAW,IAAQ,iBAI9BpG,EAAS,CAAEoG,WAAW,IAAQ,uBAM9BpG,EAAS,CAAEoG,WAAW,IAAQ,uBAQ9BpG,EAAS,CAAEqG,KAAMC,SAAS,wBAzBnB7F,EAAAA,mBAAgBsF,G,iFChF1B,MAAMQ,GAAazG,EAAAA,EAAAA,WAAyB,UAYrC,SAASuF,EAAepD,GAA6C,IAA5C,iBAAEP,GAAwCO,EACxE,OACEJ,IAAAA,cAAA,OAAKgC,UAAU,UACZnC,aAAgB,EAAhBA,EAAkB4C,KAAI,CAACd,EAAMF,IAC5BzB,IAAAA,cAAA,OAAK0C,IAAKjB,EAAOO,UAAU,eACzBhC,IAAAA,cAAA,OAAKgC,UAAU,gBAAgBL,EAAKY,OACpCvC,IAAAA,cAAC0E,EAAU,CACT1C,UAAU,eACV2C,SAAO,EACP/C,MAAOD,EAAKC,MACZgD,SAAU,CACRC,SAAU,GACVC,QAAS,cAGVzC,EAAAA,EAAAA,GAAYV,EAAKW,WAM9B,C,mCCtCA,MAAMyC,EAAkB,IAAIC,KAAKC,aAAa,QAAS,CACrDC,aAAa,IAGR,SAAS7C,EAAYC,GAC1B,OAUK,SAA4BA,GACjC,MAAqB,iBAAVA,EACFA,EAAQA,GAAU,EAEN,iBAAVA,GAAuC,KAAjBA,EAAM6C,SACa,QAAhBC,EAACX,OAAOY,gBAAQ,IAAAD,EAAAA,EAAIC,WAAW/C,GADb,IAAA8C,CAIxD,CAlBSE,CAAmBhD,GAASyC,EAAgBQ,QAAQjD,GAASA,CACtE,C,6DCAO,SAAS3B,EAAe6E,GAC7B,MAAOC,EAAaC,IAAkBC,EAAAA,EAAAA,UAAwB,MACxDC,GAAYC,EAAAA,EAAAA,QAAuB,MAezC,OAbAC,EAAAA,EAAAA,YAAU,KACR,MAAMC,EAAqBH,EAAUI,QACrC,IAAKD,EACH,OAEF,MAAME,EAAW,IAAIC,EAAAA,GAAe,KAClC,MAAM3F,EAAQwF,EAAmBI,YACjCT,EAAevE,KAAKiF,IAAI,EAAGjF,KAAKkF,IAAI,GAAKb,EAAWjF,IAAQ,IAG9D,OADA0F,EAASK,QAAQP,GACV,IAAME,EAASM,YAAY,GACjC,CAACf,IAEG,CAACC,EAAaG,EACvB,C,6DClBO,SAAStF,EAAiBF,GAaf,IAZhBG,MAAOoD,EACPnD,OAAQgG,EAAU,KAClBtG,EAAI,SACJJ,EAAQ,SACR2G,GAQDrG,EACC,MAAOC,EAAOqG,IAAYf,EAAAA,EAAAA,UAAwB,MAsBlD,OApBAG,EAAAA,EAAAA,YAAU,KACR,GAAIW,EAEF,YADAC,EAAS,MAIX,MAAMT,EAAW,IAAIC,EAAAA,GAAgBS,IACnC,IAAK,MAAMC,KAASD,EAClB,GAAIC,EAAMC,SAAW3G,EAAM,CACzB,MAAM,MAAEK,EAAK,OAAEC,GAAWoG,EAAME,YAChCJ,EACEvF,KAAKiF,IAAItG,QAAAA,EAAY,EAAGS,EAAQoD,EAAWnD,EAASgG,GAExD,CACF,IAGF,OADAP,EAASK,QAAQpG,GACV,IAAM+F,EAASM,YAAY,GACjC,CAACC,EAAY7C,EAAW8C,EAAU3G,EAAUI,IAExCG,CACT,C,mGCvCI0G,EAAgC,IAAIC,IAAI,cACxCC,EAA0B,IAA4B,KACtDC,EAAqC,IAAgCH,GAEzEE,EAAwBpF,KAAK,CAACsF,EAAOC,GAAI,iDAAiDF,MAAwC,KAElI,S,mGCNIH,EAAgC,IAAIC,IAAI,cACxCK,EAAgC,IAAIL,IAAI,aACxCC,EAA0B,IAA4B,KACtDC,EAAqC,IAAgCH,GACrEO,EAAqC,IAAgCD,GAEzEJ,EAAwBpF,KAAK,CAACsF,EAAOC,GAAI,gDAAgDF,sEAAuGI,uBAAyD,KAEzP,S,mGCRIP,EAAgC,IAAIC,IAAI,cACxCK,EAAgC,IAAIL,IAAI,cACxCO,EAAgC,IAAIP,IAAI,aACxCQ,EAAgC,IAAIR,IAAI,cACxCC,EAA0B,IAA4B,KACtDC,EAAqC,IAAgCH,GACrEO,EAAqC,IAAgCD,GACrEI,EAAqC,IAAgCF,GACrEG,EAAqC,IAAgCF,GAEzEP,EAAwBpF,KAAK,CAACsF,EAAOC,GAAI,qhBAQwFF,uFAAwHI,8JAA+LG,+IAAgLC,0qDACue,KAE/kC,QAAeT,EAAwBU,U,sECtBnCV,E,MAA0B,GAA4B,KAE1DA,EAAwBpF,KAAK,CAACsF,EAAOC,GAAI,qOAAsO,KAE/Q,QAAeH,EAAwBU,U,YCLvCR,EAAOS,QAAU,SAAUC,EAAKC,GAI9B,OAHKA,IACHA,EAAU,CAAC,GAERD,GAGLA,EAAME,OAAOF,EAAIG,WAAaH,EAAII,QAAUJ,GAGxC,eAAeK,KAAKL,KACtBA,EAAMA,EAAI7G,MAAM,GAAI,IAElB8G,EAAQK,OACVN,GAAOC,EAAQK,MAKb,oBAAoBD,KAAKL,IAAQC,EAAQM,WACpC,IAAKC,OAAOR,EAAIS,QAAQ,KAAM,OAAOA,QAAQ,MAAO,OAAQ,KAE9DT,GAjBEA,CAkBX,C,wJCdIC,EAAU,CAAC,EAEfA,EAAQS,kBAAoB,IAC5BT,EAAQU,cAAgB,IACxBV,EAAQW,OAAS,SAAc,KAAM,QACrCX,EAAQY,OAAS,IACjBZ,EAAQa,mBAAqB,IAEhB,IAAI,IAASb,GAKJ,KAAW,IAAQc,QAAS,IAAQA,M,wJCbtDd,EAAU,CAAC,EAEfA,EAAQS,kBAAoB,IAC5BT,EAAQU,cAAgB,IACxBV,EAAQW,OAAS,SAAc,KAAM,QACrCX,EAAQY,OAAS,IACjBZ,EAAQa,mBAAqB,IAEhB,IAAI,IAASb,GAKJ,KAAW,IAAQc,QAAS,IAAQA,M,YCtB1D,IAAIC,EAAc,GAClB,SAASC,EAAqBC,GAE5B,IADA,IAAIrH,GAAU,EACLsH,EAAI,EAAGA,EAAIH,EAAY5H,OAAQ+H,IACtC,GAAIH,EAAYG,GAAGD,aAAeA,EAAY,CAC5CrH,EAASsH,EACT,KACF,CAEF,OAAOtH,CACT,CACA,SAASuH,EAAaC,EAAMpB,GAG1B,IAFA,IAAIqB,EAAa,CAAC,EACdC,EAAc,GACTJ,EAAI,EAAGA,EAAIE,EAAKjI,OAAQ+H,IAAK,CACpC,IAAIrH,EAAOuH,EAAKF,GACZ5B,EAAKU,EAAQuB,KAAO1H,EAAK,GAAKmG,EAAQuB,KAAO1H,EAAK,GAClD2H,EAAQH,EAAW/B,IAAO,EAC1B2B,EAAa,GAAGV,OAAOjB,EAAI,KAAKiB,OAAOiB,GAC3CH,EAAW/B,GAAMkC,EAAQ,EACzB,IAAIC,EAAoBT,EAAqBC,GACzCS,EAAM,CACRC,IAAK9H,EAAK,GACV+H,MAAO/H,EAAK,GACZgI,UAAWhI,EAAK,GAChBiI,SAAUjI,EAAK,GACfkI,MAAOlI,EAAK,IAEd,IAA2B,IAAvB4H,EACFV,EAAYU,GAAmBO,aAC/BjB,EAAYU,GAAmBQ,QAAQP,OAClC,CACL,IAAIO,EAAUC,EAAgBR,EAAK1B,GACnCA,EAAQmC,QAAUjB,EAClBH,EAAYqB,OAAOlB,EAAG,EAAG,CACvBD,WAAYA,EACZgB,QAASA,EACTD,WAAY,GAEhB,CACAV,EAAYvH,KAAKkH,EACnB,CACA,OAAOK,CACT,CACA,SAASY,EAAgBR,EAAK1B,GAC5B,IAAIqC,EAAMrC,EAAQY,OAAOZ,GAYzB,OAXAqC,EAAIC,OAAOZ,GACG,SAAiBa,GAC7B,GAAIA,EAAQ,CACV,GAAIA,EAAOZ,MAAQD,EAAIC,KAAOY,EAAOX,QAAUF,EAAIE,OAASW,EAAOV,YAAcH,EAAIG,WAAaU,EAAOT,WAAaJ,EAAII,UAAYS,EAAOR,QAAUL,EAAIK,MACzJ,OAEFM,EAAIC,OAAOZ,EAAMa,EACnB,MACEF,EAAIG,QAER,CAEF,CACAnD,EAAOS,QAAU,SAAUsB,EAAMpB,GAG/B,IAAIyC,EAAkBtB,EADtBC,EAAOA,GAAQ,GADfpB,EAAUA,GAAW,CAAC,GAGtB,OAAO,SAAgB0C,GACrBA,EAAUA,GAAW,GACrB,IAAK,IAAIxB,EAAI,EAAGA,EAAIuB,EAAgBtJ,OAAQ+H,IAAK,CAC/C,IACIvH,EAAQqH,EADKyB,EAAgBvB,IAEjCH,EAAYpH,GAAOqI,YACrB,CAEA,IADA,IAAIW,EAAqBxB,EAAauB,EAAS1C,GACtC4C,EAAK,EAAGA,EAAKH,EAAgBtJ,OAAQyJ,IAAM,CAClD,IACIC,EAAS7B,EADKyB,EAAgBG,IAEK,IAAnC7B,EAAY8B,GAAQb,aACtBjB,EAAY8B,GAAQZ,UACpBlB,EAAYqB,OAAOS,EAAQ,GAE/B,CACAJ,EAAkBE,CACpB,CACF,C,YCjFA,IAAIG,EAAO,CAAC,EA+BZzD,EAAOS,QAPP,SAA0Ba,EAAQxG,GAChC,IAAI4E,EAtBN,SAAmBA,GACjB,QAA4B,IAAjB+D,EAAK/D,GAAyB,CACvC,IAAIgE,EAAcC,SAASC,cAAclE,GAGzC,GAAImE,OAAOC,mBAAqBJ,aAAuBG,OAAOC,kBAC5D,IAGEJ,EAAcA,EAAYK,gBAAgBC,IAC5C,CAAE,MAAOnH,GAEP6G,EAAc,IAChB,CAEFD,EAAK/D,GAAUgE,CACjB,CACA,OAAOD,EAAK/D,EACd,CAIeuE,CAAU3C,GACvB,IAAK5B,EACH,MAAM,IAAIwE,MAAM,2GAElBxE,EAAOyE,YAAYrJ,EACrB,C,YCvBAkF,EAAOS,QANP,SAA4BE,GAC1B,IAAIyD,EAAUT,SAASU,cAAc,SAGrC,OAFA1D,EAAQU,cAAc+C,EAASzD,EAAQ2D,YACvC3D,EAAQW,OAAO8C,EAASzD,EAAQA,SACzByD,CACT,C,kBCCApE,EAAOS,QANP,SAAwC8D,GACtC,IAAIC,EAAmD,KACnDA,GACFD,EAAaE,aAAa,QAASD,EAEvC,C,WCoDAxE,EAAOS,QAjBP,SAAgBE,GACd,GAAwB,oBAAbgD,SACT,MAAO,CACLV,OAAQ,WAAmB,EAC3BE,OAAQ,WAAmB,GAG/B,IAAIoB,EAAe5D,EAAQa,mBAAmBb,GAC9C,MAAO,CACLsC,OAAQ,SAAgBZ,IAjD5B,SAAekC,EAAc5D,EAAS0B,GACpC,IAAIC,EAAM,GACND,EAAII,WACNH,GAAO,cAAcpB,OAAOmB,EAAII,SAAU,QAExCJ,EAAIE,QACND,GAAO,UAAUpB,OAAOmB,EAAIE,MAAO,OAErC,IAAImC,OAAiC,IAAdrC,EAAIK,MACvBgC,IACFpC,GAAO,SAASpB,OAAOmB,EAAIK,MAAM5I,OAAS,EAAI,IAAIoH,OAAOmB,EAAIK,OAAS,GAAI,OAE5EJ,GAAOD,EAAIC,IACPoC,IACFpC,GAAO,KAELD,EAAIE,QACND,GAAO,KAELD,EAAII,WACNH,GAAO,KAET,IAAIE,EAAYH,EAAIG,UAChBA,GAA6B,oBAATmC,OACtBrC,GAAO,uDAAuDpB,OAAOyD,KAAKC,SAASC,mBAAmBC,KAAKC,UAAUvC,MAAe,QAKtI7B,EAAQS,kBAAkBkB,EAAKiC,EAAc5D,EAAQA,QACvD,CAoBMqE,CAAMT,EAAc5D,EAAS0B,EAC/B,EACAc,OAAQ,YArBZ,SAA4BoB,GAE1B,GAAgC,OAA5BA,EAAaU,WACf,OAAO,EAETV,EAAaU,WAAWC,YAAYX,EACtC,CAgBMY,CAAmBZ,EACrB,EAEJ,C,YC9CAvE,EAAOS,QAVP,SAA2B6B,EAAKiC,GAC9B,GAAIA,EAAaa,WACfb,EAAaa,WAAWC,QAAU/C,MAC7B,CACL,KAAOiC,EAAae,YAClBf,EAAaW,YAAYX,EAAae,YAExCf,EAAaJ,YAAYR,SAAS4B,eAAejD,GACnD,CACF,C","sources":["webpack:///./src/globe-with-gear-indicator/index.tsx","webpack:///./src/shared/CornerIndicator.tsx","webpack:///./src/shared/formatValue.ts","webpack:///./src/shared/useCenterScale.ts","webpack:///./src/shared/useContainerScale.ts","webpack:///./src/fonts/ALiBaBaPuHuiTi.css","webpack:///./src/fonts/HarmonyOSSans.css","webpack:///./src/globe-with-gear-indicator/styles.shadow.css","webpack:///./src/shared/CornerIndicator.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./src/fonts/ALiBaBaPuHuiTi.css?7885","webpack:///./src/fonts/HarmonyOSSans.css?a0fb","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { formatValue } from \"../shared/formatValue\";\nimport { CornerIndicator } from \"../shared/CornerIndicator\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\nimport { useCenterScale } from \"../shared/useCenterScale\";\nimport type { GearBackground, GearBackgroundProps } from \"../gear-background\";\nimport \"../fonts/ALiBaBaPuHuiTi.css\";\nimport \"../fonts/HarmonyOSSans.css\";\nimport styleText from \"./styles.shadow.css\";\nimport cornerStyleText from \"../shared/CornerIndicator.shadow.css\";\n\nconst BASE_WIDTH = 930;\nconst BASE_HEIGHT = 590;\nconst MAX_LINE_Y = BASE_HEIGHT - 2;\nconst BASE_LINE_WIDTH = 150;\n\nconst PALETTE: string[] = [\n \"#83F5E1\",\n \"#FE8328\",\n \"#296DFF\",\n \"#214ED2\",\n \"#9CC5FF\",\n \"#67E0D8\",\n \"#BF145B\",\n \"#4FAAFF\",\n \"#5245E2\",\n \"#9281EE\",\n \"#F8AB05\",\n \"#2C9966\",\n // \"#CAD1DB\",\n // \"#88909B\",\n // \"#00A7CC\",\n // \"#50FFFF\",\n // \"#3366FF\",\n // \"#99CCFF\",\n // \"#6600FF\",\n // \"#9999FF\",\n];\n\nconst RING_RADIUS = 229;\nconst RING_CX = 465;\nconst RING_CY = 317;\n\nconst WrappedGearBackground = wrapBrick<GearBackground, GearBackgroundProps>(\n \"data-view.gear-background\"\n);\n\nconst { defineElement, property } = createDecorators();\n\nexport interface GlobeWithGearIndicatorProps {\n dataSource?: DataItem[];\n centerDataSource?: DataItem;\n cornerDataSource?: CornerDataItem[];\n maxScale?: number;\n}\n\nexport interface DataItem {\n label: string;\n value: string | number;\n}\n\nexport interface CornerDataItem extends DataItem {\n color?: string;\n}\n\ninterface DataItemWithPosition extends DataItem {\n color: string;\n x: number;\n y: number;\n x2: number;\n y2: number;\n x3: number;\n}\n\n/**\n * 地球加轮盘的数据展示构件。\n */\nexport\n@defineElement(\"data-view.globe-with-gear-indicator\", {\n styleTexts: [styleText, cornerStyleText],\n})\nclass GlobeWithGearIndicator\n extends ReactNextElement\n implements GlobeWithGearIndicatorProps\n{\n /** 指标数据列表(显示在环上)\n *\n * 注意:最多显示12项数据\n */\n @property({ attribute: false })\n accessor dataSource: DataItem[] | undefined;\n\n /** 中心数据(显示在中心水晶球内) */\n @property({ attribute: false })\n accessor centerDataSource: DataItem | undefined;\n\n /**\n * 左上角指标数据列表\n */\n @property({ attribute: false })\n accessor cornerDataSource: CornerDataItem[] | undefined;\n\n /**\n * 最大缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor maxScale: number | undefined;\n\n render() {\n return (\n <GlobeWithGearIndicatorComponent\n root={this}\n dataSource={this.dataSource}\n centerDataSource={this.centerDataSource}\n cornerDataSource={this.cornerDataSource}\n maxScale={this.maxScale}\n />\n );\n }\n}\n\nexport interface GlobeWithGearIndicatorComponentProps\n extends GlobeWithGearIndicatorProps {\n root: GlobeWithGearIndicator;\n}\n\nexport function GlobeWithGearIndicatorComponent({\n root,\n dataSource,\n centerDataSource,\n cornerDataSource,\n maxScale,\n}: GlobeWithGearIndicatorComponentProps) {\n const scale = useContainerScale({\n width: BASE_WIDTH,\n height: BASE_HEIGHT,\n root,\n maxScale,\n });\n const [centerValueScale, centerValueRef] = useCenterScale(360);\n\n // 计算环上标签的位置\n // 1. 将数据分为两组,分别在环的两侧\n // 2. 索引(从 0 开始)为偶数的数据在右侧,索引为奇数的数据在左侧\n // 3. 总数为偶数时,两侧数据对称,每组数据按照角度均匀分布\n // 4. 总数为奇数时,右侧数据比左侧数据多一个,右侧数据按照角度均匀分布,\n // 左侧第 N 个数据的角度为右侧第 N 个和第 N + 1 个数据的角度的中分角\n const labels = useMemo(() => {\n const clampedData = dataSource?.slice(0, 12) ?? [];\n if (clampedData.length === 0) {\n return [];\n }\n\n const half = Math.ceil(clampedData.length / 2);\n const even = clampedData.length % 2 === 0;\n const arc = Math.PI / (half + 1);\n\n let index = 0;\n let angle: number;\n const result: DataItemWithPosition[] = [];\n while (index < clampedData.length) {\n const item = clampedData[index];\n const color = PALETTE[index % PALETTE.length];\n if (index % 2 === 0) {\n angle = arc * (index / 2 + 1) - Math.PI / 2;\n result.push({ ...item, color, ...getLinePosition(angle, true) });\n } else {\n const oddAngle = even ? Math.PI - angle : Math.PI - (angle + arc / 2);\n result.push({ ...item, color, ...getLinePosition(oddAngle, false) });\n }\n index++;\n }\n return result;\n }, [dataSource]);\n\n return (\n <>\n <div\n className=\"gear-container\"\n style={\n {\n visibility: scale === null ? \"hidden\" : \"visible\",\n \"--scale\": scale,\n } as React.CSSProperties & {\n \"--scale\": number;\n }\n }\n >\n <WrappedGearBackground color=\"#3366FF\" className=\"gear\" />\n <div className=\"center\">\n <div className=\"dots\"></div>\n <div className=\"radar\"></div>\n <div className=\"globe\"></div>\n {centerDataSource && (\n <div\n className=\"center-border level-1\"\n ref={centerValueRef}\n style={{\n visibility: centerValueScale === null ? \"hidden\" : \"visible\",\n transform: `scale(${centerValueScale ?? 1})`,\n }}\n >\n <div className=\"center-border level-2\">\n <div className=\"center-border level-3\">\n <div className=\"center-border level-4\">\n <div className=\"center-value\">\n {formatValue(centerDataSource?.value)}\n </div>\n <div className=\"center-label\">\n {centerDataSource?.label}\n </div>\n </div>\n </div>\n </div>\n </div>\n )}\n <div className=\"light\"></div>\n </div>\n <svg\n className=\"ring-lines\"\n width={BASE_WIDTH}\n height={BASE_HEIGHT}\n viewBox={`0 0 ${BASE_WIDTH} ${BASE_HEIGHT}`}\n >\n {labels.map((item, index) => (\n <g key={index} strokeWidth={2} fill=\"none\">\n <path\n d={`M ${item.x} ${item.y} L ${item.x2} ${item.y2} H ${item.x3}`}\n stroke=\"rgba(255,255,255,0.2)\"\n />\n <path\n d={`M ${item.x3} ${item.y2} h ${(index % 2 === 0 ? 1 : -1) * 13}`}\n stroke={item.color}\n />\n </g>\n ))}\n </svg>\n <div className=\"ring-labels\">\n {labels.map((item, index) => (\n <div\n key={index}\n className={`ring-label-container ${index % 2 === 0 ? \"even\" : \"odd\"}`}\n style={{\n width: Math.abs(item.x3 - item.x2),\n left: index % 2 === 0 ? item.x2 : item.x3,\n top: item.y2 - 60,\n }}\n >\n <div className=\"ring-label-box\">\n <div\n className=\"ring-icon\"\n style={{ background: item.color }}\n ></div>\n <div className=\"ring-label\">{item.label}</div>\n <div className=\"ring-value\">{formatValue(item.value)}</div>\n </div>\n </div>\n ))}\n </div>\n </div>\n <CornerIndicator cornerDataSource={cornerDataSource} />\n </>\n );\n}\n\nfunction getLinePosition(angle: number, even: boolean) {\n const x = RING_CX + RING_RADIUS * Math.cos(angle);\n const y = RING_CY + RING_RADIUS * Math.sin(angle);\n let x2: number;\n let y2: number;\n let x3: number;\n const baseWidth = (even ? 1 : -1) * BASE_LINE_WIDTH;\n if (even ? angle > 0 : angle < Math.PI) {\n const width =\n baseWidth *\n ((even ? angle < Math.PI / 4 : angle > (Math.PI * 3) / 4)\n ? 2 * (1 + ((even ? -1 : 1) * Math.cos(angle)) / 2)\n : 1);\n const lineAngle = even ? Math.PI / 6 : (Math.PI * 5) / 6;\n const lineRadius =\n 72 / Math.cos(angle - lineAngle) / ((even ? 1 : -1) * Math.cos(angle));\n y2 = y + lineRadius * Math.sin(lineAngle);\n if (y2 > MAX_LINE_Y) {\n y2 = MAX_LINE_Y;\n x2 = x + (y2 - y) / Math.tan(lineAngle);\n } else {\n x2 = x + lineRadius * Math.cos(lineAngle);\n }\n x3 = x2 + width;\n } else {\n const width = baseWidth;\n const lineAngle = even ? -Math.PI / 6 : (Math.PI * 7) / 6;\n const lineRadius = 72 / Math.cos(angle - lineAngle);\n x2 = x + lineRadius * Math.cos(lineAngle);\n y2 = y + lineRadius * Math.sin(lineAngle);\n x3 = x2 + width;\n }\n return { x, y, x2, y2, x3 };\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Tag, TagProps } from \"@next-bricks/basic/tag\";\nimport { formatValue } from \"./formatValue\";\n\nconst WrappedTag = wrapBrick<Tag, TagProps>(\"eo-tag\");\n\nexport interface CornerDataItem {\n label: string;\n value: string | number;\n color?: string;\n}\n\nexport interface CornerIndicatorProps {\n cornerDataSource?: CornerDataItem[];\n}\n\nexport function CornerIndicator({ cornerDataSource }: CornerIndicatorProps) {\n return (\n <div className=\"corner\">\n {cornerDataSource?.map((item, index) => (\n <div key={index} className=\"corner-item\">\n <div className=\"corner-label\">{item.label}</div>\n <WrappedTag\n className=\"corner-value\"\n outline\n color={item.color}\n tagStyle={{\n fontSize: 18,\n padding: \"2px 16px\",\n }}\n >\n {formatValue(item.value)}\n </WrappedTag>\n </div>\n ))}\n </div>\n );\n}\n","const numberFormatter = new Intl.NumberFormat(\"zh-CN\", {\n useGrouping: true,\n});\n\nexport function formatValue(value: string | number): string {\n return isMeaningfulNumber(value) ? numberFormatter.format(+value) : value;\n}\n\n/**\n * 判断一个值是否是有意义的数字,包括数字和可以转换为数字的字符串。\n *\n * 但不包括 NaN、Infinity、-Infinity 等。\n *\n * Ref https://github.com/jonschlinkert/is-number/blob/master/index.js\n */\nexport function isMeaningfulNumber(value: unknown): value is number | string {\n if (typeof value === \"number\") {\n return value - value === 0;\n }\n if (typeof value === \"string\" && value.trim() !== \"\") {\n return /* istanbul ignore next */ (Number.isFinite ?? isFinite)(+value);\n }\n return false;\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 让中心数据值不要超过球体范围,但缩放值最低不小于 0.3\n */\nexport function useCenterScale(maxWidth: number) {\n const [centerScale, setCenterScale] = useState<number | null>(null);\n const centerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const centerValueElement = centerRef.current;\n if (!centerValueElement) {\n return;\n }\n const observer = new ResizeObserver(() => {\n const width = centerValueElement.clientWidth;\n setCenterScale(Math.min(1, Math.max(0.3, maxWidth / width)));\n });\n observer.observe(centerValueElement);\n return () => observer.disconnect();\n }, [maxWidth]);\n\n return [centerScale, centerRef] as const;\n}\n","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ALiBaBaPuHuiTi.ttf\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:ALiBaBaPuHuiTi;src:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./HarmonyOSSans.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./HarmonyOSSansBold.ttf\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:HarmonyOSSans;src:url(${___CSS_LOADER_URL_REPLACEMENT_0___});font-weight:normal}@font-face{font-family:HarmonyOSSans;src:url(${___CSS_LOADER_URL_REPLACEMENT_1___});font-weight:bold}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./assets/dots.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./assets/radar.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./assets/earth.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./assets/light.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host,\n.center{display:flex;align-items:center;justify-content:center}:host{position:relative;color:#fff;height:100%}:host([hidden]){display:none}*{box-sizing:border-box}.gear-container{width:930px;height:590px;position:relative;transform:scale(var(--scale));--scale:1}.gear,\n.dots,\n.radar,\n.globe,\n.light,\n.ring-lines,\n.ring-labels{position:absolute;left:50%;transform:translate(-50%,0)}.gear,\n.radar{bottom:-42px;width:630px;height:630px}.dots{width:542px;height:542px;border-radius:542px;overflow:hidden;background:url(${___CSS_LOADER_URL_REPLACEMENT_0___}) no-repeat;background-position:center;background-size:542px}.radar{background:url(${___CSS_LOADER_URL_REPLACEMENT_1___}) no-repeat;background-position:center;background-size:458px;animation:rotating-radar 2.6s linear infinite}.globe{width:455px;height:458px;background:url(${___CSS_LOADER_URL_REPLACEMENT_2___}) no-repeat;background-position:center;background-size:100%}.light{pointer-events:none;bottom:98px;width:207px;height:208px;background:url(${___CSS_LOADER_URL_REPLACEMENT_3___}) no-repeat;background-position:center;background-size:100%;animation:flash-light 0.5s linear infinite alternate-reverse}.center{position:absolute;bottom:0;width:100%;height:546px;text-align:center}.center-border{border-width:1px;border-style:solid;border-radius:16px}.center-border.level-1{position:relative;padding:12px;border-color:rgb(68,219,242,0.2)}.center-border.level-2{padding:10px;border-color:rgb(68,219,242,0.4)}.center-border.level-3{padding:9px;border-color:rgb(68,219,242,0.6)}.center-border.level-4{padding:18px;border-radius:13px;border-color:rgb(68,219,242,0.8)}.center-label:empty,\n.center-value:empty{display:none}.center-label{font-size:24px;line-height:33px;font-weight:600;margin-top:13px;color:rgba(255,255,255,0.65)}.center-value{font-family:HarmonyOSSans;font-weight:bold;font-size:50px;line-height:60px;text-shadow:0px 2px 4px #296dff}.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px}.corner-value{display:block;margin-left:19px}.ring-lines{top:0;pointer-events:none}.ring-labels{width:930px;top:0}.ring-label-container{position:absolute;display:flex;justify-content:center}.ring-label-box{position:relative;padding:0 18px;width:max-content}.ring-icon{position:absolute;top:5px;left:0;width:11px;height:11px;border-radius:0px 4px}.ring-label{color:rgba(255,255,255,0.65);font-family:ALiBaBaPuHuiTi;font-size:14px;line-height:20px}.ring-value{font-family:HarmonyOSSans;font-size:23px;line-height:34px}@keyframes rotating-radar{from{transform:translate(-50%,0) rotate(0deg)}to{transform:translate(-50%,0) rotate(360deg)}}@keyframes flash-light{from{opacity:0}to{opacity:1}}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px;color:rgba(255,255,255,0.85)}.corner-value{display:block;margin-left:19px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./HarmonyOSSans.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./HarmonyOSSans.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;"],"names":["BASE_WIDTH","BASE_HEIGHT","MAX_LINE_Y","BASE_LINE_WIDTH","PALETTE","RING_RADIUS","RING_CX","RING_CY","WrappedGearBackground","wrapBrick","defineElement","property","createDecorators","_GlobeWithGearIndicat","_A","WeakMap","_B","_C","_D","GlobeWithGearIndicator","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_dataSource","_init_extra_dataSource","_init_centerDataSource","_init_extra_centerDataSource","_init_cornerDataSource","_init_extra_cornerDataSource","_init_maxScale","_init_extra_maxScale","dataSource","_classPrivateFieldGet","v","_classPrivateFieldSet","centerDataSource","cornerDataSource","maxScale","render","React","GlobeWithGearIndicatorComponent","root","this","_ref","scale","useContainerScale","width","height","centerValueScale","centerValueRef","useCenterScale","labels","useMemo","_dataSource$slice","clampedData","slice","length","half","Math","ceil","even","arc","PI","angle","index","result","item","color","push","getLinePosition","oddAngle","className","style","visibility","ref","transform","formatValue","value","label","viewBox","map","key","strokeWidth","fill","d","x","y","x2","y2","x3","stroke","abs","left","top","background","CornerIndicator","cos","sin","baseWidth","lineAngle","lineRadius","tan","_GlobeWithGearIndicator","e","c","_initClass","_applyDecs","styleTexts","styleText","cornerStyleText","attribute","type","Number","WrappedTag","outline","tagStyle","fontSize","padding","numberFormatter","Intl","NumberFormat","useGrouping","trim","_Number$isFinite","isFinite","isMeaningfulNumber","format","maxWidth","centerScale","setCenterScale","useState","centerRef","useRef","useEffect","centerValueElement","current","observer","ResizeObserver","clientWidth","min","max","observe","disconnect","baseHeight","disabled","setScale","entries","entry","target","contentRect","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","id","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","toString","exports","url","options","String","__esModule","default","test","hash","needQuotes","concat","replace","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","i","modulesToDom","list","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","needLayer","btoa","unescape","encodeURIComponent","JSON","stringify","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_data_view=globalThis.webpackChunk_next_bricks_data_view||[]).push([[7666],{88952:(e,t,n)=>{n.d(t,{x:()=>i});var r=n(20563),a=n(18769),o=n.n(a);function i(e){let{cx:t,cy:n,rx:i,ry:s}=e;const[l,c]=(0,a.useState)("M 0 0"),u=(0,a.useMemo)((()=>(0,r.uniqueId)("rotating-arc-")),[]);return(0,a.useEffect)((()=>{let e,r;return r=requestAnimationFrame((function a(o){void 0===e&&(e=o);const l=-(o-e)/1e3/2.6*Math.PI*2+1.1*Math.PI,u=l-.6*Math.PI,p=t+i*Math.cos(l),d=n+s*Math.sin(l),m=t+i*Math.cos(u),f=n+s*Math.sin(u);c(`M ${p} ${d} A ${i} ${s} 0 0 0 ${m} ${f}`),r=requestAnimationFrame(a)})),()=>{cancelAnimationFrame(r)}}),[t,n,i,s]),o().createElement(o().Fragment,null,o().createElement("defs",null,o().createElement("linearGradient",{id:u,gradientTransform:"rotate(48)",x1:"0",y1:"0",x2:"830px",y2:"183px",gradientUnits:"userSpaceOnUse"},o().createElement("stop",{offset:"0%",stopColor:"rgba(132, 253, 253, 0)"}),o().createElement("stop",{offset:"25%",stopColor:"rgba(132, 253, 253, 1)"}),o().createElement("stop",{offset:"50%",stopColor:"rgba(132, 253, 253, 1)"}),o().createElement("stop",{offset:"75%",stopColor:"rgba(248, 255, 255, 1)"}))),o().createElement("path",{d:l,strokeWidth:4,stroke:`url(#${u})`,fill:"none"}))}},88517:(e,t,n)=>{n.d(t,{s:()=>o});var r=n(18769),a=n.n(r);function o(){return a().createElement("svg",{className:"satellite-ring",width:"928px",height:"534px",viewBox:"0 0 928 534"},a().createElement("defs",null,a().createElement("linearGradient",{x1:"50%",y1:"14.8555832%",x2:"50%",y2:"100%",id:"linearGradient-1"},a().createElement("stop",{stopColor:"#00E8FF",stopOpacity:"0",offset:"0%"}),a().createElement("stop",{stopColor:"#00CCFF",offset:"100%"})),a().createElement("linearGradient",{x1:"50%",y1:"14.8555832%",x2:"50%",y2:"100%",id:"linearGradient-2"},a().createElement("stop",{stopColor:"#00CCFF",offset:"0%"}),a().createElement("stop",{stopColor:"#00E8FF",stopOpacity:"0",offset:"100%"}))),a().createElement("g",{transform:"translate(51 304)",stroke:"1",fill:"none",opacity:.5},a().createElement("ellipse",{cx:"413",cy:"-136",rx:"164",ry:"94.5",stroke:"url(#linearGradient-1)"},a().createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 413 -136",to:"360 413 -136",dur:"2.6s",repeatCount:"indefinite"})),a().createElement("ellipse",{cx:"413",cy:"-136",rx:"164",ry:"94.5",stroke:"url(#linearGradient-2)"},a().createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"210 413 -136",to:"-150 413 -136",dur:"2.6s",repeatCount:"indefinite"}))))}},23396:(e,t,n)=>{n.r(t),n.d(t,{GlobeWithHaloIndicator:()=>I,GlobeWithHaloIndicatorComponent:()=>G});var r,a=n(70918),o=n(86121),i=n(70829),s=n(62740),l=n(18769),c=n.n(l),u=n(41123),p=n(69006),d=(n(37),n(82650)),m=n(57384),f=n(88952),h=n(88517),g=n(47906),x=n(11752),b=n(65482),v=(n(95178),n(83761)),y=n(92481);let E,w,M,S,k,A,N,$,C;const{defineElement:F,property:D}=(0,u.createDecorators)();let I;var T=new WeakMap,P=new WeakMap,z=new WeakMap,L=new WeakMap;class B extends p.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,T,w(this)),(0,a.A)(this,P,(M(this),S(this))),(0,a.A)(this,z,(k(this),A(this))),(0,a.A)(this,L,(N(this),$(this))),C(this)}get dataSource(){return(0,i.A)(T,this)}set dataSource(e){(0,o.A)(T,this,e)}get centerDataSource(){return(0,i.A)(P,this)}set centerDataSource(e){(0,o.A)(P,this,e)}get cornerDataSource(){return(0,i.A)(z,this)}set cornerDataSource(e){(0,o.A)(z,this,e)}get maxScale(){return(0,i.A)(L,this)}set maxScale(e){(0,o.A)(L,this,e)}render(){return c().createElement(G,{root:this,dataSource:this.dataSource,centerDataSource:this.centerDataSource,cornerDataSource:this.cornerDataSource,maxScale:this.maxScale})}}function G(e){let{root:t,dataSource:n,centerDataSource:r,cornerDataSource:a,maxScale:o}=e;const i=(0,g.D)({width:900,height:575,root:t,maxScale:o}),[s,u]=(0,x.L)(260),p=(0,l.useMemo)((()=>{var e;const t=null!==(e=null==n?void 0:n.slice(0,8))&&void 0!==e?e:[];if(0===t.length)return[];const r=t.length%2==0,a=Math.ceil(t.length/2)+1,o=R(a),i=-Math.PI/3,s=(Math.PI/4-i)/o;let l,c,u,p,d,m,f,h=0;const g=[];for(;h<t.length;){const e=t[h];if(h%2==0){const t=h/2+1;m=i+s*R(t),f=Math.PI/3*(2-t/a),d=340-(a>2?170*h/2/(a-2):0),l=413+292.4*Math.cos(m),c=65.5+59.4*Math.sin(m),u=l+Math.cos(f)*d,p=c-Math.sin(f)*d;const n=`M ${l} ${c} A ${d} ${d} 0 0 0 ${u} ${p}`;g.push({...e,x:l,y:c,x2:u,y2:p,d:n})}else if(r){const t=826-l,n=826-u;g.push({...e,x:t,y:c,x2:n,y2:p,d:`M ${t} ${c} A ${d} ${d} 0 0 1 ${n} ${p}`})}else{const t=Math.PI-(m+s*(h+1)/2),n=Math.PI-f,r=413+292.4*Math.cos(t),o=65.5+59.4*Math.sin(t),i=d-85/(a-2),l=r+Math.cos(n)*i,c=o-Math.sin(n)*i;g.push({...e,x:r,y:o,x2:l,y2:c,d:`M ${r} ${o} A ${i} ${i} 0 0 1 ${l} ${c}`})}h++}return g}),[n]);return c().createElement(c().Fragment,null,c().createElement("div",{className:"container",style:{visibility:null===i?"hidden":"visible","--scale":i}},c().createElement("div",{className:"base"}),c().createElement("svg",{className:"ring",width:928,height:534,viewBox:"0 0 928 534"},c().createElement("g",{transform:"translate(51 304)"},c().createElement("ellipse",{cx:"413",cy:"89.5",rx:"412.4",ry:"88.9",fill:"none",stroke:"rgba(123,212,235,255)",strokeWidth:"1.2"},c().createElement("animate",{attributeName:"rx",values:"412.4;0",dur:"2.6s",repeatCount:"indefinite"}),c().createElement("animate",{attributeName:"ry",values:"88.9;0",dur:"2.6s",repeatCount:"indefinite"}),c().createElement("animate",{attributeName:"cy",values:"89.5;10",dur:"2.6s",repeatCount:"indefinite"}),c().createElement("animate",{attributeName:"stroke",values:"rgba(123,212,235,255);rgba(123,212,235,255);rgba(123,212,235,25)",keyTimes:"0;0.53846;1",dur:"2.6s",repeatCount:"indefinite"})),c().createElement(f.x,{cx:413,cy:89.5,rx:412.4,ry:88.9}),p.map(((e,t)=>c().createElement("path",{key:t,d:e.d,fill:"none",stroke:"#3889B6",strokeWidth:2,strokeDasharray:"6 4"}))))),c().createElement("div",{className:"globe"}),c().createElement(h.s,null),c().createElement("video",{className:"particles",width:197,height:246,autoPlay:!0,muted:!0,loop:!0,playsInline:!0},c().createElement("source",{src:b,type:"video/webm"})),c().createElement("div",{className:"ring-labels"},p.map(((e,t)=>c().createElement("div",{key:t,className:"ring-label-container "+(t%2==0?"even":"odd"),style:{left:e.x2+51,top:e.y2+304}},c().createElement("div",{className:"ring-icon"}),c().createElement("div",{className:"ring-label"},e.label),c().createElement("div",{className:"ring-value"},(0,d.F)(e.value)))))),c().createElement("div",{className:"center"},c().createElement("div",{className:"center-label"},null==r?void 0:r.label),c().createElement("div",{className:"center-value",ref:u,style:{visibility:null===s?"hidden":"visible",transform:`scale(${null!=s?s:1})`}},(0,d.F)(null==r?void 0:r.value)))),c().createElement(m.x,{cornerDataSource:a}))}function R(e){return e*(e+1)/2}r=B,({e:[w,M,S,k,A,N,$,C],c:[I,E]}=(0,s.A)(r,[F("data-view.globe-with-halo-indicator",{styleTexts:[v.A,y.A]})],[[D({attribute:!1}),1,"dataSource"],[D({attribute:!1}),1,"centerDataSource"],[D({attribute:!1}),1,"cornerDataSource"],[D({type:Number}),1,"maxScale"]],0,void 0,p.ReactNextElement)),E()},57384:(e,t,n)=>{n.d(t,{x:()=>l});var r=n(18769),a=n.n(r),o=n(69006),i=n(82650);const s=(0,o.wrapBrick)("eo-tag");function l(e){let{cornerDataSource:t}=e;return a().createElement("div",{className:"corner"},null==t?void 0:t.map(((e,t)=>a().createElement("div",{key:t,className:"corner-item"},a().createElement("div",{className:"corner-label"},e.label),a().createElement(s,{className:"corner-value",outline:!0,color:e.color,tagStyle:{fontSize:18,padding:"2px 16px"}},(0,i.F)(e.value))))))}},82650:(e,t,n)=>{n.d(t,{F:()=>a});const r=new Intl.NumberFormat("zh-CN",{useGrouping:!0});function a(e){return function(e){return"number"==typeof e?e-e==0:"string"==typeof e&&""!==e.trim()&&(null!==(t=Number.isFinite)&&void 0!==t?t:isFinite)(+e);var t}(e)?r.format(+e):e}},11752:(e,t,n)=>{n.d(t,{L:()=>o});var r=n(18769),a=n(99126);function o(e){const[t,n]=(0,r.useState)(null),o=(0,r.useRef)(null);return(0,r.useEffect)((()=>{const t=o.current;if(!t)return;const r=new a.A((()=>{const r=t.clientWidth;n(Math.min(1,Math.max(.3,e/r)))}));return r.observe(t),()=>r.disconnect()}),[e]),[t,o]}},47906:(e,t,n)=>{n.d(t,{D:()=>o});var r=n(18769),a=n(99126);function o(e){let{width:t,height:n,root:o,maxScale:i,disabled:s}=e;const[l,c]=(0,r.useState)(null);return(0,r.useEffect)((()=>{if(s)return void c(null);const e=new a.A((e=>{for(const r of e)if(r.target===o){const{width:e,height:a}=r.contentRect;c(Math.min(null!=i?i:1,e/t,a/n))}}));return e.observe(o),()=>e.disconnect()}),[n,t,s,i,o]),l}},97136:(e,t,n)=>{n.d(t,{A:()=>d});var r=n(36758),a=n.n(r),o=n(40935),i=n.n(o),s=n(20062),l=n.n(s),c=new URL(n(17577),n.b),u=i()(a()),p=l()(c);u.push([e.id,`@font-face{font-family:ALiBaBaPuHuiTi;src:url(${p})}`,""]);const d=u},83761:(e,t,n)=>{n.d(t,{A:()=>g});var r=n(36758),a=n.n(r),o=n(40935),i=n.n(o),s=n(20062),l=n.n(s),c=new URL(n(63240),n.b),u=new URL(n(89152),n.b),p=new URL(n(93893),n.b),d=i()(a()),m=l()(c),f=l()(u),h=l()(p);d.push([e.id,`:host,\n.center{display:flex;align-items:center;justify-content:center}:host{height:100%;color:#fff}:host([hidden]){display:none}*{box-sizing:border-box}.container{width:928px;height:534px;position:relative;transform-origin:center;transform:scale(var(--scale));--scale:1}.base,\n.center,\n.globe,\n.satellite-ring,\n.ring,\n.ring-labels{position:absolute;left:50%;transform:translate(-50%,0)}.base{width:1312px;height:575px;bottom:0;background-image:url(${m});background-repeat:no-repeat;background-position:center bottom -173px;background-size:100%}.globe,\n.center{width:272px;height:272px;bottom:228px}.globe{background-image:url(${f});background-repeat:no-repeat;background-size:100%;background-position:center}.satellite-ring,\n.ring{top:0}.particles{mix-blend-mode:screen;position:absolute;bottom:204px;left:50%;transform:translate(-50%,0)}.ring-labels{top:0;width:928px}.ring-label-container{position:absolute;padding:0 35px;margin-top:-14px;width:max-content}.ring-icon{position:absolute;width:36px;height:36px;background-image:url(${h});background-repeat:no-repeat;background-size:100%;background-position:0 0;top:-4px}.odd{transform:translate(-100%,0);text-align:right}.odd .ring-icon{right:-18px}.even .ring-icon{left:-18px}.ring-label{color:rgba(200,226,255,0.8);font-size:18px}.ring-value{font-family:ALiBaBaPuHuiTi;font-size:28px;text-shadow:0px 4px 7px #514af7}.center{flex-direction:column;text-align:center;text-shadow:0px 2px 4px rgba(0,0,0,0.5)}.center-label:empty,\n.center-value:empty{display:none}.center-label{font-size:24px;font-weight:600;line-height:33px}.center-value{font-family:ALiBaBaPuHuiTi;font-weight:bold;font-size:60px;line-height:82px}.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px}.corner-value{display:block;margin-left:19px}`,""]);const g=d.toString()},92481:(e,t,n)=>{n.d(t,{A:()=>s});var r=n(36758),a=n.n(r),o=n(40935),i=n.n(o)()(a());i.push([e.id,".corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px;color:rgba(255,255,255,0.85)}.corner-value{display:block;margin-left:19px}",""]);const s=i.toString()},20062:e=>{e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},95178:(e,t,n)=>{var r=n(72591),a=n.n(r),o=n(1740),i=n.n(o),s=n(88128),l=n.n(s),c=n(30855),u=n.n(c),p=n(93051),d=n.n(p),m=n(73656),f=n.n(m),h=n(97136),g={};g.styleTagTransform=f(),g.setAttributes=u(),g.insert=l().bind(null,"head"),g.domAPI=i(),g.insertStyleElement=d(),a()(h.A,g),h.A&&h.A.locals&&h.A.locals},72591:e=>{var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var o={},i=[],s=0;s<e.length;s++){var l=e[s],c=r.base?l[0]+r.base:l[0],u=o[c]||0,p="".concat(c," ").concat(u);o[c]=u+1;var d=n(p),m={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==d)t[d].references++,t[d].updater(m);else{var f=a(m,r);r.byIndex=s,t.splice(s,0,{identifier:p,updater:f,references:1})}i.push(p)}return i}function a(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,a){var o=r(e=e||[],a=a||{});return function(e){e=e||[];for(var i=0;i<o.length;i++){var s=n(o[i]);t[s].references--}for(var l=r(e,a),c=0;c<o.length;c++){var u=n(o[c]);0===t[u].references&&(t[u].updater(),t.splice(u,1))}o=l}}},88128:e=>{var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},93051:e=>{e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},30855:(e,t,n)=>{e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},1740:e=>{e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var a=void 0!==n.layer;a&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,a&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var o=n.sourceMap;o&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},73656:e=>{e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},93893:(e,t,n)=>{e.exports=n.p+"images/9111af40.png"},17577:(e,t,n)=>{e.exports=n.p+"media/792b07b2.ttf"},63240:(e,t,n)=>{e.exports=n.p+"images/eae6fa62.png"},89152:(e,t,n)=>{e.exports=n.p+"images/1056eac3.png"},65482:(e,t,n)=>{e.exports=n.p+"media/0c649f21.webm"}}]);
|
|
2
|
+
//# sourceMappingURL=globe-with-halo-indicator.432f9fca.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/globe-with-halo-indicator.6067efe9.js","mappings":"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","sources":["webpack:///./src/globe-with-halo-indicator/RotatingArc.tsx","webpack:///./src/globe-with-halo-indicator/SatelliteRing.tsx","webpack:///./src/globe-with-halo-indicator/index.tsx","webpack:///./src/shared/CornerIndicator.tsx","webpack:///./src/shared/formatValue.ts","webpack:///./src/shared/useCenterScale.ts","webpack:///./src/shared/useContainerScale.ts","webpack:///./src/fonts/ALiBaBaPuHuiTi.css","webpack:///./src/globe-with-halo-indicator/styles.shadow.css","webpack:///./src/shared/CornerIndicator.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./src/fonts/ALiBaBaPuHuiTi.css?7885","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["import { uniqueId } from \"lodash\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nexport interface RotatingArcProps {\n cx: number;\n cy: number;\n rx: number;\n ry: number;\n}\n\nexport function RotatingArc({ cx, cy, rx, ry }: RotatingArcProps) {\n const durationPerCircle = 2.6;\n const [path, setPath] = useState(\"M 0 0\");\n const defId = useMemo(() => uniqueId(\"rotating-arc-\"), []);\n\n useEffect(() => {\n let start: number;\n let timer: number;\n\n function step(timestamp: number) {\n if (start === undefined) {\n start = timestamp;\n }\n const elapsed = timestamp - start;\n\n const startAngle =\n -(elapsed / 1000 / durationPerCircle) * Math.PI * 2 + Math.PI * 1.1;\n // A bit more than a quarter circle\n const endAngle = startAngle - Math.PI * 0.6;\n const x1 = cx + rx * Math.cos(startAngle);\n const y1 = cy + ry * Math.sin(startAngle);\n const x2 = cx + rx * Math.cos(endAngle);\n const y2 = cy + ry * Math.sin(endAngle);\n setPath(`M ${x1} ${y1} A ${rx} ${ry} 0 0 0 ${x2} ${y2}`);\n timer = requestAnimationFrame(step);\n }\n\n timer = requestAnimationFrame(step);\n\n return () => {\n cancelAnimationFrame(timer);\n };\n }, [cx, cy, rx, ry]);\n\n return (\n <>\n <defs>\n <linearGradient\n id={defId}\n gradientTransform=\"rotate(48)\"\n x1=\"0\"\n y1=\"0\"\n x2=\"830px\"\n y2=\"183px\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0%\" stopColor=\"rgba(132, 253, 253, 0)\" />\n <stop offset=\"25%\" stopColor=\"rgba(132, 253, 253, 1)\" />\n <stop offset=\"50%\" stopColor=\"rgba(132, 253, 253, 1)\" />\n <stop offset=\"75%\" stopColor=\"rgba(248, 255, 255, 1)\" />\n </linearGradient>\n </defs>\n <path\n d={path}\n // d=\"M 0.6 89.5 A 412.4 88.9 0 0 0 825.4 88.9\"\n strokeWidth={4}\n stroke={`url(#${defId})`}\n fill=\"none\"\n />\n </>\n );\n}\n","import React from \"react\";\n\nexport function SatelliteRing() {\n return (\n <svg\n className=\"satellite-ring\"\n width=\"928px\"\n height=\"534px\"\n viewBox=\"0 0 928 534\"\n >\n <defs>\n <linearGradient\n x1=\"50%\"\n y1=\"14.8555832%\"\n x2=\"50%\"\n y2=\"100%\"\n id=\"linearGradient-1\"\n >\n <stop stopColor=\"#00E8FF\" stopOpacity=\"0\" offset=\"0%\"></stop>\n <stop stopColor=\"#00CCFF\" offset=\"100%\"></stop>\n </linearGradient>\n <linearGradient\n x1=\"50%\"\n y1=\"14.8555832%\"\n x2=\"50%\"\n y2=\"100%\"\n id=\"linearGradient-2\"\n >\n <stop stopColor=\"#00CCFF\" offset=\"0%\"></stop>\n <stop stopColor=\"#00E8FF\" stopOpacity=\"0\" offset=\"100%\"></stop>\n </linearGradient>\n </defs>\n <g transform=\"translate(51 304)\" stroke=\"1\" fill=\"none\" opacity={0.5}>\n <ellipse\n cx=\"413\"\n cy=\"-136\"\n rx=\"164\"\n ry=\"94.5\"\n stroke=\"url(#linearGradient-1)\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 413 -136\"\n to=\"360 413 -136\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n </ellipse>\n <ellipse\n cx=\"413\"\n cy=\"-136\"\n rx=\"164\"\n ry=\"94.5\"\n stroke=\"url(#linearGradient-2)\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"210 413 -136\"\n to=\"-150 413 -136\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n </ellipse>\n </g>\n </svg>\n );\n}\n","import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { formatValue } from \"../shared/formatValue\";\nimport { CornerIndicator } from \"../shared/CornerIndicator\";\nimport { RotatingArc } from \"./RotatingArc\";\nimport { SatelliteRing } from \"./SatelliteRing\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\nimport { useCenterScale } from \"../shared/useCenterScale\";\nimport particlesWebm from \"./assets/particles.webm\";\nimport \"../fonts/ALiBaBaPuHuiTi.css\";\nimport styleText from \"./styles.shadow.css\";\nimport cornerStyleText from \"../shared/CornerIndicator.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface GlobeWithHaloIndicatorProps {\n dataSource?: DataItem[];\n centerDataSource?: DataItem;\n cornerDataSource?: CornerDataItem[];\n maxScale?: number;\n}\n\nexport interface DataItem {\n label: string;\n value: string | number;\n}\n\nexport interface CornerDataItem extends DataItem {\n color?: string;\n}\n\ninterface DataItemWithPosition extends DataItem {\n x: number;\n y: number;\n d: string;\n x2: number;\n y2: number;\n}\n\n/**\n * 地球加光环的数据展示构件。\n */\nexport\n@defineElement(\"data-view.globe-with-halo-indicator\", {\n styleTexts: [styleText, cornerStyleText],\n})\nclass GlobeWithHaloIndicator\n extends ReactNextElement\n implements GlobeWithHaloIndicatorProps\n{\n /**\n * 指标数据列表(显示在环上)\n *\n * 注意:最多显示8项数据\n */\n @property({ attribute: false })\n accessor dataSource: DataItem[] | undefined;\n\n /** 中心数据(显示在中心地球内) */\n @property({ attribute: false })\n accessor centerDataSource: DataItem | undefined;\n\n /**\n * 左上角指标数据列表\n */\n @property({ attribute: false })\n accessor cornerDataSource: CornerDataItem[] | undefined;\n\n /**\n * 最大缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor maxScale: number | undefined;\n\n render() {\n return (\n <GlobeWithHaloIndicatorComponent\n root={this}\n dataSource={this.dataSource}\n centerDataSource={this.centerDataSource}\n cornerDataSource={this.cornerDataSource}\n maxScale={this.maxScale}\n />\n );\n }\n}\n\nexport interface GlobeWithHaloIndicatorComponentProps\n extends GlobeWithHaloIndicatorProps {\n root: GlobeWithHaloIndicator;\n}\n\nexport function GlobeWithHaloIndicatorComponent({\n root,\n dataSource,\n centerDataSource,\n cornerDataSource,\n maxScale,\n}: GlobeWithHaloIndicatorComponentProps) {\n const scale = useContainerScale({ width: 900, height: 575, root, maxScale });\n const [centerValueScale, centerValueRef] = useCenterScale(260);\n\n // 计算环上标签的位置\n // 1. 将数据分为两组,分别在环的两侧\n // 2. 索引(从 0 开始)为偶数的数据在右侧,索引为奇数的数据在左侧\n // 3. 总数为偶数时,两侧数据对称,每组数据按照角度均匀分布\n // 4. 总数为奇数时,右侧数据比左侧数据多一个,右侧数据按照等差数列间隔分布,\n // 左侧第 N 个数据的角度为右侧第 N 个和第 N + 1 个数据的角度的中分角\n const labels = useMemo(() => {\n const clampedData = dataSource?.slice(0, 8) ?? [];\n if (clampedData.length === 0) {\n return [];\n }\n\n const rx = 292.4;\n const ry = 59.4;\n const cx = 413;\n const cy = 65.5;\n const lineBaseDiameter = 340;\n\n const even = clampedData.length % 2 === 0;\n const m = Math.ceil(clampedData.length / 2) + 1;\n const fractions = getSequenceSum(m);\n const startAngle = -Math.PI / 3;\n const endAngle = Math.PI / 4;\n const arc = (endAngle - startAngle) / fractions;\n\n let index = 0;\n let x: number;\n let y: number;\n let x2: number;\n let y2: number;\n let r: number;\n let angle: number;\n let lineAngle: number;\n const result: DataItemWithPosition[] = [];\n while (index < clampedData.length) {\n const item = clampedData[index];\n if (index % 2 === 0) {\n const n = index / 2 + 1;\n angle = startAngle + arc * getSequenceSum(n);\n lineAngle = (Math.PI / 3) * (2 - n / m);\n r =\n lineBaseDiameter -\n (m > 2 ? ((lineBaseDiameter / 2) * index) / 2 / (m - 2) : 0);\n x = cx + rx * Math.cos(angle);\n y = cy + ry * Math.sin(angle);\n x2 = x + Math.cos(lineAngle) * r;\n y2 = y - Math.sin(lineAngle) * r;\n const d = `M ${x} ${y} A ${r} ${r} 0 0 0 ${x2} ${y2}`;\n result.push({ ...item, x, y, x2, y2, d });\n } else if (even) {\n const oddX = cx * 2 - x;\n const oddX2 = cx * 2 - x2;\n result.push({\n ...item,\n x: oddX,\n y,\n x2: oddX2,\n y2: y2,\n d: `M ${oddX} ${y} A ${r} ${r} 0 0 1 ${oddX2} ${y2}`,\n });\n } else {\n const oddAngle = Math.PI - (angle + (arc * (index + 1)) / 2);\n const oddLineAngle = Math.PI - lineAngle;\n const oddX = cx + rx * Math.cos(oddAngle);\n const oddY = cy + ry * Math.sin(oddAngle);\n // Assert: m > 2 here\n const oddR = r - lineBaseDiameter / 4 / (m - 2);\n const oddX2 = oddX + Math.cos(oddLineAngle) * oddR;\n const oddY2 = oddY - Math.sin(oddLineAngle) * oddR;\n result.push({\n ...item,\n x: oddX,\n y: oddY,\n x2: oddX2,\n y2: oddY2,\n d: `M ${oddX} ${oddY} A ${oddR} ${oddR} 0 0 1 ${oddX2} ${oddY2}`,\n });\n }\n index++;\n }\n return result;\n }, [dataSource]);\n\n return (\n <>\n <div\n className=\"container\"\n style={\n {\n visibility: scale === null ? \"hidden\" : \"visible\",\n \"--scale\": scale,\n } as React.CSSProperties & {\n \"--scale\": number;\n }\n }\n >\n <div className=\"base\"></div>\n <svg className=\"ring\" width={928} height={534} viewBox=\"0 0 928 534\">\n <g transform=\"translate(51 304)\">\n <ellipse\n cx=\"413\"\n cy=\"89.5\"\n rx=\"412.4\"\n ry=\"88.9\"\n fill=\"none\"\n stroke=\"rgba(123,212,235,255)\"\n strokeWidth=\"1.2\"\n >\n <animate\n attributeName=\"rx\"\n values=\"412.4;0\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"ry\"\n values=\"88.9;0\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"cy\"\n values=\"89.5;10\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke\"\n values=\"rgba(123,212,235,255);rgba(123,212,235,255);rgba(123,212,235,25)\"\n keyTimes=\"0;0.53846;1\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n </ellipse>\n <RotatingArc cx={413} cy={89.5} rx={412.4} ry={88.9} />\n {labels.map((label, index) => (\n <path\n key={index}\n d={label.d}\n fill=\"none\"\n stroke=\"#3889B6\"\n strokeWidth={2}\n strokeDasharray=\"6 4\"\n ></path>\n ))}\n </g>\n </svg>\n\n <div className=\"globe\"></div>\n\n <SatelliteRing />\n\n <video\n className=\"particles\"\n width={197}\n height={246}\n autoPlay\n muted\n loop\n playsInline\n >\n <source src={particlesWebm} type=\"video/webm\" />\n </video>\n\n <div className=\"ring-labels\">\n {labels.map((item, index) => (\n <div\n key={index}\n className={`ring-label-container ${index % 2 === 0 ? \"even\" : \"odd\"}`}\n style={{\n left: item.x2 + 51,\n top: item.y2 + 304,\n }}\n >\n <div className=\"ring-icon\"></div>\n <div className=\"ring-label\">{item.label}</div>\n <div className=\"ring-value\">{formatValue(item.value)}</div>\n </div>\n ))}\n </div>\n\n <div className=\"center\">\n <div className=\"center-label\">{centerDataSource?.label}</div>\n <div\n className=\"center-value\"\n ref={centerValueRef}\n style={{\n visibility: centerValueScale === null ? \"hidden\" : \"visible\",\n transform: `scale(${centerValueScale ?? 1})`,\n }}\n >\n {formatValue(centerDataSource?.value)}\n </div>\n </div>\n </div>\n <CornerIndicator cornerDataSource={cornerDataSource} />\n </>\n );\n}\n\nfunction getSequenceSum(n: number) {\n return (n * (n + 1)) / 2;\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Tag, TagProps } from \"@next-bricks/basic/tag\";\nimport { formatValue } from \"./formatValue\";\n\nconst WrappedTag = wrapBrick<Tag, TagProps>(\"eo-tag\");\n\nexport interface CornerDataItem {\n label: string;\n value: string | number;\n color?: string;\n}\n\nexport interface CornerIndicatorProps {\n cornerDataSource?: CornerDataItem[];\n}\n\nexport function CornerIndicator({ cornerDataSource }: CornerIndicatorProps) {\n return (\n <div className=\"corner\">\n {cornerDataSource?.map((item, index) => (\n <div key={index} className=\"corner-item\">\n <div className=\"corner-label\">{item.label}</div>\n <WrappedTag\n className=\"corner-value\"\n outline\n color={item.color}\n tagStyle={{\n fontSize: 18,\n padding: \"2px 16px\",\n }}\n >\n {formatValue(item.value)}\n </WrappedTag>\n </div>\n ))}\n </div>\n );\n}\n","const numberFormatter = new Intl.NumberFormat(\"zh-CN\", {\n useGrouping: true,\n});\n\nexport function formatValue(value: string | number): string {\n return isMeaningfulNumber(value) ? numberFormatter.format(+value) : value;\n}\n\n/**\n * 判断一个值是否是有意义的数字,包括数字和可以转换为数字的字符串。\n *\n * 但不包括 NaN、Infinity、-Infinity 等。\n *\n * Ref https://github.com/jonschlinkert/is-number/blob/master/index.js\n */\nexport function isMeaningfulNumber(value: unknown): value is number | string {\n if (typeof value === \"number\") {\n return value - value === 0;\n }\n if (typeof value === \"string\" && value.trim() !== \"\") {\n return /* istanbul ignore next */ (Number.isFinite ?? isFinite)(+value);\n }\n return false;\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 让中心数据值不要超过球体范围,但缩放值最低不小于 0.3\n */\nexport function useCenterScale(maxWidth: number) {\n const [centerScale, setCenterScale] = useState<number | null>(null);\n const centerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const centerValueElement = centerRef.current;\n if (!centerValueElement) {\n return;\n }\n const observer = new ResizeObserver(() => {\n const width = centerValueElement.clientWidth;\n setCenterScale(Math.min(1, Math.max(0.3, maxWidth / width)));\n });\n observer.observe(centerValueElement);\n return () => observer.disconnect();\n }, [maxWidth]);\n\n return [centerScale, centerRef] as const;\n}\n","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ALiBaBaPuHuiTi.ttf\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:ALiBaBaPuHuiTi;src:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./assets/base.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./assets/globe.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../crystal-ball-indicator/assets/green-dot.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host,\n.center{display:flex;align-items:center;justify-content:center}:host{height:100%;color:#fff}:host([hidden]){display:none}*{box-sizing:border-box}.container{width:928px;height:534px;position:relative;transform-origin:center;transform:scale(var(--scale));--scale:1}.base,\n.center,\n.globe,\n.satellite-ring,\n.ring,\n.ring-labels{position:absolute;left:50%;transform:translate(-50%,0)}.base{width:1312px;height:575px;bottom:0;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-repeat:no-repeat;background-position:center bottom -173px;background-size:100%}.globe,\n.center{width:272px;height:272px;bottom:228px}.globe{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___});background-repeat:no-repeat;background-size:100%;background-position:center}.satellite-ring,\n.ring{top:0}.particles{mix-blend-mode:screen;position:absolute;bottom:204px;left:50%;transform:translate(-50%,0)}.ring-labels{top:0;width:928px}.ring-label-container{position:absolute;padding:0 35px;margin-top:-14px;width:max-content}.ring-icon{position:absolute;width:36px;height:36px;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___});background-repeat:no-repeat;background-size:100%;background-position:0 0;top:-4px}.odd{transform:translate(-100%,0);text-align:right}.odd .ring-icon{right:-18px}.even .ring-icon{left:-18px}.ring-label{color:rgba(200,226,255,0.8);font-size:18px}.ring-value{font-family:ALiBaBaPuHuiTi;font-size:28px;text-shadow:0px 4px 7px #514af7}.center{flex-direction:column;text-align:center;text-shadow:0px 2px 4px rgba(0,0,0,0.5)}.center-label:empty,\n.center-value:empty{display:none}.center-label{font-size:24px;font-weight:600;line-height:33px}.center-value{font-family:ALiBaBaPuHuiTi;font-weight:bold;font-size:60px;line-height:82px}.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px}.corner-value{display:block;margin-left:19px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px;color:rgba(255,255,255,0.85)}.corner-value{display:block;margin-left:19px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;"],"names":["RotatingArc","_ref","cx","cy","rx","ry","path","setPath","useState","defId","useMemo","uniqueId","useEffect","start","timer","requestAnimationFrame","step","timestamp","undefined","startAngle","Math","PI","endAngle","x1","cos","y1","sin","x2","y2","cancelAnimationFrame","React","id","gradientTransform","gradientUnits","offset","stopColor","d","strokeWidth","stroke","fill","SatelliteRing","className","width","height","viewBox","stopOpacity","transform","opacity","attributeName","type","from","to","dur","repeatCount","defineElement","property","createDecorators","_GlobeWithHaloIndicat","_A","WeakMap","_B","_C","_D","GlobeWithHaloIndicator","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_dataSource","_init_extra_dataSource","_init_centerDataSource","_init_extra_centerDataSource","_init_cornerDataSource","_init_extra_cornerDataSource","_init_maxScale","_init_extra_maxScale","dataSource","_classPrivateFieldGet","v","_classPrivateFieldSet","centerDataSource","cornerDataSource","maxScale","render","GlobeWithHaloIndicatorComponent","root","this","scale","useContainerScale","centerValueScale","centerValueRef","useCenterScale","labels","_dataSource$slice","clampedData","slice","length","even","m","ceil","fractions","getSequenceSum","arc","x","y","r","angle","lineAngle","index","result","item","n","lineBaseDiameter","push","oddX","oddX2","oddAngle","oddLineAngle","oddY","oddR","oddY2","style","visibility","values","keyTimes","map","label","key","strokeDasharray","autoPlay","muted","loop","playsInline","src","particlesWebm","left","top","formatValue","value","ref","CornerIndicator","_GlobeWithHaloIndicator","e","c","_initClass","_applyDecs","styleTexts","styleText","cornerStyleText","attribute","Number","WrappedTag","wrapBrick","outline","color","tagStyle","fontSize","padding","numberFormatter","Intl","NumberFormat","useGrouping","trim","_Number$isFinite","isFinite","isMeaningfulNumber","format","maxWidth","centerScale","setCenterScale","centerRef","useRef","centerValueElement","current","observer","ResizeObserver","clientWidth","min","max","observe","disconnect","baseWidth","baseHeight","disabled","setScale","entries","entry","target","contentRect","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","toString","exports","url","options","String","__esModule","default","test","hash","needQuotes","concat","replace","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","i","modulesToDom","list","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","needLayer","btoa","unescape","encodeURIComponent","JSON","stringify","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/globe-with-halo-indicator.432f9fca.js","mappings":"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","sources":["webpack:///./src/globe-with-halo-indicator/RotatingArc.tsx","webpack:///./src/globe-with-halo-indicator/SatelliteRing.tsx","webpack:///./src/globe-with-halo-indicator/index.tsx","webpack:///./src/shared/CornerIndicator.tsx","webpack:///./src/shared/formatValue.ts","webpack:///./src/shared/useCenterScale.ts","webpack:///./src/shared/useContainerScale.ts","webpack:///./src/fonts/ALiBaBaPuHuiTi.css","webpack:///./src/globe-with-halo-indicator/styles.shadow.css","webpack:///./src/shared/CornerIndicator.shadow.css","webpack:///../../node_modules/css-loader/dist/runtime/getUrl.js","webpack:///./src/fonts/ALiBaBaPuHuiTi.css?7885","webpack:///../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack:///../../node_modules/style-loader/dist/runtime/insertBySelector.js","webpack:///../../node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack:///../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack:///../../node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack:///../../node_modules/style-loader/dist/runtime/styleTagTransform.js"],"sourcesContent":["import { uniqueId } from \"lodash\";\nimport React, { useEffect, useMemo, useState } from \"react\";\n\nexport interface RotatingArcProps {\n cx: number;\n cy: number;\n rx: number;\n ry: number;\n}\n\nexport function RotatingArc({ cx, cy, rx, ry }: RotatingArcProps) {\n const durationPerCircle = 2.6;\n const [path, setPath] = useState(\"M 0 0\");\n const defId = useMemo(() => uniqueId(\"rotating-arc-\"), []);\n\n useEffect(() => {\n let start: number;\n let timer: number;\n\n function step(timestamp: number) {\n if (start === undefined) {\n start = timestamp;\n }\n const elapsed = timestamp - start;\n\n const startAngle =\n -(elapsed / 1000 / durationPerCircle) * Math.PI * 2 + Math.PI * 1.1;\n // A bit more than a quarter circle\n const endAngle = startAngle - Math.PI * 0.6;\n const x1 = cx + rx * Math.cos(startAngle);\n const y1 = cy + ry * Math.sin(startAngle);\n const x2 = cx + rx * Math.cos(endAngle);\n const y2 = cy + ry * Math.sin(endAngle);\n setPath(`M ${x1} ${y1} A ${rx} ${ry} 0 0 0 ${x2} ${y2}`);\n timer = requestAnimationFrame(step);\n }\n\n timer = requestAnimationFrame(step);\n\n return () => {\n cancelAnimationFrame(timer);\n };\n }, [cx, cy, rx, ry]);\n\n return (\n <>\n <defs>\n <linearGradient\n id={defId}\n gradientTransform=\"rotate(48)\"\n x1=\"0\"\n y1=\"0\"\n x2=\"830px\"\n y2=\"183px\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0%\" stopColor=\"rgba(132, 253, 253, 0)\" />\n <stop offset=\"25%\" stopColor=\"rgba(132, 253, 253, 1)\" />\n <stop offset=\"50%\" stopColor=\"rgba(132, 253, 253, 1)\" />\n <stop offset=\"75%\" stopColor=\"rgba(248, 255, 255, 1)\" />\n </linearGradient>\n </defs>\n <path\n d={path}\n // d=\"M 0.6 89.5 A 412.4 88.9 0 0 0 825.4 88.9\"\n strokeWidth={4}\n stroke={`url(#${defId})`}\n fill=\"none\"\n />\n </>\n );\n}\n","import React from \"react\";\n\nexport function SatelliteRing() {\n return (\n <svg\n className=\"satellite-ring\"\n width=\"928px\"\n height=\"534px\"\n viewBox=\"0 0 928 534\"\n >\n <defs>\n <linearGradient\n x1=\"50%\"\n y1=\"14.8555832%\"\n x2=\"50%\"\n y2=\"100%\"\n id=\"linearGradient-1\"\n >\n <stop stopColor=\"#00E8FF\" stopOpacity=\"0\" offset=\"0%\"></stop>\n <stop stopColor=\"#00CCFF\" offset=\"100%\"></stop>\n </linearGradient>\n <linearGradient\n x1=\"50%\"\n y1=\"14.8555832%\"\n x2=\"50%\"\n y2=\"100%\"\n id=\"linearGradient-2\"\n >\n <stop stopColor=\"#00CCFF\" offset=\"0%\"></stop>\n <stop stopColor=\"#00E8FF\" stopOpacity=\"0\" offset=\"100%\"></stop>\n </linearGradient>\n </defs>\n <g transform=\"translate(51 304)\" stroke=\"1\" fill=\"none\" opacity={0.5}>\n <ellipse\n cx=\"413\"\n cy=\"-136\"\n rx=\"164\"\n ry=\"94.5\"\n stroke=\"url(#linearGradient-1)\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 413 -136\"\n to=\"360 413 -136\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n </ellipse>\n <ellipse\n cx=\"413\"\n cy=\"-136\"\n rx=\"164\"\n ry=\"94.5\"\n stroke=\"url(#linearGradient-2)\"\n >\n <animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"210 413 -136\"\n to=\"-150 413 -136\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n </ellipse>\n </g>\n </svg>\n );\n}\n","import React, { useMemo } from \"react\";\nimport { createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\nimport { formatValue } from \"../shared/formatValue\";\nimport { CornerIndicator } from \"../shared/CornerIndicator\";\nimport { RotatingArc } from \"./RotatingArc\";\nimport { SatelliteRing } from \"./SatelliteRing\";\nimport { useContainerScale } from \"../shared/useContainerScale\";\nimport { useCenterScale } from \"../shared/useCenterScale\";\nimport particlesWebm from \"./assets/particles.webm\";\nimport \"../fonts/ALiBaBaPuHuiTi.css\";\nimport styleText from \"./styles.shadow.css\";\nimport cornerStyleText from \"../shared/CornerIndicator.shadow.css\";\n\nconst { defineElement, property } = createDecorators();\n\nexport interface GlobeWithHaloIndicatorProps {\n dataSource?: DataItem[];\n centerDataSource?: DataItem;\n cornerDataSource?: CornerDataItem[];\n maxScale?: number;\n}\n\nexport interface DataItem {\n label: string;\n value: string | number;\n}\n\nexport interface CornerDataItem extends DataItem {\n color?: string;\n}\n\ninterface DataItemWithPosition extends DataItem {\n x: number;\n y: number;\n d: string;\n x2: number;\n y2: number;\n}\n\n/**\n * 地球加光环的数据展示构件。\n */\nexport\n@defineElement(\"data-view.globe-with-halo-indicator\", {\n styleTexts: [styleText, cornerStyleText],\n})\nclass GlobeWithHaloIndicator\n extends ReactNextElement\n implements GlobeWithHaloIndicatorProps\n{\n /**\n * 指标数据列表(显示在环上)\n *\n * 注意:最多显示8项数据\n */\n @property({ attribute: false })\n accessor dataSource: DataItem[] | undefined;\n\n /** 中心数据(显示在中心地球内) */\n @property({ attribute: false })\n accessor centerDataSource: DataItem | undefined;\n\n /**\n * 左上角指标数据列表\n */\n @property({ attribute: false })\n accessor cornerDataSource: CornerDataItem[] | undefined;\n\n /**\n * 最大缩放比例\n *\n * @default 1\n */\n @property({ type: Number })\n accessor maxScale: number | undefined;\n\n render() {\n return (\n <GlobeWithHaloIndicatorComponent\n root={this}\n dataSource={this.dataSource}\n centerDataSource={this.centerDataSource}\n cornerDataSource={this.cornerDataSource}\n maxScale={this.maxScale}\n />\n );\n }\n}\n\nexport interface GlobeWithHaloIndicatorComponentProps\n extends GlobeWithHaloIndicatorProps {\n root: GlobeWithHaloIndicator;\n}\n\nexport function GlobeWithHaloIndicatorComponent({\n root,\n dataSource,\n centerDataSource,\n cornerDataSource,\n maxScale,\n}: GlobeWithHaloIndicatorComponentProps) {\n const scale = useContainerScale({ width: 900, height: 575, root, maxScale });\n const [centerValueScale, centerValueRef] = useCenterScale(260);\n\n // 计算环上标签的位置\n // 1. 将数据分为两组,分别在环的两侧\n // 2. 索引(从 0 开始)为偶数的数据在右侧,索引为奇数的数据在左侧\n // 3. 总数为偶数时,两侧数据对称,每组数据按照角度均匀分布\n // 4. 总数为奇数时,右侧数据比左侧数据多一个,右侧数据按照等差数列间隔分布,\n // 左侧第 N 个数据的角度为右侧第 N 个和第 N + 1 个数据的角度的中分角\n const labels = useMemo(() => {\n const clampedData = dataSource?.slice(0, 8) ?? [];\n if (clampedData.length === 0) {\n return [];\n }\n\n const rx = 292.4;\n const ry = 59.4;\n const cx = 413;\n const cy = 65.5;\n const lineBaseDiameter = 340;\n\n const even = clampedData.length % 2 === 0;\n const m = Math.ceil(clampedData.length / 2) + 1;\n const fractions = getSequenceSum(m);\n const startAngle = -Math.PI / 3;\n const endAngle = Math.PI / 4;\n const arc = (endAngle - startAngle) / fractions;\n\n let index = 0;\n let x: number;\n let y: number;\n let x2: number;\n let y2: number;\n let r: number;\n let angle: number;\n let lineAngle: number;\n const result: DataItemWithPosition[] = [];\n while (index < clampedData.length) {\n const item = clampedData[index];\n if (index % 2 === 0) {\n const n = index / 2 + 1;\n angle = startAngle + arc * getSequenceSum(n);\n lineAngle = (Math.PI / 3) * (2 - n / m);\n r =\n lineBaseDiameter -\n (m > 2 ? ((lineBaseDiameter / 2) * index) / 2 / (m - 2) : 0);\n x = cx + rx * Math.cos(angle);\n y = cy + ry * Math.sin(angle);\n x2 = x + Math.cos(lineAngle) * r;\n y2 = y - Math.sin(lineAngle) * r;\n const d = `M ${x} ${y} A ${r} ${r} 0 0 0 ${x2} ${y2}`;\n result.push({ ...item, x, y, x2, y2, d });\n } else if (even) {\n const oddX = cx * 2 - x;\n const oddX2 = cx * 2 - x2;\n result.push({\n ...item,\n x: oddX,\n y,\n x2: oddX2,\n y2: y2,\n d: `M ${oddX} ${y} A ${r} ${r} 0 0 1 ${oddX2} ${y2}`,\n });\n } else {\n const oddAngle = Math.PI - (angle + (arc * (index + 1)) / 2);\n const oddLineAngle = Math.PI - lineAngle;\n const oddX = cx + rx * Math.cos(oddAngle);\n const oddY = cy + ry * Math.sin(oddAngle);\n // Assert: m > 2 here\n const oddR = r - lineBaseDiameter / 4 / (m - 2);\n const oddX2 = oddX + Math.cos(oddLineAngle) * oddR;\n const oddY2 = oddY - Math.sin(oddLineAngle) * oddR;\n result.push({\n ...item,\n x: oddX,\n y: oddY,\n x2: oddX2,\n y2: oddY2,\n d: `M ${oddX} ${oddY} A ${oddR} ${oddR} 0 0 1 ${oddX2} ${oddY2}`,\n });\n }\n index++;\n }\n return result;\n }, [dataSource]);\n\n return (\n <>\n <div\n className=\"container\"\n style={\n {\n visibility: scale === null ? \"hidden\" : \"visible\",\n \"--scale\": scale,\n } as React.CSSProperties & {\n \"--scale\": number;\n }\n }\n >\n <div className=\"base\"></div>\n <svg className=\"ring\" width={928} height={534} viewBox=\"0 0 928 534\">\n <g transform=\"translate(51 304)\">\n <ellipse\n cx=\"413\"\n cy=\"89.5\"\n rx=\"412.4\"\n ry=\"88.9\"\n fill=\"none\"\n stroke=\"rgba(123,212,235,255)\"\n strokeWidth=\"1.2\"\n >\n <animate\n attributeName=\"rx\"\n values=\"412.4;0\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"ry\"\n values=\"88.9;0\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"cy\"\n values=\"89.5;10\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n <animate\n attributeName=\"stroke\"\n values=\"rgba(123,212,235,255);rgba(123,212,235,255);rgba(123,212,235,25)\"\n keyTimes=\"0;0.53846;1\"\n dur=\"2.6s\"\n repeatCount=\"indefinite\"\n />\n </ellipse>\n <RotatingArc cx={413} cy={89.5} rx={412.4} ry={88.9} />\n {labels.map((label, index) => (\n <path\n key={index}\n d={label.d}\n fill=\"none\"\n stroke=\"#3889B6\"\n strokeWidth={2}\n strokeDasharray=\"6 4\"\n ></path>\n ))}\n </g>\n </svg>\n\n <div className=\"globe\"></div>\n\n <SatelliteRing />\n\n <video\n className=\"particles\"\n width={197}\n height={246}\n autoPlay\n muted\n loop\n playsInline\n >\n <source src={particlesWebm} type=\"video/webm\" />\n </video>\n\n <div className=\"ring-labels\">\n {labels.map((item, index) => (\n <div\n key={index}\n className={`ring-label-container ${index % 2 === 0 ? \"even\" : \"odd\"}`}\n style={{\n left: item.x2 + 51,\n top: item.y2 + 304,\n }}\n >\n <div className=\"ring-icon\"></div>\n <div className=\"ring-label\">{item.label}</div>\n <div className=\"ring-value\">{formatValue(item.value)}</div>\n </div>\n ))}\n </div>\n\n <div className=\"center\">\n <div className=\"center-label\">{centerDataSource?.label}</div>\n <div\n className=\"center-value\"\n ref={centerValueRef}\n style={{\n visibility: centerValueScale === null ? \"hidden\" : \"visible\",\n transform: `scale(${centerValueScale ?? 1})`,\n }}\n >\n {formatValue(centerDataSource?.value)}\n </div>\n </div>\n </div>\n <CornerIndicator cornerDataSource={cornerDataSource} />\n </>\n );\n}\n\nfunction getSequenceSum(n: number) {\n return (n * (n + 1)) / 2;\n}\n","import React from \"react\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport type { Tag, TagProps } from \"@next-bricks/basic/tag\";\nimport { formatValue } from \"./formatValue\";\n\nconst WrappedTag = wrapBrick<Tag, TagProps>(\"eo-tag\");\n\nexport interface CornerDataItem {\n label: string;\n value: string | number;\n color?: string;\n}\n\nexport interface CornerIndicatorProps {\n cornerDataSource?: CornerDataItem[];\n}\n\nexport function CornerIndicator({ cornerDataSource }: CornerIndicatorProps) {\n return (\n <div className=\"corner\">\n {cornerDataSource?.map((item, index) => (\n <div key={index} className=\"corner-item\">\n <div className=\"corner-label\">{item.label}</div>\n <WrappedTag\n className=\"corner-value\"\n outline\n color={item.color}\n tagStyle={{\n fontSize: 18,\n padding: \"2px 16px\",\n }}\n >\n {formatValue(item.value)}\n </WrappedTag>\n </div>\n ))}\n </div>\n );\n}\n","const numberFormatter = new Intl.NumberFormat(\"zh-CN\", {\n useGrouping: true,\n});\n\nexport function formatValue(value: string | number): string {\n return isMeaningfulNumber(value) ? numberFormatter.format(+value) : value;\n}\n\n/**\n * 判断一个值是否是有意义的数字,包括数字和可以转换为数字的字符串。\n *\n * 但不包括 NaN、Infinity、-Infinity 等。\n *\n * Ref https://github.com/jonschlinkert/is-number/blob/master/index.js\n */\nexport function isMeaningfulNumber(value: unknown): value is number | string {\n if (typeof value === \"number\") {\n return value - value === 0;\n }\n if (typeof value === \"string\" && value.trim() !== \"\") {\n return /* istanbul ignore next */ (Number.isFinite ?? isFinite)(+value);\n }\n return false;\n}\n","import { useEffect, useRef, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 让中心数据值不要超过球体范围,但缩放值最低不小于 0.3\n */\nexport function useCenterScale(maxWidth: number) {\n const [centerScale, setCenterScale] = useState<number | null>(null);\n const centerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const centerValueElement = centerRef.current;\n if (!centerValueElement) {\n return;\n }\n const observer = new ResizeObserver(() => {\n const width = centerValueElement.clientWidth;\n setCenterScale(Math.min(1, Math.max(0.3, maxWidth / width)));\n });\n observer.observe(centerValueElement);\n return () => observer.disconnect();\n }, [maxWidth]);\n\n return [centerScale, centerRef] as const;\n}\n","import { useEffect, useState } from \"react\";\nimport ResizeObserver from \"resize-observer-polyfill\";\n\n/**\n * 根据容器尺寸进行缩放\n */\nexport function useContainerScale({\n width: baseWidth,\n height: baseHeight,\n root,\n maxScale,\n disabled,\n}: {\n width: number;\n height: number;\n root: HTMLElement;\n /** 最大缩放比例,默认为 1 */\n maxScale?: number;\n disabled?: boolean;\n}): number | null {\n const [scale, setScale] = useState<number | null>(null);\n\n useEffect(() => {\n if (disabled) {\n setScale(null);\n return;\n }\n // 当容器宽高低于预设值时,图形会自动缩小\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n if (entry.target === root) {\n const { width, height } = entry.contentRect;\n setScale(\n Math.min(maxScale ?? 1, width / baseWidth, height / baseHeight)\n );\n }\n }\n });\n observer.observe(root);\n return () => observer.disconnect();\n }, [baseHeight, baseWidth, disabled, maxScale, root]);\n\n return scale;\n}\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./ALiBaBaPuHuiTi.ttf\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@font-face{font-family:ALiBaBaPuHuiTi;src:url(${___CSS_LOADER_URL_REPLACEMENT_0___})}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./assets/base.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./assets/globe.png\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"../crystal-ball-indicator/assets/green-dot.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host,\n.center{display:flex;align-items:center;justify-content:center}:host{height:100%;color:#fff}:host([hidden]){display:none}*{box-sizing:border-box}.container{width:928px;height:534px;position:relative;transform-origin:center;transform:scale(var(--scale));--scale:1}.base,\n.center,\n.globe,\n.satellite-ring,\n.ring,\n.ring-labels{position:absolute;left:50%;transform:translate(-50%,0)}.base{width:1312px;height:575px;bottom:0;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-repeat:no-repeat;background-position:center bottom -173px;background-size:100%}.globe,\n.center{width:272px;height:272px;bottom:228px}.globe{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_1___});background-repeat:no-repeat;background-size:100%;background-position:center}.satellite-ring,\n.ring{top:0}.particles{mix-blend-mode:screen;position:absolute;bottom:204px;left:50%;transform:translate(-50%,0)}.ring-labels{top:0;width:928px}.ring-label-container{position:absolute;padding:0 35px;margin-top:-14px;width:max-content}.ring-icon{position:absolute;width:36px;height:36px;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_2___});background-repeat:no-repeat;background-size:100%;background-position:0 0;top:-4px}.odd{transform:translate(-100%,0);text-align:right}.odd .ring-icon{right:-18px}.even .ring-icon{left:-18px}.ring-label{color:rgba(200,226,255,0.8);font-size:18px}.ring-value{font-family:ALiBaBaPuHuiTi;font-size:28px;text-shadow:0px 4px 7px #514af7}.center{flex-direction:column;text-align:center;text-shadow:0px 2px 4px rgba(0,0,0,0.5)}.center-label:empty,\n.center-value:empty{display:none}.center-label{font-size:24px;font-weight:600;line-height:33px}.center-value{font-family:ALiBaBaPuHuiTi;font-weight:bold;font-size:60px;line-height:82px}.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px}.corner-value{display:block;margin-left:19px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.corner{position:absolute;top:13px;left:31px;font-size:18px}.corner-item{display:flex;margin-bottom:15px}.corner-label{font-weight:500;line-height:25px;color:rgba(255,255,255,0.85)}.corner-value{display:block;margin-left:19px}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./ALiBaBaPuHuiTi.css\";\n export default content && content.locals ? content.locals : undefined;\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;"],"names":["RotatingArc","_ref","cx","cy","rx","ry","path","setPath","useState","defId","useMemo","uniqueId","useEffect","start","timer","requestAnimationFrame","step","timestamp","undefined","startAngle","Math","PI","endAngle","x1","cos","y1","sin","x2","y2","cancelAnimationFrame","React","id","gradientTransform","gradientUnits","offset","stopColor","d","strokeWidth","stroke","fill","SatelliteRing","className","width","height","viewBox","stopOpacity","transform","opacity","attributeName","type","from","to","dur","repeatCount","defineElement","property","createDecorators","_GlobeWithHaloIndicat","_A","WeakMap","_B","_C","_D","GlobeWithHaloIndicator","ReactNextElement","constructor","arguments","_classPrivateFieldInitSpec","_init_dataSource","_init_extra_dataSource","_init_centerDataSource","_init_extra_centerDataSource","_init_cornerDataSource","_init_extra_cornerDataSource","_init_maxScale","_init_extra_maxScale","dataSource","_classPrivateFieldGet","v","_classPrivateFieldSet","centerDataSource","cornerDataSource","maxScale","render","GlobeWithHaloIndicatorComponent","root","this","scale","useContainerScale","centerValueScale","centerValueRef","useCenterScale","labels","_dataSource$slice","clampedData","slice","length","even","m","ceil","fractions","getSequenceSum","arc","x","y","r","angle","lineAngle","index","result","item","n","lineBaseDiameter","push","oddX","oddX2","oddAngle","oddLineAngle","oddY","oddR","oddY2","style","visibility","values","keyTimes","map","label","key","strokeDasharray","autoPlay","muted","loop","playsInline","src","particlesWebm","left","top","formatValue","value","ref","CornerIndicator","_GlobeWithHaloIndicator","e","c","_initClass","_applyDecs","styleTexts","styleText","cornerStyleText","attribute","Number","WrappedTag","wrapBrick","outline","color","tagStyle","fontSize","padding","numberFormatter","Intl","NumberFormat","useGrouping","trim","_Number$isFinite","isFinite","isMeaningfulNumber","format","maxWidth","centerScale","setCenterScale","centerRef","useRef","centerValueElement","current","observer","ResizeObserver","clientWidth","min","max","observe","disconnect","baseWidth","baseHeight","disabled","setScale","entries","entry","target","contentRect","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","toString","exports","url","options","String","__esModule","default","test","hash","needQuotes","concat","replace","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","stylesInDOM","getIndexByIdentifier","identifier","i","modulesToDom","list","idCountMap","identifiers","base","count","indexByIdentifier","obj","css","media","sourceMap","supports","layer","references","updater","addElementStyle","byIndex","splice","api","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","Error","appendChild","element","createElement","attributes","styleElement","nonce","setAttribute","needLayer","btoa","unescape","encodeURIComponent","JSON","stringify","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode"],"sourceRoot":""}
|