function createPropertyView(key, value, config, parentSection) {
  let rows = []
  if ($.isPlainObject(value)) {
    rows = rows.concat(sectionView(key, value, parentSection))
  } else if(!isEmpty(value) && config.type != 'hidden') {
    let keyText = config.label(key)
    let $valueView = config.view(value)
    if (keyText && $valueView && $valueView.jquery) {
      rows.push(
        $('<tr>').append(
          $('<td class="key">').text(keyText),
          $('<td class="value">').append($valueView))
      )
    }
  }
  return rows
}
// Create view for property (may produce multiple table rows)
Create view for property (may produce multiple table rows)
Create view for property ( may produce multiple table rows )
function createPropertyView(key, value, config, parentSection) {
  let rows = []
  if ($.isPlainObject(value)) {
    rows = rows.concat(sectionView(key, value, parentSection))
  } else if(!isEmpty(value) && config.type != 'hidden') {
    let keyText = config.label(key)
    let $valueView = config.view(value)
    if (keyText && $valueView && $valueView.jquery) {
      rows.push(
        $('<tr>').append(
          $('<td class="key">').text(keyText),
          $('<td class="value">').append($valueView))
      )
    }
  }
  return rows
}
function createPropertyView ( key , value , config , parentSection ) { let rows = [ ] if ( $ . isPlainObject ( value ) ) { rows = rows . concat ( sectionView ( key , value , parentSection ) ) } else if ( ! isEmpty ( value ) && config . type != 'hidden' ) { let keyText = config . label ( key ) let $valueView = config . view ( value ) if ( keyText && $valueView && $valueView . jquery ) { rows . push ( $ ( '<tr>' ) . append ( $ ( '<td class="key">' ) . text ( keyText ) , $ ( '<td class="value">' ) . append ( $valueView ) ) ) } } return rows }
Create view for property (may produce multiple table rows)
Create view for property ( may produce multiple table rows )