/**
* Populate html element with provided data
*
* @module populateElement
*/
const populateElement = ( $target, data ) => {
const keys = Object.keys( data );
[].forEach.call( keys, ( key ) => {
const $elems = $target.querySelectorAll( `[data-map="${key}"]` );
if ( $elems ) {
[].forEach.call( $elems, ( $elem ) => {
const val = data[key];
if ( 'number' === typeof ( val ) || 'string' === typeof ( val ) ) {
const regex = new RegExp( '^/' );
if ( regex.test( val ) ) {
$elem.setAttribute( 'href', val );
} else {
$elem.textContent = val; // eslint-disable-line no-param-reassign
}
} else {
const attributes = Object.keys( val );
[].forEach.call( attributes, ( attr ) => {
$elem.setAttribute( attr, val[attr]);
});
}
});
}
});
};
export default populateElement;