Subversion Repositories Applications.papyrus

Compare Revisions

Ignore whitespace Rev 1317 → Rev 1318

/trunk/api/js/dojo/src/string/Builder.js
New file
0,0 → 1,102
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
 
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
 
http://dojotoolkit.org/community/licensing.shtml
*/
 
dojo.provide("dojo.string.Builder");
dojo.require("dojo.string");
dojo.require("dojo.lang.common");
dojo.string.Builder = function (str) {
this.arrConcat = (dojo.render.html.capable && dojo.render.html["ie"]);
var a = [];
var b = "";
var length = this.length = b.length;
if (this.arrConcat) {
if (b.length > 0) {
a.push(b);
}
b = "";
}
this.toString = this.valueOf = function () {
return (this.arrConcat) ? a.join("") : b;
};
this.append = function () {
for (var x = 0; x < arguments.length; x++) {
var s = arguments[x];
if (dojo.lang.isArrayLike(s)) {
this.append.apply(this, s);
} else {
if (this.arrConcat) {
a.push(s);
} else {
b += s;
}
length += s.length;
this.length = length;
}
}
return this;
};
this.clear = function () {
a = [];
b = "";
length = this.length = 0;
return this;
};
this.remove = function (f, l) {
var s = "";
if (this.arrConcat) {
b = a.join("");
}
a = [];
if (f > 0) {
s = b.substring(0, (f - 1));
}
b = s + b.substring(f + l);
length = this.length = b.length;
if (this.arrConcat) {
a.push(b);
b = "";
}
return this;
};
this.replace = function (o, n) {
if (this.arrConcat) {
b = a.join("");
}
a = [];
b = b.replace(o, n);
length = this.length = b.length;
if (this.arrConcat) {
a.push(b);
b = "";
}
return this;
};
this.insert = function (idx, s) {
if (this.arrConcat) {
b = a.join("");
}
a = [];
if (idx == 0) {
b = s + b;
} else {
var t = b.split("");
t.splice(idx, 0, s);
b = t.join("");
}
length = this.length = b.length;
if (this.arrConcat) {
a.push(b);
b = "";
}
return this;
};
this.append.apply(this, arguments);
};
 
/trunk/api/js/dojo/src/string/extras.js
New file
0,0 → 1,176
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
 
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
 
http://dojotoolkit.org/community/licensing.shtml
*/
 
