X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6:/adapter/jquery/ext-jquery-adapter-debug.js?ds=sidebyside diff --git a/adapter/jquery/ext-jquery-adapter-debug.js b/adapter/jquery/ext-jquery-adapter-debug.js index 2135c6d3..47e8b37a 100644 --- a/adapter/jquery/ext-jquery-adapter-debug.js +++ b/adapter/jquery/ext-jquery-adapter-debug.js @@ -1,10 +1,9 @@ /*! - * Ext JS Library 3.1.1 - * Copyright(c) 2006-2010 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ - // for old browsers window.undefined = window.undefined; @@ -19,7 +18,12 @@ Ext = { * The version of the framework * @type String */ - version : '3.1.1' + version : '3.3.1', + versionDetail : { + major : 3, + minor : 3, + patch : 1 + } }; /** @@ -51,6 +55,7 @@ Ext.apply = function(o, c, defaults){ return r.test(ua); }, DOC = document, + docMode = DOC.documentMode, isStrict = DOC.compatMode == "CSS1Compat", isOpera = check(/opera/), isChrome = check(/\bchrome\b/), @@ -60,8 +65,8 @@ Ext.apply = function(o, c, defaults){ isSafari3 = isSafari && check(/version\/3/), isSafari4 = isSafari && check(/version\/4/), isIE = !isOpera && check(/msie/), - isIE7 = isIE && check(/msie 7/), - isIE8 = isIE && check(/msie 8/), + isIE7 = isIE && (check(/msie 7/) || docMode == 7), + isIE8 = isIE && (check(/msie 8/) && docMode != 7), isIE6 = isIE && !isIE7 && !isIE8, isGecko = !isWebKit && check(/gecko/), isGecko2 = isGecko && check(/rv:1\.8/), @@ -109,6 +114,14 @@ Ext.apply = function(o, c, defaults){ * @property enableFx */ + /** + * HIGHLY EXPERIMENTAL + * True to force css based border-box model override and turning off javascript based adjustments. This is a + * runtime configuration and must be set before onReady. + * @type Boolean + */ + enableForcedBoxModel : false, + /** * True to automatically uncache orphaned Ext.Elements periodically (defaults to true) * @type Boolean @@ -227,7 +240,7 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, { var oc = Object.prototype.constructor; return function(sb, sp, overrides){ - if(Ext.isObject(sp)){ + if(typeof sp == 'object'){ overrides = sp; sp = sb; sb = overrides.constructor != oc ? overrides.constructor : function(){sp.apply(this, arguments);}; @@ -394,7 +407,7 @@ Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", false); // returns {foo: "1", bar: ["2" } : function(a, i, j){ return Array.prototype.slice.call(a, i || 0, j || a.length); - } + }; }(), isIterable : function(v){ @@ -475,7 +488,7 @@ Ext.urlDecode("foo=1&bar=2&bar=3&bar=4", false); // returns {foo: "1", bar: ["2" if(Ext.isIterable(obj)){ Ext.each(obj, fn, scope); return; - }else if(Ext.isObject(obj)){ + }else if(typeof obj == 'object'){ for(var prop in obj){ if(obj.hasOwnProperty(prop)){ if(fn.call(scope || obj, prop, obj[prop], obj) === false){ @@ -516,7 +529,7 @@ function(el){ if (el.dom){ return el.dom; } else { - if (Ext.isString(el)) { + if (typeof el == 'string') { var e = DOC.getElementById(el); // IE returns elements with the 'name' and 'id' attribute. // we do a strict check to return the element with only the id attribute @@ -541,6 +554,22 @@ function(el){ getBody : function(){ return Ext.get(DOC.body || DOC.documentElement); }, + + /** + * Returns the current document body as an {@link Ext.Element}. + * @return Ext.Element The document body + */ + getHead : function() { + var head; + + return function() { + if (head == undefined) { + head = Ext.get(DOC.getElementsByTagName("head")[0]); + } + + return head; + }; + }(), /** * Removes a DOM node from the document. @@ -562,7 +591,7 @@ function(el){ d.innerHTML = ''; delete Ext.elCache[n.id]; } - } + }; }() : function(n){ if(n && n.parentNode && n.tagName != 'BODY'){ (Ext.enableNestedListenerRemoval) ? Ext.EventManager.purgeElement(n, true) : Ext.EventManager.removeAll(n); @@ -665,7 +694,7 @@ function(el){ * @return {Boolean} */ isElement : function(v) { - return !!v && v.tagName; + return v ? !!v.tagName : false; }, /** @@ -792,7 +821,7 @@ Company.data.CustomStore = function(config) { ... } Ext.ns = Ext.namespace; })(); -Ext.ns("Ext.util", "Ext.lib", "Ext.data"); +Ext.ns('Ext.util', 'Ext.lib', 'Ext.data', 'Ext.supports'); Ext.elCache = {}; @@ -1020,688 +1049,6 @@ Ext.applyIf(Array.prototype, { return this; } }); -/** - * @class Ext - */ - -Ext.ns("Ext.grid", "Ext.list", "Ext.dd", "Ext.tree", "Ext.form", "Ext.menu", - "Ext.state", "Ext.layout", "Ext.app", "Ext.ux", "Ext.chart", "Ext.direct"); - /** - * Namespace alloted for extensions to the framework. - * @property ux - * @type Object - */ - -Ext.apply(Ext, function(){ - var E = Ext, - idSeed = 0, - scrollWidth = null; - - return { - /** - * A reusable empty function - * @property - * @type Function - */ - emptyFn : function(){}, - - /** - * URL to a 1x1 transparent gif image used by Ext to create inline icons with CSS background images. - * In older versions of IE, this defaults to "http://extjs.com/s.gif" and you should change this to a URL on your server. - * For other browsers it uses an inline data URL. - * @type String - */ - BLANK_IMAGE_URL : Ext.isIE6 || Ext.isIE7 || Ext.isAir ? - 'http:/' + '/extjs.com/s.gif' : - 'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', - - extendX : function(supr, fn){ - return Ext.extend(supr, fn(supr.prototype)); - }, - - /** - * Returns the current HTML document object as an {@link Ext.Element}. - * @return Ext.Element The document - */ - getDoc : function(){ - return Ext.get(document); - }, - - /** - * Utility method for validating that a value is numeric, returning the specified default value if it is not. - * @param {Mixed} value Should be a number, but any type will be handled appropriately - * @param {Number} defaultValue The value to return if the original value is non-numeric - * @return {Number} Value, if numeric, else defaultValue - */ - num : function(v, defaultValue){ - v = Number(Ext.isEmpty(v) || Ext.isArray(v) || Ext.isBoolean(v) || (Ext.isString(v) && v.trim().length == 0) ? NaN : v); - return isNaN(v) ? defaultValue : v; - }, - - /** - *

Utility method for returning a default value if the passed value is empty.

- *

The value is deemed to be empty if it is

- * @param {Mixed} value The value to test - * @param {Mixed} defaultValue The value to return if the original value is empty - * @param {Boolean} allowBlank (optional) true to allow zero length strings to qualify as non-empty (defaults to false) - * @return {Mixed} value, if non-empty, else defaultValue - */ - value : function(v, defaultValue, allowBlank){ - return Ext.isEmpty(v, allowBlank) ? defaultValue : v; - }, - - /** - * Escapes the passed string for use in a regular expression - * @param {String} str - * @return {String} - */ - escapeRe : function(s) { - return s.replace(/([-.*+?^${}()|[\]\/\\])/g, "\\$1"); - }, - - sequence : function(o, name, fn, scope){ - o[name] = o[name].createSequence(fn, scope); - }, - - /** - * Applies event listeners to elements by selectors when the document is ready. - * The event name is specified with an @ suffix. - *

-Ext.addBehaviors({
-    // add a listener for click on all anchors in element with id foo
-    '#foo a@click' : function(e, t){
-        // do something
-    },
-    
-    // add the same listener to multiple selectors (separated by comma BEFORE the @)
-    '#foo a, #bar span.some-class@mouseover' : function(){
-        // do something
-    }
-});
-         * 
- * @param {Object} obj The list of behaviors to apply - */ - addBehaviors : function(o){ - if(!Ext.isReady){ - Ext.onReady(function(){ - Ext.addBehaviors(o); - }); - } else { - var cache = {}, // simple cache for applying multiple behaviors to same selector does query multiple times - parts, - b, - s; - for (b in o) { - if ((parts = b.split('@'))[1]) { // for Object prototype breakers - s = parts[0]; - if(!cache[s]){ - cache[s] = Ext.select(s); - } - cache[s].on(parts[1], o[b]); - } - } - cache = null; - } - }, - - /** - * Utility method for getting the width of the browser scrollbar. This can differ depending on - * operating system settings, such as the theme or font size. - * @param {Boolean} force (optional) true to force a recalculation of the value. - * @return {Number} The width of the scrollbar. - */ - getScrollBarWidth: function(force){ - if(!Ext.isReady){ - return 0; - } - - if(force === true || scrollWidth === null){ - // Append our div, do our calculation and then remove it - var div = Ext.getBody().createChild('
'), - child = div.child('div', true); - var w1 = child.offsetWidth; - div.setStyle('overflow', (Ext.isWebKit || Ext.isGecko) ? 'auto' : 'scroll'); - var w2 = child.offsetWidth; - div.remove(); - // Need to add 2 to ensure we leave enough space - scrollWidth = w1 - w2 + 2; - } - return scrollWidth; - }, - - - // deprecated - combine : function(){ - var as = arguments, l = as.length, r = []; - for(var i = 0; i < l; i++){ - var a = as[i]; - if(Ext.isArray(a)){ - r = r.concat(a); - }else if(a.length !== undefined && !a.substr){ - r = r.concat(Array.prototype.slice.call(a, 0)); - }else{ - r.push(a); - } - } - return r; - }, - - /** - * Copies a set of named properties fom the source object to the destination object. - *

example:


-ImageComponent = Ext.extend(Ext.BoxComponent, {
-    initComponent: function() {
-        this.autoEl = { tag: 'img' };
-        MyComponent.superclass.initComponent.apply(this, arguments);
-        this.initialBox = Ext.copyTo({}, this.initialConfig, 'x,y,width,height');
-    }
-});
-         * 
- * @param {Object} The destination object. - * @param {Object} The source object. - * @param {Array/String} Either an Array of property names, or a comma-delimited list - * of property names to copy. - * @return {Object} The modified object. - */ - copyTo : function(dest, source, names){ - if(Ext.isString(names)){ - names = names.split(/[,;\s]/); - } - Ext.each(names, function(name){ - if(source.hasOwnProperty(name)){ - dest[name] = source[name]; - } - }, this); - return dest; - }, - - /** - * Attempts to destroy any objects passed to it by removing all event listeners, removing them from the - * DOM (if applicable) and calling their destroy functions (if available). This method is primarily - * intended for arguments of type {@link Ext.Element} and {@link Ext.Component}, but any subclass of - * {@link Ext.util.Observable} can be passed in. Any number of elements and/or components can be - * passed into this function in a single call as separate arguments. - * @param {Mixed} arg1 An {@link Ext.Element}, {@link Ext.Component}, or an Array of either of these to destroy - * @param {Mixed} arg2 (optional) - * @param {Mixed} etc... (optional) - */ - destroy : function(){ - Ext.each(arguments, function(arg){ - if(arg){ - if(Ext.isArray(arg)){ - this.destroy.apply(this, arg); - }else if(Ext.isFunction(arg.destroy)){ - arg.destroy(); - }else if(arg.dom){ - arg.remove(); - } - } - }, this); - }, - - /** - * Attempts to destroy and then remove a set of named properties of the passed object. - * @param {Object} o The object (most likely a Component) who's properties you wish to destroy. - * @param {Mixed} arg1 The name of the property to destroy and remove from the object. - * @param {Mixed} etc... More property names to destroy and remove. - */ - destroyMembers : function(o, arg1, arg2, etc){ - for(var i = 1, a = arguments, len = a.length; i < len; i++) { - Ext.destroy(o[a[i]]); - delete o[a[i]]; - } - }, - - /** - * Creates a copy of the passed Array with falsy values removed. - * @param {Array/NodeList} arr The Array from which to remove falsy values. - * @return {Array} The new, compressed Array. - */ - clean : function(arr){ - var ret = []; - Ext.each(arr, function(v){ - if(!!v){ - ret.push(v); - } - }); - return ret; - }, - - /** - * Creates a copy of the passed Array, filtered to contain only unique values. - * @param {Array} arr The Array to filter - * @return {Array} The new Array containing unique values. - */ - unique : function(arr){ - var ret = [], - collect = {}; - - Ext.each(arr, function(v) { - if(!collect[v]){ - ret.push(v); - } - collect[v] = true; - }); - return ret; - }, - - /** - * Recursively flattens into 1-d Array. Injects Arrays inline. - * @param {Array} arr The array to flatten - * @return {Array} The new, flattened array. - */ - flatten : function(arr){ - var worker = []; - function rFlatten(a) { - Ext.each(a, function(v) { - if(Ext.isArray(v)){ - rFlatten(v); - }else{ - worker.push(v); - } - }); - return worker; - } - return rFlatten(arr); - }, - - /** - * Returns the minimum value in the Array. - * @param {Array|NodeList} arr The Array from which to select the minimum value. - * @param {Function} comp (optional) a function to perform the comparision which determines minimization. - * If omitted the "<" operator will be used. Note: gt = 1; eq = 0; lt = -1 - * @return {Object} The minimum value in the Array. - */ - min : function(arr, comp){ - var ret = arr[0]; - comp = comp || function(a,b){ return a < b ? -1 : 1; }; - Ext.each(arr, function(v) { - ret = comp(ret, v) == -1 ? ret : v; - }); - return ret; - }, - - /** - * Returns the maximum value in the Array - * @param {Array|NodeList} arr The Array from which to select the maximum value. - * @param {Function} comp (optional) a function to perform the comparision which determines maximization. - * If omitted the ">" operator will be used. Note: gt = 1; eq = 0; lt = -1 - * @return {Object} The maximum value in the Array. - */ - max : function(arr, comp){ - var ret = arr[0]; - comp = comp || function(a,b){ return a > b ? 1 : -1; }; - Ext.each(arr, function(v) { - ret = comp(ret, v) == 1 ? ret : v; - }); - return ret; - }, - - /** - * Calculates the mean of the Array - * @param {Array} arr The Array to calculate the mean value of. - * @return {Number} The mean. - */ - mean : function(arr){ - return arr.length > 0 ? Ext.sum(arr) / arr.length : undefined; - }, - - /** - * Calculates the sum of the Array - * @param {Array} arr The Array to calculate the sum value of. - * @return {Number} The sum. - */ - sum : function(arr){ - var ret = 0; - Ext.each(arr, function(v) { - ret += v; - }); - return ret; - }, - - /** - * Partitions the set into two sets: a true set and a false set. - * Example: - * Example2: - *

-// Example 1:
-Ext.partition([true, false, true, true, false]); // [[true, true, true], [false, false]]
-
-// Example 2:
-Ext.partition(
-    Ext.query("p"),
-    function(val){
-        return val.className == "class1"
-    }
-);
-// true are those paragraph elements with a className of "class1",
-// false set are those that do not have that className.
-         * 
- * @param {Array|NodeList} arr The array to partition - * @param {Function} truth (optional) a function to determine truth. If this is omitted the element - * itself must be able to be evaluated for its truthfulness. - * @return {Array} [true,false] - */ - partition : function(arr, truth){ - var ret = [[],[]]; - Ext.each(arr, function(v, i, a) { - ret[ (truth && truth(v, i, a)) || (!truth && v) ? 0 : 1].push(v); - }); - return ret; - }, - - /** - * Invokes a method on each item in an Array. - *

-// Example:
-Ext.invoke(Ext.query("p"), "getAttribute", "id");
-// [el1.getAttribute("id"), el2.getAttribute("id"), ..., elN.getAttribute("id")]
-         * 
- * @param {Array|NodeList} arr The Array of items to invoke the method on. - * @param {String} methodName The method name to invoke. - * @param {Anything} ... Arguments to send into the method invocation. - * @return {Array} The results of invoking the method on each item in the array. - */ - invoke : function(arr, methodName){ - var ret = [], - args = Array.prototype.slice.call(arguments, 2); - Ext.each(arr, function(v,i) { - if (v && Ext.isFunction(v[methodName])) { - ret.push(v[methodName].apply(v, args)); - } else { - ret.push(undefined); - } - }); - return ret; - }, - - /** - * Plucks the value of a property from each item in the Array - *

-// Example:
-Ext.pluck(Ext.query("p"), "className"); // [el1.className, el2.className, ..., elN.className]
-         * 
- * @param {Array|NodeList} arr The Array of items to pluck the value from. - * @param {String} prop The property name to pluck from each element. - * @return {Array} The value from each item in the Array. - */ - pluck : function(arr, prop){ - var ret = []; - Ext.each(arr, function(v) { - ret.push( v[prop] ); - }); - return ret; - }, - - /** - *

Zips N sets together.

- *

-// Example 1:
-Ext.zip([1,2,3],[4,5,6]); // [[1,4],[2,5],[3,6]]
-// Example 2:
-Ext.zip(
-    [ "+", "-", "+"],
-    [  12,  10,  22],
-    [  43,  15,  96],
-    function(a, b, c){
-        return "$" + a + "" + b + "." + c
-    }
-); // ["$+12.43", "$-10.15", "$+22.96"]
-         * 
- * @param {Arrays|NodeLists} arr This argument may be repeated. Array(s) to contribute values. - * @param {Function} zipper (optional) The last item in the argument list. This will drive how the items are zipped together. - * @return {Array} The zipped set. - */ - zip : function(){ - var parts = Ext.partition(arguments, function( val ){ return !Ext.isFunction(val); }), - arrs = parts[0], - fn = parts[1][0], - len = Ext.max(Ext.pluck(arrs, "length")), - ret = []; - - for (var i = 0; i < len; i++) { - ret[i] = []; - if(fn){ - ret[i] = fn.apply(fn, Ext.pluck(arrs, i)); - }else{ - for (var j = 0, aLen = arrs.length; j < aLen; j++){ - ret[i].push( arrs[j][i] ); - } - } - } - return ret; - }, - - /** - * This is shorthand reference to {@link Ext.ComponentMgr#get}. - * Looks up an existing {@link Ext.Component Component} by {@link Ext.Component#id id} - * @param {String} id The component {@link Ext.Component#id id} - * @return Ext.Component The Component, undefined if not found, or null if a - * Class was found. - */ - getCmp : function(id){ - return Ext.ComponentMgr.get(id); - }, - - /** - * By default, Ext intelligently decides whether floating elements should be shimmed. If you are using flash, - * you may want to set this to true. - * @type Boolean - */ - useShims: E.isIE6 || (E.isMac && E.isGecko2), - - // inpired by a similar function in mootools library - /** - * Returns the type of object that is passed in. If the object passed in is null or undefined it - * return false otherwise it returns one of the following values:
    - *
  • string: If the object passed is a string
  • - *
  • number: If the object passed is a number
  • - *
  • boolean: If the object passed is a boolean value
  • - *
  • date: If the object passed is a Date object
  • - *
  • function: If the object passed is a function reference
  • - *
  • object: If the object passed is an object
  • - *
  • array: If the object passed is an array
  • - *
  • regexp: If the object passed is a regular expression
  • - *
  • element: If the object passed is a DOM Element
  • - *
  • nodelist: If the object passed is a DOM NodeList
  • - *
  • textnode: If the object passed is a DOM text node and contains something other than whitespace
  • - *
  • whitespace: If the object passed is a DOM text node and contains only whitespace
  • - *
- * @param {Mixed} object - * @return {String} - */ - type : function(o){ - if(o === undefined || o === null){ - return false; - } - if(o.htmlElement){ - return 'element'; - } - var t = typeof o; - if(t == 'object' && o.nodeName) { - switch(o.nodeType) { - case 1: return 'element'; - case 3: return (/\S/).test(o.nodeValue) ? 'textnode' : 'whitespace'; - } - } - if(t == 'object' || t == 'function') { - switch(o.constructor) { - case Array: return 'array'; - case RegExp: return 'regexp'; - case Date: return 'date'; - } - if(Ext.isNumber(o.length) && Ext.isFunction(o.item)) { - return 'nodelist'; - } - } - return t; - }, - - intercept : function(o, name, fn, scope){ - o[name] = o[name].createInterceptor(fn, scope); - }, - - // internal - callback : function(cb, scope, args, delay){ - if(Ext.isFunction(cb)){ - if(delay){ - cb.defer(delay, scope, args || []); - }else{ - cb.apply(scope, args || []); - } - } - } - }; -}()); - -/** - * @class Function - * These functions are available on every Function object (any JavaScript function). - */ -Ext.apply(Function.prototype, { - /** - * Create a combined function call sequence of the original function + the passed function. - * The resulting function returns the results of the original function. - * The passed fcn is called with the parameters of the original function. Example usage: - *

-var sayHi = function(name){
-    alert('Hi, ' + name);
-}
-
-sayHi('Fred'); // alerts "Hi, Fred"
-
-var sayGoodbye = sayHi.createSequence(function(name){
-    alert('Bye, ' + name);
-});
-
-sayGoodbye('Fred'); // both alerts show
-
- * @param {Function} fcn The function to sequence - * @param {Object} scope (optional) The scope (this reference) in which the passed function is executed. - * If omitted, defaults to the scope in which the original function is called or the browser window. - * @return {Function} The new function - */ - createSequence : function(fcn, scope){ - var method = this; - return !Ext.isFunction(fcn) ? - this : - function(){ - var retval = method.apply(this || window, arguments); - fcn.apply(scope || this || window, arguments); - return retval; - }; - } -}); - - -/** - * @class String - * These functions are available as static methods on the JavaScript String object. - */ -Ext.applyIf(String, { - - /** - * Escapes the passed string for ' and \ - * @param {String} string The string to escape - * @return {String} The escaped string - * @static - */ - escape : function(string) { - return string.replace(/('|\\)/g, "\\$1"); - }, - - /** - * Pads the left side of a string with a specified character. This is especially useful - * for normalizing number and date strings. Example usage: - *

-var s = String.leftPad('123', 5, '0');
-// s now contains the string: '00123'
-     * 
- * @param {String} string The original string - * @param {Number} size The total length of the output string - * @param {String} char (optional) The character with which to pad the original string (defaults to empty string " ") - * @return {String} The padded string - * @static - */ - leftPad : function (val, size, ch) { - var result = String(val); - if(!ch) { - ch = " "; - } - while (result.length < size) { - result = ch + result; - } - return result; - } -}); - -/** - * Utility function that allows you to easily switch a string between two alternating values. The passed value - * is compared to the current string, and if they are equal, the other value that was passed in is returned. If - * they are already different, the first value passed in is returned. Note that this method returns the new value - * but does not change the current string. - *

-// alternate sort directions
-sort = sort.toggle('ASC', 'DESC');
-
-// instead of conditional logic:
-sort = (sort == 'ASC' ? 'DESC' : 'ASC');
-
- * @param {String} value The value to compare to the current string - * @param {String} other The new value to use if the string already equals the first value passed in - * @return {String} The new value - */ -String.prototype.toggle = function(value, other){ - return this == value ? other : value; -}; - -/** - * Trims whitespace from either end of a string, leaving spaces within the string intact. Example: - *

-var s = '  foo bar  ';
-alert('-' + s + '-');         //alerts "- foo bar -"
-alert('-' + s.trim() + '-');  //alerts "-foo bar-"
-
- * @return {String} The trimmed string - */ -String.prototype.trim = function(){ - var re = /^\s+|\s+$/g; - return function(){ return this.replace(re, ""); }; -}(); - -// here to prevent dependency on Date.js -/** - Returns the number of milliseconds between this date and date - @param {Date} date (optional) Defaults to now - @return {Number} The diff in milliseconds - @member Date getElapsed - */ -Date.prototype.getElapsed = function(date) { - return Math.abs((date || new Date()).getTime()-this.getTime()); -}; - - -/** - * @class Number - */ -Ext.applyIf(Number.prototype, { - /** - * Checks whether or not the current number is within a desired range. If the number is already within the - * range it is returned, otherwise the min or max value is returned depending on which side of the range is - * exceeded. Note that this method returns the constrained value but does not change the current number. - * @param {Number} min The minimum number in the range - * @param {Number} max The maximum number in the range - * @return {Number} The constrained value if outside the range, otherwise the current value - */ - constrain : function(min, max){ - return Math.min(Math.max(this, min), max); - } -}); /** * @class Ext.util.TaskRunner * Provides the ability to execute one or more arbitrary tasks in a multithreaded @@ -1728,6 +1075,7 @@ Ext.TaskMgr.start({ }); * + *

See the {@link #start} method for details about how to configure a task object.

* Also see {@link Ext.util.DelayedTask}. * * @constructor @@ -1799,21 +1147,25 @@ Ext.util.TaskRunner = function(interval){ /** * Starts a new task. * @method start - * @param {Object} task A config object that supports the following properties:

+ *

Before each invocation, Ext injects the property taskRunCount into the task object so + * that calculations based on the repeat count can be performed.

* @return {Object} The task */ this.start = function(task){ @@ -1867,6 +1219,7 @@ var task = { } Ext.TaskMgr.start(task); + *

See the {@link #start} method for details about how to configure a task object.

* @singleton */ Ext.TaskMgr = new Ext.util.TaskRunner();if(typeof jQuery == "undefined"){ @@ -1889,7 +1242,7 @@ Ext.lib.Dom = { isAncestor : function(p, c){ var ret = false; - + p = Ext.getDom(p); c = Ext.getDom(c); if (p && c) { @@ -1899,10 +1252,10 @@ Ext.lib.Dom = { return !!(p.compareDocumentPosition(c) & 16); } else { while (c = c.parentNode) { - ret = c == p || ret; + ret = c == p || ret; } - } - } + } + } return ret; }, @@ -2130,15 +1483,15 @@ Ext.lib.Ajax = function(){ } }; }; - + var createResponse = function(cb, xhr){ var headerObj = {}, - headerStr, + headerStr, t, s; try { - headerStr = xhr.getAllResponseHeaders(); + headerStr = xhr.getAllResponseHeaders(); Ext.each(headerStr.replace(/\r\n/g, '\n').split('\n'), function(v){ t = v.indexOf(':'); if(t >= 0){ @@ -2150,15 +1503,19 @@ Ext.lib.Ajax = function(){ } }); } catch(e) {} - + return { responseText: xhr.responseText, responseXML : xhr.responseXML, argument: cb.argument, status: xhr.status, statusText: xhr.statusText, - getResponseHeader : function(header){return headerObj[header.toLowerCase()];}, - getAllResponseHeaders : function(){return headerStr} + getResponseHeader : function(header){ + return headerObj[header.toLowerCase()]; + }, + getAllResponseHeaders : function(){ + return headerStr; + } }; }; return { @@ -2190,12 +1547,12 @@ Ext.lib.Ajax = function(){ } if(hs){ o.beforeSend = function(xhr){ - for(var h in hs){ - if(hs.hasOwnProperty(h)){ + for (var h in hs) { + if (hs.hasOwnProperty(h)) { xhr.setRequestHeader(h, hs[h]); } } - } + }; } } jQuery.ajax(o); @@ -2320,9 +1677,10 @@ Ext.lib.Anim = function(){ if (args.top.from) e.setTop(args.top.from); break; + // jQuery can't handle callback, scope, and xy arguments, so break here case 'callback': case 'scope': - // jQuery can't handle callback and scope arguments, so break here + case 'xy': break; default: