@next-bricks/data-view 1.0.4 → 1.0.5

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.
Files changed (321) hide show
  1. package/dist/bricks.json +3 -3
  2. package/dist/chunks/{4049.da5412f1.js → 1024.2069526c.js} +2 -2
  3. package/dist/chunks/{4049.da5412f1.js.map → 1024.2069526c.js.map} +1 -1
  4. package/dist/chunks/1372.600cf129.js +2 -0
  5. package/dist/chunks/{8498.dc88fd37.js.map → 1372.600cf129.js.map} +1 -1
  6. package/dist/chunks/1564.04345f6a.js +2 -0
  7. package/dist/chunks/{2754.94e9d16c.js.map → 1564.04345f6a.js.map} +1 -1
  8. package/dist/chunks/1772.df147c4f.js +2 -0
  9. package/dist/chunks/1772.df147c4f.js.map +1 -0
  10. package/dist/chunks/{2024.9df06f14.js → 1776.4782df7b.js} +2 -2
  11. package/dist/chunks/{2024.9df06f14.js.map → 1776.4782df7b.js.map} +1 -1
  12. package/dist/chunks/1832.aa4c2edc.js +2 -0
  13. package/dist/chunks/1832.aa4c2edc.js.map +1 -0
  14. package/dist/chunks/{8316.573c7eb8.js → 2356.27256308.js} +3 -2
  15. package/dist/chunks/2356.27256308.js.map +1 -0
  16. package/dist/chunks/242.a79b1b2b.js +2 -0
  17. package/dist/chunks/242.a79b1b2b.js.map +1 -0
  18. package/dist/chunks/2496.88cb2704.js +2 -0
  19. package/dist/chunks/{4791.ca13047b.js.map → 2496.88cb2704.js.map} +1 -1
  20. package/dist/chunks/{8691.2053b89c.js → 2976.dd17bba5.js} +2 -2
  21. package/dist/chunks/2976.dd17bba5.js.map +1 -0
  22. package/dist/chunks/3322.42f4288f.js +2 -0
  23. package/dist/chunks/3322.42f4288f.js.map +1 -0
  24. package/dist/chunks/{5725.fa9f4689.js → 3680.0509a50c.js} +2 -2
  25. package/dist/chunks/{5725.fa9f4689.js.map → 3680.0509a50c.js.map} +1 -1
  26. package/dist/chunks/3752.36a2a0a7.js +2 -0
  27. package/dist/chunks/{6653.db9ec15d.js.map → 3752.36a2a0a7.js.map} +1 -1
  28. package/dist/chunks/4016.86b5dfba.js +2 -0
  29. package/dist/chunks/{8442.d3228721.js.map → 4016.86b5dfba.js.map} +1 -1
  30. package/dist/chunks/{6789.fcbbeadb.js → 4384.97c69477.js} +3 -3
  31. package/dist/chunks/4384.97c69477.js.map +1 -0
  32. package/dist/chunks/{4275.f71a1a4b.js → 4524.11d980b7.js} +2 -2
  33. package/dist/chunks/{4275.f71a1a4b.js.map → 4524.11d980b7.js.map} +1 -1
  34. package/dist/chunks/4847.8f5619aa.js +2 -0
  35. package/dist/chunks/4847.8f5619aa.js.map +1 -0
  36. package/dist/chunks/5116.362f98c8.js +2 -0
  37. package/dist/chunks/{5284.eb1f6d39.js.map → 5116.362f98c8.js.map} +1 -1
  38. package/dist/chunks/{3458.de22dec5.js → 5356.ea748940.js} +2 -2
  39. package/dist/chunks/5356.ea748940.js.map +1 -0
  40. package/dist/chunks/{2784.2de87a89.js → 5668.0d0a3eca.js} +3 -2
  41. package/dist/chunks/5668.0d0a3eca.js.map +1 -0
  42. package/dist/chunks/{7672.9b3c477f.js → 6064.bb4e3999.js} +2 -2
  43. package/dist/chunks/{7672.9b3c477f.js.map → 6064.bb4e3999.js.map} +1 -1
  44. package/dist/chunks/6192.ffc31929.js +2 -0
  45. package/dist/chunks/6192.ffc31929.js.map +1 -0
  46. package/dist/chunks/6228.44628af2.js +2 -0
  47. package/dist/chunks/6228.44628af2.js.map +1 -0
  48. package/dist/chunks/6352.750fbc04.js +2 -0
  49. package/dist/chunks/6352.750fbc04.js.map +1 -0
  50. package/dist/chunks/{7110.5273d041.js → 6408.b321ff16.js} +2 -2
  51. package/dist/chunks/6408.b321ff16.js.map +1 -0
  52. package/dist/chunks/6736.b8eaae8e.js +3 -0
  53. package/dist/chunks/{8008.8d750b61.js.map → 6736.b8eaae8e.js.map} +1 -1
  54. package/dist/chunks/6768.3d9b466d.js +2 -0
  55. package/dist/chunks/{4434.c9184946.js.map → 6768.3d9b466d.js.map} +1 -1
  56. package/dist/chunks/6804.757a5d3b.js +2 -0
  57. package/dist/chunks/6804.757a5d3b.js.map +1 -0
  58. package/dist/chunks/7228.18fb5a91.js +2 -0
  59. package/dist/chunks/7228.18fb5a91.js.map +1 -0
  60. package/dist/chunks/7476.a4257e2c.js +2 -0
  61. package/dist/chunks/7476.a4257e2c.js.map +1 -0
  62. package/dist/chunks/7484.135e900d.js +2 -0
  63. package/dist/chunks/{2618.67db3e10.js.map → 7484.135e900d.js.map} +1 -1
  64. package/dist/chunks/7861.ad9a89a5.js +2 -0
  65. package/dist/chunks/{5381.74b3c2ee.js.map → 7861.ad9a89a5.js.map} +1 -1
  66. package/dist/chunks/{6635.f9c26f87.js → 7928.9a2076cd.js} +3 -3
  67. package/dist/chunks/{6635.f9c26f87.js.map → 7928.9a2076cd.js.map} +1 -1
  68. package/dist/chunks/8060.506806dd.js +2 -0
  69. package/dist/chunks/8060.506806dd.js.map +1 -0
  70. package/dist/chunks/820.f0bcfe66.js +2 -0
  71. package/dist/chunks/820.f0bcfe66.js.map +1 -0
  72. package/dist/chunks/8440.72f49df1.js +2 -0
  73. package/dist/chunks/{6205.4df665c6.js.map → 8440.72f49df1.js.map} +1 -1
  74. package/dist/chunks/856.493c9d92.js +2 -0
  75. package/dist/chunks/856.493c9d92.js.map +1 -0
  76. package/dist/chunks/{6473.92b3ecc9.js → 8644.24bc83cf.js} +2 -2
  77. package/dist/chunks/{6473.92b3ecc9.js.map → 8644.24bc83cf.js.map} +1 -1
  78. package/dist/chunks/{4031.e97b00f8.js → 8648.7705750f.js} +2 -2
  79. package/dist/chunks/{4031.e97b00f8.js.map → 8648.7705750f.js.map} +1 -1
  80. package/dist/chunks/872.a26e9d39.js +2 -0
  81. package/dist/chunks/872.a26e9d39.js.map +1 -0
  82. package/dist/chunks/8732.88aa4b9e.js +2 -0
  83. package/dist/chunks/8732.88aa4b9e.js.map +1 -0
  84. package/dist/chunks/8944.9f1e1308.js +2 -0
  85. package/dist/chunks/{4795.20afb9f3.js.map → 8944.9f1e1308.js.map} +1 -1
  86. package/dist/chunks/8964.28787e25.js +2 -0
  87. package/dist/chunks/8964.28787e25.js.map +1 -0
  88. package/dist/chunks/app-wall-card-item.2ef96c65.js +3 -0
  89. package/dist/chunks/app-wall-card-item.2ef96c65.js.map +1 -0
  90. package/dist/chunks/app-wall-relation-line.88c503bd.js +3 -0
  91. package/dist/chunks/app-wall-relation-line.88c503bd.js.map +1 -0
  92. package/dist/chunks/app-wall-system-card.3ca7e831.js +2 -0
  93. package/dist/chunks/app-wall-system-card.3ca7e831.js.map +1 -0
  94. package/dist/chunks/app-wall.5188b5ba.js +2 -0
  95. package/dist/chunks/app-wall.5188b5ba.js.map +1 -0
  96. package/dist/chunks/basic-index-group.e841c865.js +2 -0
  97. package/dist/chunks/basic-index-group.e841c865.js.map +1 -0
  98. package/dist/chunks/battery-chart.fc014be6.js +2 -0
  99. package/dist/chunks/battery-chart.fc014be6.js.map +1 -0
  100. package/dist/chunks/brick-notification.45fa8334.js +2 -0
  101. package/dist/chunks/brick-notification.45fa8334.js.map +1 -0
  102. package/dist/chunks/cabinet-app-layer.05d5d53a.js +3 -0
  103. package/dist/chunks/cabinet-app-layer.05d5d53a.js.map +1 -0
  104. package/dist/chunks/cabinet-button.c4f3828a.js +2 -0
  105. package/dist/chunks/cabinet-button.c4f3828a.js.map +1 -0
  106. package/dist/chunks/cabinet-container.f4f89281.js +3 -0
  107. package/dist/chunks/cabinet-container.f4f89281.js.map +1 -0
  108. package/dist/chunks/cabinet-graph.d8375249.js +2 -0
  109. package/dist/chunks/cabinet-graph.d8375249.js.map +1 -0
  110. package/dist/chunks/cabinet-node.b0de2565.js +3 -0
  111. package/dist/chunks/cabinet-node.b0de2565.js.map +1 -0
  112. package/dist/chunks/cabinet-thumbnail.b41e8360.js +3 -0
  113. package/dist/chunks/cabinet-thumbnail.b41e8360.js.map +1 -0
  114. package/dist/chunks/complex-search.51d1228b.js +2 -0
  115. package/dist/chunks/complex-search.51d1228b.js.map +1 -0
  116. package/dist/chunks/data-display-flipper-fifth.5b918eaf.js +2 -0
  117. package/dist/chunks/data-display-flipper-fifth.5b918eaf.js.map +1 -0
  118. package/dist/chunks/data-display-flipper-sixth.3d29f355.js +2 -0
  119. package/dist/chunks/data-display-flipper-sixth.3d29f355.js.map +1 -0
  120. package/dist/chunks/data-display-flipper.b50b11ce.js +2 -0
  121. package/dist/chunks/data-display-flipper.b50b11ce.js.map +1 -0
  122. package/dist/chunks/dropdown-menu.d84cae7b.js +3 -0
  123. package/dist/chunks/{dropdown-menu.2d1a47b2.js.map → dropdown-menu.d84cae7b.js.map} +1 -1
  124. package/dist/chunks/gauge-chart.3131c650.js +2 -0
  125. package/dist/chunks/gauge-chart.3131c650.js.map +1 -0
  126. package/dist/chunks/gear-background.bd17fec2.js +2 -0
  127. package/dist/chunks/gear-background.bd17fec2.js.map +1 -0
  128. package/dist/chunks/graph-layout-grid.88d85ac2.js +2 -0
  129. package/dist/chunks/graph-layout-grid.88d85ac2.js.map +1 -0
  130. package/dist/chunks/graph-node.5a390db5.js +2 -0
  131. package/dist/chunks/graph-node.5a390db5.js.map +1 -0
  132. package/dist/chunks/graph-text.635b27f8.js +2 -0
  133. package/dist/chunks/graph-text.635b27f8.js.map +1 -0
  134. package/dist/chunks/grid-background.59810008.js +2 -0
  135. package/dist/chunks/grid-background.59810008.js.map +1 -0
  136. package/dist/chunks/hi-tech-button.23c728be.js +2 -0
  137. package/dist/chunks/hi-tech-button.23c728be.js.map +1 -0
  138. package/dist/chunks/indicator-card.c44df938.js +3 -0
  139. package/dist/chunks/indicator-card.c44df938.js.map +1 -0
  140. package/dist/chunks/lights-component-title.1c50a6a2.js +2 -0
  141. package/dist/chunks/lights-component-title.1c50a6a2.js.map +1 -0
  142. package/dist/chunks/loading-panel.3f13565a.js +2 -0
  143. package/dist/chunks/loading-panel.3f13565a.js.map +1 -0
  144. package/dist/chunks/main.dde9f051.js +2 -0
  145. package/dist/chunks/main.dde9f051.js.map +1 -0
  146. package/dist/chunks/modern-style-component-title.d5b6e3a8.js +2 -0
  147. package/dist/chunks/modern-style-component-title.d5b6e3a8.js.map +1 -0
  148. package/dist/chunks/modern-style-page-title.6aca3210.js +2 -0
  149. package/dist/chunks/modern-style-page-title.6aca3210.js.map +1 -0
  150. package/dist/chunks/modern-style-treemap.75d29afd.js +3 -0
  151. package/dist/chunks/modern-style-treemap.75d29afd.js.map +1 -0
  152. package/dist/chunks/particle-animation.eb1a7869.js +2 -0
  153. package/dist/chunks/particle-animation.eb1a7869.js.map +1 -0
  154. package/dist/chunks/radar-chart.75c23577.js +2 -0
  155. package/dist/chunks/radar-chart.75c23577.js.map +1 -0
  156. package/dist/chunks/simple-card-item.9ba6f0f0.js +3 -0
  157. package/dist/chunks/simple-card-item.9ba6f0f0.js.map +1 -0
  158. package/dist/chunks/tabs-drawer.371e2508.js +3 -0
  159. package/dist/chunks/tabs-drawer.371e2508.js.map +1 -0
  160. package/dist/chunks/tabs-page-title.cbf96601.js +3 -0
  161. package/dist/chunks/tabs-page-title.cbf96601.js.map +1 -0
  162. package/dist/chunks/tech-mesh-base-view.e989eb87.js +2 -0
  163. package/dist/chunks/tech-mesh-base-view.e989eb87.js.map +1 -0
  164. package/dist/chunks/title-text.3211f0be.js +2 -0
  165. package/dist/chunks/title-text.3211f0be.js.map +1 -0
  166. package/dist/chunks/top-title-bar.4cb04e03.js +2 -0
  167. package/dist/chunks/top-title-bar.4cb04e03.js.map +1 -0
  168. package/dist/examples.json +6 -6
  169. package/dist/index.553f5a93.js +2 -0
  170. package/dist/index.553f5a93.js.map +1 -0
  171. package/dist/manifest.json +81 -81
  172. package/dist/types.json +50 -50
  173. package/package.json +4 -4
  174. package/dist/chunks/1303.4b2cb3e6.js +0 -2
  175. package/dist/chunks/1303.4b2cb3e6.js.map +0 -1
  176. package/dist/chunks/1646.517af976.js +0 -2
  177. package/dist/chunks/1646.517af976.js.map +0 -1
  178. package/dist/chunks/1874.fd357791.js +0 -2
  179. package/dist/chunks/1874.fd357791.js.map +0 -1
  180. package/dist/chunks/2108.f9916186.js +0 -2
  181. package/dist/chunks/2108.f9916186.js.map +0 -1
  182. package/dist/chunks/238.796cdcb3.js +0 -2
  183. package/dist/chunks/238.796cdcb3.js.map +0 -1
  184. package/dist/chunks/2618.67db3e10.js +0 -2
  185. package/dist/chunks/2754.94e9d16c.js +0 -2
  186. package/dist/chunks/3458.de22dec5.js.map +0 -1
  187. package/dist/chunks/4434.c9184946.js +0 -2
  188. package/dist/chunks/4504.97e29ebd.js +0 -2
  189. package/dist/chunks/4504.97e29ebd.js.map +0 -1
  190. package/dist/chunks/4791.ca13047b.js +0 -2
  191. package/dist/chunks/4795.20afb9f3.js +0 -2
  192. package/dist/chunks/5151.0e3d7d9c.js +0 -2
  193. package/dist/chunks/5151.0e3d7d9c.js.map +0 -1
  194. package/dist/chunks/5284.eb1f6d39.js +0 -2
  195. package/dist/chunks/5381.74b3c2ee.js +0 -2
  196. package/dist/chunks/5628.b7434edc.js +0 -2
  197. package/dist/chunks/5628.b7434edc.js.map +0 -1
  198. package/dist/chunks/5636.32ba3a79.js +0 -2
  199. package/dist/chunks/5636.32ba3a79.js.map +0 -1
  200. package/dist/chunks/6205.4df665c6.js +0 -2
  201. package/dist/chunks/6653.db9ec15d.js +0 -2
  202. package/dist/chunks/6660.80b2c6e9.js +0 -2
  203. package/dist/chunks/6660.80b2c6e9.js.map +0 -1
  204. package/dist/chunks/6789.fcbbeadb.js.map +0 -1
  205. package/dist/chunks/7067.8447e660.js +0 -2
  206. package/dist/chunks/7067.8447e660.js.map +0 -1
  207. package/dist/chunks/7110.5273d041.js.map +0 -1
  208. package/dist/chunks/7164.c3dd6ec5.js +0 -2
  209. package/dist/chunks/7164.c3dd6ec5.js.map +0 -1
  210. package/dist/chunks/7746.928ad406.js +0 -2
  211. package/dist/chunks/7746.928ad406.js.map +0 -1
  212. package/dist/chunks/7915.0bf6d068.js +0 -2
  213. package/dist/chunks/7915.0bf6d068.js.map +0 -1
  214. package/dist/chunks/8008.8d750b61.js +0 -3
  215. package/dist/chunks/8442.d3228721.js +0 -2
  216. package/dist/chunks/8498.dc88fd37.js +0 -2
  217. package/dist/chunks/8691.2053b89c.js.map +0 -1
  218. package/dist/chunks/9431.5aae51fd.js +0 -2
  219. package/dist/chunks/9431.5aae51fd.js.map +0 -1
  220. package/dist/chunks/9549.3fda6a89.js +0 -2
  221. package/dist/chunks/9549.3fda6a89.js.map +0 -1
  222. package/dist/chunks/9809.98eccfbe.js +0 -2
  223. package/dist/chunks/9809.98eccfbe.js.map +0 -1
  224. package/dist/chunks/app-wall-card-item.126dab6a.js +0 -3
  225. package/dist/chunks/app-wall-card-item.126dab6a.js.map +0 -1
  226. package/dist/chunks/app-wall-relation-line.71415af4.js +0 -3
  227. package/dist/chunks/app-wall-relation-line.71415af4.js.map +0 -1
  228. package/dist/chunks/app-wall-system-card.147ec325.js +0 -2
  229. package/dist/chunks/app-wall-system-card.147ec325.js.map +0 -1
  230. package/dist/chunks/app-wall.d37de233.js +0 -2
  231. package/dist/chunks/app-wall.d37de233.js.map +0 -1
  232. package/dist/chunks/basic-index-group.af2f6c31.js +0 -2
  233. package/dist/chunks/basic-index-group.af2f6c31.js.map +0 -1
  234. package/dist/chunks/battery-chart.773be691.js +0 -2
  235. package/dist/chunks/battery-chart.773be691.js.map +0 -1
  236. package/dist/chunks/brick-notification.050a636c.js +0 -2
  237. package/dist/chunks/brick-notification.050a636c.js.map +0 -1
  238. package/dist/chunks/cabinet-app-layer.272678aa.js +0 -3
  239. package/dist/chunks/cabinet-app-layer.272678aa.js.map +0 -1
  240. package/dist/chunks/cabinet-button.45049552.js +0 -2
  241. package/dist/chunks/cabinet-button.45049552.js.map +0 -1
  242. package/dist/chunks/cabinet-container.386879d3.js +0 -3
  243. package/dist/chunks/cabinet-container.386879d3.js.map +0 -1
  244. package/dist/chunks/cabinet-graph.eaf49015.js +0 -2
  245. package/dist/chunks/cabinet-graph.eaf49015.js.map +0 -1
  246. package/dist/chunks/cabinet-node.4e1febbb.js +0 -3
  247. package/dist/chunks/cabinet-node.4e1febbb.js.map +0 -1
  248. package/dist/chunks/cabinet-thumbnail.f5ecd660.js +0 -3
  249. package/dist/chunks/cabinet-thumbnail.f5ecd660.js.map +0 -1
  250. package/dist/chunks/complex-search.3f45277b.js +0 -2
  251. package/dist/chunks/complex-search.3f45277b.js.map +0 -1
  252. package/dist/chunks/data-display-flipper-fifth.f28b86c8.js +0 -2
  253. package/dist/chunks/data-display-flipper-fifth.f28b86c8.js.map +0 -1
  254. package/dist/chunks/data-display-flipper-sixth.bfd6581f.js +0 -2
  255. package/dist/chunks/data-display-flipper-sixth.bfd6581f.js.map +0 -1
  256. package/dist/chunks/data-display-flipper.1f0e1ce5.js +0 -2
  257. package/dist/chunks/data-display-flipper.1f0e1ce5.js.map +0 -1
  258. package/dist/chunks/dropdown-menu.2d1a47b2.js +0 -3
  259. package/dist/chunks/gauge-chart.be897ec8.js +0 -2
  260. package/dist/chunks/gauge-chart.be897ec8.js.map +0 -1
  261. package/dist/chunks/gear-background.9593bef4.js +0 -2
  262. package/dist/chunks/gear-background.9593bef4.js.map +0 -1
  263. package/dist/chunks/graph-layout-grid.e71405b7.js +0 -2
  264. package/dist/chunks/graph-layout-grid.e71405b7.js.map +0 -1
  265. package/dist/chunks/graph-node.c29f8a56.js +0 -2
  266. package/dist/chunks/graph-node.c29f8a56.js.map +0 -1
  267. package/dist/chunks/graph-text.713c247f.js +0 -2
  268. package/dist/chunks/graph-text.713c247f.js.map +0 -1
  269. package/dist/chunks/grid-background.e7b1442c.js +0 -2
  270. package/dist/chunks/grid-background.e7b1442c.js.map +0 -1
  271. package/dist/chunks/hi-tech-button.6f6c5c2d.js +0 -2
  272. package/dist/chunks/hi-tech-button.6f6c5c2d.js.map +0 -1
  273. package/dist/chunks/indicator-card.2997ff66.js +0 -3
  274. package/dist/chunks/indicator-card.2997ff66.js.map +0 -1
  275. package/dist/chunks/lights-component-title.0d23b4e8.js +0 -2
  276. package/dist/chunks/lights-component-title.0d23b4e8.js.map +0 -1
  277. package/dist/chunks/loading-panel.9da95a65.js +0 -2
  278. package/dist/chunks/loading-panel.9da95a65.js.map +0 -1
  279. package/dist/chunks/main.138a54a5.js +0 -2
  280. package/dist/chunks/main.138a54a5.js.map +0 -1
  281. package/dist/chunks/modern-style-component-title.01480ff4.js +0 -2
  282. package/dist/chunks/modern-style-component-title.01480ff4.js.map +0 -1
  283. package/dist/chunks/modern-style-page-title.90831943.js +0 -2
  284. package/dist/chunks/modern-style-page-title.90831943.js.map +0 -1
  285. package/dist/chunks/modern-style-treemap.92d2c1f9.js +0 -3
  286. package/dist/chunks/modern-style-treemap.92d2c1f9.js.map +0 -1
  287. package/dist/chunks/particle-animation.4bdd895a.js +0 -2
  288. package/dist/chunks/particle-animation.4bdd895a.js.map +0 -1
  289. package/dist/chunks/radar-chart.c2b36f65.js +0 -2
  290. package/dist/chunks/radar-chart.c2b36f65.js.map +0 -1
  291. package/dist/chunks/simple-card-item.4ed15d44.js +0 -3
  292. package/dist/chunks/simple-card-item.4ed15d44.js.map +0 -1
  293. package/dist/chunks/tabs-drawer.ab3c463e.js +0 -3
  294. package/dist/chunks/tabs-drawer.ab3c463e.js.map +0 -1
  295. package/dist/chunks/tabs-page-title.fe1cac33.js +0 -3
  296. package/dist/chunks/tabs-page-title.fe1cac33.js.map +0 -1
  297. package/dist/chunks/tech-mesh-base-view.c9949083.js +0 -2
  298. package/dist/chunks/tech-mesh-base-view.c9949083.js.map +0 -1
  299. package/dist/chunks/title-text.a05bd5ac.js +0 -2
  300. package/dist/chunks/title-text.a05bd5ac.js.map +0 -1
  301. package/dist/chunks/top-title-bar.21aa2d7b.js +0 -2
  302. package/dist/chunks/top-title-bar.21aa2d7b.js.map +0 -1
  303. package/dist/index.ae20e500.js +0 -2
  304. package/dist/index.ae20e500.js.map +0 -1
  305. /package/dist/chunks/{8316.573c7eb8.js.LICENSE.txt → 2356.27256308.js.LICENSE.txt} +0 -0
  306. /package/dist/chunks/{6789.fcbbeadb.js.LICENSE.txt → 4384.97c69477.js.LICENSE.txt} +0 -0
  307. /package/dist/chunks/{2784.2de87a89.js.LICENSE.txt → 5668.0d0a3eca.js.LICENSE.txt} +0 -0
  308. /package/dist/chunks/{8008.8d750b61.js.LICENSE.txt → 6736.b8eaae8e.js.LICENSE.txt} +0 -0
  309. /package/dist/chunks/{6635.f9c26f87.js.LICENSE.txt → 7928.9a2076cd.js.LICENSE.txt} +0 -0
  310. /package/dist/chunks/{app-wall-card-item.126dab6a.js.LICENSE.txt → app-wall-card-item.2ef96c65.js.LICENSE.txt} +0 -0
  311. /package/dist/chunks/{app-wall-relation-line.71415af4.js.LICENSE.txt → app-wall-relation-line.88c503bd.js.LICENSE.txt} +0 -0
  312. /package/dist/chunks/{cabinet-app-layer.272678aa.js.LICENSE.txt → cabinet-app-layer.05d5d53a.js.LICENSE.txt} +0 -0
  313. /package/dist/chunks/{cabinet-container.386879d3.js.LICENSE.txt → cabinet-container.f4f89281.js.LICENSE.txt} +0 -0
  314. /package/dist/chunks/{cabinet-node.4e1febbb.js.LICENSE.txt → cabinet-node.b0de2565.js.LICENSE.txt} +0 -0
  315. /package/dist/chunks/{cabinet-thumbnail.f5ecd660.js.LICENSE.txt → cabinet-thumbnail.b41e8360.js.LICENSE.txt} +0 -0
  316. /package/dist/chunks/{dropdown-menu.2d1a47b2.js.LICENSE.txt → dropdown-menu.d84cae7b.js.LICENSE.txt} +0 -0
  317. /package/dist/chunks/{indicator-card.2997ff66.js.LICENSE.txt → indicator-card.c44df938.js.LICENSE.txt} +0 -0
  318. /package/dist/chunks/{modern-style-treemap.92d2c1f9.js.LICENSE.txt → modern-style-treemap.75d29afd.js.LICENSE.txt} +0 -0
  319. /package/dist/chunks/{simple-card-item.4ed15d44.js.LICENSE.txt → simple-card-item.9ba6f0f0.js.LICENSE.txt} +0 -0
  320. /package/dist/chunks/{tabs-drawer.ab3c463e.js.LICENSE.txt → tabs-drawer.371e2508.js.LICENSE.txt} +0 -0
  321. /package/dist/chunks/{tabs-page-title.fe1cac33.js.LICENSE.txt → tabs-page-title.cbf96601.js.LICENSE.txt} +0 -0
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunk_next_bricks_data_view=self.webpackChunk_next_bricks_data_view||[]).push([[6768],{7600:(t,e,a)=>{a.d(e,{G:()=>P});var i=a(640),r=a(5600),l=a.n(r),n=a(7568),o=["#5B8FF9","#5AD8A6","#5D7092","#F6BD16","#E86452","#6DC8EC","#945FB9","#FF9845","#1E9493","#FF99C3"],s={dataFill:{fillStyle:"rgba(76,132,250,0.67)"},dataCircle:{r:2,strokeStyle:"#ccc",fillStyle:"#fff",lineWidth:.5},dataLine:{strokeStyle:"#0B2EE7",lineWidth:5}},d={n:0,dataRadiusOfPercent:[],dataRadius:[],angleArr:[],tooltipsContentArr:[],originDataSource:[],radius:1},c=function(t,e){var a=(0,n.cloneDeep)(d);if(a.radius=e,(null==t?void 0:t.length)<1)return a;a.originDataSource=t,a.n=t.length;var i=2*Math.PI/a.n;return t.forEach(((t,r)=>{a.dataRadiusOfPercent[r]=t.value/t.maxValue,a.dataRadius[r]=a.dataRadiusOfPercent[r]*e,a.angleArr[r]=r*i})),a},f=function(t,e,a){var i=(0,n.cloneDeep)(s);return(0,n.merge)(i.dataFill,t),(0,n.merge)(i.dataCircle,e),(0,n.merge)(i.dataLine,a),i},h=function(t,e,a){for(var i=[],r=0;r<t;r++){var l={x:0,y:0};l.x=e[r]*Math.sin(a[r]),l.y=-e[r]*Math.cos(a[r]),i.push(l)}return i},u=function(t,e,a){for(var i=[],r=2*Math.PI/t,l=0;l<t;l++){var n={x:0,y:0};n.x=e*Math.sin(l*r)+a[0],n.y=-e*Math.cos(l*r)+a[1],i.push(n)}return i},y=function(t,e){var a=e.n,i=e.r,r=e.origin,l=e.strokeStyle,n=e.lineWidth*e.ratio;t.save(),t.beginPath();var o=2*Math.PI/a;t.translate(r[0],r[1]),t.moveTo(0,-i);for(var s=0;s<a;s++)t.rotate(o),t.lineTo(0,-i);if(t.closePath(),t.stroke(),e.strokeStyle&&(t.strokeStyle=l,t.lineWidth=n,t.lineCap="butt"),e.fillStyle){if("string"==typeof e.fillStyle)t.fillStyle=e.fillStyle;else if(e.fillStyle instanceof Array){var d=t.createLinearGradient(-i,-i,i,i);e.fillStyle.forEach((t=>{d.addColorStop(0,t[0]),d.addColorStop(1,t[1])})),t.fillStyle=d}t.fill()}t.restore()},v=function(t,e){var{n:a,r:i,origin:r,strokeStyle:l}=e,n=e.lineWidth*e.ratio;t.save();var o=2*Math.PI/a;t.translate(r[0],r[1]),t.lineWidth=n,t.lineCap="butt",t.rotate(-Math.PI/2);for(var s=0;s<a;s++){var d=i*Math.cos(o*s),c=i*Math.sin(o*s),f=i*Math.cos(o*(s+1)),h=i*Math.sin(o*(s+1));t.beginPath(),t.moveTo(d,c),t.lineTo(f,h);var u=t.createLinearGradient(d,c,f,h);u.addColorStop(0,l),u.addColorStop(.5,"#1D2B57"),u.addColorStop(.6,"#1D2B57"),u.addColorStop(1,l),t.strokeStyle=u,t.stroke()}t.restore()},S=function(t,e,a){t.save(),t.beginPath(),a.map((a=>{t.moveTo(e[0],e[1]),t.lineTo(a.x,a.y)})),t.strokeStyle="#1D2B57",t.lineWidth=2,t.stroke(),t.restore()},g=function(t,e,a,i,r){t.save();var l=a/2,n=a/4,s=a/12>10?a/12:10;i.map(((i,d)=>{var c,f,h,u,y=i.x,v=i.x,S=i.x,g=i.y,p=i.x,k=(null===(c=r[d])||void 0===c?void 0:c.color)||o[d]||"#ccc";t.beginPath(),t.moveTo(i.x,i.y),i.x-e[0]>=0?(S=(v=(y+=l)+l)+s,p=y+12):i.x-e[0]<0&&(S=(v=(y-=l)-l)-s,p=v+12),i.y-e[1]<0?g-=n:i.y-e[1]>0&&(g+=n),t.lineTo(y,g),t.lineTo(S,g),t.strokeStyle="rgba(255, 255, 255, .1)",t.stroke(),t.beginPath(),t.moveTo(v,g),t.lineTo(S,g),t.strokeStyle=k,t.lineWidth=2,t.stroke();var x=null!==(f=r[d])&&void 0!==f&&f.percentValue?g-a/3.5:g-a/5.5,m=a/12;if(null!==(h=r[d])&&void 0!==h&&h.name&&(t.fillStyle=k,t.fillRect(p,x,12,12),t.textAlign="left",t.font="400 ".concat(m,"px HarmonyOS_Sans_SC_Black"),t.fillStyle="rgba(255, 255, 255, .4)",t.fillText("".concat(r[d].name),p+18,x+6),t.stroke()),null!==(u=r[d])&&void 0!==u&&u.percentValue){var P,W=a/10;t.textAlign="left",t.font="500 ".concat(W,"px HarmonyOS_Sans_SC_Black"),t.fillStyle="#fff",t.fillText("".concat(null===(P=r[d])||void 0===P?void 0:P.percentValue),p+18,x+6+1.5*m),t.stroke()}})),t.restore()};function p(t,e){var{x:a,y:i,r,originX:l,originY:n,strokeStyle:o,lineWidth:s,fillStyle:d}=e;t.save(),t.beginPath(),t.translate(l,n),t.arc(a,i,r,0,2*Math.PI),t.closePath(),t.strokeStyle=o,t.lineWidth=s,t.lineJoin="round",t.fillStyle=d,t.stroke(),t.fill(),t.restore()}var k=function(t,e,a,i){var{dataLineOptions:r,dataFillOptions:l,dataCircleOptions:n}=i;0!==r.dataPoints.length&&(function(t,e,a){var{strokeStyle:i,lineWidth:r,dataPoints:l}=a,n=l.length;t.save(),t.beginPath(),t.translate(e[0],e[1]),t.moveTo(l[0].x,l[0].y);for(var o=1;o<n;o++)t.lineTo(l[o].x,l[o].y);t.closePath(),t.strokeStyle=i,t.lineWidth=r,t.lineJoin="round",t.stroke(),t.restore()}(t,e,r),function(t,e,a){var{fillStyle:i,dataPoints:r}=a,l=r.length;t.save(),t.beginPath(),t.translate(e[0],e[1]),t.moveTo(r[0].x,r[0].y);for(var n=1;n<l;n++)t.lineTo(r[n].x,r[n].y);t.closePath(),t.fillStyle=i,t.fill(),t.restore()}(t,e,l),function(t,e,a,i){for(var{strokeStyle:r,fillStyle:l,dataPoints:n}=i,o=i.r*a,s=i.lineWidth*a,d=n.length,c=0;c<d;c++)p(t,{x:n[c].x,y:n[c].y,r:o,originX:e[0],originY:e[1],strokeStyle:r,lineWidth:s,fillStyle:l})}(t,e,a,n))},x=function(t,e){for(var{layer:a,n:i,r,ratio:l,origin:n,lineWidth:o}=e,s=[["#3366FF","#83F5E1"]],d=a;d>0;d--)d===a?(v(t,{n:i,r,origin:n,ratio:l,lineWidth:o,strokeStyle:"rgba(51, 102, 255)"}),v(t,{n:i,r:.95*r,origin:n,ratio:l,strokeStyle:"rgba(76,132,250,0.1)",lineWidth:o})):y(t,{n:i,r:.95*r/a*d,origin:n,fillStyle:d%2!=0?"#29292d":s,strokeStyle:"transparent",lineWidth:o,ratio:l})},m=["dataSource","radius","value","dataFill","dataCircle","dataLine","scale"];function P(t){var{dataSource:e,radius:a,value:n,dataFill:o,dataCircle:y,dataLine:v,scale:p}=t,P=(0,i.c)(t,m),W=(0,r.useRef)(null),b=(0,r.useRef)(null),[C,w]=(0,r.useState)(d),[F,O]=(0,r.useState)(s),T=window.devicePixelRatio;return(0,r.useEffect)((()=>{var t=W.current,i=t.getContext("2d"),r=t.clientWidth,l=t.clientHeight;t.width=r*T,t.height=l*T;var n=Math.min(t.width,t.height)*p;b.current=i,w(c(e,null!=a?a:n))}),[e,a,p]),(0,r.useEffect)((()=>{O(f(o,y,v))}),[o,y,v]),(0,r.useEffect)((()=>{var t=0,e=null,a=W.current,i=b.current,r=[a.width/2,a.height/2];if(i){var l=()=>{e=window.requestAnimationFrame(l),(t+=.05)>=1&&window.cancelAnimationFrame(e),i.clearRect(0,0,a.width,a.height),x(i,{layer:5,n:C.n,r:C.radius,ratio:T,origin:r,lineWidth:2});var o=C.dataRadius.map((e=>e*t)),s=h(C.n,o,C.angleArr),d={dataPoints:s,strokeStyle:F.dataLine.strokeStyle,lineWidth:F.dataLine.lineWidth},c={dataPoints:s,r:F.dataCircle.r,strokeStyle:F.dataCircle.strokeStyle,fillStyle:F.dataCircle.fillStyle,lineWidth:F.dataCircle.lineWidth},f={dataPoints:s,fillStyle:F.dataFill.fillStyle};k(i,r,T,{dataLineOptions:d,dataFillOptions:f,dataCircleOptions:c});var y=u(C.n,C.radius,r);if(S(i,r,y),g(i,r,C.radius,y,C.originDataSource),n){var v=C.radius/5;i.font="bold ".concat(v,"px HarmonyOS_Sans_SC_Black"),i.fillStyle="#fff",i.textAlign="center",i.textBaseline="middle",i.fillText("".concat(n),r[0],r[1])}};l()}}),[C,F,n]),l().createElement("div",{className:"radarWrap",style:{width:"".concat(P.width,"px"),height:"".concat(P.height,"px")}},l().createElement("canvas",{className:"canvasWrap",ref:W}))}},2708:(t,e,a)=>{a.d(e,{c:()=>o});var i=a(8304),r=a.n(i),l=a(1849),n=a.n(l)()(r());n.push([t.id,".radarWrap{position:relative;width:100%;height:100%}.radarWrap .canvasWrap{display:block;width:100%;height:100%}",""]);const o=n.toString()},640:(t,e,a)=>{function i(t,e){if(null==t)return{};var a,i,r=function(t,e){if(null==t)return{};var a,i,r={},l=Object.keys(t);for(i=0;i<l.length;i++)a=l[i],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(i=0;i<l.length;i++)a=l[i],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}a.d(e,{c:()=>i})}}]);
2
+ //# sourceMappingURL=6768.3d9b466d.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/4434.c9184946.js","mappings":"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","sources":["webpack:///./src/radar-chart/utils.ts","webpack:///./src/radar-chart/radar.tsx","webpack:///./src/radar-chart/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import { cloneDeep, merge } from \"lodash\";\nimport {\n Axis,\n BaseConfig,\n CircleOptions,\n Data,\n DataCircle,\n DataCircleOptions,\n DataFill,\n DataFillProps,\n DataLine,\n DataLineOptions,\n DataPolyProps,\n DrawPolygonOptions,\n DrawRadarBgOption,\n GradientPolygon,\n UserConfig,\n} from \"./interface.js\";\n\nexport const colorMap = [\n \"#5B8FF9\",\n \"#5AD8A6\",\n \"#5D7092\",\n \"#F6BD16\",\n \"#E86452\",\n \"#6DC8EC\",\n \"#945FB9\",\n \"#FF9845\",\n \"#1E9493\",\n \"#FF99C3\",\n]; //chart-v2 的主题色\n\nexport const baseUserConfig: UserConfig = {\n dataFill: {\n fillStyle: \"rgba(76,132,250,0.67)\",\n },\n dataCircle: {\n r: 2,\n strokeStyle: \"#ccc\",\n fillStyle: \"#fff\",\n lineWidth: 0.5,\n },\n dataLine: {\n strokeStyle: \"#0B2EE7\",\n lineWidth: 5,\n },\n};\nexport const baseRadarConfig: BaseConfig = {\n n: 0,\n dataRadiusOfPercent: [],\n dataRadius: [],\n angleArr: [],\n tooltipsContentArr: [],\n originDataSource: [],\n radius: 1,\n};\n/**\n * // 初始化参数配置\n * @param dataSource\n * @param radius\n * @returns BaseConfig\n */\nexport const constructBaseConfig = function (\n dataSource: Data[],\n radius: number\n) {\n const baseConfig: BaseConfig = cloneDeep(baseRadarConfig);\n baseConfig.radius = radius;\n if (dataSource?.length < 1) return baseConfig;\n baseConfig.originDataSource = dataSource;\n baseConfig.n = dataSource.length;\n const disAngle = (Math.PI * 2) / baseConfig.n;\n dataSource.forEach((data, i) => {\n baseConfig.dataRadiusOfPercent[i] = data.value / data.maxValue;\n baseConfig.dataRadius[i] = baseConfig.dataRadiusOfPercent[i] * radius;\n baseConfig.angleArr[i] = i * disAngle;\n });\n return baseConfig;\n};\n\nexport const constructUserConfig = function (\n dataFill: DataFill,\n dataCircle: DataCircle,\n dataLine: DataLine\n) {\n const userConfig: UserConfig = cloneDeep(baseUserConfig);\n merge(userConfig.dataFill, dataFill);\n merge(userConfig.dataCircle, dataCircle);\n merge(userConfig.dataLine, dataLine);\n return userConfig;\n};\n\n/**\n * 获取数据点相对于原点的坐标\n * n:多边形边数\n * dataRadiusArr: 数据点的坐标数组\n * angleArr: 多边形的角度数组\n */\nexport const getDataPointsPos = function (\n n: number,\n dataRadiusArr: number[],\n angleArr: number[]\n) {\n const dataPointsPosArray = [];\n for (let i = 0; i < n; i++) {\n const curPoinrPos: Axis = {\n x: 0,\n y: 0,\n };\n curPoinrPos.x = dataRadiusArr[i] * Math.sin(angleArr[i]);\n curPoinrPos.y = -dataRadiusArr[i] * Math.cos(angleArr[i]);\n dataPointsPosArray.push(curPoinrPos);\n }\n return dataPointsPosArray;\n};\n\n/**\n * 获取正多边形每个点的坐标位置数组(相对于原点)\n * n: 多边形的边数\n * r: 半径\n * origin: 原点位置\n */\nexport const getPolygonPos = function (n: number, r: number, origin: number[]) {\n const dotsArray = []; // 多边形每一个点的坐标数组,格式如[{x: 1, y: 2}]\n const angle = (Math.PI * 2) / n;\n for (let i = 0; i < n; i++) {\n const curPos: Axis = {\n x: 0,\n y: 0,\n };\n curPos.x = r * Math.sin(i * angle) + origin[0];\n curPos.y = -r * Math.cos(i * angle) + origin[1];\n dotsArray.push(curPos);\n }\n return dotsArray;\n};\n\n/**\n * 绘制闭合正多边形\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * fillStyle:填充样式\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawPolygon = function (\n context: CanvasRenderingContext2D,\n options: DrawPolygonOptions\n) {\n // 对传入参数进行默认值设置\n const n = options.n,\n r = options.r,\n origin = options.origin,\n strokeStyle = options.strokeStyle,\n lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n\n context.save();\n context.beginPath();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n context.moveTo(0, -r);\n for (let i = 0; i < n; i++) {\n context.rotate(angle);\n context.lineTo(0, -r);\n }\n context.closePath();\n context.stroke();\n\n if (options.strokeStyle) {\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n }\n if (options.fillStyle) {\n if (typeof options.fillStyle === \"string\") {\n context.fillStyle = options.fillStyle;\n } else if (options.fillStyle instanceof Array) {\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(-r, -r, r, r);\n options.fillStyle.forEach((colors) => {\n gradient.addColorStop(0, colors[0]);\n gradient.addColorStop(1, colors[1]);\n });\n context.fillStyle = gradient;\n }\n\n context.fill();\n }\n context.restore();\n};\n\n/**\n * 绘制线性渐变的多边形,\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawGradientPolygon = function (\n context: CanvasRenderingContext2D,\n options: GradientPolygon\n) {\n // 对传入参数进行默认值设置\n const { n, r, origin, strokeStyle } = options;\n const lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n context.save();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n\n // 设置线条样式\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n // 添加偏移量,使第一条边与正上方对齐\n context.rotate(-Math.PI / 2);\n\n for (let i = 0; i < n; i++) {\n // 计算当前边的起点和终点坐标\n const startX = r * Math.cos(angle * i),\n startY = r * Math.sin(angle * i),\n endX = r * Math.cos(angle * (i + 1)),\n endY = r * Math.sin(angle * (i + 1));\n // 开始一个新的路径\n context.beginPath();\n // 绘制多边形的一条边\n context.moveTo(startX, startY);\n context.lineTo(endX, endY);\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(startX, startY, endX, endY);\n gradient.addColorStop(0, strokeStyle);\n gradient.addColorStop(0.5, \"#1D2B57\");\n gradient.addColorStop(0.6, \"#1D2B57\");\n gradient.addColorStop(1, strokeStyle);\n // 设置当前路径的描边样式为线性渐变\n context.strokeStyle = gradient;\n context.stroke();\n }\n context.restore();\n};\n\n/**\n * 绘制数据点连接线条(一次性画完)\n * dataPoints: 数据的位置数组\n * strokeStyle: 线条样式\n * lineWidth: 线条宽度\n */\nexport const drawDataLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataLineOptions\n) {\n const { strokeStyle, lineWidth, dataPoints } = options;\n const dataPointsLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.stroke();\n context.restore();\n};\n/**\n * 绘制放射性中心点到多边形顶点连线\n * @param context\n * @param origin\n * @param dataPoints 多边形顶点坐标\n */\nexport const drawVertexLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n dataPoints: Axis[]\n) {\n context.save();\n context.beginPath();\n dataPoints.map((point) => {\n context.moveTo(origin[0], origin[1]);\n context.lineTo(point.x, point.y);\n });\n context.strokeStyle = \"#1D2B57\";\n context.lineWidth = 2;\n context.stroke();\n context.restore();\n};\nexport const drawLeadLineAndText = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n r: number,\n dataPoints: Axis[],\n dataSource: Data[]\n) {\n context.save();\n const offsetX = r / 2,\n offsetY = r / 4,\n offsetEndX = r / 12 > 10 ? r / 12 : 10,\n rectSize = 12;\n dataPoints.map((point, i) => {\n let curPosX = point.x,\n curPosMiddleX = point.x,\n curPosEndX = point.x,\n curPosY = point.y,\n rectX = point.x;\n const color = dataSource[i]?.color || colorMap[i] || \"#ccc\";\n context.beginPath();\n context.moveTo(point.x, point.y);\n\n if (point.x - origin[0] >= 0) {\n //引线方向往右\n curPosX += offsetX;\n curPosMiddleX = curPosX + offsetX;\n curPosEndX = curPosMiddleX + offsetEndX;\n rectX = curPosX + rectSize;\n } else if (point.x - origin[0] < 0) {\n //引线方向往左\n curPosX -= offsetX;\n curPosMiddleX = curPosX - offsetX;\n curPosEndX = curPosMiddleX - offsetEndX;\n rectX = curPosMiddleX + rectSize;\n }\n\n if (point.y - origin[1] < 0) {\n curPosY -= offsetY;\n } else if (point.y - origin[1] > 0) {\n curPosY += offsetY;\n }\n context.lineTo(curPosX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = \"rgba(255, 255, 255, .1)\";\n context.stroke();\n context.beginPath();\n context.moveTo(curPosMiddleX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = color;\n context.lineWidth = 2;\n context.stroke();\n\n //文本\n const rectY = dataSource[i]?.percentValue\n ? curPosY - r / 3.5\n : curPosY - r / 5.5;\n const legendSize = r / 12;\n\n if (dataSource[i]?.name) {\n context.fillStyle = color;\n context.fillRect(rectX, rectY, rectSize, rectSize);\n\n context.textAlign = \"left\";\n context.font = `400 ${legendSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"rgba(255, 255, 255, .4)\";\n context.fillText(\n `${dataSource[i].name}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2\n );\n context.stroke();\n }\n if (dataSource[i]?.percentValue) {\n const percentSize = r / 10;\n context.textAlign = \"left\";\n context.font = `500 ${percentSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.fillText(\n `${dataSource[i]?.percentValue}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2 + legendSize * 1.5\n );\n context.stroke();\n }\n });\n context.restore();\n};\n\n/**\n * 绘制数据点圆圈\n * dataPoints: 数据的位置数组\n * r: 圆圈半径\n * strokeStyle: 圆的描边样式\n * fillStyle: 圆的描边宽度\n * lineWidth: 圆的填充样式\n */\nexport const drawDataCircle = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataCircleOptions\n) {\n const { strokeStyle, fillStyle, dataPoints } = options;\n const r = options.r * ratio,\n lineWidth = options.lineWidth * ratio;\n\n const dataPointsPosArrayLen = dataPoints.length;\n for (let i = 0; i < dataPointsPosArrayLen; i++) {\n drawCircle(context, {\n x: dataPoints[i].x,\n y: dataPoints[i].y,\n r: r,\n originX: origin[0],\n originY: origin[1],\n strokeStyle: strokeStyle,\n lineWidth: lineWidth,\n fillStyle: fillStyle,\n });\n }\n};\n\n/**\n * 绘制圆圈\n * x: 圆心位置x\n * y: 圆心位置y\n * r: 半径\n * originX: 原点位置x\n * originY: 原点位置y\n * strokeStyle: 描边样式\n * lineWidth: 线条宽度\n * fillStyle: 填充样式\n */\nexport function drawCircle(\n context: CanvasRenderingContext2D,\n options: CircleOptions\n) {\n const { x, y, r, originX, originY, strokeStyle, lineWidth, fillStyle } =\n options;\n context.save();\n context.beginPath();\n context.translate(originX, originY);\n context.arc(x, y, r, 0, Math.PI * 2);\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.fillStyle = fillStyle;\n context.stroke();\n context.fill();\n context.restore();\n}\n\n/**\n * 绘制数据多边形填充\n * dataPoints: 数据的位置数组\n * fillStyle: 填充样式\n */\nexport const drawDataFill = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataFillProps\n) {\n const { fillStyle, dataPoints } = options;\n const dataPointsPosArrayLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsPosArrayLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.fillStyle = fillStyle;\n context.fill();\n context.restore();\n};\n\n/**\n * 绘制数据点组成的图案\n * dataLineOptions\n * dataFillOptions\n * dataCircleOptions\n */\nexport const drawDataPoly = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataPolyProps\n) {\n const { dataLineOptions, dataFillOptions, dataCircleOptions } = options;\n const dataPointsPosArrayLen = dataLineOptions.dataPoints.length;\n if (dataPointsPosArrayLen === 0) return;\n // 绘制数据点连接线条\n drawDataLine(context, origin, dataLineOptions);\n // 绘制数据多边形填充\n drawDataFill(context, origin, dataFillOptions);\n // 绘制数据点圆圈\n drawDataCircle(context, origin, ratio, dataCircleOptions);\n};\n\n/**\n * 绘制雷达的背景图\n * 参数options对象的属性如下:\n * layer: 多边形层数\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * oddStrokeStyle: index为奇数的多边形的描边颜色\n * oddFillStyle: index为奇数的多边形的填充颜色\n * evenStrokeStyle: index为偶数的多边形的描边颜色\n * evenFillStyle: index为偶数的多边形的填充颜色\n */\nexport const drawRadarBackground = function (\n context: CanvasRenderingContext2D,\n options: DrawRadarBgOption\n) {\n const { layer, n, r, ratio, origin, lineWidth } = options;\n const evenStrokeStyle = \"transparent\",\n oddStrokeStyle = \"transparent\",\n evenFillStyle = [[\"#3366FF\", \"#83F5E1\"]],\n oddFillStyle = \"#29292d\";\n // 由外向内绘画多边形\n for (let i = layer; i > 0; i--) {\n if (i === layer) {\n drawGradientPolygon(context, {\n n,\n r,\n origin,\n ratio,\n lineWidth,\n strokeStyle: \"rgba(51, 102, 255)\",\n });\n drawGradientPolygon(context, {\n n,\n r: r * 0.95,\n origin,\n ratio,\n strokeStyle: \"rgba(76,132,250,0.1)\",\n lineWidth,\n });\n } else {\n const layerDis = (r * 0.95) / layer;\n const fillStyle = i % 2 != 0 ? oddFillStyle : evenFillStyle,\n strokeStyle = i % 2 != 0 ? oddStrokeStyle : evenStrokeStyle,\n layerRadiu = layerDis * i;\n drawPolygon(context, {\n n,\n r: layerRadiu,\n origin,\n fillStyle,\n strokeStyle,\n lineWidth,\n ratio,\n });\n }\n }\n};\n","import React, { ReactElement, useEffect, useRef, useState } from \"react\";\nimport {\n baseRadarConfig,\n baseUserConfig,\n constructBaseConfig,\n constructUserConfig,\n drawDataPoly,\n drawLeadLineAndText,\n drawRadarBackground,\n drawVertexLine,\n getDataPointsPos,\n getPolygonPos,\n} from \"./utils.js\";\nimport { BaseConfig, RadarProps, UserConfig } from \"./interface.js\";\n\nexport function Radar({\n dataSource,\n radius,\n value,\n dataFill,\n dataCircle,\n dataLine,\n scale,\n ...props\n}: RadarProps): ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D>(null);\n const [baseConfig, setBaseConfig] = useState<BaseConfig>(baseRadarConfig);\n const [userConfig, setUserConfig] = useState<UserConfig>(baseUserConfig);\n\n const ratio = window.devicePixelRatio;\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n const canvasWidth = canvas.clientWidth;\n const canvasHeight = canvas.clientHeight;\n // 根据设备像素比调整画布的实际像素大小\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n const defaultRadius = Math.min(canvas.width, canvas.height) * scale; // 正多边形的默认半径\n\n contextRef.current = context;\n setBaseConfig(constructBaseConfig(dataSource, radius ?? defaultRadius));\n }, [dataSource, radius, scale]);\n useEffect(() => {\n setUserConfig(constructUserConfig(dataFill, dataCircle, dataLine));\n }, [dataFill, dataCircle, dataLine]);\n\n useEffect(() => {\n let radiusPrecent = 0,\n timer = null;\n const canvas = canvasRef.current;\n const context = contextRef.current;\n const origin = [canvas.width / 2, canvas.height / 2];\n\n if (context) {\n // 起requestAnimationFrame为了数值绘制区域有过渡效果\n const drawFrame = () => {\n timer = window.requestAnimationFrame(drawFrame);\n // 数据点坐标元素\n radiusPrecent += 0.05;\n if (radiusPrecent >= 1) {\n window.cancelAnimationFrame(timer);\n }\n // 清空画布\n context.clearRect(0, 0, canvas.width, canvas.height);\n // 绘制背景图\n drawRadarBackground(context, {\n layer: 5,\n n: baseConfig.n,\n r: baseConfig.radius,\n ratio,\n origin,\n lineWidth: 2,\n });\n\n const dataRadius = baseConfig.dataRadius.map((value) => {\n return value * radiusPrecent;\n });\n const dataPointsPosArray = getDataPointsPos(\n baseConfig.n,\n dataRadius,\n baseConfig.angleArr\n );\n const dataLineOptions = {\n dataPoints: dataPointsPosArray,\n strokeStyle: userConfig.dataLine.strokeStyle,\n lineWidth: userConfig.dataLine.lineWidth,\n };\n const dataCircleOptions = {\n dataPoints: dataPointsPosArray,\n r: userConfig.dataCircle.r,\n strokeStyle: userConfig.dataCircle.strokeStyle,\n fillStyle: userConfig.dataCircle.fillStyle,\n lineWidth: userConfig.dataCircle.lineWidth,\n };\n const dataFillOptions = {\n dataPoints: dataPointsPosArray,\n fillStyle: userConfig.dataFill.fillStyle,\n };\n drawDataPoly(context, origin, ratio, {\n dataLineOptions: dataLineOptions,\n dataFillOptions: dataFillOptions,\n dataCircleOptions: dataCircleOptions,\n });\n\n //绘制放射性中心点到多边形顶点连线\n const polygonOuterPointsPosArr = getPolygonPos(\n baseConfig.n,\n baseConfig.radius,\n origin\n );\n drawVertexLine(context, origin, polygonOuterPointsPosArr);\n drawLeadLineAndText(\n context,\n origin,\n baseConfig.radius,\n polygonOuterPointsPosArr,\n baseConfig.originDataSource\n );\n if (value) {\n const fontSize = baseConfig.radius / 5;\n context.font = `bold ${fontSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillText(`${value}`, origin[0], origin[1]);\n }\n };\n drawFrame();\n }\n }, [baseConfig, userConfig, value]);\n\n return (\n <div\n className=\"radarWrap\"\n style={{ width: `${props.width}px`, height: `${props.height}px` }}\n >\n <canvas className=\"canvasWrap\" ref={canvasRef} />\n </div>\n );\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\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radarWrap{position:relative;width:100%;height:100%}.radarWrap .canvasWrap{display:block;width:100%;height:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["colorMap","baseUserConfig","dataFill","fillStyle","dataCircle","r","strokeStyle","lineWidth","dataLine","baseRadarConfig","n","dataRadiusOfPercent","dataRadius","angleArr","tooltipsContentArr","originDataSource","radius","constructBaseConfig","dataSource","baseConfig","cloneDeep","length","disAngle","Math","PI","forEach","data","i","value","maxValue","constructUserConfig","userConfig","merge","getDataPointsPos","dataRadiusArr","dataPointsPosArray","curPoinrPos","x","y","sin","cos","push","getPolygonPos","origin","dotsArray","angle","curPos","drawPolygon","context","options","ratio","save","beginPath","translate","moveTo","rotate","lineTo","closePath","stroke","lineCap","Array","gradient","createLinearGradient","colors","addColorStop","fill","restore","drawGradientPolygon","startX","startY","endX","endY","drawVertexLine","dataPoints","map","point","drawLeadLineAndText","offsetX","offsetY","offsetEndX","_dataSource$i","_dataSource$i2","_dataSource$i3","_dataSource$i4","curPosX","curPosMiddleX","curPosEndX","curPosY","rectX","color","rectY","percentValue","legendSize","name","fillRect","textAlign","font","concat","fillText","rectSize","_dataSource$i5","percentSize","drawCircle","originX","originY","arc","lineJoin","drawDataPoly","dataLineOptions","dataFillOptions","dataCircleOptions","dataPointsLen","drawDataLine","dataPointsPosArrayLen","drawDataFill","drawDataCircle","drawRadarBackground","layer","evenFillStyle","Radar","_ref","scale","props","_objectWithoutProperties","_excluded","canvasRef","useRef","contextRef","setBaseConfig","useState","setUserConfig","window","devicePixelRatio","useEffect","canvas","current","getContext","canvasWidth","clientWidth","canvasHeight","clientHeight","width","height","defaultRadius","min","radiusPrecent","timer","drawFrame","requestAnimationFrame","cancelAnimationFrame","clearRect","polygonOuterPointsPosArr","fontSize","textBaseline","React","className","style","ref","___CSS_LOADER_EXPORT___","module","id","toString","source","excluded","key","target","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/6768.3d9b466d.js","mappings":"2LAmBaA,EAAW,CACtB,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAGWC,EAA6B,CACxCC,SAAU,CACRC,UAAW,yBAEbC,WAAY,CACVC,EAAG,EACHC,YAAa,OACbH,UAAW,OACXI,UAAW,IAEbC,SAAU,CACRF,YAAa,UACbC,UAAW,IAGFE,EAA8B,CACzCC,EAAG,EACHC,oBAAqB,GACrBC,WAAY,GACZC,SAAU,GACVC,mBAAoB,GACpBC,iBAAkB,GAClBC,OAAQ,GAQGC,EAAsB,SACjCC,EACAF,GAEA,IAAMG,GAAyBC,EAAAA,EAAAA,WAAUX,GAEzC,GADAU,EAAWH,OAASA,GAChBE,aAAU,EAAVA,EAAYG,QAAS,EAAG,OAAOF,EACnCA,EAAWJ,iBAAmBG,EAC9BC,EAAWT,EAAIQ,EAAWG,OAC1B,IAAMC,EAAsB,EAAVC,KAAKC,GAAUL,EAAWT,EAM5C,OALAQ,EAAWO,SAAQ,CAACC,EAAMC,KACxBR,EAAWR,oBAAoBgB,GAAKD,EAAKE,MAAQF,EAAKG,SACtDV,EAAWP,WAAWe,GAAKR,EAAWR,oBAAoBgB,GAAKX,EAC/DG,EAAWN,SAASc,GAAKA,EAAIL,CAAQ,IAEhCH,CACT,EAEaW,EAAsB,SACjC5B,EACAE,EACAI,GAEA,IAAMuB,GAAyBX,EAAAA,EAAAA,WAAUnB,GAIzC,OAHA+B,EAAAA,EAAAA,OAAMD,EAAW7B,SAAUA,IAC3B8B,EAAAA,EAAAA,OAAMD,EAAW3B,WAAYA,IAC7B4B,EAAAA,EAAAA,OAAMD,EAAWvB,SAAUA,GACpBuB,CACT,EAQaE,EAAmB,SAC9BvB,EACAwB,EACArB,GAGA,IADA,IAAMsB,EAAqB,GAClBR,EAAI,EAAGA,EAAIjB,EAAGiB,IAAK,CAC1B,IAAMS,EAAoB,CACxBC,EAAG,EACHC,EAAG,GAELF,EAAYC,EAAIH,EAAcP,GAAKJ,KAAKgB,IAAI1B,EAASc,IACrDS,EAAYE,GAAKJ,EAAcP,GAAKJ,KAAKiB,IAAI3B,EAASc,IACtDQ,EAAmBM,KAAKL,EAC1B,CACA,OAAOD,CACT,EAQaO,EAAgB,SAAUhC,EAAWL,EAAWsC,GAG3D,IAFA,IAAMC,EAAY,GACZC,EAAmB,EAAVtB,KAAKC,GAAUd,EACrBiB,EAAI,EAAGA,EAAIjB,EAAGiB,IAAK,CAC1B,IAAMmB,EAAe,CACnBT,EAAG,EACHC,EAAG,GAELQ,EAAOT,EAAIhC,EAAIkB,KAAKgB,IAAIZ,EAAIkB,GAASF,EAAO,GAC5CG,EAAOR,GAAKjC,EAAIkB,KAAKiB,IAAIb,EAAIkB,GAASF,EAAO,GAC7CC,EAAUH,KAAKK,EACjB,CACA,OAAOF,CACT,EAWaG,EAAc,SACzBC,EACAC,GAGA,IAAMvC,EAAIuC,EAAQvC,EAChBL,EAAI4C,EAAQ5C,EACZsC,EAASM,EAAQN,OACjBrC,EAAc2C,EAAQ3C,YACtBC,EAAY0C,EAAQ1C,UAAY0C,EAAQC,MAG1CF,EAAQG,OACRH,EAAQI,YACR,IAAMP,EAAmB,EAAVtB,KAAKC,GAAUd,EAC9BsC,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IACpCK,EAAQM,OAAO,GAAIjD,GACnB,IAAK,IAAIsB,EAAI,EAAGA,EAAIjB,EAAGiB,IACrBqB,EAAQO,OAAOV,GACfG,EAAQQ,OAAO,GAAInD,GAUrB,GARA2C,EAAQS,YACRT,EAAQU,SAEJT,EAAQ3C,cACV0C,EAAQ1C,YAAcA,EACtB0C,EAAQzC,UAAYA,EACpByC,EAAQW,QAjBE,QAmBRV,EAAQ9C,UAAW,CACrB,GAAiC,iBAAtB8C,EAAQ9C,UACjB6C,EAAQ7C,UAAY8C,EAAQ9C,eACvB,GAAI8C,EAAQ9C,qBAAqByD,MAAO,CAE7C,IAAMC,EAAWb,EAAQc,sBAAsBzD,GAAIA,EAAGA,EAAGA,GACzD4C,EAAQ9C,UAAUsB,SAASsC,IACzBF,EAASG,aAAa,EAAGD,EAAO,IAChCF,EAASG,aAAa,EAAGD,EAAO,GAAG,IAErCf,EAAQ7C,UAAY0D,CACtB,CAEAb,EAAQiB,MACV,CACAjB,EAAQkB,SACV,EAUaC,EAAsB,SACjCnB,EACAC,GAGA,IAAM,EAAEvC,EAAC,EAAEL,EAAC,OAAEsC,EAAM,YAAErC,GAAgB2C,EAChC1C,EAAY0C,EAAQ1C,UAAY0C,EAAQC,MAE9CF,EAAQG,OACR,IAAMN,EAAmB,EAAVtB,KAAKC,GAAUd,EAC9BsC,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IAGpCK,EAAQzC,UAAYA,EACpByC,EAAQW,QAPI,OASZX,EAAQO,QAAQhC,KAAKC,GAAK,GAE1B,IAAK,IAAIG,EAAI,EAAGA,EAAIjB,EAAGiB,IAAK,CAE1B,IAAMyC,EAAS/D,EAAIkB,KAAKiB,IAAIK,EAAQlB,GAClC0C,EAAShE,EAAIkB,KAAKgB,IAAIM,EAAQlB,GAC9B2C,EAAOjE,EAAIkB,KAAKiB,IAAIK,GAASlB,EAAI,IACjC4C,EAAOlE,EAAIkB,KAAKgB,IAAIM,GAASlB,EAAI,IAEnCqB,EAAQI,YAERJ,EAAQM,OAAOc,EAAQC,GACvBrB,EAAQQ,OAAOc,EAAMC,GAErB,IAAMV,EAAWb,EAAQc,qBAAqBM,EAAQC,EAAQC,EAAMC,GACpEV,EAASG,aAAa,EAAG1D,GACzBuD,EAASG,aAAa,GAAK,WAC3BH,EAASG,aAAa,GAAK,WAC3BH,EAASG,aAAa,EAAG1D,GAEzB0C,EAAQ1C,YAAcuD,EACtBb,EAAQU,QACV,CACAV,EAAQkB,SACV,EAmCaM,EAAiB,SAC5BxB,EACAL,EACA8B,GAEAzB,EAAQG,OACRH,EAAQI,YACRqB,EAAWC,KAAKC,IACd3B,EAAQM,OAAOX,EAAO,GAAIA,EAAO,IACjCK,EAAQQ,OAAOmB,EAAMtC,EAAGsC,EAAMrC,EAAE,IAElCU,EAAQ1C,YAAc,UACtB0C,EAAQzC,UAAY,EACpByC,EAAQU,SACRV,EAAQkB,SACV,EACaU,EAAsB,SACjC5B,EACAL,EACAtC,EACAoE,EACAvD,GAEA8B,EAAQG,OACR,IAAM0B,EAAUxE,EAAI,EAClByE,EAAUzE,EAAI,EACd0E,EAAa1E,EAAI,GAAK,GAAKA,EAAI,GAAK,GAEtCoE,EAAWC,KAAI,CAACC,EAAOhD,KAAM,IAAAqD,EAAAC,EAAAC,EAAAC,EACvBC,EAAUT,EAAMtC,EAClBgD,EAAgBV,EAAMtC,EACtBiD,EAAaX,EAAMtC,EACnBkD,EAAUZ,EAAMrC,EAChBkD,EAAQb,EAAMtC,EACVoD,GAAqB,QAAbT,EAAA9D,EAAWS,UAAE,IAAAqD,OAAA,EAAbA,EAAeS,QAASzF,EAAS2B,IAAM,OACrDqB,EAAQI,YACRJ,EAAQM,OAAOqB,EAAMtC,EAAGsC,EAAMrC,GAE1BqC,EAAMtC,EAAIM,EAAO,IAAM,GAIzB2C,GADAD,GADAD,GAAWP,GACeA,GACGE,EAC7BS,EAAQJ,EAhBC,IAiBAT,EAAMtC,EAAIM,EAAO,GAAK,IAI/B2C,GADAD,GADAD,GAAWP,GACeA,GACGE,EAC7BS,EAAQH,EAtBC,IAyBPV,EAAMrC,EAAIK,EAAO,GAAK,EACxB4C,GAAWT,EACFH,EAAMrC,EAAIK,EAAO,GAAK,IAC/B4C,GAAWT,GAEb9B,EAAQQ,OAAO4B,EAASG,GACxBvC,EAAQQ,OAAO8B,EAAYC,GAC3BvC,EAAQ1C,YAAc,0BACtB0C,EAAQU,SACRV,EAAQI,YACRJ,EAAQM,OAAO+B,EAAeE,GAC9BvC,EAAQQ,OAAO8B,EAAYC,GAC3BvC,EAAQ1C,YAAcmF,EACtBzC,EAAQzC,UAAY,EACpByC,EAAQU,SAGR,IAAMgC,EAAqB,QAAbT,EAAA/D,EAAWS,UAAE,IAAAsD,GAAbA,EAAeU,aACzBJ,EAAUlF,EAAI,IACdkF,EAAUlF,EAAI,IACZuF,EAAavF,EAAI,GAgBvB,GAdiB,QAAjB6E,EAAIhE,EAAWS,UAAE,IAAAuD,GAAbA,EAAeW,OACjB7C,EAAQ7C,UAAYsF,EACpBzC,EAAQ8C,SAASN,EAAOE,EAjDf,OAmDT1C,EAAQ+C,UAAY,OACpB/C,EAAQgD,KAAO,OAAHC,OAAUL,EAAU,8BAChC5C,EAAQ7C,UAAY,0BACpB6C,EAAQkD,SAAS,GAADD,OACX/E,EAAWS,GAAGkE,MACjBL,EAAQW,GACRT,EAAQS,GAEVnD,EAAQU,UAEO,QAAjByB,EAAIjE,EAAWS,UAAE,IAAAwD,GAAbA,EAAeQ,aAAc,KAAAS,EACzBC,EAAchG,EAAI,GACxB2C,EAAQ+C,UAAY,OACpB/C,EAAQgD,KAAO,OAAHC,OAAUI,EAAW,8BACjCrD,EAAQ7C,UAAY,OACpB6C,EAAQkD,SAAS,GAADD,OACE,QADFG,EACXlF,EAAWS,UAAE,IAAAyE,OAAA,EAAbA,EAAeT,cAClBH,EAAQW,GACRT,EAAQS,EAA4B,IAAbP,GAEzB5C,EAAQU,QACV,KAEFV,EAAQkB,SACV,EA8CO,SAASoC,EACdtD,EACAC,GAEA,IAAM,EAAEZ,EAAC,EAAEC,EAAC,EAAG,QAAEiE,EAAO,QAAEC,EAAO,YAAElG,EAAW,UAAEC,EAAS,UAAEJ,GACzD8C,EACFD,EAAQG,OACRH,EAAQI,YACRJ,EAAQK,UAAUkD,EAASC,GAC3BxD,EAAQyD,IAAIpE,EAAGC,EAAGjC,EAAG,EAAa,EAAVkB,KAAKC,IAC7BwB,EAAQS,YACRT,EAAQ1C,YAAcA,EACtB0C,EAAQzC,UAAYA,EACpByC,EAAQ0D,SAAW,QACnB1D,EAAQ7C,UAAYA,EACpB6C,EAAQU,SACRV,EAAQiB,OACRjB,EAAQkB,SACV,CAOO,IA0BMyC,EAAe,SAC1B3D,EACAL,EACAO,EACAD,GAEA,IAAM,gBAAE2D,EAAe,gBAAEC,EAAe,kBAAEC,GAAsB7D,EAElC,IADA2D,EAAgBnC,WAAWpD,SAzO/B,SAC1B2B,EACAL,EACAM,GAEA,IAAM,YAAE3C,EAAW,UAAEC,EAAS,WAAEkE,GAAexB,EACzC8D,EAAgBtC,EAAWpD,OACjC2B,EAAQG,OACRH,EAAQI,YACRJ,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IACpCK,EAAQM,OAAOmB,EAAW,GAAGpC,EAAGoC,EAAW,GAAGnC,GAC9C,IAAK,IAAIX,EAAI,EAAGA,EAAIoF,EAAepF,IACjCqB,EAAQQ,OAAOiB,EAAW9C,GAAGU,EAAGoC,EAAW9C,GAAGW,GAEhDU,EAAQS,YACRT,EAAQ1C,YAAcA,EACtB0C,EAAQzC,UAAYA,EACpByC,EAAQ0D,SAAW,QACnB1D,EAAQU,SACRV,EAAQkB,SACV,CAwNE8C,CAAahE,EAASL,EAAQiE,GApCJ,SAC1B5D,EACAL,EACAM,GAEA,IAAM,UAAE9C,EAAS,WAAEsE,GAAexB,EAC5BgE,EAAwBxC,EAAWpD,OACzC2B,EAAQG,OACRH,EAAQI,YACRJ,EAAQK,UAAUV,EAAO,GAAIA,EAAO,IACpCK,EAAQM,OAAOmB,EAAW,GAAGpC,EAAGoC,EAAW,GAAGnC,GAC9C,IAAK,IAAIX,EAAI,EAAGA,EAAIsF,EAAuBtF,IACzCqB,EAAQQ,OAAOiB,EAAW9C,GAAGU,EAAGoC,EAAW9C,GAAGW,GAEhDU,EAAQS,YACRT,EAAQ7C,UAAYA,EACpB6C,EAAQiB,OACRjB,EAAQkB,SACV,CAoBEgD,CAAalE,EAASL,EAAQkE,GAnGF,SAC5B7D,EACAL,EACAO,EACAD,GAOA,IALA,IAAM,YAAE3C,EAAW,UAAEH,EAAS,WAAEsE,GAAexB,EACzC5C,EAAI4C,EAAQ5C,EAAI6C,EACpB3C,EAAY0C,EAAQ1C,UAAY2C,EAE5B+D,EAAwBxC,EAAWpD,OAChCM,EAAI,EAAGA,EAAIsF,EAAuBtF,IACzC2E,EAAWtD,EAAS,CAClBX,EAAGoC,EAAW9C,GAAGU,EACjBC,EAAGmC,EAAW9C,GAAGW,EACjBjC,EAAGA,EACHkG,QAAS5D,EAAO,GAChB6D,QAAS7D,EAAO,GAChBrC,YAAaA,EACbC,UAAWA,EACXJ,UAAWA,GAGjB,CA8EEgH,CAAenE,EAASL,EAAQO,EAAO4D,GACzC,EAcaM,EAAsB,SACjCpE,EACAC,GAQA,IANA,IAAM,MAAEoE,EAAK,EAAE3G,EAAC,EAAG,MAAEwC,EAAK,OAAEP,EAAM,UAAEpC,GAAc0C,EAGhDqE,EAAgB,CAAC,CAAC,UAAW,YAGtB3F,EAAI0F,EAAO1F,EAAI,EAAGA,IACrBA,IAAM0F,GACRlD,EAAoBnB,EAAS,CAC3BtC,IACAL,EACAsC,SACAO,QACA3C,YACAD,YAAa,uBAEf6D,EAAoBnB,EAAS,CAC3BtC,IACAL,EAAO,IAAJA,EACHsC,SACAO,QACA5C,YAAa,uBACbC,eAOFwC,EAAYC,EAAS,CACnBtC,IACAL,EANoB,IAAJA,EAAYgH,EAGJ1F,EAIxBgB,SACAxC,UAPgBwB,EAAI,GAAK,EAtBd,UAsBiC2F,EAQ5ChH,YAhCa,cAiCbC,YACA2C,SAIR,E,6ECrhBO,SAASqE,EAAKC,GASQ,IATP,WACpBtG,EAAU,OACVF,EAAM,MACNY,EAAK,SACL1B,EAAQ,WACRE,EAAU,SACVI,EAAQ,MACRiH,GAEWD,EADRE,GAAKC,EAAAA,EAAAA,GAAAH,EAAAI,GAEFC,GAAYC,EAAAA,EAAAA,QAA0B,MACtCC,GAAaD,EAAAA,EAAAA,QAAiC,OAC7C3G,EAAY6G,IAAiBC,EAAAA,EAAAA,UAAqBxH,IAClDsB,EAAYmG,IAAiBD,EAAAA,EAAAA,UAAqBhI,GAEnDiD,EAAQiF,OAAOC,iBAuGrB,OAtGAC,EAAAA,EAAAA,YAAU,KACR,IAAMC,EAAST,EAAUU,QACnBvF,EAAUsF,EAAOE,WAAW,MAC5BC,EAAcH,EAAOI,YACrBC,EAAeL,EAAOM,aAE5BN,EAAOO,MAAQJ,EAAcvF,EAC7BoF,EAAOQ,OAASH,EAAezF,EAC/B,IAAM6F,EAAgBxH,KAAKyH,IAAIV,EAAOO,MAAOP,EAAOQ,QAAUrB,EAE9DM,EAAWQ,QAAUvF,EACrBgF,EAAc/G,EAAoBC,EAAYF,QAAAA,EAAU+H,GAAe,GACtE,CAAC7H,EAAYF,EAAQyG,KACxBY,EAAAA,EAAAA,YAAU,KACRH,EAAcpG,EAAoB5B,EAAUE,EAAYI,GAAU,GACjE,CAACN,EAAUE,EAAYI,KAE1B6H,EAAAA,EAAAA,YAAU,KACR,IAAIY,EAAgB,EAClBC,EAAQ,KACJZ,EAAST,EAAUU,QACnBvF,EAAU+E,EAAWQ,QACrB5F,EAAS,CAAC2F,EAAOO,MAAQ,EAAGP,EAAOQ,OAAS,GAElD,GAAI9F,EAAS,CAEX,IAAMmG,EAAYA,KAChBD,EAAQf,OAAOiB,sBAAsBD,IAErCF,GAAiB,MACI,GACnBd,OAAOkB,qBAAqBH,GAG9BlG,EAAQsG,UAAU,EAAG,EAAGhB,EAAOO,MAAOP,EAAOQ,QAE7C1B,EAAoBpE,EAAS,CAC3BqE,MAAO,EACP3G,EAAGS,EAAWT,EACdL,EAAGc,EAAWH,OACdkC,QACAP,SACApC,UAAW,IAGb,IAAMK,EAAaO,EAAWP,WAAW8D,KAAK9C,GACrCA,EAAQqH,IAEX9G,EAAqBF,EACzBd,EAAWT,EACXE,EACAO,EAAWN,UAEP+F,EAAkB,CACtBnC,WAAYtC,EACZ7B,YAAayB,EAAWvB,SAASF,YACjCC,UAAWwB,EAAWvB,SAASD,WAE3BuG,EAAoB,CACxBrC,WAAYtC,EACZ9B,EAAG0B,EAAW3B,WAAWC,EACzBC,YAAayB,EAAW3B,WAAWE,YACnCH,UAAW4B,EAAW3B,WAAWD,UACjCI,UAAWwB,EAAW3B,WAAWG,WAE7BsG,EAAkB,CACtBpC,WAAYtC,EACZhC,UAAW4B,EAAW7B,SAASC,WAEjCwG,EAAa3D,EAASL,EAAQO,EAAO,CACnC0D,gBAAiBA,EACjBC,gBAAiBA,EACjBC,kBAAmBA,IAIrB,IAAMyC,EAA2B7G,EAC/BvB,EAAWT,EACXS,EAAWH,OACX2B,GAUF,GARA6B,EAAexB,EAASL,EAAQ4G,GAChC3E,EACE5B,EACAL,EACAxB,EAAWH,OACXuI,EACApI,EAAWJ,kBAETa,EAAO,CACT,IAAM4H,EAAWrI,EAAWH,OAAS,EACrCgC,EAAQgD,KAAO,QAAHC,OAAWuD,EAAQ,8BAC/BxG,EAAQ7C,UAAY,OACpB6C,EAAQ+C,UAAY,SACpB/C,EAAQyG,aAAe,SACvBzG,EAAQkD,SAAS,GAADD,OAAIrE,GAASe,EAAO,GAAIA,EAAO,GACjD,GAEFwG,GACF,IACC,CAAChI,EAAYY,EAAYH,IAG1B8H,IAAAA,cAAA,OACEC,UAAU,YACVC,MAAO,CAAEf,MAAO,GAAF5C,OAAKyB,EAAMmB,MAAK,MAAMC,OAAQ,GAAF7C,OAAKyB,EAAMoB,OAAM,QAE3DY,IAAAA,cAAA,UAAQC,UAAU,aAAaE,IAAKhC,IAG1C,C,mEC1IIiC,E,MAA0B,GAA4B,KAE1DA,EAAwBrH,KAAK,CAACsH,EAAOC,GAAI,mHAAoH,KAE7J,QAAeF,EAAwBG,U,gBCNxB,SAAStC,EAAyBuC,EAAQC,GACvD,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IACIE,EAAKzI,EADL0I,ECHS,SAAuCH,EAAQC,GAC5D,GAAc,MAAVD,EAAgB,MAAO,CAAC,EAC5B,IAEIE,EAAKzI,EAFL0I,EAAS,CAAC,EACVC,EAAaC,OAAOC,KAAKN,GAE7B,IAAKvI,EAAI,EAAGA,EAAI2I,EAAWjJ,OAAQM,IACjCyI,EAAME,EAAW3I,GACbwI,EAASM,QAAQL,IAAQ,IAC7BC,EAAOD,GAAOF,EAAOE,IAEvB,OAAOC,CACT,CDRe,CAA6BH,EAAQC,GAElD,GAAII,OAAOG,sBAAuB,CAChC,IAAIC,EAAmBJ,OAAOG,sBAAsBR,GACpD,IAAKvI,EAAI,EAAGA,EAAIgJ,EAAiBtJ,OAAQM,IACvCyI,EAAMO,EAAiBhJ,GACnBwI,EAASM,QAAQL,IAAQ,GACxBG,OAAOK,UAAUC,qBAAqBC,KAAKZ,EAAQE,KACxDC,EAAOD,GAAOF,EAAOE,GAEzB,CACA,OAAOC,CACT,C","sources":["webpack:///./src/radar-chart/utils.ts","webpack:///./src/radar-chart/radar.tsx","webpack:///./src/radar-chart/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["import { cloneDeep, merge } from \"lodash\";\nimport {\n Axis,\n BaseConfig,\n CircleOptions,\n Data,\n DataCircle,\n DataCircleOptions,\n DataFill,\n DataFillProps,\n DataLine,\n DataLineOptions,\n DataPolyProps,\n DrawPolygonOptions,\n DrawRadarBgOption,\n GradientPolygon,\n UserConfig,\n} from \"./interface.js\";\n\nexport const colorMap = [\n \"#5B8FF9\",\n \"#5AD8A6\",\n \"#5D7092\",\n \"#F6BD16\",\n \"#E86452\",\n \"#6DC8EC\",\n \"#945FB9\",\n \"#FF9845\",\n \"#1E9493\",\n \"#FF99C3\",\n]; //chart-v2 的主题色\n\nexport const baseUserConfig: UserConfig = {\n dataFill: {\n fillStyle: \"rgba(76,132,250,0.67)\",\n },\n dataCircle: {\n r: 2,\n strokeStyle: \"#ccc\",\n fillStyle: \"#fff\",\n lineWidth: 0.5,\n },\n dataLine: {\n strokeStyle: \"#0B2EE7\",\n lineWidth: 5,\n },\n};\nexport const baseRadarConfig: BaseConfig = {\n n: 0,\n dataRadiusOfPercent: [],\n dataRadius: [],\n angleArr: [],\n tooltipsContentArr: [],\n originDataSource: [],\n radius: 1,\n};\n/**\n * // 初始化参数配置\n * @param dataSource\n * @param radius\n * @returns BaseConfig\n */\nexport const constructBaseConfig = function (\n dataSource: Data[],\n radius: number\n) {\n const baseConfig: BaseConfig = cloneDeep(baseRadarConfig);\n baseConfig.radius = radius;\n if (dataSource?.length < 1) return baseConfig;\n baseConfig.originDataSource = dataSource;\n baseConfig.n = dataSource.length;\n const disAngle = (Math.PI * 2) / baseConfig.n;\n dataSource.forEach((data, i) => {\n baseConfig.dataRadiusOfPercent[i] = data.value / data.maxValue;\n baseConfig.dataRadius[i] = baseConfig.dataRadiusOfPercent[i] * radius;\n baseConfig.angleArr[i] = i * disAngle;\n });\n return baseConfig;\n};\n\nexport const constructUserConfig = function (\n dataFill: DataFill,\n dataCircle: DataCircle,\n dataLine: DataLine\n) {\n const userConfig: UserConfig = cloneDeep(baseUserConfig);\n merge(userConfig.dataFill, dataFill);\n merge(userConfig.dataCircle, dataCircle);\n merge(userConfig.dataLine, dataLine);\n return userConfig;\n};\n\n/**\n * 获取数据点相对于原点的坐标\n * n:多边形边数\n * dataRadiusArr: 数据点的坐标数组\n * angleArr: 多边形的角度数组\n */\nexport const getDataPointsPos = function (\n n: number,\n dataRadiusArr: number[],\n angleArr: number[]\n) {\n const dataPointsPosArray = [];\n for (let i = 0; i < n; i++) {\n const curPoinrPos: Axis = {\n x: 0,\n y: 0,\n };\n curPoinrPos.x = dataRadiusArr[i] * Math.sin(angleArr[i]);\n curPoinrPos.y = -dataRadiusArr[i] * Math.cos(angleArr[i]);\n dataPointsPosArray.push(curPoinrPos);\n }\n return dataPointsPosArray;\n};\n\n/**\n * 获取正多边形每个点的坐标位置数组(相对于原点)\n * n: 多边形的边数\n * r: 半径\n * origin: 原点位置\n */\nexport const getPolygonPos = function (n: number, r: number, origin: number[]) {\n const dotsArray = []; // 多边形每一个点的坐标数组,格式如[{x: 1, y: 2}]\n const angle = (Math.PI * 2) / n;\n for (let i = 0; i < n; i++) {\n const curPos: Axis = {\n x: 0,\n y: 0,\n };\n curPos.x = r * Math.sin(i * angle) + origin[0];\n curPos.y = -r * Math.cos(i * angle) + origin[1];\n dotsArray.push(curPos);\n }\n return dotsArray;\n};\n\n/**\n * 绘制闭合正多边形\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * fillStyle:填充样式\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawPolygon = function (\n context: CanvasRenderingContext2D,\n options: DrawPolygonOptions\n) {\n // 对传入参数进行默认值设置\n const n = options.n,\n r = options.r,\n origin = options.origin,\n strokeStyle = options.strokeStyle,\n lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n\n context.save();\n context.beginPath();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n context.moveTo(0, -r);\n for (let i = 0; i < n; i++) {\n context.rotate(angle);\n context.lineTo(0, -r);\n }\n context.closePath();\n context.stroke();\n\n if (options.strokeStyle) {\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n }\n if (options.fillStyle) {\n if (typeof options.fillStyle === \"string\") {\n context.fillStyle = options.fillStyle;\n } else if (options.fillStyle instanceof Array) {\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(-r, -r, r, r);\n options.fillStyle.forEach((colors) => {\n gradient.addColorStop(0, colors[0]);\n gradient.addColorStop(1, colors[1]);\n });\n context.fillStyle = gradient;\n }\n\n context.fill();\n }\n context.restore();\n};\n\n/**\n * 绘制线性渐变的多边形,\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * strokeStyle:线条样式\n * lineWidth: 线条宽度\n */\nexport const drawGradientPolygon = function (\n context: CanvasRenderingContext2D,\n options: GradientPolygon\n) {\n // 对传入参数进行默认值设置\n const { n, r, origin, strokeStyle } = options;\n const lineWidth = options.lineWidth * options.ratio,\n lineCap = \"butt\";\n context.save();\n const angle = (Math.PI * 2) / n;\n context.translate(origin[0], origin[1]);\n\n // 设置线条样式\n context.lineWidth = lineWidth;\n context.lineCap = lineCap;\n // 添加偏移量,使第一条边与正上方对齐\n context.rotate(-Math.PI / 2);\n\n for (let i = 0; i < n; i++) {\n // 计算当前边的起点和终点坐标\n const startX = r * Math.cos(angle * i),\n startY = r * Math.sin(angle * i),\n endX = r * Math.cos(angle * (i + 1)),\n endY = r * Math.sin(angle * (i + 1));\n // 开始一个新的路径\n context.beginPath();\n // 绘制多边形的一条边\n context.moveTo(startX, startY);\n context.lineTo(endX, endY);\n // 创建线性渐变对象\n const gradient = context.createLinearGradient(startX, startY, endX, endY);\n gradient.addColorStop(0, strokeStyle);\n gradient.addColorStop(0.5, \"#1D2B57\");\n gradient.addColorStop(0.6, \"#1D2B57\");\n gradient.addColorStop(1, strokeStyle);\n // 设置当前路径的描边样式为线性渐变\n context.strokeStyle = gradient;\n context.stroke();\n }\n context.restore();\n};\n\n/**\n * 绘制数据点连接线条(一次性画完)\n * dataPoints: 数据的位置数组\n * strokeStyle: 线条样式\n * lineWidth: 线条宽度\n */\nexport const drawDataLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataLineOptions\n) {\n const { strokeStyle, lineWidth, dataPoints } = options;\n const dataPointsLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.stroke();\n context.restore();\n};\n/**\n * 绘制放射性中心点到多边形顶点连线\n * @param context\n * @param origin\n * @param dataPoints 多边形顶点坐标\n */\nexport const drawVertexLine = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n dataPoints: Axis[]\n) {\n context.save();\n context.beginPath();\n dataPoints.map((point) => {\n context.moveTo(origin[0], origin[1]);\n context.lineTo(point.x, point.y);\n });\n context.strokeStyle = \"#1D2B57\";\n context.lineWidth = 2;\n context.stroke();\n context.restore();\n};\nexport const drawLeadLineAndText = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n r: number,\n dataPoints: Axis[],\n dataSource: Data[]\n) {\n context.save();\n const offsetX = r / 2,\n offsetY = r / 4,\n offsetEndX = r / 12 > 10 ? r / 12 : 10,\n rectSize = 12;\n dataPoints.map((point, i) => {\n let curPosX = point.x,\n curPosMiddleX = point.x,\n curPosEndX = point.x,\n curPosY = point.y,\n rectX = point.x;\n const color = dataSource[i]?.color || colorMap[i] || \"#ccc\";\n context.beginPath();\n context.moveTo(point.x, point.y);\n\n if (point.x - origin[0] >= 0) {\n //引线方向往右\n curPosX += offsetX;\n curPosMiddleX = curPosX + offsetX;\n curPosEndX = curPosMiddleX + offsetEndX;\n rectX = curPosX + rectSize;\n } else if (point.x - origin[0] < 0) {\n //引线方向往左\n curPosX -= offsetX;\n curPosMiddleX = curPosX - offsetX;\n curPosEndX = curPosMiddleX - offsetEndX;\n rectX = curPosMiddleX + rectSize;\n }\n\n if (point.y - origin[1] < 0) {\n curPosY -= offsetY;\n } else if (point.y - origin[1] > 0) {\n curPosY += offsetY;\n }\n context.lineTo(curPosX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = \"rgba(255, 255, 255, .1)\";\n context.stroke();\n context.beginPath();\n context.moveTo(curPosMiddleX, curPosY);\n context.lineTo(curPosEndX, curPosY);\n context.strokeStyle = color;\n context.lineWidth = 2;\n context.stroke();\n\n //文本\n const rectY = dataSource[i]?.percentValue\n ? curPosY - r / 3.5\n : curPosY - r / 5.5;\n const legendSize = r / 12;\n\n if (dataSource[i]?.name) {\n context.fillStyle = color;\n context.fillRect(rectX, rectY, rectSize, rectSize);\n\n context.textAlign = \"left\";\n context.font = `400 ${legendSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"rgba(255, 255, 255, .4)\";\n context.fillText(\n `${dataSource[i].name}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2\n );\n context.stroke();\n }\n if (dataSource[i]?.percentValue) {\n const percentSize = r / 10;\n context.textAlign = \"left\";\n context.font = `500 ${percentSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.fillText(\n `${dataSource[i]?.percentValue}`,\n rectX + rectSize * 1.5,\n rectY + rectSize / 2 + legendSize * 1.5\n );\n context.stroke();\n }\n });\n context.restore();\n};\n\n/**\n * 绘制数据点圆圈\n * dataPoints: 数据的位置数组\n * r: 圆圈半径\n * strokeStyle: 圆的描边样式\n * fillStyle: 圆的描边宽度\n * lineWidth: 圆的填充样式\n */\nexport const drawDataCircle = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataCircleOptions\n) {\n const { strokeStyle, fillStyle, dataPoints } = options;\n const r = options.r * ratio,\n lineWidth = options.lineWidth * ratio;\n\n const dataPointsPosArrayLen = dataPoints.length;\n for (let i = 0; i < dataPointsPosArrayLen; i++) {\n drawCircle(context, {\n x: dataPoints[i].x,\n y: dataPoints[i].y,\n r: r,\n originX: origin[0],\n originY: origin[1],\n strokeStyle: strokeStyle,\n lineWidth: lineWidth,\n fillStyle: fillStyle,\n });\n }\n};\n\n/**\n * 绘制圆圈\n * x: 圆心位置x\n * y: 圆心位置y\n * r: 半径\n * originX: 原点位置x\n * originY: 原点位置y\n * strokeStyle: 描边样式\n * lineWidth: 线条宽度\n * fillStyle: 填充样式\n */\nexport function drawCircle(\n context: CanvasRenderingContext2D,\n options: CircleOptions\n) {\n const { x, y, r, originX, originY, strokeStyle, lineWidth, fillStyle } =\n options;\n context.save();\n context.beginPath();\n context.translate(originX, originY);\n context.arc(x, y, r, 0, Math.PI * 2);\n context.closePath();\n context.strokeStyle = strokeStyle;\n context.lineWidth = lineWidth;\n context.lineJoin = \"round\";\n context.fillStyle = fillStyle;\n context.stroke();\n context.fill();\n context.restore();\n}\n\n/**\n * 绘制数据多边形填充\n * dataPoints: 数据的位置数组\n * fillStyle: 填充样式\n */\nexport const drawDataFill = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n options: DataFillProps\n) {\n const { fillStyle, dataPoints } = options;\n const dataPointsPosArrayLen = dataPoints.length;\n context.save();\n context.beginPath();\n context.translate(origin[0], origin[1]);\n context.moveTo(dataPoints[0].x, dataPoints[0].y);\n for (let i = 1; i < dataPointsPosArrayLen; i++) {\n context.lineTo(dataPoints[i].x, dataPoints[i].y);\n }\n context.closePath();\n context.fillStyle = fillStyle;\n context.fill();\n context.restore();\n};\n\n/**\n * 绘制数据点组成的图案\n * dataLineOptions\n * dataFillOptions\n * dataCircleOptions\n */\nexport const drawDataPoly = function (\n context: CanvasRenderingContext2D,\n origin: number[],\n ratio: number,\n options: DataPolyProps\n) {\n const { dataLineOptions, dataFillOptions, dataCircleOptions } = options;\n const dataPointsPosArrayLen = dataLineOptions.dataPoints.length;\n if (dataPointsPosArrayLen === 0) return;\n // 绘制数据点连接线条\n drawDataLine(context, origin, dataLineOptions);\n // 绘制数据多边形填充\n drawDataFill(context, origin, dataFillOptions);\n // 绘制数据点圆圈\n drawDataCircle(context, origin, ratio, dataCircleOptions);\n};\n\n/**\n * 绘制雷达的背景图\n * 参数options对象的属性如下:\n * layer: 多边形层数\n * n: 边数\n * r:半径\n * origin:正多边形的中心位置。数组形式[x, y]\n * oddStrokeStyle: index为奇数的多边形的描边颜色\n * oddFillStyle: index为奇数的多边形的填充颜色\n * evenStrokeStyle: index为偶数的多边形的描边颜色\n * evenFillStyle: index为偶数的多边形的填充颜色\n */\nexport const drawRadarBackground = function (\n context: CanvasRenderingContext2D,\n options: DrawRadarBgOption\n) {\n const { layer, n, r, ratio, origin, lineWidth } = options;\n const evenStrokeStyle = \"transparent\",\n oddStrokeStyle = \"transparent\",\n evenFillStyle = [[\"#3366FF\", \"#83F5E1\"]],\n oddFillStyle = \"#29292d\";\n // 由外向内绘画多边形\n for (let i = layer; i > 0; i--) {\n if (i === layer) {\n drawGradientPolygon(context, {\n n,\n r,\n origin,\n ratio,\n lineWidth,\n strokeStyle: \"rgba(51, 102, 255)\",\n });\n drawGradientPolygon(context, {\n n,\n r: r * 0.95,\n origin,\n ratio,\n strokeStyle: \"rgba(76,132,250,0.1)\",\n lineWidth,\n });\n } else {\n const layerDis = (r * 0.95) / layer;\n const fillStyle = i % 2 != 0 ? oddFillStyle : evenFillStyle,\n strokeStyle = i % 2 != 0 ? oddStrokeStyle : evenStrokeStyle,\n layerRadiu = layerDis * i;\n drawPolygon(context, {\n n,\n r: layerRadiu,\n origin,\n fillStyle,\n strokeStyle,\n lineWidth,\n ratio,\n });\n }\n }\n};\n","import React, { ReactElement, useEffect, useRef, useState } from \"react\";\nimport {\n baseRadarConfig,\n baseUserConfig,\n constructBaseConfig,\n constructUserConfig,\n drawDataPoly,\n drawLeadLineAndText,\n drawRadarBackground,\n drawVertexLine,\n getDataPointsPos,\n getPolygonPos,\n} from \"./utils.js\";\nimport { BaseConfig, RadarProps, UserConfig } from \"./interface.js\";\n\nexport function Radar({\n dataSource,\n radius,\n value,\n dataFill,\n dataCircle,\n dataLine,\n scale,\n ...props\n}: RadarProps): ReactElement {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const contextRef = useRef<CanvasRenderingContext2D>(null);\n const [baseConfig, setBaseConfig] = useState<BaseConfig>(baseRadarConfig);\n const [userConfig, setUserConfig] = useState<UserConfig>(baseUserConfig);\n\n const ratio = window.devicePixelRatio;\n useEffect(() => {\n const canvas = canvasRef.current;\n const context = canvas.getContext(\"2d\");\n const canvasWidth = canvas.clientWidth;\n const canvasHeight = canvas.clientHeight;\n // 根据设备像素比调整画布的实际像素大小\n canvas.width = canvasWidth * ratio;\n canvas.height = canvasHeight * ratio;\n const defaultRadius = Math.min(canvas.width, canvas.height) * scale; // 正多边形的默认半径\n\n contextRef.current = context;\n setBaseConfig(constructBaseConfig(dataSource, radius ?? defaultRadius));\n }, [dataSource, radius, scale]);\n useEffect(() => {\n setUserConfig(constructUserConfig(dataFill, dataCircle, dataLine));\n }, [dataFill, dataCircle, dataLine]);\n\n useEffect(() => {\n let radiusPrecent = 0,\n timer = null;\n const canvas = canvasRef.current;\n const context = contextRef.current;\n const origin = [canvas.width / 2, canvas.height / 2];\n\n if (context) {\n // 起requestAnimationFrame为了数值绘制区域有过渡效果\n const drawFrame = () => {\n timer = window.requestAnimationFrame(drawFrame);\n // 数据点坐标元素\n radiusPrecent += 0.05;\n if (radiusPrecent >= 1) {\n window.cancelAnimationFrame(timer);\n }\n // 清空画布\n context.clearRect(0, 0, canvas.width, canvas.height);\n // 绘制背景图\n drawRadarBackground(context, {\n layer: 5,\n n: baseConfig.n,\n r: baseConfig.radius,\n ratio,\n origin,\n lineWidth: 2,\n });\n\n const dataRadius = baseConfig.dataRadius.map((value) => {\n return value * radiusPrecent;\n });\n const dataPointsPosArray = getDataPointsPos(\n baseConfig.n,\n dataRadius,\n baseConfig.angleArr\n );\n const dataLineOptions = {\n dataPoints: dataPointsPosArray,\n strokeStyle: userConfig.dataLine.strokeStyle,\n lineWidth: userConfig.dataLine.lineWidth,\n };\n const dataCircleOptions = {\n dataPoints: dataPointsPosArray,\n r: userConfig.dataCircle.r,\n strokeStyle: userConfig.dataCircle.strokeStyle,\n fillStyle: userConfig.dataCircle.fillStyle,\n lineWidth: userConfig.dataCircle.lineWidth,\n };\n const dataFillOptions = {\n dataPoints: dataPointsPosArray,\n fillStyle: userConfig.dataFill.fillStyle,\n };\n drawDataPoly(context, origin, ratio, {\n dataLineOptions: dataLineOptions,\n dataFillOptions: dataFillOptions,\n dataCircleOptions: dataCircleOptions,\n });\n\n //绘制放射性中心点到多边形顶点连线\n const polygonOuterPointsPosArr = getPolygonPos(\n baseConfig.n,\n baseConfig.radius,\n origin\n );\n drawVertexLine(context, origin, polygonOuterPointsPosArr);\n drawLeadLineAndText(\n context,\n origin,\n baseConfig.radius,\n polygonOuterPointsPosArr,\n baseConfig.originDataSource\n );\n if (value) {\n const fontSize = baseConfig.radius / 5;\n context.font = `bold ${fontSize}px HarmonyOS_Sans_SC_Black`;\n context.fillStyle = \"#fff\";\n context.textAlign = \"center\";\n context.textBaseline = \"middle\";\n context.fillText(`${value}`, origin[0], origin[1]);\n }\n };\n drawFrame();\n }\n }, [baseConfig, userConfig, value]);\n\n return (\n <div\n className=\"radarWrap\"\n style={{ width: `${props.width}px`, height: `${props.height}px` }}\n >\n <canvas className=\"canvasWrap\" ref={canvasRef} />\n </div>\n );\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\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.radarWrap{position:relative;width:100%;height:100%}.radarWrap .canvasWrap{display:block;width:100%;height:100%}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}"],"names":["colorMap","baseUserConfig","dataFill","fillStyle","dataCircle","r","strokeStyle","lineWidth","dataLine","baseRadarConfig","n","dataRadiusOfPercent","dataRadius","angleArr","tooltipsContentArr","originDataSource","radius","constructBaseConfig","dataSource","baseConfig","cloneDeep","length","disAngle","Math","PI","forEach","data","i","value","maxValue","constructUserConfig","userConfig","merge","getDataPointsPos","dataRadiusArr","dataPointsPosArray","curPoinrPos","x","y","sin","cos","push","getPolygonPos","origin","dotsArray","angle","curPos","drawPolygon","context","options","ratio","save","beginPath","translate","moveTo","rotate","lineTo","closePath","stroke","lineCap","Array","gradient","createLinearGradient","colors","addColorStop","fill","restore","drawGradientPolygon","startX","startY","endX","endY","drawVertexLine","dataPoints","map","point","drawLeadLineAndText","offsetX","offsetY","offsetEndX","_dataSource$i","_dataSource$i2","_dataSource$i3","_dataSource$i4","curPosX","curPosMiddleX","curPosEndX","curPosY","rectX","color","rectY","percentValue","legendSize","name","fillRect","textAlign","font","concat","fillText","rectSize","_dataSource$i5","percentSize","drawCircle","originX","originY","arc","lineJoin","drawDataPoly","dataLineOptions","dataFillOptions","dataCircleOptions","dataPointsLen","drawDataLine","dataPointsPosArrayLen","drawDataFill","drawDataCircle","drawRadarBackground","layer","evenFillStyle","Radar","_ref","scale","props","_objectWithoutProperties","_excluded","canvasRef","useRef","contextRef","setBaseConfig","useState","setUserConfig","window","devicePixelRatio","useEffect","canvas","current","getContext","canvasWidth","clientWidth","canvasHeight","clientHeight","width","height","defaultRadius","min","radiusPrecent","timer","drawFrame","requestAnimationFrame","cancelAnimationFrame","clearRect","polygonOuterPointsPosArr","fontSize","textBaseline","React","className","style","ref","___CSS_LOADER_EXPORT___","module","id","toString","source","excluded","key","target","sourceKeys","Object","keys","indexOf","getOwnPropertySymbols","sourceSymbolKeys","prototype","propertyIsEnumerable","call"],"sourceRoot":""}