@taiga-ui/addon-charts 3.33.1 → 3.34.0

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 (60) hide show
  1. package/bundles/taiga-ui-addon-charts-components-arc-chart.umd.js +0 -18
  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 +0 -357
  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 +0 -17
  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 +0 -9
  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 +0 -6
  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 +4 -334
  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 +8 -48
  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 +0 -21
  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 +10 -36
  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 +4 -331
  20. package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js.map +1 -1
  21. package/bundles/taiga-ui-addon-charts-utils.umd.js +1 -0
  22. package/bundles/taiga-ui-addon-charts-utils.umd.js.map +1 -1
  23. package/components/line-chart/line-chart.component.d.ts +2 -5
  24. package/components/pie-chart/pie-chart.component.d.ts +2 -5
  25. package/esm2015/components/arc-chart/arc-chart.component.js +2 -21
  26. package/esm2015/components/axes/axes.component.js +2 -42
  27. package/esm2015/components/bar/bar.component.js +2 -8
  28. package/esm2015/components/bar-chart/bar-chart.component.js +2 -19
  29. package/esm2015/components/bar-set/bar-set.component.js +2 -11
  30. package/esm2015/components/legend-item/legend-item.component.js +1 -15
  31. package/esm2015/components/line-chart/line-chart.component.js +6 -48
  32. package/esm2015/components/line-days-chart/line-days-chart.component.js +2 -23
  33. package/esm2015/components/pie-chart/pie-chart.component.js +5 -31
  34. package/esm2015/components/pie-chart/pie-chart.directive.js +2 -6
  35. package/esm2015/components/ring-chart/ring-chart.component.js +1 -12
  36. package/esm2015/utils/prepare-external-url.js +2 -1
  37. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js +1 -20
  38. package/fesm2015/taiga-ui-addon-charts-components-arc-chart.js.map +1 -1
  39. package/fesm2015/taiga-ui-addon-charts-components-axes.js +1 -41
  40. package/fesm2015/taiga-ui-addon-charts-components-axes.js.map +1 -1
  41. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js +1 -18
  42. package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js.map +1 -1
  43. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js +1 -10
  44. package/fesm2015/taiga-ui-addon-charts-components-bar-set.js.map +1 -1
  45. package/fesm2015/taiga-ui-addon-charts-components-bar.js +1 -7
  46. package/fesm2015/taiga-ui-addon-charts-components-bar.js.map +1 -1
  47. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js +0 -14
  48. package/fesm2015/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
  49. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js +7 -48
  50. package/fesm2015/taiga-ui-addon-charts-components-line-chart.js.map +1 -1
  51. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js +1 -22
  52. package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js.map +1 -1
  53. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js +7 -33
  54. package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js.map +1 -1
  55. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js +0 -11
  56. package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js.map +1 -1
  57. package/fesm2015/taiga-ui-addon-charts-utils.js +1 -0
  58. package/fesm2015/taiga-ui-addon-charts-utils.js.map +1 -1
  59. package/package.json +3 -3
  60. package/utils/prepare-external-url.d.ts +1 -0
@@ -1,17 +1,16 @@
1
1
  import { __decorate } from 'tslib';
2
- import * as i4 from '@angular/common';
3
- import { Location as Location$1, CommonModule } from '@angular/common';
4
2
  import * as i0 from '@angular/core';
5
3
  import { ElementRef, NgZone, Directive, Inject, Self, Input, EventEmitter, Component, ChangeDetectionStrategy, Optional, HostBinding, Output, NgModule } from '@angular/core';
6
- import { PERFORMANCE, ANIMATION_FRAME, LOCATION } from '@ng-web-apis/common';
7
- import { tuiDescribeSector, tuiPrepareExternalUrl } from '@taiga-ui/addon-charts/utils';
8
4
  import * as i1$1 from '@taiga-ui/cdk';
9
- import { tuiEaseInOutQuad, tuiClamp, tuiZonefree, TuiDestroyService, tuiDefaultProp, tuiSum, TuiIdService, tuiPure, TuiRepeatTimesModule, TuiHoveredModule } from '@taiga-ui/cdk';
5
+ import { tuiEaseInOutQuad, tuiClamp, tuiZonefree, TuiDestroyService, tuiSum, TuiIdService, tuiPure, TuiRepeatTimesModule, TuiHoveredModule } from '@taiga-ui/cdk';
10
6
  import * as i3 from '@taiga-ui/core';
11
7
  import { TUI_ANIMATIONS_DURATION, TuiHintOptionsDirective, tuiHintOptionsProvider, TuiHintModule } from '@taiga-ui/core';
8
+ import { PERFORMANCE, ANIMATION_FRAME } from '@ng-web-apis/common';
9
+ import { tuiDescribeSector } from '@taiga-ui/addon-charts/utils';
12
10
  import * as i1 from 'rxjs';
13
11
  import { BehaviorSubject } from 'rxjs';
14
12
  import { pairwise, switchMap, map, takeWhile, takeUntil } from 'rxjs/operators';
13
+ import { CommonModule } from '@angular/common';
15
14
  import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
16
15
 
