docs/default.css
authorAlan Knowles <alan@roojs.com>
Fri, 13 Apr 2012 07:05:22 +0000 (15:05 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 13 Apr 2012 07:05:22 +0000 (15:05 +0800)
docs/default.css
Attribute Changed :docs/default.css
docs/doc.js
docs/doc.js
Attribute Changed :docs/doc.js
docs/header.html
docs/header.html
Attribute Changed :docs/header.html
docs/index.html
docs/index.html
Attribute Changed :docs/index.html
docs/page.js
docs/page.js
Attribute Changed :docs/page.js
docs/default.css
docs/default.css
Attribute Changed :docs/default.css
docs/doc.js
docs/doc.js
Attribute Changed :docs/doc.js
docs/header.html
docs/header.html
Attribute Changed :docs/header.html
docs/index.html
docs/index.html
Attribute Changed :docs/index.html
docs/page.js
docs/page.js
Attribute Changed :docs/page.js
docs/symbols/src/Array.js.html
docs/symbols/src/Array.js.html
docs/symbols/src/Date.js.html
docs/symbols/src/Date.js.html
docs/symbols/src/Function.js.html
docs/symbols/src/Function.js.html
docs/symbols/src/Number.js.html
docs/symbols/src/Number.js.html
docs/symbols/src/Roo.js.html
docs/symbols/src/Roo.js.html
docs/symbols/src/String.js.html
docs/symbols/src/String.js.html
docs/symbols/src/Roo_Ajax.js.html
docs/symbols/src/Roo_Ajax.js.html
docs/symbols/src/Roo_BasicDialog.js.html
docs/symbols/src/Roo_BasicDialog.js.html
docs/symbols/src/Roo_BasicLayoutRegion.js.html
docs/symbols/src/Roo_BasicLayoutRegion.js.html
docs/symbols/src/Roo_BorderLayout.js.html
docs/symbols/src/Roo_BorderLayout.js.html
docs/symbols/src/Roo_BoxComponent.js.html
docs/symbols/src/Roo_BoxComponent.js.html
docs/symbols/src/Roo_Button.js.html
docs/symbols/src/Roo_Button.js.html
docs/symbols/src/Roo_CenterLayoutRegion.js.html
docs/symbols/src/Roo_CenterLayoutRegion.js.html
docs/symbols/src/Roo_ColorPalette.js.html
docs/symbols/src/Roo_ColorPalette.js.html
docs/symbols/src/Roo_Component.js.html
docs/symbols/src/Roo_Component.js.html
docs/symbols/src/Roo_ComponentMgr.js.html
docs/symbols/src/Roo_ComponentMgr.js.html
docs/symbols/src/Roo_CompositeElement.js.html
docs/symbols/src/Roo_CompositeElement.js.html
docs/symbols/src/Roo_CompositeElementLite.js.html
docs/symbols/src/Roo_CompositeElementLite.js.html
docs/symbols/src/Roo_ContentPanel.js.html
docs/symbols/src/Roo_ContentPanel.js.html
docs/symbols/src/Roo_DDView.js.html
docs/symbols/src/Roo_DDView.js.html
docs/symbols/src/Roo_DatePicker.js.html
docs/symbols/src/Roo_DatePicker.js.html
docs/symbols/src/Roo_DomHelper.js.html
docs/symbols/src/Roo_DomHelper.js.html
docs/symbols/src/Roo_DomQuery.js.html
docs/symbols/src/Roo_DomQuery.js.html
docs/symbols/src/Roo_DomTemplate.js.html
docs/symbols/src/Roo_Editor.js.html
docs/symbols/src/Roo_Editor.js.html
docs/symbols/src/Roo_Element.js.html
docs/symbols/src/Roo_Element.js.html
docs/symbols/src/Roo_EventManager.js.html
docs/symbols/src/Roo_EventManager.js.html
docs/symbols/src/Roo_Fx.js.html
docs/symbols/src/Roo_Fx.js.html
docs/symbols/src/Roo_JsonView.js.html
docs/symbols/src/Roo_JsonView.js.html
docs/symbols/src/Roo_KeyMap.js.html
docs/symbols/src/Roo_KeyMap.js.html
docs/symbols/src/Roo_KeyNav.js.html
docs/symbols/src/Array.js.html
docs/symbols/src/Array.js.html
docs/symbols/src/Date.js.html
docs/symbols/src/Date.js.html
docs/symbols/src/Function.js.html
docs/symbols/src/Function.js.html
docs/symbols/src/Number.js.html
docs/symbols/src/Number.js.html
docs/symbols/src/Roo.js.html
docs/symbols/src/Roo.js.html
docs/symbols/src/String.js.html
docs/symbols/src/String.js.html
docs/symbols/src/Roo_Ajax.js.html
docs/symbols/src/Roo_Ajax.js.html
docs/symbols/src/Roo_BasicDialog.js.html
docs/symbols/src/Roo_BasicDialog.js.html
docs/symbols/src/Roo_BasicLayoutRegion.js.html
docs/symbols/src/Roo_BasicLayoutRegion.js.html
docs/symbols/src/Roo_BorderLayout.js.html
docs/symbols/src/Roo_BorderLayout.js.html
docs/symbols/src/Roo_BoxComponent.js.html
docs/symbols/src/Roo_BoxComponent.js.html
docs/symbols/src/Roo_Button.js.html
docs/symbols/src/Roo_Button.js.html
docs/symbols/src/Roo_CenterLayoutRegion.js.html
docs/symbols/src/Roo_CenterLayoutRegion.js.html
docs/symbols/src/Roo_ColorPalette.js.html
docs/symbols/src/Roo_ColorPalette.js.html
docs/symbols/src/Roo_Component.js.html
docs/symbols/src/Roo_Component.js.html
docs/symbols/src/Roo_ComponentMgr.js.html
docs/symbols/src/Roo_ComponentMgr.js.html
docs/symbols/src/Roo_CompositeElement.js.html
docs/symbols/src/Roo_CompositeElement.js.html
docs/symbols/src/Roo_CompositeElementLite.js.html
docs/symbols/src/Roo_CompositeElementLite.js.html
docs/symbols/src/Roo_ContentPanel.js.html
docs/symbols/src/Roo_ContentPanel.js.html
docs/symbols/src/Roo_DDView.js.html
docs/symbols/src/Roo_DDView.js.html
docs/symbols/src/Roo_DatePicker.js.html
docs/symbols/src/Roo_DatePicker.js.html
docs/symbols/src/Roo_DomHelper.js.html
docs/symbols/src/Roo_DomHelper.js.html
docs/symbols/src/Roo_DomQuery.js.html
docs/symbols/src/Roo_DomQuery.js.html
docs/symbols/src/Roo_DomTemplate.js.html
docs/symbols/src/Roo_Editor.js.html
docs/symbols/src/Roo_Editor.js.html
docs/symbols/src/Roo_Element.js.html
docs/symbols/src/Roo_Element.js.html
docs/symbols/src/Roo_EventManager.js.html
docs/symbols/src/Roo_EventManager.js.html
docs/symbols/src/Roo_Fx.js.html
docs/symbols/src/Roo_Fx.js.html
docs/symbols/src/Roo_JsonView.js.html
docs/symbols/src/Roo_JsonView.js.html
docs/symbols/src/Roo_KeyMap.js.html
docs/symbols/src/Roo_KeyMap.js.html
docs/symbols/src/Roo_KeyNav.js.html
docs/symbols/src/Roo_KeyNav.js.html
docs/symbols/src/Roo_KeyNav.js.html
docs/symbols/src/Roo_Layer.js.html
docs/symbols/src/Roo_Layer.js.html
docs/symbols/src/Roo_LayoutManager.js.html
docs/symbols/src/Roo_LayoutManager.js.html
docs/symbols/src/Roo_LayoutRegion.js.html
docs/symbols/src/Roo_LayoutRegion.js.html
docs/symbols/src/Roo_LayoutStateManager.js.html
docs/symbols/src/Roo_LayoutStateManager.js.html
docs/symbols/src/Roo_LoadMask.js.html
docs/symbols/src/Roo_LoadMask.js.html
docs/symbols/src/Roo_Login.js.html
docs/symbols/src/Roo_Login.js.html
docs/symbols/src/Roo_MasterTemplate.js.html
docs/symbols/src/Roo_MasterTemplate.js.html
docs/symbols/src/Roo_MessageBox.js.html
docs/symbols/src/Roo_MessageBox.js.html
docs/symbols/src/Roo_PagingToolbar.js.html
docs/symbols/src/Roo_PagingToolbar.js.html
docs/symbols/src/Roo_QuickTips.js.html
docs/symbols/src/Roo_QuickTips.js.html
docs/symbols/src/Roo_ReaderLayout.js.html
docs/symbols/src/Roo_ReaderLayout.js.html
docs/symbols/src/Roo_Resizable.js.html
docs/symbols/src/Roo_Resizable.js.html
docs/symbols/src/Roo_Shadow.js.html
docs/symbols/src/Roo_Shadow.js.html
docs/symbols/src/Roo_SplitBar.js.html
docs/symbols/src/Roo_SplitBar.js.html
docs/symbols/src/Roo_SplitButton.js.html
docs/symbols/src/Roo_SplitButton.js.html
docs/symbols/src/Roo_SplitLayoutRegion.js.html
docs/symbols/src/Roo_SplitLayoutRegion.js.html
docs/symbols/src/Roo_TabPanel.js.html
docs/symbols/src/Roo_TabPanel.js.html
docs/symbols/src/Roo_Template.js.html
docs/symbols/src/Roo_Template.js.html
docs/symbols/src/Roo_Toolbar.js.html
docs/symbols/src/Roo_Toolbar.js.html
docs/symbols/src/Roo_UpdateManager.js.html
docs/symbols/src/Roo_UpdateManager.js.html
docs/symbols/src/Roo_View.js.html
docs/symbols/src/Roo_View.js.html
docs/symbols/src/Roo_XComponent.js.html
docs/symbols/src/Roo_XComponent.js.html
docs/symbols/src/Roo_XTemplate.js.html
docs/symbols/src/Roo_XTemplate.js.html
docs/symbols/src/Roo_data_ArrayReader.js.html
docs/symbols/src/Roo_data_ArrayReader.js.html
docs/symbols/src/Roo_data_Connection.js.html
docs/symbols/src/Roo_data_Connection.js.html
docs/symbols/src/Roo_data_DataProxy.js.html
docs/symbols/src/Roo_data_DataProxy.js.html
docs/symbols/src/Roo_data_DataReader.js.html
docs/symbols/src/Roo_data_DataReader.js.html
docs/symbols/src/Roo_data_Field.js.html
docs/symbols/src/Roo_data_Field.js.html
docs/symbols/src/Roo_data_HttpProxy.js.html
docs/symbols/src/Roo_data_HttpProxy.js.html
docs/symbols/src/Roo_data_JsonReader.js.html
docs/symbols/src/Roo_data_JsonReader.js.html
docs/symbols/src/Roo_data_JsonStore.js.html
docs/symbols/src/Roo_data_JsonStore.js.html
docs/symbols/src/Roo_data_MemoryProxy.js.html
docs/symbols/src/Roo_data_MemoryProxy.js.html
docs/symbols/src/Roo_data_Record.js.html
docs/symbols/src/Roo_data_Record.js.html
docs/symbols/src/Roo_data_ScriptTagProxy.js.html
docs/symbols/src/Roo_data_ScriptTagProxy.js.html
docs/symbols/src/Roo_data_SimpleStore.js.html
docs/symbols/src/Roo_data_SimpleStore.js.html
docs/symbols/src/Roo_data_SortTypes.js.html
docs/symbols/src/Roo_data_SortTypes.js.html
docs/symbols/src/Roo_data_Store.js.html
docs/symbols/src/Roo_data_Store.js.html
docs/symbols/src/Roo_data_Tree.js.html
docs/symbols/src/Roo_data_Tree.js.html
docs/symbols/src/Roo_data_XmlReader.js.html
docs/symbols/src/Roo_data_XmlReader.js.html
docs/symbols/src/Roo_dd_DD.js.html
docs/symbols/src/Roo_dd_DD.js.html
docs/symbols/src/Roo_dd_DDProxy.js.html
docs/symbols/src/Roo_dd_DDProxy.js.html
docs/symbols/src/Roo_dd_DDTarget.js.html
docs/symbols/src/Roo_dd_DDTarget.js.html
docs/symbols/src/Roo_dd_DragDrop.js.html
docs/symbols/src/Roo_dd_DragDrop.js.html
docs/symbols/src/Roo_dd_DragDropMgr.js.html
docs/symbols/src/Roo_dd_DragDropMgr.js.html
docs/symbols/src/Roo_dd_DragSource.js.html
docs/symbols/src/Roo_dd_DragSource.js.html
docs/symbols/src/Roo_dd_DragZone.js.html
docs/symbols/src/Roo_dd_DragZone.js.html
docs/symbols/src/Roo_dd_DropTarget.js.html
docs/symbols/src/Roo_dd_DropTarget.js.html
docs/symbols/src/Roo_dd_DropZone.js.html
docs/symbols/src/Roo_dd_DropZone.js.html
docs/symbols/src/Roo_dd_Registry.js.html
docs/symbols/src/Roo_dd_Registry.js.html
docs/symbols/src/Roo_dd_ScrollManager.js.html
docs/symbols/src/Roo_dd_ScrollManager.js.html
docs/symbols/src/Roo_dd_StatusProxy.js.html
docs/symbols/src/Roo_dd_StatusProxy.js.html
docs/symbols/src/Roo_form_Action.js.html
docs/symbols/src/Roo_form_Action.js.html
docs/symbols/src/Roo_form_BasicForm.js.html
docs/symbols/src/Roo_form_BasicForm.js.html
docs/symbols/src/Roo_form_Checkbox.js.html
docs/symbols/src/Roo_form_Checkbox.js.html
docs/symbols/src/Roo_form_ComboBox.js.html
docs/symbols/src/Roo_form_ComboBox.js.html
docs/symbols/src/Roo_form_ComboCheck.js.html
docs/symbols/src/Roo_form_ComboCheck.js.html
docs/symbols/src/Roo_form_DateField.js.html
docs/symbols/src/Roo_form_DateField.js.html
docs/symbols/src/Roo_form_DayPicker.js.html
docs/symbols/src/Roo_form_DayPicker.js.html
docs/symbols/src/Roo_form_DisplayField.js.html
docs/symbols/src/Roo_form_DisplayField.js.html
docs/symbols/src/Roo_form_FCKeditor.js.html
docs/symbols/src/Roo_form_FCKeditor.js.html
docs/symbols/src/Roo_form_Field.js.html
docs/symbols/src/Roo_form_Field.js.html
docs/symbols/src/Roo_form_Form.js.html
docs/symbols/src/Roo_form_Form.js.html
docs/symbols/src/Roo_form_GridField.js.html
docs/symbols/src/Roo_form_GridField.js.html
docs/symbols/src/Roo_form_Hidden.js.html
docs/symbols/src/Roo_form_Hidden.js.html
docs/symbols/src/Roo_form_HtmlEditor.js.html
docs/symbols/src/Roo_form_HtmlEditor.js.html
docs/symbols/src/Roo_form_Layout.js.html
docs/symbols/src/Roo_form_Layout.js.html
docs/symbols/src/Roo_form_NumberField.js.html
docs/symbols/src/Roo_form_NumberField.js.html
docs/symbols/src/Roo_form_Radio.js.html
docs/symbols/src/Roo_Layer.js.html
docs/symbols/src/Roo_Layer.js.html
docs/symbols/src/Roo_LayoutManager.js.html
docs/symbols/src/Roo_LayoutManager.js.html
docs/symbols/src/Roo_LayoutRegion.js.html
docs/symbols/src/Roo_LayoutRegion.js.html
docs/symbols/src/Roo_LayoutStateManager.js.html
docs/symbols/src/Roo_LayoutStateManager.js.html
docs/symbols/src/Roo_LoadMask.js.html
docs/symbols/src/Roo_LoadMask.js.html
docs/symbols/src/Roo_Login.js.html
docs/symbols/src/Roo_Login.js.html
docs/symbols/src/Roo_MasterTemplate.js.html
docs/symbols/src/Roo_MasterTemplate.js.html
docs/symbols/src/Roo_MessageBox.js.html
docs/symbols/src/Roo_MessageBox.js.html
docs/symbols/src/Roo_PagingToolbar.js.html
docs/symbols/src/Roo_PagingToolbar.js.html
docs/symbols/src/Roo_QuickTips.js.html
docs/symbols/src/Roo_QuickTips.js.html
docs/symbols/src/Roo_ReaderLayout.js.html
docs/symbols/src/Roo_ReaderLayout.js.html
docs/symbols/src/Roo_Resizable.js.html
docs/symbols/src/Roo_Resizable.js.html
docs/symbols/src/Roo_Shadow.js.html
docs/symbols/src/Roo_Shadow.js.html
docs/symbols/src/Roo_SplitBar.js.html
docs/symbols/src/Roo_SplitBar.js.html
docs/symbols/src/Roo_SplitButton.js.html
docs/symbols/src/Roo_SplitButton.js.html
docs/symbols/src/Roo_SplitLayoutRegion.js.html
docs/symbols/src/Roo_SplitLayoutRegion.js.html
docs/symbols/src/Roo_TabPanel.js.html
docs/symbols/src/Roo_TabPanel.js.html
docs/symbols/src/Roo_Template.js.html
docs/symbols/src/Roo_Template.js.html
docs/symbols/src/Roo_Toolbar.js.html
docs/symbols/src/Roo_Toolbar.js.html
docs/symbols/src/Roo_UpdateManager.js.html
docs/symbols/src/Roo_UpdateManager.js.html
docs/symbols/src/Roo_View.js.html
docs/symbols/src/Roo_View.js.html
docs/symbols/src/Roo_XComponent.js.html
docs/symbols/src/Roo_XComponent.js.html
docs/symbols/src/Roo_XTemplate.js.html
docs/symbols/src/Roo_XTemplate.js.html
docs/symbols/src/Roo_data_ArrayReader.js.html
docs/symbols/src/Roo_data_ArrayReader.js.html
docs/symbols/src/Roo_data_Connection.js.html
docs/symbols/src/Roo_data_Connection.js.html
docs/symbols/src/Roo_data_DataProxy.js.html
docs/symbols/src/Roo_data_DataProxy.js.html
docs/symbols/src/Roo_data_DataReader.js.html
docs/symbols/src/Roo_data_DataReader.js.html
docs/symbols/src/Roo_data_Field.js.html
docs/symbols/src/Roo_data_Field.js.html
docs/symbols/src/Roo_data_HttpProxy.js.html
docs/symbols/src/Roo_data_HttpProxy.js.html
docs/symbols/src/Roo_data_JsonReader.js.html
docs/symbols/src/Roo_data_JsonReader.js.html
docs/symbols/src/Roo_data_JsonStore.js.html
docs/symbols/src/Roo_data_JsonStore.js.html
docs/symbols/src/Roo_data_MemoryProxy.js.html
docs/symbols/src/Roo_data_MemoryProxy.js.html
docs/symbols/src/Roo_data_Record.js.html
docs/symbols/src/Roo_data_Record.js.html
docs/symbols/src/Roo_data_ScriptTagProxy.js.html
docs/symbols/src/Roo_data_ScriptTagProxy.js.html
docs/symbols/src/Roo_data_SimpleStore.js.html
docs/symbols/src/Roo_data_SimpleStore.js.html
docs/symbols/src/Roo_data_SortTypes.js.html
docs/symbols/src/Roo_data_SortTypes.js.html
docs/symbols/src/Roo_data_Store.js.html
docs/symbols/src/Roo_data_Store.js.html
docs/symbols/src/Roo_data_Tree.js.html
docs/symbols/src/Roo_data_Tree.js.html
docs/symbols/src/Roo_data_XmlReader.js.html
docs/symbols/src/Roo_data_XmlReader.js.html
docs/symbols/src/Roo_dd_DD.js.html
docs/symbols/src/Roo_dd_DD.js.html
docs/symbols/src/Roo_dd_DDProxy.js.html
docs/symbols/src/Roo_dd_DDProxy.js.html
docs/symbols/src/Roo_dd_DDTarget.js.html
docs/symbols/src/Roo_dd_DDTarget.js.html
docs/symbols/src/Roo_dd_DragDrop.js.html
docs/symbols/src/Roo_dd_DragDrop.js.html
docs/symbols/src/Roo_dd_DragDropMgr.js.html
docs/symbols/src/Roo_dd_DragDropMgr.js.html
docs/symbols/src/Roo_dd_DragSource.js.html
docs/symbols/src/Roo_dd_DragSource.js.html
docs/symbols/src/Roo_dd_DragZone.js.html
docs/symbols/src/Roo_dd_DragZone.js.html
docs/symbols/src/Roo_dd_DropTarget.js.html
docs/symbols/src/Roo_dd_DropTarget.js.html
docs/symbols/src/Roo_dd_DropZone.js.html
docs/symbols/src/Roo_dd_DropZone.js.html
docs/symbols/src/Roo_dd_Registry.js.html
docs/symbols/src/Roo_dd_Registry.js.html
docs/symbols/src/Roo_dd_ScrollManager.js.html
docs/symbols/src/Roo_dd_ScrollManager.js.html
docs/symbols/src/Roo_dd_StatusProxy.js.html
docs/symbols/src/Roo_dd_StatusProxy.js.html
docs/symbols/src/Roo_form_Action.js.html
docs/symbols/src/Roo_form_Action.js.html
docs/symbols/src/Roo_form_BasicForm.js.html
docs/symbols/src/Roo_form_BasicForm.js.html
docs/symbols/src/Roo_form_Checkbox.js.html
docs/symbols/src/Roo_form_Checkbox.js.html
docs/symbols/src/Roo_form_ComboBox.js.html
docs/symbols/src/Roo_form_ComboBox.js.html
docs/symbols/src/Roo_form_ComboCheck.js.html
docs/symbols/src/Roo_form_ComboCheck.js.html
docs/symbols/src/Roo_form_DateField.js.html
docs/symbols/src/Roo_form_DateField.js.html
docs/symbols/src/Roo_form_DayPicker.js.html
docs/symbols/src/Roo_form_DayPicker.js.html
docs/symbols/src/Roo_form_DisplayField.js.html
docs/symbols/src/Roo_form_DisplayField.js.html
docs/symbols/src/Roo_form_FCKeditor.js.html
docs/symbols/src/Roo_form_FCKeditor.js.html
docs/symbols/src/Roo_form_Field.js.html
docs/symbols/src/Roo_form_Field.js.html
docs/symbols/src/Roo_form_Form.js.html
docs/symbols/src/Roo_form_Form.js.html
docs/symbols/src/Roo_form_GridField.js.html
docs/symbols/src/Roo_form_GridField.js.html
docs/symbols/src/Roo_form_Hidden.js.html
docs/symbols/src/Roo_form_Hidden.js.html
docs/symbols/src/Roo_form_HtmlEditor.js.html
docs/symbols/src/Roo_form_HtmlEditor.js.html
docs/symbols/src/Roo_form_Layout.js.html
docs/symbols/src/Roo_form_Layout.js.html
docs/symbols/src/Roo_form_NumberField.js.html
docs/symbols/src/Roo_form_NumberField.js.html
docs/symbols/src/Roo_form_Radio.js.html

docs/index.html
docs/symbols/src/Roo_DomTemplate.js.html [new file with mode: 0644]
docs/symbols/src/Roo_View.js.html

index b2e40c7..fe76348 100644 (file)
@@ -64,6 +64,12 @@ Roo.BLANK_IMAGE_URL =  "../images/gray/s.gif";
        
        </li>
        
+       <li><div 
+               roo:isc="yes"
+               roo:isns="no">Roo</div>
+       
+       </li>
+       
        <li><div 
                roo:isc="yes"
                roo:isns="no">Roo.Ajax</div>
@@ -166,6 +172,12 @@ Roo.BLANK_IMAGE_URL =  "../images/gray/s.gif";
        
        </li>
        
+       <li><div 
+               roo:isc="yes"
+               roo:isns="no">Roo.DomTemplate</div>
+       
+       </li>
+       
        <li><div 
                roo:isc="yes"
                roo:isns="no">Roo.Editor</div>
@@ -1120,12 +1132,6 @@ Roo.BLANK_IMAGE_URL =  "../images/gray/s.gif";
        
        </li>
        
-       <li><div 
-               roo:isc="no"
-               roo:isns="no">_global_</div>
-       
-       </li>
-       
        <li><div 
                roo:isc="yes"
                roo:isns="yes">this</div>
diff --git a/docs/symbols/src/Roo_DomTemplate.js.html b/docs/symbols/src/Roo_DomTemplate.js.html
new file mode 100644 (file)
index 0000000..d3d0330
--- /dev/null
@@ -0,0 +1,426 @@
+<html><head><title>../roojs1/Roo/DomTemplate.js</title><link rel="stylesheet" type="text/css" href="../../../css/highlight-js.css"/></head><body class="highlightpage"><code class="jsdoc-pretty"><span class="jsdoc-comment">/*
+ * Based on:
+ * Roo JS
+ * (c)) Alan Knowles
+ * Licence : LGPL
+ */
+
+
+/**
+ * @class Roo.DomTemplate
+ * @extends Roo.Template
+ * An effort at a dom based template engine..
+ *
+ * Similar to XTemplate, except it uses dom parsing to create the template..
+ *
+ * Supported features:
+ *
+ *  Tags:
+
+&lt;pre&gt;&lt;code&gt;
+      {a_variable} - output encoded.
+      {a_variable.format:(&quot;Y-m-d&quot;)} - call a method on the variable
+      {a_variable:raw} - unencoded output
+      {a_variable:toFixed(1,2)} - Roo.util.Format.&quot;toFixed&quot;
+      {a_variable:this.method_on_template(...)} - call a method on the template object.
+&lt;/code&gt;&lt;/pre&gt;
+ *  The tpl tag:
+&lt;pre&gt;&lt;code&gt;
+        &amp;lt;div roo-for=&quot;a_variable or condition..&quot;&amp;gt;&amp;lt;/tpl&amp;gt;
+        &amp;lt;tpl roo-if=&quot;a_variable or condition&quot;&amp;gt;&amp;lt;/tpl&amp;gt;
+        &amp;lt;tpl roo-exec=&quot;some javascript&quot;&amp;gt;&amp;lt;/tpl&amp;gt;
+        &amp;lt;tpl roo-name=&quot;named_template&quot;&amp;gt;&amp;lt;/tpl&amp;gt; 
+  
+&lt;/code&gt;&lt;/pre&gt;
+ *      
+ */
+</span><span class="jsdoc-var">Roo.DomTemplate </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+{
+     </span><span class="jsdoc-var">Roo.DomTemplate.superclass.constructor.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
+    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-var">this.compile</span><span class="jsdoc-syntax">();
+    }
+};
+
+
+</span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.DomTemplate</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.Template</span><span class="jsdoc-syntax">, {
+    </span><span class="jsdoc-comment">/**
+     * id counter for sub templates.
+     */
+    </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: 0,
+    </span><span class="jsdoc-comment">/**
+     * flag to indicate if dom parser is inside a pre,
+     * it will strip whitespace if not.
+     */
+    </span><span class="jsdoc-var">inPre </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    
+    </span><span class="jsdoc-comment">/**
+     * The various sub templates
+     */
+    </span><span class="jsdoc-var">tpls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    
+    
+    
+    </span><span class="jsdoc-comment">/**
+     *
+     * basic tag replacing syntax
+     * WORD:WORD()
+     *
+     * // you can fake an object call by doing this
+     *  x.t:(test,tesT) 
+     * 
+     */
+    </span><span class="jsdoc-var">re </span><span class="jsdoc-syntax">: /\{([\w-\.]+)(?:\:([\w\.]*)(?:\((.*?)?\))?)?\}/g,
+
+    
+    </span><span class="jsdoc-var">iterChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">method</span><span class="jsdoc-syntax">) {
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">oldPre </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.inPre</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.tagName </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'PRE'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.inPre </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">( </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">node.childNodes.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++) {
+            </span><span class="jsdoc-var">method.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">node.childNodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
+        }
+        </span><span class="jsdoc-var">this.inPre </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">oldPre</span><span class="jsdoc-syntax">;
+    },
+    
+    
+    
+    </span><span class="jsdoc-comment">/**
+     * compile the template
+     *
+     * This is not recursive, so I'm not sure how nested templates are really going to be handled..
+     *
+     */
+    </span><span class="jsdoc-var">compile</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">s </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.html</span><span class="jsdoc-syntax">;
+        
+        </span><span class="jsdoc-comment">// covert the html into DOM...
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">div </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">div.innerHTML </span><span class="jsdoc-syntax">=   </span><span class="jsdoc-var">this.html  </span><span class="jsdoc-syntax">;
+        
+        </span><span class="jsdoc-var">this.tpls </span><span class="jsdoc-syntax">= [];
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">this.iterChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">div</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">) {</span><span class="jsdoc-var">_t.compileNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">); });
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tpls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tpls</span><span class="jsdoc-syntax">;
+        
+        </span><span class="jsdoc-comment">// create a top level template from the snippet..
+        
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">div.innerHTML</span><span class="jsdoc-syntax">);
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tpl </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">uid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'master'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">++,
+            </span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">div.innerHTML</span><span class="jsdoc-syntax">,
+            
+            </span><span class="jsdoc-var">forCall </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">execCall </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">dom </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">div</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">isTop </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
+            
+        </span><span class="jsdoc-syntax">};
+        </span><span class="jsdoc-var">tpls.unshift</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl</span><span class="jsdoc-syntax">);
+        
+        
+        </span><span class="jsdoc-comment">// compile them...
+        </span><span class="jsdoc-var">this.tpls </span><span class="jsdoc-syntax">= [];
+        </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpls</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tp</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.compileTpl</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tp</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.tpls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">tp.id</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">tp</span><span class="jsdoc-syntax">;
+        }, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        
+        </span><span class="jsdoc-var">this.master </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tpls</span><span class="jsdoc-syntax">[0];
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+        
+        
+    },
+    
+    </span><span class="jsdoc-var">compileNode </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">istop</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-comment">// test for
+        //Roo.log(node);
+        
+        
+        // skip anything not a tag..
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeType </span><span class="jsdoc-syntax">!= 1) {
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.nodeType </span><span class="jsdoc-syntax">== 3 &amp;&amp; !</span><span class="jsdoc-var">this.inPre</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-comment">// reduce white space..
+                </span><span class="jsdoc-var">node.nodeValue </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.nodeValue.replace</span><span class="jsdoc-syntax">(/\s+/g, </span><span class="jsdoc-string">' '</span><span class="jsdoc-syntax">); 
+                
+            }
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">tpl </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">uid </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">id </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">attr </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">value </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+            
+            </span><span class="jsdoc-var">forCall </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">execCall </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">dom </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">isTop </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">istop
+            
+            
+        </span><span class="jsdoc-syntax">};
+        
+        
+        </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.hasAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-for'</span><span class="jsdoc-syntax">)): </span><span class="jsdoc-var">tpl.attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'for'</span><span class="jsdoc-syntax">; </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.hasAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-if'</span><span class="jsdoc-syntax">)): </span><span class="jsdoc-var">tpl.attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'if'</span><span class="jsdoc-syntax">; </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.hasAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-name'</span><span class="jsdoc-syntax">)): </span><span class="jsdoc-var">tpl.attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'name'</span><span class="jsdoc-syntax">; </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node.hasAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-exec'</span><span class="jsdoc-syntax">)): </span><span class="jsdoc-var">tpl.attr </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'exec'</span><span class="jsdoc-syntax">; </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-comment">// no default..
+        </span><span class="jsdoc-syntax">}
+        
+        
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">tpl.attr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-comment">// just itterate children..
+            </span><span class="jsdoc-var">this.iterChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.compileNode</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-var">tpl.uid </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.id</span><span class="jsdoc-syntax">++;
+        </span><span class="jsdoc-var">tpl.value </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node.getAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-' </span><span class="jsdoc-syntax">+  </span><span class="jsdoc-var">tpl.attr</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">node.removeAttribute</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'roo-'</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">tpl.attr</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl.attr </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'name'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">placeholder </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createTextNode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'{domtpl' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">tpl.uid </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'}'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">node.parentNode.replaceChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">placeholder</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+            
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">placeholder </span><span class="jsdoc-syntax">=  </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">placeholder.className </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'roo-tpl-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">tpl.value</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">node.parentNode.replaceChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">placeholder</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        }
+        
+        </span><span class="jsdoc-comment">// parent now sees '{domtplXXXX}
+        </span><span class="jsdoc-var">this.iterChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">,</span><span class="jsdoc-var">this.compileNode</span><span class="jsdoc-syntax">)
+        
+        </span><span class="jsdoc-comment">// we should now have node body...
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">div </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">document.createElement</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">div.appendChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">tpl.dom </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">tpl.body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">div.innerHTML</span><span class="jsdoc-syntax">;
+        
+        
+         
+        </span><span class="jsdoc-var">tpl.id </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tpl.uid</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">switch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl.attr</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'for' </span><span class="jsdoc-syntax">:
+                </span><span class="jsdoc-keyword">switch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl.value</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">:  </span><span class="jsdoc-var">tpl.forCall </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'values'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'parent'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'with(values){ return values; }'</span><span class="jsdoc-syntax">); </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+                    </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'..'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">tpl.forCall</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'values'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'parent'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'with(values){ return parent; }'</span><span class="jsdoc-syntax">); </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+                    </span><span class="jsdoc-keyword">default</span><span class="jsdoc-syntax">:   </span><span class="jsdoc-var">tpl.forCall</span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'values'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'parent'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'with(values){ return '</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">tpl.value</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'; }'</span><span class="jsdoc-syntax">);
+                }
+                </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'exec'</span><span class="jsdoc-syntax">:
+                </span><span class="jsdoc-var">tpl.execCall </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'values'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'parent'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'with(values){ '</span><span class="jsdoc-syntax">+(</span><span class="jsdoc-var">Roo.util.Format.htmlDecode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl.value</span><span class="jsdoc-syntax">))+</span><span class="jsdoc-string">'; }'</span><span class="jsdoc-syntax">);
+                </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'if'</span><span class="jsdoc-syntax">:     
+                </span><span class="jsdoc-var">tpl.ifCall </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'values'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'parent'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'with(values){ return '</span><span class="jsdoc-syntax">+(</span><span class="jsdoc-var">Roo.util.Format.htmlDecode</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl.value</span><span class="jsdoc-syntax">))+</span><span class="jsdoc-string">'; }'</span><span class="jsdoc-syntax">);
+                </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            
+            </span><span class="jsdoc-keyword">case </span><span class="jsdoc-string">'name'</span><span class="jsdoc-syntax">:
+                </span><span class="jsdoc-var">tpl.id  </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">tpl.value</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// replace non characters???
+                </span><span class="jsdoc-keyword">break</span><span class="jsdoc-syntax">;
+            
+        }
+        
+        
+        </span><span class="jsdoc-var">this.tpls.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl</span><span class="jsdoc-syntax">);
+        
+        
+        
+    },
+    </span><span class="jsdoc-comment">/**
+     * Compile a segment of the template into a 'sub-template'
+     * 
+     *
+     */
+    </span><span class="jsdoc-var">compileTpl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fm </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.util.Format</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">useF </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.disableFormats </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">sep </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.isGecko </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">&quot;+\n&quot; </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;,\n&quot;</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">undef </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">str</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;Property not found :&quot;  </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">str</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        };
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">fn </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">m</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">name</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">)
+        {
+            </span><span class="jsdoc-comment">//Roo.log(arguments);
+            </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">args.replace</span><span class="jsdoc-syntax">(/\\'/g,</span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">args</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-comment">//[&quot;{TEST:(a,b,c)}&quot;, &quot;TEST&quot;, &quot;&quot;, &quot;a,b,c&quot;, 0, &quot;{TEST:(a,b,c)}&quot;]
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">format</span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'htmlEncode'</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'raw' </span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
+            }
+            
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name.substr</span><span class="jsdoc-syntax">(0, 6) == </span><span class="jsdoc-string">'domtpl'</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">sep </span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">'this.applySubTemplate('</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">name.substr</span><span class="jsdoc-syntax">(6)+</span><span class="jsdoc-string">', values, parent)'</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">sep</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">;
+            }
+            
+            </span><span class="jsdoc-comment">// 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(&quot;Property not found&quot;); return ''; })() :
+            //    ......
+            
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">udef_ar </span><span class="jsdoc-syntax">= [];
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">lookfor </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">Roo.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">name.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">), </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">lookfor </span><span class="jsdoc-syntax">+= (</span><span class="jsdoc-var">lookfor.length </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'.'</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">) + </span><span class="jsdoc-var">st</span><span class="jsdoc-syntax">;
+                </span><span class="jsdoc-var">udef_ar.push</span><span class="jsdoc-syntax">(  </span><span class="jsdoc-string">&quot;(typeof(&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">lookfor </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;) == 'undefined')&quot;  </span><span class="jsdoc-syntax">);
+            });
+            
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">udef_st </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'((' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">udef_ar.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot; || &quot;</span><span class="jsdoc-syntax">) +</span><span class="jsdoc-string">&quot;) ? undef('&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;') : &quot;</span><span class="jsdoc-syntax">; </span><span class="jsdoc-comment">// .. needs )
+            
+            
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">useF</span><span class="jsdoc-syntax">){
+                
+                </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">',' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">;
+                 
+                </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">format.substr</span><span class="jsdoc-syntax">(0, 5) != </span><span class="jsdoc-string">&quot;this.&quot;</span><span class="jsdoc-syntax">){
+                    </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;fm.&quot; </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'('</span><span class="jsdoc-syntax">;
+                }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
+                    </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'this.call(&quot;'</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">format.substr</span><span class="jsdoc-syntax">(5) + </span><span class="jsdoc-string">'&quot;, '</span><span class="jsdoc-syntax">;
+                    </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;, values&quot;</span><span class="jsdoc-syntax">;
+                }
+                
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">sep </span><span class="jsdoc-syntax">+   </span><span class="jsdoc-var">udef_st   </span><span class="jsdoc-syntax">+    </span><span class="jsdoc-var">format </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;))&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">sep</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">;
+            }
+             
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">args.length</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-comment">// called with xxyx.yuu:(test,test)
+                // change to ()
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">sep </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">udef_st  </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'(' </span><span class="jsdoc-syntax">+  </span><span class="jsdoc-var">args </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;))&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">sep</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-comment">// raw.. - :raw modifier..
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">sep </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">udef_st  </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">name </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">&quot;)&quot;</span><span class="jsdoc-syntax">+</span><span class="jsdoc-var">sep</span><span class="jsdoc-syntax">+</span><span class="jsdoc-string">&quot;'&quot;</span><span class="jsdoc-syntax">;
+            
+        };
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-comment">// branched to use + in gecko and [].join() in others
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isGecko</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">&quot;tpl.compiled = function(values, parent){  with(values) { return '&quot; </span><span class="jsdoc-syntax">+
+                   </span><span class="jsdoc-var">tpl.body.replace</span><span class="jsdoc-syntax">(/(\r\n|\n)/g, </span><span class="jsdoc-string">'\\n'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/'/g, </span><span class="jsdoc-string">&quot;\\'&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.re</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">) +
+                    </span><span class="jsdoc-string">&quot;';};};&quot;</span><span class="jsdoc-syntax">;
+        }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= [</span><span class="jsdoc-string">&quot;tpl.compiled = function(values, parent){  with (values) { return ['&quot;</span><span class="jsdoc-syntax">];
+            </span><span class="jsdoc-var">body.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tpl.body.replace</span><span class="jsdoc-syntax">(/(\r\n|\n)/g,
+                            </span><span class="jsdoc-string">'\\n'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(/'/g, </span><span class="jsdoc-string">&quot;\\'&quot;</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.re</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">fn</span><span class="jsdoc-syntax">));
+            </span><span class="jsdoc-var">body.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;'].join('');};};&quot;</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">body </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">body.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+        }
+        
+        </span><span class="jsdoc-var">Roo.debug </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body.replace</span><span class="jsdoc-syntax">(/\\n/,</span><span class="jsdoc-string">'\n'</span><span class="jsdoc-syntax">));
+       
+        </span><span class="jsdoc-comment">/** eval:var:tpl eval:var:fm eval:var:useF eval:var:undef  */
+        </span><span class="jsdoc-keyword">eval</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">body</span><span class="jsdoc-syntax">);
+        
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+    },
+     
+    </span><span class="jsdoc-comment">/**
+     * same as applyTemplate, except it's done to one of the subTemplates
+     * when using named templates, you can do:
+     *
+     * var str = pl.applySubTemplate('your-name', values);
+     *
+     * 
+     * @param {Number} id of the template
+     * @param {Object} values to apply to template
+     * @param {Object} parent (normaly the instance of this object)
+     */
+    </span><span class="jsdoc-var">applySubTemplate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">)
+    {
+        
+        
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tpls</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">];
+        
+        
+        </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{ 
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.ifCall </span><span class="jsdoc-syntax">&amp;&amp; !</span><span class="jsdoc-var">t.ifCall.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">)){
+                </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'if call on ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t.value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' return false'</span><span class="jsdoc-syntax">);
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+            }
+        } </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Xtemplate.applySubTemplate('</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'): Exception thrown on roo-if=&quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t.value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot; - ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e.toString</span><span class="jsdoc-syntax">());
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">);
+          
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{ 
+            
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.execCall </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">t.execCall.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">)){
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+            }
+        } </span><span class="jsdoc-keyword">catch</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Xtemplate.applySubTemplate('</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'): Exception thrown on roo-for=&quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t.value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot; - ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e.toString</span><span class="jsdoc-syntax">());
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        }
+        
+        </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">vs </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t.forCall </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">t.forCall.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">) : </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">parent </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">t.target </span><span class="jsdoc-syntax">? </span><span class="jsdoc-var">values </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.forCall </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">vs </span><span class="jsdoc-keyword">instanceof </span><span class="jsdoc-var">Array</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">buf </span><span class="jsdoc-syntax">= [];
+                </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">vs.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
+                    </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
+                        </span><span class="jsdoc-var">buf</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">buf.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">t.compiled.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">vs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">], </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">);
+                    } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
+                        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Xtemplate.applySubTemplate('</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'): Exception thrown on body=&quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t.value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot; - ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e.toString</span><span class="jsdoc-syntax">());
+                        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.body</span><span class="jsdoc-syntax">);
+                        </span><span class="jsdoc-comment">//Roo.log(t.compiled);
+                        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">vs</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
+                    }   
+                }
+                </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">buf.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">);
+            }
+        } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Xtemplate.applySubTemplate('</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'): Exception thrown on roo-for=&quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t.value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot; - ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e.toString</span><span class="jsdoc-syntax">());
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">try </span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">t.compiled.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">vs</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parent</span><span class="jsdoc-syntax">);
+        } </span><span class="jsdoc-keyword">catch </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'Xtemplate.applySubTemplate('</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'): Exception thrown on body=&quot;' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">t.value </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">'&quot; - ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">e.toString</span><span class="jsdoc-syntax">());
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.body</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-comment">//Roo.log(t.compiled);
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        }
+    },
+
+   
+
+    </span><span class="jsdoc-var">applyTemplate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">){
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.master.compiled.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">values</span><span class="jsdoc-syntax">, {});
+        </span><span class="jsdoc-comment">//var s = this.subs;
+    </span><span class="jsdoc-syntax">},
+
+    </span><span class="jsdoc-var">apply </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.applyTemplate.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
+    }
+
+ });
+
+</span><span class="jsdoc-var">Roo.XTemplate.from </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
+    </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.getDom</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">);
+    </span><span class="jsdoc-keyword">return new </span><span class="jsdoc-var">Roo.XTemplate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el.value </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">el.innerHTML</span><span class="jsdoc-syntax">);
+};</span></code></body></html>
\ No newline at end of file
index a03998e..bf1db32 100644 (file)
      * @cfg {String|Roo.Template} tpl The template used by this View 
      */
     </span><span class="jsdoc-var">tpl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-    
