@taiga-ui/kit
Version:
Taiga UI Angular main components kit
64 lines • 12 kB
JavaScript
import { NgIf } from '@angular/common';
import { ChangeDetectionStrategy, Component, computed, Directive, inject, ViewEncapsulation, } from '@angular/core';
import { TuiControl } from '@taiga-ui/cdk/classes';
import { TuiTime } from '@taiga-ui/cdk/date-time';
import { tuiInjectElement } from '@taiga-ui/cdk/utils/dom';
import { TuiTextfieldContent, TuiTextfieldDirective, TuiWithNativePicker, } from '@taiga-ui/core/components/textfield';
import { TuiInputTimeDirective } from './input-time.directive';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/textfield";
class TuiNativeTimePicker {
constructor() {
this.list = tuiInjectElement().getAttribute('list');
}
getStep(timeMode) {
switch (timeMode) {
case 'HH:MM:SS':
case 'HH:MM:SS AA':
return 1;
case 'HH:MM:SS.MSS':
case 'HH:MM:SS.MSS AA':
return 0.001;
default:
return 60;
}
}
toISOString(value) {
const [day, time] = Array.isArray(value) ? value : [null, value];
const dateString = day ? day.toJSON() + (time ? 'T' : '') : '';
const timeString = time ? time.toString('HH:MM:SS.MSS') : '';
return dateString + timeString;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeTimePicker, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiNativeTimePicker, host: { properties: { "attr.list": "null" } }, ngImport: i0 }); }
}
export { TuiNativeTimePicker };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiNativeTimePicker, decorators: [{
type: Directive,
args: [{
host: {
'[attr.list]': 'null',
},
}]
}] });
class TuiInputTimeComponent extends TuiNativeTimePicker {
constructor() {
super(...arguments);
this.control = inject(TuiControl);
this.host = inject(TuiInputTimeDirective);
this.textfield = inject(TuiTextfieldDirective);
this.value = computed(() => this.toISOString(this.control.value()));
this.step = computed(() => this.getStep(this.host.timeMode()));
}
setValue(value) {
this.host.setValue(TuiTime.fromString(value));
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputTimeComponent, isStandalone: true, selector: "input[tuiInputTime][type=\"time\"]", host: { attributes: { "ngSkipHydration": "true" } }, usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithNativePicker }], ngImport: i0, template: "<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"time\"\n [attr.list]=\"list\"\n [step]=\"step()\"\n [value]=\"value()\"\n (change)=\"setValue($any($event.target).value)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputTime]~.t-content input[type=time]{position:absolute;right:0;left:auto;inline-size:calc(var(--t-right) + var(--t-padding));opacity:0;margin:0;padding:0}tui-textfield input[tuiInputTime]~.t-content input[type=time]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: TuiTextfieldContent, selector: "ng-template[tuiTextfieldContent]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
export { TuiInputTimeComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputTimeComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'input[tuiInputTime][type="time"]', imports: [NgIf, TuiTextfieldContent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, hostDirectives: [TuiWithNativePicker], host: { ngSkipHydration: 'true' }, template: "<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"time\"\n [attr.list]=\"list\"\n [step]=\"step()\"\n [value]=\"value()\"\n (change)=\"setValue($any($event.target).value)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputTime]~.t-content input[type=time]{position:absolute;right:0;left:auto;inline-size:calc(var(--t-right) + var(--t-padding));opacity:0;margin:0;padding:0}tui-textfield input[tuiInputTime]~.t-content input[type=time]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGltZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lL2lucHV0LXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtdGltZS9pbnB1dC10aW1lLnRlbXBsYXRlLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixTQUFTLEVBQ1QsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFakQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLG1CQUFtQixHQUN0QixNQUFNLHFDQUFxQyxDQUFDO0FBRTdDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7QUFFN0QsTUFLc0IsbUJBQW1CO0lBTHpDO1FBTXVCLFNBQUksR0FBRyxnQkFBZ0IsRUFBRSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztLQXdCckU7SUF0QmEsT0FBTyxDQUFDLFFBQXlCO1FBQ3ZDLFFBQVEsUUFBUSxFQUFFO1lBQ2QsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxhQUFhO2dCQUNkLE9BQU8sQ0FBQyxDQUFDO1lBQ2IsS0FBSyxjQUFjLENBQUM7WUFDcEIsS0FBSyxpQkFBaUI7Z0JBQ2xCLE9BQU8sS0FBSyxDQUFDO1lBQ2pCO2dCQUNJLE9BQU8sRUFBRSxDQUFDO1NBQ2pCO0lBQ0wsQ0FBQztJQUVTLFdBQVcsQ0FDakIsS0FBeUQ7UUFFekQsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDL0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFN0QsT0FBTyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQ25DLENBQUM7K0dBeEJpQixtQkFBbUI7bUdBQW5CLG1CQUFtQjs7U0FBbkIsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1AsSUFBSSxFQUFFO3dCQUNGLGFBQWEsRUFBRSxNQUFNO3FCQUN4QjtpQkFDSjs7QUE0QkQsTUFXYSxxQkFBc0IsU0FBUSxtQkFBbUI7SUFYOUQ7O1FBWXFCLFlBQU8sR0FBK0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZELFNBQUksR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUVyQyxjQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDMUMsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9ELFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztLQUtoRjtJQUhhLFFBQVEsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOytHQVpRLHFCQUFxQjttR0FBckIscUJBQXFCLG1PQ2pFbEMsa1JBVUEsZ1pEK0NjLElBQUksNkZBQUUsbUJBQW1COztTQVExQixxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFYakMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sa0NBQWtDLFdBQ25DLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLGlCQUdyQixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGtCQUMvQixDQUFDLG1CQUFtQixDQUFDLFFBQy9CLEVBQUMsZUFBZSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUge01hc2tpdG9UaW1lTW9kZX0gZnJvbSAnQG1hc2tpdG8va2l0JztcbmltcG9ydCB7VHVpQ29udHJvbH0gZnJvbSAnQHRhaWdhLXVpL2Nkay9jbGFzc2VzJztcbmltcG9ydCB0eXBlIHtUdWlEYXl9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7VHVpVGltZX0gZnJvbSAnQHRhaWdhLXVpL2Nkay9kYXRlLXRpbWUnO1xuaW1wb3J0IHt0dWlJbmplY3RFbGVtZW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL2RvbSc7XG5pbXBvcnQge1xuICAgIFR1aVRleHRmaWVsZENvbnRlbnQsXG4gICAgVHVpVGV4dGZpZWxkRGlyZWN0aXZlLFxuICAgIFR1aVdpdGhOYXRpdmVQaWNrZXIsXG59IGZyb20gJ0B0YWlnYS11aS9jb3JlL2NvbXBvbmVudHMvdGV4dGZpZWxkJztcblxuaW1wb3J0IHtUdWlJbnB1dFRpbWVEaXJlY3RpdmV9IGZyb20gJy4vaW5wdXQtdGltZS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5saXN0XSc6ICdudWxsJyxcbiAgICB9LFxufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUdWlOYXRpdmVUaW1lUGlja2VyIHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbGlzdCA9IHR1aUluamVjdEVsZW1lbnQoKS5nZXRBdHRyaWJ1dGUoJ2xpc3QnKTtcblxuICAgIHByb3RlY3RlZCBnZXRTdGVwKHRpbWVNb2RlOiBNYXNraXRvVGltZU1vZGUpOiBudW1iZXIge1xuICAgICAgICBzd2l0Y2ggKHRpbWVNb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdISDpNTTpTUyc6XG4gICAgICAgICAgICBjYXNlICdISDpNTTpTUyBBQSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICBjYXNlICdISDpNTTpTUy5NU1MnOlxuICAgICAgICAgICAgY2FzZSAnSEg6TU06U1MuTVNTIEFBJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gMC4wMDE7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiA2MDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB0b0lTT1N0cmluZyhcbiAgICAgICAgdmFsdWU6IFR1aVRpbWUgfCByZWFkb25seSBbVHVpRGF5LCBUdWlUaW1lIHwgbnVsbF0gfCBudWxsLFxuICAgICk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IFtkYXksIHRpbWVdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFtudWxsLCB2YWx1ZV07XG4gICAgICAgIGNvbnN0IGRhdGVTdHJpbmcgPSBkYXkgPyBkYXkudG9KU09OKCkgKyAodGltZSA/ICdUJyA6ICcnKSA6ICcnO1xuICAgICAgICBjb25zdCB0aW1lU3RyaW5nID0gdGltZSA/IHRpbWUudG9TdHJpbmcoJ0hIOk1NOlNTLk1TUycpIDogJyc7XG5cbiAgICAgICAgcmV0dXJuIGRhdGVTdHJpbmcgKyB0aW1lU3RyaW5nO1xuICAgIH1cbn1cblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2lucHV0W3R1aUlucHV0VGltZV1bdHlwZT1cInRpbWVcIl0nLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUdWlUZXh0ZmllbGRDb250ZW50XSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGltZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC10aW1lLnN0eWxlLmxlc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbVHVpV2l0aE5hdGl2ZVBpY2tlcl0sXG4gICAgaG9zdDoge25nU2tpcEh5ZHJhdGlvbjogJ3RydWUnfSxcbn0pXG5leHBvcnQgY2xhc3MgVHVpSW5wdXRUaW1lQ29tcG9uZW50IGV4dGVuZHMgVHVpTmF0aXZlVGltZVBpY2tlciB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250cm9sOiBUdWlDb250cm9sPFR1aVRpbWUgfCBudWxsPiA9IGluamVjdChUdWlDb250cm9sKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBob3N0ID0gaW5qZWN0KFR1aUlucHV0VGltZURpcmVjdGl2ZSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGV4dGZpZWxkID0gaW5qZWN0KFR1aVRleHRmaWVsZERpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHZhbHVlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy50b0lTT1N0cmluZyh0aGlzLmNvbnRyb2wudmFsdWUoKSkpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0ZXAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldFN0ZXAodGhpcy5ob3N0LnRpbWVNb2RlKCkpKTtcblxuICAgIHByb3RlY3RlZCBzZXRWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdC5zZXRWYWx1ZShUdWlUaW1lLmZyb21TdHJpbmcodmFsdWUpKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaG9zdC5uYXRpdmVcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgKnR1aVRleHRmaWVsZENvbnRlbnRcbiAgICAgICAgdHlwZT1cInRpbWVcIlxuICAgICAgICBbYXR0ci5saXN0XT1cImxpc3RcIlxuICAgICAgICBbc3RlcF09XCJzdGVwKClcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgICAgIChjaGFuZ2UpPVwic2V0VmFsdWUoJGFueSgkZXZlbnQudGFyZ2V0KS52YWx1ZSlcIlxuICAgIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==