ns-components-angular
Version:
Angular Wrapper Components for NSComponents
1 lines • 54.1 kB
TypeScript
export declare const NSPanelCode = "var nsModuleExport = function(root,name,prototype)\r\n\t{\r\n\t\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\t{\r\n\t\t\tmodule.exports[name] = prototype;\r\n\t\t}\r\n\t\telse if (typeof define === \"function\" && define.amd)\r\n\t\t{\r\n\t\t\tdefine(name,[], function () {return prototype;});\r\n\t\t}\r\n\t\telse if(typeof exports === 'object')\r\n\t\t{\r\n\t\t\texports[name] = prototype;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\troot[name] = prototype;\r\n\t\t}\r\n\t};var nsIsWeb = function(root)\r\n\t{\r\n\t\tif(typeof exports === 'object' && typeof module === 'object')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if (typeof define === \"function\" && define.amd)\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse if(typeof exports === 'object')\r\n\t\t{\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\treturn true;\r\n\t\t}\r\n\t};if(!nsIsWeb())\r\n\t\t{\r\nvar nsutilRef = require('./nsUtil.min.js');\r\nvar NSUtil = nsutilRef.NSUtil;\r\nvar nscontainerbaseRef = require('./nsContainerBase.min.js');\r\nvar nsExtendPrototype = nscontainerbaseRef.nsExtendPrototype;\r\nvar NSContainerBase = nscontainerbaseRef.NSContainerBase;\r\nvar svgRef = require('./nsSVG.min.js');\r\nvar NSSvg = svgRef.NSSvg;\r\nvar NSSvgShapes = svgRef.NSSvgShapes;\r\nvar plugginsRef = require('./nsPluggins.min.js');\r\nvar nsTextEditor = plugginsRef.nsTextEditor;\r\nvar nsTextAreaEditor = plugginsRef.nsTextAreaEditor;\r\nvar NSCellSelection = plugginsRef.NSCellSelection;\r\nvar NSTableCellNavigator = plugginsRef.NSTableCellNavigator;\r\nvar dateutilRef = require('./nsDateUtil.min.js');\r\nvar NSDateUtil = dateutilRef.NSDateUtil;\r\n\r\n\t\t}\r\n\"use strict\";\r\nvar NSPanel = (function()\r\n{\r\n\tfunction NSPanel(component,setting) \r\n\t{\r\n\t\tthis.__DEFAULT_ANIMATION_STEPS = 10;\r\n\t\tthis.__DEFAULT_ANIMATION_DELAY = 20;\r\n\t\t\r\n\t\t\r\n\t\tthis.__OUTER_CONTAINER_ID = \"panelContainer\";\r\n\t\tthis.__TITLE_CONTAINER_ID = \"divTitleBar\";\r\n\t\tthis.__BODY_CONTAINER_ID = \"divBody\";\r\n\t\t\r\n\t\tthis.__CLASS_OUTER_CONTAINER = \"nsPanelContainer\";\r\n\t\tthis.__CLASS_TITLEBAR = \"nsPanelTitleBar\";\r\n\t\tthis.__CLASS_BODY_CONTAINER = \"nsPanelBody\";\r\n\t\t\r\n\t\tthis.__setting = setting;\r\n\t\t\r\n\t\tthis.__header = null;\r\n\t\tthis.__body = null;\r\n\t\t\r\n\t\tthis.__context = window;\r\n\t\tthis.__title = null;\r\n\t\tthis.__titleHtml = null;\r\n\t\tthis.__content = null;\r\n\t\tthis.__parent = document.body;\r\n\t\tthis.__templateID = null;\r\n\t\tthis.__templateUrl = null;\r\n\t\tthis.__contentComponent = null;\r\n\t\tthis.__contentComponentData = null;\r\n\t\tthis.__minWidth = null;\r\n\t\tthis.__minHeight = null;\r\n\t\tthis.__enablePopUp = false;\r\n\t\tthis.__enableModal = false;\r\n\t\tthis.__enableCollapse = false;\r\n\t\tthis.__enableMinimization = false;\r\n\t\tthis.__enableFullScreen = false;\r\n\t\tthis.__enableDrag = false;\r\n\t\tthis.__enableResize = false;\r\n\t\tthis.__enableTitleDblClick = false;\r\n\t\tthis.__enableMoveOnClick = false;\r\n\t\tthis.__enableModalAnimation = false;\r\n\t\tthis.__modalAnimationType = \"Top\";\r\n\t\tthis.__enableModalCloseOnOutsideClick = false;\r\n\t\tthis.__enableModalCloseOnEscape = false;\r\n\t\tthis.__enableCloseIconVisibility = true;\r\n\t\tthis.__customClass = {};\r\n\t\tthis.__toolBarDetails = {};\r\n\t\tthis.__panelSetting = {};\r\n\t\t\r\n\t\tthis.__origBaseDimension = {}; \r\n\t\tthis.__lastHeight = null;\r\n\t\tthis.__lastBodyHeight = -1;\r\n\t\tthis.__nsDragResizeElements = null;\r\n\t\tthis.__divGhost = null;\r\n\t\tthis.__divModal = null;\r\n\t\tthis.__isCollapsingExpanding = false;\r\n\t\tthis.__isCollapsed = false;\r\n\t\tthis.__isMinimized = false;\r\n\t\tthis.__isFullScreen = false;\r\n\t\tthis.__isInternalRemove = false;\r\n\t\tthis.__divOrignalChildren = null;\r\n\t\tthis.__dragExcludeElement = [];\r\n\t\tthis.__disableCollapse = false;\r\n\t\tthis.__disableMinMax = false;\r\n\t\tthis.__disableFullScreen = false;\r\n\t\tthis.__toolBarDivs = {};\r\n\t\tthis.__lastModalAnimationCss = null;\r\n\t\tthis.__bodyCompInstance = null;\r\n\t\t//Minimize Variables\r\n\t\tthis.__divMinFixedContainer = null;\r\n\t\tthis.__minimizedDirection = \"left\";\r\n\t\tthis.__baseComponentParent = null;\r\n\t\tthis.__minimizeAddRemoveElementCallback = null;\r\n\t\t//FullScreen Variables\r\n\t\tthis.__origFullScreenDimension = {baseComponentRect:null,baseComponentStyle:null};\r\n\t\t\r\n\t\tthis.__windowClickRef = null;\r\n\t\tthis.__documentKeydownRef = null;\r\n\t\tthis.__modalAnimationEndRef = null;\r\n\t\tthis.__isComponentNull = false;\r\n\t\tif(!component)\r\n\t\t{\r\n\t\t\tcomponent = document.createElement(\"div\");\r\n\t\t\tcomponent.style.display = \"none\";\r\n\t\t\tthis.__parent.appendChild(component);\r\n\t\t\tthis.__isComponentNull = true;\r\n\t\t}\r\n\t\tthis.base.__setBaseComponent.call(this,component);\r\n\t};\r\n\t\r\n\tnsExtendPrototype(NSContainerBase,NSPanel);\r\n\tNSPanel.prototype.constructor = NSPanel;\r\n\t\r\n\tNSPanel.prototype.initializeComponent = function() \r\n\t{\r\n\t\tthis.base.initializeComponent.call(this);\r\n\t\tthis.__setSetting();\r\n\t\tif(this.__isComponentNull)\r\n\t\t{\r\n\t\t\tthis.__baseComponent.setAttribute(\"id\",this.getID() + \"Panel\");\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__createStructure();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.setComponentProperties = function() \r\n\t{\r\n\t\tthis.base.setComponentProperties.call(this);\r\n\t};\r\n\t\r\n\tNSPanel.prototype.propertyChange = function(attrName, oldVal, newVal, setProperty)\r\n\t{\r\n\t\tvar attributeName = attrName.toLowerCase();\r\n\t\tif(attributeName == \"title\")\r\n\t\t{\r\n\t\t\tthis.__title = newVal;\r\n\t\t}\r\n\t\tif(attributeName == \"titleHtml\")\r\n\t\t{\r\n\t\t\tthis.__titleHtml = newVal;\r\n\t\t}\r\n\t\tthis.base.propertyChange.call(this,attrName, oldVal, newVal, setProperty);\r\n\t};\r\n\t\r\n\tNSPanel.prototype.removeComponent = function() \r\n\t{\r\n\t\tif(!this.__isInternalRemove || this.__isComponentNull)\r\n\t\t{\r\n\t\t\tif(this.__nsDragResizeElements)\r\n\t\t\t{\r\n\t\t\t\tthis.__nsDragResizeElements.destroy();\r\n\t\t\t\tthis.__nsDragResizeElements = null;\r\n\t\t\t}\r\n\t\t\tif(this.__bodyCompInstance)\r\n\t\t\t{\r\n\t\t\t\tthis.__callEditorFunction(this.__bodyCompInstance,\"destroy\");\r\n\t\t\t\tthis.__bodyCompInstance = null;\r\n\t\t\t}\r\n\t\t\tif(this.__windowClickRef)\r\n\t\t\t{\r\n\t\t\t\tthis.util.removeEvent(this.__context,\"click\",this.__windowClickRef);\r\n\t\t\t\tthis.__windowClickRef = null;\r\n\t\t\t}\r\n\t\t\tif(this.__documentKeydownRef)\r\n\t\t\t{\r\n\t\t\t\tthis.util.removeEvent(document,\"keydown\",this.__documentKeydownRef);\r\n\t\t\t\tthis.__documentKeydownRef = null;\r\n\t\t\t}\r\n\t\t\tthis.__dragExcludeElement = [];\r\n\t\t\tthis.base.removeComponent.call(this);\r\n\t\t}\r\n\t\tthis.__isInternalRemove = false;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.componentResized = function(event) \r\n\t{\r\n\t\tthis.base.componentResized.call(this,event);\r\n\t};\r\n\t\r\n\tNSPanel.prototype.open = function(animation)\r\n\t{\r\n\t\tif(this.__isComponentNull)\r\n\t\t{\r\n\t\t\tthis.__createStructure();\r\n\t\t}\r\n\t\tif(this.__divModal)\r\n\t\t{\r\n\t\t\tif(this.__enableModal)\r\n\t\t\t{\r\n\t\t\t\tthis.__divModal.style.zIndex = this.util.getMaxZIndex() + 1;\r\n\t\t\t}\r\n\t\t\tif(this.__enableModalAnimation)\r\n\t\t\t{\r\n\t\t\t\tthis.__modalAnimationType = animation || this.__modalAnimationType;\r\n\t\t\t\tthis.util.removeStyleClass(this.__baseComponent,this.__lastModalAnimationCss);\r\n\t\t\t\tif(animation)\r\n\t\t\t\t{\r\n\t\t\t\t\tvar css = \"nsPanelModal\" + this.util.toCamelCase(this.__modalAnimationType,true);\r\n\t\t\t\t\tthis.util.addStyleClass(this.__baseComponent,css);\r\n\t\t\t\t\tvar cssAnimationHelper = new this.util.nsCSSAnimationHelper();\r\n\t\t\t\t\tthis.__modalAnimationEndRef = this.__modalAnimationEndHandler.bind(this,css,true,cssAnimationHelper);\r\n\t\t\t\t\tcssAnimationHelper.addEndEvent(this.__baseComponent,this.__modalAnimationEndRef);\r\n\t\t\t\t\tthis.__lastModalAnimationCss = css;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.__showHideModal(true);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.close = function()\r\n\t{\r\n\t\tif(this.__enableModalAnimation)\r\n\t\t{\r\n\t\t\tvar cssAnimationHelper = new this.util.nsCSSAnimationHelper();\r\n\t\t\tthis.__modalAnimationEndRef = this.__modalAnimationEndHandler.bind(this,this.__lastModalAnimationCss,false,cssAnimationHelper);\r\n\t\t\tcssAnimationHelper.addEndEvent(this.__baseComponent,this.__modalAnimationEndRef);\r\n\t\t\tthis.util.removeStyleClass(this.__divModal,\"nsPanelModalOpen\");\r\n\t\t\tthis.util.removeStyleClass(this.__baseComponent,\"nsPanelOpen\");\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__showHideModal(false);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.removeModal = function()\r\n\t{\r\n\t\tthis.close();\r\n\t\tthis.removeComponent();\r\n\t\tif(this.__divModal && this.__divModal.parentNode) {\r\n\t\t\tthis.__divModal.parentNode.removeChild(this.__divModal);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.getBaseElement = function()\r\n\t{\r\n\t\treturn this.__baseComponent;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.minimize = function()\r\n\t{\r\n\t\tif(!this.isMinimized())\r\n\t\t{\r\n\t\t\tthis.__initializeMinMax();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.maximize = function()\r\n\t{\r\n\t\tif(this.isMinimized())\r\n\t\t{\r\n\t\t\tthis.__initializeMinMax();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.collapse = function()\r\n\t{\r\n\t\tif(!this.isCollapsed())\r\n\t\t{\r\n\t\t\tthis.__initializeExpCol();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.expand = function()\r\n\t{\r\n\t\tif(this.isCollapsed())\r\n\t\t{\r\n\t\t\tthis.__initializeExpCol();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.fullScreen = function()\r\n\t{\r\n\t\tif(!this.isFullScreen())\r\n\t\t{\r\n\t\t\tthis.__initializeFullScreen();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.restore = function()\r\n\t{\r\n\t\tif(this.isFullScreen())\r\n\t\t{\r\n\t\t\tthis.__initializeFullScreen();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.disableResize = function(value)\r\n\t{\r\n\t\tif(this.__nsDragResizeElements)\r\n\t\t{\r\n\t\t\tthis.__nsDragResizeElements.disableResize(value);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.disableDrag = function(value)\r\n\t{\r\n\t\tif(this.__nsDragResizeElements)\r\n\t\t{\r\n\t\t\tthis.__nsDragResizeElements.disableDrag(value);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.disableCollapse = function(value)\r\n\t{\r\n\t\tthis.__disableCollapse = value;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.disableMinMax = function(value)\r\n\t{\r\n\t\tthis.__disableMinMax = value;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.disableFullScreen = function(value)\r\n\t{\r\n\t\tthis.__disableFullScreen = value;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.isCollapsed = function()\r\n\t{\r\n\t\treturn this.__isCollapsed;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.isMinimized = function()\r\n\t{\r\n\t\treturn this.__isMinimized;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.isFullScreen = function()\r\n\t{\r\n\t\treturn this.__isFullScreen;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__setSetting = function()\r\n\t{\r\n\t\tvar setting = this.__setting;\r\n\t\tif(setting)\r\n\t\t{\r\n\t\t\tif(setting.hasOwnProperty(\"context\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__context = setting[\"context\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"title\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__title = setting[\"title\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"titleHtml\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__titleHtml = setting[\"titleHtml\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"content\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__content = setting[\"content\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"parent\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__parent = setting[\"parent\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"template\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__templateID = setting[\"template\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"templateUrl\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__templateUrl = setting[\"templateUrl\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"contentComponent\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__contentComponent = setting[\"contentComponent\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"contentComponentData\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__contentComponentData = setting[\"contentComponentData\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"minWidth\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__minWidth = this.util.getNumber(setting[\"minWidth\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"minHeight\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__minHeight = this.util.getNumber(setting[\"minHeight\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enablePopUp\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enablePopUp = Boolean.parse(setting[\"enablePopUp\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableModal\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableModal = Boolean.parse(setting[\"enableModal\"]);\r\n\t\t\t\tif(this.__enableModal)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__enablePopUp = true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableCollapse\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableCollapse = Boolean.parse(setting[\"enableCollapse\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableMinimization\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableMinimization = Boolean.parse(setting[\"enableMinimization\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableFullScreen\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableFullScreen = Boolean.parse(setting[\"enableFullScreen\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableDrag\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableDrag = Boolean.parse(setting[\"enableDrag\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableResize\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableResize = Boolean.parse(setting[\"enableResize\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableTitleDblClick\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableTitleDblClick = Boolean.parse(setting[\"enableTitleDblClick\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableMoveOnClick\"))\r\n\t\t\t{\r\n\t\t\t\tif(!this.__enablePopUp)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__enableMoveOnClick = Boolean.parse(setting[\"enableMoveOnClick\"]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableModalAnimation\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableModalAnimation = Boolean.parse(setting[\"enableModalAnimation\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"modalAnimationType\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__modalAnimationType = setting[\"modalAnimationType\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableModalCloseOnOutsideClick\"))\r\n\t\t\t{\r\n\t\t\t\tif(this.__enableModal)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__enableModalCloseOnOutsideClick = Boolean.parse(setting[\"enableModalCloseOnOutsideClick\"]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableModalCloseOnEscape\"))\r\n\t\t\t{\r\n\t\t\t\tif(this.__enableModal)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__enableModalCloseOnEscape = Boolean.parse(setting[\"enableModalCloseOnEscape\"]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"enableCloseIconVisibility\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__enableCloseIconVisibility = this.util.isUndefinedOrNull(setting[\"enableCloseIconVisibility\"]) ? true : Boolean.parse(setting[\"enableCloseIconVisibility\"]);\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"minimizedDirection\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__minimizedDirection = setting[\"minimizedDirection\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"theme\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__theme = setting[\"theme\"];\r\n\t\t\t}\r\n\t\t\tif(setting.hasOwnProperty(\"minimizeAddRemoveElementCallback\"))\r\n\t\t\t{\r\n\t\t\t\tthis.__minimizeAddRemoveElementCallback = setting[\"minimizeAddRemoveElementCallback\"];\r\n\t\t\t\tif (typeof this.__minimizeAddRemoveElementCallback === \"string\" || this.__minimizeAddRemoveElementCallback instanceof String)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.util.isFunction(this.__minimizeAddRemoveElementCallback))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.__minimizeAddRemoveElementCallback = this.__config.context[this.__minimizeAddRemoveElementCallback];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tvar customClass = {};\r\n\t\t\tif(setting.hasOwnProperty(\"customClass\"))\r\n\t\t\t{\r\n\t\t\t\tcustomClass = setting[\"customClass\"];\r\n\t\t\t\tif(!customClass)\r\n\t\t\t\t{\r\n\t\t\t\t\tcustomClass = {};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.__customClass = {container:customClass[\"container\"] || null,\r\n\t\t\t\t\t titleBar:customClass[\"titleBar\"] || null,\r\n\t\t\t\t\t titleBarContent:customClass[\"titleBarContent\"] || null,\r\n\t\t\t\t\t iconContainer:customClass[\"iconContainer\"] || null,\r\n\t\t\t\t\t icon:customClass[\"icon\"] || null,\r\n\t\t\t\t\t body:customClass[\"body\"] || null};\r\n\t\t\tvar toolBarDetails = {};\r\n\t\t\tif(setting.hasOwnProperty(\"toolBarDetails\"))\r\n\t\t\t{\r\n\t\t\t\ttoolBarDetails = setting[\"toolBarDetails\"];\r\n\t\t\t\tif(!toolBarDetails)\r\n\t\t\t\t{\r\n\t\t\t\t\ttoolBarDetails = {};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.__toolBarDetails = {\r\n\t\t\t\t\tminimize:toolBarDetails[\"minimize\"] || {iconHTML:null,title:\"Minimize\"},\r\n\t\t\t\t\tmaximize:toolBarDetails[\"maximize\"] || {iconHTML:null,title:\"Maximize\"},\r\n\t\t\t\t\texpand:toolBarDetails[\"expand\"] || {iconHTML:null,title:\"Expand\"},\r\n\t\t\t\t\tcollapse:toolBarDetails[\"collapse\"] || {iconHTML:null,title:\"Collapse\"},\r\n\t\t\t\t\tfullScreen:toolBarDetails[\"fullScreen\"] || {iconHTML:null,title:\"FullScreen\"},\r\n\t\t\t\t\trestore:toolBarDetails[\"restore\"] || {iconHTML:null,title:\"Restore\"},\r\n\t\t\t\t\tclose:toolBarDetails[\"close\"] || {iconHTML:null,title:\"Close\"}\r\n\t\t\t};\r\n\t\t\tvar panelSetting = {};\r\n\t\t\tif(setting.hasOwnProperty(\"panelSetting\"))\r\n\t\t\t{\r\n\t\t\t\tpanelSetting = setting[\"panelSetting\"];\r\n\t\t\t\tif(!panelSetting)\r\n\t\t\t\t{\r\n\t\t\t\t\tpanelSetting = {};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.__panelSetting = {\r\n\t\t\t\ttop:panelSetting[\"top\"],\r\n\t\t\t\tleft:panelSetting[\"left\"],\r\n\t\t\t\twidth:panelSetting[\"width\"],\r\n\t\t\t\theight:panelSetting[\"height\"],\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__createStructure = function()\r\n\t{\r\n\t\tthis.__saveRestoreBaseComponentDimension(true);\r\n\t\tthis.__copyOrignalContent();\r\n\t\tvar arrKeys = Object.keys(this.__panelSetting);\r\n\t\tfor(var index = 0;index < arrKeys.length;index++)\r\n\t\t{\r\n\t\t\tif(this.__panelSetting[arrKeys[index]])\r\n\t\t\t{\r\n\t\t\t\tthis.__baseComponent.style[arrKeys[index]] = this.__panelSetting[arrKeys[index]];\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanel\");\r\n\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelExpanded\");\r\n\t\tthis.__applyTheme(this.__baseComponent,\"nsPanel\");\r\n\t\tthis.__applyTheme(this.__baseComponent,\"nsPanelWidget\");\r\n\t\tthis.__applyCustomClass(this.__baseComponent,\"container\");\r\n\t\tif(this.__enableDrag)\r\n\t\t{\r\n\t\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelModalContentDrag\");\r\n\t\t}\r\n\t\tif(this.__enablePopUp)\r\n\t\t{\r\n\t\t\tvar parentNode = this.__parent;\r\n\t\t\tthis.__divModal = this.__createModal();\r\n\t\t\tthis.__isInternalRemove = true;\r\n\t\t\tthis.__divModal.appendChild(this.__baseComponent);\r\n\t\t\tparentNode.appendChild(this.__divModal);\r\n\t\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelModalContent\");\r\n\t\t\tif(this.__enableModalCloseOnOutsideClick)\r\n\t\t\t{\r\n\t\t\t\t//this.__windowClickRef = this.__windowClickHandler.bind(this);\r\n\t\t\t\tthis.util.addEvent(this.__divModal,\"click\",this.__modalClickHandler.bind(this));\r\n\t\t\t}\r\n\t\t\tif(this.__enableModalCloseOnEscape)\r\n\t\t\t{\r\n\t\t\t\t//To detect escape button\r\n\t\t\t\tthis.__documentKeydownRef = this.__documentKeydownHandler.bind(this);\r\n\t\t\t\tthis.util.addEvent(document,\"keydown\",this.__documentKeydownRef);\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.__header = this.__createTitleBar(this.__baseComponent);\r\n\t\tthis.__body = this.__createBody(this.__baseComponent);\r\n\t\tthis.__lastHeight = this.util.getStyleValue(this.__baseComponent,\"height\");\r\n\t\tvar dragResizeSetting = {element:this.__baseComponent,\r\n\t\t\t\tenableDrag:this.__enableDrag,\r\n\t\t\t\tenableResize:this.__enableResize,\r\n\t\t\t\tenableMoveOnClick:this.__enableMoveOnClick,\r\n\t\t\t\tminWidth:this.__minWidth,\r\n\t\t\t\tminHeight:this.__minHeight,\r\n\t\t\t\tcreateGhostElementCallback:this.__createGhostElement.bind(this),\r\n\t\t\t\tenableDragContainment:true,\r\n\t\t\t\texcludeElement:this.__dragExcludeElement};\r\n\t\tthis.__nsDragResizeElements = new this.util.nsDragResizeElements(dragResizeSetting);\r\n\t\tthis.util.addEvent(this.__baseComponent,this.__nsDragResizeElements.DRAG_STARTING,this.__dragResizeEventHandler.bind(this));\r\n\t\tthis.util.addEvent(this.__baseComponent,this.__nsDragResizeElements.DRAG_END,this.__dragResizeEventHandler.bind(this));\r\n\t\tthis.util.addEvent(this.__baseComponent,this.__nsDragResizeElements.RESIZE_END,this.__dragResizeEventHandler.bind(this));\r\n\t\tthis.util.addEvent(this.__baseComponent,\"click\",this.__baseComponentClickHandler.bind(this));\r\n\t\tthis.util.addEvent(this.__baseComponent,NSPanel.__ELEMENT_FOCUS_OUT,this.__baseComponentFocusOutHandler.bind(this));\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__saveRestoreBaseComponentDimension = function(isSave)\r\n\t{\r\n\t\tif(this.__baseComponent)\r\n\t\t{\r\n\t\t\tvar arrAttributeName = [\"class\",\"style\"];\r\n\t\t\tif(isSave)\r\n\t\t\t{\r\n\t\t\t\tthis.__origBaseDimension = {};\r\n\t\t\t\tfor(var count = 0;count < arrAttributeName.length;count++)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__origBaseDimension[arrAttributeName[count]] = this.__baseComponent.getAttribute(arrAttributeName[count]); \r\n\t\t\t\t}\r\n\t\t\t\tthis.__origBaseDimension[\"children\"] = this.__baseComponent.children;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tfor(var count = 0;count < arrAttributeName.length;count++)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__baseComponent.setAttribute(arrAttributeName[count],this.__origBaseDimension[arrAttributeName[count]]); \r\n\t\t\t\t}\r\n\t\t\t\tif(this.__origBaseDimension[\"children\"] && this.__origBaseDimension[\"children\"].length > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.removeAllChildren(this.__baseComponent);\r\n\t\t\t\t\tfor(var count = 0;count < this.__origBaseDimension[\"children\"].length;count++)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.__baseComponent.appendChild(this.__origBaseDimension[\"children\"][count]); \r\n\t\t\t\t\t} \r\n\t\t\t\t}\r\n\t\t\t\tthis.__origBaseDimension = {};\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__createModal = function()\r\n\t{\r\n\t\tvar divModal = this.util.createDiv(this.getID() + \"modal\",\"nsPanelModal\");\r\n\t\tif(this.__enableModal)\r\n\t\t{\r\n\t\t\tthis.util.addStyleClass(divModal,\"nsPanelModalProp\");\r\n\t\t}\r\n\t\tif(this.__enableModalAnimation)\r\n\t\t{\r\n\t\t\tthis.util.addStyleClass(divModal,\"nsPanelModalAnimation\");\r\n\t\t}\r\n\t\tthis.util.addStyleClass(divModal,\"nsPanelModal\" + this.__theme);\r\n\t\treturn divModal;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__createTitleBar = function(parentElement)\r\n\t{\r\n\t\tif(parentElement)\r\n\t\t{\r\n\t\t\tvar divTitleBar = this.util.createDiv(this.getID() + this.__TITLE_CONTAINER_ID,\"nsPanelTitleBar\");\r\n\t\t\tthis.util.addStyleClass(divTitleBar,this.__CLASS_TITLEBAR);\r\n\t\t\tthis.__applyCustomClass(divTitleBar,\"titleBar\");\r\n\t\t\tvar divTitleBarContent = this.util.createDiv(this.getID() + this.__TITLE_CONTAINER_ID + \"Content\",\"nsPanelTitleBarContent\");\r\n\t\t\tthis.__applyCustomClass(divTitleBarContent,\"titleBarContent\");\r\n\t\t\tdivTitleBar.appendChild(divTitleBarContent);\r\n\t\t\tif(this.__titleHtml && this.__titleHtml.length > 0)\r\n\t\t\t{\r\n\t\t\t\tdivTitleBarContent.innerHTML = this.__titleHtml;\r\n\t\t\t}\r\n\t\t\telse if(this.__title && this.__title.length > 0)\r\n\t\t\t{\r\n\t\t\t\tvar titleText = document.createTextNode(this.__title);\r\n\t\t\t\tdivTitleBarContent.appendChild(titleText);\r\n\t\t\t}\r\n\t\t\tvar svgShapes = new NSSvgShapes();\r\n\t\t\tvar objSVG = new NSSvg();\r\n\t\t\tvar divIcon = this.util.createDiv(this.getID() + this.__TITLE_CONTAINER_ID + \"IconContainer\",\"nsPanelControlbar\");\r\n\t\t\tthis.__applyCustomClass(divIcon,\"iconContainer\");\r\n\t\t\tvar divButton = null;\r\n\t\t\tif(this.__enableCollapse)\r\n\t\t\t{\r\n\t\t\t\tsvgShapes.addExpandInPage();\r\n\t\t\t\tsvgShapes.addCollapseInPage();\r\n\t\t\t\tvar expColID = this.getID() + \"ExpCol\";\r\n\t\t\t\tvar headerDoubleClickRef = this.__headerDoubleClickHandler.bind(this);\r\n\t\t\t\tdivButton = this.__addToolbarIcon(divIcon,objSVG,\"collapse\",\"nsPanelExpColContainer\",expColID,\"nsPanelExpColIcon\",svgShapes.__COLLAPSE_ICON_ID,headerDoubleClickRef);\r\n\t\t\t\tthis.__toolBarDivs[\"expand\"] = this.__toolBarDivs[\"collapse\"] = divButton;\r\n\t\t\t\tif(this.__enableTitleDblClick)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.addEvent(divTitleBar,\"dblclick\",headerDoubleClickRef);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.__enableMinimization)\r\n\t\t\t{\r\n\t\t\t\tsvgShapes.addMinimizeInPage();\r\n\t\t\t\tsvgShapes.addMaximizeInPage();\r\n\t\t\t\tvar minMaxID = this.getID() + \"MinMax\";\r\n\t\t\t\tdivButton = this.__addToolbarIcon(divIcon,objSVG,\"minimize\",\"nsPanelMinMaxContainer\",minMaxID,\"nsPanelMinMaxIcon\",svgShapes.__MINIMIZE_ICON_ID,this.__minimizeIconClickHandler.bind(this));\r\n\t\t\t\tthis.__toolBarDivs[\"maximize\"] = this.__toolBarDivs[\"minimize\"] = divButton;\r\n\t\t\t}\r\n\t\t\tif(this.__enableFullScreen)\r\n\t\t\t{\r\n\t\t\t\tsvgShapes.addFullScreenInPage();\r\n\t\t\t\tsvgShapes.addRestoreInPage();\r\n\t\t\t\tvar fullScreenID = this.getID() + \"FullScreen\";\r\n\t\t\t\tdivButton = this.__addToolbarIcon(divIcon,objSVG,\"fullScreen\",\"nsPanelFullScreenContainer\",fullScreenID,\"nsPanelFullScreenIcon\",svgShapes.__FULLSCREEN_ICON_ID,this.__fullScreenIconClickHandler.bind(this));\r\n\t\t\t\tthis.__toolBarDivs[\"fullScreen\"] = this.__toolBarDivs[\"restore\"] = divButton;\r\n\t\t\t}\r\n\t\t\tif(this.__enablePopUp && this.__enableCloseIconVisibility)\r\n\t\t\t{\r\n\t\t\t\tsvgShapes.addCloseIcon();\r\n\t\t\t\tvar closeID = this.getID() + \"Close\";\r\n\t\t\t\tdivButton = this.__addToolbarIcon(divIcon,objSVG,\"close\",\"nsPanelCloseContainer\",closeID,\"nsPanelCloseIcon\",svgShapes.__CLOSE_ICON_ID,this.__closeIconClickHandler.bind(this));\r\n\t\t\t\tthis.__toolBarDivs[\"close\"] = divButton;\r\n\t\t\t}\r\n\t\t\tdivTitleBar.appendChild(divIcon);\r\n\t\t\tparentElement.appendChild(divTitleBar);\r\n\t\t\treturn divTitleBar;\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__createBody = function(parentElement)\r\n\t{\t\r\n\t\tif(parentElement)\r\n\t\t{\r\n\t\t\tvar divBody = this.util.createDiv(this.getID() + this.__BODY_CONTAINER_ID,this.__CLASS_BODY_CONTAINER);\r\n\t\t\tthis.__applyCustomClass(divBody,\"body\");\r\n\t\t\tif(this.__divOrignalChildren)\r\n\t\t\t{\r\n\t\t\t\tdivBody.appendChild(this.__divOrignalChildren);\r\n\t\t\t}\r\n\t\t\tif(this.__content)\r\n\t\t\t{\r\n\t\t\t\tif(this.util.isString(this.__content))\r\n\t\t\t\t{\r\n\t\t\t\t\tvar compSpan = document.createElement(\"span\");\r\n\t\t\t\t\tcompSpan.innerHTML = this.__content;\r\n\t\t\t\t\tdivBody.appendChild(compSpan);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tdivBody.appendChild(this.__content);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if(this.__templateID && this.__templateID.length > 0)\r\n\t\t\t{\r\n\t\t\t\tdivBody.appendChild(this.util.getTemplate(this.__templateID));\r\n\t\t\t}\r\n\t\t\telse if(this.__templateUrl && this.__templateUrl.length > 0)\r\n\t\t\t{\r\n\t\t\t\tvar self = this;\r\n\t\t\t\tvar templateLoadHandler = function(templateText)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(templateText)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tdivBody.innerHTML = templateText;\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tconsole.error(self.__templateUrl + \" was not loaded.Please check the URL\");\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\tvar templateErrorHandler = function(errorText)\r\n\t\t\t\t{\r\n\t\t\t\t\tconsole.error(self.__templateUrl + \" was not loaded.Please check the URL\");\r\n\t\t\t\t};\r\n\t\t\t\tthis.util.getTemplateFromURL(this.__templateUrl,templateLoadHandler,templateErrorHandler);\r\n\t\t\t}\r\n\t\t\telse if(this.__contentComponent)\r\n\t\t\t{\r\n\t\t\t\tvar callback = function(component)\r\n\t\t\t\t{\r\n\t\t\t\t\tif(this.__bodyCompInstance)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tthis.__bodyCompInstance = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.__bodyCompInstance = new component();\r\n\t\t\t\t\tvar retVal = this.__callEditorFunction(this.__bodyCompInstance,\"init\",this.__contentComponentData);\r\n\t\t\t\t\tvar initCallback = function(bodyCompInstance)\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tif(!this.__bodyCompInstance) {\r\n\t\t\t\t\t\t\tthis.__bodyCompInstance = bodyCompInstance;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar element = this.__bodyCompInstance.getElement();\r\n\t\t\t\t\t\tdivBody.appendChild(element);\r\n\t\t\t\t\t\tthis.__callEditorFunction(this.__bodyCompInstance,\"elementAdded\");\r\n\t\t\t\t\t\tvar config = {instance: this.__bodyCompInstance,parentComp: this,element: element};\r\n\t\t\t\t\t\tthis.__bodyCompInstance[this.__getAttributeKey(\"config\")] = config;\r\n\t\t\t\t\t};\r\n\t\t\t\t\tthis.util.resolveFunctionOrPromise(retVal,initCallback.bind(this));\r\n\t\t\t\t};\r\n\t\t\t\tthis.util.resolveFunctionOrPromise(this.__contentComponent,callback.bind(this));\r\n\t\t\t}\r\n\t\t\tparentElement.appendChild(divBody);\r\n\t\t\treturn divBody;\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__createGhostElement = function(element)\r\n\t{\r\n\t\tthis.__divGhost = element.cloneNode(true);\r\n\t\tvar divPanelControlbar = this.__divGhost.querySelector(\".nsPanelControlbar\");\r\n\t\tif(divPanelControlbar)\r\n\t\t{\r\n\t\t\tdivPanelControlbar.parentNode.removeChild(divPanelControlbar);\r\n\t\t}\r\n\t\tvar divBody = this.__divGhost.querySelector(\".nsPanelBody\");\r\n\t\tif(divBody)\r\n\t\t{\r\n\t\t\tdivBody.innerHTML = \"\";\r\n\t\t}\r\n\t\treturn this.__divGhost;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__modalClickHandler = function(event)\r\n\t{\r\n\t\tvar target = this.util.getTarget(event);\r\n\t\tif(target !== this.__baseComponent && !this.__baseComponent.contains(target))\r\n\t\t{\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__documentKeydownHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tif (event.keyCode === this.util.KEYCODE[\"ESC\"]) \r\n\t\t{\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__copyOrignalContent = function()\r\n\t{\r\n\t\tif(this.__baseComponent && this.__baseComponent.childNodes.length > 0)\r\n\t\t{\r\n\t\t\tthis.__divOrignalChildren = this.util.createDiv(this.getID() + \"orignalChildren\");\r\n\t\t\twhile (this.__baseComponent.childNodes.length > 0) \r\n\t\t\t{\r\n\t\t\t\tthis.__divOrignalChildren.appendChild(this.__baseComponent.childNodes[0]);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__headerDoubleClickHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tthis.__initializeExpCol();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.stopImmediatePropagation();\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__minimizeIconClickHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tthis.__initializeMinMax();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.stopImmediatePropagation();\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__fullScreenIconClickHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tthis.__initializeFullScreen();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.stopImmediatePropagation();\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__closeIconClickHandler = function(event)\r\n\t{\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tthis.close();\r\n\t\tevent.stopPropagation();\r\n\t\tevent.stopImmediatePropagation();\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__modalAnimationEndHandler = function(css,show,cssAnimationHelper,event)\r\n\t{\r\n\t\tcssAnimationHelper.removeEndEvent(this.__baseComponent,this.__modalAnimationEndRef);\r\n\t\tthis.__modalAnimationEndRef = null;\r\n\t\tif(show)\r\n\t\t{\r\n\t\t\t//this.util.removeStyleClass(this.__baseComponent,css);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__showHideModal(false);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__dragResizeEventHandler = function(event)\r\n\t{\r\n\t\tif(event.eventName === NSPanel.DRAG_STARTING)\r\n\t\t{\r\n\t\t\tvar target = event.detail;\r\n\t\t\tif(target && (this.util.hasStyleClass(target,\"nsPanelMinMaxContainer\")))\r\n\t\t\t{\r\n\t\t\t\tthis.util.preventDefault(event);\r\n\t\t\t\tevent.stopImmediatePropagation();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(event.eventName === NSPanel.DRAG_END)\r\n\t\t{\r\n\t\t\tthis.__refreshToolbarIcon();\r\n\t\t}\r\n\t\telse if(event.eventName === NSPanel.RESIZE_END)\r\n\t\t{\r\n\t\t\tthis.__lastHeight = this.util.getStyleValue(this.__baseComponent,\"height\");\r\n\t\t\tthis.__refreshToolbarIcon();\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__baseComponentClickHandler = function(event)\r\n\t{\r\n\t\tconsole.log(\"__baseComponentClickHandler \" + this.__baseComponent.id);\r\n\t\tevent = this.util.getEvent(event);\r\n\t\tvar currentPanel,highlightedPanel;\r\n\t\tvar arrElement = document.querySelectorAll(\".nsPanel:not(.nsDragGhost)\");\r\n\t\tvar currentPanelParent = currentPanel = this.__baseComponent;\r\n\t\tvar highlightedPanelParent = highlightedPanel = arrElement[arrElement.length - 1];\r\n\t\t//if popup then select its parent\r\n\t\tif(this.__divModal && highlightedPanel)\r\n\t\t{\r\n\t\t\thighlightedPanelParent = highlightedPanel.parentNode;\r\n\t\t\tcurrentPanelParent = this.__divModal;\r\n\t\t\t//below line stops click handler of button on Panel\r\n\t\t\t//event.stopPropagation();\r\n\t\t}\r\n\t\tif(highlightedPanelParent != currentPanelParent)\r\n\t\t{\r\n\t\t\tthis.util.insertAfterElement(highlightedPanelParent,currentPanelParent);\r\n\t\t}\r\n\t\tthis.__refreshToolbarIcon();\r\n\t\tif(highlightedPanel)\r\n\t\t{\r\n\t\t\tthis.util.dispatchEvent(highlightedPanel,NSPanel.__ELEMENT_FOCUS_OUT,null,null);\r\n\t\t}\r\n\t};\r\n\tNSPanel.prototype.__baseComponentFocusOutHandler = function(event)\r\n\t{\r\n\t\tconsole.log(\"__baseComponentFocusOutHandler \" + this.__baseComponent.id);\r\n\t\tthis.__refreshToolbarIcon();\r\n\t};\r\n\tNSPanel.prototype.__addToolbarIcon = function(divIcon,objSVG,toolbarKey,containerClass,iconID,svgClass,svgShapeIconID,clickHandler)\r\n\t{\r\n\t\tvar divButton = this.util.createDiv(null,\"nsPanelControlButton\");\r\n\t\tthis.util.addStyleClass(divButton,containerClass);\r\n\t\tthis.__applyCustomClass(divButton,\"icon\");\r\n\t\tif(!this.__setToolBarButton(toolbarKey,divButton))\r\n\t\t{\r\n\t\t\tvar svg = objSVG.addSVG(divButton,iconID,svgClass,null,null,null,null,null,null,true);\r\n\t\t\tobjSVG.addUse(svg,iconID + \"use\",svgClass + \"Use\",\"#\" + svgShapeIconID);\r\n\t\t}\r\n\t\tdivIcon.appendChild(divButton);\r\n\t\tthis.util.addEvent(divButton,\"click\",clickHandler);\r\n\t\tthis.__dragExcludeElement.push(divButton);\r\n\t\treturn divButton;\r\n\t};\r\n\t//call this function if svg icons are used and container changes its parent because of IE issue\r\n\tNSPanel.prototype.__refreshToolbarIcon = function()\r\n\t{\r\n\t\tif(this.__toolBarDivs)\r\n\t\t{\r\n\t\t\tfor(var key in this.__toolBarDivs)\r\n\t\t\t{\r\n\t\t\t\tvar div = this.__toolBarDivs[key];\r\n\t\t\t\tif(div && div.children.length > 0 && div.children[0].nodeName == \"svg\" && div.children[0].childNodes.length > 0 && div.children[0].childNodes[0].nodeName == \"use\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvar use = div.children[0].childNodes[0];\r\n\t\t\t\t\tuse.setAttribute(\"xlink:href\",use.getAttribute(\"xlink:href\"));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tNSPanel.prototype.__setToolBarButton = function(toolbarKey,divButton)\r\n\t{\r\n\t\tvar isIconFound = false;\r\n\t\tif(!divButton)\r\n\t\t{\r\n\t\t\tdivButton = this.__toolBarDivs[toolbarKey];\r\n\t\t}\r\n\t\tif(divButton && this.__toolBarDetails[toolbarKey])\r\n\t\t{\r\n\t\t\tif(this.__toolBarDetails[toolbarKey][\"iconHTML\"])\r\n\t\t\t{\r\n\t\t\t\tdivButton.innerHTML = this.__toolBarDetails[toolbarKey][\"iconHTML\"];\r\n\t\t\t\tfor(var count = 0;count < divButton.children.length;count++)\r\n\t\t\t\t{\r\n\t\t\t\t\tdivButton.children[count].style.pointerEvents = \"none\";\r\n\t\t\t\t}\r\n\t\t\t\tisIconFound = true;\r\n\t\t\t}\r\n\t\t\tif(this.__toolBarDetails[toolbarKey][\"title\"])\r\n\t\t\t{\r\n\t\t\t\tdivButton.setAttribute(\"title\",this.__toolBarDetails[toolbarKey][\"title\"]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn isIconFound;\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__applyCustomClass = function(element,type)\r\n\t{\r\n\t\tif(element && type && this.__customClass[type])\r\n\t\t{\r\n\t\t\tthis.util.addStyleClass(element,this.__customClass[type]);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__showHideModal = function(show)\r\n\t{\r\n\t\tif(show)\r\n\t\t{\r\n\t\t\tthis.util.addStyleClass(this.__divModal,\"nsPanelModalOpen\");\r\n\t\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelOpen\");\r\n\t\t\tthis.__divModal.style.display = \"block\";\r\n\t\t\tthis.__baseComponent.style.display = \"block\";\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.util.removeStyleClass(this.__divModal,\"nsPanelModalOpen\");\r\n\t\t\tthis.util.removeStyleClass(this.__baseComponent,\"nsPanelOpen\");\r\n\t\t\tif(this.__isComponentNull)\r\n\t\t\t{\r\n\t\t\t\tthis.removeComponent();\r\n\t\t\t\tthis.util.removeAllChildren(this.__baseComponent);\r\n\t\t\t\tif(this.__divModal && this.__divModal.parentNode)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__divModal.parentNode.removeChild(this.__divModal);\r\n\t\t\t\t}\r\n\t\t\t\tthis.__saveRestoreBaseComponentDimension(false);\r\n\t\t\t\tthis.__baseComponent.style.display = \"none\";\r\n\t\t\t\tthis.__parent.appendChild(this.__baseComponent);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tif(this.__divModal)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__divModal.style.display = \"none\";\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis.util.dispatchEvent(this.getBaseElement(),NSPanel.CLOSED,this.__setting,{item: this.__setting});\r\n\t\t\tthis.util.dispatchEvent(this.__context,NSPanel.CLOSED,this.__setting,{item: this.__setting});\r\n\t\t}\r\n\t};\r\n\t\r\n\t/******************************Start of Expansion Collapse Function *************************************/\r\n\tNSPanel.prototype.__initializeExpCol = function()\r\n\t{\r\n\t\tif(this.__body && !this.__isCollapsingExpanding && !this.__disableCollapse)\r\n\t\t{\r\n\t\t\tvar objBrowser = this.util.getBrowser();\r\n\t\t\t//for some weird reason browser other than Chrome moves on click and know how to fix it\r\n\t\t\tif(objBrowser && objBrowser.code !== \"chrome\")\r\n\t\t\t{\r\n\t\t\t\tthis.__nsDragResizeElements.stopMoveOnClick();\r\n\t\t\t}\r\n\t\t\tthis.__isCollapsingExpanding = true;\r\n\t\t\tvar isCollapsed = this.util.hasStyleClass(this.__baseComponent,\"nsPanelCollapsed\");\r\n\t\t\tif(isCollapsed)\r\n\t\t\t{\r\n\t\t\t\t// expanding\r\n\t\t\t\tthis.disableDrag(true);\r\n\t\t\t\tthis.disableResize(true);\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t// collapsing\r\n\t\t\t\tthis.disableDrag(false);\r\n\t\t\t\tthis.disableResize(false);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tthis.__animateExpCol(isCollapsed);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__animateExpCol = function(isExpanding)\r\n\t{\r\n\t\tvar eventType = isExpanding ? NSPanel.EXPANSION_STARTING:NSPanel.COLLAPSE_STARTING;\r\n\t\tthis.util.dispatchEvent(this.getBaseElement(),eventType,null,null);\r\n\t\tthis.__body.style.display = \"block\";\r\n\t\tvar contentHeight = this.__body.offsetHeight;\r\n\t\tif (isExpanding)\r\n\t\t{\r\n\t\t\tthis.__body.style.height = \"0px\";\r\n\t\t\tcontentHeight = this.__lastBodyHeight;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tthis.__lastBodyHeight = this.__body.offsetHeight;\r\n\t\t}\r\n\t\tvar stepHeight = contentHeight / this.__DEFAULT_ANIMATION_STEPS;\r\n\t\tvar direction = (isExpanding ? 1 : -1);\r\n\t\tvar self = this;\r\n\t\tsetTimeout(function(){self.__animateExpColStep.bind(self)(1,stepHeight,direction);}, this.__DEFAULT_ANIMATION_DELAY);\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__animateExpColStep = function(iteration, stepHeight, direction)\r\n\t{\r\n\t\tif (iteration < this.__DEFAULT_ANIMATION_STEPS)\r\n\t\t{\r\n\t\t\tthis.__body.style.height = Math.round(((direction > 0) ? iteration : 10 - iteration) * stepHeight) +\"px\";\r\n\t\t\titeration++;\r\n\t\t\tvar self = this;\r\n\t\t\tsetTimeout(function(){self.__animateExpColStep.bind(self)(iteration,stepHeight,direction);}, this.__DEFAULT_ANIMATION_DELAY);\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\tvar eventType = \"\";\r\n\t\t\tif(direction < 0)\r\n\t\t\t{\r\n\t\t\t\tthis.util.changeStyleClass(this.__baseComponent,\"nsPanelExpanded\",\"nsPanelCollapsed\");\r\n\t\t\t\tthis.__body.style.display = \"none\";\r\n\t\t\t\tthis.__baseComponent.style.height = this.__header.offsetHeight + \"px\";\r\n\t\t\t\teventType = NSPanel.COLLAPSE_END;\r\n\t\t\t\tif(this.__divGhost)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.changeStyleClass(this.__divGhost,\"nsPanelExpanded\",\"nsPanelCollapsed\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\tthis.util.changeStyleClass(this.__baseComponent,\"nsPanelCollapsed\",\"nsPanelExpanded\");\r\n\t\t\t\tthis.__body.style.display = \"\";\r\n\t\t\t\tthis.__baseComponent.style.height = (this.__lastHeight) ? this.__lastHeight : (this.__lastBodyHeight + this.__header.offsetHeight + \"px\");\r\n\t\t\t\tthis.__lastBodyHeight = 0;\r\n\t\t\t\teventType = NSPanel.EXPANSION_END;\r\n\t\t\t\tif(this.__divGhost)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.util.changeStyleClass(this.__divGhost,\"nsPanelCollapsed\",\"nsPanelExpanded\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(this.__divGhost)\r\n\t\t\t{\r\n\t\t\t\tvar divGhostBody = this.__divGhost.querySelector(\".nsPanelBody\");\r\n\t\t\t\tdivGhostBody.style.display = this.__body.style.display;\r\n\t\t\t\tthis.__divGhost.style.height = this.__baseComponent.style.height;\r\n\t\t\t}\r\n\t\t\tthis.__body.style.height = \"\";\r\n\t\t\tthis.__handleExpColIcon(direction < 0);\r\n\t\t\tthis.__isCollapsingExpanding = false;\r\n\t\t\tthis.util.dispatchEvent(this.getBaseElement(),eventType,null,null);\r\n\t\t}\r\n\t};\r\n\t\r\n\tNSPanel.prototype.__handleExpColIcon = function(isCollapsed)\r\n\t{\r\n\t\tvar svgID = \"\";\r\n\t\tvar toolBarKey = \"\";\r\n\t\tif(isCollapsed)\r\n\t\t{\r\n\t\t\ttoolBarKey = \"expand\";\r\n\t\t\tsvgID = new NSSvgShapes().__EXPAND_ICON_ID;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\ttoolBarKey = \"collapse\";\r\n\t\t\tsvgID = new NSSvgShapes().__COLLAPSE_ICON_ID;\r\n\t\t}\r\n\t\tif(!this.__setToolBarButton(toolBarKey))\r\n\t\t{\r\n\t\t\tvar objSVG = new NSSvg();\r\n\t\t\tvar useID = this.getID() + \"ExpCol\" + \"use\";\r\n\t\t\tobjSVG.changeUseHref(useID,\"#\" + svgID);\r\n\t\t}\r\n\t\tthis.__isCollapsed = isCollapsed;\r\n\t};\r\n\t/******************************End of Expansion Collapse Function *************************************/\r\n\t/******************************Start of Minimize Maximize Function *************************************/\r\n\tNSPanel.prototype.__initializeMinMax = function()\r\n\t{\r\n\t\tif(this.__body && !this.__disableMinMax)\r\n\t\t{\r\n\t\t\tvar fixedContainer = this.__getMinFixedContainer();\r\n\t\t\tvar eventType = \"\";\r\n\t\t\tif(this.__isMinimized)\r\n\t\t\t{\r\n\t\t\t\t//maximize\r\n\t\t\t\tthis.util.dispatchEvent(this.getBaseElement(),NSPanel.MAXIMIZE_STARTING,null,null);\r\n\t\t\t\tthis.disableDrag(false);\r\n\t\t\t\tthis.disableResize(false);\r\n\t\t\t\tthis.disableCollapse(false);\r\n\t\t\t\tthis.disableFullScreen(false);\r\n\t\t\t\tthis.util.removeStyleClass(this.__baseComponent,\"nsPanelMinimized\");\r\n\t\t\t\tthis.util.removeStyleClass(this.__baseComponent,\"nsPanelMinimized\" + this.__minimizedDirection);\r\n\t\t\t\tfixedContainer.removeChild(this.__baseComponent);\r\n\t\t\t\tif(this.__minimizeAddRemoveElementCallback)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__minimizeAddRemoveElementCallback(this.__baseComponent,this.__baseComponentParent,true);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__baseComponentParent.appendChild(this.__baseComponent);\r\n\t\t\t\t}\r\n\t\t\t\tthis.__body.style.display = \"\";\r\n\t\t\t\tthis.__baseComponent.style.height = (this.__lastHeight) ? this.__lastHeight : (this.__lastBodyHeight + this.__header.offsetHeight + \"px\");\r\n\t\t\t\tthis.__lastBodyHeight = 0;\r\n\t\t\t\teventType = NSPanel.MAXIMIZE_END;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t//minimize\r\n\t\t\t\tthis.util.dispatchEvent(this.getBaseElement(),NSPanel.MINIMIZE_STARTING,null,null);\r\n\t\t\t\tthis.disableDrag(true);\r\n\t\t\t\tthis.disableResize(true);\r\n\t\t\t\tthis.disableCollapse(true);\r\n\t\t\t\tthis.disableFullScreen(true);\r\n\t\t\t\tthis.__lastBodyHeight = this.__body.offsetHeight;\r\n\t\t\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelMinimized\");\r\n\t\t\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelMinimized\" + this.__minimizedDirection);\r\n\t\t\t\tthis.__baseComponentParent = this.__baseComponent.parentNode;\r\n\t\t\t\tif(this.__minimizeAddRemoveElementCallback)\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__minimizeAddRemoveElementCallback(this.__baseComponent,this.__baseComponentParent,false);\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tthis.__baseComponentParent.removeChild(this.__baseComponent);\r\n\t\t\t\t}\r\n\t\t\t\tfixedContainer.appendChild(this.__baseComponent);\r\n\t\t\t\tthis.__body.style.display = \"none\";\r\n\t\t\t\tthis.__baseComponent.style.height = this.__header.offsetHeight + \"px\";\r\n\t\t\t\tthis.__body.style.height = \"\";\r\n\t\t\t\teventType = NSPanel.MINIMIZE_END;\r\n\t\t\t}\r\n\t\t\tthis.__handleMinMaxIcon(!this.__isMinimized);\r\n\t\t\tthis.__refreshToolbarIcon();\r\n\t\t\tthis.__isMinimized = !this.__isMinimized;\r\n\t\t\tthis.util.dispatchEvent(this.getBaseElement(),eventType,null,null);\r\n\t\t}\r\n\t};\r\n\tNSPanel.prototype.__handleMinMaxIcon = function(isMinimized)\r\n\t{\r\n\t\tvar svgID = \"\";\r\n\t\tvar toolBarKey = \"\";\r\n\t\tif(isMinimized)\r\n\t\t{\r\n\t\t\ttoolBarKey = \"maximize\";\r\n\t\t\tsvgID = new NSSvgShapes().__MAXIMIZE_ICON_ID;\r\n\t\t}\r\n\t\telse\r\n\t\t{\r\n\t\t\ttoolBarKey = \"minimize\";\r\n\t\t\tsvgID = new NSSvgShapes().__MINIMIZE_ICON_ID;\r\n\t\t}\r\n\t\tif(!this.__setToolBarButton(toolBarKey))\r\n\t\t{\r\n\t\t\tvar objSVG = new NSSvg();\r\n\t\t\tvar useID = this.getID() + \"MinMax\" + \"use\";\r\n\t\t\tobjSVG.changeUseHref(useID,\"#\" + svgID);\r\n\t\t}\r\n\t};\r\n\tNSPanel.prototype.__getMinFixedContainer = function()\r\n\t{\r\n\t\tif(!this.__divMinFixedContainer)\r\n\t\t{\r\n\t\t\tthis.__divMinFixedContainer = document.getElementById(\"nsPanelMinimizeContainer\");\r\n\t\t\tif(!this.__divMinFixedContainer)\r\n\t\t\t{\r\n\t\t\t\tthis.__divMinFixedContainer = this.util.createDiv(\"nsPanelMinimizeContainer\",\"nsPanelMinimizeContainer\");\r\n\t\t\t\tdocument.body.appendChild(this.__divMinFixedContainer);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn this.__divMinFixedContainer;\r\n\t};\r\n\t/******************************End of Minimize Maximize Function *************************************/\r\n\t/******************************Start of FullScreen Function *************************************/\r\n\tNSPanel.prototype.__initializeFullScreen = function()\r\n\t{\r\n\t\tif(this.__body && !this.__disableFullScreen)\r\n\t\t{\r\n\t\t\tvar self = this;\r\n\t\t\tvar getValue = function(element,property)\r\n\t\t\t{\r\n\t\t\t\tvar styleProp = self.util.getStyleValue(element,property);\r\n\t\t\t\tif(styleProp == \"auto\")\r\n\t\t\t\t{\r\n\t\t\t\t\tvar rect = element.getBoundingClientRect();\r\n\t\t\t\t\tstyleProp = rect[property];\r\n\t\t\t\t}\r\n\t\t\t\telse\r\n\t\t\t\t{\r\n\t\t\t\t\tstyleProp = parseInt(styleProp.substring(0,styleProp.length - 2));\r\n\t\t\t\t}\r\n\t\t\t\treturn styleProp;\r\n\t\t\t};\r\n\t\t\tvar windowHeight = function() \r\n\t\t\t{\r\n\t\t\t\tvar docElemProp = this.__context.document.documentElement.clientHeight;\r\n\t\t\t\tvar body = this.__context.document.body;\r\n\t\t\t\treturn this.__context.document.compatMode === \"CSS1Compat\" && docElemProp || body && body.clientHeight || docElemProp;\r\n\t\t\t};\r\n\t\t\tvar eventType = \"\";\r\n\t\t\tif(this.__isFullScreen)\r\n\t\t\t{\r\n\t\t\t\t//restore\r\n\t\t\t\tthis.util.dispatchEvent(this.getBaseElement(),NSPanel.RESTORE_STARTING,null,null);\r\n\t\t\t\tthis.disableDrag(false);\r\n\t\t\t\tthis.disableResize(false);\r\n\t\t\t\tthis.disableCollapse(false);\r\n\t\t\t\tthis.disableMinMax(false);\r\n\t\t\t\tthis.util.removeStyleClass(this.__baseComponent,\"nsPanelFullScreen\");\r\n\t\t\t\tthis.__baseComponent.setAttribute(\"style\",this.__origFullScreenDimension.baseComponentStyle);\r\n\t\t\t\tthis.__origFullScreenDimension.baseComponentStyle = null;\r\n\t\t\t\tthis.__origFullScreenDimension.baseComponentRect = null;\r\n\t\t\t\t\r\n\t\t\t\teventType = NSPanel.RESTORE_END;\r\n\t\t\t}\r\n\t\t\telse\r\n\t\t\t{\r\n\t\t\t\t//fullscreen\r\n\t\t\t\tthis.util.dispatchEvent(this.getBaseElement(),NSPanel.FULLSCREEN_STARTING,null,null);\r\n\t\t\t\tthis.disableDrag(true);\r\n\t\t\t\tthis.disableResize(true);\r\n\t\t\t\tthis.disableCollapse(true);\r\n\t\t\t\tthis.disableMinMax(true);\r\n\t\t\t\tthis.util.addStyleClass(this.__baseComponent,\"nsPanelFullScreen\");\r\n\t\t\t\tvar rect = this.__baseComponent.getBoundingClientRect();\r\n\t\t\t\tthis.__origFullScreenDimension.baseComponentRect = rect;\r\n\t\t\t\tthis.__origFullScreenDimension.baseComponentStyle = this.__baseComponent.getAttribute(\"style\");\r\n\t\t\t\tvar zIndex = this.__getZIndex();\r\n\t\t\t\tif(!isNaN(zIndex) && zIndex > 0)\r\n\t\t\t\t{\r\n\t\t\t\t\t