HEX
Server: Apache
System: Linux webm005.cluster121.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User: adventp (418412)
PHP: 7.4.33
Disabled: _dyuweyrj4,_dyuweyrj4r,dl
Upload Files
File: /home/adventp/www/wp-content/plugins/js_composer/assets/js/lib/template.js
if ( !window.vc ) {
	window.vc = {};
}
(function () {
	'use strict';

	vc.templateOptions = {
		default: {
			evaluate: /<%([\s\S]+?)%>/g,
			interpolate: /<%=([\s\S]+?)%>/g,
			escape: /<%-([\s\S]+?)%>/g
		},
		custom: {
			evaluate: /<#([\s\S]+?)#>/g,
			interpolate: /\{\{\{([\s\S]+?)\}\}\}/g,
			escape: /\{\{([^\}]+?)\}\}(?!\})/g
		}

	};

	// Underscore.js 1.8.3
	// http://underscorejs.org
	// (c) 2009-2016 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
	// Underscore may be freely distributed under the MIT license.

	// When customizing `templateSettings`, if you don't want to define an
	// interpolation, evaluation or escaping regex, we need one that is
	// guaranteed not to match.
	var noMatch = /(.)^/;

	// Certain characters need to be escaped so that they can be put into a
	// string literal.
	var escapes = {
		"'": "'",
		'\\': '\\',
		'\r': 'r',
		'\n': 'n',
		'\u2028': 'u2028',
		'\u2029': 'u2029'
	};

	var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g;

	var escapeChar = function ( match ) {
		return '\\' + escapes[ match ];
	};

	/**
	 *
	 * @param text
	 * @param settings
	 * @returns Function
	 */
	vc.template = function ( text, settings ) {
		settings = _.defaults( {}, settings, vc.templateOptions.default );

		// Combine delimiters into one regular expression via alternation.
		var matcher = RegExp( [
			(settings.escape || noMatch).source,
			(settings.interpolate || noMatch).source,
			(settings.evaluate || noMatch).source
		].join( '|' ) + '|$', 'g' );

		// Compile the template source, escaping string literals appropriately.
		var index = 0;
		var source = "__p+='";
		text.replace( matcher, function ( match, escape, interpolate, evaluate, offset ) {
			source += text.slice( index, offset ).replace( escapeRegExp, escapeChar );
			index = offset + match.length;

			if ( escape ) {
				source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'";
			} else if ( interpolate ) {
				source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
			} else if ( evaluate ) {
				source += "';\n" + evaluate + "\n__p+='";
			}

			// Adobe VMs need the match returned to produce the correct offset.
			return match;
		} );
		source += "';\n";

		// If a variable is not specified, place data values in local scope.
		if ( !settings.variable ) {
			source = 'with(obj||{}){\n' + source + '}\n';
		}

		source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n';

		var render;
		try {
			/*jslint evil: true */
			render = new Function( settings.variable || 'obj', '_', source );
		} catch ( e ) {
			e.source = source;
			throw e;
		}

		var template = function ( data ) {
			return render.call( this, data, _ );
		};

		// Provide the compiled source as a convenience for precompilation.
		var argument = settings.variable || 'obj';
		template.source = 'function(' + argument + '){\n' + source + '}';

		return template;
	};
})();