UNPKG

10.3 kBJavaScriptView Raw
1/*! Snakeskin v7.3.0 (live) | https://github.com/SnakeskinTpl/Snakeskin/blob/master/LICENSE */
2(function(){'use strict';
3function q(){function y(a){return z[a]}function A(a){return B[a]||a}function f(a,b,e){b in a?Object.defineProperty(a,b,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[b]=e;return a}function r(a){return"function"===typeof a}function n(a,b){function e(){this.constructor=a}e.prototype=b.prototype;a.prototype=new e}function p(a,b){a=((C.exec(a)||[])[1]||"").trim();return!(!a||!isNaN(Number(a))||(b||D)[a])}var g=void 0,c=g={VERSION:[7,3,0]};g.UID=null;g.f={};g.Filters={};g.Vars={};g.LocalVars={};
4g.cache={};Array.isArray=Array.isArray||function(a){return"[object Array]"==={}.call(a)};String.prototype.trim=String.prototype.trim||function(){for(var a=this.replace(/^\s\s*/,""),b=a.length,e=/\s/;e.test(a.charAt(--b)););return a.substring(0,b+1)};c.HTMLObject=function(a,b){this.value=a;this.attr=b};c.StringBuffer=function(){return[]};c.Node=function(){};c.Node.prototype.length=function(){return this.value.childNodes.length};c.Node.prototype.textContent=function(){return this.value.textContent};
5c.DocumentFragment=function(a){this.renderMode=a;this.value=document.createDocumentFragment()};n(c.DocumentFragment,c.Node);c.DocumentFragment.prototype.appendChild=function(a){this.value.appendChild(a)};c.DocumentFragment.prototype.textContent=function(){for(var a=this.value.childNodes,b="",e=0;e<a.length;e++)b+=a[e].outerHTML||a[e].textContent;return b};c.Element=function(a,b){this.renderMode=b;this.value=document.createElement(a)};n(c.Element,c.Node);c.Element.prototype.appendChild=function(a){this.value.appendChild(a)};
6c.Element.prototype.setAttribute=function(a,b){this.value.setAttribute(a,b)};c.Element.prototype.textContent=function(){return this.value.outerHTML};c.Comment=function(a,b){this.renderMode=b;this.value=document.createComment(a)};n(c.Comment,c.Node);c.Text=function(a,b){this.renderMode=b;this.value=document.createTextNode(a)};n(c.Text,c.Node);c.inlineTags={html:{area:"href",base:"href",br:!0,col:!0,embed:"src",hr:!0,img:"src",input:"value",link:"href",meta:"content",param:"value",source:"src",track:"src",
7wbr:!0},xml:{}};c.appendChild=function(a,b,e){!1===b instanceof c.Node&&(b=new c.Text(String(b),e));a&&a.appendChild(b.value);return b};c.setAttribute=function(a,b,e){a.setAttribute(b,e instanceof c.Node?e.textContent():String(e))};var t=/\[native code]/.test(Object.keys&&Object.keys.toString())&&Object.keys;c.forEach=function(a,b){if(a){var e=0;if(Array.isArray(a)){e=a.length;for(var c=0;c<e&&!1!==b(a[c],c,a,{isFirst:0===c,isLast:c===e-1,length:e});c++);}else if(t){c=t(a);e=c.length;for(var d=0;d<
8e&&!1!==b(a[c[d]],c[d],a,{i:d,isFirst:0===d,isLast:d===e-1,length:e});d++);}else{if(4<=b.length)for(d in a){if(!a.hasOwnProperty(d))break;e++}d=0;for(c in a){if(!a.hasOwnProperty(c))break;if(!1===b(a[c],c,a,{i:d,isFirst:0===d,isLast:d===e-1,length:e}))break;d++}}}};c.forIn=function(a,b){if(a){var c=0,d=0;if(4<=b.length)for(var l in a)c++;for(var m in a){if(!1===b(a[m],m,a,{i:d,isFirst:0===d,isLast:d===c-1,length:c}))break;d++}}};c.decorate=function(a,b){c.forEach(a,function(a){return b=a(b)||b});
9b.decorators=a;return b};var E=/([\\/'*+?|()[\]{}.^$-])/g,C=/^\(*\s*(.*?)\s*\)*$/,D={"false":!0,"null":!0,"true":!0,undefined:!0},F={stringBuffer:!0,stringConcat:!0},u={"-":!0,":":!0,_:!0},G="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"===typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a};(function(){function a(a){this.value=a}function b(b){function c(d,f){try{var k=b[d](f),m=k.value;m instanceof
10a?Promise.resolve(m.value).then(function(a){c("next",a)},function(a){c("throw",a)}):e(k.done?"return":"normal",k.value)}catch(H){e("throw",H)}}function e(a,b){switch(a){case "return":d.resolve({value:b,done:!0});break;case "throw":d.reject(b);break;default:d.resolve({value:b,done:!1})}(d=d.next)?c(d.key,d.c):f=null}var d,f;this.a=function(a,b){return new Promise(function(e,k){e={key:a,c:b,resolve:e,reject:k,next:null};f?f=f.next=e:(d=f=e,c(a,b))})};"function"!==typeof b.return&&(this.return=void 0)}
11"function"===typeof Symbol&&Symbol.b&&(b.prototype[Symbol.b]=function(){return this});b.prototype.next=function(a){return this.a("next",a)};b.prototype.return=function(a){return this.a("return",a)};return{wrap:function(a){return function(){return new b(a.apply(this,arguments))}},g:function(b){return new a(b)}}})();var h;g={};f(g,"///","///");f(g,"/*","/*");f(g,"*/","*/");var w=f({"-":!0},"#",!0),I={};c.forEach(w,function(a,b){return I[b]=!0});g={"\\":!0,'"':!0,"'":!0,"/":!0};f(g,"`",!0);f(g,"{",!0);
12f(g,"/",!0);f(g,"/",!0);var J=(h={"\\":!0},f(h,"`",!0),f(h,"{",!0),f(h,"#",!0),f(h,"/",!0),f(h,"/",!0),f(h,"&",!0),f(h,".",!0),f(h,"|",!0),f(h," :: ".trim().charAt(0),!0),h);c.forEach(w,function(a,b){return J[b.charAt(0)]=!0});h={"\\":!0};f(h,"`",!0);f(h,"/",!0);f(h,"/",!0);f({"\\":!0},"$",!0);var K=[];c.forEach(u,function(a,b){K.push(b.replace(E,"\\$1"))});var x=/([^\s=]+)/,d=c.Filters;c.importFilters=function(a,b){var e=d;b&&c.forEach(b.split("."),function(a){e[a]=e[a]||{};e=e[a]});c.forEach(a,
13function(a,b){return e[b]=a});return this};c.setFilterParams=function(a,b){function c(a,b){for(var c,d=arguments.length,e=Array(2<d?d-2:0),f=2;f<d;f++)e[f-2]=arguments[f];if(a&&r(b)&&a instanceof b){var k;a.value=(k=l).call.apply(k,[this,a.value].concat(e));return a}return(c=l).call.apply(c,[this,a].concat(e))}var f=b.safe;f&&(b.bind=["Unsafe"].concat(b.bind||[]));var l=void 0;if("string"===typeof a)return f&&(l=d[a],d[a]=c),d[a]=d[a]||function(a){return a},d[a].ssFilterParams=b,d[a];f&&(l=a,a=c);
14a.ssFilterParams=b;return a};d.console={dir:function(a){var b;(b=console).dir.apply(b,arguments);return a},error:function(a){var b;(b=console).error.apply(b,arguments);return a},info:function(a){var b;(b=console).info.apply(b,arguments);return a},log:function(a){var b;(b=console).log.apply(b,arguments);return a},table:function(a){var b;(b=console).table.apply(b,arguments);return a},warn:function(a){var b;(b=console).warn.apply(b,arguments);return a}};var B={'"':"&quot;","&":"&amp;","'":"&#39;","<":"&lt;",
15">":"&gt;"},L=/[<>"'/]|&(?!#|[a-z]+;)/g,z={"&#39;":"'","&#x2F;":"/","&amp;":"&","&gt;":">","&lt;":"<","&quot;":'"'},M=/&amp;|&lt;|&gt;|&quot;|&#39;|&#x2F;/g;d.html=function(a,b,e,f,l){return!a||a instanceof c.Node?a:a instanceof c.HTMLObject?(c.forEach(a.value,function(c,e,k){a.attr?f[e]=k[e]=c[0]!==l?[d.html(c[0],b,a.attr,f,l)]:c:k[e]=d.html(c,b)}),a):r(b)&&a instanceof b?a.value:String(e?d[e](a):a).replace(L,A)};c.setFilterParams("html",{bind:["Unsafe","$attrType",function(a){return a.getVar("$attrs")},
16"TRUE"],test:function(a){return p(a)}});d.htmlObject=function(a){return a instanceof c.HTMLObject?"":a};c.setFilterParams("htmlObject",{test:function(a){return p(a)}});d.undef=function(a){return void 0!==a?a:""};c.setFilterParams("undef",{test:function(a){return p(a,{"false":!0,"null":!0,"true":!0})}});d.uhtml=function(a){return String(a).replace(M,y)};var N=/<\/?[^>]+>/g;d.stripTags=function(a){return String(a).replace(N,"")};var O=/%5B/g,P=/%5D/g;d.uri=function(a){return encodeURI(String(a)).replace(O,
17"[").replace(P,"]")};c.setFilterParams("uri",{safe:!0});d.upper=function(a){return String(a).toUpperCase()};c.setFilterParams("upper",{safe:!0});d.ucfirst=function(a){a=String(a);return a.charAt(0).toUpperCase()+a.slice(1)};c.setFilterParams("ucfirst",{safe:!0});d.lower=function(a){return String(a).toLowerCase()};c.setFilterParams("lower",{safe:!0});d.lcfirst=function(a){a=String(a);return a.charAt(0).toLowerCase()+a.slice(1)};c.setFilterParams("lcfirst",{safe:!0});d.trim=function(a){return String(a).trim()};
18c.setFilterParams("trim",{safe:!0});var Q=/\s{2,}/g;d.collapse=function(a){return String(a).replace(Q," ").trim()};c.setFilterParams("collapse",{safe:!0});d.truncate=function(a,b,c,d){a=String(a);if(!a||a.length<=b)return a;a=a.slice(0,b-1);b=a.length;for(var e=void 0;b--&&c;)if(" "===a.charAt(b))e=b;else if(void 0!==e)break;return(void 0!==e?a.slice(0,e):a)+(d?"&#8230;":"\u2026")};d.repeat=function(a,b){return Array(null!=b?b+1:3).join(a)};c.setFilterParams("repeat",{safe:!0});d.remove=function(a,
19b){return String(a).replace(b,"")};d.replace=function(a,b,c){return String(a).replace(b,c)};var R=/\${(.*?)}/g;d.tpl=function(a,b){return String(a).replace(R,function(a,c){return c in b?b[c]:""})};d.json=function(a){return JSON.stringify(a)};d.string=function(a){return"object"===("undefined"===typeof a?"undefined":G(a))&&!1===a instanceof String?JSON.stringify(a):String(a)};d.parse=function(a){return"string"===typeof a?JSON.parse(a):a};d["default"]=function(a,b){return void 0===a?b:a};c.setFilterParams("default",
20{"!undef":!0});var S=/\r?\n|\n/g;d.nl2br=function(a,b,e,f,g){a=a.split(S);for(var h="",k=0;k<a.length;k++){var l=a[k],v=k===a.length-1;f||F[e]?(h+=d.html(l),v||(h+="<br"+("xml"===g?"/":"")+">")):(c.appendChild(b,l,e),v||c.appendChild(b,new c.Element("br",e),e))}return h};c.setFilterParams("nl2br",{"!html":!0,bind:["$0",function(a){return"'"+a.renderMode+"'"},function(a){return a.stringResult},"$0",function(a){return"'"+a.doctype+"'"}]});d.attrKey=function(a){return(a=x.exec(String(a)))&&a[1]||"undefined"};
21d.attrKeyGroup=function(a){return(a=x.exec(String(a)))&&a[1]||""};var T=/(javascript)(:|;)/g;d.attrValue=function(a){return String(a).replace(T,"$1&#31;$2")};d.attr=function(a,b,e,f,h,g,n){function k(a,b){b=b||"";c.forEach(a,function(a,c){if(a!==n){if(a&&a.constructor===Object)return c=d.attrKeyGroup(c),k(a,b+(!c.length||u[c.slice(-1)]?c:c+"-"));c=b+c;for(var e=c[0].toLowerCase(),f=1;f<c.length;f++){var g=c.charAt(f),m=g.toUpperCase();m===g&&m!==g.toLowerCase()?e+="-"+g:e+=g}c=e.toLowerCase();h[c]=
22l[c]=[a]}});return new c.HTMLObject(l,"attrValue")}if("attrKey"!==f||!a||a.constructor!==Object)return r(b)&&a instanceof b?a:String(a);var l={};return k(a)};c.setFilterParams("attr",{"!html":!0,bind:["Unsafe",function(a){return"'"+a.doctype+"'"},"$attrType",function(a){return a.getVar("$attrs")},"TRUE","FALSE"],test:function(a){return p(a)}});return c}
23"object"===typeof exports&&"undefined"!==typeof module?module.exports=q():"function"===typeof define&&define.amd?define("Snakeskin",q):this.Snakeskin=q();
24}).call(this);