/**
* @module saferHtml
* @description Escapes HTML special characters from a template literal.
*
* @since 1.0.0
*
* @param {string} templateData The template literal to be escaped.
*
* @return {string} Returns the template string, with HTML special characters escaped.
*
* @example
* import { saferHtml } from "@gravityforms/utils";
*
* function Example() {
* const str = 'my encoded <b>bold</b> text';
* const encodedString = saferHtml`<div>${ str }</div>`;
* }
*
*/
export default function( templateData ) {
let s = templateData[ 0 ];
for ( let i = 1; i < arguments.length; i++ ) {
const arg = String( arguments[ i ] );
// Escape special characters in the substitution.
s += arg.replace( /&/g, '&' )
.replace( /</g, '<' )
.replace( />/g, '>' );
// Don't escape special characters in the template.
s += templateData[ i ];
}
return s;
}