|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var nativeIndexOf = Array.prototype.indexOf; |
|
var indexOf = function(list, elem) { |
|
if (list == null) { |
|
return -1; |
|
} |
|
if (nativeIndexOf && list.indexOf === nativeIndexOf) { |
|
return list.indexOf(elem); |
|
} |
|
var i = 0; |
|
var l = list.length; |
|
for (; i < l; i++) { |
|
if (list[i] === elem) { |
|
return i; |
|
} |
|
} |
|
return -1; |
|
}; |
|
|
|
|
|
|
|
|
|
var contains = function(list, elem) { |
|
return indexOf(list, elem) !== -1; |
|
}; |
|
|
|
|
|
|
|
|
|
var deflt = function(setting, defaultIfUndefined) { |
|
return setting === undefined ? defaultIfUndefined : setting; |
|
}; |
|
|
|
|
|
|
|
var uppercase = /([A-Z])/g; |
|
var hyphenate = function(str) { |
|
return str.replace(uppercase, "-$1").toLowerCase(); |
|
}; |
|
|
|
var ESCAPE_LOOKUP = { |
|
"&": "&", |
|
">": ">", |
|
"<": "<", |
|
"\"": """, |
|
"'": "'", |
|
}; |
|
|
|
var ESCAPE_REGEX = /[&><"']/g; |
|
|
|
function escaper(match) { |
|
return ESCAPE_LOOKUP[match]; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function escape(text) { |
|
return ("" + text).replace(ESCAPE_REGEX, escaper); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
var setTextContent; |
|
if (typeof document !== "undefined") { |
|
var testNode = document.createElement("span"); |
|
if ("textContent" in testNode) { |
|
setTextContent = function(node, text) { |
|
node.textContent = text; |
|
}; |
|
} else { |
|
setTextContent = function(node, text) { |
|
node.innerText = text; |
|
}; |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
function clearNode(node) { |
|
setTextContent(node, ""); |
|
} |
|
|
|
module.exports = { |
|
contains: contains, |
|
deflt: deflt, |
|
escape: escape, |
|
hyphenate: hyphenate, |
|
indexOf: indexOf, |
|
setTextContent: setTextContent, |
|
clearNode: clearNode, |
|
}; |
|
|