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