@taiga-ui/kit
Version:
Taiga UI Angular main components kit
1 lines • 6.51 kB
Source Map (JSON)
{"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, computed, inject, input} from '@angular/core';\nimport {takeUntilDestroyed} from '@angular/core/rxjs-interop';\nimport {TuiControl} from '@taiga-ui/cdk/classes';\nimport {tuiFallbackValueProvider} from '@taiga-ui/cdk/tokens';\nimport {tuiClamp, tuiSum} from '@taiga-ui/cdk/utils/math';\nimport {TuiButton} from '@taiga-ui/core/components/button';\nimport {type TuiSizeL, type TuiSizeS} from '@taiga-ui/core/types';\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';\n\nconst LIMIT: Record<TuiSizeL | TuiSizeS, number> = {\n l: 1.25,\n m: 1,\n s: 13 / 16,\n};\n\n@Component({\n selector: 'tui-counter',\n imports: [TuiButton, TuiFade, TuiFluidTypography],\n templateUrl: './counter.template.html',\n styleUrl: './counter.style.less',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TuiInputNumberStepService, tuiFallbackValueProvider(0)],\n host: {'[attr.data-appearance]': 'appearance()', '[attr.data-size]': 'size()'},\n})\nexport class TuiCounter extends TuiControl<number> {\n protected readonly hold = inject(TuiInputNumberStepService<number>);\n protected readonly options = inject(TUI_COUNTER_OPTIONS);\n protected readonly limit = computed(() => LIMIT[this.size()]);\n\n protected readonly $ = this.hold.steps$\n .pipe(takeUntilDestroyed())\n .subscribe((value) => this.onStep(value));\n\n public readonly step = input(this.options.step);\n public readonly size = input(this.options.size);\n public readonly min = input(this.options.min);\n public readonly max = input(this.options.max);\n public readonly appearance = input(this.options.appearance);\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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"}