sync
authorAlan Knowles <alan@roojs.com>
Thu, 29 Jul 2021 07:19:19 +0000 (15:19 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 29 Jul 2021 07:19:19 +0000 (15:19 +0800)
17 files changed:
docs/json/roodata.json
docs/src/Roo_bootstrap_Button.js.html
docs/src/Roo_bootstrap_NavItem.js.html
docs/src/Roo_bootstrap_htmleditor_ToolbarStandard.js.html
docs/src/Roo_bootstrap_menu_Item.js.html
docs/src/Roo_bootstrap_menu_Menu.js.html
docs/src/Roo_bootstrap_menu_Separator.js.html
docs/symbols/Roo.bootstrap.Button.json
docs/symbols/Roo.bootstrap.ButtonUploader.json
docs/symbols/Roo.bootstrap.CardUploader.json
docs/symbols/Roo.bootstrap.NavItem.json
docs/symbols/Roo.bootstrap.NavSidebarItem.json
docs/symbols/Roo.bootstrap.menu.Item.json
docs/symbols/Roo.bootstrap.menu.Menu.json
docs/tree.json
roojs-bootstrap-debug.js
roojs-bootstrap.js

index ff660f4..904fcc6 100644 (file)
       },
       {
         "name" : "menu",
-        "type" : "Roo.bootstrap.Menu",
+        "type" : "Roo.bootstrap.menu.Menu",
         "desc" : "a Menu",
         "memberOf" : ""
       },
       },
       {
         "name" : "menu",
-        "type" : "Roo.bootstrap.Menu",
+        "type" : "Roo.bootstrap.menu.Menu",
         "desc" : "a Menu",
         "memberOf" : "Roo.bootstrap.Button"
       },
       },
       {
         "name" : "menu",
-        "type" : "Roo.bootstrap.Menu",
+        "type" : "Roo.bootstrap.menu.Menu",
         "desc" : "a Menu",
         "memberOf" : "Roo.bootstrap.Button"
       },
       }
     ]
   },
