mirror of
https://github.com/owncloudarchive/contacts.git
synced 2024-12-04 15:24:35 +01:00
88 lines
2.6 KiB
JavaScript
88 lines
2.6 KiB
JavaScript
|
/*
|
||
|
* JavaScript Templates 2.4.1
|
||
|
* https://github.com/blueimp/JavaScript-Templates
|
||
|
*
|
||
|
* Copyright 2011, Sebastian Tschan
|
||
|
* https://blueimp.net
|
||
|
*
|
||
|
* Licensed under the MIT license:
|
||
|
* http://www.opensource.org/licenses/MIT
|
||
|
*
|
||
|
* Inspired by John Resig's JavaScript Micro-Templating:
|
||
|
* http://ejohn.org/blog/javascript-micro-templating/
|
||
|
*/
|
||
|
|
||
|
/*jslint evil: true, regexp: true, unparam: true */
|
||
|
/*global document, define */
|
||
|
|
||
|
(function ($) {
|
||
|
"use strict";
|
||
|
var tmpl = function (str, data) {
|
||
|
var f = !/[^\w\-\.:]/.test(str) ? tmpl.cache[str] = tmpl.cache[str] ||
|
||
|
tmpl(tmpl.load(str)) :
|
||
|
new Function(
|
||
|
tmpl.arg + ',tmpl',
|
||
|
"var _e=tmpl.encode" + tmpl.helper + ",_s='" +
|
||
|
str.replace(tmpl.regexp, tmpl.func) +
|
||
|
"';return _s;"
|
||
|
);
|
||
|
return data ? f(data, tmpl) : function (data) {
|
||
|
return f(data, tmpl);
|
||
|
};
|
||
|
};
|
||
|
tmpl.cache = {};
|
||
|
tmpl.load = function (id) {
|
||
|
return document.getElementById(id).innerHTML;
|
||
|
};
|
||
|
tmpl.regexp = /([\s'\\])(?!(?:[^{]|\{(?!%))*%\})|(?:\{%(=|#)([\s\S]+?)%\})|(\{%)|(%\})/g;
|
||
|
tmpl.func = function (s, p1, p2, p3, p4, p5) {
|
||
|
if (p1) { // whitespace, quote and backspace in HTML context
|
||
|
return {
|
||
|
"\n": "\\n",
|
||
|
"\r": "\\r",
|
||
|
"\t": "\\t",
|
||
|
" " : " "
|
||
|
}[p1] || "\\" + p1;
|
||
|
}
|
||
|
if (p2) { // interpolation: {%=prop%}, or unescaped: {%#prop%}
|
||
|
if (p2 === "=") {
|
||
|
return "'+_e(" + p3 + ")+'";
|
||
|
}
|
||
|
return "'+(" + p3 + "==null?'':" + p3 + ")+'";
|
||
|
}
|
||
|
if (p4) { // evaluation start tag: {%
|
||
|
return "';";
|
||
|
}
|
||
|
if (p5) { // evaluation end tag: %}
|
||
|
return "_s+='";
|
||
|
}
|
||
|
};
|
||
|
tmpl.encReg = /[<>&"'\x00]/g;
|
||
|
tmpl.encMap = {
|
||
|
"<" : "<",
|
||
|
">" : ">",
|
||
|
"&" : "&",
|
||
|
"\"" : """,
|
||
|
"'" : "'"
|
||
|
};
|
||
|
tmpl.encode = function (s) {
|
||
|
/*jshint eqnull:true */
|
||
|
return (s == null ? "" : "" + s).replace(
|
||
|
tmpl.encReg,
|
||
|
function (c) {
|
||
|
return tmpl.encMap[c] || "";
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
tmpl.arg = "o";
|
||
|
tmpl.helper = ",print=function(s,e){_s+=e?(s==null?'':s):_e(s);}" +
|
||
|
",include=function(s,d){_s+=tmpl(s,d);}";
|
||
|
if (typeof define === "function" && define.amd) {
|
||
|
define(function () {
|
||
|
return tmpl;
|
||
|
});
|
||
|
} else {
|
||
|
$.tmpl = tmpl;
|
||
|
}
|
||
|
}(this));
|