+    </span><span class="jsdoc-comment">/**
+     * @cfg {String} dataName the named area of the template to use as the data area
+     *                          Works with domtemplates roo-name=&quot;name&quot;
+     */
+    </span><span class="jsdoc-var">dataName</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
     </span><span class="jsdoc-comment">/**
      * @cfg {String} selectedClass The css class to add to selected nodes
      */
      */
     </span><span class="jsdoc-var">refresh </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.tpl</span><span class="jsdoc-syntax">;
+        
+        </span><span class="jsdoc-comment">// if we are using something like 'domtemplate', then
+        // the what gets used is:
+        // t.applySubtemplate(NAME, data, wrapping data..)
+        // the outer template then get' applied with
+        //     the store 'extra data'
+        // and the body get's added to the
+        //      roo-name=&quot;data&quot; node?
+        //      &lt;span class='roo-tpl-{name}'&gt;&lt;/span&gt; ?????
+        
+        
+        
         </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">();
         </span><span class="jsdoc-var">this.el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">= [];
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">records </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.store.getRange</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">records.length </span><span class="jsdoc-syntax">&lt; 1){
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">records.length </span><span class="jsdoc-syntax">&lt; 1) {
+            
+            </span><span class="jsdoc-comment">// is this valid??  = should it render a template??
+            
             </span><span class="jsdoc-var">this.el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.emptyText</span><span class="jsdoc-syntax">);
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dataName</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.store.meta</span><span class="jsdoc-syntax">)); </span><span class="jsdoc-comment">//????
+            </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.roo-tpl-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.dataName</span><span class="jsdoc-syntax">);
+        }
+        
         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">records.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
             </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">data </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.prepareData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
             </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;preparedata&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