-  "Roo.bootstrap.Menu" : {
+  "Roo.bootstrap.MessageBar" : {
     "props" : [
       {
         "name" : "actionMode",
         "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el' for forms you probably want to set this to fieldEl",
         "memberOf" : "Roo.Component"
       },
-      {
-        "name" : "align",
-        "type" : "String",
-        "desc" : "default tl-bl? == below  - how the menu should be aligned.",
-        "memberOf" : ""
-      },
       {
         "name" : "allowDomMove",
         "type" : "Boolean",
         "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "beforeClass",
+        "type" : "String",
+        "desc" : "insert the bar before the given class",
+        "memberOf" : ""
+      },
       {
         "name" : "can_build_overlaid",
         "type" : "Boolean",
         "desc" : "True if element can be rebuild from a HTML page",
         "memberOf" : "Roo.bootstrap.Component"
       },
+      {
+        "name" : "closable",
+        "type" : "Boolean",
+        "desc" : "e) default false",
+        "memberOf" : ""
+      },
       {
         "name" : "cls",
         "type" : "String",
         "memberOf" : "Roo.Component"
       },
       {
-        "name" : "hidden",
-        "type" : "bool",
-        "desc" : "if the menu should be hidden when rendered.",
+        "name" : "fixed",
+        "type" : "Boolean",
+        "desc" : "e) default false, fix the bar at the top",
         "memberOf" : ""
       },
       {
         "memberOf" : "Roo.Component"
       },
       {
-        "name" : "hideTrigger",
-        "type" : "bool",
-        "desc" : "e)  default false - hide the carret for trigger.",
-        "memberOf" : ""
-      },
-      {
-        "name" : "isLink",
-        "type" : "bool",
-        "desc" : "e)  the menu has link disable auto expand and collaspe (default false)",
+        "name" : "html",
+        "type" : "String",
+        "desc" : "contents of the MessageBar",
         "memberOf" : ""
       },
       {
         "desc" : "Specifies name attribute",
         "memberOf" : "Roo.bootstrap.Component"
       },
-      {
-        "name" : "registerMenu",
-        "type" : "Boolean",
-        "desc" : "True (default) - means that clicking on screen etc. hides it.",
-        "memberOf" : ""
-      },
-      {
-        "name" : "stopEvent",
-        "type" : "bool",
-        "desc" : "e)  Stop event after trigger press (default true)",
-        "memberOf" : ""
-      },
       {
         "name" : "style",
         "type" : "String",
         "desc" : "Text for the tooltip",
         "memberOf" : "Roo.bootstrap.Component"
       },
-      {
-        "name" : "type",
-        "type" : "String",
-        "desc" : "u) type of menu",
-        "memberOf" : ""
-      },
       {
         "name" : "visibilityEl",
         "type" : "string|object",
         "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
         "memberOf" : "Roo.bootstrap.Component"
       },
+      {
+        "name" : "weight",
+        "type" : "String",
+        "desc" : "r) default info",
+        "memberOf" : ""
+      },
       {
         "name" : "xattr",
         "type" : "Object",
       {
         "name" : "beforehide",
         "type" : "function",
-        "desc" : "Fires before this menu is hidden (return false to block)",
+        "desc" : "Fires before the component is hidden. Return false to stop the hide.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "",
+        "memberOf" : "Roo.Component",
         "example" : "",
         "deprecated" : "",
         "since" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.menu.Menu",
+            "type" : "Roo.Component",
             "desc" : "",
             "isOptional" : false
           }
       {
         "name" : "beforeshow",
         "type" : "function",
-        "desc" : "Fires before this menu is displayed (return false to block)",
+        "desc" : "Fires before the component is shown.  Return false to stop the show.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "",
+        "memberOf" : "Roo.Component",
         "example" : "",
         "deprecated" : "",
         "since" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.menu.Menu",
+            "type" : "Roo.Component",
             "desc" : "",
             "isOptional" : false
           }
         ],
         "returns" : []
       },
-      {
-        "name" : "click",
-        "type" : "function",
-        "desc" : "Fires when this menu is clicked (or when the enter key is pressed while it is active)",
-        "sig" : "function (_self, menuItem, e)\n{\n\n}",
-        "memberOf" : "",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.menu.Menu",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "menuItem",
-            "type" : "Roo.menu.Item",
-            "desc" : "The menu item that was clicked",
-            "isOptional" : false
-          },
-          {
-            "name" : "e",
-            "type" : "Roo.EventObject",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
       {
         "name" : "destroy",
         "type" : "function",
       {
         "name" : "hide",
         "type" : "function",
-        "desc" : "Fires after this menu is hidden",
+        "desc" : "Fires after the component is hidden.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.menu.Menu",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "itemclick",
-        "type" : "function",
-        "desc" : "Fires when a menu item contained in this menu is clicked",
-        "sig" : "function (baseItem, e)\n{\n\n}",
-        "memberOf" : "",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "baseItem",
-            "type" : "Roo.menu.BaseItem",
-            "desc" : "The BaseItem that was clicked",
-            "isOptional" : false
-          },
-          {
-            "name" : "e",
-            "type" : "Roo.EventObject",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "mouseout",
-        "type" : "function",
-        "desc" : "Fires when the mouse exits this menu",
-        "sig" : "function (_self, e, menuItem)\n{\n\n}",
-        "memberOf" : "",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.menu.Menu",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "e",
-            "type" : "Roo.EventObject",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "menuItem",
-            "type" : "Roo.menu.Item",
-            "desc" : "The menu item that was clicked",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "mouseover",
-        "type" : "function",
-        "desc" : "Fires when the mouse is hovering over this menu",
-        "sig" : "function (_self, e, menuItem)\n{\n\n}",
-        "memberOf" : "",
+        "memberOf" : "Roo.Component",
         "example" : "",
         "deprecated" : "",
         "since" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.menu.Menu",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "e",
-            "type" : "Roo.EventObject",
+            "type" : "Roo.Component",
             "desc" : "",
             "isOptional" : false
-          },
-          {
-            "name" : "menuItem",
-            "type" : "Roo.menu.Item",
-            "desc" : "The menu item that was clicked",
-            "isOptional" : false
           }
         ],
         "returns" : []
       {
         "name" : "show",
         "type" : "function",
-        "desc" : "Fires after this menu is displayed",
+        "desc" : "Fires after the component is shown.",
         "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "",
+        "memberOf" : "Roo.Component",
         "example" : "",
         "deprecated" : "",
         "since" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.menu.Menu",
+            "type" : "Roo.Component",
             "desc" : "",
             "isOptional" : false
           }
       {
         "name" : "hide",
         "type" : "function",
-        "desc" : "Hides this menu and optionally all parent menus",
-        "sig" : "(deep)",
+        "desc" : "Hide a component - adds 'hidden' class",
+        "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : "",
+        "memberOf" : "Roo.bootstrap.Component",
         "isStatic" : false,
         "isConstructor" : false,
         "isPrivate" : false,
         "see" : "",
         "exceptions" : "",
         "requires" : "",
-        "params" : [
-          {
-            "name" : "deep",
-            "type" : "Boolean",
-            "desc" : "(optional) True to hide all parent menus recursively, if any (defaults to false)",
-            "isOptional" : false
-          }
-        ],
+        "params" : [],
         "returns" : []
       },
       {
       {
         "name" : "show",
         "type" : "function",
-        "desc" : "Displays this menu relative to another element",
-        "sig" : "(element, position, parentMenu)",
-        "static" : false,
-        "memberOf" : "",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "element",
-            "type" : "String/HTMLElement/Roo.Element",
-            "desc" : "The element to align to",
-            "isOptional" : false
-          },
-          {
-            "name" : "position",
-            "type" : "String",
-            "desc" : "(optional) The {@link Roo.Element#alignTo} anchor position to use in aligning to\nthe element (defaults to this.defaultAlign)",
-            "isOptional" : false
-          },
-          {
-            "name" : "parentMenu",
-            "type" : "Roo.menu.Menu",
-            "desc" : "(optional) This menu's parent menu, if applicable (defaults to undefined)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "showAt",
-        "type" : "function",
-        "desc" : "Displays this menu at a specific xy position",
-        "sig" : "(xyPosition, parentMenu)",
+        "desc" : "Show a component - removes 'hidden' class",
+        "sig" : "()\n{\n\n}",
         "static" : false,
-        "memberOf" : "",
+        "memberOf" : "Roo.bootstrap.Component",
         "isStatic" : false,
         "isConstructor" : false,
         "isPrivate" : false,
         "see" : "",
         "exceptions" : "",
         "requires" : "",
-        "params" : [
-          {
-            "name" : "xyPosition",
-            "type" : "Array",
-            "desc" : "Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)",
-            "isOptional" : false
-          },
-          {
-            "name" : "parentMenu",
-            "type" : "Roo.menu.Menu",
-            "desc" : "(optional) This menu's parent menu, if applicable (defaults to undefined)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "tooltipEl",
-        "type" : "function",
-        "desc" : "Fetch the element to display the tooltip on.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "defaults to this.el"
-          }
-        ]
-      },
-      {
-        "name" : "un",
-        "type" : "function",
-        "desc" : "Removes a listener (shorthand for removeListener)",
-        "sig" : "(eventName, handler, scope)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The handler to remove",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the handler",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      }
-    ]
-  },
-  "Roo.bootstrap.MenuItem" : {
-    "props" : [
-      {
-        "name" : "actionMode",
-        "type" : "String",
-        "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el' for forms you probably want to set this to fieldEl",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "active",
-        "type" : "Boolean",
-        "desc" : "used on sidebars to highlight active itesm",
-        "memberOf" : ""
-      },
-      {
-        "name" : "allowDomMove",
-        "type" : "Boolean",
-        "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "can_build_overlaid",
-        "type" : "Boolean",
-        "desc" : "True if element can be rebuild from a HTML page",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "cls",
-        "type" : "String",
-        "desc" : "css class",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "container_method",
-        "type" : "string",
-        "desc" : "method to fetch parents container element (used by NavHeaderbar -  getHeaderChildContainer)",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "dataId",
-        "type" : "string",
-        "desc" : "cutomer id",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "disableClass",
-        "type" : "String",
-        "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "fa",
-        "type" : "String",
-        "desc" : "favicon to show on left of menu item.",
-        "memberOf" : ""
-      },
-      {
-        "name" : "hideMode",
-        "type" : "String",
-        "desc" : "y)\nHow this component should hidden. Supported values are\n\"visibility\" (css visibility), \"offsets\" (negative offset position) and\n\"display\" (css display) - defaults to \"display\".",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "href",
-        "type" : "String",
-        "desc" : "the link",
-        "memberOf" : ""
-      },
-      {
-        "name" : "html",
-        "type" : "String",
-        "desc" : "the menu label",
-        "memberOf" : ""
-      },
-      {
-        "name" : "isContainer",
-        "type" : "Boolean",
-        "desc" : "is it a container - just returns a drop down item..",
-        "memberOf" : ""
-      },
-      {
-        "name" : "listeners",
-        "type" : "Object",
-        "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
-        "memberOf" : "Roo.util.Observable"
-      },
-      {
-        "name" : "menu",
-        "type" : "Roo.bootsrap.Menu",
-        "desc" : "the child menu.",
-        "memberOf" : ""
-      },
-      {
-        "name" : "name",
-        "type" : "string",
-        "desc" : "Specifies name attribute",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "preventDefault",
-        "type" : "Boolean",
-        "desc" : "do not trigger A href on clicks (default false).",
-        "memberOf" : ""
-      },
-      {
-        "name" : "style",
-        "type" : "String",
-        "desc" : "any extra css",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "tooltip",
-        "type" : "string",
-        "desc" : "Text for the tooltip",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "visibilityEl",
-        "type" : "string|object",
-        "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "xattr",
-        "type" : "Object",
-        "desc" : "extra attributes to add to 'element' (used by builder to store stuff.)",
-        "memberOf" : "Roo.bootstrap.Component"
-      }
-    ],
-    "events" : [
-      {
-        "name" : "beforedestroy",
-        "type" : "function",
-        "desc" : "Fires before the component is destroyed. Return false to stop the destroy.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforehide",
-        "type" : "function",
-        "desc" : "Fires before the component is hidden. Return false to stop the hide.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforerender",
-        "type" : "function",
-        "desc" : "Fires before the component is rendered. Return false to stop the render.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforeshow",
-        "type" : "function",
-        "desc" : "Fires before the component is shown.  Return false to stop the show.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "childrenrendered",
-        "type" : "function",
-        "desc" : "Fires when the children have been rendered..",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.bootstrap.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.bootstrap.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "click",
-        "type" : "function",
-        "desc" : "The raw click event for the entire grid.",
-        "sig" : "function (_self, e)\n{\n\n}",
-        "memberOf" : "",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.bootstrap.MenuItem",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "e",
-            "type" : "Roo.EventObject",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "destroy",
-        "type" : "function",
-        "desc" : "Fires after the component is destroyed.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "disable",
-        "type" : "function",
-        "desc" : "Fires after the component is disabled.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "enable",
-        "type" : "function",
-        "desc" : "Fires after the component is enabled.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "hide",
-        "type" : "function",
-        "desc" : "Fires after the component is hidden.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "render",
-        "type" : "function",
-        "desc" : "Fires after the component is rendered.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "show",
-        "type" : "function",
-        "desc" : "Fires after the component is shown.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      }
-    ],
-    "methods" : [
-      {
-        "name" : "addEvents",
-        "type" : "function",
-        "desc" : "Used to define events on this Observable",
-        "sig" : "(object)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "object",
-            "type" : "Object",
-            "desc" : "The object with the events defined",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "addListener",
-        "type" : "function",
-        "desc" : "Appends an event handler to this component",
-        "sig" : "(eventName, handler, scope, options)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The method the event invokes",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
-            "isOptional" : false
-          },
-          {
-            "name" : "options",
-            "type" : "Object",
-            "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n    \t\tdelay: 100,\n    \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n        \t\tfn: this.onClick,\n        \t\tscope: this,\n        \t\tdelay: 100\n    \t\t}, \n    \t\t'mouseover': {\n        \t\tfn: this.onMouseOver,\n        \t\tscope: this\n    \t\t},\n    \t\t'mouseout': {\n        \t\tfn: this.onMouseOut,\n        \t\tscope: this\n    \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n     \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n    \t\t'mouseover': this.onMouseOver,\n    \t\t'mouseout': this.onMouseOut,\n    \t\tscope: this\n\t\t});\n\t\t</code></pre>",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "capture",
-        "type" : "function",
-        "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
-        "sig" : "(o, fn, scope)",
-        "static" : true,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : true,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "o",
-            "type" : "Observable",
-            "desc" : "The Observable to capture",
-            "isOptional" : false
-          },
-          {
-            "name" : "fn",
-            "type" : "Function",
-            "desc" : "The function to call",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the fn",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "destroy",
-        "type" : "function",
-        "desc" : "Destroys this component by purging any event listeners, removing the component's element from the DOM,\nremoving the component from its {@link Roo.Container} (if applicable) and unregistering it from {@link Roo.ComponentMgr}.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "disable",
-        "type" : "function",
-        "desc" : "Disable this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "enable",
-        "type" : "function",
-        "desc" : "Enable this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "fireEvent",
-        "type" : "function",
-        "desc" : "Fires the specified event with the passed parameters (minus the event name).",
-        "sig" : "(eventName, args)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "args",
-            "type" : "Object...",
-            "desc" : "Variable number of parameters are passed to handlers",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Boolean",
-            "desc" : "returns false if any of the handlers return false otherwise it returns true"
-          }
-        ]
-      },
-      {
-        "name" : "focus",
-        "type" : "function",
-        "desc" : "Try to focus this component.",
-        "sig" : "(selectText)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "selectText",
-            "type" : "Boolean",
-            "desc" : "True to also select the text in this component (if applicable)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "getChildContainer",
-        "type" : "function",
-        "desc" : "Fetch the element to add children to",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "defaults to this.el"
-          }
-        ]
-      },
-      {
-        "name" : "getEl",
-        "type" : "function",
-        "desc" : "Returns the underlying {@link Roo.Element}.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "The element"
-          }
-        ]
-      },
-      {
-        "name" : "getId",
-        "type" : "function",
-        "desc" : "Returns the id of this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "String",
-            "desc" : ""
-          }
-        ]
-      },
-      {
-        "name" : "getVisibilityEl",
-        "type" : "function",
-        "desc" : "Get the element that will be used to show or hide",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "hasListener",
-        "type" : "function",
-        "desc" : "Checks to see if this object has any listeners for a specified event",
-        "sig" : "(eventName)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The name of the event to check for",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Boolean",
-            "desc" : "True if the event is being listened for, else false"
-          }
-        ]
-      },
-      {
-        "name" : "hide",
-        "type" : "function",
-        "desc" : "Hide a component - adds 'hidden' class",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "initEvents",
-        "type" : "function",
-        "desc" : "Initialize Events for the element",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "isVisible",
-        "type" : "function",
-        "desc" : "Returns true if this component is visible.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "on",
-        "type" : "function",
-        "desc" : "Appends an event handler to this element (shorthand for addListener)",
-        "sig" : "(eventName, handler, scope, options)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The method the event invokes",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
-            "isOptional" : false
-          },
-          {
-            "name" : "options",
-            "type" : "Object",
-            "desc" : "(optional)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "purgeListeners",
-        "type" : "function",
-        "desc" : "Removes all listeners for this object",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "releaseCapture",
-        "type" : "function",
-        "desc" : "Removes <b>all</b> added captures from the Observable.",
-        "sig" : "(o)",
-        "static" : true,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : true,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "o",
-            "type" : "Observable",
-            "desc" : "The Observable to release",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "removeListener",
-        "type" : "function",
-        "desc" : "Removes a listener",
-        "sig" : "(eventName, handler, scope)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The handler to remove",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the handler",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "render",
-        "type" : "function",
-        "desc" : "If this is a lazy rendering component, render it to its container element.",
-        "sig" : "(container)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "container",
-            "type" : "String/HTMLElement/Element",
-            "desc" : "(optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "setDisabled",
-        "type" : "function",
-        "desc" : "Convenience function for setting disabled/enabled by boolean.",
-        "sig" : "(disabled)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "disabled",
-            "type" : "Boolean",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "setVisibilityEl",
-        "type" : "function",
-        "desc" : "Set the element that will be used to show or hide",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "setVisible",
-        "type" : "function",
-        "desc" : "Convenience function to hide or show this component by boolean.",
-        "sig" : "(visible)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "visible",
-            "type" : "Boolean",
-            "desc" : "True to show, false to hide",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "show",
-        "type" : "function",
-        "desc" : "Show a component - removes 'hidden' class",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "tooltipEl",
-        "type" : "function",
-        "desc" : "Fetch the element to display the tooltip on.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "defaults to this.el"
-          }
-        ]
-      },
-      {
-        "name" : "un",
-        "type" : "function",
-        "desc" : "Removes a listener (shorthand for removeListener)",
-        "sig" : "(eventName, handler, scope)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The handler to remove",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the handler",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      }
-    ]
-  },
-  "Roo.bootstrap.MenuMgr" : {
-    "props" : [],
-    "events" : [],
-    "methods" : [
-      {
-        "name" : "get",
-        "type" : "function",
-        "desc" : "Returns a {@link Roo.menu.Menu} object",
-        "sig" : "(menu)",
-        "static" : false,
-        "memberOf" : "",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "menu",
-            "type" : "String/Object",
-            "desc" : "The string menu id, an existing menu object reference, or a Menu config that will\nbe used to generate and return a new Menu instance.",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "hideAll",
-        "type" : "function",
-        "desc" : "Hides all menus that are currently visible",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      }
-    ]
-  },
-  "Roo.bootstrap.MenuSeparator" : {
-    "props" : [
-      {
-        "name" : "actionMode",
-        "type" : "String",
-        "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el' for forms you probably want to set this to fieldEl",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "allowDomMove",
-        "type" : "Boolean",
-        "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "can_build_overlaid",
-        "type" : "Boolean",
-        "desc" : "True if element can be rebuild from a HTML page",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "cls",
-        "type" : "String",
-        "desc" : "css class",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "container_method",
-        "type" : "string",
-        "desc" : "method to fetch parents container element (used by NavHeaderbar -  getHeaderChildContainer)",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "dataId",
-        "type" : "string",
-        "desc" : "cutomer id",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "disableClass",
-        "type" : "String",
-        "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "hideMode",
-        "type" : "String",
-        "desc" : "y)\nHow this component should hidden. Supported values are\n\"visibility\" (css visibility), \"offsets\" (negative offset position) and\n\"display\" (css display) - defaults to \"display\".",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "listeners",
-        "type" : "Object",
-        "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
-        "memberOf" : "Roo.util.Observable"
-      },
-      {
-        "name" : "name",
-        "type" : "string",
-        "desc" : "Specifies name attribute",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "style",
-        "type" : "String",
-        "desc" : "any extra css",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "tooltip",
-        "type" : "string",
-        "desc" : "Text for the tooltip",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "visibilityEl",
-        "type" : "string|object",
-        "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "xattr",
-        "type" : "Object",
-        "desc" : "extra attributes to add to 'element' (used by builder to store stuff.)",
-        "memberOf" : "Roo.bootstrap.Component"
-      }
-    ],
-    "events" : [
-      {
-        "name" : "beforedestroy",
-        "type" : "function",
-        "desc" : "Fires before the component is destroyed. Return false to stop the destroy.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforehide",
-        "type" : "function",
-        "desc" : "Fires before the component is hidden. Return false to stop the hide.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforerender",
-        "type" : "function",
-        "desc" : "Fires before the component is rendered. Return false to stop the render.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforeshow",
-        "type" : "function",
-        "desc" : "Fires before the component is shown.  Return false to stop the show.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "childrenrendered",
-        "type" : "function",
-        "desc" : "Fires when the children have been rendered..",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.bootstrap.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.bootstrap.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "destroy",
-        "type" : "function",
-        "desc" : "Fires after the component is destroyed.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "disable",
-        "type" : "function",
-        "desc" : "Fires after the component is disabled.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "enable",
-        "type" : "function",
-        "desc" : "Fires after the component is enabled.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "hide",
-        "type" : "function",
-        "desc" : "Fires after the component is hidden.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "render",
-        "type" : "function",
-        "desc" : "Fires after the component is rendered.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "show",
-        "type" : "function",
-        "desc" : "Fires after the component is shown.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      }
-    ],
-    "methods" : [
-      {
-        "name" : "addEvents",
-        "type" : "function",
-        "desc" : "Used to define events on this Observable",
-        "sig" : "(object)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "object",
-            "type" : "Object",
-            "desc" : "The object with the events defined",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "addListener",
-        "type" : "function",
-        "desc" : "Appends an event handler to this component",
-        "sig" : "(eventName, handler, scope, options)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The method the event invokes",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
-            "isOptional" : false
-          },
-          {
-            "name" : "options",
-            "type" : "Object",
-            "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n    \t\tdelay: 100,\n    \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n        \t\tfn: this.onClick,\n        \t\tscope: this,\n        \t\tdelay: 100\n    \t\t}, \n    \t\t'mouseover': {\n        \t\tfn: this.onMouseOver,\n        \t\tscope: this\n    \t\t},\n    \t\t'mouseout': {\n        \t\tfn: this.onMouseOut,\n        \t\tscope: this\n    \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n     \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n    \t\t'mouseover': this.onMouseOver,\n    \t\t'mouseout': this.onMouseOut,\n    \t\tscope: this\n\t\t});\n\t\t</code></pre>",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "capture",
-        "type" : "function",
-        "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
-        "sig" : "(o, fn, scope)",
-        "static" : true,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : true,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "o",
-            "type" : "Observable",
-            "desc" : "The Observable to capture",
-            "isOptional" : false
-          },
-          {
-            "name" : "fn",
-            "type" : "Function",
-            "desc" : "The function to call",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the fn",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "destroy",
-        "type" : "function",
-        "desc" : "Destroys this component by purging any event listeners, removing the component's element from the DOM,\nremoving the component from its {@link Roo.Container} (if applicable) and unregistering it from {@link Roo.ComponentMgr}.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "disable",
-        "type" : "function",
-        "desc" : "Disable this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "enable",
-        "type" : "function",
-        "desc" : "Enable this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "fireEvent",
-        "type" : "function",
-        "desc" : "Fires the specified event with the passed parameters (minus the event name).",
-        "sig" : "(eventName, args)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "args",
-            "type" : "Object...",
-            "desc" : "Variable number of parameters are passed to handlers",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Boolean",
-            "desc" : "returns false if any of the handlers return false otherwise it returns true"
-          }
-        ]
-      },
-      {
-        "name" : "focus",
-        "type" : "function",
-        "desc" : "Try to focus this component.",
-        "sig" : "(selectText)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "selectText",
-            "type" : "Boolean",
-            "desc" : "True to also select the text in this component (if applicable)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "getChildContainer",
-        "type" : "function",
-        "desc" : "Fetch the element to add children to",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "defaults to this.el"
-          }
-        ]
-      },
-      {
-        "name" : "getEl",
-        "type" : "function",
-        "desc" : "Returns the underlying {@link Roo.Element}.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "The element"
-          }
-        ]
-      },
-      {
-        "name" : "getId",
-        "type" : "function",
-        "desc" : "Returns the id of this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "String",
-            "desc" : ""
-          }
-        ]
-      },
-      {
-        "name" : "getVisibilityEl",
-        "type" : "function",
-        "desc" : "Get the element that will be used to show or hide",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "hasListener",
-        "type" : "function",
-        "desc" : "Checks to see if this object has any listeners for a specified event",
-        "sig" : "(eventName)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The name of the event to check for",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Boolean",
-            "desc" : "True if the event is being listened for, else false"
-          }
-        ]
-      },
-      {
-        "name" : "hide",
-        "type" : "function",
-        "desc" : "Hide a component - adds 'hidden' class",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "initEvents",
-        "type" : "function",
-        "desc" : "Initialize Events for the element",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "isVisible",
-        "type" : "function",
-        "desc" : "Returns true if this component is visible.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "on",
-        "type" : "function",
-        "desc" : "Appends an event handler to this element (shorthand for addListener)",
-        "sig" : "(eventName, handler, scope, options)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The method the event invokes",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
-            "isOptional" : false
-          },
-          {
-            "name" : "options",
-            "type" : "Object",
-            "desc" : "(optional)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "purgeListeners",
-        "type" : "function",
-        "desc" : "Removes all listeners for this object",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "releaseCapture",
-        "type" : "function",
-        "desc" : "Removes <b>all</b> added captures from the Observable.",
-        "sig" : "(o)",
-        "static" : true,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : true,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "o",
-            "type" : "Observable",
-            "desc" : "The Observable to release",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "removeListener",
-        "type" : "function",
-        "desc" : "Removes a listener",
-        "sig" : "(eventName, handler, scope)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The handler to remove",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the handler",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "render",
-        "type" : "function",
-        "desc" : "If this is a lazy rendering component, render it to its container element.",
-        "sig" : "(container)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "container",
-            "type" : "String/HTMLElement/Element",
-            "desc" : "(optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "setDisabled",
-        "type" : "function",
-        "desc" : "Convenience function for setting disabled/enabled by boolean.",
-        "sig" : "(disabled)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "disabled",
-            "type" : "Boolean",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "setVisibilityEl",
-        "type" : "function",
-        "desc" : "Set the element that will be used to show or hide",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "setVisible",
-        "type" : "function",
-        "desc" : "Convenience function to hide or show this component by boolean.",
-        "sig" : "(visible)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "visible",
-            "type" : "Boolean",
-            "desc" : "True to show, false to hide",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "show",
-        "type" : "function",
-        "desc" : "Show a component - removes 'hidden' class",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "tooltipEl",
-        "type" : "function",
-        "desc" : "Fetch the element to display the tooltip on.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "defaults to this.el"
-          }
-        ]
-      },
-      {
-        "name" : "un",
-        "type" : "function",
-        "desc" : "Removes a listener (shorthand for removeListener)",
-        "sig" : "(eventName, handler, scope)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The handler to remove",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the handler",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      }
-    ]
-  },
-  "Roo.bootstrap.MessageBar" : {
-    "props" : [
-      {
-        "name" : "actionMode",
-        "type" : "String",
-        "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el' for forms you probably want to set this to fieldEl",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "allowDomMove",
-        "type" : "Boolean",
-        "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "beforeClass",
-        "type" : "String",
-        "desc" : "insert the bar before the given class",
-        "memberOf" : ""
-      },
-      {
-        "name" : "can_build_overlaid",
-        "type" : "Boolean",
-        "desc" : "True if element can be rebuild from a HTML page",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "closable",
-        "type" : "Boolean",
-        "desc" : "e) default false",
-        "memberOf" : ""
-      },
-      {
-        "name" : "cls",
-        "type" : "String",
-        "desc" : "css class",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "container_method",
-        "type" : "string",
-        "desc" : "method to fetch parents container element (used by NavHeaderbar -  getHeaderChildContainer)",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "dataId",
-        "type" : "string",
-        "desc" : "cutomer id",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "disableClass",
-        "type" : "String",
-        "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "fixed",
-        "type" : "Boolean",
-        "desc" : "e) default false, fix the bar at the top",
-        "memberOf" : ""
-      },
-      {
-        "name" : "hideMode",
-        "type" : "String",
-        "desc" : "y)\nHow this component should hidden. Supported values are\n\"visibility\" (css visibility), \"offsets\" (negative offset position) and\n\"display\" (css display) - defaults to \"display\".",
-        "memberOf" : "Roo.Component"
-      },
-      {
-        "name" : "html",
-        "type" : "String",
-        "desc" : "contents of the MessageBar",
-        "memberOf" : ""
-      },
-      {
-        "name" : "listeners",
-        "type" : "Object",
-        "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
-        "memberOf" : "Roo.util.Observable"
-      },
-      {
-        "name" : "name",
-        "type" : "string",
-        "desc" : "Specifies name attribute",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "style",
-        "type" : "String",
-        "desc" : "any extra css",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "tooltip",
-        "type" : "string",
-        "desc" : "Text for the tooltip",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "visibilityEl",
-        "type" : "string|object",
-        "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
-        "memberOf" : "Roo.bootstrap.Component"
-      },
-      {
-        "name" : "weight",
-        "type" : "String",
-        "desc" : "r) default info",
-        "memberOf" : ""
-      },
-      {
-        "name" : "xattr",
-        "type" : "Object",
-        "desc" : "extra attributes to add to 'element' (used by builder to store stuff.)",
-        "memberOf" : "Roo.bootstrap.Component"
-      }
-    ],
-    "events" : [
-      {
-        "name" : "beforedestroy",
-        "type" : "function",
-        "desc" : "Fires before the component is destroyed. Return false to stop the destroy.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforehide",
-        "type" : "function",
-        "desc" : "Fires before the component is hidden. Return false to stop the hide.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforerender",
-        "type" : "function",
-        "desc" : "Fires before the component is rendered. Return false to stop the render.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "beforeshow",
-        "type" : "function",
-        "desc" : "Fires before the component is shown.  Return false to stop the show.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "childrenrendered",
-        "type" : "function",
-        "desc" : "Fires when the children have been rendered..",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.bootstrap.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.bootstrap.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "destroy",
-        "type" : "function",
-        "desc" : "Fires after the component is destroyed.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "disable",
-        "type" : "function",
-        "desc" : "Fires after the component is disabled.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "enable",
-        "type" : "function",
-        "desc" : "Fires after the component is enabled.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "hide",
-        "type" : "function",
-        "desc" : "Fires after the component is hidden.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "render",
-        "type" : "function",
-        "desc" : "Fires after the component is rendered.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "show",
-        "type" : "function",
-        "desc" : "Fires after the component is shown.",
-        "sig" : "function (_self)\n{\n\n}",
-        "memberOf" : "Roo.Component",
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "params" : [
-          {
-            "name" : "this",
-            "type" : "Roo.Component",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      }
-    ],
-    "methods" : [
-      {
-        "name" : "addEvents",
-        "type" : "function",
-        "desc" : "Used to define events on this Observable",
-        "sig" : "(object)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "object",
-            "type" : "Object",
-            "desc" : "The object with the events defined",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "addListener",
-        "type" : "function",
-        "desc" : "Appends an event handler to this component",
-        "sig" : "(eventName, handler, scope, options)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The method the event invokes",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
-            "isOptional" : false
-          },
-          {
-            "name" : "options",
-            "type" : "Object",
-            "desc" : "(optional) An object containing handler configuration\nproperties. This may contain any of the following properties:<ul>\n<li>scope {Object} The scope in which to execute the handler function. The handler function's \"this\" context.</li>\n<li>delay {Number} The number of milliseconds to delay the invocation of the handler after te event fires.</li>\n<li>single {Boolean} True to add a handler to handle just the next firing of the event, and then remove itself.</li>\n<li>buffer {Number} Causes the handler to be scheduled to run in an {@link Roo.util.DelayedTask} delayed\nby the specified number of milliseconds. If the event fires again within that time, the original\nhandler is <em>not</em> invoked, but the new handler is scheduled in its place.</li>\n</ul><br>\n<p>\n<b>Combining Options</b><br>\nUsing the options argument, it is possible to combine different types of listeners:<br>\n<br>\nA normalized, delayed, one-time listener that auto stops the event and passes a custom argument (forumId)\n\t\t<pre><code>\n\t\tel.on('click', this.onClick, this, {\n \t\t\tsingle: true,\n    \t\tdelay: 100,\n    \t\tforumId: 4\n\t\t});\n\t\t</code></pre>\n<p>\n<b>Attaching multiple handlers in 1 call</b><br>\nThe method also allows for a single argument to be passed which is a config object containing properties\nwhich specify multiple handlers.\n<pre><code>\n\t\tel.on({\n\t\t\t'click': {\n        \t\tfn: this.onClick,\n        \t\tscope: this,\n        \t\tdelay: 100\n    \t\t}, \n    \t\t'mouseover': {\n        \t\tfn: this.onMouseOver,\n        \t\tscope: this\n    \t\t},\n    \t\t'mouseout': {\n        \t\tfn: this.onMouseOut,\n        \t\tscope: this\n    \t\t}\n\t\t});\n\t\t</code></pre>\n<p>\nOr a shorthand syntax which passes the same scope object to all handlers:\n     \t<pre><code>\n\t\tel.on({\n\t\t\t'click': this.onClick,\n    \t\t'mouseover': this.onMouseOver,\n    \t\t'mouseout': this.onMouseOut,\n    \t\tscope: this\n\t\t});\n\t\t</code></pre>",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "capture",
-        "type" : "function",
-        "desc" : "Starts capture on the specified Observable. All events will be passed\nto the supplied function with the event name + standard signature of the event\n<b>before</b> the event is fired. If the supplied function returns false,\nthe event will not fire.",
-        "sig" : "(o, fn, scope)",
-        "static" : true,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : true,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "o",
-            "type" : "Observable",
-            "desc" : "The Observable to capture",
-            "isOptional" : false
-          },
-          {
-            "name" : "fn",
-            "type" : "Function",
-            "desc" : "The function to call",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the fn",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "destroy",
-        "type" : "function",
-        "desc" : "Destroys this component by purging any event listeners, removing the component's element from the DOM,\nremoving the component from its {@link Roo.Container} (if applicable) and unregistering it from {@link Roo.ComponentMgr}.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "disable",
-        "type" : "function",
-        "desc" : "Disable this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "enable",
-        "type" : "function",
-        "desc" : "Enable this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "fireEvent",
-        "type" : "function",
-        "desc" : "Fires the specified event with the passed parameters (minus the event name).",
-        "sig" : "(eventName, args)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "",
-            "isOptional" : false
-          },
-          {
-            "name" : "args",
-            "type" : "Object...",
-            "desc" : "Variable number of parameters are passed to handlers",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Boolean",
-            "desc" : "returns false if any of the handlers return false otherwise it returns true"
-          }
-        ]
-      },
-      {
-        "name" : "focus",
-        "type" : "function",
-        "desc" : "Try to focus this component.",
-        "sig" : "(selectText)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "selectText",
-            "type" : "Boolean",
-            "desc" : "True to also select the text in this component (if applicable)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "getChildContainer",
-        "type" : "function",
-        "desc" : "Fetch the element to add children to",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "defaults to this.el"
-          }
-        ]
-      },
-      {
-        "name" : "getEl",
-        "type" : "function",
-        "desc" : "Returns the underlying {@link Roo.Element}.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Element",
-            "desc" : "The element"
-          }
-        ]
-      },
-      {
-        "name" : "getId",
-        "type" : "function",
-        "desc" : "Returns the id of this component.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "String",
-            "desc" : ""
-          }
-        ]
-      },
-      {
-        "name" : "getVisibilityEl",
-        "type" : "function",
-        "desc" : "Get the element that will be used to show or hide",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "hasListener",
-        "type" : "function",
-        "desc" : "Checks to see if this object has any listeners for a specified event",
-        "sig" : "(eventName)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The name of the event to check for",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Boolean",
-            "desc" : "True if the event is being listened for, else false"
-          }
-        ]
-      },
-      {
-        "name" : "hide",
-        "type" : "function",
-        "desc" : "Hide a component - adds 'hidden' class",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "initEvents",
-        "type" : "function",
-        "desc" : "Initialize Events for the element",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "isVisible",
-        "type" : "function",
-        "desc" : "Returns true if this component is visible.",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "on",
-        "type" : "function",
-        "desc" : "Appends an event handler to this element (shorthand for addListener)",
-        "sig" : "(eventName, handler, scope, options)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The method the event invokes",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope in which to execute the handler\nfunction. The handler function's \"this\" context.",
-            "isOptional" : false
-          },
-          {
-            "name" : "options",
-            "type" : "Object",
-            "desc" : "(optional)",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "purgeListeners",
-        "type" : "function",
-        "desc" : "Removes all listeners for this object",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "releaseCapture",
-        "type" : "function",
-        "desc" : "Removes <b>all</b> added captures from the Observable.",
-        "sig" : "(o)",
-        "static" : true,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : true,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "o",
-            "type" : "Observable",
-            "desc" : "The Observable to release",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "removeListener",
-        "type" : "function",
-        "desc" : "Removes a listener",
-        "sig" : "(eventName, handler, scope)",
-        "static" : false,
-        "memberOf" : "Roo.util.Observable",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "eventName",
-            "type" : "String",
-            "desc" : "The type of event to listen for",
-            "isOptional" : false
-          },
-          {
-            "name" : "handler",
-            "type" : "Function",
-            "desc" : "The handler to remove",
-            "isOptional" : false
-          },
-          {
-            "name" : "scope",
-            "type" : "Object",
-            "desc" : "(optional) The scope (this object) for the handler",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "render",
-        "type" : "function",
-        "desc" : "If this is a lazy rendering component, render it to its container element.",
-        "sig" : "(container)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "container",
-            "type" : "String/HTMLElement/Element",
-            "desc" : "(optional) The element this component should be rendered into. If it is being applied to existing markup, this should be left off.",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "setDisabled",
-        "type" : "function",
-        "desc" : "Convenience function for setting disabled/enabled by boolean.",
-        "sig" : "(disabled)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "disabled",
-            "type" : "Boolean",
-            "desc" : "",
-            "isOptional" : false
-          }
-        ],
-        "returns" : []
-      },
-      {
-        "name" : "setVisibilityEl",
-        "type" : "function",
-        "desc" : "Set the element that will be used to show or hide",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
-        "returns" : []
-      },
-      {
-        "name" : "setVisible",
-        "type" : "function",
-        "desc" : "Convenience function to hide or show this component by boolean.",
-        "sig" : "(visible)",
-        "static" : false,
-        "memberOf" : "Roo.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [
-          {
-            "name" : "visible",
-            "type" : "Boolean",
-            "desc" : "True to show, false to hide",
-            "isOptional" : false
-          }
-        ],
-        "returns" : [
-          {
-            "name" : "",
-            "type" : "Roo.Component",
-            "desc" : "this"
-          }
-        ]
-      },
-      {
-        "name" : "show",
-        "type" : "function",
-        "desc" : "Show a component - removes 'hidden' class",
-        "sig" : "()\n{\n\n}",
-        "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
-        "isStatic" : false,
-        "isConstructor" : false,
-        "isPrivate" : false,
-        "example" : "",
-        "deprecated" : "",
-        "since" : "",
-        "see" : "",
-        "exceptions" : "",
-        "requires" : "",
-        "params" : [],
+        "params" : [],
         "returns" : []
       },
       {
       },
       {
         "name" : "menu",
-        "type" : "Roo.bootstrap.Menu",
+        "type" : "Roo.bootstrap.menu.Menu",
         "desc" : "a Menu",
         "memberOf" : ""
       },
       },
       {
         "name" : "menu",
-        "type" : "Roo.bootstrap.Menu",
+        "type" : "Roo.bootstrap.menu.Menu",
         "desc" : "a Menu",
         "memberOf" : "Roo.bootstrap.NavItem"
       },
         "memberOf" : "Roo.bootstrap.Component"
       },
       {
-        "name" : "disable",
+        "name" : "disableClass",
+        "type" : "String",
+        "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
+        "memberOf" : "Roo.Component"
+      },
+      {
+        "name" : "disabled",
         "type" : "Boolean",
-        "desc" : "e) default false",
+        "desc" : "is the item disabled - default false",
         "memberOf" : ""
       },
       {
-        "name" : "disableClass",
+        "name" : "fa",
         "type" : "String",
-        "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
-        "memberOf" : "Roo.Component"
+        "desc" : "Font awesome icon",
+        "memberOf" : ""
       },
       {
         "name" : "hideMode",
         "desc" : "text of the item",
         "memberOf" : ""
       },