17
16
  class TuiPieChartDirective {
@@ -37,9 +36,6 @@ class TuiPieChartDirective {
37
36
  }
38
37
  TuiPieChartDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartDirective, deps: [{ token: ElementRef }, { token: NgZone }, { token: TuiDestroyService, self: true }, { token: PERFORMANCE }, { token: ANIMATION_FRAME }, { token: TUI_ANIMATIONS_DURATION }], target: i0.ɵɵFactoryTarget.Directive });
39
38
  TuiPieChartDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: TuiPieChartDirective, selector: "path[tuiPieChart]", inputs: { tuiPieChart: "tuiPieChart" }, providers: [TuiDestroyService], ngImport: i0 });
40
- __decorate([
41
- tuiDefaultProp()
42
- ], TuiPieChartDirective.prototype, "tuiPieChart", null);
43
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartDirective, decorators: [{
44
40
  type: Directive,
45
41
  args: [{
@@ -85,9 +81,7 @@ const TRANSFORM = {
85
81
  xl: 1.08,
86
82
  };
87
83
  class TuiPieChartComponent {
88
- constructor(idService, ngLocation, locationRef, hintOptions) {
89
- this.ngLocation = ngLocation;
90
- this.locationRef = locationRef;
84
+ constructor(idService, hintOptions) {
91
85
  this.hintOptions = hintOptions;
92
86
  this.value = [];
93
87
  this.size = 'm';
@@ -111,9 +105,7 @@ class TuiPieChartComponent {
111
105
  return `tui-ring-chart-${this.autoIdString}`;
112
106
  }
113
107
  get mask() {
114
- return this.masked
115
- ? tuiPrepareExternalUrl(this.ngLocation, this.locationRef, this.maskId)
116
- : null;
108
+ return this.masked ? `url(#${this.maskId})` : null;
117
109
  }
118
110
  get radius() {
119
111
  return RADII[this.size];
@@ -155,22 +147,10 @@ class TuiPieChartComponent {
155
147
  this.activeItemIndexChange.next(index);
156
148
  }
157
149
  }
158
- TuiPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartComponent, deps: [{ token: TuiIdService }, { token: Location$1 }, { token: LOCATION }, { token: TuiHintOptionsDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
150
+ TuiPieChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiPieChartComponent, deps: [{ token: TuiIdService }, { token: TuiHintOptionsDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
159
151
  TuiPieChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiPieChartComponent, selector: "tui-pie-chart", inputs: { value: "value", size: "size", masked: "masked", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size", "class._empty": "this.empty" } }, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"100%\"\n width=\"100%\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n>\n <defs>\n <mask [attr.id]=\"maskId\">\n <rect\n x=\"-200\"\n y=\"-200\"\n width=\"400\"\n height=\"400\"\n fill=\"white\"\n />\n <circle\n cx=\"0\"\n cy=\"0\"\n [attr.r]=\"radius\"\n />\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"100\"\n class=\"t-placeholder\"\n />\n <path\n *tuiRepeatTimes=\"let index of segments.length\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintPointer\n d=\"\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [style.color]=\"getColor(index)\"\n [tuiPieChart]=\"segments[index]\"\n [tuiHint]=\"hintContent\"\n [tuiHintContext]=\"{$implicit: index}\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n />\n </g>\n</svg>\n", styles: [":host{position:relative;display:block}:host[data-size=xs]{width:2rem;height:2rem;pointer-events:none}:host[data-size=s]{width:4rem;height:4rem}:host[data-size=m]{width:9rem;height:9rem}:host[data-size=l]{width:11rem;height:11rem}:host[data-size=xl]{width:16rem;height:16rem}.t-svg{position:relative;overflow:visible;transform:rotate(-90deg)}.t-segment{transition-property:transform;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out}:host._empty .t-segment{display:none}.t-placeholder{fill:var(--tui-base-03)}\n"], directives: [{ type: i1$1.TuiRepeatTimesDirective, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }, { type: TuiPieChartDirective, selector: "path[tuiPieChart]", inputs: ["tuiPieChart"] }, { type: i3.TuiHintDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"] }, { type: i3.TuiHintDriverDirective, selector: "[tuiHint]" }, { type: i3.TuiHintHoverDirective, selector: "[tuiHint]:not(ng-container)", inputs: ["tuiHintShowDelay", "tuiHintHideDelay"], exportAs: ["tuiHintHover"] }, { type: i3.TuiHintPositionDirective, selector: "[tuiHint]:not([tuiHintCustomPosition])", inputs: ["tuiHintDirection"] }, { type: i3.TuiHintPointerDirective, selector: "[tuiHint][tuiHintPointer]" }, { type: i1$1.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }], viewProviders: [
160
152
  tuiHintOptionsProvider({ direction: 'top-right', appearance: 'onDark' }),
161
153
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
162
- __decorate([
163
- tuiDefaultProp()
164
- ], TuiPieChartComponent.prototype, "value", void 0);
165
- __decorate([
166
- tuiDefaultProp()
167
- ], TuiPieChartComponent.prototype, "size", void 0);
168
- __decorate([
169
- tuiDefaultProp()
170
- ], TuiPieChartComponent.prototype, "masked", void 0);
171
- __decorate([
172
- tuiDefaultProp()
173
- ], TuiPieChartComponent.prototype, "activeItemIndex", void 0);
174
154
  __decorate([
175
155
  tuiPure
176
156
  ], TuiPieChartComponent.prototype, "getSum", null);
@@ -191,12 +171,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
191
171
  }], ctorParameters: function () { return [{ type: i1$1.TuiIdService, decorators: [{
192
172
  type: Inject,
193
173
  args: [TuiIdService]
194
- }] }, { type: i4.Location, decorators: [{
195
- type: Inject,
196
- args: [Location$1]
197
- }] }, { type: Location, decorators: [{
198
- type: Inject,
199
- args: [LOCATION]
200
174
  }] }, { type: i3.TuiHintOptionsDirective, decorators: [{
201
175
  type: Optional
202
176
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-charts-components-pie-chart.js","sources":["../../../projects/addon-charts/components/pie-chart/pie-chart.directive.ts","../../../projects/addon-charts/components/pie-chart/pie-chart.component.ts","../../../projects/addon-charts/components/pie-chart/pie-chart.template.html","../../../projects/addon-charts/components/pie-chart/pie-chart.module.ts","../../../projects/addon-charts/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.ts"],"sourcesContent":["import {Directive, ElementRef, Inject, Input, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiDescribeSector} from '@taiga-ui/addon-charts/utils';\nimport {\n tuiClamp,\n tuiDefaultProp,\n TuiDestroyService,\n tuiEaseInOutQuad,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {TUI_ANIMATIONS_DURATION} from '@taiga-ui/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map, pairwise, switchMap, takeUntil, takeWhile} from 'rxjs/operators';\n\n@Directive({\n selector: 'path[tuiPieChart]',\n providers: [TuiDestroyService],\n})\nexport class TuiPieChartDirective {\n private readonly sector$ = new BehaviorSubject<readonly [number, number]>([0, 0]);\n\n @Input()\n @tuiDefaultProp()\n set tuiPieChart(sector: readonly [number, number]) {\n this.sector$.next(sector);\n }\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<SVGPathElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(PERFORMANCE) performance: Performance,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ANIMATIONS_DURATION) duration: number,\n ) {\n this.sector$\n .pipe(\n pairwise(),\n switchMap(([prev, cur]) => {\n const now = performance.now();\n const startDelta = cur[0] - prev[0];\n const endDelta = cur[1] - prev[1];\n\n return animationFrame$.pipe(\n map(timestamp =>\n tuiEaseInOutQuad(\n tuiClamp((timestamp - now) / duration, 0, 1),\n ),\n ),\n takeWhile(progress => progress < 1, true),\n map(progress => [\n prev[0] + startDelta * progress,\n cur[1] > 359 ? cur[1] : prev[1] + endDelta * progress,\n ]),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(([start, end]) => {\n nativeElement.setAttribute('d', tuiDescribeSector(start, end));\n });\n }\n}\n","import {Location as NgLocation} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport {SafeValue} from '@angular/platform-browser';\nimport {LOCATION} from '@ng-web-apis/common';\nimport {tuiPrepareExternalUrl} from '@taiga-ui/addon-charts/utils';\nimport {\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n tuiSum,\n} from '@taiga-ui/cdk';\nimport {\n TuiHintOptionsDirective,\n tuiHintOptionsProvider,\n TuiSizeXL,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nconst RADII = {\n xs: '50',\n s: '50',\n m: '77.8',\n l: '81.9',\n xl: '81.3',\n};\nconst TRANSFORM = {\n xs: 1.15,\n s: 1.25,\n m: 1.11,\n l: 1.09,\n xl: 1.08,\n};\n\n@Component({\n selector: 'tui-pie-chart',\n templateUrl: './pie-chart.template.html',\n styleUrls: ['./pie-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n tuiHintOptionsProvider({direction: 'top-right', appearance: 'onDark'}),\n ],\n})\nexport class TuiPieChartComponent {\n private readonly autoIdString: string;\n\n @Input()\n @tuiDefaultProp()\n value: readonly number[] = [];\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeXL | TuiSizeXS = 'm';\n\n @Input()\n @tuiDefaultProp()\n masked = false;\n\n @Input()\n @tuiDefaultProp()\n activeItemIndex = NaN;\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(NgLocation) private readonly ngLocation: NgLocation,\n @Inject(LOCATION) private readonly locationRef: Location,\n @Optional()\n @Inject(TuiHintOptionsDirective)\n private readonly hintOptions: TuiHintOptionsDirective | null,\n ) {\n this.autoIdString = idService.generate();\n\n if (this.hintOptions) {\n this.hintOptions.showDelay = 0;\n this.hintOptions.hideDelay = 0;\n }\n }\n\n @HostBinding('class._empty')\n get empty(): boolean {\n return !this.getSum(this.value);\n }\n\n get hintContent(): PolymorpheusContent<TuiContextWithImplicit<number>> {\n return this.hintOptions?.content || '';\n }\n\n get maskId(): string {\n return `tui-ring-chart-${this.autoIdString}`;\n }\n\n get mask(): string | null {\n return this.masked\n ? tuiPrepareExternalUrl(this.ngLocation, this.locationRef, this.maskId)\n : null;\n }\n\n get radius(): string {\n return RADII[this.size];\n }\n\n get segments(): ReadonlyArray<[number, number]> {\n return this.getSegments(this.value);\n }\n\n getTransform(index: number): string | null {\n const transform = this.masked\n ? `scale(${TRANSFORM[this.size]})`\n : `scale(${TRANSFORM.xs})`;\n\n return index === this.activeItemIndex ? transform : null;\n }\n\n onHovered(hovered: boolean, index: number): void {\n this.updateActiveItemIndex(hovered ? index : NaN);\n }\n\n getColor(index: number): SafeValue {\n return `var(--tui-chart-${index})`;\n }\n\n @tuiPure\n private getSum(value: readonly number[]): number {\n return tuiSum(...value);\n }\n\n @tuiPure\n private getSegments(value: readonly number[]): ReadonlyArray<[number, number]> {\n return value\n .map((initial, i, array) =>\n array.reduce(\n (sum, current, j) => (j < i ? this.getDeg(current) + sum : sum),\n this.getDeg(initial),\n ),\n )\n .map((angle, index, array) => [\n array[index - 1] || 0,\n Math.min(angle, 359.9999),\n ]);\n }\n\n private getDeg(value: number): number {\n return 360 * (value / this.getSum(this.value));\n }\n\n private updateActiveItemIndex(index: number): void {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\n","<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"100%\"\n width=\"100%\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n>\n <defs>\n <mask [attr.id]=\"maskId\">\n <rect\n x=\"-200\"\n y=\"-200\"\n width=\"400\"\n height=\"400\"\n fill=\"white\"\n />\n <circle\n cx=\"0\"\n cy=\"0\"\n [attr.r]=\"radius\"\n />\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"100\"\n class=\"t-placeholder\"\n />\n <path\n *tuiRepeatTimes=\"let index of segments.length\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintPointer\n d=\"\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [style.color]=\"getColor(index)\"\n [tuiPieChart]=\"segments[index]\"\n [tuiHint]=\"hintContent\"\n [tuiHintContext]=\"{$implicit: index}\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n />\n </g>\n</svg>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiHoveredModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPieChartComponent} from './pie-chart.component';\nimport {TuiPieChartDirective} from './pie-chart.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n PolymorpheusModule,\n TuiHintModule,\n ],\n declarations: [TuiPieChartComponent, TuiPieChartDirective],\n exports: [TuiPieChartComponent],\n})\nexport class TuiPieChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["NgLocation","i1","i2.TuiPieChartDirective"],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-charts-components-pie-chart.js","sources":["../../../projects/addon-charts/components/pie-chart/pie-chart.directive.ts","../../../projects/addon-charts/components/pie-chart/pie-chart.component.ts","../../../projects/addon-charts/components/pie-chart/pie-chart.template.html","../../../projects/addon-charts/components/pie-chart/pie-chart.module.ts","../../../projects/addon-charts/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.ts"],"sourcesContent":["import {Directive, ElementRef, Inject, Input, NgZone, Self} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {tuiDescribeSector} from '@taiga-ui/addon-charts/utils';\nimport {tuiClamp, TuiDestroyService, tuiEaseInOutQuad, tuiZonefree} from '@taiga-ui/cdk';\nimport {TUI_ANIMATIONS_DURATION} from '@taiga-ui/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {map, pairwise, switchMap, takeUntil, takeWhile} from 'rxjs/operators';\n\n@Directive({\n selector: 'path[tuiPieChart]',\n providers: [TuiDestroyService],\n})\nexport class TuiPieChartDirective {\n private readonly sector$ = new BehaviorSubject<readonly [number, number]>([0, 0]);\n\n @Input()\n set tuiPieChart(sector: readonly [number, number]) {\n this.sector$.next(sector);\n }\n\n constructor(\n @Inject(ElementRef) {nativeElement}: ElementRef<SVGPathElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Self() @Inject(TuiDestroyService) destroy$: Observable<unknown>,\n @Inject(PERFORMANCE) performance: Performance,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n @Inject(TUI_ANIMATIONS_DURATION) duration: number,\n ) {\n this.sector$\n .pipe(\n pairwise(),\n switchMap(([prev, cur]) => {\n const now = performance.now();\n const startDelta = cur[0] - prev[0];\n const endDelta = cur[1] - prev[1];\n\n return animationFrame$.pipe(\n map(timestamp =>\n tuiEaseInOutQuad(\n tuiClamp((timestamp - now) / duration, 0, 1),\n ),\n ),\n takeWhile(progress => progress < 1, true),\n map(progress => [\n prev[0] + startDelta * progress,\n cur[1] > 359 ? cur[1] : prev[1] + endDelta * progress,\n ]),\n );\n }),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(([start, end]) => {\n nativeElement.setAttribute('d', tuiDescribeSector(start, end));\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n} from '@angular/core';\nimport {SafeValue} from '@angular/platform-browser';\nimport {TuiContextWithImplicit, TuiIdService, tuiPure, tuiSum} from '@taiga-ui/cdk';\nimport {\n TuiHintOptionsDirective,\n tuiHintOptionsProvider,\n TuiSizeXL,\n TuiSizeXS,\n} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nconst RADII = {\n xs: '50',\n s: '50',\n m: '77.8',\n l: '81.9',\n xl: '81.3',\n};\nconst TRANSFORM = {\n xs: 1.15,\n s: 1.25,\n m: 1.11,\n l: 1.09,\n xl: 1.08,\n};\n\n@Component({\n selector: 'tui-pie-chart',\n templateUrl: './pie-chart.template.html',\n styleUrls: ['./pie-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [\n tuiHintOptionsProvider({direction: 'top-right', appearance: 'onDark'}),\n ],\n})\nexport class TuiPieChartComponent {\n private readonly autoIdString: string;\n\n @Input()\n value: readonly number[] = [];\n\n @Input()\n @HostBinding('attr.data-size')\n size: TuiSizeXL | TuiSizeXS = 'm';\n\n @Input()\n masked = false;\n\n @Input()\n activeItemIndex = NaN;\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Optional()\n @Inject(TuiHintOptionsDirective)\n private readonly hintOptions: TuiHintOptionsDirective | null,\n ) {\n this.autoIdString = idService.generate();\n\n if (this.hintOptions) {\n this.hintOptions.showDelay = 0;\n this.hintOptions.hideDelay = 0;\n }\n }\n\n @HostBinding('class._empty')\n get empty(): boolean {\n return !this.getSum(this.value);\n }\n\n get hintContent(): PolymorpheusContent<TuiContextWithImplicit<number>> {\n return this.hintOptions?.content || '';\n }\n\n get maskId(): string {\n return `tui-ring-chart-${this.autoIdString}`;\n }\n\n get mask(): string | null {\n return this.masked ? `url(#${this.maskId})` : null;\n }\n\n get radius(): string {\n return RADII[this.size];\n }\n\n get segments(): ReadonlyArray<[number, number]> {\n return this.getSegments(this.value);\n }\n\n getTransform(index: number): string | null {\n const transform = this.masked\n ? `scale(${TRANSFORM[this.size]})`\n : `scale(${TRANSFORM.xs})`;\n\n return index === this.activeItemIndex ? transform : null;\n }\n\n onHovered(hovered: boolean, index: number): void {\n this.updateActiveItemIndex(hovered ? index : NaN);\n }\n\n getColor(index: number): SafeValue {\n return `var(--tui-chart-${index})`;\n }\n\n @tuiPure\n private getSum(value: readonly number[]): number {\n return tuiSum(...value);\n }\n\n @tuiPure\n private getSegments(value: readonly number[]): ReadonlyArray<[number, number]> {\n return value\n .map((initial, i, array) =>\n array.reduce(\n (sum, current, j) => (j < i ? this.getDeg(current) + sum : sum),\n this.getDeg(initial),\n ),\n )\n .map((angle, index, array) => [\n array[index - 1] || 0,\n Math.min(angle, 359.9999),\n ]);\n }\n\n private getDeg(value: number): number {\n return 360 * (value / this.getSum(this.value));\n }\n\n private updateActiveItemIndex(index: number): void {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\n","<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n height=\"100%\"\n width=\"100%\"\n viewBox=\"-100 -100 200 200\"\n focusable=\"false\"\n class=\"t-svg\"\n>\n <defs>\n <mask [attr.id]=\"maskId\">\n <rect\n x=\"-200\"\n y=\"-200\"\n width=\"400\"\n height=\"400\"\n fill=\"white\"\n />\n <circle\n cx=\"0\"\n cy=\"0\"\n [attr.r]=\"radius\"\n />\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <circle\n cx=\"0\"\n cy=\"0\"\n r=\"100\"\n class=\"t-placeholder\"\n />\n <path\n *tuiRepeatTimes=\"let index of segments.length\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintPointer\n d=\"\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [style.color]=\"getColor(index)\"\n [tuiPieChart]=\"segments[index]\"\n [tuiHint]=\"hintContent\"\n [tuiHintContext]=\"{$implicit: index}\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n />\n </g>\n</svg>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiHoveredModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPieChartComponent} from './pie-chart.component';\nimport {TuiPieChartDirective} from './pie-chart.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n TuiRepeatTimesModule,\n TuiHoveredModule,\n PolymorpheusModule,\n TuiHintModule,\n ],\n declarations: [TuiPieChartComponent, TuiPieChartDirective],\n exports: [TuiPieChartComponent],\n})\nexport class TuiPieChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.TuiPieChartDirective"],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- import { __decorate } from 'tslib';
2
1
  import * as i0 from '@angular/core';
3
2
  import { EventEmitter, Component, ChangeDetectionStrategy, Input, HostBinding, Output, NgModule } from '@angular/core';
4
- import { tuiDefaultProp } from '@taiga-ui/cdk';
5
3
  import * as i1 from '@taiga-ui/addon-charts/components/pie-chart';
6
4
  import { TuiPieChartModule } from '@taiga-ui/addon-charts/components/pie-chart';
7
5
  import { CommonModule } from '@angular/common';
@@ -27,15 +25,6 @@ class TuiRingChartComponent {
27
25
  }
28
26
  TuiRingChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
27
  TuiRingChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: TuiRingChartComponent, selector: "tui-ring-chart", inputs: { value: "value", size: "size", activeItemIndex: "activeItemIndex" }, outputs: { activeItemIndexChange: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "this.size" } }, ngImport: i0, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<tui-pie-chart\n [masked]=\"true\"\n [value]=\"value\"\n [size]=\"size\"\n [activeItemIndex]=\"activeItemIndex\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n></tui-pie-chart>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block}:host[data-size=s]{width:4rem;height:4rem}:host[data-size=m]{width:9rem;height:9rem}:host[data-size=l]{width:11rem;height:11rem}:host[data-size=xl]{width:16rem;height:16rem}.t-content{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;font:var(--tui-font-text-m);max-height:100%;flex-direction:column;justify-content:center;text-align:center;padding:1.5rem;border-radius:100%;box-sizing:border-box;overflow:hidden;word-break:break-word;white-space:pre-wrap;color:var(--tui-text-02)}:host[data-size=m] .t-content{font:var(--tui-font-text-xs)}.t-wrapper:first-line{color:var(--tui-text-01)}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-font-text-l);font-weight:bold}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-font-text-m);font-weight:bold}.t-shield{position:absolute;top:25%;left:25%;right:25%;bottom:25%;border-radius:100%}\n"], components: [{ type: i1.TuiPieChartComponent, selector: "tui-pie-chart", inputs: ["value", "size", "masked", "activeItemIndex"], outputs: ["activeItemIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
30
- __decorate([
31
- tuiDefaultProp()
32
- ], TuiRingChartComponent.prototype, "value", void 0);
33
- __decorate([
34
- tuiDefaultProp()
35
- ], TuiRingChartComponent.prototype, "size", void 0);
36
- __decorate([
37
- tuiDefaultProp()
38
- ], TuiRingChartComponent.prototype, "activeItemIndex", void 0);
39
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: TuiRingChartComponent, decorators: [{
40
29
  type: Component,
41
30
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-charts-components-ring-chart.js","sources":["../../../projects/addon-charts/components/ring-chart/ring-chart.component.ts","../../../projects/addon-charts/components/ring-chart/ring-chart.template.html","../../../projects/addon-charts/components/ring-chart/ring-chart.module.ts","../../../projects/addon-charts/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\n\n@Component({\n selector: 'tui-ring-chart',\n templateUrl: './ring-chart.template.html',\n styleUrls: ['./ring-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiRingChartComponent {\n @Input()\n @tuiDefaultProp()\n value: readonly number[] = [];\n\n @Input()\n @HostBinding('attr.data-size')\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeXL = 'm';\n\n @Input()\n @tuiDefaultProp()\n activeItemIndex = NaN;\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n onActiveItemIndexChange(index: number): void {\n this.updateActiveItemIndex(index);\n }\n\n private updateActiveItemIndex(index: number): void {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\n","<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<tui-pie-chart\n [masked]=\"true\"\n [value]=\"value\"\n [size]=\"size\"\n [activeItemIndex]=\"activeItemIndex\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n></tui-pie-chart>\n\n<div class=\"t-shield\"></div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiPieChartModule} from '@taiga-ui/addon-charts/components/pie-chart';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiRingChartComponent} from './ring-chart.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiPieChartModule],\n declarations: [TuiRingChartComponent],\n exports: [TuiRingChartComponent],\n})\nexport class TuiRingChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-charts-components-ring-chart.js","sources":["../../../projects/addon-charts/components/ring-chart/ring-chart.component.ts","../../../projects/addon-charts/components/ring-chart/ring-chart.template.html","../../../projects/addon-charts/components/ring-chart/ring-chart.module.ts","../../../projects/addon-charts/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n} from '@angular/core';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\n\n@Component({\n selector: 'tui-ring-chart',\n templateUrl: './ring-chart.template.html',\n styleUrls: ['./ring-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiRingChartComponent {\n @Input()\n value: readonly number[] = [];\n\n @Input()\n @HostBinding('attr.data-size')\n size: TuiSizeS | TuiSizeXL = 'm';\n\n @Input()\n activeItemIndex = NaN;\n\n @Output()\n readonly activeItemIndexChange = new EventEmitter<number>();\n\n onActiveItemIndexChange(index: number): void {\n this.updateActiveItemIndex(index);\n }\n\n private updateActiveItemIndex(index: number): void {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\n","<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content></ng-content>\n </div>\n</div>\n\n<tui-pie-chart\n [masked]=\"true\"\n [value]=\"value\"\n [size]=\"size\"\n [activeItemIndex]=\"activeItemIndex\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n></tui-pie-chart>\n\n<div class=\"t-shield\"></div>\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiPieChartModule} from '@taiga-ui/addon-charts/components/pie-chart';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiRingChartComponent} from './ring-chart.component';\n\n@NgModule({\n imports: [CommonModule, PolymorpheusModule, TuiPieChartModule],\n declarations: [TuiRingChartComponent],\n exports: [TuiRingChartComponent],\n})\nexport class TuiRingChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -71,6 +71,7 @@ function tuiDraw(array, index, smoothing) {
71
71
  : tuiDrawLine([array[index][0], array[index][1]]);
72
72
  }
73
73
 
74
+ /** @deprecated */
74
75
  function tuiPrepareExternalUrl(locationNg, locationRef, hash) {
75
76
  const url = locationNg
76
77
  .prepareExternalUrl(locationNg.path(false))
@@ -1 +1 @@
1
- {"version":3,"file":"taiga-ui-addon-charts-utils.js","sources":["../../../projects/addon-charts/utils/line-angle.ts","../../../projects/addon-charts/utils/line-length.ts","../../../projects/addon-charts/utils/control-point.ts","../../../projects/addon-charts/utils/describe-sector.ts","../../../projects/addon-charts/utils/draw-curve.ts","../../../projects/addon-charts/utils/draw-line.ts","../../../projects/addon-charts/utils/draw.ts","../../../projects/addon-charts/utils/prepare-external-url.ts","../../../projects/addon-charts/utils/taiga-ui-addon-charts-utils.ts"],"sourcesContent":["import {TuiPoint} from '@taiga-ui/core';\n\nexport function tuiLineAngle(a: TuiPoint, b: TuiPoint): number {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n\n return Math.atan2(y, x);\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nexport function tuiLineLength(a: TuiPoint, b: TuiPoint): number {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n\n return Math.sqrt(x ** 2 + y ** 2);\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {tuiLineAngle} from './line-angle';\nimport {tuiLineLength} from './line-length';\n\nexport function tuiControlPoint(\n current: TuiPoint,\n previous?: TuiPoint,\n next?: TuiPoint,\n reverse: boolean = false,\n smoothing: number = 0.2,\n): TuiPoint {\n const p = previous || current;\n const n = next || current;\n const angle = tuiLineAngle(p, n) + (reverse ? Math.PI : 0);\n const length = tuiLineLength(p, n) * smoothing;\n const x = current[0] + Math.cos(angle) * length;\n const y = current[1] + Math.sin(angle) * length;\n\n return [x, y];\n}\n","import {tuiToInt, tuiToRadians} from '@taiga-ui/cdk';\n\nconst EMPTY = `M 100 0 A 100 100 0 1 1 100 0 L 0 0`;\n\n/**\n * Describes a normalized sector by angles. Normalized meaning it supposed to work with\n * SVG with viewBox=\"-1 -1 2 2\" so that 0 coordinates in cartesian and polar match the same spot.\n * Everything is multiplied by 100 (including viewBox of SVG to host this) so IE properly\n * handles hover events.\n *\n * @param startAngle starting angle in degrees\n * @param endAngle ending angle in degrees\n */\nexport function tuiDescribeSector(startAngle: number, endAngle: number): string {\n const startRad = tuiToRadians(startAngle);\n const endRad = tuiToRadians(endAngle);\n const startX = Math.cos(startRad) * 100;\n const startY = Math.sin(startRad) * 100;\n const endX = Math.cos(endRad) * 100;\n const endY = Math.sin(endRad) * 100;\n const largeArcFlag = tuiToInt(endAngle - startAngle > 180);\n const result = [\n `M`,\n startX,\n startY,\n `A 100 100 0`,\n largeArcFlag,\n 1,\n endX,\n endY,\n `L 0 0`,\n ];\n\n return Number.isNaN(endX) ? EMPTY : result.join(` `);\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {tuiControlPoint} from './control-point';\n\nexport function tuiDrawCurve(\n array: readonly TuiPoint[],\n index: number,\n smoothing: number,\n): string {\n const [cpsX, cpsY] = tuiControlPoint(\n array[index - 1],\n array[index - 2],\n array[index],\n false,\n smoothing,\n );\n const [cpeX, cpeY] = tuiControlPoint(\n array[index],\n array[index - 1],\n array[index + 1],\n true,\n smoothing,\n );\n\n return `C ${cpsX},${cpsY} ${cpeX},${cpeY} ${array[index][0]},${array[index][1]}`;\n}\n","export function tuiDrawLine(point: [number, number]): string {\n return `L ${point}`;\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {tuiDrawCurve} from './draw-curve';\nimport {tuiDrawLine} from './draw-line';\n\nconst COEFFICIENT = 500;\n\nexport function tuiDraw(\n array: readonly TuiPoint[],\n index: number,\n smoothing: number,\n): string {\n return smoothing\n ? tuiDrawCurve(array, index, smoothing / COEFFICIENT)\n : tuiDrawLine([array[index][0], array[index][1]]);\n}\n","import {Location as NgLocation} from '@angular/common';\n\nexport function tuiPrepareExternalUrl(\n locationNg: NgLocation,\n locationRef: Location,\n hash: string,\n): string {\n const url = locationNg\n .prepareExternalUrl(locationNg.path(false))\n .replace(locationRef.origin, ``);\n\n return `url(${url}#${hash})`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taiga-ui-addon-charts-utils.js","sources":["../../../projects/addon-charts/utils/line-angle.ts","../../../projects/addon-charts/utils/line-length.ts","../../../projects/addon-charts/utils/control-point.ts","../../../projects/addon-charts/utils/describe-sector.ts","../../../projects/addon-charts/utils/draw-curve.ts","../../../projects/addon-charts/utils/draw-line.ts","../../../projects/addon-charts/utils/draw.ts","../../../projects/addon-charts/utils/prepare-external-url.ts","../../../projects/addon-charts/utils/taiga-ui-addon-charts-utils.ts"],"sourcesContent":["import {TuiPoint} from '@taiga-ui/core';\n\nexport function tuiLineAngle(a: TuiPoint, b: TuiPoint): number {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n\n return Math.atan2(y, x);\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nexport function tuiLineLength(a: TuiPoint, b: TuiPoint): number {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n\n return Math.sqrt(x ** 2 + y ** 2);\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {tuiLineAngle} from './line-angle';\nimport {tuiLineLength} from './line-length';\n\nexport function tuiControlPoint(\n current: TuiPoint,\n previous?: TuiPoint,\n next?: TuiPoint,\n reverse: boolean = false,\n smoothing: number = 0.2,\n): TuiPoint {\n const p = previous || current;\n const n = next || current;\n const angle = tuiLineAngle(p, n) + (reverse ? Math.PI : 0);\n const length = tuiLineLength(p, n) * smoothing;\n const x = current[0] + Math.cos(angle) * length;\n const y = current[1] + Math.sin(angle) * length;\n\n return [x, y];\n}\n","import {tuiToInt, tuiToRadians} from '@taiga-ui/cdk';\n\nconst EMPTY = `M 100 0 A 100 100 0 1 1 100 0 L 0 0`;\n\n/**\n * Describes a normalized sector by angles. Normalized meaning it supposed to work with\n * SVG with viewBox=\"-1 -1 2 2\" so that 0 coordinates in cartesian and polar match the same spot.\n * Everything is multiplied by 100 (including viewBox of SVG to host this) so IE properly\n * handles hover events.\n *\n * @param startAngle starting angle in degrees\n * @param endAngle ending angle in degrees\n */\nexport function tuiDescribeSector(startAngle: number, endAngle: number): string {\n const startRad = tuiToRadians(startAngle);\n const endRad = tuiToRadians(endAngle);\n const startX = Math.cos(startRad) * 100;\n const startY = Math.sin(startRad) * 100;\n const endX = Math.cos(endRad) * 100;\n const endY = Math.sin(endRad) * 100;\n const largeArcFlag = tuiToInt(endAngle - startAngle > 180);\n const result = [\n `M`,\n startX,\n startY,\n `A 100 100 0`,\n largeArcFlag,\n 1,\n endX,\n endY,\n `L 0 0`,\n ];\n\n return Number.isNaN(endX) ? EMPTY : result.join(` `);\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {tuiControlPoint} from './control-point';\n\nexport function tuiDrawCurve(\n array: readonly TuiPoint[],\n index: number,\n smoothing: number,\n): string {\n const [cpsX, cpsY] = tuiControlPoint(\n array[index - 1],\n array[index - 2],\n array[index],\n false,\n smoothing,\n );\n const [cpeX, cpeY] = tuiControlPoint(\n array[index],\n array[index - 1],\n array[index + 1],\n true,\n smoothing,\n );\n\n return `C ${cpsX},${cpsY} ${cpeX},${cpeY} ${array[index][0]},${array[index][1]}`;\n}\n","export function tuiDrawLine(point: [number, number]): string {\n return `L ${point}`;\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {tuiDrawCurve} from './draw-curve';\nimport {tuiDrawLine} from './draw-line';\n\nconst COEFFICIENT = 500;\n\nexport function tuiDraw(\n array: readonly TuiPoint[],\n index: number,\n smoothing: number,\n): string {\n return smoothing\n ? tuiDrawCurve(array, index, smoothing / COEFFICIENT)\n : tuiDrawLine([array[index][0], array[index][1]]);\n}\n","import {Location as NgLocation} from '@angular/common';\n\n/** @deprecated */\nexport function tuiPrepareExternalUrl(\n locationNg: NgLocation,\n locationRef: Location,\n hash: string,\n): string {\n const url = locationNg\n .prepareExternalUrl(locationNg.path(false))\n .replace(locationRef.origin, ``);\n\n return `url(${url}#${hash})`;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taiga-ui/addon-charts",
3
- "version": "3.33.1",
3
+ "version": "3.34.0",
4
4
  "description": "Extension package for Taiga UI that adds various charts, graphs and related components.",
5
5
  "keywords": [
6
6
  "angular",
@@ -17,8 +17,8 @@
17
17
  "@angular/common": ">=12.0.0",
18
18
  "@angular/core": ">=12.0.0",
19
19
  "@ng-web-apis/common": ">=2.0.0",
20
- "@taiga-ui/cdk": ">=3.33.1",
21
- "@taiga-ui/core": ">=3.33.1",
20
+ "@taiga-ui/cdk": ">=3.34.0",
21
+ "@taiga-ui/core": ">=3.34.0",
22
22
  "@tinkoff/ng-polymorpheus": ">=4.0.0"
23
23
  },
24
24
  "main": "bundles/taiga-ui-addon-charts.umd.js",
@@ -1,2 +1,3 @@
1
1
  import { Location as NgLocation } from '@angular/common';
2
+ /** @deprecated */
2
3
  export declare function tuiPrepareExternalUrl(locationNg: NgLocation, locationRef: Location, hash: string): string;