@taiga-ui/kit
Version:
Taiga UI Angular main components kit
69 lines • 9.56 kB
JavaScript
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=