UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

72 lines 6.87 kB
import { Pipe } from '@angular/core'; import * as i0 from "@angular/core"; /** * This pipe should be used in pair with validateArrayElements function - it allows to distribute * errors for each position in array, from the object prepared by validateArrayElements. * * ```ts * errors = { * "INNER_ARRAY_ERROR_minlength": { * isArrayError: true, * originalKey: "minlength", * entries: [ * { * index: 0, * errorData: { * requiredLength: 5, * actualLength: 4 * } * }, * { * index: 2, * errorData: { * requiredLength: 5, * actualLength: 3 * } * }, * ] * }, * "minlength": { * requiredLength: 5, * actualLength: 3 * } * } * ``` * * ```html * <small *ngFor="let error of errors | extractArrayValidationErrors:index | keyvalue"> * {{ error.key | humanizeValidationMessage | translate: error.value }} * </small> * ``` * * Above code renders only these error messages that are generated by Array entries. * */ export class ExtractArrayValidationErrorsPipe { transform(validationErrors, index) { if (!validationErrors) { return null; } const errorObject = {}; Object.keys(validationErrors).forEach(key => { if (validationErrors[key].isArrayError) { const unprefixedKey = validationErrors[key].originalKey; const arrayValidationError = validationErrors[key]; const relatedError = arrayValidationError.entries.find(entry => entry.index === index); if (relatedError) { errorObject[unprefixedKey] = relatedError.errorData; } } }); return Object.keys(errorObject).length ? errorObject : null; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtractArrayValidationErrorsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); } static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ExtractArrayValidationErrorsPipe, name: "extractArrayValidationErrors" }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ExtractArrayValidationErrorsPipe, decorators: [{ type: Pipe, args: [{ name: 'extractArrayValidationErrors' }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmFjdC1hcnJheS12YWxpZGF0aW9uLWVycm9ycy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vY29yZS9mb3Jtcy9leHRyYWN0LWFycmF5LXZhbGlkYXRpb24tZXJyb3JzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBSXBEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDRztBQUtILE1BQU0sT0FBTyxnQ0FBZ0M7SUFDM0MsU0FBUyxDQUNQLGdCQUFpRSxFQUNqRSxLQUFhO1FBRWIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUMsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDO2dCQUN4RCxNQUFNLG9CQUFvQixHQUE4QixnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDOUUsTUFBTSxZQUFZLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7Z0JBQ3ZGLElBQUksWUFBWSxFQUFFLENBQUM7b0JBQ2pCLFdBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUMsU0FBUyxDQUFDO2dCQUN0RCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDOUQsQ0FBQzsrR0FyQlUsZ0NBQWdDOzZHQUFoQyxnQ0FBZ0M7OzRGQUFoQyxnQ0FBZ0M7a0JBSDVDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLDhCQUE4QjtpQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQXJyYXlWYWxpZGF0aW9uRXJyb3JzLCBBcnJheVZhbGlkYXRpb25FcnJvclZhbHVlIH0gZnJvbSAnLi92YWxpZGF0ZS1hcnJheS1lbGVtZW50cyc7XG5cbi8qKlxuICogVGhpcyBwaXBlIHNob3VsZCBiZSB1c2VkIGluIHBhaXIgd2l0aCB2YWxpZGF0ZUFycmF5RWxlbWVudHMgZnVuY3Rpb24gLSBpdCBhbGxvd3MgdG8gZGlzdHJpYnV0ZVxuICogZXJyb3JzIGZvciBlYWNoIHBvc2l0aW9uIGluIGFycmF5LCBmcm9tIHRoZSBvYmplY3QgcHJlcGFyZWQgYnkgdmFsaWRhdGVBcnJheUVsZW1lbnRzLlxuICpcbiAqIGBgYHRzXG4gKiBlcnJvcnMgPSB7XG4gKiAgXCJJTk5FUl9BUlJBWV9FUlJPUl9taW5sZW5ndGhcIjoge1xuICogICAgaXNBcnJheUVycm9yOiB0cnVlLFxuICogICAgb3JpZ2luYWxLZXk6IFwibWlubGVuZ3RoXCIsXG4gKiAgICBlbnRyaWVzOiBbXG4gKiAgICAgIHtcbiAqICAgICAgICBpbmRleDogMCxcbiAqICAgICAgICBlcnJvckRhdGE6IHtcbiAqICAgICAgICByZXF1aXJlZExlbmd0aDogNSxcbiAqICAgICAgICBhY3R1YWxMZW5ndGg6IDRcbiAqICAgICAgICB9XG4gKiAgICAgIH0sXG4gKiAgICAgIHtcbiAqICAgICAgICBpbmRleDogMixcbiAqICAgICAgICBlcnJvckRhdGE6IHtcbiAqICAgICAgICAgIHJlcXVpcmVkTGVuZ3RoOiA1LFxuICogICAgICAgICAgYWN0dWFsTGVuZ3RoOiAzXG4gKiAgICAgICAgfVxuICogICAgICB9LFxuICogICAgXVxuICogIH0sXG4gKiAgXCJtaW5sZW5ndGhcIjoge1xuICogICAgcmVxdWlyZWRMZW5ndGg6IDUsXG4gKiAgICBhY3R1YWxMZW5ndGg6IDNcbiAqICB9XG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBgYGBodG1sXG4gKiA8c21hbGwgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9ycyB8IGV4dHJhY3RBcnJheVZhbGlkYXRpb25FcnJvcnM6aW5kZXggfCBrZXl2YWx1ZVwiPlxuICogIHt7IGVycm9yLmtleSB8IGh1bWFuaXplVmFsaWRhdGlvbk1lc3NhZ2UgfCB0cmFuc2xhdGU6IGVycm9yLnZhbHVlIH19XG4gKiA8L3NtYWxsPlxuICogYGBgXG4gKlxuICogQWJvdmUgY29kZSByZW5kZXJzIG9ubHkgdGhlc2UgZXJyb3IgbWVzc2FnZXMgdGhhdCBhcmUgZ2VuZXJhdGVkIGJ5IEFycmF5IGVudHJpZXMuXG4gKlxuICovXG5cbkBQaXBlKHtcbiAgbmFtZTogJ2V4dHJhY3RBcnJheVZhbGlkYXRpb25FcnJvcnMnXG59KVxuZXhwb3J0IGNsYXNzIEV4dHJhY3RBcnJheVZhbGlkYXRpb25FcnJvcnNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShcbiAgICB2YWxpZGF0aW9uRXJyb3JzOiBBcnJheVZhbGlkYXRpb25FcnJvcnMgfCBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCxcbiAgICBpbmRleDogbnVtYmVyXG4gICk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoIXZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVycm9yT2JqZWN0ID0ge307XG4gICAgT2JqZWN0LmtleXModmFsaWRhdGlvbkVycm9ycykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKHZhbGlkYXRpb25FcnJvcnNba2V5XS5pc0FycmF5RXJyb3IpIHtcbiAgICAgICAgY29uc3QgdW5wcmVmaXhlZEtleSA9IHZhbGlkYXRpb25FcnJvcnNba2V5XS5vcmlnaW5hbEtleTtcbiAgICAgICAgY29uc3QgYXJyYXlWYWxpZGF0aW9uRXJyb3I6IEFycmF5VmFsaWRhdGlvbkVycm9yVmFsdWUgPSB2YWxpZGF0aW9uRXJyb3JzW2tleV07XG4gICAgICAgIGNvbnN0IHJlbGF0ZWRFcnJvciA9IGFycmF5VmFsaWRhdGlvbkVycm9yLmVudHJpZXMuZmluZChlbnRyeSA9PiBlbnRyeS5pbmRleCA9PT0gaW5kZXgpO1xuICAgICAgICBpZiAocmVsYXRlZEVycm9yKSB7XG4gICAgICAgICAgZXJyb3JPYmplY3RbdW5wcmVmaXhlZEtleV0gPSByZWxhdGVkRXJyb3IuZXJyb3JEYXRhO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9yT2JqZWN0KS5sZW5ndGggPyBlcnJvck9iamVjdCA6IG51bGw7XG4gIH1cbn1cbiJdfQ==