@alauda-fe/common
Version:
Alauda frontend team common codes.
57 lines • 6.31 kB
JavaScript
import { __decorate, __metadata } from "tslib";
import { Directive, Input, forwardRef } from '@angular/core';
import { NG_VALIDATORS, } from '@angular/forms';
import { ValueHook } from '../../core/public-api';
import * as i0 from "@angular/core";
export class OneOfValidatorDirective {
validate(control) {
const value = control.value;
if (this.oneOfValues &&
!this.oneOfValues?.some(oneOfValue => typeof oneOfValue === 'string'
? oneOfValue === value
: oneOfValue?.test(value))) {
return {
oneOf: control.value,
};
}
}
registerOnValidatorChange(fn) {
this.onValidatorChange = fn;
}
static { this.ɵfac = function OneOfValidatorDirective_Factory(t) { return new (t || OneOfValidatorDirective)(); }; }
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: OneOfValidatorDirective, selectors: [["", "aclOneOf", "", "ngModel", ""], ["", "aclOneOf", "", "formControl", ""], ["", "aclOneOf", "", "formControlName", ""]], inputs: { aclOneOf: "aclOneOf" }, standalone: true, features: [i0.ɵɵProvidersFeature([
{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => OneOfValidatorDirective),
multi: true,
},
])] }); }
}
__decorate([
ValueHook(null, null, function (oneOf) {
this.oneOfValues = oneOf
? Array.isArray(oneOf)
? oneOf
: [oneOf]
: null;
this.onValidatorChange?.();
}),
__metadata("design:type", Object)
], OneOfValidatorDirective.prototype, "aclOneOf", void 0);
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(OneOfValidatorDirective, [{
type: Directive,
args: [{
standalone: true,
selector: '[aclOneOf][ngModel],[aclOneOf][formControl],[aclOneOf][formControlName]',
providers: [
{
provide: NG_VALIDATORS,
useExisting: forwardRef(() => OneOfValidatorDirective),
multi: true,
},
],
}]
}], null, { aclOneOf: [{
type: Input
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLW9mLXZhbGlkYXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZm9ybS92YWxpZGF0b3JzL29uZS1vZi12YWxpZGF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUVMLGFBQWEsR0FHZCxNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFnQmxELE1BQU0sT0FBTyx1QkFBdUI7SUFvQmxDLFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixNQUFNLEtBQUssR0FBVyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3BDLElBQ0UsSUFBSSxDQUFDLFdBQVc7WUFDaEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUNuQyxPQUFPLFVBQVUsS0FBSyxRQUFRO2dCQUM1QixDQUFDLENBQUMsVUFBVSxLQUFLLEtBQUs7Z0JBQ3RCLENBQUMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM1QixFQUNELENBQUM7WUFDRCxPQUFPO2dCQUNMLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzthQUNyQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxFQUFjO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQzt3RkF0Q1UsdUJBQXVCO29FQUF2Qix1QkFBdUIsK05BUnZCO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxhQUFhO29CQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO29CQUN0RCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGOztBQWdCRDtJQWJDLFNBQVMsQ0FDUixJQUFJLEVBQ0osSUFBSSxFQUNKLFVBQXlDLEtBQWdDO1FBQ3ZFLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSztZQUN0QixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BCLENBQUMsQ0FBQyxLQUFLO2dCQUNQLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNYLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDO0lBQzdCLENBQUMsQ0FDRjs7eURBRW1DO2lGQWR6Qix1QkFBdUI7Y0FabkMsU0FBUztlQUFDO2dCQUNULFVBQVUsRUFBRSxJQUFJO2dCQUNoQixRQUFRLEVBQ04seUVBQXlFO2dCQUMzRSxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGFBQWE7d0JBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDO3dCQUN0RCxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjthQUNGO2dCQWVDLFFBQVE7a0JBRFAsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFZhbHVlSG9vayB9IGZyb20gJy4uLy4uL2NvcmUvcHVibGljLWFwaSc7XG5cbmV4cG9ydCB0eXBlIE9uZU9mVmFsdWUgPSBzdHJpbmcgfCBSZWdFeHA7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjpcbiAgICAnW2FjbE9uZU9mXVtuZ01vZGVsXSxbYWNsT25lT2ZdW2Zvcm1Db250cm9sXSxbYWNsT25lT2ZdW2Zvcm1Db250cm9sTmFtZV0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gT25lT2ZWYWxpZGF0b3JEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT25lT2ZWYWxpZGF0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICBAVmFsdWVIb29rKFxuICAgIG51bGwsXG4gICAgbnVsbCxcbiAgICBmdW5jdGlvbiAodGhpczogT25lT2ZWYWxpZGF0b3JEaXJlY3RpdmUsIG9uZU9mOiBPbmVPZlZhbHVlIHwgT25lT2ZWYWx1ZVtdKSB7XG4gICAgICB0aGlzLm9uZU9mVmFsdWVzID0gb25lT2ZcbiAgICAgICAgPyBBcnJheS5pc0FycmF5KG9uZU9mKVxuICAgICAgICAgID8gb25lT2ZcbiAgICAgICAgICA6IFtvbmVPZl1cbiAgICAgICAgOiBudWxsO1xuICAgICAgdGhpcy5vblZhbGlkYXRvckNoYW5nZT8uKCk7XG4gICAgfSxcbiAgKVxuICBASW5wdXQoKVxuICBhY2xPbmVPZjogT25lT2ZWYWx1ZSB8IE9uZU9mVmFsdWVbXTtcblxuICBvbmVPZlZhbHVlczogT25lT2ZWYWx1ZVtdO1xuXG4gIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xuICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSBjb250cm9sLnZhbHVlO1xuICAgIGlmIChcbiAgICAgIHRoaXMub25lT2ZWYWx1ZXMgJiZcbiAgICAgICF0aGlzLm9uZU9mVmFsdWVzPy5zb21lKG9uZU9mVmFsdWUgPT5cbiAgICAgICAgdHlwZW9mIG9uZU9mVmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICAgICAgPyBvbmVPZlZhbHVlID09PSB2YWx1ZVxuICAgICAgICAgIDogb25lT2ZWYWx1ZT8udGVzdCh2YWx1ZSksXG4gICAgICApXG4gICAgKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBvbmVPZjogY29udHJvbC52YWx1ZSxcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZShmbjogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMub25WYWxpZGF0b3JDaGFuZ2UgPSBmbjtcbiAgfVxufVxuIl19