@web-atoms/core
Version:
153 lines (152 loc) • 9.48 kB
JavaScript
System.register([], function (_export, _context) {
"use strict";
_export("default", function (type) {
return {
EncodeType: type || "entity",
isEmpty: function (val) {
if (val) {
return val === null || val.length == 0 || /^\s+$/.test(val);
} else {
return true;
}
},
arr1: new Array(' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', '&Aelig;', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'Ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'œ', 'œ', 'š', 'š', 'ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '†', '‰', '‹', '›', '€', 'ƒ', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '′', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '←', '↑', '→', '↓', '↔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '⟨', '⟩', '◊', '♠', '♣', '♥', '♦'),
arr2: new Array(' ', '¡', '¢', '£', '¤', '¥', '¦', '§', '¨', '©', 'ª', '«', '¬', '­', '®', '¯', '°', '±', '²', '³', '´', 'µ', '¶', '·', '¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', '×', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'Þ', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ð', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', '÷', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'þ', 'ÿ', '"', '&', '<', '>', 'Œ', 'œ', 'Š', 'š', 'Ÿ', 'ˆ', '˜', ' ', ' ', ' ', '‌', '‍', '‎', '‏', '–', '—', '‘', '’', '‚', '“', '”', '„', '†', '‡', '‰', '‹', '›', '€', 'ƒ', 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω', 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω', 'ϑ', 'ϒ', 'ϖ', '•', '…', '′', '″', '‾', '⁄', '℘', 'ℑ', 'ℜ', '™', 'ℵ', '←', '↑', '→', '↓', '↔', '↵', '⇐', '⇑', '⇒', '⇓', '⇔', '∀', '∂', '∃', '∅', '∇', '∈', '∉', '∋', '∏', '∑', '−', '∗', '√', '∝', '∞', '∠', '∧', '∨', '∩', '∪', '∫', '∴', '∼', '≅', '≈', '≠', '≡', '≤', '≥', '⊂', '⊃', '⊄', '⊆', '⊇', '⊕', '⊗', '⊥', '⋅', '⌈', '⌉', '⌊', '⌋', '〈', '〉', '◊', '♠', '♣', '♥', '♦'),
HTML2Numerical: function (s) {
return this.swapArrayVals(s, this.arr1, this.arr2);
},
NumericalToHTML: function (s) {
return this.swapArrayVals(s, this.arr2, this.arr1);
},
numEncode: function (s) {
if (this.isEmpty(s)) return s;
var e = "";
for (var i = 0; i < s.length; i++) {
var c = s.charAt(i);
if (c < " " || c > "~") {
c = "&#" + c.charCodeAt() + ";";
}
e += c;
}
return e;
},
htmlDecode: function (s) {
var arr,
c,
m,
d = s;
if (this.isEmpty(d)) return d;
d = this.HTML2Numerical(d);
arr = d.match(/&#[0-9]{1,5};/g);
if (arr != null) {
for (var x = 0; x < arr.length; x++) {
m = arr[x];
c = m.substring(2, m.length - 1);
if (c >= -32768 && c <= 65535) {
d = d.replace(m, String.fromCharCode(c));
} else {
d = d.replace(m, "");
}
}
}
return d;
},
htmlEncode: function (s, dbl) {
if (s.url) {
s = s.url;
}
if (this.isEmpty(s)) return s;
dbl = dbl || false;
if (dbl) {
if (this.EncodeType == "numerical") {
s = s.replace(/&/g, "&");
} else {
s = s.replace(/&/g, "&");
}
}
s = this.XSSEncode(s, false);
if (this.EncodeType == "numerical" || !dbl) {
s = this.HTML2Numerical(s);
}
s = this.numEncode(s);
if (!dbl) {
s = s.replace(/&#/g, "##AMPHASH##");
if (this.EncodeType == "numerical") {
s = s.replace(/&/g, "&");
} else {
s = s.replace(/&/g, "&");
}
s = s.replace(/##AMPHASH##/g, "&#");
}
s = s.replace(/&#\d*([^\d;]|$)/g, "$1");
if (!dbl) {
s = this.correctEncoding(s);
}
if (this.EncodeType == "entity") {
s = this.NumericalToHTML(s);
}
return s;
},
XSSEncode: function (s, en) {
if (!this.isEmpty(s)) {
en = en || true;
if (en) {
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
} else {
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/</g, "<");
s = s.replace(/>/g, ">");
}
return s;
} else {
return s;
}
},
hasEncoded: function (s) {
if (/&#[0-9]{1,5};/g.test(s)) {
return true;
} else if (/&[A-Z]{2,6};/gi.test(s)) {
return true;
} else {
return false;
}
},
stripUnicode: function (s) {
return s.replace(/[^\x20-\x7E]/g, "");
},
correctEncoding: function (s) {
return s.replace(/(&)(amp;)+/, "$1");
},
swapArrayVals: function (s, arr1, arr2) {
if (this.isEmpty(s)) return s;
var re;
if (arr1 && arr2) {
if (arr1.length == arr2.length) {
for (var x = 0, i = arr1.length; x < i; x++) {
re = new RegExp(arr1[x], 'g');
s = s.replace(re, arr2[x]);
}
}
}
return s;
},
inArray: function (item, arr) {
for (var i = 0, x = arr.length; i < x; i++) {
if (arr[i] === item) {
return i;
}
}
return -1;
}
};
});
return {
setters: [],
execute: function () {}
};
});
//# sourceMappingURL=Encoder.js.map