-      {
-        "name" : "icon",
-        "type" : "String",
-        "desc" : "Font awesome icon",
-        "memberOf" : ""
-      },
       {
         "name" : "listeners",
         "type" : "Object",
         "desc" : "list of events and functions to call for this object, \nFor example :\n<pre><code>\n    listeners :  { \n       'click' : function(e) {\n           ..... \n        } ,\n        .... \n    } \n  </code></pre>",
         "memberOf" : "Roo.util.Observable"
       },
+      {
+        "name" : "menu",
+        "type" : "Roo.bootsrap.Menu",
+        "desc" : "the child menu.",
+        "memberOf" : ""
+      },
       {
         "name" : "name",
         "type" : "string",
       {
         "name" : "pos",
         "type" : "String",
-        "desc" : "Submenu align to (left | right) default right",
+        "desc" : "t) Submenu align to  default right",
         "memberOf" : ""
       },
       {
         "name" : "preventDefault",
         "type" : "Boolean",
-        "desc" : "e) default true",
+        "desc" : "stop trigger click event to parent elements - default true",
         "memberOf" : ""
       },
       {
       {
         "name" : "submenu",
         "type" : "Boolean",
-        "desc" : "e) default false",
+        "desc" : "default false -",
         "memberOf" : ""
       },
       {
       }
     ]
   },
+  "Roo.bootstrap.menu.Manager" : {
+    "props" : [],
+    "events" : [],
+    "methods" : [
+      {
+        "name" : "get",
+        "type" : "function",
+        "desc" : "Returns a {@link Roo.menu.Menu} object",
+        "sig" : "(menu)",
+        "static" : false,
+        "memberOf" : "",
+        "isStatic" : false,
+        "isConstructor" : false,
+        "isPrivate" : false,
+        "example" : "",
+        "deprecated" : "",
+        "since" : "",
+        "see" : "",
+        "exceptions" : "",
+        "requires" : "",
+        "params" : [
+          {
+            "name" : "menu",
+            "type" : "String/Object",
+            "desc" : "The string menu id, an existing menu object reference, or a Menu config that will\nbe used to generate and return a new Menu instance.",
+            "isOptional" : false
+          }
+        ],
+        "returns" : []
+      },
+      {
+        "name" : "hideAll",
+        "type" : "function",
+        "desc" : "Hides all menus that are currently visible",
+        "sig" : "()\n{\n\n}",
+        "static" : false,
+        "memberOf" : "",
+        "isStatic" : false,
+        "isConstructor" : false,
+        "isPrivate" : false,
+        "example" : "",
+        "deprecated" : "",
+        "since" : "",
+        "see" : "",
+        "exceptions" : "",
+        "requires" : "",
+        "params" : [],
+        "returns" : []
+      }
+    ]
+  },
   "Roo.bootstrap.menu.Menu" : {
     "props" : [
       {
         "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el' for forms you probably want to set this to fieldEl",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "align",
+        "type" : "String",
+        "desc" : "default tl-bl? == below  - how the menu should be aligned.",
+        "memberOf" : ""
+      },
       {
         "name" : "allowDomMove",
         "type" : "Boolean",
         "desc" : "CSS class added to the component when it is disabled (defaults to \"x-item-disabled\").",
         "memberOf" : "Roo.Component"
       },
+      {
+        "name" : "hidden",
+        "type" : "bool",
+        "desc" : "if the menu should be hidden when rendered.",
+        "memberOf" : ""
+      },
       {
         "name" : "hideMode",
         "type" : "String",
         "memberOf" : "Roo.Component"
       },
       {
-        "name" : "html",
-        "type" : "String",
-        "desc" : "Text of the menu",
+        "name" : "hideTrigger",
+        "type" : "bool",
+        "desc" : "e)  default false - hide the carret for trigger.",
         "memberOf" : ""
       },
       {
-        "name" : "icon",
-        "type" : "String",
-        "desc" : "Font awesome icon",
+        "name" : "isLink",
+        "type" : "bool",
+        "desc" : "e)  the menu has link disable auto expand and collaspe (default false)",
         "memberOf" : ""
       },
       {
         "memberOf" : "Roo.bootstrap.Component"
       },
       {
-        "name" : "pos",
-        "type" : "String",
-        "desc" : "Menu align to (top | bottom) default bottom",
+        "name" : "registerMenu",
+        "type" : "Boolean",
+        "desc" : "True (default) - means that clicking on screen etc. hides it.",
+        "memberOf" : ""
+      },
+      {
+        "name" : "stopEvent",
+        "type" : "bool",
+        "desc" : "e)  Stop event after trigger press (default true)",
         "memberOf" : ""
       },
       {
         "desc" : "Text for the tooltip",
         "memberOf" : "Roo.bootstrap.Component"
       },
+      {
+        "name" : "type",
+        "type" : "String",
+        "desc" : "u) type of menu",
+        "memberOf" : ""
+      },
       {
         "name" : "visibilityEl",
         "type" : "string|object",
         "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
         "memberOf" : "Roo.bootstrap.Component"
       },
-      {
-        "name" : "weight",
-        "type" : "String",
-        "desc" : "e)",
-        "memberOf" : ""
-      },
       {
         "name" : "xattr",
         "type" : "Object",
       {
         "name" : "beforehide",
         "type" : "function",
-        "desc" : "Fires before this menu is hidden",
+        "desc" : "Fires before this menu is hidden (return false to block)",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "",
         "example" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.bootstrap.menu.Menu",
+            "type" : "Roo.menu.Menu",
             "desc" : "",
             "isOptional" : false
           }
       {
         "name" : "beforeshow",
         "type" : "function",
-        "desc" : "Fires before this menu is displayed",
+        "desc" : "Fires before this menu is displayed (return false to block)",
         "sig" : "function (_self)\n{\n\n}",
         "memberOf" : "",
         "example" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.bootstrap.menu.Menu",
+            "type" : "Roo.menu.Menu",
             "desc" : "",
             "isOptional" : false
           }
         "name" : "click",
         "type" : "function",
         "desc" : "Fires when this menu is clicked (or when the enter key is pressed while it is active)",
-        "sig" : "function (_self, e)\n{\n\n}",
+        "sig" : "function (_self, menuItem, e)\n{\n\n}",
         "memberOf" : "",
         "example" : "",
         "deprecated" : "",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.bootstrap.menu.Menu",
+            "type" : "Roo.menu.Menu",
             "desc" : "",
             "isOptional" : false
           },
+          {
+            "name" : "menuItem",
+            "type" : "Roo.menu.Item",
+            "desc" : "The menu item that was clicked",
+            "isOptional" : false
+          },
           {
             "name" : "e",
             "type" : "Roo.EventObject",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.bootstrap.menu.Menu",
+            "type" : "Roo.menu.Menu",
+            "desc" : "",
+            "isOptional" : false
+          }
+        ],
+        "returns" : []
+      },
+      {
+        "name" : "itemclick",
+        "type" : "function",
+        "desc" : "Fires when a menu item contained in this menu is clicked",
+        "sig" : "function (baseItem, e)\n{\n\n}",
+        "memberOf" : "",
+        "example" : "",
+        "deprecated" : "",
+        "since" : "",
+        "see" : "",
+        "params" : [
+          {
+            "name" : "baseItem",
+            "type" : "Roo.menu.BaseItem",
+            "desc" : "The BaseItem that was clicked",
+            "isOptional" : false
+          },
+          {
+            "name" : "e",
+            "type" : "Roo.EventObject",
             "desc" : "",
             "isOptional" : false
           }
         ],
         "returns" : []
       },
+      {
+        "name" : "mouseout",
+        "type" : "function",
+        "desc" : "Fires when the mouse exits this menu",
+        "sig" : "function (_self, e, menuItem)\n{\n\n}",
+        "memberOf" : "",
+        "example" : "",
+        "deprecated" : "",
+        "since" : "",
+        "see" : "",
+        "params" : [
+          {
+            "name" : "this",
+            "type" : "Roo.menu.Menu",
+            "desc" : "",
+            "isOptional" : false
+          },
+          {
+            "name" : "e",
+            "type" : "Roo.EventObject",
+            "desc" : "",
+            "isOptional" : false
+          },
+          {
+            "name" : "menuItem",
+            "type" : "Roo.menu.Item",
+            "desc" : "The menu item that was clicked",
+            "isOptional" : false
+          }
+        ],
+        "returns" : []
+      },
+      {
+        "name" : "mouseover",
+        "type" : "function",
+        "desc" : "Fires when the mouse is hovering over this menu",
+        "sig" : "function (_self, e, menuItem)\n{\n\n}",
+        "memberOf" : "",
+        "example" : "",
+        "deprecated" : "",
+        "since" : "",
+        "see" : "",
+        "params" : [
+          {
+            "name" : "this",
+            "type" : "Roo.menu.Menu",
+            "desc" : "",
+            "isOptional" : false
+          },
+          {
+            "name" : "e",
+            "type" : "Roo.EventObject",
+            "desc" : "",
+            "isOptional" : false
+          },
+          {
+            "name" : "menuItem",
+            "type" : "Roo.menu.Item",
+            "desc" : "The menu item that was clicked",
+            "isOptional" : false
+          }
+        ],
+        "returns" : []
+      },
       {
         "name" : "render",
         "type" : "function",
         "params" : [
           {
             "name" : "this",
-            "type" : "Roo.bootstrap.menu.Menu",
+            "type" : "Roo.menu.Menu",
             "desc" : "",
             "isOptional" : false
           }
       {
         "name" : "hide",
         "type" : "function",
-        "desc" : "Hide a component - adds 'hidden' class",
-        "sig" : "()\n{\n\n}",
+        "desc" : "Hides this menu and optionally all parent menus",
+        "sig" : "(deep)",
         "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
+        "memberOf" : "",
         "isStatic" : false,
         "isConstructor" : false,
         "isPrivate" : false,
         "see" : "",
         "exceptions" : "",
         "requires" : "",
-        "params" : [],
+        "params" : [
+          {
+            "name" : "deep",
+            "type" : "Boolean",
+            "desc" : "(optional) True to hide all parent menus recursively, if any (defaults to false)",
+            "isOptional" : false
+          }
+        ],
         "returns" : []
       },
       {
       {
         "name" : "show",
         "type" : "function",
-        "desc" : "Show a component - removes 'hidden' class",
-        "sig" : "()\n{\n\n}",
+        "desc" : "Displays this menu relative to another element",
+        "sig" : "(element, position, parentMenu)",
         "static" : false,
-        "memberOf" : "Roo.bootstrap.Component",
+        "memberOf" : "",
         "isStatic" : false,
         "isConstructor" : false,
         "isPrivate" : false,
         "see" : "",
         "exceptions" : "",
         "requires" : "",
-        "params" : [],
+        "params" : [
+          {
+            "name" : "element",
+            "type" : "String/HTMLElement/Roo.Element",
+            "desc" : "The element to align to",
+            "isOptional" : false
+          },
+          {
+            "name" : "position",
+            "type" : "String",
+            "desc" : "(optional) The {@link Roo.Element#alignTo} anchor position to use in aligning to\nthe element (defaults to this.defaultAlign)",
+            "isOptional" : false
+          },
+          {
+            "name" : "parentMenu",
+            "type" : "Roo.menu.Menu",
+            "desc" : "(optional) This menu's parent menu, if applicable (defaults to undefined)",
+            "isOptional" : false
+          }
+        ],
+        "returns" : []
+      },
+      {
+        "name" : "showAt",
+        "type" : "function",
+        "desc" : "Displays this menu at a specific xy position",
+        "sig" : "(xyPosition, parentMenu)",
+        "static" : false,
+        "memberOf" : "",
+        "isStatic" : false,
+        "isConstructor" : false,
+        "isPrivate" : false,
+        "example" : "",
+        "deprecated" : "",
+        "since" : "",
+        "see" : "",
+        "exceptions" : "",
+        "requires" : "",
+        "params" : [
+          {
+            "name" : "xyPosition",
+            "type" : "Array",
+            "desc" : "Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)",
+            "isOptional" : false
+          },
+          {
+            "name" : "parentMenu",
+            "type" : "Roo.menu.Menu",
+            "desc" : "(optional) This menu's parent menu, if applicable (defaults to undefined)",
+            "isOptional" : false
+          }
+        ],
         "returns" : []
       },
       {
index 9e45fc9..108bbaf 100644 (file)
@@ -31,7 +31,7 @@
  * @cfg {Boolean} removeClass remove the standard class..
  * @cfg {String} target (_self|_blank|_parent|_top|other) target for a href. 
  * @cfg {Boolean} grpup if parent is a btn group - then it turns it into a toogleGroup.
- * @cfg {Roo.bootstrap.Menu} menu a Menu 
+ * @cfg {Roo.bootstrap.menu.Menu} menu a Menu 
 
  * @constructor
  * Create a new button
index 4436033..6bac955 100644 (file)
@@ -1,14 +1,9 @@
-<html><head><title>Roo/bootstrap/NavItem.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">/*
- * - LGPL
- *
- * row
- * 
- */
-
-/**
+<html><head><title>Roo/bootstrap/NavItem.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">/**
  * @class Roo.bootstrap.NavItem
  * @extends Roo.bootstrap.Component
+ * @licence LGPL
  * Bootstrap Navbar.NavItem class
+ * 
  * @cfg {String} href  link to
  * @cfg {String} button_weight (default|primary|secondary|success|info|warning|danger|link|light|dark) default none
  * @cfg {Boolean} button_outline show and outlined button
@@ -25,7 +20,7 @@
  * @cfg {String} tabId the tab that this item activates.
  * @cfg {String} tagtype (a|span) render as a href or span?
  * @cfg {Boolean} animateRef (true|false) link to element default false  
- * @cfg {Roo.bootstrap.Menu} menu a Menu 
+ * @cfg {Roo.bootstrap.menu.Menu} menu a Menu 
   
  * @constructor
  * Create a new Navbar Item
index d60c6e3..113dccf 100644 (file)
         // hides menus... - so this cant be on a menu...
         Roo.bootstrap.MenuMgr.hideAll();
         */
-        </span><span class="jsdoc-var">Roo.bootstrap.MenuMgr.hideAll</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-var">Roo.bootstrap.menu.Manager.hideAll</span><span class="jsdoc-syntax">();
         </span><span class="jsdoc-comment">//this.editorsyncValue();
     </span><span class="jsdoc-syntax">},
     </span><span class="jsdoc-var">onFirstFocus</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
index 6186557..d0f1d11 100644 (file)
@@ -1,26 +1,20 @@
-<html><head><title>Roo/bootstrap/menu/Item.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">/*
- * - LGPL
- *
- * menu item
- * 
- */
-</span><span class="jsdoc-var">Roo.bootstrap.menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.menu </span><span class="jsdoc-syntax">|| {};
-
-</span><span class="jsdoc-comment">/**
+<html><head><title>Roo/bootstrap/menu/Item.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">/**
  * @class Roo.bootstrap.menu.Item
  * @extends Roo.bootstrap.Component
+ * @licence LGPL
  * Bootstrap MenuItem class
- * @cfg {Boolean} submenu (true | false) default false
+ * @cfg {Boolean} submenu default false - 
  * @cfg {String} html text of the item
  * @cfg {String} href the link
- * @cfg {Boolean} disable (true | false) default false
- * @cfg {Boolean} preventDefault (true | false) default true
- * @cfg {String} icon Font awesome icon
- * @cfg {String} pos Submenu align to (left | right) default right 
- * 
+ * @cfg {Boolean} disabled  is the item disabled - default false 
+ * @cfg {Boolean} preventDefault stop trigger click event to parent elements - default true
+ * @cfg {String} fa  Font awesome icon
+ * @cfg {String} pos (left|right) Submenu align to  default right 
+ * @cfg {Roo.bootsrap.Menu} menu the child menu.
  * 
  * @constructor
- * Create a new Item
+ * Create a new Menu  Item
  * @param {Object} config The config object
  */
 
     </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
     </span><span class="jsdoc-var">preventDefault</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
     </span><span class="jsdoc-var">disable </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-    </span><span class="jsdoc-var">icon </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">active </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-var">fa </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
     </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'right'</span><span class="jsdoc-syntax">,
 
+    </span><span class="jsdoc-var">isContainer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// ?? only a &lt;li drowdonw-menu-item&quot;&gt;
+
     </span><span class="jsdoc-var">getAutoCreate </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">text </span><span class="jsdoc-syntax">= [
-            {
-                </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'roo-menu-item-text'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html
-            </span><span class="jsdoc-syntax">}
-        ];
-
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.icon</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-var">text.unshift</span><span class="jsdoc-syntax">({
-                </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'fa ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.icon
-            </span><span class="jsdoc-syntax">})
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isContainer</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-syntax">{
+                </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'li'</span><span class="jsdoc-syntax">,
+                </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-menu-item '
+            </span><span class="jsdoc-syntax">};
         }
 
