@taiga-ui/addon-charts 5.0.0-rc.2 → 5.0.0-rc.4
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-arc-chart.mjs +2 -2
- package/fesm2022/taiga-ui-addon-charts-components-arc-chart.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-axes.mjs +2 -2
- package/fesm2022/taiga-ui-addon-charts-components-axes.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-bar-set.mjs +2 -2
- package/fesm2022/taiga-ui-addon-charts-components-bar-set.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-legend-item.mjs +2 -2
- package/fesm2022/taiga-ui-addon-charts-components-legend-item.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-line-chart.mjs +2 -2
- package/fesm2022/taiga-ui-addon-charts-components-line-chart.mjs.map +1 -1
- package/fesm2022/taiga-ui-addon-charts-components-ring-chart.mjs +2 -2
- package/fesm2022/taiga-ui-addon-charts-components-ring-chart.mjs.map +1 -1
- package/package.json +8 -8
|
@@ -45,7 +45,7 @@ class TuiArcChart {
|
|
|
45
45
|
(1 - Math.min((this.value()[index] || 0) / this.max(), 1)));
|
|
46
46
|
}
|
|
47
47
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiArcChart, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
48
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiArcChart, isStandalone: true, selector: "tui-arc-chart", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minLabel: { classPropertyName: "minLabel", publicName: "minLabel", isSignal: true, isRequired: false, transformFunction: null }, maxLabel: { classPropertyName: "maxLabel", publicName: "maxLabel", isSignal: true, isRequired: false, transformFunction: null }, activeItemIndex: { classPropertyName: "activeItemIndex", publicName: "activeItemIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemIndex: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "size()", "style.width.rem": "width", "style.height.rem": "width", "style.strokeWidth.rem": "strokeWidth" } }, ngImport: i0, template: "@let data = value();\n@let min = minLabel();\n@let max = maxLabel();\n@for (_ of '-'.repeat(data.length); track $index) {\n <svg\n focusable=\"false\"\n viewBox=\"-100 -100 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [style.height.rem]=\"getDiameter($index)\"\n [style.inset-block-start.rem]=\"getInset($index)\"\n [style.inset-inline.rem]=\"getInset($index)\"\n >\n <path\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n />\n <path\n #arc\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive($index)\"\n [style.stroke]=\"`var(--tui-chart-categorical-${$index.toString().padStart(2, '0')})`\"\n [style.strokeDasharray.em]=\"getLength($index)\"\n [style.strokeDashoffset.em]=\"initialized() ? getOffset($index) : getLength($index)\"\n (tuiHoveredChange)=\"onHovered($event, $index)\"\n />\n </svg>\n}\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ min }}</span>\n <span>{{ max }}</span>\n</div>\n", styles: [":host{position:relative;display:block;flex-shrink:0}.t-svg{position:absolute;inset:0;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:round;color:var(--tui-background-neutral-1);font-size:1rem;pointer-events:none}.t-value{pointer-events:auto;transition:stroke-dashoffset var(--tui-duration) ease-in-out,opacity var(--tui-duration) ease-in-out .1s}.t-value_inactive{transition-property:stroke-dashoffset,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:.16}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--tui-text-secondary);font:var(--tui-
|
|
48
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiArcChart, isStandalone: true, selector: "tui-arc-chart", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, minLabel: { classPropertyName: "minLabel", publicName: "minLabel", isSignal: true, isRequired: false, transformFunction: null }, maxLabel: { classPropertyName: "maxLabel", publicName: "maxLabel", isSignal: true, isRequired: false, transformFunction: null }, activeItemIndex: { classPropertyName: "activeItemIndex", publicName: "activeItemIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemIndex: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "size()", "style.width.rem": "width", "style.height.rem": "width", "style.strokeWidth.rem": "strokeWidth" } }, ngImport: i0, template: "@let data = value();\n@let min = minLabel();\n@let max = maxLabel();\n@for (_ of '-'.repeat(data.length); track $index) {\n <svg\n focusable=\"false\"\n viewBox=\"-100 -100 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [style.height.rem]=\"getDiameter($index)\"\n [style.inset-block-start.rem]=\"getInset($index)\"\n [style.inset-inline.rem]=\"getInset($index)\"\n >\n <path\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n />\n <path\n #arc\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive($index)\"\n [style.stroke]=\"`var(--tui-chart-categorical-${$index.toString().padStart(2, '0')})`\"\n [style.strokeDasharray.em]=\"getLength($index)\"\n [style.strokeDashoffset.em]=\"initialized() ? getOffset($index) : getLength($index)\"\n (tuiHoveredChange)=\"onHovered($event, $index)\"\n />\n </svg>\n}\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ min }}</span>\n <span>{{ max }}</span>\n</div>\n", styles: [":host{position:relative;display:block;flex-shrink:0}.t-svg{position:absolute;inset:0;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:round;color:var(--tui-background-neutral-1);font-size:1rem;pointer-events:none}.t-value{pointer-events:auto;transition:stroke-dashoffset var(--tui-duration) ease-in-out,opacity var(--tui-duration) ease-in-out .1s}.t-value_inactive{transition-property:stroke-dashoffset,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:.16}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--tui-text-secondary);font:var(--tui-typography-body-xs);pointer-events:none}:host[data-size=xl] .t-content{font:var(--tui-typography-body-m)}.t-wrapper{pointer-events:auto}.t-wrapper:first-line{color:var(--tui-text-primary)}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-typography-body-s);font-weight:700}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-typography-body-m);font-weight:700}:host[data-size=xl] .t-wrapper:first-line{font:var(--tui-typography-heading-h5)}.t-percent{position:absolute;display:flex;inset-block:auto 11%;inset-inline:25% auto;inline-size:50%;justify-content:space-between;font:var(--tui-typography-body-xs);color:var(--tui-text-secondary)}:host[data-size=xl] .t-percent{font:var(--tui-typography-body-m)}\n"], dependencies: [{ kind: "directive", type: TuiHovered, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
49
49
|
}
|
|
50
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiArcChart, decorators: [{
|
|
51
51
|
type: Component,
|
|
@@ -54,7 +54,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
54
54
|
'[style.width.rem]': 'width',
|
|
55
55
|
'[style.height.rem]': 'width',
|
|
56
56
|
'[style.strokeWidth.rem]': 'strokeWidth',
|
|
57
|
-
}, template: "@let data = value();\n@let min = minLabel();\n@let max = maxLabel();\n@for (_ of '-'.repeat(data.length); track $index) {\n <svg\n focusable=\"false\"\n viewBox=\"-100 -100 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [style.height.rem]=\"getDiameter($index)\"\n [style.inset-block-start.rem]=\"getInset($index)\"\n [style.inset-inline.rem]=\"getInset($index)\"\n >\n <path\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n />\n <path\n #arc\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive($index)\"\n [style.stroke]=\"`var(--tui-chart-categorical-${$index.toString().padStart(2, '0')})`\"\n [style.strokeDasharray.em]=\"getLength($index)\"\n [style.strokeDashoffset.em]=\"initialized() ? getOffset($index) : getLength($index)\"\n (tuiHoveredChange)=\"onHovered($event, $index)\"\n />\n </svg>\n}\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ min }}</span>\n <span>{{ max }}</span>\n</div>\n", styles: [":host{position:relative;display:block;flex-shrink:0}.t-svg{position:absolute;inset:0;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:round;color:var(--tui-background-neutral-1);font-size:1rem;pointer-events:none}.t-value{pointer-events:auto;transition:stroke-dashoffset var(--tui-duration) ease-in-out,opacity var(--tui-duration) ease-in-out .1s}.t-value_inactive{transition-property:stroke-dashoffset,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:.16}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--tui-text-secondary);font:var(--tui-
|
|
57
|
+
}, template: "@let data = value();\n@let min = minLabel();\n@let max = maxLabel();\n@for (_ of '-'.repeat(data.length); track $index) {\n <svg\n focusable=\"false\"\n viewBox=\"-100 -100 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [style.height.rem]=\"getDiameter($index)\"\n [style.inset-block-start.rem]=\"getInset($index)\"\n [style.inset-inline.rem]=\"getInset($index)\"\n >\n <path\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n />\n <path\n #arc\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive($index)\"\n [style.stroke]=\"`var(--tui-chart-categorical-${$index.toString().padStart(2, '0')})`\"\n [style.strokeDasharray.em]=\"getLength($index)\"\n [style.strokeDashoffset.em]=\"initialized() ? getOffset($index) : getLength($index)\"\n (tuiHoveredChange)=\"onHovered($event, $index)\"\n />\n </svg>\n}\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ min }}</span>\n <span>{{ max }}</span>\n</div>\n", styles: [":host{position:relative;display:block;flex-shrink:0}.t-svg{position:absolute;inset:0;overflow:visible;fill:none;stroke:currentColor;stroke-linecap:round;color:var(--tui-background-neutral-1);font-size:1rem;pointer-events:none}.t-value{pointer-events:auto;transition:stroke-dashoffset var(--tui-duration) ease-in-out,opacity var(--tui-duration) ease-in-out .1s}.t-value_inactive{transition-property:stroke-dashoffset,opacity;transition-duration:var(--tui-duration, .3s);transition-timing-function:ease-in-out;opacity:.16}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;justify-content:center;align-items:center;text-align:center;color:var(--tui-text-secondary);font:var(--tui-typography-body-xs);pointer-events:none}:host[data-size=xl] .t-content{font:var(--tui-typography-body-m)}.t-wrapper{pointer-events:auto}.t-wrapper:first-line{color:var(--tui-text-primary)}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-typography-body-s);font-weight:700}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-typography-body-m);font-weight:700}:host[data-size=xl] .t-wrapper:first-line{font:var(--tui-typography-heading-h5)}.t-percent{position:absolute;display:flex;inset-block:auto 11%;inset-inline:25% auto;inline-size:50%;justify-content:space-between;font:var(--tui-typography-body-xs);color:var(--tui-text-secondary)}:host[data-size=xl] .t-percent{font:var(--tui-typography-body-m)}\n"] }]
|
|
58
58
|
}] });
|
|
59
59
|
|
|
60
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-arc-chart.mjs","sources":["../../../projects/addon-charts/components/arc-chart/arc-chart.component.ts","../../../projects/addon-charts/components/arc-chart/arc-chart.template.html","../../../projects/addon-charts/components/arc-chart/taiga-ui-addon-charts-components-arc-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, input, model} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiSizeXL} from '@taiga-ui/core/types';\nimport {map, take, timer} from 'rxjs';\n\nconst ARC = 0.76; // 3/4 with 1% safety offset\nconst SIZE = {m: 9, l: 11, xl: 16} as const;\nconst WIDTH = {m: 0.25, l: 0.375, xl: 0.5625} as const;\nconst GAP = {m: 0.125, l: 0.1875, xl: 0.25} as const;\n\n@Component({\n selector: 'tui-arc-chart',\n imports: [TuiHovered],\n templateUrl: './arc-chart.template.html',\n styleUrl: './arc-chart.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size()',\n '[style.width.rem]': 'width',\n '[style.height.rem]': 'width',\n '[style.strokeWidth.rem]': 'strokeWidth',\n },\n})\nexport class TuiArcChart {\n protected readonly initialized = toSignal(\n timer(0).pipe(\n tuiZonefree(),\n take(1),\n map(() => true),\n ),\n {initialValue: false},\n );\n\n public readonly value = input<readonly number[]>([]);\n public readonly size = input<TuiSizeXL>('m');\n public readonly max = input(100);\n public readonly minLabel = input('0%');\n public readonly maxLabel = input('100%');\n\n public readonly activeItemIndex = model<number>(NaN);\n\n protected get width(): number {\n return SIZE[this.size()];\n }\n\n protected get strokeWidth(): number {\n return WIDTH[this.size()];\n }\n\n protected onHovered(hovered: boolean, index: number): void {\n this.activeItemIndex.set(hovered ? index : NaN);\n }\n\n protected isInactive(index: number): boolean {\n return !Number.isNaN(this.activeItemIndex()) && index !== this.activeItemIndex();\n }\n\n protected getInset(index: number): number {\n return this.strokeWidth / 2 + index * (this.strokeWidth + GAP[this.size()]);\n }\n\n protected getDiameter(index: number): number {\n return SIZE[this.size()] - 2 * this.getInset(index);\n }\n\n protected getLength(index: number): number {\n return Math.PI * this.getDiameter(index) * ARC;\n }\n\n protected getOffset(index: number): number {\n return (\n this.getLength(index) *\n (1 - Math.min((this.value()[index] || 0) / this.max(), 1))\n );\n }\n}\n","@let data = value();\n@let min = minLabel();\n@let max = maxLabel();\n@for (_ of '-'.repeat(data.length); track $index) {\n <svg\n focusable=\"false\"\n viewBox=\"-100 -100 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [style.height.rem]=\"getDiameter($index)\"\n [style.inset-block-start.rem]=\"getInset($index)\"\n [style.inset-inline.rem]=\"getInset($index)\"\n >\n <path\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n />\n <path\n #arc\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive($index)\"\n [style.stroke]=\"`var(--tui-chart-categorical-${$index.toString().padStart(2, '0')})`\"\n [style.strokeDasharray.em]=\"getLength($index)\"\n [style.strokeDashoffset.em]=\"initialized() ? getOffset($index) : getLength($index)\"\n (tuiHoveredChange)=\"onHovered($event, $index)\"\n />\n </svg>\n}\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ min }}</span>\n <span>{{ max }}</span>\n</div>\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-arc-chart.mjs","sources":["../../../projects/addon-charts/components/arc-chart/arc-chart.component.ts","../../../projects/addon-charts/components/arc-chart/arc-chart.template.html","../../../projects/addon-charts/components/arc-chart/taiga-ui-addon-charts-components-arc-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, input, model} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {TuiHovered} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiSizeXL} from '@taiga-ui/core/types';\nimport {map, take, timer} from 'rxjs';\n\nconst ARC = 0.76; // 3/4 with 1% safety offset\nconst SIZE = {m: 9, l: 11, xl: 16} as const;\nconst WIDTH = {m: 0.25, l: 0.375, xl: 0.5625} as const;\nconst GAP = {m: 0.125, l: 0.1875, xl: 0.25} as const;\n\n@Component({\n selector: 'tui-arc-chart',\n imports: [TuiHovered],\n templateUrl: './arc-chart.template.html',\n styleUrl: './arc-chart.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size()',\n '[style.width.rem]': 'width',\n '[style.height.rem]': 'width',\n '[style.strokeWidth.rem]': 'strokeWidth',\n },\n})\nexport class TuiArcChart {\n protected readonly initialized = toSignal(\n timer(0).pipe(\n tuiZonefree(),\n take(1),\n map(() => true),\n ),\n {initialValue: false},\n );\n\n public readonly value = input<readonly number[]>([]);\n public readonly size = input<TuiSizeXL>('m');\n public readonly max = input(100);\n public readonly minLabel = input('0%');\n public readonly maxLabel = input('100%');\n\n public readonly activeItemIndex = model<number>(NaN);\n\n protected get width(): number {\n return SIZE[this.size()];\n }\n\n protected get strokeWidth(): number {\n return WIDTH[this.size()];\n }\n\n protected onHovered(hovered: boolean, index: number): void {\n this.activeItemIndex.set(hovered ? index : NaN);\n }\n\n protected isInactive(index: number): boolean {\n return !Number.isNaN(this.activeItemIndex()) && index !== this.activeItemIndex();\n }\n\n protected getInset(index: number): number {\n return this.strokeWidth / 2 + index * (this.strokeWidth + GAP[this.size()]);\n }\n\n protected getDiameter(index: number): number {\n return SIZE[this.size()] - 2 * this.getInset(index);\n }\n\n protected getLength(index: number): number {\n return Math.PI * this.getDiameter(index) * ARC;\n }\n\n protected getOffset(index: number): number {\n return (\n this.getLength(index) *\n (1 - Math.min((this.value()[index] || 0) / this.max(), 1))\n );\n }\n}\n","@let data = value();\n@let min = minLabel();\n@let max = maxLabel();\n@for (_ of '-'.repeat(data.length); track $index) {\n <svg\n focusable=\"false\"\n viewBox=\"-100 -100 200 200\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"t-svg\"\n [style.height.rem]=\"getDiameter($index)\"\n [style.inset-block-start.rem]=\"getInset($index)\"\n [style.inset-inline.rem]=\"getInset($index)\"\n >\n <path\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n />\n <path\n #arc\n d=\"M -70 70 A 100 100 0 1 1 70 70\"\n vector-effect=\"non-scaling-stroke\"\n class=\"t-value\"\n [class.t-value_inactive]=\"isInactive($index)\"\n [style.stroke]=\"`var(--tui-chart-categorical-${$index.toString().padStart(2, '0')})`\"\n [style.strokeDasharray.em]=\"getLength($index)\"\n [style.strokeDashoffset.em]=\"initialized() ? getOffset($index) : getLength($index)\"\n (tuiHoveredChange)=\"onHovered($event, $index)\"\n />\n </svg>\n}\n<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n<div class=\"t-percent\">\n <span>{{ min }}</span>\n <span>{{ max }}</span>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -27,14 +27,14 @@ class TuiAxes {
|
|
|
27
27
|
!!this.axisYSecondaryName());
|
|
28
28
|
}
|
|
29
29
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiAxes, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiAxes, isStandalone: true, selector: "tui-axes", inputs: { axisXLabels: { classPropertyName: "axisXLabels", publicName: "axisXLabels", isSignal: true, isRequired: false, transformFunction: null }, axisYInset: { classPropertyName: "axisYInset", publicName: "axisYInset", isSignal: true, isRequired: false, transformFunction: null }, axisYLabels: { classPropertyName: "axisYLabels", publicName: "axisYLabels", isSignal: true, isRequired: false, transformFunction: null }, axisYName: { classPropertyName: "axisYName", publicName: "axisYName", isSignal: true, isRequired: false, transformFunction: null }, axisYSecondaryInset: { classPropertyName: "axisYSecondaryInset", publicName: "axisYSecondaryInset", isSignal: true, isRequired: false, transformFunction: null }, axisYSecondaryLabels: { classPropertyName: "axisYSecondaryLabels", publicName: "axisYSecondaryLabels", isSignal: true, isRequired: false, transformFunction: null }, axisYSecondaryName: { classPropertyName: "axisYSecondaryName", publicName: "axisYSecondaryName", isSignal: true, isRequired: false, transformFunction: null }, centeredXLabels: { classPropertyName: "centeredXLabels", publicName: "centeredXLabels", isSignal: true, isRequired: false, transformFunction: null }, horizontalLines: { classPropertyName: "horizontalLines", publicName: "horizontalLines", isSignal: true, isRequired: false, transformFunction: null }, horizontalLinesHandler: { classPropertyName: "horizontalLinesHandler", publicName: "horizontalLinesHandler", isSignal: true, isRequired: false, transformFunction: null }, verticalLines: { classPropertyName: "verticalLines", publicName: "verticalLines", isSignal: true, isRequired: false, transformFunction: null }, verticalLinesHandler: { classPropertyName: "verticalLinesHandler", publicName: "verticalLinesHandler", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "dir": "ltr" }, properties: { "class._centered": "centeredXLabels()" } }, ngImport: i0, template: "@let ySecLabels = axisYSecondaryLabels();\n@let ySecInset = axisYSecondaryInset();\n@let yLabels = axisYLabels();\n@let yInset = axisYInset();\n@let hasXs = hasXLabels();\n\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYLabels()) {\n @let yName = axisYName();\n @if (yName) {\n <div\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ yName }}\n </div>\n }\n @if (!yInset) {\n <div class=\"t-labels-y t-labels-y_primary\">\n @for (label of yLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n }\n</div>\n<div class=\"t-wrapper\">\n @let vLineFn = verticalLinesHandler();\n @let vLines = verticalLines();\n @let hLineFn = horizontalLinesHandler();\n @let hLines = horizontalLines();\n <div\n class=\"t-grid\"\n [style.border-block-end-style]=\"hLineFn(0, hLines)\"\n [style.border-inline-start-style]=\"vLineFn(0, vLines)\"\n >\n <div class=\"t-vertical\">\n @for (_ of '-'.repeat(vLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.border-inline-end-style]=\"vLineFn($index + 1, vLines)\"\n ></div>\n }\n </div>\n <div class=\"t-horizontal\">\n @for (_ of '-'.repeat(hLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.border-block-start-style]=\"hLineFn($index + 1, hLines)\"\n ></div>\n }\n </div>\n @if (yInset) {\n <div class=\"t-labels-y t-labels-y_inset\">\n @for (label of yLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @if (ySecInset) {\n <div class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\">\n @for (label of ySecLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n <div class=\"t-content\">\n <ng-content />\n </div>\n </div>\n @if (hasXs) {\n <div class=\"t-labels-x\">\n @for (label of axisXLabels(); track $index) {\n <div\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n</div>\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYSecondaryLabels()) {\n @if (!ySecInset) {\n <div class=\"t-labels-y t-labels-y_secondary\">\n @for (label of ySecLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @let axisYSec = axisYSecondaryName();\n @if (axisYSec) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSec }}\n </div>\n }\n }\n</div>\n", styles: [":host{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr auto;block-size:100%}.t-wrapper{display:grid;grid-template-rows:1fr auto;grid-row:span 2}.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;grid-row:1}.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-
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiAxes, isStandalone: true, selector: "tui-axes", inputs: { axisXLabels: { classPropertyName: "axisXLabels", publicName: "axisXLabels", isSignal: true, isRequired: false, transformFunction: null }, axisYInset: { classPropertyName: "axisYInset", publicName: "axisYInset", isSignal: true, isRequired: false, transformFunction: null }, axisYLabels: { classPropertyName: "axisYLabels", publicName: "axisYLabels", isSignal: true, isRequired: false, transformFunction: null }, axisYName: { classPropertyName: "axisYName", publicName: "axisYName", isSignal: true, isRequired: false, transformFunction: null }, axisYSecondaryInset: { classPropertyName: "axisYSecondaryInset", publicName: "axisYSecondaryInset", isSignal: true, isRequired: false, transformFunction: null }, axisYSecondaryLabels: { classPropertyName: "axisYSecondaryLabels", publicName: "axisYSecondaryLabels", isSignal: true, isRequired: false, transformFunction: null }, axisYSecondaryName: { classPropertyName: "axisYSecondaryName", publicName: "axisYSecondaryName", isSignal: true, isRequired: false, transformFunction: null }, centeredXLabels: { classPropertyName: "centeredXLabels", publicName: "centeredXLabels", isSignal: true, isRequired: false, transformFunction: null }, horizontalLines: { classPropertyName: "horizontalLines", publicName: "horizontalLines", isSignal: true, isRequired: false, transformFunction: null }, horizontalLinesHandler: { classPropertyName: "horizontalLinesHandler", publicName: "horizontalLinesHandler", isSignal: true, isRequired: false, transformFunction: null }, verticalLines: { classPropertyName: "verticalLines", publicName: "verticalLines", isSignal: true, isRequired: false, transformFunction: null }, verticalLinesHandler: { classPropertyName: "verticalLinesHandler", publicName: "verticalLinesHandler", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "dir": "ltr" }, properties: { "class._centered": "centeredXLabels()" } }, ngImport: i0, template: "@let ySecLabels = axisYSecondaryLabels();\n@let ySecInset = axisYSecondaryInset();\n@let yLabels = axisYLabels();\n@let yInset = axisYInset();\n@let hasXs = hasXLabels();\n\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYLabels()) {\n @let yName = axisYName();\n @if (yName) {\n <div\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ yName }}\n </div>\n }\n @if (!yInset) {\n <div class=\"t-labels-y t-labels-y_primary\">\n @for (label of yLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n }\n</div>\n<div class=\"t-wrapper\">\n @let vLineFn = verticalLinesHandler();\n @let vLines = verticalLines();\n @let hLineFn = horizontalLinesHandler();\n @let hLines = horizontalLines();\n <div\n class=\"t-grid\"\n [style.border-block-end-style]=\"hLineFn(0, hLines)\"\n [style.border-inline-start-style]=\"vLineFn(0, vLines)\"\n >\n <div class=\"t-vertical\">\n @for (_ of '-'.repeat(vLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.border-inline-end-style]=\"vLineFn($index + 1, vLines)\"\n ></div>\n }\n </div>\n <div class=\"t-horizontal\">\n @for (_ of '-'.repeat(hLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.border-block-start-style]=\"hLineFn($index + 1, hLines)\"\n ></div>\n }\n </div>\n @if (yInset) {\n <div class=\"t-labels-y t-labels-y_inset\">\n @for (label of yLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @if (ySecInset) {\n <div class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\">\n @for (label of ySecLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n <div class=\"t-content\">\n <ng-content />\n </div>\n </div>\n @if (hasXs) {\n <div class=\"t-labels-x\">\n @for (label of axisXLabels(); track $index) {\n <div\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n</div>\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYSecondaryLabels()) {\n @if (!ySecInset) {\n <div class=\"t-labels-y t-labels-y_secondary\">\n @for (label of ySecLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @let axisYSec = axisYSecondaryName();\n @if (axisYSec) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSec }}\n </div>\n }\n }\n</div>\n", styles: [":host{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr auto;block-size:100%}.t-wrapper{display:grid;grid-template-rows:1fr auto;grid-row:span 2}.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;grid-row:1}.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-typography-body-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-typography-body-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;inset-block:.5625rem -.75rem;inset-inline:.25rem auto;pointer-events:none}.t-labels-y_inset_secondary{inset-inline:auto .25rem;text-align:end}.t-labels-x{position:relative;display:flex;font:var(--tui-typography-body-xs);border-inline-end:1px solid transparent;color:var(--tui-text-secondary)}.t-label-x{flex:1}.t-label-x:before{content:\"\";display:block;block-size:.5625rem;border-inline-start:1px solid var(--tui-border-normal)}.t-label-x:last-of-type:before{border:none}.t-label-x_transparent{border-color:transparent}:host._centered .t-label-x{block-size:2rem;text-align:center;margin:0}:host._centered .t-label-x:before{border:none}:host:not(._centered) .t-label-x:last-child:not(:first-child){position:absolute;inset-inline-end: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;display:flex;inset-block:0 -1px;inset-inline:-1px 0;align-items:flex-end}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
31
|
}
|
|
32
32
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiAxes, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ selector: 'tui-axes', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
35
35
|
dir: 'ltr',
|
|
36
36
|
'[class._centered]': 'centeredXLabels()',
|
|
37
|
-
}, template: "@let ySecLabels = axisYSecondaryLabels();\n@let ySecInset = axisYSecondaryInset();\n@let yLabels = axisYLabels();\n@let yInset = axisYInset();\n@let hasXs = hasXLabels();\n\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYLabels()) {\n @let yName = axisYName();\n @if (yName) {\n <div\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ yName }}\n </div>\n }\n @if (!yInset) {\n <div class=\"t-labels-y t-labels-y_primary\">\n @for (label of yLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n }\n</div>\n<div class=\"t-wrapper\">\n @let vLineFn = verticalLinesHandler();\n @let vLines = verticalLines();\n @let hLineFn = horizontalLinesHandler();\n @let hLines = horizontalLines();\n <div\n class=\"t-grid\"\n [style.border-block-end-style]=\"hLineFn(0, hLines)\"\n [style.border-inline-start-style]=\"vLineFn(0, vLines)\"\n >\n <div class=\"t-vertical\">\n @for (_ of '-'.repeat(vLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.border-inline-end-style]=\"vLineFn($index + 1, vLines)\"\n ></div>\n }\n </div>\n <div class=\"t-horizontal\">\n @for (_ of '-'.repeat(hLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.border-block-start-style]=\"hLineFn($index + 1, hLines)\"\n ></div>\n }\n </div>\n @if (yInset) {\n <div class=\"t-labels-y t-labels-y_inset\">\n @for (label of yLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @if (ySecInset) {\n <div class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\">\n @for (label of ySecLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n <div class=\"t-content\">\n <ng-content />\n </div>\n </div>\n @if (hasXs) {\n <div class=\"t-labels-x\">\n @for (label of axisXLabels(); track $index) {\n <div\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n</div>\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYSecondaryLabels()) {\n @if (!ySecInset) {\n <div class=\"t-labels-y t-labels-y_secondary\">\n @for (label of ySecLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @let axisYSec = axisYSecondaryName();\n @if (axisYSec) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSec }}\n </div>\n }\n }\n</div>\n", styles: [":host{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr auto;block-size:100%}.t-wrapper{display:grid;grid-template-rows:1fr auto;grid-row:span 2}.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;grid-row:1}.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-
|
|
37
|
+
}, template: "@let ySecLabels = axisYSecondaryLabels();\n@let ySecInset = axisYSecondaryInset();\n@let yLabels = axisYLabels();\n@let yInset = axisYInset();\n@let hasXs = hasXLabels();\n\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYLabels()) {\n @let yName = axisYName();\n @if (yName) {\n <div\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ yName }}\n </div>\n }\n @if (!yInset) {\n <div class=\"t-labels-y t-labels-y_primary\">\n @for (label of yLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n }\n</div>\n<div class=\"t-wrapper\">\n @let vLineFn = verticalLinesHandler();\n @let vLines = verticalLines();\n @let hLineFn = horizontalLinesHandler();\n @let hLines = horizontalLines();\n <div\n class=\"t-grid\"\n [style.border-block-end-style]=\"hLineFn(0, hLines)\"\n [style.border-inline-start-style]=\"vLineFn(0, vLines)\"\n >\n <div class=\"t-vertical\">\n @for (_ of '-'.repeat(vLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.border-inline-end-style]=\"vLineFn($index + 1, vLines)\"\n ></div>\n }\n </div>\n <div class=\"t-horizontal\">\n @for (_ of '-'.repeat(hLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.border-block-start-style]=\"hLineFn($index + 1, hLines)\"\n ></div>\n }\n </div>\n @if (yInset) {\n <div class=\"t-labels-y t-labels-y_inset\">\n @for (label of yLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @if (ySecInset) {\n <div class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\">\n @for (label of ySecLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n <div class=\"t-content\">\n <ng-content />\n </div>\n </div>\n @if (hasXs) {\n <div class=\"t-labels-x\">\n @for (label of axisXLabels(); track $index) {\n <div\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n</div>\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYSecondaryLabels()) {\n @if (!ySecInset) {\n <div class=\"t-labels-y t-labels-y_secondary\">\n @for (label of ySecLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @let axisYSec = axisYSecondaryName();\n @if (axisYSec) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSec }}\n </div>\n }\n }\n</div>\n", styles: [":host{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:1fr auto;block-size:100%}.t-wrapper{display:grid;grid-template-rows:1fr auto;grid-row:span 2}.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;grid-row:1}.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-typography-body-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-typography-body-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;inset-block:.5625rem -.75rem;inset-inline:.25rem auto;pointer-events:none}.t-labels-y_inset_secondary{inset-inline:auto .25rem;text-align:end}.t-labels-x{position:relative;display:flex;font:var(--tui-typography-body-xs);border-inline-end:1px solid transparent;color:var(--tui-text-secondary)}.t-label-x{flex:1}.t-label-x:before{content:\"\";display:block;block-size:.5625rem;border-inline-start:1px solid var(--tui-border-normal)}.t-label-x:last-of-type:before{border:none}.t-label-x_transparent{border-color:transparent}:host._centered .t-label-x{block-size:2rem;text-align:center;margin:0}:host._centered .t-label-x:before{border:none}:host:not(._centered) .t-label-x:last-child:not(:first-child){position:absolute;inset-inline-end: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;display:flex;inset-block:0 -1px;inset-inline:-1px 0;align-items:flex-end}\n"] }]
|
|
38
38
|
}] });
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -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, computed, input} from '@angular/core';\nimport {type TuiLineHandler} from '@taiga-ui/addon-charts/types';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\n\nexport const TUI_ALWAYS_DASHED: TuiLineHandler = (index) =>\n (index && 'dashed') || 'solid';\nexport const TUI_ALWAYS_DOTTED: TuiLineHandler = (index) =>\n (index && 'dotted') || 'solid';\nexport const TUI_ALWAYS_SOLID: TuiLineHandler = () => 'solid';\nexport const TUI_ALWAYS_NONE: TuiLineHandler = () => 'none';\n\n@Component({\n selector: 'tui-axes',\n templateUrl: './axes.template.html',\n styleUrl: './axes.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n dir: 'ltr',\n '[class._centered]': 'centeredXLabels()',\n },\n})\nexport class TuiAxes {\n public readonly axisXLabels = input<ReadonlyArray<string | null>>([]);\n public readonly axisYInset = input(false);\n public readonly axisYLabels = input<readonly string[]>([]);\n public readonly axisYName = input('');\n public readonly axisYSecondaryInset = input(false);\n public readonly axisYSecondaryLabels = input<readonly string[]>([]);\n public readonly axisYSecondaryName = input('');\n public readonly centeredXLabels = input(false);\n public readonly horizontalLines = input(1);\n public readonly horizontalLinesHandler = input<TuiLineHandler>(TUI_ALWAYS_SOLID);\n public readonly verticalLines = input(1);\n public readonly verticalLinesHandler = input<TuiLineHandler>(TUI_ALWAYS_DASHED);\n\n public readonly fallbackLabel = CHAR_NO_BREAK_SPACE;\n\n public readonly hasXLabels = computed(() => !!this.axisXLabels().length);\n\n public readonly hasYLabels = computed(\n () => (this.axisYLabels().length && !this.axisYInset()) || !!this.axisYName(),\n );\n\n public readonly hasYSecondaryLabels = computed(\n () =>\n (this.axisYSecondaryLabels().length && !this.axisYSecondaryInset()) ||\n !!this.axisYSecondaryName(),\n );\n}\n","@let ySecLabels = axisYSecondaryLabels();\n@let ySecInset = axisYSecondaryInset();\n@let yLabels = axisYLabels();\n@let yInset = axisYInset();\n@let hasXs = hasXLabels();\n\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYLabels()) {\n @let yName = axisYName();\n @if (yName) {\n <div\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ yName }}\n </div>\n }\n @if (!yInset) {\n <div class=\"t-labels-y t-labels-y_primary\">\n @for (label of yLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n }\n</div>\n<div class=\"t-wrapper\">\n @let vLineFn = verticalLinesHandler();\n @let vLines = verticalLines();\n @let hLineFn = horizontalLinesHandler();\n @let hLines = horizontalLines();\n <div\n class=\"t-grid\"\n [style.border-block-end-style]=\"hLineFn(0, hLines)\"\n [style.border-inline-start-style]=\"vLineFn(0, vLines)\"\n >\n <div class=\"t-vertical\">\n @for (_ of '-'.repeat(vLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.border-inline-end-style]=\"vLineFn($index + 1, vLines)\"\n ></div>\n }\n </div>\n <div class=\"t-horizontal\">\n @for (_ of '-'.repeat(hLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.border-block-start-style]=\"hLineFn($index + 1, hLines)\"\n ></div>\n }\n </div>\n @if (yInset) {\n <div class=\"t-labels-y t-labels-y_inset\">\n @for (label of yLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @if (ySecInset) {\n <div class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\">\n @for (label of ySecLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n <div class=\"t-content\">\n <ng-content />\n </div>\n </div>\n @if (hasXs) {\n <div class=\"t-labels-x\">\n @for (label of axisXLabels(); track $index) {\n <div\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n</div>\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYSecondaryLabels()) {\n @if (!ySecInset) {\n <div class=\"t-labels-y t-labels-y_secondary\">\n @for (label of ySecLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @let axisYSec = axisYSecondaryName();\n @if (axisYSec) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSec }}\n </div>\n }\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAIa,MAAA,iBAAiB,GAAmB,CAAC,KAAK,KACnD,CAAC,KAAK,IAAI,QAAQ,KAAK;AACd,MAAA,iBAAiB,GAAmB,CAAC,KAAK,KACnD,CAAC,KAAK,IAAI,QAAQ,KAAK;MACd,gBAAgB,GAAmB,MAAM;MACzC,eAAe,GAAmB,MAAM;MAYxC,OAAO,CAAA;AAVpB,IAAA,WAAA,GAAA;AAWoB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA+B,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoB,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAoB,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAiB,gBAAgB,CAAC;AAChE,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAiB,iBAAiB,CAAC;QAE/D,IAAa,CAAA,aAAA,GAAG,mBAAmB;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;AAExD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CACjC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAChF;AAEe,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAC1C,MACI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAClE,YAAA,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAClC;AACJ;+GA3BY,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,i8DCrBpB,gxIAoIA,EAAA,MAAA,EAAA,CAAA,
|
|
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, computed, input} from '@angular/core';\nimport {type TuiLineHandler} from '@taiga-ui/addon-charts/types';\nimport {CHAR_NO_BREAK_SPACE} from '@taiga-ui/cdk/constants';\n\nexport const TUI_ALWAYS_DASHED: TuiLineHandler = (index) =>\n (index && 'dashed') || 'solid';\nexport const TUI_ALWAYS_DOTTED: TuiLineHandler = (index) =>\n (index && 'dotted') || 'solid';\nexport const TUI_ALWAYS_SOLID: TuiLineHandler = () => 'solid';\nexport const TUI_ALWAYS_NONE: TuiLineHandler = () => 'none';\n\n@Component({\n selector: 'tui-axes',\n templateUrl: './axes.template.html',\n styleUrl: './axes.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n dir: 'ltr',\n '[class._centered]': 'centeredXLabels()',\n },\n})\nexport class TuiAxes {\n public readonly axisXLabels = input<ReadonlyArray<string | null>>([]);\n public readonly axisYInset = input(false);\n public readonly axisYLabels = input<readonly string[]>([]);\n public readonly axisYName = input('');\n public readonly axisYSecondaryInset = input(false);\n public readonly axisYSecondaryLabels = input<readonly string[]>([]);\n public readonly axisYSecondaryName = input('');\n public readonly centeredXLabels = input(false);\n public readonly horizontalLines = input(1);\n public readonly horizontalLinesHandler = input<TuiLineHandler>(TUI_ALWAYS_SOLID);\n public readonly verticalLines = input(1);\n public readonly verticalLinesHandler = input<TuiLineHandler>(TUI_ALWAYS_DASHED);\n\n public readonly fallbackLabel = CHAR_NO_BREAK_SPACE;\n\n public readonly hasXLabels = computed(() => !!this.axisXLabels().length);\n\n public readonly hasYLabels = computed(\n () => (this.axisYLabels().length && !this.axisYInset()) || !!this.axisYName(),\n );\n\n public readonly hasYSecondaryLabels = computed(\n () =>\n (this.axisYSecondaryLabels().length && !this.axisYSecondaryInset()) ||\n !!this.axisYSecondaryName(),\n );\n}\n","@let ySecLabels = axisYSecondaryLabels();\n@let ySecInset = axisYSecondaryInset();\n@let yLabels = axisYLabels();\n@let yInset = axisYInset();\n@let hasXs = hasXLabels();\n\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYLabels()) {\n @let yName = axisYName();\n @if (yName) {\n <div\n automation-id=\"tui-axex__axis-y-name\"\n class=\"t-name t-name_primary\"\n >\n {{ yName }}\n </div>\n }\n @if (!yInset) {\n <div class=\"t-labels-y t-labels-y_primary\">\n @for (label of yLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n }\n</div>\n<div class=\"t-wrapper\">\n @let vLineFn = verticalLinesHandler();\n @let vLines = verticalLines();\n @let hLineFn = horizontalLinesHandler();\n @let hLines = horizontalLines();\n <div\n class=\"t-grid\"\n [style.border-block-end-style]=\"hLineFn(0, hLines)\"\n [style.border-inline-start-style]=\"vLineFn(0, vLines)\"\n >\n <div class=\"t-vertical\">\n @for (_ of '-'.repeat(vLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__vertical-line\"\n class=\"t-line t-line_vertical\"\n [style.border-inline-end-style]=\"vLineFn($index + 1, vLines)\"\n ></div>\n }\n </div>\n <div class=\"t-horizontal\">\n @for (_ of '-'.repeat(hLines - 1); track $index) {\n <div\n automation-id=\"tui-axex__horizontal-line\"\n class=\"t-line\"\n [style.border-block-start-style]=\"hLineFn($index + 1, hLines)\"\n ></div>\n }\n </div>\n @if (yInset) {\n <div class=\"t-labels-y t-labels-y_inset\">\n @for (label of yLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @if (ySecInset) {\n <div class=\"t-labels-y t-labels-y_inset t-labels-y_inset_secondary\">\n @for (label of ySecLabels; track $index) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n <div class=\"t-content\">\n <ng-content />\n </div>\n </div>\n @if (hasXs) {\n <div class=\"t-labels-x\">\n @for (label of axisXLabels(); track $index) {\n <div\n automation-id=\"tui-axex__axis-x-label\"\n class=\"t-label-x\"\n [class.t-label-x_transparent]=\"label === null\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n</div>\n<div\n class=\"t-side\"\n [class.t-side_padding]=\"hasXs\"\n>\n @if (hasYSecondaryLabels()) {\n @if (!ySecInset) {\n <div class=\"t-labels-y t-labels-y_secondary\">\n @for (label of ySecLabels; track label) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-label\"\n class=\"t-label-y\"\n >\n {{ label || fallbackLabel }}\n </div>\n }\n </div>\n }\n @let axisYSec = axisYSecondaryName();\n @if (axisYSec) {\n <div\n automation-id=\"tui-axex__axis-y-secondary-name\"\n class=\"t-name\"\n >\n {{ axisYSec }}\n </div>\n }\n }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAIa,MAAA,iBAAiB,GAAmB,CAAC,KAAK,KACnD,CAAC,KAAK,IAAI,QAAQ,KAAK;AACd,MAAA,iBAAiB,GAAmB,CAAC,KAAK,KACnD,CAAC,KAAK,IAAI,QAAQ,KAAK;MACd,gBAAgB,GAAmB,MAAM;MACzC,eAAe,GAAmB,MAAM;MAYxC,OAAO,CAAA;AAVpB,IAAA,WAAA,GAAA;AAWoB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAA+B,EAAE,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;AACzB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAoB,EAAE,CAAC;AAC1C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;AACrB,QAAA,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAoB,EAAE,CAAC;AACnD,QAAA,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAC,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,sBAAsB,GAAG,KAAK,CAAiB,gBAAgB,CAAC;AAChE,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAiB,iBAAiB,CAAC;QAE/D,IAAa,CAAA,aAAA,GAAG,mBAAmB;AAEnC,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC;AAExD,QAAA,IAAA,CAAA,UAAU,GAAG,QAAQ,CACjC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAChF;AAEe,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAC1C,MACI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;AAClE,YAAA,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAClC;AACJ;+GA3BY,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,OAAO,i8DCrBpB,gxIAoIA,EAAA,MAAA,EAAA,CAAA,+0EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FD/Ga,OAAO,EAAA,UAAA,EAAA,CAAA;kBAVnB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,UAAU,EAGH,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,GAAG,EAAE,KAAK;AACV,wBAAA,mBAAmB,EAAE,mBAAmB;AAC3C,qBAAA,EAAA,QAAA,EAAA,gxIAAA,EAAA,MAAA,EAAA,CAAA,+0EAAA,CAAA,EAAA;;;AEnBL;;AAEG;;;;"}
|
|
@@ -18,11 +18,11 @@ class TuiBarSet {
|
|
|
18
18
|
return Math.abs((100 * value) / this.largest());
|
|
19
19
|
}
|
|
20
20
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiBarSet, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiBarSet, isStandalone: true, selector: "tui-bar-set", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (size()) {\n @for (item of computedValue(); track item) {\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: false}\"\n />\n }\n} @else {\n @for (item of computedValue(); track item) {\n <div class=\"t-wrapper\">\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: true}\"\n />\n </div>\n }\n}\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]=\"size() || 'm'\"\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;inset-block-start:-1.5rem;font:var(--tui-
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiBarSet, isStandalone: true, selector: "tui-bar-set", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (size()) {\n @for (item of computedValue(); track item) {\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: false}\"\n />\n }\n} @else {\n @for (item of computedValue(); track item) {\n <div class=\"t-wrapper\">\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: true}\"\n />\n </div>\n }\n}\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]=\"size() || 'm'\"\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;inset-block-start:-1.5rem;font:var(--tui-typography-body-xs);color:var(--tui-text-secondary)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: TuiBar, selector: "tui-bar", inputs: ["value", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
22
22
|
}
|
|
23
23
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiBarSet, decorators: [{
|
|
24
24
|
type: Component,
|
|
25
|
-
args: [{ selector: 'tui-bar-set', imports: [NgTemplateOutlet, TuiBar], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (size()) {\n @for (item of computedValue(); track item) {\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: false}\"\n />\n }\n} @else {\n @for (item of computedValue(); track item) {\n <div class=\"t-wrapper\">\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: true}\"\n />\n </div>\n }\n}\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]=\"size() || 'm'\"\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;inset-block-start:-1.5rem;font:var(--tui-
|
|
25
|
+
args: [{ selector: 'tui-bar-set', imports: [NgTemplateOutlet, TuiBar], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (size()) {\n @for (item of computedValue(); track item) {\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: false}\"\n />\n }\n} @else {\n @for (item of computedValue(); track item) {\n <div class=\"t-wrapper\">\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: true}\"\n />\n </div>\n }\n}\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]=\"size() || 'm'\"\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;inset-block-start:-1.5rem;font:var(--tui-typography-body-xs);color:var(--tui-text-secondary)}\n"] }]
|
|
26
26
|
}] });
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -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, computed, input} from '@angular/core';\nimport {TuiBar} from '@taiga-ui/addon-charts/components/bar';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-bar-set',\n imports: [NgTemplateOutlet, TuiBar],\n templateUrl: './bar-set.template.html',\n styleUrl: './bar-set.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarSet {\n private readonly largest = computed(() =>\n this.computedValue().some((a) => a > 0)\n ? this.computedValue().reduce((a, b) => (a > b ? a : b), 0)\n : Math.abs(this.computedValue().reduce((a, b) => (a < b ? a : b), 0)),\n );\n\n public readonly value = input<readonly number[]>([]);\n public readonly size = input<TuiSizeL | TuiSizeS | null>('m');\n public readonly collapsed = input(false);\n\n protected readonly computedValue = computed<readonly number[]>(() =>\n this.collapsed() ? [1] : this.value(),\n );\n\n protected readonly computedSegments = computed<readonly number[]>(() =>\n this.collapsed() ? this.value() : [],\n );\n\n protected getHeight(value: number): number {\n return Math.abs((100 * value) / this.largest());\n }\n}\n","@if (size()) {\n @for (item of computedValue(); track item) {\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: false}\"\n />\n }\n} @else {\n @for (item of computedValue(); track item) {\n <div class=\"t-wrapper\">\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: true}\"\n />\n </div>\n }\n}\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]=\"size() || 'm'\"\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":";;;;;MAYa,SAAS,CAAA;AAPtB,IAAA,WAAA,GAAA;QAQqB,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC,MAChC,IAAI,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAClC,cAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;AAC1D,cAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC5E;AAEe,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAA6B,GAAG,CAAC;AAC7C,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAErB,IAAa,CAAA,aAAA,GAAG,QAAQ,CAAoB,MAC3D,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CACxC;QAEkB,IAAgB,CAAA,gBAAA,GAAG,QAAQ,CAAoB,MAC9D,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CACvC;AAKJ;AAHa,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;;+GApB1C,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,ECZtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6lCAqCA,ED9Bc,MAAA,EAAA,CAAA,
|
|
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, computed, input} from '@angular/core';\nimport {TuiBar} from '@taiga-ui/addon-charts/components/bar';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-bar-set',\n imports: [NgTemplateOutlet, TuiBar],\n templateUrl: './bar-set.template.html',\n styleUrl: './bar-set.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TuiBarSet {\n private readonly largest = computed(() =>\n this.computedValue().some((a) => a > 0)\n ? this.computedValue().reduce((a, b) => (a > b ? a : b), 0)\n : Math.abs(this.computedValue().reduce((a, b) => (a < b ? a : b), 0)),\n );\n\n public readonly value = input<readonly number[]>([]);\n public readonly size = input<TuiSizeL | TuiSizeS | null>('m');\n public readonly collapsed = input(false);\n\n protected readonly computedValue = computed<readonly number[]>(() =>\n this.collapsed() ? [1] : this.value(),\n );\n\n protected readonly computedSegments = computed<readonly number[]>(() =>\n this.collapsed() ? this.value() : [],\n );\n\n protected getHeight(value: number): number {\n return Math.abs((100 * value) / this.largest());\n }\n}\n","@if (size()) {\n @for (item of computedValue(); track item) {\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: false}\"\n />\n }\n} @else {\n @for (item of computedValue(); track item) {\n <div class=\"t-wrapper\">\n <ng-container\n [ngTemplateOutlet]=\"bar\"\n [ngTemplateOutletContext]=\"{$implicit: item, index: $index, flexible: true}\"\n />\n </div>\n }\n}\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]=\"size() || 'm'\"\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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"}
|
|
@@ -11,7 +11,7 @@ class TuiLegendItem {
|
|
|
11
11
|
this.disabled = input(false);
|
|
12
12
|
}
|
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiLegendItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: TuiLegendItem, isStandalone: true, selector: "tui-legend-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "class._disabled": "disabled()", "style.--tui-background-accent-1": "color() === \"var(--tui-background-accent-1)\" ? null : color()" } }, ngImport: i0, template: "<button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiAppearanceState]=\"active() ? '
|
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: TuiLegendItem, isStandalone: true, selector: "tui-legend-item", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-size": "size()", "class._disabled": "disabled()", "style.--tui-background-accent-1": "color() === \"var(--tui-background-accent-1)\" ? null : color()" } }, ngImport: i0, template: "<button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiAppearanceState]=\"active() ? 'active' : null\"\n>\n <div class=\"t-wrapper\">\n <ng-content select=\"[tuiCheckbox]\" />\n <span\n class=\"t-dot\"\n [style.background-color]=\"color() || 'var(--tui-background-accent-1)'\"\n ></span>\n <span class=\"t-text\">{{ text() }}</span>\n <ng-content />\n </div>\n</button>\n", styles: [":host{display:inline-block}.t-button{block-size:2rem;font-weight:700}:host[data-size=m] .t-button{block-size:2.25rem;font:var(--tui-typography-body-m);font-weight:700}.t-wrapper{display:flex;align-items:center;pointer-events:none}:host._disabled .t-wrapper{color:var(--tui-text-tertiary)}.t-dot{inline-size:.5rem;block-size:.5rem;border-radius:100%;flex-shrink:0}:host._disabled .t-dot{background:var(--tui-border-normal)}.t-dot:not(:first-child){display:none}.t-text{margin:0 .5rem;font-weight:400}\n"], dependencies: [{ kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15
15
|
}
|
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiLegendItem, decorators: [{
|
|
17
17
|
type: Component,
|
|
@@ -19,7 +19,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
19
19
|
'[attr.data-size]': 'size()',
|
|
20
20
|
'[class._disabled]': 'disabled()',
|
|
21
21
|
'[style.--tui-background-accent-1]': 'color() === "var(--tui-background-accent-1)" ? null : color()',
|
|
22
|
-
}, template: "<button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiAppearanceState]=\"active() ? '
|
|
22
|
+
}, template: "<button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiAppearanceState]=\"active() ? 'active' : null\"\n>\n <div class=\"t-wrapper\">\n <ng-content select=\"[tuiCheckbox]\" />\n <span\n class=\"t-dot\"\n [style.background-color]=\"color() || 'var(--tui-background-accent-1)'\"\n ></span>\n <span class=\"t-text\">{{ text() }}</span>\n <ng-content />\n </div>\n</button>\n", styles: [":host{display:inline-block}.t-button{block-size:2rem;font-weight:700}:host[data-size=m] .t-button{block-size:2.25rem;font:var(--tui-typography-body-m);font-weight:700}.t-wrapper{display:flex;align-items:center;pointer-events:none}:host._disabled .t-wrapper{color:var(--tui-text-tertiary)}.t-dot{inline-size:.5rem;block-size:.5rem;border-radius:100%;flex-shrink:0}:host._disabled .t-dot{background:var(--tui-border-normal)}.t-dot:not(:first-child){display:none}.t-text{margin:0 .5rem;font-weight:400}\n"] }]
|
|
23
23
|
}] });
|
|
24
24
|
|
|
25
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-legend-item.mjs","sources":["../../../projects/addon-charts/components/legend-item/legend-item.component.ts","../../../projects/addon-charts/components/legend-item/legend-item.template.html","../../../projects/addon-charts/components/legend-item/taiga-ui-addon-charts-components-legend-item.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-legend-item',\n imports: [TuiButton],\n templateUrl: './legend-item.template.html',\n styleUrl: './legend-item.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size()',\n '[class._disabled]': 'disabled()',\n '[style.--tui-background-accent-1]':\n 'color() === \"var(--tui-background-accent-1)\" ? null : color()',\n },\n})\nexport class TuiLegendItem {\n public readonly active = input(false);\n public readonly color = input('');\n public readonly text = input('');\n public readonly size = input<TuiSizeS>('m');\n public readonly disabled = input(false);\n}\n","<button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiAppearanceState]=\"active() ? '
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-legend-item.mjs","sources":["../../../projects/addon-charts/components/legend-item/legend-item.component.ts","../../../projects/addon-charts/components/legend-item/legend-item.template.html","../../../projects/addon-charts/components/legend-item/taiga-ui-addon-charts-components-legend-item.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, input} from '@angular/core';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiSizeS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-legend-item',\n imports: [TuiButton],\n templateUrl: './legend-item.template.html',\n styleUrl: './legend-item.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.data-size]': 'size()',\n '[class._disabled]': 'disabled()',\n '[style.--tui-background-accent-1]':\n 'color() === \"var(--tui-background-accent-1)\" ? null : color()',\n },\n})\nexport class TuiLegendItem {\n public readonly active = input(false);\n public readonly color = input('');\n public readonly text = input('');\n public readonly size = input<TuiSizeS>('m');\n public readonly disabled = input(false);\n}\n","<button\n appearance=\"outline-grayscale\"\n size=\"s\"\n tuiButton\n type=\"button\"\n class=\"t-button\"\n [tuiAppearanceState]=\"active() ? 'active' : null\"\n>\n <div class=\"t-wrapper\">\n <ng-content select=\"[tuiCheckbox]\" />\n <span\n class=\"t-dot\"\n [style.background-color]=\"color() || 'var(--tui-background-accent-1)'\"\n ></span>\n <span class=\"t-text\">{{ text() }}</span>\n <ng-content />\n </div>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAiBa,aAAa,CAAA;AAb1B,IAAA,WAAA,GAAA;AAcoB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;AAChB,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAW,GAAG,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;AAC1C;+GANY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,iCAAA,EAAA,iEAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjB1B,ggBAkBA,EAAA,MAAA,EAAA,CAAA,ufAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDZc,SAAS,EAAA,QAAA,EAAA,uEAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAWV,aAAa,EAAA,UAAA,EAAA,CAAA;kBAbzB,SAAS;+BACI,iBAAiB,EAAA,OAAA,EAClB,CAAC,SAAS,CAAC,mBAGH,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACF,wBAAA,kBAAkB,EAAE,QAAQ;AAC5B,wBAAA,mBAAmB,EAAE,YAAY;AACjC,wBAAA,mCAAmC,EAC/B,+DAA+D;AACtE,qBAAA,EAAA,QAAA,EAAA,ggBAAA,EAAA,MAAA,EAAA,CAAA,ufAAA,CAAA,EAAA;;;AEfL;;AAEG;;;;"}
|
|
@@ -177,11 +177,11 @@ class TuiLineChart {
|
|
|
177
177
|
: this.getX(index + 1) - this.getX(index);
|
|
178
178
|
}
|
|
179
179
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiLineChart, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
180
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiLineChart, isStandalone: true, selector: "tui-line-chart", inputs: { x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: false, transformFunction: null }, y: { classPropertyName: "y", publicName: "y", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, smoothingFactor: { classPropertyName: "smoothingFactor", publicName: "smoothingFactor", isSignal: true, isRequired: false, transformFunction: null }, xStringify: { classPropertyName: "xStringify", publicName: "xStringify", isSignal: true, isRequired: false, transformFunction: null }, yStringify: { classPropertyName: "yStringify", publicName: "yStringify", isSignal: true, isRequired: false, transformFunction: null }, filled: { classPropertyName: "filled", publicName: "filled", isSignal: true, isRequired: false, transformFunction: null }, dots: { classPropertyName: "dots", publicName: "dots", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, providers: [WaResizeObserverService], viewQueries: [{ propertyName: "drivers", predicate: TuiHintHover, descendants: true, isSignal: true }], ngImport: i0, template: "<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.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n ></div>\n }\n}\n@if (hasHints) {\n @for (point of value(); track point) {\n <!-- TODO: Fix hint type -->\n @if ($count > 1 || dots()) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers()[$index] | async\"\n [class.t-column_hovered]=\"hovered() === $index\"\n [style.inset-inline-start.%]=\"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.inset-inline-start.%]=\"getOffset($index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [id]=\"getHintId($index)\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"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.inset-block-end.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n}\n@if (getHovered(hovered()); as point) {\n @let xString = xStringify();\n @let yString = yStringify();\n @if (xString) {\n <div\n class=\"t-hint t-hint_x\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n >\n {{ xString(point[0]) }}\n </div>\n }\n @if (yString) {\n <div\n class=\"t-hint t-hint_y\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n >\n {{ yString(point[1]) }}\n </div>\n }\n}\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;inset-block-start: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;inset-inline-start: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{inset-block:0;inset-inline:50% auto;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-
|
|
180
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TuiLineChart, isStandalone: true, selector: "tui-line-chart", inputs: { x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: false, transformFunction: null }, y: { classPropertyName: "y", publicName: "y", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, smoothingFactor: { classPropertyName: "smoothingFactor", publicName: "smoothingFactor", isSignal: true, isRequired: false, transformFunction: null }, xStringify: { classPropertyName: "xStringify", publicName: "xStringify", isSignal: true, isRequired: false, transformFunction: null }, yStringify: { classPropertyName: "yStringify", publicName: "yStringify", isSignal: true, isRequired: false, transformFunction: null }, filled: { classPropertyName: "filled", publicName: "filled", isSignal: true, isRequired: false, transformFunction: null }, dots: { classPropertyName: "dots", publicName: "dots", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseleave": "onMouseLeave()" } }, providers: [WaResizeObserverService], viewQueries: [{ propertyName: "drivers", predicate: TuiHintHover, descendants: true, isSignal: true }], ngImport: i0, template: "<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.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n ></div>\n }\n}\n@if (hasHints) {\n @for (point of value(); track point) {\n <!-- TODO: Fix hint type -->\n @if ($count > 1 || dots()) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers()[$index] | async\"\n [class.t-column_hovered]=\"hovered() === $index\"\n [style.inset-inline-start.%]=\"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.inset-inline-start.%]=\"getOffset($index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [id]=\"getHintId($index)\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"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.inset-block-end.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n}\n@if (getHovered(hovered()); as point) {\n @let xString = xStringify();\n @let yString = yStringify();\n @if (xString) {\n <div\n class=\"t-hint t-hint_x\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n >\n {{ xString(point[0]) }}\n </div>\n }\n @if (yString) {\n <div\n class=\"t-hint t-hint_y\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n >\n {{ yString(point[1]) }}\n </div>\n }\n}\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;inset-block-start: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;inset-inline-start: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{inset-block:0;inset-inline:50% auto;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-typography-body-xs);block-size:1.25rem;margin-block-end:-.625rem;padding:.125rem .375rem;box-sizing:border-box;white-space:nowrap;color:var(--tui-text-primary);background:var(--tui-background-base);transform:translate3d(-50%,0,0)}.t-hint_x{inset-block-end:0}.t-hint_y{inset-inline-start:0}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: i1.TuiHintDirective, selector: "[tuiHint]:not(ng-container):not(ng-template)", inputs: ["tuiHint", "tuiHintContext", "tuiHintAppearance"], outputs: ["tuiHintVisible"] }, { kind: "directive", type: i1.TuiHintDescribe, selector: "[tuiHintDescribe]", inputs: ["tuiHintDescribe"] }, { kind: "directive", type: i1.TuiHintHost, selector: "[tuiHint][tuiHintHost]", inputs: ["tuiHintHost"] }], viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
181
181
|
}
|
|
182
182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiLineChart, decorators: [{
|
|
183
183
|
type: Component,
|
|
184
|
-
args: [{ selector: 'tui-line-chart', imports: [AsyncPipe, TuiHint], changeDetection: ChangeDetectionStrategy.OnPush, providers: [WaResizeObserverService], viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], host: { '(mouseleave)': 'onMouseLeave()' }, template: "<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.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n ></div>\n }\n}\n@if (hasHints) {\n @for (point of value(); track point) {\n <!-- TODO: Fix hint type -->\n @if ($count > 1 || dots()) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers()[$index] | async\"\n [class.t-column_hovered]=\"hovered() === $index\"\n [style.inset-inline-start.%]=\"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.inset-inline-start.%]=\"getOffset($index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [id]=\"getHintId($index)\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"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.inset-block-end.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n}\n@if (getHovered(hovered()); as point) {\n @let xString = xStringify();\n @let yString = yStringify();\n @if (xString) {\n <div\n class=\"t-hint t-hint_x\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n >\n {{ xString(point[0]) }}\n </div>\n }\n @if (yString) {\n <div\n class=\"t-hint t-hint_y\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n >\n {{ yString(point[1]) }}\n </div>\n }\n}\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;inset-block-start: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;inset-inline-start: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{inset-block:0;inset-inline:50% auto;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-
|
|
184
|
+
args: [{ selector: 'tui-line-chart', imports: [AsyncPipe, TuiHint], changeDetection: ChangeDetectionStrategy.OnPush, providers: [WaResizeObserverService], viewProviders: [tuiHintOptionsProvider({ direction: 'top', hideDelay: 0 })], host: { '(mouseleave)': 'onMouseLeave()' }, template: "<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.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n ></div>\n }\n}\n@if (hasHints) {\n @for (point of value(); track point) {\n <!-- TODO: Fix hint type -->\n @if ($count > 1 || dots()) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers()[$index] | async\"\n [class.t-column_hovered]=\"hovered() === $index\"\n [style.inset-inline-start.%]=\"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.inset-inline-start.%]=\"getOffset($index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [id]=\"getHintId($index)\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"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.inset-block-end.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n}\n@if (getHovered(hovered()); as point) {\n @let xString = xStringify();\n @let yString = yStringify();\n @if (xString) {\n <div\n class=\"t-hint t-hint_x\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n >\n {{ xString(point[0]) }}\n </div>\n }\n @if (yString) {\n <div\n class=\"t-hint t-hint_y\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n >\n {{ yString(point[1]) }}\n </div>\n }\n}\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;inset-block-start: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;inset-inline-start: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{inset-block:0;inset-inline:50% auto;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-typography-body-xs);block-size:1.25rem;margin-block-end:-.625rem;padding:.125rem .375rem;box-sizing:border-box;white-space:nowrap;color:var(--tui-text-primary);background:var(--tui-background-base);transform:translate3d(-50%,0,0)}.t-hint_x{inset-block-end:0}.t-hint_y{inset-inline-start:0}\n"] }]
|
|
185
185
|
}] });
|
|
186
186
|
|
|
187
187
|
/**
|
|
@@ -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 {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\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, tuiLineChartOptionsProvider] = tuiCreateOptions(\n TUI_LINE_CHART_DEFAULT_OPTIONS,\n);\n","import {\n type AfterViewInit,\n computed,\n contentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n Renderer2,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\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 selector: '[tuiLineChartHint]',\n providers: [TuiHoveredService],\n})\nexport class TuiLineChartHint implements AfterViewInit {\n private readonly charts = contentChildren(TuiLineChart);\n private readonly chartsRef = contentChildren(TuiLineChart, {read: ElementRef});\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 private readonly computedContext = computed<ReadonlyArray<readonly TuiPoint[]>>(\n (values = this.charts().map(({value}) => value())) =>\n (values[0] || []).map((_, index) =>\n values.map((value) => value[index] ?? [0, 0]),\n ),\n );\n\n public readonly hint = input<PolymorpheusContent<TuiContext<readonly TuiPoint[]>>>(\n '',\n {alias: 'tuiLineChartHint'},\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.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.computedContext()[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\nexport function tuiLineChartDrivers(\n charts: ReadonlyArray<{drivers$: Observable<ReadonlyArray<Observable<boolean>>>}>,\n): Observable<boolean> {\n return combineLatest(\n charts.map(({drivers$}) =>\n 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 signal,\n viewChildren,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {TuiChartHint} from '@taiga-ui/addon-charts/components/chart-hint';\nimport {type TuiLineChartHintContext} from '@taiga-ui/addon-charts/types';\nimport {tuiDraw} from '@taiga-ui/addon-charts/utils';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiGenerateId, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiHint, TuiHintHover, tuiHintOptionsProvider} from '@taiga-ui/core/portals/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {filter, map} 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],\n templateUrl: './line-chart.template.html',\n styleUrl: './line-chart.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WaResizeObserverService],\n viewProviders: [tuiHintOptionsProvider({direction: 'top', hideDelay: 0})],\n host: {'(mouseleave)': 'onMouseLeave()'},\n})\nexport class TuiLineChart {\n private readonly options = inject(TUI_LINE_CHART_OPTIONS);\n private readonly autoId = tuiGenerateId();\n private readonly resize = toSignal(\n inject(WaResizeObserverService, {self: true}).pipe(\n map(([e]) => e?.contentRect.height || NaN),\n filter((height) => !Number.isNaN(height)),\n ),\n {initialValue: NaN},\n );\n\n private readonly box = computed(\n () => `${this.x()} ${this.y()} ${this.width()} ${this.height()}`,\n );\n\n protected readonly hintDirective = inject(TuiLineChartHint, {optional: true});\n protected readonly hintOptions = inject(TuiChartHint, {optional: true});\n protected readonly viewBox = computed(() => {\n if (Number.isNaN(this.resize())) {\n return '0 0 0 0';\n }\n\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 protected readonly d = computed(() =>\n this.value().reduce(\n (d, point, index) =>\n index\n ? `${d} ${tuiDraw(this.value(), index, this.smoothingFactor())}`\n : `M ${point}`,\n '',\n ),\n );\n\n protected readonly fillD = computed(() =>\n 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 public readonly drivers = viewChildren(TuiHintHover);\n public readonly drivers$ = toObservable(this.drivers);\n\n public readonly x = input(0);\n public readonly y = input(0);\n public readonly width = input(0);\n public readonly height = input(0);\n public readonly smoothingFactor = input(this.options.smoothingFactor);\n\n public xStringify = input<TuiStringHandler<number> | null>(null);\n public yStringify = input<TuiStringHandler<number> | null>(null);\n\n public readonly filled = input(this.options.filled);\n public readonly dots = input(this.options.dots);\n\n public value = input<readonly TuiPoint[], readonly TuiPoint[]>([], {\n transform: (value) => value.filter((item) => !item.some(Number.isNaN)),\n });\n\n public readonly hovered = signal<number>(NaN);\n\n public onHovered(index: number): void {\n this.hovered.set(index);\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 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 (\n (100 * ((this.value()[x]?.[0] || 0) - this.getX(x))) / this.computeWidth(x)\n );\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 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","<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.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n ></div>\n }\n}\n@if (hasHints) {\n @for (point of value(); track point) {\n <!-- TODO: Fix hint type -->\n @if ($count > 1 || dots()) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers()[$index] | async\"\n [class.t-column_hovered]=\"hovered() === $index\"\n [style.inset-inline-start.%]=\"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.inset-inline-start.%]=\"getOffset($index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [id]=\"getHintId($index)\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"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.inset-block-end.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n}\n@if (getHovered(hovered()); as point) {\n @let xString = xStringify();\n @let yString = yStringify();\n @if (xString) {\n <div\n class=\"t-hint t-hint_x\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n >\n {{ xString(point[0]) }}\n </div>\n }\n @if (yString) {\n <div\n class=\"t-hint t-hint_y\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n >\n {{ yString(point[1]) }}\n </div>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQa,MAAA,8BAA8B,GAAwB;AAC/D,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,MAAM,EAAE,KAAK;AACb,IAAA,eAAe,EAAE,CAAC;;AAGf,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,CAAC,GAAG,gBAAgB,CACjF,8BAA8B;;MCmBrB,gBAAgB,CAAA;AAJ7B,IAAA,WAAA,GAAA;AAKqB,QAAA,IAAA,CAAA,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC;QACtC,IAAS,CAAA,SAAA,GAAG,eAAe,CAAC,YAAY,EAAE,EAAC,IAAI,EAAE,UAAU,EAAC,CAAC;AAC7D,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;AAEpC,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CACvC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,KAAK,EAAC,KAAK,KAAK,EAAE,CAAC,KAC7C,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAChD,CACR;QAEe,IAAI,CAAA,IAAA,GAAG,KAAK,CACxB,EAAE,EACF,EAAC,KAAK,EAAE,kBAAkB,EAAC,CAC9B;AAoCJ;IAlCU,eAAe,GAAA;AAClB,QAAA,aAAa,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC5D,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,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC1D,SAAC,CAAC;;;IAIH,UAAU,CAAC,KAAa,EAAE,MAAoB,EAAA;QACjD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE;;;IAIvC,KAAK,CAAC,KAAa,EAAE,MAAoB,EAAA;AAC5C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAC7B,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAK,CAAC,CAAC,EAAE,CAAC,CAAW,CACvD;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,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,EAAC,aAAa,EAAC,EAAE,KAAK,KAC5C,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;;+GApDI,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAFd,CAAC,iBAAiB,CAAC,iDAGY,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,SAAA,EACT,YAAY,EAAA,IAAA,EAAS,UAAU,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAFnE,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,iBAAiB,CAAC;AACjC,iBAAA;;AAyDK,SAAU,mBAAmB,CAC/B,MAAiF,EAAA;IAEjF,OAAO,aAAa,CAChB,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,QAAQ,EAAC,KAClB,QAAQ,CAAC,IAAI,CACT,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;;MCtEa,YAAY,CAAA;AAVzB,IAAA,WAAA,GAAA;AAWqB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,sBAAsB,CAAC;QACxC,IAAM,CAAA,MAAA,GAAG,aAAa,EAAE;QACxB,IAAM,CAAA,MAAA,GAAG,QAAQ,CAC9B,MAAM,CAAC,uBAAuB,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC,IAAI,CAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,IAAI,GAAG,CAAC,EAC1C,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAC5C,EACD,EAAC,YAAY,EAAE,GAAG,EAAC,CACtB;AAEgB,QAAA,IAAA,CAAA,GAAG,GAAG,QAAQ,CAC3B,MAAM,CAAG,EAAA,IAAI,CAAC,CAAC,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,CAAC,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,KAAK,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA,CACnE;QAEkB,IAAa,CAAA,aAAA,GAAG,MAAM,CAAC,gBAAgB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;QAC1D,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC,YAAY,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;AACpD,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;YACvC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AAC7B,gBAAA,OAAO,SAAS;;AAGpB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzD,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,CAAG,EAAA,CAAC,CAAI,CAAA,EAAA,CAAC,GAAG,MAAM,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE;AAC/D,SAAC,CAAC;QAEiB,IAAC,CAAA,CAAA,GAAG,QAAQ,CAAC,MAC5B,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CACf,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KACZ;AACI,cAAE,CAAG,EAAA,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAE;cAC9D,KAAK,KAAK,CAAA,CAAE,EACtB,EAAE,CACL,CACJ;QAEkB,IAAK,CAAA,KAAA,GAAG,QAAQ,CAAC,MAChC,IAAI,CAAC,KAAK,EAAE,CAAC;AACT,cAAE,CAAA,EAAG,IAAI,CAAC,CAAC,EAAE,CAAA,EAAA,EAAK,IAAI,CAAC,CAAC,EAAE,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,GAAA,EAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE;AAChF,cAAE,IAAI,CAAC,CAAC,EAAE,CACjB;AAEe,QAAA,IAAA,CAAA,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC;AACpC,QAAA,IAAA,CAAA,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AAErC,QAAA,IAAA,CAAA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACZ,QAAA,IAAA,CAAA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;AACZ,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;AAChB,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;QACjB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;AAE9D,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkC,IAAI,CAAC;AACzD,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAkC,IAAI,CAAC;QAEhD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAExC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAA2C,EAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzE,SAAA,CAAC;AAEc,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAS,GAAG,CAAC;AAoGhD;AAlGU,IAAA,SAAS,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;;AAG3B,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE;;AAG5C,IAAA,IAAc,MAAM,GAAA;AAChB,QAAA,OAAO,CAAkB,eAAA,EAAA,IAAI,CAAC,MAAM,EAAE;;AAG1C,IAAA,IAAc,IAAI,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,MAAM,CAAG,CAAA,CAAA,GAAG,MAAM;;AAG1D,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ;;AAG/C,IAAA,IAAc,QAAQ,GAAA;AAClB,QAAA,QACI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;AAC5B,YAAA,CAAC,CAAC,IAAI,CAAC,WAAW;;IAIhB,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;;;AAIjB,IAAA,IAAI,CAAC,KAAa,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;AAG1C,QAAA,OAAO;AACH,cAAE,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;cAC1E,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;AAG9C,IAAA,QAAQ,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;;AAGhD,IAAA,SAAS,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAI,CAAA,EAAA,KAAK,EAAE;;AAG1B,IAAA,WAAW,CAAC,SAAmB,EAAA;AACrC,QAAA,QACI,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;AACrE,YAAA,SAAS;;AAIP,IAAA,UAAU,CAAC,OAAsB,EAAA;;QAEvC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO;eACjD,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI;cAC9B,IAAI;;AAGJ,IAAA,SAAS,CAAC,CAAS,EAAA;AACzB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;;AAGvC,IAAA,OAAO,CAAC,CAAS,EAAA;AACvB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE;;AAGtC,IAAA,SAAS,CAAC,CAAS,EAAA;AACzB,QAAA,QACI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;;AAIzE,IAAA,YAAY,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;;aAClC;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;;;AAI7B,IAAA,IAAY,aAAa,GAAA;QACrB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,KAAK,CAAC;;AAG5B,IAAA,YAAY,CAAC,KAAa,EAAA;QAC9B,OAAO,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG;cACjC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACzD,cAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAjKxC,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,CAAA,EAAA,EAAA,iBAAA,EAAA,GAAA,EAAA,UAAA,EAAA,GAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,CAAA,EAAA,EAAA,iBAAA,EAAA,GAAA,EAAA,UAAA,EAAA,GAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,SAAA,EAJV,CAAC,uBAAuB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAgDG,YAAY,EC/EvD,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kzGA6GA,EDlFc,MAAA,EAAA,CAAA,gkDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,EAKJ,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,mBAAA,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,CAAA,EAAA,aAAA,EAAA,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;;4FAGhE,YAAY,EAAA,UAAA,EAAA,CAAA;kBAVxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACjB,OAAA,EAAA,CAAC,SAAS,EAAE,OAAO,CAAC,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,uBAAuB,CAAC,iBACrB,CAAC,sBAAsB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAC,CAAC,CAAC,EACnE,IAAA,EAAA,EAAC,cAAc,EAAE,gBAAgB,EAAC,EAAA,QAAA,EAAA,kzGAAA,EAAA,MAAA,EAAA,CAAA,gkDAAA,CAAA,EAAA;;;AEjC5C;;AAEG;;;;"}
|
|
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 {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\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, tuiLineChartOptionsProvider] = tuiCreateOptions(\n TUI_LINE_CHART_DEFAULT_OPTIONS,\n);\n","import {\n type AfterViewInit,\n computed,\n contentChildren,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n input,\n NgZone,\n Renderer2,\n} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiHoveredService} from '@taiga-ui/cdk/directives/hovered';\nimport {tuiZonefree} from '@taiga-ui/cdk/observables';\nimport {type TuiContext} from '@taiga-ui/cdk/types';\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 selector: '[tuiLineChartHint]',\n providers: [TuiHoveredService],\n})\nexport class TuiLineChartHint implements AfterViewInit {\n private readonly charts = contentChildren(TuiLineChart);\n private readonly chartsRef = contentChildren(TuiLineChart, {read: ElementRef});\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 private readonly computedContext = computed<ReadonlyArray<readonly TuiPoint[]>>(\n (values = this.charts().map(({value}) => value())) =>\n (values[0] || []).map((_, index) =>\n values.map((value) => value[index] ?? [0, 0]),\n ),\n );\n\n public readonly hint = input<PolymorpheusContent<TuiContext<readonly TuiPoint[]>>>(\n '',\n {alias: 'tuiLineChartHint'},\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.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.computedContext()[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\nexport function tuiLineChartDrivers(\n charts: ReadonlyArray<{drivers$: Observable<ReadonlyArray<Observable<boolean>>>}>,\n): Observable<boolean> {\n return combineLatest(\n charts.map(({drivers$}) =>\n 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 signal,\n viewChildren,\n} from '@angular/core';\nimport {toObservable, toSignal} from '@angular/core/rxjs-interop';\nimport {WaResizeObserverService} from '@ng-web-apis/resize-observer';\nimport {TuiChartHint} from '@taiga-ui/addon-charts/components/chart-hint';\nimport {type TuiLineChartHintContext} from '@taiga-ui/addon-charts/types';\nimport {tuiDraw} from '@taiga-ui/addon-charts/utils';\nimport {type TuiStringHandler} from '@taiga-ui/cdk/types';\nimport {tuiGenerateId, tuiIsPresent} from '@taiga-ui/cdk/utils/miscellaneous';\nimport {TuiHint, TuiHintHover, tuiHintOptionsProvider} from '@taiga-ui/core/portals/hint';\nimport {type TuiPoint} from '@taiga-ui/core/types';\nimport {type PolymorpheusContent} from '@taiga-ui/polymorpheus';\nimport {filter, map} 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],\n templateUrl: './line-chart.template.html',\n styleUrl: './line-chart.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WaResizeObserverService],\n viewProviders: [tuiHintOptionsProvider({direction: 'top', hideDelay: 0})],\n host: {'(mouseleave)': 'onMouseLeave()'},\n})\nexport class TuiLineChart {\n private readonly options = inject(TUI_LINE_CHART_OPTIONS);\n private readonly autoId = tuiGenerateId();\n private readonly resize = toSignal(\n inject(WaResizeObserverService, {self: true}).pipe(\n map(([e]) => e?.contentRect.height || NaN),\n filter((height) => !Number.isNaN(height)),\n ),\n {initialValue: NaN},\n );\n\n private readonly box = computed(\n () => `${this.x()} ${this.y()} ${this.width()} ${this.height()}`,\n );\n\n protected readonly hintDirective = inject(TuiLineChartHint, {optional: true});\n protected readonly hintOptions = inject(TuiChartHint, {optional: true});\n protected readonly viewBox = computed(() => {\n if (Number.isNaN(this.resize())) {\n return '0 0 0 0';\n }\n\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 protected readonly d = computed(() =>\n this.value().reduce(\n (d, point, index) =>\n index\n ? `${d} ${tuiDraw(this.value(), index, this.smoothingFactor())}`\n : `M ${point}`,\n '',\n ),\n );\n\n protected readonly fillD = computed(() =>\n 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 public readonly drivers = viewChildren(TuiHintHover);\n public readonly drivers$ = toObservable(this.drivers);\n\n public readonly x = input(0);\n public readonly y = input(0);\n public readonly width = input(0);\n public readonly height = input(0);\n public readonly smoothingFactor = input(this.options.smoothingFactor);\n\n public xStringify = input<TuiStringHandler<number> | null>(null);\n public yStringify = input<TuiStringHandler<number> | null>(null);\n\n public readonly filled = input(this.options.filled);\n public readonly dots = input(this.options.dots);\n\n public value = input<readonly TuiPoint[], readonly TuiPoint[]>([], {\n transform: (value) => value.filter((item) => !item.some(Number.isNaN)),\n });\n\n public readonly hovered = signal<number>(NaN);\n\n public onHovered(index: number): void {\n this.hovered.set(index);\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 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 (\n (100 * ((this.value()[x]?.[0] || 0) - this.getX(x))) / this.computeWidth(x)\n );\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 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","<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.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n ></div>\n }\n}\n@if (hasHints) {\n @for (point of value(); track point) {\n <!-- TODO: Fix hint type -->\n @if ($count > 1 || dots()) {\n <div\n class=\"t-column\"\n [class.t-column_hint_hovered]=\"drivers()[$index] | async\"\n [class.t-column_hovered]=\"hovered() === $index\"\n [style.inset-inline-start.%]=\"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.inset-inline-start.%]=\"getOffset($index)\"\n ></div>\n <div\n #hintHost\n class=\"t-host\"\n [id]=\"getHintId($index)\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n [style.inset-inline-start.%]=\"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.inset-block-end.%]=\"getBottom(point[1])\"\n ></div>\n }\n }\n}\n@if (getHovered(hovered()); as point) {\n @let xString = xStringify();\n @let yString = yStringify();\n @if (xString) {\n <div\n class=\"t-hint t-hint_x\"\n [style.inset-inline-start.%]=\"getLeft(point[0])\"\n >\n {{ xString(point[0]) }}\n </div>\n }\n @if (yString) {\n <div\n class=\"t-hint t-hint_y\"\n [style.inset-block-end.%]=\"getBottom(point[1])\"\n >\n {{ yString(point[1]) }}\n </div>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ class TuiRingChart {
|
|
|
9
9
|
this.activeItemIndex = model(NaN);
|
|
10
10
|
}
|
|
11
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRingChart, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: TuiRingChart, isStandalone: true, selector: "tui-ring-chart", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, activeItemIndex: { classPropertyName: "activeItemIndex", publicName: "activeItemIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemIndex: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "size()" } }, ngImport: i0, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n\n<tui-pie-chart\n class=\"t-chart\"\n [masked]=\"true\"\n [size]=\"size()\"\n [value]=\"value()\"\n [(activeItemIndex)]=\"activeItemIndex\"\n/>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block;inline-size:var(--t-size);block-size:var(--t-size);flex-shrink:0;border-radius:100%}:host[data-size=xs]{--t-size: 3rem}:host[data-size=s]{--t-size: 4rem}:host[data-size=m]{--t-size: 9rem}:host[data-size=l]{--t-size: 11rem}:host[data-size=xl]{--t-size: 16rem}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.18", type: TuiRingChart, isStandalone: true, selector: "tui-ring-chart", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, activeItemIndex: { classPropertyName: "activeItemIndex", publicName: "activeItemIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeItemIndex: "activeItemIndexChange" }, host: { properties: { "attr.data-size": "size()" } }, ngImport: i0, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n\n<tui-pie-chart\n class=\"t-chart\"\n [masked]=\"true\"\n [size]=\"size()\"\n [value]=\"value()\"\n [(activeItemIndex)]=\"activeItemIndex\"\n/>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block;inline-size:var(--t-size);block-size:var(--t-size);flex-shrink:0;border-radius:100%}:host[data-size=xs]{--t-size: 3rem}:host[data-size=s]{--t-size: 4rem}:host[data-size=m]{--t-size: 9rem}:host[data-size=l]{--t-size: 11rem}:host[data-size=xl]{--t-size: 16rem}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-typography-body-m);max-block-size:100%;flex-direction:column;justify-content:center;text-align:center;padding:1.5rem;border-radius:100%;box-sizing:border-box;overflow:hidden;word-break:break-word;white-space:pre-wrap;color:var(--tui-text-secondary)}:host[data-size=m] .t-content{font:var(--tui-typography-body-xs)}.t-wrapper:first-line{color:var(--tui-text-primary)}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-typography-body-l);font-weight:700}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-typography-body-m);font-weight:700}.t-shield{position:absolute;inset:25%;border-radius:100%}.t-chart{inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "component", type: TuiPieChart, selector: "tui-pie-chart", inputs: ["value", "size", "masked", "activeItemIndex"], outputs: ["activeItemIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13
13
|
}
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TuiRingChart, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
|
-
args: [{ selector: 'tui-ring-chart', imports: [TuiPieChart], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[attr.data-size]': 'size()' }, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n\n<tui-pie-chart\n class=\"t-chart\"\n [masked]=\"true\"\n [size]=\"size()\"\n [value]=\"value()\"\n [(activeItemIndex)]=\"activeItemIndex\"\n/>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block;inline-size:var(--t-size);block-size:var(--t-size);flex-shrink:0;border-radius:100%}:host[data-size=xs]{--t-size: 3rem}:host[data-size=s]{--t-size: 4rem}:host[data-size=m]{--t-size: 9rem}:host[data-size=l]{--t-size: 11rem}:host[data-size=xl]{--t-size: 16rem}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-
|
|
16
|
+
args: [{ selector: 'tui-ring-chart', imports: [TuiPieChart], changeDetection: ChangeDetectionStrategy.OnPush, host: { '[attr.data-size]': 'size()' }, template: "<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n\n<tui-pie-chart\n class=\"t-chart\"\n [masked]=\"true\"\n [size]=\"size()\"\n [value]=\"value()\"\n [(activeItemIndex)]=\"activeItemIndex\"\n/>\n\n<div class=\"t-shield\"></div>\n", styles: [":host{position:relative;display:block;inline-size:var(--t-size);block-size:var(--t-size);flex-shrink:0;border-radius:100%}:host[data-size=xs]{--t-size: 3rem}:host[data-size=s]{--t-size: 4rem}:host[data-size=m]{--t-size: 9rem}:host[data-size=l]{--t-size: 11rem}:host[data-size=xl]{--t-size: 16rem}.t-content{position:absolute;top:0;left:0;inline-size:100%;block-size:100%;display:flex;font:var(--tui-typography-body-m);max-block-size:100%;flex-direction:column;justify-content:center;text-align:center;padding:1.5rem;border-radius:100%;box-sizing:border-box;overflow:hidden;word-break:break-word;white-space:pre-wrap;color:var(--tui-text-secondary)}:host[data-size=m] .t-content{font:var(--tui-typography-body-xs)}.t-wrapper:first-line{color:var(--tui-text-primary)}:host[data-size=l] .t-wrapper:first-line{font:var(--tui-typography-body-l);font-weight:700}:host[data-size=m] .t-wrapper:first-line{font:var(--tui-typography-body-m);font-weight:700}.t-shield{position:absolute;inset:25%;border-radius:100%}.t-chart{inline-size:100%;block-size:100%}\n"] }]
|
|
17
17
|
}] });
|
|
18
18
|
|
|
19
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-addon-charts-components-ring-chart.mjs","sources":["../../../projects/addon-charts/components/ring-chart/ring-chart.component.ts","../../../projects/addon-charts/components/ring-chart/ring-chart.template.html","../../../projects/addon-charts/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, input, model} from '@angular/core';\nimport {TuiPieChart} from '@taiga-ui/addon-charts/components/pie-chart';\nimport {type TuiSizeXL, type TuiSizeXS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-ring-chart',\n imports: [TuiPieChart],\n templateUrl: './ring-chart.template.html',\n styleUrl: './ring-chart.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiRingChart {\n public readonly value = input<readonly number[]>([]);\n public readonly size = input<TuiSizeXL | TuiSizeXS>('m');\n public readonly activeItemIndex = model(NaN);\n}\n","<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n\n<tui-pie-chart\n class=\"t-chart\"\n [masked]=\"true\"\n [size]=\"size()\"\n [value]=\"value()\"\n [(activeItemIndex)]=\"activeItemIndex\"\n/>\n\n<div class=\"t-shield\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAYa,YAAY,CAAA;AARzB,IAAA,WAAA,GAAA;AASoB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAwB,GAAG,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC;AAC/C;+GAJY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZzB,2SAeA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"taiga-ui-addon-charts-components-ring-chart.mjs","sources":["../../../projects/addon-charts/components/ring-chart/ring-chart.component.ts","../../../projects/addon-charts/components/ring-chart/ring-chart.template.html","../../../projects/addon-charts/components/ring-chart/taiga-ui-addon-charts-components-ring-chart.ts"],"sourcesContent":["import {ChangeDetectionStrategy, Component, input, model} from '@angular/core';\nimport {TuiPieChart} from '@taiga-ui/addon-charts/components/pie-chart';\nimport {type TuiSizeXL, type TuiSizeXS} from '@taiga-ui/core/types';\n\n@Component({\n selector: 'tui-ring-chart',\n imports: [TuiPieChart],\n templateUrl: './ring-chart.template.html',\n styleUrl: './ring-chart.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {'[attr.data-size]': 'size()'},\n})\nexport class TuiRingChart {\n public readonly value = input<readonly number[]>([]);\n public readonly size = input<TuiSizeXL | TuiSizeXS>('m');\n public readonly activeItemIndex = model(NaN);\n}\n","<div class=\"t-content\">\n <div class=\"t-wrapper\">\n <ng-content />\n </div>\n</div>\n\n<tui-pie-chart\n class=\"t-chart\"\n [masked]=\"true\"\n [size]=\"size()\"\n [value]=\"value()\"\n [(activeItemIndex)]=\"activeItemIndex\"\n/>\n\n<div class=\"t-shield\"></div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAYa,YAAY,CAAA;AARzB,IAAA,WAAA,GAAA;AASoB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAoB,EAAE,CAAC;AACpC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAwB,GAAG,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC;AAC/C;+GAJY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZzB,2SAeA,EAAA,MAAA,EAAA,CAAA,0hCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDTc,WAAW,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAMZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBARxB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACjB,OAAA,EAAA,CAAC,WAAW,CAAC,EAGL,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA,EAAC,kBAAkB,EAAE,QAAQ,EAAC,EAAA,QAAA,EAAA,2SAAA,EAAA,MAAA,EAAA,CAAA,0hCAAA,CAAA,EAAA;;;AEVxC;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/addon-charts",
|
|
3
|
-
"version": "5.0.0-rc.
|
|
3
|
+
"version": "5.0.0-rc.4",
|
|
4
4
|
"description": "Extension package for Taiga UI that adds various charts, graphs and related components.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"@angular/common": ">=19.0.0",
|
|
21
21
|
"@angular/core": ">=19.0.0",
|
|
22
|
-
"@ng-web-apis/common": "^5.0
|
|
23
|
-
"@taiga-ui/cdk": "^5.0.0-rc.
|
|
24
|
-
"@taiga-ui/core": "^5.0.0-rc.
|
|
22
|
+
"@ng-web-apis/common": "^5.1.0",
|
|
23
|
+
"@taiga-ui/cdk": "^5.0.0-rc.4",
|
|
24
|
+
"@taiga-ui/core": "^5.0.0-rc.4",
|
|
25
25
|
"@taiga-ui/polymorpheus": "^5.0.0"
|
|
26
26
|
},
|
|
27
27
|
"module": "fesm2022/taiga-ui-addon-charts.mjs",
|
|
@@ -78,6 +78,10 @@
|
|
|
78
78
|
"types": "./components/line-chart/index.d.ts",
|
|
79
79
|
"default": "./fesm2022/taiga-ui-addon-charts-components-line-chart.mjs"
|
|
80
80
|
},
|
|
81
|
+
"./components/line-days-chart": {
|
|
82
|
+
"types": "./components/line-days-chart/index.d.ts",
|
|
83
|
+
"default": "./fesm2022/taiga-ui-addon-charts-components-line-days-chart.mjs"
|
|
84
|
+
},
|
|
81
85
|
"./components/pie-chart": {
|
|
82
86
|
"types": "./components/pie-chart/index.d.ts",
|
|
83
87
|
"default": "./fesm2022/taiga-ui-addon-charts-components-pie-chart.mjs"
|
|
@@ -85,10 +89,6 @@
|
|
|
85
89
|
"./components/ring-chart": {
|
|
86
90
|
"types": "./components/ring-chart/index.d.ts",
|
|
87
91
|
"default": "./fesm2022/taiga-ui-addon-charts-components-ring-chart.mjs"
|
|
88
|
-
},
|
|
89
|
-
"./components/line-days-chart": {
|
|
90
|
-
"types": "./components/line-days-chart/index.d.ts",
|
|
91
|
-
"default": "./fesm2022/taiga-ui-addon-charts-components-line-days-chart.mjs"
|
|
92
92
|
}
|
|
93
93
|
},
|
|
94
94
|
"sideEffects": false,
|