import { localize } from '../services/localization'; /** * Localizes the given property and sets the inner-text of the node to its result */ export default (el, binding) => { if (binding.value !== binding.oldValue || !el.innerText) { const hasValue = !!binding.value; const isObject = typeof binding.value === 'object'; let key = hasValue ? (isObject ? binding.value.key : binding.value) : null; let options = hasValue && isObject ? binding.value : null; let html = isObject && binding.value ? (binding.value.html || binding.arg === 'html') : binding.arg === 'html'; const result = hasValue ? localize(key, options) : ''; // set content as html if (html) { el.innerHTML = result; } // set title else if (binding.arg === 'title') { el.title = result; } // set attribute else if (binding.arg) { el.setAttribute(binding.arg, result); } // set content as plain text else { el.innerText = result; } } };