-        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
-            </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'li'</span><span class="jsdoc-syntax">,
-            </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: [
-                {
-                    </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'a'</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.href </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'#'</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">text
-                </span><span class="jsdoc-syntax">}
-            ]
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">ctag </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'roo-menu-item-text'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html
+        </span><span class="jsdoc-syntax">};
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">anc </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'a'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-item'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">href </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.href </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-string">'#'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: [  ]
         };
 
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.disable</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.cls</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">'disabled' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' disabled'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.fa </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">anc.cn.push</span><span class="jsdoc-syntax">({
+                </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">,
+                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'fa fa-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.fa
+            </span><span class="jsdoc-syntax">});
+        }
+
+        </span><span class="jsdoc-var">anc.cn.push</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ctag</span><span class="jsdoc-syntax">);
+
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">tag</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'li'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cls</span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-menu-item'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cn</span><span class="jsdoc-syntax">: [ </span><span class="jsdoc-var">anc </span><span class="jsdoc-syntax">]
+        };
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parent</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'treeview'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'treeview-menu'</span><span class="jsdoc-syntax">;
         }
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.active</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' active'</span><span class="jsdoc-syntax">;
+        }
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.disabled</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+=  </span><span class="jsdoc-string">' disabled'
+        </span><span class="jsdoc-syntax">}
 
         </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.submenu</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.cls</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">'dropdown-submenu' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' dropdown-submenu'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+=  </span><span class="jsdoc-string">'dropdown-submenu'</span><span class="jsdoc-syntax">;
 
             </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.pos </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'left'</span><span class="jsdoc-syntax">){
-                </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= (</span><span class="jsdoc-keyword">typeof</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">cfg.cls</span><span class="jsdoc-syntax">) == </span><span class="jsdoc-string">'undefined'</span><span class="jsdoc-syntax">) ? </span><span class="jsdoc-string">'pull-left' </span><span class="jsdoc-syntax">: (</span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-string">' pull-left'</span><span class="jsdoc-syntax">);
+                </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+=  </span><span class="jsdoc-string">' pull-left'</span><span class="jsdoc-syntax">;
             }
         }
-
+        </span><span class="jsdoc-var">anc.href </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.href </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">cfg.cn</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.href </span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">ctag.html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.html </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">cfg.cn</span><span class="jsdoc-syntax">[0]</span><span class="jsdoc-var">.html </span><span class="jsdoc-syntax">;
         </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
+
+
     },
 
     </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
     {
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.parent</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'treeview'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'a'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        }
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.menu</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.menu.parentType </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.xtype</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">this.menu.triggerEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">this.menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.addxtype</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.apply</span><span class="jsdoc-syntax">({}, </span><span class="jsdoc-var">this.menu</span><span class="jsdoc-syntax">));
+        }
         </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mouseover'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMouseOver</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
         </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'mouseout'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMouseOut</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
 
index 36e4762..31ac804 100644 (file)
-<html><head><title>Roo/bootstrap/menu/Menu.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">/*
- * - LGPL
- *
- * menu
- * 
- */
-</span><span class="jsdoc-var">Roo.bootstrap.menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.menu </span><span class="jsdoc-syntax">|| {};
-
-</span><span class="jsdoc-comment">/**
+<html><head><title>Roo/bootstrap/menu/Menu.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">/**
  * @class Roo.bootstrap.menu.Menu
  * @extends Roo.bootstrap.Component
- * Bootstrap Menu class - container for Menu
- * @cfg {String} html Text of the menu
- * @cfg {String} weight (default | primary | success | info | warning | danger | inverse)
- * @cfg {String} icon Font awesome icon
- * @cfg {String} pos Menu align to (top | bottom) default bottom
- * 
+ * @licence LGPL
+ * @children Roo.bootstrap.menu.Item
+ * Bootstrap Menu class - container for MenuItems
  * 
+ * @cfg {String} type (dropdown|treeview|submenu) type of menu
+ * @cfg {bool} hidden  if the menu should be hidden when rendered.
+ * @cfg {bool} stopEvent (true|false)  Stop event after trigger press (default true)
+ * @cfg {bool} isLink (true|false)  the menu has link disable auto expand and collaspe (default false)
+  * @cfg {bool} hideTrigger (true|false)  default false - hide the carret for trigger.
+  * @cfg {String} align  default tl-bl? == below  - how the menu should be aligned. 
  * @constructor
  * Create a new Menu
- * @param {Object} config The config object
+ * @param {Object} config The config objectQ
  */
 
 
 </span><span class="jsdoc-var">Roo.bootstrap.menu.Menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">){
+
+    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.type </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'treeview'</span><span class="jsdoc-syntax">) {
+       </span><span class="jsdoc-comment">// normally menu's are drawn attached to the document to handle layering etc..
+       // however treeview (used by the docs menu is drawn into the parent element)
+       </span><span class="jsdoc-var">this.container_method </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'getChildContainer'</span><span class="jsdoc-syntax">;
+    }
+
     </span><span class="jsdoc-var">Roo.bootstrap.menu.Menu.superclass.constructor.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">config</span><span class="jsdoc-syntax">);
+    </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.registerMenu </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">!= </span><span class="jsdoc-string">'treeview'</span><span class="jsdoc-syntax">)  {
+        </span><span class="jsdoc-var">Roo.bootstrap.menu.Manager.register</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+    }
+
 
     </span><span class="jsdoc-var">this.addEvents</span><span class="jsdoc-syntax">({
         </span><span class="jsdoc-comment">/**
          * @event beforeshow
-         * Fires before this menu is displayed
-         * @param {Roo.bootstrap.menu.Menu} this
+         * Fires before this menu is displayed (return false to block)
+         * @param {Roo.menu.Menu} this
          */
         </span><span class="jsdoc-var">beforeshow </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
         </span><span class="jsdoc-comment">/**
          * @event beforehide
-         * Fires before this menu is hidden
-         * @param {Roo.bootstrap.menu.Menu} this
+         * Fires before this menu is hidden (return false to block)
+         * @param {Roo.menu.Menu} this
          */
         </span><span class="jsdoc-var">beforehide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
         </span><span class="jsdoc-comment">/**
          * @event show
          * Fires after this menu is displayed
-         * @param {Roo.bootstrap.menu.Menu} this
+         * @param {Roo.menu.Menu} this
          */
         </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
         </span><span class="jsdoc-comment">/**
          * @event hide
          * Fires after this menu is hidden
-         * @param {Roo.bootstrap.menu.Menu} this
+         * @param {Roo.menu.Menu} this
          */
         </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
         </span><span class="jsdoc-comment">/**
          * @event click
          * Fires when this menu is clicked (or when the enter key is pressed while it is active)
-         * @param {Roo.bootstrap.menu.Menu} this
+         * @param {Roo.menu.Menu} this
+         * @param {Roo.menu.Item} menuItem The menu item that was clicked
+         * @param {Roo.EventObject} e
+         */
+        </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-comment">/**
+         * @event mouseover
+         * Fires when the mouse is hovering over this menu
+         * @param {Roo.menu.Menu} this
+         * @param {Roo.EventObject} e
+         * @param {Roo.menu.Item} menuItem The menu item that was clicked
+         */
+        </span><span class="jsdoc-var">mouseover </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-comment">/**
+         * @event mouseout
+         * Fires when the mouse exits this menu
+         * @param {Roo.menu.Menu} this
+         * @param {Roo.EventObject} e
+         * @param {Roo.menu.Item} menuItem The menu item that was clicked
+         */
+        </span><span class="jsdoc-var">mouseout </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+        </span><span class="jsdoc-comment">/**
+         * @event itemclick
+         * Fires when a menu item contained in this menu is clicked
+         * @param {Roo.menu.BaseItem} baseItem The BaseItem that was clicked
          * @param {Roo.EventObject} e
          */
-        </span><span class="jsdoc-var">click </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
+        </span><span class="jsdoc-var">itemclick</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true
     </span><span class="jsdoc-syntax">});
-
+    </span><span class="jsdoc-var">this.menuitems </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">new </span><span class="jsdoc-var">Roo.util.MixedCollection</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">o</span><span class="jsdoc-syntax">) { </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">o.el.id</span><span class="jsdoc-syntax">; });
 };
 
 </span><span class="jsdoc-var">Roo.extend</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.bootstrap.menu.Menu</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">Roo.bootstrap.Component</span><span class="jsdoc-syntax">,  {
 
-    </span><span class="jsdoc-var">submenu </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-    </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
-    </span><span class="jsdoc-var">weight </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'default'</span><span class="jsdoc-syntax">,
-    </span><span class="jsdoc-var">icon </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
-    </span><span class="jsdoc-var">pos </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'bottom'</span><span class="jsdoc-syntax">,
+   </span><span class="jsdoc-comment">/// html : false,
+
+    </span><span class="jsdoc-var">triggerEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-comment">// is this set by component builder? -- it should really be fetched from parent()???
+    </span><span class="jsdoc-var">type</span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+    </span><span class="jsdoc-comment">/**
+     * @cfg {Boolean} registerMenu True (default) - means that clicking on screen etc. hides it.
+     */
+    </span><span class="jsdoc-var">registerMenu </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">menuItems </span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// stores the menu items..
+
+    </span><span class="jsdoc-var">hidden</span><span class="jsdoc-syntax">:</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">parentMenu </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">stopEvent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">isLink </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">container_method </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'getDocumentBody'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">// so the menu is rendered on the body and zIndex works.
+
+    </span><span class="jsdoc-var">hideTrigger </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
+    </span><span class="jsdoc-var">align </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'tl-bl?'</span><span class="jsdoc-syntax">,
 
 
     </span><span class="jsdoc-var">getChildContainer </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isSubMenu</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
+    },
+
+    </span><span class="jsdoc-var">getAutoCreate </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+
+        </span><span class="jsdoc-comment">//if (['right'].indexOf(this.align)!==-1) {
+        //    cfg.cn[1].cls += ' pull-right'
+        //}
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
+            </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-menu shadow' </span><span class="jsdoc-syntax">,
+            </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'z-index:1000'
+
+        </span><span class="jsdoc-syntax">};
+
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'submenu'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'submenu active'</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.type </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-string">'treeview'</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">'treeview-menu'</span><span class="jsdoc-syntax">;
         }
 
-        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'ul.dropdown-menu'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
     },
+    </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">() {
 
-    </span><span class="jsdoc-var">getAutoCreate </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">text </span><span class="jsdoc-syntax">= [
-            {
-                </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'roo-menu-text'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">html </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">this.html
-            </span><span class="jsdoc-syntax">}
-        ];
+       </span><span class="jsdoc-comment">// Roo.log(&quot;ADD event&quot;);
+       // Roo.log(this.triggerEl.dom);
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.triggerEl</span><span class="jsdoc-syntax">) {
 
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.icon</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-var">text.unshift</span><span class="jsdoc-syntax">({
-                </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'fa ' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.icon
-            </span><span class="jsdoc-syntax">})
-        }
+            </span><span class="jsdoc-var">this.triggerEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onTriggerClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
 
+            </span><span class="jsdoc-var">this.triggerEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch </span><span class="jsdoc-syntax">? </span><span class="jsdoc-string">'touchstart' </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'mouseup'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onTriggerPress</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
 
-        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
-            </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'div'</span><span class="jsdoc-syntax">,
-            </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'btn-group'</span><span class="jsdoc-syntax">,
-            </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: [
-                {
-                    </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'button'</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-button btn btn-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.weight</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">text
-                </span><span class="jsdoc-syntax">},
-                {
-                    </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'button'</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-toggle btn btn-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">this.weight</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">cn </span><span class="jsdoc-syntax">: [
-                        {
-                            </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'span'</span><span class="jsdoc-syntax">,
-                            </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'caret'
-                        </span><span class="jsdoc-syntax">}
-                    ]
-                },
-                {
-                    </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">,
-                    </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-menu'
-                </span><span class="jsdoc-syntax">}
-            ]
-
-        };
-
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.pos </span><span class="jsdoc-syntax">== </span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-var">cfg.cls </span><span class="jsdoc-syntax">+= </span><span class="jsdoc-string">' dropup'</span><span class="jsdoc-syntax">;
-        }
-
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isSubMenu</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-var">cfg </span><span class="jsdoc-syntax">= {
-                </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'ul'</span><span class="jsdoc-syntax">,
-                </span><span class="jsdoc-var">cls </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'dropdown-menu'
-            </span><span class="jsdoc-syntax">}
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hideTrigger</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.triggerEl.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'nav-item'</span><span class="jsdoc-syntax">) &amp;&amp; </span><span class="jsdoc-var">this.triggerEl.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.nav-link'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.length</span><span class="jsdoc-syntax">) {
+                    </span><span class="jsdoc-comment">// dropdown toggle on the 'a' in BS4?
+                    </span><span class="jsdoc-var">this.triggerEl.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.nav-link'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'dropdown-toggle'</span><span class="jsdoc-syntax">);
+                } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+                    </span><span class="jsdoc-var">this.triggerEl.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'dropdown-toggle'</span><span class="jsdoc-syntax">);
+                }
+            }
         }
 
-        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">cfg</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">Roo.isTouch</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'touchstart'  </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onTouch</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        }
+        </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click' </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseover&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMouseOver</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">this.el.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseout&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMouseOut</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+
     },
 
-    </span><span class="jsdoc-var">onRender </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">)
+    </span><span class="jsdoc-var">findTargetItem </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
     {
-        </span><span class="jsdoc-var">this.isSubMenu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">ct.hasClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'dropdown-submenu'</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">e.getTarget</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;.dropdown-menu-item&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">,  </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-comment">//Roo.log(t);         Roo.log(t.id);
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">t.id</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-comment">//Roo.log(this.menuitems);
+            </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.menuitems.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">t.id</span><span class="jsdoc-syntax">);
+
+            </span><span class="jsdoc-comment">//return this.items.get(t.menuItemId);
+        </span><span class="jsdoc-syntax">}
+
+        </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
+    },
 
