@clr/angular
Version:
Angular components for Clarity
40 lines • 6.11 kB
JavaScript
/*
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
* This software is released under MIT license.
* The full license information can be found in LICENSE in the root directory of this project.
*/
import { Directive, Optional } from '@angular/core';
import { NG_VALIDATORS } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "./providers/date-io.service";
export class ClrDateInputValidator {
constructor(dateIOService) {
this.dateIOService = dateIOService;
}
validate(control) {
if (this.dateIOService) {
const value = this.dateIOService.getDateValueFromDateString(control.value);
const minDate = this.dateIOService.disabledDates.minDate.toDate();
const maxDate = this.dateIOService.disabledDates.maxDate.toDate();
if (value && value < this.dateIOService.disabledDates.minDate.toDate()) {
return { min: { min: minDate.toLocaleDateString(), actual: value.toLocaleDateString() } };
}
else if (value && value > this.dateIOService.disabledDates.maxDate.toDate()) {
return { max: { max: maxDate.toLocaleDateString(), actual: value.toLocaleDateString() } };
}
}
return null;
}
}
ClrDateInputValidator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDateInputValidator, deps: [{ token: i1.DateIOService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
ClrDateInputValidator.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrDateInputValidator, selector: "[clrDate]", providers: [{ provide: NG_VALIDATORS, useExisting: ClrDateInputValidator, multi: true }], ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDateInputValidator, decorators: [{
type: Directive,
args: [{
selector: '[clrDate]',
providers: [{ provide: NG_VALIDATORS, useExisting: ClrDateInputValidator, multi: true }],
}]
}], ctorParameters: function () { return [{ type: i1.DateIOService, decorators: [{
type: Optional
}] }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy9mb3Jtcy9kYXRlcGlja2VyL2RhdGUtaW5wdXQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQW1CLGFBQWEsRUFBK0IsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBUTdGLE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFBZ0MsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7SUFBRyxDQUFDO0lBRWhFLFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0UsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVsRSxJQUFJLEtBQUssSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN0RSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLENBQUM7YUFDM0Y7aUJBQU0sSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDN0UsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxDQUFDO2FBQzNGO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O2tIQWpCVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixvQ0FGckIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHFCQUFxQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzsyRkFFN0UscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQ3pGOzswQkFFYyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIzIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgRGF0ZUlPU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2RhdGUtaW8uc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjbHJEYXRlXScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IENsckRhdGVJbnB1dFZhbGlkYXRvciwgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRhdGVJbnB1dFZhbGlkYXRvciBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHByaXZhdGUgZGF0ZUlPU2VydmljZTogRGF0ZUlPU2VydmljZSkge31cblxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICBpZiAodGhpcy5kYXRlSU9TZXJ2aWNlKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZGF0ZUlPU2VydmljZS5nZXREYXRlVmFsdWVGcm9tRGF0ZVN0cmluZyhjb250cm9sLnZhbHVlKTtcbiAgICAgIGNvbnN0IG1pbkRhdGUgPSB0aGlzLmRhdGVJT1NlcnZpY2UuZGlzYWJsZWREYXRlcy5taW5EYXRlLnRvRGF0ZSgpO1xuICAgICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMuZGF0ZUlPU2VydmljZS5kaXNhYmxlZERhdGVzLm1heERhdGUudG9EYXRlKCk7XG5cbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSA8IHRoaXMuZGF0ZUlPU2VydmljZS5kaXNhYmxlZERhdGVzLm1pbkRhdGUudG9EYXRlKCkpIHtcbiAgICAgICAgcmV0dXJuIHsgbWluOiB7IG1pbjogbWluRGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoKSwgYWN0dWFsOiB2YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKSB9IH07XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlICYmIHZhbHVlID4gdGhpcy5kYXRlSU9TZXJ2aWNlLmRpc2FibGVkRGF0ZXMubWF4RGF0ZS50b0RhdGUoKSkge1xuICAgICAgICByZXR1cm4geyBtYXg6IHsgbWF4OiBtYXhEYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpLCBhY3R1YWw6IHZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpIH0gfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19