-            </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">html.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">Roo.util.Format.trim</span><span class="jsdoc-syntax">( </span><span class="jsdoc-var">t.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">) );
+            </span><span class="jsdoc-var">html</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">html.length</span><span class="jsdoc-syntax">] = </span><span class="jsdoc-var">Roo.util.Format.trim</span><span class="jsdoc-syntax">(
+                </span><span class="jsdoc-var">this.dataName </span><span class="jsdoc-syntax">?
+                    </span><span class="jsdoc-var">t.applySubtemplate</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.dataName</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.store.meta</span><span class="jsdoc-syntax">) :
+                    </span><span class="jsdoc-var">t.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">)
+            );
         }
-        </span><span class="jsdoc-var">this.el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">));
-        </span><span class="jsdoc-var">this.nodes </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom.childNodes</span><span class="jsdoc-syntax">;
+        
+        
+        
+        </span><span class="jsdoc-var">el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">html.join</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;&quot;</span><span class="jsdoc-syntax">));
+        </span><span class="jsdoc-var">this.nodes </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">el.dom.childNodes</span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-var">this.updateIndexes</span><span class="jsdoc-syntax">(0);
     },
 
     </span><span class="jsdoc-comment">/**
      * Function to override to reformat the data that is sent to
      * the template for each node.
+     * DEPRICATED - use the preparedata event handler.
      * @param {Array/Object} data The raw data (array of colData for a data model bound view or
      * a JSON object for an UpdateManager bound view).
      */