-        </span><span class="jsdoc-var">Roo.bootstrap.menu.Menu.superclass.onRender.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">ct</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">position</span><span class="jsdoc-syntax">);
+    </span><span class="jsdoc-var">onTouch </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</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">&quot;menu.onTouch&quot;</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-comment">//e.stopEvent(); this make the user popdown broken
+        </span><span class="jsdoc-var">this.onClick</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
     },
 
-    </span><span class="jsdoc-var">initEvents </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    </span><span class="jsdoc-var">onClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
     {
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isSubMenu</span><span class="jsdoc-syntax">){
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;menu.onClick&quot;</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.findTargetItem</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">t </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">t.isContainer</span><span class="jsdoc-syntax">){
             </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
         }
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-comment">/*
+        if (Roo.isTouch &amp;&amp; e.type == 'touchstart' &amp;&amp; t.menu  &amp;&amp; !t.disabled) {
+            if(t == this.activeItem &amp;&amp; t.shouldDeactivate(e)){
+                this.activeItem.deactivate();
+                delete this.activeItem;
+                return;
+            }
+            if(t.canActivate){
+                this.setActiveItem(t, true);
+            }
+            return;
+            
+            
+        }
+        */
+
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'pass click event'</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-var">t.onClick</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">_this </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
 
-        </span><span class="jsdoc-var">this.hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">t.href.length </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">t.href </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">_this.hide</span><span class="jsdoc-syntax">(); })</span><span class="jsdoc-var">.defer</span><span class="jsdoc-syntax">(100);
+        }
 
-        </span><span class="jsdoc-var">this.triggerEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'button.dropdown-toggle'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-var">this.triggerEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onTriggerPress</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+    },
 
-        </span><span class="jsdoc-var">this.buttonEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'button.dropdown-button'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
-        </span><span class="jsdoc-var">this.buttonEl.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'click'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onClick</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+    </span><span class="jsdoc-var">onMouseOver </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</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.findTargetItem</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-comment">//Roo.log(t);
+        //if(t){
+        //    if(t.canActivate &amp;&amp; !t.disabled){
+        //        this.setActiveItem(t, true);
+        //    }
+        //}
 
+        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseover&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
+    },
+    </span><span class="jsdoc-var">isVisible </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-syntax">!</span><span class="jsdoc-var">this.hidden</span><span class="jsdoc-syntax">;
+    },
+    </span><span class="jsdoc-var">onMouseOut </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</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.findTargetItem</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-comment">//if(t ){
+        //    if(t == this.activeItem &amp;&amp; t.shouldDeactivate(e)){
+        //        this.activeItem.deactivate();
+        //        delete this.activeItem;
+        //    }
+        //}
+        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseout&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">t</span><span class="jsdoc-syntax">);
     },
 
-    </span><span class="jsdoc-var">list </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+
+    </span><span class="jsdoc-comment">/**
+     * Displays this menu relative to another element
+     * @param {String/HTMLElement/Roo.Element} element The element to align to
+     * @param {String} position (optional) The {@link Roo.Element#alignTo} anchor position to use in aligning to
+     * the element (defaults to this.defaultAlign)
+     * @param {Roo.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined)
+     */
+    </span><span class="jsdoc-var">show </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">pos</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parentMenu</span><span class="jsdoc-syntax">)
     {
-        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isSubMenu</span><span class="jsdoc-syntax">){
-            </span><span class="jsdoc-keyword">return </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-keyword">false </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">)) {
+           </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show canceled&quot;</span><span class="jsdoc-syntax">);
+           </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+       }
+       </span><span class="jsdoc-var">this.parentMenu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parentMenu</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.render</span><span class="jsdoc-syntax">();
         }
+        </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">); </span><span class="jsdoc-comment">// show otherwise we do not know how big we are..
+
+       </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getAlignToXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">pos</span><span class="jsdoc-syntax">);
 
-        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'ul.dropdown-menu'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
+       </span><span class="jsdoc-comment">// bl-tl &lt;&lt; left align  below
+       // tl-bl &lt;&lt; left align 
+
+       </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.getWidth</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[0] &gt;= </span><span class="jsdoc-var">Roo.lib.Dom.getViewWidth</span><span class="jsdoc-syntax">()){
+           </span><span class="jsdoc-comment">// if it goes to far to the right.. -&gt; align left.
+           </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getAlignToXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.align.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'/l/g'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'r'</span><span class="jsdoc-syntax">))
+        }
+       </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[0] &lt; 0){
+           </span><span class="jsdoc-comment">// was left align - go right?
+           </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getAlignToXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.align.replace</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'/r/g'</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">'l'</span><span class="jsdoc-syntax">))
+        }
+
+       </span><span class="jsdoc-comment">// goes down the bottom
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.getHeight</span><span class="jsdoc-syntax">() + </span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[1] &gt;= </span><span class="jsdoc-var">Roo.lib.Dom.getViewHeight</span><span class="jsdoc-syntax">() ||
+          </span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">[1]  &lt; 0 ){
+           </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">a </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.align.replace</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">.split</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'-'</span><span class="jsdoc-syntax">);
+           </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getAlignToXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">el</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[1]  + </span><span class="jsdoc-string">'-' </span><span class="jsdoc-syntax">+ </span><span class="jsdoc-var">a</span><span class="jsdoc-syntax">[0] + </span><span class="jsdoc-string">'?'</span><span class="jsdoc-syntax">)
+
+        }
+
+        </span><span class="jsdoc-var">this.showAt</span><span class="jsdoc-syntax">(  </span><span class="jsdoc-var">xy </span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parentMenu</span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">);
     },
+     </span><span class="jsdoc-comment">/**
+     * Displays this menu at a specific xy position
+     * @param {Array} xyPosition Contains X &amp; Y [x, y] values for the position at which to show the menu (coordinates are page-based)
+     * @param {Roo.menu.Menu} parentMenu (optional) This menu's parent menu, if applicable (defaults to undefined)
+     */
+    </span><span class="jsdoc-var">showAt </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">parentMenu</span><span class="jsdoc-syntax">, </span><span class="jsdoc-comment">/* private: */</span><span class="jsdoc-var">_e</span><span class="jsdoc-syntax">){
+        </span><span class="jsdoc-var">this.parentMenu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">parentMenu</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.render</span><span class="jsdoc-syntax">();
+        }
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">_e </span><span class="jsdoc-syntax">!== </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-comment">//xy = this.el.adjustForConstraints(xy);
+        </span><span class="jsdoc-syntax">}
 
-    </span><span class="jsdoc-var">onClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
-    {
-        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;click&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-comment">//this.el.show();
+        </span><span class="jsdoc-var">this.hideMenuItems</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-var">this.hidden </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">this.triggerEl</span><span class="jsdoc-syntax">) {
+           </span><span class="jsdoc-var">this.triggerEl.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
+       }
+
+       </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">);
+
+
+
+        </span><span class="jsdoc-comment">// reassign x when hitting right
+
+        // reassign y when hitting bottom
+
+        // but the list may align on trigger left or trigger top... should it be a properity?
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el.getStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">) != </span><span class="jsdoc-string">'auto' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.el.getStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'top'</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.slice</span><span class="jsdoc-syntax">(-1) != </span><span class="jsdoc-string">&quot;%&quot;</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.el.setXY</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">xy</span><span class="jsdoc-syntax">);
+        }
+
+        </span><span class="jsdoc-var">this.focus</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
     },
 
-    </span><span class="jsdoc-var">onTriggerPress  </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
+    </span><span class="jsdoc-var">focus </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-syntax">;
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hidden</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.doFocus.defer</span><span class="jsdoc-syntax">(50, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        }
+    },
+
+    </span><span class="jsdoc-var">doFocus </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.hidden</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.focusEl.focus</span><span class="jsdoc-syntax">();
+        }
+    },
+
+    </span><span class="jsdoc-comment">/**
+     * Hides this menu and optionally all parent menus
+     * @param {Boolean} deep (optional) True to hide all parent menus recursively, if any (defaults to false)
+     */
+    </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep</span><span class="jsdoc-syntax">)
     {
-        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()) {
-            </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
-        } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
-            </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">false </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforehide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">)) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide canceled&quot;</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
+        </span><span class="jsdoc-var">this.hideMenuItems</span><span class="jsdoc-syntax">();
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()){
+
+            </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.activeItem</span><span class="jsdoc-syntax">){
+                </span><span class="jsdoc-var">this.activeItem.deactivate</span><span class="jsdoc-syntax">();
+                </span><span class="jsdoc-var">this.activeItem </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">null</span><span class="jsdoc-syntax">;
+            }
+            </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.triggerEl</span><span class="jsdoc-syntax">) {
+                </span><span class="jsdoc-var">this.triggerEl.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
+            }
+
+            </span><span class="jsdoc-var">this.el.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
+            </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        }
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">deep </span><span class="jsdoc-syntax">=== </span><span class="jsdoc-keyword">true </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.parentMenu</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">this.parentMenu.hide</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
         }
     },
 
-    </span><span class="jsdoc-var">isVisible </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-syntax">!</span><span class="jsdoc-var">this.hidden</span><span class="jsdoc-syntax">;
+    </span><span class="jsdoc-var">onTriggerClick </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</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">'trigger click'</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">target </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">();
+
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target.nodeName.toLowerCase</span><span class="jsdoc-syntax">());
+
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">target.nodeName.toLowerCase</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">e.preventDefault</span><span class="jsdoc-syntax">();
+        }
+
     },
 
-    </span><span class="jsdoc-var">show </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    </span><span class="jsdoc-var">onTriggerPress  </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e</span><span class="jsdoc-syntax">)
     {
-        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforeshow&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'trigger press'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-comment">//Roo.log(e.getTarget());
+       // Roo.log(this.triggerEl.dom);
+
+        // trigger only occurs on normal menu's -- if it's a treeview or dropdown... do not hide/show..
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">pel </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">());
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">pel.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.dropdown-menu'</span><span class="jsdoc-syntax">) || </span><span class="jsdoc-var">pel.findParent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.treeview-menu'</span><span class="jsdoc-syntax">) ) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'is treeview or dropdown?'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
 
-        </span><span class="jsdoc-var">this.hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
-        </span><span class="jsdoc-var">this.el.addClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.nodeName.toLowerCase</span><span class="jsdoc-syntax">() !== </span><span class="jsdoc-string">'i' </span><span class="jsdoc-syntax">&amp;&amp; </span><span class="jsdoc-var">this.isLink</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
 
-        </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.on</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseup&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMouseUp</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.isVisible</span><span class="jsdoc-syntax">()) {
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'hide'</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
+        } </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
+            </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'show'</span><span class="jsdoc-syntax">);
 
-        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;show&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">this.show</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.triggerEl</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.align</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">this.stopEvent </span><span class="jsdoc-syntax">|| </span><span class="jsdoc-var">e.getTarget</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.nodeName.toLowerCase</span><span class="jsdoc-syntax">() === </span><span class="jsdoc-string">'i'</span><span class="jsdoc-syntax">){
+            </span><span class="jsdoc-var">e.stopEvent</span><span class="jsdoc-syntax">();
+        }
 
     },
 
-    </span><span class="jsdoc-var">hide </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+
+    </span><span class="jsdoc-var">hideMenuItems </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
     {
-        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;beforehide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide Menu Items&quot;</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(!</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">) {
+            </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+        }
 
-        </span><span class="jsdoc-var">this.hidden </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">;
-        </span><span class="jsdoc-var">this.el.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'.open'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.each</span><span class="jsdoc-syntax">(</span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">aa</span><span class="jsdoc-syntax">) {
 
-        </span><span class="jsdoc-var">Roo.get</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.un</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;mouseup&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.onMouseUp</span><span class="jsdoc-syntax">);
+            </span><span class="jsdoc-var">aa.removeClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'open'</span><span class="jsdoc-syntax">);
 
-        </span><span class="jsdoc-var">this.fireEvent</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">&quot;hide&quot;</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">);
+        });
     },
+    </span><span class="jsdoc-var">addxtypeChild </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">tree</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cntr</span><span class="jsdoc-syntax">) {
+        </span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">comp</span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.menu.Menu.superclass.addxtypeChild.call</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">tree</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">cntr</span><span class="jsdoc-syntax">);
+
+        </span><span class="jsdoc-var">this.menuitems.add</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">comp</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">comp</span><span class="jsdoc-syntax">;
 
-    </span><span class="jsdoc-var">onMouseUp </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    },
+    </span><span class="jsdoc-var">getEl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
     {
-        </span><span class="jsdoc-var">this.hide</span><span class="jsdoc-syntax">();
-    }
+        </span><span class="jsdoc-var">Roo.log</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">);
+        </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el</span><span class="jsdoc-syntax">;
+    },
 
+    </span><span class="jsdoc-var">clear </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">()
+    {
+        </span><span class="jsdoc-var">this.getEl</span><span class="jsdoc-syntax">()</span><span class="jsdoc-var">.dom.innerHTML </span><span class="jsdoc-syntax">= </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">;
+        </span><span class="jsdoc-var">this.menuitems.clear</span><span class="jsdoc-syntax">();
+    }
 });
 
 
