@taiga-ui/addon-charts 2.61.0 → 3.0.0-rc.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 (372) hide show
  1. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js +437 -319
  2. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js.map +1 -1
  3. package/bundles/taiga-ui-addon-charts-components-axes.umd.js +461 -335
  4. package/bundles/taiga-ui-addon-charts-components-axes.umd.js.map +1 -1
  5. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js +451 -342
  6. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js.map +1 -1
  7. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js +401 -298
  8. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js.map +1 -1
  9. package/bundles/taiga-ui-addon-charts-components-bar.umd.js +396 -293
  10. package/bundles/taiga-ui-addon-charts-components-bar.umd.js.map +1 -1
  11. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js +408 -295
  12. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js.map +1 -1
  13. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js +572 -402
  14. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js.map +1 -1
  15. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js +544 -392
  16. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js.map +1 -1
  17. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js +518 -393
  18. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js.map +1 -1
  19. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js +398 -302
  20. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-charts-components.umd.js +23 -43
  22. package/bundles/taiga-ui-addon-charts-components.umd.js.map +1 -1
  23. package/bundles/taiga-ui-addon-charts-constants.umd.js +17 -48
  24. package/bundles/taiga-ui-addon-charts-constants.umd.js.map +1 -1
  25. package/bundles/taiga-ui-addon-charts-interfaces.umd.js +2 -2
  26. package/bundles/taiga-ui-addon-charts-interfaces.umd.js.map +1 -1
  27. package/bundles/taiga-ui-addon-charts-types.umd.js +2 -2
  28. package/bundles/taiga-ui-addon-charts-types.umd.js.map +1 -1
  29. package/bundles/taiga-ui-addon-charts-utils.umd.js +350 -308
  30. package/bundles/taiga-ui-addon-charts-utils.umd.js.map +1 -1
  31. package/bundles/taiga-ui-addon-charts.umd.js +18 -18
  32. package/bundles/taiga-ui-addon-charts.umd.js.map +1 -1
  33. package/components/arc-chart/arc-chart.component.d.ts +3 -0
  34. package/components/arc-chart/arc-chart.module.d.ts +6 -0
  35. package/components/arc-chart/package.json +2 -5
  36. package/components/arc-chart/taiga-ui-addon-charts-components-arc-chart.d.ts +1 -0
  37. package/components/axes/axes.component.d.ts +6 -3
  38. package/components/axes/axes.module.d.ts +7 -0
  39. package/components/axes/package.json +2 -5
  40. package/components/axes/taiga-ui-addon-charts-components-axes.d.ts +1 -0
  41. package/components/bar/bar.component.d.ts +4 -5
  42. package/components/bar/bar.module.d.ts +6 -0
  43. package/components/bar/package.json +2 -5
  44. package/components/bar/taiga-ui-addon-charts-components-bar.d.ts +1 -0
  45. package/components/bar-chart/bar-chart.component.d.ts +10 -10
  46. package/components/bar-chart/bar-chart.module.d.ts +9 -0
  47. package/components/bar-chart/package.json +2 -5
  48. package/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.d.ts +1 -0
  49. package/components/bar-set/bar-set.component.d.ts +4 -5
  50. package/components/bar-set/bar-set.module.d.ts +7 -0
  51. package/components/bar-set/package.json +2 -5
  52. package/components/bar-set/taiga-ui-addon-charts-components-bar-set.d.ts +1 -0
  53. package/components/legend-item/legend-item.component.d.ts +3 -0
  54. package/components/legend-item/legend-item.module.d.ts +7 -0
  55. package/components/legend-item/package.json +2 -5
  56. package/components/legend-item/taiga-ui-addon-charts-components-legend-item.d.ts +1 -0
  57. package/components/line-chart/line-chart-hint.directive.d.ts +13 -3
  58. package/components/line-chart/line-chart.component.d.ts +10 -6
  59. package/components/line-chart/line-chart.module.d.ts +10 -0
  60. package/components/line-chart/package.json +2 -5
  61. package/components/line-chart/taiga-ui-addon-charts-components-line-chart.d.ts +1 -0
  62. package/components/line-days-chart/line-days-chart-hint.directive.d.ts +10 -3
  63. package/components/line-days-chart/line-days-chart.component.d.ts +7 -1
  64. package/components/line-days-chart/line-days-chart.module.d.ts +10 -0
  65. package/components/line-days-chart/package.json +2 -5
  66. package/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.d.ts +1 -0
  67. package/components/package.json +2 -5
  68. package/components/pie-chart/package.json +2 -5
  69. package/components/pie-chart/pie-chart.component.d.ts +5 -6
  70. package/components/pie-chart/pie-chart.directive.d.ts +3 -0
  71. package/components/pie-chart/pie-chart.module.d.ts +10 -0
  72. package/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.d.ts +1 -0
  73. package/components/ring-chart/package.json +2 -5
  74. package/components/ring-chart/ring-chart.component.d.ts +3 -8
  75. package/components/ring-chart/ring-chart.module.d.ts +8 -0
  76. package/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.d.ts +1 -0
  77. package/components/taiga-ui-addon-charts-components.d.ts +1 -0
  78. package/constants/index.d.ts +0 -2
  79. package/constants/package.json +2 -5
  80. package/constants/taiga-ui-addon-charts-constants.d.ts +1 -0
  81. package/esm2015/components/arc-chart/arc-chart.component.js +57 -45
  82. package/esm2015/components/arc-chart/arc-chart.module.js +15 -12
  83. package/esm2015/components/arc-chart/index.js +1 -1
  84. package/esm2015/components/arc-chart/taiga-ui-addon-charts-components-arc-chart.js +1 -1
  85. package/esm2015/components/axes/axes.component.js +55 -38
  86. package/esm2015/components/axes/axes.module.js +15 -12
  87. package/esm2015/components/axes/index.js +1 -1
  88. package/esm2015/components/axes/taiga-ui-addon-charts-components-axes.js +1 -1
  89. package/esm2015/components/bar/bar.component.js +29 -35
  90. package/esm2015/components/bar/bar.module.js +15 -12
  91. package/esm2015/components/bar/index.js +1 -1
  92. package/esm2015/components/bar/taiga-ui-addon-charts-components-bar.js +1 -1
  93. package/esm2015/components/bar-chart/bar-chart.component.js +51 -56
  94. package/esm2015/components/bar-chart/bar-chart.module.js +28 -15
  95. package/esm2015/components/bar-chart/index.js +1 -1
  96. package/esm2015/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.js +1 -1
  97. package/esm2015/components/bar-set/bar-set.component.js +27 -33
  98. package/esm2015/components/bar-set/bar-set.module.js +15 -12
  99. package/esm2015/components/bar-set/index.js +1 -1
  100. package/esm2015/components/bar-set/taiga-ui-addon-charts-components-bar-set.js +1 -1
  101. package/esm2015/components/index.js +1 -1
  102. package/esm2015/components/legend-item/index.js +1 -1
  103. package/esm2015/components/legend-item/legend-item.component.js +36 -30
  104. package/esm2015/components/legend-item/legend-item.module.js +15 -12
  105. package/esm2015/components/legend-item/taiga-ui-addon-charts-components-legend-item.js +1 -1
  106. package/esm2015/components/line-chart/index.js +1 -1
  107. package/esm2015/components/line-chart/line-chart-hint.directive.js +54 -39
  108. package/esm2015/components/line-chart/line-chart.component.js +81 -54
  109. package/esm2015/components/line-chart/line-chart.module.js +28 -13
  110. package/esm2015/components/line-chart/taiga-ui-addon-charts-components-line-chart.js +1 -1
  111. package/esm2015/components/line-days-chart/index.js +1 -1
  112. package/esm2015/components/line-days-chart/line-days-chart-hint.directive.js +46 -35
  113. package/esm2015/components/line-days-chart/line-days-chart.component.js +72 -48
  114. package/esm2015/components/line-days-chart/line-days-chart.module.js +29 -12
  115. package/esm2015/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.js +1 -1
  116. package/esm2015/components/pie-chart/index.js +1 -1
  117. package/esm2015/components/pie-chart/pie-chart.component.js +50 -50
  118. package/esm2015/components/pie-chart/pie-chart.directive.js +40 -32
  119. package/esm2015/components/pie-chart/pie-chart.module.js +28 -15
  120. package/esm2015/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.js +1 -1
  121. package/esm2015/components/ring-chart/index.js +1 -1
  122. package/esm2015/components/ring-chart/ring-chart.component.js +27 -38
  123. package/esm2015/components/ring-chart/ring-chart.module.js +15 -12
  124. package/esm2015/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.js +1 -1
  125. package/esm2015/components/taiga-ui-addon-charts-components.js +1 -1
  126. package/esm2015/constants/index.js +1 -3
  127. package/esm2015/constants/line-handlers.js +1 -1
  128. package/esm2015/constants/taiga-ui-addon-charts-constants.js +1 -1
  129. package/esm2015/index.js +3 -2
  130. package/esm2015/interfaces/index.js +2 -1
  131. package/esm2015/interfaces/line-chart-hint-context.js +2 -1
  132. package/esm2015/interfaces/taiga-ui-addon-charts-interfaces.js +2 -1
  133. package/esm2015/taiga-ui-addon-charts.js +1 -1
  134. package/esm2015/types/index.js +3 -1
  135. package/esm2015/types/line-handler.js +2 -1
  136. package/esm2015/types/line-type.js +2 -1
  137. package/esm2015/types/taiga-ui-addon-charts-types.js +2 -1
  138. package/esm2015/utils/control-point.js +6 -11
  139. package/esm2015/utils/describe-sector.js +6 -9
  140. package/esm2015/utils/draw-curve.js +5 -10
  141. package/esm2015/utils/draw-line.js +2 -7
  142. package/esm2015/utils/draw.js +6 -11
  143. package/esm2015/utils/index.js +1 -1
  144. package/esm2015/utils/line-angle.js +2 -7
  145. package/esm2015/utils/line-length.js +2 -7
  146. package/esm2015/utils/taiga-ui-addon-charts-utils.js +1 -1
  147. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js +68 -51
  148. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js.map +1 -1
  149. package/fesm2015/taiga-ui-addon-charts-components-axes.js +68 -46
  150. package/fesm2015/taiga-ui-addon-charts-components-axes.js.map +1 -1
  151. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js +77 -68
  152. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js.map +1 -1
  153. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js +40 -41
  154. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js.map +1 -1
  155. package/fesm2015/taiga-ui-addon-charts-components-bar.js +41 -42
  156. package/fesm2015/taiga-ui-addon-charts-components-bar.js.map +1 -1
  157. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js +50 -38
  158. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
  159. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js +154 -97
  160. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js.map +1 -1
  161. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js +137 -86
  162. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js.map +1 -1
  163. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js +131 -109
  164. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js.map +1 -1
  165. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js +41 -47
  166. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js.map +1 -1
  167. package/fesm2015/taiga-ui-addon-charts-components.js.map +1 -1
  168. package/fesm2015/taiga-ui-addon-charts-constants.js +1 -34
  169. package/fesm2015/taiga-ui-addon-charts-constants.js.map +1 -1
  170. package/fesm2015/taiga-ui-addon-charts-interfaces.js.map +1 -1
  171. package/fesm2015/taiga-ui-addon-charts-types.js.map +1 -1
  172. package/fesm2015/taiga-ui-addon-charts-utils.js +18 -51
  173. package/fesm2015/taiga-ui-addon-charts-utils.js.map +1 -1
  174. package/fesm2015/taiga-ui-addon-charts.js +2 -1
  175. package/fesm2015/taiga-ui-addon-charts.js.map +1 -1
  176. package/index.d.ts +0 -1
  177. package/interfaces/index.d.ts +0 -1
  178. package/interfaces/package.json +2 -5
  179. package/interfaces/taiga-ui-addon-charts-interfaces.d.ts +1 -0
  180. package/package.json +11 -14
  181. package/taiga-ui-addon-charts.d.ts +1 -0
  182. package/types/index.d.ts +0 -1
  183. package/types/line-handler.d.ts +2 -2
  184. package/types/line-type.d.ts +1 -1
  185. package/types/package.json +2 -5
  186. package/types/taiga-ui-addon-charts-types.d.ts +1 -0
  187. package/utils/control-point.d.ts +1 -5
  188. package/utils/describe-sector.d.ts +1 -3
  189. package/utils/draw-curve.d.ts +1 -5
  190. package/utils/draw-line.d.ts +1 -5
  191. package/utils/draw.d.ts +1 -5
  192. package/utils/line-angle.d.ts +1 -5
  193. package/utils/line-length.d.ts +1 -5
  194. package/utils/package.json +2 -5
  195. package/utils/taiga-ui-addon-charts-utils.d.ts +1 -0
  196. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.min.js +0 -2
  197. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.min.js.map +0 -1
  198. package/bundles/taiga-ui-addon-charts-components-axes.umd.min.js +0 -2
  199. package/bundles/taiga-ui-addon-charts-components-axes.umd.min.js.map +0 -1
  200. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.min.js +0 -2
  201. package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.min.js.map +0 -1
  202. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.min.js +0 -2
  203. package/bundles/taiga-ui-addon-charts-components-bar-set.umd.min.js.map +0 -1
  204. package/bundles/taiga-ui-addon-charts-components-bar.umd.min.js +0 -2
  205. package/bundles/taiga-ui-addon-charts-components-bar.umd.min.js.map +0 -1
  206. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.min.js +0 -2
  207. package/bundles/taiga-ui-addon-charts-components-legend-item.umd.min.js.map +0 -1
  208. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.min.js +0 -2
  209. package/bundles/taiga-ui-addon-charts-components-line-chart.umd.min.js.map +0 -1
  210. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.min.js +0 -2
  211. package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.min.js.map +0 -1
  212. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.min.js +0 -2
  213. package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.min.js.map +0 -1
  214. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.min.js +0 -2
  215. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.min.js.map +0 -1
  216. package/bundles/taiga-ui-addon-charts-components.umd.min.js +0 -2
  217. package/bundles/taiga-ui-addon-charts-components.umd.min.js.map +0 -1
  218. package/bundles/taiga-ui-addon-charts-constants.umd.min.js +0 -2
  219. package/bundles/taiga-ui-addon-charts-constants.umd.min.js.map +0 -1
  220. package/bundles/taiga-ui-addon-charts-enums.umd.js +0 -23
  221. package/bundles/taiga-ui-addon-charts-enums.umd.js.map +0 -1
  222. package/bundles/taiga-ui-addon-charts-enums.umd.min.js +0 -2
  223. package/bundles/taiga-ui-addon-charts-enums.umd.min.js.map +0 -1
  224. package/bundles/taiga-ui-addon-charts-interfaces.umd.min.js +0 -2
  225. package/bundles/taiga-ui-addon-charts-interfaces.umd.min.js.map +0 -1
  226. package/bundles/taiga-ui-addon-charts-types.umd.min.js +0 -2
  227. package/bundles/taiga-ui-addon-charts-types.umd.min.js.map +0 -1
  228. package/bundles/taiga-ui-addon-charts-utils.umd.min.js +0 -2
  229. package/bundles/taiga-ui-addon-charts-utils.umd.min.js.map +0 -1
  230. package/bundles/taiga-ui-addon-charts.umd.min.js +0 -2
  231. package/bundles/taiga-ui-addon-charts.umd.min.js.map +0 -1
  232. package/components/arc-chart/taiga-ui-addon-charts-components-arc-chart.metadata.json +0 -1
  233. package/components/axes/taiga-ui-addon-charts-components-axes.metadata.json +0 -1
  234. package/components/bar/taiga-ui-addon-charts-components-bar.metadata.json +0 -1
  235. package/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.metadata.json +0 -1
  236. package/components/bar-set/taiga-ui-addon-charts-components-bar-set.metadata.json +0 -1
  237. package/components/legend-item/taiga-ui-addon-charts-components-legend-item.metadata.json +0 -1
  238. package/components/line-chart/taiga-ui-addon-charts-components-line-chart.metadata.json +0 -1
  239. package/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.metadata.json +0 -1
  240. package/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.metadata.json +0 -1
  241. package/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.metadata.json +0 -1
  242. package/components/taiga-ui-addon-charts-components.metadata.json +0 -1
  243. package/constants/default-color-handler.d.ts +0 -3
  244. package/constants/default-colors.d.ts +0 -3
  245. package/constants/taiga-ui-addon-charts-constants.metadata.json +0 -1
  246. package/enums/index.d.ts +0 -1
  247. package/enums/line-type.d.ts +0 -11
  248. package/enums/package.json +0 -13
  249. package/enums/taiga-ui-addon-charts-enums.d.ts +0 -4
  250. package/enums/taiga-ui-addon-charts-enums.metadata.json +0 -1
  251. package/esm2015/constants/default-color-handler.js +0 -4
  252. package/esm2015/constants/default-colors.js +0 -30
  253. package/esm2015/enums/index.js +0 -2
  254. package/esm2015/enums/line-type.js +0 -13
  255. package/esm2015/enums/taiga-ui-addon-charts-enums.js +0 -5
  256. package/esm2015/interfaces/ring-chart-context.js +0 -1
  257. package/esm2015/types/color-handler.js +0 -1
  258. package/esm5/components/arc-chart/arc-chart.component.js +0 -149
  259. package/esm5/components/arc-chart/arc-chart.module.js +0 -18
  260. package/esm5/components/arc-chart/index.js +0 -3
  261. package/esm5/components/arc-chart/taiga-ui-addon-charts-components-arc-chart.js +0 -5
  262. package/esm5/components/axes/axes.component.js +0 -131
  263. package/esm5/components/axes/axes.module.js +0 -19
  264. package/esm5/components/axes/index.js +0 -3
  265. package/esm5/components/axes/taiga-ui-addon-charts-components-axes.js +0 -5
  266. package/esm5/components/bar/bar.component.js +0 -55
  267. package/esm5/components/bar/bar.module.js +0 -18
  268. package/esm5/components/bar/index.js +0 -3
  269. package/esm5/components/bar/taiga-ui-addon-charts-components-bar.js +0 -5
  270. package/esm5/components/bar-chart/bar-chart.component.js +0 -118
  271. package/esm5/components/bar-chart/bar-chart.module.js +0 -30
  272. package/esm5/components/bar-chart/index.js +0 -3
  273. package/esm5/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.js +0 -5
  274. package/esm5/components/bar-set/bar-set.component.js +0 -83
  275. package/esm5/components/bar-set/bar-set.module.js +0 -19
  276. package/esm5/components/bar-set/index.js +0 -3
  277. package/esm5/components/bar-set/taiga-ui-addon-charts-components-bar-set.js +0 -5
  278. package/esm5/components/index.js +0 -11
  279. package/esm5/components/legend-item/index.js +0 -3
  280. package/esm5/components/legend-item/legend-item.component.js +0 -59
  281. package/esm5/components/legend-item/legend-item.module.js +0 -19
  282. package/esm5/components/legend-item/taiga-ui-addon-charts-components-legend-item.js +0 -5
  283. package/esm5/components/line-chart/index.js +0 -4
  284. package/esm5/components/line-chart/line-chart-hint.directive.js +0 -78
  285. package/esm5/components/line-chart/line-chart.component.js +0 -246
  286. package/esm5/components/line-chart/line-chart.module.js +0 -29
  287. package/esm5/components/line-chart/taiga-ui-addon-charts-components-line-chart.js +0 -5
  288. package/esm5/components/line-days-chart/index.js +0 -4
  289. package/esm5/components/line-days-chart/line-days-chart-hint.directive.js +0 -83
  290. package/esm5/components/line-days-chart/line-days-chart.component.js +0 -204
  291. package/esm5/components/line-days-chart/line-days-chart.module.js +0 -21
  292. package/esm5/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.js +0 -5
  293. package/esm5/components/pie-chart/index.js +0 -4
  294. package/esm5/components/pie-chart/pie-chart.component.js +0 -168
  295. package/esm5/components/pie-chart/pie-chart.directive.js +0 -66
  296. package/esm5/components/pie-chart/pie-chart.module.js +0 -28
  297. package/esm5/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.js +0 -5
  298. package/esm5/components/ring-chart/index.js +0 -3
  299. package/esm5/components/ring-chart/ring-chart.component.js +0 -67
  300. package/esm5/components/ring-chart/ring-chart.module.js +0 -20
  301. package/esm5/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.js +0 -5
  302. package/esm5/components/taiga-ui-addon-charts-components.js +0 -5
  303. package/esm5/constants/default-color-handler.js +0 -4
  304. package/esm5/constants/default-colors.js +0 -30
  305. package/esm5/constants/index.js +0 -4
  306. package/esm5/constants/line-handlers.js +0 -5
  307. package/esm5/constants/taiga-ui-addon-charts-constants.js +0 -5
  308. package/esm5/enums/index.js +0 -2
  309. package/esm5/enums/line-type.js +0 -13
  310. package/esm5/enums/taiga-ui-addon-charts-enums.js +0 -5
  311. package/esm5/index.js +0 -4
  312. package/esm5/interfaces/index.js +0 -1
  313. package/esm5/interfaces/line-chart-hint-context.js +0 -1
  314. package/esm5/interfaces/ring-chart-context.js +0 -1
  315. package/esm5/interfaces/taiga-ui-addon-charts-interfaces.js +0 -4
  316. package/esm5/taiga-ui-addon-charts.js +0 -5
  317. package/esm5/types/color-handler.js +0 -1
  318. package/esm5/types/index.js +0 -1
  319. package/esm5/types/line-handler.js +0 -1
  320. package/esm5/types/line-type.js +0 -1
  321. package/esm5/types/taiga-ui-addon-charts-types.js +0 -4
  322. package/esm5/utils/control-point.js +0 -19
  323. package/esm5/utils/describe-sector.js +0 -36
  324. package/esm5/utils/draw-curve.js +0 -13
  325. package/esm5/utils/draw-line.js +0 -9
  326. package/esm5/utils/draw.js +0 -14
  327. package/esm5/utils/index.js +0 -8
  328. package/esm5/utils/line-angle.js +0 -11
  329. package/esm5/utils/line-length.js +0 -11
  330. package/esm5/utils/taiga-ui-addon-charts-utils.js +0 -5
  331. package/fesm2015/taiga-ui-addon-charts-enums.js +0 -19
  332. package/fesm2015/taiga-ui-addon-charts-enums.js.map +0 -1
  333. package/fesm5/taiga-ui-addon-charts-components-arc-chart.js +0 -168
  334. package/fesm5/taiga-ui-addon-charts-components-arc-chart.js.map +0 -1
  335. package/fesm5/taiga-ui-addon-charts-components-axes.js +0 -151
  336. package/fesm5/taiga-ui-addon-charts-components-axes.js.map +0 -1
  337. package/fesm5/taiga-ui-addon-charts-components-bar-chart.js +0 -149
  338. package/fesm5/taiga-ui-addon-charts-components-bar-chart.js.map +0 -1
  339. package/fesm5/taiga-ui-addon-charts-components-bar-set.js +0 -104
  340. package/fesm5/taiga-ui-addon-charts-components-bar-set.js.map +0 -1
  341. package/fesm5/taiga-ui-addon-charts-components-bar.js +0 -75
  342. package/fesm5/taiga-ui-addon-charts-components-bar.js.map +0 -1
  343. package/fesm5/taiga-ui-addon-charts-components-legend-item.js +0 -79
  344. package/fesm5/taiga-ui-addon-charts-components-legend-item.js.map +0 -1
  345. package/fesm5/taiga-ui-addon-charts-components-line-chart.js +0 -343
  346. package/fesm5/taiga-ui-addon-charts-components-line-chart.js.map +0 -1
  347. package/fesm5/taiga-ui-addon-charts-components-line-days-chart.js +0 -302
  348. package/fesm5/taiga-ui-addon-charts-components-line-days-chart.js.map +0 -1
  349. package/fesm5/taiga-ui-addon-charts-components-pie-chart.js +0 -255
  350. package/fesm5/taiga-ui-addon-charts-components-pie-chart.js.map +0 -1
  351. package/fesm5/taiga-ui-addon-charts-components-ring-chart.js +0 -89
  352. package/fesm5/taiga-ui-addon-charts-components-ring-chart.js.map +0 -1
  353. package/fesm5/taiga-ui-addon-charts-components.js +0 -15
  354. package/fesm5/taiga-ui-addon-charts-components.js.map +0 -1
  355. package/fesm5/taiga-ui-addon-charts-constants.js +0 -44
  356. package/fesm5/taiga-ui-addon-charts-constants.js.map +0 -1
  357. package/fesm5/taiga-ui-addon-charts-enums.js +0 -19
  358. package/fesm5/taiga-ui-addon-charts-enums.js.map +0 -1
  359. package/fesm5/taiga-ui-addon-charts-interfaces.js +0 -4
  360. package/fesm5/taiga-ui-addon-charts-interfaces.js.map +0 -1
  361. package/fesm5/taiga-ui-addon-charts-types.js +0 -4
  362. package/fesm5/taiga-ui-addon-charts-types.js.map +0 -1
  363. package/fesm5/taiga-ui-addon-charts-utils.js +0 -115
  364. package/fesm5/taiga-ui-addon-charts-utils.js.map +0 -1
  365. package/fesm5/taiga-ui-addon-charts.js +0 -8
  366. package/fesm5/taiga-ui-addon-charts.js.map +0 -1
  367. package/interfaces/ring-chart-context.d.ts +0 -4
  368. package/interfaces/taiga-ui-addon-charts-interfaces.metadata.json +0 -1
  369. package/taiga-ui-addon-charts.metadata.json +0 -1
  370. package/types/color-handler.d.ts +0 -3
  371. package/types/taiga-ui-addon-charts-types.metadata.json +0 -1
  372. package/utils/taiga-ui-addon-charts-utils.metadata.json +0 -1
