@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
13 lines • 2.73 kB
JavaScript
import { FormArray, FormGroup } from '@angular/forms';
import { tuiToInt } from '@taiga-ui/cdk/utils/math';
import { tuiIsControlEmpty } from './is-control-empty';
export function tuiCountFilledControls(control) {
if (control instanceof FormArray) {
return control.controls.reduce((acc, nestedControl) => acc + tuiCountFilledControls(nestedControl), 0);
}
if (control instanceof FormGroup) {
return Object.values(control.controls).reduce((acc, nestedControl) => acc + tuiCountFilledControls(nestedControl), 0);
}
return tuiToInt(!tuiIsControlEmpty(control));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtZmlsbGVkLWNvbnRyb2xzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3V0aWxzL21pc2NlbGxhbmVvdXMvY291bnQtZmlsbGVkLWNvbnRyb2xzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxTQUFTLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRWxELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUF3QjtJQUMzRCxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7UUFDOUIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FDMUIsQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsYUFBYSxDQUFDLEVBQ25FLENBQUMsQ0FDSixDQUFDO0tBQ0w7SUFFRCxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUU7UUFDOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQ3pDLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxFQUNuRSxDQUFDLENBQ0osQ0FBQztLQUNMO0lBRUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7QWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1BcnJheSwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge3R1aVRvSW50fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzL21hdGgnO1xuXG5pbXBvcnQge3R1aUlzQ29udHJvbEVtcHR5fSBmcm9tICcuL2lzLWNvbnRyb2wtZW1wdHknO1xuXG5leHBvcnQgZnVuY3Rpb24gdHVpQ291bnRGaWxsZWRDb250cm9scyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBudW1iZXIge1xuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgIHJldHVybiBjb250cm9sLmNvbnRyb2xzLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIG5lc3RlZENvbnRyb2wpID0+IGFjYyArIHR1aUNvdW50RmlsbGVkQ29udHJvbHMobmVzdGVkQ29udHJvbCksXG4gICAgICAgICAgICAwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGNvbnRyb2wuY29udHJvbHMpLnJlZHVjZShcbiAgICAgICAgICAgIChhY2MsIG5lc3RlZENvbnRyb2wpID0+IGFjYyArIHR1aUNvdW50RmlsbGVkQ29udHJvbHMobmVzdGVkQ29udHJvbCksXG4gICAgICAgICAgICAwLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0dWlUb0ludCghdHVpSXNDb250cm9sRW1wdHkoY29udHJvbCkpO1xufVxuIl19