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));
示例#3
0
 this.list.save = (item, index) => {
     if (!isMatch(this.list.ngModel.$viewValue[index], item)) this.onItemChange({$event: item});
 };
示例#4
0
文件: view.js 项目: mybsktb/ant-d
 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;
  }, []);
示例#6
0
 find(HIDDEN, hidden => isMatch(notice, hidden))