@delon/chart 12.4.2 → 13.0.0-beta.1

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 (360) hide show
  1. package/bar/bar.component.d.ts +4 -1
  2. package/bar/bar.d.ts +1 -0
  3. package/bar/bar.module.d.ts +8 -0
  4. package/bar/package.json +5 -6
  5. package/card/card.component.d.ts +7 -4
  6. package/card/card.d.ts +1 -0
  7. package/card/card.module.d.ts +9 -0
  8. package/card/package.json +5 -6
  9. package/card/style/index.less +11 -0
  10. package/chart-echarts/delon-chart-chart-echarts.d.ts +1 -0
  11. package/chart-echarts/echarts.component.d.ts +3 -0
  12. package/chart-echarts/echarts.module.d.ts +7 -0
  13. package/chart-echarts/echarts.service.d.ts +3 -0
  14. package/chart-echarts/package.json +5 -6
  15. package/chart.d.ts +1 -0
  16. package/core/delon-chart-core.d.ts +1 -0
  17. package/core/g2.base.component.d.ts +4 -1
  18. package/core/g2.servicce.d.ts +3 -0
  19. package/core/package.json +5 -6
  20. package/custom/custom.component.d.ts +4 -1
  21. package/custom/custom.module.d.ts +7 -0
  22. package/custom/delon-chart-custom.d.ts +5 -0
  23. package/custom/package.json +6 -7
  24. package/esm2020/bar/bar.component.mjs +143 -0
  25. package/{esm2015/bar/bar.js → esm2020/bar/bar.mjs} +0 -0
  26. package/esm2020/bar/bar.module.mjs +21 -0
  27. package/{esm2015/bar/public_api.js → esm2020/bar/public_api.mjs} +0 -0
  28. package/esm2020/card/card.component.mjs +55 -0
  29. package/{esm2015/card/card.js → esm2020/card/card.mjs} +0 -0
  30. package/esm2020/card/card.module.mjs +22 -0
  31. package/{esm2015/card/public_api.js → esm2020/card/public_api.mjs} +0 -0
  32. package/{esm2015/chart-echarts/delon-chart-chart-echarts.js → esm2020/chart-echarts/delon-chart-chart-echarts.mjs} +0 -0
  33. package/esm2020/chart-echarts/echarts.component.mjs +162 -0
  34. package/esm2020/chart-echarts/echarts.module.mjs +20 -0
  35. package/esm2020/chart-echarts/echarts.service.mjs +60 -0
  36. package/{esm2015/chart-echarts/echarts.types.js → esm2020/chart-echarts/echarts.types.mjs} +0 -0
  37. package/{esm2015/chart-echarts/public_api.js → esm2020/chart-echarts/public_api.mjs} +0 -0
  38. package/{esm2015/chart.js → esm2020/chart.mjs} +0 -0
  39. package/{esm2015/core/delon-chart-core.js → esm2020/core/delon-chart-core.mjs} +0 -0
  40. package/esm2020/core/g2.base.component.mjs +109 -0
  41. package/esm2020/core/g2.servicce.mjs +54 -0
  42. package/{esm2015/core/public_api.js → esm2020/core/public_api.mjs} +0 -0
  43. package/{esm2015/core/types/interaction.js → esm2020/core/types/interaction.mjs} +0 -0
  44. package/{esm2015/core/types/time.js → esm2020/core/types/time.mjs} +0 -0
  45. package/esm2020/core/utils.mjs +21 -0
  46. package/esm2020/custom/custom.component.mjs +70 -0
  47. package/esm2020/custom/custom.module.mjs +20 -0
  48. package/esm2020/custom/delon-chart-custom.mjs +5 -0
  49. package/{esm2015/custom/public_api.js → esm2020/custom/public_api.mjs} +0 -0
  50. package/{esm2015/mini-progress/mini-progress.js → esm2020/gauge/delon-chart-gauge.mjs} +1 -1
  51. package/esm2020/gauge/gauge.component.mjs +169 -0
  52. package/esm2020/gauge/gauge.module.mjs +20 -0
  53. package/{esm2015/gauge/public_api.js → esm2020/gauge/public_api.mjs} +0 -0
  54. package/esm2020/mini-area/delon-chart-mini-area.mjs +5 -0
  55. package/esm2020/mini-area/mini-area.component.mjs +133 -0
  56. package/esm2020/mini-area/mini-area.module.mjs +19 -0
  57. package/{esm2015/mini-area/public_api.js → esm2020/mini-area/public_api.mjs} +0 -0
  58. package/esm2020/mini-bar/delon-chart-mini-bar.mjs +5 -0
  59. package/esm2020/mini-bar/mini-bar.component.mjs +100 -0
  60. package/esm2020/mini-bar/mini-bar.module.mjs +19 -0
  61. package/{esm2015/mini-bar/public_api.js → esm2020/mini-bar/public_api.mjs} +0 -0
  62. package/{esm2015/gauge/gauge.js → esm2020/mini-progress/delon-chart-mini-progress.mjs} +1 -1
  63. package/esm2020/mini-progress/mini-progress.component.mjs +46 -0
  64. package/esm2020/mini-progress/mini-progress.module.mjs +21 -0
  65. package/{esm2015/mini-progress/public_api.js → esm2020/mini-progress/public_api.mjs} +0 -0
  66. package/{esm2015/pie/pie.js → esm2020/number-info/delon-chart-number-info.mjs} +1 -1
  67. package/esm2020/number-info/number-info.component.mjs +45 -0
  68. package/esm2020/number-info/number-info.module.mjs +21 -0
  69. package/{esm2015/number-info/public_api.js → esm2020/number-info/public_api.mjs} +0 -0
  70. package/{esm2015/number-info/number-info.js → esm2020/pie/delon-chart-pie.mjs} +1 -1
  71. package/esm2020/pie/pie.component.mjs +215 -0
  72. package/esm2020/pie/pie.module.mjs +22 -0
  73. package/{esm2015/pie/public_api.js → esm2020/pie/public_api.mjs} +0 -0
  74. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  75. package/esm2020/radar/delon-chart-radar.mjs +5 -0
  76. package/{esm2015/radar/public_api.js → esm2020/radar/public_api.mjs} +0 -0
  77. package/esm2020/radar/radar.component.mjs +148 -0
  78. package/esm2020/radar/radar.module.mjs +22 -0
  79. package/esm2020/single-bar/delon-chart-single-bar.mjs +5 -0
  80. package/{esm2015/single-bar/public_api.js → esm2020/single-bar/public_api.mjs} +0 -0
  81. package/esm2020/single-bar/single-bar.component.mjs +126 -0
  82. package/esm2020/single-bar/single-bar.module.mjs +19 -0
  83. package/esm2020/tag-cloud/delon-chart-tag-cloud.mjs +5 -0
  84. package/{esm2015/tag-cloud/public_api.js → esm2020/tag-cloud/public_api.mjs} +0 -0
  85. package/esm2020/tag-cloud/tag-cloud.component.mjs +161 -0
  86. package/esm2020/tag-cloud/tag-cloud.module.mjs +20 -0
  87. package/esm2020/timeline/delon-chart-timeline.mjs +5 -0
  88. package/{esm2015/timeline/public_api.js → esm2020/timeline/public_api.mjs} +0 -0
  89. package/esm2020/timeline/timeline.component.mjs +204 -0
  90. package/esm2020/timeline/timeline.module.mjs +21 -0
  91. package/esm2020/trend/delon-chart-trend.mjs +5 -0
  92. package/{esm2015/trend/public_api.js → esm2020/trend/public_api.mjs} +0 -0
  93. package/esm2020/trend/trend.component.mjs +52 -0
  94. package/esm2020/trend/trend.module.mjs +20 -0
  95. package/esm2020/water-wave/delon-chart-water-wave.mjs +5 -0
  96. package/{esm2015/water-wave/public_api.js → esm2020/water-wave/public_api.mjs} +0 -0
  97. package/esm2020/water-wave/water-wave.component.mjs +221 -0
  98. package/esm2020/water-wave/water-wave.module.mjs +20 -0
  99. package/fesm2015/{bar.js → bar.mjs} +57 -34
  100. package/fesm2015/bar.mjs.map +1 -0
  101. package/fesm2015/card.mjs +81 -0
  102. package/fesm2015/card.mjs.map +1 -0
  103. package/fesm2015/{chart.js → chart.mjs} +1 -1
  104. package/fesm2015/chart.mjs.map +1 -0
  105. package/fesm2015/{delon-chart-chart-echarts.js → delon-chart-chart-echarts.mjs} +62 -53
  106. package/fesm2015/delon-chart-chart-echarts.mjs.map +1 -0
  107. package/fesm2015/{delon-chart-core.js → delon-chart-core.mjs} +23 -29
  108. package/fesm2015/delon-chart-core.mjs.map +1 -0
  109. package/fesm2015/delon-chart-custom.mjs +94 -0
  110. package/fesm2015/delon-chart-custom.mjs.map +1 -0
  111. package/fesm2015/{gauge.js → delon-chart-gauge.mjs} +46 -31
  112. package/fesm2015/delon-chart-gauge.mjs.map +1 -0
  113. package/fesm2015/delon-chart-mini-area.mjs +156 -0
  114. package/fesm2015/delon-chart-mini-area.mjs.map +1 -0
  115. package/fesm2015/delon-chart-mini-bar.mjs +123 -0
  116. package/fesm2015/delon-chart-mini-bar.mjs.map +1 -0
  117. package/fesm2015/delon-chart-mini-progress.mjs +71 -0
  118. package/fesm2015/delon-chart-mini-progress.mjs.map +1 -0
  119. package/fesm2015/delon-chart-number-info.mjs +70 -0
  120. package/fesm2015/delon-chart-number-info.mjs.map +1 -0
  121. package/fesm2015/delon-chart-pie.mjs +241 -0
  122. package/fesm2015/delon-chart-pie.mjs.map +1 -0
  123. package/fesm2015/{radar.js → delon-chart-radar.mjs} +43 -33
  124. package/fesm2015/delon-chart-radar.mjs.map +1 -0
  125. package/fesm2015/delon-chart-single-bar.mjs +147 -0
  126. package/fesm2015/delon-chart-single-bar.mjs.map +1 -0
  127. package/fesm2015/{tag-cloud.js → delon-chart-tag-cloud.mjs} +39 -26
  128. package/fesm2015/delon-chart-tag-cloud.mjs.map +1 -0
  129. package/fesm2015/{timeline.js → delon-chart-timeline.mjs} +64 -36
  130. package/fesm2015/delon-chart-timeline.mjs.map +1 -0
  131. package/fesm2015/delon-chart-trend.mjs +76 -0
  132. package/fesm2015/delon-chart-trend.mjs.map +1 -0
  133. package/fesm2015/{water-wave.js → delon-chart-water-wave.mjs} +38 -37
  134. package/fesm2015/delon-chart-water-wave.mjs.map +1 -0
  135. package/fesm2020/bar.mjs +168 -0
  136. package/fesm2020/bar.mjs.map +1 -0
  137. package/fesm2020/card.mjs +81 -0
  138. package/fesm2020/card.mjs.map +1 -0
  139. package/fesm2020/chart.mjs +7 -0
  140. package/fesm2020/chart.mjs.map +1 -0
  141. package/fesm2020/delon-chart-chart-echarts.mjs +242 -0
  142. package/fesm2020/delon-chart-chart-echarts.mjs.map +1 -0
  143. package/fesm2020/delon-chart-core.mjs +187 -0
  144. package/fesm2020/delon-chart-core.mjs.map +1 -0
  145. package/fesm2020/delon-chart-custom.mjs +94 -0
  146. package/fesm2020/delon-chart-custom.mjs.map +1 -0
  147. package/fesm2020/delon-chart-gauge.mjs +193 -0
  148. package/fesm2020/delon-chart-gauge.mjs.map +1 -0
  149. package/fesm2020/delon-chart-mini-area.mjs +156 -0
  150. package/fesm2020/delon-chart-mini-area.mjs.map +1 -0
  151. package/fesm2020/delon-chart-mini-bar.mjs +123 -0
  152. package/fesm2020/delon-chart-mini-bar.mjs.map +1 -0
  153. package/fesm2020/delon-chart-mini-progress.mjs +71 -0
  154. package/fesm2020/delon-chart-mini-progress.mjs.map +1 -0
  155. package/fesm2020/delon-chart-number-info.mjs +70 -0
  156. package/fesm2020/delon-chart-number-info.mjs.map +1 -0
  157. package/fesm2020/delon-chart-pie.mjs +241 -0
  158. package/fesm2020/delon-chart-pie.mjs.map +1 -0
  159. package/fesm2020/delon-chart-radar.mjs +174 -0
  160. package/fesm2020/delon-chart-radar.mjs.map +1 -0
  161. package/fesm2020/delon-chart-single-bar.mjs +149 -0
  162. package/fesm2020/delon-chart-single-bar.mjs.map +1 -0
  163. package/fesm2020/delon-chart-tag-cloud.mjs +185 -0
  164. package/fesm2020/delon-chart-tag-cloud.mjs.map +1 -0
  165. package/fesm2020/delon-chart-timeline.mjs +229 -0
  166. package/fesm2020/delon-chart-timeline.mjs.map +1 -0
  167. package/fesm2020/delon-chart-trend.mjs +76 -0
  168. package/fesm2020/delon-chart-trend.mjs.map +1 -0
  169. package/fesm2020/delon-chart-water-wave.mjs +245 -0
  170. package/fesm2020/delon-chart-water-wave.mjs.map +1 -0
  171. package/{mini-bar/mini-bar.d.ts → gauge/delon-chart-gauge.d.ts} +1 -0
  172. package/gauge/gauge.component.d.ts +8 -5
  173. package/gauge/gauge.module.d.ts +7 -0
  174. package/gauge/package.json +6 -7
  175. package/mini-area/delon-chart-mini-area.d.ts +5 -0
  176. package/mini-area/mini-area.component.d.ts +3 -0
  177. package/mini-area/mini-area.module.d.ts +6 -0
  178. package/mini-area/package.json +6 -7
  179. package/mini-bar/delon-chart-mini-bar.d.ts +5 -0
  180. package/mini-bar/mini-bar.component.d.ts +3 -0
  181. package/mini-bar/mini-bar.module.d.ts +6 -0
  182. package/mini-bar/package.json +6 -7
  183. package/mini-progress/delon-chart-mini-progress.d.ts +5 -0
  184. package/mini-progress/mini-progress.component.d.ts +6 -3
  185. package/mini-progress/mini-progress.module.d.ts +8 -0
  186. package/mini-progress/package.json +6 -7
  187. package/mini-progress/style/index.less +5 -0
  188. package/number-info/delon-chart-number-info.d.ts +5 -0
  189. package/number-info/number-info.component.d.ts +9 -6
  190. package/number-info/number-info.module.d.ts +8 -0
  191. package/number-info/package.json +6 -7
  192. package/number-info/style/index.less +12 -0
  193. package/package.json +160 -12
  194. package/{custom/g2Custom.d.ts → pie/delon-chart-pie.d.ts} +1 -0
  195. package/pie/package.json +6 -7
  196. package/pie/pie.component.d.ts +8 -5
  197. package/pie/pie.module.d.ts +9 -0
  198. package/pie/style/index.less +14 -0
  199. package/{gauge/gauge.d.ts → radar/delon-chart-radar.d.ts} +1 -0
  200. package/radar/package.json +6 -7
  201. package/radar/radar.component.d.ts +4 -1
  202. package/radar/radar.module.d.ts +9 -0
  203. package/radar/style/index.less +6 -0
  204. package/single-bar/delon-chart-single-bar.d.ts +5 -0
  205. package/single-bar/package.json +6 -7
  206. package/single-bar/single-bar.component.d.ts +4 -1
  207. package/single-bar/single-bar.module.d.ts +6 -0
  208. package/tag-cloud/delon-chart-tag-cloud.d.ts +5 -0
  209. package/tag-cloud/package.json +6 -7
  210. package/tag-cloud/tag-cloud.component.d.ts +3 -0
  211. package/tag-cloud/tag-cloud.module.d.ts +7 -0
  212. package/timeline/delon-chart-timeline.d.ts +5 -0
  213. package/timeline/package.json +6 -7
  214. package/timeline/timeline.component.d.ts +5 -2
  215. package/timeline/timeline.module.d.ts +8 -0
  216. package/{mini-area/mini-area.d.ts → trend/delon-chart-trend.d.ts} +1 -0
  217. package/trend/package.json +6 -7
  218. package/trend/style/index.less +6 -0
  219. package/trend/trend.component.d.ts +4 -1
  220. package/trend/trend.module.d.ts +7 -0
  221. package/water-wave/delon-chart-water-wave.d.ts +5 -0
  222. package/water-wave/package.json +6 -7
  223. package/water-wave/style/index.less +4 -0
  224. package/water-wave/water-wave.component.d.ts +5 -2
  225. package/water-wave/water-wave.module.d.ts +7 -0
  226. package/bar/bar.metadata.json +0 -1
  227. package/bundles/bar.umd.js +0 -471
  228. package/bundles/bar.umd.js.map +0 -1
  229. package/bundles/card.umd.js +0 -408
  230. package/bundles/card.umd.js.map +0 -1
  231. package/bundles/chart.umd.js +0 -19
  232. package/bundles/chart.umd.js.map +0 -1
  233. package/bundles/delon-chart-chart-echarts.umd.js +0 -617
  234. package/bundles/delon-chart-chart-echarts.umd.js.map +0 -1
  235. package/bundles/delon-chart-core.umd.js +0 -550
  236. package/bundles/delon-chart-core.umd.js.map +0 -1
  237. package/bundles/g2Custom.umd.js +0 -407
  238. package/bundles/g2Custom.umd.js.map +0 -1
  239. package/bundles/gauge.umd.js +0 -511
  240. package/bundles/gauge.umd.js.map +0 -1
  241. package/bundles/mini-area.umd.js +0 -471
  242. package/bundles/mini-area.umd.js.map +0 -1
  243. package/bundles/mini-bar.umd.js +0 -444
  244. package/bundles/mini-bar.umd.js.map +0 -1
  245. package/bundles/mini-progress.umd.js +0 -401
  246. package/bundles/mini-progress.umd.js.map +0 -1
  247. package/bundles/number-info.umd.js +0 -392
  248. package/bundles/number-info.umd.js.map +0 -1
  249. package/bundles/pie.umd.js +0 -567
  250. package/bundles/pie.umd.js.map +0 -1
  251. package/bundles/radar.umd.js +0 -497
  252. package/bundles/radar.umd.js.map +0 -1
  253. package/bundles/single-bar.umd.js +0 -464
  254. package/bundles/single-bar.umd.js.map +0 -1
  255. package/bundles/tag-cloud.umd.js +0 -495
  256. package/bundles/tag-cloud.umd.js.map +0 -1
  257. package/bundles/timeline.umd.js +0 -524
  258. package/bundles/timeline.umd.js.map +0 -1
  259. package/bundles/trend.umd.js +0 -391
  260. package/bundles/trend.umd.js.map +0 -1
  261. package/bundles/water-wave.umd.js +0 -587
  262. package/bundles/water-wave.umd.js.map +0 -1
  263. package/card/card.metadata.json +0 -1
  264. package/chart-echarts/delon-chart-chart-echarts.metadata.json +0 -1
  265. package/chart.metadata.json +0 -1
  266. package/core/delon-chart-core.metadata.json +0 -1
  267. package/custom/g2Custom.metadata.json +0 -1
  268. package/esm2015/bar/bar.component.js +0 -124
  269. package/esm2015/bar/bar.module.js +0 -16
  270. package/esm2015/card/card.component.js +0 -52
  271. package/esm2015/card/card.module.js +0 -17
  272. package/esm2015/chart-echarts/echarts.component.js +0 -152
  273. package/esm2015/chart-echarts/echarts.module.js +0 -15
  274. package/esm2015/chart-echarts/echarts.service.js +0 -64
  275. package/esm2015/core/g2.base.component.js +0 -110
  276. package/esm2015/core/g2.servicce.js +0 -58
  277. package/esm2015/core/utils.js +0 -15
  278. package/esm2015/custom/custom.component.js +0 -58
  279. package/esm2015/custom/custom.module.js +0 -15
  280. package/esm2015/custom/g2Custom.js +0 -5
  281. package/esm2015/gauge/gauge.component.js +0 -158
  282. package/esm2015/gauge/gauge.module.js +0 -15
  283. package/esm2015/mini-area/mini-area.component.js +0 -117
  284. package/esm2015/mini-area/mini-area.js +0 -5
  285. package/esm2015/mini-area/mini-area.module.js +0 -14
  286. package/esm2015/mini-bar/mini-bar.component.js +0 -90
  287. package/esm2015/mini-bar/mini-bar.js +0 -5
  288. package/esm2015/mini-bar/mini-bar.module.js +0 -14
  289. package/esm2015/mini-progress/mini-progress.component.js +0 -50
  290. package/esm2015/mini-progress/mini-progress.module.js +0 -16
  291. package/esm2015/number-info/number-info.component.js +0 -40
  292. package/esm2015/number-info/number-info.module.js +0 -16
  293. package/esm2015/pie/pie.component.js +0 -197
  294. package/esm2015/pie/pie.module.js +0 -17
  295. package/esm2015/radar/radar.component.js +0 -142
  296. package/esm2015/radar/radar.js +0 -5
  297. package/esm2015/radar/radar.module.js +0 -17
  298. package/esm2015/single-bar/single-bar.component.js +0 -111
  299. package/esm2015/single-bar/single-bar.js +0 -5
  300. package/esm2015/single-bar/single-bar.module.js +0 -14
  301. package/esm2015/tag-cloud/tag-cloud.component.js +0 -142
  302. package/esm2015/tag-cloud/tag-cloud.js +0 -5
  303. package/esm2015/tag-cloud/tag-cloud.module.js +0 -15
  304. package/esm2015/timeline/timeline.component.js +0 -178
  305. package/esm2015/timeline/timeline.js +0 -5
  306. package/esm2015/timeline/timeline.module.js +0 -16
  307. package/esm2015/trend/trend.component.js +0 -42
  308. package/esm2015/trend/trend.js +0 -5
  309. package/esm2015/trend/trend.module.js +0 -15
  310. package/esm2015/water-wave/water-wave.component.js +0 -224
  311. package/esm2015/water-wave/water-wave.js +0 -5
  312. package/esm2015/water-wave/water-wave.module.js +0 -15
  313. package/fesm2015/bar.js.map +0 -1
  314. package/fesm2015/card.js +0 -74
  315. package/fesm2015/card.js.map +0 -1
  316. package/fesm2015/chart.js.map +0 -1
  317. package/fesm2015/delon-chart-chart-echarts.js.map +0 -1
  318. package/fesm2015/delon-chart-core.js.map +0 -1
  319. package/fesm2015/g2Custom.js +0 -78
  320. package/fesm2015/g2Custom.js.map +0 -1
  321. package/fesm2015/gauge.js.map +0 -1
  322. package/fesm2015/mini-area.js +0 -136
  323. package/fesm2015/mini-area.js.map +0 -1
  324. package/fesm2015/mini-bar.js +0 -109
  325. package/fesm2015/mini-bar.js.map +0 -1
  326. package/fesm2015/mini-progress.js +0 -70
  327. package/fesm2015/mini-progress.js.map +0 -1
  328. package/fesm2015/number-info.js +0 -61
  329. package/fesm2015/number-info.js.map +0 -1
  330. package/fesm2015/pie.js +0 -219
  331. package/fesm2015/pie.js.map +0 -1
  332. package/fesm2015/radar.js.map +0 -1
  333. package/fesm2015/single-bar.js +0 -130
  334. package/fesm2015/single-bar.js.map +0 -1
  335. package/fesm2015/tag-cloud.js.map +0 -1
  336. package/fesm2015/timeline.js.map +0 -1
  337. package/fesm2015/trend.js +0 -62
  338. package/fesm2015/trend.js.map +0 -1
  339. package/fesm2015/water-wave.js.map +0 -1
  340. package/gauge/gauge.metadata.json +0 -1
  341. package/mini-area/mini-area.metadata.json +0 -1
  342. package/mini-bar/mini-bar.metadata.json +0 -1
  343. package/mini-progress/mini-progress.d.ts +0 -4
  344. package/mini-progress/mini-progress.metadata.json +0 -1
  345. package/number-info/number-info.d.ts +0 -4
  346. package/number-info/number-info.metadata.json +0 -1
  347. package/pie/pie.d.ts +0 -4
  348. package/pie/pie.metadata.json +0 -1
  349. package/radar/radar.d.ts +0 -4
  350. package/radar/radar.metadata.json +0 -1
  351. package/single-bar/single-bar.d.ts +0 -4
  352. package/single-bar/single-bar.metadata.json +0 -1
  353. package/tag-cloud/tag-cloud.d.ts +0 -4
  354. package/tag-cloud/tag-cloud.metadata.json +0 -1
  355. package/timeline/timeline.d.ts +0 -4
  356. package/timeline/timeline.metadata.json +0 -1
  357. package/trend/trend.d.ts +0 -4
  358. package/trend/trend.metadata.json +0 -1
  359. package/water-wave/water-wave.d.ts +0 -4
  360. package/water-wave/water-wave.metadata.json +0 -1
