UNPKG

moh-common-lib

Version:

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

64 lines 4.83 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 {?} */ const duplicate = dupList.find((/** * @param {?} x * @return {?} */ x => 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 {?} */ (control) => { return checkForDuplicates(control, dupList); }); } export class DuplicateCheckDirective { /** * @param {?} control * @return {?} */ validate(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 }] }; if (false) { /** @type {?} */ DuplicateCheckDirective.prototype.dupList; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWNoZWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL21vaC1jb21tb24tbGliLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZHVwbGljYXRlLWNoZWNrL2R1cGxpY2F0ZS1jaGVjay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBZ0MsYUFBYSxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFHeEYsU0FBUyxrQkFBa0IsQ0FBRSxPQUF3QixFQUN4QixPQUFpQjtJQUM1QyxrQkFBa0I7SUFDbEIsSUFBSyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRzs7Y0FFM0IsU0FBUyxHQUFHLE9BQU8sQ0FBQyxJQUFJOzs7O1FBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FBTyxDQUFDLEtBQUssRUFBRTtRQUMxRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDakQ7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7Ozs7OztBQUdELE1BQU0sVUFBVSxvQkFBb0IsQ0FBRSxPQUFpQjtJQUVyRDs7OztJQUFPLENBQUUsT0FBd0IsRUFBc0MsRUFBRTtRQUN2RSxPQUFPLGtCQUFrQixDQUFFLE9BQU8sRUFBRSxPQUFPLENBQUUsQ0FBQztJQUNoRCxDQUFDLEVBQUM7QUFDSixDQUFDO0FBUUQsTUFBTSxPQUFPLHVCQUF1Qjs7Ozs7SUFJbEMsUUFBUSxDQUFFLE9BQXdCO1FBQ2xDLE9BQU8sa0JBQWtCLENBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUUsQ0FBQztJQUNuRCxDQUFDOzs7WUFaRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtnQkFDbEMsU0FBUyxFQUFFO29CQUNULEVBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztpQkFDMUU7YUFDSjs7O3NCQUdFLEtBQUs7Ozs7SUFBTiwwQ0FBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vIExvY2FsIGZ1bmN0aW9uXHJcbmZ1bmN0aW9uIGNoZWNrRm9yRHVwbGljYXRlcyggY29udHJvbDogQWJzdHJhY3RDb250cm9sLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cExpc3Q6IHN0cmluZ1tdICk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCB7XHJcbiAgLy8gRHVwbGljYXRlIGNoZWNrXHJcbiAgaWYgKCBkdXBMaXN0ICYmIGR1cExpc3QubGVuZ3RoICkge1xyXG5cclxuICBjb25zdCBkdXBsaWNhdGUgPSBkdXBMaXN0LmZpbmQoIHggPT4geCA9PT0gY29udHJvbC52YWx1ZSApO1xyXG4gIHJldHVybiAoZHVwbGljYXRlID8geyAnZHVwbGljYXRlJzogdHJ1ZSB9IDogbnVsbCk7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG4vLyBUT0RPOiBOZWVkIHRvIGNvbmZpcm0gdGhpcyB3b3JrcyB3aXRoIHJlYWN0aXZlIGZvcm1zXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21tb25EdXBsaWNhdGVDaGVjayggZHVwTGlzdDogc3RyaW5nW10gKTogVmFsaWRhdG9yRm4ge1xyXG5cclxuICByZXR1cm4gKCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcclxuICAgIHJldHVybiBjaGVja0ZvckR1cGxpY2F0ZXMoIGNvbnRyb2wsIGR1cExpc3QgKTtcclxuICB9O1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tjb21tb25EdXBsaWNhdGVDaGVja10nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBEdXBsaWNhdGVDaGVja0RpcmVjdGl2ZSwgbXVsdGk6IHRydWV9XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEdXBsaWNhdGVDaGVja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XHJcblxyXG4gIEBJbnB1dCgpIGR1cExpc3Q6IHN0cmluZ1tdO1xyXG5cclxuICB2YWxpZGF0ZSggY29udHJvbDogQWJzdHJhY3RDb250cm9sICk6IHtba2V5OiBzdHJpbmddOiBhbnl9IHwgbnVsbCB7XHJcbiAgcmV0dXJuIGNoZWNrRm9yRHVwbGljYXRlcyggY29udHJvbCwgdGhpcy5kdXBMaXN0ICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==