-    </span><span class="jsdoc-var">prepareData </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">){
+    </span><span class="jsdoc-var">prepareData </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">)
+    {
+        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;preparedata&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">data</span><span class="jsdoc-syntax">;
     },
 
         </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">();
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">index </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.store.indexOf</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.nodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
-        </span><span class="jsdoc-var">this.tpl.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.prepareData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record.data</span><span class="jsdoc-syntax">));
+        </span><span class="jsdoc-var">this.tpl.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.prepareData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">record.data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">));
         </span><span class="jsdoc-var">n.parentNode.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-var">this.updateIndexes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
     },
 
-    </span><span class="jsdoc-var">onAdd </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
+    
+    
+</span><span class="jsdoc-comment">// --------- FIXME     
+    </span><span class="jsdoc-var">onAdd </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">)
+    {
         </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">();
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.nodes.length </span><span class="jsdoc-syntax">== 0){
             </span><span class="jsdoc-var">this.refresh</span><span class="jsdoc-syntax">();
         }
         </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">n </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.nodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">];
         </span><span class="jsdoc-keyword">for</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">= 0, </span><span class="jsdoc-var">len </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">records.length</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i </span><span class="jsdoc-syntax">&lt; </span><span class="jsdoc-var">len</span><span class="jsdoc-syntax">; </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">++){
