UNPKG

@taiga-ui/kit

Version:
131 lines 13.4 kB
import { __decorate } from "tslib"; import { Directive, HostBinding, Input } from '@angular/core'; import { AbstractTuiControl, clamp, round, tuiDefaultProp, } from '@taiga-ui/cdk'; import { maskedNumberStringToNumber, tuiCreateAutoCorrectedNumberPipe, tuiCreateNumberMask, } from '@taiga-ui/core'; import { TUI_FLOATING_PRECISION } from '@taiga-ui/kit/constants'; export function quantumAssertion(quantum) { return quantum > 0; } /** * @internal */ let AbstractTuiInputSlider = class AbstractTuiInputSlider extends AbstractTuiControl { constructor() { super(...arguments); this.min = 0; this.max = Infinity; this.minLabel = ''; this.maxLabel = ''; this.pluralize = null; this.segmentsPluralize = null; this.segments = 0; this.steps = 0; this.quantum = 1; this.keySteps = null; this.size = 'l'; this.mask = (quantum, min) => ({ mask: tuiCreateNumberMask({ allowNegative: min < 0, allowDecimal: !Number.isInteger(quantum), }), pipe: tuiCreateAutoCorrectedNumberPipe(), guide: false, }); } get segmented() { return this.segments > 0; } get hasPlaceholder() { return this.size === 'l'; } get inputMode() { return Number.isInteger(this.quantum) ? "numeric" /* Numeric */ : "decimal" /* Decimal */; } get length() { return this.max - this.min; } get computedSteps() { return this.steps || this.length / this.quantum; } get step() { return this.length / this.computedSteps; } get hostMode() { return this.modeDirective && this.modeDirective.mode; } onHovered(hovered) { this.updateHovered(hovered); } isPluralized(pluralize) { return pluralize !== null && pluralize.length === 3; } valueGuard(value) { return this.quantum ? clamp(round(Math.round(value / this.quantum) * this.quantum, TUI_FLOATING_PRECISION), this.min, this.max) : clamp(value, this.min, this.max); } capInputValue(value, max = this.max) { const capped = Math.min(maskedNumberStringToNumber(value), max); if (this.min < 0 && capped < this.min) { return this.min; } return isNaN(capped) || capped < this.min ? null : capped; } }; __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "min", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "max", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "minLabel", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "maxLabel", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "pluralize", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "segmentsPluralize", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "segments", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "steps", void 0); __decorate([ Input(), tuiDefaultProp(quantumAssertion, 'Quantum must be positive') ], AbstractTuiInputSlider.prototype, "quantum", void 0); __decorate([ Input(), tuiDefaultProp() ], AbstractTuiInputSlider.prototype, "keySteps", void 0); __decorate([ Input(), HostBinding('attr.data-tui-host-size') ], AbstractTuiInputSlider.prototype, "size", void 0); __decorate([ HostBinding('class._segmented') ], AbstractTuiInputSlider.prototype, "segmented", null); __decorate([ HostBinding('attr.data-mode') ], AbstractTuiInputSlider.prototype, "hostMode", null); AbstractTuiInputSlider = __decorate([ Directive() ], AbstractTuiInputSlider); export { AbstractTuiInputSlider }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2xpZGVyLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHRhaWdhLXVpL2tpdC9hYnN0cmFjdC8iLCJzb3VyY2VzIjpbImlucHV0LXNsaWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsS0FBSyxFQUNMLEtBQUssRUFDTCxjQUFjLEdBR2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCwwQkFBMEIsRUFFMUIsZ0NBQWdDLEVBQ2hDLG1CQUFtQixHQU10QixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRy9ELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFlO0lBQzVDLE9BQU8sT0FBTyxHQUFHLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQ7O0dBRUc7QUFFSCxJQUFzQixzQkFBc0IsR0FBNUMsTUFBc0Isc0JBQ2xCLFNBQVEsa0JBQXFCO0lBRGpDOztRQUtJLFFBQUcsR0FBRyxDQUFDLENBQUM7UUFJUixRQUFHLEdBQUcsUUFBUSxDQUFDO1FBSWYsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUlkLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFJZCxjQUFTLEdBQXdCLElBQUksQ0FBQztRQUl0QyxzQkFBaUIsR0FBd0IsSUFBSSxDQUFDO1FBSTlDLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFJYixVQUFLLEdBQUcsQ0FBQyxDQUFDO1FBSVYsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUlaLGFBQVEsR0FBdUIsSUFBSSxDQUFDO1FBSXBDLFNBQUksR0FBYSxHQUFHLENBQUM7UUFFckIsU0FBSSxHQUEwQyxDQUFDLE9BQWUsRUFBRSxHQUFXLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDN0UsSUFBSSxFQUFFLG1CQUFtQixDQUFDO2dC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RUFBRTtJQUNQLGNBQWMsRUFBRTtpRUFDNkI7QUFJOUM7SUFGQyxLQUFLLEVBQUU7SUFDUCxjQUFjLEVBQUU7d0RBQ0o7QUFJYjtJQUZDLEtBQUssRUFBRTtJQUNQLGNBQWMsRUFBRTtxREFDUDtBQUlWO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxDQUFDLGdCQUFnQixFQUFFLDBCQUEwQixDQUFDO3VEQUNqRDtBQUlaO0lBRkMsS0FBSyxFQUFFO0lBQ1AsY0FBYyxFQUFFO3dEQUNtQjtBQUlwQztJQUZDLEtBQUssRUFBRTtJQUNQLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQztvREFDbEI7QUFjckI7SUFEQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7dURBRy9CO0FBeUJEO0lBREMsV0FBVyxDQUFDLGdCQUFnQixDQUFDO3NEQUc3QjtBQXhGaUIsc0JBQXNCO0lBRDNDLFNBQVMsRUFBRTtHQUNVLHNCQUFzQixDQTRIM0M7U0E1SHFCLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0QmluZGluZywgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdFR1aUNvbnRyb2wsXG4gICAgY2xhbXAsXG4gICAgcm91bmQsXG4gICAgdHVpRGVmYXVsdFByb3AsXG4gICAgVHVpSW5wdXRNb2RlLFxuICAgIFR1aU1hcHBlcixcbn0gZnJvbSAnQHRhaWdhLXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIG1hc2tlZE51bWJlclN0cmluZ1RvTnVtYmVyLFxuICAgIFR1aUJyaWdodG5lc3MsXG4gICAgdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUsXG4gICAgdHVpQ3JlYXRlTnVtYmVyTWFzayxcbiAgICBUdWlNb2RlRGlyZWN0aXZlLFxuICAgIFR1aVBsdXJhbGl6ZSxcbiAgICBUdWlTaXplTCxcbiAgICBUdWlUZXh0TWFza09wdGlvbnMsXG4gICAgVHVpV2l0aE9wdGlvbmFsTWluTWF4LFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQge1RVSV9GTE9BVElOR19QUkVDSVNJT059IGZyb20gJ0B0YWlnYS11aS9raXQvY29uc3RhbnRzJztcbmltcG9ydCB7VHVpS2V5U3RlcHN9IGZyb20gJ0B0YWlnYS11aS9raXQvdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gcXVhbnR1bUFzc2VydGlvbihxdWFudHVtOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcXVhbnR1bSA+IDA7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0VHVpSW5wdXRTbGlkZXI8VD5cbiAgICBleHRlbmRzIEFic3RyYWN0VHVpQ29udHJvbDxUPlxuICAgIGltcGxlbWVudHMgVHVpV2l0aE9wdGlvbmFsTWluTWF4PG51bWJlcj4ge1xuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBtaW4gPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1heCA9IEluZmluaXR5O1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIG1pbkxhYmVsID0gJyc7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgbWF4TGFiZWwgPSAnJztcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBwbHVyYWxpemU6IFR1aVBsdXJhbGl6ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AoKVxuICAgIHNlZ21lbnRzUGx1cmFsaXplOiBUdWlQbHVyYWxpemUgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpXG4gICAgQHR1aURlZmF1bHRQcm9wKClcbiAgICBzZWdtZW50cyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAgc3RlcHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBAdHVpRGVmYXVsdFByb3AocXVhbnR1bUFzc2VydGlvbiwgJ1F1YW50dW0gbXVzdCBiZSBwb3NpdGl2ZScpXG4gICAgcXVhbnR1bSA9IDE7XG5cbiAgICBASW5wdXQoKVxuICAgIEB0dWlEZWZhdWx0UHJvcCgpXG4gICAga2V5U3RlcHM6IFR1aUtleVN0ZXBzIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKVxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXR1aS1ob3N0LXNpemUnKVxuICAgIHNpemU6IFR1aVNpemVMID0gJ2wnO1xuXG4gICAgbWFzazogVHVpTWFwcGVyPG51bWJlciwgVHVpVGV4dE1hc2tPcHRpb25zPiA9IChxdWFudHVtOiBudW1iZXIsIG1pbjogbnVtYmVyKSA9PiAoe1xuICAgICAgICBtYXNrOiB0dWlDcmVhdGVOdW1iZXJNYXNrKHtcbiAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG1pbiA8IDAsXG4gICAgICAgICAgICBhbGxvd0RlY2ltYWw6ICFOdW1iZXIuaXNJbnRlZ2VyKHF1YW50dW0pLFxuICAgICAgICB9KSxcbiAgICAgICAgcGlwZTogdHVpQ3JlYXRlQXV0b0NvcnJlY3RlZE51bWJlclBpcGUoKSxcbiAgICAgICAgZ3VpZGU6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IG1vZGVEaXJlY3RpdmU6IFR1aU1vZGVEaXJlY3RpdmUgfCBudWxsO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5fc2VnbWVudGVkJylcbiAgICBnZXQgc2VnbWVudGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWdtZW50cyA+IDA7XG4gICAgfVxuXG4gICAgZ2V0IGhhc1BsYWNlaG9sZGVyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaXplID09PSAnbCc7XG4gICAgfVxuXG4gICAgZ2V0IGlucHV0TW9kZSgpOiBUdWlJbnB1dE1vZGUge1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih0aGlzLnF1YW50dW0pXG4gICAgICAgICAgICA/IFR1aUlucHV0TW9kZS5OdW1lcmljXG4gICAgICAgICAgICA6IFR1aUlucHV0TW9kZS5EZWNpbWFsO1xuICAgIH1cblxuICAgIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4IC0gdGhpcy5taW47XG4gICAgfVxuXG4gICAgZ2V0IGNvbXB1dGVkU3RlcHMoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RlcHMgfHwgdGhpcy5sZW5ndGggLyB0aGlzLnF1YW50dW07XG4gICAgfVxuXG4gICAgZ2V0IHN0ZXAoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoIC8gdGhpcy5jb21wdXRlZFN0ZXBzO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLW1vZGUnKVxuICAgIGdldCBob3N0TW9kZSgpOiBUdWlCcmlnaHRuZXNzIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVEaXJlY3RpdmUgJiYgdGhpcy5tb2RlRGlyZWN0aXZlLm1vZGU7XG4gICAgfVxuXG4gICAgYWJzdHJhY3QgZ2V0IHNob3dNaW5MYWJlbCgpOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgZ2V0IHNob3dNYXhMYWJlbCgpOiBib29sZWFuO1xuXG4gICAgb25Ib3ZlcmVkKGhvdmVyZWQ6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy51cGRhdGVIb3ZlcmVkKGhvdmVyZWQpO1xuICAgIH1cblxuICAgIGlzUGx1cmFsaXplZChwbHVyYWxpemU6IFR1aVBsdXJhbGl6ZSB8IG51bGwpOiBwbHVyYWxpemUgaXMgVHVpUGx1cmFsaXplIHtcbiAgICAgICAgcmV0dXJuIHBsdXJhbGl6ZSAhPT0gbnVsbCAmJiBwbHVyYWxpemUubGVuZ3RoID09PSAzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWx1ZUd1YXJkKHZhbHVlOiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5xdWFudHVtXG4gICAgICAgICAgICA/IGNsYW1wKFxuICAgICAgICAgICAgICAgICAgcm91bmQoXG4gICAgICAgICAgICAgICAgICAgICAgTWF0aC5yb3VuZCh2YWx1ZSAvIHRoaXMucXVhbnR1bSkgKiB0aGlzLnF1YW50dW0sXG4gICAgICAgICAgICAgICAgICAgICAgVFVJX0ZMT0FUSU5HX1BSRUNJU0lPTixcbiAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICB0aGlzLm1pbixcbiAgICAgICAgICAgICAgICAgIHRoaXMubWF4LFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICA6IGNsYW1wKHZhbHVlLCB0aGlzLm1pbiwgdGhpcy5tYXgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjYXBJbnB1dFZhbHVlKHZhbHVlOiBzdHJpbmcsIG1heDogbnVtYmVyID0gdGhpcy5tYXgpOiBudW1iZXIgfCBudWxsIHtcbiAgICAgICAgY29uc3QgY2FwcGVkID0gTWF0aC5taW4obWFza2VkTnVtYmVyU3RyaW5nVG9OdW1iZXIodmFsdWUpLCBtYXgpO1xuXG4gICAgICAgIGlmICh0aGlzLm1pbiA8IDAgJiYgY2FwcGVkIDwgdGhpcy5taW4pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm1pbjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBpc05hTihjYXBwZWQpIHx8IGNhcHBlZCA8IHRoaXMubWluID8gbnVsbCA6IGNhcHBlZDtcbiAgICB9XG59XG4iXX0=