@@ -0,0 +1,70 @@
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, NgModule } from '@angular/core';
4
+ import { InputNumber } from '@delon/util/decorator';
5
+ import * as i1 from '@angular/common';
6
+ import { CommonModule } from '@angular/common';
7
+ import * as i2 from 'ng-zorro-antd/core/outlet';
8
+ import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
9
+ import * as i3 from 'ng-zorro-antd/icon';
10
+ import { NzIconModule } from 'ng-zorro-antd/icon';
11
+
12
+ class NumberInfoComponent {
13
+ constructor() {
14
+ /** 状态样式 */
15
+ this.theme = 'light';
16
+ /** 设置数字和描述直接的间距(像素) */
17
+ this.gap = 8;
18
+ }
19
+ }
20
+ NumberInfoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
21
+ NumberInfoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: NumberInfoComponent, selector: "number-info", inputs: { title: "title", subTitle: "subTitle", total: "total", subTotal: "subTotal", suffix: "suffix", status: "status", theme: "theme", gap: "gap" }, host: { properties: { "class.number-info": "true", "class.number-info__light": "theme === 'light'", "class.number-info__default": "theme === 'default'" } }, exportAs: ["numberInfo"], ngImport: i0, template: "<div *ngIf=\"title\" class=\"number-info__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"subTitle\" class=\"number-info__title-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">{{ subTitle }}</ng-container>\n</div>\n<div class=\"number-info__value\" [ngStyle]=\"{ 'margin-top.px': gap }\">\n <span class=\"number-info__value-text\">\n <ng-container *nzStringTemplateOutlet=\"total\">{{ total }}</ng-container>\n <em class=\"number-info__value-suffix\" *ngIf=\"suffix\">{{ suffix }}</em>\n </span>\n <span *ngIf=\"status || subTotal\" class=\"number-info__value-text number-info__value-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTotal\">{{ subTotal }}</ng-container>\n <i *ngIf=\"status\" nz-icon nzType=\"caret-{{ status }}\"></i>\n </span>\n</div>\n", directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i3.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
22
+ __decorate([
23
+ InputNumber()
24
+ ], NumberInfoComponent.prototype, "gap", void 0);
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'number-info', exportAs: 'numberInfo', host: {
28
+ '[class.number-info]': `true`,
29
+ '[class.number-info__light]': `theme === 'light'`,
30
+ '[class.number-info__default]': `theme === 'default'`
31
+ }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"title\" class=\"number-info__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"subTitle\" class=\"number-info__title-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">{{ subTitle }}</ng-container>\n</div>\n<div class=\"number-info__value\" [ngStyle]=\"{ 'margin-top.px': gap }\">\n <span class=\"number-info__value-text\">\n <ng-container *nzStringTemplateOutlet=\"total\">{{ total }}</ng-container>\n <em class=\"number-info__value-suffix\" *ngIf=\"suffix\">{{ suffix }}</em>\n </span>\n <span *ngIf=\"status || subTotal\" class=\"number-info__value-text number-info__value-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTotal\">{{ subTotal }}</ng-container>\n <i *ngIf=\"status\" nz-icon nzType=\"caret-{{ status }}\"></i>\n </span>\n</div>\n" }]
32
+ }], propDecorators: { title: [{
33
+ type: Input
34
+ }], subTitle: [{
35
+ type: Input
36
+ }], total: [{
37
+ type: Input
38
+ }], subTotal: [{
39
+ type: Input
40
+ }], suffix: [{
41
+ type: Input
42
+ }], status: [{
43
+ type: Input
44
+ }], theme: [{
45
+ type: Input
46
+ }], gap: [{
47
+ type: Input
48
+ }] } });
49
+
50
+ const COMPONENTS = [NumberInfoComponent];
51
+ class NumberInfoModule {
52
+ }
53
+ NumberInfoModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
54
+ NumberInfoModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, declarations: [NumberInfoComponent], imports: [CommonModule, NzIconModule, NzOutletModule], exports: [NumberInfoComponent] });
55
+ NumberInfoModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, imports: [[CommonModule, NzIconModule, NzOutletModule]] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: NumberInfoModule, decorators: [{
57
+ type: NgModule,
58
+ args: [{
59
+ imports: [CommonModule, NzIconModule, NzOutletModule],
60
+ declarations: COMPONENTS,
61
+ exports: COMPONENTS
62
+ }]
63
+ }] });
64
+
65
+ /**
66
+ * Generated bundle index. Do not edit.
67
+ */
68
+
69
+ export { NumberInfoComponent, NumberInfoModule };
70
+ //# sourceMappingURL=delon-chart-number-info.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delon-chart-number-info.mjs","sources":["../../../../packages/chart/number-info/number-info.component.ts","../../../../packages/chart/number-info/number-info.component.html","../../../../packages/chart/number-info/number-info.module.ts","../../../../packages/chart/number-info/delon-chart-number-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, Input, TemplateRef, ViewEncapsulation } from '@angular/core';\n\nimport { InputNumber, NumberInput } from '@delon/util/decorator';\n\n@Component({\n selector: 'number-info',\n exportAs: 'numberInfo',\n templateUrl: './number-info.component.html',\n host: {\n '[class.number-info]': `true`,\n '[class.number-info__light]': `theme === 'light'`,\n '[class.number-info__default]': `theme === 'default'`\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class NumberInfoComponent {\n static ngAcceptInputType_gap: NumberInput;\n\n /** 标题 */\n @Input() title?: string | TemplateRef<void> | null;\n /** 子标题 */\n @Input() subTitle?: string | TemplateRef<void> | null;\n /** 总量 */\n @Input() total?: string | number | TemplateRef<void> | null;\n /** 总量后缀 */\n @Input() subTotal?: string | number | TemplateRef<void> | null;\n /** 子总量 */\n @Input() suffix?: string | null;\n /** 增加状态 */\n @Input() status?: 'up' | 'down';\n /** 状态样式 */\n @Input() theme: 'light' | 'default' = 'light';\n /** 设置数字和描述直接的间距(像素) */\n @Input() @InputNumber() gap = 8;\n}\n","<div *ngIf=\"title\" class=\"number-info__title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n</div>\n<div *ngIf=\"subTitle\" class=\"number-info__title-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">{{ subTitle }}</ng-container>\n</div>\n<div class=\"number-info__value\" [ngStyle]=\"{ 'margin-top.px': gap }\">\n <span class=\"number-info__value-text\">\n <ng-container *nzStringTemplateOutlet=\"total\">{{ total }}</ng-container>\n <em class=\"number-info__value-suffix\" *ngIf=\"suffix\">{{ suffix }}</em>\n </span>\n <span *ngIf=\"status || subTotal\" class=\"number-info__value-text number-info__value-sub\">\n <ng-container *nzStringTemplateOutlet=\"subTotal\">{{ subTotal }}</ng-container>\n <i *ngIf=\"status\" nz-icon nzType=\"caret-{{ status }}\"></i>\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\nimport { NumberInfoComponent } from './number-info.component';\n\nconst COMPONENTS = [NumberInfoComponent];\n\n@NgModule({\n imports: [CommonModule, NzIconModule, NzOutletModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class NumberInfoModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;MAiBa,mBAAmB;IAbhC;;QA6BW,UAAK,GAAwB,OAAO,CAAC;;QAEtB,QAAG,GAAG,CAAC,CAAC;KACjC;;gHAnBY,mBAAmB;oGAAnB,mBAAmB,kYCjBhC,k1BAgBA;ADmB0B;IAAd,WAAW,EAAE;gDAAS;2FAlBrB,mBAAmB;kBAb/B,SAAS;+BACE,aAAa,YACb,YAAY,QAEhB;wBACJ,qBAAqB,EAAE,MAAM;wBAC7B,4BAA4B,EAAE,mBAAmB;wBACjD,8BAA8B,EAAE,qBAAqB;qBACtD,uBACoB,KAAK,mBACT,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI;8BAM5B,KAAK;sBAAb,KAAK;gBAEG,QAAQ;sBAAhB,KAAK;gBAEG,KAAK;sBAAb,KAAK;gBAEG,QAAQ;sBAAhB,KAAK;gBAEG,MAAM;sBAAd,KAAK;gBAEG,MAAM;sBAAd,KAAK;gBAEG,KAAK;sBAAb,KAAK;gBAEkB,GAAG;sBAA1B,KAAK;;;AE3BR,MAAM,UAAU,GAAG,CAAC,mBAAmB,CAAC,CAAC;MAO5B,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBAPT,mBAAmB,aAG3B,YAAY,EAAE,YAAY,EAAE,cAAc,aAHlC,mBAAmB;8GAO1B,gBAAgB,YAJlB,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;2FAI1C,gBAAgB;kBAL5B,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;oBACrD,YAAY,EAAE,UAAU;oBACxB,OAAO,EAAE,UAAU;iBACpB;;;ACdD;;;;;;"}
@@ -0,0 +1,241 @@
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
4
+ import { G2BaseComponent } from '@delon/chart/core';
5
+ import { InputBoolean, InputNumber } from '@delon/util/decorator';
6
+ import * as i1 from 'ng-zorro-antd/skeleton';
7
+ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
8
+ import * as i2 from 'ng-zorro-antd/divider';
9
+ import { NzDividerModule } from 'ng-zorro-antd/divider';
10
+ import * as i3 from '@angular/common';
11
+ import { CommonModule } from '@angular/common';
12
+ import * as i4 from 'ng-zorro-antd/core/outlet';
13
+ import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
14
+
15
+ class G2PieComponent extends G2BaseComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.legendData = [];
19
+ this.isPercent = false;
20
+ // #region fields
21
+ this.animate = true;
22
+ this.color = 'rgba(24, 144, 255, 0.85)';
23
+ this.height = 0;
24
+ this.hasLegend = false;
25
+ this.inner = 0.75;
26
+ this.padding = [12, 0, 12, 0];
27
+ this.tooltip = true;
28
+ this.lineWidth = 0;
29
+ this.blockMaxWidth = 380;
30
+ this.select = true;
31
+ this.data = [];
32
+ this.interaction = 'none';
33
+ this.ratio = {
34
+ text: '占比',
35
+ inverse: '反比',
36
+ color: '',
37
+ inverseColor: '#F0F2F5'
38
+ };
39
+ this.clickItem = new EventEmitter();
40
+ }
41
+ // #endregion
42
+ get block() {
43
+ return this.hasLegend && this.el.nativeElement.clientWidth <= this.blockMaxWidth;
44
+ }
45
+ fixData() {
46
+ const { percent, color } = this;
47
+ this.isPercent = percent != null;
48
+ if (!this.isPercent) {
49
+ return;
50
+ }
51
+ this.select = false;
52
+ this.tooltip = false;
53
+ const { text, inverse, color: textColor, inverseColor } = this.ratio;
54
+ this.percentColor = (value) => (value === text ? textColor || color : inverseColor);
55
+ this.data = [
56
+ {
57
+ x: text,
58
+ y: percent
59
+ },
60
+ {
61
+ x: inverse,
62
+ y: 100 - percent
63
+ }
64
+ ];
65
+ }
66
+ install() {
67
+ const { node, height, padding, tooltip, inner, hasLegend, interaction, theme, animate, lineWidth, isPercent, percentColor, colors } = this;
68
+ const chart = (this._chart = new window.G2.Chart({
69
+ container: node.nativeElement,
70
+ autoFit: true,
71
+ height,
72
+ padding,
73
+ theme
74
+ }));
75
+ chart.animate(animate);
76
+ if (!tooltip) {
77
+ chart.tooltip(false);
78
+ }
79
+ else {
80
+ chart.tooltip({
81
+ showTitle: false,
82
+ showMarkers: false
83
+ });
84
+ }
85
+ if (interaction !== 'none') {
86
+ chart.interaction(interaction);
87
+ }
88
+ chart.axis(false).legend(false).coordinate('theta', { innerRadius: inner });
89
+ chart.filter('x', (_val, item) => item.checked !== false);
90
+ chart
91
+ .interval()
92
+ .adjust('stack')
93
+ .position('y')
94
+ .style({ lineWidth, stroke: '#fff' })
95
+ .color('x', isPercent ? percentColor : colors)
96
+ .tooltip('x*percent', (name, p) => ({
97
+ name,
98
+ value: `${hasLegend ? p : (p * 100).toFixed(2)} %`
99
+ }))
100
+ .state({});
101
+ chart.scale({
102
+ x: {
103
+ type: 'cat',
104
+ range: [0, 1]
105
+ }
106
+ });
107
+ chart.on(`interval:click`, (ev) => {
108
+ this.ngZone.run(() => this.clickItem.emit({ item: ev.data?.data, ev }));
109
+ });
110
+ this.changeData();
111
+ chart.render();
112
+ }
113
+ changeData() {
114
+ const { _chart, data } = this;
115
+ if (!_chart || !Array.isArray(data) || data.length <= 0)
116
+ return;
117
+ // 转化 percent
118
+ const totalSum = data.reduce((cur, item) => cur + item.y, 0);
119
+ for (const item of data) {
120
+ item.percent = totalSum === 0 ? 0 : item.y / totalSum;
121
+ }
122
+ _chart.changeData(data);
123
+ this.ngZone.run(() => this.genLegend());
124
+ }
125
+ genLegend() {
126
+ const { hasLegend, isPercent, cdr, _chart } = this;
127
+ if (!hasLegend || isPercent)
128
+ return;
129
+ this.legendData = _chart.geometries[0].dataArray.map((item) => {
130
+ const origin = item[0]._origin;
131
+ origin.color = item[0].color;
132
+ origin.checked = true;
133
+ origin.percent = (origin.percent * 100).toFixed(2);
134
+ return origin;
135
+ });
136
+ cdr.detectChanges();
137
+ }
138
+ _click(i) {
139
+ const { legendData, _chart } = this;
140
+ legendData[i].checked = !legendData[i].checked;
141
+ _chart.render(true);
142
+ }
143
+ onChanges() {
144
+ this.fixData();
145
+ }
146
+ }
147
+ G2PieComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
148
+ G2PieComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: G2PieComponent, selector: "g2-pie", inputs: { animate: "animate", color: "color", subTitle: "subTitle", total: "total", height: "height", hasLegend: "hasLegend", inner: "inner", padding: "padding", percent: "percent", tooltip: "tooltip", lineWidth: "lineWidth", blockMaxWidth: "blockMaxWidth", select: "select", valueFormat: "valueFormat", data: "data", colors: "colors", interaction: "interaction", ratio: "ratio" }, outputs: { clickItem: "clickItem" }, host: { properties: { "class.g2-pie": "true", "class.g2-pie__legend-has": "hasLegend", "class.g2-pie__legend-block": "block", "class.g2-pie__mini": "isPercent" } }, exportAs: ["g2Pie"], usesInheritance: true, ngImport: i0, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<div class=\"g2-pie__chart\">\n <div #container></div>\n <div *ngIf=\"subTitle || total\" class=\"g2-pie__total\">\n <h4 *ngIf=\"subTitle\" class=\"g2-pie__total-title\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">\n <div [innerHTML]=\"subTitle\"></div>\n </ng-container>\n </h4>\n <div *ngIf=\"total\" class=\"g2-pie__total-stat\">\n <ng-container *nzStringTemplateOutlet=\"total\">\n <div [innerHTML]=\"total\"></div>\n </ng-container>\n </div>\n </div>\n</div>\n<ul *ngIf=\"hasLegend && legendData?.length\" class=\"g2-pie__legend\">\n <li *ngFor=\"let item of legendData; let index = index\" (click)=\"_click(index)\" class=\"g2-pie__legend-item\">\n <span class=\"g2-pie__legend-dot\" [ngStyle]=\"{ 'background-color': !item.checked ? '#aaa' : item.color }\"></span>\n <span class=\"g2-pie__legend-title\">{{ item.x }}</span>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span class=\"g2-pie__legend-percent\">{{ item.percent }}%</span>\n <span class=\"g2-pie__legend-value\" [innerHTML]=\"valueFormat ? valueFormat(item.y) : item.y\"></span>\n </li>\n</ul>\n", components: [{ type: i1.NzSkeletonComponent, selector: "nz-skeleton", inputs: ["nzActive", "nzLoading", "nzRound", "nzTitle", "nzAvatar", "nzParagraph"], exportAs: ["nzSkeleton"] }, { type: i2.NzDividerComponent, selector: "nz-divider", inputs: ["nzText", "nzType", "nzOrientation", "nzDashed", "nzPlain"], exportAs: ["nzDivider"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
149
+ __decorate([
150
+ InputBoolean()
151
+ ], G2PieComponent.prototype, "animate", void 0);
152
+ __decorate([
153
+ InputNumber()
154
+ ], G2PieComponent.prototype, "height", void 0);
155
+ __decorate([
156
+ InputBoolean()
157
+ ], G2PieComponent.prototype, "hasLegend", void 0);
158
+ __decorate([
159
+ InputNumber()
160
+ ], G2PieComponent.prototype, "percent", void 0);
161
+ __decorate([
162
+ InputBoolean()
163
+ ], G2PieComponent.prototype, "tooltip", void 0);
164
+ __decorate([
165
+ InputNumber()
166
+ ], G2PieComponent.prototype, "lineWidth", void 0);
167
+ __decorate([
168
+ InputNumber()
169
+ ], G2PieComponent.prototype, "blockMaxWidth", void 0);
170
+ __decorate([
171
+ InputBoolean()
172
+ ], G2PieComponent.prototype, "select", void 0);
173
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieComponent, decorators: [{
174
+ type: Component,
175
+ args: [{ selector: 'g2-pie', exportAs: 'g2Pie', host: {
176
+ '[class.g2-pie]': 'true',
177
+ '[class.g2-pie__legend-has]': 'hasLegend',
178
+ '[class.g2-pie__legend-block]': 'block',
179
+ '[class.g2-pie__mini]': 'isPercent'
180
+ }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<div class=\"g2-pie__chart\">\n <div #container></div>\n <div *ngIf=\"subTitle || total\" class=\"g2-pie__total\">\n <h4 *ngIf=\"subTitle\" class=\"g2-pie__total-title\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">\n <div [innerHTML]=\"subTitle\"></div>\n </ng-container>\n </h4>\n <div *ngIf=\"total\" class=\"g2-pie__total-stat\">\n <ng-container *nzStringTemplateOutlet=\"total\">\n <div [innerHTML]=\"total\"></div>\n </ng-container>\n </div>\n </div>\n</div>\n<ul *ngIf=\"hasLegend && legendData?.length\" class=\"g2-pie__legend\">\n <li *ngFor=\"let item of legendData; let index = index\" (click)=\"_click(index)\" class=\"g2-pie__legend-item\">\n <span class=\"g2-pie__legend-dot\" [ngStyle]=\"{ 'background-color': !item.checked ? '#aaa' : item.color }\"></span>\n <span class=\"g2-pie__legend-title\">{{ item.x }}</span>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span class=\"g2-pie__legend-percent\">{{ item.percent }}%</span>\n <span class=\"g2-pie__legend-value\" [innerHTML]=\"valueFormat ? valueFormat(item.y) : item.y\"></span>\n </li>\n</ul>\n" }]
181
+ }], propDecorators: { animate: [{
182
+ type: Input
183
+ }], color: [{
184
+ type: Input
185
+ }], subTitle: [{
186
+ type: Input
187
+ }], total: [{
188
+ type: Input
189
+ }], height: [{
190
+ type: Input
191
+ }], hasLegend: [{
192
+ type: Input
193
+ }], inner: [{
194
+ type: Input
195
+ }], padding: [{
196
+ type: Input
197
+ }], percent: [{
198
+ type: Input
199
+ }], tooltip: [{
200
+ type: Input
201
+ }], lineWidth: [{
202
+ type: Input
203
+ }], blockMaxWidth: [{
204
+ type: Input
205
+ }], select: [{
206
+ type: Input
207
+ }], valueFormat: [{
208
+ type: Input
209
+ }], data: [{
210
+ type: Input
211
+ }], colors: [{
212
+ type: Input
213
+ }], interaction: [{
214
+ type: Input
215
+ }], ratio: [{
216
+ type: Input
217
+ }], clickItem: [{
218
+ type: Output
219
+ }] } });
220
+
221
+ const COMPONENTS = [G2PieComponent];
222
+ class G2PieModule {
223
+ }
224
+ G2PieModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
225
+ G2PieModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, declarations: [G2PieComponent], imports: [CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule], exports: [G2PieComponent] });
226
+ G2PieModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, imports: [[CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule]] });
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2PieModule, decorators: [{
228
+ type: NgModule,
229
+ args: [{
230
+ imports: [CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule],
231
+ declarations: COMPONENTS,
232
+ exports: COMPONENTS
233
+ }]
234
+ }] });
235
+
236
+ /**
237
+ * Generated bundle index. Do not edit.
238
+ */
239
+
240
+ export { G2PieComponent, G2PieModule };
241
+ //# sourceMappingURL=delon-chart-pie.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delon-chart-pie.mjs","sources":["../../../../packages/chart/pie/pie.component.ts","../../../../packages/chart/pie/pie.component.html","../../../../packages/chart/pie/pie.module.ts","../../../../packages/chart/pie/delon-chart-pie.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport type { Chart, Event } from '@antv/g2';\n\nimport { G2BaseComponent, G2InteractionType } from '@delon/chart/core';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface G2PieData {\n x: NzSafeAny;\n y: number;\n [key: string]: NzSafeAny;\n}\n\nexport interface G2PieClickItem {\n item: G2PieData;\n ev: Event;\n}\n\nexport interface G2PieRatio {\n /** 占比文本,默认:`占比` */\n text: string;\n /** 反比文本,默认:`反比` */\n inverse: string;\n /** 正比颜色,默认使用 `color` 值 */\n color: string;\n /** 反比颜色,默认:`#F0F2F5` */\n inverseColor: string;\n}\n\n@Component({\n selector: 'g2-pie',\n exportAs: 'g2Pie',\n templateUrl: './pie.component.html',\n host: {\n '[class.g2-pie]': 'true',\n '[class.g2-pie__legend-has]': 'hasLegend',\n '[class.g2-pie__legend-block]': 'block',\n '[class.g2-pie__mini]': 'isPercent'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class G2PieComponent extends G2BaseComponent {\n static ngAcceptInputType_height: NumberInput;\n static ngAcceptInputType_animate: BooleanInput;\n static ngAcceptInputType_hasLegend: BooleanInput;\n static ngAcceptInputType_percent: NumberInput;\n static ngAcceptInputType_tooltip: BooleanInput;\n static ngAcceptInputType_lineWidth: NumberInput;\n static ngAcceptInputType_blockMaxWidth: NumberInput;\n static ngAcceptInputType_select: BooleanInput;\n\n private percentColor!: (value: string) => string;\n legendData: NzSafeAny[] = [];\n isPercent = false;\n\n // #region fields\n\n @Input() @InputBoolean() animate = true;\n @Input() color = 'rgba(24, 144, 255, 0.85)';\n @Input() subTitle?: string | TemplateRef<void> | null;\n @Input() total?: string | number | TemplateRef<void> | null;\n @Input() @InputNumber() height = 0;\n @Input() @InputBoolean() hasLegend = false;\n @Input() inner = 0.75;\n @Input() padding: number | number[] | 'auto' = [12, 0, 12, 0];\n @Input() @InputNumber() percent?: number;\n @Input() @InputBoolean() tooltip = true;\n @Input() @InputNumber() lineWidth = 0;\n @Input() @InputNumber() blockMaxWidth = 380;\n @Input() @InputBoolean() select = true;\n @Input() valueFormat?: (y: number) => string;\n @Input() data: G2PieData[] = [];\n @Input() colors?: string[];\n @Input() interaction: G2InteractionType = 'none';\n @Input() ratio: G2PieRatio = {\n text: '占比',\n inverse: '反比',\n color: '',\n inverseColor: '#F0F2F5'\n };\n @Output() readonly clickItem = new EventEmitter<G2PieClickItem>();\n\n // #endregion\n\n get block(): boolean {\n return this.hasLegend && this.el.nativeElement.clientWidth <= this.blockMaxWidth;\n }\n\n private fixData(): void {\n const { percent, color } = this;\n this.isPercent = percent != null;\n if (!this.isPercent) {\n return;\n }\n\n this.select = false;\n this.tooltip = false;\n const { text, inverse, color: textColor, inverseColor } = this.ratio;\n this.percentColor = (value: string) => (value === text ? textColor || color : inverseColor);\n this.data = [\n {\n x: text,\n y: percent!\n },\n {\n x: inverse,\n y: 100 - percent!\n }\n ];\n }\n\n install(): void {\n const {\n node,\n height,\n padding,\n tooltip,\n inner,\n hasLegend,\n interaction,\n theme,\n animate,\n lineWidth,\n isPercent,\n percentColor,\n colors\n } = this;\n const chart: Chart = (this._chart = new (window as NzSafeAny).G2.Chart({\n container: node.nativeElement,\n autoFit: true,\n height,\n padding,\n theme\n }));\n chart.animate(animate);\n\n if (!tooltip) {\n chart.tooltip(false);\n } else {\n chart.tooltip({\n showTitle: false,\n showMarkers: false\n });\n }\n if (interaction !== 'none') {\n chart.interaction(interaction);\n }\n chart.axis(false).legend(false).coordinate('theta', { innerRadius: inner });\n chart.filter('x', (_val: NzSafeAny, item: NzSafeAny) => item.checked !== false);\n chart\n .interval()\n .adjust('stack')\n .position('y')\n .style({ lineWidth, stroke: '#fff' })\n .color('x', isPercent ? percentColor : colors)\n .tooltip('x*percent', (name: string, p: number) => ({\n name,\n value: `${hasLegend ? p : (p * 100).toFixed(2)} %`\n }))\n .state({});\n chart.scale({\n x: {\n type: 'cat',\n range: [0, 1]\n }\n });\n\n chart.on(`interval:click`, (ev: Event) => {\n this.ngZone.run(() => this.clickItem.emit({ item: ev.data?.data, ev }));\n });\n\n this.changeData();\n chart.render();\n }\n\n changeData(): void {\n const { _chart, data } = this;\n if (!_chart || !Array.isArray(data) || data.length <= 0) return;\n\n // 转化 percent\n const totalSum = data.reduce((cur, item) => cur + item.y, 0);\n for (const item of data) {\n item.percent = totalSum === 0 ? 0 : item.y / totalSum;\n }\n _chart.changeData(data);\n this.ngZone.run(() => this.genLegend());\n }\n\n private genLegend(): void {\n const { hasLegend, isPercent, cdr, _chart } = this;\n if (!hasLegend || isPercent) return;\n\n this.legendData = _chart.geometries[0].dataArray.map((item: NzSafeAny) => {\n const origin = item[0]._origin;\n origin.color = item[0].color;\n origin.checked = true;\n origin.percent = (origin.percent * 100).toFixed(2);\n return origin;\n });\n\n cdr.detectChanges();\n }\n\n _click(i: number): void {\n const { legendData, _chart } = this;\n legendData[i].checked = !legendData[i].checked;\n _chart.render(true);\n }\n\n onChanges(): void {\n this.fixData();\n }\n}\n","<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<div class=\"g2-pie__chart\">\n <div #container></div>\n <div *ngIf=\"subTitle || total\" class=\"g2-pie__total\">\n <h4 *ngIf=\"subTitle\" class=\"g2-pie__total-title\">\n <ng-container *nzStringTemplateOutlet=\"subTitle\">\n <div [innerHTML]=\"subTitle\"></div>\n </ng-container>\n </h4>\n <div *ngIf=\"total\" class=\"g2-pie__total-stat\">\n <ng-container *nzStringTemplateOutlet=\"total\">\n <div [innerHTML]=\"total\"></div>\n </ng-container>\n </div>\n </div>\n</div>\n<ul *ngIf=\"hasLegend && legendData?.length\" class=\"g2-pie__legend\">\n <li *ngFor=\"let item of legendData; let index = index\" (click)=\"_click(index)\" class=\"g2-pie__legend-item\">\n <span class=\"g2-pie__legend-dot\" [ngStyle]=\"{ 'background-color': !item.checked ? '#aaa' : item.color }\"></span>\n <span class=\"g2-pie__legend-title\">{{ item.x }}</span>\n <nz-divider nzType=\"vertical\"></nz-divider>\n <span class=\"g2-pie__legend-percent\">{{ item.percent }}%</span>\n <span class=\"g2-pie__legend-value\" [innerHTML]=\"valueFormat ? valueFormat(item.y) : item.y\"></span>\n </li>\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { G2PieComponent } from './pie.component';\n\nconst COMPONENTS = [G2PieComponent];\n\n@NgModule({\n imports: [CommonModule, NzDividerModule, NzOutletModule, NzSkeletonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class G2PieModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ import { __decorate } from 'tslib';
2
+ import * as i0 from '@angular/core';
3
+ import { EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';
4
+ import { G2BaseComponent } from '@delon/chart/core';
5
+ import { InputNumber, InputBoolean } from '@delon/util/decorator';
6
+ import * as i1 from 'ng-zorro-antd/skeleton';
7
+ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
8
+ import * as i2 from '@angular/common';
9
+ import { CommonModule } from '@angular/common';
10
+ import * as i3 from 'ng-zorro-antd/core/outlet';
11
+ import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
12
+ import * as i4 from 'ng-zorro-antd/grid';
13
+ import { NzGridModule } from 'ng-zorro-antd/grid';
14
+
15
+ class G2RadarComponent extends G2BaseComponent {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.legendData = [];
19
+ this.height = 0;
20
+ this.padding = [44, 30, 16, 30];
21
+ this.hasLegend = true;
22
+ this.tickCount = 4;
23
+ this.data = [];
24
+ this.colors = ['#1890FF', '#FACC14', '#2FC25B', '#8543E0', '#F04864', '#13C2C2', '#fa8c16', '#a0d911'];
25
+ this.clickItem = new EventEmitter();
26
+ }
27
+ // #endregion
28
+ getHeight() {
29
+ return this.height - (this.hasLegend ? 80 : 22);
30
+ }
31
+ install() {
32
+ const { node, padding, theme, tickCount } = this;
33
+ const chart = (this._chart = new window.G2.Chart({
34
+ container: node.nativeElement,
35
+ autoFit: true,
36
+ height: this.getHeight(),
37
+ padding,
38
+ theme
39
+ }));
40
+ chart.coordinate('polar');
41
+ chart.legend(false);
42
+ chart.axis('label', {
43
+ line: null,
44
+ label: {
45
+ offset: 8
46
+ },
47
+ grid: {
48
+ line: {
49
+ style: {
50
+ stroke: '#e9e9e9',
51
+ lineWidth: 1,
52
+ lineDash: [0, 0]
53
+ }
54
+ }
55
+ }
56
+ });
57
+ chart.axis('value', {
58
+ grid: {
59
+ line: {
60
+ type: 'polygon',
61
+ style: {
62
+ stroke: '#e9e9e9',
63
+ lineWidth: 1,
64
+ lineDash: [0, 0]
65
+ }
66
+ }
67
+ }
68
+ });
69
+ chart.scale({
70
+ value: {
71
+ min: 0,
72
+ tickCount
73
+ }
74
+ });
75
+ chart.filter('name', (name) => {
76
+ const legendItem = this.legendData.find(w => w.name === name);
77
+ return legendItem ? legendItem.checked !== false : true;
78
+ });
79
+ chart.line().position('label*value').color('name', this.colors);
80
+ chart.point().position('label*value').shape('circle').size(3);
81
+ chart.on(`point:click`, (ev) => {
82
+ this.ngZone.run(() => this.clickItem.emit({ item: ev.data?.data, ev }));
83
+ });
84
+ this.changeData();
85
+ chart.render();
86
+ }
87
+ changeData() {
88
+ const { _chart, data } = this;
89
+ if (!_chart || !Array.isArray(data) || data.length <= 0)
90
+ return;
91
+ _chart.changeData(data);
92
+ this.ngZone.run(() => this.genLegend());
93
+ }
94
+ genLegend() {
95
+ const { hasLegend, cdr, _chart } = this;
96
+ if (!hasLegend)
97
+ return;
98
+ this.legendData = _chart.geometries[0].dataArray.map(item => {
99
+ const origin = item[0]._origin;
100
+ const result = {
101
+ name: origin.name,
102
+ color: item[0].color,
103
+ checked: true,
104
+ value: item.reduce((p, n) => p + n._origin.value, 0)
105
+ };
106
+ return result;
107
+ });
108
+ cdr.detectChanges();
109
+ }
110
+ _click(i) {
111
+ const { legendData, _chart } = this;
112
+ legendData[i].checked = !legendData[i].checked;
113
+ _chart.render(true);
114
+ }
115
+ onChanges() {
116
+ this.legendData.forEach(i => (i.checked = true));
117
+ }
118
+ }
119
+ G2RadarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
120
+ G2RadarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: G2RadarComponent, selector: "g2-radar", inputs: { title: "title", height: "height", padding: "padding", hasLegend: "hasLegend", tickCount: "tickCount", data: "data", colors: "colors" }, outputs: { clickItem: "clickItem" }, host: { properties: { "style.height.px": "height", "class.g2-radar": "true" } }, exportAs: ["g2Radar"], usesInheritance: true, ngImport: i0, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n", components: [{ type: i1.NzSkeletonComponent, selector: "nz-skeleton", inputs: ["nzActive", "nzLoading", "nzRound", "nzTitle", "nzAvatar", "nzParagraph"], exportAs: ["nzSkeleton"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i4.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
121
+ __decorate([
122
+ InputNumber()
123
+ ], G2RadarComponent.prototype, "height", void 0);
124
+ __decorate([
125
+ InputBoolean()
126
+ ], G2RadarComponent.prototype, "hasLegend", void 0);
127
+ __decorate([
128
+ InputNumber()
129
+ ], G2RadarComponent.prototype, "tickCount", void 0);
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarComponent, decorators: [{
131
+ type: Component,
132
+ args: [{ selector: 'g2-radar', exportAs: 'g2Radar', host: {
133
+ '[style.height.px]': 'height',
134
+ '[class.g2-radar]': 'true'
135
+ }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n" }]
136
+ }], propDecorators: { title: [{
137
+ type: Input
138
+ }], height: [{
139
+ type: Input
140
+ }], padding: [{
141
+ type: Input
142
+ }], hasLegend: [{
143
+ type: Input
144
+ }], tickCount: [{
145
+ type: Input
146
+ }], data: [{
147
+ type: Input
148
+ }], colors: [{
149
+ type: Input
150
+ }], clickItem: [{
151
+ type: Output
152
+ }] } });
153
+
154
+ const COMPONENTS = [G2RadarComponent];
155
+ class G2RadarModule {
156
+ }
157
+ G2RadarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
158
+ G2RadarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, declarations: [G2RadarComponent], imports: [CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule], exports: [G2RadarComponent] });
159
+ G2RadarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, imports: [[CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule]] });
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2RadarModule, decorators: [{
161
+ type: NgModule,
162
+ args: [{
163
+ imports: [CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule],
164
+ declarations: COMPONENTS,
165
+ exports: COMPONENTS
166
+ }]
167
+ }] });
168
+
169
+ /**
170
+ * Generated bundle index. Do not edit.
171
+ */
172
+
173
+ export { G2RadarComponent, G2RadarModule };
174
+ //# sourceMappingURL=delon-chart-radar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delon-chart-radar.mjs","sources":["../../../../packages/chart/radar/radar.component.ts","../../../../packages/chart/radar/radar.component.html","../../../../packages/chart/radar/radar.module.ts","../../../../packages/chart/radar/delon-chart-radar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n Output,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport type { Chart, Event } from '@antv/g2';\n\nimport { G2BaseComponent } from '@delon/chart/core';\nimport { BooleanInput, InputBoolean, InputNumber, NumberInput } from '@delon/util/decorator';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface G2RadarData {\n name: string;\n label: string;\n value: number;\n [key: string]: NzSafeAny;\n}\n\nexport interface G2RadarClickItem {\n item: G2RadarData;\n ev: Event;\n}\n\n@Component({\n selector: 'g2-radar',\n exportAs: 'g2Radar',\n templateUrl: './radar.component.html',\n host: {\n '[style.height.px]': 'height',\n '[class.g2-radar]': 'true'\n },\n preserveWhitespaces: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class G2RadarComponent extends G2BaseComponent {\n static ngAcceptInputType_height: NumberInput;\n static ngAcceptInputType_hasLegend: BooleanInput;\n static ngAcceptInputType_tickCount: NumberInput;\n\n legendData: NzSafeAny[] = [];\n\n // #region fields\n\n @Input() title?: string | TemplateRef<void> | null;\n @Input() @InputNumber() height = 0;\n @Input() padding: number | number[] | 'auto' = [44, 30, 16, 30];\n @Input() @InputBoolean() hasLegend = true;\n @Input() @InputNumber() tickCount = 4;\n @Input() data: G2RadarData[] = [];\n @Input() colors = ['#1890FF', '#FACC14', '#2FC25B', '#8543E0', '#F04864', '#13C2C2', '#fa8c16', '#a0d911'];\n @Output() readonly clickItem = new EventEmitter<G2RadarClickItem>();\n\n // #endregion\n\n private getHeight(): number {\n return this.height - (this.hasLegend ? 80 : 22);\n }\n\n install(): void {\n const { node, padding, theme, tickCount } = this;\n\n const chart: Chart = (this._chart = new (window as NzSafeAny).G2.Chart({\n container: node.nativeElement,\n autoFit: true,\n height: this.getHeight(),\n padding,\n theme\n }));\n\n chart.coordinate('polar');\n chart.legend(false);\n chart.axis('label', {\n line: null,\n label: {\n offset: 8\n },\n grid: {\n line: {\n style: {\n stroke: '#e9e9e9',\n lineWidth: 1,\n lineDash: [0, 0]\n }\n }\n }\n });\n chart.axis('value', {\n grid: {\n line: {\n type: 'polygon',\n style: {\n stroke: '#e9e9e9',\n lineWidth: 1,\n lineDash: [0, 0]\n }\n }\n }\n });\n chart.scale({\n value: {\n min: 0,\n tickCount\n }\n });\n chart.filter('name', (name: string) => {\n const legendItem = this.legendData.find(w => w.name === name);\n return legendItem ? legendItem.checked !== false : true;\n });\n\n chart.line().position('label*value').color('name', this.colors);\n chart.point().position('label*value').shape('circle').size(3);\n\n chart.on(`point:click`, (ev: Event) => {\n this.ngZone.run(() => this.clickItem.emit({ item: ev.data?.data, ev }));\n });\n\n this.changeData();\n\n chart.render();\n }\n\n changeData(): void {\n const { _chart, data } = this;\n if (!_chart || !Array.isArray(data) || data.length <= 0) return;\n _chart.changeData(data);\n\n this.ngZone.run(() => this.genLegend());\n }\n\n private genLegend(): void {\n const { hasLegend, cdr, _chart } = this;\n if (!hasLegend) return;\n\n this.legendData = _chart.geometries[0].dataArray.map(item => {\n const origin = item[0]._origin;\n const result = {\n name: origin.name,\n color: item[0].color,\n checked: true,\n value: item.reduce((p, n) => p + n._origin.value, 0)\n };\n\n return result;\n });\n\n cdr.detectChanges();\n }\n\n _click(i: number): void {\n const { legendData, _chart } = this;\n legendData[i].checked = !legendData[i].checked;\n _chart.render(true);\n }\n\n onChanges(): void {\n this.legendData.forEach(i => (i.checked = true));\n }\n}\n","<nz-skeleton *ngIf=\"!loaded\"></nz-skeleton>\n<ng-container *nzStringTemplateOutlet=\"title\">\n <h4>{{ title }}</h4>\n</ng-container>\n<div #container></div>\n<div nz-row class=\"g2-radar__legend\" *ngIf=\"hasLegend\">\n <div\n nz-col\n [nzSpan]=\"24 / legendData.length\"\n *ngFor=\"let i of legendData; let idx = index\"\n (click)=\"_click(idx)\"\n class=\"g2-radar__legend-item\"\n >\n <i class=\"g2-radar__legend-dot\" [ngStyle]=\"{ 'background-color': !i.checked ? '#aaa' : i.color }\"></i>\n {{ i.name }}\n <h6 class=\"g2-radar__legend-title\">{{ i.value }}</h6>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { NzOutletModule } from 'ng-zorro-antd/core/outlet';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { NzSkeletonModule } from 'ng-zorro-antd/skeleton';\n\nimport { G2RadarComponent } from './radar.component';\n\nconst COMPONENTS = [G2RadarComponent];\n\n@NgModule({\n imports: [CommonModule, NzGridModule, NzOutletModule, NzSkeletonModule],\n declarations: COMPONENTS,\n exports: COMPONENTS\n})\nexport class G2RadarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}