UNPKG

@taiga-ui/kit

Version:

Taiga UI Angular main components kit

69 lines 9.56 kB
import { Directive, inject } from '@angular/core'; import { TuiValueTransformer } from '@taiga-ui/cdk/classes'; import { tuiIsSafeToRound, tuiRound } from '@taiga-ui/cdk/utils/math'; import { tuiProvide } from '@taiga-ui/cdk/utils/miscellaneous'; import { tuiGetFractionPartPadded } from '@taiga-ui/core/utils/format'; import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/components/slider'; import { TUI_INPUT_NUMBER_OPTIONS } from './input-number.options'; import * as i0 from "@angular/core"; class TuiQuantumValueTransformerBase extends TuiValueTransformer { // eslint-disable-next-line @typescript-eslint/parameter-properties constructor(quantum = 0) { super(); this.quantum = quantum; this.parent = null; } fromControlValue(controlValue) { return this.parent?.fromControlValue(controlValue) ?? controlValue; } toControlValue(internalValue) { const value = this.parent?.toControlValue(internalValue) ?? internalValue; return value != null && this.quantum > 0 && tuiIsSafeToRound(value, tuiGetFractionPartPadded(this.quantum).length) ? tuiRound(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION) : value; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformerBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiQuantumValueTransformerBase, usesInheritance: true, ngImport: i0 }); } } export { TuiQuantumValueTransformerBase }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformerBase, decorators: [{ type: Directive }], ctorParameters: function () { return [{ type: undefined }]; } }); class TuiQuantumValueTransformer extends TuiQuantumValueTransformerBase { constructor() { super(0); this.parent = inject(TUI_INPUT_NUMBER_OPTIONS).valueTransformer; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiQuantumValueTransformer, isStandalone: true, selector: "[tuiInputNumber][quantum]", inputs: { quantum: "quantum" }, providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)], usesInheritance: true, ngImport: i0 }); } } export { TuiQuantumValueTransformer }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiQuantumValueTransformer, decorators: [{ type: Directive, args: [{ standalone: true, selector: '[tuiInputNumber][quantum]', inputs: ['quantum'], providers: [tuiProvide(TuiValueTransformer, TuiQuantumValueTransformer)], }] }], ctorParameters: function () { return []; } }); class TuiWithQuantumValueTransformer { static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiWithQuantumValueTransformer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiWithQuantumValueTransformer, isStandalone: true, hostDirectives: [{ directive: TuiQuantumValueTransformer, inputs: ["quantum", "quantum"] }], ngImport: i0 }); } } export { TuiWithQuantumValueTransformer }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiWithQuantumValueTransformer, decorators: [{ type: Directive, args: [{ standalone: true, hostDirectives: [ { directive: TuiQuantumValueTransformer, inputs: ['quantum'], }, ], }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhbnR1bS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC1udW1iZXIvcXVhbnR1bS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM3RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV2RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFFaEUsTUFDYSw4QkFBK0IsU0FBUSxtQkFHbkQ7SUFHRyxtRUFBbUU7SUFDbkUsWUFBbUIsVUFBVSxDQUFDO1FBQzFCLEtBQUssRUFBRSxDQUFDO1FBRE8sWUFBTyxHQUFQLE9BQU8sQ0FBSTtRQUhwQixXQUFNLEdBQW1ELElBQUksQ0FBQztJQUt4RSxDQUFDO0lBRWUsZ0JBQWdCLENBQUMsWUFBMkI7UUFDeEQsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxJQUFJLFlBQVksQ0FBQztJQUN2RSxDQUFDO0lBRU0sY0FBYyxDQUFDLGFBQTRCO1FBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLGFBQWEsQ0FBQztRQUUxRSxPQUFPLEtBQUssSUFBSSxJQUFJO1lBQ2hCLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQztZQUNoQixnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUN0RSxDQUFDLENBQUMsUUFBUSxDQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUMvQyxzQkFBc0IsQ0FDekI7WUFDSCxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2hCLENBQUM7K0dBMUJRLDhCQUE4QjttR0FBOUIsOEJBQThCOztTQUE5Qiw4QkFBOEI7NEZBQTlCLDhCQUE4QjtrQkFEMUMsU0FBUzs7QUE4QlYsTUFNYSwwQkFBMkIsU0FBUSw4QkFBOEI7SUFHMUU7UUFDSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFITSxXQUFNLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFJOUUsQ0FBQzsrR0FMUSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3R0FGeEIsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsMEJBQTBCLENBQUMsQ0FBQzs7U0FFL0QsMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBTnRDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDbkIsU0FBUyxFQUFFLENBQUMsVUFBVSxDQUFDLG1CQUFtQiw2QkFBNkIsQ0FBQztpQkFDM0U7O0FBU0QsTUFTYSw4QkFBOEI7K0dBQTlCLDhCQUE4QjttR0FBOUIsOEJBQThCLG9EQWpCOUIsMEJBQTBCOztTQWlCMUIsOEJBQThCOzRGQUE5Qiw4QkFBOEI7a0JBVDFDLFNBQVM7bUJBQUM7b0JBQ1AsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGNBQWMsRUFBRTt3QkFDWjs0QkFDSSxTQUFTLEVBQUUsMEJBQTBCOzRCQUNyQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLENBQUM7eUJBQ3RCO3FCQUNKO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1R1aVZhbHVlVHJhbnNmb3JtZXJ9IGZyb20gJ0B0YWlnYS11aS9jZGsvY2xhc3Nlcyc7XG5pbXBvcnQge3R1aUlzU2FmZVRvUm91bmQsIHR1aVJvdW5kfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuaW1wb3J0IHt0dWlQcm92aWRlfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMnO1xuaW1wb3J0IHt0dWlHZXRGcmFjdGlvblBhcnRQYWRkZWR9IGZyb20gJ0B0YWlnYS11aS9jb3JlL3V0aWxzL2Zvcm1hdCc7XG5pbXBvcnQge1RVSV9GTE9BVElOR19QUkVDSVNJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zbGlkZXInO1xuXG5pbXBvcnQge1RVSV9JTlBVVF9OVU1CRVJfT1BUSU9OU30gZnJvbSAnLi9pbnB1dC1udW1iZXIub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIFR1aVF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyQmFzZSBleHRlbmRzIFR1aVZhbHVlVHJhbnNmb3JtZXI8XG4gICAgbnVtYmVyIHwgbnVsbCxcbiAgICBudW1iZXIgfCBudWxsXG4+IHtcbiAgICBwcm90ZWN0ZWQgcGFyZW50OiBUdWlWYWx1ZVRyYW5zZm9ybWVyPG51bWJlciB8IG51bGwsIGFueT4gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcGFyYW1ldGVyLXByb3BlcnRpZXNcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgcXVhbnR1bSA9IDApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZnJvbUNvbnRyb2xWYWx1ZShjb250cm9sVmFsdWU6IG51bWJlciB8IG51bGwpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50Py5mcm9tQ29udHJvbFZhbHVlKGNvbnRyb2xWYWx1ZSkgPz8gY29udHJvbFZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b0NvbnRyb2xWYWx1ZShpbnRlcm5hbFZhbHVlOiBudW1iZXIgfCBudWxsKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wYXJlbnQ/LnRvQ29udHJvbFZhbHVlKGludGVybmFsVmFsdWUpID8/IGludGVybmFsVmFsdWU7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlICE9IG51bGwgJiZcbiAgICAgICAgICAgIHRoaXMucXVhbnR1bSA+IDAgJiZcbiAgICAgICAgICAgIHR1aUlzU2FmZVRvUm91bmQodmFsdWUsIHR1aUdldEZyYWN0aW9uUGFydFBhZGRlZCh0aGlzLnF1YW50dW0pLmxlbmd0aClcbiAgICAgICAgICAgID8gdHVpUm91bmQoXG4gICAgICAgICAgICAgICAgICBNYXRoLnJvdW5kKHZhbHVlIC8gdGhpcy5xdWFudHVtKSAqIHRoaXMucXVhbnR1bSxcbiAgICAgICAgICAgICAgICAgIFRVSV9GTE9BVElOR19QUkVDSVNJT04sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIDogdmFsdWU7XG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUlucHV0TnVtYmVyXVtxdWFudHVtXScsXG4gICAgaW5wdXRzOiBbJ3F1YW50dW0nXSxcbiAgICBwcm92aWRlcnM6IFt0dWlQcm92aWRlKFR1aVZhbHVlVHJhbnNmb3JtZXIsIFR1aVF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyKV0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aVF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyIGV4dGVuZHMgVHVpUXVhbnR1bVZhbHVlVHJhbnNmb3JtZXJCYXNlIHtcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcGFyZW50ID0gaW5qZWN0KFRVSV9JTlBVVF9OVU1CRVJfT1BUSU9OUykudmFsdWVUcmFuc2Zvcm1lcjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigwKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgZGlyZWN0aXZlOiBUdWlRdWFudHVtVmFsdWVUcmFuc2Zvcm1lcixcbiAgICAgICAgICAgIGlucHV0czogWydxdWFudHVtJ10sXG4gICAgICAgIH0sXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpV2l0aFF1YW50dW1WYWx1ZVRyYW5zZm9ybWVyIHt9XG4iXX0=