UNPKG

moh-common-lib

Version:

A library of Angular components, services, and styles for B.C. Government Ministry of Health (MoH).

72 lines 5.22 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Directive, Input } from '@angular/core'; import { NG_VALIDATORS } from '@angular/forms'; // Local function /** * @param {?} control * @param {?} dupList * @return {?} */ function checkForDuplicates(control, dupList) { // Duplicate check if (dupList && dupList.length) { /** @type {?} */ var duplicate = dupList.find((/** * @param {?} x * @return {?} */ function (x) { return x === control.value; })); return (duplicate ? { 'duplicate': true } : null); } return null; } // TODO: Need to confirm this works with reactive forms /** * @param {?} dupList * @return {?} */ export function commonDuplicateCheck(dupList) { return (/** * @param {?} control * @return {?} */ function (control) { return checkForDuplicates(control, dupList); }); } var DuplicateCheckDirective = /** @class */ (function () { function DuplicateCheckDirective() { } /** * @param {?} control * @return {?} */ DuplicateCheckDirective.prototype.validate = /** * @param {?} control * @return {?} */ function (control) { return checkForDuplicates(control, this.dupList); }; DuplicateCheckDirective.decorators = [ { type: Directive, args: [{ selector: '[commonDuplicateCheck]', providers: [ { provide: NG_VALIDATORS, useExisting: DuplicateCheckDirective, multi: true } ] },] } ]; DuplicateCheckDirective.propDecorators = { dupList: [{ type: Input }] }; return DuplicateCheckDirective; }()); export { DuplicateCheckDirective }; if (false) { /** @type {?} */ DuplicateCheckDirective.prototype.dupList; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWNoZWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHVwbGljYXRlLWNoZWNrL2R1cGxpY2F0ZS1jaGVjay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0MsYUFBYSxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFHeEYsU0FBUyxrQkFBa0IsQ0FBRSxPQUF3QixFQUN4QixPQUFpQjtJQUM1QyxrQkFBa0I7SUFDbEIsSUFBSyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRzs7WUFFM0IsU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLEtBQUssT0FBTyxDQUFDLEtBQUssRUFBbkIsQ0FBbUIsRUFBRTtRQUMxRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakQ7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7Ozs7OztBQUdELE1BQU0sVUFBVSxvQkFBb0IsQ0FBRSxPQUFpQjtJQUVyRDs7OztJQUFPLFVBQUUsT0FBd0I7UUFDL0IsT0FBTyxrQkFBa0IsQ0FBRSxPQUFPLEVBQUUsT0FBTyxDQUFFLENBQUM7SUFDaEQsQ0FBQyxFQUFDO0FBQ0osQ0FBQztBQUVEO0lBQUE7SUFhQSxDQUFDOzs7OztJQUhDLDBDQUFROzs7O0lBQVIsVUFBVSxPQUF3QjtRQUNsQyxPQUFPLGtCQUFrQixDQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFFLENBQUM7SUFDbkQsQ0FBQzs7Z0JBWkYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFNBQVMsRUFBRTt3QkFDVCxFQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7cUJBQzFFO2lCQUNKOzs7MEJBR0UsS0FBSzs7SUFLUiw4QkFBQztDQUFBLEFBYkQsSUFhQztTQVBZLHVCQUF1Qjs7O0lBRWxDLDBDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmFsaWRhdG9yRm4sIEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdG9yIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuLy8gTG9jYWwgZnVuY3Rpb25cclxuZnVuY3Rpb24gY2hlY2tGb3JEdXBsaWNhdGVzKCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVwTGlzdDogc3RyaW5nW10gKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsIHtcclxuICAvLyBEdXBsaWNhdGUgY2hlY2tcclxuICBpZiAoIGR1cExpc3QgJiYgZHVwTGlzdC5sZW5ndGggKSB7XHJcblxyXG4gIGNvbnN0IGR1cGxpY2F0ZSA9IGR1cExpc3QuZmluZCggeCA9PiB4ID09PSBjb250cm9sLnZhbHVlICk7XHJcbiAgcmV0dXJuIChkdXBsaWNhdGUgPyB7ICdkdXBsaWNhdGUnOiB0cnVlIH0gOiBudWxsKTtcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbi8vIFRPRE86IE5lZWQgdG8gY29uZmlybSB0aGlzIHdvcmtzIHdpdGggcmVhY3RpdmUgZm9ybXNcclxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1vbkR1cGxpY2F0ZUNoZWNrKCBkdXBMaXN0OiBzdHJpbmdbXSApOiBWYWxpZGF0b3JGbiB7XHJcblxyXG4gIHJldHVybiAoIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCApOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB8IG51bGwgPT4ge1xyXG4gICAgcmV0dXJuIGNoZWNrRm9yRHVwbGljYXRlcyggY29udHJvbCwgZHVwTGlzdCApO1xyXG4gIH07XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2NvbW1vbkR1cGxpY2F0ZUNoZWNrXScsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7cHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IER1cGxpY2F0ZUNoZWNrRGlyZWN0aXZlLCBtdWx0aTogdHJ1ZX1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIER1cGxpY2F0ZUNoZWNrRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcclxuXHJcbiAgQElucHV0KCkgZHVwTGlzdDogc3RyaW5nW107XHJcblxyXG4gIHZhbGlkYXRlKCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgKToge1trZXk6IHN0cmluZ106IGFueX0gfCBudWxsIHtcclxuICByZXR1cm4gY2hlY2tGb3JEdXBsaWNhdGVzKCBjb250cm9sLCB0aGlzLmR1cExpc3QgKTtcclxuICB9XHJcbn1cclxuIl19