/* This file is part of Ext JS 5.1.1.451 Copyright (c) 2011-2015 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. Version: 5.1.1.451 Build date: 2015-05-06 21:53:32 (130b7b8a6334f33aee5c2952cefb768cadb3bf78) */ var Ext = Ext || {}; Ext.Boot = Ext.Boot || (function (emptyFn) { var doc = document, apply = function (dest, src, defaults) { if (defaults) { apply(dest, defaults); } if (dest && src && typeof src == 'object') { for (var key in src) { dest[key] = src[key]; } } return dest; }, _config = { disableCaching: (/[?&](?:cache|disableCacheBuster)\b/i.test(location.search) || !(/http[s]?\:/i.test(location.href)) || /(^|[ ;])ext-cache=1/.test(doc.cookie)) ? false : true, disableCachingParam: '_dc', loadDelay: false, preserveScripts: true, charset: undefined }, cssRe = /\.css(?:\?|$)/i, resolverEl = doc.createElement('a'), isBrowser = typeof window !== 'undefined', _environment = { browser: isBrowser, node: !isBrowser && (typeof require === 'function'), phantom: (typeof phantom !== 'undefined' && phantom.fs) }, _tags = (Ext.platformTags = {}), _debug = function (message) { }, _apply = function (object, config, defaults) { if (defaults) { _apply(object, defaults); } if (object && config && typeof config === 'object') { for (var i in config) { object[i] = config[i]; } } return object; }, Boot = { loading: 0, loaded: 0, env: _environment, config: _config, scripts: { }, currentFile: null, suspendedQueue: [], currentRequest: null, syncMode: false, debug: _debug, useElements: true, listeners: [], Request: Request, Entry: Entry, detectPlatformTags: function () { var ua = navigator.userAgent, isMobile = _tags.isMobile = /Mobile(\/|\s)/.test(ua), isPhone, isDesktop, isTablet, touchSupported, isIE10, isBlackberry, element = document.createElement('div'), uaTagChecks = [ 'iPhone', 'iPod', 'Android', 'Silk', 'Android 2', 'BlackBerry', 'BB', 'iPad', 'RIM Tablet OS', 'MSIE 10', 'Trident', 'Chrome', 'Tizen', 'Firefox', 'Safari', 'Windows Phone' ], isEventSupported = function(name, tag) { if (tag === undefined) { tag = window; } var eventName = 'on' + name.toLowerCase(), isSupported = (eventName in element); if (!isSupported) { if (element.setAttribute && element.removeAttribute) { element.setAttribute(eventName, ''); isSupported = typeof element[eventName] === 'function'; if (typeof element[eventName] !== 'undefined') { element[eventName] = undefined; } element.removeAttribute(eventName); } } return isSupported; }, uaTags = {}, len = uaTagChecks.length, check, c; for (c = 0; c < len; c++) { check = uaTagChecks[c]; uaTags[check] = new RegExp(check).test(ua); } isPhone = (uaTags.iPhone || uaTags.iPod) || (!uaTags.Silk && (uaTags.Android && (uaTags['Android 2'] || isMobile))) || ((uaTags.BlackBerry || uaTags.BB) && uaTags.isMobile) || (uaTags['Windows Phone']); isTablet = (!_tags.isPhone) && ( uaTags.iPad || uaTags.Android || uaTags.Silk || uaTags['RIM Tablet OS'] || (uaTags['MSIE 10'] && /; Touch/.test(ua)) ); touchSupported = isEventSupported('touchend') || navigator.maxTouchPoints || navigator.msMaxTouchPoints; isDesktop = !isPhone && !isTablet; isIE10 = uaTags['MSIE 10']; isBlackberry = uaTags.Blackberry || uaTags.BB; apply(_tags, Boot.loadPlatformsParam(), { phone: isPhone, tablet: isTablet, desktop: isDesktop, touch: touchSupported, ios: (uaTags.iPad || uaTags.iPhone || uaTags.iPod), android: uaTags.Android || uaTags.Silk, blackberry: isBlackberry, safari: uaTags.Safari && !isBlackberry, chrome: uaTags.Chrome, ie10: isIE10, windows: isIE10 || uaTags.Trident, tizen: uaTags.Tizen, firefox: uaTags.Firefox }); }, loadPlatformsParam: function () { var paramsString = window.location.search.substr(1), paramsArray = paramsString.split("&"), params = {}, i, platforms = {}, tmpArray, tmplen, platform, name, enabled; for (i = 0; i < paramsArray.length; i++) { tmpArray = paramsArray[i].split("="); params[tmpArray[0]] = tmpArray[1]; } if (params.platformTags) { tmpArray = params.platform.split(/\W/); for (tmplen = tmpArray.length, i = 0; i < tmplen; i++) { platform = tmpArray[i].split(":"); name = platform[0]; if (platform.length > 1) { enabled = platform[1]; if (enabled === 'false' || enabled === '0') { enabled = false; } else { enabled = true; } } platforms[name] = enabled; } } return platform; }, filterPlatform: function (platform) { platform = [].concat(platform); var len, p, tag; for (len = platform.length, p = 0; p < len; p++) { tag = platform[p]; if (_tags.hasOwnProperty(tag)) { return !!_tags[tag]; } } return false; }, init: function () { var scriptEls = doc.getElementsByTagName('script'), len = scriptEls.length, re = /\/ext(\-[a-z\-]+)?\.js$/, entry, script, src, state, baseUrl, key, n, origin; for (n = 0; n < len; n++) { src = (script = scriptEls[n]).src; if (!src) { continue; } state = script.readyState || null; if (!baseUrl) { if (re.test(src)) { Boot.hasReadyState = ("readyState" in script); Boot.hasAsync = ("async" in script) || !Boot.hasReadyState; baseUrl = src; } } if (!Boot.scripts[key = Boot.canonicalUrl(src)]) { _debug("creating entry " + key + " in Boot.init"); entry = new Entry({ key: key, url: src, done: state === null || state === 'loaded' || state === 'complete', el: script, prop: 'src' }); } } if (!baseUrl) { script = scriptEls[scriptEls.length - 1]; baseUrl = script.src; Boot.hasReadyState = ('readyState' in script); Boot.hasAsync = ("async" in script) || !Boot.hasReadyState; } Boot.baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/') + 1); origin = window.location.origin || window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port: ''); Boot.origin = origin; Boot.detectPlatformTags(); Ext.filterPlatform = Boot.filterPlatform; }, canonicalUrl: function (url) { resolverEl.href = url; var ret = resolverEl.href, dc = _config.disableCachingParam, pos = dc ? ret.indexOf(dc + '=') : -1, c, end; if (pos > 0 && ((c = ret.charAt(pos - 1)) === '?' || c === '&')) { end = ret.indexOf('&', pos); end = (end < 0) ? '' : ret.substring(end); if (end && c === '?') { ++pos; end = end.substring(1); } ret = ret.substring(0, pos - 1) + end; } return ret; }, getConfig: function (name) { return name ? Boot.config[name] : Boot.config; }, setConfig: function (name, value) { if (typeof name === 'string') { Boot.config[name] = value; } else { for (var s in name) { Boot.setConfig(s, name[s]); } } return Boot; }, getHead: function () { return Boot.docHead || (Boot.docHead = doc.head || doc.getElementsByTagName('head')[0]); }, create: function (url, key, cfg) { var config = cfg || {}; config.url = url; config.key = key; return Boot.scripts[key] = new Entry(config); }, getEntry: function (url, cfg) { var key = Boot.canonicalUrl(url), entry = Boot.scripts[key]; if (!entry) { entry = Boot.create(url, key, cfg); } return entry; }, processRequest: function(request, sync) { request.loadEntries(sync); }, load: function (request) { _debug("Boot.load called"); var request = new Request(request); if (request.sync || Boot.syncMode) { return Boot.loadSync(request); } if (Boot.currentRequest) { _debug("current active request, suspending this request"); request.getEntries(); Boot.suspendedQueue.push(request); } else { Boot.currentRequest = request; Boot.processRequest(request, false); } return Boot; }, loadSync: function (request) { _debug("Boot.loadSync called"); var request = new Request(request); Boot.syncMode++; Boot.processRequest(request, true); Boot.syncMode--; return Boot; }, loadBasePrefix: function(request) { request = new Request(request); request.prependBaseUrl = true; return Boot.load(request); }, loadSyncBasePrefix: function(request) { request = new Request(request); request.prependBaseUrl = true; return Boot.loadSync(request); }, requestComplete: function(request) { var next; if (Boot.currentRequest === request) { Boot.currentRequest = null; while(Boot.suspendedQueue.length > 0) { next = Boot.suspendedQueue.shift(); if(!next.done) { _debug("resuming suspended request"); Boot.load(next); break; } } } if (!Boot.currentRequest && Boot.suspendedQueue.length == 0) { Boot.fireListeners(); } }, isLoading: function () { return !Boot.currentRequest && Boot.suspendedQueue.length == 0; }, fireListeners: function () { var listener; while (Boot.isLoading() && (listener = Boot.listeners.shift())) { listener(); } }, onBootReady: function (listener) { if (!Boot.isLoading()) { listener(); } else { Boot.listeners.push(listener); } }, getPathsFromIndexes: function (indexMap, loadOrder) { return Request.prototype.getPathsFromIndexes(indexMap, loadOrder); }, createLoadOrderMap: function(loadOrder) { return Request.prototype.createLoadOrderMap(loadOrder); }, fetch: function(url, complete, scope, async) { async = (async === undefined) ? !!complete : async; var xhr = new XMLHttpRequest(), result, status, content, exception = false, readyStateChange = function () { if (xhr && xhr.readyState == 4) { status = (xhr.status === 1223) ? 204 : (xhr.status === 0 && ((self.location || {}).protocol === 'file:' || (self.location || {}).protocol === 'ionp:')) ? 200 : xhr.status; content = xhr.responseText; result = { content: content, status: status, exception: exception }; if (complete) { complete.call(scope, result); } xhr = null; } }; if (async) { xhr.onreadystatechange = readyStateChange; } try { _debug("fetching " + url + " " + (async ? "async" : "sync")); xhr.open('GET', url, async); xhr.send(null); } catch (err) { exception = err; readyStateChange(); return result; } if (!async) { readyStateChange(); } return result; }, notifyAll: function(entry) { entry.notifyRequests(); } }; function Request(cfg) { if(cfg.$isRequest) { return cfg; } var cfg = cfg.url ? cfg : {url: cfg}, url = cfg.url, urls = url.charAt ? [ url ] : url, charset = cfg.charset || Boot.config.charset; _apply(cfg, { urls: urls, charset: charset }); _apply(this, cfg); }; Request.prototype = { $isRequest: true, createLoadOrderMap: function (loadOrder) { var len = loadOrder.length, loadOrderMap = {}, i, element; for (i = 0; i < len; i++) { element = loadOrder[i]; loadOrderMap[element.path] = element; } return loadOrderMap; }, getLoadIndexes: function (index, indexMap, loadOrder, includeUses, skipLoaded) { var item = loadOrder[index], len, i, reqs, entry, stop, added, idx, ridx, url; if (indexMap[index]) { return indexMap; } indexMap[index] = true; stop = false; while (!stop) { added = false; for (idx in indexMap) { if (indexMap.hasOwnProperty(idx)) { item = loadOrder[idx]; if (!item) { continue; } url = this.prepareUrl(item.path); entry = Boot.getEntry(url); if (!skipLoaded || !entry || !entry.done) { reqs = item.requires; if (includeUses && item.uses) { reqs = reqs.concat(item.uses); } for (len = reqs.length, i = 0; i < len; i++) { ridx = reqs[i]; if (!indexMap[ridx]) { indexMap[ridx] = true; added = true; } } } } } if (!added) { stop = true; } } return indexMap; }, getPathsFromIndexes: function (indexMap, loadOrder) { var indexes = [], paths = [], index, len, i; for (index in indexMap) { if (indexMap.hasOwnProperty(index) && indexMap[index]) { indexes.push(index); } } indexes.sort(function (a, b) { return a - b; }); for (len = indexes.length, i = 0; i < len; i++) { paths.push(loadOrder[indexes[i]].path); } return paths; }, expandUrl: function (url, indexMap, includeUses, skipLoaded) { if (typeof url == 'string') { url = [url]; } var me = this, loadOrder = me.loadOrder, loadOrderMap = me.loadOrderMap; if (loadOrder) { loadOrderMap = loadOrderMap || me.createLoadOrderMap(loadOrder); me.loadOrderMap = loadOrderMap; indexMap = indexMap || {}; var len = url.length, unmapped = [], i, item; for (i = 0; i < len; i++) { item = loadOrderMap[url[i]]; if (item) { me.getLoadIndexes(item.idx, indexMap, loadOrder, includeUses, skipLoaded); } else { unmapped.push(url[i]); } } return me.getPathsFromIndexes(indexMap, loadOrder).concat(unmapped); } return url; }, expandUrls: function (urls, includeUses) { if (typeof urls == "string") { urls = [urls]; } var expanded = [], expandMap = {}, tmpExpanded, len = urls.length, i, t, tlen, tUrl; for (i = 0; i < len; i++) { tmpExpanded = this.expandUrl(urls[i], {}, includeUses, true); for (t = 0, tlen = tmpExpanded.length; t < tlen; t++) { tUrl = tmpExpanded[t]; if (!expandMap[tUrl]) { expandMap[tUrl] = true; expanded.push(tUrl); } } } if (expanded.length == 0) { expanded = urls; } return expanded; }, expandLoadOrder: function () { var me = this, urls = me.urls, expanded; if (!me.expanded) { expanded = this.expandUrls(urls, true); me.expanded = true; } else { expanded = urls; } me.urls = expanded; if (urls.length != expanded.length) { me.sequential = true; } return me; }, getUrls: function () { this.expandLoadOrder(); return this.urls; }, prepareUrl: function(url) { if(this.prependBaseUrl) { return Boot.baseUrl + url; } return url; }, getEntries: function () { var me = this, entries = me.entries, i, entry, urls, url; if (!entries) { entries = []; urls = me.getUrls(); for (i = 0; i < urls.length; i++) { url = me.prepareUrl(urls[i]); entry = Boot.getEntry(url, { buster: me.buster, charset: me.charset }); entry.requests.push(me); entries.push(entry); } me.entries = entries; } return entries; }, loadEntries: function(sync) { var me = this, entries = me.getEntries(), len = entries.length, start = me.loadStart || 0, continueLoad, entry, i; if(sync !== undefined) { me.sync = sync; } me.loaded = me.loaded || 0; me.loading = me.loading || len; for(i = start; i < len; i++) { entry = entries[i]; if(!entry.loaded) { continueLoad = entries[i].load(me.sync); } else { continueLoad = true; } if(!continueLoad) { me.loadStart = i; entry.onDone(function(){ me.loadEntries(sync); }); break; } } me.processLoadedEntries(); }, processLoadedEntries: function () { var me = this, entries = me.getEntries(), len = entries.length, start = me.startIndex || 0, i, entry; if (!me.done) { for (i = start; i < len; i++) { entry = entries[i]; if (!entry.loaded) { me.startIndex = i; return; } if (!entry.evaluated) { entry.evaluate(); } if (entry.error) { me.error = true; } } me.notify(); } }, notify: function () { var me = this; if (!me.done) { var error = me.error, fn = me[error ? 'failure' : 'success'], delay = ('delay' in me) ? me.delay : (error ? 1 : Boot.config.chainDelay), scope = me.scope || me; me.done = true; if (fn) { if (delay === 0 || delay > 0) { setTimeout(function () { fn.call(scope, me); }, delay); } else { fn.call(scope, me); } } me.fireListeners(); Boot.requestComplete(me); } }, onDone: function(listener) { var me = this, listeners = me.listeners || (me.listeners = []); if(me.done) { listener(me); } else { listeners.push(listener); } }, fireListeners: function() { var listeners = this.listeners, listener; if(listeners) { _debug("firing request listeners"); while((listener = listeners.shift())) { listener(this); } } } }; function Entry(cfg) { if(cfg.$isEntry) { return cfg; } _debug("creating entry for " + cfg.url); var charset = cfg.charset || Boot.config.charset, manifest = Ext.manifest, loader = manifest && manifest.loader, cache = (cfg.cache !== undefined) ? cfg.cache : (loader && loader.cache), buster, busterParam; if(cache === undefined) { cache = !Boot.config.disableCaching; } if(cache === false) { buster = +new Date(); } else if(cache !== true) { buster = cache; } if(buster) { busterParam = (loader && loader.cacheParam) || Boot.config.disableCachingParam; buster = busterParam + "=" + buster; }; _apply(cfg, { charset: charset, buster: buster, requests: [] }); _apply(this, cfg); }; Entry.prototype = { $isEntry: true, done: false, evaluated: false, loaded: false, isCrossDomain: function() { var me = this; if(me.crossDomain === undefined) { _debug("checking " + me.getLoadUrl() + " for prefix " + Boot.origin); me.crossDomain = (me.getLoadUrl().indexOf(Boot.origin) !== 0); } return me.crossDomain; }, isCss: function () { var me = this; if (me.css === undefined) { me.css = me.url && cssRe.test(me.url); } return this.css; }, getElement: function (tag) { var me = this, el = me.el; if (!el) { _debug("creating element for " + me.url); if (me.isCss()) { tag = tag || "link"; el = doc.createElement(tag); if(tag == "link") { el.rel = 'stylesheet'; me.prop = 'href'; } else { me.prop="textContent"; } el.type = "text/css"; } else { tag = tag || "script"; el = doc.createElement(tag); el.type = 'text/javascript'; me.prop = 'src'; if (Boot.hasAsync) { el.async = false; } } me.el = el; } return el; }, getLoadUrl: function () { var me = this, url = Boot.canonicalUrl(me.url); if (!me.loadUrl) { me.loadUrl = !!me.buster ? (url + (url.indexOf('?') === -1 ? '?' : '&') + me.buster) : url; } return me.loadUrl; }, fetch: function (req) { var url = this.getLoadUrl(), async = !!req.async, complete = req.complete; Boot.fetch(url, complete, this, async); }, onContentLoaded: function (response) { var me = this, status = response.status, content = response.content, exception = response.exception, url = this.getLoadUrl(); me.loaded = true; if ((exception || status === 0) && !_environment.phantom) { me.error = ("Failed loading synchronously via XHR: '" + url + "'. It's likely that the file is either being loaded from a " + "different domain or from the local file system where cross " + "origin requests are not allowed for security reasons. Try " + "asynchronous loading instead.") || true; me.evaluated = true; } else if ((status >= 200 && status < 300) || status === 304 || _environment.phantom || (status === 0 && content.length > 0) ) { me.content = content; } else { me.error = ("Failed loading synchronously via XHR: '" + url + "'. Please verify that the file exists. XHR status code: " + status) || true; me.evaluated = true; } }, createLoadElement: function(callback) { var me = this, el = me.getElement(), readyStateChange = function(){ if (this.readyState === 'loaded' || this.readyState === 'complete') { if(callback) { callback(); } } }, errorFn = function() { me.error = true; if(callback) { callback(); } }; me.preserve = true; el.onerror = errorFn; if(Boot.hasReadyState) { el.onreadystatechange = readyStateChange; } else { el.onload = callback; } el[me.prop] = me.getLoadUrl(); }, onLoadElementReady: function() { Boot.getHead().appendChild(this.getElement()); this.evaluated = true; }, inject: function (content, asset) { _debug("injecting content for " + this.url); var me = this, head = Boot.getHead(), url = me.url, key = me.key, base, el, ieMode, basePath; if (me.isCss()) { me.preserve = true; basePath = key.substring(0, key.lastIndexOf("/") + 1); base = doc.createElement('base'); base.href = basePath; if(head.firstChild) { head.insertBefore(base, head.firstChild); } else { head.appendChild(base); } base.href = base.href; if (url) { content += "\n/*# sourceURL=" + key + " */"; } el = me.getElement("style"); ieMode = ('styleSheet' in el); head.appendChild(base); if(ieMode) { head.appendChild(el); el.styleSheet.cssText = content; } else { el.textContent = content; head.appendChild(el); } head.removeChild(base); } else { if (url) { content += "\n//# sourceURL=" + key; } Ext.globalEval(content); } return me; }, loadCrossDomain: function() { var me = this, complete = function(){ me.loaded = me.evaluated = me.done = true; me.notifyRequests(); }; if(me.isCss()) { me.createLoadElement(); me.evaluateLoadElement(); complete(); } else { me.createLoadElement(function(){ complete(); }); me.evaluateLoadElement(); return false; } return true; }, loadElement: function() { var me = this, complete = function(){ me.loaded = me.evaluated = me.done = true; me.notifyRequests(); }; if(me.isCss()) { return me.loadCrossDomain(); } else { me.createLoadElement(function(){ complete(); }); me.evaluateLoadElement(); } return true; }, loadSync: function() { var me = this; me.fetch({ async: false, complete: function (response) { me.onContentLoaded(response); } }); me.evaluate(); me.notifyRequests(); }, load: function (sync) { var me = this; if (!me.loaded) { if(me.loading) { return false; } me.loading = true; if (!sync) { if(me.isCrossDomain()) { return me.loadCrossDomain(); } else if(!me.isCss() && Boot.hasReadyState) { me.createLoadElement(function () { me.loaded = true; me.notifyRequests(); }); } else if(Boot.useElements) { return me.loadElement(); } else { me.fetch({ async: !sync, complete: function (response) { me.onContentLoaded(response); me.notifyRequests(); } }); } } else { me.loadSync(); } } return true; }, evaluateContent: function () { this.inject(this.content); this.content = null; }, evaluateLoadElement: function() { Boot.getHead().appendChild(this.getElement()); }, evaluate: function () { var me = this; if(!me.evaluated) { if(me.evaluating) { return; } me.evaluating = true; if(me.content !== undefined) { me.evaluateContent(); } else if(!me.error) { me.evaluateLoadElement(); } me.evaluated = me.done = true; me.cleanup(); } }, cleanup: function () { var me = this, el = me.el, prop; if (!el) { return; } if (!me.preserve) { me.el = null; el.parentNode.removeChild(el); for (prop in el) { try { if (prop !== me.prop) { el[prop] = null; } delete el[prop]; } catch (cleanEx) { } } } el.onload = el.onerror = el.onreadystatechange = emptyFn; }, notifyRequests: function () { var requests = this.requests, len = requests.length, i, request; for (i = 0; i < len; i++) { request = requests[i]; request.processLoadedEntries(); } if(this.done) { this.fireListeners(); } }, onDone: function(listener) { var me = this, listeners = me.listeners || (me.listeners = []); if(me.done) { listener(me); } else { listeners.push(listener); } }, fireListeners: function() { var listeners = this.listeners, listener; if(listeners && listeners.length > 0) { _debug("firing event listeners for url " + this.url); while((listener = listeners.shift())) { listener(this); } } } }; Ext.disableCacheBuster = function (disable, path) { var date = new Date(); date.setTime(date.getTime() + (disable ? 10 * 365 : -1) * 24 * 60 * 60 * 1000); date = date.toGMTString(); doc.cookie = 'ext-cache=1; expires=' + date + '; path=' + (path || '/'); }; if (_environment.node) { Boot.prototype.load = Boot.prototype.loadSync = function (request) { require(filePath); onLoad.call(scope); }; Boot.prototype.init = emptyFn; } Boot.init(); return Boot; }(function () { })); Ext.globalEval = Ext.globalEval || (this.execScript ? function (code) { execScript(code); } : function ($$code) { eval.call(window, $$code); }); if (!Function.prototype.bind) { (function () { var slice = Array.prototype.slice, bind = function (me) { var args = slice.call(arguments, 1), method = this; if (args.length) { return function () { var t = arguments; return method.apply(me, t.length ? args.concat(slice.call(t)) : args); }; } args = null; return function () { return method.apply(me, arguments); }; }; Function.prototype.bind = bind; bind.$extjs = true; }()); } var Ext = Ext || {}; (function(manifest){ if(!Ext.manifest) { Ext.manifest = manifest; } else { for(var name in manifest) { Ext.manifest[name] = manifest[name]; } } })({ "paths": { "Ext": "../src", "Ext.AbstractManager": "../packages/sencha-core/src/AbstractManager.js", "Ext.Ajax": "../packages/sencha-core/src/Ajax.js", "Ext.AnimationQueue": "../packages/sencha-core/src/AnimationQueue.js", "Ext.ComponentManager": "../packages/sencha-core/src/ComponentManager.js", "Ext.ComponentQuery": "../packages/sencha-core/src/ComponentQuery.js", "Ext.Evented": "../packages/sencha-core/src/Evented.js", "Ext.Factory": "../packages/sencha-core/src/mixin/Factoryable.js", "Ext.GlobalEvents": "../packages/sencha-core/src/GlobalEvents.js", "Ext.JSON": "../packages/sencha-core/src/JSON.js", "Ext.Mixin": "../packages/sencha-core/src/class/Mixin.js", "Ext.Msg": "../src/window/MessageBox.js", "Ext.String.format": "../packages/sencha-core/src/Template.js", "Ext.TaskQueue": "../packages/sencha-core/src/TaskQueue.js", "Ext.Template": "../packages/sencha-core/src/Template.js", "Ext.Widget": "../packages/sencha-core/src/Widget.js", "Ext.XTemplate": "../packages/sencha-core/src/XTemplate.js", "Ext.app": "../packages/sencha-core/src/app", "Ext.app.bindinspector": "../src/app/bindinspector", "Ext.data": "../packages/sencha-core/src/data", "Ext.direct": "../packages/sencha-core/src/direct", "Ext.dom": "../packages/sencha-core/src/dom", "Ext.dom.ButtonElement": "../src/dom/ButtonElement.js", "Ext.dom.Layer": "../src/dom/Layer.js", "Ext.event": "../packages/sencha-core/src/event", "Ext.event.publisher.MouseEnterLeave": "../src/event/publisher/MouseEnterLeave.js", "Ext.fx.Animation": "../packages/sencha-core/src/fx/Animation.js", "Ext.fx.Runner": "../packages/sencha-core/src/fx/Runner.js", "Ext.fx.State": "../packages/sencha-core/src/fx/State.js", "Ext.fx.animation": "../packages/sencha-core/src/fx/animation", "Ext.fx.easing": "../packages/sencha-core/src/fx/easing", "Ext.fx.layout": "../packages/sencha-core/src/fx/layout", "Ext.fx.runner": "../packages/sencha-core/src/fx/runner", "Ext.mixin": "../packages/sencha-core/src/mixin", "Ext.perf": "../packages/sencha-core/src/perf", "Ext.plugin.Abstract": "../packages/sencha-core/src/plugin/Abstract.js", "Ext.plugin.LazyItems": "../packages/sencha-core/src/plugin/LazyItems.js", "Ext.scroll": "../packages/sencha-core/src/scroll", "Ext.util": "../packages/sencha-core/src/util", "Ext.util.Animate": "../src/util/Animate.js", "Ext.util.CSS": "../src/util/CSS.js", "Ext.util.ClickRepeater": "../src/util/ClickRepeater.js", "Ext.util.ComponentDragger": "../src/util/ComponentDragger.js", "Ext.util.Cookies": "../src/util/Cookies.js", "Ext.util.ElementContainer": "../src/util/ElementContainer.js", "Ext.util.Floating": "../src/util/Floating.js", "Ext.util.Focusable": "../src/util/Focusable.js", "Ext.util.FocusableContainer": "../src/util/FocusableContainer.js", "Ext.util.Format.format": "../packages/sencha-core/src/Template.js", "Ext.util.KeyMap": "../src/util/KeyMap.js", "Ext.util.KeyNav": "../src/util/KeyNav.js", "Ext.util.Memento": "../src/util/Memento.js", "Ext.util.ProtoElement": "../src/util/ProtoElement.js", "Ext.util.Queue": "../src/util/Queue.js", "Ext.util.Renderable": "../src/util/Renderable.js", "Ext.util.StoreHolder": "../src/util/StoreHolder.js" }, "loadOrder": [ { "path": "../packages/sencha-core/src/class/Mixin.js", "requires": [], "uses": [], "idx": 0 }, { "path": "../packages/sencha-core/src/util/DelayedTask.js", "requires": [], "uses": [ 70 ], "idx": 1 }, { "path": "../packages/sencha-core/src/util/Event.js", "requires": [ 1 ], "uses": [], "idx": 2 }, { "path": "../packages/sencha-core/src/mixin/Identifiable.js", "requires": [], "uses": [], "idx": 3 }, { "path": "../packages/sencha-core/src/mixin/Observable.js", "requires": [ 0, 2, 3 ], "uses": [ 45 ], "idx": 4 }, { "path": "../packages/sencha-core/src/util/HashMap.js", "requires": [ 4 ], "uses": [], "idx": 5 }, { "path": "../packages/sencha-core/src/AbstractManager.js", "requires": [ 5 ], "uses": [], "idx": 6 }, { "path": "../packages/sencha-core/src/data/flash/BinaryXhr.js", "requires": [], "uses": [ 70 ], "idx": 7 }, { "path": "../packages/sencha-core/src/data/Connection.js", "requires": [ 4, 7 ], "uses": [ 43, 70 ], "idx": 8 }, { "path": "../packages/sencha-core/src/Ajax.js", "requires": [ 8 ], "uses": [], "idx": 9 }, { "path": "../packages/sencha-core/src/AnimationQueue.js", "requires": [], "uses": [], "idx": 10 }, { "path": "../packages/sencha-core/src/ComponentManager.js", "requires": [], "uses": [ 26, 43 ], "idx": 11 }, { "path": "../packages/sencha-core/src/util/Operators.js", "requires": [], "uses": [], "idx": 12 }, { "path": "../packages/sencha-core/src/util/LruCache.js", "requires": [ 5 ], "uses": [], "idx": 13 }, { "path": "../packages/sencha-core/src/ComponentQuery.js", "requires": [ 11, 12, 13 ], "uses": [ 73 ], "idx": 14 }, { "path": "../packages/sencha-core/src/Evented.js", "requires": [ 4 ], "uses": [], "idx": 15 }, { "path": "../packages/sencha-core/src/util/Positionable.js", "requires": [], "uses": [ 24, 43 ], "idx": 16 }, { "path": "../packages/sencha-core/src/dom/UnderlayPool.js", "requires": [], "uses": [ 43 ], "idx": 17 }, { "path": "../packages/sencha-core/src/dom/Underlay.js", "requires": [ 17 ], "uses": [], "idx": 18 }, { "path": "../packages/sencha-core/src/dom/Shadow.js", "requires": [ 18 ], "uses": [], "idx": 19 }, { "path": "../packages/sencha-core/src/dom/Shim.js", "requires": [ 18 ], "uses": [], "idx": 20 }, { "path": "../packages/sencha-core/src/dom/ElementEvent.js", "requires": [ 2 ], "uses": [ 27 ], "idx": 21 }, { "path": "../packages/sencha-core/src/event/publisher/Publisher.js", "requires": [], "uses": [], "idx": 22 }, { "path": "../packages/sencha-core/src/util/Offset.js", "requires": [], "uses": [], "idx": 23 }, { "path": "../packages/sencha-core/src/util/Region.js", "requires": [ 23 ], "uses": [], "idx": 24 }, { "path": "../packages/sencha-core/src/util/Point.js", "requires": [ 24 ], "uses": [], "idx": 25 }, { "path": "../packages/sencha-core/src/event/Event.js", "requires": [ 25 ], "uses": [], "idx": 26 }, { "path": "../packages/sencha-core/src/event/publisher/Dom.js", "requires": [ 22, 26 ], "uses": [ 70 ], "idx": 27 }, { "path": "../packages/sencha-core/src/event/publisher/Gesture.js", "requires": [ 10, 25, 27 ], "uses": [ 26, 43, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259 ], "idx": 28 }, { "path": "../packages/sencha-core/src/event/publisher/Focus.js", "requires": [ 27 ], "uses": [ 26, 43, 70 ], "idx": 29 }, { "path": "../packages/sencha-core/src/mixin/Templatable.js", "requires": [ 0 ], "uses": [ 43 ], "idx": 30 }, { "path": "../packages/sencha-core/src/TaskQueue.js", "requires": [ 10 ], "uses": [], "idx": 31 }, { "path": "../packages/sencha-core/src/util/sizemonitor/Abstract.js", "requires": [ 30, 31 ], "uses": [], "idx": 32 }, { "path": "../packages/sencha-core/src/util/sizemonitor/Default.js", "requires": [ 32 ], "uses": [], "idx": 33 }, { "path": "../packages/sencha-core/src/util/sizemonitor/Scroll.js", "requires": [ 32 ], "uses": [ 31 ], "idx": 34 }, { "path": "../packages/sencha-core/src/util/sizemonitor/OverflowChange.js", "requires": [ 32 ], "uses": [ 31 ], "idx": 35 }, { "path": "../packages/sencha-core/src/util/SizeMonitor.js", "requires": [ 33, 34, 35 ], "uses": [], "idx": 36 }, { "path": "../packages/sencha-core/src/event/publisher/ElementSize.js", "requires": [ 22, 36 ], "uses": [ 31 ], "idx": 37 }, { "path": "../packages/sencha-core/src/util/paintmonitor/Abstract.js", "requires": [], "uses": [ 43 ], "idx": 38 }, { "path": "../packages/sencha-core/src/util/paintmonitor/CssAnimation.js", "requires": [ 38 ], "uses": [], "idx": 39 }, { "path": "../packages/sencha-core/src/util/paintmonitor/OverflowChange.js", "requires": [ 38 ], "uses": [], "idx": 40 }, { "path": "../packages/sencha-core/src/util/PaintMonitor.js", "requires": [ 39, 40 ], "uses": [], "idx": 41 }, { "path": "../packages/sencha-core/src/event/publisher/ElementPaint.js", "requires": [ 22, 31, 41 ], "uses": [], "idx": 42 }, { "path": "../packages/sencha-core/src/dom/Element.js", "requires": [ 4, 16, 19, 20, 21, 27, 28, 29, 37, 42 ], "uses": [ 22, 24, 68, 69, 70, 73, 83, 220, 269, 271 ], "idx": 43 }, { "path": "../packages/sencha-core/src/util/Filter.js", "requires": [], "uses": [], "idx": 44 }, { "path": "../packages/sencha-core/src/util/Observable.js", "requires": [ 4 ], "uses": [], "idx": 45 }, { "path": "../packages/sencha-core/src/util/AbstractMixedCollection.js", "requires": [ 44, 45 ], "uses": [], "idx": 46 }, { "path": "../packages/sencha-core/src/util/Sorter.js", "requires": [], "uses": [], "idx": 47 }, { "path": "../packages/sencha-core/src/util/Sortable.js", "requires": [ 47 ], "uses": [ 49 ], "idx": 48 }, { "path": "../packages/sencha-core/src/util/MixedCollection.js", "requires": [ 46, 48 ], "uses": [], "idx": 49 }, { "path": "../packages/sencha-core/src/util/TaskRunner.js", "requires": [], "uses": [ 70 ], "idx": 50 }, { "path": "../src/fx/target/Target.js", "requires": [], "uses": [], "idx": 51 }, { "path": "../src/fx/target/Element.js", "requires": [ 51 ], "uses": [], "idx": 52 }, { "path": "../src/fx/target/ElementCSS.js", "requires": [ 52 ], "uses": [], "idx": 53 }, { "path": "../src/fx/target/CompositeElement.js", "requires": [ 52 ], "uses": [], "idx": 54 }, { "path": "../src/fx/target/CompositeElementCSS.js", "requires": [ 53, 54 ], "uses": [], "idx": 55 }, { "path": "../src/fx/target/Sprite.js", "requires": [ 51 ], "uses": [], "idx": 56 }, { "path": "../src/fx/target/CompositeSprite.js", "requires": [ 56 ], "uses": [], "idx": 57 }, { "path": "../src/fx/target/Component.js", "requires": [ 51 ], "uses": [ 70 ], "idx": 58 }, { "path": "../src/fx/Queue.js", "requires": [ 5 ], "uses": [], "idx": 59 }, { "path": "../src/fx/Manager.js", "requires": [ 49, 50, 52, 53, 54, 55, 56, 57, 58, 59 ], "uses": [], "idx": 60 }, { "path": "../src/fx/Animator.js", "requires": [ 45, 60 ], "uses": [ 66 ], "idx": 61 }, { "path": "../src/fx/CubicBezier.js", "requires": [], "uses": [], "idx": 62 }, { "path": "../src/fx/Easing.js", "requires": [ 62 ], "uses": [], "idx": 63 }, { "path": "../src/fx/DrawPath.js", "requires": [], "uses": [], "idx": 64 }, { "path": "../src/fx/PropertyHandler.js", "requires": [ 64 ], "uses": [], "idx": 65 }, { "path": "../src/fx/Anim.js", "requires": [ 45, 60, 61, 62, 63, 65 ], "uses": [], "idx": 66 }, { "path": "../src/util/Animate.js", "requires": [ 60, 66 ], "uses": [], "idx": 67 }, { "path": "../packages/sencha-core/src/dom/Fly.js", "requires": [ 43 ], "uses": [], "idx": 68 }, { "path": "../packages/sencha-core/src/dom/CompositeElementLite.js", "requires": [ 68 ], "uses": [ 43 ], "idx": 69 }, { "path": "../packages/sencha-core/src/GlobalEvents.js", "requires": [ 4, 43 ], "uses": [], "idx": 70 }, { "path": "../packages/sencha-core/src/JSON.js", "requires": [], "uses": [], "idx": 71 }, { "path": "../packages/sencha-core/src/util/Format.js", "requires": [], "uses": [ 73, 220 ], "idx": 72 }, { "path": "../packages/sencha-core/src/Template.js", "requires": [ 72 ], "uses": [ 220 ], "idx": 73 }, { "path": "../packages/sencha-core/src/mixin/Inheritable.js", "requires": [ 0 ], "uses": [], "idx": 74 }, { "path": "../packages/sencha-core/src/mixin/Bindable.js", "requires": [], "uses": [ 84 ], "idx": 75 }, { "path": "../packages/sencha-core/src/Widget.js", "requires": [ 15, 43, 74, 75 ], "uses": [ 11, 14 ], "idx": 76 }, { "path": "../packages/sencha-core/src/util/XTemplateParser.js", "requires": [], "uses": [], "idx": 77 }, { "path": "../packages/sencha-core/src/util/XTemplateCompiler.js", "requires": [ 77 ], "uses": [], "idx": 78 }, { "path": "../packages/sencha-core/src/XTemplate.js", "requires": [ 73, 78 ], "uses": [], "idx": 79 }, { "path": "../packages/sencha-core/src/app/EventDomain.js", "requires": [ 2 ], "uses": [], "idx": 80 }, { "path": "../packages/sencha-core/src/app/domain/Component.js", "requires": [ 76, 80 ], "uses": [], "idx": 81 }, { "path": "../src/util/ProtoElement.js", "requires": [], "uses": [ 43, 220 ], "idx": 82 }, { "path": "../packages/sencha-core/src/dom/CompositeElement.js", "requires": [ 69 ], "uses": [], "idx": 83 }, { "path": "../packages/sencha-core/src/mixin/Factoryable.js", "requires": [], "uses": [], "idx": 84 }, { "path": "../packages/sencha-core/src/scroll/Scroller.js", "requires": [ 15, 84 ], "uses": [ 70, 100, 101 ], "idx": 85 }, { "path": "../packages/sencha-core/src/fx/easing/Abstract.js", "requires": [], "uses": [], "idx": 86 }, { "path": "../packages/sencha-core/src/fx/easing/Momentum.js", "requires": [ 86 ], "uses": [], "idx": 87 }, { "path": "../packages/sencha-core/src/fx/easing/Bounce.js", "requires": [ 86 ], "uses": [], "idx": 88 }, { "path": "../packages/sencha-core/src/fx/easing/BoundMomentum.js", "requires": [ 86, 87, 88 ], "uses": [], "idx": 89 }, { "path": "../packages/sencha-core/src/fx/easing/Linear.js", "requires": [ 86 ], "uses": [], "idx": 90 }, { "path": "../packages/sencha-core/src/fx/easing/EaseOut.js", "requires": [ 90 ], "uses": [], "idx": 91 }, { "path": "../packages/sencha-core/src/util/translatable/Abstract.js", "requires": [ 15, 90 ], "uses": [ 10 ], "idx": 92 }, { "path": "../packages/sencha-core/src/util/translatable/Dom.js", "requires": [ 92 ], "uses": [], "idx": 93 }, { "path": "../packages/sencha-core/src/util/translatable/CssTransform.js", "requires": [ 93 ], "uses": [], "idx": 94 }, { "path": "../packages/sencha-core/src/util/translatable/ScrollPosition.js", "requires": [ 93 ], "uses": [], "idx": 95 }, { "path": "../packages/sencha-core/src/util/translatable/ScrollParent.js", "requires": [ 93 ], "uses": [], "idx": 96 }, { "path": "../packages/sencha-core/src/util/translatable/CssPosition.js", "requires": [ 93 ], "uses": [], "idx": 97 }, { "path": "../packages/sencha-core/src/util/Translatable.js", "requires": [ 94, 95, 96, 97 ], "uses": [], "idx": 98 }, { "path": "../packages/sencha-core/src/scroll/Indicator.js", "requires": [ 76 ], "uses": [], "idx": 99 }, { "path": "../packages/sencha-core/src/scroll/TouchScroller.js", "requires": [ 70, 85, 89, 91, 98, 99 ], "uses": [], "idx": 100 }, { "path": "../packages/sencha-core/src/scroll/DomScroller.js", "requires": [ 85 ], "uses": [], "idx": 101 }, { "path": "../src/util/Floating.js", "requires": [], "uses": [ 11, 70, 315 ], "idx": 102 }, { "path": "../src/util/ElementContainer.js", "requires": [], "uses": [], "idx": 103 }, { "path": "../src/util/Renderable.js", "requires": [ 43 ], "uses": [ 79, 109, 220 ], "idx": 104 }, { "path": "../src/state/Provider.js", "requires": [ 45 ], "uses": [], "idx": 105 }, { "path": "../src/state/Manager.js", "requires": [ 105 ], "uses": [], "idx": 106 }, { "path": "../src/state/Stateful.js", "requires": [ 106 ], "uses": [ 50 ], "idx": 107 }, { "path": "../src/util/Focusable.js", "requires": [ 1 ], "uses": [ 14, 43, 109 ], "idx": 108 }, { "path": "../src/Component.js", "requires": [ 11, 14, 16, 45, 67, 70, 74, 75, 82, 83, 85, 100, 101, 102, 103, 104, 107, 108 ], "uses": [ 1, 43, 60, 79, 185, 220, 310, 311, 312, 315, 323, 325, 418, 555, 566, 570 ], "idx": 109 }, { "path": "../src/layout/container/border/Region.js", "requires": [], "uses": [], "idx": 110 }, { "path": "../packages/sencha-core/src/app/EventBus.js", "requires": [ 81 ], "uses": [ 80 ], "idx": 111 }, { "path": "../packages/sencha-core/src/app/domain/Global.js", "requires": [ 70, 80 ], "uses": [], "idx": 112 }, { "path": "../packages/sencha-core/src/app/BaseController.js", "requires": [ 4, 111, 112 ], "uses": [ 169, 170, 199 ], "idx": 113 }, { "path": "../packages/sencha-core/src/app/Util.js", "requires": [], "uses": [], "idx": 114 }, { "path": "../packages/sencha-core/src/util/CollectionKey.js", "requires": [ 3 ], "uses": [], "idx": 115 }, { "path": "../packages/sencha-core/src/util/Grouper.js", "requires": [ 47 ], "uses": [], "idx": 116 }, { "path": "../packages/sencha-core/src/util/Collection.js", "requires": [ 4, 44, 47, 115, 116 ], "uses": [ 159, 160, 161 ], "idx": 117 }, { "path": "../packages/sencha-core/src/util/ObjectTemplate.js", "requires": [ 79 ], "uses": [], "idx": 118 }, { "path": "../packages/sencha-core/src/data/schema/Role.js", "requires": [], "uses": [ 84 ], "idx": 119 }, { "path": "../packages/sencha-core/src/data/schema/Association.js", "requires": [ 119 ], "uses": [], "idx": 120 }, { "path": "../packages/sencha-core/src/data/schema/OneToOne.js", "requires": [ 120 ], "uses": [], "idx": 121 }, { "path": "../packages/sencha-core/src/data/schema/ManyToOne.js", "requires": [ 120 ], "uses": [], "idx": 122 }, { "path": "../packages/sencha-core/src/data/schema/ManyToMany.js", "requires": [ 120 ], "uses": [], "idx": 123 }, { "path": "../packages/sencha-core/src/util/Inflector.js", "requires": [], "uses": [], "idx": 124 }, { "path": "../packages/sencha-core/src/data/schema/Namer.js", "requires": [ 84, 124 ], "uses": [], "idx": 125 }, { "path": "../packages/sencha-core/src/data/schema/Schema.js", "requires": [ 84, 118, 121, 122, 123, 125 ], "uses": [], "idx": 126 }, { "path": "../packages/sencha-core/src/data/AbstractStore.js", "requires": [ 4, 44, 84, 117, 126 ], "uses": [ 165 ], "idx": 127 }, { "path": "../packages/sencha-core/src/data/Error.js", "requires": [], "uses": [], "idx": 128 }, { "path": "../packages/sencha-core/src/data/ErrorCollection.js", "requires": [ 49, 128 ], "uses": [ 137 ], "idx": 129 }, { "path": "../packages/sencha-core/src/data/operation/Operation.js", "requires": [], "uses": [], "idx": 130 }, { "path": "../packages/sencha-core/src/data/operation/Create.js", "requires": [ 130 ], "uses": [], "idx": 131 }, { "path": "../packages/sencha-core/src/data/operation/Destroy.js", "requires": [ 130 ], "uses": [], "idx": 132 }, { "path": "../packages/sencha-core/src/data/operation/Read.js", "requires": [ 130 ], "uses": [], "idx": 133 }, { "path": "../packages/sencha-core/src/data/operation/Update.js", "requires": [ 130 ], "uses": [], "idx": 134 }, { "path": "../packages/sencha-core/src/data/SortTypes.js", "requires": [], "uses": [], "idx": 135 }, { "path": "../packages/sencha-core/src/data/validator/Validator.js", "requires": [ 84 ], "uses": [], "idx": 136 }, { "path": "../packages/sencha-core/src/data/field/Field.js", "requires": [ 84, 135, 136 ], "uses": [], "idx": 137 }, { "path": "../packages/sencha-core/src/data/field/Boolean.js", "requires": [ 137 ], "uses": [], "idx": 138 }, { "path": "../packages/sencha-core/src/data/field/Date.js", "requires": [ 137 ], "uses": [], "idx": 139 }, { "path": "../packages/sencha-core/src/data/field/Integer.js", "requires": [ 137 ], "uses": [], "idx": 140 }, { "path": "../packages/sencha-core/src/data/field/Number.js", "requires": [ 140 ], "uses": [], "idx": 141 }, { "path": "../packages/sencha-core/src/data/field/String.js", "requires": [ 137 ], "uses": [], "idx": 142 }, { "path": "../packages/sencha-core/src/data/identifier/Generator.js", "requires": [ 84 ], "uses": [], "idx": 143 }, { "path": "../packages/sencha-core/src/data/identifier/Sequential.js", "requires": [ 143 ], "uses": [], "idx": 144 }, { "path": "../packages/sencha-core/src/data/Model.js", "requires": [ 126, 129, 130, 131, 132, 133, 134, 136, 137, 138, 139, 140, 141, 142, 143, 144 ], "uses": [ 84, 147, 219 ], "idx": 145 }, { "path": "../packages/sencha-core/src/data/ResultSet.js", "requires": [], "uses": [], "idx": 146 }, { "path": "../packages/sencha-core/src/data/reader/Reader.js", "requires": [ 4, 13, 79, 84, 146 ], "uses": [ 126 ], "idx": 147 }, { "path": "../packages/sencha-core/src/data/writer/Writer.js", "requires": [ 84 ], "uses": [], "idx": 148 }, { "path": "../packages/sencha-core/src/data/proxy/Proxy.js", "requires": [ 4, 84, 126, 147, 148 ], "uses": [ 130, 131, 132, 133, 134, 145, 178 ], "idx": 149 }, { "path": "../packages/sencha-core/src/data/proxy/Client.js", "requires": [ 149 ], "uses": [], "idx": 150 }, { "path": "../packages/sencha-core/src/data/proxy/Memory.js", "requires": [ 150 ], "uses": [ 44, 48 ], "idx": 151 }, { "path": "../packages/sencha-core/src/data/ProxyStore.js", "requires": [ 127, 130, 131, 132, 133, 134, 145, 149, 151 ], "uses": [ 1, 126 ], "idx": 152 }, { "path": "../packages/sencha-core/src/data/LocalStore.js", "requires": [ 0 ], "uses": [ 117 ], "idx": 153 }, { "path": "../packages/sencha-core/src/data/proxy/Server.js", "requires": [ 149 ], "uses": [ 73, 214 ], "idx": 154 }, { "path": "../packages/sencha-core/src/data/proxy/Ajax.js", "requires": [ 9, 154 ], "uses": [], "idx": 155 }, { "path": "../packages/sencha-core/src/data/reader/Json.js", "requires": [ 71, 147 ], "uses": [], "idx": 156 }, { "path": "../packages/sencha-core/src/data/writer/Json.js", "requires": [ 148 ], "uses": [], "idx": 157 }, { "path": "../packages/sencha-core/src/util/Group.js", "requires": [ 117 ], "uses": [], "idx": 158 }, { "path": "../packages/sencha-core/src/util/SorterCollection.js", "requires": [ 47, 117 ], "uses": [], "idx": 159 }, { "path": "../packages/sencha-core/src/util/FilterCollection.js", "requires": [ 44, 117 ], "uses": [], "idx": 160 }, { "path": "../packages/sencha-core/src/util/GroupCollection.js", "requires": [ 117, 158, 159, 160 ], "uses": [], "idx": 161 }, { "path": "../packages/sencha-core/src/data/Store.js", "requires": [ 1, 145, 152, 153, 155, 156, 157, 161 ], "uses": [ 116, 165, 204 ], "idx": 162 }, { "path": "../packages/sencha-core/src/data/reader/Array.js", "requires": [ 156 ], "uses": [], "idx": 163 }, { "path": "../packages/sencha-core/src/data/ArrayStore.js", "requires": [ 151, 162, 163 ], "uses": [], "idx": 164 }, { "path": "../packages/sencha-core/src/data/StoreManager.js", "requires": [ 49, 164 ], "uses": [ 84, 151, 157, 162, 163 ], "idx": 165 }, { "path": "../packages/sencha-core/src/app/domain/Store.js", "requires": [ 80, 127 ], "uses": [], "idx": 166 }, { "path": "../packages/sencha-core/src/app/route/Queue.js", "requires": [], "uses": [ 49 ], "idx": 167 }, { "path": "../packages/sencha-core/src/app/route/Route.js", "requires": [], "uses": [ 73 ], "idx": 168 }, { "path": "../packages/sencha-core/src/util/History.js", "requires": [ 45 ], "uses": [ 306 ], "idx": 169 }, { "path": "../packages/sencha-core/src/app/route/Router.js", "requires": [ 167, 168, 169 ], "uses": [], "idx": 170 }, { "path": "../packages/sencha-core/src/app/Controller.js", "requires": [ 11, 81, 113, 114, 165, 166, 170 ], "uses": [ 14, 126 ], "idx": 171 }, { "path": "../packages/sencha-core/src/app/Application.js", "requires": [ 49, 169, 171 ], "uses": [ 170 ], "idx": 172 }, { "path": "../packages/sencha-core/src/app/Profile.js", "requires": [ 4 ], "uses": [ 171 ], "idx": 173 }, { "path": "../packages/sencha-core/src/app/domain/View.js", "requires": [ 80 ], "uses": [], "idx": 174 }, { "path": "../packages/sencha-core/src/app/ViewController.js", "requires": [ 84, 113, 174 ], "uses": [], "idx": 175 }, { "path": "../packages/sencha-core/src/util/Bag.js", "requires": [], "uses": [], "idx": 176 }, { "path": "../packages/sencha-core/src/util/Scheduler.js", "requires": [ 4, 176 ], "uses": [ 70 ], "idx": 177 }, { "path": "../packages/sencha-core/src/data/Batch.js", "requires": [ 4 ], "uses": [], "idx": 178 }, { "path": "../packages/sencha-core/src/data/matrix/Slice.js", "requires": [], "uses": [], "idx": 179 }, { "path": "../packages/sencha-core/src/data/matrix/Side.js", "requires": [ 179 ], "uses": [], "idx": 180 }, { "path": "../packages/sencha-core/src/data/matrix/Matrix.js", "requires": [ 180 ], "uses": [], "idx": 181 }, { "path": "../packages/sencha-core/src/data/session/ChangesVisitor.js", "requires": [], "uses": [], "idx": 182 }, { "path": "../packages/sencha-core/src/data/session/ChildChangesVisitor.js", "requires": [ 182 ], "uses": [], "idx": 183 }, { "path": "../packages/sencha-core/src/data/session/BatchVisitor.js", "requires": [], "uses": [ 178 ], "idx": 184 }, { "path": "../packages/sencha-core/src/data/Session.js", "requires": [ 126, 178, 181, 182, 183, 184 ], "uses": [], "idx": 185 }, { "path": "../packages/sencha-core/src/util/Schedulable.js", "requires": [], "uses": [], "idx": 186 }, { "path": "../packages/sencha-core/src/app/bind/BaseBinding.js", "requires": [ 186 ], "uses": [], "idx": 187 }, { "path": "../packages/sencha-core/src/app/bind/Binding.js", "requires": [ 187 ], "uses": [], "idx": 188 }, { "path": "../packages/sencha-core/src/app/bind/AbstractStub.js", "requires": [ 186, 188 ], "uses": [], "idx": 189 }, { "path": "../packages/sencha-core/src/app/bind/Stub.js", "requires": [ 188, 189 ], "uses": [ 194 ], "idx": 190 }, { "path": "../packages/sencha-core/src/app/bind/LinkStub.js", "requires": [ 190 ], "uses": [], "idx": 191 }, { "path": "../packages/sencha-core/src/app/bind/RootStub.js", "requires": [ 189, 190, 191 ], "uses": [], "idx": 192 }, { "path": "../packages/sencha-core/src/app/bind/Multi.js", "requires": [ 187 ], "uses": [], "idx": 193 }, { "path": "../packages/sencha-core/src/app/bind/Formula.js", "requires": [ 13, 186 ], "uses": [], "idx": 194 }, { "path": "../packages/sencha-core/src/app/bind/Template.js", "requires": [ 72 ], "uses": [], "idx": 195 }, { "path": "../packages/sencha-core/src/app/bind/TemplateBinding.js", "requires": [ 187, 193, 195 ], "uses": [], "idx": 196 }, { "path": "../packages/sencha-core/src/data/ChainedStore.js", "requires": [ 127, 153 ], "uses": [ 73, 165 ], "idx": 197 }, { "path": "../packages/sencha-core/src/app/ViewModel.js", "requires": [ 3, 84, 177, 185, 191, 192, 193, 194, 196, 197 ], "uses": [ 1, 126 ], "idx": 198 }, { "path": "../packages/sencha-core/src/app/domain/Controller.js", "requires": [ 80, 171 ], "uses": [ 113 ], "idx": 199 }, { "path": "../packages/sencha-core/src/direct/Manager.js", "requires": [ 4, 49 ], "uses": [ 73 ], "idx": 200 }, { "path": "../packages/sencha-core/src/direct/Provider.js", "requires": [ 45, 200 ], "uses": [], "idx": 201 }, { "path": "../packages/sencha-core/src/app/domain/Direct.js", "requires": [ 80, 201 ], "uses": [], "idx": 202 }, { "path": "../packages/sencha-core/src/data/PageMap.js", "requires": [ 13 ], "uses": [], "idx": 203 }, { "path": "../packages/sencha-core/src/data/BufferedStore.js", "requires": [ 44, 47, 116, 152, 203 ], "uses": [ 159, 160, 161 ], "idx": 204 }, { "path": "../packages/sencha-core/src/data/proxy/Direct.js", "requires": [ 154, 200 ], "uses": [], "idx": 205 }, { "path": "../packages/sencha-core/src/data/DirectStore.js", "requires": [ 162, 205 ], "uses": [], "idx": 206 }, { "path": "../packages/sencha-core/src/data/JsonP.js", "requires": [], "uses": [ 70 ], "idx": 207 }, { "path": "../packages/sencha-core/src/data/proxy/JsonP.js", "requires": [ 154, 207 ], "uses": [], "idx": 208 }, { "path": "../packages/sencha-core/src/data/JsonPStore.js", "requires": [ 156, 162, 208 ], "uses": [], "idx": 209 }, { "path": "../packages/sencha-core/src/data/JsonStore.js", "requires": [ 155, 156, 157, 162 ], "uses": [], "idx": 210 }, { "path": "../packages/sencha-core/src/data/ModelManager.js", "requires": [ 126 ], "uses": [ 145 ], "idx": 211 }, { "path": "../packages/sencha-core/src/data/NodeInterface.js", "requires": [ 4, 138, 140, 142, 157 ], "uses": [ 126 ], "idx": 212 }, { "path": "../packages/sencha-core/src/data/NodeStore.js", "requires": [ 162, 212 ], "uses": [ 145 ], "idx": 213 }, { "path": "../packages/sencha-core/src/data/Request.js", "requires": [], "uses": [], "idx": 214 }, { "path": "../packages/sencha-core/src/mixin/Queryable.js", "requires": [], "uses": [ 14 ], "idx": 215 }, { "path": "../packages/sencha-core/src/data/TreeModel.js", "requires": [ 145, 212, 215 ], "uses": [], "idx": 216 }, { "path": "../packages/sencha-core/src/data/TreeStore.js", "requires": [ 47, 212, 213, 216 ], "uses": [], "idx": 217 }, { "path": "../packages/sencha-core/src/data/Types.js", "requires": [ 135 ], "uses": [], "idx": 218 }, { "path": "../packages/sencha-core/src/data/Validation.js", "requires": [ 145 ], "uses": [], "idx": 219 }, { "path": "../packages/sencha-core/src/dom/Helper.js", "requires": [], "uses": [ 73 ], "idx": 220 }, { "path": "../packages/sencha-core/src/dom/Query.js", "requires": [ 12, 220 ], "uses": [ 13 ], "idx": 221 }, { "path": "../packages/sencha-core/src/data/reader/Xml.js", "requires": [ 147, 221 ], "uses": [], "idx": 222 }, { "path": "../packages/sencha-core/src/data/writer/Xml.js", "requires": [ 148 ], "uses": [], "idx": 223 }, { "path": "../packages/sencha-core/src/data/XmlStore.js", "requires": [ 155, 162, 222, 223 ], "uses": [], "idx": 224 }, { "path": "../packages/sencha-core/src/data/identifier/Negative.js", "requires": [ 144 ], "uses": [], "idx": 225 }, { "path": "../packages/sencha-core/src/data/identifier/Uuid.js", "requires": [ 143 ], "uses": [], "idx": 226 }, { "path": "../packages/sencha-core/src/data/proxy/WebStorage.js", "requires": [ 144, 150 ], "uses": [ 47, 73, 146 ], "idx": 227 }, { "path": "../packages/sencha-core/src/data/proxy/LocalStorage.js", "requires": [ 227 ], "uses": [], "idx": 228 }, { "path": "../packages/sencha-core/src/data/proxy/Rest.js", "requires": [ 155 ], "uses": [], "idx": 229 }, { "path": "../packages/sencha-core/src/data/proxy/SessionStorage.js", "requires": [ 227 ], "uses": [], "idx": 230 }, { "path": "../packages/sencha-core/src/data/validator/Bound.js", "requires": [ 136 ], "uses": [ 73 ], "idx": 231 }, { "path": "../packages/sencha-core/src/data/validator/Format.js", "requires": [ 136 ], "uses": [], "idx": 232 }, { "path": "../packages/sencha-core/src/data/validator/Email.js", "requires": [ 232 ], "uses": [], "idx": 233 }, { "path": "../packages/sencha-core/src/data/validator/List.js", "requires": [ 136 ], "uses": [], "idx": 234 }, { "path": "../packages/sencha-core/src/data/validator/Exclusion.js", "requires": [ 234 ], "uses": [], "idx": 235 }, { "path": "../packages/sencha-core/src/data/validator/Inclusion.js", "requires": [ 234 ], "uses": [], "idx": 236 }, { "path": "../packages/sencha-core/src/data/validator/Length.js", "requires": [ 231 ], "uses": [], "idx": 237 }, { "path": "../packages/sencha-core/src/data/validator/Presence.js", "requires": [ 136 ], "uses": [], "idx": 238 }, { "path": "../packages/sencha-core/src/data/validator/Range.js", "requires": [ 231 ], "uses": [], "idx": 239 }, { "path": "../packages/sencha-core/src/direct/Event.js", "requires": [], "uses": [], "idx": 240 }, { "path": "../packages/sencha-core/src/direct/RemotingEvent.js", "requires": [ 240 ], "uses": [ 200 ], "idx": 241 }, { "path": "../packages/sencha-core/src/direct/ExceptionEvent.js", "requires": [ 241 ], "uses": [], "idx": 242 }, { "path": "../packages/sencha-core/src/direct/JsonProvider.js", "requires": [ 201 ], "uses": [ 200, 242 ], "idx": 243 }, { "path": "../packages/sencha-core/src/direct/PollingProvider.js", "requires": [ 9, 50, 242, 243 ], "uses": [ 200, 306 ], "idx": 244 }, { "path": "../packages/sencha-core/src/direct/RemotingMethod.js", "requires": [], "uses": [], "idx": 245 }, { "path": "../packages/sencha-core/src/direct/Transaction.js", "requires": [], "uses": [], "idx": 246 }, { "path": "../packages/sencha-core/src/direct/RemotingProvider.js", "requires": [ 1, 49, 200, 243, 245, 246 ], "uses": [ 9, 71, 242 ], "idx": 247 }, { "path": "../packages/sencha-core/src/dom/GarbageCollector.js", "requires": [], "uses": [ 43 ], "idx": 248 }, { "path": "../packages/sencha-core/src/event/gesture/Recognizer.js", "requires": [ 3, 28 ], "uses": [], "idx": 249 }, { "path": "../packages/sencha-core/src/event/gesture/SingleTouch.js", "requires": [ 249 ], "uses": [], "idx": 250 }, { "path": "../packages/sencha-core/src/event/gesture/DoubleTap.js", "requires": [ 250 ], "uses": [], "idx": 251 }, { "path": "../packages/sencha-core/src/event/gesture/Drag.js", "requires": [ 250 ], "uses": [], "idx": 252 }, { "path": "../packages/sencha-core/src/event/gesture/Swipe.js", "requires": [ 250 ], "uses": [], "idx": 253 }, { "path": "../packages/sencha-core/src/event/gesture/EdgeSwipe.js", "requires": [ 253 ], "uses": [ 43 ], "idx": 254 }, { "path": "../packages/sencha-core/src/event/gesture/LongPress.js", "requires": [ 250 ], "uses": [], "idx": 255 }, { "path": "../packages/sencha-core/src/event/gesture/MultiTouch.js", "requires": [ 249 ], "uses": [], "idx": 256 }, { "path": "../packages/sencha-core/src/event/gesture/Pinch.js", "requires": [ 256 ], "uses": [], "idx": 257 }, { "path": "../packages/sencha-core/src/event/gesture/Rotate.js", "requires": [ 256 ], "uses": [], "idx": 258 }, { "path": "../packages/sencha-core/src/event/gesture/Tap.js", "requires": [ 250 ], "uses": [], "idx": 259 }, { "path": "../packages/sencha-core/src/fx/State.js", "requires": [], "uses": [], "idx": 260 }, { "path": "../packages/sencha-core/src/fx/animation/Abstract.js", "requires": [ 15, 260 ], "uses": [], "idx": 261 }, { "path": "../packages/sencha-core/src/fx/animation/Slide.js", "requires": [ 261 ], "uses": [], "idx": 262 }, { "path": "../packages/sencha-core/src/fx/animation/SlideOut.js", "requires": [ 262 ], "uses": [], "idx": 263 }, { "path": "../packages/sencha-core/src/fx/animation/Fade.js", "requires": [ 261 ], "uses": [], "idx": 264 }, { "path": "../packages/sencha-core/src/fx/animation/FadeOut.js", "requires": [ 264 ], "uses": [], "idx": 265 }, { "path": "../packages/sencha-core/src/fx/animation/Flip.js", "requires": [ 261 ], "uses": [], "idx": 266 }, { "path": "../packages/sencha-core/src/fx/animation/Pop.js", "requires": [ 261 ], "uses": [], "idx": 267 }, { "path": "../packages/sencha-core/src/fx/animation/PopOut.js", "requires": [ 267 ], "uses": [], "idx": 268 }, { "path": "../packages/sencha-core/src/fx/Animation.js", "requires": [ 262, 263, 264, 265, 266, 267, 268 ], "uses": [ 261 ], "idx": 269 }, { "path": "../packages/sencha-core/src/fx/runner/Css.js", "requires": [ 15, 269 ], "uses": [], "idx": 270 }, { "path": "../packages/sencha-core/src/fx/runner/CssTransition.js", "requires": [ 10, 270 ], "uses": [ 269 ], "idx": 271 }, { "path": "../packages/sencha-core/src/fx/Runner.js", "requires": [ 271 ], "uses": [], "idx": 272 }, { "path": "../packages/sencha-core/src/fx/animation/Cube.js", "requires": [ 261 ], "uses": [], "idx": 273 }, { "path": "../packages/sencha-core/src/fx/animation/Wipe.js", "requires": [ 269 ], "uses": [], "idx": 274 }, { "path": "../packages/sencha-core/src/fx/animation/WipeOut.js", "requires": [ 274 ], "uses": [], "idx": 275 }, { "path": "../packages/sencha-core/src/fx/easing/EaseIn.js", "requires": [ 90 ], "uses": [], "idx": 276 }, { "path": "../packages/sencha-core/src/fx/easing/Easing.js", "requires": [ 90 ], "uses": [], "idx": 277 }, { "path": "../packages/sencha-core/src/fx/layout/card/Abstract.js", "requires": [ 15 ], "uses": [], "idx": 278 }, { "path": "../packages/sencha-core/src/fx/layout/card/Style.js", "requires": [ 269, 278 ], "uses": [ 271 ], "idx": 279 }, { "path": "../packages/sencha-core/src/fx/layout/card/Slide.js", "requires": [ 279 ], "uses": [], "idx": 280 }, { "path": "../packages/sencha-core/src/fx/layout/card/Cover.js", "requires": [ 279 ], "uses": [], "idx": 281 }, { "path": "../packages/sencha-core/src/fx/layout/card/Reveal.js", "requires": [ 279 ], "uses": [], "idx": 282 }, { "path": "../packages/sencha-core/src/fx/layout/card/Fade.js", "requires": [ 279 ], "uses": [], "idx": 283 }, { "path": "../packages/sencha-core/src/fx/layout/card/Flip.js", "requires": [ 279 ], "uses": [], "idx": 284 }, { "path": "../packages/sencha-core/src/fx/layout/card/Pop.js", "requires": [ 279 ], "uses": [], "idx": 285 }, { "path": "../packages/sencha-core/src/fx/layout/card/Scroll.js", "requires": [ 90, 278 ], "uses": [ 10 ], "idx": 286 }, { "path": "../packages/sencha-core/src/fx/layout/Card.js", "requires": [ 280, 281, 282, 283, 284, 285, 286 ], "uses": [ 278 ], "idx": 287 }, { "path": "../packages/sencha-core/src/fx/layout/card/Cube.js", "requires": [ 279 ], "uses": [], "idx": 288 }, { "path": "../packages/sencha-core/src/fx/layout/card/ScrollCover.js", "requires": [ 286 ], "uses": [], "idx": 289 }, { "path": "../packages/sencha-core/src/fx/layout/card/ScrollReveal.js", "requires": [ 286 ], "uses": [], "idx": 290 }, { "path": "../packages/sencha-core/src/fx/runner/CssAnimation.js", "requires": [ 270 ], "uses": [ 269 ], "idx": 291 }, { "path": "../packages/sencha-core/src/mixin/Hookable.js", "requires": [ 0 ], "uses": [], "idx": 292 }, { "path": "../packages/sencha-core/src/mixin/Mashup.js", "requires": [ 0 ], "uses": [], "idx": 293 }, { "path": "../packages/sencha-core/src/mixin/Responsive.js", "requires": [ 0, 70 ], "uses": [ 43 ], "idx": 294 }, { "path": "../packages/sencha-core/src/mixin/Selectable.js", "requires": [ 0 ], "uses": [ 49 ], "idx": 295 }, { "path": "../packages/sencha-core/src/mixin/Traversable.js", "requires": [ 0 ], "uses": [], "idx": 296 }, { "path": "../packages/sencha-core/src/perf/Accumulator.js", "requires": [ 79 ], "uses": [], "idx": 297 }, { "path": "../packages/sencha-core/src/perf/Monitor.js", "requires": [ 297 ], "uses": [], "idx": 298 }, { "path": "../packages/sencha-core/src/plugin/Abstract.js", "requires": [], "uses": [], "idx": 299 }, { "path": "../packages/sencha-core/src/plugin/LazyItems.js", "requires": [ 299 ], "uses": [], "idx": 300 }, { "path": "../packages/sencha-core/src/util/Base64.js", "requires": [], "uses": [], "idx": 301 }, { "path": "../packages/sencha-core/src/util/DelimitedValue.js", "requires": [], "uses": [], "idx": 302 }, { "path": "../packages/sencha-core/src/util/CSV.js", "requires": [ 302 ], "uses": [], "idx": 303 }, { "path": "../packages/sencha-core/src/util/LocalStorage.js", "requires": [], "uses": [], "idx": 304 }, { "path": "../packages/sencha-core/src/util/TSV.js", "requires": [ 302 ], "uses": [], "idx": 305 }, { "path": "../packages/sencha-core/src/util/TaskManager.js", "requires": [ 50 ], "uses": [], "idx": 306 }, { "path": "../packages/sencha-core/src/util/TextMetrics.js", "requires": [ 43 ], "uses": [], "idx": 307 }, { "path": "../src/Action.js", "requires": [], "uses": [], "idx": 308 }, { "path": "../src/ElementLoader.js", "requires": [ 45 ], "uses": [ 8, 9 ], "idx": 309 }, { "path": "../src/ComponentLoader.js", "requires": [ 309 ], "uses": [], "idx": 310 }, { "path": "../src/layout/SizeModel.js", "requires": [], "uses": [], "idx": 311 }, { "path": "../src/layout/Layout.js", "requires": [ 79, 84, 311 ], "uses": [ 555 ], "idx": 312 }, { "path": "../src/layout/container/Container.js", "requires": [ 79, 103, 312 ], "uses": [ 220 ], "idx": 313 }, { "path": "../src/layout/container/Auto.js", "requires": [ 313 ], "uses": [ 79 ], "idx": 314 }, { "path": "../src/ZIndexManager.js", "requires": [ 70, 159, 160 ], "uses": [ 43, 117 ], "idx": 315 }, { "path": "../src/container/Container.js", "requires": [ 49, 109, 215, 314, 315 ], "uses": [ 11, 14, 46, 84 ], "idx": 316 }, { "path": "../src/layout/container/Editor.js", "requires": [ 313 ], "uses": [], "idx": 317 }, { "path": "../src/Editor.js", "requires": [ 316, 317 ], "uses": [ 1, 11 ], "idx": 318 }, { "path": "../src/EventManager.js", "requires": [], "uses": [ 70 ], "idx": 319 }, { "path": "../src/FocusManager.js", "requires": [], "uses": [], "idx": 320 }, { "path": "../src/Img.js", "requires": [ 109 ], "uses": [], "idx": 321 }, { "path": "../src/util/StoreHolder.js", "requires": [ 165 ], "uses": [], "idx": 322 }, { "path": "../src/LoadMask.js", "requires": [ 109, 322 ], "uses": [ 70, 165 ], "idx": 323 }, { "path": "../src/layout/component/Component.js", "requires": [ 312 ], "uses": [], "idx": 324 }, { "path": "../src/layout/component/Auto.js", "requires": [ 324 ], "uses": [], "idx": 325 }, { "path": "../src/layout/component/ProgressBar.js", "requires": [ 325 ], "uses": [], "idx": 326 }, { "path": "../src/ProgressBar.js", "requires": [ 73, 83, 109, 306, 326 ], "uses": [ 66, 79 ], "idx": 327 }, { "path": "../src/ProgressBarWidget.js", "requires": [ 76, 327 ], "uses": [ 79 ], "idx": 328 }, { "path": "../src/panel/Bar.js", "requires": [ 316 ], "uses": [], "idx": 329 }, { "path": "../src/panel/Title.js", "requires": [ 109 ], "uses": [], "idx": 330 }, { "path": "../src/panel/Tool.js", "requires": [ 109 ], "uses": [ 423 ], "idx": 331 }, { "path": "../src/panel/Header.js", "requires": [ 185, 325, 329, 330, 331 ], "uses": [ 11 ], "idx": 332 }, { "path": "../src/layout/container/boxOverflow/None.js", "requires": [ 84 ], "uses": [], "idx": 333 }, { "path": "../src/util/ClickRepeater.js", "requires": [ 45 ], "uses": [], "idx": 334 }, { "path": "../src/layout/container/boxOverflow/Scroller.js", "requires": [ 4, 43, 333, 334 ], "uses": [], "idx": 335 }, { "path": "../src/dd/DragDropManager.js", "requires": [ 24 ], "uses": [ 385, 423 ], "idx": 336 }, { "path": "../src/resizer/Splitter.js", "requires": [ 79, 109 ], "uses": [ 438 ], "idx": 337 }, { "path": "../src/layout/container/Box.js", "requires": [ 72, 313, 333, 335, 336, 337 ], "uses": [ 84, 185, 311, 325 ], "idx": 338 }, { "path": "../src/layout/container/HBox.js", "requires": [ 338 ], "uses": [], "idx": 339 }, { "path": "../src/layout/container/VBox.js", "requires": [ 338 ], "uses": [], "idx": 340 }, { "path": "../src/util/KeyMap.js", "requires": [], "uses": [], "idx": 341 }, { "path": "../src/util/KeyNav.js", "requires": [ 341 ], "uses": [], "idx": 342 }, { "path": "../src/util/FocusableContainer.js", "requires": [ 0, 342 ], "uses": [ 109 ], "idx": 343 }, { "path": "../src/toolbar/Toolbar.js", "requires": [ 185, 316, 325, 339, 340, 343 ], "uses": [ 474, 490, 595 ], "idx": 344 }, { "path": "../src/dd/DragDrop.js", "requires": [ 336 ], "uses": [ 43 ], "idx": 345 }, { "path": "../src/dd/DD.js", "requires": [ 336, 345 ], "uses": [ 43 ], "idx": 346 }, { "path": "../src/dd/DDProxy.js", "requires": [ 346 ], "uses": [ 336 ], "idx": 347 }, { "path": "../src/dd/StatusProxy.js", "requires": [ 109 ], "uses": [], "idx": 348 }, { "path": "../src/dd/DragSource.js", "requires": [ 336, 347, 348 ], "uses": [ 185, 325 ], "idx": 349 }, { "path": "../src/panel/Proxy.js", "requires": [], "uses": [ 43 ], "idx": 350 }, { "path": "../src/panel/DD.js", "requires": [ 349, 350 ], "uses": [], "idx": 351 }, { "path": "../src/layout/component/Dock.js", "requires": [ 324 ], "uses": [ 14, 43, 311 ], "idx": 352 }, { "path": "../src/util/Memento.js", "requires": [], "uses": [], "idx": 353 }, { "path": "../src/container/DockingContainer.js", "requires": [ 43, 49 ], "uses": [ 14, 46, 220 ], "idx": 354 }, { "path": "../src/panel/Panel.js", "requires": [ 43, 49, 66, 79, 316, 332, 341, 344, 351, 352, 353, 354 ], "uses": [ 1, 82, 83, 109, 185, 314, 325, 331, 418, 491 ], "idx": 355 }, { "path": "../src/form/Labelable.js", "requires": [ 0, 79 ], "uses": [ 43, 422 ], "idx": 356 }, { "path": "../src/form/field/Field.js", "requires": [], "uses": [], "idx": 357 }, { "path": "../src/form/field/Base.js", "requires": [ 1, 79, 109, 356, 357 ], "uses": [ 220 ], "idx": 358 }, { "path": "../src/form/field/Display.js", "requires": [ 72, 79, 358 ], "uses": [], "idx": 359 }, { "path": "../src/layout/container/Fit.js", "requires": [ 313 ], "uses": [], "idx": 360 }, { "path": "../src/panel/Table.js", "requires": [ 355, 360 ], "uses": [ 1, 165, 220, 378, 392, 396, 534, 535, 571, 572 ], "idx": 361 }, { "path": "../src/selection/Model.js", "requires": [ 4, 84, 322 ], "uses": [ 117 ], "idx": 362 }, { "path": "../src/selection/DataViewModel.js", "requires": [ 342, 362 ], "uses": [], "idx": 363 }, { "path": "../src/view/NavigationModel.js", "requires": [ 45, 84 ], "uses": [ 342 ], "idx": 364 }, { "path": "../src/view/AbstractView.js", "requires": [ 69, 109, 322, 323, 363, 364 ], "uses": [ 10, 73, 79, 84, 165, 220, 306 ], "idx": 365 }, { "path": "../src/view/View.js", "requires": [ 365 ], "uses": [], "idx": 366 }, { "path": "../src/grid/CellContext.js", "requires": [], "uses": [], "idx": 367 }, { "path": "../src/view/TableLayout.js", "requires": [ 325 ], "uses": [], "idx": 368 }, { "path": "../src/grid/locking/RowSynchronizer.js", "requires": [], "uses": [], "idx": 369 }, { "path": "../src/view/NodeCache.js", "requires": [ 69 ], "uses": [ 43, 68 ], "idx": 370 }, { "path": "../src/view/Table.js", "requires": [ 1, 49, 366, 367, 368, 369, 370 ], "uses": [ 68, 79, 84, 109, 145, 392 ], "idx": 371 }, { "path": "../src/grid/Panel.js", "requires": [ 361, 371 ], "uses": [], "idx": 372 }, { "path": "../src/form/CheckboxManager.js", "requires": [ 49 ], "uses": [], "idx": 373 }, { "path": "../src/form/field/Checkbox.js", "requires": [ 79, 358, 373 ], "uses": [], "idx": 374 }, { "path": "../src/app/bindinspector/Util.js", "requires": [], "uses": [ 73 ], "idx": 375 }, { "path": "../src/app/bindinspector/ComponentDetail.js", "requires": [ 109, 185, 316, 325, 339, 340, 355, 359, 372, 374, 375 ], "uses": [ 73, 344, 352, 360, 409, 415, 491, 595 ], "idx": 376 }, { "path": "../src/tree/View.js", "requires": [ 371 ], "uses": [ 43, 79 ], "idx": 377 }, { "path": "../src/selection/RowModel.js", "requires": [ 363, 367 ], "uses": [], "idx": 378 }, { "path": "../src/selection/TreeModel.js", "requires": [ 378 ], "uses": [], "idx": 379 }, { "path": "../src/grid/ColumnLayout.js", "requires": [ 339, 361 ], "uses": [], "idx": 380 }, { "path": "../src/dd/DragTracker.js", "requires": [ 45 ], "uses": [ 24, 342 ], "idx": 381 }, { "path": "../src/grid/plugin/HeaderResizer.js", "requires": [ 24, 299, 381 ], "uses": [ 394 ], "idx": 382 }, { "path": "../src/dd/DragZone.js", "requires": [ 349 ], "uses": [ 386, 388 ], "idx": 383 }, { "path": "../src/grid/header/DragZone.js", "requires": [ 383 ], "uses": [], "idx": 384 }, { "path": "../src/dd/DDTarget.js", "requires": [ 345 ], "uses": [], "idx": 385 }, { "path": "../src/dd/ScrollManager.js", "requires": [ 336 ], "uses": [], "idx": 386 }, { "path": "../src/dd/DropTarget.js", "requires": [ 385, 386 ], "uses": [], "idx": 387 }, { "path": "../src/dd/Registry.js", "requires": [], "uses": [], "idx": 388 }, { "path": "../src/dd/DropZone.js", "requires": [ 387, 388 ], "uses": [ 336 ], "idx": 389 }, { "path": "../src/grid/header/DropZone.js", "requires": [ 389 ], "uses": [ 336 ], "idx": 390 }, { "path": "../src/grid/plugin/HeaderReorderer.js", "requires": [ 299, 384, 390 ], "uses": [], "idx": 391 }, { "path": "../src/grid/header/Container.js", "requires": [ 316, 342, 343, 380, 382, 391 ], "uses": [ 1, 109, 185, 325, 335, 340, 352, 394, 498, 520, 521, 522 ], "idx": 392 }, { "path": "../src/grid/ColumnComponentLayout.js", "requires": [ 325 ], "uses": [], "idx": 393 }, { "path": "../src/grid/column/Column.js", "requires": [ 195, 380, 392, 393 ], "uses": [ 72, 382 ], "idx": 394 }, { "path": "../src/tree/Column.js", "requires": [ 394 ], "uses": [], "idx": 395 }, { "path": "../src/grid/NavigationModel.js", "requires": [ 364 ], "uses": [ 26, 68, 109, 342, 367 ], "idx": 396 }, { "path": "../src/tree/NavigationModel.js", "requires": [ 396 ], "uses": [ 26 ], "idx": 397 }, { "path": "../src/tree/Panel.js", "requires": [ 217, 361, 377, 379, 395, 397 ], "uses": [ 165, 185, 314, 393 ], "idx": 398 }, { "path": "../src/form/field/VTypes.js", "requires": [], "uses": [], "idx": 399 }, { "path": "../src/form/trigger/Trigger.js", "requires": [ 84, 334 ], "uses": [ 43, 79 ], "idx": 400 }, { "path": "../src/form/field/Text.js", "requires": [ 307, 358, 399, 400 ], "uses": [ 72, 73, 83 ], "idx": 401 }, { "path": "../src/app/bindinspector/ComponentList.js", "requires": [ 398, 401 ], "uses": [ 14, 185, 314, 325, 344, 352, 375, 393, 395, 409, 421, 491, 595 ], "idx": 402 }, { "path": "../src/resizer/BorderSplitter.js", "requires": [ 337 ], "uses": [ 567 ], "idx": 403 }, { "path": "../src/layout/container/Border.js", "requires": [ 66, 110, 313, 403 ], "uses": [ 72, 185, 325 ], "idx": 404 }, { "path": "../src/layout/container/Card.js", "requires": [ 360 ], "uses": [ 43 ], "idx": 405 }, { "path": "../src/dom/ButtonElement.js", "requires": [ 43 ], "uses": [], "idx": 406 }, { "path": "../src/button/Manager.js", "requires": [], "uses": [], "idx": 407 }, { "path": "../src/menu/Manager.js", "requires": [], "uses": [ 11, 522 ], "idx": 408 }, { "path": "../src/button/Button.js", "requires": [ 109, 215, 307, 334, 341, 406, 407, 408 ], "uses": [ 26, 423 ], "idx": 409 }, { "path": "../src/tab/Tab.js", "requires": [ 342, 409 ], "uses": [], "idx": 410 }, { "path": "../src/layout/component/Body.js", "requires": [ 325 ], "uses": [], "idx": 411 }, { "path": "../src/tab/Bar.js", "requires": [ 25, 329, 343, 410, 411 ], "uses": [ 24 ], "idx": 412 }, { "path": "../src/tab/Panel.js", "requires": [ 355, 405, 412 ], "uses": [ 185, 325, 410 ], "idx": 413 }, { "path": "../src/app/bindinspector/Environment.js", "requires": [ 117 ], "uses": [ 11, 453 ], "idx": 414 }, { "path": "../src/app/bindinspector/ViewModelDetail.js", "requires": [ 398 ], "uses": [ 73, 185, 314, 375, 393, 395 ], "idx": 415 }, { "path": "../src/app/bindinspector/noconflict/BaseModel.js", "requires": [ 145 ], "uses": [], "idx": 416 }, { "path": "../src/app/bindinspector/Container.js", "requires": [ 109, 185, 316, 325, 339, 375, 376, 402, 404, 413, 414, 415, 416 ], "uses": [ 126, 314, 352, 355, 360, 412 ], "idx": 417 }, { "path": "../src/util/ComponentDragger.js", "requires": [ 381 ], "uses": [ 24, 43 ], "idx": 418 }, { "path": "../src/window/Window.js", "requires": [ 24, 355, 418 ], "uses": [], "idx": 419 }, { "path": "../src/tip/Tip.js", "requires": [ 355 ], "uses": [ 109 ], "idx": 420 }, { "path": "../src/tip/ToolTip.js", "requires": [ 420 ], "uses": [ 43 ], "idx": 421 }, { "path": "../src/tip/QuickTip.js", "requires": [ 421 ], "uses": [], "idx": 422 }, { "path": "../src/tip/QuickTipManager.js", "requires": [ 422 ], "uses": [], "idx": 423 }, { "path": "../src/app/bindinspector/Inspector.js", "requires": [ 360, 417, 419, 423 ], "uses": [ 185, 325, 404, 414 ], "idx": 424 }, { "path": "../src/button/Split.js", "requires": [ 409 ], "uses": [], "idx": 425 }, { "path": "../src/button/Cycle.js", "requires": [ 425 ], "uses": [], "idx": 426 }, { "path": "../src/button/Segmented.js", "requires": [ 316, 409 ], "uses": [], "idx": 427 }, { "path": "../src/layout/container/Table.js", "requires": [ 313 ], "uses": [], "idx": 428 }, { "path": "../src/container/ButtonGroup.js", "requires": [ 355, 428 ], "uses": [], "idx": 429 }, { "path": "../src/container/Monitor.js", "requires": [], "uses": [ 49 ], "idx": 430 }, { "path": "../src/plugin/Responsive.js", "requires": [ 294 ], "uses": [], "idx": 431 }, { "path": "../src/plugin/Viewport.js", "requires": [ 431 ], "uses": [ 43, 109, 311 ], "idx": 432 }, { "path": "../src/container/Viewport.js", "requires": [ 294, 316, 432 ], "uses": [], "idx": 433 }, { "path": "../src/layout/container/Anchor.js", "requires": [ 314 ], "uses": [], "idx": 434 }, { "path": "../src/dashboard/Panel.js", "requires": [ 355 ], "uses": [ 11 ], "idx": 435 }, { "path": "../src/dashboard/Column.js", "requires": [ 316, 434, 435 ], "uses": [], "idx": 436 }, { "path": "../src/layout/container/Column.js", "requires": [ 314 ], "uses": [], "idx": 437 }, { "path": "../src/resizer/SplitterTracker.js", "requires": [ 24, 381 ], "uses": [ 43, 90 ], "idx": 438 }, { "path": "../src/layout/container/ColumnSplitterTracker.js", "requires": [ 438 ], "uses": [], "idx": 439 }, { "path": "../src/layout/container/ColumnSplitter.js", "requires": [ 337, 439 ], "uses": [], "idx": 440 }, { "path": "../src/layout/container/Dashboard.js", "requires": [ 437, 440 ], "uses": [ 185, 325 ], "idx": 441 }, { "path": "../src/dashboard/DropZone.js", "requires": [ 387 ], "uses": [], "idx": 442 }, { "path": "../src/dashboard/Part.js", "requires": [ 3, 84, 118 ], "uses": [], "idx": 443 }, { "path": "../src/dashboard/Dashboard.js", "requires": [ 355, 436, 441, 442, 443 ], "uses": [ 84, 106, 117 ], "idx": 444 }, { "path": "../src/dom/Layer.js", "requires": [ 43 ], "uses": [ 220 ], "idx": 445 }, { "path": "../src/enums.js", "requires": [], "uses": [], "idx": 446 }, { "path": "../src/event/publisher/MouseEnterLeave.js", "requires": [ 27 ], "uses": [], "idx": 447 }, { "path": "../src/flash/Component.js", "requires": [ 109 ], "uses": [], "idx": 448 }, { "path": "../src/form/action/Action.js", "requires": [], "uses": [], "idx": 449 }, { "path": "../src/form/action/Load.js", "requires": [ 8, 449 ], "uses": [ 9 ], "idx": 450 }, { "path": "../src/form/action/Submit.js", "requires": [ 449 ], "uses": [ 9, 220 ], "idx": 451 }, { "path": "../src/form/field/TextArea.js", "requires": [ 1, 79, 401 ], "uses": [ 72, 307 ], "idx": 452 }, { "path": "../src/window/MessageBox.js", "requires": [ 327, 339, 344, 401, 409, 419, 434, 452 ], "uses": [ 109, 185, 316, 325, 326, 491 ], "idx": 453 }, { "path": "../src/form/Basic.js", "requires": [ 1, 45, 49, 129, 450, 451, 453 ], "uses": [ 430 ], "idx": 454 }, { "path": "../src/form/FieldAncestor.js", "requires": [ 0, 430 ], "uses": [], "idx": 455 }, { "path": "../src/layout/component/field/FieldContainer.js", "requires": [ 325 ], "uses": [], "idx": 456 }, { "path": "../src/form/FieldContainer.js", "requires": [ 316, 356, 455, 456 ], "uses": [], "idx": 457 }, { "path": "../src/layout/container/CheckboxGroup.js", "requires": [ 313 ], "uses": [ 220 ], "idx": 458 }, { "path": "../src/form/CheckboxGroup.js", "requires": [ 357, 358, 374, 457, 458 ], "uses": [], "idx": 459 }, { "path": "../src/form/FieldSet.js", "requires": [ 316, 455 ], "uses": [ 43, 82, 109, 185, 220, 313, 325, 331, 374, 434, 557 ], "idx": 460 }, { "path": "../src/form/Label.js", "requires": [ 72, 109 ], "uses": [], "idx": 461 }, { "path": "../src/form/Panel.js", "requires": [ 50, 355, 454, 455 ], "uses": [], "idx": 462 }, { "path": "../src/form/RadioManager.js", "requires": [ 49 ], "uses": [], "idx": 463 }, { "path": "../src/form/field/Radio.js", "requires": [ 374, 463 ], "uses": [], "idx": 464 }, { "path": "../src/form/RadioGroup.js", "requires": [ 343, 459, 464 ], "uses": [ 463 ], "idx": 465 }, { "path": "../src/form/action/DirectAction.js", "requires": [ 0 ], "uses": [ 200 ], "idx": 466 }, { "path": "../src/form/action/DirectLoad.js", "requires": [ 200, 450, 466 ], "uses": [], "idx": 467 }, { "path": "../src/form/action/DirectSubmit.js", "requires": [ 200, 451, 466 ], "uses": [], "idx": 468 }, { "path": "../src/form/action/StandardSubmit.js", "requires": [ 451 ], "uses": [], "idx": 469 }, { "path": "../src/form/field/Picker.js", "requires": [ 342, 401 ], "uses": [], "idx": 470 }, { "path": "../src/view/BoundListKeyNav.js", "requires": [ 364 ], "uses": [ 26, 342 ], "idx": 471 }, { "path": "../src/layout/component/BoundList.js", "requires": [ 325 ], "uses": [], "idx": 472 }, { "path": "../src/toolbar/Item.js", "requires": [ 109, 344 ], "uses": [], "idx": 473 }, { "path": "../src/toolbar/TextItem.js", "requires": [ 79, 344, 473 ], "uses": [], "idx": 474 }, { "path": "../src/form/trigger/Spinner.js", "requires": [ 400 ], "uses": [], "idx": 475 }, { "path": "../src/form/field/Spinner.js", "requires": [ 342, 401, 475 ], "uses": [], "idx": 476 }, { "path": "../src/form/field/Number.js", "requires": [ 476 ], "uses": [ 72, 73 ], "idx": 477 }, { "path": "../src/toolbar/Paging.js", "requires": [ 322, 344, 474, 477 ], "uses": [ 73, 185, 325, 475 ], "idx": 478 }, { "path": "../src/view/BoundList.js", "requires": [ 43, 215, 366, 471, 472, 478 ], "uses": [ 79, 185, 325, 491 ], "idx": 479 }, { "path": "../src/form/field/ComboBox.js", "requires": [ 1, 165, 322, 470, 479 ], "uses": [ 26, 43, 44, 79, 117, 145, 160, 185, 220, 363, 471, 472 ], "idx": 480 }, { "path": "../src/picker/Month.js", "requires": [ 79, 109, 334, 409 ], "uses": [ 185, 325 ], "idx": 481 }, { "path": "../src/picker/Date.js", "requires": [ 60, 79, 109, 334, 342, 409, 425, 481 ], "uses": [ 73, 185, 220, 325 ], "idx": 482 }, { "path": "../src/form/field/Date.js", "requires": [ 470, 482 ], "uses": [ 73, 185, 325 ], "idx": 483 }, { "path": "../src/form/field/FileButton.js", "requires": [ 409 ], "uses": [ 109 ], "idx": 484 }, { "path": "../src/form/trigger/Component.js", "requires": [ 400 ], "uses": [], "idx": 485 }, { "path": "../src/form/field/File.js", "requires": [ 401, 484, 485 ], "uses": [ 185, 325 ], "idx": 486 }, { "path": "../src/form/field/Hidden.js", "requires": [ 358 ], "uses": [], "idx": 487 }, { "path": "../src/picker/Color.js", "requires": [ 79, 109 ], "uses": [], "idx": 488 }, { "path": "../src/layout/component/field/HtmlEditor.js", "requires": [ 456 ], "uses": [], "idx": 489 }, { "path": "../src/toolbar/Separator.js", "requires": [ 344, 473 ], "uses": [], "idx": 490 }, { "path": "../src/layout/container/boxOverflow/Menu.js", "requires": [ 333, 409, 490 ], "uses": [ 185, 325, 335, 340, 352, 522, 595 ], "idx": 491 }, { "path": "../src/form/field/HtmlEditor.js", "requires": [ 72, 306, 340, 344, 357, 423, 457, 473, 488, 489, 491 ], "uses": [ 1, 73, 109, 185, 220, 325, 335, 352, 522 ], "idx": 492 }, { "path": "../src/form/field/Tag.js", "requires": [ 162, 197, 362, 480 ], "uses": [ 44, 79 ], "idx": 493 }, { "path": "../src/picker/Time.js", "requires": [ 162, 479 ], "uses": [ 44 ], "idx": 494 }, { "path": "../src/form/field/Time.js", "requires": [ 471, 480, 483, 494 ], "uses": [ 73, 79, 185, 363, 472 ], "idx": 495 }, { "path": "../src/form/field/Trigger.js", "requires": [ 220, 334, 401 ], "uses": [], "idx": 496 }, { "path": "../src/grid/CellEditor.js", "requires": [ 318 ], "uses": [], "idx": 497 }, { "path": "../src/grid/ColumnManager.js", "requires": [], "uses": [], "idx": 498 }, { "path": "../src/grid/RowEditorButtons.js", "requires": [ 316 ], "uses": [ 185, 325, 355, 409 ], "idx": 499 }, { "path": "../src/grid/RowEditor.js", "requires": [ 342, 421, 462, 499 ], "uses": [ 43, 70, 185, 314, 316, 325, 352, 359 ], "idx": 500 }, { "path": "../src/grid/Scroller.js", "requires": [], "uses": [], "idx": 501 }, { "path": "../src/view/DropZone.js", "requires": [ 389 ], "uses": [ 109, 185, 325 ], "idx": 502 }, { "path": "../src/grid/ViewDropZone.js", "requires": [ 502 ], "uses": [], "idx": 503 }, { "path": "../src/grid/column/Action.js", "requires": [ 394 ], "uses": [], "idx": 504 }, { "path": "../src/grid/column/Boolean.js", "requires": [ 394 ], "uses": [], "idx": 505 }, { "path": "../src/grid/column/Check.js", "requires": [ 394 ], "uses": [], "idx": 506 }, { "path": "../src/grid/column/Date.js", "requires": [ 394 ], "uses": [ 72 ], "idx": 507 }, { "path": "../src/grid/column/Number.js", "requires": [ 72, 394 ], "uses": [], "idx": 508 }, { "path": "../src/grid/column/RowNumberer.js", "requires": [ 394 ], "uses": [], "idx": 509 }, { "path": "../src/grid/column/Template.js", "requires": [ 79, 394 ], "uses": [ 506 ], "idx": 510 }, { "path": "../src/grid/column/Widget.js", "requires": [ 394 ], "uses": [], "idx": 511 }, { "path": "../src/grid/feature/Feature.js", "requires": [ 45 ], "uses": [], "idx": 512 }, { "path": "../src/grid/feature/AbstractSummary.js", "requires": [ 512 ], "uses": [], "idx": 513 }, { "path": "../src/grid/feature/GroupStore.js", "requires": [ 45 ], "uses": [ 117 ], "idx": 514 }, { "path": "../src/grid/feature/Grouping.js", "requires": [ 512, 513, 514 ], "uses": [ 79, 145, 392 ], "idx": 515 }, { "path": "../src/grid/feature/GroupingSummary.js", "requires": [ 515 ], "uses": [], "idx": 516 }, { "path": "../src/grid/feature/RowBody.js", "requires": [ 512 ], "uses": [ 79 ], "idx": 517 }, { "path": "../src/grid/feature/Summary.js", "requires": [ 513 ], "uses": [ 79, 109, 145, 185, 325 ], "idx": 518 }, { "path": "../src/menu/Item.js", "requires": [ 109, 215 ], "uses": [ 408, 423 ], "idx": 519 }, { "path": "../src/menu/CheckItem.js", "requires": [ 519 ], "uses": [ 408 ], "idx": 520 }, { "path": "../src/menu/Separator.js", "requires": [ 519 ], "uses": [], "idx": 521 }, { "path": "../src/menu/Menu.js", "requires": [ 340, 343, 355, 408, 519, 520, 521 ], "uses": [ 11, 43, 185, 325 ], "idx": 522 }, { "path": "../src/grid/filters/filter/Base.js", "requires": [ 84, 185, 335, 340, 352, 522 ], "uses": [ 1, 44 ], "idx": 523 }, { "path": "../src/grid/filters/filter/SingleFilter.js", "requires": [ 523 ], "uses": [], "idx": 524 }, { "path": "../src/grid/filters/filter/Boolean.js", "requires": [ 524 ], "uses": [], "idx": 525 }, { "path": "../src/grid/filters/filter/TriFilter.js", "requires": [ 523 ], "uses": [], "idx": 526 }, { "path": "../src/grid/filters/filter/Date.js", "requires": [ 185, 325, 520, 526 ], "uses": [ 482, 522 ], "idx": 527 }, { "path": "../src/grid/filters/filter/List.js", "requires": [ 524 ], "uses": [ 162, 165 ], "idx": 528 }, { "path": "../src/grid/filters/filter/Number.js", "requires": [ 185, 325, 475, 526 ], "uses": [ 477 ], "idx": 529 }, { "path": "../src/grid/filters/filter/String.js", "requires": [ 185, 325, 401, 524 ], "uses": [], "idx": 530 }, { "path": "../src/grid/filters/Filters.js", "requires": [ 299, 322, 523, 524, 525, 526, 527, 528, 529, 530 ], "uses": [ 84 ], "idx": 531 }, { "path": "../src/grid/locking/HeaderContainer.js", "requires": [ 392, 498 ], "uses": [], "idx": 532 }, { "path": "../src/grid/locking/View.js", "requires": [ 45, 108, 109, 322, 365, 371 ], "uses": [ 11, 323, 396, 397 ], "idx": 533 }, { "path": "../src/grid/locking/Lockable.js", "requires": [ 109, 371, 392, 532, 533 ], "uses": [ 1, 165, 185, 314, 325, 337, 338 ], "idx": 534 }, { "path": "../src/grid/plugin/BufferedRenderer.js", "requires": [ 299 ], "uses": [ 1, 369 ], "idx": 535 }, { "path": "../src/grid/plugin/Editing.js", "requires": [ 45, 299, 342, 358, 371, 394 ], "uses": [ 11, 185, 325, 367 ], "idx": 536 }, { "path": "../src/grid/plugin/CellEditing.js", "requires": [ 1, 497, 536 ], "uses": [ 49, 185, 317, 325 ], "idx": 537 }, { "path": "../src/plugin/AbstractClipboard.js", "requires": [ 299, 341 ], "uses": [ 43 ], "idx": 538 }, { "path": "../src/grid/plugin/Clipboard.js", "requires": [ 72, 305, 538 ], "uses": [ 367 ], "idx": 539 }, { "path": "../src/grid/plugin/DragDrop.js", "requires": [ 299 ], "uses": [ 503, 597 ], "idx": 540 }, { "path": "../src/grid/plugin/RowEditing.js", "requires": [ 500, 536 ], "uses": [], "idx": 541 }, { "path": "../src/grid/plugin/RowExpander.js", "requires": [ 299, 517 ], "uses": [ 79, 394 ], "idx": 542 }, { "path": "../src/grid/property/Grid.js", "requires": [ 372 ], "uses": [ 11, 79, 145, 185, 317, 325, 358, 371, 401, 475, 477, 480, 483, 497, 537, 544, 547 ], "idx": 543 }, { "path": "../src/grid/property/HeaderContainer.js", "requires": [ 72, 392 ], "uses": [], "idx": 544 }, { "path": "../src/grid/property/Property.js", "requires": [ 145 ], "uses": [], "idx": 545 }, { "path": "../src/grid/property/Reader.js", "requires": [ 147 ], "uses": [ 146 ], "idx": 546 }, { "path": "../src/grid/property/Store.js", "requires": [ 151, 162, 545, 546 ], "uses": [ 157 ], "idx": 547 }, { "path": "../src/grid/selection/Selection.js", "requires": [], "uses": [], "idx": 548 }, { "path": "../src/grid/selection/Cells.js", "requires": [ 548 ], "uses": [ 367 ], "idx": 549 }, { "path": "../src/grid/selection/Columns.js", "requires": [ 548 ], "uses": [ 367 ], "idx": 550 }, { "path": "../src/grid/selection/Rows.js", "requires": [ 117, 548 ], "uses": [ 367 ], "idx": 551 }, { "path": "../src/grid/selection/SpreadsheetModel.js", "requires": [ 362, 509, 548, 549, 550, 551 ], "uses": [ 185, 314, 367, 386, 393 ], "idx": 552 }, { "path": "../src/util/Queue.js", "requires": [], "uses": [], "idx": 553 }, { "path": "../src/layout/ContextItem.js", "requires": [], "uses": [ 49, 60, 66, 311 ], "idx": 554 }, { "path": "../src/layout/Context.js", "requires": [ 60, 66, 298, 312, 553, 554 ], "uses": [], "idx": 555 }, { "path": "../src/layout/SizePolicy.js", "requires": [], "uses": [], "idx": 556 }, { "path": "../src/layout/component/FieldSet.js", "requires": [ 411 ], "uses": [], "idx": 557 }, { "path": "../src/layout/container/Absolute.js", "requires": [ 434 ], "uses": [], "idx": 558 }, { "path": "../src/layout/container/Accordion.js", "requires": [ 340 ], "uses": [], "idx": 559 }, { "path": "../src/layout/container/Center.js", "requires": [ 360 ], "uses": [], "idx": 560 }, { "path": "../src/layout/container/Form.js", "requires": [ 314 ], "uses": [], "idx": 561 }, { "path": "../src/layout/container/SegmentedButton.js", "requires": [ 313 ], "uses": [], "idx": 562 }, { "path": "../src/menu/ColorPicker.js", "requires": [ 488, 522 ], "uses": [ 185, 325, 408 ], "idx": 563 }, { "path": "../src/menu/DatePicker.js", "requires": [ 482, 522 ], "uses": [ 185, 325, 408 ], "idx": 564 }, { "path": "../src/panel/Pinnable.js", "requires": [ 0 ], "uses": [ 185, 325, 331 ], "idx": 565 }, { "path": "../src/plugin/Manager.js", "requires": [], "uses": [], "idx": 566 }, { "path": "../src/resizer/BorderSplitterTracker.js", "requires": [ 24, 438 ], "uses": [], "idx": 567 }, { "path": "../src/resizer/Handle.js", "requires": [ 109 ], "uses": [], "idx": 568 }, { "path": "../src/resizer/ResizeTracker.js", "requires": [ 381 ], "uses": [], "idx": 569 }, { "path": "../src/resizer/Resizer.js", "requires": [ 45 ], "uses": [ 43, 73, 109, 220, 569 ], "idx": 570 }, { "path": "../src/selection/CellModel.js", "requires": [ 363, 367 ], "uses": [], "idx": 571 }, { "path": "../src/selection/CheckboxModel.js", "requires": [ 378 ], "uses": [ 185, 314, 367, 393, 394 ], "idx": 572 }, { "path": "../src/slider/Thumb.js", "requires": [ 72, 381 ], "uses": [ 66 ], "idx": 573 }, { "path": "../src/slider/Tip.js", "requires": [ 420 ], "uses": [], "idx": 574 }, { "path": "../src/slider/Multi.js", "requires": [ 72, 73, 358, 573, 574 ], "uses": [ 220 ], "idx": 575 }, { "path": "../src/slider/Single.js", "requires": [ 575 ], "uses": [], "idx": 576 }, { "path": "../src/slider/Widget.js", "requires": [ 76, 575 ], "uses": [ 66, 72 ], "idx": 577 }, { "path": "../src/sparkline/Shape.js", "requires": [], "uses": [], "idx": 578 }, { "path": "../src/sparkline/CanvasBase.js", "requires": [ 578 ], "uses": [], "idx": 579 }, { "path": "../src/sparkline/CanvasCanvas.js", "requires": [ 579 ], "uses": [], "idx": 580 }, { "path": "../src/sparkline/VmlCanvas.js", "requires": [ 579 ], "uses": [], "idx": 581 }, { "path": "../src/sparkline/Base.js", "requires": [ 76, 79, 185, 314, 352, 421, 580, 581 ], "uses": [], "idx": 582 }, { "path": "../src/sparkline/BarBase.js", "requires": [ 582 ], "uses": [], "idx": 583 }, { "path": "../src/sparkline/RangeMap.js", "requires": [], "uses": [], "idx": 584 }, { "path": "../src/sparkline/Bar.js", "requires": [ 79, 583, 584 ], "uses": [], "idx": 585 }, { "path": "../src/sparkline/Box.js", "requires": [ 79, 582 ], "uses": [], "idx": 586 }, { "path": "../src/sparkline/Bullet.js", "requires": [ 79, 582 ], "uses": [], "idx": 587 }, { "path": "../src/sparkline/Discrete.js", "requires": [ 79, 583 ], "uses": [], "idx": 588 }, { "path": "../src/sparkline/Line.js", "requires": [ 79, 582, 584 ], "uses": [], "idx": 589 }, { "path": "../src/sparkline/Pie.js", "requires": [ 79, 582 ], "uses": [], "idx": 590 }, { "path": "../src/sparkline/TriState.js", "requires": [ 79, 583, 584 ], "uses": [], "idx": 591 }, { "path": "../src/state/CookieProvider.js", "requires": [ 105 ], "uses": [], "idx": 592 }, { "path": "../src/state/LocalStorageProvider.js", "requires": [ 105, 304 ], "uses": [], "idx": 593 }, { "path": "../src/toolbar/Breadcrumb.js", "requires": [ 217, 316, 343, 425 ], "uses": [ 165 ], "idx": 594 }, { "path": "../src/toolbar/Fill.js", "requires": [ 109, 344 ], "uses": [], "idx": 595 }, { "path": "../src/toolbar/Spacer.js", "requires": [ 109, 344 ], "uses": [], "idx": 596 }, { "path": "../src/view/DragZone.js", "requires": [ 383 ], "uses": [ 73 ], "idx": 597 }, { "path": "../src/tree/ViewDragZone.js", "requires": [ 597 ], "uses": [ 73 ], "idx": 598 }, { "path": "../src/tree/ViewDropZone.js", "requires": [ 502 ], "uses": [], "idx": 599 }, { "path": "../src/tree/plugin/TreeViewDragDrop.js", "requires": [ 299 ], "uses": [ 598, 599 ], "idx": 600 }, { "path": "../src/util/CSS.js", "requires": [], "uses": [ 43 ], "idx": 601 }, { "path": "../src/util/Cookies.js", "requires": [], "uses": [], "idx": 602 }, { "path": "../src/view/MultiSelectorSearch.js", "requires": [ 355 ], "uses": [ 44, 165, 185, 325, 352, 360, 372, 401 ], "idx": 603 }, { "path": "../src/view/MultiSelector.js", "requires": [ 185, 352, 360, 372, 603 ], "uses": [], "idx": 604 }, { "path": "../src/window/Toast.js", "requires": [ 419 ], "uses": [ 1 ], "idx": 605 } ], "classes": { "Ext.AbstractManager": { "idx": 6, "alias": [], "alternates": [] }, "Ext.Action": { "idx": 308, "alias": [], "alternates": [] }, "Ext.Ajax": { "idx": 9, "alias": [], "alternates": [] }, "Ext.AnimationQueue": { "idx": 10, "alias": [], "alternates": [] }, "Ext.Component": { "idx": 109, "alias": [ "widget.box", "widget.component" ], "alternates": [ "Ext.AbstractComponent" ] }, "Ext.ComponentLoader": { "idx": 310, "alias": [], "alternates": [] }, "Ext.ComponentManager": { "idx": 11, "alias": [], "alternates": [ "Ext.ComponentMgr" ] }, "Ext.ComponentQuery": { "idx": 14, "alias": [], "alternates": [] }, "Ext.Editor": { "idx": 318, "alias": [ "widget.editor" ], "alternates": [] }, "Ext.ElementLoader": { "idx": 309, "alias": [], "alternates": [] }, "Ext.EventManager": { "idx": 319, "alias": [], "alternates": [] }, "Ext.Evented": { "idx": 15, "alias": [], "alternates": [ "Ext.EventedBase" ] }, "Ext.FocusManager": { "idx": 320, "alias": [], "alternates": [ "Ext.FocusMgr" ] }, "Ext.GlobalEvents": { "idx": 70, "alias": [], "alternates": [ "Ext.globalEvents" ] }, "Ext.Img": { "idx": 321, "alias": [ "widget.image", "widget.imagecomponent" ], "alternates": [] }, "Ext.LoadMask": { "idx": 323, "alias": [ "widget.loadmask" ], "alternates": [] }, "Ext.Mixin": { "idx": 0, "alias": [], "alternates": [] }, "Ext.ProgressBar": { "idx": 327, "alias": [ "widget.progressbar" ], "alternates": [] }, "Ext.ProgressBarWidget": { "idx": 328, "alias": [ "widget.progressbarwidget" ], "alternates": [] }, "Ext.TaskQueue": { "idx": 31, "alias": [], "alternates": [] }, "Ext.Template": { "idx": 73, "alias": [], "alternates": [] }, "Ext.Widget": { "idx": 76, "alias": [ "widget.widget" ], "alternates": [] }, "Ext.XTemplate": { "idx": 79, "alias": [], "alternates": [] }, "Ext.ZIndexManager": { "idx": 315, "alias": [], "alternates": [ "Ext.WindowGroup" ] }, "Ext.app.Application": { "idx": 172, "alias": [], "alternates": [] }, "Ext.app.BaseController": { "idx": 113, "alias": [], "alternates": [] }, "Ext.app.Controller": { "idx": 171, "alias": [], "alternates": [] }, "Ext.app.EventBus": { "idx": 111, "alias": [], "alternates": [] }, "Ext.app.EventDomain": { "idx": 80, "alias": [], "alternates": [] }, "Ext.app.Profile": { "idx": 173, "alias": [], "alternates": [] }, "Ext.app.Util": { "idx": 114, "alias": [], "alternates": [] }, "Ext.app.ViewController": { "idx": 175, "alias": [], "alternates": [] }, "Ext.app.ViewModel": { "idx": 198, "alias": [ "viewmodel.default" ], "alternates": [] }, "Ext.app.bind.AbstractStub": { "idx": 189, "alias": [], "alternates": [] }, "Ext.app.bind.BaseBinding": { "idx": 187, "alias": [], "alternates": [] }, "Ext.app.bind.Binding": { "idx": 188, "alias": [], "alternates": [] }, "Ext.app.bind.Formula": { "idx": 194, "alias": [], "alternates": [] }, "Ext.app.bind.LinkStub": { "idx": 191, "alias": [], "alternates": [] }, "Ext.app.bind.Multi": { "idx": 193, "alias": [], "alternates": [] }, "Ext.app.bind.RootStub": { "idx": 192, "alias": [], "alternates": [] }, "Ext.app.bind.Stub": { "idx": 190, "alias": [], "alternates": [] }, "Ext.app.bind.Template": { "idx": 195, "alias": [], "alternates": [] }, "Ext.app.bind.TemplateBinding": { "idx": 196, "alias": [], "alternates": [] }, "Ext.app.bindinspector.ComponentDetail": { "idx": 376, "alias": [ "widget.bindinspector-componentdetail" ], "alternates": [] }, "Ext.app.bindinspector.ComponentList": { "idx": 402, "alias": [ "widget.bindinspector-componentlist" ], "alternates": [] }, "Ext.app.bindinspector.Container": { "idx": 417, "alias": [ "widget.bindinspector-container" ], "alternates": [] }, "Ext.app.bindinspector.Environment": { "idx": 414, "alias": [], "alternates": [] }, "Ext.app.bindinspector.Inspector": { "idx": 424, "alias": [], "alternates": [] }, "Ext.app.bindinspector.Util": { "idx": 375, "alias": [], "alternates": [] }, "Ext.app.bindinspector.ViewModelDetail": { "idx": 415, "alias": [ "widget.bindinspector-viewmodeldetail" ], "alternates": [] }, "Ext.app.bindinspector.noconflict.BaseModel": { "idx": 416, "alias": [], "alternates": [] }, "Ext.app.domain.Component": { "idx": 81, "alias": [], "alternates": [] }, "Ext.app.domain.Controller": { "idx": 199, "alias": [], "alternates": [] }, "Ext.app.domain.Direct": { "idx": 202, "alias": [], "alternates": [] }, "Ext.app.domain.Global": { "idx": 112, "alias": [], "alternates": [] }, "Ext.app.domain.Store": { "idx": 166, "alias": [], "alternates": [] }, "Ext.app.domain.View": { "idx": 174, "alias": [], "alternates": [] }, "Ext.app.route.Queue": { "idx": 167, "alias": [], "alternates": [] }, "Ext.app.route.Route": { "idx": 168, "alias": [], "alternates": [] }, "Ext.app.route.Router": { "idx": 170, "alias": [], "alternates": [] }, "Ext.button.Button": { "idx": 409, "alias": [ "widget.button" ], "alternates": [ "Ext.Button" ] }, "Ext.button.Cycle": { "idx": 426, "alias": [ "widget.cycle" ], "alternates": [ "Ext.CycleButton" ] }, "Ext.button.Manager": { "idx": 407, "alias": [], "alternates": [ "Ext.ButtonToggleManager" ] }, "Ext.button.Segmented": { "idx": 427, "alias": [ "widget.segmentedbutton" ], "alternates": [] }, "Ext.button.Split": { "idx": 425, "alias": [ "widget.splitbutton" ], "alternates": [ "Ext.SplitButton" ] }, "Ext.container.ButtonGroup": { "idx": 429, "alias": [ "widget.buttongroup" ], "alternates": [ "Ext.ButtonGroup" ] }, "Ext.container.Container": { "idx": 316, "alias": [ "widget.container" ], "alternates": [ "Ext.Container", "Ext.AbstractContainer" ] }, "Ext.container.DockingContainer": { "idx": 354, "alias": [], "alternates": [] }, "Ext.container.Monitor": { "idx": 430, "alias": [], "alternates": [] }, "Ext.container.Viewport": { "idx": 433, "alias": [ "widget.viewport" ], "alternates": [ "Ext.Viewport" ] }, "Ext.dashboard.Column": { "idx": 436, "alias": [ "widget.dashboard-column" ], "alternates": [] }, "Ext.dashboard.Dashboard": { "idx": 444, "alias": [ "widget.dashboard" ], "alternates": [] }, "Ext.dashboard.DropZone": { "idx": 442, "alias": [], "alternates": [] }, "Ext.dashboard.Panel": { "idx": 435, "alias": [ "widget.dashboard-panel" ], "alternates": [] }, "Ext.dashboard.Part": { "idx": 443, "alias": [ "part.part" ], "alternates": [] }, "Ext.data.AbstractStore": { "idx": 127, "alias": [], "alternates": [] }, "Ext.data.ArrayStore": { "idx": 164, "alias": [ "store.array" ], "alternates": [ "Ext.data.SimpleStore" ] }, "Ext.data.Batch": { "idx": 178, "alias": [], "alternates": [] }, "Ext.data.BufferedStore": { "idx": 204, "alias": [ "store.buffered" ], "alternates": [] }, "Ext.data.ChainedStore": { "idx": 197, "alias": [ "store.chained" ], "alternates": [] }, "Ext.data.Connection": { "idx": 8, "alias": [], "alternates": [] }, "Ext.data.DirectStore": { "idx": 206, "alias": [ "store.direct" ], "alternates": [] }, "Ext.data.Error": { "idx": 128, "alias": [], "alternates": [] }, "Ext.data.ErrorCollection": { "idx": 129, "alias": [], "alternates": [ "Ext.data.Errors" ] }, "Ext.data.JsonP": { "idx": 207, "alias": [], "alternates": [] }, "Ext.data.JsonPStore": { "idx": 209, "alias": [ "store.jsonp" ], "alternates": [] }, "Ext.data.JsonStore": { "idx": 210, "alias": [ "store.json" ], "alternates": [] }, "Ext.data.LocalStore": { "idx": 153, "alias": [], "alternates": [] }, "Ext.data.Model": { "idx": 145, "alias": [], "alternates": [ "Ext.data.Record" ] }, "Ext.data.ModelManager": { "idx": 211, "alias": [], "alternates": [ "Ext.ModelMgr" ] }, "Ext.data.NodeInterface": { "idx": 212, "alias": [], "alternates": [] }, "Ext.data.NodeStore": { "idx": 213, "alias": [ "store.node" ], "alternates": [] }, "Ext.data.PageMap": { "idx": 203, "alias": [], "alternates": [] }, "Ext.data.ProxyStore": { "idx": 152, "alias": [], "alternates": [] }, "Ext.data.Request": { "idx": 214, "alias": [], "alternates": [] }, "Ext.data.ResultSet": { "idx": 146, "alias": [], "alternates": [] }, "Ext.data.Session": { "idx": 185, "alias": [], "alternates": [] }, "Ext.data.SortTypes": { "idx": 135, "alias": [], "alternates": [] }, "Ext.data.Store": { "idx": 162, "alias": [ "store.store" ], "alternates": [] }, "Ext.data.StoreManager": { "idx": 165, "alias": [], "alternates": [ "Ext.StoreMgr", "Ext.data.StoreMgr", "Ext.StoreManager" ] }, "Ext.data.TreeModel": { "idx": 216, "alias": [], "alternates": [] }, "Ext.data.TreeStore": { "idx": 217, "alias": [ "store.tree" ], "alternates": [] }, "Ext.data.Types": { "idx": 218, "alias": [], "alternates": [] }, "Ext.data.Validation": { "idx": 219, "alias": [], "alternates": [] }, "Ext.data.XmlStore": { "idx": 224, "alias": [ "store.xml" ], "alternates": [] }, "Ext.data.field.Boolean": { "idx": 138, "alias": [ "data.field.bool", "data.field.boolean" ], "alternates": [] }, "Ext.data.field.Date": { "idx": 139, "alias": [ "data.field.date" ], "alternates": [] }, "Ext.data.field.Field": { "idx": 137, "alias": [ "data.field.auto" ], "alternates": [ "Ext.data.Field" ] }, "Ext.data.field.Integer": { "idx": 140, "alias": [ "data.field.int", "data.field.integer" ], "alternates": [] }, "Ext.data.field.Number": { "idx": 141, "alias": [ "data.field.float", "data.field.number" ], "alternates": [] }, "Ext.data.field.String": { "idx": 142, "alias": [ "data.field.string" ], "alternates": [] }, "Ext.data.flash.BinaryXhr": { "idx": 7, "alias": [], "alternates": [] }, "Ext.data.identifier.Generator": { "idx": 143, "alias": [ "data.identifier.default" ], "alternates": [] }, "Ext.data.identifier.Negative": { "idx": 225, "alias": [ "data.identifier.negative" ], "alternates": [] }, "Ext.data.identifier.Sequential": { "idx": 144, "alias": [ "data.identifier.sequential" ], "alternates": [] }, "Ext.data.identifier.Uuid": { "idx": 226, "alias": [ "data.identifier.uuid" ], "alternates": [] }, "Ext.data.matrix.Matrix": { "idx": 181, "alias": [], "alternates": [] }, "Ext.data.matrix.Side": { "idx": 180, "alias": [], "alternates": [] }, "Ext.data.matrix.Slice": { "idx": 179, "alias": [], "alternates": [] }, "Ext.data.operation.Create": { "idx": 131, "alias": [ "data.operation.create" ], "alternates": [] }, "Ext.data.operation.Destroy": { "idx": 132, "alias": [ "data.operation.destroy" ], "alternates": [] }, "Ext.data.operation.Operation": { "idx": 130, "alias": [], "alternates": [ "Ext.data.Operation" ] }, "Ext.data.operation.Read": { "idx": 133, "alias": [ "data.operation.read" ], "alternates": [] }, "Ext.data.operation.Update": { "idx": 134, "alias": [ "data.operation.update" ], "alternates": [] }, "Ext.data.proxy.Ajax": { "idx": 155, "alias": [ "proxy.ajax" ], "alternates": [ "Ext.data.HttpProxy", "Ext.data.AjaxProxy" ] }, "Ext.data.proxy.Client": { "idx": 150, "alias": [], "alternates": [ "Ext.data.ClientProxy" ] }, "Ext.data.proxy.Direct": { "idx": 205, "alias": [ "proxy.direct" ], "alternates": [ "Ext.data.DirectProxy" ] }, "Ext.data.proxy.JsonP": { "idx": 208, "alias": [ "proxy.jsonp", "proxy.scripttag" ], "alternates": [ "Ext.data.ScriptTagProxy" ] }, "Ext.data.proxy.LocalStorage": { "idx": 228, "alias": [ "proxy.localstorage" ], "alternates": [ "Ext.data.LocalStorageProxy" ] }, "Ext.data.proxy.Memory": { "idx": 151, "alias": [ "proxy.memory" ], "alternates": [ "Ext.data.MemoryProxy" ] }, "Ext.data.proxy.Proxy": { "idx": 149, "alias": [ "proxy.proxy" ], "alternates": [ "Ext.data.DataProxy", "Ext.data.Proxy" ] }, "Ext.data.proxy.Rest": { "idx": 229, "alias": [ "proxy.rest" ], "alternates": [ "Ext.data.RestProxy" ] }, "Ext.data.proxy.Server": { "idx": 154, "alias": [ "proxy.server" ], "alternates": [ "Ext.data.ServerProxy" ] }, "Ext.data.proxy.SessionStorage": { "idx": 230, "alias": [ "proxy.sessionstorage" ], "alternates": [ "Ext.data.SessionStorageProxy" ] }, "Ext.data.proxy.WebStorage": { "idx": 227, "alias": [], "alternates": [ "Ext.data.WebStorageProxy" ] }, "Ext.data.reader.Array": { "idx": 163, "alias": [ "reader.array" ], "alternates": [ "Ext.data.ArrayReader" ] }, "Ext.data.reader.Json": { "idx": 156, "alias": [ "reader.json" ], "alternates": [ "Ext.data.JsonReader" ] }, "Ext.data.reader.Reader": { "idx": 147, "alias": [ "reader.base" ], "alternates": [ "Ext.data.Reader", "Ext.data.DataReader" ] }, "Ext.data.reader.Xml": { "idx": 222, "alias": [ "reader.xml" ], "alternates": [ "Ext.data.XmlReader" ] }, "Ext.data.schema.Association": { "idx": 120, "alias": [], "alternates": [] }, "Ext.data.schema.ManyToMany": { "idx": 123, "alias": [], "alternates": [] }, "Ext.data.schema.ManyToOne": { "idx": 122, "alias": [], "alternates": [] }, "Ext.data.schema.Namer": { "idx": 125, "alias": [ "namer.default" ], "alternates": [] }, "Ext.data.schema.OneToOne": { "idx": 121, "alias": [], "alternates": [] }, "Ext.data.schema.Role": { "idx": 119, "alias": [], "alternates": [] }, "Ext.data.schema.Schema": { "idx": 126, "alias": [ "schema.default" ], "alternates": [] }, "Ext.data.session.BatchVisitor": { "idx": 184, "alias": [], "alternates": [] }, "Ext.data.session.ChangesVisitor": { "idx": 182, "alias": [], "alternates": [] }, "Ext.data.session.ChildChangesVisitor": { "idx": 183, "alias": [], "alternates": [] }, "Ext.data.validator.Bound": { "idx": 231, "alias": [ "data.validator.bound" ], "alternates": [] }, "Ext.data.validator.Email": { "idx": 233, "alias": [ "data.validator.email" ], "alternates": [] }, "Ext.data.validator.Exclusion": { "idx": 235, "alias": [ "data.validator.exclusion" ], "alternates": [] }, "Ext.data.validator.Format": { "idx": 232, "alias": [ "data.validator.format" ], "alternates": [] }, "Ext.data.validator.Inclusion": { "idx": 236, "alias": [ "data.validator.inclusion" ], "alternates": [] }, "Ext.data.validator.Length": { "idx": 237, "alias": [ "data.validator.length" ], "alternates": [] }, "Ext.data.validator.List": { "idx": 234, "alias": [ "data.validator.list" ], "alternates": [] }, "Ext.data.validator.Presence": { "idx": 238, "alias": [ "data.validator.presence" ], "alternates": [] }, "Ext.data.validator.Range": { "idx": 239, "alias": [ "data.validator.range" ], "alternates": [] }, "Ext.data.validator.Validator": { "idx": 136, "alias": [ "data.validator.base" ], "alternates": [] }, "Ext.data.writer.Json": { "idx": 157, "alias": [ "writer.json" ], "alternates": [ "Ext.data.JsonWriter" ] }, "Ext.data.writer.Writer": { "idx": 148, "alias": [ "writer.base" ], "alternates": [ "Ext.data.DataWriter", "Ext.data.Writer" ] }, "Ext.data.writer.Xml": { "idx": 223, "alias": [ "writer.xml" ], "alternates": [ "Ext.data.XmlWriter" ] }, "Ext.dd.DD": { "idx": 346, "alias": [], "alternates": [] }, "Ext.dd.DDProxy": { "idx": 347, "alias": [], "alternates": [] }, "Ext.dd.DDTarget": { "idx": 385, "alias": [], "alternates": [] }, "Ext.dd.DragDrop": { "idx": 345, "alias": [], "alternates": [] }, "Ext.dd.DragDropManager": { "idx": 336, "alias": [], "alternates": [ "Ext.dd.DragDropMgr", "Ext.dd.DDM" ] }, "Ext.dd.DragSource": { "idx": 349, "alias": [], "alternates": [] }, "Ext.dd.DragTracker": { "idx": 381, "alias": [], "alternates": [] }, "Ext.dd.DragZone": { "idx": 383, "alias": [], "alternates": [] }, "Ext.dd.DropTarget": { "idx": 387, "alias": [], "alternates": [] }, "Ext.dd.DropZone": { "idx": 389, "alias": [], "alternates": [] }, "Ext.dd.Registry": { "idx": 388, "alias": [], "alternates": [] }, "Ext.dd.ScrollManager": { "idx": 386, "alias": [], "alternates": [] }, "Ext.dd.StatusProxy": { "idx": 348, "alias": [], "alternates": [] }, "Ext.direct.Event": { "idx": 240, "alias": [ "direct.event" ], "alternates": [] }, "Ext.direct.ExceptionEvent": { "idx": 242, "alias": [ "direct.exception" ], "alternates": [] }, "Ext.direct.JsonProvider": { "idx": 243, "alias": [ "direct.jsonprovider" ], "alternates": [] }, "Ext.direct.Manager": { "idx": 200, "alias": [], "alternates": [] }, "Ext.direct.PollingProvider": { "idx": 244, "alias": [ "direct.pollingprovider" ], "alternates": [] }, "Ext.direct.Provider": { "idx": 201, "alias": [ "direct.provider" ], "alternates": [] }, "Ext.direct.RemotingEvent": { "idx": 241, "alias": [ "direct.rpc" ], "alternates": [] }, "Ext.direct.RemotingMethod": { "idx": 245, "alias": [], "alternates": [] }, "Ext.direct.RemotingProvider": { "idx": 247, "alias": [ "direct.remotingprovider" ], "alternates": [] }, "Ext.direct.Transaction": { "idx": 246, "alias": [ "direct.transaction" ], "alternates": [ "Ext.Direct.Transaction" ] }, "Ext.dom.ButtonElement": { "idx": 406, "alias": [], "alternates": [] }, "Ext.dom.CompositeElement": { "idx": 83, "alias": [], "alternates": [ "Ext.CompositeElement" ] }, "Ext.dom.CompositeElementLite": { "idx": 69, "alias": [], "alternates": [ "Ext.CompositeElementLite" ] }, "Ext.dom.Element": { "idx": 43, "alias": [], "alternates": [ "Ext.Element" ] }, "Ext.dom.ElementEvent": { "idx": 21, "alias": [], "alternates": [] }, "Ext.dom.Fly": { "idx": 68, "alias": [], "alternates": [ "Ext.dom.Element.Fly" ] }, "Ext.dom.GarbageCollector": { "idx": 248, "alias": [], "alternates": [] }, "Ext.dom.Helper": { "idx": 220, "alias": [], "alternates": [ "Ext.DomHelper", "Ext.core.DomHelper" ] }, "Ext.dom.Layer": { "idx": 445, "alias": [], "alternates": [ "Ext.Layer" ] }, "Ext.dom.Query": { "idx": 221, "alias": [], "alternates": [ "Ext.core.DomQuery", "Ext.DomQuery" ] }, "Ext.dom.Shadow": { "idx": 19, "alias": [], "alternates": [ "Ext.Shadow" ] }, "Ext.dom.Shim": { "idx": 20, "alias": [], "alternates": [] }, "Ext.dom.Underlay": { "idx": 18, "alias": [], "alternates": [] }, "Ext.dom.UnderlayPool": { "idx": 17, "alias": [], "alternates": [] }, "Ext.event.Event": { "idx": 26, "alias": [], "alternates": [ "Ext.EventObjectImpl" ] }, "Ext.event.gesture.DoubleTap": { "idx": 251, "alias": [], "alternates": [] }, "Ext.event.gesture.Drag": { "idx": 252, "alias": [], "alternates": [] }, "Ext.event.gesture.EdgeSwipe": { "idx": 254, "alias": [], "alternates": [] }, "Ext.event.gesture.LongPress": { "idx": 255, "alias": [], "alternates": [] }, "Ext.event.gesture.MultiTouch": { "idx": 256, "alias": [], "alternates": [] }, "Ext.event.gesture.Pinch": { "idx": 257, "alias": [], "alternates": [] }, "Ext.event.gesture.Recognizer": { "idx": 249, "alias": [], "alternates": [] }, "Ext.event.gesture.Rotate": { "idx": 258, "alias": [], "alternates": [] }, "Ext.event.gesture.SingleTouch": { "idx": 250, "alias": [], "alternates": [] }, "Ext.event.gesture.Swipe": { "idx": 253, "alias": [], "alternates": [] }, "Ext.event.gesture.Tap": { "idx": 259, "alias": [], "alternates": [] }, "Ext.event.publisher.Dom": { "idx": 27, "alias": [], "alternates": [] }, "Ext.event.publisher.ElementPaint": { "idx": 42, "alias": [], "alternates": [] }, "Ext.event.publisher.ElementSize": { "idx": 37, "alias": [], "alternates": [] }, "Ext.event.publisher.Focus": { "idx": 29, "alias": [], "alternates": [] }, "Ext.event.publisher.Gesture": { "idx": 28, "alias": [], "alternates": [] }, "Ext.event.publisher.MouseEnterLeave": { "idx": 447, "alias": [], "alternates": [] }, "Ext.event.publisher.Publisher": { "idx": 22, "alias": [], "alternates": [] }, "Ext.flash.Component": { "idx": 448, "alias": [ "widget.flash" ], "alternates": [ "Ext.FlashComponent" ] }, "Ext.form.Basic": { "idx": 454, "alias": [], "alternates": [ "Ext.form.BasicForm" ] }, "Ext.form.CheckboxGroup": { "idx": 459, "alias": [ "widget.checkboxgroup" ], "alternates": [] }, "Ext.form.CheckboxManager": { "idx": 373, "alias": [], "alternates": [] }, "Ext.form.FieldAncestor": { "idx": 455, "alias": [], "alternates": [] }, "Ext.form.FieldContainer": { "idx": 457, "alias": [ "widget.fieldcontainer" ], "alternates": [] }, "Ext.form.FieldSet": { "idx": 460, "alias": [ "widget.fieldset" ], "alternates": [] }, "Ext.form.Label": { "idx": 461, "alias": [ "widget.label" ], "alternates": [] }, "Ext.form.Labelable": { "idx": 356, "alias": [], "alternates": [] }, "Ext.form.Panel": { "idx": 462, "alias": [ "widget.form" ], "alternates": [ "Ext.FormPanel", "Ext.form.FormPanel" ] }, "Ext.form.RadioGroup": { "idx": 465, "alias": [ "widget.radiogroup" ], "alternates": [] }, "Ext.form.RadioManager": { "idx": 463, "alias": [], "alternates": [] }, "Ext.form.action.Action": { "idx": 449, "alias": [], "alternates": [ "Ext.form.Action" ] }, "Ext.form.action.DirectAction": { "idx": 466, "alias": [], "alternates": [] }, "Ext.form.action.DirectLoad": { "idx": 467, "alias": [ "formaction.directload" ], "alternates": [ "Ext.form.Action.DirectLoad" ] }, "Ext.form.action.DirectSubmit": { "idx": 468, "alias": [ "formaction.directsubmit" ], "alternates": [ "Ext.form.Action.DirectSubmit" ] }, "Ext.form.action.Load": { "idx": 450, "alias": [ "formaction.load" ], "alternates": [ "Ext.form.Action.Load" ] }, "Ext.form.action.StandardSubmit": { "idx": 469, "alias": [ "formaction.standardsubmit" ], "alternates": [] }, "Ext.form.action.Submit": { "idx": 451, "alias": [ "formaction.submit" ], "alternates": [ "Ext.form.Action.Submit" ] }, "Ext.form.field.Base": { "idx": 358, "alias": [ "widget.field" ], "alternates": [ "Ext.form.Field", "Ext.form.BaseField" ] }, "Ext.form.field.Checkbox": { "idx": 374, "alias": [ "widget.checkbox", "widget.checkboxfield" ], "alternates": [ "Ext.form.Checkbox" ] }, "Ext.form.field.ComboBox": { "idx": 480, "alias": [ "widget.combo", "widget.combobox" ], "alternates": [ "Ext.form.ComboBox" ] }, "Ext.form.field.Date": { "idx": 483, "alias": [ "widget.datefield" ], "alternates": [ "Ext.form.DateField", "Ext.form.Date" ] }, "Ext.form.field.Display": { "idx": 359, "alias": [ "widget.displayfield" ], "alternates": [ "Ext.form.DisplayField", "Ext.form.Display" ] }, "Ext.form.field.Field": { "idx": 357, "alias": [], "alternates": [] }, "Ext.form.field.File": { "idx": 486, "alias": [ "widget.filefield", "widget.fileuploadfield" ], "alternates": [ "Ext.form.FileUploadField", "Ext.ux.form.FileUploadField", "Ext.form.File" ] }, "Ext.form.field.FileButton": { "idx": 484, "alias": [ "widget.filebutton" ], "alternates": [] }, "Ext.form.field.Hidden": { "idx": 487, "alias": [ "widget.hidden", "widget.hiddenfield" ], "alternates": [ "Ext.form.Hidden" ] }, "Ext.form.field.HtmlEditor": { "idx": 492, "alias": [ "widget.htmleditor" ], "alternates": [ "Ext.form.HtmlEditor" ] }, "Ext.form.field.Number": { "idx": 477, "alias": [ "widget.numberfield" ], "alternates": [ "Ext.form.NumberField", "Ext.form.Number" ] }, "Ext.form.field.Picker": { "idx": 470, "alias": [ "widget.pickerfield" ], "alternates": [ "Ext.form.Picker" ] }, "Ext.form.field.Radio": { "idx": 464, "alias": [ "widget.radio", "widget.radiofield" ], "alternates": [ "Ext.form.Radio" ] }, "Ext.form.field.Spinner": { "idx": 476, "alias": [ "widget.spinnerfield" ], "alternates": [ "Ext.form.Spinner" ] }, "Ext.form.field.Tag": { "idx": 493, "alias": [ "widget.tagfield" ], "alternates": [] }, "Ext.form.field.Text": { "idx": 401, "alias": [ "widget.textfield" ], "alternates": [ "Ext.form.TextField", "Ext.form.Text" ] }, "Ext.form.field.TextArea": { "idx": 452, "alias": [ "widget.textarea", "widget.textareafield" ], "alternates": [ "Ext.form.TextArea" ] }, "Ext.form.field.Time": { "idx": 495, "alias": [ "widget.timefield" ], "alternates": [ "Ext.form.TimeField", "Ext.form.Time" ] }, "Ext.form.field.Trigger": { "idx": 496, "alias": [ "widget.trigger", "widget.triggerfield" ], "alternates": [ "Ext.form.TriggerField", "Ext.form.TwinTriggerField", "Ext.form.Trigger" ] }, "Ext.form.field.VTypes": { "idx": 399, "alias": [], "alternates": [ "Ext.form.VTypes" ] }, "Ext.form.trigger.Component": { "idx": 485, "alias": [ "trigger.component" ], "alternates": [] }, "Ext.form.trigger.Spinner": { "idx": 475, "alias": [ "trigger.spinner" ], "alternates": [] }, "Ext.form.trigger.Trigger": { "idx": 400, "alias": [ "trigger.trigger" ], "alternates": [] }, "Ext.fx.Anim": { "idx": 66, "alias": [], "alternates": [] }, "Ext.fx.Animation": { "idx": 269, "alias": [], "alternates": [] }, "Ext.fx.Animator": { "idx": 61, "alias": [], "alternates": [] }, "Ext.fx.CubicBezier": { "idx": 62, "alias": [], "alternates": [] }, "Ext.fx.DrawPath": { "idx": 64, "alias": [], "alternates": [] }, "Ext.fx.Easing": { "idx": 63, "alias": [], "alternates": [] }, "Ext.fx.Manager": { "idx": 60, "alias": [], "alternates": [] }, "Ext.fx.PropertyHandler": { "idx": 65, "alias": [], "alternates": [] }, "Ext.fx.Queue": { "idx": 59, "alias": [], "alternates": [] }, "Ext.fx.Runner": { "idx": 272, "alias": [], "alternates": [] }, "Ext.fx.State": { "idx": 260, "alias": [], "alternates": [] }, "Ext.fx.animation.Abstract": { "idx": 261, "alias": [], "alternates": [] }, "Ext.fx.animation.Cube": { "idx": 273, "alias": [ "animation.cube" ], "alternates": [] }, "Ext.fx.animation.Fade": { "idx": 264, "alias": [ "animation.fade", "animation.fadeIn" ], "alternates": [ "Ext.fx.animation.FadeIn" ] }, "Ext.fx.animation.FadeOut": { "idx": 265, "alias": [ "animation.fadeOut" ], "alternates": [] }, "Ext.fx.animation.Flip": { "idx": 266, "alias": [ "animation.flip" ], "alternates": [] }, "Ext.fx.animation.Pop": { "idx": 267, "alias": [ "animation.pop", "animation.popIn" ], "alternates": [ "Ext.fx.animation.PopIn" ] }, "Ext.fx.animation.PopOut": { "idx": 268, "alias": [ "animation.popOut" ], "alternates": [] }, "Ext.fx.animation.Slide": { "idx": 262, "alias": [ "animation.slide", "animation.slideIn" ], "alternates": [ "Ext.fx.animation.SlideIn" ] }, "Ext.fx.animation.SlideOut": { "idx": 263, "alias": [ "animation.slideOut" ], "alternates": [] }, "Ext.fx.animation.Wipe": { "idx": 274, "alias": [], "alternates": [ "Ext.fx.animation.WipeIn" ] }, "Ext.fx.animation.WipeOut": { "idx": 275, "alias": [], "alternates": [] }, "Ext.fx.easing.Abstract": { "idx": 86, "alias": [], "alternates": [] }, "Ext.fx.easing.Bounce": { "idx": 88, "alias": [], "alternates": [] }, "Ext.fx.easing.BoundMomentum": { "idx": 89, "alias": [], "alternates": [] }, "Ext.fx.easing.EaseIn": { "idx": 276, "alias": [ "easing.ease-in" ], "alternates": [] }, "Ext.fx.easing.EaseOut": { "idx": 91, "alias": [ "easing.ease-out" ], "alternates": [] }, "Ext.fx.easing.Easing": { "idx": 277, "alias": [], "alternates": [] }, "Ext.fx.easing.Linear": { "idx": 90, "alias": [ "easing.linear" ], "alternates": [] }, "Ext.fx.easing.Momentum": { "idx": 87, "alias": [], "alternates": [] }, "Ext.fx.layout.Card": { "idx": 287, "alias": [], "alternates": [] }, "Ext.fx.layout.card.Abstract": { "idx": 278, "alias": [], "alternates": [] }, "Ext.fx.layout.card.Cover": { "idx": 281, "alias": [ "fx.layout.card.cover" ], "alternates": [] }, "Ext.fx.layout.card.Cube": { "idx": 288, "alias": [ "fx.layout.card.cube" ], "alternates": [] }, "Ext.fx.layout.card.Fade": { "idx": 283, "alias": [ "fx.layout.card.fade" ], "alternates": [] }, "Ext.fx.layout.card.Flip": { "idx": 284, "alias": [ "fx.layout.card.flip" ], "alternates": [] }, "Ext.fx.layout.card.Pop": { "idx": 285, "alias": [ "fx.layout.card.pop" ], "alternates": [] }, "Ext.fx.layout.card.Reveal": { "idx": 282, "alias": [ "fx.layout.card.reveal" ], "alternates": [] }, "Ext.fx.layout.card.Scroll": { "idx": 286, "alias": [ "fx.layout.card.scroll" ], "alternates": [] }, "Ext.fx.layout.card.ScrollCover": { "idx": 289, "alias": [ "fx.layout.card.scrollcover" ], "alternates": [] }, "Ext.fx.layout.card.ScrollReveal": { "idx": 290, "alias": [ "fx.layout.card.scrollreveal" ], "alternates": [] }, "Ext.fx.layout.card.Slide": { "idx": 280, "alias": [ "fx.layout.card.slide" ], "alternates": [] }, "Ext.fx.layout.card.Style": { "idx": 279, "alias": [], "alternates": [] }, "Ext.fx.runner.Css": { "idx": 270, "alias": [], "alternates": [] }, "Ext.fx.runner.CssAnimation": { "idx": 291, "alias": [], "alternates": [] }, "Ext.fx.runner.CssTransition": { "idx": 271, "alias": [], "alternates": [ "Ext.Animator" ] }, "Ext.fx.target.Component": { "idx": 58, "alias": [], "alternates": [] }, "Ext.fx.target.CompositeElement": { "idx": 54, "alias": [], "alternates": [] }, "Ext.fx.target.CompositeElementCSS": { "idx": 55, "alias": [], "alternates": [] }, "Ext.fx.target.CompositeSprite": { "idx": 57, "alias": [], "alternates": [] }, "Ext.fx.target.Element": { "idx": 52, "alias": [], "alternates": [] }, "Ext.fx.target.ElementCSS": { "idx": 53, "alias": [], "alternates": [] }, "Ext.fx.target.Sprite": { "idx": 56, "alias": [], "alternates": [] }, "Ext.fx.target.Target": { "idx": 51, "alias": [], "alternates": [] }, "Ext.grid.CellContext": { "idx": 367, "alias": [], "alternates": [] }, "Ext.grid.CellEditor": { "idx": 497, "alias": [], "alternates": [] }, "Ext.grid.ColumnComponentLayout": { "idx": 393, "alias": [ "layout.columncomponent" ], "alternates": [] }, "Ext.grid.ColumnLayout": { "idx": 380, "alias": [ "layout.gridcolumn" ], "alternates": [] }, "Ext.grid.ColumnManager": { "idx": 498, "alias": [], "alternates": [ "Ext.grid.ColumnModel" ] }, "Ext.grid.NavigationModel": { "idx": 396, "alias": [ "view.navigation.grid" ], "alternates": [] }, "Ext.grid.Panel": { "idx": 372, "alias": [ "widget.grid", "widget.gridpanel" ], "alternates": [ "Ext.list.ListView", "Ext.ListView", "Ext.grid.GridPanel" ] }, "Ext.grid.RowEditor": { "idx": 500, "alias": [ "widget.roweditor" ], "alternates": [] }, "Ext.grid.RowEditorButtons": { "idx": 499, "alias": [ "widget.roweditorbuttons" ], "alternates": [] }, "Ext.grid.Scroller": { "idx": 501, "alias": [], "alternates": [] }, "Ext.grid.ViewDropZone": { "idx": 503, "alias": [], "alternates": [] }, "Ext.grid.column.Action": { "idx": 504, "alias": [ "widget.actioncolumn" ], "alternates": [ "Ext.grid.ActionColumn" ] }, "Ext.grid.column.Boolean": { "idx": 505, "alias": [ "widget.booleancolumn" ], "alternates": [ "Ext.grid.BooleanColumn" ] }, "Ext.grid.column.Check": { "idx": 506, "alias": [ "widget.checkcolumn" ], "alternates": [ "Ext.ux.CheckColumn", "Ext.grid.column.CheckColumn" ] }, "Ext.grid.column.Column": { "idx": 394, "alias": [ "widget.gridcolumn" ], "alternates": [ "Ext.grid.Column" ] }, "Ext.grid.column.Date": { "idx": 507, "alias": [ "widget.datecolumn" ], "alternates": [ "Ext.grid.DateColumn" ] }, "Ext.grid.column.Number": { "idx": 508, "alias": [ "widget.numbercolumn" ], "alternates": [ "Ext.grid.NumberColumn" ] }, "Ext.grid.column.RowNumberer": { "idx": 509, "alias": [ "widget.rownumberer" ], "alternates": [ "Ext.grid.RowNumberer" ] }, "Ext.grid.column.Template": { "idx": 510, "alias": [ "widget.templatecolumn" ], "alternates": [ "Ext.grid.TemplateColumn" ] }, "Ext.grid.column.Widget": { "idx": 511, "alias": [ "widget.widgetcolumn" ], "alternates": [] }, "Ext.grid.feature.AbstractSummary": { "idx": 513, "alias": [ "feature.abstractsummary" ], "alternates": [] }, "Ext.grid.feature.Feature": { "idx": 512, "alias": [ "feature.feature" ], "alternates": [] }, "Ext.grid.feature.GroupStore": { "idx": 514, "alias": [], "alternates": [] }, "Ext.grid.feature.Grouping": { "idx": 515, "alias": [ "feature.grouping" ], "alternates": [] }, "Ext.grid.feature.GroupingSummary": { "idx": 516, "alias": [ "feature.groupingsummary" ], "alternates": [] }, "Ext.grid.feature.RowBody": { "idx": 517, "alias": [ "feature.rowbody" ], "alternates": [] }, "Ext.grid.feature.Summary": { "idx": 518, "alias": [ "feature.summary" ], "alternates": [] }, "Ext.grid.filters.Filters": { "idx": 531, "alias": [ "plugin.gridfilters" ], "alternates": [] }, "Ext.grid.filters.filter.Base": { "idx": 523, "alias": [], "alternates": [] }, "Ext.grid.filters.filter.Boolean": { "idx": 525, "alias": [ "grid.filter.boolean" ], "alternates": [] }, "Ext.grid.filters.filter.Date": { "idx": 527, "alias": [ "grid.filter.date" ], "alternates": [] }, "Ext.grid.filters.filter.List": { "idx": 528, "alias": [ "grid.filter.list" ], "alternates": [] }, "Ext.grid.filters.filter.Number": { "idx": 529, "alias": [ "grid.filter.number", "grid.filter.numeric" ], "alternates": [] }, "Ext.grid.filters.filter.SingleFilter": { "idx": 524, "alias": [], "alternates": [] }, "Ext.grid.filters.filter.String": { "idx": 530, "alias": [ "grid.filter.string" ], "alternates": [] }, "Ext.grid.filters.filter.TriFilter": { "idx": 526, "alias": [], "alternates": [] }, "Ext.grid.header.Container": { "idx": 392, "alias": [ "widget.headercontainer" ], "alternates": [] }, "Ext.grid.header.DragZone": { "idx": 384, "alias": [], "alternates": [] }, "Ext.grid.header.DropZone": { "idx": 390, "alias": [], "alternates": [] }, "Ext.grid.locking.HeaderContainer": { "idx": 532, "alias": [], "alternates": [] }, "Ext.grid.locking.Lockable": { "idx": 534, "alias": [], "alternates": [ "Ext.grid.Lockable" ] }, "Ext.grid.locking.RowSynchronizer": { "idx": 369, "alias": [], "alternates": [] }, "Ext.grid.locking.View": { "idx": 533, "alias": [], "alternates": [ "Ext.grid.LockingView" ] }, "Ext.grid.plugin.BufferedRenderer": { "idx": 535, "alias": [ "plugin.bufferedrenderer" ], "alternates": [] }, "Ext.grid.plugin.CellEditing": { "idx": 537, "alias": [ "plugin.cellediting" ], "alternates": [] }, "Ext.grid.plugin.Clipboard": { "idx": 539, "alias": [ "plugin.clipboard" ], "alternates": [] }, "Ext.grid.plugin.DragDrop": { "idx": 540, "alias": [ "plugin.gridviewdragdrop" ], "alternates": [] }, "Ext.grid.plugin.Editing": { "idx": 536, "alias": [ "editing.editing" ], "alternates": [] }, "Ext.grid.plugin.HeaderReorderer": { "idx": 391, "alias": [ "plugin.gridheaderreorderer" ], "alternates": [] }, "Ext.grid.plugin.HeaderResizer": { "idx": 382, "alias": [ "plugin.gridheaderresizer" ], "alternates": [] }, "Ext.grid.plugin.RowEditing": { "idx": 541, "alias": [ "plugin.rowediting" ], "alternates": [] }, "Ext.grid.plugin.RowExpander": { "idx": 542, "alias": [ "plugin.rowexpander" ], "alternates": [] }, "Ext.grid.property.Grid": { "idx": 543, "alias": [ "widget.propertygrid" ], "alternates": [ "Ext.grid.PropertyGrid" ] }, "Ext.grid.property.HeaderContainer": { "idx": 544, "alias": [], "alternates": [ "Ext.grid.PropertyColumnModel" ] }, "Ext.grid.property.Property": { "idx": 545, "alias": [], "alternates": [ "Ext.PropGridProperty" ] }, "Ext.grid.property.Reader": { "idx": 546, "alias": [], "alternates": [] }, "Ext.grid.property.Store": { "idx": 547, "alias": [], "alternates": [ "Ext.grid.PropertyStore" ] }, "Ext.grid.selection.Cells": { "idx": 549, "alias": [], "alternates": [] }, "Ext.grid.selection.Columns": { "idx": 550, "alias": [], "alternates": [] }, "Ext.grid.selection.Rows": { "idx": 551, "alias": [], "alternates": [] }, "Ext.grid.selection.Selection": { "idx": 548, "alias": [], "alternates": [] }, "Ext.grid.selection.SpreadsheetModel": { "idx": 552, "alias": [ "selection.spreadsheet" ], "alternates": [] }, "Ext.layout.Context": { "idx": 555, "alias": [], "alternates": [] }, "Ext.layout.ContextItem": { "idx": 554, "alias": [], "alternates": [] }, "Ext.layout.Layout": { "idx": 312, "alias": [], "alternates": [] }, "Ext.layout.SizeModel": { "idx": 311, "alias": [], "alternates": [] }, "Ext.layout.component.Auto": { "idx": 325, "alias": [ "layout.autocomponent" ], "alternates": [] }, "Ext.layout.component.Body": { "idx": 411, "alias": [ "layout.body" ], "alternates": [] }, "Ext.layout.component.BoundList": { "idx": 472, "alias": [ "layout.boundlist" ], "alternates": [] }, "Ext.layout.component.Component": { "idx": 324, "alias": [], "alternates": [] }, "Ext.layout.component.Dock": { "idx": 352, "alias": [ "layout.dock" ], "alternates": [ "Ext.layout.component.AbstractDock" ] }, "Ext.layout.component.FieldSet": { "idx": 557, "alias": [ "layout.fieldset" ], "alternates": [] }, "Ext.layout.component.ProgressBar": { "idx": 326, "alias": [ "layout.progressbar" ], "alternates": [] }, "Ext.layout.component.field.FieldContainer": { "idx": 456, "alias": [ "layout.fieldcontainer" ], "alternates": [] }, "Ext.layout.component.field.HtmlEditor": { "idx": 489, "alias": [ "layout.htmleditor" ], "alternates": [] }, "Ext.layout.container.Absolute": { "idx": 558, "alias": [ "layout.absolute" ], "alternates": [ "Ext.layout.AbsoluteLayout" ] }, "Ext.layout.container.Accordion": { "idx": 559, "alias": [ "layout.accordion" ], "alternates": [ "Ext.layout.AccordionLayout" ] }, "Ext.layout.container.Anchor": { "idx": 434, "alias": [ "layout.anchor" ], "alternates": [ "Ext.layout.AnchorLayout" ] }, "Ext.layout.container.Auto": { "idx": 314, "alias": [ "layout.auto", "layout.autocontainer" ], "alternates": [] }, "Ext.layout.container.Border": { "idx": 404, "alias": [ "layout.border" ], "alternates": [ "Ext.layout.BorderLayout" ] }, "Ext.layout.container.Box": { "idx": 338, "alias": [ "layout.box" ], "alternates": [ "Ext.layout.BoxLayout" ] }, "Ext.layout.container.Card": { "idx": 405, "alias": [ "layout.card" ], "alternates": [ "Ext.layout.CardLayout" ] }, "Ext.layout.container.Center": { "idx": 560, "alias": [ "layout.center", "layout.ux.center" ], "alternates": [ "Ext.ux.layout.Center" ] }, "Ext.layout.container.CheckboxGroup": { "idx": 458, "alias": [ "layout.checkboxgroup" ], "alternates": [] }, "Ext.layout.container.Column": { "idx": 437, "alias": [ "layout.column" ], "alternates": [ "Ext.layout.ColumnLayout" ] }, "Ext.layout.container.ColumnSplitter": { "idx": 440, "alias": [ "widget.columnsplitter" ], "alternates": [] }, "Ext.layout.container.ColumnSplitterTracker": { "idx": 439, "alias": [], "alternates": [] }, "Ext.layout.container.Container": { "idx": 313, "alias": [ "layout.container" ], "alternates": [ "Ext.layout.ContainerLayout" ] }, "Ext.layout.container.Dashboard": { "idx": 441, "alias": [ "layout.dashboard" ], "alternates": [] }, "Ext.layout.container.Editor": { "idx": 317, "alias": [ "layout.editor" ], "alternates": [] }, "Ext.layout.container.Fit": { "idx": 360, "alias": [ "layout.fit" ], "alternates": [ "Ext.layout.FitLayout" ] }, "Ext.layout.container.Form": { "idx": 561, "alias": [ "layout.form" ], "alternates": [ "Ext.layout.FormLayout" ] }, "Ext.layout.container.HBox": { "idx": 339, "alias": [ "layout.hbox" ], "alternates": [ "Ext.layout.HBoxLayout" ] }, "Ext.layout.container.SegmentedButton": { "idx": 562, "alias": [ "layout.segmentedbutton" ], "alternates": [] }, "Ext.layout.container.Table": { "idx": 428, "alias": [ "layout.table" ], "alternates": [ "Ext.layout.TableLayout" ] }, "Ext.layout.container.VBox": { "idx": 340, "alias": [ "layout.vbox" ], "alternates": [ "Ext.layout.VBoxLayout" ] }, "Ext.layout.container.border.Region": { "idx": 110, "alias": [], "alternates": [] }, "Ext.layout.container.boxOverflow.Menu": { "idx": 491, "alias": [ "box.overflow.Menu", "box.overflow.menu" ], "alternates": [ "Ext.layout.boxOverflow.Menu" ] }, "Ext.layout.container.boxOverflow.None": { "idx": 333, "alias": [ "box.overflow.None", "box.overflow.none" ], "alternates": [ "Ext.layout.boxOverflow.None" ] }, "Ext.layout.container.boxOverflow.Scroller": { "idx": 335, "alias": [ "box.overflow.Scroller", "box.overflow.scroller" ], "alternates": [ "Ext.layout.boxOverflow.Scroller" ] }, "Ext.menu.CheckItem": { "idx": 520, "alias": [ "widget.menucheckitem" ], "alternates": [] }, "Ext.menu.ColorPicker": { "idx": 563, "alias": [ "widget.colormenu" ], "alternates": [] }, "Ext.menu.DatePicker": { "idx": 564, "alias": [ "widget.datemenu" ], "alternates": [] }, "Ext.menu.Item": { "idx": 519, "alias": [ "widget.menuitem" ], "alternates": [ "Ext.menu.TextItem" ] }, "Ext.menu.Manager": { "idx": 408, "alias": [], "alternates": [ "Ext.menu.MenuMgr" ] }, "Ext.menu.Menu": { "idx": 522, "alias": [ "widget.menu" ], "alternates": [] }, "Ext.menu.Separator": { "idx": 521, "alias": [ "widget.menuseparator" ], "alternates": [] }, "Ext.mixin.Bindable": { "idx": 75, "alias": [], "alternates": [] }, "Ext.mixin.Factoryable": { "idx": 84, "alias": [], "alternates": [] }, "Ext.mixin.Hookable": { "idx": 292, "alias": [], "alternates": [] }, "Ext.mixin.Identifiable": { "idx": 3, "alias": [], "alternates": [] }, "Ext.mixin.Inheritable": { "idx": 74, "alias": [], "alternates": [] }, "Ext.mixin.Mashup": { "idx": 293, "alias": [], "alternates": [] }, "Ext.mixin.Observable": { "idx": 4, "alias": [], "alternates": [] }, "Ext.mixin.Queryable": { "idx": 215, "alias": [], "alternates": [] }, "Ext.mixin.Responsive": { "idx": 294, "alias": [], "alternates": [] }, "Ext.mixin.Selectable": { "idx": 295, "alias": [], "alternates": [] }, "Ext.mixin.Templatable": { "idx": 30, "alias": [], "alternates": [] }, "Ext.mixin.Traversable": { "idx": 296, "alias": [], "alternates": [] }, "Ext.panel.Bar": { "idx": 329, "alias": [], "alternates": [] }, "Ext.panel.DD": { "idx": 351, "alias": [], "alternates": [] }, "Ext.panel.Header": { "idx": 332, "alias": [ "widget.header" ], "alternates": [] }, "Ext.panel.Panel": { "idx": 355, "alias": [ "widget.panel" ], "alternates": [ "Ext.Panel" ] }, "Ext.panel.Pinnable": { "idx": 565, "alias": [], "alternates": [] }, "Ext.panel.Proxy": { "idx": 350, "alias": [], "alternates": [ "Ext.dd.PanelProxy" ] }, "Ext.panel.Table": { "idx": 361, "alias": [ "widget.tablepanel" ], "alternates": [] }, "Ext.panel.Title": { "idx": 330, "alias": [ "widget.title" ], "alternates": [] }, "Ext.panel.Tool": { "idx": 331, "alias": [ "widget.tool" ], "alternates": [] }, "Ext.perf.Accumulator": { "idx": 297, "alias": [], "alternates": [] }, "Ext.perf.Monitor": { "idx": 298, "alias": [], "alternates": [ "Ext.Perf" ] }, "Ext.picker.Color": { "idx": 488, "alias": [ "widget.colorpicker" ], "alternates": [ "Ext.ColorPalette" ] }, "Ext.picker.Date": { "idx": 482, "alias": [ "widget.datepicker" ], "alternates": [ "Ext.DatePicker" ] }, "Ext.picker.Month": { "idx": 481, "alias": [ "widget.monthpicker" ], "alternates": [ "Ext.MonthPicker" ] }, "Ext.picker.Time": { "idx": 494, "alias": [ "widget.timepicker" ], "alternates": [] }, "Ext.plugin.Abstract": { "idx": 299, "alias": [], "alternates": [ "Ext.AbstractPlugin" ] }, "Ext.plugin.AbstractClipboard": { "idx": 538, "alias": [], "alternates": [] }, "Ext.plugin.LazyItems": { "idx": 300, "alias": [ "plugin.lazyitems" ], "alternates": [] }, "Ext.plugin.Manager": { "idx": 566, "alias": [], "alternates": [ "Ext.PluginManager", "Ext.PluginMgr" ] }, "Ext.plugin.Responsive": { "idx": 431, "alias": [ "plugin.responsive" ], "alternates": [] }, "Ext.plugin.Viewport": { "idx": 432, "alias": [ "plugin.viewport" ], "alternates": [] }, "Ext.resizer.BorderSplitter": { "idx": 403, "alias": [ "widget.bordersplitter" ], "alternates": [] }, "Ext.resizer.BorderSplitterTracker": { "idx": 567, "alias": [], "alternates": [] }, "Ext.resizer.Handle": { "idx": 568, "alias": [], "alternates": [] }, "Ext.resizer.ResizeTracker": { "idx": 569, "alias": [], "alternates": [] }, "Ext.resizer.Resizer": { "idx": 570, "alias": [], "alternates": [ "Ext.Resizable" ] }, "Ext.resizer.Splitter": { "idx": 337, "alias": [ "widget.splitter" ], "alternates": [] }, "Ext.resizer.SplitterTracker": { "idx": 438, "alias": [], "alternates": [] }, "Ext.scroll.DomScroller": { "idx": 101, "alias": [ "scroller.dom" ], "alternates": [] }, "Ext.scroll.Indicator": { "idx": 99, "alias": [ "widget.scrollindicator" ], "alternates": [] }, "Ext.scroll.Scroller": { "idx": 85, "alias": [ "scroller.scroller" ], "alternates": [] }, "Ext.scroll.TouchScroller": { "idx": 100, "alias": [ "scroller.touch" ], "alternates": [] }, "Ext.selection.CellModel": { "idx": 571, "alias": [ "selection.cellmodel" ], "alternates": [] }, "Ext.selection.CheckboxModel": { "idx": 572, "alias": [ "selection.checkboxmodel" ], "alternates": [] }, "Ext.selection.DataViewModel": { "idx": 363, "alias": [ "selection.dataviewmodel" ], "alternates": [] }, "Ext.selection.Model": { "idx": 362, "alias": [ "selection.abstract" ], "alternates": [ "Ext.AbstractSelectionModel" ] }, "Ext.selection.RowModel": { "idx": 378, "alias": [ "selection.rowmodel" ], "alternates": [] }, "Ext.selection.TreeModel": { "idx": 379, "alias": [ "selection.treemodel" ], "alternates": [] }, "Ext.slider.Multi": { "idx": 575, "alias": [ "widget.multislider" ], "alternates": [ "Ext.slider.MultiSlider" ] }, "Ext.slider.Single": { "idx": 576, "alias": [ "widget.slider", "widget.sliderfield" ], "alternates": [ "Ext.Slider", "Ext.form.SliderField", "Ext.slider.SingleSlider", "Ext.slider.Slider" ] }, "Ext.slider.Thumb": { "idx": 573, "alias": [], "alternates": [] }, "Ext.slider.Tip": { "idx": 574, "alias": [ "widget.slidertip" ], "alternates": [] }, "Ext.slider.Widget": { "idx": 577, "alias": [ "widget.sliderwidget" ], "alternates": [] }, "Ext.sparkline.Bar": { "idx": 585, "alias": [ "widget.sparklinebar" ], "alternates": [] }, "Ext.sparkline.BarBase": { "idx": 583, "alias": [], "alternates": [] }, "Ext.sparkline.Base": { "idx": 582, "alias": [], "alternates": [] }, "Ext.sparkline.Box": { "idx": 586, "alias": [ "widget.sparklinebox" ], "alternates": [] }, "Ext.sparkline.Bullet": { "idx": 587, "alias": [ "widget.sparklinebullet" ], "alternates": [] }, "Ext.sparkline.CanvasBase": { "idx": 579, "alias": [], "alternates": [] }, "Ext.sparkline.CanvasCanvas": { "idx": 580, "alias": [], "alternates": [] }, "Ext.sparkline.Discrete": { "idx": 588, "alias": [ "widget.sparklinediscrete" ], "alternates": [] }, "Ext.sparkline.Line": { "idx": 589, "alias": [ "widget.sparklineline" ], "alternates": [] }, "Ext.sparkline.Pie": { "idx": 590, "alias": [ "widget.sparklinepie" ], "alternates": [] }, "Ext.sparkline.RangeMap": { "idx": 584, "alias": [], "alternates": [] }, "Ext.sparkline.Shape": { "idx": 578, "alias": [], "alternates": [] }, "Ext.sparkline.TriState": { "idx": 591, "alias": [ "widget.sparklinetristate" ], "alternates": [] }, "Ext.sparkline.VmlCanvas": { "idx": 581, "alias": [], "alternates": [] }, "Ext.state.CookieProvider": { "idx": 592, "alias": [], "alternates": [] }, "Ext.state.LocalStorageProvider": { "idx": 593, "alias": [ "state.localstorage" ], "alternates": [] }, "Ext.state.Manager": { "idx": 106, "alias": [], "alternates": [] }, "Ext.state.Provider": { "idx": 105, "alias": [], "alternates": [] }, "Ext.state.Stateful": { "idx": 107, "alias": [], "alternates": [] }, "Ext.tab.Bar": { "idx": 412, "alias": [ "widget.tabbar" ], "alternates": [] }, "Ext.tab.Panel": { "idx": 413, "alias": [ "widget.tabpanel" ], "alternates": [ "Ext.TabPanel" ] }, "Ext.tab.Tab": { "idx": 410, "alias": [ "widget.tab" ], "alternates": [] }, "Ext.tip.QuickTip": { "idx": 422, "alias": [ "widget.quicktip" ], "alternates": [ "Ext.QuickTip" ] }, "Ext.tip.QuickTipManager": { "idx": 423, "alias": [], "alternates": [ "Ext.QuickTips" ] }, "Ext.tip.Tip": { "idx": 420, "alias": [ "widget.tip" ], "alternates": [ "Ext.Tip" ] }, "Ext.tip.ToolTip": { "idx": 421, "alias": [ "widget.tooltip" ], "alternates": [ "Ext.ToolTip" ] }, "Ext.toolbar.Breadcrumb": { "idx": 594, "alias": [ "widget.breadcrumb" ], "alternates": [] }, "Ext.toolbar.Fill": { "idx": 595, "alias": [ "widget.tbfill" ], "alternates": [ "Ext.Toolbar.Fill" ] }, "Ext.toolbar.Item": { "idx": 473, "alias": [ "widget.tbitem" ], "alternates": [ "Ext.Toolbar.Item" ] }, "Ext.toolbar.Paging": { "idx": 478, "alias": [ "widget.pagingtoolbar" ], "alternates": [ "Ext.PagingToolbar" ] }, "Ext.toolbar.Separator": { "idx": 490, "alias": [ "widget.tbseparator" ], "alternates": [ "Ext.Toolbar.Separator" ] }, "Ext.toolbar.Spacer": { "idx": 596, "alias": [ "widget.tbspacer" ], "alternates": [ "Ext.Toolbar.Spacer" ] }, "Ext.toolbar.TextItem": { "idx": 474, "alias": [ "widget.tbtext" ], "alternates": [ "Ext.Toolbar.TextItem" ] }, "Ext.toolbar.Toolbar": { "idx": 344, "alias": [ "widget.toolbar" ], "alternates": [ "Ext.Toolbar" ] }, "Ext.tree.Column": { "idx": 395, "alias": [ "widget.treecolumn" ], "alternates": [] }, "Ext.tree.NavigationModel": { "idx": 397, "alias": [ "view.navigation.tree" ], "alternates": [] }, "Ext.tree.Panel": { "idx": 398, "alias": [ "widget.treepanel" ], "alternates": [ "Ext.tree.TreePanel", "Ext.TreePanel" ] }, "Ext.tree.View": { "idx": 377, "alias": [ "widget.treeview" ], "alternates": [] }, "Ext.tree.ViewDragZone": { "idx": 598, "alias": [], "alternates": [] }, "Ext.tree.ViewDropZone": { "idx": 599, "alias": [], "alternates": [] }, "Ext.tree.plugin.TreeViewDragDrop": { "idx": 600, "alias": [ "plugin.treeviewdragdrop" ], "alternates": [] }, "Ext.util.AbstractMixedCollection": { "idx": 46, "alias": [], "alternates": [] }, "Ext.util.Animate": { "idx": 67, "alias": [], "alternates": [] }, "Ext.util.Bag": { "idx": 176, "alias": [], "alternates": [] }, "Ext.util.Base64": { "idx": 301, "alias": [], "alternates": [] }, "Ext.util.CSS": { "idx": 601, "alias": [], "alternates": [] }, "Ext.util.CSV": { "idx": 303, "alias": [], "alternates": [] }, "Ext.util.ClickRepeater": { "idx": 334, "alias": [], "alternates": [] }, "Ext.util.Collection": { "idx": 117, "alias": [], "alternates": [] }, "Ext.util.CollectionKey": { "idx": 115, "alias": [], "alternates": [] }, "Ext.util.ComponentDragger": { "idx": 418, "alias": [], "alternates": [] }, "Ext.util.Cookies": { "idx": 602, "alias": [], "alternates": [] }, "Ext.util.DelimitedValue": { "idx": 302, "alias": [], "alternates": [] }, "Ext.util.ElementContainer": { "idx": 103, "alias": [], "alternates": [] }, "Ext.util.Event": { "idx": 2, "alias": [], "alternates": [] }, "Ext.util.Filter": { "idx": 44, "alias": [], "alternates": [] }, "Ext.util.FilterCollection": { "idx": 160, "alias": [], "alternates": [] }, "Ext.util.Floating": { "idx": 102, "alias": [], "alternates": [] }, "Ext.util.Focusable": { "idx": 108, "alias": [], "alternates": [] }, "Ext.util.FocusableContainer": { "idx": 343, "alias": [], "alternates": [] }, "Ext.util.Format": { "idx": 72, "alias": [], "alternates": [] }, "Ext.util.Group": { "idx": 158, "alias": [], "alternates": [] }, "Ext.util.GroupCollection": { "idx": 161, "alias": [], "alternates": [] }, "Ext.util.Grouper": { "idx": 116, "alias": [], "alternates": [] }, "Ext.util.HashMap": { "idx": 5, "alias": [], "alternates": [] }, "Ext.util.History": { "idx": 169, "alias": [], "alternates": [ "Ext.History" ] }, "Ext.util.Inflector": { "idx": 124, "alias": [], "alternates": [] }, "Ext.util.KeyMap": { "idx": 341, "alias": [], "alternates": [ "Ext.KeyMap" ] }, "Ext.util.KeyNav": { "idx": 342, "alias": [], "alternates": [ "Ext.KeyNav" ] }, "Ext.util.LocalStorage": { "idx": 304, "alias": [], "alternates": [] }, "Ext.util.LruCache": { "idx": 13, "alias": [], "alternates": [] }, "Ext.util.Memento": { "idx": 353, "alias": [], "alternates": [] }, "Ext.util.MixedCollection": { "idx": 49, "alias": [], "alternates": [] }, "Ext.util.ObjectTemplate": { "idx": 118, "alias": [], "alternates": [] }, "Ext.util.Observable": { "idx": 45, "alias": [], "alternates": [] }, "Ext.util.Offset": { "idx": 23, "alias": [], "alternates": [] }, "Ext.util.PaintMonitor": { "idx": 41, "alias": [], "alternates": [] }, "Ext.util.Point": { "idx": 25, "alias": [], "alternates": [] }, "Ext.util.Positionable": { "idx": 16, "alias": [], "alternates": [] }, "Ext.util.ProtoElement": { "idx": 82, "alias": [], "alternates": [] }, "Ext.util.Queue": { "idx": 553, "alias": [], "alternates": [] }, "Ext.util.Region": { "idx": 24, "alias": [], "alternates": [] }, "Ext.util.Renderable": { "idx": 104, "alias": [], "alternates": [] }, "Ext.util.Schedulable": { "idx": 186, "alias": [], "alternates": [] }, "Ext.util.Scheduler": { "idx": 177, "alias": [], "alternates": [] }, "Ext.util.SizeMonitor": { "idx": 36, "alias": [], "alternates": [] }, "Ext.util.Sortable": { "idx": 48, "alias": [], "alternates": [] }, "Ext.util.Sorter": { "idx": 47, "alias": [], "alternates": [] }, "Ext.util.SorterCollection": { "idx": 159, "alias": [], "alternates": [] }, "Ext.util.StoreHolder": { "idx": 322, "alias": [], "alternates": [] }, "Ext.util.TSV": { "idx": 305, "alias": [], "alternates": [] }, "Ext.util.TaskManager": { "idx": 306, "alias": [], "alternates": [ "Ext.TaskManager" ] }, "Ext.util.TaskRunner": { "idx": 50, "alias": [], "alternates": [] }, "Ext.util.TextMetrics": { "idx": 307, "alias": [], "alternates": [] }, "Ext.util.Translatable": { "idx": 98, "alias": [], "alternates": [] }, "Ext.util.XTemplateCompiler": { "idx": 78, "alias": [], "alternates": [] }, "Ext.util.XTemplateParser": { "idx": 77, "alias": [], "alternates": [] }, "Ext.util.paintmonitor.Abstract": { "idx": 38, "alias": [], "alternates": [] }, "Ext.util.paintmonitor.CssAnimation": { "idx": 39, "alias": [], "alternates": [] }, "Ext.util.paintmonitor.OverflowChange": { "idx": 40, "alias": [], "alternates": [] }, "Ext.util.sizemonitor.Abstract": { "idx": 32, "alias": [], "alternates": [] }, "Ext.util.sizemonitor.Default": { "idx": 33, "alias": [], "alternates": [] }, "Ext.util.sizemonitor.OverflowChange": { "idx": 35, "alias": [], "alternates": [] }, "Ext.util.sizemonitor.Scroll": { "idx": 34, "alias": [], "alternates": [] }, "Ext.util.translatable.Abstract": { "idx": 92, "alias": [], "alternates": [] }, "Ext.util.translatable.CssPosition": { "idx": 97, "alias": [], "alternates": [] }, "Ext.util.translatable.CssTransform": { "idx": 94, "alias": [], "alternates": [] }, "Ext.util.translatable.Dom": { "idx": 93, "alias": [], "alternates": [] }, "Ext.util.translatable.ScrollParent": { "idx": 96, "alias": [], "alternates": [] }, "Ext.util.translatable.ScrollPosition": { "idx": 95, "alias": [], "alternates": [] }, "Ext.view.AbstractView": { "idx": 365, "alias": [], "alternates": [] }, "Ext.view.BoundList": { "idx": 479, "alias": [ "widget.boundlist" ], "alternates": [ "Ext.BoundList" ] }, "Ext.view.BoundListKeyNav": { "idx": 471, "alias": [ "view.navigation.boundlist" ], "alternates": [] }, "Ext.view.DragZone": { "idx": 597, "alias": [], "alternates": [] }, "Ext.view.DropZone": { "idx": 502, "alias": [], "alternates": [] }, "Ext.view.MultiSelector": { "idx": 604, "alias": [ "widget.multiselector" ], "alternates": [] }, "Ext.view.MultiSelectorSearch": { "idx": 603, "alias": [ "widget.multiselector-search" ], "alternates": [] }, "Ext.view.NavigationModel": { "idx": 364, "alias": [ "view.navigation.default" ], "alternates": [] }, "Ext.view.NodeCache": { "idx": 370, "alias": [], "alternates": [] }, "Ext.view.Table": { "idx": 371, "alias": [ "widget.gridview", "widget.tableview" ], "alternates": [ "Ext.grid.View" ] }, "Ext.view.TableLayout": { "idx": 368, "alias": [ "layout.tableview" ], "alternates": [] }, "Ext.view.View": { "idx": 366, "alias": [ "widget.dataview" ], "alternates": [ "Ext.DataView" ] }, "Ext.window.MessageBox": { "idx": 453, "alias": [ "widget.messagebox" ], "alternates": [] }, "Ext.window.Toast": { "idx": 605, "alias": [ "widget.toast" ], "alternates": [] }, "Ext.window.Window": { "idx": 419, "alias": [ "widget.window" ], "alternates": [ "Ext.Window" ] } }, "packages": { "ext": { "creator": "Sencha", "output": "${package.dir}/build", "requires": [ "sencha-core", "ext", "ext", "ext", "ext", "ext", "ext" ], "type": "framework", "version": "5.1.1.451" }, "sencha-core": { "creator": "Sencha", "output": "${package.dir}/build", "requires": [], "slicer": { "js": [] }, "type": "code", "version": "5.0.0" } }, "bootRelative": true }); var Ext = Ext || {}; Ext.Boot = Ext.Boot || (function(emptyFn) { var doc = document, apply = function(dest, src, defaults) { if (defaults) { apply(dest, defaults); } if (dest && src && typeof src == 'object') { for (var key in src) { dest[key] = src[key]; } } return dest; }, _config = { disableCaching: (/[?&](?:cache|disableCacheBuster)\b/i.test(location.search) || !(/http[s]?\:/i.test(location.href)) || /(^|[ ;])ext-cache=1/.test(doc.cookie)) ? false : true, disableCachingParam: '_dc', loadDelay: false, preserveScripts: true, charset: undefined }, cssRe = /\.css(?:\?|$)/i, resolverEl = doc.createElement('a'), isBrowser = typeof window !== 'undefined', _environment = { browser: isBrowser, node: !isBrowser && (typeof require === 'function'), phantom: (typeof phantom !== 'undefined' && phantom.fs) }, _tags = (Ext.platformTags = {}), _debug = function(message) {}, _apply = function(object, config, defaults) { if (defaults) { _apply(object, defaults); } if (object && config && typeof config === 'object') { for (var i in config) { object[i] = config[i]; } } return object; }, Boot = { loading: 0, loaded: 0, env: _environment, config: _config, scripts: {}, currentFile: null, suspendedQueue: [], currentRequest: null, syncMode: false, debug: _debug, useElements: true, listeners: [], Request: Request, Entry: Entry, detectPlatformTags: function() { var ua = navigator.userAgent, isMobile = _tags.isMobile = /Mobile(\/|\s)/.test(ua), isPhone, isDesktop, isTablet, touchSupported, isIE10, isBlackberry, element = document.createElement('div'), uaTagChecks = [ 'iPhone', 'iPod', 'Android', 'Silk', 'Android 2', 'BlackBerry', 'BB', 'iPad', 'RIM Tablet OS', 'MSIE 10', 'Trident', 'Chrome', 'Tizen', 'Firefox', 'Safari', 'Windows Phone' ], isEventSupported = function(name, tag) { if (tag === undefined) { tag = window; } var eventName = 'on' + name.toLowerCase(), isSupported = (eventName in element); if (!isSupported) { if (element.setAttribute && element.removeAttribute) { element.setAttribute(eventName, ''); isSupported = typeof element[eventName] === 'function'; if (typeof element[eventName] !== 'undefined') { element[eventName] = undefined; } element.removeAttribute(eventName); } } return isSupported; }, uaTags = {}, len = uaTagChecks.length, check, c; for (c = 0; c < len; c++) { check = uaTagChecks[c]; uaTags[check] = new RegExp(check).test(ua); } isPhone = (uaTags.iPhone || uaTags.iPod) || (!uaTags.Silk && (uaTags.Android && (uaTags['Android 2'] || isMobile))) || ((uaTags.BlackBerry || uaTags.BB) && uaTags.isMobile) || (uaTags['Windows Phone']); isTablet = (!_tags.isPhone) && (uaTags.iPad || uaTags.Android || uaTags.Silk || uaTags['RIM Tablet OS'] || (uaTags['MSIE 10'] && /; Touch/.test(ua))); touchSupported = isEventSupported('touchend') || navigator.maxTouchPoints || navigator.msMaxTouchPoints; isDesktop = !isPhone && !isTablet; isIE10 = uaTags['MSIE 10']; isBlackberry = uaTags.Blackberry || uaTags.BB; apply(_tags, Boot.loadPlatformsParam(), { phone: isPhone, tablet: isTablet, desktop: isDesktop, touch: touchSupported, ios: (uaTags.iPad || uaTags.iPhone || uaTags.iPod), android: uaTags.Android || uaTags.Silk, blackberry: isBlackberry, safari: uaTags.Safari && !isBlackberry, chrome: uaTags.Chrome, ie10: isIE10, windows: isIE10 || uaTags.Trident, tizen: uaTags.Tizen, firefox: uaTags.Firefox }); }, loadPlatformsParam: function() { var paramsString = window.location.search.substr(1), paramsArray = paramsString.split("&"), params = {}, i, platforms = {}, tmpArray, tmplen, platform, name, enabled; for (i = 0; i < paramsArray.length; i++) { tmpArray = paramsArray[i].split("="); params[tmpArray[0]] = tmpArray[1]; } if (params.platformTags) { tmpArray = params.platform.split(/\W/); for (tmplen = tmpArray.length , i = 0; i < tmplen; i++) { platform = tmpArray[i].split(":"); name = platform[0]; if (platform.length > 1) { enabled = platform[1]; if (enabled === 'false' || enabled === '0') { enabled = false; } else { enabled = true; } } platforms[name] = enabled; } } return platform; }, filterPlatform: function(platform) { platform = [].concat(platform); var len, p, tag; for (len = platform.length , p = 0; p < len; p++) { tag = platform[p]; if (_tags.hasOwnProperty(tag)) { return !!_tags[tag]; } } return false; }, init: function() { var scriptEls = doc.getElementsByTagName('script'), len = scriptEls.length, re = /\/ext(\-[a-z\-]+)?\.js$/, entry, script, src, state, baseUrl, key, n, origin; for (n = 0; n < len; n++) { src = (script = scriptEls[n]).src; if (!src) { continue; } state = script.readyState || null; if (!baseUrl) { if (re.test(src)) { Boot.hasReadyState = ("readyState" in script); Boot.hasAsync = ("async" in script) || !Boot.hasReadyState; baseUrl = src; } } if (!Boot.scripts[key = Boot.canonicalUrl(src)]) { _debug("creating entry " + key + " in Boot.init"); entry = new Entry({ key: key, url: src, done: state === null || state === 'loaded' || state === 'complete', el: script, prop: 'src' }); } } if (!baseUrl) { script = scriptEls[scriptEls.length - 1]; baseUrl = script.src; Boot.hasReadyState = ('readyState' in script); Boot.hasAsync = ("async" in script) || !Boot.hasReadyState; } Boot.baseUrl = baseUrl.substring(0, baseUrl.lastIndexOf('/') + 1); origin = window.location.origin || window.location.protocol + "//" + window.location.hostname + (window.location.port ? ':' + window.location.port : ''); Boot.origin = origin; Boot.detectPlatformTags(); Ext.filterPlatform = Boot.filterPlatform; }, canonicalUrl: function(url) { resolverEl.href = url; var ret = resolverEl.href, dc = _config.disableCachingParam, pos = dc ? ret.indexOf(dc + '=') : -1, c, end; if (pos > 0 && ((c = ret.charAt(pos - 1)) === '?' || c === '&')) { end = ret.indexOf('&', pos); end = (end < 0) ? '' : ret.substring(end); if (end && c === '?') { ++pos; end = end.substring(1); } ret = ret.substring(0, pos - 1) + end; } return ret; }, getConfig: function(name) { return name ? Boot.config[name] : Boot.config; }, setConfig: function(name, value) { if (typeof name === 'string') { Boot.config[name] = value; } else { for (var s in name) { Boot.setConfig(s, name[s]); } } return Boot; }, getHead: function() { return Boot.docHead || (Boot.docHead = doc.head || doc.getElementsByTagName('head')[0]); }, create: function(url, key, cfg) { var config = cfg || {}; config.url = url; config.key = key; return Boot.scripts[key] = new Entry(config); }, getEntry: function(url, cfg) { var key = Boot.canonicalUrl(url), entry = Boot.scripts[key]; if (!entry) { entry = Boot.create(url, key, cfg); } return entry; }, processRequest: function(request, sync) { request.loadEntries(sync); }, load: function(request) { _debug("Boot.load called"); var request = new Request(request); if (request.sync || Boot.syncMode) { return Boot.loadSync(request); } if (Boot.currentRequest) { _debug("current active request, suspending this request"); request.getEntries(); Boot.suspendedQueue.push(request); } else { Boot.currentRequest = request; Boot.processRequest(request, false); } return Boot; }, loadSync: function(request) { _debug("Boot.loadSync called"); var request = new Request(request); Boot.syncMode++; Boot.processRequest(request, true); Boot.syncMode--; return Boot; }, loadBasePrefix: function(request) { request = new Request(request); request.prependBaseUrl = true; return Boot.load(request); }, loadSyncBasePrefix: function(request) { request = new Request(request); request.prependBaseUrl = true; return Boot.loadSync(request); }, requestComplete: function(request) { var next; if (Boot.currentRequest === request) { Boot.currentRequest = null; while (Boot.suspendedQueue.length > 0) { next = Boot.suspendedQueue.shift(); if (!next.done) { _debug("resuming suspended request"); Boot.load(next); break; } } } if (!Boot.currentRequest && Boot.suspendedQueue.length == 0) { Boot.fireListeners(); } }, isLoading: function() { return !Boot.currentRequest && Boot.suspendedQueue.length == 0; }, fireListeners: function() { var listener; while (Boot.isLoading() && (listener = Boot.listeners.shift())) { listener(); } }, onBootReady: function(listener) { if (!Boot.isLoading()) { listener(); } else { Boot.listeners.push(listener); } }, getPathsFromIndexes: function(indexMap, loadOrder) { return Request.prototype.getPathsFromIndexes(indexMap, loadOrder); }, createLoadOrderMap: function(loadOrder) { return Request.prototype.createLoadOrderMap(loadOrder); }, fetch: function(url, complete, scope, async) { async = (async === undefined) ? !!complete : async; var xhr = new XMLHttpRequest(), result, status, content, exception = false, readyStateChange = function() { if (xhr && xhr.readyState == 4) { status = (xhr.status === 1223) ? 204 : (xhr.status === 0 && ((self.location || {}).protocol === 'file:' || (self.location || {}).protocol === 'ionp:')) ? 200 : xhr.status; content = xhr.responseText; result = { content: content, status: status, exception: exception }; if (complete) { complete.call(scope, result); } xhr = null; } }; if (async) { xhr.onreadystatechange = readyStateChange; } try { _debug("fetching " + url + " " + (async ? "async" : "sync")); xhr.open('GET', url, async); xhr.send(null); } catch (err) { exception = err; readyStateChange(); return result; } if (!async) { readyStateChange(); } return result; }, notifyAll: function(entry) { entry.notifyRequests(); } }; function Request(cfg) { if (cfg.$isRequest) { return cfg; } var cfg = cfg.url ? cfg : { url: cfg }, url = cfg.url, urls = url.charAt ? [ url ] : url, charset = cfg.charset || Boot.config.charset; _apply(cfg, { urls: urls, charset: charset }); _apply(this, cfg); } Request.prototype = { $isRequest: true, createLoadOrderMap: function(loadOrder) { var len = loadOrder.length, loadOrderMap = {}, i, element; for (i = 0; i < len; i++) { element = loadOrder[i]; loadOrderMap[element.path] = element; } return loadOrderMap; }, getLoadIndexes: function(index, indexMap, loadOrder, includeUses, skipLoaded) { var item = loadOrder[index], len, i, reqs, entry, stop, added, idx, ridx, url; if (indexMap[index]) { return indexMap; } indexMap[index] = true; stop = false; while (!stop) { added = false; for (idx in indexMap) { if (indexMap.hasOwnProperty(idx)) { item = loadOrder[idx]; if (!item) { continue; } url = this.prepareUrl(item.path); entry = Boot.getEntry(url); if (!skipLoaded || !entry || !entry.done) { reqs = item.requires; if (includeUses && item.uses) { reqs = reqs.concat(item.uses); } for (len = reqs.length , i = 0; i < len; i++) { ridx = reqs[i]; if (!indexMap[ridx]) { indexMap[ridx] = true; added = true; } } } } } if (!added) { stop = true; } } return indexMap; }, getPathsFromIndexes: function(indexMap, loadOrder) { var indexes = [], paths = [], index, len, i; for (index in indexMap) { if (indexMap.hasOwnProperty(index) && indexMap[index]) { indexes.push(index); } } indexes.sort(function(a, b) { return a - b; }); for (len = indexes.length , i = 0; i < len; i++) { paths.push(loadOrder[indexes[i]].path); } return paths; }, expandUrl: function(url, indexMap, includeUses, skipLoaded) { if (typeof url == 'string') { url = [ url ]; } var me = this, loadOrder = me.loadOrder, loadOrderMap = me.loadOrderMap; if (loadOrder) { loadOrderMap = loadOrderMap || me.createLoadOrderMap(loadOrder); me.loadOrderMap = loadOrderMap; indexMap = indexMap || {}; var len = url.length, unmapped = [], i, item; for (i = 0; i < len; i++) { item = loadOrderMap[url[i]]; if (item) { me.getLoadIndexes(item.idx, indexMap, loadOrder, includeUses, skipLoaded); } else { unmapped.push(url[i]); } } return me.getPathsFromIndexes(indexMap, loadOrder).concat(unmapped); } return url; }, expandUrls: function(urls, includeUses) { if (typeof urls == "string") { urls = [ urls ]; } var expanded = [], expandMap = {}, tmpExpanded, len = urls.length, i, t, tlen, tUrl; for (i = 0; i < len; i++) { tmpExpanded = this.expandUrl(urls[i], {}, includeUses, true); for (t = 0 , tlen = tmpExpanded.length; t < tlen; t++) { tUrl = tmpExpanded[t]; if (!expandMap[tUrl]) { expandMap[tUrl] = true; expanded.push(tUrl); } } } if (expanded.length == 0) { expanded = urls; } return expanded; }, expandLoadOrder: function() { var me = this, urls = me.urls, expanded; if (!me.expanded) { expanded = this.expandUrls(urls, true); me.expanded = true; } else { expanded = urls; } me.urls = expanded; if (urls.length != expanded.length) { me.sequential = true; } return me; }, getUrls: function() { this.expandLoadOrder(); return this.urls; }, prepareUrl: function(url) { if (this.prependBaseUrl) { return Boot.baseUrl + url; } return url; }, getEntries: function() { var me = this, entries = me.entries, i, entry, urls, url; if (!entries) { entries = []; urls = me.getUrls(); for (i = 0; i < urls.length; i++) { url = me.prepareUrl(urls[i]); entry = Boot.getEntry(url, { buster: me.buster, charset: me.charset }); entry.requests.push(me); entries.push(entry); } me.entries = entries; } return entries; }, loadEntries: function(sync) { var me = this, entries = me.getEntries(), len = entries.length, start = me.loadStart || 0, continueLoad, entry, i; if (sync !== undefined) { me.sync = sync; } me.loaded = me.loaded || 0; me.loading = me.loading || len; for (i = start; i < len; i++) { entry = entries[i]; if (!entry.loaded) { continueLoad = entries[i].load(me.sync); } else { continueLoad = true; } if (!continueLoad) { me.loadStart = i; entry.onDone(function() { me.loadEntries(sync); }); break; } } me.processLoadedEntries(); }, processLoadedEntries: function() { var me = this, entries = me.getEntries(), len = entries.length, start = me.startIndex || 0, i, entry; if (!me.done) { for (i = start; i < len; i++) { entry = entries[i]; if (!entry.loaded) { me.startIndex = i; return; } if (!entry.evaluated) { entry.evaluate(); } if (entry.error) { me.error = true; } } me.notify(); } }, notify: function() { var me = this; if (!me.done) { var error = me.error, fn = me[error ? 'failure' : 'success'], delay = ('delay' in me) ? me.delay : (error ? 1 : Boot.config.chainDelay), scope = me.scope || me; me.done = true; if (fn) { if (delay === 0 || delay > 0) { setTimeout(function() { fn.call(scope, me); }, delay); } else { fn.call(scope, me); } } me.fireListeners(); Boot.requestComplete(me); } }, onDone: function(listener) { var me = this, listeners = me.listeners || (me.listeners = []); if (me.done) { listener(me); } else { listeners.push(listener); } }, fireListeners: function() { var listeners = this.listeners, listener; if (listeners) { _debug("firing request listeners"); while ((listener = listeners.shift())) { listener(this); } } } }; function Entry(cfg) { if (cfg.$isEntry) { return cfg; } _debug("creating entry for " + cfg.url); var charset = cfg.charset || Boot.config.charset, manifest = Ext.manifest, loader = manifest && manifest.loader, cache = (cfg.cache !== undefined) ? cfg.cache : (loader && loader.cache), buster, busterParam; if (cache === undefined) { cache = !Boot.config.disableCaching; } if (cache === false) { buster = +new Date(); } else if (cache !== true) { buster = cache; } if (buster) { busterParam = (loader && loader.cacheParam) || Boot.config.disableCachingParam; buster = busterParam + "=" + buster; } _apply(cfg, { charset: charset, buster: buster, requests: [] }); _apply(this, cfg); } Entry.prototype = { $isEntry: true, done: false, evaluated: false, loaded: false, isCrossDomain: function() { var me = this; if (me.crossDomain === undefined) { _debug("checking " + me.getLoadUrl() + " for prefix " + Boot.origin); me.crossDomain = (me.getLoadUrl().indexOf(Boot.origin) !== 0); } return me.crossDomain; }, isCss: function() { var me = this; if (me.css === undefined) { me.css = me.url && cssRe.test(me.url); } return this.css; }, getElement: function(tag) { var me = this, el = me.el; if (!el) { _debug("creating element for " + me.url); if (me.isCss()) { tag = tag || "link"; el = doc.createElement(tag); if (tag == "link") { el.rel = 'stylesheet'; me.prop = 'href'; } else { me.prop = "textContent"; } el.type = "text/css"; } else { tag = tag || "script"; el = doc.createElement(tag); el.type = 'text/javascript'; me.prop = 'src'; if (Boot.hasAsync) { el.async = false; } } me.el = el; } return el; }, getLoadUrl: function() { var me = this, url = Boot.canonicalUrl(me.url); if (!me.loadUrl) { me.loadUrl = !!me.buster ? (url + (url.indexOf('?') === -1 ? '?' : '&') + me.buster) : url; } return me.loadUrl; }, fetch: function(req) { var url = this.getLoadUrl(), async = !!req.async, complete = req.complete; Boot.fetch(url, complete, this, async); }, onContentLoaded: function(response) { var me = this, status = response.status, content = response.content, exception = response.exception, url = this.getLoadUrl(); me.loaded = true; if ((exception || status === 0) && !_environment.phantom) { me.error = ("Failed loading synchronously via XHR: '" + url + "'. It's likely that the file is either being loaded from a " + "different domain or from the local file system where cross " + "origin requests are not allowed for security reasons. Try " + "asynchronous loading instead.") || true; me.evaluated = true; } else if ((status >= 200 && status < 300) || status === 304 || _environment.phantom || (status === 0 && content.length > 0)) { me.content = content; } else { me.error = ("Failed loading synchronously via XHR: '" + url + "'. Please verify that the file exists. XHR status code: " + status) || true; me.evaluated = true; } }, createLoadElement: function(callback) { var me = this, el = me.getElement(), readyStateChange = function() { if (this.readyState === 'loaded' || this.readyState === 'complete') { if (callback) { callback(); } } }, errorFn = function() { me.error = true; if (callback) { callback(); } }; me.preserve = true; el.onerror = errorFn; if (Boot.hasReadyState) { el.onreadystatechange = readyStateChange; } else { el.onload = callback; } el[me.prop] = me.getLoadUrl(); }, onLoadElementReady: function() { Boot.getHead().appendChild(this.getElement()); this.evaluated = true; }, inject: function(content, asset) { _debug("injecting content for " + this.url); var me = this, head = Boot.getHead(), url = me.url, key = me.key, base, el, ieMode, basePath; if (me.isCss()) { me.preserve = true; basePath = key.substring(0, key.lastIndexOf("/") + 1); base = doc.createElement('base'); base.href = basePath; if (head.firstChild) { head.insertBefore(base, head.firstChild); } else { head.appendChild(base); } base.href = base.href; if (url) { content += "\n/*# sourceURL=" + key + " */"; } el = me.getElement("style"); ieMode = ('styleSheet' in el); head.appendChild(base); if (ieMode) { head.appendChild(el); el.styleSheet.cssText = content; } else { el.textContent = content; head.appendChild(el); } head.removeChild(base); } else { if (url) { content += "\n//# sourceURL=" + key; } Ext.globalEval(content); } return me; }, loadCrossDomain: function() { var me = this, complete = function() { me.loaded = me.evaluated = me.done = true; me.notifyRequests(); }; if (me.isCss()) { me.createLoadElement(); me.evaluateLoadElement(); complete(); } else { me.createLoadElement(function() { complete(); }); me.evaluateLoadElement(); return false; } return true; }, loadElement: function() { var me = this, complete = function() { me.loaded = me.evaluated = me.done = true; me.notifyRequests(); }; if (me.isCss()) { return me.loadCrossDomain(); } else { me.createLoadElement(function() { complete(); }); me.evaluateLoadElement(); } return true; }, loadSync: function() { var me = this; me.fetch({ async: false, complete: function(response) { me.onContentLoaded(response); } }); me.evaluate(); me.notifyRequests(); }, load: function(sync) { var me = this; if (!me.loaded) { if (me.loading) { return false; } me.loading = true; if (!sync) { if (me.isCrossDomain()) { return me.loadCrossDomain(); } else if (!me.isCss() && Boot.hasReadyState) { me.createLoadElement(function() { me.loaded = true; me.notifyRequests(); }); } else if (Boot.useElements) { return me.loadElement(); } else { me.fetch({ async: !sync, complete: function(response) { me.onContentLoaded(response); me.notifyRequests(); } }); } } else { me.loadSync(); } } return true; }, evaluateContent: function() { this.inject(this.content); this.content = null; }, evaluateLoadElement: function() { Boot.getHead().appendChild(this.getElement()); }, evaluate: function() { var me = this; if (!me.evaluated) { if (me.evaluating) { return; } me.evaluating = true; if (me.content !== undefined) { me.evaluateContent(); } else if (!me.error) { me.evaluateLoadElement(); } me.evaluated = me.done = true; me.cleanup(); } }, cleanup: function() { var me = this, el = me.el, prop; if (!el) { return; } if (!me.preserve) { me.el = null; el.parentNode.removeChild(el); for (prop in el) { try { if (prop !== me.prop) { el[prop] = null; } delete el[prop]; } catch (cleanEx) {} } } el.onload = el.onerror = el.onreadystatechange = emptyFn; }, notifyRequests: function() { var requests = this.requests, len = requests.length, i, request; for (i = 0; i < len; i++) { request = requests[i]; request.processLoadedEntries(); } if (this.done) { this.fireListeners(); } }, onDone: function(listener) { var me = this, listeners = me.listeners || (me.listeners = []); if (me.done) { listener(me); } else { listeners.push(listener); } }, fireListeners: function() { var listeners = this.listeners, listener; if (listeners && listeners.length > 0) { _debug("firing event listeners for url " + this.url); while ((listener = listeners.shift())) { listener(this); } } } }; Ext.disableCacheBuster = function(disable, path) { var date = new Date(); date.setTime(date.getTime() + (disable ? 10 * 365 : -1) * 24 * 60 * 60 * 1000); date = date.toGMTString(); doc.cookie = 'ext-cache=1; expires=' + date + '; path=' + (path || '/'); }; Boot.init(); return Boot; }( function() {})); Ext.globalEval = Ext.globalEval || (this.execScript ? function(code) { execScript(code); } : function($$code) { eval.call(window, $$code); }); if (!Function.prototype.bind) { (function() { var slice = Array.prototype.slice, bind = function(me) { var args = slice.call(arguments, 1), method = this; if (args.length) { return function() { var t = arguments; return method.apply(me, t.length ? args.concat(slice.call(t)) : args); }; } args = null; return function() { return method.apply(me, arguments); }; }; Function.prototype.bind = bind; bind.$extjs = true; }()); } var Ext = Ext || {}; Ext._startTime = Date.now ? Date.now() : (+new Date()); (function() { var global = this, objectPrototype = Object.prototype, toString = objectPrototype.toString, enumerables = [ 'valueOf', 'toLocaleString', 'toString', 'constructor' ], emptyFn = function() {}, privateFn = function() {}, identityFn = function(o) { return o; }, callOverrideParent = function() { var method = callOverrideParent.caller.caller; return method.$owner.prototype[method.$name].apply(this, arguments); }, manifest = Ext.manifest || {}, i, iterableRe = /\[object\s*(?:Array|Arguments|\w*Collection|\w*List|HTML\s+document\.all\s+class)\]/, MSDateRe = /^\\?\/Date\(([-+])?(\d+)(?:[+-]\d{4})?\)\\?\/$/; Ext.global = global; emptyFn.$nullFn = identityFn.$nullFn = emptyFn.$emptyFn = identityFn.$identityFn = privateFn.$nullFn = true; privateFn.$privacy = 'framework'; Ext['suspendLayouts'] = Ext['resumeLayouts'] = emptyFn; for (i in { toString: 1 }) { enumerables = null; } Ext.enumerables = enumerables; Ext.apply = function(object, config, defaults) { if (defaults) { Ext.apply(object, defaults); } if (object && config && typeof config === 'object') { var i, j, k; for (i in config) { object[i] = config[i]; } if (enumerables) { for (j = enumerables.length; j--; ) { k = enumerables[j]; if (config.hasOwnProperty(k)) { object[k] = config[k]; } } } } return object; }; Ext.buildSettings = Ext.apply({ baseCSSPrefix: 'x-' }, Ext.buildSettings || {}); Ext.apply(Ext, { idSeed: 0, idPrefix: 'ext-', isSecure: /^https/i.test(window.location.protocol), enableGarbageCollector: false, enableListenerCollection: true, name: Ext.sandboxName || 'Ext', privateFn: privateFn, emptyFn: emptyFn, identityFn: identityFn, frameStartTime: +new Date(), manifest: manifest, debugConfig: Ext.debugConfig || manifest.debug || { hooks: { '*': true } }, validIdRe: /^[a-z_][a-z0-9\-_]*$/i, BLANK_IMAGE_URL: 'data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', makeIdSelector: function(id) { if (!Ext.validIdRe.test(id)) { Ext.Error.raise('Invalid id selector: "' + id + '"'); } return '#' + id; }, id: function(o, prefix) { if (o && o.id) { return o.id; } var id = (prefix || Ext.idPrefix) + (++Ext.idSeed); if (o) { o.id = id; } return id; }, returnId: function(o) { return o.getId(); }, returnTrue: function() { return true; }, emptyString: new String(), baseCSSPrefix: Ext.buildSettings.baseCSSPrefix, $eventNameMap: {}, $vendorEventRe: /^(Moz.+|MS.+|webkit.+)/, canonicalEventName: function(name) { return Ext.$eventNameMap[name] || (Ext.$eventNameMap[name] = (Ext.$vendorEventRe.test(name) ? name : name.toLowerCase())); }, applyIf: function(object, config) { var property; if (object) { for (property in config) { if (object[property] === undefined) { object[property] = config[property]; } } } return object; }, now: (global.performance && global.performance.now) ? function() { return performance.now(); } : (Date.now || (Date.now = function() { return +new Date(); })), destroy: function() { var ln = arguments.length, i, arg; for (i = 0; i < ln; i++) { arg = arguments[i]; if (arg) { if (Ext.isArray(arg)) { this.destroy.apply(this, arg); } else if (Ext.isFunction(arg.destroy)) { arg.destroy(); } } } return null; }, destroyMembers: function(object) { for (var ref, name, i = 1, a = arguments, len = a.length; i < len; i++) { ref = object[name = a[i]]; if (ref != null) { object[name] = Ext.destroy(ref); } } }, override: function(target, overrides) { if (target.$isClass) { target.override(overrides); } else if (typeof target === 'function') { Ext.apply(target.prototype, overrides); } 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') { if (owner.$className) { value.name = owner.$className + '#' + name; } value.$name = name; value.$owner = owner; value.$previous = target.hasOwnProperty(name) ? target[name] : callOverrideParent; } target[name] = value; } } } else { Ext.apply(target, overrides); } } return target; }, valueFrom: function(value, defaultValue, allowBlank) { return Ext.isEmpty(value, allowBlank) ? defaultValue : value; }, isEmpty: function(value, allowEmptyString) { return (value == null) || (!allowEmptyString ? value === '' : false) || (Ext.isArray(value) && value.length === 0); }, isArray: ('isArray' in Array) ? Array.isArray : function(value) { return toString.call(value) === '[object Array]'; }, isDate: function(value) { return toString.call(value) === '[object Date]'; }, isMSDate: function(value) { if (!Ext.isString(value)) { return false; } return MSDateRe.test(value); }, isObject: (toString.call(null) === '[object Object]') ? function(value) { return value !== null && value !== undefined && toString.call(value) === '[object Object]' && value.ownerDocument === undefined; } : function(value) { return toString.call(value) === '[object Object]'; }, isSimpleObject: function(value) { return value instanceof Object && value.constructor === Object; }, isPrimitive: function(value) { var type = typeof value; return type === 'string' || type === 'number' || type === 'boolean'; }, isFunction: (typeof document !== 'undefined' && typeof document.getElementsByTagName('body') === 'function') ? function(value) { return !!value && toString.call(value) === '[object Function]'; } : function(value) { return !!value && typeof value === 'function'; }, isNumber: function(value) { return typeof value === 'number' && isFinite(value); }, isNumeric: function(value) { return !isNaN(parseFloat(value)) && isFinite(value); }, isString: function(value) { return typeof value === 'string'; }, isBoolean: function(value) { return typeof value === 'boolean'; }, isElement: function(value) { return value ? value.nodeType === 1 : false; }, isTextNode: function(value) { return value ? value.nodeName === "#text" : false; }, isDefined: function(value) { return typeof value !== 'undefined'; }, isIterable: function(value) { if (!value || typeof value.length !== 'number' || typeof value === 'string' || Ext.isFunction(value)) { return false; } if (!value.propertyIsEnumerable) { return !!value.item; } if (value.hasOwnProperty('length') && !value.propertyIsEnumerable('length')) { return true; } return iterableRe.test(toString.call(value)); }, isDebugEnabled: function(className, defaultEnabled) { var debugConfig = Ext.debugConfig.hooks; if (debugConfig.hasOwnProperty(className)) { return debugConfig[className]; } var enabled = debugConfig['*'], prefixLength = 0; if (defaultEnabled !== undefined) { enabled = defaultEnabled; } if (!className) { return enabled; } for (var prefix in debugConfig) { var value = debugConfig[prefix]; if (className.charAt(prefix.length) === '.') { if (className.substring(0, prefix.length) === prefix) { if (prefixLength < prefix.length) { prefixLength = prefix.length; enabled = value; } } } } return enabled; } || emptyFn, clone: function(item) { if (item === null || item === undefined) { return item; } if (item.nodeType && item.cloneNode) { return item.cloneNode(true); } var type = toString.call(item), i, j, k, clone, key; if (type === '[object Date]') { return new Date(item.getTime()); } if (type === '[object Array]') { i = item.length; clone = []; while (i--) { clone[i] = Ext.clone(item[i]); } } else if (type === '[object Object]' && item.constructor === Object) { clone = {}; for (key in item) { clone[key] = Ext.clone(item[key]); } if (enumerables) { for (j = enumerables.length; j--; ) { k = enumerables[j]; if (item.hasOwnProperty(k)) { clone[k] = item[k]; } } } } return clone || item; }, getUniqueGlobalNamespace: function() { var uniqueGlobalNamespace = this.uniqueGlobalNamespace, i; if (uniqueGlobalNamespace === undefined) { i = 0; do { uniqueGlobalNamespace = 'ExtBox' + (++i); } while (global[uniqueGlobalNamespace] !== undefined); global[uniqueGlobalNamespace] = Ext; this.uniqueGlobalNamespace = uniqueGlobalNamespace; } return uniqueGlobalNamespace; }, functionFactoryCache: {}, cacheableFunctionFactory: function() { var me = this, args = Array.prototype.slice.call(arguments), cache = me.functionFactoryCache, idx, fn, ln; if (Ext.isSandboxed) { ln = args.length; if (ln > 0) { ln--; args[ln] = 'var Ext=window.' + Ext.name + ';' + args[ln]; } } idx = args.join(''); fn = cache[idx]; if (!fn) { fn = Function.prototype.constructor.apply(Function.prototype, args); cache[idx] = fn; } return fn; }, functionFactory: function() { var args = Array.prototype.slice.call(arguments), ln; if (Ext.isSandboxed) { ln = args.length; if (ln > 0) { ln--; args[ln] = 'var Ext=window.' + Ext.name + ';' + args[ln]; } } return Function.prototype.constructor.apply(Function.prototype, args); }, Logger: { log: function(message, priority) { if (message && global.console) { if (!priority || !(priority in global.console)) { priority = 'log'; } message = '[' + priority.toUpperCase() + '] ' + message; global.console[priority](message); } }, verbose: function(message) { this.log(message, 'verbose'); }, info: function(message) { this.log(message, 'info'); }, warn: function(message) { this.log(message, 'warn'); }, error: function(message) { throw new Error(message); }, deprecate: function(message) { this.log(message, 'warn'); } } || { verbose: emptyFn, log: emptyFn, info: emptyFn, warn: emptyFn, error: function(message) { throw new Error(message); }, deprecate: emptyFn }, getElementById: function(id) { return document.getElementById(id); }, splitAndUnescape: (function() { var cache = {}; return function(origin, delimiter) { if (!origin) { return []; } else if (!delimiter) { return [ origin ]; } var replaceRe = cache[delimiter] || (cache[delimiter] = new RegExp('\\\\' + delimiter, 'g')), result = [], parts, part; parts = origin.split(delimiter); while ((part = parts.shift()) !== undefined) { while (part.charAt(part.length - 1) === '\\' && parts.length > 0) { part = part + delimiter + parts.shift(); } part = part.replace(replaceRe, delimiter); result.push(part); } return result; }; })() }); Ext.returnTrue.$nullFn = Ext.returnId.$nullFn = true; }()); (function() { function toString() { var me = this, cls = me.sourceClass, method = me.sourceMethod, msg = me.msg; if (method) { if (msg) { method += '(): '; method += msg; } else { method += '()'; } } if (cls) { method = method ? (cls + '.' + method) : cls; } return method || msg || ''; } Ext.Error = function(config) { if (Ext.isString(config)) { config = { msg: config }; } var error = new Error(); Ext.apply(error, config); error.message = error.message || error.msg; error.toString = toString; return error; }; Ext.apply(Ext.Error, { ignore: false, raise: function(err) { err = err || {}; if (Ext.isString(err)) { err = { msg: err }; } var me = this, method = me.raise.caller, msg, name; if (method) { if (!err.sourceMethod && (name = method.$name)) { err.sourceMethod = name; } if (!err.sourceClass && (name = method.$owner) && (name = name.$className)) { err.sourceClass = name; } } if (me.handle(err) !== true) { msg = toString.call(err); Ext.log({ msg: msg, level: 'error', dump: err, stack: true }); throw new Ext.Error(err); } }, handle: function() { return this.ignore; } }); })(); Ext.deprecated = function(suggestion) { if (!suggestion) { suggestion = ''; } function fail() { Ext.Error.raise('The method "' + fail.$owner.$className + '.' + fail.$name + '" has been removed. ' + suggestion); } return fail; return Ext.emptyFn; }; (function() { if (typeof window === 'undefined') { return; } var last = 0, notify = function() { var cnt = Ext.log && Ext.log.counters, n = cnt && (cnt.error + cnt.warn + cnt.info + cnt.log), msg; if (n && last !== n) { msg = []; if (cnt.error) { msg.push('Errors: ' + cnt.error); } if (cnt.warn) { msg.push('Warnings: ' + cnt.warn); } if (cnt.info) { msg.push('Info: ' + cnt.info); } if (cnt.log) { msg.push('Log: ' + cnt.log); } window.status = '*** ' + msg.join(' -- '); last = n; } }; setInterval(notify, 1000); }()); Ext.Array = (function() { var arrayPrototype = Array.prototype, slice = arrayPrototype.slice, supportsSplice = (function() { var array = [], lengthBefore, j = 20; if (!array.splice) { return false; } while (j--) { array.push("A"); } array.splice(15, 0, "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F"); lengthBefore = array.length; array.splice(13, 0, "XXX"); if (lengthBefore + 1 !== array.length) { return false; } return true; }()), supportsIndexOf = 'indexOf' in arrayPrototype, supportsSliceOnNodeList = true; function stableSort(array, userComparator) { var len = array.length, indices = new Array(len), i; for (i = 0; i < len; i++) { indices[i] = i; } indices.sort(function(index1, index2) { return userComparator(array[index1], array[index2]) || (index1 - index2); }); for (i = 0; i < len; i++) { indices[i] = array[indices[i]]; } for (i = 0; i < len; i++) { array[i] = indices[i]; } return array; } try { if (typeof document !== 'undefined') { slice.call(document.getElementsByTagName('body')); } } catch (e) { supportsSliceOnNodeList = false; } var fixArrayIndex = function(array, index) { return (index < 0) ? Math.max(0, array.length + index) : Math.min(array.length, index); }, replaceSim = function(array, index, removeCount, insert) { var add = insert ? insert.length : 0, length = array.length, pos = fixArrayIndex(array, index); if (pos === length) { if (add) { array.push.apply(array, insert); } } else { var remove = Math.min(removeCount, length - pos), tailOldPos = pos + remove, tailNewPos = tailOldPos + add - remove, tailCount = length - tailOldPos, lengthAfterRemove = length - remove, i; if (tailNewPos < tailOldPos) { for (i = 0; i < tailCount; ++i) { array[tailNewPos + i] = array[tailOldPos + i]; } } else if (tailNewPos > tailOldPos) { for (i = tailCount; i--; ) { array[tailNewPos + i] = array[tailOldPos + i]; } } if (add && pos === lengthAfterRemove) { array.length = lengthAfterRemove; array.push.apply(array, insert); } else { array.length = lengthAfterRemove + add; for (i = 0; i < add; ++i) { array[pos + i] = insert[i]; } } } return array; }, replaceNative = function(array, index, removeCount, insert) { if (insert && insert.length) { if (index === 0 && !removeCount) { array.unshift.apply(array, insert); } else if (index < array.length) { array.splice.apply(array, [ index, removeCount ].concat(insert)); } else { array.push.apply(array, insert); } } else { array.splice(index, removeCount); } return array; }, eraseSim = function(array, index, removeCount) { return replaceSim(array, index, removeCount); }, eraseNative = function(array, index, removeCount) { array.splice(index, removeCount); return array; }, spliceSim = function(array, index, removeCount) { var pos = fixArrayIndex(array, index), removed = array.slice(index, fixArrayIndex(array, pos + removeCount)); if (arguments.length < 4) { replaceSim(array, pos, removeCount); } else { replaceSim(array, pos, removeCount, slice.call(arguments, 3)); } return removed; }, spliceNative = function(array) { return array.splice.apply(array, slice.call(arguments, 1)); }, erase = supportsSplice ? eraseNative : eraseSim, replace = supportsSplice ? replaceNative : replaceSim, splice = supportsSplice ? spliceNative : spliceSim, ExtArray = { binarySearch: function(array, item, begin, end, compareFn) { var length = array.length, middle, comparison; if (begin instanceof Function) { compareFn = begin; begin = 0; end = length; } else if (end instanceof Function) { compareFn = end; end = length; } else { if (begin === undefined) { begin = 0; } if (end === undefined) { end = length; } compareFn = compareFn || ExtArray.lexicalCompare; } --end; while (begin <= end) { middle = (begin + end) >> 1; comparison = compareFn(item, array[middle]); if (comparison >= 0) { begin = middle + 1; } else if (comparison < 0) { end = middle - 1; } } return begin; }, defaultCompare: function(lhs, rhs) { return (lhs < rhs) ? -1 : ((lhs > rhs) ? 1 : 0); }, lexicalCompare: function(lhs, rhs) { lhs = String(lhs); rhs = String(rhs); return (lhs < rhs) ? -1 : ((lhs > rhs) ? 1 : 0); }, each: function(array, fn, scope, reverse) { array = ExtArray.from(array); var i, ln = array.length; if (reverse !== true) { for (i = 0; i < ln; i++) { if (fn.call(scope || array[i], array[i], i, array) === false) { return i; } } } else { for (i = ln - 1; i > -1; i--) { if (fn.call(scope || array[i], array[i], i, array) === false) { return i; } } } return true; }, forEach: ('forEach' in arrayPrototype) ? function(array, fn, scope) { return array.forEach(fn, scope); } : function(array, fn, scope) { for (var i = 0, ln = array.length; i < ln; i++) { fn.call(scope, array[i], i, array); } }, indexOf: supportsIndexOf ? function(array, item, from) { return arrayPrototype.indexOf.call(array, item, from); } : function(array, item, from) { var i, length = array.length; for (i = (from < 0) ? Math.max(0, length + from) : from || 0; i < length; i++) { if (array[i] === item) { return i; } } return -1; }, contains: supportsIndexOf ? function(array, item) { return arrayPrototype.indexOf.call(array, item) !== -1; } : function(array, item) { var i, ln; for (i = 0 , ln = array.length; i < ln; i++) { if (array[i] === item) { return true; } } return false; }, toArray: function(iterable, start, end) { if (!iterable || !iterable.length) { return []; } if (typeof iterable === 'string') { iterable = iterable.split(''); } if (supportsSliceOnNodeList) { return slice.call(iterable, start || 0, end || iterable.length); } var array = [], i; start = start || 0; end = end ? ((end < 0) ? iterable.length + end : end) : iterable.length; for (i = start; i < end; i++) { array.push(iterable[i]); } return array; }, pluck: function(array, propertyName) { var ret = [], i, ln, item; for (i = 0 , ln = array.length; i < ln; i++) { item = array[i]; ret.push(item[propertyName]); } return ret; }, map: ('map' in arrayPrototype) ? function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.map must have a callback function passed as second argument.'); return array.map(fn, scope); } : function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.map must have a callback function passed as second argument.'); var results = [], i = 0, len = array.length; for (; i < len; i++) { results[i] = fn.call(scope, array[i], i, array); } return results; }, every: ('every' in arrayPrototype) ? function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.every must have a callback function passed as second argument.'); return array.every(fn, scope); } : function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.every must have a callback function passed as second argument.'); var i = 0, ln = array.length; for (; i < ln; ++i) { if (!fn.call(scope, array[i], i, array)) { return false; } } return true; }, some: ('some' in arrayPrototype) ? function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.some must have a callback function passed as second argument.'); return array.some(fn, scope); } : function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.some must have a callback function passed as second argument.'); var i = 0, ln = array.length; for (; i < ln; ++i) { if (fn.call(scope, array[i], i, array)) { return true; } } return false; }, equals: function(array1, array2) { var len1 = array1.length, len2 = array2.length, i; if (array1 === array2) { return true; } if (len1 !== len2) { return false; } for (i = 0; i < len1; ++i) { if (array1[i] !== array2[i]) { return false; } } return true; }, clean: function(array) { var results = [], i = 0, ln = array.length, item; for (; i < ln; i++) { item = array[i]; if (!Ext.isEmpty(item)) { results.push(item); } } return results; }, unique: function(array) { var clone = [], i = 0, ln = array.length, item; for (; i < ln; i++) { item = array[i]; if (ExtArray.indexOf(clone, item) === -1) { clone.push(item); } } return clone; }, filter: ('filter' in arrayPrototype) ? function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.filter must have a filter function passed as second argument.'); return array.filter(fn, scope); } : function(array, fn, scope) { Ext.Assert.isFunction(fn, 'Ext.Array.filter must have a filter function passed as second argument.'); var results = [], i = 0, ln = array.length; for (; i < ln; i++) { if (fn.call(scope, array[i], i, array)) { results.push(array[i]); } } return results; }, findBy: function(array, fn, scope) { var i = 0, len = array.length; for (; i < len; i++) { if (fn.call(scope || array, array[i], i)) { return array[i]; } } return null; }, from: function(value, newReference) { if (value === undefined || value === null) { return []; } if (Ext.isArray(value)) { return (newReference) ? slice.call(value) : value; } var type = typeof value; if (value && value.length !== undefined && type !== 'string' && (type !== 'function' || !value.apply)) { return ExtArray.toArray(value); } return [ value ]; }, remove: function(array, item) { var index = ExtArray.indexOf(array, item); if (index !== -1) { erase(array, index, 1); } return array; }, removeAt: function(array, index, count) { var len = array.length; if (index >= 0 && index < len) { count = count || 1; count = Math.min(count, len - index); erase(array, index, count); } return array; }, include: function(array, item) { if (!ExtArray.contains(array, item)) { array.push(item); } }, clone: function(array) { return slice.call(array); }, merge: function() { var args = slice.call(arguments), array = [], i, ln; for (i = 0 , ln = args.length; i < ln; i++) { array = array.concat(args[i]); } return ExtArray.unique(array); }, intersect: function() { var intersection = [], arrays = slice.call(arguments), arraysLength, array, arrayLength, minArray, minArrayIndex, minArrayCandidate, minArrayLength, element, elementCandidate, elementCount, i, j, k; if (!arrays.length) { return intersection; } arraysLength = arrays.length; for (i = minArrayIndex = 0; i < arraysLength; i++) { minArrayCandidate = arrays[i]; if (!minArray || minArrayCandidate.length < minArray.length) { minArray = minArrayCandidate; minArrayIndex = i; } } minArray = ExtArray.unique(minArray); erase(arrays, minArrayIndex, 1); minArrayLength = minArray.length; arraysLength = arrays.length; for (i = 0; i < minArrayLength; i++) { element = minArray[i]; elementCount = 0; for (j = 0; j < arraysLength; j++) { array = arrays[j]; arrayLength = array.length; for (k = 0; k < arrayLength; k++) { elementCandidate = array[k]; if (element === elementCandidate) { elementCount++; break; } } } if (elementCount === arraysLength) { intersection.push(element); } } return intersection; }, difference: function(arrayA, arrayB) { var clone = slice.call(arrayA), ln = clone.length, i, j, lnB; for (i = 0 , lnB = arrayB.length; i < lnB; i++) { for (j = 0; j < ln; j++) { if (clone[j] === arrayB[i]) { erase(clone, j, 1); j--; ln--; } } } return clone; }, slice: ([ 1, 2 ].slice(1, undefined).length ? function(array, begin, end) { return slice.call(array, begin, end); } : function(array, begin, end) { if (typeof begin === 'undefined') { return slice.call(array); } if (typeof end === 'undefined') { return slice.call(array, begin); } return slice.call(array, begin, end); }), sort: function(array, sortFn) { return stableSort(array, sortFn || ExtArray.lexicalCompare); }, flatten: function(array) { var worker = []; function rFlatten(a) { var i, ln, v; for (i = 0 , ln = a.length; i < ln; i++) { v = a[i]; if (Ext.isArray(v)) { rFlatten(v); } else { worker.push(v); } } return worker; } return rFlatten(array); }, min: function(array, comparisonFn) { var min = array[0], i, ln, item; for (i = 0 , ln = array.length; i < ln; i++) { item = array[i]; if (comparisonFn) { if (comparisonFn(min, item) === 1) { min = item; } } else { if (item < min) { min = item; } } } return min; }, max: function(array, comparisonFn) { var max = array[0], i, ln, item; for (i = 0 , ln = array.length; i < ln; i++) { item = array[i]; if (comparisonFn) { if (comparisonFn(max, item) === -1) { max = item; } } else { if (item > max) { max = item; } } } return max; }, mean: function(array) { return array.length > 0 ? ExtArray.sum(array) / array.length : undefined; }, sum: function(array) { var sum = 0, i, ln, item; for (i = 0 , ln = array.length; i < ln; i++) { item = array[i]; sum += item; } return sum; }, toMap: function(array, getKey, scope) { var map = {}, i = array.length; if (!getKey) { while (i--) { map[array[i]] = i + 1; } } else if (typeof getKey === 'string') { while (i--) { map[array[i][getKey]] = i + 1; } } else { while (i--) { map[getKey.call(scope, array[i])] = i + 1; } } return map; }, toValueMap: function(array, getKey, scope, arrayify) { var map = {}, i = array.length, autoArray, alwaysArray, entry, fn, key, value; if (!getKey) { while (i--) { value = array[i]; map[value] = value; } } else { if (!(fn = (typeof getKey !== 'string'))) { arrayify = scope; } alwaysArray = arrayify === 1; autoArray = arrayify === 2; while (i--) { value = array[i]; key = fn ? getKey.call(scope, value) : value[getKey]; if (alwaysArray) { if (key in map) { map[key].push(value); } else { map[key] = [ value ]; } } else if (autoArray && (key in map)) { if ((entry = map[key]) instanceof Array) { entry.push(value); } else { map[key] = [ entry, value ]; } } else { map[key] = value; } } } return map; }, _replaceSim: replaceSim, _spliceSim: spliceSim, erase: erase, insert: function(array, index, items) { return replace(array, index, 0, items); }, replace: replace, splice: splice, push: function(target) { var len = arguments.length, i = 1, newItem; if (target === undefined) { target = []; } else if (!Ext.isArray(target)) { target = [ target ]; } for (; i < len; i++) { newItem = arguments[i]; Array.prototype.push[Ext.isIterable(newItem) ? 'apply' : 'call'](target, newItem); } return target; }, numericSortFn: function(a, b) { return a - b; } }; Ext.each = ExtArray.each; ExtArray.union = ExtArray.merge; Ext.min = ExtArray.min; Ext.max = ExtArray.max; Ext.sum = ExtArray.sum; Ext.mean = ExtArray.mean; Ext.flatten = ExtArray.flatten; Ext.clean = ExtArray.clean; Ext.unique = ExtArray.unique; Ext.pluck = ExtArray.pluck; Ext.toArray = function() { return ExtArray.toArray.apply(ExtArray, arguments); }; return ExtArray; }()); Ext.Assert = { falsey: function(b, msg) { if (b) { Ext.Error.raise(msg || ('Expected a falsey value but was ' + b)); } }, falseyProp: function(object, property) { Ext.Assert.truthy(object); var b = object[property]; if (b) { if (object.$className) { property = object.$className + '#' + property; } Ext.Error.raise('Expected a falsey value for ' + property + ' but was ' + b); } }, truthy: function(b, msg) { if (!b) { Ext.Error.raise(msg || ('Expected a truthy value but was ' + typeof b)); } }, truthyProp: function(object, property) { Ext.Assert.truthy(object); var b = object[property]; if (!b) { if (object.$className) { property = object.$className + '#' + property; } Ext.Error.raise('Expected a truthy value for ' + property + ' but was ' + typeof b); } } }; (function() { function makeAssert(name, kind) { var testFn = Ext[name], def; return function(value, msg) { if (!testFn(value)) { Ext.Error.raise(msg || def || (def = 'Expected value to be ' + kind)); } }; } function makeAssertProp(name, kind) { var testFn = Ext[name], def; return function(object, prop) { Ext.Assert.truthy(object); if (!testFn(object[prop])) { Ext.Error.raise(def || (def = 'Expected ' + (object.$className ? object.$className + '#' : '') + prop + ' to be ' + kind)); } }; } function makeNotAssert(name, kind) { var testFn = Ext[name], def; return function(value, msg) { if (testFn(value)) { Ext.Error.raise(msg || def || (def = 'Expected value to NOT be ' + kind)); } }; } function makeNotAssertProp(name, kind) { var testFn = Ext[name], def; return function(object, prop) { Ext.Assert.truthy(object); if (testFn(object[prop])) { Ext.Error.raise(def || (def = 'Expected ' + (object.$className ? object.$className + '#' : '') + prop + ' to NOT be ' + kind)); } }; } for (var name in Ext) { if (name.substring(0, 2) == "is" && Ext.isFunction(Ext[name])) { var kind = name.substring(2); Ext.Assert[name] = makeAssert(name, kind); Ext.Assert[name + 'Prop'] = makeAssertProp(name, kind); Ext.Assert['isNot' + kind] = makeNotAssert(name, kind); Ext.Assert['isNot' + kind + 'Prop'] = makeNotAssertProp(name, kind); } } }()); Ext.String = (function() { var trimRegex = /^[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+|[\x09\x0a\x0b\x0c\x0d\x20\xa0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000]+$/g, escapeRe = /('|\\)/g, escapeRegexRe = /([-.*+?\^${}()|\[\]\/\\])/g, basicTrimRe = /^\s+|\s+$/g, whitespaceRe = /\s+/, varReplace = /(^[^a-z]*|[^\w])/gi, charToEntity, entityToChar, charToEntityRegex, entityToCharRegex, htmlEncodeReplaceFn = function(match, capture) { return charToEntity[capture]; }, htmlDecodeReplaceFn = function(match, capture) { return (capture in entityToChar) ? entityToChar[capture] : String.fromCharCode(parseInt(capture.substr(2), 10)); }, boundsCheck = function(s, other) { if (s === null || s === undefined || other === null || other === undefined) { return false; } return other.length <= s.length; }, ExtString; return ExtString = { insert: function(s, value, index) { if (!s) { return value; } if (!value) { return s; } var len = s.length; if (!index && index !== 0) { index = len; } if (index < 0) { index *= -1; if (index >= len) { index = 0; } else { index = len - index; } } if (index === 0) { s = value + s; } else if (index >= s.length) { s += value; } else { s = s.substr(0, index) + value + s.substr(index); } return s; }, startsWith: function(s, start, ignoreCase) { var result = boundsCheck(s, start); if (result) { if (ignoreCase) { s = s.toLowerCase(); start = start.toLowerCase(); } result = s.lastIndexOf(start, 0) === 0; } return result; }, endsWith: function(s, end, ignoreCase) { var result = boundsCheck(s, end); if (result) { if (ignoreCase) { s = s.toLowerCase(); end = end.toLowerCase(); } result = s.indexOf(end, s.length - end.length) !== -1; } return result; }, createVarName: function(s) { return s.replace(varReplace, ''); }, htmlEncode: function(value) { return (!value) ? value : String(value).replace(charToEntityRegex, htmlEncodeReplaceFn); }, htmlDecode: function(value) { return (!value) ? value : String(value).replace(entityToCharRegex, htmlDecodeReplaceFn); }, hasHtmlCharacters: function(s) { return charToEntityRegex.test(s); }, addCharacterEntities: function(newEntities) { var charKeys = [], entityKeys = [], key, echar; for (key in newEntities) { echar = newEntities[key]; entityToChar[key] = echar; charToEntity[echar] = key; charKeys.push(echar); entityKeys.push(key); } charToEntityRegex = new RegExp('(' + charKeys.join('|') + ')', 'g'); entityToCharRegex = new RegExp('(' + entityKeys.join('|') + '|[0-9]{1,5};' + ')', 'g'); }, resetCharacterEntities: function() { charToEntity = {}; entityToChar = {}; this.addCharacterEntities({ '&': '&', '>': '>', '<': '<', '"': '"', ''': "'" }); }, urlAppend: function(url, string) { if (!Ext.isEmpty(string)) { return url + (url.indexOf('?') === -1 ? '?' : '&') + string; } return url; }, trim: function(string) { if (string) { string = string.replace(trimRegex, ""); } return string || ''; }, capitalize: function(string) { if (string) { string = string.charAt(0).toUpperCase() + string.substr(1); } return string || ''; }, uncapitalize: function(string) { if (string) { string = string.charAt(0).toLowerCase() + string.substr(1); } return string || ''; }, ellipsis: function(value, length, word) { if (value && value.length > length) { if (word) { var vs = value.substr(0, length - 2), index = Math.max(vs.lastIndexOf(' '), vs.lastIndexOf('.'), vs.lastIndexOf('!'), vs.lastIndexOf('?')); if (index !== -1 && index >= (length - 15)) { return vs.substr(0, index) + "..."; } } return value.substr(0, length - 3) + "..."; } return value; }, escapeRegex: function(string) { return string.replace(escapeRegexRe, "\\$1"); }, createRegex: function(value, startsWith, endsWith, ignoreCase) { var ret = value; if (value != null && !value.exec) { ret = ExtString.escapeRegex(String(value)); if (startsWith !== false) { ret = '^' + ret; } if (endsWith !== false) { ret += '$'; } ret = new RegExp(ret, (ignoreCase !== false) ? 'i' : ''); } return ret; }, escape: function(string) { return string.replace(escapeRe, "\\$1"); }, toggle: function(string, value, other) { return string === value ? other : value; }, leftPad: function(string, size, character) { var result = String(string); character = character || " "; while (result.length < size) { result = character + result; } return result; }, repeat: function(pattern, count, sep) { if (count < 1) { count = 0; } for (var buf = [], i = count; i--; ) { buf.push(pattern); } return buf.join(sep || ''); }, splitWords: function(words) { if (words && typeof words == 'string') { return words.replace(basicTrimRe, '').split(whitespaceRe); } return words || []; } }; }()); Ext.String.resetCharacterEntities(); Ext.htmlEncode = Ext.String.htmlEncode; Ext.htmlDecode = Ext.String.htmlDecode; Ext.urlAppend = Ext.String.urlAppend; Ext.Date = (function() { var utilDate, nativeDate = Date, stripEscapeRe = /(\\.)/g, hourInfoRe = /([gGhHisucUOPZ]|MS)/, dateInfoRe = /([djzmnYycU]|MS)/, slashRe = /\\/gi, numberTokenRe = /\{(\d+)\}/g, MSFormatRe = new RegExp('\\/Date\\(([-+])?(\\d+)(?:[+-]\\d{4})?\\)\\/'), pad = Ext.String.leftPad, code = [ "var me = this, dt, y, m, d, h, i, s, ms, o, O, z, zz, u, v, W, year, jan4, week1monday, daysInMonth, dayMatched,", "def = me.defaults,", "from = Ext.Number.from,", "results = String(input).match(me.parseRegexes[{0}]);", "if(results){", "{1}", "if(u != null){", "v = new Date(u * 1000);", "}else{", "dt = me.clearTime(new Date);", "y = from(y, from(def.y, dt.getFullYear()));", "m = from(m, from(def.m - 1, dt.getMonth()));", "dayMatched = d !== undefined;", "d = from(d, from(def.d, dt.getDate()));", "if (!dayMatched) {", "dt.setDate(1);", "dt.setMonth(m);", "dt.setFullYear(y);", "daysInMonth = me.getDaysInMonth(dt);", "if (d > daysInMonth) {", "d = daysInMonth;", "}", "}", "h = from(h, from(def.h, dt.getHours()));", "i = from(i, from(def.i, dt.getMinutes()));", "s = from(s, from(def.s, dt.getSeconds()));", "ms = from(ms, from(def.ms, dt.getMilliseconds()));", "if(z >= 0 && y >= 0){", "v = me.add(new Date(y < 100 ? 100 : y, 0, 1, h, i, s, ms), me.YEAR, y < 100 ? y - 100 : 0);", "v = !strict? v : (strict === true && (z <= 364 || (me.isLeapYear(v) && z <= 365))? me.add(v, me.DAY, z) : null);", "}else if(strict === true && !me.isValid(y, m + 1, d, h, i, s, ms)){", "v = null;", "}else{", "if (W) {", "year = y || (new Date()).getFullYear();", "jan4 = new Date(year, 0, 4, 0, 0, 0);", "d = jan4.getDay();", "week1monday = new Date(jan4.getTime() - ((d === 0 ? 6 : d - 1) * 86400000));", "v = Ext.Date.clearTime(new Date(week1monday.getTime() + ((W - 1) * 604800000 + 43200000)));", "} else {", "v = me.add(new Date(y < 100 ? 100 : y, m, d, h, i, s, ms), me.YEAR, y < 100 ? y - 100 : 0);", "}", "}", "}", "}", "if(v){", "if(zz != null){", "v = me.add(v, me.SECOND, -v.getTimezoneOffset() * 60 - zz);", "}else if(o){", "v = me.add(v, me.MINUTE, -v.getTimezoneOffset() + (sn == '+'? -1 : 1) * (hr * 60 + mn));", "}", "}", "return (v != null) ? v : null;" ].join('\n'); if (!Date.prototype.toISOString) { Date.prototype.toISOString = function() { var me = this; return pad(me.getUTCFullYear(), 4, '0') + '-' + pad(me.getUTCMonth() + 1, 2, '0') + '-' + pad(me.getUTCDate(), 2, '0') + 'T' + pad(me.getUTCHours(), 2, '0') + ':' + pad(me.getUTCMinutes(), 2, '0') + ':' + pad(me.getUTCSeconds(), 2, '0') + '.' + pad(me.getUTCMilliseconds(), 3, '0') + 'Z'; }; } function xf(format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(numberTokenRe, function(m, i) { return args[i]; }); } return utilDate = { now: nativeDate.now, toString: function(date) { if (!date) { date = new nativeDate(); } return date.getFullYear() + "-" + pad(date.getMonth() + 1, 2, '0') + "-" + pad(date.getDate(), 2, '0') + "T" + pad(date.getHours(), 2, '0') + ":" + pad(date.getMinutes(), 2, '0') + ":" + pad(date.getSeconds(), 2, '0'); }, getElapsed: function(dateA, dateB) { return Math.abs(dateA - (dateB || utilDate.now())); }, useStrict: false, formatCodeToRegex: function(character, currentGroup) { var p = utilDate.parseCodes[character]; if (p) { p = typeof p === 'function' ? p() : p; utilDate.parseCodes[character] = p; } return p ? Ext.applyIf({ c: p.c ? xf(p.c, currentGroup || "{0}") : p.c }, p) : { g: 0, c: null, s: Ext.String.escapeRegex(character) }; }, parseFunctions: { "MS": function(input, strict) { var r = (input || '').match(MSFormatRe); return r ? new nativeDate(((r[1] || '') + r[2]) * 1) : null; }, "time": function(input, strict) { var num = parseInt(input, 10); if (num || num === 0) { return new nativeDate(num); } return null; }, "timestamp": function(input, strict) { var num = parseInt(input, 10); if (num || num === 0) { return new nativeDate(num * 1000); } return null; } }, parseRegexes: [], formatFunctions: { "MS": function() { return '\\/Date(' + this.getTime() + ')\\/'; }, "time": function() { return this.getTime().toString(); }, "timestamp": function() { return utilDate.format(this, 'U'); } }, y2kYear: 50, MILLI: "ms", SECOND: "s", MINUTE: "mi", HOUR: "h", DAY: "d", MONTH: "mo", YEAR: "y", defaults: {}, dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], monthNames: [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], monthNumbers: { January: 0, Jan: 0, February: 1, Feb: 1, March: 2, Mar: 2, April: 3, Apr: 3, May: 4, June: 5, Jun: 5, July: 6, Jul: 6, August: 7, Aug: 7, September: 8, Sep: 8, October: 9, Oct: 9, November: 10, Nov: 10, December: 11, Dec: 11 }, defaultFormat: "m/d/Y", getShortMonthName: function(month) { return utilDate.monthNames[month].substring(0, 3); }, getShortDayName: function(day) { return utilDate.dayNames[day].substring(0, 3); }, getMonthNumber: function(name) { return utilDate.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()]; }, formatContainsHourInfo: function(format) { return hourInfoRe.test(format.replace(stripEscapeRe, '')); }, formatContainsDateInfo: function(format) { return dateInfoRe.test(format.replace(stripEscapeRe, '')); }, unescapeFormat: function(format) { return format.replace(slashRe, ''); }, formatCodes: { d: "Ext.String.leftPad(m.getDate(), 2, '0')", D: "Ext.Date.getShortDayName(m.getDay())", j: "m.getDate()", l: "Ext.Date.dayNames[m.getDay()]", N: "(m.getDay() ? m.getDay() : 7)", S: "Ext.Date.getSuffix(m)", w: "m.getDay()", z: "Ext.Date.getDayOfYear(m)", W: "Ext.String.leftPad(Ext.Date.getWeekOfYear(m), 2, '0')", F: "Ext.Date.monthNames[m.getMonth()]", m: "Ext.String.leftPad(m.getMonth() + 1, 2, '0')", M: "Ext.Date.getShortMonthName(m.getMonth())", n: "(m.getMonth() + 1)", t: "Ext.Date.getDaysInMonth(m)", L: "(Ext.Date.isLeapYear(m) ? 1 : 0)", o: "(m.getFullYear() + (Ext.Date.getWeekOfYear(m) == 1 && m.getMonth() > 0 ? +1 : (Ext.Date.getWeekOfYear(m) >= 52 && m.getMonth() < 11 ? -1 : 0)))", Y: "Ext.String.leftPad(m.getFullYear(), 4, '0')", y: "('' + m.getFullYear()).substring(2, 4)", a: "(m.getHours() < 12 ? 'am' : 'pm')", A: "(m.getHours() < 12 ? 'AM' : 'PM')", g: "((m.getHours() % 12) ? m.getHours() % 12 : 12)", G: "m.getHours()", h: "Ext.String.leftPad((m.getHours() % 12) ? m.getHours() % 12 : 12, 2, '0')", H: "Ext.String.leftPad(m.getHours(), 2, '0')", i: "Ext.String.leftPad(m.getMinutes(), 2, '0')", s: "Ext.String.leftPad(m.getSeconds(), 2, '0')", u: "Ext.String.leftPad(m.getMilliseconds(), 3, '0')", O: "Ext.Date.getGMTOffset(m)", P: "Ext.Date.getGMTOffset(m, true)", T: "Ext.Date.getTimezone(m)", Z: "(m.getTimezoneOffset() * -60)", c: function() { var c = "Y-m-dTH:i:sP", code = [], i, l = c.length, e; for (i = 0; i < l; ++i) { e = c.charAt(i); code.push(e === "T" ? "'T'" : utilDate.getFormatCode(e)); } return code.join(" + "); }, C: function() { return 'm.toISOString()'; }, U: "Math.round(m.getTime() / 1000)" }, isValid: function(y, m, d, h, i, s, ms) { h = h || 0; i = i || 0; s = s || 0; ms = ms || 0; var dt = utilDate.add(new nativeDate(y < 100 ? 100 : y, m - 1, d, h, i, s, ms), utilDate.YEAR, y < 100 ? y - 100 : 0); return y === dt.getFullYear() && m === dt.getMonth() + 1 && d === dt.getDate() && h === dt.getHours() && i === dt.getMinutes() && s === dt.getSeconds() && ms === dt.getMilliseconds(); }, parse: function(input, format, strict) { var p = utilDate.parseFunctions; if (p[format] == null) { utilDate.createParser(format); } return p[format].call(utilDate, input, Ext.isDefined(strict) ? strict : utilDate.useStrict); }, parseDate: function(input, format, strict) { return utilDate.parse(input, format, strict); }, getFormatCode: function(character) { var f = utilDate.formatCodes[character]; if (f) { f = typeof f === 'function' ? f() : f; utilDate.formatCodes[character] = f; } return f || ("'" + Ext.String.escape(character) + "'"); }, createFormat: function(format) { var code = [], special = false, ch = '', i; for (i = 0; i < format.length; ++i) { ch = format.charAt(i); if (!special && ch === "\\") { special = true; } else if (special) { special = false; code.push("'" + Ext.String.escape(ch) + "'"); } else { if (ch === '\n') { code.push("'\\n'"); } else { code.push(utilDate.getFormatCode(ch)); } } } utilDate.formatFunctions[format] = Ext.functionFactory("var m=this;return " + code.join('+')); }, createParser: function(format) { var regexNum = utilDate.parseRegexes.length, currentGroup = 1, calc = [], regex = [], special = false, ch = "", i = 0, len = format.length, atEnd = [], obj; for (; i < len; ++i) { ch = format.charAt(i); if (!special && ch === "\\") { special = true; } else if (special) { special = false; regex.push(Ext.String.escape(ch)); } else { obj = utilDate.formatCodeToRegex(ch, currentGroup); currentGroup += obj.g; regex.push(obj.s); if (obj.g && obj.c) { if (obj.calcAtEnd) { atEnd.push(obj.c); } else { calc.push(obj.c); } } } } calc = calc.concat(atEnd); utilDate.parseRegexes[regexNum] = new RegExp("^" + regex.join('') + "$", 'i'); utilDate.parseFunctions[format] = Ext.functionFactory("input", "strict", xf(code, regexNum, calc.join(''))); }, parseCodes: { d: { g: 1, c: "d = parseInt(results[{0}], 10);\n", s: "(3[0-1]|[1-2][0-9]|0[1-9])" }, j: { g: 1, c: "d = parseInt(results[{0}], 10);\n", s: "(3[0-1]|[1-2][0-9]|[1-9])" }, D: function() { for (var a = [], i = 0; i < 7; a.push(utilDate.getShortDayName(i)) , ++i){} return { g: 0, c: null, s: "(?:" + a.join("|") + ")" }; }, l: function() { return { g: 0, c: null, s: "(?:" + utilDate.dayNames.join("|") + ")" }; }, N: { g: 0, c: null, s: "[1-7]" }, S: { g: 0, c: null, s: "(?:st|nd|rd|th)" }, w: { g: 0, c: null, s: "[0-6]" }, z: { g: 1, c: "z = parseInt(results[{0}], 10);\n", s: "(\\d{1,3})" }, W: { g: 1, c: "W = parseInt(results[{0}], 10);\n", s: "(\\d{2})" }, F: function() { return { g: 1, c: "m = parseInt(me.getMonthNumber(results[{0}]), 10);\n", s: "(" + utilDate.monthNames.join("|") + ")" }; }, M: function() { for (var a = [], i = 0; i < 12; a.push(utilDate.getShortMonthName(i)) , ++i){} return Ext.applyIf({ s: "(" + a.join("|") + ")" }, utilDate.formatCodeToRegex("F")); }, m: { g: 1, c: "m = parseInt(results[{0}], 10) - 1;\n", s: "(1[0-2]|0[1-9])" }, n: { g: 1, c: "m = parseInt(results[{0}], 10) - 1;\n", s: "(1[0-2]|[1-9])" }, t: { g: 0, c: null, s: "(?:\\d{2})" }, L: { g: 0, c: null, s: "(?:1|0)" }, o: { g: 1, c: "y = parseInt(results[{0}], 10);\n", s: "(\\d{4})" }, Y: { g: 1, c: "y = parseInt(results[{0}], 10);\n", s: "(\\d{4})" }, y: { g: 1, c: "var ty = parseInt(results[{0}], 10);\n" + "y = ty > me.y2kYear ? 1900 + ty : 2000 + ty;\n", s: "(\\d{2})" }, a: { g: 1, c: "if (/(am)/i.test(results[{0}])) {\n" + "if (!h || h == 12) { h = 0; }\n" + "} else { if (!h || h < 12) { h = (h || 0) + 12; }}", s: "(am|pm|AM|PM)", calcAtEnd: true }, A: { g: 1, c: "if (/(am)/i.test(results[{0}])) {\n" + "if (!h || h == 12) { h = 0; }\n" + "} else { if (!h || h < 12) { h = (h || 0) + 12; }}", s: "(AM|PM|am|pm)", calcAtEnd: true }, g: { g: 1, c: "h = parseInt(results[{0}], 10);\n", s: "(1[0-2]|[0-9])" }, G: { g: 1, c: "h = parseInt(results[{0}], 10);\n", s: "(2[0-3]|1[0-9]|[0-9])" }, h: { g: 1, c: "h = parseInt(results[{0}], 10);\n", s: "(1[0-2]|0[1-9])" }, H: { g: 1, c: "h = parseInt(results[{0}], 10);\n", s: "(2[0-3]|[0-1][0-9])" }, i: { g: 1, c: "i = parseInt(results[{0}], 10);\n", s: "([0-5][0-9])" }, s: { g: 1, c: "s = parseInt(results[{0}], 10);\n", s: "([0-5][0-9])" }, u: { g: 1, c: "ms = results[{0}]; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n", s: "(\\d+)" }, O: { g: 1, c: [ "o = results[{0}];", "var sn = o.substring(0,1),", "hr = o.substring(1,3)*1 + Math.floor(o.substring(3,5) / 60),", "mn = o.substring(3,5) % 60;", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n" ]. join("\n"), s: "([+-]\\d{4})" }, P: { g: 1, c: [ "o = results[{0}];", "var sn = o.substring(0,1),", "hr = o.substring(1,3)*1 + Math.floor(o.substring(4,6) / 60),", "mn = o.substring(4,6) % 60;", "o = ((-12 <= (hr*60 + mn)/60) && ((hr*60 + mn)/60 <= 14))? (sn + Ext.String.leftPad(hr, 2, '0') + Ext.String.leftPad(mn, 2, '0')) : null;\n" ]. join("\n"), s: "([+-]\\d{2}:\\d{2})" }, T: { g: 0, c: null, s: "[A-Z]{1,5}" }, Z: { g: 1, c: "zz = results[{0}] * 1;\n" + "zz = (-43200 <= zz && zz <= 50400)? zz : null;\n", s: "([+-]?\\d{1,5})" }, c: function() { var calc = [], arr = [ utilDate.formatCodeToRegex("Y", 1), utilDate.formatCodeToRegex("m", 2), utilDate.formatCodeToRegex("d", 3), utilDate.formatCodeToRegex("H", 4), utilDate.formatCodeToRegex("i", 5), utilDate.formatCodeToRegex("s", 6), { c: "ms = results[7] || '0'; ms = parseInt(ms, 10)/Math.pow(10, ms.length - 3);\n" }, { c: [ "if(results[8]) {", "if(results[8] == 'Z'){", "zz = 0;", "}else if (results[8].indexOf(':') > -1){", utilDate.formatCodeToRegex("P", 8).c, "}else{", utilDate.formatCodeToRegex("O", 8).c, "}", "}" ].join('\n') } ], i, l; for (i = 0 , l = arr.length; i < l; ++i) { calc.push(arr[i].c); } return { g: 1, c: calc.join(""), s: [ arr[0].s, "(?:", "-", arr[1].s, "(?:", "-", arr[2].s, "(?:", "(?:T| )?", arr[3].s, ":", arr[4].s, "(?::", arr[5].s, ")?", "(?:(?:\\.|,)(\\d+))?", "(Z|(?:[-+]\\d{2}(?::)?\\d{2}))?", ")?", ")?", ")?" ].join("") }; }, U: { g: 1, c: "u = parseInt(results[{0}], 10);\n", s: "(-?\\d+)" } }, dateFormat: function(date, format) { return utilDate.format(date, format); }, isEqual: function(date1, date2) { if (date1 && date2) { return (date1.getTime() === date2.getTime()); } return !(date1 || date2); }, format: function(date, format) { var formatFunctions = utilDate.formatFunctions; if (!Ext.isDate(date)) { return ''; } if (formatFunctions[format] == null) { utilDate.createFormat(format); } return formatFunctions[format].call(date) + ''; }, getTimezone: function(date) { return date.toString().replace(/^.* (?:\((.*)\)|([A-Z]{1,5})(?:[\-+][0-9]{4})?(?: -?\d+)?)$/, "$1$2").replace(/[^A-Z]/g, ""); }, getGMTOffset: function(date, colon) { var offset = date.getTimezoneOffset(); return (offset > 0 ? "-" : "+") + Ext.String.leftPad(Math.floor(Math.abs(offset) / 60), 2, "0") + (colon ? ":" : "") + Ext.String.leftPad(Math.abs(offset % 60), 2, "0"); }, getDayOfYear: function(date) { var num = 0, d = utilDate.clone(date), m = date.getMonth(), i; for (i = 0 , d.setDate(1) , d.setMonth(0); i < m; d.setMonth(++i)) { num += utilDate.getDaysInMonth(d); } return num + date.getDate() - 1; }, getWeekOfYear: (function() { var ms1d = 86400000, ms7d = 7 * ms1d; return function(date) { var DC3 = nativeDate.UTC(date.getFullYear(), date.getMonth(), date.getDate() + 3) / ms1d, AWN = Math.floor(DC3 / 7), Wyr = new nativeDate(AWN * ms7d).getUTCFullYear(); return AWN - Math.floor(nativeDate.UTC(Wyr, 0, 7) / ms7d) + 1; }; }()), isLeapYear: function(date) { var year = date.getFullYear(); return !!((year & 3) === 0 && (year % 100 || (year % 400 === 0 && year))); }, getFirstDayOfMonth: function(date) { var day = (date.getDay() - (date.getDate() - 1)) % 7; return (day < 0) ? (day + 7) : day; }, getLastDayOfMonth: function(date) { return utilDate.getLastDateOfMonth(date).getDay(); }, getFirstDateOfMonth: function(date) { return new nativeDate(date.getFullYear(), date.getMonth(), 1); }, getLastDateOfMonth: function(date) { return new nativeDate(date.getFullYear(), date.getMonth(), utilDate.getDaysInMonth(date)); }, getDaysInMonth: (function() { var daysInMonth = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]; return function(date) { var m = date.getMonth(); return m === 1 && utilDate.isLeapYear(date) ? 29 : daysInMonth[m]; }; }()), getSuffix: function(date) { switch (date.getDate()) { case 1: case 21: case 31: return "st"; case 2: case 22: return "nd"; case 3: case 23: return "rd"; default: return "th"; } }, clone: function(date) { return new nativeDate(date.getTime()); }, isDST: function(date) { return new nativeDate(date.getFullYear(), 0, 1).getTimezoneOffset() !== date.getTimezoneOffset(); }, clearTime: function(date, clone) { if (clone) { return utilDate.clearTime(utilDate.clone(date)); } var d = date.getDate(), hr, c; date.setHours(0); date.setMinutes(0); date.setSeconds(0); date.setMilliseconds(0); if (date.getDate() !== d) { for (hr = 1 , c = utilDate.add(date, utilDate.HOUR, hr); c.getDate() !== d; hr++ , c = utilDate.add(date, utilDate.HOUR, hr)){} date.setDate(d); date.setHours(c.getHours()); } return date; }, add: function(date, interval, value) { var d = utilDate.clone(date), day, decimalValue, base = 0; if (!interval || value === 0) { return d; } decimalValue = value - parseInt(value, 10); value = parseInt(value, 10); if (value) { switch (interval.toLowerCase()) { case utilDate.MILLI: d.setTime(d.getTime() + value); break; case utilDate.SECOND: d.setTime(d.getTime() + value * 1000); break; case utilDate.MINUTE: d.setTime(d.getTime() + value * 60 * 1000); break; case utilDate.HOUR: d.setTime(d.getTime() + value * 60 * 60 * 1000); break; case utilDate.DAY: d.setDate(d.getDate() + value); break; case utilDate.MONTH: day = date.getDate(); if (day > 28) { day = Math.min(day, utilDate.getLastDateOfMonth(utilDate.add(utilDate.getFirstDateOfMonth(date), utilDate.MONTH, value)).getDate()); }; d.setDate(day); d.setMonth(date.getMonth() + value); break; case utilDate.YEAR: day = date.getDate(); if (day > 28) { day = Math.min(day, utilDate.getLastDateOfMonth(utilDate.add(utilDate.getFirstDateOfMonth(date), utilDate.YEAR, value)).getDate()); }; d.setDate(day); d.setFullYear(date.getFullYear() + value); break; } } if (decimalValue) { switch (interval.toLowerCase()) { case utilDate.MILLI: base = 1; break; case utilDate.SECOND: base = 1000; break; case utilDate.MINUTE: base = 1000 * 60; break; case utilDate.HOUR: base = 1000 * 60 * 60; break; case utilDate.DAY: base = 1000 * 60 * 60 * 24; break; case utilDate.MONTH: day = utilDate.getDaysInMonth(d); base = 1000 * 60 * 60 * 24 * day; break; case utilDate.YEAR: day = (utilDate.isLeapYear(d) ? 366 : 365); base = 1000 * 60 * 60 * 24 * day; break; } if (base) { d.setTime(d.getTime() + base * decimalValue); } } return d; }, subtract: function(date, interval, value) { return utilDate.add(date, interval, -value); }, between: function(date, start, end) { var t = date.getTime(); return start.getTime() <= t && t <= end.getTime(); }, compat: function() { var p, statics = [ 'useStrict', 'formatCodeToRegex', 'parseFunctions', 'parseRegexes', 'formatFunctions', 'y2kYear', 'MILLI', 'SECOND', 'MINUTE', 'HOUR', 'DAY', 'MONTH', 'YEAR', 'defaults', 'dayNames', 'monthNames', 'monthNumbers', 'getShortMonthName', 'getShortDayName', 'getMonthNumber', 'formatCodes', 'isValid', 'parseDate', 'getFormatCode', 'createFormat', 'createParser', 'parseCodes' ], proto = [ 'dateFormat', 'format', 'getTimezone', 'getGMTOffset', 'getDayOfYear', 'getWeekOfYear', 'isLeapYear', 'getFirstDayOfMonth', 'getLastDayOfMonth', 'getDaysInMonth', 'getSuffix', 'clone', 'isDST', 'clearTime', 'add', 'between' ], sLen = statics.length, pLen = proto.length, stat, prot, s; for (s = 0; s < sLen; s++) { stat = statics[s]; nativeDate[stat] = utilDate[stat]; } for (p = 0; p < pLen; p++) { prot = proto[p]; nativeDate.prototype[prot] = function() { var args = Array.prototype.slice.call(arguments); args.unshift(this); return utilDate[prot].apply(utilDate, args); }; } }, diff: function(min, max, unit) { var est, diff = +max - min; switch (unit) { case utilDate.MILLI: return diff; case utilDate.SECOND: return Math.floor(diff / 1000); case utilDate.MINUTE: return Math.floor(diff / 60000); case utilDate.HOUR: return Math.floor(diff / 3600000); case utilDate.DAY: return Math.floor(diff / 86400000); case 'w': return Math.floor(diff / 604800000); case utilDate.MONTH: est = (max.getFullYear() * 12 + max.getMonth()) - (min.getFullYear() * 12 + min.getMonth()); if (utilDate.add(min, unit, est) > max) { return est - 1; }; return est; case utilDate.YEAR: est = max.getFullYear() - min.getFullYear(); if (utilDate.add(min, unit, est) > max) { return est - 1; } else { return est; }; } }, align: function(date, unit, step) { var num = new nativeDate(+date); switch (unit.toLowerCase()) { case utilDate.MILLI: return num; case utilDate.SECOND: num.setUTCSeconds(num.getUTCSeconds() - num.getUTCSeconds() % step); num.setUTCMilliseconds(0); return num; case utilDate.MINUTE: num.setUTCMinutes(num.getUTCMinutes() - num.getUTCMinutes() % step); num.setUTCSeconds(0); num.setUTCMilliseconds(0); return num; case utilDate.HOUR: num.setUTCHours(num.getUTCHours() - num.getUTCHours() % step); num.setUTCMinutes(0); num.setUTCSeconds(0); num.setUTCMilliseconds(0); return num; case utilDate.DAY: if (step === 7 || step === 14) { num.setUTCDate(num.getUTCDate() - num.getUTCDay() + 1); }; num.setUTCHours(0); num.setUTCMinutes(0); num.setUTCSeconds(0); num.setUTCMilliseconds(0); return num; case utilDate.MONTH: num.setUTCMonth(num.getUTCMonth() - (num.getUTCMonth() - 1) % step, 1); num.setUTCHours(0); num.setUTCMinutes(0); num.setUTCSeconds(0); num.setUTCMilliseconds(0); return num; case utilDate.YEAR: num.setUTCFullYear(num.getUTCFullYear() - num.getUTCFullYear() % step, 1, 1); num.setUTCHours(0); num.setUTCMinutes(0); num.setUTCSeconds(0); num.setUTCMilliseconds(0); return date; } } }; }()); Ext.Function = (function() { var lastTime = 0, animFrameId, animFrameHandlers = [], animFrameNoArgs = [], idSource = 0, animFrameMap = {}, win = window, requestAnimFrame = win.requestAnimationFrame || win.webkitRequestAnimationFrame || win.mozRequestAnimationFrame || win.oRequestAnimationFrame || function(callback) { var currTime = Ext.now(), timeToCall = Math.max(0, 16 - (currTime - lastTime)), id = win.setTimeout(function() { callback(currTime + timeToCall); }, timeToCall); lastTime = currTime + timeToCall; return id; }, fireHandlers = function() { var len = animFrameHandlers.length, id, i, handler; animFrameId = null; for (i = 0; i < len; i++) { handler = animFrameHandlers[i]; id = handler[3]; if (animFrameMap[id]) { handler[0].apply(handler[1] || Ext.global, handler[2] || animFrameNoArgs); delete animFrameMap[id]; } } animFrameHandlers = animFrameHandlers.slice(len); }, fireElevatedHandlers = function() { Ext.elevateFunction(fireHandlers); }, ExtFunction = { flexSetter: function(setter) { return function(name, value) { var k, i; if (name !== null) { if (typeof name !== 'string') { for (k in name) { if (name.hasOwnProperty(k)) { setter.call(this, k, name[k]); } } if (Ext.enumerables) { for (i = Ext.enumerables.length; i--; ) { k = Ext.enumerables[i]; if (name.hasOwnProperty(k)) { setter.call(this, k, name[k]); } } } } else { setter.call(this, name, value); } } return this; }; }, bind: function(fn, scope, args, appendArgs) { if (arguments.length === 2) { return function() { return fn.apply(scope, arguments); }; } var method = fn, slice = Array.prototype.slice; return function() { var callArgs = args || arguments; if (appendArgs === true) { callArgs = slice.call(arguments, 0); callArgs = callArgs.concat(args); } else if (typeof appendArgs == 'number') { callArgs = slice.call(arguments, 0); Ext.Array.insert(callArgs, appendArgs, args); } return method.apply(scope || Ext.global, callArgs); }; }, bindCallback: function(callback, scope, args, delay, caller) { return function() { var a = Ext.Array.slice(arguments); return Ext.callback(callback, scope, args ? args.concat(a) : a, delay, caller); }; }, pass: function(fn, args, scope) { if (!Ext.isArray(args)) { if (Ext.isIterable(args)) { args = Ext.Array.clone(args); } else { args = args !== undefined ? [ args ] : []; } } return function() { var fnArgs = args.slice(); fnArgs.push.apply(fnArgs, arguments); return fn.apply(scope || this, fnArgs); }; }, alias: function(object, methodName) { return function() { return object[methodName].apply(object, arguments); }; }, clone: function(method) { return function() { return method.apply(this, arguments); }; }, createInterceptor: function(origFn, newFn, scope, returnValue) { if (!Ext.isFunction(newFn)) { return origFn; } else { returnValue = Ext.isDefined(returnValue) ? returnValue : null; return function() { var me = this, args = arguments; newFn.target = me; newFn.method = origFn; return (newFn.apply(scope || me || Ext.global, args) !== false) ? origFn.apply(me || Ext.global, args) : returnValue; }; } }, createDelayed: function(fn, delay, scope, args, appendArgs) { if (scope || args) { fn = Ext.Function.bind(fn, scope, args, appendArgs); } return function() { var me = this, args = Array.prototype.slice.call(arguments); setTimeout(function() { if (Ext.elevateFunction) { Ext.elevateFunction(fn, me, args); } else { fn.apply(me, args); } }, delay); }; }, defer: function(fn, millis, scope, args, appendArgs) { fn = Ext.Function.bind(fn, scope, args, appendArgs); if (millis > 0) { return setTimeout(function() { if (Ext.elevateFunction) { Ext.elevateFunction(fn); } else { fn(); } }, millis); } fn(); return 0; }, interval: function(fn, millis, scope, args, appendArgs) { fn = Ext.Function.bind(fn, scope, args, appendArgs); return setInterval(function() { if (Ext.elevateFunction) { Ext.elevateFunction(fn); } else { fn(); } }, millis); }, createSequence: function(originalFn, newFn, scope) { if (!newFn) { return originalFn; } else { return function() { var result = originalFn.apply(this, arguments); newFn.apply(scope || this, arguments); return result; }; } }, createBuffered: function(fn, buffer, scope, args) { var timerId; return function() { var callArgs = args || Array.prototype.slice.call(arguments, 0), me = scope || this; if (timerId) { clearTimeout(timerId); } timerId = setTimeout(function() { if (Ext.elevateFunction) { Ext.elevateFunction(fn, me, callArgs); } else { fn.apply(me, callArgs); } }, buffer); }; }, createAnimationFrame: function(fn, scope, args, queueStrategy) { var timerId; queueStrategy = queueStrategy || 3; return function() { var callArgs = args || Array.prototype.slice.call(arguments, 0); scope = scope || this; if (queueStrategy === 3 && timerId) { ExtFunction.cancelAnimationFrame(timerId); } if ((queueStrategy & 1) || !timerId) { timerId = ExtFunction.requestAnimationFrame(function() { timerId = null; fn.apply(scope, callArgs); }); } }; }, requestAnimationFrame: function(fn, scope, args) { var id = ++idSource, handler = Array.prototype.slice.call(arguments, 0); handler[3] = id; animFrameMap[id] = 1; animFrameHandlers.push(handler); if (!animFrameId) { animFrameId = requestAnimFrame(Ext.elevateFunction ? fireElevatedHandlers : fireHandlers); } return id; }, cancelAnimationFrame: function(id) { delete animFrameMap[id]; }, createThrottled: function(fn, interval, scope) { var lastCallTime = 0, elapsed, lastArgs, timer, execute = function() { if (Ext.elevateFunction) { Ext.elevateFunction(fn, scope, lastArgs); } else { fn.apply(scope, lastArgs); } lastCallTime = Ext.now(); timer = null; }; return function() { if (!scope) { scope = this; } elapsed = Ext.now() - lastCallTime; lastArgs = arguments; if (elapsed >= interval) { clearTimeout(timer); execute(); } else if (!timer) { timer = Ext.defer(execute, interval - elapsed); } }; }, createBarrier: function(count, fn, scope) { return function() { if (!--count) { fn.apply(scope, arguments); } }; }, interceptBefore: function(object, methodName, fn, scope) { var method = object[methodName] || Ext.emptyFn; return (object[methodName] = function() { var ret = fn.apply(scope || this, arguments); method.apply(this, arguments); return ret; }); }, interceptAfter: function(object, methodName, fn, scope) { var method = object[methodName] || Ext.emptyFn; return (object[methodName] = function() { method.apply(this, arguments); return fn.apply(scope || this, arguments); }); }, makeCallback: function(callback, scope) { if (!scope[callback]) { if (scope.$className) { Ext.Error.raise('No method "' + callback + '" on ' + scope.$className); } Ext.Error.raise('No method "' + callback + '"'); } return function() { return scope[callback].apply(scope, arguments); }; } }; Ext.defer = ExtFunction.defer; Ext.interval = ExtFunction.interval; Ext.pass = ExtFunction.pass; Ext.bind = ExtFunction.bind; Ext.deferCallback = ExtFunction.requestAnimationFrame; return ExtFunction; })(); Ext.Number = (new function() { var ExtNumber = this, isToFixedBroken = (0.9).toFixed() !== '1', math = Math, ClipDefault = { count: false, inclusive: false, wrap: true }; Ext.apply(ExtNumber, { Clip: { DEFAULT: ClipDefault, COUNT: Ext.applyIf({ count: true }, ClipDefault), INCLUSIVE: Ext.applyIf({ inclusive: true }, ClipDefault), NOWRAP: Ext.applyIf({ wrap: false }, ClipDefault) }, clipIndices: function(length, indices, options) { options = options || ClipDefault; var defaultValue = 0, wrap = options.wrap, begin, end, i; indices = indices || []; for (i = 0; i < 2; ++i) { begin = end; end = indices[i]; if (end == null) { end = defaultValue; } else if (i && options.count) { end += begin; end = (end > length) ? length : end; } else { if (wrap) { end = (end < 0) ? (length + end) : end; } if (i && options.inclusive) { ++end; } end = (end < 0) ? 0 : ((end > length) ? length : end); } defaultValue = length; } indices[0] = begin; indices[1] = (end < begin) ? begin : end; return indices; }, constrain: function(number, min, max) { var x = parseFloat(number); if (min === null) { min = number; } if (max === null) { max = number; } return (x < min) ? min : ((x > max) ? max : x); }, snap: function(value, increment, minValue, maxValue) { var m; if (value === undefined || value < minValue) { return minValue || 0; } if (increment) { m = value % increment; if (m !== 0) { value -= m; if (m * 2 >= increment) { value += increment; } else if (m * 2 < -increment) { value -= increment; } } } return ExtNumber.constrain(value, minValue, maxValue); }, snapInRange: function(value, increment, minValue, maxValue) { var tween; minValue = (minValue || 0); if (value === undefined || value < minValue) { return minValue; } if (increment && (tween = ((value - minValue) % increment))) { value -= tween; tween *= 2; if (tween >= increment) { value += increment; } } if (maxValue !== undefined) { if (value > (maxValue = ExtNumber.snapInRange(maxValue, increment, minValue))) { value = maxValue; } } return value; }, sign: function(x) { x = +x; if (x === 0 || isNaN(x)) { return x; } return (x > 0) ? 1 : -1; }, toFixed: isToFixedBroken ? function(value, precision) { precision = precision || 0; var pow = math.pow(10, precision); return (math.round(value * pow) / pow).toFixed(precision); } : function(value, precision) { return value.toFixed(precision); }, from: function(value, defaultValue) { if (isFinite(value)) { value = parseFloat(value); } return !isNaN(value) ? value : defaultValue; }, randomInt: function(from, to) { return math.floor(math.random() * (to - from + 1) + from); }, correctFloat: function(n) { return parseFloat(n.toPrecision(14)); } }); Ext.num = function() { return ExtNumber.from.apply(this, arguments); }; }()); (function() { var TemplateClass = function() {}, queryRe = /^\?/, keyRe = /(\[):?([^\]]*)\]/g, nameRe = /^([^\[]+)/, plusRe = /\+/g, ExtObject = Ext.Object = { chain: Object.create || function(object) { TemplateClass.prototype = object; var result = new TemplateClass(); TemplateClass.prototype = null; return result; }, clear: function(object) { for (var key in object) { delete object[key]; } return object; }, freeze: Object.freeze ? function(obj, deep) { if (obj && typeof obj === 'object' && !Object.isFrozen(obj)) { Object.freeze(obj); if (deep) { for (var name in obj) { ExtObject.freeze(obj[name], deep); } } } return obj; } : Ext.identityFn, toQueryObjects: function(name, value, recursive) { var self = ExtObject.toQueryObjects, objects = [], i, ln; if (Ext.isArray(value)) { for (i = 0 , ln = value.length; i < ln; i++) { if (recursive) { objects = objects.concat(self(name + '[' + i + ']', value[i], true)); } else { objects.push({ name: name, value: value[i] }); } } } else if (Ext.isObject(value)) { for (i in value) { if (value.hasOwnProperty(i)) { if (recursive) { objects = objects.concat(self(name + '[' + i + ']', value[i], true)); } else { objects.push({ name: name, value: value[i] }); } } } } else { objects.push({ name: name, value: value }); } return objects; }, toQueryString: function(object, recursive) { var paramObjects = [], params = [], i, j, ln, paramObject, value; for (i in object) { if (object.hasOwnProperty(i)) { paramObjects = paramObjects.concat(ExtObject.toQueryObjects(i, object[i], recursive)); } } for (j = 0 , ln = paramObjects.length; j < ln; j++) { paramObject = paramObjects[j]; value = paramObject.value; if (Ext.isEmpty(value)) { value = ''; } else if (Ext.isDate(value)) { value = Ext.Date.toString(value); } params.push(encodeURIComponent(paramObject.name) + '=' + encodeURIComponent(String(value))); } return params.join('&'); }, fromQueryString: function(queryString, recursive) { var parts = queryString.replace(queryRe, '').split('&'), object = {}, temp, components, name, value, i, ln, part, j, subLn, matchedKeys, matchedName, keys, key, nextKey; for (i = 0 , ln = parts.length; i < ln; i++) { part = parts[i]; if (part.length > 0) { components = part.split('='); name = components[0]; name = name.replace(plusRe, '%20'); name = decodeURIComponent(name); value = components[1]; if (value !== undefined) { value = value.replace(plusRe, '%20'); value = decodeURIComponent(value); } else { value = ''; } if (!recursive) { if (object.hasOwnProperty(name)) { if (!Ext.isArray(object[name])) { object[name] = [ object[name] ]; } object[name].push(value); } else { object[name] = value; } } else { matchedKeys = name.match(keyRe); matchedName = name.match(nameRe); if (!matchedName) { throw new Error('[Ext.Object.fromQueryString] Malformed query string given, failed parsing name from "' + part + '"'); } name = matchedName[0]; keys = []; if (matchedKeys === null) { object[name] = value; continue; } for (j = 0 , subLn = matchedKeys.length; j < subLn; j++) { key = matchedKeys[j]; key = (key.length === 2) ? '' : key.substring(1, key.length - 1); keys.push(key); } keys.unshift(name); temp = object; for (j = 0 , subLn = keys.length; j < subLn; j++) { key = keys[j]; if (j === subLn - 1) { if (Ext.isArray(temp) && key === '') { temp.push(value); } else { temp[key] = value; } } else { if (temp[key] === undefined || typeof temp[key] === 'string') { nextKey = keys[j + 1]; temp[key] = (Ext.isNumeric(nextKey) || nextKey === '') ? [] : {}; } temp = temp[key]; } } } } } return object; }, each: function(object, fn, scope) { var enumerables = Ext.enumerables, i, property; if (object) { scope = scope || object; for (property in object) { if (object.hasOwnProperty(property)) { if (fn.call(scope, property, object[property], object) === false) { return; } } } if (enumerables) { for (i = enumerables.length; i--; ) { if (object.hasOwnProperty(property = enumerables[i])) { if (fn.call(scope, property, object[property], object) === false) { return; } } } } } }, eachValue: function(object, fn, scope) { var enumerables = Ext.enumerables, i, property; scope = scope || object; for (property in object) { if (object.hasOwnProperty(property)) { if (fn.call(scope, object[property]) === false) { return; } } } if (enumerables) { for (i = enumerables.length; i--; ) { if (object.hasOwnProperty(property = enumerables[i])) { if (fn.call(scope, object[property]) === false) { return; } } } } }, merge: function(destination) { var i = 1, ln = arguments.length, mergeFn = ExtObject.merge, cloneFn = Ext.clone, object, key, value, sourceKey; for (; i < ln; i++) { object = arguments[i]; for (key in object) { value = object[key]; if (value && value.constructor === Object) { sourceKey = destination[key]; if (sourceKey && sourceKey.constructor === Object) { mergeFn(sourceKey, value); } else { destination[key] = cloneFn(value); } } else { destination[key] = value; } } } return destination; }, mergeIf: function(destination) { var i = 1, ln = arguments.length, cloneFn = Ext.clone, object, key, value; for (; i < ln; i++) { object = arguments[i]; for (key in object) { if (!(key in destination)) { value = object[key]; if (value && value.constructor === Object) { destination[key] = cloneFn(value); } else { destination[key] = value; } } } } return destination; }, getAllKeys: function(object) { var keys = [], property; for (property in object) { keys.push(property); } return keys; }, getKey: function(object, value) { for (var property in object) { if (object.hasOwnProperty(property) && object[property] === value) { return property; } } return null; }, getValues: function(object) { var values = [], property; for (property in object) { if (object.hasOwnProperty(property)) { values.push(object[property]); } } return values; }, getKeys: (typeof Object.keys == 'function') ? function(object) { if (!object) { return []; } return Object.keys(object); } : function(object) { var keys = [], property; for (property in object) { if (object.hasOwnProperty(property)) { keys.push(property); } } return keys; }, getSize: function(object) { var size = 0, property; for (property in object) { if (object.hasOwnProperty(property)) { size++; } } return size; }, isEmpty: function(object) { for (var key in object) { if (object.hasOwnProperty(key)) { return false; } } return true; }, equals: (function() { var check = function(o1, o2) { var key; for (key in o1) { if (o1.hasOwnProperty(key)) { if (o1[key] !== o2[key]) { return false; } } } return true; }; return function(object1, object2) { if (object1 === object2) { return true; } if (object1 && object2) { return check(object1, object2) && check(object2, object1); } else if (!object1 && !object2) { return object1 === object2; } else { return false; } }; })(), fork: function(obj) { var ret, key, value; if (obj && obj.constructor === Object) { ret = ExtObject.chain(obj); for (key in obj) { value = obj[key]; if (value) { if (value.constructor === Object) { ret[key] = ExtObject.fork(value); } else if (value instanceof Array) { ret[key] = Ext.Array.clone(value); } } } } else { ret = obj; } return ret; }, defineProperty: ('defineProperty' in Object) ? Object.defineProperty : function(object, name, descriptor) { if (!Object.prototype.__defineGetter__) { return; } if (descriptor.get) { object.__defineGetter__(name, descriptor.get); } if (descriptor.set) { object.__defineSetter__(name, descriptor.set); } }, classify: function(object) { var prototype = object, objectProperties = [], propertyClassesMap = {}, objectClass = function() { var i = 0, ln = objectProperties.length, property; for (; i < ln; i++) { property = objectProperties[i]; this[property] = new propertyClassesMap[property](); } }, key, value; for (key in object) { if (object.hasOwnProperty(key)) { value = object[key]; if (value && value.constructor === Object) { objectProperties.push(key); propertyClassesMap[key] = ExtObject.classify(value); } } } objectClass.prototype = prototype; return objectClass; } }; Ext.merge = Ext.Object.merge; Ext.mergeIf = Ext.Object.mergeIf; }()); Ext.apply(Ext, { _namedScopes: { 'this': { isThis: 1 }, controller: { isController: 1 }, self: { isSelf: 1 }, 'self.controller': { isSelf: 1, isController: 1 } }, escapeId: (function() { var validIdRe = /^[a-zA-Z_][a-zA-Z0-9_\-]*$/i, escapeRx = /([\W]{1})/g, leadingNumRx = /^(\d)/g, escapeFn = function(match, capture) { return "\\" + capture; }, numEscapeFn = function(match, capture) { return '\\00' + capture.charCodeAt(0).toString(16) + ' '; }; return function(id) { return validIdRe.test(id) ? id : id.replace(escapeRx, escapeFn).replace(leadingNumRx, numEscapeFn); }; }()), callback: function(callback, scope, args, delay, caller, defaultScope) { if (!callback) { return; } var namedScope = (scope in Ext._namedScopes); if (callback.charAt) { if ((!scope || namedScope) && caller) { scope = caller.resolveListenerScope(namedScope ? scope : defaultScope); } if (!scope || !Ext.isObject(scope)) { Ext.Error.raise('Named method "' + callback + '" requires a scope object'); } if (!Ext.isFunction(scope[callback])) { Ext.Error.raise('No method named "' + callback + '" on ' + (scope.$className || 'scope object')); } callback = scope[callback]; } else if (namedScope) { scope = defaultScope || caller; } else if (!scope) { scope = caller; } var ret; if (callback && Ext.isFunction(callback)) { scope = scope || Ext.global; if (delay) { Ext.defer(callback, delay, scope, args); } else if (Ext.elevateFunction) { ret = Ext.elevateFunction(callback, scope, args); } else if (args) { ret = callback.apply(scope, args); } else { ret = callback.call(scope); } } return ret; }, coerce: function(from, to) { var fromType = Ext.typeOf(from), toType = Ext.typeOf(to), isString = typeof from === 'string'; if (fromType !== toType) { switch (toType) { case 'string': return String(from); case 'number': return Number(from); case 'boolean': return isString && (!from || from === 'false') ? false : Boolean(from); case 'null': return isString && (!from || from === 'null') ? null : from; case 'undefined': return isString && (!from || from === 'undefined') ? undefined : from; case 'date': return isString && isNaN(from) ? Ext.Date.parse(from, Ext.Date.defaultFormat) : Date(Number(from)); } } return from; }, copyTo: function(dest, source, names, usePrototypeKeys) { if (typeof names === 'string') { names = names.split(Ext.propertyNameSplitRe); } for (var name, i = 0, n = names ? names.length : 0; i < n; i++) { name = names[i]; if (usePrototypeKeys || source.hasOwnProperty(name)) { dest[name] = source[name]; } } return dest; }, propertyNameSplitRe: /[,;\s]+/, copyToIf: function(destination, source, names) { if (typeof names === 'string') { names = names.split(Ext.propertyNameSplitRe); } for (var name, i = 0, n = names ? names.length : 0; i < n; i++) { name = names[i]; if (destination[name] === undefined) { destination[name] = source[name]; } } return destination; }, extend: (function() { var objectConstructor = Object.prototype.constructor, inlineOverrides = function(o) { for (var m in o) { if (!o.hasOwnProperty(m)) { continue; } this[m] = o[m]; } }; return function(subclass, superclass, overrides) { if (Ext.isObject(superclass)) { overrides = superclass; superclass = subclass; subclass = overrides.constructor !== objectConstructor ? overrides.constructor : function() { superclass.apply(this, arguments); }; } if (!superclass) { Ext.Error.raise({ sourceClass: 'Ext', sourceMethod: 'extend', msg: 'Attempting to extend from a class which has not been loaded on the page.' }); } var F = function() {}, subclassProto, superclassProto = superclass.prototype; F.prototype = superclassProto; subclassProto = subclass.prototype = new F(); subclassProto.constructor = subclass; subclass.superclass = superclassProto; if (superclassProto.constructor === objectConstructor) { superclassProto.constructor = superclass; } subclass.override = function(overrides) { Ext.override(subclass, overrides); }; subclassProto.override = inlineOverrides; subclassProto.proto = subclassProto; subclass.override(overrides); subclass.extend = function(o) { return Ext.extend(subclass, o); }; return subclass; }; }()), iterate: function(object, fn, scope) { if (Ext.isEmpty(object)) { return; } if (scope === undefined) { scope = object; } if (Ext.isIterable(object)) { Ext.Array.each.call(Ext.Array, object, fn, scope); } else { Ext.Object.each.call(Ext.Object, object, fn, scope); } }, urlEncode: function() { var args = Ext.Array.from(arguments), prefix = ''; if (Ext.isString(args[1])) { prefix = args[1] + '&'; args[1] = false; } return prefix + Ext.Object.toQueryString.apply(Ext.Object, args); }, urlDecode: function() { return Ext.Object.fromQueryString.apply(Ext.Object, arguments); }, getScrollbarSize: function(force) { if (!Ext.isDomReady) { Ext.Error.raise("getScrollbarSize called before DomReady"); } var scrollbarSize = Ext._scrollbarSize; if (force || !scrollbarSize) { var db = document.body, div = document.createElement('div'); div.style.width = div.style.height = '100px'; div.style.overflow = 'scroll'; div.style.position = 'absolute'; db.appendChild(div); Ext._scrollbarSize = scrollbarSize = { width: div.offsetWidth - div.clientWidth, height: div.offsetHeight - div.clientHeight }; db.removeChild(div); } return scrollbarSize; }, typeOf: (function() { var nonWhitespaceRe = /\S/, toString = Object.prototype.toString, typeofTypes = { number: 1, string: 1, 'boolean': 1, 'undefined': 1 }, toStringTypes = { '[object Array]': 'array', '[object Date]': 'date', '[object Boolean]': 'boolean', '[object Number]': 'number', '[object RegExp]': 'regexp' }; return function(value) { if (value === null) { return 'null'; } var type = typeof value, ret, typeToString; if (typeofTypes[type]) { return type; } ret = toStringTypes[typeToString = toString.call(value)]; if (ret) { return ret; } if (type === 'function') { return 'function'; } if (type === 'object') { if (value.nodeType !== undefined) { if (value.nodeType === 3) { return nonWhitespaceRe.test(value.nodeValue) ? 'textnode' : 'whitespace'; } else { return 'element'; } } return 'object'; } Ext.Error.raise({ sourceClass: 'Ext', sourceMethod: 'typeOf', msg: 'Failed to determine the type of "' + value + '".' }); return typeToString; }; }()), factory: function(config, classReference, instance, aliasNamespace) { var manager = Ext.ClassManager, newInstance; if (!config || config.isInstance) { if (instance && instance !== config) { instance.destroy(); } return config; } if (aliasNamespace) { if (typeof config === 'string') { return manager.instantiateByAlias(aliasNamespace + '.' + config); } else if (Ext.isObject(config) && 'type' in config) { return manager.instantiateByAlias(aliasNamespace + '.' + config.type, config); } } if (config === true) { return instance || Ext.create(classReference); } if (!Ext.isObject(config)) { Ext.Logger.error("Invalid config, must be a valid config object"); } if ('xtype' in config) { newInstance = manager.instantiateByAlias('widget.' + config.xtype, config); } else if ('xclass' in config) { newInstance = Ext.create(config.xclass, config); } if (newInstance) { if (instance) { instance.destroy(); } return newInstance; } if (instance) { return instance.setConfig(config); } return Ext.create(classReference, config); }, log: (function() { var primitiveRe = /string|number|boolean/; function dumpObject(object, level, maxLevel, withFunctions) { var member, type, value, name, prefix, suffix, members = []; if (Ext.isArray(object)) { prefix = '['; suffix = ']'; } else if (Ext.isObject(object)) { prefix = '{'; suffix = '}'; } if (!maxLevel) { maxLevel = 3; } if (level > maxLevel) { return prefix + '...' + suffix; } level = level || 1; var spacer = (new Array(level)).join(' '); for (name in object) { if (object.hasOwnProperty(name)) { value = object[name]; type = typeof value; if (type === 'function') { if (!withFunctions) { continue; } member = type; } else if (type === 'undefined') { member = type; } else if (value === null || primitiveRe.test(type) || Ext.isDate(value)) { member = Ext.encode(value); } else if (Ext.isArray(value)) { member = this.dumpObject(value, level + 1, maxLevel, withFunctions); } else if (Ext.isObject(value)) { member = this.dumpObject(value, level + 1, maxLevel, withFunctions); } else { member = type; } members.push(spacer + name + ': ' + member); } } if (members.length) { return prefix + '\n ' + members.join(',\n ') + '\n' + spacer + suffix; } return prefix + suffix; } function log(message) { var options, dump, con = Ext.global.console, level = 'log', indent = log.indent || 0, prefix, stack, fn, out, max; log.indent = indent; if (typeof message !== 'string') { options = message; message = options.msg || ''; level = options.level || level; dump = options.dump; stack = options.stack; prefix = options.prefix; fn = options.fn; if (options.indent) { ++log.indent; } else if (options.outdent) { log.indent = indent = Math.max(indent - 1, 0); } if (dump && !(con && con.dir)) { message += dumpObject(dump); dump = null; } } if (arguments.length > 1) { message += Array.prototype.slice.call(arguments, 1).join(''); } if (prefix) { message = prefix + ' - ' + message; } message = indent ? Ext.String.repeat(' ', log.indentSize * indent) + message : message; if (level !== 'log') { message = '[' + level.charAt(0).toUpperCase() + '] ' + message; } if (fn) { message += '\nCaller: ' + fn.toString(); } if (con) { if (con[level]) { con[level](message); } else { con.log(message); } if (dump) { con.dir(dump); } if (stack && con.trace) { if (!con.firebug || level !== 'error') { con.trace(); } } } else if (Ext.isOpera) { opera.postError(message); } else { out = log.out; max = log.max; if (out.length >= max) { Ext.Array.erase(out, 0, out.length - 3 * Math.floor(max / 4)); } out.push(message); } ++log.count; ++log.counters[level]; } function logx(level, args) { if (typeof args[0] === 'string') { args.unshift({}); } args[0].level = level; log.apply(this, args); } log.error = function() { logx('error', Array.prototype.slice.call(arguments)); }; log.info = function() { logx('info', Array.prototype.slice.call(arguments)); }; log.warn = function() { logx('warn', Array.prototype.slice.call(arguments)); }; log.count = 0; log.counters = { error: 0, warn: 0, info: 0, log: 0 }; log.indentSize = 2; log.out = []; log.max = 750; return log; }()) || (function() { var nullLog = function() {}; nullLog.info = nullLog.warn = nullLog.error = Ext.emptyFn; return nullLog; }()) }); (function() { var checkVerTemp = [ '' ], endOfVersionRe = /([^\d\.])/, notDigitsRe = /[^\d]/g, plusMinusRe = /[\-+]/g, stripRe = /\s/g, underscoreRe = /_/g, Version; Ext.Version = Version = function(version, defaultMode) { var me = this, padModes = me.padModes, ch, i, pad, parts, release, releaseStartIndex, ver; if (version.isVersion) { version = version.version; } me.version = ver = String(version).toLowerCase().replace(underscoreRe, '.').replace(plusMinusRe, ''); ch = ver.charAt(0); if (ch in padModes) { ver = ver.substring(1); pad = padModes[ch]; } else { pad = defaultMode ? padModes[defaultMode] : 0; } me.pad = pad; releaseStartIndex = ver.search(endOfVersionRe); me.shortVersion = ver; if (releaseStartIndex !== -1) { me.release = release = ver.substr(releaseStartIndex, version.length); me.shortVersion = ver.substr(0, releaseStartIndex); release = Version.releaseValueMap[release] || release; } me.releaseValue = release || pad; me.shortVersion = me.shortVersion.replace(notDigitsRe, ''); me.parts = parts = ver.split('.'); for (i = parts.length; i--; ) { parts[i] = parseInt(parts[i], 10); } if (pad === Infinity) { parts.push(pad); } me.major = parts[0] || pad; me.minor = parts[1] || pad; me.patch = parts[2] || pad; me.build = parts[3] || pad; return me; }; Version.prototype = { isVersion: true, padModes: { '~': NaN, '^': Infinity }, release: '', compareTo: function(other) { var me = this, lhsPad = me.pad, lhsParts = me.parts, lhsLength = lhsParts.length, rhsVersion = other.isVersion ? other : new Version(other), rhsPad = rhsVersion.pad, rhsParts = rhsVersion.parts, rhsLength = rhsParts.length, length = Math.max(lhsLength, rhsLength), i, lhs, rhs; for (i = 0; i < length; i++) { lhs = (i < lhsLength) ? lhsParts[i] : lhsPad; rhs = (i < rhsLength) ? rhsParts[i] : rhsPad; if (lhs < rhs) { return -1; } if (lhs > rhs) { return 1; } } lhs = me.releaseValue; rhs = rhsVersion.releaseValue; if (lhs < rhs) { return -1; } if (lhs > rhs) { return 1; } return 0; }, toString: function() { return this.version; }, valueOf: function() { return this.version; }, getMajor: function() { return this.major; }, getMinor: function() { return this.minor; }, getPatch: function() { return this.patch; }, getBuild: function() { return this.build; }, getRelease: function() { return this.release; }, getReleaseValue: function() { return this.releaseValue; }, isGreaterThan: function(target) { return this.compareTo(target) > 0; }, isGreaterThanOrEqual: function(target) { return this.compareTo(target) >= 0; }, isLessThan: function(target) { return this.compareTo(target) < 0; }, isLessThanOrEqual: function(target) { return this.compareTo(target) <= 0; }, equals: function(target) { return this.compareTo(target) === 0; }, match: function(target) { target = String(target); return this.version.substr(0, target.length) === target; }, toArray: function() { var me = this; return [ me.getMajor(), me.getMinor(), me.getPatch(), me.getBuild(), me.getRelease() ]; }, getShortVersion: function() { return this.shortVersion; }, gt: function(target) { return this.compareTo(target) > 0; }, lt: function(target) { return this.compareTo(target) < 0; }, gtEq: function(target) { return this.compareTo(target) >= 0; }, ltEq: function(target) { return this.compareTo(target) <= 0; } }; Ext.apply(Version, { aliases: { from: { extjs: 'ext', core: 'sencha-core' }, to: { ext: [ 'extjs' ], 'sencha-core': [ 'core' ] } }, releaseValueMap: { dev: -6, alpha: -5, a: -5, beta: -4, b: -4, rc: -3, '#': -2, p: -1, pl: -1 }, getComponentValue: function(value) { return !value ? 0 : (isNaN(value) ? this.releaseValueMap[value] || value : parseInt(value, 10)); }, compare: function(current, target) { var ver = current.isVersion ? current : new Version(current); return ver.compareTo(target); }, set: function(collection, packageName, version) { var aliases = Version.aliases.to[packageName], ver = version.isVersion ? version : new Version(version), i; collection[packageName] = ver; if (aliases) { for (i = aliases.length; i-- > 0; ) { collection[aliases[i]] = ver; } } return ver; } }); Ext.apply(Ext, { compatVersions: {}, versions: {}, lastRegisteredVersion: null, getCompatVersion: function(packageName) { var versions = Ext.compatVersions, compat; if (!packageName) { compat = versions.ext || versions.touch || versions.core; } else { compat = versions[Version.aliases.from[packageName] || packageName]; } return compat || Ext.getVersion(packageName); }, setCompatVersion: function(packageName, version) { Version.set(Ext.compatVersions, packageName, version); }, setVersion: function(packageName, version) { Ext.lastRegisteredVersion = Version.set(Ext.versions, packageName, version); return this; }, getVersion: function(packageName) { var versions = Ext.versions; if (!packageName) { return versions.ext || versions.touch || versions.core; } return versions[Version.aliases.from[packageName] || packageName]; }, checkVersion: function(specs, matchAll) { var isArray = Ext.isArray(specs), aliases = Version.aliases.from, compat = isArray ? specs : checkVerTemp, length = compat.length, versions = Ext.versions, frameworkVer = versions.ext || versions.touch, i, index, matches, minVer, maxVer, packageName, spec, range, ver; if (!isArray) { checkVerTemp[0] = specs; } for (i = 0; i < length; ++i) { if (!Ext.isString(spec = compat[i])) { matches = Ext.checkVersion(spec.and || spec.or, !spec.or); if (spec.not) { matches = !matches; } } else { if (spec.indexOf(' ') >= 0) { spec = spec.replace(stripRe, ''); } index = spec.indexOf('@'); if (index < 0) { range = spec; ver = frameworkVer; } else { packageName = spec.substring(0, index); if (!(ver = versions[aliases[packageName] || packageName])) { if (matchAll) { return false; } continue; } range = spec.substring(index + 1); } index = range.indexOf('-'); if (index < 0) { if (range.charAt(index = range.length - 1) === '+') { minVer = range.substring(0, index); maxVer = null; } else { minVer = maxVer = range; } } else if (index > 0) { minVer = range.substring(0, index); maxVer = range.substring(index + 1); } else { minVer = null; maxVer = range.substring(index + 1); } matches = true; if (minVer) { minVer = new Version(minVer, '~'); matches = minVer.ltEq(ver); } if (matches && maxVer) { maxVer = new Version(maxVer, '~'); matches = maxVer.gtEq(ver); } } if (matches) { if (!matchAll) { return true; } } else if (matchAll) { return false; } } return !!matchAll; }, deprecate: function(packageName, since, closure, scope) { if (Version.compare(Ext.getVersion(packageName), since) < 1) { closure.call(scope); } } }); }()); (function(manifest) { var packages = (manifest && manifest.packages) || {}, compat = manifest && manifest.compatibility, name, pkg; for (name in packages) { pkg = packages[name]; Ext.setVersion(name, pkg.version); } if (compat) { if (Ext.isString(compat)) { Ext.setCompatVersion('core', compat); } else { for (name in compat) { Ext.setCompatVersion(name, compat[name]); } } } if (!packages.ext && !packages.touch) { Ext.setVersion('ext', '5'); } })(Ext.manifest); Ext.Config = function(name) { var me = this, capitalizedName = name.charAt(0).toUpperCase() + name.substr(1); me.name = name; me.names = { internal: '_' + name, initializing: 'is' + capitalizedName + 'Initializing', apply: 'apply' + capitalizedName, update: 'update' + capitalizedName, get: 'get' + capitalizedName, set: 'set' + capitalizedName, initGet: 'initGet' + capitalizedName, doSet: 'doSet' + capitalizedName, changeEvent: name.toLowerCase() + 'change' }; me.root = me; }; Ext.Config.map = {}; Ext.Config.get = function(name) { var map = Ext.Config.map, ret = map[name] || (map[name] = new Ext.Config(name)); return ret; }; Ext.Config.prototype = { self: Ext.Config, isConfig: true, getGetter: function() { return this.getter || (this.root.getter = this.makeGetter()); }, getInitGetter: function() { return this.initGetter || (this.root.initGetter = this.makeInitGetter()); }, getSetter: function() { return this.setter || (this.root.setter = this.makeSetter()); }, getInternalName: function(target) { return target.$configPrefixed ? this.names.internal : this.name; }, mergeNew: function(newValue, oldValue, target, mixinClass) { var ret, key; if (!oldValue) { ret = newValue; } else if (!newValue) { ret = oldValue; } else { ret = Ext.Object.chain(oldValue); for (key in newValue) { if (!mixinClass || !(key in ret)) { ret[key] = newValue[key]; } } } return ret; }, mergeSets: function(newValue, oldValue, preserveExisting) { var ret = oldValue ? Ext.Object.chain(oldValue) : {}, i, val; if (newValue instanceof Array) { for (i = newValue.length; i--; ) { val = newValue[i]; if (!preserveExisting || !(val in ret)) { ret[val] = true; } } } else if (newValue) { if (newValue.constructor === Object) { for (i in newValue) { val = newValue[i]; if (!preserveExisting || !(i in ret)) { ret[i] = val; } } } else if (!preserveExisting || !(newValue in ret)) { ret[newValue] = true; } } return ret; }, makeGetter: function() { var name = this.name, prefixedName = this.names.internal; return function() { var internalName = this.$configPrefixed ? prefixedName : name; return this[internalName]; }; }, makeInitGetter: function() { var name = this.name, names = this.names, setName = names.set, getName = names.get, initializingName = names.initializing; return function() { var me = this; me[initializingName] = true; delete me[getName]; me[setName](me.config[name]); delete me[initializingName]; return me[getName].apply(me, arguments); }; }, makeSetter: function() { var name = this.name, names = this.names, prefixedName = names.internal, getName = names.get, applyName = names.apply, updateName = names.update, setter; setter = function(value) { var me = this, internalName = me.$configPrefixed ? prefixedName : name, oldValue = me[internalName]; delete me[getName]; if (!me[applyName] || (value = me[applyName](value, oldValue)) !== undefined) { if (value !== (oldValue = me[internalName])) { me[internalName] = value; if (me[updateName]) { me[updateName](value, oldValue); } } } return me; }; setter.$isDefault = true; return setter; } }; (function() { var ExtConfig = Ext.Config, configPropMap = ExtConfig.map, ExtObject = Ext.Object; Ext.Configurator = function(cls) { var me = this, prototype = cls.prototype, zuper = cls.superclass ? cls.superclass.self.$config : null; me.cls = cls; if (zuper) { me.configs = ExtObject.chain(zuper.configs); me.cachedConfigs = ExtObject.chain(zuper.cachedConfigs); me.initMap = ExtObject.chain(zuper.initMap); me.values = ExtObject.chain(zuper.values); me.needsFork = zuper.needsFork; } else { me.configs = {}; me.cachedConfigs = {}; me.initMap = {}; me.values = {}; } prototype.config = prototype.defaultConfig = me.values; cls.$config = me; }; Ext.Configurator.prototype = { self: Ext.Configurator, needsFork: false, initList: null, add: function(config, mixinClass) { var me = this, Cls = me.cls, configs = me.configs, cachedConfigs = me.cachedConfigs, initMap = me.initMap, prototype = Cls.prototype, mixinConfigs = mixinClass && mixinClass.$config.configs, values = me.values, isObject, meta, isCached, merge, cfg, currentValue, name, names, s, value; for (name in config) { value = config[name]; isObject = value && value.constructor === Object; meta = isObject && '$value' in value ? value : null; if (meta) { isCached = !!meta.cached; value = meta.$value; isObject = value && value.constructor === Object; } merge = meta && meta.merge; cfg = configs[name]; if (cfg) { if (mixinClass) { merge = cfg.merge; if (!merge) { continue; } meta = null; } else { merge = merge || cfg.merge; } if (!mixinClass && isCached && !cachedConfigs[name]) { Ext.Error.raise('Redefining config as cached: ' + name + ' in class: ' + Cls.$className); } currentValue = values[name]; if (merge) { value = merge.call(cfg, value, currentValue, Cls, mixinClass); } else if (isObject) { if (currentValue && currentValue.constructor === Object) { value = ExtObject.merge({}, currentValue, value); } } } else { if (mixinConfigs) { cfg = mixinConfigs[name]; meta = null; } else { cfg = ExtConfig.get(name); } configs[name] = cfg; if (cfg.cached || isCached) { cachedConfigs[name] = true; } names = cfg.names; if (!prototype[s = names.get]) { prototype[s] = cfg.getGetter(); } if (!prototype[s = names.set]) { prototype[s] = cfg.getSetter(); } } if (meta) { if (cfg.owner !== Cls) { configs[name] = cfg = Ext.Object.chain(cfg); cfg.owner = Cls; } Ext.apply(cfg, meta); delete cfg.$value; } if (!me.needsFork && value && (value.constructor === Object || value instanceof Array)) { me.needsFork = true; } if (value !== null) { initMap[name] = true; } else { if (prototype.$configPrefixed) { prototype[configs[name].names.internal] = null; } else { prototype[configs[name].name] = null; } if (name in initMap) { initMap[name] = false; } } values[name] = value; } }, configure: function(instance, instanceConfig) { var me = this, configs = me.configs, initMap = me.initMap, initListMap = me.initListMap, initList = me.initList, prototype = me.cls.prototype, values = me.values, remaining = 0, firstInstance = !initList, cachedInitList, cfg, getter, needsInit, i, internalName, ln, names, name, value, isCached, valuesKey; values = me.needsFork ? ExtObject.fork(values) : ExtObject.chain(values); if (firstInstance) { me.initList = initList = []; me.initListMap = initListMap = {}; instance.isFirstInstance = true; for (name in initMap) { needsInit = initMap[name]; cfg = configs[name]; isCached = cfg.cached; if (needsInit) { names = cfg.names; value = values[name]; if (!prototype[names.set].$isDefault || prototype[names.apply] || prototype[names.update] || typeof value === 'object') { if (isCached) { (cachedInitList || (cachedInitList = [])).push(cfg); } else { initList.push(cfg); initListMap[name] = true; } instance[names.get] = cfg.initGetter || cfg.getInitGetter(); } else { prototype[cfg.getInternalName(prototype)] = value; } } else if (isCached) { prototype[cfg.getInternalName(prototype)] = undefined; } } } ln = cachedInitList && cachedInitList.length; if (ln) { for (i = 0; i < ln; ++i) { internalName = cachedInitList[i].getInternalName(prototype); instance[internalName] = null; } for (i = 0; i < ln; ++i) { names = (cfg = cachedInitList[i]).names; getter = names.get; if (instance.hasOwnProperty(getter)) { instance[names.set](values[cfg.name]); delete instance[getter]; } } for (i = 0; i < ln; ++i) { internalName = cachedInitList[i].getInternalName(prototype); prototype[internalName] = instance[internalName]; delete instance[internalName]; } } if (instanceConfig && instanceConfig.platformConfig) { instanceConfig = me.resolvePlatformConfig(instance, instanceConfig); } if (firstInstance) { if (instance.afterCachedConfig && !instance.afterCachedConfig.$nullFn) { instance.afterCachedConfig(instanceConfig); } } instance.isConfiguring = true; instance.config = values; for (i = 0 , ln = initList.length; i < ln; ++i) { cfg = initList[i]; instance[cfg.names.get] = cfg.initGetter || cfg.getInitGetter(); } if (instance.transformInstanceConfig) { instanceConfig = instance.transformInstanceConfig(instanceConfig); } if (instanceConfig) { for (name in instanceConfig) { value = instanceConfig[name]; cfg = configs[name]; if (!cfg) { if (instance.$configStrict && typeof instance.self.prototype[name] === 'function') { Ext.Error.raise("Cannot override method " + name + " on " + instance.$className + " instance."); } instance[name] = value; } else { if (!cfg.lazy) { ++remaining; } if (!initListMap[name]) { instance[cfg.names.get] = cfg.initGetter || cfg.getInitGetter(); } if (cfg.merge) { value = cfg.merge(value, values[name], instance); } else if (value && value.constructor === Object) { valuesKey = values[name]; if (valuesKey && valuesKey.constructor === Object) { value = ExtObject.merge(values[name], value); } else { value = Ext.clone(value); } } } values[name] = value; } } if (instance.beforeInitConfig && !instance.beforeInitConfig.$nullFn) { if (instance.beforeInitConfig(instanceConfig) === false) { return; } } if (instanceConfig) { for (name in instanceConfig) { if (!remaining) { break; } cfg = configs[name]; if (cfg && !cfg.lazy) { --remaining; names = cfg.names; getter = names.get; if (instance.hasOwnProperty(getter)) { instance[names.set](values[name]); delete instance[names.get]; } } } } for (i = 0 , ln = initList.length; i < ln; ++i) { cfg = initList[i]; names = cfg.names; getter = names.get; if (!cfg.lazy && instance.hasOwnProperty(getter)) { instance[names.set](values[cfg.name]); delete instance[getter]; } } delete instance.isConfiguring; }, getCurrentConfig: function(instance) { var defaultConfig = instance.defaultConfig, config = {}, name; for (name in defaultConfig) { config[name] = instance[configPropMap[name].names.get](); } return config; }, merge: function(instance, baseConfig, config) { var configs = this.configs, name, value, baseValue, cfg; for (name in config) { value = config[name]; cfg = configs[name]; if (cfg) { if (cfg.merge) { value = cfg.merge(value, baseConfig[name], instance); } else if (value && value.constructor === Object) { baseValue = baseConfig[name]; if (baseValue && baseValue.constructor === Object) { value = Ext.Object.merge(baseValue, value); } else { value = Ext.clone(value); } } } baseConfig[name] = value; } return baseConfig; }, reconfigure: function(instance, instanceConfig, options) { var currentConfig = instance.config, configList = [], strict = instance.$configStrict, configs = this.configs, defaults = options && options.defaults, applyProps = options && options.strict === false, cfg, getter, i, len, name, names, setter; for (name in instanceConfig) { if (defaults && instance.hasOwnProperty(name)) { continue; } currentConfig[name] = instanceConfig[name]; cfg = configs[name]; if (cfg) { instance[cfg.names.get] = cfg.initGetter || cfg.getInitGetter(); } else if (strict) { if (name !== 'type') { Ext.log.error('No such config "' + name + '" for class ' + instance.$className); } continue; } configList.push(name); } for (i = 0 , len = configList.length; i < len; i++) { name = configList[i]; cfg = configs[name]; if (cfg) { names = cfg.names; getter = names.get; if (instance.hasOwnProperty(getter)) { instance[names.set](instanceConfig[name]); delete instance[getter]; } } else { cfg = configPropMap[name] || Ext.Config.get(name); names = cfg.names; if (instance[names.set]) { instance[names.set](instanceConfig[name]); } else if (applyProps) { if (instance.$configStrict && typeof instance.self.prototype[name] === 'function') { Ext.Error.raise("Cannot override method " + name + " on " + instance.$className + " instance."); } instance[name] = instanceConfig[name]; } else if (name !== 'type') { Ext.Error.raise('Config "' + name + '" has no setter on class ' + instance.$className); } } } }, resolvePlatformConfig: function(instance, instanceConfig) { var platformConfig = instanceConfig && instanceConfig.platformConfig, ret = instanceConfig, i, keys, n; if (platformConfig) { keys = Ext.getPlatformConfigKeys(platformConfig); n = keys.length; if (n) { ret = Ext.merge({}, ret); for (i = 0 , n = keys.length; i < n; ++i) { this.merge(instance, ret, platformConfig[keys[i]]); } } } return ret; } }; }()); Ext.Base = (function(flexSetter) { var noArgs = [], baseStaticMember, baseStaticMembers = [], getConfig = function(name, peek) { var me = this, ret, cfg, getterName; if (name) { cfg = Ext.Config.map[name]; if (!cfg) { Ext.Logger.error("Invalid property name for getter: '" + name + "' for '" + me.$className + "'."); } getterName = cfg.names.get; if (peek && me.hasOwnProperty(getterName)) { ret = me.config[name]; } else { ret = me[getterName](); } } else { ret = me.getCurrentConfig(); } return ret; }, makeDeprecatedMethod = function(oldName, newName, msg) { var message = '"' + oldName + '" is deprecated.'; if (msg) { message += ' ' + msg; } else if (newName) { message += ' Please use "' + newName + '" instead.'; } return function() { Ext.Error.raise(message); }; }, addDeprecatedProperty = function(object, oldName, newName, message) { if (!message) { message = '"' + oldName + '" is deprecated.'; } if (newName) { message += ' Please use "' + newName + '" instead.'; } if (message) { Ext.Object.defineProperty(object, oldName, { get: function() { Ext.Error.raise(message); }, set: function(value) { Ext.Error.raise(message); }, configurable: true }); } }, makeAliasFn = function(name) { return function() { return this[name].apply(this, arguments); }; }, Version = Ext.Version, leadingDigitRe = /^\d/, oneMember = {}, aliasOneMember = {}, Base = function() {}, BasePrototype = Base.prototype; Ext.apply(Base, { $className: 'Ext.Base', $isClass: true, create: function() { return Ext.create.apply(Ext, [ this ].concat(Array.prototype.slice.call(arguments, 0))); }, addDeprecations: function(deprecations) { var me = this, all = [], compatVersion = Ext.getCompatVersion(deprecations.name), displayName = (me.$className || '') + '#', deprecate, versionSpec, index, message, target, enabled, existing, fn, names, oldName, newName, member, statics, version; for (versionSpec in deprecations) { if (leadingDigitRe.test(versionSpec)) { version = new Ext.Version(versionSpec); version.deprecations = deprecations[versionSpec]; all.push(version); } } all.sort(Version.compare); for (index = all.length; index--; ) { deprecate = (version = all[index]).deprecations; target = me.prototype; statics = deprecate.statics; enabled = compatVersion && compatVersion.lt(version); if (!enabled) {} else if (!enabled) { break; } while (deprecate) { names = deprecate.methods; if (names) { for (oldName in names) { member = names[oldName]; fn = null; if (!member) { Ext.Assert.isNotDefinedProp(target, oldName); fn = makeDeprecatedMethod(displayName + oldName); } else if (Ext.isString(member)) { Ext.Assert.isNotDefinedProp(target, oldName); Ext.Assert.isDefinedProp(target, member); if (enabled) { fn = makeAliasFn(member); } else { fn = makeDeprecatedMethod(displayName + oldName, member); } } else { message = ''; if (member.message || member.fn) { message = member.message; member = member.fn; } existing = target.hasOwnProperty(oldName) && target[oldName]; if (enabled && member) { member.$owner = me; member.$name = oldName; member.name = displayName + oldName; if (existing) { member.$previous = existing; } fn = member; } else if (!existing) { fn = makeDeprecatedMethod(displayName + oldName, null, message); } } if (fn) { target[oldName] = fn; } } } names = deprecate.properties; if (names && !enabled) { for (oldName in names) { newName = names[oldName]; if (Ext.isString(newName)) { addDeprecatedProperty(target, displayName + oldName, newName); } else if (newName && newName.message) { addDeprecatedProperty(target, displayName + oldName, null, newName.message); } else { addDeprecatedProperty(target, displayName + oldName); } } } deprecate = statics; statics = null; target = me; } } }, extend: function(parent) { var me = this, parentPrototype = parent.prototype, prototype, i, ln, name, statics; prototype = me.prototype = Ext.Object.chain(parentPrototype); prototype.self = me; me.superclass = prototype.superclass = parentPrototype; if (!parent.$isClass) { for (i in BasePrototype) { if (i in prototype) { prototype[i] = BasePrototype[i]; } } } statics = parentPrototype.$inheritableStatics; if (statics) { for (i = 0 , ln = statics.length; i < ln; i++) { name = statics[i]; if (!me.hasOwnProperty(name)) { me[name] = parent[name]; } } } if (parent.$onExtended) { me.$onExtended = parent.$onExtended.slice(); } me.getConfigurator(); }, $onExtended: [], triggerExtended: function() { Ext.classSystemMonitor && Ext.classSystemMonitor(this, 'Ext.Base#triggerExtended', arguments); var callbacks = this.$onExtended, ln = callbacks.length, i, callback; if (ln > 0) { for (i = 0; i < ln; i++) { callback = callbacks[i]; callback.fn.apply(callback.scope || this, arguments); } } }, onExtended: function(fn, scope) { this.$onExtended.push({ fn: fn, scope: scope }); return this; }, addStatics: function(members) { this.addMembers(members, true); return this; }, addInheritableStatics: function(members) { var inheritableStatics, hasInheritableStatics, prototype = this.prototype, name, member; inheritableStatics = prototype.$inheritableStatics; hasInheritableStatics = prototype.$hasInheritableStatics; if (!inheritableStatics) { inheritableStatics = prototype.$inheritableStatics = []; hasInheritableStatics = prototype.$hasInheritableStatics = {}; } var className = Ext.getClassName(this) + '.'; for (name in members) { if (members.hasOwnProperty(name)) { member = members[name]; if (typeof member == 'function') { member.name = className + name; } this[name] = member; if (!hasInheritableStatics[name]) { hasInheritableStatics[name] = true; inheritableStatics.push(name); } } } return this; }, addMembers: function(members, isStatic, privacy) { var me = this, cloneFunction = Ext.Function.clone, target = isStatic ? me : me.prototype, defaultConfig = !isStatic && target.defaultConfig, enumerables = Ext.enumerables, privates = members.privates, configs, i, ln, member, name, subPrivacy, privateStatics; var displayName = (me.$className || '') + '#'; if (privates) { delete members.privates; if (!isStatic) { privateStatics = privates.statics; delete privates.statics; } subPrivacy = privates.privacy || privacy || 'framework'; me.addMembers(privates, isStatic, subPrivacy); if (privateStatics) { me.addMembers(privateStatics, true, subPrivacy); } } for (name in members) { if (members.hasOwnProperty(name)) { member = members[name]; if (privacy === true) { privacy = 'framework'; } if (member && member.$nullFn && privacy !== member.$privacy) { Ext.Error.raise('Cannot use stock function for private method ' + (me.$className ? me.$className + '#' : '') + name); } if (typeof member === 'function' && !member.$isClass && !member.$nullFn) { if (member.$owner) { member = cloneFunction(member); } if (target.hasOwnProperty(name)) { member.$previous = target[name]; } member.$owner = me; member.$name = name; member.name = displayName + name; var existing = target[name]; if (privacy) { member.$privacy = privacy; if (existing && existing.$privacy && existing.$privacy !== privacy) { Ext.privacyViolation(me, existing, member, isStatic); } } else if (existing && existing.$privacy) { Ext.privacyViolation(me, existing, member, isStatic); } } else if (defaultConfig && (name in defaultConfig) && !target.config.hasOwnProperty(name)) { (configs || (configs = {}))[name] = member; continue; } target[name] = member; } } if (configs) { me.addConfig(configs); } if (enumerables) { for (i = 0 , ln = enumerables.length; i < ln; ++i) { if (members.hasOwnProperty(name = enumerables[i])) { member = members[name]; if (member && !member.$nullFn) { if (member.$owner) { member = cloneFunction(member); } member.$owner = me; member.$name = name; member.name = displayName + name; if (target.hasOwnProperty(name)) { member.$previous = target[name]; } } target[name] = member; } } } return this; }, addMember: function(name, member) { oneMember[name] = member; this.addMembers(oneMember); delete oneMember[name]; return this; }, borrow: function(fromClass, members) { Ext.classSystemMonitor && Ext.classSystemMonitor(this, 'Ext.Base#borrow', arguments); var prototype = fromClass.prototype, membersObj = {}, i, ln, name; members = Ext.Array.from(members); for (i = 0 , ln = members.length; i < ln; i++) { name = members[i]; membersObj[name] = prototype[name]; } return this.addMembers(membersObj); }, override: function(members) { var me = this, statics = members.statics, inheritableStatics = members.inheritableStatics, config = members.config, mixins = members.mixins, cachedConfig = members.cachedConfig; if (statics || inheritableStatics || config) { members = Ext.apply({}, members); } if (statics) { me.addMembers(statics, true); delete members.statics; } if (inheritableStatics) { me.addInheritableStatics(inheritableStatics); delete members.inheritableStatics; } if (config) { me.addConfig(config); delete members.config; } if (cachedConfig) { me.addCachedConfig(cachedConfig); delete members.cachedConfig; } delete members.mixins; me.addMembers(members); if (mixins) { me.mixin(mixins); } return me; }, callParent: function(args) { var method; return (method = this.callParent.caller) && (method.$previous || ((method = method.$owner ? method : method.caller) && method.$owner.superclass.self[method.$name])).apply(this, args || noArgs); }, callSuper: function(args) { var method; return (method = this.callSuper.caller) && ((method = method.$owner ? method : method.caller) && method.$owner.superclass.self[method.$name]).apply(this, args || noArgs); }, mixin: function(name, mixinClass) { var me = this, mixin, prototype, key, statics, i, ln, staticName, mixinValue, mixins; if (typeof name !== 'string') { mixins = name; if (mixins instanceof Array) { for (i = 0 , ln = mixins.length; i < ln; i++) { mixin = mixins[i]; me.mixin(mixin.prototype.mixinId || mixin.$className, mixin); } } else { for (var mixinName in mixins) { me.mixin(mixinName, mixins[mixinName]); } } return; } mixin = mixinClass.prototype; prototype = me.prototype; if (mixin.onClassMixedIn) { mixin.onClassMixedIn.call(mixinClass, me); } if (!prototype.hasOwnProperty('mixins')) { if ('mixins' in prototype) { prototype.mixins = Ext.Object.chain(prototype.mixins); } else { prototype.mixins = {}; } } for (key in mixin) { mixinValue = mixin[key]; if (key === 'mixins') { Ext.applyIf(prototype.mixins, mixinValue); } else if (!(key === 'mixinId' || key === 'config') && (prototype[key] === undefined)) { prototype[key] = mixinValue; } } statics = mixin.$inheritableStatics; if (statics) { for (i = 0 , ln = statics.length; i < ln; i++) { staticName = statics[i]; if (!me.hasOwnProperty(staticName)) { me[staticName] = mixinClass[staticName]; } } } if ('config' in mixin) { me.addConfig(mixin.config, mixinClass); } prototype.mixins[name] = mixin; if (mixin.afterClassMixedIn) { mixin.afterClassMixedIn.call(mixinClass, me); } return me; }, addConfig: function(config, mixinClass) { var cfg = this.$config || this.getConfigurator(); cfg.add(config, mixinClass); }, addCachedConfig: function(config, isMixin) { var cached = {}, key; for (key in config) { cached[key] = { cached: true, $value: config[key] }; } this.addConfig(cached, isMixin); }, getConfigurator: function() { return this.$config || new Ext.Configurator(this); }, getName: function() { return Ext.getClassName(this); }, createAlias: flexSetter(function(alias, origin) { aliasOneMember[alias] = function() { return this[origin].apply(this, arguments); }; this.override(aliasOneMember); delete aliasOneMember[alias]; }) }); for (baseStaticMember in Base) { if (Base.hasOwnProperty(baseStaticMember)) { baseStaticMembers.push(baseStaticMember); } } Base.$staticMembers = baseStaticMembers; Base.getConfigurator(); Base.addMembers({ $className: 'Ext.Base', isInstance: true, $configPrefixed: true, $configStrict: true, isConfiguring: false, isFirstInstance: false, statics: function() { var method = this.statics.caller, self = this.self; if (!method) { return self; } return method.$owner; }, callParent: function(args) { var method, superMethod = (method = this.callParent.caller) && (method.$previous || ((method = method.$owner ? method : method.caller) && method.$owner.superclass[method.$name])); if (!superMethod) { method = this.callParent.caller; var parentClass, methodName; if (!method.$owner) { if (!method.caller) { throw new Error("Attempting to call a protected method from the public scope, which is not allowed"); } method = method.caller; } parentClass = method.$owner.superclass; methodName = method.$name; if (!(methodName in parentClass)) { throw new Error("this.callParent() was called but there's no such method (" + methodName + ") found in the parent class (" + (Ext.getClassName(parentClass) || 'Object') + ")"); } } return superMethod.apply(this, args || noArgs); }, callSuper: function(args) { var method, superMethod = (method = this.callSuper.caller) && ((method = method.$owner ? method : method.caller) && method.$owner.superclass[method.$name]); if (!superMethod) { method = this.callSuper.caller; var parentClass, methodName; if (!method.$owner) { if (!method.caller) { throw new Error("Attempting to call a protected method from the public scope, which is not allowed"); } method = method.caller; } parentClass = method.$owner.superclass; methodName = method.$name; if (!(methodName in parentClass)) { throw new Error("this.callSuper() was called but there's no such method (" + methodName + ") found in the parent class (" + (Ext.getClassName(parentClass) || 'Object') + ")"); } } return superMethod.apply(this, args || noArgs); }, self: Base, constructor: function() { return this; }, getConfigurator: function() { return this.$config || this.self.getConfigurator(); }, initConfig: function(instanceConfig) { var me = this, cfg = me.getConfigurator(); me.initConfig = Ext.emptyFn; me.initialConfig = instanceConfig || {}; cfg.configure(me, instanceConfig); return me; }, beforeInitConfig: Ext.emptyFn, getConfig: getConfig, setConfig: function(name, value, options) { var me = this, config; if (name) { if (typeof name === 'string') { config = {}; config[name] = value; } else { config = name; } me.getConfigurator().reconfigure(me, config, options); } return me; }, getCurrentConfig: function() { var cfg = this.getConfigurator(); return cfg.getCurrentConfig(this); }, hasConfig: function(name) { return name in this.defaultConfig; }, getInitialConfig: function(name) { var config = this.config; if (!name) { return config; } return config[name]; }, $links: null, link: function(name, value) { var me = this, links = me.$links || (me.$links = {}); links[name] = true; me[name] = value; return value; }, unlink: function(names) { var me = this, i, ln, link, value; if (!Ext.isArray(names)) { Ext.Error.raise('Invalid argument - expected array of strings'); } for (i = 0 , ln = names.length; i < ln; i++) { link = names[i]; value = me[link]; if (value) { if (value.isInstance && !value.isDestroyed) { value.destroy(); } else if (value.parentNode && 'nodeType' in value) { value.parentNode.removeChild(value); } } me[link] = null; } return me; }, destroy: function() { var me = this, links = me.$links; me.destroy = Ext.emptyFn; me.isDestroyed = true; if (links) { me.$links = null; me.unlink(Ext.Object.getKeys(links)); } } }); BasePrototype.callOverridden = BasePrototype.callParent; Ext.privacyViolation = function(cls, existing, member, isStatic) { var name = member.$name, conflictCls = existing.$owner && existing.$owner.$className, s = isStatic ? 'static ' : '', msg = member.$privacy ? 'Private ' + s + member.$privacy + ' method "' + name + '"' : 'Public ' + s + 'method "' + name + '"'; if (cls.$className) { msg = cls.$className + ': ' + msg; } if (!existing.$privacy) { msg += conflictCls ? ' hides public method inherited from ' + conflictCls : ' hides inherited public method.'; } else { msg += conflictCls ? ' conflicts with private ' + existing.$privacy + ' method declared by ' + conflictCls : ' conflicts with inherited private ' + existing.$privacy + ' method.'; } var compat = Ext.getCompatVersion(); var ver = Ext.getVersion(); if (ver && compat && compat.lt(ver)) { Ext.log.error(msg); } else { Ext.Error.raise(msg); } }; return Base; }(Ext.Function.flexSetter)); (function(Cache, prototype) { (Ext.util || (Ext.util = {})).Cache = Cache = function(config) { var me = this, head; if (config) { Ext.apply(me, config); } me.head = head = { id: (me.seed = 0), key: null, value: null }; me.map = {}; head.next = head.prev = head; }; Cache.prototype = prototype = { maxSize: 100, count: 0, clear: function() { var me = this, head = me.head, entry = head.next; head.next = head.prev = head; if (!me.evict.$nullFn) { for (; entry !== head; entry = entry.next) { me.evict(entry.key, entry.value); } } me.count = 0; }, each: function(fn, scope) { scope = scope || this; for (var head = this.head, ent = head.next; ent !== head; ent = ent.next) { if (fn.call(scope, ent.key, ent.value)) { break; } } }, get: function(key) { var me = this, head = me.head, map = me.map, entry = map[key]; if (entry) { if (entry.prev !== head) { me.unlinkEntry(entry); me.linkEntry(entry); } } else { map[key] = entry = { id: ++me.seed, key: key, value: me.miss.apply(me, arguments) }; me.linkEntry(entry); ++me.count; while (me.count > me.maxSize) { me.unlinkEntry(head.prev, true); --me.count; } } return entry.value; }, evict: Ext.emptyFn, linkEntry: function(entry) { var head = this.head, first = head.next; entry.next = first; entry.prev = head; head.next = entry; first.prev = entry; }, unlinkEntry: function(entry, evicted) { var next = entry.next, prev = entry.prev; prev.next = next; next.prev = prev; if (evicted) { this.evict(entry.key, entry.value); } } }; prototype.destroy = prototype.clear; }()); (function() { var ExtClass, Base = Ext.Base, baseStaticMembers = Base.$staticMembers, ruleKeySortFn = function(a, b) { return (a.length - b.length) || ((a < b) ? -1 : ((a > b) ? 1 : 0)); }; function makeCtor(className) { function constructor() { return this.constructor.apply(this, arguments) || null; } if (className) { constructor.name = className; } return constructor; } Ext.Class = ExtClass = function(Class, data, onCreated) { if (typeof Class != 'function') { onCreated = data; data = Class; Class = null; } if (!data) { data = {}; } Class = ExtClass.create(Class, data); ExtClass.process(Class, data, onCreated); return Class; }; Ext.apply(ExtClass, { makeCtor: makeCtor, onBeforeCreated: function(Class, data, hooks) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, '>> Ext.Class#onBeforeCreated', arguments); Class.addMembers(data); hooks.onCreated.call(Class, Class); Ext.classSystemMonitor && Ext.classSystemMonitor(Class, '<< Ext.Class#onBeforeCreated', arguments); }, create: function(Class, data) { var i = baseStaticMembers.length, name; if (!Class) { Class = makeCtor(data.$className); } while (i--) { name = baseStaticMembers[i]; Class[name] = Base[name]; } return Class; }, process: function(Class, data, onCreated) { var preprocessorStack = data.preprocessors || ExtClass.defaultPreprocessors, registeredPreprocessors = this.preprocessors, hooks = { onBeforeCreated: this.onBeforeCreated }, preprocessors = [], preprocessor, preprocessorsProperties, i, ln, j, subLn, preprocessorProperty; delete data.preprocessors; Class._classHooks = hooks; for (i = 0 , ln = preprocessorStack.length; i < ln; i++) { preprocessor = preprocessorStack[i]; if (typeof preprocessor == 'string') { preprocessor = registeredPreprocessors[preprocessor]; preprocessorsProperties = preprocessor.properties; if (preprocessorsProperties === true) { preprocessors.push(preprocessor.fn); } else if (preprocessorsProperties) { for (j = 0 , subLn = preprocessorsProperties.length; j < subLn; j++) { preprocessorProperty = preprocessorsProperties[j]; if (data.hasOwnProperty(preprocessorProperty)) { preprocessors.push(preprocessor.fn); break; } } } } else { preprocessors.push(preprocessor); } } hooks.onCreated = onCreated ? onCreated : Ext.emptyFn; hooks.preprocessors = preprocessors; this.doProcess(Class, data, hooks); }, doProcess: function(Class, data, hooks) { var me = this, preprocessors = hooks.preprocessors, preprocessor = preprocessors.shift(), doProcess = me.doProcess; for (; preprocessor; preprocessor = preprocessors.shift()) { if (preprocessor.call(me, Class, data, hooks, doProcess) === false) { return; } } hooks.onBeforeCreated.apply(me, arguments); }, preprocessors: {}, registerPreprocessor: function(name, fn, properties, position, relativeTo) { if (!position) { position = 'last'; } if (!properties) { properties = [ name ]; } this.preprocessors[name] = { name: name, properties: properties || false, fn: fn }; this.setDefaultPreprocessorPosition(name, position, relativeTo); return this; }, getPreprocessor: function(name) { return this.preprocessors[name]; }, getPreprocessors: function() { return this.preprocessors; }, defaultPreprocessors: [], getDefaultPreprocessors: function() { return this.defaultPreprocessors; }, setDefaultPreprocessors: function(preprocessors) { this.defaultPreprocessors = Ext.Array.from(preprocessors); return this; }, setDefaultPreprocessorPosition: function(name, offset, relativeName) { var defaultPreprocessors = this.defaultPreprocessors, index; if (typeof offset == 'string') { if (offset === 'first') { defaultPreprocessors.unshift(name); return this; } else if (offset === 'last') { defaultPreprocessors.push(name); return this; } offset = (offset === 'after') ? 1 : -1; } index = Ext.Array.indexOf(defaultPreprocessors, relativeName); if (index !== -1) { Ext.Array.splice(defaultPreprocessors, Math.max(0, index + offset), 0, name); } return this; } }); ExtClass.registerPreprocessor('extend', function(Class, data, hooks) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#extendPreProcessor', arguments); var Base = Ext.Base, basePrototype = Base.prototype, extend = data.extend, Parent, parentPrototype, i; delete data.extend; if (extend && extend !== Object) { Parent = extend; } else { Parent = Base; } parentPrototype = Parent.prototype; if (!Parent.$isClass) { for (i in basePrototype) { if (!parentPrototype[i]) { parentPrototype[i] = basePrototype[i]; } } } Class.extend(Parent); Class.triggerExtended.apply(Class, arguments); if (data.onClassExtended) { Class.onExtended(data.onClassExtended, Class); delete data.onClassExtended; } }, true); ExtClass.registerPreprocessor('privates', function(Class, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#privatePreprocessor', arguments); var privates = data.privates, statics = privates.statics, privacy = privates.privacy || true; delete data.privates; delete privates.statics; Class.addMembers(privates, false, privacy); if (statics) { Class.addMembers(statics, true, privacy); } }); ExtClass.registerPreprocessor('statics', function(Class, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#staticsPreprocessor', arguments); Class.addStatics(data.statics); delete data.statics; }); ExtClass.registerPreprocessor('inheritableStatics', function(Class, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#inheritableStaticsPreprocessor', arguments); Class.addInheritableStatics(data.inheritableStatics); delete data.inheritableStatics; }); Ext.createRuleFn = function(code) { return new Function('$c', 'with($c) { return (' + code + '); }'); }; Ext.expressionCache = new Ext.util.Cache({ miss: Ext.createRuleFn }); Ext.ruleKeySortFn = ruleKeySortFn; Ext.getPlatformConfigKeys = function(platformConfig) { var ret = [], platform, rule; for (platform in platformConfig) { rule = Ext.expressionCache.get(platform); if (rule(Ext.platformTags)) { ret.push(platform); } } ret.sort(ruleKeySortFn); return ret; }; ExtClass.registerPreprocessor('platformConfig', function(Class, data, hooks) { var platformConfigs = data.platformConfig, config = data.config, added, classConfigs, configs, configurator, hoisted, keys, name, value, platform, theme, platformConfig, i, ln, j, ln2, themeName; delete data.platformConfig; if (platformConfigs instanceof Array) { config = config || {}; themeName = (Ext.theme || (Ext.theme = { name: 'Default' })).name; for (i = 0 , ln = platformConfigs.length; i < ln; i++) { platformConfig = platformConfigs[i]; platform = platformConfig.platform; delete platformConfig.platform; theme = [].concat(platformConfig.theme); ln2 = theme.length; delete platformConfig.theme; if (platform && Ext.filterPlatform(platform)) { Ext.merge(config, platformConfig); } if (ln2) { for (j = 0; j < ln2; j++) { if (themeName === theme[j]) { Ext.merge(config, platformConfig); } } } } } else { configurator = Class.getConfigurator(); classConfigs = configurator.configs; keys = Ext.getPlatformConfigKeys(platformConfigs); for (i = 0 , ln = keys.length; i < ln; ++i) { configs = platformConfigs[keys[i]]; hoisted = added = null; for (name in configs) { value = configs[name]; if (config && name in config) { (added || (added = {}))[name] = value; (hoisted || (hoisted = {}))[name] = config[name]; delete config[name]; } else if (name in classConfigs) { (added || (added = {}))[name] = value; } else { data[name] = value; } } if (hoisted) { configurator.add(hoisted); } if (added) { configurator.add(added); } } } }); ExtClass.registerPreprocessor('config', function(Class, data) { if (data.hasOwnProperty('$configPrefixed')) { Class.prototype.$configPrefixed = data.$configPrefixed; } Class.addConfig(data.config); delete data.config; }); ExtClass.registerPreprocessor('cachedConfig', function(Class, data) { if (data.hasOwnProperty('$configPrefixed')) { Class.prototype.$configPrefixed = data.$configPrefixed; } Class.addCachedConfig(data.cachedConfig); delete data.cachedConfig; }); ExtClass.registerPreprocessor('mixins', function(Class, data, hooks) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#mixinsPreprocessor', arguments); var mixins = data.mixins, onCreated = hooks.onCreated; delete data.mixins; hooks.onCreated = function() { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#mixinsPreprocessor#beforeCreated', arguments); hooks.onCreated = onCreated; Class.mixin(mixins); return hooks.onCreated.apply(this, arguments); }; }); Ext.extend = function(Class, Parent, members) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#extend-backwards-compatible', arguments); if (arguments.length === 2 && Ext.isObject(Parent)) { members = Parent; Parent = Class; Class = null; } var cls; if (!Parent) { throw new Error("[Ext.extend] Attempting to extend from a class which has not been loaded on the page."); } members.extend = Parent; members.preprocessors = [ 'extend', 'statics', 'inheritableStatics', 'mixins', 'platformConfig', 'config' ]; if (Class) { cls = new ExtClass(Class, members); cls.prototype.constructor = Class; } else { cls = new ExtClass(members); } cls.prototype.override = function(o) { for (var m in o) { if (o.hasOwnProperty(m)) { this[m] = o[m]; } } }; return cls; }; }()); Ext.Inventory = function() { var me = this; me.names = []; me.paths = {}; me.alternateToName = {}; me.aliasToName = {}; me.nameToAliases = {}; me.nameToAlternates = {}; }; Ext.Inventory.prototype = { _array1: [ 0 ], prefixes: null, dotRe: /\./g, wildcardRe: /\*/g, addAlias: function(className, alias) { return this.addMapping(className, alias, this.aliasToName, this.nameToAliases); }, addAlternate: function(className, alternate) { return this.addMapping(className, alternate, this.alternateToName, this.nameToAlternates); }, addMapping: function(className, alternate, toName, nameTo) { var name = className.$className || className, mappings = name, array = this._array1, a, aliases, cls, i, length, nameMapping; if (Ext.isString(name)) { mappings = {}; mappings[name] = alternate; } for (cls in mappings) { aliases = mappings[cls]; if (Ext.isString(aliases)) { array[0] = aliases; aliases = array; } length = aliases.length; nameMapping = nameTo[cls] || (nameTo[cls] = []); for (i = 0; i < length; ++i) { if (!(a = aliases[i])) { continue; } if (toName[a] !== cls) { if (toName[a]) { Ext.log.warn("Overriding existing mapping: '" + a + "' From '" + toName[a] + "' to '" + cls + "'. Is this intentional?"); } toName[a] = cls; nameMapping.push(a); } } } }, getAliasesByName: function(name) { return this.nameToAliases[name] || null; }, getAlternatesByName: function(name) { return this.nameToAlternates[name] || null; }, getNameByAlias: function(alias) { return this.aliasToName[alias] || ''; }, getNameByAlternate: function(alternate) { return this.alternateToName[alternate] || ''; }, getNamesByExpression: function(expression, exclude, accumulate) { var me = this, aliasToName = me.aliasToName, alternateToName = me.alternateToName, nameToAliases = me.nameToAliases, nameToAlternates = me.nameToAlternates, map = accumulate ? exclude : {}, names = [], expressions = Ext.isString(expression) ? [ expression ] : expression, length = expressions.length, wildcardRe = me.wildcardRe, expr, i, list, match, n, name, regex; for (i = 0; i < length; ++i) { if ((expr = expressions[i]).indexOf('*') < 0) { if (!(name = aliasToName[expr])) { if (!(name = alternateToName[expr])) { name = expr; } } if (!(name in map) && !(exclude && (name in exclude))) { map[name] = 1; names.push(name); } } else { regex = new RegExp('^' + expr.replace(wildcardRe, '(.*?)') + '$'); for (name in nameToAliases) { if (!(name in map) && !(exclude && (name in exclude))) { if (!(match = regex.test(name))) { n = (list = nameToAliases[name]).length; while (!match && n-- > 0) { match = regex.test(list[n]); } list = nameToAlternates[name]; if (list && !match) { n = list.length; while (!match && n-- > 0) { match = regex.test(list[n]); } } } if (match) { map[name] = 1; names.push(name); } } } } } return names; }, getPath: function(className) { var me = this, paths = me.paths, ret = '', prefix; if (className in paths) { ret = paths[className]; } else { prefix = me.getPrefix(className); if (prefix) { className = className.substring(prefix.length + 1); ret = paths[prefix]; if (ret) { ret += '/'; } } ret += className.replace(me.dotRe, '/') + '.js'; } return ret; }, getPrefix: function(className) { if (className in this.paths) { return className; } var prefixes = this.getPrefixes(), i = prefixes.length, length, prefix; while (i-- > 0) { length = (prefix = prefixes[i]).length; if (length < className.length && className.charAt(length) === '.' && prefix === className.substring(0, length)) { return prefix; } } return ''; }, getPrefixes: function() { var me = this, prefixes = me.prefixes; if (!prefixes) { me.prefixes = prefixes = me.names.slice(0); prefixes.sort(me._compareNames); } return prefixes; }, removeName: function(name) { var me = this, aliasToName = me.aliasToName, alternateToName = me.alternateToName, nameToAliases = me.nameToAliases, nameToAlternates = me.nameToAlternates, aliases = nameToAliases[name], alternates = nameToAlternates[name], i, a; delete nameToAliases[name]; delete nameToAlternates[name]; if (aliases) { for (i = aliases.length; i--; ) { if (name === (a = aliases[i])) { delete aliasToName[a]; } } } if (alternates) { for (i = alternates.length; i--; ) { if (name === (a = alternates[i])) { delete alternateToName[a]; } } } }, resolveName: function(name) { var me = this, trueName; if (!(name in me.nameToAliases)) { if (!(trueName = me.aliasToName[name])) { trueName = me.alternateToName[name]; } } return trueName || name; }, select: function(receiver, scope) { var me = this, excludes = {}, ret = { excludes: excludes, exclude: function() { me.getNamesByExpression(arguments, excludes, true); return this; } }, name; for (name in receiver) { ret[name] = me.selectMethod(excludes, receiver[name], scope || receiver); } return ret; }, selectMethod: function(excludes, fn, scope) { var me = this; return function(include) { var args = Ext.Array.slice(arguments, 1); args.unshift(me.getNamesByExpression(include, excludes)); return fn.apply(scope, args); }; }, setPath: Ext.Function.flexSetter(function(name, path) { var me = this; me.paths[name] = path; me.names.push(name); me.prefixes = null; return me; }), _compareNames: function(lhs, rhs) { var cmp = lhs.length - rhs.length; if (!cmp) { cmp = (lhs < rhs) ? -1 : 1; } return cmp; } }; Ext.ClassManager = (function(Class, alias, arraySlice, arrayFrom, global) { var makeCtor = Ext.Class.makeCtor, Manager = Ext.apply(new Ext.Inventory(), { classes: {}, classState: {}, existCache: {}, namespaceRewrites: [ { from: 'Ext.', to: Ext } ], enableNamespaceParseCache: true, namespaceParseCache: {}, instantiators: [], isCreated: function(className) { var i, ln, part, root, parts; if (typeof className !== 'string' || className.length < 1) { throw new Error("[Ext.ClassManager] Invalid classname, must be a string and must not be empty"); } if (Manager.classes[className] || Manager.existCache[className]) { return true; } root = global; parts = Manager.parseNamespace(className); for (i = 0 , ln = parts.length; i < ln; i++) { part = parts[i]; if (typeof part !== 'string') { root = part; } else { if (!root || !root[part]) { return false; } root = root[part]; } } Manager.triggerCreated(className); return true; }, createdListeners: [], nameCreatedListeners: {}, existsListeners: [], nameExistsListeners: {}, overrideMap: {}, triggerCreated: function(className, state) { Manager.existCache[className] = state || 1; Manager.classState[className] += 40; Manager.notify(className, Manager.createdListeners, Manager.nameCreatedListeners); }, onCreated: function(fn, scope, className) { Manager.addListener(fn, scope, className, Manager.createdListeners, Manager.nameCreatedListeners); }, notify: function(className, listeners, nameListeners) { var alternateNames = Manager.getAlternatesByName(className), names = [ className ], i, ln, j, subLn, listener, name; for (i = 0 , ln = listeners.length; i < ln; i++) { listener = listeners[i]; listener.fn.call(listener.scope, className); } while (names) { for (i = 0 , ln = names.length; i < ln; i++) { name = names[i]; listeners = nameListeners[name]; if (listeners) { for (j = 0 , subLn = listeners.length; j < subLn; j++) { listener = listeners[j]; listener.fn.call(listener.scope, name); } delete nameListeners[name]; } } names = alternateNames; alternateNames = null; } }, addListener: function(fn, scope, className, listeners, nameListeners) { if (Ext.isArray(className)) { fn = Ext.Function.createBarrier(className.length, fn, scope); for (i = 0; i < className.length; i++) { this.addListener(fn, null, className[i], listeners, nameListeners); } return; } var i, listener = { fn: fn, scope: scope }; if (className) { if (this.isCreated(className)) { fn.call(scope, className); return; } if (!nameListeners[className]) { nameListeners[className] = []; } nameListeners[className].push(listener); } else { listeners.push(listener); } }, parseNamespace: function(namespace) { if (typeof namespace !== 'string') { throw new Error("[Ext.ClassManager] Invalid namespace, must be a string"); } var cache = this.namespaceParseCache, parts, rewrites, root, name, rewrite, from, to, i, ln; if (this.enableNamespaceParseCache) { if (cache.hasOwnProperty(namespace)) { return cache[namespace]; } } parts = []; rewrites = this.namespaceRewrites; root = global; name = namespace; for (i = 0 , ln = rewrites.length; i < ln; i++) { rewrite = rewrites[i]; from = rewrite.from; to = rewrite.to; if (name === from || name.substring(0, from.length) === from) { name = name.substring(from.length); if (typeof to !== 'string') { root = to; } else { parts = parts.concat(to.split('.')); } break; } } parts.push(root); parts = parts.concat(name.split('.')); if (this.enableNamespaceParseCache) { cache[namespace] = parts; } return parts; }, setNamespace: function(name, value) { var root = global, parts = this.parseNamespace(name), ln = parts.length - 1, leaf = parts[ln], i, part; for (i = 0; i < ln; i++) { part = parts[i]; if (typeof part !== 'string') { root = part; } else { if (!root[part]) { root[part] = {}; } root = root[part]; } } root[leaf] = value; return root[leaf]; }, createNamespaces: function() { var root = global, parts, part, i, j, ln, subLn; for (i = 0 , ln = arguments.length; i < ln; i++) { parts = this.parseNamespace(arguments[i]); for (j = 0 , subLn = parts.length; j < subLn; j++) { part = parts[j]; if (typeof part !== 'string') { root = part; } else { if (!root[part]) { root[part] = {}; } root = root[part]; } } } return root; }, set: function(name, value) { var me = this, targetName = me.getName(value); me.classes[name] = me.setNamespace(name, value); if (targetName && targetName !== name) { me.addAlternate(targetName, name); } return this; }, get: function(name) { var classes = this.classes, root, parts, part, i, ln; if (classes[name]) { return classes[name]; } root = global; parts = this.parseNamespace(name); for (i = 0 , ln = parts.length; i < ln; i++) { part = parts[i]; if (typeof part !== 'string') { root = part; } else { if (!root || !root[part]) { return null; } root = root[part]; } } return root; }, addNameAliasMappings: function(aliases) { this.addAlias(aliases); }, addNameAlternateMappings: function(alternates) { this.addAlternate(alternates); }, getByAlias: function(alias) { return this.get(this.getNameByAlias(alias)); }, getName: function(object) { return object && object.$className || ''; }, getClass: function(object) { return object && object.self || null; }, create: function(className, data, createdFn) { if (className != null && typeof className !== 'string') { throw new Error("[Ext.define] Invalid class name '" + className + "' specified, must be a non-empty string"); } var ctor = makeCtor(className); if (typeof data === 'function') { data = data(ctor); } if (className) { if (Manager.classes[className]) { Ext.log.warn("[Ext.define] Duplicate class name '" + className + "' specified, must be a non-empty string"); } ctor.name = className; } data.$className = className; return new Class(ctor, data, function() { var postprocessorStack = data.postprocessors || Manager.defaultPostprocessors, registeredPostprocessors = Manager.postprocessors, postprocessors = [], postprocessor, i, ln, j, subLn, postprocessorProperties, postprocessorProperty; delete data.postprocessors; for (i = 0 , ln = postprocessorStack.length; i < ln; i++) { postprocessor = postprocessorStack[i]; if (typeof postprocessor === 'string') { postprocessor = registeredPostprocessors[postprocessor]; postprocessorProperties = postprocessor.properties; if (postprocessorProperties === true) { postprocessors.push(postprocessor.fn); } else if (postprocessorProperties) { for (j = 0 , subLn = postprocessorProperties.length; j < subLn; j++) { postprocessorProperty = postprocessorProperties[j]; if (data.hasOwnProperty(postprocessorProperty)) { postprocessors.push(postprocessor.fn); break; } } } } else { postprocessors.push(postprocessor); } } data.postprocessors = postprocessors; data.createdFn = createdFn; Manager.processCreate(className, this, data); }); }, processCreate: function(className, cls, clsData) { var me = this, postprocessor = clsData.postprocessors.shift(), createdFn = clsData.createdFn; if (!postprocessor) { Ext.classSystemMonitor && Ext.classSystemMonitor(className, 'Ext.ClassManager#classCreated', arguments); if (className) { me.set(className, cls); } delete cls._classHooks; if (createdFn) { createdFn.call(cls, cls); } if (className) { me.triggerCreated(className); } return; } if (postprocessor.call(me, className, cls, clsData, me.processCreate) !== false) { me.processCreate(className, cls, clsData); } }, createOverride: function(className, data, createdFn) { var me = this, overriddenClassName = data.override, requires = data.requires, uses = data.uses, mixins = data.mixins, mixinsIsArray, compat = data.compatibility, depedenciesLoaded, classReady = function() { var cls, dependencies, i, key, temp; if (!depedenciesLoaded) { dependencies = requires ? requires.slice(0) : []; if (mixins) { if (!(mixinsIsArray = mixins instanceof Array)) { for (key in mixins) { if (Ext.isString(cls = mixins[key])) { dependencies.push(cls); } } } else { for (i = 0 , temp = mixins.length; i < temp; ++i) { if (Ext.isString(cls = mixins[i])) { dependencies.push(cls); } } } } depedenciesLoaded = true; if (dependencies.length) { Ext.require(dependencies, classReady); return; } } if (mixinsIsArray) { for (i = 0 , temp = mixins.length; i < temp; ++i) { if (Ext.isString(cls = mixins[i])) { mixins[i] = Ext.ClassManager.get(cls); } } } else if (mixins) { for (key in mixins) { if (Ext.isString(cls = mixins[key])) { mixins[key] = Ext.ClassManager.get(cls); } } } cls = me.get(overriddenClassName); delete data.override; delete data.compatibility; delete data.requires; delete data.uses; Ext.override(cls, data); Ext.Loader.history.push(className); if (uses) { Ext['Loader'].addUsedClasses(uses); } if (createdFn) { createdFn.call(cls, cls); } }; Manager.overrideMap[className] = true; if (!compat || Ext.checkVersion(compat)) { me.onCreated(classReady, me, overriddenClassName); } me.triggerCreated(className, 2); return me; }, instantiateByAlias: function() { var alias = arguments[0], args = arraySlice.call(arguments), className = this.getNameByAlias(alias); if (!className) { throw new Error("[Ext.createByAlias] Unrecognized alias: " + alias); } args[0] = className; return Ext.create.apply(Ext, args); }, instantiate: function() { Ext.log.warn('Ext.ClassManager.instantiate() is deprecated. Use Ext.create() instead.'); return Ext.create.apply(Ext, arguments); }, dynInstantiate: function(name, args) { args = arrayFrom(args, true); args.unshift(name); return Ext.create.apply(Ext, args); }, getInstantiator: function(length) { var instantiators = this.instantiators, instantiator, i, args; instantiator = instantiators[length]; if (!instantiator) { i = length; args = []; for (i = 0; i < length; i++) { args.push('a[' + i + ']'); } instantiator = instantiators[length] = new Function('c', 'a', 'return new c(' + args.join(',') + ')'); instantiator.name = "Ext.create" + length; } return instantiator; }, postprocessors: {}, defaultPostprocessors: [], registerPostprocessor: function(name, fn, properties, position, relativeTo) { if (!position) { position = 'last'; } if (!properties) { properties = [ name ]; } this.postprocessors[name] = { name: name, properties: properties || false, fn: fn }; this.setDefaultPostprocessorPosition(name, position, relativeTo); return this; }, setDefaultPostprocessors: function(postprocessors) { this.defaultPostprocessors = arrayFrom(postprocessors); return this; }, setDefaultPostprocessorPosition: function(name, offset, relativeName) { var defaultPostprocessors = this.defaultPostprocessors, index; if (typeof offset === 'string') { if (offset === 'first') { defaultPostprocessors.unshift(name); return this; } else if (offset === 'last') { defaultPostprocessors.push(name); return this; } offset = (offset === 'after') ? 1 : -1; } index = Ext.Array.indexOf(defaultPostprocessors, relativeName); if (index !== -1) { Ext.Array.splice(defaultPostprocessors, Math.max(0, index + offset), 0, name); } return this; } }); Manager.registerPostprocessor('alias', function(name, cls, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(name, 'Ext.ClassManager#aliasPostProcessor', arguments); var aliases = Ext.Array.from(data.alias), i, ln; for (i = 0 , ln = aliases.length; i < ln; i++) { alias = aliases[i]; this.addAlias(cls, alias); } }, [ 'xtype', 'alias' ]); Manager.registerPostprocessor('singleton', function(name, cls, data, fn) { Ext.classSystemMonitor && Ext.classSystemMonitor(name, 'Ext.ClassManager#singletonPostProcessor', arguments); if (data.singleton) { fn.call(this, name, new cls(), data); } else { return true; } return false; }); Manager.registerPostprocessor('alternateClassName', function(name, cls, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(name, 'Ext.ClassManager#alternateClassNamePostprocessor', arguments); var alternates = data.alternateClassName, i, ln, alternate; if (!(alternates instanceof Array)) { alternates = [ alternates ]; } for (i = 0 , ln = alternates.length; i < ln; i++) { alternate = alternates[i]; if (typeof alternate !== 'string') { throw new Error("[Ext.define] Invalid alternate of: '" + alternate + "' for class: '" + name + "'; must be a valid string"); } this.set(alternate, cls); } }); Manager.registerPostprocessor('debugHooks', function(name, Class, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#debugHooks', arguments); if (Ext.isDebugEnabled(Class.$className, data.debugHooks.$enabled)) { delete data.debugHooks.$enabled; Ext.override(Class, data.debugHooks); } var target = Class.isInstance ? Class.self : Class; delete target.prototype.debugHooks; }); Manager.registerPostprocessor('deprecated', function(name, Class, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(Class, 'Ext.Class#deprecated', arguments); var target = Class.isInstance ? Class.self : Class; target.addDeprecations(data.deprecated); delete target.prototype.deprecated; }); Ext.apply(Ext, { create: function() { var name = arguments[0], nameType = typeof name, args = arraySlice.call(arguments, 1), cls; if (nameType === 'function') { cls = name; } else { if (nameType !== 'string' && args.length === 0) { args = [ name ]; if (!(name = name.xclass)) { name = args[0].xtype; if (name) { name = 'widget.' + name; } } } if (typeof name !== 'string' || name.length < 1) { throw new Error("[Ext.create] Invalid class name or alias '" + name + "' specified, must be a non-empty string"); } name = Manager.resolveName(name); cls = Manager.get(name); } if (!cls) { Ext.log.warn("[Ext.Loader] Synchronously loading '" + name + "'; consider adding " + "Ext.require('" + name + "') above Ext.onReady"); Ext.syncRequire(name); cls = Manager.get(name); } if (!cls) { throw new Error("[Ext.create] Unrecognized class name / alias: " + name); } if (typeof cls !== 'function') { throw new Error("[Ext.create] Singleton '" + name + "' cannot be instantiated."); } return Manager.getInstantiator(args.length)(cls, args); }, widget: function(name, config) { var xtype = name, alias, className, T; if (typeof xtype !== 'string') { config = name; xtype = config.xtype; className = config.xclass; } else { config = config || {}; } if (config.isComponent) { return config; } if (!className) { alias = 'widget.' + xtype; className = Manager.getNameByAlias(alias); } if (className) { T = Manager.get(className); } if (!T) { return Ext.create(className || alias, config); } return new T(config); }, createByAlias: alias(Manager, 'instantiateByAlias'), define: function(className, data, createdFn) { Ext.classSystemMonitor && Ext.classSystemMonitor(className, 'ClassManager#define', arguments); if (data.override) { Manager.classState[className] = 20; return Manager.createOverride.apply(Manager, arguments); } Manager.classState[className] = 10; return Manager.create.apply(Manager, arguments); }, undefine: function(className) { Ext.classSystemMonitor && Ext.classSystemMonitor(className, 'Ext.ClassManager#undefine', arguments); var classes = Manager.classes, parts, partCount, namespace, i; delete Manager.namespaceParseCache[className]; delete classes[className]; delete Manager.existCache[className]; delete Manager.classState[className]; Manager.removeName(className); parts = Manager.parseNamespace(className); partCount = parts.length - 1; namespace = parts[0]; for (i = 1; i < partCount; i++) { namespace = namespace[parts[i]]; if (!namespace) { return; } } try { delete namespace[parts[partCount]]; } catch (e) { namespace[parts[partCount]] = undefined; } }, getClassName: alias(Manager, 'getName'), getDisplayName: function(object) { if (object) { if (object.displayName) { return object.displayName; } if (object.$name && object.$class) { return Ext.getClassName(object.$class) + '#' + object.$name; } if (object.$className) { return object.$className; } } return 'Anonymous'; }, getClass: alias(Manager, 'getClass'), namespace: alias(Manager, 'createNamespaces') }); Ext.createWidget = Ext.widget; Ext.ns = Ext.namespace; Class.registerPreprocessor('className', function(cls, data) { if ('$className' in data) { cls.$className = data.$className; cls.displayName = cls.$className; } Ext.classSystemMonitor && Ext.classSystemMonitor(cls, 'Ext.ClassManager#classNamePreprocessor', arguments); }, true, 'first'); Class.registerPreprocessor('alias', function(cls, data) { Ext.classSystemMonitor && Ext.classSystemMonitor(cls, 'Ext.ClassManager#aliasPreprocessor', arguments); var prototype = cls.prototype, xtypes = arrayFrom(data.xtype), aliases = arrayFrom(data.alias), widgetPrefix = 'widget.', widgetPrefixLength = widgetPrefix.length, xtypesChain = Array.prototype.slice.call(prototype.xtypesChain || []), xtypesMap = Ext.merge({}, prototype.xtypesMap || {}), i, ln, alias, xtype; for (i = 0 , ln = aliases.length; i < ln; i++) { alias = aliases[i]; if (typeof alias !== 'string' || alias.length < 1) { throw new Error("[Ext.define] Invalid alias of: '" + alias + "' for class: '" + name + "'; must be a valid string"); } if (alias.substring(0, widgetPrefixLength) === widgetPrefix) { xtype = alias.substring(widgetPrefixLength); Ext.Array.include(xtypes, xtype); } } cls.xtype = data.xtype = xtypes[0]; data.xtypes = xtypes; for (i = 0 , ln = xtypes.length; i < ln; i++) { xtype = xtypes[i]; if (!xtypesMap[xtype]) { xtypesMap[xtype] = true; xtypesChain.push(xtype); } } data.xtypesChain = xtypesChain; data.xtypesMap = xtypesMap; Ext.Function.interceptAfter(data, 'onClassCreated', function() { Ext.classSystemMonitor && Ext.classSystemMonitor(cls, 'Ext.ClassManager#aliasPreprocessor#afterClassCreated', arguments); var mixins = prototype.mixins, key, mixin; for (key in mixins) { if (mixins.hasOwnProperty(key)) { mixin = mixins[key]; xtypes = mixin.xtypes; if (xtypes) { for (i = 0 , ln = xtypes.length; i < ln; i++) { xtype = xtypes[i]; if (!xtypesMap[xtype]) { xtypesMap[xtype] = true; xtypesChain.push(xtype); } } } } } }); for (i = 0 , ln = xtypes.length; i < ln; i++) { xtype = xtypes[i]; if (typeof xtype !== 'string' || xtype.length < 1) { throw new Error("[Ext.define] Invalid xtype of: '" + xtype + "' for class: '" + name + "'; must be a valid non-empty string"); } Ext.Array.include(aliases, widgetPrefix + xtype); } data.alias = aliases; }, [ 'xtype', 'alias' ]); if (Ext.manifest) { var manifest = Ext.manifest, classes = manifest.classes, paths = manifest.paths, aliases = {}, alternates = {}, className, obj, name, path, baseUrl; if (paths) { if (manifest.bootRelative) { baseUrl = Ext.Boot.baseUrl; for (path in paths) { if (paths.hasOwnProperty(path)) { paths[path] = baseUrl + paths[path]; } } } Manager.setPath(paths); } if (classes) { for (className in classes) { alternates[className] = []; aliases[className] = []; obj = classes[className]; if (obj.alias) { aliases[className] = obj.alias; } if (obj.alternates) { alternates[className] = obj.alternates; } } } Manager.addAlias(aliases); Manager.addAlternate(alternates); } return Manager; }(Ext.Class, Ext.Function.alias, Array.prototype.slice, Ext.Array.from, Ext.global)); (Ext.env || (Ext.env = {})).Browser = function(userAgent, publish) { var me = this, browserPrefixes = me.browserPrefixes, enginePrefixes = me.enginePrefixes, browserMatch = userAgent.match(new RegExp('((?:' + Ext.Object.getValues(browserPrefixes).join(')|(?:') + '))([\\w\\._]+)')), engineMatch = userAgent.match(new RegExp('((?:' + Ext.Object.getValues(enginePrefixes).join(')|(?:') + '))([\\w\\._]+)')), browserNames = me.browserNames, browserName = browserNames.other, engineNames = me.engineNames, engineName = engineNames.other, browserVersion = '', engineVersion = '', majorVer = '', isWebView = false, i, prefix, mode, name, maxIEVersion; me.userAgent = userAgent; if (browserMatch) { browserName = browserNames[Ext.Object.getKey(browserPrefixes, browserMatch[1])]; if (browserName === 'Safari' && /^Opera/.test(userAgent)) { browserName = 'Opera'; } browserVersion = new Ext.Version(browserMatch[2]); } if (engineMatch) { engineName = engineNames[Ext.Object.getKey(enginePrefixes, engineMatch[1])]; engineVersion = new Ext.Version(engineMatch[2]); } if (engineName === 'Trident' && browserName !== 'IE') { browserName = 'IE'; var version = userAgent.match(/.*rv:(\d+.\d+)/); if (version && version.length) { version = version[1]; browserVersion = new Ext.Version(version); } } if (userAgent.match(/FB/) && browserName === "Other") { browserName = browserNames.safari; engineName = engineNames.webkit; } if (userAgent.match(/Android.*Chrome/g)) { browserName = 'ChromeMobile'; } if (userAgent.match(/OPR/)) { browserName = 'Opera'; browserMatch = userAgent.match(/OPR\/(\d+.\d+)/); browserVersion = new Ext.Version(browserMatch[1]); } Ext.apply(this, { engineName: engineName, engineVersion: engineVersion, name: browserName, version: browserVersion }); this.setFlag(browserName, true, publish); if (browserVersion) { majorVer = browserVersion.getMajor() || ''; if (me.is.IE) { majorVer = parseInt(majorVer, 10); mode = document.documentMode; if (mode === 7 || (majorVer === 7 && mode !== 8 && mode !== 9 && mode !== 10)) { majorVer = 7; } else if (mode === 8 || (majorVer === 8 && mode !== 8 && mode !== 9 && mode !== 10)) { majorVer = 8; } else if (mode === 9 || (majorVer === 9 && mode !== 7 && mode !== 8 && mode !== 10)) { majorVer = 9; } else if (mode === 10 || (majorVer === 10 && mode !== 7 && mode !== 8 && mode !== 9)) { majorVer = 10; } else if (mode === 11 || (majorVer === 11 && mode !== 7 && mode !== 8 && mode !== 9 && mode !== 10)) { majorVer = 11; } maxIEVersion = Math.max(majorVer, 11); for (i = 7; i <= maxIEVersion; ++i) { prefix = 'isIE' + i; if (majorVer <= i) { Ext[prefix + 'm'] = true; } if (majorVer === i) { Ext[prefix] = true; } if (majorVer >= i) { Ext[prefix + 'p'] = true; } } } if (me.is.Opera && parseInt(majorVer, 10) <= 12) { Ext.isOpera12m = true; } Ext.chromeVersion = Ext.isChrome ? majorVer : 0; Ext.firefoxVersion = Ext.isFirefox ? majorVer : 0; Ext.ieVersion = Ext.isIE ? majorVer : 0; Ext.operaVersion = Ext.isOpera ? majorVer : 0; Ext.safariVersion = Ext.isSafari ? majorVer : 0; Ext.webKitVersion = Ext.isWebKit ? majorVer : 0; this.setFlag(browserName + majorVer, true, publish); this.setFlag(browserName + browserVersion.getShortVersion()); } for (i in browserNames) { if (browserNames.hasOwnProperty(i)) { name = browserNames[i]; this.setFlag(name, browserName === name); } } this.setFlag(name); if (engineVersion) { this.setFlag(engineName + (engineVersion.getMajor() || '')); this.setFlag(engineName + engineVersion.getShortVersion()); } for (i in engineNames) { if (engineNames.hasOwnProperty(i)) { name = engineNames[i]; this.setFlag(name, engineName === name, publish); } } this.setFlag('Standalone', !!navigator.standalone); this.setFlag('Ripple', !!document.getElementById("tinyhippos-injected") && !Ext.isEmpty(window.top.ripple)); this.setFlag('WebWorks', !!window.blackberry); if (window.PhoneGap !== undefined || window.Cordova !== undefined || window.cordova !== undefined) { isWebView = true; this.setFlag('PhoneGap'); this.setFlag('Cordova'); } else if (!!window.isNK) { isWebView = true; this.setFlag('Sencha'); } if (/(Glass)/i.test(userAgent)) { this.setFlag('GoogleGlass'); } if (/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)(?!.*FBAN)/i.test(userAgent)) { isWebView = true; } this.setFlag('WebView', isWebView); this.isStrict = Ext.isStrict = document.compatMode === "CSS1Compat"; this.isSecure = Ext.isSecure; this.identity = browserName + majorVer + (this.isStrict ? 'Strict' : 'Quirks'); }; Ext.env.Browser.prototype = { constructor: Ext.env.Browser, browserNames: { ie: 'IE', firefox: 'Firefox', safari: 'Safari', chrome: 'Chrome', opera: 'Opera', dolfin: 'Dolfin', webosbrowser: 'webOSBrowser', chromeMobile: 'ChromeMobile', chromeiOS: 'ChromeiOS', silk: 'Silk', other: 'Other' }, engineNames: { webkit: 'WebKit', gecko: 'Gecko', presto: 'Presto', trident: 'Trident', other: 'Other' }, enginePrefixes: { webkit: 'AppleWebKit/', gecko: 'Gecko/', presto: 'Presto/', trident: 'Trident/' }, browserPrefixes: { ie: 'MSIE ', firefox: 'Firefox/', chrome: 'Chrome/', safari: 'Version/', opera: 'OPR/', dolfin: 'Dolfin/', webosbrowser: 'wOSBrowser/', chromeMobile: 'CrMo/', chromeiOS: 'CriOS/', silk: 'Silk/' }, styleDashPrefixes: { WebKit: '-webkit-', Gecko: '-moz-', Trident: '-ms-', Presto: '-o-', Other: '' }, stylePrefixes: { WebKit: 'Webkit', Gecko: 'Moz', Trident: 'ms', Presto: 'O', Other: '' }, propertyPrefixes: { WebKit: 'webkit', Gecko: 'moz', Trident: 'ms', Presto: 'o', Other: '' }, is: function(name) { return !!this.is[name]; }, name: null, version: null, engineName: null, engineVersion: null, setFlag: function(name, value, publish) { if (value === undefined) { value = true; } this.is[name] = value; this.is[name.toLowerCase()] = value; if (publish) { Ext['is' + name] = value; } return this; }, getStyleDashPrefix: function() { return this.styleDashPrefixes[this.engineName]; }, getStylePrefix: function() { return this.stylePrefixes[this.engineName]; }, getVendorProperyName: function(name) { var prefix = this.propertyPrefixes[this.engineName]; if (prefix.length > 0) { return prefix + Ext.String.capitalize(name); } return name; }, getPreferredTranslationMethod: function(config) { if (typeof config === 'object' && 'translationMethod' in config && config.translationMethod !== 'auto') { return config.translationMethod; } else { return 'csstransform'; } } }; (function(userAgent) { Ext.browser = new Ext.env.Browser(userAgent, true); Ext.userAgent = userAgent.toLowerCase(); Ext.SSL_SECURE_URL = Ext.isSecure && Ext.isIE ? 'javascript:\'\'' : 'about:blank'; }( Ext.global.navigator.userAgent)); Ext.env.OS = function(userAgent, platform, browserScope) { var me = this, names = me.names, prefixes = me.prefixes, name, version = '', is = me.is, i, prefix, match, item, match1; browserScope = browserScope || Ext.browser; for (i in prefixes) { if (prefixes.hasOwnProperty(i)) { prefix = prefixes[i]; match = userAgent.match(new RegExp('(?:' + prefix + ')([^\\s;]+)')); if (match) { name = names[i]; match1 = match[1]; if (match1 && match1 === "HTC_") { version = new Ext.Version("2.3"); } else if (match1 && match1 === "Silk/") { version = new Ext.Version("2.3"); } else { version = new Ext.Version(match[match.length - 1]); } break; } } } if (!name) { name = names[(userAgent.toLowerCase().match(/mac|win|linux/) || [ 'other' ])[0]]; version = new Ext.Version(''); } this.name = name; this.version = version; if (platform) { this.setFlag(platform.replace(/ simulator$/i, '')); } this.setFlag(name); if (version) { this.setFlag(name + (version.getMajor() || '')); this.setFlag(name + version.getShortVersion()); } for (i in names) { if (names.hasOwnProperty(i)) { item = names[i]; if (!is.hasOwnProperty(name)) { this.setFlag(item, (name === item)); } } } if (this.name === "iOS" && window.screen.height === 568) { this.setFlag('iPhone5'); } if (browserScope.is.Safari || browserScope.is.Silk) { if (this.is.Android2 || this.is.Android3 || browserScope.version.shortVersion === 501) { browserScope.setFlag("AndroidStock"); browserScope.setFlag("AndroidStock2"); } if (this.is.Android4) { browserScope.setFlag("AndroidStock"); browserScope.setFlag("AndroidStock4"); } } }; Ext.env.OS.prototype = { constructor: Ext.env.OS, names: { ios: 'iOS', android: 'Android', windowsPhone: 'WindowsPhone', webos: 'webOS', blackberry: 'BlackBerry', rimTablet: 'RIMTablet', mac: 'MacOS', win: 'Windows', tizen: 'Tizen', linux: 'Linux', bada: 'Bada', chrome: 'ChromeOS', other: 'Other' }, prefixes: { tizen: '(Tizen )', ios: 'i(?:Pad|Phone|Pod)(?:.*)CPU(?: iPhone)? OS ', android: '(Android |HTC_|Silk/)', windowsPhone: 'Windows Phone ', blackberry: '(?:BlackBerry|BB)(?:.*)Version/', rimTablet: 'RIM Tablet OS ', webos: '(?:webOS|hpwOS)/', bada: 'Bada/', chrome: 'CrOS ' }, is: function(name) { return !!this[name]; }, name: null, version: null, setFlag: function(name, value) { if (value === undefined) { value = true; } if (this.flags) { this.flags[name] = value; } this.is[name] = value; this.is[name.toLowerCase()] = value; return this; } }; (function() { var navigation = Ext.global.navigator, userAgent = navigation.userAgent, OS = Ext.env.OS, is = (Ext.is || (Ext.is = {})), osEnv, osName, deviceType; OS.prototype.flags = is; Ext.os = osEnv = new OS(userAgent, navigation.platform); osName = osEnv.name; Ext['is' + osName] = true; Ext.isMac = is.Mac = is.MacOS; var search = window.location.search.match(/deviceType=(Tablet|Phone)/), nativeDeviceType = window.deviceType; if (search && search[1]) { deviceType = search[1]; } else if (nativeDeviceType === 'iPhone') { deviceType = 'Phone'; } else if (nativeDeviceType === 'iPad') { deviceType = 'Tablet'; } else { if (!osEnv.is.Android && !osEnv.is.iOS && !osEnv.is.WindowsPhone && /Windows|Linux|MacOS/.test(osName)) { deviceType = 'Desktop'; Ext.browser.is.WebView = !!Ext.browser.is.Ripple; } else if (osEnv.is.iPad || osEnv.is.RIMTablet || osEnv.is.Android3 || Ext.browser.is.Silk || (osEnv.is.Android4 && userAgent.search(/mobile/i) === -1)) { deviceType = 'Tablet'; } else { deviceType = 'Phone'; } } osEnv.setFlag(deviceType, true); osEnv.deviceType = deviceType; delete OS.prototype.flags; }()); Ext.feature = { has: function(name) { return !!this.has[name]; }, testElements: {}, getTestElement: function(tag, createNew) { if (tag === undefined) { tag = 'div'; } else if (typeof tag !== 'string') { return tag; } if (createNew) { return document.createElement(tag); } if (!this.testElements[tag]) { this.testElements[tag] = document.createElement(tag); } return this.testElements[tag]; }, isStyleSupported: function(name, tag) { var elementStyle = this.getTestElement(tag).style, cName = Ext.String.capitalize(name); if (typeof elementStyle[name] !== 'undefined' || typeof elementStyle[Ext.browser.getStylePrefix(name) + cName] !== 'undefined') { return true; } return false; }, isStyleSupportedWithoutPrefix: function(name, tag) { var elementStyle = this.getTestElement(tag).style; if (typeof elementStyle[name] !== 'undefined') { return true; } return false; }, isEventSupported: function(name, tag) { if (tag === undefined) { tag = window; } var element = this.getTestElement(tag), eventName = 'on' + name.toLowerCase(), isSupported = (eventName in element); if (!isSupported) { if (element.setAttribute && element.removeAttribute) { element.setAttribute(eventName, ''); isSupported = typeof element[eventName] === 'function'; if (typeof element[eventName] !== 'undefined') { element[eventName] = undefined; } element.removeAttribute(eventName); } } return isSupported; }, getStyle: function(element, styleName) { var view = element.ownerDocument.defaultView, style = (view ? view.getComputedStyle(element, null) : element.currentStyle); return (style || element.style)[styleName]; }, getSupportedPropertyName: function(object, name) { var vendorName = Ext.browser.getVendorProperyName(name); if (vendorName in object) { return vendorName; } else if (name in object) { return name; } return null; }, detect: function(isReady) { var me = this, doc = document, toRun = me.toRun || me.tests, n = toRun.length, div = doc.createElement('div'), notRun = [], supports = Ext.supports, has = me.has, name, test, vector, value; if (!Ext.theme) { Ext.theme = { name: 'Default' }; } Ext.theme.is = {}; Ext.theme.is[Ext.theme.name] = true; div.innerHTML = '