index 050934a..4e8d030 100644 (file)
@@ -1,14 +1,8 @@
-<html><head><title>Roo/bootstrap/menu/Separator.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">/*
- * - LGPL
- *
- * menu separator
- * 
- */
-</span><span class="jsdoc-var">Roo.bootstrap.menu </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.bootstrap.menu </span><span class="jsdoc-syntax">|| {};
-
-</span><span class="jsdoc-comment">/**
+<html><head><title>Roo/bootstrap/menu/Separator.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">/**
  * @class Roo.bootstrap.menu.Separator
  * @extends Roo.bootstrap.Component
+ * @licence LGPL
  * Bootstrap Separator class
  * 
  * @constructor
index 009b142..f1c6e10 100644 (file)
     },
     {
       "name" : "menu",
-      "type" : "Roo.bootstrap.Menu",
+      "type" : "Roo.bootstrap.menu.Menu",
       "desc" : "a Menu",
       "memberOf" : ""
     }
index d1d5323..499c819 100644 (file)
     },
     {
       "name" : "menu",
-      "type" : "Roo.bootstrap.Menu",
+      "type" : "Roo.bootstrap.menu.Menu",
       "desc" : "a Menu",
       "memberOf" : "Roo.bootstrap.Button"
     }
index 2915b2d..5145edd 100644 (file)
     },
     {
       "name" : "menu",
-      "type" : "Roo.bootstrap.Menu",
+      "type" : "Roo.bootstrap.menu.Menu",
       "desc" : "a Menu",
       "memberOf" : "Roo.bootstrap.Button"
     }
index 06f0996..0b9edb6 100644 (file)
@@ -76,7 +76,7 @@
     },
     {
       "name" : "menu",
-      "type" : "Roo.bootstrap.Menu",
+      "type" : "Roo.bootstrap.menu.Menu",
       "desc" : "a Menu",
       "memberOf" : ""
     },
index 6a96b86..363c2c4 100644 (file)
@@ -77,7 +77,7 @@
     },
     {
       "name" : "menu",
-      "type" : "Roo.bootstrap.Menu",
+      "type" : "Roo.bootstrap.menu.Menu",
       "desc" : "a Menu",
       "memberOf" : "Roo.bootstrap.NavItem"
     },
index 13474f2..1a99236 100644 (file)
       "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
       "memberOf" : "Roo.bootstrap.Component"
     },
+    {
+      "name" : "menu",
+      "type" : "Roo.bootsrap.Menu",
+      "desc" : "the child menu.",
+      "memberOf" : ""
+    },
     {
       "name" : "can_build_overlaid",
       "type" : "Boolean",
       "desc" : "y)\nHow this component should hidden. Supported values are\n\"visibility\" (css visibility), \"offsets\" (negative offset position) and\n\"display\" (css display) - defaults to \"display\".",
       "memberOf" : "Roo.Component"
     },
+    {
+      "name" : "disabled",
+      "type" : "Boolean",
+      "desc" : "is the item disabled - default false",
+      "memberOf" : ""
+    },
     {
       "name" : "style",
       "type" : "String",
     {
       "name" : "preventDefault",
       "type" : "Boolean",
-      "desc" : "e) default true",
+      "desc" : "stop trigger click event to parent elements - default true",
       "memberOf" : ""
     },
     {
       "name" : "pos",
       "type" : "String",
-      "desc" : "Submenu align to (left | right) default right",
+      "desc" : "t) Submenu align to  default right",
       "memberOf" : ""
     },
     {
     {
       "name" : "submenu",
       "type" : "Boolean",
-      "desc" : "e) default false",
-      "memberOf" : ""
-    },
-    {
-      "name" : "disable",
-      "type" : "Boolean",
-      "desc" : "e) default false",
+      "desc" : "default false -",
       "memberOf" : ""
     },
     {
       "desc" : "which property holds the element that used for  hide() / show() / disable() / enable()\ndefault is 'el' for forms you probably want to set this to fieldEl",
       "memberOf" : "Roo.Component"
     },
-    {
-      "name" : "icon",
-      "type" : "String",
-      "desc" : "Font awesome icon",
-      "memberOf" : ""
-    },
     {
       "name" : "dataId",
       "type" : "string",
       "desc" : "cutomer id",
       "memberOf" : "Roo.bootstrap.Component"
     },
+    {
+      "name" : "fa",
+      "type" : "String",
+      "desc" : "Font awesome icon",
+      "memberOf" : ""
+    },
     {
       "name" : "name",
       "type" : "string",
index 6ed529c..9297707 100644 (file)
@@ -5,7 +5,7 @@
     "Roo.Component",
     "Roo.util.Observable"
   ],
-  "desc" : "Bootstrap Menu class - container for Menu",
+  "desc" : "Bootstrap Menu class - container for MenuItems",
   "isSingleton" : false,
   "isStatic" : false,
   "isBuiltin" : false,
@@ -18,7 +18,7 @@
     {
       "name" : "config",
       "type" : "Object",
-      "desc" : "The config object",
+      "desc" : "The config objectQ",
       "isOptional" : false
     }
   ],
   "throws" : "",
   "requires" : "",
   "config" : [
+    {
+      "name" : "isLink",
+      "type" : "bool",
+      "desc" : "e)  the menu has link disable auto expand and collaspe (default false)",
+      "memberOf" : ""
+    },
     {
       "name" : "listeners",
       "type" : "Object",
       "desc" : "t) What element to use for visibility (@see getVisibilityEl())",
       "memberOf" : "Roo.bootstrap.Component"
     },
+    {
+      "name" : "align",
+      "type" : "String",
+      "desc" : "default tl-bl? == below  - how the menu should be aligned.",
+      "memberOf" : ""
+    },
+    {
+      "name" : "hidden",
+      "type" : "bool",
+      "desc" : "if the menu should be hidden when rendered.",
+      "memberOf" : ""
+    },
     {
       "name" : "can_build_overlaid",
       "type" : "Boolean",
       "desc" : "y)\nHow this component should hidden. Supported values are\n\"visibility\" (css visibility), \"offsets\" (negative offset position) and\n\"display\" (css display) - defaults to \"display\".",
       "memberOf" : "Roo.Component"
     },
+    {
+      "name" : "stopEvent",
+      "type" : "bool",
+      "desc" : "e)  Stop event after trigger press (default true)",
+      "memberOf" : ""
+    },
     {
       "name" : "style",
       "type" : "String",
       "desc" : "Whether the component can move the Dom node when rendering (defaults to true).",
       "memberOf" : "Roo.Component"
     },
-    {
-      "name" : "html",
-      "type" : "String",
-      "desc" : "Text of the menu",
-      "memberOf" : ""
-    },
-    {
-      "name" : "pos",
-      "type" : "String",
-      "desc" : "Menu align to (top | bottom) default bottom",
-      "memberOf" : ""
-    },
     {
       "name" : "cls",
       "type" : "String",
       "memberOf" : "Roo.Component"
     },
     {
-      "name" : "icon",
-      "type" : "String",
-      "desc" : "Font awesome icon",
+      "name" : "hideTrigger",
+      "type" : "bool",
+      "desc" : "e)  default false - hide the carret for trigger.",
+      "memberOf" : ""
+    },
+    {
+      "name" : "registerMenu",
+      "type" : "Boolean",
+      "desc" : "True (default) - means that clicking on screen etc. hides it.",
       "memberOf" : ""
     },
     {
       "memberOf" : "Roo.bootstrap.Component"
     },
     {
-      "name" : "weight",
+      "name" : "type",
       "type" : "String",
-      "desc" : "e)",
+      "desc" : "u) type of menu",
       "memberOf" : ""
     },
     {
   ],
   "methods" : [
     {
-      "name" : "tooltipEl",
+      "name" : "hide",
       "type" : "function",
-      "desc" : "Fetch the element to display the tooltip on.",
-      "sig" : "()\n{\n\n}",
+      "desc" : "Hides this menu and optionally all parent menus",
+      "sig" : "(deep)",
       "static" : false,
-      "memberOf" : "Roo.bootstrap.Component",
+      "memberOf" : "",
       "isStatic" : false,
       "isConstructor" : false,
       "isPrivate" : false,
       "see" : "",
       "exceptions" : "",
       "requires" : "",
-      "params" : [],
-      "returns" : [
+      "params" : [
         {
-          "name" : "",
-          "type" : "Roo.Element",
-          "desc" : "defaults to this.el"
+          "name" : "deep",
+          "type" : "Boolean",
+          "desc" : "(optional) True to hide all parent menus recursively, if any (defaults to false)",
+          "isOptional" : false
         }
-      ]
+      ],
+      "returns" : []
     },
     {
-      "name" : "hide",
+      "name" : "show",
       "type" : "function",
-      "desc" : "Hide a component - adds 'hidden' class",
-      "sig" : "()\n{\n\n}",
+      "desc" : "Displays this menu relative to another element",
+      "sig" : "(element, position, parentMenu)",
       "static" : false,
-      "memberOf" : "Roo.bootstrap.Component",
+      "memberOf" : "",
       "isStatic" : false,
       "isConstructor" : false,
       "isPrivate" : false,
       "see" : "",
       "exceptions" : "",
       "requires" : "",
-      "params" : [],
+      "params" : [
+        {
+          "name" : "element",
+          "type" : "String/HTMLElement/Roo.Element",
+          "desc" : "The element to align to",
+          "isOptional" : false
+        },
+        {
+          "name" : "position",
+          "type" : "String",
+          "desc" : "(optional) The {@link Roo.Element#alignTo} anchor position to use in aligning to\nthe element (defaults to this.defaultAlign)",
+          "isOptional" : false
+        },
+        {
+          "name" : "parentMenu",
+          "type" : "Roo.menu.Menu",
+          "desc" : "(optional) This menu's parent menu, if applicable (defaults to undefined)",
+          "isOptional" : false
+        }
+      ],
       "returns" : []
     },
     {
-      "name" : "show",
+      "name" : "showAt",
+      "type" : "function",
+      "desc" : "Displays this menu at a specific xy position",
+      "sig" : "(xyPosition, parentMenu)",
+      "static" : false,
+      "memberOf" : "",
+      "isStatic" : false,
+      "isConstructor" : false,
+      "isPrivate" : false,
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "exceptions" : "",
+      "requires" : "",
+      "params" : [
+        {
+          "name" : "xyPosition",
+          "type" : "Array",
+          "desc" : "Contains X & Y [x, y] values for the position at which to show the menu (coordinates are page-based)",
+          "isOptional" : false
+        },
+        {
+          "name" : "parentMenu",
+          "type" : "Roo.menu.Menu",
+          "desc" : "(optional) This menu's parent menu, if applicable (defaults to undefined)",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "tooltipEl",
       "type" : "function",
-      "desc" : "Show a component - removes 'hidden' class",
+      "desc" : "Fetch the element to display the tooltip on.",
       "sig" : "()\n{\n\n}",
       "static" : false,
       "memberOf" : "Roo.bootstrap.Component",
       "exceptions" : "",
       "requires" : "",
       "params" : [],
-      "returns" : []
+      "returns" : [
+        {
+          "name" : "",
+          "type" : "Roo.Element",
+          "desc" : "defaults to this.el"
+        }
+      ]
     },
     {
       "name" : "setVisibilityEl",
       "name" : "click",
       "type" : "function",
       "desc" : "Fires when this menu is clicked (or when the enter key is pressed while it is active)",
-      "sig" : "function (_self, e)\n{\n\n}",
+      "sig" : "function (_self, menuItem, e)\n{\n\n}",
+      "memberOf" : "",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "this",
+          "type" : "Roo.menu.Menu",
+          "desc" : "",
+          "isOptional" : false
+        },
+        {
+          "name" : "menuItem",
+          "type" : "Roo.menu.Item",
+          "desc" : "The menu item that was clicked",
+          "isOptional" : false
+        },
+        {
+          "name" : "e",
+          "type" : "Roo.EventObject",
+          "desc" : "",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "itemclick",
+      "type" : "function",
+      "desc" : "Fires when a menu item contained in this menu is clicked",
+      "sig" : "function (baseItem, e)\n{\n\n}",
+      "memberOf" : "",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "baseItem",
+          "type" : "Roo.menu.BaseItem",
+          "desc" : "The BaseItem that was clicked",
+          "isOptional" : false
+        },
+        {
+          "name" : "e",
+          "type" : "Roo.EventObject",
+          "desc" : "",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "mouseout",
+      "type" : "function",
+      "desc" : "Fires when the mouse exits this menu",
+      "sig" : "function (_self, e, menuItem)\n{\n\n}",
       "memberOf" : "",
       "example" : "",
       "deprecated" : "",
       "params" : [
         {
           "name" : "this",
-          "type" : "Roo.bootstrap.menu.Menu",
+          "type" : "Roo.menu.Menu",
           "desc" : "",
           "isOptional" : false
         },
           "type" : "Roo.EventObject",
           "desc" : "",
           "isOptional" : false
+        },
+        {
+          "name" : "menuItem",
+          "type" : "Roo.menu.Item",
+          "desc" : "The menu item that was clicked",
+          "isOptional" : false
         }
       ],
       "returns" : []
     {
       "name" : "beforehide",
       "type" : "function",
-      "desc" : "Fires before this menu is hidden",
+      "desc" : "Fires before this menu is hidden (return false to block)",
       "sig" : "function (_self)\n{\n\n}",
       "memberOf" : "",
       "example" : "",
       "params" : [
         {
           "name" : "this",
-          "type" : "Roo.bootstrap.menu.Menu",
+          "type" : "Roo.menu.Menu",
           "desc" : "",
           "isOptional" : false
         }
     {
       "name" : "beforeshow",
       "type" : "function",
-      "desc" : "Fires before this menu is displayed",
+      "desc" : "Fires before this menu is displayed (return false to block)",
       "sig" : "function (_self)\n{\n\n}",
       "memberOf" : "",
       "example" : "",
       "params" : [
         {
           "name" : "this",
-          "type" : "Roo.bootstrap.menu.Menu",
+          "type" : "Roo.menu.Menu",
           "desc" : "",
           "isOptional" : false
         }
       "params" : [
         {
           "name" : "this",
-          "type" : "Roo.bootstrap.menu.Menu",
+          "type" : "Roo.menu.Menu",
           "desc" : "",
           "isOptional" : false
         }
       "params" : [
         {
           "name" : "this",
-          "type" : "Roo.bootstrap.menu.Menu",
+          "type" : "Roo.menu.Menu",
+          "desc" : "",
+          "isOptional" : false
+        }
+      ],
+      "returns" : []
+    },
+    {
+      "name" : "mouseover",
+      "type" : "function",
+      "desc" : "Fires when the mouse is hovering over this menu",
+      "sig" : "function (_self, e, menuItem)\n{\n\n}",
+      "memberOf" : "",
+      "example" : "",
+      "deprecated" : "",
+      "since" : "",
+      "see" : "",
+      "params" : [
+        {
+          "name" : "this",
+          "type" : "Roo.menu.Menu",
+          "desc" : "",
+          "isOptional" : false
+        },
+        {
+          "name" : "e",
+          "type" : "Roo.EventObject",
           "desc" : "",
           "isOptional" : false
+        },
+        {
+          "name" : "menuItem",
+          "type" : "Roo.menu.Item",
+          "desc" : "The menu item that was clicked",
+          "isOptional" : false
         }
       ],
       "returns" : []
index b7e6784..c54ebe5 100644 (file)
             "cn" : [],
             "is_class" : true
           },
-          {
-            "name" : "Roo.bootstrap.Menu",
-            "cn" : [],
-            "is_class" : true
-          },
-          {
-            "name" : "Roo.bootstrap.MenuItem",
-            "cn" : [],
-            "is_class" : true
-          },
-          {
-            "name" : "Roo.bootstrap.MenuMgr",
-            "cn" : [],
-            "is_class" : true
-          },
-          {
-            "name" : "Roo.bootstrap.MenuSeparator",
-            "cn" : [],
-            "is_class" : true
-          },
           {
             "name" : "Roo.bootstrap.MessageBar",
             "cn" : [],
                 "cn" : [],
                 "is_class" : true
               },
+              {
+                "name" : "Roo.bootstrap.menu.Manager",
+                "cn" : [],
+                "is_class" : true
+              },
               {
                 "name" : "Roo.bootstrap.menu.Menu",
                 "cn" : [],
index f910383..2e21d95 100644 (file)
@@ -1014,7 +1014,7 @@ Roo.extend(Roo.bootstrap.ButtonGroup, Roo.bootstrap.Component,  {
  * @cfg {Boolean} removeClass remove the standard class..
  * @cfg {String} target (_self|_blank|_parent|_top|other) target for a href. 
  * @cfg {Boolean} grpup if parent is a btn group - then it turns it into a toogleGroup.
- * @cfg {Roo.bootstrap.Menu} menu a Menu 
+ * @cfg {Roo.bootstrap.menu.Menu} menu a Menu 
 
  * @constructor
  * Create a new button
@@ -3418,23 +3418,19 @@ Roo.extend(Roo.bootstrap.Header, Roo.bootstrap.Component,  {
 
  
 
- /*
- * Based on:
- * Ext JS Library 1.1.1
- * Copyright(c) 2006-2007, Ext JS, LLC.
- *
- * Originally Released Under LGPL - original licence link has changed is not relivant.
- *
- * Fork - LGPL
- * <script type="text/javascript">
- */
+ Roo.bootstrap.menu = Roo.bootstrap.menu || {};
+// deprciated 
+Roo.bootstrap.Menu = Roo.bootstrap.menu.Menu;
+Roo.bootstrap.MenuItem =  Roo.bootstrap.menu.Item;
+Roo.bootstrap.MenuSeparator = Roo.bootstrap.menu.Separator
+
 /**
  * @class Roo.bootstrap.MenuMgr
+ * @licence LGPL
  * Provides a common registry of all menu items on a page so that they can be easily accessed by id.
  * @singleton
  */
-Roo.bootstrap.MenuMgr = function(){
+Roo.bootstrap.menu.Manager = function(){
    var menus, active, groups = {}, attached = false, lastShow = new Date();
 
    // private - called when first menu is created
@@ -3616,17 +3612,12 @@ Roo.bootstrap.MenuMgr = function(){
            }
        }
    };
-}();/*
- * - LGPL
- *
- * menu
- * 
- */
-
+}(); 
 /**
- * @class Roo.bootstrap.Menu
+ * @class Roo.bootstrap.menu.Menu
  * @extends Roo.bootstrap.Component
- * @children Roo.bootstrap.MenuItem
+ * @licence LGPL
+ * @children Roo.bootstrap.menu.Item
  * Bootstrap Menu class - container for MenuItems
  * 
  * @cfg {String} type (dropdown|treeview|submenu) type of menu
@@ -3638,11 +3629,11 @@ Roo.bootstrap.MenuMgr = function(){
  
  * @constructor
  * Create a new Menu
- * @param {Object} config The config object
+ * @param {Object} config The config objectQ
  */
 
 
