Fixed frontend properties and updated MochiKit version

This commit is contained in:
Giulio Cesare Solaroli 2012-03-17 21:08:23 +00:00
parent bf7d8191a3
commit 928f3f3ed3
43 changed files with 626 additions and 529 deletions

View File

@ -3,6 +3,9 @@
"mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/",
"mochikit.version": "1249"
},
"html.template": "index_template.html",
"js": [
"MochiKit/Base.js",
"MochiKit/Iter.js",

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Async', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'Async', '1.5', ['Base']);
/** @id MochiKit.Async.Deferred */
MochiKit.Async.Deferred = function (/* optional */ canceller) {
@ -20,28 +20,32 @@ MochiKit.Async.Deferred = function (/* optional */ canceller) {
this.canceller = canceller;
this.silentlyCancelled = false;
this.chained = false;
this.finalized = false;
};
MochiKit.Async.Deferred.prototype = {
/** @id MochiKit.Async.Deferred.prototype.repr */
repr: function () {
var state;
if (this.fired == -1) {
state = 'unfired';
} else if (this.fired === 0) {
state = 'success';
} else {
state = 'error';
}
return 'Deferred(' + this.id + ', ' + state + ')';
return 'Deferred(' + this.id + ', ' + this.state() + ')';
},
toString: MochiKit.Base.forwardCall("repr"),
_nextId: MochiKit.Base.counter(),
/** @id MochiKit.Async.Deferred.prototype.state */
state: function () {
if (this.fired == -1) {
return 'unfired';
} else if (this.fired === 0) {
return 'success';
} else {
return 'error';
}
},
/** @id MochiKit.Async.Deferred.prototype.cancel */
cancel: function () {
cancel: function (e) {
var self = MochiKit.Async;
if (this.fired == -1) {
if (this.canceller) {
@ -50,10 +54,15 @@ MochiKit.Async.Deferred.prototype = {
this.silentlyCancelled = true;
}
if (this.fired == -1) {
this.errback(new self.CancelledError(this));
if (typeof(e) === 'string') {
e = new self.GenericError(e);
} else if (!(e instanceof Error)) {
e = new self.CancelledError(this);
}
this.errback(e);
}
} else if ((this.fired === 0) && (this.results[0] instanceof self.Deferred)) {
this.results[0].cancel();
this.results[0].cancel(e);
}
},
@ -65,7 +74,9 @@ MochiKit.Async.Deferred.prototype = {
***/
this.fired = ((res instanceof Error) ? 1 : 0);
this.results[this.fired] = res;
this._fire();
if (this.paused === 0) {
this._fire();
}
},
_check: function () {
@ -129,6 +140,9 @@ MochiKit.Async.Deferred.prototype = {
if (this.chained) {
throw new Error("Chained Deferreds can not be re-used");
}
if (this.finalized) {
throw new Error("Finalized Deferreds can not be re-used");
}
this.chain.push([cb, eb]);
if (this.fired >= 0) {
this._fire();
@ -136,6 +150,24 @@ MochiKit.Async.Deferred.prototype = {
return this;
},
/** @id MochiKit.Async.Deferred.prototype.setFinalizer */
setFinalizer: function (fn) {
if (this.chained) {
throw new Error("Chained Deferreds can not be re-used");
}
if (this.finalized) {
throw new Error("Finalized Deferreds can not be re-used");
}
if (arguments.length > 1) {
fn = MochiKit.Base.partial.apply(null, arguments);
}
this._finalizer = fn;
if (this.fired >= 0) {
this._fire();
}
return this;
},
_fire: function () {
/***
@ -160,11 +192,8 @@ MochiKit.Async.Deferred.prototype = {
fired = ((res instanceof Error) ? 1 : 0);
if (res instanceof MochiKit.Async.Deferred) {
cb = function (res) {
self._resback(res);
self.paused--;
if ((self.paused === 0) && (self.fired >= 0)) {
self._fire();
}
self._resback(res);
};
this.paused++;
}
@ -178,6 +207,10 @@ MochiKit.Async.Deferred.prototype = {
}
this.fired = fired;
this.results[fired] = res;
if (this.chain.length == 0 && this.paused === 0 && this._finalizer) {
this.finalized = true;
this._finalizer(res);
}
if (cb && this.paused) {
// this is for "tail recursion" in case the dependent deferred
// is already fired
@ -249,7 +282,7 @@ MochiKit.Base.update(MochiKit.Async, {
var status = null;
try {
status = this.status;
if (!status && m.isNotEmpty(this.responseText)) {
if (!status && (this.response || m.isNotEmpty(this.responseText))) {
// 0 or undefined seems to mean cached or local
status = 304;
}
@ -337,7 +370,8 @@ MochiKit.Base.update(MochiKit.Async, {
username: undefined,
password: undefined,
headers: undefined,
mimeType: undefined
mimeType: undefined,
responseType: undefined
*/
}, opts);
var self = MochiKit.Async;
@ -371,6 +405,9 @@ MochiKit.Base.update(MochiKit.Async, {
req.setRequestHeader(name, value);
}
}
if ("responseType" in opts && "responseType" in req) {
req.responseType = opts.responseType;
}
return self.sendXMLHttpRequest(req, opts.sendContent);
},
@ -404,16 +441,44 @@ MochiKit.Base.update(MochiKit.Async, {
return d;
},
/** @id MochiKit.Async.loadScript */
loadScript: function (url) {
var d = new MochiKit.Async.Deferred();
var script = document.createElement("script");
script.type = "text/javascript";
script.src = url;
script.onload = function () {
script.onload = null;
script.onerror = null;
script.onreadystatechange = null;
script = null;
d.callback();
};
script.onerror = function (msg) {
script.onload = null;
script.onerror = null;
script.onreadystatechange = null;
script = null;
msg = "Failed to load script at " + url + ": " + msg;
d.errback(new URIError(msg, url));
}
script.onreadystatechange = function () {
if (script.readyState == "loaded" || script.readyState == "complete") {
script.onload();
} else {
// IE doesn't bother to report errors...
MochiKit.Async.callLater(10, script.onerror, "Script loading timed out")
}
};
document.getElementsByTagName("head")[0].appendChild(script);
return d;
},
/** @id MochiKit.Async.wait */
wait: function (seconds, /* optional */value) {
var d = new MochiKit.Async.Deferred();
var m = MochiKit.Base;
if (typeof(value) != 'undefined') {
d.addCallback(function () { return value; });
}
var timeout = setTimeout(
m.bind("callback", d),
Math.floor(seconds * 1000));
var cb = MochiKit.Base.bind("callback", d, value);
var timeout = setTimeout(cb, Math.floor(seconds * 1000));
d.canceller = function () {
try {
clearTimeout(timeout);
@ -510,6 +575,7 @@ MochiKit.Async.DeferredList = function (list, /* optional */fireOnOneCallback, f
};
MochiKit.Async.DeferredList.prototype = new MochiKit.Async.Deferred();
MochiKit.Async.DeferredList.prototype.constructor = MochiKit.Async.DeferredList;
MochiKit.Async.DeferredList.prototype._cbDeferred = function (index, succeeded, result) {
this.resultList[index] = [succeeded, result];

View File

@ -8,33 +8,43 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
if (typeof(MochiKit) == 'undefined') {
MochiKit = {};
}
// MochiKit module (namespace)
var MochiKit = MochiKit || {};
if (typeof(MochiKit.__export__) == "undefined") {
MochiKit.__export__ = true;
}
if (typeof(MochiKit.Base) == 'undefined') {
MochiKit.Base = {};
}
MochiKit.NAME = "MochiKit";
MochiKit.VERSION = "1.5";
MochiKit.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]";
};
MochiKit.toString = function () {
return this.__repr__();
};
// MochiKit.Base module
MochiKit.Base = MochiKit.Base || {};
/**
* Registers a new MochiKit module. This function will insert a new
* property into the "MochiKit" object, making sure that all
* dependency modules have already been inserted. It will also make
* sure that the appropriate properties and default module functions
* are defined.
* Creates a new module in a parent namespace. This function will
* create a new empty module object with "NAME", "VERSION",
* "toString" and "__repr__" properties. This object will be inserted into the parent object
* using the specified name (i.e. parent[name] = module). It will
* also verify that all the dependency modules are defined in the
* parent, or an error will be thrown.
*
* @param {Object} parent the parent module (use "this" or "window" for
* a global module)
* @param {String} name the module name, e.g. "Base"
* @param {String} version the module version, e.g. "1.5"
* @param {Array} deps the array of module dependencies (as strings)
* @param {Array} [deps] the array of module dependencies (as strings)
*/
MochiKit.Base._module = function (name, version, deps) {
if (!(name in MochiKit)) {
MochiKit[name] = {};
}
var module = MochiKit[name];
module.NAME = "MochiKit." + name;
MochiKit.Base.module = function (parent, name, version, deps) {
var module = parent[name] = parent[name] || {};
var prefix = (parent.NAME ? parent.NAME + "." : "");
module.NAME = prefix + name;
module.VERSION = version;
module.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]";
@ -42,14 +52,15 @@ MochiKit.Base._module = function (name, version, deps) {
module.toString = function () {
return this.__repr__();
};
for (var i = 0; i < deps.length; i++) {
if (!(deps[i] in MochiKit)) {
throw 'MochiKit.' + name + ' depends on MochiKit.' + deps[i] + '!';
for (var i = 0; deps != null && i < deps.length; i++) {
if (!(deps[i] in parent)) {
throw module.NAME + ' depends on ' + prefix + deps[i] + '!';
}
}
}
return module;
};
MochiKit.Base._module("Base", "1.5", []);
MochiKit.Base.module(MochiKit, "Base", "1.5", []);
/** @id MochiKit.Base.update */
MochiKit.Base.update = function (self, obj/*, ... */) {
@ -240,6 +251,7 @@ MochiKit.Base.update(MochiKit.Base, {
_newNamedError: function (module, name, func) {
func.prototype = new MochiKit.Base.NamedError(module.NAME + "." + name);
func.prototype.constructor = func;
module[name] = func;
},
@ -351,7 +363,7 @@ MochiKit.Base.update(MochiKit.Base, {
} else if (typeof(value) === "number" || value instanceof Number) {
return !isNaN(value) && value != 0;
} else if (value != null && typeof(value.length) === "number") {
return value.length !== 0
return value.length !== 0;
} else {
return value != null;
}
@ -675,6 +687,9 @@ MochiKit.Base.update(MochiKit.Base, {
newfunc.im_self = im_self;
newfunc.im_func = im_func;
newfunc.im_preargs = im_preargs;
if (typeof(im_func.NAME) == 'string') {
newfunc.NAME = "bind(" + im_func.NAME + ",...)";
}
return newfunc;
},
@ -788,11 +803,14 @@ MochiKit.Base.update(MochiKit.Base, {
}
return MochiKit.Base.reprRegistry.match(o);
} catch (e) {
if (typeof(o.NAME) == 'string' && (
o.toString == Function.prototype.toString ||
o.toString == Object.prototype.toString
)) {
return o.NAME;
try {
if (typeof(o.NAME) == 'string' && (
o.toString == Function.prototype.toString ||
o.toString == Object.prototype.toString
)) {
return o.NAME;
}
} catch (ignore) {
}
}
try {
@ -840,16 +858,13 @@ MochiKit.Base.update(MochiKit.Base, {
/** @id MochiKit.Base.evalJSON */
evalJSON: function () {
return eval("(" + MochiKit.Base._filterJSON(arguments[0]) + ")");
evalJSON: function (jsonText) {
return eval("(" + MochiKit.Base._filterJSON(jsonText) + ")");
},
_filterJSON: function (s) {
var m = s.match(/^\s*\/\*(.*)\*\/\s*$/);
if (m) {
return m[1];
}
return s;
return (m) ? m[1] : s;
},
/** @id MochiKit.Base.serializeJSON */
@ -894,6 +909,12 @@ MochiKit.Base.update(MochiKit.Base, {
// short-circuit for objects that support "json" serialization
// if they return "self" then just pass-through...
var newObj;
if (typeof(o.toJSON) == "function") {
newObj = o.toJSON();
if (o !== newObj) {
return me(newObj);
}
}
if (typeof(o.__json__) == "function") {
newObj = o.__json__();
if (o !== newObj) {
@ -1100,7 +1121,7 @@ MochiKit.Base.update(MochiKit.Base, {
if (data.length === 0) {
throw new TypeError('median() requires at least one argument');
}
data.sort(compare);
data.sort(MochiKit.Base.compare);
if (data.length % 2 == 0) {
var upper = data.length / 2;
return (data[upper] + data[upper - 1]) / 2;
@ -1290,19 +1311,45 @@ MochiKit.Base.AdapterRegistry.prototype = {
}
};
MochiKit.Base._exportSymbols = function (globals, module) {
if (MochiKit.__export__ === false || module.__export__ === false) {
return;
}
for (var k in module) {
var v = module[k];
if (v != null) {
var okName = (k[0] !== "_" && k !== "toString");
if (v.__export__ === true || (v.__export__ !== false && okName)) {
globals[k] = module[k];
/**
* Exports all symbols from one or more modules into the specified
* namespace (or scope). This is similar to MochiKit.Base.update(),
* except for special handling of the "__export__" flag, contained
* sub-modules (exported recursively), and names starting with "_".
*
* @param {Object} namespace the object or scope to modify
* @param {Object} module the module to export
*/
MochiKit.Base.moduleExport = function (namespace, module/*, ...*/) {
var SKIP = { toString: true, NAME: true, VERSION: true };
var mods = MochiKit.Base.extend([], arguments, 1);
while ((module = mods.shift()) != null) {
for (var k in module) {
var v = module[k];
if (v != null) {
var flagSet = (typeof(v.__export__) == 'boolean');
var nameValid = (k[0] !== "_" && !SKIP[k]);
if (flagSet ? v.__export__ : nameValid) {
if (typeof(v) == 'object' && v.NAME && v.VERSION) {
mods.push(v);
} else {
namespace[k] = module[k];
}
}
}
}
}
return namespace;
};
/**
* Identical to moduleExport, but also considers the global and
* module-specific "__export__" flag.
*/
MochiKit.Base._exportSymbols = function (namespace, module) {
if (MochiKit.__export__ !== false && module.__export__ !== false) {
MochiKit.Base.moduleExport(namespace, module);
}
};
/**
@ -1321,7 +1368,7 @@ MochiKit.Base._exportSymbols = function (globals, module) {
* @param {String} version the first version when the source function
* was deprecated (e.g. '1.4')
* @param {Boolean} [exportable] the exportable function flag,
* defaults to true
* defaults to false
*/
MochiKit.Base._deprecated = function (module, name, target, version, exportable) {
if (typeof(module) === 'string') {
@ -1349,11 +1396,9 @@ MochiKit.Base._deprecated = function (module, name, target, version, exportable)
}
return MochiKit[targetModule][targetName].apply(this, arguments);
};
if (exportable === false) {
func.__export__ = false;
}
func.__export__ = (exportable === true);
module[name] = func;
}
};
MochiKit.Base.__new__ = function () {
var m = this;
@ -1362,8 +1407,8 @@ MochiKit.Base.__new__ = function () {
m.noop = m.operator.identity;
// Backwards compat
m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3', false);
m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3', false);
m._deprecated(m, 'forward', 'MochiKit.Base.forwardCall', '1.3');
m._deprecated(m, 'find', 'MochiKit.Base.findValue', '1.3');
if (typeof(encodeURIComponent) != "undefined") {
/** @id MochiKit.Base.urlEncode */
@ -1375,7 +1420,7 @@ MochiKit.Base.__new__ = function () {
return escape(unencoded
).replace(/\+/g, '%2B'
).replace(/\"/g,'%22'
).rval.replace(/\'/g, '%27');
).replace(/\'/g, '%27');
};
}
@ -1385,6 +1430,7 @@ MochiKit.Base.__new__ = function () {
this.name = name;
};
m.NamedError.prototype = new Error();
m.NamedError.prototype.constructor = m.NamedError;
m.update(m.NamedError.prototype, {
repr: function () {
if (this.message && this.message != this.name) {
@ -1409,6 +1455,8 @@ MochiKit.Base.__new__ = function () {
m.isCallable = m.typeMatcher('function');
/** @id MochiKit.Base.isUndefined */
m.isUndefined = m.typeMatcher('undefined');
/** @id MochiKit.Base.isValue */
m.isValue = m.typeMatcher('boolean', 'number', 'string');
/** @id MochiKit.Base.merge */
m.merge = m.partial(m.update, null);

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Color', '1.5', ['Base', 'DOM', 'Style']);
MochiKit.Base.module(MochiKit, 'Color', '1.5', ['Base', 'DOM', 'Style']);
/** @id MochiKit.Color.Color */
MochiKit.Color.Color = function (red, green, blue, alpha) {
@ -112,7 +112,7 @@ MochiKit.Color.Color.prototype = {
/** @id MochiKit.Color.Color.prototype.isLight */
isLight: function () {
return this.asHSL().b > 0.5;
return this.asHSL().l > 0.5;
},
/** @id MochiKit.Color.Color.prototype.isDark */
@ -641,19 +641,10 @@ MochiKit.Base.update(MochiKit.Color, {
yellow: [1, 1, 0]
};
var makeColor = function (name, r, g, b, a) {
var rval = this.fromRGB(r, g, b, a);
this[name] = function () { return rval; };
return rval;
};
for (var k in colors) {
var name = k + "Color";
var bindArgs = m.concat(
[makeColor, this.Color, name],
colors[k]
);
this.Color[name] = m.bind.apply(null, bindArgs);
var value = this.Color.fromRGB.apply(this.Color, colors[k]);
this.Color[name] = m.partial(m.operator.identity, value);
}
var isColor = function () {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('DOM', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'DOM', '1.5', ['Base']);
MochiKit.Base.update(MochiKit.DOM, {
@ -297,11 +297,11 @@ MochiKit.Base.update(MochiKit.DOM, {
updateNodeAttributes: function (node, attrs) {
var elem = node;
var self = MochiKit.DOM;
var base = MochiKit.Base;
if (typeof(node) == 'string') {
elem = self.getElement(node);
}
if (attrs) {
var updatetree = MochiKit.Base.updatetree;
if (self.attributeArray.compliant) {
// not IE, good.
for (var k in attrs) {
@ -310,7 +310,7 @@ MochiKit.Base.update(MochiKit.DOM, {
if (k == "style" && MochiKit.Style) {
MochiKit.Style.setStyle(elem, v);
} else {
updatetree(elem[k], v);
base.updatetree(elem[k], v);
}
} else if (k.substring(0, 2) == "on") {
if (typeof(v) == "string") {
@ -320,8 +320,8 @@ MochiKit.Base.update(MochiKit.DOM, {
} else {
elem.setAttribute(k, v);
}
if (typeof(elem[k]) == "string" && elem[k] != v) {
// Also set property for weird attributes (see #302)
if (base.isValue(elem[k]) && elem[k] != v) {
// Also set property for weird attributes (see #302 & #335)
elem[k] = v;
}
}
@ -340,7 +340,7 @@ MochiKit.Base.update(MochiKit.DOM, {
if (k == "style" && MochiKit.Style) {
MochiKit.Style.setStyle(elem, v);
} else {
updatetree(elem[k], v);
base.updatetree(elem[k], v);
}
} else if (k.substring(0, 2) == "on") {
if (typeof(v) == "string") {
@ -350,8 +350,8 @@ MochiKit.Base.update(MochiKit.DOM, {
} else {
elem.setAttribute(k, v);
}
if (typeof(elem[k]) == "string" && elem[k] != v) {
// Also set property for weird attributes (see #302)
if (base.isValue(elem[k]) && elem[k] != v) {
// Also set property for weird attributes (see #302 & #335)
elem[k] = v;
}
}
@ -990,6 +990,7 @@ MochiKit.Base.update(MochiKit.DOM, {
"for": "htmlFor",
"readonly": "readOnly",
"colspan": "colSpan",
"rowspan": "rowSpan",
"bgcolor": "bgColor",
"cellspacing": "cellSpacing",
"cellpadding": "cellPadding"
@ -1007,7 +1008,7 @@ MochiKit.Base.update(MochiKit.DOM, {
// Backwards compatibility aliases
/** @id MochiKit.DOM.computedStyle */
m._deprecated(this, 'computedStyle', 'MochiKit.Style.getStyle', '1.4');
m._deprecated(this, 'computedStyle', 'MochiKit.Style.getStyle', '1.4', true);
/** @id MochiKit.DOM.elementDimensions */
m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4');
/** @id MochiKit.DOM.elementPosition */
@ -1041,48 +1042,38 @@ MochiKit.Base.update(MochiKit.DOM, {
// shorthand for createDOM syntax
var createDOMFunc = this.createDOMFunc;
/** @id MochiKit.DOM.UL */
this.UL = createDOMFunc("ul");
/** @id MochiKit.DOM.OL */
this.OL = createDOMFunc("ol");
/** @id MochiKit.DOM.LI */
this.LI = createDOMFunc("li");
/** @id MochiKit.DOM.A */
this.A = createDOMFunc("a");
/** @id MochiKit.DOM.ARTICLE */
this.ARTICLE = createDOMFunc("article");
/** @id MochiKit.DOM.ASIDE */
this.ASIDE = createDOMFunc("aside");
/** @id MochiKit.DOM.BR */
this.BR = createDOMFunc("br");
/** @id MochiKit.DOM.BUTTON */
this.BUTTON = createDOMFunc("button");
/** @id MochiKit.DOM.CANVAS */
this.CANVAS = createDOMFunc("canvas");
/** @id MochiKit.DOM.CAPTION */
this.CAPTION = createDOMFunc("caption");
/** @id MochiKit.DOM.DD */
this.DD = createDOMFunc("dd");
/** @id MochiKit.DOM.DIV */
this.DIV = createDOMFunc("div");
/** @id MochiKit.DOM.DL */
this.DL = createDOMFunc("dl");
/** @id MochiKit.DOM.DT */
this.DT = createDOMFunc("dt");
/** @id MochiKit.DOM.DD */
this.DD = createDOMFunc("dd");
/** @id MochiKit.DOM.TD */
this.TD = createDOMFunc("td");
/** @id MochiKit.DOM.TR */
this.TR = createDOMFunc("tr");
/** @id MochiKit.DOM.TBODY */
this.TBODY = createDOMFunc("tbody");
/** @id MochiKit.DOM.THEAD */
this.THEAD = createDOMFunc("thead");
/** @id MochiKit.DOM.TFOOT */
this.TFOOT = createDOMFunc("tfoot");
/** @id MochiKit.DOM.TABLE */
this.TABLE = createDOMFunc("table");
/** @id MochiKit.DOM.TH */
this.TH = createDOMFunc("th");
/** @id MochiKit.DOM.INPUT */
this.INPUT = createDOMFunc("input");
/** @id MochiKit.DOM.SPAN */
this.SPAN = createDOMFunc("span");
/** @id MochiKit.DOM.A */
this.A = createDOMFunc("a");
/** @id MochiKit.DOM.DIV */
this.DIV = createDOMFunc("div");
/** @id MochiKit.DOM.IMG */
this.IMG = createDOMFunc("img");
/** @id MochiKit.DOM.BUTTON */
this.BUTTON = createDOMFunc("button");
/** @id MochiKit.DOM.TT */
this.TT = createDOMFunc("tt");
/** @id MochiKit.DOM.PRE */
this.PRE = createDOMFunc("pre");
/** @id MochiKit.DOM.FIELDSET */
this.FIELDSET = createDOMFunc("fieldset");
/** @id MochiKit.DOM.FIGURE */
this.FIGURE = createDOMFunc("figure");
/** @id MochiKit.DOM.FIGCAPTION */
this.FIGCAPTION = createDOMFunc("figcaption");
/** @id MochiKit.DOM.FOOTER */
this.FOOTER = createDOMFunc("footer");
/** @id MochiKit.DOM.FORM */
this.FORM = createDOMFunc("form");
/** @id MochiKit.DOM.H1 */
this.H1 = createDOMFunc("h1");
/** @id MochiKit.DOM.H2 */
@ -1095,38 +1086,82 @@ MochiKit.Base.update(MochiKit.DOM, {
this.H5 = createDOMFunc("h5");
/** @id MochiKit.DOM.H6 */
this.H6 = createDOMFunc("h6");
/** @id MochiKit.DOM.BR */
this.BR = createDOMFunc("br");
/** @id MochiKit.DOM.HEADER */
this.HEADER = createDOMFunc("header");
/** @id MochiKit.DOM.HGROUP */
this.HGROUP = createDOMFunc("hgroup");
/** @id MochiKit.DOM.HR */
this.HR = createDOMFunc("hr");
/** @id MochiKit.DOM.IFRAME */
this.IFRAME = createDOMFunc("iframe");
/** @id MochiKit.DOM.IMG */
this.IMG = createDOMFunc("img");
/** @id MochiKit.DOM.INPUT */
this.INPUT = createDOMFunc("input");
/** @id MochiKit.DOM.LABEL */
this.LABEL = createDOMFunc("label");
/** @id MochiKit.DOM.TEXTAREA */
this.TEXTAREA = createDOMFunc("textarea");
/** @id MochiKit.DOM.FORM */
this.FORM = createDOMFunc("form");
/** @id MochiKit.DOM.P */
this.P = createDOMFunc("p");
/** @id MochiKit.DOM.SELECT */
this.SELECT = createDOMFunc("select");
/** @id MochiKit.DOM.OPTION */
this.OPTION = createDOMFunc("option");
/** @id MochiKit.DOM.OPTGROUP */
this.OPTGROUP = createDOMFunc("optgroup");
/** @id MochiKit.DOM.LEGEND */
this.LEGEND = createDOMFunc("legend");
/** @id MochiKit.DOM.FIELDSET */
this.FIELDSET = createDOMFunc("fieldset");
/** @id MochiKit.DOM.LI */
this.LI = createDOMFunc("li");
/** @id MochiKit.DOM.LINK */
this.LINK = createDOMFunc("link");
/** @id MochiKit.DOM.MARK */
this.MARK = createDOMFunc("mark");
/** @id MochiKit.DOM.METER */
this.METER = createDOMFunc("meter");
/** @id MochiKit.DOM.NAV */
this.NAV = createDOMFunc("nav");
/** @id MochiKit.DOM.OL */
this.OL = createDOMFunc("ol");
/** @id MochiKit.DOM.OPTGROUP */
this.OPTGROUP = createDOMFunc("optgroup");
/** @id MochiKit.DOM.OPTION */
this.OPTION = createDOMFunc("option");
/** @id MochiKit.DOM.P */
this.P = createDOMFunc("p");
/** @id MochiKit.DOM.PRE */
this.PRE = createDOMFunc("pre");
/** @id MochiKit.DOM.PROGRESS */
this.PROGRESS = createDOMFunc("progress");
/** @id MochiKit.DOM.SCRIPT */
this.SCRIPT = createDOMFunc("script");
/** @id MochiKit.DOM.SECTION */
this.SECTION = createDOMFunc("section");
/** @id MochiKit.DOM.SELECT */
this.SELECT = createDOMFunc("select");
/** @id MochiKit.DOM.SPAN */
this.SPAN = createDOMFunc("span");
/** @id MochiKit.DOM.STRONG */
this.STRONG = createDOMFunc("strong");
/** @id MochiKit.DOM.CANVAS */
this.CANVAS = createDOMFunc("canvas");
/** @id MochiKit.DOM.STYLE */
this.STYLE = createDOMFunc("style");
/** @id MochiKit.DOM.TABLE */
this.TABLE = createDOMFunc("table");
/** @id MochiKit.DOM.TBODY */
this.TBODY = createDOMFunc("tbody");
/** @id MochiKit.DOM.TD */
this.TD = createDOMFunc("td");
/** @id MochiKit.DOM.TEXTAREA */
this.TEXTAREA = createDOMFunc("textarea");
/** @id MochiKit.DOM.TFOOT */
this.TFOOT = createDOMFunc("tfoot");
/** @id MochiKit.DOM.TH */
this.TH = createDOMFunc("th");
/** @id MochiKit.DOM.THEAD */
this.THEAD = createDOMFunc("thead");
/** @id MochiKit.DOM.TR */
this.TR = createDOMFunc("tr");
/** @id MochiKit.DOM.TT */
this.TT = createDOMFunc("tt");
/** @id MochiKit.DOM.UL */
this.UL = createDOMFunc("ul");
/** @id MochiKit.DOM.NBSP */
this.NBSP = "\u00a0";
/** @id MochiKit.DOM.$ */
this.$ = this.getElement;
m.nameFunctions(this);
}
});

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('DateTime', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'DateTime', '1.5', ['Base']);
/** @id MochiKit.DateTime.isoDate */
MochiKit.DateTime.isoDate = function (str) {
@ -20,10 +20,10 @@ MochiKit.DateTime.isoDate = function (str) {
if (iso.length === 0) {
return null;
}
var date = new Date(iso[0], iso[1] - 1, iso[2]);
date.setFullYear(iso[0]);
date.setMonth(iso[1] - 1);
date.setDate(iso[2]);
var date = new Date(parseInt(iso[0], 10), parseInt(iso[1], 10) - 1, parseInt(iso[2], 10));
date.setFullYear(iso[0]);
date.setMonth(iso[1] - 1);
date.setDate(iso[2]);
return date;
};
@ -80,15 +80,17 @@ MochiKit.DateTime.toISOTime = function (date, realISO/* = false */) {
if (typeof(date) == "undefined" || date === null) {
return null;
}
var hh = date.getHours();
var mm = date.getMinutes();
var ss = date.getSeconds();
var _padTwo = MochiKit.DateTime._padTwo;
if (realISO) {
// adjust date for UTC timezone
date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));
}
var lst = [
((realISO && (hh < 10)) ? "0" + hh : hh),
((mm < 10) ? "0" + mm : mm),
((ss < 10) ? "0" + ss : ss)
(realISO ? _padTwo(date.getHours()) : date.getHours()),
_padTwo(date.getMinutes()),
_padTwo(date.getSeconds())
];
return lst.join(":");
return lst.join(":") + (realISO ? "Z" : "");
};
/** @id MochiKit.DateTime.toISOTimeStamp */
@ -96,12 +98,13 @@ MochiKit.DateTime.toISOTimestamp = function (date, realISO/* = false*/) {
if (typeof(date) == "undefined" || date === null) {
return null;
}
var time = MochiKit.DateTime.toISOTime(date, realISO);
var sep = realISO ? "T" : " ";
var foot = realISO ? "Z" : "";
if (realISO) {
// adjust date for UTC timezone
date = new Date(date.getTime() + (date.getTimezoneOffset() * 60000));
}
return MochiKit.DateTime.toISODate(date) + sep + MochiKit.DateTime.toISOTime(date, realISO) + foot;
return MochiKit.DateTime.toISODate(date) + sep + time;
};
/** @id MochiKit.DateTime.toISODate */
@ -110,7 +113,7 @@ MochiKit.DateTime.toISODate = function (date) {
return null;
}
var _padTwo = MochiKit.DateTime._padTwo;
var _padFour = MochiKit.DateTime._padFour;
var _padFour = MochiKit.DateTime._padFour;
return [
_padFour(date.getFullYear()),
_padTwo(date.getMonth() + 1),
@ -133,14 +136,14 @@ MochiKit.DateTime._padTwo = function (n) {
};
MochiKit.DateTime._padFour = function(n) {
switch(n.toString().length) {
case 1: return "000" + n; break;
case 2: return "00" + n; break;
case 3: return "0" + n; break;
case 4:
default:
return n;
}
switch(n.toString().length) {
case 1: return "000" + n; break;
case 2: return "00" + n; break;
case 3: return "0" + n; break;
case 4:
default:
return n;
}
};
/** @id MochiKit.DateTime.toPaddedAmericanDate */

View File

@ -8,7 +8,7 @@ Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
***/
MochiKit.Base._module('DragAndDrop', '1.5', ['Base', 'Iter', 'DOM', 'Signal', 'Visual', 'Position']);
MochiKit.Base.module(MochiKit, 'DragAndDrop', '1.5', ['Base', 'Iter', 'DOM', 'Signal', 'Visual', 'Position']);
MochiKit.DragAndDrop.Droppables = {
/***
@ -306,8 +306,9 @@ MochiKit.DragAndDrop.Draggables = {
var pointer = event.mouse();
// Mozilla-based browsers fire successive mousemove events with
// the same coordinates, prevent needless redrawing (moz bug?)
if (this._lastPointer && (MochiKit.Base.repr(this._lastPointer.page) ==
MochiKit.Base.repr(pointer.page))) {
if (this._lastPointer &&
this._lastPointer.page.x == pointer.page.x &&
this._lastPointer.page.y == pointer.page.y) {
return;
}
this._lastPointer = pointer;
@ -442,8 +443,8 @@ MochiKit.DragAndDrop.Draggable.prototype = {
currentDelta: function () {
var s = MochiKit.Style.getStyle;
return [
parseInt(s(this.element, 'left') || '0'),
parseInt(s(this.element, 'top') || '0')];
parseInt(s(this.element, 'left') || '0', 10),
parseInt(s(this.element, 'top') || '0', 10)];
},
/** @id MochiKit.DragAndDrop.initDrag */
@ -481,8 +482,7 @@ MochiKit.DragAndDrop.Draggable.prototype = {
this.options.selectclass);
}
if (this.options.zindex) {
this.originalZ = parseInt(MochiKit.Style.getStyle(this.element,
'z-index') || '0');
this.originalZ = MochiKit.Style.getStyle(this.element, 'z-index');
this.element.style.zIndex = this.options.zindex;
}

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Format', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'Format', '1.5', ['Base']);
MochiKit.Format._numberFormatter = function (placeholder, header, footer, locale, isPercent, precision, leadingZeros, separatorAt, trailingZeros) {
return function (num) {
@ -104,7 +104,7 @@ MochiKit.Format.numberFormatter = function (pattern, placeholder/* = "" */, loca
return [
self.NAME,
"(",
map(m.repr, args).join(", "),
m.map(m.repr, args).join(", "),
")"
].join("");
};
@ -142,7 +142,7 @@ MochiKit.Format.twoDigitAverage = function (numerator, denominator) {
/** @id MochiKit.Format.twoDigitFloat */
MochiKit.Format.twoDigitFloat = function (aNumber) {
var res = roundToFixed(aNumber, 2);
var res = MochiKit.Format.roundToFixed(aNumber, 2);
if (res.indexOf(".00") > 0) {
return res.substring(0, res.length - 3);
} else if (res.charAt(res.length - 1) == "0") {
@ -193,7 +193,7 @@ MochiKit.Format.truncToFixed = function (aNumber, precision) {
fixed = MochiKit.Format._shiftNumber(fixed, 0);
}
return fixed;
}
};
/** @id MochiKit.Format.roundToFixed */
MochiKit.Format.roundToFixed = function (aNumber, precision) {
@ -205,7 +205,7 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) {
fixed = MochiKit.Format._shiftNumber(str, -precision);
}
return fixed;
}
};
/**
* Converts a number to a fixed format string. This function handles
@ -221,7 +221,7 @@ MochiKit.Format.roundToFixed = function (aNumber, precision) {
MochiKit.Format._numberToFixed = function (aNumber, precision) {
var str = aNumber.toString();
var parts = str.split(/[eE]/);
var exp = (parts.length === 1) ? 0 : parseInt(parts[1]) || 0;
var exp = (parts.length === 1) ? 0 : parseInt(parts[1], 10) || 0;
var fixed = MochiKit.Format._shiftNumber(parts[0], exp);
parts = fixed.split(/\./);
var whole = parts[0];
@ -234,7 +234,7 @@ MochiKit.Format._numberToFixed = function (aNumber, precision) {
} else {
return whole;
}
}
};
/**
* Shifts the decimal dot location in a fixed format number string.
@ -275,7 +275,7 @@ MochiKit.Format._shiftNumber = function (num, exp) {
num = "-" + num.substring(2);
}
return num;
}
};
/** @id MochiKit.Format.percentFormat */
MochiKit.Format.percentFormat = function (aNumber) {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Iter', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'Iter', '1.5', ['Base']);
MochiKit.Base.update(MochiKit.Iter, {
/** @id MochiKit.Iter.registerIteratorFactory */
@ -222,14 +222,15 @@ MochiKit.Base.update(MochiKit.Iter, {
},
toString: m.forwardCall("repr"),
next: function () {
if (start >= stop) {
throw self.StopIteration;
}
var rval;
while (i < start) {
rval = seq.next();
i++;
}
if (start >= stop) {
throw self.StopIteration;
}
start += step;
return rval;
}
@ -280,15 +281,12 @@ MochiKit.Base.update(MochiKit.Iter, {
next: function () {
while (argiter.length > 1) {
try {
var result = argiter[0].next();
return result;
return argiter[0].next();
} catch (e) {
if (e != self.StopIteration) {
throw e;
}
argiter.shift();
var result = argiter[0].next();
return result;
}
}
if (argiter.length == 1) {
@ -413,7 +411,7 @@ MochiKit.Base.update(MochiKit.Iter, {
var self = MochiKit.Iter;
iterable = self.iter(iterable);
var rval = [];
rval = [];
var a_val;
try {
while (true) {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Logging', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'Logging', '1.5', ['Base']);
/** @id MochiKit.Logging.LogMessage */
MochiKit.Logging.LogMessage = function (num, level, info) {
@ -187,7 +187,7 @@ MochiKit.Logging.Logger.prototype = {
}
var messages = this.getMessages(howMany);
if (messages.length) {
var lst = map(function (m) {
var lst = MochiKit.Base.map(function (m) {
return '\n [' + m.num + '] ' + m.level + ': ' + m.info.join(' ');
}, messages);
lst.unshift('LAST ' + messages.length + ' MESSAGES:');

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('LoggingPane', '1.5', ['Base', 'Logging']);
MochiKit.Base.module(MochiKit, 'LoggingPane', '1.5', ['Base', 'Logging']);
/** @id MochiKit.LoggingPane.createLoggingPane */
MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) {
@ -24,7 +24,10 @@ MochiKit.LoggingPane.createLoggingPane = function (inline/* = false */) {
return m._loggingPane;
};
/** @id MochiKit.LoggingPane.LoggingPane */
/**
* @id MochiKit.LoggingPane.LoggingPane
* @constructor
*/
MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = MochiKit.Logging.logger */) {
/* Use a div if inline, pop up a window if not */
@ -146,7 +149,7 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
infore = new RegExp(infoFilterField.value);
} catch(e) {
/* If there was an error with the regexes, do no filtering */
logDebug("Error in filter regex: " + e.message);
MochiKit.Logging.logDebug("Error in filter regex: " + e.message);
return null;
}
@ -184,7 +187,7 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
try {
try {
debugPane.loggingPane = null;
} catch(e) { logFatal("Bookmarklet was closed incorrectly."); }
} catch(e) { MochiKit.Logging.logFatal("Bookmarklet was closed incorrectly."); }
if (inline) {
debugPane.parentNode.removeChild(debugPane);
} else {
@ -224,7 +227,7 @@ MochiKit.LoggingPane.LoggingPane = function (inline/* = false */, logger/* = Moc
/** @id MochiKit.LoggingPane.filterOnEnter */
var filterOnEnter = bind(function (event) {
event = event || window.event;
key = event.which || event.keyCode;
var key = event.which || event.keyCode;
if (key == 13) {
this.buildAndApplyFilter();
}

View File

@ -8,17 +8,14 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
if (typeof(MochiKit) == 'undefined') {
MochiKit = {};
}
var MochiKit = MochiKit || {};
if (typeof(MochiKit.MochiKit) == 'undefined') {
/** @id MochiKit.MochiKit */
MochiKit.MochiKit = {};
}
/** @id MochiKit.MochiKit */
MochiKit.MochiKit = MochiKit.MochiKit || {};
MochiKit.MochiKit.NAME = "MochiKit.MochiKit";
MochiKit.MochiKit.VERSION = "1.5";
MochiKit.MochiKit.__export__ = false;
MochiKit.MochiKit.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]";
};

View File

@ -8,16 +8,13 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
if (typeof(MochiKit) == "undefined") {
MochiKit = {};
}
var MochiKit = MochiKit || {};
if (typeof(MochiKit.MockDOM) == "undefined") {
MochiKit.MockDOM = {};
}
MochiKit.MockDOM = MochiKit.MockDOM || {};
MochiKit.MockDOM.NAME = "MochiKit.MockDOM";
MochiKit.MockDOM.VERSION = "1.5";
MochiKit.MockDOM.__export__ = false;
MochiKit.MockDOM.__repr__ = function () {
return "[" + this.NAME + " " + this.VERSION + "]";

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Position', '1.5', ['Base', 'DOM', 'Style']);
MochiKit.Base.module(MochiKit, 'Position', '1.5', ['Base', 'DOM', 'Style']);
MochiKit.Base.update(MochiKit.Position, {
// Don't export from this module

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Selector', '1.5', ['Base', 'DOM', 'Iter']);
MochiKit.Base.module(MochiKit, 'Selector', '1.5', ['Base', 'DOM', 'Iter']);
MochiKit.Selector.Selector = function (expression) {
this.params = {classNames: [], pseudoClassNames: []};
@ -127,8 +127,8 @@ MochiKit.Selector.Selector.prototype = {
a = 2;
b = 0;
} else {
a = match[2] && parseInt(match) || null;
b = parseInt(match[3]);
a = match[2] && parseInt(match, 10) || null;
b = parseInt(match[3], 10);
}
conditions.push('this.nthChild(element,' + a + ',' + b
+ ',' + !!pseudoClass.match('^nth-last') // Reverse
@ -167,7 +167,7 @@ MochiKit.Selector.Selector.prototype = {
break;
case 'not':
var subselector = new MochiKit.Selector.Selector(pseudoClassArgument);
conditions.push('!( ' + subselector.buildMatchExpression() + ')')
conditions.push('!( ' + subselector.buildMatchExpression() + ')');
break;
}
}
@ -177,7 +177,7 @@ MochiKit.Selector.Selector.prototype = {
var value = 'MochiKit.DOM.getNodeAttribute(element, ' + repr(attribute.name) + ')';
var splitValueBy = function (delimiter) {
return value + '.split(' + repr(delimiter) + ')';
}
};
conditions.push(value + ' != null');
switch (attribute.operator) {
case '=':
@ -352,6 +352,12 @@ MochiKit.Base.update(MochiKit.Selector, {
return res;
};
return MochiKit.Base.flattenArray(MochiKit.Base.map(function (expression) {
try {
var res = element.querySelectorAll(expression);
return Array.prototype.slice.call(res, 0);
} catch (ignore) {
// No querySelectorAll or extended expression syntax used
}
var nextScope = "";
var reducer = function (results, expr) {
var match = expr.match(/^[>+~]$/);

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Signal', '1.5', ['Base', 'DOM', 'Style']);
MochiKit.Base.module(MochiKit, 'Signal', '1.5', ['Base', 'DOM']);
MochiKit.Signal._observers = [];
@ -266,16 +266,17 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
if (this.type() && (
this.type().indexOf('mouse') === 0 ||
this.type().indexOf('drag') === 0 ||
this.type().indexOf('click') != -1 ||
this.type() == 'contextmenu')) {
m.client = new MochiKit.Style.Coordinates(0, 0);
m.client = { x: 0, y: 0 };
if (e.clientX || e.clientY) {
m.client.x = (!e.clientX || e.clientX < 0) ? 0 : e.clientX;
m.client.y = (!e.clientY || e.clientY < 0) ? 0 : e.clientY;
}
m.page = new MochiKit.Style.Coordinates(0, 0);
m.page = { x: 0, y: 0 };
if (e.pageX || e.pageY) {
m.page.x = (!e.pageX || e.pageX < 0) ? 0 : e.pageX;
m.page.y = (!e.pageY || e.pageY < 0) ? 0 : e.pageY;
@ -337,7 +338,7 @@ MochiKit.Base.update(MochiKit.Signal.Event.prototype, {
}
}
if (this.type() == 'mousewheel') {
m.wheel = new MochiKit.Style.Coordinates(0, 0);
m.wheel = { x: 0, y: 0 };
if (e.wheelDeltaX || e.wheelDeltaY) {
m.wheel.x = e.wheelDeltaX / -40 || 0;
m.wheel.y = e.wheelDeltaY / -40 || 0;
@ -672,6 +673,18 @@ MochiKit.Base.update(MochiKit.Signal, {
return ident;
},
/** @id MochiKit.Signal.connectOnce */
connectOnce: function (src, sig, objOrFunc/* optional */, funcOrStr) {
var self = MochiKit.Signal;
var ident1 = self.connect(src, sig, objOrFunc, funcOrStr);
var ident2;
ident2 = self.connect(src, sig, function() {
self.disconnect(ident1);
self.disconnect(ident2);
});
return ident1;
},
_disconnect: function (ident) {
// already disconnected
if (!ident.connected) {
@ -715,7 +728,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var o = observers[i];
if (o.source === src && o.signal === sig && o.objOrFunc === obj && o.funcOrStr === func) {
self._disconnect(o);
if (!self._lock) {
if (self._lock === 0) {
observers.splice(i, 1);
} else {
self._dirty = true;
@ -727,7 +740,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var idx = m.findIdentical(observers, ident);
if (idx >= 0) {
self._disconnect(ident);
if (!self._lock) {
if (self._lock === 0) {
observers.splice(idx, 1);
} else {
self._dirty = true;
@ -743,7 +756,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var self = MochiKit.Signal;
var observers = self._observers;
var disconnect = self._disconnect;
var locked = self._lock;
var lock = self._lock;
var dirty = self._dirty;
if (typeof(funcOrStr) === 'undefined') {
funcOrStr = null;
@ -753,10 +766,10 @@ MochiKit.Base.update(MochiKit.Signal, {
if (ident.objOrFunc === objOrFunc &&
(funcOrStr === null || ident.funcOrStr === funcOrStr)) {
disconnect(ident);
if (locked) {
dirty = true;
} else {
if (lock === 0) {
observers.splice(i, 1);
} else {
dirty = true;
}
}
}
@ -774,7 +787,7 @@ MochiKit.Base.update(MochiKit.Signal, {
var disconnect = self._disconnect;
var observers = self._observers;
var i, ident;
var locked = self._lock;
var lock = self._lock;
var dirty = self._dirty;
if (signals.length === 0) {
// disconnect all
@ -782,7 +795,7 @@ MochiKit.Base.update(MochiKit.Signal, {
ident = observers[i];
if (ident.source === src) {
disconnect(ident);
if (!locked) {
if (lock === 0) {
observers.splice(i, 1);
} else {
dirty = true;
@ -798,7 +811,7 @@ MochiKit.Base.update(MochiKit.Signal, {
ident = observers[i];
if (ident.source === src && ident.signal in sigs) {
disconnect(ident);
if (!locked) {
if (lock === 0) {
observers.splice(i, 1);
} else {
dirty = true;
@ -818,7 +831,7 @@ MochiKit.Base.update(MochiKit.Signal, {
}
var args = MochiKit.Base.extend(null, arguments, 2);
var errors = [];
self._lock = true;
self._lock++;
for (var i = 0; i < observers.length; i++) {
var ident = observers[i];
if (ident.source === src && ident.signal === sig &&
@ -837,8 +850,8 @@ MochiKit.Base.update(MochiKit.Signal, {
}
}
}
self._lock = false;
if (self._dirty) {
self._lock--;
if (self._lock === 0 && self._dirty) {
self._dirty = false;
for (var i = observers.length - 1; i >= 0; i--) {
if (!observers[i].connected) {
@ -861,7 +874,7 @@ MochiKit.Signal.__new__ = function (win) {
var m = MochiKit.Base;
this._document = document;
this._window = win;
this._lock = false;
this._lock = 0;
this._dirty = false;
try {

View File

@ -6,7 +6,7 @@ See scriptaculous.js for full license.
***/
MochiKit.Base._module('Sortable', '1.5', ['Base', 'Iter', 'DOM', 'Position', 'DragAndDrop']);
MochiKit.Base.module(MochiKit, 'Sortable', '1.5', ['Base', 'Iter', 'DOM', 'Position', 'DragAndDrop']);
MochiKit.Base.update(MochiKit.Sortable, {
__export__: false,
@ -179,7 +179,7 @@ MochiKit.Base.update(MochiKit.Sortable, {
onhover: self.onHover,
tree: options.tree,
accept: options.accept
}
};
var options_for_tree = {
onhover: self.onEmptyHover,
@ -187,7 +187,7 @@ MochiKit.Base.update(MochiKit.Sortable, {
containment: options.containment,
hoverclass: options.hoverclass,
accept: options.accept
}
};
// fix for gecko engine
MochiKit.DOM.removeEmptyTextNodes(element);
@ -430,11 +430,11 @@ MochiKit.Base.update(MochiKit.Sortable, {
children: [],
position: parent.children.length,
container: self._findChildrenElement(children[i], options.treeTag.toUpperCase())
}
};
/* Get the element containing the children and recurse over it */
if (child.container) {
self._tree(child.container, options, child)
self._tree(child.container, options, child);
}
parent.children.push (child);
@ -475,7 +475,7 @@ MochiKit.Base.update(MochiKit.Sortable, {
children: new Array,
container: element,
position: 0
}
};
return MochiKit.Sortable._tree(element, options, root);
},

View File

@ -6,9 +6,12 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
(c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved.
The MochiKit.Style.getElementPosition function is adapted from
YAHOO.util.Dom.getXY v0.9.0. which is copyrighted by Yahoo! Inc.
***/
MochiKit.Base._module('Style', '1.5', ['Base', 'DOM']);
MochiKit.Base.module(MochiKit, 'Style', '1.5', ['Base', 'DOM']);
/** @id MochiKit.Style.Dimensions */
@ -179,7 +182,7 @@ MochiKit.Base.update(MochiKit.Style, {
o.nodeType == null &&
typeof(o.x) == "number" &&
typeof(o.y) == "number";
}
};
if (typeof(elem) == "string") {
elem = dom.getElement(elem);
@ -197,7 +200,7 @@ MochiKit.Base.update(MochiKit.Style, {
var de = d.documentElement;
var b = d.body;
if (!elem.parentNode && elem.x && elem.y) {
if (isCoordinates(elem)) {
/* it's just a MochiKit.Style.Coordinates object */
c.x += elem.x || 0;
c.y += elem.y || 0;
@ -228,8 +231,8 @@ MochiKit.Base.update(MochiKit.Style, {
if (parent != elem) {
while (parent) {
c.x += parseInt(parent.style.borderLeftWidth) || 0;
c.y += parseInt(parent.style.borderTopWidth) || 0;
c.x += parseInt(parent.style.borderLeftWidth, 10) || 0;
c.y += parseInt(parent.style.borderTopWidth, 10) || 0;
c.x += parent.offsetLeft;
c.y += parent.offsetTop;
parent = parent.offsetParent;
@ -390,7 +393,7 @@ MochiKit.Base.update(MochiKit.Style, {
if (contentSize) {
var tableCell = 'colSpan' in elem && 'rowSpan' in elem;
var collapse = (tableCell && elem.parentNode && self.getStyle(
elem.parentNode, 'borderCollapse') == 'collapse')
elem.parentNode, 'borderCollapse') == 'collapse');
if (collapse) {
if (/MSIE/.test(navigator.userAgent)) {
var borderLeftQuota = elem.previousSibling? 0.5 : 1;
@ -543,8 +546,8 @@ MochiKit.Base.update(MochiKit.Style, {
}
// Backwards compatibility aliases
m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3');
m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3');
m._deprecated(this, 'elementPosition', 'MochiKit.Style.getElementPosition', '1.3', true);
m._deprecated(this, 'elementDimensions', 'MochiKit.Style.getElementDimensions', '1.3', true);
this.hideElement = m.partial(this.setDisplayForElement, 'none');
// TODO: showElement could be improved by using getDefaultDisplay.

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Test', '1.5', ['Base']);
MochiKit.Base.module(MochiKit, 'Test', '1.5', ['Base']);
MochiKit.Test.runTests = function (obj) {
if (typeof(obj) == "string") {

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Text', '1.5', ['Base', 'Format']);
MochiKit.Base.module(MochiKit, 'Text', '1.5', ['Base', 'Format']);
/**
* Checks if a text string starts with the specified substring. If
@ -22,7 +22,7 @@ MochiKit.Base._module('Text', '1.5', ['Base', 'Format']);
*/
MochiKit.Text.startsWith = function (substr, str) {
return str != null && substr != null && str.indexOf(substr) == 0;
}
};
/**
* Checks if a text string ends with the specified substring. If
@ -37,7 +37,7 @@ MochiKit.Text.startsWith = function (substr, str) {
MochiKit.Text.endsWith = function (substr, str) {
return str != null && substr != null &&
str.lastIndexOf(substr) == Math.max(str.length - substr.length, 0);
}
};
/**
* Checks if a text string contains the specified substring. If
@ -51,7 +51,7 @@ MochiKit.Text.endsWith = function (substr, str) {
*/
MochiKit.Text.contains = function (substr, str) {
return str != null && substr != null && str.indexOf(substr) >= 0;
}
};
/**
* Adds a character to the left-hand side of a string until it
@ -71,7 +71,7 @@ MochiKit.Text.padLeft = function (str, minLength, fillChar) {
str = fillChar + str;
}
return str;
}
};
/**
* Adds a character to the right-hand side of a string until it
@ -91,7 +91,7 @@ MochiKit.Text.padRight = function (str, minLength, fillChar) {
str += fillChar;
}
return str;
}
};
/**
* Returns a truncated copy of a string. If the string is shorter
@ -119,29 +119,55 @@ MochiKit.Text.truncate = function (str, maxLength, tail) {
} else {
return str.slice(0, maxLength);
}
}
};
/**
* Splits a text string, applies a function and joins the results
* back together again. This is a convenience function for calling
* split(), map() and join() separately. It can be used to easily
* trim each line in a text string (using the strip function), or to
* translate a text word-by-word.
* Splits a text string using separator as the split point
* If max is given, at most max splits are done, giving at most
* max + 1 elements in the returned list.
*
* @param {Function} func the function to apply
* @param {String} str the string to split
* @param {String} [separator] the separator character to use,
* @param {String/RegExp} [separator] the separator char or regexp to use,
* defaults to newline
*
* @return {String} a string with the joined up results
* @param {Number} [max] the maximum number of parts to return
* @return {Array} an array of parts of the string
*/
MochiKit.Text.splitJoin = function (func, str, separator) {
if (str == null || str.length == 0) {
MochiKit.Text.split = function (str, separator, max) {
if (str == null) {
return str;
}
separator = separator || '\n'
return MochiKit.Base.map(func, str.split(separator)).join(separator);
}
separator = separator || '\n';
var bits = str.split(separator);
if ((typeof(max) == "undefined") || max >= bits.length - 1) {
return bits;
}
bits.splice(max, bits.length, bits.slice(max, bits.length).join(separator));
return bits;
};
/**
* Splits a text string using separator as the split point
* If max is given, at most max splits are done,
* using splits from the right
*
* @param {String} str the string to split
* @param {String/RegExp} [separator] the separator char or regexp to use,
* defaults to newline
* @param {Number} [max] the maximum number of parts to return
* @return {Array} an array of parts of the string
*/
MochiKit.Text.rsplit = function (str, separator, max) {
if (str == null) {
return str;
}
separator = separator || '\n';
var bits = str.split(separator);
if ((typeof(max) == "undefined") || max >= bits.length - 1){
return bits;
}
bits.splice(0, bits.length-max, bits.slice(0, bits.length-max).join(separator));
return bits;
};
/**
* Creates a formatter function for the specified formatter pattern
@ -158,7 +184,7 @@ MochiKit.Text.splitJoin = function (func, str, separator) {
* @throws FormatPatternError if the format pattern was invalid
*/
MochiKit.Text.formatter = function (pattern, locale) {
if (typeof(locale) == "undefined") {
if (locale == null) {
locale = MochiKit.Format.formatLocale();
} else if (typeof(locale) == "string") {
locale = MochiKit.Format.formatLocale(locale);
@ -175,8 +201,8 @@ MochiKit.Text.formatter = function (pattern, locale) {
}
}
return res.join("");
}
}
};
};
/**
* Formats the specified arguments according to a formatter pattern.
@ -193,7 +219,7 @@ MochiKit.Text.formatter = function (pattern, locale) {
MochiKit.Text.format = function (pattern/*, ...*/) {
var func = MochiKit.Text.formatter(pattern);
return func.apply(this, MochiKit.Base.extend([], arguments, 1));
}
};
/**
* Format a value with the specified format specifier.
@ -205,24 +231,29 @@ MochiKit.Text.format = function (pattern/*, ...*/) {
* LOCALE.en_US
*
* @return {String} the formatted output string
*
* @throws FormatPatternError if the format specifier was invalid
*/
MochiKit.Text.formatValue = function (spec, value, locale) {
var self = MochiKit.Text;
if (typeof(spec) === "string") {
spec = self._parseFormatFlags(spec, 0, spec.length - 1);
spec = self._parseFormatFlags(spec, 0, spec.length);
}
for (var i = 0; spec.path != null && i < spec.path.length; i++) {
if (value != null) {
value = value[spec.path[i]];
}
}
if (typeof(locale) == "undefined") {
if (locale == null) {
locale = MochiKit.Format.formatLocale();
} else if (typeof(locale) == "string") {
locale = MochiKit.Format.formatLocale(locale);
}
var str = "";
if (spec.numeric) {
if (spec.type == "number") {
if (value instanceof Number) {
value = value.valueOf();
}
if (typeof(value) != "number" || isNaN(value)) {
str = "";
} else if (value === Number.POSITIVE_INFINITY) {
@ -230,8 +261,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
} else if (value === Number.NEGATIVE_INFINITY) {
str = "-\u221e";
} else {
var sign = (spec.sign === "-") ? "" : spec.sign;
sign = (value < 0) ? "-" : sign;
var sign = (value < 0) ? "-" : spec.sign;
value = Math.abs(value);
if (spec.format === "%") {
str = self._truncToPercent(value, spec.precision);
@ -254,7 +284,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
} else if (spec.padding == "0") {
str = self.padLeft(str, spec.width - sign.length, "0");
}
str = self._localizeNumber(str, locale, spec.grouping);
str = self._localizeNumber(str, locale, spec.group);
str = sign + str;
}
if (str !== "" && spec.format === "%") {
@ -264,7 +294,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
if (spec.format == "r") {
str = MochiKit.Base.repr(value);
} else {
str = (value == null) ? "null" : value.toString();
str = (value == null) ? "" : value.toString();
}
str = self.truncate(str, spec.precision);
}
@ -274,7 +304,7 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
str = self.padLeft(str, spec.width);
}
return str;
}
};
/**
* Adjust an already formatted numeric string for locale-specific
@ -284,16 +314,16 @@ MochiKit.Text.formatValue = function (spec, value, locale) {
*
* @param {String} num the formatted number string
* @param {Object} locale the formatting locale to use
* @param {Boolean} grouping the grouping flag
* @param {Boolean} group the grouping flag
*
* @return {String} the localized number string
*/
MochiKit.Text._localizeNumber = function (num, locale, grouping) {
MochiKit.Text._localizeNumber = function (num, locale, group) {
var parts = num.split(/\./);
var whole = parts[0];
var frac = (parts.length == 1) ? "" : parts[1];
var res = (frac.length > 0) ? locale.decimal : "";
while (grouping && frac.length > 3) {
while (group && frac.length > 3) {
res = res + frac.substring(0, 3) + locale.separator;
frac = frac.substring(3);
if (whole.charAt(0) == "0") {
@ -301,15 +331,15 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
}
}
if (frac.length > 0) {
res += frac;
res = res + frac;
}
while (grouping && whole.length > 3) {
while (group && whole.length > 3) {
var pos = whole.length - 3;
res = locale.separator + whole.substring(pos) + res;
whole = whole.substring((whole.charAt(0) == "0") ? 1 : 0, pos);
}
return whole + res;
}
};
/**
* Parses a format pattern and returns an array of constant strings
@ -324,44 +354,32 @@ MochiKit.Text._localizeNumber = function (num, locale, grouping) {
MochiKit.Text._parsePattern = function (pattern) {
var self = MochiKit.Text;
var parts = [];
var start = 0;
var pos = 0;
for (pos = 0; pos < pattern.length; pos++) {
if (pattern.charAt(pos) == "{") {
if (pos + 1 >= pattern.length) {
var msg = "unescaped { char, should be escaped as {{";
throw new self.FormatPatternError(pattern, pos, msg);
} else if (pattern.charAt(pos + 1) == "{") {
parts.push(pattern.substring(start, pos + 1));
start = pos + 2;
pos++;
} else {
if (start < pos) {
parts.push(pattern.substring(start, pos));
}
start = pattern.indexOf("}", pos) + 1;
if (start <= 0) {
var msg = "unmatched { char, not followed by a } char";
throw new self.FormatPatternError(pattern, pos, msg);
}
parts.push(self._parseFormat(pattern, pos + 1, start - 1));
pos = start - 1;
}
} else if (pattern.charAt(pos) == "}") {
if (pos + 1 >= pattern.length || pattern.charAt(pos + 1) != "}") {
var msg = "unescaped } char, should be escaped as }}";
throw new self.FormatPatternError(pattern, pos, msg);
}
parts.push(pattern.substring(start, pos + 1));
start = pos + 2;
pos++;
var re = /{[^{}]*}|{{?|}}?/g;
var lastPos = re.lastIndex = 0;
var m;
while ((m = re.exec(pattern)) != null) {
if (lastPos < m.index) {
parts.push(pattern.substring(lastPos, m.index))
}
var str = m[0];
lastPos = m.index + str.length;
if (self.startsWith("{", str) && self.endsWith("}", str)) {
parts.push(self._parseFormat(pattern, m.index + 1, lastPos - 1));
} else if (self.startsWith("{{", str) || self.startsWith("}}", str)) {
parts.push(str.substring(1));
} else if (self.startsWith("{", str)) {
var msg = "unescaped { char, should be escaped as {{";
throw new self.FormatPatternError(pattern, m.index, msg);
} else if (self.startsWith("}", str)) {
var msg = "unescaped } char, should be escaped as }}";
throw new self.FormatPatternError(pattern, m.index, msg);
}
}
if (start < pos) {
parts.push(pattern.substring(start, pos));
if (lastPos < pattern.length) {
parts.push(pattern.substring(lastPos));
}
return parts;
}
};
/**
* Parses a format instruction and returns a format info object.
@ -377,40 +395,30 @@ MochiKit.Text._parsePattern = function (pattern) {
MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
var self = MochiKit.Text;
var text = pattern.substring(startPos, endPos);
var info;
var pos = text.indexOf(":");
if (pos == 0) {
info = self._parseFormatFlags(pattern, startPos + 1, endPos);
info.path = [0];
} else if (pos > 0) {
info = self._parseFormatFlags(pattern, startPos + pos + 1, endPos);
info.path = text.substring(0, pos).split(".");
} else {
info = self._parseFormatFlags(pattern, endPos, endPos);
info.path = text.split(".");
}
var DIGITS = /^\d+$/;
var parts = self.split(text, ":", 1);
var path = parts[0];
var flagsPos = startPos + path.length + ((parts.length == 1) ? 0 : 1);
var info = self._parseFormatFlags(pattern, flagsPos, endPos);
info.path = (path == "") ? [] : path.split(".");
for (var i = 0; i < info.path.length; i++) {
var e = info.path[i];
if (typeof(e) == "string") {
// TODO: replace with MochiKit.Format.strip?
e = e.replace(/^\s+/, "").replace(/\s+$/, "");
if (e == "" && info.path.length == 1) {
e = 0;
} else if (e == "") {
var msg = "format value path contains blanks";
throw new self.FormatPatternError(pattern, startPos, msg);
} else if (DIGITS.test(e)) {
e = parseInt(e);
}
var v = info.path[i];
// TODO: replace with MochiKit.Format.strip?
v = v.replace(/^\s+/, "").replace(/\s+$/, "");
if (v == "" && info.path.length == 1) {
v = 0;
} else if (v == "") {
var msg = "format value path contains blanks";
throw new self.FormatPatternError(pattern, startPos, msg);
} else if (/^\d+$/.test(v)) {
v = parseInt(v, 10);
}
info.path[i] = e;
info.path[i] = v;
}
if (info.path.length < 0 || typeof(info.path[0]) != "number") {
if (info.path.length <= 0 || typeof(info.path[0]) != "number") {
info.path.unshift(0);
}
return info;
}
};
/**
* Parses a string with format flags and returns a format info object.
@ -424,81 +432,52 @@ MochiKit.Text._parseFormat = function (pattern, startPos, endPos) {
* @throws FormatPatternError if the format pattern was invalid
*/
MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) {
var self = MochiKit.Text;
var info = { numeric: false, format: "s", width: 0, precision: -1,
align: ">", sign: "-", padding: " ", grouping: false };
var update = MochiKit.Base.update;
var info = { type: "string", format: "s", width: 0, precision: -1,
align: ">", sign: "", padding: " ", group: false };
// TODO: replace with MochiKit.Format.rstrip?
var flags = pattern.substring(startPos, endPos).replace(/\s+$/, "");
while (flags.length > 0) {
switch (flags.charAt(0)) {
case ">":
case "<":
info.align = flags.charAt(0);
flags = flags.substring(1);
break;
case "+":
case "-":
case " ":
info.sign = flags.charAt(0);
flags = flags.substring(1);
break;
case ",":
info.grouping = true;
flags = flags.substring(1);
break;
case ".":
var chars = /^\d*/.exec(flags.substring(1))[0];
info.precision = parseInt(chars);
flags = flags.substring(1 + chars.length);
break;
case "0":
info.padding = flags.charAt(0);
flags = flags.substring(1);
break;
case "1":
case "2":
case "3":
case "4":
case "5":
case "6":
case "7":
case "8":
case "9":
var chars = /^\d*/.exec(flags)[0];
info.width = parseInt(chars);
flags = flags.substring(chars.length);
break;
case "s":
case "r":
info.format = flags.charAt(0);
flags = flags.substring(1);
break;
case "b":
case "d":
case "o":
case "x":
case "X":
case "f":
case "%":
info.numeric = true;
info.format = flags.charAt(0);
info.radix = 10;
if (info.format === "b") {
info.radix = 2;
} else if (info.format === "o") {
info.radix = 8;
} else if (info.format === "x" || info.format === "X") {
info.radix = 16;
}
flags = flags.substring(1);
break;
default:
var msg = "unsupported format flag: " + flags.charAt(0);
throw new self.FormatPatternError(pattern, startPos, msg);
var text = pattern.substring(startPos, endPos).replace(/\s+$/, "");
var m = /^([<>+ 0,-]+)?(\d+)?(\.\d*)?([srbdoxXf%])?(.*)$/.exec(text);
var flags = m[1];
var width = m[2];
var precision = m[3];
var type = m[4];
var unmatched = m[5];
for (var i = 0; flags && i < flags.length; i++) {
var chr = flags.charAt(i);
if (chr == "<" || chr == ">") {
info.align = chr;
} else if (chr == "+" || chr == "-" || chr == " ") {
info.sign = (chr == "-") ? "" : chr;
} else if (chr == "0") {
info.padding = chr;
} else if (chr == ",") {
info.group = true;
}
}
if (width) {
info.width = parseInt(width, 10);
}
if (precision && precision.length > 1) {
info.precision = parseInt(precision.substring(1), 10);
}
if (type == "s" || type == "r") {
info.format = type;
} else if (type == "b") {
update(info, { type: "number", format: type, radix: 2 });
} else if (type == "o") {
update(info, { type: "number", format: type, radix: 8 });
} else if (type == "x" || type == "X") {
update(info, { type: "number", format: type, radix: 16 });
} else if (type == "d" || type == "f" || type == "%") {
update(info, { type: "number", format: type, radix: 10 });
}
if (unmatched) {
var msg = "unsupported format flag: " + unmatched.charAt(0);
throw new MochiKit.Text.FormatPatternError(pattern, startPos, msg);
}
return info;
}
};
/**
* Formats a value as a percentage. This method avoids multiplication
@ -510,33 +489,23 @@ MochiKit.Text._parseFormatFlags = function (pattern, startPos, endPos) {
* @param {Number} precision the number of precision digits
*/
MochiKit.Text._truncToPercent = function (value, precision) {
// TODO: This can be simplified by using the same helper function
// as roundToFixed now does.
// TODO: This can be simplified by using MochiKit.Format._shiftNumber
// as roundToFixed does.
var str;
if (precision >= 0) {
str = MochiKit.Format.roundToFixed(value, precision + 2);
} else {
str = (value == null) ? "0" : value.toString();
}
var fracPos = str.indexOf(".");
if (fracPos < 0) {
str = str + "00";
} else if (fracPos + 3 >= str.length) {
var fraction = str.substring(fracPos + 1);
while (fraction.length < 2) {
fraction = fraction + "0";
}
str = str.substring(0, fracPos) + fraction;
} else {
var fraction = str.substring(fracPos + 1);
str = str.substring(0, fracPos) + fraction.substring(0, 2) +
"." + fraction.substring(2);
var arr = MochiKit.Text.split(str, ".", 2);
var frac = MochiKit.Text.padRight(arr[1], 2, "0");
var whole = arr[0] + frac.substring(0, 2);
frac = frac.substring(2);
while (/^0[0-9]/.test(whole)) {
whole = whole.substring(1);
}
while (str.length > 1 && str.charAt(0) == "0" && str.charAt(1) != ".") {
str = str.substring(1);
}
return str;
}
return (frac.length <= 0) ? whole : whole + "." + frac;
};
/**
* Creates a new format pattern error.
@ -558,13 +527,13 @@ MochiKit.Text.FormatPatternError = function (pattern, pos, message) {
this.pattern = pattern;
this.pos = pos;
this.message = message;
}
MochiKit.Text.FormatPatternError.prototype =
new MochiKit.Base.NamedError("MochiKit.Text.FormatPatternError");
};
MochiKit.Text.FormatPatternError.prototype = new MochiKit.Base.NamedError("MochiKit.Text.FormatPatternError");
MochiKit.Text.FormatPatternError.constructor = MochiKit.Text.FormatPatternError;
//
//XXX: Internet Explorer exception handling blows
//XXX: Internet Explorer export fix
//
if (MochiKit.__export__) {
formatter = MochiKit.Text.formatter;

View File

@ -8,7 +8,7 @@ See <http://mochikit.com/> for documentation, downloads, license, etc.
***/
MochiKit.Base._module('Visual', '1.5', ['Base', 'DOM', 'Style', 'Color', 'Position']);
MochiKit.Base.module(MochiKit, 'Visual', '1.5', ['Base', 'DOM', 'Style', 'Color', 'Position']);
MochiKit.Visual._RoundCorners = function (e, options) {
e = MochiKit.DOM.getElement(e);
@ -469,6 +469,11 @@ MochiKit.Visual.Transitions.parabolic = function (pos) {
return pos * pos;
};
/** @id MochiKit.Visual.Transitions.spring */
MochiKit.Visual.Transitions.spring = function (pos) {
return 1 - (Math.cos(pos * 2.5 * Math.PI) * Math.exp(-pos * 6));
};
/** @id MochiKit.Visual.Transitions.none */
MochiKit.Visual.Transitions.none = function (pos) {
return 0;
@ -534,6 +539,11 @@ MochiKit.Base.update(MochiKit.Visual.ScopedQueue.prototype, {
e.finalize();
}, this.effects);
break;
case 'replace':
ma(function (e) {
e.cancel();
}, this.effects);
break;
}
effect.startOn += timestamp;
@ -662,8 +672,12 @@ MochiKit.Visual.Base.prototype = {
this.event('afterSetup');
}
if (this.state == 'running') {
if (this.options.transition) {
pos = this.options.transition(pos);
var trans = this.options.transition;
if (typeof(trans) == "string") {
trans = MochiKit.Visual.Transitions[trans];
}
if (typeof(trans) == "function") {
pos = trans(pos);
}
pos *= (this.options.to - this.options.from);
pos += this.options.from;
@ -1686,8 +1700,8 @@ MochiKit.Visual.squish = function (element, /* optional */ options) {
var elemClip;
options = b.update({
restoreAfterFinish: true,
scaleMode: {originalHeight: elementDimensions.w,
originalWidth: elementDimensions.h},
scaleMode: {originalHeight: elementDimensions.h,
originalWidth: elementDimensions.w},
beforeSetupInternal: function (effect) {
elemClip = s.makeClipping(effect.element);
},
@ -1958,18 +1972,5 @@ MochiKit.Visual.fold = function (element, /* optional */ options) {
};
/* end of Rico adaptation */
MochiKit.Visual.__new__ = function () {
var m = MochiKit.Base;
// Backwards compatibility aliases
m._deprecated(this, 'Color', 'MochiKit.Color.Color', '1.1');
m._deprecated(this, 'getElementsComputedStyle', 'MochiKit.Style.getStyle', '1.1');
m.nameFunctions(this);
};
MochiKit.Visual.__new__();
MochiKit.Base.nameFunctions(MochiKit.Visual);
MochiKit.Base._exportSymbols(this, MochiKit.Visual);

View File

@ -1,18 +0,0 @@
dojo.kwCompoundRequire({
"common": [
"MochiKit.Base",
"MochiKit.Iter",
"MochiKit.Logging",
"MochiKit.DateTime",
"MochiKit.Format",
"MochiKit.Async",
"MochiKit.DOM",
"MochiKit.Style",
"MochiKit.LoggingPane",
"MochiKit.Color",
"MochiKit.Signal",
"MochiKit.Position",
"MochiKit.Visual"
]
});
dojo.provide("MochiKit.*");

View File

@ -81,11 +81,11 @@ function run() {
Clipperz.PM.RunTime.mainController.run(shouldShowRegistrationForm);
//Clipperz.log("HASH: " + window.location.hash);
if (window.location.hash != "") {
window.location.hash = ""
}
//Clipperz.log("HASH cleaned");
//Clipperz.log("HASH: " + window.location.hash);
// if (window.location.hash != "") {
// window.location.hash = ""
// }
// Clipperz.log("HASH cleaned");
// #credentials=base64encoded({username:'joe', passphrase:'clipperz'})
// MochiKit.Signal.signal(Clipperz.Signal.NotificationCenter, 'doLogin', {username:'joe', passphrase:'clipperz'});
}

View File

@ -1,8 +1,11 @@
{
"copyright.values": {
"mochikit.repository": "http://svn.mochikit.com/mochikit/trunk/",
"mochikit.version": "1506"
"mochikit.repository": "https://github.com/mochi/mochikit.git",
"mochikit.version": "fe8d17bb9ac0a4e5ad4a8d5c2c94a6fac1c92d75"
},
"html.template": "index_template.html",
"js": [
"MochiKit/Base.js",
"MochiKit/Iter.js",

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.Crypto.AES_v3 - TEST</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -32,7 +32,6 @@ refer to http://www.clipperz.com.
</script>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<script> jslog_config_enabled = true; </script>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -63,7 +63,6 @@ refer to http://www.clipperz.com.
</script>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.Crypto.Usage - TEST</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.Date - test</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<!-- script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script -->
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.Proxy - TEST</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.Toll - test</title>
<script type="text/javascript" src="../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../SimpleTest/test.css">

View File

@ -28,7 +28,6 @@ refer to http://www.clipperz.com.
<title>Clipperz.PM.UI.Web.MainController - test</title>
<script type="text/javascript" src="../../../../../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../../../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../../../../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../../../../../SimpleTest/test.css">

View File

@ -26,7 +26,6 @@ refer to http://www.clipperz.com.
<html>
<head>
<script type="text/javascript" src="../../../js/MochiKit/MochiKit.js"></script>
<script type="text/javascript" src="../../../js/JSLog/jslog.js"></script>
<script type="text/javascript" src="../../SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="../../SimpleTest/test.css">

View File

@ -101,9 +101,7 @@ refer to http://www.clipperz.com.
Clipperz_IEisBroken = true;
</script><![endif]-->
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/web.css" />
</head>
<body>

View File

@ -99,9 +99,7 @@ refer to http://www.clipperz.com.
Clipperz_IEisBroken = true;
</script><![endif]-->
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/clipperz.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/compact.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/clipperz/ytheme-clipperz.css" />
<link rel="stylesheet" type="text/css" href="../../../../css/web.css" />
<style>