@taiga-ui/kit
Version:
Taiga UI Angular main components kit
35 lines • 9.76 kB
JavaScript
import { NgIf } from '@angular/common';
import { ChangeDetectionStrategy, Component, computed, inject, ViewEncapsulation, } from '@angular/core';
import { TuiDay, TuiTime } from '@taiga-ui/cdk/date-time';
import { TuiTextfieldContent, TuiWithNativePicker, } from '@taiga-ui/core/components/textfield';
import { TuiNativeTimePicker } from '@taiga-ui/kit/components/input-time';
import { TuiInputDateTimeDirective } from './input-date-time.directive';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/textfield";
class TuiInputDateTimeComponent extends TuiNativeTimePicker {
constructor() {
super(...arguments);
this.host = inject(TuiInputDateTimeDirective);
this.step = computed(() => this.getStep(this.host.timeMode()));
this.value = computed(() => this.toISOString(this.host.value()));
this.min = computed(() => this.toISOString([this.host.min(), this.host.minTime()]));
this.max = computed(() => this.toISOString([this.host.max(), this.host.maxTime()]));
}
onInput(value) {
if (!value) {
return this.host.setValue(null);
}
const date = new Date(value);
const day = TuiDay.fromLocalNativeDate(date);
const time = TuiTime.fromLocalNativeDate(date);
this.host.setValue([day, time]);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiInputDateTimeComponent, isStandalone: true, selector: "input[tuiInputDateTime][type=\"datetime-local\"]", host: { attributes: { "ngSkipHydration": "true" } }, usesInheritance: true, hostDirectives: [{ directive: i1.TuiWithNativePicker }], ngImport: i0, template: "<ng-container *ngIf=\"host.native\">\n <input\n *tuiTextfieldContent\n type=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]{position:absolute;top:0;left:auto;right:0;bottom:0;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]::-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 { TuiInputDateTimeComponent };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiInputDateTimeComponent, decorators: [{
type: Component,
args: [{ standalone: true, selector: 'input[tuiInputDateTime][type="datetime-local"]', 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=\"datetime-local\"\n [attr.list]=\"list\"\n [max]=\"max()\"\n [min]=\"min()\"\n [step]=\"step()\"\n [value]=\"value()\"\n (click.stop.zoneless)=\"(0)\"\n (input)=\"onInput($any($event.target).value)\"\n (pointerdown.stop.zoneless)=\"(0)\"\n />\n</ng-container>\n", styles: ["tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]{position:absolute;top:0;left:auto;right:0;bottom:0;inline-size:2.5rem;padding:0;opacity:0}tui-textfield input[tuiInputDateTime]~.t-content input[type=datetime-local]::-webkit-calendar-picker-indicator{position:absolute;top:0;left:0;inline-size:100%;block-size:100%}\n"] }]
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tpdC9jb21wb25lbnRzL2lucHV0LWRhdGUtdGltZS9pbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2l0L2NvbXBvbmVudHMvaW5wdXQtZGF0ZS10aW1lL2lucHV0LWRhdGUtdGltZS50ZW1wbGF0ZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyQyxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsTUFBTSxFQUFFLE9BQU8sRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsbUJBQW1CLEdBQ3RCLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFFeEUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sNkJBQTZCLENBQUM7OztBQUV0RSxNQVdhLHlCQUEwQixTQUFRLG1CQUFtQjtJQVhsRTs7UUFZdUIsU0FBSSxHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3pDLFNBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxVQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFckUsUUFBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQzNELENBQUM7UUFFUSxRQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FDM0QsQ0FBQztLQWFMO0lBWGEsT0FBTyxDQUFDLEtBQWE7UUFDM0IsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbkM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0F2QlEseUJBQXlCO21HQUF6Qix5QkFBeUIsaVBDNUJ0QyxnYUFjQSxpWkRNYyxJQUFJLDZGQUFFLG1CQUFtQjs7U0FRMUIseUJBQXlCOzRGQUF6Qix5QkFBeUI7a0JBWHJDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGdEQUFnRCxXQUNqRCxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxpQkFHckIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxrQkFDL0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUMvQixFQUFDLGVBQWUsRUFBRSxNQUFNLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBpbmplY3QsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUdWlEYXksIFR1aVRpbWV9IGZyb20gJ0B0YWlnYS11aS9jZGsvZGF0ZS10aW1lJztcbmltcG9ydCB7XG4gICAgVHVpVGV4dGZpZWxkQ29udGVudCxcbiAgICBUdWlXaXRoTmF0aXZlUGlja2VyLFxufSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL3RleHRmaWVsZCc7XG5pbXBvcnQge1R1aU5hdGl2ZVRpbWVQaWNrZXJ9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9pbnB1dC10aW1lJztcblxuaW1wb3J0IHtUdWlJbnB1dERhdGVUaW1lRGlyZWN0aXZlfSBmcm9tICcuL2lucHV0LWRhdGUtdGltZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnaW5wdXRbdHVpSW5wdXREYXRlVGltZV1bdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdJyxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVHVpVGV4dGZpZWxkQ29udGVudF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWRhdGUtdGltZS50ZW1wbGF0ZS5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnB1dC1kYXRlLXRpbWUuc3R5bGUubGVzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtUdWlXaXRoTmF0aXZlUGlja2VyXSxcbiAgICBob3N0OiB7bmdTa2lwSHlkcmF0aW9uOiAndHJ1ZSd9LFxufSlcbmV4cG9ydCBjbGFzcyBUdWlJbnB1dERhdGVUaW1lQ29tcG9uZW50IGV4dGVuZHMgVHVpTmF0aXZlVGltZVBpY2tlciB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGhvc3QgPSBpbmplY3QoVHVpSW5wdXREYXRlVGltZURpcmVjdGl2ZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0ZXAgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmdldFN0ZXAodGhpcy5ob3N0LnRpbWVNb2RlKCkpKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmFsdWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnRvSVNPU3RyaW5nKHRoaXMuaG9zdC52YWx1ZSgpKSk7XG5cbiAgICBwcm90ZWN0ZWQgbWluID0gY29tcHV0ZWQoKCkgPT5cbiAgICAgICAgdGhpcy50b0lTT1N0cmluZyhbdGhpcy5ob3N0Lm1pbigpLCB0aGlzLmhvc3QubWluVGltZSgpXSksXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCBtYXggPSBjb21wdXRlZCgoKSA9PlxuICAgICAgICB0aGlzLnRvSVNPU3RyaW5nKFt0aGlzLmhvc3QubWF4KCksIHRoaXMuaG9zdC5tYXhUaW1lKCldKSxcbiAgICApO1xuXG4gICAgcHJvdGVjdGVkIG9uSW5wdXQodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ob3N0LnNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgY29uc3QgZGF5ID0gVHVpRGF5LmZyb21Mb2NhbE5hdGl2ZURhdGUoZGF0ZSk7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBUdWlUaW1lLmZyb21Mb2NhbE5hdGl2ZURhdGUoZGF0ZSk7XG5cbiAgICAgICAgdGhpcy5ob3N0LnNldFZhbHVlKFtkYXksIHRpbWVdKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaG9zdC5uYXRpdmVcIj5cbiAgICA8aW5wdXRcbiAgICAgICAgKnR1aVRleHRmaWVsZENvbnRlbnRcbiAgICAgICAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJcbiAgICAgICAgW2F0dHIubGlzdF09XCJsaXN0XCJcbiAgICAgICAgW21heF09XCJtYXgoKVwiXG4gICAgICAgIFttaW5dPVwibWluKClcIlxuICAgICAgICBbc3RlcF09XCJzdGVwKClcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgICAgIChjbGljay5zdG9wLnpvbmVsZXNzKT1cIigwKVwiXG4gICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRhbnkoJGV2ZW50LnRhcmdldCkudmFsdWUpXCJcbiAgICAgICAgKHBvaW50ZXJkb3duLnN0b3Auem9uZWxlc3MpPVwiKDApXCJcbiAgICAvPlxuPC9uZy1jb250YWluZXI+XG4iXX0=