-Roo.bootstrap.Menu = function(config){
+Roo.bootstrap.menu.Menu = function(config){
     
     if (config.type == 'treeview') {
        // normally menu's are drawn attached to the document to handle layering etc..
@@ -3650,9 +3641,9 @@ Roo.bootstrap.Menu = function(config){
        this.container_method = 'getChildContainer'; 
     }
     
-    Roo.bootstrap.Menu.superclass.constructor.call(this, config);
+    Roo.bootstrap.menu.Menu.superclass.constructor.call(this, config);
     if (this.registerMenu && this.type != 'treeview')  {
-        Roo.bootstrap.MenuMgr.register(this);
+        Roo.bootstrap.menu.Manager.register(this);
     }
     
     
@@ -3716,7 +3707,7 @@ Roo.bootstrap.Menu = function(config){
     this.menuitems = new Roo.util.MixedCollection(false, function(o) { return o.el.id; });
 };
 
-Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component,  {
+Roo.extend(Roo.bootstrap.menu.Menu, Roo.bootstrap.Component,  {
     
    /// html : false,
    
@@ -4077,7 +4068,7 @@ Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component,  {
         });
     },
     addxtypeChild : function (tree, cntr) {
-        var comp= Roo.bootstrap.Menu.superclass.addxtypeChild.call(this, tree, cntr);
+        var comp= Roo.bootstrap.menu.Menu.superclass.addxtypeChild.call(this, tree, cntr);
           
         this.menuitems.add(comp);
         return comp;
@@ -4097,57 +4088,69 @@ Roo.extend(Roo.bootstrap.Menu, Roo.bootstrap.Component,  {
 });
 
  
- /*
- * - LGPL
- *
- * menu item
- * 
- */
-
-
-/**
- * @class Roo.bootstrap.MenuItem
+  /**
+ * @class Roo.bootstrap.menu.Item
  * @extends Roo.bootstrap.Component
+ * @licence LGPL
  * Bootstrap MenuItem class
- * @cfg {String} html the menu label
+ * @cfg {Boolean} submenu default false - 
+ * @cfg {String} html text of the item
  * @cfg {String} href the link
- * @cfg {Boolean} preventDefault do not trigger A href on clicks (default false).
- * @cfg {Boolean} isContainer is it a container - just returns a drop down item..
- * @cfg {Boolean} active  used on sidebars to highlight active itesm
- * @cfg {String} fa favicon to show on left of menu item.
+ * @cfg {Boolean} disabled  is the item disabled - default false 
+ * @cfg {Boolean} preventDefault stop trigger click event to parent elements - default true
+ * @cfg {String} fa  Font awesome icon
+ * @cfg {String} pos (left|right) Submenu align to  default right 
  * @cfg {Roo.bootsrap.Menu} menu the child menu.
- * 
  * 
  * @constructor
- * Create a new MenuItem
+ * Create a new Menu  Item
  * @param {Object} config The config object
  */
 
 
-Roo.bootstrap.MenuItem = function(config){
-    Roo.bootstrap.MenuItem.superclass.constructor.call(this, config);
+Roo.bootstrap.menu.Item = function(config){
+    Roo.bootstrap.menu.Item.superclass.constructor.call(this, config);
     this.addEvents({
+        /**
+         * @event mouseover
+         * Fires when the mouse is hovering over this menu
+         * @param {Roo.bootstrap.menu.Item} this
+         * @param {Roo.EventObject} e
+         */
+        mouseover : true,
+        /**
+         * @event mouseout
+         * Fires when the mouse exits this menu
+         * @param {Roo.bootstrap.menu.Item} this
+         * @param {Roo.EventObject} e
+         */
+        mouseout : true,
         // raw events
         /**
          * @event click
          * The raw click event for the entire grid.
-         * @param {Roo.bootstrap.MenuItem} this
          * @param {Roo.EventObject} e
          */
-        "click" : true
+        click : true
     });
 };
 
-Roo.extend(Roo.bootstrap.MenuItem, Roo.bootstrap.Component,  {
+Roo.extend(Roo.bootstrap.menu.Item, Roo.bootstrap.Component,  {
     
-    href : false,
-    html : false,
-    preventDefault: false,
-    isContainer : false,
-    active : false,
-    fa: false,
+    submenu : false,
+    href : '',
+    html : '',
+    preventDefault: true,
+    disable : false,
+    active : false,    
+    fa : false,
+    pos : 'right',
     
-    getAutoCreate : function(){
+    isContainer : false, // ?? only a <li drowdonw-menu-item">
+    
+    getAutoCreate : function()
+    {
         
         if(this.isContainer){
             return {
@@ -4155,15 +4158,17 @@ Roo.extend(Roo.bootstrap.MenuItem, Roo.bootstrap.Component,  {
                 cls: 'dropdown-menu-item '
             };
         }
+        
         var ctag = {
             tag: 'span',
-            html: 'Link'
+            cls : 'roo-menu-item-text',
+            html : this.html
         };
         
         var anc = {
             tag : 'a',
             cls : 'dropdown-item',
-            href : '#',
+            href : this.href || '#',
             cn : [  ]
         };
         
@@ -4189,74 +4194,90 @@ Roo.extend(Roo.bootstrap.MenuItem, Roo.bootstrap.Component,  {
             cfg.cls += ' active';
         }
         
+        if(this.disabled){
+            cfg.cls +=  ' disabled' 
+        }
         
-        
+        if(this.submenu){
+            cfg.cls +=  'dropdown-submenu';
+            
+            if(this.pos == 'left'){
+                cfg.cls +=  ' pull-left';
+            }
+        }
         anc.href = this.href || cfg.cn[0].href ;
         ctag.html = this.html || cfg.cn[0].html ;
         return cfg;
+         
+         
     },
     
-    initEvents: function()
+    initEvents : function() 
     {
         if (this.parent().type == 'treeview') {
             this.el.select('a').on('click', this.onClick, this);
         }
-        
         if (this.menu) {
             this.menu.parentType = this.xtype;
             this.menu.triggerEl = this.el;
             this.menu = this.addxtype(Roo.apply({}, this.menu));
         }
+        this.el.on('mouseover', this.onMouseOver, this);
+        this.el.on('mouseout', this.onMouseOut, this);
+        
+        this.el.select('a', true).first().on('click', this.onClick, this);
         
     },
+    
     onClick : function(e)
     {
-        Roo.log('item on click ');
-        
         if(this.preventDefault){
             e.preventDefault();
         }
-        //this.parent().hideMenuItems();
         
-        this.fireEvent('click', this, e);
+        this.fireEvent("click", this, e);
     },
-    getEl : function()
+    
+    onMouseOver : function(e)
     {
-        return this.el;
-    } 
+        if(this.submenu && this.pos == 'left'){
+            this.el.select('ul.dropdown-menu', true).first().setLeft(this.el.select('ul.dropdown-menu', true).first().getWidth() * -1);
+        }
+        
+        this.fireEvent("mouseover", this, e);
+    },
+    
+    onMouseOut : function(e)
+    {
+        this.fireEvent("mouseout", this, e);
+    }
 });
 
  
 
- /*
- * - LGPL
- *
- * menu separator
- * 
- */
-
-
+  
 /**
- * @class Roo.bootstrap.MenuSeparator
+ * @class Roo.bootstrap.menu.Separator
  * @extends Roo.bootstrap.Component
- * Bootstrap MenuSeparator class
+ * @licence LGPL
+ * Bootstrap Separator class
  * 
  * @constructor
- * Create a new MenuItem
+ * Create a new Separator
  * @param {Object} config The config object
  */
 
 
-Roo.bootstrap.MenuSeparator = function(config){
-    Roo.bootstrap.MenuSeparator.superclass.constructor.call(this, config);
+Roo.bootstrap.menu.Separator = function(config){
+    Roo.bootstrap.menu.Separator.superclass.constructor.call(this, config);
 };
 
-Roo.extend(Roo.bootstrap.MenuSeparator, Roo.bootstrap.Component,  {
+Roo.extend(Roo.bootstrap.menu.Separator, Roo.bootstrap.Component,  {
     
     getAutoCreate : function(){
         var cfg = {
-            cls: 'divider',
-            tag : 'li'
+            tag : 'li',
+            cls: 'dropdown-divider divider'
         };
         
         return cfg;
@@ -6356,17 +6377,12 @@ Roo.apply(Roo.bootstrap.NavGroup, {
     
 });
 
- /*
- * - LGPL
- *
- * row
- * 
- */
-
-/**
+ /**
  * @class Roo.bootstrap.NavItem
  * @extends Roo.bootstrap.Component
+ * @licence LGPL
  * Bootstrap Navbar.NavItem class
+ * 
  * @cfg {String} href  link to
  * @cfg {String} button_weight (default|primary|secondary|success|info|warning|danger|link|light|dark) default none
  * @cfg {Boolean} button_outline show and outlined button
@@ -6383,7 +6399,7 @@ Roo.apply(Roo.bootstrap.NavGroup, {
  * @cfg {String} tabId the tab that this item activates.
  * @cfg {String} tagtype (a|span) render as a href or span?
  * @cfg {Boolean} animateRef (true|false) link to element default false  
- * @cfg {Roo.bootstrap.Menu} menu a Menu 
+ * @cfg {Roo.bootstrap.menu.Menu} menu a Menu 
   
  * @constructor
  * Create a new Navbar Item
@@ -27962,7 +27978,7 @@ Roo.extend(Roo.bootstrap.htmleditor.ToolbarStandard, Roo.bootstrap.NavSimplebar,
         // hides menus... - so this cant be on a menu...
         Roo.bootstrap.MenuMgr.hideAll();
         */
-        Roo.bootstrap.MenuMgr.hideAll();
+        Roo.bootstrap.menu.Manager.hideAll();
         //this.editorsyncValue();
     },
     onFirstFocus: function() {
@@ -29213,409 +29229,6 @@ Roo.extend(Roo.bootstrap.dash.TabPane, Roo.bootstrap.Component,  {
  
 
 
- /*
- * - LGPL
- *
- * menu
- * 
- */
-Roo.bootstrap.menu = Roo.bootstrap.menu || {};
-
-/**
- * @class Roo.bootstrap.menu.Menu
- * @extends Roo.bootstrap.Component
- * Bootstrap Menu class - container for Menu
- * @cfg {String} html Text of the menu
- * @cfg {String} weight (default | primary | success | info | warning | danger | inverse)
- * @cfg {String} icon Font awesome icon
- * @cfg {String} pos Menu align to (top | bottom) default bottom
- * 
- * 
- * @constructor
- * Create a new Menu
- * @param {Object} config The config object
- */
-
-
-Roo.bootstrap.menu.Menu = function(config){
-    Roo.bootstrap.menu.Menu.superclass.constructor.call(this, config);
-    
-    this.addEvents({
-        /**
-         * @event beforeshow
-         * Fires before this menu is displayed
-         * @param {Roo.bootstrap.menu.Menu} this
-         */
-        beforeshow : true,
-        /**
-         * @event beforehide
-         * Fires before this menu is hidden
-         * @param {Roo.bootstrap.menu.Menu} this
-         */
-        beforehide : true,
-        /**
-         * @event show
-         * Fires after this menu is displayed
-         * @param {Roo.bootstrap.menu.Menu} this
-         */
-        show : true,
-        /**
-         * @event hide
-         * Fires after this menu is hidden
-         * @param {Roo.bootstrap.menu.Menu} this
-         */
-        hide : true,
-        /**
-         * @event click
-         * Fires when this menu is clicked (or when the enter key is pressed while it is active)
-         * @param {Roo.bootstrap.menu.Menu} this
-         * @param {Roo.EventObject} e
-         */
-        click : true
-    });
-    
-};
-
-Roo.extend(Roo.bootstrap.menu.Menu, Roo.bootstrap.Component,  {
-    
-    submenu : false,
-    html : '',
-    weight : 'default',
-    icon : false,
-    pos : 'bottom',
-    
-    
-    getChildContainer : function() {
-        if(this.isSubMenu){
-            return this.el;
-        }
-        
-        return this.el.select('ul.dropdown-menu', true).first();  
-    },
-    
-    getAutoCreate : function()
-    {
-        var text = [
-            {
-                tag : 'span',
-                cls : 'roo-menu-text',
-                html : this.html
-            }
-        ];
-        
-        if(this.icon){
-            text.unshift({
-                tag : 'i',
-                cls : 'fa ' + this.icon
-            })
-        }
-        
-        
-        var cfg = {
-            tag : 'div',
-            cls : 'btn-group',
-            cn : [
-                {
-                    tag : 'button',
-                    cls : 'dropdown-button btn btn-' + this.weight,
-                    cn : text
-                },
-                {
-                    tag : 'button',
-                    cls : 'dropdown-toggle btn btn-' + this.weight,
-                    cn : [
-                        {
-                            tag : 'span',
-                            cls : 'caret'
-                        }
-                    ]
-                },
-                {
-                    tag : 'ul',
-                    cls : 'dropdown-menu'
-                }
-            ]
-            
-        };
-        
-        if(this.pos == 'top'){
-            cfg.cls += ' dropup';
-        }
-        
-        if(this.isSubMenu){
-            cfg = {
-                tag : 'ul',
-                cls : 'dropdown-menu'
-            }
-        }
-       
-        return cfg;
-    },
-    
-    onRender : function(ct, position)
-    {
-        this.isSubMenu = ct.hasClass('dropdown-submenu');
-        
-        Roo.bootstrap.menu.Menu.superclass.onRender.call(this, ct, position);
-    },
-    
-    initEvents : function() 
-    {
-        if(this.isSubMenu){
-            return;
-        }
-        
-        this.hidden = true;
-        
-        this.triggerEl = this.el.select('button.dropdown-toggle', true).first();
-        this.triggerEl.on('click', this.onTriggerPress, this);
-        
-        this.buttonEl = this.el.select('button.dropdown-button', true).first();
-        this.buttonEl.on('click', this.onClick, this);
-        
-    },
-    
-    list : function()
-    {
-        if(this.isSubMenu){
-            return this.el;
-        }
-        
-        return this.el.select('ul.dropdown-menu', true).first();
-    },
-    
-    onClick : function(e)
-    {
-        this.fireEvent("click", this, e);
-    },
-    
-    onTriggerPress  : function(e)
-    {   
-        if (this.isVisible()) {
-            this.hide();
-        } else {
-            this.show();
-        }
-    },
-    
-    isVisible : function(){
-        return !this.hidden;
-    },
-    
-    show : function()
-    {
-        this.fireEvent("beforeshow", this);
-        
-        this.hidden = false;
-        this.el.addClass('open');
-        
-        Roo.get(document).on("mouseup", this.onMouseUp, this);
-        
-        this.fireEvent("show", this);
-        
-        
-    },
-    
-    hide : function()
-    {
-        this.fireEvent("beforehide", this);
-        
-        this.hidden = true;
-        this.el.removeClass('open');
-        
-        Roo.get(document).un("mouseup", this.onMouseUp);
-        
-        this.fireEvent("hide", this);
-    },
-    
-    onMouseUp : function()
-    {
-        this.hide();
-    }
-    
-});
-
- /*
- * - LGPL
- *
- * menu item
- * 
- */
-Roo.bootstrap.menu = Roo.bootstrap.menu || {};
-
-/**
- * @class Roo.bootstrap.menu.Item
- * @extends Roo.bootstrap.Component
- * Bootstrap MenuItem class
- * @cfg {Boolean} submenu (true | false) default false
- * @cfg {String} html text of the item
- * @cfg {String} href the link
- * @cfg {Boolean} disable (true | false) default false
- * @cfg {Boolean} preventDefault (true | false) default true
- * @cfg {String} icon Font awesome icon
- * @cfg {String} pos Submenu align to (left | right) default right 
- * 
- * 
- * @constructor
- * Create a new Item
- * @param {Object} config The config object
- */
-
-
-Roo.bootstrap.menu.Item = function(config){
-    Roo.bootstrap.menu.Item.superclass.constructor.call(this, config);
-    this.addEvents({
-        /**
-         * @event mouseover
-         * Fires when the mouse is hovering over this menu
-         * @param {Roo.bootstrap.menu.Item} this
-         * @param {Roo.EventObject} e
-         */
-        mouseover : true,
-        /**
-         * @event mouseout
-         * Fires when the mouse exits this menu
-         * @param {Roo.bootstrap.menu.Item} this
-         * @param {Roo.EventObject} e
-         */
-        mouseout : true,
-        // raw events
-        /**
-         * @event click
-         * The raw click event for the entire grid.
-         * @param {Roo.EventObject} e
-         */
-        click : true
-    });
-};
-
-Roo.extend(Roo.bootstrap.menu.Item, Roo.bootstrap.Component,  {
-    
-    submenu : false,
-    href : '',
-    html : '',
-    preventDefault: true,
-    disable : false,
-    icon : false,
-    pos : 'right',
-    
-    getAutoCreate : function()
-    {
-        var text = [
-            {
-                tag : 'span',
-                cls : 'roo-menu-item-text',
-                html : this.html
-            }
-        ];
-        
-        if(this.icon){
-            text.unshift({
-                tag : 'i',
-                cls : 'fa ' + this.icon
-            })
-        }
-        
-        var cfg = {
-            tag : 'li',
-            cn : [
-                {
-                    tag : 'a',
-                    href : this.href || '#',
-                    cn : text
-                }
-            ]
-        };
-        
-        if(this.disable){
-            cfg.cls = (typeof(cfg.cls) == 'undefined') ? 'disabled' : (cfg.cls + ' disabled');
-        }
-        
-        if(this.submenu){
-            cfg.cls = (typeof(cfg.cls) == 'undefined') ? 'dropdown-submenu' : (cfg.cls + ' dropdown-submenu');
-            
-            if(this.pos == 'left'){
-                cfg.cls = (typeof(cfg.cls) == 'undefined') ? 'pull-left' : (cfg.cls + ' pull-left');
-            }
-        }
-        
-        return cfg;
-    },
-    
-    initEvents : function() 
-    {
-        this.el.on('mouseover', this.onMouseOver, this);
-        this.el.on('mouseout', this.onMouseOut, this);
-        
-        this.el.select('a', true).first().on('click', this.onClick, this);
-        
-    },
-    
-    onClick : function(e)
-    {
-        if(this.preventDefault){
-            e.preventDefault();
-        }
-        
-        this.fireEvent("click", this, e);
-    },
-    
-    onMouseOver : function(e)
-    {
-        if(this.submenu && this.pos == 'left'){
-            this.el.select('ul.dropdown-menu', true).first().setLeft(this.el.select('ul.dropdown-menu', true).first().getWidth() * -1);
-        }
-        
-        this.fireEvent("mouseover", this, e);
-    },
-    
-    onMouseOut : function(e)
-    {
-        this.fireEvent("mouseout", this, e);
-    }
-});
-
-
- /*
- * - LGPL
- *
- * menu separator
- * 
- */
-Roo.bootstrap.menu = Roo.bootstrap.menu || {};
-
-/**
- * @class Roo.bootstrap.menu.Separator
- * @extends Roo.bootstrap.Component
- * Bootstrap Separator class
- * 
- * @constructor
- * Create a new Separator
- * @param {Object} config The config object
- */
-
-
-Roo.bootstrap.menu.Separator = function(config){
-    Roo.bootstrap.menu.Separator.superclass.constructor.call(this, config);
-};
-
-Roo.extend(Roo.bootstrap.menu.Separator, Roo.bootstrap.Component,  {
-    
-    getAutoCreate : function(){
-        var cfg = {
-            tag : 'li',
-            cls: 'dropdown-divider divider'
-        };
-        
-        return cfg;
-    }
-   
-});
-
-
  /*
  * - LGPL
  *
index 88dc222..3795532 100644 (file)
@@ -144,18 +144,20 @@ if(this.fa!==false){A='<i class="fa fa-'+this.fa+'"></i>';}var B={tag:'a'};if(th
 // Roo/bootstrap/Header.js
 Roo.bootstrap.Header=function(A){Roo.bootstrap.Header.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.Header,Roo.bootstrap.Component,{html:false,level:1,getAutoCreate:function(){var A={tag:'h'+(1*this.level),html:this.html||''};return A;}});
 
-// Roo/bootstrap/MenuMgr.js
-Roo.bootstrap.MenuMgr=function(){var A,B,C={},D=false,E=new Date();function init(){A={};B=new Roo.util.MixedCollection();Roo.get(document).addKeyListener(27,function(){if(B.length>0){hideAll();}});}function hideAll(){if(B&&B.length>0){var c=B.clone();c.each(function(m){m.hide();
-});}}function onHide(m){B.remove(m);if(B.length<1){Roo.get(document).un("mouseup",onMouseDown);D=false;}}function onShow(m){var F=B.last();E=new Date();B.add(m);if(!D){Roo.get(document).on("mouseup",onMouseDown);D=true;}if(m.parentMenu){m.parentMenu.activeChild=m;
+// Roo/bootstrap/menu/namespace.js
+Roo.bootstrap.menu=Roo.bootstrap.menu||{};Roo.bootstrap.Menu=Roo.bootstrap.menu.Menu;Roo.bootstrap.MenuItem=Roo.bootstrap.menu.Item;Roo.bootstrap.MenuSeparator=Roo.bootstrap.menu.Separator
+// Roo/bootstrap/menu/Manager.js
+Roo.bootstrap.menu.Manager=function(){var A,B,C={},D=false,E=new Date();function init(){A={};B=new Roo.util.MixedCollection();Roo.get(document).addKeyListener(27,function(){if(B.length>0){hideAll();}});}function hideAll(){if(B&&B.length>0){var c=B.clone();
+c.each(function(m){m.hide();});}}function onHide(m){B.remove(m);if(B.length<1){Roo.get(document).un("mouseup",onMouseDown);D=false;}}function onShow(m){var F=B.last();E=new Date();B.add(m);if(!D){Roo.get(document).on("mouseup",onMouseDown);D=true;}if(m.parentMenu){m.parentMenu.activeChild=m;
 }else if(F&&F.isVisible()){}}function onBeforeHide(m){if(m.activeChild){m.activeChild.hide();}if(m.autoHideTimer){clearTimeout(m.autoHideTimer);delete m.autoHideTimer;}}function onBeforeShow(m){var pm=m.parentMenu;if(!pm&&!m.allowOtherMenus){hideAll();}else if(pm&&pm.activeChild&&B!=m){pm.activeChild.hide();
 }}function onMouseDown(e){Roo.log("on Mouse Up");if(E.getElapsed()>50&&B.length>0&&!e.getTarget(".dropdown-menu")&&!e.getTarget('.user-menu')){Roo.log("MenuManager hideAll");hideAll();e.stopEvent();}}function onBeforeCheck(mi,F){if(F){var g=C[mi.group];for(var i=0,l=g.length;
 i<l;i++){if(g[i]!=mi){g[i].setChecked(false);}}}}return {hideAll:function(){hideAll();},register:function(F){if(!A){init();}A[F.id]=F;F.on("beforehide",onBeforeHide);F.on("hide",onHide);F.on("beforeshow",onBeforeShow);F.on("show",onShow);var g=F.group;if(g&&F.events["checkchange"]){if(!C[g]){C[g]=[];
 }C[g].push(F);F.on("checkchange",onCheck);}},get:function(F){if(typeof F=="string"){return A[F];}else if(F.events){return F;}return false;},unregister:function(F){delete A[F.id];F.un("beforehide",onBeforeHide);F.un("hide",onHide);F.un("beforeshow",onBeforeShow);
 F.un("show",onShow);var g=F.group;if(g&&F.events["checkchange"]){C[g].remove(F);F.un("checkchange",onCheck);}},registerCheckable:function(F){var g=F.group;if(g){if(!C[g]){C[g]=[];}C[g].push(F);F.on("beforecheckchange",onBeforeCheck);}},unregisterCheckable:function(F){var g=F.group;
 if(g){C[g].remove(F);F.un("beforecheckchange",onBeforeCheck);}}};}();
-// Roo/bootstrap/Menu.js
-Roo.bootstrap.Menu=function(A){if(A.type=='treeview'){this.container_method='getChildContainer';}Roo.bootstrap.Menu.superclass.constructor.call(this,A);if(this.registerMenu&&this.type!='treeview'){Roo.bootstrap.MenuMgr.register(this);}this.addEvents({beforeshow:true,beforehide:true,show:true,hide:true,click:true,mouseover:true,mouseout:true,itemclick:true}
-);this.menuitems=new Roo.util.MixedCollection(false,function(o){return o.el.id;});};Roo.extend(Roo.bootstrap.Menu,Roo.bootstrap.Component,{triggerEl:false,type:false,registerMenu:true,menuItems:false,hidden:true,parentMenu:false,stopEvent:true,isLink:false,container_method:'getDocumentBody',hideTrigger:false,align:'tl-bl?',getChildContainer:function(){return this.el;
+// Roo/bootstrap/menu/Menu.js
+Roo.bootstrap.menu.Menu=function(A){if(A.type=='treeview'){this.container_method='getChildContainer';}Roo.bootstrap.menu.Menu.superclass.constructor.call(this,A);if(this.registerMenu&&this.type!='treeview'){Roo.bootstrap.menu.Manager.register(this);}this.addEvents({beforeshow:true,beforehide:true,show:true,hide:true,click:true,mouseover:true,mouseout:true,itemclick:true}
+);this.menuitems=new Roo.util.MixedCollection(false,function(o){return o.el.id;});};Roo.extend(Roo.bootstrap.menu.Menu,Roo.bootstrap.Component,{triggerEl:false,type:false,registerMenu:true,menuItems:false,hidden:true,parentMenu:false,stopEvent:true,isLink:false,container_method:'getDocumentBody',hideTrigger:false,align:'tl-bl?',getChildContainer:function(){return this.el;
 },getAutoCreate:function(){var A={tag:'ul',cls:'dropdown-menu shadow',style:'z-index:1000'};if(this.type==='submenu'){A.cls='submenu active';}if(this.type==='treeview'){A.cls='treeview-menu';}return A;},initEvents:function(){if(this.triggerEl){this.triggerEl.on('click',this.onTriggerClick,this);
 this.triggerEl.on(Roo.isTouch?'touchstart':'mouseup',this.onTriggerPress,this);if(!this.hideTrigger){if(this.triggerEl.hasClass('nav-item')&&this.triggerEl.select('.nav-link',true).length){this.triggerEl.select('.nav-link',true).first().addClass('dropdown-toggle');
 }else{this.triggerEl.addClass('dropdown-toggle');}}}if(Roo.isTouch){this.el.on('touchstart',this.onTouch,this);}this.el.on('click',this.onClick,this);this.el.on("mouseover",this.onMouseOver,this);this.el.on("mouseout",this.onMouseOut,this);},findTargetItem:function(e){var t=e.getTarget(".dropdown-menu-item",this.el,true);
@@ -169,15 +171,18 @@ xy=this.el.getAlignToXY(el,a[1]+'-'+a[0]+'?')}this.showAt(xy,B,false);},showAt:f
 }this.el.removeClass('show');this.hidden=true;this.fireEvent("hide",this);}if(A===true&&this.parentMenu){this.parentMenu.hide(true);}},onTriggerClick:function(e){Roo.log('trigger click');var A=e.getTarget();Roo.log(A.nodeName.toLowerCase());if(A.nodeName.toLowerCase()==='i'){e.preventDefault();
 }},onTriggerPress:function(e){Roo.log('trigger press');var A=Roo.get(e.getTarget());if(A.findParent('.dropdown-menu')||A.findParent('.treeview-menu')){Roo.log('is treeview or dropdown?');return;}if(e.getTarget().nodeName.toLowerCase()!=='i'&&this.isLink){return;
 }if(this.isVisible()){Roo.log('hide');this.hide();}else{Roo.log('show');this.show(this.triggerEl,this.align,false);}if(this.stopEvent||e.getTarget().nodeName.toLowerCase()==='i'){e.stopEvent();}},hideMenuItems:function(){Roo.log("hide Menu Items");if(!this.el){return;
-}this.el.select('.open',true).each(function(aa){aa.removeClass('open');});},addxtypeChild:function(A,B){var C=Roo.bootstrap.Menu.superclass.addxtypeChild.call(this,A,B);this.menuitems.add(C);return C;},getEl:function(){Roo.log(this.el);return this.el;},clear:function(){this.getEl().dom.innerHTML='';
-this.menuitems.clear();}});
-// Roo/bootstrap/MenuItem.js
-Roo.bootstrap.MenuItem=function(A){Roo.bootstrap.MenuItem.superclass.constructor.call(this,A);this.addEvents({"click":true});};Roo.extend(Roo.bootstrap.MenuItem,Roo.bootstrap.Component,{href:false,html:false,preventDefault:false,isContainer:false,active:false,fa:false,getAutoCreate:function(){if(this.isContainer){return {tag:'li',cls:'dropdown-menu-item '}
-;}var A={tag:'span',html:'Link'};var B={tag:'a',cls:'dropdown-item',href:'#',cn:[]};if(this.fa!==false){B.cn.push({tag:'i',cls:'fa fa-'+this.fa});}B.cn.push(A);var C={tag:'li',cls:'dropdown-menu-item',cn:[B]};if(this.parent().type=='treeview'){C.cls='treeview-menu';
-}if(this.active){C.cls+=' active';}B.href=this.href||C.cn[0].href;A.html=this.html||C.cn[0].html;return C;},initEvents:function(){if(this.parent().type=='treeview'){this.el.select('a').on('click',this.onClick,this);}if(this.menu){this.menu.parentType=this.xtype;
-this.menu.triggerEl=this.el;this.menu=this.addxtype(Roo.apply({},this.menu));}},onClick:function(e){Roo.log('item on click ');if(this.preventDefault){e.preventDefault();}this.fireEvent('click',this,e);},getEl:function(){return this.el;}});
-// Roo/bootstrap/MenuSeparator.js
-Roo.bootstrap.MenuSeparator=function(A){Roo.bootstrap.MenuSeparator.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.MenuSeparator,Roo.bootstrap.Component,{getAutoCreate:function(){var A={cls:'divider',tag:'li'};return A;}});
+}this.el.select('.open',true).each(function(aa){aa.removeClass('open');});},addxtypeChild:function(A,B){var C=Roo.bootstrap.menu.Menu.superclass.addxtypeChild.call(this,A,B);this.menuitems.add(C);return C;},getEl:function(){Roo.log(this.el);return this.el;
+},clear:function(){this.getEl().dom.innerHTML='';this.menuitems.clear();}});
+// Roo/bootstrap/menu/Item.js
+Roo.bootstrap.menu.Item=function(A){Roo.bootstrap.menu.Item.superclass.constructor.call(this,A);this.addEvents({mouseover:true,mouseout:true,click:true});};Roo.extend(Roo.bootstrap.menu.Item,Roo.bootstrap.Component,{submenu:false,href:'',html:'',preventDefault:true,disable:false,active:false,fa:false,pos:'right',isContainer:false,getAutoCreate:function(){if(this.isContainer){return {tag:'li',cls:'dropdown-menu-item '}
+;}var A={tag:'span',cls:'roo-menu-item-text',html:this.html};var B={tag:'a',cls:'dropdown-item',href:this.href||'#',cn:[]};if(this.fa!==false){B.cn.push({tag:'i',cls:'fa fa-'+this.fa});}B.cn.push(A);var C={tag:'li',cls:'dropdown-menu-item',cn:[B]};if(this.parent().type=='treeview'){C.cls='treeview-menu';
+}if(this.active){C.cls+=' active';}if(this.disabled){C.cls+=' disabled'}if(this.submenu){C.cls+='dropdown-submenu';if(this.pos=='left'){C.cls+=' pull-left';}}B.href=this.href||C.cn[0].href;A.html=this.html||C.cn[0].html;return C;},initEvents:function(){if(this.parent().type=='treeview'){this.el.select('a').on('click',this.onClick,this);
+}if(this.menu){this.menu.parentType=this.xtype;this.menu.triggerEl=this.el;this.menu=this.addxtype(Roo.apply({},this.menu));}this.el.on('mouseover',this.onMouseOver,this);this.el.on('mouseout',this.onMouseOut,this);this.el.select('a',true).first().on('click',this.onClick,this);
+},onClick:function(e){if(this.preventDefault){e.preventDefault();}this.fireEvent("click",this,e);},onMouseOver:function(e){if(this.submenu&&this.pos=='left'){this.el.select('ul.dropdown-menu',true).first().setLeft(this.el.select('ul.dropdown-menu',true).first().getWidth()*-1);
+}this.fireEvent("mouseover",this,e);},onMouseOut:function(e){this.fireEvent("mouseout",this,e);}});
+// Roo/bootstrap/menu/Separator.js
+Roo.bootstrap.menu.Separator=function(A){Roo.bootstrap.menu.Separator.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.menu.Separator,Roo.bootstrap.Component,{getAutoCreate:function(){var A={tag:'li',cls:'dropdown-divider divider'};return A;}
+});
 // Roo/bootstrap/Modal.js
 Roo.bootstrap.Modal=function(A){Roo.bootstrap.Modal.superclass.constructor.call(this,A);this.addEvents({"btnclick":true,"resize":true,"titlechanged":true});this.buttons=this.buttons||[];if(this.tmpl){this.tmpl=Roo.factory(this.tmpl);}};Roo.extend(Roo.bootstrap.Modal,Roo.bootstrap.Component,{title:'test dialog',buttons:false,html:false,tmp:false,specificTitle:false,buttonPosition:'right',allow_close:true,animate:true,fitwindow:false,dialogEl:false,bodyEl:false,footerEl:false,titleEl:false,closeEl:false,size:'',max_width:0,max_height:0,fit_content:false,editableTitle:false,onRender:function(ct,A){Roo.bootstrap.Component.superclass.onRender.call(this,ct,A);
 if(!this.el){var B=Roo.apply({},this.getAutoCreate());B.id=Roo.id();if(this.cls){B.cls+=' '+this.cls;}if(this.style){B.style=this.style;}this.el=Roo.get(document.body).createChild(B,A);}if(this.tabIndex!==undefined){this.el.dom.setAttribute('tabIndex',this.tabIndex);
@@ -1166,7 +1171,7 @@ D.focus();}}});});E.push(style);F('bold',false,true);F('italic',false,true);F('a
 if(H&&H!='http:/'+'/'){this.editorcore.relayCmd('createlink',H);}}),F('list','insertunorderedlist',true);F('pencil',false,true,function(G){Roo.log(this);this.toggleSourceEdit(G.pressed);});if(this.editor.btns.length>0){for(var i=0;i<this.editor.btns.length;
 i++){E.push(this.editor.btns[i]);}}this.xtype='NavSimplebar';for(var i=0;i<E.length;i++){this.buttons.add(this.addxtypeChild(E[i]));}D.on('editorevent',this.updateToolbar,this);},onBtnClick:function(id){this.editorcore.relayCmd(id);this.editorcore.focus();
 },updateToolbar:function(){if(!this.editorcore.activated){this.editor.onFirstFocus();return;}var A=this.buttons;var B=this.editorcore.doc;A.get('bold').setActive(B.queryCommandState('bold'));A.get('italic').setActive(B.queryCommandState('italic'));A.get('align-left').setActive(B.queryCommandState('justifyleft'));
-A.get('align-center').setActive(B.queryCommandState('justifycenter'));A.get('align-right').setActive(B.queryCommandState('justifyright'));A.get('list').setActive(B.queryCommandState('insertunorderedlist'));Roo.bootstrap.MenuMgr.hideAll();},onFirstFocus:function(){this.buttons.each(function(A){A.enable();
+A.get('align-center').setActive(B.queryCommandState('justifycenter'));A.get('align-right').setActive(B.queryCommandState('justifyright'));A.get('list').setActive(B.queryCommandState('insertunorderedlist'));Roo.bootstrap.menu.Manager.hideAll();},onFirstFocus:function(){this.buttons.each(function(A){A.enable();
 });},toggleSourceEdit:function(A){if(A){Roo.log("disabling buttons");this.buttons.each(function(B){if(B.cmd!='pencil'){B.disable();}});}else{Roo.log("enabling buttons");if(this.editorcore.initialized){this.buttons.each(function(B){B.enable();});}}Roo.log("calling toggole on editor");
 this.editor.toggleSourceEdit(A);}});
 // Roo/bootstrap/Markdown.js
@@ -1226,23 +1231,6 @@ return false;}return;});return r;}});
 // Roo/bootstrap/dash/TabPane.js
 Roo.bootstrap.dash=Roo.bootstrap.dash||{};Roo.bootstrap.dash.TabPane=function(A){Roo.bootstrap.dash.TabPane.superclass.constructor.call(this,A);this.addEvents({"activate":true});};Roo.extend(Roo.bootstrap.dash.TabPane,Roo.bootstrap.Component,{active:false,title:'',tab:false,getAutoCreate:function(){var A={tag:'div',cls:'tab-pane'}
 ;if(this.active){A.cls+=' active';}return A;},initEvents:function(){this.parent().fireEvent('addpane',this)},setTitle:function(A){if(!this.tab){return;}this.title=A;this.tab.select('a',true).first().dom.innerHTML=A;}});
-// Roo/bootstrap/menu/Menu.js
-Roo.bootstrap.menu=Roo.bootstrap.menu||{};Roo.bootstrap.menu.Menu=function(A){Roo.bootstrap.menu.Menu.superclass.constructor.call(this,A);this.addEvents({beforeshow:true,beforehide:true,show:true,hide:true,click:true});};Roo.extend(Roo.bootstrap.menu.Menu,Roo.bootstrap.Component,{submenu:false,html:'',weight:'default',icon:false,pos:'bottom',getChildContainer:function(){if(this.isSubMenu){return this.el;
-}return this.el.select('ul.dropdown-menu',true).first();},getAutoCreate:function(){var A=[{tag:'span',cls:'roo-menu-text',html:this.html}];if(this.icon){A.unshift({tag:'i',cls:'fa '+this.icon})}var B={tag:'div',cls:'btn-group',cn:[{tag:'button',cls:'dropdown-button btn btn-'+this.weight,cn:A}
-,{tag:'button',cls:'dropdown-toggle btn btn-'+this.weight,cn:[{tag:'span',cls:'caret'}]},{tag:'ul',cls:'dropdown-menu'}]};if(this.pos=='top'){B.cls+=' dropup';}if(this.isSubMenu){B={tag:'ul',cls:'dropdown-menu'}}return B;},onRender:function(ct,A){this.isSubMenu=ct.hasClass('dropdown-submenu');
-Roo.bootstrap.menu.Menu.superclass.onRender.call(this,ct,A);},initEvents:function(){if(this.isSubMenu){return;}this.hidden=true;this.triggerEl=this.el.select('button.dropdown-toggle',true).first();this.triggerEl.on('click',this.onTriggerPress,this);this.buttonEl=this.el.select('button.dropdown-button',true).first();
-this.buttonEl.on('click',this.onClick,this);},list:function(){if(this.isSubMenu){return this.el;}return this.el.select('ul.dropdown-menu',true).first();},onClick:function(e){this.fireEvent("click",this,e);},onTriggerPress:function(e){if(this.isVisible()){this.hide();
-}else{this.show();}},isVisible:function(){return !this.hidden;},show:function(){this.fireEvent("beforeshow",this);this.hidden=false;this.el.addClass('open');Roo.get(document).on("mouseup",this.onMouseUp,this);this.fireEvent("show",this);},hide:function(){this.fireEvent("beforehide",this);
-this.hidden=true;this.el.removeClass('open');Roo.get(document).un("mouseup",this.onMouseUp);this.fireEvent("hide",this);},onMouseUp:function(){this.hide();}});
-// Roo/bootstrap/menu/Item.js
-Roo.bootstrap.menu=Roo.bootstrap.menu||{};Roo.bootstrap.menu.Item=function(A){Roo.bootstrap.menu.Item.superclass.constructor.call(this,A);this.addEvents({mouseover:true,mouseout:true,click:true});};Roo.extend(Roo.bootstrap.menu.Item,Roo.bootstrap.Component,{submenu:false,href:'',html:'',preventDefault:true,disable:false,icon:false,pos:'right',getAutoCreate:function(){var A=[{tag:'span',cls:'roo-menu-item-text',html:this.html}
-];if(this.icon){A.unshift({tag:'i',cls:'fa '+this.icon})}var B={tag:'li',cn:[{tag:'a',href:this.href||'#',cn:A}]};if(this.disable){B.cls=(typeof(B.cls)=='undefined')?'disabled':(B.cls+' disabled');}if(this.submenu){B.cls=(typeof(B.cls)=='undefined')?'dropdown-submenu':(B.cls+' dropdown-submenu');
-if(this.pos=='left'){B.cls=(typeof(B.cls)=='undefined')?'pull-left':(B.cls+' pull-left');}}return B;},initEvents:function(){this.el.on('mouseover',this.onMouseOver,this);this.el.on('mouseout',this.onMouseOut,this);this.el.select('a',true).first().on('click',this.onClick,this);
-},onClick:function(e){if(this.preventDefault){e.preventDefault();}this.fireEvent("click",this,e);},onMouseOver:function(e){if(this.submenu&&this.pos=='left'){this.el.select('ul.dropdown-menu',true).first().setLeft(this.el.select('ul.dropdown-menu',true).first().getWidth()*-1);
-}this.fireEvent("mouseover",this,e);},onMouseOut:function(e){this.fireEvent("mouseout",this,e);}});
-// Roo/bootstrap/menu/Separator.js
-Roo.bootstrap.menu=Roo.bootstrap.menu||{};Roo.bootstrap.menu.Separator=function(A){Roo.bootstrap.menu.Separator.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.menu.Separator,Roo.bootstrap.Component,{getAutoCreate:function(){var A={tag:'li',cls:'dropdown-divider divider'}
-;return A;}});
 // Roo/bootstrap/Tooltip.js
 Roo.bootstrap.Tooltip=function(A){Roo.bootstrap.Tooltip.superclass.constructor.call(this,A);this.alignment=Roo.bootstrap.Tooltip.alignment;if(typeof(A)!='undefined'&&typeof(A.alignment)!='undefined'){this.alignment=A.alignment;}};Roo.apply(Roo.bootstrap.Tooltip,{currentEl:false,currentTip:false,currentRegion:false,init:function(){Roo.get(document).on('mouseover',this.enter,this);
 Roo.get(document).on('mouseout',this.leave,this);this.currentTip=new Roo.bootstrap.Tooltip();},enter:function(ev){var A=ev.getTarget();var el=Roo.fly(A);if(this.currentEl){if(this.currentEl==el){return;}if(A!=this.currentEl.dom&&this.currentEl.contains(A)){return;