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
JavaScript
/**
* @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