UNPKG

@nova-ui/dashboards

Version:

Nova Dashboards is a framework designed to provide feature developers with a common solution for presenting data coming from various sources within a single view, as well as a set of predefined widget visualizations that are 100% configuration-driven and

59 lines 2.92 kB
"use strict"; // © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. Object.defineProperty(exports, "__esModule", { value: true }); exports.hasControlInErrorState = hasControlInErrorState; const forms_1 = require("@angular/forms"); /** * Checks whether given form has a field that should be visually marked as invalid. * Form is not in an error state if it's untouched even if it's invalid at that moment, * a user must first interact with the form before it can be considered as invalid. * 'invalid' form property should not be used for the purpose of this function, * it can be affected by its children form statuses, which can be considered as valid (untouched). * * @param parent */ function hasControlInErrorState(parent) { // FormGroup/FormArray/FormControl is not in an error state if it's either valid or untouched if (parent.valid || parent.untouched) { return false; } // FormGroup is considred valid if every child form is either valid or untouched if (parent instanceof forms_1.FormGroup) { for (const key of Object.keys(parent.controls)) { const control = parent.controls[key]; if (hasControlInErrorState(control)) { return true; } } } // FormArray is considred valid if every child form is either valid or untouched if (parent instanceof forms_1.FormArray) { for (let i = 0; i < parent.length; i++) { const control = parent.at(i); if (hasControlInErrorState(control)) { return true; } } } // Errors property contains only errors related to the currecnt form and it's not affected by any child forms return (parent.touched || parent.dirty) && !!parent.errors; } //# sourceMappingURL=has-control-in-error-state.js.map