UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

29 lines 4.33 kB
import { NG_VALIDATORS } from '@angular/forms'; import { Directive, Input } from '@angular/core'; import { isUndefined, isFinite } from 'lodash-es'; import * as i0 from "@angular/core"; export class MinValidationDirective { constructor() { this.min = ''; } validate(control) { const parsedMin = typeof this.min === 'number' ? this.min : parseFloat(this.min); if (isUndefined(control.value) || !isFinite(parsedMin)) { return null; } const valid = control.value !== null ? !(control.value < parsedMin) : true; return valid ? null : { min: { min: parsedMin, actual: control.value } }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinValidationDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MinValidationDirective, selector: "[min]", inputs: { min: "min" }, providers: [{ provide: NG_VALIDATORS, useExisting: MinValidationDirective, multi: true }], ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinValidationDirective, decorators: [{ type: Directive, args: [{ selector: '[min]', providers: [{ provide: NG_VALIDATORS, useExisting: MinValidationDirective, multi: true }] }] }], propDecorators: { min: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLXZhbGlkYXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9mb3Jtcy9taW4tdmFsaWRhdGlvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFNbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUpuQztRQUtXLFFBQUcsR0FBb0IsRUFBRSxDQUFDO0tBV3BDO0lBVEMsUUFBUSxDQUFDLE9BQXdCO1FBQy9CLE1BQU0sU0FBUyxHQUFHLE9BQU8sSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakYsSUFBSSxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0UsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUMzRSxDQUFDOytHQVhVLHNCQUFzQjttR0FBdEIsc0JBQXNCLHdEQUZ0QixDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDOzs0RkFFOUUsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxPQUFPO29CQUNqQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7aUJBQzFGOzhCQUVVLEdBQUc7c0JBQVgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBpc1VuZGVmaW5lZCwgaXNGaW5pdGUgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbWluXScsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IE1pblZhbGlkYXRpb25EaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1dXG59KVxuZXhwb3J0IGNsYXNzIE1pblZhbGlkYXRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICBASW5wdXQoKSBtaW46IHN0cmluZyB8IG51bWJlciA9ICcnO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICBjb25zdCBwYXJzZWRNaW4gPSB0eXBlb2YgdGhpcy5taW4gPT09ICdudW1iZXInID8gdGhpcy5taW4gOiBwYXJzZUZsb2F0KHRoaXMubWluKTtcbiAgICBpZiAoaXNVbmRlZmluZWQoY29udHJvbC52YWx1ZSkgfHwgIWlzRmluaXRlKHBhcnNlZE1pbikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHZhbGlkID0gY29udHJvbC52YWx1ZSAhPT0gbnVsbCA/ICEoY29udHJvbC52YWx1ZSA8IHBhcnNlZE1pbikgOiB0cnVlO1xuICAgIHJldHVybiB2YWxpZCA/IG51bGwgOiB7IG1pbjogeyBtaW46IHBhcnNlZE1pbiwgYWN0dWFsOiBjb250cm9sLnZhbHVlIH0gfTtcbiAgfVxufVxuIl19