-            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.prepareData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.data</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">d </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.prepareData</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]</span><span class="jsdoc-var">.data</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">records</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">i</span><span class="jsdoc-syntax">]);
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">){
                 </span><span class="jsdoc-var">this.tpl.insertBefore</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">n</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
             }</span><span class="jsdoc-keyword">else</span><span class="jsdoc-syntax">{
+                
                 </span><span class="jsdoc-var">this.tpl.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">d</span><span class="jsdoc-syntax">);
             }
         }
 
     </span><span class="jsdoc-var">onRemove </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ds</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">record</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">){
         </span><span class="jsdoc-var">this.clearSelections</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-var">this.el.dom.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.nodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]);
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dataName  </span><span class="jsdoc-syntax">?
+            </span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.roo-tpl-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.dataName</span><span class="jsdoc-syntax">) :
+            </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">; 
+        </span><span class="jsdoc-var">el.dom.removeChild</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.nodes</span><span class="jsdoc-syntax">[</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">]);
         </span><span class="jsdoc-var">this.updateIndexes</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">index</span><span class="jsdoc-syntax">);
     },
 
      * @return {HTMLElement} The template node
      */
     </span><span class="jsdoc-var">findItemFromChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">){
-        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.dataName  </span><span class="jsdoc-syntax">?
+            </span><span class="jsdoc-var">this.el.child</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.roo-tpl-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.dataName</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">) :
+            </span><span class="jsdoc-var">this.el.dom</span><span class="jsdoc-syntax">; 
+        
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">node </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">node.parentNode </span><span class="jsdoc-syntax">== </span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">){
                    </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">node</span><span class="jsdoc-syntax">;
            }