@taiga-ui/addon-charts 2.23.0 → 2.24.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 +7 -3
- package/bundles/taiga-ui-addon-charts-components-axes.umd.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-axes.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-axes.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-axes.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-bar-chart.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-bar-set.umd.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-bar-set.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-legend-item.umd.js +1 -1
- 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-chart.umd.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-line-chart.umd.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-line-chart.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-line-chart.umd.min.js.map +1 -1
- package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-pie-chart.umd.min.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.js +1 -1
- package/bundles/taiga-ui-addon-charts-components-ring-chart.umd.min.js +1 -1
- package/components/axes/taiga-ui-addon-charts-components-axes.metadata.json +1 -1
- package/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.metadata.json +1 -1
- package/components/bar-set/taiga-ui-addon-charts-components-bar-set.metadata.json +1 -1
- package/components/legend-item/taiga-ui-addon-charts-components-legend-item.metadata.json +1 -1
- package/components/line-chart/taiga-ui-addon-charts-components-line-chart.metadata.json +1 -1
- package/components/pie-chart/taiga-ui-addon-charts-components-pie-chart.metadata.json +1 -1
- package/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.metadata.json +1 -1
- package/esm2015/components/axes/axes.component.js +2 -2
- package/esm2015/components/bar-chart/bar-chart.component.js +2 -2
- package/esm2015/components/bar-set/bar-set.component.js +1 -1
- package/esm2015/components/legend-item/legend-item.component.js +2 -2
- package/esm2015/components/line-chart/line-chart.component.js +2 -2
- package/esm2015/components/pie-chart/pie-chart.component.js +1 -1
- package/esm2015/components/ring-chart/ring-chart.component.js +1 -1
- package/esm5/components/axes/axes.component.js +2 -2
- package/esm5/components/bar-chart/bar-chart.component.js +2 -2
- package/esm5/components/bar-set/bar-set.component.js +1 -1
- package/esm5/components/legend-item/legend-item.component.js +2 -2
- package/esm5/components/line-chart/line-chart.component.js +2 -2
- package/esm5/components/pie-chart/pie-chart.component.js +1 -1
- package/esm5/components/ring-chart/ring-chart.component.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-axes.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-axes.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-bar-chart.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-bar-set.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-legend-item.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-line-chart.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-line-chart.js.map +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-pie-chart.js +1 -1
- package/fesm2015/taiga-ui-addon-charts-components-ring-chart.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-axes.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-axes.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-bar-chart.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-bar-chart.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-bar-set.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-legend-item.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-legend-item.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-line-chart.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-line-chart.js.map +1 -1
- package/fesm5/taiga-ui-addon-charts-components-pie-chart.js +1 -1
- package/fesm5/taiga-ui-addon-charts-components-ring-chart.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-bar-chart.js","sources":["ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.component.ts","ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.module.ts","ng://@taiga-ui/addon-charts/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\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 TuiMapper,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {TuiHintModeT, TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function valueAssertion(value: ReadonlyArray<readonly number[]>): boolean {\n const valid = value.every(array => array.length === value[0].length);\n\n return valid;\n}\n\nconst VALUE_ERROR = 'All arrays must be of the same length';\n\n@Component({\n selector: 'tui-bar-chart',\n templateUrl: './bar-chart.template.html',\n styleUrls: ['./bar-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarChartComponent {\n @Input()\n @tuiDefaultProp(valueAssertion, VALUE_ERROR)\n value: ReadonlyArray<readonly number[]> = [];\n\n @Input()\n @tuiDefaultProp()\n max = NaN;\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeL | null = 'm';\n\n @Input()\n @tuiDefaultProp()\n collapsed = false;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n hintMode: TuiHintModeT | null = null;\n\n private readonly autoIdString: string;\n\n readonly percentMapper: TuiMapper<ReadonlyArray<number>, number> = (\n set,\n collapsed: boolean,\n max: number,\n ) => (100 * (collapsed ? sum(...set) : Math.max(...set))) / max;\n\n constructor(@Inject(TuiIdService) idService: TuiIdService) {\n this.autoIdString = idService.generate();\n }\n\n get hasHint(): boolean {\n return !!this.hintContent;\n }\n\n get transposed(): ReadonlyArray<readonly number[]> {\n return this.transpose(this.value);\n }\n\n get computedMax(): number {\n return this.max || this.getMax(this.value, this.collapsed);\n }\n\n getHint(hint: PolymorpheusContent): PolymorpheusContent {\n return this.hasHint ? hint : '';\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n @tuiPure\n getContentContext(index: number): TuiContextWithImplicit<number> {\n return {\n $implicit: index,\n };\n }\n\n @tuiPure\n private transpose(\n value: ReadonlyArray<readonly number[]>,\n ): ReadonlyArray<readonly number[]> {\n return value.reduce<ReadonlyArray<readonly number[]>>(\n (result, next) =>\n next.map((_, index) => [...(result[index] || []), next[index]]),\n [],\n );\n }\n\n @tuiPure\n private getMax(values: ReadonlyArray<readonly number[]>, collapsed: boolean): number {\n return collapsed\n ? Math.max(\n ...values.reduce((result, next) =>\n result.map((value, index) => value + next[index]),\n ),\n )\n : values.reduce((max, value) => Math.max(...value, max), 0);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiBarSetModule} from '@taiga-ui/addon-charts/components/bar-set';\nimport {TuiFocusableModule, TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiBarChartComponent} from './bar-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiDescribedByModule,\n TuiBarSetModule,\n TuiFocusableModule,\n TuiHintModule,\n TuiMapperPipeModule,\n ],\n declarations: [TuiBarChartComponent],\n exports: [TuiBarChartComponent],\n})\nexport class TuiBarChartModule {}\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-bar-chart.js","sources":["ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.component.ts","ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.module.ts","ng://@taiga-ui/addon-charts/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\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 TuiMapper,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {TuiHintModeT, TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function valueAssertion(value: ReadonlyArray<readonly number[]>): boolean {\n const valid = value.every(array => array.length === value[0].length);\n\n return valid;\n}\n\nconst VALUE_ERROR = 'All arrays must be of the same length';\n\n@Component({\n selector: 'tui-bar-chart',\n templateUrl: './bar-chart.template.html',\n styleUrls: ['./bar-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarChartComponent {\n @Input()\n @tuiDefaultProp(valueAssertion, VALUE_ERROR)\n value: ReadonlyArray<readonly number[]> = [];\n\n @Input()\n @tuiDefaultProp()\n max = NaN;\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeL | null = 'm';\n\n @Input()\n @tuiDefaultProp()\n collapsed = false;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n hintMode: TuiHintModeT | null = null;\n\n private readonly autoIdString: string;\n\n readonly percentMapper: TuiMapper<ReadonlyArray<number>, number> = (\n set,\n collapsed: boolean,\n max: number,\n ) => (100 * (collapsed ? sum(...set) : Math.max(...set))) / max;\n\n constructor(@Inject(TuiIdService) idService: TuiIdService) {\n this.autoIdString = idService.generate();\n }\n\n get hasHint(): boolean {\n return !!this.hintContent;\n }\n\n get transposed(): ReadonlyArray<readonly number[]> {\n return this.transpose(this.value);\n }\n\n get computedMax(): number {\n return this.max || this.getMax(this.value, this.collapsed);\n }\n\n getHint(hint: PolymorpheusContent): PolymorpheusContent {\n return this.hasHint ? hint : '';\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n @tuiPure\n getContentContext(index: number): TuiContextWithImplicit<number> {\n return {\n $implicit: index,\n };\n }\n\n @tuiPure\n private transpose(\n value: ReadonlyArray<readonly number[]>,\n ): ReadonlyArray<readonly number[]> {\n return value.reduce<ReadonlyArray<readonly number[]>>(\n (result, next) =>\n next.map((_, index) => [...(result[index] || []), next[index]]),\n [],\n );\n }\n\n @tuiPure\n private getMax(values: ReadonlyArray<readonly number[]>, collapsed: boolean): number {\n return collapsed\n ? Math.max(\n ...values.reduce((result, next) =>\n result.map((value, index) => value + next[index]),\n ),\n )\n : values.reduce((max, value) => Math.max(...value, max), 0);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiBarSetModule} from '@taiga-ui/addon-charts/components/bar-set';\nimport {TuiFocusableModule, TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiBarChartComponent} from './bar-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiDescribedByModule,\n TuiBarSetModule,\n TuiFocusableModule,\n TuiHintModule,\n TuiMapperPipeModule,\n ],\n declarations: [TuiBarChartComponent],\n exports: [TuiBarChartComponent],\n})\nexport class TuiBarChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ __decorate([
|
|
|
63
63
|
TuiBarSetComponent = __decorate([
|
|
64
64
|
Component({
|
|
65
65
|
selector: 'tui-bar-set',
|
|
66
|
-
template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container *ngFor=\"let item of computedValue; let index = index\">\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: false}\"\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #flexible>\n <div\n *ngFor=\"let item of computedValue; let index = index\"\n class=\"t-wrapper\"\n >\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: true}\"\n ></ng-container>\n </div>\n</ng-template>\n<ng-template #bar let-item let-index=\"index\" let-flexible=\"flexible\">\n <tui-bar\n
|
|
66
|
+
template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container *ngFor=\"let item of computedValue; let index = index\">\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: false}\"\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #flexible>\n <div\n *ngFor=\"let item of computedValue; let index = index\"\n class=\"t-wrapper\"\n >\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: true}\"\n ></ng-container>\n </div>\n</ng-template>\n<ng-template #bar let-item let-index=\"index\" let-flexible=\"flexible\">\n <tui-bar\n automation-id=\"tui-bar-set__bar\"\n class=\"t-bar\"\n [class.t-bar_flexible]=\"flexible\"\n [class.t-bar_negative]=\"item < 0\"\n [style.height.%]=\"getHeight(item)\"\n [style.background]=\"getColor(index)\"\n [value]=\"computedSegments\"\n [size]=\"computedSize\"\n [colorHandler]=\"colorHandler\"\n ></tui-bar>\n</ng-template>\n",
|
|
67
67
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
68
68
|
styles: [":host{display:flex;height:100%;align-items:flex-end;justify-content:center}.t-wrapper{display:flex;flex:1;height:100%;align-items:flex-end}.t-wrapper:first-child{margin-left:25%}.t-wrapper:last-child{margin-right:25%}.t-bar{transform-origin:bottom center}.t-bar_negative{transform:rotate(180deg);opacity:var(--tui-disabled-opacity)}.t-bar.t-bar_flexible{max-width:none;width:75%;margin:0 auto}"]
|
|
69
69
|
}),
|
|
@@ -30,7 +30,7 @@ __decorate([
|
|
|
30
30
|
TuiLegendItemComponent = __decorate([
|
|
31
31
|
Component({
|
|
32
32
|
selector: 'tui-legend-item',
|
|
33
|
-
template: "<button\n tuiButton\n type=\"button\"\n size=\"s\"\n appearance=\"whiteblock\"\n class=\"t-button\"\n [pseudoHovered]=\"active || null\"\n>\n <span class=\"t-dot\" [style.background]=\"computedColor\"></span>\n <span class=\"t-text\">{{text}}</span>\n <ng-content></ng-content>\n</button>\n",
|
|
33
|
+
template: "<button\n tuiButton\n type=\"button\"\n size=\"s\"\n appearance=\"whiteblock\"\n class=\"t-button\"\n [pseudoHovered]=\"active || null\"\n>\n <span class=\"t-dot\" [style.background]=\"computedColor\"></span>\n <span class=\"t-text\">{{ text }}</span>\n <ng-content></ng-content>\n</button>\n",
|
|
34
34
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
35
35
|
styles: [":host{display:inline-block}.t-button{font-weight:700}.t-dot{width:.5rem;height:.5rem;border-radius:100%}.t-text{margin:0 .5rem;font-weight:400}"]
|
|
36
36
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-legend-item.js","sources":["ng://@taiga-ui/addon-charts/components/legend-item/legend-item.component.ts","ng://@taiga-ui/addon-charts/components/legend-item/legend-item.module.ts","ng://@taiga-ui/addon-charts/components/legend-item/taiga-ui-addon-charts-components-legend-item.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {colorFallback} from '@taiga-ui/core';\n\n// TODO: Remove fallback in 3.0\n@Component({\n selector: 'tui-legend-item',\n templateUrl: './legend-item.template.html',\n styleUrls: ['./legend-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLegendItemComponent {\n @Input()\n @tuiDefaultProp()\n active = false;\n\n @Input()\n @tuiDefaultProp()\n color = '';\n\n @Input()\n @tuiDefaultProp()\n text = '';\n\n get computedColor(): string {\n return this.color.startsWith('var(') ? this.color : colorFallback(this.color);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {TuiLegendItemComponent} from './legend-item.component';\n\n@NgModule({\n imports: [CommonModule, TuiButtonModule],\n declarations: [TuiLegendItemComponent],\n exports: [TuiLegendItemComponent],\n})\nexport class TuiLegendItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIA;IAOa,sBAAsB,GAAnC,MAAa,sBAAsB;IAAnC;QAGI,WAAM,GAAG,KAAK,CAAC;QAIf,UAAK,GAAG,EAAE,CAAC;QAIX,SAAI,GAAG,EAAE,CAAC;KAKb;IAHG,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjF;EACJ;AAbG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sDACF;AAIf;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qDACN;AAIX;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oDACP;AAXD,sBAAsB;IANlC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-legend-item.js","sources":["ng://@taiga-ui/addon-charts/components/legend-item/legend-item.component.ts","ng://@taiga-ui/addon-charts/components/legend-item/legend-item.module.ts","ng://@taiga-ui/addon-charts/components/legend-item/taiga-ui-addon-charts-components-legend-item.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {colorFallback} from '@taiga-ui/core';\n\n// TODO: Remove fallback in 3.0\n@Component({\n selector: 'tui-legend-item',\n templateUrl: './legend-item.template.html',\n styleUrls: ['./legend-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLegendItemComponent {\n @Input()\n @tuiDefaultProp()\n active = false;\n\n @Input()\n @tuiDefaultProp()\n color = '';\n\n @Input()\n @tuiDefaultProp()\n text = '';\n\n get computedColor(): string {\n return this.color.startsWith('var(') ? this.color : colorFallback(this.color);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {TuiLegendItemComponent} from './legend-item.component';\n\n@NgModule({\n imports: [CommonModule, TuiButtonModule],\n declarations: [TuiLegendItemComponent],\n exports: [TuiLegendItemComponent],\n})\nexport class TuiLegendItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIA;IAOa,sBAAsB,GAAnC,MAAa,sBAAsB;IAAnC;QAGI,WAAM,GAAG,KAAK,CAAC;QAIf,UAAK,GAAG,EAAE,CAAC;QAIX,SAAI,GAAG,EAAE,CAAC;KAKb;IAHG,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjF;EACJ;AAbG;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;sDACF;AAIf;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;qDACN;AAIX;IAFC,KAAK,EAAE;IACP,cAAc,EAAE;oDACP;AAXD,sBAAsB;IANlC,SAAS,CAAC;QACP,QAAQ,EAAE,iBAAiB;QAC3B,2UAA0C;QAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;;KAClD,CAAC;GACW,sBAAsB,CAgBlC;;ICjBY,mBAAmB,GAAhC,MAAa,mBAAmB;EAAG;AAAtB,mBAAmB;IAL/B,QAAQ,CAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;QACxC,YAAY,EAAE,CAAC,sBAAsB,CAAC;QACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;KACpC,CAAC;GACW,mBAAmB,CAAG;;ACVnC;;;;;;"}
|
|
@@ -249,7 +249,7 @@ __decorate([
|
|
|
249
249
|
TuiLineChartComponent = __decorate([
|
|
250
250
|
Component({
|
|
251
251
|
selector: 'tui-line-chart',
|
|
252
|
-
template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n
|
|
252
|
+
template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox\"\n >\n <defs>\n <linearGradient x1=\"0\" x2=\"0\" y1=\"1\" y2=\"0\" [attr.id]=\"fillId\">\n <stop\n stop-color=\"currentColor\"\n offset=\"0%\"\n stop-opacity=\"0.5\"\n />\n <stop\n stop-color=\"currentColor\"\n offset=\"100%\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path stroke=\"none\" [attr.fill]=\"fill\" [attr.d]=\"fillD\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"2\"\n [attr.d]=\"d\"\n />\n </svg>\n <ng-container *ngIf=\"dots\">\n <div\n *ngFor=\"let point of value\"\n class=\"t-dot\"\n [style.left.%]=\"getLeft(point[0])\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <div\n *ngIf=\"value.length > 1 || dots\"\n tuiHintDirection=\"top-left\"\n class=\"t-column\"\n [class.t-column_hovered]=\"hovered === index\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"computedHint && hint\"\n [tuiHintId]=\"getHintId(index)\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n (mouseenter)=\"onMouseEnter(index)\"\n >\n <div\n class=\"t-line t-line_vertical\"\n [style.left.%]=\"getOffset(index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [style.left.%]=\"getOffset(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [tuiFocusable]=\"isFocusable\"\n [tuiDescribedBy]=\"getHintId(index)\"\n ></div>\n </div>\n <div\n *ngIf=\"isFocusable\"\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n <ng-template #hint>\n <div\n polymorpheus-outlet\n class=\"t-text\"\n [content]=\"computedHint\"\n [context]=\"getContentContext(point)\"\n ></div>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"getHovered(hovered) as point\">\n <div\n *ngIf=\"xStringify\"\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n <div\n *ngIf=\"yStringify\"\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n </ng-container>\n</ng-container>\n",
|
|
253
253
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
254
254
|
styles: [":host{display:flex;width:100%;height:100%;pointer-events:none}.t-svg{transform:scale(1,-1)}.t-column{position:absolute;top:0;height:100%;pointer-events:auto}.t-dot{position:absolute;width:.375rem;height:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;width:.5rem;height:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem rgba(0,0,0,.1);outline:0;pointer-events:none}.column._hint_hovered .t-host,.column:hover .t-host,.column_hovered .t-host,.t-host:focus{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-base-03)}.t-line_vertical{top:0;bottom:0;left:50%;width:1px}.t-line_horizontal{z-index:-1;width:100%;height:1px}:host:not([style]) .column._hint_hovered .t-line,:host:not([style]) .column._hint_hovered+.t-line,:host:not([style]) .column:hover .t-line,:host:not([style]) .column:hover+.t-line,:host[style^='z-index: 0'] .column_hovered .t-line,:host[style^='z-index: 0'] .column_hovered+.t-line{opacity:1}.t-text{white-space:pre-wrap}.t-hint{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:absolute;font:var(--tui-font-text-xs);height:1.25rem;line-height:1.25rem;margin-bottom:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-base-09);background:var(--tui-base-01);transform:translate3d(-50%,0,0)}.t-hint_x{bottom:0}.t-hint_y{left:0}"]
|
|
255
255
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-line-chart.js","sources":["ng://@taiga-ui/addon-charts/components/line-chart/line-chart-hint.directive.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.component.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.module.ts","ng://@taiga-ui/addon-charts/components/line-chart/taiga-ui-addon-charts-components-line-chart.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n EMPTY_QUERY,\n TuiContextWithImplicit,\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';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@Directive({\n selector: '[tuiLineChartHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiLineChartHintDirective {\n @Input('tuiLineChartHint')\n @tuiDefaultProp()\n hint: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> = '';\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent))\n private readonly charts: QueryList<TuiLineChartComponent> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent), {read: ElementRef})\n private readonly chartsRef: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n constructor(\n @Inject(Renderer2) private readonly renderer: Renderer2,\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 filter(v => !v),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n this.charts.forEach(chart => chart.onHovered(NaN));\n });\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n getContext(\n index: number,\n _chart: TuiLineChartComponent,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.computeContext(index, this.charts);\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n raise(index: number, _chart: TuiLineChartComponent) {\n const current = this.charts.map(chart => chart.value[index]);\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach(chart => chart.onHovered(index));\n this.chartsRef.forEach(({nativeElement}, index) =>\n this.renderer.setStyle(\n nativeElement,\n 'z-index',\n sorted.indexOf(current[index]),\n ),\n );\n }\n\n @tuiPure\n private computeContext(\n index: number,\n charts: QueryList<TuiLineChartComponent>,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return {\n $implicit: charts.map(chart => chart.value[index]),\n };\n }\n}\n","import {Location} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {draw} from '@taiga-ui/addon-charts/utils';\nimport {\n inRange,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n TuiStringHandler,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\n\nexport function smoothingAssertion(smoothingFactor: number): boolean {\n return inRange(smoothingFactor, 0, 100);\n}\n\nconst SMOOTHING_MESSAGE = 'smoothingFactor must be between 0 and 100';\n\n@Component({\n selector: 'tui-line-chart',\n templateUrl: './line-chart.template.html',\n styleUrls: ['./line-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLineChartComponent {\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: ReadonlyArray<TuiPoint>) {\n this.value = value.filter(item => !item.some(isNaN));\n }\n\n @Input()\n @tuiDefaultProp()\n x = 0;\n\n @Input()\n @tuiDefaultProp()\n y = 0;\n\n @Input()\n @tuiDefaultProp()\n width = 0;\n\n @Input()\n @tuiDefaultProp()\n height = 0;\n\n @Input()\n @tuiDefaultProp(smoothingAssertion, SMOOTHING_MESSAGE)\n smoothingFactor = 0;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<TuiPoint>> = '';\n\n @Input()\n @tuiDefaultProp()\n xStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n filled = false;\n\n @Input()\n @tuiDefaultProp()\n dots = false;\n\n value: ReadonlyArray<TuiPoint> = [];\n\n private readonly _hovered$ = new Subject<number>();\n\n private readonly autoIdString: string;\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Location) private readonly locationRef: Location,\n @Optional()\n @Inject(TuiLineChartHintDirective)\n private readonly hintDirective: TuiLineChartHintDirective | null,\n ) {\n this.autoIdString = idService.generate();\n }\n\n @tuiPure\n get hovered$(): Observable<number> {\n return this._hovered$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.ngZone));\n }\n\n get fillId(): string {\n return 'tui-line-chart-' + this.autoIdString;\n }\n\n get fill(): string {\n return this.filled\n ? `url(${this.locationRef.prepareExternalUrl(this.locationRef.path())}#${\n this.fillId\n })`\n : 'none';\n }\n\n get viewBox(): string {\n return `${this.x} ${this.y} ${this.width} ${this.height}`;\n }\n\n get d(): string {\n return this.getD(this.value, this.smoothingFactor);\n }\n\n get fillD(): string {\n return this.value.length\n ? this.d + `V ${this.y} H ${this.value[0][0]} V ${this.value[0][1]}`\n : this.d;\n }\n\n get computedHint():\n | PolymorpheusContent<TuiContextWithImplicit<TuiPoint>>\n | PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> {\n return this.hintDirective ? this.hintDirective.hint : this.hintContent;\n }\n\n get isFocusable(): boolean {\n return !this.hintDirective && this.hasHints;\n }\n\n get hasHints(): boolean {\n return !!this.xStringify || !!this.yStringify || !!this.computedHint;\n }\n\n getX(index: number): number {\n if (this.isSinglePoint) {\n return this.value[0][0] / 2;\n }\n\n return index\n ? (this.value[index - 1][0] + this.value[index][0]) / 2\n : 2 * this.value[0][0] - this.getX(1);\n }\n\n getWidth(index: number): number {\n return (100 * this.computeWidth(index)) / this.width;\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n getContentContext(\n $implicit: TuiPoint,\n ):\n | TuiContextWithImplicit<TuiPoint>\n | TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.hintDirective\n ? this.hintDirective.getContext(this.value.indexOf($implicit), this)\n : {$implicit};\n }\n\n getHovered(hovered: number): TuiPoint | null {\n // This checks for NaN and null too since async pipe returns null before first item\n return Number.isInteger(hovered) ? this.value[hovered] : null;\n }\n\n getBottom(y: number): number {\n return (100 * (y - this.y)) / this.height;\n }\n\n getLeft(x: number): number {\n return (100 * (x - this.x)) / this.width;\n }\n\n getOffset(x: number): number {\n return (100 * (this.value[x][0] - this.getX(x))) / this.computeWidth(x);\n }\n\n onMouseEnter(index: number) {\n if (this.hintDirective) {\n this.hintDirective.raise(index, this);\n } else {\n this.onHovered(index);\n }\n }\n\n onHovered(index: number) {\n this._hovered$.next(index);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (!this.hintDirective) {\n this.onHovered(NaN);\n }\n }\n\n private get isSinglePoint(): boolean {\n return this.value.length === 1;\n }\n\n @tuiPure\n private getD(value: ReadonlyArray<TuiPoint>, smoothingFactor: number): string {\n return value.reduce(\n (d, point, index) =>\n index ? `${d} ${draw(value, index, smoothingFactor)}` : `M ${point}`,\n '',\n );\n }\n\n private computeWidth(index: number): number {\n return index === this.value.length - 1\n ? 2 * (this.value[index][0] - this.getX(index))\n : this.getX(index + 1) - this.getX(index);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiHintModule,\n TuiFocusableModule,\n TuiDescribedByModule,\n TuiLetModule,\n ],\n declarations: [TuiLineChartComponent, TuiLineChartHintDirective],\n exports: [TuiLineChartComponent, TuiLineChartHintDirective],\n})\nexport class TuiLineChartModule {}\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-chart.js","sources":["ng://@taiga-ui/addon-charts/components/line-chart/line-chart-hint.directive.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.component.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.module.ts","ng://@taiga-ui/addon-charts/components/line-chart/taiga-ui-addon-charts-components-line-chart.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n EMPTY_QUERY,\n TuiContextWithImplicit,\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';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@Directive({\n selector: '[tuiLineChartHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiLineChartHintDirective {\n @Input('tuiLineChartHint')\n @tuiDefaultProp()\n hint: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> = '';\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent))\n private readonly charts: QueryList<TuiLineChartComponent> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent), {read: ElementRef})\n private readonly chartsRef: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n constructor(\n @Inject(Renderer2) private readonly renderer: Renderer2,\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 filter(v => !v),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n this.charts.forEach(chart => chart.onHovered(NaN));\n });\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n getContext(\n index: number,\n _chart: TuiLineChartComponent,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.computeContext(index, this.charts);\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n raise(index: number, _chart: TuiLineChartComponent) {\n const current = this.charts.map(chart => chart.value[index]);\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach(chart => chart.onHovered(index));\n this.chartsRef.forEach(({nativeElement}, index) =>\n this.renderer.setStyle(\n nativeElement,\n 'z-index',\n sorted.indexOf(current[index]),\n ),\n );\n }\n\n @tuiPure\n private computeContext(\n index: number,\n charts: QueryList<TuiLineChartComponent>,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return {\n $implicit: charts.map(chart => chart.value[index]),\n };\n }\n}\n","import {Location} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {draw} from '@taiga-ui/addon-charts/utils';\nimport {\n inRange,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n TuiStringHandler,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\n\nexport function smoothingAssertion(smoothingFactor: number): boolean {\n return inRange(smoothingFactor, 0, 100);\n}\n\nconst SMOOTHING_MESSAGE = 'smoothingFactor must be between 0 and 100';\n\n@Component({\n selector: 'tui-line-chart',\n templateUrl: './line-chart.template.html',\n styleUrls: ['./line-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLineChartComponent {\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: ReadonlyArray<TuiPoint>) {\n this.value = value.filter(item => !item.some(isNaN));\n }\n\n @Input()\n @tuiDefaultProp()\n x = 0;\n\n @Input()\n @tuiDefaultProp()\n y = 0;\n\n @Input()\n @tuiDefaultProp()\n width = 0;\n\n @Input()\n @tuiDefaultProp()\n height = 0;\n\n @Input()\n @tuiDefaultProp(smoothingAssertion, SMOOTHING_MESSAGE)\n smoothingFactor = 0;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<TuiPoint>> = '';\n\n @Input()\n @tuiDefaultProp()\n xStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n filled = false;\n\n @Input()\n @tuiDefaultProp()\n dots = false;\n\n value: ReadonlyArray<TuiPoint> = [];\n\n private readonly _hovered$ = new Subject<number>();\n\n private readonly autoIdString: string;\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Location) private readonly locationRef: Location,\n @Optional()\n @Inject(TuiLineChartHintDirective)\n private readonly hintDirective: TuiLineChartHintDirective | null,\n ) {\n this.autoIdString = idService.generate();\n }\n\n @tuiPure\n get hovered$(): Observable<number> {\n return this._hovered$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.ngZone));\n }\n\n get fillId(): string {\n return 'tui-line-chart-' + this.autoIdString;\n }\n\n get fill(): string {\n return this.filled\n ? `url(${this.locationRef.prepareExternalUrl(this.locationRef.path())}#${\n this.fillId\n })`\n : 'none';\n }\n\n get viewBox(): string {\n return `${this.x} ${this.y} ${this.width} ${this.height}`;\n }\n\n get d(): string {\n return this.getD(this.value, this.smoothingFactor);\n }\n\n get fillD(): string {\n return this.value.length\n ? this.d + `V ${this.y} H ${this.value[0][0]} V ${this.value[0][1]}`\n : this.d;\n }\n\n get computedHint():\n | PolymorpheusContent<TuiContextWithImplicit<TuiPoint>>\n | PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> {\n return this.hintDirective ? this.hintDirective.hint : this.hintContent;\n }\n\n get isFocusable(): boolean {\n return !this.hintDirective && this.hasHints;\n }\n\n get hasHints(): boolean {\n return !!this.xStringify || !!this.yStringify || !!this.computedHint;\n }\n\n getX(index: number): number {\n if (this.isSinglePoint) {\n return this.value[0][0] / 2;\n }\n\n return index\n ? (this.value[index - 1][0] + this.value[index][0]) / 2\n : 2 * this.value[0][0] - this.getX(1);\n }\n\n getWidth(index: number): number {\n return (100 * this.computeWidth(index)) / this.width;\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n getContentContext(\n $implicit: TuiPoint,\n ):\n | TuiContextWithImplicit<TuiPoint>\n | TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.hintDirective\n ? this.hintDirective.getContext(this.value.indexOf($implicit), this)\n : {$implicit};\n }\n\n getHovered(hovered: number): TuiPoint | null {\n // This checks for NaN and null too since async pipe returns null before first item\n return Number.isInteger(hovered) ? this.value[hovered] : null;\n }\n\n getBottom(y: number): number {\n return (100 * (y - this.y)) / this.height;\n }\n\n getLeft(x: number): number {\n return (100 * (x - this.x)) / this.width;\n }\n\n getOffset(x: number): number {\n return (100 * (this.value[x][0] - this.getX(x))) / this.computeWidth(x);\n }\n\n onMouseEnter(index: number) {\n if (this.hintDirective) {\n this.hintDirective.raise(index, this);\n } else {\n this.onHovered(index);\n }\n }\n\n onHovered(index: number) {\n this._hovered$.next(index);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (!this.hintDirective) {\n this.onHovered(NaN);\n }\n }\n\n private get isSinglePoint(): boolean {\n return this.value.length === 1;\n }\n\n @tuiPure\n private getD(value: ReadonlyArray<TuiPoint>, smoothingFactor: number): string {\n return value.reduce(\n (d, point, index) =>\n index ? `${d} ${draw(value, index, smoothingFactor)}` : `M ${point}`,\n '',\n );\n }\n\n private computeWidth(index: number): number {\n return index === this.value.length - 1\n ? 2 * (this.value[index][0] - this.getX(index))\n : this.getX(index + 1) - this.getX(index);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiHintModule,\n TuiFocusableModule,\n TuiDescribedByModule,\n TuiLetModule,\n ],\n declarations: [TuiLineChartComponent, TuiLineChartHintDirective],\n exports: [TuiLineChartComponent, TuiLineChartHintDirective],\n})\nexport class TuiLineChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -124,7 +124,7 @@ __decorate([
|
|
|
124
124
|
TuiPieChartComponent = __decorate([
|
|
125
125
|
Component({
|
|
126
126
|
selector: 'tui-pie-chart',
|
|
127
|
-
template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n
|
|
127
|
+
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 ></rect>\n <circle cx=\"0\" cy=\"0\" [attr.r]=\"radius\"></circle>\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <path\n *ngFor=\"let segment of segments; let index = index\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintMode=\"onDark\"\n tuiHintDirection=\"top-right\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [attr.d]=\"segment\"\n [style.color]=\"getColor(index)\"\n [tuiPointerHint]=\"getHint(hint)\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n >\n <ng-template #hint>\n <ng-container\n *ngTemplateOutlet=\"template; context: getContentContext(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]=\"getContentContext(index)\"\n ></div>\n</ng-template>\n",
|
|
128
128
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
129
129
|
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}"]
|
|
130
130
|
}),
|
|
@@ -70,7 +70,7 @@ __decorate([
|
|
|
70
70
|
TuiRingChartComponent = __decorate([
|
|
71
71
|
Component({
|
|
72
72
|
selector: 'tui-ring-chart',
|
|
73
|
-
template: "<div *ngIf=\"hasContent\" class=\"t-content\">\n <div\n polymorpheus-outlet\n
|
|
73
|
+
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]=\"contentContext\"\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",
|
|
74
74
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
75
75
|
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%}"]
|
|
76
76
|
})
|
|
@@ -117,7 +117,7 @@ var TuiAxesComponent = /** @class */ (function () {
|
|
|
117
117
|
TuiAxesComponent = __decorate([
|
|
118
118
|
Component({
|
|
119
119
|
selector: 'tui-axes',
|
|
120
|
-
template: "<div *ngIf=\"hasYLabels\" class=\"t-side\" [class.t-side_padding]=\"hasXLabels\">\n <div\n *ngIf=\"axisYName\"\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{axisYName}}\n </div>\n <div *ngIf=\"!axisYInset\" class=\"t-labels-y t-labels-y_primary\">\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{fallback(label)}}\n </div>\n </div>\n</div>\n<div class=\"t-wrapper\">\n <div\n class=\"t-grid\"\n [style.borderLeftStyle]=\"axisY\"\n [style.borderBottomStyle]=\"axisX\"\n >\n <div class=\"t-vertical\">\n <div\n *tuiRepeatTimes=\"let index of verticalLines\"\n
|
|
120
|
+
template: "<div *ngIf=\"hasYLabels\" class=\"t-side\" [class.t-side_padding]=\"hasXLabels\">\n <div\n *ngIf=\"axisYName\"\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ axisYName }}\n </div>\n <div *ngIf=\"!axisYInset\" class=\"t-labels-y t-labels-y_primary\">\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n</div>\n<div class=\"t-wrapper\">\n <div\n class=\"t-grid\"\n [style.borderLeftStyle]=\"axisY\"\n [style.borderBottomStyle]=\"axisX\"\n >\n <div class=\"t-vertical\">\n <div\n *tuiRepeatTimes=\"let index of verticalLines\"\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.borderRightStyle]=\"verticalLinesHandler(index, verticalLines)\"\n ></div>\n </div>\n <div class=\"t-horizontal\">\n <div\n *tuiRepeatTimes=\"let index of horizontalLines\"\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.borderTopStyle]=\"horizontalLinesHandler(index, horizontalLines)\"\n ></div>\n </div>\n <div *ngIf=\"axisYInset\" class=\"t-labels-y t-labels-y_inset\">\n <div\n *ngFor=\"let label of axisYLabels\"\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div\n *ngIf=\"axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\"\n >\n <div\n *ngFor=\"let label of axisYSecondaryLabels\"\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div class=\"t-content\">\n <ng-content></ng-content>\n </div>\n </div>\n <div *ngIf=\"hasXLabels\" class=\"t-labels-x\">\n <div\n *ngFor=\"let label of axisXLabels\"\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n</div>\n<div\n *ngIf=\"hasYSecondaryLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\n <div *ngIf=\"!axisYSecondaryInset\" class=\"t-labels-y t-labels-y_secondary\">\n <div\n *ngFor=\"let label of axisYSecondaryLabels\"\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ fallback(label) }}\n </div>\n </div>\n <div\n *ngIf=\"axisYSecondaryName\"\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSecondaryName }}\n </div>\n</div>\n",
|
|
121
121
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
122
122
|
providers: [MODE_PROVIDER],
|
|
123
123
|
host: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-axes.js","sources":["ng://@taiga-ui/addon-charts/components/axes/axes.component.ts","ng://@taiga-ui/addon-charts/components/axes/axes.module.ts","ng://@taiga-ui/addon-charts/components/axes/taiga-ui-addon-charts-components-axes.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {TUI_ALWAYS_DASHED, TUI_ALWAYS_SOLID} from '@taiga-ui/addon-charts/constants';\nimport {TuiLineHandler, TuiLineTypeT} from '@taiga-ui/addon-charts/types';\nimport {CHAR_NO_BREAK_SPACE, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-axes',\n templateUrl: './axes.template.html',\n styleUrls: ['./axes.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiAxesComponent {\n @Input()\n @tuiDefaultProp()\n axisX: TuiLineTypeT = 'solid';\n\n @Input()\n @tuiDefaultProp()\n axisXLabels: ReadonlyArray<string | null> = [];\n\n @Input()\n @tuiDefaultProp()\n axisY: TuiLineTypeT = 'solid';\n\n @Input()\n @tuiDefaultProp()\n axisYInset = false;\n\n @Input()\n @tuiDefaultProp()\n axisYLabels: readonly string[] = [];\n\n @Input()\n @tuiDefaultProp()\n axisYName = '';\n\n @Input()\n @tuiDefaultProp()\n axisYSecondaryInset = false;\n\n @Input()\n @tuiDefaultProp()\n axisYSecondaryLabels: readonly string[] = [];\n\n @Input()\n @tuiDefaultProp()\n axisYSecondaryName = '';\n\n @Input()\n @tuiDefaultProp()\n horizontalLines = 0;\n\n @Input()\n @tuiDefaultProp()\n horizontalLinesHandler: TuiLineHandler = TUI_ALWAYS_SOLID;\n\n @Input()\n @tuiDefaultProp()\n verticalLines = 0;\n\n @Input()\n @tuiDefaultProp()\n verticalLinesHandler: TuiLineHandler = TUI_ALWAYS_DASHED;\n\n @HostBinding('class._centered')\n get centeredXLabels(): boolean {\n return this.axisY === 'none';\n }\n\n constructor(@Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>) {}\n\n get hasXLabels(): boolean {\n return !!this.axisXLabels.length;\n }\n\n get hasYLabels(): boolean {\n return (!!this.axisYLabels.length && !this.axisYInset) || !!this.axisYName;\n }\n\n get hasYSecondaryLabels(): boolean {\n return (\n (!!this.axisYSecondaryLabels.length && !this.axisYSecondaryInset) ||\n !!this.axisYSecondaryName\n );\n }\n\n fallback(label: string | null): string {\n return label || CHAR_NO_BREAK_SPACE;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiAxesComponent} from './axes.component';\n\n@NgModule({\n imports: [CommonModule, TuiRepeatTimesModule],\n declarations: [TuiAxesComponent],\n exports: [TuiAxesComponent],\n})\nexport class TuiAxesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;IAmFI,0BAAuC,KAAuC;QAAvC,UAAK,GAAL,KAAK,CAAkC;QAvD9E,UAAK,GAAiB,OAAO,CAAC;QAI9B,gBAAW,GAAiC,EAAE,CAAC;QAI/C,UAAK,GAAiB,OAAO,CAAC;QAI9B,eAAU,GAAG,KAAK,CAAC;QAInB,gBAAW,GAAsB,EAAE,CAAC;QAIpC,cAAS,GAAG,EAAE,CAAC;QAIf,wBAAmB,GAAG,KAAK,CAAC;QAI5B,yBAAoB,GAAsB,EAAE,CAAC;QAI7C,uBAAkB,GAAG,EAAE,CAAC;QAIxB,oBAAe,GAAG,CAAC,CAAC;QAIpB,2BAAsB,GAAmB,gBAAgB,CAAC;QAI1D,kBAAa,GAAG,CAAC,CAAC;QAIlB,yBAAoB,GAAmB,iBAAiB,CAAC;KAOyB;IAJlF,sBAAI,6CAAe;aAAnB;YACI,OAAO,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC;SAChC;;;OAAA;IAID,sBAAI,wCAAU;aAAd;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SACpC;;;OAAA;IAED,sBAAI,wCAAU;aAAd;YACI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;SAC9E;;;OAAA;IAED,sBAAI,iDAAmB;aAAvB;YACI,QACI,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB;gBAChE,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAC3B;SACL;;;OAAA;IAED,mCAAQ,GAAR,UAAS,KAAoB;QACzB,OAAO,KAAK,IAAI,mBAAmB,CAAC;KACvC;;gBAnB6C,UAAU,uBAA3C,MAAM,SAAC,QAAQ;;IAvD5B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;mDACa;IAI9B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;yDAC8B;IAI/C;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;mDACa;IAI9B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACE;IAInB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;yDACmB;IAIpC;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;uDACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;iEACW;IAI5B;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;kEAC4B;IAI7C;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;gEACO;IAIxB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;6DACG;IAIpB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;oEACyC;IAI1D;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;2DACC;IAIlB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;kEACwC;IAGzD;QADC,WAAW,CAAC,iBAAiB,CAAC;2DAG9B;IAxDQ,gBAAgB;QAV5B,SAAS,CAAC;YACP,QAAQ,EAAE,UAAU;YACpB,
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-axes.js","sources":["ng://@taiga-ui/addon-charts/components/axes/axes.component.ts","ng://@taiga-ui/addon-charts/components/axes/axes.module.ts","ng://@taiga-ui/addon-charts/components/axes/taiga-ui-addon-charts-components-axes.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n Input,\n} from '@angular/core';\nimport {TUI_ALWAYS_DASHED, TUI_ALWAYS_SOLID} from '@taiga-ui/addon-charts/constants';\nimport {TuiLineHandler, TuiLineTypeT} from '@taiga-ui/addon-charts/types';\nimport {CHAR_NO_BREAK_SPACE, tuiDefaultProp} from '@taiga-ui/cdk';\nimport {MODE_PROVIDER} from '@taiga-ui/core/providers';\nimport {TUI_MODE} from '@taiga-ui/core/tokens';\nimport {TuiBrightness} from '@taiga-ui/core/types';\nimport {Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-axes',\n templateUrl: './axes.template.html',\n styleUrls: ['./axes.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [MODE_PROVIDER],\n host: {\n '($.data-mode.attr)': 'mode$',\n },\n})\nexport class TuiAxesComponent {\n @Input()\n @tuiDefaultProp()\n axisX: TuiLineTypeT = 'solid';\n\n @Input()\n @tuiDefaultProp()\n axisXLabels: ReadonlyArray<string | null> = [];\n\n @Input()\n @tuiDefaultProp()\n axisY: TuiLineTypeT = 'solid';\n\n @Input()\n @tuiDefaultProp()\n axisYInset = false;\n\n @Input()\n @tuiDefaultProp()\n axisYLabels: readonly string[] = [];\n\n @Input()\n @tuiDefaultProp()\n axisYName = '';\n\n @Input()\n @tuiDefaultProp()\n axisYSecondaryInset = false;\n\n @Input()\n @tuiDefaultProp()\n axisYSecondaryLabels: readonly string[] = [];\n\n @Input()\n @tuiDefaultProp()\n axisYSecondaryName = '';\n\n @Input()\n @tuiDefaultProp()\n horizontalLines = 0;\n\n @Input()\n @tuiDefaultProp()\n horizontalLinesHandler: TuiLineHandler = TUI_ALWAYS_SOLID;\n\n @Input()\n @tuiDefaultProp()\n verticalLines = 0;\n\n @Input()\n @tuiDefaultProp()\n verticalLinesHandler: TuiLineHandler = TUI_ALWAYS_DASHED;\n\n @HostBinding('class._centered')\n get centeredXLabels(): boolean {\n return this.axisY === 'none';\n }\n\n constructor(@Inject(TUI_MODE) readonly mode$: Observable<TuiBrightness | null>) {}\n\n get hasXLabels(): boolean {\n return !!this.axisXLabels.length;\n }\n\n get hasYLabels(): boolean {\n return (!!this.axisYLabels.length && !this.axisYInset) || !!this.axisYName;\n }\n\n get hasYSecondaryLabels(): boolean {\n return (\n (!!this.axisYSecondaryLabels.length && !this.axisYSecondaryInset) ||\n !!this.axisYSecondaryName\n );\n }\n\n fallback(label: string | null): string {\n return label || CHAR_NO_BREAK_SPACE;\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiRepeatTimesModule} from '@taiga-ui/cdk';\nimport {TuiAxesComponent} from './axes.component';\n\n@NgModule({\n imports: [CommonModule, TuiRepeatTimesModule],\n declarations: [TuiAxesComponent],\n exports: [TuiAxesComponent],\n})\nexport class TuiAxesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -110,7 +110,7 @@ var TuiBarChartComponent = /** @class */ (function () {
|
|
|
110
110
|
TuiBarChartComponent = __decorate([
|
|
111
111
|
Component({
|
|
112
112
|
selector: 'tui-bar-chart',
|
|
113
|
-
template: "<div\n *ngFor=\"let set of transposed; let index = index\"\n tuiHintDirection=\"top-left\"\n class=\"t-wrapper\"\n [class.t-wrapper_hoverable]=\"hasHint\"\n [tuiHintHost]=\"hintHost\"\n [tuiHintId]=\"getHintId(index)\"\n [tuiHint]=\"getHint(hint)\"\n [tuiHintMode]=\"hintMode\"\n>\n <div\n class=\"t-container\"\n [style.height.%]=\"set | tuiMapper
|
|
113
|
+
template: "<div\n *ngFor=\"let set of transposed; let index = index\"\n tuiHintDirection=\"top-left\"\n class=\"t-wrapper\"\n [class.t-wrapper_hoverable]=\"hasHint\"\n [tuiHintHost]=\"hintHost\"\n [tuiHintId]=\"getHintId(index)\"\n [tuiHint]=\"getHint(hint)\"\n [tuiHintMode]=\"hintMode\"\n>\n <div\n class=\"t-container\"\n [style.height.%]=\"set | tuiMapper: percentMapper:collapsed:computedMax\"\n >\n <div #hintHost class=\"t-host\"></div>\n <tui-bar-set\n class=\"t-set\"\n [tuiDescribedBy]=\"getHintId(index)\"\n [tuiFocusable]=\"hasHint\"\n [value]=\"set\"\n [size]=\"size\"\n [collapsed]=\"collapsed\"\n [colorHandler]=\"colorHandler\"\n ></tui-bar-set>\n </div>\n <ng-template #hint=\"polymorpheus\" polymorpheus>\n <div\n polymorpheus-outlet\n class=\"t-text\"\n [content]=\"hintContent\"\n [context]=\"getContentContext(index)\"\n ></div>\n </ng-template>\n</div>\n",
|
|
114
114
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
115
115
|
styles: [":host{display:flex;flex:1;height:100%}.t-wrapper{transition-property:background-color;transition-duration:var(--tui-duration,300ms);transition-timing-function:ease-in-out;position:relative;display:flex;flex:1;align-items:flex-end;justify-content:center;height:100%}.t-wrapper_hoverable._hint_hovered{background-color:rgba(0,0,0,.05);cursor:pointer}.t-container{flex:1}.t-host{position:absolute;left:50%;right:50%}.t-set{border-radius:var(--tui-radius-m);pointer-events:none;outline:0}.t-set:focus{box-shadow:0 0 0 2px var(--tui-focus)}.t-text{white-space:pre-wrap}"]
|
|
116
116
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-bar-chart.js","sources":["ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.component.ts","ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.module.ts","ng://@taiga-ui/addon-charts/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\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 TuiMapper,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {TuiHintModeT, TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function valueAssertion(value: ReadonlyArray<readonly number[]>): boolean {\n const valid = value.every(array => array.length === value[0].length);\n\n return valid;\n}\n\nconst VALUE_ERROR = 'All arrays must be of the same length';\n\n@Component({\n selector: 'tui-bar-chart',\n templateUrl: './bar-chart.template.html',\n styleUrls: ['./bar-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarChartComponent {\n @Input()\n @tuiDefaultProp(valueAssertion, VALUE_ERROR)\n value: ReadonlyArray<readonly number[]> = [];\n\n @Input()\n @tuiDefaultProp()\n max = NaN;\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeL | null = 'm';\n\n @Input()\n @tuiDefaultProp()\n collapsed = false;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n hintMode: TuiHintModeT | null = null;\n\n private readonly autoIdString: string;\n\n readonly percentMapper: TuiMapper<ReadonlyArray<number>, number> = (\n set,\n collapsed: boolean,\n max: number,\n ) => (100 * (collapsed ? sum(...set) : Math.max(...set))) / max;\n\n constructor(@Inject(TuiIdService) idService: TuiIdService) {\n this.autoIdString = idService.generate();\n }\n\n get hasHint(): boolean {\n return !!this.hintContent;\n }\n\n get transposed(): ReadonlyArray<readonly number[]> {\n return this.transpose(this.value);\n }\n\n get computedMax(): number {\n return this.max || this.getMax(this.value, this.collapsed);\n }\n\n getHint(hint: PolymorpheusContent): PolymorpheusContent {\n return this.hasHint ? hint : '';\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n @tuiPure\n getContentContext(index: number): TuiContextWithImplicit<number> {\n return {\n $implicit: index,\n };\n }\n\n @tuiPure\n private transpose(\n value: ReadonlyArray<readonly number[]>,\n ): ReadonlyArray<readonly number[]> {\n return value.reduce<ReadonlyArray<readonly number[]>>(\n (result, next) =>\n next.map((_, index) => [...(result[index] || []), next[index]]),\n [],\n );\n }\n\n @tuiPure\n private getMax(values: ReadonlyArray<readonly number[]>, collapsed: boolean): number {\n return collapsed\n ? Math.max(\n ...values.reduce((result, next) =>\n result.map((value, index) => value + next[index]),\n ),\n )\n : values.reduce((max, value) => Math.max(...value, max), 0);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiBarSetModule} from '@taiga-ui/addon-charts/components/bar-set';\nimport {TuiFocusableModule, TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiBarChartComponent} from './bar-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiDescribedByModule,\n TuiBarSetModule,\n TuiFocusableModule,\n TuiHintModule,\n TuiMapperPipeModule,\n ],\n declarations: [TuiBarChartComponent],\n exports: [TuiBarChartComponent],\n})\nexport class TuiBarChartModule {}\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-bar-chart.js","sources":["ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.component.ts","ng://@taiga-ui/addon-charts/components/bar-chart/bar-chart.module.ts","ng://@taiga-ui/addon-charts/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Inject, Input} from '@angular/core';\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 TuiMapper,\n tuiPure,\n} from '@taiga-ui/cdk';\nimport {TuiHintModeT, TuiSizeL, TuiSizeS} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\n\nexport function valueAssertion(value: ReadonlyArray<readonly number[]>): boolean {\n const valid = value.every(array => array.length === value[0].length);\n\n return valid;\n}\n\nconst VALUE_ERROR = 'All arrays must be of the same length';\n\n@Component({\n selector: 'tui-bar-chart',\n templateUrl: './bar-chart.template.html',\n styleUrls: ['./bar-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarChartComponent {\n @Input()\n @tuiDefaultProp(valueAssertion, VALUE_ERROR)\n value: ReadonlyArray<readonly number[]> = [];\n\n @Input()\n @tuiDefaultProp()\n max = NaN;\n\n @Input()\n @tuiDefaultProp()\n colorHandler: TuiColorHandler = TUI_DEFAULT_COLOR_HANDLER;\n\n @Input()\n @tuiDefaultProp()\n size: TuiSizeS | TuiSizeL | null = 'm';\n\n @Input()\n @tuiDefaultProp()\n collapsed = false;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<number>> = '';\n\n @Input()\n @tuiDefaultProp()\n hintMode: TuiHintModeT | null = null;\n\n private readonly autoIdString: string;\n\n readonly percentMapper: TuiMapper<ReadonlyArray<number>, number> = (\n set,\n collapsed: boolean,\n max: number,\n ) => (100 * (collapsed ? sum(...set) : Math.max(...set))) / max;\n\n constructor(@Inject(TuiIdService) idService: TuiIdService) {\n this.autoIdString = idService.generate();\n }\n\n get hasHint(): boolean {\n return !!this.hintContent;\n }\n\n get transposed(): ReadonlyArray<readonly number[]> {\n return this.transpose(this.value);\n }\n\n get computedMax(): number {\n return this.max || this.getMax(this.value, this.collapsed);\n }\n\n getHint(hint: PolymorpheusContent): PolymorpheusContent {\n return this.hasHint ? hint : '';\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n @tuiPure\n getContentContext(index: number): TuiContextWithImplicit<number> {\n return {\n $implicit: index,\n };\n }\n\n @tuiPure\n private transpose(\n value: ReadonlyArray<readonly number[]>,\n ): ReadonlyArray<readonly number[]> {\n return value.reduce<ReadonlyArray<readonly number[]>>(\n (result, next) =>\n next.map((_, index) => [...(result[index] || []), next[index]]),\n [],\n );\n }\n\n @tuiPure\n private getMax(values: ReadonlyArray<readonly number[]>, collapsed: boolean): number {\n return collapsed\n ? Math.max(\n ...values.reduce((result, next) =>\n result.map((value, index) => value + next[index]),\n ),\n )\n : values.reduce((max, value) => Math.max(...value, max), 0);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiBarSetModule} from '@taiga-ui/addon-charts/components/bar-set';\nimport {TuiFocusableModule, TuiMapperPipeModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiBarChartComponent} from './bar-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiDescribedByModule,\n TuiBarSetModule,\n TuiFocusableModule,\n TuiHintModule,\n TuiMapperPipeModule,\n ],\n declarations: [TuiBarChartComponent],\n exports: [TuiBarChartComponent],\n})\nexport class TuiBarChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;SAcgB,cAAc,CAAC,KAAuC;IAClE,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAA,CAAC,CAAC;IAErE,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,IAAM,WAAW,GAAG,uCAAuC,CAAC;;IA6CxD,8BAAkC,SAAuB;QAlCzD,UAAK,GAAqC,EAAE,CAAC;QAI7C,QAAG,GAAG,GAAG,CAAC;QAIV,iBAAY,GAAoB,yBAAyB,CAAC;QAI1D,SAAI,GAA+B,GAAG,CAAC;QAIvC,cAAS,GAAG,KAAK,CAAC;QAIlB,gBAAW,GAAwD,EAAE,CAAC;QAItE,aAAQ,GAAwB,IAAI,CAAC;QAI5B,kBAAa,GAA6C,UAC/D,GAAG,EACH,SAAkB,EAClB,GAAW,IACV,OAAA,CAAC,GAAG,IAAI,SAAS,GAAG,GAAG,wBAAI,GAAG,KAAI,IAAI,CAAC,GAAG,OAAR,IAAI,WAAQ,GAAG,EAAC,CAAC,IAAI,GAAG,GAAA,CAAC;QAG5D,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;KAC5C;IAED,sBAAI,yCAAO;aAAX;YACI,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;SAC7B;;;OAAA;IAED,sBAAI,4CAAU;aAAd;YACI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC;;;OAAA;IAED,sBAAI,6CAAW;aAAf;YACI,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9D;;;OAAA;IAED,sCAAO,GAAP,UAAQ,IAAyB;QAC7B,OAAO,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;KACnC;IAED,wCAAS,GAAT,UAAU,KAAa;QACnB,OAAU,IAAI,CAAC,YAAY,SAAI,KAAO,CAAC;KAC1C;IAGD,gDAAiB,GAAjB,UAAkB,KAAa;QAC3B,OAAO;YACH,SAAS,EAAE,KAAK;SACnB,CAAC;KACL;IAGO,wCAAS,GAAjB,UACI,KAAuC;QAEvC,OAAO,KAAK,CAAC,MAAM,CACf,UAAC,MAAM,EAAE,IAAI;YACT,OAAA,IAAI,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,iBAAK,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAG,IAAI,CAAC,KAAK,CAAC,KAAC,CAAC;SAAA,EACnE,EAAE,CACL,CAAC;KACL;IAGO,qCAAM,GAAd,UAAe,MAAwC,EAAE,SAAkB;QACvE,OAAO,SAAS;cACV,IAAI,CAAC,GAAG,OAAR,IAAI,WACG,MAAM,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,IAAI;gBAC1B,OAAA,MAAM,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,KAAK,IAAK,OAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAA,CAAC;aAAA,CACpD,KAEL,MAAM,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,KAAK,IAAK,OAAA,IAAI,CAAC,GAAG,OAAR,IAAI,WAAQ,KAAK,GAAE,GAAG,MAAC,EAAE,CAAC,CAAC,CAAC;KACnE;;gBAnD4C,YAAY,uBAA5C,MAAM,SAAC,YAAY;;IAlChC;QAFC,KAAK,EAAE;QACP,cAAc,CAAC,cAAc,EAAE,WAAW,CAAC;uDACC;IAI7C;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;qDACP;IAIV;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;8DACyC;IAI1D;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;sDACsB;IAIvC;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;2DACC;IAIlB;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;6DACqD;IAItE;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACoB;IAmCrC;QADC,OAAO;iEAKP;IAGD;QADC,OAAO;yDASP;IAGD;QADC,OAAO;sDASP;IAxFQ,oBAAoB;QANhC,SAAS,CAAC;YACP,QAAQ,EAAE,eAAe;YACzB,8jCAAwC;YAExC,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;QAsCe,WAAA,MAAM,CAAC,YAAY,CAAC,CAAA;OArCxB,oBAAoB,CAyFhC;IAAD,2BAAC;CAzFD;;;ICPA;KAAiC;IAApB,iBAAiB;QAb7B,QAAQ,CAAC;YACN,OAAO,EAAE;gBACL,YAAY;gBACZ,kBAAkB;gBAClB,oBAAoB;gBACpB,eAAe;gBACf,kBAAkB;gBAClB,aAAa;gBACb,mBAAmB;aACtB;YACD,YAAY,EAAE,CAAC,oBAAoB,CAAC;YACpC,OAAO,EAAE,CAAC,oBAAoB,CAAC;SAClC,CAAC;OACW,iBAAiB,CAAG;IAAD,wBAAC;CAAjC;;ACrBA;;;;;;"}
|
|
@@ -74,7 +74,7 @@ var TuiBarSetComponent = /** @class */ (function () {
|
|
|
74
74
|
TuiBarSetComponent = __decorate([
|
|
75
75
|
Component({
|
|
76
76
|
selector: 'tui-bar-set',
|
|
77
|
-
template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container *ngFor=\"let item of computedValue; let index = index\">\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: false}\"\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #flexible>\n <div\n *ngFor=\"let item of computedValue; let index = index\"\n class=\"t-wrapper\"\n >\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: true}\"\n ></ng-container>\n </div>\n</ng-template>\n<ng-template #bar let-item let-index=\"index\" let-flexible=\"flexible\">\n <tui-bar\n
|
|
77
|
+
template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container *ngFor=\"let item of computedValue; let index = index\">\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: false}\"\n ></ng-container>\n </ng-container>\n</ng-container>\n<ng-template #flexible>\n <div\n *ngFor=\"let item of computedValue; let index = index\"\n class=\"t-wrapper\"\n >\n <ng-container\n *ngTemplateOutlet=\"bar; context: {$implicit: item, index: index, flexible: true}\"\n ></ng-container>\n </div>\n</ng-template>\n<ng-template #bar let-item let-index=\"index\" let-flexible=\"flexible\">\n <tui-bar\n automation-id=\"tui-bar-set__bar\"\n class=\"t-bar\"\n [class.t-bar_flexible]=\"flexible\"\n [class.t-bar_negative]=\"item < 0\"\n [style.height.%]=\"getHeight(item)\"\n [style.background]=\"getColor(index)\"\n [value]=\"computedSegments\"\n [size]=\"computedSize\"\n [colorHandler]=\"colorHandler\"\n ></tui-bar>\n</ng-template>\n",
|
|
78
78
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
79
79
|
styles: [":host{display:flex;height:100%;align-items:flex-end;justify-content:center}.t-wrapper{display:flex;flex:1;height:100%;align-items:flex-end}.t-wrapper:first-child{margin-left:25%}.t-wrapper:last-child{margin-right:25%}.t-bar{transform-origin:bottom center}.t-bar_negative{transform:rotate(180deg);opacity:var(--tui-disabled-opacity)}.t-bar.t-bar_flexible{max-width:none;width:75%;margin:0 auto}"]
|
|
80
80
|
}),
|
|
@@ -33,7 +33,7 @@ var TuiLegendItemComponent = /** @class */ (function () {
|
|
|
33
33
|
TuiLegendItemComponent = __decorate([
|
|
34
34
|
Component({
|
|
35
35
|
selector: 'tui-legend-item',
|
|
36
|
-
template: "<button\n tuiButton\n type=\"button\"\n size=\"s\"\n appearance=\"whiteblock\"\n class=\"t-button\"\n [pseudoHovered]=\"active || null\"\n>\n <span class=\"t-dot\" [style.background]=\"computedColor\"></span>\n <span class=\"t-text\">{{text}}</span>\n <ng-content></ng-content>\n</button>\n",
|
|
36
|
+
template: "<button\n tuiButton\n type=\"button\"\n size=\"s\"\n appearance=\"whiteblock\"\n class=\"t-button\"\n [pseudoHovered]=\"active || null\"\n>\n <span class=\"t-dot\" [style.background]=\"computedColor\"></span>\n <span class=\"t-text\">{{ text }}</span>\n <ng-content></ng-content>\n</button>\n",
|
|
37
37
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
38
38
|
styles: [":host{display:inline-block}.t-button{font-weight:700}.t-dot{width:.5rem;height:.5rem;border-radius:100%}.t-text{margin:0 .5rem;font-weight:400}"]
|
|
39
39
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-legend-item.js","sources":["ng://@taiga-ui/addon-charts/components/legend-item/legend-item.component.ts","ng://@taiga-ui/addon-charts/components/legend-item/legend-item.module.ts","ng://@taiga-ui/addon-charts/components/legend-item/taiga-ui-addon-charts-components-legend-item.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {colorFallback} from '@taiga-ui/core';\n\n// TODO: Remove fallback in 3.0\n@Component({\n selector: 'tui-legend-item',\n templateUrl: './legend-item.template.html',\n styleUrls: ['./legend-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLegendItemComponent {\n @Input()\n @tuiDefaultProp()\n active = false;\n\n @Input()\n @tuiDefaultProp()\n color = '';\n\n @Input()\n @tuiDefaultProp()\n text = '';\n\n get computedColor(): string {\n return this.color.startsWith('var(') ? this.color : colorFallback(this.color);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {TuiLegendItemComponent} from './legend-item.component';\n\n@NgModule({\n imports: [CommonModule, TuiButtonModule],\n declarations: [TuiLegendItemComponent],\n exports: [TuiLegendItemComponent],\n})\nexport class TuiLegendItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIA;;IAOA;QAGI,WAAM,GAAG,KAAK,CAAC;QAIf,UAAK,GAAG,EAAE,CAAC;QAIX,SAAI,GAAG,EAAE,CAAC;KAKb;IAHG,sBAAI,iDAAa;aAAjB;YACI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjF;;;OAAA;IAZD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;yDACN;IAIX;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACP;IAXD,sBAAsB;QANlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-legend-item.js","sources":["ng://@taiga-ui/addon-charts/components/legend-item/legend-item.component.ts","ng://@taiga-ui/addon-charts/components/legend-item/legend-item.module.ts","ng://@taiga-ui/addon-charts/components/legend-item/taiga-ui-addon-charts-components-legend-item.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tuiDefaultProp} from '@taiga-ui/cdk';\nimport {colorFallback} from '@taiga-ui/core';\n\n// TODO: Remove fallback in 3.0\n@Component({\n selector: 'tui-legend-item',\n templateUrl: './legend-item.template.html',\n styleUrls: ['./legend-item.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLegendItemComponent {\n @Input()\n @tuiDefaultProp()\n active = false;\n\n @Input()\n @tuiDefaultProp()\n color = '';\n\n @Input()\n @tuiDefaultProp()\n text = '';\n\n get computedColor(): string {\n return this.color.startsWith('var(') ? this.color : colorFallback(this.color);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiButtonModule} from '@taiga-ui/core';\nimport {TuiLegendItemComponent} from './legend-item.component';\n\n@NgModule({\n imports: [CommonModule, TuiButtonModule],\n declarations: [TuiLegendItemComponent],\n exports: [TuiLegendItemComponent],\n})\nexport class TuiLegendItemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAIA;;IAOA;QAGI,WAAM,GAAG,KAAK,CAAC;QAIf,UAAK,GAAG,EAAE,CAAC;QAIX,SAAI,GAAG,EAAE,CAAC;KAKb;IAHG,sBAAI,iDAAa;aAAjB;YACI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjF;;;OAAA;IAZD;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;0DACF;IAIf;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;yDACN;IAIX;QAFC,KAAK,EAAE;QACP,cAAc,EAAE;wDACP;IAXD,sBAAsB;QANlC,SAAS,CAAC;YACP,QAAQ,EAAE,iBAAiB;YAC3B,2UAA0C;YAE1C,eAAe,EAAE,uBAAuB,CAAC,MAAM;;SAClD,CAAC;OACW,sBAAsB,CAgBlC;IAAD,6BAAC;CAhBD;;;ICDA;KAAmC;IAAtB,mBAAmB;QAL/B,QAAQ,CAAC;YACN,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;YACxC,YAAY,EAAE,CAAC,sBAAsB,CAAC;YACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;SACpC,CAAC;OACW,mBAAmB,CAAG;IAAD,0BAAC;CAAnC;;ACVA;;;;;;"}
|
|
@@ -301,7 +301,7 @@ var TuiLineChartComponent = /** @class */ (function () {
|
|
|
301
301
|
TuiLineChartComponent = __decorate([
|
|
302
302
|
Component({
|
|
303
303
|
selector: 'tui-line-chart',
|
|
304
|
-
template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n
|
|
304
|
+
template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n focusable=\"false\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n height=\"100%\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox\"\n >\n <defs>\n <linearGradient x1=\"0\" x2=\"0\" y1=\"1\" y2=\"0\" [attr.id]=\"fillId\">\n <stop\n stop-color=\"currentColor\"\n offset=\"0%\"\n stop-opacity=\"0.5\"\n />\n <stop\n stop-color=\"currentColor\"\n offset=\"100%\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path stroke=\"none\" [attr.fill]=\"fill\" [attr.d]=\"fillD\" />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n vector-effect=\"non-scaling-stroke\"\n stroke-width=\"2\"\n [attr.d]=\"d\"\n />\n </svg>\n <ng-container *ngIf=\"dots\">\n <div\n *ngFor=\"let point of value\"\n class=\"t-dot\"\n [style.left.%]=\"getLeft(point[0])\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <div\n *ngIf=\"value.length > 1 || dots\"\n tuiHintDirection=\"top-left\"\n class=\"t-column\"\n [class.t-column_hovered]=\"hovered === index\"\n [tuiHintHost]=\"hintHost\"\n [tuiHint]=\"computedHint && hint\"\n [tuiHintId]=\"getHintId(index)\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n (mouseenter)=\"onMouseEnter(index)\"\n >\n <div\n class=\"t-line t-line_vertical\"\n [style.left.%]=\"getOffset(index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [style.left.%]=\"getOffset(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [tuiFocusable]=\"isFocusable\"\n [tuiDescribedBy]=\"getHintId(index)\"\n ></div>\n </div>\n <div\n *ngIf=\"isFocusable\"\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n <ng-template #hint>\n <div\n polymorpheus-outlet\n class=\"t-text\"\n [content]=\"computedHint\"\n [context]=\"getContentContext(point)\"\n ></div>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"getHovered(hovered) as point\">\n <div\n *ngIf=\"xStringify\"\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n <div\n *ngIf=\"yStringify\"\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n </ng-container>\n</ng-container>\n",
|
|
305
305
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
306
306
|
styles: [":host{display:flex;width:100%;height:100%;pointer-events:none}.t-svg{transform:scale(1,-1)}.t-column{position:absolute;top:0;height:100%;pointer-events:auto}.t-dot{position:absolute;width:.375rem;height:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;width:.5rem;height:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem rgba(0,0,0,.1);outline:0;pointer-events:none}.column._hint_hovered .t-host,.column:hover .t-host,.column_hovered .t-host,.t-host:focus{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-base-03)}.t-line_vertical{top:0;bottom:0;left:50%;width:1px}.t-line_horizontal{z-index:-1;width:100%;height:1px}:host:not([style]) .column._hint_hovered .t-line,:host:not([style]) .column._hint_hovered+.t-line,:host:not([style]) .column:hover .t-line,:host:not([style]) .column:hover+.t-line,:host[style^='z-index: 0'] .column_hovered .t-line,:host[style^='z-index: 0'] .column_hovered+.t-line{opacity:1}.t-text{white-space:pre-wrap}.t-hint{box-shadow:0 .25rem 1.5rem rgba(0,0,0,.12);position:absolute;font:var(--tui-font-text-xs);height:1.25rem;line-height:1.25rem;margin-bottom:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-base-09);background:var(--tui-base-01);transform:translate3d(-50%,0,0)}.t-hint_x{bottom:0}.t-hint_y{left:0}"]
|
|
307
307
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-line-chart.js","sources":["ng://@taiga-ui/addon-charts/components/line-chart/line-chart-hint.directive.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.component.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.module.ts","ng://@taiga-ui/addon-charts/components/line-chart/taiga-ui-addon-charts-components-line-chart.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n EMPTY_QUERY,\n TuiContextWithImplicit,\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';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@Directive({\n selector: '[tuiLineChartHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiLineChartHintDirective {\n @Input('tuiLineChartHint')\n @tuiDefaultProp()\n hint: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> = '';\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent))\n private readonly charts: QueryList<TuiLineChartComponent> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent), {read: ElementRef})\n private readonly chartsRef: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n constructor(\n @Inject(Renderer2) private readonly renderer: Renderer2,\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 filter(v => !v),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n this.charts.forEach(chart => chart.onHovered(NaN));\n });\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n getContext(\n index: number,\n _chart: TuiLineChartComponent,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.computeContext(index, this.charts);\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n raise(index: number, _chart: TuiLineChartComponent) {\n const current = this.charts.map(chart => chart.value[index]);\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach(chart => chart.onHovered(index));\n this.chartsRef.forEach(({nativeElement}, index) =>\n this.renderer.setStyle(\n nativeElement,\n 'z-index',\n sorted.indexOf(current[index]),\n ),\n );\n }\n\n @tuiPure\n private computeContext(\n index: number,\n charts: QueryList<TuiLineChartComponent>,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return {\n $implicit: charts.map(chart => chart.value[index]),\n };\n }\n}\n","import {Location} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {draw} from '@taiga-ui/addon-charts/utils';\nimport {\n inRange,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n TuiStringHandler,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\n\nexport function smoothingAssertion(smoothingFactor: number): boolean {\n return inRange(smoothingFactor, 0, 100);\n}\n\nconst SMOOTHING_MESSAGE = 'smoothingFactor must be between 0 and 100';\n\n@Component({\n selector: 'tui-line-chart',\n templateUrl: './line-chart.template.html',\n styleUrls: ['./line-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLineChartComponent {\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: ReadonlyArray<TuiPoint>) {\n this.value = value.filter(item => !item.some(isNaN));\n }\n\n @Input()\n @tuiDefaultProp()\n x = 0;\n\n @Input()\n @tuiDefaultProp()\n y = 0;\n\n @Input()\n @tuiDefaultProp()\n width = 0;\n\n @Input()\n @tuiDefaultProp()\n height = 0;\n\n @Input()\n @tuiDefaultProp(smoothingAssertion, SMOOTHING_MESSAGE)\n smoothingFactor = 0;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<TuiPoint>> = '';\n\n @Input()\n @tuiDefaultProp()\n xStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n filled = false;\n\n @Input()\n @tuiDefaultProp()\n dots = false;\n\n value: ReadonlyArray<TuiPoint> = [];\n\n private readonly _hovered$ = new Subject<number>();\n\n private readonly autoIdString: string;\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Location) private readonly locationRef: Location,\n @Optional()\n @Inject(TuiLineChartHintDirective)\n private readonly hintDirective: TuiLineChartHintDirective | null,\n ) {\n this.autoIdString = idService.generate();\n }\n\n @tuiPure\n get hovered$(): Observable<number> {\n return this._hovered$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.ngZone));\n }\n\n get fillId(): string {\n return 'tui-line-chart-' + this.autoIdString;\n }\n\n get fill(): string {\n return this.filled\n ? `url(${this.locationRef.prepareExternalUrl(this.locationRef.path())}#${\n this.fillId\n })`\n : 'none';\n }\n\n get viewBox(): string {\n return `${this.x} ${this.y} ${this.width} ${this.height}`;\n }\n\n get d(): string {\n return this.getD(this.value, this.smoothingFactor);\n }\n\n get fillD(): string {\n return this.value.length\n ? this.d + `V ${this.y} H ${this.value[0][0]} V ${this.value[0][1]}`\n : this.d;\n }\n\n get computedHint():\n | PolymorpheusContent<TuiContextWithImplicit<TuiPoint>>\n | PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> {\n return this.hintDirective ? this.hintDirective.hint : this.hintContent;\n }\n\n get isFocusable(): boolean {\n return !this.hintDirective && this.hasHints;\n }\n\n get hasHints(): boolean {\n return !!this.xStringify || !!this.yStringify || !!this.computedHint;\n }\n\n getX(index: number): number {\n if (this.isSinglePoint) {\n return this.value[0][0] / 2;\n }\n\n return index\n ? (this.value[index - 1][0] + this.value[index][0]) / 2\n : 2 * this.value[0][0] - this.getX(1);\n }\n\n getWidth(index: number): number {\n return (100 * this.computeWidth(index)) / this.width;\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n getContentContext(\n $implicit: TuiPoint,\n ):\n | TuiContextWithImplicit<TuiPoint>\n | TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.hintDirective\n ? this.hintDirective.getContext(this.value.indexOf($implicit), this)\n : {$implicit};\n }\n\n getHovered(hovered: number): TuiPoint | null {\n // This checks for NaN and null too since async pipe returns null before first item\n return Number.isInteger(hovered) ? this.value[hovered] : null;\n }\n\n getBottom(y: number): number {\n return (100 * (y - this.y)) / this.height;\n }\n\n getLeft(x: number): number {\n return (100 * (x - this.x)) / this.width;\n }\n\n getOffset(x: number): number {\n return (100 * (this.value[x][0] - this.getX(x))) / this.computeWidth(x);\n }\n\n onMouseEnter(index: number) {\n if (this.hintDirective) {\n this.hintDirective.raise(index, this);\n } else {\n this.onHovered(index);\n }\n }\n\n onHovered(index: number) {\n this._hovered$.next(index);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (!this.hintDirective) {\n this.onHovered(NaN);\n }\n }\n\n private get isSinglePoint(): boolean {\n return this.value.length === 1;\n }\n\n @tuiPure\n private getD(value: ReadonlyArray<TuiPoint>, smoothingFactor: number): string {\n return value.reduce(\n (d, point, index) =>\n index ? `${d} ${draw(value, index, smoothingFactor)}` : `M ${point}`,\n '',\n );\n }\n\n private computeWidth(index: number): number {\n return index === this.value.length - 1\n ? 2 * (this.value[index][0] - this.getX(index))\n : this.getX(index + 1) - this.getX(index);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiHintModule,\n TuiFocusableModule,\n TuiDescribedByModule,\n TuiLetModule,\n ],\n declarations: [TuiLineChartComponent, TuiLineChartHintDirective],\n exports: [TuiLineChartComponent, TuiLineChartHintDirective],\n})\nexport class TuiLineChartModule {}\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-chart.js","sources":["ng://@taiga-ui/addon-charts/components/line-chart/line-chart-hint.directive.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.component.ts","ng://@taiga-ui/addon-charts/components/line-chart/line-chart.module.ts","ng://@taiga-ui/addon-charts/components/line-chart/taiga-ui-addon-charts-components-line-chart.ts"],"sourcesContent":["import {\n ContentChildren,\n Directive,\n ElementRef,\n forwardRef,\n Inject,\n Input,\n NgZone,\n QueryList,\n Renderer2,\n} from '@angular/core';\nimport {ANIMATION_FRAME} from '@ng-web-apis/common';\nimport {\n EMPTY_QUERY,\n TuiContextWithImplicit,\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';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@Directive({\n selector: '[tuiLineChartHint]',\n providers: [TuiDestroyService],\n})\nexport class TuiLineChartHintDirective {\n @Input('tuiLineChartHint')\n @tuiDefaultProp()\n hint: PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> = '';\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent))\n private readonly charts: QueryList<TuiLineChartComponent> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiLineChartComponent), {read: ElementRef})\n private readonly chartsRef: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n constructor(\n @Inject(Renderer2) private readonly renderer: Renderer2,\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 filter(v => !v),\n tuiZonefree(ngZone),\n takeUntil(destroy$),\n )\n .subscribe(() => {\n this.charts.forEach(chart => chart.onHovered(NaN));\n });\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n getContext(\n index: number,\n _chart: TuiLineChartComponent,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.computeContext(index, this.charts);\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n raise(index: number, _chart: TuiLineChartComponent) {\n const current = this.charts.map(chart => chart.value[index]);\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach(chart => chart.onHovered(index));\n this.chartsRef.forEach(({nativeElement}, index) =>\n this.renderer.setStyle(\n nativeElement,\n 'z-index',\n sorted.indexOf(current[index]),\n ),\n );\n }\n\n @tuiPure\n private computeContext(\n index: number,\n charts: QueryList<TuiLineChartComponent>,\n ): TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return {\n $implicit: charts.map(chart => chart.value[index]),\n };\n }\n}\n","import {Location} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostListener,\n Inject,\n Input,\n NgZone,\n Optional,\n} from '@angular/core';\nimport {draw} from '@taiga-ui/addon-charts/utils';\nimport {\n inRange,\n TuiContextWithImplicit,\n tuiDefaultProp,\n TuiIdService,\n tuiPure,\n TuiStringHandler,\n tuiZoneOptimized,\n} from '@taiga-ui/cdk';\nimport {TuiPoint} from '@taiga-ui/core';\nimport {PolymorpheusContent} from '@tinkoff/ng-polymorpheus';\nimport {Observable, Subject} from 'rxjs';\nimport {distinctUntilChanged} from 'rxjs/operators';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\n\nexport function smoothingAssertion(smoothingFactor: number): boolean {\n return inRange(smoothingFactor, 0, 100);\n}\n\nconst SMOOTHING_MESSAGE = 'smoothingFactor must be between 0 and 100';\n\n@Component({\n selector: 'tui-line-chart',\n templateUrl: './line-chart.template.html',\n styleUrls: ['./line-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiLineChartComponent {\n @Input('value')\n @tuiDefaultProp()\n set valueSetter(value: ReadonlyArray<TuiPoint>) {\n this.value = value.filter(item => !item.some(isNaN));\n }\n\n @Input()\n @tuiDefaultProp()\n x = 0;\n\n @Input()\n @tuiDefaultProp()\n y = 0;\n\n @Input()\n @tuiDefaultProp()\n width = 0;\n\n @Input()\n @tuiDefaultProp()\n height = 0;\n\n @Input()\n @tuiDefaultProp(smoothingAssertion, SMOOTHING_MESSAGE)\n smoothingFactor = 0;\n\n @Input()\n @tuiDefaultProp()\n hintContent: PolymorpheusContent<TuiContextWithImplicit<TuiPoint>> = '';\n\n @Input()\n @tuiDefaultProp()\n xStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n @tuiDefaultProp()\n filled = false;\n\n @Input()\n @tuiDefaultProp()\n dots = false;\n\n value: ReadonlyArray<TuiPoint> = [];\n\n private readonly _hovered$ = new Subject<number>();\n\n private readonly autoIdString: string;\n\n constructor(\n @Inject(TuiIdService) idService: TuiIdService,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(Location) private readonly locationRef: Location,\n @Optional()\n @Inject(TuiLineChartHintDirective)\n private readonly hintDirective: TuiLineChartHintDirective | null,\n ) {\n this.autoIdString = idService.generate();\n }\n\n @tuiPure\n get hovered$(): Observable<number> {\n return this._hovered$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.ngZone));\n }\n\n get fillId(): string {\n return 'tui-line-chart-' + this.autoIdString;\n }\n\n get fill(): string {\n return this.filled\n ? `url(${this.locationRef.prepareExternalUrl(this.locationRef.path())}#${\n this.fillId\n })`\n : 'none';\n }\n\n get viewBox(): string {\n return `${this.x} ${this.y} ${this.width} ${this.height}`;\n }\n\n get d(): string {\n return this.getD(this.value, this.smoothingFactor);\n }\n\n get fillD(): string {\n return this.value.length\n ? this.d + `V ${this.y} H ${this.value[0][0]} V ${this.value[0][1]}`\n : this.d;\n }\n\n get computedHint():\n | PolymorpheusContent<TuiContextWithImplicit<TuiPoint>>\n | PolymorpheusContent<TuiContextWithImplicit<ReadonlyArray<TuiPoint>>> {\n return this.hintDirective ? this.hintDirective.hint : this.hintContent;\n }\n\n get isFocusable(): boolean {\n return !this.hintDirective && this.hasHints;\n }\n\n get hasHints(): boolean {\n return !!this.xStringify || !!this.yStringify || !!this.computedHint;\n }\n\n getX(index: number): number {\n if (this.isSinglePoint) {\n return this.value[0][0] / 2;\n }\n\n return index\n ? (this.value[index - 1][0] + this.value[index][0]) / 2\n : 2 * this.value[0][0] - this.getX(1);\n }\n\n getWidth(index: number): number {\n return (100 * this.computeWidth(index)) / this.width;\n }\n\n getHintId(index: number): string {\n return `${this.autoIdString}_${index}`;\n }\n\n getContentContext(\n $implicit: TuiPoint,\n ):\n | TuiContextWithImplicit<TuiPoint>\n | TuiContextWithImplicit<ReadonlyArray<TuiPoint>> {\n return this.hintDirective\n ? this.hintDirective.getContext(this.value.indexOf($implicit), this)\n : {$implicit};\n }\n\n getHovered(hovered: number): TuiPoint | null {\n // This checks for NaN and null too since async pipe returns null before first item\n return Number.isInteger(hovered) ? this.value[hovered] : null;\n }\n\n getBottom(y: number): number {\n return (100 * (y - this.y)) / this.height;\n }\n\n getLeft(x: number): number {\n return (100 * (x - this.x)) / this.width;\n }\n\n getOffset(x: number): number {\n return (100 * (this.value[x][0] - this.getX(x))) / this.computeWidth(x);\n }\n\n onMouseEnter(index: number) {\n if (this.hintDirective) {\n this.hintDirective.raise(index, this);\n } else {\n this.onHovered(index);\n }\n }\n\n onHovered(index: number) {\n this._hovered$.next(index);\n }\n\n @HostListener('mouseleave')\n onMouseLeave() {\n if (!this.hintDirective) {\n this.onHovered(NaN);\n }\n }\n\n private get isSinglePoint(): boolean {\n return this.value.length === 1;\n }\n\n @tuiPure\n private getD(value: ReadonlyArray<TuiPoint>, smoothingFactor: number): string {\n return value.reduce(\n (d, point, index) =>\n index ? `${d} ${draw(value, index, smoothingFactor)}` : `M ${point}`,\n '',\n );\n }\n\n private computeWidth(index: number): number {\n return index === this.value.length - 1\n ? 2 * (this.value[index][0] - this.getX(index))\n : this.getX(index + 1) - this.getX(index);\n }\n}\n","import {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TuiFocusableModule, TuiLetModule} from '@taiga-ui/cdk';\nimport {TuiDescribedByModule, TuiHintModule} from '@taiga-ui/core';\nimport {PolymorpheusModule} from '@tinkoff/ng-polymorpheus';\nimport {TuiLineChartHintDirective} from './line-chart-hint.directive';\nimport {TuiLineChartComponent} from './line-chart.component';\n\n@NgModule({\n imports: [\n CommonModule,\n PolymorpheusModule,\n TuiHintModule,\n TuiFocusableModule,\n TuiDescribedByModule,\n TuiLetModule,\n ],\n declarations: [TuiLineChartComponent, TuiLineChartHintDirective],\n exports: [TuiLineChartComponent, TuiLineChartHintDirective],\n})\nexport class TuiLineChartModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -145,7 +145,7 @@ var TuiPieChartComponent = /** @class */ (function () {
|
|
|
145
145
|
TuiPieChartComponent = __decorate([
|
|
146
146
|
Component({
|
|
147
147
|
selector: 'tui-pie-chart',
|
|
148
|
-
template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n
|
|
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\n x=\"-200\"\n y=\"-200\"\n width=\"400\"\n height=\"400\"\n fill=\"white\"\n ></rect>\n <circle cx=\"0\" cy=\"0\" [attr.r]=\"radius\"></circle>\n </mask>\n </defs>\n <g [style.mask]=\"mask\">\n <path\n *ngFor=\"let segment of segments; let index = index\"\n fill=\"currentColor\"\n automation-id=\"tui-pie-chart__segment\"\n tuiHintMode=\"onDark\"\n tuiHintDirection=\"top-right\"\n class=\"t-segment\"\n [attr.transform]=\"getTransform(index)\"\n [attr.d]=\"segment\"\n [style.color]=\"getColor(index)\"\n [tuiPointerHint]=\"getHint(hint)\"\n (tuiHoveredChange)=\"onHovered($event, index)\"\n >\n <ng-template #hint>\n <ng-container\n *ngTemplateOutlet=\"template; context: getContentContext(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]=\"getContentContext(index)\"\n ></div>\n</ng-template>\n",
|
|
149
149
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
150
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}"]
|
|
151
151
|
}),
|
|
@@ -77,7 +77,7 @@ var TuiRingChartComponent = /** @class */ (function () {
|
|
|
77
77
|
TuiRingChartComponent = __decorate([
|
|
78
78
|
Component({
|
|
79
79
|
selector: 'tui-ring-chart',
|
|
80
|
-
template: "<div *ngIf=\"hasContent\" class=\"t-content\">\n <div\n polymorpheus-outlet\n
|
|
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]=\"contentContext\"\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
81
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
82
82
|
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
83
|
})
|