UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

1 lines 6.57 kB
{"version":3,"file":"taiga-ui-kit-components-counter.mjs","sources":["../../../projects/kit/components/counter/counter.options.ts","../../../projects/kit/components/counter/counter.component.ts","../../../projects/kit/components/counter/counter.template.html","../../../projects/kit/components/counter/taiga-ui-kit-components-counter.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {type TuiAppearanceOptions} from '@taiga-ui/core/directives/appearance';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\n\nexport interface TuiCounterOptions extends TuiAppearanceOptions {\n size: TuiSizeL | TuiSizeS;\n readonly icons: Readonly<{\n decrease: string;\n increase: string;\n }>;\n step: number;\n min: number;\n max: number;\n}\n\nexport const TUI_COUNTER_DEFAULT_OPTIONS: TuiCounterOptions = {\n appearance: 'primary',\n size: 'l',\n min: 0,\n max: Number.MAX_SAFE_INTEGER,\n step: 1,\n icons: {\n increase: '@tui.plus',\n decrease: '@tui.minus',\n },\n};\n\nexport const [TUI_COUNTER_OPTIONS, tuiCounterOptionsProvider] = tuiCreateOptions(\n TUI_COUNTER_DEFAULT_OPTIONS,\n);\n","import {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiClamp, tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {TuiInputNumberStepService} from '@taiga-ui/kit/components/input-number';\nimport {TuiFade} from '@taiga-ui/kit/directives/fade';\nimport {TuiFluidTypography} from '@taiga-ui/kit/directives/fluid-typography';\n\nimport {TUI_COUNTER_OPTIONS} from './counter.options';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\n\n@Component({\n standalone: true,\n selector: 'tui-counter',\n imports: [TuiButton, TuiFade, TuiFluidTypography],\n templateUrl: './counter.template.html',\n styleUrls: ['./counter.style.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiInputNumberStepService, tuiFallbackValueProvider(0)],\n host: {\n '[attr.data-size]': 'size',\n '[attr.data-appearance]': 'appearance',\n },\n})\nexport class TuiCounter extends TuiControl<number> {\n protected readonly options = inject(TUI_COUNTER_OPTIONS);\n protected readonly hold = inject(TuiInputNumberStepService);\n protected readonly $ = this.hold.steps$.subscribe((value) => this.onStep(value));\n\n @Input()\n public step = this.options.step;\n\n @Input()\n public size = this.options.size;\n\n @Input()\n public min = this.options.min;\n\n @Input()\n public max = this.options.max;\n\n @Input()\n public appearance = this.options.appearance;\n\n protected get limit(): number {\n switch (this.size) {\n case 'l':\n return 1.25;\n case 'm':\n return 1;\n case 's':\n return 13 / 16;\n }\n }\n\n protected onStep(step: number): void {\n this.onChange(tuiClamp(tuiSum(this.value(), step), this.min, this.max));\n }\n}\n","<button\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n [disabled]=\"value() - step < min\"\n [iconStart]=\"options.icons.decrease\"\n [size]=\"size\"\n (click)=\"onStep(-step)\"\n (pointerdown.prevent)=\"hold.next(-step)\"\n>\n -\n</button>\n<div\n tuiFade\n class=\"t-content\"\n [tuiFluidTypography]=\"[0.625, limit]\"\n>\n {{ value() }}\n <ng-content />\n</div>\n<button\n tuiIconButton\n type=\"button\"\n class=\"t-button\"\n [appearance]=\"appearance\"\n [disabled]=\"value() + step > max\"\n [iconStart]=\"options.icons.increase\"\n [size]=\"size\"\n (click)=\"onStep(step)\"\n (pointerdown.prevent)=\"hold.next(step)\"\n>\n +\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}