roojs-core.js
authorAlan Knowles <alan@akbkhome.com>
Sat, 7 Apr 2012 07:54:32 +0000 (15:54 +0800)
committerAlan Knowles <alan@akbkhome.com>
Sat, 7 Apr 2012 07:54:32 +0000 (15:54 +0800)
roojs-core-debug.js
roojs-ui.js
roojs-ui-debug.js
roojs-all.js
roojs-debug.js

roojs-all.js
roojs-debug.js
roojs-ui-debug.js
roojs-ui.js

index 64dcac4..80d3029 100644 (file)
@@ -1142,7 +1142,8 @@ this.el.unmask(this.removeMask);},onLoad:function(){this.el.unmask(this.removeMa
 //Roo/XTemplate.js
 Roo.XTemplate=function(){Roo.XTemplate.superclass.constructor.apply(this,arguments);if(this.html){this.compile();}};Roo.extend(Roo.XTemplate,Roo.Template,{re:/\{([\w-\.]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var s=this.html;s=['<tpl>',s,'</tpl>'].join('');var re=/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,A=/^<tpl\b[^>]*?for="(.*?)"/,B=/^<tpl\b[^>]*?if="(.*?)"/,C=/^<tpl\b[^>]*?exec="(.*?)"/,m,id=0,D=[];while(true==!!(m=s.match(re))){var m2=m[0].match(A),m3=m[0].match(B),m4=m[0].match(C),E=null,fn=null,F=null,G=m2&&m2[1]?m2[1]:'';if(m3){E=m3&&m3[1]?m3[1]:null;if(E){fn=new Function('values','parent','with(values){ return '+(Roo.util.Format.htmlDecode(E))+'; }');}}if(m4){E=m4&&m4[1]?m4[1]:null;if(E){F=new Function('values','parent','with(values){ '+(Roo.util.Format.htmlDecode(E))+'; }');}}if(G){switch(G){case '.':G=new Function('values','parent','with(values){ return values; }');break;case '..':G=new Function('values','parent','with(values){ return parent; }');break;default:G=new Function('values','parent','with(values){ return '+G+'; }');}}
 D.push({id:id,target:G,exec:F,test:fn,body:m[1]||''});s=s.replace(m[0],'{xtpl'+id+'}');++id;}for(var i=D.length-1;i>=0;--i){this.compileTpl(D[i]);}
-this.master=D[D.length-1];this.tpls=D;return this;},applySubTemplate:function(id,A,B){var t=this.tpls[id];try{if(t.test&&!t.test.call(this,A,B)){return '';}if(t.exec&&t.exec.call(this,A,B)){return '';}var vs=t.target?t.target.call(this,A,B):A;B=t.target?A:B;if(t.target&&vs instanceof Array){var C=[];for(var i=0,D=vs.length;i<D;i++){C[C.length]=t.compiled.call(this,vs[i],B);}return C.join('');}return t.compiled.call(this,vs,B);}catch(e){Roo.log("Xtemplate.applySubTemplate : Exception thrown");Roo.log(e.toString());Roo.log(e);Roo.log(t);return '';}},compileTpl:function(A){var fm=Roo.util.Format;var B=this.disableFormats!==true;var C=Roo.isGecko?"+":",";var fn=function(m,E,F,G){if(typeof(F)=='undefined'){F='htmlEncode';}if(F=='raw'){F=false;}if(E.substr(0,4)=='xtpl'){return "'"+C+'this.applySubTemplate('+E.substr(4)+', values, parent)'+C+"'";}var v;v=E;if(F&&B){G=G?','+G:"";if(F.substr(0,5)!="this."){F="fm."+F+'(';}else {F='this.call("'+F.substr(5)+'", ';G=", values";}return "'"+C+F+v+G+")"+C+"'";}if(G.length){return "'"+C+"("+v+" === undefined ? '' : "+v+'('+G+"))"+C+"'";}return "'"+C+"("+v+" === undefined ? '' : "+v+")"+C+"'";};var D;if(Roo.isGecko){D="tpl.compiled = function(values, parent){ Roo.log(values); with(values) { return '"+A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};};";}else {D=["tpl.compiled = function(values, parent){ Roo.log(values); with (values) { return ['"];D.push(A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));D.push("'].join('');};};");D=D.join('');}eval(D);Roo.log(D.replace(/\\n/,'\n'));return this;},applyTemplate:function(A){return this.master.compiled.call(this,A,{});},apply:function(){return this.applyTemplate.apply(this,arguments);}});Roo.XTemplate.from=function(el){el=Roo.getDom(el);return new Roo.XTemplate(el.value||el.innerHTML);};
+this.master=D[D.length-1];this.tpls=D;return this;},applySubTemplate:function(id,A,B){var t=this.tpls[id];try{if(t.test&&!t.test.call(this,A,B)){return '';}}catch(e){Roo.log("Xtemplate.applySubTemplate 'test': Exception thrown");Roo.log(e.toString());Roo.log(t.test);return ''}try{if(t.exec&&t.exec.call(this,A,B)){return '';}}catch(e){Roo.log("Xtemplate.applySubTemplate 'exec': Exception thrown");Roo.log(e.toString());Roo.log(t.exec);return ''}try{var vs=t.target?t.target.call(this,A,B):A;B=t.target?A:B;if(t.target&&vs instanceof Array){var C=[];for(var i=0,D=vs.length;i<D;i++){C[C.length]=t.compiled.call(this,vs[i],B);}return C.join('');}return t.compiled.call(this,vs,B);}catch(e){Roo.log("Xtemplate.applySubTemplate : Exception thrown");Roo.log(e.toString());Roo.log(t.compiled);return '';}},compileTpl:function(A){var fm=Roo.util.Format;var B=this.disableFormats!==true;var C=Roo.isGecko?"+":",";var D=function(F){Roo.log("Property not found :"+F);return '';};var fn=function(m,F,G,H){H=H?H.replace(/\\'/g,"'"):H;if(typeof(G)=='undefined'){G='htmlEncode';}if(G=='raw'){G=false;}if(F.substr(0,4)=='xtpl'){return "'"+C+'this.applySubTemplate('+F.substr(4)+', values, parent)'+C+"'";}var I=[];var J='';Roo.each(F.split('.'),function(st){J+=(J.length?'.':'')+st;I.push("(typeof("+J+") == 'undefined')");});var K='(('+I.join(" || ")+") ? udef('"+F+"') : ";if(G&&B){H=H?','+H:"";if(G.substr(0,5)!="this."){G="fm."+G+'(';}else {G='this.call("'+G.substr(5)+'", ';H=", values";}return "'"+C+K+G+F+H+"))"+C+"'";}if(H.length){return "'"+C+K+F+'('+H+"))"+C+"'";}return "'"+C+K+F+")"+C+"'";};var E;if(Roo.isGecko){E="tpl.compiled = function(values, parent){  with(values) { return '"+A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};};";}else {E=["tpl.compiled = function(values, parent){  with (values) { return ['"];E.push(A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));E.push("'].join('');};};");E=E.join('');}
+Roo.debug&&Roo.log(E.replace(/\\n/,'\n'));eval(E);return this;},applyTemplate:function(A){return this.master.compiled.call(this,A,{});},apply:function(){return this.applyTemplate.apply(this,arguments);}});Roo.XTemplate.from=function(el){el=Roo.getDom(el);return new Roo.XTemplate(el.value||el.innerHTML);};
 //Roo/XComponent.js
 Roo.XComponent=function(A){Roo.apply(this,A);this.addEvents({'built':true});this.region=this.region||'center';Roo.XComponent.register(this);this.modules=false;this.el=false;}
 Roo.extend(Roo.XComponent,Roo.util.Observable,{el:false,panel:false,layout:false,disabled:false,parent:false,order:false,name:false,region:'center',items:false,_tree:false,render:function(el){el=el||false;var hp=this.parent?1:0;if(!el&&typeof(this.parent)=='string'&&this.parent.substring(0,1)=='#'){var A=this.parent.substr(1)
index 00be1f7..c8fa7cf 100644 (file)
@@ -52450,9 +52450,24 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
             if(t.test && !t.test.call(this, values, parent)){
                 return '';
             }
+        } catch(e) {
+            Roo.log("Xtemplate.applySubTemplate 'test': Exception thrown");
+            Roo.log(e.toString());
+            Roo.log(t.test);
+            return ''
+        }
+        try { 
+            
             if(t.exec && t.exec.call(this, values, parent)){
                 return '';
             }
+        } catch(e) {
+            Roo.log("Xtemplate.applySubTemplate 'exec': Exception thrown");
+            Roo.log(e.toString());
+            Roo.log(t.exec);
+            return ''
+        }
+        try {
             var vs = t.target ? t.target.call(this, values, parent) : values;
             parent = t.target ? values : parent;
             if(t.target && vs instanceof Array){
@@ -52466,8 +52481,7 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
         } catch (e) {
             Roo.log("Xtemplate.applySubTemplate : Exception thrown");
             Roo.log(e.toString());
-            Roo.log(e);
-            Roo.log(t);
+            Roo.log(t.compiled);
             return '';
         }
     },
@@ -52477,7 +52491,15 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
         var fm = Roo.util.Format;
         var useF = this.disableFormats !== true;
         var sep = Roo.isGecko ? "+" : ",";
-        var fn = function(m, name, format, args){
+        var undef = function(str) {
+            Roo.log("Property not found :"  + str);
+            return '';
+        };
+        
+        var fn = function(m, name, format, args)
+        {
+            //Roo.log(arguments);
+            args = args ? args.replace(/\\'/g,"'") : args;
             //["{TEST:(a,b,c)}", "TEST", "", "a,b,c", 0, "{TEST:(a,b,c)}"]
             if (typeof(format) == 'undefined') {
                 format= 'htmlEncode';
@@ -52490,12 +52512,23 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
                 return "'"+ sep +'this.applySubTemplate('+name.substr(4)+', values, parent)'+sep+"'";
             }
             
-            var v;
-            //if(name.indexOf('.') != -1){
-                v = name;
-            //}else{
-            //    v = "values['" + name + "']";
-            //}
+            // build an array of options to determine if value is undefined..
+            
+            // basically get 'xxxx.yyyy' then do
+            // (typeof(xxxx) == 'undefined' || typeof(xxx.yyyy) == 'undefined') ?
+            //    (function () { Roo.log("Property not found"); return ''; })() :
+            //    ......
+            
+            var udef_ar = [];
+            var lookfor = '';
+            Roo.each(name.split('.'), function(st) {
+                lookfor += (lookfor.length ? '.': '') + st;
+                udef_ar.push(  "(typeof(" + lookfor + ") == 'undefined')"  );
+            });
+            
+            var udef_st = '((' + udef_ar.join(" || ") +") ? udef('" + name + "') : "; // .. needs )
+            
+            
             if(format && useF){
                 
                 args = args ? ',' + args : "";
@@ -52506,34 +52539,37 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
                     format = 'this.call("'+ format.substr(5) + '", ';
                     args = ", values";
                 }
-                return "'"+ sep + format + v + args + ")"+sep+"'";
+                
+                return "'"+ sep +   udef_st   +    format + name + args + "))"+sep+"'";
             }
              
             if (args.length) {
                 // called with xxyx.yuu:(test,test)
                 // change to ()
-                return "'"+ sep + "("+v+" === undefined ? '' : " + v + '(' +  args + "))"+sep+"'";
+                return "'"+ sep + udef_st  + name + '(' +  args + "))"+sep+"'";
             }
             // raw.. - :raw modifier..
-            return "'"+ sep + "("+v+" === undefined ? '' : " + v + ")"+sep+"'";
+            return "'"+ sep + udef_st  + name + ")"+sep+"'";
             
         };
         var body;
         // branched to use + in gecko and [].join() in others
         if(Roo.isGecko){
-            body = "tpl.compiled = function(values, parent){ Roo.log(values); with(values) { return '" +
+            body = "tpl.compiled = function(values, parent){  with(values) { return '" +
                    tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn) +
                     "';};};";
         }else{
-            body = ["tpl.compiled = function(values, parent){ Roo.log(values); with (values) { return ['"];
-            body.push(tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn));
+            body = ["tpl.compiled = function(values, parent){  with (values) { return ['"];
+            body.push(tpl.body.replace(/(\r\n|\n)/g,
+                            '\\n').replace(/'/g, "\\'").replace(this.re, fn));
             body.push("'].join('');};};");
             body = body.join('');
         }
         
+        Roo.debug && Roo.log(body.replace(/\\n/,'\n'));
+       
         /** eval:var:zzzzzzz */
         eval(body);
-        Roo.log(body.replace(/\\n/,'\n'));
         
         return this;
     },
index a770c07..b07d1ad 100644 (file)
@@ -37948,9 +37948,24 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
             if(t.test && !t.test.call(this, values, parent)){
                 return '';
             }
+        } catch(e) {
+            Roo.log("Xtemplate.applySubTemplate 'test': Exception thrown");
+            Roo.log(e.toString());
+            Roo.log(t.test);
+            return ''
+        }
+        try { 
+            
             if(t.exec && t.exec.call(this, values, parent)){
                 return '';
             }
+        } catch(e) {
+            Roo.log("Xtemplate.applySubTemplate 'exec': Exception thrown");
+            Roo.log(e.toString());
+            Roo.log(t.exec);
+            return ''
+        }
+        try {
             var vs = t.target ? t.target.call(this, values, parent) : values;
             parent = t.target ? values : parent;
             if(t.target && vs instanceof Array){
@@ -37964,8 +37979,7 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
         } catch (e) {
             Roo.log("Xtemplate.applySubTemplate : Exception thrown");
             Roo.log(e.toString());
-            Roo.log(e);
-            Roo.log(t);
+            Roo.log(t.compiled);
             return '';
         }
     },
@@ -37975,7 +37989,15 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
         var fm = Roo.util.Format;
         var useF = this.disableFormats !== true;
         var sep = Roo.isGecko ? "+" : ",";
-        var fn = function(m, name, format, args){
+        var undef = function(str) {
+            Roo.log("Property not found :"  + str);
+            return '';
+        };
+        
+        var fn = function(m, name, format, args)
+        {
+            //Roo.log(arguments);
+            args = args ? args.replace(/\\'/g,"'") : args;
             //["{TEST:(a,b,c)}", "TEST", "", "a,b,c", 0, "{TEST:(a,b,c)}"]
             if (typeof(format) == 'undefined') {
                 format= 'htmlEncode';
@@ -37988,12 +38010,23 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
                 return "'"+ sep +'this.applySubTemplate('+name.substr(4)+', values, parent)'+sep+"'";
             }
             
-            var v;
-            //if(name.indexOf('.') != -1){
-                v = name;
-            //}else{
-            //    v = "values['" + name + "']";
-            //}
+            // build an array of options to determine if value is undefined..
+            
+            // basically get 'xxxx.yyyy' then do
+            // (typeof(xxxx) == 'undefined' || typeof(xxx.yyyy) == 'undefined') ?
+            //    (function () { Roo.log("Property not found"); return ''; })() :
+            //    ......
+            
+            var udef_ar = [];
+            var lookfor = '';
+            Roo.each(name.split('.'), function(st) {
+                lookfor += (lookfor.length ? '.': '') + st;
+                udef_ar.push(  "(typeof(" + lookfor + ") == 'undefined')"  );
+            });
+            
+            var udef_st = '((' + udef_ar.join(" || ") +") ? udef('" + name + "') : "; // .. needs )
+            
+            
             if(format && useF){
                 
                 args = args ? ',' + args : "";
@@ -38004,34 +38037,37 @@ Roo.extend(Roo.XTemplate, Roo.Template, {
                     format = 'this.call("'+ format.substr(5) + '", ';
                     args = ", values";
                 }
-                return "'"+ sep + format + v + args + ")"+sep+"'";
+                
+                return "'"+ sep +   udef_st   +    format + name + args + "))"+sep+"'";
             }
              
             if (args.length) {
                 // called with xxyx.yuu:(test,test)
                 // change to ()
-                return "'"+ sep + "("+v+" === undefined ? '' : " + v + '(' +  args + "))"+sep+"'";
+                return "'"+ sep + udef_st  + name + '(' +  args + "))"+sep+"'";
             }
             // raw.. - :raw modifier..
-            return "'"+ sep + "("+v+" === undefined ? '' : " + v + ")"+sep+"'";
+            return "'"+ sep + udef_st  + name + ")"+sep+"'";
             
         };
         var body;
         // branched to use + in gecko and [].join() in others
         if(Roo.isGecko){
-            body = "tpl.compiled = function(values, parent){ Roo.log(values); with(values) { return '" +
+            body = "tpl.compiled = function(values, parent){  with(values) { return '" +
                    tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn) +
                     "';};};";
         }else{
-            body = ["tpl.compiled = function(values, parent){ Roo.log(values); with (values) { return ['"];
-            body.push(tpl.body.replace(/(\r\n|\n)/g, '\\n').replace(/'/g, "\\'").replace(this.re, fn));
+            body = ["tpl.compiled = function(values, parent){  with (values) { return ['"];
+            body.push(tpl.body.replace(/(\r\n|\n)/g,
+                            '\\n').replace(/'/g, "\\'").replace(this.re, fn));
             body.push("'].join('');};};");
             body = body.join('');
         }
         
+        Roo.debug && Roo.log(body.replace(/\\n/,'\n'));
+       
         /** eval:var:zzzzzzz */
         eval(body);
-        Roo.log(body.replace(/\\n/,'\n'));
         
         return this;
     },
index 83cc247..31f667a 100644 (file)
@@ -849,7 +849,8 @@ this.el.unmask(this.removeMask);},onLoad:function(){this.el.unmask(this.removeMa
 //Roo/XTemplate.js
 Roo.XTemplate=function(){Roo.XTemplate.superclass.constructor.apply(this,arguments);if(this.html){this.compile();}};Roo.extend(Roo.XTemplate,Roo.Template,{re:/\{([\w-\.]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,compile:function(){var s=this.html;s=['<tpl>',s,'</tpl>'].join('');var re=/<tpl\b[^>]*>((?:(?=([^<]+))\2|<(?!tpl\b[^>]*>))*?)<\/tpl>/,A=/^<tpl\b[^>]*?for="(.*?)"/,B=/^<tpl\b[^>]*?if="(.*?)"/,C=/^<tpl\b[^>]*?exec="(.*?)"/,m,id=0,D=[];while(true==!!(m=s.match(re))){var m2=m[0].match(A),m3=m[0].match(B),m4=m[0].match(C),E=null,fn=null,F=null,G=m2&&m2[1]?m2[1]:'';if(m3){E=m3&&m3[1]?m3[1]:null;if(E){fn=new Function('values','parent','with(values){ return '+(Roo.util.Format.htmlDecode(E))+'; }');}}if(m4){E=m4&&m4[1]?m4[1]:null;if(E){F=new Function('values','parent','with(values){ '+(Roo.util.Format.htmlDecode(E))+'; }');}}if(G){switch(G){case '.':G=new Function('values','parent','with(values){ return values; }');break;case '..':G=new Function('values','parent','with(values){ return parent; }');break;default:G=new Function('values','parent','with(values){ return '+G+'; }');}}
 D.push({id:id,target:G,exec:F,test:fn,body:m[1]||''});s=s.replace(m[0],'{xtpl'+id+'}');++id;}for(var i=D.length-1;i>=0;--i){this.compileTpl(D[i]);}
-this.master=D[D.length-1];this.tpls=D;return this;},applySubTemplate:function(id,A,B){var t=this.tpls[id];try{if(t.test&&!t.test.call(this,A,B)){return '';}if(t.exec&&t.exec.call(this,A,B)){return '';}var vs=t.target?t.target.call(this,A,B):A;B=t.target?A:B;if(t.target&&vs instanceof Array){var C=[];for(var i=0,D=vs.length;i<D;i++){C[C.length]=t.compiled.call(this,vs[i],B);}return C.join('');}return t.compiled.call(this,vs,B);}catch(e){Roo.log("Xtemplate.applySubTemplate : Exception thrown");Roo.log(e.toString());Roo.log(e);Roo.log(t);return '';}},compileTpl:function(A){var fm=Roo.util.Format;var B=this.disableFormats!==true;var C=Roo.isGecko?"+":",";var fn=function(m,E,F,G){if(typeof(F)=='undefined'){F='htmlEncode';}if(F=='raw'){F=false;}if(E.substr(0,4)=='xtpl'){return "'"+C+'this.applySubTemplate('+E.substr(4)+', values, parent)'+C+"'";}var v;v=E;if(F&&B){G=G?','+G:"";if(F.substr(0,5)!="this."){F="fm."+F+'(';}else {F='this.call("'+F.substr(5)+'", ';G=", values";}return "'"+C+F+v+G+")"+C+"'";}if(G.length){return "'"+C+"("+v+" === undefined ? '' : "+v+'('+G+"))"+C+"'";}return "'"+C+"("+v+" === undefined ? '' : "+v+")"+C+"'";};var D;if(Roo.isGecko){D="tpl.compiled = function(values, parent){ Roo.log(values); with(values) { return '"+A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};};";}else {D=["tpl.compiled = function(values, parent){ Roo.log(values); with (values) { return ['"];D.push(A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));D.push("'].join('');};};");D=D.join('');}eval(D);Roo.log(D.replace(/\\n/,'\n'));return this;},applyTemplate:function(A){return this.master.compiled.call(this,A,{});},apply:function(){return this.applyTemplate.apply(this,arguments);}});Roo.XTemplate.from=function(el){el=Roo.getDom(el);return new Roo.XTemplate(el.value||el.innerHTML);};
+this.master=D[D.length-1];this.tpls=D;return this;},applySubTemplate:function(id,A,B){var t=this.tpls[id];try{if(t.test&&!t.test.call(this,A,B)){return '';}}catch(e){Roo.log("Xtemplate.applySubTemplate 'test': Exception thrown");Roo.log(e.toString());Roo.log(t.test);return ''}try{if(t.exec&&t.exec.call(this,A,B)){return '';}}catch(e){Roo.log("Xtemplate.applySubTemplate 'exec': Exception thrown");Roo.log(e.toString());Roo.log(t.exec);return ''}try{var vs=t.target?t.target.call(this,A,B):A;B=t.target?A:B;if(t.target&&vs instanceof Array){var C=[];for(var i=0,D=vs.length;i<D;i++){C[C.length]=t.compiled.call(this,vs[i],B);}return C.join('');}return t.compiled.call(this,vs,B);}catch(e){Roo.log("Xtemplate.applySubTemplate : Exception thrown");Roo.log(e.toString());Roo.log(t.compiled);return '';}},compileTpl:function(A){var fm=Roo.util.Format;var B=this.disableFormats!==true;var C=Roo.isGecko?"+":",";var D=function(F){Roo.log("Property not found :"+F);return '';};var fn=function(m,F,G,H){H=H?H.replace(/\\'/g,"'"):H;if(typeof(G)=='undefined'){G='htmlEncode';}if(G=='raw'){G=false;}if(F.substr(0,4)=='xtpl'){return "'"+C+'this.applySubTemplate('+F.substr(4)+', values, parent)'+C+"'";}var I=[];var J='';Roo.each(F.split('.'),function(st){J+=(J.length?'.':'')+st;I.push("(typeof("+J+") == 'undefined')");});var K='(('+I.join(" || ")+") ? udef('"+F+"') : ";if(G&&B){H=H?','+H:"";if(G.substr(0,5)!="this."){G="fm."+G+'(';}else {G='this.call("'+G.substr(5)+'", ';H=", values";}return "'"+C+K+G+F+H+"))"+C+"'";}if(H.length){return "'"+C+K+F+'('+H+"))"+C+"'";}return "'"+C+K+F+")"+C+"'";};var E;if(Roo.isGecko){E="tpl.compiled = function(values, parent){  with(values) { return '"+A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn)+"';};};";}else {E=["tpl.compiled = function(values, parent){  with (values) { return ['"];E.push(A.body.replace(/(\r\n|\n)/g,'\\n').replace(/'/g,"\\'").replace(this.re,fn));E.push("'].join('');};};");E=E.join('');}
+Roo.debug&&Roo.log(E.replace(/\\n/,'\n'));eval(E);return this;},applyTemplate:function(A){return this.master.compiled.call(this,A,{});},apply:function(){return this.applyTemplate.apply(this,arguments);}});Roo.XTemplate.from=function(el){el=Roo.getDom(el);return new Roo.XTemplate(el.value||el.innerHTML);};
 //Roo/XComponent.js
 Roo.XComponent=function(A){Roo.apply(this,A);this.addEvents({'built':true});this.region=this.region||'center';Roo.XComponent.register(this);this.modules=false;this.el=false;}
 Roo.extend(Roo.XComponent,Roo.util.Observable,{el:false,panel:false,layout:false,disabled:false,parent:false,order:false,name:false,region:'center',items:false,_tree:false,render:function(el){el=el||false;var hp=this.parent?1:0;if(!el&&typeof(this.parent)=='string'&&this.parent.substring(0,1)=='#'){var A=this.parent.substr(1)