@delon/chart 12.4.0 → 13.0.0-beta.2

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,204 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
3
+ import { format } from 'date-fns';
4
+ import { G2BaseComponent } from '@delon/chart/core';
5
+ import { toDate } from '@delon/util/date-time';
6
+ import { InputBoolean, InputNumber } from '@delon/util/decorator';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "ng-zorro-antd/skeleton";
9
+ import * as i2 from "ng-zorro-antd/core/outlet";
10
+ import * as i3 from "@angular/common";
11
+ export class G2TimelineComponent extends G2BaseComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.maxAxis = 2;
15
+ this.data = [];
16
+ this.colorMap = { y1: '#5B8FF9', y2: '#5AD8A6', y3: '#5D7092', y4: '#F6BD16', y5: '#E86452' };
17
+ this.mask = 'HH:mm';
18
+ this.maskSlider = 'HH:mm';
19
+ this.position = 'top';
20
+ this.height = 450;
21
+ this.padding = [40, 8, 64, 40];
22
+ this.borderWidth = 2;
23
+ this.slider = true;
24
+ this.clickItem = new EventEmitter();
25
+ // #endregion
26
+ this.onlyChangeData = (changes) => {
27
+ const tm = changes.titleMap;
28
+ return !(tm && !tm.firstChange && tm.currentValue !== tm.previousValue);
29
+ };
30
+ }
31
+ install() {
32
+ const { node, height, padding, slider, maxAxis, theme, maskSlider } = this;
33
+ const chart = (this._chart = new window.G2.Chart({
34
+ container: node.nativeElement,
35
+ autoFit: true,
36
+ height,
37
+ padding,
38
+ theme
39
+ }));
40
+ chart.axis('time', { title: null });
41
+ chart.axis('y1', { title: null });
42
+ for (let i = 2; i <= maxAxis; i++) {
43
+ chart.axis(`y${i}`, false);
44
+ }
45
+ chart.line().position('time*y1');
46
+ for (let i = 2; i <= maxAxis; i++) {
47
+ chart.line().position(`time*y${i}`);
48
+ }
49
+ chart.tooltip({
50
+ showCrosshairs: true,
51
+ shared: true
52
+ });
53
+ const sliderPadding = { ...[], ...padding };
54
+ sliderPadding[0] = 0;
55
+ if (slider) {
56
+ chart.option('slider', {
57
+ height: 26,
58
+ start: 0,
59
+ end: 1,
60
+ trendCfg: {
61
+ isArea: false
62
+ },
63
+ minLimit: 2,
64
+ formatter: (val) => format(val, maskSlider)
65
+ });
66
+ }
67
+ chart.on(`plot:click`, (ev) => {
68
+ const records = this._chart.getSnapRecords({ x: ev.x, y: ev.y });
69
+ this.ngZone.run(() => this.clickItem.emit({ item: records[0]._origin, ev }));
70
+ });
71
+ chart.on(`legend-item:click`, (ev) => {
72
+ const item = ev?.target?.get('delegateObject').item;
73
+ const id = item?.id;
74
+ const line = chart.geometries.find(w => w.getAttribute('position').getFields()[1] === id);
75
+ if (line) {
76
+ line.changeVisible(!item.unchecked);
77
+ }
78
+ });
79
+ this.changeData();
80
+ chart.render();
81
+ }
82
+ changeData() {
83
+ const { _chart, height, padding, mask, titleMap, position, colorMap, borderWidth, maxAxis } = this;
84
+ let data = [...this.data];
85
+ if (!_chart || data.length <= 0)
86
+ return;
87
+ const arrAxis = [...Array(maxAxis)].map((_, index) => index + 1);
88
+ _chart.legend({
89
+ position,
90
+ custom: true,
91
+ items: arrAxis.map(id => {
92
+ const key = `y${id}`;
93
+ return {
94
+ id: key,
95
+ name: titleMap[key],
96
+ value: key,
97
+ marker: { style: { fill: colorMap[key] } }
98
+ };
99
+ })
100
+ });
101
+ // border
102
+ _chart.geometries.forEach((v, idx) => {
103
+ v.color(colorMap[`y${idx + 1}`]).size(borderWidth);
104
+ });
105
+ _chart.height = height;
106
+ _chart.padding = padding;
107
+ // 转换成日期类型
108
+ data = data
109
+ .map(item => {
110
+ item.time = toDate(item.time);
111
+ item._time = +item.time;
112
+ return item;
113
+ })
114
+ .sort((a, b) => a._time - b._time);
115
+ const max = Math.max(...arrAxis.map(id => [...data].sort((a, b) => b[`y${id}`] - a[`y${id}`])[0][`y${id}`]));
116
+ const scaleOptions = {};
117
+ arrAxis.forEach(id => {
118
+ const key = `y${id}`;
119
+ scaleOptions[key] = {
120
+ alias: titleMap[key],
121
+ max,
122
+ min: 0
123
+ };
124
+ });
125
+ _chart.scale({
126
+ time: {
127
+ type: 'time',
128
+ mask,
129
+ range: [0, 1]
130
+ },
131
+ ...scaleOptions
132
+ });
133
+ const initialRange = {
134
+ start: data[0]._time,
135
+ end: data[data.length - 1]._time
136
+ };
137
+ const filterData = data.filter(val => val._time >= initialRange.start && val._time <= initialRange.end);
138
+ _chart.changeData(filterData);
139
+ }
140
+ }
141
+ G2TimelineComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2TimelineComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
142
+ G2TimelineComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: G2TimelineComponent, selector: "g2-timeline", inputs: { title: "title", maxAxis: "maxAxis", data: "data", titleMap: "titleMap", colorMap: "colorMap", mask: "mask", maskSlider: "maskSlider", position: "position", height: "height", padding: "padding", borderWidth: "borderWidth", slider: "slider" }, outputs: { clickItem: "clickItem" }, exportAs: ["g2Timeline"], usesInheritance: true, ngImport: i0, template: `
143
+ <ng-container *nzStringTemplateOutlet="title">
144
+ <h4>{{ title }}</h4>
145
+ </ng-container>
146
+ <nz-skeleton *ngIf="!loaded"></nz-skeleton>
147
+ <div #container></div>
148
+ `, isInline: true, components: [{ type: i1.NzSkeletonComponent, selector: "nz-skeleton", inputs: ["nzActive", "nzLoading", "nzRound", "nzTitle", "nzAvatar", "nzParagraph"], exportAs: ["nzSkeleton"] }], directives: [{ type: i2.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
149
+ __decorate([
150
+ InputNumber()
151
+ ], G2TimelineComponent.prototype, "maxAxis", void 0);
152
+ __decorate([
153
+ InputNumber()
154
+ ], G2TimelineComponent.prototype, "height", void 0);
155
+ __decorate([
156
+ InputNumber()
157
+ ], G2TimelineComponent.prototype, "borderWidth", void 0);
158
+ __decorate([
159
+ InputBoolean()
160
+ ], G2TimelineComponent.prototype, "slider", void 0);
161
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2TimelineComponent, decorators: [{
162
+ type: Component,
163
+ args: [{
164
+ selector: 'g2-timeline',
165
+ exportAs: 'g2Timeline',
166
+ template: `
167
+ <ng-container *nzStringTemplateOutlet="title">
168
+ <h4>{{ title }}</h4>
169
+ </ng-container>
170
+ <nz-skeleton *ngIf="!loaded"></nz-skeleton>
171
+ <div #container></div>
172
+ `,
173
+ preserveWhitespaces: false,
174
+ changeDetection: ChangeDetectionStrategy.OnPush,
175
+ encapsulation: ViewEncapsulation.None
176
+ }]
177
+ }], propDecorators: { title: [{
178
+ type: Input
179
+ }], maxAxis: [{
180
+ type: Input
181
+ }], data: [{
182
+ type: Input
183
+ }], titleMap: [{
184
+ type: Input
185
+ }], colorMap: [{
186
+ type: Input
187
+ }], mask: [{
188
+ type: Input
189
+ }], maskSlider: [{
190
+ type: Input
191
+ }], position: [{
192
+ type: Input
193
+ }], height: [{
194
+ type: Input
195
+ }], padding: [{
196
+ type: Input
197
+ }], borderWidth: [{
198
+ type: Input
199
+ }], slider: [{
200
+ type: Input
201
+ }], clickItem: [{
202
+ type: Output
203
+ }] } });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnQvdGltZWxpbmUvdGltZWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFHTixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsQyxPQUFPLEVBQUUsZUFBZSxFQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQy9DLE9BQU8sRUFBZ0IsWUFBWSxFQUFFLFdBQVcsRUFBZSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQXVEN0YsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGVBQWU7SUFkeEQ7O1FBdUIwQixZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLFNBQUksR0FBcUIsRUFBRSxDQUFDO1FBRTVCLGFBQVEsR0FBa0IsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUN4RyxTQUFJLEdBQVcsT0FBTyxDQUFDO1FBQ3ZCLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFDN0IsYUFBUSxHQUF3QyxLQUFLLENBQUM7UUFDdkMsV0FBTSxHQUFHLEdBQUcsQ0FBQztRQUM1QixZQUFPLEdBQWEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNmLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFDcEIsY0FBUyxHQUFH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RUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksWUFBWSxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsS0FBSyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4RyxNQUFNLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O2dIQXRKVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixxWUFYcEI7Ozs7OztHQU1UO0FBY3VCO0lBQWQsV0FBVyxFQUFFO29EQUFhO0FBT1o7SUFBZCxXQUFXLEVBQUU7bURBQWM7QUFFYjtJQUFkLFdBQVcsRUFBRTt3REFBaUI7QUFDZjtJQUFmLFlBQVksRUFBRTttREFBZTsyRkFuQjVCLG1CQUFtQjtrQkFkL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFFBQVEsRUFBRTs7Ozs7O0dBTVQ7b0JBQ0QsbUJBQW1CLEVBQUUsS0FBSztvQkFDMUIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs4QkFTVSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ2tCLE9BQU87c0JBQTlCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNrQixNQUFNO3NCQUE3QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDa0IsV0FBVztzQkFBbEMsS0FBSztnQkFDbUIsTUFBTTtzQkFBOUIsS0FBSztnQkFDYSxTQUFTO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgQ2hhcnQsIEV2ZW50LCBUeXBlcyB9IGZyb20gJ0BhbnR2L2cyJztcbmltcG9ydCB7IGZvcm1hdCB9IGZyb20gJ2RhdGUtZm5zJztcblxuaW1wb3J0IHsgRzJCYXNlQ29tcG9uZW50LCBHMlRpbWUgfSBmcm9tICdAZGVsb24vY2hhcnQvY29yZSc7XG5pbXBvcnQgeyB0b0RhdGUgfSBmcm9tICdAZGVsb24vdXRpbC9kYXRlLXRpbWUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBJbnB1dEJvb2xlYW4sIElucHV0TnVtYmVyLCBOdW1iZXJJbnB1dCB9IGZyb20gJ0BkZWxvbi91dGlsL2RlY29yYXRvcic7XG5pbXBvcnQgdHlwZSB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRzJUaW1lbGluZURhdGEge1xuICAvKipcbiAgICog5pe26Ze05YC8XG4gICAqL1xuICB0aW1lPzogRzJUaW1lO1xuICAvKiog5oyH5qCHMeaVsOaNriAqL1xuICB5MTogbnVtYmVyO1xuICAvKiog5oyH5qCHMuaVsOaNriAqL1xuICB5MjogbnVtYmVyO1xuICAvKiog5oyH5qCHM+aVsOaNriAqL1xuICB5Mz86IG51bWJlcjtcbiAgLyoqIOaMh+aghzTmlbDmja4gKi9cbiAgeTQ/OiBudW1iZXI7XG4gIC8qKiDmjIfmoIc15pWw5o2uICovXG4gIHk1PzogbnVtYmVyO1xuICBba2V5OiBzdHJpbmddOiBOelNhZmVBbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRzJUaW1lbGluZU1hcCB7XG4gIC8qKiDmjIfmoIcxICovXG4gIHkxOiBzdHJpbmc7XG4gIC8qKiDmjIfmoIcgKi9cbiAgeTI6IHN0cmluZztcbiAgLyoqIOaMh+aghzMgKi9cbiAgeTM/OiBzdHJpbmc7XG4gIC8qKiDmjIfmoIc0ICovXG4gIHk0Pzogc3RyaW5nO1xuICAvKiog5oyH5qCHNSAqL1xuICB5NT86IHN0cmluZztcblxuICBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRzJUaW1lbGluZUNsaWNrSXRlbSB7XG4gIGl0ZW06IEcyVGltZWxpbmVEYXRhO1xuICBldjogRXZlbnQ7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2cyLXRpbWVsaW5lJyxcbiAgZXhwb3J0QXM6ICdnMlRpbWVsaW5lJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGVcIj5cbiAgICAgIDxoND57eyB0aXRsZSB9fTwvaDQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG56LXNrZWxldG9uICpuZ0lmPVwiIWxvYWRlZFwiPjwvbnotc2tlbGV0b24+XG4gICAgPGRpdiAjY29udGFpbmVyPjwvZGl2PlxuICBgLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRzJUaW1lbGluZUNvbXBvbmVudCBleHRlbmRzIEcyQmFzZUNvbXBvbmVudCB7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9oZWlnaHQ6IE51bWJlcklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbWF4QXhpczogTnVtYmVySW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9ib3JkZXJXaWR0aDogTnVtYmVySW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9zbGlkZXI6IEJvb2xlYW5JbnB1dDtcblxuICAvLyAjcmVnaW9uIGZpZWxkc1xuXG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsO1xuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBtYXhBeGlzID0gMjtcbiAgQElucHV0KCkgZGF0YTogRzJUaW1lbGluZURhdGFbXSA9IFtdO1xuICBASW5wdXQoKSB0aXRsZU1hcD86IEcyVGltZWxpbmVNYXAgfCBudWxsO1xuICBASW5wdXQoKSBjb2xvck1hcDogRzJUaW1lbGluZU1hcCA9IHsgeTE6ICcjNUI4RkY5JywgeTI6ICcjNUFEOEE2JywgeTM6ICcjNUQ3MDkyJywgeTQ6ICcjRjZCRDE2JywgeTU6ICcjRTg2NDUyJyB9O1xuICBASW5wdXQoKSBtYXNrOiBzdHJpbmcgPSAnSEg6bW0nO1xuICBASW5wdXQoKSBtYXNrU2xpZGVyOiBzdHJpbmcgPSAnSEg6bW0nO1xuICBASW5wdXQoKSBwb3NpdGlvbjogJ3RvcCcgfCAncmlnaHQnIHwgJ2JvdHRvbScgfCAnbGVmdCcgPSAndG9wJztcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgaGVpZ2h0ID0gNDUwO1xuICBASW5wdXQoKSBwYWRkaW5nOiBudW1iZXJbXSA9IFs0MCwgOCwgNjQsIDQwXTtcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgYm9yZGVyV2lkdGggPSAyO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2xpZGVyID0gdHJ1ZTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNsaWNrSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8RzJUaW1lbGluZUNsaWNrSXRlbT4oKTtcblxuICAvLyAjZW5kcmVnaW9uXG5cbiAgb25seUNoYW5nZURhdGEgPSAoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IGJvb2xlYW4gPT4ge1xuICAgIGNvbnN0IHRtID0gY2hhbmdlcy50aXRsZU1hcDtcbiAgICByZXR1cm4gISh0bSAmJiAhdG0uZmlyc3RDaGFuZ2UgJiYgdG0uY3VycmVudFZhbHVlICE9PSB0bS5wcmV2aW91c1ZhbHVlKTtcbiAgfTtcblxuICBpbnN0YWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IHsgbm9kZSwgaGVpZ2h0LCBwYWRkaW5nLCBzbGlkZXIsIG1heEF4aXMsIHRoZW1lLCBtYXNrU2xpZGVyIH0gPSB0aGlzO1xuICAgIGNvbnN0IGNoYXJ0OiBDaGFydCA9ICh0aGlzLl9jaGFydCA9IG5ldyAod2luZG93IGFzIE56U2FmZUFueSkuRzIuQ2hhcnQoe1xuICAgICAgY29udGFpbmVyOiBub2RlLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBhdXRvRml0OiB0cnVlLFxuICAgICAgaGVpZ2h0LFxuICAgICAgcGFkZGluZyxcbiAgICAgIHRoZW1lXG4gICAgfSkpO1xuICAgIGNoYXJ0LmF4aXMoJ3RpbWUnLCB7IHRpdGxlOiBudWxsIH0pO1xuICAgIGNoYXJ0LmF4aXMoJ3kxJywgeyB0aXRsZTogbnVsbCB9KTtcbiAgICBmb3IgKGxldCBpID0gMjsgaSA8PSBtYXhBeGlzOyBpKyspIHtcbiAgICAgIGNoYXJ0LmF4aXMoYHkke2l9YCwgZmFsc2UpO1xuICAgIH1cblxuICAgIGNoYXJ0LmxpbmUoKS5wb3NpdGlvbigndGltZSp5MScpO1xuICAgIGZvciAobGV0IGkgPSAyOyBpIDw9IG1heEF4aXM7IGkrKykge1xuICAgICAgY2hhcnQubGluZSgpLnBvc2l0aW9uKGB0aW1lKnkke2l9YCk7XG4gICAgfVxuXG4gICAgY2hhcnQudG9vbHRpcCh7XG4gICAgICBzaG93Q3Jvc3NoYWlyczogdHJ1ZSxcbiAgICAgIHNoYXJlZDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2xpZGVyUGFkZGluZyA9IHsgLi4uW10sIC4uLnBhZGRpbmcgfTtcbiAgICBzbGlkZXJQYWRkaW5nWzBdID0gMDtcbiAgICBpZiAoc2xpZGVyKSB7XG4gICAgICBjaGFydC5vcHRpb24oJ3NsaWRlcicsIHtcbiAgICAgICAgaGVpZ2h0OiAyNixcbiAgICAgICAgc3RhcnQ6IDAsXG4gICAgICAgIGVuZDogMSxcbiAgICAgICAgdHJlbmRDZmc6IHtcbiAgICAgICAgICBpc0FyZWE6IGZhbHNlXG4gICAgICAgIH0sXG4gICAgICAgIG1pbkxpbWl0OiAyLFxuICAgICAgICBmb3JtYXR0ZXI6ICh2YWw6IERhdGUpID0+IGZvcm1hdCh2YWwsIG1hc2tTbGlkZXIpXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjaGFydC5vbihgcGxvdDpjbGlja2AsIChldjogRXZlbnQpID0+IHtcbiAgICAgIGNvbnN0IHJlY29yZHMgPSB0aGlzLl9jaGFydC5nZXRTbmFwUmVjb3Jkcyh7IHg6IGV2LngsIHk6IGV2LnkgfSk7XG4gICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4gdGhpcy5jbGlja0l0ZW0uZW1pdCh7IGl0ZW06IHJlY29yZHNbMF0uX29yaWdpbiwgZXYgfSkpO1xuICAgIH0pO1xuXG4gICAgY2hhcnQub24oYGxlZ2VuZC1pdGVtOmNsaWNrYCwgKGV2OiBFdmVudCkgPT4ge1xuICAgICAgY29uc3QgaXRlbSA9IGV2Py50YXJnZXQ/LmdldCgnZGVsZWdhdGVPYmplY3QnKS5pdGVtO1xuICAgICAgY29uc3QgaWQgPSBpdGVtPy5pZDtcbiAgICAgIGNvbnN0IGxpbmUgPSBjaGFydC5nZW9tZXRyaWVzLmZpbmQodyA9PiB3LmdldEF0dHJpYnV0ZSgncG9zaXRpb24nKS5nZXRGaWVsZHMoKVsxXSA9PT0gaWQpO1xuICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgbGluZS5jaGFuZ2VWaXNpYmxlKCFpdGVtLnVuY2hlY2tlZCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLmNoYW5nZURhdGEoKTtcblxuICAgIGNoYXJ0LnJlbmRlcigpO1xuICB9XG5cbiAgY2hhbmdlRGF0YSgpOiB2b2lkIHtcbiAgICBjb25zdCB7IF9jaGFydCwgaGVpZ2h0LCBwYWRkaW5nLCBtYXNrLCB0aXRsZU1hcCwgcG9zaXRpb24sIGNvbG9yTWFwLCBib3JkZXJXaWR0aCwgbWF4QXhpcyB9ID0gdGhpcztcbiAgICBsZXQgZGF0YSA9IFsuLi50aGlzLmRhdGFdO1xuICAgIGlmICghX2NoYXJ0IHx8IGRhdGEubGVuZ3RoIDw9IDApIHJldHVybjtcblxuICAgIGNvbnN0IGFyckF4aXMgPSBbLi4uQXJyYXkobWF4QXhpcyldLm1hcCgoXywgaW5kZXgpID0+IGluZGV4ICsgMSk7XG5cbiAgICBfY2hhcnQubGVnZW5kKHtcbiAgICAgIHBvc2l0aW9uLFxuICAgICAgY3VzdG9tOiB0cnVlLFxuICAgICAgaXRlbXM6IGFyckF4aXMubWFwKGlkID0+IHtcbiAgICAgICAgY29uc3Qga2V5ID0gYHkke2lkfWA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICBuYW1lOiB0aXRsZU1hcCFba2V5XSxcbiAgICAgICAgICB2YWx1ZToga2V5LFxuICAgICAgICAgIG1hcmtlcjogeyBzdHlsZTogeyBmaWxsOiBjb2xvck1hcFtrZXldIH0gfVxuICAgICAgICB9IGFzIFR5cGVzLkxlZ2VuZEl0ZW07XG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgLy8gYm9yZGVyXG4gICAgX2NoYXJ0Lmdlb21ldHJpZXMuZm9yRWFjaCgodiwgaWR4OiBudW1iZXIpID0+IHtcbiAgICAgIHYuY29sb3IoKGNvbG9yTWFwIGFzIE56U2FmZUFueSlbYHkke2lkeCArIDF9YF0pLnNpemUoYm9yZGVyV2lkdGgpO1xuICAgIH0pO1xuICAgIF9jaGFydC5oZWlnaHQgPSBoZWlnaHQ7XG4gICAgX2NoYXJ0LnBhZGRpbmcgPSBwYWRkaW5nO1xuXG4gICAgLy8g6L2s5o2i5oiQ5pel5pyf57G75Z6LXG4gICAgZGF0YSA9IGRhdGFcbiAgICAgIC5tYXAoaXRlbSA9PiB7XG4gICAgICAgIGl0ZW0udGltZSA9IHRvRGF0ZShpdGVtLnRpbWUhKTtcbiAgICAgICAgaXRlbS5fdGltZSA9ICtpdGVtLnRpbWU7XG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgfSlcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLl90aW1lIC0gYi5fdGltZSk7XG5cbiAgICBjb25zdCBtYXggPSBNYXRoLm1heCguLi5hcnJBeGlzLm1hcChpZCA9PiBbLi4uZGF0YV0uc29ydCgoYSwgYikgPT4gYltgeSR7aWR9YF0gLSBhW2B5JHtpZH1gXSlbMF1bYHkke2lkfWBdKSk7XG4gICAgY29uc3Qgc2NhbGVPcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBUeXBlcy5TY2FsZU9wdGlvbj4gPSB7fTtcbiAgICBhcnJBeGlzLmZvckVhY2goaWQgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gYHkke2lkfWA7XG4gICAgICBzY2FsZU9wdGlvbnNba2V5XSA9IHtcbiAgICAgICAgYWxpYXM6IHRpdGxlTWFwIVtrZXldLFxuICAgICAgICBtYXgsXG4gICAgICAgIG1pbjogMFxuICAgICAgfTtcbiAgICB9KTtcbiAgICBfY2hhcnQuc2NhbGUoe1xuICAgICAgdGltZToge1xuICAgICAgICB0eXBlOiAndGltZScsXG4gICAgICAgIG1hc2ssXG4gICAgICAgIHJhbmdlOiBbMCwgMV1cbiAgICAgIH0sXG4gICAgICAuLi5zY2FsZU9wdGlvbnNcbiAgICB9KTtcblxuICAgIGNvbnN0IGluaXRpYWxSYW5nZSA9IHtcbiAgICAgIHN0YXJ0OiBkYXRhWzBdLl90aW1lLFxuICAgICAgZW5kOiBkYXRhW2RhdGEubGVuZ3RoIC0gMV0uX3RpbWVcbiAgICB9O1xuICAgIGNvbnN0IGZpbHRlckRhdGEgPSBkYXRhLmZpbHRlcih2YWwgPT4gdmFsLl90aW1lID49IGluaXRpYWxSYW5nZS5zdGFydCAmJiB2YWwuX3RpbWUgPD0gaW5pdGlhbFJhbmdlLmVuZCk7XG4gICAgX2NoYXJ0LmNoYW5nZURhdGEoZmlsdGVyRGF0YSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NzOutletModule } from 'ng-zorro-antd/core/outlet';
4
+ import { NzSkeletonModule } from 'ng-zorro-antd/skeleton';
5
+ import { G2TimelineComponent } from './timeline.component';
6
+ import * as i0 from "@angular/core";
7
+ const COMPONENTS = [G2TimelineComponent];
8
+ export class G2TimelineModule {
9
+ }
10
+ G2TimelineModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2TimelineModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ G2TimelineModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2TimelineModule, declarations: [G2TimelineComponent], imports: [CommonModule, NzOutletModule, NzSkeletonModule], exports: [G2TimelineComponent] });
12
+ G2TimelineModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2TimelineModule, imports: [[CommonModule, NzOutletModule, NzSkeletonModule]] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2TimelineModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule, NzOutletModule, NzSkeletonModule],
17
+ declarations: COMPONENTS,
18
+ exports: COMPONENTS
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxpbmUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnQvdGltZWxpbmUvdGltZWxpbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFM0QsTUFBTSxVQUFVLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBT3pDLE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFQVCxtQkFBbUIsYUFHM0IsWUFBWSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsYUFIdEMsbUJBQW1COzhHQU8xQixnQkFBZ0IsWUFKbEIsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDOzJGQUk5QyxnQkFBZ0I7a0JBTDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDekQsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOek91dGxldE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS9vdXRsZXQnO1xuaW1wb3J0IHsgTnpTa2VsZXRvbk1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvc2tlbGV0b24nO1xuXG5pbXBvcnQgeyBHMlRpbWVsaW5lQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lbGluZS5jb21wb25lbnQnO1xuXG5jb25zdCBDT01QT05FTlRTID0gW0cyVGltZWxpbmVDb21wb25lbnRdO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBOek91dGxldE1vZHVsZSwgTnpTa2VsZXRvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBHMlRpbWVsaW5lTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsb24tY2hhcnQtdHJlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydC90cmVuZC9kZWxvbi1jaGFydC10cmVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,52 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
3
+ import { InputBoolean } from '@delon/util/decorator';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "ng-zorro-antd/icon";
7
+ export class TrendComponent {
8
+ constructor() {
9
+ /** 是否彩色标记 */
10
+ this.colorful = true;
11
+ /** 颜色反转 */
12
+ this.reverseColor = false;
13
+ }
14
+ }
15
+ TrendComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrendComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ TrendComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: TrendComponent, selector: "trend", inputs: { flag: "flag", colorful: "colorful", reverseColor: "reverseColor" }, host: { properties: { "class.trend": "true", "class.trend__grey": "!colorful", "class.trend__reverse": "colorful && reverseColor", "attr.data-flag": "flag" } }, exportAs: ["trend"], ngImport: i0, template: `
17
+ <ng-content></ng-content>
18
+ <span *ngIf="flag" class="trend__{{ flag }}"><i nz-icon nzType="caret-{{ flag }}"></i></span>
19
+ `, isInline: true, directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
20
+ __decorate([
21
+ InputBoolean()
22
+ ], TrendComponent.prototype, "colorful", void 0);
23
+ __decorate([
24
+ InputBoolean()
25
+ ], TrendComponent.prototype, "reverseColor", void 0);
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrendComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ selector: 'trend',
30
+ exportAs: 'trend',
31
+ template: `
32
+ <ng-content></ng-content>
33
+ <span *ngIf="flag" class="trend__{{ flag }}"><i nz-icon nzType="caret-{{ flag }}"></i></span>
34
+ `,
35
+ host: {
36
+ '[class.trend]': 'true',
37
+ '[class.trend__grey]': '!colorful',
38
+ '[class.trend__reverse]': 'colorful && reverseColor',
39
+ '[attr.data-flag]': `flag`
40
+ },
41
+ preserveWhitespaces: false,
42
+ changeDetection: ChangeDetectionStrategy.OnPush,
43
+ encapsulation: ViewEncapsulation.None
44
+ }]
45
+ }], propDecorators: { flag: [{
46
+ type: Input
47
+ }], colorful: [{
48
+ type: Input
49
+ }], reverseColor: [{
50
+ type: Input
51
+ }] } });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlbmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnQvdHJlbmQvdHJlbmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQWdCLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBbUJuRSxNQUFNLE9BQU8sY0FBYztJQWpCM0I7UUF1QkUsYUFBYTtRQUNZLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekMsV0FBVztRQUNjLGlCQUFZLEdBQUcsS0FBSyxDQUFDO0tBQy9DOzsyR0FWWSxjQUFjOytGQUFkLGNBQWMsaVRBZGY7OztHQUdUO0FBa0J3QjtJQUFmLFlBQVksRUFBRTtnREFBaUI7QUFFaEI7SUFBZixZQUFZLEVBQUU7b0RBQXNCOzJGQVRuQyxjQUFjO2tCQWpCMUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsT0FBTztvQkFDakIsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLFFBQVEsRUFBRTs7O0dBR1Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNKLGVBQWUsRUFBRSxNQUFNO3dCQUN2QixxQkFBcUIsRUFBRSxXQUFXO3dCQUNsQyx3QkFBd0IsRUFBRSwwQkFBMEI7d0JBQ3BELGtCQUFrQixFQUFFLE1BQU07cUJBQzNCO29CQUNELG1CQUFtQixFQUFFLEtBQUs7b0JBQzFCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OEJBTVUsSUFBSTtzQkFBWixLQUFLO2dCQUVtQixRQUFRO3NCQUFoQyxLQUFLO2dCQUVtQixZQUFZO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgSW5wdXRCb29sZWFuIH0gZnJvbSAnQGRlbG9uL3V0aWwvZGVjb3JhdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndHJlbmQnLFxuICBleHBvcnRBczogJ3RyZW5kJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPHNwYW4gKm5nSWY9XCJmbGFnXCIgY2xhc3M9XCJ0cmVuZF9fe3sgZmxhZyB9fVwiPjxpIG56LWljb24gbnpUeXBlPVwiY2FyZXQte3sgZmxhZyB9fVwiPjwvaT48L3NwYW4+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLnRyZW5kXSc6ICd0cnVlJyxcbiAgICAnW2NsYXNzLnRyZW5kX19ncmV5XSc6ICchY29sb3JmdWwnLFxuICAgICdbY2xhc3MudHJlbmRfX3JldmVyc2VdJzogJ2NvbG9yZnVsICYmIHJldmVyc2VDb2xvcicsXG4gICAgJ1thdHRyLmRhdGEtZmxhZ10nOiBgZmxhZ2BcbiAgfSxcbiAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRyZW5kQ29tcG9uZW50IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2NvbG9yZnVsOiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yZXZlcnNlQ29sb3I6IEJvb2xlYW5JbnB1dDtcblxuICAvKiog5LiK5Y2H5LiL6ZmN5qCH6K+GICovXG4gIEBJbnB1dCgpIGZsYWc/OiAndXAnIHwgJ2Rvd24nO1xuICAvKiog5piv5ZCm5b2p6Imy5qCH6K6wICovXG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBjb2xvcmZ1bCA9IHRydWU7XG4gIC8qKiDpopzoibLlj43ovawgKi9cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHJldmVyc2VDb2xvciA9IGZhbHNlO1xufVxuIl19
@@ -0,0 +1,20 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { NzIconModule } from 'ng-zorro-antd/icon';
4
+ import { TrendComponent } from './trend.component';
5
+ import * as i0 from "@angular/core";
6
+ const COMPONENTS = [TrendComponent];
7
+ export class TrendModule {
8
+ }
9
+ TrendModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrendModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ TrendModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrendModule, declarations: [TrendComponent], imports: [CommonModule, NzIconModule], exports: [TrendComponent] });
11
+ TrendModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrendModule, imports: [[CommonModule, NzIconModule]] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: TrendModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule, NzIconModule],
16
+ declarations: COMPONENTS,
17
+ exports: COMPONENTS
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlbmQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnQvdHJlbmQvdHJlbmQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRW5ELE1BQU0sVUFBVSxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7QUFPcEMsTUFBTSxPQUFPLFdBQVc7O3dHQUFYLFdBQVc7eUdBQVgsV0FBVyxpQkFQSixjQUFjLGFBR3RCLFlBQVksRUFBRSxZQUFZLGFBSGxCLGNBQWM7eUdBT3JCLFdBQVcsWUFKYixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUM7MkZBSTFCLFdBQVc7a0JBTHZCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQztvQkFDckMsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLE9BQU8sRUFBRSxVQUFVO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOekljb25Nb2R1bGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2ljb24nO1xuXG5pbXBvcnQgeyBUcmVuZENvbXBvbmVudCB9IGZyb20gJy4vdHJlbmQuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtUcmVuZENvbXBvbmVudF07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE56SWNvbk1vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogQ09NUE9ORU5UUyxcbiAgZXhwb3J0czogQ09NUE9ORU5UU1xufSlcbmV4cG9ydCBjbGFzcyBUcmVuZE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsb24tY2hhcnQtd2F0ZXItd2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NoYXJ0L3dhdGVyLXdhdmUvZGVsb24tY2hhcnQtd2F0ZXItd2F2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpY19hcGknO1xuIl19
@@ -0,0 +1,221 @@
1
+ import { __decorate } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, Input, ViewChild, ViewEncapsulation } from '@angular/core';
3
+ import { fromEvent } from 'rxjs';
4
+ import { debounceTime } from 'rxjs/operators';
5
+ import { InputBoolean, InputNumber } from '@delon/util/decorator';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/cdk/platform";
8
+ import * as i2 from "@angular/common";
9
+ import * as i3 from "ng-zorro-antd/core/outlet";
10
+ export class G2WaterWaveComponent {
11
+ // #endregion
12
+ constructor(el, renderer, ngZone, cdr, platform) {
13
+ this.el = el;
14
+ this.renderer = renderer;
15
+ this.ngZone = ngZone;
16
+ this.cdr = cdr;
17
+ this.platform = platform;
18
+ this.resize$ = null;
19
+ // #region fields
20
+ this.animate = true;
21
+ this.delay = 0;
22
+ this.color = '#1890FF';
23
+ this.height = 160;
24
+ }
25
+ renderChart(isUpdate) {
26
+ if (!this.resize$)
27
+ return;
28
+ this.updateRadio();
29
+ const { percent, color, node, animate } = this;
30
+ const data = Math.min(Math.max(percent / 100, 0), 100);
31
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
32
+ const self = this;
33
+ cancelAnimationFrame(this.timer);
34
+ const canvas = node.nativeElement;
35
+ const ctx = canvas.getContext('2d');
36
+ const canvasWidth = canvas.width;
37
+ const canvasHeight = canvas.height;
38
+ const radius = canvasWidth / 2;
39
+ const lineWidth = 2;
40
+ const cR = radius - lineWidth;
41
+ ctx.beginPath();
42
+ ctx.lineWidth = lineWidth * 2;
43
+ const axisLength = canvasWidth - lineWidth;
44
+ const unit = axisLength / 8;
45
+ const xOffset = lineWidth;
46
+ let sp = 0; // 周期偏移量
47
+ const range = 0.2; // 振幅
48
+ let currRange = range;
49
+ let currData = 0;
50
+ const waveupsp = animate ? 0.005 : 0.015; // 水波上涨速度
51
+ let arcStack = [];
52
+ const bR = radius - lineWidth;
53
+ const circleOffset = -(Math.PI / 2);
54
+ let circleLock = true;
55
+ for (let i = circleOffset; i < circleOffset + 2 * Math.PI; i += 1 / (8 * Math.PI)) {
56
+ arcStack.push([radius + bR * Math.cos(i), radius + bR * Math.sin(i)]);
57
+ }
58
+ const cStartPoint = arcStack.shift();
59
+ ctx.strokeStyle = color;
60
+ ctx.moveTo(cStartPoint[0], cStartPoint[1]);
61
+ function drawSin() {
62
+ ctx.beginPath();
63
+ ctx.save();
64
+ const sinStack = [];
65
+ for (let i = xOffset; i <= xOffset + axisLength; i += 20 / axisLength) {
66
+ const x = sp + (xOffset + i) / unit;
67
+ const y = Math.sin(x) * currRange;
68
+ const dx = i;
69
+ const dy = 2 * cR * (1 - currData) + (radius - cR) - unit * y;
70
+ ctx.lineTo(dx, dy);
71
+ sinStack.push([dx, dy]);
72
+ }
73
+ const startPoint = sinStack.shift();
74
+ ctx.lineTo(xOffset + axisLength, canvasHeight);
75
+ ctx.lineTo(xOffset, canvasHeight);
76
+ ctx.lineTo(startPoint[0], startPoint[1]);
77
+ const gradient = ctx.createLinearGradient(0, 0, 0, canvasHeight);
78
+ gradient.addColorStop(0, '#ffffff');
79
+ gradient.addColorStop(1, color);
80
+ ctx.fillStyle = gradient;
81
+ ctx.fill();
82
+ ctx.restore();
83
+ }
84
+ function render() {
85
+ ctx.clearRect(0, 0, canvasWidth, canvasHeight);
86
+ if (circleLock && !isUpdate) {
87
+ if (arcStack.length) {
88
+ if (animate) {
89
+ const temp = arcStack.shift();
90
+ ctx.lineTo(temp[0], temp[1]);
91
+ ctx.stroke();
92
+ }
93
+ else {
94
+ for (const temp of arcStack) {
95
+ ctx.lineTo(temp[0], temp[1]);
96
+ ctx.stroke();
97
+ }
98
+ arcStack = [];
99
+ }
100
+ }
101
+ else {
102
+ circleLock = false;
103
+ ctx.lineTo(cStartPoint[0], cStartPoint[1]);
104
+ ctx.stroke();
105
+ arcStack = null;
106
+ ctx.globalCompositeOperation = 'destination-over';
107
+ ctx.beginPath();
108
+ ctx.lineWidth = lineWidth;
109
+ ctx.arc(radius, radius, bR, 0, 2 * Math.PI, true);
110
+ ctx.beginPath();
111
+ ctx.save();
112
+ ctx.arc(radius, radius, radius - 3 * lineWidth, 0, 2 * Math.PI, true);
113
+ ctx.restore();
114
+ ctx.clip();
115
+ ctx.fillStyle = color;
116
+ }
117
+ }
118
+ else {
119
+ if (data >= 0.85) {
120
+ if (currRange > range / 4) {
121
+ const t = range * 0.01;
122
+ currRange -= t;
123
+ }
124
+ }
125
+ else if (data <= 0.1) {
126
+ if (currRange < range * 1.5) {
127
+ const t = range * 0.01;
128
+ currRange += t;
129
+ }
130
+ }
131
+ else {
132
+ if (currRange <= range) {
133
+ const t = range * 0.01;
134
+ currRange += t;
135
+ }
136
+ if (currRange >= range) {
137
+ const t = range * 0.01;
138
+ currRange -= t;
139
+ }
140
+ }
141
+ if (data - currData > 0) {
142
+ currData += waveupsp;
143
+ }
144
+ if (data - currData < 0) {
145
+ currData -= waveupsp;
146
+ }
147
+ sp += 0.07;
148
+ drawSin();
149
+ }
150
+ self.timer = requestAnimationFrame(render);
151
+ }
152
+ render();
153
+ // drawSin();
154
+ }
155
+ updateRadio() {
156
+ const { offsetWidth } = this.el.nativeElement.parentNode;
157
+ const radio = offsetWidth < this.height ? offsetWidth / this.height : 1;
158
+ this.renderer.setStyle(this.el.nativeElement, 'transform', `scale(${radio})`);
159
+ }
160
+ render() {
161
+ this.renderChart(false);
162
+ }
163
+ installResizeEvent() {
164
+ this.resize$ = fromEvent(window, 'resize')
165
+ .pipe(debounceTime(200))
166
+ .subscribe(() => this.updateRadio());
167
+ }
168
+ ngOnInit() {
169
+ if (!this.platform.isBrowser) {
170
+ return;
171
+ }
172
+ this.installResizeEvent();
173
+ this.ngZone.runOutsideAngular(() => setTimeout(() => this.render(), this.delay));
174
+ }
175
+ ngOnChanges() {
176
+ this.ngZone.runOutsideAngular(() => this.renderChart(true));
177
+ this.cdr.detectChanges();
178
+ }
179
+ ngOnDestroy() {
180
+ if (this.timer) {
181
+ cancelAnimationFrame(this.timer);
182
+ }
183
+ if (this.resize$) {
184
+ this.resize$.unsubscribe();
185
+ }
186
+ }
187
+ }
188
+ G2WaterWaveComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2WaterWaveComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Component });
189
+ G2WaterWaveComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.1", type: G2WaterWaveComponent, selector: "g2-water-wave", inputs: { animate: "animate", delay: "delay", title: "title", color: "color", height: "height", percent: "percent" }, host: { properties: { "class.g2-water-wave": "true" } }, viewQueries: [{ propertyName: "node", first: true, predicate: ["container"], descendants: true, static: true }], exportAs: ["g2WaterWave"], usesOnChanges: true, ngImport: i0, template: "<div [ngStyle]=\"{ 'height.px': height, 'width.px': height, overflow: 'hidden' }\">\n <canvas #container class=\"g2-water-wave__canvas\" width=\"{{ height * 2 }}\" height=\"{{ height * 2 }}\"></canvas>\n</div>\n<div class=\"g2-water-wave__desc\" [ngStyle]=\"{ 'width.px': height }\">\n <span *ngIf=\"title\" class=\"g2-water-wave__desc-title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n </span>\n <h4 class=\"g2-water-wave__desc-percent\">{{ percent }}%</h4>\n</div>\n", directives: [{ type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NzStringTemplateOutletDirective, selector: "[nzStringTemplateOutlet]", inputs: ["nzStringTemplateOutletContext", "nzStringTemplateOutlet"], exportAs: ["nzStringTemplateOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
190
+ __decorate([
191
+ InputBoolean()
192
+ ], G2WaterWaveComponent.prototype, "animate", void 0);
193
+ __decorate([
194
+ InputNumber()
195
+ ], G2WaterWaveComponent.prototype, "delay", void 0);
196
+ __decorate([
197
+ InputNumber()
198
+ ], G2WaterWaveComponent.prototype, "height", void 0);
199
+ __decorate([
200
+ InputNumber()
201
+ ], G2WaterWaveComponent.prototype, "percent", void 0);
202
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: G2WaterWaveComponent, decorators: [{
203
+ type: Component,
204
+ args: [{ selector: 'g2-water-wave', exportAs: 'g2WaterWave', host: { '[class.g2-water-wave]': 'true' }, preserveWhitespaces: false, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div [ngStyle]=\"{ 'height.px': height, 'width.px': height, overflow: 'hidden' }\">\n <canvas #container class=\"g2-water-wave__canvas\" width=\"{{ height * 2 }}\" height=\"{{ height * 2 }}\"></canvas>\n</div>\n<div class=\"g2-water-wave__desc\" [ngStyle]=\"{ 'width.px': height }\">\n <span *ngIf=\"title\" class=\"g2-water-wave__desc-title\">\n <ng-container *nzStringTemplateOutlet=\"title\">{{ title }}</ng-container>\n </span>\n <h4 class=\"g2-water-wave__desc-percent\">{{ percent }}%</h4>\n</div>\n" }]
205
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }, { type: i1.Platform }]; }, propDecorators: { node: [{
206
+ type: ViewChild,
207
+ args: ['container', { static: true }]
208
+ }], animate: [{
209
+ type: Input
210
+ }], delay: [{
211
+ type: Input
212
+ }], title: [{
213
+ type: Input
214
+ }], color: [{
215
+ type: Input
216
+ }], height: [{
217
+ type: Input
218
+ }], percent: [{
219
+ type: Input
220
+ }] } });
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXItd2F2ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jaGFydC93YXRlci13YXZlL3dhdGVyLXdhdmUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY2hhcnQvd2F0ZXItd2F2ZS93YXRlci13YXZlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxLQUFLLEVBT0wsU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFnQixZQUFZLEVBQUUsV0FBVyxFQUFlLE1BQU0sdUJBQXVCLENBQUM7Ozs7O0FBVzdGLE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CLGFBQWE7SUFFYixZQUNVLEVBQWMsRUFDZCxRQUFtQixFQUNuQixNQUFjLEVBQ2QsR0FBc0IsRUFDdEIsUUFBa0I7UUFKbEIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUNkLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFwQnBCLFlBQU8sR0FBd0IsSUFBSSxDQUFDO1FBSTVDLGlCQUFpQjtRQUVRLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDaEIsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUV6QixVQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ0gsV0FBTSxHQUFHLEdBQUcsQ0FBQztJQVdsQyxDQUFDO0lBRUksV0FBVyxDQUFDLFFBQWlCO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFMUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFFL0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQVEsR0FBRyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEQsNERBQTREO1FBQzVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztRQUNsQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWtDLENBQUM7UUFDdkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQTZCLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLE1BQU0sRUFBRSxHQUFHLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFFOUIsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUU5QixNQUFNLFVBQVUsR0FBRyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzNDLE1BQU0sSUFBSSxHQUFHLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDNUIsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQzFCLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVE7UUFDcEIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSztRQUN4QixJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTO1FBRW5ELElBQUksUUFBUSxHQUErQixFQUFFLENBQUM7UUFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUM5QixNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFFdEIsS0FBSyxJQUFJLENBQUMsR0FBRyxZQUFZLEVBQUUsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUNqRixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkU7UUFFRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFzQixDQUFDO1FBQ3pELEdBQUcsQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTNDLFNBQVMsT0FBTztZQUNkLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNoQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFWCxNQUFNLFFBQVEsR0FBd0IsRUFBRSxDQUFDO1lBQ3pDLEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUMsSUFBSSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsVUFBVSxFQUFFO2dCQUNyRSxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUNwQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztnQkFDbEMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLE1BQU0sRUFBRSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztnQkFFOUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ25CLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN6QjtZQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQXNCLENBQUM7WUFFeEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ2xDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpDLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNqRSxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNoQyxHQUFHLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztZQUN6QixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWCxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsQ0FBQztRQUVELFNBQVMsTUFBTTtZQUNiLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDL0MsSUFBSSxVQUFVLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQzNCLElBQUksUUFBUyxDQUFDLE1BQU0sRUFBRTtvQkFDcEIsSUFBSSxPQUFPLEVBQUU7d0JBQ1gsTUFBTSxJQUFJLEdBQUcsUUFBUyxDQUFDLEtBQUssRUFBc0IsQ0FBQzt3QkFDbkQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQzdCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztxQkFDZDt5QkFBTTt3QkFDTCxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVMsRUFBRTs0QkFDNUIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NEJBQy9CLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQzt5QkFDZDt3QkFDRCxRQUFRLEdBQUcsRUFBRSxDQUFDO3FCQUNmO2lCQUNGO3FCQUFNO29CQUNMLFVBQVUsR0FBRyxLQUFLLENBQUM7b0JBQ25CLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMzQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ2IsUUFBUSxHQUFHLElBQUksQ0FBQztvQkFFaEIsR0FBRyxDQUFDLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO29CQUNsRCxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2hCLEdBQUcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO29CQUMxQixHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFFbEQsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO29CQUNoQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ1gsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFFdEUsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNkLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWCxHQUFHLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztpQkFDdkI7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7b0JBQ2hCLElBQUksU0FBUyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7d0JBQ3pCLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7d0JBQ3ZCLFNBQVMsSUFBSSxDQUFDLENBQUM7cUJBQ2hCO2lCQUNGO3FCQUFNLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDdEIsSUFBSSxTQUFTLEdBQUcsS0FBSyxHQUFHLEdBQUcsRUFBRTt3QkFDM0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQzt3QkFDdkIsU0FBUyxJQUFJLENBQUMsQ0FBQztxQkFDaEI7aUJBQ0Y7cUJBQU07b0JBQ0wsSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFO3dCQUN0QixNQUFNLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDO3dCQUN2QixTQUFTLElBQUksQ0FBQyxDQUFDO3FCQUNoQjtvQkFDRCxJQUFJLFNBQVMsSUFBSSxLQUFLLEVBQUU7d0JBQ3RCLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUM7d0JBQ3ZCLFNBQVMsSUFBSSxDQUFDLENBQUM7cUJBQ2hCO2lCQUNGO2dCQUNELElBQUksSUFBSSxHQUFHLFFBQVEsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZCLFFBQVEsSUFBSSxRQUFRLENBQUM7aUJBQ3RCO2dCQUNELElBQUksSUFBSSxHQUFHLFFBQVEsR0FBRyxDQUFDLEVBQUU7b0JBQ3ZCLFFBQVEsSUFBSSxRQUFRLENBQUM7aUJBQ3RCO2dCQUVELEVBQUUsSUFBSSxJQUFJLENBQUM7Z0JBQ1gsT0FBTyxFQUFFLENBQUM7YUFDWDtZQUNELElBQUksQ0FBQyxLQUFLLEdBQUcscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE1BQU0sRUFBRSxDQUFDO1FBQ1QsYUFBYTtJQUNmLENBQUM7SUFFTyxXQUFXO1FBQ2pCLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7UUFDekQsTUFBTSxLQUFLLEdBQUcsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDZCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7O2lIQW5OVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixxWUM5QmpDLGtnQkFTQTtBRGlDMkI7SUFBZixZQUFZLEVBQUU7cURBQWdCO0FBQ2hCO0lBQWQsV0FBVyxFQUFFO21EQUFXO0FBR1Y7SUFBZCxXQUFXLEVBQUU7b0RBQWM7QUFDYjtJQUFkLFdBQVcsRUFBRTtxREFBa0I7MkZBakI5QixvQkFBb0I7a0JBVGhDLFNBQVM7K0JBQ0UsZUFBZSxZQUNmLGFBQWEsUUFFakIsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsdUJBQ3BCLEtBQUssbUJBQ1QsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTtxTUFTYSxJQUFJO3NCQUFyRCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBS2YsT0FBTztzQkFBL0IsS0FBSztnQkFDa0IsS0FBSztzQkFBNUIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNrQixNQUFNO3NCQUE3QixLQUFLO2dCQUNrQixPQUFPO3NCQUE5QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBOZ1pvbmUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIElucHV0Qm9vbGVhbiwgSW5wdXROdW1iZXIsIE51bWJlcklucHV0IH0gZnJvbSAnQGRlbG9uL3V0aWwvZGVjb3JhdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZzItd2F0ZXItd2F2ZScsXG4gIGV4cG9ydEFzOiAnZzJXYXRlcldhdmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vd2F0ZXItd2F2ZS5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsgJ1tjbGFzcy5nMi13YXRlci13YXZlXSc6ICd0cnVlJyB9LFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgRzJXYXRlcldhdmVDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2FuaW1hdGU6IEJvb2xlYW5JbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2RlbGF5OiBOdW1iZXJJbnB1dDtcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2hlaWdodDogTnVtYmVySW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9wZXJjZW50OiBOdW1iZXJJbnB1dDtcblxuICBwcml2YXRlIHJlc2l6ZSQ6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBwcml2YXRlIG5vZGUhOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIHRpbWVyITogbnVtYmVyO1xuXG4gIC8vICNyZWdpb24gZmllbGRzXG5cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIGFuaW1hdGUgPSB0cnVlO1xuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBkZWxheSA9IDA7XG4gIEBJbnB1dCgpIHRpdGxlPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD4gfCBudWxsO1xuICBASW5wdXQoKSBjb2xvciA9ICcjMTg5MEZGJztcbiAgQElucHV0KCkgQElucHV0TnVtYmVyKCkgaGVpZ2h0ID0gMTYwO1xuICBASW5wdXQoKSBASW5wdXROdW1iZXIoKSBwZXJjZW50PzogbnVtYmVyO1xuXG4gIC8vICNlbmRyZWdpb25cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHBsYXRmb3JtOiBQbGF0Zm9ybVxuICApIHt9XG5cbiAgcHJpdmF0ZSByZW5kZXJDaGFydChpc1VwZGF0ZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZXNpemUkKSByZXR1cm47XG5cbiAgICB0aGlzLnVwZGF0ZVJhZGlvKCk7XG5cbiAgICBjb25zdCB7IHBlcmNlbnQsIGNvbG9yLCBub2RlLCBhbmltYXRlIH0gPSB0aGlzO1xuXG4gICAgY29uc3QgZGF0YSA9IE1hdGgubWluKE1hdGgubWF4KHBlcmNlbnQhIC8gMTAwLCAwKSwgMTAwKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnRpbWVyKTtcblxuICAgIGNvbnN0IGNhbnZhcyA9IG5vZGUubmF0aXZlRWxlbWVudCBhcyBIVE1MQ2FudmFzRWxlbWVudDtcbiAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKSBhcyBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gICAgY29uc3QgY2FudmFzV2lkdGggPSBjYW52YXMud2lkdGg7XG4gICAgY29uc3QgY2FudmFzSGVpZ2h0ID0gY2FudmFzLmhlaWdodDtcbiAgICBjb25zdCByYWRpdXMgPSBjYW52YXNXaWR0aCAvIDI7XG4gICAgY29uc3QgbGluZVdpZHRoID0gMjtcbiAgICBjb25zdCBjUiA9IHJhZGl1cyAtIGxpbmVXaWR0aDtcblxuICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICBjdHgubGluZVdpZHRoID0gbGluZVdpZHRoICogMjtcblxuICAgIGNvbnN0IGF4aXNMZW5ndGggPSBjYW52YXNXaWR0aCAtIGxpbmVXaWR0aDtcbiAgICBjb25zdCB1bml0ID0gYXhpc0xlbmd0aCAvIDg7XG4gICAgY29uc3QgeE9mZnNldCA9IGxpbmVXaWR0aDtcbiAgICBsZXQgc3AgPSAwOyAvLyDlkajmnJ/lgY/np7vph49cbiAgICBjb25zdCByYW5nZSA9IDAuMjsgLy8g5oyv5bmFXG4gICAgbGV0IGN1cnJSYW5nZSA9IHJhbmdlO1xuICAgIGxldCBjdXJyRGF0YSA9IDA7XG4gICAgY29uc3Qgd2F2ZXVwc3AgPSBhbmltYXRlID8gMC4wMDUgOiAwLjAxNTsgLy8g5rC05rOi5LiK5rao6YCf5bqmXG5cbiAgICBsZXQgYXJjU3RhY2s6IFtbbnVtYmVyLCBudW1iZXJdP10gfCBudWxsID0gW107XG4gICAgY29uc3QgYlIgPSByYWRpdXMgLSBsaW5lV2lkdGg7XG4gICAgY29uc3QgY2lyY2xlT2Zmc2V0ID0gLShNYXRoLlBJIC8gMik7XG4gICAgbGV0IGNpcmNsZUxvY2sgPSB0cnVlO1xuXG4gICAgZm9yIChsZXQgaSA9IGNpcmNsZU9mZnNldDsgaSA8IGNpcmNsZU9mZnNldCArIDIgKiBNYXRoLlBJOyBpICs9IDEgLyAoOCAqIE1hdGguUEkpKSB7XG4gICAgICBhcmNTdGFjay5wdXNoKFtyYWRpdXMgKyBiUiAqIE1hdGguY29zKGkpLCByYWRpdXMgKyBiUiAqIE1hdGguc2luKGkpXSk7XG4gICAgfVxuXG4gICAgY29uc3QgY1N0YXJ0UG9pbnQgPSBhcmNTdGFjay5zaGlmdCgpIGFzIFtudW1iZXIsIG51bWJlcl07XG4gICAgY3R4LnN0cm9rZVN0eWxlID0gY29sb3I7XG4gICAgY3R4Lm1vdmVUbyhjU3RhcnRQb2ludFswXSwgY1N0YXJ0UG9pbnRbMV0pO1xuXG4gICAgZnVuY3Rpb24gZHJhd1NpbigpOiB2b2lkIHtcbiAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgIGN0eC5zYXZlKCk7XG5cbiAgICAgIGNvbnN0IHNpblN0YWNrOiBbW251bWJlciwgbnVtYmVyXT9dID0gW107XG4gICAgICBmb3IgKGxldCBpID0geE9mZnNldDsgaSA8PSB4T2Zmc2V0ICsgYXhpc0xlbmd0aDsgaSArPSAyMCAvIGF4aXNMZW5ndGgpIHtcbiAgICAgICAgY29uc3QgeCA9IHNwICsgKHhPZmZzZXQgKyBpKSAvIHVuaXQ7XG4gICAgICAgIGNvbnN0IHkgPSBNYXRoLnNpbih4KSAqIGN1cnJSYW5nZTtcbiAgICAgICAgY29uc3QgZHggPSBpO1xuICAgICAgICBjb25zdCBkeSA9IDIgKiBjUiAqICgxIC0gY3VyckRhdGEpICsgKHJhZGl1cyAtIGNSKSAtIHVuaXQgKiB5O1xuXG4gICAgICAgIGN0eC5saW5lVG8oZHgsIGR5KTtcbiAgICAgICAgc2luU3RhY2sucHVzaChbZHgsIGR5XSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXJ0UG9pbnQgPSBzaW5TdGFjay5zaGlmdCgpIGFzIFtudW1iZXIsIG51bWJlcl07XG5cbiAgICAgIGN0eC5saW5lVG8oeE9mZnNldCArIGF4aXNMZW5ndGgsIGNhbnZhc0hlaWdodCk7XG4gICAgICBjdHgubGluZVRvKHhPZmZzZXQsIGNhbnZhc0hlaWdodCk7XG4gICAgICBjdHgubGluZVRvKHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0pO1xuXG4gICAgICBjb25zdCBncmFkaWVudCA9IGN0eC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCBjYW52YXNIZWlnaHQpO1xuICAgICAgZ3JhZGllbnQuYWRkQ29sb3JTdG9wKDAsICcjZmZmZmZmJyk7XG4gICAgICBncmFkaWVudC5hZGRDb2xvclN0b3AoMSwgY29sb3IpO1xuICAgICAgY3R4LmZpbGxTdHlsZSA9IGdyYWRpZW50O1xuICAgICAgY3R4LmZpbGwoKTtcbiAgICAgIGN0eC5yZXN0b3JlKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVuZGVyKCk6IHZvaWQge1xuICAgICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXNXaWR0aCwgY2FudmFzSGVpZ2h0KTtcbiAgICAgIGlmIChjaXJjbGVMb2NrICYmICFpc1VwZGF0ZSkge1xuICAgICAgICBpZiAoYXJjU3RhY2shLmxlbmd0aCkge1xuICAgICAgICAgIGlmIChhbmltYXRlKSB7XG4gICAgICAgICAgICBjb25zdCB0ZW1wID0gYXJjU3RhY2shLnNoaWZ0KCkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgICAgICAgICAgIGN0eC5saW5lVG8odGVtcFswXSwgdGVtcFsxXSk7XG4gICAgICAgICAgICBjdHguc3Ryb2tlKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgdGVtcCBvZiBhcmNTdGFjayEpIHtcbiAgICAgICAgICAgICAgY3R4LmxpbmVUbyh0ZW1wIVswXSwgdGVtcCFbMV0pO1xuICAgICAgICAgICAgICBjdHguc3Ryb2tlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhcmNTdGFjayA9IFtdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaXJjbGVMb2NrID0gZmFsc2U7XG4gICAgICAgICAgY3R4LmxpbmVUbyhjU3RhcnRQb2ludFswXSwgY1N0YXJ0UG9pbnRbMV0pO1xuICAgICAgICAgIGN0eC5zdHJva2UoKTtcbiAgICAgICAgICBhcmNTdGFjayA9IG51bGw7XG5cbiAgICAgICAgICBjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW92ZXInO1xuICAgICAgICAgIGN0eC5iZWdpblBhdGgoKTtcbiAgICAgICAgICBjdHgubGluZVdpZHRoID0gbGluZVdpZHRoO1xuICAgICAgICAgIGN0eC5hcmMocmFkaXVzLCByYWRpdXMsIGJSLCAwLCAyICogTWF0aC5QSSwgdHJ1ZSk7XG5cbiAgICAgICAgICBjdHguYmVnaW5QYXRoKCk7XG4gICAgICAgICAgY3R4LnNhdmUoKTtcbiAgICAgICAgICBjdHguYXJjKHJhZGl1cywgcmFkaXVzLCByYWRpdXMgLSAzICogbGluZVdpZHRoLCAwLCAyICogTWF0aC5QSSwgdHJ1ZSk7XG5cbiAgICAgICAgICBjdHgucmVzdG9yZSgpO1xuICAgICAgICAgIGN0eC5jbGlwKCk7XG4gICAgICAgICAgY3R4LmZpbGxTdHlsZSA9IGNvbG9yO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGF0YSA+PSAwLjg1KSB7XG4gICAgICAgICAgaWYgKGN1cnJSYW5nZSA+IHJhbmdlIC8gNCkge1xuICAgICAgICAgICAgY29uc3QgdCA9IHJhbmdlICogMC4wMTtcbiAgICAgICAgICAgIGN1cnJSYW5nZSAtPSB0O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChkYXRhIDw9IDAuMSkge1xuICAgICAgICAgIGlmIChjdXJyUmFuZ2UgPCByYW5nZSAqIDEuNSkge1xuICAgICAgICAgICAgY29uc3QgdCA9IHJhbmdlICogMC4wMTtcbiAgICAgICAgICAgIGN1cnJSYW5nZSArPSB0O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoY3VyclJhbmdlIDw9IHJhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCB0ID0gcmFuZ2UgKiAwLjAxO1xuICAgICAgICAgICAgY3VyclJhbmdlICs9IHQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChjdXJyUmFuZ2UgPj0gcmFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHQgPSByYW5nZSAqIDAuMDE7XG4gICAgICAgICAgICBjdXJyUmFuZ2UgLT0gdDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEgLSBjdXJyRGF0YSA+IDApIHtcbiAgICAgICAgICBjdXJyRGF0YSArPSB3YXZldXBzcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YSAtIGN1cnJEYXRhIDwgMCkge1xuICAgICAgICAgIGN1cnJEYXRhIC09IHdhdmV1cHNwO1xuICAgICAgICB9XG5cbiAgICAgICAgc3AgKz0gMC4wNztcbiAgICAgICAgZHJhd1NpbigpO1xuICAgICAgfVxuICAgICAgc2VsZi50aW1lciA9IHJlcXVlc3RBbmltYXRpb25GcmFtZShyZW5kZXIpO1xuICAgIH1cblxuICAgIHJlbmRlcigpO1xuICAgIC8vIGRyYXdTaW4oKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUmFkaW8oKTogdm9pZCB7XG4gICAgY29uc3QgeyBvZmZzZXRXaWR0aCB9ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gICAgY29uc3QgcmFkaW8gPSBvZmZzZXRXaWR0aCA8IHRoaXMuaGVpZ2h0ID8gb2Zmc2V0V2lkdGggLyB0aGlzLmhlaWdodCA6IDE7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICd0cmFuc2Zvcm0nLCBgc2NhbGUoJHtyYWRpb30pYCk7XG4gIH1cblxuICByZW5kZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJDaGFydChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGluc3RhbGxSZXNpemVFdmVudCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2l6ZSQgPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVJhZGlvKCkpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluc3RhbGxSZXNpemVFdmVudCgpO1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5yZW5kZXIoKSwgdGhpcy5kZWxheSkpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gdGhpcy5yZW5kZXJDaGFydCh0cnVlKSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMudGltZXIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yZXNpemUkKSB7XG4gICAgICB0aGlzLnJlc2l6ZSQudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW25nU3R5bGVdPVwieyAnaGVpZ2h0LnB4JzogaGVpZ2h0LCAnd2lkdGgucHgnOiBoZWlnaHQsIG92ZXJmbG93OiAnaGlkZGVuJyB9XCI+XG4gIDxjYW52YXMgI2NvbnRhaW5lciBjbGFzcz1cImcyLXdhdGVyLXdhdmVfX2NhbnZhc1wiIHdpZHRoPVwie3sgaGVpZ2h0ICogMiB9fVwiIGhlaWdodD1cInt7IGhlaWdodCAqIDIgfX1cIj48L2NhbnZhcz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImcyLXdhdGVyLXdhdmVfX2Rlc2NcIiBbbmdTdHlsZV09XCJ7ICd3aWR0aC5weCc6IGhlaWdodCB9XCI+XG4gIDxzcGFuICpuZ0lmPVwidGl0bGVcIiBjbGFzcz1cImcyLXdhdGVyLXdhdmVfX2Rlc2MtdGl0bGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuelN0cmluZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGVcIj57eyB0aXRsZSB9fTwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIDxoNCBjbGFzcz1cImcyLXdhdGVyLXdhdmVfX2Rlc2MtcGVyY2VudFwiPnt7IHBlcmNlbnQgfX0lPC9oND5cbjwvZGl2PlxuIl19