{"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(TUI_ALWAYS_SOLID);\n    public readonly verticalLines = input(1);\n    public readonly verticalLinesHandler = input(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":";;;;AAIO,MAAM,iBAAiB,GAAmB,CAAC,KAAK,KACnD,CAAC,KAAK,IAAI,QAAQ,KAAK;AACpB,MAAM,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,CAAC,gBAAgB,CAAC;AAChD,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC;AACxB,QAAA,IAAA,CAAA,oBAAoB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAE/C,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,IAAA;+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,u4EAAA,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,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACF,wBAAA,GAAG,EAAE,KAAK;AACV,wBAAA,mBAAmB,EAAE,mBAAmB;AAC3C,qBAAA,EAAA,QAAA,EAAA,gxIAAA,EAAA,MAAA,EAAA,CAAA,u4EAAA,CAAA,EAAA;;;AEnBL;;AAEG;;;;"}