var CodeMirror=(function(){function u(aM,aJ){var b1={},bj=u.defaults;for(var az in bj){if(bj.hasOwnProperty(az)){b1[az]=(aJ&&aJ.hasOwnProperty(az)?aJ:bj)[az]}}var aD=document.createElement("div");aD.className="CodeMirror"+(b1.lineWrapping?" CodeMirror-wrap":"");aD.innerHTML='
Sencha Touch only functions on WebKit based browsers.
Please use Google Chrome or Safari to see live examples.
',"
","
")}},toHtml:function(){return this.tpl.apply(this)},setDevice:function(b){this.device=b;Ext.apply(this,this.getIframeSize())},setOrientation:function(b){this.orientation=b;Ext.apply(this,this.getIframeSize())},getIframeSize:function(){var b={phone:{width:"481px",height:"320px"},miniphone:{width:"320px",height:"219px"},tablet:{width:"717px",height:"538px"}}[this.device];if(this.orientation==="landscape"){return b}else{return{width:b.height,height:b.width}}}});Ext.define("Ext.form.field.VTypes",(function(){var h=/^[a-zA-Z_]+$/,g=/^[a-zA-Z0-9_]+$/,e=/^(\w+)([\-+.][\w]+)*@(\w[\-\w]*\.){1,5}([A-Za-z]){2,6}$/,f=/(((^https?)|(^ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@`~=%!]*)(\.\w{2,})?)*\/?)/i;return{singleton:true,alternateClassName:"Ext.form.VTypes",email:function(a){return e.test(a)},emailText:'This field should be an e-mail address in the format "user@example.com"',emailMask:/[a-z0-9_\.\-@\+]/i,url:function(a){return f.test(a)},urlText:'This field should be a URL in the format "http://www.example.com"',alpha:function(a){return h.test(a)},alphaText:"This field should only contain letters and _",alphaMask:/[a-z_]/i,alphanum:function(a){return g.test(a)},alphanumText:"This field should only contain letters, numbers and _",alphanumMask:/[a-z0-9_]/i}}()));Ext.define("Ext.util.Observable",{requires:["Ext.util.Event"],statics:{releaseCapture:function(b){b.fireEvent=this.prototype.fireEvent},capture:function(f,d,e){f.fireEvent=Ext.Function.createInterceptor(f.fireEvent,d,e)},observe:function(d,c){if(d){if(!d.isObservable){Ext.applyIf(d,new this());this.capture(d.prototype,d.fireEvent,d)}if(Ext.isObject(c)){d.on(c)}}return d},prepareClass:function(d){if(!d.HasListeners){var f=function(){},e=d.superclass.HasListeners||this.HasListeners;d.prototype.HasListeners=d.HasListeners=f;f.prototype=d.hasListeners=new e()}}},isObservable:true,constructor:function(d){var c=this;Ext.apply(c,d);if(!c.hasListeners){c.hasListeners=new c.HasListeners()}c.events=c.events||{};if(c.listeners){c.on(c.listeners);c.listeners=null}if(c.bubbleEvents){c.enableBubble(c.bubbleEvents)}},onClassExtended:function(b){if(!b.HasListeners){Ext.util.Observable.prepareClass(b)}},onClassMixedIn:function(b){if(!b.HasListeners){this.prepareClass(b);b.onExtended(this.prepareClass,this)}},eventOptionsRe:/^(?:scope|delay|buffer|single|stopEvent|preventDefault|stopPropagation|normalized|args|delegate|element|vertical|horizontal|freezeEvent)$/,addManagedListener:function(k,o,m,n,p){var l=this,j=l.managedListeners=l.managedListeners||[],i;if(typeof o!=="string"){p=o;for(o in p){if(p.hasOwnProperty(o)){i=p[o];if(!l.eventOptionsRe.test(o)){l.addManagedListener(k,o,i.fn||i,i.scope||p.scope,i.fn?i:p)}}}}else{j.push({item:k,ename:o,fn:m,scope:n,options:p});k.on(o,m,n,p)}},removeManagedListener:function(m,r,o,l){var p=this,i,s,n,t,q;if(typeof r!=="string"){i=r;for(r in i){if(i.hasOwnProperty(r)){s=i[r];if(!p.eventOptionsRe.test(r)){p.removeManagedListener(m,r,s.fn||s,s.scope||i.scope)}}}}n=p.managedListeners?p.managedListeners.slice():[];for(q=0,t=n.length;qc){return c}while(bg){b=e}else{c=e}e=(c-b)/2+b}return e}return B(q,1/(200*w))},cubicBezier:function(f,h,g,j){var i=function(a){return Ext.fx.CubicBezier.cubicBezierAtTime(a,f,h,g,j,1)};i.toCSS3=function(){return"cubic-bezier("+[f,h,g,j].join(",")+")"};i.reverse=function(){return Ext.fx.CubicBezier.cubicBezier(1-g,1-j,1-f,1-h)};return i}});Ext.define("Ext.util.Sortable",{isSortable:true,defaultSortDirection:"ASC",requires:["Ext.util.Sorter"],initSortable:function(){var d=this,c=d.sorters;d.sorters=new Ext.util.AbstractMixedCollection(false,function(a){return a.id||a.property});if(c){d.sorters.addAll(d.decodeSorters(c))}},sort:function(l,m,p,n){var o=this,k,i,j;if(Ext.isArray(l)){n=p;p=m;j=l}else{if(Ext.isObject(l)){n=p;p=m;j=[l]}else{if(Ext.isString(l)){k=o.sorters.get(l);if(!k){k={property:l,direction:m};j=[k]}else{if(m===undefined){k.toggle()}else{k.setDirection(m)}}}}}if(j&&j.length){j=o.decodeSorters(j);if(Ext.isString(p)){if(p==="prepend"){l=o.sorters.clone().items;o.sorters.clear();o.sorters.addAll(j);o.sorters.addAll(l)}else{o.sorters.addAll(j)}}else{o.sorters.clear();o.sorters.addAll(j)}}if(n!==false){o.onBeforeSort(j);l=o.sorters.items;if(l.length){o.doSort(o.generateComparator())}}return l},generateComparator:function(){var b=this.sorters.getRange();return b.length?this.createComparator(b):this.emptyComparator},createComparator:function(b){return function(i,j){var a=b[0].sort(i,j),g=b.length,h=1;for(;h1){j=new Ext.util.MixedCollection();j.addAll(h);for(n=m.length;n--;){i=m[n];l=j.findBy(function(a){var b=i.getId();if(b&&a.getId()===b){return true}return a.internalId===i.internalId});k.updateClientRecord(i,l)}}else{i=m[0];l=h[0];if(l&&(i.phantom||i.getId()===l.getId())){k.updateClientRecord(i,l)}}if(k.actionCommitRecordsRe.test(k.action)){for(n=m.length;n--;){m[n].commit()}}}}},updateClientRecord:function(f,l){if(f&&l){f.beginEdit();var h=f.fields.items,i=h.length,j,k;for(k=0;k1){for(;n','
Comments should be an extension of the documentation. "," Inform us about bugs in documentation."," Give useful tips to other developers."," Warn about bugs and problems that might bite.","
","
Don't post comments for:","
","
Questions about code or usage",' - use the Sencha Forum.
Comments may be edited or deleted at any time by a moderator.
",'
Avatars can be managed at Gravatar (use your forum email address).
',"
Comments will be formatted using the Markdown syntax, eg:
","
",'
',"
Markdown
","
","Here is a **bold** item\n","Here is an _italic_ item\n","Here is an `inline` code snippet\n","Here is a [Link](#!/api)\n","\n"," Indent with 4 spaces\n"," for a code snippet\n","\n","1. Here is a numbered list\n","2. Second numbered list item\n","\n","- Here is an unordered list\n","- Second unordered list item\n","\n","End a line with two spaces \n","to create a line break\n","
","
",'
',"
Result
","Here is a bold item ","Here is an italic item ","Here is an inline code snippet ",'Here is a Link ','
',"Indent with 4 spaces\n","for a code snippet","
","","
Here is a numbered list
","
Second numbered list item
","","
","
Here is an unordered list
","
Second unordered list item
","
","End a line with two spaces to create a line break
',h.itemCls,g);h.tpl=new Ext.XTemplate(g,e)}if(!f(h.tpl)||!f(h.itemSelector)){Ext.Error.raise({sourceClass:"Ext.view.View",tpl:h.tpl,itemSelector:h.itemSelector,msg:"DataView requires both tpl and itemSelector configurations to be defined."})}h.callParent();if(Ext.isString(h.tpl)||Ext.isArray(h.tpl)){h.tpl=new Ext.XTemplate(h.tpl)}if(f(h.overCls)||f(h.overClass)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.view.View: Using the deprecated overCls or overClass configuration. Use overItemCls instead.")}h.overItemCls=h.overCls||h.overClass;delete h.overCls;delete h.overClass}if(h.overItemCls){h.trackOver=true}if(f(h.selectedCls)||f(h.selectedClass)){if(Ext.isDefined(Ext.global.console)){Ext.global.console.warn("Ext.view.View: Using the deprecated selectedCls or selectedClass configuration. Use selectedItemCls instead.")}h.selectedItemCls=h.selectedCls||h.selectedClass;delete h.selectedCls;delete h.selectedClass}h.addEvents("beforerefresh","refresh","viewready","itemupdate","itemadd","itemremove");h.addCmpEvents();h.store=Ext.data.StoreManager.lookup(h.store||"ext-empty-store");h.all=new Ext.CompositeElementLite();h.scrollState={top:0,left:0};h.on({scroll:h.onViewScroll,element:"el",scope:h})},onRender:function(){var f=this,d=f.loadMask,e={msg:f.loadingText,msgCls:f.loadingCls,useMsg:f.loadingUseMsg};f.callParent(arguments);if(d){if(Ext.isObject(d)){e=Ext.apply(e,d)}f.loadMask=new Ext.LoadMask(f,e);f.loadMask.on({scope:f,beforeshow:f.onMaskBeforeShow,hide:f.onMaskHide})}},onMaskBeforeShow:function(){var c=this,d=c.loadingHeight;c.getSelectionModel().deselectAll();c.all.clear();if(d&&d>c.getHeight()){c.hasLoadingHeight=true;c.oldMinHeight=c.minHeight;c.minHeight=d;c.updateLayout()}},onMaskHide:function(){var b=this;if(!b.destroying&&b.hasLoadingHeight){b.minHeight=b.oldMinHeight;b.updateLayout();delete b.hasLoadingHeight}},afterRender:function(){this.callParent(arguments);this.getSelectionModel().bindComponent(this)},getSelectionModel:function(){var d=this,c="SINGLE";if(!d.selModel){d.selModel={}}if(d.simpleSelect){c="SIMPLE"}else{if(d.multiSelect){c="MULTI"}}Ext.applyIf(d.selModel,{allowDeselect:d.allowDeselect,mode:c});if(!d.selModel.events){d.selModel=new Ext.selection.DataViewModel(d.selModel)}if(!d.selModel.hasRelaySetup){d.relayEvents(d.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect","focuschange"]);d.selModel.hasRelaySetup=true}if(d.disableSelection){d.selModel.locked=true}return d.selModel},refresh:function(){var l=this,i,g,k,j,h;if(!l.rendered||l.isDestroyed){return}if(!l.hasListeners.beforerefresh||l.fireEvent("beforerefresh",l)!==false){i=l.getTargetEl();h=l.store.getRange();j=i.dom;if(!l.preserveScrollOnRefresh){g=j.parentNode;j.style.display="none";k=j.nextSibling;g.removeChild(j)}if(l.refreshCounter){l.clearViewEl()}else{l.fixedNodes=i.dom.childNodes.length;l.refreshCounter=1}l.tpl.append(i,l.collectData(h,0));if(h.length<1){if(!l.deferEmptyText||l.hasSkippedEmptyText){Ext.core.DomHelper.insertHtml("beforeEnd",i.dom,l.emptyText)}l.all.clear()}else{l.all.fill(Ext.query(l.getItemSelector(),i.dom));l.updateIndexes(0)}l.selModel.refresh();l.hasSkippedEmptyText=true;if(!l.preserveScrollOnRefresh){g.insertBefore(j,k);j.style.display=""}this.refreshSize();l.fireEvent("refresh",l);if(!l.viewReady){l.viewReady=true;l.fireEvent("viewready",l)}}},refreshSize:function(){var b=this.getSizeModel();if(b.height.shrinkWrap||b.width.shrinkWrap){this.updateLayout()}},clearViewEl:function(){var c=this,d=c.getTargetEl();if(c.fixedNodes){while(d.dom.childNodes[c.fixedNodes]){d.dom.removeChild(d.dom.childNodes[c.fixedNodes])}}else{d.update("")}c.refreshCounter++},onViewScroll:Ext.emptyFn,saveScrollState:function(){if(this.rendered){var c=this.el.dom,d=this.scrollState;d.left=c.scrollLeft;d.top=c.scrollTop}},restoreScrollState:function(){if(this.rendered){var c=this.el.dom,d=this.scrollState;c.scrollLeft=d.left;c.scrollTop=d.top}},prepareData:function(h,i,j){var f,g;if(j){f=j.getAssociatedData();for(g in f){if(f.hasOwnProperty(g)){h[g]=f[g]}}}return h},collectData:function(l,i){var j=[],k=0,h=l.length,g;for(;k-1){j=i.bufferRender([g],f)[0];if(i.getNode(g)){i.all.replaceElement(f,j,true);i.updateIndexes(f,f);i.selModel.refresh();if(i.hasListeners.itemupdate){i.fireEvent("itemupdate",g,f,j)}return j}}},onAdd:function(h,f,j){var i=this,g;if(i.all.getCount()===0){i.refresh();return}g=i.bufferRender(f,j);i.doAdd(g,f,j);i.selModel.refresh();i.updateIndexes(j);this.refreshSize();if(i.hasListeners.itemadd){i.fireEvent("itemadd",f,j,g)}},doAdd:function(f,g,j){var i=this.all,h=i.getCount();if(h===0){this.clearViewEl();this.getTargetEl().appendChild(f)}else{if(j=g&&i[j];j--){f.push(i[j])}}return f},indexOf:function(b){b=this.getNode(b);if(Ext.isNumber(b.viewIndex)){return b.viewIndex}return this.all.indexOf(b)},onDestroy:function(){var b=this;b.all.clear();b.callParent();b.bindStore(null);b.selModel.destroy()},onItemSelect:function(d){var c=this.getNode(d);if(c){Ext.fly(c).addCls(this.selectedItemCls)}},onItemDeselect:function(d){var c=this.getNode(d);if(c){Ext.fly(c).removeCls(this.selectedItemCls)}},getItemSelector:function(){return this.itemSelector}},function(){Ext.deprecate("extjs","4.0",function(){Ext.view.AbstractView.override({getSelectionCount:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectionCount will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection().length},getSelectedRecords:function(){if(Ext.global.console){Ext.global.console.warn("DataView: getSelectedRecords will be removed, please interact with the Ext.selection.DataViewModel")}return this.selModel.getSelection()},select:function(f,e,g){if(Ext.global.console){Ext.global.console.warn("DataView: select will be removed, please access select through a DataView's SelectionModel, ie: view.getSelectionModel().select()")}var h=this.getSelectionModel();return h.select.apply(h,arguments)},clearSelections:function(){if(Ext.global.console){Ext.global.console.warn("DataView: clearSelections will be removed, please access deselectAll through DataView's SelectionModel, ie: view.getSelectionModel().deselectAll()")}var b=this.getSelectionModel();return b.deselectAll()}})})});Ext.define("Ext.view.View",{extend:"Ext.view.AbstractView",alternateClassName:"Ext.DataView",alias:"widget.dataview",inheritableStatics:{EventMap:{mousedown:"MouseDown",mouseup:"MouseUp",click:"Click",dblclick:"DblClick",contextmenu:"ContextMenu",mouseover:"MouseOver",mouseout:"MouseOut",mouseenter:"MouseEnter",mouseleave:"MouseLeave",keydown:"KeyDown",focus:"Focus"}},addCmpEvents:function(){this.addEvents("beforeitemmousedown","beforeitemmouseup","beforeitemmouseenter","beforeitemmouseleave","beforeitemclick","beforeitemdblclick","beforeitemcontextmenu","beforeitemkeydown","itemmousedown","itemmouseup","itemmouseenter","itemmouseleave","itemclick","itemdblclick","itemcontextmenu","itemkeydown","beforecontainermousedown","beforecontainermouseup","beforecontainermouseover","beforecontainermouseout","beforecontainerclick","beforecontainerdblclick","beforecontainercontextmenu","beforecontainerkeydown","containermouseup","containermouseover","containermouseout","containerclick","containerdblclick","containercontextmenu","containerkeydown","selectionchange","beforeselect","highlightitem","unhighlightitem")},getFocusEl:function(){return this.getTargetEl()},afterRender:function(){var c=this,d;c.callParent();d={scope:c,freezeEvent:true,click:c.handleEvent,mousedown:c.handleEvent,mouseup:c.handleEvent,dblclick:c.handleEvent,contextmenu:c.handleEvent,mouseover:c.handleEvent,mouseout:c.handleEvent,keydown:c.handleEvent};c.mon(c.getTargetEl(),d);if(c.store){c.bindStore(c.store,true)}},handleEvent:function(c){var d=c.type=="keydown"&&c.getKey();if(this.processUIEvent(c)!==false){this.processSpecialEvent(c)}if(d===c.SPACE){c.stopEvent()}},processItemEvent:Ext.emptyFn,processContainerEvent:Ext.emptyFn,processSpecialEvent:Ext.emptyFn,stillOverItem:function(d,e){var f;if(e&&typeof(e.offsetParent)==="object"){f=(d.type=="mouseout")?d.getRelatedTarget():d.getTarget();return Ext.fly(e).contains(f)}return false},processUIEvent:function(m){var l=this,e=m.getTarget(l.getItemSelector(),l.getTargetEl()),r=this.statics().EventMap,n,p,k=m.type,o=l.mouseOverItem,q;if(!e){if(k=="mouseover"&&l.stillOverItem(m,o)){e=o}if(k=="keydown"){p=l.getSelectionModel().getLastSelected();if(p){e=l.getNode(p)}}}if(e){n=l.indexOf(e);if(!p){p=l.getRecord(e)}if(!p||l.processItemEvent(p,e,n,m)===false){return false}q=l.isNewItemEvent(e,m);if(q===false){return false}if((l["onBeforeItem"+r[q]](p,e,n,m)===false)||(l.fireEvent("beforeitem"+q,l,p,e,n,m)===false)||(l["onItem"+r[q]](p,e,n,m)===false)){return false}l.fireEvent("item"+q,l,p,e,n,m)}else{if((l.processContainerEvent(m)===false)||(l["onBeforeContainer"+r[k]](m)===false)||(l.fireEvent("beforecontainer"+k,l,m)===false)||(l["onContainer"+r[k]](m)===false)){return false}l.fireEvent("container"+k,l,m)}return true},isNewItemEvent:function(i,h){var j=this,g=j.mouseOverItem,e=h.type;switch(e){case"mouseover":if(i===g){return false}j.mouseOverItem=i;return"mouseenter";case"mouseout":if(j.stillOverItem(h,g)){return false}j.mouseOverItem=null;return"mouseleave"}return e},onItemMouseEnter:function(f,h,e,g){if(this.trackOver){this.highlightItem(h)}},onItemMouseLeave:function(f,h,e,g){if(this.trackOver){this.clearHighlight()}},onItemMouseDown:Ext.emptyFn,onItemMouseUp:Ext.emptyFn,onItemFocus:Ext.emptyFn,onItemClick:Ext.emptyFn,onItemDblClick:Ext.emptyFn,onItemContextMenu:Ext.emptyFn,onItemKeyDown:Ext.emptyFn,onBeforeItemMouseDown:Ext.emptyFn,onBeforeItemMouseUp:Ext.emptyFn,onBeforeItemFocus:Ext.emptyFn,onBeforeItemMouseEnter:Ext.emptyFn,onBeforeItemMouseLeave:Ext.emptyFn,onBeforeItemClick:Ext.emptyFn,onBeforeItemDblClick:Ext.emptyFn,onBeforeItemContextMenu:Ext.emptyFn,onBeforeItemKeyDown:Ext.emptyFn,onContainerMouseDown:Ext.emptyFn,onContainerMouseUp:Ext.emptyFn,onContainerMouseOver:Ext.emptyFn,onContainerMouseOut:Ext.emptyFn,onContainerClick:Ext.emptyFn,onContainerDblClick:Ext.emptyFn,onContainerContextMenu:Ext.emptyFn,onContainerKeyDown:Ext.emptyFn,onBeforeContainerMouseDown:Ext.emptyFn,onBeforeContainerMouseUp:Ext.emptyFn,onBeforeContainerMouseOver:Ext.emptyFn,onBeforeContainerMouseOut:Ext.emptyFn,onBeforeContainerClick:Ext.emptyFn,onBeforeContainerDblClick:Ext.emptyFn,onBeforeContainerContextMenu:Ext.emptyFn,onBeforeContainerKeyDown:Ext.emptyFn,highlightItem:function(c){var d=this;d.clearHighlight();d.highlightedItem=c;Ext.fly(c).addCls(d.overItemCls);d.fireEvent("highlightitem",d,c)},clearHighlight:function(){var c=this,d=c.highlightedItem;if(d){Ext.fly(d).removeCls(c.overItemCls);c.fireEvent("unhighlightitem",c,d);delete c.highlightedItem}},onUpdate:function(g,h){var i=this,j=i.getNode(h),l=i.callParent(arguments),k=i.highlightedItem;if(k&&k===j){delete i.highlightedItem;if(l){i.highlightItem(l)}}},refresh:function(){this.clearHighlight();this.callParent(arguments)}});Ext.define("Docs.view.search.Dropdown",{extend:"Ext.view.View",alias:"widget.searchdropdown",floating:true,autoShow:false,autoRender:true,toFrontOnShow:true,focusOnToFront:false,store:"Search",id:"search-dropdown",overItemCls:"x-view-over",trackOver:true,itemSelector:"div.item",singleSelect:true,pageStart:0,pageSize:10,initComponent:function(){this.addEvents("changePage","footerClick");this.tpl=new Ext.XTemplate('','
","",{columnHeight:this.columnHeight,renderLink:function(d){var c=Ext.Array.map(Docs.data.signatures,function(a){return d.meta[a.key]?''+(a["short"])+"":""}).join(" ");return Ext.String.format('{1} {2}',d.url,d.label,c)}});this.callParent()}});Ext.define("Ext.data.NodeStore",{extend:"Ext.data.Store",alias:"store.node",requires:["Ext.data.NodeInterface"],node:null,recursive:false,rootVisible:false,constructor:function(e){var f=this,d;e=e||{};Ext.apply(f,e);if(Ext.isDefined(f.proxy)){Ext.Error.raise("A NodeStore cannot be bound to a proxy. Instead bind it to a record decorated with the NodeInterface by setting the node config.")}f.useModelWarning=false;e.proxy={type:"proxy"};f.callParent([e]);d=f.node;if(d){f.node=null;f.setNode(d)}},setNode:function(c){var d=this;if(d.node&&d.node!=c){d.mun(d.node,{expand:d.onNodeExpand,collapse:d.onNodeCollapse,append:d.onNodeAppend,insert:d.onNodeInsert,remove:d.onNodeRemove,sort:d.onNodeSort,scope:d});d.node=null}if(c){Ext.data.NodeInterface.decorate(c.self);d.removeAll();if(d.rootVisible){d.add(c)}else{if(!c.isExpanded()&&d.treeStore.autoLoad!==false){c.expand()}}d.mon(c,{expand:d.onNodeExpand,collapse:d.onNodeCollapse,append:d.onNodeAppend,insert:d.onNodeInsert,remove:d.onNodeRemove,sort:d.onNodeSort,scope:d});d.node=c;if(c.isExpanded()&&c.isLoaded()){d.onNodeExpand(c,c.childNodes,true)}}},onNodeSort:function(d,f){var e=this;if((e.indexOf(d)!==-1||(d===e.node&&!e.rootVisible)&&d.isExpanded())){e.onNodeCollapse(d,f,true);e.onNodeExpand(d,f,true)}},onNodeExpand:function(m,o,p){var k=this,j=k.indexOf(m)+1,l=o?o.length:0,n,i;if(!k.recursive&&m!==k.node){return}if(m!==this.node&&!k.isVisible(m)){return}if(!p&&k.fireEvent("beforeexpand",m,o,j)===false){return}if(l){k.insert(j,o);for(n=0;n'}t=Ext.get(s);v=t.insertSibling({tag:"tr",html:['
");this.on("afterrender",this.initListeners,this);this.on("resize",this.refresh,this);this.callParent()},initListeners:function(){this.el.on("mouseover",function(c,d){Ext.get(d).addCls("ovr")},this,{delegate:".close"});this.el.on("mouseout",function(c,d){Ext.get(d).removeCls("ovr")},this,{delegate:".close"});this.el.on("click",function(f,d){var e=Ext.get(d).up(".doctab").down(".tabUrl").getAttribute("href");e=Docs.History.cleanUrl(e);this.removeTab(e);this.fireEvent("tabClose",e)},this,{delegate:".close",preventDefault:true});this.el.on("click",function(f,d){if(Ext.fly(f.getTarget()).hasCls("close")){return}var e=Ext.get(d).down(".tabUrl").getAttribute("href");this.fireEvent("tabActivate",e,{navigate:true})},this,{delegate:".doctab"});this.el.on("contextmenu",function(c,d){if(!Ext.get(d).hasCls("overview")){this.createMenu().showBy(d)}},this,{delegate:".doctab",preventDefault:true});this.el.on("click",Ext.emptyFn,this,{delegate:".tabUrl",preventDefault:true});this.el.on("mouseleave",function(){if(this.shouldResize){this.resizeTabs({animate:true})}},this)},setStaticTabs:function(b){this.staticTabs=b;this.refresh()},getStaticTabs:function(b){return this.staticTabs},addTab:function(d,c){this.tabCache[d.href]=d;if(!this.hasTab(d.href)){this.tabs.push(d.href);if(this.roomForNewTab()){this.addTabToBar(d,c)}this.addTabToMenu(this.overflowButton.menu,d)}if(c.activate){this.activateTab(d.href)}this.saveTabs()},removeTab:function(d){if(!this.hasTab(d)){return}this.removeFromArray(this.tabs,d);var e=this.removeFromArray(this.tabsInBar,d);var f=this.tabs[this.tabsInBar.length];if(f){this.tabsInBar.push(f)}if(this.activeTab===d){if(this.tabs.length===0){Docs.App.getController(this.getControllerName(d)).loadIndex()}else{if(e===this.tabs.length){e-=1}this.activateTab(this.tabs[e]);this.fireEvent("tabActivate",this.tabs[e])}}if(this.tabs.length>=this.maxTabsInBar()){this.refresh()}else{this.removeTabFromBar(d)}this.saveTabs()},removeFromArray:function(f,d){var e=Ext.Array.indexOf(f,d);if(e!==-1){Ext.Array.erase(f,e,1)}return e},activateTab:function(d){this.activeTab=d;if(!this.inTabs(d)){this.swapLastTabWith(d)}Ext.Array.each(Ext.query(".doctab a.tabUrl"),function(a){Ext.get(a).up(".doctab").removeCls(["active","highlight"])});var e=Ext.query('.doctab a[href="'+d+'"]')[0];if(e){var f=Ext.get(e).up(".doctab");f.addCls("active")}this.highlightOverviewTab(d)},refresh:function(){var i=this.tpl.applyTemplate(this.staticTabs);var f=this.maxTabsInBar()this.maxTabWidth){return this.maxTabWidth}else{if(bthis.tabsInBar.length&&f===this.maxTabsInBar()){g.addTabCls(h,"overflow")}var e=this.inTabBar(h.href);g.addTab(h,e?"":"overflow")},addToolTips:function(){Ext.Array.each(this.staticTabs,function(c){var d=Ext.get(Ext.query(".doctab."+c.cls)[0]);if(d){Ext.create("Ext.tip.ToolTip",{target:d,html:c.tooltip})}})},saveTabs:function(){Docs.Settings.set("tabs",this.tabs)},getControllerName:function(b){if(/#!?\/api/.test(b)){return"Classes"}else{if(/#!?\/guide/.test(b)){return"Guides"}else{if(/#!?\/video/.test(b)){return"Videos"}else{if(/#!?\/example/.test(b)){return"Examples"}else{if(/#!?\/stats/.test(b)){return"Stats"}else{if(/#!?\/tests/.test(b)){return"Tests"}else{if(/#!?\/comment/.test(b)){return"Comments"}else{return"Index"}}}}}}}}});Ext.define("Ext.panel.Table",{extend:"Ext.panel.Panel",alias:"widget.tablepanel",uses:["Ext.selection.RowModel","Ext.grid.PagingScroller","Ext.grid.header.Container","Ext.grid.Lockable"],extraBaseCls:Ext.baseCSSPrefix+"grid",extraBodyCls:Ext.baseCSSPrefix+"grid-body",layout:"fit",hasView:false,viewType:null,selType:"rowmodel",scroll:true,deferRowRender:true,sortableColumns:true,enableLocking:false,scrollerOwner:true,enableColumnMove:true,restrictColumnReorder:false,enableColumnResize:true,enableColumnHide:true,rowLines:true,initComponent:function(){if(!this.viewType){Ext.Error.raise("You must specify a viewType config.")}if(this.headers){Ext.Error.raise("The headers config is not supported. Please specify columns instead.")}var l=this,i=l.scroll,q=false,r=false,m=l.columns||l.colModel,k,p=l.border,o,n;if(l.columnLines){l.addCls(Ext.baseCSSPrefix+"grid-with-col-lines")}if(l.rowLines){l.addCls(Ext.baseCSSPrefix+"grid-with-row-lines")}l.store=Ext.data.StoreManager.lookup(l.store||"ext-empty-store");if(!m){Ext.Error.raise("A column configuration must be specified")}if(m instanceof Ext.grid.header.Container){l.headerCt=m;l.headerCt.border=p;l.columns=l.headerCt.items.items}else{if(Ext.isArray(m)){m={items:m,border:p}}Ext.apply(m,{forceFit:l.forceFit,sortable:l.sortableColumns,enableColumnMove:l.enableColumnMove,enableColumnResize:l.enableColumnResize,enableColumnHide:l.enableColumnHide,border:p,restrictReorder:l.restrictColumnReorder});l.columns=m.items;if(l.enableLocking||Ext.ComponentQuery.query("{locked !== undefined}{processed != true}",l.columns).length){l.self.mixin("lockable",Ext.grid.Lockable);l.injectLockable()}}l.scrollTask=new Ext.util.DelayedTask(l.syncHorizontalScroll,l);l.addEvents("reconfigure","viewready");l.bodyCls=l.bodyCls||"";l.bodyCls+=(" "+l.extraBodyCls);l.cls=l.cls||"";l.cls+=(" "+l.extraBaseCls);delete l.autoScroll;if(!l.hasView){if(!l.headerCt){l.headerCt=new Ext.grid.header.Container(m)}l.columns=l.headerCt.items.items;if(l.store.buffered&&!l.store.remoteSort){for(o=0,n=l.columns.length;o'+d.emptyText+"":""}));d.mon(d.view,{uievent:d.processEvent,scope:d});c.view=d.view;d.headerCt.view=d.view;d.relayEvents(d.view,["cellclick","celldblclick"])}return d.view},setAutoScroll:Ext.emptyFn,processEvent:function(n,e,j,p,o,l){var m=this,k;if(o!==-1){k=m.headerCt.getGridColumns()[o];return k.processEvent.apply(k,arguments)}},determineScrollbars:function(){Ext.log.warn("Obsolete")},invalidateScroller:function(){Ext.log.warn("Obsolete")},scrollByDeltaY:function(c,d){this.getView().scrollBy(0,c,d)},scrollByDeltaX:function(c,d){this.getView().scrollBy(c,0,d)},afterCollapse:function(){var b=this;b.saveScrollPos();b.saveScrollPos();b.callParent(arguments)},afterExpand:function(){var b=this;b.callParent(arguments);b.restoreScrollPos();b.restoreScrollPos()},saveScrollPos:Ext.emptyFn,restoreScrollPos:Ext.emptyFn,onHeaderResize:function(){this.delayScroll()},onHeaderMove:function(j,i,h,g,k){var l=this;if(l.optimizedColumnMove===false){l.view.refresh()}else{l.view.moveColumn(g,k,h)}l.delayScroll()},onHeaderHide:function(d,c){this.delayScroll()},onHeaderShow:function(d,c){this.delayScroll()},delayScroll:function(){var b=this.getScrollTarget().el;if(b){this.scrollTask.delay(10,null,null,[b.dom.scrollLeft])}},onViewReady:function(){this.fireEvent("viewready",this)},onRestoreHorzScroll:function(){var b=this.scrollLeftPos;if(b){this.syncHorizontalScroll(b)}},setScrollTop:function(f){var d=this,e=d.getScrollerOwner();e.virtualScrollTop=f},getScrollerOwner:function(){var b=this;if(!this.scrollerOwner){b=this.up("[scrollerOwner]")}return b},getLhsMarker:function(){var b=this;return b.lhsMarker||(b.lhsMarker=Ext.DomHelper.append(b.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true))},getRhsMarker:function(){var b=this;return b.rhsMarker||(b.rhsMarker=Ext.DomHelper.append(b.el,{cls:Ext.baseCSSPrefix+"grid-resize-marker"},true))},getSelectionModel:function(){if(!this.selModel){this.selModel={}}var c="SINGLE",d;if(this.simpleSelect){c="SIMPLE"}else{if(this.multiSelect){c="MULTI"}}Ext.applyIf(this.selModel,{allowDeselect:this.allowDeselect,mode:c});if(!this.selModel.events){d=this.selModel.selType||this.selType;this.selModel=Ext.create("selection."+d,this.selModel)}if(!this.selModel.hasRelaySetup){this.relayEvents(this.selModel,["selectionchange","beforeselect","beforedeselect","select","deselect"]);this.selModel.hasRelaySetup=true}if(this.disableSelection){this.selModel.locked=true}return this.selModel},getScrollTarget:function(){var d=this.getScrollerOwner(),c=d.query("tableview");return c[1]||c[0]},onHorizontalScroll:function(d,c){this.syncHorizontalScroll(c.scrollLeft)},syncHorizontalScroll:function(f){var d=this,e;if(d.rendered){e=d.getScrollTarget();e.el.dom.scrollLeft=f;d.headerCt.el.dom.scrollLeft=f;d.scrollLeftPos=f}},onStoreLoad:Ext.emptyFn,getEditorParent:function(){return this.body},bindStore:function(d){var c=this;c.store=d;c.getView().bindStore(d)},beforeDestroy:function(){Ext.destroy(this.verticalScroller);this.callParent()},reconfigure:function(f,e){var h=this,g=h.headerCt;if(h.lockable){h.reconfigureLockable(f,e)}else{if(e){delete h.scrollLeftPos;g.suspendLayouts();g.removeAll();g.add(e)}if(f){f=Ext.StoreManager.lookup(f);h.bindStore(f)}else{h.getView().refresh()}if(e){g.resumeLayouts(true)}g.setSortState()}h.fireEvent("reconfigure",h,f,e)}});Ext.define("Ext.grid.Panel",{extend:"Ext.panel.Table",requires:["Ext.grid.View"],alias:["widget.gridpanel","widget.grid"],alternateClassName:["Ext.list.ListView","Ext.ListView","Ext.grid.GridPanel"],viewType:"gridview",lockable:false,bothCfgCopy:["invalidateScrollerOnRefresh","hideHeaders","enableColumnHide","enableColumnMove","enableColumnResize","sortableColumns"],normalCfgCopy:["verticalScroller","verticalScrollDock","verticalScrollerType","scroll"],lockedCfgCopy:[],rowLines:true});Ext.define("Docs.view.examples.InlineEditor",{extend:"Ext.Panel",bodyPadding:2,autoScroll:true,componentCls:"inline-example-editor",initComponent:function(){this.addEvents("init","change");this.on("afterlayout",this.initCodeMirror,this);this.callParent(arguments)},initCodeMirror:function(b){if(!this.codemirror){this.codemirror=CodeMirror(this.body,{mode:"javascript",indentUnit:4,value:this.value,onChange:Ext.Function.bind(function(a){this.fireEvent("change")},this)});this.fireEvent("init")}},refresh:function(){this.codemirror.refresh()},getValue:function(){return this.codemirror?this.codemirror.getValue():this.value},getHeight:function(){var b=this.el.down(".CodeMirror-lines");return b?b.getHeight():undefined},selectAll:function(){var d=this.codemirror.lineCount()-1;var c=this.codemirror.getLine(d).length;this.codemirror.setSelection({line:0,ch:0},{line:d,ch:c})}});Ext.define("Docs.view.examples.InlinePreview",{extend:"Ext.Panel",requires:["Docs.view.examples.Device"],bodyPadding:"0 10",statics:{iframeCounter:0,getNextIframeId:function(){this.iframeCounter++;return this.iframeCounter.toString()}},options:{},constructor:function(b){b=b||{};b.iframeId=this.self.getNextIframeId();b.id="inline-preview-"+b.iframeId;this.callParent([b]);this.addEvents(["previewsuccess","previewfailure"])},initComponent:function(){this.html=this.getHtml();this.callParent(arguments)},getHtml:function(){if(Docs.data.touchExamplesUi){return Ext.create("Docs.view.examples.Device",{url:"eg-iframe.html",id:this.iframeId,device:this.options.device,orientation:this.options.orientation}).toHtml()}else{var b=new Ext.XTemplate('');return b.apply({id:this.iframeId})}},update:function(h){var f=this.options;var e=Ext.get(this.iframeId);var g=Ext.Function.bind(this.iframeCallback,this);if(e){e.on("load",function(){Ext.Function.defer(function(){e.dom.contentWindow.loadInlineExample(h+"\n",f,g)},100)},this,{single:true});e.dom.src="eg-iframe.html"}},iframeCallback:function(c,d){if(c){this.fireEvent("previewsuccess",this)}else{this.fireEvent("previewfailure",this,d)}},getHeight:function(){return document.getElementById(this.iframeId).parentNode.clientHeight}});Ext.define("Docs.view.examples.Inline",{extend:"Ext.Panel",alias:"widget.inlineexample",requires:["Docs.view.examples.InlineEditor","Docs.view.examples.InlinePreview"],componentCls:"inline-example-cmp",layout:"card",border:0,resizable:{transparent:true,handles:"s",constrainTo:false},maxCodeHeight:400,options:{},constructor:function(){this.callParent(arguments);this.addEvents("previewsuccess","previewfailure")},initComponent:function(){this.options=Ext.apply({device:"phone",orientation:"landscape"},this.options);this.items=[this.editor=Ext.create("Docs.view.examples.InlineEditor",{cmpName:"code",value:this.value,listeners:{init:this.updateHeight,change:this.updateHeight,scope:this}}),this.preview=Ext.create("Docs.view.examples.InlinePreview",{cmpName:"preview",options:this.options})];this.relayEvents(this.preview,["previewsuccess","previewfailure"]);if(this.options.preview){this.activeItem=1;if(this.toolbar){this.toolbar.activateButton("preview")}}else{this.activeItem=0;if(this.toolbar){this.toolbar.activateButton("code")}}this.on("afterrender",this.init,this);this.callParent(arguments)},init:function(){var b=this.layout.getActiveItem();if(b.cmpName==="preview"){this.showPreview()}this.updateHeight();if(this.toolbar){this.initToolbarEvents()}},initToolbarEvents:function(){this.toolbar.on("buttonclick",function(b){if(b==="code"){this.showCode()}else{if(b==="preview"){this.showPreview()}else{if(b==="copy"){this.showCode();this.editor.selectAll()}}}},this)},showCode:function(){this.layout.setActiveItem(0);this.updateHeight();if(this.toolbar){this.toolbar.activateButton("code")}},showPreview:function(){this.preview.update(this.editor.getValue());this.layout.setActiveItem(1);this.updateHeight();if(this.toolbar){this.toolbar.activateButton("preview")}},updateHeight:function(){var d=this.preview.getHeight();var e=this.editor.getHeight();var f=30;if(Docs.data.touchExamplesUi&&d>0){this.setHeight(d+f)}else{if(e>0){this.setHeight(Ext.Number.constrain(e+f,0,this.maxCodeHeight))}}}});Ext.define("Docs.view.tests.BatchRunner",{extend:"Ext.container.Container",requires:["Docs.view.examples.Inline"],initComponent:function(){this.addEvents("start","finish","statuschange");this.callParent(arguments)},run:function(b){this.fireEvent("start");this.runNext({pass:0,fail:0,total:b.length,remaining:b})},runNext:function(h){this.fireEvent("statuschange",h);if(!h.remaining||h.remaining.length<1){this.fireEvent("finish");return}var j=h.remaining.shift();var i=j.get("options");i.preview=false;var f="var alert = function(){};\n";var g=Ext.create("Docs.view.examples.Inline",{cls:"doc-test-preview",height:0,value:f+j.get("code"),options:i,listeners:{previewsuccess:function(a){this.onSuccess(j,h)},previewfailure:function(a,b){this.onFailure(j,h,b)},scope:this}});this.removeAll();this.add(g);g.showPreview()},onSuccess:function(d,c){d.set("status","success");d.commit();c.pass++;this.runNext(c)},onFailure:function(e,f,d){e.set("status","failure");e.set("message",d.toString());e.commit();f.fail++;this.runNext(f)}});Ext.define("Ext.tip.Tip",{extend:"Ext.panel.Panel",alternateClassName:"Ext.Tip",minWidth:40,maxWidth:300,shadow:"sides",defaultAlign:"tl-bl?",constrainPosition:true,autoRender:true,hidden:true,baseCls:Ext.baseCSSPrefix+"tip",floating:{shadow:true,shim:true,constrain:true},focusOnToFront:false,closeAction:"hide",ariaRole:"tooltip",initComponent:function(){var b=this;b.floating=Ext.apply({},{shadow:b.shadow},b.self.prototype.floating);b.callParent(arguments);b.frame=true;b.constrain=b.constrain||b.constrainPosition},showAt:function(c){var d=this;this.callParent(arguments);if(d.isVisible()){d.setPagePosition(c[0],c[1]);if(d.constrainPosition||d.constrain){d.doConstrain()}d.toFront(true)}},showBy:function(d,c){this.showAt(this.el.getAlignToXY(d,c||this.defaultAlign))},initDraggable:function(){var b=this;b.draggable={el:b.getDragEl(),delegate:b.header.el,constrain:b,constrainTo:b.el.getScopeParent()};Ext.Component.prototype.initDraggable.call(b)},ghost:undefined,unghost:undefined});Ext.define("Ext.tip.ToolTip",{extend:"Ext.tip.Tip",alias:"widget.tooltip",alternateClassName:"Ext.ToolTip",autoHide:true,showDelay:500,hideDelay:200,dismissDelay:5000,trackMouse:false,anchorToTarget:true,anchorOffset:0,targetCounter:0,quickShowInterval:250,initComponent:function(){var b=this;b.callParent(arguments);b.lastActive=new Date();b.setTarget(b.target);b.origAnchor=b.anchor},onRender:function(d,e){var f=this;f.callParent(arguments);f.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+f.getAnchorPosition();f.anchorEl=f.el.createChild({cls:Ext.baseCSSPrefix+"tip-anchor "+f.anchorCls})},setTarget:function(g){var e=this,f=Ext.get(g),h;if(e.target){h=Ext.get(e.target);e.mun(h,"mouseover",e.onTargetOver,e);e.mun(h,"mouseout",e.onTargetOut,e);e.mun(h,"mousemove",e.onMouseMove,e)}e.target=f;if(f){e.mon(f,{freezeEvent:true,mouseover:e.onTargetOver,mouseout:e.onTargetOut,mousemove:e.onMouseMove,scope:e})}if(e.anchor){e.anchorTarget=e.target}},onMouseMove:function(g){var e=this,f=e.delegate?g.getTarget(e.delegate):e.triggerElement=true,h;if(f){e.targetXY=g.getXY();if(f===e.triggerElement){if(!e.hidden&&e.trackMouse){h=e.getTargetXY();if(e.constrainPosition){h=e.el.adjustForConstraints(h,e.el.getScopeParent())}e.setPagePosition(h)}}else{e.hide();e.lastActive=new Date(0);e.onTargetOver(g)}}else{if((!e.closable&&e.isVisible())&&e.autoHide!==false){e.hide()}}},getTargetXY:function(){var r=this,w,x,n,z,s,p,v,o,q,y,t,u;if(r.delegate){r.anchorTarget=r.triggerElement}if(r.anchor){r.targetCounter++;x=r.getOffsets();n=(r.anchorToTarget&&!r.trackMouse)?r.el.getAlignToXY(r.anchorTarget,r.getAnchorAlign()):r.targetXY;z=Ext.Element.getViewWidth()-5;s=Ext.Element.getViewHeight()-5;p=document.documentElement;v=document.body;o=(p.scrollLeft||v.scrollLeft||0)+5;q=(p.scrollTop||v.scrollTop||0)+5;y=[n[0]+x[0],n[1]+x[1]];t=r.getSize();u=r.constrainPosition;r.anchorEl.removeCls(r.anchorCls);if(r.targetCounter<2&&u){if(y[0]z){if(r.anchorToTarget){r.defaultAlign="r-l";if(r.mouseOffset){r.mouseOffset[0]*=-1}}r.anchor="right";return r.getTargetXY()}if(y[1]s){if(r.anchorToTarget){r.defaultAlign="b-t";if(r.mouseOffset){r.mouseOffset[1]*=-1}}r.anchor="bottom";return r.getTargetXY()}}r.anchorCls=Ext.baseCSSPrefix+"tip-anchor-"+r.getAnchorPosition();r.anchorEl.addCls(r.anchorCls);r.targetCounter=0;return y}else{w=r.getMouseOffset();return(r.targetXY)?[r.targetXY[0]+w[0],r.targetXY[1]+w[1]]:w}},getMouseOffset:function(){var d=this,c=d.anchor?[0,0]:[15,18];if(d.mouseOffset){c[0]+=d.mouseOffset[0];c[1]+=d.mouseOffset[1]}return c},getAnchorPosition:function(){var c=this,d;if(c.anchor){c.tipAnchor=c.anchor.charAt(0)}else{d=c.defaultAlign.match(/^([a-z]+)-([a-z]+)(\?)?$/);if(!d){Ext.Error.raise('The AnchorTip.defaultAlign value "'+c.defaultAlign+'" is invalid.')}c.tipAnchor=d[1].charAt(0)}switch(c.tipAnchor){case"t":return"top";case"b":return"bottom";case"r":return"right"}return"left"},getAnchorAlign:function(){switch(this.anchor){case"top":return"tl-bl";case"left":return"tl-tr";case"right":return"tr-tl";default:return"bl-tl"}},getOffsets:function(){var h=this,g,e,f=h.getAnchorPosition().charAt(0);if(h.anchorToTarget&&!h.trackMouse){switch(f){case"t":e=[0,9];break;case"b":e=[0,-13];break;case"r":e=[-13,0];break;default:e=[9,0];break}}else{switch(f){case"t":e=[-15-h.anchorOffset,30];break;case"b":e=[-19-h.anchorOffset,-13-h.el.dom.offsetHeight];break;case"r":e=[-15-h.el.dom.offsetWidth,-13-h.anchorOffset];break;default:e=[25,-13-h.anchorOffset];break}}g=h.getMouseOffset();e[0]+=g[0];e[1]+=g[1];return e},onTargetOver:function(f){var d=this,e;if(d.disabled||f.within(d.target.dom,true)){return}e=f.getTarget(d.delegate);if(e){d.triggerElement=e;d.clearTimer("hide");d.targetXY=f.getXY();d.delayShow()}},delayShow:function(){var b=this;if(b.hidden&&!b.showTimer){if(Ext.Date.getElapsed(b.lastActive)w)){e-=1}Ext.suspendLayouts();if(t!==z){t.remove(y,false);if(t.isGroupHeader){if(!t.items.getCount()){u=t.ownerCt;u.remove(t,false);t.el.dom.parentNode.removeChild(t.el.dom)}}}if(t===z){z.move(w,e)}else{z.insert(e,y)}if(z.isGroupHeader){if(z!==t){y.savedFlex=y.flex;delete y.flex;y.width=y.getWidth()}}else{if(y.savedFlex){y.flex=y.savedFlex;delete y.width}}E.purgeCache();Ext.resumeLayouts(true);E.onHeaderMoved(y,C,H,s);if(!t.items.getCount()){t.destroy()}}}}}});Ext.define("Ext.grid.plugin.HeaderReorderer",{extend:"Ext.util.Observable",requires:["Ext.grid.header.DragZone","Ext.grid.header.DropZone"],alias:"plugin.gridheaderreorderer",init:function(b){this.headerCt=b;b.on({render:this.onHeaderCtRender,single:true,scope:this})},destroy:function(){Ext.destroy(this.dragZone,this.dropZone)},onHeaderCtRender:function(){var b=this;b.dragZone=new Ext.grid.header.DragZone(b.headerCt);b.dropZone=new Ext.grid.header.DropZone(b.headerCt);if(b.disabled){b.dragZone.disable()}},enable:function(){this.disabled=false;if(this.dragZone){this.dragZone.enable()}},disable:function(){this.disabled=true;if(this.dragZone){this.dragZone.disable()}}});Ext.define("Ext.grid.header.Container",{extend:"Ext.container.Container",requires:["Ext.grid.ColumnLayout","Ext.grid.plugin.HeaderResizer","Ext.grid.plugin.HeaderReorderer"],uses:["Ext.grid.column.Column","Ext.menu.Menu","Ext.menu.CheckItem","Ext.menu.Separator"],border:true,alias:"widget.headercontainer",baseCls:Ext.baseCSSPrefix+"grid-header-ct",dock:"top",weight:100,defaultType:"gridcolumn",detachOnRemove:false,defaultWidth:100,sortAscText:"Sort Ascending",sortDescText:"Sort Descending",sortClearText:"Clear Sort",columnsText:"Columns",headerOpenCls:Ext.baseCSSPrefix+"column-header-open",triStateSort:false,ddLock:false,dragging:false,sortable:true,initComponent:function(){var b=this;b.plugins=b.plugins||[];if(!b.isHeader){if(b.enableColumnResize){b.resizer=new Ext.grid.plugin.HeaderResizer();b.plugins.push(b.resizer)}if(b.enableColumnMove){b.reorderer=new Ext.grid.plugin.HeaderReorderer();b.plugins.push(b.reorderer)}}if(b.isHeader&&!b.items){b.layout=b.layout||"auto"}else{b.layout=Ext.apply({type:"gridcolumn",align:"stretchmax"},b.initialConfig.layout)}b.defaults=b.defaults||{};Ext.applyIf(b.defaults,{triStateSort:b.triStateSort,sortable:b.sortable});b.menuTask=new Ext.util.DelayedTask(b.updateMenuDisabledState,b);b.callParent();b.addEvents("columnresize","headerclick","headertriggerclick","columnmove","columnhide","columnshow","sortchange","menucreate")},onDestroy:function(){var b=this;b.menuTask.cancel();Ext.destroy(b.resizer,b.reorderer);b.callParent()},applyColumnsState:function(o){if(!o||!o.length){return}var m=this,p=0,n=o.length,k,c,i,l;for(k=0;kgridcolumn[hideable]"),j=i.length,m;for(;h{text}{%this.renderContainer(out,values)%}',dataIndex:null,text:" ",menuText:null,emptyCellText:" ",sortable:true,resizable:true,hideable:true,menuDisabled:false,renderer:false,editRenderer:false,align:"left",draggable:true,initDraggable:Ext.emptyFn,isHeader:true,componentLayout:"columncomponent",initResizable:Ext.emptyFn,initComponent:function(){var d=this,c;if(Ext.isDefined(d.header)){d.text=d.header;delete d.header}if(!d.triStateSort){d.possibleSortStates.length=2}if(Ext.isDefined(d.columns)){d.isGroupHeader=true;if(d.dataIndex){Ext.Error.raise("Ext.grid.column.Column: Group header may not accept a dataIndex")}if((d.width&&d.width!==Ext.grid.header.Container.prototype.defaultWidth)||d.flex){Ext.Error.raise("Ext.grid.column.Column: Group header does not support setting explicit widths or flexs. The group header width is calculated by the sum of its children.")}d.items=d.columns;delete d.columns;delete d.flex;delete d.width;d.cls=(d.cls||"")+" "+Ext.baseCSSPrefix+"group-header";d.sortable=false;d.resizable=false;d.align="center"}else{d.isContainer=false;if(d.flex){d.minWidth=d.minWidth||Ext.grid.plugin.HeaderResizer.prototype.minColWidth}}d.addCls(Ext.baseCSSPrefix+"column-header-align-"+d.align);c=d.renderer;if(c){if(typeof c=="string"){d.renderer=Ext.util.Format[c]}d.hasCustomRenderer=true}else{if(d.defaultRenderer){d.scope=d;d.renderer=d.defaultRenderer}}d.callParent(arguments);d.on({element:"el",click:d.onElClick,dblclick:d.onElDblClick,scope:d});d.on({element:"titleEl",mouseenter:d.onTitleMouseOver,mouseleave:d.onTitleMouseOut,scope:d})},onAdd:function(b){b.isSubHeader=true;b.addCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},onRemove:function(b){b.isSubHeader=false;b.removeCls(Ext.baseCSSPrefix+"group-sub-header");this.callParent(arguments)},initRenderData:function(){var b=this;return Ext.applyIf(b.callParent(arguments),{text:b.text,menuDisabled:b.menuDisabled})},applyColumnState:function(d){var e=this,f=Ext.isDefined;e.applyColumnsState(d.columns);if(f(d.hidden)){e.hidden=d.hidden}if(f(d.locked)){e.locked=d.locked}if(f(d.sortable)){e.sortable=d.sortable}if(f(d.width)){delete e.flex;e.width=d.width}else{if(f(d.flex)){delete e.width;e.flex=d.flex}}},getColumnState:function(){var j=this,g=j.items.items,h=g?g.length:0,k,l=[],i={id:j.stateId||j.headerId};j.savePropsToState(["hidden","sortable","locked","flex","width"],i);if(j.isGroupHeader){for(k=0;k:not([hidden])");if(l.length===1&&l[0]==k){k.ownerCt.hide();return}}Ext.suspendLayouts();if(k.isGroupHeader){l=k.items.items;for(o=0,m=l.length;o*");for(n=0,j=p.length;nActions",sortable:false,constructor:function(h){var g=this,f=Ext.apply({},h),e=f.items||[g];g.origRenderer=f.renderer||g.renderer;g.origScope=f.scope||g.scope;delete g.renderer;delete g.scope;delete f.renderer;delete f.scope;delete f.items;g.callParent([f]);g.items=e;if(g.origRenderer){g.hasCustomRenderer=true}},defaultRenderer:function(m,k){var n=this,q=Ext.baseCSSPrefix,i=n.origScope||n,o=n.items,p=o.length,r=0,l;m=Ext.isFunction(n.origRenderer)?n.origRenderer.apply(i,arguments)||"":"";k.tdCls+=" "+Ext.baseCSSPrefix+"action-col-cell";for(;r"}return m},enableAction:function(d,e){var f=this;if(!d){d=0}else{if(!Ext.isNumber(d)){d=Ext.Array.indexOf(f.items,d)}}f.items[d].disabled=false;f.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+d).removeCls(f.disabledCls);if(!e){f.fireEvent("enable",f)}},disableAction:function(d,e){var f=this;if(!d){d=0}else{if(!Ext.isNumber(d)){d=Ext.Array.indexOf(f.items,d)}}f.items[d].disabled=true;f.up("tablepanel").el.select("."+Ext.baseCSSPrefix+"action-col-"+d).addCls(f.disabledCls);if(!e){f.fireEvent("disable",f)}},destroy:function(){delete this.items;delete this.renderer;return this.callParent(arguments)},processEvent:function(v,s,q,B,u,x,z,e){var w=this,y=x.getTarget(),A,p,t,r=v=="keydown"&&x.getKey();if(r&&!Ext.fly(y).findParent(s.cellSelector)){y=Ext.fly(q).down("."+Ext.baseCSSPrefix+"action-col-icon",true)}if(y&&(A=y.className.match(w.actionIdRe))){p=w.items[parseInt(A[1],10)];if(p){if(v=="click"||(r==x.ENTER||r==x.SPACE)){t=p.handler||w.handler;if(t&&!p.disabled){t.call(p.scope||w.scope||w,s,B,u,p,x,z,e)}}else{if(v=="mousedown"&&p.stopSelection!==false){return false}}}}return w.callParent(arguments)},cascade:function(c,d){c.call(d||this,this)},getRefItems:function(){return[]}});Ext.define("Ext.tree.Column",{extend:"Ext.grid.column.Column",alias:"widget.treecolumn",tdCls:Ext.baseCSSPrefix+"grid-cell-treecolumn",initComponent:function(){var d=this.renderer||this.defaultRenderer,c=this.scope||window;this.renderer=function(C,A,J,K,D,H,E){var w=[],y=Ext.String.format,b=J.getDepth(),x=Ext.baseCSSPrefix+"tree-",I=x+"elbow-",B=x+"expander",F='',a='',G=d.apply(c,arguments),z=J.get("href"),v=J.get("hrefTarget"),L=J.get("cls");while(J){if(!J.isRoot()||(J.isRoot()&&E.rootVisible)){if(J.getDepth()===b){w.unshift(y(F,x+"icon "+x+"icon"+(J.get("icon")?"-inline ":(J.isLeaf()?"-leaf ":"-parent "))+(J.get("iconCls")||""),J.get("icon")||Ext.BLANK_IMAGE_URL));if(J.get("checked")!==null){w.unshift(y(a,(x+"checkbox")+(J.get("checked")?" "+x+"checkbox-checked":""),J.get("checked")?'aria-checked="true"':""));if(J.get("checked")){A.tdCls+=(" "+x+"checked")}}if(J.isLast()){if(J.isExpandable()){w.unshift(y(F,(I+"end-plus "+B),Ext.BLANK_IMAGE_URL))}else{w.unshift(y(F,(I+"end"),Ext.BLANK_IMAGE_URL))}}else{if(J.isExpandable()){w.unshift(y(F,(I+"plus "+B),Ext.BLANK_IMAGE_URL))}else{w.unshift(y(F,(x+"elbow"),Ext.BLANK_IMAGE_URL))}}}else{if(J.isLast()||J.getDepth()===0){w.unshift(y(F,(I+"empty"),Ext.BLANK_IMAGE_URL))}else{if(J.getDepth()!==0){w.unshift(y(F,(I+"line"),Ext.BLANK_IMAGE_URL))}}}}J=J.parentNode}if(z){w.push('',G,"")}else{w.push(G)}if(L){A.tdCls+=" "+L}return w.join("")};this.callParent(arguments)},defaultRenderer:function(b){return b}});Ext.define("Ext.tree.Panel",{extend:"Ext.panel.Table",alias:"widget.treepanel",alternateClassName:["Ext.tree.TreePanel","Ext.TreePanel"],requires:["Ext.tree.View","Ext.selection.TreeModel","Ext.tree.Column","Ext.data.TreeStore"],viewType:"treeview",selType:"treemodel",treeCls:Ext.baseCSSPrefix+"tree-panel",deferRowRender:false,rowLines:false,lines:true,useArrows:false,singleExpand:false,ddConfig:{enableDrag:true,enableDrop:true},rootVisible:true,displayField:"text",root:null,normalCfgCopy:["displayField","root","singleExpand","useArrows","lines","rootVisible","scroll"],lockedCfgCopy:["displayField","root","singleExpand","useArrows","lines","rootVisible"],isTree:true,constructor:function(b){b=b||{};if(b.animate===undefined){b.animate=Ext.isDefined(this.animate)?this.animate:Ext.enableFx}this.enableAnimations=b.animate;delete b.animate;this.callParent([b])},initComponent:function(){var f=this,d=[f.treeCls],e;if(f.useArrows){d.push(Ext.baseCSSPrefix+"tree-arrows");f.lines=false}if(f.lines){d.push(Ext.baseCSSPrefix+"tree-lines")}else{if(!f.useArrows){d.push(Ext.baseCSSPrefix+"tree-no-lines")}}if(Ext.isString(f.store)){f.store=Ext.StoreMgr.lookup(f.store)}else{if(!f.store||Ext.isObject(f.store)&&!f.store.isStore){f.store=new Ext.data.TreeStore(Ext.apply({},f.store||{},{root:f.root,fields:f.fields,model:f.model,folderSort:f.folderSort}))}else{if(f.root){f.store=Ext.data.StoreManager.lookup(f.store);f.store.setRootNode(f.root);if(f.folderSort!==undefined){f.store.folderSort=f.folderSort;f.store.sort()}}}}f.viewConfig=Ext.apply({},f.viewConfig);f.viewConfig=Ext.applyIf(f.viewConfig,{rootVisible:f.rootVisible,animate:f.enableAnimations,singleExpand:f.singleExpand,node:f.store.getRootNode(),hideHeaders:f.hideHeaders});f.mon(f.store,{scope:f,rootchange:f.onRootChange,clear:f.onClear});f.relayEvents(f.store,["beforeload","load"]);f.store.on({append:f.createRelayer("itemappend"),remove:f.createRelayer("itemremove"),move:f.createRelayer("itemmove",[0,4]),insert:f.createRelayer("iteminsert"),beforeappend:f.createRelayer("beforeitemappend"),beforeremove:f.createRelayer("beforeitemremove"),beforemove:f.createRelayer("beforeitemmove"),beforeinsert:f.createRelayer("beforeiteminsert"),expand:f.createRelayer("itemexpand",[0,1]),collapse:f.createRelayer("itemcollapse",[0,1]),beforeexpand:f.createRelayer("beforeitemexpand",[0,1]),beforecollapse:f.createRelayer("beforeitemcollapse",[0,1])});if(!f.columns){if(f.initialConfig.hideHeaders===undefined){f.hideHeaders=true}f.addCls(Ext.baseCSSPrefix+"autowidth-table");f.columns=[{xtype:"treecolumn",text:"Name",width:Ext.isIE6?null:10000,dataIndex:f.displayField}]}if(f.cls){d.push(f.cls)}f.cls=d.join(" ");f.callParent();e=f.getView();f.relayEvents(e,["checkchange","afteritemexpand","afteritemcollapse"]);if(!e.rootVisible&&!f.getRootNode()){f.setRootNode({expanded:true})}},onClear:function(){this.view.onClear()},setRootNode:function(){return this.store.setRootNode.apply(this.store,arguments)},getRootNode:function(){return this.store.getRootNode()},onRootChange:function(b){this.view.setRootNode(b)},getChecked:function(){return this.getView().getChecked()},isItemChecked:function(b){return b.get("checked")},expandAll:function(h,i){var f=this.getRootNode(),j=this.enableAnimations,g=this.getView();if(f){if(!j){g.beginBulkUpdate()}f.expand(true,h,i);if(!j){g.endBulkUpdate()}}},collapseAll:function(h,i){var f=this.getRootNode(),j=this.enableAnimations,g=this.getView();if(f){if(!j){g.beginBulkUpdate()}if(g.rootVisible){f.collapse(true,h,i)}else{f.collapseChildren(true,h,i)}if(!j){g.endBulkUpdate()}}},expandPath:function(l,q,v,p,m){var s=this,t=s.getRootNode(),u=1,r=s.getView(),n,o;q=q||s.getRootNode().idProperty;v=v||"/";if(Ext.isEmpty(l)){Ext.callback(p,m||s,[false,null]);return}n=l.split(v);if(t.get(q)!=n[1]){Ext.callback(p,m||s,[false,t]);return}o=function(){if(++u===n.length){Ext.callback(p,m||s,[true,t]);return}var a=t.findChild(q,n[u]);if(!a){Ext.callback(p,m||s,[false,t]);return}t=a;t.expand(false,o)};t.expand(false,o)},selectPath:function(l,m,n,k,j){var o=this,p,i;m=m||o.getRootNode().idProperty;n=n||"/";p=l.split(n);i=p.pop();o.expandPath(p.join(n),m,n,function(a,b){var c=false;if(a&&b){b=b.findChild(m,i);if(b){o.getSelectionModel().select(b);Ext.callback(k,j||o,[true,b]);c=true}}else{if(b===o.getRootNode()){c=true}}Ext.callback(k,j||o,[c,b])},o)}});Ext.define("Docs.view.DocTree",{extend:"Ext.tree.Panel",alias:"widget.doctree",cls:"doc-tree iScroll",useArrows:true,rootVisible:false,border:false,bodyBorder:false,initComponent:function(){this.addEvents("urlclick");this.root.expanded=true;this.on("itemclick",this.onItemClick,this);this.on("beforeitemcollapse",this.handleBeforeExpandCollapse,this);this.on("beforeitemexpand",this.handleBeforeExpandCollapse,this);this.callParent();this.nodeTpl=new Ext.XTemplate('{text}');this.initNodeLinks()},initNodeLinks:function(){this.getRootNode().cascadeBy(this.applyNodeTpl,this)},applyNodeTpl:function(b){if(b.get("leaf")){b.set("text",this.nodeTpl.apply({text:b.get("text"),url:b.raw.url}));b.commit()}},onItemClick:function(h,j,k,l,i){var e=j.raw?j.raw.url:j.data.url;if(e){this.fireEvent("urlclick",e,i)}else{if(!j.isLeaf()){if(j.isExpanded()){j.collapse(false)}else{j.expand(false)}}}},selectUrl:function(d){var c=this.findNodeByUrl(d);if(c){c.bubble(function(a){a.expand()});this.getSelectionModel().select(c)}else{this.getSelectionModel().deselectAll()}},findNodeByUrl:function(b){return this.getRootNode().findChildBy(function(a){return b===a.raw.url},this,true)},findRecordByUrl:function(d){var c=this.findNodeByUrl(d);return c?c.raw:undefined},handleBeforeExpandCollapse:function(b){if(this.getView().isAnimating(b)){return false}}});Ext.define("Docs.view.GroupTree",{extend:"Docs.view.DocTree",alias:"widget.grouptree",initComponent:function(){this.root={children:[],text:"Root"};Ext.Array.each(this.data,function(b){this.root.children.push({text:b.title,expanded:true,children:Ext.Array.map(b.items,this.convert),iconCls:"icon-pkg"})},this);this.callParent()}});Ext.define("Docs.model.Stats",{extend:"Ext.data.Model",fields:["name","local_cfgs","local_properties","local_methods","local_events","local_members","total_cfgs","total_properties","total_methods","total_events","total_members","fanIn","fanOut","class_wc","members_wc","wc_per_member"]});Ext.define("Docs.view.stats.Index",{extend:"Ext.container.Container",alias:"widget.statsindex",requires:["Ext.grid.Panel","Docs.model.Stats"],mixins:["Docs.view.Scrolling"],layout:"fit",initComponent:function(){var b=Ext.create("Ext.data.Store",{model:"Docs.model.Stats",data:Docs.data.stats,sorters:"name"});this.items=[{xtype:"grid",store:b,title:"Statistics",columns:[{text:"Name",width:200,dataIndex:"name"},{text:"Configs",width:50,align:"right",dataIndex:"local_cfgs"},{text:"Props",width:50,align:"right",dataIndex:"local_properties"},{text:"Methods",width:50,align:"right",dataIndex:"local_methods"},{text:"Events",width:50,align:"right",dataIndex:"local_events"},{text:"Members",width:50,align:"right",dataIndex:"local_members",renderer:function(a){return""+a+""}},{text:"All Configs",width:50,align:"right",dataIndex:"total_cfgs"},{text:"All Props",width:50,align:"right",dataIndex:"total_properties"},{text:"All Methods",width:50,align:"right",dataIndex:"total_methods"},{text:"All Events",width:50,align:"right",dataIndex:"total_events"},{text:"All Members",width:50,align:"right",dataIndex:"total_members",renderer:function(a){return""+a+""}},{text:"Fan-in",width:50,align:"right",dataIndex:"fanIn"},{text:"Fan-out",width:50,align:"right",dataIndex:"fanOut"},{text:"Class word-count",width:50,align:"right",dataIndex:"class_wc"},{text:"Members word-count",width:50,align:"right",dataIndex:"members_wc"},{text:"wc / member",width:50,align:"right",dataIndex:"wc_per_member"}]}];this.callParent(arguments)},getTab:function(){var b=(Docs.data.stats||[]).length>0;return b?{cls:"stats",href:"#!/stats",tooltip:"Statistics",text:"Stats"}:false}});Ext.define("Docs.model.Test",{extend:"Ext.data.Model",fields:["id","name","href","code","options",{name:"status",defaultValue:"ready"},"message"]});Ext.define("Docs.view.tests.Index",{extend:"Ext.container.Container",requires:["Docs.model.Test","Docs.view.tests.BatchRunner"],mixins:["Docs.view.Scrolling"],alias:"widget.testsindex",layout:{type:"vbox",align:"stretch",shrinkToFit:true},padding:10,initComponent:function(){this.store=Ext.create("Ext.data.Store",{model:"Docs.model.Test",data:[]});this.grid=Ext.create("Ext.grid.Panel",{itemId:"testsgrid",padding:"5 0 5 0",autoScroll:true,flex:1,store:this.store,selModel:{mode:"MULTI"},columns:[{xtype:"templatecolumn",text:"Name",width:300,tpl:'{name}'},{xtype:"templatecolumn",text:"Status",width:80,tpl:'{status}'},{text:"Message",flex:1,dataIndex:"message"}],listeners:{itemdblclick:function(c,d){this.batchRunner.run([d])},scope:this}});this.batchRunner=Ext.create("Docs.view.tests.BatchRunner",{height:0,listeners:{start:this.disable,finish:this.enable,statuschange:this.updateTestStatus,scope:this}});this.items=[{html:"
Inline examples test page
",height:30},{itemId:"testcontainer",layout:{type:"vbox",align:"stretch",shrinkToFit:true},flex:1,items:[{itemId:"testcontrols",layout:"hbox",items:[{html:"Double-click to run an example, or",margin:"5 5 5 0"},{xtype:"button",itemId:"run-selected-button",text:"Run Selected",margin:5,handler:function(){this.batchRunner.run(this.grid.getSelectionModel().getSelection())},scope:this},{html:"or",margin:5},{xtype:"button",itemId:"run-all-button",text:"Run All Examples",margin:5,handler:function(){this.batchRunner.run(this.store.getRange())},scope:this},{itemId:"testStatus",margin:"5 5 5 15"}]},this.grid]},this.batchRunner];this.callParent(arguments)},getTab:function(){return Docs.data.tests?{cls:"tests",href:"#!/tests",tooltip:"Tests",text:"Tests"}:false},addExamples:function(b){this.store.add(b);this.setStatus(true,this.store.getCount()+" examples loaded.")},updateTestStatus:function(d){var c=d.pass+d.fail;this.setStatus(d.fail===0,c+"/"+d.total+" examples tested, "+d.fail+" failures")},setStatus:function(d,f){var e=d?"doc-test-success":"doc-test-failure";this.down("#testStatus").update(''+f+"")}});Ext.define("Ext.data.SequentialIdGenerator",{extend:"Ext.data.IdGenerator",alias:"idgen.sequential",constructor:function(){var b=this;b.callParent(arguments);b.parts=[b.prefix,""]},prefix:"",seed:1,generate:function(){var d=this,c=d.parts;c[1]=d.seed++;return c.join("")}});Ext.define("Ext.data.proxy.WebStorage",{extend:"Ext.data.proxy.Client",alternateClassName:"Ext.data.WebStorageProxy",requires:["Ext.data.SequentialIdGenerator"],id:undefined,constructor:function(b){this.callParent(arguments);this.cache={};if(this.getStorageObject()===undefined){Ext.Error.raise("Local Storage is not supported in this browser, please use another type of data proxy")}this.id=this.id||(this.store?this.store.storeId:undefined);if(this.id===undefined){Ext.Error.raise("No unique id was provided to the local storage proxy. See Ext.data.proxy.LocalStorage documentation for details")}this.initialize()},create:function(p,l,i){var m=this,q=p.records,r=q.length,t=m.getIds(),s,n,o;p.setStarted();if(m.isHierarchical===undefined){m.isHierarchical=!!q[0].isNode;if(m.isHierarchical){m.getStorageObject().setItem(m.getTreeKey(),true)}}for(o=0;o-1){this.store.removeAt(e)}this.store.add({key:d,value:f});this.syncStore()},get:function(c){var d=this.store.findExact("key",c);return d>-1?this.store.getAt(d).get("value"):this.defaults[c]}});Ext.define("Docs.Application",{extend:"Ext.app.Application",name:"Docs",requires:["Docs.History","Docs.Settings"],uses:["Ext.util.History","Ext.data.JsonP"],controllers:["Auth","Welcome","Failure","Classes","Comments","CommentsMeta","Search","InlineExamples","Examples","Guides","Videos","Stats","Tabs","Tests"],launch:function(){Docs.App=this;Docs.Settings.init();Ext.create("Docs.view.Viewport");Docs.History.init();if(Docs.initEventTracking){Docs.initEventTracking()}Ext.get("loading").remove()}});Ext.define("Docs.view.comments.Index",{extend:"Ext.panel.Panel",alias:"widget.commentindex",mixins:["Docs.view.Scrolling"],requires:["Docs.Settings"],cls:"comment-index",margin:"10 0 0 0",layout:"fit",dockedItems:[{xtype:"component",dock:"top",html:["