@taiga-ui/addon-charts 2.28.0 → 2.32.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.
- package/README.md +4 -5
- package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js +19 -2
- package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-legend-item.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-legend-item.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js +5 -1
- package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-line-days-chart.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js +96 -20
- package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.min.js +2 -2
- package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js +2 -14
- package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-utils.umd.js +4 -2
- package/bundles/taiga-ui-addon-charts-utils.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-utils.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-utils.umd.min.js.map +1 -1
- package/components/legend-item/legend-item.component.d.ts +4 -1
- package/components/legend-item/taiga-ui-addon-charts-components-legend-item.metadata.json +1 -1
- package/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.metadata.json +1 -1
- package/components/pie-chart/index.d.ts +1 -0
- package/components/pie-chart/pie-chart.component.d.ts +4 -2
- package/components/pie-chart/pie-chart.directive.d.ts +7 -0
- package/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.metadata.json +1 -1
- package/components/ring-chart/ring-chart.component.d.ts +0 -2
- package/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.metadata.json +1 -1
- package/esm2015/components/legend-item/legend-item.component.js +21 -4
- package/esm2015/components/line-days-chart/line-days-chart.component.js +6 -2
- package/esm2015/components/pie-chart/index.js +2 -1
- package/esm2015/components/pie-chart/pie-chart.component.js +21 -11
- package/esm2015/components/pie-chart/pie-chart.directive.js +56 -0
- package/esm2015/components/pie-chart/pie-chart.module.js +11 -4
- package/esm2015/components/ring-chart/ring-chart.component.js +4 -12
- package/esm2015/utils/describe-sector.js +5 -3
- package/esm5/components/legend-item/legend-item.component.js +21 -4
- package/esm5/components/line-days-chart/line-days-chart.component.js +6 -2
- package/esm5/components/pie-chart/index.js +2 -1
- package/esm5/components/pie-chart/pie-chart.component.js +27 -16
- package/esm5/components/pie-chart/pie-chart.directive.js +66 -0
- package/esm5/components/pie-chart/pie-chart.module.js +11 -4
- package/esm5/components/ring-chart/ring-chart.component.js +4 -16
- package/esm5/utils/describe-sector.js +5 -3
- package/fesm2015/taiga-ui-addon-charts-components-legend-item.js +20 -3
- package/fesm2015/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js +5 -1
- package/fesm2015/taiga-ui-addon-charts-components-line-days-chart.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js +82 -15
- package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js +3 -11
- package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-utils.js +4 -2
- package/fesm2015/taiga-ui-addon-charts-utils.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-legend-item.js +20 -3
- package/fesm5/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-line-days-chart.js +5 -1
- package/fesm5/taiga-ui-addon-charts-components-line-days-chart.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-pie-chart.js +99 -21
- package/fesm5/taiga-ui-addon-charts-components-pie-chart.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-ring-chart.js +3 -15
- package/fesm5/taiga-ui-addon-charts-components-ring-chart.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-utils.js +4 -2
- package/fesm5/taiga-ui-addon-charts-utils.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-line-days-chart.js","sources":["ng://@taiga-ui/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts","ng://@taiga-ui/addon-charts/components/line-days-chart/line-days-chart.component.ts","ng://@taiga-ui/addon-charts/components/line-days-chart/line-days-chart.module.ts","ng://@taiga-ui/addon-charts/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n QueryList,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n EMPTY_QUERY,\n TuiContextWithImplicit,\n TuiDay,\n tuiDefaultProp,\n TuiDestroyService,\n tuiPure,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {HINT_HOVERED_CLASS, TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiLineDaysChartComponent} from './line-days-chart.component';\n\n@Directive({\n selector: '[tuiLineChartHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiLineDaysChartHintDirective {\n @ContentChildren(forwardRef(() => TuiLineDaysChartComponent))\n private readonly charts: QueryList<TuiLineDaysChartComponent> = EMPTY_QUERY;\n\n @Input('tuiLineChartHint')\n @tuiDefaultProp()\n hint: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> = '';\n\n constructor(\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n animationFrame$\n .pipe(\n throttleTime(200),\n map(() => !!nativeElement.querySelector(`.${HINT_HOVERED_CLASS}`)),\n startWith(false),\n distinctUntilChanged(),\n tuiZonefree(ngZone),\n filter(v => !v),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n this.charts.forEach(chart => chart.onHovered(null));\n });\n }\n\n getContext(day: TuiDay): TuiContextWithImplicit<ReadonlyArray<[TuiDay, number]>> {\n return this.computeContext(day, this.charts);\n }\n\n raise(day: TuiDay) {\n const current = this.charts\n .map(({value}) => find(value, day))\n .filter(([_, value]) => !isNaN(value));\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach((chart, index) => {\n chart.onHovered(day);\n chart.zIndex = Math.max(sorted.indexOf(current[index]), 0);\n });\n }\n\n @tuiPure\n private computeContext(\n day: TuiDay,\n charts: QueryList<TuiLineDaysChartComponent>,\n ): TuiContextWithImplicit<ReadonlyArray<[TuiDay, number]>> {\n return {\n $implicit: charts.map(({value}) => find(value, day)),\n };\n }\n}\n\nfunction find(value: ReadonlyArray<[TuiDay, number]>, current: TuiDay): [TuiDay, number] {\n return value.find(([day]) => day.daySame(current)) || [current, NaN];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {\n TuiLineChartComponent,\n TuiLineChartHintDirective,\n} from '@taiga-ui/addon-charts/components/line-chart';\nimport {\n EMPTY_ARRAY,\n EMPTY_QUERY,\n isPresent,\n TuiContextWithImplicit,\n TuiDay,\n tuiDefaultProp,\n TuiMonth,\n tuiPure,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiLineDaysChartHintDirective} from './line-days-chart-hint.directive';\n\nconst DUMMY: TuiPoint = [NaN, NaN];\n\n@Component({\n selector: 'tui-line-days-chart',\n templateUrl: './line-days-chart.template.html',\n styleUrls: ['./line-days-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TuiLineChartHintDirective,\n useExisting: forwardRef(() => TuiLineDaysChartComponent),\n },\n ],\n})\nexport class TuiLineDaysChartComponent {\n @ViewChildren(TuiLineChartComponent)\n private readonly charts: QueryList<TuiLineChartComponent> = EMPTY_QUERY;\n\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: ReadonlyArray<[TuiDay, number]>) {\n if (!value.length) {\n this.value = [];\n\n return;\n }\n\n const start = value[0][0];\n const mutable = [...value];\n const length = TuiDay.lengthBetween(start, value[value.length - 1][0]) + 1;\n\n this.value = Array.from({length}, (_, day) => {\n const currentDay = start.append({day});\n const shifted = currentDay.daySame(mutable[0][0]) ? mutable.shift() : null;\n const currentValue = shifted ? shifted[1] : NaN;\n\n return [currentDay, currentValue] as [TuiDay, number];\n });\n }\n\n @Input()\n @tuiDefaultProp()\n y = 0;\n\n @Input()\n @tuiDefaultProp()\n height = 0;\n\n @Input()\n @tuiDefaultProp()\n smoothingFactor = 0;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<[TuiDay, number]>> = '';\n\n @Input()\n @tuiDefaultProp()\n xStringify: TuiStringHandler<TuiDay> | null = null;\n\n @Input()\n @tuiDefaultProp()\n yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n dots = false;\n\n @HostBinding('style.zIndex')\n zIndex = 0;\n\n value: ReadonlyArray<[TuiDay, number]> = [];\n\n constructor(\n @Optional()\n @Inject(TuiLineDaysChartHintDirective)\n private readonly hintDirective: TuiLineDaysChartHintDirective | null,\n ) {}\n\n get months(): ReadonlyArray<ReadonlyArray<TuiPoint>> {\n return this.value.length ? this.breakMonths(this.value) : EMPTY_ARRAY;\n }\n\n get firstWidth(): number {\n return this.months.length * this.value[0][0].daysCount;\n }\n\n get hint(): PolymorpheusContent<TuiContextWithImplicit<any>> {\n return this.hintDirective ? this.hintDirective.hint : this.hintContent;\n }\n\n @tuiPure\n getHintContext(\n x: number,\n value: ReadonlyArray<[TuiDay, number]>,\n ): TuiContextWithImplicit<[TuiDay, number]> {\n return {\n $implicit: value[x - value[0][0].day + 1],\n };\n }\n\n readonly daysStringify: TuiStringHandler<number> = index =>\n this.xStringify ? this.xStringify(this.getMonth(index)) : '';\n\n getX(index: number): number {\n const current = this.getMonth(index);\n const months = TuiMonth.lengthBetween(this.value[0][0], current);\n const offset = months * current.daysCount;\n\n return index - offset;\n }\n\n onHovered(day: TuiDay | null) {\n if (!day) {\n this.charts.forEach(chart => chart.onHovered(NaN));\n\n return;\n }\n\n const index = TuiMonth.lengthBetween(this.value[0][0], day);\n const x = TuiDay.lengthBetween(this.value[0][0], day) + this.value[0][0].day - 1;\n const array = this.charts.toArray();\n const current = array[index];\n const {value} = current;\n\n array.forEach(chart => {\n if (chart === current) {\n current.onHovered(value.findIndex(point => point[0] === x));\n } else {\n chart.onHovered(NaN);\n }\n });\n }\n\n raise(index: number, {value}: TuiLineChartComponent) {\n const x = value[index][0];\n\n if (this.hintDirective) {\n this.hintDirective.raise(this.getMonth(x));\n }\n }\n\n getWidth(index: number): number {\n return this.getMonth(index).daysCount * this.months.length;\n }\n\n getContext(\n index: number,\n {value}: TuiLineChartComponent,\n ): TuiContextWithImplicit<any> {\n const x = value[index][0];\n\n return this.hintDirective\n ? this.hintDirective.getContext(this.getMonth(x))\n : this.getHintContext(x, this.value);\n }\n\n @tuiPure\n private breakMonths(\n value: ReadonlyArray<[TuiDay, number]>,\n ): ReadonlyArray<ReadonlyArray<TuiPoint>> {\n const offset = value[0][0].day - 1;\n\n return Array.from(\n {length: TuiMonth.lengthBetween(value[0][0], value[value.length - 1][0]) + 1},\n (_, i) => i + value[0][0].month + value[0][0].year * 12,\n )\n .map(absoluteMonth =>\n value\n .map<TuiPoint | null>(([{month, year}, y], index) =>\n month + year * 12 === absoluteMonth ? [index + offset, y] : null,\n )\n .filter(isPresent),\n )\n .map((month, index, array) =>\n index === array.length - 1\n ? month\n : [...month, array[index + 1].find(day => !isNaN(day[1])) || DUMMY],\n );\n }\n\n private getMonth(index: number): TuiDay {\n return this.value[index - this.value[0][0].day + 1][0];\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLineChartModule} from '@taiga-ui/addon-charts/components/line-chart';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiLineDaysChartComponent} from './line-days-chart.component';\nimport {TuiLineDaysChartHintDirective} from './line-days-chart-hint.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLineChartModule, PolymorpheusModule],\n declarations: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective],\n exports: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective],\n})\nexport class TuiLineDaysChartModule {}\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-line-days-chart.js","sources":["ng://@taiga-ui/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts","ng://@taiga-ui/addon-charts/components/line-days-chart/line-days-chart.component.ts","ng://@taiga-ui/addon-charts/components/line-days-chart/line-days-chart.module.ts","ng://@taiga-ui/addon-charts/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n QueryList,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n EMPTY_QUERY,\n TuiContextWithImplicit,\n TuiDay,\n tuiDefaultProp,\n TuiDestroyService,\n tuiPure,\n tuiZonefree,\n} from '@taiga-ui/cdk';\nimport {HINT_HOVERED_CLASS, TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable} from 'rxjs';\nimport {\n distinctUntilChanged,\n filter,\n map,\n startWith,\n takeUntil,\n throttleTime,\n} from 'rxjs/operators';\n\nimport {TuiLineDaysChartComponent} from './line-days-chart.component';\n\n@Directive({\n selector: '[tuiLineChartHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiLineDaysChartHintDirective {\n @ContentChildren(forwardRef(() => TuiLineDaysChartComponent))\n private readonly charts: QueryList<TuiLineDaysChartComponent> = EMPTY_QUERY;\n\n @Input('tuiLineChartHint')\n @tuiDefaultProp()\n hint: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> = '';\n\n constructor(\n @Inject(TuiDestroyService) destroy$: TuiDestroyService,\n @Inject(ElementRef) {nativeElement}: ElementRef<HTMLElement>,\n @Inject(NgZone) ngZone: NgZone,\n @Inject(ANIMATION_FRAME) animationFrame$: Observable<number>,\n ) {\n animationFrame$\n .pipe(\n throttleTime(200),\n map(() => !!nativeElement.querySelector(`.${HINT_HOVERED_CLASS}`)),\n startWith(false),\n distinctUntilChanged(),\n tuiZonefree(ngZone),\n filter(v => !v),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n this.charts.forEach(chart => chart.onHovered(null));\n });\n }\n\n getContext(day: TuiDay): TuiContextWithImplicit<ReadonlyArray<[TuiDay, number]>> {\n return this.computeContext(day, this.charts);\n }\n\n raise(day: TuiDay) {\n const current = this.charts\n .map(({value}) => find(value, day))\n .filter(([_, value]) => !isNaN(value));\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach((chart, index) => {\n chart.onHovered(day);\n chart.zIndex = Math.max(sorted.indexOf(current[index]), 0);\n });\n }\n\n @tuiPure\n private computeContext(\n day: TuiDay,\n charts: QueryList<TuiLineDaysChartComponent>,\n ): TuiContextWithImplicit<ReadonlyArray<[TuiDay, number]>> {\n return {\n $implicit: charts.map(({value}) => find(value, day)),\n };\n }\n}\n\nfunction find(value: ReadonlyArray<[TuiDay, number]>, current: TuiDay): [TuiDay, number] {\n return value.find(([day]) => day.daySame(current)) || [current, NaN];\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {\n TuiLineChartComponent,\n TuiLineChartHintDirective,\n} from '@taiga-ui/addon-charts/components/line-chart';\nimport {\n EMPTY_ARRAY,\n EMPTY_QUERY,\n isPresent,\n TuiContextWithImplicit,\n TuiDay,\n tuiDefaultProp,\n TuiMonth,\n tuiPure,\n TuiStringHandler,\n} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiLineDaysChartHintDirective} from './line-days-chart-hint.directive';\n\nconst DUMMY: TuiPoint = [NaN, NaN];\n\n@Component({\n selector: 'tui-line-days-chart',\n templateUrl: './line-days-chart.template.html',\n styleUrls: ['./line-days-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: TuiLineChartHintDirective,\n useExisting: forwardRef(() => TuiLineDaysChartComponent),\n },\n ],\n})\nexport class TuiLineDaysChartComponent {\n @ViewChildren(TuiLineChartComponent)\n private readonly charts: QueryList<TuiLineChartComponent> = EMPTY_QUERY;\n\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: ReadonlyArray<[TuiDay, number]>) {\n if (!value.length) {\n this.value = [];\n\n return;\n }\n\n const start = value[0][0];\n const mutable = [...value];\n const length = TuiDay.lengthBetween(start, value[value.length - 1][0]) + 1;\n\n this.value = Array.from({length}, (_, day) => {\n const currentDay = start.append({day});\n const shifted = currentDay.daySame(mutable[0][0]) ? mutable.shift() : null;\n const currentValue = shifted ? shifted[1] : NaN;\n\n return [currentDay, currentValue] as [TuiDay, number];\n });\n }\n\n @Input()\n @tuiDefaultProp()\n y = 0;\n\n @Input()\n @tuiDefaultProp()\n height = 0;\n\n @Input()\n @tuiDefaultProp()\n smoothingFactor = 0;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<[TuiDay, number]>> = '';\n\n @Input()\n @tuiDefaultProp()\n xStringify: TuiStringHandler<TuiDay> | null = null;\n\n @Input()\n @tuiDefaultProp()\n yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n dots = false;\n\n @HostBinding('style.zIndex')\n zIndex = 0;\n\n value: ReadonlyArray<[TuiDay, number]> = [];\n\n constructor(\n @Optional()\n @Inject(TuiLineDaysChartHintDirective)\n private readonly hintDirective: TuiLineDaysChartHintDirective | null,\n ) {}\n\n get months(): ReadonlyArray<ReadonlyArray<TuiPoint>> {\n return this.value.length ? this.breakMonths(this.value) : EMPTY_ARRAY;\n }\n\n get firstWidth(): number {\n return this.months.length * this.value[0][0].daysCount;\n }\n\n get hint(): PolymorpheusContent<TuiContextWithImplicit<any>> {\n return this.hintDirective ? this.hintDirective.hint : this.hintContent;\n }\n\n @tuiPure\n getHintContext(\n x: number,\n value: ReadonlyArray<[TuiDay, number]>,\n ): TuiContextWithImplicit<[TuiDay, number]> {\n return {\n $implicit: value[x - value[0][0].day + 1],\n };\n }\n\n readonly daysStringify: TuiStringHandler<number> = index =>\n this.xStringify ? this.xStringify(this.getMonth(index)) : '';\n\n getX(index: number): number {\n const current = this.getMonth(index);\n const months = TuiMonth.lengthBetween(this.value[0][0], current);\n const offset = months * current.daysCount;\n\n return index - offset;\n }\n\n onHovered(day: TuiDay | null) {\n if (!day) {\n this.charts.forEach(chart => chart.onHovered(NaN));\n\n return;\n }\n\n const index = TuiMonth.lengthBetween(this.value[0][0], day);\n const x = TuiDay.lengthBetween(this.value[0][0], day) + this.value[0][0].day - 1;\n const array = this.charts.toArray();\n const current = array[index];\n const {value} = current;\n\n array.forEach(chart => {\n if (chart === current) {\n current.onHovered(value.findIndex(point => point[0] === x));\n } else {\n chart.onHovered(NaN);\n }\n });\n }\n\n raise(index: number, {value}: TuiLineChartComponent) {\n const x = value[index][0];\n const month = this.getMonth(x);\n\n if (this.hintDirective) {\n this.hintDirective.raise(month);\n } else {\n this.onHovered(month);\n }\n }\n\n getWidth(index: number): number {\n return this.getMonth(index).daysCount * this.months.length;\n }\n\n getContext(\n index: number,\n {value}: TuiLineChartComponent,\n ): TuiContextWithImplicit<any> {\n const x = value[index][0];\n\n return this.hintDirective\n ? this.hintDirective.getContext(this.getMonth(x))\n : this.getHintContext(x, this.value);\n }\n\n @tuiPure\n private breakMonths(\n value: ReadonlyArray<[TuiDay, number]>,\n ): ReadonlyArray<ReadonlyArray<TuiPoint>> {\n const offset = value[0][0].day - 1;\n\n return Array.from(\n {length: TuiMonth.lengthBetween(value[0][0], value[value.length - 1][0]) + 1},\n (_, i) => i + value[0][0].month + value[0][0].year * 12,\n )\n .map(absoluteMonth =>\n value\n .map<TuiPoint | null>(([{month, year}, y], index) =>\n month + year * 12 === absoluteMonth ? [index + offset, y] : null,\n )\n .filter(isPresent),\n )\n .map((month, index, array) =>\n index === array.length - 1\n ? month\n : [...month, array[index + 1].find(day => !isNaN(day[1])) || DUMMY],\n );\n }\n\n private getMonth(index: number): TuiDay {\n return this.value[index - this.value[0][0].day + 1][0];\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiLineChartModule} from '@taiga-ui/addon-charts/components/line-chart';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiLineDaysChartComponent} from './line-days-chart.component';\nimport {TuiLineDaysChartHintDirective} from './line-days-chart-hint.directive';\n\n@NgModule({\n imports: [CommonModule, TuiLineChartModule, PolymorpheusModule],\n declarations: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective],\n exports: [TuiLineDaysChartComponent, TuiLineDaysChartHintDirective],\n})\nexport class TuiLineDaysChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { __spread, __decorate, __param } from 'tslib';
|
|
1
|
+
import { __spread, __decorate, __param, __read } from 'tslib';
|
|
2
2
|
import { Location, CommonModule } from '@angular/common';
|
|
3
|
-
import { EventEmitter, Inject, Input, HostBinding, Output, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
|
+
import { EventEmitter, Inject, Input, HostBinding, Output, Component, ChangeDetectionStrategy, ElementRef, NgZone, Directive, NgModule } from '@angular/core';
|
|
4
4
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
5
5
|
import { TUI_DEFAULT_COLOR_HANDLER } from '@taiga-ui/addon-charts/constants';
|
|
6
|
+
import { sum, TuiIdService, tuiDefaultProp, tuiPure, easeInOutQuad, clamp, tuiZonefree, TuiDestroyService, TuiRepeatTimesModule, TuiHoveredModule } from '@taiga-ui/cdk';
|
|
7
|
+
import { colorFallback, TUI_ANIMATIONS_DURATION, TuiPointerHintModule } from '@taiga-ui/core';
|
|
8
|
+
import { PERFORMANCE, ANIMATION_FRAME } from '@ng-web-apis/common';
|
|
6
9
|
import { describeSector } from '@taiga-ui/addon-charts/utils';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
10
|
+
import { BehaviorSubject, Observable } from 'rxjs';
|
|
11
|
+
import { pairwise, switchMap, map, takeWhile, takeUntil } from 'rxjs/operators';
|
|
9
12
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
10
13
|
|
|
11
14
|
var RADII = {
|
|
@@ -36,6 +39,13 @@ var TuiPieChartComponent = /** @class */ (function () {
|
|
|
36
39
|
this.activeItemIndexChange = new EventEmitter();
|
|
37
40
|
this.autoIdString = idService.generate();
|
|
38
41
|
}
|
|
42
|
+
Object.defineProperty(TuiPieChartComponent.prototype, "empty", {
|
|
43
|
+
get: function () {
|
|
44
|
+
return !this.getSum(this.value);
|
|
45
|
+
},
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true
|
|
48
|
+
});
|
|
39
49
|
Object.defineProperty(TuiPieChartComponent.prototype, "maskId", {
|
|
40
50
|
get: function () {
|
|
41
51
|
return 'tui-ring-chart-' + this.autoIdString;
|
|
@@ -66,9 +76,6 @@ var TuiPieChartComponent = /** @class */ (function () {
|
|
|
66
76
|
enumerable: true,
|
|
67
77
|
configurable: true
|
|
68
78
|
});
|
|
69
|
-
TuiPieChartComponent.prototype.getContentContext = function ($implicit) {
|
|
70
|
-
return { $implicit: $implicit };
|
|
71
|
-
};
|
|
72
79
|
TuiPieChartComponent.prototype.getTransform = function (index) {
|
|
73
80
|
var transform = this.masked
|
|
74
81
|
? "scale(" + TRANSFORM[this.size] + ")"
|
|
@@ -84,17 +91,22 @@ var TuiPieChartComponent = /** @class */ (function () {
|
|
|
84
91
|
TuiPieChartComponent.prototype.getColor = function (index) {
|
|
85
92
|
return this.sanitizer.bypassSecurityTrustStyle("var(--tui-chart-" + index + ", " + colorFallback(this.colorHandler(index)) + ")");
|
|
86
93
|
};
|
|
94
|
+
TuiPieChartComponent.prototype.getSum = function (value) {
|
|
95
|
+
return sum.apply(void 0, __spread(value));
|
|
96
|
+
};
|
|
87
97
|
TuiPieChartComponent.prototype.getSegments = function (value) {
|
|
88
|
-
var
|
|
98
|
+
var _this = this;
|
|
89
99
|
return value
|
|
90
|
-
.map(function (
|
|
91
|
-
return array.reduce(function (sum,
|
|
92
|
-
return index < currentIndex ? (item / total) * 360 + sum : sum;
|
|
93
|
-
}, (currentItem / total) * 360);
|
|
100
|
+
.map(function (initial, i, array) {
|
|
101
|
+
return array.reduce(function (sum, current, j) { return (j < i ? _this.getDeg(current) + sum : sum); }, _this.getDeg(initial));
|
|
94
102
|
})
|
|
95
|
-
.map(function (angle, index, array) {
|
|
96
|
-
|
|
97
|
-
|
|
103
|
+
.map(function (angle, index, array) { return [
|
|
104
|
+
array[index - 1] || 0,
|
|
105
|
+
Math.min(angle, 359.9999),
|
|
106
|
+
]; });
|
|
107
|
+
};
|
|
108
|
+
TuiPieChartComponent.prototype.getDeg = function (value) {
|
|
109
|
+
return 360 * (value / this.getSum(this.value));
|
|
98
110
|
};
|
|
99
111
|
TuiPieChartComponent.prototype.updateActiveItemIndex = function (index) {
|
|
100
112
|
if (index === this.activeItemIndex) {
|
|
@@ -136,18 +148,21 @@ var TuiPieChartComponent = /** @class */ (function () {
|
|
|
136
148
|
__decorate([
|
|
137
149
|
Output()
|
|
138
150
|
], TuiPieChartComponent.prototype, "activeItemIndexChange", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
HostBinding('class._empty')
|
|
153
|
+
], TuiPieChartComponent.prototype, "empty", null);
|
|
139
154
|
__decorate([
|
|
140
155
|
tuiPure
|
|
141
|
-
], TuiPieChartComponent.prototype, "
|
|
156
|
+
], TuiPieChartComponent.prototype, "getSum", null);
|
|
142
157
|
__decorate([
|
|
143
158
|
tuiPure
|
|
144
159
|
], TuiPieChartComponent.prototype, "getSegments", null);
|
|
145
160
|
TuiPieChartComponent = __decorate([
|
|
146
161
|
Component({
|
|
147
162
|
selector: 'tui-pie-chart',
|
|
148
|
-
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
|
|
163
|
+
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 x=\"-200\" y=\"-200\" width=\"400\" height=\"400\" fill=\"white\" />\n <circle cx=\"0\" cy=\"0\" [attr.r]=\"radius\" />\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <circle cx=\"0\" cy=\"0\" r=\"100\" class=\"t-placeholder\" />\n <path\n *tuiRepeatTimes=\"let index of segments.length\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintMode=\"onDark\"\n tuiHintDirection=\"top-right\"\n d=\"\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [style.color]=\"getColor(index)\"\n [tuiPieChart]=\"segments[index]\"\n [tuiPointerHint]=\"getHint(hint)\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n >\n <ng-template #hint>\n <ng-container\n *ngTemplateOutlet=\"template; context: {$implicit: index}\"\n ></ng-container>\n </ng-template>\n </path>\n </g>\n</svg>\n<ng-template #template let-index>\n <div\n polymorpheus-outlet\n class=\"t-text\"\n [content]=\"hintContent\"\n [context]=\"{$implicit: index}\"\n ></div>\n</ng-template>\n",
|
|
149
164
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
150
|
-
styles: [":host{position:relative;display:block}:host[data-tui-host-size=xs]{width:2rem;height:2rem;pointer-events:none}:host[data-tui-host-size='s']{width:4rem;height:4rem}:host[data-tui-host-size='m']{width:9rem;height:9rem}:host[data-tui-host-size='l']{width:11rem;height:11rem}:host[data-tui-host-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,300ms);transition-timing-function:ease-in-out}.t-text{white-space:pre-wrap}"]
|
|
165
|
+
styles: [":host{position:relative;display:block}:host[data-tui-host-size=xs]{width:2rem;height:2rem;pointer-events:none}:host[data-tui-host-size='s']{width:4rem;height:4rem}:host[data-tui-host-size='m']{width:9rem;height:9rem}:host[data-tui-host-size='l']{width:11rem;height:11rem}:host[data-tui-host-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,300ms);transition-timing-function:ease-in-out}:host._empty .t-segment{display:none}.t-placeholder{fill:var(--tui-base-03)}.t-text{white-space:pre-wrap}"]
|
|
151
166
|
}),
|
|
152
167
|
__param(0, Inject(TuiIdService)),
|
|
153
168
|
__param(1, Inject(Location)),
|
|
@@ -156,13 +171,76 @@ var TuiPieChartComponent = /** @class */ (function () {
|
|
|
156
171
|
return TuiPieChartComponent;
|
|
157
172
|
}());
|
|
158
173
|
|
|
174
|
+
// @dynamic
|
|
175
|
+
var TuiPieChartDirective = /** @class */ (function () {
|
|
176
|
+
function TuiPieChartDirective(_a, ngZone, destroy$, performance, animationFrame$, duration) {
|
|
177
|
+
var nativeElement = _a.nativeElement;
|
|
178
|
+
this.sector$ = new BehaviorSubject([0, 0]);
|
|
179
|
+
this.sector$
|
|
180
|
+
.pipe(pairwise(), switchMap(function (_a) {
|
|
181
|
+
var _b = __read(_a, 2), prev = _b[0], cur = _b[1];
|
|
182
|
+
var now = performance.now();
|
|
183
|
+
var startDelta = cur[0] - prev[0];
|
|
184
|
+
var endDelta = cur[1] - prev[1];
|
|
185
|
+
return animationFrame$.pipe(map(function (timestamp) {
|
|
186
|
+
return easeInOutQuad(clamp((timestamp - now) / duration, 0, 1));
|
|
187
|
+
}), takeWhile(function (progress) { return progress < 1; }, true), map(function (progress) { return [
|
|
188
|
+
prev[0] + startDelta * progress,
|
|
189
|
+
cur[1] > 359 ? cur[1] : prev[1] + endDelta * progress,
|
|
190
|
+
]; }));
|
|
191
|
+
}), tuiZonefree(ngZone), takeUntil(destroy$))
|
|
192
|
+
.subscribe(function (_a) {
|
|
193
|
+
var _b = __read(_a, 2), start = _b[0], end = _b[1];
|
|
194
|
+
nativeElement.setAttribute('d', describeSector(start, end));
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
Object.defineProperty(TuiPieChartDirective.prototype, "tuiPieChart", {
|
|
198
|
+
set: function (sector) {
|
|
199
|
+
this.sector$.next(sector);
|
|
200
|
+
},
|
|
201
|
+
enumerable: true,
|
|
202
|
+
configurable: true
|
|
203
|
+
});
|
|
204
|
+
TuiPieChartDirective.ctorParameters = function () { return [
|
|
205
|
+
{ type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },
|
|
206
|
+
{ type: NgZone, decorators: [{ type: Inject, args: [NgZone,] }] },
|
|
207
|
+
{ type: Observable, decorators: [{ type: Inject, args: [TuiDestroyService,] }] },
|
|
208
|
+
{ type: Performance, decorators: [{ type: Inject, args: [PERFORMANCE,] }] },
|
|
209
|
+
{ type: Observable, decorators: [{ type: Inject, args: [ANIMATION_FRAME,] }] },
|
|
210
|
+
{ type: Number, decorators: [{ type: Inject, args: [TUI_ANIMATIONS_DURATION,] }] }
|
|
211
|
+
]; };
|
|
212
|
+
__decorate([
|
|
213
|
+
Input(),
|
|
214
|
+
tuiDefaultProp()
|
|
215
|
+
], TuiPieChartDirective.prototype, "tuiPieChart", null);
|
|
216
|
+
TuiPieChartDirective = __decorate([
|
|
217
|
+
Directive({
|
|
218
|
+
selector: 'path[tuiPieChart]',
|
|
219
|
+
providers: [TuiDestroyService],
|
|
220
|
+
}),
|
|
221
|
+
__param(0, Inject(ElementRef)),
|
|
222
|
+
__param(1, Inject(NgZone)),
|
|
223
|
+
__param(2, Inject(TuiDestroyService)),
|
|
224
|
+
__param(3, Inject(PERFORMANCE)),
|
|
225
|
+
__param(4, Inject(ANIMATION_FRAME)),
|
|
226
|
+
__param(5, Inject(TUI_ANIMATIONS_DURATION))
|
|
227
|
+
], TuiPieChartDirective);
|
|
228
|
+
return TuiPieChartDirective;
|
|
229
|
+
}());
|
|
230
|
+
|
|
159
231
|
var TuiPieChartModule = /** @class */ (function () {
|
|
160
232
|
function TuiPieChartModule() {
|
|
161
233
|
}
|
|
162
234
|
TuiPieChartModule = __decorate([
|
|
163
235
|
NgModule({
|
|
164
|
-
imports: [
|
|
165
|
-
|
|
236
|
+
imports: [
|
|
237
|
+
CommonModule,
|
|
238
|
+
TuiRepeatTimesModule,
|
|
239
|
+
TuiHoveredModule,
|
|
240
|
+
PolymorpheusModule,
|
|
241
|
+
TuiPointerHintModule,
|
|
242
|
+
],
|
|
243
|
+
declarations: [TuiPieChartComponent, TuiPieChartDirective],
|
|
166
244
|
exports: [TuiPieChartComponent],
|
|
167
245
|
})
|
|
168
246
|
], TuiPieChartModule);
|
|
@@ -173,5 +251,5 @@ var TuiPieChartModule = /** @class */ (function () {
|
|
|
173
251
|
* Generated bundle index. Do not edit.
|
|
174
252
|
*/
|
|
175
253
|
|
|
176
|
-
export { TuiPieChartComponent, TuiPieChartModule };
|
|
254
|
+
export { TuiPieChartComponent, TuiPieChartDirective, TuiPieChartModule };
|
|
177
255
|
//# sourceMappingURL=taiga-ui-addon-charts-components-pie-chart.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-pie-chart.js","sources":["ng://@taiga-ui/addon-charts/components/pie-chart/pie-chart.component.ts","ng://@taiga-ui/addon-charts/components/pie-chart/pie-chart.module.ts","ng://@taiga-ui/addon-charts/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.ts"],"sourcesContent":["import {Location} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {DomSanitizer, SafeValue} from '@angular/platform-browser';\nimport {TUI_DEFAULT_COLOR_HANDLER} from '@taiga-ui/addon-charts/constants';\nimport {TuiColorHandler} from '@taiga-ui/addon-charts/types';\nimport {describeSector} from '@taiga-ui/addon-charts/utils';\nimport {\n sum,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {colorFallback, TuiSizeXL, TuiSizeXS} 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// TODO: Remove sanitizer when Angular version is bumped\n@Component({\n selector: 'tui-pie-chart',\n templateUrl: './pie-chart.template.html',\n styleUrls: ['./pie-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeXS | TuiSizeXL = 'm';\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n masked = false;\n\n @Input()\n @tuiDefaultProp()\n activeItemIndex = NaN;\n\n @Output()\n activeItemIndexChange = new EventEmitter<number>();\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(Location) private readonly locationRef: Location,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n ) {\n this.autoIdString = idService.generate();\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 ? `url(${this.locationRef.prepareExternalUrl(this.locationRef.path())}#${\n this.maskId\n })`\n : null;\n }\n\n get radius(): string {\n return RADII[this.size];\n }\n\n get segments(): readonly string[] {\n return this.getSegments(this.value);\n }\n\n @tuiPure\n getContentContext($implicit: number): TuiContextWithImplicit<number> {\n return {$implicit};\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 getHint(hint: PolymorpheusContent): PolymorpheusContent {\n return this.hintContent ? hint : '';\n }\n\n onHovered(hovered: boolean, index: number) {\n this.updateActiveItemIndex(hovered ? index : NaN);\n }\n\n getColor(index: number): SafeValue {\n return this.sanitizer.bypassSecurityTrustStyle(\n `var(--tui-chart-${index}, ${colorFallback(this.colorHandler(index))})`,\n );\n }\n\n @tuiPure\n private getSegments(value: readonly number[]): readonly string[] {\n const total = sum(...value);\n\n return value\n .map((currentItem, currentIndex, array) =>\n array.reduce(\n (sum, item, index) =>\n index < currentIndex ? (item / total) * 360 + sum : sum,\n (currentItem / total) * 360,\n ),\n )\n .map((angle, index, array) =>\n describeSector(array[index - 1] || 0, Math.min(angle, 359.9999)),\n );\n }\n\n private updateActiveItemIndex(index: number) {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiHoveredModule} from '@taiga-ui/cdk';\nimport {TuiPointerHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\n\nimport {TuiPieChartComponent} from './pie-chart.component';\n\n@NgModule({\n imports: [CommonModule, TuiHoveredModule, PolymorpheusModule, TuiPointerHintModule],\n declarations: [TuiPieChartComponent],\n exports: [TuiPieChartComponent],\n})\nexport class TuiPieChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAwBA,IAAM,KAAK,GAAG;IACV,EAAE,EAAE,IAAI;IACR,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,MAAM;IACT,CAAC,EAAE,MAAM;IACT,EAAE,EAAE,MAAM;CACb,CAAC;AACF,IAAM,SAAS,GAAG;IACd,EAAE,EAAE,IAAI;IACR,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,CAAC,EAAE,IAAI;IACP,EAAE,EAAE,IAAI;CACX,CAAC;AAEF;;IAsCI,8BAC0B,SAAuB,EACV,WAAqB,EACjB,SAAuB;QAD3B,gBAAW,GAAX,WAAW,CAAU;QACjB,cAAS,GAAT,SAAS,CAAc;QA7BlE,UAAK,GAAsB,EAAE,CAAC;QAK9B,SAAI,GAA0B,GAAG,CAAC;QAIlC,iBAAY,GAAoB,yBAAyB,CAAC;QAI1D,gBAAW,GAAwD,EAAE,CAAC;QAItE,WAAM,GAAG,KAAK,CAAC;QAIf,oBAAe,GAAG,GAAG,CAAC;QAGtB,0BAAqB,GAAG,IAAI,YAAY,EAAU,CAAC;QAO/C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC5C;IAED,sBAAI,wCAAM;aAAV;YACI,OAAO,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC;SAChD;;;OAAA;IAED,sBAAI,sCAAI;aAAR;YACI,OAAO,IAAI,CAAC,MAAM;kBACZ,SAAO,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,SAC/D,IAAI,CAAC,MAAM,MACZ;kBACH,IAAI,CAAC;SACd;;;OAAA;IAED,sBAAI,wCAAM;aAAV;YACI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3B;;;OAAA;IAED,sBAAI,0CAAQ;aAAZ;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACvC;;;OAAA;IAGD,gDAAiB,GAAjB,UAAkB,SAAiB;QAC/B,OAAO,EAAC,SAAS,WAAA,EAAC,CAAC;KACtB;IAED,2CAAY,GAAZ,UAAa,KAAa;QACtB,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM;cACvB,WAAS,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAG;cAChC,WAAS,SAAS,CAAC,IAAI,CAAC,MAAG,CAAC;QAElC,OAAO,KAAK,KAAK,IAAI,CAAC,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;KAC5D;IAED,sCAAO,GAAP,UAAQ,IAAyB;QAC7B,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;KACvC;IAED,wCAAS,GAAT,UAAU,OAAgB,EAAE,KAAa;QACrC,IAAI,CAAC,qBAAqB,CAAC,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;KACrD;IAED,uCAAQ,GAAR,UAAS,KAAa;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAC1C,qBAAmB,KAAK,UAAK,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,MAAG,CAC1E,CAAC;KACL;IAGO,0CAAW,GAAnB,UAAoB,KAAwB;QACxC,IAAM,KAAK,GAAG,GAAG,wBAAI,KAAK,EAAC,CAAC;QAE5B,OAAO,KAAK;aACP,GAAG,CAAC,UAAC,WAAW,EAAE,YAAY,EAAE,KAAK;YAClC,OAAA,KAAK,CAAC,MAAM,CACR,UAAC,GAAG,EAAE,IAAI,EAAE,KAAK;gBACb,OAAA,KAAK,GAAG,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG;aAAA,EAC3D,CAAC,WAAW,GAAG,KAAK,IAAI,GAAG,CAC9B;SAAA,CACJ;aACA,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK,EAAE,KAAK;YACrB,OAAA,cAAc,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;SAAA,CACnE,CAAC;KACT;IAEO,oDAAqB,GAA7B,UAA8B,KAAa;QACvC,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;YAChC,OAAO;SACV;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;;gBA9EoC,YAAY,uBAA5C,MAAM,SAAC,YAAY;gBAC4B,QAAQ,uBAAvD,MAAM,SAAC,QAAQ;gBACkC,YAAY,uBAA7D,MAAM,SAAC,YAAY;;IA7BxB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uDACa;IAK9B;QAHC,KAAK,EAAE;QACP,WAAW,CAAC,yBAAyB,CAAC;QACtC,cAAc,EAAE;sDACiB;IAIlC;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;8DACyC;IAI1D;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;6DACqD;IAItE;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;iEACK;IAGtB;QADC,MAAM,EAAE;uEAC0C;IA+BnD;QADC,OAAO;iEAGP;IAyBD;QADC,OAAO;2DAeP;IArGQ,oBAAoB;QANhC,SAAS,CAAC;YACP,QAAQ,EAAE,eAAe;YACzB,mhDAAwC;YAExC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;QAiCO,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;QACpB,WAAA,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;OAlChB,oBAAoB,CA+GhC;IAAD,2BAAC;CA/GD;;;ICjCA;KAAiC;IAApB,iBAAiB;QAL7B,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC;YACnF,YAAY,EAAE,CAAC,oBAAoB,CAAC;YACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC;OACW,iBAAiB,CAAG;IAAD,wBAAC;CAAjC;;ACbA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-pie-chart.js","sources":["ng://@taiga-ui/addon-charts/components/pie-chart/pie-chart.component.ts","ng://@taiga-ui/addon-charts/components/pie-chart/pie-chart.directive.ts","ng://@taiga-ui/addon-charts/components/pie-chart/pie-chart.module.ts","ng://@taiga-ui/addon-charts/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.ts"],"sourcesContent":["import {Location} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n Output,\n} from '@angular/core';\nimport {DomSanitizer, SafeValue} from '@angular/platform-browser';\nimport {TUI_DEFAULT_COLOR_HANDLER} from '@taiga-ui/addon-charts/constants';\nimport {TuiColorHandler} from '@taiga-ui/addon-charts/types';\nimport {\n sum,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {colorFallback, TuiSizeXL, TuiSizeXS} 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// TODO: Remove sanitizer when Angular version is bumped\n@Component({\n selector: 'tui-pie-chart',\n templateUrl: './pie-chart.template.html',\n styleUrls: ['./pie-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\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-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeXS | TuiSizeXL = 'm';\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n masked = false;\n\n @Input()\n @tuiDefaultProp()\n activeItemIndex = NaN;\n\n @Output()\n activeItemIndexChange = new EventEmitter<number>();\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(Location) private readonly locationRef: Location,\n @Inject(DomSanitizer) private readonly sanitizer: DomSanitizer,\n ) {\n this.autoIdString = idService.generate();\n }\n\n @HostBinding('class._empty')\n get empty(): boolean {\n return !this.getSum(this.value);\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 ? `url(${this.locationRef.prepareExternalUrl(this.locationRef.path())}#${\n this.maskId\n })`\n : null;\n }\n\n get radius(): string {\n return RADII[this.size];\n }\n\n get segments(): readonly [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 getHint(hint: PolymorpheusContent): PolymorpheusContent {\n return this.hintContent ? hint : '';\n }\n\n onHovered(hovered: boolean, index: number) {\n this.updateActiveItemIndex(hovered ? index : NaN);\n }\n\n getColor(index: number): SafeValue {\n return this.sanitizer.bypassSecurityTrustStyle(\n `var(--tui-chart-${index}, ${colorFallback(this.colorHandler(index))})`,\n );\n }\n\n @tuiPure\n private getSum(value: readonly number[]): number {\n return sum(...value);\n }\n\n @tuiPure\n private getSegments(value: readonly number[]): readonly [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) {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\n","import {Directive, ElementRef, Inject, Input, NgZone} from '@angular/core';\nimport {ANIMATION_FRAME, PERFORMANCE} from '@ng-web-apis/common';\nimport {describeSector} from '@taiga-ui/addon-charts/utils';\nimport {\n clamp,\n easeInOutQuad,\n tuiDefaultProp,\n TuiDestroyService,\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// @dynamic\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 @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 easeInOutQuad(clamp((timestamp - now) / duration, 0, 1)),\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', describeSector(start, end));\n });\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiHoveredModule, TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiPointerHintModule} 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 TuiPointerHintModule,\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":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
2
|
import { EventEmitter, Input, HostBinding, Output, Component, ChangeDetectionStrategy, NgModule } from '@angular/core';
|
|
3
3
|
import { TUI_DEFAULT_COLOR_HANDLER } from '@taiga-ui/addon-charts/constants';
|
|
4
|
-
import { tuiDefaultProp
|
|
4
|
+
import { tuiDefaultProp } from '@taiga-ui/cdk';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
6
|
import { TuiPieChartModule } from '@taiga-ui/addon-charts/components/pie-chart';
|
|
7
7
|
import { PolymorpheusModule } from '@tinkoff/ng-polymorpheus';
|
|
8
8
|
|
|
9
|
+
// TODO: Refactor to use ng-content
|
|
9
10
|
var TuiRingChartComponent = /** @class */ (function () {
|
|
10
11
|
function TuiRingChartComponent() {
|
|
11
12
|
this.value = [];
|
|
@@ -23,19 +24,9 @@ var TuiRingChartComponent = /** @class */ (function () {
|
|
|
23
24
|
enumerable: true,
|
|
24
25
|
configurable: true
|
|
25
26
|
});
|
|
26
|
-
Object.defineProperty(TuiRingChartComponent.prototype, "contentContext", {
|
|
27
|
-
get: function () {
|
|
28
|
-
return this.getContentContext(this.activeItemIndex, this.value);
|
|
29
|
-
},
|
|
30
|
-
enumerable: true,
|
|
31
|
-
configurable: true
|
|
32
|
-
});
|
|
33
27
|
TuiRingChartComponent.prototype.onActiveItemIndexChange = function (index) {
|
|
34
28
|
this.updateActiveItemIndex(index);
|
|
35
29
|
};
|
|
36
|
-
TuiRingChartComponent.prototype.getContentContext = function ($implicit, value) {
|
|
37
|
-
return { $implicit: $implicit, value: value };
|
|
38
|
-
};
|
|
39
30
|
TuiRingChartComponent.prototype.updateActiveItemIndex = function (index) {
|
|
40
31
|
if (index === this.activeItemIndex) {
|
|
41
32
|
return;
|
|
@@ -71,13 +62,10 @@ var TuiRingChartComponent = /** @class */ (function () {
|
|
|
71
62
|
__decorate([
|
|
72
63
|
Output()
|
|
73
64
|
], TuiRingChartComponent.prototype, "activeItemIndexChange", void 0);
|
|
74
|
-
__decorate([
|
|
75
|
-
tuiPure
|
|
76
|
-
], TuiRingChartComponent.prototype, "getContentContext", null);
|
|
77
65
|
TuiRingChartComponent = __decorate([
|
|
78
66
|
Component({
|
|
79
67
|
selector: 'tui-ring-chart',
|
|
80
|
-
template: "<div *ngIf=\"hasContent\" class=\"t-content\">\n <div\n polymorpheus-outlet\n automation-id=\"tui-ring-chart__content\"\n class=\"t-wrapper\"\n [content]=\"content\"\n [context]=\"
|
|
68
|
+
template: "<div *ngIf=\"hasContent\" class=\"t-content\">\n <div\n polymorpheus-outlet\n automation-id=\"tui-ring-chart__content\"\n class=\"t-wrapper\"\n [content]=\"content\"\n [context]=\"{$implicit: activeItemIndex, value: value}\"\n ></div>\n</div>\n\n<tui-pie-chart\n [masked]=\"true\"\n [value]=\"value\"\n [colorHandler]=\"colorHandler\"\n [size]=\"size\"\n [activeItemIndex]=\"activeItemIndex\"\n (activeItemIndexChange)=\"onActiveItemIndexChange($event)\"\n></tui-pie-chart>\n\n<div class=\"t-shield\"></div>\n",
|
|
81
69
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
82
70
|
styles: [":host{position:relative;display:block}:host[data-tui-host-size='s']{width:4rem;height:4rem}:host[data-tui-host-size='m']{width:9rem;height:9rem}:host[data-tui-host-size='l']{width:11rem;height:11rem}:host[data-tui-host-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-tui-host-size='m'] .t-content{font:var(--tui-font-text-xs)}.t-wrapper:first-line{color:var(--tui-text-01)}:host[data-tui-host-size='l'] .t-wrapper:first-line{font:var(--tui-font-text-l);font-weight:700}:host[data-tui-host-size='m'] .t-wrapper:first-line{font:var(--tui-font-text-m);font-weight:700}.t-shield{position:absolute;top:25%;left:25%;right:25%;bottom:25%;border-radius:100%}"]
|
|
83
71
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-ring-chart.js","sources":["ng://@taiga-ui/addon-charts/components/ring-chart/ring-chart.component.ts","ng://@taiga-ui/addon-charts/components/ring-chart/ring-chart.module.ts","ng://@taiga-ui/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 {TUI_DEFAULT_COLOR_HANDLER} from '@taiga-ui/addon-charts/constants';\nimport {TuiRingChartContext} from '@taiga-ui/addon-charts/interfaces';\nimport {TuiColorHandler} from '@taiga-ui/addon-charts/types';\nimport {tuiDefaultProp
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-ring-chart.js","sources":["ng://@taiga-ui/addon-charts/components/ring-chart/ring-chart.component.ts","ng://@taiga-ui/addon-charts/components/ring-chart/ring-chart.module.ts","ng://@taiga-ui/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 {TUI_DEFAULT_COLOR_HANDLER} from '@taiga-ui/addon-charts/constants';\nimport {TuiRingChartContext} from '@taiga-ui/addon-charts/interfaces';\nimport {TuiColorHandler} from '@taiga-ui/addon-charts/types';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {TuiSizeS, TuiSizeXL} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\n// TODO: Refactor to use ng-content\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-tui-host-size')\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeXL = 'm';\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n content: PolymorpheusContent<TuiRingChartContext> = '';\n\n @Input()\n @tuiDefaultProp()\n masked = true;\n\n @Input()\n @tuiDefaultProp()\n activeItemIndex = NaN;\n\n @Output()\n activeItemIndexChange = new EventEmitter<number>();\n\n get hasContent(): boolean {\n return this.size !== 's' && !!this.content;\n }\n\n onActiveItemIndexChange(index: number) {\n this.updateActiveItemIndex(index);\n }\n\n private updateActiveItemIndex(index: number) {\n if (index === this.activeItemIndex) {\n return;\n }\n\n this.activeItemIndex = index;\n this.activeItemIndexChange.next(index);\n }\n}\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":";;;;;;;;AAeA;;IAOA;QAGI,UAAK,GAAsB,EAAE,CAAC;QAK9B,SAAI,GAAyB,GAAG,CAAC;QAIjC,iBAAY,GAAoB,yBAAyB,CAAC;QAI1D,YAAO,GAA6C,EAAE,CAAC;QAIvD,WAAM,GAAG,IAAI,CAAC;QAId,oBAAe,GAAG,GAAG,CAAC;QAGtB,0BAAqB,GAAG,IAAI,YAAY,EAAU,CAAC;KAkBtD;IAhBG,sBAAI,6CAAU;aAAd;YACI,OAAO,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;SAC9C;;;OAAA;IAED,uDAAuB,GAAvB,UAAwB,KAAa;QACjC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;KACrC;IAEO,qDAAqB,GAA7B,UAA8B,KAAa;QACvC,IAAI,KAAK,KAAK,IAAI,CAAC,eAAe,EAAE;YAChC,OAAO;SACV;QAED,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1C;IAzCD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACa;IAK9B;QAHC,KAAK,EAAE;QACP,WAAW,CAAC,yBAAyB,CAAC;QACtC,cAAc,EAAE;uDACgB;IAIjC;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;+DACyC;IAI1D;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACsC;IAIvD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;yDACH;IAId;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;kEACK;IAGtB;QADC,MAAM,EAAE;wEAC0C;IA3B1C,qBAAqB;QANjC,SAAS,CAAC;YACP,QAAQ,EAAE,gBAAgB;YAC1B,okBAAyC;YAEzC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;OACW,qBAAqB,CA6CjC;IAAD,4BAAC;CA7CD;;;ICVA;KAAkC;IAArB,kBAAkB;QAL9B,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;YAC9D,YAAY,EAAE,CAAC,qBAAqB,CAAC;YACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;SACnC,CAAC;OACW,kBAAkB,CAAG;IAAD,yBAAC;CAAlC;;ACZA;;;;;;"}
|
|
@@ -25,6 +25,7 @@ function controlPoint(current, previous, next, reverse, smoothing) {
|
|
|
25
25
|
return [x, y];
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
var EMPTY = 'M 100 0 A 100 100 0 1 1 100 0 L 0 0';
|
|
28
29
|
/**
|
|
29
30
|
* Describes a normalized sector by angles. Normalized meaning it supposed to work with
|
|
30
31
|
* SVG with viewBox="-1 -1 2 2" so that 0 coordinates in cartesian and polar match the same spot.
|
|
@@ -42,7 +43,7 @@ function describeSector(startAngle, endAngle) {
|
|
|
42
43
|
var endX = Math.cos(endRad) * 100;
|
|
43
44
|
var endY = Math.sin(endRad) * 100;
|
|
44
45
|
var largeArcFlag = toInt(endAngle - startAngle > 180);
|
|
45
|
-
|
|
46
|
+
var result = [
|
|
46
47
|
'M',
|
|
47
48
|
startX,
|
|
48
49
|
startY,
|
|
@@ -52,7 +53,8 @@ function describeSector(startAngle, endAngle) {
|
|
|
52
53
|
endX,
|
|
53
54
|
endY,
|
|
54
55
|
'L 0 0',
|
|
55
|
-
]
|
|
56
|
+
];
|
|
57
|
+
return isNaN(endX) ? EMPTY : result.join(' ');
|
|
56
58
|
}
|
|
57
59
|
|
|
58
60
|
function drawCurve(array, index, smoothing) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-utils.js","sources":["ng://@taiga-ui/addon-charts/utils/line-angle.ts","ng://@taiga-ui/addon-charts/utils/line-length.ts","ng://@taiga-ui/addon-charts/utils/control-point.ts","ng://@taiga-ui/addon-charts/utils/describe-sector.ts","ng://@taiga-ui/addon-charts/utils/draw-curve.ts","ng://@taiga-ui/addon-charts/utils/draw-line.ts","ng://@taiga-ui/addon-charts/utils/draw.ts","ng://@taiga-ui/addon-charts/utils/taiga-ui-addon-charts-utils.ts"],"sourcesContent":["import {TuiPoint} from '@taiga-ui/core';\n\nexport function lineAngle(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 lineLength(a: TuiPoint, b: TuiPoint): number {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {lineAngle} from './line-angle';\nimport {lineLength} from './line-length';\n\nexport function controlPoint(\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 = lineAngle(p, n) + (reverse ? Math.PI : 0);\n const length = lineLength(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 {toInt, toRadians} from '@taiga-ui/cdk';\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 describeSector(startAngle: number, endAngle: number): string {\n const startRad = toRadians(startAngle);\n const endRad = toRadians(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 = toInt(endAngle - startAngle > 180);\n
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-utils.js","sources":["ng://@taiga-ui/addon-charts/utils/line-angle.ts","ng://@taiga-ui/addon-charts/utils/line-length.ts","ng://@taiga-ui/addon-charts/utils/control-point.ts","ng://@taiga-ui/addon-charts/utils/describe-sector.ts","ng://@taiga-ui/addon-charts/utils/draw-curve.ts","ng://@taiga-ui/addon-charts/utils/draw-line.ts","ng://@taiga-ui/addon-charts/utils/draw.ts","ng://@taiga-ui/addon-charts/utils/taiga-ui-addon-charts-utils.ts"],"sourcesContent":["import {TuiPoint} from '@taiga-ui/core';\n\nexport function lineAngle(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 lineLength(a: TuiPoint, b: TuiPoint): number {\n const x = b[0] - a[0];\n const y = b[1] - a[1];\n\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {lineAngle} from './line-angle';\nimport {lineLength} from './line-length';\n\nexport function controlPoint(\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 = lineAngle(p, n) + (reverse ? Math.PI : 0);\n const length = lineLength(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 {toInt, toRadians} 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 describeSector(startAngle: number, endAngle: number): string {\n const startRad = toRadians(startAngle);\n const endRad = toRadians(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 = toInt(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 isNaN(endX) ? EMPTY : result.join(' ');\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {controlPoint} from './control-point';\n\nexport function drawCurve(\n array: ReadonlyArray<TuiPoint>,\n index: number,\n smoothing: number,\n): string {\n const [cpsX, cpsY] = controlPoint(\n array[index - 1],\n array[index - 2],\n array[index],\n false,\n smoothing,\n );\n const [cpeX, cpeY] = controlPoint(\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 drawLine(point: [number, number]): string {\n return `L ${point}`;\n}\n","import {TuiPoint} from '@taiga-ui/core';\n\nimport {drawCurve} from './draw-curve';\nimport {drawLine} from './draw-line';\n\nconst COEFFICIENT = 500;\n\nexport function draw(\n array: ReadonlyArray<TuiPoint>,\n index: number,\n smoothing: number,\n): string {\n return smoothing\n ? drawCurve(array, index, smoothing / COEFFICIENT)\n : drawLine([array[index][0], array[index][1]]);\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": "2.
|
|
3
|
+
"version": "2.32.0",
|
|
4
4
|
"description": "Extension package for Taiga UI that adds various charts, graphs and related components.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -11,15 +11,15 @@
|
|
|
11
11
|
"diagram"
|
|
12
12
|
],
|
|
13
13
|
"license": "Apache-2.0",
|
|
14
|
-
"repository": "https://github.com/
|
|
15
|
-
"homepage": "https://github.com/
|
|
14
|
+
"repository": "https://github.com/tinkoff/taiga-ui",
|
|
15
|
+
"homepage": "https://github.com/tinkoff/taiga-ui",
|
|
16
16
|
"peerDependencies": {
|
|
17
17
|
"@angular/common": ">=9.0.0",
|
|
18
18
|
"@angular/core": ">=9.0.0",
|
|
19
|
-
"@ng-web-apis/common": "1.12.1",
|
|
20
|
-
"@tinkoff/ng-polymorpheus": "3.1.12",
|
|
21
|
-
"@taiga-ui/cdk": "2.
|
|
22
|
-
"@taiga-ui/core": "2.
|
|
19
|
+
"@ng-web-apis/common": ">=1.12.1",
|
|
20
|
+
"@tinkoff/ng-polymorpheus": ">=3.1.12",
|
|
21
|
+
"@taiga-ui/cdk": "2.32.0",
|
|
22
|
+
"@taiga-ui/core": "2.32.0"
|
|
23
23
|
},
|
|
24
24
|
"main": "bundles/taiga-ui-addon-charts.umd.js",
|
|
25
25
|
"module": "fesm5/taiga-ui-addon-charts.js",
|