[WebUI] Update extjs to 3.4.1.1

Better late than never...

http://cdn.sencha.com/ext/commercial/3.4.1.1/release-notes.html
This commit is contained in:
Calum Lind 2018-10-08 13:02:16 +01:00
parent 5743382c65
commit d5dea44689
6 changed files with 8032 additions and 34251 deletions

1
.gitattributes vendored
View File

@ -2,3 +2,4 @@
.gitmodules export-ignore
.gitignore export-ignore
*.py diff=python
ext-all.js diff=minjs

View File

@ -1,9 +1,23 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
/*
This file is part of Ext JS 3.4
Copyright (c) 2011-2013 Sencha Inc
Contact: http://www.sencha.com/contact
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
Build date: 2013-04-03 15:07:25
*/
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td{margin:0;padding:0;}img,body,html{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal;}ol,ul {list-style:none;}caption,th {text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;}q:before,q:after{content:'';}
.ext-forced-border-box, .ext-forced-border-box * {
@ -105,9 +119,12 @@ html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,bloc
}
.x-unselectable, .x-unselectable * {
-moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select:ignore;
user-select: none;
-o-user-select: none;
-ms-user-select: none;
-moz-user-select: -moz-none;
-webkit-user-select: none;
cursor:default;
}
.x-repaint {
@ -657,27 +674,28 @@ ul.x-tab-strip li.x-tab-edge {
}
/*
* Horrible hack for IE8 in quirks mode
* For IE8/9 in quirks mode
*/
.ext-ie8 .x-tab-strip li {
position: relative;
}
.ext-border-box .ext-ie8 .x-tab-strip-top .x-tab-right {
.ext-border-box .ext-ie8 .x-tab-strip-top .x-tab-right, .ext-border-box .ext-ie9 .x-tab-strip-top .x-tab-right {
top: 1px;
}
.ext-ie8 .x-tab-strip-top {
padding-top: 1;
.ext-ie8 .x-tab-strip-top, .ext-ie9 .x-tab-strip-top {
padding-top: 1px;
}
.ext-border-box .ext-ie8 .x-tab-strip-top {
.ext-border-box .ext-ie8 .x-tab-strip-top, .ext-border-box .ext-ie9 .x-tab-strip-top {
padding-top: 0;
}
.ext-ie8 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
.ext-ie8 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close, .ext-ie9 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
top:3px;
}
.ext-border-box .ext-ie8 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
.ext-border-box .ext-ie8 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close,
.ext-border-box .ext-ie9 .x-tab-strip .x-tab-strip-closable a.x-tab-strip-close {
top:4px;
}
.ext-ie8 .x-tab-strip-bottom .x-tab-right{
.ext-ie8 .x-tab-strip-bottom .x-tab-right, .ext-ie9 .x-tab-strip-bottom .x-tab-right{
top:0;
}
@ -2685,6 +2703,11 @@ a.x-grid3-hd-btn:hover {
top:-1px;
}
.x-grid-editor .x-form-check-wrap {
text-align: center;
margin-top: -4px;
}
.ext-ie .x-props-grid .x-editor .x-form-text {
position:static;
top:0;

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,23 @@
/*!
* Ext JS Library 3.4.0
* Copyright(c) 2006-2011 Sencha Inc.
* licensing@sencha.com
* http://www.sencha.com/license
*/
/*
This file is part of Ext JS 3.4
Copyright (c) 2011-2013 Sencha Inc
Contact: http://www.sencha.com/contact
GNU General Public License Usage
This file may be used under the terms of the GNU General Public License version 3.0 as
published by the Free Software Foundation and appearing in the file LICENSE included in the
packaging of this file.
Please review the following information to ensure the GNU General Public License version 3.0
requirements will be met: http://www.gnu.org/copyleft/gpl.html.
If you are unsure which license is appropriate for your use, please contact the sales department
at http://www.sencha.com/contact.
Build date: 2013-04-03 15:07:25
*/
// for old browsers
window.undefined = window.undefined;
@ -18,11 +32,11 @@ Ext = {
* The version of the framework
* @type String
*/
version : '3.4.0',
version : '3.4.1.1',
versionDetail : {
major : 3,
minor : 4,
patch : 0
patch : 1.1
}
};
@ -65,19 +79,81 @@ 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/) || docMode == 7),
isIE8 = isIE && (check(/msie 8/) && docMode != 7),
isIE9 = isIE && check(/msie 9/),
isIE6 = isIE && !isIE7 && !isIE8 && !isIE9,
isIE7 = isIE && ((check(/msie 7/) && docMode != 8 && docMode != 9 && docMode != 10) || docMode == 7),
isIE8 = isIE && ((check(/msie 8/) && docMode != 7 && docMode != 9 && docMode != 10) || docMode == 8),
isIE9 = isIE && ((check(/msie 9/) && docMode != 7 && docMode != 8 && docMode != 10) || docMode == 9),
isIE10 = isIE && ((check(/msie 10/) && docMode != 7 && docMode != 8 && docMode != 9) || docMode == 10),
isIE6 = isIE && check(/msie 6/),
isIE9m = isIE && (isIE6 || isIE7 || isIE8 || isIE9),
isGecko = !isWebKit && check(/gecko/),
isGecko2 = isGecko && check(/rv:1\.8/),
isGecko3 = isGecko && check(/rv:1\.9/),
isBorderBox = isIE && !isStrict,
isBorderBox = isIE9m && !isStrict,
isWindows = check(/windows|win32/),
isMac = check(/macintosh|mac os x/),
isAir = check(/adobeair/),
isLinux = check(/linux/),
isSecure = /^https/i.test(window.location.protocol);
isSecure = /^https/i.test(window.location.protocol),
noArgs = [],
nonEnumerables = [],
emptyFn = Ext.emptyFn,
t = Ext.apply({}, {
constructor: emptyFn,
toString: emptyFn,
valueOf: emptyFn
}),
callOverrideParent = function () {
var method = callOverrideParent.caller.caller; // skip callParent (our caller)
return method.$owner.prototype[method.$name].apply(this, arguments);
};
if (t.constructor !== emptyFn) {
nonEnumerables.push('constructor');
}
if (t.toString !== emptyFn) {
nonEnumerables.push('toString');
}
if (t.valueOf !== emptyFn) {
nonEnumerables.push('valueOf');
}
if (!nonEnumerables.length) {
nonEnumerables = null;
}
// Create the abstract Base class to provide an empty constructor and callParent implementations
function Base () {
//
}
Ext.apply(Base, {
$isClass: true,
callParent: function (args) {
var method;
// This code is intentionally inlined for the least number of debugger stepping
return (method = this.callParent.caller) && (method.$previous ||
((method = method.$owner ? method : method.caller) &&
method.$owner.superclass.self[method.$name])).apply(this, args || noArgs);
}
});
Base.prototype = {
constructor: function() {
},
callParent: function(args) {
// NOTE: this code is deliberately as few expressions (and no function calls)
// as possible so that a debugger can skip over this noise with the minimum number
// of steps. Basically, just hit Step Into until you are where you really wanted
// to be.
var method,
superMethod = (method = this.callParent.caller) && (method.$previous ||
((method = method.$owner ? method : method.caller) &&
method.$owner.superclass[method.$name]));
return superMethod.apply(this, args || noArgs);
}
};
// remove css image flicker
if(isIE6){
@ -270,29 +346,375 @@ MyGridPanel = Ext.extend(Ext.grid.GridPanel, {
};
}(),
global: (function () {
return this;
})(),
Base: Base,
namespaceCache: {},
createNamespace: function (namespaceOrClass, isClass) {
var cache = Ext.namespaceCache,
namespace = isClass ? namespaceOrClass.substring(0, namespaceOrClass.lastIndexOf('.'))
: namespaceOrClass,
ns = cache[namespace],
i, n, part, parts, partials;
if (!ns) {
ns = Ext.global;
if (namespace) {
partials = [];
parts = namespace.split('.');
for (i = 0, n = parts.length; i < n; ++i) {
part = parts[i];
ns = ns[part] || (ns[part] = {});
partials.push(part);
cache[partials.join('.')] = ns; // build up prefixes as we go
}
}
}
return ns;
},
getClassByName: function (className) {
var parts = className.split('.'),
cls = Ext.global,
n = parts.length,
i;
for (i = 0; cls && i < n; ++i) {
cls = cls[parts[i]];
}
return cls || null;
},
addMembers: function (cls, target, members, handleNonEnumerables) {
var i, name, member;
for (name in members) {
if (members.hasOwnProperty(name)) {
member = members[name];
if (typeof member == 'function') {
member.$owner = cls;
member.$name = name;
}
target[name] = member;
}
}
if (handleNonEnumerables && nonEnumerables) {
for (i = nonEnumerables.length; i-- > 0; ) {
name = nonEnumerables[i];
if (members.hasOwnProperty(name)) {
member = members[name];
if (typeof member == 'function') {
member.$owner = cls;
member.$name = name;
}
target[name] = member;
}
}
}
},
/**
* Adds a list of functions to the prototype of an existing class, overwriting any existing methods with the same name.
* Usage:<pre><code>
Ext.override(MyClass, {
newMethod1: function(){
// etc.
},
newMethod2: function(foo){
// etc.
}
});
</code></pre>
* @param {Object} origclass The class to override
* @param {Object} overrides The list of functions to add to origClass. This should be specified as an object literal
* containing one or more methods.
* @method
* Defines a class or override. A basic class is defined like this:
*
* Ext.define('My.awesome.Class', {
* someProperty: 'something',
*
* someMethod: function(s) {
* alert(s + this.someProperty);
* }
*
* ...
* });
*
* var obj = new My.awesome.Class();
*
* obj.someMethod('Say '); // alerts 'Say something'
*
* To create an anonymous class, pass `null` for the `className`:
*
* Ext.define(null, {
* constructor: function () {
* // ...
* }
* });
*
* In some cases, it is helpful to create a nested scope to contain some private
* properties. The best way to do this is to pass a function instead of an object
* as the second parameter. This function will be called to produce the class
* body:
*
* Ext.define('MyApp.foo.Bar', function () {
* var id = 0;
*
* return {
* nextId: function () {
* return ++id;
* }
* };
* });
*
* When using this form of `Ext.define`, the function is passed a reference to its
* class. This can be used as an efficient way to access any static properties you
* may have:
*
* Ext.define('MyApp.foo.Bar', function (Bar) {
* return {
* statics: {
* staticMethod: function () {
* // ...
* }
* },
*
* method: function () {
* return Bar.staticMethod();
* }
* };
* });
*
* To define an override, include the `override` property. The content of an
* override is aggregated with the specified class in order to extend or modify
* that class. This can be as simple as setting default property values or it can
* extend and/or replace methods. This can also extend the statics of the class.
*
* One use for an override is to break a large class into manageable pieces.
*
* // File: /src/app/Panel.js
*
* Ext.define('My.app.Panel', {
* extend: 'Ext.panel.Panel',
*
* constructor: function (config) {
* this.callParent(arguments); // calls Ext.panel.Panel's constructor
* //...
* },
*
* statics: {
* method: function () {
* return 'abc';
* }
* }
* });
*
* // File: /src/app/PanelPart2.js
* Ext.define('My.app.PanelPart2', {
* override: 'My.app.Panel',
*
* constructor: function (config) {
* this.callParent(arguments); // calls My.app.Panel's constructor
* //...
* }
* });
*
* Another use of overrides is to provide optional parts of classes that can be
* independently required. In this case, the class may even be unaware of the
* override altogether.
*
* Ext.define('My.ux.CoolTip', {
* override: 'Ext.tip.ToolTip',
*
* constructor: function (config) {
* this.callParent(arguments); // calls Ext.tip.ToolTip's constructor
* //...
* }
* });
*
* Overrides can also contain statics:
*
* Ext.define('My.app.BarMod', {
* override: 'Ext.foo.Bar',
*
* statics: {
* method: function (x) {
* return this.callParent([x * 2]); // call Ext.foo.Bar.method
* }
* }
* });
*
* @param {String} className The class name to create in string dot-namespaced format, for example:
* 'My.very.awesome.Class', 'FeedViewer.plugin.CoolPager'
* It is highly recommended to follow this simple convention:
* - The root and the class name are 'CamelCased'
* - Everything else is lower-cased
* Pass `null` to create an anonymous class.
* @param {Object} data The key - value pairs of properties to apply to this class. Property names can be of any valid
* strings, except those in the reserved listed below:
* - `mixins`
* - `statics`
* - `config`
* - `alias`
* - `self`
* - `singleton`
* - `alternateClassName`
* - `override`
*
* @param {Function} createdFn Optional callback to execute after the class is created, the execution scope of which
* (`this`) will be the newly created class itself.
* @return {Ext.Base}
* @markdown
* @member Ext
* @method define
*/
define: function (className, body, createdFn) {
var override = body.override,
cls, extend, name, namespace;
if (override) {
delete body.override;
cls = Ext.getClassByName(override);
Ext.override(cls, body);
} else {
if (className) {
namespace = Ext.createNamespace(className, true);
name = className.substring(className.lastIndexOf('.')+1);
}
cls = function ctor () {
this.constructor.apply(this, arguments);
}
if (className) {
cls.displayName = className;
}
cls.$isClass = true;
cls.callParent = Ext.Base.callParent;
if (typeof body == 'function') {
body = body(cls);
}
extend = body.extend;
if (extend) {
delete body.extend;
if (typeof extend == 'string') {
extend = Ext.getClassByName(extend);
}
} else {
extend = Base;
}
Ext.extend(cls, extend, body);
if (cls.prototype.constructor === cls) {
delete cls.prototype.constructor;
}
// Not extending a class which derives from Base...
if (!cls.prototype.$isClass) {
Ext.applyIf(cls.prototype, Base.prototype);
}
cls.prototype.self = cls;
if (body.xtype) {
Ext.reg(body.xtype, cls);
}
cls = body.singleton ? new cls() : cls;
if (className) {
namespace[name] = cls;
}
}
if (createdFn) {
createdFn.call(cls);
}
return cls;
},
/**
* Overrides members of the specified `target` with the given values.
*
* If the `target` is a function, it is assumed to be a constructor and the contents
* of `overrides` are applied to its `prototype` using {@link Ext#apply Ext.apply}.
*
* If the `target` is an instance of a class created using {@link #define},
* the `overrides` are applied to only that instance. In this case, methods are
* specially processed to allow them to use {@link Ext.Base#callParent}.
*
* var panel = new Ext.Panel({ ... });
*
* Ext.override(panel, {
* initComponent: function () {
* // extra processing...
*
* this.callParent();
* }
* });
*
* If the `target` is none of these, the `overrides` are applied to the `target`
* using {@link Ext#apply Ext.apply}.
*
* Please refer to {@link Ext#define Ext.define} for further details.
*
* @param {Object} target The target to override.
* @param {Object} overrides The properties to add or replace on `target`.
* @method override
*/
override : function(origclass, overrides){
if(overrides){
var p = origclass.prototype;
Ext.apply(p, overrides);
if(Ext.isIE && overrides.hasOwnProperty('toString')){
p.toString = overrides.toString;
override: function (target, overrides) {
var proto, statics;
if (overrides) {
if (target.$isClass) {
statics = overrides.statics;
if (statics) {
delete overrides.statics;
}
Ext.addMembers(target, target.prototype, overrides, true);
if (statics) {
Ext.addMembers(target, target, statics);
}
} else if (typeof target == 'function') {
proto = target.prototype;
Ext.apply(proto, overrides);
if(Ext.isIE && overrides.hasOwnProperty('toString')){
proto.toString = overrides.toString;
}
} else {
var owner = target.self,
name, value;
if (owner && owner.$isClass) {
for (name in overrides) {
if (overrides.hasOwnProperty(name)) {
value = overrides[name];
if (typeof value == 'function') {
//<debug>
if (owner.$className) {
value.displayName = owner.$className + '#' + name;
}
//</debug>
value.$name = name;
value.$owner = owner;
value.$previous = target.hasOwnProperty(name)
? target[name] // already hooked, so call previous hook
: callOverrideParent; // calls by name on prototype
}
target[name] = value;
}
}
} else {
Ext.apply(target, overrides);
if (!target.constructor.$isClass) {
target.constructor.prototype.callParent = Base.prototype.callParent;
target.constructor.callParent = Base.callParent;
}
}
}
}
},
@ -573,6 +995,7 @@ function(el){
/**
* Returns the current document body as an {@link Ext.Element}.
* @return Ext.Element The document body
* @method
*/
getHead : function() {
var head;
@ -586,15 +1009,13 @@ function(el){
};
}(),
/**
* Removes a DOM node from the document.
*/
/**
* <p>Removes this element from the document, removes all DOM event listeners, and deletes the cache reference.
* All DOM event listeners are removed from this element. If {@link Ext#enableNestedListenerRemoval} is
* <code>true</code>, then DOM event listeners are also removed from all child nodes. The body node
* will be ignored if passed in.</p>
* @param {HTMLElement} node The node to remove
* @method
*/
removeNode : isIE && !isIE8 ? function(){
var d;
@ -781,6 +1202,29 @@ function(el){
* @type Boolean
*/
isIE9 : isIE9,
/**
* True if the detected browser is Internet Explorer 10.x
* @type Boolean
*/
isIE10 : isIE10,
/**
* True if the detected browser is Internet Explorer 9.x or lower
* @type Boolean
*/
isIE9m : isIE9m,
/**
* True if the detected browser is Internet Explorer 10.x or higher
* @type Boolean
*/
isIE10p : isIE && !(isIE6 || isIE7 || isIE8 || isIE9),
// IE10 quirks behaves like Gecko/WebKit quirks, so don't include it here
// Used internally
isIEQuirks: isIE && (!isStrict && (isIE6 || isIE7 || isIE8 || isIE9)),
/**
* True if the detected browser uses the Gecko layout engine (e.g. Mozilla, Firefox).
* @type Boolean
@ -1105,37 +1549,37 @@ Ext.TaskMgr.start({
Ext.util.TaskRunner = function(interval){
interval = interval || 10;
var tasks = [],
removeQueue = [],
id = 0,
running = false,
removeQueue = [],
id = 0,
running = false,
// private
stopThread = function(){
// private
stopThread = function(){
running = false;
clearInterval(id);
id = 0;
},
// private
startThread = function(){
// private
startThread = function(){
if(!running){
running = true;
id = setInterval(runTasks, interval);
}
},
// private
removeTask = function(t){
// private
removeTask = function(t){
removeQueue.push(t);
if(t.onStop){
t.onStop.apply(t.scope || t);
}
},
// private
runTasks = function(){
var rqLen = removeQueue.length,
now = new Date().getTime();
// private
runTasks = function(){
var rqLen = removeQueue.length,
now = new Date().getTime();
if(rqLen > 0){
for(var i = 0; i < rqLen; i++){
@ -1297,16 +1741,16 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
},
getViewportHeight: function(){
return Ext.isIE ?
(Ext.isStrict ? doc.documentElement.clientHeight : doc.body.clientHeight) :
self.innerHeight;
return Ext.isIE9m ?
(Ext.isStrict ? doc.documentElement.clientHeight : doc.body.clientHeight) :
self.innerHeight;
},
getViewportWidth : function() {
return !Ext.isStrict && !Ext.isOpera ? doc.body.clientWidth :
Ext.isIE ? doc.documentElement.clientWidth : self.innerWidth;
Ext.isIE9m ? doc.documentElement.clientWidth : self.innerWidth;
},
getY : function(el) {
return this.getXY(el)[1];
},
@ -1317,17 +1761,17 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
getXY : function(el) {
var p,
pe,
b,
bt,
bl,
dbd,
x = 0,
y = 0,
scroll,
hasAbsolute,
bd = (doc.body || doc.documentElement),
ret = [0,0];
pe,
b,
bt,
bl,
dbd,
x = 0,
y = 0,
scroll,
hasAbsolute,
bd = (doc.body || doc.documentElement),
ret = [0,0];
el = Ext.getDom(el);
@ -1380,7 +1824,7 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
}
ret = [x,y];
}
}
}
return ret;
},
@ -1388,8 +1832,8 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
(el = Ext.fly(el, '_setXY')).position();
var pts = el.translatePoints(xy),
style = el.dom.style,
pos;
style = el.dom.style,
pos;
for (pos in pts) {
if (!isNaN(pts[pos])) {
@ -1719,7 +2163,7 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
_load : function(e) {
loadComplete = true;
if (Ext.isIE && e !== true) {
if (Ext.isIE9m && e !== true) {
// IE8 complains that _load is null or not an object
// so lets remove self via arguments.callee
doRemove(win, "load", arguments.callee);
@ -1769,8 +2213,7 @@ Ext.TaskMgr = new Ext.util.TaskRunner();(function(){
* http://developer.yahoo.net/yui/license.txt
*/
Ext.lib.Ajax = function() {
var activeX = ['Msxml2.XMLHTTP.6.0',
'Msxml2.XMLHTTP.3.0',
var activeX = ['Msxml2.XMLHTTP.3.0',
'Msxml2.XMLHTTP'],
CONTENTTYPE = 'Content-Type';
@ -2893,7 +3336,7 @@ Ext.lib.Ajax = function() {
}
});
})();
if (Ext.isIE) {
if (Ext.isIE9m) {
function fnCleanUp() {
var p = Function.prototype;
delete p.createSequence;
@ -2906,4 +3349,4 @@ Ext.lib.Ajax = function() {
}
window.attachEvent("onunload", fnCleanUp);
}
})();
})();

File diff suppressed because one or more lines are too long