@@ -1,246 +0,0 @@
1
- import { __decorate, __param } from "tslib";
2
- import { Location } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, HostListener, Inject, Input, NgZone, Optional, } from '@angular/core';
4
- import { draw } from '@taiga-ui/addon-charts/utils';
5
- import { inRange, tuiDefaultProp, TuiIdService, tuiPure, TuiStringHandler, tuiZoneOptimized, } from '@taiga-ui/cdk';
6
- import { Subject } from 'rxjs';
7
- import { distinctUntilChanged } from 'rxjs/operators';
8
- import { TuiLineChartHintDirective } from './line-chart-hint.directive';
9
- // eslint-disable-next-line @typescript-eslint/naming-convention
10
- export function smoothingAssertion(smoothingFactor) {
11
- return inRange(smoothingFactor, 0, 100);
12
- }
13
- var SMOOTHING_MESSAGE = "smoothingFactor must be between 0 and 100";
14
- var TuiLineChartComponent = /** @class */ (function () {
15
- function TuiLineChartComponent(idService, ngZone, locationRef, hintDirective) {
16
- this.ngZone = ngZone;
17
- this.locationRef = locationRef;
18
- this.hintDirective = hintDirective;
19
- this._hovered$ = new Subject();
20
- this.x = 0;
21
- this.y = 0;
22
- this.width = 0;
23
- this.height = 0;
24
- this.smoothingFactor = 0;
25
- this.hintContent = "";
26
- this.xStringify = null;
27
- this.yStringify = null;
28
- this.filled = false;
29
- this.dots = false;
30
- this.value = [];
31
- this.autoIdString = idService.generate();
32
- }
33
- Object.defineProperty(TuiLineChartComponent.prototype, "valueSetter", {
34
- set: function (value) {
35
- this.value = value.filter(function (item) { return !item.some(isNaN); });
36
- },
37
- enumerable: true,
38
- configurable: true
39
- });
40
- Object.defineProperty(TuiLineChartComponent.prototype, "hovered$", {
41
- get: function () {
42
- return this._hovered$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.ngZone));
43
- },
44
- enumerable: true,
45
- configurable: true
46
- });
47
- Object.defineProperty(TuiLineChartComponent.prototype, "fillId", {
48
- get: function () {
49
- return "tui-line-chart-" + this.autoIdString;
50
- },
51
- enumerable: true,
52
- configurable: true
53
- });
54
- Object.defineProperty(TuiLineChartComponent.prototype, "fill", {
55
- get: function () {
56
- return this.filled
57
- ? "url(" + this.locationRef.prepareExternalUrl(this.locationRef.path()) + "#" + this.fillId + ")"
58
- : "none";
59
- },
60
- enumerable: true,
61
- configurable: true
62
- });
63
- Object.defineProperty(TuiLineChartComponent.prototype, "viewBox", {
64
- get: function () {
65
- return this.x + " " + this.y + " " + this.width + " " + this.height;
66
- },
67
- enumerable: true,
68
- configurable: true
69
- });
70
- Object.defineProperty(TuiLineChartComponent.prototype, "d", {
71
- get: function () {
72
- return this.getD(this.value, this.smoothingFactor);
73
- },
74
- enumerable: true,
75
- configurable: true
76
- });
77
- Object.defineProperty(TuiLineChartComponent.prototype, "fillD", {
78
- get: function () {
79
- return this.value.length
80
- ? this.d + "V " + this.y + " H " + this.value[0][0] + " V " + this.value[0][1]
81
- : this.d;
82
- },
83
- enumerable: true,
84
- configurable: true
85
- });
86
- Object.defineProperty(TuiLineChartComponent.prototype, "isFocusable", {
87
- get: function () {
88
- return !this.hintDirective && this.hasHints;
89
- },
90
- enumerable: true,
91
- configurable: true
92
- });
93
- Object.defineProperty(TuiLineChartComponent.prototype, "hasHints", {
94
- get: function () {
95
- var _a;
96
- return (!!this.xStringify ||
97
- !!this.yStringify ||
98
- !!((_a = this.hintDirective) === null || _a === void 0 ? void 0 : _a.hint) ||
99
- !!this.hintContent);
100
- },
101
- enumerable: true,
102
- configurable: true
103
- });
104
- TuiLineChartComponent.prototype.onMouseLeave = function () {
105
- if (!this.hintDirective) {
106
- this.onHovered(NaN);
107
- }
108
- };
109
- TuiLineChartComponent.prototype.getX = function (index) {
110
- if (this.isSinglePoint) {
111
- return this.value[0][0] / 2;
112
- }
113
- return index
114
- ? (this.value[index - 1][0] + this.value[index][0]) / 2
115
- : 2 * this.value[0][0] - this.getX(1);
116
- };
117
- TuiLineChartComponent.prototype.getWidth = function (index) {
118
- return (100 * this.computeWidth(index)) / this.width;
119
- };
120
- TuiLineChartComponent.prototype.getHintId = function (index) {
121
- return this.autoIdString + "_" + index;
122
- };
123
- TuiLineChartComponent.prototype.getContentContext = function ($implicit, index) {
124
- var _a;
125
- return (((_a = this.hintDirective) === null || _a === void 0 ? void 0 : _a.getContext(this.value.indexOf($implicit), this)) || {
126
- $implicit: [],
127
- index: index,
128
- });
129
- };
130
- TuiLineChartComponent.prototype.getHovered = function (hovered) {
131
- // This checks for NaN and null too since async pipe returns null before first item
132
- return Number.isInteger(hovered) ? this.value[hovered] : null;
133
- };
134
- TuiLineChartComponent.prototype.getBottom = function (y) {
135
- return (100 * (y - this.y)) / this.height;
136
- };
137
- TuiLineChartComponent.prototype.getLeft = function (x) {
138
- return (100 * (x - this.x)) / this.width;
139
- };
140
- TuiLineChartComponent.prototype.getOffset = function (x) {
141
- return (100 * (this.value[x][0] - this.getX(x))) / this.computeWidth(x);
142
- };
143
- TuiLineChartComponent.prototype.onMouseEnter = function (index) {
144
- if (this.hintDirective) {
145
- this.hintDirective.raise(index, this);
146
- }
147
- else {
148
- this.onHovered(index);
149
- }
150
- };
151
- TuiLineChartComponent.prototype.onHovered = function (index) {
152
- this._hovered$.next(index);
153
- };
154
- Object.defineProperty(TuiLineChartComponent.prototype, "isSinglePoint", {
155
- get: function () {
156
- return this.value.length === 1;
157
- },
158
- enumerable: true,
159
- configurable: true
160
- });
161
- TuiLineChartComponent.prototype.getD = function (value, smoothingFactor) {
162
- return value.reduce(function (d, point, index) {
163
- return index ? d + " " + draw(value, index, smoothingFactor) : "M " + point;
164
- }, "");
165
- };
166
- TuiLineChartComponent.prototype.computeWidth = function (index) {
167
- return index === this.value.length - 1
168
- ? 2 * (this.value[index][0] - this.getX(index))
169
- : this.getX(index + 1) - this.getX(index);
170
- };
171
- TuiLineChartComponent.ctorParameters = function () { return [
172
- { type: TuiIdService, decorators: [{ type: Inject, args: [TuiIdService,] }] },
173
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
174
- { type: Location, decorators: [{ type: Inject, args: [Location,] }] },
175
- { type: TuiLineChartHintDirective, decorators: [{ type: Optional }, { type: Inject, args: [TuiLineChartHintDirective,] }] }
176
- ]; };
177
- __decorate([
178
- Input("value"),
179
- tuiDefaultProp()
180
- ], TuiLineChartComponent.prototype, "valueSetter", null);
181
- __decorate([
182
- Input(),
183
- tuiDefaultProp()
184
- ], TuiLineChartComponent.prototype, "x", void 0);
185
- __decorate([
186
- Input(),
187
- tuiDefaultProp()
188
- ], TuiLineChartComponent.prototype, "y", void 0);
189
- __decorate([
190
- Input(),
191
- tuiDefaultProp()
192
- ], TuiLineChartComponent.prototype, "width", void 0);
193
- __decorate([
194
- Input(),
195
- tuiDefaultProp()
196
- ], TuiLineChartComponent.prototype, "height", void 0);
197
- __decorate([
198
- Input(),
199
- tuiDefaultProp(smoothingAssertion, SMOOTHING_MESSAGE)
200
- ], TuiLineChartComponent.prototype, "smoothingFactor", void 0);
201
- __decorate([
202
- Input(),
203
- tuiDefaultProp()
204
- ], TuiLineChartComponent.prototype, "hintContent", void 0);
205
- __decorate([
206
- Input(),
207
- tuiDefaultProp()
208
- ], TuiLineChartComponent.prototype, "xStringify", void 0);
209
- __decorate([
210
- Input(),
211
- tuiDefaultProp()
212
- ], TuiLineChartComponent.prototype, "yStringify", void 0);
213
- __decorate([
214
- Input(),
215
- tuiDefaultProp()
216
- ], TuiLineChartComponent.prototype, "filled", void 0);
217
- __decorate([
218
- Input(),
219
- tuiDefaultProp()
220
- ], TuiLineChartComponent.prototype, "dots", void 0);
221
- __decorate([
222
- tuiPure
223
- ], TuiLineChartComponent.prototype, "hovered$", null);
224
- __decorate([
225
- HostListener("mouseleave")
226
- ], TuiLineChartComponent.prototype, "onMouseLeave", null);
227
- __decorate([
228
- tuiPure
229
- ], TuiLineChartComponent.prototype, "getD", null);
230
- TuiLineChartComponent = __decorate([
231
- Component({
232
- selector: "tui-line-chart",
233
- template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n stop-color=\"currentColor\"\n offset=\"0%\"\n stop-opacity=\"0.5\"\n />\n <stop\n stop-color=\"currentColor\"\n offset=\"100%\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.fill]=\"fill\"\n [attr.d]=\"fillD\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"2\"\n [attr.d]=\"d\"\n />\n </svg>\n <ng-container *ngIf=\"dots\">\n <div\n *ngFor=\"let point of value\"\n class=\"t-dot\"\n [style.left.%]=\"getLeft(point[0])\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <div\n *ngIf=\"value.length > 1 || dots\"\n tuiHintDirection=\"top-left\"\n class=\"t-column\"\n [class.t-column_hovered]=\"hovered === index\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"hintDirective || hintContent ? hint : ''\"\n [tuiHintId]=\"getHintId(index)\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n (mouseenter)=\"onMouseEnter(index)\"\n >\n <div\n class=\"t-line t-line_vertical\"\n [style.left.%]=\"getOffset(index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [style.left.%]=\"getOffset(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [tuiFocusable]=\"isFocusable\"\n [tuiDescribedBy]=\"getHintId(index)\"\n ></div>\n </div>\n <div\n *ngIf=\"isFocusable\"\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n <ng-template #hint>\n <div\n *ngIf=\"hintDirective; else single\"\n polymorpheus-outlet\n class=\"t-text\"\n [content]=\"hintDirective.hint\"\n [context]=\"getContentContext(point, index)\"\n ></div>\n <ng-template #single>\n <div\n polymorpheus-outlet\n class=\"t-text\"\n [content]=\"hintContent\"\n [context]=\"{$implicit: point, index: index}\"\n ></div>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"getHovered(hovered) as point\">\n <div\n *ngIf=\"xStringify\"\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n <div\n *ngIf=\"yStringify\"\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n </ng-container>\n</ng-container>\n",
234
- changeDetection: ChangeDetectionStrategy.OnPush,
235
- styles: [":host{display:flex;width:100%;height:100%;pointer-events:none}.t-svg{transform:scale(1,-1)}.t-column{position:absolute;top:0;height:100%;pointer-events:auto}.t-dot{position:absolute;width:.375rem;height:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;width:.5rem;height:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem rgba(0,0,0,.1);outline:0;pointer-events:none}.t-column._hint_hovered .t-host,.t-column:hover .t-host,.t-column_hovered .t-host,.t-host:focus{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-base-03)}.t-line_vertical{top:0;bottom:0;left:50%;width:1px}.t-line_horizontal{z-index:-1;width:100%;height:1px}:host:not([style]) .t-column._hint_hovered .t-line,:host:not([style]) .t-column._hint_hovered+.t-line,:host:not([style]) .t-column:hover .t-line,:host:not([style]) .t-column:hover+.t-line,:host[style^='z-index: 0'] .t-column_hovered .t-line,:host[style^='z-index: 0'] .t-column_hovered+.t-line{opacity:1}.t-text{white-space:pre-wrap}.t-hint{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:absolute;font:var(--tui-font-text-xs);height:1.25rem;line-height:1.25rem;margin-bottom:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-base-09);background:var(--tui-base-01);transform:translate3d(-50%,0,0)}.t-hint_x{bottom:0}.t-hint_y{left:0}"]
236
- }),
237
- __param(0, Inject(TuiIdService)),
238
- __param(1, Inject(NgZone)),
239
- __param(2, Inject(Location)),
240
- __param(3, Optional()),
241
- __param(3, Inject(TuiLineChartHintDirective))
242
- ], TuiLineChartComponent);
243
- return TuiLineChartComponent;
244
- }());
245
- export { TuiLineChartComponent };
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydC8iLCJzb3VyY2VzIjpbImxpbmUtY2hhcnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsR0FDWCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDbEQsT0FBTyxFQUNILE9BQU8sRUFDUCxjQUFjLEVBQ2QsWUFBWSxFQUNaLE9BQU8sRUFDUCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEdBQ25CLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBYSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFdEUsZ0VBQWdFO0FBQ2hFLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxlQUF1QjtJQUN0RCxPQUFPLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzVDLENBQUM7QUFFRCxJQUFNLGlCQUFpQixHQUFHLDJDQUEyQyxDQUFDO0FBUXRFO0lBcURJLCtCQUMwQixTQUF1QixFQUNaLE1BQWMsRUFDWixXQUFxQixFQUcvQyxhQUErQztRQUp2QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ1osZ0JBQVcsR0FBWCxXQUFXLENBQVU7UUFHL0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBMUQzQyxjQUFTLEdBQUcsSUFBSSxP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LEVBQUU7b0RBQ1g7SUFJTjtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTt3REFDUDtJQUlWO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3lEQUNOO0lBSVg7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLENBQUM7a0VBQ2xDO0lBSXBCO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFOzhEQUN3RDtJQUl6RTtRQUZDLEtBQUssRUFBRTtRQUNQLGNBQWMsRUFBRTs2REFDa0M7SUFJbkQ7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7NkRBQ2tDO0lBSW5EO1FBRkMsS0FBSyxFQUFFO1FBQ1AsY0FBYyxFQUFFO3lEQUNGO0lBSWY7UUFGQyxLQUFLLEVBQUU7UUFDUCxjQUFjLEVBQUU7dURBQ0o7SUFnQmI7UUFEQyxPQUFPO3lEQUdQO0lBMENEO1FBREMsWUFBWSxDQUFDLFlBQVksQ0FBQzs2REFLMUI7SUFrRUQ7UUFEQyxPQUFPO3FEQU9QO0lBekxRLHFCQUFxQjtRQU5qQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZ0JBQWdCO1lBQzFCLHlpSUFBeUM7WUFFekMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O1NBQ2xELENBQUM7UUF1RE8sV0FBQSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFDcEIsV0FBQSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUE7UUFDZCxXQUFBLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNoQixXQUFBLFFBQVEsRUFBRSxDQUFBO1FBQ1YsV0FBQSxNQUFNLENBQUMseUJBQXlCLENBQUMsQ0FBQTtPQTFEN0IscUJBQXFCLENBZ01qQztJQUFELDRCQUFDO0NBQUEsQUFoTUQsSUFnTUM7U0FoTVkscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMb2NhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9wdGlvbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHVpTGluZUNoYXJ0SGludENvbnRleHR9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jaGFydHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQge2RyYXd9IGZyb20gJ0B0YWlnYS11aS9hZGRvbi1jaGFydHMvdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBpblJhbmdlLFxuICAgIHR1aURlZmF1bHRQcm9wLFxuICAgIFR1aUlkU2VydmljZSxcbiAgICB0dWlQdXJlLFxuICAgIFR1aVN0cmluZ0hhbmRsZXIsXG4gICAgdHVpWm9uZU9wdGltaXplZCxcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aVBvaW50fSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c0NvbnRlbnR9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUxpbmVDaGFydEhpbnREaXJlY3RpdmV9IGZyb20gJy4vbGluZS1jaGFydC1oaW50LmRpcmVjdGl2ZSc7XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbmV4cG9ydCBmdW5jdGlvbiBzbW9vdGhpbmdBc3NlcnRpb24oc21vb3RoaW5nRmFjdG9yOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaW5SYW5nZShzbW9vdGhpbmdGYWN0b3IsIDAsIDEwMCk7XG59XG5cbmNvbnN0IFNNT09USElOR19NRVNTQUdFID0gYHNtb290aGluZ0ZhY3RvciBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMTAwYDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGB0dWktbGluZS1jaGFydGAsXG4gICAgdGVtcGxhdGVVcmw6IGAuL2xpbmUtY2hhcnQudGVtcGxhdGUuaHRtbGAsXG4gICAgc3R5bGVVcmxzOiBbYC4vbGluZS1jaGFydC5zdHlsZS5sZXNzYF0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFR1aUxpbmVDaGFydENvbXBvbmVudCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfaG92ZXJlZCQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF1dG9JZFN0cmluZzogc3RyaW5nO1xuXG4gICAgQElucHV0KGB2YWx1ZWApXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZXQgdmFsdWVTZXR0ZXIodmFsdWU6IHJlYWRvbmx5IFR1aVBvaW50W10pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlLmZpbHRlcihpdGVtID0+ICFpdGVtLnNvbWUoaXNOYU4pKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgeCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgeSA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgd2lkdGggPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGhlaWdodCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcChzbW9vdGhpbmdBc3NlcnRpb24sIFNNT09USElOR19NRVNTQUdFKVxuICAgIHNtb290aGluZ0ZhY3RvciA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgaGludENvbnRlbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpTGluZUNoYXJ0SGludENvbnRleHQ8VHVpUG9pbnQ+PiA9IGBgO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHhTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHlTdHJpbmdpZnk6IFR1aVN0cmluZ0hhbmRsZXI8bnVtYmVyPiB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGZpbGxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGRvdHMgPSBmYWxzZTtcblxuICAgIHZhbHVlOiByZWFkb25seSBUdWlQb2ludFtdID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChUdWlJZFNlcnZpY2UpIGlkU2VydmljZTogVHVpSWRTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KE5nWm9uZSkgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChMb2NhdGlvbikgcHJpdmF0ZSByZWFkb25seSBsb2NhdGlvblJlZjogTG9jYXRpb24sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSlcbiAgICAgICAgcmVhZG9ubHkgaGludERpcmVjdGl2ZTogVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZSB8IG51bGwsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuYXV0b0lkU3RyaW5nID0gaWRTZXJ2aWNlLmdlbmVyYXRlKCk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBnZXQgaG92ZXJlZCQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvdmVyZWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdHVpWm9uZU9wdGltaXplZCh0aGlzLm5nWm9uZSkpO1xuICAgIH1cblxuICAgIGdldCBmaWxsSWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGB0dWktbGluZS1jaGFydC0ke3RoaXMuYXV0b0lkU3RyaW5nfWA7XG4gICAgfVxuXG4gICAgZ2V0IGZpbGwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsbGVkXG4gICAgICAgICAgICA/IGB1cmwoJHt0aGlzLmxvY2F0aW9uUmVmLnByZXBhcmVFeHRlcm5hbFVybCh0aGlzLmxvY2F0aW9uUmVmLnBhdGgoKSl9IyR7XG4gICAgICAgICAgICAgICAgICB0aGlzLmZpbGxJZFxuICAgICAgICAgICAgICB9KWBcbiAgICAgICAgICAgIDogYG5vbmVgO1xuICAgIH1cblxuICAgIGdldCB2aWV3Qm94KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnh9ICR7dGhpcy55fSAke3RoaXMud2lkdGh9ICR7dGhpcy5oZWlnaHR9YDtcbiAgICB9XG5cbiAgICBnZXQgZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXREKHRoaXMudmFsdWUsIHRoaXMuc21vb3RoaW5nRmFjdG9yKTtcbiAgICB9XG5cbiAgICBnZXQgZmlsbEQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoXG4gICAgICAgICAgICA/IGAke3RoaXMuZH1WICR7dGhpcy55fSBIICR7dGhpcy52YWx1ZVswXVswXX0gViAke3RoaXMudmFsdWVbMF1bMV19YFxuICAgICAgICAgICAgOiB0aGlzLmQ7XG4gICAgfVxuXG4gICAgZ2V0IGlzRm9jdXNhYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaGludERpcmVjdGl2ZSAmJiB0aGlzLmhhc0hpbnRzO1xuICAgIH1cblxuICAgIGdldCBoYXNIaW50cygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICEhdGhpcy54U3RyaW5naWZ5IHx8XG4gICAgICAgICAgICAhIXRoaXMueVN0cmluZ2lmeSB8fFxuICAgICAgICAgICAgISF0aGlzLmhpbnREaXJlY3RpdmU/LmhpbnQgfHxcbiAgICAgICAgICAgICEhdGhpcy5oaW50Q29udGVudFxuICAgICAgICApO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoYG1vdXNlbGVhdmVgKVxuICAgIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmhpbnREaXJlY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMub25Ib3ZlcmVkKE5hTik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRYKGluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZVBvaW50KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZVswXVswXSAvIDI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaW5kZXhcbiAgICAgICAgICAgID8gKHRoaXMudmFsdWVbaW5kZXggLSAxXVswXSArIHRoaXMudmFsdWVbaW5kZXhdWzBdKSAvIDJcbiAgICAgICAgICAgIDogMiAqIHRoaXMudmFsdWVbMF1bMF0gLSB0aGlzLmdldFgoMSk7XG4gICAgfVxuXG4gICAgZ2V0V2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiAoMTAwICogdGhpcy5jb21wdXRlV2lkdGgoaW5kZXgpKSAvIHRoaXMud2lkdGg7XG4gICAgfVxuXG4gICAgZ2V0SGludElkKGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5hdXRvSWRTdHJpbmd9XyR7aW5kZXh9YDtcbiAgICB9XG5cbiAgICBnZXRDb250ZW50Q29udGV4dChcbiAgICAgICAgJGltcGxpY2l0OiBUdWlQb2ludCxcbiAgICAgICAgaW5kZXg6IG51bWJlcixcbiAgICApOiBUdWlMaW5lQ2hhcnRIaW50Q29udGV4dDxyZWFkb25seSBUdWlQb2ludFtdPiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICB0aGlzLmhpbnREaXJlY3RpdmU/LmdldENvbnRleHQodGhpcy52YWx1ZS5pbmRleE9mKCRpbXBsaWNpdCksIHRoaXMpIHx8IHtcbiAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IFtdLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldEhvdmVyZWQoaG92ZXJlZDogbnVtYmVyKTogVHVpUG9pbnQgfCBudWxsIHtcbiAgICAgICAgLy8gVGhpcyBjaGVja3MgZm9yIE5hTiBhbmQgbnVsbCB0b28gc2luY2UgYXN5bmMgcGlwZSByZXR1cm5zIG51bGwgYmVmb3JlIGZpcnN0IGl0ZW1cbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0ludGVnZXIoaG92ZXJlZCkgPyB0aGlzLnZhbHVlW2hvdmVyZWRdIDogbnVsbDtcbiAgICB9XG5cbiAgICBnZXRCb3R0b20oeTogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuICgxMDAgKiAoeSAtIHRoaXMueSkpIC8gdGhpcy5oZWlnaHQ7XG4gICAgfVxuXG4gICAgZ2V0TGVmdCh4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh4IC0gdGhpcy54KSkgLyB0aGlzLndpZHRoO1xuICAgIH1cblxuICAgIGdldE9mZnNldCh4OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gKDEwMCAqICh0aGlzLnZhbHVlW3hdWzBdIC0gdGhpcy5nZXRYKHgpKSkgLyB0aGlzLmNvbXB1dGVXaWR0aCh4KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlRW50ZXIoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5oaW50RGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmhpbnREaXJlY3RpdmUucmFpc2UoaW5kZXgsIHRoaXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vbkhvdmVyZWQoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ib3ZlcmVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faG92ZXJlZCQubmV4dChpbmRleCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgaXNTaW5nbGVQb2ludCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUubGVuZ3RoID09PSAxO1xuICAgIH1cblxuICAgIEB0dWlQdXJlXG4gICAgcHJpdmF0ZSBnZXREKHZhbHVlOiByZWFkb25seSBUdWlQb2ludFtdLCBzbW9vdGhpbmdGYWN0b3I6IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB2YWx1ZS5yZWR1Y2UoXG4gICAgICAgICAgICAoZCwgcG9pbnQsIGluZGV4KSA9PlxuICAgICAgICAgICAgICAgIGluZGV4ID8gYCR7ZH0gJHtkcmF3KHZhbHVlLCBpbmRleCwgc21vb3RoaW5nRmFjdG9yKX1gIDogYE0gJHtwb2ludH1gLFxuICAgICAgICAgICAgYGAsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb21wdXRlV2lkdGgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gdGhpcy52YWx1ZS5sZW5ndGggLSAxXG4gICAgICAgICAgICA/IDIgKiAodGhpcy52YWx1ZVtpbmRleF1bMF0gLSB0aGlzLmdldFgoaW5kZXgpKVxuICAgICAgICAgICAgOiB0aGlzLmdldFgoaW5kZXggKyAxKSAtIHRoaXMuZ2V0WChpbmRleCk7XG4gICAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { CommonModule } from '@angular/common';
3
- import { NgModule } from '@angular/core';
4
- import { TuiFocusableModule, TuiLetModule } from '@taiga-ui/cdk';
5
- import { TuiDescribedByModule, TuiHintModule } from '@taiga-ui/core';
6
- import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
7
- import { TuiLineChartComponent } from './line-chart.component';
8
- import { TuiLineChartHintDirective } from './line-chart-hint.directive';
9
- var TuiLineChartModule = /** @class */ (function () {
10
- function TuiLineChartModule() {
11
- }
12
- TuiLineChartModule = __decorate([
13
- NgModule({
14
- imports: [
15
- CommonModule,
16
- PolymorpheusModule,
17
- TuiHintModule,
18
- TuiFocusableModule,
19
- TuiDescribedByModule,
20
- TuiLetModule,
21
- ],
22
- declarations: [TuiLineChartComponent, TuiLineChartHintDirective],
23
- exports: [TuiLineChartComponent, TuiLineChartHintDirective],
24
- })
25
- ], TuiLineChartModule);
26
- return TuiLineChartModule;
27
- }());
28
- export { TuiLineChartModule };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jaGFydC5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1jaGFydC8iLCJzb3VyY2VzIjpbImxpbmUtY2hhcnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQyxvQkFBb0IsRUFBRSxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQWN0RTtJQUFBO0lBQWlDLENBQUM7SUFBckIsa0JBQWtCO1FBWjlCLFFBQVEsQ0FBQztZQUNOLE9BQU8sRUFBRTtnQkFDTCxZQUFZO2dCQUNaLGtCQUFrQjtnQkFDbEIsYUFBYTtnQkFDYixrQkFBa0I7Z0JBQ2xCLG9CQUFvQjtnQkFDcEIsWUFBWTthQUNmO1lBQ0QsWUFBWSxFQUFFLENBQUMscUJBQXFCLEVBQUUseUJBQXlCLENBQUM7WUFDaEUsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUseUJBQXlCLENBQUM7U0FDOUQsQ0FBQztPQUNXLGtCQUFrQixDQUFHO0lBQUQseUJBQUM7Q0FBQSxBQUFsQyxJQUFrQztTQUFyQixrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlGb2N1c2FibGVNb2R1bGUsIFR1aUxldE1vZHVsZX0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1R1aURlc2NyaWJlZEJ5TW9kdWxlLCBUdWlIaW50TW9kdWxlfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1BvbHltb3JwaGV1c01vZHVsZX0gZnJvbSAnQHRpbmtvZmYvbmctcG9seW1vcnBoZXVzJztcblxuaW1wb3J0IHtUdWlMaW5lQ2hhcnRDb21wb25lbnR9IGZyb20gJy4vbGluZS1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHtUdWlMaW5lQ2hhcnRIaW50RGlyZWN0aXZlfSBmcm9tICcuL2xpbmUtY2hhcnQtaGludC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBQb2x5bW9ycGhldXNNb2R1bGUsXG4gICAgICAgIFR1aUhpbnRNb2R1bGUsXG4gICAgICAgIFR1aUZvY3VzYWJsZU1vZHVsZSxcbiAgICAgICAgVHVpRGVzY3JpYmVkQnlNb2R1bGUsXG4gICAgICAgIFR1aUxldE1vZHVsZSxcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1R1aUxpbmVDaGFydENvbXBvbmVudCwgVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1R1aUxpbmVDaGFydENvbXBvbmVudCwgVHVpTGluZUNoYXJ0SGludERpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUxpbmVDaGFydE1vZHVsZSB7fVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFpZ2EtdWktYWRkb24tY2hhcnRzLWNvbXBvbmVudHMtbGluZS1jaGFydC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0B0YWlnYS11aS9hZGRvbi1jaGFydHMvY29tcG9uZW50cy9saW5lLWNoYXJ0LyIsInNvdXJjZXMiOlsidGFpZ2EtdWktYWRkb24tY2hhcnRzLWNvbXBvbmVudHMtbGluZS1jaGFydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './line-days-chart.component';
2
- export * from './line-days-chart.module';
3
- export * from './line-days-chart-hint.directive';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdGFpZ2EtdWkvYWRkb24tY2hhcnRzL2NvbXBvbmVudHMvbGluZS1kYXlzLWNoYXJ0LyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpbmUtZGF5cy1jaGFydC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWRheXMtY2hhcnQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGluZS1kYXlzLWNoYXJ0LWhpbnQuZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,83 +0,0 @@
1
- import { __decorate, __param, __read, __spread } from "tslib";
2
- import { ContentChildren, Directive, ElementRef, forwardRef, Inject, Input, NgZone, QueryList, } from '@angular/core';
3
- import { ANIMATION_FRAME } from '@ng-web-apis/common';
4
- import { EMPTY_QUERY, TuiContextWithImplicit, TuiDay, tuiDefaultProp, TuiDestroyService, tuiPure, tuiZonefree, } from '@taiga-ui/cdk';
5
- import { HINT_HOVERED_CLASS } from '@taiga-ui/core';
6
- import { Observable } from 'rxjs';
7
- import { distinctUntilChanged, filter, map, startWith, takeUntil, throttleTime, } from 'rxjs/operators';
8
- import { TuiLineDaysChartComponent } from './line-days-chart.component';
9
- var TuiLineDaysChartHintDirective = /** @class */ (function () {
10
- function TuiLineDaysChartHintDirective(destroy$, _a, ngZone, animationFrame$) {
11
- var _this = this;
12
- var nativeElement = _a.nativeElement;
13
- this.charts = EMPTY_QUERY;
14
- this.hint = "";
15
- animationFrame$
16
- .pipe(throttleTime(200), map(function () { return !!nativeElement.querySelector("." + HINT_HOVERED_CLASS); }), startWith(false), distinctUntilChanged(), tuiZonefree(ngZone), filter(function (v) { return !v; }), takeUntil(destroy$))
17
- .subscribe(function () {
18
- _this.charts.forEach(function (chart) { return chart.onHovered(null); });
19
- });
20
- }
21
- TuiLineDaysChartHintDirective.prototype.getContext = function (day) {
22
- return this.computeContext(day, this.charts);
23
- };
24
- TuiLineDaysChartHintDirective.prototype.raise = function (day) {
25
- var current = this.charts
26
- .map(function (_a) {
27
- var value = _a.value;
28
- return find(value, day);
29
- })
30
- .filter(function (_a) {
31
- var _b = __read(_a, 2), _ = _b[0], value = _b[1];
32
- return !isNaN(value);
33
- });
34
- var sorted = __spread(current).sort(function (a, b) { return a[1] - b[1]; });
35
- this.charts.forEach(function (chart, index) {
36
- chart.onHovered(day);
37
- chart.zIndex = Math.max(sorted.indexOf(current[index]), 0);
38
- });
39
- };
40
- TuiLineDaysChartHintDirective.prototype.computeContext = function (day, charts) {
41
- return {
42
- $implicit: charts.map(function (_a) {
43
- var value = _a.value;
44
- return find(value, day);
45
- }),
46
- };
47
- };
48
- TuiLineDaysChartHintDirective.ctorParameters = function () { return [
49
- { type: TuiDestroyService, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
50
- { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
51
- { type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
52
- { type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] }
53
- ]; };
54
- __decorate([
55
- ContentChildren(forwardRef(function () { return TuiLineDaysChartComponent; }))
56
- ], TuiLineDaysChartHintDirective.prototype, "charts", void 0);
57
- __decorate([
58
- Input("tuiLineChartHint"),
59
- tuiDefaultProp()
60
- ], TuiLineDaysChartHintDirective.prototype, "hint", void 0);
61
- __decorate([
62
- tuiPure
63
- ], TuiLineDaysChartHintDirective.prototype, "computeContext", null);
64
- TuiLineDaysChartHintDirective = __decorate([
65
- Directive({
66
- selector: "[tuiLineChartHint]",
67
- providers: [TuiDestroyService],
68
- }),
69
- __param(0, Inject(TuiDestroyService)),
70
- __param(1, Inject(ElementRef)),
71
- __param(2, Inject(NgZone)),
72
- __param(3, Inject(ANIMATION_FRAME))
73
- ], TuiLineDaysChartHintDirective);
74
- return TuiLineDaysChartHintDirective;
75
- }());
76
- export { TuiLineDaysChartHintDirective };
77
- function find(value, current) {
78
- return value.find(function (_a) {
79
- var _b = __read(_a, 1), day = _b[0];
80
- return day.daySame(current);
81
- }) || [current, NaN];
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1kYXlzLWNoYXJ0LWhpbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2FkZG9uLWNoYXJ0cy9jb21wb25lbnRzL2xpbmUtZGF5cy1jaGFydC8iLCJzb3VyY2VzIjpbImxpbmUtZGF5cy1jaGFydC1oaW50LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxXQUFXLEVBQ1gsc0JBQXNCLEVBQ3RCLE1BQU0sRUFDTixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLE9BQU8sRUFDUCxXQUFXLEdBQ2QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGtCQUFrQixFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3BCLE1BQU0sRUFDTixHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEdBQ2YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQU10RTtJQVFJLHVDQUMrQixRQUEyQixFQUNsQyxFQUF3QyxFQUM1QyxNQUFjLEVBQ0wsZUFBbUM7UUFKaEUsaUJBbUJDO1lBakJ3QixnQ0FBYTtRQVJyQixXQUFNLEdBQXlDLFdBQVcsQ0FBQztRQUk1RSxTQUFJLEdBQXFFLEVBQUUsQ0FBQztRQVF4RSxlQUFlO2FBQ1YsSUFBSSxDQUNELFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsR0FBRyxDQUFDLGNBQU0sT0FBQSxDQUFD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TSxDQUFDLENBQUE7UUFDZCxXQUFBLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQTtPQVpuQiw2QkFBNkIsQ0FzRHpDO0lBQUQsb0NBQUM7Q0FBQSxBQXRERCxJQXNEQztTQXREWSw2QkFBNkI7QUF3RDFDLFNBQVMsSUFBSSxDQUFDLEtBQXNDLEVBQUUsT0FBZTtJQUNqRSxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBQyxFQUFLO1lBQUwsa0JBQUssRUFBSixXQUFHO1FBQU0sT0FBQSxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUFwQixDQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE5nWm9uZSxcbiAgICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBTklNQVRJT05fRlJBTUV9IGZyb20gJ0BuZy13ZWItYXBpcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBFTVBUWV9RVUVSWSxcbiAgICBUdWlDb250ZXh0V2l0aEltcGxpY2l0LFxuICAgIFR1aURheSxcbiAgICB0dWlEZWZhdWx0UHJvcCxcbiAgICBUdWlEZXN0cm95U2VydmljZSxcbiAgICB0dWlQdXJlLFxuICAgIHR1aVpvbmVmcmVlLFxufSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7SElOVF9IT1ZFUkVEX0NMQVNTLCBUdWlQb2ludH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHtQb2x5bW9ycGhldXNDb250ZW50fSBmcm9tICdAdGlua29mZi9uZy1wb2x5bW9ycGhldXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gICAgZmlsdGVyLFxuICAgIG1hcCxcbiAgICBzdGFydFdpdGgsXG4gICAgdGFrZVVudGlsLFxuICAgIHRocm90dGxlVGltZSxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1R1aUxpbmVEYXlzQ2hhcnRDb21wb25lbnR9IGZyb20gJy4vbGluZS1kYXlzLWNoYXJ0LmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiBgW3R1aUxpbmVDaGFydEhpbnRdYCxcbiAgICBwcm92aWRlcnM6IFtUdWlEZXN0cm95U2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUxpbmVEYXlzQ2hhcnRIaW50RGlyZWN0aXZlIHtcbiAgICBAQ29udGVudENoaWxkcmVuKGZvcndhcmRSZWYoKCkgPT4gVHVpTGluZURheXNDaGFydENvbXBvbmVudCkpXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFydHM6IFF1ZXJ5TGlzdDxUdWlMaW5lRGF5c0NoYXJ0Q29tcG9uZW50PiA9IEVNUFRZX1FVRVJZO1xuXG4gICAgQElucHV0KGB0dWlMaW5lQ2hhcnRIaW50YClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIGhpbnQ6IFBvbHltb3JwaGV1c0NvbnRlbnQ8VHVpQ29udGV4dFdpdGhJbXBsaWNpdDxyZWFkb25seSBUdWlQb2ludFtdPj4gPSBgYDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFR1aURlc3Ryb3lTZXJ2aWNlKSBkZXN0cm95JDogVHVpRGVzdHJveVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRWxlbWVudFJlZikge25hdGl2ZUVsZW1lbnR9OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICAgICAgQEluamVjdChOZ1pvbmUpIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KEFOSU1BVElPTl9GUkFNRSkgYW5pbWF0aW9uRnJhbWUkOiBPYnNlcnZhYmxlPG51bWJlcj4sXG4gICAgKSB7XG4gICAgICAgIGFuaW1hdGlvbkZyYW1lJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGhyb3R0bGVUaW1lKDIwMCksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+ICEhbmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKGAuJHtISU5UX0hPVkVSRURfQ0xBU1N9YCkpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChmYWxzZSksXG4gICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICB0dWlab25lZnJlZShuZ1pvbmUpLFxuICAgICAgICAgICAgICAgIGZpbHRlcih2ID0+ICF2KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwoZGVzdHJveSQpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jaGFydHMuZm9yRWFjaChjaGFydCA9PiBjaGFydC5vbkhvdmVyZWQobnVsbCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Q29udGV4dChkYXk6IFR1aURheSk6IFR1aUNvbnRleHRXaXRoSW1wbGljaXQ8UmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wdXRlQ29udGV4dChkYXksIHRoaXMuY2hhcnRzKTtcbiAgICB9XG5cbiAgICByYWlzZShkYXk6IFR1aURheSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5jaGFydHNcbiAgICAgICAgICAgIC5tYXAoKHt2YWx1ZX0pID0+IGZpbmQodmFsdWUsIGRheSkpXG4gICAgICAgICAgICAuZmlsdGVyKChbXywgdmFsdWVdKSA9PiAhaXNOYU4odmFsdWUpKTtcbiAgICAgICAgY29uc3Qgc29ydGVkID0gWy4uLmN1cnJlbnRdLnNvcnQoKGEsIGIpID0+IGFbMV0gLSBiWzFdKTtcblxuICAgICAgICB0aGlzLmNoYXJ0cy5mb3JFYWNoKChjaGFydCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGNoYXJ0Lm9uSG92ZXJlZChkYXkpO1xuICAgICAgICAgICAgY2hhcnQuekluZGV4ID0gTWF0aC5tYXgoc29ydGVkLmluZGV4T2YoY3VycmVudFtpbmRleF0pLCAwKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgQHR1aVB1cmVcbiAgICBwcml2YXRlIGNvbXB1dGVDb250ZXh0KFxuICAgICAgICBkYXk6IFR1aURheSxcbiAgICAgICAgY2hhcnRzOiBRdWVyeUxpc3Q8VHVpTGluZURheXNDaGFydENvbXBvbmVudD4sXG4gICAgKTogVHVpQ29udGV4dFdpdGhJbXBsaWNpdDxSZWFkb25seUFycmF5PFtUdWlEYXksIG51bWJlcl0+PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGNoYXJ0cy5tYXAoKHt2YWx1ZX0pID0+IGZpbmQodmFsdWUsIGRheSkpLFxuICAgICAgICB9O1xuICAgIH1cbn1cblxuZnVuY3Rpb24gZmluZCh2YWx1ZTogUmVhZG9ubHlBcnJheTxbVHVpRGF5LCBudW1iZXJdPiwgY3VycmVudDogVHVpRGF5KTogW1R1aURheSwgbnVtYmVyXSB7XG4gICAgcmV0dXJuIHZhbHVlLmZpbmQoKFtkYXldKSA9PiBkYXkuZGF5U2FtZShjdXJyZW50KSkgfHwgW2N1cnJlbnQsIE5hTl07XG59XG4iXX0=