@taiga-ui/addon-charts 4.52.0-canary.698642f → 4.52.0-canary.a4e325d
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/fesm2022/taiga-ui-addon-charts-components-axes.mjs +4 -3
- package/fesm2022/taiga-ui-addon-charts-components-axes.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-bar-chart.mjs +3 -3
- package/fesm2022/taiga-ui-addon-charts-components-bar-chart.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-bar-set.mjs +3 -3
- package/fesm2022/taiga-ui-addon-charts-components-bar-set.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-bar.mjs +4 -3
- package/fesm2022/taiga-ui-addon-charts-components-bar.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-line-chart.mjs +4 -4
- package/fesm2022/taiga-ui-addon-charts-components-line-chart.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-line-days-chart.mjs +5 -4
- package/fesm2022/taiga-ui-addon-charts-components-line-days-chart.mjs.map +1 -1
- package/package.json +9 -9
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NgForOf, NgIf } from '@angular/common';
|
|
1
2
|
import * as i0 from '@angular/core';
|
|
2
3
|
import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
4
|
import { CHAR_NO_BREAK_SPACE } from '@taiga-ui/cdk/constants';
|
|
@@ -40,14 +41,14 @@ class TuiAxes {
|
|
|
40
41
|
return this.axisY === 'none';
|
|
41
42
|
}
|
|
42
43
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiAxes, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiAxes, isStandalone: true, selector: "tui-axes", inputs: { axisX: "axisX", axisXLabels: "axisXLabels", axisY: "axisY", axisYInset: "axisYInset", axisYLabels: "axisYLabels", axisYName: "axisYName", axisYSecondaryInset: "axisYSecondaryInset", axisYSecondaryLabels: "axisYSecondaryLabels", axisYSecondaryName: "axisYSecondaryName", horizontalLines: "horizontalLines", horizontalLinesHandler: "horizontalLinesHandler", verticalLines: "verticalLines", verticalLinesHandler: "verticalLinesHandler" }, host: { attributes: { "dir": "ltr" }, properties: { "class._centered": "centeredXLabels" } }, ngImport: i0, template: "<div\n *ngIf=\"hasYLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\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\n *ngIf=\"!axisYInset\"\n class=\"t-labels-y t-labels-y_primary\"\n >\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.borderBottomStyle]=\"axisX\"\n [style.borderLeftStyle]=\"axisY\"\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\n *ngIf=\"axisYInset\"\n class=\"t-labels-y t-labels-y_inset\"\n >\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 />\n </div>\n </div>\n <div\n *ngIf=\"hasXLabels\"\n class=\"t-labels-x\"\n >\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\n *ngIf=\"!axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_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\n *ngIf=\"axisYSecondaryName\"\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSecondaryName }}\n </div>\n</div>\n", styles: [":host{display:flex}.t-wrapper{display:flex;flex:1;block-size:100%;flex-direction:column}.t-grid{position:relative;display:flex;flex:1;justify-content:space-around;align-items:flex-end;border-width:1px;border-color:var(--tui-border-normal);isolation:isolate}.t-horizontal{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;flex-direction:column}.t-vertical{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex}:host._centered .t-vertical:after{content:\"\";display:block;flex:1 0 1px}.t-line{flex:2 0 1px;box-sizing:border-box;border-width:1px;border-color:var(--tui-border-normal)}:host._centered .t-line_vertical:first-child{flex:1 0 1px;pointer-events:none}.t-side{display:flex;align-items:stretch}.t-side_padding{padding-block-end:2rem}.t-name{font:var(--tui-font-text-xs);writing-mode:tb;text-align:center;padding-block-end:.75rem;color:var(--tui-text-secondary)}.t-name_primary{transform:rotate(180deg)}.t-labels-y{display:flex;font:var(--tui-font-text-xs);flex-direction:column-reverse;justify-content:space-between;color:var(--tui-text-secondary)}.t-labels-y_primary{text-align:end;padding-inline-end:.75rem}.t-labels-y_secondary{padding-inline-start:.75rem}.t-labels-y_transparent{border-color:transparent}.t-labels-y_inset{position:absolute;top:.5625rem;left:.25rem;bottom:-.75rem;pointer-events:none}.t-labels-y_inset_secondary{left:auto;right:.25rem;text-align:end}.t-labels-x{position:relative;display:flex;font:var(--tui-font-text-xs);border-inline-end:1px solid transparent;color:var(--tui-text-secondary)}.t-label-x{block-size:.4375rem;border-inline-start:1px solid var(--tui-border-normal);flex:1;margin-block-end:1.5625rem}.t-label-x:before{content:\"\";display:block;block-size:.5625rem}.t-label-x_transparent{border-color:transparent}:host._centered .t-label-x{block-size:2rem;text-align:center;border:none;margin:0}:host:not(._centered) .t-label-x:last-child:not(:first-child){position:absolute;right:0;text-align:end;border-inline-start:none}.t-label-y:first-child{margin-block-end:-.375rem}.t-label-y:last-child{margin-block-start:-.375rem}.t-content{position:absolute;top:0;left:-1px;right:0;bottom:-1px;display:flex;align-items:flex-end}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiRepeatTimes, selector: "[tuiRepeatTimes][tuiRepeatTimesOf]", inputs: ["tuiRepeatTimesOf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
44
45
|
}
|
|
45
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiAxes, decorators: [{
|
|
46
47
|
type: Component,
|
|
47
|
-
args: [{ selector: 'tui-axes', imports: [TuiRepeatTimes], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
48
|
+
args: [{ selector: 'tui-axes', imports: [NgForOf, NgIf, TuiRepeatTimes], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
48
49
|
dir: 'ltr',
|
|
49
50
|
'[class._centered]': 'centeredXLabels',
|
|
50
|
-
}, template: "
|
|
51
|
+
}, template: "<div\n *ngIf=\"hasYLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\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\n *ngIf=\"!axisYInset\"\n class=\"t-labels-y t-labels-y_primary\"\n >\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.borderBottomStyle]=\"axisX\"\n [style.borderLeftStyle]=\"axisY\"\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\n *ngIf=\"axisYInset\"\n class=\"t-labels-y t-labels-y_inset\"\n >\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 />\n </div>\n </div>\n <div\n *ngIf=\"hasXLabels\"\n class=\"t-labels-x\"\n >\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\n *ngIf=\"!axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_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\n *ngIf=\"axisYSecondaryName\"\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSecondaryName }}\n </div>\n</div>\n", styles: [":host{display:flex}.t-wrapper{display:flex;flex:1;block-size:100%;flex-direction:column}.t-grid{position:relative;display:flex;flex:1;justify-content:space-around;align-items:flex-end;border-width:1px;border-color:var(--tui-border-normal);isolation:isolate}.t-horizontal{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;flex-direction:column}.t-vertical{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex}:host._centered .t-vertical:after{content:\"\";display:block;flex:1 0 1px}.t-line{flex:2 0 1px;box-sizing:border-box;border-width:1px;border-color:var(--tui-border-normal)}:host._centered .t-line_vertical:first-child{flex:1 0 1px;pointer-events:none}.t-side{display:flex;align-items:stretch}.t-side_padding{padding-block-end:2rem}.t-name{font:var(--tui-font-text-xs);writing-mode:tb;text-align:center;padding-block-end:.75rem;color:var(--tui-text-secondary)}.t-name_primary{transform:rotate(180deg)}.t-labels-y{display:flex;font:var(--tui-font-text-xs);flex-direction:column-reverse;justify-content:space-between;color:var(--tui-text-secondary)}.t-labels-y_primary{text-align:end;padding-inline-end:.75rem}.t-labels-y_secondary{padding-inline-start:.75rem}.t-labels-y_transparent{border-color:transparent}.t-labels-y_inset{position:absolute;top:.5625rem;left:.25rem;bottom:-.75rem;pointer-events:none}.t-labels-y_inset_secondary{left:auto;right:.25rem;text-align:end}.t-labels-x{position:relative;display:flex;font:var(--tui-font-text-xs);border-inline-end:1px solid transparent;color:var(--tui-text-secondary)}.t-label-x{block-size:.4375rem;border-inline-start:1px solid var(--tui-border-normal);flex:1;margin-block-end:1.5625rem}.t-label-x:before{content:\"\";display:block;block-size:.5625rem}.t-label-x_transparent{border-color:transparent}:host._centered .t-label-x{block-size:2rem;text-align:center;border:none;margin:0}:host:not(._centered) .t-label-x:last-child:not(:first-child){position:absolute;right:0;text-align:end;border-inline-start:none}.t-label-y:first-child{margin-block-end:-.375rem}.t-label-y:last-child{margin-block-start:-.375rem}.t-content{position:absolute;top:0;left:-1px;right:0;bottom:-1px;display:flex;align-items:flex-end}\n"] }]
|
|
51
52
|
}], propDecorators: { axisX: [{
|
|
52
53
|
type: Input
|
|
53
54
|
}], axisXLabels: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-axes.mjs","sources":["../../../projects/addon-charts/components/axes/axes.component.ts","../../../projects/addon-charts/components/axes/axes.template.html","../../../projects/addon-charts/components/axes/taiga-ui-addon-charts-components-axes.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {type TuiLineHandler, type TuiLineType} from '@taiga-ui/addon-charts/types';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\n\nexport const TUI_ALWAYS_DASHED: TuiLineHandler = () => 'dashed';\nexport const TUI_ALWAYS_DOTTED: TuiLineHandler = () => 'dotted';\nexport const TUI_ALWAYS_SOLID: TuiLineHandler = () => 'solid';\nexport const TUI_ALWAYS_NONE: TuiLineHandler = () => 'none';\n\n@Component({\n selector: 'tui-axes',\n imports: [TuiRepeatTimes],\n templateUrl: './axes.template.html',\n styleUrls: ['./axes.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n dir: 'ltr',\n '[class._centered]': 'centeredXLabels',\n },\n})\nexport class TuiAxes {\n @Input()\n public axisX: TuiLineType = 'solid';\n\n @Input()\n public axisXLabels: ReadonlyArray<string | null> = [];\n\n @Input()\n public axisY: TuiLineType = 'solid';\n\n @Input()\n public axisYInset = false;\n\n @Input()\n public axisYLabels: readonly string[] = [];\n\n @Input()\n public axisYName = '';\n\n @Input()\n public axisYSecondaryInset = false;\n\n @Input()\n public axisYSecondaryLabels: readonly string[] = [];\n\n @Input()\n public axisYSecondaryName = '';\n\n @Input()\n public horizontalLines = 0;\n\n @Input()\n public horizontalLinesHandler: TuiLineHandler = TUI_ALWAYS_SOLID;\n\n @Input()\n public verticalLines = 0;\n\n @Input()\n public verticalLinesHandler: TuiLineHandler = TUI_ALWAYS_DASHED;\n\n public get hasXLabels(): boolean {\n return !!this.axisXLabels.length;\n }\n\n public get hasYLabels(): boolean {\n return (!!this.axisYLabels.length && !this.axisYInset) || !!this.axisYName;\n }\n\n public get hasYSecondaryLabels(): boolean {\n return (\n (!!this.axisYSecondaryLabels.length && !this.axisYSecondaryInset) ||\n !!this.axisYSecondaryName\n );\n }\n\n public fallback(label: string | null): string {\n return label || CHAR_NO_BREAK_SPACE;\n }\n\n protected get centeredXLabels(): boolean {\n return this.axisY === 'none';\n }\n}\n","
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-axes.mjs","sources":["../../../projects/addon-charts/components/axes/axes.component.ts","../../../projects/addon-charts/components/axes/axes.template.html","../../../projects/addon-charts/components/axes/taiga-ui-addon-charts-components-axes.ts"],"sourcesContent":["import {NgForOf, NgIf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {type TuiLineHandler, type TuiLineType} from '@taiga-ui/addon-charts/types';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\nimport {TuiRepeatTimes} from '@taiga-ui/cdk/directives/repeat-times';\n\nexport const TUI_ALWAYS_DASHED: TuiLineHandler = () => 'dashed';\nexport const TUI_ALWAYS_DOTTED: TuiLineHandler = () => 'dotted';\nexport const TUI_ALWAYS_SOLID: TuiLineHandler = () => 'solid';\nexport const TUI_ALWAYS_NONE: TuiLineHandler = () => 'none';\n\n@Component({\n selector: 'tui-axes',\n imports: [NgForOf, NgIf, TuiRepeatTimes],\n templateUrl: './axes.template.html',\n styleUrls: ['./axes.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n dir: 'ltr',\n '[class._centered]': 'centeredXLabels',\n },\n})\nexport class TuiAxes {\n @Input()\n public axisX: TuiLineType = 'solid';\n\n @Input()\n public axisXLabels: ReadonlyArray<string | null> = [];\n\n @Input()\n public axisY: TuiLineType = 'solid';\n\n @Input()\n public axisYInset = false;\n\n @Input()\n public axisYLabels: readonly string[] = [];\n\n @Input()\n public axisYName = '';\n\n @Input()\n public axisYSecondaryInset = false;\n\n @Input()\n public axisYSecondaryLabels: readonly string[] = [];\n\n @Input()\n public axisYSecondaryName = '';\n\n @Input()\n public horizontalLines = 0;\n\n @Input()\n public horizontalLinesHandler: TuiLineHandler = TUI_ALWAYS_SOLID;\n\n @Input()\n public verticalLines = 0;\n\n @Input()\n public verticalLinesHandler: TuiLineHandler = TUI_ALWAYS_DASHED;\n\n public get hasXLabels(): boolean {\n return !!this.axisXLabels.length;\n }\n\n public get hasYLabels(): boolean {\n return (!!this.axisYLabels.length && !this.axisYInset) || !!this.axisYName;\n }\n\n public get hasYSecondaryLabels(): boolean {\n return (\n (!!this.axisYSecondaryLabels.length && !this.axisYSecondaryInset) ||\n !!this.axisYSecondaryName\n );\n }\n\n public fallback(label: string | null): string {\n return label || CHAR_NO_BREAK_SPACE;\n }\n\n protected get centeredXLabels(): boolean {\n return this.axisY === 'none';\n }\n}\n","<div\n *ngIf=\"hasYLabels\"\n class=\"t-side\"\n [class.t-side_padding]=\"hasXLabels\"\n>\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\n *ngIf=\"!axisYInset\"\n class=\"t-labels-y t-labels-y_primary\"\n >\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.borderBottomStyle]=\"axisX\"\n [style.borderLeftStyle]=\"axisY\"\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\n *ngIf=\"axisYInset\"\n class=\"t-labels-y t-labels-y_inset\"\n >\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 />\n </div>\n </div>\n <div\n *ngIf=\"hasXLabels\"\n class=\"t-labels-x\"\n >\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\n *ngIf=\"!axisYSecondaryInset\"\n class=\"t-labels-y t-labels-y_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\n *ngIf=\"axisYSecondaryName\"\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSecondaryName }}\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { AsyncPipe } from '@angular/common';
|
|
2
|
+
import { AsyncPipe, NgForOf } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { inject, EventEmitter, Output, Input, ViewChildren, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
5
|
import { TuiBarSet } from '@taiga-ui/addon-charts/components/bar-set';
|
|
@@ -49,7 +49,7 @@ class TuiBarChart {
|
|
|
49
49
|
: values.reduce((max, value) => Math.max(...value, max), 0);
|
|
50
50
|
}
|
|
51
51
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiBarChart, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
52
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
52
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiBarChart, isStandalone: true, selector: "tui-bar-chart", inputs: { value: "value", max: "max", size: "size", collapsed: "collapsed" }, outputs: { tapColumn: "tapColumn" }, viewQueries: [{ propertyName: "drivers", predicate: TuiHintHover, descendants: true }], ngImport: i0, template: "<div\n *ngFor=\"let set of transposed; let index = index\"\n class=\"t-wrapper\"\n [class.t-wrapper_hoverable]=\"!!hintContent\"\n [class.t-wrapper_hovered]=\"drivers.get(index) | async\"\n [tuiHint]=\"hintContent\"\n [tuiHintAppearance]=\"hintAppearance\"\n [tuiHintContext]=\"{$implicit: index}\"\n [tuiHintDescribe]=\"getHintId(index)\"\n [tuiHintHost]=\"hintHost\"\n (click)=\"tapColumn.emit(index)\"\n (keydown.enter)=\"tapColumn.emit(index)\"\n (mouseenter.once)=\"(0)\"\n>\n <div\n class=\"t-container\"\n [style.height.%]=\"set | tuiMapper: percentMapper : collapsed : computedMax\"\n >\n <div\n #hintHost\n class=\"t-host\"\n ></div>\n <tui-bar-set\n class=\"t-set\"\n [collapsed]=\"collapsed\"\n [id]=\"getHintId(index)\"\n [size]=\"size\"\n [tabIndex]=\"hintContent ? 0 : -1\"\n [value]=\"set\"\n />\n </div>\n</div>\n", styles: [":host{display:flex;flex:1;block-size:100%}.t-wrapper{transition-property:background-color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;flex:1;align-items:flex-end;justify-content:center;block-size:100%}.t-wrapper_hoverable{cursor:pointer}.t-wrapper_hoverable:hover,.t-wrapper_hoverable.t-wrapper_hovered{background-color:#0000000d}.t-container{flex:1}.t-host{position:absolute;left:50%;right:50%}.t-set{border-radius:var(--tui-radius-m);pointer-events:none;outline:none}.t-set:focus{box-shadow:0 0 0 2px var(--tui-border-focus)}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: TuiBarSet, selector: "tui-bar-set", inputs: ["value", "size", "collapsed"] }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: i1.TuiHintDescribe, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { kind: "directive", type: i1.TuiHintHost, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }, { kind: "pipe", type: TuiMapperPipe, name: "tuiMapper" }], viewProviders: [tuiHintOptionsProvider({ direction: 'top' })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
53
53
|
}
|
|
54
54
|
__decorate([
|
|
55
55
|
tuiPure
|
|
@@ -59,7 +59,7 @@ __decorate([
|
|
|
59
59
|
], TuiBarChart.prototype, "getMax", null);
|
|
60
60
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiBarChart, decorators: [{
|
|
61
61
|
type: Component,
|
|
62
|
-
args: [{ selector: 'tui-bar-chart', imports: [AsyncPipe, TuiBarSet, TuiHint, TuiMapperPipe], changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [tuiHintOptionsProvider({ direction: 'top' })], template: "
|
|
62
|
+
args: [{ selector: 'tui-bar-chart', imports: [AsyncPipe, NgForOf, TuiBarSet, TuiHint, TuiMapperPipe], changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [tuiHintOptionsProvider({ direction: 'top' })], template: "<div\n *ngFor=\"let set of transposed; let index = index\"\n class=\"t-wrapper\"\n [class.t-wrapper_hoverable]=\"!!hintContent\"\n [class.t-wrapper_hovered]=\"drivers.get(index) | async\"\n [tuiHint]=\"hintContent\"\n [tuiHintAppearance]=\"hintAppearance\"\n [tuiHintContext]=\"{$implicit: index}\"\n [tuiHintDescribe]=\"getHintId(index)\"\n [tuiHintHost]=\"hintHost\"\n (click)=\"tapColumn.emit(index)\"\n (keydown.enter)=\"tapColumn.emit(index)\"\n (mouseenter.once)=\"(0)\"\n>\n <div\n class=\"t-container\"\n [style.height.%]=\"set | tuiMapper: percentMapper : collapsed : computedMax\"\n >\n <div\n #hintHost\n class=\"t-host\"\n ></div>\n <tui-bar-set\n class=\"t-set\"\n [collapsed]=\"collapsed\"\n [id]=\"getHintId(index)\"\n [size]=\"size\"\n [tabIndex]=\"hintContent ? 0 : -1\"\n [value]=\"set\"\n />\n </div>\n</div>\n", styles: [":host{display:flex;flex:1;block-size:100%}.t-wrapper{transition-property:background-color;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;position:relative;display:flex;flex:1;align-items:flex-end;justify-content:center;block-size:100%}.t-wrapper_hoverable{cursor:pointer}.t-wrapper_hoverable:hover,.t-wrapper_hoverable.t-wrapper_hovered{background-color:#0000000d}.t-container{flex:1}.t-host{position:absolute;left:50%;right:50%}.t-set{border-radius:var(--tui-radius-m);pointer-events:none;outline:none}.t-set:focus{box-shadow:0 0 0 2px var(--tui-border-focus)}\n"] }]
|
|
63
63
|
}], propDecorators: { drivers: [{
|
|
64
64
|
type: ViewChildren,
|
|
65
65
|
args: [TuiHintHover]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-bar-chart.mjs","sources":["../../../projects/addon-charts/components/bar-chart/bar-chart.component.ts","../../../projects/addon-charts/components/bar-chart/bar-chart.template.html","../../../projects/addon-charts/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.ts"],"sourcesContent":["import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n type QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {TuiBarSet} from '@taiga-ui/addon-charts/components/bar-set';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiContext, type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiHint,\n TuiHintHover,\n TuiHintOptionsDirective,\n tuiHintOptionsProvider,\n} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-bar-chart',\n imports: [AsyncPipe, TuiBarSet, TuiHint, TuiMapperPipe],\n templateUrl: './bar-chart.template.html',\n styleUrls: ['./bar-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [tuiHintOptionsProvider({direction: 'top'})],\n})\nexport class TuiBarChart {\n private readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n private readonly autoId = tuiInjectId();\n\n @ViewChildren(TuiHintHover)\n protected readonly drivers: QueryList<Observable<boolean>> = EMPTY_QUERY;\n\n @Input()\n public value: ReadonlyArray<readonly number[]> = [];\n\n @Input()\n public max = NaN;\n\n @Input()\n public size: TuiSizeL | TuiSizeS | null = 'm';\n\n @Input()\n public collapsed = false;\n\n @Output()\n public readonly tapColumn = new EventEmitter<number>();\n\n public get transposed(): ReadonlyArray<readonly number[]> {\n return this.transpose(this.value);\n }\n\n public get computedMax(): number {\n return this.max || this.getMax(this.value, this.collapsed);\n }\n\n public readonly percentMapper: TuiMapper<\n [readonly number[], boolean, number],\n number\n > = (set, collapsed, max) =>\n (100 * (collapsed ? tuiSum(...set) : Math.max(...set))) / max;\n\n protected get hintContent(): PolymorpheusContent<TuiContext<number>> {\n return this.hintOptions?.content || '';\n }\n\n protected get hintAppearance(): string {\n return this.hintOptions?.appearance || '';\n }\n\n protected getHintId(index: number): string {\n return `${this.autoId}_${index}`;\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] || 0]),\n [],\n );\n }\n\n @tuiPure\n private getMax(values: ReadonlyArray<readonly number[]>, collapsed: boolean): number {\n return collapsed\n ? Math.max(\n // eslint-disable-next-line no-restricted-syntax\n ...values.reduce((result, next) =>\n result.map((value, index) => value + (next[index] || 0)),\n ),\n )\n : values.reduce((max, value) => Math.max(...value, max), 0);\n }\n}\n","
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-bar-chart.mjs","sources":["../../../projects/addon-charts/components/bar-chart/bar-chart.component.ts","../../../projects/addon-charts/components/bar-chart/bar-chart.template.html","../../../projects/addon-charts/components/bar-chart/taiga-ui-addon-charts-components-bar-chart.ts"],"sourcesContent":["import {AsyncPipe, NgForOf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n inject,\n Input,\n Output,\n type QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {TuiBarSet} from '@taiga-ui/addon-charts/components/bar-set';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiMapperPipe} from '@taiga-ui/cdk/pipes/mapper';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiContext, type TuiMapper} from '@taiga-ui/cdk/types';\nimport {tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiHint,\n TuiHintHover,\n TuiHintOptionsDirective,\n tuiHintOptionsProvider,\n} from '@taiga-ui/core/directives/hint';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {type Observable} from 'rxjs';\n\n@Component({\n selector: 'tui-bar-chart',\n imports: [AsyncPipe, NgForOf, TuiBarSet, TuiHint, TuiMapperPipe],\n templateUrl: './bar-chart.template.html',\n styleUrls: ['./bar-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n viewProviders: [tuiHintOptionsProvider({direction: 'top'})],\n})\nexport class TuiBarChart {\n private readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n private readonly autoId = tuiInjectId();\n\n @ViewChildren(TuiHintHover)\n protected readonly drivers: QueryList<Observable<boolean>> = EMPTY_QUERY;\n\n @Input()\n public value: ReadonlyArray<readonly number[]> = [];\n\n @Input()\n public max = NaN;\n\n @Input()\n public size: TuiSizeL | TuiSizeS | null = 'm';\n\n @Input()\n public collapsed = false;\n\n @Output()\n public readonly tapColumn = new EventEmitter<number>();\n\n public get transposed(): ReadonlyArray<readonly number[]> {\n return this.transpose(this.value);\n }\n\n public get computedMax(): number {\n return this.max || this.getMax(this.value, this.collapsed);\n }\n\n public readonly percentMapper: TuiMapper<\n [readonly number[], boolean, number],\n number\n > = (set, collapsed, max) =>\n (100 * (collapsed ? tuiSum(...set) : Math.max(...set))) / max;\n\n protected get hintContent(): PolymorpheusContent<TuiContext<number>> {\n return this.hintOptions?.content || '';\n }\n\n protected get hintAppearance(): string {\n return this.hintOptions?.appearance || '';\n }\n\n protected getHintId(index: number): string {\n return `${this.autoId}_${index}`;\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] || 0]),\n [],\n );\n }\n\n @tuiPure\n private getMax(values: ReadonlyArray<readonly number[]>, collapsed: boolean): number {\n return collapsed\n ? Math.max(\n // eslint-disable-next-line no-restricted-syntax\n ...values.reduce((result, next) =>\n result.map((value, index) => value + (next[index] || 0)),\n ),\n )\n : values.reduce((max, value) => Math.max(...value, max), 0);\n }\n}\n","<div\n *ngFor=\"let set of transposed; let index = index\"\n class=\"t-wrapper\"\n [class.t-wrapper_hoverable]=\"!!hintContent\"\n [class.t-wrapper_hovered]=\"drivers.get(index) | async\"\n [tuiHint]=\"hintContent\"\n [tuiHintAppearance]=\"hintAppearance\"\n [tuiHintContext]=\"{$implicit: index}\"\n [tuiHintDescribe]=\"getHintId(index)\"\n [tuiHintHost]=\"hintHost\"\n (click)=\"tapColumn.emit(index)\"\n (keydown.enter)=\"tapColumn.emit(index)\"\n (mouseenter.once)=\"(0)\"\n>\n <div\n class=\"t-container\"\n [style.height.%]=\"set | tuiMapper: percentMapper : collapsed : computedMax\"\n >\n <div\n #hintHost\n class=\"t-host\"\n ></div>\n <tui-bar-set\n class=\"t-set\"\n [collapsed]=\"collapsed\"\n [id]=\"getHintId(index)\"\n [size]=\"size\"\n [tabIndex]=\"hintContent ? 0 : -1\"\n [value]=\"set\"\n />\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { NgForOf, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
5
|
import { TuiBar } from '@taiga-ui/addon-charts/components/bar';
|
|
@@ -32,14 +32,14 @@ class TuiBarSet {
|
|
|
32
32
|
: Math.abs(value.reduce((a, b) => (a < b ? a : b), 0));
|
|
33
33
|
}
|
|
34
34
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiBarSet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiBarSet, isStandalone: true, selector: "tui-bar-set", inputs: { value: "value", size: "size", collapsed: "collapsed" }, ngImport: i0, template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container\n *ngFor=\"let item of computedValue; let index = index\"\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: false}\"\n />\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\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: true}\"\n />\n </div>\n</ng-template>\n<ng-template\n #bar\n let-flexible=\"flexible\"\n let-index=\"index\"\n let-item\n>\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 [size]=\"computedSize\"\n [style.background]=\"`var(--tui-chart-categorical-${index.toString().padStart(2, '0')})`\"\n [style.height.%]=\"getHeight(item)\"\n [value]=\"computedSegments\"\n />\n</ng-template>\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:flex;block-size:100%;align-items:flex-end;justify-content:center}.t-wrapper{display:flex;flex:1;block-size:100%;align-items:flex-end}.t-wrapper:first-of-type{margin-inline-start:25%}.t-wrapper:last-of-type{margin-inline-end:25%}.t-bar{transform-origin:bottom center}.t-bar_negative{transform:rotate(180deg);opacity:var(--tui-disabled-opacity)}.t-bar.t-bar_flexible{max-inline-size:none;inline-size:75%;margin:0 auto}.t-label{position:absolute;top:-1.5rem;font:var(--tui-font-text-xs);color:var(--tui-text-secondary)}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TuiBar, selector: "tui-bar", inputs: ["value", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
36
|
}
|
|
37
37
|
__decorate([
|
|
38
38
|
tuiPure
|
|
39
39
|
], TuiBarSet.prototype, "getLargest", null);
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiBarSet, decorators: [{
|
|
41
41
|
type: Component,
|
|
42
|
-
args: [{ selector: 'tui-bar-set', imports: [NgTemplateOutlet, TuiBar], changeDetection: ChangeDetectionStrategy.OnPush, template: "
|
|
42
|
+
args: [{ selector: 'tui-bar-set', imports: [NgForOf, NgIf, NgTemplateOutlet, TuiBar], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"size; else flexible\">\n <ng-container\n *ngFor=\"let item of computedValue; let index = index\"\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: false}\"\n />\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\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: true}\"\n />\n </div>\n</ng-template>\n<ng-template\n #bar\n let-flexible=\"flexible\"\n let-index=\"index\"\n let-item\n>\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 [size]=\"computedSize\"\n [style.background]=\"`var(--tui-chart-categorical-${index.toString().padStart(2, '0')})`\"\n [style.height.%]=\"getHeight(item)\"\n [value]=\"computedSegments\"\n />\n</ng-template>\n<span class=\"t-label\">\n <ng-content />\n</span>\n", styles: [":host{position:relative;display:flex;block-size:100%;align-items:flex-end;justify-content:center}.t-wrapper{display:flex;flex:1;block-size:100%;align-items:flex-end}.t-wrapper:first-of-type{margin-inline-start:25%}.t-wrapper:last-of-type{margin-inline-end:25%}.t-bar{transform-origin:bottom center}.t-bar_negative{transform:rotate(180deg);opacity:var(--tui-disabled-opacity)}.t-bar.t-bar_flexible{max-inline-size:none;inline-size:75%;margin:0 auto}.t-label{position:absolute;top:-1.5rem;font:var(--tui-font-text-xs);color:var(--tui-text-secondary)}\n"] }]
|
|
43
43
|
}], propDecorators: { value: [{
|
|
44
44
|
type: Input
|
|
45
45
|
}], size: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-bar-set.mjs","sources":["../../../projects/addon-charts/components/bar-set/bar-set.component.ts","../../../projects/addon-charts/components/bar-set/bar-set.template.html","../../../projects/addon-charts/components/bar-set/taiga-ui-addon-charts-components-bar-set.ts"],"sourcesContent":["import {NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiBar} from '@taiga-ui/addon-charts/components/bar';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst PERCENT = 100;\nconst EMPTY_ARRAY: readonly number[] = [];\nconst FILLER_ARRAY: readonly number[] = [1];\n\n@Component({\n selector: 'tui-bar-set',\n imports: [NgTemplateOutlet, TuiBar],\n templateUrl: './bar-set.template.html',\n styleUrls: ['./bar-set.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarSet {\n @Input()\n public value: readonly number[] = [];\n\n @Input()\n public size: TuiSizeL | TuiSizeS | null = 'm';\n\n @Input()\n public collapsed = false;\n\n protected get computedValue(): readonly number[] {\n return this.collapsed ? FILLER_ARRAY : this.value;\n }\n\n protected get computedSegments(): readonly number[] {\n return this.collapsed ? this.value : EMPTY_ARRAY;\n }\n\n protected get computedSize(): TuiSizeL | TuiSizeS {\n return this.size || 'm';\n }\n\n protected getHeight(value: number): number {\n return Math.abs((PERCENT * value) / this.getLargest(this.computedValue));\n }\n\n @tuiPure\n private getLargest(value: readonly number[]): number {\n return value.some((a) => a > 0)\n ? value.reduce((a, b) => (a > b ? a : b), 0)\n : Math.abs(value.reduce((a, b) => (a < b ? a : b), 0));\n }\n}\n","
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-bar-set.mjs","sources":["../../../projects/addon-charts/components/bar-set/bar-set.component.ts","../../../projects/addon-charts/components/bar-set/bar-set.template.html","../../../projects/addon-charts/components/bar-set/taiga-ui-addon-charts-components-bar-set.ts"],"sourcesContent":["import {NgForOf, NgIf, NgTemplateOutlet} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {TuiBar} from '@taiga-ui/addon-charts/components/bar';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nconst PERCENT = 100;\nconst EMPTY_ARRAY: readonly number[] = [];\nconst FILLER_ARRAY: readonly number[] = [1];\n\n@Component({\n selector: 'tui-bar-set',\n imports: [NgForOf, NgIf, NgTemplateOutlet, TuiBar],\n templateUrl: './bar-set.template.html',\n styleUrls: ['./bar-set.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarSet {\n @Input()\n public value: readonly number[] = [];\n\n @Input()\n public size: TuiSizeL | TuiSizeS | null = 'm';\n\n @Input()\n public collapsed = false;\n\n protected get computedValue(): readonly number[] {\n return this.collapsed ? FILLER_ARRAY : this.value;\n }\n\n protected get computedSegments(): readonly number[] {\n return this.collapsed ? this.value : EMPTY_ARRAY;\n }\n\n protected get computedSize(): TuiSizeL | TuiSizeS {\n return this.size || 'm';\n }\n\n protected getHeight(value: number): number {\n return Math.abs((PERCENT * value) / this.getLargest(this.computedValue));\n }\n\n @tuiPure\n private getLargest(value: readonly number[]): number {\n return value.some((a) => a > 0)\n ? value.reduce((a, b) => (a > b ? a : b), 0)\n : Math.abs(value.reduce((a, b) => (a < b ? a : b), 0));\n }\n}\n","<ng-container *ngIf=\"size; else flexible\">\n <ng-container\n *ngFor=\"let item of computedValue; let index = index\"\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: false}\"\n />\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\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: index, flexible: true}\"\n />\n </div>\n</ng-template>\n<ng-template\n #bar\n let-flexible=\"flexible\"\n let-index=\"index\"\n let-item\n>\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 [size]=\"computedSize\"\n [style.background]=\"`var(--tui-chart-categorical-${index.toString().padStart(2, '0')})`\"\n [style.height.%]=\"getHeight(item)\"\n [value]=\"computedSegments\"\n />\n</ng-template>\n<span class=\"t-label\">\n <ng-content />\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
+
import { NgForOf } from '@angular/common';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
4
|
import { Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
5
|
import { tuiSum } from '@taiga-ui/cdk/utils/math';
|
|
@@ -16,16 +17,16 @@ class TuiBar {
|
|
|
16
17
|
return tuiSum(...value);
|
|
17
18
|
}
|
|
18
19
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiBar, isStandalone: true, selector: "tui-bar", inputs: { value: "value", size: "size" }, host: { properties: { "attr.data-size": "size" } }, ngImport: i0, template: "<div\n *ngFor=\"let item of value; let index = index\"\n automation-id=\"tui-bar__bar\"\n [style.background]=\"`var(--tui-chart-categorical-${index.toString().padStart(2, '0')})`\"\n [style.height.%]=\"getHeight(item)\"\n></div>\n", styles: [":host{display:flex;min-inline-size:.125rem;flex-direction:column-reverse;border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:hidden}:host[data-size=l]{inline-size:1rem;max-inline-size:1rem;margin:0 .1875rem}:host[data-size=m]{inline-size:.5rem;max-inline-size:.5rem;margin:0 .1875rem}:host[data-size=s]{inline-size:.25rem;max-inline-size:.5rem;margin:0 .125rem}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
21
|
}
|
|
21
22
|
__decorate([
|
|
22
23
|
tuiPure
|
|
23
24
|
], TuiBar.prototype, "getSum", null);
|
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiBar, decorators: [{
|
|
25
26
|
type: Component,
|
|
26
|
-
args: [{ selector: 'tui-bar', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
27
|
+
args: [{ selector: 'tui-bar', imports: [NgForOf], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
27
28
|
'[attr.data-size]': 'size',
|
|
28
|
-
}, template: "
|
|
29
|
+
}, template: "<div\n *ngFor=\"let item of value; let index = index\"\n automation-id=\"tui-bar__bar\"\n [style.background]=\"`var(--tui-chart-categorical-${index.toString().padStart(2, '0')})`\"\n [style.height.%]=\"getHeight(item)\"\n></div>\n", styles: [":host{display:flex;min-inline-size:.125rem;flex-direction:column-reverse;border-top-left-radius:var(--tui-radius-l);border-top-right-radius:var(--tui-radius-l);overflow:hidden}:host[data-size=l]{inline-size:1rem;max-inline-size:1rem;margin:0 .1875rem}:host[data-size=m]{inline-size:.5rem;max-inline-size:.5rem;margin:0 .1875rem}:host[data-size=s]{inline-size:.25rem;max-inline-size:.5rem;margin:0 .125rem}\n"] }]
|
|
29
30
|
}], propDecorators: { value: [{
|
|
30
31
|
type: Input
|
|
31
32
|
}], size: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-bar.mjs","sources":["../../../projects/addon-charts/components/bar/bar.component.ts","../../../projects/addon-charts/components/bar/bar.template.html","../../../projects/addon-charts/components/bar/taiga-ui-addon-charts-components-bar.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-bar',\n templateUrl: './bar.template.html',\n styleUrls: ['./bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiBar {\n @Input()\n public value: readonly number[] = [];\n\n @Input()\n public size: TuiSizeL | TuiSizeS = 'm';\n\n protected getHeight(value: number): number {\n return (100 * value) / this.getSum(this.value);\n }\n\n @tuiPure\n private getSum(value: readonly number[]): number {\n return tuiSum(...value);\n }\n}\n","
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-bar.mjs","sources":["../../../projects/addon-charts/components/bar/bar.component.ts","../../../projects/addon-charts/components/bar/bar.template.html","../../../projects/addon-charts/components/bar/taiga-ui-addon-charts-components-bar.ts"],"sourcesContent":["import {NgForOf} from '@angular/common';\nimport {ChangeDetectionStrategy, Component, Input} from '@angular/core';\nimport {tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-bar',\n imports: [NgForOf],\n templateUrl: './bar.template.html',\n styleUrls: ['./bar.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size',\n },\n})\nexport class TuiBar {\n @Input()\n public value: readonly number[] = [];\n\n @Input()\n public size: TuiSizeL | TuiSizeS = 'm';\n\n protected getHeight(value: number): number {\n return (100 * value) / this.getSum(this.value);\n }\n\n @tuiPure\n private getSum(value: readonly number[]): number {\n return tuiSum(...value);\n }\n}\n","<div\n *ngFor=\"let item of value; let index = index\"\n automation-id=\"tui-bar__bar\"\n [style.background]=\"`var(--tui-chart-categorical-${index.toString().padStart(2, '0')})`\"\n [style.height.%]=\"getHeight(item)\"\n></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAgBa,MAAM,CAAA;AAVnB,IAAA,WAAA,GAAA;QAYW,IAAA,CAAA,KAAK,GAAsB,EAAE;QAG7B,IAAA,CAAA,IAAI,GAAwB,GAAG;AAUzC,IAAA;AARa,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAClD;AAGQ,IAAA,MAAM,CAAC,KAAwB,EAAA;AACnC,QAAA,OAAO,MAAM,CAAC,GAAG,KAAK,CAAC;IAC3B;8GAdS,MAAM,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAN,MAAM,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBnB,oPAMA,EAAA,MAAA,EAAA,CAAA,yZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDEc,OAAO,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;AAoBT,UAAA,CAAA;IADP;AAGA,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;2FAdQ,MAAM,EAAA,UAAA,EAAA,CAAA;kBAVlB,SAAS;+BACI,SAAS,EAAA,OAAA,EACV,CAAC,OAAO,CAAC,mBAGD,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACF,wBAAA,kBAAkB,EAAE,MAAM;AAC7B,qBAAA,EAAA,QAAA,EAAA,oPAAA,EAAA,MAAA,EAAA,CAAA,yZAAA,CAAA,EAAA;8BAIM,KAAK,EAAA,CAAA;sBADX;gBAIM,IAAI,EAAA,CAAA;sBADV;gBAQO,MAAM,EAAA,EAAA,EAAA,EAAA,CAAA;;AE5BlB;;AAEG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
-
import { AsyncPipe } from '@angular/common';
|
|
2
|
+
import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { InjectionToken, inject, Renderer2, DestroyRef, NgZone, ElementRef, Input, forwardRef, ContentChildren, Directive, signal, computed, ViewChildren, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
5
|
import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
|
|
@@ -207,7 +207,7 @@ class TuiLineChart {
|
|
|
207
207
|
: this.getX(index + 1) - this.getX(index);
|
|
208
208
|
}
|
|
209
209
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiLineChart, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
210
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiLineChart, isStandalone: true, selector: "tui-line-chart", inputs: { x: "x", y: "y", width: "width", height: "height", smoothingFactor: "smoothingFactor", xStringify: "xStringify", yStringify: "yStringify", filled: "filled", dots: "dots", valueSetter: ["value", "valueSetter"] }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, providers: [ResizeObserverService], viewQueries: [{ propertyName: "drivers", predicate: TuiHintHover, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n focusable=\"false\"\n height=\"100%\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox()\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n offset=\"0%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0.5\"\n />\n <stop\n offset=\"100%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.d]=\"fillD\"\n [attr.fill]=\"fill\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n vector-effect=\"non-scaling-stroke\"\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.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getLeft(point[0])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <!-- TODO: Fix hint type -->\n <div\n *ngIf=\"value.length > 1 || dots\"\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [class.t-column_hovered]=\"hovered === index\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"{$implicit: getImplicit(point), index: index}\"\n [tuiHintDescribe]=\"isFocusable ? getHintId(index) : null\"\n [tuiHintHost]=\"hintHost\"\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 [id]=\"getHintId(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getOffset(index)\"\n [tabIndex]=\"isFocusable ? 0 : -1\"\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-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", styles: [":host{display:flex;inline-size:100%;block-size:100%;pointer-events:none}.t-svg{block-size:calc(100% + 1px);transform:scaleY(-1);margin:-.03125rem 0}.t-column{position:absolute;top:0;block-size:100%;pointer-events:auto}.t-dot{position:absolute;inline-size:.375rem;block-size:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;inline-size:.5rem;block-size:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem #0000001a;outline:none;pointer-events:none}.t-host:focus,.t-column_hovered .t-host,.t-column:hover .t-host,.t-column_hint_hovered .t-host{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-border-normal)}.t-line_vertical{top:0;bottom:0;left:50%;inline-size:1px}.t-line_horizontal{z-index:-1;inline-size:100%;block-size:1px}:host[style^=\"z-index: 0\"] .t-column_hovered .t-line,:host:not([style]) .t-column:hover .t-line,:host:not([style]) .t-column_hint_hovered .t-line,:host[style^=\"z-index: 0\"] .t-column_hovered+.t-line,:host:not([style]) .t-column:hover+.t-line,:host:not([style]) .t-column_hint_hovered+.t-line{opacity:1}.t-hint{position:absolute;box-shadow:var(--tui-shadow-small);font:var(--tui-font-text-xs);block-size:1.25rem;line-height:1.25rem;margin-block-end:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-text-primary);background:var(--tui-background-base);transform:translate3d(-50%,0,0)}.t-hint_x{bottom:0}.t-hint_y{left:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHintContext", "tuiHintAppearance", "tuiHint"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: i1.TuiHintDescribe, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { kind: "directive", type: i1.TuiHintHost, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }, { kind: "directive", type: TuiLet, selector: "[tuiLet]", inputs: ["tuiLet"] }], viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
211
211
|
}
|
|
212
212
|
__decorate([
|
|
213
213
|
tuiPure
|
|
@@ -217,9 +217,9 @@ __decorate([
|
|
|
217
217
|
], TuiLineChart.prototype, "getD", null);
|
|
218
218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiLineChart, decorators: [{
|
|
219
219
|
type: Component,
|
|
220
|
-
args: [{ selector: 'tui-line-chart', imports: [AsyncPipe, TuiHint, TuiLet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ResizeObserverService], viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], host: {
|
|
220
|
+
args: [{ selector: 'tui-line-chart', imports: [AsyncPipe, NgForOf, NgIf, TuiHint, TuiLet], changeDetection: ChangeDetectionStrategy.OnPush, providers: [ResizeObserverService], viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], host: {
|
|
221
221
|
'(mouseleave)': 'onMouseLeave()',
|
|
222
|
-
}, template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n focusable=\"false\"\n height=\"100%\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox()\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n offset=\"0%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0.5\"\n />\n <stop\n offset=\"100%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.d]=\"fillD\"\n [attr.fill]=\"fill\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n vector-effect=\"non-scaling-stroke\"\n [attr.d]=\"d\"\n />\n </svg>\n
|
|
222
|
+
}, template: "<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n focusable=\"false\"\n height=\"100%\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox()\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n offset=\"0%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0.5\"\n />\n <stop\n offset=\"100%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.d]=\"fillD\"\n [attr.fill]=\"fill\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n vector-effect=\"non-scaling-stroke\"\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.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getLeft(point[0])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <!-- TODO: Fix hint type -->\n <div\n *ngIf=\"value.length > 1 || dots\"\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [class.t-column_hovered]=\"hovered === index\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"{$implicit: getImplicit(point), index: index}\"\n [tuiHintDescribe]=\"isFocusable ? getHintId(index) : null\"\n [tuiHintHost]=\"hintHost\"\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 [id]=\"getHintId(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getOffset(index)\"\n [tabIndex]=\"isFocusable ? 0 : -1\"\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-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", styles: [":host{display:flex;inline-size:100%;block-size:100%;pointer-events:none}.t-svg{block-size:calc(100% + 1px);transform:scaleY(-1);margin:-.03125rem 0}.t-column{position:absolute;top:0;block-size:100%;pointer-events:auto}.t-dot{position:absolute;inline-size:.375rem;block-size:.375rem;border-radius:100%;background:currentColor;margin:-.1875rem;box-shadow:0 0 0 2px #fff}.t-host{position:absolute;left:50%;inline-size:.5rem;block-size:.5rem;border-radius:100%;opacity:0;background:#fff;margin:-.25rem;box-shadow:0 0 0 2px currentColor,0 .0625rem .1875rem .125rem #0000001a;outline:none;pointer-events:none}.t-host:focus,.t-column_hovered .t-host,.t-column:hover .t-host,.t-column_hint_hovered .t-host{opacity:1}.t-line{position:absolute;opacity:0;background:var(--tui-border-normal)}.t-line_vertical{top:0;bottom:0;left:50%;inline-size:1px}.t-line_horizontal{z-index:-1;inline-size:100%;block-size:1px}:host[style^=\"z-index: 0\"] .t-column_hovered .t-line,:host:not([style]) .t-column:hover .t-line,:host:not([style]) .t-column_hint_hovered .t-line,:host[style^=\"z-index: 0\"] .t-column_hovered+.t-line,:host:not([style]) .t-column:hover+.t-line,:host:not([style]) .t-column_hint_hovered+.t-line{opacity:1}.t-hint{position:absolute;box-shadow:var(--tui-shadow-small);font:var(--tui-font-text-xs);block-size:1.25rem;line-height:1.25rem;margin-block-end:-.625rem;padding:0 .375rem;white-space:nowrap;color:var(--tui-text-primary);background:var(--tui-background-base);transform:translate3d(-50%,0,0)}.t-hint_x{bottom:0}.t-hint_y{left:0}\n"] }]
|
|
223
223
|
}], propDecorators: { drivers: [{
|
|
224
224
|
type: ViewChildren,
|
|
225
225
|
args: [TuiHintHover]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-line-chart.mjs","sources":["../../../projects/addon-charts/components/line-chart/line-chart.options.ts","../../../projects/addon-charts/components/line-chart/line-chart-hint.directive.ts","../../../projects/addon-charts/components/line-chart/line-chart.component.ts","../../../projects/addon-charts/components/line-chart/line-chart.template.html","../../../projects/addon-charts/components/line-chart/taiga-ui-addon-charts-components-line-chart.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiLineChartOptions {\n readonly dots: boolean;\n readonly filled: boolean;\n readonly smoothingFactor: number;\n}\n\nexport const TUI_LINE_CHART_DEFAULT_OPTIONS: TuiLineChartOptions = {\n dots: false,\n filled: false,\n smoothingFactor: 0,\n};\n\nexport const TUI_LINE_CHART_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_LINE_CHART_OPTIONS' : '',\n {\n factory: () => TUI_LINE_CHART_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiLineChartOptionsProvider(\n options: Partial<TuiLineChartOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_LINE_CHART_OPTIONS,\n options,\n TUI_LINE_CHART_DEFAULT_OPTIONS,\n );\n}\n","import {\n type AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n Renderer2,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiQueryListChanges, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n type Observable,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport {TuiLineChart} from './line-chart.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiLineChartHint]',\n providers: [TuiHoveredService],\n})\nexport class TuiLineChartHint implements AfterViewInit {\n @ContentChildren(forwardRef(() => TuiLineChart))\n private readonly charts: QueryList<TuiLineChart> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiLineChart), {read: ElementRef})\n private readonly chartsRef: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly hovered$ = inject(TuiHoveredService);\n\n @Input('tuiLineChartHint')\n public hint: PolymorpheusContent<TuiContext<readonly TuiPoint[]>>;\n\n public ngAfterViewInit(): void {\n combineLatest([tuiLineChartDrivers(this.charts), this.hovered$])\n .pipe(\n filter((result) => !result.some(Boolean)),\n tuiZonefree(this.zone),\n takeUntilDestroyed(this.destroyRef),\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 public getContext(index: number, _chart: TuiLineChart): readonly TuiPoint[] {\n return this.computeContext(...this.charts.map(({value}) => value))[index] || [];\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n public raise(index: number, _chart: TuiLineChart): void {\n const current = this.charts.map(\n (chart) => chart.value[index] ?? ([0, 0] as const),\n );\n\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] ?? [0, 0]),\n ),\n );\n }\n\n @tuiPure\n private computeContext(\n ...values: ReadonlyArray<readonly TuiPoint[]>\n ): ReadonlyArray<readonly TuiPoint[]> {\n return (values[0] || []).map((_, index) =>\n values.map((value) => value[index] ?? [0, 0]),\n );\n }\n}\n\nexport function tuiLineChartDrivers(\n charts: QueryList<{drivers: QueryList<Observable<boolean>>}>,\n): Observable<boolean> {\n return combineLatest(\n charts.map(({drivers}) =>\n tuiQueryListChanges(drivers).pipe(\n map((drivers) => drivers.map((driver) => driver.pipe(startWith(false)))),\n ),\n ),\n ).pipe(\n map((all) => all.reduce((acc, drivers) => acc.concat(drivers), [])),\n switchMap((drivers) => combineLatest(drivers)),\n map((values) => values.some(Boolean)),\n distinctUntilChanged(),\n );\n}\n","import {AsyncPipe} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Input,\n NgZone,\n type OnChanges,\n type QueryList,\n signal,\n ViewChildren,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {type TuiLineChartHintContext} from '@taiga-ui/addon-charts/types';\nimport {tuiDraw} from '@taiga-ui/addon-charts/utils';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsPresent, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiHint,\n TuiHintHover,\n TuiHintOptionsDirective,\n tuiHintOptionsProvider,\n} from '@taiga-ui/core/directives/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, type Observable, Subject} from 'rxjs';\n\nimport {TUI_LINE_CHART_OPTIONS} from './line-chart.options';\nimport {TuiLineChartHint} from './line-chart-hint.directive';\n\n@Component({\n selector: 'tui-line-chart',\n imports: [AsyncPipe, TuiHint, TuiLet],\n templateUrl: './line-chart.template.html',\n styleUrls: ['./line-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ResizeObserverService],\n viewProviders: [tuiHintOptionsProvider({direction: 'top', hideDelay: 0})],\n host: {\n '(mouseleave)': 'onMouseLeave()',\n },\n})\nexport class TuiLineChart implements OnChanges {\n private readonly zone = inject(NgZone);\n private readonly options = inject(TUI_LINE_CHART_OPTIONS);\n private readonly hover$ = new Subject<number>();\n private readonly autoId = tuiInjectId();\n private readonly resize = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map(([e]) => e?.contentRect.height || 0),\n ),\n {initialValue: 0},\n );\n\n private readonly box = signal('');\n\n protected readonly hintDirective = inject(TuiLineChartHint, {optional: true});\n protected readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n protected readonly viewBox = computed(() => {\n const offset = this.height / Math.max(this.resize(), 1);\n const [x = 0, y = 0, width = 0, height = 0] = this.box().split(' ').map(Number);\n\n return `${x} ${y - offset} ${width} ${height + 2 * offset}`;\n });\n\n @ViewChildren(TuiHintHover)\n public readonly drivers: QueryList<Observable<boolean>> = EMPTY_QUERY;\n\n @Input()\n public x = 0;\n\n @Input()\n public y = 0;\n\n @Input()\n public width = 0;\n\n @Input()\n public height = 0;\n\n @Input()\n public smoothingFactor = this.options.smoothingFactor;\n\n @Input()\n public xStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n public yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n public filled = this.options.filled;\n\n @Input()\n public dots = this.options.dots;\n\n public value: readonly TuiPoint[] = [];\n\n @Input('value')\n public set valueSetter(value: readonly TuiPoint[]) {\n this.value = value.filter((item) => !item.some(Number.isNaN));\n }\n\n public ngOnChanges(): void {\n this.box.set(`${this.x} ${this.y} ${this.width} ${this.height}`);\n }\n\n public onHovered(index: number): void {\n this.hover$.next(index);\n }\n\n @tuiPure\n protected get hovered$(): Observable<number> {\n return this.hover$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));\n }\n\n protected get hintContent(): PolymorpheusContent<TuiLineChartHintContext<TuiPoint>> {\n return this.hintOptions?.content || '';\n }\n\n protected get fillId(): string {\n return `tui-line-chart-${this.autoId}`;\n }\n\n protected get fill(): string {\n return this.filled ? `url(#${this.fillId})` : 'none';\n }\n\n protected get d(): string {\n return this.getD(this.value, this.smoothingFactor);\n }\n\n protected 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 protected get isFocusable(): boolean {\n return !this.hintDirective && this.hasHints;\n }\n\n protected get hasHints(): boolean {\n return (\n !!this.xStringify ||\n !!this.yStringify ||\n !!this.hintDirective?.hint ||\n !!this.hintContent\n );\n }\n\n protected onMouseLeave(): void {\n if (!this.hintDirective) {\n this.onHovered(NaN);\n }\n }\n\n protected getX(index: number): number {\n if (this.isSinglePoint) {\n return (this.value[0]?.[0] || 0) / 2;\n }\n\n return index\n ? ((this.value[index - 1]?.[0] || 0) + (this.value[index]?.[0] || 0)) / 2\n : 2 * (this.value[0]?.[0] || 0) - this.getX(1);\n }\n\n protected getWidth(index: number): number {\n return (100 * this.computeWidth(index)) / this.width;\n }\n\n protected getHintId(index: number): string {\n return `${this.autoId}_${index}`;\n }\n\n protected getImplicit($implicit: TuiPoint): TuiPoint | readonly TuiPoint[] {\n return (\n this.hintDirective?.getContext(this.value.indexOf($implicit), this) ??\n $implicit\n );\n }\n\n protected getHovered(hovered: number | null): TuiPoint | null {\n // This checks for NaN and null too since async pipe returns null before first item\n return tuiIsPresent(hovered) && Number.isInteger(hovered)\n ? (this.value[hovered] ?? null)\n : null;\n }\n\n protected getBottom(y: number): number {\n return (100 * (y - this.y)) / this.height;\n }\n\n protected getLeft(x: number): number {\n return (100 * (x - this.x)) / this.width;\n }\n\n protected getOffset(x: number): number {\n return (100 * ((this.value[x]?.[0] || 0) - this.getX(x))) / this.computeWidth(x);\n }\n\n protected onMouseEnter(index: number): void {\n if (this.hintDirective) {\n this.hintDirective.raise(index, this);\n } else {\n this.onHovered(index);\n }\n }\n\n private get isSinglePoint(): boolean {\n return this.value.length === 1;\n }\n\n @tuiPure\n private getD(value: readonly TuiPoint[], smoothingFactor: number): string {\n return value.reduce(\n (d, point, index) =>\n index ? `${d} ${tuiDraw(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] || 0) - this.getX(index))\n : this.getX(index + 1) - this.getX(index);\n }\n}\n","<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n focusable=\"false\"\n height=\"100%\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox()\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n offset=\"0%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0.5\"\n />\n <stop\n offset=\"100%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.d]=\"fillD\"\n [attr.fill]=\"fill\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n vector-effect=\"non-scaling-stroke\"\n [attr.d]=\"d\"\n />\n </svg>\n @if (dots) {\n @for (point of value; track point) {\n <div\n class=\"t-dot\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getLeft(point[0])\"\n ></div>\n }\n }\n @if (hasHints) {\n @for (point of value; track point; let index = $index) {\n <!-- TODO: Fix hint type -->\n @if (value.length > 1 || dots) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [class.t-column_hovered]=\"hovered === index\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"{$implicit: getImplicit(point), index: index}\"\n [tuiHintDescribe]=\"isFocusable ? getHintId(index) : null\"\n [tuiHintHost]=\"hintHost\"\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 [id]=\"getHintId(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getOffset(index)\"\n [tabIndex]=\"isFocusable ? 0 : -1\"\n ></div>\n </div>\n }\n @if (isFocusable) {\n <div\n class=\"t-line t-line_horizontal\"\n [style.bottom.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n }\n @if (getHovered(hovered); as point) {\n @if (xStringify) {\n <div\n class=\"t-hint t-hint_x\"\n [style.left.%]=\"getLeft(point[0])\"\n >\n {{ xStringify(point[0]) }}\n </div>\n }\n @if (yStringify) {\n <div\n class=\"t-hint t-hint_y\"\n [style.bottom.%]=\"getBottom(point[1])\"\n >\n {{ yStringify(point[1]) }}\n </div>\n }\n }\n</ng-container>\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.mjs","sources":["../../../projects/addon-charts/components/line-chart/line-chart.options.ts","../../../projects/addon-charts/components/line-chart/line-chart-hint.directive.ts","../../../projects/addon-charts/components/line-chart/line-chart.component.ts","../../../projects/addon-charts/components/line-chart/line-chart.template.html","../../../projects/addon-charts/components/line-chart/taiga-ui-addon-charts-components-line-chart.ts"],"sourcesContent":["import {InjectionToken, type Provider} from '@angular/core';\nimport {tuiProvideOptions} from '@taiga-ui/cdk/utils/miscellaneous';\n\nexport interface TuiLineChartOptions {\n readonly dots: boolean;\n readonly filled: boolean;\n readonly smoothingFactor: number;\n}\n\nexport const TUI_LINE_CHART_DEFAULT_OPTIONS: TuiLineChartOptions = {\n dots: false,\n filled: false,\n smoothingFactor: 0,\n};\n\nexport const TUI_LINE_CHART_OPTIONS = new InjectionToken(\n ngDevMode ? 'TUI_LINE_CHART_OPTIONS' : '',\n {\n factory: () => TUI_LINE_CHART_DEFAULT_OPTIONS,\n },\n);\n\nexport function tuiLineChartOptionsProvider(\n options: Partial<TuiLineChartOptions>,\n): Provider {\n return tuiProvideOptions(\n TUI_LINE_CHART_OPTIONS,\n options,\n TUI_LINE_CHART_DEFAULT_OPTIONS,\n );\n}\n","import {\n type AfterViewInit,\n ContentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n forwardRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n Renderer2,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiQueryListChanges, tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {\n combineLatest,\n distinctUntilChanged,\n filter,\n map,\n type Observable,\n startWith,\n switchMap,\n} from 'rxjs';\n\nimport {TuiLineChart} from './line-chart.component';\n\n@Directive({\n standalone: true,\n selector: '[tuiLineChartHint]',\n providers: [TuiHoveredService],\n})\nexport class TuiLineChartHint implements AfterViewInit {\n @ContentChildren(forwardRef(() => TuiLineChart))\n private readonly charts: QueryList<TuiLineChart> = EMPTY_QUERY;\n\n @ContentChildren(forwardRef(() => TuiLineChart), {read: ElementRef})\n private readonly chartsRef: QueryList<ElementRef<HTMLElement>> = EMPTY_QUERY;\n\n private readonly renderer = inject(Renderer2);\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly hovered$ = inject(TuiHoveredService);\n\n @Input('tuiLineChartHint')\n public hint: PolymorpheusContent<TuiContext<readonly TuiPoint[]>>;\n\n public ngAfterViewInit(): void {\n combineLatest([tuiLineChartDrivers(this.charts), this.hovered$])\n .pipe(\n filter((result) => !result.some(Boolean)),\n tuiZonefree(this.zone),\n takeUntilDestroyed(this.destroyRef),\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 public getContext(index: number, _chart: TuiLineChart): readonly TuiPoint[] {\n return this.computeContext(...this.charts.map(({value}) => value))[index] || [];\n }\n\n // _chart is required by TuiLineDaysChartComponent that impersonates this directive\n public raise(index: number, _chart: TuiLineChart): void {\n const current = this.charts.map(\n (chart) => chart.value[index] ?? ([0, 0] as const),\n );\n\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] ?? [0, 0]),\n ),\n );\n }\n\n @tuiPure\n private computeContext(\n ...values: ReadonlyArray<readonly TuiPoint[]>\n ): ReadonlyArray<readonly TuiPoint[]> {\n return (values[0] || []).map((_, index) =>\n values.map((value) => value[index] ?? [0, 0]),\n );\n }\n}\n\nexport function tuiLineChartDrivers(\n charts: QueryList<{drivers: QueryList<Observable<boolean>>}>,\n): Observable<boolean> {\n return combineLatest(\n charts.map(({drivers}) =>\n tuiQueryListChanges(drivers).pipe(\n map((drivers) => drivers.map((driver) => driver.pipe(startWith(false)))),\n ),\n ),\n ).pipe(\n map((all) => all.reduce((acc, drivers) => acc.concat(drivers), [])),\n switchMap((drivers) => combineLatest(drivers)),\n map((values) => values.some(Boolean)),\n distinctUntilChanged(),\n );\n}\n","import {AsyncPipe, NgForOf, NgIf} from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n Input,\n NgZone,\n type OnChanges,\n type QueryList,\n signal,\n ViewChildren,\n} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {ResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {type TuiLineChartHintContext} from '@taiga-ui/addon-charts/types';\nimport {tuiDraw} from '@taiga-ui/addon-charts/utils';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiLet} from '@taiga-ui/cdk/directives/let';\nimport {tuiZoneOptimized} from '@taiga-ui/cdk/observables';\nimport {tuiInjectId} from '@taiga-ui/cdk/services';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsPresent, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {\n TuiHint,\n TuiHintHover,\n TuiHintOptionsDirective,\n tuiHintOptionsProvider,\n} from '@taiga-ui/core/directives/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {distinctUntilChanged, map, type Observable, Subject} from 'rxjs';\n\nimport {TUI_LINE_CHART_OPTIONS} from './line-chart.options';\nimport {TuiLineChartHint} from './line-chart-hint.directive';\n\n@Component({\n selector: 'tui-line-chart',\n imports: [AsyncPipe, NgForOf, NgIf, TuiHint, TuiLet],\n templateUrl: './line-chart.template.html',\n styleUrls: ['./line-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [ResizeObserverService],\n viewProviders: [tuiHintOptionsProvider({direction: 'top', hideDelay: 0})],\n host: {\n '(mouseleave)': 'onMouseLeave()',\n },\n})\nexport class TuiLineChart implements OnChanges {\n private readonly zone = inject(NgZone);\n private readonly options = inject(TUI_LINE_CHART_OPTIONS);\n private readonly hover$ = new Subject<number>();\n private readonly autoId = tuiInjectId();\n private readonly resize = toSignal(\n inject(ResizeObserverService, {self: true}).pipe(\n map(([e]) => e?.contentRect.height || 0),\n ),\n {initialValue: 0},\n );\n\n private readonly box = signal('');\n\n protected readonly hintDirective = inject(TuiLineChartHint, {optional: true});\n protected readonly hintOptions = inject(TuiHintOptionsDirective, {optional: true});\n protected readonly viewBox = computed(() => {\n const offset = this.height / Math.max(this.resize(), 1);\n const [x = 0, y = 0, width = 0, height = 0] = this.box().split(' ').map(Number);\n\n return `${x} ${y - offset} ${width} ${height + 2 * offset}`;\n });\n\n @ViewChildren(TuiHintHover)\n public readonly drivers: QueryList<Observable<boolean>> = EMPTY_QUERY;\n\n @Input()\n public x = 0;\n\n @Input()\n public y = 0;\n\n @Input()\n public width = 0;\n\n @Input()\n public height = 0;\n\n @Input()\n public smoothingFactor = this.options.smoothingFactor;\n\n @Input()\n public xStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n public yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n public filled = this.options.filled;\n\n @Input()\n public dots = this.options.dots;\n\n public value: readonly TuiPoint[] = [];\n\n @Input('value')\n public set valueSetter(value: readonly TuiPoint[]) {\n this.value = value.filter((item) => !item.some(Number.isNaN));\n }\n\n public ngOnChanges(): void {\n this.box.set(`${this.x} ${this.y} ${this.width} ${this.height}`);\n }\n\n public onHovered(index: number): void {\n this.hover$.next(index);\n }\n\n @tuiPure\n protected get hovered$(): Observable<number> {\n return this.hover$.pipe(distinctUntilChanged(), tuiZoneOptimized(this.zone));\n }\n\n protected get hintContent(): PolymorpheusContent<TuiLineChartHintContext<TuiPoint>> {\n return this.hintOptions?.content || '';\n }\n\n protected get fillId(): string {\n return `tui-line-chart-${this.autoId}`;\n }\n\n protected get fill(): string {\n return this.filled ? `url(#${this.fillId})` : 'none';\n }\n\n protected get d(): string {\n return this.getD(this.value, this.smoothingFactor);\n }\n\n protected 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 protected get isFocusable(): boolean {\n return !this.hintDirective && this.hasHints;\n }\n\n protected get hasHints(): boolean {\n return (\n !!this.xStringify ||\n !!this.yStringify ||\n !!this.hintDirective?.hint ||\n !!this.hintContent\n );\n }\n\n protected onMouseLeave(): void {\n if (!this.hintDirective) {\n this.onHovered(NaN);\n }\n }\n\n protected getX(index: number): number {\n if (this.isSinglePoint) {\n return (this.value[0]?.[0] || 0) / 2;\n }\n\n return index\n ? ((this.value[index - 1]?.[0] || 0) + (this.value[index]?.[0] || 0)) / 2\n : 2 * (this.value[0]?.[0] || 0) - this.getX(1);\n }\n\n protected getWidth(index: number): number {\n return (100 * this.computeWidth(index)) / this.width;\n }\n\n protected getHintId(index: number): string {\n return `${this.autoId}_${index}`;\n }\n\n protected getImplicit($implicit: TuiPoint): TuiPoint | readonly TuiPoint[] {\n return (\n this.hintDirective?.getContext(this.value.indexOf($implicit), this) ??\n $implicit\n );\n }\n\n protected getHovered(hovered: number | null): TuiPoint | null {\n // This checks for NaN and null too since async pipe returns null before first item\n return tuiIsPresent(hovered) && Number.isInteger(hovered)\n ? (this.value[hovered] ?? null)\n : null;\n }\n\n protected getBottom(y: number): number {\n return (100 * (y - this.y)) / this.height;\n }\n\n protected getLeft(x: number): number {\n return (100 * (x - this.x)) / this.width;\n }\n\n protected getOffset(x: number): number {\n return (100 * ((this.value[x]?.[0] || 0) - this.getX(x))) / this.computeWidth(x);\n }\n\n protected onMouseEnter(index: number): void {\n if (this.hintDirective) {\n this.hintDirective.raise(index, this);\n } else {\n this.onHovered(index);\n }\n }\n\n private get isSinglePoint(): boolean {\n return this.value.length === 1;\n }\n\n @tuiPure\n private getD(value: readonly TuiPoint[], smoothingFactor: number): string {\n return value.reduce(\n (d, point, index) =>\n index ? `${d} ${tuiDraw(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] || 0) - this.getX(index))\n : this.getX(index + 1) - this.getX(index);\n }\n}\n","<ng-container *tuiLet=\"hovered$ | async as hovered\">\n <svg\n focusable=\"false\"\n height=\"100%\"\n preserveAspectRatio=\"none\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [attr.viewBox]=\"viewBox()\"\n >\n <defs>\n <linearGradient\n x1=\"0\"\n x2=\"0\"\n y1=\"1\"\n y2=\"0\"\n [attr.id]=\"fillId\"\n >\n <stop\n offset=\"0%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0.5\"\n />\n <stop\n offset=\"100%\"\n stop-color=\"currentColor\"\n stop-opacity=\"0\"\n />\n </linearGradient>\n </defs>\n <path\n stroke=\"none\"\n [attr.d]=\"fillD\"\n [attr.fill]=\"fill\"\n />\n <path\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n vector-effect=\"non-scaling-stroke\"\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.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getLeft(point[0])\"\n ></div>\n </ng-container>\n <ng-container *ngIf=\"hasHints\">\n <ng-container *ngFor=\"let point of value; let index = index\">\n <!-- TODO: Fix hint type -->\n <div\n *ngIf=\"value.length > 1 || dots\"\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers.get(index) | async\"\n [class.t-column_hovered]=\"hovered === index\"\n [style.left.%]=\"getLeft(getX(index))\"\n [style.width.%]=\"getWidth(index)\"\n [tuiHint]=\"$any(hintDirective?.hint || hintContent)\"\n [tuiHintContext]=\"{$implicit: getImplicit(point), index: index}\"\n [tuiHintDescribe]=\"isFocusable ? getHintId(index) : null\"\n [tuiHintHost]=\"hintHost\"\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 [id]=\"getHintId(index)\"\n [style.bottom.%]=\"getBottom(point[1])\"\n [style.left.%]=\"getOffset(index)\"\n [tabIndex]=\"isFocusable ? 0 : -1\"\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-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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASO,MAAM,8BAA8B,GAAwB;AAC/D,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,eAAe,EAAE,CAAC;;AAGf,MAAM,sBAAsB,GAAG,IAAI,cAAc,CACpD,SAAS,GAAG,wBAAwB,GAAG,EAAE,EACzC;AACI,IAAA,OAAO,EAAE,MAAM,8BAA8B;AAChD,CAAA;AAGC,SAAU,2BAA2B,CACvC,OAAqC,EAAA;IAErC,OAAO,iBAAiB,CACpB,sBAAsB,EACtB,OAAO,EACP,8BAA8B,CACjC;AACL;;MCQa,gBAAgB,CAAA;AAL7B,IAAA,WAAA,GAAA;QAOqB,IAAA,CAAA,MAAM,GAA4B,WAAW;QAG7C,IAAA,CAAA,SAAS,GAAuC,WAAW;AAE3D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAgDxD,IAAA;IA3CU,eAAe,GAAA;AAClB,QAAA,aAAa,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC1D,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACzC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EACtB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;aAEtC,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AACxD,QAAA,CAAC,CAAC;IACV;;IAGO,UAAU,CAAC,KAAa,EAAE,MAAoB,EAAA;QACjD,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;IACnF;;IAGO,KAAK,CAAC,KAAa,EAAE,MAAoB,EAAA;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CACrD;QAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEvD,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAC,aAAa,EAAC,EAAE,KAAK,KAC1C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,aAAa,EACb,SAAS,EACT,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC3C,CACJ;IACL;IAGQ,cAAc,CAClB,GAAG,MAA0C,EAAA;AAE7C,QAAA,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAClC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChD;IACL;8GAzDS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,kBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,SAAA,EAFd,CAAC,iBAAiB,CAAC,qEAGI,YAAY,CAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EAAA,EAAA,CAAA,UAAA,CAAA,MAGZ,YAAY,CAAA,EAAA,IAAA,EAAU,UAAU,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AA+C1D,UAAA,CAAA;IADP;AAOA,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA;2FAzDQ,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,iBAAA;8BAGoB,MAAM,EAAA,CAAA;sBADtB,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,CAAC,MAAM,YAAY,CAAC;gBAI9B,SAAS,EAAA,CAAA;sBADzB,eAAe;uBAAC,UAAU,CAAC,MAAM,YAAY,CAAC,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC;gBAS5D,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,kBAAkB;gBAuCjB,cAAc,EAAA,EAAA,EAAA,EAAA,CAAA;AASpB,SAAU,mBAAmB,CAC/B,MAA4D,EAAA;IAE5D,OAAO,aAAa,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,OAAO,EAAC,KACjB,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAI,CAC7B,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3E,CACJ,CACJ,CAAC,IAAI,CACF,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EACnE,SAAS,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,OAAO,CAAC,CAAC,EAC9C,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EACrC,oBAAoB,EAAE,CACzB;AACL;;MCjEa,YAAY,CAAA;AAZzB,IAAA,WAAA,GAAA;AAaqB,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC;AACxC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,OAAO,EAAU;QAC9B,IAAA,CAAA,MAAM,GAAG,WAAW,EAAE;AACtB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAC9B,MAAM,CAAC,qBAAqB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAC3C,EACD,EAAC,YAAY,EAAE,CAAC,EAAC,CACpB;AAEgB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QAEd,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QAC1D,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,uBAAuB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC/D,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvD,YAAA,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAE/E,YAAA,OAAO,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,GAAG,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE;AAC/D,QAAA,CAAC,CAAC;QAGc,IAAA,CAAA,OAAO,GAAmC,WAAW;QAG9D,IAAA,CAAA,CAAC,GAAG,CAAC;QAGL,IAAA,CAAA,CAAC,GAAG,CAAC;QAGL,IAAA,CAAA,KAAK,GAAG,CAAC;QAGT,IAAA,CAAA,MAAM,GAAG,CAAC;AAGV,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;QAG9C,IAAA,CAAA,UAAU,GAAoC,IAAI;QAGlD,IAAA,CAAA,UAAU,GAAoC,IAAI;AAGlD,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;AAG5B,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;QAExB,IAAA,CAAA,KAAK,GAAwB,EAAE;AAmIzC,IAAA;IAjIG,IACW,WAAW,CAAC,KAA0B,EAAA;QAC7C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjE;IAEO,WAAW,GAAA;QACd,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;IACpE;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IAC3B;AAGA,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF;AAEA,IAAA,IAAc,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,OAAO,IAAI,EAAE;IAC1C;AAEA,IAAA,IAAc,MAAM,GAAA;AAChB,QAAA,OAAO,CAAA,eAAA,EAAkB,IAAI,CAAC,MAAM,EAAE;IAC1C;AAEA,IAAA,IAAc,IAAI,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,MAAM,CAAA,CAAA,CAAG,GAAG,MAAM;IACxD;AAEA,IAAA,IAAc,CAAC,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC;IACtD;AAEA,IAAA,IAAc,KAAK,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC;AACd,cAAE,CAAA,EAAG,IAAI,CAAC,CAAC,CAAA,EAAA,EAAK,IAAI,CAAC,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;AACtE,cAAE,IAAI,CAAC,CAAC;IAChB;AAEA,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ;IAC/C;AAEA,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,QACI,CAAC,CAAC,IAAI,CAAC,UAAU;YACjB,CAAC,CAAC,IAAI,CAAC,UAAU;AACjB,YAAA,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI;AAC1B,YAAA,CAAC,CAAC,IAAI,CAAC,WAAW;IAE1B;IAEU,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QACvB;IACJ;AAEU,IAAA,IAAI,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC;AAEA,QAAA,OAAO;AACH,cAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;cACtE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD;AAEU,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK;IACxD;AAEU,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA,CAAA,EAAI,KAAK,EAAE;IACpC;AAEU,IAAA,WAAW,CAAC,SAAmB,EAAA;AACrC,QAAA,QACI,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;AACnE,YAAA,SAAS;IAEjB;AAEU,IAAA,UAAU,CAAC,OAAsB,EAAA;;QAEvC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO;eACjD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI;cAC5B,IAAI;IACd;AAEU,IAAA,SAAS,CAAC,CAAS,EAAA;AACzB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM;IAC7C;AAEU,IAAA,OAAO,CAAC,CAAS,EAAA;AACvB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK;IAC5C;AAEU,IAAA,SAAS,CAAC,CAAS,EAAA;AACzB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACpF;AAEU,IAAA,YAAY,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;QACzC;aAAO;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QACzB;IACJ;AAEA,IAAA,IAAY,aAAa,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;IAClC;IAGQ,IAAI,CAAC,KAA0B,EAAE,eAAuB,EAAA;AAC5D,QAAA,OAAO,KAAK,CAAC,MAAM,CACf,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KACZ,KAAK,GAAG,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,CAAA,CAAE,GAAG,CAAA,EAAA,EAAK,KAAK,EAAE,EAC3E,EAAE,CACL;IACL;AAEQ,IAAA,YAAY,CAAC,KAAa,EAAA;QAC9B,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG;cAC/B,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACvD,cAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IACjD;8GAvLS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,EAAA,GAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,CAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EANV,CAAC,qBAAqB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EA6BpB,YAAY,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvE9B,ohHAwGA,EAAA,MAAA,EAAA,CAAA,igDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDlEc,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,OAAO,mHAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAW,MAAM,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAKpC,CAAC,sBAAsB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC,CAAC,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;AA0EzE,UAAA,CAAA;IADC;AAGA,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;AAoGO,UAAA,CAAA;IADP;AAOA,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA;2FAjLQ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAZxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAA,eAAA,EAGnC,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,qBAAqB,CAAC,EAAA,aAAA,EACnB,CAAC,sBAAsB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC,CAAC,EAAA,IAAA,EACnE;AACF,wBAAA,cAAc,EAAE,gBAAgB;AACnC,qBAAA,EAAA,QAAA,EAAA,ohHAAA,EAAA,MAAA,EAAA,CAAA,igDAAA,CAAA,EAAA;8BA0Be,OAAO,EAAA,CAAA;sBADtB,YAAY;uBAAC,YAAY;gBAInB,CAAC,EAAA,CAAA;sBADP;gBAIM,CAAC,EAAA,CAAA;sBADP;gBAIM,KAAK,EAAA,CAAA;sBADX;gBAIM,MAAM,EAAA,CAAA;sBADZ;gBAIM,eAAe,EAAA,CAAA;sBADrB;gBAIM,UAAU,EAAA,CAAA;sBADhB;gBAIM,UAAU,EAAA,CAAA;sBADhB;gBAIM,MAAM,EAAA,CAAA;sBADZ;gBAIM,IAAI,EAAA,CAAA;sBADV;gBAMU,WAAW,EAAA,CAAA;sBADrB,KAAK;uBAAC,OAAO;AAcA,aAAA,CAAA,EAAA,QAAQ,MAsGd,IAAI,EAAA,EAAA,EAAA,EAAA,CAAA;;AE3NhB;;AAEG;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { __decorate } from 'tslib';
|
|
2
|
+
import { NgForOf } from '@angular/common';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
4
|
import { inject, DestroyRef, NgZone, Input, forwardRef, ContentChildren, Directive, ViewChildren, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
5
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
@@ -202,13 +203,13 @@ class TuiLineDaysChart {
|
|
|
202
203
|
return this.value[index - (start?.day || 0) + 1]?.[0];
|
|
203
204
|
}
|
|
204
205
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiLineDaysChart, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
205
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
206
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.9", type: TuiLineDaysChart, isStandalone: true, selector: "tui-line-days-chart", inputs: { y: "y", height: "height", smoothingFactor: "smoothingFactor", hintContent: "hintContent", xStringify: "xStringify", yStringify: "yStringify", dots: "dots", valueSetter: ["value", "valueSetter"] }, host: { properties: { "style.zIndex": "zIndex" } }, providers: [
|
|
206
207
|
TuiHoveredService,
|
|
207
208
|
{
|
|
208
209
|
provide: TuiLineChartHint,
|
|
209
210
|
useExisting: TuiLineDaysChart,
|
|
210
211
|
},
|
|
211
|
-
], viewQueries: [{ propertyName: "charts", predicate: TuiLineChart, descendants: true }], ngImport: i0, template: "
|
|
212
|
+
], viewQueries: [{ propertyName: "charts", predicate: TuiLineChart, descendants: true }], ngImport: i0, template: "<tui-line-chart\n *ngFor=\"let month of months; let first = first\"\n class=\"t-chart\"\n [dots]=\"dots\"\n [height]=\"height\"\n [smoothingFactor]=\"smoothingFactor\"\n [style.zIndex]=\"zIndex\"\n [tuiHintContent]=\"hintContent ? hint : ''\"\n [value]=\"month\"\n [width]=\"first ? firstWidth : getWidth(month[0]?.[0] ?? 0)\"\n [x]=\"first ? 0 : getX(month[0]?.[0] ?? 0)\"\n [xStringify]=\"xStringify ? daysStringify : null\"\n [y]=\"y\"\n [yStringify]=\"yStringify\"\n/>\n<ng-template\n #hint\n let-point\n>\n <ng-container *polymorpheusOutlet=\"hintContent as text; context: {$implicit: getHintContext(point[0], value)}\">\n {{ text }}\n </ng-container>\n</ng-template>\n", styles: [":host{display:block}.t-chart{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: PolymorpheusOutlet, selector: "[polymorpheusOutlet]", inputs: ["polymorpheusOutlet", "polymorpheusOutletContext"] }, { kind: "directive", type: i1.TuiHintOptionsDirective, selector: "[tuiHintContent]", inputs: ["tuiHintContent", "tuiHintDirection", "tuiHintAppearance", "tuiHintShowDelay", "tuiHintHideDelay"] }, { kind: "component", type: TuiLineChart, selector: "tui-line-chart", inputs: ["x", "y", "width", "height", "smoothingFactor", "xStringify", "yStringify", "filled", "dots", "value"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
212
213
|
}
|
|
213
214
|
__decorate([
|
|
214
215
|
tuiPure
|
|
@@ -218,7 +219,7 @@ __decorate([
|
|
|
218
219
|
], TuiLineDaysChart.prototype, "breakMonths", null);
|
|
219
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: TuiLineDaysChart, decorators: [{
|
|
220
221
|
type: Component,
|
|
221
|
-
args: [{ selector: 'tui-line-days-chart', imports: [PolymorpheusOutlet, TuiHint, TuiLineChart], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
222
|
+
args: [{ selector: 'tui-line-days-chart', imports: [NgForOf, PolymorpheusOutlet, TuiHint, TuiLineChart], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
222
223
|
TuiHoveredService,
|
|
223
224
|
{
|
|
224
225
|
provide: TuiLineChartHint,
|
|
@@ -226,7 +227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImpor
|
|
|
226
227
|
},
|
|
227
228
|
], host: {
|
|
228
229
|
'[style.zIndex]': 'zIndex',
|
|
229
|
-
}, template: "
|
|
230
|
+
}, template: "<tui-line-chart\n *ngFor=\"let month of months; let first = first\"\n class=\"t-chart\"\n [dots]=\"dots\"\n [height]=\"height\"\n [smoothingFactor]=\"smoothingFactor\"\n [style.zIndex]=\"zIndex\"\n [tuiHintContent]=\"hintContent ? hint : ''\"\n [value]=\"month\"\n [width]=\"first ? firstWidth : getWidth(month[0]?.[0] ?? 0)\"\n [x]=\"first ? 0 : getX(month[0]?.[0] ?? 0)\"\n [xStringify]=\"xStringify ? daysStringify : null\"\n [y]=\"y\"\n [yStringify]=\"yStringify\"\n/>\n<ng-template\n #hint\n let-point\n>\n <ng-container *polymorpheusOutlet=\"hintContent as text; context: {$implicit: getHintContext(point[0], value)}\">\n {{ text }}\n </ng-container>\n</ng-template>\n", styles: [":host{display:block}.t-chart{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
|
|
230
231
|
}], propDecorators: { charts: [{
|
|
231
232
|
type: ViewChildren,
|
|
232
233
|
args: [TuiLineChart]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-line-days-chart.mjs","sources":["../../../projects/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts","../../../projects/addon-charts/components/line-days-chart/line-days-chart.component.ts","../../../projects/addon-charts/components/line-days-chart/line-days-chart.template.html","../../../projects/addon-charts/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.ts"],"sourcesContent":["import {\n type AfterContentInit,\n ContentChildren,\n DestroyRef,\n Directive,\n forwardRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiLineChartDrivers} from '@taiga-ui/addon-charts/components/line-chart';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter} from 'rxjs';\n\nimport {TuiLineDaysChart} from './line-days-chart.component';\n\nfunction find(value: ReadonlyArray<[TuiDay, number]>, current: TuiDay): [TuiDay, number] {\n return value.find(([day]) => day.daySame(current)) || [current, NaN];\n}\n\n// TODO: Consider extending TuiLineChartHintDirective\n@Directive({\n standalone: true,\n selector: '[tuiLineChartHint]',\n providers: [TuiHoveredService],\n})\nexport class TuiLineDaysChartHint implements AfterContentInit {\n @ContentChildren(forwardRef(() => TuiLineDaysChart))\n private readonly charts: QueryList<TuiLineDaysChart> = EMPTY_QUERY;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly hovered$ = inject(TuiHoveredService);\n\n @Input('tuiLineChartHint')\n public hint: PolymorpheusContent<TuiContext<readonly TuiPoint[]>>;\n\n public ngAfterContentInit(): void {\n combineLatest([\n ...this.charts.map(({charts}) => tuiLineChartDrivers(charts)),\n this.hovered$,\n ])\n .pipe(\n filter((result) => !result.some(Boolean)),\n tuiZonefree(this.zone),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.charts.forEach((chart) => chart.onHovered(NaN));\n });\n }\n\n public getContext(day: TuiDay): ReadonlyArray<[TuiDay, number]> {\n return this.getMap(...this.charts.map(({value}) => value)).get(String(day)) || [];\n }\n\n public raise(day: TuiDay): void {\n const current = this.charts\n .map(({value}) => (day ? find(value, day) : []))\n .filter(([_, value]) => !Number.isNaN(value));\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach((chart, index) => {\n const item = current[index];\n\n chart.onHovered(day);\n chart.zIndex = Math.max(item ? sorted.indexOf(item) : 0, 0);\n });\n }\n\n @tuiPure\n private getMap(\n ...values: Array<ReadonlyArray<[TuiDay, number]>>\n ): Map<string, ReadonlyArray<[TuiDay, number]>> {\n return (values[0] || []).reduce(\n (map, [day]) =>\n map.set(\n String(day),\n values.map((value) => find(value, day)),\n ),\n new Map<string, ReadonlyArray<[TuiDay, number]>>(),\n );\n }\n}\n","import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n TUI_LINE_CHART_OPTIONS,\n TuiLineChart,\n tuiLineChartDrivers,\n TuiLineChartHint,\n} from '@taiga-ui/addon-charts/components/line-chart';\nimport {EMPTY_ARRAY, EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber, tuiIsPresent, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter} from 'rxjs';\n\nimport {TuiLineDaysChartHint} from './line-days-chart-hint.directive';\n\nconst DUMMY: TuiPoint = [NaN, NaN];\n\n@Component({\n selector: 'tui-line-days-chart',\n imports: [PolymorpheusOutlet, TuiHint, TuiLineChart],\n templateUrl: './line-days-chart.template.html',\n styleUrls: ['./line-days-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiHoveredService,\n {\n provide: TuiLineChartHint,\n useExisting: TuiLineDaysChart,\n },\n ],\n host: {\n '[style.zIndex]': 'zIndex',\n },\n})\nexport class TuiLineDaysChart implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly hovered$ = inject(TuiHoveredService);\n private readonly options = inject(TUI_LINE_CHART_OPTIONS);\n private readonly hintDirective = inject(TuiLineDaysChartHint, {\n optional: true,\n });\n\n @ViewChildren(TuiLineChart)\n public readonly charts: QueryList<TuiLineChart> = EMPTY_QUERY;\n\n @Input()\n public y = 0;\n\n @Input()\n public height = 0;\n\n @Input()\n public smoothingFactor = this.options.smoothingFactor;\n\n @Input()\n public hintContent: PolymorpheusContent<TuiContext<[TuiDay, number]>>;\n\n @Input()\n public xStringify: TuiStringHandler<TuiDay> | null = null;\n\n @Input()\n public yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n public dots = this.options.dots;\n\n public zIndex = 0;\n\n public value: ReadonlyArray<[TuiDay, number]> = [];\n\n @Input('value')\n public set valueSetter(value: ReadonlyArray<[TuiDay, number]>) {\n if (!value.length) {\n this.value = [];\n\n return;\n }\n\n const start = value[0]?.[0];\n const end = value[value.length - 1];\n const mutable = [...value];\n const length = start && end ? TuiDay.lengthBetween(start, end[0]) + 1 : 0;\n\n this.value = Array.from({length}, (_, day) => {\n const startMutable = mutable[0]?.[0];\n const currentDay = start?.append({day});\n const shifted =\n startMutable && currentDay?.daySame(startMutable)\n ? mutable.shift()\n : null;\n const currentValue = shifted ? shifted[1] : NaN;\n\n return [currentDay, currentValue] as [TuiDay, number];\n });\n }\n\n public get hint():\n | PolymorpheusContent<TuiContext<[TuiDay, number]>>\n | PolymorpheusContent<TuiContext<readonly TuiPoint[]>> {\n return this.hintDirective?.hint ?? this.hintContent;\n }\n\n public ngAfterViewInit(): void {\n combineLatest([tuiLineChartDrivers(this.charts), this.hovered$])\n .pipe(\n filter((result) => !result.some(Boolean)),\n tuiZonefree(this.zone),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.onHovered(NaN);\n });\n }\n\n public onHovered(day: TuiDay | number): void {\n if (tuiIsNumber(day)) {\n this.charts.forEach((chart) => chart.onHovered(NaN));\n\n return;\n }\n\n const start = this.value[0]?.[0];\n const index = start && day ? TuiMonth.lengthBetween(start, day) : 0;\n const x = start && day ? TuiDay.lengthBetween(start, day) + start.day - 1 : 0;\n const current = this.charts.get(index);\n\n this.charts.forEach((chart) => {\n if (chart === current) {\n current.onHovered(current.value.findIndex((point) => point[0] === x));\n } else {\n chart.onHovered(NaN);\n }\n });\n }\n\n public raise(index: number, {value}: TuiLineChart): void {\n const x = value[index]?.[0] || 0;\n const month = this.getDay(x);\n\n if (!month) {\n return;\n }\n\n if (this.hintDirective) {\n this.hintDirective.raise(month);\n } else {\n this.onHovered(month);\n }\n }\n\n public getContext(index: number, {value}: TuiLineChart): unknown {\n const x = value[index]?.[0] || 0;\n const day = this.getDay(x);\n\n return this.hintDirective && day\n ? this.hintDirective.getContext(day)\n : this.getHintContext(x, this.value);\n }\n\n protected get months(): ReadonlyArray<readonly TuiPoint[]> {\n return this.value.length ? this.breakMonths(this.value) : EMPTY_ARRAY;\n }\n\n protected get firstWidth(): number {\n return this.months.length * (this.value[0]?.[0].daysCount || 0);\n }\n\n @tuiPure\n protected getHintContext(\n x: number,\n value: ReadonlyArray<[TuiDay, number]>,\n ): [TuiDay, number] | null {\n return value[x - (value[0]?.[0]?.day || 0) + 1] ?? null;\n }\n\n protected readonly daysStringify: TuiStringHandler<number> = (index) => {\n const day = this.getDay(index);\n\n return this.xStringify && day ? this.xStringify(day) : '';\n };\n\n protected getX(index: number): number {\n const start = this.value[0]?.[0];\n const current = this.getDay(index);\n const months = start && current ? TuiMonth.lengthBetween(start, current) : 0;\n const offset = months * (current?.daysCount || 0);\n\n return index - offset;\n }\n\n protected getWidth(index: number): number {\n return (this.getDay(index)?.daysCount || 0) * this.months.length;\n }\n\n @tuiPure\n private breakMonths(\n value: ReadonlyArray<[TuiDay, number]>,\n ): ReadonlyArray<readonly TuiPoint[]> {\n const offset = (value[0]?.[0].day || 1) - 1;\n const start = value[0]?.[0];\n const end = value[value.length - 1]?.[0];\n\n return Array.from(\n {length: start && end ? TuiMonth.lengthBetween(start, end) + 1 : 0},\n (_, i) => i + (start?.month || 0) + (start?.year || 0) * 12,\n )\n .map((absoluteMonth) =>\n value\n .map<TuiPoint | null>(([{month, year}, y], index) =>\n month + year * 12 === absoluteMonth ? [index + offset, y] : null,\n )\n .filter(tuiIsPresent),\n )\n .map((month, index, array) =>\n index === array.length - 1\n ? month\n : [\n ...month,\n array[index + 1]?.find((day) => !Number.isNaN(day[1])) || DUMMY,\n ],\n );\n }\n\n private getDay(index: number): TuiDay | undefined {\n const start = this.value[0]?.[0];\n\n return this.value[index - (start?.day || 0) + 1]?.[0];\n }\n}\n","@for (month of months; track month; let first = $first) {\n <tui-line-chart\n class=\"t-chart\"\n [dots]=\"dots\"\n [height]=\"height\"\n [smoothingFactor]=\"smoothingFactor\"\n [style.zIndex]=\"zIndex\"\n [tuiHintContent]=\"hintContent ? hint : ''\"\n [value]=\"month\"\n [width]=\"first ? firstWidth : getWidth(month[0]?.[0] ?? 0)\"\n [x]=\"first ? 0 : getX(month[0]?.[0] ?? 0)\"\n [xStringify]=\"xStringify ? daysStringify : null\"\n [y]=\"y\"\n [yStringify]=\"yStringify\"\n />\n}\n<ng-template\n #hint\n let-point\n>\n <ng-container *polymorpheusOutlet=\"hintContent as text; context: {$implicit: getHintContext(point[0], value)}\">\n {{ text }}\n </ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-line-days-chart.mjs","sources":["../../../projects/addon-charts/components/line-days-chart/line-days-chart-hint.directive.ts","../../../projects/addon-charts/components/line-days-chart/line-days-chart.component.ts","../../../projects/addon-charts/components/line-days-chart/line-days-chart.template.html","../../../projects/addon-charts/components/line-days-chart/taiga-ui-addon-charts-components-line-days-chart.ts"],"sourcesContent":["import {\n type AfterContentInit,\n ContentChildren,\n DestroyRef,\n Directive,\n forwardRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {tuiLineChartDrivers} from '@taiga-ui/addon-charts/components/line-chart';\nimport {EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {type TuiDay} from '@taiga-ui/cdk/date-time';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\nimport {tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter} from 'rxjs';\n\nimport {TuiLineDaysChart} from './line-days-chart.component';\n\nfunction find(value: ReadonlyArray<[TuiDay, number]>, current: TuiDay): [TuiDay, number] {\n return value.find(([day]) => day.daySame(current)) || [current, NaN];\n}\n\n// TODO: Consider extending TuiLineChartHintDirective\n@Directive({\n standalone: true,\n selector: '[tuiLineChartHint]',\n providers: [TuiHoveredService],\n})\nexport class TuiLineDaysChartHint implements AfterContentInit {\n @ContentChildren(forwardRef(() => TuiLineDaysChart))\n private readonly charts: QueryList<TuiLineDaysChart> = EMPTY_QUERY;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly hovered$ = inject(TuiHoveredService);\n\n @Input('tuiLineChartHint')\n public hint: PolymorpheusContent<TuiContext<readonly TuiPoint[]>>;\n\n public ngAfterContentInit(): void {\n combineLatest([\n ...this.charts.map(({charts}) => tuiLineChartDrivers(charts)),\n this.hovered$,\n ])\n .pipe(\n filter((result) => !result.some(Boolean)),\n tuiZonefree(this.zone),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.charts.forEach((chart) => chart.onHovered(NaN));\n });\n }\n\n public getContext(day: TuiDay): ReadonlyArray<[TuiDay, number]> {\n return this.getMap(...this.charts.map(({value}) => value)).get(String(day)) || [];\n }\n\n public raise(day: TuiDay): void {\n const current = this.charts\n .map(({value}) => (day ? find(value, day) : []))\n .filter(([_, value]) => !Number.isNaN(value));\n const sorted = [...current].sort((a, b) => a[1] - b[1]);\n\n this.charts.forEach((chart, index) => {\n const item = current[index];\n\n chart.onHovered(day);\n chart.zIndex = Math.max(item ? sorted.indexOf(item) : 0, 0);\n });\n }\n\n @tuiPure\n private getMap(\n ...values: Array<ReadonlyArray<[TuiDay, number]>>\n ): Map<string, ReadonlyArray<[TuiDay, number]>> {\n return (values[0] || []).reduce(\n (map, [day]) =>\n map.set(\n String(day),\n values.map((value) => find(value, day)),\n ),\n new Map<string, ReadonlyArray<[TuiDay, number]>>(),\n );\n }\n}\n","import {NgForOf} from '@angular/common';\nimport {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n inject,\n Input,\n NgZone,\n type QueryList,\n ViewChildren,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {\n TUI_LINE_CHART_OPTIONS,\n TuiLineChart,\n tuiLineChartDrivers,\n TuiLineChartHint,\n} from '@taiga-ui/addon-charts/components/line-chart';\nimport {EMPTY_ARRAY, EMPTY_QUERY} from '@taiga-ui/cdk/constants';\nimport {TuiDay, TuiMonth} from '@taiga-ui/cdk/date-time';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext, type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiIsNumber, tuiIsPresent, tuiPure} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiHint} from '@taiga-ui/core/directives/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent, PolymorpheusOutlet} from '@taiga-ui/polymorpheus';\nimport {combineLatest, filter} from 'rxjs';\n\nimport {TuiLineDaysChartHint} from './line-days-chart-hint.directive';\n\nconst DUMMY: TuiPoint = [NaN, NaN];\n\n@Component({\n selector: 'tui-line-days-chart',\n imports: [NgForOf, PolymorpheusOutlet, TuiHint, TuiLineChart],\n templateUrl: './line-days-chart.template.html',\n styleUrls: ['./line-days-chart.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n TuiHoveredService,\n {\n provide: TuiLineChartHint,\n useExisting: TuiLineDaysChart,\n },\n ],\n host: {\n '[style.zIndex]': 'zIndex',\n },\n})\nexport class TuiLineDaysChart implements AfterViewInit {\n private readonly destroyRef = inject(DestroyRef);\n private readonly zone = inject(NgZone);\n private readonly hovered$ = inject(TuiHoveredService);\n private readonly options = inject(TUI_LINE_CHART_OPTIONS);\n private readonly hintDirective = inject(TuiLineDaysChartHint, {\n optional: true,\n });\n\n @ViewChildren(TuiLineChart)\n public readonly charts: QueryList<TuiLineChart> = EMPTY_QUERY;\n\n @Input()\n public y = 0;\n\n @Input()\n public height = 0;\n\n @Input()\n public smoothingFactor = this.options.smoothingFactor;\n\n @Input()\n public hintContent: PolymorpheusContent<TuiContext<[TuiDay, number]>>;\n\n @Input()\n public xStringify: TuiStringHandler<TuiDay> | null = null;\n\n @Input()\n public yStringify: TuiStringHandler<number> | null = null;\n\n @Input()\n public dots = this.options.dots;\n\n public zIndex = 0;\n\n public value: ReadonlyArray<[TuiDay, number]> = [];\n\n @Input('value')\n public set valueSetter(value: ReadonlyArray<[TuiDay, number]>) {\n if (!value.length) {\n this.value = [];\n\n return;\n }\n\n const start = value[0]?.[0];\n const end = value[value.length - 1];\n const mutable = [...value];\n const length = start && end ? TuiDay.lengthBetween(start, end[0]) + 1 : 0;\n\n this.value = Array.from({length}, (_, day) => {\n const startMutable = mutable[0]?.[0];\n const currentDay = start?.append({day});\n const shifted =\n startMutable && currentDay?.daySame(startMutable)\n ? mutable.shift()\n : null;\n const currentValue = shifted ? shifted[1] : NaN;\n\n return [currentDay, currentValue] as [TuiDay, number];\n });\n }\n\n public get hint():\n | PolymorpheusContent<TuiContext<[TuiDay, number]>>\n | PolymorpheusContent<TuiContext<readonly TuiPoint[]>> {\n return this.hintDirective?.hint ?? this.hintContent;\n }\n\n public ngAfterViewInit(): void {\n combineLatest([tuiLineChartDrivers(this.charts), this.hovered$])\n .pipe(\n filter((result) => !result.some(Boolean)),\n tuiZonefree(this.zone),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(() => {\n this.onHovered(NaN);\n });\n }\n\n public onHovered(day: TuiDay | number): void {\n if (tuiIsNumber(day)) {\n this.charts.forEach((chart) => chart.onHovered(NaN));\n\n return;\n }\n\n const start = this.value[0]?.[0];\n const index = start && day ? TuiMonth.lengthBetween(start, day) : 0;\n const x = start && day ? TuiDay.lengthBetween(start, day) + start.day - 1 : 0;\n const current = this.charts.get(index);\n\n this.charts.forEach((chart) => {\n if (chart === current) {\n current.onHovered(current.value.findIndex((point) => point[0] === x));\n } else {\n chart.onHovered(NaN);\n }\n });\n }\n\n public raise(index: number, {value}: TuiLineChart): void {\n const x = value[index]?.[0] || 0;\n const month = this.getDay(x);\n\n if (!month) {\n return;\n }\n\n if (this.hintDirective) {\n this.hintDirective.raise(month);\n } else {\n this.onHovered(month);\n }\n }\n\n public getContext(index: number, {value}: TuiLineChart): unknown {\n const x = value[index]?.[0] || 0;\n const day = this.getDay(x);\n\n return this.hintDirective && day\n ? this.hintDirective.getContext(day)\n : this.getHintContext(x, this.value);\n }\n\n protected get months(): ReadonlyArray<readonly TuiPoint[]> {\n return this.value.length ? this.breakMonths(this.value) : EMPTY_ARRAY;\n }\n\n protected get firstWidth(): number {\n return this.months.length * (this.value[0]?.[0].daysCount || 0);\n }\n\n @tuiPure\n protected getHintContext(\n x: number,\n value: ReadonlyArray<[TuiDay, number]>,\n ): [TuiDay, number] | null {\n return value[x - (value[0]?.[0]?.day || 0) + 1] ?? null;\n }\n\n protected readonly daysStringify: TuiStringHandler<number> = (index) => {\n const day = this.getDay(index);\n\n return this.xStringify && day ? this.xStringify(day) : '';\n };\n\n protected getX(index: number): number {\n const start = this.value[0]?.[0];\n const current = this.getDay(index);\n const months = start && current ? TuiMonth.lengthBetween(start, current) : 0;\n const offset = months * (current?.daysCount || 0);\n\n return index - offset;\n }\n\n protected getWidth(index: number): number {\n return (this.getDay(index)?.daysCount || 0) * this.months.length;\n }\n\n @tuiPure\n private breakMonths(\n value: ReadonlyArray<[TuiDay, number]>,\n ): ReadonlyArray<readonly TuiPoint[]> {\n const offset = (value[0]?.[0].day || 1) - 1;\n const start = value[0]?.[0];\n const end = value[value.length - 1]?.[0];\n\n return Array.from(\n {length: start && end ? TuiMonth.lengthBetween(start, end) + 1 : 0},\n (_, i) => i + (start?.month || 0) + (start?.year || 0) * 12,\n )\n .map((absoluteMonth) =>\n value\n .map<TuiPoint | null>(([{month, year}, y], index) =>\n month + year * 12 === absoluteMonth ? [index + offset, y] : null,\n )\n .filter(tuiIsPresent),\n )\n .map((month, index, array) =>\n index === array.length - 1\n ? month\n : [\n ...month,\n array[index + 1]?.find((day) => !Number.isNaN(day[1])) || DUMMY,\n ],\n );\n }\n\n private getDay(index: number): TuiDay | undefined {\n const start = this.value[0]?.[0];\n\n return this.value[index - (start?.day || 0) + 1]?.[0];\n }\n}\n","<tui-line-chart\n *ngFor=\"let month of months; let first = first\"\n class=\"t-chart\"\n [dots]=\"dots\"\n [height]=\"height\"\n [smoothingFactor]=\"smoothingFactor\"\n [style.zIndex]=\"zIndex\"\n [tuiHintContent]=\"hintContent ? hint : ''\"\n [value]=\"month\"\n [width]=\"first ? firstWidth : getWidth(month[0]?.[0] ?? 0)\"\n [x]=\"first ? 0 : getX(month[0]?.[0] ?? 0)\"\n [xStringify]=\"xStringify ? daysStringify : null\"\n [y]=\"y\"\n [yStringify]=\"yStringify\"\n/>\n<ng-template\n #hint\n let-point\n>\n <ng-container *polymorpheusOutlet=\"hintContent as text; context: {$implicit: getHintContext(point[0], value)}\">\n {{ text }}\n </ng-container>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/addon-charts",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.a4e325d",
|
|
4
4
|
"description": "Extension package for Taiga UI that adds various charts, graphs and related components.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -43,14 +43,14 @@
|
|
|
43
43
|
"types": "./utils/index.d.ts",
|
|
44
44
|
"default": "./fesm2022/taiga-ui-addon-charts-utils.mjs"
|
|
45
45
|
},
|
|
46
|
-
"./components/arc-chart": {
|
|
47
|
-
"types": "./components/arc-chart/index.d.ts",
|
|
48
|
-
"default": "./fesm2022/taiga-ui-addon-charts-components-arc-chart.mjs"
|
|
49
|
-
},
|
|
50
46
|
"./components/axes": {
|
|
51
47
|
"types": "./components/axes/index.d.ts",
|
|
52
48
|
"default": "./fesm2022/taiga-ui-addon-charts-components-axes.mjs"
|
|
53
49
|
},
|
|
50
|
+
"./components/arc-chart": {
|
|
51
|
+
"types": "./components/arc-chart/index.d.ts",
|
|
52
|
+
"default": "./fesm2022/taiga-ui-addon-charts-components-arc-chart.mjs"
|
|
53
|
+
},
|
|
54
54
|
"./components/bar": {
|
|
55
55
|
"types": "./components/bar/index.d.ts",
|
|
56
56
|
"default": "./fesm2022/taiga-ui-addon-charts-components-bar.mjs"
|
|
@@ -59,14 +59,14 @@
|
|
|
59
59
|
"types": "./components/bar-chart/index.d.ts",
|
|
60
60
|
"default": "./fesm2022/taiga-ui-addon-charts-components-bar-chart.mjs"
|
|
61
61
|
},
|
|
62
|
-
"./components/legend-item": {
|
|
63
|
-
"types": "./components/legend-item/index.d.ts",
|
|
64
|
-
"default": "./fesm2022/taiga-ui-addon-charts-components-legend-item.mjs"
|
|
65
|
-
},
|
|
66
62
|
"./components/bar-set": {
|
|
67
63
|
"types": "./components/bar-set/index.d.ts",
|
|
68
64
|
"default": "./fesm2022/taiga-ui-addon-charts-components-bar-set.mjs"
|
|
69
65
|
},
|
|
66
|
+
"./components/legend-item": {
|
|
67
|
+
"types": "./components/legend-item/index.d.ts",
|
|
68
|
+
"default": "./fesm2022/taiga-ui-addon-charts-components-legend-item.mjs"
|
|
69
|
+
},
|
|
70
70
|
"./components/line-chart": {
|
|
71
71
|
"types": "./components/line-chart/index.d.ts",
|
|
72
72
|
"default": "./fesm2022/taiga-ui-addon-charts-components-line-chart.mjs"
|