Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 1x 383x 383x 383x 1530x 556x 974x 983x 983x 983x 983x 9x 54x 2652x 2370x 383x 383x 383x | import { Inject, Injectable } from '@angular/core'; import { DynamicFormLibrary, DynamicFormLibraryName, DYNAMIC_FORM_LIBRARY } from './dynamic-form-library'; @Injectable() export class DynamicFormLibraryService { readonly libraryNames: DynamicFormLibraryName[]; readonly libraryNamesReverse: DynamicFormLibraryName[]; constructor( @Inject(DYNAMIC_FORM_LIBRARY) readonly library: DynamicFormLibrary, ) { this.libraryNames = this.getLibraryNames(); this.libraryNamesReverse = [ ...this.libraryNames ].reverse(); } filterTypes<Type extends { type: string; libraryName: DynamicFormLibraryName }>(types: (Type | Type[])[]): Type[] { if (!types || !types.length) { return []; } return this.libraryNames.reduce((filteredTypes, libraryName) => { const libraryTypes = this.getLibraryTypes(libraryName, types, filteredTypes); return filteredTypes.concat(libraryTypes); }, []); } private getLibraryTypes<Type extends { type: string; libraryName: DynamicFormLibraryName }>( name: DynamicFormLibraryName, types: (Type | Type[])[], excludeTypes: Type[]): Type[] { const typesFlattened = this.getTypesFlattened(types); if (excludeTypes && excludeTypes.length) { const excludeTypeNames = excludeTypes.map(type => type.type); return typesFlattened.filter(type => type.libraryName === name && !excludeTypeNames.includes(type.type)); } return typesFlattened.filter(type => type.libraryName === name); } private getTypesFlattened<Type>(types: (Type | Type[])[]): Type[] { return types.reduce<Type[]>((result, type) => result.concat(type), []); } private getLibraryNames(): DynamicFormLibraryName[] { const referenceLibraryNames = this.library.references || []; const referenceLibraryNamesReverse = [ ...referenceLibraryNames ].reverse(); return [ this.library.name, ...referenceLibraryNamesReverse ]; } } |