function resolveRelations(row, headers, relations, foreignKey) { // Prepare helpers - needed data structures const keyedRow = new Map(zip(headers, row)) const fields = zip(foreignKey.fields, foreignKey.reference.fields) const reference = relations[foreignKey.reference.resource] if (!reference) { return row } // Collect values - valid if all null let valid = true const values = {} for (const [field, refField] of fields) { if (field && refField) { values[refField] = keyedRow.get(field) if (keyedRow.get(field) !== null) { valid = false } } } // Resolve values - valid if match found if (!valid) { for (const refValues of reference) { if (isMatch(refValues, values)) { for (const [field] of fields) keyedRow.set(field, refValues) valid = true break } } } return valid ? Array.from(keyedRow.values()) : null }
return state.messages.filter(item => isMatch(item, criteria));
this.list.save = (item, index) => { if (!isMatch(this.list.ngModel.$viewValue[index], item)) this.onItemChange({$event: item}); };
return this.rows.filter(row => isMatch(row, query));
return Object.keys(entities).reduce((memo, id) => { const entity = entities[id]; return isMatch(entity, criteria) ? [...memo, entity] : memo; }, []);
find(HIDDEN, hidden => isMatch(notice, hidden))