dojo.provide("dojo.string.extras");
dojo.require("dojo.string.common");
dojo.require("dojo.lang.common");
dojo.require("dojo.lang.array");
dojo.string.substituteParams = function (template, hash) {
var map = (typeof hash == "object") ? hash : dojo.lang.toArray(arguments, 1);
return template.replace(/\%\{(\w+)\}/g, function (match, key) {
if (typeof (map[key]) != "undefined" && map[key] != null) {
return map[key];
}
dojo.raise("Substitution not found: " + key);
});
};
dojo.string.capitalize = function (str) {
if (!dojo.lang.isString(str)) {
return "";
}
if (arguments.length == 0) {
str = this;
}
var words = str.split(" ");
for (var i = 0; i < words.length; i++) {
words[i] = words[i].charAt(0).toUpperCase() + words[i].substring(1);
}
return words.join(" ");
};
dojo.string.isBlank = function (str) {
if (!dojo.lang.isString(str)) {
return true;
}
return (dojo.string.trim(str).length == 0);
};
dojo.string.encodeAscii = function (str) {
if (!dojo.lang.isString(str)) {
return str;
}
var ret = "";
var value = escape(str);
var match, re = /%u([0-9A-F]{4})/i;
while ((match = value.match(re))) {
var num = Number("0x" + match[1]);
var newVal = escape("&#" + num + ";");
ret += value.substring(0, match.index) + newVal;
value = value.substring(match.index + match[0].length);
}
ret += value.replace(/\+/g, "%2B");
return ret;
};
dojo.string.escape = function (type, str) {
var args = dojo.lang.toArray(arguments, 1);
switch (type.toLowerCase()) {
case "xml":
case "html":
case "xhtml":
return dojo.string.escapeXml.apply(this, args);
case "sql":
return dojo.string.escapeSql.apply(this, args);
case "regexp":
case "regex":
return dojo.string.escapeRegExp.apply(this, args);
case "javascript":
case "jscript":
case "js":
return dojo.string.escapeJavaScript.apply(this, args);
case "ascii":
return dojo.string.encodeAscii.apply(this, args);
default:
return str;
}
};
dojo.string.escapeXml = function (str, noSingleQuotes) {
str = str.replace(/&/gm, "&amp;").replace(/</gm, "&lt;").replace(/>/gm, "&gt;").replace(/"/gm, "&quot;");
if (!noSingleQuotes) {
str = str.replace(/'/gm, "&#39;");
}
return str;
};
dojo.string.escapeSql = function (str) {
return str.replace(/'/gm, "''");
};
dojo.string.escapeRegExp = function (str) {
return str.replace(/\\/gm, "\\\\").replace(/([\f\b\n\t\r[\^$|?*+(){}])/gm, "\\$1");
};
dojo.string.escapeJavaScript = function (str) {
return str.replace(/(["'\f\b\n\t\r])/gm, "\\$1");
};
dojo.string.escapeString = function (str) {
return ("\"" + str.replace(/(["\\])/g, "\\$1") + "\"").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r");
};
dojo.string.summary = function (str, len) {
if (!len || str.length <= len) {
return str;
}
return str.substring(0, len).replace(/\.+$/, "") + "...";
};
dojo.string.endsWith = function (str, end, ignoreCase) {
if (ignoreCase) {
str = str.toLowerCase();
end = end.toLowerCase();
}
if ((str.length - end.length) < 0) {
return false;
}
return str.lastIndexOf(end) == str.length - end.length;
};
dojo.string.endsWithAny = function (str) {
for (var i = 1; i < arguments.length; i++) {
if (dojo.string.endsWith(str, arguments[i])) {
return true;
}
}
return false;
};
dojo.string.startsWith = function (str, start, ignoreCase) {
if (ignoreCase) {
str = str.toLowerCase();
start = start.toLowerCase();
}
return str.indexOf(start) == 0;
};
dojo.string.startsWithAny = function (str) {
for (var i = 1; i < arguments.length; i++) {
if (dojo.string.startsWith(str, arguments[i])) {
return true;
}
}
return false;
};
dojo.string.has = function (str) {
for (var i = 1; i < arguments.length; i++) {
if (str.indexOf(arguments[i]) > -1) {
return true;
}
}
return false;
};
dojo.string.normalizeNewlines = function (text, newlineChar) {
if (newlineChar == "\n") {
text = text.replace(/\r\n/g, "\n");
text = text.replace(/\r/g, "\n");
} else {
if (newlineChar == "\r") {
text = text.replace(/\r\n/g, "\r");
text = text.replace(/\n/g, "\r");
} else {
text = text.replace(/([^\r])\n/g, "$1\r\n").replace(/\r([^\n])/g, "\r\n$1");
}
}
return text;
};
dojo.string.splitEscaped = function (str, charac) {
var components = [];
for (var i = 0, prevcomma = 0; i < str.length; i++) {
if (str.charAt(i) == "\\") {
i++;
continue;
}
if (str.charAt(i) == charac) {
components.push(str.substring(prevcomma, i));
prevcomma = i + 1;
}
}
components.push(str.substr(prevcomma));
return components;
};
 
/trunk/api/js/dojo/src/string/__package__.js
New file
0,0 → 1,13
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
 
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
 
http://dojotoolkit.org/community/licensing.shtml
*/
 
dojo.kwCompoundRequire({common:["dojo.string", "dojo.string.common", "dojo.string.extras", "dojo.string.Builder"]});
dojo.provide("dojo.string.*");
 
/trunk/api/js/dojo/src/string/common.js
New file
0,0 → 1,61
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
 
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
 
http://dojotoolkit.org/community/licensing.shtml
*/
 
dojo.provide("dojo.string.common");
dojo.string.trim = function (str, wh) {
if (!str.replace) {
return str;
}
if (!str.length) {
return str;
}
var re = (wh > 0) ? (/^\s+/) : (wh < 0) ? (/\s+$/) : (/^\s+|\s+$/g);
return str.replace(re, "");
};
dojo.string.trimStart = function (str) {
return dojo.string.trim(str, 1);
};
dojo.string.trimEnd = function (str) {
return dojo.string.trim(str, -1);
};
dojo.string.repeat = function (str, count, separator) {
var out = "";
for (var i = 0; i < count; i++) {
out += str;
if (separator && i < count - 1) {
out += separator;
}
}
return out;
};
dojo.string.pad = function (str, len, c, dir) {
var out = String(str);
if (!c) {
c = "0";
}
if (!dir) {
dir = 1;
}
while (out.length < len) {
if (dir > 0) {
out = c + out;
} else {
out += c;
}
}
return out;
};
dojo.string.padLeft = function (str, len, c) {
return dojo.string.pad(str, len, c, 1);
};
dojo.string.padRight = function (str, len, c) {
return dojo.string.pad(str, len, c, -1);
};